summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Vas Crabb <vas@vastheman.com>2022-05-21 18:25:43 +1000
committer Vas Crabb <vas@vastheman.com>2022-05-21 18:25:43 +1000
commitbe781bb886ed7ce4b3fb22eb5d7d187ad435e6f4 (patch)
tree3ca7b45ac4864785d98e023d494cd9b84b28c505
parent92610fb3a3404c7e54a721899a3d55433643d704 (diff)
ui/viewgfx.cpp: Fixed some cases where no tiles would appear with tall or wide aspect ratio windows.
-rw-r--r--src/frontend/mame/ui/viewgfx.cpp14
1 files changed, 11 insertions, 3 deletions
diff --git a/src/frontend/mame/ui/viewgfx.cpp b/src/frontend/mame/ui/viewgfx.cpp
index 542acb4b1fd..7159e516708 100644
--- a/src/frontend/mame/ui/viewgfx.cpp
+++ b/src/frontend/mame/ui/viewgfx.cpp
@@ -1056,19 +1056,27 @@ uint32_t gfx_viewer::handle_gfxset(mame_ui_manager &mui, render_container &conta
float pixelscale = 0.0f;
while (xcells > 1)
{
- pixelscale = (cellboxwidth / xcells) / cellxpix;
+ pixelscale = cellboxwidth / (xcells * cellxpix);
if (set.m_integer_scale)
pixelscale = std::floor(pixelscale);
if (0.25f <= pixelscale)
break;
xcells--;
}
- set.m_columns = xcells;
+ if (0.0f == pixelscale)
+ pixelscale = cellboxwidth / (xcells * cellxpix);
// in the Y direction, we just display as many as we can
- int const ycells = int(cellboxheight / (pixelscale * cellypix));
+ int ycells = int(cellboxheight / (pixelscale * cellypix));
+ if (!ycells)
+ {
+ ycells = 1;
+ pixelscale = cellboxheight / cellypix;
+ xcells = int(cellboxwidth / (pixelscale * cellxpix));
+ }
// now determine the actual cellbox size
+ set.m_columns = xcells;
cellboxwidth = std::min(cellboxwidth, xcells * pixelscale * cellxpix);
cellboxheight = std::min(cellboxheight, ycells * pixelscale * cellypix);