CScene.h 913 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  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. protected:
  18. void renderFrame (glm::ivec4 viewport) override;
  19. void updateMouse (glm::ivec4 viewport);
  20. friend class CWallpaper;
  21. static const std::string Type;
  22. private:
  23. Render::CObject* createObject (Core::CObject* object);
  24. CCamera* m_camera;
  25. std::map<int, CObject*> m_objects;
  26. std::vector<CObject*> m_objectsByRenderOrder;
  27. glm::vec2 m_mousePosition;
  28. };
  29. }