Don't delete the 0 VAO or FBO, even if the application asks nicely

This commit is contained in:
baldurk
2020-01-07 16:56:22 +00:00
parent 319455194b
commit 29a650d859
3 changed files with 9 additions and 2 deletions
@@ -4831,7 +4831,7 @@ void WrappedOpenGL::glDeleteVertexArrays(GLsizei n, const GLuint *arrays)
for(GLsizei i = 0; i < n; i++)
{
GLResource res = VertexArrayRes(GetCtx(), arrays[i]);
if(GetResourceManager()->HasCurrentResource(res))
if(GetResourceManager()->HasCurrentResource(res) && arrays[i])
{
if(GetResourceManager()->HasResourceRecord(res))
GetResourceManager()->GetResourceRecord(res)->Delete(GetResourceManager());
@@ -2100,7 +2100,7 @@ void WrappedOpenGL::glDeleteFramebuffers(GLsizei n, const GLuint *framebuffers)
for(GLsizei i = 0; i < n; i++)
{
GLResource res = FramebufferRes(GetCtx(), framebuffers[i]);
if(GetResourceManager()->HasCurrentResource(res))
if(GetResourceManager()->HasCurrentResource(res) && framebuffers[i])
{
if(GetResourceManager()->HasResourceRecord(res))
GetResourceManager()->GetResourceRecord(res)->Delete(GetResourceManager());
+7
View File
@@ -107,6 +107,13 @@ void main()
float col[] = {0.4f, 0.5f, 0.6f, 1.0f};
glClearBufferfv(GL_COLOR, 0, col);
// try to delete VAO 0. Should do nothing
GLuint zero = 0;
glDeleteVertexArrays(1, &zero);
// same with FBO 0
glDeleteFramebuffers(1, &zero);
glUseProgram(program);
// use both buffers