mirror of
https://github.com/libretro/RetroArch
synced 2025-04-16 08:43:10 +00:00
Vulkan: Begin parsing parameters.
This commit is contained in:
parent
8d186dab88
commit
a50c204d5e
@ -252,6 +252,9 @@ static glslang_format glslang_find_format(const char *fmt)
|
|||||||
|
|
||||||
static bool glslang_parse_meta(const vector<string> &lines, glslang_meta *meta)
|
static bool glslang_parse_meta(const vector<string> &lines, glslang_meta *meta)
|
||||||
{
|
{
|
||||||
|
char id[64] = {};
|
||||||
|
char desc[64] = {};
|
||||||
|
|
||||||
*meta = glslang_meta{};
|
*meta = glslang_meta{};
|
||||||
for (auto &line : lines)
|
for (auto &line : lines)
|
||||||
{
|
{
|
||||||
@ -268,6 +271,21 @@ static bool glslang_parse_meta(const vector<string> &lines, glslang_meta *meta)
|
|||||||
str++;
|
str++;
|
||||||
meta->name = str;
|
meta->name = str;
|
||||||
}
|
}
|
||||||
|
else if (line.find("#pragma parameter ") == 0)
|
||||||
|
{
|
||||||
|
float initial, minimum, maximum, step;
|
||||||
|
int ret = sscanf(line.c_str(), "#pragma parameter %63s \"%63[^\"]\" %f %f %f %f",
|
||||||
|
id, desc, &initial, &minimum, &maximum, &step);
|
||||||
|
|
||||||
|
if (ret == 4)
|
||||||
|
{
|
||||||
|
step = 0.1f * (maximum - minimum);
|
||||||
|
ret = 5;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ret == 5)
|
||||||
|
meta->parameters.push_back({ id, desc, initial, minimum, maximum, step });
|
||||||
|
}
|
||||||
else if (line.find("#pragma format ") == 0)
|
else if (line.find("#pragma format ") == 0)
|
||||||
{
|
{
|
||||||
if (meta->rt_format != SLANG_FORMAT_UNKNOWN)
|
if (meta->rt_format != SLANG_FORMAT_UNKNOWN)
|
||||||
|
@ -63,8 +63,19 @@ enum glslang_format
|
|||||||
SLANG_FORMAT_UNKNOWN
|
SLANG_FORMAT_UNKNOWN
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct glslang_parameter
|
||||||
|
{
|
||||||
|
std::string id;
|
||||||
|
std::string desc;
|
||||||
|
float initial;
|
||||||
|
float minimum;
|
||||||
|
float maximum;
|
||||||
|
float step;
|
||||||
|
};
|
||||||
|
|
||||||
struct glslang_meta
|
struct glslang_meta
|
||||||
{
|
{
|
||||||
|
std::vector<glslang_parameter> parameters;
|
||||||
std::string name;
|
std::string name;
|
||||||
glslang_format rt_format = SLANG_FORMAT_UNKNOWN;
|
glslang_format rt_format = SLANG_FORMAT_UNKNOWN;
|
||||||
};
|
};
|
||||||
|
@ -2736,7 +2736,6 @@ vulkan_filter_chain_t *vulkan_filter_chain_create_from_preset(
|
|||||||
return nullptr;
|
return nullptr;
|
||||||
|
|
||||||
video_shader_resolve_relative(shader.get(), path);
|
video_shader_resolve_relative(shader.get(), path);
|
||||||
video_shader_resolve_parameters(conf.get(), shader.get());
|
|
||||||
|
|
||||||
bool last_pass_is_fbo = shader->pass[shader->passes - 1].fbo.valid;
|
bool last_pass_is_fbo = shader->pass[shader->passes - 1].fbo.valid;
|
||||||
auto tmpinfo = *info;
|
auto tmpinfo = *info;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user