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:
@@ -393,7 +393,9 @@ test_attachment_completeness(const GLcontext *ctx, GLenum format,
|
|||||||
|
|
||||||
if (format == GL_COLOR) {
|
if (format == GL_COLOR) {
|
||||||
if (baseFormat != GL_RGB &&
|
if (baseFormat != GL_RGB &&
|
||||||
baseFormat != GL_RGBA) {
|
baseFormat != GL_RGBA &&
|
||||||
|
(!ctx->Extensions.ARB_framebuffer_object ||
|
||||||
|
baseFormat != GL_ALPHA)) {
|
||||||
att_incomplete("bad format");
|
att_incomplete("bad format");
|
||||||
att->Complete = GL_FALSE;
|
att->Complete = GL_FALSE;
|
||||||
return;
|
return;
|
||||||
@@ -572,7 +574,8 @@ _mesa_test_framebuffer_completeness(GLcontext *ctx, struct gl_framebuffer *fb)
|
|||||||
f = texImg->_BaseFormat;
|
f = texImg->_BaseFormat;
|
||||||
numImages++;
|
numImages++;
|
||||||
if (f != GL_RGB && f != GL_RGBA && f != GL_DEPTH_COMPONENT
|
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;
|
fb->_Status = GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT;
|
||||||
fbo_incomplete("texture attachment incomplete", -1);
|
fbo_incomplete("texture attachment incomplete", -1);
|
||||||
return;
|
return;
|
||||||
|
@@ -544,7 +544,8 @@ _mesa_update_framebuffer_visual(struct gl_framebuffer *fb)
|
|||||||
const GLenum baseFormat = _mesa_get_format_base_format(rb->Format);
|
const GLenum baseFormat = _mesa_get_format_base_format(rb->Format);
|
||||||
const gl_format fmt = 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.redBits = _mesa_get_format_bits(fmt, GL_RED_BITS);
|
||||||
fb->Visual.greenBits = _mesa_get_format_bits(fmt, GL_GREEN_BITS);
|
fb->Visual.greenBits = _mesa_get_format_bits(fmt, GL_GREEN_BITS);
|
||||||
fb->Visual.blueBits = _mesa_get_format_bits(fmt, GL_BLUE_BITS);
|
fb->Visual.blueBits = _mesa_get_format_bits(fmt, GL_BLUE_BITS);
|
||||||
|
Reference in New Issue
Block a user