Quellcode durchsuchen

Fixed removal of trailing draw command if it is a callback command

ocornut vor 9 Jahren
Ursprung
Commit
a3b00b79f2
1 geänderte Dateien mit 4 neuen und 1 gelöschten Zeilen
  1. 4 1
      imgui.cpp

+ 4 - 1
imgui.cpp

@@ -2278,8 +2278,11 @@ static void AddDrawListToRenderList(ImVector<ImDrawList*>& out_render_list, ImDr
 {
     if (!draw_list->CmdBuffer.empty() && !draw_list->VtxBuffer.empty())
     {
-        if (draw_list->CmdBuffer.back().ElemCount == 0)
+        // Remove trailing command if unused
+        ImDrawCmd& last_cmd = draw_list->CmdBuffer.back();
+        if (last_cmd.ElemCount == 0 && last_cmd.UserCallback == NULL)
             draw_list->CmdBuffer.pop_back();
+
         out_render_list.push_back(draw_list);
 
         // Check that draw_list doesn't use more vertices than indexable (default ImDrawIdx = 2 bytes = 64K vertices)