| 155 | } |
| 156 | |
| 157 | void MSAAFilter::Update(const Timer& timer) |
| 158 | { |
| 159 | AppSettings::UpdateUI(); |
| 160 | |
| 161 | MouseState mouseState = MouseState::GetMouseState(window); |
| 162 | KeyboardState kbState = KeyboardState::GetKeyboardState(window); |
| 163 | |
| 164 | if(kbState.IsKeyDown(KeyboardState::Escape)) |
| 165 | window.Destroy(); |
| 166 | |
| 167 | float CamMoveSpeed = 5.0f * timer.DeltaSecondsF(); |
| 168 | const float CamRotSpeed = 0.180f * timer.DeltaSecondsF(); |
| 169 | const float MeshRotSpeed = 0.180f * timer.DeltaSecondsF(); |
| 170 | |
| 171 | // Move the camera with keyboard input |
| 172 | if(kbState.IsKeyDown(KeyboardState::LeftShift)) |
| 173 | CamMoveSpeed *= 0.25f; |
| 174 | |
| 175 | Float3 camPos = camera.Position(); |
| 176 | if(kbState.IsKeyDown(KeyboardState::W)) |
| 177 | camPos += camera.Forward() * CamMoveSpeed; |
| 178 | else if (kbState.IsKeyDown(KeyboardState::S)) |
| 179 | camPos += camera.Back() * CamMoveSpeed; |
| 180 | if(kbState.IsKeyDown(KeyboardState::A)) |
| 181 | camPos += camera.Left() * CamMoveSpeed; |
| 182 | else if (kbState.IsKeyDown(KeyboardState::D)) |
| 183 | camPos += camera.Right() * CamMoveSpeed; |
| 184 | if(kbState.IsKeyDown(KeyboardState::Q)) |
| 185 | camPos += camera.Up() * CamMoveSpeed; |
| 186 | else if (kbState.IsKeyDown(KeyboardState::E)) |
| 187 | camPos += camera.Down() * CamMoveSpeed; |
| 188 | camera.SetPosition(camPos); |
| 189 | |
| 190 | // Rotate the camera with the mouse |
| 191 | if(mouseState.RButton.Pressed && mouseState.IsOverWindow) |
| 192 | { |
| 193 | float xRot = camera.XRotation(); |
| 194 | float yRot = camera.YRotation(); |
| 195 | xRot += mouseState.DY * CamRotSpeed; |
| 196 | yRot += mouseState.DX * CamRotSpeed; |
| 197 | camera.SetXRotation(xRot); |
| 198 | camera.SetYRotation(yRot); |
| 199 | } |
| 200 | |
| 201 | // Reset the camera projection |
| 202 | camera.SetAspectRatio(camera.AspectRatio()); |
| 203 | Float2 jitter = 0.0f; |
| 204 | if(AppSettings::EnableTemporalAA && AppSettings::EnableJitter() && AppSettings::UseStandardResolve == false) |
| 205 | { |
| 206 | const float jitterScale = 0.5f; |
| 207 | |
| 208 | if(AppSettings::JitterMode == JitterModes::Uniform2x) |
| 209 | { |
| 210 | jitter = frameCount % 2 == 0 ? -0.5f : 0.5f; |
| 211 | } |
| 212 | else if(AppSettings::JitterMode == JitterModes::Hammersly16) |
| 213 | { |
| 214 | uint64 idx = frameCount % 16; |
nothing calls this directly
no test coverage detected