mirror of https://github.com/mgba-emu/mgba.git
Qt: Don't double-load display driver
This commit is contained in:
parent
18fc2cbdb2
commit
5e7333e20f
|
@ -81,7 +81,6 @@ Window::Window(CoreManager* manager, ConfigController* config, int playerId, QWi
|
||||||
setAcceptDrops(true);
|
setAcceptDrops(true);
|
||||||
setAttribute(Qt::WA_DeleteOnClose);
|
setAttribute(Qt::WA_DeleteOnClose);
|
||||||
updateTitle();
|
updateTitle();
|
||||||
reloadDisplayDriver();
|
|
||||||
|
|
||||||
m_logo.setDevicePixelRatio(m_screenWidget->devicePixelRatio());
|
m_logo.setDevicePixelRatio(m_screenWidget->devicePixelRatio());
|
||||||
m_logo = m_logo; // Free memory left over in old pixmap
|
m_logo = m_logo; // Free memory left over in old pixmap
|
||||||
|
@ -238,8 +237,10 @@ void Window::reloadConfig() {
|
||||||
}
|
}
|
||||||
m_display->resizeContext();
|
m_display->resizeContext();
|
||||||
}
|
}
|
||||||
m_display->lockAspectRatio(opts->lockAspectRatio);
|
if (m_display) {
|
||||||
m_display->filter(opts->resampleVideo);
|
m_display->lockAspectRatio(opts->lockAspectRatio);
|
||||||
|
m_display->filter(opts->resampleVideo);
|
||||||
|
}
|
||||||
|
|
||||||
m_inputController.setScreensaverSuspendable(opts->suspendScreensaver);
|
m_inputController.setScreensaverSuspendable(opts->suspendScreensaver);
|
||||||
}
|
}
|
||||||
|
@ -600,9 +601,7 @@ void Window::showEvent(QShowEvent* event) {
|
||||||
enterFullScreen();
|
enterFullScreen();
|
||||||
m_fullscreenOnStart = false;
|
m_fullscreenOnStart = false;
|
||||||
}
|
}
|
||||||
if (m_display) {
|
reloadDisplayDriver();
|
||||||
reloadDisplayDriver();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void Window::closeEvent(QCloseEvent* event) {
|
void Window::closeEvent(QCloseEvent* event) {
|
||||||
|
@ -702,6 +701,9 @@ void Window::gameStarted() {
|
||||||
if (m_savedScale > 0) {
|
if (m_savedScale > 0) {
|
||||||
resizeFrame(size * m_savedScale);
|
resizeFrame(size * m_savedScale);
|
||||||
}
|
}
|
||||||
|
if (!m_display) {
|
||||||
|
reloadDisplayDriver();
|
||||||
|
}
|
||||||
attachWidget(m_display.get());
|
attachWidget(m_display.get());
|
||||||
m_display->setMinimumSize(size);
|
m_display->setMinimumSize(size);
|
||||||
|
|
||||||
|
@ -1382,7 +1384,9 @@ void Window::setupMenu(QMenuBar* menubar) {
|
||||||
ConfigOption* lockAspectRatio = m_config->addOption("lockAspectRatio");
|
ConfigOption* lockAspectRatio = m_config->addOption("lockAspectRatio");
|
||||||
lockAspectRatio->addBoolean(tr("Lock aspect ratio"), avMenu);
|
lockAspectRatio->addBoolean(tr("Lock aspect ratio"), avMenu);
|
||||||
lockAspectRatio->connect([this](const QVariant& value) {
|
lockAspectRatio->connect([this](const QVariant& value) {
|
||||||
m_display->lockAspectRatio(value.toBool());
|
if (m_display) {
|
||||||
|
m_display->lockAspectRatio(value.toBool());
|
||||||
|
}
|
||||||
if (m_controller) {
|
if (m_controller) {
|
||||||
m_screenWidget->setLockAspectRatio(value.toBool());
|
m_screenWidget->setLockAspectRatio(value.toBool());
|
||||||
}
|
}
|
||||||
|
@ -1392,7 +1396,9 @@ void Window::setupMenu(QMenuBar* menubar) {
|
||||||
ConfigOption* lockIntegerScaling = m_config->addOption("lockIntegerScaling");
|
ConfigOption* lockIntegerScaling = m_config->addOption("lockIntegerScaling");
|
||||||
lockIntegerScaling->addBoolean(tr("Force integer scaling"), avMenu);
|
lockIntegerScaling->addBoolean(tr("Force integer scaling"), avMenu);
|
||||||
lockIntegerScaling->connect([this](const QVariant& value) {
|
lockIntegerScaling->connect([this](const QVariant& value) {
|
||||||
m_display->lockIntegerScaling(value.toBool());
|
if (m_display) {
|
||||||
|
m_display->lockIntegerScaling(value.toBool());
|
||||||
|
}
|
||||||
if (m_controller) {
|
if (m_controller) {
|
||||||
m_screenWidget->setLockIntegerScaling(value.toBool());
|
m_screenWidget->setLockIntegerScaling(value.toBool());
|
||||||
}
|
}
|
||||||
|
@ -1402,7 +1408,9 @@ void Window::setupMenu(QMenuBar* menubar) {
|
||||||
ConfigOption* resampleVideo = m_config->addOption("resampleVideo");
|
ConfigOption* resampleVideo = m_config->addOption("resampleVideo");
|
||||||
resampleVideo->addBoolean(tr("Bilinear filtering"), avMenu);
|
resampleVideo->addBoolean(tr("Bilinear filtering"), avMenu);
|
||||||
resampleVideo->connect([this](const QVariant& value) {
|
resampleVideo->connect([this](const QVariant& value) {
|
||||||
m_display->filter(value.toBool());
|
if (m_display) {
|
||||||
|
m_display->filter(value.toBool());
|
||||||
|
}
|
||||||
}, this);
|
}, this);
|
||||||
m_config->updateOption("resampleVideo");
|
m_config->updateOption("resampleVideo");
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue