Check for constant name in SetMaterialConstant and GetMaterialConstant ignores case

This commit is contained in:
n00b87
2025-08-13 21:21:34 -05:00
parent 4b2f517de4
commit 60278f03ba
4 changed files with 224 additions and 216 deletions

View File

@@ -5,6 +5,7 @@
//don't forget to include the CShader source
#include "CShader.h"
#include "rc_fx_shaders.h"
#include "rc_stdlib.h"
#define RC_FX_MATERIAL_BASE_INDEX 128
@@ -666,9 +667,12 @@ void rc_setMaterialConstant(int material_id, std::string m_constant, double n1,
float m_constant_value[] = {n1, n2, n3, n4};
m_constant = rc_intern_trim(rc_intern_lcase(m_constant));
for(int i = 0; i < rc_material[material_id].shader->getUniformVariableCount(); i++)
{
std::string u_var(rc_material[material_id].shader->getUniformVariable(i)->name.c_str());
u_var = rc_intern_trim(rc_intern_lcase(u_var));
if(u_var.compare(m_constant)==0)
{
rc_material[material_id].shader->getUniformVariable(i)->value = m_constant_value;
@@ -690,9 +694,12 @@ void rc_getMaterialConstant(int material_id, std::string m_constant, double* n1,
*n3 = 0;
*n4 = 0;
m_constant = rc_intern_trim(rc_intern_lcase(m_constant));
for(int i = 0; i < rc_material[material_id].shader->getUniformVariableCount(); i++)
{
std::string u_var(rc_material[material_id].shader->getUniformVariable(i)->name.c_str());
u_var = rc_intern_trim(rc_intern_lcase(u_var));
if(u_var.compare(m_constant)==0)
{
switch(rc_material[material_id].shader->getUniformVariable(i)->type)