mirror of
https://github.com/MihailRis/voxelcore.git
synced 2026-10-04 18:41:51 +00:00
feat: refresh on demand in menu (adaptive framerate)
This commit is contained in:
parent
ba0977a6f0
commit
7fc3703ad2
8 changed files with 56 additions and 16 deletions
|
|
@ -8,6 +8,7 @@
|
|||
#include "window/input.hpp"
|
||||
#include "debug/Logger.hpp"
|
||||
#include "graphics/core/ImageData.hpp"
|
||||
#include "util/platform.hpp"
|
||||
|
||||
static debug::Logger logger("window-control");
|
||||
|
||||
|
|
@ -78,15 +79,19 @@ void WindowControl::toggleFullscreen() {
|
|||
}
|
||||
}
|
||||
|
||||
void WindowControl::nextFrame() {
|
||||
void WindowControl::nextFrame(bool waitForRefresh) {
|
||||
const auto& settings = engine.getSettings();
|
||||
auto& window = engine.getWindow();
|
||||
auto& input = engine.getInput();
|
||||
window.setFramerate(
|
||||
window.isIconified() && settings.display.limitFpsIconified.get()
|
||||
? 20
|
||||
: settings.display.framerate.get()
|
||||
);
|
||||
if (waitForRefresh) {
|
||||
window.setFramerate(Window::FPS_UNLIMITED);
|
||||
} else {
|
||||
window.setFramerate(
|
||||
window.isIconified() && settings.display.limitFpsIconified.get()
|
||||
? 20
|
||||
: settings.display.framerate.get()
|
||||
);
|
||||
}
|
||||
window.swapBuffers();
|
||||
input.pollEvents();
|
||||
input.pollEvents(waitForRefresh);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue