|  |  | @ -693,7 +693,7 @@ static void ImGui_ImplVulkan_CreatePipelineLayout(VkDevice device, const VkAlloc | 
			
		
	
		
		
			
				
					
					|  |  |  |     check_vk_result(err); |  |  |  |     check_vk_result(err); | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  | static void ImGui_ImplVulkan_CreatePipeline(VkDevice device, const VkAllocationCallbacks* allocator, VkPipelineCache pipelineCache, VkRenderPass renderPass, VkSampleCountFlagBits MSAASamples, VkPipeline *pipeline) |  |  |  | static void ImGui_ImplVulkan_CreatePipeline(VkDevice device, const VkAllocationCallbacks* allocator, VkPipelineCache pipelineCache, VkRenderPass renderPass, VkSampleCountFlagBits MSAASamples, VkPipeline* pipeline) | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  | { |  |  |  | { | 
			
		
	
		
		
			
				
					
					|  |  |  |     ImGui_ImplVulkan_CreateShaderModules(device, allocator); |  |  |  |     ImGui_ImplVulkan_CreateShaderModules(device, allocator); | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
	
		
		
			
				
					|  |  | @ -801,24 +801,6 @@ bool ImGui_ImplVulkan_CreateDeviceObjects() | 
			
		
	
		
		
			
				
					
					|  |  |  | { |  |  |  | { | 
			
		
	
		
		
			
				
					
					|  |  |  |     ImGui_ImplVulkan_InitInfo* v = &g_VulkanInitInfo; |  |  |  |     ImGui_ImplVulkan_InitInfo* v = &g_VulkanInitInfo; | 
			
		
	
		
		
			
				
					
					|  |  |  |     VkResult err; |  |  |  |     VkResult err; | 
			
		
	
		
		
			
				
					
					|  |  |  |     VkShaderModule vert_module; |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     VkShaderModule frag_module; |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     // Create The Shader Modules:
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     { |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         VkShaderModuleCreateInfo vert_info = {}; |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         vert_info.sType = VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO; |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         vert_info.codeSize = sizeof(__glsl_shader_vert_spv); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         vert_info.pCode = (uint32_t*)__glsl_shader_vert_spv; |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         err = vkCreateShaderModule(v->Device, &vert_info, v->Allocator, &vert_module); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         check_vk_result(err); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         VkShaderModuleCreateInfo frag_info = {}; |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         frag_info.sType = VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO; |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         frag_info.codeSize = sizeof(__glsl_shader_frag_spv); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         frag_info.pCode = (uint32_t*)__glsl_shader_frag_spv; |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         err = vkCreateShaderModule(v->Device, &frag_info, v->Allocator, &frag_module); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |         check_vk_result(err); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     } |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     if (!g_FontSampler) |  |  |  |     if (!g_FontSampler) | 
			
		
	
		
		
			
				
					
					|  |  |  |     { |  |  |  |     { | 
			
		
	
	
		
		
			
				
					|  |  | @ -884,9 +866,6 @@ bool ImGui_ImplVulkan_CreateDeviceObjects() | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     ImGui_ImplVulkan_CreatePipeline(v->Device, v->Allocator, v->PipelineCache, g_RenderPass, v->MSAASamples, &g_Pipeline); |  |  |  |     ImGui_ImplVulkan_CreatePipeline(v->Device, v->Allocator, v->PipelineCache, g_RenderPass, v->MSAASamples, &g_Pipeline); | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     vkDestroyShaderModule(v->Device, vert_module, v->Allocator); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     vkDestroyShaderModule(v->Device, frag_module, v->Allocator); |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  |  | 
			
		
	
		
		
			
				
					
					|  |  |  |     return true; |  |  |  |     return true; | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
	
		
		
			
				
					|  |  | @ -911,6 +890,8 @@ void    ImGui_ImplVulkan_DestroyDeviceObjects() | 
			
		
	
		
		
			
				
					
					|  |  |  |     ImGui_ImplVulkanH_DestroyAllViewportsRenderBuffers(v->Device, v->Allocator); |  |  |  |     ImGui_ImplVulkanH_DestroyAllViewportsRenderBuffers(v->Device, v->Allocator); | 
			
		
	
		
		
			
				
					
					|  |  |  |     ImGui_ImplVulkan_DestroyFontUploadObjects(); |  |  |  |     ImGui_ImplVulkan_DestroyFontUploadObjects(); | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     if (g_ShaderModuleVert)     { vkDestroyShaderModule(v->Device, g_ShaderModuleVert, v->Allocator); g_ShaderModuleVert = VK_NULL_HANDLE; } | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     if (g_ShaderModuleFrag)     { vkDestroyShaderModule(v->Device, g_ShaderModuleFrag, v->Allocator); g_ShaderModuleFrag = VK_NULL_HANDLE; } | 
			
		
	
		
		
			
				
					
					|  |  |  |     if (g_FontView)             { vkDestroyImageView(v->Device, g_FontView, v->Allocator); g_FontView = VK_NULL_HANDLE; } |  |  |  |     if (g_FontView)             { vkDestroyImageView(v->Device, g_FontView, v->Allocator); g_FontView = VK_NULL_HANDLE; } | 
			
		
	
		
		
			
				
					
					|  |  |  |     if (g_FontImage)            { vkDestroyImage(v->Device, g_FontImage, v->Allocator); g_FontImage = VK_NULL_HANDLE; } |  |  |  |     if (g_FontImage)            { vkDestroyImage(v->Device, g_FontImage, v->Allocator); g_FontImage = VK_NULL_HANDLE; } | 
			
		
	
		
		
			
				
					
					|  |  |  |     if (g_FontMemory)           { vkFreeMemory(v->Device, g_FontMemory, v->Allocator); g_FontMemory = VK_NULL_HANDLE; } |  |  |  |     if (g_FontMemory)           { vkFreeMemory(v->Device, g_FontMemory, v->Allocator); g_FontMemory = VK_NULL_HANDLE; } | 
			
		
	
	
		
		
			
				
					|  |  | @ -1247,7 +1228,10 @@ void ImGui_ImplVulkanH_CreateWindowSwapChain(VkPhysicalDevice physical_device, V | 
			
		
	
		
		
			
				
					
					|  |  |  |         info.pDependencies = &dependency; |  |  |  |         info.pDependencies = &dependency; | 
			
		
	
		
		
			
				
					
					|  |  |  |         err = vkCreateRenderPass(device, &info, allocator, &wd->RenderPass); |  |  |  |         err = vkCreateRenderPass(device, &info, allocator, &wd->RenderPass); | 
			
		
	
		
		
			
				
					
					|  |  |  |         check_vk_result(err); |  |  |  |         check_vk_result(err); | 
			
		
	
		
		
			
				
					
					|  |  |  |         ImGui_ImplVulkan_CreatePipeline(device, allocator, VK_NULL_HANDLE, wd->RenderPass, VK_SAMPLE_COUNT_1_BIT, &wd->Pipeline); |  |  |  | 
 | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         // We do not create a pipeline by default as this is also used by examples' main.cpp,
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         // but secondary viewport in multi-viewport mode may want to create one with:
 | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |         //ImGui_ImplVulkan_CreatePipeline(device, allocator, VK_NULL_HANDLE, wd->RenderPass, VK_SAMPLE_COUNT_1_BIT, &wd->Pipeline);
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     } |  |  |  |     } | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
		
		
			
				
					
					|  |  |  |     // Create The Image Views
 |  |  |  |     // Create The Image Views
 | 
			
		
	
	
		
		
			
				
					|  |  | @ -1297,6 +1281,7 @@ void ImGui_ImplVulkanH_CreateOrResizeWindow(VkInstance instance, VkPhysicalDevic | 
			
		
	
		
		
			
				
					
					|  |  |  | { |  |  |  | { | 
			
		
	
		
		
			
				
					
					|  |  |  |     (void)instance; |  |  |  |     (void)instance; | 
			
		
	
		
		
			
				
					
					|  |  |  |     ImGui_ImplVulkanH_CreateWindowSwapChain(physical_device, device, wd, allocator, width, height, min_image_count); |  |  |  |     ImGui_ImplVulkanH_CreateWindowSwapChain(physical_device, device, wd, allocator, width, height, min_image_count); | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     ImGui_ImplVulkan_CreatePipeline(device, allocator, VK_NULL_HANDLE, wd->RenderPass, VK_SAMPLE_COUNT_1_BIT, &wd->Pipeline); | 
			
		
	
		
		
			
				
					
					|  |  |  |     ImGui_ImplVulkanH_CreateWindowCommandBuffers(physical_device, device, wd, queue_family, allocator); |  |  |  |     ImGui_ImplVulkanH_CreateWindowCommandBuffers(physical_device, device, wd, queue_family, allocator); | 
			
		
	
		
		
			
				
					
					|  |  |  | } |  |  |  | } | 
			
		
	
		
		
			
				
					
					|  |  |  | 
 |  |  |  | 
 | 
			
		
	
	
		
		
			
				
					|  |  | @ -1314,6 +1299,7 @@ void ImGui_ImplVulkanH_DestroyWindow(VkInstance instance, VkDevice device, ImGui | 
			
		
	
		
		
			
				
					
					|  |  |  |     IM_FREE(wd->FrameSemaphores); |  |  |  |     IM_FREE(wd->FrameSemaphores); | 
			
		
	
		
		
			
				
					
					|  |  |  |     wd->Frames = NULL; |  |  |  |     wd->Frames = NULL; | 
			
		
	
		
		
			
				
					
					|  |  |  |     wd->FrameSemaphores = NULL; |  |  |  |     wd->FrameSemaphores = NULL; | 
			
		
	
		
		
			
				
					
					|  |  |  |  |  |  |  |     vkDestroyPipeline(device, wd->Pipeline, allocator); | 
			
		
	
		
		
			
				
					
					|  |  |  |     vkDestroyRenderPass(device, wd->RenderPass, allocator); |  |  |  |     vkDestroyRenderPass(device, wd->RenderPass, allocator); | 
			
		
	
		
		
			
				
					
					|  |  |  |     vkDestroySwapchainKHR(device, wd->Swapchain, allocator); |  |  |  |     vkDestroySwapchainKHR(device, wd->Swapchain, allocator); | 
			
		
	
		
		
			
				
					
					|  |  |  |     vkDestroySurfaceKHR(instance, wd->Surface, allocator); |  |  |  |     vkDestroySurfaceKHR(instance, wd->Surface, allocator); | 
			
		
	
	
		
		
			
				
					|  |  | 
 |