#pragma once #include #include namespace mbgl { namespace gl { /** Base class for OpenGL-specific drawable builders. */ class DrawableGLBuilder final : public gfx::DrawableBuilder { public: DrawableGLBuilder(std::string name_) : gfx::DrawableBuilder(std::move(name_)) {} ~DrawableGLBuilder() override = default; const gfx::VertexAttributeArray& getVertexAttributes() const override { return vertexAttributes; } void setVertexAttributes(const VertexAttributeArrayGL& value) { vertexAttributes = value; } void setVertexAttributes(VertexAttributeArrayGL&& value) { vertexAttributes = std::move(value); } protected: gfx::UniqueDrawable createDrawable() const override; /// Setup the SDK-specific aspects after all the values are present void init() override; private: VertexAttributeArrayGL vertexAttributes; }; } // namespace gl } // namespace mbgl