diff options
author | Campbell Barton <ideasman42@gmail.com> | 2013-07-01 05:25:21 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2013-07-01 05:25:21 +0400 |
commit | 6321f11f03fec6b9a7662fd98aa8aa40750c0cb5 (patch) | |
tree | 706a82d40940419ce1eb6fc8f7105e0e4e44e5a5 /source/blender/editors | |
parent | c729c5ab4b5b44b2f3081b06143816cd5d8a4074 (diff) |
tweak to commit r57891, dont draw hidden faces/edges in editmode.
Diffstat (limited to 'source/blender/editors')
-rw-r--r-- | source/blender/editors/space_view3d/drawmesh.c | 14 | ||||
-rw-r--r-- | source/blender/editors/space_view3d/drawobject.c | 6 | ||||
-rw-r--r-- | source/blender/editors/space_view3d/view3d_intern.h | 6 |
3 files changed, 15 insertions, 11 deletions
diff --git a/source/blender/editors/space_view3d/drawmesh.c b/source/blender/editors/space_view3d/drawmesh.c index 8a714c4d51e..7525b799067 100644 --- a/source/blender/editors/space_view3d/drawmesh.c +++ b/source/blender/editors/space_view3d/drawmesh.c @@ -1004,7 +1004,8 @@ void draw_mesh_textured(Scene *scene, View3D *v3d, RegionView3D *rv3d, } /* Vertex Paint and Weight Paint */ -void draw_mesh_paint_weight_faces(Mesh *me, DerivedMesh *dm, void *facemask, const bool use_light) +void draw_mesh_paint_weight_faces(DerivedMesh *dm, const bool use_light, + void *facemask_cb, void *user_data) { if (use_light) { const float spec[4] = {0.47f, 0.47f, 0.47f, 0.47f}; @@ -1019,7 +1020,7 @@ void draw_mesh_paint_weight_faces(Mesh *me, DerivedMesh *dm, void *facemask, con glEnable(GL_COLOR_MATERIAL); } - dm->drawMappedFaces(dm, (DMSetDrawOptions)facemask, GPU_enable_material, NULL, me, + dm->drawMappedFaces(dm, (DMSetDrawOptions)facemask_cb, GPU_enable_material, NULL, user_data, DM_DRAW_USE_COLORS | DM_DRAW_ALWAYS_SMOOTH); if (use_light) { @@ -1030,7 +1031,8 @@ void draw_mesh_paint_weight_faces(Mesh *me, DerivedMesh *dm, void *facemask, con } } -void draw_mesh_paint_weight_edges(RegionView3D *rv3d, DerivedMesh *dm, const bool use_depth) +void draw_mesh_paint_weight_edges(RegionView3D *rv3d, DerivedMesh *dm, const bool use_depth, + void *edgemask_cb, void *user_data) { /* weight paint in solid mode, special case. focus on making the weights clear * rather than the shading, this is also forced in wire view */ @@ -1048,7 +1050,7 @@ void draw_mesh_paint_weight_edges(RegionView3D *rv3d, DerivedMesh *dm, const boo glEnable(GL_LINE_STIPPLE); glLineStipple(1, 0xAAAA); - dm->drawEdges(dm, 1, 1); + dm->drawMappedEdges(dm, (DMSetDrawOptions)edgemask_cb, user_data); if (use_depth) { bglPolygonOffset(rv3d->dist, 0.0); @@ -1078,7 +1080,7 @@ void draw_mesh_paint(View3D *v3d, RegionView3D *rv3d, GPU_enable_material(0, NULL); } - draw_mesh_paint_weight_faces(me, dm, facemask, use_light); + draw_mesh_paint_weight_faces(dm, use_light, facemask, me); } else if (ob->mode & OB_MODE_VERTEX_PAINT) { if (me->mloopcol) { @@ -1098,7 +1100,7 @@ void draw_mesh_paint(View3D *v3d, RegionView3D *rv3d, } else if ((use_light == false) || (ob->dtx & OB_DRAWWIRE)) { const bool use_depth = (v3d->flag & V3D_ZBUF_SELECT) || !(ob->mode & OB_MODE_WEIGHT_PAINT); - draw_mesh_paint_weight_edges(rv3d, dm, use_depth); + draw_mesh_paint_weight_edges(rv3d, dm, use_depth, NULL, NULL); } } diff --git a/source/blender/editors/space_view3d/drawobject.c b/source/blender/editors/space_view3d/drawobject.c index 3329f69bb0b..9ab6336ab0e 100644 --- a/source/blender/editors/space_view3d/drawobject.c +++ b/source/blender/editors/space_view3d/drawobject.c @@ -3044,15 +3044,15 @@ static void draw_em_fancy(Scene *scene, ARegion *ar, View3D *v3d, if (check_object_draw_editweight(me, finalDM)) { if (dt > OB_WIRE) { - draw_mesh_paint_weight_faces(me, finalDM, NULL, true); + draw_mesh_paint_weight_faces(finalDM, true, draw_em_fancy__setFaceOpts, me->edit_btmesh); bglPolygonOffset(rv3d->dist, 1.0); glDepthMask(0); } else { glEnable(GL_DEPTH_TEST); - draw_mesh_paint_weight_faces(me, finalDM, NULL, false); - draw_mesh_paint_weight_edges(rv3d, finalDM, true); + draw_mesh_paint_weight_faces(finalDM, false, draw_em_fancy__setFaceOpts, me->edit_btmesh); + draw_mesh_paint_weight_edges(rv3d, finalDM, true, draw_dm_edges__setDrawOptions, me->edit_btmesh); glDisable(GL_DEPTH_TEST); } } diff --git a/source/blender/editors/space_view3d/view3d_intern.h b/source/blender/editors/space_view3d/view3d_intern.h index eb8ffb3f453..44c85799896 100644 --- a/source/blender/editors/space_view3d/view3d_intern.h +++ b/source/blender/editors/space_view3d/view3d_intern.h @@ -150,8 +150,10 @@ bool draw_armature(Scene *scene, View3D *v3d, ARegion *ar, Base *base, void draw_mesh_textured(Scene *scene, View3D *v3d, RegionView3D *rv3d, struct Object *ob, struct DerivedMesh *dm, const int draw_flags); void draw_mesh_face_select(struct RegionView3D *rv3d, struct Mesh *me, struct DerivedMesh *dm); -void draw_mesh_paint_weight_faces(struct Mesh *me, struct DerivedMesh *dm, void *facemask, const bool do_light); -void draw_mesh_paint_weight_edges(RegionView3D *rv3d, struct DerivedMesh *dm, const bool use_depth); +void draw_mesh_paint_weight_faces(struct DerivedMesh *dm, const bool do_light, + void *facemask_cb, void *user_data); +void draw_mesh_paint_weight_edges(RegionView3D *rv3d, struct DerivedMesh *dm, const bool use_depth, + void *edgemask_cb, void *user_data); void draw_mesh_paint(View3D *v3d, RegionView3D *rv3d, struct Object *ob, struct DerivedMesh *dm, const int draw_flags); |