diff options
Diffstat (limited to 'Source/Core/VideoCommon/GraphicsModSystem')
4 files changed, 32 insertions, 30 deletions
diff --git a/Source/Core/VideoCommon/GraphicsModSystem/Runtime/CustomPipeline.cpp b/Source/Core/VideoCommon/GraphicsModSystem/Runtime/CustomPipeline.cpp index bb09a84328..df8e07469f 100644 --- a/Source/Core/VideoCommon/GraphicsModSystem/Runtime/CustomPipeline.cpp +++ b/Source/Core/VideoCommon/GraphicsModSystem/Runtime/CustomPipeline.cpp @@ -9,8 +9,7 @@ #include "Common/CommonTypes.h" #include "VideoCommon/Assets/CustomAssetLibrary.h" -void CustomPipeline::UpdatePixelData(std::shared_ptr<VideoCommon::CustomAssetLibrary>, - std::span<const u32>, +void CustomPipeline::UpdatePixelData(const VideoCommon::CustomAssetLibrary*, std::span<const u32>, const VideoCommon::CustomAssetLibrary::AssetID&) { } diff --git a/Source/Core/VideoCommon/GraphicsModSystem/Runtime/CustomPipeline.h b/Source/Core/VideoCommon/GraphicsModSystem/Runtime/CustomPipeline.h index 3aa7b6641c..a05a28ea16 100644 --- a/Source/Core/VideoCommon/GraphicsModSystem/Runtime/CustomPipeline.h +++ b/Source/Core/VideoCommon/GraphicsModSystem/Runtime/CustomPipeline.h @@ -11,7 +11,7 @@ struct CustomPipeline { - void UpdatePixelData(std::shared_ptr<VideoCommon::CustomAssetLibrary> library, + void UpdatePixelData(const VideoCommon::CustomAssetLibrary* library, std::span<const u32> texture_units, const VideoCommon::CustomAssetLibrary::AssetID& material_to_load); }; diff --git a/Source/Core/VideoCommon/GraphicsModSystem/Runtime/CustomShaderCache.cpp b/Source/Core/VideoCommon/GraphicsModSystem/Runtime/CustomShaderCache.cpp index 54b0d786f2..91d4082348 100644 --- a/Source/Core/VideoCommon/GraphicsModSystem/Runtime/CustomShaderCache.cpp +++ b/Source/Core/VideoCommon/GraphicsModSystem/Runtime/CustomShaderCache.cpp @@ -3,6 +3,8 @@ #include "VideoCommon/GraphicsModSystem/Runtime/CustomShaderCache.h" +#include <utility> + #include "VideoCommon/AbstractGfx.h" #include "VideoCommon/VideoConfig.h" #include "VideoCommon/VideoEvents.h" @@ -100,11 +102,11 @@ void CustomShaderCache::AsyncCreatePipeline(const VideoCommon::GXPipelineUid& ui class PipelineWorkItem final : public VideoCommon::AsyncShaderCompiler::WorkItem { public: - PipelineWorkItem(CustomShaderCache* shader_cache, const VideoCommon::GXPipelineUid& uid, - const CustomShaderInstance& custom_shaders, PipelineIterator iterator, - const AbstractPipelineConfig& pipeline_config) - : m_shader_cache(shader_cache), m_uid(uid), m_iterator(iterator), m_config(pipeline_config), - m_custom_shaders(custom_shaders) + PipelineWorkItem(CustomShaderCache* shader_cache, VideoCommon::GXPipelineUid uid, + CustomShaderInstance custom_shaders, PipelineIterator iterator, + AbstractPipelineConfig pipeline_config) + : m_shader_cache(shader_cache), m_uid(std::move(uid)), m_iterator(iterator), + m_config(std::move(pipeline_config)), m_custom_shaders(std::move(custom_shaders)) { SetStagesReady(); } @@ -184,11 +186,11 @@ void CustomShaderCache::AsyncCreatePipeline(const VideoCommon::GXUberPipelineUid class PipelineWorkItem final : public VideoCommon::AsyncShaderCompiler::WorkItem { public: - PipelineWorkItem(CustomShaderCache* shader_cache, const VideoCommon::GXUberPipelineUid& uid, - const CustomShaderInstance& custom_shaders, UberPipelineIterator iterator, - const AbstractPipelineConfig& pipeline_config) - : m_shader_cache(shader_cache), m_uid(uid), m_iterator(iterator), m_config(pipeline_config), - m_custom_shaders(custom_shaders) + PipelineWorkItem(CustomShaderCache* shader_cache, VideoCommon::GXUberPipelineUid uid, + CustomShaderInstance custom_shaders, UberPipelineIterator iterator, + AbstractPipelineConfig pipeline_config) + : m_shader_cache(shader_cache), m_uid(std::move(uid)), m_iterator(iterator), + m_config(std::move(pipeline_config)), m_custom_shaders(std::move(custom_shaders)) { SetStagesReady(); } @@ -281,8 +283,9 @@ void CustomShaderCache::QueuePixelShaderCompile(const PixelShaderUid& uid, { public: PixelShaderWorkItem(CustomShaderCache* shader_cache, const PixelShaderUid& uid, - const CustomShaderInstance& custom_shaders, PixelShaderIterator iter) - : m_shader_cache(shader_cache), m_uid(uid), m_custom_shaders(custom_shaders), m_iter(iter) + CustomShaderInstance custom_shaders, PixelShaderIterator iter) + : m_shader_cache(shader_cache), m_uid(uid), m_custom_shaders(std::move(custom_shaders)), + m_iter(iter) { } @@ -319,8 +322,9 @@ void CustomShaderCache::QueuePixelShaderCompile(const UberShader::PixelShaderUid { public: PixelShaderWorkItem(CustomShaderCache* shader_cache, const UberShader::PixelShaderUid& uid, - const CustomShaderInstance& custom_shaders, UberPixelShaderIterator iter) - : m_shader_cache(shader_cache), m_uid(uid), m_custom_shaders(custom_shaders), m_iter(iter) + CustomShaderInstance custom_shaders, UberPixelShaderIterator iter) + : m_shader_cache(shader_cache), m_uid(uid), m_custom_shaders(std::move(custom_shaders)), + m_iter(iter) { } diff --git a/Source/Core/VideoCommon/GraphicsModSystem/Runtime/GraphicsModManager.cpp b/Source/Core/VideoCommon/GraphicsModSystem/Runtime/GraphicsModManager.cpp index 5f9cf48d52..c49b655804 100644 --- a/Source/Core/VideoCommon/GraphicsModSystem/Runtime/GraphicsModManager.cpp +++ b/Source/Core/VideoCommon/GraphicsModSystem/Runtime/GraphicsModManager.cpp @@ -247,23 +247,22 @@ void GraphicsModManager::Load(const GraphicsModGroupConfig& config) } } + const auto create_action = + [filesystem_library = std::move(filesystem_library)]( + const std::string_view& action_name, const picojson::value& json_data, + GraphicsModConfig mod_config) -> std::unique_ptr<GraphicsModAction> { + auto action = GraphicsModActionFactory::Create(action_name, json_data, filesystem_library); + if (action == nullptr) + { + return nullptr; + } + return std::make_unique<DecoratedAction>(std::move(action), std::move(mod_config)); + }; + for (const auto& mod : mods) { for (const GraphicsModFeatureConfig& feature : mod.m_features) { - const auto create_action = - [filesystem_library](const std::string_view& action_name, - const picojson::value& json_data, - GraphicsModConfig mod_config) -> std::unique_ptr<GraphicsModAction> { - auto action = - GraphicsModActionFactory::Create(action_name, json_data, std::move(filesystem_library)); - if (action == nullptr) - { - return nullptr; - } - return std::make_unique<DecoratedAction>(std::move(action), std::move(mod_config)); - }; - const auto internal_group = fmt::format("{}.{}", mod.m_title, feature.m_group); const auto add_target = [&](const GraphicsTargetConfig& target) { |
