diff options
| author | iwubcode <iwubcode@users.noreply.github.com> | 2023-06-20 19:26:53 -0500 |
|---|---|---|
| committer | iwubcode <iwubcode@users.noreply.github.com> | 2023-06-20 19:26:53 -0500 |
| commit | 1d767c3a5bad5fe02a9830da0317a9a336139664 (patch) | |
| tree | d35ec0fe29f7c81ed06c8a6bb0bdfc16006f6fe0 /Source/Core/VideoCommon/GraphicsModSystem/Config | |
| parent | 5ad2d86cc7b0356b7ea04e5bc9e50013fdf5a3b4 (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.cpp | 10 | ||||
| -rw-r--r-- | Source/Core/VideoCommon/GraphicsModSystem/Config/GraphicsTarget.h | 9 |
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); |
