diff options
author | Juan Linietsky <reduzio@gmail.com> | 2017-08-07 22:18:12 -0300 |
---|---|---|
committer | Juan Linietsky <reduzio@gmail.com> | 2017-08-07 22:18:12 -0300 |
commit | 2a6cdfaf912c9b0903903e3fc035f7c708cb9ae0 (patch) | |
tree | 8cb1e9feb0421ede1c7e4746c4e9cbefa16b1f70 | |
parent | bb47bca1f6184abe9ee7bb8b683922ab8388123f (diff) |
-Fixed BoneAttachment delay, closes #3966
-Fixed skeleton crash, probably fixes other issues
-rw-r--r-- | scene/main/scene_tree.cpp | 4 | ||||
-rw-r--r-- | servers/visual/visual_server_scene.cpp | 4 |
2 files changed, 6 insertions, 2 deletions
diff --git a/scene/main/scene_tree.cpp b/scene/main/scene_tree.cpp index 6aa2c83941..d800c24e10 100644 --- a/scene/main/scene_tree.cpp +++ b/scene/main/scene_tree.cpp @@ -540,6 +540,7 @@ bool SceneTree::iteration(float p_time) { _notify_group_pause("fixed_process_internal", Node::NOTIFICATION_INTERNAL_FIXED_PROCESS); _notify_group_pause("fixed_process", Node::NOTIFICATION_FIXED_PROCESS); _flush_ugc(); + MessageQueue::get_singleton()->flush(); //small little hack _flush_transform_notifications(); call_group_flags(GROUP_CALL_REALTIME, "_viewports", "update_worlds"); root_lock--; @@ -566,6 +567,8 @@ bool SceneTree::idle(float p_time) { emit_signal("idle_frame"); + MessageQueue::get_singleton()->flush(); //small little hack + _flush_transform_notifications(); _notify_group_pause("idle_process_internal", Node::NOTIFICATION_INTERNAL_PROCESS); @@ -581,6 +584,7 @@ bool SceneTree::idle(float p_time) { } _flush_ugc(); + MessageQueue::get_singleton()->flush(); //small little hack _flush_transform_notifications(); //transforms after world update, to avoid unnecessary enter/exit notifications call_group_flags(GROUP_CALL_REALTIME, "_viewports", "update_worlds"); diff --git a/servers/visual/visual_server_scene.cpp b/servers/visual/visual_server_scene.cpp index 56a596de55..11a9c8c9c1 100644 --- a/servers/visual/visual_server_scene.cpp +++ b/servers/visual/visual_server_scene.cpp @@ -880,13 +880,13 @@ void VisualServerScene::instance_attach_skeleton(RID p_instance, RID p_skeleton) return; if (instance->skeleton.is_valid()) { - VSG::storage->instance_remove_skeleton(p_skeleton, instance); + VSG::storage->instance_remove_skeleton(instance->skeleton, instance); } instance->skeleton = p_skeleton; if (instance->skeleton.is_valid()) { - VSG::storage->instance_add_skeleton(p_skeleton, instance); + VSG::storage->instance_add_skeleton(instance->skeleton, instance); } _instance_queue_update(instance, true); |