diff options
author | Campbell Barton <ideasman42@gmail.com> | 2018-07-10 19:30:45 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2018-07-10 19:31:52 +0300 |
commit | 8a3366a494cf2939138a96cb93a2b666a3be77c8 (patch) | |
tree | d28dff5ae44a12b31cb3581e7b5ea949b8102cf3 /source/blender/draw/modes | |
parent | 245d0d6bb71376ce782ec03bb1622309b9f38aab (diff) |
3D View: option to hide object overlays
This hides extra wires and details you may want to disable,
name may be changed.
Diffstat (limited to 'source/blender/draw/modes')
-rw-r--r-- | source/blender/draw/modes/object_mode.c | 30 |
1 files changed, 29 insertions, 1 deletions
diff --git a/source/blender/draw/modes/object_mode.c b/source/blender/draw/modes/object_mode.c index 2ac16906102..0726c3660d5 100644 --- a/source/blender/draw/modes/object_mode.c +++ b/source/blender/draw/modes/object_mode.c @@ -2131,6 +2131,7 @@ static void OBJECT_cache_populate(void *vedata, Object *ob) bool do_outlines = (draw_ctx->v3d->flag & V3D_SELECT_OUTLINE) && ((ob->base_flag & BASE_SELECTED) != 0); bool show_relations = ((draw_ctx->v3d->flag & V3D_HIDE_HELPLINES) == 0); + const bool hide_object_extra = (v3d->overlay.flag & V3D_OVERLAY_HIDE_OBJECT_XTRAS) != 0; if (do_outlines) { if ((ob != draw_ctx->object_edit) && !((ob == draw_ctx->obact) && (draw_ctx->object_mode & OB_MODE_ALL_PAINT))) { @@ -2156,6 +2157,9 @@ static void OBJECT_cache_populate(void *vedata, Object *ob) switch (ob->type) { case OB_MESH: { + if (hide_object_extra) { + break; + } if (ob != draw_ctx->object_edit) { Mesh *me = ob->data; if (me->totedge == 0) { @@ -2188,6 +2192,9 @@ static void OBJECT_cache_populate(void *vedata, Object *ob) case OB_LATTICE: { if (ob != draw_ctx->object_edit) { + if (hide_object_extra) { + break; + } struct Gwn_Batch *geom = DRW_cache_lattice_wire_get(ob, false); if (theme_id == TH_UNDEFINED) { theme_id = DRW_object_wire_theme_get(ob, view_layer, NULL); @@ -2201,6 +2208,9 @@ static void OBJECT_cache_populate(void *vedata, Object *ob) case OB_CURVE: { if (ob != draw_ctx->object_edit) { + if (hide_object_extra) { + break; + } struct Gwn_Batch *geom = DRW_cache_curve_edge_wire_get(ob); if (theme_id == TH_UNDEFINED) { theme_id = DRW_object_wire_theme_get(ob, view_layer, NULL); @@ -2218,22 +2228,40 @@ static void OBJECT_cache_populate(void *vedata, Object *ob) break; } case OB_LAMP: + if (hide_object_extra) { + break; + } DRW_shgroup_lamp(stl, ob, view_layer); break; case OB_CAMERA: - DRW_shgroup_camera(stl, ob, view_layer); + if (hide_object_extra) { + break; + } + DRW_shgroup_camera(stl, ob, view_layer); break; case OB_EMPTY: + if (hide_object_extra) { + break; + } DRW_shgroup_empty(stl, psl, ob, view_layer); break; case OB_SPEAKER: + if (hide_object_extra) { + break; + } DRW_shgroup_speaker(stl, ob, view_layer); break; case OB_LIGHTPROBE: + if (hide_object_extra) { + break; + } DRW_shgroup_lightprobe(stl, psl, ob, view_layer); break; case OB_ARMATURE: { + if (v3d->overlay.flag & V3D_OVERLAY_HIDE_BONES) { + break; + } bArmature *arm = ob->data; if (arm->edbo == NULL) { if (DRW_state_is_select() || !DRW_pose_mode_armature(ob, draw_ctx->obact)) { |