Method

GdkPixbufPixbufAnimationget_iter

Declaration [src]

GdkPixbufAnimationIter*
gdk_pixbuf_animation_get_iter (
  GdkPixbufAnimation* animation,
  const GTimeVal* start_time
)

Description [src]

Get an iterator for displaying an animation.

The iterator provides the frames that should be displayed at a given time.

start_time would normally come from g_get_current_time(), and marks the beginning of animation playback. After creating an iterator, you should immediately display the pixbuf returned by gdk_pixbuf_animation_iter_get_pixbuf(). Then, you should install a timeout (with g_timeout_add()) or by some other mechanism ensure that you’ll update the image after gdk_pixbuf_animation_iter_get_delay_time() milliseconds. Each time the image is updated, you should reinstall the timeout with the new, possibly-changed delay time.

As a shortcut, if start_time is NULL, the result of g_get_current_time() will be used automatically.

To update the image (i.e. possibly change the result of gdk_pixbuf_animation_iter_get_pixbuf() to a new frame of the animation), call gdk_pixbuf_animation_iter_advance().

If you’re using GdkPixbufLoader, in addition to updating the image after the delay time, you should also update it whenever you receive the area_updated signal and gdk_pixbuf_animation_iter_on_currently_loading_frame() returns TRUE. In this case, the frame currently being fed into the loader has received new data, so needs to be refreshed. The delay time for a frame may also be modified after an area_updated signal, for example if the delay time for a frame is encoded in the data after the frame itself. So your timeout should be reinstalled after any area_updated signal.

A delay time of -1 is possible, indicating “infinite”.

Parameters

start_time

Type: GTimeVal

Time when the animation starts playing.

The argument can be NULL.
The data is owned by the caller of the method.

Return value

Type: GdkPixbufAnimationIter

An iterator to move over the animation.

The caller of the method takes ownership of the returned data, and is responsible for freeing it.