X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fcore%2Fvertexsetup.h;h=2e483fc81768e1fcb3b4c0b15a5c91b53fd346cb;hb=bae374a3cda6a1b59f36016624ef518bf2676355;hp=408d738012fb196be44555c3bb25b9fe9672582a;hpb=9b3bce7ae76ff8c0c81315d2505ea96bf422a318;p=libs%2Fgl.git diff --git a/source/core/vertexsetup.h b/source/core/vertexsetup.h index 408d7380..2e483fc8 100644 --- a/source/core/vertexsetup.h +++ b/source/core/vertexsetup.h @@ -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 &);