void VertexArray::multiDrawElementsBaseVertex(const GLenum mode, const GLenum type, const std::vector<VertexArray::MultiDrawElementsBaseVertexRange> & ranges) const { std::vector<GLsizei> counts = collect_member(ranges, &MultiDrawElementsBaseVertexRange::count); std::vector<const void*> indices = collect_type_member<const void*>(ranges, &MultiDrawElementsBaseVertexRange::indices); std::vector<GLint> baseVertices = collect_member(ranges, &MultiDrawElementsBaseVertexRange::baseVertex); multiDrawElementsBaseVertex(mode, counts.data(), type, indices.data(), static_cast<GLsizei>(ranges.size()), baseVertices.data()); }
inline void draw(const Pack & pack) { multiDrawElementsBaseVertex( pack.mode,pack.count,pack.type, pack.indices,pack.drawcount,pack.basevertex ); }