Changed Qt Win64 1px fullscreen window border to be a configuration option. Doesn't seem to be necessary for all users and maybe not at all anymore. We will see if the QOpenGLWidget issue resurfaces with this setting off. Fixes #514
This commit is contained in:
parent
e806a5a25a
commit
b53d087fca
|
@ -35,6 +35,10 @@
|
|||
#include "Qt/ConsoleVideoConf.h"
|
||||
#include "Qt/nes_shm.h"
|
||||
|
||||
#ifdef WIN32
|
||||
#include <QtPlatformHeaders/QWindowsWindowFunctions>
|
||||
#endif
|
||||
|
||||
extern int input_display;
|
||||
extern int frame_display;
|
||||
extern int rerecord_display;
|
||||
|
@ -128,6 +132,18 @@ ConsoleVideoConfDialog_t::ConsoleVideoConfDialog_t(QWidget *parent)
|
|||
|
||||
vbox1->addWidget( gl_LF_chkBox );
|
||||
|
||||
#ifdef WIN32
|
||||
// 1px full screen border - hack fix for QOpenGLWidget fullscreen issues
|
||||
winFullScreenBorderCbx = new QCheckBox( tr("Fullscreen Border (1px)") );
|
||||
winFullScreenBorderCbx->setToolTip(tr("Hack fix for QOpenGLWidget fullscreen issue. May not be needed."));
|
||||
|
||||
setCheckBoxFromProperty( winFullScreenBorderCbx , "SDL.winFullScreenBorder");
|
||||
|
||||
connect(winFullScreenBorderCbx, SIGNAL(stateChanged(int)), this, SLOT(winFullScreenBorderChanged(int)) );
|
||||
|
||||
vbox1->addWidget(winFullScreenBorderCbx);
|
||||
#endif
|
||||
|
||||
// Region Select
|
||||
lbl = new QLabel( tr("Region:") );
|
||||
|
||||
|
@ -709,7 +725,7 @@ void ConsoleVideoConfDialog_t::openGL_linearFilterChanged( int value )
|
|||
{
|
||||
bool opt = (value != Qt::Unchecked);
|
||||
g_config->setOption("SDL.OpenGLip", opt );
|
||||
g_config->save ();
|
||||
g_config->save();
|
||||
|
||||
if ( consoleWindow != NULL )
|
||||
{
|
||||
|
@ -720,6 +736,20 @@ void ConsoleVideoConfDialog_t::openGL_linearFilterChanged( int value )
|
|||
}
|
||||
}
|
||||
//----------------------------------------------------
|
||||
#ifdef WIN32
|
||||
void ConsoleVideoConfDialog_t::winFullScreenBorderChanged(int value)
|
||||
{
|
||||
bool opt = (value != Qt::Unchecked);
|
||||
// This function is needed to fix the issue referenced below. It adds a 1-pixel border
|
||||
// around the fullscreen window due to some limitation in windows.
|
||||
// https://doc.qt.io/qt-5/windows-issues.html#fullscreen-opengl-based-windows
|
||||
QWindowsWindowFunctions::setHasBorderInFullScreen( consoleWindow->windowHandle(), opt);
|
||||
|
||||
g_config->setOption("SDL.winFullScreenBorder", opt );
|
||||
g_config->save();
|
||||
}
|
||||
#endif
|
||||
//----------------------------------------------------
|
||||
void ConsoleVideoConfDialog_t::autoScaleChanged( int value )
|
||||
{
|
||||
bool opt = (value != Qt::Unchecked);
|
||||
|
|
|
@ -55,6 +55,9 @@ class ConsoleVideoConfDialog_t : public QDialog
|
|||
QCheckBox *showFrameCount_cbx;
|
||||
QCheckBox *showLagCount_cbx;
|
||||
QCheckBox *showRerecordCount_cbx;
|
||||
#ifdef WIN32
|
||||
QCheckBox *winFullScreenBorderCbx;
|
||||
#endif
|
||||
QDoubleSpinBox *xScaleBox;
|
||||
QDoubleSpinBox *yScaleBox;
|
||||
QLabel *aspectSelectLabel;
|
||||
|
@ -111,6 +114,9 @@ class ConsoleVideoConfDialog_t : public QDialog
|
|||
void ntscEndScanLineChanged(int value);
|
||||
void palStartScanLineChanged(int value);
|
||||
void palEndScanLineChanged(int value);
|
||||
#ifdef WIN32
|
||||
void winFullScreenBorderChanged(int value);
|
||||
#endif
|
||||
|
||||
};
|
||||
|
||||
|
|
|
@ -614,6 +614,9 @@ InitConfig()
|
|||
config->addOption("SDL.SpecialFilter", 0);
|
||||
config->addOption("SDL.SpecialFX", 0);
|
||||
config->addOption("SDL.Vsync", 1);
|
||||
#ifdef WIN32
|
||||
config->addOption("SDL.winFullScreenBorder", 0);
|
||||
#endif
|
||||
|
||||
// network play options - netplay is broken
|
||||
config->addOption("server", "SDL.NetworkIsServer", 0);
|
||||
|
|
|
@ -158,7 +158,9 @@ int main( int argc, char *argv[] )
|
|||
// This function is needed to fix the issue referenced below. It adds a 1-pixel border
|
||||
// around the fullscreen window due to some limitation in windows.
|
||||
// https://doc.qt.io/qt-5/windows-issues.html#fullscreen-opengl-based-windows
|
||||
QWindowsWindowFunctions::setHasBorderInFullScreen( consoleWindow->windowHandle(), true);
|
||||
bool fullScreenBorderOpt = false;
|
||||
g_config->getOption("SDL.winFullScreenBorder", &fullScreenBorderOpt );
|
||||
QWindowsWindowFunctions::setHasBorderInFullScreen( consoleWindow->windowHandle(), fullScreenBorderOpt);
|
||||
#endif
|
||||
|
||||
if ( splash )
|
||||
|
|
Loading…
Reference in New Issue