mirror of
https://github.com/libretro/RetroArch
synced 2025-03-02 19:13:34 +00:00
runloop.c - Simplify check_shader_dir
This commit is contained in:
parent
3dd290e4f6
commit
54a5402189
38
runloop.c
38
runloop.c
@ -376,51 +376,45 @@ static void check_shader_dir(bool pressed_next, bool pressed_prev)
|
|||||||
char msg[PATH_MAX];
|
char msg[PATH_MAX];
|
||||||
const char *shader = NULL, *ext = NULL;
|
const char *shader = NULL, *ext = NULL;
|
||||||
enum rarch_shader_type type = RARCH_SHADER_NONE;
|
enum rarch_shader_type type = RARCH_SHADER_NONE;
|
||||||
bool should_apply = false;
|
|
||||||
|
|
||||||
if (!g_extern.shader_dir.list || !driver.video->set_shader)
|
if (!g_extern.shader_dir.list || !driver.video->set_shader)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (pressed_next)
|
if (pressed_next)
|
||||||
{
|
{
|
||||||
should_apply = true;
|
|
||||||
g_extern.shader_dir.ptr = (g_extern.shader_dir.ptr + 1) %
|
g_extern.shader_dir.ptr = (g_extern.shader_dir.ptr + 1) %
|
||||||
g_extern.shader_dir.list->size;
|
g_extern.shader_dir.list->size;
|
||||||
}
|
}
|
||||||
else if (pressed_prev)
|
else if (pressed_prev)
|
||||||
{
|
{
|
||||||
should_apply = true;
|
|
||||||
if (g_extern.shader_dir.ptr == 0)
|
if (g_extern.shader_dir.ptr == 0)
|
||||||
g_extern.shader_dir.ptr = g_extern.shader_dir.list->size - 1;
|
g_extern.shader_dir.ptr = g_extern.shader_dir.list->size - 1;
|
||||||
else
|
else
|
||||||
g_extern.shader_dir.ptr--;
|
g_extern.shader_dir.ptr--;
|
||||||
}
|
}
|
||||||
|
else
|
||||||
if (!should_apply)
|
|
||||||
return;
|
return;
|
||||||
|
|
||||||
{
|
shader = g_extern.shader_dir.list->elems[g_extern.shader_dir.ptr].data;
|
||||||
shader = g_extern.shader_dir.list->elems[g_extern.shader_dir.ptr].data;
|
ext = path_get_extension(shader);
|
||||||
ext = path_get_extension(shader);
|
|
||||||
|
|
||||||
if (strcmp(ext, "glsl") == 0 || strcmp(ext, "glslp") == 0)
|
if (strcmp(ext, "glsl") == 0 || strcmp(ext, "glslp") == 0)
|
||||||
type = RARCH_SHADER_GLSL;
|
type = RARCH_SHADER_GLSL;
|
||||||
else if (strcmp(ext, "cg") == 0 || strcmp(ext, "cgp") == 0)
|
else if (strcmp(ext, "cg") == 0 || strcmp(ext, "cgp") == 0)
|
||||||
type = RARCH_SHADER_CG;
|
type = RARCH_SHADER_CG;
|
||||||
|
|
||||||
if (type == RARCH_SHADER_NONE)
|
if (type == RARCH_SHADER_NONE)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
msg_queue_clear(g_extern.msg_queue);
|
msg_queue_clear(g_extern.msg_queue);
|
||||||
|
|
||||||
snprintf(msg, sizeof(msg), "Shader #%u: \"%s\".",
|
snprintf(msg, sizeof(msg), "Shader #%u: \"%s\".",
|
||||||
(unsigned)g_extern.shader_dir.ptr, shader);
|
(unsigned)g_extern.shader_dir.ptr, shader);
|
||||||
msg_queue_push(g_extern.msg_queue, msg, 1, 120);
|
msg_queue_push(g_extern.msg_queue, msg, 1, 120);
|
||||||
RARCH_LOG("Applying shader \"%s\".\n", shader);
|
RARCH_LOG("Applying shader \"%s\".\n", shader);
|
||||||
|
|
||||||
if (!driver.video->set_shader(driver.video_data, type, shader))
|
if (!driver.video->set_shader(driver.video_data, type, shader))
|
||||||
RARCH_WARN("Failed to apply shader.\n");
|
RARCH_WARN("Failed to apply shader.\n");
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
Loading…
x
Reference in New Issue
Block a user