92
92
#endif
93
93
94
94
// Forward Declarations
95
- struct ImGui_ImplVulkanH_FrameRenderBuffers ;
96
- struct ImGui_ImplVulkanH_WindowRenderBuffers ;
95
+ struct ImGui_ImplVulkan_FrameRenderBuffers ;
96
+ struct ImGui_ImplVulkan_WindowRenderBuffers ;
97
97
bool ImGui_ImplVulkan_CreateDeviceObjects ();
98
98
void ImGui_ImplVulkan_DestroyDeviceObjects ();
99
+ void ImGui_ImplVulkan_DestroyFrameRenderBuffers (VkDevice device, ImGui_ImplVulkan_FrameRenderBuffers* buffers, const VkAllocationCallbacks* allocator);
100
+ void ImGui_ImplVulkan_DestroyWindowRenderBuffers (VkDevice device, ImGui_ImplVulkan_WindowRenderBuffers* buffers, const VkAllocationCallbacks* allocator);
99
101
void ImGui_ImplVulkanH_DestroyFrame (VkDevice device, ImGui_ImplVulkanH_Frame* fd, const VkAllocationCallbacks* allocator);
100
102
void ImGui_ImplVulkanH_DestroyFrameSemaphores (VkDevice device, ImGui_ImplVulkanH_FrameSemaphores* fsd, const VkAllocationCallbacks* allocator);
101
- void ImGui_ImplVulkanH_DestroyFrameRenderBuffers (VkDevice device, ImGui_ImplVulkanH_FrameRenderBuffers* buffers, const VkAllocationCallbacks* allocator);
102
- void ImGui_ImplVulkanH_DestroyWindowRenderBuffers (VkDevice device, ImGui_ImplVulkanH_WindowRenderBuffers* buffers, const VkAllocationCallbacks* allocator);
103
103
void ImGui_ImplVulkanH_CreateWindowSwapChain (VkPhysicalDevice physical_device, VkDevice device, ImGui_ImplVulkanH_Window* wd, const VkAllocationCallbacks* allocator, int w, int h, uint32_t min_image_count);
104
104
void ImGui_ImplVulkanH_CreateWindowCommandBuffers (VkPhysicalDevice physical_device, VkDevice device, ImGui_ImplVulkanH_Window* wd, uint32_t queue_family, const VkAllocationCallbacks* allocator);
105
105
@@ -191,7 +191,7 @@ static PFN_vkCmdEndRenderingKHR ImGuiImplVulkanFuncs_vkCmdEndRenderingKHR;
191
191
192
192
// Reusable buffers used for rendering 1 current in-flight frame, for ImGui_ImplVulkan_RenderDrawData()
193
193
// [Please zero-clear before use!]
194
- struct ImGui_ImplVulkanH_FrameRenderBuffers
194
+ struct ImGui_ImplVulkan_FrameRenderBuffers
195
195
{
196
196
VkDeviceMemory VertexBufferMemory;
197
197
VkDeviceMemory IndexBufferMemory;
@@ -203,11 +203,11 @@ struct ImGui_ImplVulkanH_FrameRenderBuffers
203
203
204
204
// Each viewport will hold 1 ImGui_ImplVulkanH_WindowRenderBuffers
205
205
// [Please zero-clear before use!]
206
- struct ImGui_ImplVulkanH_WindowRenderBuffers
206
+ struct ImGui_ImplVulkan_WindowRenderBuffers
207
207
{
208
208
uint32_t Index;
209
209
uint32_t Count;
210
- ImGui_ImplVulkanH_FrameRenderBuffers * FrameRenderBuffers;
210
+ ImGui_ImplVulkan_FrameRenderBuffers * FrameRenderBuffers;
211
211
};
212
212
213
213
// Vulkan data
@@ -234,7 +234,7 @@ struct ImGui_ImplVulkan_Data
234
234
VkCommandBuffer FontCommandBuffer;
235
235
236
236
// Render buffers for main window
237
- ImGui_ImplVulkanH_WindowRenderBuffers MainWindowRenderBuffers;
237
+ ImGui_ImplVulkan_WindowRenderBuffers MainWindowRenderBuffers;
238
238
239
239
ImGui_ImplVulkan_Data ()
240
240
{
@@ -426,7 +426,7 @@ static void CreateOrResizeBuffer(VkBuffer& buffer, VkDeviceMemory& buffer_memory
426
426
buffer_size = buffer_size_aligned;
427
427
}
428
428
429
- static void ImGui_ImplVulkan_SetupRenderState (ImDrawData* draw_data, VkPipeline pipeline, VkCommandBuffer command_buffer, ImGui_ImplVulkanH_FrameRenderBuffers * rb, int fb_width, int fb_height)
429
+ static void ImGui_ImplVulkan_SetupRenderState (ImDrawData* draw_data, VkPipeline pipeline, VkCommandBuffer command_buffer, ImGui_ImplVulkan_FrameRenderBuffers * rb, int fb_width, int fb_height)
430
430
{
431
431
ImGui_ImplVulkan_Data* bd = ImGui_ImplVulkan_GetBackendData ();
432
432
@@ -485,17 +485,17 @@ void ImGui_ImplVulkan_RenderDrawData(ImDrawData* draw_data, VkCommandBuffer comm
485
485
pipeline = bd->Pipeline ;
486
486
487
487
// Allocate array to store enough vertex/index buffers
488
- ImGui_ImplVulkanH_WindowRenderBuffers * wrb = &bd->MainWindowRenderBuffers ;
488
+ ImGui_ImplVulkan_WindowRenderBuffers * wrb = &bd->MainWindowRenderBuffers ;
489
489
if (wrb->FrameRenderBuffers == nullptr )
490
490
{
491
491
wrb->Index = 0 ;
492
492
wrb->Count = v->ImageCount ;
493
- wrb->FrameRenderBuffers = (ImGui_ImplVulkanH_FrameRenderBuffers *)IM_ALLOC (sizeof (ImGui_ImplVulkanH_FrameRenderBuffers ) * wrb->Count );
494
- memset (wrb->FrameRenderBuffers , 0 , sizeof (ImGui_ImplVulkanH_FrameRenderBuffers ) * wrb->Count );
493
+ wrb->FrameRenderBuffers = (ImGui_ImplVulkan_FrameRenderBuffers *)IM_ALLOC (sizeof (ImGui_ImplVulkan_FrameRenderBuffers ) * wrb->Count );
494
+ memset (wrb->FrameRenderBuffers , 0 , sizeof (ImGui_ImplVulkan_FrameRenderBuffers ) * wrb->Count );
495
495
}
496
496
IM_ASSERT (wrb->Count == v->ImageCount );
497
497
wrb->Index = (wrb->Index + 1 ) % wrb->Count ;
498
- ImGui_ImplVulkanH_FrameRenderBuffers * rb = &wrb->FrameRenderBuffers [wrb->Index ];
498
+ ImGui_ImplVulkan_FrameRenderBuffers * rb = &wrb->FrameRenderBuffers [wrb->Index ];
499
499
500
500
if (draw_data->TotalVtxCount > 0 )
501
501
{
@@ -1032,7 +1032,7 @@ void ImGui_ImplVulkan_DestroyDeviceObjects()
1032
1032
{
1033
1033
ImGui_ImplVulkan_Data* bd = ImGui_ImplVulkan_GetBackendData ();
1034
1034
ImGui_ImplVulkan_InitInfo* v = &bd->VulkanInitInfo ;
1035
- ImGui_ImplVulkanH_DestroyWindowRenderBuffers (v->Device , &bd->MainWindowRenderBuffers , v->Allocator );
1035
+ ImGui_ImplVulkan_DestroyWindowRenderBuffers (v->Device , &bd->MainWindowRenderBuffers , v->Allocator );
1036
1036
ImGui_ImplVulkan_DestroyFontsTexture ();
1037
1037
1038
1038
if (bd->FontCommandBuffer ) { vkFreeCommandBuffers (v->Device , bd->FontCommandPool , 1 , &bd->FontCommandBuffer ); bd->FontCommandBuffer = VK_NULL_HANDLE; }
@@ -1151,7 +1151,7 @@ void ImGui_ImplVulkan_SetMinImageCount(uint32_t min_image_count)
1151
1151
ImGui_ImplVulkan_InitInfo* v = &bd->VulkanInitInfo ;
1152
1152
VkResult err = vkDeviceWaitIdle (v->Device );
1153
1153
check_vk_result (err);
1154
- ImGui_ImplVulkanH_DestroyWindowRenderBuffers (v->Device , &bd->MainWindowRenderBuffers , v->Allocator );
1154
+ ImGui_ImplVulkan_DestroyWindowRenderBuffers (v->Device , &bd->MainWindowRenderBuffers , v->Allocator );
1155
1155
bd->VulkanInitInfo .MinImageCount = min_image_count;
1156
1156
}
1157
1157
@@ -1198,6 +1198,26 @@ void ImGui_ImplVulkan_RemoveTexture(VkDescriptorSet descriptor_set)
1198
1198
vkFreeDescriptorSets (v->Device , v->DescriptorPool , 1 , &descriptor_set);
1199
1199
}
1200
1200
1201
+ void ImGui_ImplVulkan_DestroyFrameRenderBuffers (VkDevice device, ImGui_ImplVulkan_FrameRenderBuffers* buffers, const VkAllocationCallbacks* allocator)
1202
+ {
1203
+ if (buffers->VertexBuffer ) { vkDestroyBuffer (device, buffers->VertexBuffer , allocator); buffers->VertexBuffer = VK_NULL_HANDLE; }
1204
+ if (buffers->VertexBufferMemory ) { vkFreeMemory (device, buffers->VertexBufferMemory , allocator); buffers->VertexBufferMemory = VK_NULL_HANDLE; }
1205
+ if (buffers->IndexBuffer ) { vkDestroyBuffer (device, buffers->IndexBuffer , allocator); buffers->IndexBuffer = VK_NULL_HANDLE; }
1206
+ if (buffers->IndexBufferMemory ) { vkFreeMemory (device, buffers->IndexBufferMemory , allocator); buffers->IndexBufferMemory = VK_NULL_HANDLE; }
1207
+ buffers->VertexBufferSize = 0 ;
1208
+ buffers->IndexBufferSize = 0 ;
1209
+ }
1210
+
1211
+ void ImGui_ImplVulkan_DestroyWindowRenderBuffers (VkDevice device, ImGui_ImplVulkan_WindowRenderBuffers* buffers, const VkAllocationCallbacks* allocator)
1212
+ {
1213
+ for (uint32_t n = 0 ; n < buffers->Count ; n++)
1214
+ ImGui_ImplVulkan_DestroyFrameRenderBuffers (device, &buffers->FrameRenderBuffers [n], allocator);
1215
+ IM_FREE (buffers->FrameRenderBuffers );
1216
+ buffers->FrameRenderBuffers = nullptr ;
1217
+ buffers->Index = 0 ;
1218
+ buffers->Count = 0 ;
1219
+ }
1220
+
1201
1221
// -------------------------------------------------------------------------
1202
1222
// Internal / Miscellaneous Vulkan Helpers
1203
1223
// (Used by example's main.cpp. Used by multi-viewport features. PROBABLY NOT used by your own app.)
@@ -1562,26 +1582,6 @@ void ImGui_ImplVulkanH_DestroyFrameSemaphores(VkDevice device, ImGui_ImplVulkanH
1562
1582
fsd->ImageAcquiredSemaphore = fsd->RenderCompleteSemaphore = VK_NULL_HANDLE;
1563
1583
}
1564
1584
1565
- void ImGui_ImplVulkanH_DestroyFrameRenderBuffers (VkDevice device, ImGui_ImplVulkanH_FrameRenderBuffers* buffers, const VkAllocationCallbacks* allocator)
1566
- {
1567
- if (buffers->VertexBuffer ) { vkDestroyBuffer (device, buffers->VertexBuffer , allocator); buffers->VertexBuffer = VK_NULL_HANDLE; }
1568
- if (buffers->VertexBufferMemory ) { vkFreeMemory (device, buffers->VertexBufferMemory , allocator); buffers->VertexBufferMemory = VK_NULL_HANDLE; }
1569
- if (buffers->IndexBuffer ) { vkDestroyBuffer (device, buffers->IndexBuffer , allocator); buffers->IndexBuffer = VK_NULL_HANDLE; }
1570
- if (buffers->IndexBufferMemory ) { vkFreeMemory (device, buffers->IndexBufferMemory , allocator); buffers->IndexBufferMemory = VK_NULL_HANDLE; }
1571
- buffers->VertexBufferSize = 0 ;
1572
- buffers->IndexBufferSize = 0 ;
1573
- }
1574
-
1575
- void ImGui_ImplVulkanH_DestroyWindowRenderBuffers (VkDevice device, ImGui_ImplVulkanH_WindowRenderBuffers* buffers, const VkAllocationCallbacks* allocator)
1576
- {
1577
- for (uint32_t n = 0 ; n < buffers->Count ; n++)
1578
- ImGui_ImplVulkanH_DestroyFrameRenderBuffers (device, &buffers->FrameRenderBuffers [n], allocator);
1579
- IM_FREE (buffers->FrameRenderBuffers );
1580
- buffers->FrameRenderBuffers = nullptr ;
1581
- buffers->Index = 0 ;
1582
- buffers->Count = 0 ;
1583
- }
1584
-
1585
1585
// -----------------------------------------------------------------------------
1586
1586
1587
1587
#endif // #ifndef IMGUI_DISABLE
0 commit comments