summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon/GraphicsModSystem
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Core/VideoCommon/GraphicsModSystem')
-rw-r--r--Source/Core/VideoCommon/GraphicsModSystem/Runtime/CustomPipeline.cpp3
-rw-r--r--Source/Core/VideoCommon/GraphicsModSystem/Runtime/CustomPipeline.h2
-rw-r--r--Source/Core/VideoCommon/GraphicsModSystem/Runtime/CustomShaderCache.cpp32
-rw-r--r--Source/Core/VideoCommon/GraphicsModSystem/Runtime/GraphicsModManager.cpp25
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) {