Move shader_dir_list to runloop.c
This commit is contained in:
parent
10875bf6a0
commit
ad3e74670b
43
runloop.c
43
runloop.c
|
@ -62,6 +62,8 @@
|
||||||
|
|
||||||
static struct global g_extern;
|
static struct global g_extern;
|
||||||
|
|
||||||
|
static rarch_dir_list_t runloop_shader_dir;
|
||||||
|
|
||||||
static unsigned runloop_pending_windowed_scale;
|
static unsigned runloop_pending_windowed_scale;
|
||||||
static char runloop_fullpath[PATH_MAX_LENGTH];
|
static char runloop_fullpath[PATH_MAX_LENGTH];
|
||||||
static bool runloop_perfcnt_enable;
|
static bool runloop_perfcnt_enable;
|
||||||
|
@ -293,40 +295,34 @@ static void check_stateslots(settings_t *settings,
|
||||||
|
|
||||||
void shader_dir_free(void)
|
void shader_dir_free(void)
|
||||||
{
|
{
|
||||||
global_t *global = global_get_ptr();
|
dir_list_free(runloop_shader_dir.list);
|
||||||
|
runloop_shader_dir.list = NULL;
|
||||||
if (!global)
|
runloop_shader_dir.ptr = 0;
|
||||||
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)
|
bool shader_dir_init(void)
|
||||||
{
|
{
|
||||||
unsigned i;
|
unsigned i;
|
||||||
global_t *global = global_get_ptr();
|
|
||||||
settings_t *settings = config_get_ptr();
|
settings_t *settings = config_get_ptr();
|
||||||
|
|
||||||
if (!*settings->video.shader_dir)
|
if (!*settings->video.shader_dir)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
global->dir.shader_dir.list = dir_list_new_special(NULL, DIR_LIST_SHADERS, NULL);
|
runloop_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)
|
if (!runloop_shader_dir.list || runloop_shader_dir.list->size == 0)
|
||||||
{
|
{
|
||||||
event_command(EVENT_CMD_SHADER_DIR_DEINIT);
|
event_command(EVENT_CMD_SHADER_DIR_DEINIT);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
global->dir.shader_dir.ptr = 0;
|
runloop_shader_dir.ptr = 0;
|
||||||
dir_list_sort(global->dir.shader_dir.list, false);
|
dir_list_sort(runloop_shader_dir.list, false);
|
||||||
|
|
||||||
for (i = 0; i < global->dir.shader_dir.list->size; i++)
|
for (i = 0; i < runloop_shader_dir.list->size; i++)
|
||||||
RARCH_LOG("%s \"%s\"\n",
|
RARCH_LOG("%s \"%s\"\n",
|
||||||
msg_hash_to_str(MSG_FOUND_SHADER),
|
msg_hash_to_str(MSG_FOUND_SHADER),
|
||||||
global->dir.shader_dir.list->elems[i].data);
|
runloop_shader_dir.list->elems[i].data);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -348,27 +344,26 @@ static void check_shader_dir(bool pressed_next, bool pressed_prev)
|
||||||
const char *shader = NULL;
|
const char *shader = NULL;
|
||||||
const char *ext = NULL;
|
const char *ext = NULL;
|
||||||
enum rarch_shader_type type = RARCH_SHADER_NONE;
|
enum rarch_shader_type type = RARCH_SHADER_NONE;
|
||||||
global_t *global = global_get_ptr();
|
|
||||||
|
|
||||||
if (!global || !global->dir.shader_dir.list)
|
if (!runloop_shader_dir.list)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (pressed_next)
|
if (pressed_next)
|
||||||
{
|
{
|
||||||
global->dir.shader_dir.ptr = (global->dir.shader_dir.ptr + 1) %
|
runloop_shader_dir.ptr = (runloop_shader_dir.ptr + 1) %
|
||||||
global->dir.shader_dir.list->size;
|
runloop_shader_dir.list->size;
|
||||||
}
|
}
|
||||||
else if (pressed_prev)
|
else if (pressed_prev)
|
||||||
{
|
{
|
||||||
if (global->dir.shader_dir.ptr == 0)
|
if (runloop_shader_dir.ptr == 0)
|
||||||
global->dir.shader_dir.ptr = global->dir.shader_dir.list->size - 1;
|
runloop_shader_dir.ptr = runloop_shader_dir.list->size - 1;
|
||||||
else
|
else
|
||||||
global->dir.shader_dir.ptr--;
|
runloop_shader_dir.ptr--;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
return;
|
return;
|
||||||
|
|
||||||
shader = global->dir.shader_dir.list->elems[global->dir.shader_dir.ptr].data;
|
shader = runloop_shader_dir.list->elems[runloop_shader_dir.ptr].data;
|
||||||
ext = path_get_extension(shader);
|
ext = path_get_extension(shader);
|
||||||
ext_hash = msg_hash_calculate(ext);
|
ext_hash = msg_hash_calculate(ext);
|
||||||
|
|
||||||
|
@ -388,7 +383,7 @@ static void check_shader_dir(bool pressed_next, bool pressed_prev)
|
||||||
|
|
||||||
snprintf(msg, sizeof(msg), "%s #%u: \"%s\".",
|
snprintf(msg, sizeof(msg), "%s #%u: \"%s\".",
|
||||||
msg_hash_to_str(MSG_SHADER),
|
msg_hash_to_str(MSG_SHADER),
|
||||||
(unsigned)global->dir.shader_dir.ptr, shader);
|
(unsigned)runloop_shader_dir.ptr, shader);
|
||||||
rarch_main_msg_queue_push(msg, 1, 120, true);
|
rarch_main_msg_queue_push(msg, 1, 120, true);
|
||||||
RARCH_LOG("%s \"%s\".\n",
|
RARCH_LOG("%s \"%s\".\n",
|
||||||
msg_hash_to_str(MSG_APPLYING_SHADER),
|
msg_hash_to_str(MSG_APPLYING_SHADER),
|
||||||
|
|
|
@ -92,7 +92,6 @@ typedef struct rarch_dir
|
||||||
#ifdef HAVE_OVERLAY
|
#ifdef HAVE_OVERLAY
|
||||||
char osk_overlay[PATH_MAX_LENGTH];
|
char osk_overlay[PATH_MAX_LENGTH];
|
||||||
#endif
|
#endif
|
||||||
rarch_dir_list_t shader_dir;
|
|
||||||
rarch_dir_list_t filter_dir;
|
rarch_dir_list_t filter_dir;
|
||||||
} rarch_dir_t;
|
} rarch_dir_t;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue