From f3e1e559cf44b8225debcd9a71828df1774e8d85 Mon Sep 17 00:00:00 2001 From: thrust26 Date: Tue, 6 Apr 2021 16:53:44 +0200 Subject: [PATCH] fixed HiDPI mode (note to myself: sometimes initialization is bad) --- src/emucore/FrameBuffer.cxx | 11 ++++++----- src/emucore/FrameBuffer.hxx | 4 ++-- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/emucore/FrameBuffer.cxx b/src/emucore/FrameBuffer.cxx index 14137b0ff..ea58d7ae7 100644 --- a/src/emucore/FrameBuffer.cxx +++ b/src/emucore/FrameBuffer.cxx @@ -98,16 +98,16 @@ void FrameBuffer::initialize() myAbsDesktopSize.push_back(size); // Check for HiDPI mode (is it activated, and can we use it?) - myHiDPIAllowed.push_back(((myAbsDesktopSize[display].w / 2) >= FBMinimum::Width) && - ((myAbsDesktopSize[display].h / 2) >= FBMinimum::Height)); + myHiDPIAllowed.push_back(((size.w / 2) >= FBMinimum::Width) && + ((size.h / 2) >= FBMinimum::Height)); myHiDPIEnabled.push_back(myHiDPIAllowed.back() && myOSystem.settings().getBool("hidpi")); // In HiDPI mode, the desktop resolution is essentially halved // Later, the output is scaled and rendered in 2x mode if(myHiDPIEnabled.back()) { - size.w = myAbsDesktopSize[display].w / hidpiScaleFactor(); - size.h = myAbsDesktopSize[display].h / hidpiScaleFactor(); + size.w /= hidpiScaleFactor(); + size.h /= hidpiScaleFactor(); } myDesktopSize.push_back(size); } @@ -133,7 +133,8 @@ const int FrameBuffer::displayId(BufferType bufferType) const if(bufferType == myBufferType) display = myBackend->getCurrentDisplayIndex(); else - display = myOSystem.settings().getInt(getDisplayKey(bufferType)); + display = myOSystem.settings().getInt(getDisplayKey(bufferType != BufferType::None + ? bufferType : myBufferType)); return std::min(std::max(0, display), maxDisplay); } diff --git a/src/emucore/FrameBuffer.hxx b/src/emucore/FrameBuffer.hxx index 2e7c6b438..2c2863a76 100644 --- a/src/emucore/FrameBuffer.hxx +++ b/src/emucore/FrameBuffer.hxx @@ -534,8 +534,8 @@ class FrameBuffer uInt32 myLastScanlines{0}; bool myGrabMouse{false}; - vector myHiDPIAllowed{false}; - vector myHiDPIEnabled{false}; + vector myHiDPIAllowed; + vector myHiDPIEnabled; // Minimum TIA zoom level that can be used for this framebuffer float myTIAMinZoom{2.F};