aboutsummaryrefslogtreecommitdiff
path: root/editor/spatial_editor_gizmos.cpp
diff options
context:
space:
mode:
authorRémi Verschelde2017-12-10 13:03:53 +0100
committerGitHub2017-12-10 13:03:53 +0100
commitbf45e569c9e02b64e1e0ee65ceed57bf526a3706 (patch)
tree73378863d85ee442f46c8fa365937d9fd3a1775e /editor/spatial_editor_gizmos.cpp
parentd1995b7d8c06766df518c413abb6d0bcb08a71e4 (diff)
parent63ec5823d18ca1f93b0a3b76b171ec2d46465da3 (diff)
downloadgodot-bf45e569c9e02b64e1e0ee65ceed57bf526a3706.tar.gz
godot-bf45e569c9e02b64e1e0ee65ceed57bf526a3706.tar.zst
godot-bf45e569c9e02b64e1e0ee65ceed57bf526a3706.zip
Diffstat (limited to 'editor/spatial_editor_gizmos.cpp')
-rw-r--r--editor/spatial_editor_gizmos.cpp28
1 files changed, 28 insertions, 0 deletions
diff --git a/editor/spatial_editor_gizmos.cpp b/editor/spatial_editor_gizmos.cpp
index 3ffc61cb4..43010ed98 100644
--- a/editor/spatial_editor_gizmos.cpp
+++ b/editor/spatial_editor_gizmos.cpp
@@ -1316,6 +1316,34 @@ void SkeletonSpatialGizmo::redraw() {
Color gizmo_color = EDITOR_GET("editors/3d_gizmos/gizmo_colors/skeleton");
Ref<Material> material = create_material("skeleton_material", gizmo_color);
+ SpatialMaterial *sm = Object::cast_to<SpatialMaterial>(material.ptr());
+
+ { // Reset
+ Color c(sm->get_albedo());
+ c.a = 1;
+ sm->set_albedo(c);
+ }
+ if (sm) {
+ switch (SpatialEditor::get_singleton()->get_skeleton_visibility_state()) {
+ case 0: {
+ // Hidden
+ Color c(sm->get_albedo());
+ c.a = 0;
+ sm->set_albedo(c);
+ sm->set_feature(SpatialMaterial::FEATURE_TRANSPARENT, true);
+ } break;
+ case 1:
+ // Visible
+ sm->set_feature(SpatialMaterial::FEATURE_TRANSPARENT, false);
+ sm->set_render_priority(SpatialMaterial::RENDER_PRIORITY_MIN);
+ sm->set_flag(SpatialMaterial::FLAG_DISABLE_DEPTH_TEST, false);
+ break;
+ case 2:
+ // x-ray
+ sm->set_on_top_of_alpha();
+ break;
+ }
+ }
Ref<SurfaceTool> surface_tool(memnew(SurfaceTool));