52 lines
895 B
C
52 lines
895 B
C
#include "main.h"
|
|
#include <cglm/mat4.h>
|
|
#include <cglm/cam.h>
|
|
#include <cglm/quat.h>
|
|
|
|
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 );
|
|
|
|
gload_mat4( shader, "fix", (mat4_t) m );
|
|
}
|
|
|
|
void load_mdl_matrix( id_t shader, unsigned char i, unsigned char c )
|
|
{
|
|
gload_float( shader, "idx", c );
|
|
gload_mat4( shader, "mdl", (mat4_t)ortho[i] );
|
|
}
|
|
|
|
void load_rot_matrix( id_t shader, quat_t q )
|
|
{
|
|
mat4 m;
|
|
glm_quat_mat4( q, m );
|
|
gload_mat4( shader, "rot", (mat4_t)m );
|
|
}
|