cogl/renderer: Move output list to CoglXlibRenderer
It's the only place where it's used. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/3792>
This commit is contained in:
parent
94d69c3252
commit
653ba4a7a7
3 changed files with 19 additions and 13 deletions
|
@ -57,8 +57,6 @@ struct _CoglRenderer
|
|||
|
||||
CoglList idle_closures;
|
||||
|
||||
GList *outputs;
|
||||
|
||||
#ifdef HAVE_X11
|
||||
Display *foreign_xdpy;
|
||||
gboolean xlib_enable_event_retrieval;
|
||||
|
|
|
@ -42,6 +42,8 @@ typedef struct _CoglXlibRenderer
|
|||
|
||||
Display *xdpy;
|
||||
|
||||
GList *outputs;
|
||||
|
||||
unsigned long outputs_update_serial;
|
||||
} CoglXlibRenderer;
|
||||
|
||||
|
|
|
@ -264,7 +264,7 @@ update_outputs (CoglRenderer *renderer,
|
|||
new_outputs = g_list_sort (new_outputs, (GCompareFunc)compare_outputs);
|
||||
|
||||
l = new_outputs;
|
||||
m = renderer->outputs;
|
||||
m = xlib_renderer->outputs;
|
||||
|
||||
while (l || m)
|
||||
{
|
||||
|
@ -285,9 +285,13 @@ update_outputs (CoglRenderer *renderer,
|
|||
|
||||
if (!_cogl_output_values_equal (output_l, output_m))
|
||||
{
|
||||
renderer->outputs = g_list_remove_link (renderer->outputs, m);
|
||||
renderer->outputs = g_list_insert_before (renderer->outputs,
|
||||
m_next, output_l);
|
||||
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);
|
||||
g_object_ref (output_l);
|
||||
|
||||
changed = TRUE;
|
||||
|
@ -298,8 +302,8 @@ update_outputs (CoglRenderer *renderer,
|
|||
}
|
||||
else if (cmp < 0)
|
||||
{
|
||||
renderer->outputs =
|
||||
g_list_insert_before (renderer->outputs, m, output_l);
|
||||
xlib_renderer->outputs =
|
||||
g_list_insert_before (xlib_renderer->outputs, m, output_l);
|
||||
g_object_ref (output_l);
|
||||
changed = TRUE;
|
||||
l = l->next;
|
||||
|
@ -307,7 +311,8 @@ update_outputs (CoglRenderer *renderer,
|
|||
else
|
||||
{
|
||||
GList *m_next = m->next;
|
||||
renderer->outputs = g_list_remove_link (renderer->outputs, m);
|
||||
xlib_renderer->outputs =
|
||||
g_list_remove_link (xlib_renderer->outputs, m);
|
||||
changed = TRUE;
|
||||
m = m_next;
|
||||
}
|
||||
|
@ -326,7 +331,7 @@ update_outputs (CoglRenderer *renderer,
|
|||
else
|
||||
COGL_NOTE (WINSYS, "Outputs:");
|
||||
|
||||
for (l = renderer->outputs; l; l = l->next)
|
||||
for (l = xlib_renderer->outputs; l; l = l->next)
|
||||
{
|
||||
CoglOutput *output = l->data;
|
||||
const char *subpixel_string;
|
||||
|
@ -476,8 +481,8 @@ _cogl_xlib_renderer_disconnect (CoglRenderer *renderer)
|
|||
CoglXlibRenderer *xlib_renderer =
|
||||
_cogl_xlib_renderer_get_data (renderer);
|
||||
|
||||
g_list_free_full (renderer->outputs, (GDestroyNotify)g_object_unref);
|
||||
renderer->outputs = NULL;
|
||||
g_list_free_full (xlib_renderer->outputs, (GDestroyNotify)g_object_unref);
|
||||
xlib_renderer->outputs = NULL;
|
||||
|
||||
if (!renderer->foreign_xdpy && xlib_renderer->xdpy)
|
||||
XCloseDisplay (xlib_renderer->xdpy);
|
||||
|
@ -531,13 +536,14 @@ _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 = renderer->outputs; l; l = l->next)
|
||||
for (l = xlib_renderer->outputs; l; l = l->next)
|
||||
{
|
||||
CoglOutput *output = l->data;
|
||||
int xb1 = output->x, xb2 = output->x + output->width;
|
||||
|
|
Loading…
Reference in a new issue