On 25.08.2010, at 08:51, chris wrote: >> 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...
Maybe we need an own class (Fl_Animated_[GIF_]Image) that would store a pointer to the widget it is associated with or something like that. Or ... ? >> 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 that you should call [Fl_Pixmap:: ] uncache() to reset the cached image whenever you change the data pointer. Albrecht _______________________________________________ fltk mailing list [email protected] http://lists.easysw.com/mailman/listinfo/fltk

