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

Reply via email to