diff options
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 |
commit | be781bb886ed7ce4b3fb22eb5d7d187ad435e6f4 (patch) | |
tree | 3ca7b45ac4864785d98e023d494cd9b84b28c505 | |
parent | 92610fb3a3404c7e54a721899a3d55433643d704 (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.cpp | 14 |
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); |