diff --git a/main.cpp b/main.cpp index fd50496..ce3696d 100644 --- a/main.cpp +++ b/main.cpp @@ -13,8 +13,10 @@ int main(int argc, char *argv[]) parser.addHelpOption(); QCommandLineOption verboseOption({"v", "verbose"}, "Verbose mode. Prints out more information to log."); QCommandLineOption noGUIOption("nogui", "Disable GUI elements."); + QCommandLineOption GLESOption("gles", "Request an OpenGL ES Context."); parser.addOption(verboseOption); parser.addOption(noGUIOption); + parser.addOption(GLESOption); parser.addPositionalArgument("ROM", QCoreApplication::translate("main", "ROM to open.")); parser.process(a); const QStringList args = parser.positionalArguments(); @@ -25,6 +27,8 @@ int main(int argc, char *argv[]) w->setVerbose(); if (parser.isSet(noGUIOption)) w->setNoGUI(); + if (parser.isSet(GLESOption)) + w->setGLES(); if (args.size() > 0) w->openROM(args.at(0)); diff --git a/mainwindow.cpp b/mainwindow.cpp index e013c3d..3046070 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -250,6 +250,7 @@ MainWindow::MainWindow(QWidget *parent) : { verbose = 0; nogui = 0; + gles = 0; ui->setupUi(this); m_title = "mupen64plus-gui Build Date: "; @@ -350,6 +351,11 @@ void MainWindow::setNoGUI() statusBar()->hide(); } +void MainWindow::setGLES() +{ + gles = 1; +} + int MainWindow::getNoGUI() { return nogui; @@ -357,7 +363,12 @@ int MainWindow::getNoGUI() int MainWindow::getVerbose() { - return verbose; + return verbose; +} + +int MainWindow::getGLES() +{ + return gles; } void MainWindow::resizeMainWindow(int Width, int Height) diff --git a/mainwindow.h b/mainwindow.h index 3416548..1979d8d 100644 --- a/mainwindow.h +++ b/mainwindow.h @@ -22,6 +22,8 @@ class MainWindow : public QMainWindow int getVerbose(); void setNoGUI(); int getNoGUI(); + void setGLES(); + int getGLES(); void updatePlugins(); explicit MainWindow(QWidget *parent = 0); ~MainWindow(); @@ -84,6 +86,7 @@ private slots: QMenu * OpenRecent; int verbose; int nogui; + int gles; QString m_title; }; diff --git a/vidext.cpp b/vidext.cpp index 089181a..69fbed5 100644 --- a/vidext.cpp +++ b/vidext.cpp @@ -1,6 +1,7 @@ #include "vidext.h" #include "common.h" #include "workerthread.h" +#include "mainwindow.h" #include #include @@ -17,6 +18,8 @@ m64p_error qtVidExtFuncInit(void) format->setProfile(QSurfaceFormat::CompatibilityProfile); format->setMajorVersion(2); format->setMinorVersion(1); + if (w->getGLES()) + format->setRenderableType(QSurfaceFormat::OpenGLES); return M64ERR_SUCCESS; }