diff options
Diffstat (limited to 'src/main.cpp')
| -rw-r--r-- | src/main.cpp | 18 |
1 files changed, 10 insertions, 8 deletions
| diff --git a/src/main.cpp b/src/main.cpp index 62c8b16..bc7832d 100644 --- a/src/main.cpp +++ b/src/main.cpp | |||
| @@ -42,22 +42,24 @@ int main() | |||
| 42 | curGameState = new MapView(m, 100, 100); | 42 | curGameState = new MapView(m, 100, 100); |
| 43 | 43 | ||
| 44 | Texture* buffer = createTexture(GAME_WIDTH, GAME_HEIGHT); | 44 | Texture* buffer = createTexture(GAME_WIDTH, GAME_HEIGHT); |
| 45 | //Texture* buffer = loadTextureFromBMP("../res/title.png"); | ||
| 45 | 46 | ||
| 46 | double lastTime = glfwGetTime(); | 47 | double lastTime = glfwGetTime(); |
| 47 | double accum = 0.0; | 48 | int nbFrames = 0; |
| 48 | 49 | ||
| 49 | while (!(quit || glfwWindowShouldClose(window))) | 50 | while (!(quit || glfwWindowShouldClose(window))) |
| 50 | { | 51 | { |
| 51 | // Tick! | 52 | double currentTime = glfwGetTime(); |
| 52 | accum += (glfwGetTime() - lastTime); | 53 | nbFrames++; |
| 53 | if (accum < 0) accum = 0; | 54 | if (currentTime - lastTime >= 1.0) |
| 54 | while (accum > SECONDS_PER_FRAME) | ||
| 55 | { | 55 | { |
| 56 | curGameState->tick(); | 56 | // printf and reset timer |
| 57 | accum -= SECONDS_PER_FRAME; | 57 | printf("%f ms/frame\n", 1000.0/double(nbFrames)); |
| 58 | nbFrames = 0; | ||
| 59 | lastTime += 1.0; | ||
| 58 | } | 60 | } |
| 59 | 61 | ||
| 60 | lastTime = glfwGetTime(); | 62 | curGameState->tick(); |
| 61 | 63 | ||
| 62 | // Do rendering | 64 | // Do rendering |
| 63 | curGameState->render(buffer); | 65 | curGameState->render(buffer); |
