Commit Graph
100 Commits
Author SHA1 Message Date
ocornut be63037654 CI: Updated to use latest Windows image + VS2022.
(Untested)
2025-07-07 10:34:59 +02:00
ocornut fd75bdccb0 Fonts: for large size fonts, layout/size calculation only load glyphs metrics. Actual glyphs are renderer+packed when used by drawing functions. (#8758, #8465)
(Breaking) breaks signature of ImFontLoader::FontBakedLoadGlyph, sorry.
2025-06-30 21:16:20 +02:00
ocornut 51b3495ad8 Fonts: set a maximum font size of 512.0f at ImGui:: API level to reduce edge cases. 2025-06-30 21:04:55 +02:00
ocornut b7e5d76c79 Fonts: added ImFontAtlas::SetFontLoader() to dynamically change font loader at runtime without using internal API. (#8752, #8465) 2025-06-30 20:01:02 +02:00
ocornut bc051dcf91 Textures: Fixed support for #define ImTextureID_Invalid to non-zero value. 2025-06-27 17:03:13 +02:00
ocornut 0fe5166531 Demo: amend "Font Size" demo. (#8738) 2025-06-27 16:54:31 +02:00
ocornut 68046106dd Docs: update Backends with basic Platform backend instructions. 2025-06-27 15:32:19 +02:00
ocornut 47570d045d Docs: update Backends with direction for implementing RenderDrawData function and supporting ImGuiBackendFlags_RendererHasTextures. (#8735, #8465) 2025-06-27 15:03:10 +02:00
ocornut f18aea5246 Version 1.92.1 WIP 2025-06-27 13:30:45 +02:00
ocornut 85b2fe8486 Docs: update binaries. 2025-06-25 18:46:41 +02:00
ocornut 673eb7de96 Version 1.92.0 2025-06-25 18:19:56 +02:00
ocornut da3c86925a Demo: added TextLinkOpenURL() call in Widgets section. 2025-06-25 18:19:56 +02:00
ocornut 2819ab32f8 Layout: commented out legacy ErrorCheckUsingSetCursorPosToExtendParentBoundaries() fallback. (#5548, #4510, #3355, #1760, #1490, #4152, #150) 2025-06-25 16:39:23 +02:00
ocornut 6f21bed66d Fonts: removing assert from legacy PushFont() to mirror new PushFont(). for consistency. 2025-06-25 16:23:06 +02:00
ocornut 719a3fe98e Additional comments on ErrorCheckUsingSetCursorPosToExtendParentBoundaries(). (#5548) 2025-06-25 16:06:18 +02:00
ocornut 5bc70c68e2 Fonts: fix PushFont(NULL) to work as advertised.
Didn't properly finish ca72eb0.
2025-06-25 15:55:25 +02:00
ocornut dcf14505e2 Backends: SDLGPU: fixes call to SDL_MapGPUTransferBuffer(). Fixes artifacts on OSX/Metal. (#8465, #8703) 2025-06-25 15:48:56 +02:00
ocornut d8c6953710 Fonts: comments. 2025-06-25 12:10:13 +02:00
ocornut 89b5a2c3d5 (Breaking) Fonts: removed ImFontFlags_DefaultToLegacySize. 2025-06-24 19:10:10 +02:00
ocornut 97e0d59619 (Breaking) Fonts: removed PushFontSize(), PopFontSize(). 2025-06-24 19:09:51 +02:00
ocornut ca72eb0596 (Breaking) Fonts: obsolete PushFont() default parameter. 2025-06-24 19:09:28 +02:00
ocornut 776897d3c9 Fonts: fixed PVS Studio false positive "expression 'cmd_count != draw_list->CmdBuffer.Size' is always false." (#8720, #8465)
Amend 608dd96
2025-06-24 15:24:09 +02:00
ocornut 0218ddd575 Fonts: moved GetFont(), GetFontSize(), GetFontBaked() to higher section. 2025-06-24 15:00:42 +02:00
ocornut 6722d789e9 (Breaking) Fonts: Removed support for PushFont(NULL) which was a shortcut for "default font". 2025-06-24 14:44:38 +02:00
ocornut 6e846c56b4 Demo: fixed ID conflicts. (#8723) 2025-06-24 12:25:04 +02:00
ocornut 608dd96de6 Fonts: fixed RenderText() asserting when crossing VtxOffset change boundaries. (#8720, #8465) 2025-06-24 12:21:07 +02:00
ocornut a49ddaac89 Fonts: add comments and examples for GlyphExcludeRanges[]. 2025-06-24 11:06:41 +02:00
ocornut 613a6a964c Fonts: AddFontDefault() adds to GlyphOffset.y instead of overriding it. 2025-06-24 10:27:24 +02:00
ocornut cfa43e721a Windows: clicking on a window close button doesn't claim focus and bring to front. (#8683)
Added ImGuiItemFlags_NoFocus, ImGuiButtonFlags_NoFocus. Neither are well specified so marking as experimental.
2025-06-13 17:40:17 +02:00
ocornut d8da97f756 Fonts: UpdateCurrentFontSize() early out doesn't need to clear FontBaked.
This was meant when the code would be lower in the function (after updating e.g. g.FontSize) Amend 0e769c5.
2025-06-13 16:47:23 +02:00
ocornut ca3169310e Fonts: fixed FontBaked=NULL in initial call to SetCurrentWindow() in Begin() using previous frame value of SkipItems. (#8465)
ref 0e769c5
2025-06-13 16:46:41 +02:00
ocornut 1ec1510ef7 Fonts: clarify assert. (#8680) 2025-06-12 16:49:47 +02:00
ocornut 7ac99a4366 Backends: OSX: ImGui_ImplOSX_HandleEvent() only process event for window containing our view. (#8644) 2025-06-12 15:44:18 +02:00
ocornut b7f13df130 Docs: reformat Changelog. 2025-06-12 15:42:51 +02:00
ocornut 571dae9664 Backends: WGPU: added ImGuiBackendFlags_RendererHasTextures support. (#8465) 2025-06-12 15:31:51 +02:00
ocornut b178fd4286 Backends: WebGPU: moved sampler creation out of ImGui_ImplWGPU_CreateFontsTexture(). 2025-06-12 14:55:46 +02:00
ocornut 115a8e74c2 Fonts: update misc comments, docs. 2025-06-12 14:18:23 +02:00
ocornut 41f4acfb4f Fonts: add has_textures parameters to ImFontAtlasUpdateNewFrame(). 2025-06-12 11:44:11 +02:00
ocornut 1ce75e2bca Fixed duplicate symbols in some compile-time configurations. 2025-06-12 11:25:15 +02:00
ocornut f6fc166584 TreeNode: fixed runtime asan warning (#2920)
imgui_widgets.cpp:6923:52: runtime error: shift exponent -1 is negative
2025-06-12 11:07:08 +02:00
ocornut a0b3eceec7 Fixed using IMGUI_DISABLE_DEMO_WINDOWS without IMGUI_DISABLE_DEBUG_TOOLS and without linking with imgui_demo.cpp 2025-06-12 11:02:32 +02:00
ocornut 7a42233d43 imgui_freetype: fixed using legacy names. 2025-06-11 20:47:17 +02:00
ocornut 895bff6524 Removed unneeded check in RenderText() loop + disable static analyzer false-positive warnings. 2025-06-11 19:17:34 +02:00
ocornut df068ce11e Various/misc fixes following back-and-forth dynamic_fonts->master->docking merges. Added missing API BREAKING CHANGES section. 2025-06-11 18:50:16 +02:00
ocornut 96be957315 Docs: update Changelog, FAQ, Fonts docs. 2025-06-11 17:40:10 +02:00
ocornut 4acce85656 Fonts: tweaks demo and exposure to sliders, etc. 2025-06-11 17:36:28 +02:00
ocornut cc3d4cab21 (Breaking) renamed ImFontConfig::FontBuilderFlags -> FontLoaderFlags. ImFontAtlas::FontBuilderFlags -> FontLoaderFlags. ImGuiFreeTypeBuilderFlags -> ImGuiFreeTypeLoaderFlags. 2025-06-11 16:42:31 +02:00
ocornut e1481a731d Fonts: fixed NewFrame() when atlas builder has been created but fonts not added. Fixed GetCustomRect() after atlas clear. 2025-06-11 16:25:18 +02:00
ocornut 29fbf3c1ec Fonts: demote ImFont::GetFontBaked() as slighty internal. 2025-06-11 16:25:17 +02:00
ocornut 0e769c5418 Fonts: amend UpdateCurentFontSize() early out optimization. 2025-06-11 16:25:13 +02:00
ocornut 573f08135d Fonts: fixed PopFont() broken recovery.
"misc_recover_1" test would assert in EndFrame()
2025-06-11 16:25:10 +02:00
ocornut 2e67bd4de7 Fonts: rename to ImFontAtlasBuildLegacyPreloadAllGlyphRanges(). 2025-06-11 16:25:06 +02:00
ocornut c18301f356 Examples: remove explicit font sizes from AddFontXXX() calls. Add commented out style.FontSizeBase assignment. 2025-06-11 16:25:03 +02:00
ocornut 02f58b3207 Fonts: AddFont() functions now allow size_pixels==0.0f (only required when using certain functions)
Fonts: AddFont() funcitons allow size_pixels==0 for merged fonts.
2025-06-11 16:24:48 +02:00
ocornut bc394410a2 Examples: Win32+DX9/DX10/DX11/DX12, SDL2+DX11/OpenGL2/OpenGL3/SDLRenderer/Vulkan, SDL3+OpenGL/SDLGPU/SDLRenderer/Vulkan: made example DPI aware by default. (master + docking: partial support for multi-dpi by scaling fonts + viewports but not style)
We don't bother with WIN32_LEAN_AND_MEAN.

# Conflicts:
#	examples/example_glfw_opengl3/main.cpp
#	examples/example_sdl2_directx11/main.cpp
#	examples/example_sdl2_opengl2/main.cpp
#	examples/example_sdl2_opengl3/main.cpp
#	examples/example_sdl2_vulkan/main.cpp
#	examples/example_sdl3_opengl3/main.cpp
#	examples/example_sdl3_sdlgpu3/main.cpp
#	examples/example_sdl3_vulkan/main.cpp
#	examples/example_win32_directx10/main.cpp
#	examples/example_win32_directx11/main.cpp
#	examples/example_win32_directx12/main.cpp
#	examples/example_win32_directx9/main.cpp
2025-06-11 16:24:05 +02:00
ocornut b98e92839c Backends: SDL2, SDL3, GLFW: Backport small part of c90ea13 from docking. 2025-06-11 16:24:04 +02:00
ocornut 8269924c33 Backends: GLFW: added ImGui_ImplGlfw_GetContentScaleForMonitor(), ImGui_ImplGlfw_GetContentScaleForWindow() helpers.
# Conflicts:
#	backends/imgui_impl_glfw.cpp
2025-06-11 16:13:49 +02:00
ocornut 9da3e6696a Backends: SDL2: added ImGui_ImplSDL2_GetDpiScaleForDisplay(), ImGui_ImplSDL2_GetContentScaleForWindow() helpers. 2025-06-11 16:12:41 +02:00
ocornut d72e66cdee Examples: remove comments/references about baking and GetGlyphRangesJapanese(). 2025-06-11 16:11:03 +02:00
ocornut 2d2b1cee6b Fonts: internals: renamed g.FontSizeBeforeScaling to g.FontSizeBase for consistency.
# Conflicts:
#	imgui_internal.h
2025-06-11 16:10:45 +02:00
ocornut 3c27c643a9 Fonts: internals: renamed g.FontScale to g.FontBakedScale for clarity. Comments. 2025-06-11 16:10:18 +02:00
ocornut d85e22d205 Added style.FontScaleDpi which is the field overwritten by ImGuiConfigFlags_DpiEnableScaleFonts.
# Conflicts:
#	imgui.cpp
#	imgui.h
#	imgui_demo.cpp
2025-06-11 16:09:56 +02:00
ocornut 8766efcba6 (Breaking) Renamed io.FontGlobalScale to style.FontScaleMain.
# Conflicts:
#	imgui.cpp
2025-06-11 16:07:21 +02:00
ocornut 80c08f2286 (Breaking) Fonts: obsoleting SetWindowFontScale().
+ Comments

# Conflicts:
#	imgui.cpp
2025-06-11 16:07:05 +02:00
ocornut 59a11363a5 Fonts: ground work for allowing SizePixels to be optional. 2025-06-11 16:06:24 +02:00
ocornut 402db2ef32 Fonts: fixed passing negative sizes to stb_truetype loader. 2025-06-11 16:06:24 +02:00
ocornut 1e118ab891 Fonts: added ImGuiStyle::FontSizeBase. Ensuring PushFontSize() works before main loop and across NewFrame().
# Conflicts:
#	imgui.cpp
2025-06-11 16:06:21 +02:00
ocornut b029be6b6c Fonts: avoid calling GetFontBaked() during SetFontSize(). Also fixes loading extraneous baked on atlas that will be locked
e.g. PushFontSize() before NewFrame() on legacy backend.
2025-06-11 16:06:00 +02:00
ocornut 033cdc4133 Fonts: comments and slight packing of ImFontConfig fields. 2025-06-11 16:06:00 +02:00
ocornut 69547bd4bd Fonts: ImFont::DefaultSize -> ImFont::LegacySize. ImFontFlags_UseDefaultSize -> ImFontFlags_DefaultToLegacySize. 2025-06-11 16:06:00 +02:00
ocornut e3860aa6ac (Breaking) Fonts: removing obsolete ImFont::Scale. 2025-06-11 16:05:54 +02:00
ocornut 25f9c318e3 Fonts: added "Input Glyphs Overlap Detection Tool". Added "Clear bakes", "Clear unused" buttons. Move code. 2025-06-11 16:05:54 +02:00
ocornut 5926c877a1 Fonts: detect if ImFontAtlasUpdateNewFrame() is not being called. 2025-06-11 16:05:54 +02:00
ocornut 9f8b4bdaf1 Fonts: fixed edge case calling RenderText() without priming with CalcTextSize(). 2025-06-11 16:05:49 +02:00
ocornut b2343d6247 Fonts: fallback to default default rasterizer density + pick one from existing viewports at the time of calling AddUpdateViewport().
# Conflicts:
#	imgui.cpp
2025-06-11 16:05:33 +02:00
ocornut 83aad81279 Fonts: comments + made IMGUI_DEBUG_LOG_FONT() work without an ImGui context. 2025-06-11 16:02:10 +02:00
ocornut f3780c7354 Fonts: adding GetFontBaked() in public API. 2025-06-11 16:02:10 +02:00
ocornut 92ff153763 Fonts: added notes/comments and dummy type about renaming ImFontBuilderIO::GetBuilderForFreeType() to ImFontLoader::GetFontLoader(). 2025-06-11 16:02:10 +02:00
ocornut 3d848a886a Fonts: fixed support for IMGUI_STB_NAMESPACE. 2025-06-11 16:02:10 +02:00
ocornut 822903e56d Fonts: fixed ImFontAtlas::RemoveFont() with multiple sources.
Thanks cyfewlp!
2025-06-11 16:02:10 +02:00
ocornut 5ee9845559 Fonts: automatically set current rasterizer density to viewport density. Effectively should fix most things on macOS.
# Conflicts:
#	imgui.cpp
#	imgui.h
2025-06-11 16:02:09 +02:00
ocornut ea756ede16 Fonts: reorder ImFontFlags according likelihood of being useful. 2025-06-11 15:59:20 +02:00
ocornut 1b51a88bba Fonts: moved compare operators to internal. Removed commented out ones aimed legacy backends: not needed anymore since we didn't rename ImTextureID. 2025-06-11 15:59:20 +02:00
ocornut 91ed6e67b4 Fonts: fixed support for multiple atlases.
Moved FontAtlasOwnedByContext to OwnerContext

# Conflicts:
#	imgui.cpp
#	imgui_internal.h
2025-06-11 15:58:29 +02:00
ocornut 65e6039979 Fonts: remove unnecessary ImDrawListSharedData::FontAtlas which is actually getting in the way of using multiple atlases. 2025-06-11 15:57:44 +02:00
ocornut 46fa9e8efb Fonts: Debug display status. Fixed truncated raw texture id. Fixed FormatTextureIDForDebugDisplay(). Comments. 2025-06-11 15:57:35 +02:00
ocornut f6735c223c Fonts: remove ImFontHooks in favor of a AddRemapChar() implementation. 2025-06-11 15:57:35 +02:00
ocornut 89e880dfd1 Fonts: adding ImFontHooks for codepoint remapping. 2025-06-11 15:57:35 +02:00
ocornut 8523cbdf58 Fonts: rework ImFontLoader::FontBakedLoadGlyph() interface 2025-06-11 15:57:35 +02:00
ocornut b32ef3c05d Fonts: make RasterizerDensity a dynamic field. (temporarily exposed as SetFontRasterizerDensity()).
# Conflicts:
#	imgui.cpp
#	imgui.h
2025-06-11 15:57:35 +02:00
ocornut 5310f5fba3 Fonts: rework toward reducing reliance on ImFontConfig::DstFont since we ought to separate them. 2025-06-11 15:57:23 +02:00
ocornut 2b0d49a905 Fonts: make ImFont::Sources a vector.
Later it should become a ImSpan<>
2025-06-11 15:57:23 +02:00
ocornut e7efe94fd2 Fonts: shallow rework of ImFontAtlasBakedAddFontGlyph() to facilitate upcoming change. 2025-06-11 15:57:23 +02:00
ocornut 890fff92fd Fonts: rename many internal functions for consistency. No other changes. 2025-06-11 15:57:23 +02:00
ocornut c4fa9bb61f Fonts: add ImFontGlyph::SourceIdx. Extract code out of DebugNodeFont() into DebugNodeFontGlyphesForSrcMask().
(src_mask unused in this commit)
2025-06-11 15:57:23 +02:00
ocornut bcd1a94b89 Fonts: Extract ImFontAtlasBuildGetFontBaked() out of ImFont::GetFontBaked() mostly for consistency with upcoming changes + tweak locals in AddFont(). 2025-06-11 15:57:23 +02:00
ocornut 7840e453b5 Fonts: ImFontAtlasBuildInit() is always called with atlas->Builder == NULL. 2025-06-11 15:57:23 +02:00
ocornut eb650c468a Fonts: fixed unused variable warning. 2025-06-11 15:57:00 +02:00
ocornut c43b138a69 Fonts: no need to load current baked on SkipItems window? + removed unused field.
Avoid baked staying active after GC. Might cause issues.

# Conflicts:
#	imgui.cpp
2025-06-11 15:56:59 +02:00
ocornut cdfa537adf Fonts: packing of shared basic/line/cursor data uses more public API. 2025-06-11 15:56:39 +02:00