Professional Documents
Culture Documents
Proxy 3
Proxy 3
example_glut_opengl2/
GLUT (e.g., FreeGLUT on Linux/Windows, GLUT framework on OSX) + OpenGL2.
= main.cpp + imgui_impl_glut.cpp + imgui_impl_opengl2.cpp
Note that GLUT/FreeGLUT is largely obsolete software, prefer using GLFW or SDL.
example_marmalade/
Marmalade example using IwGx.
= main.cpp + imgui_impl_marmalade.cpp
example_null
Null example, compile and link imgui, create context, run headless with no
inputs and no graphics output.
= main.cpp
This is used to quickly test compilation of core imgui files in as many setups
as possible.
Because this application doesn't create a window nor a graphic context, there's
no graphics output.
example_sdl_directx11/
SDL2 + DirectX11 example, Windows only.
= main.cpp + imgui_impl_sdl.cpp + imgui_impl_dx11.cpp
This to demonstrate usage of DirectX with SDL.
example_sdl_opengl2/
SDL2 (Win32, Mac, Linux etc.) + OpenGL example (legacy, fixed pipeline).
= main.cpp + imgui_impl_sdl.cpp + imgui_impl_opengl2.cpp
**DO NOT USE OPENGL2 CODE IF YOUR CODE/ENGINE IS USING MODERN OPENGL (SHADERS,
VBO, VAO, etc.)**
**Prefer using OPENGL3 code (with gl3w/glew/glad/glbindings, you can replace
the OpenGL function loader)**
This code is mostly provided as a reference to learn about Dear ImGui
integration, because it is shorter.
If your code is using GL3+ context or any semi modern OpenGL calls, using this
renderer is likely to
make things more complicated, will require your code to reset many OpenGL
attributes to their initial
state, and might confuse your GPU driver. One star, not recommended.
example_sdl_opengl3/
SDL2 (Win32, Mac, Linux, etc.) + OpenGL3+/ES2/ES3 example.
= main.cpp + imgui_impl_sdl.cpp + imgui_impl_opengl3.cpp
This uses more modern OpenGL calls and custom shaders.
Prefer using that if you are using modern OpenGL in your application (anything
with shaders).
(Please be mindful that accessing OpenGL3+ functions requires a function
loader, which are a frequent
source for confusion for new users. We use a loader in imgui_impl_opengl3.cpp
which may be different
from the one your app normally use. Read imgui_impl_opengl3.h for details and
how to change it.)
example_sdl_vulkan/
SDL2 (Win32, Mac, Linux, etc.) + Vulkan example.
= main.cpp + imgui_impl_sdl.cpp + imgui_impl_vulkan.cpp
This is quite long and tedious, because: Vulkan.
For this example, the main.cpp file exceptionally use helpers function from
imgui_impl_vulkan.h/cpp.
example_win32_directx9/
DirectX9 example, Windows only.
= main.cpp + imgui_impl_win32.cpp + imgui_impl_dx9.cpp
example_win32_directx10/
DirectX10 example, Windows only.
= main.cpp + imgui_impl_win32.cpp + imgui_impl_dx10.cpp
example_win32_directx11/
DirectX11 example, Windows only.
= main.cpp + imgui_impl_win32.cpp + imgui_impl_dx11.cpp
example_win32_directx12/
DirectX12 example, Windows only.
= main.cpp + imgui_impl_win32.cpp + imgui_impl_dx12.cpp
This is quite long and tedious, because: DirectX12.
NSF 14-035
February 3, 2014
Dear Colleagues: