1 #ifndef MSP_GL_VERTEXSETUP_H_
2 #define MSP_GL_VERTEXSETUP_H_
5 #include "vertexformat.h"
6 #include "vertexsetup_backend.h"
15 Combines a VertexArray with an index buffer. This wraps OpenGL's vertex array
16 objects. Intended for internal use.
18 class VertexSetup: public VertexSetupBackend
20 friend VertexSetupBackend;
30 mutable unsigned dirty;
31 const VertexArray *vertex_array;
32 VertexFormat vertex_format;
33 const VertexArray *inst_array;
34 VertexFormat inst_format;
35 const Buffer *index_buffer;
41 void set_format(const VertexFormat &);
42 void set_format_instanced(const VertexFormat &, const VertexFormat &);
44 void set_vertex_array(const VertexArray &);
45 void set_instance_array(const VertexArray &);
46 void set_index_buffer(const Buffer &, DataType);
47 const VertexArray *get_vertex_array() const { return vertex_array; }
48 const VertexArray *get_instance_array() const { return inst_array; }
49 const Buffer *get_index_buffer() const { return index_buffer; }
50 DataType get_index_type() const { return index_type; }
53 static bool verify_format(const VertexFormat &);
57 void refresh() const { if(dirty) update(); }
61 using VertexSetupBackend::set_debug_name;