#include "datatype.h"
#include "vertexformat.h"
+#include "vertexsetup_backend.h"
namespace Msp {
namespace GL {
Combines a VertexArray with an index buffer. This wraps OpenGL's vertex array
objects. Intended for internal use.
*/
-class VertexSetup
+class VertexSetup: public VertexSetupBackend
{
+ friend VertexSetupBackend;
+
private:
enum ComponentMask
{
INDEX_BUFFER = 4
};
- unsigned id;
mutable unsigned dirty;
const VertexArray *vertex_array;
VertexFormat vertex_format;
public:
VertexSetup();
- ~VertexSetup();
void set_format(const VertexFormat &);
void set_format_instanced(const VertexFormat &, const VertexFormat &);
private:
static bool verify_format(const VertexFormat &);
void update() const;
- void update_vertex_array(const VertexArray &, unsigned, unsigned, bool) const;
public:
void refresh() const { if(dirty) update(); }
- unsigned get_id() const { return id; }
-
void unload();
- void set_debug_name(const std::string &);
+ using VertexSetupBackend::set_debug_name;
};
} // namespace GL