diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2022-11-15 16:24:56 +0100 |
---|---|---|
committer | Rémi Verschelde <rverschelde@gmail.com> | 2022-11-15 16:24:56 +0100 |
commit | 94e9860b82688d45c2a00380d55ea3a10b62580a (patch) | |
tree | 4fe668fc62f862fa6de8f0c0532be9d42c1d7c6e /core/config | |
parent | e1ddd74b23f2accc8dbd27f079561af458cbf04d (diff) | |
parent | 66f7c48e39c6479f11c0dd2426c093b0f2910f76 (diff) |
Merge pull request #65836 from Calinou/add-max-physics-steps-per-frame-setting
Implement adjusting the maximum number of physics steps per rendered frame
Diffstat (limited to 'core/config')
-rw-r--r-- | core/config/engine.cpp | 9 | ||||
-rw-r--r-- | core/config/engine.h | 4 |
2 files changed, 13 insertions, 0 deletions
diff --git a/core/config/engine.cpp b/core/config/engine.cpp index 21e910be5b..7aa5f4d06d 100644 --- a/core/config/engine.cpp +++ b/core/config/engine.cpp @@ -48,6 +48,15 @@ int Engine::get_physics_ticks_per_second() const { return ips; } +void Engine::set_max_physics_steps_per_frame(int p_max_physics_steps) { + ERR_FAIL_COND_MSG(p_max_physics_steps <= 0, "Maximum number of physics steps per frame must be greater than 0."); + max_physics_steps_per_frame = p_max_physics_steps; +} + +int Engine::get_max_physics_steps_per_frame() const { + return max_physics_steps_per_frame; +} + void Engine::set_physics_jitter_fix(double p_threshold) { if (p_threshold < 0) { p_threshold = 0; diff --git a/core/config/engine.h b/core/config/engine.h index 21517e46b7..1b179c5727 100644 --- a/core/config/engine.h +++ b/core/config/engine.h @@ -63,6 +63,7 @@ private: int _max_fps = 0; double _time_scale = 1.0; uint64_t _physics_frames = 0; + int max_physics_steps_per_frame = 8; double _physics_interpolation_fraction = 0.0f; bool abort_on_gpu_errors = false; bool use_validation_layers = false; @@ -93,6 +94,9 @@ public: virtual void set_physics_ticks_per_second(int p_ips); virtual int get_physics_ticks_per_second() const; + virtual void set_max_physics_steps_per_frame(int p_max_physics_steps); + virtual int get_max_physics_steps_per_frame() const; + void set_physics_jitter_fix(double p_threshold); double get_physics_jitter_fix() const; |