]> Pileus Git - ~andy/gtk/commitdiff
GdkFrameClock: Clean up the public API
authorOwen W. Taylor <otaylor@fishsoup.net>
Tue, 12 Feb 2013 20:03:21 +0000 (15:03 -0500)
committerOwen W. Taylor <otaylor@fishsoup.net>
Thu, 14 Feb 2013 22:19:52 +0000 (17:19 -0500)
* remove gdk_frame_clock_get_frame_time_val(); a convenience
  function that would rarely be used.
* remove gdk_frame_clock_get_requested() and
  ::frame-requested signal; while we might want to eventually
   be able to track the requested phases for a clock, we don't
  have a current use case.
* Make gdk_frame_clock_freeze/thaw() private: they are only
  used within GTK+ and have complex semantics.
* Remove gdk_frame_clock_get_last_complete(). Another convenience
  function that I don't have a current use case for.
* Rename:
  gdk_frame_clock_get_start() => gdk_frame_clock_get_history_start()
  gdk_frame_clocK_get_current_frame_timings() => gdk_frame_clock_get_timings()

gdk/gdkframeclock.c
gdk/gdkframeclock.h
gdk/gdkframeclockidle.c
gdk/gdkframeclockprivate.h
gdk/gdkwindow.c
gdk/x11/gdkdisplay-x11.c
gdk/x11/gdkwindow-x11.c
tests/video-timer.c

index b8ab15c7a04fad14a02e21c66cdbc2e759527a37..4c5bd513a8b47b51e36554dc37f612e1272146eb 100644 (file)
@@ -78,7 +78,6 @@
 G_DEFINE_ABSTRACT_TYPE (GdkFrameClock, gdk_frame_clock, G_TYPE_OBJECT)
 
 enum {
-  FRAME_REQUESTED,
   FLUSH_EVENTS,
   BEFORE_PAINT,
   UPDATE,
@@ -121,22 +120,6 @@ gdk_frame_clock_class_init (GdkFrameClockClass *klass)
 
   gobject_class->finalize     = gdk_frame_clock_finalize;
 
-  /**
-   * GdkFrameClock::frame-requested:
-   * @clock: the frame clock emitting the signal
-   *
-   * This signal is emitted when a frame is not pending, and
-   * gdk_frame_clock_request_frame() is called to request a frame.
-   */
-  signals[FRAME_REQUESTED] =
-    g_signal_new (g_intern_static_string ("frame-requested"),
-                  GDK_TYPE_FRAME_CLOCK,
-                  G_SIGNAL_RUN_LAST,
-                  0,
-                  NULL, NULL,
-                  g_cclosure_marshal_VOID__VOID,
-                  G_TYPE_NONE, 0);
-
   /**
    * GdkFrameClock::flush-events:
    * @clock: the frame clock emitting the signal
@@ -319,7 +302,7 @@ gdk_frame_clock_request_phase (GdkFrameClock      *clock,
 
 
 void
-gdk_frame_clock_freeze (GdkFrameClock *clock)
+_gdk_frame_clock_freeze (GdkFrameClock *clock)
 {
   g_return_if_fail (GDK_IS_FRAME_CLOCK (clock));
 
@@ -328,55 +311,13 @@ gdk_frame_clock_freeze (GdkFrameClock *clock)
 
 
 void
-gdk_frame_clock_thaw (GdkFrameClock *clock)
+_gdk_frame_clock_thaw (GdkFrameClock *clock)
 {
   g_return_if_fail (GDK_IS_FRAME_CLOCK (clock));
 
   GDK_FRAME_CLOCK_GET_CLASS (clock)->thaw (clock);
 }
 
-/**
- * gdk_frame_clock_get_requested:
- * @clock: the clock
- *
- * Gets whether a frame paint has been requested but has not been
- * performed.
- *
- *
- * Since: 3.0
- * Return value: TRUE if a frame paint is pending
- */
-GdkFrameClockPhase
-gdk_frame_clock_get_requested (GdkFrameClock *clock)
-{
-  g_return_val_if_fail (GDK_IS_FRAME_CLOCK (clock), FALSE);
-
-  return GDK_FRAME_CLOCK_GET_CLASS (clock)->get_requested (clock);
-}
-
-/**
- * gdk_frame_clock_get_frame_time_val:
- * @clock: the clock
- * @timeval: #GTimeVal to fill in with frame time
- *
- * Like gdk_frame_clock_get_frame_time() but returns the time as a
- * #GTimeVal which may be handy with some APIs (such as
- * #GdkPixbufAnimation).
- */
-void
-gdk_frame_clock_get_frame_time_val (GdkFrameClock *clock,
-                                    GTimeVal      *timeval)
-{
-  guint64 time_ms;
-
-  g_return_if_fail (GDK_IS_FRAME_CLOCK (clock));
-
-  time_ms = gdk_frame_clock_get_frame_time (clock);
-
-  timeval->tv_sec = time_ms / 1000;
-  timeval->tv_usec = (time_ms % 1000) * 1000;
-}
-
 gint64
 gdk_frame_clock_get_frame_counter (GdkFrameClock *clock)
 {
@@ -390,7 +331,7 @@ gdk_frame_clock_get_frame_counter (GdkFrameClock *clock)
 }
 
 gint64
-gdk_frame_clock_get_start (GdkFrameClock *clock)
+gdk_frame_clock_get_history_start (GdkFrameClock *clock)
 {
   GdkFrameClockPrivate *priv;
 
@@ -446,7 +387,7 @@ gdk_frame_clock_get_timings (GdkFrameClock *clock,
 }
 
 GdkFrameTimings *
-gdk_frame_clock_get_current_frame_timings (GdkFrameClock *clock)
+gdk_frame_clock_get_frame_timings (GdkFrameClock *clock)
 {
   GdkFrameClockPrivate *priv;
 
@@ -458,26 +399,6 @@ gdk_frame_clock_get_current_frame_timings (GdkFrameClock *clock)
 }
 
 
-GdkFrameTimings *
-gdk_frame_clock_get_last_complete (GdkFrameClock *clock)
-{
-  GdkFrameClockPrivate *priv;
-  gint i;
-
-  g_return_val_if_fail (GDK_IS_FRAME_CLOCK (clock), NULL);
-
-  priv = clock->priv;
-
-  for (i = 0; i < priv->n_timings; i++)
-    {
-      gint pos = ((priv->current - i) + FRAME_HISTORY_MAX_LENGTH) % FRAME_HISTORY_MAX_LENGTH;
-      if (priv->timings[pos]->complete)
-        return priv->timings[pos];
-    }
-
-  return NULL;
-}
-
 #ifdef G_ENABLE_DEBUG
 void
 _gdk_frame_clock_debug_print_timings (GdkFrameClock   *clock,
index 3780615bfa498487b993654bfe037a7694c449a2..11845ac108acd2cf58feb1f36afbd7b8ad232887 100644 (file)
@@ -63,29 +63,20 @@ guint64  gdk_frame_clock_get_frame_time            (GdkFrameClock *clock);
 
 void               gdk_frame_clock_request_phase (GdkFrameClock      *clock,
                                                   GdkFrameClockPhase  phase);
-GdkFrameClockPhase gdk_frame_clock_get_requested (GdkFrameClock      *clock);
-
-void     gdk_frame_clock_freeze              (GdkFrameClock *clock);
-void     gdk_frame_clock_thaw                (GdkFrameClock *clock);
 
 /* Frame history */
 gint64           gdk_frame_clock_get_frame_counter (GdkFrameClock *clock);
-gint64           gdk_frame_clock_get_start         (GdkFrameClock *clock);
+gint64           gdk_frame_clock_get_history_start (GdkFrameClock *clock);
 GdkFrameTimings *gdk_frame_clock_get_timings       (GdkFrameClock *clock,
                                                     gint64         frame_counter);
-GdkFrameTimings *gdk_frame_clock_get_last_complete (GdkFrameClock *clock);
 
-/* Convenience API */
-void  gdk_frame_clock_get_frame_time_val (GdkFrameClock  *clock,
-                                          GTimeVal       *timeval);
+GdkFrameTimings *gdk_frame_clock_get_current_timings (GdkFrameClock *clock);
 
 void gdk_frame_clock_get_refresh_info (GdkFrameClock *clock,
                                        gint64         base_time,
                                        gint64        *refresh_interval_return,
                                        gint64        *presentation_time_return);
 
-GdkFrameTimings *gdk_frame_clock_get_current_frame_timings (GdkFrameClock *clock);
-
 G_END_DECLS
 
 #endif /* __GDK_FRAME_CLOCK_H__ */
index afb9430945fb1a5276e2dfbe2a884ce6e3a92864..5974e269ea2c7bbc9854cf26897ad73614b59e50 100644 (file)
@@ -220,8 +220,6 @@ maybe_start_idle (GdkFrameClockIdle *clock_idle)
                                                               gdk_frame_clock_paint_idle,
                                                               g_object_ref (clock_idle),
                                                               (GDestroyNotify) g_object_unref);
-
-          g_signal_emit_by_name (clock_idle, "frame-requested");
         }
     }
 }
@@ -286,7 +284,7 @@ gdk_frame_clock_paint_idle (void *data)
 
   if (priv->phase > GDK_FRAME_CLOCK_PHASE_BEFORE_PAINT)
     {
-      timings = gdk_frame_clock_get_current_frame_timings (clock);
+      timings = gdk_frame_clock_get_current_timings (clock);
     }
 
   if (!skip_to_resume_events)
@@ -302,7 +300,7 @@ gdk_frame_clock_paint_idle (void *data)
               priv->frame_time = compute_frame_time (clock_idle);
 
               _gdk_frame_clock_begin_frame (clock);
-              timings = gdk_frame_clock_get_current_frame_timings (clock);
+              timings = gdk_frame_clock_get_current_timings (clock);
 
               timings->frame_time = priv->frame_time;
               timings->slept_before = priv->sleep_serial != get_sleep_serial ();
@@ -430,14 +428,6 @@ gdk_frame_clock_idle_request_phase (GdkFrameClock      *clock,
   maybe_start_idle (clock_idle);
 }
 
-static GdkFrameClockPhase
-gdk_frame_clock_idle_get_requested (GdkFrameClock *clock)
-{
-  GdkFrameClockIdlePrivate *priv = GDK_FRAME_CLOCK_IDLE (clock)->priv;
-
-  return priv->requested;
-}
-
 static void
 gdk_frame_clock_idle_freeze (GdkFrameClock *clock)
 {
@@ -492,7 +482,6 @@ gdk_frame_clock_idle_class_init (GdkFrameClockIdleClass *klass)
 
   frame_clock_class->get_frame_time = gdk_frame_clock_idle_get_frame_time;
   frame_clock_class->request_phase = gdk_frame_clock_idle_request_phase;
-  frame_clock_class->get_requested = gdk_frame_clock_idle_get_requested;
   frame_clock_class->freeze = gdk_frame_clock_idle_freeze;
   frame_clock_class->thaw = gdk_frame_clock_idle_thaw;
 
index c924550d6c7691df7da47f8a2bf6412662d03d2e..262b32746b18dcffb5e1ccd590016a676a2c30cb 100644 (file)
@@ -47,17 +47,15 @@ struct _GdkFrameClockClass
 {
   GObjectClass parent_class;
 
-  guint64  (* get_frame_time)            (GdkFrameClock *clock);
+  guint64  (* get_frame_time) (GdkFrameClock *clock);
 
-  void               (* request_phase) (GdkFrameClock      *clock,
-                                        GdkFrameClockPhase  phase);
-  GdkFrameClockPhase (* get_requested) (GdkFrameClock      *clock);
+  void     (* request_phase)  (GdkFrameClock      *clock,
+                               GdkFrameClockPhase  phase);
 
-  void     (* freeze) (GdkFrameClock *clock);
-  void     (* thaw)   (GdkFrameClock *clock);
+  void     (* freeze)         (GdkFrameClock *clock);
+  void     (* thaw)           (GdkFrameClock *clock);
 
   /* signals */
-  /* void (* frame_requested)    (GdkFrameClock *clock); */
   /* void (* flush_events)       (GdkFrameClock *clock); */
   /* void (* before_paint)       (GdkFrameClock *clock); */
   /* void (* update)             (GdkFrameClock *clock); */
@@ -89,6 +87,9 @@ struct _GdkFrameTimings
   guint slept_before : 1;
 };
 
+void _gdk_frame_clock_freeze (GdkFrameClock *clock);
+void _gdk_frame_clock_thaw   (GdkFrameClock *clock);
+
 void _gdk_frame_clock_begin_frame         (GdkFrameClock   *clock);
 void _gdk_frame_clock_debug_print_timings (GdkFrameClock   *clock,
                                            GdkFrameTimings *timings);
index c626b2c6b56fa97f7fb99f44345b140a4714d0c0..410eb165f6379277bbf40911f4993022b34c4d48 100644 (file)
@@ -4903,7 +4903,7 @@ gdk_window_freeze_toplevel_updates_libgtk_only (GdkWindow *window)
   g_return_if_fail (window->window_type != GDK_WINDOW_CHILD);
 
   window->update_and_descendants_freeze_count++;
-  gdk_frame_clock_freeze (gdk_window_get_frame_clock (window));
+  _gdk_frame_clock_freeze (gdk_window_get_frame_clock (window));
 }
 
 /**
@@ -4924,7 +4924,7 @@ gdk_window_thaw_toplevel_updates_libgtk_only (GdkWindow *window)
   g_return_if_fail (window->update_and_descendants_freeze_count > 0);
 
   window->update_and_descendants_freeze_count--;
-  gdk_frame_clock_thaw (gdk_window_get_frame_clock (window));
+  _gdk_frame_clock_thaw (gdk_window_get_frame_clock (window));
 
   gdk_window_schedule_update (window);
 }
index 90a2eca921569ba7305c8d6879a8b2f552c15d6e..85b50a75cbd3e089dc3c0eb8c1b9c0a6d1e8b1b8 100644 (file)
@@ -686,7 +686,7 @@ gdk_x11_display_translate_event (GdkEventTranslator *translator,
               window_impl->toplevel->frame_pending)
             {
               window_impl->toplevel->frame_pending = FALSE;
-              gdk_frame_clock_thaw (gdk_window_get_frame_clock (event->any.window));
+              _gdk_frame_clock_thaw (gdk_window_get_frame_clock (event->any.window));
             }
 
          if (toplevel)
@@ -1064,7 +1064,7 @@ find_frame_timings (GdkFrameClock *clock,
 {
   gint64 start_frame, end_frame, i;
 
-  start_frame = gdk_frame_clock_get_start (clock);
+  start_frame = gdk_frame_clock_get_history_start (clock);
   end_frame = gdk_frame_clock_get_frame_counter (clock);
   for (i = end_frame; i >= start_frame; i--)
     {
@@ -1121,7 +1121,7 @@ _gdk_wm_protocols_filter (GdkXEvent *xev,
           if (window_impl->toplevel->frame_pending)
             {
               window_impl->toplevel->frame_pending = FALSE;
-              gdk_frame_clock_thaw (clock);
+              _gdk_frame_clock_thaw (clock);
             }
 
           gdk_frame_clock_get_refresh_info (clock,
index edb8591710eb453aa303fdeaf7f8a89c6ae94a11..4f30287b239d645ba022f9f2ed47061cd544c2b1 100644 (file)
@@ -291,7 +291,7 @@ gdk_x11_window_predict_presentation_time (GdkWindow *window)
 
   clock = gdk_window_get_frame_clock (window);
 
-  timings = gdk_frame_clock_get_current_frame_timings (clock);
+  timings = gdk_frame_clock_get_current_timings (clock);
 
   gdk_frame_clock_get_refresh_info (clock,
                                     timings->frame_time,
@@ -372,7 +372,7 @@ gdk_x11_window_end_frame (GdkWindow *window)
     return;
 
   clock = gdk_window_get_frame_clock (window);
-  timings = gdk_frame_clock_get_current_frame_timings (clock);
+  timings = gdk_frame_clock_get_current_timings (clock);
 
   impl->toplevel->in_frame = FALSE;
 
@@ -407,7 +407,7 @@ gdk_x11_window_end_frame (GdkWindow *window)
                                               gdk_atom_intern_static_string ("_NET_WM_FRAME_DRAWN")))
         {
           impl->toplevel->frame_pending = TRUE;
-          gdk_frame_clock_freeze (gdk_window_get_frame_clock (window));
+          _gdk_frame_clock_freeze (gdk_window_get_frame_clock (window));
           timings->cookie = impl->toplevel->current_counter_value;
         }
     }
index 69ae56241077573d6c1767446d584f146243fd85..1ddc260267c7ef4c2d9c0c7c38ccbef495dddf9a 100644 (file)
@@ -221,7 +221,7 @@ on_window_draw (GtkWidget *widget,
       if (displayed_frame->frame_counter == 0)
         {
           GdkFrameClock *frame_clock = gtk_widget_get_frame_clock (window);
-          displayed_frame->frame_counter = gdk_frame_clock_get_frame_counter (clock);
+          displayed_frame->frame_counter = gdk_frame_clock_get_frame_counter (frame_clock);
         }
     }
 }
@@ -238,7 +238,7 @@ collect_old_frames (void)
       gboolean remove = FALSE;
       l_next = l->next;
 
-      GdkFrameTimings *timings = gdk_frame_clock_get_timings (clock,
+      GdkFrameTimings *timings = gdk_frame_clock_get_timings (frame_clock,
                                                               frame_data->frame_counter);
       if (timings == NULL)
         {
@@ -303,7 +303,7 @@ static void
 on_update (GdkFrameClock *frame_clock,
            gpointer       data)
 {
-  GdkFrameTimings *timings = gdk_frame_clock_get_current_frame_timings (frame_clock);
+  GdkFrameTimings *timings = gdk_frame_clock_get_current_timings (frame_clock);
   gint64 frame_time = gdk_frame_timings_get_frame_time (timings);
   gint64 predicted_presentation_time = gdk_frame_timings_get_predicted_presentation_time (timings);
   gint64 refresh_interval;