[Bf-blender-cvs] [a7ef3126115] master: GPU_select: correction to select-pick-finalize

Campbell Barton noreply at git.blender.org
Tue Feb 27 10:40:16 CET 2018


Commit: a7ef3126115e907e03efac2297eea725017477f2
Author: Campbell Barton
Date:   Tue Feb 27 20:44:12 2018 +1100
Branches: master
https://developer.blender.org/rBa7ef3126115e907e03efac2297eea725017477f2

GPU_select: correction to select-pick-finalize

Would run twice, harmless at the moment but could cause issues later.

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

M	source/blender/gpu/intern/gpu_select_pick.c

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

diff --git a/source/blender/gpu/intern/gpu_select_pick.c b/source/blender/gpu/intern/gpu_select_pick.c
index d7a3ad07558..bd6b43ee42f 100644
--- a/source/blender/gpu/intern/gpu_select_pick.c
+++ b/source/blender/gpu/intern/gpu_select_pick.c
@@ -255,6 +255,7 @@ typedef struct GPUPickState {
 
 		/* Set after first draw */
 		bool is_init;
+		bool is_finalized;
 		unsigned int prev_id;
 	} gl;
 
@@ -366,6 +367,7 @@ void gpu_select_pick_begin(
 #endif
 
 		ps->gl.is_init = false;
+		ps->gl.is_finalized = false;
 		ps->gl.prev_id = 0;
 	}
 	else {
@@ -537,6 +539,7 @@ void gpu_select_pick_finalize(void)
 		/* force finishing last pass */
 		gpu_select_pick_load_id(ps->gl.prev_id);
 	}
+	ps->gl.is_finalized = true;
 }
 
 unsigned int gpu_select_pick_end(void)
@@ -548,7 +551,9 @@ unsigned int gpu_select_pick_end(void)
 #endif
 
 	if (ps->is_cached == false) {
-		gpu_select_pick_finalize();
+		if (ps->gl.is_finalized == false) {
+			gpu_select_pick_finalize();
+		}
 
 		glPopAttrib();
 		glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE);



More information about the Bf-blender-cvs mailing list