fix GL_ALPHA render-to-texture problem (Jon Smirl)
authorBrian Paul <brian.paul@tungstengraphics.com>
Tue, 7 Jun 2005 15:03:40 +0000 (15:03 +0000)
committerBrian Paul <brian.paul@tungstengraphics.com>
Tue, 7 Jun 2005 15:03:40 +0000 (15:03 +0000)
src/mesa/main/fbobject.c
src/mesa/main/texrender.c

index 6dae796..cbc3dcc 100644 (file)
@@ -389,6 +389,10 @@ _mesa_test_framebuffer_completeness(GLcontext *ctx, struct gl_framebuffer *fb)
          h = att->Texture->Image[att->CubeMapFace][att->TextureLevel]->Height;
          f = att->Texture->Image[att->CubeMapFace][att->TextureLevel]->Format;
          numImages++;
+         if (f != GL_RGB && f != GL_RGBA && f != GL_DEPTH_COMPONENT) {
+            fb->_Status = GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT;
+            return;
+         }
       }
       else if (att->Type == GL_RENDERBUFFER_EXT) {
          w = att->Renderbuffer->Width;
index 12afa93..f7f3fdb 100644 (file)
@@ -151,9 +151,12 @@ wrap_texture(GLcontext *ctx, struct gl_renderbuffer_attachment *att)
    trb->Base.Height = trb->TexImage->Height;
    trb->Base.InternalFormat = trb->TexImage->IntFormat; /* XXX fix? */
    trb->Base._BaseFormat = trb->TexImage->TexFormat->BaseFormat;
+#if 0
+   /* fix/avoid this assertion someday */
    assert(trb->Base._BaseFormat == GL_RGB ||
           trb->Base._BaseFormat == GL_RGBA ||
           trb->Base._BaseFormat == GL_DEPTH_COMPONENT);
+#endif
    trb->Base.DataType = GL_UNSIGNED_BYTE;  /* XXX fix! */
    trb->Base.Data = trb->TexImage->Data;