diff options
author | Campbell Barton <ideasman42@gmail.com> | 2012-12-23 05:54:11 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2012-12-23 05:54:11 +0400 |
commit | 0ac66ada2d307ca8e7c82ea5b47ff73611cff55f (patch) | |
tree | 029bb1cedd86ffeed1fe86a7aa9ac48b56a1249c /source/blender/editors/space_view3d | |
parent | 806720507e7e86ef1227a37146b3718ba027f036 (diff) |
initial support for 'occlude background geometry' in weight paint mode.
Only support mouse vertex select at the moment.
Diffstat (limited to 'source/blender/editors/space_view3d')
-rw-r--r-- | source/blender/editors/space_view3d/drawobject.c | 8 | ||||
-rw-r--r-- | source/blender/editors/space_view3d/view3d_select.c | 5 |
2 files changed, 10 insertions, 3 deletions
diff --git a/source/blender/editors/space_view3d/drawobject.c b/source/blender/editors/space_view3d/drawobject.c index 01759fff74f..91f25c960e9 100644 --- a/source/blender/editors/space_view3d/drawobject.c +++ b/source/blender/editors/space_view3d/drawobject.c @@ -3244,11 +3244,15 @@ static void draw_mesh_fancy(Scene *scene, ARegion *ar, View3D *v3d, RegionView3D } if (is_obact && paint_vertsel_test(ob)) { - + const int use_depth = (v3d->flag & V3D_ZBUF_SELECT); glColor3f(0.0f, 0.0f, 0.0f); glPointSize(UI_GetThemeValuef(TH_VERTEX_SIZE)); - + + if (!use_depth) glDisable(GL_DEPTH_TEST); + else bglPolygonOffset(rv3d->dist, 1.0); drawSelectedVertices(dm, ob->data); + if (!use_depth) glEnable(GL_DEPTH_TEST); + else bglPolygonOffset(rv3d->dist, 0.0); glPointSize(1.0f); } diff --git a/source/blender/editors/space_view3d/view3d_select.c b/source/blender/editors/space_view3d/view3d_select.c index d37042fa2ec..c08df884d4f 100644 --- a/source/blender/editors/space_view3d/view3d_select.c +++ b/source/blender/editors/space_view3d/view3d_select.c @@ -2142,11 +2142,14 @@ void VIEW3D_OT_select_border(wmOperatorType *ot) /* gets called via generic mouse select operator */ static int mouse_weight_paint_vertex_select(bContext *C, const int mval[2], short extend, short deselect, short toggle, Object *obact) { + View3D *v3d = CTX_wm_view3d(C); + const int use_zbuf = (v3d->flag & V3D_ZBUF_SELECT); + Mesh *me = obact->data; /* already checked for NULL */ unsigned int index = 0; MVert *mv; - if (ED_mesh_pick_vert(C, me, mval, &index, ED_MESH_PICK_DEFAULT_VERT_SIZE)) { + if (ED_mesh_pick_vert(C, obact, mval, &index, ED_MESH_PICK_DEFAULT_VERT_SIZE, use_zbuf)) { mv = &me->mvert[index]; if (extend) { mv->flag |= SELECT; |