3 This file is part of libmspgl
4 Copyright © 2007 Mikko Rasa, Mikkosoft Productions
5 Distributed under the LGPL
8 #ifndef MSP_GL_VERTEXARRAY_H_
9 #define MSP_GL_VERTEXARRAY_H_
12 #include <msp/core/refptr.h>
13 #include <msp/datafile/loader.h>
14 #include "primitivetype.h"
16 #include "vertexarraybuilder.h"
17 #include "vertexformat.h"
27 class Loader: public DataFile::Loader, public VertexArrayBuilder
30 Loader(VertexArray &);
33 VertexArray(VertexFormat);
36 VertexFormat get_format() const { return format; }
37 const std::vector<float> &get_data() const { return data; }
38 void use_vertex_buffer();
39 void use_vertex_buffer(VertexBuffer *);
40 void reserve(unsigned);
41 unsigned size() const { return data.size()/stride; }
43 void reset(VertexFormat);
44 RefPtr<VertexArrayBuilder> modify();
49 std::vector<float> data;
54 VertexArray(const VertexArray &);
55 VertexArray &operator=(const VertexArray &);
56 void set_array(unsigned, unsigned, unsigned) const;
58 static unsigned enabled_arrays;