[Mesa-dev] [PATCH 24/38] main: Refactor invalidate_framebuffer_storage.
Fredrik Höglund
fredrik at kde.org
Thu Apr 16 09:40:18 PDT 2015
This patch is:
Reviewed-by: Fredrik Höglund <fredrik at kde.org>
On Wednesday 04 March 2015, Laura Ekstrand wrote:
> ---
> src/mesa/main/fbobject.c | 38 +++++++++++++++++++++++++++-----------
> 1 file changed, 27 insertions(+), 11 deletions(-)
>
> diff --git a/src/mesa/main/fbobject.c b/src/mesa/main/fbobject.c
> index 467a8cd..7a1684c 100644
> --- a/src/mesa/main/fbobject.c
> +++ b/src/mesa/main/fbobject.c
> @@ -3468,19 +3468,13 @@ _mesa_GetNamedFramebufferAttachmentParameteriv(GLuint framebuffer,
>
>
> static void
> -invalidate_framebuffer_storage(GLenum target, GLsizei numAttachments,
> +invalidate_framebuffer_storage(struct gl_context *ctx,
> + struct gl_framebuffer *fb,
> + GLsizei numAttachments,
> const GLenum *attachments, GLint x, GLint y,
> GLsizei width, GLsizei height, const char *name)
> {
> int i;
> - struct gl_framebuffer *fb;
> - GET_CURRENT_CONTEXT(ctx);
> -
> - fb = get_framebuffer_target(ctx, target);
> - if (!fb) {
> - _mesa_error(ctx, GL_INVALID_ENUM, "%s(target)", name);
> - return;
> - }
>
> if (numAttachments < 0) {
> _mesa_error(ctx, GL_INVALID_VALUE,
> @@ -3590,7 +3584,18 @@ _mesa_InvalidateSubFramebuffer(GLenum target, GLsizei numAttachments,
> const GLenum *attachments, GLint x, GLint y,
> GLsizei width, GLsizei height)
> {
> - invalidate_framebuffer_storage(target, numAttachments, attachments,
> + struct gl_framebuffer *fb;
> + GET_CURRENT_CONTEXT(ctx);
> +
> + fb = get_framebuffer_target(ctx, target);
> + if (!fb) {
> + _mesa_error(ctx, GL_INVALID_ENUM,
> + "glInvalidateSubFramebuffer(invalid target %s)",
> + _mesa_lookup_enum_by_nr(target));
> + return;
> + }
> +
> + invalidate_framebuffer_storage(ctx, fb, numAttachments, attachments,
> x, y, width, height,
> "glInvalidateSubFramebuffer");
> }
> @@ -3600,6 +3605,17 @@ void GLAPIENTRY
> _mesa_InvalidateFramebuffer(GLenum target, GLsizei numAttachments,
> const GLenum *attachments)
> {
> + struct gl_framebuffer *fb;
> + GET_CURRENT_CONTEXT(ctx);
> +
> + fb = get_framebuffer_target(ctx, target);
> + if (!fb) {
> + _mesa_error(ctx, GL_INVALID_ENUM,
> + "glInvalidateFramebuffer(invalid target %s)",
> + _mesa_lookup_enum_by_nr(target));
> + return;
> + }
> +
> /* The GL_ARB_invalidate_subdata spec says:
> *
> * "The command
> @@ -3612,7 +3628,7 @@ _mesa_InvalidateFramebuffer(GLenum target, GLsizei numAttachments,
> * <width>, <height> equal to 0, 0, <MAX_VIEWPORT_DIMS[0]>,
> * <MAX_VIEWPORT_DIMS[1]> respectively."
> */
> - invalidate_framebuffer_storage(target, numAttachments, attachments,
> + invalidate_framebuffer_storage(ctx, fb, numAttachments, attachments,
> 0, 0,
> MAX_VIEWPORT_WIDTH, MAX_VIEWPORT_HEIGHT,
> "glInvalidateFramebuffer");
>
More information about the mesa-dev
mailing list