GUI: Fix grid items being twice as small on HiDPI screens with OpenGL mode

This commit is contained in:
Thierry Crozat 2022-06-02 20:34:27 +01:00
parent 7ff1533799
commit d3ae365f18

View file

@ -334,14 +334,14 @@ Graphics::ManagedSurface *loadSurfaceFromFile(const Common::String &name, int re
GridWidget::GridWidget(GuiObject *boss, const Common::String &name) GridWidget::GridWidget(GuiObject *boss, const Common::String &name)
: ContainerWidget(boss, name), CommandSender(boss) { : ContainerWidget(boss, name), CommandSender(boss) {
_thumbnailHeight = g_gui.xmlEval()->getVar("Globals.GridItemThumbnail.Height"); _thumbnailHeight = int(g_gui.xmlEval()->getVar("Globals.GridItemThumbnail.Height") * g_gui.getScaleFactor() + .5f);
_thumbnailWidth = g_gui.xmlEval()->getVar("Globals.GridItemThumbnail.Width"); _thumbnailWidth = int(g_gui.xmlEval()->getVar("Globals.GridItemThumbnail.Width") * g_gui.getScaleFactor() + .5f);
_flagIconHeight = g_gui.xmlEval()->getVar("Globals.Grid.FlagIcon.Height"); _flagIconHeight = int(g_gui.xmlEval()->getVar("Globals.Grid.FlagIcon.Height") * g_gui.getScaleFactor() + .5f);
_flagIconWidth = g_gui.xmlEval()->getVar("Globals.Grid.FlagIcon.Width"); _flagIconWidth = int(g_gui.xmlEval()->getVar("Globals.Grid.FlagIcon.Width") * g_gui.getScaleFactor() + .5f);
_platformIconHeight = g_gui.xmlEval()->getVar("Globals.Grid.PlatformIcon.Height"); _platformIconHeight = int(g_gui.xmlEval()->getVar("Globals.Grid.PlatformIcon.Height") * g_gui.getScaleFactor() + .5f);
_platformIconWidth = g_gui.xmlEval()->getVar("Globals.Grid.PlatformIcon.Width"); _platformIconWidth = int(g_gui.xmlEval()->getVar("Globals.Grid.PlatformIcon.Width") * g_gui.getScaleFactor() + .5f);
_minGridXSpacing = g_gui.xmlEval()->getVar("Globals.Grid.XSpacing"); _minGridXSpacing = int(g_gui.xmlEval()->getVar("Globals.Grid.XSpacing") * g_gui.getScaleFactor() + .5f);
_minGridYSpacing = g_gui.xmlEval()->getVar("Globals.Grid.YSpacing"); _minGridYSpacing = int(g_gui.xmlEval()->getVar("Globals.Grid.YSpacing") * g_gui.getScaleFactor() + .5f);
_isTitlesVisible = g_gui.xmlEval()->getVar("Globals.Grid.ShowTitles"); _isTitlesVisible = g_gui.xmlEval()->getVar("Globals.Grid.ShowTitles");
_scrollBarWidth = g_gui.xmlEval()->getVar("Globals.Scrollbar.Width", 0); _scrollBarWidth = g_gui.xmlEval()->getVar("Globals.Scrollbar.Width", 0);
@ -823,20 +823,20 @@ void GridWidget::reflowLayout() {
int oldThumbnailHeight = _thumbnailHeight; int oldThumbnailHeight = _thumbnailHeight;
int oldThumbnailWidth = _thumbnailWidth; int oldThumbnailWidth = _thumbnailWidth;
_thumbnailHeight = g_gui.xmlEval()->getVar("Globals.GridItemThumbnail.Height"); _thumbnailHeight = int(g_gui.xmlEval()->getVar("Globals.GridItemThumbnail.Height") * g_gui.getScaleFactor() + .5f);
_thumbnailWidth = g_gui.xmlEval()->getVar("Globals.GridItemThumbnail.Width"); _thumbnailWidth = int(g_gui.xmlEval()->getVar("Globals.GridItemThumbnail.Width") * g_gui.getScaleFactor() + .5f);
_flagIconHeight = g_gui.xmlEval()->getVar("Globals.Grid.FlagIcon.Height"); _flagIconHeight = int(g_gui.xmlEval()->getVar("Globals.Grid.FlagIcon.Height") * g_gui.getScaleFactor() + .5f);
_flagIconWidth = g_gui.xmlEval()->getVar("Globals.Grid.FlagIcon.Width"); _flagIconWidth = int(g_gui.xmlEval()->getVar("Globals.Grid.FlagIcon.Width") * g_gui.getScaleFactor() + .5f);
_platformIconHeight = g_gui.xmlEval()->getVar("Globals.Grid.PlatformIcon.Height"); _platformIconHeight = int(g_gui.xmlEval()->getVar("Globals.Grid.PlatformIcon.Height") * g_gui.getScaleFactor() + .5f);
_platformIconWidth = g_gui.xmlEval()->getVar("Globals.Grid.PlatformIcon.Width"); _platformIconWidth = int(g_gui.xmlEval()->getVar("Globals.Grid.PlatformIcon.Width") * g_gui.getScaleFactor() + .5f);
if ((oldThumbnailHeight != _thumbnailHeight) || (oldThumbnailWidth != _thumbnailWidth)) { if ((oldThumbnailHeight != _thumbnailHeight) || (oldThumbnailWidth != _thumbnailWidth)) {
unloadSurfaces(_loadedSurfaces); unloadSurfaces(_loadedSurfaces);
reloadThumbnails(); reloadThumbnails();
loadFlagIcons(); loadFlagIcons();
loadPlatformIcons(); loadPlatformIcons();
} }
_minGridXSpacing = g_gui.xmlEval()->getVar("Globals.Grid.XSpacing"); _minGridXSpacing = int(g_gui.xmlEval()->getVar("Globals.Grid.XSpacing") * g_gui.getScaleFactor() + .5f);
_minGridYSpacing = g_gui.xmlEval()->getVar("Globals.Grid.YSpacing"); _minGridYSpacing = int(g_gui.xmlEval()->getVar("Globals.Grid.YSpacing") * g_gui.getScaleFactor() + .5f);
_scrollWindowPaddingX = _minGridXSpacing; _scrollWindowPaddingX = _minGridXSpacing;
_scrollWindowPaddingY = _minGridYSpacing; _scrollWindowPaddingY = _minGridYSpacing;
_gridYSpacing = _minGridYSpacing; _gridYSpacing = _minGridYSpacing;