50 lines
1.2 KiB
C
50 lines
1.2 KiB
C
/**
|
|
* Copyright (c) 2025 Dominic Masters
|
|
*
|
|
* This software is released under the MIT License.
|
|
* https://opensource.org/licenses/MIT
|
|
*/
|
|
|
|
#include "transforms.h"
|
|
#include "display/window.h"
|
|
|
|
shaderbuffer_t TRANSFORMS_BUFFER;
|
|
transformsdata_t TRANSFORMS_DATA;
|
|
|
|
void transformsInit() {
|
|
memset(&TRANSFORMS_DATA, 0, sizeof(transformsdata_t));
|
|
shaderBufferInit(&TRANSFORMS_BUFFER, sizeof(transformsdata_t));
|
|
|
|
glm_mat4_identity(TRANSFORMS_DATA.projection);
|
|
glm_mat4_identity(TRANSFORMS_DATA.view);
|
|
|
|
TRANSFORMS_DATA.resolution[0] = WINDOW_WIDTH;
|
|
TRANSFORMS_DATA.resolution[1] = WINDOW_HEIGHT;
|
|
}
|
|
|
|
void transformsUpdate() {
|
|
TRANSFORMS_DATA.resolution[0] = WINDOW_WIDTH;
|
|
TRANSFORMS_DATA.resolution[1] = WINDOW_HEIGHT;
|
|
|
|
glm_perspective(
|
|
glm_rad(45.0f),
|
|
TRANSFORMS_DATA.resolution[0] / TRANSFORMS_DATA.resolution[1],
|
|
1.0f,
|
|
100.0f,
|
|
TRANSFORMS_DATA.projection
|
|
);
|
|
|
|
glm_lookat(
|
|
(vec3){ 3, 3, 3 },
|
|
(vec3){ 0, 0, 0 },
|
|
(vec3){ 0, 1, 0 },
|
|
TRANSFORMS_DATA.view
|
|
);
|
|
|
|
shaderBufferBind(&TRANSFORMS_BUFFER);
|
|
shaderBufferSetData(&TRANSFORMS_BUFFER, &TRANSFORMS_DATA);
|
|
}
|
|
|
|
void transformsDispose() {
|
|
shaderBufferDispose(&TRANSFORMS_BUFFER);
|
|
} |