diff options
Diffstat (limited to 'src/mesa')
| -rw-r--r-- | src/mesa/main/fbobject.c | 14 | ||||
| -rw-r--r-- | src/mesa/main/fbobject.h | 3 | ||||
| -rw-r--r-- | src/mesa/main/framebuffer.c | 8 | ||||
| -rw-r--r-- | src/mesa/main/framebuffer.h | 3 | 
4 files changed, 16 insertions, 12 deletions
| diff --git a/src/mesa/main/fbobject.c b/src/mesa/main/fbobject.c index b4101ddcd5..5a93b0f03a 100644 --- a/src/mesa/main/fbobject.c +++ b/src/mesa/main/fbobject.c @@ -402,8 +402,8 @@ fbo_incomplete(const char *msg, int index)  /**   * Is the given base format a legal format for a color renderbuffer?   */ -static GLboolean -is_legal_color_format(const struct gl_context *ctx, GLenum baseFormat) +GLboolean +_mesa_is_legal_color_format(const struct gl_context *ctx, GLenum baseFormat)  {     switch (baseFormat) {     case GL_RGB: @@ -488,7 +488,7 @@ test_attachment_completeness(const struct gl_context *ctx, GLenum format,        baseFormat = _mesa_get_format_base_format(texImage->TexFormat);        if (format == GL_COLOR) { -         if (!is_legal_color_format(ctx, baseFormat)) { +         if (!_mesa_is_legal_color_format(ctx, baseFormat)) {              att_incomplete("bad format");              att->Complete = GL_FALSE;              return; @@ -542,7 +542,7 @@ test_attachment_completeness(const struct gl_context *ctx, GLenum format,           return;        }        if (format == GL_COLOR) { -         if (!is_legal_color_format(ctx, baseFormat)) { +         if (!_mesa_is_legal_color_format(ctx, baseFormat)) {              att_incomplete("bad renderbuffer color format");              att->Complete = GL_FALSE;              return; @@ -668,7 +668,7 @@ _mesa_test_framebuffer_completeness(struct gl_context *ctx,           f = texImg->_BaseFormat;           mesaFormat = texImg->TexFormat;           numImages++; -         if (!is_legal_color_format(ctx, f) && +         if (!_mesa_is_legal_color_format(ctx, f) &&               !is_legal_depth_format(ctx, f)) {              fb->_Status = GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT;              fbo_incomplete("texture attachment incomplete", -1); @@ -792,7 +792,7 @@ _mesa_test_framebuffer_completeness(struct gl_context *ctx,        fb->Height = minHeight;        /* finally, update the visual info for the framebuffer */ -      _mesa_update_framebuffer_visual(fb); +      _mesa_update_framebuffer_visual(ctx, fb);     }  } @@ -1939,7 +1939,7 @@ _mesa_FramebufferRenderbufferEXT(GLenum target, GLenum attachment,     /* Some subsequent GL commands may depend on the framebuffer's visual      * after the binding is updated.  Update visual info now.      */ -   _mesa_update_framebuffer_visual(fb); +   _mesa_update_framebuffer_visual(ctx, fb);  } diff --git a/src/mesa/main/fbobject.h b/src/mesa/main/fbobject.h index 2aace2ebd4..8763f99c4a 100644 --- a/src/mesa/main/fbobject.h +++ b/src/mesa/main/fbobject.h @@ -71,6 +71,9 @@ _mesa_framebuffer_renderbuffer(struct gl_context *ctx, struct gl_framebuffer *fb  extern void  _mesa_test_framebuffer_completeness(struct gl_context *ctx, struct gl_framebuffer *fb); +extern GLboolean +_mesa_is_legal_color_format(const struct gl_context *ctx, GLenum baseFormat); +  extern GLenum  _mesa_base_fbo_format(struct gl_context *ctx, GLenum internalFormat); diff --git a/src/mesa/main/framebuffer.c b/src/mesa/main/framebuffer.c index 5530c51c89..63da71c95b 100644 --- a/src/mesa/main/framebuffer.c +++ b/src/mesa/main/framebuffer.c @@ -522,7 +522,8 @@ _mesa_update_draw_buffer_bounds(struct gl_context *ctx)   * integer Z values.   */  void -_mesa_update_framebuffer_visual(struct gl_framebuffer *fb) +_mesa_update_framebuffer_visual(struct gl_context *ctx, +				struct gl_framebuffer *fb)  {     GLuint i; @@ -542,9 +543,8 @@ _mesa_update_framebuffer_visual(struct gl_framebuffer *fb)           const struct gl_renderbuffer *rb = fb->Attachment[i].Renderbuffer;           const GLenum baseFormat = _mesa_get_format_base_format(rb->Format);           const gl_format fmt = rb->Format; -          -         if (baseFormat == GL_RGBA || baseFormat == GL_RGB || -	     baseFormat == GL_ALPHA) { + +         if (_mesa_is_legal_color_format(ctx, baseFormat)) {              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); diff --git a/src/mesa/main/framebuffer.h b/src/mesa/main/framebuffer.h index 20e3ff56b5..c3bd638c9d 100644 --- a/src/mesa/main/framebuffer.h +++ b/src/mesa/main/framebuffer.h @@ -70,7 +70,8 @@ extern void  _mesa_update_draw_buffer_bounds(struct gl_context *ctx);  extern void -_mesa_update_framebuffer_visual(struct gl_framebuffer *fb); +_mesa_update_framebuffer_visual(struct gl_context *ctx, +				struct gl_framebuffer *fb);  extern void  _mesa_update_depth_buffer(struct gl_context *ctx, struct gl_framebuffer *fb, | 
