]> git.tdb.fi Git - libs/gl.git/blobdiff - source/core/vertexsetup.h
Always require EXT_texture3D and ARB_shadow for samplers
[libs/gl.git] / source / core / vertexsetup.h
index 408d738012fb196be44555c3bb25b9fe9672582a..2e483fc81768e1fcb3b4c0b15a5c91b53fd346cb 100644 (file)
@@ -1,7 +1,7 @@
 #ifndef MSP_GL_VERTEXSETUP_H_
 #define MSP_GL_VERTEXSETUP_H_
 
-#include "bindable.h"
+#include "datatype.h"
 #include "vertexformat.h"
 
 namespace Msp {
@@ -16,6 +16,8 @@ objects.  Intended for internal use.
 */
 class VertexSetup
 {
+       friend class PipelineState;
+
 private:
        enum ComponentMask
        {
@@ -31,6 +33,7 @@ private:
        const VertexArray *inst_array;
        VertexFormat inst_format;
        const Buffer *index_buffer;
+       DataType index_type;
 
 public:
        VertexSetup();
@@ -41,21 +44,21 @@ public:
 
        void set_vertex_array(const VertexArray &);
        void set_instance_array(const VertexArray &);
-       void set_index_buffer(const Buffer &);
+       void set_index_buffer(const Buffer &, DataType);
        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; }
+       DataType get_index_type() const { return index_type; }
 
 private:
        static bool verify_format(const VertexFormat &);
+       static void require_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 &);