mesa: Allow GL_ALPHA FBOs with ARB_framebuffer_object.

Drivers still reject them today, but cairo would like to use these.
This commit is contained in:
Eric Anholt 2010-05-25 08:00:51 -07:00
parent ceba688cb5
commit 262cdbd957
2 changed files with 7 additions and 3 deletions

View File

@ -393,7 +393,9 @@ test_attachment_completeness(const GLcontext *ctx, GLenum format,
if (format == GL_COLOR) {
if (baseFormat != GL_RGB &&
baseFormat != GL_RGBA) {
baseFormat != GL_RGBA &&
(!ctx->Extensions.ARB_framebuffer_object ||
baseFormat != GL_ALPHA)) {
att_incomplete("bad format");
att->Complete = GL_FALSE;
return;
@ -572,7 +574,8 @@ _mesa_test_framebuffer_completeness(GLcontext *ctx, struct gl_framebuffer *fb)
f = texImg->_BaseFormat;
numImages++;
if (f != GL_RGB && f != GL_RGBA && f != GL_DEPTH_COMPONENT
&& f != GL_DEPTH_STENCIL_EXT) {
&& f != GL_DEPTH_STENCIL_EXT
&& (!ctx->Extensions.ARB_framebuffer_object || f != GL_ALPHA)) {
fb->_Status = GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT;
fbo_incomplete("texture attachment incomplete", -1);
return;

View File

@ -544,7 +544,8 @@ _mesa_update_framebuffer_visual(struct gl_framebuffer *fb)
const GLenum baseFormat = _mesa_get_format_base_format(rb->Format);
const gl_format fmt = rb->Format;
if (baseFormat == GL_RGBA || baseFormat == GL_RGB) {
if (baseFormat == GL_RGBA || baseFormat == GL_RGB ||
baseFormat == GL_ALPHA) {
fb->Visual.redBits = _mesa_get_format_bits(fmt, GL_RED_BITS);
fb->Visual.greenBits = _mesa_get_format_bits(fmt, GL_GREEN_BITS);
fb->Visual.blueBits = _mesa_get_format_bits(fmt, GL_BLUE_BITS);