[Mesa-dev] [PATCH v2 1/8] mesa: Separate transform feedback object initialization from allocation.

Marek Olšák maraeo at gmail.com
Sat Oct 26 16:42:11 CEST 2013


For patches 1 & 2:

Reviewed-by: Marek Olšák <marek.olsak at amd.com>

Marek

On Sat, Oct 26, 2013 at 7:35 AM, Kenneth Graunke <kenneth at whitecape.org> wrote:
> Both Gallium and i965 subclass gl_transform_feedback_object, which
> requires implementing a custom NewTransformFeedback hook.  Creating a
> helper function to initialize the fields avoids code duplication and
> divergence.
>
> Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
> Cc: Eric Anholt <eric at anholt.net>
> Cc: Marek Olšák <maraeo at gmail.com>
> ---
>  src/mesa/main/transformfeedback.c | 20 +++++++++++++++-----
>  src/mesa/main/transformfeedback.h |  3 +++
>  2 files changed, 18 insertions(+), 5 deletions(-)
>
> diff --git a/src/mesa/main/transformfeedback.c b/src/mesa/main/transformfeedback.c
> index bc9b52a..76d213b 100644
> --- a/src/mesa/main/transformfeedback.c
> +++ b/src/mesa/main/transformfeedback.c
> @@ -205,17 +205,27 @@ _mesa_free_transform_feedback(struct gl_context *ctx)
>  }
>
>
> +/** Initialize the fields of a gl_transform_feedback_object. */
> +void
> +_mesa_init_transform_feedback_object(struct gl_transform_feedback_object *obj,
> +                                     GLuint name)
> +{
> +   if (!obj)
> +      return;
> +
> +   obj->Name = name;
> +   obj->RefCount = 1;
> +   obj->EverBound = GL_FALSE;
> +}
> +
> +
>  /** Default fallback for ctx->Driver.NewTransformFeedback() */
>  static struct gl_transform_feedback_object *
>  new_transform_feedback(struct gl_context *ctx, GLuint name)
>  {
>     struct gl_transform_feedback_object *obj;
>     obj = CALLOC_STRUCT(gl_transform_feedback_object);
> -   if (obj) {
> -      obj->Name = name;
> -      obj->RefCount = 1;
> -      obj->EverBound = GL_FALSE;
> -   }
> +   _mesa_init_transform_feedback_object(obj, name);
>     return obj;
>  }
>
> diff --git a/src/mesa/main/transformfeedback.h b/src/mesa/main/transformfeedback.h
> index 0ffaab5..7aecd66 100644
> --- a/src/mesa/main/transformfeedback.h
> +++ b/src/mesa/main/transformfeedback.h
> @@ -91,6 +91,9 @@ _mesa_GetTransformFeedbackVarying(GLuint program, GLuint index,
>
>
>  /*** GL_ARB_transform_feedback2 ***/
> +extern void
> +_mesa_init_transform_feedback_object(struct gl_transform_feedback_object *obj,
> +                                     GLuint name);
>
>  struct gl_transform_feedback_object *
>  _mesa_lookup_transform_feedback_object(struct gl_context *ctx, GLuint name);
> --
> 1.8.3.2
>


More information about the mesa-dev mailing list