diff options
| -rw-r--r-- | src/mesa/main/context.c | 3 | ||||
| -rw-r--r-- | src/mesa/main/fbobject.c | 8 | 
2 files changed, 10 insertions, 1 deletions
| diff --git a/src/mesa/main/context.c b/src/mesa/main/context.c index 73d96e8d21..66e4183101 100644 --- a/src/mesa/main/context.c +++ b/src/mesa/main/context.c @@ -1300,6 +1300,9 @@ check_compatible(const GLcontext *ctx, const GLframebuffer *buffer)     if (ctxvis == bufvis)        return GL_TRUE; +   if (buffer == _mesa_get_incomplete_framebuffer()) +      return GL_TRUE; +  #if 0     /* disabling this fixes the fgl_glxgears pbuffer demo */     if (ctxvis->doubleBufferMode && !bufvis->doubleBufferMode) diff --git a/src/mesa/main/fbobject.c b/src/mesa/main/fbobject.c index 72cbb09ab8..5201f50252 100644 --- a/src/mesa/main/fbobject.c +++ b/src/mesa/main/fbobject.c @@ -71,6 +71,10 @@  static struct gl_framebuffer DummyFramebuffer;  static struct gl_renderbuffer DummyRenderbuffer; +/* We bind this framebuffer when applications pass a NULL + * drawable/surface in make current. */ +static struct gl_framebuffer IncompleteFramebuffer; +  #define IS_CUBE_FACE(TARGET) \     ((TARGET) >= GL_TEXTURE_CUBE_MAP_POSITIVE_X && \ @@ -95,14 +99,16 @@ _mesa_init_fbobjects(GLcontext *ctx)  {     _glthread_INIT_MUTEX(DummyFramebuffer.Mutex);     _glthread_INIT_MUTEX(DummyRenderbuffer.Mutex); +   _glthread_INIT_MUTEX(IncompleteFramebuffer.Mutex);     DummyFramebuffer.Delete = delete_dummy_framebuffer;     DummyRenderbuffer.Delete = delete_dummy_renderbuffer; +   IncompleteFramebuffer.Delete = delete_dummy_framebuffer;  }  struct gl_framebuffer *  _mesa_get_incomplete_framebuffer(void)  { -   return &DummyFramebuffer; +   return &IncompleteFramebuffer;  }  /** | 
