aboutsummaryrefslogtreecommitdiff
path: root/backends/graphics/openglsdl
diff options
context:
space:
mode:
authorJohannes Schickel2013-10-19 20:39:01 +0200
committerJohannes Schickel2013-10-19 22:18:22 +0200
commit05c347fc8ad8edc990c9d6e7c15a12d93bd8a3a3 (patch)
treeb799e0558717fc4ee57bfbaef8aed71dcea2539d /backends/graphics/openglsdl
parent37f71235529f8fd4a4c90389dc6a3b41e355f4a9 (diff)
downloadscummvm-rg350-05c347fc8ad8edc990c9d6e7c15a12d93bd8a3a3.tar.gz
scummvm-rg350-05c347fc8ad8edc990c9d6e7c15a12d93bd8a3a3.tar.bz2
scummvm-rg350-05c347fc8ad8edc990c9d6e7c15a12d93bd8a3a3.zip
OPENGL/SDL: Add screenshot support.
Diffstat (limited to 'backends/graphics/openglsdl')
-rw-r--r--backends/graphics/openglsdl/openglsdl-graphics.cpp23
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