bool State::hasMappedBuffer(GLenum target) const { if (target == GL_ARRAY_BUFFER) { const VertexArray *vao = getVertexArray(); const auto &vertexAttribs = vao->getVertexAttributes(); size_t maxEnabledAttrib = vao->getMaxEnabledAttribute(); for (size_t attribIndex = 0; attribIndex < maxEnabledAttrib; attribIndex++) { const gl::VertexAttribute &vertexAttrib = vertexAttribs[attribIndex]; gl::Buffer *boundBuffer = vertexAttrib.buffer.get(); if (vertexAttrib.enabled && boundBuffer && boundBuffer->isMapped()) { return true; } } return false; } else { Buffer *buffer = getTargetBuffer(target); return (buffer && buffer->isMapped()); } }
bool State::hasMappedBuffer(GLenum target) const { if (target == GL_ARRAY_BUFFER) { for (size_t attribIndex = 0; attribIndex < mVertexAttribCurrentValues.size(); attribIndex++) { const gl::VertexAttribute &vertexAttrib = getVertexAttribState(static_cast<unsigned int>(attribIndex)); gl::Buffer *boundBuffer = vertexAttrib.buffer.get(); if (vertexAttrib.enabled && boundBuffer && boundBuffer->isMapped()) { return true; } } return false; } else { Buffer *buffer = getTargetBuffer(target); return (buffer && buffer->isMapped()); } }