Viewport: Cache landscape pixels in map mode

Avoid invalidating landscape pixels for non-landscape updates
(vehicles, overlays, etc.)
This commit is contained in:
Jonathan G Rennison
2020-10-01 23:11:15 +01:00
parent 8071976b0e
commit a474e71243
23 changed files with 268 additions and 143 deletions

View File

@@ -416,19 +416,19 @@ struct MainWindow : Window
case GHK_CHANGE_MAP_MODE_PREV:
if (_focused_window && _focused_window->viewport && _focused_window->viewport->zoom >= ZOOM_LVL_DRAW_MAP) {
_focused_window->viewport->map_type = ChangeRenderMode(_focused_window->viewport, true);
ChangeRenderMode(_focused_window->viewport, true);
_focused_window->SetDirty();
} else if (this->viewport->zoom >= ZOOM_LVL_DRAW_MAP) {
this->viewport->map_type = ChangeRenderMode(this->viewport, true);
ChangeRenderMode(this->viewport, true);
this->SetDirty();
}
break;
case GHK_CHANGE_MAP_MODE_NEXT:
if (_focused_window && _focused_window->viewport && _focused_window->viewport->zoom >= ZOOM_LVL_DRAW_MAP) {
_focused_window->viewport->map_type = ChangeRenderMode(_focused_window->viewport, false);
ChangeRenderMode(_focused_window->viewport, false);
_focused_window->SetDirty();
} else if (this->viewport->zoom >= ZOOM_LVL_DRAW_MAP) {
this->viewport->map_type = ChangeRenderMode(this->viewport, false);
ChangeRenderMode(this->viewport, false);
this->SetDirty();
}
break;
@@ -451,7 +451,7 @@ struct MainWindow : Window
{
if (_ctrl_pressed) {
/* Cycle through the drawing modes */
this->viewport->map_type = ChangeRenderMode(this->viewport, wheel < 0);
ChangeRenderMode(this->viewport, wheel < 0);
this->SetDirty();
} else if (_settings_client.gui.scrollwheel_scrolling != 2) {
ZoomInOrOutToCursorWindow(wheel < 0, this);