diff --git a/lang/german.ts b/lang/german.ts index 33c02857..2f4007a5 100644 --- a/lang/german.ts +++ b/lang/german.ts @@ -1,6 +1,5 @@ - @default @@ -203,57 +202,57 @@ Über &Qt... - + This program is licensed under terms of the GNU General Public License. Dieses Programm ist unter den Bedingungen der GNU General Public License lizenziert. - + OpenGL version 2.1 is present. OpenGL Version 2.1 ist verfügbar. - + OpenGL version 2.0 is present. OpenGL Version 2.0 ist verfügbar. - + OpenGL version 1.5 is present. OpenGL Version 1.5 ist verfügbar. - + OpenGL version 1.4 is present. OpenGL Version 1.4 ist verfügbar. - + OpenGL version 1.3 is present. OpenGL Version 1.3 ist verfügbar. - + OpenGL version 1.2 is present. OpenGL Version 1.2 ist verfügbar. - + OpenGL version 1.1 is present. OpenGL Version 1.1 ist verfügbar. - + OpenGL is NOT available! OpenGL ist NICHT verfügbar! - + About VBA-M Über VBA-M - + About OpenGL Über OpenGL @@ -273,42 +272,42 @@ Übersetzungsdateien (*.qm) - + .qm - + Exit Beenden - + Select language... Sprache auswählen... - + Select language Sprache auswählen - + Language files (*.qm) Sprachdateien (*.qm) - + Error! Fehler! - + Language file can not be loaded! Sprachdatei kann nicht geladen werden! - + Enable translation Übersetzung aktivieren @@ -320,85 +319,95 @@ No language file loaded. Deutsche Übersetzung von spacy. - + Cheats - + Show cheats sidebar Cheats-Seitenleiste anzeigen - + File Datei - + Open ROM ROM laden - + Settings Einstellungen - + Main options... Optionen... - + Tools Werkzeuge - + Help Hilfe - + About VBA-M... Über VBA-M... - + About OpenGL... Über OpenGL... - + About Qt... Über Qt... Enter ROM loader code here. - Funktionalität noch nicht vorhanden. + Funktionalität noch nicht vorhanden. - - Status - - - - + Version Version - + Compile date: Bau-Datum: - + No language file loaded. Deutsche Übersetzung von spacy. + + + Select ROM + Bitte ROM auswählen + + + + Game Boy Advance ROMs (*.gba);;All Files (*.*) + Game Boy Advance ROMs (*.gba);;Alle Dateien (*.*) + + + + Can not load ROM! + ROM kann nicht geladen werden! + VideoOptionsPage @@ -415,17 +424,17 @@ Deutsche Übersetzung von spacy. OGL - OpenGL + OpenGL D3D - Direct3D + Direct3D QPainter - QPainter (Qt) + QPainter (Qt) diff --git a/project/qmake/vba-m.pro b/project/qmake/vba-m.pro index bc87ec10..1981c52b 100644 --- a/project/qmake/vba-m.pro +++ b/project/qmake/vba-m.pro @@ -37,3 +37,6 @@ SOURCES += ../../src/qt/configdialog.cpp HEADERS += ../../src/qt/EmuManager.h SOURCES += ../../src/qt/EmuManager.cpp + +HEADERS += ../../src/qt/GraphicsOutput.h +SOURCES += ../../src/qt/GraphicsOutput.cpp diff --git a/project/vc2008/vba-m.vcproj b/project/vc2008/vba-m.vcproj index f4697cd4..d2d237ce 100644 --- a/project/vc2008/vba-m.vcproj +++ b/project/vc2008/vba-m.vcproj @@ -132,6 +132,18 @@ + + + + + + addItem(tr("OGL")); - RenderCombo->addItem(tr("D3D")); - RenderCombo->addItem(tr("QPainter")); + RenderCombo->addItem("OpenGL"); + //RenderCombo->addItem(tr("D3D")); + RenderCombo->addItem("QPainter"); QHBoxLayout *RenderLayout = new QHBoxLayout; RenderLayout->addWidget(RenderLabel); diff --git a/src/qt/MainWnd.cpp b/src/qt/MainWnd.cpp index 0ecacb6f..4ad69ced 100644 --- a/src/qt/MainWnd.cpp +++ b/src/qt/MainWnd.cpp @@ -19,7 +19,7 @@ #include "MainWnd.h" #include "version.h" -#include "glwidget.h" +//#include "glwidget.h" #include "configdialog.h" #include "sidewidget_cheats.h" @@ -34,7 +34,8 @@ MainWnd::MainWnd( QTranslator **trans, QSettings *settings, QWidget *parent ) helpMenu( 0 ), enableTranslationAct( 0 ), dockWidget_cheats( 0 ), - emuManager( 0 ) + emuManager( 0 ), + graphicsOutput( 0 ) { createDisplay(); setMinimumSize( 320, 240 ); @@ -56,6 +57,11 @@ MainWnd::~MainWnd() delete emuManager; emuManager = 0; } + + if( graphicsOutput != 0 ) { + delete graphicsOutput; + graphicsOutput = 0; + } } @@ -188,15 +194,24 @@ void MainWnd::createDockWidgets() bool MainWnd::createDisplay() { - if( !QGLFormat::hasOpenGL() ) return false; - - GLWidget *ogl = new GLWidget( this ); - if( ogl->isValid() ) { - setCentralWidget( ogl ); - return true; + if( graphicsOutput != 0 ) { + delete graphicsOutput; + graphicsOutput = 0; } - return false; + graphicsOutput = new GraphicsOutput( this ); + + if( !graphicsOutput->setAPI( GraphicsOutput::QPAINTER ) ) return false; + + setCentralWidget( graphicsOutput ); + + QTimer *timer = new QTimer( this ); + connect( timer, SIGNAL( timeout() ), graphicsOutput, SLOT( render() ) ); + timer->start( 15 ); // set to 0 for idle time processing + // 1000 / 60 = 60 fps, but only results to 40 fps in reality. + // possible workaround: call timer more often and return or wait if too early + + return true; } diff --git a/src/qt/MainWnd.h b/src/qt/MainWnd.h index 124e03ec..24f45e57 100644 --- a/src/qt/MainWnd.h +++ b/src/qt/MainWnd.h @@ -22,6 +22,7 @@ #include "precompile.h" #include "EmuManager.h" +#include "GraphicsOutput.h" class MainWnd : public QMainWindow { @@ -53,6 +54,7 @@ private: QMenu *helpMenu; QDockWidget *dockWidget_cheats; EmuManager *emuManager; + GraphicsOutput *graphicsOutput; private slots: bool selectLanguage();