diff options
author | Sybren A. Stüvel <sybren@blender.org> | 2021-01-26 16:38:40 +0300 |
---|---|---|
committer | Sybren A. Stüvel <sybren@blender.org> | 2021-01-26 16:38:40 +0300 |
commit | 84671d796d4237e094046a88d938bea9ec720174 (patch) | |
tree | 668c59840ad08721e75f938ffe5f718a3f37dbec /source/blender/gpu/intern | |
parent | 74633c0456b62b35a925c45cbff30508e53e86e9 (diff) | |
parent | b665781808167011a7a7c3c51b6862a15380129e (diff) |
Merge remote-tracking branch 'origin/blender-v2.92-release'
Diffstat (limited to 'source/blender/gpu/intern')
-rw-r--r-- | source/blender/gpu/intern/gpu_viewport.c | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/source/blender/gpu/intern/gpu_viewport.c b/source/blender/gpu/intern/gpu_viewport.c index a83654d31e7..205ba1d06d6 100644 --- a/source/blender/gpu/intern/gpu_viewport.c +++ b/source/blender/gpu/intern/gpu_viewport.c @@ -749,7 +749,8 @@ static void gpu_viewport_batch_free(GPUViewport *viewport) static void gpu_viewport_draw_colormanaged(GPUViewport *viewport, const rctf *rect_pos, const rctf *rect_uv, - bool display_colorspace) + bool display_colorspace, + bool do_overlay_merge) { DefaultTextureList *dtxl = viewport->txl; GPUTexture *color = dtxl->color; @@ -771,7 +772,7 @@ static void gpu_viewport_draw_colormanaged(GPUViewport *viewport, NULL, viewport->dither, false, - true); + do_overlay_merge); } GPUBatch *batch = gpu_viewport_batch_get(viewport, rect_pos, rect_uv); @@ -780,6 +781,7 @@ static void gpu_viewport_draw_colormanaged(GPUViewport *viewport, } else { GPU_batch_program_set_builtin(batch, GPU_SHADER_2D_IMAGE_OVERLAYS_MERGE); + GPU_batch_uniform_1i(batch, "overlay", do_overlay_merge); GPU_batch_uniform_1i(batch, "display_transform", display_colorspace); GPU_batch_uniform_1i(batch, "image_texture", 0); GPU_batch_uniform_1i(batch, "overlays_texture", 1); @@ -803,7 +805,8 @@ static void gpu_viewport_draw_colormanaged(GPUViewport *viewport, void GPU_viewport_draw_to_screen_ex(GPUViewport *viewport, int view, const rcti *rect, - bool display_colorspace) + bool display_colorspace, + bool do_overlay_merge) { gpu_viewport_framebuffer_view_set(viewport, view); DefaultFramebufferList *dfbl = viewport->fbl; @@ -850,7 +853,8 @@ void GPU_viewport_draw_to_screen_ex(GPUViewport *viewport, SWAP(float, uv_rect.ymin, uv_rect.ymax); } - gpu_viewport_draw_colormanaged(viewport, &pos_rect, &uv_rect, display_colorspace); + gpu_viewport_draw_colormanaged( + viewport, &pos_rect, &uv_rect, display_colorspace, do_overlay_merge); } /** @@ -862,7 +866,7 @@ void GPU_viewport_draw_to_screen_ex(GPUViewport *viewport, */ void GPU_viewport_draw_to_screen(GPUViewport *viewport, int view, const rcti *rect) { - GPU_viewport_draw_to_screen_ex(viewport, view, rect, true); + GPU_viewport_draw_to_screen_ex(viewport, view, rect, true, true); } /** @@ -870,7 +874,8 @@ void GPU_viewport_draw_to_screen(GPUViewport *viewport, int view, const rcti *re */ void GPU_viewport_unbind_from_offscreen(GPUViewport *viewport, struct GPUOffScreen *ofs, - bool display_colorspace) + bool display_colorspace, + bool do_overlay_merge) { DefaultFramebufferList *dfbl = viewport->fbl; DefaultTextureList *dtxl = viewport->txl; @@ -896,7 +901,8 @@ void GPU_viewport_unbind_from_offscreen(GPUViewport *viewport, .ymax = 1.0f, }; - gpu_viewport_draw_colormanaged(viewport, &pos_rect, &uv_rect, display_colorspace); + gpu_viewport_draw_colormanaged( + viewport, &pos_rect, &uv_rect, display_colorspace, do_overlay_merge); /* This one is from the offscreen. Don't free it with the viewport. */ dtxl->depth = NULL; |