parent
8a87b25fdc
commit
ab59623930
4 changed files with 42 additions and 0 deletions
|
@ -554,6 +554,25 @@ bool OSystem_SDL_Common::poll_event(Event *event) {
|
|||
break;
|
||||
}
|
||||
|
||||
if (b == KBD_ALT && ev.key.keysym.sym == 's') {
|
||||
char filename[20];
|
||||
|
||||
for (int n = 0;; n++) {
|
||||
SDL_RWops *file;
|
||||
|
||||
sprintf(filename, "scummvm%05d.bmp", n);
|
||||
file = SDL_RWFromFile(filename, "r");
|
||||
if (!file)
|
||||
break;
|
||||
SDL_RWclose(file);
|
||||
}
|
||||
if (save_screenshot(filename))
|
||||
printf("Saved '%s'\n", filename);
|
||||
else
|
||||
printf("Could not save screenshot!\n");
|
||||
break;
|
||||
}
|
||||
|
||||
#ifdef MACOSX
|
||||
// On Macintosh', Cmd-Q quits
|
||||
if ((ev.key.keysym.mod & KMOD_META) && ev.key.keysym.sym=='q') {
|
||||
|
|
|
@ -225,6 +225,8 @@ protected:
|
|||
virtual void load_gfx_mode() = 0;
|
||||
virtual void unload_gfx_mode() = 0;
|
||||
|
||||
virtual bool save_screenshot(const char *filename) = 0;
|
||||
|
||||
void setup_icon();
|
||||
void kbd_mouse();
|
||||
void init_joystick() { _joystick = SDL_JoystickOpen(0); }
|
||||
|
|
|
@ -42,6 +42,7 @@ protected:
|
|||
|
||||
virtual void load_gfx_mode();
|
||||
virtual void unload_gfx_mode();
|
||||
virtual bool save_screenshot(const char *filename);
|
||||
void hotswap_gfx_mode();
|
||||
};
|
||||
|
||||
|
@ -376,3 +377,10 @@ uint32 OSystem_SDL::property(int param, Property *value) {
|
|||
return OSystem_SDL_Common::property(param, value);
|
||||
}
|
||||
|
||||
bool OSystem_SDL::save_screenshot(const char *filename) {
|
||||
assert(_hwscreen != NULL);
|
||||
|
||||
StackLock lock(_graphicsMutex, this); // Lock the mutex until this function ends
|
||||
SDL_SaveBMP(_hwscreen, filename);
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -64,6 +64,7 @@ protected:
|
|||
|
||||
virtual void load_gfx_mode();
|
||||
virtual void unload_gfx_mode();
|
||||
virtual bool save_screenshot(const char *filename);
|
||||
void hotswap_gfx_mode();
|
||||
};
|
||||
|
||||
|
@ -668,3 +669,15 @@ uint32 OSystem_SDL_OpenGL::property(int param, Property *value) {
|
|||
|
||||
return OSystem_SDL_Common::property(param, value);
|
||||
}
|
||||
|
||||
bool OSystem_SDL_OpenGL::save_screenshot(const char *filename) {
|
||||
// FIXME: I don't know how to do this yet.
|
||||
if (_usingOpenGL)
|
||||
return false;
|
||||
|
||||
StackLock lock(_graphicsMutex, this); // Lock the mutex until this function ends
|
||||
|
||||
assert(_hwscreen != NULL);
|
||||
SDL_SaveBMP(_hwscreen, filename);
|
||||
return true;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue