X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fmodel%2FBlockModel.hpp;h=0d93758ce766ead4201be2e9b1f83c514c3d1763;hb=c52405fad9c070e1370f852234c6eb723b52916c;hp=d1a37c90f727cc29ac05a6de56bd815ea6781e28;hpb=b7d09e1e35ef90282c97509e0020b20db3c7ea9f;p=blank.git diff --git a/src/model/BlockModel.hpp b/src/model/BlockModel.hpp index d1a37c9..0d93758 100644 --- a/src/model/BlockModel.hpp +++ b/src/model/BlockModel.hpp @@ -1,6 +1,8 @@ #ifndef BLANK_MODEL_BLOCKMODEL_HPP_ #define BLANK_MODEL_BLOCKMODEL_HPP_ +#include "../graphics/VertexArray.hpp" + #include #include #include @@ -21,7 +23,14 @@ public: using Lights = std::vector; using Indices = std::vector; -public: + enum Attribute { + ATTRIB_VERTEX, + ATTRIB_COLOR, + ATTRIB_LIGHT, + ATTRIB_INDEX, + ATTRIB_COUNT, + }; + struct Buffer { Positions vertices; @@ -45,32 +54,15 @@ public: }; -public: - BlockModel() noexcept; - ~BlockModel() noexcept; - - BlockModel(const BlockModel &) = delete; - BlockModel &operator =(const BlockModel &) = delete; - - BlockModel(BlockModel &&) noexcept; - BlockModel &operator =(BlockModel &&) noexcept; + using VAO = VertexArray; +public: void Update(const Buffer &) noexcept; void Draw() const noexcept; private: - enum Attribute { - ATTRIB_VERTEX, - ATTRIB_COLOR, - ATTRIB_LIGHT, - ATTRIB_INDEX, - ATTRIB_COUNT, - }; - - GLuint va; - GLuint handle[ATTRIB_COUNT]; - size_t count; + VAO vao; };