From 2d32676a80c2ba28026b9e317962cf2cfab29310 Mon Sep 17 00:00:00 2001 From: Lukas Rusak Date: Fri, 21 Apr 2023 10:07:30 -0700 Subject: [PATCH] CStarField: use vao Signed-off-by: Lukas Rusak --- src/StarField.cpp | 8 ++++++++ src/StarField.h | 3 ++- 2 files changed, 10 insertions(+), 1 deletion(-) 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;