From cc913d364f90b48641e265c977be666515f4cf46 Mon Sep 17 00:00:00 2001 From: Vaimer9 Date: Mon, 23 Jan 2023 16:23:47 +0530 Subject: [PATCH] Matrices! Changed mat3, mat4 types to sized arrays --- include/core/matrix.h | 4 ++-- src/Shaders.c | 18 +++++++++++++++++- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/include/core/matrix.h b/include/core/matrix.h index 556bc47..f11fed8 100644 --- a/include/core/matrix.h +++ b/include/core/matrix.h @@ -1,4 +1,4 @@ #pragma once -typedef float* mat3; -typedef float* mat4; +typedef float mat3[9]; +typedef float mat4[16]; diff --git a/src/Shaders.c b/src/Shaders.c index e06b124..c34288c 100644 --- a/src/Shaders.c +++ b/src/Shaders.c @@ -144,6 +144,14 @@ void upload_shader_vec4(shader_program program, const char* var, vec4 value) void upload_shader_mat3(shader_program program, const char* var, mat3 value) { + if (!value) + { + #ifdef MUZZLE_VERBOSE + log_status(STATUS_ERROR, "Failed to upload mat3 to shader"); + #endif + return; + } + GLuint uniform_location = glGetUniformLocation(program, var); glUseProgram(program); glUniformMatrix3fv(uniform_location, 1, 0, value); @@ -153,8 +161,16 @@ void upload_shader_mat3(shader_program program, const char* var, mat3 value) #endif } -void upload_shader_mat4(shader_program program, const char* var, mat value) +void upload_shader_mat4(shader_program program, const char* var, mat4 value) { + if (!value) + { + #ifdef MUZZLE_VERBOSE + log_status(STATUS_ERROR, "Failed to upload mat4 to shader"); + #endif + return; + } + GLuint uniform_location = glGetUniformLocation(program, var); glUseProgram(program); glUniformMatrix3fv(uniform_location, 1, 0, value);