| 184 | } |
| 185 | |
| 186 | void SampleApp::handleKeyboardEvent(const KeyboardEvent& keyEvent) |
| 187 | { |
| 188 | if (mShowUI && mpGui->onKeyboardEvent(keyEvent)) |
| 189 | return; |
| 190 | mInputState.onKeyEvent(keyEvent); |
| 191 | if (onKeyEvent(keyEvent)) |
| 192 | return; |
| 193 | |
| 194 | // Checks if should toggle zoom |
| 195 | mpPixelZoom->onKeyboardEvent(keyEvent); |
| 196 | |
| 197 | // Consume system messages first |
| 198 | if (keyEvent.type == KeyboardEvent::Type::KeyPressed) |
| 199 | { |
| 200 | if (keyEvent.hasModifier(Input::Modifier::Ctrl)) |
| 201 | { |
| 202 | switch (keyEvent.key) |
| 203 | { |
| 204 | case Input::Key::Pause: |
| 205 | case Input::Key::Space: |
| 206 | mRendererPaused = !mRendererPaused; |
| 207 | break; |
| 208 | default: |
| 209 | break; |
| 210 | } |
| 211 | } |
| 212 | else if (keyEvent.mods == Input::ModifierFlags::None) |
| 213 | { |
| 214 | switch (keyEvent.key) |
| 215 | { |
| 216 | case Input::Key::F12: |
| 217 | mCaptureScreen = true; |
| 218 | break; |
| 219 | #if FALCOR_ENABLE_PROFILER |
| 220 | case Input::Key::P: |
| 221 | getDevice()->getProfiler()->setEnabled(!getDevice()->getProfiler()->isEnabled()); |
| 222 | break; |
| 223 | #endif |
| 224 | case Input::Key::V: |
| 225 | // TODO(@skallweit) we'd need to recreate the swapchain here |
| 226 | mVsyncOn = !mVsyncOn; |
| 227 | mFrameRate.reset(); |
| 228 | mClock.setTime(0); |
| 229 | break; |
| 230 | case Input::Key::F2: |
| 231 | toggleUI(!mShowUI); |
| 232 | break; |
| 233 | case Input::Key::F5: |
| 234 | { |
| 235 | HotReloadFlags reloaded = HotReloadFlags::None; |
| 236 | if (mpDevice->getProgramManager()->reloadAllPrograms()) |
| 237 | reloaded |= HotReloadFlags::Program; |
| 238 | onHotReload(reloaded); |
| 239 | } |
| 240 | break; |
| 241 | case Input::Key::Escape: |
| 242 | mpWindow->shutdown(); |
| 243 | break; |
nothing calls this directly
no test coverage detected