namespace GL {
/**
-Identifies a data type. The values are bitfields laid as follows:
+Identifies a data type.
-__ds addd ccrr _bfg ssss ssss
+The values are bitfields laid as follows:
+
+__hm addd ccrr _bfg ssss ssss
││ │ │ │ │ │││ └╴Size (bytes)
││ │ │ │ │ ││└──────────╴Signed flag
││ │ │ │ │ │└───────────╴Floating-point flag
└──────────────────────────╴Shadow sampler flag
This information is presented for internal documentation purposes only; it is
-inadvisable for programs to rely on it.
+inadvisable for applications to rely on it.
*/
enum DataType
{
INT_VEC2 = 0x1108,
INT_VEC3 = 0x210C,
INT_VEC4 = 0x3110,
+ UINT_VEC2 = 0x1008,
+ UINT_VEC3 = 0x200C,
+ UINT_VEC4 = 0x3010,
BOOL_VEC2 = 0x1402,
BOOL_VEC3 = 0x2403,
BOOL_VEC4 = 0x3404,
SAMPLER_CUBE_ARRAY_SHADOW = 0x3C0304
};
-inline unsigned get_type_size(DataType t) { return t&0xFF; }
+inline std::size_t get_type_size(DataType t) { return t&0xFF; }
inline bool is_float(DataType t) { return t&0x200; }
inline bool is_matrix(DataType t) { return t&0xC000; }
inline bool is_vector(DataType t) { return !is_matrix(t) && (t&0x3000); }
static const DataType type = static_cast<DataType>((TypeTraits<T>::type&0xF00) | ((TypeTraits<T>::type&0xFF)*N*M) | ((N-1)<<12) | ((M-1)<<14));
};
-unsigned get_gl_type(DataType);
-DataType from_gl_type(unsigned);
-
void require_type(DataType);
} // namespace GL
} // namespace Msp
+#include "datatype_backend.h"
+
#endif