summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon/GraphicsModSystem/Config
diff options
context:
space:
mode:
authorLioncash <mai.iam2048@gmail.com>2024-01-24 23:00:01 -0500
committerLioncash <mai.iam2048@gmail.com>2024-01-24 23:00:01 -0500
commit7a59ecc39da9e61ae3c10342039e695a7d602f50 (patch)
tree507ab17840028ce971d1fb95bdc79e51009b3496 /Source/Core/VideoCommon/GraphicsModSystem/Config
parent1b7da3711426762bdc761501c42878811fb7f59c (diff)
GraphicsTarget: Reduce object churn a little
Diffstat (limited to 'Source/Core/VideoCommon/GraphicsModSystem/Config')
-rw-r--r--Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsTarget.cpp84
1 files changed, 41 insertions, 43 deletions
diff --git a/Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsTarget.cpp b/Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsTarget.cpp
index 575a318484..b9f5ef8f29 100644
--- a/Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsTarget.cpp
+++ b/Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsTarget.cpp
@@ -155,49 +155,47 @@ std::optional<std::string> ExtractTextureFilenameForConfig(const picojson::objec
void SerializeTargetToConfig(picojson::object& json_obj, const GraphicsTargetConfig& target)
{
- std::visit(
- overloaded{
- [&](const DrawStartedTextureTarget& the_target) {
- json_obj["type"] = picojson::value{"draw_started"};
- json_obj["texture_filename"] = picojson::value{the_target.m_texture_info_string};
- },
- [&](const LoadTextureTarget& the_target) {
- json_obj["type"] = picojson::value{"load_texture"};
- json_obj["texture_filename"] = picojson::value{the_target.m_texture_info_string};
- },
- [&](const CreateTextureTarget& the_target) {
- json_obj["type"] = picojson::value{"create_texture"};
- json_obj["texture_filename"] = picojson::value{the_target.m_texture_info_string};
- },
- [&](const EFBTarget& the_target) {
- json_obj["type"] = picojson::value{"efb"};
- json_obj["texture_filename"] = picojson::value{
- fmt::format("{}_{}x{}_{}", EFB_DUMP_PREFIX, the_target.m_width, the_target.m_height,
- static_cast<int>(the_target.m_texture_format))};
- },
- [&](const XFBTarget& the_target) {
- json_obj["type"] = picojson::value{"xfb"};
- json_obj["texture_filename"] = picojson::value{
- fmt::format("{}_{}x{}_{}", XFB_DUMP_PREFIX, the_target.m_width, the_target.m_height,
- static_cast<int>(the_target.m_texture_format))};
- },
- [&](const ProjectionTarget& the_target) {
- json_obj["type"] = picojson::value{"projection"};
- if (the_target.m_projection_type == ProjectionType::Orthographic)
- {
- json_obj["type"] = picojson::value{"2d"};
- }
- else
- {
- json_obj["type"] = picojson::value{"3d"};
- }
- if (the_target.m_texture_info_string)
- {
- json_obj["texture_filename"] = picojson::value{*the_target.m_texture_info_string};
- }
- },
- },
- target);
+ std::visit(overloaded{
+ [&](const DrawStartedTextureTarget& the_target) {
+ json_obj.emplace("type", "draw_started");
+ json_obj.emplace("texture_filename", the_target.m_texture_info_string);
+ },
+ [&](const LoadTextureTarget& the_target) {
+ json_obj.emplace("type", "load_texture");
+ json_obj.emplace("texture_filename", the_target.m_texture_info_string);
+ },
+ [&](const CreateTextureTarget& the_target) {
+ json_obj.emplace("type", "create_texture");
+ json_obj.emplace("texture_filename", the_target.m_texture_info_string);
+ },
+ [&](const EFBTarget& the_target) {
+ json_obj.emplace("type", "efb");
+ json_obj.emplace("texture_filename",
+ fmt::format("{}_{}x{}_{}", EFB_DUMP_PREFIX, the_target.m_width,
+ the_target.m_height,
+ static_cast<int>(the_target.m_texture_format)));
+ },
+ [&](const XFBTarget& the_target) {
+ json_obj.emplace("type", "xfb");
+ json_obj.emplace("texture_filename",
+ fmt::format("{}_{}x{}_{}", XFB_DUMP_PREFIX, the_target.m_width,
+ the_target.m_height,
+ static_cast<int>(the_target.m_texture_format)));
+ },
+ [&](const ProjectionTarget& the_target) {
+ const char* type_name = "3d";
+ if (the_target.m_projection_type == ProjectionType::Orthographic)
+ type_name = "2d";
+
+ json_obj.emplace("type", type_name);
+
+ if (the_target.m_texture_info_string)
+ {
+ json_obj.emplace("texture_filename", *the_target.m_texture_info_string);
+ }
+ },
+ },
+ target);
}
std::optional<GraphicsTargetConfig> DeserializeTargetFromConfig(const picojson::object& obj)