mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-01-25 07:21:14 +01:00
ShaderAsset: Emplace value instances when possible in ToJson()
Constructs elements directly inside the container and also makes it shorter to read in certain instances.
This commit is contained in:
parent
97160ddc83
commit
7b6463ef1f
@ -299,71 +299,71 @@ void PixelShaderData::ToJson(picojson::object& obj, const PixelShaderData& data)
|
|||||||
for (const auto& [name, property] : data.m_properties)
|
for (const auto& [name, property] : data.m_properties)
|
||||||
{
|
{
|
||||||
picojson::object json_property;
|
picojson::object json_property;
|
||||||
json_property["code_name"] = picojson::value{name};
|
json_property.emplace("code_name", name);
|
||||||
json_property["description"] = picojson::value{property.m_description};
|
json_property.emplace("description", property.m_description);
|
||||||
|
|
||||||
std::visit(
|
std::visit(overloaded{[&](const ShaderProperty::Sampler2D& default_value) {
|
||||||
overloaded{[&](const ShaderProperty::Sampler2D& default_value) {
|
json_property.emplace("type", "sampler2d");
|
||||||
json_property["type"] = picojson::value{"sampler2d"};
|
json_property.emplace("default", default_value.value);
|
||||||
json_property["default"] = picojson::value{default_value.value};
|
},
|
||||||
},
|
[&](const ShaderProperty::Sampler2DArray& default_value) {
|
||||||
[&](const ShaderProperty::Sampler2DArray& default_value) {
|
json_property.emplace("type", "sampler2darray");
|
||||||
json_property["type"] = picojson::value{"sampler2darray"};
|
json_property.emplace("default", default_value.value);
|
||||||
json_property["default"] = picojson::value{default_value.value};
|
},
|
||||||
},
|
[&](const ShaderProperty::SamplerCube& default_value) {
|
||||||
[&](const ShaderProperty::SamplerCube& default_value) {
|
json_property.emplace("type", "samplercube");
|
||||||
json_property["type"] = picojson::value{"samplercube"};
|
json_property.emplace("default", default_value.value);
|
||||||
json_property["default"] = picojson::value{default_value.value};
|
},
|
||||||
},
|
[&](s32 default_value) {
|
||||||
[&](s32 default_value) {
|
json_property.emplace("type", "int");
|
||||||
json_property["type"] = picojson::value{"int"};
|
json_property.emplace("default", static_cast<double>(default_value));
|
||||||
json_property["default"] = picojson::value{static_cast<double>(default_value)};
|
},
|
||||||
},
|
[&](const std::array<s32, 2>& default_value) {
|
||||||
[&](const std::array<s32, 2>& default_value) {
|
json_property.emplace("type", "int2");
|
||||||
json_property["type"] = picojson::value{"int2"};
|
json_property.emplace("default", ToJsonArray(default_value));
|
||||||
json_property["default"] = picojson::value{ToJsonArray(default_value)};
|
},
|
||||||
},
|
[&](const std::array<s32, 3>& default_value) {
|
||||||
[&](const std::array<s32, 3>& default_value) {
|
json_property.emplace("type", "int3");
|
||||||
json_property["type"] = picojson::value{"int3"};
|
json_property.emplace("default", ToJsonArray(default_value));
|
||||||
json_property["default"] = picojson::value{ToJsonArray(default_value)};
|
},
|
||||||
},
|
[&](const std::array<s32, 4>& default_value) {
|
||||||
[&](const std::array<s32, 4>& default_value) {
|
json_property.emplace("type", "int4");
|
||||||
json_property["type"] = picojson::value{"int4"};
|
json_property.emplace("default", ToJsonArray(default_value));
|
||||||
json_property["default"] = picojson::value{ToJsonArray(default_value)};
|
},
|
||||||
},
|
[&](float default_value) {
|
||||||
[&](float default_value) {
|
json_property.emplace("type", "float");
|
||||||
json_property["type"] = picojson::value{"float"};
|
json_property.emplace("default", static_cast<double>(default_value));
|
||||||
json_property["default"] = picojson::value{static_cast<double>(default_value)};
|
},
|
||||||
},
|
[&](const std::array<float, 2>& default_value) {
|
||||||
[&](const std::array<float, 2>& default_value) {
|
json_property.emplace("type", "float2");
|
||||||
json_property["type"] = picojson::value{"float2"};
|
json_property.emplace("default", ToJsonArray(default_value));
|
||||||
json_property["default"] = picojson::value{ToJsonArray(default_value)};
|
},
|
||||||
},
|
[&](const std::array<float, 3>& default_value) {
|
||||||
[&](const std::array<float, 3>& default_value) {
|
json_property.emplace("type", "float3");
|
||||||
json_property["type"] = picojson::value{"float3"};
|
json_property.emplace("default", ToJsonArray(default_value));
|
||||||
json_property["default"] = picojson::value{ToJsonArray(default_value)};
|
},
|
||||||
},
|
[&](const std::array<float, 4>& default_value) {
|
||||||
[&](const std::array<float, 4>& default_value) {
|
json_property.emplace("type", "float4");
|
||||||
json_property["type"] = picojson::value{"float4"};
|
json_property.emplace("default", ToJsonArray(default_value));
|
||||||
json_property["default"] = picojson::value{ToJsonArray(default_value)};
|
},
|
||||||
},
|
[&](const ShaderProperty::RGB& default_value) {
|
||||||
[&](const ShaderProperty::RGB& default_value) {
|
json_property.emplace("type", "rgb");
|
||||||
json_property["type"] = picojson::value{"rgb"};
|
json_property.emplace("default", ToJsonArray(default_value.value));
|
||||||
json_property["default"] = picojson::value{ToJsonArray(default_value.value)};
|
},
|
||||||
},
|
[&](const ShaderProperty::RGBA& default_value) {
|
||||||
[&](const ShaderProperty::RGBA& default_value) {
|
json_property.emplace("type", "rgba");
|
||||||
json_property["type"] = picojson::value{"rgba"};
|
json_property.emplace("default", ToJsonArray(default_value.value));
|
||||||
json_property["default"] = picojson::value{ToJsonArray(default_value.value)};
|
},
|
||||||
},
|
[&](bool default_value) {
|
||||||
[&](bool default_value) {
|
json_property.emplace("type", "bool");
|
||||||
json_property["type"] = picojson::value{"bool"};
|
json_property.emplace("default", default_value);
|
||||||
json_property["default"] = picojson::value{default_value};
|
}},
|
||||||
}},
|
property.m_default);
|
||||||
property.m_default);
|
|
||||||
|
|
||||||
json_properties.push_back(picojson::value{json_property});
|
json_properties.emplace_back(std::move(json_property));
|
||||||
}
|
}
|
||||||
obj["properties"] = picojson::value{json_properties};
|
|
||||||
|
obj.emplace("properties", std::move(json_properties));
|
||||||
}
|
}
|
||||||
|
|
||||||
std::span<const std::string_view> ShaderProperty::GetValueTypeNames()
|
std::span<const std::string_view> ShaderProperty::GetValueTypeNames()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user