mirror of
				https://github.com/Drezil/imgui.git
				synced 2025-10-30 20:51:06 +01:00 
			
		
		
		
	Metrics: Displaying all draw lists of a window (if it uses layer 0 and has already been appended to earlier in the frame).
This commit is contained in:
		| @@ -13980,15 +13980,15 @@ void ImGui::ShowMetricsWindow(bool* p_open) | ||||
|             for (int i = 0; i < g.Viewports.Size; i++) | ||||
|             { | ||||
|                 ImGuiViewport* viewport = g.Viewports[i]; | ||||
|                 ImDrawDataBuilder* draw_data = &viewport->DrawDataBuilder; // Because we avoid create an extra list when there's only one viewport | ||||
|                 ImGui::SetNextTreeNodeOpen(true, ImGuiCond_Once); | ||||
|                 if (ImGui::TreeNode((void*)(intptr_t)viewport->ID, "Viewport #%d, ID: 0x%08X, DrawLists: %d, Size: (%.0f,%.0f)", i, viewport->ID, draw_data->Layers[0].Size, viewport->Size.x, viewport->Size.y)) | ||||
|                 if (ImGui::TreeNode((void*)(intptr_t)viewport->ID, "Viewport #%d, ID: 0x%08X, DrawLists: %d, Size: (%.0f,%.0f)", i, viewport->ID, viewport->DrawDataBuilder.GetDrawListCount(), viewport->Size.x, viewport->Size.y)) | ||||
|                 { | ||||
|                     ImGui::BulletText("Pos: (%.0f,%.0f)", viewport->Pos.x, viewport->Pos.y); | ||||
|                     ImGui::BulletText("Flags: 0x%04X", viewport->Flags); | ||||
|                     ImGui::BulletText("PlatformOsDesktopPos: (%.0f,%.0f); DpiScale: %.0f%%", viewport->PlatformOsDesktopPos.x, viewport->PlatformOsDesktopPos.y, viewport->DpiScale * 100.0f); | ||||
|                     for (int draw_list_i = 0; draw_list_i < viewport->DrawDataBuilder.Layers[0].Size; draw_list_i++) | ||||
|                         Funcs::NodeDrawList(NULL, viewport->DrawDataBuilder.Layers[0][draw_list_i], "DrawList"); | ||||
|                     for (int layer_i = 0; layer_i < IM_ARRAYSIZE(viewport->DrawDataBuilder.Layers); layer_i++) | ||||
|                         for (int draw_list_i = 0; draw_list_i < viewport->DrawDataBuilder.Layers[layer_i].Size; draw_list_i++) | ||||
|                             Funcs::NodeDrawList(NULL, viewport->DrawDataBuilder.Layers[layer_i][draw_list_i], "DrawList"); | ||||
|                     ImGui::TreePop(); | ||||
|                 } | ||||
|             } | ||||
|   | ||||
| @@ -502,6 +502,7 @@ struct ImDrawDataBuilder | ||||
|  | ||||
|     void Clear()            { for (int n = 0; n < IM_ARRAYSIZE(Layers); n++) Layers[n].resize(0); } | ||||
|     void ClearFreeMemory()  { for (int n = 0; n < IM_ARRAYSIZE(Layers); n++) Layers[n].clear(); } | ||||
|     int  GetDrawListCount() const { int count = 0; for (int n = 0; n < IM_ARRAYSIZE(Layers); n++) count += Layers[n].Size; return count; } | ||||
|     IMGUI_API void FlattenIntoSingleLayer(); | ||||
| }; | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user