mirror of
https://github.com/godotengine/godot.git
synced 2024-12-16 08:03:42 +00:00
Merge pull request #60763 from lawnjelly/fti_physics_flush
This commit is contained in:
commit
13bb7c6c35
@ -68,6 +68,7 @@ public:
|
||||
|
||||
virtual void init();
|
||||
virtual bool iteration(float p_time);
|
||||
virtual void iteration_end() {}
|
||||
virtual bool idle(float p_time);
|
||||
virtual void finish();
|
||||
|
||||
|
@ -2257,6 +2257,8 @@ bool Main::iteration() {
|
||||
|
||||
message_queue->flush();
|
||||
|
||||
OS::get_singleton()->get_main_loop()->iteration_end();
|
||||
|
||||
physics_process_ticks = MAX(physics_process_ticks, OS::get_singleton()->get_ticks_usec() - physics_begin); // keep the largest one for reference
|
||||
physics_process_max = MAX(OS::get_singleton()->get_ticks_usec() - physics_begin, physics_process_max);
|
||||
Engine::get_singleton()->_physics_frames++;
|
||||
|
@ -525,6 +525,14 @@ void SceneTree::client_physics_interpolation_remove_spatial(SelfList<Spatial> *p
|
||||
_client_physics_interpolation._spatials_list.remove(p_elem);
|
||||
}
|
||||
|
||||
void SceneTree::iteration_end() {
|
||||
// When physics interpolation is active, we want all pending transforms
|
||||
// to be flushed to the VisualServer before finishing a physics tick.
|
||||
if (_physics_interpolation_enabled) {
|
||||
flush_transform_notifications();
|
||||
}
|
||||
}
|
||||
|
||||
bool SceneTree::iteration(float p_time) {
|
||||
root_lock++;
|
||||
|
||||
|
@ -306,6 +306,7 @@ public:
|
||||
virtual void init();
|
||||
|
||||
virtual bool iteration(float p_time);
|
||||
virtual void iteration_end();
|
||||
virtual bool idle(float p_time);
|
||||
|
||||
virtual void finish();
|
||||
|
Loading…
Reference in New Issue
Block a user