MCPcopy Create free account
hub / github.com/FlaxEngine/FlaxEngine / InitSwapChain

Method InitSwapChain

Source/Engine/Platform/Base/WindowBase.cpp:501–539  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

499}
500
501bool WindowBase::InitSwapChain()
502{
503 // Setup swapchain
504 PROFILE_MEM(Graphics);
505 if (_swapChain == nullptr)
506 {
507 _swapChain = GPUDevice::Instance->CreateSwapChain((Window*)this);
508 if (!_swapChain)
509 return true;
510 }
511 if (_swapChain->Resize(static_cast<int32>(_clientSize.X), static_cast<int32>(_clientSize.Y)))
512 return true;
513 if (_settings.Fullscreen)
514 _swapChain->SetFullscreen(true);
515
516 // Setup render task
517 if (RenderTask == nullptr)
518 {
519#if !USE_EDITOR
520 if (IsMain())
521 {
522 // Override main task output (render directly to the window backbuffer)
523 ASSERT(MainRenderTask::Instance);
524 ASSERT(MainRenderTask::Instance->SwapChain == nullptr);
525 RenderTask = MainRenderTask::Instance;
526 MainRenderTask::Instance->Deleted.Bind<WindowBase, &WindowBase::OnMainRenderTaskDelete>(this);
527 }
528 else
529#endif
530 {
531 RenderTask = New<::RenderTask>();
532 }
533 RenderTask->SwapChain = _swapChain;
534 RenderTask->Enabled = false;
535 RenderTask->Order = 100;
536 }
537
538 return false;
539}
540
541void WindowBase::Show()
542{

Callers 2

InitMainWindowMethod · 0.80
OnAppCmdFunction · 0.80

Calls 3

CreateSwapChainMethod · 0.45
ResizeMethod · 0.45
SetFullscreenMethod · 0.45

Tested by

no test coverage detected