diff options
-rw-r--r-- | source/blender/draw/intern/draw_manager.c | 9 | ||||
-rw-r--r-- | source/blender/gpu/intern/gpu_viewport.c | 1 |
2 files changed, 9 insertions, 1 deletions
diff --git a/source/blender/draw/intern/draw_manager.c b/source/blender/draw/intern/draw_manager.c index 6e8f9d50aae..196f817a636 100644 --- a/source/blender/draw/intern/draw_manager.c +++ b/source/blender/draw/intern/draw_manager.c @@ -1295,7 +1295,14 @@ void DRW_draw_render_loop_ex( glEnable(GL_DEPTH_TEST); } - GPU_framebuffer_restore(); + if (WM_draw_region_get_bound_viewport(ar)) { + /* Don't unbind the framebuffer yet in this case and let + * GPU_viewport_unbind do it, so that we can still do further + * drawing of action zones on top. */ + } + else { + GPU_framebuffer_restore(); + } DRW_state_reset(); drw_engines_disable(); diff --git a/source/blender/gpu/intern/gpu_viewport.c b/source/blender/gpu/intern/gpu_viewport.c index 383ebec5b72..dc898c85773 100644 --- a/source/blender/gpu/intern/gpu_viewport.c +++ b/source/blender/gpu/intern/gpu_viewport.c @@ -548,6 +548,7 @@ void GPU_viewport_draw_to_screen(GPUViewport *viewport, const rcti *rect) void GPU_viewport_unbind(GPUViewport *UNUSED(viewport)) { + GPU_framebuffer_restore(); DRW_opengl_context_disable(); } |