X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fcore%2Fvertexformat.h;h=68c3e4c9a38828f42cba32729dae126ee3f75187;hb=07a69fb2c913d489510e384599ae63ed9e045c60;hp=a503aff83f84f19bcbbb1d9e3009c77fd526d4bb;hpb=d493917dbc215cd6ba3f8773a52a289d9f14380d;p=libs%2Fgl.git diff --git a/source/core/vertexformat.h b/source/core/vertexformat.h index a503aff8..68c3e4c9 100644 --- a/source/core/vertexformat.h +++ b/source/core/vertexformat.h @@ -20,8 +20,9 @@ are doing. 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 @@ -39,10 +40,10 @@ enum VertexAttribute COLOR4 = 0x05C4, NORMAL3 = 0x09C3, TANGENT3 = 0x0DC3, - GROUP1 = 0x11C1, - GROUP2 = 0x11C2, - GROUP3 = 0x11C3, - GROUP4 = 0x11C4, + GROUP1 = 0x10C9, + GROUP2 = 0x10CA, + GROUP3 = 0x10CB, + GROUP4 = 0x10CC, WEIGHT1 = 0x15C1, WEIGHT2 = 0x15C2, WEIGHT3 = 0x15C3, @@ -55,10 +56,18 @@ enum VertexAttribute 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 @@ -111,6 +120,9 @@ inline unsigned get_attribute_component_count(UInt16 a) 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