X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fcore%2Fdatatype.h;fp=source%2Fcore%2Fdatatype.h;h=a0b80e35772cc303ef88f9f2d586199cc739f799;hb=1a3eb3759708f41f0d57a271f2953e4de0506858;hp=d7414a26905a9469756783896c8f3f15acb1b4a8;hpb=b7f46931a9878b2fd7ec863d520dc22ac89c0baf;p=libs%2Fgl.git diff --git a/source/core/datatype.h b/source/core/datatype.h index d7414a26..a0b80e35 100644 --- a/source/core/datatype.h +++ b/source/core/datatype.h @@ -96,6 +96,18 @@ inline bool is_matrix(DataType t) { return t&0xC000; } inline bool is_vector(DataType t) { return !is_matrix(t) && (t&0x3000); } inline bool is_image(DataType t) { return t&0x70000; } +inline DataType get_matrix_column_type(DataType t) +{ + unsigned cols = ((t&0xC000)>>14)+1; + return static_cast((t&~0xC0FF) | (get_type_size(t)/cols)); +} + +inline DataType get_element_type(DataType t) +{ + unsigned elems = (((t&0xC000)>>14)+1)*(((t&0x3000)>>12)+1); + return static_cast((t&~0xC0FF) | (get_type_size(t)/elems)); +} + GLenum get_gl_type(DataType); DataType from_gl_type(GLenum);