1
0
mirror of https://github.com/libretro/RetroArch synced 2025-03-26 11:37:30 +00:00

(Xbox 1/XDK) Screenshot code implemented

This commit is contained in:
twinaphex 2012-08-20 03:30:09 +02:00
parent fda2dff40c
commit 6d5ed820e0
8 changed files with 37 additions and 12 deletions
Makefile.wii
console
msvc/RetroArch-Xbox1
retroarch.c
xdk/frontend

@ -51,7 +51,7 @@ CFLAGS += -DHAVE_FILE_LOGGER
CFLAGS += -Iconsole/logger CFLAGS += -Iconsole/logger
endif endif
CFLAGS += -std=gnu99 -DHAVE_DEFAULT_RETROPAD_INPUT -DHAVE_RGUI -DHAVE_THREAD -DRARCH_CONSOLE -DHAVE_LIBRETRO_MANAGEMENT -DHAVE_RARCH_EXEC -DHAVE_CONFIGFILE=1 -DGEKKO -DHW_RVL -DHAVE_ZLIB -DHAVE_RARCH_MAIN_WRAP -DHAVE_GRIFFIN=1 -DPACKAGE_VERSION=\"0.9.7-rc2\" -Dmain=rarch_main -Wno-char-subscripts CFLAGS += -std=gnu99 -DHAVE_DEFAULT_RETROPAD_INPUT -DHAVE_RGUI -DHAVE_THREAD -DRARCH_CONSOLE -DHAVE_LIBRETRO_MANAGEMENT -DHAVE_RARCH_EXEC -DHAVE_CONFIGFILE=1 -DGEKKO -DHW_RVL -DHAVE_ZLIB -DHAVE_RARCH_MAIN_WRAP -DHAVE_GRIFFIN=1 -DHAVE_SCREENSHOTS -DPACKAGE_VERSION=\"0.9.7-rc2\" -Dmain=rarch_main -Wno-char-subscripts
ifeq ($(DEBUG), 1) ifeq ($(DEBUG), 1)
CFLAGS += -O0 -g CFLAGS += -O0 -g

@ -291,6 +291,13 @@ NETPLAY
#include "../../netplay.c" #include "../../netplay.c"
#endif #endif
/*============================================================
SCREENSHOTS
============================================================ */
#ifdef HAVE_SCREENSHOTS
#include "../../screenshot.c"
#endif
/*============================================================ /*============================================================
MENU MENU
============================================================ */ ============================================================ */
@ -304,7 +311,6 @@ MENU
#endif #endif
#ifdef HAVE_RGUI #ifdef HAVE_RGUI
#include "../../screenshot.c"
#include "../rgui/rgui.c" #include "../rgui/rgui.c"
#include "../rgui/list.c" #include "../rgui/list.c"
#endif #endif

@ -73,7 +73,11 @@ enum
SOUND_MODE_LAST SOUND_MODE_LAST
}; };
#ifdef _WIN32
#define MAXIMUM_PATH 260
#else
#define MAXIMUM_PATH 512 #define MAXIMUM_PATH 512
#endif
typedef struct typedef struct
{ {
@ -90,6 +94,7 @@ typedef struct
char filebrowser_startup_dir[MAXIMUM_PATH]; char filebrowser_startup_dir[MAXIMUM_PATH];
char filesystem_root_dir[MAXIMUM_PATH]; char filesystem_root_dir[MAXIMUM_PATH];
char input_presets_dir[MAXIMUM_PATH]; char input_presets_dir[MAXIMUM_PATH];
char screenshots_dir[MAXIMUM_PATH];
#ifdef HAVE_MULTIMAN #ifdef HAVE_MULTIMAN
char multiman_self_file[MAXIMUM_PATH]; char multiman_self_file[MAXIMUM_PATH];
#endif #endif

@ -15,6 +15,7 @@
*/ */
#include "../rmenu.h" #include "../rmenu.h"
#include "../../screenshot.h"
#include "../../gfx/context/xdk_ctx.h" #include "../../gfx/context/xdk_ctx.h"
#define ROM_PANEL_WIDTH 510 #define ROM_PANEL_WIDTH 510
@ -153,7 +154,19 @@ static void rmenu_ctx_xdk_screenshot_enable(bool enable)
static void rmenu_ctx_xdk_screenshot_dump(void *data) static void rmenu_ctx_xdk_screenshot_dump(void *data)
{ {
(void)data; xdk_d3d_video_t *d3d = (xdk_d3d_video_t*)driver.video_data;
char filename[PATH_MAX];
char shotname[PATH_MAX];
screenshot_generate_filename(shotname, sizeof(shotname));
snprintf(filename, sizeof(filename), "%s\\%s", default_paths.screenshots_dir, shotname);
D3DSurface *surf = NULL;
d3d->d3d_render_device->GetBackBuffer(-1, D3DBACKBUFFER_TYPE_MONO, &surf);
XGWriteSurfaceToFile(surf, filename);
surf->Release();
msg_queue_push(g_extern.msg_queue, "Screenshot saved.", 1, 30);
} }
const rmenu_context_t rmenu_ctx_xdk = { const rmenu_context_t rmenu_ctx_xdk = {

@ -22,7 +22,7 @@
Optimization="3" Optimization="3"
OptimizeForProcessor="2" OptimizeForProcessor="2"
AdditionalIncludeDirectories=""$(SolutionDir)\msvc-stdint";"$(SolutionDir)\msvc-71"" AdditionalIncludeDirectories=""$(SolutionDir)\msvc-stdint";"$(SolutionDir)\msvc-71""
PreprocessorDefinitions="_DEBUG;_XBOX;_XBOX1;HAVE_RMENU;RARCH_CONSOLE;HAVE_XINPUT_XBOX1;PACKAGE_VERSION=\"0.9.7-rc1\";__STDC_CONSTANT_MACROS;HAVE_ZLIB;HAVE_GRIFFIN;HAVE_RARCH_MAIN_WRAP;HAVE_LIBRETRO_MANAGEMENT;HAVE_RARCH_EXEC;HAVE_DEFAULT_RETROPAD_INPUT;HAVE_CONFIGFILE;HAVE_VID_CONTEXT;HAVE_DSOUND;HAVE_D3D8;HAVE_FILEBROWSER" PreprocessorDefinitions="_DEBUG;_XBOX;_XBOX1;HAVE_RMENU;RARCH_CONSOLE;HAVE_XINPUT_XBOX1;PACKAGE_VERSION=\"0.9.7-rc1\";__STDC_CONSTANT_MACROS;HAVE_ZLIB;HAVE_GRIFFIN;HAVE_RARCH_MAIN_WRAP;HAVE_LIBRETRO_MANAGEMENT;HAVE_RARCH_EXEC;HAVE_DEFAULT_RETROPAD_INPUT;HAVE_CONFIGFILE;HAVE_VID_CONTEXT;HAVE_DSOUND;HAVE_D3D8;HAVE_FILEBROWSER;HAVE_SCREENSHOTS"
MinimalRebuild="TRUE" MinimalRebuild="TRUE"
BasicRuntimeChecks="0" BasicRuntimeChecks="0"
RuntimeLibrary="1" RuntimeLibrary="1"
@ -72,7 +72,7 @@
OmitFramePointers="TRUE" OmitFramePointers="TRUE"
OptimizeForProcessor="2" OptimizeForProcessor="2"
AdditionalIncludeDirectories=""$(SolutionDir)\msvc-stdint";"$(SolutionDir)\msvc-71"" AdditionalIncludeDirectories=""$(SolutionDir)\msvc-stdint";"$(SolutionDir)\msvc-71""
PreprocessorDefinitions="NDEBUG;_XBOX;_XBOX1;HAVE_RMENU;RARCH_CONSOLE;HAVE_XINPUT_XBOX1;PACKAGE_VERSION=\"0.9.7-rc1\";__STDC_CONSTANT_MACROS;HAVE_ZLIB;PROFILE;HAVE_GRIFFIN;HAVE_RARCH_MAIN_WRAP;HAVE_LIBRETRO_MANAGEMENT;HAVE_RARCH_EXEC;HAVE_DEFAULT_RETROPAD_INPUT;HAVE_CONFIGFILE;HAVE_VID_CONTEXT;HAVE_DSOUND;HAVE_D3D8;HAVE_FILEBROWSER" PreprocessorDefinitions="NDEBUG;_XBOX;_XBOX1;HAVE_RMENU;RARCH_CONSOLE;HAVE_XINPUT_XBOX1;PACKAGE_VERSION=\"0.9.7-rc1\";__STDC_CONSTANT_MACROS;HAVE_ZLIB;PROFILE;HAVE_GRIFFIN;HAVE_RARCH_MAIN_WRAP;HAVE_LIBRETRO_MANAGEMENT;HAVE_RARCH_EXEC;HAVE_DEFAULT_RETROPAD_INPUT;HAVE_CONFIGFILE;HAVE_VID_CONTEXT;HAVE_DSOUND;HAVE_D3D8;HAVE_FILEBROWSER;HAVE_SCREENSHOTS"
StringPooling="TRUE" StringPooling="TRUE"
RuntimeLibrary="0" RuntimeLibrary="0"
BufferSecurityCheck="TRUE" BufferSecurityCheck="TRUE"
@ -127,7 +127,7 @@
OmitFramePointers="TRUE" OmitFramePointers="TRUE"
OptimizeForProcessor="2" OptimizeForProcessor="2"
AdditionalIncludeDirectories=""$(SolutionDir)\msvc-stdint";"$(SolutionDir)\msvc-71"" AdditionalIncludeDirectories=""$(SolutionDir)\msvc-stdint";"$(SolutionDir)\msvc-71""
PreprocessorDefinitions="NDEBUG;_XBOX;_XBOX1;HAVE_RMENU;RARCH_CONSOLE;HAVE_XINPUT_XBOX1;PACKAGE_VERSION=\"0.9.7-rc1\";__STDC_CONSTANT_MACROS;HAVE_ZLIB;PROFILE;FASTCAP;HAVE_GRIFFIN;HAVE_RARCH_MAIN_WRAP;HAVE_LIBRETRO_MANAGEMENT;HAVE_RARCH_EXEC;HAVE_DEFAULT_RETROPAD_INPUT;HAVE_CONFIGFILE;HAVE_VID_CONTEXT;HAVE_DSOUND;HAVE_D3D8;HAVE_FILEBROWSER" PreprocessorDefinitions="NDEBUG;_XBOX;_XBOX1;HAVE_RMENU;RARCH_CONSOLE;HAVE_XINPUT_XBOX1;PACKAGE_VERSION=\"0.9.7-rc1\";__STDC_CONSTANT_MACROS;HAVE_ZLIB;PROFILE;FASTCAP;HAVE_GRIFFIN;HAVE_RARCH_MAIN_WRAP;HAVE_LIBRETRO_MANAGEMENT;HAVE_RARCH_EXEC;HAVE_DEFAULT_RETROPAD_INPUT;HAVE_CONFIGFILE;HAVE_VID_CONTEXT;HAVE_DSOUND;HAVE_D3D8;HAVE_FILEBROWSER;HAVE_SCREENSHOTS"
StringPooling="TRUE" StringPooling="TRUE"
RuntimeLibrary="0" RuntimeLibrary="0"
BufferSecurityCheck="TRUE" BufferSecurityCheck="TRUE"
@ -188,7 +188,7 @@
EnableFiberSafeOptimizations="TRUE" EnableFiberSafeOptimizations="TRUE"
OptimizeForProcessor="2" OptimizeForProcessor="2"
AdditionalIncludeDirectories=""$(SolutionDir)\msvc-stdint";"$(SolutionDir)\msvc-71"" AdditionalIncludeDirectories=""$(SolutionDir)\msvc-stdint";"$(SolutionDir)\msvc-71""
PreprocessorDefinitions="NDEBUG;_XBOX;_XBOX1;HAVE_RMENU;RARCH_CONSOLE;HAVE_XINPUT_XBOX1;PACKAGE_VERSION=\"0.9.7-rc1\";__STDC_CONSTANT_MACROS;HAVE_ZLIB;HAVE_GRIFFIN;inline=_inline;HAVE_RARCH_MAIN_WRAP;HAVE_LIBRETRO_MANAGEMENT;HAVE_RARCH_EXEC;HAVE_DEFAULT_RETROPAD_INPUT;HAVE_CONFIGFILE;HAVE_VID_CONTEXT;HAVE_DSOUND;HAVE_D3D8;HAVE_FILEBROWSER" PreprocessorDefinitions="NDEBUG;_XBOX;_XBOX1;HAVE_RMENU;RARCH_CONSOLE;HAVE_XINPUT_XBOX1;PACKAGE_VERSION=\"0.9.7-rc1\";__STDC_CONSTANT_MACROS;HAVE_ZLIB;HAVE_GRIFFIN;inline=_inline;HAVE_RARCH_MAIN_WRAP;HAVE_LIBRETRO_MANAGEMENT;HAVE_RARCH_EXEC;HAVE_DEFAULT_RETROPAD_INPUT;HAVE_CONFIGFILE;HAVE_VID_CONTEXT;HAVE_DSOUND;HAVE_D3D8;HAVE_FILEBROWSER;HAVE_SCREENSHOTS"
StringPooling="TRUE" StringPooling="TRUE"
RuntimeLibrary="0" RuntimeLibrary="0"
BufferSecurityCheck="TRUE" BufferSecurityCheck="TRUE"
@ -241,7 +241,7 @@
OmitFramePointers="TRUE" OmitFramePointers="TRUE"
OptimizeForProcessor="2" OptimizeForProcessor="2"
AdditionalIncludeDirectories=""$(SolutionDir)\msvc-stdint";"$(SolutionDir)\msvc-71"" AdditionalIncludeDirectories=""$(SolutionDir)\msvc-stdint";"$(SolutionDir)\msvc-71""
PreprocessorDefinitions="NDEBUG;_XBOX;_XBOX1;HAVE_RMENU;RARCH_CONSOLE;HAVE_XINPUT_XBOX1;PACKAGE_VERSION=\"0.9.7-rc1\";__STDC_CONSTANT_MACROS;HAVE_ZLIB;LTCG;HAVE_GRIFFIN;HAVE_RARCH_MAIN_WRAP;HAVE_LIBRETRO_MANAGEMENT;HAVE_RARCH_EXEC;HAVE_DEFAULT_RETROPAD_INPUT;HAVE_CONFIGFILE;HAVE_VID_CONTEXT;HAVE_DSOUND;HAVE_D3D8;HAVE_FILEBROWSER" PreprocessorDefinitions="NDEBUG;_XBOX;_XBOX1;HAVE_RMENU;RARCH_CONSOLE;HAVE_XINPUT_XBOX1;PACKAGE_VERSION=\"0.9.7-rc1\";__STDC_CONSTANT_MACROS;HAVE_ZLIB;LTCG;HAVE_GRIFFIN;HAVE_RARCH_MAIN_WRAP;HAVE_LIBRETRO_MANAGEMENT;HAVE_RARCH_EXEC;HAVE_DEFAULT_RETROPAD_INPUT;HAVE_CONFIGFILE;HAVE_VID_CONTEXT;HAVE_DSOUND;HAVE_D3D8;HAVE_FILEBROWSER;HAVE_SCREENSHOTS"
StringPooling="TRUE" StringPooling="TRUE"
RuntimeLibrary="0" RuntimeLibrary="0"
BufferSecurityCheck="TRUE" BufferSecurityCheck="TRUE"
@ -275,7 +275,7 @@
<Tool <Tool
Name="XboxDeploymentTool" Name="XboxDeploymentTool"
RemotePath="xe:\$(SolutionName)\CORE.xbe" RemotePath="xe:\$(SolutionName)\CORE.xbe"
AdditionalFiles="..\..\xbox1\Media;roms;system" AdditionalFiles="..\..\xbox1\Media;roms;system;screenshots"
ForceCopy="TRUE"/> ForceCopy="TRUE"/>
<Tool <Tool
Name="XboxImageTool" Name="XboxImageTool"

@ -88,7 +88,7 @@ static void set_fast_forward_button(bool new_button_state, bool new_hold_button_
old_hold_button_state = new_hold_button_state; old_hold_button_state = new_hold_button_state;
} }
#ifdef HAVE_SCREENSHOTS #if defined(HAVE_SCREENSHOTS) && !defined(_XBOX)
static bool take_screenshot_viewport(void) static bool take_screenshot_viewport(void)
{ {
unsigned width = 0, height = 0; unsigned width = 0, height = 0;
@ -2237,7 +2237,7 @@ static void check_cheats(void)
} }
#endif #endif
#ifdef HAVE_SCREENSHOTS #if defined(HAVE_SCREENSHOTS) && !defined(_XBOX)
static void check_screenshot(void) static void check_screenshot(void)
{ {
static bool old_pressed = false; static bool old_pressed = false;
@ -2301,7 +2301,7 @@ static void check_netplay_flip(void)
static void do_state_checks(void) static void do_state_checks(void)
{ {
#ifdef HAVE_SCREENSHOTS #if defined(HAVE_SCREENSHOTS) && !defined(_XBOX)
check_screenshot(); check_screenshot();
#endif #endif
#ifndef RARCH_CONSOLE #ifndef RARCH_CONSOLE

@ -112,6 +112,7 @@ static void get_environment_settings (void)
strlcpy(default_paths.filesystem_root_dir, "D:", sizeof(default_paths.filesystem_root_dir)); strlcpy(default_paths.filesystem_root_dir, "D:", sizeof(default_paths.filesystem_root_dir));
strlcpy(default_paths.executable_extension, ".xbe", sizeof(default_paths.executable_extension)); strlcpy(default_paths.executable_extension, ".xbe", sizeof(default_paths.executable_extension));
strlcpy(default_paths.filebrowser_startup_dir, "D:", sizeof(default_paths.filebrowser_startup_dir)); strlcpy(default_paths.filebrowser_startup_dir, "D:", sizeof(default_paths.filebrowser_startup_dir));
strlcpy(default_paths.screenshots_dir, "D:\\screenshots", sizeof(default_paths.screenshots_dir));
#elif defined(_XBOX360) #elif defined(_XBOX360)
#ifdef HAVE_HDD_CACHE_PARTITION #ifdef HAVE_HDD_CACHE_PARTITION
strlcpy(default_paths.cache_dir, "cache:\\", sizeof(default_paths.cache_dir)); strlcpy(default_paths.cache_dir, "cache:\\", sizeof(default_paths.cache_dir));