[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