From 5e11cea96160bd958c1b271940bf97ecfa257b15 Mon Sep 17 00:00:00 2001 From: Shamus Hammons Date: Thu, 21 Jan 2010 04:20:21 +0000 Subject: [PATCH] Added some icons, reconnected settings, added start of GUI control over some settings --- res/generic.png | Bin 0 -> 1529 bytes res/power.png | Bin 0 -> 989 bytes res/zoom100.png | Bin 0 -> 1448 bytes res/zoom200.png | Bin 0 -> 1487 bytes res/zoom300.png | Bin 0 -> 1452 bytes src/gui/glwidget.cpp | 6 +- src/gui/mainwin.cpp | 148 +++++++++++++++++++++++++++++++++---------- src/gui/mainwin.h | 11 ++++ src/gui/vj.pro | 2 + src/gui/vj.qrc | 5 ++ src/settings.cpp | 3 - src/settings.h | 3 - 12 files changed, 134 insertions(+), 44 deletions(-) create mode 100644 res/generic.png create mode 100644 res/power.png create mode 100644 res/zoom100.png create mode 100644 res/zoom200.png create mode 100644 res/zoom300.png diff --git a/res/generic.png b/res/generic.png new file mode 100644 index 0000000000000000000000000000000000000000..2b9c7fdd15450b4de5c8338c632776ffda44aad0 GIT binary patch literal 1529 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 LNkvXXu0mjfA$_BN literal 0 HcmV?d00001 diff --git a/res/zoom100.png b/res/zoom100.png new file mode 100644 index 0000000000000000000000000000000000000000..1c3422797fa446ec993ecd1d9ab755c17236ed10 GIT binary patch literal 1448 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 literal 0 HcmV?d00001 diff --git a/res/zoom300.png b/res/zoom300.png new file mode 100644 index 0000000000000000000000000000000000000000..3567764ae5d6440343c2425c48790bd4a1dc2d1f GIT binary patch literal 1452 zcmV;d1ylNoP)Px#32;bRa{vGf6951U69E94oEQKA00(qQO+^RV0Tlx-IdhUEi2wiq8FWQhbVF}# zZDnqB07G(RVRU6=Aa`kWXdp*PO;A^X4i^9b1sO?1K~z}7wO2t%BUc!HCPs}(oH)wJ zU<7rt7KzCQMgzgi1hoeAAUU`d1id8YP>Ps62@(nP6iXC@)#+gyENdx94^doO+VN0? zZ3D3?3+k%S=%k_Dtcj_u*7$nqlgT)V*}6OM!_5EwdH?tR_x=BSe-VTb6#B$sF>-r* z+qkv0WeSJGt;u8(%Vk?pQITqEYx`NJ(;eeDo-i7X+ayWGZW%%dC57jCl4V)vqeqXv zvfJ&eX0tg00D$+A>gwv>2L=Y79UUFjBR{tsa~#Li*ViB2*I7Pc7>46{o`evBBJmd3 zY&LFveVxe_S`5RIrKP186h$3i7?#XsmrN$HgM$O=>guXElgY@%+r_f1%jtA}p0)Zw zATTOKs?lgtR;zWxZnv)v4Gn$4aU7Ft%kGkii3y)drAni@ySlo*y|o2RO-;MVpsud& z*Z=D*m-zku$7p_nAmR{0P%LEl$;nAA`tI-V|GLoZn4X><4F-clB_$=7IF2VU3`=%& zbbR02+q*1ezR6_TLhlzB7o}NQ;PH5-5IU7gl}04VCmhEy48w56#l`ua06-DY z>-GD3y?(!~t?j4o?(XMSt93)ERGy1h3n2tJj=x4amSvqlYG843@uT|^j^j8+3V^|2 z*g-m*&Gv%~ks_1H$k98F;|cJdo*VK30HV=o9gy0aXf&#eMx(mT&CQ4Lc$_G7)u?>8 zx3~YOP$({?IKVIrhx7)6VJ9bmzP`S12!e?Fe7*@}b9Q#7-rL)Iu(!AO;Oy*7Ep+bn zdMBj_SYBTKXTDk>31D+`^C3YH@uH%lYvBq)p-?YP(_xyX!=X^9S2%I53=kKzf&j$h zal+^GO$c>kV`HCD6!l6jmtQHB%JZqIDUVbHG#X7xrBbEka`_bi0BW_`Hw?pYs2;f8 z?k8wYqtUn}2|y~WGMOxc-c2UcFX3>QzAFoarQPH4OhE_%%d$?StE#H{BQF35A#k}| z^Ww0wEbAm zI-NHH9LF(Qt@e!+xm+&Se7^HST!@gZ_&fl)YBYop3=a=KMY@ubl8f%{?&m@~hr_WX z1%l^!lBVgf@CKAKV~`TVuv4U5TU+~33}AS8_$h=C%+1Y>2#buv;aEZ>t*NQ`t)-=9 zTNpKsMw1d>WF!Fye?o^5I&6e#gg}ra$x9JbC<=w*a&B&JL>wVW06Lv6DlCzOmfwMa zfoD?AWinYt%DI>uHv@LNeHAJ7di{Q(08*)xW?^Ar(BW__b#``sXR%mbn9b%$AP^Xp zvKRZgleOs3NR#a3Z#g*$_%J}&Br@}=B0)f%2zJQ{rgTuqaMgRaPD=Yh( zVVHFc!;-D7tzn%`cZ}`|IoquNF1NF@vmXb8!J%|Itw#NTTCGl}(`hxbQ!15zou8kV zXCV|`Oz#p5!%hi;h#L%s9lc(^Z?RZjSgqC#VLIRS|E<1&=XtWZx%uV$Y|8)u5XbS? zGcz-vNVaCNSd3g=UhbWrpC8%T*=f;gwWpa(MviK@RGTG!a2!tz4i0|V)6=tJG#a #include "mainwin.h" +//#include //#include #include "glwidget.h" -//#include "editwindow.h" -//#include "charwindow.h" -//#include "ttedit.h" +#include "settings.h" -MainWin::MainWin(): running(true) -{ - // The way BSNES controls things is by setting a timer with a zero - // timeout, sleeping if not emulating anything. Seems there has to be a - // better way. +// The way BSNES controls things is by setting a timer with a zero +// timeout, sleeping if not emulating anything. Seems there has to be a +// better way. - // It has a novel approach to plugging-in/using different video/audio/input - // methods, can we do something similar or should we just use the built-in - // QOpenGL? +// It has a novel approach to plugging-in/using different video/audio/input +// methods, can we do something similar or should we just use the built-in +// QOpenGL? - // We're going to try to use the built-in OpenGL support and see how it goes. - // We'll make the VJ core modular so that it doesn't matter what GUI is in - // use, we can drop it in anywhere and use it as-is. +// We're going to try to use the built-in OpenGL support and see how it goes. +// We'll make the VJ core modular so that it doesn't matter what GUI is in +// use, we can drop it in anywhere and use it as-is. -// ((TTEdit *)qApp)->charWnd = new CharWindow(this); +MainWin::MainWin() +{ videoWidget = new GLWidget(this); setCentralWidget(videoWidget); setWindowIcon(QIcon(":/res/vj.xpm")); setWindowTitle("Virtual Jaguar v2.0.0"); - QMenu * menu = menuBar()->addMenu(tr("&File")); - QToolBar * toolbar = addToolBar(tr("x1")); - /*QAction */ action = new QAction(tr("Toggle"), this); + // Create actions + + quitAppAct = new QAction(tr("E&xit"), this); + quitAppAct->setShortcuts(QKeySequence::Quit); + quitAppAct->setStatusTip(tr("Quit Virtual Jaguar")); + connect(quitAppAct, SIGNAL(triggered()), this, SLOT(close())); + + action = new QAction(QIcon(":/res/power.png"), tr("&Power"), this); action->setStatusTip(tr("Toggle running state")); action->setCheckable(true); - toolbar->addAction(action); connect(action, SIGNAL(triggered()), this, SLOT(ToggleRunState())); + + zoomActs = new QActionGroup(this); + + x1Act = new QAction(QIcon(":/res/zoom100.png"), tr("Zoom 100%"), zoomActs); + x1Act->setStatusTip(tr("Set window zoom to 100%")); + x1Act->setCheckable(true); +// connect(x1Act, SIGNAL(triggered()), this, SLOT(???())); + + x2Act = new QAction(QIcon(":/res/zoom200.png"), tr("Zoom 200%"), zoomActs); + x2Act->setStatusTip(tr("Set window zoom to 200%")); + x2Act->setCheckable(true); +// connect(x2Act, SIGNAL(triggered()), this, SLOT(???())); + + x3Act = new QAction(QIcon(":/res/zoom300.png"), tr("Zoom 300%"), zoomActs); + x3Act->setStatusTip(tr("Set window zoom to 300%")); + x3Act->setCheckable(true); +// connect(x3Act, SIGNAL(triggered()), this, SLOT(???())); + + blurAct = new QAction(QIcon(":/res/generic.png"), tr("Blur"), this); + blurAct->setStatusTip(tr("Sets OpenGL rendering to GL_NEAREST")); + blurAct->setCheckable(true); + connect(blurAct, SIGNAL(triggered()), this, SLOT(ToggleBlur())); + + // Create menus & toolbars + + QMenu * fileMenu = menuBar()->addMenu(tr("&File")); + fileMenu->addAction(action); + fileMenu->addAction(quitAppAct); + + QToolBar * toolbar = addToolBar(tr("Stuff")); + toolbar->addAction(action); + toolbar->addAction(x1Act); + toolbar->addAction(x2Act); + toolbar->addAction(x3Act); + toolbar->addAction(blurAct); #if 0 // createActions(); newAct = new QAction(QIcon(":/images/new.png"), tr("&New"), this); @@ -110,13 +147,13 @@ MainWin::MainWin(): running(true) statusBar()->showMessage(tr("Ready")); ReadSettings(); - -// connect(textEdit->document(), SIGNAL(contentsChanged()), -// this, SLOT(documentWasModified())); - -// setCurrentFile(""); setUnifiedTitleAndToolBarOnMac(true); + // Set toolbar button based on setting read in (sync the UI)... + blurAct->setChecked(vjs.glFilter); + x1Act->setChecked(true); + running = action->isChecked(); + // Set up timer based loop for animation... timer = new QTimer(this); connect(timer, SIGNAL(timeout()), this, SLOT(Timer())); @@ -140,9 +177,9 @@ void MainWin::Timer(void) // Random hash & trash // We try to simulate an untuned tank circuit here... :-) - for(int x=0; xrasterWidth; x++) + for(uint32_t x=0; xrasterWidth; x++) { - for(int y=0; yrasterHeight; y++) + for(uint32_t y=0; yrasterHeight; y++) { videoWidget->buffer[(y * videoWidget->textureWidth) + x] = (rand() & 0xFF) << 8 | (rand() & 0xFF) << 16 | (rand() & 0xFF) << 24;// | (rand() & 0xFF);//0x000000FF; // buffer[(y * textureWidth) + x] = x*y; @@ -155,6 +192,32 @@ void MainWin::Timer(void) void MainWin::ToggleRunState(void) { running = !running; + + if (!running) + { + for(uint32_t x=0; xrasterWidth; x++) + for(uint32_t y=0; yrasterHeight; y++) + videoWidget->buffer[(y * videoWidget->textureWidth) + x] = 0x00000000; + + videoWidget->updateGL(); + } +} + +void MainWin::SetZoom100(void) +{ +} + +void MainWin::SetZoom200(void) +{ +} + +void MainWin::SetZoom300(void) +{ +} + +void MainWin::ToggleBlur(void) +{ + vjs.glFilter = !vjs.glFilter; } void MainWin::ReadSettings(void) @@ -164,11 +227,18 @@ void MainWin::ReadSettings(void) QSize size = settings.value("size", QSize(400, 400)).toSize(); resize(size); move(pos); -//videoWidget->updateGL(); -// pos = settings.value("charWndPos", QPoint(0, 0)).toPoint(); -// size = settings.value("charWndSize", QSize(200, 200)).toSize(); -// ((TTEdit *)qApp)->charWnd->resize(size); -// ((TTEdit *)qApp)->charWnd->move(pos); + + vjs.useJoystick = settings.value("useJoystick", false).toBool(); + vjs.joyport = settings.value("joyport", 0).toInt(); + vjs.hardwareTypeNTSC = settings.value("hardwareTypeNTSC", true).toBool(); + vjs.frameSkip = settings.value("frameSkip", 0).toInt(); + vjs.useJaguarBIOS = settings.value("useJaguarBIOS", false).toBool(); + vjs.DSPEnabled = settings.value("DSPEnabled", false).toBool(); + vjs.usePipelinedDSP = settings.value("usePipelinedDSP", false).toBool(); + vjs.fullscreen = settings.value("fullscreen", false).toBool(); + vjs.useOpenGL = settings.value("useOpenGL", true).toBool(); + vjs.glFilter = settings.value("glFilterType", 0).toInt(); + vjs.renderType = settings.value("renderType", 0).toInt(); } void MainWin::WriteSettings(void) @@ -176,7 +246,17 @@ void MainWin::WriteSettings(void) QSettings settings("Underground Software", "Virtual Jaguar"); settings.setValue("pos", pos()); settings.setValue("size", size()); -// settings.setValue("charWndPos", ((TTEdit *)qApp)->charWnd->pos()); -// settings.setValue("charWndSize", ((TTEdit *)qApp)->charWnd->size()); + + settings.setValue("useJoystick", vjs.useJoystick); + settings.setValue("joyport", vjs.joyport); + settings.setValue("hardwareTypeNTSC", vjs.hardwareTypeNTSC); + settings.setValue("frameSkip", vjs.frameSkip); + settings.setValue("useJaguarBIOS", vjs.useJaguarBIOS); + settings.setValue("DSPEnabled", vjs.DSPEnabled); + settings.setValue("usePipelinedDSP", vjs.usePipelinedDSP); + settings.setValue("fullscreen", vjs.fullscreen); + settings.setValue("useOpenGL", vjs.useOpenGL); + settings.setValue("glFilterType", vjs.glFilter); + settings.setValue("renderType", vjs.renderType); } diff --git a/src/gui/mainwin.h b/src/gui/mainwin.h index 5f170db..781ac29 100644 --- a/src/gui/mainwin.h +++ b/src/gui/mainwin.h @@ -32,6 +32,10 @@ class MainWin: public QMainWindow void Open(void); void Timer(void); void ToggleRunState(void); + void SetZoom100(void); + void SetZoom200(void); + void SetZoom300(void); + void ToggleBlur(void); private: void ReadSettings(void); @@ -43,7 +47,14 @@ class MainWin: public QMainWindow bool running; // EditWindow * editWnd; // CharWindow * charWnd; + QActionGroup * zoomActs; + QAction * action; + QAction * quitAppAct; + QAction * x1Act; + QAction * x2Act; + QAction * x3Act; + QAction * blurAct; }; #endif // __MAINWIN_H__ diff --git a/src/gui/vj.pro b/src/gui/vj.pro index a14781c..106f79b 100644 --- a/src/gui/vj.pro +++ b/src/gui/vj.pro @@ -20,3 +20,5 @@ OBJECTS_DIR = ../../obj MOC_DIR = ../../obj RCC_DIR = ../../obj UI_DIR = ../../obj +#Nope, don't do dookey +#INCLUDES_DIR = .. diff --git a/src/gui/vj.qrc b/src/gui/vj.qrc index 65b1eab..159f890 100644 --- a/src/gui/vj.qrc +++ b/src/gui/vj.qrc @@ -1,5 +1,10 @@ ../../res/vj.xpm + ../../res/power.png + ../../res/zoom100.png + ../../res/zoom200.png + ../../res/zoom300.png + ../../res/generic.png diff --git a/src/settings.cpp b/src/settings.cpp index b273cf6..0ddf070 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -19,9 +19,6 @@ #include "sdlemu_config.h" #include "log.h" -// Temporary vars... -bool smoothGLOutput = false; - using namespace std; // Global variables diff --git a/src/settings.h b/src/settings.h index f998b8b..acc8c91 100644 --- a/src/settings.h +++ b/src/settings.h @@ -57,7 +57,4 @@ void SaveVJSettings(void); extern VJSettings vjs; -// Temporary vars... -extern bool smoothGLOutput; - #endif // __SETTINGS_H__ -- 2.37.2