// This is the low-level list of polygon that ImGui:: functions are creating. At the end of the frame, all command lists are passed to your ImGuiIO::RenderDrawListFn function for rendering.
// At the moment, each ImGui window contains its own ImDrawList but they could potentially be merged.
// This is the low-level list of polygons that ImGui functions are filling. At the end of the frame, all command lists are passed to your ImGuiIO::RenderDrawListFn function for rendering.
// At the moment, each ImGui window contains its own ImDrawList but they could potentially be merged in the future.
// If you want to add custom rendering within a window, you can use ImGui::GetWindowDrawList() to access the current draw list and add your own primitives.
// You can interleave normal ImGui:: calls and adding primitives to the current draw list.
// Note that this only gives you access to rendering polygons. If your intent is to create custom widgets and the publicly exposed functions/data aren't sufficient, you can add code in imgui_user.inl
structImDrawList
{
// This is what you have to render
ImVector<ImDrawCmd>commands;// commands
ImVector<ImDrawVert>vtx_buffer;// each command consume ImDrawCmd::vtx_count of those
ImVector<ImDrawCmd>commands;// Commands. Typically 1 command = 1 draw call.
ImVector<ImDrawVert>vtx_buffer;// Vertex buffer. Each command consume ImDrawCmd::vtx_count of those
IMGUI_APIvoidSplitDrawCmd();// This is useful if you need to force-create a new draw call (to allow for depending rendering / blending). Otherwise primitives are merged into the same draw-call as much as possible