diff --git a/imgui.cpp b/imgui.cpp index 4969829f3..542c27e4e 100644 --- a/imgui.cpp +++ b/imgui.cpp @@ -11129,6 +11129,8 @@ static void ImGui::ErrorCheckEndFrameSanityChecks() // while still correctly asserting on mid-frame key press events. ImGuiContext& g = *GImGui; const ImGuiKeyChord key_mods = GetMergedModsFromKeys(); + IM_UNUSED(g); + IM_UNUSED(key_mods); IM_ASSERT((key_mods == 0 || g.IO.KeyMods == key_mods) && "Mismatching io.KeyCtrl/io.KeyShift/io.KeyAlt/io.KeySuper vs io.KeyMods"); IM_UNUSED(key_mods); diff --git a/imgui_demo.cpp b/imgui_demo.cpp index d3a85741b..4bc3f87e6 100644 --- a/imgui_demo.cpp +++ b/imgui_demo.cpp @@ -599,8 +599,9 @@ void ImGui::ShowDemoWindow(bool* p_open) ImGui::SameLine(); HelpMarker("Swap Cmd<>Ctrl keys, enable various MacOS style behaviors."); ImGui::Text("Also see Style->Rendering for rendering options."); - // Read https://github.com/ocornut/imgui/wiki/Error-Handling + // Also read: https://github.com/ocornut/imgui/wiki/Error-Handling ImGui::SeparatorText("Error Handling"); + ImGui::Checkbox("io.ConfigErrorRecovery", &io.ConfigErrorRecovery); ImGui::SameLine(); HelpMarker( "Options to configure how we handle recoverable errors.\n" @@ -615,6 +616,7 @@ void ImGui::ShowDemoWindow(bool* p_open) if (!io.ConfigErrorRecoveryEnableAssert && !io.ConfigErrorRecoveryEnableDebugLog && !io.ConfigErrorRecoveryEnableTooltip) io.ConfigErrorRecoveryEnableAssert = io.ConfigErrorRecoveryEnableDebugLog = io.ConfigErrorRecoveryEnableTooltip = true; + // Also read: https://github.com/ocornut/imgui/wiki/Debug-Tools ImGui::SeparatorText("Debug"); ImGui::Checkbox("io.ConfigDebugIsDebuggerPresent", &io.ConfigDebugIsDebuggerPresent); ImGui::SameLine(); HelpMarker("Enable various tools calling IM_DEBUG_BREAK().\n\nRequires a debugger being attached, otherwise IM_DEBUG_BREAK() options will appear to crash your application."); @@ -653,6 +655,7 @@ void ImGui::ShowDemoWindow(bool* p_open) ImGui::CheckboxFlags("io.BackendFlags: RendererHasVtxOffset", &io.BackendFlags, ImGuiBackendFlags_RendererHasVtxOffset); ImGui::CheckboxFlags("io.BackendFlags: RendererHasViewports", &io.BackendFlags, ImGuiBackendFlags_RendererHasViewports); ImGui::EndDisabled(); + ImGui::TreePop(); ImGui::Spacing(); } diff --git a/imgui_internal.h b/imgui_internal.h index ae1c594cc..62b1f746f 100644 --- a/imgui_internal.h +++ b/imgui_internal.h @@ -2077,15 +2077,14 @@ struct ImGuiLocEntry // Macros used by Recoverable Error handling // - Only dispatch error if _EXPR: evaluate as assert (similar to an assert macro). // - The message will always be a string literal, in order to increase likelihood of being display by an assert handler. -// - The intent is that you may rewire this macro to dispatch dynamically: -// - On programmers machines, when debugger is attached, on direct imgui API usage error: always assert! -// - On exception recovery and script language recovery: you may decide to error log. +// - See 'Demo->Configuration->Error Handling' and ImGuiIO definitions for details on error handling. +// - Read https://github.com/ocornut/imgui/wiki/Error-Handling for details on error handling. #ifndef IM_ASSERT_USER_ERROR #define IM_ASSERT_USER_ERROR(_EXPR,_MSG) do { if (!(_EXPR) && ImGui::ErrorLog(_MSG)) { IM_ASSERT((_EXPR) && _MSG); } } while (0) // Recoverable User Error #endif - -typedef void (*ImGuiErrorCallback)(ImGuiContext* ctx, void* user_data, const char* msg); // Function signature for g.ErrorCallback +// The error callback is currently not public, as it is expected that only advanced users will rely on it. +typedef void (*ImGuiErrorCallback)(ImGuiContext* ctx, void* user_data, const char* msg); // Function signature for g.ErrorCallback //----------------------------------------------------------------------------- // [SECTION] Metrics, Debug Tools