imgui/examples
2016-01-11 10:19:38 +00:00
..
allegro5_example Examples: Not clearing input data/tex data in atlas (will be required for dynamic atlas anyway). Effectively fix resizing in DX examples. 2015-11-29 14:54:05 +00:00
directx9_example Examples: Fixed msvc batch files from warning. 2015-12-07 21:27:25 +00:00
directx10_example Examples: Fixed msvc batch files from warning. 2015-12-07 21:27:25 +00:00
directx11_example Examples: DirectX11: fixed ImGui_ImplDX11_NewFrame() from recreating device objects if render isn't called (g_pVB not set) 2016-01-11 10:19:38 +00:00
ios_example Examples: Not clearing input data/tex data in atlas (will be required for dynamic atlas anyway). Effectively fix resizing in DX examples. 2015-11-29 14:54:05 +00:00
libs Examples: OpenGL3: Fixed gl3w.c for Linux when compiled with C++ compiler (#411) 2015-11-22 17:16:55 +00:00
marmalade_example Examples: Not clearing input data/tex data in atlas (will be required for dynamic atlas anyway). Effectively fix resizing in DX examples. 2015-11-29 14:54:05 +00:00
opengl3_example Examples: OpenGL: Tentative fix for miscaled call to glViewport on high-DPI screens (#441) 2015-12-19 20:54:23 +01:00
opengl_example Examples: OpenGL: Tentative fix for miscaled call to glViewport on high-DPI screens (#441) 2015-12-19 20:54:23 +01:00
sdl_opengl3_example Examples: SDL2+OpenGL3: Fix context creation options (#468, #463) 2016-01-05 10:23:43 +01:00
sdl_opengl_example Examples: OpenGL: Tentative fix for miscaled call to glViewport on high-DPI screens (#441) 2015-12-19 20:54:23 +01:00
.gitignore Examples: DirectX10: Fix warning, disable debug device, add ignore list (#424) 2015-12-03 18:20:48 +00:00
imgui_examples_msvc2010.sln Ported d3d11 renderer to d3d10 2015-12-03 13:18:35 +01:00
README.txt Examples: DirectX10: Minor tweaks, updated to latest example changes (#424) 2015-12-03 18:32:01 +00:00

Those are standalone ready-to-build applications to demonstrate ImGui.
Binaries of some of those demos are available at http://www.miracleworld.net/imgui/binaries

TL;DR; 
 - Newcomers, read 'PROGRAMMER GUIDE' in imgui.cpp for notes on how to setup ImGui in your codebase.
 - Refer to 'opengl_example' to understand how the library is setup, it is the simplest one.
   The other examples requires more boilerplate and are harder to read.
 - If you are using of the backend provided here, so you can copy the imgui_impl_xxx.cpp/h files
   to your project and use them unmodified.
 - If you have your own engine, you probably want to start from 'opengl_example' and adapt it to 
   your engine, but you can read the other examples as well.

ImGui is highly portable and only requires a few things to run:
 - Providing mouse/keyboard inputs
 - Load the font atlas texture into graphics memory
 - Providing a render function to render indexed textured triangles
 - Optional: clipboard support, mouse cursor supports, Windows IME support, etc.
So this is essentially what those examples are doing + the obligatory cruft for portability.

Unfortunately in 2015 it is still tedious to create and maintain portable build files using external 
libraries (the kind we're using here to create a window and render 3D triangles) without relying on 
third party software. For most examples here I choose to provide:
 - Makefiles for Linux/OSX
 - Batch files for Visual Studio 2008+
 - A .sln project file for Visual Studio 2010+ 
Please let me know if they don't work with your setup!
You can probably just import the imgui_impl_xxx.cpp/.h files into your own codebase or compile those
directly with a command-line compiler.

opengl_example/
    OpenGL example, using GLFW + fixed pipeline.
    This is simple and should work for all OpenGL enabled applications.
    Prefer following this example to learn how ImGui works!
	(You can use this code in a GL3/GL4 context but make sure you disable the programmable pipeline
	by calling "glUseProgram(0)" before ImGui::Render.)

opengl3_example/
    OpenGL example, using GLFW/GL3W + programmable pipeline.
    This uses more modern OpenGL calls and custom shaders. It's more messy.

directx9_example/
    DirectX9 example, Windows only.
	
directx10_example/
    DirectX10 example, Windows only.
    This is quite long and tedious, because: DirectX10.

directx11_example/
    DirectX11 example, Windows only.
    This is quite long and tedious, because: DirectX11.
	
ios_example/
    iOS example.
    Using Synergy to access keyboard/mouse data from server computer.
    Synergy keyboard integration is rather hacky.

sdl_opengl_example/
    SDL2 + OpenGL example.

sdl_opengl_example/
    SDL2 + OpenGL3 example.

allegro5_example/
    Allegro 5 example.
	 
marmalade_example/
    Marmalade example using IwGx