diff --git a/src/Magnum/Mesh.cpp b/src/Magnum/Mesh.cpp index 5fc3958d4..3444d252b 100644 --- a/src/Magnum/Mesh.cpp +++ b/src/Magnum/Mesh.cpp @@ -343,16 +343,20 @@ void Mesh::drawInternal(Int count, Int baseVertex, Int instanceCount, GLintptr i /* Indexed mesh with base vertex */ } else if(baseVertex) { + #if !defined(MAGNUM_TARGET_GLES2) && !defined(MAGNUM_TARGET_WEBGL) #ifndef MAGNUM_TARGET_GLES /* Indexed mesh with base vertex and base instance */ - if(baseInstance) + if(baseInstance) { glDrawElementsInstancedBaseVertexBaseInstance(GLenum(_primitive), count, GLenum(_indexType), reinterpret_cast(indexOffset), instanceCount, baseVertex, baseInstance); /* Indexed mesh with base vertex */ - else + } else + #endif + { glDrawElementsInstancedBaseVertex(GLenum(_primitive), count, GLenum(_indexType), reinterpret_cast(indexOffset), instanceCount, baseVertex); + } #else - CORRADE_ASSERT(false, "Mesh::draw(): desktop OpenGL is required for base vertex specification in indexed meshes", ); + CORRADE_ASSERT(false, "Mesh::draw(): OpenGL ES 3.2 or desktop GL is required for base vertex specification in indexed meshes", ); #endif /* Indexed mesh */ diff --git a/src/Magnum/Mesh.h b/src/Magnum/Mesh.h index 2c8a0c951..b97eb910d 100644 --- a/src/Magnum/Mesh.h +++ b/src/Magnum/Mesh.h @@ -652,8 +652,8 @@ class MAGNUM_EXPORT Mesh: public AbstractObject { * @see @ref setCount(), @ref setBaseInstance() * @requires_gl32 Extension @extension{ARB,draw_elements_base_vertex} * for indexed meshes - * @requires_gl Base vertex cannot be specified for indexed meshes in - * OpenGL ES or WebGL. + * @requires_gles32 Base vertex cannot be specified for indexed meshes + * in OpenGL ES 3.1 or WebGL. */ Mesh& setBaseVertex(Int baseVertex) { _baseVertex = baseVertex; diff --git a/src/Magnum/MeshView.h b/src/Magnum/MeshView.h index 918967b32..4ee06918c 100644 --- a/src/Magnum/MeshView.h +++ b/src/Magnum/MeshView.h @@ -136,8 +136,8 @@ class MAGNUM_EXPORT MeshView { * Default is @cpp 0 @ce. * @requires_gl32 Extension @extension{ARB,draw_elements_base_vertex} * for indexed meshes - * @requires_gl Base vertex cannot be specified for indexed meshes in - * OpenGL ES or WebGL. + * @requires_gles32 Base vertex cannot be specified for indexed meshes + * in OpenGL ES 3.1 or WebGL. */ MeshView& setBaseVertex(Int baseVertex) { _baseVertex = baseVertex;