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

Method Update

Source/Engine/Debug/DebugDraw.cpp:652–727  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

650}
651
652void DebugDrawService::Update()
653{
654 // Special case for Null renderer
655 if (GPUDevice::Instance->GetRendererType() == RendererType::Null)
656 {
657 GlobalContext.DebugDrawDefault.Clear();
658 GlobalContext.DebugDrawDepthTest.Clear();
659 return;
660 }
661
662 PROFILE_CPU();
663 PROFILE_MEM(EngineDebug);
664
665 // Update lists
666 float deltaTime = Time::Update.DeltaTime.GetTotalSeconds();
667#if USE_EDITOR
668 if (!Editor::IsPlayMode)
669 deltaTime = Time::Update.UnscaledDeltaTime.GetTotalSeconds();
670#endif
671 GlobalContext.DebugDrawDefault.Update(deltaTime);
672 GlobalContext.DebugDrawDepthTest.Update(deltaTime);
673
674 // Lazy-init resources
675 if (DebugDrawShader == nullptr)
676 {
677 DebugDrawShader = Content::LoadAsyncInternal<Shader>(TEXT("Shaders/DebugDraw"));
678 if (DebugDrawShader == nullptr)
679 {
680 LOG(Fatal, "Cannot load DebugDraw shader");
681 }
682#if COMPILE_WITH_DEV_ENV
683 DebugDrawShader->OnReloading.Bind(&OnShaderReloading);
684#endif
685 }
686 if (DebugDrawPsWireTrianglesDepthTest.Depth == nullptr && DebugDrawShader && DebugDrawShader->IsLoaded())
687 {
688 bool failed = false;
689 const auto shader = DebugDrawShader->GetShader();
690
691 // Create pipeline states
692 GPUPipelineState::Description desc = GPUPipelineState::Description::Default;
693 desc.BlendMode = BlendingMode::AlphaBlend;
694 desc.CullMode = CullMode::TwoSided;
695 desc.VS = shader->GetVS("VS");
696
697 // Default
698 desc.PS = shader->GetPS("PS", 0);
699 desc.PrimitiveTopology = PrimitiveTopologyType::Line;
700 failed |= DebugDrawPsLinesDefault.Create(desc);
701 desc.PS = shader->GetPS("PS", 1);
702 desc.PrimitiveTopology = PrimitiveTopologyType::Triangle;
703 failed |= DebugDrawPsTrianglesDefault.Create(desc);
704 desc.Wireframe = true;
705 failed |= DebugDrawPsWireTrianglesDefault.Create(desc);
706
707 // Depth Test
708 desc.Wireframe = false;
709 desc.PS = shader->GetPS("PS", 2);

Callers 1

UpdateContextMethod · 0.45

Calls 6

ClearMethod · 0.45
BindMethod · 0.45
IsLoadedMethod · 0.45
GetShaderMethod · 0.45
GetPSMethod · 0.45
CreateMethod · 0.45

Tested by

no test coverage detected