diff options
author | Campbell Barton <ideasman42@gmail.com> | 2017-07-14 09:45:47 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2017-07-14 09:45:47 +0300 |
commit | 661f5a24d16191336b5067d554648ff0e58013f2 (patch) | |
tree | f1aa29414ed0fb5d7a57fcaf2490530c7f6caa8c /source/blender/draw/modes/paint_vertex_mode.c | |
parent | 25dba156bec73cf05c87a59bbf28b401049643bb (diff) |
DwM: Show face-mask overlay even with full-shading
Without this face selection would be used but invisible,
display this over fully shaded surface.
Diffstat (limited to 'source/blender/draw/modes/paint_vertex_mode.c')
-rw-r--r-- | source/blender/draw/modes/paint_vertex_mode.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/source/blender/draw/modes/paint_vertex_mode.c b/source/blender/draw/modes/paint_vertex_mode.c index ac3b82e9418..3d75068c4f2 100644 --- a/source/blender/draw/modes/paint_vertex_mode.c +++ b/source/blender/draw/modes/paint_vertex_mode.c @@ -144,15 +144,18 @@ static void PAINT_VERTEX_cache_populate(void *vedata, Object *ob) if ((ob->type == OB_MESH) && (ob == draw_ctx->obact)) { IDProperty *ces_mode_pw = BKE_layer_collection_engine_evaluated_get(ob, COLLECTION_MODE_PAINT_VERTEX, ""); - bool use_wire = BKE_collection_engine_property_value_get_bool(ces_mode_pw, "use_wire"); const Mesh *me = ob->data; + const bool use_wire = BKE_collection_engine_property_value_get_bool(ces_mode_pw, "use_wire"); + const bool use_surface = DRW_object_is_mode_shade(ob) == true; const bool use_face_sel = (me->editflag & ME_EDIT_PAINT_FACE_SEL) != 0; struct Gwn_Batch *geom; world_light = BKE_collection_engine_property_value_get_bool(ces_mode_pw, "use_shading") ? 0.5f : 1.0f; - geom = DRW_cache_mesh_surface_vert_colors_get(ob); - DRW_shgroup_call_add(stl->g_data->fvcolor_shgrp, geom, ob->obmat); + if (use_surface) { + geom = DRW_cache_mesh_surface_vert_colors_get(ob); + DRW_shgroup_call_add(stl->g_data->fvcolor_shgrp, geom, ob->obmat); + } if (use_face_sel || use_wire) { geom = DRW_cache_mesh_edges_paint_overlay_get(ob, use_wire, use_face_sel); |