You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Introduce a dedicated bufferCacheLock and synchronize on it to avoid crashes when bufferCache is replaced while being used for @synchronize(). Initialize bufferCacheLock and switch @synchronized usages to use it. Also tidy up render logic: combine vertex buffer/setOffset into a single call to avoid redundant binds, explicitly check ImTextureID against ImTextureID_Invalid (fixes cases where ImTextureID_Invalid != 0), and change the timestamp variable to double in dequeueReusableBufferOfLength. Minor formatting/changelog updates included.
Copy file name to clipboardExpand all lines: src/imiv/external/imgui_impl_metal_imiv.mm
+16-11Lines changed: 16 additions & 11 deletions
Original file line number
Diff line number
Diff line change
@@ -18,6 +18,9 @@
18
18
// CHANGELOG
19
19
// (minor and older changes stripped away, please see git history for details)
20
20
// 2026-XX-XX: Metal: Added support for multiple windows via the ImGuiPlatformIO interface.
21
+
// 2026-04-14: Metal: use a dedicated bufferCacheLock to avoid crashing when bufferCache is replaced by a new object while being used for @synchronize(). (#9367)
// 2026-03-19: Fixed issue in ImGui_ImplMetal_RenderDrawData() if ImTextureID_Invalid is defined to be != 0, which became the default since 2026-03-12. (#9295, #9310)
21
24
// 2025-09-18: Call platform_io.ClearRendererHandlers() on shutdown.
22
25
// 2025-06-11: Added support for ImGuiBackendFlags_RendererHasTextures, for dynamic font atlas. Removed ImGui_ImplMetal_CreateFontsTexture() and ImGui_ImplMetal_DestroyFontsTexture().
0 commit comments