[Bf-blender-cvs] [bcda041fdf] temp-select-pick: minor tweaks

Campbell Barton noreply at git.blender.org
Tue Mar 7 21:07:48 CET 2017


Commit: bcda041fdf48aecb365c14fa4f451fc7128e7836
Author: Campbell Barton
Date:   Wed Mar 8 07:10:38 2017 +1100
Branches: temp-select-pick
https://developer.blender.org/rBbcda041fdf48aecb365c14fa4f451fc7128e7836

minor tweaks

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

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 d5fbf17df6..cf023cfad8 100644
--- a/source/blender/gpu/intern/gpu_select_pick.c
+++ b/source/blender/gpu/intern/gpu_select_pick.c
@@ -45,7 +45,7 @@
 
 #include "gpu_select_private.h"
 
-// #define DEBUG_PRINT
+/* #define DEBUG_PRINT */
 
 /* Alloc number for depths */
 #define ALLOC_DEPTHS 200
@@ -230,15 +230,14 @@ void gpu_select_pick_begin(
 		/* disable writing to the framebuffer */
 		glColorMask(GL_FALSE, GL_FALSE, GL_FALSE, GL_FALSE);
 
+		/* It's possible we don't want to clear depth buffer,
+		 * so existing elements are masked by current z-buffer. */
 		glClear(GL_DEPTH_BUFFER_BIT);
 
 		/* scratch buffer (read new values here) */
 		ps->gl.rect_depth_test = depth_buf_malloc(rect_len);
 		ps->gl.rect_depth = depth_buf_malloc(rect_len);
 
-		ps->gl.is_init = false;
-		ps->gl.prev_id = 0;
-
 		/* set initial 'far' value */
 #if 0
 		glReadPixels(UNPACK4(ps->gl.clip_readpixels), GL_DEPTH_COMPONENT, GL_FLOAT, ps->gl.rect_depth->buf);
@@ -248,6 +247,9 @@ void gpu_select_pick_begin(
 		}
 #endif
 
+		ps->gl.is_init = false;
+		ps->gl.prev_id = 0;
+
 		if (mode == GPU_SELECT_PICK_SORT_ALL) {
 			glEnable(GL_DEPTH_TEST);
 			glDepthMask(GL_TRUE);
@@ -512,11 +514,13 @@ unsigned int gpu_select_pick_end(void)
 	unsigned int hits = 0;
 
 	qsort(depth_data, depth_data_len, sizeof(DepthID), depth_cmp);
+
 	for (unsigned int i = 0; i < depth_data_len; i++) {
 		if (hits < maxhits) {
+			/* first 3 are dummy values */
 			g_pick_state.buffer[hits][0] = 1;
-			g_pick_state.buffer[hits][1] = 0xFFFF;  /* TODO, depth near */
-			g_pick_state.buffer[hits][2] = 0xFFFF;  /* TODO, depth far */
+			g_pick_state.buffer[hits][1] = 0x0;
+			g_pick_state.buffer[hits][2] = 0x0;
 			g_pick_state.buffer[hits][3] = depth_data[i].id;
 
 			hits++;




More information about the Bf-blender-cvs mailing list