Move shader_dir references
This commit is contained in:
parent
3555fc1d02
commit
10875bf6a0
|
@ -1398,34 +1398,13 @@ bool event_command(enum event_command cmd)
|
||||||
#endif
|
#endif
|
||||||
break;
|
break;
|
||||||
case EVENT_CMD_SHADER_DIR_DEINIT:
|
case EVENT_CMD_SHADER_DIR_DEINIT:
|
||||||
if (!global)
|
shader_dir_free();
|
||||||
break;
|
|
||||||
|
|
||||||
dir_list_free(global->dir.shader_dir.list);
|
|
||||||
global->dir.shader_dir.list = NULL;
|
|
||||||
global->dir.shader_dir.ptr = 0;
|
|
||||||
break;
|
break;
|
||||||
case EVENT_CMD_SHADER_DIR_INIT:
|
case EVENT_CMD_SHADER_DIR_INIT:
|
||||||
event_command(EVENT_CMD_SHADER_DIR_DEINIT);
|
event_command(EVENT_CMD_SHADER_DIR_DEINIT);
|
||||||
|
|
||||||
if (!*settings->video.shader_dir)
|
if (!shader_dir_init())
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
global->dir.shader_dir.list = dir_list_new_special(NULL, DIR_LIST_SHADERS, NULL);
|
|
||||||
|
|
||||||
if (!global->dir.shader_dir.list || global->dir.shader_dir.list->size == 0)
|
|
||||||
{
|
|
||||||
event_command(EVENT_CMD_SHADER_DIR_DEINIT);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
global->dir.shader_dir.ptr = 0;
|
|
||||||
dir_list_sort(global->dir.shader_dir.list, false);
|
|
||||||
|
|
||||||
for (i = 0; i < global->dir.shader_dir.list->size; i++)
|
|
||||||
RARCH_LOG("%s \"%s\"\n",
|
|
||||||
msg_hash_to_str(MSG_FOUND_SHADER),
|
|
||||||
global->dir.shader_dir.list->elems[i].data);
|
|
||||||
break;
|
break;
|
||||||
case EVENT_CMD_SAVEFILES:
|
case EVENT_CMD_SAVEFILES:
|
||||||
event_save_files();
|
event_save_files();
|
||||||
|
|
40
runloop.c
40
runloop.c
|
@ -40,6 +40,7 @@
|
||||||
#include "retroarch.h"
|
#include "retroarch.h"
|
||||||
#include "runloop.h"
|
#include "runloop.h"
|
||||||
#include "rewind.h"
|
#include "rewind.h"
|
||||||
|
#include "dir_list_special.h"
|
||||||
#include "audio/audio_driver.h"
|
#include "audio/audio_driver.h"
|
||||||
|
|
||||||
#include "msg_hash.h"
|
#include "msg_hash.h"
|
||||||
|
@ -290,6 +291,45 @@ static void check_stateslots(settings_t *settings,
|
||||||
#define SHADER_EXT_CG 0x0059776fU
|
#define SHADER_EXT_CG 0x0059776fU
|
||||||
#define SHADER_EXT_CGP 0x0b8865bfU
|
#define SHADER_EXT_CGP 0x0b8865bfU
|
||||||
|
|
||||||
|
void shader_dir_free(void)
|
||||||
|
{
|
||||||
|
global_t *global = global_get_ptr();
|
||||||
|
|
||||||
|
if (!global)
|
||||||
|
return;
|
||||||
|
|
||||||
|
dir_list_free(global->dir.shader_dir.list);
|
||||||
|
global->dir.shader_dir.list = NULL;
|
||||||
|
global->dir.shader_dir.ptr = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool shader_dir_init(void)
|
||||||
|
{
|
||||||
|
unsigned i;
|
||||||
|
global_t *global = global_get_ptr();
|
||||||
|
settings_t *settings = config_get_ptr();
|
||||||
|
|
||||||
|
if (!*settings->video.shader_dir)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
global->dir.shader_dir.list = dir_list_new_special(NULL, DIR_LIST_SHADERS, NULL);
|
||||||
|
|
||||||
|
if (!global->dir.shader_dir.list || global->dir.shader_dir.list->size == 0)
|
||||||
|
{
|
||||||
|
event_command(EVENT_CMD_SHADER_DIR_DEINIT);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
global->dir.shader_dir.ptr = 0;
|
||||||
|
dir_list_sort(global->dir.shader_dir.list, false);
|
||||||
|
|
||||||
|
for (i = 0; i < global->dir.shader_dir.list->size; i++)
|
||||||
|
RARCH_LOG("%s \"%s\"\n",
|
||||||
|
msg_hash_to_str(MSG_FOUND_SHADER),
|
||||||
|
global->dir.shader_dir.list->elems[i].data);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* check_shader_dir:
|
* check_shader_dir:
|
||||||
* @pressed_next : was next shader key pressed?
|
* @pressed_next : was next shader key pressed?
|
||||||
|
|
|
@ -300,6 +300,10 @@ const char *rarch_main_msg_queue_pull(void);
|
||||||
|
|
||||||
bool *runloop_perfcnt_enabled(void);
|
bool *runloop_perfcnt_enabled(void);
|
||||||
|
|
||||||
|
void shader_dir_free(void);
|
||||||
|
|
||||||
|
bool shader_dir_init(void);
|
||||||
|
|
||||||
bool runloop_ctl(enum runloop_ctl_state state, void *data);
|
bool runloop_ctl(enum runloop_ctl_state state, void *data);
|
||||||
|
|
||||||
typedef int (*transfer_cb_t)(void *data, size_t len);
|
typedef int (*transfer_cb_t)(void *data, size_t len);
|
||||||
|
|
Loading…
Reference in New Issue