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:
Lioncash 2024-01-24 18:42:52 -05:00
parent 97160ddc83
commit 7b6463ef1f
1 changed files with 62 additions and 62 deletions

View File

@ -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()