1
0
mirror of https://github.com/ocornut/imgui.git synced 2024-11-25 00:00:40 +01:00
imgui/examples
ocornut 0bb46c824e Examples: OpenGL2/3: save/restore some more state correctly.
Might save an hour of staring at blank-screen to 5% of the population,
worth it.
2015-08-29 17:44:52 +01:00
..
allegro5_example Examples: imgui_impl* functions declared with IMGUI_API to ease copy & pasting into projects using DLL 2015-08-24 14:02:51 +02:00
directx9_example Examples: DX9, DX11: mapping missing middle mouse button. 2015-08-25 16:54:47 +01:00
directx11_example Examples: DX9, DX11: mapping missing middle mouse button. 2015-08-25 16:54:47 +01:00
ios_example fix ios compile error 2015-08-23 08:03:21 +08:00
libs iOS example working based on modified OpenGL3 example + Synergy 2015-07-07 21:17:48 -06:00
opengl3_example Examples: OpenGL2/3: save/restore some more state correctly. 2015-08-29 17:44:52 +01:00
opengl_example Examples: OpenGL2/3: save/restore some more state correctly. 2015-08-29 17:44:52 +01:00
sdl_opengl_example Examples: imgui_impl* functions declared with IMGUI_API to ease copy & pasting into projects using DLL 2015-08-24 14:02:51 +02:00
.gitignore Examples: Ignore list a little more friendly to Unix systems. 2015-08-28 16:03:05 +01:00
imgui_examples_msvc2010.sln Examples: Added 64-bit projects for MSVC 2015-03-14 10:09:53 +00:00
README.txt Examples: OpenGL2/3: save/restore some more state correctly. 2015-08-29 17:44:52 +01: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; 
 Refer to 'opengl_example' to understand how the library is setup, because it is the simplest one.
 Copy the imgui_impl_xxx.cpp/.h files you need if you are using one of provided rendering/IO backends.
 If using different or your own backend, copy opengl_example/imgui_impl_opengl.cpp/.h to get started.
 

ImGui is highly portable and only requires a few things to run:
 - Providing mouse/keyboard inputs
 - Load the font atlas texture into GPU 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 a massive pain to create and maintain portable build files using
external library like the ones we're using here to provide 3D rendering.
For most examples here I choose to provide Visual Studio 10 .sln files and Makefile for Linux/OSX. 
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.
	
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.

allegro5_example/
    Allegro 5 example.