CScene.h 1002 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. #pragma once
  2. #include "CCamera.h"
  3. #include "WallpaperEngine/Core/CScene.h"
  4. #include "WallpaperEngine/Render/CWallpaper.h"
  5. #include "WallpaperEngine/Render/CObject.h"
  6. namespace WallpaperEngine::Render
  7. {
  8. class CCamera;
  9. class CObject;
  10. class CScene : public CWallpaper
  11. {
  12. public:
  13. CScene (Core::CScene* scene, CContext* context);
  14. CCamera* getCamera () const;
  15. Core::CScene* getScene ();
  16. glm::vec2* getMousePosition ();
  17. glm::vec2* getParallaxDisplacement ();
  18. protected:
  19. void renderFrame (glm::ivec4 viewport) override;
  20. void updateMouse (glm::ivec4 viewport);
  21. friend class CWallpaper;
  22. static const std::string Type;
  23. private:
  24. Render::CObject* createObject (Core::CObject* object);
  25. CCamera* m_camera;
  26. std::map<int, CObject*> m_objects;
  27. std::vector<CObject*> m_objectsByRenderOrder;
  28. glm::vec2 m_mousePosition;
  29. glm::vec2 m_parallaxDisplacement;
  30. };
  31. }