summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon/GraphicsModSystem/Config
diff options
context:
space:
mode:
authoriwubcode <iwubcode@users.noreply.github.com>2023-06-20 19:26:53 -0500
committeriwubcode <iwubcode@users.noreply.github.com>2023-06-20 19:26:53 -0500
commit1d767c3a5bad5fe02a9830da0317a9a336139664 (patch)
treed35ec0fe29f7c81ed06c8a6bb0bdfc16006f6fe0 /Source/Core/VideoCommon/GraphicsModSystem/Config
parent5ad2d86cc7b0356b7ea04e5bc9e50013fdf5a3b4 (diff)
VideoCommon: add graphics mod callback interface for when a texture is created
Diffstat (limited to 'Source/Core/VideoCommon/GraphicsModSystem/Config')
-rw-r--r--Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsTarget.cpp10
-rw-r--r--Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsTarget.h9
2 files changed, 17 insertions, 2 deletions
diff --git a/Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsTarget.cpp b/Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsTarget.cpp
index 07f00624e4..374b138571 100644
--- a/Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsTarget.cpp
+++ b/Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsTarget.cpp
@@ -187,6 +187,16 @@ std::optional<GraphicsTargetConfig> DeserializeTargetFromConfig(const picojson::
target.m_texture_info_string = texture_info.value();
return target;
}
+ else if (type == "create_texture")
+ {
+ std::optional<std::string> texture_info = ExtractTextureFilenameForConfig(obj);
+ if (!texture_info.has_value())
+ return std::nullopt;
+
+ CreateTextureTarget target;
+ target.m_texture_info_string = texture_info.value();
+ return target;
+ }
else if (type == "efb")
{
return DeserializeFBTargetFromConfig<EFBTarget>(obj, EFB_DUMP_PREFIX);
diff --git a/Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsTarget.h b/Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsTarget.h
index 67a349e78f..bde445258c 100644
--- a/Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsTarget.h
+++ b/Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsTarget.h
@@ -26,6 +26,10 @@ struct LoadTextureTarget final : public TextureTarget
{
};
+struct CreateTextureTarget final : public TextureTarget
+{
+};
+
struct FBTarget
{
u32 m_height = 0;
@@ -47,8 +51,9 @@ struct ProjectionTarget
ProjectionType m_projection_type = ProjectionType::Perspective;
};
-using GraphicsTargetConfig = std::variant<DrawStartedTextureTarget, LoadTextureTarget, EFBTarget,
- XFBTarget, ProjectionTarget>;
+using GraphicsTargetConfig =
+ std::variant<DrawStartedTextureTarget, LoadTextureTarget, CreateTextureTarget, EFBTarget,
+ XFBTarget, ProjectionTarget>;
std::optional<GraphicsTargetConfig> DeserializeTargetFromConfig(const picojson::object& obj);