summaryrefslogtreecommitdiff
path: root/cogl/cogl-renderer.c
diff options
context:
space:
mode:
authorRobert Bragg <robert@linux.intel.com>2013-04-18 14:19:43 +0100
committerRobert Bragg <robert@linux.intel.com>2013-04-30 16:39:31 +0100
commite3975d17117244b03f25404c6df0a562daab2011 (patch)
tree07b5db41c32049fbb10e42dc788688f3b6b498b6 /cogl/cogl-renderer.c
parent04a165580477042bd4c2a326ce94ae1558d86f5f (diff)
downloadcogl-e3975d17117244b03f25404c6df0a562daab2011.tar.gz
Add api for queuing idle callback internally
This adds a _cogl_poll_renderer_add_idle api that can be used internally for queuing an idle callback without needing to make any assumption about the system mainloop that is being used. This is now used to avoid having the _cogl_poll_renderer_dispatch() directly check for all kinds of events to dispatch, and to avoid having the winsys dispatch vfuncs need to directly know about CoglContext. This means we can now avoid having a back reference from CoglRenderer to the CoglContext. Reviewed-by: Neil Roberts <neil@linux.intel.com> (cherry picked from commit a1e169f18f4257caec58760adccfe4ec09b9805d)
Diffstat (limited to 'cogl/cogl-renderer.c')
-rw-r--r--cogl/cogl-renderer.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/cogl/cogl-renderer.c b/cogl/cogl-renderer.c
index f895d467..bcdbd10f 100644
--- a/cogl/cogl-renderer.c
+++ b/cogl/cogl-renderer.c
@@ -155,6 +155,8 @@ _cogl_renderer_free (CoglRenderer *renderer)
{
const CoglWinsysVtable *winsys = _cogl_renderer_get_winsys (renderer);
+ _cogl_closure_list_disconnect_all (&renderer->idle_closures);
+
if (winsys)
winsys->renderer_disconnect (renderer);
@@ -185,6 +187,8 @@ cogl_renderer_new (void)
renderer->poll_fds = g_array_new (FALSE, TRUE, sizeof (CoglPollFD));
+ COGL_LIST_INIT (&renderer->idle_closures);
+
#ifdef COGL_HAS_XLIB_SUPPORT
renderer->xlib_enable_event_retrieval = TRUE;
#endif