X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fvertexsetup.h;fp=source%2Fvertexsetup.h;h=0000000000000000000000000000000000000000;hb=7aaec9a70b8d7733429bec043f8e33e02956f266;hp=bae4c5f36c2245d194eacc6b08b1df25658dade7;hpb=bec07999d95b76f4b47cffcc564d0cd0afc0435e;p=libs%2Fgl.git diff --git a/source/vertexsetup.h b/source/vertexsetup.h deleted file mode 100644 index bae4c5f3..00000000 --- a/source/vertexsetup.h +++ /dev/null @@ -1,62 +0,0 @@ -#ifndef MSP_GL_VERTEXSETUP_H_ -#define MSP_GL_VERTEXSETUP_H_ - -#include "bindable.h" -#include "vertexformat.h" - -namespace Msp { -namespace GL { - -class VertexArray; - -/** -Combines a VertexArray with an index buffer. This wraps OpenGL's vertex array -objects. Intended for internal use. -*/ -class VertexSetup: public Bindable -{ -private: - enum ComponentMask - { - VERTEX_ARRAY = 1, - INSTANCE_ARRAY = 2, - INDEX_BUFFER = 4, - UNUSED_ATTRIBS = 8, - ATTRIB_SHIFT = 4 - }; - - unsigned id; - mutable unsigned dirty; - const VertexArray *vertex_array; - VertexFormat vertex_format; - const VertexArray *inst_array; - VertexFormat inst_format; - const Buffer *index_buffer; - -public: - VertexSetup(); - ~VertexSetup(); - - void set_vertex_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 &); - void update(unsigned) const; - void update_vertex_array(const VertexArray &, unsigned, unsigned, bool) const; - -public: - void bind() const; - static void unbind(); -}; - -} // namespace GL -} // namespace Msp - -#endif