11 glm::mat4 projectionMatrix;
13 glm::mat4 inverseProjectionMatrix;
14 glm::mat4 inverseViewMatrix;
16 float alignmentBufferForPreviousVec3;
17 glm::vec2 framebufferResolution;
18 glm::vec2 renderResolution;
19 glm::vec2 renderScale;
42 void CaptureMousePick(Grindstone::Math::Int2 coordinates);
43 uint64_t GetRenderOutput();
46 void OffsetRotation(
float pitch,
float yaw);
47 void OffsetPosition(glm::vec3 offset);
48 void SetPosition(glm::vec3 newPosition);
49 void ResizeViewport(uint32_t width, uint32_t height);
50 void UpdateProjectionMatrix();
51 void UpdateViewMatrix();
52 glm::mat4& GetProjectionMatrix();
53 glm::mat4& GetViewMatrix();
55 glm::vec3 GetPosition()
const;
56 glm::vec3 GetForward()
const;
57 glm::vec3 GetRight()
const;
58 glm::vec3 GetUp()
const;
60 bool isGridEnabled =
true;
61 bool isBoundingSphereGizmoEnabled =
false;
62 bool isBoundingBoxGizmoEnabled =
false;
63 uint32_t renderMode = 0;
64 bool isColliderGizmoEnabled =
true;
65 bool mousePickedThisFrame =
false;
66 Grindstone::Math::Int2 mousePickCoordinates;
72 std::array<Grindstone::GraphicsAPI::Buffer*, 3> globalUniformBufferObject;
73 std::array<Grindstone::GraphicsAPI::DescriptorSet*, 3> globalDescriptorSet;
76 std::array<GraphicsAPI::Image*, 3> renderTarget;
77 std::array<GraphicsAPI::Image*, 3> depthTarget;
80 std::array<GraphicsAPI::DescriptorSet*, 3> descriptorSet;
84 glm::vec3 position = glm::vec3();
85 glm::vec3 eulerAngles = glm::vec3();
86 glm::quat rotation = glm::quat();
88 uint32_t height = 600;
89 float fieldOfView = glm::radians(80.0f);
90 float nearPlaneDistance = 0.1f;
91 float farPlaneDistance = 150.f;