Change how dirty screen, window and viewport areas are tracked for later redrawing

Track dirty viewport areas seperately form general screen redraws.
Maintain a dirty block grid per viewport, with a smaller block size.
Use even smaller block size in viewport map mode.

Use a rectangle array for general screen redraws instead of a block grid.

Add a dirty bit to windows and widgets, to simplify the common case
of repainting a whole window or widget, without catching
neighbouring windows or viewports.
This commit is contained in:
Jonathan G Rennison
2020-02-21 19:45:07 +00:00
parent d740a19e5f
commit 8f442500ea
18 changed files with 626 additions and 182 deletions

View File

@@ -126,7 +126,7 @@ static void FindStationsAroundSelection()
* If it is needed actually make the window for redrawing.
* @param w the window to check.
*/
void CheckRedrawStationCoverage(const Window *w)
void CheckRedrawStationCoverage(Window *w)
{
/* Test if ctrl state changed */
static bool _last_ctrl_pressed;