summaryrefslogtreecommitdiff
path: root/gdk/gdkinternals.h
diff options
context:
space:
mode:
authorOwen W. Taylor <otaylor@fishsoup.net>2012-11-14 19:21:33 -0500
committerOwen W. Taylor <otaylor@fishsoup.net>2013-02-14 17:19:51 -0500
commit8855bf052d8bbbd8fdfce1cd5f4a3540661a9c8e (patch)
treea20e834ec52411ff83638d942cc4788a7fa2fb75 /gdk/gdkinternals.h
parent9690567d5059e5667803e5b8fb438c3b97e9d7e7 (diff)
downloadgtk+-8855bf052d8bbbd8fdfce1cd5f4a3540661a9c8e.tar.gz
Add GDK_DEBUG=frames
Add a debug option to print out detailed statistics about each frame drawn. https://bugzilla.gnome.org/show_bug.cgi?id=685460
Diffstat (limited to 'gdk/gdkinternals.h')
-rw-r--r--gdk/gdkinternals.h23
1 files changed, 22 insertions, 1 deletions
diff --git a/gdk/gdkinternals.h b/gdk/gdkinternals.h
index babef6e7f6..4239188426 100644
--- a/gdk/gdkinternals.h
+++ b/gdk/gdkinternals.h
@@ -82,7 +82,8 @@ typedef enum {
GDK_DEBUG_MULTIHEAD = 1 << 7,
GDK_DEBUG_XINERAMA = 1 << 8,
GDK_DEBUG_DRAW = 1 << 9,
- GDK_DEBUG_EVENTLOOP = 1 << 10
+ GDK_DEBUG_EVENTLOOP = 1 << 10,
+ GDK_DEBUG_FRAMES = 1 << 11
} GdkDebugFlag;
typedef enum {
@@ -428,6 +429,26 @@ cairo_surface_t * _gdk_offscreen_window_create_surface (GdkWindow *window,
gint width,
gint height);
+/********************************
+ * Debug-only frame statistics *
+ ********************************/
+
+#ifdef G_ENABLE_DEBUG
+
+gint64 _gdk_frame_timings_get_layout_start_time (GdkFrameTimings *timings);
+void _gdk_frame_timings_set_layout_start_time (GdkFrameTimings *timings,
+ gint64 layout_start_time);
+gint64 _gdk_frame_timings_get_paint_start_time (GdkFrameTimings *timings);
+void _gdk_frame_timings_set_paint_start_time (GdkFrameTimings *timings,
+ gint64 paint_time);
+gint64 _gdk_frame_timings_get_frame_end_time (GdkFrameTimings *timings);
+void _gdk_frame_timings_set_frame_end_time (GdkFrameTimings *timings,
+ gint64 frame_end_time);
+
+void _gdk_frame_history_debug_print (GdkFrameHistory *history,
+ GdkFrameTimings *timings);
+
+#endif /* G_ENABLE_DEBUG */
G_END_DECLS