Complete.Org: Mailing Lists: Archives: freeciv-dev: March 1999:
Re: [Freeciv-Dev] Patch: Displaying the map as a grid
Home

Re: [Freeciv-Dev] Patch: Displaying the map as a grid

[Top] [All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
To: Rizos Sakellariou <rizos@xxxxxxxxxxx>
Cc: freeciv-dev@xxxxxxxxxxx
Subject: Re: [Freeciv-Dev] Patch: Displaying the map as a grid
From: Trent Piepho <xyzzy@xxxxxxxxxxxxxxxx>
Date: Tue, 9 Mar 1999 23:53:18 -0800 (PST)

On Tue, 9 Mar 1999, Rizos Sakellariou wrote:
>    for(y=tile_y; y<tile_y+height; y++)
> -    for(x=tile_x; x<tile_x+width; x++)
> +    for(x=tile_x; x<tile_x+width; x++) {
>        pixmap_put_tile(map_canvas_store, x, y, 
>                       (map_view_x0+x)%map.xsize, map_view_y0+y, 0);
> +      if (map_draw_grid) {
> +         XSetForeground(display, fill_bg_gc, 
> colors_standard[COLOR_STD_BLACK]);
> +         XDrawRectangle(display, map_canvas_store, fill_bg_gc, 
> +                        x*NORMAL_TILE_WIDTH, y*NORMAL_TILE_HEIGHT, 
> +                        NORMAL_TILE_WIDTH, NORMAL_TILE_HEIGHT);
> +      }
> +  }

This is a terribly inefficient way of drawing the grid.  Changing GC
attributes is an expensive X operation.  You should just set the GC once
before drawing, and then not change it.  It would also be more efficient to
just draw x + y lines instead of x*y rectangles (= 4*x*y lines).


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