mirror of
				https://github.com/ocornut/imgui.git
				synced 2025-10-26 12:27:30 +00:00 
			
		
		
		
	Merge branch 'master' into docking
# Conflicts: # backends/imgui_impl_vulkan.cpp # backends/imgui_impl_win32.cpp
This commit is contained in:
		| @@ -35,6 +35,7 @@ | ||||
| // CHANGELOG | ||||
| // (minor and older changes stripped away, please see git history for details) | ||||
| //  2024-XX-XX: Platform: Added support for multiple windows via the ImGuiPlatformIO interface. | ||||
| //  2024-04-19: Vulkan: Added convenience support for Volk via IMGUI_IMPL_VULKAN_USE_VOLK define (you can also use IMGUI_IMPL_VULKAN_NO_PROTOTYPES + wrap Volk via ImGui_ImplVulkan_LoadFunctions().) | ||||
| //  2024-02-14: *BREAKING CHANGE*: Moved RenderPass parameter from ImGui_ImplVulkan_Init() function to ImGui_ImplVulkan_InitInfo structure. Not required when using dynamic rendering. | ||||
| //  2024-02-12: *BREAKING CHANGE*: Dynamic rendering now require filling PipelineRenderingCreateInfo structure. | ||||
| //  2024-01-19: Vulkan: Fixed vkAcquireNextImageKHR() validation errors in VulkanSDK 1.3.275 by allocating one extra semaphore than in-flight frames. (#7236) | ||||
| @@ -111,12 +112,13 @@ void ImGui_ImplVulkanH_CreateWindowCommandBuffers(VkPhysicalDevice physical_devi | ||||
|  | ||||
| // Vulkan prototypes for use with custom loaders | ||||
| // (see description of IMGUI_IMPL_VULKAN_NO_PROTOTYPES in imgui_impl_vulkan.h | ||||
| #ifdef VK_NO_PROTOTYPES | ||||
| #if defined(VK_NO_PROTOTYPES) && !defined(VOLK_H_) | ||||
| #define IMGUI_IMPL_VULKAN_USE_LOADER | ||||
| static bool g_FunctionsLoaded = false; | ||||
| #else | ||||
| static bool g_FunctionsLoaded = true; | ||||
| #endif | ||||
| #ifdef VK_NO_PROTOTYPES | ||||
| #ifdef IMGUI_IMPL_VULKAN_USE_LOADER | ||||
| #define IMGUI_VULKAN_FUNC_MAP(IMGUI_VULKAN_FUNC_MAP_MACRO) \ | ||||
|     IMGUI_VULKAN_FUNC_MAP_MACRO(vkAllocateCommandBuffers) \ | ||||
|     IMGUI_VULKAN_FUNC_MAP_MACRO(vkAllocateDescriptorSets) \ | ||||
| @@ -194,7 +196,7 @@ static bool g_FunctionsLoaded = true; | ||||
| #define IMGUI_VULKAN_FUNC_DEF(func) static PFN_##func func; | ||||
| IMGUI_VULKAN_FUNC_MAP(IMGUI_VULKAN_FUNC_DEF) | ||||
| #undef IMGUI_VULKAN_FUNC_DEF | ||||
| #endif // VK_NO_PROTOTYPES | ||||
| #endif // IMGUI_IMPL_VULKAN_USE_LOADER | ||||
|  | ||||
| #ifdef IMGUI_IMPL_VULKAN_HAS_DYNAMIC_RENDERING | ||||
| static PFN_vkCmdBeginRenderingKHR   ImGuiImplVulkanFuncs_vkCmdBeginRenderingKHR; | ||||
| @@ -1076,8 +1078,8 @@ bool    ImGui_ImplVulkan_LoadFunctions(PFN_vkVoidFunction(*loader_func)(const ch | ||||
|     // Load function pointers | ||||
|     // You can use the default Vulkan loader using: | ||||
|     //      ImGui_ImplVulkan_LoadFunctions([](const char* function_name, void*) { return vkGetInstanceProcAddr(your_vk_isntance, function_name); }); | ||||
|     // But this would be equivalent to not setting VK_NO_PROTOTYPES. | ||||
| #ifdef VK_NO_PROTOTYPES | ||||
|     // But this would be roughly equivalent to not setting VK_NO_PROTOTYPES. | ||||
| #ifdef IMGUI_IMPL_VULKAN_USE_LOADER | ||||
| #define IMGUI_VULKAN_FUNC_LOAD(func) \ | ||||
|     func = reinterpret_cast<decltype(func)>(loader_func(#func, user_data)); \ | ||||
|     if (func == nullptr)   \ | ||||
| @@ -1106,7 +1108,7 @@ bool    ImGui_ImplVulkan_Init(ImGui_ImplVulkan_InitInfo* info) | ||||
|     if (info->UseDynamicRendering) | ||||
|     { | ||||
| #ifdef IMGUI_IMPL_VULKAN_HAS_DYNAMIC_RENDERING | ||||
| #ifndef VK_NO_PROTOTYPES | ||||
| #ifndef IMGUI_IMPL_VULKAN_USE_LOADER | ||||
|         ImGuiImplVulkanFuncs_vkCmdBeginRenderingKHR = reinterpret_cast<PFN_vkCmdBeginRenderingKHR>(vkGetInstanceProcAddr(info->Instance, "vkCmdBeginRenderingKHR")); | ||||
|         ImGuiImplVulkanFuncs_vkCmdEndRenderingKHR = reinterpret_cast<PFN_vkCmdEndRenderingKHR>(vkGetInstanceProcAddr(info->Instance, "vkCmdEndRenderingKHR")); | ||||
| #endif | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 ocornut
					ocornut