[Freeciv-Dev] RFC: Unifying mapview parameters
[Top] [All Lists]
 
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
 
Each different GUI has its own parameters for the mapview, but they are 
almost identical.
GTK:
  map_view_x0, map_view_y0 => window origin (in mapview.h)
  map_canvas_store_twidth, map_canvas_store_theight =>
    window width and height in tiles (in gui_main.h)
  mapview window pixel dimensions are determined on-demand
XAW:
  (same as GTK)
WIN32:
  map_view_x, map_view_y => window origin
  map_win_width, map_win_height: window pixel dimensions
  mapview window tile dimensions are determined on-demand (I think)
MUI:
  map_view_x0, map_view_y0 => window origin
  everything else is determined on-demand
I propose that these be unified into one common set of values in 
mapview_common.[ch].  This will allow further unification of the mapview 
code (including center_tile_mapcanvas, get_map_xy, get_canvas_xy, 
get_center_tile_mapcanvas, tile_visible_and_not_on_border_mapcanvas, 
tile_visible_mapcanvas, show_city_descriptions, and 
update_map_canvas_visible for starters, update_map_canvas and others 
with a little more work), make cross-GUI programming a lot easier (no 
more need for everyone to think about these differences :-), and make 
the code (very insigificantly) faster.
I also propose that they take the form of a struct:
  struct mapview_window {
    int origin_x, origin_y;
    int pixel_width, pixel_height;
    int tile_width, tile_height;
  } mapview;
although this could just as easily be 6 separate values.
There are really 5 parts to this conversion process:
  - Introduce the struct into mapview_common.[ch]
  - Change GUI-specific code for each GUI to use the new structure.
I can provide patches for each of these steps, but the GUI authors 
should verify and apply them (at least for MUI and WIN32, which I cannot 
test).
jason
 
 
- [Freeciv-Dev] RFC: Unifying mapview parameters,
Jason Short <=
 
 
 
 | 
 |