// Copyright 2022 Dolphin Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later #pragma once #include #include #include #include #include #include "VideoCommon/Assets/CustomAssetLibrary.h" #include "VideoCommon/GraphicsModSystem/Runtime/CustomPipeline.h" #include "VideoCommon/GraphicsModSystem/Runtime/GraphicsModAction.h" class CustomPipelineAction final : public GraphicsModAction { public: struct PipelinePassPassDescription { std::string m_pixel_material_asset; }; static constexpr std::string_view factory_name = "custom_pipeline"; static std::unique_ptr Create(const picojson::value& json_data, std::shared_ptr library); static std::unique_ptr Create(std::shared_ptr library); explicit CustomPipelineAction(std::shared_ptr library); CustomPipelineAction(std::shared_ptr library, std::vector pass_descriptions); void OnDrawStarted(GraphicsModActionData::DrawStarted*) override; private: std::shared_ptr m_library; std::vector m_passes_config; std::vector m_pipeline_passes; };