Merge branch 'master' into docking
# Conflicts: # examples/example_glfw_vulkan/main.cpp # examples/example_sdl_vulkan/main.cpp # imgui.cpp # imgui_internal.h
This commit is contained in:
commit
36c331ff74
@ -43,8 +43,6 @@ static VkDescriptorPool g_DescriptorPool = VK_NULL_HANDLE;
|
|||||||
static ImGui_ImplVulkanH_Window g_MainWindowData;
|
static ImGui_ImplVulkanH_Window g_MainWindowData;
|
||||||
static int g_MinImageCount = 2;
|
static int g_MinImageCount = 2;
|
||||||
static bool g_SwapChainRebuild = false;
|
static bool g_SwapChainRebuild = false;
|
||||||
static int g_SwapChainResizeWidth = 0;
|
|
||||||
static int g_SwapChainResizeHeight = 0;
|
|
||||||
|
|
||||||
static void check_vk_result(VkResult err)
|
static void check_vk_result(VkResult err)
|
||||||
{
|
{
|
||||||
@ -255,6 +253,11 @@ static void FrameRender(ImGui_ImplVulkanH_Window* wd, ImDrawData* draw_data)
|
|||||||
VkSemaphore image_acquired_semaphore = wd->FrameSemaphores[wd->SemaphoreIndex].ImageAcquiredSemaphore;
|
VkSemaphore image_acquired_semaphore = wd->FrameSemaphores[wd->SemaphoreIndex].ImageAcquiredSemaphore;
|
||||||
VkSemaphore render_complete_semaphore = wd->FrameSemaphores[wd->SemaphoreIndex].RenderCompleteSemaphore;
|
VkSemaphore render_complete_semaphore = wd->FrameSemaphores[wd->SemaphoreIndex].RenderCompleteSemaphore;
|
||||||
err = vkAcquireNextImageKHR(g_Device, wd->Swapchain, UINT64_MAX, image_acquired_semaphore, VK_NULL_HANDLE, &wd->FrameIndex);
|
err = vkAcquireNextImageKHR(g_Device, wd->Swapchain, UINT64_MAX, image_acquired_semaphore, VK_NULL_HANDLE, &wd->FrameIndex);
|
||||||
|
if (err == VK_ERROR_OUT_OF_DATE_KHR)
|
||||||
|
{
|
||||||
|
g_SwapChainRebuild = true;
|
||||||
|
return;
|
||||||
|
}
|
||||||
check_vk_result(err);
|
check_vk_result(err);
|
||||||
|
|
||||||
ImGui_ImplVulkanH_Frame* fd = &wd->Frames[wd->FrameIndex];
|
ImGui_ImplVulkanH_Frame* fd = &wd->Frames[wd->FrameIndex];
|
||||||
@ -310,8 +313,10 @@ static void FrameRender(ImGui_ImplVulkanH_Window* wd, ImDrawData* draw_data)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void FramePresent(ImGui_ImplVulkanH_Window* wd, GLFWwindow* window)
|
static void FramePresent(ImGui_ImplVulkanH_Window* wd)
|
||||||
{
|
{
|
||||||
|
if (g_SwapChainRebuild)
|
||||||
|
return;
|
||||||
VkSemaphore render_complete_semaphore = wd->FrameSemaphores[wd->SemaphoreIndex].RenderCompleteSemaphore;
|
VkSemaphore render_complete_semaphore = wd->FrameSemaphores[wd->SemaphoreIndex].RenderCompleteSemaphore;
|
||||||
VkPresentInfoKHR info = {};
|
VkPresentInfoKHR info = {};
|
||||||
info.sType = VK_STRUCTURE_TYPE_PRESENT_INFO_KHR;
|
info.sType = VK_STRUCTURE_TYPE_PRESENT_INFO_KHR;
|
||||||
@ -323,7 +328,6 @@ static void FramePresent(ImGui_ImplVulkanH_Window* wd, GLFWwindow* window)
|
|||||||
VkResult err = vkQueuePresentKHR(g_Queue, &info);
|
VkResult err = vkQueuePresentKHR(g_Queue, &info);
|
||||||
if (err == VK_ERROR_OUT_OF_DATE_KHR)
|
if (err == VK_ERROR_OUT_OF_DATE_KHR)
|
||||||
{
|
{
|
||||||
glfwGetFramebufferSize(window, &g_SwapChainResizeWidth, &g_SwapChainResizeHeight);
|
|
||||||
g_SwapChainRebuild = true;
|
g_SwapChainRebuild = true;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -467,12 +471,17 @@ int main(int, char**)
|
|||||||
glfwPollEvents();
|
glfwPollEvents();
|
||||||
|
|
||||||
// Resize swap chain?
|
// Resize swap chain?
|
||||||
if (g_SwapChainRebuild && g_SwapChainResizeWidth > 0 && g_SwapChainResizeHeight > 0)
|
if (g_SwapChainRebuild)
|
||||||
{
|
{
|
||||||
g_SwapChainRebuild = false;
|
int width, height;
|
||||||
ImGui_ImplVulkan_SetMinImageCount(g_MinImageCount);
|
glfwGetFramebufferSize(window, &width, &height);
|
||||||
ImGui_ImplVulkanH_CreateOrResizeWindow(g_Instance, g_PhysicalDevice, g_Device, &g_MainWindowData, g_QueueFamily, g_Allocator, g_SwapChainResizeWidth, g_SwapChainResizeHeight, g_MinImageCount);
|
if (width > 0 && height > 0)
|
||||||
g_MainWindowData.FrameIndex = 0;
|
{
|
||||||
|
ImGui_ImplVulkan_SetMinImageCount(g_MinImageCount);
|
||||||
|
ImGui_ImplVulkanH_CreateOrResizeWindow(g_Instance, g_PhysicalDevice, g_Device, &g_MainWindowData, g_QueueFamily, g_Allocator, width, height, g_MinImageCount);
|
||||||
|
g_MainWindowData.FrameIndex = 0;
|
||||||
|
g_SwapChainRebuild = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Start the Dear ImGui frame
|
// Start the Dear ImGui frame
|
||||||
|
@ -35,8 +35,6 @@ static VkDescriptorPool g_DescriptorPool = VK_NULL_HANDLE;
|
|||||||
static ImGui_ImplVulkanH_Window g_MainWindowData;
|
static ImGui_ImplVulkanH_Window g_MainWindowData;
|
||||||
static uint32_t g_MinImageCount = 2;
|
static uint32_t g_MinImageCount = 2;
|
||||||
static bool g_SwapChainRebuild = false;
|
static bool g_SwapChainRebuild = false;
|
||||||
static int g_SwapChainResizeWidth = 0;
|
|
||||||
static int g_SwapChainResizeHeight = 0;
|
|
||||||
|
|
||||||
static void check_vk_result(VkResult err)
|
static void check_vk_result(VkResult err)
|
||||||
{
|
{
|
||||||
@ -247,6 +245,11 @@ static void FrameRender(ImGui_ImplVulkanH_Window* wd, ImDrawData* draw_data)
|
|||||||
VkSemaphore image_acquired_semaphore = wd->FrameSemaphores[wd->SemaphoreIndex].ImageAcquiredSemaphore;
|
VkSemaphore image_acquired_semaphore = wd->FrameSemaphores[wd->SemaphoreIndex].ImageAcquiredSemaphore;
|
||||||
VkSemaphore render_complete_semaphore = wd->FrameSemaphores[wd->SemaphoreIndex].RenderCompleteSemaphore;
|
VkSemaphore render_complete_semaphore = wd->FrameSemaphores[wd->SemaphoreIndex].RenderCompleteSemaphore;
|
||||||
err = vkAcquireNextImageKHR(g_Device, wd->Swapchain, UINT64_MAX, image_acquired_semaphore, VK_NULL_HANDLE, &wd->FrameIndex);
|
err = vkAcquireNextImageKHR(g_Device, wd->Swapchain, UINT64_MAX, image_acquired_semaphore, VK_NULL_HANDLE, &wd->FrameIndex);
|
||||||
|
if (err == VK_ERROR_OUT_OF_DATE_KHR)
|
||||||
|
{
|
||||||
|
g_SwapChainRebuild = true;
|
||||||
|
return;
|
||||||
|
}
|
||||||
check_vk_result(err);
|
check_vk_result(err);
|
||||||
|
|
||||||
ImGui_ImplVulkanH_Frame* fd = &wd->Frames[wd->FrameIndex];
|
ImGui_ImplVulkanH_Frame* fd = &wd->Frames[wd->FrameIndex];
|
||||||
@ -302,8 +305,10 @@ static void FrameRender(ImGui_ImplVulkanH_Window* wd, ImDrawData* draw_data)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void FramePresent(ImGui_ImplVulkanH_Window* wd, SDL_Window* window)
|
static void FramePresent(ImGui_ImplVulkanH_Window* wd)
|
||||||
{
|
{
|
||||||
|
if (g_SwapChainRebuild)
|
||||||
|
return;
|
||||||
VkSemaphore render_complete_semaphore = wd->FrameSemaphores[wd->SemaphoreIndex].RenderCompleteSemaphore;
|
VkSemaphore render_complete_semaphore = wd->FrameSemaphores[wd->SemaphoreIndex].RenderCompleteSemaphore;
|
||||||
VkPresentInfoKHR info = {};
|
VkPresentInfoKHR info = {};
|
||||||
info.sType = VK_STRUCTURE_TYPE_PRESENT_INFO_KHR;
|
info.sType = VK_STRUCTURE_TYPE_PRESENT_INFO_KHR;
|
||||||
@ -315,7 +320,6 @@ static void FramePresent(ImGui_ImplVulkanH_Window* wd, SDL_Window* window)
|
|||||||
VkResult err = vkQueuePresentKHR(g_Queue, &info);
|
VkResult err = vkQueuePresentKHR(g_Queue, &info);
|
||||||
if (err == VK_ERROR_OUT_OF_DATE_KHR)
|
if (err == VK_ERROR_OUT_OF_DATE_KHR)
|
||||||
{
|
{
|
||||||
SDL_GetWindowSize(window, &g_SwapChainResizeWidth, &g_SwapChainResizeHeight);
|
|
||||||
g_SwapChainRebuild = true;
|
g_SwapChainRebuild = true;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -466,12 +470,17 @@ int main(int, char**)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Resize swap chain?
|
// Resize swap chain?
|
||||||
if (g_SwapChainRebuild && g_SwapChainResizeWidth > 0 && g_SwapChainResizeHeight > 0)
|
if (g_SwapChainRebuild)
|
||||||
{
|
{
|
||||||
g_SwapChainRebuild = false;
|
int width, height;
|
||||||
ImGui_ImplVulkan_SetMinImageCount(g_MinImageCount);
|
SDL_GetWindowSize(window, &width, &height);
|
||||||
ImGui_ImplVulkanH_CreateOrResizeWindow(g_Instance, g_PhysicalDevice, g_Device, &g_MainWindowData, g_QueueFamily, g_Allocator, g_SwapChainResizeWidth, g_SwapChainResizeHeight, g_MinImageCount);
|
if (width > 0 && height > 0)
|
||||||
g_MainWindowData.FrameIndex = 0;
|
{
|
||||||
|
ImGui_ImplVulkan_SetMinImageCount(g_MinImageCount);
|
||||||
|
ImGui_ImplVulkanH_CreateOrResizeWindow(g_Instance, g_PhysicalDevice, g_Device, &g_MainWindowData, g_QueueFamily, g_Allocator, width, height, g_MinImageCount);
|
||||||
|
g_MainWindowData.FrameIndex = 0;
|
||||||
|
g_SwapChainRebuild = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Start the Dear ImGui frame
|
// Start the Dear ImGui frame
|
||||||
|
38
imgui.cpp
38
imgui.cpp
@ -853,6 +853,7 @@ static void NavUpdate();
|
|||||||
static void NavUpdateWindowing();
|
static void NavUpdateWindowing();
|
||||||
static void NavUpdateWindowingOverlay();
|
static void NavUpdateWindowingOverlay();
|
||||||
static void NavUpdateMoveResult();
|
static void NavUpdateMoveResult();
|
||||||
|
static void NavUpdateInitResult();
|
||||||
static float NavUpdatePageUpPageDown();
|
static float NavUpdatePageUpPageDown();
|
||||||
static inline void NavUpdateAnyRequestFlag();
|
static inline void NavUpdateAnyRequestFlag();
|
||||||
static void NavEndFrame();
|
static void NavEndFrame();
|
||||||
@ -9187,7 +9188,7 @@ void ImGui::NavInitWindow(ImGuiWindow* window, bool force_reinit)
|
|||||||
if (!(window->Flags & ImGuiWindowFlags_NoNavInputs))
|
if (!(window->Flags & ImGuiWindowFlags_NoNavInputs))
|
||||||
if (!(window->Flags & ImGuiWindowFlags_ChildWindow) || (window->Flags & ImGuiWindowFlags_Popup) || (window->NavLastIds[0] == 0) || force_reinit)
|
if (!(window->Flags & ImGuiWindowFlags_ChildWindow) || (window->Flags & ImGuiWindowFlags_Popup) || (window->NavLastIds[0] == 0) || force_reinit)
|
||||||
init_for_nav = true;
|
init_for_nav = true;
|
||||||
//IMGUI_DEBUG_LOG("[Nav] NavInitWindow() init_for_nav=%d, window=\"%s\", layer=%d\n", init_for_nav, window->Name, g.NavLayer);
|
IMGUI_DEBUG_LOG_NAV("[nav] NavInitRequest: from NavInitWindow(), init_for_nav=%d, window=\"%s\", layer=%d\n", init_for_nav, window->Name, g.NavLayer);
|
||||||
if (init_for_nav)
|
if (init_for_nav)
|
||||||
{
|
{
|
||||||
SetNavID(0, g.NavLayer, 0);
|
SetNavID(0, g.NavLayer, 0);
|
||||||
@ -9309,17 +9310,8 @@ static void ImGui::NavUpdate()
|
|||||||
io.NavInputsDownDuration[i] = (io.NavInputs[i] > 0.0f) ? (io.NavInputsDownDuration[i] < 0.0f ? 0.0f : io.NavInputsDownDuration[i] + io.DeltaTime) : -1.0f;
|
io.NavInputsDownDuration[i] = (io.NavInputs[i] > 0.0f) ? (io.NavInputsDownDuration[i] < 0.0f ? 0.0f : io.NavInputsDownDuration[i] + io.DeltaTime) : -1.0f;
|
||||||
|
|
||||||
// Process navigation init request (select first/default focus)
|
// Process navigation init request (select first/default focus)
|
||||||
// In very rare cases g.NavWindow may be null (e.g. clearing focus after requesting an init request, which does happen when releasing Alt while clicking on void)
|
if (g.NavInitResultId != 0 && (!g.NavDisableHighlight || g.NavInitRequestFromMove))
|
||||||
if (g.NavInitResultId != 0 && (!g.NavDisableHighlight || g.NavInitRequestFromMove) && g.NavWindow)
|
NavUpdateInitResult();
|
||||||
{
|
|
||||||
// Apply result from previous navigation init request (will typically select the first item, unless SetItemDefaultFocus() has been called)
|
|
||||||
//IMGUI_DEBUG_LOG("[Nav] Apply NavInitRequest result: 0x%08X Layer %d in \"%s\"\n", g.NavInitResultId, g.NavLayer, g.NavWindow->Name);
|
|
||||||
if (g.NavInitRequestFromMove)
|
|
||||||
SetNavIDWithRectRel(g.NavInitResultId, g.NavLayer, 0, g.NavInitResultRectRel);
|
|
||||||
else
|
|
||||||
SetNavID(g.NavInitResultId, g.NavLayer, 0);
|
|
||||||
g.NavWindow->NavRectRel[g.NavLayer] = g.NavInitResultRectRel;
|
|
||||||
}
|
|
||||||
g.NavInitRequest = false;
|
g.NavInitRequest = false;
|
||||||
g.NavInitRequestFromMove = false;
|
g.NavInitRequestFromMove = false;
|
||||||
g.NavInitResultId = 0;
|
g.NavInitResultId = 0;
|
||||||
@ -9372,6 +9364,7 @@ static void ImGui::NavUpdate()
|
|||||||
// Process NavCancel input (to close a popup, get back to parent, clear focus)
|
// Process NavCancel input (to close a popup, get back to parent, clear focus)
|
||||||
if (IsNavInputTest(ImGuiNavInput_Cancel, ImGuiInputReadMode_Pressed))
|
if (IsNavInputTest(ImGuiNavInput_Cancel, ImGuiInputReadMode_Pressed))
|
||||||
{
|
{
|
||||||
|
IMGUI_DEBUG_LOG_NAV("[nav] ImGuiNavInput_Cancel\n");
|
||||||
if (g.ActiveId != 0)
|
if (g.ActiveId != 0)
|
||||||
{
|
{
|
||||||
if (!IsActiveIdUsingNavInput(ImGuiNavInput_Cancel))
|
if (!IsActiveIdUsingNavInput(ImGuiNavInput_Cancel))
|
||||||
@ -9457,6 +9450,7 @@ static void ImGui::NavUpdate()
|
|||||||
// (Preserve g.NavMoveRequestFlags, g.NavMoveClipDir which were set by the NavMoveRequestForward() function)
|
// (Preserve g.NavMoveRequestFlags, g.NavMoveClipDir which were set by the NavMoveRequestForward() function)
|
||||||
IM_ASSERT(g.NavMoveDir != ImGuiDir_None && g.NavMoveClipDir != ImGuiDir_None);
|
IM_ASSERT(g.NavMoveDir != ImGuiDir_None && g.NavMoveClipDir != ImGuiDir_None);
|
||||||
IM_ASSERT(g.NavMoveRequestForward == ImGuiNavForward_ForwardQueued);
|
IM_ASSERT(g.NavMoveRequestForward == ImGuiNavForward_ForwardQueued);
|
||||||
|
IMGUI_DEBUG_LOG_NAV("[nav] NavMoveRequestForward %d\n", g.NavMoveDir);
|
||||||
g.NavMoveRequestForward = ImGuiNavForward_ForwardActive;
|
g.NavMoveRequestForward = ImGuiNavForward_ForwardActive;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -9475,7 +9469,7 @@ static void ImGui::NavUpdate()
|
|||||||
}
|
}
|
||||||
if (g.NavMoveRequest && g.NavId == 0)
|
if (g.NavMoveRequest && g.NavId == 0)
|
||||||
{
|
{
|
||||||
//IMGUI_DEBUG_LOG("[Nav] NavInitRequest from move, window \"%s\", layer=%d\n", g.NavWindow->Name, g.NavLayer);
|
IMGUI_DEBUG_LOG_NAV("[nav] NavInitRequest: from move, window \"%s\", layer=%d\n", g.NavWindow->Name, g.NavLayer);
|
||||||
g.NavInitRequest = g.NavInitRequestFromMove = true;
|
g.NavInitRequest = g.NavInitRequestFromMove = true;
|
||||||
// Reassigning with same value, we're being explicit here.
|
// Reassigning with same value, we're being explicit here.
|
||||||
g.NavInitResultId = 0; // -V1048
|
g.NavInitResultId = 0; // -V1048
|
||||||
@ -9520,6 +9514,7 @@ static void ImGui::NavUpdate()
|
|||||||
ImRect window_rect_rel(window->InnerRect.Min - window->Pos - ImVec2(1, 1), window->InnerRect.Max - window->Pos + ImVec2(1, 1));
|
ImRect window_rect_rel(window->InnerRect.Min - window->Pos - ImVec2(1, 1), window->InnerRect.Max - window->Pos + ImVec2(1, 1));
|
||||||
if (!window_rect_rel.Contains(window->NavRectRel[g.NavLayer]))
|
if (!window_rect_rel.Contains(window->NavRectRel[g.NavLayer]))
|
||||||
{
|
{
|
||||||
|
IMGUI_DEBUG_LOG_NAV("[nav] NavMoveRequest: clamp NavRectRel\n");
|
||||||
float pad = window->CalcFontSize() * 0.5f;
|
float pad = window->CalcFontSize() * 0.5f;
|
||||||
window_rect_rel.Expand(ImVec2(-ImMin(window_rect_rel.GetWidth(), pad), -ImMin(window_rect_rel.GetHeight(), pad))); // Terrible approximation for the intent of starting navigation from first fully visible item
|
window_rect_rel.Expand(ImVec2(-ImMin(window_rect_rel.GetWidth(), pad), -ImMin(window_rect_rel.GetHeight(), pad))); // Terrible approximation for the intent of starting navigation from first fully visible item
|
||||||
window->NavRectRel[g.NavLayer].ClipWithFull(window_rect_rel);
|
window->NavRectRel[g.NavLayer].ClipWithFull(window_rect_rel);
|
||||||
@ -9546,6 +9541,22 @@ static void ImGui::NavUpdate()
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void ImGui::NavUpdateInitResult()
|
||||||
|
{
|
||||||
|
// In very rare cases g.NavWindow may be null (e.g. clearing focus after requesting an init request, which does happen when releasing Alt while clicking on void)
|
||||||
|
ImGuiContext& g = *GImGui;
|
||||||
|
if (!g.NavWindow)
|
||||||
|
return;
|
||||||
|
|
||||||
|
// Apply result from previous navigation init request (will typically select the first item, unless SetItemDefaultFocus() has been called)
|
||||||
|
IMGUI_DEBUG_LOG_NAV("[nav] NavInitRequest: result NavID 0x%08X in Layer %d Window \"%s\"\n", g.NavInitResultId, g.NavLayer, g.NavWindow->Name);
|
||||||
|
if (g.NavInitRequestFromMove)
|
||||||
|
SetNavIDWithRectRel(g.NavInitResultId, g.NavLayer, 0, g.NavInitResultRectRel);
|
||||||
|
else
|
||||||
|
SetNavID(g.NavInitResultId, g.NavLayer, 0);
|
||||||
|
g.NavWindow->NavRectRel[g.NavLayer] = g.NavInitResultRectRel;
|
||||||
|
}
|
||||||
|
|
||||||
// Apply result from previous frame navigation directional move request
|
// Apply result from previous frame navigation directional move request
|
||||||
static void ImGui::NavUpdateMoveResult()
|
static void ImGui::NavUpdateMoveResult()
|
||||||
{
|
{
|
||||||
@ -9605,6 +9616,7 @@ static void ImGui::NavUpdateMoveResult()
|
|||||||
g.NavJustMovedToFocusScopeId = result->FocusScopeId;
|
g.NavJustMovedToFocusScopeId = result->FocusScopeId;
|
||||||
g.NavJustMovedToKeyMods = g.NavMoveRequestKeyMods;
|
g.NavJustMovedToKeyMods = g.NavMoveRequestKeyMods;
|
||||||
}
|
}
|
||||||
|
IMGUI_DEBUG_LOG_NAV("[nav] NavMoveRequest: result NavID 0x%08X in Layer %d Window \"%s\"\n", result->ID, g.NavLayer, g.NavWindow->Name);
|
||||||
SetNavIDWithRectRel(result->ID, g.NavLayer, result->FocusScopeId, result->RectRel);
|
SetNavIDWithRectRel(result->ID, g.NavLayer, result->FocusScopeId, result->RectRel);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -173,7 +173,9 @@ namespace ImStb
|
|||||||
//#define IMGUI_DEBUG_LOG_POPUP IMGUI_DEBUG_LOG // Enable log
|
//#define IMGUI_DEBUG_LOG_POPUP IMGUI_DEBUG_LOG // Enable log
|
||||||
//#define IMGUI_DEBUG_LOG_VIEWPORT IMGUI_DEBUG_LOG // Enable log
|
//#define IMGUI_DEBUG_LOG_VIEWPORT IMGUI_DEBUG_LOG // Enable log
|
||||||
//#define IMGUI_DEBUG_LOG_DOCKING IMGUI_DEBUG_LOG // Enable log
|
//#define IMGUI_DEBUG_LOG_DOCKING IMGUI_DEBUG_LOG // Enable log
|
||||||
|
//#define IMGUI_DEBUG_LOG_NAV IMGUI_DEBUG_LOG // Enable log
|
||||||
#define IMGUI_DEBUG_LOG_POPUP(...) ((void)0) // Disable log
|
#define IMGUI_DEBUG_LOG_POPUP(...) ((void)0) // Disable log
|
||||||
|
#define IMGUI_DEBUG_LOG_NAV(...) ((void)0) // Disable log
|
||||||
#define IMGUI_DEBUG_LOG_VIEWPORT(...) ((void)0) // Disable log
|
#define IMGUI_DEBUG_LOG_VIEWPORT(...) ((void)0) // Disable log
|
||||||
#define IMGUI_DEBUG_LOG_DOCKING(...) ((void)0) // Disable log
|
#define IMGUI_DEBUG_LOG_DOCKING(...) ((void)0) // Disable log
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user