add framerate limiter
This commit is contained in:
parent
9ce2fa6124
commit
e9264127c5
13
imgui.ini
Normal file
13
imgui.ini
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
[Window][Debug##Default]
|
||||||
|
Pos=60,60
|
||||||
|
Size=400,400
|
||||||
|
Collapsed=0
|
||||||
|
|
||||||
|
[Window][Debugger]
|
||||||
|
ViewportPos=1587,230
|
||||||
|
ViewportId=0x289D2C3F
|
||||||
|
Size=400,600
|
||||||
|
Collapsed=0
|
||||||
|
|
||||||
|
[Docking][Data]
|
||||||
|
|
|
@ -140,5 +140,13 @@ bool Application::Update()
|
||||||
debugger->Render();
|
debugger->Render();
|
||||||
window->End();
|
window->End();
|
||||||
|
|
||||||
|
std::chrono::microseconds frametime = std::chrono::duration_cast<std::chrono::microseconds>(std::chrono::steady_clock::now() - lastFrameTime);
|
||||||
|
lastFrameTime = std::chrono::steady_clock::now();
|
||||||
|
|
||||||
|
if (frametime < std::chrono::microseconds(1000000 / 60)) {
|
||||||
|
std::this_thread::sleep_for(std::chrono::microseconds(1000000 / 60) - frametime);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
return !window->ShouldClose();
|
return !window->ShouldClose();
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#include <chrono>
|
||||||
|
|
||||||
class Bus;
|
class Bus;
|
||||||
class Window;
|
class Window;
|
||||||
class Debugger;
|
class Debugger;
|
||||||
|
@ -33,4 +35,6 @@ private:
|
||||||
Bus* bus;
|
Bus* bus;
|
||||||
Screen* screen;
|
Screen* screen;
|
||||||
Debugger* debugger;
|
Debugger* debugger;
|
||||||
|
|
||||||
|
std::chrono::steady_clock::time_point lastFrameTime;
|
||||||
};
|
};
|
||||||
|
|
|
@ -161,6 +161,10 @@ void Debugger::Render()
|
||||||
ImGui::InputScalar("Reset Vector", ImGuiDataType_U16, &resetVector, (const void*)0, (const void*)0, "%04X", ImGuiInputTextFlags_CharsHexadecimal);
|
ImGui::InputScalar("Reset Vector", ImGuiDataType_U16, &resetVector, (const void*)0, (const void*)0, "%04X", ImGuiInputTextFlags_CharsHexadecimal);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ImGui::Separator();
|
||||||
|
|
||||||
|
ImGui::Text("FPS: %f", ImGui::GetIO().Framerate);
|
||||||
|
|
||||||
for (DebugWindow* window : windows)
|
for (DebugWindow* window : windows)
|
||||||
{
|
{
|
||||||
if (window->isOpen) window->OnRender();
|
if (window->isOpen) window->OnRender();
|
||||||
|
|
|
@ -11,6 +11,7 @@ Window::Window(uint16_t width, uint16_t height, const std::string& title) :
|
||||||
handle(nullptr)
|
handle(nullptr)
|
||||||
{
|
{
|
||||||
glfwWindowHint(GLFW_RESIZABLE, GLFW_FALSE);
|
glfwWindowHint(GLFW_RESIZABLE, GLFW_FALSE);
|
||||||
|
|
||||||
handle = glfwCreateWindow(width, height, title.c_str(), nullptr, nullptr);
|
handle = glfwCreateWindow(width, height, title.c_str(), nullptr, nullptr);
|
||||||
if (handle == nullptr)
|
if (handle == nullptr)
|
||||||
{
|
{
|
||||||
|
@ -20,6 +21,7 @@ Window::Window(uint16_t width, uint16_t height, const std::string& title) :
|
||||||
}
|
}
|
||||||
|
|
||||||
glfwMakeContextCurrent(handle);
|
glfwMakeContextCurrent(handle);
|
||||||
|
glfwSwapInterval(1);
|
||||||
Input::SetWindow(this);
|
Input::SetWindow(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
12
src/gfx/imgui.ini
Normal file
12
src/gfx/imgui.ini
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
[Window][Debug##Default]
|
||||||
|
Pos=60,60
|
||||||
|
Size=400,400
|
||||||
|
Collapsed=0
|
||||||
|
|
||||||
|
[Window][Debugger]
|
||||||
|
Pos=217,104
|
||||||
|
Size=400,325
|
||||||
|
Collapsed=0
|
||||||
|
|
||||||
|
[Docking][Data]
|
||||||
|
|
30
src/imgui.ini
Normal file
30
src/imgui.ini
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
[Window][Debug##Default]
|
||||||
|
Pos=60,60
|
||||||
|
Size=400,400
|
||||||
|
Collapsed=0
|
||||||
|
|
||||||
|
[Window][Debugger]
|
||||||
|
Pos=506,49
|
||||||
|
Size=490,229
|
||||||
|
Collapsed=0
|
||||||
|
|
||||||
|
[Window][Disassembler]
|
||||||
|
ViewportPos=1326,634
|
||||||
|
ViewportId=0x85E8BACF
|
||||||
|
Size=400,400
|
||||||
|
Collapsed=0
|
||||||
|
|
||||||
|
[Window][CPU Watch]
|
||||||
|
ViewportPos=915,545
|
||||||
|
ViewportId=0x759989B3
|
||||||
|
Size=400,400
|
||||||
|
Collapsed=0
|
||||||
|
|
||||||
|
[Window][Palettes]
|
||||||
|
ViewportPos=1756,613
|
||||||
|
ViewportId=0x550214C1
|
||||||
|
Size=400,291
|
||||||
|
Collapsed=0
|
||||||
|
|
||||||
|
[Docking][Data]
|
||||||
|
|
Loading…
Reference in a new issue