diff --git a/console/rmenu/context/rmenu_ctx_ps3.c b/console/rmenu/context/rmenu_ctx_ps3.c
index ca569416ea..821bc28851 100644
--- a/console/rmenu/context/rmenu_ctx_ps3.c
+++ b/console/rmenu/context/rmenu_ctx_ps3.c
@@ -14,6 +14,11 @@
* If not, see .
*/
+#if defined(__CELLOS_LV2__)
+#include
+#include
+#endif
+
#ifdef HAVE_SYSUTILS
#include
#endif
@@ -113,6 +118,32 @@ static void rmenu_ctx_ps3_render_menu_enable(bool enable)
gl->menu_render = enable;
}
+static void rmenu_ctx_ps3_screenshot_enable(bool enable)
+{
+#if(CELL_SDK_VERSION > 0x340000)
+ if(enable)
+ {
+ cellSysmoduleLoadModule(CELL_SYSMODULE_SYSUTIL_SCREENSHOT);
+ CellScreenShotSetParam screenshot_param = {0, 0, 0, 0};
+
+ screenshot_param.photo_title = "RetroArch PS3";
+ screenshot_param.game_title = "RetroArch PS3";
+ cellScreenShotSetParameter (&screenshot_param);
+ cellScreenShotEnable();
+ }
+ else
+ {
+ cellScreenShotDisable();
+ cellSysmoduleUnloadModule(CELL_SYSMODULE_SYSUTIL_SCREENSHOT);
+ }
+#endif
+}
+
+static void rmenu_ctx_ps3_screenshot_dump(void *data)
+{
+ (void)data;
+}
+
const rmenu_context_t rmenu_ctx_ps3 = {
.clear = rmenu_ctx_ps3_clear,
.blend = rmenu_ctx_ps3_blend,
@@ -122,6 +153,8 @@ const rmenu_context_t rmenu_ctx_ps3 = {
.render_bg = rmenu_ctx_ps3_render_bg,
.render_menu_enable = rmenu_ctx_ps3_render_menu_enable,
.render_msg = rmenu_ctx_ps3_render_msg,
+ .screenshot_enable = rmenu_ctx_ps3_screenshot_enable,
+ .screenshot_dump = rmenu_ctx_ps3_screenshot_dump,
.swap_buffers = rmenu_ctx_ps3_swap_buffers,
.set_default_pos = rmenu_ctx_ps3_set_default_pos,
};
diff --git a/console/rmenu/context/rmenu_ctx_xdk.c b/console/rmenu/context/rmenu_ctx_xdk.c
index bb79b1f590..cd74017386 100644
--- a/console/rmenu/context/rmenu_ctx_xdk.c
+++ b/console/rmenu/context/rmenu_ctx_xdk.c
@@ -147,6 +147,15 @@ static void rmenu_ctx_xdk_render_menu_enable(bool enable)
{
}
+static void rmenu_ctx_xdk_screenshot_enable(bool enable)
+{
+}
+
+static void rmenu_ctx_xdk_screenshot_dump(void *data)
+{
+ (void)data;
+}
+
const rmenu_context_t rmenu_ctx_xdk = {
rmenu_ctx_xdk_clear,
rmenu_ctx_xdk_blend,
@@ -156,6 +165,8 @@ const rmenu_context_t rmenu_ctx_xdk = {
rmenu_ctx_xdk_render_bg,
rmenu_ctx_xdk_render_menu_enable,
rmenu_ctx_xdk_render_msg,
+ rmenu_ctx_xdk_screenshot_enable,
+ rmenu_ctx_xdk_screenshot_dump,
rmenu_ctx_xdk_swap_buffers,
rmenu_ctx_xdk_set_default_pos,
};
diff --git a/console/rmenu/rmenu.c b/console/rmenu/rmenu.c
index 61da5fb06d..93f2699b83 100644
--- a/console/rmenu/rmenu.c
+++ b/console/rmenu/rmenu.c
@@ -16,7 +16,6 @@
#if defined(__CELLOS_LV2__)
#include
-#include
#if(CELL_SDK_VERSION > 0x340000)
#include
@@ -1374,30 +1373,13 @@ static void producesettingentry(menu *current_menu, unsigned switchvalue, uint64
case SETTING_ENABLE_SCREENSHOTS:
if((input & (1 << RMENU_DEVICE_NAV_LEFT)) || (input & (1 << RMENU_DEVICE_NAV_RIGHT)) || (input & (1 << RMENU_DEVICE_NAV_B)))
{
-#if(CELL_SDK_VERSION > 0x340000)
- g_console.screenshots_enable = !g_console.screenshots_enable;
- if(g_console.screenshots_enable)
- {
- cellSysmoduleLoadModule(CELL_SYSMODULE_SYSUTIL_SCREENSHOT);
- CellScreenShotSetParam screenshot_param = {0, 0, 0, 0};
-
- screenshot_param.photo_title = "RetroArch PS3";
- screenshot_param.game_title = "RetroArch PS3";
- cellScreenShotSetParameter (&screenshot_param);
- cellScreenShotEnable();
- }
- else
- {
- cellScreenShotDisable();
- cellSysmoduleUnloadModule(CELL_SYSMODULE_SYSUTIL_SCREENSHOT);
- }
-#endif
+ g_console.screenshots_enable = !g_console.screenshots_enable;
+ context->screenshot_enable(g_console.screenshots_enable);
}
if(input & (1 << RMENU_DEVICE_NAV_START))
{
-#if(CELL_SDK_VERSION > 0x340000)
- g_console.screenshots_enable = true;
-#endif
+ g_console.screenshots_enable = true;
+ context->screenshot_enable(g_console.screenshots_enable);
}
break;
#if defined(HAVE_CG) || defined(HAVE_HLSL) || defined(HAVE_GLSL)
@@ -2075,6 +2057,11 @@ static void ingame_menu_screenshot(menu *current_menu, uint64_t input)
menu_stack_decrement();
context->render_menu_enable(true);
}
+
+ if(input & (1 << RMENU_DEVICE_NAV_B))
+ {
+ context->screenshot_dump(NULL);
+ }
}
}
diff --git a/console/rmenu/rmenu.h b/console/rmenu/rmenu.h
index 9f6b845ed9..adece9aae1 100644
--- a/console/rmenu/rmenu.h
+++ b/console/rmenu/rmenu.h
@@ -87,6 +87,8 @@ typedef struct rmenu_context
void (*render_bg)(rmenu_position_t *position);
void (*render_menu_enable)(bool enable);
void (*render_msg)(float xpos, float ypos, float scale, unsigned color, const char *msg, ...);
+ void (*screenshot_enable)(bool enable);
+ void (*screenshot_dump)(void *data);
void (*swap_buffers)(void);
void (*set_default_pos)(rmenu_default_positions_t *position);
} rmenu_context_t;
|