Examples: imgui_impl_vulkan: Comments

This commit is contained in:
omar 2018-08-22 16:43:29 +02:00
parent ea9f5d7600
commit 3fdfac3377
2 changed files with 27 additions and 13 deletions

View File

@ -8,6 +8,9 @@
// If you are new to dear imgui, read examples/README.txt and read the documentation at the top of imgui.cpp. // If you are new to dear imgui, read examples/README.txt and read the documentation at the top of imgui.cpp.
// https://github.com/ocornut/imgui // https://github.com/ocornut/imgui
// 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/
// CHANGELOG // CHANGELOG
// (minor and older changes stripped away, please see git history for details) // (minor and older changes stripped away, please see git history for details)
// 2018-06-22: Inverted the parameters to ImGui_ImplVulkan_RenderDrawData() to be consistent with other bindings. // 2018-06-22: Inverted the parameters to ImGui_ImplVulkan_RenderDrawData() to be consistent with other bindings.
@ -214,8 +217,8 @@ void ImGui_ImplVulkan_RenderDrawData(ImDrawData* draw_data, VkCommandBuffer comm
// Upload Vertex and index Data: // Upload Vertex and index Data:
{ {
ImDrawVert* vtx_dst; ImDrawVert* vtx_dst = NULL;
ImDrawIdx* idx_dst; ImDrawIdx* idx_dst = NULL;
err = vkMapMemory(g_Device, fd->VertexBufferMemory, 0, vertex_size, 0, (void**)(&vtx_dst)); err = vkMapMemory(g_Device, fd->VertexBufferMemory, 0, vertex_size, 0, (void**)(&vtx_dst));
check_vk_result(err); check_vk_result(err);
err = vkMapMemory(g_Device, fd->IndexBufferMemory, 0, index_size, 0, (void**)(&idx_dst)); err = vkMapMemory(g_Device, fd->IndexBufferMemory, 0, index_size, 0, (void**)(&idx_dst));
@ -724,7 +727,13 @@ void ImGui_ImplVulkan_NewFrame()
} }
//------------------------------------------------------------------------- //-------------------------------------------------------------------------
// Miscellaneous Vulkan Helpers // Optional / Miscellaneous Vulkan Helpers
//-------------------------------------------------------------------------
// - Those functions do NOT use any of the state used/affected by the regular ImGui_ImplVulkan_XXX functions.
// - If your application/engine already has code to create all that stuff (swap chain, render pass, frame buffers, etc.) you may ignore those.
// - Those functions are used by the example main.cpp and will be used by imgui_impl_vulkan.cpp in the upcoming multi-viewport branch (1.70).
// Generally we try to not provide any kind of superfluous high-level helpers in the examples, but it is too much code to duplicate
// in the main.cpp of every examples. Since the upcoming multi-viewport will need these, we include them here.
//------------------------------------------------------------------------- //-------------------------------------------------------------------------
#include <stdlib.h> // malloc #include <stdlib.h> // malloc

View File

@ -8,6 +8,9 @@
// If you are new to dear imgui, read examples/README.txt and read the documentation at the top of imgui.cpp. // If you are new to dear imgui, read examples/README.txt and read the documentation at the top of imgui.cpp.
// https://github.com/ocornut/imgui // https://github.com/ocornut/imgui
// 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/
#include <vulkan/vulkan.h> #include <vulkan/vulkan.h>
#define IMGUI_VK_QUEUED_FRAMES 2 #define IMGUI_VK_QUEUED_FRAMES 2
@ -25,24 +28,26 @@ struct ImGui_ImplVulkan_InitInfo
void (*CheckVkResultFn)(VkResult err); void (*CheckVkResultFn)(VkResult err);
}; };
// Called by user code
IMGUI_IMPL_API bool ImGui_ImplVulkan_Init(ImGui_ImplVulkan_InitInfo* info, VkRenderPass render_pass); IMGUI_IMPL_API bool ImGui_ImplVulkan_Init(ImGui_ImplVulkan_InitInfo* info, VkRenderPass render_pass);
IMGUI_IMPL_API void ImGui_ImplVulkan_Shutdown(); IMGUI_IMPL_API void ImGui_ImplVulkan_Shutdown();
IMGUI_IMPL_API void ImGui_ImplVulkan_NewFrame(); IMGUI_IMPL_API void ImGui_ImplVulkan_NewFrame();
IMGUI_IMPL_API void ImGui_ImplVulkan_RenderDrawData(ImDrawData* draw_data, VkCommandBuffer command_buffer); IMGUI_IMPL_API void ImGui_ImplVulkan_RenderDrawData(ImDrawData* draw_data, VkCommandBuffer command_buffer);
// Called by Init/NewFrame/Shutdown
IMGUI_IMPL_API void ImGui_ImplVulkan_InvalidateFontUploadObjects();
IMGUI_IMPL_API void ImGui_ImplVulkan_InvalidateDeviceObjects();
IMGUI_IMPL_API bool ImGui_ImplVulkan_CreateFontsTexture(VkCommandBuffer command_buffer); IMGUI_IMPL_API bool ImGui_ImplVulkan_CreateFontsTexture(VkCommandBuffer command_buffer);
IMGUI_IMPL_API void ImGui_ImplVulkan_InvalidateFontUploadObjects();
// Called by ImGui_ImplVulkan_Init()
IMGUI_IMPL_API bool ImGui_ImplVulkan_CreateDeviceObjects(); IMGUI_IMPL_API bool ImGui_ImplVulkan_CreateDeviceObjects();
IMGUI_IMPL_API void ImGui_ImplVulkan_InvalidateDeviceObjects();
//------------------------------------------------------------------------- //-------------------------------------------------------------------------
// Miscellaneous Vulkan Helpers // Optional / Miscellaneous Vulkan Helpers
// Generally we try to NOT provide any kind of superfluous high-level helpers in the examples.
// But for the upcoming multi-viewport feature, the Vulkan will need this code anyway, so we decided to shared it and use it in the examples' main.cpp
// If your application/engine already has code to create all that data (swap chain, render pass, frame buffers, etc.) you can ignore all of this.
//------------------------------------------------------------------------- //-------------------------------------------------------------------------
// NB: Those functions do NOT use any of the state used/affected by the regular ImGui_ImplVulkan_XXX functions. // - Those functions do NOT use any of the state used/affected by the regular ImGui_ImplVulkan_XXX functions.
// - If your application/engine already has code to create all that stuff (swap chain, render pass, frame buffers, etc.) you may ignore those.
// - Those functions are used by the example main.cpp and will be used by imgui_impl_vulkan.cpp in the upcoming multi-viewport branch (1.70).
// Generally we try to not provide any kind of superfluous high-level helpers in the examples, but it is too much code to duplicate
// in the main.cpp of every examples. Since the upcoming multi-viewport will need these, we include them here.
//------------------------------------------------------------------------- //-------------------------------------------------------------------------
struct ImGui_ImplVulkanH_FrameData; struct ImGui_ImplVulkanH_FrameData;