CImage.h 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. #pragma once
  2. #include "WallpaperEngine/Core/Objects/Images/CMaterial.h"
  3. #include "WallpaperEngine/Core/Core.h"
  4. #include "WallpaperEngine/Core/CObject.h"
  5. #include "WallpaperEngine/Assets/CContainer.h"
  6. namespace WallpaperEngine::Core::Objects
  7. {
  8. using json = nlohmann::json;
  9. using namespace WallpaperEngine::Assets;
  10. class CImage : public CObject
  11. {
  12. friend class CObject;
  13. public:
  14. static CObject* fromJSON (
  15. json data,
  16. CContainer* container,
  17. bool visible,
  18. uint32_t id,
  19. std::string name,
  20. const glm::vec3& origin,
  21. const glm::vec3& scale,
  22. const glm::vec3& angles
  23. );
  24. const Images::CMaterial* getMaterial () const;
  25. const glm::vec2& getSize () const;
  26. const std::string& getAlignment () const;
  27. const float getAlpha () const;
  28. const glm::vec3& getColor () const;
  29. const float getBrightness () const;
  30. const uint32_t getColorBlendMode () const;
  31. const glm::vec2& getParallaxDepth () const;
  32. protected:
  33. CImage (
  34. Images::CMaterial* material,
  35. bool visible,
  36. uint32_t id,
  37. std::string name,
  38. const glm::vec3& origin,
  39. const glm::vec3& scale,
  40. const glm::vec3& angles,
  41. const glm::vec2& size,
  42. std::string alignment,
  43. const glm::vec3& color,
  44. float alpha,
  45. float brightness,
  46. uint32_t colorBlendMode,
  47. const glm::vec2& parallaxDepth
  48. );
  49. static const std::string Type;
  50. private:
  51. glm::vec2 m_size;
  52. const glm::vec2 m_parallaxDepth;
  53. Images::CMaterial* m_material;
  54. std::string m_alignment;
  55. float m_alpha;
  56. float m_brightness;
  57. glm::vec3 m_color;
  58. uint32_t m_colorBlendMode;
  59. };
  60. };