483
483
#ifdef _MSC_VER
484
484
#pragma warning (disable: 4505) // unreferenced local function has been removed (stb stuff)
485
485
#pragma warning (disable: 4996) // 'This function or variable may be unsafe': strcpy, strdup, sprintf, vsnprintf, sscanf, fopen
486
+ #define snprintf _snprintf
486
487
#endif
487
488
488
489
// Clang warnings with -Weverything
@@ -9871,7 +9872,7 @@ ImFont* ImFontAtlas::AddFontFromFileTTF(const char* filename, float size_pixels,
9871
9872
ImFont* ImFontAtlas::AddFontFromMemoryTTF(void* ttf_data, int ttf_size, float size_pixels, const ImFontConfig* font_cfg_template, const ImWchar* glyph_ranges)
9872
9873
{
9873
9874
ImFontConfig font_cfg = font_cfg_template ? *font_cfg_template : ImFontConfig();
9874
- IM_ASSERT(font_cfg.FontData == NULL);
9875
+ IM_ASSERT(font_cfg.FontData == NULL);
9875
9876
font_cfg.FontData = ttf_data;
9876
9877
font_cfg.FontDataSize = ttf_size;
9877
9878
font_cfg.SizePixels = size_pixels;
@@ -9887,7 +9888,7 @@ ImFont* ImFontAtlas::AddFontFromMemoryCompressedTTF(const void* compressed_ttf_d
9887
9888
stb_decompress(buf_decompressed_data, (unsigned char*)compressed_ttf_data, (unsigned int)compressed_ttf_size);
9888
9889
9889
9890
ImFontConfig font_cfg = font_cfg_template ? *font_cfg_template : ImFontConfig();
9890
- IM_ASSERT(font_cfg.FontData == NULL);
9891
+ IM_ASSERT(font_cfg.FontData == NULL);
9891
9892
font_cfg.FontDataOwnedByAtlas = true;
9892
9893
return AddFontFromMemoryTTF(buf_decompressed_data, (int)buf_decompressed_size, size_pixels, font_cfg_template, glyph_ranges);
9893
9894
}
@@ -10039,7 +10040,7 @@ bool ImFontAtlas::Build()
10039
10040
float descent = unscaled_descent * font_scale;
10040
10041
if (!cfg.MergeMode)
10041
10042
{
10042
- dst_font->ContainerAtlas = this;
10043
+ dst_font->ContainerAtlas = this;
10043
10044
dst_font->ConfigData = &cfg;
10044
10045
dst_font->ConfigDataCount = 0;
10045
10046
dst_font->FontSize = cfg.SizePixels;
@@ -10063,7 +10064,7 @@ bool ImFontAtlas::Build()
10063
10064
const int codepoint = range.first_unicode_char_in_range + char_idx;
10064
10065
if (cfg.MergeMode && dst_font->FindGlyph((unsigned short)codepoint))
10065
10066
continue;
10066
-
10067
+
10067
10068
stbtt_aligned_quad q;
10068
10069
float dummy_x = 0.0f, dummy_y = 0.0f;
10069
10070
stbtt_GetPackedQuad(range.chardata_for_range, TexWidth, TexHeight, char_idx, &dummy_x, &dummy_y, &q, 0);
@@ -10705,7 +10706,7 @@ ImVec2 ImFont::CalcTextSizeA(float size, float max_width, float wrap_width, cons
10705
10706
if (c == 0)
10706
10707
break;
10707
10708
}
10708
-
10709
+
10709
10710
if (c < 32)
10710
10711
{
10711
10712
if (c == '\n')
@@ -10718,7 +10719,7 @@ ImVec2 ImFont::CalcTextSizeA(float size, float max_width, float wrap_width, cons
10718
10719
if (c == '\r')
10719
10720
continue;
10720
10721
}
10721
-
10722
+
10722
10723
const float char_width = ((int)c < IndexXAdvance.Size ? IndexXAdvance[(int)c] : FallbackXAdvance) * scale;
10723
10724
if (line_width + char_width >= max_width)
10724
10725
{
@@ -10830,7 +10831,7 @@ void ImFont::RenderText(float size, ImVec2 pos, ImU32 col, const ImVec4& clip_re
10830
10831
if (const Glyph* glyph = FindGlyph((unsigned short)c))
10831
10832
{
10832
10833
char_width = glyph->XAdvance * scale;
10833
-
10834
+
10834
10835
// Clipping on Y is more likely
10835
10836
if (c != ' ' && c != '\t')
10836
10837
{
@@ -11014,19 +11015,103 @@ static void ImeSetInputScreenPosFn_DefaultImpl(int, int)
11014
11015
11015
11016
#endif
11016
11017
11017
- #ifdef IMGUI_DISABLE_TEST_WINDOWS
11018
-
11019
- void ImGui::ShowUserGuide() {}
11020
- void ImGui::ShowStyleEditor(ImGuiStyle*) {}
11021
- void ImGui::ShowTestWindow(bool*) {}
11022
- void ImGui::ShowMetricsWindow(bool*) {}
11023
-
11024
- #else
11025
-
11026
11018
//-----------------------------------------------------------------------------
11027
11019
// HELP
11028
11020
//-----------------------------------------------------------------------------
11029
11021
11022
+ void ImGui::ShowMetricsWindow(bool* opened)
11023
+ {
11024
+ if (ImGui::Begin("ImGui Metrics", opened))
11025
+ {
11026
+ ImGui::Text("ImGui %s", ImGui::GetVersion());
11027
+ ImGui::Text("Application average %.3f ms/frame (%.1f FPS)", 1000.0f / ImGui::GetIO().Framerate, ImGui::GetIO().Framerate);
11028
+ ImGui::Text("%d vertices, %d triangles", ImGui::GetIO().MetricsRenderVertices, ImGui::GetIO().MetricsRenderIndices / 3);
11029
+ ImGui::Text("%d allocations", ImGui::GetIO().MetricsAllocs);
11030
+ static bool show_clip_rects = true;
11031
+ ImGui::Checkbox("Show clipping rectangles when hovering ImDrawList", &show_clip_rects);
11032
+ ImGui::Separator();
11033
+
11034
+ struct Funcs
11035
+ {
11036
+ static void NodeDrawList(ImDrawList* draw_list, const char* label)
11037
+ {
11038
+ bool node_opened = ImGui::TreeNode(draw_list, "%s: '%s' %d vtx, %d indices, %d cmds", label, draw_list->_OwnerName ? draw_list->_OwnerName : "", draw_list->VtxBuffer.Size, draw_list->IdxBuffer.Size, draw_list->CmdBuffer.Size);
11039
+ if (draw_list == ImGui::GetWindowDrawList())
11040
+ {
11041
+ ImGui::SameLine();
11042
+ ImGui::TextColored(ImColor(255,100,100), "CURRENTLY APPENDING"); // Can't display stats for active draw list! (we don't have the data double-buffered)
11043
+ }
11044
+ if (!node_opened)
11045
+ return;
11046
+
11047
+ int elem_offset = 0;
11048
+ for (const ImDrawCmd* pcmd = draw_list->CmdBuffer.begin(); pcmd < draw_list->CmdBuffer.end(); elem_offset += pcmd->ElemCount, pcmd++)
11049
+ {
11050
+ if (pcmd->UserCallback)
11051
+ ImGui::BulletText("Callback %p, user_data %p", pcmd->UserCallback, pcmd->UserCallbackData);
11052
+ else
11053
+ {
11054
+ ImGui::BulletText("Draw %d indexed vtx, tex = %p, clip_rect = (%.0f,%.0f)..(%.0f,%.0f)", pcmd->ElemCount, pcmd->TextureId, pcmd->ClipRect.x, pcmd->ClipRect.y, pcmd->ClipRect.z, pcmd->ClipRect.w);
11055
+ if (show_clip_rects && ImGui::IsItemHovered())
11056
+ {
11057
+ ImRect clip_rect = pcmd->ClipRect;
11058
+ ImRect vtxs_rect;
11059
+ for (int i = elem_offset; i < elem_offset + (int)pcmd->ElemCount; i++)
11060
+ vtxs_rect.Add(draw_list->VtxBuffer[draw_list->IdxBuffer[i]].pos);
11061
+ GImGui->OverlayDrawList.PushClipRectFullScreen();
11062
+ clip_rect.Round(); GImGui->OverlayDrawList.AddRect(clip_rect.Min, clip_rect.Max, ImColor(255,255,0));
11063
+ vtxs_rect.Round(); GImGui->OverlayDrawList.AddRect(vtxs_rect.Min, vtxs_rect.Max, ImColor(255,0,255));
11064
+ GImGui->OverlayDrawList.PopClipRect();
11065
+ }
11066
+ }
11067
+ }
11068
+ ImGui::TreePop();
11069
+ }
11070
+
11071
+ static void NodeWindows(ImVector<ImGuiWindow*>& windows, const char* label)
11072
+ {
11073
+ if (!ImGui::TreeNode(label, "%s (%d)", label, windows.Size))
11074
+ return;
11075
+ for (int i = 0; i < windows.Size; i++)
11076
+ Funcs::NodeWindow(windows[i], "Window");
11077
+ ImGui::TreePop();
11078
+ }
11079
+
11080
+ static void NodeWindow(ImGuiWindow* window, const char* label)
11081
+ {
11082
+ if (!ImGui::TreeNode(window, "%s '%s', %d @ 0x%p", label, window->Name, window->Active || window->WasActive, window))
11083
+ return;
11084
+ NodeDrawList(window->DrawList, "DrawList");
11085
+ if (window->RootWindow != window) NodeWindow(window->RootWindow, "RootWindow");
11086
+ if (window->DC.ChildWindows.Size > 0) NodeWindows(window->DC.ChildWindows, "ChildWindows");
11087
+ ImGui::BulletText("Storage: %d bytes", window->StateStorage.Data.Size * sizeof(ImGuiStorage::Pair));
11088
+ ImGui::TreePop();
11089
+ }
11090
+ };
11091
+
11092
+ ImGuiState& g = *GImGui; // Access private state
11093
+ g.DisableHideTextAfterDoubleHash++; // Not exposed (yet). Disable processing that hides text after '##' markers.
11094
+ Funcs::NodeWindows(g.Windows, "Windows");
11095
+ if (ImGui::TreeNode("DrawList", "Active DrawLists (%d)", g.RenderDrawLists[0].Size))
11096
+ {
11097
+ for (int i = 0; i < g.RenderDrawLists[0].Size; i++)
11098
+ Funcs::NodeDrawList(g.RenderDrawLists[0][i], "DrawList");
11099
+ ImGui::TreePop();
11100
+ }
11101
+ if (ImGui::TreeNode("Popups", "Opened Popups Stack (%d)", g.OpenedPopupStack.Size))
11102
+ {
11103
+ for (int i = 0; i < g.OpenedPopupStack.Size; i++)
11104
+ {
11105
+ ImGuiWindow* window = g.OpenedPopupStack[i].Window;
11106
+ ImGui::BulletText("PopupID: %08x, Window: '%s'%s%s", g.OpenedPopupStack[i].PopupID, window ? window->Name : "NULL", window && (window->Flags & ImGuiWindowFlags_ChildWindow) ? " ChildWindow" : "", window && (window->Flags & ImGuiWindowFlags_ChildMenu) ? " ChildMenu" : "");
11107
+ }
11108
+ ImGui::TreePop();
11109
+ }
11110
+ g.DisableHideTextAfterDoubleHash--;
11111
+ }
11112
+ ImGui::End();
11113
+ }
11114
+
11030
11115
void ImGui::ShowUserGuide()
11031
11116
{
11032
11117
ImGui::BulletText("Double-click on title bar to collapse window.");
@@ -11155,6 +11240,8 @@ void ImGui::ShowStyleEditor(ImGuiStyle* ref)
11155
11240
// SAMPLE CODE
11156
11241
//-----------------------------------------------------------------------------
11157
11242
11243
+ #ifndef IMGUI_DISABLE_TEST_WINDOWS
11244
+
11158
11245
static void ShowExampleAppConsole(bool* opened);
11159
11246
static void ShowExampleAppLayout(bool* opened);
11160
11247
static void ShowExampleAppLongText(bool* opened);
@@ -11381,14 +11468,16 @@ void ImGui::ShowTestWindow(bool* opened)
11381
11468
ImGui::SliderFloat("Wrap width", &wrap_width, -20, 600, "%.0f");
11382
11469
11383
11470
ImGui::Text("Test paragraph 1:");
11384
- ImGui::GetWindowDrawList()->AddRectFilled(ImGui::GetCursorScreenPos() + ImVec2(wrap_width, 0.0f), ImGui::GetCursorScreenPos() + ImVec2(wrap_width+10, ImGui::GetTextLineHeight()), 0xFFFF00FF);
11471
+ ImVec2 pos = ImGui::GetCursorScreenPos();
11472
+ ImGui::GetWindowDrawList()->AddRectFilled(ImVec2(pos.x + wrap_width, pos.y), ImVec2(pos.x + wrap_width + 10, pos.y + ImGui::GetTextLineHeight()), 0xFFFF00FF);
11385
11473
ImGui::PushTextWrapPos(ImGui::GetCursorPos().x + wrap_width);
11386
11474
ImGui::Text("lazy dog. This paragraph is made to fit within %.0f pixels. The quick brown fox jumps over the lazy dog.", wrap_width);
11387
11475
ImGui::GetWindowDrawList()->AddRect(ImGui::GetItemRectMin(), ImGui::GetItemRectMax(), 0xFF00FFFF);
11388
11476
ImGui::PopTextWrapPos();
11389
11477
11390
11478
ImGui::Text("Test paragraph 2:");
11391
- ImGui::GetWindowDrawList()->AddRectFilled(ImGui::GetCursorScreenPos() + ImVec2(wrap_width, 0.0f), ImGui::GetCursorScreenPos() + ImVec2(wrap_width+10, ImGui::GetTextLineHeight()), 0xFFFF00FF);
11479
+ pos = ImGui::GetCursorScreenPos();
11480
+ ImGui::GetWindowDrawList()->AddRectFilled(ImVec2(pos.x + wrap_width, pos.y), ImVec2(pos.x + wrap_width + 10, pos.y + ImGui::GetTextLineHeight()), 0xFFFF00FF);
11392
11481
ImGui::PushTextWrapPos(ImGui::GetCursorPos().x + wrap_width);
11393
11482
ImGui::Text("aaaaaaaa bbbbbbbb, cccccccc,dddddddd. eeeeeeee ffffffff. gggggggg!hhhhhhhh");
11394
11483
ImGui::GetWindowDrawList()->AddRect(ImGui::GetItemRectMin(), ImGui::GetItemRectMax(), 0xFF00FFFF);
@@ -12030,8 +12119,8 @@ void ImGui::ShowTestWindow(bool* opened)
12030
12119
ImGui::DragFloat2("offset", (float*)&offset, 0.5f, -200, 200.0f, "%.0f");
12031
12120
ImVec2 pos = ImGui::GetCursorScreenPos();
12032
12121
ImVec4 clip_rect(pos.x, pos.y, pos.x+size.x, pos.y+size.y);
12033
- ImGui::GetWindowDrawList()->AddRectFilled(pos, pos+size, ImColor(90,90,120,255));
12034
- ImGui::GetWindowDrawList()->AddText(ImGui::GetWindowFont(), ImGui::GetWindowFontSize()*2.0f, pos+offset, ImColor(255,255,255,255), "Line 1 hello\nLine 2 clip me!", NULL, 0.0f, &clip_rect);
12122
+ ImGui::GetWindowDrawList()->AddRectFilled(pos, ImVec2( pos.x +size.x,pos.y+size.y) , ImColor(90,90,120,255));
12123
+ ImGui::GetWindowDrawList()->AddText(ImGui::GetWindowFont(), ImGui::GetWindowFontSize()*2.0f, ImVec2( pos.x +offset.x,pos.y+offset.y) , ImColor(255,255,255,255), "Line 1 hello\nLine 2 clip me!", NULL, 0.0f, &clip_rect);
12035
12124
ImGui::Dummy(size);
12036
12125
ImGui::TreePop();
12037
12126
}
@@ -12455,97 +12544,6 @@ void ImGui::ShowTestWindow(bool* opened)
12455
12544
ImGui::End();
12456
12545
}
12457
12546
12458
- void ImGui::ShowMetricsWindow(bool* opened)
12459
- {
12460
- if (ImGui::Begin("ImGui Metrics", opened))
12461
- {
12462
- ImGui::Text("ImGui %s", ImGui::GetVersion());
12463
- ImGui::Text("Application average %.3f ms/frame (%.1f FPS)", 1000.0f / ImGui::GetIO().Framerate, ImGui::GetIO().Framerate);
12464
- ImGui::Text("%d vertices, %d triangles", ImGui::GetIO().MetricsRenderVertices, ImGui::GetIO().MetricsRenderIndices / 3);
12465
- ImGui::Text("%d allocations", ImGui::GetIO().MetricsAllocs);
12466
- static bool show_clip_rects = true;
12467
- ImGui::Checkbox("Show clipping rectangles when hovering ImDrawList", &show_clip_rects);
12468
- ImGui::Separator();
12469
-
12470
- struct Funcs
12471
- {
12472
- static void NodeDrawList(ImDrawList* draw_list, const char* label)
12473
- {
12474
- bool node_opened = ImGui::TreeNode(draw_list, "%s: '%s' %d vtx, %d indices, %d cmds", label, draw_list->_OwnerName ? draw_list->_OwnerName : "", draw_list->VtxBuffer.Size, draw_list->IdxBuffer.Size, draw_list->CmdBuffer.Size);
12475
- if (draw_list == ImGui::GetWindowDrawList())
12476
- {
12477
- ImGui::SameLine();
12478
- ImGui::TextColored(ImColor(255,100,100), "CURRENTLY APPENDING"); // Can't display stats for active draw list! (we don't have the data double-buffered)
12479
- }
12480
- if (!node_opened)
12481
- return;
12482
-
12483
- int elem_offset = 0;
12484
- for (const ImDrawCmd* pcmd = draw_list->CmdBuffer.begin(); pcmd < draw_list->CmdBuffer.end(); elem_offset += pcmd->ElemCount, pcmd++)
12485
- if (pcmd->UserCallback)
12486
- ImGui::BulletText("Callback %p, user_data %p", pcmd->UserCallback, pcmd->UserCallbackData);
12487
- else
12488
- {
12489
- ImGui::BulletText("Draw %d indexed vtx, tex = %p, clip_rect = (%.0f,%.0f)..(%.0f,%.0f)", pcmd->ElemCount, pcmd->TextureId, pcmd->ClipRect.x, pcmd->ClipRect.y, pcmd->ClipRect.z, pcmd->ClipRect.w);
12490
- if (show_clip_rects && ImGui::IsItemHovered())
12491
- {
12492
- ImRect clip_rect = pcmd->ClipRect;
12493
- ImRect vtxs_rect;
12494
- for (int i = elem_offset; i < elem_offset + (int)pcmd->ElemCount; i++)
12495
- vtxs_rect.Add(draw_list->VtxBuffer[draw_list->IdxBuffer[i]].pos);
12496
- GImGui->OverlayDrawList.PushClipRectFullScreen();
12497
- clip_rect.Round(); GImGui->OverlayDrawList.AddRect(clip_rect.Min, clip_rect.Max, ImColor(255,255,0));
12498
- vtxs_rect.Round(); GImGui->OverlayDrawList.AddRect(vtxs_rect.Min, vtxs_rect.Max, ImColor(255,0,255));
12499
- GImGui->OverlayDrawList.PopClipRect();
12500
- }
12501
- }
12502
- ImGui::TreePop();
12503
- }
12504
-
12505
- static void NodeWindows(ImVector<ImGuiWindow*>& windows, const char* label)
12506
- {
12507
- if (!ImGui::TreeNode(label, "%s (%d)", label, windows.Size))
12508
- return;
12509
- for (int i = 0; i < windows.Size; i++)
12510
- Funcs::NodeWindow(windows[i], "Window");
12511
- ImGui::TreePop();
12512
- }
12513
-
12514
- static void NodeWindow(ImGuiWindow* window, const char* label)
12515
- {
12516
- if (!ImGui::TreeNode(window, "%s '%s', %d @ 0x%p", label, window->Name, window->Active || window->WasActive, window))
12517
- return;
12518
- NodeDrawList(window->DrawList, "DrawList");
12519
- if (window->RootWindow != window) NodeWindow(window->RootWindow, "RootWindow");
12520
- if (window->DC.ChildWindows.Size > 0) NodeWindows(window->DC.ChildWindows, "ChildWindows");
12521
- ImGui::BulletText("Storage: %d bytes", window->StateStorage.Data.Size * sizeof(ImGuiStorage::Pair));
12522
- ImGui::TreePop();
12523
- }
12524
- };
12525
-
12526
- ImGuiState& g = *GImGui; // Access private state
12527
- g.DisableHideTextAfterDoubleHash++; // Not exposed (yet). Disable processing that hides text after '##' markers.
12528
- Funcs::NodeWindows(g.Windows, "Windows");
12529
- if (ImGui::TreeNode("DrawList", "Active DrawLists (%d)", g.RenderDrawLists[0].Size))
12530
- {
12531
- for (int i = 0; i < g.RenderDrawLists[0].Size; i++)
12532
- Funcs::NodeDrawList(g.RenderDrawLists[0][i], "DrawList");
12533
- ImGui::TreePop();
12534
- }
12535
- if (ImGui::TreeNode("Popups", "Opened Popups Stack (%d)", g.OpenedPopupStack.Size))
12536
- {
12537
- for (int i = 0; i < g.OpenedPopupStack.Size; i++)
12538
- {
12539
- ImGuiWindow* window = g.OpenedPopupStack[i].Window;
12540
- ImGui::BulletText("PopupID: %08x, Window: '%s'%s%s", g.OpenedPopupStack[i].PopupID, window ? window->Name : "NULL", window && (window->Flags & ImGuiWindowFlags_ChildWindow) ? " ChildWindow" : "", window && (window->Flags & ImGuiWindowFlags_ChildMenu) ? " ChildMenu" : "");
12541
- }
12542
- ImGui::TreePop();
12543
- }
12544
- g.DisableHideTextAfterDoubleHash--;
12545
- }
12546
- ImGui::End();
12547
- }
12548
-
12549
12547
static void ShowExampleAppMainMenuBar()
12550
12548
{
12551
12549
if (ImGui::BeginMainMenuBar())
@@ -12674,7 +12672,7 @@ static void ShowExampleAppManipulatingWindowTitle(bool* opened)
12674
12672
12675
12673
// Using "###" to display a changing title but keep a static identifier "AnimatedTitle"
12676
12674
char buf[128];
12677
- ImFormatString (buf, IM_ARRAYSIZE(buf) , "Animated title %c %d###AnimatedTitle", "|/-\\"[(int)(ImGui::GetTime()/0.25f)&3], rand());
12675
+ sprintf (buf, "Animated title %c %d###AnimatedTitle", "|/-\\"[(int)(ImGui::GetTime()/0.25f)&3], rand());
12678
12676
ImGui::SetNextWindowPos(ImVec2(100,300), ImGuiSetCond_FirstUseEver);
12679
12677
ImGui::Begin(buf);
12680
12678
ImGui::Text("This window has a changing title.");
@@ -12783,7 +12781,8 @@ struct ExampleAppConsole
12783
12781
char buf[1024];
12784
12782
va_list args;
12785
12783
va_start(args, fmt);
12786
- ImFormatStringV(buf, IM_ARRAYSIZE(buf), fmt, args);
12784
+ vsnprintf(buf, IM_ARRAYSIZE(buf), fmt, args);
12785
+ buf[IM_ARRAYSIZE(buf)-1] = 0;
12787
12786
va_end(args);
12788
12787
Items.push_back(strdup(buf));
12789
12788
ScrollToBottom = true;
@@ -12920,7 +12919,7 @@ struct ExampleAppConsole
12920
12919
while (word_start > data->Buf)
12921
12920
{
12922
12921
const char c = word_start[-1];
12923
- if (ImCharIsSpace(c) || c == ',' || c == ';')
12922
+ if (c == ' ' || c == '\t' || c == 0x3000 || c == ',' || c == ';')
12924
12923
break;
12925
12924
word_start--;
12926
12925
}
@@ -12996,7 +12995,7 @@ struct ExampleAppConsole
12996
12995
// A better implementation would preserve the data on the current input line along with cursor position.
12997
12996
if (prev_history_pos != HistoryPos)
12998
12997
{
12999
- ImFormatString (data->Buf, data->BufSize, "%s", (HistoryPos >= 0) ? History[HistoryPos] : "");
12998
+ snprintf (data->Buf, data->BufSize, "%s", (HistoryPos >= 0) ? History[HistoryPos] : "");
13000
12999
data->BufDirty = true;
13001
13000
data->CursorPos = data->SelectionStart = data->SelectionEnd = (int)strlen(data->Buf);
13002
13001
}
@@ -13111,6 +13110,10 @@ static void ShowExampleAppLongText(bool* opened)
13111
13110
}
13112
13111
13113
13112
// End of Sample code
13113
+ #else
13114
+
13115
+ void ImGui::ShowTestWindow(bool*) {}
13116
+
13114
13117
#endif
13115
13118
13116
13119
//-----------------------------------------------------------------------------
0 commit comments