mirror of
https://github.com/moonlight-stream/moonlight-qt.git
synced 2026-10-25 21:40:06 +00:00
Keep the VBO alive while the VAO references it
This commit is contained in:
1 parent
df7db4018e
commit
fb9daf85ab
2 files changed
+7
-4
No files matched your search
@@ -63,6 +63,7 @@ EGLRenderer::EGLRenderer(IFFmpegRenderer *backendRenderer)
|
||||
m_Window(nullptr),
|
||||
m_Backend(backendRenderer),
|
||||
m_VideoVAO(0),
|
||||
m_VideoVBO(0),
|
||||
m_BlockingSwapBuffers(false),
|
||||
m_LastRenderSync(EGL_NO_SYNC),
|
||||
m_glEGLImageTargetTexture2DOES(nullptr),
|
||||
@@ -100,6 +101,7 @@ EGLRenderer::~EGLRenderer()
|
||||
SDL_assert(m_glDeleteVertexArraysOES != nullptr);
|
||||
m_glDeleteVertexArraysOES(1, &m_VideoVAO);
|
||||
}
|
||||
glDeleteBuffers(1, &m_VideoVBO);
|
||||
glDeleteTextures(EGL_MAX_PLANES, m_Textures);
|
||||
|
||||
glDeleteTextures(Overlay::OverlayMax, m_OverlayTextures);
|
||||
@@ -646,13 +648,12 @@ bool EGLRenderer::setupVideoRenderingState() {
|
||||
};
|
||||
|
||||
// Setup the VAO and VBO
|
||||
unsigned int VBO;
|
||||
m_glGenVertexArraysOES(1, &m_VideoVAO);
|
||||
glGenBuffers(1, &VBO);
|
||||
glGenBuffers(1, &m_VideoVBO);
|
||||
|
||||
m_glBindVertexArrayOES(m_VideoVAO);
|
||||
|
||||
glBindBuffer(GL_ARRAY_BUFFER, VBO);
|
||||
glBindBuffer(GL_ARRAY_BUFFER, m_VideoVBO);
|
||||
glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_STATIC_DRAW);
|
||||
|
||||
// compileShader() ensures that aPosition and aTexCoord are indexes 0 and 1 respectively
|
||||
@@ -664,7 +665,8 @@ bool EGLRenderer::setupVideoRenderingState() {
|
||||
glBindBuffer(GL_ARRAY_BUFFER, 0);
|
||||
m_glBindVertexArrayOES(0);
|
||||
|
||||
glDeleteBuffers(1, &VBO);
|
||||
// The VBO is kept alive as a member since the VAO still references it.
|
||||
// It is deleted in ~EGLRenderer() alongside the other GL resources.
|
||||
|
||||
GLenum err = glGetError();
|
||||
if (err != GL_NO_ERROR) {
|
||||
|
||||
@@ -44,6 +44,7 @@ private:
|
||||
SDL_Window *m_Window;
|
||||
IFFmpegRenderer *m_Backend;
|
||||
unsigned int m_VideoVAO;
|
||||
unsigned int m_VideoVBO;
|
||||
bool m_BlockingSwapBuffers;
|
||||
EGLSync m_LastRenderSync;
|
||||
PFNGLEGLIMAGETARGETTEXTURE2DOESPROC m_glEGLImageTargetTexture2DOES;
|
||||
|
||||
Reference in new issue
Block a user