]> git.tdb.fi Git - libs/gl.git/blobdiff - source/vertexsetup.h
Initial support for instanced rendering
[libs/gl.git] / source / vertexsetup.h
index 0155302cd6fb86bad0b99537e87a363ed0588f40..9e7409ac64b71f3574a32c778964089e21bdf3bf 100644 (file)
@@ -18,12 +18,14 @@ private:
        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:
@@ -31,13 +33,15 @@ 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;