Update user-facing viewport list (g.Viewports -> g.PlatformIO.Viewports after filtering out some)
| 16119 | |
| 16120 | // Update user-facing viewport list (g.Viewports -> g.PlatformIO.Viewports after filtering out some) |
| 16121 | static void ImGui::UpdateViewportsEndFrame() |
| 16122 | { |
| 16123 | ImGuiContext& g = *GImGui; |
| 16124 | g.PlatformIO.Viewports.resize(0); |
| 16125 | for (int i = 0; i < g.Viewports.Size; i++) |
| 16126 | { |
| 16127 | ImGuiViewportP* viewport = g.Viewports[i]; |
| 16128 | viewport->LastPos = viewport->Pos; |
| 16129 | viewport->LastSize = viewport->Size; |
| 16130 | if (viewport->LastFrameActive < g.FrameCount || viewport->Size.x <= 0.0f || viewport->Size.y <= 0.0f) |
| 16131 | if (i > 0) // Always include main viewport in the list |
| 16132 | continue; |
| 16133 | if (viewport->Window && !IsWindowActiveAndVisible(viewport->Window)) |
| 16134 | continue; |
| 16135 | if (i > 0) |
| 16136 | IM_ASSERT(viewport->Window != NULL); |
| 16137 | g.PlatformIO.Viewports.push_back(viewport); |
| 16138 | } |
| 16139 | g.Viewports[0]->ClearRequestFlags(); // Clear main viewport flags because UpdatePlatformWindows() won't do it and may not even be called |
| 16140 | } |
| 16141 | |
| 16142 | // FIXME: We should ideally refactor the system to call this every frame (we currently don't) |
| 16143 | ImGuiViewportP* ImGui::AddUpdateViewport(ImGuiWindow* window, ImGuiID id, const ImVec2& pos, const ImVec2& size, ImGuiViewportFlags flags) |
nothing calls this directly
no test coverage detected