diff --git a/menu/menu_shader.c b/menu/menu_shader.c index 5037bd19c4..726ec8f013 100644 --- a/menu/menu_shader.c +++ b/menu/menu_shader.c @@ -57,9 +57,9 @@ struct video_shader *menu_shader_get(void) return NULL; } -void menu_shader_manager_free(void) +void menu_shader_manager_free(void *data) { - menu_handle_t *menu = menu_driver_get_ptr(); + menu_handle_t *menu = (menu_handle_t*)data; if (menu->menu_driver_shader) free(menu->menu_driver_shader); menu->menu_driver_shader = NULL; @@ -92,7 +92,7 @@ bool menu_shader_manager_init(void) else path_shader = retroarch_get_shader_preset(); - menu_shader_manager_free(); + menu_shader_manager_free(menu); menu_shader = (struct video_shader*) calloc(1, sizeof(*menu_shader)); diff --git a/menu/menu_shader.h b/menu/menu_shader.h index 27c7feb8a2..8ee8940da8 100644 --- a/menu/menu_shader.h +++ b/menu/menu_shader.h @@ -33,7 +33,7 @@ enum auto_shader_type struct video_shader *menu_shader_get(void); -void menu_shader_manager_free(void); +void menu_shader_manager_free(void *data); /** * menu_shader_manager_init: diff --git a/retroarch.c b/retroarch.c index 9cbf3fbd96..8cadc254b6 100644 --- a/retroarch.c +++ b/retroarch.c @@ -5929,7 +5929,7 @@ bool menu_driver_ctl(enum rarch_menu_ctl_state state, void *data) playlist_free_cached(); #if defined(HAVE_CG) || defined(HAVE_GLSL) || defined(HAVE_SLANG) || defined(HAVE_HLSL) - menu_shader_manager_free(); + menu_shader_manager_free(p_rarch->menu_driver_data); #endif #ifdef HAVE_NETWORKING core_updater_list_free_cached();