Browse Source

glgsg: Fix stencil renderbuffer not being unbound when binding depth tex

Fixes part of #1364
rdb 3 years ago
parent
commit
c799146cc9
1 changed files with 7 additions and 0 deletions
  1. 7 0
      panda/src/glstuff/glGraphicsBuffer_src.cxx

+ 7 - 0
panda/src/glstuff/glGraphicsBuffer_src.cxx

@@ -788,6 +788,13 @@ bind_slot(int layer, bool rb_resize, Texture **attach, RenderTexturePlane slot,
         GLCAT.debug() << "Binding texture " << *tex << " to depth attachment.\n";
       }
 
+      if (slot != RTP_depth_stencil && _rb[RTP_depth_stencil] != 0) {
+        // We have a depth-stencil renderbuffer bound, delete it first.
+        // This will automatically unbind it as well.
+        glgsg->_glDeleteRenderbuffers(1, &(_rb[RTP_depth_stencil]));
+        _rb[RTP_depth_stencil] = 0;
+      }
+
       attach_tex(layer, 0, tex, GL_DEPTH_ATTACHMENT_EXT);
 
 #ifndef OPENGLES