> First of all- I can't call redraw() from Fl_GIF_Image-
> this method does not seem to be available for any of its
> parent classes,

This is certainly THE major problem.
The only way I see to trigger a redraw from a class not inherited from 
Fl_Widget is using Fl::redraw(). But this redraws all the widgets of the 
application...

>
> This suggests that a co py is made of the image (or at
> least the pointer to the frame that happens to be active
> when Fl_Help_View is first being rendered).
>
> One strange bit of behaviour is that if I set the timer
> to something really short, a different frame may show,
> suggesting that under the hood, the image is being
> animated, but a snapshot copy is made at some point.

The problem is within Fl_Pixmap class draw() method: The offscreen buffer is 
only written to once (with the first frame), then always just copied from that 
buffer. So setting data() pointer has no effect. It is easy to change though, 
then the animation works.

I think you will need to write your own draw() method for the Fl_GIF_Image 
class sooener or later, because you must also handle the possibly different x/y 
offsets of individual gif frames.

Cheers,
chris
_______________________________________________
fltk mailing list
[email protected]
http://lists.easysw.com/mailman/listinfo/fltk

Reply via email to