gnash-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Gnash-dev] gui wants redraw


From: strk
Subject: Re: [Gnash-dev] gui wants redraw
Date: Mon, 6 Nov 2006 23:13:48 +0100

On Mon, Nov 06, 2006 at 10:25:48PM +0100, Udo Giacomozzi wrote:
> Hello strk,
> 
> Monday, November 6, 2006, 10:05:48 PM, you wrote:
> >> s> You mean avoid Gui::advance_movie() directly calling Gui::display() ?
> >> 
> >> Yep.
> 
> s> mm.. why ?
> 
> I thought I had explained this deeply ;)

Probably, but I'm really buried into segfaults, sorry :)

> That solution would allow that the GUI (GTK for example) redraws the
> movie without advancing (already possible) or advance without drawing
> at all, for example when minimized. Just a minimal change that solves
> that problem and frankly, I wouldn't expect a function named
> "advance_movie" to do any drawing..

mmm.. let's try to summarize.

We need 3 distinct functionalities here:

        1) Advance the movie playhead.
           Includes runnign actions, we want to always do this
           at *regular* intervals - SWF specified FPS.

        2) Render the stage to a buffer.
           We want to do when something changes on the Stage due
           to system [ie. enterFrame] or user [ie. mouseOver] events.

        3) Draw (possibly portions of) the buffer onscreen.
           We want to do when the (exposed) on-screen copy does not
           match the (corresponding region of) off-screen buffer,
           either due to changes in the off-screen buffer (see [2])
           or to data loss (the portion of window was just exposed).

What would be better done by which actor ?

Avoiding calling Gui::display from Gui::advance_movie would make
the Gui::advance_movie cover funcionality number 1 in the above
list, which sounds correct. Granted :)

As for Gui::display, it currently covers both (2) and (3), so
we should split it as well.

Pure functionality (2) seems to be covered by Gui::renderBuffer
(currently called by Gui::display)

--strk;






reply via email to

[Prev in Thread] Current Thread [Next in Thread]