diff --git a/src/fishbmc_addon.cpp b/src/fishbmc_addon.cpp index 6f62abc..da327d6 100644 --- a/src/fishbmc_addon.cpp +++ b/src/fishbmc_addon.cpp @@ -102,6 +102,8 @@ bool CVisualizationFishBMC::Start(int channels, m_shaderLoaded = true; } + glGenVertexArrays(1, &m_vao); + #ifdef HAS_GL glGenBuffers(2, m_vertexVBO); glGenBuffers(1, &m_indexVBO); @@ -131,16 +133,16 @@ void CVisualizationFishBMC::Stop() glDeleteTextures(1, &m_texture); #ifdef HAS_GL - glBindBuffer(GL_ARRAY_BUFFER, 0); glDeleteBuffers(2, m_vertexVBO); m_vertexVBO[0] = 0; m_vertexVBO[1] = 0; - glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0); glDeleteBuffers(1, &m_indexVBO); m_indexVBO = 0; #endif + glDeleteVertexArrays(1, &m_vao); + delete[] m_axis; m_axis = nullptr; } @@ -196,6 +198,8 @@ void CVisualizationFishBMC::Render() } } + glBindVertexArray(m_vao); + start_render(); // loop over and draw all quads @@ -226,6 +230,8 @@ void CVisualizationFishBMC::Render() } finish_render(); + + glBindVertexArray(0); } ADDON_STATUS CVisualizationFishBMC::SetSetting(const std::string& settingName, diff --git a/src/fishbmc_addon.h b/src/fishbmc_addon.h index 42811af..30ce83f 100644 --- a/src/fishbmc_addon.h +++ b/src/fishbmc_addon.h @@ -85,6 +85,7 @@ class ATTR_DLL_LOCAL CVisualizationFishBMC : public kodi::addon::CAddonBase, GLint m_aVertexLoc = -1; GLint m_aCoordLoc = -1; + GLuint m_vao = 0; GLuint m_vertexVBO[2] = {0}; GLuint m_indexVBO = 0; GLuint m_texture = 0;