Store the master clock pointer in the main context
authorEmmanuele Bassi <ebassi@linux.intel.com>
Mon, 14 Nov 2011 17:04:14 +0000 (17:04 +0000)
committerEmmanuele Bassi <ebassi@linux.intel.com>
Mon, 14 Nov 2011 17:16:27 +0000 (17:16 +0000)
Let's try and move all singletons into ClutterMainContext.

clutter/clutter-master-clock.c
clutter/clutter-private.h

index 21a86d5..2f2debd 100644 (file)
@@ -95,8 +95,6 @@ static gboolean clutter_clock_dispatch (GSource     *source,
                                         GSourceFunc  callback,
                                         gpointer     user_data);
 
-static ClutterMasterClock *default_clock = NULL;
-
 static GSourceFuncs clock_funcs = {
   clutter_clock_prepare,
   clutter_clock_check,
@@ -461,12 +459,12 @@ clutter_master_clock_init (ClutterMasterClock *self)
 ClutterMasterClock *
 _clutter_master_clock_get_default (void)
 {
-  if (G_LIKELY (default_clock != NULL))
-    return default_clock;
+  ClutterMainContext *context = _clutter_context_get_default ();
 
-  default_clock = g_object_new (CLUTTER_TYPE_MASTER_CLOCK, NULL);
+  if (G_UNLIKELY (context->master_clock == NULL))
+    context->master_clock = g_object_new (CLUTTER_TYPE_MASTER_CLOCK, NULL);
 
-  return default_clock;
+  return context->master_clock;
 }
 
 /*
index 8c8f602..30ea65f 100644 (file)
@@ -128,6 +128,9 @@ struct _ClutterMainContext
   /* the object holding all the stage instances */
   ClutterStageManager *stage_manager;
 
+  /* the clock driving all the frame operations */
+  ClutterMasterClock *master_clock;
+
   /* the main event queue */
   GQueue *events_queue;