Complete.Org: Mailing Lists: Archives: freeciv-dev: January 2003:
[Freeciv-Dev] (PR#2943) New Flush code
Home

[Freeciv-Dev] (PR#2943) New Flush code

[Top] [All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
Cc: freeciv-dev@xxxxxxxxxxx
Subject: [Freeciv-Dev] (PR#2943) New Flush code
From: "Rafa³ Bursig via RT" <rt@xxxxxxxxxxxxxx>
Date: Thu, 30 Jan 2003 07:42:10 -0800
Reply-to: rt@xxxxxxxxxxxxxx

Hi

This is new client Flush code.

Basic trick is that all draw is made to buffer (and "save" position of
this draws ), then flush them all to screen in one call of flush function.

This code add 3 new function

/* "save" position of drawing */
void add_to_flush_store( int canvas_x , int canvas_y ,
                     int pixel_width , int pixel_height );

/* mark entire screen to flush */
void add_to_flush_store_all(void);

/* make final flush */
void flush_store(void);

flush_store is added to handle_processing_finished(void) function that
all net activity make auto flush of "stored" areas.

Problem is with internal client action becouse flush_store must be call
manualy after draw operation. This rather isn't big problem becouse we
must look on update_map_canvas_visible(void) and center_tile_mapcanvas(
int x , int y) calls and after it call flush_store funct.

Attached patch import this code to :
sdl tested support
gtk tested support
gtk2 not tested support
xaw, mui has partial support
beos, win32 no support

This code need some attention from client maintainers.

Rafal

Attachment: flush5.diff
Description: flush5.diff


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