Working on shader stuff

This commit is contained in:
2025-02-25 16:30:35 -06:00
parent 4ff3cf6c5c
commit c29d435b06
17 changed files with 157 additions and 22 deletions

View File

@ -0,0 +1,10 @@
# Copyright (c) 2025 Dominic Masters
#
# This software is released under the MIT License.
# https://opensource.org/licenses/MIT
# Sources
target_sources(${DUSK_TARGET_NAME}
PRIVATE
transforms.c
)

View File

@ -0,0 +1,7 @@
/**
* Copyright (c) 2025 Dominic Masters
*
* This software is released under the MIT License.
* https://opensource.org/licenses/MIT
*/

View File

@ -0,0 +1,46 @@
/**
* 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() {
shaderBufferInit(&TRANSFORMS_BUFFER, sizeof(transformsdata_t));
glm_mat4_identity(TRANSFORMS_DATA.projection);
glm_mat4_identity(TRANSFORMS_DATA.view);
}
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],
0.1f,
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);
}

View File

@ -0,0 +1,35 @@
/**
* Copyright (c) 2025 Dominic Masters
*
* This software is released under the MIT License.
* https://opensource.org/licenses/MIT
*/
#pragma once
#include "display/shader/shaderbuffer.h"
#define TRANSFORMS_BLOCK_NAME "b_Transforms"
typedef struct {
mat4 projection;
mat4 view;
vec2 resolution;
} transformsdata_t;
extern shaderbuffer_t TRANSFORMS_BUFFER;
extern transformsdata_t TRANSFORMS_DATA;
/**
* Initializes the transforms buffer and data.
*/
void transformsInit();
/**
* Updates the transforms buffer with the current data.
*/
void transformsUpdate();
/**
* Destroys the transforms buffer.
*/
void transformsDispose();