Release Clutter 1.11.4 (snapshot)
[profile/ivi/clutter.git] / clutter / clutter-master-clock.h
1 /*
2  * Clutter.
3  *
4  * An OpenGL based 'interactive canvas' library.
5  *
6  * Authored By: Emmanuele Bassi <ebassi@linux.intel.com>
7  *
8  * Copyright (C) 2009  Intel Corporation.
9  *
10  * This library is free software; you can redistribute it and/or
11  * modify it under the terms of the GNU Lesser General Public
12  * License as published by the Free Software Foundation; either
13  * version 2 of the License, or (at your option) any later version.
14  *
15  * This library is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
18  * Lesser General Public License for more details.
19  *
20  * You should have received a copy of the GNU Lesser General Public
21  * License along with this library. If not, see <http://www.gnu.org/licenses/>.
22  */
23
24 #ifndef __CLUTTER_MASTER_CLOCK_H__
25 #define __CLUTTER_MASTER_CLOCK_H__
26
27 #include <clutter/clutter-timeline.h>
28
29 G_BEGIN_DECLS
30
31 #define CLUTTER_TYPE_MASTER_CLOCK       (_clutter_master_clock_get_type ())
32 #define CLUTTER_MASTER_CLOCK(obj)       (G_TYPE_CHECK_INSTANCE_CAST ((obj), CLUTTER_TYPE_MASTER_CLOCK, ClutterMasterClock))
33 #define CLUTTER_IS_MASTER_CLOCK(obj)    (G_TYPE_CHECK_INSTANCE_TYPE ((obj), CLUTTER_TYPE_MASTER_CLOCK))
34
35 typedef struct _ClutterMasterClock      ClutterMasterClock;
36
37 GType _clutter_master_clock_get_type (void) G_GNUC_CONST;
38
39 ClutterMasterClock *    _clutter_master_clock_get_default               (void);
40 void                    _clutter_master_clock_add_timeline              (ClutterMasterClock *master_clock,
41                                                                          ClutterTimeline    *timeline);
42 void                    _clutter_master_clock_remove_timeline           (ClutterMasterClock *master_clock,
43                                                                          ClutterTimeline    *timeline);
44 void                    _clutter_master_clock_start_running             (ClutterMasterClock *master_clock);
45 void                    _clutter_master_clock_ensure_next_iteration     (ClutterMasterClock *master_clock);
46
47 void                    _clutter_timeline_advance                       (ClutterTimeline    *timeline,
48                                                                          gint64              tick_time);
49 gint64                  _clutter_timeline_get_delta                     (ClutterTimeline    *timeline);
50 void                    _clutter_timeline_do_tick                       (ClutterTimeline    *timeline,
51                                                                          gint64              tick_time);
52
53 G_END_DECLS
54
55 #endif /* __CLUTTER_MASTER_CLOCK_H__ */