Skip to content

Commit 31e2c7d

Browse files
authored
v1.92.4
Bot: Update dependencies
2 parents 51fddff + 9c3d971 commit 31e2c7d

38 files changed

+701
-437
lines changed

.references/dcimgui

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
d27d082
1+
2b12a29

.references/imgui

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
v1.92.3
1+
v1.92.4

dcimgui/backends/dcimgui_impl_vulkan.cpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -121,9 +121,9 @@ CIMGUI_IMPL_API void cimgui::cImGui_ImplVulkan_SetMinImageCount(uint32_t min_ima
121121
::ImGui_ImplVulkan_SetMinImageCount(min_image_count);
122122
}
123123

124-
CIMGUI_IMPL_API void cimgui::cImGui_ImplVulkan_CreateMainPipeline(cimgui::ImGui_ImplVulkan_MainPipelineCreateInfo info)
124+
CIMGUI_IMPL_API void cimgui::cImGui_ImplVulkan_CreateMainPipeline(const cimgui::ImGui_ImplVulkan_PipelineInfo* info)
125125
{
126-
::ImGui_ImplVulkan_CreateMainPipeline(reinterpret_cast<const ::ImGui_ImplVulkan_MainPipelineCreateInfo&>(info));
126+
::ImGui_ImplVulkan_CreateMainPipeline(reinterpret_cast<const ::ImGui_ImplVulkan_PipelineInfo*>(info));
127127
}
128128

129129
CIMGUI_IMPL_API void cimgui::cImGui_ImplVulkan_UpdateTexture(cimgui::ImTextureData* tex)
@@ -151,14 +151,14 @@ CIMGUI_IMPL_API bool cimgui::cImGui_ImplVulkan_LoadFunctionsEx(uint32_t api_vers
151151
return ::ImGui_ImplVulkan_LoadFunctions(api_version, loader_func, user_data);
152152
}
153153

154-
CIMGUI_IMPL_API void cimgui::cImGui_ImplVulkanH_CreateOrResizeWindow(VkInstance instance, VkPhysicalDevice physical_device, VkDevice device, cimgui::ImGui_ImplVulkanH_Window* wnd, uint32_t queue_family, const VkAllocationCallbacks* allocator, int w, int h, uint32_t min_image_count)
154+
CIMGUI_IMPL_API void cimgui::cImGui_ImplVulkanH_CreateOrResizeWindow(VkInstance instance, VkPhysicalDevice physical_device, VkDevice device, cimgui::ImGui_ImplVulkanH_Window* wd, uint32_t queue_family, const VkAllocationCallbacks* allocator, int w, int h, uint32_t min_image_count, VkImageUsageFlags image_usage)
155155
{
156-
::ImGui_ImplVulkanH_CreateOrResizeWindow(instance, physical_device, device, reinterpret_cast<::ImGui_ImplVulkanH_Window*>(wnd), queue_family, allocator, w, h, min_image_count);
156+
::ImGui_ImplVulkanH_CreateOrResizeWindow(instance, physical_device, device, reinterpret_cast<::ImGui_ImplVulkanH_Window*>(wd), queue_family, allocator, w, h, min_image_count, image_usage);
157157
}
158158

159-
CIMGUI_IMPL_API void cimgui::cImGui_ImplVulkanH_DestroyWindow(VkInstance instance, VkDevice device, cimgui::ImGui_ImplVulkanH_Window* wnd, const VkAllocationCallbacks* allocator)
159+
CIMGUI_IMPL_API void cimgui::cImGui_ImplVulkanH_DestroyWindow(VkInstance instance, VkDevice device, cimgui::ImGui_ImplVulkanH_Window* wd, const VkAllocationCallbacks* allocator)
160160
{
161-
::ImGui_ImplVulkanH_DestroyWindow(instance, device, reinterpret_cast<::ImGui_ImplVulkanH_Window*>(wnd), allocator);
161+
::ImGui_ImplVulkanH_DestroyWindow(instance, device, reinterpret_cast<::ImGui_ImplVulkanH_Window*>(wd), allocator);
162162
}
163163

164164
CIMGUI_IMPL_API VkSurfaceFormatKHR cimgui::cImGui_ImplVulkanH_SelectSurfaceFormat(VkPhysicalDevice physical_device, VkSurfaceKHR surface, const VkFormat* request_formats, int request_formats_count, VkColorSpaceKHR request_color_space)

dcimgui/backends/dcimgui_impl_vulkan.h

Lines changed: 43 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44

55
// dear imgui: Renderer Backend for Vulkan
66
// Auto-generated forward declarations for C header
7+
typedef struct ImGui_ImplVulkan_PipelineInfo_t ImGui_ImplVulkan_PipelineInfo;
78
typedef struct ImGui_ImplVulkan_InitInfo_t ImGui_ImplVulkan_InitInfo;
8-
typedef struct ImGui_ImplVulkan_MainPipelineCreateInfo_t ImGui_ImplVulkan_MainPipelineCreateInfo;
99
typedef struct ImGui_ImplVulkan_RenderState_t ImGui_ImplVulkan_RenderState;
1010
typedef struct ImVector_ImGui_ImplVulkanH_Frame_t ImVector_ImGui_ImplVulkanH_Frame;
1111
typedef struct ImGui_ImplVulkanH_FrameSemaphores_t ImGui_ImplVulkanH_FrameSemaphores;
@@ -84,6 +84,18 @@ extern "C"
8484
// Backend uses a small number of descriptors per font atlas + as many as additional calls done to ImGui_ImplVulkan_AddTexture().
8585
#define IMGUI_IMPL_VULKAN_MINIMUM_IMAGE_SAMPLER_POOL_SIZE (8) // Minimum per atlas
8686

87+
// Specify settings to create pipeline and swapchain
88+
struct ImGui_ImplVulkan_PipelineInfo_t
89+
{
90+
// For Main and Secondary viewports
91+
VkRenderPass RenderPass; // Ignored if using dynamic rendering
92+
uint32_t Subpass; //
93+
VkSampleCountFlagBits MSAASamples /* = {} */; // 0 defaults to VK_SAMPLE_COUNT_1_BIT
94+
#ifdef IMGUI_IMPL_VULKAN_HAS_DYNAMIC_RENDERING
95+
VkPipelineRenderingCreateInfoKHR PipelineRenderingCreateInfo; // Optional, valid if .sType == VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR
96+
#endif // #ifdef IMGUI_IMPL_VULKAN_HAS_DYNAMIC_RENDERING
97+
};
98+
8799
// Initialization data, for ImGui_ImplVulkan_Init()
88100
// [Please zero-clear before use!]
89101
// - About descriptor pool:
@@ -94,33 +106,39 @@ extern "C"
94106
// - When using dynamic rendering, set UseDynamicRendering=true and fill PipelineRenderingCreateInfo structure.
95107
struct ImGui_ImplVulkan_InitInfo_t
96108
{
97-
uint32_t ApiVersion; // Fill with API version of Instance, e.g. VK_API_VERSION_1_3 or your value of VkApplicationInfo::apiVersion. May be lower than header version (VK_HEADER_VERSION_COMPLETE)
98-
VkInstance Instance;
99-
VkPhysicalDevice PhysicalDevice;
100-
VkDevice Device;
101-
uint32_t QueueFamily;
102-
VkQueue Queue;
103-
VkDescriptorPool DescriptorPool; // See requirements in note above; ignored if using DescriptorPoolSize > 0
104-
uint32_t DescriptorPoolSize; // Optional: set to create internal descriptor pool automatically instead of using DescriptorPool.
105-
uint32_t MinImageCount; // >= 2
106-
uint32_t ImageCount; // >= MinImageCount
107-
VkPipelineCache PipelineCache; // Optional
109+
uint32_t ApiVersion; // Fill with API version of Instance, e.g. VK_API_VERSION_1_3 or your value of VkApplicationInfo::apiVersion. May be lower than header version (VK_HEADER_VERSION_COMPLETE)
110+
VkInstance Instance;
111+
VkPhysicalDevice PhysicalDevice;
112+
VkDevice Device;
113+
uint32_t QueueFamily;
114+
VkQueue Queue;
115+
VkDescriptorPool DescriptorPool; // See requirements in note above; ignored if using DescriptorPoolSize > 0
116+
uint32_t DescriptorPoolSize; // Optional: set to create internal descriptor pool automatically instead of using DescriptorPool.
117+
uint32_t MinImageCount; // >= 2
118+
uint32_t ImageCount; // >= MinImageCount
119+
VkPipelineCache PipelineCache; // Optional
108120

109121
// Pipeline
110-
VkRenderPass RenderPass; // Ignored if using dynamic rendering
111-
uint32_t Subpass;
112-
VkSampleCountFlagBits MSAASamples; // 0 defaults to VK_SAMPLE_COUNT_1_BIT
122+
ImGui_ImplVulkan_PipelineInfo PipelineInfoMain; // Infos for Main Viewport (created by app/user)
123+
//VkRenderPass RenderPass; // --> Since 2025/09/26: set 'PipelineInfoMain.RenderPass' instead
124+
//uint32_t Subpass; // --> Since 2025/09/26: set 'PipelineInfoMain.Subpass' instead
125+
//VkSampleCountFlagBits MSAASamples; // --> Since 2025/09/26: set 'PipelineInfoMain.MSAASamples' instead
126+
//VkPipelineRenderingCreateInfoKHR PipelineRenderingCreateInfo; // Since 2025/09/26: set 'PipelineInfoMain.PipelineRenderingCreateInfo' instead
113127

114128
// (Optional) Dynamic Rendering
115-
// Need to explicitly enable VK_KHR_dynamic_rendering extension to use this, even for Vulkan 1.3 + setup PipelineRenderingCreateInfo.
116-
bool UseDynamicRendering;
117-
#ifdef IMGUI_IMPL_VULKAN_HAS_DYNAMIC_RENDERING
118-
VkPipelineRenderingCreateInfoKHR PipelineRenderingCreateInfo; // Optional, valid if .sType == VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR
119-
#endif // #ifdef IMGUI_IMPL_VULKAN_HAS_DYNAMIC_RENDERING
129+
// Need to explicitly enable VK_KHR_dynamic_rendering extension to use this, even for Vulkan 1.3 + setup PipelineInfoMain.PipelineRenderingCreateInfo.
130+
bool UseDynamicRendering;
131+
120132
// (Optional) Allocation, Debugging
121-
const VkAllocationCallbacks* Allocator;
133+
const VkAllocationCallbacks* Allocator;
122134
void (*CheckVkResultFn)(VkResult err);
123-
VkDeviceSize MinAllocationSize; // Minimum allocation size. Set to 1024*1024 to satisfy zealous best practices validation layer and waste a little memory.
135+
VkDeviceSize MinAllocationSize; // Minimum allocation size. Set to 1024*1024 to satisfy zealous best practices validation layer and waste a little memory.
136+
137+
// (Optional) Customize default vertex/fragment shaders.
138+
// - if .sType == VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO we use specified structs, otherwise we use defaults.
139+
// - Shader inputs/outputs need to match ours. Code/data pointed to by the structure needs to survive for whole during of backend usage.
140+
VkShaderModuleCreateInfo CustomShaderVertCreateInfo;
141+
VkShaderModuleCreateInfo CustomShaderFragCreateInfo;
124142
};
125143

126144
typedef struct ImDrawData_t ImDrawData;
@@ -135,16 +153,7 @@ CIMGUI_IMPL_API void cImGui_ImplVulkan_SetMinImageCount(uint32_t min_image_count
135153
// (Advanced) Use e.g. if you need to recreate pipeline without reinitializing the backend (see #8110, #8111)
136154
// The main window pipeline will be created by ImGui_ImplVulkan_Init() if possible (== RenderPass xor (UseDynamicRendering && PipelineRenderingCreateInfo->sType == VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR))
137155
// Else, the pipeline can be created, or re-created, using ImGui_ImplVulkan_CreateMainPipeline() before rendering.
138-
struct ImGui_ImplVulkan_MainPipelineCreateInfo_t
139-
{
140-
VkRenderPass RenderPass /* = VK_NULL_HANDLE */;
141-
uint32_t Subpass /* = 0 */;
142-
VkSampleCountFlagBits MSAASamples /* = {} */;
143-
#ifdef IMGUI_IMPL_VULKAN_HAS_DYNAMIC_RENDERING
144-
VkPipelineRenderingCreateInfoKHR PipelineRenderingCreateInfo; // Optional, valid if .sType == VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR
145-
#endif // #ifdef IMGUI_IMPL_VULKAN_HAS_DYNAMIC_RENDERING
146-
};
147-
CIMGUI_IMPL_API void cImGui_ImplVulkan_CreateMainPipeline(ImGui_ImplVulkan_MainPipelineCreateInfo info); // (render_pass xor (p_dynamic_rendering && p_dynamic_rendering is correct (sType and pNext)))
156+
CIMGUI_IMPL_API void cImGui_ImplVulkan_CreateMainPipeline(const ImGui_ImplVulkan_PipelineInfo* info);
148157

149158
// (Advanced) Use e.g. if you need to precisely control the timing of texture updates (e.g. for staged rendering), by setting ImDrawData::Textures = NULL to handle this manually.
150159
CIMGUI_IMPL_API void cImGui_ImplVulkan_UpdateTexture(ImTextureData* tex);
@@ -196,8 +205,8 @@ typedef struct ImGui_ImplVulkanH_Frame_t ImGui_ImplVulkanH_Frame;
196205
typedef struct ImGui_ImplVulkanH_Window_t ImGui_ImplVulkanH_Window;
197206

198207
// Helpers
199-
CIMGUI_IMPL_API void cImGui_ImplVulkanH_CreateOrResizeWindow(VkInstance instance, VkPhysicalDevice physical_device, VkDevice device, ImGui_ImplVulkanH_Window* wnd, uint32_t queue_family, const VkAllocationCallbacks* allocator, int w, int h, uint32_t min_image_count);
200-
CIMGUI_IMPL_API void cImGui_ImplVulkanH_DestroyWindow(VkInstance instance, VkDevice device, ImGui_ImplVulkanH_Window* wnd, const VkAllocationCallbacks* allocator);
208+
CIMGUI_IMPL_API void cImGui_ImplVulkanH_CreateOrResizeWindow(VkInstance instance, VkPhysicalDevice physical_device, VkDevice device, ImGui_ImplVulkanH_Window* wd, uint32_t queue_family, const VkAllocationCallbacks* allocator, int w, int h, uint32_t min_image_count, VkImageUsageFlags image_usage);
209+
CIMGUI_IMPL_API void cImGui_ImplVulkanH_DestroyWindow(VkInstance instance, VkDevice device, ImGui_ImplVulkanH_Window* wd, const VkAllocationCallbacks* allocator);
201210
CIMGUI_IMPL_API VkSurfaceFormatKHR cImGui_ImplVulkanH_SelectSurfaceFormat(VkPhysicalDevice physical_device, VkSurfaceKHR surface, const VkFormat* request_formats, int request_formats_count, VkColorSpaceKHR request_color_space);
202211
CIMGUI_IMPL_API VkPresentModeKHR cImGui_ImplVulkanH_SelectPresentMode(VkPhysicalDevice physical_device, VkSurfaceKHR surface, const VkPresentModeKHR* request_modes, int request_modes_count);
203212
CIMGUI_IMPL_API VkPhysicalDevice cImGui_ImplVulkanH_SelectPhysicalDevice(VkInstance instance);

dcimgui/backends/dcimgui_impl_wgpu.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ extern "C"
4848
typedef struct ImGui_ImplWGPU_InitInfo_ImDrawData_t ImGui_ImplWGPU_InitInfo_ImDrawData;
4949
struct ImGui_ImplWGPU_InitInfo_t
5050
{
51-
WGPUDevice Device;
51+
WGPUDevice Device /* = nullptr */;
5252
int NumFramesInFlight /* = 3 */;
5353
WGPUTextureFormat RenderTargetFormat /* = WGPUTextureFormat_Undefined */;
5454
WGPUTextureFormat DepthStencilFormat /* = WGPUTextureFormat_Undefined */;

dcimgui/backends/imgui_impl_allegro5.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121

2222
// CHANGELOG
2323
// (minor and older changes stripped away, please see git history for details)
24+
// 2025-09-18: Call platform_io.ClearRendererHandlers() and platform_io.ClearPlatformHandlers() on shutdown.
2425
// 2025-08-12: Inputs: fixed missing support for ImGuiKey_PrintScreen under Windows, as raw Allegro 5 does not receive it.
2526
// 2025-08-12: Added ImGui_ImplAllegro5_SetDisplay() function to change current ALLEGRO_DISPLAY, as Allegro applications often need to do that.
2627
// 2025-07-07: Fixed texture update broken on some platforms where ALLEGRO_LOCK_WRITEONLY needed all texels to be rewritten.
@@ -499,6 +500,7 @@ void ImGui_ImplAllegro5_Shutdown()
499500
ImGui_ImplAllegro5_Data* bd = ImGui_ImplAllegro5_GetBackendData();
500501
IM_ASSERT(bd != nullptr && "No platform backend to shutdown, or already shutdown?");
501502
ImGuiIO& io = ImGui::GetIO();
503+
ImGuiPlatformIO& platform_io = ImGui::GetPlatformIO();
502504

503505
ImGui_ImplAllegro5_InvalidateDeviceObjects();
504506
if (bd->VertexDecl)
@@ -509,6 +511,8 @@ void ImGui_ImplAllegro5_Shutdown()
509511
io.BackendPlatformName = io.BackendRendererName = nullptr;
510512
io.BackendPlatformUserData = nullptr;
511513
io.BackendFlags &= ~(ImGuiBackendFlags_HasMouseCursors | ImGuiBackendFlags_RendererHasTextures);
514+
platform_io.ClearRendererHandlers();
515+
platform_io.ClearPlatformHandlers();
512516
IM_DELETE(bd);
513517
}
514518

dcimgui/backends/imgui_impl_dx10.cpp

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616

1717
// CHANGELOG
1818
// (minor and older changes stripped away, please see git history for details)
19+
// 2025-09-18: Call platform_io.ClearRendererHandlers() on shutdown.
1920
// 2025-06-11: DirectX10: Added support for ImGuiBackendFlags_RendererHasTextures, for dynamic font atlas.
2021
// 2025-05-07: DirectX10: Honor draw_data->FramebufferScale to allow for custom backends and experiment using it (consistently with other renderer backends, even though in normal condition it is not set under Windows).
2122
// 2025-01-06: DirectX10: Expose selected render state in ImGui_ImplDX10_RenderState, which you can access in 'void* platform_io.Renderer_RenderState' during draw callbacks.
@@ -324,18 +325,18 @@ void ImGui_ImplDX10_RenderDrawData(ImDrawData* draw_data)
324325

325326
static void ImGui_ImplDX10_DestroyTexture(ImTextureData* tex)
326327
{
327-
ImGui_ImplDX10_Texture* backend_tex = (ImGui_ImplDX10_Texture*)tex->BackendUserData;
328-
if (backend_tex == nullptr)
329-
return;
330-
IM_ASSERT(backend_tex->pTextureView == (ID3D10ShaderResourceView*)(intptr_t)tex->TexID);
331-
backend_tex->pTexture->Release();
332-
backend_tex->pTextureView->Release();
333-
IM_DELETE(backend_tex);
328+
if (ImGui_ImplDX10_Texture* backend_tex = (ImGui_ImplDX10_Texture*)tex->BackendUserData)
329+
{
330+
IM_ASSERT(backend_tex->pTextureView == (ID3D10ShaderResourceView*)(intptr_t)tex->TexID);
331+
backend_tex->pTextureView->Release();
332+
backend_tex->pTexture->Release();
333+
IM_DELETE(backend_tex);
334334

335-
// Clear identifiers and mark as destroyed (in order to allow e.g. calling InvalidateDeviceObjects while running)
336-
tex->SetTexID(ImTextureID_Invalid);
335+
// Clear identifiers and mark as destroyed (in order to allow e.g. calling InvalidateDeviceObjects while running)
336+
tex->SetTexID(ImTextureID_Invalid);
337+
tex->BackendUserData = nullptr;
338+
}
337339
tex->SetStatus(ImTextureStatus_Destroyed);
338-
tex->BackendUserData = nullptr;
339340
}
340341

341342
void ImGui_ImplDX10_UpdateTexture(ImTextureData* tex)
@@ -630,13 +631,16 @@ void ImGui_ImplDX10_Shutdown()
630631
ImGui_ImplDX10_Data* bd = ImGui_ImplDX10_GetBackendData();
631632
IM_ASSERT(bd != nullptr && "No renderer backend to shutdown, or already shutdown?");
632633
ImGuiIO& io = ImGui::GetIO();
634+
ImGuiPlatformIO& platform_io = ImGui::GetPlatformIO();
633635

634636
ImGui_ImplDX10_InvalidateDeviceObjects();
635637
if (bd->pFactory) { bd->pFactory->Release(); }
636638
if (bd->pd3dDevice) { bd->pd3dDevice->Release(); }
639+
637640
io.BackendRendererName = nullptr;
638641
io.BackendRendererUserData = nullptr;
639642
io.BackendFlags &= ~(ImGuiBackendFlags_RendererHasVtxOffset | ImGuiBackendFlags_RendererHasTextures);
643+
platform_io.ClearRendererHandlers();
640644
IM_DELETE(bd);
641645
}
642646

0 commit comments

Comments
 (0)