From d77560f1ea7ced09562b2edd1816d6d7a559b4a8 Mon Sep 17 00:00:00 2001 From: TwinAphex51224 Date: Mon, 13 Feb 2012 22:25:25 +0100 Subject: [PATCH] (PS3) Implement swap callback as well --- ps3/menu.c | 7 ++----- ps3/ps3_video_psgl.c | 11 ++++++++++- ps3/ps3_video_psgl.h | 1 + 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/ps3/menu.c b/ps3/menu.c index d5b1c61164..2bf5d9b9c2 100644 --- a/ps3/menu.c +++ b/ps3/menu.c @@ -1806,8 +1806,7 @@ static void ingame_menu(uint32_t menu_id) ssnes_render_cached_frame(); - psglSwap(); - cellSysutilCheckCallback(); + video_gl.swap(NULL); old_state = state; } } @@ -2034,9 +2033,7 @@ void menu_loop(void) SET_TIMER_EXPIRATION(30); } - psglSwap(); - cell_console_poll(); - cellSysutilCheckCallback(); + video_gl.swap(NULL); }while (g_console.menu_enable); if(g_console.ingame_menu_enable) diff --git a/ps3/ps3_video_psgl.c b/ps3/ps3_video_psgl.c index d1a9186b3f..6bf515b66f 100644 --- a/ps3/ps3_video_psgl.c +++ b/ps3/ps3_video_psgl.c @@ -1071,6 +1071,14 @@ static void ps3graphics_set_swap_block_swap(void * data, bool toggle) SSNES_LOG("Swap is set to non-blocked\n"); } +static void ps3graphics_swap(void * data) +{ + (void)data; + psglSwap(); + cell_console_poll(); + cellSysutilCheckCallback(); +} + const video_driver_t video_gl = { .init = gl_init, .frame = gl_frame, @@ -1079,7 +1087,8 @@ const video_driver_t video_gl = { .focus = gl_focus, .free = gl_free, .ident = "gl", - .set_swap_block_state = ps3graphics_set_swap_block_swap + .set_swap_block_state = ps3graphics_set_swap_block_swap, + .swap = ps3graphics_swap }; static void get_all_available_resolutions (void) diff --git a/ps3/ps3_video_psgl.h b/ps3/ps3_video_psgl.h index 77bd1aa509..7314c68dfb 100644 --- a/ps3/ps3_video_psgl.h +++ b/ps3/ps3_video_psgl.h @@ -22,6 +22,7 @@ #include "../gfx/gl_common.h" #include "../gfx/gfx_common.h" #include "../gfx/image.h" +#include "menu-port-defines.h" #include #define MAX_SHADERS 16