The values are bitfields laid as follows:
-nnnn nn_f gsss _ccc
- │ │ │ │ └╴Number of components
+nnnn nn_f gsss iccc
+ │ │ │ │ │ └╴Number of components
+ │ │ │ │ └───╴Integer attribute flag
│ │ │ └─────╴Size of one component
│ │ └────────╴Signed flag
│ └──────────╴Floating-point flag
GENERIC2 = 0x29C2,
GENERIC3 = 0x29C3,
GENERIC4 = 0x29C4,
+ GENERIC_I1 = 0x28C9,
+ GENERIC_I2 = 0x28CA,
+ GENERIC_I3 = 0x28CB,
+ GENERIC_I4 = 0x28CC,
RAW_ATTRIB1 = 0xFDC1,
RAW_ATTRIB2 = 0xFDC2,
RAW_ATTRIB3 = 0xFDC3,
- RAW_ATTRIB4 = 0xFDC4
+ RAW_ATTRIB4 = 0xFDC4,
+ RAW_ATTRIB_I1 = 0xFCC9,
+ RAW_ATTRIB_I2 = 0xFCCA,
+ RAW_ATTRIB_I3 = 0xFCCB,
+ RAW_ATTRIB_I4 = 0xFCCC
};
class VertexFormat
inline unsigned get_attribute_size(UInt16 a)
{ return get_attribute_component_count(a)*get_type_size(get_attribute_source_type(a)); }
+inline bool is_integer_attribute(UInt16 a)
+{ return a&8; }
+
void operator>>(const LexicalConverter &, VertexAttribute &);
} // namespace GL