Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAntony Riakiotakis <kalast@gmail.com>2015-07-19 19:35:09 +0300
committerAntony Riakiotakis <kalast@gmail.com>2015-07-19 19:35:09 +0300
commita597a380bbf513edf59b183cea3fb0545e859cca (patch)
tree217561c8956d7075db336907c227aae2fea529aa
parent8f1c1ef3a9f310db7f28806a2a441e32f5b56f97 (diff)
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.
-rw-r--r--source/blender/blenkernel/BKE_DerivedMesh.h1
-rw-r--r--source/blender/blenkernel/intern/cdderivedmesh.c2
-rw-r--r--source/blender/editors/space_view3d/drawobject.c2
-rw-r--r--source/blender/windowmanager/intern/wm_subwindow.c9
4 files changed, 8 insertions, 6 deletions
diff --git a/source/blender/blenkernel/BKE_DerivedMesh.h b/source/blender/blenkernel/BKE_DerivedMesh.h
index 09749629eeb..2c74815a494 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 9307abc8a08..69c6c4ffcef 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 f7153908851..9abc63ffc37 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 94fe2a662b1..7dade62347c 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 */
}