diff options
author | reduz <reduzio@gmail.com> | 2021-10-15 19:04:35 -0300 |
---|---|---|
committer | reduz <reduzio@gmail.com> | 2021-10-16 08:36:05 -0300 |
commit | ae1c0165472181967b01ee7bc0087456611d26bf (patch) | |
tree | 5ba9e3cf3d28977737693b0f0a39506ff12c5c19 /scene/3d/node_3d.cpp | |
parent | 96410f55b24e47af045e3ad31545331ce124d999 (diff) |
Implement Animation Blend Shape Tracks
* New track type BLEND_SHAPE
* Blend shapes are imported via this new track type
* Processing is more optimized (no longer relies on variants)
* Modified the Blend Shape API in MeshInstance3D to use indices rather than StringNames (more optimizes)
* Promo: Fixed a small bug in gizmo updating in Node3D that affected performance
Dedicated BlendShape tracks are required for both optimization and eventually implementing them in animation compression.
Diffstat (limited to 'scene/3d/node_3d.cpp')
-rw-r--r-- | scene/3d/node_3d.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/scene/3d/node_3d.cpp b/scene/3d/node_3d.cpp index 272a06bce4..c96204cf60 100644 --- a/scene/3d/node_3d.cpp +++ b/scene/3d/node_3d.cpp @@ -371,6 +371,9 @@ void Node3D::update_gizmos() { if (data.gizmos.is_empty()) { return; } + if (data.gizmos_dirty) { + return; + } data.gizmos_dirty = true; MessageQueue::get_singleton()->push_callable(callable_mp(this, &Node3D::_update_gizmos)); #endif @@ -467,6 +470,7 @@ Vector<Ref<Node3DGizmo>> Node3D::get_gizmos() const { void Node3D::_update_gizmos() { #ifdef TOOLS_ENABLED if (data.gizmos_disabled || !is_inside_world() || !data.gizmos_dirty) { + data.gizmos_dirty = false; return; } data.gizmos_dirty = false; |