(Menu) Convert rgui->shader into void* too
This commit is contained in:
parent
8f8f757d65
commit
ecb21743f8
|
@ -47,6 +47,7 @@
|
||||||
static inline struct gfx_shader *shader_manager_get_current_shader(void *data, unsigned type)
|
static inline struct gfx_shader *shader_manager_get_current_shader(void *data, unsigned type)
|
||||||
{
|
{
|
||||||
rgui_handle_t *rgui = (rgui_handle_t*)data;
|
rgui_handle_t *rgui = (rgui_handle_t*)data;
|
||||||
|
struct gfx_shader *shader = NULL;
|
||||||
|
|
||||||
if (!rgui)
|
if (!rgui)
|
||||||
{
|
{
|
||||||
|
@ -54,7 +55,9 @@ static inline struct gfx_shader *shader_manager_get_current_shader(void *data, u
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct gfx_shader *shader = type == RGUI_SETTINGS_SHADER_PRESET_PARAMETERS ? &rgui->shader : NULL;
|
if (type == RGUI_SETTINGS_SHADER_PRESET_PARAMETERS)
|
||||||
|
shader = (struct gfx_shader *)rgui->shader;
|
||||||
|
|
||||||
if (!shader && driver.video_poke && driver.video_data && driver.video_poke->get_current_shader)
|
if (!shader && driver.video_poke && driver.video_data && driver.video_poke->get_current_shader)
|
||||||
shader = driver.video_poke->get_current_shader(driver.video_data);
|
shader = driver.video_poke->get_current_shader(driver.video_data);
|
||||||
|
|
||||||
|
@ -79,7 +82,7 @@ static void menu_common_entries_init(void *data, unsigned menu_type)
|
||||||
{
|
{
|
||||||
file_list_clear(rgui->selection_buf);
|
file_list_clear(rgui->selection_buf);
|
||||||
|
|
||||||
struct gfx_shader *shader = shader_manager_get_current_shader(rgui, menu_type);
|
struct gfx_shader *shader = (struct gfx_shader*)shader_manager_get_current_shader(rgui, menu_type);
|
||||||
if (shader)
|
if (shader)
|
||||||
for (i = 0; i < shader->num_parameters; i++)
|
for (i = 0; i < shader->num_parameters; i++)
|
||||||
file_list_push(rgui->selection_buf, shader->parameters[i].desc, RGUI_SETTINGS_SHADER_PARAMETER_0 + i, 0);
|
file_list_push(rgui->selection_buf, shader->parameters[i].desc, RGUI_SETTINGS_SHADER_PARAMETER_0 + i, 0);
|
||||||
|
@ -87,6 +90,12 @@ static void menu_common_entries_init(void *data, unsigned menu_type)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case RGUI_SETTINGS_SHADER_OPTIONS:
|
case RGUI_SETTINGS_SHADER_OPTIONS:
|
||||||
|
{
|
||||||
|
struct gfx_shader *shader = (struct gfx_shader*)rgui->shader;
|
||||||
|
|
||||||
|
if (!shader)
|
||||||
|
return;
|
||||||
|
|
||||||
file_list_clear(rgui->selection_buf);
|
file_list_clear(rgui->selection_buf);
|
||||||
file_list_push(rgui->selection_buf, "Apply Shader Changes",
|
file_list_push(rgui->selection_buf, "Apply Shader Changes",
|
||||||
RGUI_SETTINGS_SHADER_APPLY, 0);
|
RGUI_SETTINGS_SHADER_APPLY, 0);
|
||||||
|
@ -102,7 +111,7 @@ static void menu_common_entries_init(void *data, unsigned menu_type)
|
||||||
file_list_push(rgui->selection_buf, "Shader Passes",
|
file_list_push(rgui->selection_buf, "Shader Passes",
|
||||||
RGUI_SETTINGS_SHADER_PASSES, 0);
|
RGUI_SETTINGS_SHADER_PASSES, 0);
|
||||||
|
|
||||||
for (i = 0; i < rgui->shader.passes; i++)
|
for (i = 0; i < shader->passes; i++)
|
||||||
{
|
{
|
||||||
char buf[64];
|
char buf[64];
|
||||||
|
|
||||||
|
@ -118,7 +127,8 @@ static void menu_common_entries_init(void *data, unsigned menu_type)
|
||||||
file_list_push(rgui->selection_buf, buf,
|
file_list_push(rgui->selection_buf, buf,
|
||||||
RGUI_SETTINGS_SHADER_0_SCALE + 3 * i, 0);
|
RGUI_SETTINGS_SHADER_0_SCALE + 3 * i, 0);
|
||||||
}
|
}
|
||||||
break;
|
}
|
||||||
|
break;
|
||||||
#endif
|
#endif
|
||||||
case RGUI_SETTINGS_GENERAL_OPTIONS:
|
case RGUI_SETTINGS_GENERAL_OPTIONS:
|
||||||
file_list_clear(rgui->selection_buf);
|
file_list_clear(rgui->selection_buf);
|
||||||
|
@ -2053,17 +2063,19 @@ static int menu_common_iterate(unsigned action)
|
||||||
char shader_path[PATH_MAX];
|
char shader_path[PATH_MAX];
|
||||||
fill_pathname_join(shader_path, dir, path, sizeof(shader_path));
|
fill_pathname_join(shader_path, dir, path, sizeof(shader_path));
|
||||||
if (driver.menu_ctx && driver.menu_ctx->backend && driver.menu_ctx->backend->shader_manager_set_preset)
|
if (driver.menu_ctx && driver.menu_ctx->backend && driver.menu_ctx->backend->shader_manager_set_preset)
|
||||||
driver.menu_ctx->backend->shader_manager_set_preset(&rgui->shader, gfx_shader_parse_type(shader_path, RARCH_SHADER_NONE),
|
driver.menu_ctx->backend->shader_manager_set_preset(rgui->shader, gfx_shader_parse_type(shader_path, RARCH_SHADER_NONE),
|
||||||
shader_path);
|
shader_path);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
struct gfx_shader *shader = (struct gfx_shader*)rgui->shader;
|
||||||
unsigned pass = (menu_type - RGUI_SETTINGS_SHADER_0) / 3;
|
unsigned pass = (menu_type - RGUI_SETTINGS_SHADER_0) / 3;
|
||||||
fill_pathname_join(rgui->shader.pass[pass].source.path,
|
|
||||||
dir, path, sizeof(rgui->shader.pass[pass].source.path));
|
fill_pathname_join(shader->pass[pass].source.path,
|
||||||
|
dir, path, sizeof(shader->pass[pass].source.path));
|
||||||
|
|
||||||
// This will reset any changed parameters.
|
// This will reset any changed parameters.
|
||||||
gfx_shader_resolve_parameters(NULL, &rgui->shader);
|
gfx_shader_resolve_parameters(NULL, rgui->shader);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Pop stack until we hit shader manager again.
|
// Pop stack until we hit shader manager again.
|
||||||
|
@ -2340,7 +2352,6 @@ static void menu_common_shader_manager_init(void *data)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
#ifdef HAVE_SHADER_MANAGER
|
#ifdef HAVE_SHADER_MANAGER
|
||||||
memset(&rgui->shader, 0, sizeof(rgui->shader));
|
|
||||||
config_file_t *conf = NULL;
|
config_file_t *conf = NULL;
|
||||||
|
|
||||||
const char *config_path = NULL;
|
const char *config_path = NULL;
|
||||||
|
@ -2373,19 +2384,21 @@ static void menu_common_shader_manager_init(void *data)
|
||||||
conf = config_file_new(g_settings.video.shader_path);
|
conf = config_file_new(g_settings.video.shader_path);
|
||||||
if (conf)
|
if (conf)
|
||||||
{
|
{
|
||||||
if (gfx_shader_read_conf_cgp(conf, &rgui->shader))
|
if (gfx_shader_read_conf_cgp(conf, rgui->shader))
|
||||||
{
|
{
|
||||||
gfx_shader_resolve_relative(&rgui->shader, g_settings.video.shader_path);
|
gfx_shader_resolve_relative(rgui->shader, g_settings.video.shader_path);
|
||||||
gfx_shader_resolve_parameters(conf, &rgui->shader);
|
gfx_shader_resolve_parameters(conf, rgui->shader);
|
||||||
}
|
}
|
||||||
config_file_free(conf);
|
config_file_free(conf);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (strcmp(ext, "glsl") == 0 || strcmp(ext, "cg") == 0)
|
else if (strcmp(ext, "glsl") == 0 || strcmp(ext, "cg") == 0)
|
||||||
{
|
{
|
||||||
strlcpy(rgui->shader.pass[0].source.path, g_settings.video.shader_path,
|
struct gfx_shader *shader = (struct gfx_shader*)rgui->shader;
|
||||||
sizeof(rgui->shader.pass[0].source.path));
|
|
||||||
rgui->shader.passes = 1;
|
strlcpy(shader->pass[0].source.path, g_settings.video.shader_path,
|
||||||
|
sizeof(shader->pass[0].source.path));
|
||||||
|
shader->passes = 1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -2403,10 +2416,10 @@ static void menu_common_shader_manager_init(void *data)
|
||||||
|
|
||||||
if (conf)
|
if (conf)
|
||||||
{
|
{
|
||||||
if (gfx_shader_read_conf_cgp(conf, &rgui->shader))
|
if (gfx_shader_read_conf_cgp(conf, rgui->shader))
|
||||||
{
|
{
|
||||||
gfx_shader_resolve_relative(&rgui->shader, cgp_path);
|
gfx_shader_resolve_relative(rgui->shader, cgp_path);
|
||||||
gfx_shader_resolve_parameters(conf, &rgui->shader);
|
gfx_shader_resolve_parameters(conf, rgui->shader);
|
||||||
}
|
}
|
||||||
config_file_free(conf);
|
config_file_free(conf);
|
||||||
}
|
}
|
||||||
|
@ -2471,7 +2484,7 @@ static void menu_common_shader_manager_get_str(void *data, char *type_str, size_
|
||||||
// rgui->parameter_shader here.
|
// rgui->parameter_shader here.
|
||||||
if (shader)
|
if (shader)
|
||||||
{
|
{
|
||||||
const struct gfx_shader_parameter *param = &shader->parameters[type - RGUI_SETTINGS_SHADER_PARAMETER_0];
|
const struct gfx_shader_parameter *param = (const struct gfx_shader_parameter*)&shader->parameters[type - RGUI_SETTINGS_SHADER_PARAMETER_0];
|
||||||
snprintf(type_str, type_str_size, "%.2f [%.2f %.2f]", param->current, param->minimum, param->maximum);
|
snprintf(type_str, type_str_size, "%.2f [%.2f %.2f]", param->current, param->minimum, param->maximum);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -2539,7 +2552,7 @@ static void menu_common_shader_manager_save_preset(const char *basename, bool ap
|
||||||
}
|
}
|
||||||
|
|
||||||
if (driver.menu_ctx && driver.menu_ctx->backend && driver.menu_ctx->backend->shader_manager_get_type)
|
if (driver.menu_ctx && driver.menu_ctx->backend && driver.menu_ctx->backend->shader_manager_get_type)
|
||||||
type = driver.menu_ctx->backend->shader_manager_get_type(&rgui->shader);
|
type = driver.menu_ctx->backend->shader_manager_get_type(rgui->shader);
|
||||||
else
|
else
|
||||||
type = RARCH_SHADER_NONE;
|
type = RARCH_SHADER_NONE;
|
||||||
|
|
||||||
|
@ -2580,7 +2593,7 @@ static void menu_common_shader_manager_save_preset(const char *basename, bool ap
|
||||||
config_file_t *conf = config_file_new(NULL);
|
config_file_t *conf = config_file_new(NULL);
|
||||||
if (!conf)
|
if (!conf)
|
||||||
return;
|
return;
|
||||||
gfx_shader_write_conf_cgp(conf, &rgui->shader);
|
gfx_shader_write_conf_cgp(conf, rgui->shader);
|
||||||
|
|
||||||
bool ret = false;
|
bool ret = false;
|
||||||
|
|
||||||
|
@ -2699,11 +2712,19 @@ static int menu_common_shader_manager_setting_toggle(unsigned setting, unsigned
|
||||||
}
|
}
|
||||||
else if (setting >= RGUI_SETTINGS_SHADER_PARAMETER_0 && setting <= RGUI_SETTINGS_SHADER_PARAMETER_LAST)
|
else if (setting >= RGUI_SETTINGS_SHADER_PARAMETER_0 && setting <= RGUI_SETTINGS_SHADER_PARAMETER_LAST)
|
||||||
{
|
{
|
||||||
if (!rgui->parameter_shader)
|
struct gfx_shader *shader;
|
||||||
|
struct gfx_shader_parameter *param;
|
||||||
|
|
||||||
|
shader = (struct gfx_shader*)rgui->parameter_shader;
|
||||||
|
|
||||||
|
if (!shader)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
param = (struct gfx_shader_parameter*)&shader->parameters[setting - RGUI_SETTINGS_SHADER_PARAMETER_0];
|
||||||
|
|
||||||
|
if (!param)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
struct gfx_shader *shader = (struct gfx_shader*)&rgui->parameter_shader;
|
|
||||||
struct gfx_shader_parameter *param = (struct gfx_shader_parameter*)&shader->parameters[setting - RGUI_SETTINGS_SHADER_PARAMETER_0];
|
|
||||||
switch (action)
|
switch (action)
|
||||||
{
|
{
|
||||||
case RGUI_ACTION_START:
|
case RGUI_ACTION_START:
|
||||||
|
@ -2729,9 +2750,13 @@ static int menu_common_shader_manager_setting_toggle(unsigned setting, unsigned
|
||||||
driver.menu_ctx->backend->setting_set(setting, action);
|
driver.menu_ctx->backend->setting_set(setting, action);
|
||||||
else if (((dist_shader % 3) == 0 || setting == RGUI_SETTINGS_SHADER_PRESET))
|
else if (((dist_shader % 3) == 0 || setting == RGUI_SETTINGS_SHADER_PRESET))
|
||||||
{
|
{
|
||||||
|
struct gfx_shader *shader = NULL;
|
||||||
|
struct gfx_shader_pass *pass = NULL;
|
||||||
dist_shader /= 3;
|
dist_shader /= 3;
|
||||||
struct gfx_shader_pass *pass = setting == RGUI_SETTINGS_SHADER_PRESET ?
|
shader = (struct gfx_shader*)rgui->shader;
|
||||||
&rgui->shader.pass[dist_shader] : NULL;
|
if (shader && setting == RGUI_SETTINGS_SHADER_PRESET)
|
||||||
|
pass = (struct gfx_shader_pass*)&shader->pass[dist_shader];
|
||||||
|
|
||||||
switch (action)
|
switch (action)
|
||||||
{
|
{
|
||||||
case RGUI_ACTION_OK:
|
case RGUI_ACTION_OK:
|
||||||
|
@ -2751,12 +2776,15 @@ static int menu_common_shader_manager_setting_toggle(unsigned setting, unsigned
|
||||||
}
|
}
|
||||||
else if ((dist_filter % 3) == 0)
|
else if ((dist_filter % 3) == 0)
|
||||||
{
|
{
|
||||||
|
struct gfx_shader *shader = NULL;
|
||||||
|
struct gfx_shader_pass *pass = NULL;
|
||||||
dist_filter /= 3;
|
dist_filter /= 3;
|
||||||
struct gfx_shader_pass *pass = &rgui->shader.pass[dist_filter];
|
shader = (struct gfx_shader*)rgui->shader;
|
||||||
|
pass = (struct gfx_shader_pass*)&shader->pass[dist_filter];
|
||||||
switch (action)
|
switch (action)
|
||||||
{
|
{
|
||||||
case RGUI_ACTION_START:
|
case RGUI_ACTION_START:
|
||||||
rgui->shader.pass[dist_filter].filter = RARCH_FILTER_UNSPEC;
|
shader->pass[dist_filter].filter = RARCH_FILTER_UNSPEC;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case RGUI_ACTION_LEFT:
|
case RGUI_ACTION_LEFT:
|
||||||
|
@ -2774,8 +2802,11 @@ static int menu_common_shader_manager_setting_toggle(unsigned setting, unsigned
|
||||||
}
|
}
|
||||||
else if ((dist_scale % 3) == 0)
|
else if ((dist_scale % 3) == 0)
|
||||||
{
|
{
|
||||||
|
struct gfx_shader *shader = NULL;
|
||||||
|
struct gfx_shader_pass *pass = NULL;
|
||||||
dist_scale /= 3;
|
dist_scale /= 3;
|
||||||
struct gfx_shader_pass *pass = &rgui->shader.pass[dist_scale];
|
shader = (struct gfx_shader*)rgui->shader;
|
||||||
|
pass = (struct gfx_shader_pass*)&shader->pass[dist_scale];
|
||||||
switch (action)
|
switch (action)
|
||||||
{
|
{
|
||||||
case RGUI_ACTION_START:
|
case RGUI_ACTION_START:
|
||||||
|
@ -2963,7 +2994,7 @@ static bool osk_callback_enter_filename(void *data)
|
||||||
config_file_t *conf = config_file_new(NULL);
|
config_file_t *conf = config_file_new(NULL);
|
||||||
if (!conf)
|
if (!conf)
|
||||||
return false;
|
return false;
|
||||||
gfx_shader_write_conf_cgp(conf, &rgui->shader);
|
gfx_shader_write_conf_cgp(conf, rgui->shader);
|
||||||
config_file_write(conf, filepath);
|
config_file_write(conf, filepath);
|
||||||
config_file_free(conf);
|
config_file_free(conf);
|
||||||
goto do_exit;
|
goto do_exit;
|
||||||
|
@ -4344,39 +4375,45 @@ static int menu_common_setting_set(unsigned setting, unsigned action)
|
||||||
break;
|
break;
|
||||||
#ifdef HAVE_SHADER_MANAGER
|
#ifdef HAVE_SHADER_MANAGER
|
||||||
case RGUI_SETTINGS_SHADER_PASSES:
|
case RGUI_SETTINGS_SHADER_PASSES:
|
||||||
switch (action)
|
|
||||||
{
|
{
|
||||||
case RGUI_ACTION_START:
|
struct gfx_shader *shader = (struct gfx_shader*)rgui->shader;
|
||||||
rgui->shader.passes = 0;
|
|
||||||
rgui->need_refresh = true;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case RGUI_ACTION_LEFT:
|
switch (action)
|
||||||
if (rgui->shader.passes)
|
{
|
||||||
{
|
case RGUI_ACTION_START:
|
||||||
rgui->shader.passes--;
|
if (shader && shader->passes)
|
||||||
|
shader->passes = 0;
|
||||||
rgui->need_refresh = true;
|
rgui->need_refresh = true;
|
||||||
}
|
break;
|
||||||
break;
|
|
||||||
|
|
||||||
case RGUI_ACTION_RIGHT:
|
case RGUI_ACTION_LEFT:
|
||||||
case RGUI_ACTION_OK:
|
if (shader && shader->passes)
|
||||||
if (rgui->shader.passes < GFX_MAX_SHADERS)
|
{
|
||||||
{
|
shader->passes--;
|
||||||
rgui->shader.passes++;
|
rgui->need_refresh = true;
|
||||||
rgui->need_refresh = true;
|
}
|
||||||
}
|
break;
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
case RGUI_ACTION_RIGHT:
|
||||||
break;
|
case RGUI_ACTION_OK:
|
||||||
|
if (shader && (shader->passes < GFX_MAX_SHADERS))
|
||||||
|
{
|
||||||
|
shader->passes++;
|
||||||
|
rgui->need_refresh = true;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (rgui->need_refresh)
|
||||||
|
gfx_shader_resolve_parameters(NULL, rgui->shader);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (rgui->need_refresh)
|
|
||||||
gfx_shader_resolve_parameters(NULL, &rgui->shader);
|
|
||||||
break;
|
break;
|
||||||
case RGUI_SETTINGS_SHADER_APPLY:
|
case RGUI_SETTINGS_SHADER_APPLY:
|
||||||
{
|
{
|
||||||
|
struct gfx_shader *shader = (struct gfx_shader*)rgui->shader;
|
||||||
unsigned type = RARCH_SHADER_NONE;
|
unsigned type = RARCH_SHADER_NONE;
|
||||||
|
|
||||||
if (!driver.video || !driver.video->set_shader || action != RGUI_ACTION_OK)
|
if (!driver.video || !driver.video->set_shader || action != RGUI_ACTION_OK)
|
||||||
|
@ -4385,9 +4422,9 @@ static int menu_common_setting_set(unsigned setting, unsigned action)
|
||||||
RARCH_LOG("Applying shader ...\n");
|
RARCH_LOG("Applying shader ...\n");
|
||||||
|
|
||||||
if (driver.menu_ctx && driver.menu_ctx->backend && driver.menu_ctx->backend->shader_manager_get_type)
|
if (driver.menu_ctx && driver.menu_ctx->backend && driver.menu_ctx->backend->shader_manager_get_type)
|
||||||
type = driver.menu_ctx->backend->shader_manager_get_type(&rgui->shader);
|
type = driver.menu_ctx->backend->shader_manager_get_type(rgui->shader);
|
||||||
|
|
||||||
if (rgui->shader.passes && type != RARCH_SHADER_NONE
|
if (shader->passes && type != RARCH_SHADER_NONE
|
||||||
&& driver.menu_ctx && driver.menu_ctx->backend &&
|
&& driver.menu_ctx && driver.menu_ctx->backend &&
|
||||||
driver.menu_ctx->backend->shader_manager_save_preset)
|
driver.menu_ctx->backend->shader_manager_save_preset)
|
||||||
driver.menu_ctx->backend->shader_manager_save_preset(NULL, true);
|
driver.menu_ctx->backend->shader_manager_save_preset(NULL, true);
|
||||||
|
|
|
@ -478,7 +478,7 @@ static void rgui_render(void)
|
||||||
if (type >= RGUI_SETTINGS_SHADER_PARAMETER_0 && type <= RGUI_SETTINGS_SHADER_PARAMETER_LAST)
|
if (type >= RGUI_SETTINGS_SHADER_PARAMETER_0 && type <= RGUI_SETTINGS_SHADER_PARAMETER_LAST)
|
||||||
driver.menu_ctx->backend->shader_manager_get_str(rgui->parameter_shader, type_str, sizeof(type_str), type);
|
driver.menu_ctx->backend->shader_manager_get_str(rgui->parameter_shader, type_str, sizeof(type_str), type);
|
||||||
else
|
else
|
||||||
driver.menu_ctx->backend->shader_manager_get_str(&rgui->shader, type_str, sizeof(type_str), type);
|
driver.menu_ctx->backend->shader_manager_get_str(rgui->shader, type_str, sizeof(type_str), type);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
|
@ -348,7 +348,7 @@ static void rmenu_render(void)
|
||||||
if (type >= RGUI_SETTINGS_SHADER_PARAMETER_0 && type <= RGUI_SETTINGS_SHADER_PARAMETER_LAST)
|
if (type >= RGUI_SETTINGS_SHADER_PARAMETER_0 && type <= RGUI_SETTINGS_SHADER_PARAMETER_LAST)
|
||||||
driver.menu_ctx->backend->shader_manager_get_str(rgui->parameter_shader, type_str, sizeof(type_str), type);
|
driver.menu_ctx->backend->shader_manager_get_str(rgui->parameter_shader, type_str, sizeof(type_str), type);
|
||||||
else
|
else
|
||||||
driver.menu_ctx->backend->shader_manager_get_str(&rgui->shader, type_str, sizeof(type_str), type);
|
driver.menu_ctx->backend->shader_manager_get_str(rgui->shader, type_str, sizeof(type_str), type);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
|
@ -570,7 +570,7 @@ static void rmenu_xui_render(void)
|
||||||
snprintf(type_str, sizeof(type_str), "%s",
|
snprintf(type_str, sizeof(type_str), "%s",
|
||||||
g_settings.video.smooth ? "Linear" : "Nearest");
|
g_settings.video.smooth ? "Linear" : "Nearest");
|
||||||
else if (driver.menu_ctx && driver.menu_ctx->backend && driver.menu_ctx->backend->shader_manager_get_str)
|
else if (driver.menu_ctx && driver.menu_ctx->backend && driver.menu_ctx->backend->shader_manager_get_str)
|
||||||
driver.menu_ctx->backend->shader_manager_get_str(&rgui->shader, type_str, sizeof(type_str), type);
|
driver.menu_ctx->backend->shader_manager_get_str(rgui->shader, type_str, sizeof(type_str), type);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
// Pretty-print libretro cores from menu.
|
// Pretty-print libretro cores from menu.
|
||||||
|
|
|
@ -323,6 +323,9 @@ void *menu_init(const void *data)
|
||||||
rgui->menu_stack = (file_list_t*)calloc(1, sizeof(file_list_t));
|
rgui->menu_stack = (file_list_t*)calloc(1, sizeof(file_list_t));
|
||||||
rgui->selection_buf = (file_list_t*)calloc(1, sizeof(file_list_t));
|
rgui->selection_buf = (file_list_t*)calloc(1, sizeof(file_list_t));
|
||||||
rgui->core_info_current = (core_info_t*)calloc(1, sizeof(core_info_t));
|
rgui->core_info_current = (core_info_t*)calloc(1, sizeof(core_info_t));
|
||||||
|
#ifdef HAVE_SHADER_MANAGER
|
||||||
|
rgui->shader = (struct gfx_shader*)calloc(1, sizeof(struct gfx_shader));
|
||||||
|
#endif
|
||||||
file_list_push(rgui->menu_stack, "", RGUI_SETTINGS, 0);
|
file_list_push(rgui->menu_stack, "", RGUI_SETTINGS, 0);
|
||||||
menu_clear_navigation(rgui);
|
menu_clear_navigation(rgui);
|
||||||
rgui->push_start_screen = g_settings.rgui_show_start_screen;
|
rgui->push_start_screen = g_settings.rgui_show_start_screen;
|
||||||
|
@ -355,6 +358,12 @@ void menu_free(void *data)
|
||||||
if (!rgui)
|
if (!rgui)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
#ifdef HAVE_SHADER_MANAGER
|
||||||
|
if (rgui->shader)
|
||||||
|
free(rgui->shader);
|
||||||
|
rgui->shader = NULL;
|
||||||
|
#endif
|
||||||
|
|
||||||
if (driver.menu_ctx && driver.menu_ctx->free)
|
if (driver.menu_ctx && driver.menu_ctx->free)
|
||||||
driver.menu_ctx->free(rgui);
|
driver.menu_ctx->free(rgui);
|
||||||
|
|
||||||
|
|
|
@ -167,7 +167,7 @@ typedef struct
|
||||||
bool load_no_rom;
|
bool load_no_rom;
|
||||||
|
|
||||||
#ifdef HAVE_SHADER_MANAGER
|
#ifdef HAVE_SHADER_MANAGER
|
||||||
struct gfx_shader shader;
|
void *shader;
|
||||||
void *parameter_shader; // Points to either shader or graphics driver current shader.
|
void *parameter_shader; // Points to either shader or graphics driver current shader.
|
||||||
#endif
|
#endif
|
||||||
unsigned current_pad;
|
unsigned current_pad;
|
||||||
|
|
Loading…
Reference in New Issue