1 /* GDK - The GIMP Drawing Kit
2 * Copyright (C) 2012 Red Hat, Inc.
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library. If not, see <http://www.gnu.org/licenses/>.
20 #include "gdkframeclockprivate.h"
22 G_DEFINE_BOXED_TYPE (GdkFrameTimings, gdk_frame_timings,
23 gdk_frame_timings_ref,
24 gdk_frame_timings_unref)
27 _gdk_frame_timings_new (gint64 frame_counter)
29 GdkFrameTimings *timings;
31 timings = g_slice_new0 (GdkFrameTimings);
32 timings->ref_count = 1;
33 timings->frame_counter = frame_counter;
39 gdk_frame_timings_ref (GdkFrameTimings *timings)
41 g_return_val_if_fail (timings != NULL, NULL);
49 gdk_frame_timings_unref (GdkFrameTimings *timings)
51 g_return_if_fail (timings != NULL);
52 g_return_if_fail (timings->ref_count > 0);
55 if (timings->ref_count == 0)
57 g_slice_free (GdkFrameTimings, timings);
62 gdk_frame_timings_get_frame_counter (GdkFrameTimings *timings)
64 return timings->frame_counter;
68 gdk_frame_timings_get_complete (GdkFrameTimings *timings)
70 g_return_val_if_fail (timings != NULL, FALSE);
72 return timings->complete;
76 gdk_frame_timings_get_frame_time (GdkFrameTimings *timings)
78 g_return_val_if_fail (timings != NULL, 0);
80 return timings->frame_time;
84 gdk_frame_timings_get_presentation_time (GdkFrameTimings *timings)
86 g_return_val_if_fail (timings != NULL, 0);
88 return timings->presentation_time;
92 gdk_frame_timings_get_predicted_presentation_time (GdkFrameTimings *timings)
94 g_return_val_if_fail (timings != NULL, 0);
96 return timings->predicted_presentation_time;
100 gdk_frame_timings_get_refresh_interval (GdkFrameTimings *timings)
102 g_return_val_if_fail (timings != NULL, 0);
104 return timings->refresh_interval;