#pragma once #include #include namespace mbgl { namespace gfx { class IndexBufferResource { protected: IndexBufferResource() = default; public: virtual ~IndexBufferResource() = default; }; class IndexBuffer { public: IndexBuffer(const std::size_t elements_, std::unique_ptr&& resource_) : elements(elements_), resource(std::move(resource_)) { } std::size_t elements; template T& getResource() const { assert(resource); return static_cast(*resource); } protected: std::unique_ptr resource; }; } // namespace gfx } // namespace mbgl