Updates Dear ImGui

This commit is contained in:
Mason Remaley 2025-09-07 16:02:12 -07:00
parent 9151811918
commit 649019b0c2
10 changed files with 15322 additions and 8056 deletions

View file

@ -44,7 +44,7 @@ pub fn build(b: *std.Build) void {
}); });
dear_imgui_lib.addCSourceFiles(.{ dear_imgui_lib.addCSourceFiles(.{
.root = b.path("src/cached"), .root = b.path("src/cached"),
.files = &.{"cimgui.cpp"}, .files = &.{"dcimgui.cpp"},
.flags = flags, .flags = flags,
}); });
b.installArtifact(dear_imgui_lib); b.installArtifact(dear_imgui_lib);
@ -59,7 +59,7 @@ pub fn build(b: *std.Build) void {
}); });
dear_imgui_vulkan_lib.linkLibrary(dear_imgui_lib); dear_imgui_vulkan_lib.linkLibrary(dear_imgui_lib);
dear_imgui_vulkan_lib.addCSourceFile(.{ .file = upstream.path("backends/imgui_impl_vulkan.cpp"), .flags = flags }); dear_imgui_vulkan_lib.addCSourceFile(.{ .file = upstream.path("backends/imgui_impl_vulkan.cpp"), .flags = flags });
dear_imgui_vulkan_lib.addCSourceFile(.{ .file = b.path("src/cached/cimgui_impl_vulkan.cpp"), .flags = flags }); dear_imgui_vulkan_lib.addCSourceFile(.{ .file = b.path("src/cached/dcimgui_impl_vulkan.cpp"), .flags = flags });
dear_imgui_vulkan_lib.addIncludePath(upstream.path("")); dear_imgui_vulkan_lib.addIncludePath(upstream.path(""));
dear_imgui_vulkan_lib.addIncludePath(upstream.path("backends")); dear_imgui_vulkan_lib.addIncludePath(upstream.path("backends"));
const vulkan_headers = b.dependency("Vulkan-Headers", .{}); const vulkan_headers = b.dependency("Vulkan-Headers", .{});
@ -90,7 +90,7 @@ pub fn build(b: *std.Build) void {
// Generate Zig bindings for Dear ImGui // Generate Zig bindings for Dear ImGui
const generate_dear_imgui = b.addRunArtifact(generate_exe); const generate_dear_imgui = b.addRunArtifact(generate_exe);
generate_dear_imgui.addFileArg(b.path("src/cached/cimgui.json")); generate_dear_imgui.addFileArg(b.path("src/cached/dcimgui.json"));
const dear_imgui_zig = generate_dear_imgui.addOutputFileArg("dear_imgui.zig"); const dear_imgui_zig = generate_dear_imgui.addOutputFileArg("dear_imgui.zig");
generate_dear_imgui.addFileArg(b.path("src/templates/cimgui_prefix.zig.template")); generate_dear_imgui.addFileArg(b.path("src/templates/cimgui_prefix.zig.template"));
generate_dear_imgui.addFileArg(b.path("src/templates/cimgui_postfix.zig.template")); generate_dear_imgui.addFileArg(b.path("src/templates/cimgui_postfix.zig.template"));
@ -103,7 +103,7 @@ pub fn build(b: *std.Build) void {
// Generate Zig bindings for the Vulkan backend // Generate Zig bindings for the Vulkan backend
const generate_vulkan = b.addRunArtifact(generate_exe); const generate_vulkan = b.addRunArtifact(generate_exe);
generate_vulkan.addFileArg(b.path("src/cached/cimgui_impl_vulkan.json")); generate_vulkan.addFileArg(b.path("src/cached/dcimgui_impl_vulkan.json"));
const dear_imgui_vulkan_zig = generate_vulkan.addOutputFileArg("dear_imgui_impl_vulkan.zig"); const dear_imgui_vulkan_zig = generate_vulkan.addOutputFileArg("dear_imgui_impl_vulkan.zig");
generate_vulkan.addFileArg(b.path("src/templates/impl_vulkan_prefix.zig.template")); generate_vulkan.addFileArg(b.path("src/templates/impl_vulkan_prefix.zig.template"));
generate_vulkan.addFileArg(b.path("src/templates/impl_vulkan_postfix.zig.template")); generate_vulkan.addFileArg(b.path("src/templates/impl_vulkan_postfix.zig.template"));

View file

@ -5,12 +5,14 @@
.minimum_zig_version = "0.15.1", .minimum_zig_version = "0.15.1",
.dependencies = .{ .dependencies = .{
.@"dear-imgui" = .{ .@"dear-imgui" = .{
.url = "https://github.com/ocornut/imgui/archive/refs/tags/v1.91.0-docking.tar.gz", // XXX: ...
.hash = "N-V-__8AABsVbQAum-LyOe127uQQcIR4RDA5-lAwEXCXY_P6", // .url = "https://github.com/ocornut/imgui/archive/refs/tags/v1.92.2b-docking.tar.gz",
// .hash = "N-V-__8AAPZKeQDWGL4ckVmICNUMMWIikMKny4fQHvs2tCFh",
.path = "../imgui",
}, },
.@"Vulkan-Headers" = .{ .@"Vulkan-Headers" = .{
.url = "https://github.com/KhronosGroup/Vulkan-Headers/archive/refs/tags/v1.3.292.tar.gz", .url = "https://github.com/KhronosGroup/Vulkan-Headers/archive/refs/tags/v1.4.313.tar.gz",
.hash = "N-V-__8AAD79oQHbpYgYjF37obKUeFsO02CtHqLmm_fAdhac", .hash = "N-V-__8AAPLT7gH4vgN7Xo6yZlOMrzllGbdvVxxhrwUvgI9r",
}, },
}, },

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,7 @@
{
"defines": [],
"enums": [],
"typedefs": [],
"structs": [],
"functions": []
}

View file

@ -10,7 +10,7 @@
// Wrap this in a namespace to keep it separate from the C++ API // Wrap this in a namespace to keep it separate from the C++ API
namespace cimgui namespace cimgui
{ {
#include "cimgui_impl_vulkan.h" #include "dcimgui_impl_vulkan.h"
} }
// By-value struct conversions // By-value struct conversions
@ -44,21 +44,16 @@ CIMGUI_IMPL_API void cimgui::cImGui_ImplVulkan_RenderDrawDataEx(cimgui::ImDrawDa
::ImGui_ImplVulkan_RenderDrawData(reinterpret_cast<::ImDrawData*>(draw_data), command_buffer, pipeline); ::ImGui_ImplVulkan_RenderDrawData(reinterpret_cast<::ImDrawData*>(draw_data), command_buffer, pipeline);
} }
CIMGUI_IMPL_API bool cimgui::cImGui_ImplVulkan_CreateFontsTexture(void)
{
return ::ImGui_ImplVulkan_CreateFontsTexture();
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplVulkan_DestroyFontsTexture(void)
{
::ImGui_ImplVulkan_DestroyFontsTexture();
}
CIMGUI_IMPL_API void cimgui::cImGui_ImplVulkan_SetMinImageCount(uint32_t min_image_count) CIMGUI_IMPL_API void cimgui::cImGui_ImplVulkan_SetMinImageCount(uint32_t min_image_count)
{ {
::ImGui_ImplVulkan_SetMinImageCount(min_image_count); ::ImGui_ImplVulkan_SetMinImageCount(min_image_count);
} }
CIMGUI_IMPL_API void cimgui::cImGui_ImplVulkan_UpdateTexture(ImTextureData* tex)
{
::ImGui_ImplVulkan_UpdateTexture(tex);
}
CIMGUI_IMPL_API VkDescriptorSet cimgui::cImGui_ImplVulkan_AddTexture(VkSampler sampler, VkImageView image_view, VkImageLayout image_layout) CIMGUI_IMPL_API VkDescriptorSet cimgui::cImGui_ImplVulkan_AddTexture(VkSampler sampler, VkImageView image_view, VkImageLayout image_layout)
{ {
return ::ImGui_ImplVulkan_AddTexture(sampler, image_view, image_layout); return ::ImGui_ImplVulkan_AddTexture(sampler, image_view, image_layout);
@ -69,14 +64,14 @@ CIMGUI_IMPL_API void cimgui::cImGui_ImplVulkan_RemoveTexture(VkDescriptorS
::ImGui_ImplVulkan_RemoveTexture(descriptor_set); ::ImGui_ImplVulkan_RemoveTexture(descriptor_set);
} }
CIMGUI_IMPL_API bool cimgui::cImGui_ImplVulkan_LoadFunctions(PFN_vkVoidFunction (*loader_func)(const char* function_name, void* user_data)) CIMGUI_IMPL_API bool cimgui::cImGui_ImplVulkan_LoadFunctions(uint32_t api_version, PFN_vkVoidFunction (*loader_func)(const char* function_name, void* user_data))
{ {
return ::ImGui_ImplVulkan_LoadFunctions(loader_func); return ::ImGui_ImplVulkan_LoadFunctions(api_version, loader_func);
} }
CIMGUI_IMPL_API bool cimgui::cImGui_ImplVulkan_LoadFunctionsEx(PFN_vkVoidFunction (*loader_func)(const char* function_name, void* user_data), void* user_data) CIMGUI_IMPL_API bool cimgui::cImGui_ImplVulkan_LoadFunctionsEx(uint32_t api_version, PFN_vkVoidFunction (*loader_func)(const char* function_name, void* user_data), void* user_data)
{ {
return ::ImGui_ImplVulkan_LoadFunctions(loader_func, user_data); return ::ImGui_ImplVulkan_LoadFunctions(api_version, loader_func, user_data);
} }
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) 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)
@ -99,6 +94,16 @@ CIMGUI_IMPL_API VkPresentModeKHR cimgui::cImGui_ImplVulkanH_SelectPresentMode(Vk
return ::ImGui_ImplVulkanH_SelectPresentMode(physical_device, surface, request_modes, request_modes_count); return ::ImGui_ImplVulkanH_SelectPresentMode(physical_device, surface, request_modes, request_modes_count);
} }
CIMGUI_IMPL_API VkPhysicalDevice cimgui::cImGui_ImplVulkanH_SelectPhysicalDevice(VkInstance instance)
{
return ::ImGui_ImplVulkanH_SelectPhysicalDevice(instance);
}
CIMGUI_IMPL_API uint32_t cimgui::cImGui_ImplVulkanH_SelectQueueFamilyIndex(VkPhysicalDevice physical_device)
{
return ::ImGui_ImplVulkanH_SelectQueueFamilyIndex(physical_device);
}
CIMGUI_IMPL_API int cimgui::cImGui_ImplVulkanH_GetMinImageCountFromPresentMode(VkPresentModeKHR present_mode) CIMGUI_IMPL_API int cimgui::cImGui_ImplVulkanH_GetMinImageCountFromPresentMode(VkPresentModeKHR present_mode)
{ {
return ::ImGui_ImplVulkanH_GetMinImageCountFromPresentMode(present_mode); return ::ImGui_ImplVulkanH_GetMinImageCountFromPresentMode(present_mode);

View file

@ -6,13 +6,12 @@
// This needs to be used along with a Platform Backend (e.g. GLFW, SDL, Win32, custom..) // This needs to be used along with a Platform Backend (e.g. GLFW, SDL, Win32, custom..)
// Implemented features: // Implemented features:
// [x] Renderer: User texture binding. Use 'VkDescriptorSet' as ImTextureID. Read the FAQ about ImTextureID! See https://github.com/ocornut/imgui/pull/914 for discussions. // [!] Renderer: User texture binding. Use 'VkDescriptorSet' as texture identifier. Call ImGui_ImplVulkan_AddTexture() to register one. Read the FAQ about ImTextureID/ImTextureRef + https://github.com/ocornut/imgui/pull/914 for discussions.
// [X] Renderer: Large meshes support (64k+ vertices) with 16-bit indices. // [X] Renderer: Large meshes support (64k+ vertices) even with 16-bit indices (ImGuiBackendFlags_RendererHasVtxOffset).
// [X] Renderer: Texture updates support for dynamic font atlas (ImGuiBackendFlags_RendererHasTextures).
// [X] Renderer: Expose selected render state for draw callbacks to use. Access in '(ImGui_ImplXXXX_RenderState*)GetPlatformIO().Renderer_RenderState'.
// [x] Renderer: Multi-viewport / platform windows. With issues (flickering when creating a new viewport). // [x] Renderer: Multi-viewport / platform windows. With issues (flickering when creating a new viewport).
// Important: on 32-bit systems, user texture binding is only supported if your imconfig file has '#define ImTextureID ImU64'.
// See imgui_impl_vulkan.cpp file for details.
// The aim of imgui_impl_vulkan.h/.cpp is to be usable in your engine without any modification. // The aim of imgui_impl_vulkan.h/.cpp is to be usable in your engine without any modification.
// IF YOU FEEL YOU NEED TO MAKE ANY CHANGE TO THIS CODE, please share them and your feedback at https://github.com/ocornut/imgui/ // IF YOU FEEL YOU NEED TO MAKE ANY CHANGE TO THIS CODE, please share them and your feedback at https://github.com/ocornut/imgui/
@ -31,6 +30,10 @@
// the backend itself (imgui_impl_vulkan.cpp), but should PROBABLY NOT be used by your own engine/app code. // the backend itself (imgui_impl_vulkan.cpp), but should PROBABLY NOT be used by your own engine/app code.
// Read comments in imgui_impl_vulkan.h. // Read comments in imgui_impl_vulkan.h.
// Auto-generated forward declarations for C header
typedef struct ImGui_ImplVulkan_InitInfo_t ImGui_ImplVulkan_InitInfo;
typedef struct ImGui_ImplVulkan_RenderState_t ImGui_ImplVulkan_RenderState;
typedef struct ImGui_ImplVulkanH_FrameSemaphores_t ImGui_ImplVulkanH_FrameSemaphores;
#pragma once #pragma once
#ifdef __cplusplus #ifdef __cplusplus
@ -38,7 +41,7 @@ extern "C"
{ {
#endif #endif
#ifndef IMGUI_DISABLE #ifndef IMGUI_DISABLE
#include "cimgui.h" #include "dcimgui.h"
// [Configuration] in order to use a custom Vulkan function loader: // [Configuration] in order to use a custom Vulkan function loader:
// (1) You'll need to disable default Vulkan function prototypes. // (1) You'll need to disable default Vulkan function prototypes.
// We provide a '#define IMGUI_IMPL_VULKAN_NO_PROTOTYPES' convenience configuration flag. // We provide a '#define IMGUI_IMPL_VULKAN_NO_PROTOTYPES' convenience configuration flag.
@ -70,19 +73,26 @@ extern "C"
#if defined(VK_VERSION_1_3)|| defined(VK_KHR_dynamic_rendering) #if defined(VK_VERSION_1_3)|| defined(VK_KHR_dynamic_rendering)
#define IMGUI_IMPL_VULKAN_HAS_DYNAMIC_RENDERING #define IMGUI_IMPL_VULKAN_HAS_DYNAMIC_RENDERING
#endif // #if defined(VK_VERSION_1_3)|| defined(VK_KHR_dynamic_rendering) #endif // #if defined(VK_VERSION_1_3)|| defined(VK_KHR_dynamic_rendering)
// Backend uses a small number of descriptors per font atlas + as many as additional calls done to ImGui_ImplVulkan_AddTexture().
#define IMGUI_IMPL_VULKAN_MINIMUM_IMAGE_SAMPLER_POOL_SIZE (8) // Minimum per atlas
// Initialization data, for ImGui_ImplVulkan_Init() // Initialization data, for ImGui_ImplVulkan_Init()
// - VkDescriptorPool should be created with VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT,
// and must contain a pool size large enough to hold an ImGui VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER descriptor.
// - When using dynamic rendering, set UseDynamicRendering=true and fill PipelineRenderingCreateInfo structure.
// [Please zero-clear before use!] // [Please zero-clear before use!]
typedef struct ImGui_ImplVulkan_InitInfo_t // - About descriptor pool:
// - A VkDescriptorPool should be created with VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT,
// and must contain a pool size large enough to hold a small number of VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER descriptors.
// - As an convenience, by setting DescriptorPoolSize > 0 the backend will create one for you.
// - About dynamic rendering:
// - When using dynamic rendering, set UseDynamicRendering=true and fill PipelineRenderingCreateInfo structure.
struct ImGui_ImplVulkan_InitInfo_t
{ {
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)
VkInstance Instance; VkInstance Instance;
VkPhysicalDevice PhysicalDevice; VkPhysicalDevice PhysicalDevice;
VkDevice Device; VkDevice Device;
uint32_t QueueFamily; uint32_t QueueFamily;
VkQueue Queue; VkQueue Queue;
VkDescriptorPool DescriptorPool; // See requirements in note above VkDescriptorPool DescriptorPool; // See requirements in note above; ignored if using DescriptorPoolSize > 0
VkRenderPass RenderPass; // Ignored if using dynamic rendering VkRenderPass RenderPass; // Ignored if using dynamic rendering
uint32_t MinImageCount; // >= 2 uint32_t MinImageCount; // >= 2
uint32_t ImageCount; // >= MinImageCount uint32_t ImageCount; // >= MinImageCount
@ -92,6 +102,9 @@ typedef struct ImGui_ImplVulkan_InitInfo_t
VkPipelineCache PipelineCache; VkPipelineCache PipelineCache;
uint32_t Subpass; uint32_t Subpass;
// (Optional) Set to create internal descriptor pool instead of using DescriptorPool
uint32_t DescriptorPoolSize;
// (Optional) Dynamic Rendering // (Optional) Dynamic Rendering
// Need to explicitly enable VK_KHR_dynamic_rendering extension to use this, even for Vulkan 1.3. // Need to explicitly enable VK_KHR_dynamic_rendering extension to use this, even for Vulkan 1.3.
bool UseDynamicRendering; bool UseDynamicRendering;
@ -102,7 +115,7 @@ typedef struct ImGui_ImplVulkan_InitInfo_t
const VkAllocationCallbacks* Allocator; const VkAllocationCallbacks* Allocator;
void (*CheckVkResultFn)(VkResult err); void (*CheckVkResultFn)(VkResult err);
VkDeviceSize MinAllocationSize; // Minimum allocation size. Set to 1024*1024 to satisfy zealous best practices validation layer and waste a little memory. VkDeviceSize MinAllocationSize; // Minimum allocation size. Set to 1024*1024 to satisfy zealous best practices validation layer and waste a little memory.
} ImGui_ImplVulkan_InitInfo; };
typedef struct ImDrawData_t ImDrawData; typedef struct ImDrawData_t ImDrawData;
// Follow "Getting Started" link and check examples/ folder to learn about using backends! // Follow "Getting Started" link and check examples/ folder to learn about using backends!
@ -111,10 +124,11 @@ CIMGUI_IMPL_API void cImGui_ImplVulkan_Shutdown(void);
CIMGUI_IMPL_API void cImGui_ImplVulkan_NewFrame(void); CIMGUI_IMPL_API void cImGui_ImplVulkan_NewFrame(void);
CIMGUI_IMPL_API void cImGui_ImplVulkan_RenderDrawData(ImDrawData* draw_data, VkCommandBuffer command_buffer); // Implied pipeline = VK_NULL_HANDLE CIMGUI_IMPL_API void cImGui_ImplVulkan_RenderDrawData(ImDrawData* draw_data, VkCommandBuffer command_buffer); // Implied pipeline = VK_NULL_HANDLE
CIMGUI_IMPL_API void cImGui_ImplVulkan_RenderDrawDataEx(ImDrawData* draw_data, VkCommandBuffer command_buffer, VkPipeline pipeline /* = VK_NULL_HANDLE */); CIMGUI_IMPL_API void cImGui_ImplVulkan_RenderDrawDataEx(ImDrawData* draw_data, VkCommandBuffer command_buffer, VkPipeline pipeline /* = VK_NULL_HANDLE */);
CIMGUI_IMPL_API bool cImGui_ImplVulkan_CreateFontsTexture(void);
CIMGUI_IMPL_API void cImGui_ImplVulkan_DestroyFontsTexture(void);
CIMGUI_IMPL_API void cImGui_ImplVulkan_SetMinImageCount(uint32_t min_image_count); // To override MinImageCount after initialization (e.g. if swap chain is recreated) CIMGUI_IMPL_API void cImGui_ImplVulkan_SetMinImageCount(uint32_t min_image_count); // To override MinImageCount after initialization (e.g. if swap chain is recreated)
// (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.
CIMGUI_IMPL_API void cImGui_ImplVulkan_UpdateTexture(ImTextureData* tex);
// Register a texture (VkDescriptorSet == ImTextureID) // Register a texture (VkDescriptorSet == ImTextureID)
// FIXME: This is experimental in the sense that we are unsure how to best design/tackle this problem // FIXME: This is experimental in the sense that we are unsure how to best design/tackle this problem
// Please post to https://github.com/ocornut/imgui/pull/914 if you have suggestions. // Please post to https://github.com/ocornut/imgui/pull/914 if you have suggestions.
@ -123,23 +137,39 @@ CIMGUI_IMPL_API void cImGui_ImplVulkan_RemoveTexture(VkDescriptorSet descr
// Optional: load Vulkan functions with a custom function loader // Optional: load Vulkan functions with a custom function loader
// This is only useful with IMGUI_IMPL_VULKAN_NO_PROTOTYPES / VK_NO_PROTOTYPES // This is only useful with IMGUI_IMPL_VULKAN_NO_PROTOTYPES / VK_NO_PROTOTYPES
CIMGUI_IMPL_API bool cImGui_ImplVulkan_LoadFunctions(PFN_vkVoidFunction (*loader_func)(const char* function_name, void* user_data)); // Implied user_data = nullptr CIMGUI_IMPL_API bool cImGui_ImplVulkan_LoadFunctions(uint32_t api_version, PFN_vkVoidFunction (*loader_func)(const char* function_name, void* user_data)); // Implied user_data = nullptr
CIMGUI_IMPL_API bool cImGui_ImplVulkan_LoadFunctionsEx(PFN_vkVoidFunction (*loader_func)(const char* function_name, void* user_data), void* user_data /* = nullptr */); CIMGUI_IMPL_API bool cImGui_ImplVulkan_LoadFunctionsEx(uint32_t api_version, PFN_vkVoidFunction (*loader_func)(const char* function_name, void* user_data), void* user_data /* = nullptr */);
// [BETA] Selected render state data shared with callbacks.
// This is temporarily stored in GetPlatformIO().Renderer_RenderState during the ImGui_ImplVulkan_RenderDrawData() call.
// (Please open an issue if you feel you need access to more data)
struct ImGui_ImplVulkan_RenderState_t
{
VkCommandBuffer CommandBuffer;
VkPipeline Pipeline;
VkPipelineLayout PipelineLayout;
};
//------------------------------------------------------------------------- //-------------------------------------------------------------------------
// Internal / Miscellaneous Vulkan Helpers // Internal / Miscellaneous Vulkan Helpers
// (Used by example's main.cpp. Used by multi-viewport features. PROBABLY NOT used by your own engine/app.)
//------------------------------------------------------------------------- //-------------------------------------------------------------------------
// Used by example's main.cpp. Used by multi-viewport features. PROBABLY NOT used by your own engine/app.
//
// You probably do NOT need to use or care about those functions. // You probably do NOT need to use or care about those functions.
// Those functions only exist because: // Those functions only exist because:
// 1) they facilitate the readability and maintenance of the multiple main.cpp examples files. // 1) they facilitate the readability and maintenance of the multiple main.cpp examples files.
// 2) the multi-viewport / platform window implementation needs them internally. // 2) the multi-viewport / platform window implementation needs them internally.
// Generally we avoid exposing any kind of superfluous high-level helpers in the bindings, // Generally we avoid exposing any kind of superfluous high-level helpers in the backends,
// but it is too much code to duplicate everywhere so we exceptionally expose them. // but it is too much code to duplicate everywhere so we exceptionally expose them.
// //
// Your engine/app will likely _already_ have code to setup all that stuff (swap chain, render pass, frame buffers, etc.). // Your engine/app will likely _already_ have code to setup all that stuff (swap chain,
// You may read this code to learn about Vulkan, but it is recommended you use you own custom tailored code to do equivalent work. // render pass, frame buffers, etc.). You may read this code if you are curious, but
// (The ImGui_ImplVulkanH_XXX functions do not interact with any of the state used by the regular ImGui_ImplVulkan_XXX functions) // it is recommended you use you own custom tailored code to do equivalent work.
//
// We don't provide a strong guarantee that we won't change those functions API.
//
// The ImGui_ImplVulkanH_XXX functions should NOT interact with any of the state used
// by the regular ImGui_ImplVulkan_XXX functions).
//------------------------------------------------------------------------- //-------------------------------------------------------------------------
typedef struct ImGui_ImplVulkanH_Frame_t ImGui_ImplVulkanH_Frame; typedef struct ImGui_ImplVulkanH_Frame_t ImGui_ImplVulkanH_Frame;
@ -150,12 +180,14 @@ CIMGUI_IMPL_API void cImGui_ImplVulkanH_CreateOrResizeWindow(VkInstance
CIMGUI_IMPL_API void cImGui_ImplVulkanH_DestroyWindow(VkInstance instance, VkDevice device, ImGui_ImplVulkanH_Window* wd, const VkAllocationCallbacks* allocator); CIMGUI_IMPL_API void cImGui_ImplVulkanH_DestroyWindow(VkInstance instance, VkDevice device, ImGui_ImplVulkanH_Window* wd, const VkAllocationCallbacks* allocator);
CIMGUI_IMPL_API VkSurfaceFormatKHR cImGui_ImplVulkanH_SelectSurfaceFormat(VkPhysicalDevice physical_device, VkSurfaceKHR surface, const VkFormat* request_formats, int request_formats_count, VkColorSpaceKHR request_color_space); CIMGUI_IMPL_API VkSurfaceFormatKHR cImGui_ImplVulkanH_SelectSurfaceFormat(VkPhysicalDevice physical_device, VkSurfaceKHR surface, const VkFormat* request_formats, int request_formats_count, VkColorSpaceKHR request_color_space);
CIMGUI_IMPL_API VkPresentModeKHR cImGui_ImplVulkanH_SelectPresentMode(VkPhysicalDevice physical_device, VkSurfaceKHR surface, const VkPresentModeKHR* request_modes, int request_modes_count); CIMGUI_IMPL_API VkPresentModeKHR cImGui_ImplVulkanH_SelectPresentMode(VkPhysicalDevice physical_device, VkSurfaceKHR surface, const VkPresentModeKHR* request_modes, int request_modes_count);
CIMGUI_IMPL_API VkPhysicalDevice cImGui_ImplVulkanH_SelectPhysicalDevice(VkInstance instance);
CIMGUI_IMPL_API uint32_t cImGui_ImplVulkanH_SelectQueueFamilyIndex(VkPhysicalDevice physical_device);
CIMGUI_IMPL_API int cImGui_ImplVulkanH_GetMinImageCountFromPresentMode(VkPresentModeKHR present_mode); CIMGUI_IMPL_API int cImGui_ImplVulkanH_GetMinImageCountFromPresentMode(VkPresentModeKHR present_mode);
// Helper structure to hold the data needed by one rendering frame // Helper structure to hold the data needed by one rendering frame
// (Used by example's main.cpp. Used by multi-viewport features. Probably NOT used by your own engine/app.) // (Used by example's main.cpp. Used by multi-viewport features. Probably NOT used by your own engine/app.)
// [Please zero-clear before use!] // [Please zero-clear before use!]
typedef struct ImGui_ImplVulkanH_Frame_t struct ImGui_ImplVulkanH_Frame_t
{ {
VkCommandPool CommandPool; VkCommandPool CommandPool;
VkCommandBuffer CommandBuffer; VkCommandBuffer CommandBuffer;
@ -163,17 +195,17 @@ typedef struct ImGui_ImplVulkanH_Frame_t
VkImage Backbuffer; VkImage Backbuffer;
VkImageView BackbufferView; VkImageView BackbufferView;
VkFramebuffer Framebuffer; VkFramebuffer Framebuffer;
} ImGui_ImplVulkanH_Frame; };
typedef struct ImGui_ImplVulkanH_FrameSemaphores_t struct ImGui_ImplVulkanH_FrameSemaphores_t
{ {
VkSemaphore ImageAcquiredSemaphore; VkSemaphore ImageAcquiredSemaphore;
VkSemaphore RenderCompleteSemaphore; VkSemaphore RenderCompleteSemaphore;
} ImGui_ImplVulkanH_FrameSemaphores; };
// Helper structure to hold the data needed by one rendering context into one OS window // Helper structure to hold the data needed by one rendering context into one OS window
// (Used by example's main.cpp. Used by multi-viewport features. Probably NOT used by your own engine/app.) // (Used by example's main.cpp. Used by multi-viewport features. Probably NOT used by your own engine/app.)
typedef struct ImGui_ImplVulkanH_Window_t struct ImGui_ImplVulkanH_Window_t
{ {
int Width; int Width;
int Height; int Height;
@ -189,9 +221,9 @@ typedef struct ImGui_ImplVulkanH_Window_t
uint32_t ImageCount; // Number of simultaneous in-flight frames (returned by vkGetSwapchainImagesKHR, usually derived from min_image_count) uint32_t ImageCount; // Number of simultaneous in-flight frames (returned by vkGetSwapchainImagesKHR, usually derived from min_image_count)
uint32_t SemaphoreCount; // Number of simultaneous in-flight frames + 1, to be able to use it in vkAcquireNextImageKHR uint32_t SemaphoreCount; // Number of simultaneous in-flight frames + 1, to be able to use it in vkAcquireNextImageKHR
uint32_t SemaphoreIndex; // Current set of swapchain wait semaphores we're using (needs to be distinct from per frame data) uint32_t SemaphoreIndex; // Current set of swapchain wait semaphores we're using (needs to be distinct from per frame data)
ImGui_ImplVulkanH_Frame* Frames; ImVector<ImGui_ImplVulkanH_Frame> Frames;
ImGui_ImplVulkanH_FrameSemaphores* FrameSemaphores; ImVector<ImGui_ImplVulkanH_FrameSemaphores> FrameSemaphores;
} ImGui_ImplVulkanH_Window; };
#endif// #ifndef IMGUI_DISABLE #endif// #ifndef IMGUI_DISABLE
#ifdef __cplusplus #ifdef __cplusplus
} // End of extern "C" block } // End of extern "C" block

View file

@ -11,7 +11,7 @@
"is_internal": false, "is_internal": false,
"source_location": { "source_location": {
"filename": "imgui_impl_vulkan.h", "filename": "imgui_impl_vulkan.h",
"line": 51 "line": 50
} }
}, },
{ {
@ -25,7 +25,7 @@
"is_internal": false, "is_internal": false,
"source_location": { "source_location": {
"filename": "imgui_impl_vulkan.h", "filename": "imgui_impl_vulkan.h",
"line": 54 "line": 53
} }
}, },
{ {
@ -39,7 +39,19 @@
"is_internal": false, "is_internal": false,
"source_location": { "source_location": {
"filename": "imgui_impl_vulkan.h", "filename": "imgui_impl_vulkan.h",
"line": 64 "line": 63
}
},
{
"name": "IMGUI_IMPL_VULKAN_MINIMUM_IMAGE_SAMPLER_POOL_SIZE",
"content": "8",
"comments": {
"attached": "// Minimum per atlas"
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_vulkan.h",
"line": 67
} }
} }
], ],
@ -54,6 +66,26 @@
"forward_declaration": false, "forward_declaration": false,
"is_anonymous": false, "is_anonymous": false,
"fields": [ "fields": [
{
"name": "ApiVersion",
"is_array": false,
"is_anonymous": false,
"type": {
"declaration": "uint32_t",
"description": {
"kind": "User",
"name": "uint32_t"
}
},
"comments": {
"attached": "// 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)"
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_vulkan.h",
"line": 79
}
},
{ {
"name": "Instance", "name": "Instance",
"is_array": false, "is_array": false,
@ -68,7 +100,7 @@
"is_internal": false, "is_internal": false,
"source_location": { "source_location": {
"filename": "imgui_impl_vulkan.h", "filename": "imgui_impl_vulkan.h",
"line": 74 "line": 80
} }
}, },
{ {
@ -85,7 +117,7 @@
"is_internal": false, "is_internal": false,
"source_location": { "source_location": {
"filename": "imgui_impl_vulkan.h", "filename": "imgui_impl_vulkan.h",
"line": 75 "line": 81
} }
}, },
{ {
@ -102,7 +134,7 @@
"is_internal": false, "is_internal": false,
"source_location": { "source_location": {
"filename": "imgui_impl_vulkan.h", "filename": "imgui_impl_vulkan.h",
"line": 76 "line": 82
} }
}, },
{ {
@ -119,7 +151,7 @@
"is_internal": false, "is_internal": false,
"source_location": { "source_location": {
"filename": "imgui_impl_vulkan.h", "filename": "imgui_impl_vulkan.h",
"line": 77 "line": 83
} }
}, },
{ {
@ -136,7 +168,7 @@
"is_internal": false, "is_internal": false,
"source_location": { "source_location": {
"filename": "imgui_impl_vulkan.h", "filename": "imgui_impl_vulkan.h",
"line": 78 "line": 84
} }
}, },
{ {
@ -151,12 +183,12 @@
} }
}, },
"comments": { "comments": {
"attached": "// See requirements in note above" "attached": "// See requirements in note above; ignored if using DescriptorPoolSize > 0"
}, },
"is_internal": false, "is_internal": false,
"source_location": { "source_location": {
"filename": "imgui_impl_vulkan.h", "filename": "imgui_impl_vulkan.h",
"line": 79 "line": 85
} }
}, },
{ {
@ -176,7 +208,7 @@
"is_internal": false, "is_internal": false,
"source_location": { "source_location": {
"filename": "imgui_impl_vulkan.h", "filename": "imgui_impl_vulkan.h",
"line": 80 "line": 86
} }
}, },
{ {
@ -196,7 +228,7 @@
"is_internal": false, "is_internal": false,
"source_location": { "source_location": {
"filename": "imgui_impl_vulkan.h", "filename": "imgui_impl_vulkan.h",
"line": 81 "line": 87
} }
}, },
{ {
@ -216,7 +248,7 @@
"is_internal": false, "is_internal": false,
"source_location": { "source_location": {
"filename": "imgui_impl_vulkan.h", "filename": "imgui_impl_vulkan.h",
"line": 82 "line": 88
} }
}, },
{ {
@ -236,7 +268,7 @@
"is_internal": false, "is_internal": false,
"source_location": { "source_location": {
"filename": "imgui_impl_vulkan.h", "filename": "imgui_impl_vulkan.h",
"line": 83 "line": 89
} }
}, },
{ {
@ -258,7 +290,7 @@
"is_internal": false, "is_internal": false,
"source_location": { "source_location": {
"filename": "imgui_impl_vulkan.h", "filename": "imgui_impl_vulkan.h",
"line": 86 "line": 92
} }
}, },
{ {
@ -275,7 +307,29 @@
"is_internal": false, "is_internal": false,
"source_location": { "source_location": {
"filename": "imgui_impl_vulkan.h", "filename": "imgui_impl_vulkan.h",
"line": 87 "line": 93
}
},
{
"name": "DescriptorPoolSize",
"is_array": false,
"is_anonymous": false,
"type": {
"declaration": "uint32_t",
"description": {
"kind": "User",
"name": "uint32_t"
}
},
"comments": {
"preceding": [
"// (Optional) Set to create internal descriptor pool instead of using DescriptorPool"
]
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_vulkan.h",
"line": 96
} }
}, },
{ {
@ -298,7 +352,7 @@
"is_internal": false, "is_internal": false,
"source_location": { "source_location": {
"filename": "imgui_impl_vulkan.h", "filename": "imgui_impl_vulkan.h",
"line": 91 "line": 100
} }
}, },
{ {
@ -321,7 +375,7 @@
"is_internal": false, "is_internal": false,
"source_location": { "source_location": {
"filename": "imgui_impl_vulkan.h", "filename": "imgui_impl_vulkan.h",
"line": 93 "line": 102
} }
}, },
{ {
@ -349,7 +403,7 @@
"is_internal": false, "is_internal": false,
"source_location": { "source_location": {
"filename": "imgui_impl_vulkan.h", "filename": "imgui_impl_vulkan.h",
"line": 97 "line": 106
} }
}, },
{ {
@ -430,23 +484,26 @@
"is_internal": false, "is_internal": false,
"source_location": { "source_location": {
"filename": "imgui_impl_vulkan.h", "filename": "imgui_impl_vulkan.h",
"line": 99 "line": 108
} }
} }
], ],
"comments": { "comments": {
"preceding": [ "preceding": [
"// Initialization data, for ImGui_ImplVulkan_Init()", "// Initialization data, for ImGui_ImplVulkan_Init()",
"// - VkDescriptorPool should be created with VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT,", "// [Please zero-clear before use!]",
"// and must contain a pool size large enough to hold an ImGui VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER descriptor.", "// - About descriptor pool:",
"// - When using dynamic rendering, set UseDynamicRendering=true and fill PipelineRenderingCreateInfo structure.", "// - A VkDescriptorPool should be created with VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT,",
"// [Please zero-clear before use!]" "// and must contain a pool size large enough to hold a small number of VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER descriptors.",
"// - As an convenience, by setting DescriptorPoolSize > 0 the backend will create one for you.",
"// - About dynamic rendering:",
"// - When using dynamic rendering, set UseDynamicRendering=true and fill PipelineRenderingCreateInfo structure."
] ]
}, },
"is_internal": false, "is_internal": false,
"source_location": { "source_location": {
"filename": "imgui_impl_vulkan.h", "filename": "imgui_impl_vulkan.h",
"line": 72 "line": 77
} }
}, },
{ {
@ -463,6 +520,79 @@
"line": 1 "line": 1
} }
}, },
{
"name": "ImGui_ImplVulkan_RenderState",
"original_fully_qualified_name": "ImGui_ImplVulkan_RenderState",
"kind": "struct",
"by_value": false,
"forward_declaration": false,
"is_anonymous": false,
"fields": [
{
"name": "CommandBuffer",
"is_array": false,
"is_anonymous": false,
"type": {
"declaration": "VkCommandBuffer",
"description": {
"kind": "User",
"name": "VkCommandBuffer"
}
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_vulkan.h",
"line": 136
}
},
{
"name": "Pipeline",
"is_array": false,
"is_anonymous": false,
"type": {
"declaration": "VkPipeline",
"description": {
"kind": "User",
"name": "VkPipeline"
}
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_vulkan.h",
"line": 137
}
},
{
"name": "PipelineLayout",
"is_array": false,
"is_anonymous": false,
"type": {
"declaration": "VkPipelineLayout",
"description": {
"kind": "User",
"name": "VkPipelineLayout"
}
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_vulkan.h",
"line": 138
}
}
],
"comments": {
"preceding": [
"// [BETA] Selected render state data shared with callbacks.",
"// This is temporarily stored in GetPlatformIO().Renderer_RenderState during the ImGui_ImplVulkan_RenderDrawData() call.",
"// (Please open an issue if you feel you need access to more data)"
]
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_vulkan.h",
"line": 134
}
},
{ {
"name": "ImGui_ImplVulkanH_Frame", "name": "ImGui_ImplVulkanH_Frame",
"original_fully_qualified_name": "ImGui_ImplVulkanH_Frame", "original_fully_qualified_name": "ImGui_ImplVulkanH_Frame",
@ -485,7 +615,7 @@
"is_internal": false, "is_internal": false,
"source_location": { "source_location": {
"filename": "imgui_impl_vulkan.h", "filename": "imgui_impl_vulkan.h",
"line": 152 "line": 180
} }
}, },
{ {
@ -502,7 +632,7 @@
"is_internal": false, "is_internal": false,
"source_location": { "source_location": {
"filename": "imgui_impl_vulkan.h", "filename": "imgui_impl_vulkan.h",
"line": 153 "line": 181
} }
}, },
{ {
@ -519,7 +649,7 @@
"is_internal": false, "is_internal": false,
"source_location": { "source_location": {
"filename": "imgui_impl_vulkan.h", "filename": "imgui_impl_vulkan.h",
"line": 154 "line": 182
} }
}, },
{ {
@ -536,7 +666,7 @@
"is_internal": false, "is_internal": false,
"source_location": { "source_location": {
"filename": "imgui_impl_vulkan.h", "filename": "imgui_impl_vulkan.h",
"line": 155 "line": 183
} }
}, },
{ {
@ -553,7 +683,7 @@
"is_internal": false, "is_internal": false,
"source_location": { "source_location": {
"filename": "imgui_impl_vulkan.h", "filename": "imgui_impl_vulkan.h",
"line": 156 "line": 184
} }
}, },
{ {
@ -570,7 +700,7 @@
"is_internal": false, "is_internal": false,
"source_location": { "source_location": {
"filename": "imgui_impl_vulkan.h", "filename": "imgui_impl_vulkan.h",
"line": 157 "line": 185
} }
} }
], ],
@ -584,7 +714,7 @@
"is_internal": false, "is_internal": false,
"source_location": { "source_location": {
"filename": "imgui_impl_vulkan.h", "filename": "imgui_impl_vulkan.h",
"line": 150 "line": 178
} }
}, },
{ {
@ -609,7 +739,7 @@
"is_internal": false, "is_internal": false,
"source_location": { "source_location": {
"filename": "imgui_impl_vulkan.h", "filename": "imgui_impl_vulkan.h",
"line": 162 "line": 190
} }
}, },
{ {
@ -626,14 +756,14 @@
"is_internal": false, "is_internal": false,
"source_location": { "source_location": {
"filename": "imgui_impl_vulkan.h", "filename": "imgui_impl_vulkan.h",
"line": 163 "line": 191
} }
} }
], ],
"is_internal": false, "is_internal": false,
"source_location": { "source_location": {
"filename": "imgui_impl_vulkan.h", "filename": "imgui_impl_vulkan.h",
"line": 160 "line": 188
} }
}, },
{ {
@ -658,7 +788,7 @@
"is_internal": false, "is_internal": false,
"source_location": { "source_location": {
"filename": "imgui_impl_vulkan.h", "filename": "imgui_impl_vulkan.h",
"line": 170 "line": 198
} }
}, },
{ {
@ -675,7 +805,7 @@
"is_internal": false, "is_internal": false,
"source_location": { "source_location": {
"filename": "imgui_impl_vulkan.h", "filename": "imgui_impl_vulkan.h",
"line": 171 "line": 199
} }
}, },
{ {
@ -692,7 +822,7 @@
"is_internal": false, "is_internal": false,
"source_location": { "source_location": {
"filename": "imgui_impl_vulkan.h", "filename": "imgui_impl_vulkan.h",
"line": 172 "line": 200
} }
}, },
{ {
@ -709,7 +839,7 @@
"is_internal": false, "is_internal": false,
"source_location": { "source_location": {
"filename": "imgui_impl_vulkan.h", "filename": "imgui_impl_vulkan.h",
"line": 173 "line": 201
} }
}, },
{ {
@ -726,7 +856,7 @@
"is_internal": false, "is_internal": false,
"source_location": { "source_location": {
"filename": "imgui_impl_vulkan.h", "filename": "imgui_impl_vulkan.h",
"line": 174 "line": 202
} }
}, },
{ {
@ -743,7 +873,7 @@
"is_internal": false, "is_internal": false,
"source_location": { "source_location": {
"filename": "imgui_impl_vulkan.h", "filename": "imgui_impl_vulkan.h",
"line": 175 "line": 203
} }
}, },
{ {
@ -760,7 +890,7 @@
"is_internal": false, "is_internal": false,
"source_location": { "source_location": {
"filename": "imgui_impl_vulkan.h", "filename": "imgui_impl_vulkan.h",
"line": 176 "line": 204
} }
}, },
{ {
@ -777,7 +907,7 @@
"is_internal": false, "is_internal": false,
"source_location": { "source_location": {
"filename": "imgui_impl_vulkan.h", "filename": "imgui_impl_vulkan.h",
"line": 177 "line": 205
} }
}, },
{ {
@ -794,7 +924,7 @@
"is_internal": false, "is_internal": false,
"source_location": { "source_location": {
"filename": "imgui_impl_vulkan.h", "filename": "imgui_impl_vulkan.h",
"line": 178 "line": 206
} }
}, },
{ {
@ -811,7 +941,7 @@
"is_internal": false, "is_internal": false,
"source_location": { "source_location": {
"filename": "imgui_impl_vulkan.h", "filename": "imgui_impl_vulkan.h",
"line": 179 "line": 207
} }
}, },
{ {
@ -831,7 +961,7 @@
"is_internal": false, "is_internal": false,
"source_location": { "source_location": {
"filename": "imgui_impl_vulkan.h", "filename": "imgui_impl_vulkan.h",
"line": 180 "line": 208
} }
}, },
{ {
@ -851,7 +981,7 @@
"is_internal": false, "is_internal": false,
"source_location": { "source_location": {
"filename": "imgui_impl_vulkan.h", "filename": "imgui_impl_vulkan.h",
"line": 181 "line": 209
} }
}, },
{ {
@ -871,7 +1001,7 @@
"is_internal": false, "is_internal": false,
"source_location": { "source_location": {
"filename": "imgui_impl_vulkan.h", "filename": "imgui_impl_vulkan.h",
"line": 182 "line": 210
} }
}, },
{ {
@ -891,7 +1021,7 @@
"is_internal": false, "is_internal": false,
"source_location": { "source_location": {
"filename": "imgui_impl_vulkan.h", "filename": "imgui_impl_vulkan.h",
"line": 183 "line": 211
} }
}, },
{ {
@ -899,19 +1029,16 @@
"is_array": false, "is_array": false,
"is_anonymous": false, "is_anonymous": false,
"type": { "type": {
"declaration": "ImGui_ImplVulkanH_Frame*", "declaration": "ImVector<ImGui_ImplVulkanH_Frame>",
"description": { "description": {
"kind": "Pointer",
"inner_type": {
"kind": "User", "kind": "User",
"name": "ImGui_ImplVulkanH_Frame" "name": "ImVector<ImGui_ImplVulkanH_Frame>"
}
} }
}, },
"is_internal": false, "is_internal": false,
"source_location": { "source_location": {
"filename": "imgui_impl_vulkan.h", "filename": "imgui_impl_vulkan.h",
"line": 184 "line": 212
} }
}, },
{ {
@ -919,19 +1046,16 @@
"is_array": false, "is_array": false,
"is_anonymous": false, "is_anonymous": false,
"type": { "type": {
"declaration": "ImGui_ImplVulkanH_FrameSemaphores*", "declaration": "ImVector<ImGui_ImplVulkanH_FrameSemaphores>",
"description": { "description": {
"kind": "Pointer",
"inner_type": {
"kind": "User", "kind": "User",
"name": "ImGui_ImplVulkanH_FrameSemaphores" "name": "ImVector<ImGui_ImplVulkanH_FrameSemaphores>"
}
} }
}, },
"is_internal": false, "is_internal": false,
"source_location": { "source_location": {
"filename": "imgui_impl_vulkan.h", "filename": "imgui_impl_vulkan.h",
"line": 185 "line": 213
} }
} }
], ],
@ -944,7 +1068,7 @@
"is_internal": false, "is_internal": false,
"source_location": { "source_location": {
"filename": "imgui_impl_vulkan.h", "filename": "imgui_impl_vulkan.h",
"line": 168 "line": 196
} }
} }
], ],
@ -982,6 +1106,7 @@
"is_imstr_helper": false, "is_imstr_helper": false,
"has_imstr_helper": false, "has_imstr_helper": false,
"is_unformatted_helper": false, "is_unformatted_helper": false,
"is_static": false,
"comments": { "comments": {
"preceding": [ "preceding": [
"// Follow \"Getting Started\" link and check examples/ folder to learn about using backends!" "// Follow \"Getting Started\" link and check examples/ folder to learn about using backends!"
@ -990,7 +1115,7 @@
"is_internal": false, "is_internal": false,
"source_location": { "source_location": {
"filename": "imgui_impl_vulkan.h", "filename": "imgui_impl_vulkan.h",
"line": 103 "line": 112
} }
}, },
{ {
@ -1009,10 +1134,11 @@
"is_imstr_helper": false, "is_imstr_helper": false,
"has_imstr_helper": false, "has_imstr_helper": false,
"is_unformatted_helper": false, "is_unformatted_helper": false,
"is_static": false,
"is_internal": false, "is_internal": false,
"source_location": { "source_location": {
"filename": "imgui_impl_vulkan.h", "filename": "imgui_impl_vulkan.h",
"line": 104 "line": 113
} }
}, },
{ {
@ -1031,10 +1157,11 @@
"is_imstr_helper": false, "is_imstr_helper": false,
"has_imstr_helper": false, "has_imstr_helper": false,
"is_unformatted_helper": false, "is_unformatted_helper": false,
"is_static": false,
"is_internal": false, "is_internal": false,
"source_location": { "source_location": {
"filename": "imgui_impl_vulkan.h", "filename": "imgui_impl_vulkan.h",
"line": 105 "line": 114
} }
}, },
{ {
@ -1083,13 +1210,14 @@
"is_imstr_helper": false, "is_imstr_helper": false,
"has_imstr_helper": false, "has_imstr_helper": false,
"is_unformatted_helper": false, "is_unformatted_helper": false,
"is_static": false,
"comments": { "comments": {
"attached": "// Implied pipeline = VK_NULL_HANDLE" "attached": "// Implied pipeline = VK_NULL_HANDLE"
}, },
"is_internal": false, "is_internal": false,
"source_location": { "source_location": {
"filename": "imgui_impl_vulkan.h", "filename": "imgui_impl_vulkan.h",
"line": 106 "line": 115
} }
}, },
{ {
@ -1152,54 +1280,11 @@
"is_imstr_helper": false, "is_imstr_helper": false,
"has_imstr_helper": false, "has_imstr_helper": false,
"is_unformatted_helper": false, "is_unformatted_helper": false,
"is_static": false,
"is_internal": false, "is_internal": false,
"source_location": { "source_location": {
"filename": "imgui_impl_vulkan.h", "filename": "imgui_impl_vulkan.h",
"line": 106 "line": 115
}
},
{
"name": "cImGui_ImplVulkan_CreateFontsTexture",
"original_fully_qualified_name": "ImGui_ImplVulkan_CreateFontsTexture",
"return_type": {
"declaration": "bool",
"description": {
"kind": "Builtin",
"builtin_type": "bool"
}
},
"arguments": [],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_internal": false,
"source_location": {
"filename": "imgui_impl_vulkan.h",
"line": 107
}
},
{
"name": "cImGui_ImplVulkan_DestroyFontsTexture",
"original_fully_qualified_name": "ImGui_ImplVulkan_DestroyFontsTexture",
"return_type": {
"declaration": "void",
"description": {
"kind": "Builtin",
"builtin_type": "void"
}
},
"arguments": [],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_internal": false,
"source_location": {
"filename": "imgui_impl_vulkan.h",
"line": 108
} }
}, },
{ {
@ -1232,13 +1317,59 @@
"is_imstr_helper": false, "is_imstr_helper": false,
"has_imstr_helper": false, "has_imstr_helper": false,
"is_unformatted_helper": false, "is_unformatted_helper": false,
"is_static": false,
"comments": { "comments": {
"attached": "// To override MinImageCount after initialization (e.g. if swap chain is recreated)" "attached": "// To override MinImageCount after initialization (e.g. if swap chain is recreated)"
}, },
"is_internal": false, "is_internal": false,
"source_location": { "source_location": {
"filename": "imgui_impl_vulkan.h", "filename": "imgui_impl_vulkan.h",
"line": 109 "line": 116
}
},
{
"name": "cImGui_ImplVulkan_UpdateTexture",
"original_fully_qualified_name": "ImGui_ImplVulkan_UpdateTexture",
"return_type": {
"declaration": "void",
"description": {
"kind": "Builtin",
"builtin_type": "void"
}
},
"arguments": [
{
"name": "tex",
"type": {
"declaration": "ImTextureData*",
"description": {
"kind": "Pointer",
"inner_type": {
"kind": "User",
"name": "ImTextureData"
}
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
}
],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"comments": {
"preceding": [
"// (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."
]
},
"is_internal": false,
"source_location": {
"filename": "imgui_impl_vulkan.h",
"line": 119
} }
}, },
{ {
@ -1297,6 +1428,7 @@
"is_imstr_helper": false, "is_imstr_helper": false,
"has_imstr_helper": false, "has_imstr_helper": false,
"is_unformatted_helper": false, "is_unformatted_helper": false,
"is_static": false,
"comments": { "comments": {
"preceding": [ "preceding": [
"// Register a texture (VkDescriptorSet == ImTextureID)", "// Register a texture (VkDescriptorSet == ImTextureID)",
@ -1307,7 +1439,7 @@
"is_internal": false, "is_internal": false,
"source_location": { "source_location": {
"filename": "imgui_impl_vulkan.h", "filename": "imgui_impl_vulkan.h",
"line": 114 "line": 124
} }
}, },
{ {
@ -1340,10 +1472,11 @@
"is_imstr_helper": false, "is_imstr_helper": false,
"has_imstr_helper": false, "has_imstr_helper": false,
"is_unformatted_helper": false, "is_unformatted_helper": false,
"is_static": false,
"is_internal": false, "is_internal": false,
"source_location": { "source_location": {
"filename": "imgui_impl_vulkan.h", "filename": "imgui_impl_vulkan.h",
"line": 115 "line": 125
} }
}, },
{ {
@ -1357,6 +1490,19 @@
} }
}, },
"arguments": [ "arguments": [
{
"name": "api_version",
"type": {
"declaration": "uint32_t",
"description": {
"kind": "User",
"name": "uint32_t"
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
},
{ {
"name": "loader_func", "name": "loader_func",
"type": { "type": {
@ -1460,6 +1606,7 @@
"is_imstr_helper": false, "is_imstr_helper": false,
"has_imstr_helper": false, "has_imstr_helper": false,
"is_unformatted_helper": false, "is_unformatted_helper": false,
"is_static": false,
"comments": { "comments": {
"preceding": [ "preceding": [
"// Optional: load Vulkan functions with a custom function loader", "// Optional: load Vulkan functions with a custom function loader",
@ -1470,7 +1617,7 @@
"is_internal": false, "is_internal": false,
"source_location": { "source_location": {
"filename": "imgui_impl_vulkan.h", "filename": "imgui_impl_vulkan.h",
"line": 119 "line": 129
} }
}, },
{ {
@ -1484,6 +1631,19 @@
} }
}, },
"arguments": [ "arguments": [
{
"name": "api_version",
"type": {
"declaration": "uint32_t",
"description": {
"kind": "User",
"name": "uint32_t"
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
},
{ {
"name": "loader_func", "name": "loader_func",
"type": { "type": {
@ -1604,10 +1764,11 @@
"is_imstr_helper": false, "is_imstr_helper": false,
"has_imstr_helper": false, "has_imstr_helper": false,
"is_unformatted_helper": false, "is_unformatted_helper": false,
"is_static": false,
"is_internal": false, "is_internal": false,
"source_location": { "source_location": {
"filename": "imgui_impl_vulkan.h", "filename": "imgui_impl_vulkan.h",
"line": 119 "line": 129
} }
}, },
{ {
@ -1753,6 +1914,7 @@
"is_imstr_helper": false, "is_imstr_helper": false,
"has_imstr_helper": false, "has_imstr_helper": false,
"is_unformatted_helper": false, "is_unformatted_helper": false,
"is_static": false,
"comments": { "comments": {
"preceding": [ "preceding": [
"// Helpers" "// Helpers"
@ -1761,7 +1923,7 @@
"is_internal": false, "is_internal": false,
"source_location": { "source_location": {
"filename": "imgui_impl_vulkan.h", "filename": "imgui_impl_vulkan.h",
"line": 141 "line": 167
} }
}, },
{ {
@ -1842,10 +2004,11 @@
"is_imstr_helper": false, "is_imstr_helper": false,
"has_imstr_helper": false, "has_imstr_helper": false,
"is_unformatted_helper": false, "is_unformatted_helper": false,
"is_static": false,
"is_internal": false, "is_internal": false,
"source_location": { "source_location": {
"filename": "imgui_impl_vulkan.h", "filename": "imgui_impl_vulkan.h",
"line": 142 "line": 168
} }
}, },
{ {
@ -1936,10 +2099,11 @@
"is_imstr_helper": false, "is_imstr_helper": false,
"has_imstr_helper": false, "has_imstr_helper": false,
"is_unformatted_helper": false, "is_unformatted_helper": false,
"is_static": false,
"is_internal": false, "is_internal": false,
"source_location": { "source_location": {
"filename": "imgui_impl_vulkan.h", "filename": "imgui_impl_vulkan.h",
"line": 143 "line": 169
} }
}, },
{ {
@ -2017,10 +2181,85 @@
"is_imstr_helper": false, "is_imstr_helper": false,
"has_imstr_helper": false, "has_imstr_helper": false,
"is_unformatted_helper": false, "is_unformatted_helper": false,
"is_static": false,
"is_internal": false, "is_internal": false,
"source_location": { "source_location": {
"filename": "imgui_impl_vulkan.h", "filename": "imgui_impl_vulkan.h",
"line": 144 "line": 170
}
},
{
"name": "cImGui_ImplVulkanH_SelectPhysicalDevice",
"original_fully_qualified_name": "ImGui_ImplVulkanH_SelectPhysicalDevice",
"return_type": {
"declaration": "VkPhysicalDevice",
"description": {
"kind": "User",
"name": "VkPhysicalDevice"
}
},
"arguments": [
{
"name": "instance",
"type": {
"declaration": "VkInstance",
"description": {
"kind": "User",
"name": "VkInstance"
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
}
],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"is_internal": false,
"source_location": {
"filename": "imgui_impl_vulkan.h",
"line": 171
}
},
{
"name": "cImGui_ImplVulkanH_SelectQueueFamilyIndex",
"original_fully_qualified_name": "ImGui_ImplVulkanH_SelectQueueFamilyIndex",
"return_type": {
"declaration": "uint32_t",
"description": {
"kind": "User",
"name": "uint32_t"
}
},
"arguments": [
{
"name": "physical_device",
"type": {
"declaration": "VkPhysicalDevice",
"description": {
"kind": "User",
"name": "VkPhysicalDevice"
}
},
"is_array": false,
"is_varargs": false,
"is_instance_pointer": false
}
],
"is_default_argument_helper": false,
"is_manual_helper": false,
"is_imstr_helper": false,
"has_imstr_helper": false,
"is_unformatted_helper": false,
"is_static": false,
"is_internal": false,
"source_location": {
"filename": "imgui_impl_vulkan.h",
"line": 172
} }
}, },
{ {
@ -2053,10 +2292,11 @@
"is_imstr_helper": false, "is_imstr_helper": false,
"has_imstr_helper": false, "has_imstr_helper": false,
"is_unformatted_helper": false, "is_unformatted_helper": false,
"is_static": false,
"is_internal": false, "is_internal": false,
"source_location": { "source_location": {
"filename": "imgui_impl_vulkan.h", "filename": "imgui_impl_vulkan.h",
"line": 145 "line": 173
} }
} }
] ]

View file

@ -0,0 +1,7 @@
{
"defines": [],
"enums": [],
"typedefs": [],
"structs": [],
"functions": []
}