From 6eb349dca63199673ca37cf38594bc6100cd7da1 Mon Sep 17 00:00:00 2001 From: Themaister Date: Tue, 25 Mar 2014 10:19:02 +0100 Subject: [PATCH] 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 ... --- frontend/frontend.c | 10 +-- frontend/menu/disp/lakka.c | 16 ++-- frontend/menu/disp/rgui.c | 16 ++-- frontend/menu/disp/rmenu.c | 38 ++++----- frontend/menu/disp/rmenu_xui.cpp | 19 +++-- frontend/menu/menu_common.c | 129 +++++++++++++++---------------- frontend/menu/menu_common.h | 12 +-- frontend/menu/menu_context.c | 4 +- frontend/menu/menu_context.h | 12 +-- frontend/menu/menu_settings.c | 58 +++++++------- 10 files changed, 154 insertions(+), 160 deletions(-) diff --git a/frontend/frontend.c b/frontend/frontend.c index 7f7502ef89..b1183847d8 100644 --- a/frontend/frontend.c +++ b/frontend/frontend.c @@ -155,12 +155,12 @@ int main_entry_iterate(signature(), args_type() args) } 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()) { 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); } else @@ -225,7 +225,7 @@ int main_entry_iterate(signature(), args_type() args) } 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) frontend_ctx->process_events(args); @@ -260,7 +260,7 @@ void main_exit(args_type() args) #ifdef HAVE_MENU g_extern.system.shutdown = false; - menu_free(driver.video_data); + menu_free(); if (g_extern.config_save_on_exit && *g_extern.config_path) { @@ -338,7 +338,7 @@ returntype main_entry(signature()) #if defined(HAVE_MENU) if (menu_init_enable) - menu_init(driver.video_data); + menu_init(); if (frontend_ctx && frontend_ctx->process_args) frontend_ctx->process_args(argc, argv, args); diff --git a/frontend/menu/disp/lakka.c b/frontend/menu/disp/lakka.c index c9aba574c0..f8e71d7720 100644 --- a/frontend/menu/disp/lakka.c +++ b/frontend/menu/disp/lakka.c @@ -199,7 +199,7 @@ static void lakka_render_background(rgui_handle_t *rgui) 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; 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); } -static void lakka_render(void *data, void *video_data) +static void lakka_render(void *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); @@ -625,16 +625,16 @@ static void lakka_render(void *data, void *video_data) if (!str) 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; - if (driver.video_poke && driver.video_poke->set_texture_enable) - driver.video_poke->set_texture_frame(video_data, menu_framebuf, + if (driver.video_data && driver.video_poke && driver.video_poke->set_texture_enable) + driver.video_poke->set_texture_frame(driver.video_data, menu_framebuf, enable, rgui->width, rgui->height, 1.0f); } @@ -653,7 +653,7 @@ static void lakka_init_assets(void *data) lakka_set_texture(rgui, true); } -static void *lakka_init(void *video_data) +static void *lakka_init(void) { uint16_t *framebuf = menu_framebuf; size_t framebuf_pitch; diff --git a/frontend/menu/disp/rgui.c b/frontend/menu/disp/rgui.c index 0c85a2ab6d..34c8536c8f 100644 --- a/frontend/menu/disp/rgui.c +++ b/frontend/menu/disp/rgui.c @@ -191,7 +191,7 @@ static void rgui_render_background(rgui_handle_t *rgui) 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; size_t i; @@ -258,7 +258,7 @@ static void rgui_render_messagebox(void *data, void *video_data, const char *mes 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; @@ -526,7 +526,7 @@ static void rgui_render(void *data, void *video_data) else message_queue = driver.current_msg; - rgui_render_messagebox(rgui, video_data, message_queue); + rgui_render_messagebox(rgui, message_queue); #endif if (rgui->keyboard.display) @@ -536,11 +536,11 @@ static void rgui_render(void *data, void *video_data) if (!str) 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; size_t framebuf_pitch; @@ -592,12 +592,12 @@ static int rgui_input_postprocess(void *data, uint64_t old_state) 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; - if (driver.video_poke && driver.video_poke->set_texture_enable) - driver.video_poke->set_texture_frame(video_data, menu_framebuf, + if (driver.video_data && driver.video_poke && driver.video_poke->set_texture_enable) + driver.video_poke->set_texture_frame(driver.video_data, menu_framebuf, enable, rgui->width, rgui->height, 1.0f); } diff --git a/frontend/menu/disp/rmenu.c b/frontend/menu/disp/rmenu.c index cc874cee8e..d9bb862740 100644 --- a/frontend/menu/disp/rmenu.c +++ b/frontend/menu/disp/rmenu.c @@ -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; @@ -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.color = WHITE; - if (driver.video_poke && driver.video_poke->set_osd_msg) - driver.video_poke->set_osd_msg(video_data, msg, &font_parms); + if (driver.video_data && driver.video_poke && driver.video_poke->set_osd_msg) + driver.video_poke->set_osd_msg(driver.video_data, msg, &font_parms); } render_normal = false; } -static void rmenu_render(void *data, void *video_data) +static void rmenu_render(void *data) { if (!render_normal) { @@ -246,8 +246,8 @@ static void rmenu_render(void *data, void *video_data) font_parms.scale = FONT_SIZE_NORMAL; font_parms.color = WHITE; - if (driver.video_poke && driver.video_poke->set_osd_msg) - driver.video_poke->set_osd_msg(video_data, title_buf, &font_parms); + if (driver.video_data && driver.video_poke && driver.video_poke->set_osd_msg) + driver.video_poke->set_osd_msg(driver.video_data, title_buf, &font_parms); char title_msg[64]; 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); - if (driver.video_poke && driver.video_poke->set_osd_msg) - driver.video_poke->set_osd_msg(video_data, title_msg, &font_parms); + if (driver.video_data && driver.video_poke && driver.video_poke->set_osd_msg) + driver.video_poke->set_osd_msg(driver.video_data, title_msg, &font_parms); 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.color = WHITE; - if (driver.video_poke && driver.video_poke->set_osd_msg) - driver.video_poke->set_osd_msg(video_data, message, &font_parms); + if (driver.video_data && driver.video_poke && driver.video_poke->set_osd_msg) + driver.video_poke->set_osd_msg(driver.video_data, message, &font_parms); font_parms.x = POSITION_EDGE_CENTER + POSITION_OFFSET; - if (driver.video_poke && driver.video_poke->set_osd_msg) - driver.video_poke->set_osd_msg(video_data, type_str_buf, &font_parms); + if (driver.video_data && driver.video_poke && driver.video_poke->set_osd_msg) + 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; if (menu_texture_inited) 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); 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; @@ -421,14 +421,14 @@ static void rmenu_init_assets(void *data, void *video_data) rgui->width = menu_texture->width; 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)); - rmenu_init_assets(rgui, video_data); + rmenu_init_assets(rgui); return rgui; } diff --git a/frontend/menu/disp/rmenu_xui.cpp b/frontend/menu/disp/rmenu_xui.cpp index 366fe5b2ce..ba50511063 100644 --- a/frontend/menu/disp/rmenu_xui.cpp +++ b/frontend/menu/disp/rmenu_xui.cpp @@ -149,7 +149,7 @@ HRESULT CRetroArchMain::OnInit(XUIMessageInit * pInitData, BOOL& bHandled) return 0; } -static void* rmenu_xui_init(void *video_data) +static void* rmenu_xui_init(void) { HRESULT hr; @@ -160,7 +160,7 @@ static void* rmenu_xui_init(void *video_data) 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)); @@ -227,8 +227,8 @@ static void* rmenu_xui_init(void *video_data) return NULL; } - if (driver.video_poke && driver.video_poke->set_texture_enable) - driver.video_poke->set_texture_frame(video_data, NULL, + if (driver.video_data && driver.video_poke && driver.video_poke->set_texture_enable) + driver.video_poke->set_texture_frame(driver.video_data, NULL, true, 0, 0, 1.0f); 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)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_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; @@ -391,7 +390,7 @@ static void rmenu_xui_render(void *data, void *video_data) size_t begin = rgui->selection_ptr; size_t end = rgui->selection_buf->size; - rmenu_xui_render_background(rgui, video_data); + rmenu_xui_render_background(rgui); char title[256]; const char *dir = NULL; @@ -639,7 +638,7 @@ static void rmenu_xui_render(void *data, void *video_data) if (!str) 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); } } diff --git a/frontend/menu/menu_common.c b/frontend/menu/menu_common.c index 6019cbc870..e832c12dc8 100644 --- a/frontend/menu/menu_common.c +++ b/frontend/menu/menu_common.c @@ -71,7 +71,7 @@ static void menu_update_system_info(void *data, bool *load_no_rom) } //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 void shader_manager_init(void *data) @@ -261,7 +261,7 @@ void menu_rom_history_push_current(void) 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) { @@ -290,18 +290,18 @@ void load_menu_game_prepare(void *video_data) rgui->msg_force = true; if (menu_ctx) - menu_iterate_func(rgui, video_data, RGUI_ACTION_NOOP); + menu_iterate_func(rgui, RGUI_ACTION_NOOP); #endif // Draw frame for loading message - 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); + if (driver.video_data && driver.video_poke && driver.video_poke->set_texture_enable) + driver.video_poke->set_texture_enable(driver.video_data, rgui->frame_buf_show, MENU_TEXTURE_FULLSCREEN); if (driver.video) rarch_render_cached_frame(); - if (video_data && driver.video_poke && driver.video_poke->set_texture_enable) - driver.video_poke->set_texture_enable(video_data, false, + if (driver.video_data && driver.video_poke && driver.video_poke->set_texture_enable) + driver.video_poke->set_texture_enable(driver.video_data, false, 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_fail(1, "menu_init()"); @@ -463,7 +463,7 @@ void menu_init(void *video_data) rgui->last_time = rarch_get_time_usec(); } -void menu_free(void *video_data) +void menu_free(void) { if (menu_ctx && menu_ctx->free) menu_ctx->free(rgui); @@ -567,19 +567,19 @@ uint64_t menu_input(void) // This only makes sense for PC so far. // 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; (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) - menu_ctx->render(rgui, video_data); + if (driver.video_data && menu_ctx && menu_ctx->render) + menu_ctx->render(rgui); 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); - if (video_data && menu_ctx && menu_ctx->render_messagebox) - menu_ctx->render_messagebox(rgui, video_data, msg); + if (driver.video_data && menu_ctx && menu_ctx->render_messagebox) + menu_ctx->render_messagebox(rgui, msg); struct rgui_bind_state binds = rgui->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; } -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; char msg[1024]; rgui_handle_t *rgui = (rgui_handle_t*)data; - if (video_data && menu_ctx && menu_ctx->render) - menu_ctx->render(rgui, video_data); + if (driver.video_data && menu_ctx && menu_ctx->render) + menu_ctx->render(rgui); char desc[6][64]; 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.", desc[0], desc[1], desc[2], desc[3], desc[4], desc[5]); - if (video_data && menu_ctx && menu_ctx->render_messagebox) - menu_ctx->render_messagebox(rgui, video_data, msg); + if (driver.video_data && menu_ctx && menu_ctx->render_messagebox) + menu_ctx->render_messagebox(rgui, msg); if (action == RGUI_ACTION_OK) file_list_pop(rgui->menu_stack, &rgui->selection_ptr); 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; 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) custom->height -= stride_y; - if (video_data && driver.video_poke && driver.video_poke->apply_state_changes) - driver.video_poke->apply_state_changes(video_data); + if (driver.video_data && driver.video_poke && driver.video_poke->apply_state_changes) + driver.video_poke->apply_state_changes(driver.video_data); break; case RGUI_ACTION_DOWN: @@ -708,8 +708,8 @@ static int menu_viewport_iterate(void *data, void *video_data, unsigned action) else custom->height += stride_y; - if (video_data && driver.video_poke && driver.video_poke->apply_state_changes) - driver.video_poke->apply_state_changes(video_data); + if (driver.video_data && driver.video_poke && driver.video_poke->apply_state_changes) + driver.video_poke->apply_state_changes(driver.video_data); break; 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) custom->width -= stride_x; - if (video_data && driver.video_poke && driver.video_poke->apply_state_changes) - driver.video_poke->apply_state_changes(video_data); + if (driver.video_data && driver.video_poke && driver.video_poke->apply_state_changes) + driver.video_poke->apply_state_changes(driver.video_data); break; case RGUI_ACTION_RIGHT: @@ -735,8 +735,8 @@ static int menu_viewport_iterate(void *data, void *video_data, unsigned action) else custom->width += stride_x; - if (video_data && driver.video_poke && driver.video_poke->apply_state_changes) - driver.video_poke->apply_state_changes(video_data); + if (driver.video_data && driver.video_poke && driver.video_poke->apply_state_changes) + driver.video_poke->apply_state_changes(driver.video_data); break; case RGUI_ACTION_CANCEL: @@ -765,8 +765,8 @@ static int menu_viewport_iterate(void *data, void *video_data, unsigned action) { rarch_viewport_t vp; - if (video_data && driver.video && driver.video->viewport_info) - driver.video->viewport_info(video_data, &vp); + if (driver.video_data && driver.video && driver.video->viewport_info) + driver.video->viewport_info(driver.video_data, &vp); 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; } - if (video_data && driver.video_poke && driver.video_poke->apply_state_changes) - driver.video_poke->apply_state_changes(video_data); + if (driver.video_data && driver.video_poke && driver.video_poke->apply_state_changes) + driver.video_poke->apply_state_changes(driver.video_data); } 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); - if (video_data && menu_ctx && menu_ctx->render) - menu_ctx->render(rgui, video_data); + if (driver.video_data && menu_ctx && menu_ctx->render) + menu_ctx->render(rgui); const char *base_msg = NULL; 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); } - if (video_data && menu_ctx && menu_ctx->render_messagebox) - menu_ctx->render_messagebox(rgui, video_data, msg); + if (driver.video_data && menu_ctx && menu_ctx->render_messagebox) + menu_ctx->render_messagebox(rgui, msg); if (!custom->width) 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 = (float)custom->width / custom->height; - if (video_data && driver.video_poke && driver.video_poke->apply_state_changes) - driver.video_poke->apply_state_changes(video_data); + if (driver.video_data && driver.video_poke && driver.video_poke->apply_state_changes) + driver.video_poke->apply_state_changes(driver.video_data); 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->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. 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); - aspectratio_lut[ASPECT_RATIO_CUSTOM].value = - (float)custom->width / custom->height; + aspectratio_lut[ASPECT_RATIO_CUSTOM].value = (float)custom->width / custom->height; 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, g_settings.video.aspect_ratio_idx); } 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) return ret; } @@ -985,8 +984,8 @@ static int menu_settings_iterate(void *data, void *video_data, unsigned action) menu_populate_entries(rgui, RGUI_SETTINGS); } - if (video_data && menu_ctx && menu_ctx->render) - menu_ctx->render(rgui, video_data); + if (driver.video_data && menu_ctx && menu_ctx->render) + menu_ctx->render(rgui); // Have to defer it so we let settings refresh. if (rgui->push_start_screen) @@ -1023,7 +1022,7 @@ void load_menu_game_new_core(void) #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; @@ -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); int ret = 0; - if (video_data && menu_ctx && menu_ctx->set_texture) - menu_ctx->set_texture(rgui, video_data, false); + if (driver.video_data && menu_ctx && menu_ctx->set_texture) + menu_ctx->set_texture(rgui, false); #ifdef HAVE_OSK // process pending osk init callback @@ -1052,13 +1051,13 @@ static int menu_iterate_func(void *data, void *video_data, unsigned action) #endif 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) - 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) - return menu_viewport_iterate(rgui, video_data, action); + return menu_viewport_iterate(rgui, action); 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) 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) menu_ctx->iterate(rgui, action); - if (video_data && menu_ctx && menu_ctx->render) - menu_ctx->render(rgui, video_data); + if (driver.video_data && menu_ctx && menu_ctx->render) + menu_ctx->render(rgui); return ret; } -bool menu_iterate(void *video_data) +bool menu_iterate(void) { retro_time_t time, delta, target_msec, sleep_msec; unsigned action; @@ -1419,9 +1418,6 @@ bool menu_iterate(void *video_data) #endif 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()) { g_extern.lifecycle_state |= (1ULL << MODE_GAME); @@ -1484,13 +1480,10 @@ bool menu_iterate(void *video_data) action = RGUI_ACTION_START; 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 ... - video_data = driver.video_data; - - 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); + if (driver.video_data && driver.video_poke && driver.video_poke->set_texture_enable) + driver.video_poke->set_texture_enable(driver.video_data, rgui->frame_buf_show, MENU_TEXTURE_FULLSCREEN); rarch_render_cached_frame(); @@ -1503,8 +1496,8 @@ bool menu_iterate(void *video_data) rarch_sleep((unsigned int)sleep_msec); rgui->last_time = rarch_get_time_usec(); - if (video_data && driver.video_poke && driver.video_poke->set_texture_enable) - driver.video_poke->set_texture_enable(video_data, false, + if (driver.video_data && driver.video_poke && driver.video_poke->set_texture_enable) + driver.video_poke->set_texture_enable(driver.video_data, false, MENU_TEXTURE_FULLSCREEN); if (menu_ctx && menu_ctx->input_postprocess) diff --git a/frontend/menu/menu_common.h b/frontend/menu/menu_common.h index a7b30fe33c..584cd337fe 100644 --- a/frontend/menu/menu_common.h +++ b/frontend/menu/menu_common.h @@ -405,9 +405,9 @@ typedef struct extern rgui_handle_t *rgui; -void menu_init(void *data); -bool menu_iterate(void *data); -void menu_free(void *data); +void menu_init(void); +bool menu_iterate(void); +void menu_free(void); #ifdef HAVE_SHADER_MANAGER 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 load_menu_game_prepare(void *video_data); +void load_menu_game_prepare(void); void load_menu_game_prepare_dummy(void); bool load_menu_game(void); 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); -int menu_settings_toggle_setting(void *data, void *video_data, unsigned setting, unsigned action, unsigned menu_type); -int menu_set_settings(void *data, void *video_data, unsigned setting, unsigned action); +int menu_settings_toggle_setting(void *data, unsigned setting, unsigned action, unsigned menu_type); +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_populate_entries(void *data, unsigned menu_type); diff --git a/frontend/menu/menu_context.c b/frontend/menu/menu_context.c index 925f1b28bb..e721af0944 100644 --- a/frontend/menu/menu_context.c +++ b/frontend/menu/menu_context.c @@ -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); } -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; 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++) { - void *h = menu_ctx_drivers[i]->init(video_data); + void *h = menu_ctx_drivers[i]->init(); if (h) { *driver = menu_ctx_drivers[i]; diff --git a/frontend/menu/menu_context.h b/frontend/menu/menu_context.h index 9df7d9aa7e..da634f07d7 100644 --- a/frontend/menu/menu_context.h +++ b/frontend/menu/menu_context.h @@ -26,12 +26,12 @@ typedef struct menu_ctx_driver { - void (*set_texture)(void*, void*, bool); - void (*render_messagebox)(void*, void*, const char*); - void (*render)(void*, void*); - void* (*init)(void*); + void (*set_texture)(void*, bool); + void (*render_messagebox)(void*, const char*); + void (*render)(void*); + void* (*init)(void); void (*free)(void*); - void (*init_assets)(void*, void*); + void (*init_assets)(void*); void (*free_assets)(void*); void (*populate_entries)(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; 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_next_menu_driver(void); diff --git a/frontend/menu/menu_settings.c b/frontend/menu/menu_settings.c index cac77c944c..8eed614bec 100644 --- a/frontend/menu/menu_settings.c +++ b/frontend/menu/menu_settings.c @@ -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"); } -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; 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) - 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) { dist_shader /= 3; @@ -370,17 +370,17 @@ static int menu_core_setting_toggle(unsigned setting, unsigned action) 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; #ifdef HAVE_SHADER_MANAGER 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 if (setting >= RGUI_SETTINGS_CORE_OPTION_START) 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 @@ -478,7 +478,7 @@ static bool osk_callback_enter_filename_init(void *data) #define RARCH_DEFAULT_PORT 55435 #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; unsigned port = rgui->current_pad; @@ -1171,8 +1171,8 @@ int menu_set_settings(void *data, void *video_data, unsigned setting, unsigned a else g_settings.video.smooth = !g_settings.video.smooth; - if (driver.video_poke && driver.video_poke->set_filtering) - driver.video_poke->set_filtering(video_data, 1, g_settings.video.smooth); + if (driver.video_data && driver.video_poke && driver.video_poke->set_filtering) + driver.video_poke->set_filtering(driver.video_data, 1, g_settings.video.smooth); break; 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) { g_extern.console.screen.gamma_correction = 0; - if (driver.video_poke && driver.video_poke->apply_state_changes) - driver.video_poke->apply_state_changes(video_data); + if (driver.video_data && driver.video_poke && driver.video_poke->apply_state_changes) + driver.video_poke->apply_state_changes(driver.video_data); } else if (action == RGUI_ACTION_LEFT) { if (g_extern.console.screen.gamma_correction > 0) { g_extern.console.screen.gamma_correction--; - if (driver.video_poke && driver.video_poke->apply_state_changes) - driver.video_poke->apply_state_changes(video_data); + if (driver.video_data && driver.video_poke && driver.video_poke->apply_state_changes) + driver.video_poke->apply_state_changes(driver.video_data); } } 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) { g_extern.console.screen.gamma_correction++; - if (driver.video_poke && driver.video_poke->apply_state_changes) - driver.video_poke->apply_state_changes(video_data); + if (driver.video_data && driver.video_poke && driver.video_poke->apply_state_changes) + driver.video_poke->apply_state_changes(driver.video_data); } } break; @@ -1274,8 +1274,8 @@ int menu_set_settings(void *data, void *video_data, unsigned setting, unsigned a action == RGUI_ACTION_OK) g_settings.video.scale_integer = !g_settings.video.scale_integer; - if (driver.video_poke && driver.video_poke->apply_state_changes) - driver.video_poke->apply_state_changes(video_data); + if (driver.video_data && driver.video_poke && driver.video_poke->apply_state_changes) + driver.video_poke->apply_state_changes(driver.video_data); break; 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++; } - if (driver.video_poke && driver.video_poke->set_aspect_ratio) - driver.video_poke->set_aspect_ratio(video_data, g_settings.video.aspect_ratio_idx); + 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); break; 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: if (action == RGUI_ACTION_LEFT) { - if(rgui_current_gx_resolution > 0) + if (rgui_current_gx_resolution > 0) { 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) @@ -1322,8 +1323,9 @@ int menu_set_settings(void *data, void *video_data, unsigned setting, unsigned a #endif 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]); } } break; @@ -1366,7 +1368,7 @@ int menu_set_settings(void *data, void *video_data, unsigned setting, unsigned a if (menu_ctx && menu_ctx->free_assets) menu_ctx->free_assets(rgui); if (menu_ctx && menu_ctx->init_assets) - menu_ctx->init_assets(rgui, video_data); + menu_ctx->init_assets(rgui); } break; 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) menu_ctx->free_assets(rgui); if (menu_ctx && menu_ctx->init_assets) - menu_ctx->init_assets(rgui, video_data); + menu_ctx->init_assets(rgui); } break; 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) menu_ctx->free_assets(rgui); if (menu_ctx && menu_ctx->init_assets) - menu_ctx->init_assets(rgui, video_data); + menu_ctx->init_assets(rgui); } break; } @@ -1413,8 +1415,8 @@ int menu_set_settings(void *data, void *video_data, unsigned setting, unsigned a else g_extern.lifecycle_state |= (1ULL << MODE_VIDEO_SOFT_FILTER_ENABLE); - if (driver.video_poke && driver.video_poke->apply_state_changes) - driver.video_poke->apply_state_changes(video_data); + if (driver.video_data && driver.video_poke && driver.video_poke->apply_state_changes) + driver.video_poke->apply_state_changes(driver.video_data); break; #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 = 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. break;