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

Method renderFrame

Source/Falcor/Core/SampleApp.cpp:462–534  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

460}
461
462void SampleApp::renderFrame()
463{
464 FALCOR_ASSERT(mpDevice);
465
466 // Skip rendering if window is occluded.
467 if (mpSwapchain && mpSwapchain->isOccluded())
468 return;
469
470 // Check clock exit condition.
471 if (mClock.shouldExit())
472 shutdown();
473
474 // Handle clock.
475 mClock.tick();
476 mFrameRate.newFrame();
477
478 RenderContext* pRenderContext = mpDevice->getRenderContext();
479
480 // Render a frame.
481 // If the renderer is paused, create a copy of the rendered output and copy that back each frame.
482 if (mRendererPaused && mpPausedRenderOutput)
483 {
484 pRenderContext->blit(mpPausedRenderOutput->getSRV(), mpTargetFBO->getColorTexture(0)->getRTV());
485 }
486 else
487 {
488 FALCOR_PROFILE(pRenderContext, "onFrameRender");
489 onFrameRender(pRenderContext, mpTargetFBO);
490
491 if (mRendererPaused)
492 {
493 auto srcTexture = mpTargetFBO->getColorTexture(0);
494 mpPausedRenderOutput =
495 mpDevice->createTexture2D(srcTexture->getWidth(), srcTexture->getHeight(), srcTexture->getFormat(), 1, 1);
496 pRenderContext->copyResource(mpPausedRenderOutput.get(), srcTexture.get());
497 }
498 else
499 {
500 mpPausedRenderOutput = nullptr;
501 }
502 }
503
504 // Render the UI.
505 renderUI();
506
507 if (mpPixelZoom)
508 mpPixelZoom->render(pRenderContext, mpTargetFBO.get());
509
510#if FALCOR_ENABLE_PROFILER
511 mpDevice->getProfiler()->endFrame(pRenderContext);
512#endif
513
514 if (mCaptureScreen)
515 captureScreen(mpTargetFBO->getColorTexture(0).get());
516
517 // Copy framebuffer to swapchain image.
518 if (mpSwapchain)
519 {

Callers 3

render_framesFunction · 0.80

Calls 15

onFrameRenderFunction · 0.85
isOccludedMethod · 0.80
shouldExitMethod · 0.80
blitMethod · 0.80
getRTVMethod · 0.80
getColorTextureMethod · 0.80
createTexture2DMethod · 0.80
getWidthMethod · 0.80
getHeightMethod · 0.80
getFormatMethod · 0.80
copyResourceMethod · 0.80
getProfilerMethod · 0.80

Tested by

no test coverage detected