mesa: Refactor _mesa_framebuffer_renderbuffer

This function previously was only used in fbobject.c and contained a
bunch of API validation.  Split the function into
framebuffer_renderbuffer that is static and contains the validation, and
_mesa_framebuffer_renderbuffer that is suitable for calling from
elsewhere in Mesa (e.g., meta).

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Anuj Phogat <anuj.phogat@gmail.com>
This commit is contained in:
Ian Romanick 2015-11-11 16:30:41 -08:00
parent 7aedbbacae
commit 9ae42ab1ec
2 changed files with 27 additions and 18 deletions

View file

@ -3413,8 +3413,27 @@ void
_mesa_framebuffer_renderbuffer(struct gl_context *ctx,
struct gl_framebuffer *fb,
GLenum attachment,
struct gl_renderbuffer *rb,
const char *func)
struct gl_renderbuffer *rb)
{
assert(!_mesa_is_winsys_fbo(fb));
FLUSH_VERTICES(ctx, _NEW_BUFFERS);
assert(ctx->Driver.FramebufferRenderbuffer);
ctx->Driver.FramebufferRenderbuffer(ctx, fb, attachment, rb);
/* Some subsequent GL commands may depend on the framebuffer's visual
* after the binding is updated. Update visual info now.
*/
_mesa_update_framebuffer_visual(ctx, fb);
}
static void
framebuffer_renderbuffer(struct gl_context *ctx,
struct gl_framebuffer *fb,
GLenum attachment,
struct gl_renderbuffer *rb,
const char *func)
{
struct gl_renderbuffer_attachment *att;
@ -3444,18 +3463,9 @@ _mesa_framebuffer_renderbuffer(struct gl_context *ctx,
}
}
FLUSH_VERTICES(ctx, _NEW_BUFFERS);
assert(ctx->Driver.FramebufferRenderbuffer);
ctx->Driver.FramebufferRenderbuffer(ctx, fb, attachment, rb);
/* Some subsequent GL commands may depend on the framebuffer's visual
* after the binding is updated. Update visual info now.
*/
_mesa_update_framebuffer_visual(ctx, fb);
_mesa_framebuffer_renderbuffer(ctx, fb, attachment, rb);
}
void GLAPIENTRY
_mesa_FramebufferRenderbuffer(GLenum target, GLenum attachment,
GLenum renderbuffertarget,
@ -3491,8 +3501,8 @@ _mesa_FramebufferRenderbuffer(GLenum target, GLenum attachment,
rb = NULL;
}
_mesa_framebuffer_renderbuffer(ctx, fb, attachment, rb,
"glFramebufferRenderbuffer");
framebuffer_renderbuffer(ctx, fb, attachment, rb,
"glFramebufferRenderbuffer");
}
@ -3528,8 +3538,8 @@ _mesa_NamedFramebufferRenderbuffer(GLuint framebuffer, GLenum attachment,
rb = NULL;
}
_mesa_framebuffer_renderbuffer(ctx, fb, attachment, rb,
"glNamedFramebufferRenderbuffer");
framebuffer_renderbuffer(ctx, fb, attachment, rb,
"glNamedFramebufferRenderbuffer");
}

View file

@ -91,8 +91,7 @@ extern void
_mesa_framebuffer_renderbuffer(struct gl_context *ctx,
struct gl_framebuffer *fb,
GLenum attachment,
struct gl_renderbuffer *rb,
const char *func);
struct gl_renderbuffer *rb);
extern void
_mesa_validate_framebuffer(struct gl_context *ctx, struct gl_framebuffer *fb);