Turtle Dove
155170262a
Backends: DX9, Allegro5, SDLRenderer2, SDLRenderer3: Defer texture destruction until UnusedFrames > 0 ( #8597 , #9475 )
...
These four backends were missing the UnusedFrames > 0 check in their
UpdateTexture() WantDestroy branch, inconsistent with all other backends
(OpenGL2, OpenGL3, DX10, DX11, DX12, Vulkan, WGPU, SDLGPU3) which already
defer destruction until the texture is no longer in flight.
This is a potential use-after-free in multi-threaded/staged rendering
pipelines where the UI thread may destroy a texture while the render thread
is still drawing with it. Per #8597 guidance: backends should defer
destroying by the amount of in-flight frames in their rendering pipeline.
The fix adds '&& tex->UnusedFrames > 0' to the WantDestroy condition,
matching the exact pattern used by OpenGL3, DX10, DX11, WGPU, and SDLGPU3.
Companion to #9475 (OpenGL2 fix, already merged).
2026-07-17 11:25:20 -05: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
f2f843c113
Fixed some extremely zealous warnings (GCC -Wconversion, -Wdouble-promotion)
...
(amend a1e0552)
2026-04-23 17:23:43 +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
386ce49c58
Backends: DirectX9: fixed build typo in 0500e54.
2026-03-19 18:17:35 +01: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
fc4105c8a8
Backends: DX9,DX10,DX11,DX12,Metal,Vulkan,WGPU,SDLRenderer2,SDLRenderer3: ensure that a texture in _WantDestroy state always turn to _Destroyed. ( #8977 )
...
Amend 9809b0b. Strictly speaking this is not necessary anymore but it seems generally sane to promote this.
2025-10-01 17:49:22 +02:00
ocornut
d4f722d5b2
IO: added ImGuiPlatformIO::ClearPlatformHandlers(), ClearRendererHandlers(). Backends: call those on Shutdown(). ( #8945 , #2769 )
2025-09-18 16:58:50 +02:00
ocornut
336d9212fc
Backends: using range-for to iterate draw_data->CmdLists[].
2025-07-11 17:41:52 +02:00
ocornut
afe20dc9b6
Backends: warning fix.
2025-06-20 15:23:52 +02:00
ocornut
e97e55adbc
Backends: Fixed various warnings discovered when using MinGW GCC 15/Clang on latest backends.
...
dx12: 'ImGui_ImplDX12_Data* bd' shadowed local in spite of being in lambda.
2025-06-20 15:18:00 +02:00
ocornut
75efba7ec7
Backends: DirectX9: added ImGuiBackendFlags_RendererHasTextures support
...
# Conflicts:
# backends/imgui_impl_dx9.cpp
2025-06-11 15:27:11 +02:00
ocornut
43fbd7ce84
Backends: standardized top of file comments.
2024-12-05 12:43:04 +01:00
ocornut
70b6ba4240
Clarify that IMGUI_USE_BGRA_PACKED_COLOR requires backend support. ( #8201 )
2024-12-04 10:38:19 +01:00
ocornut
5b7feebfd8
Backends: DX9: extract RGBA convert loop as we are going to need it more often.
2024-11-21 16:58:02 +01:00
ocornut
dfbf1b4f6b
Backends: DX9: cache result of ImGui_ImplDX9_CheckFormatSupport() as we are going to need it more often.
2024-11-21 15:24:11 +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
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
璀境石
1d6f0cea0e
Backends: DX9: use RGBA texture to avoid conversion if supported
2024-02-12 16:05:10 +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
33e13c85e1
Backends: Made all backends sources files support global IMGUI_DISABLE. ( #6601 )
2023-07-13 11:27:52 +02:00
Gereon V
055e71518e
Backends: clear bits set in io.BackendFlags on backend Shutdown(). Clear BackendPlatformName. ( #6334 , #6335 )
...
Amended with fix for missing clear for ImGuiBackendFlags_HasGamepad.
2023-04-17 14:57:12 +02:00
ocornut
e816bc6723
Merge misc changes from docking branch to reduce small drift.
...
In particular:
- imgui.cpp : move UpdateInputEvents() higher in NewFrame() to match docking + update RenderMouseCursor() to match.
- imgui_draw.cpp: ImDrawList::_ResetForNewFrame() change from c807192ab
- Backends: SDL2. Add MouseWindowID + change SDL_CaptureMouse() test to match docking branch. Not strictly necessary but aimed at reducing drift because we go on and fork this file.
+ moved responsability of checking valid names to TabBarGetTabName() to simplify both branches.
2023-02-07 13:22:23 +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
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
Anthony
8ced41570e
Backends: DX9: explicitely disable texture state stages after >= 1. ( #4268 )
...
imgui only uses texture stage state for stage 0
But any state set in stages >= 1 will affect rendering
Set stage 1 COLOROP to DISABLED, to deactivate stages >= 1
2021-06-25 12:33:38 +02:00
ocornut
20d415e939
FIx static analysers warnings and disable false positives.
2021-06-24 17:15:14 +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
Hattrick HttrckCldHKS
a8dcab8e2a
Backends: DX9: Fix potential resource leak ( #4093 )
2021-05-07 15:17:24 +02:00
ocornut
06545c4f2a
Backends: DirectX9: explicitely setting up more graphics states to increase compatibility with unusual non-default states. ( #4063 )
...
Added D3DRS_FILLMODE, D3DRS_ZWRITEENABLE, D3DRS_RANGEFOGENABLE, D3DRS_SPECULARENABLE, D3DRS_STENCILENABLE, D3DRS_CLIPPING. Reordered some to match order in DX9 headers.
2021-04-23 18:39:07 +02:00
ocornut
61a0908713
Tables comments + Backends: DirectX9: calling IDirect3DStateBlock9::Capture() after CreateStateBlock() which appears to workaround/fix state restoring issues. . ( #3857 )
2021-03-18 18:04:52 +01:00
ocornut
662535f357
Backends: DX9: Fix handling of colored textures ( #3844 , #3868 )
2021-03-03 18:34:07 +01:00
ocornut
4537d98d46
Backends: DX9: Fix to support colored glyphs, using newly introduced 'TexPixelsUseColors' info. ( #3369 , #3844 )
2021-03-02 15:04:34 +01:00
Xiliusha
eb57484935
Backends: DX9: add missing IMGUI_USE_BGRA_PACKED_COLOR support. Remove dinput.h headers. ( #3844 )
2021-03-02 15:04:34 +01: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
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