diff options
author | Owen W. Taylor <otaylor@fishsoup.net> | 2013-02-12 15:03:21 -0500 |
---|---|---|
committer | Owen W. Taylor <otaylor@fishsoup.net> | 2013-02-14 17:19:52 -0500 |
commit | bb11195ec06e24a58a3f3d7b9b11381e588a7d64 (patch) | |
tree | b508eee89b9122ddd0316250efcdd099209f72a5 | |
parent | d5edf9c072cdcab3a3cbee2cdb36b122dd953f0c (diff) | |
download | gtk+-bb11195ec06e24a58a3f3d7b9b11381e588a7d64.tar.gz |
GdkFrameClock: Clean up the public API
* 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()
-rw-r--r-- | gdk/gdkframeclock.c | 87 | ||||
-rw-r--r-- | gdk/gdkframeclock.h | 13 | ||||
-rw-r--r-- | gdk/gdkframeclockidle.c | 15 | ||||
-rw-r--r-- | gdk/gdkframeclockprivate.h | 15 | ||||
-rw-r--r-- | gdk/gdkwindow.c | 4 | ||||
-rw-r--r-- | gdk/x11/gdkdisplay-x11.c | 6 | ||||
-rw-r--r-- | gdk/x11/gdkwindow-x11.c | 6 | ||||
-rw-r--r-- | tests/video-timer.c | 6 |
8 files changed, 27 insertions, 125 deletions
diff --git a/gdk/gdkframeclock.c b/gdk/gdkframeclock.c index b8ab15c7a0..4c5bd513a8 100644 --- a/gdk/gdkframeclock.c +++ b/gdk/gdkframeclock.c @@ -78,7 +78,6 @@ G_DEFINE_ABSTRACT_TYPE (GdkFrameClock, gdk_frame_clock, G_TYPE_OBJECT) enum { - FRAME_REQUESTED, FLUSH_EVENTS, BEFORE_PAINT, UPDATE, @@ -122,22 +121,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, diff --git a/gdk/gdkframeclock.h b/gdk/gdkframeclock.h index 3780615bfa..11845ac108 100644 --- a/gdk/gdkframeclock.h +++ b/gdk/gdkframeclock.h @@ -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__ */ diff --git a/gdk/gdkframeclockidle.c b/gdk/gdkframeclockidle.c index afb9430945..5974e269ea 100644 --- a/gdk/gdkframeclockidle.c +++ b/gdk/gdkframeclockidle.c @@ -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; diff --git a/gdk/gdkframeclockprivate.h b/gdk/gdkframeclockprivate.h index c924550d6c..262b32746b 100644 --- a/gdk/gdkframeclockprivate.h +++ b/gdk/gdkframeclockprivate.h @@ -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); diff --git a/gdk/gdkwindow.c b/gdk/gdkwindow.c index c626b2c6b5..410eb165f6 100644 --- a/gdk/gdkwindow.c +++ b/gdk/gdkwindow.c @@ -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); } diff --git a/gdk/x11/gdkdisplay-x11.c b/gdk/x11/gdkdisplay-x11.c index 90a2eca921..85b50a75cb 100644 --- a/gdk/x11/gdkdisplay-x11.c +++ b/gdk/x11/gdkdisplay-x11.c @@ -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, diff --git a/gdk/x11/gdkwindow-x11.c b/gdk/x11/gdkwindow-x11.c index edb8591710..4f30287b23 100644 --- a/gdk/x11/gdkwindow-x11.c +++ b/gdk/x11/gdkwindow-x11.c @@ -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; } } diff --git a/tests/video-timer.c b/tests/video-timer.c index 69ae562410..1ddc260267 100644 --- a/tests/video-timer.c +++ b/tests/video-timer.c @@ -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; |