// Copyright (c) 2023 Alex Diener. All rights reserved. #include "PROJECT_NAME/ShaderConfigurationRoom.h" #include "stem_core.h" #define stemobject_implementation ShaderConfigurationRoom stemobject_vtable_begin(); stemobject_vtable_entry(dispose); stemobject_vtable_entry(setViewMatrix); stemobject_vtable_entry(referenceViewMatrix); stemobject_vtable_end(); #define UNIFORM_INDEX_projectionTransform 0 #define UNIFORM_INDEX_viewTransform 1 #define UNIFORM_INDEX_texture 2 ShaderConfigurationRoom * ShaderConfigurationRoom_create(Shader * shader) { stemobject_create_implementation(init, shader) } bool ShaderConfigurationRoom_init(ShaderConfigurationRoom * self, Shader * shader) { call_super(init, self, shader); self->uniforms[UNIFORM_INDEX_texture].value.int1 = 0; return true; } void ShaderConfigurationRoom_dispose(ShaderConfigurationRoom * self) { call_super_virtual(dispose, self); } void ShaderConfigurationRoom_setViewMatrix(ShaderConfigurationRoom * self, Matrix4x4f matrix) { ShaderUniformConfiguration_setMat4_Matrix4x4f(&self->uniforms[UNIFORM_INDEX_viewTransform], matrix); } void ShaderConfigurationRoom_referenceViewMatrix(ShaderConfigurationRoom * self, ShaderUniformConfiguration * uniform) { self->uniforms[UNIFORM_INDEX_viewTransform].reference = uniform; }