MCPcopy Create free account
hub / github.com/NVIDIAGameWorks/Falcor / handleKeyboardEvent

Method handleKeyboardEvent

Source/Falcor/Core/SampleApp.cpp:186–253  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

184}
185
186void 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;

Callers

nothing calls this directly

Calls 14

toggleUIFunction · 0.85
hasModifierMethod · 0.80
getProfilerMethod · 0.80
reloadAllProgramsMethod · 0.80
onKeyEventFunction · 0.70
onHotReloadFunction · 0.70
getDeviceFunction · 0.50
onKeyboardEventMethod · 0.45
onKeyEventMethod · 0.45
setEnabledMethod · 0.45
isEnabledMethod · 0.45
resetMethod · 0.45

Tested by

no test coverage detected