all repos — mgba @ 23592af3cc861229ff96d5fb7e2cdbdf0aa91da7

mGBA Game Boy Advance Emulator

Add screenshot support
Jeffrey Pfau jeffrey@endrift.com
Sat, 18 Oct 2014 16:37:05 -0700
commit

23592af3cc861229ff96d5fb7e2cdbdf0aa91da7

parent

9efd8f245235c9786299f16a9a38bc1409ed3623

3 files changed, 21 insertions(+), 0 deletions(-)

jump to
M src/platform/qt/Display.cppsrc/platform/qt/Display.cpp

@@ -64,6 +64,14 @@ QMetaObject::invokeMethod(m_painter, "forceDraw", Qt::QueuedConnection);

} } +#ifdef USE_PNG +void Display::screenshot() { + GBAThreadInterrupt(m_context); + GBAThreadTakeScreenshot(m_context); + GBAThreadContinue(m_context); +} +#endif + void Display::initializeGL() { glClearColor(0, 0, 0, 0); glClear(GL_COLOR_BUFFER_BIT);
M src/platform/qt/Display.hsrc/platform/qt/Display.h

@@ -20,6 +20,9 @@ public slots:

void startDrawing(const uint32_t* buffer, GBAThread* context); void stopDrawing(); void forceDraw(); +#ifdef USE_PNG + void screenshot(); +#endif protected: virtual void initializeGL() override;
M src/platform/qt/Window.cppsrc/platform/qt/Window.cpp

@@ -241,6 +241,16 @@ void Window::setupMenu(QMenuBar* menubar) {

menubar->clear(); QMenu* fileMenu = menubar->addMenu(tr("&File")); fileMenu->addAction(tr("Load &ROM..."), this, SLOT(selectROM()), QKeySequence::Open); + fileMenu->addSeparator(); + +#ifdef USE_PNG + QAction* screenshot = new QAction(tr("Take &screenshot"), fileMenu); + screenshot->setShortcut(tr("F12")); + connect(screenshot, SIGNAL(triggered()), m_display, SLOT(screenshot())); + m_gameActions.append(screenshot); + fileMenu->addAction(screenshot); +#endif + #ifndef Q_OS_MAC fileMenu->addSeparator(); fileMenu->addAction(tr("E&xit"), this, SLOT(close()), QKeySequence::Quit);