Releases: pthom/hello_imgui
v1.92.700
ImGui
- Update ImGui to v1.92.7-docking
RunnerParams:
- Add
iniDisabletoSimpleRunnerParams: enables to never save/load prefs
Textures & images:
- Add public
TextureGpuRAII handle (replaces internalImageAbstract) - Add
CreateTextureFromRgbaDataandDeleteTexture - Add
ImageAndSizeFromEncodedDataandLoadImageDataFromEncodedData(decode images from in-memory buffers) - Allow image / texture helpers to be used outside
HelloImGui::Run()(adds_EnsureGlLoaderForStandalone()called by_GetCachedImage)
Emscripten:
IniFolderLocationon emscripten now returns""forCurrentFolder(and"/"for other types)
Fixes:
- Skip
TearDownif already ran at exit (e.g. if it threw an exception itself) LoadDefaultFont_WithFontAwesomeIcons: log if icon font not found
Docs:
- Document theming usage
Internals
- Add
emscriptenAllowBrowserZoomShortcutspreference (true by default) to forward browser zoom shortcuts to the browser - Add
_PrivIdleFrameWaitDurationForPythonAsyncIo(internal, for Python async integration)
Full Changelog: v1.92.601...v1.92.700
v1.92.601
- Add
LoadImageDataFromAsset()— decode an image from assets into CPU memory (C++ only), with configurable channel count
Warnings hunt
- Fix potential memory error in font handling (_LoadFontImpl: pass font buffer allocated with IM_ALLOC)
- Compile
imgui_impl_metal.mmwith-fobjc-arc(fixes ARC bridge cast warnings on macOS) - Suppress Apple Clang
-Wdeprecated-declarationswarning inimgui_freetype.cpp(caused bysprintfin third-partyplutosvg-ft.h) - Update plutovg to v1.3.2 and plutosvg to v0.0.7
- Workaround plutovg
file(RELATIVE_PATH)error whenCMAKE_INSTALL_PREFIXis relative (scikit-build-core wheel builds) - Normalize install path (
./lib/→lib) to fix CMake CMP0177 warning - cmake/assets: create asset destination dirs before
copy_if_different
Full Changelog: v1.92.6...v1.92.601
v1.92.6
- Update ImGui to v1.92.6-docking
New Callbacks:
- Add callback PostNewFrame
- Add ThemeChanged callback (Fixes #156)
New RunnerParams:
- Added params iniDisable & iniClearPreviousSettings
- add topMost window attribute
- FpsIdling : Add configurable vsyncToMonitor + fpsMax. This introduces a new vsyncToMonitor field in FpsIdling, allowing users to
enable/disable synchronization with the monitor refresh rate. - Added params to control ini file settings
// `iniDisable`: _bool, default = false_. If true, do not save or load any settings to or from an ini file.
bool iniDisable = false;
// `iniClearPreviousSettings`: _bool, default = false_. If true, delete any previous settings ini file at application startup.
bool iniClearPreviousSettings = false;Emscripten
- add loading spinner overlay to default shell template
- use Glfw3 by default instead of Sdl2. We use pongasoft/emscripten-glfw under emscripten, which has good support for the clipboard
Fixes:
- Fix: ManualRender RunnerParams lifetime management
Issue: pthom/imgui_bundle#417 - RaiseWindow at startup (improve SDL initial show on macOS)
Assets Handling:
- Add AddAssetsSearchPath to allow adding additional search paths for assets (e.g. to load assets from a different location, or to load additional assets without modifying the original assets folder)
Full Changelog: v1.92.5...v1.92.6
v1.92.5
What's Changed
- Update ImGui to v1.92.5-docking
- InputTextResizable: fix for node editor (can't resize multiline edit when inside a node)
- AbstractRunner: improve non idling detection
- Emscripten: can also run using glfw3 (via pongasoft/emscripten-glfw)
- windows: Support icon.ico in _hello_imgui_add_windows_icon
Contributors
Full Changelog: v1.92.3...v1.92.5
v1.92.3
What's Changed
Assets
- Separate ImageFromAsset and ImageFromAssetWithBg: use ImageFromAssetWithBg to display images with a background or border.
- Add
SetLoadAssetFileDataFunction(LoadAssetFileDataFunc func)(Redirect asset loads to user-defined function). Thanks to Jorg Neves Bliesener - LoadFontTTF_WithFontAwesomeIcons: can load FontAwesome 6
cmake
- Add cmake option IMGUI_DISABLE_OBSOLETE_FUNCTIONS
- cmake: can use plutosvg without downloading (using HELLOIMGUI_DOWNLOAD_FREETYPE_IF_NEEDED=OFF)
Full Changelog: v1.92.0...v1.92.3
v1.92.0
Version numbers are now synced between "Dear ImGui" "Hello ImGui" and "Dear ImGui Bundle".
-
ImGui: Many Font related changes: this release brings many changes on the ImGui side (v1.92.0): do read the release notes for ImGui v1.92.0
TLDR: Fonts may be rendered at any size. Glyphs are loaded and rasterized dynamically. No need to specify ranges, prebake etc. -
Removed FontDpiResponsive: this is now handled by ImGui itself
-
Removed FontLoadingParams.glyphRanges, since ranges are not needed anymore by ImGui
Contributions
- Add utility function void ChangeWindowFullMonitorWorkArea() like void… by @Robxley in #130
- Fix checking for alphanumeric characters using proper conversion to a void undefined behavior (and assert message with MSBuild) by @Robxley in #136
- support imgui 1.91.9 breaking changes by @toge in #142
New Contributors
Full Changelog: v1.6.0...v1.92.0
v1.6.3
What's Changed
- Assets: can search with absolute path or from current working directory
- Add utility function void UseWindowFullMonitorWorkArea() (by @Robxley in #130)
- AppWindowParams: add EmscriptenKeyboardElement
- Runner: call TearDown on Setup for Python (to make it possible to recover from exceptions in notebook)
- MakeWindowSizeRelativeTo96Ppi_IfRequired: call EnsureWindowFitsThisMonitor
- update example_integration (Add CMake example / GNU Install)
- Add cmake option HELLOIMGUI_USE_EXTERNAL_JSON (to provide nlohmann json yourself)
- compatibility with CMake 4
- Fix checking for alphanumeric characters using proper conversion to a void undefined behavior (and assert message with MSBuild) by @Robxley in #136
- support imgui 1.91.9 breaking changes by @toge in #142
New Contributors
Full Changelog: v1.6.0...v1.6.3
v1.6.0
Changes
- Add `HelloImGui::ManualRender: a namespace that groups functions, allowing fine-grained control over the rendering process
- SVG Font rendering: plutosvg replaces lunasvg (option HELLOIMGUI_USE_FREETYPE_PLUTOSVG on by default): this enable to render more SVG fonts
- Improve font rendering on iOS
- Added AddDockableWindow / RemoveDockableWindow
- demo_docking: better demonstration / theme customization
- Work on pyodide integration (for ImGui Bundle)
Contributions and contributors
- Redundant boolean literal in conditional return statement and code cleanup by @TheZitroX in #117
- Changed Minor typo in CMakeLists.txt by @abinash18 in #122
New Contributors
- @TheZitroX made their first contribution in #117
Full Changelog: v1.5.2...v1.6.0
v1.5.2
- Updated imgui to v1.90.9
- Small fixes
Full Changelog: v1.5.0...v1.5.2
v1.5.1
Changes
- Improved rendering on Windows (via antialiasing)
- Add IniFolderType.AbsolutePath
- Polish themes
- Add callback PostRenderDockableWindows
- Added optional hello_imgui.ini file,
as a way to do advanced configuration for Dpi and OpenGL rendering options - Add PushTweakedTheme / PopTweakedTheme (different ImGui windows can use a different theme. See demo docking)
- Add DpiAwareParams: see doc
- Add HelloImGui::ImageAndSizeFromAsset see doc
- callbacks.LoadAdditionalFonts can be modified and reused during execution
- add null backend (see https://pthom.github.io/hello_imgui/book/doc_params.html#backend-selection)
- Add optional OpenGlOptions
- Add widgets InputTextResizable + WidgetWithResizeHandle: see doc
- Add HelloImGui::LoadDpiResponsiveFont: see doc
Add FontAwesome options with support for FontAwesome 4 and FontAwesome 6:
Breaking change: you need to include manually the icons: #include "hello_imgui/icons_font_awesome_4.h"
The default icon font is FontAwesome 4 (for backward compatibility), but v6 includes many more icons
In order to select Font Awesome 6, you need to set the following in your runnerParams:
runnerParams.runnerCallbacks.defaultIconFont = hello_imgui::IconFont::FontAwesome6;and then include:
#include "hello_imgui/icons_font_awesome_6.h"Contributions & contributors
Many thanks to all contributors!
What's Changed
- Move more targets to solution folders by @learn-more in #94
- Disable python line ending translation by @learn-more in #97
- Remove obsolete
BackendTypeselection by @learn-more in #96 - Fixed a bug with the google closure compiler failing when trying to c… by @abinash18 in #102
- Simplify hello_imgui_add_app win32 implementation by @xuboying in #103
- format a place by @sAkuraOfficial in #104
New Contributors
- @learn-more made their first contribution in #94
- @abinash18 made their first contribution in #102
- @xuboying made their first contribution in #103
- @sAkuraOfficial made their first contribution in #104
Full Changelog: v1.4.2...v1.5.0