[ Version ( since = "1.10" ) ]
public uint add_repaint_func_full (RepaintFlags flags, owned SourceFunc func)

Adds a function to be called whenever Clutter is processing a new frame.

If the function returns false it is automatically removed from the list of repaint functions and will not be called again.

This function is guaranteed to be called from within the same thread that called main , and while the Clutter lock is being held; the function will be called within the main loop, so it is imperative that it does not block, otherwise the frame time budget may be lost.

A repaint function is useful to ensure that an update of the scenegraph is performed before the scenegraph is repainted; for instance, uploading a frame from a video into a Texture. The flags passed to this function will determine the section of the frame processing that will result in func being called.

Adding a repaint function does not automatically ensure that a new frame will be queued.

When the repaint function is removed (either because it returned false or because remove_repaint_func has been called) the notify function will be called, if any is set.



flags for the repaint function


the function to be called within the paint cycle


data to be passed to the function, or null


function to be called when removing the repaint function, or null


the ID (greater than 0) of the repaint function. You can use the returned integer to remove the repaint function by calling remove_repaint_func.

Namespace: Clutter.Threads
Package: clutter-1.0