Browse Source

Fix obscure GL crash

rdb 10 years ago
parent
commit
4206e349c9

+ 2 - 2
panda/src/glstuff/glGraphicsBuffer_src.cxx

@@ -155,7 +155,7 @@ begin_frame(FrameMode mode, Thread *current_thread) {
       for (it = _texture_contexts.begin(); it != _texture_contexts.end(); ++it) {
       for (it = _texture_contexts.begin(); it != _texture_contexts.end(); ++it) {
         CLP(TextureContext) *gtc = *it;
         CLP(TextureContext) *gtc = *it;
 
 
-        if (gtc->needs_barrier(GL_FRAMEBUFFER_BARRIER_BIT)) {
+        if (gtc != NULL && gtc->needs_barrier(GL_FRAMEBUFFER_BARRIER_BIT)) {
           glgsg->issue_memory_barrier(GL_FRAMEBUFFER_BARRIER_BIT);
           glgsg->issue_memory_barrier(GL_FRAMEBUFFER_BARRIER_BIT);
           // If we've done it for one, we've done it for all.
           // If we've done it for one, we've done it for all.
           break;
           break;
@@ -1656,7 +1656,7 @@ resolve_multisamples() {
     for (it = _texture_contexts.begin(); it != _texture_contexts.end(); ++it) {
     for (it = _texture_contexts.begin(); it != _texture_contexts.end(); ++it) {
       CLP(TextureContext) *gtc = *it;
       CLP(TextureContext) *gtc = *it;
 
 
-      if (gtc->needs_barrier(GL_FRAMEBUFFER_BARRIER_BIT)) {
+      if (gtc != NULL && gtc->needs_barrier(GL_FRAMEBUFFER_BARRIER_BIT)) {
         glgsg->issue_memory_barrier(GL_FRAMEBUFFER_BARRIER_BIT);
         glgsg->issue_memory_barrier(GL_FRAMEBUFFER_BARRIER_BIT);
         // If we've done it for one, we've done it for all.
         // If we've done it for one, we've done it for all.
         break;
         break;

+ 3 - 0
panda/src/glstuff/glGraphicsStateGuardian_src.cxx

@@ -7045,6 +7045,9 @@ report_extensions() const {
             out.put(' ');
             out.put(' ');
           }
           }
           out << ' ' << (*ei);
           out << ' ' << (*ei);
+        } else {
+          out.put('\n');
+          break;
         }
         }
       }
       }
       out.put('\n');
       out.put('\n');