diff options
author | x2048 <codeforsmile@gmail.com> | 2023-01-06 22:33:25 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-01-06 22:33:25 +0100 |
commit | 6d45c243f85942b20dab58753e735ec89a68f710 (patch) | |
tree | bfe6207d73d1b111af82ea9e5794bdaac4ce26e3 /src/client/clientenvironment.cpp | |
parent | 2715cc8bf68a2cc8cd583cd5b0bb732ee13a1b49 (diff) | |
download | minetest-6d45c243f85942b20dab58753e735ec89a68f710.tar.xz |
Add dynamic exposure correction (#12959)
* Add uniform for frame delta time
* Adjust exposure in logarithmic (EV) space
* Add network support and LUA API
* Add testing mod
Diffstat (limited to 'src/client/clientenvironment.cpp')
-rw-r--r-- | src/client/clientenvironment.cpp | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/client/clientenvironment.cpp b/src/client/clientenvironment.cpp index 0070fa82f..d9b88eb4a 100644 --- a/src/client/clientenvironment.cpp +++ b/src/client/clientenvironment.cpp @@ -531,8 +531,13 @@ void ClientEnvironment::updateFrameTime(bool is_paused) { // if paused, m_frame_time_pause_accumulator increases by dtime, // otherwise, m_frame_time increases by dtime - if (is_paused) + if (is_paused) { + m_frame_dtime = 0; m_frame_time_pause_accumulator = porting::getTimeMs() - m_frame_time; - else - m_frame_time = porting::getTimeMs() - m_frame_time_pause_accumulator; + } + else { + auto new_frame_time = porting::getTimeMs() - m_frame_time_pause_accumulator; + m_frame_dtime = new_frame_time - MYMAX(m_frame_time, m_frame_time_pause_accumulator); + m_frame_time = new_frame_time; + } } |