37 if (!m_interface->getRenderer().beginFrame(m_resolutionManager->getWindowResolution(), renderData)) {
38 log(
"Skipping frame.");
41 renderData.imguiTextureID = m_interface->getRenderer().getImGuiTextureID(*m_imgui);
42 m_imgui->beginFrame();
43 m_imgui->executeUIFunctions();
45 glm::uvec2 newRes = m_resolutionManager->getWindowResolution();
49 m_interface->getRenderer().composeFrame(renderData, *m_imgui,
true);
50 m_interface->getRenderer().endFrame(renderData);
52 }
catch (
const std::exception& e) {
53 log(LogLevel::ERROR,
"Dialogwindow render failed");
59 ImGuiViewport* viewport = ImGui::GetMainViewport();
60 ImGui::SetNextWindowPos(viewport->Pos);
61 ImGui::SetNextWindowSize(viewport->Size);
62 ImGui::SetNextWindowViewport(viewport->ID);
64 ImGuiWindowFlags windowFlags = ImGuiWindowFlags_NoDocking | ImGuiWindowFlags_NoTitleBar |
65 ImGuiWindowFlags_NoCollapse | ImGuiWindowFlags_NoResize |
66 ImGuiWindowFlags_NoMove | ImGuiWindowFlags_NoBringToFrontOnFocus |
67 ImGuiWindowFlags_NoNavFocus | ImGuiWindowFlags_NoBackground;
69 ImGui::PushStyleVar(ImGuiStyleVar_WindowRounding, 0.0f);
70 ImGui::PushStyleVar(ImGuiStyleVar_WindowBorderSize, 0.0f);
71 ImGui::PushStyleVar(ImGuiStyleVar_WindowPadding, ImVec2(0.0f, 0.0f));
73 ImGui::Begin(
"DialogWindowkSpace",
nullptr, windowFlags);
74 ImGui::PopStyleVar(3);
76 ImGuiID dockspaceId = ImGui::GetID(
"MyDialogDockSpace");
78 ImGuiDockNodeFlags dockFlags = ImGuiDockNodeFlags_None;
80 if (!ImGui::DockBuilderGetNode(dockspaceId)) {
81 ImGui::DockBuilderRemoveNode(dockspaceId);
82 ImGui::DockBuilderAddNode(dockspaceId, ImGuiDockNodeFlags_DockSpace);
83 ImGui::DockBuilderSetNodeSize(dockspaceId, viewport->Size);
85 ImGuiID dockMainId = dockspaceId;
86 ImGuiID dockRightId = ImGui::DockBuilderSplitNode(dockMainId, ImGuiDir_Right, 0.2f,
nullptr, &dockMainId);
88 ImGui::DockBuilderDockWindow(
"Dialog", dockMainId);
90 ImGui::DockBuilderFinish(dockspaceId);
93 ImGui::DockSpace(dockspaceId, ImVec2(0.0f, 0.0f), dockFlags);
96 ImGuiDockNode* node = ImGui::DockBuilderGetNode(dockspaceId);
98 node->LocalFlags |= ImGuiDockNodeFlags_NoTabBar;
101 ImGui::SetNextWindowPos(viewport->Pos);
102 ImGui::SetNextWindowSize(viewport->Size);
104 ImGuiWindowFlags childFlags = ImGuiWindowFlags_NoMove | ImGuiWindowFlags_NoCollapse |
105 ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoDocking;
107 ImGui::PushStyleVar(ImGuiStyleVar_WindowPadding, ImVec2(0, 0));
108 ImGui::Begin(
"Dialog",
nullptr, childFlags);
110 ImVec2 viewportPanelSize = ImGui::GetContentRegionAvail();
111 outNewResolution = { (uint32_t)viewportPanelSize.x, (uint32_t)viewportPanelSize.y };
113 ImGui::Text(
"%s", m_dialogContent.c_str());
116 ImGui::PopStyleVar();