From 7b6463ef1f2b3f867e2a37418c307a29fff0e0ac Mon Sep 17 00:00:00 2001 From: Lioncash Date: Wed, 24 Jan 2024 18:42:52 -0500 Subject: [PATCH] ShaderAsset: Emplace value instances when possible in ToJson() Constructs elements directly inside the container and also makes it shorter to read in certain instances. --- .../Core/VideoCommon/Assets/ShaderAsset.cpp | 124 +++++++++--------- 1 file changed, 62 insertions(+), 62 deletions(-) diff --git a/Source/Core/VideoCommon/Assets/ShaderAsset.cpp b/Source/Core/VideoCommon/Assets/ShaderAsset.cpp index 67622f20a7..88fc841d9b 100644 --- a/Source/Core/VideoCommon/Assets/ShaderAsset.cpp +++ b/Source/Core/VideoCommon/Assets/ShaderAsset.cpp @@ -299,71 +299,71 @@ void PixelShaderData::ToJson(picojson::object& obj, const PixelShaderData& data) for (const auto& [name, property] : data.m_properties) { picojson::object json_property; - json_property["code_name"] = picojson::value{name}; - json_property["description"] = picojson::value{property.m_description}; + json_property.emplace("code_name", name); + json_property.emplace("description", property.m_description); - std::visit( - overloaded{[&](const ShaderProperty::Sampler2D& default_value) { - json_property["type"] = picojson::value{"sampler2d"}; - json_property["default"] = picojson::value{default_value.value}; - }, - [&](const ShaderProperty::Sampler2DArray& default_value) { - json_property["type"] = picojson::value{"sampler2darray"}; - json_property["default"] = picojson::value{default_value.value}; - }, - [&](const ShaderProperty::SamplerCube& default_value) { - json_property["type"] = picojson::value{"samplercube"}; - json_property["default"] = picojson::value{default_value.value}; - }, - [&](s32 default_value) { - json_property["type"] = picojson::value{"int"}; - json_property["default"] = picojson::value{static_cast(default_value)}; - }, - [&](const std::array& default_value) { - json_property["type"] = picojson::value{"int2"}; - json_property["default"] = picojson::value{ToJsonArray(default_value)}; - }, - [&](const std::array& default_value) { - json_property["type"] = picojson::value{"int3"}; - json_property["default"] = picojson::value{ToJsonArray(default_value)}; - }, - [&](const std::array& default_value) { - json_property["type"] = picojson::value{"int4"}; - json_property["default"] = picojson::value{ToJsonArray(default_value)}; - }, - [&](float default_value) { - json_property["type"] = picojson::value{"float"}; - json_property["default"] = picojson::value{static_cast(default_value)}; - }, - [&](const std::array& default_value) { - json_property["type"] = picojson::value{"float2"}; - json_property["default"] = picojson::value{ToJsonArray(default_value)}; - }, - [&](const std::array& default_value) { - json_property["type"] = picojson::value{"float3"}; - json_property["default"] = picojson::value{ToJsonArray(default_value)}; - }, - [&](const std::array& default_value) { - json_property["type"] = picojson::value{"float4"}; - json_property["default"] = picojson::value{ToJsonArray(default_value)}; - }, - [&](const ShaderProperty::RGB& default_value) { - json_property["type"] = picojson::value{"rgb"}; - json_property["default"] = picojson::value{ToJsonArray(default_value.value)}; - }, - [&](const ShaderProperty::RGBA& default_value) { - json_property["type"] = picojson::value{"rgba"}; - json_property["default"] = picojson::value{ToJsonArray(default_value.value)}; - }, - [&](bool default_value) { - json_property["type"] = picojson::value{"bool"}; - json_property["default"] = picojson::value{default_value}; - }}, - property.m_default); + std::visit(overloaded{[&](const ShaderProperty::Sampler2D& default_value) { + json_property.emplace("type", "sampler2d"); + json_property.emplace("default", default_value.value); + }, + [&](const ShaderProperty::Sampler2DArray& default_value) { + json_property.emplace("type", "sampler2darray"); + json_property.emplace("default", default_value.value); + }, + [&](const ShaderProperty::SamplerCube& default_value) { + json_property.emplace("type", "samplercube"); + json_property.emplace("default", default_value.value); + }, + [&](s32 default_value) { + json_property.emplace("type", "int"); + json_property.emplace("default", static_cast(default_value)); + }, + [&](const std::array& default_value) { + json_property.emplace("type", "int2"); + json_property.emplace("default", ToJsonArray(default_value)); + }, + [&](const std::array& default_value) { + json_property.emplace("type", "int3"); + json_property.emplace("default", ToJsonArray(default_value)); + }, + [&](const std::array& default_value) { + json_property.emplace("type", "int4"); + json_property.emplace("default", ToJsonArray(default_value)); + }, + [&](float default_value) { + json_property.emplace("type", "float"); + json_property.emplace("default", static_cast(default_value)); + }, + [&](const std::array& default_value) { + json_property.emplace("type", "float2"); + json_property.emplace("default", ToJsonArray(default_value)); + }, + [&](const std::array& default_value) { + json_property.emplace("type", "float3"); + json_property.emplace("default", ToJsonArray(default_value)); + }, + [&](const std::array& default_value) { + json_property.emplace("type", "float4"); + json_property.emplace("default", ToJsonArray(default_value)); + }, + [&](const ShaderProperty::RGB& default_value) { + json_property.emplace("type", "rgb"); + json_property.emplace("default", ToJsonArray(default_value.value)); + }, + [&](const ShaderProperty::RGBA& default_value) { + json_property.emplace("type", "rgba"); + json_property.emplace("default", ToJsonArray(default_value.value)); + }, + [&](bool default_value) { + json_property.emplace("type", "bool"); + json_property.emplace("default", default_value); + }}, + 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 ShaderProperty::GetValueTypeNames()