X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fmodel%2FBlockModel.hpp;fp=src%2Fmodel%2FBlockModel.hpp;h=0d93758ce766ead4201be2e9b1f83c514c3d1763;hb=5998b18978bd8e7a0c9deb516474634e1d3521c9;hp=d1a37c90f727cc29ac05a6de56bd815ea6781e28;hpb=7c2a8b8285278b8a3077b311d82f05ea0463a96e;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; };