#pragma once #include #include #include "Types.h" namespace WallpaperEngine::Data::Model { enum PassCommandType { Command_Copy = 0, Command_Swap = 1 }; struct FBO { std::string name; std::string format; float scale; bool unique; }; struct EffectPass { /** The material to use for this effect's pass */ std::optional material; /** Texture bindings for this effect's pass */ TextureMap binds; /** The command this material executes (if specified) */ std::optional command; /** The source this material renders from (if specified) */ std::optional source; /** The target this material renders to (if specified) */ std::optional target; }; struct Effect { /** Effect's name for the UI */ std::string name; /** Effect's description for the UI */ std::string description; /** Effect's group for the UI */ std::string group; /** Effect's preview project */ std::string preview; /** Effect's dependencies */ std::vector dependencies; /** The different passes for this effect */ std::vector passes; /** The fbos declared by this effect */ std::vector fbos; }; } // namespace WallpaperEngine::Data::Model