imgui_impl_vulkan.h 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. // ImGui Renderer for: Vulkan
  2. // This needs to be used along with a Platform Binding (e.g. GLFW, SDL, Win32, custom..)
  3. // Missing features:
  4. // [ ] User texture binding. Changes of ImTextureID aren't supported by this binding! See https://github.com/ocornut/imgui/pull/914
  5. // You can copy and use unmodified imgui_impl_* files in your project. See main.cpp for an example of using this.
  6. // If you use this binding you'll need to call 5 functions: ImGui_ImplXXXX_Init(), ImGui_ImplXXX_CreateFontsTexture(), ImGui_ImplXXXX_NewFrame(), ImGui_ImplXXXX_Render() and ImGui_ImplXXXX_Shutdown().
  7. // If you are new to ImGui, see examples/README.txt and documentation at the top of imgui.cpp.
  8. // https://github.com/ocornut/imgui
  9. #include <vulkan/vulkan.h>
  10. #define IMGUI_VK_QUEUED_FRAMES 2
  11. struct ImGui_ImplVulkan_InitInfo
  12. {
  13. const VkAllocationCallbacks* Allocator;
  14. VkPhysicalDevice PhysicalDevice;
  15. VkDevice Device;
  16. VkRenderPass RenderPass;
  17. VkPipelineCache PipelineCache;
  18. VkDescriptorPool DescriptorPool;
  19. void (*CheckVkResultFn)(VkResult err);
  20. };
  21. IMGUI_API bool ImGui_ImplVulkan_Init(ImGui_ImplVulkan_InitInfo *init_data);
  22. IMGUI_API void ImGui_ImplVulkan_Shutdown();
  23. IMGUI_API void ImGui_ImplVulkan_NewFrame();
  24. IMGUI_API void ImGui_ImplVulkan_Render(VkCommandBuffer command_buffer);
  25. // Called by Init/NewFrame/Shutdown
  26. IMGUI_API void ImGui_ImplVulkan_InvalidateFontUploadObjects();
  27. IMGUI_API void ImGui_ImplVulkan_InvalidateDeviceObjects();
  28. IMGUI_API bool ImGui_ImplVulkan_CreateFontsTexture(VkCommandBuffer command_buffer);
  29. IMGUI_API bool ImGui_ImplVulkan_CreateDeviceObjects();
  30. // Miscellaneous Vulkan Helpers
  31. IMGUI_API VkSurfaceFormatKHR ImGui_ImplVulkan_SelectSurfaceFormat(VkPhysicalDevice physical_device, VkSurfaceKHR surface, const VkFormat* request_formats, int request_formats_count, VkColorSpaceKHR request_color_space);
  32. IMGUI_API VkPresentModeKHR ImGui_ImplVulkan_SelectPresentMode(VkPhysicalDevice physical_device, VkSurfaceKHR surface, const VkPresentModeKHR* request_modes, int request_modes_count);