Commit Graph

1013 Commits

Author SHA1 Message Date
ocornut
f9571ce4d3 Merge branch 'master' into docking
# Conflicts:
#	backends/imgui_impl_dx12.cpp
#	docs/CHANGELOG.txt
#	imgui.cpp
2025-10-13 15:13:06 +02:00
Rémy Tassoux
9be4f150ef Backends: DirectX12: Reuse texture upload buffer and grow it only when necessary. (#9002) 2025-10-13 13:19:37 +02:00
Rémy Tassoux
8d9c903919 Backends: DirectX12: remove unused members. (#8998)
Unused in docking branch. Leftover from a merge.
2025-10-13 13:10:01 +02:00
ocornut
8de97d14d8 Backends: DX10, DX11: avoid ImGui_ImplXXXX_SwapBuffers() handlers for secondary viewports crashing if SwapChain could not be created.
It's not really clear when that would fail but someone privately reported, and since we allow failure in ImGui_ImplDX11_CreateWindow() it makes sense to allow it here.
2025-10-10 18:31:20 +02:00
ocornut
5af650fc6d Examples: GLFW+WGPU: various tweaks to reduce diff with #8381 2025-10-09 19:24:17 +02:00
ocornut
a0a6639fb5 Viewports: rename ImGuiBackendFlags_HasParentViewportId->ImGuiBackendFlags_HasParentViewport. (#8948)
Introduced yesterday by 50a8bb2.
2025-10-02 16:20:24 +02:00
ocornut
0f7f6284d7 Merge branch 'master' into docking
# Conflicts:
#	docs/CHANGELOG.txt
2025-10-01 18:41:16 +02: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
9809b0b061 Textures: Fixed not updating ImTextureData's RefCount when destroying a context using a shared ImFontAtlas. (#8975) 2025-10-01 14:59:53 +02:00
ocornut
3563f1e270 Viewports: store ImGuiViewport* ParentViewport pointer as well. Backends: SDL3, Win32: use this pointer to reduce lookups. (#8948) 2025-09-30 18:42:57 +02:00
ocornut
50a8bb2711 Viewports: added ImGuiBackendFlags_HasParentViewportId backend flag. (#8948) 2025-09-30 17:38:06 +02:00
ocornut
b4514ce64a Backends: DirectX12: enable swapchain tearing if available. (#8965) 2025-09-29 18:36:35 +02:00
ocornut
3dafd9e898 Backends: DirectX12: enable swapchain tearing if available. (#8965) 2025-09-29 18:36:13 +02:00
ocornut
bd9a37bc60 Backends: DX12: Use one fence instead of one by viewport. (docking) (#8961) 2025-09-29 16:27:22 +02:00
Rémy Tassoux
778aadca65 Backends: DX12: Rework synchronization logic. (docking) (#8961) 2025-09-29 16:27:22 +02:00
ocornut
1aa91ac426 Merge branch 'master' into docking
# Conflicts:
#	backends/imgui_impl_dx12.cpp
2025-09-29 16:16:16 +02:00
Rémy Tassoux
5ce903af6e Backends: DX12: Use one fence instead of one by viewport. (master) (#8961) 2025-09-29 16:15:46 +02:00
ocornut
3ff195f702 Backends: DX12: let bd->FrameIndex start at 0 to match docking. (#8961) 2025-09-29 16:12:33 +02:00
ocornut
e459e5bf0a Backends: GLFW: fixed build on platform that are neither Windows, macOS or known Unixes. (#8969, #8920, #8921)
Fix 10d0162.

x
2025-09-29 16:12:33 +02:00
Rémy Tassoux
217bc445ff Backends: DirectX12: reuse a command list and allocator for texture uploads. (#8963, #8465) 2025-09-29 15:45:17 +02:00
ocornut
1f020e526a Backends: Vulkan: ImGui_ImplVulkan_CreatePipeline() for secondary viewport always use the RenderPass created by the ImGui_ImplVulkanH_CreateOrResizeWindow(). (#8946, #8110) 2025-09-29 15:28:38 +02:00
ocornut
bad3c14ff6 Backends: Vulkan: SwapChainImageUsage assume VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT which is added automatically. (#8946, #8110, #8111, #8686)
Amend e4e3c2c.
2025-09-29 14:57:03 +02:00
ocornut
e4e3c2cc23 Backends: Vulkan: amends for docking. Add PipelineInfoForViewports and SwapChainImageUsage. (#8946, #8110, #8111, #8686) 2025-09-26 18:46:17 +02:00
ocornut
f3e85310e7 Merge branch 'master' into docking
# Conflicts:
#	backends/imgui_impl_vulkan.cpp
#	backends/imgui_impl_vulkan.h
#	docs/CHANGELOG.txt
2025-09-26 18:33:38 +02:00
ocornut
3470e6112b (Breaking) Backends: Vulkan: moved fields in ImGui_ImplVulkan_InitInfo: RenderPass, Subpass, MSAASamples, PipelineRenderingCreateInfo. (#8946, #8110, #8111, #8686) 2025-09-26 18:23:51 +02:00
ocornut
e312b99296 (Breaking) Backends: Vulkan: renamed ImGui_ImplVulkan_MainPipelineCreateInfo to ImGui_ImplVulkan_PipelineInfo. (#8110, #8111) 2025-09-26 18:18:33 +02:00
ocornut
cc0a6690bf Backends: Vulkan: minor internal renames/tweaks to reduce further patches. (#8946, #8110, #8111, #8686) 2025-09-26 18:12:47 +02:00
ocornut
5fe962216a (Breaking) Backends: Vulkan: added 'VkImageUsageFlags image_usage' parameter to ImGui_ImplVulkanH_CreateOrResizeWindow(). (#8946, #8110, #8111, #8686)
Default to VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT.
2025-09-26 18:12:47 +02:00
johan0A
01686c6294 Backends: Vulkan: added a way to specify custom vertex/fragment shaders. (#8585, #8271) 2025-09-26 15:44:02 +02:00
David Maas
15c88c4941 Backends: DX10, DX11, DX12: Disabled DXGI's Alt+Enter default behavior on secondary viewports. (#4350)
Removed use of DXGI_MWA_NO_PRINT_SCREEN from original PR.
2025-09-25 17:30:32 +02:00
ocornut
940627d008 Backends: SDL2: Fixed build for Emscripten and SDL_HAS_CAPTURE_AND_GLOBAL_MOUSE=0 platforms.
Amend e06b5df.
2025-09-24 15:29:00 +02:00
ocornut
719ea9c228 Comments 2025-09-24 15:00:24 +02:00
ocornut
e285ecca09 Merge branch 'master' into docking
# Conflicts:
#	backends/imgui_impl_dx10.cpp
#	backends/imgui_impl_dx11.cpp
#	backends/imgui_impl_dx12.cpp
#	backends/imgui_impl_dx9.cpp
#	backends/imgui_impl_glfw.cpp
#	backends/imgui_impl_metal.mm
#	backends/imgui_impl_opengl2.cpp
#	backends/imgui_impl_opengl3.cpp
#	backends/imgui_impl_osx.mm
#	backends/imgui_impl_sdl2.cpp
#	backends/imgui_impl_sdl3.cpp
#	backends/imgui_impl_sdlgpu3.cpp
#	backends/imgui_impl_vulkan.cpp
#	backends/imgui_impl_win32.cpp
#	docs/CHANGELOG.txt
#	imgui.cpp
#	imgui.h
2025-09-24 14:54:46 +02:00
ocornut
f61a7ef222 Backends: SDL2,SDL3: avoid using the SDL_GetGlobalMouseState() path when one of our window is hovered. Fix mouse coordinate issue in fullscreen apps with macOS notch + better X11 perfs. (#7919, #7786) 2025-09-24 14:48:33 +02:00
ocornut
e06b5dfe12 Backends: SDL2,SDL3: Shallow tweaks.
Toward fallback focused mouse handler to be a closer match docking version.
2025-09-24 14:41:10 +02:00
ocornut
5f6eaa5278 Backends: Win32: minor optimization not submitting gamepad input if packet number has not changed. (#8556)
To be honest I don't believe this is valuable as an optimization, but it makes debug stepping a little nicer.
2025-09-23 16:30:07 +02:00
Olivier Gerard
e639ff392c Backends: Vulkna: added ImGui_ImplVulkan_GetWindowDataFromViewport() accessor/helper. (#8946, #8940) 2025-09-22 21:46:43 +02:00
ocornut
301e652376 Backends: OpenGL3: fixed GL loader to work on Haiku OS which does not support. (#8952) 2025-09-22 16:04:59 +02:00
ocornut
a1c0836bec Viewports: changed default value of io.ConfigViewportsNoDefaultParent to true. (#8948, #3152, #2871) 2025-09-22 15:56:10 +02:00
ocornut
aa9476a38a IO: added ImGuiPlatformIO::ClearPlatformHandlers(), ClearRendererHandlers(). Backends: call those on Shutdown(). (#8945, #2769)
# Conflicts:
#	backends/imgui_impl_dx10.cpp
#	backends/imgui_impl_dx11.cpp
#	backends/imgui_impl_dx12.cpp
#	backends/imgui_impl_dx9.cpp
#	backends/imgui_impl_glfw.cpp
#	backends/imgui_impl_metal.mm
#	backends/imgui_impl_opengl2.cpp
#	backends/imgui_impl_opengl3.cpp
#	backends/imgui_impl_osx.mm
#	backends/imgui_impl_sdl2.cpp
#	backends/imgui_impl_sdl3.cpp
#	backends/imgui_impl_sdlgpu3.cpp
#	backends/imgui_impl_vulkan.cpp
#	backends/imgui_impl_win32.cpp
#	docs/CHANGELOG.txt
#	imgui.h
2025-09-18 17:02:44 +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
3dd51651e3 Backends: DX12: rename internal functions to match other backends. 2025-09-18 16:51:40 +02:00
ocornut
34bff4672c Merge branch 'master' into docking
# Conflicts:
#	backends/imgui_impl_glfw.cpp
#	backends/imgui_impl_sdl2.cpp
#	backends/imgui_impl_sdl3.cpp
#	docs/CHANGELOG.txt
#	examples/example_glfw_metal/main.mm
#	examples/example_glfw_opengl2/main.cpp
#	examples/example_glfw_vulkan/main.cpp
#	examples/example_win32_opengl3/main.cpp
#	examples/example_win32_vulkan/main.cpp
#	imgui.h
2025-09-17 18:48:39 +02:00
ocornut
6274ca4266 Backends: GLFW: fixed build for Emscripten which doesn't expose glfw3native.h.
Amend 10d0162
2025-09-15 19:28:01 +02:00
ocornut
d92c8c6aff Backends: SDL2: Content Scales are always reported as 1.0 on Wayland. (#8921)
SDL_GetDisplayDPI() seems generally broken on X11/Wayland, but our logs shows that on Wayland we get both a content scale from SDL_GetDisplayDPI() and a framebuffer scale.
2025-09-15 19:20:56 +02:00
ocornut
72c00f39c1 Backends: GLFW: fix ImGui_ImplGlfw_IsWayland() amend broken 10d0162. (#8921, #8920)
Accidentally broke this while shuffling code...
2025-09-15 19:16:05 +02:00
ocornut
2675b7ca26 Backends: GLFW: Content Scales always reported as 1.0 on Wayland, FramebufferScale always reported as 1.0 on X11. (#8920, #8921) 2025-09-15 18:55:09 +02:00
ocornut
10d0162378 Backends: GLFW: added ImGui_ImplGlfw_IsWayland(). (#8921, #8920)
(technically presently untested but we've researched this)
2025-09-15 18:40:22 +02:00
ocornut
22a6a83c54 Backends: SDL3: use SDL_GetWindowDisplayScale() on Mac to output DisplayFrameBufferScale. The function is more reliable during resolution changes e.g. going fullscreen. (#8703, #4414) 2025-09-15 15:16:42 +02:00
ocornut
a4cd45f44c Backends: GLFW: fixed imgui_impl_glfw.cpp being affected by X headers '#define Status' leak since 6b2cdf2. (#8884) 2025-09-12 19:51:31 +02:00