Turtle Dove
d424c48c1b
OpenGL2: Defer texture destruction until UnusedFrames > 0 ( #9475 )
...
The OpenGL2 backend was immediately destroying textures on
ImTextureStatus_WantDestroy without checking tex->UnusedFrames > 0,
unlike ALL other backends (OpenGL3, DX11, DX12, Metal, Vulkan, WebGPU)
which defer destruction until the texture is no longer in use by the GPU.
This could cause a use-after-free if the texture was still referenced by
in-flight draw commands when it was destroyed.
Fix: Add '&& tex->UnusedFrames > 0' to the WantDestroy check, matching
the pattern used by OpenGL3, DX11, Metal, Vulkan, and WebGPU.
2026-07-16 08:28:39 -05:00
ocornut
0ff4a8a900
Backends: OpenGL2/3: Backup and restore GL_UNPACK state in UpdateTexture(). Amends. ( #9473 , #8802 )
...
Fix setting GL_UNPACK_ROW_LENGTH twice.
2026-07-15 18:20:05 +02:00
Turtle Dove
e3927dc004
Backends: OpenGL2/3: Backup and restore GL_UNPACK state in UpdateTexture() ( #9473 , #8802 )
2026-07-15 18:16:57 +02:00
ocornut
86ebb3bc11
Backends: removed samplers from ImGui_ImplDX10_RenderState, ImGui_ImplDX11_RenderState + fixed all Changelogs. ( #9378 )
2026-04-23 22:03:11 +02:00
omar
0a811e8ea1
Backends: DX9, DX10, DX11, DX12, Allegro5, OpenGL2, OpenGL3, SDLRenderer2, SDLRenderer3, SDLGPU3, Vulkan: added standard draw callbacks when possible. ( #9378 )
2026-04-23 21:50:45 +02:00
ocornut
b065713cec
Backends: OpenGL2/3, SDLRenderer2/3, DirectX9, Metal: moved Init/Shutdown code lower in the file.
...
Allows to point to local functions without forward declaring them.
2026-04-23 15:53:28 +02:00
ocornut
0500e546b5
Backends: DX9, Metal, SDLRenderer2/3: fixed more assumptions that ImTextureID_Invald == 0 + Amend Changelogs. ( #9310 , #9293 )
2026-03-19 11:47:01 +01:00
ocornut
6dbda97fee
Backends: OpenGL2, OpenGL3, SDLRenderer3: replaced erroneous IM_ASSERT(tex->TexID == 0) calls. ( #9295 , #9293 )
...
Amend/fix 0db5919 which revealed this.
2026-03-12 19:29:39 +01:00
ocornut
d4f722d5b2
IO: added ImGuiPlatformIO::ClearPlatformHandlers(), ClearRendererHandlers(). Backends: call those on Shutdown(). ( #8945 , #2769 )
2025-09-18 16:58:50 +02:00
ocornut
8744d10235
Backends: OpenGL2, OpenGL3: set GL_UNPACK_ALIGNMENT to 1 before updating textures. ( #8802 )
2025-07-15 14:30:50 +02:00
ocornut
336d9212fc
Backends: using range-for to iterate draw_data->CmdLists[].
2025-07-11 17:41:52 +02:00
ocornut
df068ce11e
Various/misc fixes following back-and-forth dynamic_fonts->master->docking merges. Added missing API BREAKING CHANGES section.
2025-06-11 18:50:16 +02:00
ocornut
0430c55b84
Backends: OpenGL2: added ImGuiBackendFlags_RendererHasTextures support.
...
Removed ImGui_ImplOpenGL2_CreateFontsTexture() and ImGui_ImplOpenGL2_DestroyFontsTexture().
2025-06-11 15:30:45 +02:00
ocornut
0e21bde77b
Misc shallow merge to reduce diff in other branches.
2025-01-15 14:00:03 +01:00
ocornut
43fbd7ce84
Backends: standardized top of file comments.
2024-12-05 12:43:04 +01:00
ocornut
42206b3d51
Backends: DX9, DX10, DX11, DX12, OpenGL, Vulkan, WGPU: Changed default texture sampler to Clamp instead of Repeat/Wrap. ( #7468 , #7511 , #5999 , #5502 )
2024-10-07 22:02:55 +02:00
ocornut
9bd5d8a240
Backends: misc renaming of locals. Use 'draw_list' instead of 'cmd_list'. Avoid using 'ctx'.
...
This is likely to trigger merging issues. If it does, best to always get "theirs" and rename in there.
2024-10-07 17:57:11 +02:00
ocornut
404af57004
Backends: OpenGL2, OpenGL3: ImGui_ImplOpenGL3_NewFrame() recreates font texture if it has been destroyed by ImGui_ImplOpenGL3_DestroyFontsTexture(). ( #7748 )
...
Analogous to change to Vulkan backend in 1.90.
2024-06-28 15:08:54 +02:00
ocornut
5e23680454
Backends: all backends + demo now call IMGUI_CHECKVERSION() to verify ABI compatibility between caller code and compiled version of dear imgui. ( #7568 )
2024-05-13 15:07:13 +02:00
ocornut
d15574ce2a
Backends: Win32: Removed silent return when calling ImGui_ImplWin32_WndProcHandler() with no active context! ( #6275 )
...
Better standardized similar checks in other backends.
2024-05-07 16:53:03 +02:00
Bruce Mitchener
f50ddc431e
Fixed some typos. ( #7282 )
2024-02-01 18:30:00 +01:00
ocornut
ab522dd18c
Removed IM_OFFSETOF() macro in favor of using offsetof() available in C++11. Kept redirection define. ( #4537 )
2023-11-09 16:44:39 +01:00
ocornut
357f752bed
Docs: add more links to the top of every examples and backends files.
2023-09-11 14:01:40 +02:00
ocornut
0e8eb8c48e
Removed _MSC_VER <= 1500 checks for Visual Studio 2008 or earlier.
...
Our codebase requires VS2012+ since a while.
2023-07-13 12:38:16 +02:00
ocornut
33e13c85e1
Backends: Made all backends sources files support global IMGUI_DISABLE. ( #6601 )
2023-07-13 11:27:52 +02:00
ocornut
8a6911b894
Backends: Fixes zealous warnings ( #5760 )
2023-03-23 18:18:52 +01:00
ocornut
c54230d14e
Backends: Using nullptr instead of NULL. ( #5760 , #4537 ) + fix additional warnings.
2022-10-11 12:35:41 +02:00
ocornut
f7f30476d5
Added comments about requirement for bilinear filtering. ( #5156 , #3245 ) + Backends: SDL_Renderer: Explicitely call SDL_SetTextureScaleMode(). ( #4927 )
2022-04-07 14:28:08 +02:00
ocornut
fd06ed833b
Misc: tweaks + fix warnings on backends withtout -wno-memaccess ( #4995 , #5104 )
2022-03-13 17:57:32 +07:00
ocornut
c80e8b964c
Backends: OpenGL2, Marmalade: Fixed mishandling of the ImDrawCmd::IdxOffset field. ( #4790 )
2021-12-08 16:26:52 +01:00
ocornut
440824d431
Backends: Fixed early out on empty clip rect. In particular, DX12 backend would warn about it (others not so much). ( #4775 , #4464 )
...
Amend/fix 2b0bd40b
2021-11-30 21:48:29 +01:00
ocornut
c6ca327fb2
Backends: Added more implicit asserts to detect invalid/redundant calls to Shutdown functions. ( #4562 )
2021-09-20 18:43:05 +02:00
Rokas Kupstys
2b0bd40b99
Backends: Metal: Fixed a crash when clipping rect larger than framebuffer is submitted. ( #4464 )
...
Backends: Normalize clipping rect handling across backends.
+ Squashed amends.
2021-08-24 18:23:13 +02:00
ocornut
cf2daf353e
Backends: Cleanup, removed unnecessary create/destroy wrappers. Fix allegro5 backend + use same code as other backend.
...
+ Update gallery links (#4280 )
2021-06-30 15:50:15 +02:00
ocornut
23a15834fa
Fonts: Fix calling ClearTexData() (clearing CPU side font data) triggering an assert in NewFrame(). ( #3487 ) + Backends: added additional assert to facilitate detecting user understand they haven't initialized a backend.
2021-06-29 18:16:47 +02:00
ocornut
4cec3a0467
Backends: support for multiple imgui context with little testing ( #586 , #1851 , #2004 , #3012 , #3934 , #4141 )
...
I believe more renderer backends should work. GLFW/Win32/SDL/Vulkan probably have many issues.
2021-06-29 16:42:13 +02:00
ocornut
70c603854e
Backends: moved global to a data structure to facilitate support for multi-contexts. ( #586 , #1851 , #2004 , #3012 , #3934 , #4141 )
...
This is NOT enable multi-contexts for any backends
- in order to make this commit as harmless as possible, while containing all the cruft/renaming
-
2021-06-29 14:37:58 +02:00
ocornut
95db098477
ImFontAtlas: move implicit AddFontDefault call to Build() function + remove unnecessary asserts in backend.
2021-06-25 17:27:17 +02:00
ocornut
838c16533d
Backends: Comments.
2021-05-27 13:59:35 +02:00
thedmd
3c72e5142b
Backends: Replace direct access to TextureId with GetTexID() call in ImDrawCmd. ( #3761 )
2021-05-19 18:39:18 +02:00
ocornut
bda12e5fdd
Backends: Rework blending equation to preserve alpha in output buffer accross all backends. ( #2693 , #2764 , #2766 , #2873 , #3447 , #3813 , #3816 )
...
Some of the viewport ideas from #2766 are not in there yet (e.g. Vulkan: setting compositeAlpha based on cap.supportedCompositeAlpha)
2021-02-18 11:38:41 +01:00
ocornut
58a0a7058c
Backends: Using SetTexID() consistently instead of assigning to ->TexID. May make the later obsolete eventually.
2021-02-03 18:30:26 +01:00
ocornut
9bcf77eb81
Fixed using IsItemEdited() after Combo() not matching the return value from Combo(). ( #2034 ) + fix some PVS warnings, fix typo, blanks.
...
Amend e28b1078
2021-01-04 19:15:20 +01:00
ocornut
7d5d5711c2
Backends: OpenGL2, OpenGL3: Backup and restore GL_SHADE_MODAL, GL_STENCIL_TEST, clear GL_NORMAL_ARRAY. Comments., ( #3671 , #3668 )
2021-01-03 17:01:54 +01:00
ocornut
b1a18d82e3
Moving backends code from examples/ to backends/ (step 6: update markdown documentation)
2020-10-14 14:42:00 +02:00
ocornut
d9b2fb7338
Moving backends code from examples/ to backends/ (step 1: moving source files)
2020-10-14 14:41:40 +02:00