summaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorraysan5 <[email protected]>2019-12-04 17:59:17 +0100
committerraysan5 <[email protected]>2019-12-04 17:59:17 +0100
commit08adb4b8c3085641a7e316f1489a4111dbc9d5c0 (patch)
tree54e56296caca00929a432614df0909cf6268aac3 /src
parent3d936061c8a39e4918399a805aac6b33ed97310a (diff)
downloadraylib-08adb4b8c3085641a7e316f1489a4111dbc9d5c0.tar.gz
raylib-08adb4b8c3085641a7e316f1489a4111dbc9d5c0.zip
Check and testing timming #865
Diffstat (limited to 'src')
-rw-r--r--src/core.c17
-rw-r--r--src/text.c4
2 files changed, 12 insertions, 9 deletions
diff --git a/src/core.c b/src/core.c
index c82a0613..583be4df 100644
--- a/src/core.c
+++ b/src/core.c
@@ -1265,27 +1265,29 @@ void EndDrawing(void)
SwapBuffers(); // Copy back buffer to front buffer
PollInputEvents(); // Poll user events
-
+
// Frame time control system
currentTime = GetTime();
drawTime = currentTime - previousTime;
previousTime = currentTime;
frameTime = updateTime + drawTime;
-
+
// Wait for some milliseconds...
if (frameTime < targetTime)
{
Wait((float)(targetTime - frameTime)*1000.0f);
currentTime = GetTime();
- double extraTime = currentTime - previousTime;
+ double waitTime = currentTime - previousTime;
previousTime = currentTime;
- frameTime += extraTime;
+ frameTime += waitTime; // Total frame time: update + draw + wait
+
+ //SetWindowTitle(FormatText("Update: %f, Draw: %f, Req.Wait: %f, Real.Wait: %f, Total: %f, Target: %f\n",
+ // (float)updateTime, (float)drawTime, (float)(targetTime - (updateTime + drawTime)),
+ // (float)waitTime, (float)frameTime, (float)targetTime));
}
-
- return;
}
// Initialize 2D mode with custom camera (2D)
@@ -1588,13 +1590,12 @@ void SetTargetFPS(int fps)
// Returns current FPS
int GetFPS(void)
{
- return (int)(1.0f/GetFrameTime());
+ return (int)roundf(1.0f/GetFrameTime());
}
// Returns time in seconds for last frame drawn
float GetFrameTime(void)
{
- // NOTE: We round value to milliseconds
return (float)frameTime;
}
diff --git a/src/text.c b/src/text.c
index 3a939ba6..0ebec3c2 100644
--- a/src/text.c
+++ b/src/text.c
@@ -759,7 +759,7 @@ void UnloadFont(Font font)
// NOTE: Uses default font
void DrawFPS(int posX, int posY)
{
- // NOTE: We are rendering fps every second for better viewing on high framerates
+ // NOTE: We are rendering fps every certain time for better viewing on high framerates
static int fps = 0;
static int counter = 0;
@@ -773,6 +773,8 @@ void DrawFPS(int posX, int posY)
counter = 0;
}
+ // TODO: Find a better way to calculate FPS, maybe calculate the mean of multiple measures?
+
// NOTE: We have rounding errors every frame, so it oscillates a lot
DrawText(TextFormat("%2i FPS", fps), posX, posY, 20, LIME);
}