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
This commit is contained in:
Stenzek 2019-03-05 23:02:40 +10:00
parent 9577d0641b
commit f2a594fad5
3 changed files with 8 additions and 0 deletions

View File

@ -80,6 +80,7 @@ GLVertexFormat::GLVertexFormat(const PortableVertexDeclaration& vtx_decl)
GLVertexFormat::~GLVertexFormat()
{
ProgramShaderCache::InvalidateVertexFormatIfBound(VAO);
glDeleteVertexArrays(1, &VAO);
}
} // namespace OGL

View File

@ -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;

View File

@ -72,6 +72,7 @@ public:
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);