Create RARCH_MENU_CTL_SHADER_DEINIT

This commit is contained in:
twinaphex 2015-12-10 20:09:15 +01:00
parent 201f3e780a
commit aaf6d64432
3 changed files with 9 additions and 5 deletions

View File

@ -664,6 +664,13 @@ bool menu_driver_ctl(enum rarch_menu_ctl_state state, void *data)
menu_iterate_render(menu_driver_data, menu_iterate_render(menu_driver_data,
menu_driver_data ? menu_driver_data->userdata : NULL); menu_driver_data ? menu_driver_data->userdata : NULL);
break; break;
case RARCH_MENU_CTL_SHADER_DEINIT:
#ifdef HAVE_SHADER_MANAGER
if (menu_driver_data->shader)
free(menu_driver_data->shader);
menu_driver_data->shader = NULL;
#endif
return true;
case RARCH_MENU_CTL_SHADER_GET: case RARCH_MENU_CTL_SHADER_GET:
{ {
struct video_shader **shader = (struct video_shader**)data; struct video_shader **shader = (struct video_shader**)data;

View File

@ -93,6 +93,7 @@ enum rarch_menu_ctl_state
{ {
RARCH_MENU_CTL_NONE = 0, RARCH_MENU_CTL_NONE = 0,
RARCH_MENU_CTL_DEINIT, RARCH_MENU_CTL_DEINIT,
RARCH_MENU_CTL_SHADER_DEINIT,
RARCH_MENU_CTL_SHADER_GET, RARCH_MENU_CTL_SHADER_GET,
RARCH_MENU_CTL_RENDER, RARCH_MENU_CTL_RENDER,
RARCH_MENU_CTL_FRAME, RARCH_MENU_CTL_FRAME,

View File

@ -369,9 +369,5 @@ void menu_shader_manager_apply_changes(void)
void menu_shader_free(menu_handle_t *menu) void menu_shader_free(menu_handle_t *menu)
{ {
#ifdef HAVE_SHADER_MANAGER menu_driver_ctl(RARCH_MENU_CTL_SHADER_DEINIT, NULL);
if (menu->shader)
free(menu->shader);
menu->shader = NULL;
#endif
} }