CMaterial.h 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. #pragma once
  2. #include "WallpaperEngine/Core/Objects/Images/CMaterial.h"
  3. #include "WallpaperEngine/Core/Objects/CEffect.h"
  4. #include "WallpaperEngine/Render/Objects/Effects/CPass.h"
  5. #include "WallpaperEngine/Render/Objects/CEffect.h"
  6. #include "CPass.h"
  7. using namespace WallpaperEngine;
  8. namespace WallpaperEngine::Render::Objects
  9. {
  10. class CEffect;
  11. class CImage;
  12. }
  13. namespace WallpaperEngine::Render::Objects::Effects
  14. {
  15. class CPass;
  16. class CMaterial
  17. {
  18. friend class CPass;
  19. public:
  20. CMaterial (const Render::Objects::CEffect* effect, const Core::Objects::Images::CMaterial* material);
  21. const std::vector<CPass*>& getPasses () const;
  22. CImage* getImage () const;
  23. const Core::Objects::Images::CMaterial* getMaterial () const;
  24. const CEffect* getEffect () const;
  25. private:
  26. void generatePasses ();
  27. const Render::Objects::CEffect* m_effect;
  28. const Core::Objects::Images::CMaterial* m_material;
  29. std::vector<CPass*> m_passes;
  30. };
  31. };