3f0699cf0 Backends: Vulkan: Fix failing assertion for platforms where viewports are not supported (#8734) adfa5364c Merge branch 'master' into docking 673eb7de9 Version 1.92.0 da3c86925 Demo: added TextLinkOpenURL() call in Widgets section. 2819ab32f Layout: commented out legacy ErrorCheckUsingSetCursorPosToExtendParentBoundaries() fallback. (#5548, #4510, #3355, #1760, #1490, #4152, #150) 6f21bed66 Fonts: removing assert from legacy PushFont() to mirror new PushFont(). for consistency. 719a3fe98 Additional comments on ErrorCheckUsingSetCursorPosToExtendParentBoundaries(). (#5548) 5bc70c68e Fonts: fix PushFont(NULL) to work as advertised. dcf14505e Backends: SDLGPU: fixes call to SDL_MapGPUTransferBuffer(). Fixes artifacts on OSX/Metal. (#8465, #8703) d8c695371 Fonts: comments. e4bba0b53 Merge branch 'master' into docking 89b5a2c3d (Breaking) Fonts: removed ImFontFlags_DefaultToLegacySize. 97e0d5961 (Breaking) Fonts: removed PushFontSize(), PopFontSize(). ca72eb059 (Breaking) Fonts: obsolete PushFont() default parameter. 04a5b9c2c Backends: SDL3: fixed pulling SDL_PROP_WINDOW_COCOA_WINDOW_POINTER into viewport->PlatformHandleRaw. (#8725, #8726) 776897d3c Fonts: fixed PVS Studio false positive "expression 'cmd_count != draw_list->CmdBuffer.Size' is always false." (#8720, #8465) 7cd567202 Merge branch 'master' into docking 0218ddd57 Fonts: moved GetFont(), GetFontSize(), GetFontBaked() to higher section. 6722d789e (Breaking) Fonts: Removed support for PushFont(NULL) which was a shortcut for "default font". 6e846c56b Demo: fixed ID conflicts. (#8723) 608dd96de Fonts: fixed RenderText() asserting when crossing VtxOffset change boundaries. (#8720, #8465) a49ddaac8 Fonts: add comments and examples for GlyphExcludeRanges[]. 613a6a964 Fonts: AddFontDefault() adds to GlyphOffset.y instead of overriding it. 0dc2885f3 InputText: fix for InsertChars() to work on read-only buffer. (#8714, #8689, #8242) efe2b21a5 Backends: GLFW: Fixed not installing WndProc hook in all GLFW version, so AddMouseSourceEvent() logic was missing for some viewports. e132b444a Backends: GLFW: Fixed crash when using GLFW 3.3 (#8713, #8676, #8239, #8069) 4fde473f3 Backends: warning fixes (for docking branch). afe20dc9b Backends: warning fix. b580c1130 Merge branch 'master' into docking e97e55adb Backends: Fixed various warnings discovered when using MinGW GCC 15/Clang on latest backends. 2f9c518ca Textures: ImTextureData::GetPixels() returns void* for clarity. 9a50c0917 Bsckends: SDL2, GLFW: fixed ImGui_ImplXXXX_GetContentScaleXXX functions never using SDL 2.0.4 & GLFW 3.3 path in master. 3a964d18e Comments on ImGuiMod_XXXX and ImGuiKey_GamepadXXXX values. 8d6e66d38 Backends: DX10, DX11, DX12, OpenGL3, Vulkan, WGPU: Assert when CreateDeviceObjects() calls return false. f7dabede8 Backends: Allegro5: Fixed missing invisible mouse cursor, broken by ee8941e0d. 725d185a3 Backends: DirectX12: fixed build on MinGW. (#8702, #4594) 2a8c75f3e Backends: GLFW: amend for multi-context support with multi-viewport. (#8676, #8239, #8069) c2c38beec Merge branch 'master' into docking f633a6058 Backends: GLFW: Added support for multiple Dear ImGui contexts. (#8676, #8239, #8069) d290e583c Backends: GLFW: fixed WndProc relying on current context. (#8676, #8239, #8069) c56e8b496 imgui_freetype: fixed NULL that creeped in instead of nullptr. 344d5ff4b Merge branch 'master' into docking b2c73596a InputText: fixed a buffer overrun that could happen when using dynamically resizing buffers. (#8689) 12626b85c InputText: minor changes to match for both insert chars paths to look more similar. 08bb34814 Misc: removed static linkage from operators to facilitate using in C++ modules. (#8682, #8358) 041abe852 Revert "Misc: removed static linkage from operators to facilitate using in C++ modules. (#8682, #8358) [@radjkarl]" 39a90ac4d Misc: removed static linkage from operators to facilitate using in C++ modules. (#8682, #8358) [@radjkarl] f2e4e8039 Windows: BeginChild(): fixed being unable to combine manual resize on one axis and automatic resize on the other axis. (#8690) fe048efea DrawList, Fonts: fixed PushFont()/AddImage() not restoring correct atlas texture id when using multiple atlas (#8694) 24f7328e5 DrawList, Fonts: fixed ImFontAtlasTextureRepack() overwriting draw list shared data UV's etc. even when not bound. (#8694, #8465) 842837e35 imgui_freetype: fix conversion null -> bool in FontBakedLoadGlyph (#8696) 6b3cbb10a Backends: Vulkan: correct minimum pool size assertion (#8691) d896eab16 Backends: OSX: ImGui_ImplOSX_HandleEvent() only process event for window containing our viewports. Amend 7ac99a4 for docking. (#8644) 4cf85ee54 Merge branch 'master' into docking cfa43e721 Windows: clicking on a window close button doesn't claim focus and bring to front. (#8683) d8da97f75 Fonts: UpdateCurrentFontSize() early out doesn't need to clear FontBaked. ca3169310 Fonts: fixed FontBaked=NULL in initial call to SetCurrentWindow() in Begin() using previous frame value of SkipItems. (#8465) 1ec1510ef Fonts: clarify assert. (#8680) 7ac99a436 Backends: OSX: ImGui_ImplOSX_HandleEvent() only process event for window containing our view. (#8644) b7f13df13 Docs: reformat Changelog. 571dae966 Backends: WGPU: added ImGuiBackendFlags_RendererHasTextures support. (#8465) b178fd428 Backends: WebGPU: moved sampler creation out of ImGui_ImplWGPU_CreateFontsTexture(). 115a8e74c Fonts: update misc comments, docs. 41f4acfb4 Fonts: add has_textures parameters to ImFontAtlasUpdateNewFrame(). 7b8e00013 Fixed duplicate symbols in some compile-time configurations. 1ce75e2bc Fixed duplicate symbols in some compile-time configurations. e8f831dea Merge branch 'master' into docking f6fc16658 TreeNode: fixed runtime asan warning (#2920) a0b3eceec Fixed using IMGUI_DISABLE_DEMO_WINDOWS without IMGUI_DISABLE_DEBUG_TOOLS and without linking with imgui_demo.cpp 7d70c0ff9 Merge branch 'master' into docking 7a42233d4 imgui_freetype: fixed using legacy names. 895bff652 Removed unneeded check in RenderText() loop + disable static analyzer false-positive warnings. e43fd7537 Merge branch 'master' into docking df068ce11 Various/misc fixes following back-and-forth dynamic_fonts->master->docking merges. Added missing API BREAKING CHANGES section. e4055e763 Fonts: Misc merge fixes. 1e130e045 Examples: set ConfigDpiScaleFonts / ConfigDpiScaleViewports in all examples already setup for scaling. 65857236c Backends: GLFW, SDL2, SDL3, update for docking to use helpers. 6af6cec23 Merge branch 'master_fonts' into docking 96be95731 Docs: update Changelog, FAQ, Fonts docs. 4acce8565 Fonts: tweaks demo and exposure to sliders, etc. cc3d4cab2 (Breaking) renamed ImFontConfig::FontBuilderFlags -> FontLoaderFlags. ImFontAtlas::FontBuilderFlags -> FontLoaderFlags. ImGuiFreeTypeBuilderFlags -> ImGuiFreeTypeLoaderFlags. e1481a731 Fonts: fixed NewFrame() when atlas builder has been created but fonts not added. Fixed GetCustomRect() after atlas clear. 29fbf3c1e Fonts: demote ImFont::GetFontBaked() as slighty internal. 0e769c541 Fonts: amend UpdateCurentFontSize() early out optimization. 573f08135 Fonts: fixed PopFont() broken recovery. 2e67bd4de Fonts: rename to ImFontAtlasBuildLegacyPreloadAllGlyphRanges(). c18301f35 Examples: remove explicit font sizes from AddFontXXX() calls. Add commented out style.FontSizeBase assignment. 02f58b320 Fonts: AddFont() functions now allow size_pixels==0.0f (only required when using certain functions) bc394410a 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) b98e92839 Backends: SDL2, SDL3, GLFW: Backport small part of c90ea13 from docking. 8269924c3 Backends: GLFW: added ImGui_ImplGlfw_GetContentScaleForMonitor(), ImGui_ImplGlfw_GetContentScaleForWindow() helpers. 9da3e6696 Backends: SDL2: added ImGui_ImplSDL2_GetDpiScaleForDisplay(), ImGui_ImplSDL2_GetContentScaleForWindow() helpers. d72e66cde Examples: remove comments/references about baking and GetGlyphRangesJapanese(). 2d2b1cee6 Fonts: internals: renamed g.FontSizeBeforeScaling to g.FontSizeBase for consistency. 3c27c643a Fonts: internals: renamed g.FontScale to g.FontBakedScale for clarity. Comments. d85e22d20 Added style.FontScaleDpi which is the field overwritten by ImGuiConfigFlags_DpiEnableScaleFonts. 8766efcba (Breaking) Renamed io.FontGlobalScale to style.FontScaleMain. 80c08f228 (Breaking) Fonts: obsoleting SetWindowFontScale(). 59a11363a Fonts: ground work for allowing SizePixels to be optional. 402db2ef3 Fonts: fixed passing negative sizes to stb_truetype loader. 1e118ab89 Fonts: added ImGuiStyle::FontSizeBase. Ensuring PushFontSize() works before main loop and across NewFrame(). b029be6b6 Fonts: avoid calling GetFontBaked() during SetFontSize(). Also fixes loading extraneous baked on atlas that will be locked 033cdc413 Fonts: comments and slight packing of ImFontConfig fields. 69547bd4b Fonts: ImFont::DefaultSize -> ImFont::LegacySize. ImFontFlags_UseDefaultSize -> ImFontFlags_DefaultToLegacySize. e3860aa6a (Breaking) Fonts: removing obsolete ImFont::Scale. 25f9c318e Fonts: added "Input Glyphs Overlap Detection Tool". Added "Clear bakes", "Clear unused" buttons. Move code. 5926c877a Fonts: detect if ImFontAtlasUpdateNewFrame() is not being called. 9f8b4bdaf Fonts: fixed edge case calling RenderText() without priming with CalcTextSize(). b2343d624 Fonts: fallback to default default rasterizer density + pick one from existing viewports at the time of calling AddUpdateViewport(). 83aad8127 Fonts: comments + made IMGUI_DEBUG_LOG_FONT() work without an ImGui context. f3780c735 Fonts: adding GetFontBaked() in public API. 92ff15376 Fonts: added notes/comments and dummy type about renaming ImFontBuilderIO::GetBuilderForFreeType() to ImFontLoader::GetFontLoader(). 3d848a886 Fonts: fixed support for IMGUI_STB_NAMESPACE. 822903e56 Fonts: fixed ImFontAtlas::RemoveFont() with multiple sources. 5ee984555 Fonts: automatically set current rasterizer density to viewport density. Effectively should fix most things on macOS. ea756ede1 Fonts: reorder ImFontFlags according likelihood of being useful. 1b51a88bb Fonts: moved compare operators to internal. Removed commented out ones aimed legacy backends: not needed anymore since we didn't rename ImTextureID. 39f6c793b Fonts: proof of concept support for user textures. 91ed6e67b Fonts: fixed support for multiple atlases. fad5280d4 Fonts: fixed broken support for legacy backend due to a mismatch with initial pre-build baked id. 65e603997 Fonts: remove unnecessary ImDrawListSharedData::FontAtlas which is actually getting in the way of using multiple atlases. 46fa9e8ef Fonts: Debug display status. Fixed truncated raw texture id. Fixed FormatTextureIDForDebugDisplay(). Comments. f6735c223 Fonts: remove ImFontHooks in favor of a AddRemapChar() implementation. 89e880dfd Fonts: adding ImFontHooks for codepoint remapping. 8523cbdf5 Fonts: rework ImFontLoader::FontBakedLoadGlyph() interface 4dec946ae Fonts: don't pretend to half recover from OOM for now + debug log filename on load failure. b32ef3c05 Fonts: make RasterizerDensity a dynamic field. (temporarily exposed as SetFontRasterizerDensity()). 8140a9d8a Fonts: comments on ImTextureData fields. 42e7bb80b imgui_freetype: removed anonymous namespace + extracting two functions outside of ImGui_ImplFreeType_FontSrcData. 6a455e128 imgui_freetype: moving data out of ImGui_ImplFreeType_FontSrcData. 5310f5fba Fonts: rework toward reducing reliance on ImFontConfig::DstFont since we ought to separate them. 2b0d49a90 Fonts: make ImFont::Sources a vector. e7efe94fd Fonts: shallow rework of ImFontAtlasBakedAddFontGlyph() to facilitate upcoming change. 890fff92f Fonts: rename many internal functions for consistency. No other changes. c4fa9bb61 Fonts: add ImFontGlyph::SourceIdx. Extract code out of DebugNodeFont() into DebugNodeFontGlyphesForSrcMask(). bcd1a94b8 Fonts: Extract ImFontAtlasBuildGetFontBaked() out of ImFont::GetFontBaked() mostly for consistency with upcoming changes + tweak locals in AddFont(). 7840e453b Fonts: ImFontAtlasBuildInit() is always called with atlas->Builder == NULL. eb650c468 Fonts: fixed unused variable warning. c43b138a6 Fonts: no need to load current baked on SkipItems window? + removed unused field. cdfa537ad Fonts: packing of shared basic/line/cursor data uses more public API. ed2bb2cff Fonts: encode additional data in ImFontAtlasRectId to detect invalid id + added Rects debug browser. 0436fba13 Fonts: fixed compaction gc-ing baked fonts used in the current frame + rename. e8035b94e Fonts: misc tidying up. d789263e0 Fonts: internal rendering uses higher level functions. 12599da53 Fonts: do not mark whole ImTextureData struct as IMGUI_API to fix warning when used in ImVector<> (8559) fb5c53708 Fonts: changing loader/backend or loader flags may be done without losing custom rects. Sharing more code. 526a5d0f8 Fonts: tidying up. 1ea9ff367 Fonts: add optional out parameter to AddCustomRect() 074bf39e4 Fonts: GC Compact All exposed in Metrics->Memory Allocations includes compacting texture data. 23dc46c4f Fonts: added RemoveCustomRect(). e9cf3de58 Fonts: moved ImFontAtlasRectId back to public API. 69d28f867 Fonts: added ImFontAtlasRectId_Invalid == -1 db30e1b5b (Breaking) Fonts: rework GetCustomRect() api. Reintroduce ImFontAtlasRect. f40274702 (Breaking) Fonts: renamed AddCustomRectRegular() -> AddCustomRect(). 253dff765 Fonts: Comments. fc8708113 Fonts: fixed GetCustomRectUV(). 9324961cd Fonts: fixed calling AddFontXXX not invalidating texture for legacy backends. 44498825c (Breaking) Fonts: PushFont() default to preserve current font size. 168b97c29 Fonts: removed size rounding in AddFont() which breaks relative sizing of merged fonts (8502) 2de15dc64 Fonts: fixed legacy backend path preloading all sources sizes erroneously + failing to use ellipsis. 5460903f9 Fonts: awkwardly alias old TexID name to TexRef using an union (may backtrack and just keep old name) cb4c03756 Fonts: detect if backend assign to texture on creation but doesn't update Status. a548cd993 Fonts: avoid both ImTextureRef fields being set simultaneously. 0fff7ceda Fonts: comments, tweaks, minor amends. e41bf16ff Fonts: fixed ImTextureID() being zero-cleared instead of using ImTextureUserID_Invalid. . 8bd1fc4f0 Textures: Added ImTextureRef::GetTexID() mostly for consistency. cc65015e4 Fonts: fixed crashing password fields. 41517bca0 (Breaking) Fonts: renamed CalcCustomRectUV() to GetCustomRectUV() for simplicity. 4048494aa Fonts: rename ImFontAtlasBuildClearTexture() to ImFontAtlasBuildClear(). f816b861f (Breaking) Fonts: rename GetCustomRectByIndex() to GetCustomRect(). Made return struct const. 85d050758 Fonts: narrowed invalid value for ImFontAtlasRectId to -1 a we will change implementation. b12c42e75 Fonts: change uses of ImFontAtlasRect to ImTextureRect for simplicity. e76cfe5aa Fonts: fixed implicit init when calling AddCustomRectRegular(). LoaderShutdown match BuildDestroy. 7ac1bff48 Fonts: fixed an issue calling legacy ImFontAtlas::Clear(). 144f44421 Fonts: fixed memory leaks, shutting down font loader, and on AddFont() failure in FreeType backend. 52a686377 Textures: ImTextureData pixels are not immediately destroyed on setting ImTextureStatus_WantDestroy. 8ea0ae454 Fonts: fixed a bug using size specified by secondary font sources. 735d31e54 Demo: Exposed some basic UI in demo for sanity. 41a0e991f Fonts: Added UI to edit FreeType loader flags. Added ImFontAtlasBuildReloadAll() / ImFontAtlasBuildReloadFont() 40f988ce2 Fonts: in ShowFontAtlas() preserve open-state for latest texture. Improve debug display. c98e3c0ef Fonts: ImFontConfig::GlyphExcludeRanges is owner and copied. da51485e1 Fonts: Obsolete GetGlyphRangesXXX() functions. Update font documentation. 93410c47e Fonts: Fixed various small warnings / build issues. dec8d3863 Fonts: Added a ImFontFlags_NoLoadError flag to let user code try file paths. (3611) 131f5c57a Textures: Detect when using a texture that's about to be destroyed. 0b7133912 Demo: Add a "Fonts" section for visibility. 161e22232 Fonts: GetFontBaked() default to searching for closest size font. e98a314e0 Textures: Added ImTextureData::UsedRect. 2bf6879da Fonts: tidying up font scale logic. ef6beaeff Fonts: removed LockSingleSrcConfigIdx which isn't needed anymore since we don't load glyphs in ImFontAtlasBuildAddFont(). d8a612f73 Fonts: Fallback glyph is now lazily loaded on demand (yay!). Moving ImFontBaked:: functions outside of class. 78a17038c imgui_freetype: no need to store metrics locally. 18c8a93cc Fonts: Rework ImFontLoader signatures. c06a7585a Fonts: A font source can specify its own loader/backend. 1cfc0de31 Fonts: Core allocates per-baked-per-src backend buffers, to allow having custom backend per font source. Backend BakedInit/Destroy/AddGlyph process a single source. d59f10d7f Fonts: reinstated ImFontAtlasBuildSetupFontCreateEllipsisFromDot() compatible with baked system, lazily baked. 76b252f80 Fonts: Added ImFontAtlasBakedSetFontGlyphBitmap(). 92993e68c Fonts: Baked system, fix subsequent sources overriding shared font metrics. dc1320df6 Fonts: ImFontFlags: ImFontFlags_NoLoadGlyphs + add ImFontFlags_LockBakedSizes 8a8d8a7b3 Fonts: Exposed CompactCache(). Hide ClearCache(). eb79e3ab3 Fonts: Restore a functional AddCustomRectFontGlyph(). 815553c4b Fonts: ImFontConfig: added GlyphExcludeRanges[]. 96786a183 Fonts: Create a fallback glyph if none is available (fix crash on fonts with no fallback) 066b24d74 Fonts: Fixed _OnChangedTextureID() asserting when calling on e.g. finalized drawlists. 82b81fce6 Fonts: PushFontSize() with -1 uses sources[0]'s size for now (backward compat design) 658059022 Fonts: Allow PushFont/NewFrame/PopFont idioms to function. 842c313db Fonts: Reordered ImFont fields. 99f6b305c Fonts: Baked system, v12: support GlyphOffset / GlyphMinAdvanceX / GlyphMaxAdvanceX by scaling from ref value. df694c89b Fonts: Baked system, v11. 57d345ff8 Textures: Comments around ImTextureID type. 3ce753c48 Fonts: Debug dump to disk, debug log. be151977c Fonts: Texture resizing favor growing height, halve pack nodes. daaf0e4ef Fonts: Added PushFontSize(), PopFontSize() api. Added font_size param to PushFont() as well. 80404fae3 Fonts: clarify ClearTexData() as not supported with dynamic atlases. 093d01269 Fonts: Baked system, with auto-bind, v10. 7aba8da55 (Breaking) Fonts: CalcWordWrapPositionA() -> CalcWordWrapPosition(), takes size instead of scale as this will be needed. a2371ef90 Internals: added ImStableVector<> helper. fb69a09d6 Fonts: Fixed leak due to indirectly recursing ImFontAtlasPackInit(). c5653d5f3 Fonts: stb_truetype loader: Reworked scale handling to suggest this is not required caching. b203ac1e0 Fonts: Reduced reliance on ImFontConfig::DstFont. 722f6013f Fonts: Added a bit of user facing tooling. bd19bc508 Fonts: Removed BuildClearGlyphs(), conflated with ClearOutputData() 2bf6552f2 Fonts: Fixed/improved support for legacy backend. SetTexID() writes into our ImTextureData to keep the indirection, clear TexIsBuilt. ba62becb7 (Breaking) Fonts: remove ImFontAtlasCustomRect which is now the same as ImTextureRect a509790a1 Fonts: Added back support for AddCustomRectFontGlyph() 953ce90d2 Fonts: ImFontAtlasBuildInit() uses the occasion to sync HasTexUpdates from imgui context, narrowing the scope where it isn't set. 288055180 Fonts: Comments, remove ImFontAtlas facing BuildGrowTexture(), BuildCompactTexture(). Make IsBuilt() obsolete. 8ed4e2dde Fonts: Basic heuristic to repack instead of growing. Moved rects count/surface to internals. 2137b3448 Textures: Added atlas's TexMinWidth/TexMinHeight/TexMaxWidth/TexMaxHeight. 14614f561 Textures: Ensure UpdateBox is set on texture _WantCreate state too. b06f3c6d1 Fonts: turn public facing BuildRegisterGlyph() into ImFontAtlasBuildAddFontGlyph() thats sets up UV. 4ff1631b3 Fonts: Rasterizing ellipsis character from dot as one glyph + avoid preloading if it not needed. a2bc3d81c Fonts: Fixed support for multiple contexts. cec3e945f Fonts: added ImFontAtlas::RemoveFont(), fixed various leaks. df8450d92 Fonts: marked ImFontAtlas::Build() as obsolete 4399599de Fonts: ClearCache(), ImFontAtlasBuildGetTextureSizeEstimate(), tweak clearing functions. ef1521b47 Fonts: fix for password fields a51a26e2a Fonts: use a structure for post-processing - easier to pass things around and iterate on. 553b1c301 Fonts: repack without full reload, discard rectangle, fixed CustomRect api with stable id, remove public BuildInit(). a6c780192 Fonts: Measured and tweaked CalcTextSize() computation to minimize cost in our stress tests. 076a1ab85 Fonts: Misc amends, remove _PackNodesFactor, comments. ac13683c2 Fonts: ImFontAtlas accept DrawListSharedData not being set. 43cc3fc8b Fonts: optimization bake FallbackAdvanceX into IndexAdvanceX[]. 4f27792ff (Breaking) Removed atlas->TexDesiredWidth now unnecessary (github 327) b670f799d Fonts: use TexGlyphPadding. Fixed packing issues. Removed old code. 0f553c57b Fonts: AddFont() actually does the work, so we can handle errors & return an accurate return value. 1269467fa imgui_freetype: Removing old code. 08e1e7681 imgui_freetype: Added Freetype implementation for new architecture. 26c017d5e Backends: Metal: added ImGuiBackendFlags_RendererHasTextures support. ee8941e0d Backends: Allegro5: added ImGuiBackendFlags_RendererHasTextures support. 16fe666e3 Backends: SDLGPU3: added ImGuiBackendFlags_RendererHasTextures support. e538883a2 Backends: SDL_Renderer3: added ImGuiBackendFlags_RendererHasTextures support. 9fa65cd19 Backends: SDL_Renderer2: added ImGuiBackendFlags_RendererHasTextures support. abe294bfd Backends: Vulkan: added ImGuiBackendFlags_RendererHasTextures support. 0430c55b8 Backends: OpenGL2: added ImGuiBackendFlags_RendererHasTextures support. dbb91a574 Backends: OpenGL3: added ImGuiBackendFlags_RendererHasTextures support. eefe5d5aa Backends: DirectX12: added ImGuiBackendFlags_RendererHasTextures support. 2d2b1bc1c Backends: DirectX10: added ImGuiBackendFlags_RendererHasTextures support. 75efba7ec Backends: DirectX9: added ImGuiBackendFlags_RendererHasTextures support 372fd27e7 Backends: DirectX11: added ImGuiBackendFlags_RendererHasTextures support. c20e160e0 Textures: added texture list pointer in ImDrawData. 208705368 Textures: Adding a RefCount to textures so backend can avoid destroying them on shutdown if atlas is shared. a21a2e855 Textures: Single Textures[] array allows backend to not have to care about atlases. ee357aadd Textures: Add ImTextureUserID_Invalid + introducing SetTexID(). 2cde9125d Fonts: Selecting font config source list done by shared code. 0f0473bf1 Fonts, Textures: main code for ImGuiBackendFlags_RendererHasTextures feature. 191a728ec (Breaking) added ImTextureRef struct. Changed ImDrawCmd::TextureId to TexRef. e55415bfe (Breaking) renamed/moved ImGuiConfigFlags_DpiEnableScaleFonts -> ioConfigDpiScaleFonts, ImGuiConfigFlags_DpiEnableScaleViewports -> io.ConfigDpiScaleViewports b2f39318c Adding .cache to ignore list. (#8674) 201899b61 Backends: OpenGL3: Fixed using non-existing features on GLES 3.20 which would push a GL error. (#8664) eaac68ca2 Merge branch 'master' into docking c3d7ada9d Demo: add indentation to simplify upcoming merges. 91f72bbe1 Demo: omit ImGui:: prefix from ShowStyleEditor(), ShowUserGuide() code. 9485aeb5c Demo: changed default framed item width to use Min(GetFontSize() * 12, GetContentRegionAvail().x * 0.40f). e877f78b0 TreeNode: minor amend to b7ab2b7. (#2920) ef503ab0c TreeNode: fixed out of bound access in ImGuiTreeNodeFlags_DrawLinesXXX feature. (#2920) b7ab2b752 TreeNode: fixed an issue where tree lines are not drawn on node opening frame. (#2920) a92b53df7 Backends: Win32: Viewports: handle WM_DPICHANGED in backend when ImGuiConfigFlags_DpiEnableScaleViewports flag is enabled. ac6b84a7d Viewports: fixed handling of simultaneous move + resize (e.g. toggling maximized) when ImGuiConfigFlags_DpiEnableScaleViewports is enabled. 5e17c0801 Merge branch 'master' into docking 69e1fb50c Docs: fixed missing commit credit. (#8656) e6913f58b imgui_freetype: Update lunasvg API to support v3.0+ (#8656, #6842, #6591) c3a3a39e9 Nav: fixed abnormal clipping disable over large ranges, could lead to stall. (#3841, #1725) 19289d587 Nav: fixed scroll fallback (when there are no interactive widgets to jump to) not being enabled on windows with menu or title bar. c53c9a864 Clipper: further mitigation/improvements for abnormally large contents ranges (larger than e.g. 2^31). (#3609, #8215) 87a6443c5 Scroll: fixed contents size, scrollbar visibility and scrolling reet issue with abnormally large contents ranges. (#3609, #8215) 2bf57bbad Refactor: move SetCurrentFont(), PushFont(), PopFont() to a section. 77f1d3b31 Refactor: move SetCurrentFont(), PushFont(), PopFont() to a section. 407a0b972 (Breaking) Fonts: CalcWordWrapPositionA() -> CalcWordWrapPosition(), takes size instead of scale. 346f5c681 Platform IME: Fixed multi-viewports IME support, affecting SDL backends. (#8648, #8584, #7492, #6341) 5f0acadf7 RenderTextEllipsis() added breaking comments. 143924bbf Image(), ImageWithBg(): added extra comments. (#8131, #8238) 1ffa7a40a TextLinkOpenURL(): added bool return value on click. (#8645, #8451, #7660) e11ad6b77 Merge branch 'master' into docking 415dddf0f Tooltips: tooltips have a maximum size corresponding to host display/monitor size. 10a0eb3e1 Alter windows min/max size logic to prioritize enforcing size_max bounds rather than size_min. cdb5cbe6f (Breaking) Commented out ImGuiListClipper::ForceDisplayRangeByIndices() which was obsoleted in 1.89.6. d93d918ec (Breaking) Commented out PushAllowKeyboardFocus()/PopAllowKeyboardFocus() which was obsoleted in 1.89.4. (#3092) 6d939fced (Breaking) TreeNode: renamed ImGuiTreeNodeFlags_NavLeftJumpsBackHere to ImGuiTreeNodeFlags_NavLeftJumpsToParent for clarity. (#1079, #8639) 9361c3517 Backends: SDL2, SDL3: maximum room for sanitizer to not be zealous. c008c7d49 Merge remote-tracking branch 'origin/master' into docking c90ea1315 Viewports: added per-viewport FramebufferScale, Platform_GetWindowFramebufferScale() + Backends: GLFW, SDL2, SDL3, Apple: added support. (#1065, #1542, #1676, #1786, #2826, #3757, #5081, #5580, #5592, #6465, #7273, #7779 etc.) ) 63554bcee Backends: OSX: rename internal struct for consistency with other backends. b5a73033a Examples: Apple: Amend build scripts and gitignore, fix misc OSX warnings. (#8637) 2df9e9b10 Examples: Apple: add Makefile for example_apple_metal, example_apple_opengl2. (#8637) 2fd474132 Update pull_request_template.md 4e487cfa9 stb_textedit: subsequent comments to match ocornut/stb branch. (#8635, #7925) 1387d356a stb_textedit: subsequent fixes for next/prev word impl (not used by imgui) + PageUp/Home/End (no side effect but more correct) (#8635, #7925) 5c3ac9333 stb_textedit: minor edits to match PR submitted upstream. 61242e2e6 InputText: fixed cursor positioning issue using up/down keys on non-ASCII text. (#8635, #7925) 08689c51a Backends: GLFW, SDL2, SDL3: include GLFW/SDL version number in io.BackendPlatformName. 4a6ba9539 Backends: SDL3: Comments (#6146) e33069ce5 Viewports: fallback DpiScale pulled from fallback Monitor for consistency. b9ac32a0d Backends: DirectX12: Make sure texture sampling in the dx12 backend is not limited to the highest mip. (#8631) f484af34c Font: rename ImFont::AddRemapChar() parameters for clarity. (#609) ba513ba80 Backends: DX10, DX11, DX12: honor FramebufferScale. (#8412) 0a222a3e2 Backends: Vulkan: fixed build with VK_NO_PROTOTYPES. bf68040dc Backends: Vulkan: fixed build with VK_NO_PROTOTYPES. 37fba4bed Backends: Vulkan: fixed validation errors during window detach in multi-viewport mode. [docking branch amend] (#8600, #8176) 1c8fad73f Merge branch 'master' into docking bbc89b639 Backends: Vulkan: fixed validation errors during window detach in multi-viewport mode. (#8600, #8176) 64a5e2748 Docs: bad merge error. d1dc2a329 Backends: Vulkan: Load dynamic rendering functions using vkGetDeviceProcAddr() + try both non-KHR and KHR versions. (#8600, #8326, #8365) 46235e91f Examples: SDL3: specify SDL_WINDOW_HIGH_PIXEL_DENSITY and make centering consistent + call SDL_RenderScale(). afd3a36f6 Demo: added basic Fonts section under main demo (same as Metrics one) for visibility. c5e2bb7cd Backends: SDLGPU3: Fixed creating atlas texture earlier than other backends. ef62aa733 Backends: SDL3: macOS: Fixed secondary-viewports not appearing on a different monitor than the main viewport. e3bfaab3f Examples: update xcode projects. c0dfd65d6 Backends: Win32: Fixed an issue where externally losing mouse capture (due to e.g. focus loss) would fail to claim it again the next subsequent click. (#8594) 20066a896 Examples: DirectX12+Win32: also test for IsIconic() for sleeping since we don't seem to get a DXGI_STATUS_OCCLUDED signal when minimized. (#8603) 3f8033324 Demo: Dual List Box: fix sorting function, in theory should return 0 when equal. (#8601) 75ddd9a6c Backends: SDLGPU3: added support for ImDrawCallback_ResetRenderState. (#8599) b3c96bde8 Demo: use IM_ARRAYSIZE more consistently InputText calls in demo window (#8596) cbb8edb0b Tables: fixed an assert when combining Tables, Frozen Rows, Clipper and BeginMultiSelect() in a certain order. (#8595, #8250) fcdaa3279 Backends: GLFW: Disable multi-viewports under Wayland. (#8587) fe298cf98 Revert "Backends: SDL2, SDL3: viewports created with ImGuiViewportFlags_NoInputs are passing SDL_WINDOW_TOOLTIP to SDL_CreateWindow(). (#8576)" 75964a986 CI: run on ubuntu-latest. b81991ac0 Backends: SDLGPU3: clear ImGuiBackendFlags_RendererHasViewports flag on shutdown. 2a000ee09 Backends: SDL2, SDL3: viewports created with ImGuiViewportFlags_NoInputs are passing SDL_WINDOW_TOOLTIP to SDL_CreateWindow(). (#8576) f53de38e1 Viewports, Backends: Debug logging. 3563f4db3 Rework TextAligned() api to fix issues with baseline alignment + use standard CalcItemSize(). (#7024) f2ba3a937 Rework TextAligned() api to take size input. (#7024) 0fc4967eb Rework TextAligned() api to fix issues with baseline alignment + use standard CalcItemSize(). (#7024) aed1bcc12 Rework TextAligned() api to take size input. (#7024) 839e3274e Merge branch 'master' into docking 6a42d6b33 Added wp TextAligned() TextAlignedV(), TextAlignedExV() to internal API. (#7024) dcf0d8cab Tables: fixed TableHeader() eager vertical clipping of text. (#6236) 7c6ce12fa Platform IME: minor amend to bf0f586 (#8584) bf0f586b6 Platform IME: added ImGuiPlatformImeData::WantTextInput, ViewportId. Backends: SDL3: honor WantTextInput. (#8584, #7492, #6341) facf671ec Demo: rename DockingSplitterSize slider label to DockingSeparatorSize for consistency. (#8579) af987eb11 Backends: DX12: build fix for Clang. (#8582) 87f12e56f Backends: SDL_GPU: Added multi-viewport support. Amends + update example. (#8573, #8163, #7998, #7988) baffc4e8b Backends: SDL_GPU: Added multi-viewport support. (#8573, #8163, #7998, #7988) 0ddc36f54 RenderTextEllipsis()): pixel align every dot for consistent display. 88d2df24b Merge branch 'master' into docking 69d572bb1 Fonts: reworked text ellipsis logic to ensure a "..." is always displayed instead of a single character. (#7024) 97d85338e Tabs: adjust handling of ellipsis now that Close Button visibility changed. (#8387) Internals: remove extra parameter to RenderTextEllipsis(). e4a865177 ImFont: added cpu clip fine option for ImFont::RenderChar() (which is technically internal). faea19380 Internals: minor refactor of TabItemLabelAndCloseButton(), should be no-op. 7ab4728a3 Error Handling: added better error report and recovery when calling EndFrame() or Render() without NewFrame(). b23a216ec Examples: added SDL2+Vulkan, SDL3+Vulkan, GLFW+Vulkan makefiles. Amend ignore list. (#2480) d3bb3336f Backends: OSX: remove duplicate variable. (#8565) 3ab50c334 TreeNode, Style: added style.TreeLinesRounding support. (#2920) git-subtree-dir: external/imgui git-subtree-split: 3f0699cf02b07c8312edbcd937f1881e3564d1ac
Dear ImGui
"Give someone state and they'll have a bug one day, but teach them how to represent state in two separate locations that have to be kept in sync and they'll have bugs for a lifetime." -ryg(This library is available under a free and permissive license, but needs financial support to sustain its continued improvements. In addition to maintenance and stability there are many desirable features yet to be added. If your company is using Dear ImGui, please consider reaching out.)
Businesses: support continued development and maintenance via invoiced sponsoring/support contracts:
E-mail: contact @ dearimgui dot com
Individuals: support continued development and maintenance here. Also see Funding page.
The Pitch
Dear ImGui is a bloat-free graphical user interface library for C++. It outputs optimized vertex buffers that you can render anytime in your 3D-pipeline-enabled application. It is fast, portable, renderer agnostic, and self-contained (no external dependencies).
Dear ImGui is designed to enable fast iterations and to empower programmers to create content creation tools and visualization / debug tools (as opposed to UI for the average end-user). It favors simplicity and productivity toward this goal and lacks certain features commonly found in more high-level libraries. Among other things, full internationalization (right-to-left text, bidirectional text, text shaping etc.) and accessibility features are not supported.
Dear ImGui is particularly suited to integration in game engines (for tooling), real-time 3D applications, fullscreen applications, embedded applications, or any applications on console platforms where operating system features are non-standard.
- Minimize state synchronization.
- Minimize UI-related state storage on user side.
- Minimize setup and maintenance.
- Easy to use to create dynamic UI which are the reflection of a dynamic data set.
- Easy to use to create code-driven and data-driven tools.
- Easy to use to create ad hoc short-lived tools and long-lived, more elaborate tools.
- Easy to hack and improve.
- Portable, minimize dependencies, run on target (consoles, phones, etc.).
- Efficient runtime and memory consumption.
- Battle-tested, used by many major actors in the game industry.
Usage
The core of Dear ImGui is self-contained within a few platform-agnostic files which you can easily compile in your application/engine. They are all the files in the root folder of the repository (imgui*.cpp, imgui*.h). No specific build process is required. You can add the .cpp files into your existing project.
Backends for a variety of graphics API and rendering platforms are provided in the backends/ folder, along with example applications in the examples/ folder. You may also create your own backend. Anywhere where you can render textured triangles, you can render Dear ImGui.
See the Getting Started & Integration section of this document for more details.
After Dear ImGui is set up in your application, you can use it from _anywhere_ in your program loop:
ImGui::Text("Hello, world %d", 123);
if (ImGui::Button("Save"))
MySaveFunction();
ImGui::InputText("string", buf, IM_ARRAYSIZE(buf));
ImGui::SliderFloat("float", &f, 0.0f, 1.0f);
// Create a window called "My First Tool", with a menu bar.
ImGui::Begin("My First Tool", &my_tool_active, ImGuiWindowFlags_MenuBar);
if (ImGui::BeginMenuBar())
{
if (ImGui::BeginMenu("File"))
{
if (ImGui::MenuItem("Open..", "Ctrl+O")) { /* Do stuff */ }
if (ImGui::MenuItem("Save", "Ctrl+S")) { /* Do stuff */ }
if (ImGui::MenuItem("Close", "Ctrl+W")) { my_tool_active = false; }
ImGui::EndMenu();
}
ImGui::EndMenuBar();
}
// Edit a color stored as 4 floats
ImGui::ColorEdit4("Color", my_color);
// Generate samples and plot them
float samples[100];
for (int n = 0; n < 100; n++)
samples[n] = sinf(n * 0.2f + ImGui::GetTime() * 1.5f);
ImGui::PlotLines("Samples", samples, 100);
// Display contents in a scrolling region
ImGui::TextColored(ImVec4(1,1,0,1), "Important Stuff");
ImGui::BeginChild("Scrolling");
for (int n = 0; n < 50; n++)
ImGui::Text("%04d: Some text", n);
ImGui::EndChild();
ImGui::End();
Dear ImGui allows you to create elaborate tools as well as very short-lived ones. On the extreme side of short-livedness: using the Edit&Continue (hot code reload) feature of modern compilers you can add a few widgets to tweak variables while your application is running, and remove the code a minute later! Dear ImGui is not just for tweaking values. You can use it to trace a running algorithm by just emitting text commands. You can use it along with your own reflection data to browse your dataset live. You can use it to expose the internals of a subsystem in your engine, to create a logger, an inspection tool, a profiler, a debugger, an entire game-making editor/framework, etc.
How it works
The IMGUI paradigm through its API tries to minimize superfluous state duplication, state synchronization, and state retention from the user's point of view. It is less error-prone (less code and fewer bugs) than traditional retained-mode interfaces, and lends itself to creating dynamic user interfaces. Check out the Wiki's About the IMGUI paradigm section for more details.
Dear ImGui outputs vertex buffers and command lists that you can easily render in your application. The number of draw calls and state changes required to render them is fairly small. Because Dear ImGui doesn't know or touch graphics state directly, you can call its functions anywhere in your code (e.g. in the middle of a running algorithm, or in the middle of your own rendering process). Refer to the sample applications in the examples/ folder for instructions on how to integrate Dear ImGui with your existing codebase.
A common misunderstanding is to mistake immediate mode GUI for immediate mode rendering, which usually implies hammering your driver/GPU with a bunch of inefficient draw calls and state changes as the GUI functions are called. This is NOT what Dear ImGui does. Dear ImGui outputs vertex buffers and a small list of draw calls batches. It never touches your GPU directly. The draw call batches are decently optimal and you can render them later, in your app or even remotely.
Releases & Changelogs
See Releases page for decorated Changelogs. Reading the changelogs is a good way to keep up to date with the things Dear ImGui has to offer, and maybe will give you ideas of some features that you've been ignoring until now!
Demo
Calling the ImGui::ShowDemoWindow() function will create a demo window showcasing a variety of features and examples. The code is always available for reference in imgui_demo.cpp. Here's how the demo looks.
You should be able to build the examples from sources. If you don't, let us know! If you want to have a quick look at some Dear ImGui features, you can download Windows binaries of the demo app here:
- imgui-demo-binaries-20241211.zip (Windows, 1.91.6, built 2024/11/11, master) or older binaries.
The demo applications are not DPI aware so expect some blurriness on a 4K screen. For DPI awareness in your application, you can load/reload your font at a different scale and scale your style with style.ScaleAllSizes() (see FAQ).
Getting Started & Integration
See the Getting Started guide for details.
On most platforms and when using C++, you should be able to use a combination of the imgui_impl_xxxx backends without modification (e.g. imgui_impl_win32.cpp + imgui_impl_dx11.cpp). If your engine supports multiple platforms, consider using more imgui_impl_xxxx files instead of rewriting them: this will be less work for you, and you can get Dear ImGui running immediately. You can later decide to rewrite a custom backend using your custom engine functions if you wish so.
Integrating Dear ImGui within your custom engine is a matter of 1) wiring mouse/keyboard/gamepad inputs 2) uploading a texture to your GPU/render engine 3) providing a render function that can bind textures and render textured triangles, which is essentially what Backends are doing. The examples/ folder is populated with applications doing just that: setting up a window and using backends. If you follow the Getting Started guide it should in theory take you less than an hour to integrate Dear ImGui. Make sure to spend time reading the FAQ, comments, and the examples applications!
Officially maintained backends/bindings (in repository):
- Renderers: DirectX9, DirectX10, DirectX11, DirectX12, Metal, OpenGL/ES/ES2, SDL_GPU, SDL_Renderer2/3, Vulkan, WebGPU.
- Platforms: GLFW, SDL2/SDL3, Win32, Glut, OSX, Android.
- Frameworks: Allegro5, Emscripten.
Third-party backends/bindings wiki page:
- Languages: C, C# and: Beef, ChaiScript, CovScript, Crystal, D, Go, Haskell, Haxe/hxcpp, Java, JavaScript, Julia, Kotlin, Lobster, Lua, Nim, Odin, Pascal, PureBasic, Python, ReaScript, Ruby, Rust, Swift, Zig...
- Frameworks: AGS/Adventure Game Studio, Amethyst, Blender, bsf, Cinder, Cocos2d-x, Defold, Diligent Engine, Ebiten, Flexium, GML/Game Maker Studio, GLEQ, Godot, GTK3, Irrlicht Engine, JUCE, LÖVE+LUA, Mach Engine, Magnum, Marmalade, Monogame, NanoRT, nCine, Nim Game Lib, Nintendo 3DS/Switch/WiiU (homebrew), Ogre, openFrameworks, OSG/OpenSceneGraph, Orx, Photoshop, px_render, Qt/QtDirect3D, raylib, SFML, Sokol, Unity, Unreal Engine 4/5, UWP, vtk, VulkanHpp, VulkanSceneGraph, Win32 GDI, WxWidgets.
- Many bindings are auto-generated (by good old cimgui or newer/experimental dear_bindings), you can use their metadata output to generate bindings for other languages.
Useful Extensions/Widgets wiki page:
- Automation/testing, Text editors, node editors, timeline editors, plotting, software renderers, remote network access, memory editors, gizmos, etc. Notable and well supported extensions include ImPlot and Dear ImGui Test Engine.
Also see Wiki for more links and ideas.
Gallery
Examples projects using Dear ImGui: Tracy (profiler), ImHex (hex editor/data analysis), RemedyBG (debugger) and hundreds of others.
For more user-submitted screenshots of projects using Dear ImGui, check out the Gallery Threads!
For a list of third-party widgets and extensions, check out the Useful Extensions/Widgets wiki page.
Custom engine erhe (docking branch)![]() |
Custom engine for Wonder Boy: The Dragon's Trap (2017)![]() |
Custom engine (untitled)![]() |
Tracy Profiler (github)![]() |
Support, Frequently Asked Questions (FAQ)
See: Frequently Asked Questions (FAQ) where common questions are answered.
See: Getting Started and Wiki for many links, references, articles.
See: Articles about the IMGUI paradigm to read/learn about the Immediate Mode GUI paradigm.
See: Upcoming Changes.
See: Dear ImGui Test Engine + Test Suite for Automation & Testing.
For the purposes of getting search engines to crawl the wiki, here's a link to the Crawlable Wiki (not for humans, here's why).
Getting started? For first-time users having issues compiling/linking/running or issues loading fonts, please use GitHub Discussions. For ANY other questions, bug reports, requests, feedback, please post on GitHub Issues. Please read and fill the New Issue template carefully.
Private support is available for paying business customers (E-mail: contact @ dearimgui dot com).
Which version should I get?
We occasionally tag Releases (with nice releases notes) but it is generally safe and recommended to sync to latest master or docking branch. The library is fairly stable and regressions tend to be fixed fast when reported. Advanced users may want to use the docking branch with Multi-Viewport and Docking features. This branch is kept in sync with master regularly.
Who uses Dear ImGui?
See the Quotes, Funding & Sponsors, and Software using Dear ImGui Wiki pages for an idea of who is using Dear ImGui. Please add your game/software if you can! Also, see the Gallery Threads!
How to help
How can I help?
- See GitHub Forum/Issues.
- You may help with development and submit pull requests! Please understand that by submitting a PR you are also submitting a request for the maintainer to review your code and then take over its maintenance forever. PR should be crafted both in the interest of the end-users and also to ease the maintainer into understanding and accepting it.
- See Help wanted on the Wiki for some more ideas.
- Be a Funding Supporter! Have your company financially support this project via invoiced sponsors/maintenance or by buying a license for Dear ImGui Test Engine (please reach out: omar AT dearimgui DOT com).
Sponsors
Ongoing Dear ImGui development is and has been financially supported by users and private sponsors.
Please see the detailed list of current and past Dear ImGui funding supporters and sponsors for details.
From November 2014 to December 2019, ongoing development has also been financially supported by its users on Patreon and through individual donations.
THANK YOU to all past and present supporters for helping to keep this project alive and thriving!
Dear ImGui is using software and services provided free of charge for open source projects:
- PVS-Studio for static analysis (supports C/C++/C#/Java).
- GitHub actions for continuous integration systems.
- OpenCppCoverage for code coverage analysis.
Credits
Developed by Omar Cornut and every direct or indirect contributors to the GitHub. The early version of this library was developed with the support of Media Molecule and first used internally on the game Tearaway (PS Vita).
Recurring contributors include Rokas Kupstys @rokups (2020-2022): a good portion of work on automation system and regression tests now available in Dear ImGui Test Engine.
Maintenance/support contracts, sponsoring invoices and other B2B transactions are hosted and handled by Disco Hello.
Omar: "I first discovered the IMGUI paradigm at Q-Games where Atman Binstock had dropped his own simple implementation in the codebase, which I spent quite some time improving and thinking about. It turned out that Atman was exposed to the concept directly by working with Casey. When I moved to Media Molecule I rewrote a new library trying to overcome the flaws and limitations of the first one I've worked with. It became this library and since then I have spent an unreasonable amount of time iterating and improving it."
Embeds ProggyClean.ttf font by Tristan Grimmer (MIT license).
Embeds stb_textedit.h, stb_truetype.h, stb_rect_pack.h by Sean Barrett (public domain).
Inspiration, feedback, and testing for early versions: Casey Muratori, Atman Binstock, Mikko Mononen, Emmanuel Briney, Stefan Kamoda, Anton Mikhailov, Matt Willis. Also thank you to everyone posting feedback, questions and patches on GitHub.
License
Dear ImGui is licensed under the MIT License, see LICENSE.txt for more information.






