[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