// Copyright 2024 Dolphin Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later #pragma once #include #include #include #include #include #include #include "VideoCommon/AbstractTexture.h" #include "VideoCommon/Assets/CustomAssetLibrary.h" #include "VideoCommon/Assets/MaterialAsset.h" #include "VideoCommon/Assets/ShaderAsset.h" #include "VideoCommon/Assets/TextureAsset.h" #include "VideoCommon/ShaderGenCommon.h" namespace VideoCommon { class CustomAssetLoader; } struct CustomPipeline { void UpdatePixelData(VideoCommon::CustomAssetLoader& loader, std::shared_ptr library, std::span texture_units, const VideoCommon::CustomAssetLibrary::AssetID& material_to_load); VideoCommon::CachedAsset m_pixel_material; VideoCommon::CachedAsset m_pixel_shader; struct CachedTextureAsset { VideoCommon::CachedAsset m_cached_asset; std::unique_ptr m_texture; std::string m_sampler_code; std::string m_define_code; }; std::vector> m_game_textures; ShaderCode m_last_generated_shader_code; ShaderCode m_last_generated_material_code; std::vector m_material_data; };