CSEngine
Loading...
Searching...
No Matches
CameraMgr.h
1#pragma once
2
3#include "Base/SContainerList.h"
4#include "Base/CoreBase.h"
5#include "../Component/CameraComponent.h"
6
7namespace CSE {
8
9 class GLProgramHandle;
10
11 class CameraMgr : public SContainerList<CameraComponent*>, public CoreBase {
12 public:
13 explicit CameraMgr();
14 ~CameraMgr() override;
15
16 void Init() override;
17
18 void DeleteCameraComponent(CameraComponent* object);
19
20
21 const float* GetProjectionRatio() const;
22
23 void SetProjectionRatio(float ratio);
24
25 CameraComponent* GetCurrentCamera() const;
26
27 void ChangeCurrentCamera(CameraComponent* camera);
28
29 GLProgramHandle* GetSkyboxProgram() const;
30
31 private:
32 CameraComponent* m_currentCamera = nullptr;
33 float m_projectionRatio = 1.0f;
34
35 // Skybox Raw Material
36 GLProgramHandle* m_skyboxProgram = nullptr;
37 };
38}