#pragma once #include #include #include "Images/CMaterial.h" namespace WallpaperEngine::Core::Objects { using json = nlohmann::json; class CEffect { public: CEffect ( std::string name, std::string description, std::string group, std::string preview ); static CEffect* fromJSON (json data); std::vector* getDependencies (); std::vector* getMaterials (); protected: void insertDependency (const std::string& dep); void insertMaterial (Images::CMaterial* material); private: std::string m_name; std::string m_description; std::string m_group; std::string m_preview; std::vector m_dependencies; std::vector m_materials; }; }