MCPcopy Create free account
hub / github.com/antopilo/Nuake / DrawViewport

Method DrawViewport

Editor/Source/Editor/Windows/EditorInterface.cpp:634–946  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

632
633 ImVec2 LastSize = ImVec2();
634 void EditorInterface::DrawViewport()
635 {
636 ImGui::PushStyleVar(ImGuiStyleVar_WindowPadding, ImVec2(0, 0));
637 std::string name = ICON_FA_GAMEPAD + std::string(" Scene");
638 ImGuiWindowClass window_class;
639 //window_class.DockNodeFlagsOverrideSet = ImGuiDockNodeFlags_NoTabBar;
640 //ImGui::SetNextWindowClass(&window_class);
641
642 if (ImGui::Begin(name.c_str(), 0, ImGuiWindowFlags_NoDecoration))
643 {
644 ImGui::PopStyleVar();
645
646 Overlay();
647 ImGuizmo::BeginFrame();
648
649 ImGuizmo::SetOrthographic(false);
650 ImVec2 regionAvail = ImGui::GetContentRegionAvail();
651 Vector2 viewportPanelSize = glm::vec2(regionAvail.x, regionAvail.y);
652
653 // This is important for make UI mouse coord relative to viewport
654 Input::SetViewportDimensions(m_ViewportPos, viewportPanelSize);
655
656 Ref<FrameBuffer> framebuffer = Engine::GetCurrentWindow()->GetFrameBuffer();
657 if (framebuffer->GetSize() != viewportPanelSize * Engine::GetProject()->Settings.ResolutionScale)
658 framebuffer->QueueResize(viewportPanelSize * Engine::GetProject()->Settings.ResolutionScale);
659
660 Ref<Texture> texture = framebuffer->GetTexture();
661 VkDescriptorSet textureDesc = VkRenderer::Get().DrawImage->GetImGuiDescriptorSet();
662 if (SelectedViewport == 1)
663 {
664 //pipeline.GetRenderPass("Shadow").GetDepthAttachment().Image->TransitionLayout(VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL);
665 //textureDesc = pipeline.GetRenderPass("Shadow").GetDepthAttachment().Image->GetImGuiDescriptorSet();
666 texture = Engine::GetCurrentScene()->m_SceneRenderer->GetGBuffer().GetTexture(0);
667 }
668 else if (SelectedViewport == 2)
669 {
670 //textureDesc = pipeline.GetRenderPass("GBuffer").GetAttachment("Normal").Image->GetImGuiDescriptorSet();
671 //texture = Engine::GetCurrentScene()->m_SceneRenderer->GetGBuffer().GetTexture(GL_COLOR_ATTACHMENT1);
672 }
673 else if (SelectedViewport == 3)
674 {
675 //textureDesc = pipeline.GetRenderPass("GBuffer").GetDepthAttachment().Image->GetImGuiDescriptorSet();
676 //texture = Engine::GetCurrentScene()->m_SceneRenderer->GetScaledDepthTexture();
677 }
678 else if (SelectedViewport == 4)
679 {
680 //textureDesc = pipeline.GetRenderPass("GBuffer").GetAttachment("Material").Image->GetImGuiDescriptorSet();
681 //texture = Engine::GetCurrentScene()->m_SceneRenderer->GetVelocityTexture();
682 }
683
684 ImVec2 imagePos = ImGui::GetWindowPos() + ImGui::GetCursorPos();
685 Input::SetEditorViewportSize(m_ViewportPos, viewportPanelSize);
686 ImGui::PushStyleVar(ImGuiStyleVar_WindowPadding, ImVec2(0, 0));
687 m_ViewportPos = { imagePos.x, imagePos.y };
688 ImGui::Image(textureDesc, regionAvail, {0, 1}, {1, 0});
689 ImGui::PopStyleVar();
690
691 const Vector2& mousePos = Input::GetMousePosition();

Callers

nothing calls this directly

Calls 15

PushStyleVarFunction · 0.85
PopStyleVarFunction · 0.85
BeginFrameFunction · 0.85
SetOrthographicFunction · 0.85
vec2Class · 0.85
GetCurrentWindowFunction · 0.85
GetCursorPosFunction · 0.85
ImageClass · 0.85
GetMousePositionFunction · 0.85
DepthToWorldPositionFunction · 0.85
translateFunction · 0.85
ModelLoaderClass · 0.85

Tested by

no test coverage detected