+++ /dev/null
-#ifndef MSP_GL_VERTEXFORMAT_H_
-#define MSP_GL_VERTEXFORMAT_H_
-
-#include <msp/strings/lexicalcast.h>
-
-namespace Msp {
-namespace GL {
-
-enum VertexComponent
-{
- VERTEX2 = 1,
- VERTEX3,
- VERTEX4,
- NORMAL3 = 6,
- COLOR4_UBYTE = 8,
- COLOR3_FLOAT = 10,
- COLOR4_FLOAT,
- TEXCOORD1 = 12,
- TEXCOORD2,
- TEXCOORD3,
- TEXCOORD4,
- ATTRIB1 = 44,
- ATTRIB2,
- ATTRIB3,
- ATTRIB4
-};
-
-class VertexFormat
-{
-private:
- unsigned char *data;
-
-public:
- VertexFormat();
- VertexFormat(VertexComponent);
- VertexFormat(const VertexFormat &);
- VertexFormat &operator=(const VertexFormat &);
- ~VertexFormat();
-
- VertexFormat operator,(VertexComponent c) const;
- VertexFormat operator,(unsigned i) const;
-
- bool empty() const { return !data || !data[0]; }
- 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;
-};
-
-inline VertexFormat operator,(VertexComponent c1, VertexComponent c2)
-{ return (VertexFormat(c1), c2); }
-
-inline VertexFormat operator,(VertexComponent c, unsigned i)
-{ return (VertexFormat(c), i); }
-
-inline unsigned get_component_type(unsigned char c)
-{ return c>>2; }
-
-inline unsigned get_component_size(unsigned char c)
-{ return (c&3)+1; }
-
-inline unsigned get_stride(const VertexFormat &f)
-{ return f.stride(); }
-
-void operator>>(const LexicalConverter &, VertexComponent &);
-void operator>>(const LexicalConverter &, VertexFormat &);
-
-} // namespace GL
-} // namespace Msp
-
-#endif