Skip to content
A fork of dimgui used by Tharsis projects
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.




This is a (temporary?) fork of dimgui, the D port of the imgui OpenGL GUI library.

Homepage of the original dimgui:

dimgui is an immediate-mode GUI library.

Main differences from dimgui

  • Simple text input widget
  • Minor bugfixes
  • Depends on Derelict for OpenGL instead of glad-drey.


Use dub to build and run the example project:

# Shows a nice demo of the various UI elements.
$ dub run dimgui:demo

# Shows how to properly handle memory management.
$ dub run dimgui:memory

Note: You will need to install the glfw shared library in order to run the example.

Real-world examples

dimgui is used in the following projects:

  • dbox - The 2D physics library uses dimgui for its interactive test-suite.


The public API is available in the imgui.api module.

Memory Management

For efficiency reasons imgui will batch all commands and will render the current frame once imguiRender is called. Calls to UI-defining functions such as imguiLabel will store a reference to the passed-in string and will not draw the string immediately.

This means you should not pass in memory allocated on the stack unless you can guarantee that:

  • The memory on the stack will live up to the point imguiRender is called.
  • The memory passed to the UI-defining functions is unique for each call.

An example of both improper and proper memory management is shown in the memory example.

Building dimgui as a static library

Run dub alone in the root project directory to build dimgui as a static library:

$ dub


  • The original imgui github repository.


Distributed under the zlib license.

See the accompanying file license.txt.

You can’t perform that action at this time.