diff options
author | Johannes Schickel | 2013-10-19 20:39:01 +0200 |
---|---|---|
committer | Johannes Schickel | 2013-10-19 22:18:22 +0200 |
commit | 05c347fc8ad8edc990c9d6e7c15a12d93bd8a3a3 (patch) | |
tree | b799e0558717fc4ee57bfbaef8aed71dcea2539d /backends/graphics/openglsdl/openglsdl-graphics.cpp | |
parent | 37f71235529f8fd4a4c90389dc6a3b41e355f4a9 (diff) | |
download | scummvm-rg350-05c347fc8ad8edc990c9d6e7c15a12d93bd8a3a3.tar.gz scummvm-rg350-05c347fc8ad8edc990c9d6e7c15a12d93bd8a3a3.tar.bz2 scummvm-rg350-05c347fc8ad8edc990c9d6e7c15a12d93bd8a3a3.zip |
OPENGL/SDL: Add screenshot support.
Diffstat (limited to 'backends/graphics/openglsdl/openglsdl-graphics.cpp')
-rw-r--r-- | backends/graphics/openglsdl/openglsdl-graphics.cpp | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/backends/graphics/openglsdl/openglsdl-graphics.cpp b/backends/graphics/openglsdl/openglsdl-graphics.cpp index a1a3e8590a..925237b75e 100644 --- a/backends/graphics/openglsdl/openglsdl-graphics.cpp +++ b/backends/graphics/openglsdl/openglsdl-graphics.cpp @@ -355,6 +355,26 @@ bool OpenGLSdlGraphicsManager::notifyEvent(const Common::Event &event) { #endif return true; } + + if (event.kbd.keycode == Common::KEYCODE_s) { + // Alt-s creates a screenshot + Common::String filename; + + for (int n = 0;; n++) { + SDL_RWops *file; + + filename = Common::String::format("scummvm%05d.bmp", n); + file = SDL_RWFromFile(filename.c_str(), "r"); + if (!file) + break; + SDL_RWclose(file); + } + + saveScreenshot(filename.c_str()); + debug("Saved screenshot '%s'", filename.c_str()); + + return true; + } } else if (event.kbd.hasFlags(Common::KBD_CTRL | Common::KBD_ALT)) { if ( event.kbd.keycode == Common::KEYCODE_PLUS || event.kbd.keycode == Common::KEYCODE_MINUS || event.kbd.keycode == Common::KEYCODE_KP_PLUS || event.kbd.keycode == Common::KEYCODE_KP_MINUS) { @@ -502,7 +522,8 @@ bool OpenGLSdlGraphicsManager::notifyEvent(const Common::Event &event) { bool OpenGLSdlGraphicsManager::isHotkey(const Common::Event &event) { if (event.kbd.hasFlags(Common::KBD_ALT)) { return event.kbd.keycode == Common::KEYCODE_RETURN - || event.kbd.keycode == (Common::KeyCode)SDLK_KP_ENTER; + || event.kbd.keycode == (Common::KeyCode)SDLK_KP_ENTER + || event.kbd.keycode == Common::KEYCODE_s; } else if (event.kbd.hasFlags(Common::KBD_CTRL | Common::KBD_ALT)) { return event.kbd.keycode == Common::KEYCODE_PLUS || event.kbd.keycode == Common::KEYCODE_MINUS || event.kbd.keycode == Common::KEYCODE_KP_PLUS || event.kbd.keycode == Common::KEYCODE_KP_MINUS |