void OsmAnd::AtlasMapRendererDebugStage_OpenGL::releaseQuads3D() { const auto gpuAPI = getGPUAPI(); GL_CHECK_PRESENT(glDeleteBuffers); GL_CHECK_PRESENT(glDeleteProgram); if(_iboQuad3D) { glDeleteBuffers(1, &_iboQuad3D); GL_CHECK_RESULT; _iboQuad3D.reset(); } if(_vboQuad3D) { glDeleteBuffers(1, &_vboQuad3D); GL_CHECK_RESULT; _vboQuad3D.reset(); } if(_vaoQuad3D) { gpuAPI->glDeleteVertexArrays_wrapper(1, &_vaoQuad3D); GL_CHECK_RESULT; _vaoQuad3D.reset(); } if(_programQuad3D.id) { glDeleteProgram(_programQuad3D.id); GL_CHECK_RESULT; _programQuad3D = ProgramQuad3D(); } }
bool OsmAnd::AtlasMapRendererDebugStage_OpenGL::releaseQuads3D() { const auto gpuAPI = getGPUAPI(); GL_CHECK_PRESENT(glDeleteBuffers); GL_CHECK_PRESENT(glDeleteProgram); if (_vaoQuad3D.isValid()) { gpuAPI->releaseVAO(_vaoQuad3D); _vaoQuad3D.reset(); } if (_iboQuad3D.isValid()) { glDeleteBuffers(1, &_iboQuad3D); GL_CHECK_RESULT; _iboQuad3D.reset(); } if (_vboQuad3D.isValid()) { glDeleteBuffers(1, &_vboQuad3D); GL_CHECK_RESULT; _vboQuad3D.reset(); } if (_programQuad3D.id.isValid()) { glDeleteProgram(_programQuad3D.id); GL_CHECK_RESULT; _programQuad3D = ProgramQuad3D(); } return true; }