10 glm::mat4 projectionMatrix;
12 glm::mat4 inverseProjectionMatrix;
13 glm::mat4 inverseViewMatrix;
15 float alignmentBufferForPreviousVec3;
16 glm::vec2 framebufferResolution;
17 glm::vec2 renderResolution;
18 glm::vec2 renderScale;
40 static void SetupRenderPasses();
45 uint64_t GetRenderOutput();
48 void OffsetRotation(
float pitch,
float yaw);
49 void OffsetPosition(glm::vec3 offset);
50 void SetPosition(glm::vec3 newPosition);
51 void ResizeViewport(uint32_t width, uint32_t height);
52 void UpdateProjectionMatrix();
53 void UpdateViewMatrix();
54 glm::mat4& GetProjectionMatrix();
55 glm::mat4& GetViewMatrix();
58 glm::vec3 GetPosition()
const;
59 glm::vec3 GetForward()
const;
60 glm::vec3 GetRight()
const;
61 glm::vec3 GetUp()
const;
63 bool isGridEnabled =
true;
64 bool isBoundingSphereGizmoEnabled =
false;
65 bool isBoundingBoxGizmoEnabled =
false;
66 bool isColliderGizmoEnabled =
true;
72 std::array<Grindstone::GraphicsAPI::Buffer*, 3> globalUniformBufferObject;
73 std::array<Grindstone::GraphicsAPI::DescriptorSet*, 3> globalDescriptorSet;
77 std::array<GraphicsAPI::Image*, 3> renderTarget;
78 std::array<GraphicsAPI::Image*, 3> depthTarget;
81 std::array<GraphicsAPI::DescriptorSet*, 3> descriptorSet;
84 std::array<GraphicsAPI::Image*, 3> mousePickRenderTarget{};
85 std::array<GraphicsAPI::Framebuffer*, 3> mousePickFramebuffer{};
86 std::array<GraphicsAPI::DescriptorSet*, 3> mousePickDescriptorSet{};
87 std::array<GraphicsAPI::Buffer*, 3> mousePickMatrixBuffer{};
88 std::array<GraphicsAPI::Buffer*, 3> mousePickResponseBuffer{};
93 glm::vec3 position = glm::vec3();
94 glm::vec3 eulerAngles = glm::vec3();
95 glm::quat rotation = glm::quat();
97 uint32_t height = 600;
98 float fieldOfView = glm::radians(80.0f);
99 float nearPlaneDistance = 0.1f;
100 float farPlaneDistance = 150.f;