Avoid window iterations when marking viewports dirty
This commit is contained in:
@@ -4266,9 +4266,8 @@ void ViewportRouteOverlay::MarkAllRouteStepsDirty(const Vehicle *veh)
|
|||||||
*/
|
*/
|
||||||
void MarkAllViewportMapsDirty(int left, int top, int right, int bottom)
|
void MarkAllViewportMapsDirty(int left, int top, int right, int bottom)
|
||||||
{
|
{
|
||||||
for (Window *w : Window::Iterate()) {
|
for (Viewport *vp : _viewport_window_cache) {
|
||||||
Viewport *vp = w->viewport;
|
if (vp->zoom >= ZOOM_LVL_DRAW_MAP) {
|
||||||
if (vp != nullptr && vp->zoom >= ZOOM_LVL_DRAW_MAP) {
|
|
||||||
MarkViewportDirty(vp, left, top, right, bottom, VMDF_NOT_LANDSCAPE);
|
MarkViewportDirty(vp, left, top, right, bottom, VMDF_NOT_LANDSCAPE);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -4302,9 +4301,8 @@ void MarkWholeNonMapViewportsDirty()
|
|||||||
*/
|
*/
|
||||||
void MarkAllViewportOverlayStationLinksDirty(const Station *st)
|
void MarkAllViewportOverlayStationLinksDirty(const Station *st)
|
||||||
{
|
{
|
||||||
for (Window *w : Window::Iterate()) {
|
for (Viewport *vp : _viewport_window_cache) {
|
||||||
Viewport *vp = w->viewport;
|
if (vp->overlay != nullptr) {
|
||||||
if (vp != nullptr && vp->overlay != nullptr) {
|
|
||||||
vp->overlay->MarkStationViewportLinksDirty(st);
|
vp->overlay->MarkStationViewportLinksDirty(st);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user