]> git.tdb.fi Git - libs/gl.git/blobdiff - source/program.cpp
Add support for non-square matrix uniforms
[libs/gl.git] / source / program.cpp
index e65a703f77a8d1f5f4b2d769e7c85ca0d439b2bd..37d72e94191b441a1b8be1fcbbd5317db58e794f 100644 (file)
@@ -143,6 +143,26 @@ void Program::link()
 
        query_uniforms();
        query_attributes();
+
+       for(UniformMap::const_iterator i=uniforms.begin(); i!=uniforms.end(); ++i)
+               require_type(i->second.type);
+       for(AttributeMap::const_iterator i=attributes.begin(); i!=attributes.end(); ++i)
+               require_type(i->second.type);
+}
+
+void Program::require_type(GLenum t)
+{
+       switch(t)
+       {
+       case GL_FLOAT_MAT2x3:
+       case GL_FLOAT_MAT2x4:
+       case GL_FLOAT_MAT3x2:
+       case GL_FLOAT_MAT3x4:
+       case GL_FLOAT_MAT4x2:
+       case GL_FLOAT_MAT4x3:
+               { static Require _req(NV_non_square_matrices); }
+               break;
+       }
 }
 
 void Program::query_uniforms()