use of dt

This commit is contained in:
Mylloon 2023-05-08 13:41:32 +02:00
parent 5b53048505
commit 378398193c
Signed by: Anri
GPG key ID: A82D63DFF8D1317F
4 changed files with 16 additions and 13 deletions

View file

@ -4,6 +4,6 @@
#include <GL4D/gl4dummies.h> #include <GL4D/gl4dummies.h>
// Récupère un delta-temps // Récupère un delta-temps
double get_dt(void); double get_dt(double *, GLboolean);
#endif #endif

View file

@ -60,13 +60,11 @@ static void draw(void) {
glClearColor(0, 0, 0, 1); glClearColor(0, 0, 0, 1);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
static Uint32 t0 = -1; static double t0 = -1;
GLfloat t, d; if (t0 == -1) {
if ((int)t0 == -1) { t0 = gl4dGetElapsedTime();
t0 = SDL_GetTicks();
} }
t = (GLfloat)(SDL_GetTicks() - t0) / 1000.f; GLfloat dt = .25f * (GLfloat)get_dt(&t0, GL_FALSE) - 1.1f;
d = -1.1f + .25f * t;
GLfloat ratio = (GLfloat)_dims[0] / (GLfloat)_dims[1]; GLfloat ratio = (GLfloat)_dims[0] / (GLfloat)_dims[1];
gl4duBindMatrix(matrix_proj); gl4duBindMatrix(matrix_proj);
@ -76,7 +74,7 @@ static void draw(void) {
gl4duBindMatrix(matrix_modview); gl4duBindMatrix(matrix_modview);
gl4duLoadIdentityf(); gl4duLoadIdentityf();
gl4duTranslatef(0.f, d, -2.f); gl4duTranslatef(0.f, dt, -2.f);
glActiveTexture(GL_TEXTURE0); glActiveTexture(GL_TEXTURE0);
glBindTexture(GL_TEXTURE_2D, _texId); glBindTexture(GL_TEXTURE_2D, _texId);
gl4duScalef(1, 0.3f, 1); gl4duScalef(1, 0.3f, 1);

View file

@ -40,6 +40,9 @@ static void init(void) {
} }
static void draw(void) { static void draw(void) {
static double t0 = 0;
double dt = get_dt(&t0, GL_TRUE);
glClearColor(0.2f, 0.2f, 0.8f, 1); glClearColor(0.2f, 0.2f, 0.8f, 1);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glUseProgram(_pId); glUseProgram(_pId);
@ -47,6 +50,7 @@ static void draw(void) {
const GLfloat couleur_plan[] = {0.3f, 0.3f, 0.3f, 1}, const GLfloat couleur_plan[] = {0.3f, 0.3f, 0.3f, 1},
couleur_heros[] = {1, 1, 0, 1}; couleur_heros[] = {1, 1, 0, 1};
GLint couleur_loc = glGetUniformLocation(_pId, "couleur"); GLint couleur_loc = glGetUniformLocation(_pId, "couleur");
static double deplacement = 0;
const GLfloat lumpos[] = {1, 2, 3, 1}; const GLfloat lumpos[] = {1, 2, 3, 1};
GLint lum_loc = glGetUniformLocation(_pId, "lumpos"); GLint lum_loc = glGetUniformLocation(_pId, "lumpos");
@ -78,6 +82,6 @@ static void draw(void) {
gl4duSendMatrices(); gl4duSendMatrices();
glUniform4fv(couleur_loc, 1, couleur_heros); glUniform4fv(couleur_loc, 1, couleur_heros);
gl4dgDraw(_herosId); gl4dgDraw(_herosId);
deplacement += 0.4 * M_PI * dt;
glUseProgram(0); glUseProgram(0);
} }

View file

@ -1,9 +1,10 @@
#include "../includes/utils.h" #include "../includes/utils.h"
double get_dt(void) { double get_dt(double *t0, GLboolean override_t0) {
static double t0 = 0.0f; double t = gl4dGetElapsedTime(), dt = (t - *t0) / 1000.0;
double t = gl4dGetElapsedTime(), dt = (t - t0) / 1000.0; if (override_t0) {
t0 = t; *t0 = t;
}
return dt; return dt;
} }