27 static void SetupRenderPasses();
32 uint64_t GetRenderOutput();
35 void OffsetRotation(
float pitch,
float yaw);
36 void OffsetPosition(glm::vec3 offset);
37 void SetPosition(glm::vec3 newPosition);
38 void ResizeViewport(uint32_t width, uint32_t height);
39 void UpdateProjectionMatrix();
40 void UpdateViewMatrix();
41 glm::mat4& GetProjectionMatrix();
42 glm::mat4& GetViewMatrix();
45 glm::vec3 GetPosition()
const;
46 glm::vec3 GetForward()
const;
47 glm::vec3 GetRight()
const;
48 glm::vec3 GetUp()
const;
50 bool isGridEnabled =
true;
51 bool isBoundingSphereGizmoEnabled =
false;
52 bool isBoundingBoxGizmoEnabled =
false;
53 bool isColliderGizmoEnabled =
true;
58 std::array<GraphicsAPI::Image*, 3> renderTarget;
59 std::array<GraphicsAPI::Image*, 3> depthTarget;
62 std::array<GraphicsAPI::DescriptorSet*, 3> descriptorSet;
65 std::array<GraphicsAPI::Image*, 3> mousePickRenderTarget{};
66 std::array<GraphicsAPI::Framebuffer*, 3> mousePickFramebuffer{};
67 std::array<GraphicsAPI::DescriptorSet*, 3> mousePickDescriptorSet{};
68 std::array<GraphicsAPI::Buffer*, 3> mousePickMatrixBuffer{};
69 std::array<GraphicsAPI::Buffer*, 3> mousePickResponseBuffer{};
74 glm::vec3 position = glm::vec3();
75 glm::vec3 eulerAngles = glm::vec3();
76 glm::quat rotation = glm::quat();
78 uint32_t height = 600;
79 float fieldOfView = glm::radians(80.0f);
80 float nearPlaneDistance = 0.1f;
81 float farPlaneDistance = 150.f;