1
0

Add support for handling non square matrix uniform types in GLSL

Thanks @devsh for the patch.

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@6072 dfc29bdd-3216-0410-991c-e03cc46cb475
This commit is contained in:
cutealien
2020-02-10 14:24:26 +00:00
parent 7beeb3d3f8
commit dbf03c296c
3 changed files with 99 additions and 1 deletions

View File

@@ -633,9 +633,27 @@ bool COpenGLSLMaterialRenderer::setPixelShaderConstant(s32 index, const f32* flo
case GL_FLOAT_MAT2:
Driver->extGlUniformMatrix2fv(UniformInfo[index].location, count/4, false, floats);
break;
case GL_FLOAT_MAT2x3:
Driver->extGlUniformMatrix2x3fv(UniformInfo[index].location, count/6, false, floats);
break;
case GL_FLOAT_MAT2x4:
Driver->extGlUniformMatrix2x4fv(UniformInfo[index].location, count/8, false, floats);
break;
case GL_FLOAT_MAT3x2:
Driver->extGlUniformMatrix3x2fv(UniformInfo[index].location, count/6, false, floats);
break;
case GL_FLOAT_MAT3:
Driver->extGlUniformMatrix3fv(UniformInfo[index].location, count/9, false, floats);
break;
case GL_FLOAT_MAT3x4:
Driver->extGlUniformMatrix3x4fv(UniformInfo[index].location, count/12, false, floats);
break;
case GL_FLOAT_MAT4x2:
Driver->extGlUniformMatrix4x2fv(UniformInfo[index].location, count/8, false, floats);
break;
case GL_FLOAT_MAT4x3:
Driver->extGlUniformMatrix4x3fv(UniformInfo[index].location, count/12, false, floats);
break;
case GL_FLOAT_MAT4:
Driver->extGlUniformMatrix4fv(UniformInfo[index].location, count/16, false, floats);
break;