diff options
| author | Mathias Fröhlich <frohlich8@users.sourceforge.net> | 2009-05-19 09:59:01 -0600 | 
|---|---|---|
| committer | Brian Paul <brianp@vmware.com> | 2009-05-19 09:59:01 -0600 | 
| commit | 042d9a513213b1fa356c0d80abc62b9327e0bcc2 (patch) | |
| tree | 34eb9e60e1c2532c0f7bc77ac2d3be38b8a3db62 | |
| parent | c99a60c40d4ece363d37a5af895124f08a645c6b (diff) | |
mesa: allow depth/stencil textures to be attached to GL_STENCIL_ATTACHMENT
See sourceforge bug #2793846.
| -rw-r--r-- | src/mesa/main/fbobject.c | 18 | 
1 files changed, 14 insertions, 4 deletions
| diff --git a/src/mesa/main/fbobject.c b/src/mesa/main/fbobject.c index 9c5a5908a2..e8e8c2bf30 100644 --- a/src/mesa/main/fbobject.c +++ b/src/mesa/main/fbobject.c @@ -374,6 +374,7 @@ test_attachment_completeness(const GLcontext *ctx, GLenum format,              /* OK */           }           else if (ctx->Extensions.EXT_packed_depth_stencil && +                  ctx->Extensions.ARB_depth_texture &&                    texImage->TexFormat->BaseFormat == GL_DEPTH_STENCIL_EXT) {              /* OK */           } @@ -384,10 +385,19 @@ test_attachment_completeness(const GLcontext *ctx, GLenum format,           }        }        else { -         /* no such thing as stencil textures */ -         att_incomplete("illegal stencil texture"); -         att->Complete = GL_FALSE; -         return; +         ASSERT(format == GL_STENCIL); +         ASSERT(att->Renderbuffer->StencilBits); +         if (ctx->Extensions.EXT_packed_depth_stencil && +             ctx->Extensions.ARB_depth_texture && +             att->Renderbuffer->_BaseFormat == GL_DEPTH_STENCIL_EXT) { +            /* OK */ +         } +         else { +            /* no such thing as stencil-only textures */ +            att_incomplete("illegal stencil texture"); +            att->Complete = GL_FALSE; +            return; +         }        }     }     else if (att->Type == GL_RENDERBUFFER_EXT) { | 
