[Top][All Lists]

[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: Sun, 5 Nov 2006 22:28:31 +0100

On Sun, Nov 05, 2006 at 06:41:17PM +0100, Udo Giacomozzi wrote:
> Hello Martin,
> Sunday, November 5, 2006, 12:23:17 PM, you wrote:
> MG> Yes. That way, when the user can pause the film, the window won't stop
> MG> updating itself.
> Again, the inter-frame timer is individually implemented in the GUI
> itself meaning that they have to trigger redraw. I'd simply add a
> argument "redraw" to Gui::display(). Basically the same as
> want_redraw() but in a more direct way.

We already have "display" for that, we just need to ask for
the invalidated_bounds to the Gui itself rather then to the movie_interface.

>From Gui::display:

        // Find out the surrounding frame of all characters which
        // have been updated.
        m->get_invalidated_bounds(&changed_bounds, false);

If we ask the Gui for the regionRequiringUpdate instead , it might
call get_invalidated_bounds (which could become a Gui non-virtual
method to hide the movie_interface stuff) and include any other
region that needs update due to expose event.

In case of a minimized window, the Gui implementation might completely
skip the get_invalidated_bounds() call and return a NULL rectangle..

Doesn't really sound a s huge restructureing (not to be done in 0.7.2


> MG> There is a related problem: that gnash keeps rendering its display
> MG> window even when minimised or hidden ("burning a hole in the screen"),
> MG> and one way to solve that would be for the rendering to be triggered
> MG> by resize/expose events from the gui and 'invalidate area' events from
> MG> the flash player (every time something moves in an exposed area). -
> MG> this should bring a performance boost, as well as opening the door to
> MG> automatically dropping frames on slow hardware without affecting the
> MG> playing speed of the flash movie.
> MG> But that seems rather a large restructuring for the moment.
> No, it's rather simple. The invalidated bounds can be altered by the
> individual GUI. It can extend or shrink the bounds as it likes. When
> the GUI knows about what parts of the window are exposed it can limit
> the invalidated bounds to this area. This is already possible.
> In the case of a minimized player you can limit the invalidated bounds
> to just one pixel or you avoid calling gui->display() which means you
> have to advance_movie() manually.
> Udo
> _______________________________________________
> Gnash-dev mailing list
> address@hidden


 /"\    ASCII Ribbon Campaign
 \ /    Respect for low technology.
  X     Keep e-mail messages readable by any computer system.
 / \    Keep it ASCII. 

reply via email to

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