diff --git a/src/StarField.cpp b/src/StarField.cpp index 24c582b..7024aca 100644 --- a/src/StarField.cpp +++ b/src/StarField.cpp @@ -233,6 +233,8 @@ int CStarField::Create(int iWidth, int iHeight) if (!LoadShaderFiles(vertShader, fraqShader) || !CompileAndLink()) return -1; + glGenVertexArrays(1, &m_vao); + glGenBuffers(1, &m_vertexVBO); glClearColor(0.0f, 0.0f, 0.0f, 1.0f); @@ -260,6 +262,8 @@ void CStarField::Destroy(void) glDeleteBuffers(1, &m_vertexVBO); m_vertexVBO = 0; + glDeleteVertexArrays(1, &m_vao); + #else SAFE_RELEASE(m_pVBuffer); SAFE_RELEASE(m_pPShader); @@ -430,6 +434,8 @@ void CStarField::DoDraw(void) size_t nVSize = m_nDrawnStars * POINTSPERSTAR; + glBindVertexArray(m_vao); + EnableShader(); glBindBuffer(GL_ARRAY_BUFFER, m_vertexVBO); @@ -451,6 +457,8 @@ void CStarField::DoDraw(void) DisableShader(); + glBindVertexArray(0); + #else m_pContext->Unmap(m_pVBuffer, 0); m_pContext->IASetPrimitiveTopology(D3D11_PRIMITIVE_TOPOLOGY_LINELIST); diff --git a/src/StarField.h b/src/StarField.h index de9de97..5acb42b 100644 --- a/src/StarField.h +++ b/src/StarField.h @@ -125,7 +125,8 @@ class ATTR_DLL_LOCAL CStarField // override functions for kodi::gui::gl::CShaderProgram void OnCompiledAndLinked() override; bool OnEnabled() override { return true; } - + + GLuint m_vao = 0; GLuint m_vertexVBO = 0; GLint m_aPosition = -1; GLint m_aColor = -1;