mirror of
https://github.com/Drezil/imgui.git
synced 2024-11-22 03:47:00 +00:00
ImDrawData: call _PopUnusedDrawCmd() later. as RenderDimmedBackgrounds() rely on a valid command being there (especially in docking branch). (#6406, #4879, #1878)
Amend/fix dbeeeae
for docking.
+ Build fix when using IMGUI_DISABLE_DEBUG_TOOLS
This commit is contained in:
parent
dbeeeae593
commit
6888e6cdff
@ -5102,8 +5102,12 @@ void ImGui::Render()
|
|||||||
if (viewport->DrawLists[1] != NULL)
|
if (viewport->DrawLists[1] != NULL)
|
||||||
AddDrawListToDrawDataEx(&viewport->DrawDataP, viewport->DrawDataBuilder.Layers[0], GetForegroundDrawList(viewport));
|
AddDrawListToDrawDataEx(&viewport->DrawDataP, viewport->DrawDataBuilder.Layers[0], GetForegroundDrawList(viewport));
|
||||||
|
|
||||||
|
// We call _PopUnusedDrawCmd() last thing, as RenderDimmedBackgrounds() rely on a valid command being there (especially in docking branch).
|
||||||
ImDrawData* draw_data = &viewport->DrawDataP;
|
ImDrawData* draw_data = &viewport->DrawDataP;
|
||||||
IM_ASSERT(draw_data->CmdLists.Size == draw_data->CmdListsCount);
|
IM_ASSERT(draw_data->CmdLists.Size == draw_data->CmdListsCount);
|
||||||
|
for (int draw_list_n = 0; draw_list_n < draw_data->CmdLists.Size; draw_list_n++)
|
||||||
|
draw_data->CmdLists[draw_list_n]->_PopUnusedDrawCmd();
|
||||||
|
|
||||||
g.IO.MetricsRenderVertices += draw_data->TotalVtxCount;
|
g.IO.MetricsRenderVertices += draw_data->TotalVtxCount;
|
||||||
g.IO.MetricsRenderIndices += draw_data->TotalIdxCount;
|
g.IO.MetricsRenderIndices += draw_data->TotalIdxCount;
|
||||||
}
|
}
|
||||||
@ -14904,7 +14908,7 @@ void ImGui::ShowStackToolWindow(bool* p_open)
|
|||||||
void ImGui::ShowMetricsWindow(bool*) {}
|
void ImGui::ShowMetricsWindow(bool*) {}
|
||||||
void ImGui::ShowFontAtlas(ImFontAtlas*) {}
|
void ImGui::ShowFontAtlas(ImFontAtlas*) {}
|
||||||
void ImGui::DebugNodeColumns(ImGuiOldColumns*) {}
|
void ImGui::DebugNodeColumns(ImGuiOldColumns*) {}
|
||||||
void ImGui::DebugNodeDrawList(ImGuiWindow*, const ImDrawList*, const char*) {}
|
void ImGui::DebugNodeDrawList(ImGuiWindow*, ImGuiViewportP*, const ImDrawList*, const char*) {}
|
||||||
void ImGui::DebugNodeDrawCmdShowMeshAndBoundingBox(ImDrawList*, const ImDrawList*, const ImDrawCmd*, bool, bool) {}
|
void ImGui::DebugNodeDrawCmdShowMeshAndBoundingBox(ImDrawList*, const ImDrawList*, const ImDrawCmd*, bool, bool) {}
|
||||||
void ImGui::DebugNodeFont(ImFont*) {}
|
void ImGui::DebugNodeFont(ImFont*) {}
|
||||||
void ImGui::DebugNodeStorage(ImGuiStorage*, const char*) {}
|
void ImGui::DebugNodeStorage(ImGuiStorage*, const char*) {}
|
||||||
|
@ -1853,7 +1853,6 @@ void ImGui::AddDrawListToDrawDataEx(ImDrawData* draw_data, ImVector<ImDrawList*>
|
|||||||
|
|
||||||
// Add to output list + records state in ImDrawData
|
// Add to output list + records state in ImDrawData
|
||||||
out_list->push_back(draw_list);
|
out_list->push_back(draw_list);
|
||||||
draw_list->_PopUnusedDrawCmd();
|
|
||||||
draw_data->CmdListsCount++;
|
draw_data->CmdListsCount++;
|
||||||
draw_data->TotalVtxCount += draw_list->VtxBuffer.Size;
|
draw_data->TotalVtxCount += draw_list->VtxBuffer.Size;
|
||||||
draw_data->TotalIdxCount += draw_list->IdxBuffer.Size;
|
draw_data->TotalIdxCount += draw_list->IdxBuffer.Size;
|
||||||
@ -1862,6 +1861,7 @@ void ImGui::AddDrawListToDrawDataEx(ImDrawData* draw_data, ImVector<ImDrawList*>
|
|||||||
void ImDrawData::AddDrawList(ImDrawList* draw_list)
|
void ImDrawData::AddDrawList(ImDrawList* draw_list)
|
||||||
{
|
{
|
||||||
IM_ASSERT(CmdLists.Size == CmdListsCount);
|
IM_ASSERT(CmdLists.Size == CmdListsCount);
|
||||||
|
draw_list->_PopUnusedDrawCmd();
|
||||||
ImGui::AddDrawListToDrawDataEx(this, &CmdLists, draw_list);
|
ImGui::AddDrawListToDrawDataEx(this, &CmdLists, draw_list);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user