3D Controller Overlay + (3dco+ for short) has been released in version v1.3.2.
Shortly after version 1.3.1, this is a pure bugfix release: a hard crash on Windows when closing a controller window is fixed - it was caused by Dear ImGui’s own, separate OpenGL loader colliding with the app’s GLAD-managed function pointer tables. The bundled example models (DAT Keyboard, 60% Keyboard) also now show their textures correctly right out of the box, since absolute paths were replaced with relative ones.
3D Controller Overlay + — v1.3.2 Release Notes
A focused bugfix release: one hard crash on Windows, fully root-caused and fixed, plus the bundled example models now show their textures correctly right out of the box.
Fixed: hard crash on Windows when closing a controller window
Symptom: on Windows, closing a controller window would reliably crash the whole app to desktop. Linux was unaffected. Every crash report showed the same signature: exception
0xc0000005(access violation), with the instruction pointer at exactly0x0— the process had jumped through a null function pointer and tried to execute it.Root cause: Dear ImGui’s OpenGL backend (
imgui_impl_opengl3.cpp) bundles its own, separate GL function loader by default (imgl3w), completely independent of the GLAD loader the rest of the app uses. That loader only ever initializes its function pointers once, globally, for the whole process — andImGui_ImplOpenGL3_Shutdown(), called whenever a window’s ImGui backend tears down (exactly what happens on close), resets that same shared state. The next window to render anywhere afterward silently re-triggered initialization and rebound every pointer to its own context instead, invalidating them for every other already-open window.Fix: the app now tells Dear ImGui’s backend to skip its own bundled loader entirely and use GLAD instead (
IMGUI_IMPL_OPENGL_LOADER_CUSTOM), scoped to just that one file so nothing else in the build is affected.Fixed: bundled example models not showing textures on a fresh install
The DAT Keyboard and 60% Keyboard example models that ship with the app had their texture paths saved as absolute paths from the original author’s own machine — meaningless the moment they’re extracted anywhere else. The fallback added in 1.3.1 also had a bug of its own that meant it never actually worked; both issues are now fixed, and the two bundled models ship with portable relative paths from the start.
For maintainers: Windows builds now carry debug symbols
The Windows Docker build now compiles with debug info (
RelWithDebInfoinstead ofRelease) and splits it out of the shipped.exeviaobjcopy, so the executable stays the same size while a separate.debugfile (published as its own release asset) preserves full symbols for future crash investigation.

Source: GitHub