Merge branch 'master' into viewport
# Conflicts: # examples/imgui_impl_sdl.cpp
| @@ -39,19 +39,30 @@ Breaking Changes: | ||||
|    The only difference is if you were using TreeNodeEx() manually with ImGuiTreeNodeFlags_CollapsingHeader and without ImGuiTreeNodeFlags_NoTreePushOnOpen. In which case | ||||
|    you can remove the ImGuiTreeNodeFlags_NoTreePushOnOpen flag from your call (ImGuiTreeNodeFlags_CollapsingHeader & ~ImGuiTreeNodeFlags_NoTreePushOnOpen). (#1864) | ||||
|  - ImFontAtlas: Renamed GetGlyphRangesChinese() to GetGlyphRangesChineseFull() to distinguish other variants and discourage using the full set. (#1859) | ||||
|  - Examples Bindings have been refactored to separate them into "Platform" and "Renderer" components that are more easy to combine. | ||||
|    - The "Platform" bindings are in charge of: mouse/keyboard/gamepad inputs, cursor shape, timing, etc. | ||||
|      Examples: Windows (imgui_impl_win32.cpp), GLFW (imgui_impl_glfw.cpp), SDL2 (imgui_impl_sdl2.cpp). | ||||
|    - The "Renderer" bindings are in charge of: creating the main font texture, rendering imgui draw data. | ||||
|      Examples: DirectX11 (imgui_impl_dx11.cpp), GL3 (imgui_impl_opengl3.cpp), Vulkan (imgui_impl_vulkan.cpp) | ||||
|    - This is not strictly a breaking change if you keep your old bindings, but _WHEN_ you'll want to fully update your bindings,  | ||||
|      expect to have to reshuffle a few things. This refactor will greatly facilitate maintenance and re-usability, and was designed  | ||||
|      to get us closer to the upcoming "multi-viewport" feature branch. | ||||
|    - Please read examples/README.txt for details. | ||||
|  | ||||
|    This also apply if you were using internal's TreeNodeBehavior() with the ImGuiTreeNodeFlags_CollapsingHeader flag directly. | ||||
|  | ||||
| Other Changes: | ||||
|  | ||||
|  - Examples back-ends have been refactored to separate the platform code (e.g. Win32, Glfw, SDL2) from the renderer code (e.g. DirectX11, OpenGL3, Vulkan). | ||||
|    The "Platform" bindings are in charge of: mouse/keyboard/gamepad inputs, cursor shape, timing, etc. | ||||
|    The "Renderer" bindings are in charge of: creating the main font texture, rendering imgui draw data. | ||||
|        before: imgui_impl_dx11.cpp        --> after: imgui_impl_win32.cpp + imgui_impl_dx11.cpp | ||||
|        before: imgui_impl_dx12.cpp        --> after: imgui_impl_win32.cpp + imgui_impl_dx12.cpp | ||||
|        before: imgui_impl_glfw_gl3.cpp    --> after: imgui_impl_glfw.cpp + imgui_impl_opengl2.cpp | ||||
|        before: imgui_impl_glfw_vulkan.cpp --> after: imgui_impl_glfw.cpp + imgui_impl_vulkan.cpp | ||||
|        before: imgui_impl_sdl_gl3.cpp     --> after: imgui_impl_sdl2.cpp + imgui_impl_opengl2.cpp | ||||
|        before: imgui_impl_sdl_gl3.cpp     --> after: imgui_impl_sdl2.cpp + imgui_impl_opengl3.cpp etc. | ||||
|    - The idea is what we can now easily combine and maintain back-ends and reduce code redundancy. Individual files are smaller and more reusable. | ||||
|      Integration of imgui into a new/custom engine may also be easier as there is less overlap between "windowing / inputs" and "rendering" code,  | ||||
|      so you may study or grab one half of the code and not the other. | ||||
|    - This change was motivated by the fact that adding support for the upcoming multi-viewport feature requires more work from the Platform and Renderer  | ||||
|      back-ends, and the amount of redundancy across files was becoming too difficult to maintain. If you use default back-ends, you'll benefit from an  | ||||
|      easy update path to support multi-viewports later. | ||||
|    - This is not strictly a breaking change if you keep your old bindings, but when you'll want to fully update your bindings,  | ||||
|      expect to have to reshuffle a few things.  | ||||
|    - Each example still has its own main.cpp which you may refer you to understand how to initialize and glue everything together. | ||||
|    - Some frameworks (such as the Allegro, Marmalade) handle both the "platform" and "rendering" part, and your custom engine may as well. | ||||
|    - Please read examples/README.txt for details. | ||||
|  - Nav: To keep the navigated item in view we also attempt to scroll the parent window as well as the current window. (#787) | ||||
|  - Nav: Added support for PageUp/PageDown (explorer-style: first aim at bottom/top most item, when scroll a page worth of contents). (#787) | ||||
|  - TreeNode: Fixed nodes with ImGuiTreeNodeFlags_Leaf flag always returning true which was meaningless. | ||||
| @@ -63,6 +74,7 @@ Other Changes: | ||||
|  - InputTextMultiline(): Fixed double navigation highlight when scrollbar is active. (#787) | ||||
|  - InputText(): Fixed Undo after pasting large amount of text (Redo will still fail when undo buffers are exhausted, but text won't be corrupted). | ||||
|  - SliderFloat(): When using keyboard/gamepad and a zero precision format string (e.g. "%.0f"), always step in integer units. (#1866) | ||||
|  - ImFontConfig: Added GlyphMinAdvanceX/GlyphMaxAdvanceX settings useful to make a font appears monospaced, particularly useful for icon fonts. (#1869) | ||||
|  - ImFontAtlas: Added GetGlyphRangesChineseSimplifiedCommon() helper that returns a list of ~2500 most common Simplified Chinese characters. (#1859) [@JX-Master, @ocornut] | ||||
|  - Examples: GLFW: Made it possible to Shutdown/Init the backend again (by reseting the time storage properly). (#1827) [@ice1000] | ||||
|  - Misc: Updated stb_textedit from 1.09 + patches to 1.12 + minor patches. | ||||
|   | ||||
							
								
								
									
										8
									
								
								examples/.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						| @@ -16,10 +16,10 @@ build/* | ||||
| *.VC.VC.opendb | ||||
|  | ||||
| ## Unix executables | ||||
| opengl2_example/opengl2_example | ||||
| opengl3_example/opengl3_example | ||||
| sdl_opengl2_example/sdl_opengl2_example | ||||
| sdl_opengl3_example/sdl_opengl3_example | ||||
| example_glfw_opengl2/example_glfw_opengl2 | ||||
| example_glfw_opengl3/example_glfw_opengl3 | ||||
| example_sdl_opengl2/example_sdl_opengl2 | ||||
| example_sdl_opengl3/example_sdl_opengl3 | ||||
|  | ||||
| ## Dear ImGui Ini files | ||||
| imgui.ini | ||||
|   | ||||
| @@ -66,7 +66,7 @@ You can find binaries of some of those example applications at: | ||||
| Most the example bindings are split in 2 parts: | ||||
|  | ||||
|  - The "Platform" bindings, in charge of: mouse/keyboard/gamepad inputs, cursor shape, timing, windowing. | ||||
|    Examples: Windows (imgui_impl_win32.cpp), GLFW (imgui_impl_glfw.cpp), SDL2 (imgui_impl_sdl2.cpp) | ||||
|    Examples: Windows (imgui_impl_win32.cpp), GLFW (imgui_impl_glfw.cpp), SDL2 (imgui_impl_sdl.cpp) | ||||
|  | ||||
|  - The "Renderer" bindings, in charge of: creating the main font texture, rendering imgui draw data. | ||||
|    Examples: DirectX11 (imgui_impl_dx11.cpp), GL3 (imgui_impl_opengl3.cpp), Vulkan (imgui_impl_vulkan.cpp) | ||||
| @@ -110,7 +110,7 @@ Most the example bindings are split in 2 parts: | ||||
| List of officially maintained Platforms Bindings: | ||||
|  | ||||
|     imgui_impl_glfw.cpp | ||||
|     imgui_impl_sdl2.cpp | ||||
|     imgui_impl_sdl.cpp | ||||
|     imgui_impl_win32.cpp | ||||
|  | ||||
| List of officially maintained Renderer Bindings: | ||||
| @@ -154,76 +154,76 @@ Building: | ||||
|   directly with a command-line compiler. | ||||
|  | ||||
|  | ||||
| directx9_example/ | ||||
| example_win32_directx9/ | ||||
|     DirectX9 example, Windows only. | ||||
|     = main.cpp + imgui_impl_win32.cpp + imgui_impl_dx9.cpp | ||||
|      | ||||
| directx10_example/ | ||||
| example_win32_directx10/ | ||||
|     DirectX10 example, Windows only. | ||||
|     = main.cpp + imgui_impl_win32.cpp + imgui_impl_dx10.cpp | ||||
|  | ||||
| directx11_example/ | ||||
| example_win32_directx11/ | ||||
|     DirectX11 example, Windows only. | ||||
|     = main.cpp + imgui_impl_win32.cpp + imgui_impl_dx11.cpp | ||||
|      | ||||
| directx12_example/ | ||||
| example_win32_directx12/ | ||||
|     DirectX12 example, Windows only. | ||||
|     This is quite long and tedious, because: DirectX12. | ||||
|     = main.cpp + imgui_impl_win32.cpp + imgui_impl_dx12.cpp | ||||
|  | ||||
| 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). | ||||
| example_glfw_opengl2/ | ||||
|     **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, you can replace the OpenGL function loader)** | ||||
|     GLFW + OpenGL2 example (legacy, fixed pipeline). | ||||
|     This code is mostly provided as a reference to learn about 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. | ||||
|     = main.cpp + imgui_impl_glfw.cpp + imgui_impl_opengl2.cpp | ||||
|  | ||||
| opengl3_example/ | ||||
|     GLFW (Win32, Mac, Linux) + OpenGL example (programmable pipeline, binding modern functions with GL3W). | ||||
| example_glfw_opengl3/ | ||||
|     GLFW (Win32, Mac, Linux) + OpenGL3+ 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). | ||||
|     = main.cpp + imgui_impl_glfw.cpp + imgui_impl_opengl3.cpp | ||||
| 	 | ||||
| vulkan_example/ | ||||
|     Vulkan example. | ||||
| example_glfw_vulkan/ | ||||
|     GLFW (Win32, Mac, Linux) + Vulkan example. | ||||
|     This is quite long and tedious, because: Vulkan. | ||||
|     = main.cpp + imgui_impl_glfw.cpp + imgui_impl_vulkan.cpp | ||||
|  | ||||
| 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** | ||||
| example_sdl_opengl2/ | ||||
|     **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, you can replace the OpenGL function loader)** | ||||
|     SDL2 (Win32, Mac, Linux etc.) + OpenGL example (legacy, fixed pipeline). | ||||
|     This code is mostly provided as a reference to learn about 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.  | ||||
|     = main.cpp + imgui_impl_sdl2.cpp + imgui_impl_opengl2.cpp | ||||
|     = main.cpp + imgui_impl_sdl.cpp + imgui_impl_opengl2.cpp | ||||
|  | ||||
| sdl_opengl3_example/ | ||||
|     SDL2 (Win32, Mac, Linux, etc.) + OpenGL3 example. | ||||
| example_sdl_opengl3/ | ||||
|     SDL2 (Win32, Mac, Linux, etc.) + 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). | ||||
|     = main.cpp + imgui_impl_sdl2.cpp + imgui_impl_opengl3.cpp | ||||
|     = main.cpp + imgui_impl_sdl.cpp + imgui_impl_opengl3.cpp | ||||
|  | ||||
| sdl_vulkan_example/ | ||||
| example_sdl_vulkan/ | ||||
|     SDL2 (Win32, Mac, Linux, etc.) + Vulkan example. | ||||
|     This is quite long and tedious, because: Vulkan. | ||||
|     = main.cpp + imgui_impl_glfw.cpp + imgui_impl_vulkan.cpp | ||||
|     = main.cpp + imgui_impl_sdl.cpp + imgui_impl_vulkan.cpp | ||||
|  | ||||
| apple_example/ | ||||
| example_apple/ | ||||
|     OSX & iOS example + OpenGL2. | ||||
|     THIS EXAMPLE HAS NOT BEEN MAINTAINED PROPERLY AND NEEDS A MAINTAINER. | ||||
|     Consider using the opengl3_example/ instead. | ||||
|     On iOS, Using Synergy to access keyboard/mouse data from server computer. | ||||
|     Synergy keyboard integration is rather hacky. | ||||
|  | ||||
| allegro5_example/ | ||||
| example_allegro5/ | ||||
|     Allegro 5 example. | ||||
|     = main.cpp + imgui_impl_allegro5.cpp | ||||
|  | ||||
| marmalade_example/ | ||||
|     Marmalade example using IwGx | ||||
| example_marmalade/ | ||||
|     Marmalade example using IwGx. | ||||
|     = main.cpp + imgui_impl_marmalade.cpp | ||||
|   | ||||
| @@ -12,12 +12,12 @@ Note that the back-end supports _BOTH_ 16-bit and 32-bit indices, but 32-bit ind | ||||
| - On Ubuntu 14.04+ | ||||
| 
 | ||||
| ```bash | ||||
| g++ -DIMGUI_USER_CONFIG=\"examples/allegro5_example/imconfig_allegro5.h\" -I .. -I ../.. main.cpp imgui_impl_allegro5.cpp ../../imgui*.cpp -lallegro -lallegro_primitives -o allegro5_example | ||||
| g++ -DIMGUI_USER_CONFIG=\"examples/example_allegro5/imconfig_allegro5.h\" -I .. -I ../.. main.cpp imgui_impl_allegro5.cpp ../../imgui*.cpp -lallegro -lallegro_primitives -o allegro5_example | ||||
| ``` | ||||
| 
 | ||||
| - On Windows with Visual Studio's CLI | ||||
| 
 | ||||
| ``` | ||||
| set ALLEGRODIR=path_to_your_allegro5_folder | ||||
| cl /Zi /MD /I %ALLEGRODIR%\include /DIMGUI_USER_CONFIG=\"examples/allegro5_example/imconfig_allegro5.h\" /I .. /I ..\.. main.cpp imgui_impl_allegro5.cpp ..\..\imgui*.cpp /link /LIBPATH:%ALLEGRODIR%\lib allegro-5.0.10-monolith-md.lib user32.lib | ||||
| cl /Zi /MD /I %ALLEGRODIR%\include /DIMGUI_USER_CONFIG=\"examples/example_allegro5/imconfig_allegro5.h\" /I .. /I ..\.. main.cpp imgui_impl_allegro5.cpp ..\..\imgui*.cpp /link /LIBPATH:%ALLEGRODIR%\lib allegro-5.0.10-monolith-md.lib user32.lib | ||||
| ``` | ||||
| @@ -2,6 +2,8 @@ | ||||
| 
 | ||||
| ## Introduction | ||||
| 
 | ||||
| THIS EXAMPLE HAS NOT BEEN MAINTAINED PROPERLY AND NEEDS A MAINTAINER. | ||||
| 
 | ||||
| This example is the default XCode "OpenGL" example code, modified to support ImGui and [Synergy](http://synergy-project.org/) to share mouse/keyboard on an iOS device. | ||||
| 
 | ||||
| It is a rather complex and messy example because of all of the faff required to get an XCode/iOS application running. Refer to the regular OpenGL examples if you want to learn about integrating ImGui. **The opengl3_example/ should also work on OS X and is much simpler.** This is an integration for iOS with Synergy. | ||||
| Before Width: | Height: | Size: 3.9 KiB After Width: | Height: | Size: 3.9 KiB | 
| Before Width: | Height: | Size: 5.8 KiB After Width: | Height: | Size: 5.8 KiB | 
| Before Width: | Height: | Size: 4.8 KiB After Width: | Height: | Size: 4.8 KiB | 
| Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 2.5 KiB | 
| Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB | 
| Before Width: | Height: | Size: 5.8 KiB After Width: | Height: | Size: 5.8 KiB | 
| @@ -14,7 +14,7 @@ | ||||
| #CXX = g++
 | ||||
| #CXX = clang++
 | ||||
| 
 | ||||
| EXE = opengl2_example | ||||
| EXE = example_glfw_opengl2 | ||||
| SOURCES = main.cpp | ||||
| SOURCES += ../imgui_impl_glfw.cpp ../imgui_impl_opengl2.cpp | ||||
| SOURCES += ../../imgui.cpp ../../imgui_demo.cpp ../../imgui_draw.cpp | ||||
| @@ -1,3 +1,3 @@ | ||||
| @REM Build for Visual Studio compiler. Run your copy of vcvars32.bat or vcvarsall.bat to setup command-line compiler. | ||||
| mkdir Debug | ||||
| cl /nologo /Zi /MD /I .. /I ..\.. /I ..\libs\glfw\include *.cpp ..\imgui_impl_opengl2.cpp ..\imgui_impl_glfw.cpp ..\..\imgui*.cpp /FeDebug/opengl2_example.exe /FoDebug/ /link /LIBPATH:..\libs\glfw\lib-vc2010-32 glfw3.lib opengl32.lib gdi32.lib shell32.lib | ||||
| cl /nologo /Zi /MD /I .. /I ..\.. /I ..\libs\glfw\include *.cpp ..\imgui_impl_opengl2.cpp ..\imgui_impl_glfw.cpp ..\..\imgui*.cpp /FeDebug/example_glfw_opengl2.exe /FoDebug/ /link /LIBPATH:..\libs\glfw\lib-vc2010-32 glfw3.lib opengl32.lib gdi32.lib shell32.lib | ||||
| @@ -20,7 +20,7 @@ | ||||
|   </ItemGroup> | ||||
|   <PropertyGroup Label="Globals"> | ||||
|     <ProjectGuid>{9CDA7840-B7A5-496D-A527-E95571496D18}</ProjectGuid> | ||||
|     <RootNamespace>opengl2_example</RootNamespace> | ||||
|     <RootNamespace>example_glfw_opengl2</RootNamespace> | ||||
|   </PropertyGroup> | ||||
|   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> | ||||
|   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> | ||||
| @@ -14,7 +14,7 @@ | ||||
| #CXX = g++
 | ||||
| #CXX = clang++
 | ||||
| 
 | ||||
| EXE = opengl3_example | ||||
| EXE = example_glfw_opengl3 | ||||
| SOURCES = main.cpp | ||||
| SOURCES += ../imgui_impl_glfw.cpp ../imgui_impl_opengl3.cpp | ||||
| SOURCES += ../../imgui.cpp ../../imgui_demo.cpp ../../imgui_draw.cpp | ||||
| @@ -1,3 +1,3 @@ | ||||
| @REM Build for Visual Studio compiler. Run your copy of vcvars32.bat or vcvarsall.bat to setup command-line compiler. | ||||
| mkdir Debug | ||||
| cl /nologo /Zi /MD /I ..\.. /I ..\libs\glfw\include /I ..\libs\gl3w *.cpp ..\imgui_impl_glfw.cpp ..\imgui_impl_opengl3.cpp ..\..\imgui*.cpp ..\libs\gl3w\GL\gl3w.c /FeDebug/opengl_example3.exe /FoDebug/ /link /LIBPATH:..\libs\glfw\lib-vc2010-32 glfw3.lib opengl32.lib gdi32.lib shell32.lib | ||||
| cl /nologo /Zi /MD /I ..\.. /I ..\libs\glfw\include /I ..\libs\gl3w *.cpp ..\imgui_impl_glfw.cpp ..\imgui_impl_opengl3.cpp ..\..\imgui*.cpp ..\libs\gl3w\GL\gl3w.c /FeDebug/example_glfw_opengl3.exe /FoDebug/ /link /LIBPATH:..\libs\glfw\lib-vc2010-32 glfw3.lib opengl32.lib gdi32.lib shell32.lib | ||||
| @@ -20,7 +20,7 @@ | ||||
|   </ItemGroup> | ||||
|   <PropertyGroup Label="Globals"> | ||||
|     <ProjectGuid>{4a1fb5ea-22f5-42a8-ab92-1d2df5d47fb9}</ProjectGuid> | ||||
|     <RootNamespace>opengl3_example</RootNamespace> | ||||
|     <RootNamespace>example_glfw_opengl3</RootNamespace> | ||||
|   </PropertyGroup> | ||||
|   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> | ||||
|   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> | ||||
| @@ -1,5 +1,5 @@ | ||||
| cmake_minimum_required(VERSION 2.8) | ||||
| project(ImGuiGLFWVulkanExample C CXX) | ||||
| project(imgui_example_glfw_vulkan C CXX) | ||||
| 
 | ||||
| if(NOT CMAKE_BUILD_TYPE) | ||||
|   set(CMAKE_BUILD_TYPE Debug CACHE STRING "" FORCE) | ||||
| @@ -32,5 +32,5 @@ include_directories(${GLFW_DIR}/deps) | ||||
| 
 | ||||
| file(GLOB sources *.cpp) | ||||
| 
 | ||||
| add_executable(vulkan_example ${sources} ${IMGUI_DIR}/imgui.cpp ${IMGUI_DIR}/imgui_draw.cpp ${IMGUI_DIR}/imgui_demo.cpp) | ||||
| target_link_libraries(vulkan_example ${LIBRARIES}) | ||||
| add_executable(example_glfw_vulkan ${sources} ${IMGUI_DIR}/examples/imgui_impl_glfw.cpp ${IMGUI_DIR}/examples/imgui_impl_vulkan.cpp ${IMGUI_DIR}/imgui.cpp ${IMGUI_DIR}/imgui_draw.cpp ${IMGUI_DIR}/imgui_demo.cpp) | ||||
| target_link_libraries(example_glfw_vulkan ${LIBRARIES}) | ||||
							
								
								
									
										7
									
								
								examples/example_glfw_vulkan/build_win32.bat
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,7 @@ | ||||
| @REM Build for Visual Studio compiler. Run your copy of vcvars32.bat or vcvarsall.bat to setup command-line compiler. | ||||
|  | ||||
| mkdir Debug | ||||
| cl /nologo /Zi /MD /I .. /I ..\.. /I ..\libs\glfw\include /I %VULKAN_SDK%\include *.cpp ..\imgui_impl_vulkan.cpp ..\imgui_impl_glfw.cpp ..\..\imgui*.cpp /FeDebug/example_glfw_vulkan.exe /FoDebug/ /link /LIBPATH:..\libs\glfw\lib-vc2010-32 /libpath:%VULKAN_SDK%\lib32 glfw3.lib opengl32.lib gdi32.lib shell32.lib vulkan-1.lib | ||||
|  | ||||
| mkdir Release | ||||
| cl /nologo /Zi /MD /Ox /Oi /I .. /I ..\.. /I ..\libs\glfw\include /I %VULKAN_SDK%\include *.cpp ..\imgui_impl_vulkan.cpp ..\imgui_impl_glfw.cpp ..\..\imgui*.cpp /FeRelease/example_glfw_vulkan.exe /FoRelease/ /link /LIBPATH:..\libs\glfw\lib-vc2010-32 /libpath:%VULKAN_SDK%\lib32 glfw3.lib opengl32.lib gdi32.lib shell32.lib vulkan-1.lib | ||||
							
								
								
									
										7
									
								
								examples/example_glfw_vulkan/build_win64.bat
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,7 @@ | ||||
| @REM Build for Visual Studio compiler. Run your copy of amd64/vcvars32.bat to setup 64-bit command-line compiler. | ||||
|  | ||||
| mkdir Debug | ||||
| cl /nologo /Zi /MD /I .. /I ..\.. /I ..\libs\glfw\include /I %VULKAN_SDK%\include *.cpp ..\imgui_impl_vulkan.cpp ..\imgui_impl_glfw.cpp ..\..\imgui*.cpp /FeDebug/example_glfw_vulkan.exe /FoDebug/ /link /LIBPATH:..\libs\glfw\lib-vc2010-64 /libpath:%VULKAN_SDK%\lib glfw3.lib opengl32.lib gdi32.lib shell32.lib vulkan-1.lib | ||||
|  | ||||
| mkdir Release | ||||
| cl /nologo /Zi /MD /Ox /Oi /I .. /I ..\.. /I ..\libs\glfw\include /I %VULKAN_SDK%\include *.cpp ..\imgui_impl_vulkan.cpp ..\imgui_impl_glfw.cpp ..\..\imgui*.cpp /FeRelease/example_glfw_vulkan.exe /FoRelease/ /link /LIBPATH:..\libs\glfw\lib-vc2010-64 /libpath:%VULKAN_SDK%\lib glfw3.lib opengl32.lib gdi32.lib shell32.lib vulkan-1.lib | ||||
| @@ -20,7 +20,7 @@ | ||||
|   </ItemGroup> | ||||
|   <PropertyGroup Label="Globals"> | ||||
|     <ProjectGuid>{57E2DF5A-6FC8-45BB-99DD-91A18C646E80}</ProjectGuid> | ||||
|     <RootNamespace>vulkan_example</RootNamespace> | ||||
|     <RootNamespace>example_glfw_vulkan</RootNamespace> | ||||
|   </PropertyGroup> | ||||
|   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> | ||||
|   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> | ||||
| @@ -1,3 +1,3 @@ | ||||
| @REM Build for Visual Studio compiler. Run your copy of vcvars32.bat or vcvarsall.bat to setup command-line compiler. | ||||
| mkdir Debug | ||||
| cl /nologo /Zi /MD /I ..\.. *.cpp ..\..\*.cpp /FeDebug/null_example.exe /FoDebug/ /link gdi32.lib shell32.lib | ||||
| cl /nologo /Zi /MD /I ..\.. *.cpp ..\..\*.cpp /FeDebug/example_null.exe /FoDebug/ /link gdi32.lib shell32.lib | ||||
| @@ -14,8 +14,8 @@ | ||||
| #CXX = g++
 | ||||
| #CXX = clang++
 | ||||
| 
 | ||||
| EXE = sdl_opengl2_example | ||||
| SOURCES = main.cpp ../imgui_impl_sdl2.cpp ../imgui_impl_opengl2.cpp | ||||
| EXE = example_sdl_opengl2 | ||||
| SOURCES = main.cpp ../imgui_impl_sdl.cpp ../imgui_impl_opengl2.cpp | ||||
| SOURCES += ../../imgui.cpp ../../imgui_demo.cpp ../../imgui_draw.cpp | ||||
| OBJS = $(addsuffix .o, $(basename $(notdir $(SOURCES)))) | ||||
| 
 | ||||
							
								
								
									
										22
									
								
								examples/example_sdl_opengl2/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,22 @@ | ||||
|  | ||||
| # How to Build | ||||
|  | ||||
| - On Windows with Visual Studio's CLI | ||||
|  | ||||
| ``` | ||||
| set SDL2DIR=path_to_your_sdl2_folder | ||||
| cl /Zi /MD /I %SDL2DIR%\include /I ..\.. main.cpp ..\imgui_impl_sdl.cpp ..\imgui_impl_opengl2.cpp ..\..\imgui*.cpp /link /LIBPATH:%SDL2DIR%\lib SDL2.lib SDL2main.lib opengl32.lib /subsystem:console | ||||
| ``` | ||||
|  | ||||
| - On Linux and similar Unixes | ||||
|  | ||||
| ``` | ||||
| c++ `sdl2-config --cflags` -I ../.. main.cpp ../imgui_impl_sdl.cpp ../imgui_impl_opengl2.cpp ../../imgui*.cpp `sdl2-config --libs` -lGL | ||||
| ``` | ||||
|  | ||||
| - On Mac OS X | ||||
|  | ||||
| ``` | ||||
| brew install sdl2 | ||||
| c++ `sdl2-config --cflags` -I ../.. main.cpp ../imgui_impl_sdl.cpp ../imgui_impl_opengl2.cpp ../../imgui*.cpp `sdl2-config --libs` -framework OpenGl | ||||
| ``` | ||||
							
								
								
									
										3
									
								
								examples/example_sdl_opengl2/build_win32.bat
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,3 @@ | ||||
| @REM Build for Visual Studio compiler. Run your copy of vcvars32.bat or vcvarsall.bat to setup command-line compiler. | ||||
| mkdir Debug | ||||
| cl /nologo /Zi /MD /I .. /I ..\.. /I ..\libs\gl3w /I %SDL2_DIR%\include *.cpp ..\imgui_impl_opengl2.cpp ..\imgui_impl_sdl.cpp ..\..\imgui*.cpp ..\libs\gl3w\GL\gl3w.c /FeDebug/example_sdl_opengl2.exe /FoDebug/ /link /libpath:%SDL2_DIR%\lib\x86 SDL2.lib SDL2main.lib opengl32.lib /subsystem:console | ||||
| @@ -20,7 +20,7 @@ | ||||
|   </ItemGroup> | ||||
|   <PropertyGroup Label="Globals"> | ||||
|     <ProjectGuid>{2AE17FDE-F7F3-4CAC-ADAB-0710EDA4F741}</ProjectGuid> | ||||
|     <RootNamespace>opengl3_example</RootNamespace> | ||||
|     <RootNamespace>example_sdl_opengl2</RootNamespace> | ||||
|   </PropertyGroup> | ||||
|   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> | ||||
|   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> | ||||
| @@ -154,7 +154,7 @@ | ||||
|     <ClCompile Include="..\..\imgui_demo.cpp" /> | ||||
|     <ClCompile Include="..\..\imgui_draw.cpp" /> | ||||
|     <ClCompile Include="..\imgui_impl_opengl2.cpp" /> | ||||
|     <ClCompile Include="..\imgui_impl_sdl2.cpp" /> | ||||
|     <ClCompile Include="..\imgui_impl_sdl.cpp" /> | ||||
|     <ClCompile Include="main.cpp" /> | ||||
|   </ItemGroup> | ||||
|   <ItemGroup> | ||||
| @@ -162,7 +162,7 @@ | ||||
|     <ClInclude Include="..\..\imgui.h" /> | ||||
|     <ClInclude Include="..\..\imgui_internal.h" /> | ||||
|     <ClInclude Include="..\imgui_impl_opengl2.h" /> | ||||
|     <ClInclude Include="..\imgui_impl_sdl2.h" /> | ||||
|     <ClInclude Include="..\imgui_impl_sdl.h" /> | ||||
|   </ItemGroup> | ||||
|   <ItemGroup> | ||||
|     <None Include="..\..\misc\natvis\imgui.natvis" /> | ||||
| @@ -22,7 +22,7 @@ | ||||
|     <ClCompile Include="main.cpp"> | ||||
|       <Filter>sources</Filter> | ||||
|     </ClCompile> | ||||
|     <ClCompile Include="..\imgui_impl_sdl2.cpp"> | ||||
|     <ClCompile Include="..\imgui_impl_sdl.cpp"> | ||||
|       <Filter>sources</Filter> | ||||
|     </ClCompile> | ||||
|     <ClCompile Include="..\imgui_impl_opengl2.cpp"> | ||||
| @@ -42,7 +42,7 @@ | ||||
|     <ClInclude Include="..\imgui_impl_opengl2.h"> | ||||
|       <Filter>sources</Filter> | ||||
|     </ClInclude> | ||||
|     <ClInclude Include="..\imgui_impl_sdl2.h"> | ||||
|     <ClInclude Include="..\imgui_impl_sdl.h"> | ||||
|       <Filter>sources</Filter> | ||||
|     </ClInclude> | ||||
|   </ItemGroup> | ||||
| @@ -7,7 +7,7 @@ | ||||
| // See imgui_impl_sdl.cpp for details.
 | ||||
| 
 | ||||
| #include "imgui.h" | ||||
| #include "imgui_impl_sdl2.h" | ||||
| #include "imgui_impl_sdl.h" | ||||
| #include "imgui_impl_opengl2.h" | ||||
| #include <stdio.h> | ||||
| #include <SDL.h> | ||||
| @@ -14,9 +14,9 @@ | ||||
| #CXX = g++
 | ||||
| #CXX = clang++
 | ||||
| 
 | ||||
| EXE = sdl_opengl3_example | ||||
| EXE = example_sdl_opengl3 | ||||
| SOURCES = main.cpp | ||||
| SOURCES += ../imgui_impl_sdl2.cpp ../imgui_impl_opengl3.cpp | ||||
| SOURCES += ../imgui_impl_sdl.cpp ../imgui_impl_opengl3.cpp | ||||
| SOURCES += ../../imgui.cpp ../../imgui_demo.cpp ../../imgui_draw.cpp | ||||
| SOURCES += ../libs/gl3w/GL/gl3w.c | ||||
| OBJS = $(addsuffix .o, $(basename $(notdir $(SOURCES)))) | ||||
							
								
								
									
										22
									
								
								examples/example_sdl_opengl3/README.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,22 @@ | ||||
|  | ||||
| # How to Build | ||||
|  | ||||
| - On Windows with Visual Studio's CLI | ||||
|  | ||||
| ``` | ||||
| set SDL2DIR=path_to_your_sdl2_folder | ||||
| cl /Zi /MD /I ..\.. /I ..\libs\gl3w /I %SDL2DIR%\include main.cpp ..\imgui_impl_sdl.cpp ..\imgui_impl_opengl3.cpp ..\..\imgui*.cpp ..\libs\gl3w\GL\gl3w.c /link /libpath:%SDL2DIR%\lib\x86 SDL2.lib SDL2main.lib opengl32.lib /subsystem:console | ||||
| ``` | ||||
|  | ||||
| - On Linux and similar Unixes | ||||
|  | ||||
| ``` | ||||
| c++ `sdl2-config --cflags` -I ../.. -I ../libs/gl3w main.cpp ../imgui_impl_sdl.cpp ../imgui_impl_opengl3.cpp ../../imgui*.cpp ../libs/gl3w/GL/gl3w.c `sdl2-config --libs` -lGL -ldl | ||||
| ``` | ||||
|  | ||||
| - On Mac OS X | ||||
|  | ||||
| ``` | ||||
| brew install sdl2 | ||||
| c++ `sdl2-config --cflags` -I ../.. -I ../libs/gl3w main.cpp ../imgui_impl_sdl.cpp ../imgui_impl_opengl3.cpp ../../imgui*.cpp ../libs/gl3w/GL/gl3w.c `sdl2-config --libs` -framework OpenGl -framework CoreFoundation | ||||
| ``` | ||||
							
								
								
									
										3
									
								
								examples/example_sdl_opengl3/build_win32.bat
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,3 @@ | ||||
| @REM Build for Visual Studio compiler. Run your copy of vcvars32.bat or vcvarsall.bat to setup command-line compiler. | ||||
| mkdir Debug | ||||
| cl /nologo /Zi /MD /I .. /I ..\.. /I ..\libs\gl3w /I %SDL2_DIR%\include *.cpp ..\imgui_impl_opengl3.cpp ..\imgui_impl_sdl.cpp ..\..\imgui*.cpp ..\libs\gl3w\GL\gl3w.c /FeDebug/example_sdl_opengl3.exe /FoDebug/ /link /libpath:%SDL2_DIR%\lib\x86 SDL2.lib SDL2main.lib opengl32.lib /subsystem:console | ||||
| @@ -20,7 +20,7 @@ | ||||
|   </ItemGroup> | ||||
|   <PropertyGroup Label="Globals"> | ||||
|     <ProjectGuid>{BBAEB705-1669-40F3-8567-04CF6A991F4C}</ProjectGuid> | ||||
|     <RootNamespace>opengl3_example</RootNamespace> | ||||
|     <RootNamespace>example_sdl_opengl3</RootNamespace> | ||||
|   </PropertyGroup> | ||||
|   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> | ||||
|   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> | ||||
| @@ -154,7 +154,7 @@ | ||||
|     <ClCompile Include="..\..\imgui_demo.cpp" /> | ||||
|     <ClCompile Include="..\..\imgui_draw.cpp" /> | ||||
|     <ClCompile Include="..\imgui_impl_opengl3.cpp" /> | ||||
|     <ClCompile Include="..\imgui_impl_sdl2.cpp" /> | ||||
|     <ClCompile Include="..\imgui_impl_sdl.cpp" /> | ||||
|     <ClCompile Include="..\libs\gl3w\GL\gl3w.c" /> | ||||
|     <ClCompile Include="main.cpp" /> | ||||
|   </ItemGroup> | ||||
| @@ -163,7 +163,7 @@ | ||||
|     <ClInclude Include="..\..\imgui.h" /> | ||||
|     <ClInclude Include="..\..\imgui_internal.h" /> | ||||
|     <ClInclude Include="..\imgui_impl_opengl3.h" /> | ||||
|     <ClInclude Include="..\imgui_impl_sdl2.h" /> | ||||
|     <ClInclude Include="..\imgui_impl_sdl.h" /> | ||||
|     <ClInclude Include="..\libs\gl3w\GL\gl3w.h" /> | ||||
|     <ClInclude Include="..\libs\gl3w\GL\glcorearb.h" /> | ||||
|   </ItemGroup> | ||||
| @@ -31,7 +31,7 @@ | ||||
|     <ClCompile Include="..\imgui_impl_opengl3.cpp"> | ||||
|       <Filter>sources</Filter> | ||||
|     </ClCompile> | ||||
|     <ClCompile Include="..\imgui_impl_sdl2.cpp"> | ||||
|     <ClCompile Include="..\imgui_impl_sdl.cpp"> | ||||
|       <Filter>sources</Filter> | ||||
|     </ClCompile> | ||||
|   </ItemGroup> | ||||
| @@ -54,7 +54,7 @@ | ||||
|     <ClInclude Include="..\imgui_impl_opengl3.h"> | ||||
|       <Filter>sources</Filter> | ||||
|     </ClInclude> | ||||
|     <ClInclude Include="..\imgui_impl_sdl2.h"> | ||||
|     <ClInclude Include="..\imgui_impl_sdl.h"> | ||||
|       <Filter>sources</Filter> | ||||
|     </ClInclude> | ||||
|   </ItemGroup> | ||||
| @@ -4,7 +4,7 @@ | ||||
| // (GL3W is a helper library to access OpenGL functions since there is no standard header to access modern OpenGL functions easily. Alternatives are GLEW, Glad, etc.)
 | ||||
| 
 | ||||
| #include "imgui.h" | ||||
| #include "imgui_impl_sdl2.h" | ||||
| #include "imgui_impl_sdl.h" | ||||
| #include "imgui_impl_opengl3.h" | ||||
| #include <stdio.h> | ||||
| #include <GL/gl3w.h>    // This example is using gl3w to access OpenGL functions (because it is small). You may use glew/glad/glLoadGen/etc. whatever already works for you.
 | ||||
| @@ -20,7 +20,7 @@ | ||||
|   </ItemGroup> | ||||
|   <PropertyGroup Label="Globals"> | ||||
|     <ProjectGuid>{BAE3D0B5-9695-4EB1-AD0F-75890EB4A3B3}</ProjectGuid> | ||||
|     <RootNamespace>sdl_vulkan_example</RootNamespace> | ||||
|     <RootNamespace>example_sdl_vulkan</RootNamespace> | ||||
|   </PropertyGroup> | ||||
|   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> | ||||
|   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> | ||||
| @@ -153,7 +153,7 @@ | ||||
|     <ClCompile Include="..\..\imgui.cpp" /> | ||||
|     <ClCompile Include="..\..\imgui_demo.cpp" /> | ||||
|     <ClCompile Include="..\..\imgui_draw.cpp" /> | ||||
|     <ClCompile Include="..\imgui_impl_sdl2.cpp" /> | ||||
|     <ClCompile Include="..\imgui_impl_sdl.cpp" /> | ||||
|     <ClCompile Include="..\imgui_impl_vulkan.cpp" /> | ||||
|     <ClCompile Include="main.cpp" /> | ||||
|   </ItemGroup> | ||||
| @@ -161,7 +161,7 @@ | ||||
|     <ClInclude Include="..\..\imconfig.h" /> | ||||
|     <ClInclude Include="..\..\imgui.h" /> | ||||
|     <ClInclude Include="..\..\imgui_internal.h" /> | ||||
|     <ClInclude Include="..\imgui_impl_sdl2.h" /> | ||||
|     <ClInclude Include="..\imgui_impl_sdl.h" /> | ||||
|     <ClInclude Include="..\imgui_impl_vulkan.h" /> | ||||
|   </ItemGroup> | ||||
|   <ItemGroup> | ||||
| @@ -19,7 +19,7 @@ | ||||
|     <ClCompile Include="..\..\imgui_draw.cpp"> | ||||
|       <Filter>imgui</Filter> | ||||
|     </ClCompile> | ||||
|     <ClCompile Include="..\imgui_impl_sdl2.cpp"> | ||||
|     <ClCompile Include="..\imgui_impl_sdl.cpp"> | ||||
|       <Filter>sources</Filter> | ||||
|     </ClCompile> | ||||
|     <ClCompile Include="main.cpp"> | ||||
| @@ -39,7 +39,7 @@ | ||||
|     <ClInclude Include="..\..\imgui_internal.h"> | ||||
|       <Filter>imgui</Filter> | ||||
|     </ClInclude> | ||||
|     <ClInclude Include="..\imgui_impl_sdl2.h"> | ||||
|     <ClInclude Include="..\imgui_impl_sdl.h"> | ||||
|       <Filter>sources</Filter> | ||||
|     </ClInclude> | ||||
|     <ClInclude Include="..\imgui_impl_vulkan.h"> | ||||
| @@ -2,7 +2,7 @@ | ||||
| // If you are new to ImGui, see examples/README.txt and documentation at the top of imgui.cpp.
 | ||||
| 
 | ||||
| #include "imgui.h" | ||||
| #include "imgui_impl_sdl2.h" | ||||
| #include "imgui_impl_sdl.h" | ||||
| #include "imgui_impl_vulkan.h" | ||||
| #include <stdio.h>          // printf, fprintf
 | ||||
| #include <stdlib.h>         // abort
 | ||||
| @@ -1,4 +1,4 @@ | ||||
| @REM Build for Visual Studio compiler. Run your copy of vcvars32.bat or vcvarsall.bat to setup command-line compiler. | ||||
| mkdir Debug | ||||
| cl /nologo /Zi /MD /I .. /I ..\.. /I "%WindowsSdkDir%Include\um" /I "%WindowsSdkDir%Include\shared" /I "%DXSDK_DIR%Include" /D UNICODE /D _UNICODE *.cpp ..\imgui_impl_win32.cpp ..\imgui_impl_dx10.cpp ..\..\imgui*.cpp /FeDebug/directx10_example.exe /FoDebug/ /link /LIBPATH:"%DXSDK_DIR%/Lib/x86" d3d10.lib d3dcompiler.lib | ||||
| cl /nologo /Zi /MD /I .. /I ..\.. /I "%WindowsSdkDir%Include\um" /I "%WindowsSdkDir%Include\shared" /I "%DXSDK_DIR%Include" /D UNICODE /D _UNICODE *.cpp ..\imgui_impl_win32.cpp ..\imgui_impl_dx10.cpp ..\..\imgui*.cpp /FeDebug/example_win32_directx10.exe /FoDebug/ /link /LIBPATH:"%DXSDK_DIR%/Lib/x86" d3d10.lib d3dcompiler.lib | ||||
| 
 | ||||
| @@ -1,4 +1,4 @@ | ||||
| @REM Build for Visual Studio compiler. Run your copy of vcvars32.bat or vcvarsall.bat to setup command-line compiler. | ||||
| mkdir Debug | ||||
| cl /nologo /Zi /MD /I .. /I ..\.. /I "%WindowsSdkDir%Include\um" /I "%WindowsSdkDir%Include\shared" /I "%DXSDK_DIR%Include" /D UNICODE /D _UNICODE *.cpp ..\imgui_impl_dx11.cpp ..\imgui_impl_win32.cpp ..\..\imgui*.cpp /FeDebug/directx11_example.exe /FoDebug/ /link /LIBPATH:"%DXSDK_DIR%/Lib/x86" d3d11.lib d3dcompiler.lib | ||||
| cl /nologo /Zi /MD /I .. /I ..\.. /I "%WindowsSdkDir%Include\um" /I "%WindowsSdkDir%Include\shared" /I "%DXSDK_DIR%Include" /D UNICODE /D _UNICODE *.cpp ..\imgui_impl_dx11.cpp ..\imgui_impl_win32.cpp ..\..\imgui*.cpp /FeDebug/example_win32_directx11.exe /FoDebug/ /link /LIBPATH:"%DXSDK_DIR%/Lib/x86" d3d11.lib d3dcompiler.lib | ||||
| 
 | ||||
| @@ -20,7 +20,7 @@ | ||||
|   </ItemGroup> | ||||
|   <PropertyGroup Label="Globals"> | ||||
|     <ProjectGuid>{9F316E83-5AE5-4939-A723-305A94F48005}</ProjectGuid> | ||||
|     <RootNamespace>directx11_example</RootNamespace> | ||||
|     <RootNamespace>example_win32_directx11</RootNamespace> | ||||
|   </PropertyGroup> | ||||
|   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> | ||||
|   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> | ||||
| @@ -1,4 +1,4 @@ | ||||
| @REM Build for Visual Studio compiler. Run your copy of vcvars32.bat or vcvarsall.bat to setup command-line compiler. | ||||
| mkdir Debug | ||||
| cl /nologo /Zi /MD /I .. /I ..\.. /I "%WindowsSdkDir%Include\um" /I "%WindowsSdkDir%Include\shared" /D UNICODE /D _UNICODE *.cpp ..\imgui_impl_dx12.cpp ..\imgui_impl_win32.cpp ..\..\imgui*.cpp /FeDebug/directx12_example.exe /FoDebug/ /link d3d12.lib d3dcompiler.lib dxgi.lib | ||||
| cl /nologo /Zi /MD /I .. /I ..\.. /I "%WindowsSdkDir%Include\um" /I "%WindowsSdkDir%Include\shared" /D UNICODE /D _UNICODE *.cpp ..\imgui_impl_dx12.cpp ..\imgui_impl_win32.cpp ..\..\imgui*.cpp /FeDebug/example_win32_directx12.exe /FoDebug/ /link d3d12.lib d3dcompiler.lib dxgi.lib | ||||
| 
 | ||||
| @@ -1,3 +1,3 @@ | ||||
| @REM Build for Visual Studio compiler. Run your copy of vcvars32.bat or vcvarsall.bat to setup command-line compiler. | ||||
| mkdir Debug | ||||
| cl /nologo /Zi /MD /I .. /I ..\.. /I "%DXSDK_DIR%/Include" /D UNICODE /D _UNICODE *.cpp ..\imgui_impl_dx9.cpp ..\imgui_impl_win32.cpp ..\..\imgui*.cpp /FeDebug/directx9_example.exe /FoDebug/ /link /LIBPATH:"%DXSDK_DIR%/Lib/x86" d3d9.lib | ||||
| cl /nologo /Zi /MD /I .. /I ..\.. /I "%DXSDK_DIR%/Include" /D UNICODE /D _UNICODE *.cpp ..\imgui_impl_dx9.cpp ..\imgui_impl_win32.cpp ..\..\imgui*.cpp /FeDebug/example_win32_directx9.exe /FoDebug/ /link /LIBPATH:"%DXSDK_DIR%/Lib/x86" d3d9.lib | ||||
| @@ -20,7 +20,7 @@ | ||||
|   </ItemGroup> | ||||
|   <PropertyGroup Label="Globals"> | ||||
|     <ProjectGuid>{4165A294-21F2-44CA-9B38-E3F935ABADF5}</ProjectGuid> | ||||
|     <RootNamespace>directx9_example</RootNamespace> | ||||
|     <RootNamespace>example_win32_directx9</RootNamespace> | ||||
|   </PropertyGroup> | ||||
|   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" /> | ||||
|   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration"> | ||||
| @@ -3,15 +3,15 @@ Microsoft Visual Studio Solution File, Format Version 12.00 | ||||
| # Visual Studio 14 | ||||
| VisualStudioVersion = 14.0.25420.1 | ||||
| MinimumVisualStudioVersion = 10.0.40219.1 | ||||
| Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "opengl2_example", "opengl2_example\opengl2_example.vcxproj", "{9CDA7840-B7A5-496D-A527-E95571496D18}" | ||||
| Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "example_win32_directx9", "example_win32_directx9\example_win32_directx9.vcxproj", "{4165A294-21F2-44CA-9B38-E3F935ABADF5}" | ||||
| EndProject | ||||
| Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "directx9_example", "directx9_example\directx9_example.vcxproj", "{4165A294-21F2-44CA-9B38-E3F935ABADF5}" | ||||
| Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "example_win32_directx10", "example_win32_directx10\example_win32_directx10.vcxproj", "{345A953E-A004-4648-B442-DC5F9F11068C}" | ||||
| EndProject | ||||
| Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "directx11_example", "directx11_example\directx11_example.vcxproj", "{9F316E83-5AE5-4939-A723-305A94F48005}" | ||||
| Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "example_win32_directx11", "example_win32_directx11\example_win32_directx11.vcxproj", "{9F316E83-5AE5-4939-A723-305A94F48005}" | ||||
| EndProject | ||||
| Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "opengl3_example", "opengl3_example\opengl3_example.vcxproj", "{4A1FB5EA-22F5-42A8-AB92-1D2DF5D47FB9}" | ||||
| Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "example_glfw_opengl2", "example_glfw_opengl2\example_glfw_opengl2.vcxproj", "{9CDA7840-B7A5-496D-A527-E95571496D18}" | ||||
| EndProject | ||||
| Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "directx10_example", "directx10_example\directx10_example.vcxproj", "{345A953E-A004-4648-B442-DC5F9F11068C}" | ||||
| Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "example_glfw_opengl3", "example_glfw_opengl3\example_glfw_opengl3.vcxproj", "{4A1FB5EA-22F5-42A8-AB92-1D2DF5D47FB9}" | ||||
| EndProject | ||||
| Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sdl_opengl2_example", "sdl_opengl2_example\sdl_opengl2_example.vcxproj", "{2AE17FDE-F7F3-4CAC-ADAB-0710EDA4F741}" | ||||
| EndProject | ||||
|   | ||||
| @@ -15,8 +15,8 @@ | ||||
| // CHANGELOG
 | ||||
| // (minor and older changes stripped away, please see git history for details)
 | ||||
| //  2018-XX-XX: Platform: Added support for multiple windows via the ImGuiPlatformIO interface.
 | ||||
| //  2018-06-08: Misc: Extracted imgui_impl_sdl2.cpp/.h away from the old combined SDL2+OpenGL/Vulkan examples.
 | ||||
| //  2018-06-08: Misc: Renamed ImGui_ImplSDL2_Init() to ImGui_ImplSDL2_InitForOpenGL() which now takes the SDL_GLContext parameter. 
 | ||||
| //  2018-06-08: Misc: Extracted imgui_impl_sdl.cpp/.h away from the old combined SDL2+OpenGL/Vulkan examples.
 | ||||
| //  2018-06-08: Misc: ImGui_ImplSDL2_InitForOpenGL() now takes a SDL_GLContext parameter. 
 | ||||
| //  2018-05-09: Misc: Fixed clipboard paste memory leak (we didn't call SDL_FreeMemory on the data returned by SDL_GetClipboardText).
 | ||||
| //  2018-03-20: Misc: Setup io.BackendFlags ImGuiBackendFlags_HasMouseCursors flag + honor ImGuiConfigFlags_NoMouseCursorChange flag.
 | ||||
| //  2018-02-16: Inputs: Added support for mouse cursors, honoring ImGui::GetMouseCursor() value.
 | ||||
| @@ -31,7 +31,7 @@ | ||||
| //  2016-10-15: Misc: Added a void* user_data parameter to Clipboard function handlers.
 | ||||
| 
 | ||||
| #include "imgui.h" | ||||
| #include "imgui_impl_sdl2.h" | ||||
| #include "imgui_impl_sdl.h" | ||||
| 
 | ||||
| // SDL
 | ||||
| // (the multi-viewports feature requires SDL features supported from SDL 2.0.5+)
 | ||||
| @@ -1,22 +0,0 @@ | ||||
|  | ||||
| # How to Build | ||||
|  | ||||
| - On Windows with Visual Studio's CLI | ||||
|  | ||||
| ``` | ||||
| set SDL2DIR=path_to_your_sdl2_folder | ||||
| cl /Zi /MD /I %SDL2DIR%\include /I ..\.. main.cpp imgui_impl_sdl_gl2.cpp ..\..\imgui*.cpp /link /LIBPATH:%SDL2DIR%\lib SDL2.lib SDL2main.lib opengl32.lib /subsystem:console | ||||
| ``` | ||||
|  | ||||
| - On Linux and similar Unixes | ||||
|  | ||||
| ``` | ||||
| c++ `sdl2-config --cflags` -I ../.. main.cpp imgui_impl_sdl_gl2.cpp ../../imgui*.cpp `sdl2-config --libs` -lGL -o sdl2example | ||||
| ``` | ||||
|  | ||||
| - On Mac OS X | ||||
|  | ||||
| ``` | ||||
| brew install sdl2 | ||||
| c++ `sdl2-config --cflags` -I ../.. main.cpp imgui_impl_sdl_gl2.cpp ../../imgui*.cpp `sdl2-config --libs` -framework OpenGl -o sdl2example | ||||
| ``` | ||||
| @@ -1,3 +0,0 @@ | ||||
| @REM Build for Visual Studio compiler. Run your copy of vcvars32.bat or vcvarsall.bat to setup command-line compiler. | ||||
| mkdir Debug | ||||
| cl /nologo /Zi /MD /I .. /I ..\.. /I ..\libs\gl3w /I %SDL2_DIR%\include *.cpp ..\imgui_impl_opengl2.cpp ..\imgui_impl_sdl2.cpp ..\..\imgui*.cpp ..\libs\gl3w\GL\gl3w.c /FeDebug/sdl_opengl2_example.exe /FoDebug/ /link /libpath:%SDL2_DIR%\lib\x86 SDL2.lib SDL2main.lib opengl32.lib /subsystem:console | ||||
| @@ -1,22 +0,0 @@ | ||||
|  | ||||
| # How to Build | ||||
|  | ||||
| - On Windows with Visual Studio's CLI | ||||
|  | ||||
| ``` | ||||
| set SDL2DIR=path_to_your_sdl2_folder | ||||
| cl /Zi /MD /I ..\.. /I ..\libs\gl3w /I %SDL2DIR%\include main.cpp imgui_impl_sdl_gl3.cpp ..\..\imgui*.cpp ..\libs\gl3w\GL\gl3w.c /link /libpath:%SDL2DIR%\lib\x86 SDL2.lib SDL2main.lib opengl32.lib /subsystem:console | ||||
| ``` | ||||
|  | ||||
| - On Linux and similar Unixes | ||||
|  | ||||
| ``` | ||||
| c++ `sdl2-config --cflags` -I ../.. -I ../libs/gl3w main.cpp imgui_impl_sdl_gl3.cpp ../../imgui*.cpp ../libs/gl3w/GL/gl3w.c `sdl2-config --libs` -lGL -ldl -o sdl2example | ||||
| ``` | ||||
|  | ||||
| - On Mac OS X | ||||
|  | ||||
| ``` | ||||
| brew install sdl2 | ||||
| c++ `sdl2-config --cflags` -I ../.. -I ../libs/gl3w main.cpp imgui_impl_sdl_gl3.cpp ../../imgui*.cpp ../libs/gl3w/GL/gl3w.c `sdl2-config --libs` -framework OpenGl -framework CoreFoundation -o sdl2example | ||||
| ``` | ||||
| @@ -1,3 +0,0 @@ | ||||
| @REM Build for Visual Studio compiler. Run your copy of vcvars32.bat or vcvarsall.bat to setup command-line compiler. | ||||
| mkdir Debug | ||||
| cl /nologo /Zi /MD /I .. /I ..\.. /I ..\libs\gl3w /I %SDL2_DIR%\include *.cpp ..\imgui_impl_opengl3.cpp ..\imgui_impl_sdl2.cpp ..\..\imgui*.cpp ..\libs\gl3w\GL\gl3w.c /FeDebug/sdl_opengl3_example.exe /FoDebug/ /link /libpath:%SDL2_DIR%\lib\x86 SDL2.lib SDL2main.lib opengl32.lib /subsystem:console | ||||
| @@ -1,7 +0,0 @@ | ||||
| @REM Build for Visual Studio compiler. Run your copy of vcvars32.bat or vcvarsall.bat to setup command-line compiler. | ||||
|  | ||||
| mkdir Debug | ||||
| cl /nologo /Zi /MD /I .. /I ..\.. /I ..\libs\glfw\include /I %VULKAN_SDK%\include *.cpp ..\imgui_impl_vulkan.cpp ..\imgui_impl_glfw.cpp ..\..\imgui*.cpp /FeDebug/vulkan_example.exe /FoDebug/ /link /LIBPATH:..\libs\glfw\lib-vc2010-32 /libpath:%VULKAN_SDK%\lib32 glfw3.lib opengl32.lib gdi32.lib shell32.lib vulkan-1.lib | ||||
|  | ||||
| mkdir Release | ||||
| cl /nologo /Zi /MD /Ox /Oi /I .. /I ..\.. /I ..\libs\glfw\include /I %VULKAN_SDK%\include *.cpp ..\imgui_impl_vulkan.cpp ..\imgui_impl_glfw.cpp ..\..\imgui*.cpp /FeRelease/vulkan_example.exe /FoRelease/ /link /LIBPATH:..\libs\glfw\lib-vc2010-32 /libpath:%VULKAN_SDK%\lib32 glfw3.lib opengl32.lib gdi32.lib shell32.lib vulkan-1.lib | ||||
| @@ -1,7 +0,0 @@ | ||||
| @REM Build for Visual Studio compiler. Run your copy of amd64/vcvars32.bat to setup 64-bit command-line compiler. | ||||
|  | ||||
| mkdir Debug | ||||
| cl /nologo /Zi /MD /I .. /I ..\.. /I ..\libs\glfw\include /I %VULKAN_SDK%\include *.cpp ..\imgui_impl_vulkan.cpp ..\imgui_impl_glfw.cpp ..\..\imgui*.cpp /FeDebug/vulkan_example.exe /FoDebug/ /link /LIBPATH:..\libs\glfw\lib-vc2010-64 /libpath:%VULKAN_SDK%\lib glfw3.lib opengl32.lib gdi32.lib shell32.lib vulkan-1.lib | ||||
|  | ||||
| mkdir Release | ||||
| cl /nologo /Zi /MD /Ox /Oi /I .. /I ..\.. /I ..\libs\glfw\include /I %VULKAN_SDK%\include *.cpp ..\imgui_impl_vulkan.cpp ..\imgui_impl_glfw.cpp ..\..\imgui*.cpp /FeRelease/vulkan_example.exe /FoRelease/ /link /LIBPATH:..\libs\glfw\lib-vc2010-64 /libpath:%VULKAN_SDK%\lib glfw3.lib opengl32.lib gdi32.lib shell32.lib vulkan-1.lib | ||||