#include "main.h" #include #include #include mat4 ortho[] = { { {1, 0, 0, 0}, {0, 1, 0, 0}, {0, 0, 1, 0}, {0, 0, 0, 1}, }, { {0, 1, 0, 0}, {-1, 0, 0, 0}, {0, 0, 1, 0}, {0, 0, 0, 1}, }, { {0, 0, 1, 0}, {0, 1, 0, 0}, {-1, 0, 0, 0}, {0, 0, 0, 1}, }, }; void load_fix_matrix(id_t shader, float ratio) { mat4 m, n; const int d = 7; glm_lookat((vec3){0, 0, -d}, (vec3){0, 0, 0}, (vec3){0, 1, 0}, m); glm_perspective(CGLM_PI / 4, ratio, d - 3, d + 3, n); glm_mat4_mul(n, m, m); load_mat4_to_shader(shader, "fix", (mat4_t)m); } void load_mdl_matrix(id_t shader, unsigned char i, unsigned char c) { load_float_to_shader(shader, "idx", c); load_mat4_to_shader(shader, "mdl", (mat4_t)ortho[i]); } void load_rot_matrix(id_t shader, quat_t q) { mat4 m; glm_quat_mat4(q, m); load_mat4_to_shader(shader, "rot", (mat4_t)m); }