diff --git a/src/dusk/display/camera/camera.c b/src/dusk/display/camera/camera.c index bcabaf0..d3ec349 100644 --- a/src/dusk/display/camera/camera.c +++ b/src/dusk/display/camera/camera.c @@ -84,7 +84,7 @@ void cameraGetViewMatrix(camera_t *camera, mat4 dest) { assertNotNull(dest, "Destination matrix must not be null"); 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) { glm_mat4_identity(dest); glm_lookat( diff --git a/src/duskdolphin/display/shader/shaderdolphin.c b/src/duskdolphin/display/shader/shaderdolphin.c index 87c348a..a261cd2 100644 --- a/src/duskdolphin/display/shader/shaderdolphin.c +++ b/src/duskdolphin/display/shader/shaderdolphin.c @@ -60,15 +60,15 @@ errorret_t shaderSetMatrixDolphin( if(stringCompare(name, SHADER_UNLIT_PROJECTION) == 0) { 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) { 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) { shader->dirtyMatrix |= SHADER_DOLPHIN_DIRTY_MODEL; - glm_mat4_copy(mat, shader->model); + glm_mat4_ucopy(mat, shader->model); } else { assertUnreachable("Cannot use a custom matrix on dolphin."); diff --git a/src/duskgl/display/camera/cameragl.c b/src/duskgl/display/camera/cameragl.c index 528e213..495af4d 100644 --- a/src/duskgl/display/camera/cameragl.c +++ b/src/duskgl/display/camera/cameragl.c @@ -59,7 +59,7 @@ void cameraPushMatrixGL(camera_t *camera) { switch(camera->viewType) { case CAMERA_VIEW_TYPE_MATRIX: - glm_mat4_copy(camera->view, view); + glm_mat4_ucopy(camera->view, view); break; case CAMERA_VIEW_TYPE_LOOKAT: diff --git a/src/duskgl/display/shader/shadergl.c b/src/duskgl/display/shader/shadergl.c index 945712d..2ca4ff1 100644 --- a/src/duskgl/display/shader/shadergl.c +++ b/src/duskgl/display/shader/shadergl.c @@ -181,17 +181,18 @@ errorret_t shaderSetMatrixGL( SHADER_LEGACY.boundShader == shader, "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) { 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) { 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) { SHADER_LEGACY.dirty |= SHADER_LEGACY_DIRTY_MODEL; - glm_mat4_copy(mat, shader->model); + glm_mat4_ucopy(mat, shader->model); } else { assertUnreachable("Cannot use a custom matrix on legacy opengl."); diff --git a/src/duskgl/display/texture/texturegl.c b/src/duskgl/display/texture/texturegl.c index 70675d3..c10deef 100644 --- a/src/duskgl/display/texture/texturegl.c +++ b/src/duskgl/display/texture/texturegl.c @@ -25,8 +25,8 @@ errorret_t textureInitGL( switch(format) { case TEXTURE_FORMAT_RGBA: glTexImage2D( - GL_TEXTURE_2D, 0, format, width, height, 0, - format, GL_UNSIGNED_BYTE, (void*)data.rgbaColors + GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0, + GL_RGBA, GL_UNSIGNED_BYTE, (void*)data.rgbaColors ); errorChain(errorGLCheck()); break;