enum ComponentMask
{
VERTEX_ARRAY = 1,
- INDEX_BUFFER = 2
+ INSTANCE_ARRAY = 2,
+ INDEX_BUFFER = 4
};
unsigned id;
mutable unsigned dirty;
- const VertexArray *array;
+ const VertexArray *vertex_array;
+ const VertexArray *inst_array;
const Buffer *index_buffer;
public:
~VertexSetup();
void set_vertex_array(const VertexArray &);
- void set_instance_array(const VertexArray &);
+ void set_instance_array(const VertexArray *);
void set_index_buffer(const Buffer &);
+ const VertexArray *get_vertex_array() const { return vertex_array; }
+ const VertexArray *get_instance_array() const { return inst_array; }
const Buffer *get_index_buffer() const { return index_buffer; }
private:
void update(unsigned) const;
- void update_vertex_array(bool) const;
+ void update_vertex_array(const VertexArray &, unsigned, unsigned, bool) const;
public:
void bind() const;