Skip to content

Bindings

omar edited this page Oct 23, 2024 · 192 revisions

(we had to turn off wiki editing, see Home for details. you may post meaningful wiki diff in issues)

Index

Binding Generators

cimgui

https://github.com/cimgui/cimgui (2015-2024)
Output C API + output metadata (see generator/output/ folder) which can be used to automatically generate other bindings.
(Important: if your generator uses cimgui with imgui_internal.h parsing: both imgui.h and imgui_internal.h contents are output in the same file! PLEASE use the "location" metadata to detect internal contents and expose them differently to your users (e.g. separate namespace). Please do not expose internal contents to your users without them knowing about it!)

dear_bindings

https://github.com/dearimgui/dear_bindings (2021-2024)
Dear Bindings generates a C API for Dear ImGui, and metadata so other languages can easily generate their own bindings on top.
Can parse imgui.h, imgui_internal.h etc. and generate neatly decorated C versions (full comments, alignment).

litgen

https://pthom.github.io/litgen (2022-2024)
litgen is an automatic bindings generator from C++ to Python. It emits binary bindings and preserves the original documentation in a python stub (comparable to a C header file): compare imgui.h to its python translation. It can produce bindings for Dear ImGui and other libraries. It is used to maintain up to date bindings inside Dear ImGui Bundle (link).


Language Bindings

Note: those bindings may be more or less maintained, more or less close to the spirit of original API. People who create language bindings sometimes haven't used the C++ API themselves. Dear ImGui was designed for C++ and some of the subtleties may be lost in translation with other languages. If your language supports it, I would suggest replicating the function overloading and default parameters used in the original, else the API may be harder to use. In doubt, always check the original C++ version first!

Now on to the list...

Beef

C

C#/.Net

C++17

  • ImGuiWrapper: CMakeList wrapper and C++17 RAII encapsulation for accessing Imgui

ChaiScript

CovScript

Crystal

D

Go

Haskell

Haxe

Java

JavaScript

Julia

Kotlin

Lobster

Lua

Nim

Odin

Pascal

PureBasic

Python

ReaScript

Ruby

Rust

Swift

Zig

Framework/Engine Backends

Main repository include examples for DirectX9, DirectX10, DirectX11, DirectX12, Metal, OpenGL2/3, Vulkan, SDL_Renderer, iOS, WebGPU, using frameworks such as GLFW, SDL2, Win32, GLUT, Android, OSX/Cocoa, Allegro. See examples/ and BACKENDS.md for details.

AGS / Adventure Game Studio

Amethyst

Blender

bsf

Cinder

Cocos2d-x

Defold

Diligent Engine

Ebiten

Flexium

GLEQ

  • Event processing: #3034

GML / GameMaker Studio 2

Godot

GTK3 + OpenGL3

  • imgui_impl_gtk3: Unmerged PR: #2032

Irrlicht Engine

JUCE

LÖVE+LUA

Mach engine

Magnum

Marmalade

Monogame

NanoRT

nCine

Nim Game Lib

Nintendo 3DS (homebrew)

Nintendo Switch (homebrew)

Nintendo Wii U (homebrew)

Ogre

openFrameworks

OpenSceneGraph/OSG

Orx

Photoshop

px_render

raylib

RGFW

Qt

SDL_Renderer

SFML

Slang Graphics Layer

Sokol

Unity

Unreal Engine

UWP

vtk

VulkanHpp

VulkanSceneGraph

vvvv

Win32 GDI renderer

  • imgui_impl_gdi: Unmerged PR: #2724

WxWidgets

Miscellaneous

Software Renderers

Retained Frameworks over Dear ImGui

Ports, Rewrites, Clones

(notable rewrites or clones, those are not supported on this repository)

Javascript Port

Kotlin

Roblox

Clone this wiki locally