Skip to content
Permalink
Browse files

OGL: Fix binding error on shutdown

This was occurring if the imgui vertex format was bound on shutdown,
which is destroyed before the vertex buffers
  • Loading branch information...
stenzek committed Mar 5, 2019
1 parent 9577d06 commit f2a594fad5de59180add789ebebac7ff74f69c32
@@ -80,6 +80,7 @@ GLVertexFormat::GLVertexFormat(const PortableVertexDeclaration& vtx_decl)

GLVertexFormat::~GLVertexFormat()
{
ProgramShaderCache::InvalidateVertexFormatIfBound(VAO);
glDeleteVertexArrays(1, &VAO);
}
} // namespace OGL
@@ -494,6 +494,12 @@ void ProgramShaderCache::InvalidateVertexFormat()
s_last_VAO = 0;
}

void ProgramShaderCache::InvalidateVertexFormatIfBound(GLuint vao)
{
if (s_last_VAO == vao)
s_last_VAO = 0;
}

void ProgramShaderCache::InvalidateLastProgram()
{
CurrentProgram = 0;
@@ -72,6 +72,7 @@ class ProgramShaderCache
static void BindVertexFormat(const GLVertexFormat* vertex_format);
static bool IsValidVertexFormatBound();
static void InvalidateVertexFormat();
static void InvalidateVertexFormatIfBound(GLuint vao);
static void InvalidateLastProgram();

static bool CompileComputeShader(SHADER& shader, const std::string& code);

0 comments on commit f2a594f

Please sign in to comment.
You can’t perform that action at this time.