#pragma once #include #include #include #include namespace mbgl { namespace gl { template class IndexVector { public: static constexpr std::size_t groupSize = DrawMode::bufferGroupSize; template void emplace_back(Args&&... args) { static_assert(sizeof...(args) == groupSize, "wrong buffer element count"); util::ignore({(v.emplace_back(std::forward(args)), 0)...}); } std::size_t indexSize() const { return v.size(); } std::size_t byteSize() const { return v.size() * sizeof(uint16_t); } bool empty() const { return v.empty(); } void clear() { v.clear(); } const uint16_t* data() const { return v.data(); } private: std::vector v; }; template class IndexBuffer { public: UniqueBuffer buffer; }; } // namespace gl } // namespace mbgl