X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fcore%2Fvertexarray.h;h=d80b2786db4d996f04b74d9514b3baaa1fecbf61;hb=083a8227715fa32c841fc2b8126e4ab8d2840ba0;hp=95a6ec2f3aa526ac11165b4f24e77e5d30d67b10;hpb=7aaec9a70b8d7733429bec043f8e33e02956f266;p=libs%2Fgl.git diff --git a/source/core/vertexarray.h b/source/core/vertexarray.h index 95a6ec2f..d80b2786 100644 --- a/source/core/vertexarray.h +++ b/source/core/vertexarray.h @@ -1,21 +1,15 @@ #ifndef MSP_GL_VERTEXARRAY_H_ #define MSP_GL_VERTEXARRAY_H_ -#include #include -#include #include #include "bufferable.h" -#include "datatype.h" -#include "primitivetype.h" #include "vertexarraybuilder.h" #include "vertexformat.h" namespace Msp { namespace GL { -class Buffer; - /** Stores vertex data. @@ -37,16 +31,19 @@ public: private: VertexFormat format; - std::vector data; - unsigned stride; + std::vector data; + unsigned stride = 0; VertexArray(const VertexArray &); VertexArray &operator=(const VertexArray &); public: + VertexArray() = default; + + /// Construct a VertexArray and set its format. VertexArray(const VertexFormat &); - /// Resets the VertexArray to a different format. All data is cleared. - void reset(const VertexFormat &); + /// Sets the format of the VertexArray. + void set_format(const VertexFormat &); const VertexFormat &get_format() const { return format; } @@ -57,18 +54,18 @@ public: void reserve(unsigned); /// Append a new vertex at the end of the array and return its location. - float *append(); + char *append(); /// Returns the location of a vertex for modification. - float *modify(unsigned); + char *modify(unsigned); private: virtual unsigned get_data_size() const; virtual const void *get_data_pointer() const { return &data[0]; } public: unsigned size() const { return data.size()/stride; } - const std::vector &get_data() const { return data; } - const float *operator[](unsigned i) const { return &data[0]+i*stride; } + const std::vector &get_data() const { return data; } + const char *operator[](unsigned i) const { return &data[0]+i*stride; } }; } // namespace GL