Remove passing around video_data inside RGUI.

Makes very little sense to add cruft to the interface
when it also risks using an invalidated video_data ...
This commit is contained in:
Themaister 2014-03-25 10:19:02 +01:00
parent 24906b8869
commit 6eb349dca6
10 changed files with 154 additions and 160 deletions

View File

@ -155,12 +155,12 @@ int main_entry_iterate(signature(), args_type() args)
} }
else if (g_extern.lifecycle_state & (1ULL << MODE_LOAD_GAME)) else if (g_extern.lifecycle_state & (1ULL << MODE_LOAD_GAME))
{ {
load_menu_game_prepare(driver.video_data); load_menu_game_prepare();
if (load_menu_game()) if (load_menu_game())
{ {
g_extern.lifecycle_state |= (1ULL << MODE_GAME); g_extern.lifecycle_state |= (1ULL << MODE_GAME);
if (driver.video_poke && driver.video_poke->set_aspect_ratio) if (driver.video_data && driver.video_poke && driver.video_poke->set_aspect_ratio)
driver.video_poke->set_aspect_ratio(driver.video_data, g_settings.video.aspect_ratio_idx); driver.video_poke->set_aspect_ratio(driver.video_data, g_settings.video.aspect_ratio_idx);
} }
else else
@ -225,7 +225,7 @@ int main_entry_iterate(signature(), args_type() args)
} }
else if (g_extern.lifecycle_state & (1ULL << MODE_MENU)) else if (g_extern.lifecycle_state & (1ULL << MODE_MENU))
{ {
if (menu_iterate(driver.video_data)) if (menu_iterate())
{ {
if (frontend_ctx && frontend_ctx->process_events) if (frontend_ctx && frontend_ctx->process_events)
frontend_ctx->process_events(args); frontend_ctx->process_events(args);
@ -260,7 +260,7 @@ void main_exit(args_type() args)
#ifdef HAVE_MENU #ifdef HAVE_MENU
g_extern.system.shutdown = false; g_extern.system.shutdown = false;
menu_free(driver.video_data); menu_free();
if (g_extern.config_save_on_exit && *g_extern.config_path) if (g_extern.config_save_on_exit && *g_extern.config_path)
{ {
@ -338,7 +338,7 @@ returntype main_entry(signature())
#if defined(HAVE_MENU) #if defined(HAVE_MENU)
if (menu_init_enable) if (menu_init_enable)
menu_init(driver.video_data); menu_init();
if (frontend_ctx && frontend_ctx->process_args) if (frontend_ctx && frontend_ctx->process_args)
frontend_ctx->process_args(argc, argv, args); frontend_ctx->process_args(argc, argv, args);

View File

@ -199,7 +199,7 @@ static void lakka_render_background(rgui_handle_t *rgui)
rgui->width - 10, 5, 5, rgui->height - 10, green_filler); rgui->width - 10, 5, 5, rgui->height - 10, green_filler);
} }
static void lakka_render_messagebox(void *data, void *video_data, const char *message) static void lakka_render_messagebox(void *data, const char *message)
{ {
rgui_handle_t *rgui = (rgui_handle_t*)data; rgui_handle_t *rgui = (rgui_handle_t*)data;
size_t i; size_t i;
@ -351,11 +351,11 @@ void lakka_draw_icon(void *data, GLuint texture, float x, float y, float alpha,
gl_set_viewport(gl, gl->win_width, gl->win_height, 0, 0); gl_set_viewport(gl, gl->win_width, gl->win_height, 0, 0);
} }
static void lakka_render(void *data, void *video_data) static void lakka_render(void *data)
{ {
rgui_handle_t *rgui = (rgui_handle_t*)data; rgui_handle_t *rgui = (rgui_handle_t*)data;
gl_t *gl = (gl_t*)video_data; gl_t *gl = (gl_t*)driver.video_data;
gl_set_viewport(gl, gl->win_width, gl->win_height, 0, 0); gl_set_viewport(gl, gl->win_width, gl->win_height, 0, 0);
@ -625,16 +625,16 @@ static void lakka_render(void *data, void *video_data)
if (!str) if (!str)
str = ""; str = "";
snprintf(msg, sizeof(msg), "%s\n%s", rgui->keyboard.label, str); snprintf(msg, sizeof(msg), "%s\n%s", rgui->keyboard.label, str);
lakka_render_messagebox(rgui, video_data, msg); lakka_render_messagebox(rgui, msg);
} }
} }
static void lakka_set_texture(void *data, void *video_data, bool enable) static void lakka_set_texture(void *data, bool enable)
{ {
rgui_handle_t *rgui = (rgui_handle_t*)data; rgui_handle_t *rgui = (rgui_handle_t*)data;
if (driver.video_poke && driver.video_poke->set_texture_enable) if (driver.video_data && driver.video_poke && driver.video_poke->set_texture_enable)
driver.video_poke->set_texture_frame(video_data, menu_framebuf, driver.video_poke->set_texture_frame(driver.video_data, menu_framebuf,
enable, rgui->width, rgui->height, 1.0f); enable, rgui->width, rgui->height, 1.0f);
} }
@ -653,7 +653,7 @@ static void lakka_init_assets(void *data)
lakka_set_texture(rgui, true); lakka_set_texture(rgui, true);
} }
static void *lakka_init(void *video_data) static void *lakka_init(void)
{ {
uint16_t *framebuf = menu_framebuf; uint16_t *framebuf = menu_framebuf;
size_t framebuf_pitch; size_t framebuf_pitch;

View File

@ -191,7 +191,7 @@ static void rgui_render_background(rgui_handle_t *rgui)
rgui->width - 10, 5, 5, rgui->height - 10, green_filler); rgui->width - 10, 5, 5, rgui->height - 10, green_filler);
} }
static void rgui_render_messagebox(void *data, void *video_data, const char *message) static void rgui_render_messagebox(void *data, const char *message)
{ {
rgui_handle_t *rgui = (rgui_handle_t*)data; rgui_handle_t *rgui = (rgui_handle_t*)data;
size_t i; size_t i;
@ -258,7 +258,7 @@ static void rgui_render_messagebox(void *data, void *video_data, const char *mes
string_list_free(list); string_list_free(list);
} }
static void rgui_render(void *data, void *video_data) static void rgui_render(void *data)
{ {
rgui_handle_t *rgui = (rgui_handle_t*)data; rgui_handle_t *rgui = (rgui_handle_t*)data;
@ -526,7 +526,7 @@ static void rgui_render(void *data, void *video_data)
else else
message_queue = driver.current_msg; message_queue = driver.current_msg;
rgui_render_messagebox(rgui, video_data, message_queue); rgui_render_messagebox(rgui, message_queue);
#endif #endif
if (rgui->keyboard.display) if (rgui->keyboard.display)
@ -536,11 +536,11 @@ static void rgui_render(void *data, void *video_data)
if (!str) if (!str)
str = ""; str = "";
snprintf(msg, sizeof(msg), "%s\n%s", rgui->keyboard.label, str); snprintf(msg, sizeof(msg), "%s\n%s", rgui->keyboard.label, str);
rgui_render_messagebox(rgui, video_data, msg); rgui_render_messagebox(rgui, msg);
} }
} }
static void *rgui_init(void *video_data) static void *rgui_init(void)
{ {
uint16_t *framebuf = menu_framebuf; uint16_t *framebuf = menu_framebuf;
size_t framebuf_pitch; size_t framebuf_pitch;
@ -592,12 +592,12 @@ static int rgui_input_postprocess(void *data, uint64_t old_state)
return ret; return ret;
} }
void rgui_set_texture(void *data, void *video_data, bool enable) void rgui_set_texture(void *data, bool enable)
{ {
rgui_handle_t *rgui = (rgui_handle_t*)data; rgui_handle_t *rgui = (rgui_handle_t*)data;
if (driver.video_poke && driver.video_poke->set_texture_enable) if (driver.video_data && driver.video_poke && driver.video_poke->set_texture_enable)
driver.video_poke->set_texture_frame(video_data, menu_framebuf, driver.video_poke->set_texture_frame(driver.video_data, menu_framebuf,
enable, rgui->width, rgui->height, 1.0f); enable, rgui->width, rgui->height, 1.0f);
} }

View File

@ -70,7 +70,7 @@ static void rmenu_render_background(rgui_handle_t *rgui)
{ {
} }
static void rmenu_render_messagebox(void *data, void *video_data, const char *message) static void rmenu_render_messagebox(void *data, const char *message)
{ {
font_params_t font_parms; font_params_t font_parms;
@ -107,14 +107,14 @@ static void rmenu_render_messagebox(void *data, void *video_data, const char *me
font_parms.scale = FONT_SIZE_NORMAL; font_parms.scale = FONT_SIZE_NORMAL;
font_parms.color = WHITE; font_parms.color = WHITE;
if (driver.video_poke && driver.video_poke->set_osd_msg) if (driver.video_data && driver.video_poke && driver.video_poke->set_osd_msg)
driver.video_poke->set_osd_msg(video_data, msg, &font_parms); driver.video_poke->set_osd_msg(driver.video_data, msg, &font_parms);
} }
render_normal = false; render_normal = false;
} }
static void rmenu_render(void *data, void *video_data) static void rmenu_render(void *data)
{ {
if (!render_normal) if (!render_normal)
{ {
@ -246,8 +246,8 @@ static void rmenu_render(void *data, void *video_data)
font_parms.scale = FONT_SIZE_NORMAL; font_parms.scale = FONT_SIZE_NORMAL;
font_parms.color = WHITE; font_parms.color = WHITE;
if (driver.video_poke && driver.video_poke->set_osd_msg) if (driver.video_data && driver.video_poke && driver.video_poke->set_osd_msg)
driver.video_poke->set_osd_msg(video_data, title_buf, &font_parms); driver.video_poke->set_osd_msg(driver.video_data, title_buf, &font_parms);
char title_msg[64]; char title_msg[64];
const char *core_name = rgui->info.library_name; const char *core_name = rgui->info.library_name;
@ -269,8 +269,8 @@ static void rmenu_render(void *data, void *video_data)
snprintf(title_msg, sizeof(title_msg), "%s - %s %s", PACKAGE_VERSION, core_name, core_version); snprintf(title_msg, sizeof(title_msg), "%s - %s %s", PACKAGE_VERSION, core_name, core_version);
if (driver.video_poke && driver.video_poke->set_osd_msg) if (driver.video_data && driver.video_poke && driver.video_poke->set_osd_msg)
driver.video_poke->set_osd_msg(video_data, title_msg, &font_parms); driver.video_poke->set_osd_msg(driver.video_data, title_msg, &font_parms);
size_t i, j; size_t i, j;
@ -384,32 +384,32 @@ static void rmenu_render(void *data, void *video_data)
font_parms.scale = FONT_SIZE_NORMAL; font_parms.scale = FONT_SIZE_NORMAL;
font_parms.color = WHITE; font_parms.color = WHITE;
if (driver.video_poke && driver.video_poke->set_osd_msg) if (driver.video_data && driver.video_poke && driver.video_poke->set_osd_msg)
driver.video_poke->set_osd_msg(video_data, message, &font_parms); driver.video_poke->set_osd_msg(driver.video_data, message, &font_parms);
font_parms.x = POSITION_EDGE_CENTER + POSITION_OFFSET; font_parms.x = POSITION_EDGE_CENTER + POSITION_OFFSET;
if (driver.video_poke && driver.video_poke->set_osd_msg) if (driver.video_data && driver.video_poke && driver.video_poke->set_osd_msg)
driver.video_poke->set_osd_msg(video_data, type_str_buf, &font_parms); driver.video_poke->set_osd_msg(driver.video_data, type_str_buf, &font_parms);
} }
} }
void rmenu_set_texture(void *data, void *video_data, bool enable) void rmenu_set_texture(void *data, bool enable)
{ {
rgui_handle_t *rgui = (rgui_handle_t*)data; rgui_handle_t *rgui = (rgui_handle_t*)data;
if (menu_texture_inited) if (menu_texture_inited)
return; return;
if (driver.video_poke && driver.video_poke->set_texture_enable) if (driver.video_data && driver.video_poke && driver.video_poke->set_texture_enable)
{ {
driver.video_poke->set_texture_frame(video_data, menu_texture->pixels, driver.video_poke->set_texture_frame(driver.video_data, menu_texture->pixels,
enable, rgui->width, rgui->height, 1.0f); enable, rgui->width, rgui->height, 1.0f);
menu_texture_inited = true; menu_texture_inited = true;
} }
} }
static void rmenu_init_assets(void *data, void *video_data) static void rmenu_init_assets(void *data)
{ {
rgui_handle_t *rgui = (rgui_handle_t*)data; rgui_handle_t *rgui = (rgui_handle_t*)data;
@ -421,14 +421,14 @@ static void rmenu_init_assets(void *data, void *video_data)
rgui->width = menu_texture->width; rgui->width = menu_texture->width;
rgui->height = menu_texture->height; rgui->height = menu_texture->height;
rmenu_set_texture(rgui, video_data, true); rmenu_set_texture(rgui, true);
} }
static void *rmenu_init(void *video_data) static void *rmenu_init(void)
{ {
rgui_handle_t *rgui = (rgui_handle_t*)calloc(1, sizeof(*rgui)); rgui_handle_t *rgui = (rgui_handle_t*)calloc(1, sizeof(*rgui));
rmenu_init_assets(rgui, video_data); rmenu_init_assets(rgui);
return rgui; return rgui;
} }

View File

@ -149,7 +149,7 @@ HRESULT CRetroArchMain::OnInit(XUIMessageInit * pInitData, BOOL& bHandled)
return 0; return 0;
} }
static void* rmenu_xui_init(void *video_data) static void* rmenu_xui_init(void)
{ {
HRESULT hr; HRESULT hr;
@ -160,7 +160,7 @@ static void* rmenu_xui_init(void *video_data)
return NULL; return NULL;
} }
d3d_video_t *d3d= (d3d_video_t*)video_data; d3d_video_t *d3d= (d3d_video_t*)driver.video_data;
bool hdmenus_allowed = (g_extern.lifecycle_state & (1ULL << MODE_MENU_HD)); bool hdmenus_allowed = (g_extern.lifecycle_state & (1ULL << MODE_MENU_HD));
@ -227,8 +227,8 @@ static void* rmenu_xui_init(void *video_data)
return NULL; return NULL;
} }
if (driver.video_poke && driver.video_poke->set_texture_enable) if (driver.video_data && driver.video_poke && driver.video_poke->set_texture_enable)
driver.video_poke->set_texture_frame(video_data, NULL, driver.video_poke->set_texture_frame(driver.video_data, NULL,
true, 0, 0, 1.0f); true, 0, 0, 1.0f);
xui_msg_queue = msg_queue_new(16); xui_msg_queue = msg_queue_new(16);
@ -367,19 +367,18 @@ int x, int y, const char *message, bool green)
{ {
} }
static void rmenu_xui_render_background(void *data, void *video_data) static void rmenu_xui_render_background(void *data)
{ {
(void)data; (void)data;
(void)video_data;
} }
static void rmenu_xui_render_messagebox(void *data, void *video_data, const char *message) static void rmenu_xui_render_messagebox(void *data, const char *message)
{ {
msg_queue_clear(xui_msg_queue); msg_queue_clear(xui_msg_queue);
msg_queue_push(xui_msg_queue, message, 2, 1); msg_queue_push(xui_msg_queue, message, 2, 1);
} }
static void rmenu_xui_render(void *data, void *video_data) static void rmenu_xui_render(void *data)
{ {
rgui_handle_t *rgui = (rgui_handle_t*)data; rgui_handle_t *rgui = (rgui_handle_t*)data;
@ -391,7 +390,7 @@ static void rmenu_xui_render(void *data, void *video_data)
size_t begin = rgui->selection_ptr; size_t begin = rgui->selection_ptr;
size_t end = rgui->selection_buf->size; size_t end = rgui->selection_buf->size;
rmenu_xui_render_background(rgui, video_data); rmenu_xui_render_background(rgui);
char title[256]; char title[256];
const char *dir = NULL; const char *dir = NULL;
@ -639,7 +638,7 @@ static void rmenu_xui_render(void *data, void *video_data)
if (!str) if (!str)
str = ""; str = "";
snprintf(msg, sizeof(msg), "%s\n%s", rgui->keyboard.label, str); snprintf(msg, sizeof(msg), "%s\n%s", rgui->keyboard.label, str);
rmenu_xui_render_messagebox(rgui, video_data, msg); rmenu_xui_render_messagebox(rgui, msg);
} }
} }

View File

@ -71,7 +71,7 @@ static void menu_update_system_info(void *data, bool *load_no_rom)
} }
//forward decl //forward decl
static int menu_iterate_func(void *data, void *video_data, unsigned action); static int menu_iterate_func(void *data, unsigned action);
#ifdef HAVE_SHADER_MANAGER #ifdef HAVE_SHADER_MANAGER
void shader_manager_init(void *data) void shader_manager_init(void *data)
@ -261,7 +261,7 @@ void menu_rom_history_push_current(void)
g_extern.system.info.library_name); g_extern.system.info.library_name);
} }
void load_menu_game_prepare(void *video_data) void load_menu_game_prepare(void)
{ {
if (*g_extern.fullpath || rgui->load_no_rom) if (*g_extern.fullpath || rgui->load_no_rom)
{ {
@ -290,18 +290,18 @@ void load_menu_game_prepare(void *video_data)
rgui->msg_force = true; rgui->msg_force = true;
if (menu_ctx) if (menu_ctx)
menu_iterate_func(rgui, video_data, RGUI_ACTION_NOOP); menu_iterate_func(rgui, RGUI_ACTION_NOOP);
#endif #endif
// Draw frame for loading message // Draw frame for loading message
if (video_data && driver.video_poke && driver.video_poke->set_texture_enable) if (driver.video_data && driver.video_poke && driver.video_poke->set_texture_enable)
driver.video_poke->set_texture_enable(video_data, rgui->frame_buf_show, MENU_TEXTURE_FULLSCREEN); driver.video_poke->set_texture_enable(driver.video_data, rgui->frame_buf_show, MENU_TEXTURE_FULLSCREEN);
if (driver.video) if (driver.video)
rarch_render_cached_frame(); rarch_render_cached_frame();
if (video_data && driver.video_poke && driver.video_poke->set_texture_enable) if (driver.video_data && driver.video_poke && driver.video_poke->set_texture_enable)
driver.video_poke->set_texture_enable(video_data, false, driver.video_poke->set_texture_enable(driver.video_data, false,
MENU_TEXTURE_FULLSCREEN); MENU_TEXTURE_FULLSCREEN);
} }
@ -431,9 +431,9 @@ bool load_menu_game(void)
} }
} }
void menu_init(void *video_data) void menu_init(void)
{ {
if (!menu_ctx_init_first(&menu_ctx, ((void**)&rgui), video_data)) if (!menu_ctx_init_first(&menu_ctx, (void**)&rgui))
{ {
RARCH_ERR("Could not initialize menu.\n"); RARCH_ERR("Could not initialize menu.\n");
rarch_fail(1, "menu_init()"); rarch_fail(1, "menu_init()");
@ -463,7 +463,7 @@ void menu_init(void *video_data)
rgui->last_time = rarch_get_time_usec(); rgui->last_time = rarch_get_time_usec();
} }
void menu_free(void *video_data) void menu_free(void)
{ {
if (menu_ctx && menu_ctx->free) if (menu_ctx && menu_ctx->free)
menu_ctx->free(rgui); menu_ctx->free(rgui);
@ -567,19 +567,19 @@ uint64_t menu_input(void)
// This only makes sense for PC so far. // This only makes sense for PC so far.
// Consoles use set_keybind callbacks instead. // Consoles use set_keybind callbacks instead.
static int menu_custom_bind_iterate(void *data, void *video_data, unsigned action) static int menu_custom_bind_iterate(void *data, unsigned action)
{ {
rgui_handle_t *rgui = (rgui_handle_t*)data; rgui_handle_t *rgui = (rgui_handle_t*)data;
(void)action; // Have to ignore action here. Only bind that should work here is Quit RetroArch or something like that. (void)action; // Have to ignore action here. Only bind that should work here is Quit RetroArch or something like that.
if (video_data && menu_ctx && menu_ctx->render) if (driver.video_data && menu_ctx && menu_ctx->render)
menu_ctx->render(rgui, video_data); menu_ctx->render(rgui);
char msg[256]; char msg[256];
snprintf(msg, sizeof(msg), "[%s]\npress joypad\n(RETURN to skip)", input_config_bind_map[rgui->binds.begin - RGUI_SETTINGS_BIND_BEGIN].desc); snprintf(msg, sizeof(msg), "[%s]\npress joypad\n(RETURN to skip)", input_config_bind_map[rgui->binds.begin - RGUI_SETTINGS_BIND_BEGIN].desc);
if (video_data && menu_ctx && menu_ctx->render_messagebox) if (driver.video_data && menu_ctx && menu_ctx->render_messagebox)
menu_ctx->render_messagebox(rgui, video_data, msg); menu_ctx->render_messagebox(rgui, msg);
struct rgui_bind_state binds = rgui->binds; struct rgui_bind_state binds = rgui->binds;
menu_poll_bind_state(&binds); menu_poll_bind_state(&binds);
@ -600,14 +600,14 @@ static int menu_custom_bind_iterate(void *data, void *video_data, unsigned actio
return 0; return 0;
} }
static int menu_start_screen_iterate(void *data, void *video_data, unsigned action) static int menu_start_screen_iterate(void *data, unsigned action)
{ {
unsigned i; unsigned i;
char msg[1024]; char msg[1024];
rgui_handle_t *rgui = (rgui_handle_t*)data; rgui_handle_t *rgui = (rgui_handle_t*)data;
if (video_data && menu_ctx && menu_ctx->render) if (driver.video_data && menu_ctx && menu_ctx->render)
menu_ctx->render(rgui, video_data); menu_ctx->render(rgui);
char desc[6][64]; char desc[6][64];
static const unsigned binds[] = { static const unsigned binds[] = {
@ -661,15 +661,15 @@ static int menu_start_screen_iterate(void *data, void *video_data, unsigned acti
"Press Accept/OK to continue.", "Press Accept/OK to continue.",
desc[0], desc[1], desc[2], desc[3], desc[4], desc[5]); desc[0], desc[1], desc[2], desc[3], desc[4], desc[5]);
if (video_data && menu_ctx && menu_ctx->render_messagebox) if (driver.video_data && menu_ctx && menu_ctx->render_messagebox)
menu_ctx->render_messagebox(rgui, video_data, msg); menu_ctx->render_messagebox(rgui, msg);
if (action == RGUI_ACTION_OK) if (action == RGUI_ACTION_OK)
file_list_pop(rgui->menu_stack, &rgui->selection_ptr); file_list_pop(rgui->menu_stack, &rgui->selection_ptr);
return 0; return 0;
} }
static int menu_viewport_iterate(void *data, void *video_data, unsigned action) static int menu_viewport_iterate(void *data, unsigned action)
{ {
rgui_handle_t *rgui = (rgui_handle_t*)data; rgui_handle_t *rgui = (rgui_handle_t*)data;
rarch_viewport_t *custom = &g_extern.console.screen.viewports.custom_vp; rarch_viewport_t *custom = &g_extern.console.screen.viewports.custom_vp;
@ -694,8 +694,8 @@ static int menu_viewport_iterate(void *data, void *video_data, unsigned action)
else if (custom->height >= (unsigned)stride_y) else if (custom->height >= (unsigned)stride_y)
custom->height -= stride_y; custom->height -= stride_y;
if (video_data && driver.video_poke && driver.video_poke->apply_state_changes) if (driver.video_data && driver.video_poke && driver.video_poke->apply_state_changes)
driver.video_poke->apply_state_changes(video_data); driver.video_poke->apply_state_changes(driver.video_data);
break; break;
case RGUI_ACTION_DOWN: case RGUI_ACTION_DOWN:
@ -708,8 +708,8 @@ static int menu_viewport_iterate(void *data, void *video_data, unsigned action)
else else
custom->height += stride_y; custom->height += stride_y;
if (video_data && driver.video_poke && driver.video_poke->apply_state_changes) if (driver.video_data && driver.video_poke && driver.video_poke->apply_state_changes)
driver.video_poke->apply_state_changes(video_data); driver.video_poke->apply_state_changes(driver.video_data);
break; break;
case RGUI_ACTION_LEFT: case RGUI_ACTION_LEFT:
@ -721,8 +721,8 @@ static int menu_viewport_iterate(void *data, void *video_data, unsigned action)
else if (custom->width >= (unsigned)stride_x) else if (custom->width >= (unsigned)stride_x)
custom->width -= stride_x; custom->width -= stride_x;
if (video_data && driver.video_poke && driver.video_poke->apply_state_changes) if (driver.video_data && driver.video_poke && driver.video_poke->apply_state_changes)
driver.video_poke->apply_state_changes(video_data); driver.video_poke->apply_state_changes(driver.video_data);
break; break;
case RGUI_ACTION_RIGHT: case RGUI_ACTION_RIGHT:
@ -735,8 +735,8 @@ static int menu_viewport_iterate(void *data, void *video_data, unsigned action)
else else
custom->width += stride_x; custom->width += stride_x;
if (video_data && driver.video_poke && driver.video_poke->apply_state_changes) if (driver.video_data && driver.video_poke && driver.video_poke->apply_state_changes)
driver.video_poke->apply_state_changes(video_data); driver.video_poke->apply_state_changes(driver.video_data);
break; break;
case RGUI_ACTION_CANCEL: case RGUI_ACTION_CANCEL:
@ -765,8 +765,8 @@ static int menu_viewport_iterate(void *data, void *video_data, unsigned action)
{ {
rarch_viewport_t vp; rarch_viewport_t vp;
if (video_data && driver.video && driver.video->viewport_info) if (driver.video_data && driver.video && driver.video->viewport_info)
driver.video->viewport_info(video_data, &vp); driver.video->viewport_info(driver.video_data, &vp);
if (menu_type == RGUI_SETTINGS_CUSTOM_VIEWPORT) if (menu_type == RGUI_SETTINGS_CUSTOM_VIEWPORT)
{ {
@ -781,8 +781,8 @@ static int menu_viewport_iterate(void *data, void *video_data, unsigned action)
custom->height = vp.full_height - custom->y; custom->height = vp.full_height - custom->y;
} }
if (video_data && driver.video_poke && driver.video_poke->apply_state_changes) if (driver.video_data && driver.video_poke && driver.video_poke->apply_state_changes)
driver.video_poke->apply_state_changes(video_data); driver.video_poke->apply_state_changes(driver.video_data);
} }
break; break;
@ -796,8 +796,8 @@ static int menu_viewport_iterate(void *data, void *video_data, unsigned action)
file_list_get_last(rgui->menu_stack, NULL, &menu_type); file_list_get_last(rgui->menu_stack, NULL, &menu_type);
if (video_data && menu_ctx && menu_ctx->render) if (driver.video_data && menu_ctx && menu_ctx->render)
menu_ctx->render(rgui, video_data); menu_ctx->render(rgui);
const char *base_msg = NULL; const char *base_msg = NULL;
char msg[64]; char msg[64];
@ -827,8 +827,8 @@ static int menu_viewport_iterate(void *data, void *video_data, unsigned action)
base_msg, custom->x, custom->y, custom->width, custom->height); base_msg, custom->x, custom->y, custom->width, custom->height);
} }
if (video_data && menu_ctx && menu_ctx->render_messagebox) if (driver.video_data && menu_ctx && menu_ctx->render_messagebox)
menu_ctx->render_messagebox(rgui, video_data, msg); menu_ctx->render_messagebox(rgui, msg);
if (!custom->width) if (!custom->width)
custom->width = stride_x; custom->width = stride_x;
@ -838,13 +838,13 @@ static int menu_viewport_iterate(void *data, void *video_data, unsigned action)
aspectratio_lut[ASPECT_RATIO_CUSTOM].value = aspectratio_lut[ASPECT_RATIO_CUSTOM].value =
(float)custom->width / custom->height; (float)custom->width / custom->height;
if (video_data && driver.video_poke && driver.video_poke->apply_state_changes) if (driver.video_data && driver.video_poke && driver.video_poke->apply_state_changes)
driver.video_poke->apply_state_changes(video_data); driver.video_poke->apply_state_changes(driver.video_data);
return 0; return 0;
} }
static int menu_settings_iterate(void *data, void *video_data, unsigned action) static int menu_settings_iterate(void *data, unsigned action)
{ {
rgui_handle_t *rgui = (rgui_handle_t*)data; rgui_handle_t *rgui = (rgui_handle_t*)data;
rgui->frame_buf_pitch = rgui->width * 2; rgui->frame_buf_pitch = rgui->width * 2;
@ -922,19 +922,18 @@ static int menu_settings_iterate(void *data, void *video_data, unsigned action)
// Start with something sane. // Start with something sane.
rarch_viewport_t *custom = &g_extern.console.screen.viewports.custom_vp; rarch_viewport_t *custom = &g_extern.console.screen.viewports.custom_vp;
if (video_data && driver.video && driver.video->viewport_info) if (driver.video_data && driver.video && driver.video->viewport_info)
driver.video->viewport_info(driver.video_data, custom); driver.video->viewport_info(driver.video_data, custom);
aspectratio_lut[ASPECT_RATIO_CUSTOM].value = aspectratio_lut[ASPECT_RATIO_CUSTOM].value = (float)custom->width / custom->height;
(float)custom->width / custom->height;
g_settings.video.aspect_ratio_idx = ASPECT_RATIO_CUSTOM; g_settings.video.aspect_ratio_idx = ASPECT_RATIO_CUSTOM;
if (video_data && driver.video_poke && driver.video_poke->set_aspect_ratio) if (driver.video_data && driver.video_poke && driver.video_poke->set_aspect_ratio)
driver.video_poke->set_aspect_ratio(driver.video_data, driver.video_poke->set_aspect_ratio(driver.video_data,
g_settings.video.aspect_ratio_idx); g_settings.video.aspect_ratio_idx);
} }
else else
{ {
int ret = menu_settings_toggle_setting(rgui, video_data, type, action, menu_type); int ret = menu_settings_toggle_setting(rgui, type, action, menu_type);
if (ret) if (ret)
return ret; return ret;
} }
@ -985,8 +984,8 @@ static int menu_settings_iterate(void *data, void *video_data, unsigned action)
menu_populate_entries(rgui, RGUI_SETTINGS); menu_populate_entries(rgui, RGUI_SETTINGS);
} }
if (video_data && menu_ctx && menu_ctx->render) if (driver.video_data && menu_ctx && menu_ctx->render)
menu_ctx->render(rgui, video_data); menu_ctx->render(rgui);
// Have to defer it so we let settings refresh. // Have to defer it so we let settings refresh.
if (rgui->push_start_screen) if (rgui->push_start_screen)
@ -1023,7 +1022,7 @@ void load_menu_game_new_core(void)
#endif #endif
} }
static int menu_iterate_func(void *data, void *video_data, unsigned action) static int menu_iterate_func(void *data, unsigned action)
{ {
rgui_handle_t *rgui = (rgui_handle_t*)data; rgui_handle_t *rgui = (rgui_handle_t*)data;
@ -1032,8 +1031,8 @@ static int menu_iterate_func(void *data, void *video_data, unsigned action)
file_list_get_last(rgui->menu_stack, &dir, &menu_type); file_list_get_last(rgui->menu_stack, &dir, &menu_type);
int ret = 0; int ret = 0;
if (video_data && menu_ctx && menu_ctx->set_texture) if (driver.video_data && menu_ctx && menu_ctx->set_texture)
menu_ctx->set_texture(rgui, video_data, false); menu_ctx->set_texture(rgui, false);
#ifdef HAVE_OSK #ifdef HAVE_OSK
// process pending osk init callback // process pending osk init callback
@ -1052,13 +1051,13 @@ static int menu_iterate_func(void *data, void *video_data, unsigned action)
#endif #endif
if (menu_type == RGUI_START_SCREEN) if (menu_type == RGUI_START_SCREEN)
return menu_start_screen_iterate(rgui, video_data, action); return menu_start_screen_iterate(rgui, action);
else if (menu_type_is(menu_type) == RGUI_SETTINGS) else if (menu_type_is(menu_type) == RGUI_SETTINGS)
return menu_settings_iterate(rgui, video_data, action); return menu_settings_iterate(rgui, action);
else if (menu_type == RGUI_SETTINGS_CUSTOM_VIEWPORT || menu_type == RGUI_SETTINGS_CUSTOM_VIEWPORT_2) else if (menu_type == RGUI_SETTINGS_CUSTOM_VIEWPORT || menu_type == RGUI_SETTINGS_CUSTOM_VIEWPORT_2)
return menu_viewport_iterate(rgui, video_data, action); return menu_viewport_iterate(rgui, action);
else if (menu_type == RGUI_SETTINGS_CUSTOM_BIND) else if (menu_type == RGUI_SETTINGS_CUSTOM_BIND)
return menu_custom_bind_iterate(rgui, video_data, action); return menu_custom_bind_iterate(rgui, action);
if (rgui->need_refresh && action != RGUI_ACTION_MESSAGE) if (rgui->need_refresh && action != RGUI_ACTION_MESSAGE)
action = RGUI_ACTION_NOOP; action = RGUI_ACTION_NOOP;
@ -1387,13 +1386,13 @@ static int menu_iterate_func(void *data, void *video_data, unsigned action)
if (menu_ctx && menu_ctx->iterate) if (menu_ctx && menu_ctx->iterate)
menu_ctx->iterate(rgui, action); menu_ctx->iterate(rgui, action);
if (video_data && menu_ctx && menu_ctx->render) if (driver.video_data && menu_ctx && menu_ctx->render)
menu_ctx->render(rgui, video_data); menu_ctx->render(rgui);
return ret; return ret;
} }
bool menu_iterate(void *video_data) bool menu_iterate(void)
{ {
retro_time_t time, delta, target_msec, sleep_msec; retro_time_t time, delta, target_msec, sleep_msec;
unsigned action; unsigned action;
@ -1419,9 +1418,6 @@ bool menu_iterate(void *video_data)
#endif #endif
rarch_check_fullscreen(); rarch_check_fullscreen();
// video_data can have changed here ...
video_data = driver.video_data;
if (input_key_pressed_func(RARCH_QUIT_KEY) || !video_alive_func()) if (input_key_pressed_func(RARCH_QUIT_KEY) || !video_alive_func())
{ {
g_extern.lifecycle_state |= (1ULL << MODE_GAME); g_extern.lifecycle_state |= (1ULL << MODE_GAME);
@ -1484,13 +1480,10 @@ bool menu_iterate(void *video_data)
action = RGUI_ACTION_START; action = RGUI_ACTION_START;
if (menu_ctx) if (menu_ctx)
input_entry_ret = menu_iterate_func(rgui, video_data, action); input_entry_ret = menu_iterate_func(rgui, action);
// video_data can have changed here ... if (driver.video_data && driver.video_poke && driver.video_poke->set_texture_enable)
video_data = driver.video_data; driver.video_poke->set_texture_enable(driver.video_data, rgui->frame_buf_show, MENU_TEXTURE_FULLSCREEN);
if (video_data && driver.video_poke && driver.video_poke->set_texture_enable)
driver.video_poke->set_texture_enable(video_data, rgui->frame_buf_show, MENU_TEXTURE_FULLSCREEN);
rarch_render_cached_frame(); rarch_render_cached_frame();
@ -1503,8 +1496,8 @@ bool menu_iterate(void *video_data)
rarch_sleep((unsigned int)sleep_msec); rarch_sleep((unsigned int)sleep_msec);
rgui->last_time = rarch_get_time_usec(); rgui->last_time = rarch_get_time_usec();
if (video_data && driver.video_poke && driver.video_poke->set_texture_enable) if (driver.video_data && driver.video_poke && driver.video_poke->set_texture_enable)
driver.video_poke->set_texture_enable(video_data, false, driver.video_poke->set_texture_enable(driver.video_data, false,
MENU_TEXTURE_FULLSCREEN); MENU_TEXTURE_FULLSCREEN);
if (menu_ctx && menu_ctx->input_postprocess) if (menu_ctx && menu_ctx->input_postprocess)

View File

@ -405,9 +405,9 @@ typedef struct
extern rgui_handle_t *rgui; extern rgui_handle_t *rgui;
void menu_init(void *data); void menu_init(void);
bool menu_iterate(void *data); bool menu_iterate(void);
void menu_free(void *data); void menu_free(void);
#ifdef HAVE_SHADER_MANAGER #ifdef HAVE_SHADER_MANAGER
void shader_manager_init(void *data); void shader_manager_init(void *data);
@ -422,7 +422,7 @@ void menu_ticker_line(char *buf, size_t len, unsigned tick, const char *str, boo
void menu_init_core_info(void *data); void menu_init_core_info(void *data);
void load_menu_game_prepare(void *video_data); void load_menu_game_prepare(void);
void load_menu_game_prepare_dummy(void); void load_menu_game_prepare_dummy(void);
bool load_menu_game(void); bool load_menu_game(void);
void load_menu_game_history(unsigned game_index); void load_menu_game_history(unsigned game_index);
@ -435,8 +435,8 @@ bool menu_replace_config(const char *path);
bool menu_save_new_config(void); bool menu_save_new_config(void);
int menu_settings_toggle_setting(void *data, void *video_data, unsigned setting, unsigned action, unsigned menu_type); int menu_settings_toggle_setting(void *data, unsigned setting, unsigned action, unsigned menu_type);
int menu_set_settings(void *data, void *video_data, unsigned setting, unsigned action); int menu_set_settings(void *data, unsigned setting, unsigned action);
void menu_set_settings_label(char *type_str, size_t type_str_size, unsigned *w, unsigned type); void menu_set_settings_label(char *type_str, size_t type_str_size, unsigned *w, unsigned type);
void menu_populate_entries(void *data, unsigned menu_type); void menu_populate_entries(void *data, unsigned menu_type);

View File

@ -83,7 +83,7 @@ void find_next_menu_driver(void)
RARCH_WARN("Couldn't find any next menu driver (current one: \"%s\").\n", g_settings.menu.driver); RARCH_WARN("Couldn't find any next menu driver (current one: \"%s\").\n", g_settings.menu.driver);
} }
bool menu_ctx_init_first(const menu_ctx_driver_t **driver, void **data, void *video_data) bool menu_ctx_init_first(const menu_ctx_driver_t **driver, void **data)
{ {
unsigned i; unsigned i;
rgui_handle_t **handle = (rgui_handle_t**)data; rgui_handle_t **handle = (rgui_handle_t**)data;
@ -93,7 +93,7 @@ bool menu_ctx_init_first(const menu_ctx_driver_t **driver, void **data, void *vi
for (i = 0; menu_ctx_drivers[i]; i++) for (i = 0; menu_ctx_drivers[i]; i++)
{ {
void *h = menu_ctx_drivers[i]->init(video_data); void *h = menu_ctx_drivers[i]->init();
if (h) if (h)
{ {
*driver = menu_ctx_drivers[i]; *driver = menu_ctx_drivers[i];

View File

@ -26,12 +26,12 @@
typedef struct menu_ctx_driver typedef struct menu_ctx_driver
{ {
void (*set_texture)(void*, void*, bool); void (*set_texture)(void*, bool);
void (*render_messagebox)(void*, void*, const char*); void (*render_messagebox)(void*, const char*);
void (*render)(void*, void*); void (*render)(void*);
void* (*init)(void*); void* (*init)(void);
void (*free)(void*); void (*free)(void*);
void (*init_assets)(void*, void*); void (*init_assets)(void*);
void (*free_assets)(void*); void (*free_assets)(void*);
void (*populate_entries)(void*, unsigned); void (*populate_entries)(void*, unsigned);
void (*iterate)(void*, unsigned); void (*iterate)(void*, unsigned);
@ -47,7 +47,7 @@ extern const menu_ctx_driver_t menu_ctx_rgui;
extern const menu_ctx_driver_t menu_ctx_lakka; extern const menu_ctx_driver_t menu_ctx_lakka;
const menu_ctx_driver_t *menu_ctx_find_driver(const char *ident); // Finds driver with ident. Does not initialize. const menu_ctx_driver_t *menu_ctx_find_driver(const char *ident); // Finds driver with ident. Does not initialize.
bool menu_ctx_init_first(const menu_ctx_driver_t **driver, void **handle, void *video_data); // Finds first suitable driver and initializes. bool menu_ctx_init_first(const menu_ctx_driver_t **driver, void **handle); // Finds first suitable driver and initializes.
void find_prev_menu_driver(void); void find_prev_menu_driver(void);
void find_next_menu_driver(void); void find_next_menu_driver(void);

View File

@ -240,7 +240,7 @@ void shader_manager_save_preset(void *data, const char *basename, bool apply)
RARCH_ERR("Failed to save shader preset. Make sure config directory and/or shader dir are writable.\n"); RARCH_ERR("Failed to save shader preset. Make sure config directory and/or shader dir are writable.\n");
} }
static int shader_manager_toggle_setting(void *data, void *video_data, unsigned setting, unsigned action) static int shader_manager_toggle_setting(void *data, unsigned setting, unsigned action)
{ {
unsigned dist_shader, dist_filter, dist_scale; unsigned dist_shader, dist_filter, dist_scale;
rgui_handle_t *rgui = (rgui_handle_t*)data; rgui_handle_t *rgui = (rgui_handle_t*)data;
@ -267,7 +267,7 @@ static int shader_manager_toggle_setting(void *data, void *video_data, unsigned
} }
} }
else if (setting == RGUI_SETTINGS_SHADER_APPLY || setting == RGUI_SETTINGS_SHADER_PASSES) else if (setting == RGUI_SETTINGS_SHADER_APPLY || setting == RGUI_SETTINGS_SHADER_PASSES)
return menu_set_settings(rgui, video_data, setting, action); return menu_set_settings(rgui, setting, action);
else if ((dist_shader % 3) == 0 || setting == RGUI_SETTINGS_SHADER_PRESET) else if ((dist_shader % 3) == 0 || setting == RGUI_SETTINGS_SHADER_PRESET)
{ {
dist_shader /= 3; dist_shader /= 3;
@ -370,17 +370,17 @@ static int menu_core_setting_toggle(unsigned setting, unsigned action)
return 0; return 0;
} }
int menu_settings_toggle_setting(void *data, void *video_data, unsigned setting, unsigned action, unsigned menu_type) int menu_settings_toggle_setting(void *data, unsigned setting, unsigned action, unsigned menu_type)
{ {
rgui_handle_t *rgui = (rgui_handle_t*)data; rgui_handle_t *rgui = (rgui_handle_t*)data;
#ifdef HAVE_SHADER_MANAGER #ifdef HAVE_SHADER_MANAGER
if (setting >= RGUI_SETTINGS_SHADER_FILTER && setting <= RGUI_SETTINGS_SHADER_LAST) if (setting >= RGUI_SETTINGS_SHADER_FILTER && setting <= RGUI_SETTINGS_SHADER_LAST)
return shader_manager_toggle_setting(rgui, video_data, setting, action); return shader_manager_toggle_setting(rgui, setting, action);
#endif #endif
if (setting >= RGUI_SETTINGS_CORE_OPTION_START) if (setting >= RGUI_SETTINGS_CORE_OPTION_START)
return menu_core_setting_toggle(setting, action); return menu_core_setting_toggle(setting, action);
return menu_set_settings(rgui, video_data, setting, action); return menu_set_settings(rgui, setting, action);
} }
#ifdef HAVE_OSK #ifdef HAVE_OSK
@ -478,7 +478,7 @@ static bool osk_callback_enter_filename_init(void *data)
#define RARCH_DEFAULT_PORT 55435 #define RARCH_DEFAULT_PORT 55435
#endif #endif
int menu_set_settings(void *data, void *video_data, unsigned setting, unsigned action) int menu_set_settings(void *data, unsigned setting, unsigned action)
{ {
rgui_handle_t *rgui = (rgui_handle_t*)data; rgui_handle_t *rgui = (rgui_handle_t*)data;
unsigned port = rgui->current_pad; unsigned port = rgui->current_pad;
@ -1171,8 +1171,8 @@ int menu_set_settings(void *data, void *video_data, unsigned setting, unsigned a
else else
g_settings.video.smooth = !g_settings.video.smooth; g_settings.video.smooth = !g_settings.video.smooth;
if (driver.video_poke && driver.video_poke->set_filtering) if (driver.video_data && driver.video_poke && driver.video_poke->set_filtering)
driver.video_poke->set_filtering(video_data, 1, g_settings.video.smooth); driver.video_poke->set_filtering(driver.video_data, 1, g_settings.video.smooth);
break; break;
case RGUI_SETTINGS_DRIVER_VIDEO: case RGUI_SETTINGS_DRIVER_VIDEO:
@ -1243,16 +1243,16 @@ int menu_set_settings(void *data, void *video_data, unsigned setting, unsigned a
if (action == RGUI_ACTION_START) if (action == RGUI_ACTION_START)
{ {
g_extern.console.screen.gamma_correction = 0; g_extern.console.screen.gamma_correction = 0;
if (driver.video_poke && driver.video_poke->apply_state_changes) if (driver.video_data && driver.video_poke && driver.video_poke->apply_state_changes)
driver.video_poke->apply_state_changes(video_data); driver.video_poke->apply_state_changes(driver.video_data);
} }
else if (action == RGUI_ACTION_LEFT) else if (action == RGUI_ACTION_LEFT)
{ {
if (g_extern.console.screen.gamma_correction > 0) if (g_extern.console.screen.gamma_correction > 0)
{ {
g_extern.console.screen.gamma_correction--; g_extern.console.screen.gamma_correction--;
if (driver.video_poke && driver.video_poke->apply_state_changes) if (driver.video_data && driver.video_poke && driver.video_poke->apply_state_changes)
driver.video_poke->apply_state_changes(video_data); driver.video_poke->apply_state_changes(driver.video_data);
} }
} }
else if (action == RGUI_ACTION_RIGHT) else if (action == RGUI_ACTION_RIGHT)
@ -1260,8 +1260,8 @@ int menu_set_settings(void *data, void *video_data, unsigned setting, unsigned a
if (g_extern.console.screen.gamma_correction < MAX_GAMMA_SETTING) if (g_extern.console.screen.gamma_correction < MAX_GAMMA_SETTING)
{ {
g_extern.console.screen.gamma_correction++; g_extern.console.screen.gamma_correction++;
if (driver.video_poke && driver.video_poke->apply_state_changes) if (driver.video_data && driver.video_poke && driver.video_poke->apply_state_changes)
driver.video_poke->apply_state_changes(video_data); driver.video_poke->apply_state_changes(driver.video_data);
} }
} }
break; break;
@ -1274,8 +1274,8 @@ int menu_set_settings(void *data, void *video_data, unsigned setting, unsigned a
action == RGUI_ACTION_OK) action == RGUI_ACTION_OK)
g_settings.video.scale_integer = !g_settings.video.scale_integer; g_settings.video.scale_integer = !g_settings.video.scale_integer;
if (driver.video_poke && driver.video_poke->apply_state_changes) if (driver.video_data && driver.video_poke && driver.video_poke->apply_state_changes)
driver.video_poke->apply_state_changes(video_data); driver.video_poke->apply_state_changes(driver.video_data);
break; break;
case RGUI_SETTINGS_VIDEO_ASPECT_RATIO: case RGUI_SETTINGS_VIDEO_ASPECT_RATIO:
@ -1292,8 +1292,8 @@ int menu_set_settings(void *data, void *video_data, unsigned setting, unsigned a
g_settings.video.aspect_ratio_idx++; g_settings.video.aspect_ratio_idx++;
} }
if (driver.video_poke && driver.video_poke->set_aspect_ratio) if (driver.video_data && driver.video_poke && driver.video_poke->set_aspect_ratio)
driver.video_poke->set_aspect_ratio(video_data, g_settings.video.aspect_ratio_idx); driver.video_poke->set_aspect_ratio(driver.video_data, g_settings.video.aspect_ratio_idx);
break; break;
case RGUI_SETTINGS_TOGGLE_FULLSCREEN: case RGUI_SETTINGS_TOGGLE_FULLSCREEN:
@ -1305,10 +1305,11 @@ int menu_set_settings(void *data, void *video_data, unsigned setting, unsigned a
case RGUI_SETTINGS_VIDEO_RESOLUTION: case RGUI_SETTINGS_VIDEO_RESOLUTION:
if (action == RGUI_ACTION_LEFT) if (action == RGUI_ACTION_LEFT)
{ {
if(rgui_current_gx_resolution > 0) if (rgui_current_gx_resolution > 0)
{ {
rgui_current_gx_resolution--; rgui_current_gx_resolution--;
gx_set_video_mode(video_data, rgui_gx_resolutions[rgui_current_gx_resolution][0], rgui_gx_resolutions[rgui_current_gx_resolution][1]); if (driver.video_data)
gx_set_video_mode(driver.video_data, rgui_gx_resolutions[rgui_current_gx_resolution][0], rgui_gx_resolutions[rgui_current_gx_resolution][1]);
} }
} }
else if (action == RGUI_ACTION_RIGHT) else if (action == RGUI_ACTION_RIGHT)
@ -1322,7 +1323,8 @@ int menu_set_settings(void *data, void *video_data, unsigned setting, unsigned a
#endif #endif
rgui_current_gx_resolution++; rgui_current_gx_resolution++;
gx_set_video_mode(video_data, rgui_gx_resolutions[rgui_current_gx_resolution][0], if (driver.video_data)
gx_set_video_mode(driver.video_data, rgui_gx_resolutions[rgui_current_gx_resolution][0],
rgui_gx_resolutions[rgui_current_gx_resolution][1]); rgui_gx_resolutions[rgui_current_gx_resolution][1]);
} }
} }
@ -1366,7 +1368,7 @@ int menu_set_settings(void *data, void *video_data, unsigned setting, unsigned a
if (menu_ctx && menu_ctx->free_assets) if (menu_ctx && menu_ctx->free_assets)
menu_ctx->free_assets(rgui); menu_ctx->free_assets(rgui);
if (menu_ctx && menu_ctx->init_assets) if (menu_ctx && menu_ctx->init_assets)
menu_ctx->init_assets(rgui, video_data); menu_ctx->init_assets(rgui);
} }
break; break;
case RGUI_SETTINGS_VIDEO_PAL60: case RGUI_SETTINGS_VIDEO_PAL60:
@ -1387,7 +1389,7 @@ int menu_set_settings(void *data, void *video_data, unsigned setting, unsigned a
if (menu_ctx && menu_ctx->free_assets) if (menu_ctx && menu_ctx->free_assets)
menu_ctx->free_assets(rgui); menu_ctx->free_assets(rgui);
if (menu_ctx && menu_ctx->init_assets) if (menu_ctx && menu_ctx->init_assets)
menu_ctx->init_assets(rgui, video_data); menu_ctx->init_assets(rgui);
} }
break; break;
case RGUI_ACTION_START: case RGUI_ACTION_START:
@ -1400,7 +1402,7 @@ int menu_set_settings(void *data, void *video_data, unsigned setting, unsigned a
if (menu_ctx && menu_ctx->free_assets) if (menu_ctx && menu_ctx->free_assets)
menu_ctx->free_assets(rgui); menu_ctx->free_assets(rgui);
if (menu_ctx && menu_ctx->init_assets) if (menu_ctx && menu_ctx->init_assets)
menu_ctx->init_assets(rgui, video_data); menu_ctx->init_assets(rgui);
} }
break; break;
} }
@ -1413,8 +1415,8 @@ int menu_set_settings(void *data, void *video_data, unsigned setting, unsigned a
else else
g_extern.lifecycle_state |= (1ULL << MODE_VIDEO_SOFT_FILTER_ENABLE); g_extern.lifecycle_state |= (1ULL << MODE_VIDEO_SOFT_FILTER_ENABLE);
if (driver.video_poke && driver.video_poke->apply_state_changes) if (driver.video_data && driver.video_poke && driver.video_poke->apply_state_changes)
driver.video_poke->apply_state_changes(video_data); driver.video_poke->apply_state_changes(driver.video_data);
break; break;
#endif #endif
@ -1564,7 +1566,7 @@ int menu_set_settings(void *data, void *video_data, unsigned setting, unsigned a
g_settings.video.swap_interval = min(g_settings.video.swap_interval, 4); g_settings.video.swap_interval = min(g_settings.video.swap_interval, 4);
g_settings.video.swap_interval = max(g_settings.video.swap_interval, 1); g_settings.video.swap_interval = max(g_settings.video.swap_interval, 1);
if (old != g_settings.video.swap_interval && driver.video && video_data) if (old != g_settings.video.swap_interval && driver.video && driver.video_data)
video_set_nonblock_state_func(false); // This will update the current swap interval. Since we're in RGUI now, always apply VSync. video_set_nonblock_state_func(false); // This will update the current swap interval. Since we're in RGUI now, always apply VSync.
break; break;