switch to microseconds
This commit is contained in:
@@ -81,25 +81,17 @@ namespace OpenVulkano
|
|||||||
{
|
{
|
||||||
if (newFpsCap < 0)
|
if (newFpsCap < 0)
|
||||||
{
|
{
|
||||||
cappedFrameTime = std::chrono::milliseconds(0);
|
cappedFrameTime = std::chrono::microseconds(0);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
cappedFrameTime = std::chrono::milliseconds(1000 / newFpsCap);
|
cappedFrameTime = std::chrono::microseconds(1'000'000 / newFpsCap);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void GraphicsAppManager::OnCappedFPS(const auto& frameStartTime)
|
void GraphicsAppManager::OnCappedFPS(const auto& frameStartTime)
|
||||||
{
|
{
|
||||||
int32_t fpsCap = engineConfig->GetFpsCap();
|
auto frameEndTime = frameStartTime + cappedFrameTime;
|
||||||
fpsCapRemainder += 1000 % fpsCap;
|
|
||||||
auto expectedFrameTime = cappedFrameTime;
|
|
||||||
if (fpsCapRemainder >= fpsCap)
|
|
||||||
{
|
|
||||||
expectedFrameTime += std::chrono::milliseconds(1);
|
|
||||||
fpsCapRemainder -= fpsCap;
|
|
||||||
}
|
|
||||||
auto frameEndTime = frameStartTime + expectedFrameTime;
|
|
||||||
while (clock::now() < frameEndTime)
|
while (clock::now() < frameEndTime)
|
||||||
{
|
{
|
||||||
std::this_thread::yield();
|
std::this_thread::yield();
|
||||||
|
|||||||
@@ -37,8 +37,8 @@ namespace OpenVulkano
|
|||||||
RenderAPI::RenderApi renderApi;
|
RenderAPI::RenderApi renderApi;
|
||||||
bool paused = false, running = false;
|
bool paused = false, running = false;
|
||||||
float fpsTimer = 0, avgFps = 0, avgFrameTime = 0;
|
float fpsTimer = 0, avgFps = 0, avgFrameTime = 0;
|
||||||
uint64_t frameCount = 0, lastFrameCount = 0, fpsCapRemainder = 0;
|
uint64_t frameCount = 0, lastFrameCount = 0;
|
||||||
std::chrono::milliseconds cappedFrameTime = std::chrono::milliseconds(0);
|
std::chrono::microseconds cappedFrameTime = std::chrono::microseconds(0);
|
||||||
Timer frameTimer;
|
Timer frameTimer;
|
||||||
std::string windowTitleFormat;
|
std::string windowTitleFormat;
|
||||||
Input::InputManager* inputManager;
|
Input::InputManager* inputManager;
|
||||||
|
|||||||
Reference in New Issue
Block a user