X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Fvertexformat.h;h=7edca1f3dcf74782d8fd5a94c7bfb25cd079c72d;hp=9be98160b0bb0d23ef62358d150aa6e670d254d2;hb=ef9ffbc287417520d223ce29dc6c2de110cac945;hpb=43c6495ff3d14a85ee5de169a80fdacf13b7147e diff --git a/source/vertexformat.h b/source/vertexformat.h index 9be98160..7edca1f3 100644 --- a/source/vertexformat.h +++ b/source/vertexformat.h @@ -18,6 +18,8 @@ enum VertexComponent COLOR4_UBYTE = 12, COLOR3_FLOAT = 14, COLOR4_FLOAT, + TANGENT3 = 18, + BINORMAL3 = 22, TEXCOORD1 = 32, TEXCOORD2, TEXCOORD3, @@ -31,21 +33,21 @@ enum VertexComponent class VertexFormat { private: - unsigned char *data; + enum { MAX_COMPONENTS = 15 }; + + unsigned char count; + unsigned char components[MAX_COMPONENTS]; 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; } + bool empty() const { return !count; } + const unsigned char *begin() const { return components; } + const unsigned char *end() const { return components+count; } unsigned stride() const; int offset(VertexComponent) const; };