start.time would normally come from g, and
marks the beginning of animation playback. After creating an
iterator, you should immediately display the pixbuf returned by
gdkPixbufAnimationIterGetPixbuf. Then, you should install a
timeout (with gTimeoutAdd) or by some other mechanism ensure
that you'll update the image after
gdkPixbufAnimationIterGetDelayTime 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 will be used automatically.
To update the image (i.e. possibly change the result of
gdkPixbufAnimationIterGetPixbuf to a new frame of the animation),
call gdkPixbufAnimationIterAdvance.
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
gdkPixbufAnimationIterOnCurrentlyLoadingFrame 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."[GdkPixbufAnimationIter] an iterator to move over the animation
[object Object]
internal