[Cogl] [PATCH] move outputs member up to CoglRenderer

Owen Taylor otaylor at redhat.com
Thu Jan 24 09:55:09 PST 2013


Looks fine

Reviewed-by: Owen W. Taylor <otaylor at fishsoup.net>

On Tue, 2012-12-04 at 10:56 +0000, Robert Bragg wrote:
> From: Robert Bragg <robert at linux.intel.com>
> 
> TODO: squash back into owen's patch
> ---
>  cogl/cogl-renderer-private.h      |    2 ++
>  cogl/cogl-xlib-renderer-private.h |    1 -
>  cogl/cogl-xlib-renderer.c         |   27 +++++++++++----------------
>  3 files changed, 13 insertions(+), 17 deletions(-)
> 
> diff --git a/cogl/cogl-renderer-private.h b/cogl/cogl-renderer-private.h
> index 72ea9d0..0b907b9 100644
> --- a/cogl/cogl-renderer-private.h
> +++ b/cogl/cogl-renderer-private.h
> @@ -47,6 +47,8 @@ struct _CoglRenderer
>    CoglWinsysID winsys_id_override;
>    GList *constraints;
>  
> +  GList *outputs;
> +
>  #ifdef COGL_HAS_XLIB_SUPPORT
>    Display *foreign_xdpy;
>    CoglBool xlib_enable_event_retrieval;
> diff --git a/cogl/cogl-xlib-renderer-private.h b/cogl/cogl-xlib-renderer-private.h
> index cb3b60e..5632164 100644
> --- a/cogl/cogl-xlib-renderer-private.h
> +++ b/cogl/cogl-xlib-renderer-private.h
> @@ -44,7 +44,6 @@ typedef struct _CoglXlibRenderer
>    CoglPollFD poll_fd;
>  
>    unsigned long outputs_update_serial;
> -  GList *outputs;
>  } CoglXlibRenderer;
>  
>  CoglBool
> diff --git a/cogl/cogl-xlib-renderer.c b/cogl/cogl-xlib-renderer.c
> index 1060949..9cf4abd 100644
> --- a/cogl/cogl-xlib-renderer.c
> +++ b/cogl/cogl-xlib-renderer.c
> @@ -341,7 +341,7 @@ update_outputs (CoglRenderer *renderer,
>        new_outputs = g_list_sort (new_outputs, (GCompareFunc)compare_outputs);
>  
>        l = new_outputs;
> -      m = xlib_renderer->outputs;
> +      m = renderer->outputs;
>  
>        while (l || m)
>          {
> @@ -362,11 +362,9 @@ update_outputs (CoglRenderer *renderer,
>  
>                if (!_cogl_output_values_equal (output_l, output_m))
>                  {
> -                  xlib_renderer->outputs =
> -                    g_list_remove_link (xlib_renderer->outputs, m);
> -                  xlib_renderer->outputs =
> -                    g_list_insert_before (xlib_renderer->outputs,
> -                                          m_next, output_l);
> +                  renderer->outputs = g_list_remove_link (renderer->outputs, m);
> +                  renderer->outputs = g_list_insert_before (renderer->outputs,
> +                                                            m_next, output_l);
>                    cogl_object_ref (output_l);
>  
>                    changed = TRUE;
> @@ -377,8 +375,8 @@ update_outputs (CoglRenderer *renderer,
>              }
>            else if (cmp < 0)
>              {
> -              xlib_renderer->outputs =
> -                g_list_insert_before (xlib_renderer->outputs, m, output_l);
> +              renderer->outputs =
> +                g_list_insert_before (renderer->outputs, m, output_l);
>                cogl_object_ref (output_l);
>                changed = TRUE;
>                l = l->next;
> @@ -386,8 +384,7 @@ update_outputs (CoglRenderer *renderer,
>            else
>              {
>                GList *m_next = m->next;
> -              xlib_renderer->outputs =
> -                g_list_remove_link (xlib_renderer->outputs, m);
> +              renderer->outputs = g_list_remove_link (renderer->outputs, m);
>                changed = TRUE;
>                m = m_next;
>              }
> @@ -406,7 +403,7 @@ update_outputs (CoglRenderer *renderer,
>        else
>          COGL_NOTE (WINSYS, "Outputs:");
>  
> -      for (l = xlib_renderer->outputs; l; l = l->next)
> +      for (l = renderer->outputs; l; l = l->next)
>          {
>            CoglOutput *output = l->data;
>            const char *subpixel_string;
> @@ -525,9 +522,8 @@ _cogl_xlib_renderer_disconnect (CoglRenderer *renderer)
>    CoglXlibRenderer *xlib_renderer =
>      _cogl_xlib_renderer_get_data (renderer);
>  
> -  g_list_free_full (xlib_renderer->outputs,
> -                    (GDestroyNotify)cogl_object_unref);
> -  xlib_renderer->outputs = NULL;
> +  g_list_free_full (renderer->outputs, (GDestroyNotify)cogl_object_unref);
> +  renderer->outputs = NULL;
>  
>    if (!renderer->foreign_xdpy && xlib_renderer->xdpy)
>      XCloseDisplay (xlib_renderer->xdpy);
> @@ -622,14 +618,13 @@ _cogl_xlib_renderer_output_for_rectangle (CoglRenderer *renderer,
>                                            int           width,
>                                            int           height)
>  {
> -  CoglXlibRenderer *xlib_renderer = _cogl_xlib_renderer_get_data (renderer);
>    int max_overlap = 0;
>    CoglOutput *max_overlapped = NULL;
>    GList *l;
>    int xa1 = x, xa2 = x + width;
>    int ya1 = y, ya2 = y + height;
>  
> -  for (l = xlib_renderer->outputs; l; l = l->next)
> +  for (l = renderer->outputs; l; l = l->next)
>      {
>        CoglOutput *output = l->data;
>        int xb1 = output->x, xb2 = output->x + output->width;




More information about the Cogl mailing list