Fixed using IMGUI_DISABLE_DEMO_WINDOWS without IMGUI_DISABLE_DEBUG_TOOLS and without linking with imgui_demo.cpp

This commit is contained in:
ocornut
2025-06-12 11:02:32 +02:00
parent 7a42233d43
commit a0b3eceec7
3 changed files with 40 additions and 37 deletions

View File

@@ -290,6 +290,8 @@ Other changes:
to be a valid low-level texture identifier.
- Debug Tools: Fonts section: add font preview, add "Remove" button, add "Load all glyphs"
button, add selection to change font backend when both are compiled in.
- Special thanks for fonts/texture related feedback to: @thedmd, @ShironekoBen, @rodrigorc,
@pathogendavid, @itamago, @rokups, @DucaRii, @Aarkham, @cyfewlp.
- IO: variations in analog-only components of gamepad events do not interfere
with trickling of mouse position events (#4921, #8508)

View File

@@ -15921,7 +15921,7 @@ void ImGui::ShowFontAtlas(ImFontAtlas* atlas)
if (loader_current == loader_freetype)
{
unsigned int loader_flags = atlas->FontLoaderFlags;
Text("Shared FreeType Loader Flags: 0x%08", loader_flags);
Text("Shared FreeType Loader Flags: 0x%08X", loader_flags);
if (ImGuiFreeType::DebugEditFontLoaderFlags(&loader_flags))
{
for (ImFont* font : atlas->Fonts)
@@ -17726,6 +17726,40 @@ void ImGui::DebugHookIdInfo(ImGuiID, ImGuiDataType, const void*, const void*) {}
#endif // #ifndef IMGUI_DISABLE_DEBUG_TOOLS
#if !defined(IMGUI_DISABLE_DEMO_WINDOWS) || !defined(IMGUI_DISABLE_DEBUG_TOOLS)
// Demo helper function to select among loaded fonts.
// Here we use the regular BeginCombo()/EndCombo() api which is the more flexible one.
void ImGui::ShowFontSelector(const char* label)
{
ImGuiIO& io = GetIO();
ImFont* font_current = GetFont();
if (BeginCombo(label, font_current->GetDebugName()))
{
for (ImFont* font : io.Fonts->Fonts)
{
PushID((void*)font);
if (Selectable(font->GetDebugName(), font == font_current))
io.FontDefault = font;
if (font == font_current)
SetItemDefaultFocus();
PopID();
}
EndCombo();
}
SameLine();
if (io.BackendFlags & ImGuiBackendFlags_RendererHasTextures)
MetricsHelpMarker(
"- Load additional fonts with io.Fonts->AddFontXXX() functions.\n"
"- Read FAQ and docs/FONTS.md for more details.");
else
MetricsHelpMarker(
"- Load additional fonts with io.Fonts->AddFontXXX() functions.\n"
"- The font atlas is built when calling io.Fonts->GetTexDataAsXXXX() or io.Fonts->Build().\n"
"- Read FAQ and docs/FONTS.md for more details.\n"
"- If you need to add/remove fonts at runtime (e.g. for DPI change), do it before calling NewFrame().");
}
#endif // #if !defined(IMGUI_DISABLE_DEMO_WINDOWS) || !defined(IMGUI_DISABLE_DEBUG_TOOLS)
//-----------------------------------------------------------------------------
// Include imgui_user.inl at the end of imgui.cpp to access private data/functions that aren't exposed.

View File

@@ -8171,43 +8171,10 @@ void ImGui::ShowAboutWindow(bool* p_open)
//-----------------------------------------------------------------------------
// [SECTION] Style Editor / ShowStyleEditor()
//-----------------------------------------------------------------------------
// - ShowFontSelector()
// - ShowStyleSelector()
// - ShowStyleEditor()
//-----------------------------------------------------------------------------
// Demo helper function to select among loaded fonts.
// Here we use the regular BeginCombo()/EndCombo() api which is the more flexible one.
void ImGui::ShowFontSelector(const char* label)
{
ImGuiIO& io = ImGui::GetIO();
ImFont* font_current = ImGui::GetFont();
if (ImGui::BeginCombo(label, font_current->GetDebugName()))
{
for (ImFont* font : io.Fonts->Fonts)
{
ImGui::PushID((void*)font);
if (ImGui::Selectable(font->GetDebugName(), font == font_current))
io.FontDefault = font;
if (font == font_current)
ImGui::SetItemDefaultFocus();
ImGui::PopID();
}
ImGui::EndCombo();
}
ImGui::SameLine();
if (io.BackendFlags & ImGuiBackendFlags_RendererHasTextures)
HelpMarker(
"- Load additional fonts with io.Fonts->AddFontXXX() functions.\n"
"- Read FAQ and docs/FONTS.md for more details.");
else
HelpMarker(
"- Load additional fonts with io.Fonts->AddFontXXX() functions.\n"
"- The font atlas is built when calling io.Fonts->GetTexDataAsXXXX() or io.Fonts->Build().\n"
"- Read FAQ and docs/FONTS.md for more details.\n"
"- If you need to add/remove fonts at runtime (e.g. for DPI change), do it before calling NewFrame().");
}
// Demo helper function to select among default colors. See ShowStyleEditor() for more advanced options.
// Here we use the simplified Combo() api that packs items into a single literal string.
// Useful for quick combo boxes where the choices are known locally.
@@ -10808,9 +10775,9 @@ void ImGui::ShowAboutWindow(bool*) {}
void ImGui::ShowDemoWindow(bool*) {}
void ImGui::ShowUserGuide() {}
void ImGui::ShowStyleEditor(ImGuiStyle*) {}
bool ImGui::ShowStyleSelector(const char* label) { return false; }
void ImGui::ShowFontSelector(const char* label) {}
bool ImGui::ShowStyleSelector(const char*) { return false; }
void ImGui::ShowFontSelector(const char*) {}
#endif
#endif // #ifndef IMGUI_DISABLE_DEMO_WINDOWS
#endif // #ifndef IMGUI_DISABLE