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++;

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to