X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fvertexformat.h;h=edea62d80262910893cd0355bd188853359f0e2d;hb=719578516a4d44a6f39eac3b074ce9f6180b5d53;hp=75e33473227f542f9b856027349c6503d4361e96;hpb=c6c4fc39952e372eba1f44f2bc504428140f3d0e;p=libs%2Fgl.git diff --git a/source/vertexformat.h b/source/vertexformat.h index 75e33473..edea62d8 100644 --- a/source/vertexformat.h +++ b/source/vertexformat.h @@ -1,33 +1,25 @@ -/* $Id$ - -This file is part of libmspgl -Copyright © 2007, 2009-2010 Mikko Rasa, Mikkosoft Productions -Distributed under the LGPL -*/ - #ifndef MSP_GL_VERTEXFORMAT_H_ #define MSP_GL_VERTEXFORMAT_H_ -#include -#include "types.h" +#include namespace Msp { namespace GL { enum VertexComponent { - VERTEX2=1, + VERTEX2 = 1, VERTEX3, VERTEX4, - NORMAL3=6, - TEXCOORD1=8, + NORMAL3 = 6, + COLOR4_UBYTE = 8, + COLOR3_FLOAT = 10, + COLOR4_FLOAT, + TEXCOORD1 = 12, TEXCOORD2, TEXCOORD3, TEXCOORD4, - COLOR4_UBYTE=12, - COLOR3_FLOAT=14, - COLOR4_FLOAT, - ATTRIB1=16, + ATTRIB1 = 44, ATTRIB2, ATTRIB3, ATTRIB4 @@ -47,6 +39,7 @@ struct VertexFormat const unsigned char *begin() const { return data ? data+1 : 0; } const unsigned char *end() const { return data ? data+1+data[0] : 0; } unsigned stride() const; + int offset(VertexComponent, unsigned = 0) const; }; VertexFormat operator,(const VertexFormat &f, VertexComponent c); @@ -57,10 +50,11 @@ VertexFormat operator,(const VertexFormat &f, unsigned i); inline VertexFormat operator,(VertexComponent c, unsigned i) { return (VertexFormat(c), i); } -inline uint get_stride(const VertexFormat &f) +inline unsigned get_stride(const VertexFormat &f) { return f.stride(); } -std::istream &operator>>(std::istream &, VertexFormat &); +void operator>>(const LexicalConverter &, VertexComponent &); +void operator>>(const LexicalConverter &, VertexFormat &); } // namespace GL } // namespace Msp