]> git.tdb.fi Git - libs/gl.git/blobdiff - source/core/vertexsetup.h
Only allow VertexArray's format to be set once
[libs/gl.git] / source / core / vertexsetup.h
index bae4c5f36c2245d194eacc6b08b1df25658dade7..3b18006af04918661150d285ea6563664db51b32 100644 (file)
@@ -20,9 +20,7 @@ private:
        {
                VERTEX_ARRAY = 1,
                INSTANCE_ARRAY = 2,
-               INDEX_BUFFER = 4,
-               UNUSED_ATTRIBS = 8,
-               ATTRIB_SHIFT = 4
+               INDEX_BUFFER = 4
        };
 
        unsigned id;
@@ -37,23 +35,28 @@ public:
        VertexSetup();
        ~VertexSetup();
 
+       void set_format(const VertexFormat &);
+       void set_format_instanced(const VertexFormat &, const VertexFormat &);
+
        void set_vertex_array(const VertexArray &);
-       void set_instance_array(const VertexArray *);
+       void set_instance_array(const VertexArray &);
        void set_index_buffer(const Buffer &);
-       void refresh();
        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:
-       static unsigned get_attribs(const VertexFormat &);
-       static unsigned get_update_mask(unsigned, const VertexFormat &, const VertexArray &);
+       static bool verify_format(const VertexFormat &);
        void update(unsigned) const;
        void update_vertex_array(const VertexArray &, unsigned, unsigned, bool) const;
 
 public:
        void bind() const;
        static void unbind();
+
+       void unload();
+
+       void set_debug_name(const std::string &);
 };
 
 } // namespace GL