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>2018-07-10 19:30:45 +0300
committerCampbell Barton <ideasman42@gmail.com>2018-07-10 19:31:52 +0300
commit8a3366a494cf2939138a96cb93a2b666a3be77c8 (patch)
treed28dff5ae44a12b31cb3581e7b5ea949b8102cf3 /source/blender/draw/modes
parent245d0d6bb71376ce782ec03bb1622309b9f38aab (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.c30
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)) {