all repos — mgba @ 6ffa43d453f76e84d2f93190ce43f66c6851c1e2

mGBA Game Boy Advance Emulator

Qt: Fix aliasing on background logo (closes #1886)
Vicki Pfau vi@endrift.com
Wed, 14 Oct 2020 20:39:47 -0700
commit

6ffa43d453f76e84d2f93190ce43f66c6851c1e2

parent

c7a147598167b237530dedd924443f3144501cbe

3 files changed, 18 insertions(+), 10 deletions(-)

jump to
M CHANGESCHANGES

@@ -74,6 +74,7 @@ - Qt: Fix camera image being upside-down sometimes (fixes mgba.io/i/829 again)

- Qt: Fix drawing on macOS break when using OpenGL (fixes mgba.io/i/1899) - Qt: Load/save bytes from memory viewer in the order visible (fixes mgba.io/i/1900) - Qt: Fix stride changing when toggling SGB borders (fixes mgba.io/i/1898) + - Qt: Fix aliasing on background logo (fixes mgba.io/i/1886) - mGUI: Fix closing down a game if an exit is signalled - mVL: Fix injecting accidentally draining non-injection buffer - SM83: Simplify register pair access on big endian
M src/platform/qt/Window.cppsrc/platform/qt/Window.cpp

@@ -137,10 +137,7 @@ resizeFrame(QSize(GBA_VIDEO_HORIZONTAL_PIXELS * i, GBA_VIDEO_VERTICAL_PIXELS * i));

#elif defined(M_CORE_GB) resizeFrame(QSize(GB_VIDEO_HORIZONTAL_PIXELS * i, GB_VIDEO_VERTICAL_PIXELS * i)); #endif - m_screenWidget->setPixmap(m_logo); - m_screenWidget->setDimensions(m_logo.width(), m_logo.height()); - m_screenWidget->setLockIntegerScaling(false); - m_screenWidget->setLockAspectRatio(true); + setLogo(); setCentralWidget(m_screenWidget); connect(this, &Window::shutdown, m_logView, &QWidget::hide);

@@ -746,6 +743,7 @@ m_screenWidget->setDimensions(size.width(), size.height());

m_config->updateOption("lockIntegerScaling"); m_config->updateOption("lockAspectRatio"); m_config->updateOption("interframeBlending"); + m_config->updateOption("resampleVideo"); m_config->updateOption("showOSD"); if (m_savedScale > 0) { resizeFrame(size * m_savedScale);

@@ -814,11 +812,7 @@ action->setEnabled(false);

} setWindowFilePath(QString()); detachWidget(m_display.get()); - m_screenWidget->setDimensions(m_logo.width(), m_logo.height()); - m_screenWidget->setLockIntegerScaling(false); - m_screenWidget->setLockAspectRatio(true); - m_screenWidget->setPixmap(m_logo); - m_screenWidget->unsetCursor(); + setLogo(); if (m_display) { #ifdef M_CORE_GB m_display->setMinimumSize(GB_VIDEO_HORIZONTAL_PIXELS, GB_VIDEO_VERTICAL_PIXELS);

@@ -1406,7 +1400,9 @@ resampleVideo->connect([this](const QVariant& value) {

if (m_display) { m_display->filter(value.toBool()); } - m_screenWidget->filter(value.toBool()); + if (m_controller) { + m_screenWidget->filter(value.toBool()); + } }, this); m_config->updateOption("resampleVideo");

@@ -1935,6 +1931,15 @@ connect(m_controller.get(), &CoreController::frameAvailable, m_display.get(), &Display::framePosted);

connect(m_controller.get(), &CoreController::statusPosted, m_display.get(), &Display::showMessage); connect(m_controller.get(), &CoreController::didReset, m_display.get(), &Display::resizeContext); changeRenderer(); +} + +void Window::setLogo() { + m_screenWidget->setPixmap(m_logo); + m_screenWidget->setDimensions(m_logo.width(), m_logo.height()); + m_screenWidget->setLockIntegerScaling(false); + m_screenWidget->setLockAspectRatio(true); + m_screenWidget->filter(true); + m_screenWidget->unsetCursor(); } WindowBackground::WindowBackground(QWidget* parent)
M src/platform/qt/Window.hsrc/platform/qt/Window.h

@@ -142,6 +142,8 @@ void focusCheck();

void updateFrame(); + void setLogo(); + private: static const int FPS_TIMER_INTERVAL = 2000; static const int MUST_RESTART_TIMEOUT = 10000;