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;
|
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
|
#ifdef MACOSX
|
||||||
// On Macintosh', Cmd-Q quits
|
// On Macintosh', Cmd-Q quits
|
||||||
if ((ev.key.keysym.mod & KMOD_META) && ev.key.keysym.sym=='q') {
|
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 load_gfx_mode() = 0;
|
||||||
virtual void unload_gfx_mode() = 0;
|
virtual void unload_gfx_mode() = 0;
|
||||||
|
|
||||||
|
virtual bool save_screenshot(const char *filename) = 0;
|
||||||
|
|
||||||
void setup_icon();
|
void setup_icon();
|
||||||
void kbd_mouse();
|
void kbd_mouse();
|
||||||
void init_joystick() { _joystick = SDL_JoystickOpen(0); }
|
void init_joystick() { _joystick = SDL_JoystickOpen(0); }
|
||||||
|
|
|
@ -42,6 +42,7 @@ protected:
|
||||||
|
|
||||||
virtual void load_gfx_mode();
|
virtual void load_gfx_mode();
|
||||||
virtual void unload_gfx_mode();
|
virtual void unload_gfx_mode();
|
||||||
|
virtual bool save_screenshot(const char *filename);
|
||||||
void hotswap_gfx_mode();
|
void hotswap_gfx_mode();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -376,3 +377,10 @@ uint32 OSystem_SDL::property(int param, Property *value) {
|
||||||
return OSystem_SDL_Common::property(param, 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 load_gfx_mode();
|
||||||
virtual void unload_gfx_mode();
|
virtual void unload_gfx_mode();
|
||||||
|
virtual bool save_screenshot(const char *filename);
|
||||||
void hotswap_gfx_mode();
|
void hotswap_gfx_mode();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -668,3 +669,15 @@ uint32 OSystem_SDL_OpenGL::property(int param, Property *value) {
|
||||||
|
|
||||||
return OSystem_SDL_Common::property(param, 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