| Those are standalone ready-to-build applications to demonstrate Dear ImGui. | 
 | Binaries of some of those demos: http://www.miracleworld.net/imgui/binaries | 
 |  | 
 | Third party languages and frameworks bindings:  | 
 |   https://github.com/ocornut/imgui/wiki/Links | 
 | (languages: C, C#, ChaiScript, D, Go, Haxe, Odin, Python, Rust, Lua, Pascal) | 
 | (other frameworks: OpenGLES, FreeGlut, Cinder, Cocos2d-x, SFML, GML/GameMaker Studio, Irrlicht, | 
 |  Ogre, OpenSceneGraph, openFrameworks, LOVE, NanoRT, Qt3d, SFML, Unreal Engine 4, etc.) | 
 | (extras: RemoteImGui, ImWindow, imgui_wm, etc.) | 
 |  | 
 |  | 
 | TL;DR;  | 
 |  - Newcomers, read 'PROGRAMMER GUIDE' in imgui.cpp for notes on how to setup ImGui in your codebase. | 
 |  - 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. | 
 |  - To LEARN how to setup imgui, you may refer to 'opengl2_example' because is the simplest one to read. | 
 |    However, do NOT USE the 'opengl2_example' if your code is using any modern GL3+ calls. | 
 |    Mixing old fixed-pipeline OpenGL2 and modern OpenGL3+ is going to make everything more complicated. | 
 |    Read comments below for details. If you are not sure, in doubt, use 'opengl3_example'. | 
 |  - If you have your own engine, you probably want to read a few of the examples first then adapt it to | 
 |    your engine. Please note that if your engine is based on OpenGL/DirectX you can perfectly use the | 
 |    existing rendering backends, don't feel forced to rewrite them with your own engine API, or you can | 
 |    do that later when you already got things to work. | 
 |  | 
 | Dear ImGui is highly portable and only requires a few things to run and render. | 
 |  - 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 2018 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. | 
 |  | 
 | Dear ImGui has zero to one frame of lag for most behaviors, at 60 FPS your experience should be pleasant. | 
 | Consider that OS mouse cursors are typically drawn through a specific hardware accelerated route and may  | 
 | feel smoother than other GPU rendered contents. You may experiment with the io.MouseDrawCursor flag to | 
 | request ImGui to draw a mouse cursor itself, to visualize the lag between a hardware cursor and a software | 
 | cursor. It might be beneficial to the user experience to switch to a software rendered cursor when an | 
 | interactive drag is in progress.  | 
 | Also note that some setup or GPU drivers may be causing extra lag (possibly by enforcing triple buffering), | 
 | leaving you with little option but sadness (Intel GPU drivers were reported as such). | 
 |  | 
 |  | 
 | opengl2_example/ | 
 |     **DO NOT USE THIS CODE IF YOUR CODE/ENGINE IS USING MODERN OPENGL (SHADERS, VBO, VAO, etc.)** | 
 |     **Prefer using the code in the opengl3_example/ folder** | 
 |     GLFW + OpenGL example (legacy, fixed pipeline). | 
 |     This code is mostly provided as a reference to learn how ImGui integration works, 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 several OpenGL attributes to their initial state, | 
 |     and might confuse your GPU driver.  | 
 |  | 
 | opengl3_example/ | 
 |     GLFW + OpenGL example (programmable pipeline, binding modern functions with GL3W). | 
 |     This uses more modern OpenGL calls and custom shaders.  | 
 |     Prefer using that if you are using modern OpenGL in your application (anything with shaders). | 
 |  | 
 | 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. | 
 | 	 | 
 | directx12_example/ | 
 |     DirectX12 example, Windows only. | 
 |     This is quite longer and tedious, because: DirectX12. | 
 | 	 | 
 | apple_example/ | 
 |     OSX & iOS example. | 
 |     On iOS, Using Synergy to access keyboard/mouse data from server computer. | 
 |     Synergy keyboard integration is rather hacky. | 
 |  | 
 | sdl_opengl2_example/ | 
 |     **DO NOT USE THIS CODE IF YOUR CODE/ENGINE IS USING MODERN OPENGL (SHADERS, VBO, VAO, etc.)** | 
 |     **Prefer using the code in the sdl_opengl3_example/ folder** | 
 |     SDL2 + OpenGL example (legacy, fixed pipeline). | 
 |     This code is mostly provided as a reference to learn how ImGui integration works, 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 several OpenGL attributes to their initial state, | 
 |     and might confuse your GPU driver.  | 
 |  | 
 | sdl_opengl3_example/ | 
 |     SDL2 + OpenGL3 example. | 
 |     This uses more modern OpenGL calls and custom shaders.  | 
 |     Prefer using that if you are using modern OpenGL in your application (anything with shaders). | 
 |  | 
 | allegro5_example/ | 
 |     Allegro 5 example. | 
 | 	  | 
 | marmalade_example/ | 
 |     Marmalade example using IwGx | 
 |      | 
 | vulkan_example/ | 
 |     Vulkan example. | 
 |     This is quite longer and tedious, because: Vulkan. |