Merge branch 'blender-v2.92-release'

This commit is contained in:
Campbell Barton 2021-01-25 23:47:56 +11:00
commit 4bc7996e2e
2 changed files with 13 additions and 5 deletions

View File

@ -642,6 +642,8 @@ static void image_main_region_draw(const bContext *C, ARegion *region)
Mask *mask = NULL;
Scene *scene = CTX_data_scene(C);
View2D *v2d = &region->v2d;
Image *image = ED_space_image(sima);
const bool show_viewer = (image && image->source == IMA_SRC_VIEWER);
/* XXX not supported yet, disabling for now */
scene->r.scemode &= ~R_COMP_CROP;
@ -656,8 +658,14 @@ static void image_main_region_draw(const bContext *C, ARegion *region)
mask = ED_space_image_get_mask(sima);
}
/* we draw image in pixelspace */
if (show_viewer) {
BLI_thread_lock(LOCK_DRAW_IMAGE);
}
DRW_draw_view(C);
if (show_viewer) {
BLI_thread_unlock(LOCK_DRAW_IMAGE);
}
draw_image_main_helpers(C, region);
/* Draw Meta data of the image isn't added to the DrawManager as it is
@ -685,12 +693,9 @@ static void image_main_region_draw(const bContext *C, ARegion *region)
UI_view2d_view_restore(C);
if (mask) {
Image *image = ED_space_image(sima);
int width, height, show_viewer;
int width, height;
float aspx, aspy;
show_viewer = (image && image->source == IMA_SRC_VIEWER);
if (show_viewer) {
/* ED_space_image_get* will acquire image buffer which requires
* lock here by the same reason why lock is needed in draw_image_main

View File

@ -25,6 +25,7 @@
#include "BLI_blenlib.h"
#include "BLI_math.h"
#include "BLI_system.h"
#include "BLI_threads.h"
#include "DNA_node_types.h"
#include "DNA_object_types.h"
@ -3780,7 +3781,9 @@ void draw_nodespace_back_pix(const bContext *C,
/* The draw manager is used to draw the backdrop image. */
GPUFrameBuffer *old_fb = GPU_framebuffer_active_get();
GPU_framebuffer_restore();
BLI_thread_lock(LOCK_DRAW_IMAGE);
DRW_draw_view(C);
BLI_thread_unlock(LOCK_DRAW_IMAGE);
GPU_framebuffer_bind_no_srgb(old_fb);
/* Draw manager changes the depth state. Set it back to NONE. Without this the node preview
* images aren't drawn correctly. */