Commit: f998c26a08e06df6c5907a9ba6190c5f2917f623
Author: Clément Foucault
Date:   Thu Feb 22 13:18:51 2018 +0100
Branches: temp-drawcontext
https://developer.blender.org/rBf998c26a08e06df6c5907a9ba6190c5f2917f623

DRW: Fix selection & cursor autodist not working after rendering.

That was caused by a wrong state initialization. We could remove every call to 
these if the state was not changed anywhere else (outside of DRW), but this is 
not the case...

===================================================================

M       source/blender/draw/intern/draw_manager.c

===================================================================

diff --git a/source/blender/draw/intern/draw_manager.c 
b/source/blender/draw/intern/draw_manager.c
index 3056bf4c723..e7ce783cad7 100644
--- a/source/blender/draw/intern/draw_manager.c
+++ b/source/blender/draw/intern/draw_manager.c
@@ -3805,6 +3805,9 @@ void DRW_draw_select_loop(
                }
        }
 
+       gpuPushAttrib(GPU_ENABLE_BIT | GPU_VIEWPORT_BIT);
+       glDisable(GL_SCISSOR_TEST);
+
        struct GPUViewport *viewport = GPU_viewport_create();
        GPU_viewport_size_set(viewport, (const int[2]){BLI_rcti_size_x(rect), 
BLI_rcti_size_y(rect)});
 
@@ -3887,6 +3890,10 @@ void DRW_draw_select_loop(
        GPU_viewport_free(viewport);
        MEM_freeN(viewport);
 
+       /* Restore Drawing area. */
+       gpuPopAttrib();
+       glEnable(GL_SCISSOR_TEST);
+
        /* restore */
        rv3d->viewport = backup_viewport;
 #endif  /* USE_GPU_SELECT */
@@ -3949,6 +3956,9 @@ void DRW_draw_depth_loop(
        /* Reset before using it. */
        memset(&DST, 0x0, sizeof(DST));
 
+       gpuPushAttrib(GPU_ENABLE_BIT | GPU_VIEWPORT_BIT);
+       glDisable(GL_SCISSOR_TEST);
+
        struct GPUViewport *viewport = GPU_viewport_create();
        GPU_viewport_size_set(viewport, (const int[2]){ar->winx, ar->winy});
 
@@ -4025,6 +4035,10 @@ void DRW_draw_depth_loop(
        GPU_viewport_free(viewport);
        MEM_freeN(viewport);
 
+       /* Restore Drawing area. */
+       gpuPopAttrib();
+       glEnable(GL_SCISSOR_TEST);
+
        /* Changin context */
        DRW_opengl_context_disable();

_______________________________________________
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to