1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-06-15 00:05:02 +02:00

improvements for non quadratic maps

This commit is contained in:
Laserlicht
2023-10-21 16:49:50 +02:00
committed by GitHub
parent f3acc939b9
commit e03f2a9d3a
6 changed files with 31 additions and 5 deletions

View File

@ -135,8 +135,14 @@ std::shared_ptr<CPicture> CMapOverviewWidget::buildDrawMinimap(const JsonNode &
if(id >= minimaps.size())
return nullptr;
Rect minimapRect = minimaps[id].getRenderArea();
double maxSideLenghtSrc = std::max(minimapRect.w, minimapRect.h);
double maxSideLenghtDst = std::max(rect.w, rect.h);
double resize = maxSideLenghtSrc / maxSideLenghtDst;
Point newMinimapSize = Point(minimapRect.w / resize, minimapRect.h / resize);
Canvas canvasScaled = Canvas(Point(rect.w, rect.h));
canvasScaled.drawScaled(minimaps[id], Point(0, 0), Point(rect.w, rect.h));
canvasScaled.drawScaled(minimaps[id], Point((rect.w - newMinimapSize.x) / 2, (rect.h - newMinimapSize.y) / 2), newMinimapSize);
std::shared_ptr<IImage> img = GH.renderHandler().createImage(canvasScaled.getInternalSurface());
return std::make_shared<CPicture>(img, Point(rect.x, rect.y));