From 7bd87b84c7a0af1ee7d4a20338ee865f51769c57 Mon Sep 17 00:00:00 2001 From: Zaafar Ahmed Date: Fri, 21 Jan 2022 20:13:49 -0500 Subject: [PATCH] fixed the issue where popup windows stopped working ref: https://github.com/mellinoe/ImGui.NET/pull/294 --- ClickableTransparentOverlay/ImGuiController.cs | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/ClickableTransparentOverlay/ImGuiController.cs b/ClickableTransparentOverlay/ImGuiController.cs index ff7ed27..7e62c41 100644 --- a/ClickableTransparentOverlay/ImGuiController.cs +++ b/ClickableTransparentOverlay/ImGuiController.cs @@ -461,7 +461,6 @@ private void RenderImDrawData(ImDrawDataPtr draw_data, GraphicsDevice gd, Comman for (int i = 0; i < draw_data.CmdListsCount; i++) { ImDrawListPtr cmd_list = draw_data.CmdListsRange[i]; - cl.UpdateBuffer( _vertexBuffer, vertexOffsetInVertices * (uint)Unsafe.SizeOf(), @@ -506,6 +505,11 @@ private void RenderImDrawData(ImDrawDataPtr draw_data, GraphicsDevice gd, Comman for (int cmd_i = 0; cmd_i < cmd_list.CmdBuffer.Size; cmd_i++) { ImDrawCmdPtr pcmd = cmd_list.CmdBuffer[cmd_i]; + if (pcmd.ElemCount == 0) + { + continue; + } + if (pcmd.UserCallback != IntPtr.Zero) { throw new NotImplementedException(); @@ -531,12 +535,12 @@ private void RenderImDrawData(ImDrawDataPtr draw_data, GraphicsDevice gd, Comman (uint)(pcmd.ClipRect.Z - pcmd.ClipRect.X), (uint)(pcmd.ClipRect.W - pcmd.ClipRect.Y)); - cl.DrawIndexed(pcmd.ElemCount, 1, (uint)idx_offset, vtx_offset, 0); + cl.DrawIndexed(pcmd.ElemCount, 1, pcmd.IdxOffset + (uint)idx_offset, (int)pcmd.VtxOffset + vtx_offset, 0); } - - idx_offset += (int)pcmd.ElemCount; } + vtx_offset += cmd_list.VtxBuffer.Size; + idx_offset += cmd_list.IdxBuffer.Size; } }