]> git.tdb.fi Git - libs/gl.git/blobdiff - source/core/datatype.cpp
Use DataType instead of GLenum for Program variable types
[libs/gl.git] / source / core / datatype.cpp
index c43b8f44315432847e8d93ba55776ebb434d770f..af7446eb1f86916e23af1c2c84cd4e57c7fcf3ca 100644 (file)
@@ -94,5 +94,23 @@ GLenum get_gl_type(DataType type)
        return ptr->gl_type;
 }
 
+DataType from_gl_type(GLenum gl_type)
+{
+       for(unsigned i=0; i<type_map_size; ++i)
+               if(type_map[i].gl_type==gl_type)
+                       return type_map[i].type;
+       throw invalid_argument("from_gl_type");
+}
+
+void require_type(DataType type)
+{
+       unsigned rows = ((type>>12)&3)+1;
+       unsigned cols = ((type>>14)&4)+1;
+       if(rows>1 && cols>1 && rows!=cols)
+               static Require _req(NV_non_square_matrices);
+       if((type&0x200) && get_type_size(type)/(rows*cols)==8)
+               static Require _req(ARB_gpu_shader_fp64);
+}
+
 } // namespace GL
 } // namespace Msp