diff options
author | Antony Riakiotakis <kalast@gmail.com> | 2015-07-19 19:35:09 +0300 |
---|---|---|
committer | Antony Riakiotakis <kalast@gmail.com> | 2015-07-19 19:35:09 +0300 |
commit | a597a380bbf513edf59b183cea3fb0545e859cca (patch) | |
tree | 217561c8956d7075db336907c227aae2fea529aa /source | |
parent | 8f1c1ef3a9f310db7f28806a2a441e32f5b56f97 (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.
Diffstat (limited to 'source')
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 */ } |