add fps display

This commit is contained in:
Luca Conte 2025-03-06 03:46:55 +01:00
parent 6b87b05634
commit 9516aeeb6a
1 changed files with 32 additions and 0 deletions

View File

@ -2,11 +2,15 @@
#include <GLFW/glfw3.h>
#include <stdio.h>
#include <string.h>
#include <time.h>
#include <unistd.h>
#include "shader.h"
#include "log.h"
#include "src/shader.h"
#define STATUS_INTERVAL 0.5
GLuint program;
GLuint vertexArrayObject;
@ -14,6 +18,27 @@ GLuint vertexArrayObject;
GLuint initialWindowWidth = 800;
GLuint initialWindowHeight = 600;
int frameCount = 0;
struct timespec last_time, current_time;
void initialiseStatusDisplay() {
clock_gettime(CLOCK_MONOTONIC, &last_time);
}
void updateStatusDisplay() {
frameCount++;
clock_gettime(CLOCK_MONOTONIC, &current_time);
double elapsed = (current_time.tv_sec - last_time.tv_sec) +
(current_time.tv_nsec - last_time.tv_nsec) / 1e9;
if (elapsed >= STATUS_INTERVAL) {
double fps = frameCount / elapsed;
frameCount = 0;
last_time = current_time;
printf("\rFPS: %.2f ", fps);
fflush(stdout);
}
}
void init(void) {
INFO("Compiling Shaders...");
@ -55,12 +80,14 @@ void init(void) {
0.5f, -0.5f, 1.0f, 1.0f, 0.0f
};
DEBUG("Creating vertext buffer");
GLuint vertexBuffer;
glGenBuffers(1, &vertexBuffer);
glBindBuffer(GL_ARRAY_BUFFER, vertexBuffer);
glBufferData(GL_ARRAY_BUFFER, sizeof(triangleVertices), triangleVertices, GL_STATIC_DRAW);
glBindBuffer(GL_ARRAY_BUFFER, 0);
DEBUG("Creating vertex array object");
// create vertex array object
glGenVertexArrays(1, &vertexArrayObject);
glBindVertexArray(vertexArrayObject);
@ -86,9 +113,14 @@ void init(void) {
glClearColor(0.1f, 0.1f, 0.1f, 1.0f);
glViewport(0, 0, initialWindowWidth, initialWindowHeight);
initialiseStatusDisplay();
INFO("--- Initialisation done ---");
}
void draw(void) {
updateStatusDisplay();
glClear(GL_COLOR_BUFFER_BIT);
glUseProgram(program);