diff options
-rw-r--r-- | source/blender/draw/engines/overlay/overlay_paint.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/source/blender/draw/engines/overlay/overlay_paint.c b/source/blender/draw/engines/overlay/overlay_paint.c index 456c56f9c03..652d6af54a2 100644 --- a/source/blender/draw/engines/overlay/overlay_paint.c +++ b/source/blender/draw/engines/overlay/overlay_paint.c @@ -254,11 +254,18 @@ void OVERLAY_paint_draw(OVERLAY_Data *vedata) OVERLAY_PrivateData *pd = stl->pd; OVERLAY_PassList *psl = vedata->psl; + OVERLAY_FramebufferList *fbl = vedata->fbl; DefaultFramebufferList *dfbl = DRW_viewport_framebuffer_list_get(); if (DRW_state_is_fbo()) { - /* Paint overlay needs final color because of multiply blend mode. */ - GPU_framebuffer_bind(pd->painting.in_front ? dfbl->in_front_fb : dfbl->default_fb); + if (pd->painting.alpha_blending) { + GPU_framebuffer_bind(pd->painting.in_front ? fbl->overlay_in_front_fb : + fbl->overlay_default_fb); + } + else { + /* Paint overlay needs final color because of multiply blend mode. */ + GPU_framebuffer_bind(pd->painting.in_front ? dfbl->in_front_fb : dfbl->default_fb); + } } if (psl->paint_depth_ps) { |