Revert "Feature #7962: Improve rendering of large viewports"
This reverts commit e82333cf77.
			
			
This commit is contained in:
		@@ -1718,6 +1718,32 @@ void ViewportDoDraw(const Viewport *vp, int left, int top, int right, int bottom
 | 
			
		||||
	_vd.child_screen_sprites_to_draw.clear();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Make sure we don't draw a too big area at a time.
 | 
			
		||||
 * If we do, the sprite memory will overflow.
 | 
			
		||||
 */
 | 
			
		||||
static void ViewportDrawChk(const Viewport *vp, int left, int top, int right, int bottom)
 | 
			
		||||
{
 | 
			
		||||
	if ((int64)ScaleByZoom(bottom - top, vp->zoom) * (int64)ScaleByZoom(right - left, vp->zoom) > (int64)(180000 * ZOOM_LVL_BASE * ZOOM_LVL_BASE)) {
 | 
			
		||||
		if ((bottom - top) > (right - left)) {
 | 
			
		||||
			int t = (top + bottom) >> 1;
 | 
			
		||||
			ViewportDrawChk(vp, left, top, right, t);
 | 
			
		||||
			ViewportDrawChk(vp, left, t, right, bottom);
 | 
			
		||||
		} else {
 | 
			
		||||
			int t = (left + right) >> 1;
 | 
			
		||||
			ViewportDrawChk(vp, left, top, t, bottom);
 | 
			
		||||
			ViewportDrawChk(vp, t, top, right, bottom);
 | 
			
		||||
		}
 | 
			
		||||
	} else {
 | 
			
		||||
		ViewportDoDraw(vp,
 | 
			
		||||
			ScaleByZoom(left - vp->left, vp->zoom) + vp->virtual_left,
 | 
			
		||||
			ScaleByZoom(top - vp->top, vp->zoom) + vp->virtual_top,
 | 
			
		||||
			ScaleByZoom(right - vp->left, vp->zoom) + vp->virtual_left,
 | 
			
		||||
			ScaleByZoom(bottom - vp->top, vp->zoom) + vp->virtual_top
 | 
			
		||||
		);
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static inline void ViewportDraw(const Viewport *vp, int left, int top, int right, int bottom)
 | 
			
		||||
{
 | 
			
		||||
	if (right <= vp->left || bottom <= vp->top) return;
 | 
			
		||||
@@ -1732,12 +1758,7 @@ static inline void ViewportDraw(const Viewport *vp, int left, int top, int right
 | 
			
		||||
	if (top < vp->top) top = vp->top;
 | 
			
		||||
	if (bottom > vp->top + vp->height) bottom = vp->top + vp->height;
 | 
			
		||||
 | 
			
		||||
	ViewportDoDraw(vp,
 | 
			
		||||
		ScaleByZoom(left - vp->left, vp->zoom) + vp->virtual_left,
 | 
			
		||||
		ScaleByZoom(top - vp->top, vp->zoom) + vp->virtual_top,
 | 
			
		||||
		ScaleByZoom(right - vp->left, vp->zoom) + vp->virtual_left,
 | 
			
		||||
		ScaleByZoom(bottom - vp->top, vp->zoom) + vp->virtual_top
 | 
			
		||||
	);
 | 
			
		||||
	ViewportDrawChk(vp, left, top, right, bottom);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user