82 bool isRead()
const {
return myRead; }
86 {
return myRead == rhs.myRead &&
87 myWrite == rhs.myWrite; }
89 {
return !(*
this == rhs); }
93 if (myRead && myWrite)
return "modify";
94 if (myRead)
return "read";
95 if (myWrite)
return "write";
104 static const VEX_RWType VEX_RW_NONE(
false,
false);
105 static const VEX_RWType VEX_RW_READ(
true,
false);
106 static const VEX_RWType VEX_RW_WRITE(
false,
true);
107 static const VEX_RWType VEX_RW_MODIFY(
true,
true);
165 static inline size_t VEXsizeof(
VEX_Type type) {
return VEXsizeof32(type); }
170 template <
typename T>
static inline constexpr
int VEXtupleSize()
172 template <>
inline constexpr
int VEXtupleSize<VEXint<VEX_32>>() {
return 1; }
173 template <>
inline constexpr
int VEXtupleSize<VEXint<VEX_64>>() {
return 1; }
174 template <>
inline constexpr
int VEXtupleSize<VEXfloat<VEX_32>>() {
return 1; }
175 template <>
inline constexpr
int VEXtupleSize<VEXfloat<VEX_64>>() {
return 1; }
176 template <>
inline constexpr
int VEXtupleSize<VEXvec2<VEX_32>>() {
return 2; }
177 template <>
inline constexpr
int VEXtupleSize<VEXvec2<VEX_64>>() {
return 2; }
178 template <>
inline constexpr
int VEXtupleSize<VEXvec3<VEX_32>>() {
return 3; }
179 template <>
inline constexpr
int VEXtupleSize<VEXvec3<VEX_64>>() {
return 3; }
180 template <>
inline constexpr
int VEXtupleSize<VEXvec4<VEX_32>>() {
return 4; }
181 template <>
inline constexpr
int VEXtupleSize<VEXvec4<VEX_64>>() {
return 4; }
182 template <>
inline constexpr
int VEXtupleSize<VEXmat2<VEX_32>>() {
return 4; }
183 template <>
inline constexpr
int VEXtupleSize<VEXmat2<VEX_64>>() {
return 4; }
184 template <>
inline constexpr
int VEXtupleSize<VEXmat3<VEX_32>>() {
return 9; }
185 template <>
inline constexpr
int VEXtupleSize<VEXmat3<VEX_64>>() {
return 9; }
186 template <>
inline constexpr
int VEXtupleSize<VEXmat4<VEX_32>>() {
return 16; }
187 template <>
inline constexpr
int VEXtupleSize<VEXmat4<VEX_64>>() {
return 16; }
VEX_Type
VEX variable types.
GLuint GLsizei const GLchar * label
VEX_API const char * VEXgetBaseType(VEX_BaseType type)
VEX_API const char * VEXgetUIHint(VEX_UIHint type)
VEX_API FS_DiskCache & VEXcompileCache()
VEX_API const char * VEXgetStorage(VEX_Storage type)
void read(T &in, bool &v)
typename VEX_PrecisionResolver< P >::vec3_type VEXvec3
VEX_API int VEXgetFloatCount(VEX_Type type)
VEX_API int VEXgetArgCount(VEX_Type type)
typename VEX_PrecisionResolver< P >::float_type VEXfloat
VEX_API const char * VEXgetShortStorage(VEX_Storage type)
typename VEX_PrecisionResolver< P >::mat4_type VEXmat4
typename VEX_PrecisionResolver< P >::mat2_type VEXmat2
VEX_API const char * VEXgetType(VEX_Type type)
typename VEX_PrecisionResolver< P >::vec2_type VEXvec2
typename VEX_PrecisionResolver< P >::vec4_type VEXvec4
#define SYS_UNIMPLEMENTED_TEMPLATE(T)
bool operator!=(const VEX_RWType &rhs) const
GLint GLint GLsizei GLint GLenum GLenum type
typename VEX_PrecisionResolver< P >::int_type VEXint
GLubyte GLubyte GLubyte GLubyte w
VEX_RWType(bool read, bool write)
void write(T &out, bool v)
void setRead(bool r=true)
typename VEX_PrecisionResolver< P >::mat3_type VEXmat3
bool operator==(const VEX_RWType &rhs) const
void setWrite(bool w=true)
VEX_API char VEXgetMangleType(VEX_Type type)
const char * asString() const