[Freeciv-Dev] Re: (PR#3424) New flush code
[Top] [All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
On Tue, Feb 25, 2003 at 11:51:58AM -0800, Jason Short wrote:
> >>>What does this list tell me? You said above that there are two times
> >>>when flush is called: after the network (easy to implement) and during
> >>>animation (we have animation for unit combat, unit movement and
> >>>mushroom). So what is the reason for this list?
> >>
> >>No, the two times are:
> >>
> >>- Before we hand control back to the GUI main event loop.
> >>- Before any animation.
> >>
> >>After the network code is only one case of #1. For instance, when the
> >>user clicks a mouse to recenter the mapview, we call
> >>center_tile_mapcanvas and then we have to flush_dirty (except in gtk2).
> >> There are about 6 different cases where this type of thing is done
> >>from the GUI code.
> >>
> >>So, the long and complicated list traces the callers of
> >>dirty_rect/dirty_all back toward the GUI main event loop. At some point
> >>in between the two, there needs to be a call to flush_dirty. You can
> >>verify that this is always the case.
> >
> >
> > This sounds cumbersome and error-prone. Can't we put a call to
> > gui_callback_finished in these callbacks which are called by the GUI?
>
> It probably will be cumbersome and error-prone, unfortunately.
>
> I don't quite understand your suggestion.
> You want every GUI callback to call gui_callback_finished when it's
> done?
Yes.
> Then we could get rid of
> most of the other calls...but that seems even more cumbersome and only
> slightly less error-prone.
>
> Another idea was to pass a write_to_screen value to common functions
> which are called by the GUI (and which don't already flush). Right now
> the only such function (IIRC) is center_tile_mapcanvas.
I think you brought this up and I now think it is a good idea: calling
gui_callback_finished after each event. For this we have to break up
the main loop. This is possible for:
- xaw: http://www.xfree86.org/4.2.0/XtAppNextEvent.3.html
- gtk:
http://developer.gnome.org/doc/API/gtk/gtk-general.html#GTK-MAIN-ITERATION
- gtk2:
http://developer.gnome.org/doc/API/2.0/gtk/gtk-General.html#gtk-main-iteration
sdl, win32 and mui already have to loop broken up in the current
source code.
Raimar
--
email: rf13@xxxxxxxxxxxxxxxxx
1 + 1 = 3, for large values of 1
- [Freeciv-Dev] (PR#3424) New flush code, Jason Short, 2003/02/24
- Message not available
- Message not available
- [Freeciv-Dev] Re: (PR#3424) New flush code, Raimar Falke, 2003/02/25
- Message not available
- Message not available
- [Freeciv-Dev] Re: (PR#3424) New flush code, Raimar Falke, 2003/02/25
- Message not available
- [Freeciv-Dev] Re: (PR#3424) New flush code, Jason Short, 2003/02/25
- Message not available
- [Freeciv-Dev] Re: (PR#3424) New flush code,
Raimar Falke <=
- Message not available
- [Freeciv-Dev] Re: (PR#3424) New flush code, Jason Short, 2003/02/26
- Message not available
- [Freeciv-Dev] Re: (PR#3424) New flush code, Raimar Falke, 2003/02/26
- Message not available
- [Freeciv-Dev] Re: (PR#3424) New flush code, Jason Short, 2003/02/26
- [Freeciv-Dev] Re: (PR#3424) New flush code, Raimar Falke, 2003/02/26
- [Freeciv-Dev] Re: (PR#3424) New flush code, Jason Short, 2003/02/27
- [Freeciv-Dev] Re: (PR#3424) New flush code, Raimar Falke, 2003/02/27
- [Freeciv-Dev] Re: (PR#3424) New flush code, Jason Short, 2003/02/27
- [Freeciv-Dev] Re: (PR#3424) New flush code, Rafał Bursig, 2003/02/27
- [Freeciv-Dev] Re: (PR#3424) New flush code, Jason Short, 2003/02/27
- [Freeciv-Dev] Re: (PR#3424) New flush code, Raimar Falke, 2003/02/28
|
|