VideoCommon: add graphics mod callback interface for when a texture is created

This commit is contained in:
iwubcode
2023-06-20 19:26:53 -05:00
parent 5ad2d86cc7
commit 1d767c3a5b
6 changed files with 48 additions and 2 deletions

View File

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

View File

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