[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