Go to file
ocornut 152878571e TreeNode/CollapsingHeader ignore clicks when CTRL or SHFIT are held + make default button hover brighter 2014-08-15 16:38:29 +01:00
examples Tidying up example applications so it looks easier to just grab code 2014-08-14 00:01:41 +01:00
web Update README.md 2014-08-11 12:45:47 +01:00
.gitignore Git ignore imgui.ini files 2014-08-11 14:46:04 +01:00
LICENSE Initial release 2014-08-10 21:58:11 +01:00
README.md Update README.md 2014-08-13 13:23:37 +01:00
imconfig.h Default "local only" clipboard handler on non-Windows platforms 2014-08-14 15:03:10 +01:00
imgui.cpp TreeNode/CollapsingHeader ignore clicks when CTRL or SHFIT are held + make default button hover brighter 2014-08-15 16:38:29 +01:00
imgui.h Added storage for up to 5 mouse buttons for convenience (even though ImGui itself only uses 1) 2014-08-15 16:22:03 +01:00
stb_textedit.h Initial release 2014-08-10 21:58:11 +01:00

README.md

ImGui

ImGui is a bloat-free graphical user interface library for C++. It outputs vertex buffers that you can render in your 3D-pipeline enabled application. It is portable, renderer agnostic and carries minimal amount of dependencies (only 3 files are needed). It is based on an "immediate" graphical user interface paradigm which allows you to build simple user interfaces with ease.

ImGui is designed to enable fast iteration and allow programmers to create "content creation" or "debug" tools (as opposed to tools for the average end-user). It favors simplicity and thus lacks certain features normally found in more high-level libraries, such as string localisation.

ImGui is particularly suited to integration in 3D applications, fullscreen applications, embedded applications, games, or any applications on consoles platforms where operating system features are non-standard.

After ImGui is setup in your engine, you can use it like in this example:

screenshot of sample code alongside its output with ImGui

ImGui outputs vertex buffers and simple command-lists that you can render in your application. Because it doesn't know or touch graphics state directly, you can call ImGui commands 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 ImGui with your existing codebase.

screenshot 1 screenshot 2 screenshot 3 screenshot 4

References

The Immediate Mode GUI paradigm may at first appear unusual to some users. This is mainly because "Retained Mode" GUIs have been so widespread and predominant. The following links can give you a better understanding about how Immediate Mode GUIs works.

Credits

Developed by Omar Cornut. The library was developed with the support of Media Molecule and first used internally on the game Tearaway.

Embeds proggy_clean font by Tristan Grimmer (also MIT license).

Inspiration, feedback, and testing: Casey Muratori, Atman Binstock, Mikko Mononen, Emmanuel Briney, Stefan Kamoda, Matt Willis. Thanks!

License

ImGui is licensed under the MIT License, see LICENSE for more information.