[Bf-blender-cvs] [a597a38] master: Properly fix T45477

Antony Riakiotakis noreply at git.blender.org
Sun Jul 19 18:35:27 CEST 2015


Commit: a597a380bbf513edf59b183cea3fb0545e859cca
Author: Antony Riakiotakis
Date:   Sun Jul 19 18:35:09 2015 +0200
Branches: master
https://developer.blender.org/rBa597a380bbf513edf59b183cea3fb0545e859cca

Properly fix T45477

Code was actually skipping setting color selection indices and previous
commit actually broke mask selection in texture painting.
All should work now.

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

M	source/blender/blenkernel/BKE_DerivedMesh.h
M	source/blender/blenkernel/intern/cdderivedmesh.c
M	source/blender/editors/space_view3d/drawobject.c
M	source/blender/windowmanager/intern/wm_subwindow.c

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

diff --git a/source/blender/blenkernel/BKE_DerivedMesh.h b/source/blender/blenkernel/BKE_DerivedMesh.h
index 0974962..2c74815 100644
--- a/source/blender/blenkernel/BKE_DerivedMesh.h
+++ b/source/blender/blenkernel/BKE_DerivedMesh.h
@@ -150,6 +150,7 @@ typedef enum DMDrawFlag {
 	DM_DRAW_USE_ACTIVE_UV       = (1 << 2),
 	DM_DRAW_USE_TEXPAINT_UV     = (1 << 3),
 	DM_DRAW_SKIP_HIDDEN         = (1 << 4),
+	DM_DRAW_SKIP_SELECT         = (1 << 5),
 } DMDrawFlag;
 
 typedef enum DMForeachFlag {
diff --git a/source/blender/blenkernel/intern/cdderivedmesh.c b/source/blender/blenkernel/intern/cdderivedmesh.c
index 9307abc..69c6c4f 100644
--- a/source/blender/blenkernel/intern/cdderivedmesh.c
+++ b/source/blender/blenkernel/intern/cdderivedmesh.c
@@ -652,7 +652,7 @@ static void cdDM_drawMappedFaces(
 	totpoly = dm->getNumPolys(dm);
 
 	/* if we do selection, fill the selection buffer color */
-	if (G.f & G_BACKBUFSEL) {
+	if ((G.f & G_BACKBUFSEL) && !(flag & DM_DRAW_SKIP_SELECT)) {
 		Mesh *me = userData;
 		unsigned int *fi_map;
 
diff --git a/source/blender/editors/space_view3d/drawobject.c b/source/blender/editors/space_view3d/drawobject.c
index f715390..9abc63f 100644
--- a/source/blender/editors/space_view3d/drawobject.c
+++ b/source/blender/editors/space_view3d/drawobject.c
@@ -8462,7 +8462,7 @@ static void bbs_mesh_solid_EM(BMEditMesh *em, Scene *scene, View3D *v3d,
 
 	}
 	else {
-		dm->drawMappedFaces(dm, bbs_mesh_mask__setSolidDrawOptions, NULL, NULL, em->bm, 0);
+		dm->drawMappedFaces(dm, bbs_mesh_mask__setSolidDrawOptions, NULL, NULL, em->bm, DM_DRAW_SKIP_SELECT);
 	}
 }
 
diff --git a/source/blender/windowmanager/intern/wm_subwindow.c b/source/blender/windowmanager/intern/wm_subwindow.c
index 94fe2a6..7dade62 100644
--- a/source/blender/windowmanager/intern/wm_subwindow.c
+++ b/source/blender/windowmanager/intern/wm_subwindow.c
@@ -462,10 +462,11 @@ void WM_framebuffer_index_set(int index)
 void WM_framebuffer_index_get(int index, int *r_col)
 {
 	const int col = index_to_framebuffer(index);
-	*r_col = ((col & 0xFF) << 24) | /* red */
-	         (((col >>  8) & 0xFF) << 16) | /* green */
-	         (((col >> 16) & 0xFF) << 8) | /* blue */
-	         0xFF; /* alpha */
+	char *c_col = (char *)r_col;
+	c_col[0] = (col & 0xFF); /* red */
+	c_col[1] = ((col >>  8) & 0xFF); /* green */
+	c_col[2] = ((col >> 16) & 0xFF); /* blue */
+	c_col[3] = 0xFF; /* alpha */
 }




More information about the Bf-blender-cvs mailing list