You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: imgui.cpp
+35-17Lines changed: 35 additions & 17 deletions
Original file line number
Diff line number
Diff line change
@@ -79,7 +79,7 @@ CODE
79
79
// [SECTION] MAIN CODE (most of the code! lots of stuff, needs tidying up!)
80
80
// [SECTION] ID STACK
81
81
// [SECTION] INPUTS
82
-
// [SECTION] ERROR CHECKING
82
+
// [SECTION] ERROR CHECKING, STATE RECOVERY
83
83
// [SECTION] ITEM SUBMISSION
84
84
// [SECTION] LAYOUT
85
85
// [SECTION] SCROLLING
@@ -7734,7 +7734,8 @@ void ImGui::PopItemFlag()
7734
7734
// - Those can be nested but it cannot be used to enable an already disabled section (a single BeginDisabled(true) in the stack is enough to keep everything disabled)
7735
7735
// - Visually this is currently altering alpha, but it is expected that in a future styling system this would work differently.
7736
7736
// - Feedback welcome at https://github.com/ocornut/imgui/issues/211
7737
-
// - BeginDisabled(false) essentially does nothing useful but is provided to facilitate use of boolean expressions. If you can avoid calling BeginDisabled(False)/EndDisabled() best to avoid it.
7737
+
// - BeginDisabled(false) essentially does nothing useful but is provided to facilitate use of boolean expressions.
7738
+
// (as a micro-optimisation if you can avoid calling BeginDisabled(false)/EndDisabled() tens of thousands of times by doing a local check, it won't hurt)
7738
7739
// - Optimized shortcuts instead of PushStyleVar() + PushItemFlag()
7739
7740
// - Note: mixing up BeginDisabled() and PushItemFlag(ImGuiItemFlags_Disabled) is currently NOT SUPPORTED.
// Experimental recovery from incorrect usage of BeginXXX/EndXXX/PushXXX/PopXXX calls.
10219
10237
// Must be called during or before EndFrame().
10220
10238
// This is generally flawed as we are not necessarily End/Popping things in the right order.
@@ -10235,12 +10253,12 @@ void ImGui::ErrorCheckEndFrameRecover(ImGuiErrorLogCallback log_callback, voi
10235
10253
}
10236
10254
if (window->Flags & ImGuiWindowFlags_ChildWindow)
10237
10255
{
10238
-
if (log_callback) log_callback(user_data, "Recovered from missing EndChild() for '%s'", window->Name);
10256
+
if (log_callback) log_callback(user_data, "Recovered from missing EndChild() for '%s'\n", window->Name);
10239
10257
EndChild();
10240
10258
}
10241
10259
else
10242
10260
{
10243
-
if (log_callback) log_callback(user_data, "Recovered from missing End() for '%s'", window->Name);
10261
+
if (log_callback) log_callback(user_data, "Recovered from missing End() for '%s'\n", window->Name);
10244
10262
End();
10245
10263
}
10246
10264
}
@@ -10252,7 +10270,7 @@ void ImGui::ErrorCheckEndWindowRecover(ImGuiErrorLogCallback log_callback, vo
10252
10270
ImGuiContext& g = *GImGui;
10253
10271
while (g.CurrentTable && (g.CurrentTable->OuterWindow == g.CurrentWindow || g.CurrentTable->InnerWindow == g.CurrentWindow))
10254
10272
{
10255
-
if (log_callback) log_callback(user_data, "Recovered from missing EndTable() in '%s'", g.CurrentTable->OuterWindow->Name);
10273
+
if (log_callback) log_callback(user_data, "Recovered from missing EndTable() in '%s'\n", g.CurrentTable->OuterWindow->Name);
10256
10274
EndTable();
10257
10275
}
10258
10276
@@ -10261,32 +10279,32 @@ void ImGui::ErrorCheckEndWindowRecover(ImGuiErrorLogCallback log_callback, vo
10261
10279
IM_ASSERT(window != NULL);
10262
10280
while (g.CurrentTabBar != NULL) //-V1044
10263
10281
{
10264
-
if (log_callback) log_callback(user_data, "Recovered from missing EndTabBar() in '%s'", window->Name);
10282
+
if (log_callback) log_callback(user_data, "Recovered from missing EndTabBar() in '%s'\n", window->Name);
10265
10283
EndTabBar();
10266
10284
}
10267
10285
while (g.CurrentMultiSelect != NULL && g.CurrentMultiSelect->Storage->Window == window)
10268
10286
{
10269
-
if (log_callback) log_callback(user_data, "Recovered from missing EndMultiSelect() in '%s'", window->Name);
10287
+
if (log_callback) log_callback(user_data, "Recovered from missing EndMultiSelect() in '%s'\n", window->Name);
10270
10288
EndMultiSelect();
10271
10289
}
10272
10290
while (window->DC.TreeDepth > 0)
10273
10291
{
10274
-
if (log_callback) log_callback(user_data, "Recovered from missing TreePop() in '%s'", window->Name);
10292
+
if (log_callback) log_callback(user_data, "Recovered from missing TreePop() in '%s'\n", window->Name);
10275
10293
TreePop();
10276
10294
}
10277
10295
while (g.GroupStack.Size > stack_sizes->SizeOfGroupStack) //-V1044
10278
10296
{
10279
-
if (log_callback) log_callback(user_data, "Recovered from missing EndGroup() in '%s'", window->Name);
10297
+
if (log_callback) log_callback(user_data, "Recovered from missing EndGroup() in '%s'\n", window->Name);
10280
10298
EndGroup();
10281
10299
}
10282
10300
while (window->IDStack.Size > 1)
10283
10301
{
10284
-
if (log_callback) log_callback(user_data, "Recovered from missing PopID() in '%s'", window->Name);
10302
+
if (log_callback) log_callback(user_data, "Recovered from missing PopID() in '%s'\n", window->Name);
10285
10303
PopID();
10286
10304
}
10287
10305
while (g.DisabledStackSize > stack_sizes->SizeOfDisabledStack) //-V1044
10288
10306
{
10289
-
if (log_callback) log_callback(user_data, "Recovered from missing EndDisabled() in '%s'", window->Name);
10307
+
if (log_callback) log_callback(user_data, "Recovered from missing EndDisabled() in '%s'\n", window->Name);
10290
10308
if (g.CurrentItemFlags & ImGuiItemFlags_Disabled)
10291
10309
EndDisabled();
10292
10310
else
@@ -10297,27 +10315,27 @@ void ImGui::ErrorCheckEndWindowRecover(ImGuiErrorLogCallback log_callback, vo
10297
10315
}
10298
10316
while (g.ColorStack.Size > stack_sizes->SizeOfColorStack)
10299
10317
{
10300
-
if (log_callback) log_callback(user_data, "Recovered from missing PopStyleColor() in '%s' for ImGuiCol_%s", window->Name, GetStyleColorName(g.ColorStack.back().Col));
10318
+
if (log_callback) log_callback(user_data, "Recovered from missing PopStyleColor() in '%s' for ImGuiCol_%s\n", window->Name, GetStyleColorName(g.ColorStack.back().Col));
10301
10319
PopStyleColor();
10302
10320
}
10303
10321
while (g.ItemFlagsStack.Size > stack_sizes->SizeOfItemFlagsStack) //-V1044
10304
10322
{
10305
-
if (log_callback) log_callback(user_data, "Recovered from missing PopItemFlag() in '%s'", window->Name);
10323
+
if (log_callback) log_callback(user_data, "Recovered from missing PopItemFlag() in '%s'\n", window->Name);
10306
10324
PopItemFlag();
10307
10325
}
10308
10326
while (g.StyleVarStack.Size > stack_sizes->SizeOfStyleVarStack) //-V1044
10309
10327
{
10310
-
if (log_callback) log_callback(user_data, "Recovered from missing PopStyleVar() in '%s'", window->Name);
10328
+
if (log_callback) log_callback(user_data, "Recovered from missing PopStyleVar() in '%s'\n", window->Name);
10311
10329
PopStyleVar();
10312
10330
}
10313
10331
while (g.FontStack.Size > stack_sizes->SizeOfFontStack) //-V1044
10314
10332
{
10315
-
if (log_callback) log_callback(user_data, "Recovered from missing PopFont() in '%s'", window->Name);
10333
+
if (log_callback) log_callback(user_data, "Recovered from missing PopFont() in '%s'\n", window->Name);
10316
10334
PopFont();
10317
10335
}
10318
10336
while (g.FocusScopeStack.Size > stack_sizes->SizeOfFocusScopeStack + 1) //-V1044
10319
10337
{
10320
-
if (log_callback) log_callback(user_data, "Recovered from missing PopFocusScope() in '%s'", window->Name);
10338
+
if (log_callback) log_callback(user_data, "Recovered from missing PopFocusScope() in '%s'\n", window->Name);
0 commit comments