Fix copy issues

This commit is contained in:
2026-03-29 14:25:10 -05:00
parent e56ff20e2d
commit 26fafab47a
5 changed files with 11 additions and 10 deletions

View File

@@ -84,7 +84,7 @@ void cameraGetViewMatrix(camera_t *camera, mat4 dest) {
assertNotNull(dest, "Destination matrix must not be null"); assertNotNull(dest, "Destination matrix must not be null");
if(camera->viewType == CAMERA_VIEW_TYPE_MATRIX) { if(camera->viewType == CAMERA_VIEW_TYPE_MATRIX) {
glm_mat4_copy(camera->view, dest); glm_mat4_ucopy(camera->view, dest);
} else if(camera->viewType == CAMERA_VIEW_TYPE_LOOKAT) { } else if(camera->viewType == CAMERA_VIEW_TYPE_LOOKAT) {
glm_mat4_identity(dest); glm_mat4_identity(dest);
glm_lookat( glm_lookat(

View File

@@ -60,15 +60,15 @@ errorret_t shaderSetMatrixDolphin(
if(stringCompare(name, SHADER_UNLIT_PROJECTION) == 0) { if(stringCompare(name, SHADER_UNLIT_PROJECTION) == 0) {
shader->dirtyMatrix |= SHADER_DOLPHIN_DIRTY_PROJ; shader->dirtyMatrix |= SHADER_DOLPHIN_DIRTY_PROJ;
glm_mat4_copy(mat, shader->proj); glm_mat4_ucopy(mat, shader->proj);
} else if(stringCompare(name, SHADER_UNLIT_VIEW) == 0) { } else if(stringCompare(name, SHADER_UNLIT_VIEW) == 0) {
shader->dirtyMatrix |= SHADER_DOLPHIN_DIRTY_VIEW; shader->dirtyMatrix |= SHADER_DOLPHIN_DIRTY_VIEW;
glm_mat4_copy(mat, shader->view); glm_mat4_ucopy(mat, shader->view);
} else if(stringCompare(name, SHADER_UNLIT_MODEL) == 0) { } else if(stringCompare(name, SHADER_UNLIT_MODEL) == 0) {
shader->dirtyMatrix |= SHADER_DOLPHIN_DIRTY_MODEL; shader->dirtyMatrix |= SHADER_DOLPHIN_DIRTY_MODEL;
glm_mat4_copy(mat, shader->model); glm_mat4_ucopy(mat, shader->model);
} else { } else {
assertUnreachable("Cannot use a custom matrix on dolphin."); assertUnreachable("Cannot use a custom matrix on dolphin.");

View File

@@ -59,7 +59,7 @@ void cameraPushMatrixGL(camera_t *camera) {
switch(camera->viewType) { switch(camera->viewType) {
case CAMERA_VIEW_TYPE_MATRIX: case CAMERA_VIEW_TYPE_MATRIX:
glm_mat4_copy(camera->view, view); glm_mat4_ucopy(camera->view, view);
break; break;
case CAMERA_VIEW_TYPE_LOOKAT: case CAMERA_VIEW_TYPE_LOOKAT:

View File

@@ -181,17 +181,18 @@ errorret_t shaderSetMatrixGL(
SHADER_LEGACY.boundShader == shader, SHADER_LEGACY.boundShader == shader,
"Shader must be bound to set legacy matrices." "Shader must be bound to set legacy matrices."
); );
// Use unaligned copy to safely handle possibly unaligned input matrices
if(stringCompare(name, SHADER_UNLIT_PROJECTION) == 0) { if(stringCompare(name, SHADER_UNLIT_PROJECTION) == 0) {
SHADER_LEGACY.dirty |= SHADER_LEGACY_DIRTY_PROJ; SHADER_LEGACY.dirty |= SHADER_LEGACY_DIRTY_PROJ;
glm_mat4_copy(mat, shader->proj); glm_mat4_ucopy(mat, shader->proj);
} else if(stringCompare(name, SHADER_UNLIT_VIEW) == 0) { } else if(stringCompare(name, SHADER_UNLIT_VIEW) == 0) {
SHADER_LEGACY.dirty |= SHADER_LEGACY_DIRTY_VIEW; SHADER_LEGACY.dirty |= SHADER_LEGACY_DIRTY_VIEW;
glm_mat4_copy(mat, shader->view); glm_mat4_ucopy(mat, shader->view);
} else if(stringCompare(name, SHADER_UNLIT_MODEL) == 0) { } else if(stringCompare(name, SHADER_UNLIT_MODEL) == 0) {
SHADER_LEGACY.dirty |= SHADER_LEGACY_DIRTY_MODEL; SHADER_LEGACY.dirty |= SHADER_LEGACY_DIRTY_MODEL;
glm_mat4_copy(mat, shader->model); glm_mat4_ucopy(mat, shader->model);
} else { } else {
assertUnreachable("Cannot use a custom matrix on legacy opengl."); assertUnreachable("Cannot use a custom matrix on legacy opengl.");

View File

@@ -25,8 +25,8 @@ errorret_t textureInitGL(
switch(format) { switch(format) {
case TEXTURE_FORMAT_RGBA: case TEXTURE_FORMAT_RGBA:
glTexImage2D( glTexImage2D(
GL_TEXTURE_2D, 0, format, width, height, 0, GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0,
format, GL_UNSIGNED_BYTE, (void*)data.rgbaColors GL_RGBA, GL_UNSIGNED_BYTE, (void*)data.rgbaColors
); );
errorChain(errorGLCheck()); errorChain(errorGLCheck());
break; break;