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:
authorCampbell Barton <ideasman42@gmail.com>2013-07-01 05:25:21 +0400
committerCampbell Barton <ideasman42@gmail.com>2013-07-01 05:25:21 +0400
commit6321f11f03fec6b9a7662fd98aa8aa40750c0cb5 (patch)
tree706a82d40940419ce1eb6fc8f7105e0e4e44e5a5 /source/blender/editors
parentc729c5ab4b5b44b2f3081b06143816cd5d8a4074 (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.c14
-rw-r--r--source/blender/editors/space_view3d/drawobject.c6
-rw-r--r--source/blender/editors/space_view3d/view3d_intern.h6
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);