summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon/Resources/CustomResourceManager.cpp
diff options
context:
space:
mode:
authorJMC47 <JMC4789@gmail.com>2026-04-03 13:38:04 -0400
committerGitHub <noreply@github.com>2026-04-03 13:38:04 -0400
commit798f581c38acfbd9196ba4884cfb9dfd6ef85684 (patch)
tree3421446055c78b54837f5d51372c3611fc65eebb /Source/Core/VideoCommon/Resources/CustomResourceManager.cpp
parentd3b89b4c39a312b52546c3604379b3f51ec3c876 (diff)
parent306daff51728d71efa833dfaa5b32b3693178874 (diff)
Merge pull request #14140 from iwubcode/blurry_bloom
VideoCommon: add a graphics mod feature to modify EFBs with a custom material, enhance bloom
Diffstat (limited to 'Source/Core/VideoCommon/Resources/CustomResourceManager.cpp')
-rw-r--r--Source/Core/VideoCommon/Resources/CustomResourceManager.cpp30
1 files changed, 22 insertions, 8 deletions
diff --git a/Source/Core/VideoCommon/Resources/CustomResourceManager.cpp b/Source/Core/VideoCommon/Resources/CustomResourceManager.cpp
index ffb16b055a..29e215b8ea 100644
--- a/Source/Core/VideoCommon/Resources/CustomResourceManager.cpp
+++ b/Source/Core/VideoCommon/Resources/CustomResourceManager.cpp
@@ -43,7 +43,8 @@ void CustomResourceManager::Shutdown()
void CustomResourceManager::Reset()
{
- m_material_resources.clear();
+ m_draw_material_resources.clear();
+ m_postprocessing_material_resources.clear();
m_shader_resources.clear();
m_texture_data_resources.clear();
m_texture_sampler_resources.clear();
@@ -102,11 +103,11 @@ TextureDataResource* CustomResourceManager::GetTextureDataFromAsset(
return resource.get();
}
-MaterialResource* CustomResourceManager::GetMaterialFromAsset(
+MaterialResource* CustomResourceManager::GetDrawMaterialFromAsset(
const CustomAssetLibrary::AssetID& asset_id, const GXPipelineUid& pipeline_uid,
std::shared_ptr<VideoCommon::CustomAssetLibrary> library)
{
- auto& resource = m_material_resources[asset_id][PipelineToHash(pipeline_uid)];
+ auto& resource = m_draw_material_resources[asset_id][PipelineToHash(pipeline_uid)];
if (resource == nullptr)
{
resource = std::make_unique<MaterialResource>(
@@ -116,11 +117,24 @@ MaterialResource* CustomResourceManager::GetMaterialFromAsset(
return resource.get();
}
-ShaderResource*
-CustomResourceManager::GetShaderFromAsset(const CustomAssetLibrary::AssetID& asset_id,
- std::size_t shader_key, const GXPipelineUid& pipeline_uid,
- const std::string& preprocessor_settings,
- std::shared_ptr<VideoCommon::CustomAssetLibrary> library)
+MaterialResource* CustomResourceManager::GetPostProcessingMaterialFromAsset(
+ const CustomAssetLibrary::AssetID& asset_id,
+ std::shared_ptr<VideoCommon::CustomAssetLibrary> library)
+{
+ auto& resource = m_postprocessing_material_resources[asset_id];
+ if (resource == nullptr)
+ {
+ resource =
+ std::make_unique<MaterialResource>(CreateResourceContext(asset_id, std::move(library)));
+ }
+ resource->Process();
+ return resource.get();
+}
+
+ShaderResource* CustomResourceManager::GetShaderFromAsset(
+ const CustomAssetLibrary::AssetID& asset_id, std::size_t shader_key,
+ const std::optional<GXPipelineUid>& pipeline_uid, const std::string& preprocessor_settings,
+ std::shared_ptr<VideoCommon::CustomAssetLibrary> library)
{
auto& resource = m_shader_resources[asset_id][shader_key];
if (resource == nullptr)