diff --git a/src/drivers/Qt/ConsoleVideoConf.cpp b/src/drivers/Qt/ConsoleVideoConf.cpp index 49129fd5..dd5f50d2 100644 --- a/src/drivers/Qt/ConsoleVideoConf.cpp +++ b/src/drivers/Qt/ConsoleVideoConf.cpp @@ -266,7 +266,6 @@ ConsoleVideoConfDialog_t::ConsoleVideoConfDialog_t(QWidget *parent) main_hbox->addLayout( vbox2 ); vbox2->addWidget( gbox, 1 ); - vbox2->addStretch( 5 ); gbox->setLayout(grid); ntsc_start = new QLineEdit(); @@ -337,28 +336,64 @@ ConsoleVideoConfDialog_t::ConsoleVideoConfDialog_t(QWidget *parent) grid->addWidget( pal_end , 2, 2, Qt::AlignLeft); grid->addWidget( clipSidesCbx, 3, 0, 1, 3); + gbox = new QGroupBox( tr("Current Dimensions") ); + grid = new QGridLayout(); + + vbox2->addWidget( gbox, 1 ); + gbox->setLayout(grid); + + winSizeReadout = new QLineEdit(); + winSizeReadout->setFont( font ); + winSizeReadout->setReadOnly(true); + winSizeReadout->setAlignment(Qt::AlignCenter); + + vpSizeReadout = new QLineEdit(); + vpSizeReadout->setFont( font ); + vpSizeReadout->setReadOnly(true); + vpSizeReadout->setAlignment(Qt::AlignCenter); + + grid->addWidget( new QLabel( tr("Window:") ), 0, 0, Qt::AlignLeft); + grid->addWidget( new QLabel( tr("Viewport:") ), 1, 0, Qt::AlignLeft); + grid->addWidget( winSizeReadout, 0, 1, Qt::AlignLeft); + grid->addWidget( vpSizeReadout, 1, 1, Qt::AlignLeft); + + vbox2->addStretch( 5 ); + setLayout( main_vbox ); + updateReadouts(); + + updateTimer = new QTimer( this ); + + connect( updateTimer, &QTimer::timeout, this, &ConsoleVideoConfDialog_t::periodicUpdate ); + + updateTimer->start( 500 ); // 2Hz } //---------------------------------------------------- ConsoleVideoConfDialog_t::~ConsoleVideoConfDialog_t(void) { printf("Destroy Video Config Window\n"); + updateTimer->stop(); } //---------------------------------------------------------------------------- void ConsoleVideoConfDialog_t::closeEvent(QCloseEvent *event) { - printf("Video Config Close Window Event\n"); - done(0); + printf("Video Config Close Window Event\n"); + done(0); deleteLater(); - event->accept(); + event->accept(); +} +//---------------------------------------------------------------------------- +void ConsoleVideoConfDialog_t::periodicUpdate(void) +{ + updateReadouts(); } //---------------------------------------------------------------------------- void ConsoleVideoConfDialog_t::closeWindow(void) { - //printf("Video Config Close Window\n"); - done(0); + //printf("Video Config Close Window\n"); + done(0); deleteLater(); } //---------------------------------------------------- @@ -370,6 +405,34 @@ void ConsoleVideoConfDialog_t::resetVideo(void) fceuWrapperUnLock(); } //---------------------------------------------------- +void ConsoleVideoConfDialog_t::updateReadouts(void) +{ + if ( consoleWindow ) + { + QSize w, v; + char stmp[128]; + + w = consoleWindow->size(); + + if ( consoleWindow->viewport_GL ) + { + v = consoleWindow->viewport_GL->size(); + } + else if ( consoleWindow->viewport_SDL ) + { + v = consoleWindow->viewport_SDL->size(); + } + + sprintf( stmp, "%i x %i ", w.width(), w.height() ); + + winSizeReadout->setText( tr(stmp) ); + + sprintf( stmp, "%i x %i ", v.width(), v.height() ); + + vpSizeReadout->setText( tr(stmp) ); + } +} +//---------------------------------------------------- void ConsoleVideoConfDialog_t::ntscStartScanLineChanged(const QString &txt) { int opt, opt2; @@ -714,6 +777,8 @@ void ConsoleVideoConfDialog_t::applyChanges( void ) } consoleWindow->resize( s ); + + updateReadouts(); } } diff --git a/src/drivers/Qt/ConsoleVideoConf.h b/src/drivers/Qt/ConsoleVideoConf.h index bdd70acc..b02a8447 100644 --- a/src/drivers/Qt/ConsoleVideoConf.h +++ b/src/drivers/Qt/ConsoleVideoConf.h @@ -29,6 +29,7 @@ class ConsoleVideoConfDialog_t : public QDialog protected: void closeEvent(QCloseEvent *bar); + QTimer *updateTimer; QComboBox *driverSelect; QComboBox *scalerSelect; QComboBox *regionSelect; @@ -48,18 +49,22 @@ class ConsoleVideoConfDialog_t : public QDialog QLineEdit *ntsc_end; QLineEdit *pal_start; QLineEdit *pal_end; + QLineEdit *winSizeReadout; + QLineEdit *vpSizeReadout; void setCheckBoxFromProperty( QCheckBox *cbx, const char *property ); void setComboBoxFromProperty( QComboBox *cbx, const char *property ); //void setSliderFromProperty( QSlider *slider, QLabel *lbl, const char *property ); void resetVideo(void); + void updateReadouts(void); QSize calcNewScreenSize(void); public slots: void closeWindow(void); private slots: + void periodicUpdate(void); void openGL_linearFilterChanged( int value ); void autoScaleChanged( int value ); void sqrPixChanged( int value ); diff --git a/src/drivers/Qt/config.cpp b/src/drivers/Qt/config.cpp index a5a954c2..814b87b4 100644 --- a/src/drivers/Qt/config.cpp +++ b/src/drivers/Qt/config.cpp @@ -260,8 +260,8 @@ InitConfig() config->addOption("doublebuf", "SDL.DoubleBuffering", 1); config->addOption("autoscale", "SDL.AutoScale", 1); config->addOption("keepratio", "SDL.KeepRatio", 1); - config->addOption("xscale", "SDL.XScale", 2.0); - config->addOption("yscale", "SDL.YScale", 2.0); + config->addOption("xscale", "SDL.XScale", 2.000); + config->addOption("yscale", "SDL.YScale", 2.000); config->addOption("xstretch", "SDL.XStretch", 0); config->addOption("ystretch", "SDL.YStretch", 0); config->addOption("noframe", "SDL.NoFrame", 0); diff --git a/src/drivers/Qt/nes_shm.cpp b/src/drivers/Qt/nes_shm.cpp index 02df6516..8b577659 100644 --- a/src/drivers/Qt/nes_shm.cpp +++ b/src/drivers/Qt/nes_shm.cpp @@ -34,9 +34,9 @@ nes_shm_t *open_nes_shm(void) memset( vaddr, 0, sizeof(struct nes_shm_t)); - vaddr->video.ncol = 240; - vaddr->video.nrow = 256; - vaddr->video.pitch = 256 * 4; + vaddr->video.ncol = GL_NES_WIDTH; + vaddr->video.nrow = GL_NES_HEIGHT; + vaddr->video.pitch = GL_NES_WIDTH * 4; vaddr->video.scale = 1; vaddr->video.xyRatio = 1; vaddr->video.preScaler = 0; diff --git a/src/drivers/Qt/nes_shm.h b/src/drivers/Qt/nes_shm.h index 4ff29cac..8db2e397 100644 --- a/src/drivers/Qt/nes_shm.h +++ b/src/drivers/Qt/nes_shm.h @@ -10,7 +10,7 @@ #define GL_WIN_DOUBLE_BUFFER 0x0002 #define GL_NES_WIDTH 256 -#define GL_NES_HEIGHT 256 +#define GL_NES_HEIGHT 240 #define NES_AUDIO_BUFLEN 480000 struct nes_shm_t