Utilities

Utilities — Misc utility functions.

Synopsis




int                 clutter_util_next_p2                (int a);
ClutterTimeoutPool* clutter_timeout_pool_new            (gint priority);
guint               clutter_timeout_pool_add            (ClutterTimeoutPool *pool,
                                                         guint interval,
                                                         GSourceFunc func,
                                                         gpointer data,
                                                         GDestroyNotify notify);
void                clutter_timeout_pool_remove         (ClutterTimeoutPool *pool,
                                                         guint id);

Description

Various misc utilility functions.

Details

clutter_util_next_p2 ()

int                 clutter_util_next_p2                (int a);

Calculates the next power greater than a.

a : Value to get the next power
Returns : The next power after a.

clutter_timeout_pool_new ()

ClutterTimeoutPool* clutter_timeout_pool_new            (gint priority);

Creates a new timeout pool source. A timeout pool should be used when multiple timeout functions, running at the same priority, are needed and the g_timeout_add() API might lead to starvation of the time slice of the main loop. A timeout pool allocates a single time slice of the main loop and runs every timeout function inside it. The timeout pool is always sorted, so that the extraction of the next timeout function is a constant time operation.

Inside Clutter, every ClutterTimeline share the same timeout pool, unless the CLUTTER_TIMELINE=no-pool environment variable is set.

priority : the priority of the timeout pool. Typically this will be G_PRIORITY_DEFAULT
Returns : the newly created ClutterTimeoutPool

Since 0.4


clutter_timeout_pool_add ()

guint               clutter_timeout_pool_add            (ClutterTimeoutPool *pool,
                                                         guint interval,
                                                         GSourceFunc func,
                                                         gpointer data,
                                                         GDestroyNotify notify);

Sets a function to be called at regular intervals, and puts it inside the pool. The function is repeatedly called until it returns FALSE, at which point the timeout is automatically destroyed and the function won't be called again. If notify is not NULL, the notify function will be called. The first call to func will be at the end of interval.

Note that timeout functions may be delayed, due to the processing of other event sources. Thus they should not be relied on for precise timing. After each call to the timeout function, the time of the next timeout is recalculated based on the current time and the given interval (it does not try to 'catch up' time lost in delays).

pool : a ClutterTimeoutPool
interval : the time between calls to the function, in milliseconds
func : function to call
data : data to pass to the function, or NULL
notify : function to call when the timeout is removed, or NULL
Returns : the ID (greater than 0) of the timeout inside the pool. Use clutter_timeout_pool_remove() to stop the timeout.

Since 0.4


clutter_timeout_pool_remove ()

void                clutter_timeout_pool_remove         (ClutterTimeoutPool *pool,
                                                         guint id);

Removes a timeout function with id from the timeout pool. The id is the same returned when adding a function to the timeout pool with clutter_timeout_pool_add().

pool : a ClutterTimeoutPool
id : the id of the timeout to remove

Since 0.4