X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fcore%2Fvertexsetup.h;h=2e483fc81768e1fcb3b4c0b15a5c91b53fd346cb;hb=6c1cb01d562bb8fbfe6559f00d42e811caebc8cd;hp=7eb903aeae9f819e43258c0b510bfebba638c73f;hpb=715672cf2c64dab0744db676fdee255ee3a4cef7;p=libs%2Fgl.git diff --git a/source/core/vertexsetup.h b/source/core/vertexsetup.h index 7eb903ae..2e483fc8 100644 --- a/source/core/vertexsetup.h +++ b/source/core/vertexsetup.h @@ -1,6 +1,7 @@ #ifndef MSP_GL_VERTEXSETUP_H_ #define MSP_GL_VERTEXSETUP_H_ +#include "datatype.h" #include "vertexformat.h" namespace Msp { @@ -15,6 +16,8 @@ objects. Intended for internal use. */ class VertexSetup { + friend class PipelineState; + private: enum ComponentMask { @@ -30,6 +33,7 @@ private: const VertexArray *inst_array; VertexFormat inst_format; const Buffer *index_buffer; + DataType index_type; public: VertexSetup(); @@ -40,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 &);