summaryrefslogtreecommitdiff
path: root/src/rendering
diff options
context:
space:
mode:
author0undefined <oscar@nelin.dk>2025-06-30 04:41:15 +0000
committer0undefined <oscar@nelin.dk>2025-06-30 04:41:45 +0000
commitfe0a06466adec45b1d957cb3cf408c917105a957 (patch)
treef58eba630c89fde069775aa76aa7920aa82a7df8 /src/rendering
parent9990e4e91d1bd985bb947d419d4b5400ac8ffde0 (diff)
Move some MVP calculation out of loop
Diffstat (limited to 'src/rendering')
-rw-r--r--src/rendering/src/rendering.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/src/rendering/src/rendering.c b/src/rendering/src/rendering.c
index 4296a7a..8932cfc 100644
--- a/src/rendering/src/rendering.c
+++ b/src/rendering/src/rendering.c
@@ -449,9 +449,11 @@ void render_present(Window* w) {
mat4 view; // view
vec3 angle; // viewing angle / direction of the camera
+ mat4 camera_matrix;
glm_vec3_sub(c.pos, c.dir, angle);
glm_lookat(c.pos, angle, GLM_YUP, view);
+ glm_mat4_mul(c.per, view, camera_matrix);
for (i32 drawcall_idx = 0; drawcall_idx < drawcall_len; drawcall_idx++) {
RenderDrawCall dc = drawcalls[drawcall_idx];
@@ -485,11 +487,8 @@ void render_present(Window* w) {
model[3][1] = pos[1];
model[3][2] = pos[2];
- { // modelviewprojection = p * view * model
- mat4 t;
- glm_mat4_mul(view, model, t);
- glm_mat4_mul(c.per, t, modelviewprojection);
- }
+ // modelviewprojection = p * view * model
+ glm_mat4_mul(model, camera_matrix, modelviewprojection);
// TODO: Do this only once during initialization
gl->UniformMatrix4fv(o->mvp, 1, GL_FALSE, &modelviewprojection[0][0]);