void OsmAnd::AtlasMapRendererDebugStage_OpenGL::releaseLines3D() { const auto gpuAPI = getGPUAPI(); GL_CHECK_PRESENT(glDeleteBuffers); GL_CHECK_PRESENT(glDeleteProgram); if(_iboLine3D) { glDeleteBuffers(1, &_iboLine3D); GL_CHECK_RESULT; _iboLine3D.reset(); } if(_vboLine3D) { glDeleteBuffers(1, &_vboLine3D); GL_CHECK_RESULT; _vboLine3D.reset(); } if(_vaoLine3D) { gpuAPI->glDeleteVertexArrays_wrapper(1, &_vaoLine3D); GL_CHECK_RESULT; _vaoLine3D.reset(); } if(_programLine3D.id) { glDeleteProgram(_programLine3D.id); GL_CHECK_RESULT; _programLine3D = ProgramLine3D(); } }
bool OsmAnd::AtlasMapRendererDebugStage_OpenGL::releaseLines3D() { const auto gpuAPI = getGPUAPI(); GL_CHECK_PRESENT(glDeleteBuffers); GL_CHECK_PRESENT(glDeleteProgram); if (_vaoLine3D.isValid()) { gpuAPI->releaseVAO(_vaoLine3D); _vaoLine3D.reset(); } if (_iboLine3D.isValid()) { glDeleteBuffers(1, &_iboLine3D); GL_CHECK_RESULT; _iboLine3D.reset(); } if (_vboLine3D.isValid()) { glDeleteBuffers(1, &_vboLine3D); GL_CHECK_RESULT; _vboLine3D.reset(); } if (_programLine3D.id.isValid()) { glDeleteProgram(_programLine3D.id); GL_CHECK_RESULT; _programLine3D = ProgramLine3D(); } return true; }