[Freeciv-Dev] Re: (PR#7297) Caching map canvas
[Top] [All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
<URL: http://rt.freeciv.org/Ticket/Display.html?id=7297 >
On Fri, 23 Jan 2004, Raimar Falke wrote:
>
> <URL: http://rt.freeciv.org/Ticket/Display.html?id=7297 >
>
>
> Idea: have a backing store of the size of map which contains the whole
> drawn into it.
>
> Purpose: allow fast changing of the mapview origin by just copying
> relevant parts of the backing store to the screen in the right places.
>
> You have the problem of wrapping (after the eastmost tile comes the
> westmost one). But this is easy for non-iso tilesets. Non-iso tilesets
> have another advantage: they have no overlapping between tiles.
>
> For iso tilesets the idea is to have a larger backing store. 9 times
> the place required for drawing the complete map. So around the primary
> instance of the map in the backing store you place 8 other copies of
> it around. At the border you do the correct overlapping drawing.
>
> A little picture for the iso case:
>
>
> a b c
>
>
> +---------------+
> d | e | f
> | |
> | |
> +---------------+
> g h i
>
> where the rectangle is the part which is drawn to the screen. And a-i
> are the instances of the map.
>
> Advantages:
> - fast change of map origin
> - pixel based position of the view quite easy
>
> Disadvantages:
> - large memory usage
> - updating of a tiles is more expensive in the iso case
Old scrolling games used these sorts of techniques. e.g. parallax
scrolling.
---
Vasco Alexandre da Silva Costa @ Instituto Superior Tecnico, Lisboa
|
|