fix: respect ImDrawCmd idx_offset in render_draw_list #123
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Checklist
cargo clippy
reports no issuescargo doc
reports no issuescargo deny
issues have been fixed or added todeny.toml
Added new functionality @githubname
.Description
Previously,
render_draw_list
assumed all draw commands were contiguous in the index buffer and manually tracked a running index offset. This worked for older ImGui versions but breaks in version 1.86+, which relies on explicitidx_offset
andvtx_offset
values for correct layering, for example for modals and overlays.@ocornut explains here why this breaks in 1.86+:
ocornut/imgui#4863 (comment)
This PR updates
render_draw_list
to use the provided offsets fromImDrawCmdParams
, ensuring draw calls reference the correct index range regardless of command order.This fixes a bug where fullscreen overlays (e.g. the ImGuiFileDialog modal overlay) were drawn in front of modal windows due to incorrect command ordering.
Old:


New:
In case you are interested in trying this, I have updated bindings to ImGuiFileDialog in my fork: https://github.com/CrushedPixel/imgui-filedialog-rs