This commit is contained in:
Rakarake 2026-02-24 15:57:27 +01:00
parent c3c39a77cd
commit e84950178f
3 changed files with 14 additions and 1 deletions

1
.gitignore vendored
View file

@ -6,3 +6,4 @@ wlr-layer-shell-unstable-v1-protocol.h
wlr-layer-shell-unstable-v1-protocol.c
xdg-shell-protocol.h
xdg-shell-protocol.c
shaders/

View file

@ -45,6 +45,7 @@ const char *fragment_header_src =
"layout(location = 0) out vec4 color;\n"
"uniform vec2 iResolution;\n"
"uniform float iTime;\n"
"uniform int iFrame;\n"
"void mainImage(out vec4 fragColor, in vec2 fragCoord);\n"
"void main() {\n"
" mainImage(color, gl_FragCoord.xy);\n"
@ -155,7 +156,11 @@ Renderer new_renderer() {
(void *)0
);
Renderer renderer = { "", 0, vao };
Renderer renderer;
renderer.shader_path = "";
renderer.shader = 0;
renderer.vao = vao;
renderer.frame_nr = 0;
return renderer;
}
@ -177,6 +182,8 @@ void render(Renderer *state, int w, int h, double time, char *shader_path, int r
state->shader_path = shader_path;
}
state->frame_nr++;
// Rendorrrr
glViewport(0, 0, w, h);
@ -192,6 +199,9 @@ void render(Renderer *state, int w, int h, double time, char *shader_path, int r
int uniform_iTime = glGetUniformLocation(state->shader, "iTime");
glUniform1f(uniform_iTime, (float)time);
int uniform_iFrame = glGetUniformLocation(state->shader, "iFrame");
glUniform1i(uniform_iFrame, state->frame_nr);
glBindVertexArray(state->vao);
glDrawArrays(GL_TRIANGLES, 0, 6);
}

View file

@ -7,6 +7,8 @@ typedef struct Renderer {
char *shader_path;
unsigned int shader;
unsigned int vao;
/// The currently rendered frame.
unsigned int frame_nr;
struct stat shader_file_modified;
} Renderer;