diff options
author | Jeroen Bakker <j.bakker@atmind.nl> | 2018-07-05 15:38:14 +0300 |
---|---|---|
committer | Jeroen Bakker <j.bakker@atmind.nl> | 2018-07-05 17:46:06 +0300 |
commit | f7ec70895c78900db8e7db88d3713ebb9aa62730 (patch) | |
tree | 40aed2e1ab618eb5fe829ce11d7033e2fc0e92a2 /source/blender/draw/modes/object_mode.c | |
parent | a4328a4b70f80bbb1c2e8df3b95b793dc5f6fb06 (diff) |
Overlay: enable/disable drawing of specific object types.
Added a option to the overlay popover that controls the visibility of
non-renderable objects like lamps, cameras, speakers, armatures, curves
empties and force fields.
After discussion we went for a single option with more detailed check in
the object_mode draw engine.
Differential Revision: https://developer.blender.org/D3524
Diffstat (limited to 'source/blender/draw/modes/object_mode.c')
-rw-r--r-- | source/blender/draw/modes/object_mode.c | 52 |
1 files changed, 35 insertions, 17 deletions
diff --git a/source/blender/draw/modes/object_mode.c b/source/blender/draw/modes/object_mode.c index 736bde725ae..2beb453e069 100644 --- a/source/blender/draw/modes/object_mode.c +++ b/source/blender/draw/modes/object_mode.c @@ -2217,34 +2217,52 @@ static void OBJECT_cache_populate(void *vedata, Object *ob) break; } case OB_LAMP: - DRW_shgroup_lamp(stl, ob, view_layer); + if (v3d->overlay.visible_object_types & V3D_OVERLAY_SHOW_LAMP) + { + DRW_shgroup_lamp(stl, ob, view_layer); + } break; case OB_CAMERA: - DRW_shgroup_camera(stl, ob, view_layer); + if (v3d->overlay.visible_object_types & V3D_OVERLAY_SHOW_CAMERA) + { + DRW_shgroup_camera(stl, ob, view_layer); + } break; case OB_EMPTY: - DRW_shgroup_empty(stl, psl, ob, view_layer); + if (v3d->overlay.visible_object_types & V3D_OVERLAY_SHOW_EMPTY) + { + DRW_shgroup_empty(stl, psl, ob, view_layer); + } break; case OB_SPEAKER: - DRW_shgroup_speaker(stl, ob, view_layer); + if (v3d->overlay.visible_object_types & V3D_OVERLAY_SHOW_SPEAKER) + { + DRW_shgroup_speaker(stl, ob, view_layer); + } break; case OB_LIGHTPROBE: - DRW_shgroup_lightprobe(stl, psl, ob, view_layer); + if (v3d->overlay.visible_object_types & V3D_OVERLAY_SHOW_LIGHTPROBE) + { + DRW_shgroup_lightprobe(stl, psl, ob, view_layer); + } break; case OB_ARMATURE: { - bArmature *arm = ob->data; - if (arm->edbo == NULL) { - if (DRW_state_is_select() || !DRW_pose_mode_armature(ob, draw_ctx->obact)) { - DRWArmaturePasses passes = { - .bone_solid = psl->bone_solid, - .bone_outline = psl->bone_outline, - .bone_wire = psl->bone_wire, - .bone_envelope = psl->bone_envelope, - .bone_axes = psl->bone_axes, - .relationship_lines = NULL, /* Don't draw relationship lines */ - }; - DRW_shgroup_armature_object(ob, view_layer, passes); + if (v3d->overlay.visible_object_types & V3D_OVERLAY_SHOW_ARMATURE) + { + bArmature *arm = ob->data; + if (arm->edbo == NULL) { + if (DRW_state_is_select() || !DRW_pose_mode_armature(ob, draw_ctx->obact)) { + DRWArmaturePasses passes = { + .bone_solid = psl->bone_solid, + .bone_outline = psl->bone_outline, + .bone_wire = psl->bone_wire, + .bone_envelope = psl->bone_envelope, + .bone_axes = psl->bone_axes, + .relationship_lines = NULL, /* Don't draw relationship lines */ + }; + DRW_shgroup_armature_object(ob, view_layer, passes); + } } } break; |