[Bf-blender-cvs] [3520c134f9] temp-select-pick: Fix mistake in glReadPixels

Campbell Barton noreply at git.blender.org
Tue Mar 7 20:18:50 CET 2017


Commit: 3520c134f945aca1724912f595476fbf6eac3361
Author: Campbell Barton
Date:   Wed Mar 8 06:03:58 2017 +1100
Branches: temp-select-pick
https://developer.blender.org/rB3520c134f945aca1724912f595476fbf6eac3361

Fix mistake in glReadPixels

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

M	source/blender/editors/armature/armature_select.c
M	source/blender/editors/space_view3d/view3d_select.c
M	source/blender/editors/space_view3d/view3d_view.c
M	source/blender/gpu/intern/gpu_select.c
M	source/blender/gpu/intern/gpu_select_pick.c

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

diff --git a/source/blender/editors/armature/armature_select.c b/source/blender/editors/armature/armature_select.c
index 29883cf709..13103730e5 100644
--- a/source/blender/editors/armature/armature_select.c
+++ b/source/blender/editors/armature/armature_select.c
@@ -332,9 +332,9 @@ static EditBone *get_nearest_editbonepoint(
 		BLI_rcti_init_pt_size(&rect, mval, 12);
 		hits = view3d_opengl_select(vc, buffer, MAXPICKBUF, &rect, select_mode);
 	}
-
 	/* See if there are any selected bones in this group */
 	if (hits > 0) {
+		
 		if (hits == 1) {
 			if (!(buffer[3] & BONESEL_NOSEL))
 				besthitresult = buffer[3];
diff --git a/source/blender/editors/space_view3d/view3d_select.c b/source/blender/editors/space_view3d/view3d_select.c
index 6b2e057f59..73597ba0e6 100644
--- a/source/blender/editors/space_view3d/view3d_select.c
+++ b/source/blender/editors/space_view3d/view3d_select.c
@@ -97,7 +97,6 @@
 #include "GPU_draw.h"
 
 #include "GPU_select.h"
-#include "PIL_time_utildefines.h"
 
 #include "view3d_intern.h"  /* own include */
 
@@ -1480,9 +1479,8 @@ static bool ed_object_select_pick(
 		bool do_nearest;
 
 		/* if objects have posemode set, the bones are in the same selection buffer */
-		TIMEIT_START(select);
+		
 		hits = mixed_bones_object_selectbuffer(&vc, buffer, mval, true, enumerate, &do_nearest);
-		TIMEIT_END(select);
 		
 		if (hits > 0) {
 			/* note: bundles are handling in the same way as bones */
@@ -2671,7 +2669,7 @@ static void pose_circle_select(ViewContext *vc, const bool select, const int mva
 	}
 }
 
-static short armature_circle_doSelectJoint(void *userData, EditBone *ebone, const float screen_co[2], bool head)
+static short armature_circle_doSelectJoint(void *userData, EditBone *ebone, const float screen_co[2], short head)
 {
 	CircleSelectUserData *data = userData;
 
diff --git a/source/blender/editors/space_view3d/view3d_view.c b/source/blender/editors/space_view3d/view3d_view.c
index fa68055c3b..efdf5ce297 100644
--- a/source/blender/editors/space_view3d/view3d_view.c
+++ b/source/blender/editors/space_view3d/view3d_view.c
@@ -1214,7 +1214,6 @@ int view3d_opengl_select(
 	G.f |= G_PICKSEL;
 
 	view3d_winmatrix_set(ar, v3d, &rect);
-
 	mul_m4_m4m4(vc->rv3d->persmat, vc->rv3d->winmat, vc->rv3d->viewmat);
 	
 	if (v3d->drawtype > OB_WIRE) {
diff --git a/source/blender/gpu/intern/gpu_select.c b/source/blender/gpu/intern/gpu_select.c
index b8d5fb55b7..79dd4fa06b 100644
--- a/source/blender/gpu/intern/gpu_select.c
+++ b/source/blender/gpu/intern/gpu_select.c
@@ -29,10 +29,7 @@
  * Interface for accessing gpu-related methods for selection. The semantics will be
  * similar to glRenderMode(GL_SELECT) since the goal is to maintain compatibility.
  */
-
-#include <string.h>
 #include <stdlib.h>
-#include <float.h>
 
 #include "GPU_select.h"
 #include "GPU_extensions.h"
@@ -174,7 +171,6 @@ unsigned int GPU_select_end(void)
 	return hits;
 }
 
-
 /**
  * has user activated?
  */
diff --git a/source/blender/gpu/intern/gpu_select_pick.c b/source/blender/gpu/intern/gpu_select_pick.c
index c5da48dc0c..bdaa58985e 100644
--- a/source/blender/gpu/intern/gpu_select_pick.c
+++ b/source/blender/gpu/intern/gpu_select_pick.c
@@ -368,7 +368,7 @@ bool gpu_select_pick_load_id(unsigned int id)
 	GPUPickState *ps = &g_pick_state;
 	if (ps->gl.is_init) {
 		const unsigned int rect_len = ps->src.rect_len;
-		glReadPixels(UNPACK4(ps->gl.clip_readpixels), GL_DEPTH_COMPONENT, GL_FLOAT, ps->gl.rect_depth_test);
+		glReadPixels(UNPACK4(ps->gl.clip_readpixels), GL_DEPTH_COMPONENT, GL_FLOAT, ps->gl.rect_depth_test->buf);
 		/* perform initial memcmp since most cases the array remains unchanged  */
 		if (memcmp(ps->gl.rect_depth->buf, ps->gl.rect_depth_test->buf, rect_len * sizeof(float)) != 0) {
 			ps->gl.rect_depth_test->id = ps->gl.prev_id;




More information about the Bf-blender-cvs mailing list