summaryrefslogtreecommitdiff
path: root/imgui-1.92.1/examples
diff options
context:
space:
mode:
authorAldrik Ramaekers <aldrikboy@gmail.com>2025-08-09 08:35:03 +0200
committerAldrik Ramaekers <aldrikboy@gmail.com>2025-08-09 08:35:03 +0200
commit432f24319319fe040e142059eb83279c53f90ab8 (patch)
tree5631eb0eb3a46d086070e8398d9080ff681133ac /imgui-1.92.1/examples
parent5d34aff5888d3f0c624251f15bedb96c347978d6 (diff)
refactor 2
Diffstat (limited to 'imgui-1.92.1/examples')
-rw-r--r--imgui-1.92.1/examples/README.txt9
-rw-r--r--imgui-1.92.1/examples/example_allegro5/README.md36
-rw-r--r--imgui-1.92.1/examples/example_allegro5/example_allegro5.vcxproj185
-rw-r--r--imgui-1.92.1/examples/example_allegro5/example_allegro5.vcxproj.filters61
-rw-r--r--imgui-1.92.1/examples/example_allegro5/imconfig_allegro5.h11
-rw-r--r--imgui-1.92.1/examples/example_allegro5/main.cpp149
-rw-r--r--imgui-1.92.1/examples/example_android_opengl3/CMakeLists.txt40
-rw-r--r--imgui-1.92.1/examples/example_android_opengl3/android/.gitignore12
-rw-r--r--imgui-1.92.1/examples/example_android_opengl3/android/app/build.gradle46
-rw-r--r--imgui-1.92.1/examples/example_android_opengl3/android/app/src/main/AndroidManifest.xml24
-rw-r--r--imgui-1.92.1/examples/example_android_opengl3/android/app/src/main/java/MainActivity.kt40
-rw-r--r--imgui-1.92.1/examples/example_android_opengl3/android/build.gradle24
-rw-r--r--imgui-1.92.1/examples/example_android_opengl3/android/settings.gradle1
-rw-r--r--imgui-1.92.1/examples/example_android_opengl3/main.cpp382
-rw-r--r--imgui-1.92.1/examples/example_apple_metal/Makefile21
-rw-r--r--imgui-1.92.1/examples/example_apple_metal/README.md10
-rw-r--r--imgui-1.92.1/examples/example_apple_metal/example_apple_metal.xcodeproj/project.pbxproj522
-rw-r--r--imgui-1.92.1/examples/example_apple_metal/iOS/Info-iOS.plist49
-rw-r--r--imgui-1.92.1/examples/example_apple_metal/iOS/LaunchScreen.storyboard27
-rw-r--r--imgui-1.92.1/examples/example_apple_metal/macOS/Info-macOS.plist30
-rw-r--r--imgui-1.92.1/examples/example_apple_metal/macOS/MainMenu.storyboard93
-rw-r--r--imgui-1.92.1/examples/example_apple_metal/main.mm348
-rw-r--r--imgui-1.92.1/examples/example_apple_opengl2/Makefile21
-rw-r--r--imgui-1.92.1/examples/example_apple_opengl2/example_apple_opengl2.xcodeproj/project.pbxproj332
-rw-r--r--imgui-1.92.1/examples/example_apple_opengl2/main.mm256
-rw-r--r--imgui-1.92.1/examples/example_glfw_metal/Makefile46
-rw-r--r--imgui-1.92.1/examples/example_glfw_metal/main.mm177
-rw-r--r--imgui-1.92.1/examples/example_glfw_opengl2/Makefile81
-rw-r--r--imgui-1.92.1/examples/example_glfw_opengl2/build_win32.bat8
-rw-r--r--imgui-1.92.1/examples/example_glfw_opengl2/example_glfw_opengl2.vcxproj186
-rw-r--r--imgui-1.92.1/examples/example_glfw_opengl2/example_glfw_opengl2.vcxproj.filters64
-rw-r--r--imgui-1.92.1/examples/example_glfw_opengl2/main.cpp171
-rw-r--r--imgui-1.92.1/examples/example_glfw_opengl3/Makefile89
-rw-r--r--imgui-1.92.1/examples/example_glfw_opengl3/Makefile.emscripten95
-rw-r--r--imgui-1.92.1/examples/example_glfw_opengl3/build_win32.bat8
-rw-r--r--imgui-1.92.1/examples/example_glfw_opengl3/example_glfw_opengl3.vcxproj187
-rw-r--r--imgui-1.92.1/examples/example_glfw_opengl3/example_glfw_opengl3.vcxproj.filters67
-rw-r--r--imgui-1.92.1/examples/example_glfw_opengl3/main.cpp214
-rw-r--r--imgui-1.92.1/examples/example_glfw_vulkan/CMakeLists.txt47
-rw-r--r--imgui-1.92.1/examples/example_glfw_vulkan/Makefile83
-rw-r--r--imgui-1.92.1/examples/example_glfw_vulkan/build_win32.bat14
-rw-r--r--imgui-1.92.1/examples/example_glfw_vulkan/build_win64.bat14
-rw-r--r--imgui-1.92.1/examples/example_glfw_vulkan/example_glfw_vulkan.vcxproj190
-rw-r--r--imgui-1.92.1/examples/example_glfw_vulkan/example_glfw_vulkan.vcxproj.filters64
-rw-r--r--imgui-1.92.1/examples/example_glfw_vulkan/main.cpp534
-rw-r--r--imgui-1.92.1/examples/example_glfw_wgpu/CMakeLists.txt117
-rw-r--r--imgui-1.92.1/examples/example_glfw_wgpu/Makefile.emscripten92
-rw-r--r--imgui-1.92.1/examples/example_glfw_wgpu/README.md24
-rw-r--r--imgui-1.92.1/examples/example_glfw_wgpu/main.cpp350
-rw-r--r--imgui-1.92.1/examples/example_glut_opengl2/Makefile75
-rw-r--r--imgui-1.92.1/examples/example_glut_opengl2/example_glut_opengl2.vcxproj186
-rw-r--r--imgui-1.92.1/examples/example_glut_opengl2/example_glut_opengl2.vcxproj.filters64
-rw-r--r--imgui-1.92.1/examples/example_glut_opengl2/main.cpp164
-rw-r--r--imgui-1.92.1/examples/example_null/Makefile92
-rw-r--r--imgui-1.92.1/examples/example_null/build_win32.bat3
-rw-r--r--imgui-1.92.1/examples/example_null/main.cpp38
-rw-r--r--imgui-1.92.1/examples/example_sdl2_directx11/build_win32.bat8
-rw-r--r--imgui-1.92.1/examples/example_sdl2_directx11/example_sdl2_directx11.vcxproj187
-rw-r--r--imgui-1.92.1/examples/example_sdl2_directx11/example_sdl2_directx11.vcxproj.filters63
-rw-r--r--imgui-1.92.1/examples/example_sdl2_directx11/main.cpp259
-rw-r--r--imgui-1.92.1/examples/example_sdl2_metal/Makefile47
-rw-r--r--imgui-1.92.1/examples/example_sdl2_metal/main.mm189
-rw-r--r--imgui-1.92.1/examples/example_sdl2_opengl2/Makefile79
-rw-r--r--imgui-1.92.1/examples/example_sdl2_opengl2/README.md29
-rw-r--r--imgui-1.92.1/examples/example_sdl2_opengl2/build_win32.bat8
-rw-r--r--imgui-1.92.1/examples/example_sdl2_opengl2/example_sdl2_opengl2.vcxproj186
-rw-r--r--imgui-1.92.1/examples/example_sdl2_opengl2/example_sdl2_opengl2.vcxproj.filters64
-rw-r--r--imgui-1.92.1/examples/example_sdl2_opengl2/main.cpp188
-rw-r--r--imgui-1.92.1/examples/example_sdl2_opengl3/Makefile91
-rw-r--r--imgui-1.92.1/examples/example_sdl2_opengl3/Makefile.emscripten95
-rw-r--r--imgui-1.92.1/examples/example_sdl2_opengl3/README.md57
-rw-r--r--imgui-1.92.1/examples/example_sdl2_opengl3/build_win32.bat8
-rw-r--r--imgui-1.92.1/examples/example_sdl2_opengl3/example_sdl2_opengl3.vcxproj187
-rw-r--r--imgui-1.92.1/examples/example_sdl2_opengl3/example_sdl2_opengl3.vcxproj.filters67
-rw-r--r--imgui-1.92.1/examples/example_sdl2_opengl3/main.cpp238
-rw-r--r--imgui-1.92.1/examples/example_sdl2_sdlrenderer2/Makefile79
-rw-r--r--imgui-1.92.1/examples/example_sdl2_sdlrenderer2/README.md25
-rw-r--r--imgui-1.92.1/examples/example_sdl2_sdlrenderer2/build_win32.bat8
-rw-r--r--imgui-1.92.1/examples/example_sdl2_sdlrenderer2/example_sdl2_sdlrenderer2.vcxproj187
-rw-r--r--imgui-1.92.1/examples/example_sdl2_sdlrenderer2/example_sdl2_sdlrenderer2.vcxproj.filters64
-rw-r--r--imgui-1.92.1/examples/example_sdl2_sdlrenderer2/main.cpp189
-rw-r--r--imgui-1.92.1/examples/example_sdl2_vulkan/Makefile80
-rw-r--r--imgui-1.92.1/examples/example_sdl2_vulkan/build_win32.bat14
-rw-r--r--imgui-1.92.1/examples/example_sdl2_vulkan/build_win64.bat14
-rw-r--r--imgui-1.92.1/examples/example_sdl2_vulkan/example_sdl2_vulkan.vcxproj190
-rw-r--r--imgui-1.92.1/examples/example_sdl2_vulkan/example_sdl2_vulkan.vcxproj.filters64
-rw-r--r--imgui-1.92.1/examples/example_sdl2_vulkan/main.cpp555
-rw-r--r--imgui-1.92.1/examples/example_sdl3_opengl3/Makefile85
-rw-r--r--imgui-1.92.1/examples/example_sdl3_opengl3/Makefile.emscripten99
-rw-r--r--imgui-1.92.1/examples/example_sdl3_opengl3/README.md40
-rw-r--r--imgui-1.92.1/examples/example_sdl3_opengl3/build_win32.bat14
-rw-r--r--imgui-1.92.1/examples/example_sdl3_opengl3/build_win64.bat14
-rw-r--r--imgui-1.92.1/examples/example_sdl3_opengl3/example_sdl3_opengl3.vcxproj187
-rw-r--r--imgui-1.92.1/examples/example_sdl3_opengl3/example_sdl3_opengl3.vcxproj.filters67
-rw-r--r--imgui-1.92.1/examples/example_sdl3_opengl3/main.cpp232
-rw-r--r--imgui-1.92.1/examples/example_sdl3_sdlgpu3/Makefile73
-rw-r--r--imgui-1.92.1/examples/example_sdl3_sdlgpu3/build_win64.bat14
-rw-r--r--imgui-1.92.1/examples/example_sdl3_sdlgpu3/example_sdl3_sdlgpu3.vcxproj189
-rw-r--r--imgui-1.92.1/examples/example_sdl3_sdlgpu3/example_sdl3_sdlgpu3.vcxproj.filters60
-rw-r--r--imgui-1.92.1/examples/example_sdl3_sdlgpu3/main.cpp227
-rw-r--r--imgui-1.92.1/examples/example_sdl3_sdlrenderer3/Makefile74
-rw-r--r--imgui-1.92.1/examples/example_sdl3_sdlrenderer3/build_win32.bat8
-rw-r--r--imgui-1.92.1/examples/example_sdl3_sdlrenderer3/example_sdl3_sdlrenderer3.vcxproj186
-rw-r--r--imgui-1.92.1/examples/example_sdl3_sdlrenderer3/example_sdl3_sdlrenderer3.vcxproj.filters64
-rw-r--r--imgui-1.92.1/examples/example_sdl3_sdlrenderer3/main.cpp194
-rw-r--r--imgui-1.92.1/examples/example_sdl3_vulkan/Makefile77
-rw-r--r--imgui-1.92.1/examples/example_sdl3_vulkan/build_win32.bat14
-rw-r--r--imgui-1.92.1/examples/example_sdl3_vulkan/build_win64.bat14
-rw-r--r--imgui-1.92.1/examples/example_sdl3_vulkan/example_sdl3_vulkan.vcxproj190
-rw-r--r--imgui-1.92.1/examples/example_sdl3_vulkan/example_sdl3_vulkan.vcxproj.filters64
-rw-r--r--imgui-1.92.1/examples/example_sdl3_vulkan/main.cpp558
-rw-r--r--imgui-1.92.1/examples/example_win32_directx10/build_win32.bat8
-rw-r--r--imgui-1.92.1/examples/example_win32_directx10/example_win32_directx10.vcxproj176
-rw-r--r--imgui-1.92.1/examples/example_win32_directx10/example_win32_directx10.vcxproj.filters63
-rw-r--r--imgui-1.92.1/examples/example_win32_directx10/main.cpp279
-rw-r--r--imgui-1.92.1/examples/example_win32_directx11/build_win32.bat9
-rw-r--r--imgui-1.92.1/examples/example_win32_directx11/example_win32_directx11.vcxproj175
-rw-r--r--imgui-1.92.1/examples/example_win32_directx11/example_win32_directx11.vcxproj.filters63
-rw-r--r--imgui-1.92.1/examples/example_win32_directx11/main.cpp282
-rw-r--r--imgui-1.92.1/examples/example_win32_directx12/build_win32.bat8
-rw-r--r--imgui-1.92.1/examples/example_win32_directx12/example_win32_directx12.vcxproj180
-rw-r--r--imgui-1.92.1/examples/example_win32_directx12/example_win32_directx12.vcxproj.filters65
-rw-r--r--imgui-1.92.1/examples/example_win32_directx12/main.cpp547
-rw-r--r--imgui-1.92.1/examples/example_win32_directx9/build_win32.bat8
-rw-r--r--imgui-1.92.1/examples/example_win32_directx9/example_win32_directx9.vcxproj176
-rw-r--r--imgui-1.92.1/examples/example_win32_directx9/example_win32_directx9.vcxproj.filters64
-rw-r--r--imgui-1.92.1/examples/example_win32_directx9/main.cpp272
-rw-r--r--imgui-1.92.1/examples/example_win32_opengl3/build_mingw.bat8
-rw-r--r--imgui-1.92.1/examples/example_win32_opengl3/build_win32.bat8
-rw-r--r--imgui-1.92.1/examples/example_win32_opengl3/example_win32_opengl3.vcxproj176
-rw-r--r--imgui-1.92.1/examples/example_win32_opengl3/example_win32_opengl3.vcxproj.filters64
-rw-r--r--imgui-1.92.1/examples/example_win32_opengl3/main.cpp243
-rw-r--r--imgui-1.92.1/examples/example_win32_vulkan/build_win32.bat9
-rw-r--r--imgui-1.92.1/examples/example_win32_vulkan/build_win64.bat9
-rw-r--r--imgui-1.92.1/examples/example_win32_vulkan/example_win32_vulkan.vcxproj178
-rw-r--r--imgui-1.92.1/examples/example_win32_vulkan/example_win32_vulkan.vcxproj.filters63
-rw-r--r--imgui-1.92.1/examples/example_win32_vulkan/main.cpp559
-rw-r--r--imgui-1.92.1/examples/imgui_examples.sln201
-rw-r--r--imgui-1.92.1/examples/libs/emscripten/emscripten_mainloop_stub.h38
-rw-r--r--imgui-1.92.1/examples/libs/emscripten/shell_minimal.html65
-rw-r--r--imgui-1.92.1/examples/libs/glfw/COPYING.txt22
-rw-r--r--imgui-1.92.1/examples/libs/glfw/include/GLFW/glfw3.h4227
-rw-r--r--imgui-1.92.1/examples/libs/glfw/include/GLFW/glfw3native.h456
-rw-r--r--imgui-1.92.1/examples/libs/glfw/lib-vc2010-32/glfw3.libbin187376 -> 0 bytes
-rw-r--r--imgui-1.92.1/examples/libs/glfw/lib-vc2010-64/glfw3.libbin291120 -> 0 bytes
-rw-r--r--imgui-1.92.1/examples/libs/usynergy/README.txt8
-rw-r--r--imgui-1.92.1/examples/libs/usynergy/uSynergy.c636
-rw-r--r--imgui-1.92.1/examples/libs/usynergy/uSynergy.h420
148 files changed, 0 insertions, 22301 deletions
diff --git a/imgui-1.92.1/examples/README.txt b/imgui-1.92.1/examples/README.txt
deleted file mode 100644
index 6db2f3c..0000000
--- a/imgui-1.92.1/examples/README.txt
+++ /dev/null
@@ -1,9 +0,0 @@
-See BACKENDS and EXAMPLES files in the docs/ folder, or on the web at: https://github.com/ocornut/imgui/tree/master/docs
-
-Backends = Helper code to facilitate integration with platforms/graphics api (used by Examples + should be used by your app).
-Examples = Standalone applications showcasing integration with platforms/graphics api.
-
-Some Examples have extra README files in their respective directory, please check them too!
-
-Once Dear ImGui is running (in either examples or your own application/game/engine),
-run and refer to ImGui::ShowDemoWindow() in imgui_demo.cpp for the end-user API.
diff --git a/imgui-1.92.1/examples/example_allegro5/README.md b/imgui-1.92.1/examples/example_allegro5/README.md
deleted file mode 100644
index 940b47f..0000000
--- a/imgui-1.92.1/examples/example_allegro5/README.md
+++ /dev/null
@@ -1,36 +0,0 @@
-
-# Configuration
-
-Dear ImGui outputs 16-bit vertex indices by default.
-Allegro doesn't support them natively, so we have two solutions: convert the indices manually in imgui_impl_allegro5.cpp, or compile dear imgui with 32-bit indices.
-You can either modify imconfig.h that comes with Dear ImGui (easier), or set a C++ preprocessor option IMGUI_USER_CONFIG to find to a filename.
-We are providing `imconfig_allegro5.h` that enables 32-bit indices.
-Note that the backend supports _BOTH_ 16-bit and 32-bit indices, but 32-bit indices will be slightly faster as they won't require a manual conversion.
-
-# How to Build
-
-### On Ubuntu 14.04+ and macOS
-
-```bash
-g++ -DIMGUI_USER_CONFIG=\"examples/example_allegro5/imconfig_allegro5.h\" -I .. -I ../.. -I ../../backends main.cpp ../../backends/imgui_impl_allegro5.cpp ../../imgui*.cpp -lallegro -lallegro_main -lallegro_primitives -o allegro5_example
-```
-
-On macOS, install Allegro with homebrew: `brew install allegro`.
-
-### On Windows with Visual Studio's CLI
-
-You may install Allegro using vcpkg:
-```
-git clone https://github.com/Microsoft/vcpkg
-cd vcpkg
-bootstrap-vcpkg.bat
-vcpkg install allegro5 --triplet=x86-windows ; for win32
-vcpkg install allegro5 --triplet=x64-windows ; for win64
-vcpkg integrate install ; register include / libs in Visual Studio
-```
-
-Build:
-```
-set ALLEGRODIR=path_to_your_allegro5_folder
-cl /Zi /MD /utf-8 /I %ALLEGRODIR%\include /DIMGUI_USER_CONFIG=\"examples/example_allegro5/imconfig_allegro5.h\" /I .. /I ..\.. /I ..\..\backends main.cpp ..\..\backends\imgui_impl_allegro5.cpp ..\..\imgui*.cpp /link /LIBPATH:%ALLEGRODIR%\lib allegro-5.0.10-monolith-md.lib user32.lib
-```
diff --git a/imgui-1.92.1/examples/example_allegro5/example_allegro5.vcxproj b/imgui-1.92.1/examples/example_allegro5/example_allegro5.vcxproj
deleted file mode 100644
index 02f6a47..0000000
--- a/imgui-1.92.1/examples/example_allegro5/example_allegro5.vcxproj
+++ /dev/null
@@ -1,185 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="Debug|Win32">
- <Configuration>Debug</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Debug|x64">
- <Configuration>Debug</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|Win32">
- <Configuration>Release</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|x64">
- <Configuration>Release</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- </ItemGroup>
- <PropertyGroup Label="Globals">
- <ProjectGuid>{73F235B5-7D31-4FC6-8682-DDC5A097B9C1}</ProjectGuid>
- <RootNamespace>example_allegro5</RootNamespace>
- <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>true</UseDebugLibraries>
- <CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>true</UseDebugLibraries>
- <CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>false</UseDebugLibraries>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- <CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>false</UseDebugLibraries>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- <CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
- <ImportGroup Label="ExtensionSettings">
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <PropertyGroup Label="UserMacros" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <OutDir>$(ProjectDir)$(Configuration)\</OutDir>
- <IntDir>$(ProjectDir)$(Configuration)\</IntDir>
- <IncludePath>$(IncludePath)</IncludePath>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <OutDir>$(ProjectDir)$(Configuration)\</OutDir>
- <IntDir>$(ProjectDir)$(Configuration)\</IntDir>
- <IncludePath>$(IncludePath)</IncludePath>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <OutDir>$(ProjectDir)$(Configuration)\</OutDir>
- <IntDir>$(ProjectDir)$(Configuration)\</IntDir>
- <IncludePath>$(IncludePath)</IncludePath>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <OutDir>$(ProjectDir)$(Configuration)\</OutDir>
- <IntDir>$(ProjectDir)$(Configuration)\</IntDir>
- <IncludePath>$(IncludePath)</IncludePath>
- </PropertyGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <ClCompile>
- <WarningLevel>Level4</WarningLevel>
- <Optimization>Disabled</Optimization>
- <AdditionalIncludeDirectories>..\..;..\..\backends;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
- </ClCompile>
- <Link>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
- <AdditionalDependencies>opengl32.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <SubSystem>Console</SubSystem>
- <IgnoreSpecificDefaultLibraries>msvcrt.lib</IgnoreSpecificDefaultLibraries>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <ClCompile>
- <WarningLevel>Level4</WarningLevel>
- <Optimization>Disabled</Optimization>
- <AdditionalIncludeDirectories>..\..;..\..\backends;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
- </ClCompile>
- <Link>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
- <AdditionalDependencies>opengl32.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <SubSystem>Console</SubSystem>
- <IgnoreSpecificDefaultLibraries>msvcrt.lib</IgnoreSpecificDefaultLibraries>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <ClCompile>
- <WarningLevel>Level4</WarningLevel>
- <Optimization>MaxSpeed</Optimization>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <IntrinsicFunctions>true</IntrinsicFunctions>
- <AdditionalIncludeDirectories>..\..;..\..\backends;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <BufferSecurityCheck>false</BufferSecurityCheck>
- <AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
- </ClCompile>
- <Link>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- <OptimizeReferences>true</OptimizeReferences>
- <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
- <AdditionalDependencies>opengl32.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <SubSystem>Console</SubSystem>
- <IgnoreSpecificDefaultLibraries>
- </IgnoreSpecificDefaultLibraries>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <ClCompile>
- <WarningLevel>Level4</WarningLevel>
- <Optimization>MaxSpeed</Optimization>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <IntrinsicFunctions>true</IntrinsicFunctions>
- <AdditionalIncludeDirectories>..\..;..\..\backends;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <BufferSecurityCheck>false</BufferSecurityCheck>
- <AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
- </ClCompile>
- <Link>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- <OptimizeReferences>true</OptimizeReferences>
- <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
- <AdditionalDependencies>opengl32.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <SubSystem>Console</SubSystem>
- <IgnoreSpecificDefaultLibraries>
- </IgnoreSpecificDefaultLibraries>
- </Link>
- </ItemDefinitionGroup>
- <ItemGroup>
- <ClCompile Include="..\..\imgui.cpp" />
- <ClCompile Include="..\..\imgui_demo.cpp" />
- <ClCompile Include="..\..\imgui_draw.cpp" />
- <ClCompile Include="..\..\imgui_tables.cpp" />
- <ClCompile Include="..\..\imgui_widgets.cpp" />
- <ClCompile Include="..\..\backends\imgui_impl_allegro5.cpp" />
- <ClCompile Include="imconfig_allegro5.h" />
- <ClCompile Include="main.cpp" />
- </ItemGroup>
- <ItemGroup>
- <ClInclude Include="..\..\imconfig.h" />
- <ClInclude Include="..\..\imgui.h" />
- <ClInclude Include="..\..\imgui_internal.h" />
- <ClInclude Include="..\..\backends\imgui_impl_allegro5.h" />
- </ItemGroup>
- <ItemGroup>
- <None Include="..\..\misc\debuggers\imgui.natstepfilter" />
- <None Include="..\..\misc\debuggers\imgui.natvis" />
- <None Include="..\README.txt" />
- </ItemGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
- <ImportGroup Label="ExtensionTargets">
- </ImportGroup>
-</Project> \ No newline at end of file
diff --git a/imgui-1.92.1/examples/example_allegro5/example_allegro5.vcxproj.filters b/imgui-1.92.1/examples/example_allegro5/example_allegro5.vcxproj.filters
deleted file mode 100644
index 84881d3..0000000
--- a/imgui-1.92.1/examples/example_allegro5/example_allegro5.vcxproj.filters
+++ /dev/null
@@ -1,61 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup>
- <Filter Include="imgui">
- <UniqueIdentifier>{20b90ce4-7fcb-4731-b9a0-075f875de82d}</UniqueIdentifier>
- </Filter>
- <Filter Include="sources">
- <UniqueIdentifier>{f18ab499-84e1-499f-8eff-9754361e0e52}</UniqueIdentifier>
- <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
- </Filter>
- </ItemGroup>
- <ItemGroup>
- <ClCompile Include="..\..\imgui.cpp">
- <Filter>imgui</Filter>
- </ClCompile>
- <ClCompile Include="..\..\imgui_demo.cpp">
- <Filter>imgui</Filter>
- </ClCompile>
- <ClCompile Include="..\..\imgui_draw.cpp">
- <Filter>imgui</Filter>
- </ClCompile>
- <ClCompile Include="main.cpp">
- <Filter>sources</Filter>
- </ClCompile>
- <ClCompile Include="..\..\backends\imgui_impl_allegro5.cpp">
- <Filter>sources</Filter>
- </ClCompile>
- <ClCompile Include="imconfig_allegro5.h">
- <Filter>sources</Filter>
- </ClCompile>
- <ClCompile Include="..\..\imgui_tables.cpp">
- <Filter>imgui</Filter>
- </ClCompile>
- <ClCompile Include="..\..\imgui_widgets.cpp">
- <Filter>imgui</Filter>
- </ClCompile>
- </ItemGroup>
- <ItemGroup>
- <ClInclude Include="..\..\imconfig.h">
- <Filter>imgui</Filter>
- </ClInclude>
- <ClInclude Include="..\..\imgui.h">
- <Filter>imgui</Filter>
- </ClInclude>
- <ClInclude Include="..\..\imgui_internal.h">
- <Filter>imgui</Filter>
- </ClInclude>
- <ClInclude Include="..\..\backends\imgui_impl_allegro5.h">
- <Filter>sources</Filter>
- </ClInclude>
- </ItemGroup>
- <ItemGroup>
- <None Include="..\README.txt" />
- <None Include="..\..\misc\debuggers\imgui.natvis">
- <Filter>imgui</Filter>
- </None>
- <None Include="..\..\misc\debuggers\imgui.natstepfilter">
- <Filter>imgui</Filter>
- </None>
- </ItemGroup>
-</Project> \ No newline at end of file
diff --git a/imgui-1.92.1/examples/example_allegro5/imconfig_allegro5.h b/imgui-1.92.1/examples/example_allegro5/imconfig_allegro5.h
deleted file mode 100644
index 35afa67..0000000
--- a/imgui-1.92.1/examples/example_allegro5/imconfig_allegro5.h
+++ /dev/null
@@ -1,11 +0,0 @@
-//-----------------------------------------------------------------------------
-// COMPILE-TIME OPTIONS FOR DEAR IMGUI ALLEGRO 5 EXAMPLE
-// See imconfig.h for the full template
-// Because Allegro doesn't support 16-bit vertex indices, we enable the compile-time option of imgui to use 32-bit indices
-//-----------------------------------------------------------------------------
-
-#pragma once
-
-// Use 32-bit vertex indices because Allegro doesn't support 16-bit ones
-// This allows us to avoid converting vertices format at runtime
-#define ImDrawIdx int
diff --git a/imgui-1.92.1/examples/example_allegro5/main.cpp b/imgui-1.92.1/examples/example_allegro5/main.cpp
deleted file mode 100644
index 02db84a..0000000
--- a/imgui-1.92.1/examples/example_allegro5/main.cpp
+++ /dev/null
@@ -1,149 +0,0 @@
-// Dear ImGui: standalone example application for Allegro 5
-
-// Learn about Dear ImGui:
-// - FAQ https://dearimgui.com/faq
-// - Getting Started https://dearimgui.com/getting-started
-// - Documentation https://dearimgui.com/docs (same as your local docs/ folder).
-// - Introduction, links and more at the top of imgui.cpp
-
-// On Windows, you can install Allegro5 using vcpkg:
-// git clone https://github.com/Microsoft/vcpkg
-// cd vcpkg
-// bootstrap - vcpkg.bat
-// vcpkg install allegro5 --triplet=x86-windows ; for win32
-// vcpkg install allegro5 --triplet=x64-windows ; for win64
-// vcpkg integrate install ; register include and libs in Visual Studio
-
-#include <stdint.h>
-#include <allegro5/allegro.h>
-#include <allegro5/allegro_primitives.h>
-#include "imgui.h"
-#include "imgui_impl_allegro5.h"
-
-int main(int, char**)
-{
- // Setup Allegro
- al_init();
- al_install_keyboard();
- al_install_mouse();
- al_init_primitives_addon();
- al_set_new_display_flags(ALLEGRO_RESIZABLE);
- ALLEGRO_DISPLAY* display = al_create_display(1280, 720);
- al_set_window_title(display, "Dear ImGui Allegro 5 example");
- ALLEGRO_EVENT_QUEUE* queue = al_create_event_queue();
- al_register_event_source(queue, al_get_display_event_source(display));
- al_register_event_source(queue, al_get_keyboard_event_source());
- al_register_event_source(queue, al_get_mouse_event_source());
-
- // Setup Dear ImGui context
- IMGUI_CHECKVERSION();
- ImGui::CreateContext();
- ImGuiIO& io = ImGui::GetIO(); (void)io;
- io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard; // Enable Keyboard Controls
-
- // Setup Dear ImGui style
- ImGui::StyleColorsDark();
- //ImGui::StyleColorsLight();
-
- // Setup Platform/Renderer backends
- ImGui_ImplAllegro5_Init(display);
-
- // Load Fonts
- // - If no fonts are loaded, dear imgui will use the default font. You can also load multiple fonts and use ImGui::PushFont()/PopFont() to select them.
- // - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
- // - If the file cannot be loaded, the function will return a nullptr. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
- // - Use '#define IMGUI_ENABLE_FREETYPE' in your imconfig file to use Freetype for higher quality font rendering.
- // - Read 'docs/FONTS.md' for more instructions and details.
- // - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
- //style.FontSizeBase = 20.0f;
- //io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\segoeui.ttf");
- //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf");
- //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf");
- //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf");
- //ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf");
- //IM_ASSERT(font != nullptr);
-
- bool show_demo_window = true;
- bool show_another_window = false;
- ImVec4 clear_color = ImVec4(0.45f, 0.55f, 0.60f, 1.00f);
-
- // Main loop
- bool running = true;
- while (running)
- {
- // Poll and handle events (inputs, window resize, etc.)
- // You can read the io.WantCaptureMouse, io.WantCaptureKeyboard flags to tell if dear imgui wants to use your inputs.
- // - When io.WantCaptureMouse is true, do not dispatch mouse input data to your main application, or clear/overwrite your copy of the mouse data.
- // - When io.WantCaptureKeyboard is true, do not dispatch keyboard input data to your main application, or clear/overwrite your copy of the keyboard data.
- // Generally you may always pass all inputs to dear imgui, and hide them from your application based on those two flags.
- ALLEGRO_EVENT ev;
- while (al_get_next_event(queue, &ev))
- {
- ImGui_ImplAllegro5_ProcessEvent(&ev);
- if (ev.type == ALLEGRO_EVENT_DISPLAY_CLOSE)
- running = false;
- if (ev.type == ALLEGRO_EVENT_DISPLAY_RESIZE)
- {
- ImGui_ImplAllegro5_InvalidateDeviceObjects();
- al_acknowledge_resize(display);
- ImGui_ImplAllegro5_CreateDeviceObjects();
- }
- }
-
- // Start the Dear ImGui frame
- ImGui_ImplAllegro5_NewFrame();
- ImGui::NewFrame();
-
- // 1. Show the big demo window (Most of the sample code is in ImGui::ShowDemoWindow()! You can browse its code to learn more about Dear ImGui!).
- if (show_demo_window)
- ImGui::ShowDemoWindow(&show_demo_window);
-
- // 2. Show a simple window that we create ourselves. We use a Begin/End pair to create a named window.
- {
- static float f = 0.0f;
- static int counter = 0;
-
- ImGui::Begin("Hello, world!"); // Create a window called "Hello, world!" and append into it.
-
- ImGui::Text("This is some useful text."); // Display some text (you can use a format strings too)
- ImGui::Checkbox("Demo Window", &show_demo_window); // Edit bools storing our window open/close state
- ImGui::Checkbox("Another Window", &show_another_window);
-
- ImGui::SliderFloat("float", &f, 0.0f, 1.0f); // Edit 1 float using a slider from 0.0f to 1.0f
- ImGui::ColorEdit3("clear color", (float*)&clear_color); // Edit 3 floats representing a color
-
- if (ImGui::Button("Button")) // Buttons return true when clicked (most widgets return true when edited/activated)
- counter++;
- ImGui::SameLine();
- ImGui::Text("counter = %d", counter);
-
- ImGui::Text("Application average %.3f ms/frame (%.1f FPS)", 1000.0f / io.Framerate, io.Framerate);
- ImGui::End();
- }
-
- // 3. Show another simple window.
- if (show_another_window)
- {
- ImGui::Begin("Another Window", &show_another_window); // Pass a pointer to our bool variable (the window will have a closing button that will clear the bool when clicked)
- ImGui::Text("Hello from another window!");
- if (ImGui::Button("Close Me"))
- show_another_window = false;
- ImGui::End();
- }
-
- // Rendering
- ImGui::Render();
- al_clear_to_color(al_map_rgba_f(clear_color.x * clear_color.w, clear_color.y * clear_color.w, clear_color.z * clear_color.w, clear_color.w));
- ImGui_ImplAllegro5_RenderDrawData(ImGui::GetDrawData());
- al_flip_display();
- }
-
- // Cleanup
- ImGui_ImplAllegro5_Shutdown();
- ImGui::DestroyContext();
- al_destroy_event_queue(queue);
- al_destroy_display(display);
-
- return 0;
-}
diff --git a/imgui-1.92.1/examples/example_android_opengl3/CMakeLists.txt b/imgui-1.92.1/examples/example_android_opengl3/CMakeLists.txt
deleted file mode 100644
index 63531f4..0000000
--- a/imgui-1.92.1/examples/example_android_opengl3/CMakeLists.txt
+++ /dev/null
@@ -1,40 +0,0 @@
-cmake_minimum_required(VERSION 3.6)
-
-project(ImGuiExample)
-
-set(CMAKE_CXX_STANDARD 11)
-set(CMAKE_CXX_STANDARD_REQUIRED ON)
-set(CMAKE_CXX_EXTENSIONS OFF)
-
-add_library(${CMAKE_PROJECT_NAME} SHARED
- ${CMAKE_CURRENT_SOURCE_DIR}/main.cpp
- ${CMAKE_CURRENT_SOURCE_DIR}/../../imgui.cpp
- ${CMAKE_CURRENT_SOURCE_DIR}/../../imgui_demo.cpp
- ${CMAKE_CURRENT_SOURCE_DIR}/../../imgui_draw.cpp
- ${CMAKE_CURRENT_SOURCE_DIR}/../../imgui_tables.cpp
- ${CMAKE_CURRENT_SOURCE_DIR}/../../imgui_widgets.cpp
- ${CMAKE_CURRENT_SOURCE_DIR}/../../backends/imgui_impl_android.cpp
- ${CMAKE_CURRENT_SOURCE_DIR}/../../backends/imgui_impl_opengl3.cpp
- ${ANDROID_NDK}/sources/android/native_app_glue/android_native_app_glue.c
-)
-
-set(CMAKE_SHARED_LINKER_FLAGS
- "${CMAKE_SHARED_LINKER_FLAGS} -u ANativeActivity_onCreate"
-)
-
-target_compile_definitions(${CMAKE_PROJECT_NAME} PRIVATE
- IMGUI_IMPL_OPENGL_ES3
-)
-
-target_include_directories(${CMAKE_PROJECT_NAME} PRIVATE
- ${CMAKE_CURRENT_SOURCE_DIR}/../..
- ${CMAKE_CURRENT_SOURCE_DIR}/../../backends
- ${ANDROID_NDK}/sources/android/native_app_glue
-)
-
-target_link_libraries(${CMAKE_PROJECT_NAME} PRIVATE
- android
- EGL
- GLESv3
- log
-)
diff --git a/imgui-1.92.1/examples/example_android_opengl3/android/.gitignore b/imgui-1.92.1/examples/example_android_opengl3/android/.gitignore
deleted file mode 100644
index 3c7a619..0000000
--- a/imgui-1.92.1/examples/example_android_opengl3/android/.gitignore
+++ /dev/null
@@ -1,12 +0,0 @@
-.cxx
-.externalNativeBuild
-build/
-*.iml
-
-.idea
-.gradle
-local.properties
-
-# Android Studio puts a Gradle wrapper here, that we don't want:
-gradle/
-gradlew*
diff --git a/imgui-1.92.1/examples/example_android_opengl3/android/app/build.gradle b/imgui-1.92.1/examples/example_android_opengl3/android/app/build.gradle
deleted file mode 100644
index 3a68c83..0000000
--- a/imgui-1.92.1/examples/example_android_opengl3/android/app/build.gradle
+++ /dev/null
@@ -1,46 +0,0 @@
-apply plugin: 'com.android.application'
-apply plugin: 'kotlin-android'
-
-android {
- compileSdkVersion 33
- buildToolsVersion "33.0.2"
- ndkVersion "25.2.9519653"
-
- defaultConfig {
- applicationId "imgui.example.android"
- namespace "imgui.example.android"
- minSdkVersion 24
- targetSdkVersion 33
- versionCode 1
- versionName "1.0"
- }
-
- buildTypes {
- release {
- minifyEnabled false
- proguardFiles getDefaultProguardFile('proguard-android-optimize.txt')
- }
- }
-
- compileOptions {
- sourceCompatibility JavaVersion.VERSION_11
- targetCompatibility JavaVersion.VERSION_11
- }
-
- kotlinOptions {
- jvmTarget="11"
- }
-
- externalNativeBuild {
- cmake {
- path "../../CMakeLists.txt"
- version '3.22.1'
- }
- }
-}
-repositories {
- mavenCentral()
-}
-dependencies {
- implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
-}
diff --git a/imgui-1.92.1/examples/example_android_opengl3/android/app/src/main/AndroidManifest.xml b/imgui-1.92.1/examples/example_android_opengl3/android/app/src/main/AndroidManifest.xml
deleted file mode 100644
index 5a1e2d9..0000000
--- a/imgui-1.92.1/examples/example_android_opengl3/android/app/src/main/AndroidManifest.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<manifest xmlns:android="http://schemas.android.com/apk/res/android">
-
- <application
- android:label="ImGuiExample"
- android:allowBackup="false"
- android:fullBackupContent="false"
- android:hasCode="true">
-
- <activity
- android:name="imgui.example.android.MainActivity"
- android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
- android:configChanges="orientation|keyboardHidden|screenSize"
- android:exported="true">
- <meta-data android:name="android.app.lib_name"
- android:value="ImGuiExample" />
-
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.LAUNCHER" />
- </intent-filter>
- </activity>
- </application>
-</manifest>
diff --git a/imgui-1.92.1/examples/example_android_opengl3/android/app/src/main/java/MainActivity.kt b/imgui-1.92.1/examples/example_android_opengl3/android/app/src/main/java/MainActivity.kt
deleted file mode 100644
index 896a88c..0000000
--- a/imgui-1.92.1/examples/example_android_opengl3/android/app/src/main/java/MainActivity.kt
+++ /dev/null
@@ -1,40 +0,0 @@
-package imgui.example.android
-
-import android.app.NativeActivity
-import android.os.Bundle
-import android.content.Context
-import android.view.inputmethod.InputMethodManager
-import android.view.KeyEvent
-import java.util.concurrent.LinkedBlockingQueue
-
-class MainActivity : NativeActivity() {
- public override fun onCreate(savedInstanceState: Bundle?) {
- super.onCreate(savedInstanceState)
- }
-
- fun showSoftInput() {
- val inputMethodManager = getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
- inputMethodManager.showSoftInput(this.window.decorView, 0)
- }
-
- fun hideSoftInput() {
- val inputMethodManager = getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
- inputMethodManager.hideSoftInputFromWindow(this.window.decorView.windowToken, 0)
- }
-
- // Queue for the Unicode characters to be polled from native code (via pollUnicodeChar())
- private var unicodeCharacterQueue: LinkedBlockingQueue<Int> = LinkedBlockingQueue()
-
- // We assume dispatchKeyEvent() of the NativeActivity is actually called for every
- // KeyEvent and not consumed by any View before it reaches here
- override fun dispatchKeyEvent(event: KeyEvent): Boolean {
- if (event.action == KeyEvent.ACTION_DOWN) {
- unicodeCharacterQueue.offer(event.getUnicodeChar(event.metaState))
- }
- return super.dispatchKeyEvent(event)
- }
-
- fun pollUnicodeChar(): Int {
- return unicodeCharacterQueue.poll() ?: 0
- }
-}
diff --git a/imgui-1.92.1/examples/example_android_opengl3/android/build.gradle b/imgui-1.92.1/examples/example_android_opengl3/android/build.gradle
deleted file mode 100644
index ccd2185..0000000
--- a/imgui-1.92.1/examples/example_android_opengl3/android/build.gradle
+++ /dev/null
@@ -1,24 +0,0 @@
-buildscript {
- ext.kotlin_version = '1.8.0'
- repositories {
- google()
- mavenCentral()
-
- }
- dependencies {
- classpath 'com.android.tools.build:gradle:7.4.1'
- classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
-
- }
-}
-
-allprojects {
- repositories {
- google()
- mavenCentral()
- }
-}
-
-task clean(type: Delete) {
- delete rootProject.buildDir
-}
diff --git a/imgui-1.92.1/examples/example_android_opengl3/android/settings.gradle b/imgui-1.92.1/examples/example_android_opengl3/android/settings.gradle
deleted file mode 100644
index e7b4def..0000000
--- a/imgui-1.92.1/examples/example_android_opengl3/android/settings.gradle
+++ /dev/null
@@ -1 +0,0 @@
-include ':app'
diff --git a/imgui-1.92.1/examples/example_android_opengl3/main.cpp b/imgui-1.92.1/examples/example_android_opengl3/main.cpp
deleted file mode 100644
index 452cb77..0000000
--- a/imgui-1.92.1/examples/example_android_opengl3/main.cpp
+++ /dev/null
@@ -1,382 +0,0 @@
-// dear imgui: standalone example application for Android + OpenGL ES 3
-
-// Learn about Dear ImGui:
-// - FAQ https://dearimgui.com/faq
-// - Getting Started https://dearimgui.com/getting-started
-// - Documentation https://dearimgui.com/docs (same as your local docs/ folder).
-// - Introduction, links and more at the top of imgui.cpp
-
-#include "imgui.h"
-#include "imgui_impl_android.h"
-#include "imgui_impl_opengl3.h"
-#include <android/log.h>
-#include <android_native_app_glue.h>
-#include <android/asset_manager.h>
-#include <EGL/egl.h>
-#include <GLES3/gl3.h>
-#include <string>
-
-// Data
-static EGLDisplay g_EglDisplay = EGL_NO_DISPLAY;
-static EGLSurface g_EglSurface = EGL_NO_SURFACE;
-static EGLContext g_EglContext = EGL_NO_CONTEXT;
-static struct android_app* g_App = nullptr;
-static bool g_Initialized = false;
-static char g_LogTag[] = "ImGuiExample";
-static std::string g_IniFilename = "";
-
-// Forward declarations of helper functions
-static void Init(struct android_app* app);
-static void Shutdown();
-static void MainLoopStep();
-static int ShowSoftKeyboardInput();
-static int PollUnicodeChars();
-static int GetAssetData(const char* filename, void** out_data);
-
-// Main code
-static void handleAppCmd(struct android_app* app, int32_t appCmd)
-{
- switch (appCmd)
- {
- case APP_CMD_SAVE_STATE:
- break;
- case APP_CMD_INIT_WINDOW:
- Init(app);
- break;
- case APP_CMD_TERM_WINDOW:
- Shutdown();
- break;
- case APP_CMD_GAINED_FOCUS:
- case APP_CMD_LOST_FOCUS:
- break;
- }
-}
-
-static int32_t handleInputEvent(struct android_app* app, AInputEvent* inputEvent)
-{
- return ImGui_ImplAndroid_HandleInputEvent(inputEvent);
-}
-
-void android_main(struct android_app* app)
-{
- app->onAppCmd = handleAppCmd;
- app->onInputEvent = handleInputEvent;
-
- while (true)
- {
- int out_events;
- struct android_poll_source* out_data;
-
- // Poll all events. If the app is not visible, this loop blocks until g_Initialized == true.
- while (ALooper_pollOnce(g_Initialized ? 0 : -1, nullptr, &out_events, (void**)&out_data) >= 0)
- {
- // Process one event
- if (out_data != nullptr)
- out_data->process(app, out_data);
-
- // Exit the app by returning from within the infinite loop
- if (app->destroyRequested != 0)
- {
- // shutdown() should have been called already while processing the
- // app command APP_CMD_TERM_WINDOW. But we play save here
- if (!g_Initialized)
- Shutdown();
-
- return;
- }
- }
-
- // Initiate a new frame
- MainLoopStep();
- }
-}
-
-void Init(struct android_app* app)
-{
- if (g_Initialized)
- return;
-
- g_App = app;
- ANativeWindow_acquire(g_App->window);
-
- // Initialize EGL
- // This is mostly boilerplate code for EGL...
- {
- g_EglDisplay = eglGetDisplay(EGL_DEFAULT_DISPLAY);
- if (g_EglDisplay == EGL_NO_DISPLAY)
- __android_log_print(ANDROID_LOG_ERROR, g_LogTag, "%s", "eglGetDisplay(EGL_DEFAULT_DISPLAY) returned EGL_NO_DISPLAY");
-
- if (eglInitialize(g_EglDisplay, 0, 0) != EGL_TRUE)
- __android_log_print(ANDROID_LOG_ERROR, g_LogTag, "%s", "eglInitialize() returned with an error");
-
- const EGLint egl_attributes[] = { EGL_BLUE_SIZE, 8, EGL_GREEN_SIZE, 8, EGL_RED_SIZE, 8, EGL_DEPTH_SIZE, 24, EGL_SURFACE_TYPE, EGL_WINDOW_BIT, EGL_NONE };
- EGLint num_configs = 0;
- if (eglChooseConfig(g_EglDisplay, egl_attributes, nullptr, 0, &num_configs) != EGL_TRUE)
- __android_log_print(ANDROID_LOG_ERROR, g_LogTag, "%s", "eglChooseConfig() returned with an error");
- if (num_configs == 0)
- __android_log_print(ANDROID_LOG_ERROR, g_LogTag, "%s", "eglChooseConfig() returned 0 matching config");
-
- // Get the first matching config
- EGLConfig egl_config;
- eglChooseConfig(g_EglDisplay, egl_attributes, &egl_config, 1, &num_configs);
- EGLint egl_format;
- eglGetConfigAttrib(g_EglDisplay, egl_config, EGL_NATIVE_VISUAL_ID, &egl_format);
- ANativeWindow_setBuffersGeometry(g_App->window, 0, 0, egl_format);
-
- const EGLint egl_context_attributes[] = { EGL_CONTEXT_CLIENT_VERSION, 3, EGL_NONE };
- g_EglContext = eglCreateContext(g_EglDisplay, egl_config, EGL_NO_CONTEXT, egl_context_attributes);
-
- if (g_EglContext == EGL_NO_CONTEXT)
- __android_log_print(ANDROID_LOG_ERROR, g_LogTag, "%s", "eglCreateContext() returned EGL_NO_CONTEXT");
-
- g_EglSurface = eglCreateWindowSurface(g_EglDisplay, egl_config, g_App->window, nullptr);
- eglMakeCurrent(g_EglDisplay, g_EglSurface, g_EglSurface, g_EglContext);
- }
-
- // Setup Dear ImGui context
- IMGUI_CHECKVERSION();
- ImGui::CreateContext();
- ImGuiIO& io = ImGui::GetIO();
-
- // Redirect loading/saving of .ini file to our location.
- // Make sure 'g_IniFilename' persists while we use Dear ImGui.
- g_IniFilename = std::string(app->activity->internalDataPath) + "/imgui.ini";
- io.IniFilename = g_IniFilename.c_str();;
-
- // Setup Dear ImGui style
- ImGui::StyleColorsDark();
- //ImGui::StyleColorsLight();
-
- // Setup Platform/Renderer backends
- ImGui_ImplAndroid_Init(g_App->window);
- ImGui_ImplOpenGL3_Init("#version 300 es");
-
- // Load Fonts
- // - If no fonts are loaded, dear imgui will use the default font. You can also load multiple fonts and use ImGui::PushFont()/PopFont() to select them.
- // - If the file cannot be loaded, the function will return a nullptr. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
- // - Read 'docs/FONTS.md' for more instructions and details.
- // - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
- // - Android: The TTF files have to be placed into the assets/ directory (android/app/src/main/assets), we use our GetAssetData() helper to retrieve them.
-
- // We load the default font with increased size to improve readability on many devices with "high" DPI.
- // FIXME: Put some effort into DPI awareness.
- // Important: when calling AddFontFromMemoryTTF(), ownership of font_data is transferred by Dear ImGui by default (deleted is handled by Dear ImGui), unless we set FontDataOwnedByAtlas=false in ImFontConfig
- ImFontConfig font_cfg;
- font_cfg.SizePixels = 22.0f;
- io.Fonts->AddFontDefault(&font_cfg);
- //void* font_data;
- //int font_data_size;
- //ImFont* font;
- //font_data_size = GetAssetData("segoeui.ttf", &font_data);
- //font = io.Fonts->AddFontFromMemoryTTF(font_data, font_data_size, 16.0f);
- //IM_ASSERT(font != nullptr);
- //font_data_size = GetAssetData("DroidSans.ttf", &font_data);
- //font = io.Fonts->AddFontFromMemoryTTF(font_data, font_data_size, 16.0f);
- //IM_ASSERT(font != nullptr);
- //font_data_size = GetAssetData("Roboto-Medium.ttf", &font_data);
- //font = io.Fonts->AddFontFromMemoryTTF(font_data, font_data_size, 16.0f);
- //IM_ASSERT(font != nullptr);
- //font_data_size = GetAssetData("Cousine-Regular.ttf", &font_data);
- //font = io.Fonts->AddFontFromMemoryTTF(font_data, font_data_size, 15.0f);
- //IM_ASSERT(font != nullptr);
- //font_data_size = GetAssetData("ArialUni.ttf", &font_data);
- //font = io.Fonts->AddFontFromMemoryTTF(font_data, font_data_size, 18.0f);
- //IM_ASSERT(font != nullptr);
-
- // Arbitrary scale-up
- // FIXME: Put some effort into DPI awareness
- ImGui::GetStyle().ScaleAllSizes(3.0f);
-
- g_Initialized = true;
-}
-
-void MainLoopStep()
-{
- ImGuiIO& io = ImGui::GetIO();
- if (g_EglDisplay == EGL_NO_DISPLAY)
- return;
-
- // Our state
- // (we use static, which essentially makes the variable globals, as a convenience to keep the example code easy to follow)
- static bool show_demo_window = true;
- static bool show_another_window = false;
- static ImVec4 clear_color = ImVec4(0.45f, 0.55f, 0.60f, 1.00f);
-
- // Poll Unicode characters via JNI
- // FIXME: do not call this every frame because of JNI overhead
- PollUnicodeChars();
-
- // Open on-screen (soft) input if requested by Dear ImGui
- static bool WantTextInputLast = false;
- if (io.WantTextInput && !WantTextInputLast)
- ShowSoftKeyboardInput();
- WantTextInputLast = io.WantTextInput;
-
- // Start the Dear ImGui frame
- ImGui_ImplOpenGL3_NewFrame();
- ImGui_ImplAndroid_NewFrame();
- ImGui::NewFrame();
-
- // 1. Show the big demo window (Most of the sample code is in ImGui::ShowDemoWindow()! You can browse its code to learn more about Dear ImGui!).
- if (show_demo_window)
- ImGui::ShowDemoWindow(&show_demo_window);
-
- // 2. Show a simple window that we create ourselves. We use a Begin/End pair to create a named window.
- {
- static float f = 0.0f;
- static int counter = 0;
-
- ImGui::Begin("Hello, world!"); // Create a window called "Hello, world!" and append into it.
-
- ImGui::Text("This is some useful text."); // Display some text (you can use a format strings too)
- ImGui::Checkbox("Demo Window", &show_demo_window); // Edit bools storing our window open/close state
- ImGui::Checkbox("Another Window", &show_another_window);
-
- ImGui::SliderFloat("float", &f, 0.0f, 1.0f); // Edit 1 float using a slider from 0.0f to 1.0f
- ImGui::ColorEdit3("clear color", (float*)&clear_color); // Edit 3 floats representing a color
-
- if (ImGui::Button("Button")) // Buttons return true when clicked (most widgets return true when edited/activated)
- counter++;
- ImGui::SameLine();
- ImGui::Text("counter = %d", counter);
-
- ImGui::Text("Application average %.3f ms/frame (%.1f FPS)", 1000.0f / io.Framerate, io.Framerate);
- ImGui::End();
- }
-
- // 3. Show another simple window.
- if (show_another_window)
- {
- ImGui::Begin("Another Window", &show_another_window); // Pass a pointer to our bool variable (the window will have a closing button that will clear the bool when clicked)
- ImGui::Text("Hello from another window!");
- if (ImGui::Button("Close Me"))
- show_another_window = false;
- ImGui::End();
- }
-
- // Rendering
- ImGui::Render();
- glViewport(0, 0, (int)io.DisplaySize.x, (int)io.DisplaySize.y);
- glClearColor(clear_color.x * clear_color.w, clear_color.y * clear_color.w, clear_color.z * clear_color.w, clear_color.w);
- glClear(GL_COLOR_BUFFER_BIT);
- ImGui_ImplOpenGL3_RenderDrawData(ImGui::GetDrawData());
- eglSwapBuffers(g_EglDisplay, g_EglSurface);
-}
-
-void Shutdown()
-{
- if (!g_Initialized)
- return;
-
- // Cleanup
- ImGui_ImplOpenGL3_Shutdown();
- ImGui_ImplAndroid_Shutdown();
- ImGui::DestroyContext();
-
- if (g_EglDisplay != EGL_NO_DISPLAY)
- {
- eglMakeCurrent(g_EglDisplay, EGL_NO_SURFACE, EGL_NO_SURFACE, EGL_NO_CONTEXT);
-
- if (g_EglContext != EGL_NO_CONTEXT)
- eglDestroyContext(g_EglDisplay, g_EglContext);
-
- if (g_EglSurface != EGL_NO_SURFACE)
- eglDestroySurface(g_EglDisplay, g_EglSurface);
-
- eglTerminate(g_EglDisplay);
- }
-
- g_EglDisplay = EGL_NO_DISPLAY;
- g_EglContext = EGL_NO_CONTEXT;
- g_EglSurface = EGL_NO_SURFACE;
- ANativeWindow_release(g_App->window);
-
- g_Initialized = false;
-}
-
-// Helper functions
-
-// Unfortunately, there is no way to show the on-screen input from native code.
-// Therefore, we call ShowSoftKeyboardInput() of the main activity implemented in MainActivity.kt via JNI.
-static int ShowSoftKeyboardInput()
-{
- JavaVM* java_vm = g_App->activity->vm;
- JNIEnv* java_env = nullptr;
-
- jint jni_return = java_vm->GetEnv((void**)&java_env, JNI_VERSION_1_6);
- if (jni_return == JNI_ERR)
- return -1;
-
- jni_return = java_vm->AttachCurrentThread(&java_env, nullptr);
- if (jni_return != JNI_OK)
- return -2;
-
- jclass native_activity_clazz = java_env->GetObjectClass(g_App->activity->clazz);
- if (native_activity_clazz == nullptr)
- return -3;
-
- jmethodID method_id = java_env->GetMethodID(native_activity_clazz, "showSoftInput", "()V");
- if (method_id == nullptr)
- return -4;
-
- java_env->CallVoidMethod(g_App->activity->clazz, method_id);
-
- jni_return = java_vm->DetachCurrentThread();
- if (jni_return != JNI_OK)
- return -5;
-
- return 0;
-}
-
-// Unfortunately, the native KeyEvent implementation has no getUnicodeChar() function.
-// Therefore, we implement the processing of KeyEvents in MainActivity.kt and poll
-// the resulting Unicode characters here via JNI and send them to Dear ImGui.
-static int PollUnicodeChars()
-{
- JavaVM* java_vm = g_App->activity->vm;
- JNIEnv* java_env = nullptr;
-
- jint jni_return = java_vm->GetEnv((void**)&java_env, JNI_VERSION_1_6);
- if (jni_return == JNI_ERR)
- return -1;
-
- jni_return = java_vm->AttachCurrentThread(&java_env, nullptr);
- if (jni_return != JNI_OK)
- return -2;
-
- jclass native_activity_clazz = java_env->GetObjectClass(g_App->activity->clazz);
- if (native_activity_clazz == nullptr)
- return -3;
-
- jmethodID method_id = java_env->GetMethodID(native_activity_clazz, "pollUnicodeChar", "()I");
- if (method_id == nullptr)
- return -4;
-
- // Send the actual characters to Dear ImGui
- ImGuiIO& io = ImGui::GetIO();
- jint unicode_character;
- while ((unicode_character = java_env->CallIntMethod(g_App->activity->clazz, method_id)) != 0)
- io.AddInputCharacter(unicode_character);
-
- jni_return = java_vm->DetachCurrentThread();
- if (jni_return != JNI_OK)
- return -5;
-
- return 0;
-}
-
-// Helper to retrieve data placed into the assets/ directory (android/app/src/main/assets)
-static int GetAssetData(const char* filename, void** outData)
-{
- int num_bytes = 0;
- AAsset* asset_descriptor = AAssetManager_open(g_App->activity->assetManager, filename, AASSET_MODE_BUFFER);
- if (asset_descriptor)
- {
- num_bytes = AAsset_getLength(asset_descriptor);
- *outData = IM_ALLOC(num_bytes);
- int64_t num_bytes_read = AAsset_read(asset_descriptor, *outData, num_bytes);
- AAsset_close(asset_descriptor);
- IM_ASSERT(num_bytes_read == num_bytes);
- }
- return num_bytes;
-}
diff --git a/imgui-1.92.1/examples/example_apple_metal/Makefile b/imgui-1.92.1/examples/example_apple_metal/Makefile
deleted file mode 100644
index 9412c9b..0000000
--- a/imgui-1.92.1/examples/example_apple_metal/Makefile
+++ /dev/null
@@ -1,21 +0,0 @@
-# Makefile for example_apple_metal, for macOS only (**not iOS**)
-CXX = clang++
-EXE = example_apple_metal
-IMGUI_DIR = ../../
-SOURCES = main.mm
-SOURCES += $(IMGUI_DIR)/imgui.cpp $(IMGUI_DIR)/imgui_demo.cpp $(IMGUI_DIR)/imgui_draw.cpp $(IMGUI_DIR)/imgui_tables.cpp $(IMGUI_DIR)/imgui_widgets.cpp
-SOURCES += $(IMGUI_DIR)/backends/imgui_impl_osx.mm $(IMGUI_DIR)/backends/imgui_impl_metal.mm
-
-CXXFLAGS = -std=c++11 -ObjC++ -fobjc-arc -Wall -Wextra -I$(IMGUI_DIR) -I$(IMGUI_DIR)/backends
-FRAMEWORKS = -framework AppKit -framework Metal -framework MetalKit -framework QuartzCore -framework GameController
-
-all: $(EXE)
-
-$(EXE): $(SOURCES)
- $(CXX) $(CXXFLAGS) $^ $(FRAMEWORKS) -o $@
-
-run: all
- ./$(EXE)
-
-clean:
- rm -f $(EXE) *.o
diff --git a/imgui-1.92.1/examples/example_apple_metal/README.md b/imgui-1.92.1/examples/example_apple_metal/README.md
deleted file mode 100644
index 48a2b57..0000000
--- a/imgui-1.92.1/examples/example_apple_metal/README.md
+++ /dev/null
@@ -1,10 +0,0 @@
-# iOS / OSX Metal example
-
-## Introduction
-
-This example shows how to integrate Dear ImGui with Metal. It is based on the "cross-platform" game template provided with Xcode as of Xcode 9.
-
-Consider basing your work off the example_glfw_metal/ or example_sdl2_metal/ examples. They are better supported and will be portable unlike this one.
-
-
-
diff --git a/imgui-1.92.1/examples/example_apple_metal/example_apple_metal.xcodeproj/project.pbxproj b/imgui-1.92.1/examples/example_apple_metal/example_apple_metal.xcodeproj/project.pbxproj
deleted file mode 100644
index bf3c80d..0000000
--- a/imgui-1.92.1/examples/example_apple_metal/example_apple_metal.xcodeproj/project.pbxproj
+++ /dev/null
@@ -1,522 +0,0 @@
-// !$*UTF8*$!
-{
- archiveVersion = 1;
- classes = {
- };
- objectVersion = 54;
- objects = {
-
-/* Begin PBXBuildFile section */
- 05318E0F274C397200A8DE2E /* GameController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 05318E0E274C397200A8DE2E /* GameController.framework */; };
- 07A82ED82139413D0078D120 /* imgui_widgets.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 07A82ED72139413C0078D120 /* imgui_widgets.cpp */; };
- 07A82ED92139418F0078D120 /* imgui_widgets.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 07A82ED72139413C0078D120 /* imgui_widgets.cpp */; };
- 5079822E257677DB0038A28D /* imgui_tables.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5079822D257677DB0038A28D /* imgui_tables.cpp */; };
- 8309BD8F253CCAAA0045E2A1 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8309BD8E253CCAAA0045E2A1 /* UIKit.framework */; };
- 8309BDA5253CCC070045E2A1 /* main.mm in Sources */ = {isa = PBXBuildFile; fileRef = 8309BDA0253CCBC10045E2A1 /* main.mm */; };
- 8309BDA8253CCC080045E2A1 /* main.mm in Sources */ = {isa = PBXBuildFile; fileRef = 8309BDA0253CCBC10045E2A1 /* main.mm */; };
- 8309BDBB253CCCAD0045E2A1 /* imgui_impl_metal.mm in Sources */ = {isa = PBXBuildFile; fileRef = 8309BDB5253CCC9D0045E2A1 /* imgui_impl_metal.mm */; };
- 8309BDBE253CCCB60045E2A1 /* imgui_impl_metal.mm in Sources */ = {isa = PBXBuildFile; fileRef = 8309BDB5253CCC9D0045E2A1 /* imgui_impl_metal.mm */; };
- 8309BDBF253CCCB60045E2A1 /* imgui_impl_osx.mm in Sources */ = {isa = PBXBuildFile; fileRef = 8309BDB6253CCC9D0045E2A1 /* imgui_impl_osx.mm */; };
- 8309BDC6253CCCFE0045E2A1 /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8309BDC5253CCCFE0045E2A1 /* AppKit.framework */; };
- 8309BDFC253CDAB30045E2A1 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 8309BDF7253CDAAE0045E2A1 /* LaunchScreen.storyboard */; };
- 8309BE04253CDAB60045E2A1 /* MainMenu.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 8309BDFA253CDAAE0045E2A1 /* MainMenu.storyboard */; };
- 83BBE9E520EB46B900295997 /* Metal.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 83BBE9E420EB46B900295997 /* Metal.framework */; };
- 83BBE9E720EB46BD00295997 /* MetalKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 83BBE9E620EB46BD00295997 /* MetalKit.framework */; };
- 83BBE9EC20EB471700295997 /* MetalKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 83BBE9EA20EB471700295997 /* MetalKit.framework */; };
- 83BBE9ED20EB471700295997 /* Metal.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 83BBE9EB20EB471700295997 /* Metal.framework */; };
- 83BBEA0520EB54E700295997 /* imgui_draw.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83BBEA0120EB54E700295997 /* imgui_draw.cpp */; };
- 83BBEA0620EB54E700295997 /* imgui_draw.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83BBEA0120EB54E700295997 /* imgui_draw.cpp */; };
- 83BBEA0720EB54E700295997 /* imgui_demo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83BBEA0220EB54E700295997 /* imgui_demo.cpp */; };
- 83BBEA0820EB54E700295997 /* imgui_demo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83BBEA0220EB54E700295997 /* imgui_demo.cpp */; };
- 83BBEA0920EB54E700295997 /* imgui.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83BBEA0320EB54E700295997 /* imgui.cpp */; };
- 83BBEA0A20EB54E700295997 /* imgui.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 83BBEA0320EB54E700295997 /* imgui.cpp */; };
-/* End PBXBuildFile section */
-
-/* Begin PBXFileReference section */
- 05318E0E274C397200A8DE2E /* GameController.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GameController.framework; path = System/Library/Frameworks/GameController.framework; sourceTree = SDKROOT; };
- 07A82ED62139413C0078D120 /* imgui_internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = imgui_internal.h; path = ../../imgui_internal.h; sourceTree = "<group>"; };
- 07A82ED72139413C0078D120 /* imgui_widgets.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = imgui_widgets.cpp; path = ../../imgui_widgets.cpp; sourceTree = "<group>"; };
- 5079822D257677DB0038A28D /* imgui_tables.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = imgui_tables.cpp; path = ../../imgui_tables.cpp; sourceTree = "<group>"; };
- 8307E7C420E9F9C900473790 /* example_apple_metal.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = example_apple_metal.app; sourceTree = BUILT_PRODUCTS_DIR; };
- 8307E7DA20E9F9C900473790 /* example_apple_metal.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = example_apple_metal.app; sourceTree = BUILT_PRODUCTS_DIR; };
- 8309BD8E253CCAAA0045E2A1 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS14.0.sdk/System/Library/Frameworks/UIKit.framework; sourceTree = DEVELOPER_DIR; };
- 8309BDA0253CCBC10045E2A1 /* main.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = main.mm; sourceTree = "<group>"; };
- 8309BDB5253CCC9D0045E2A1 /* imgui_impl_metal.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = imgui_impl_metal.mm; path = ../../backends/imgui_impl_metal.mm; sourceTree = "<group>"; };
- 8309BDB6253CCC9D0045E2A1 /* imgui_impl_osx.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = imgui_impl_osx.mm; path = ../../backends/imgui_impl_osx.mm; sourceTree = "<group>"; };
- 8309BDC5253CCCFE0045E2A1 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = System/Library/Frameworks/AppKit.framework; sourceTree = SDKROOT; };
- 8309BDF7253CDAAE0045E2A1 /* LaunchScreen.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = LaunchScreen.storyboard; sourceTree = "<group>"; };
- 8309BDF8253CDAAE0045E2A1 /* Info-iOS.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "Info-iOS.plist"; sourceTree = "<group>"; };
- 8309BDFA253CDAAE0045E2A1 /* MainMenu.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = MainMenu.storyboard; sourceTree = "<group>"; };
- 8309BDFB253CDAAE0045E2A1 /* Info-macOS.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "Info-macOS.plist"; sourceTree = "<group>"; };
- 83BBE9E420EB46B900295997 /* Metal.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Metal.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS11.4.sdk/System/Library/Frameworks/Metal.framework; sourceTree = DEVELOPER_DIR; };
- 83BBE9E620EB46BD00295997 /* MetalKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MetalKit.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS11.4.sdk/System/Library/Frameworks/MetalKit.framework; sourceTree = DEVELOPER_DIR; };
- 83BBE9E820EB46C100295997 /* ModelIO.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ModelIO.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS11.4.sdk/System/Library/Frameworks/ModelIO.framework; sourceTree = DEVELOPER_DIR; };
- 83BBE9EA20EB471700295997 /* MetalKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MetalKit.framework; path = System/Library/Frameworks/MetalKit.framework; sourceTree = SDKROOT; };
- 83BBE9EB20EB471700295997 /* Metal.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Metal.framework; path = System/Library/Frameworks/Metal.framework; sourceTree = SDKROOT; };
- 83BBE9EE20EB471C00295997 /* ModelIO.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ModelIO.framework; path = System/Library/Frameworks/ModelIO.framework; sourceTree = SDKROOT; };
- 83BBEA0020EB54E700295997 /* imgui.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = imgui.h; path = ../../imgui.h; sourceTree = "<group>"; };
- 83BBEA0120EB54E700295997 /* imgui_draw.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = imgui_draw.cpp; path = ../../imgui_draw.cpp; sourceTree = "<group>"; };
- 83BBEA0220EB54E700295997 /* imgui_demo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = imgui_demo.cpp; path = ../../imgui_demo.cpp; sourceTree = "<group>"; };
- 83BBEA0320EB54E700295997 /* imgui.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = imgui.cpp; path = ../../imgui.cpp; sourceTree = "<group>"; };
- 83BBEA0420EB54E700295997 /* imconfig.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = imconfig.h; path = ../../imconfig.h; sourceTree = "<group>"; };
-/* End PBXFileReference section */
-
-/* Begin PBXFrameworksBuildPhase section */
- 8307E7C120E9F9C900473790 /* Frameworks */ = {
- isa = PBXFrameworksBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 8309BD8F253CCAAA0045E2A1 /* UIKit.framework in Frameworks */,
- 83BBE9E720EB46BD00295997 /* MetalKit.framework in Frameworks */,
- 83BBE9E520EB46B900295997 /* Metal.framework in Frameworks */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
- 8307E7D720E9F9C900473790 /* Frameworks */ = {
- isa = PBXFrameworksBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 8309BDC6253CCCFE0045E2A1 /* AppKit.framework in Frameworks */,
- 83BBE9EC20EB471700295997 /* MetalKit.framework in Frameworks */,
- 05318E0F274C397200A8DE2E /* GameController.framework in Frameworks */,
- 83BBE9ED20EB471700295997 /* Metal.framework in Frameworks */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXFrameworksBuildPhase section */
-
-/* Begin PBXGroup section */
- 8307E7B520E9F9C700473790 = {
- isa = PBXGroup;
- children = (
- 83BBE9F020EB544400295997 /* imgui */,
- 8309BD9E253CCBA70045E2A1 /* example */,
- 8307E7C520E9F9C900473790 /* Products */,
- 83BBE9E320EB46B800295997 /* Frameworks */,
- );
- sourceTree = "<group>";
- };
- 8307E7C520E9F9C900473790 /* Products */ = {
- isa = PBXGroup;
- children = (
- 8307E7C420E9F9C900473790 /* example_apple_metal.app */,
- 8307E7DA20E9F9C900473790 /* example_apple_metal.app */,
- );
- name = Products;
- sourceTree = "<group>";
- };
- 8309BD9E253CCBA70045E2A1 /* example */ = {
- isa = PBXGroup;
- children = (
- 8309BDF6253CDAAE0045E2A1 /* iOS */,
- 8309BDF9253CDAAE0045E2A1 /* macOS */,
- 8309BDA0253CCBC10045E2A1 /* main.mm */,
- );
- name = example;
- sourceTree = "<group>";
- };
- 8309BDF6253CDAAE0045E2A1 /* iOS */ = {
- isa = PBXGroup;
- children = (
- 8309BDF7253CDAAE0045E2A1 /* LaunchScreen.storyboard */,
- 8309BDF8253CDAAE0045E2A1 /* Info-iOS.plist */,
- );
- path = iOS;
- sourceTree = "<group>";
- };
- 8309BDF9253CDAAE0045E2A1 /* macOS */ = {
- isa = PBXGroup;
- children = (
- 8309BDFA253CDAAE0045E2A1 /* MainMenu.storyboard */,
- 8309BDFB253CDAAE0045E2A1 /* Info-macOS.plist */,
- );
- path = macOS;
- sourceTree = "<group>";
- };
- 83BBE9E320EB46B800295997 /* Frameworks */ = {
- isa = PBXGroup;
- children = (
- 05318E0E274C397200A8DE2E /* GameController.framework */,
- 8309BDC5253CCCFE0045E2A1 /* AppKit.framework */,
- 8309BD8E253CCAAA0045E2A1 /* UIKit.framework */,
- 83BBE9EE20EB471C00295997 /* ModelIO.framework */,
- 83BBE9EB20EB471700295997 /* Metal.framework */,
- 83BBE9EA20EB471700295997 /* MetalKit.framework */,
- 83BBE9E820EB46C100295997 /* ModelIO.framework */,
- 83BBE9E620EB46BD00295997 /* MetalKit.framework */,
- 83BBE9E420EB46B900295997 /* Metal.framework */,
- );
- name = Frameworks;
- sourceTree = "<group>";
- };
- 83BBE9F020EB544400295997 /* imgui */ = {
- isa = PBXGroup;
- children = (
- 5079822D257677DB0038A28D /* imgui_tables.cpp */,
- 8309BDB5253CCC9D0045E2A1 /* imgui_impl_metal.mm */,
- 8309BDB6253CCC9D0045E2A1 /* imgui_impl_osx.mm */,
- 83BBEA0420EB54E700295997 /* imconfig.h */,
- 83BBEA0320EB54E700295997 /* imgui.cpp */,
- 83BBEA0020EB54E700295997 /* imgui.h */,
- 83BBEA0220EB54E700295997 /* imgui_demo.cpp */,
- 83BBEA0120EB54E700295997 /* imgui_draw.cpp */,
- 07A82ED62139413C0078D120 /* imgui_internal.h */,
- 07A82ED72139413C0078D120 /* imgui_widgets.cpp */,
- );
- name = imgui;
- sourceTree = "<group>";
- };
-/* End PBXGroup section */
-
-/* Begin PBXNativeTarget section */
- 8307E7C320E9F9C900473790 /* example_apple_metal_ios */ = {
- isa = PBXNativeTarget;
- buildConfigurationList = 8307E7F020E9F9C900473790 /* Build configuration list for PBXNativeTarget "example_apple_metal_ios" */;
- buildPhases = (
- 8307E7C020E9F9C900473790 /* Sources */,
- 8307E7C120E9F9C900473790 /* Frameworks */,
- 8307E7C220E9F9C900473790 /* Resources */,
- );
- buildRules = (
- );
- dependencies = (
- );
- name = example_apple_metal_ios;
- productName = "imguiex iOS";
- productReference = 8307E7C420E9F9C900473790 /* example_apple_metal.app */;
- productType = "com.apple.product-type.application";
- };
- 8307E7D920E9F9C900473790 /* example_apple_metal_macos */ = {
- isa = PBXNativeTarget;
- buildConfigurationList = 8307E7F320E9F9C900473790 /* Build configuration list for PBXNativeTarget "example_apple_metal_macos" */;
- buildPhases = (
- 8307E7D620E9F9C900473790 /* Sources */,
- 8307E7D720E9F9C900473790 /* Frameworks */,
- 8307E7D820E9F9C900473790 /* Resources */,
- );
- buildRules = (
- );
- dependencies = (
- );
- name = example_apple_metal_macos;
- productName = "imguiex macOS";
- productReference = 8307E7DA20E9F9C900473790 /* example_apple_metal.app */;
- productType = "com.apple.product-type.application";
- };
-/* End PBXNativeTarget section */
-
-/* Begin PBXProject section */
- 8307E7B620E9F9C700473790 /* Project object */ = {
- isa = PBXProject;
- attributes = {
- BuildIndependentTargetsInParallel = YES;
- LastUpgradeCheck = 1530;
- ORGANIZATIONNAME = "Warren Moore";
- TargetAttributes = {
- 8307E7C320E9F9C900473790 = {
- CreatedOnToolsVersion = 9.4.1;
- ProvisioningStyle = Automatic;
- };
- 8307E7D920E9F9C900473790 = {
- CreatedOnToolsVersion = 9.4.1;
- ProvisioningStyle = Automatic;
- };
- };
- };
- buildConfigurationList = 8307E7B920E9F9C700473790 /* Build configuration list for PBXProject "example_apple_metal" */;
- compatibilityVersion = "Xcode 8.0";
- developmentRegion = en;
- hasScannedForEncodings = 0;
- knownRegions = (
- en,
- Base,
- );
- mainGroup = 8307E7B520E9F9C700473790;
- productRefGroup = 8307E7C520E9F9C900473790 /* Products */;
- projectDirPath = "";
- projectRoot = "";
- targets = (
- 8307E7C320E9F9C900473790 /* example_apple_metal_ios */,
- 8307E7D920E9F9C900473790 /* example_apple_metal_macos */,
- );
- };
-/* End PBXProject section */
-
-/* Begin PBXResourcesBuildPhase section */
- 8307E7C220E9F9C900473790 /* Resources */ = {
- isa = PBXResourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 8309BDFC253CDAB30045E2A1 /* LaunchScreen.storyboard in Resources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
- 8307E7D820E9F9C900473790 /* Resources */ = {
- isa = PBXResourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 8309BE04253CDAB60045E2A1 /* MainMenu.storyboard in Resources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXResourcesBuildPhase section */
-
-/* Begin PBXSourcesBuildPhase section */
- 8307E7C020E9F9C900473790 /* Sources */ = {
- isa = PBXSourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 8309BDBB253CCCAD0045E2A1 /* imgui_impl_metal.mm in Sources */,
- 83BBEA0920EB54E700295997 /* imgui.cpp in Sources */,
- 83BBEA0720EB54E700295997 /* imgui_demo.cpp in Sources */,
- 83BBEA0520EB54E700295997 /* imgui_draw.cpp in Sources */,
- 5079822E257677DB0038A28D /* imgui_tables.cpp in Sources */,
- 07A82ED82139413D0078D120 /* imgui_widgets.cpp in Sources */,
- 8309BDA5253CCC070045E2A1 /* main.mm in Sources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
- 8307E7D620E9F9C900473790 /* Sources */ = {
- isa = PBXSourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 8309BDBE253CCCB60045E2A1 /* imgui_impl_metal.mm in Sources */,
- 8309BDBF253CCCB60045E2A1 /* imgui_impl_osx.mm in Sources */,
- 83BBEA0A20EB54E700295997 /* imgui.cpp in Sources */,
- 83BBEA0820EB54E700295997 /* imgui_demo.cpp in Sources */,
- 83BBEA0620EB54E700295997 /* imgui_draw.cpp in Sources */,
- 5079822E257677DB0038A28D /* imgui_tables.cpp in Sources */,
- 07A82ED92139418F0078D120 /* imgui_widgets.cpp in Sources */,
- 8309BDA8253CCC080045E2A1 /* main.mm in Sources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXSourcesBuildPhase section */
-
-/* Begin XCBuildConfiguration section */
- 8307E7EE20E9F9C900473790 /* Debug */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ALWAYS_SEARCH_USER_PATHS = NO;
- CLANG_ANALYZER_NONNULL = YES;
- CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
- CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
- CLANG_CXX_LIBRARY = "libc++";
- CLANG_ENABLE_MODULES = YES;
- CLANG_ENABLE_OBJC_ARC = YES;
- CLANG_ENABLE_OBJC_WEAK = YES;
- CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
- CLANG_WARN_BOOL_CONVERSION = YES;
- CLANG_WARN_COMMA = YES;
- CLANG_WARN_CONSTANT_CONVERSION = YES;
- CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
- CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
- CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
- CLANG_WARN_EMPTY_BODY = YES;
- CLANG_WARN_ENUM_CONVERSION = YES;
- CLANG_WARN_INFINITE_RECURSION = YES;
- CLANG_WARN_INT_CONVERSION = YES;
- CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
- CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
- CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
- CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
- CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
- CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
- CLANG_WARN_STRICT_PROTOTYPES = YES;
- CLANG_WARN_SUSPICIOUS_MOVE = YES;
- CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
- CLANG_WARN_UNREACHABLE_CODE = YES;
- CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
- COPY_PHASE_STRIP = NO;
- DEAD_CODE_STRIPPING = YES;
- DEBUG_INFORMATION_FORMAT = dwarf;
- ENABLE_STRICT_OBJC_MSGSEND = YES;
- ENABLE_TESTABILITY = YES;
- ENABLE_USER_SCRIPT_SANDBOXING = YES;
- GCC_C_LANGUAGE_STANDARD = gnu11;
- GCC_DYNAMIC_NO_PIC = NO;
- GCC_NO_COMMON_BLOCKS = YES;
- GCC_OPTIMIZATION_LEVEL = 0;
- GCC_PREPROCESSOR_DEFINITIONS = (
- "DEBUG=1",
- "$(inherited)",
- );
- GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
- GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
- GCC_WARN_UNDECLARED_SELECTOR = YES;
- GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
- GCC_WARN_UNUSED_FUNCTION = YES;
- GCC_WARN_UNUSED_VARIABLE = YES;
- MTL_ENABLE_DEBUG_INFO = YES;
- ONLY_ACTIVE_ARCH = YES;
- };
- name = Debug;
- };
- 8307E7EF20E9F9C900473790 /* Release */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ALWAYS_SEARCH_USER_PATHS = NO;
- CLANG_ANALYZER_NONNULL = YES;
- CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
- CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
- CLANG_CXX_LIBRARY = "libc++";
- CLANG_ENABLE_MODULES = YES;
- CLANG_ENABLE_OBJC_ARC = YES;
- CLANG_ENABLE_OBJC_WEAK = YES;
- CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
- CLANG_WARN_BOOL_CONVERSION = YES;
- CLANG_WARN_COMMA = YES;
- CLANG_WARN_CONSTANT_CONVERSION = YES;
- CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
- CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
- CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
- CLANG_WARN_EMPTY_BODY = YES;
- CLANG_WARN_ENUM_CONVERSION = YES;
- CLANG_WARN_INFINITE_RECURSION = YES;
- CLANG_WARN_INT_CONVERSION = YES;
- CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
- CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
- CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
- CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
- CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
- CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
- CLANG_WARN_STRICT_PROTOTYPES = YES;
- CLANG_WARN_SUSPICIOUS_MOVE = YES;
- CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
- CLANG_WARN_UNREACHABLE_CODE = YES;
- CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
- COPY_PHASE_STRIP = NO;
- DEAD_CODE_STRIPPING = YES;
- DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
- ENABLE_NS_ASSERTIONS = NO;
- ENABLE_STRICT_OBJC_MSGSEND = YES;
- ENABLE_USER_SCRIPT_SANDBOXING = YES;
- GCC_C_LANGUAGE_STANDARD = gnu11;
- GCC_NO_COMMON_BLOCKS = YES;
- GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
- GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
- GCC_WARN_UNDECLARED_SELECTOR = YES;
- GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
- GCC_WARN_UNUSED_FUNCTION = YES;
- GCC_WARN_UNUSED_VARIABLE = YES;
- MTL_ENABLE_DEBUG_INFO = NO;
- };
- name = Release;
- };
- 8307E7F120E9F9C900473790 /* Debug */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- CODE_SIGN_IDENTITY = "iPhone Developer";
- CODE_SIGN_STYLE = Automatic;
- DEVELOPMENT_TEAM = "";
- INFOPLIST_FILE = "$(SRCROOT)/iOS/Info-iOS.plist";
- IPHONEOS_DEPLOYMENT_TARGET = 12.0;
- LD_RUNPATH_SEARCH_PATHS = (
- "$(inherited)",
- "@executable_path/Frameworks",
- );
- PRODUCT_BUNDLE_IDENTIFIER = "org.imgui.example.apple-metal-ios";
- PRODUCT_NAME = example_apple_metal;
- SDKROOT = iphoneos;
- TARGETED_DEVICE_FAMILY = "1,2";
- USER_HEADER_SEARCH_PATHS = "$(SRCROOT)/../../**";
- };
- name = Debug;
- };
- 8307E7F220E9F9C900473790 /* Release */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- CODE_SIGN_IDENTITY = "iPhone Developer";
- CODE_SIGN_STYLE = Automatic;
- DEVELOPMENT_TEAM = "";
- INFOPLIST_FILE = "$(SRCROOT)/iOS/Info-iOS.plist";
- IPHONEOS_DEPLOYMENT_TARGET = 12.0;
- LD_RUNPATH_SEARCH_PATHS = (
- "$(inherited)",
- "@executable_path/Frameworks",
- );
- PRODUCT_BUNDLE_IDENTIFIER = "org.imgui.example.apple-metal-ios";
- PRODUCT_NAME = example_apple_metal;
- SDKROOT = iphoneos;
- TARGETED_DEVICE_FAMILY = "1,2";
- USER_HEADER_SEARCH_PATHS = "$(SRCROOT)/../../**";
- VALIDATE_PRODUCT = YES;
- };
- name = Release;
- };
- 8307E7F420E9F9C900473790 /* Debug */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- CODE_SIGN_IDENTITY = "-";
- CODE_SIGN_STYLE = Automatic;
- COMBINE_HIDPI_IMAGES = YES;
- DEAD_CODE_STRIPPING = YES;
- DEVELOPMENT_TEAM = "";
- INFOPLIST_FILE = "$(SRCROOT)/macOS/Info-macOS.plist";
- LD_RUNPATH_SEARCH_PATHS = (
- "$(inherited)",
- "@executable_path/../Frameworks",
- );
- MACOSX_DEPLOYMENT_TARGET = "$(RECOMMENDED_MACOSX_DEPLOYMENT_TARGET)";
- PRODUCT_BUNDLE_IDENTIFIER = "org.imgui.example.apple-metal-macos";
- PRODUCT_NAME = example_apple_metal;
- SDKROOT = macosx;
- USER_HEADER_SEARCH_PATHS = "$(SRCROOT)/../../**";
- };
- name = Debug;
- };
- 8307E7F520E9F9C900473790 /* Release */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- CODE_SIGN_IDENTITY = "-";
- CODE_SIGN_STYLE = Automatic;
- COMBINE_HIDPI_IMAGES = YES;
- DEAD_CODE_STRIPPING = YES;
- DEVELOPMENT_TEAM = "";
- INFOPLIST_FILE = "$(SRCROOT)/macOS/Info-macOS.plist";
- LD_RUNPATH_SEARCH_PATHS = (
- "$(inherited)",
- "@executable_path/../Frameworks",
- );
- MACOSX_DEPLOYMENT_TARGET = "$(RECOMMENDED_MACOSX_DEPLOYMENT_TARGET)";
- PRODUCT_BUNDLE_IDENTIFIER = "org.imgui.example.apple-metal-macos";
- PRODUCT_NAME = example_apple_metal;
- SDKROOT = macosx;
- USER_HEADER_SEARCH_PATHS = "$(SRCROOT)/../../**";
- };
- name = Release;
- };
-/* End XCBuildConfiguration section */
-
-/* Begin XCConfigurationList section */
- 8307E7B920E9F9C700473790 /* Build configuration list for PBXProject "example_apple_metal" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- 8307E7EE20E9F9C900473790 /* Debug */,
- 8307E7EF20E9F9C900473790 /* Release */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Release;
- };
- 8307E7F020E9F9C900473790 /* Build configuration list for PBXNativeTarget "example_apple_metal_ios" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- 8307E7F120E9F9C900473790 /* Debug */,
- 8307E7F220E9F9C900473790 /* Release */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Release;
- };
- 8307E7F320E9F9C900473790 /* Build configuration list for PBXNativeTarget "example_apple_metal_macos" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- 8307E7F420E9F9C900473790 /* Debug */,
- 8307E7F520E9F9C900473790 /* Release */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Release;
- };
-/* End XCConfigurationList section */
- };
- rootObject = 8307E7B620E9F9C700473790 /* Project object */;
-}
diff --git a/imgui-1.92.1/examples/example_apple_metal/iOS/Info-iOS.plist b/imgui-1.92.1/examples/example_apple_metal/iOS/Info-iOS.plist
deleted file mode 100644
index 93ef078..0000000
--- a/imgui-1.92.1/examples/example_apple_metal/iOS/Info-iOS.plist
+++ /dev/null
@@ -1,49 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
- <key>CFBundleDevelopmentRegion</key>
- <string>$(DEVELOPMENT_LANGUAGE)</string>
- <key>CFBundleExecutable</key>
- <string>$(EXECUTABLE_NAME)</string>
- <key>CFBundleIdentifier</key>
- <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
- <key>CFBundleInfoDictionaryVersion</key>
- <string>6.0</string>
- <key>CFBundleName</key>
- <string>imgui</string>
- <key>CFBundlePackageType</key>
- <string>APPL</string>
- <key>CFBundleShortVersionString</key>
- <string>1.0</string>
- <key>CFBundleVersion</key>
- <string>1</string>
- <key>LSRequiresIPhoneOS</key>
- <true/>
- <key>UILaunchStoryboardName</key>
- <string>LaunchScreen</string>
- <key>UIRequiredDeviceCapabilities</key>
- <array>
- <string>armv7</string>
- <string>metal</string>
- </array>
- <key>UIRequiresFullScreen</key>
- <true/>
- <key>UIStatusBarHidden</key>
- <true/>
- <key>UISupportedInterfaceOrientations</key>
- <array>
- <string>UIInterfaceOrientationPortrait</string>
- <string>UIInterfaceOrientationLandscapeLeft</string>
- <string>UIInterfaceOrientationLandscapeRight</string>
- <string>UIInterfaceOrientationPortraitUpsideDown</string>
- </array>
- <key>UISupportedInterfaceOrientations~ipad</key>
- <array>
- <string>UIInterfaceOrientationPortrait</string>
- <string>UIInterfaceOrientationPortraitUpsideDown</string>
- <string>UIInterfaceOrientationLandscapeLeft</string>
- <string>UIInterfaceOrientationLandscapeRight</string>
- </array>
-</dict>
-</plist>
diff --git a/imgui-1.92.1/examples/example_apple_metal/iOS/LaunchScreen.storyboard b/imgui-1.92.1/examples/example_apple_metal/iOS/LaunchScreen.storyboard
deleted file mode 100644
index 12c52cf..0000000
--- a/imgui-1.92.1/examples/example_apple_metal/iOS/LaunchScreen.storyboard
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="17156" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="01J-lp-oVM">
- <device id="retina6_1" orientation="portrait" appearance="light"/>
- <dependencies>
- <deployment identifier="iOS"/>
- <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="17125"/>
- <capability name="Safe area layout guides" minToolsVersion="9.0"/>
- <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
- </dependencies>
- <scenes>
- <!--View Controller-->
- <scene sceneID="EHf-IW-A2E">
- <objects>
- <viewController id="01J-lp-oVM" sceneMemberID="viewController">
- <view key="view" contentMode="scaleToFill" id="Ze5-6b-2t3">
- <rect key="frame" x="0.0" y="0.0" width="414" height="896"/>
- <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
- <viewLayoutGuide key="safeArea" id="Bcu-3y-fUS"/>
- <color key="backgroundColor" red="0.27843137254901962" green="0.36078431372549019" blue="0.50196078431372548" alpha="1" colorSpace="custom" customColorSpace="displayP3"/>
- </view>
- </viewController>
- <placeholder placeholderIdentifier="IBFirstResponder" id="iYj-Kq-Ea1" userLabel="First Responder" sceneMemberID="firstResponder"/>
- </objects>
- <point key="canvasLocation" x="53" y="375"/>
- </scene>
- </scenes>
-</document>
diff --git a/imgui-1.92.1/examples/example_apple_metal/macOS/Info-macOS.plist b/imgui-1.92.1/examples/example_apple_metal/macOS/Info-macOS.plist
deleted file mode 100644
index 6f4a2b2..0000000
--- a/imgui-1.92.1/examples/example_apple_metal/macOS/Info-macOS.plist
+++ /dev/null
@@ -1,30 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
-<plist version="1.0">
-<dict>
- <key>CFBundleDevelopmentRegion</key>
- <string>$(DEVELOPMENT_LANGUAGE)</string>
- <key>CFBundleExecutable</key>
- <string>$(EXECUTABLE_NAME)</string>
- <key>CFBundleIconFile</key>
- <string></string>
- <key>CFBundleIdentifier</key>
- <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
- <key>CFBundleInfoDictionaryVersion</key>
- <string>6.0</string>
- <key>CFBundleName</key>
- <string>imgui</string>
- <key>CFBundlePackageType</key>
- <string>APPL</string>
- <key>CFBundleShortVersionString</key>
- <string>1.0</string>
- <key>CFBundleVersion</key>
- <string>1</string>
- <key>LSMinimumSystemVersion</key>
- <string>$(MACOSX_DEPLOYMENT_TARGET)</string>
- <key>NSMainStoryboardFile</key>
- <string>MainMenu</string>
- <key>NSPrincipalClass</key>
- <string>NSApplication</string>
-</dict>
-</plist>
diff --git a/imgui-1.92.1/examples/example_apple_metal/macOS/MainMenu.storyboard b/imgui-1.92.1/examples/example_apple_metal/macOS/MainMenu.storyboard
deleted file mode 100644
index 38ad432..0000000
--- a/imgui-1.92.1/examples/example_apple_metal/macOS/MainMenu.storyboard
+++ /dev/null
@@ -1,93 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.Cocoa.Storyboard.XIB" version="3.0" toolsVersion="17156" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
- <dependencies>
- <deployment identifier="macosx"/>
- <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="17156"/>
- </dependencies>
- <scenes>
- <!--Application-->
- <scene sceneID="JPo-4y-FX3">
- <objects>
- <application id="hnw-xV-0zn" sceneMemberID="viewController">
- <menu key="mainMenu" title="Main Menu" systemMenu="main" id="AYu-sK-qS6">
- <items>
- <menuItem title="ImGui" id="1Xt-HY-uBw">
- <modifierMask key="keyEquivalentModifierMask"/>
- <menu key="submenu" title="ImGui" systemMenu="apple" id="uQy-DD-JDr">
- <items>
- <menuItem title="Services" id="NMo-om-nkz">
- <modifierMask key="keyEquivalentModifierMask"/>
- <menu key="submenu" title="Services" systemMenu="services" id="hz9-B4-Xy5"/>
- </menuItem>
- <menuItem isSeparatorItem="YES" id="4je-JR-u6R"/>
- <menuItem title="Hide" keyEquivalent="h" id="Olw-nP-bQN">
- <connections>
- <action selector="hide:" target="Ady-hI-5gd" id="PnN-Uc-m68"/>
- </connections>
- </menuItem>
- <menuItem title="Hide Others" keyEquivalent="h" id="Vdr-fp-XzO">
- <modifierMask key="keyEquivalentModifierMask" option="YES" command="YES"/>
- <connections>
- <action selector="hideOtherApplications:" target="Ady-hI-5gd" id="VT4-aY-XCT"/>
- </connections>
- </menuItem>
- <menuItem title="Show All" id="Kd2-mp-pUS">
- <modifierMask key="keyEquivalentModifierMask"/>
- <connections>
- <action selector="unhideAllApplications:" target="Ady-hI-5gd" id="Dhg-Le-xox"/>
- </connections>
- </menuItem>
- <menuItem isSeparatorItem="YES" id="kCx-OE-vgT"/>
- <menuItem title="Quit" keyEquivalent="q" id="4sb-4s-VLi">
- <connections>
- <action selector="terminate:" target="Ady-hI-5gd" id="Te7-pn-YzF"/>
- </connections>
- </menuItem>
- </items>
- </menu>
- </menuItem>
- <menuItem title="View" id="H8h-7b-M4v">
- <modifierMask key="keyEquivalentModifierMask"/>
- <menu key="submenu" title="View" id="HyV-fh-RgO">
- <items>
- <menuItem title="Enter Full Screen" keyEquivalent="f" id="4J7-dP-txa">
- <modifierMask key="keyEquivalentModifierMask" control="YES" command="YES"/>
- <connections>
- <action selector="toggleFullScreen:" target="Ady-hI-5gd" id="dU3-MA-1Rq"/>
- </connections>
- </menuItem>
- </items>
- </menu>
- </menuItem>
- <menuItem title="Window" id="aUF-d1-5bR">
- <modifierMask key="keyEquivalentModifierMask"/>
- <menu key="submenu" title="Window" systemMenu="window" id="Td7-aD-5lo">
- <items>
- <menuItem title="Minimize" keyEquivalent="m" id="OY7-WF-poV">
- <connections>
- <action selector="performMiniaturize:" target="Ady-hI-5gd" id="VwT-WD-YPe"/>
- </connections>
- </menuItem>
- <menuItem title="Zoom" id="R4o-n2-Eq4">
- <modifierMask key="keyEquivalentModifierMask"/>
- <connections>
- <action selector="performZoom:" target="Ady-hI-5gd" id="DIl-cC-cCs"/>
- </connections>
- </menuItem>
- </items>
- </menu>
- </menuItem>
- </items>
- </menu>
- <connections>
- <outlet property="delegate" destination="Voe-Tx-rLC" id="PrD-fu-P6m"/>
- </connections>
- </application>
- <customObject id="Voe-Tx-rLC" customClass="AppDelegate"/>
- <customObject id="YLy-65-1bz" customClass="NSFontManager"/>
- <customObject id="Ady-hI-5gd" userLabel="First Responder" customClass="NSResponder" sceneMemberID="firstResponder"/>
- </objects>
- <point key="canvasLocation" x="-362" y="-38"/>
- </scene>
- </scenes>
-</document>
diff --git a/imgui-1.92.1/examples/example_apple_metal/main.mm b/imgui-1.92.1/examples/example_apple_metal/main.mm
deleted file mode 100644
index 301a2b4..0000000
--- a/imgui-1.92.1/examples/example_apple_metal/main.mm
+++ /dev/null
@@ -1,348 +0,0 @@
-// Dear ImGui: standalone example application for OSX + Metal.
-
-// Learn about Dear ImGui:
-// - FAQ https://dearimgui.com/faq
-// - Getting Started https://dearimgui.com/getting-started
-// - Documentation https://dearimgui.com/docs (same as your local docs/ folder).
-// - Introduction, links and more at the top of imgui.cpp
-
-#import <Foundation/Foundation.h>
-
-#if TARGET_OS_OSX
-#import <Cocoa/Cocoa.h>
-#else
-#import <UIKit/UIKit.h>
-#endif
-
-#import <Metal/Metal.h>
-#import <MetalKit/MetalKit.h>
-
-#include "imgui.h"
-#include "imgui_impl_metal.h"
-#if TARGET_OS_OSX
-#include "imgui_impl_osx.h"
-@interface AppViewController : NSViewController<NSWindowDelegate>
-@end
-#else
-@interface AppViewController : UIViewController
-@end
-#endif
-
-@interface AppViewController () <MTKViewDelegate>
-@property (nonatomic, readonly) MTKView *mtkView;
-@property (nonatomic, strong) id <MTLDevice> device;
-@property (nonatomic, strong) id <MTLCommandQueue> commandQueue;
-@end
-
-//-----------------------------------------------------------------------------------
-// AppViewController
-//-----------------------------------------------------------------------------------
-
-@implementation AppViewController
-
--(instancetype)initWithNibName:(nullable NSString *)nibNameOrNil bundle:(nullable NSBundle *)nibBundleOrNil
-{
- self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
-
- _device = MTLCreateSystemDefaultDevice();
- _commandQueue = [_device newCommandQueue];
-
- if (!self.device)
- {
- NSLog(@"Metal is not supported");
- abort();
- }
-
- // Setup Dear ImGui context
- // FIXME: This example doesn't have proper cleanup...
- IMGUI_CHECKVERSION();
- ImGui::CreateContext();
- ImGuiIO& io = ImGui::GetIO(); (void)io;
- io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard; // Enable Keyboard Controls
- io.ConfigFlags |= ImGuiConfigFlags_NavEnableGamepad; // Enable Gamepad Controls
-
- // Setup Dear ImGui style
- ImGui::StyleColorsDark();
- //ImGui::StyleColorsLight();
-
- // Setup Renderer backend
- ImGui_ImplMetal_Init(_device);
-
- // Load Fonts
- // - If no fonts are loaded, dear imgui will use the default font. You can also load multiple fonts and use ImGui::PushFont()/PopFont() to select them.
- // - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
- // - If the file cannot be loaded, the function will return a nullptr. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
- // - Use '#define IMGUI_ENABLE_FREETYPE' in your imconfig file to use Freetype for higher quality font rendering.
- // - Read 'docs/FONTS.md' for more instructions and details.
- // - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
- //style.FontSizeBase = 20.0f;
- //io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\segoeui.ttf");
- //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf");
- //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf");
- //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf");
- //ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf");
- //IM_ASSERT(font != nullptr);
-
- return self;
-}
-
--(MTKView *)mtkView
-{
- return (MTKView *)self.view;
-}
-
--(void)loadView
-{
- self.view = [[MTKView alloc] initWithFrame:CGRectMake(0, 0, 1200, 720)];
-}
-
--(void)viewDidLoad
-{
- [super viewDidLoad];
-
- self.mtkView.device = self.device;
- self.mtkView.delegate = self;
-
-#if TARGET_OS_OSX
- ImGui_ImplOSX_Init(self.view);
- [NSApp activateIgnoringOtherApps:YES];
-#endif
-}
-
--(void)drawInMTKView:(MTKView*)view
-{
- ImGuiIO& io = ImGui::GetIO();
- io.DisplaySize.x = view.bounds.size.width;
- io.DisplaySize.y = view.bounds.size.height;
-
-#if TARGET_OS_OSX
- CGFloat framebufferScale = view.window.screen.backingScaleFactor ?: NSScreen.mainScreen.backingScaleFactor;
-#else
- CGFloat framebufferScale = view.window.screen.scale ?: UIScreen.mainScreen.scale;
-#endif
- io.DisplayFramebufferScale = ImVec2(framebufferScale, framebufferScale);
-
- id<MTLCommandBuffer> commandBuffer = [self.commandQueue commandBuffer];
-
- MTLRenderPassDescriptor* renderPassDescriptor = view.currentRenderPassDescriptor;
- if (renderPassDescriptor == nil)
- {
- [commandBuffer commit];
- return;
- }
-
- // Start the Dear ImGui frame
- ImGui_ImplMetal_NewFrame(renderPassDescriptor);
-#if TARGET_OS_OSX
- ImGui_ImplOSX_NewFrame(view);
-#endif
- ImGui::NewFrame();
-
- // Our state (make them static = more or less global) as a convenience to keep the example terse.
- static bool show_demo_window = true;
- static bool show_another_window = false;
- static ImVec4 clear_color = ImVec4(0.45f, 0.55f, 0.60f, 1.00f);
-
- // 1. Show the big demo window (Most of the sample code is in ImGui::ShowDemoWindow()! You can browse its code to learn more about Dear ImGui!).
- if (show_demo_window)
- ImGui::ShowDemoWindow(&show_demo_window);
-
- // 2. Show a simple window that we create ourselves. We use a Begin/End pair to create a named window.
- {
- static float f = 0.0f;
- static int counter = 0;
-
- ImGui::Begin("Hello, world!"); // Create a window called "Hello, world!" and append into it.
-
- ImGui::Text("This is some useful text."); // Display some text (you can use a format strings too)
- ImGui::Checkbox("Demo Window", &show_demo_window); // Edit bools storing our window open/close state
- ImGui::Checkbox("Another Window", &show_another_window);
-
- ImGui::SliderFloat("float", &f, 0.0f, 1.0f); // Edit 1 float using a slider from 0.0f to 1.0f
- ImGui::ColorEdit3("clear color", (float*)&clear_color); // Edit 3 floats representing a color
-
- if (ImGui::Button("Button")) // Buttons return true when clicked (most widgets return true when edited/activated)
- counter++;
- ImGui::SameLine();
- ImGui::Text("counter = %d", counter);
-
- ImGui::Text("Application average %.3f ms/frame (%.1f FPS)", 1000.0f / io.Framerate, io.Framerate);
- ImGui::End();
- }
-
- // 3. Show another simple window.
- if (show_another_window)
- {
- ImGui::Begin("Another Window", &show_another_window); // Pass a pointer to our bool variable (the window will have a closing button that will clear the bool when clicked)
- ImGui::Text("Hello from another window!");
- if (ImGui::Button("Close Me"))
- show_another_window = false;
- ImGui::End();
- }
-
- // Rendering
- ImGui::Render();
- ImDrawData* draw_data = ImGui::GetDrawData();
-
- renderPassDescriptor.colorAttachments[0].clearColor = MTLClearColorMake(clear_color.x * clear_color.w, clear_color.y * clear_color.w, clear_color.z * clear_color.w, clear_color.w);
- id <MTLRenderCommandEncoder> renderEncoder = [commandBuffer renderCommandEncoderWithDescriptor:renderPassDescriptor];
- [renderEncoder pushDebugGroup:@"Dear ImGui rendering"];
- ImGui_ImplMetal_RenderDrawData(draw_data, commandBuffer, renderEncoder);
- [renderEncoder popDebugGroup];
- [renderEncoder endEncoding];
-
- // Present
- [commandBuffer presentDrawable:view.currentDrawable];
- [commandBuffer commit];
-}
-
--(void)mtkView:(MTKView*)view drawableSizeWillChange:(CGSize)size
-{
-}
-
-//-----------------------------------------------------------------------------------
-// Input processing
-//-----------------------------------------------------------------------------------
-
-#if TARGET_OS_OSX
-
-- (void)viewWillAppear
-{
- [super viewWillAppear];
- self.view.window.delegate = self;
-}
-
-- (void)windowWillClose:(NSNotification *)notification
-{
- ImGui_ImplMetal_Shutdown();
- ImGui_ImplOSX_Shutdown();
- ImGui::DestroyContext();
-}
-
-#else
-
-// This touch mapping is super cheesy/hacky. We treat any touch on the screen
-// as if it were a depressed left mouse button, and we don't bother handling
-// multitouch correctly at all. This causes the "cursor" to behave very erratically
-// when there are multiple active touches. But for demo purposes, single-touch
-// interaction actually works surprisingly well.
--(void)updateIOWithTouchEvent:(UIEvent *)event
-{
- UITouch *anyTouch = event.allTouches.anyObject;
- CGPoint touchLocation = [anyTouch locationInView:self.view];
- ImGuiIO &io = ImGui::GetIO();
- io.AddMouseSourceEvent(ImGuiMouseSource_TouchScreen);
- io.AddMousePosEvent(touchLocation.x, touchLocation.y);
-
- BOOL hasActiveTouch = NO;
- for (UITouch *touch in event.allTouches)
- {
- if (touch.phase != UITouchPhaseEnded && touch.phase != UITouchPhaseCancelled)
- {
- hasActiveTouch = YES;
- break;
- }
- }
- io.AddMouseButtonEvent(0, hasActiveTouch);
-}
-
--(void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event { [self updateIOWithTouchEvent:event]; }
--(void)touchesMoved:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event { [self updateIOWithTouchEvent:event]; }
--(void)touchesCancelled:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event { [self updateIOWithTouchEvent:event]; }
--(void)touchesEnded:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event { [self updateIOWithTouchEvent:event]; }
-
-#endif
-
-@end
-
-//-----------------------------------------------------------------------------------
-// AppDelegate
-//-----------------------------------------------------------------------------------
-
-#if TARGET_OS_OSX
-
-@interface AppDelegate : NSObject <NSApplicationDelegate>
-@property (nonatomic, strong) NSWindow *window;
-@end
-
-@implementation AppDelegate
-
--(BOOL)applicationShouldTerminateAfterLastWindowClosed:(NSApplication *)sender
-{
- return YES;
-}
-
--(instancetype)init
-{
- if (self = [super init])
- {
- NSViewController *rootViewController = [[AppViewController alloc] initWithNibName:nil bundle:nil];
- self.window = [[NSWindow alloc] initWithContentRect:NSZeroRect
- styleMask:NSWindowStyleMaskTitled | NSWindowStyleMaskClosable | NSWindowStyleMaskResizable | NSWindowStyleMaskMiniaturizable
- backing:NSBackingStoreBuffered
- defer:NO];
- self.window.contentViewController = rootViewController;
- [self.window center];
- [self.window makeKeyAndOrderFront:self];
- }
- return self;
-}
-
-@end
-
-#else
-
-@interface AppDelegate : UIResponder <UIApplicationDelegate>
-@property (strong, nonatomic) UIWindow *window;
-@end
-
-@implementation AppDelegate
-
--(BOOL)application:(UIApplication *)application
- didFinishLaunchingWithOptions:(NSDictionary<UIApplicationLaunchOptionsKey,id> *)launchOptions
-{
- UIViewController *rootViewController = [[AppViewController alloc] init];
- self.window = [[UIWindow alloc] initWithFrame:UIScreen.mainScreen.bounds];
- self.window.rootViewController = rootViewController;
- [self.window makeKeyAndVisible];
- return YES;
-}
-
-@end
-
-#endif
-
-//-----------------------------------------------------------------------------------
-// Application main() function
-//-----------------------------------------------------------------------------------
-
-#if TARGET_OS_OSX
-
-int main(int, const char**)
-{
- @autoreleasepool
- {
- [NSApplication sharedApplication];
- [NSApp setActivationPolicy:NSApplicationActivationPolicyRegular];
-
- AppDelegate *appDelegate = [[AppDelegate alloc] init]; // creates window
- [NSApp setDelegate:appDelegate];
-
- [NSApp activateIgnoringOtherApps:YES];
- [NSApp run];
- }
- return 0;
-}
-
-#else
-
-int main(int argc, char * argv[])
-{
- @autoreleasepool
- {
- return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
- }
-}
-
-#endif
diff --git a/imgui-1.92.1/examples/example_apple_opengl2/Makefile b/imgui-1.92.1/examples/example_apple_opengl2/Makefile
deleted file mode 100644
index 4ad5fa6..0000000
--- a/imgui-1.92.1/examples/example_apple_opengl2/Makefile
+++ /dev/null
@@ -1,21 +0,0 @@
-# Makefile for example_apple_metal, for macOS only (**not iOS**)
-CXX = clang++
-EXE = example_apple_opengl2
-IMGUI_DIR = ../../
-SOURCES = main.mm
-SOURCES += $(IMGUI_DIR)/imgui.cpp $(IMGUI_DIR)/imgui_demo.cpp $(IMGUI_DIR)/imgui_draw.cpp $(IMGUI_DIR)/imgui_tables.cpp $(IMGUI_DIR)/imgui_widgets.cpp
-SOURCES += $(IMGUI_DIR)/backends/imgui_impl_osx.mm $(IMGUI_DIR)/backends/imgui_impl_opengl2.cpp
-
-CXXFLAGS = -std=c++11 -ObjC++ -fobjc-arc -Wall -Wextra -I$(IMGUI_DIR) -I$(IMGUI_DIR)/backends
-FRAMEWORKS = -framework Cocoa -framework OpenGL -framework GameController
-
-all: $(EXE)
-
-$(EXE): $(SOURCES)
- $(CXX) $(CXXFLAGS) $(SOURCES) -o $(EXE) $(FRAMEWORKS)
-
-run: all
- ./$(EXE)
-
-clean:
- rm -f $(EXE) *.o
diff --git a/imgui-1.92.1/examples/example_apple_opengl2/example_apple_opengl2.xcodeproj/project.pbxproj b/imgui-1.92.1/examples/example_apple_opengl2/example_apple_opengl2.xcodeproj/project.pbxproj
deleted file mode 100644
index 9770e43..0000000
--- a/imgui-1.92.1/examples/example_apple_opengl2/example_apple_opengl2.xcodeproj/project.pbxproj
+++ /dev/null
@@ -1,332 +0,0 @@
-// !$*UTF8*$!
-{
- archiveVersion = 1;
- classes = {
- };
- objectVersion = 48;
- objects = {
-
-/* Begin PBXBuildFile section */
- 05E31B59274EF0700083FCB6 /* GameController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 05E31B57274EF0360083FCB6 /* GameController.framework */; };
- 07A82EDB213941D00078D120 /* imgui_widgets.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 07A82EDA213941D00078D120 /* imgui_widgets.cpp */; };
- 4080A99820B02D340036BA46 /* main.mm in Sources */ = {isa = PBXBuildFile; fileRef = 4080A98A20B02CD90036BA46 /* main.mm */; };
- 4080A9A220B034280036BA46 /* imgui_impl_opengl2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4080A99E20B034280036BA46 /* imgui_impl_opengl2.cpp */; };
- 4080A9AD20B0343C0036BA46 /* imgui_demo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4080A9A620B0343C0036BA46 /* imgui_demo.cpp */; };
- 4080A9AE20B0343C0036BA46 /* imgui.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4080A9A720B0343C0036BA46 /* imgui.cpp */; };
- 4080A9AF20B0343C0036BA46 /* imgui_draw.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 4080A9AA20B0343C0036BA46 /* imgui_draw.cpp */; };
- 4080A9B020B0347A0036BA46 /* imgui_impl_osx.mm in Sources */ = {isa = PBXBuildFile; fileRef = 4080A99F20B034280036BA46 /* imgui_impl_osx.mm */; };
- 4080A9B320B034E40036BA46 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4080A9B220B034E40036BA46 /* Cocoa.framework */; };
- 4080A9B520B034EA0036BA46 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4080A9B420B034EA0036BA46 /* OpenGL.framework */; };
- 50798230257677FD0038A28D /* imgui_tables.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5079822F257677FC0038A28D /* imgui_tables.cpp */; };
-/* End PBXBuildFile section */
-
-/* Begin PBXCopyFilesBuildPhase section */
- 4080A96920B029B00036BA46 /* CopyFiles */ = {
- isa = PBXCopyFilesBuildPhase;
- buildActionMask = 2147483647;
- dstPath = /usr/share/man/man1/;
- dstSubfolderSpec = 0;
- files = (
- );
- runOnlyForDeploymentPostprocessing = 1;
- };
-/* End PBXCopyFilesBuildPhase section */
-
-/* Begin PBXFileReference section */
- 05E31B57274EF0360083FCB6 /* GameController.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GameController.framework; path = System/Library/Frameworks/GameController.framework; sourceTree = SDKROOT; };
- 07A82EDA213941D00078D120 /* imgui_widgets.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = imgui_widgets.cpp; path = ../../imgui_widgets.cpp; sourceTree = "<group>"; };
- 4080A96B20B029B00036BA46 /* example_osx_opengl2 */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = example_osx_opengl2; sourceTree = BUILT_PRODUCTS_DIR; };
- 4080A98A20B02CD90036BA46 /* main.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = main.mm; sourceTree = SOURCE_ROOT; };
- 4080A99E20B034280036BA46 /* imgui_impl_opengl2.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = imgui_impl_opengl2.cpp; path = ../../backends/imgui_impl_opengl2.cpp; sourceTree = "<group>"; };
- 4080A99F20B034280036BA46 /* imgui_impl_osx.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = imgui_impl_osx.mm; path = ../../backends/imgui_impl_osx.mm; sourceTree = "<group>"; };
- 4080A9A020B034280036BA46 /* imgui_impl_opengl2.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = imgui_impl_opengl2.h; path = ../../backends/imgui_impl_opengl2.h; sourceTree = "<group>"; };
- 4080A9A120B034280036BA46 /* imgui_impl_osx.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = imgui_impl_osx.h; path = ../../backends/imgui_impl_osx.h; sourceTree = "<group>"; };
- 4080A9A520B0343C0036BA46 /* imgui_internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = imgui_internal.h; path = ../../imgui_internal.h; sourceTree = "<group>"; };
- 4080A9A620B0343C0036BA46 /* imgui_demo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = imgui_demo.cpp; path = ../../imgui_demo.cpp; sourceTree = "<group>"; };
- 4080A9A720B0343C0036BA46 /* imgui.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = imgui.cpp; path = ../../imgui.cpp; sourceTree = "<group>"; };
- 4080A9A820B0343C0036BA46 /* imgui.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = imgui.h; path = ../../imgui.h; sourceTree = "<group>"; };
- 4080A9AA20B0343C0036BA46 /* imgui_draw.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = imgui_draw.cpp; path = ../../imgui_draw.cpp; sourceTree = "<group>"; };
- 4080A9AC20B0343C0036BA46 /* imconfig.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = imconfig.h; path = ../../imconfig.h; sourceTree = "<group>"; };
- 4080A9B220B034E40036BA46 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; };
- 4080A9B420B034EA0036BA46 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = System/Library/Frameworks/OpenGL.framework; sourceTree = SDKROOT; };
- 5079822F257677FC0038A28D /* imgui_tables.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = imgui_tables.cpp; path = ../../imgui_tables.cpp; sourceTree = "<group>"; };
-/* End PBXFileReference section */
-
-/* Begin PBXFrameworksBuildPhase section */
- 4080A96820B029B00036BA46 /* Frameworks */ = {
- isa = PBXFrameworksBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 4080A9B520B034EA0036BA46 /* OpenGL.framework in Frameworks */,
- 4080A9B320B034E40036BA46 /* Cocoa.framework in Frameworks */,
- 05E31B59274EF0700083FCB6 /* GameController.framework in Frameworks */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXFrameworksBuildPhase section */
-
-/* Begin PBXGroup section */
- 4080A96220B029B00036BA46 = {
- isa = PBXGroup;
- children = (
- 5079822F257677FC0038A28D /* imgui_tables.cpp */,
- 4080A9AC20B0343C0036BA46 /* imconfig.h */,
- 4080A9A720B0343C0036BA46 /* imgui.cpp */,
- 4080A9A820B0343C0036BA46 /* imgui.h */,
- 07A82EDA213941D00078D120 /* imgui_widgets.cpp */,
- 4080A9A620B0343C0036BA46 /* imgui_demo.cpp */,
- 4080A9AA20B0343C0036BA46 /* imgui_draw.cpp */,
- 4080A9A520B0343C0036BA46 /* imgui_internal.h */,
- 4080A99E20B034280036BA46 /* imgui_impl_opengl2.cpp */,
- 4080A9A020B034280036BA46 /* imgui_impl_opengl2.h */,
- 4080A9A120B034280036BA46 /* imgui_impl_osx.h */,
- 4080A99F20B034280036BA46 /* imgui_impl_osx.mm */,
- 4080A98A20B02CD90036BA46 /* main.mm */,
- 4080A96C20B029B00036BA46 /* Products */,
- 4080A9B120B034E40036BA46 /* Frameworks */,
- );
- sourceTree = "<group>";
- };
- 4080A96C20B029B00036BA46 /* Products */ = {
- isa = PBXGroup;
- children = (
- 4080A96B20B029B00036BA46 /* example_osx_opengl2 */,
- );
- name = Products;
- sourceTree = "<group>";
- };
- 4080A9B120B034E40036BA46 /* Frameworks */ = {
- isa = PBXGroup;
- children = (
- 05E31B57274EF0360083FCB6 /* GameController.framework */,
- 4080A9B420B034EA0036BA46 /* OpenGL.framework */,
- 4080A9B220B034E40036BA46 /* Cocoa.framework */,
- );
- name = Frameworks;
- sourceTree = "<group>";
- };
-/* End PBXGroup section */
-
-/* Begin PBXNativeTarget section */
- 4080A96A20B029B00036BA46 /* example_osx_opengl2 */ = {
- isa = PBXNativeTarget;
- buildConfigurationList = 4080A97220B029B00036BA46 /* Build configuration list for PBXNativeTarget "example_osx_opengl2" */;
- buildPhases = (
- 4080A96720B029B00036BA46 /* Sources */,
- 4080A96820B029B00036BA46 /* Frameworks */,
- 4080A96920B029B00036BA46 /* CopyFiles */,
- );
- buildRules = (
- );
- dependencies = (
- );
- name = example_osx_opengl2;
- productName = example_osx_opengl2;
- productReference = 4080A96B20B029B00036BA46 /* example_osx_opengl2 */;
- productType = "com.apple.product-type.tool";
- };
-/* End PBXNativeTarget section */
-
-/* Begin PBXProject section */
- 4080A96320B029B00036BA46 /* Project object */ = {
- isa = PBXProject;
- attributes = {
- LastUpgradeCheck = 0930;
- ORGANIZATIONNAME = ImGui;
- TargetAttributes = {
- 4080A96A20B029B00036BA46 = {
- CreatedOnToolsVersion = 9.3.1;
- ProvisioningStyle = Automatic;
- };
- };
- };
- buildConfigurationList = 4080A96620B029B00036BA46 /* Build configuration list for PBXProject "example_apple_opengl2" */;
- compatibilityVersion = "Xcode 8.0";
- developmentRegion = en;
- hasScannedForEncodings = 0;
- knownRegions = (
- en,
- );
- mainGroup = 4080A96220B029B00036BA46;
- productRefGroup = 4080A96C20B029B00036BA46 /* Products */;
- projectDirPath = "";
- projectRoot = "";
- targets = (
- 4080A96A20B029B00036BA46 /* example_osx_opengl2 */,
- );
- };
-/* End PBXProject section */
-
-/* Begin PBXSourcesBuildPhase section */
- 4080A96720B029B00036BA46 /* Sources */ = {
- isa = PBXSourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- 4080A99820B02D340036BA46 /* main.mm in Sources */,
- 4080A9AD20B0343C0036BA46 /* imgui_demo.cpp in Sources */,
- 4080A9AF20B0343C0036BA46 /* imgui_draw.cpp in Sources */,
- 4080A9A220B034280036BA46 /* imgui_impl_opengl2.cpp in Sources */,
- 4080A9B020B0347A0036BA46 /* imgui_impl_osx.mm in Sources */,
- 4080A9AE20B0343C0036BA46 /* imgui.cpp in Sources */,
- 50798230257677FD0038A28D /* imgui_tables.cpp in Sources */,
- 07A82EDB213941D00078D120 /* imgui_widgets.cpp in Sources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXSourcesBuildPhase section */
-
-/* Begin XCBuildConfiguration section */
- 4080A97020B029B00036BA46 /* Debug */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ALWAYS_SEARCH_USER_PATHS = NO;
- CLANG_ANALYZER_NONNULL = YES;
- CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
- CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
- CLANG_CXX_LIBRARY = "libc++";
- CLANG_ENABLE_MODULES = YES;
- CLANG_ENABLE_OBJC_ARC = YES;
- CLANG_ENABLE_OBJC_WEAK = YES;
- CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
- CLANG_WARN_BOOL_CONVERSION = YES;
- CLANG_WARN_COMMA = YES;
- CLANG_WARN_CONSTANT_CONVERSION = YES;
- CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
- CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
- CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
- CLANG_WARN_EMPTY_BODY = YES;
- CLANG_WARN_ENUM_CONVERSION = YES;
- CLANG_WARN_INFINITE_RECURSION = YES;
- CLANG_WARN_INT_CONVERSION = YES;
- CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
- CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
- CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
- CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
- CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
- CLANG_WARN_STRICT_PROTOTYPES = YES;
- CLANG_WARN_SUSPICIOUS_MOVE = YES;
- CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
- CLANG_WARN_UNREACHABLE_CODE = YES;
- CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
- CODE_SIGN_IDENTITY = "-";
- COPY_PHASE_STRIP = NO;
- DEBUG_INFORMATION_FORMAT = dwarf;
- ENABLE_STRICT_OBJC_MSGSEND = YES;
- ENABLE_TESTABILITY = YES;
- GCC_C_LANGUAGE_STANDARD = gnu11;
- GCC_DYNAMIC_NO_PIC = NO;
- GCC_NO_COMMON_BLOCKS = YES;
- GCC_OPTIMIZATION_LEVEL = 0;
- GCC_PREPROCESSOR_DEFINITIONS = (
- "DEBUG=1",
- "$(inherited)",
- );
- GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
- GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
- GCC_WARN_UNDECLARED_SELECTOR = YES;
- GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
- GCC_WARN_UNUSED_FUNCTION = YES;
- GCC_WARN_UNUSED_VARIABLE = YES;
- MACOSX_DEPLOYMENT_TARGET = 10.13;
- MTL_ENABLE_DEBUG_INFO = YES;
- ONLY_ACTIVE_ARCH = YES;
- SDKROOT = macosx;
- };
- name = Debug;
- };
- 4080A97120B029B00036BA46 /* Release */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ALWAYS_SEARCH_USER_PATHS = NO;
- CLANG_ANALYZER_NONNULL = YES;
- CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
- CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
- CLANG_CXX_LIBRARY = "libc++";
- CLANG_ENABLE_MODULES = YES;
- CLANG_ENABLE_OBJC_ARC = YES;
- CLANG_ENABLE_OBJC_WEAK = YES;
- CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
- CLANG_WARN_BOOL_CONVERSION = YES;
- CLANG_WARN_COMMA = YES;
- CLANG_WARN_CONSTANT_CONVERSION = YES;
- CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
- CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
- CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
- CLANG_WARN_EMPTY_BODY = YES;
- CLANG_WARN_ENUM_CONVERSION = YES;
- CLANG_WARN_INFINITE_RECURSION = YES;
- CLANG_WARN_INT_CONVERSION = YES;
- CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
- CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
- CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
- CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
- CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
- CLANG_WARN_STRICT_PROTOTYPES = YES;
- CLANG_WARN_SUSPICIOUS_MOVE = YES;
- CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
- CLANG_WARN_UNREACHABLE_CODE = YES;
- CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
- CODE_SIGN_IDENTITY = "-";
- COPY_PHASE_STRIP = NO;
- DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
- ENABLE_NS_ASSERTIONS = NO;
- ENABLE_STRICT_OBJC_MSGSEND = YES;
- GCC_C_LANGUAGE_STANDARD = gnu11;
- GCC_NO_COMMON_BLOCKS = YES;
- GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
- GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
- GCC_WARN_UNDECLARED_SELECTOR = YES;
- GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
- GCC_WARN_UNUSED_FUNCTION = YES;
- GCC_WARN_UNUSED_VARIABLE = YES;
- MACOSX_DEPLOYMENT_TARGET = 10.13;
- MTL_ENABLE_DEBUG_INFO = NO;
- SDKROOT = macosx;
- };
- name = Release;
- };
- 4080A97320B029B00036BA46 /* Debug */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- CODE_SIGN_STYLE = Automatic;
- MACOSX_DEPLOYMENT_TARGET = 10.13;
- PRODUCT_NAME = "$(TARGET_NAME)";
- USER_HEADER_SEARCH_PATHS = ../..;
- };
- name = Debug;
- };
- 4080A97420B029B00036BA46 /* Release */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- CODE_SIGN_STYLE = Automatic;
- MACOSX_DEPLOYMENT_TARGET = 10.13;
- PRODUCT_NAME = "$(TARGET_NAME)";
- USER_HEADER_SEARCH_PATHS = ../..;
- };
- name = Release;
- };
-/* End XCBuildConfiguration section */
-
-/* Begin XCConfigurationList section */
- 4080A96620B029B00036BA46 /* Build configuration list for PBXProject "example_apple_opengl2" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- 4080A97020B029B00036BA46 /* Debug */,
- 4080A97120B029B00036BA46 /* Release */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Release;
- };
- 4080A97220B029B00036BA46 /* Build configuration list for PBXNativeTarget "example_osx_opengl2" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- 4080A97320B029B00036BA46 /* Debug */,
- 4080A97420B029B00036BA46 /* Release */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Release;
- };
-/* End XCConfigurationList section */
- };
- rootObject = 4080A96320B029B00036BA46 /* Project object */;
-}
diff --git a/imgui-1.92.1/examples/example_apple_opengl2/main.mm b/imgui-1.92.1/examples/example_apple_opengl2/main.mm
deleted file mode 100644
index c3f0c31..0000000
--- a/imgui-1.92.1/examples/example_apple_opengl2/main.mm
+++ /dev/null
@@ -1,256 +0,0 @@
-// Dear ImGui: standalone example application for OSX + OpenGL2, using legacy fixed pipeline
-
-// Learn about Dear ImGui:
-// - FAQ https://dearimgui.com/faq
-// - Getting Started https://dearimgui.com/getting-started
-// - Documentation https://dearimgui.com/docs (same as your local docs/ folder).
-// - Introduction, links and more at the top of imgui.cpp
-
-#import <Cocoa/Cocoa.h>
-#import <OpenGL/gl.h>
-#import <OpenGL/glu.h>
-
-#include "imgui.h"
-#include "imgui_impl_opengl2.h"
-#include "imgui_impl_osx.h"
-
-//-----------------------------------------------------------------------------------
-// AppView
-//-----------------------------------------------------------------------------------
-
-@interface AppView : NSOpenGLView
-{
- NSTimer* animationTimer;
-}
-@end
-
-@implementation AppView
-
--(void)prepareOpenGL
-{
- [super prepareOpenGL];
-
-#ifndef DEBUG
- GLint swapInterval = 1;
- [[self openGLContext] setValues:&swapInterval forParameter:NSOpenGLCPSwapInterval];
- if (swapInterval == 0)
- NSLog(@"Error: Cannot set swap interval.");
-#endif
-}
-
--(void)initialize
-{
- // Setup Dear ImGui context
- // FIXME: This example doesn't have proper cleanup...
- IMGUI_CHECKVERSION();
- ImGui::CreateContext();
- ImGuiIO& io = ImGui::GetIO(); (void)io;
- io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard; // Enable Keyboard Controls
- io.ConfigFlags |= ImGuiConfigFlags_NavEnableGamepad; // Enable Gamepad Controls
-
- // Setup Dear ImGui style
- ImGui::StyleColorsDark();
- //ImGui::StyleColorsLight();
-
- // Setup Platform/Renderer backends
- ImGui_ImplOSX_Init(self);
- ImGui_ImplOpenGL2_Init();
-
- // Load Fonts
- // - If no fonts are loaded, dear imgui will use the default font. You can also load multiple fonts and use ImGui::PushFont()/PopFont() to select them.
- // - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
- // - If the file cannot be loaded, the function will return a nullptr. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
- // - Use '#define IMGUI_ENABLE_FREETYPE' in your imconfig file to use Freetype for higher quality font rendering.
- // - Read 'docs/FONTS.md' for more instructions and details.
- // - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
- //style.FontSizeBase = 20.0f;
- //io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\segoeui.ttf");
- //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf");
- //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf");
- //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf");
- //ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf");
- //IM_ASSERT(font != nullptr);
-}
-
--(void)updateAndDrawDemoView
-{
- // Start the Dear ImGui frame
- ImGuiIO& io = ImGui::GetIO();
- ImGui_ImplOpenGL2_NewFrame();
- ImGui_ImplOSX_NewFrame(self);
- ImGui::NewFrame();
-
- // Our state (make them static = more or less global) as a convenience to keep the example terse.
- static bool show_demo_window = true;
- static bool show_another_window = false;
- static ImVec4 clear_color = ImVec4(0.45f, 0.55f, 0.60f, 1.00f);
-
- // 1. Show the big demo window (Most of the sample code is in ImGui::ShowDemoWindow()! You can browse its code to learn more about Dear ImGui!).
- if (show_demo_window)
- ImGui::ShowDemoWindow(&show_demo_window);
-
- // 2. Show a simple window that we create ourselves. We use a Begin/End pair to create a named window.
- {
- static float f = 0.0f;
- static int counter = 0;
-
- ImGui::Begin("Hello, world!"); // Create a window called "Hello, world!" and append into it.
-
- ImGui::Text("This is some useful text."); // Display some text (you can use a format strings too)
- ImGui::Checkbox("Demo Window", &show_demo_window); // Edit bools storing our window open/close state
- ImGui::Checkbox("Another Window", &show_another_window);
-
- ImGui::SliderFloat("float", &f, 0.0f, 1.0f); // Edit 1 float using a slider from 0.0f to 1.0f
- ImGui::ColorEdit3("clear color", (float*)&clear_color); // Edit 3 floats representing a color
-
- if (ImGui::Button("Button")) // Buttons return true when clicked (most widgets return true when edited/activated)
- counter++;
- ImGui::SameLine();
- ImGui::Text("counter = %d", counter);
-
- ImGui::Text("Application average %.3f ms/frame (%.1f FPS)", 1000.0f / io.Framerate, io.Framerate);
- ImGui::End();
- }
-
- // 3. Show another simple window.
- if (show_another_window)
- {
- ImGui::Begin("Another Window", &show_another_window); // Pass a pointer to our bool variable (the window will have a closing button that will clear the bool when clicked)
- ImGui::Text("Hello from another window!");
- if (ImGui::Button("Close Me"))
- show_another_window = false;
- ImGui::End();
- }
-
- // Rendering
- ImGui::Render();
- ImDrawData* draw_data = ImGui::GetDrawData();
-
- [[self openGLContext] makeCurrentContext];
- GLsizei width = (GLsizei)(draw_data->DisplaySize.x * draw_data->FramebufferScale.x);
- GLsizei height = (GLsizei)(draw_data->DisplaySize.y * draw_data->FramebufferScale.y);
- glViewport(0, 0, width, height);
- glClearColor(clear_color.x * clear_color.w, clear_color.y * clear_color.w, clear_color.z * clear_color.w, clear_color.w);
- glClear(GL_COLOR_BUFFER_BIT);
-
- ImGui_ImplOpenGL2_RenderDrawData(draw_data);
-
- // Present
- [[self openGLContext] flushBuffer];
-
- if (!animationTimer)
- animationTimer = [NSTimer scheduledTimerWithTimeInterval:0.017 target:self selector:@selector(animationTimerFired:) userInfo:nil repeats:YES];
-}
-
--(void)reshape { [super reshape]; [[self openGLContext] update]; [self updateAndDrawDemoView]; }
--(void)drawRect:(NSRect)bounds { [self updateAndDrawDemoView]; }
--(void)animationTimerFired:(NSTimer*)timer { [self setNeedsDisplay:YES]; }
--(void)dealloc { animationTimer = nil; }
-
-@end
-
-//-----------------------------------------------------------------------------------
-// AppDelegate
-//-----------------------------------------------------------------------------------
-
-@interface AppDelegate : NSObject <NSApplicationDelegate>
-@property (nonatomic, readonly) NSWindow* window;
-@end
-
-@implementation AppDelegate
-@synthesize window = _window;
-
--(BOOL)applicationShouldTerminateAfterLastWindowClosed:(NSApplication *)theApplication
-{
- return YES;
-}
-
--(NSWindow*)window
-{
- if (_window != nil)
- return (_window);
-
- NSRect viewRect = NSMakeRect(100.0, 100.0, 100.0 + 1280.0, 100 + 720.0);
-
- _window = [[NSWindow alloc] initWithContentRect:viewRect styleMask:NSWindowStyleMaskTitled|NSWindowStyleMaskMiniaturizable|NSWindowStyleMaskResizable|NSWindowStyleMaskClosable backing:NSBackingStoreBuffered defer:YES];
- [_window setTitle:@"Dear ImGui OSX+OpenGL2 Example"];
- [_window setAcceptsMouseMovedEvents:YES];
- [_window setOpaque:YES];
- [_window makeKeyAndOrderFront:NSApp];
-
- return (_window);
-}
-
--(void)setupMenu
-{
- NSMenu* mainMenuBar = [[NSMenu alloc] init];
- NSMenu* appMenu;
- NSMenuItem* menuItem;
-
- appMenu = [[NSMenu alloc] initWithTitle:@"Dear ImGui OSX+OpenGL2 Example"];
- menuItem = [appMenu addItemWithTitle:@"Quit Dear ImGui OSX+OpenGL2 Example" action:@selector(terminate:) keyEquivalent:@"q"];
- [menuItem setKeyEquivalentModifierMask:NSEventModifierFlagCommand];
-
- menuItem = [[NSMenuItem alloc] init];
- [menuItem setSubmenu:appMenu];
-
- [mainMenuBar addItem:menuItem];
-
- appMenu = nil;
- [NSApp setMainMenu:mainMenuBar];
-}
-
--(void)dealloc
-{
- _window = nil;
-}
-
--(void)applicationDidFinishLaunching:(NSNotification *)aNotification
-{
- // Make the application a foreground application (else it won't receive keyboard events)
- ProcessSerialNumber psn = {0, kCurrentProcess};
- TransformProcessType(&psn, kProcessTransformToForegroundApplication);
-
- // Menu
- [self setupMenu];
-
- NSOpenGLPixelFormatAttribute attrs[] =
- {
- NSOpenGLPFADoubleBuffer,
- NSOpenGLPFADepthSize, 32,
- 0
- };
-
- NSOpenGLPixelFormat* format = [[NSOpenGLPixelFormat alloc] initWithAttributes:attrs];
- AppView* view = [[AppView alloc] initWithFrame:self.window.frame pixelFormat:format];
- format = nil;
-#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1070
- if (floor(NSAppKitVersionNumber) > NSAppKitVersionNumber10_6)
- [view setWantsBestResolutionOpenGLSurface:YES];
-#endif // MAC_OS_X_VERSION_MAX_ALLOWED >= 1070
- [self.window setContentView:view];
-
- if ([view openGLContext] == nil)
- NSLog(@"No OpenGL Context!");
-
- [view initialize];
-}
-
-@end
-
-//-----------------------------------------------------------------------------------
-// Application main() function
-//-----------------------------------------------------------------------------------
-
-int main(int argc, const char* argv[])
-{
- @autoreleasepool
- {
- NSApp = [NSApplication sharedApplication];
- AppDelegate* delegate = [[AppDelegate alloc] init];
- [[NSApplication sharedApplication] setDelegate:delegate];
- [NSApp run];
- }
- return NSApplicationMain(argc, argv);
-}
diff --git a/imgui-1.92.1/examples/example_glfw_metal/Makefile b/imgui-1.92.1/examples/example_glfw_metal/Makefile
deleted file mode 100644
index 32a7aec..0000000
--- a/imgui-1.92.1/examples/example_glfw_metal/Makefile
+++ /dev/null
@@ -1,46 +0,0 @@
-#
-# You will need GLFW (http://www.glfw.org):
-# brew install glfw
-#
-
-#CXX = g++
-#CXX = clang++
-
-EXE = example_glfw_metal
-IMGUI_DIR = ../..
-SOURCES = main.mm
-SOURCES += $(IMGUI_DIR)/imgui.cpp $(IMGUI_DIR)/imgui_demo.cpp $(IMGUI_DIR)/imgui_draw.cpp $(IMGUI_DIR)/imgui_tables.cpp $(IMGUI_DIR)/imgui_widgets.cpp
-SOURCES += $(IMGUI_DIR)/backends/imgui_impl_glfw.cpp $(IMGUI_DIR)/backends/imgui_impl_metal.mm
-OBJS = $(addsuffix .o, $(basename $(notdir $(SOURCES))))
-
-LIBS = -framework Metal -framework MetalKit -framework Cocoa -framework IOKit -framework CoreVideo -framework QuartzCore
-LIBS += -L/usr/local/lib -L/opt/homebrew/lib -L/opt/local/lib
-LIBS += -lglfw
-
-CXXFLAGS = -std=c++11 -I$(IMGUI_DIR) -I$(IMGUI_DIR)/backends -I/usr/local/include -I/opt/homebrew/include -I/opt/local/include
-CXXFLAGS += -Wall -Wformat
-CFLAGS = $(CXXFLAGS)
-
-%.o:%.cpp
- $(CXX) $(CXXFLAGS) -c -o $@ $<
-
-%.o:$(IMGUI_DIR)/%.cpp
- $(CXX) $(CXXFLAGS) -c -o $@ $<
-
-%.o:$(IMGUI_DIR)/backends/%.cpp
- $(CXX) $(CXXFLAGS) -c -o $@ $<
-
-%.o:%.mm
- $(CXX) $(CXXFLAGS) -ObjC++ -fobjc-weak -fobjc-arc -c -o $@ $<
-
-%.o:$(IMGUI_DIR)/backends/%.mm
- $(CXX) $(CXXFLAGS) -ObjC++ -fobjc-weak -fobjc-arc -c -o $@ $<
-
-all: $(EXE)
- @echo Build complete
-
-$(EXE): $(OBJS)
- $(CXX) -o $@ $^ $(CXXFLAGS) $(LIBS)
-
-clean:
- rm -f $(EXE) $(OBJS)
diff --git a/imgui-1.92.1/examples/example_glfw_metal/main.mm b/imgui-1.92.1/examples/example_glfw_metal/main.mm
deleted file mode 100644
index ef31470..0000000
--- a/imgui-1.92.1/examples/example_glfw_metal/main.mm
+++ /dev/null
@@ -1,177 +0,0 @@
-// Dear ImGui: standalone example application for GLFW + Metal, using programmable pipeline
-// (GLFW is a cross-platform general purpose library for handling windows, inputs, OpenGL/Vulkan/Metal graphics context creation, etc.)
-
-// Learn about Dear ImGui:
-// - FAQ https://dearimgui.com/faq
-// - Getting Started https://dearimgui.com/getting-started
-// - Documentation https://dearimgui.com/docs (same as your local docs/ folder).
-// - Introduction, links and more at the top of imgui.cpp
-
-#include "imgui.h"
-#include "imgui_impl_glfw.h"
-#include "imgui_impl_metal.h"
-#include <stdio.h>
-
-#define GLFW_INCLUDE_NONE
-#define GLFW_EXPOSE_NATIVE_COCOA
-#include <GLFW/glfw3.h>
-#include <GLFW/glfw3native.h>
-
-#import <Metal/Metal.h>
-#import <QuartzCore/QuartzCore.h>
-
-static void glfw_error_callback(int error, const char* description)
-{
- fprintf(stderr, "Glfw Error %d: %s\n", error, description);
-}
-
-int main(int, char**)
-{
- // Setup Dear ImGui context
- IMGUI_CHECKVERSION();
- ImGui::CreateContext();
- ImGuiIO& io = ImGui::GetIO(); (void)io;
- io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard; // Enable Keyboard Controls
- io.ConfigFlags |= ImGuiConfigFlags_NavEnableGamepad; // Enable Gamepad Controls
-
- // Setup style
- ImGui::StyleColorsDark();
- //ImGui::StyleColorsLight();
-
- // Load Fonts
- // - If no fonts are loaded, dear imgui will use the default font. You can also load multiple fonts and use ImGui::PushFont()/PopFont() to select them.
- // - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
- // - If the file cannot be loaded, the function will return a nullptr. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
- // - Use '#define IMGUI_ENABLE_FREETYPE' in your imconfig file to use Freetype for higher quality font rendering.
- // - Read 'docs/FONTS.md' for more instructions and details.
- // - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
- //style.FontSizeBase = 20.0f;
- //io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\segoeui.ttf");
- //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf");
- //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf");
- //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf");
- //ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf");
- //IM_ASSERT(font != nullptr);
-
- // Setup window
- glfwSetErrorCallback(glfw_error_callback);
- if (!glfwInit())
- return 1;
-
- // Create window with graphics context
- glfwWindowHint(GLFW_CLIENT_API, GLFW_NO_API);
- GLFWwindow* window = glfwCreateWindow(1280, 720, "Dear ImGui GLFW+Metal example", nullptr, nullptr);
- if (window == nullptr)
- return 1;
-
- id <MTLDevice> device = MTLCreateSystemDefaultDevice();
- id <MTLCommandQueue> commandQueue = [device newCommandQueue];
-
- // Setup Platform/Renderer backends
- ImGui_ImplGlfw_InitForOpenGL(window, true);
- ImGui_ImplMetal_Init(device);
-
- NSWindow *nswin = glfwGetCocoaWindow(window);
- CAMetalLayer *layer = [CAMetalLayer layer];
- layer.device = device;
- layer.pixelFormat = MTLPixelFormatBGRA8Unorm;
- nswin.contentView.layer = layer;
- nswin.contentView.wantsLayer = YES;
-
- MTLRenderPassDescriptor *renderPassDescriptor = [MTLRenderPassDescriptor new];
-
- // Our state
- bool show_demo_window = true;
- bool show_another_window = false;
- float clear_color[4] = {0.45f, 0.55f, 0.60f, 1.00f};
-
- // Main loop
- while (!glfwWindowShouldClose(window))
- {
- @autoreleasepool
- {
- // Poll and handle events (inputs, window resize, etc.)
- // You can read the io.WantCaptureMouse, io.WantCaptureKeyboard flags to tell if dear imgui wants to use your inputs.
- // - When io.WantCaptureMouse is true, do not dispatch mouse input data to your main application, or clear/overwrite your copy of the mouse data.
- // - When io.WantCaptureKeyboard is true, do not dispatch keyboard input data to your main application, or clear/overwrite your copy of the keyboard data.
- // Generally you may always pass all inputs to dear imgui, and hide them from your application based on those two flags.
- glfwPollEvents();
-
- int width, height;
- glfwGetFramebufferSize(window, &width, &height);
- layer.drawableSize = CGSizeMake(width, height);
- id<CAMetalDrawable> drawable = [layer nextDrawable];
-
- id<MTLCommandBuffer> commandBuffer = [commandQueue commandBuffer];
- renderPassDescriptor.colorAttachments[0].clearColor = MTLClearColorMake(clear_color[0] * clear_color[3], clear_color[1] * clear_color[3], clear_color[2] * clear_color[3], clear_color[3]);
- renderPassDescriptor.colorAttachments[0].texture = drawable.texture;
- renderPassDescriptor.colorAttachments[0].loadAction = MTLLoadActionClear;
- renderPassDescriptor.colorAttachments[0].storeAction = MTLStoreActionStore;
- id <MTLRenderCommandEncoder> renderEncoder = [commandBuffer renderCommandEncoderWithDescriptor:renderPassDescriptor];
- [renderEncoder pushDebugGroup:@"ImGui demo"];
-
- // Start the Dear ImGui frame
- ImGui_ImplMetal_NewFrame(renderPassDescriptor);
- ImGui_ImplGlfw_NewFrame();
- ImGui::NewFrame();
-
- // 1. Show the big demo window (Most of the sample code is in ImGui::ShowDemoWindow()! You can browse its code to learn more about Dear ImGui!).
- if (show_demo_window)
- ImGui::ShowDemoWindow(&show_demo_window);
-
- // 2. Show a simple window that we create ourselves. We use a Begin/End pair to create a named window.
- {
- static float f = 0.0f;
- static int counter = 0;
-
- ImGui::Begin("Hello, world!"); // Create a window called "Hello, world!" and append into it.
-
- ImGui::Text("This is some useful text."); // Display some text (you can use a format strings too)
- ImGui::Checkbox("Demo Window", &show_demo_window); // Edit bools storing our window open/close state
- ImGui::Checkbox("Another Window", &show_another_window);
-
- ImGui::SliderFloat("float", &f, 0.0f, 1.0f); // Edit 1 float using a slider from 0.0f to 1.0f
- ImGui::ColorEdit3("clear color", (float*)&clear_color); // Edit 3 floats representing a color
-
- if (ImGui::Button("Button")) // Buttons return true when clicked (most widgets return true when edited/activated)
- counter++;
- ImGui::SameLine();
- ImGui::Text("counter = %d", counter);
-
- ImGui::Text("Application average %.3f ms/frame (%.1f FPS)", 1000.0f / io.Framerate, io.Framerate);
- ImGui::End();
- }
-
- // 3. Show another simple window.
- if (show_another_window)
- {
- ImGui::Begin("Another Window", &show_another_window); // Pass a pointer to our bool variable (the window will have a closing button that will clear the bool when clicked)
- ImGui::Text("Hello from another window!");
- if (ImGui::Button("Close Me"))
- show_another_window = false;
- ImGui::End();
- }
-
- // Rendering
- ImGui::Render();
- ImGui_ImplMetal_RenderDrawData(ImGui::GetDrawData(), commandBuffer, renderEncoder);
-
- [renderEncoder popDebugGroup];
- [renderEncoder endEncoding];
-
- [commandBuffer presentDrawable:drawable];
- [commandBuffer commit];
- }
- }
-
- // Cleanup
- ImGui_ImplMetal_Shutdown();
- ImGui_ImplGlfw_Shutdown();
- ImGui::DestroyContext();
-
- glfwDestroyWindow(window);
- glfwTerminate();
-
- return 0;
-}
diff --git a/imgui-1.92.1/examples/example_glfw_opengl2/Makefile b/imgui-1.92.1/examples/example_glfw_opengl2/Makefile
deleted file mode 100644
index 1f15c15..0000000
--- a/imgui-1.92.1/examples/example_glfw_opengl2/Makefile
+++ /dev/null
@@ -1,81 +0,0 @@
-#
-# Cross Platform Makefile
-# Compatible with MSYS2/MINGW, Ubuntu 14.04.1 and Mac OS X
-#
-# You will need GLFW (http://www.glfw.org):
-# Linux:
-# apt-get install libglfw-dev
-# Mac OS X:
-# brew install glfw
-# MSYS2:
-# pacman -S --noconfirm --needed mingw-w64-x86_64-toolchain mingw-w64-x86_64-glfw
-#
-
-#CXX = g++
-#CXX = clang++
-
-EXE = example_glfw_opengl2
-IMGUI_DIR = ../..
-SOURCES = main.cpp
-SOURCES += $(IMGUI_DIR)/imgui.cpp $(IMGUI_DIR)/imgui_demo.cpp $(IMGUI_DIR)/imgui_draw.cpp $(IMGUI_DIR)/imgui_tables.cpp $(IMGUI_DIR)/imgui_widgets.cpp
-SOURCES += $(IMGUI_DIR)/backends/imgui_impl_glfw.cpp $(IMGUI_DIR)/backends/imgui_impl_opengl2.cpp
-OBJS = $(addsuffix .o, $(basename $(notdir $(SOURCES))))
-UNAME_S := $(shell uname -s)
-
-CXXFLAGS = -std=c++11 -I$(IMGUI_DIR) -I$(IMGUI_DIR)/backends
-CXXFLAGS += -g -Wall -Wformat
-LIBS =
-
-##---------------------------------------------------------------------
-## BUILD FLAGS PER PLATFORM
-##---------------------------------------------------------------------
-
-ifeq ($(UNAME_S), Linux) #LINUX
- ECHO_MESSAGE = "Linux"
- LIBS += -lGL `pkg-config --static --libs glfw3`
-
- CXXFLAGS += `pkg-config --cflags glfw3`
- CFLAGS = $(CXXFLAGS)
-endif
-
-ifeq ($(UNAME_S), Darwin) #APPLE
- ECHO_MESSAGE = "Mac OS X"
- LIBS += -framework OpenGL -framework Cocoa -framework IOKit -framework CoreVideo
- LIBS += -L/usr/local/lib -L/opt/local/lib -L/opt/homebrew/lib
- #LIBS += -lglfw3
- LIBS += -lglfw
-
- CXXFLAGS += -I/usr/local/include -I/opt/local/include -I/opt/homebrew/include
- CFLAGS = $(CXXFLAGS)
-endif
-
-ifeq ($(OS), Windows_NT)
- ECHO_MESSAGE = "MinGW"
- LIBS += -lglfw3 -lgdi32 -lopengl32 -limm32
-
- CXXFLAGS += `pkg-config --cflags glfw3`
- CFLAGS = $(CXXFLAGS)
-endif
-
-##---------------------------------------------------------------------
-## BUILD RULES
-##---------------------------------------------------------------------
-
-%.o:%.cpp
- $(CXX) $(CXXFLAGS) -c -o $@ $<
-
-%.o:$(IMGUI_DIR)/%.cpp
- $(CXX) $(CXXFLAGS) -c -o $@ $<
-
-%.o:$(IMGUI_DIR)/backends/%.cpp
- $(CXX) $(CXXFLAGS) -c -o $@ $<
-
-all: $(EXE)
- @echo Build complete for $(ECHO_MESSAGE)
-
-$(EXE): $(OBJS)
- $(CXX) -o $@ $^ $(CXXFLAGS) $(LIBS)
-
-clean:
- rm -f $(EXE) $(OBJS)
-
diff --git a/imgui-1.92.1/examples/example_glfw_opengl2/build_win32.bat b/imgui-1.92.1/examples/example_glfw_opengl2/build_win32.bat
deleted file mode 100644
index 24c0e08..0000000
--- a/imgui-1.92.1/examples/example_glfw_opengl2/build_win32.bat
+++ /dev/null
@@ -1,8 +0,0 @@
-@REM Build for Visual Studio compiler. Run your copy of vcvars32.bat or vcvarsall.bat to setup command-line compiler.
-@set OUT_DIR=Debug
-@set OUT_EXE=example_glfw_opengl2
-@set INCLUDES=/I..\.. /I..\..\backends /I..\libs\glfw\include
-@set SOURCES=main.cpp ..\..\backends\imgui_impl_opengl2.cpp ..\..\backends\imgui_impl_glfw.cpp ..\..\imgui*.cpp
-@set LIBS=/LIBPATH:..\libs\glfw\lib-vc2010-32 glfw3.lib opengl32.lib gdi32.lib shell32.lib
-mkdir %OUT_DIR%
-cl /nologo /Zi /MD /utf-8 %INCLUDES% %SOURCES% /Fe%OUT_DIR%/%OUT_EXE%.exe /Fo%OUT_DIR%/ /link %LIBS%
diff --git a/imgui-1.92.1/examples/example_glfw_opengl2/example_glfw_opengl2.vcxproj b/imgui-1.92.1/examples/example_glfw_opengl2/example_glfw_opengl2.vcxproj
deleted file mode 100644
index 2aa2550..0000000
--- a/imgui-1.92.1/examples/example_glfw_opengl2/example_glfw_opengl2.vcxproj
+++ /dev/null
@@ -1,186 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="Debug|Win32">
- <Configuration>Debug</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Debug|x64">
- <Configuration>Debug</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|Win32">
- <Configuration>Release</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|x64">
- <Configuration>Release</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- </ItemGroup>
- <PropertyGroup Label="Globals">
- <ProjectGuid>{9CDA7840-B7A5-496D-A527-E95571496D18}</ProjectGuid>
- <RootNamespace>example_glfw_opengl2</RootNamespace>
- <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>true</UseDebugLibraries>
- <CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>true</UseDebugLibraries>
- <CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>false</UseDebugLibraries>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- <CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>false</UseDebugLibraries>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- <CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
- <ImportGroup Label="ExtensionSettings">
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <PropertyGroup Label="UserMacros" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <OutDir>$(ProjectDir)$(Configuration)\</OutDir>
- <IntDir>$(ProjectDir)$(Configuration)\</IntDir>
- <IncludePath>$(IncludePath)</IncludePath>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <OutDir>$(ProjectDir)$(Configuration)\</OutDir>
- <IntDir>$(ProjectDir)$(Configuration)\</IntDir>
- <IncludePath>$(IncludePath)</IncludePath>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <OutDir>$(ProjectDir)$(Configuration)\</OutDir>
- <IntDir>$(ProjectDir)$(Configuration)\</IntDir>
- <IncludePath>$(IncludePath)</IncludePath>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <OutDir>$(ProjectDir)$(Configuration)\</OutDir>
- <IntDir>$(ProjectDir)$(Configuration)\</IntDir>
- <IncludePath>$(IncludePath)</IncludePath>
- </PropertyGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <ClCompile>
- <WarningLevel>Level4</WarningLevel>
- <Optimization>Disabled</Optimization>
- <AdditionalIncludeDirectories>..\..;..\..\backends;..\libs\glfw\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
- </ClCompile>
- <Link>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <AdditionalLibraryDirectories>..\libs\glfw\lib-vc2010-32;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
- <AdditionalDependencies>opengl32.lib;glfw3.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <SubSystem>Console</SubSystem>
- <IgnoreSpecificDefaultLibraries>msvcrt.lib</IgnoreSpecificDefaultLibraries>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <ClCompile>
- <WarningLevel>Level4</WarningLevel>
- <Optimization>Disabled</Optimization>
- <AdditionalIncludeDirectories>..\..;..\..\backends;..\libs\glfw\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
- </ClCompile>
- <Link>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <AdditionalLibraryDirectories>..\libs\glfw\lib-vc2010-64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
- <AdditionalDependencies>opengl32.lib;glfw3.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <SubSystem>Console</SubSystem>
- <IgnoreSpecificDefaultLibraries>msvcrt.lib</IgnoreSpecificDefaultLibraries>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <ClCompile>
- <WarningLevel>Level4</WarningLevel>
- <Optimization>MaxSpeed</Optimization>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <IntrinsicFunctions>true</IntrinsicFunctions>
- <AdditionalIncludeDirectories>..\..;..\..\backends;..\libs\glfw\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <BufferSecurityCheck>false</BufferSecurityCheck>
- <AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
- </ClCompile>
- <Link>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- <OptimizeReferences>true</OptimizeReferences>
- <AdditionalLibraryDirectories>..\libs\glfw\lib-vc2010-32;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
- <AdditionalDependencies>opengl32.lib;glfw3.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <SubSystem>Console</SubSystem>
- <IgnoreSpecificDefaultLibraries>
- </IgnoreSpecificDefaultLibraries>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <ClCompile>
- <WarningLevel>Level4</WarningLevel>
- <Optimization>MaxSpeed</Optimization>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <IntrinsicFunctions>true</IntrinsicFunctions>
- <AdditionalIncludeDirectories>..\..;..\..\backends;..\libs\glfw\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <BufferSecurityCheck>false</BufferSecurityCheck>
- <AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
- </ClCompile>
- <Link>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- <OptimizeReferences>true</OptimizeReferences>
- <AdditionalLibraryDirectories>..\libs\glfw\lib-vc2010-64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
- <AdditionalDependencies>opengl32.lib;glfw3.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <SubSystem>Console</SubSystem>
- <IgnoreSpecificDefaultLibraries>
- </IgnoreSpecificDefaultLibraries>
- </Link>
- </ItemDefinitionGroup>
- <ItemGroup>
- <ClCompile Include="..\..\imgui.cpp" />
- <ClCompile Include="..\..\imgui_demo.cpp" />
- <ClCompile Include="..\..\imgui_draw.cpp" />
- <ClCompile Include="..\..\imgui_tables.cpp" />
- <ClCompile Include="..\..\imgui_widgets.cpp" />
- <ClCompile Include="..\..\backends\imgui_impl_glfw.cpp" />
- <ClCompile Include="..\..\backends\imgui_impl_opengl2.cpp" />
- <ClCompile Include="main.cpp" />
- </ItemGroup>
- <ItemGroup>
- <ClInclude Include="..\..\imconfig.h" />
- <ClInclude Include="..\..\imgui.h" />
- <ClInclude Include="..\..\imgui_internal.h" />
- <ClInclude Include="..\..\backends\imgui_impl_glfw.h" />
- <ClInclude Include="..\..\backends\imgui_impl_opengl2.h" />
- </ItemGroup>
- <ItemGroup>
- <None Include="..\..\misc\debuggers\imgui.natstepfilter" />
- <None Include="..\..\misc\debuggers\imgui.natvis" />
- <None Include="..\README.txt" />
- </ItemGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
- <ImportGroup Label="ExtensionTargets">
- </ImportGroup>
-</Project> \ No newline at end of file
diff --git a/imgui-1.92.1/examples/example_glfw_opengl2/example_glfw_opengl2.vcxproj.filters b/imgui-1.92.1/examples/example_glfw_opengl2/example_glfw_opengl2.vcxproj.filters
deleted file mode 100644
index 049b0b1..0000000
--- a/imgui-1.92.1/examples/example_glfw_opengl2/example_glfw_opengl2.vcxproj.filters
+++ /dev/null
@@ -1,64 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup>
- <Filter Include="imgui">
- <UniqueIdentifier>{c336cfe3-f0c4-464c-9ef0-a9e17a7ff222}</UniqueIdentifier>
- </Filter>
- <Filter Include="sources">
- <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
- <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
- </Filter>
- </ItemGroup>
- <ItemGroup>
- <ClCompile Include="main.cpp">
- <Filter>sources</Filter>
- </ClCompile>
- <ClCompile Include="..\..\imgui.cpp">
- <Filter>imgui</Filter>
- </ClCompile>
- <ClCompile Include="..\..\imgui_demo.cpp">
- <Filter>imgui</Filter>
- </ClCompile>
- <ClCompile Include="..\..\imgui_draw.cpp">
- <Filter>imgui</Filter>
- </ClCompile>
- <ClCompile Include="..\..\imgui_tables.cpp">
- <Filter>imgui</Filter>
- </ClCompile>
- <ClCompile Include="..\..\imgui_widgets.cpp">
- <Filter>imgui</Filter>
- </ClCompile>
- <ClCompile Include="..\..\backends\imgui_impl_glfw.cpp">
- <Filter>sources</Filter>
- </ClCompile>
- <ClCompile Include="..\..\backends\imgui_impl_opengl2.cpp">
- <Filter>sources</Filter>
- </ClCompile>
- </ItemGroup>
- <ItemGroup>
- <ClInclude Include="..\..\imconfig.h">
- <Filter>imgui</Filter>
- </ClInclude>
- <ClInclude Include="..\..\imgui.h">
- <Filter>imgui</Filter>
- </ClInclude>
- <ClInclude Include="..\..\imgui_internal.h">
- <Filter>imgui</Filter>
- </ClInclude>
- <ClInclude Include="..\..\backends\imgui_impl_glfw.h">
- <Filter>sources</Filter>
- </ClInclude>
- <ClInclude Include="..\..\backends\imgui_impl_opengl2.h">
- <Filter>sources</Filter>
- </ClInclude>
- </ItemGroup>
- <ItemGroup>
- <None Include="..\README.txt" />
- <None Include="..\..\misc\debuggers\imgui.natvis">
- <Filter>imgui</Filter>
- </None>
- <None Include="..\..\misc\debuggers\imgui.natstepfilter">
- <Filter>imgui</Filter>
- </None>
- </ItemGroup>
-</Project> \ No newline at end of file
diff --git a/imgui-1.92.1/examples/example_glfw_opengl2/main.cpp b/imgui-1.92.1/examples/example_glfw_opengl2/main.cpp
deleted file mode 100644
index 83fcab6..0000000
--- a/imgui-1.92.1/examples/example_glfw_opengl2/main.cpp
+++ /dev/null
@@ -1,171 +0,0 @@
-// Dear ImGui: standalone example application for GLFW + OpenGL2, using legacy fixed pipeline
-// (GLFW is a cross-platform general purpose library for handling windows, inputs, OpenGL/Vulkan/Metal graphics context creation, etc.)
-
-// Learn about Dear ImGui:
-// - FAQ https://dearimgui.com/faq
-// - Getting Started https://dearimgui.com/getting-started
-// - Documentation https://dearimgui.com/docs (same as your local docs/ folder).
-// - Introduction, links and more at the top of imgui.cpp
-
-// **DO NOT USE THIS CODE IF YOUR CODE/ENGINE IS USING MODERN OPENGL (SHADERS, VBO, VAO, etc.)**
-// **Prefer using the code in the example_glfw_opengl2/ folder**
-// See imgui_impl_glfw.cpp for details.
-
-#include "imgui.h"
-#include "imgui_impl_glfw.h"
-#include "imgui_impl_opengl2.h"
-#include <stdio.h>
-#ifdef __APPLE__
-#define GL_SILENCE_DEPRECATION
-#endif
-#include <GLFW/glfw3.h>
-
-// [Win32] Our example includes a copy of glfw3.lib pre-compiled with VS2010 to maximize ease of testing and compatibility with old VS compilers.
-// To link with VS2010-era libraries, VS2015+ requires linking with legacy_stdio_definitions.lib, which we do using this pragma.
-// Your own project should not be affected, as you are likely to link with a newer binary of GLFW that is adequate for your version of Visual Studio.
-#if defined(_MSC_VER) && (_MSC_VER >= 1900) && !defined(IMGUI_DISABLE_WIN32_FUNCTIONS)
-#pragma comment(lib, "legacy_stdio_definitions")
-#endif
-
-static void glfw_error_callback(int error, const char* description)
-{
- fprintf(stderr, "GLFW Error %d: %s\n", error, description);
-}
-
-// Main code
-int main(int, char**)
-{
- glfwSetErrorCallback(glfw_error_callback);
- if (!glfwInit())
- return 1;
-
- // Create window with graphics context
- GLFWwindow* window = glfwCreateWindow(1280, 720, "Dear ImGui GLFW+OpenGL2 example", nullptr, nullptr);
- if (window == nullptr)
- return 1;
- glfwMakeContextCurrent(window);
- glfwSwapInterval(1); // Enable vsync
-
- // Setup Dear ImGui context
- IMGUI_CHECKVERSION();
- ImGui::CreateContext();
- ImGuiIO& io = ImGui::GetIO(); (void)io;
- io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard; // Enable Keyboard Controls
- io.ConfigFlags |= ImGuiConfigFlags_NavEnableGamepad; // Enable Gamepad Controls
-
- // Setup Dear ImGui style
- ImGui::StyleColorsDark();
- //ImGui::StyleColorsLight();
-
- // Setup Platform/Renderer backends
- ImGui_ImplGlfw_InitForOpenGL(window, true);
- ImGui_ImplOpenGL2_Init();
-
- // Load Fonts
- // - If no fonts are loaded, dear imgui will use the default font. You can also load multiple fonts and use ImGui::PushFont()/PopFont() to select them.
- // - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
- // - If the file cannot be loaded, the function will return a nullptr. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
- // - Use '#define IMGUI_ENABLE_FREETYPE' in your imconfig file to use Freetype for higher quality font rendering.
- // - Read 'docs/FONTS.md' for more instructions and details.
- // - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
- //style.FontSizeBase = 20.0f;
- //io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\segoeui.ttf");
- //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf");
- //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf");
- //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf");
- //ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf");
- //IM_ASSERT(font != nullptr);
-
- // Our state
- bool show_demo_window = true;
- bool show_another_window = false;
- ImVec4 clear_color = ImVec4(0.45f, 0.55f, 0.60f, 1.00f);
-
- // Main loop
- while (!glfwWindowShouldClose(window))
- {
- // Poll and handle events (inputs, window resize, etc.)
- // You can read the io.WantCaptureMouse, io.WantCaptureKeyboard flags to tell if dear imgui wants to use your inputs.
- // - When io.WantCaptureMouse is true, do not dispatch mouse input data to your main application, or clear/overwrite your copy of the mouse data.
- // - When io.WantCaptureKeyboard is true, do not dispatch keyboard input data to your main application, or clear/overwrite your copy of the keyboard data.
- // Generally you may always pass all inputs to dear imgui, and hide them from your application based on those two flags.
- glfwPollEvents();
- if (glfwGetWindowAttrib(window, GLFW_ICONIFIED) != 0)
- {
- ImGui_ImplGlfw_Sleep(10);
- continue;
- }
-
- // Start the Dear ImGui frame
- ImGui_ImplOpenGL2_NewFrame();
- ImGui_ImplGlfw_NewFrame();
- ImGui::NewFrame();
-
- // 1. Show the big demo window (Most of the sample code is in ImGui::ShowDemoWindow()! You can browse its code to learn more about Dear ImGui!).
- if (show_demo_window)
- ImGui::ShowDemoWindow(&show_demo_window);
-
- // 2. Show a simple window that we create ourselves. We use a Begin/End pair to create a named window.
- {
- static float f = 0.0f;
- static int counter = 0;
-
- ImGui::Begin("Hello, world!"); // Create a window called "Hello, world!" and append into it.
-
- ImGui::Text("This is some useful text."); // Display some text (you can use a format strings too)
- ImGui::Checkbox("Demo Window", &show_demo_window); // Edit bools storing our window open/close state
- ImGui::Checkbox("Another Window", &show_another_window);
-
- ImGui::SliderFloat("float", &f, 0.0f, 1.0f); // Edit 1 float using a slider from 0.0f to 1.0f
- ImGui::ColorEdit3("clear color", (float*)&clear_color); // Edit 3 floats representing a color
-
- if (ImGui::Button("Button")) // Buttons return true when clicked (most widgets return true when edited/activated)
- counter++;
- ImGui::SameLine();
- ImGui::Text("counter = %d", counter);
-
- ImGui::Text("Application average %.3f ms/frame (%.1f FPS)", 1000.0f / io.Framerate, io.Framerate);
- ImGui::End();
- }
-
- // 3. Show another simple window.
- if (show_another_window)
- {
- ImGui::Begin("Another Window", &show_another_window); // Pass a pointer to our bool variable (the window will have a closing button that will clear the bool when clicked)
- ImGui::Text("Hello from another window!");
- if (ImGui::Button("Close Me"))
- show_another_window = false;
- ImGui::End();
- }
-
- // Rendering
- ImGui::Render();
- int display_w, display_h;
- glfwGetFramebufferSize(window, &display_w, &display_h);
- glViewport(0, 0, display_w, display_h);
- glClearColor(clear_color.x * clear_color.w, clear_color.y * clear_color.w, clear_color.z * clear_color.w, clear_color.w);
- glClear(GL_COLOR_BUFFER_BIT);
-
- // If you are using this code with non-legacy OpenGL header/contexts (which you should not, prefer using imgui_impl_opengl3.cpp!!),
- // you may need to backup/reset/restore other state, e.g. for current shader using the commented lines below.
- //GLint last_program;
- //glGetIntegerv(GL_CURRENT_PROGRAM, &last_program);
- //glUseProgram(0);
- ImGui_ImplOpenGL2_RenderDrawData(ImGui::GetDrawData());
- //glUseProgram(last_program);
-
- glfwMakeContextCurrent(window);
- glfwSwapBuffers(window);
- }
-
- // Cleanup
- ImGui_ImplOpenGL2_Shutdown();
- ImGui_ImplGlfw_Shutdown();
- ImGui::DestroyContext();
-
- glfwDestroyWindow(window);
- glfwTerminate();
-
- return 0;
-}
diff --git a/imgui-1.92.1/examples/example_glfw_opengl3/Makefile b/imgui-1.92.1/examples/example_glfw_opengl3/Makefile
deleted file mode 100644
index 252ce57..0000000
--- a/imgui-1.92.1/examples/example_glfw_opengl3/Makefile
+++ /dev/null
@@ -1,89 +0,0 @@
-#
-# Cross Platform Makefile
-# Compatible with MSYS2/MINGW, Ubuntu 14.04.1 and Mac OS X
-#
-# You will need GLFW (http://www.glfw.org):
-# Linux:
-# apt-get install libglfw-dev
-# Mac OS X:
-# brew install glfw
-# MSYS2:
-# pacman -S --noconfirm --needed mingw-w64-x86_64-toolchain mingw-w64-x86_64-glfw
-#
-
-#CXX = g++
-#CXX = clang++
-
-EXE = example_glfw_opengl3
-IMGUI_DIR = ../..
-SOURCES = main.cpp
-SOURCES += $(IMGUI_DIR)/imgui.cpp $(IMGUI_DIR)/imgui_demo.cpp $(IMGUI_DIR)/imgui_draw.cpp $(IMGUI_DIR)/imgui_tables.cpp $(IMGUI_DIR)/imgui_widgets.cpp
-SOURCES += $(IMGUI_DIR)/backends/imgui_impl_glfw.cpp $(IMGUI_DIR)/backends/imgui_impl_opengl3.cpp
-OBJS = $(addsuffix .o, $(basename $(notdir $(SOURCES))))
-UNAME_S := $(shell uname -s)
-LINUX_GL_LIBS = -lGL
-
-CXXFLAGS = -std=c++11 -I$(IMGUI_DIR) -I$(IMGUI_DIR)/backends
-CXXFLAGS += -g -Wall -Wformat
-LIBS =
-
-##---------------------------------------------------------------------
-## OPENGL ES
-##---------------------------------------------------------------------
-
-## This assumes a GL ES library available in the system, e.g. libGLESv2.so
-# CXXFLAGS += -DIMGUI_IMPL_OPENGL_ES2
-# LINUX_GL_LIBS = -lGLESv2
-
-##---------------------------------------------------------------------
-## BUILD FLAGS PER PLATFORM
-##---------------------------------------------------------------------
-
-ifeq ($(UNAME_S), Linux) #LINUX
- ECHO_MESSAGE = "Linux"
- LIBS += $(LINUX_GL_LIBS) `pkg-config --static --libs glfw3`
-
- CXXFLAGS += `pkg-config --cflags glfw3`
- CFLAGS = $(CXXFLAGS)
-endif
-
-ifeq ($(UNAME_S), Darwin) #APPLE
- ECHO_MESSAGE = "Mac OS X"
- LIBS += -framework OpenGL -framework Cocoa -framework IOKit -framework CoreVideo
- LIBS += -L/usr/local/lib -L/opt/local/lib -L/opt/homebrew/lib
- #LIBS += -lglfw3
- LIBS += -lglfw
-
- CXXFLAGS += -I/usr/local/include -I/opt/local/include -I/opt/homebrew/include
- CFLAGS = $(CXXFLAGS)
-endif
-
-ifeq ($(OS), Windows_NT)
- ECHO_MESSAGE = "MinGW"
- LIBS += -lglfw3 -lgdi32 -lopengl32 -limm32
-
- CXXFLAGS += `pkg-config --cflags glfw3`
- CFLAGS = $(CXXFLAGS)
-endif
-
-##---------------------------------------------------------------------
-## BUILD RULES
-##---------------------------------------------------------------------
-
-%.o:%.cpp
- $(CXX) $(CXXFLAGS) -c -o $@ $<
-
-%.o:$(IMGUI_DIR)/%.cpp
- $(CXX) $(CXXFLAGS) -c -o $@ $<
-
-%.o:$(IMGUI_DIR)/backends/%.cpp
- $(CXX) $(CXXFLAGS) -c -o $@ $<
-
-all: $(EXE)
- @echo Build complete for $(ECHO_MESSAGE)
-
-$(EXE): $(OBJS)
- $(CXX) -o $@ $^ $(CXXFLAGS) $(LIBS)
-
-clean:
- rm -f $(EXE) $(OBJS)
diff --git a/imgui-1.92.1/examples/example_glfw_opengl3/Makefile.emscripten b/imgui-1.92.1/examples/example_glfw_opengl3/Makefile.emscripten
deleted file mode 100644
index 8d2f6e7..0000000
--- a/imgui-1.92.1/examples/example_glfw_opengl3/Makefile.emscripten
+++ /dev/null
@@ -1,95 +0,0 @@
-#
-# Makefile to use with GLFW+emscripten
-# See https://emscripten.org/docs/getting_started/downloads.html
-# for installation instructions.
-#
-# This Makefile assumes you have loaded emscripten's environment.
-# (On Windows, you may need to execute emsdk_env.bat or encmdprompt.bat ahead)
-#
-# Running `make -f Makefile.emscripten` will produce three files:
-# - web/index.html
-# - web/index.js
-# - web/index.wasm
-#
-# All three are needed to run the demo.
-
-CC = emcc
-CXX = em++
-WEB_DIR = web
-EXE = $(WEB_DIR)/index.html
-IMGUI_DIR = ../..
-SOURCES = main.cpp
-SOURCES += $(IMGUI_DIR)/imgui.cpp $(IMGUI_DIR)/imgui_demo.cpp $(IMGUI_DIR)/imgui_draw.cpp $(IMGUI_DIR)/imgui_tables.cpp $(IMGUI_DIR)/imgui_widgets.cpp
-SOURCES += $(IMGUI_DIR)/backends/imgui_impl_glfw.cpp $(IMGUI_DIR)/backends/imgui_impl_opengl3.cpp
-OBJS = $(addsuffix .o, $(basename $(notdir $(SOURCES))))
-UNAME_S := $(shell uname -s)
-CPPFLAGS =
-LDFLAGS =
-EMS =
-
-##---------------------------------------------------------------------
-## EMSCRIPTEN OPTIONS
-##---------------------------------------------------------------------
-
-# ("EMS" options gets added to both CPPFLAGS and LDFLAGS, whereas some options are for linker only)
-# Note: For glfw, we use emscripten-glfw port (contrib.glfw3) instead of ('-s USE_GLFW=3' in LDFLAGS) to get a better support for High DPI displays.
-EMS += -s DISABLE_EXCEPTION_CATCHING=1 --use-port=contrib.glfw3
-LDFLAGS += -s WASM=1 -s ALLOW_MEMORY_GROWTH=1 -s NO_EXIT_RUNTIME=0 -s ASSERTIONS=1
-
-# Build as single file (binary text encoded in .html file)
-#LDFLAGS += -sSINGLE_FILE
-
-# Uncomment next line to fix possible rendering bugs with Emscripten version older then 1.39.0 (https://github.com/ocornut/imgui/issues/2877)
-#EMS += -s BINARYEN_TRAP_MODE=clamp
-#EMS += -s SAFE_HEAP=1 ## Adds overhead
-
-# Emscripten allows preloading a file or folder to be accessible at runtime.
-# The Makefile for this example project suggests embedding the misc/fonts/ folder into our application, it will then be accessible as "/fonts"
-# See documentation for more details: https://emscripten.org/docs/porting/files/packaging_files.html
-# (Default value is 0. Set to 1 to enable file-system and include the misc/fonts/ folder as part of the build.)
-USE_FILE_SYSTEM ?= 0
-ifeq ($(USE_FILE_SYSTEM), 0)
-LDFLAGS += -s NO_FILESYSTEM=1
-CPPFLAGS += -DIMGUI_DISABLE_FILE_FUNCTIONS
-endif
-ifeq ($(USE_FILE_SYSTEM), 1)
-LDFLAGS += --no-heap-copy --preload-file ../../misc/fonts@/fonts
-endif
-
-##---------------------------------------------------------------------
-## FINAL BUILD FLAGS
-##---------------------------------------------------------------------
-
-CPPFLAGS += -I$(IMGUI_DIR) -I$(IMGUI_DIR)/backends
-#CPPFLAGS += -g
-CPPFLAGS += -Wall -Wformat -Os $(EMS)
-LDFLAGS += --shell-file ../libs/emscripten/shell_minimal.html
-LDFLAGS += $(EMS)
-
-##---------------------------------------------------------------------
-## BUILD RULES
-##---------------------------------------------------------------------
-
-%.o:%.cpp
- $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c -o $@ $<
-
-%.o:$(IMGUI_DIR)/%.cpp
- $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c -o $@ $<
-
-%.o:$(IMGUI_DIR)/backends/%.cpp
- $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c -o $@ $<
-
-all: $(EXE)
- @echo Build complete for $(EXE)
-
-$(WEB_DIR):
- mkdir $@
-
-serve: all
- python3 -m http.server -d $(WEB_DIR)
-
-$(EXE): $(OBJS) $(WEB_DIR)
- $(CXX) -o $@ $(OBJS) $(LDFLAGS)
-
-clean:
- rm -rf $(OBJS) $(WEB_DIR)
diff --git a/imgui-1.92.1/examples/example_glfw_opengl3/build_win32.bat b/imgui-1.92.1/examples/example_glfw_opengl3/build_win32.bat
deleted file mode 100644
index b5979ad..0000000
--- a/imgui-1.92.1/examples/example_glfw_opengl3/build_win32.bat
+++ /dev/null
@@ -1,8 +0,0 @@
-@REM Build for Visual Studio compiler. Run your copy of vcvars32.bat or vcvarsall.bat to setup command-line compiler.
-@set OUT_DIR=Debug
-@set OUT_EXE=example_glfw_opengl3
-@set INCLUDES=/I..\.. /I..\..\backends /I..\libs\glfw\include
-@set SOURCES=main.cpp ..\..\backends\imgui_impl_glfw.cpp ..\..\backends\imgui_impl_opengl3.cpp ..\..\imgui*.cpp
-@set LIBS=/LIBPATH:..\libs\glfw\lib-vc2010-32 glfw3.lib opengl32.lib gdi32.lib shell32.lib
-mkdir %OUT_DIR%
-cl /nologo /Zi /MD /utf-8 %INCLUDES% %SOURCES% /Fe%OUT_DIR%/%OUT_EXE%.exe /Fo%OUT_DIR%/ /link %LIBS%
diff --git a/imgui-1.92.1/examples/example_glfw_opengl3/example_glfw_opengl3.vcxproj b/imgui-1.92.1/examples/example_glfw_opengl3/example_glfw_opengl3.vcxproj
deleted file mode 100644
index 4bd503a..0000000
--- a/imgui-1.92.1/examples/example_glfw_opengl3/example_glfw_opengl3.vcxproj
+++ /dev/null
@@ -1,187 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="Debug|Win32">
- <Configuration>Debug</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Debug|x64">
- <Configuration>Debug</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|Win32">
- <Configuration>Release</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|x64">
- <Configuration>Release</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- </ItemGroup>
- <PropertyGroup Label="Globals">
- <ProjectGuid>{4a1fb5ea-22f5-42a8-ab92-1d2df5d47fb9}</ProjectGuid>
- <RootNamespace>example_glfw_opengl3</RootNamespace>
- <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>true</UseDebugLibraries>
- <CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>true</UseDebugLibraries>
- <CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>false</UseDebugLibraries>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- <CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>false</UseDebugLibraries>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- <CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
- <ImportGroup Label="ExtensionSettings">
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <PropertyGroup Label="UserMacros" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <OutDir>$(ProjectDir)$(Configuration)\</OutDir>
- <IntDir>$(ProjectDir)$(Configuration)\</IntDir>
- <IncludePath>$(IncludePath)</IncludePath>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <OutDir>$(ProjectDir)$(Configuration)\</OutDir>
- <IntDir>$(ProjectDir)$(Configuration)\</IntDir>
- <IncludePath>$(IncludePath)</IncludePath>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <OutDir>$(ProjectDir)$(Configuration)\</OutDir>
- <IntDir>$(ProjectDir)$(Configuration)\</IntDir>
- <IncludePath>$(IncludePath)</IncludePath>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <OutDir>$(ProjectDir)$(Configuration)\</OutDir>
- <IntDir>$(ProjectDir)$(Configuration)\</IntDir>
- <IncludePath>$(IncludePath)</IncludePath>
- </PropertyGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <ClCompile>
- <WarningLevel>Level4</WarningLevel>
- <Optimization>Disabled</Optimization>
- <AdditionalIncludeDirectories>..\..;..\..\backends;..\libs\glfw\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
- </ClCompile>
- <Link>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <AdditionalLibraryDirectories>..\libs\glfw\lib-vc2010-32;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
- <AdditionalDependencies>opengl32.lib;glfw3.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <SubSystem>Console</SubSystem>
- <IgnoreSpecificDefaultLibraries>msvcrt.lib</IgnoreSpecificDefaultLibraries>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <ClCompile>
- <WarningLevel>Level4</WarningLevel>
- <Optimization>Disabled</Optimization>
- <AdditionalIncludeDirectories>..\..;..\..\backends;..\libs\glfw\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
- </ClCompile>
- <Link>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <AdditionalLibraryDirectories>..\libs\glfw\lib-vc2010-64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
- <AdditionalDependencies>opengl32.lib;glfw3.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <SubSystem>Console</SubSystem>
- <IgnoreSpecificDefaultLibraries>msvcrt.lib</IgnoreSpecificDefaultLibraries>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <ClCompile>
- <WarningLevel>Level4</WarningLevel>
- <Optimization>MaxSpeed</Optimization>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <IntrinsicFunctions>true</IntrinsicFunctions>
- <AdditionalIncludeDirectories>..\..;..\..\backends;..\libs\glfw\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <BufferSecurityCheck>false</BufferSecurityCheck>
- <AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
- </ClCompile>
- <Link>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- <OptimizeReferences>true</OptimizeReferences>
- <AdditionalLibraryDirectories>..\libs\glfw\lib-vc2010-32;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
- <AdditionalDependencies>opengl32.lib;glfw3.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <SubSystem>Console</SubSystem>
- <IgnoreSpecificDefaultLibraries>
- </IgnoreSpecificDefaultLibraries>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <ClCompile>
- <WarningLevel>Level4</WarningLevel>
- <Optimization>MaxSpeed</Optimization>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <IntrinsicFunctions>true</IntrinsicFunctions>
- <AdditionalIncludeDirectories>..\..;..\..\backends;..\libs\glfw\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <BufferSecurityCheck>false</BufferSecurityCheck>
- <AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
- </ClCompile>
- <Link>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- <OptimizeReferences>true</OptimizeReferences>
- <AdditionalLibraryDirectories>..\libs\glfw\lib-vc2010-64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
- <AdditionalDependencies>opengl32.lib;glfw3.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <SubSystem>Console</SubSystem>
- <IgnoreSpecificDefaultLibraries>
- </IgnoreSpecificDefaultLibraries>
- </Link>
- </ItemDefinitionGroup>
- <ItemGroup>
- <ClCompile Include="..\..\imgui.cpp" />
- <ClCompile Include="..\..\imgui_demo.cpp" />
- <ClCompile Include="..\..\imgui_draw.cpp" />
- <ClCompile Include="..\..\imgui_tables.cpp" />
- <ClCompile Include="..\..\imgui_widgets.cpp" />
- <ClCompile Include="..\..\backends\imgui_impl_glfw.cpp" />
- <ClCompile Include="..\..\backends\imgui_impl_opengl3.cpp" />
- <ClCompile Include="main.cpp" />
- </ItemGroup>
- <ItemGroup>
- <ClInclude Include="..\..\imconfig.h" />
- <ClInclude Include="..\..\imgui.h" />
- <ClInclude Include="..\..\imgui_internal.h" />
- <ClInclude Include="..\..\backends\imgui_impl_glfw.h" />
- <ClInclude Include="..\..\backends\imgui_impl_opengl3.h" />
- <ClInclude Include="..\..\backends\imgui_impl_opengl3_loader.h" />
- </ItemGroup>
- <ItemGroup>
- <None Include="..\..\misc\debuggers\imgui.natstepfilter" />
- <None Include="..\..\misc\debuggers\imgui.natvis" />
- <None Include="..\README.txt" />
- </ItemGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
- <ImportGroup Label="ExtensionTargets">
- </ImportGroup>
-</Project> \ No newline at end of file
diff --git a/imgui-1.92.1/examples/example_glfw_opengl3/example_glfw_opengl3.vcxproj.filters b/imgui-1.92.1/examples/example_glfw_opengl3/example_glfw_opengl3.vcxproj.filters
deleted file mode 100644
index bc79bb1..0000000
--- a/imgui-1.92.1/examples/example_glfw_opengl3/example_glfw_opengl3.vcxproj.filters
+++ /dev/null
@@ -1,67 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup>
- <Filter Include="imgui">
- <UniqueIdentifier>{20b90ce4-7fcb-4731-b9a0-075f875de82d}</UniqueIdentifier>
- </Filter>
- <Filter Include="sources">
- <UniqueIdentifier>{f18ab499-84e1-499f-8eff-9754361e0e52}</UniqueIdentifier>
- <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
- </Filter>
- </ItemGroup>
- <ItemGroup>
- <ClCompile Include="main.cpp">
- <Filter>sources</Filter>
- </ClCompile>
- <ClCompile Include="..\..\imgui.cpp">
- <Filter>imgui</Filter>
- </ClCompile>
- <ClCompile Include="..\..\imgui_demo.cpp">
- <Filter>imgui</Filter>
- </ClCompile>
- <ClCompile Include="..\..\imgui_draw.cpp">
- <Filter>imgui</Filter>
- </ClCompile>
- <ClCompile Include="..\..\imgui_tables.cpp">
- <Filter>imgui</Filter>
- </ClCompile>
- <ClCompile Include="..\..\imgui_widgets.cpp">
- <Filter>imgui</Filter>
- </ClCompile>
- <ClCompile Include="..\..\backends\imgui_impl_glfw.cpp">
- <Filter>sources</Filter>
- </ClCompile>
- <ClCompile Include="..\..\backends\imgui_impl_opengl3.cpp">
- <Filter>sources</Filter>
- </ClCompile>
- </ItemGroup>
- <ItemGroup>
- <ClInclude Include="..\..\imconfig.h">
- <Filter>imgui</Filter>
- </ClInclude>
- <ClInclude Include="..\..\imgui.h">
- <Filter>imgui</Filter>
- </ClInclude>
- <ClInclude Include="..\..\imgui_internal.h">
- <Filter>imgui</Filter>
- </ClInclude>
- <ClInclude Include="..\..\backends\imgui_impl_glfw.h">
- <Filter>sources</Filter>
- </ClInclude>
- <ClInclude Include="..\..\backends\imgui_impl_opengl3.h">
- <Filter>sources</Filter>
- </ClInclude>
- <ClInclude Include="..\..\backends\imgui_impl_opengl3_loader.h">
- <Filter>sources</Filter>
- </ClInclude>
- </ItemGroup>
- <ItemGroup>
- <None Include="..\README.txt" />
- <None Include="..\..\misc\debuggers\imgui.natvis">
- <Filter>imgui</Filter>
- </None>
- <None Include="..\..\misc\debuggers\imgui.natstepfilter">
- <Filter>imgui</Filter>
- </None>
- </ItemGroup>
-</Project> \ No newline at end of file
diff --git a/imgui-1.92.1/examples/example_glfw_opengl3/main.cpp b/imgui-1.92.1/examples/example_glfw_opengl3/main.cpp
deleted file mode 100644
index 4bd7bc5..0000000
--- a/imgui-1.92.1/examples/example_glfw_opengl3/main.cpp
+++ /dev/null
@@ -1,214 +0,0 @@
-// Dear ImGui: standalone example application for GLFW + OpenGL 3, using programmable pipeline
-// (GLFW is a cross-platform general purpose library for handling windows, inputs, OpenGL/Vulkan/Metal graphics context creation, etc.)
-
-// Learn about Dear ImGui:
-// - FAQ https://dearimgui.com/faq
-// - Getting Started https://dearimgui.com/getting-started
-// - Documentation https://dearimgui.com/docs (same as your local docs/ folder).
-// - Introduction, links and more at the top of imgui.cpp
-
-#include "imgui.h"
-#include "imgui_impl_glfw.h"
-#include "imgui_impl_opengl3.h"
-#include <stdio.h>
-#define GL_SILENCE_DEPRECATION
-#if defined(IMGUI_IMPL_OPENGL_ES2)
-#include <GLES2/gl2.h>
-#endif
-#include <GLFW/glfw3.h> // Will drag system OpenGL headers
-
-// [Win32] Our example includes a copy of glfw3.lib pre-compiled with VS2010 to maximize ease of testing and compatibility with old VS compilers.
-// To link with VS2010-era libraries, VS2015+ requires linking with legacy_stdio_definitions.lib, which we do using this pragma.
-// Your own project should not be affected, as you are likely to link with a newer binary of GLFW that is adequate for your version of Visual Studio.
-#if defined(_MSC_VER) && (_MSC_VER >= 1900) && !defined(IMGUI_DISABLE_WIN32_FUNCTIONS)
-#pragma comment(lib, "legacy_stdio_definitions")
-#endif
-
-// This example can also compile and run with Emscripten! See 'Makefile.emscripten' for details.
-#ifdef __EMSCRIPTEN__
-#include "../libs/emscripten/emscripten_mainloop_stub.h"
-#endif
-
-static void glfw_error_callback(int error, const char* description)
-{
- fprintf(stderr, "GLFW Error %d: %s\n", error, description);
-}
-
-// Main code
-int main(int, char**)
-{
- glfwSetErrorCallback(glfw_error_callback);
- if (!glfwInit())
- return 1;
-
- // Decide GL+GLSL versions
-#if defined(IMGUI_IMPL_OPENGL_ES2)
- // GL ES 2.0 + GLSL 100 (WebGL 1.0)
- const char* glsl_version = "#version 100";
- glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 2);
- glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 0);
- glfwWindowHint(GLFW_CLIENT_API, GLFW_OPENGL_ES_API);
-#elif defined(IMGUI_IMPL_OPENGL_ES3)
- // GL ES 3.0 + GLSL 300 es (WebGL 2.0)
- const char* glsl_version = "#version 300 es";
- glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
- glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 0);
- glfwWindowHint(GLFW_CLIENT_API, GLFW_OPENGL_ES_API);
-#elif defined(__APPLE__)
- // GL 3.2 + GLSL 150
- const char* glsl_version = "#version 150";
- glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
- glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 2);
- glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE); // 3.2+ only
- glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE); // Required on Mac
-#else
- // GL 3.0 + GLSL 130
- const char* glsl_version = "#version 130";
- glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
- glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 0);
- //glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE); // 3.2+ only
- //glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE); // 3.0+ only
-#endif
-
- // Create window with graphics context
- float main_scale = ImGui_ImplGlfw_GetContentScaleForMonitor(glfwGetPrimaryMonitor()); // Valid on GLFW 3.3+ only
- GLFWwindow* window = glfwCreateWindow((int)(1280 * main_scale), (int)(800 * main_scale), "Dear ImGui GLFW+OpenGL3 example", nullptr, nullptr);
- if (window == nullptr)
- return 1;
- glfwMakeContextCurrent(window);
- glfwSwapInterval(1); // Enable vsync
-
- // Setup Dear ImGui context
- IMGUI_CHECKVERSION();
- ImGui::CreateContext();
- ImGuiIO& io = ImGui::GetIO(); (void)io;
- io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard; // Enable Keyboard Controls
- io.ConfigFlags |= ImGuiConfigFlags_NavEnableGamepad; // Enable Gamepad Controls
-
- // Setup Dear ImGui style
- ImGui::StyleColorsDark();
- //ImGui::StyleColorsLight();
-
- // Setup scaling
- ImGuiStyle& style = ImGui::GetStyle();
- style.ScaleAllSizes(main_scale); // Bake a fixed style scale. (until we have a solution for dynamic style scaling, changing this requires resetting Style + calling this again)
- style.FontScaleDpi = main_scale; // Set initial font scale. (using io.ConfigDpiScaleFonts=true makes this unnecessary. We leave both here for documentation purpose)
-
- // Setup Platform/Renderer backends
- ImGui_ImplGlfw_InitForOpenGL(window, true);
-#ifdef __EMSCRIPTEN__
- ImGui_ImplGlfw_InstallEmscriptenCallbacks(window, "#canvas");
-#endif
- ImGui_ImplOpenGL3_Init(glsl_version);
-
- // Load Fonts
- // - If no fonts are loaded, dear imgui will use the default font. You can also load multiple fonts and use ImGui::PushFont()/PopFont() to select them.
- // - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
- // - If the file cannot be loaded, the function will return a nullptr. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
- // - Use '#define IMGUI_ENABLE_FREETYPE' in your imconfig file to use Freetype for higher quality font rendering.
- // - Read 'docs/FONTS.md' for more instructions and details.
- // - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
- // - Our Emscripten build process allows embedding fonts to be accessible at runtime from the "fonts/" folder. See Makefile.emscripten for details.
- //style.FontSizeBase = 20.0f;
- //io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\segoeui.ttf");
- //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf");
- //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf");
- //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf");
- //ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf");
- //IM_ASSERT(font != nullptr);
-
- // Our state
- bool show_demo_window = true;
- bool show_another_window = false;
- ImVec4 clear_color = ImVec4(0.45f, 0.55f, 0.60f, 1.00f);
-
- // Main loop
-#ifdef __EMSCRIPTEN__
- // For an Emscripten build we are disabling file-system access, so let's not attempt to do a fopen() of the imgui.ini file.
- // You may manually call LoadIniSettingsFromMemory() to load settings from your own storage.
- io.IniFilename = nullptr;
- EMSCRIPTEN_MAINLOOP_BEGIN
-#else
- while (!glfwWindowShouldClose(window))
-#endif
- {
- // Poll and handle events (inputs, window resize, etc.)
- // You can read the io.WantCaptureMouse, io.WantCaptureKeyboard flags to tell if dear imgui wants to use your inputs.
- // - When io.WantCaptureMouse is true, do not dispatch mouse input data to your main application, or clear/overwrite your copy of the mouse data.
- // - When io.WantCaptureKeyboard is true, do not dispatch keyboard input data to your main application, or clear/overwrite your copy of the keyboard data.
- // Generally you may always pass all inputs to dear imgui, and hide them from your application based on those two flags.
- glfwPollEvents();
- if (glfwGetWindowAttrib(window, GLFW_ICONIFIED) != 0)
- {
- ImGui_ImplGlfw_Sleep(10);
- continue;
- }
-
- // Start the Dear ImGui frame
- ImGui_ImplOpenGL3_NewFrame();
- ImGui_ImplGlfw_NewFrame();
- ImGui::NewFrame();
-
- // 1. Show the big demo window (Most of the sample code is in ImGui::ShowDemoWindow()! You can browse its code to learn more about Dear ImGui!).
- if (show_demo_window)
- ImGui::ShowDemoWindow(&show_demo_window);
-
- // 2. Show a simple window that we create ourselves. We use a Begin/End pair to create a named window.
- {
- static float f = 0.0f;
- static int counter = 0;
-
- ImGui::Begin("Hello, world!"); // Create a window called "Hello, world!" and append into it.
-
- ImGui::Text("This is some useful text."); // Display some text (you can use a format strings too)
- ImGui::Checkbox("Demo Window", &show_demo_window); // Edit bools storing our window open/close state
- ImGui::Checkbox("Another Window", &show_another_window);
-
- ImGui::SliderFloat("float", &f, 0.0f, 1.0f); // Edit 1 float using a slider from 0.0f to 1.0f
- ImGui::ColorEdit3("clear color", (float*)&clear_color); // Edit 3 floats representing a color
-
- if (ImGui::Button("Button")) // Buttons return true when clicked (most widgets return true when edited/activated)
- counter++;
- ImGui::SameLine();
- ImGui::Text("counter = %d", counter);
-
- ImGui::Text("Application average %.3f ms/frame (%.1f FPS)", 1000.0f / io.Framerate, io.Framerate);
- ImGui::End();
- }
-
- // 3. Show another simple window.
- if (show_another_window)
- {
- ImGui::Begin("Another Window", &show_another_window); // Pass a pointer to our bool variable (the window will have a closing button that will clear the bool when clicked)
- ImGui::Text("Hello from another window!");
- if (ImGui::Button("Close Me"))
- show_another_window = false;
- ImGui::End();
- }
-
- // Rendering
- ImGui::Render();
- int display_w, display_h;
- glfwGetFramebufferSize(window, &display_w, &display_h);
- glViewport(0, 0, display_w, display_h);
- glClearColor(clear_color.x * clear_color.w, clear_color.y * clear_color.w, clear_color.z * clear_color.w, clear_color.w);
- glClear(GL_COLOR_BUFFER_BIT);
- ImGui_ImplOpenGL3_RenderDrawData(ImGui::GetDrawData());
-
- glfwSwapBuffers(window);
- }
-#ifdef __EMSCRIPTEN__
- EMSCRIPTEN_MAINLOOP_END;
-#endif
-
- // Cleanup
- ImGui_ImplOpenGL3_Shutdown();
- ImGui_ImplGlfw_Shutdown();
- ImGui::DestroyContext();
-
- glfwDestroyWindow(window);
- glfwTerminate();
-
- return 0;
-}
diff --git a/imgui-1.92.1/examples/example_glfw_vulkan/CMakeLists.txt b/imgui-1.92.1/examples/example_glfw_vulkan/CMakeLists.txt
deleted file mode 100644
index 75475db..0000000
--- a/imgui-1.92.1/examples/example_glfw_vulkan/CMakeLists.txt
+++ /dev/null
@@ -1,47 +0,0 @@
-# Example usage:
-# mkdir build
-# cd build
-# cmake -g "Visual Studio 14 2015" ..
-
-cmake_minimum_required(VERSION 2.8)
-project(imgui_example_glfw_vulkan C CXX)
-
-if(NOT CMAKE_BUILD_TYPE)
- set(CMAKE_BUILD_TYPE Debug CACHE STRING "" FORCE)
-endif()
-
-set(CMAKE_CXX_STANDARD 11)
-set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DVK_PROTOTYPES")
-set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DVK_PROTOTYPES")
-
-# GLFW
-if(NOT GLFW_DIR)
- set(GLFW_DIR ../../../glfw) # Set this to point to an up-to-date GLFW repo
-endif()
-option(GLFW_BUILD_EXAMPLES "Build the GLFW example programs" OFF)
-option(GLFW_BUILD_TESTS "Build the GLFW test programs" OFF)
-option(GLFW_BUILD_DOCS "Build the GLFW documentation" OFF)
-option(GLFW_INSTALL "Generate installation target" OFF)
-option(GLFW_DOCUMENT_INTERNALS "Include internals in documentation" OFF)
-add_subdirectory(${GLFW_DIR} binary_dir EXCLUDE_FROM_ALL)
-include_directories(${GLFW_DIR}/include)
-
-# Dear ImGui
-set(IMGUI_DIR ../../)
-include_directories(${IMGUI_DIR} ${IMGUI_DIR}/backends ..)
-
-# Libraries
-find_package(Vulkan REQUIRED)
-#find_library(VULKAN_LIBRARY
- #NAMES vulkan vulkan-1)
-#set(LIBRARIES "glfw;${VULKAN_LIBRARY}")
-set(LIBRARIES "glfw;Vulkan::Vulkan")
-
-# Use vulkan headers from glfw:
-include_directories(${GLFW_DIR}/deps)
-
-file(GLOB sources *.cpp)
-
-add_executable(example_glfw_vulkan ${sources} ${IMGUI_DIR}/backends/imgui_impl_glfw.cpp ${IMGUI_DIR}/backends/imgui_impl_vulkan.cpp ${IMGUI_DIR}/imgui.cpp ${IMGUI_DIR}/imgui_draw.cpp ${IMGUI_DIR}/imgui_demo.cpp ${IMGUI_DIR}/imgui_tables.cpp ${IMGUI_DIR}/imgui_widgets.cpp)
-target_link_libraries(example_glfw_vulkan ${LIBRARIES})
-
diff --git a/imgui-1.92.1/examples/example_glfw_vulkan/Makefile b/imgui-1.92.1/examples/example_glfw_vulkan/Makefile
deleted file mode 100644
index 1a84082..0000000
--- a/imgui-1.92.1/examples/example_glfw_vulkan/Makefile
+++ /dev/null
@@ -1,83 +0,0 @@
-#
-# Cross Platform Makefile
-# Compatible with MSYS2/MINGW, Ubuntu 14.04.1 and Mac OS X
-#
-# You will need GLFW (http://www.glfw.org):
-# Linux:
-# apt-get install libglfw-dev
-# Mac OS X:
-# brew install glfw
-# MSYS2:
-# pacman -S --noconfirm --needed mingw-w64-x86_64-toolchain mingw-w64-x86_64-glfw
-#
-
-#CXX = g++
-#CXX = clang++
-
-EXE = example_glfw_vulkan
-IMGUI_DIR = ../..
-SOURCES = main.cpp
-SOURCES += $(IMGUI_DIR)/imgui.cpp $(IMGUI_DIR)/imgui_demo.cpp $(IMGUI_DIR)/imgui_draw.cpp $(IMGUI_DIR)/imgui_tables.cpp $(IMGUI_DIR)/imgui_widgets.cpp
-SOURCES += $(IMGUI_DIR)/backends/imgui_impl_glfw.cpp $(IMGUI_DIR)/backends/imgui_impl_vulkan.cpp
-OBJS = $(addsuffix .o, $(basename $(notdir $(SOURCES))))
-UNAME_S := $(shell uname -s)
-LINUX_GL_LIBS = -lGL
-
-CXXFLAGS = -std=c++11 -I$(IMGUI_DIR) -I$(IMGUI_DIR)/backends
-CXXFLAGS += -g -Wall -Wformat
-LIBS =
-
-##---------------------------------------------------------------------
-## BUILD FLAGS PER PLATFORM
-##---------------------------------------------------------------------
-
-ifeq ($(UNAME_S), Linux) #LINUX
- ECHO_MESSAGE = "Linux"
- LIBS += $(LINUX_GL_LIBS) `pkg-config --static --libs glfw3 vulkan`
-
- CXXFLAGS += `pkg-config --cflags glfw3 vulkan`
- CFLAGS = $(CXXFLAGS)
-endif
-
-ifeq ($(UNAME_S), Darwin) #APPLE
- ECHO_MESSAGE = "Mac OS X"
- LIBS += -framework Cocoa -framework IOKit -framework CoreVideo
- LIBS += `pkg-config --libs glfw3 vulkan`
- LIBS += -L/usr/local/lib -L/opt/local/lib -L/opt/homebrew/lib
- #LIBS += -lglfw3
-
- LIBS += `pkg-config --cflags glfw3 vulkan`
- CXXFLAGS += -I/usr/local/include -I/opt/local/include -I/opt/homebrew/include
- CFLAGS = $(CXXFLAGS)
-endif
-
-ifeq ($(OS), Windows_NT)
- ECHO_MESSAGE = "MinGW"
- LIBS += -lgdi32 -limm32
- LIBS += `pkg-config --libs glfw3 vulkan`
-
- CXXFLAGS += `pkg-config --cflags glfw3 vulkan`
- CFLAGS = $(CXXFLAGS)
-endif
-
-##---------------------------------------------------------------------
-## BUILD RULES
-##---------------------------------------------------------------------
-
-%.o:%.cpp
- $(CXX) $(CXXFLAGS) -c -o $@ $<
-
-%.o:$(IMGUI_DIR)/%.cpp
- $(CXX) $(CXXFLAGS) -c -o $@ $<
-
-%.o:$(IMGUI_DIR)/backends/%.cpp
- $(CXX) $(CXXFLAGS) -c -o $@ $<
-
-all: $(EXE)
- @echo Build complete for $(ECHO_MESSAGE)
-
-$(EXE): $(OBJS)
- $(CXX) -o $@ $^ $(CXXFLAGS) $(LIBS)
-
-clean:
- rm -f $(EXE) $(OBJS)
diff --git a/imgui-1.92.1/examples/example_glfw_vulkan/build_win32.bat b/imgui-1.92.1/examples/example_glfw_vulkan/build_win32.bat
deleted file mode 100644
index bb54a42..0000000
--- a/imgui-1.92.1/examples/example_glfw_vulkan/build_win32.bat
+++ /dev/null
@@ -1,14 +0,0 @@
-@REM Build for Visual Studio compiler. Run your copy of vcvars32.bat or vcvarsall.bat to setup command-line compiler.
-
-@set OUT_EXE=example_glfw_vulkan
-@set INCLUDES=/I..\.. /I..\..\backends /I..\libs\glfw\include /I %VULKAN_SDK%\include
-@set SOURCES=main.cpp ..\..\backends\imgui_impl_vulkan.cpp ..\..\backends\imgui_impl_glfw.cpp ..\..\imgui*.cpp
-@set LIBS=/LIBPATH:..\libs\glfw\lib-vc2010-32 /libpath:%VULKAN_SDK%\lib32 glfw3.lib opengl32.lib gdi32.lib shell32.lib vulkan-1.lib
-
-@set OUT_DIR=Debug
-mkdir %OUT_DIR%
-cl /nologo /Zi /MD /utf-8 %INCLUDES% %SOURCES% /Fe%OUT_DIR%/%OUT_EXE%.exe /Fo%OUT_DIR%/ /link %LIBS%
-
-@set OUT_DIR=Release
-mkdir %OUT_DIR%
-cl /nologo /Zi /MD /utf-8 /Ox /Oi %INCLUDES% %SOURCES% /Fe%OUT_DIR%/%OUT_EXE%.exe /Fo%OUT_DIR%/ /link %LIBS%
diff --git a/imgui-1.92.1/examples/example_glfw_vulkan/build_win64.bat b/imgui-1.92.1/examples/example_glfw_vulkan/build_win64.bat
deleted file mode 100644
index ca9b788..0000000
--- a/imgui-1.92.1/examples/example_glfw_vulkan/build_win64.bat
+++ /dev/null
@@ -1,14 +0,0 @@
-@REM Build for Visual Studio compiler. Run your copy of vcvars64.bat or vcvarsall.bat to setup 64-bit command-line compiler.
-
-@set OUT_EXE=example_glfw_vulkan
-@set INCLUDES=/I..\.. /I..\..\backends /I..\libs\glfw\include /I %VULKAN_SDK%\include
-@set SOURCES=main.cpp ..\..\backends\imgui_impl_vulkan.cpp ..\..\backends\imgui_impl_glfw.cpp ..\..\imgui*.cpp
-@set LIBS=/LIBPATH:..\libs\glfw\lib-vc2010-64 /libpath:%VULKAN_SDK%\lib glfw3.lib opengl32.lib gdi32.lib shell32.lib vulkan-1.lib
-
-@set OUT_DIR=Debug
-mkdir %OUT_DIR%
-cl /nologo /Zi /MD /utf-8 %INCLUDES% %SOURCES% /Fe%OUT_DIR%/%OUT_EXE%.exe /Fo%OUT_DIR%/ /link %LIBS%
-
-@set OUT_DIR=Release
-mkdir %OUT_DIR%
-cl /nologo /Zi /MD /utf-8 /Ox /Oi %INCLUDES% %SOURCES% /Fe%OUT_DIR%/%OUT_EXE%.exe /Fo%OUT_DIR%/ /link %LIBS%
diff --git a/imgui-1.92.1/examples/example_glfw_vulkan/example_glfw_vulkan.vcxproj b/imgui-1.92.1/examples/example_glfw_vulkan/example_glfw_vulkan.vcxproj
deleted file mode 100644
index a81d328..0000000
--- a/imgui-1.92.1/examples/example_glfw_vulkan/example_glfw_vulkan.vcxproj
+++ /dev/null
@@ -1,190 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="Debug|Win32">
- <Configuration>Debug</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Debug|x64">
- <Configuration>Debug</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|Win32">
- <Configuration>Release</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|x64">
- <Configuration>Release</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- </ItemGroup>
- <PropertyGroup Label="Globals">
- <ProjectGuid>{57E2DF5A-6FC8-45BB-99DD-91A18C646E80}</ProjectGuid>
- <RootNamespace>example_glfw_vulkan</RootNamespace>
- <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>true</UseDebugLibraries>
- <CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>true</UseDebugLibraries>
- <CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>false</UseDebugLibraries>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- <CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>false</UseDebugLibraries>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- <CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
- <ImportGroup Label="ExtensionSettings">
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <PropertyGroup Label="UserMacros" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <OutDir>$(ProjectDir)$(Configuration)\</OutDir>
- <IntDir>$(ProjectDir)$(Configuration)\</IntDir>
- <IncludePath>$(IncludePath)</IncludePath>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <OutDir>$(ProjectDir)$(Configuration)\</OutDir>
- <IntDir>$(ProjectDir)$(Configuration)\</IntDir>
- <IncludePath>$(IncludePath)</IncludePath>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <OutDir>$(ProjectDir)$(Configuration)\</OutDir>
- <IntDir>$(ProjectDir)$(Configuration)\</IntDir>
- <IncludePath>$(IncludePath)</IncludePath>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <OutDir>$(ProjectDir)$(Configuration)\</OutDir>
- <IntDir>$(ProjectDir)$(Configuration)\</IntDir>
- <IncludePath>$(IncludePath)</IncludePath>
- </PropertyGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <ClCompile>
- <WarningLevel>Level4</WarningLevel>
- <Optimization>Disabled</Optimization>
- <AdditionalIncludeDirectories>..\..;..\..\backends;%VULKAN_SDK%\include;..\libs\glfw\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_MBCS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
- </ClCompile>
- <Link>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <AdditionalLibraryDirectories>%VULKAN_SDK%\lib32;..\libs\glfw\lib-vc2010-32;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
- <AdditionalDependencies>vulkan-1.lib;glfw3.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <SubSystem>Console</SubSystem>
- <IgnoreSpecificDefaultLibraries>msvcrt.lib</IgnoreSpecificDefaultLibraries>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <ClCompile>
- <WarningLevel>Level4</WarningLevel>
- <Optimization>Disabled</Optimization>
- <AdditionalIncludeDirectories>..\..;..\..\backends;%VULKAN_SDK%\include;..\libs\glfw\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_MBCS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
- </ClCompile>
- <Link>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <AdditionalLibraryDirectories>%VULKAN_SDK%\lib;..\libs\glfw\lib-vc2010-64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
- <AdditionalDependencies>vulkan-1.lib;glfw3.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <SubSystem>Console</SubSystem>
- <IgnoreSpecificDefaultLibraries>msvcrt.lib</IgnoreSpecificDefaultLibraries>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <ClCompile>
- <WarningLevel>Level4</WarningLevel>
- <Optimization>MaxSpeed</Optimization>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <IntrinsicFunctions>true</IntrinsicFunctions>
- <AdditionalIncludeDirectories>..\..;..\..\backends;%VULKAN_SDK%\include;..\libs\glfw\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <BufferSecurityCheck>false</BufferSecurityCheck>
- <PreprocessorDefinitions>_MBCS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
- </ClCompile>
- <Link>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- <OptimizeReferences>true</OptimizeReferences>
- <AdditionalLibraryDirectories>%VULKAN_SDK%\lib32;..\libs\glfw\lib-vc2010-32;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
- <AdditionalDependencies>vulkan-1.lib;glfw3.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <SubSystem>Console</SubSystem>
- <IgnoreSpecificDefaultLibraries>
- </IgnoreSpecificDefaultLibraries>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <ClCompile>
- <WarningLevel>Level4</WarningLevel>
- <Optimization>MaxSpeed</Optimization>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <IntrinsicFunctions>true</IntrinsicFunctions>
- <AdditionalIncludeDirectories>..\..;..\..\backends;%VULKAN_SDK%\include;..\libs\glfw\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <BufferSecurityCheck>false</BufferSecurityCheck>
- <PreprocessorDefinitions>_MBCS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
- </ClCompile>
- <Link>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- <OptimizeReferences>true</OptimizeReferences>
- <AdditionalLibraryDirectories>%VULKAN_SDK%\lib;..\libs\glfw\lib-vc2010-64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
- <AdditionalDependencies>vulkan-1.lib;glfw3.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <SubSystem>Console</SubSystem>
- <IgnoreSpecificDefaultLibraries>
- </IgnoreSpecificDefaultLibraries>
- </Link>
- </ItemDefinitionGroup>
- <ItemGroup>
- <ClCompile Include="..\..\imgui.cpp" />
- <ClCompile Include="..\..\imgui_demo.cpp" />
- <ClCompile Include="..\..\imgui_draw.cpp" />
- <ClCompile Include="..\..\imgui_tables.cpp" />
- <ClCompile Include="..\..\imgui_widgets.cpp" />
- <ClCompile Include="..\..\backends\imgui_impl_glfw.cpp" />
- <ClCompile Include="..\..\backends\imgui_impl_vulkan.cpp" />
- <ClCompile Include="main.cpp" />
- </ItemGroup>
- <ItemGroup>
- <ClInclude Include="..\..\imconfig.h" />
- <ClInclude Include="..\..\imgui.h" />
- <ClInclude Include="..\..\imgui_internal.h" />
- <ClInclude Include="..\..\backends\imgui_impl_glfw.h" />
- <ClInclude Include="..\..\backends\imgui_impl_vulkan.h" />
- </ItemGroup>
- <ItemGroup>
- <None Include="..\..\misc\debuggers\imgui.natstepfilter" />
- <None Include="..\..\misc\debuggers\imgui.natvis" />
- <None Include="..\README.txt" />
- </ItemGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
- <ImportGroup Label="ExtensionTargets">
- </ImportGroup>
-</Project> \ No newline at end of file
diff --git a/imgui-1.92.1/examples/example_glfw_vulkan/example_glfw_vulkan.vcxproj.filters b/imgui-1.92.1/examples/example_glfw_vulkan/example_glfw_vulkan.vcxproj.filters
deleted file mode 100644
index 510fc85..0000000
--- a/imgui-1.92.1/examples/example_glfw_vulkan/example_glfw_vulkan.vcxproj.filters
+++ /dev/null
@@ -1,64 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup>
- <Filter Include="imgui">
- <UniqueIdentifier>{20b90ce4-7fcb-4731-b9a0-075f875de82d}</UniqueIdentifier>
- </Filter>
- <Filter Include="sources">
- <UniqueIdentifier>{f18ab499-84e1-499f-8eff-9754361e0e52}</UniqueIdentifier>
- <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
- </Filter>
- </ItemGroup>
- <ItemGroup>
- <ClCompile Include="main.cpp">
- <Filter>sources</Filter>
- </ClCompile>
- <ClCompile Include="..\..\imgui.cpp">
- <Filter>imgui</Filter>
- </ClCompile>
- <ClCompile Include="..\..\imgui_demo.cpp">
- <Filter>imgui</Filter>
- </ClCompile>
- <ClCompile Include="..\..\imgui_draw.cpp">
- <Filter>imgui</Filter>
- </ClCompile>
- <ClCompile Include="..\..\imgui_tables.cpp">
- <Filter>imgui</Filter>
- </ClCompile>
- <ClCompile Include="..\..\imgui_widgets.cpp">
- <Filter>imgui</Filter>
- </ClCompile>
- <ClCompile Include="..\..\backends\imgui_impl_glfw.cpp">
- <Filter>sources</Filter>
- </ClCompile>
- <ClCompile Include="..\..\backends\imgui_impl_vulkan.cpp">
- <Filter>sources</Filter>
- </ClCompile>
- </ItemGroup>
- <ItemGroup>
- <ClInclude Include="..\..\imconfig.h">
- <Filter>imgui</Filter>
- </ClInclude>
- <ClInclude Include="..\..\imgui.h">
- <Filter>imgui</Filter>
- </ClInclude>
- <ClInclude Include="..\..\imgui_internal.h">
- <Filter>imgui</Filter>
- </ClInclude>
- <ClInclude Include="..\..\backends\imgui_impl_glfw.h">
- <Filter>sources</Filter>
- </ClInclude>
- <ClInclude Include="..\..\backends\imgui_impl_vulkan.h">
- <Filter>sources</Filter>
- </ClInclude>
- </ItemGroup>
- <ItemGroup>
- <None Include="..\README.txt" />
- <None Include="..\..\misc\debuggers\imgui.natvis">
- <Filter>imgui</Filter>
- </None>
- <None Include="..\..\misc\debuggers\imgui.natstepfilter">
- <Filter>imgui</Filter>
- </None>
- </ItemGroup>
-</Project> \ No newline at end of file
diff --git a/imgui-1.92.1/examples/example_glfw_vulkan/main.cpp b/imgui-1.92.1/examples/example_glfw_vulkan/main.cpp
deleted file mode 100644
index 19766b9..0000000
--- a/imgui-1.92.1/examples/example_glfw_vulkan/main.cpp
+++ /dev/null
@@ -1,534 +0,0 @@
-// Dear ImGui: standalone example application for Glfw + Vulkan
-
-// Learn about Dear ImGui:
-// - FAQ https://dearimgui.com/faq
-// - Getting Started https://dearimgui.com/getting-started
-// - Documentation https://dearimgui.com/docs (same as your local docs/ folder).
-// - Introduction, links and more at the top of imgui.cpp
-
-// Important note to the reader who wish to integrate imgui_impl_vulkan.cpp/.h in their own engine/app.
-// - Common ImGui_ImplVulkan_XXX functions and structures are used to interface with imgui_impl_vulkan.cpp/.h.
-// You will use those if you want to use this rendering backend in your engine/app.
-// - Helper ImGui_ImplVulkanH_XXX functions and structures are only used by this example (main.cpp) and by
-// the backend itself (imgui_impl_vulkan.cpp), but should PROBABLY NOT be used by your own engine/app code.
-// Read comments in imgui_impl_vulkan.h.
-
-#include "imgui.h"
-#include "imgui_impl_glfw.h"
-#include "imgui_impl_vulkan.h"
-#include <stdio.h> // printf, fprintf
-#include <stdlib.h> // abort
-#define GLFW_INCLUDE_NONE
-#define GLFW_INCLUDE_VULKAN
-#include <GLFW/glfw3.h>
-
-// Volk headers
-#ifdef IMGUI_IMPL_VULKAN_USE_VOLK
-#define VOLK_IMPLEMENTATION
-#include <volk.h>
-#endif
-
-// [Win32] Our example includes a copy of glfw3.lib pre-compiled with VS2010 to maximize ease of testing and compatibility with old VS compilers.
-// To link with VS2010-era libraries, VS2015+ requires linking with legacy_stdio_definitions.lib, which we do using this pragma.
-// Your own project should not be affected, as you are likely to link with a newer binary of GLFW that is adequate for your version of Visual Studio.
-#if defined(_MSC_VER) && (_MSC_VER >= 1900) && !defined(IMGUI_DISABLE_WIN32_FUNCTIONS)
-#pragma comment(lib, "legacy_stdio_definitions")
-#endif
-
-//#define APP_USE_UNLIMITED_FRAME_RATE
-#ifdef _DEBUG
-#define APP_USE_VULKAN_DEBUG_REPORT
-static VkDebugReportCallbackEXT g_DebugReport = VK_NULL_HANDLE;
-#endif
-
-// Data
-static VkAllocationCallbacks* g_Allocator = nullptr;
-static VkInstance g_Instance = VK_NULL_HANDLE;
-static VkPhysicalDevice g_PhysicalDevice = VK_NULL_HANDLE;
-static VkDevice g_Device = VK_NULL_HANDLE;
-static uint32_t g_QueueFamily = (uint32_t)-1;
-static VkQueue g_Queue = VK_NULL_HANDLE;
-static VkPipelineCache g_PipelineCache = VK_NULL_HANDLE;
-static VkDescriptorPool g_DescriptorPool = VK_NULL_HANDLE;
-
-static ImGui_ImplVulkanH_Window g_MainWindowData;
-static uint32_t g_MinImageCount = 2;
-static bool g_SwapChainRebuild = false;
-
-static void glfw_error_callback(int error, const char* description)
-{
- fprintf(stderr, "GLFW Error %d: %s\n", error, description);
-}
-static void check_vk_result(VkResult err)
-{
- if (err == VK_SUCCESS)
- return;
- fprintf(stderr, "[vulkan] Error: VkResult = %d\n", err);
- if (err < 0)
- abort();
-}
-
-#ifdef APP_USE_VULKAN_DEBUG_REPORT
-static VKAPI_ATTR VkBool32 VKAPI_CALL debug_report(VkDebugReportFlagsEXT flags, VkDebugReportObjectTypeEXT objectType, uint64_t object, size_t location, int32_t messageCode, const char* pLayerPrefix, const char* pMessage, void* pUserData)
-{
- (void)flags; (void)object; (void)location; (void)messageCode; (void)pUserData; (void)pLayerPrefix; // Unused arguments
- fprintf(stderr, "[vulkan] Debug report from ObjectType: %i\nMessage: %s\n\n", objectType, pMessage);
- return VK_FALSE;
-}
-#endif // APP_USE_VULKAN_DEBUG_REPORT
-
-static bool IsExtensionAvailable(const ImVector<VkExtensionProperties>& properties, const char* extension)
-{
- for (const VkExtensionProperties& p : properties)
- if (strcmp(p.extensionName, extension) == 0)
- return true;
- return false;
-}
-
-static void SetupVulkan(ImVector<const char*> instance_extensions)
-{
- VkResult err;
-#ifdef IMGUI_IMPL_VULKAN_USE_VOLK
- volkInitialize();
-#endif
-
- // Create Vulkan Instance
- {
- VkInstanceCreateInfo create_info = {};
- create_info.sType = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO;
-
- // Enumerate available extensions
- uint32_t properties_count;
- ImVector<VkExtensionProperties> properties;
- vkEnumerateInstanceExtensionProperties(nullptr, &properties_count, nullptr);
- properties.resize(properties_count);
- err = vkEnumerateInstanceExtensionProperties(nullptr, &properties_count, properties.Data);
- check_vk_result(err);
-
- // Enable required extensions
- if (IsExtensionAvailable(properties, VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME))
- instance_extensions.push_back(VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME);
-#ifdef VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME
- if (IsExtensionAvailable(properties, VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME))
- {
- instance_extensions.push_back(VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME);
- create_info.flags |= VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR;
- }
-#endif
-
- // Enabling validation layers
-#ifdef APP_USE_VULKAN_DEBUG_REPORT
- const char* layers[] = { "VK_LAYER_KHRONOS_validation" };
- create_info.enabledLayerCount = 1;
- create_info.ppEnabledLayerNames = layers;
- instance_extensions.push_back("VK_EXT_debug_report");
-#endif
-
- // Create Vulkan Instance
- create_info.enabledExtensionCount = (uint32_t)instance_extensions.Size;
- create_info.ppEnabledExtensionNames = instance_extensions.Data;
- err = vkCreateInstance(&create_info, g_Allocator, &g_Instance);
- check_vk_result(err);
-#ifdef IMGUI_IMPL_VULKAN_USE_VOLK
- volkLoadInstance(g_Instance);
-#endif
-
- // Setup the debug report callback
-#ifdef APP_USE_VULKAN_DEBUG_REPORT
- auto f_vkCreateDebugReportCallbackEXT = (PFN_vkCreateDebugReportCallbackEXT)vkGetInstanceProcAddr(g_Instance, "vkCreateDebugReportCallbackEXT");
- IM_ASSERT(f_vkCreateDebugReportCallbackEXT != nullptr);
- VkDebugReportCallbackCreateInfoEXT debug_report_ci = {};
- debug_report_ci.sType = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT;
- debug_report_ci.flags = VK_DEBUG_REPORT_ERROR_BIT_EXT | VK_DEBUG_REPORT_WARNING_BIT_EXT | VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT;
- debug_report_ci.pfnCallback = debug_report;
- debug_report_ci.pUserData = nullptr;
- err = f_vkCreateDebugReportCallbackEXT(g_Instance, &debug_report_ci, g_Allocator, &g_DebugReport);
- check_vk_result(err);
-#endif
- }
-
- // Select Physical Device (GPU)
- g_PhysicalDevice = ImGui_ImplVulkanH_SelectPhysicalDevice(g_Instance);
- IM_ASSERT(g_PhysicalDevice != VK_NULL_HANDLE);
-
- // Select graphics queue family
- g_QueueFamily = ImGui_ImplVulkanH_SelectQueueFamilyIndex(g_PhysicalDevice);
- IM_ASSERT(g_QueueFamily != (uint32_t)-1);
-
- // Create Logical Device (with 1 queue)
- {
- ImVector<const char*> device_extensions;
- device_extensions.push_back("VK_KHR_swapchain");
-
- // Enumerate physical device extension
- uint32_t properties_count;
- ImVector<VkExtensionProperties> properties;
- vkEnumerateDeviceExtensionProperties(g_PhysicalDevice, nullptr, &properties_count, nullptr);
- properties.resize(properties_count);
- vkEnumerateDeviceExtensionProperties(g_PhysicalDevice, nullptr, &properties_count, properties.Data);
-#ifdef VK_KHR_PORTABILITY_SUBSET_EXTENSION_NAME
- if (IsExtensionAvailable(properties, VK_KHR_PORTABILITY_SUBSET_EXTENSION_NAME))
- device_extensions.push_back(VK_KHR_PORTABILITY_SUBSET_EXTENSION_NAME);
-#endif
-
- const float queue_priority[] = { 1.0f };
- VkDeviceQueueCreateInfo queue_info[1] = {};
- queue_info[0].sType = VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO;
- queue_info[0].queueFamilyIndex = g_QueueFamily;
- queue_info[0].queueCount = 1;
- queue_info[0].pQueuePriorities = queue_priority;
- VkDeviceCreateInfo create_info = {};
- create_info.sType = VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO;
- create_info.queueCreateInfoCount = sizeof(queue_info) / sizeof(queue_info[0]);
- create_info.pQueueCreateInfos = queue_info;
- create_info.enabledExtensionCount = (uint32_t)device_extensions.Size;
- create_info.ppEnabledExtensionNames = device_extensions.Data;
- err = vkCreateDevice(g_PhysicalDevice, &create_info, g_Allocator, &g_Device);
- check_vk_result(err);
- vkGetDeviceQueue(g_Device, g_QueueFamily, 0, &g_Queue);
- }
-
- // Create Descriptor Pool
- // If you wish to load e.g. additional textures you may need to alter pools sizes and maxSets.
- {
- VkDescriptorPoolSize pool_sizes[] =
- {
- { VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, IMGUI_IMPL_VULKAN_MINIMUM_IMAGE_SAMPLER_POOL_SIZE },
- };
- VkDescriptorPoolCreateInfo pool_info = {};
- pool_info.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO;
- pool_info.flags = VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT;
- pool_info.maxSets = 0;
- for (VkDescriptorPoolSize& pool_size : pool_sizes)
- pool_info.maxSets += pool_size.descriptorCount;
- pool_info.poolSizeCount = (uint32_t)IM_ARRAYSIZE(pool_sizes);
- pool_info.pPoolSizes = pool_sizes;
- err = vkCreateDescriptorPool(g_Device, &pool_info, g_Allocator, &g_DescriptorPool);
- check_vk_result(err);
- }
-}
-
-// All the ImGui_ImplVulkanH_XXX structures/functions are optional helpers used by the demo.
-// Your real engine/app may not use them.
-static void SetupVulkanWindow(ImGui_ImplVulkanH_Window* wd, VkSurfaceKHR surface, int width, int height)
-{
- wd->Surface = surface;
-
- // Check for WSI support
- VkBool32 res;
- vkGetPhysicalDeviceSurfaceSupportKHR(g_PhysicalDevice, g_QueueFamily, wd->Surface, &res);
- if (res != VK_TRUE)
- {
- fprintf(stderr, "Error no WSI support on physical device 0\n");
- exit(-1);
- }
-
- // Select Surface Format
- const VkFormat requestSurfaceImageFormat[] = { VK_FORMAT_B8G8R8A8_UNORM, VK_FORMAT_R8G8B8A8_UNORM, VK_FORMAT_B8G8R8_UNORM, VK_FORMAT_R8G8B8_UNORM };
- const VkColorSpaceKHR requestSurfaceColorSpace = VK_COLORSPACE_SRGB_NONLINEAR_KHR;
- wd->SurfaceFormat = ImGui_ImplVulkanH_SelectSurfaceFormat(g_PhysicalDevice, wd->Surface, requestSurfaceImageFormat, (size_t)IM_ARRAYSIZE(requestSurfaceImageFormat), requestSurfaceColorSpace);
-
- // Select Present Mode
-#ifdef APP_USE_UNLIMITED_FRAME_RATE
- VkPresentModeKHR present_modes[] = { VK_PRESENT_MODE_MAILBOX_KHR, VK_PRESENT_MODE_IMMEDIATE_KHR, VK_PRESENT_MODE_FIFO_KHR };
-#else
- VkPresentModeKHR present_modes[] = { VK_PRESENT_MODE_FIFO_KHR };
-#endif
- wd->PresentMode = ImGui_ImplVulkanH_SelectPresentMode(g_PhysicalDevice, wd->Surface, &present_modes[0], IM_ARRAYSIZE(present_modes));
- //printf("[vulkan] Selected PresentMode = %d\n", wd->PresentMode);
-
- // Create SwapChain, RenderPass, Framebuffer, etc.
- IM_ASSERT(g_MinImageCount >= 2);
- ImGui_ImplVulkanH_CreateOrResizeWindow(g_Instance, g_PhysicalDevice, g_Device, wd, g_QueueFamily, g_Allocator, width, height, g_MinImageCount);
-}
-
-static void CleanupVulkan()
-{
- vkDestroyDescriptorPool(g_Device, g_DescriptorPool, g_Allocator);
-
-#ifdef APP_USE_VULKAN_DEBUG_REPORT
- // Remove the debug report callback
- auto f_vkDestroyDebugReportCallbackEXT = (PFN_vkDestroyDebugReportCallbackEXT)vkGetInstanceProcAddr(g_Instance, "vkDestroyDebugReportCallbackEXT");
- f_vkDestroyDebugReportCallbackEXT(g_Instance, g_DebugReport, g_Allocator);
-#endif // APP_USE_VULKAN_DEBUG_REPORT
-
- vkDestroyDevice(g_Device, g_Allocator);
- vkDestroyInstance(g_Instance, g_Allocator);
-}
-
-static void CleanupVulkanWindow()
-{
- ImGui_ImplVulkanH_DestroyWindow(g_Instance, g_Device, &g_MainWindowData, g_Allocator);
-}
-
-static void FrameRender(ImGui_ImplVulkanH_Window* wd, ImDrawData* draw_data)
-{
- VkSemaphore image_acquired_semaphore = wd->FrameSemaphores[wd->SemaphoreIndex].ImageAcquiredSemaphore;
- VkSemaphore render_complete_semaphore = wd->FrameSemaphores[wd->SemaphoreIndex].RenderCompleteSemaphore;
- VkResult err = vkAcquireNextImageKHR(g_Device, wd->Swapchain, UINT64_MAX, image_acquired_semaphore, VK_NULL_HANDLE, &wd->FrameIndex);
- if (err == VK_ERROR_OUT_OF_DATE_KHR || err == VK_SUBOPTIMAL_KHR)
- g_SwapChainRebuild = true;
- if (err == VK_ERROR_OUT_OF_DATE_KHR)
- return;
- if (err != VK_SUBOPTIMAL_KHR)
- check_vk_result(err);
-
- ImGui_ImplVulkanH_Frame* fd = &wd->Frames[wd->FrameIndex];
- {
- err = vkWaitForFences(g_Device, 1, &fd->Fence, VK_TRUE, UINT64_MAX); // wait indefinitely instead of periodically checking
- check_vk_result(err);
-
- err = vkResetFences(g_Device, 1, &fd->Fence);
- check_vk_result(err);
- }
- {
- err = vkResetCommandPool(g_Device, fd->CommandPool, 0);
- check_vk_result(err);
- VkCommandBufferBeginInfo info = {};
- info.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO;
- info.flags |= VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT;
- err = vkBeginCommandBuffer(fd->CommandBuffer, &info);
- check_vk_result(err);
- }
- {
- VkRenderPassBeginInfo info = {};
- info.sType = VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO;
- info.renderPass = wd->RenderPass;
- info.framebuffer = fd->Framebuffer;
- info.renderArea.extent.width = wd->Width;
- info.renderArea.extent.height = wd->Height;
- info.clearValueCount = 1;
- info.pClearValues = &wd->ClearValue;
- vkCmdBeginRenderPass(fd->CommandBuffer, &info, VK_SUBPASS_CONTENTS_INLINE);
- }
-
- // Record dear imgui primitives into command buffer
- ImGui_ImplVulkan_RenderDrawData(draw_data, fd->CommandBuffer);
-
- // Submit command buffer
- vkCmdEndRenderPass(fd->CommandBuffer);
- {
- VkPipelineStageFlags wait_stage = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT;
- VkSubmitInfo info = {};
- info.sType = VK_STRUCTURE_TYPE_SUBMIT_INFO;
- info.waitSemaphoreCount = 1;
- info.pWaitSemaphores = &image_acquired_semaphore;
- info.pWaitDstStageMask = &wait_stage;
- info.commandBufferCount = 1;
- info.pCommandBuffers = &fd->CommandBuffer;
- info.signalSemaphoreCount = 1;
- info.pSignalSemaphores = &render_complete_semaphore;
-
- err = vkEndCommandBuffer(fd->CommandBuffer);
- check_vk_result(err);
- err = vkQueueSubmit(g_Queue, 1, &info, fd->Fence);
- check_vk_result(err);
- }
-}
-
-static void FramePresent(ImGui_ImplVulkanH_Window* wd)
-{
- if (g_SwapChainRebuild)
- return;
- VkSemaphore render_complete_semaphore = wd->FrameSemaphores[wd->SemaphoreIndex].RenderCompleteSemaphore;
- VkPresentInfoKHR info = {};
- info.sType = VK_STRUCTURE_TYPE_PRESENT_INFO_KHR;
- info.waitSemaphoreCount = 1;
- info.pWaitSemaphores = &render_complete_semaphore;
- info.swapchainCount = 1;
- info.pSwapchains = &wd->Swapchain;
- info.pImageIndices = &wd->FrameIndex;
- VkResult err = vkQueuePresentKHR(g_Queue, &info);
- if (err == VK_ERROR_OUT_OF_DATE_KHR || err == VK_SUBOPTIMAL_KHR)
- g_SwapChainRebuild = true;
- if (err == VK_ERROR_OUT_OF_DATE_KHR)
- return;
- if (err != VK_SUBOPTIMAL_KHR)
- check_vk_result(err);
- wd->SemaphoreIndex = (wd->SemaphoreIndex + 1) % wd->SemaphoreCount; // Now we can use the next set of semaphores
-}
-
-// Main code
-int main(int, char**)
-{
- glfwSetErrorCallback(glfw_error_callback);
- if (!glfwInit())
- return 1;
-
- // Create window with Vulkan context
- glfwWindowHint(GLFW_CLIENT_API, GLFW_NO_API);
- GLFWwindow* window = glfwCreateWindow(1280, 720, "Dear ImGui GLFW+Vulkan example", nullptr, nullptr);
- if (!glfwVulkanSupported())
- {
- printf("GLFW: Vulkan Not Supported\n");
- return 1;
- }
-
- ImVector<const char*> extensions;
- uint32_t extensions_count = 0;
- const char** glfw_extensions = glfwGetRequiredInstanceExtensions(&extensions_count);
- for (uint32_t i = 0; i < extensions_count; i++)
- extensions.push_back(glfw_extensions[i]);
- SetupVulkan(extensions);
-
- // Create Window Surface
- VkSurfaceKHR surface;
- VkResult err = glfwCreateWindowSurface(g_Instance, window, g_Allocator, &surface);
- check_vk_result(err);
-
- // Create Framebuffers
- int w, h;
- glfwGetFramebufferSize(window, &w, &h);
- ImGui_ImplVulkanH_Window* wd = &g_MainWindowData;
- SetupVulkanWindow(wd, surface, w, h);
-
- // Setup Dear ImGui context
- IMGUI_CHECKVERSION();
- ImGui::CreateContext();
- ImGuiIO& io = ImGui::GetIO(); (void)io;
- io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard; // Enable Keyboard Controls
- io.ConfigFlags |= ImGuiConfigFlags_NavEnableGamepad; // Enable Gamepad Controls
-
- // Setup Dear ImGui style
- ImGui::StyleColorsDark();
- //ImGui::StyleColorsLight();
-
- // Setup Platform/Renderer backends
- ImGui_ImplGlfw_InitForVulkan(window, true);
- ImGui_ImplVulkan_InitInfo init_info = {};
- //init_info.ApiVersion = VK_API_VERSION_1_3; // Pass in your value of VkApplicationInfo::apiVersion, otherwise will default to header version.
- init_info.Instance = g_Instance;
- init_info.PhysicalDevice = g_PhysicalDevice;
- init_info.Device = g_Device;
- init_info.QueueFamily = g_QueueFamily;
- init_info.Queue = g_Queue;
- init_info.PipelineCache = g_PipelineCache;
- init_info.DescriptorPool = g_DescriptorPool;
- init_info.RenderPass = wd->RenderPass;
- init_info.Subpass = 0;
- init_info.MinImageCount = g_MinImageCount;
- init_info.ImageCount = wd->ImageCount;
- init_info.MSAASamples = VK_SAMPLE_COUNT_1_BIT;
- init_info.Allocator = g_Allocator;
- init_info.CheckVkResultFn = check_vk_result;
- ImGui_ImplVulkan_Init(&init_info);
-
- // Load Fonts
- // - If no fonts are loaded, dear imgui will use the default font. You can also load multiple fonts and use ImGui::PushFont()/PopFont() to select them.
- // - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
- // - If the file cannot be loaded, the function will return a nullptr. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
- // - Use '#define IMGUI_ENABLE_FREETYPE' in your imconfig file to use Freetype for higher quality font rendering.
- // - Read 'docs/FONTS.md' for more instructions and details.
- // - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
- //style.FontSizeBase = 20.0f;
- //io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\segoeui.ttf");
- //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf");
- //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf");
- //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf");
- //ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf");
- //IM_ASSERT(font != nullptr);
-
- // Our state
- bool show_demo_window = true;
- bool show_another_window = false;
- ImVec4 clear_color = ImVec4(0.45f, 0.55f, 0.60f, 1.00f);
-
- // Main loop
- while (!glfwWindowShouldClose(window))
- {
- // Poll and handle events (inputs, window resize, etc.)
- // You can read the io.WantCaptureMouse, io.WantCaptureKeyboard flags to tell if dear imgui wants to use your inputs.
- // - When io.WantCaptureMouse is true, do not dispatch mouse input data to your main application, or clear/overwrite your copy of the mouse data.
- // - When io.WantCaptureKeyboard is true, do not dispatch keyboard input data to your main application, or clear/overwrite your copy of the keyboard data.
- // Generally you may always pass all inputs to dear imgui, and hide them from your application based on those two flags.
- glfwPollEvents();
-
- // Resize swap chain?
- int fb_width, fb_height;
- glfwGetFramebufferSize(window, &fb_width, &fb_height);
- if (fb_width > 0 && fb_height > 0 && (g_SwapChainRebuild || g_MainWindowData.Width != fb_width || g_MainWindowData.Height != fb_height))
- {
- ImGui_ImplVulkan_SetMinImageCount(g_MinImageCount);
- ImGui_ImplVulkanH_CreateOrResizeWindow(g_Instance, g_PhysicalDevice, g_Device, &g_MainWindowData, g_QueueFamily, g_Allocator, fb_width, fb_height, g_MinImageCount);
- g_MainWindowData.FrameIndex = 0;
- g_SwapChainRebuild = false;
- }
- if (glfwGetWindowAttrib(window, GLFW_ICONIFIED) != 0)
- {
- ImGui_ImplGlfw_Sleep(10);
- continue;
- }
-
- // Start the Dear ImGui frame
- ImGui_ImplVulkan_NewFrame();
- ImGui_ImplGlfw_NewFrame();
- ImGui::NewFrame();
-
- // 1. Show the big demo window (Most of the sample code is in ImGui::ShowDemoWindow()! You can browse its code to learn more about Dear ImGui!).
- if (show_demo_window)
- ImGui::ShowDemoWindow(&show_demo_window);
-
- // 2. Show a simple window that we create ourselves. We use a Begin/End pair to create a named window.
- {
- static float f = 0.0f;
- static int counter = 0;
-
- ImGui::Begin("Hello, world!"); // Create a window called "Hello, world!" and append into it.
-
- ImGui::Text("This is some useful text."); // Display some text (you can use a format strings too)
- ImGui::Checkbox("Demo Window", &show_demo_window); // Edit bools storing our window open/close state
- ImGui::Checkbox("Another Window", &show_another_window);
-
- ImGui::SliderFloat("float", &f, 0.0f, 1.0f); // Edit 1 float using a slider from 0.0f to 1.0f
- ImGui::ColorEdit3("clear color", (float*)&clear_color); // Edit 3 floats representing a color
-
- if (ImGui::Button("Button")) // Buttons return true when clicked (most widgets return true when edited/activated)
- counter++;
- ImGui::SameLine();
- ImGui::Text("counter = %d", counter);
-
- ImGui::Text("Application average %.3f ms/frame (%.1f FPS)", 1000.0f / io.Framerate, io.Framerate);
- ImGui::End();
- }
-
- // 3. Show another simple window.
- if (show_another_window)
- {
- ImGui::Begin("Another Window", &show_another_window); // Pass a pointer to our bool variable (the window will have a closing button that will clear the bool when clicked)
- ImGui::Text("Hello from another window!");
- if (ImGui::Button("Close Me"))
- show_another_window = false;
- ImGui::End();
- }
-
- // Rendering
- ImGui::Render();
- ImDrawData* draw_data = ImGui::GetDrawData();
- const bool is_minimized = (draw_data->DisplaySize.x <= 0.0f || draw_data->DisplaySize.y <= 0.0f);
- if (!is_minimized)
- {
- wd->ClearValue.color.float32[0] = clear_color.x * clear_color.w;
- wd->ClearValue.color.float32[1] = clear_color.y * clear_color.w;
- wd->ClearValue.color.float32[2] = clear_color.z * clear_color.w;
- wd->ClearValue.color.float32[3] = clear_color.w;
- FrameRender(wd, draw_data);
- FramePresent(wd);
- }
- }
-
- // Cleanup
- err = vkDeviceWaitIdle(g_Device);
- check_vk_result(err);
- ImGui_ImplVulkan_Shutdown();
- ImGui_ImplGlfw_Shutdown();
- ImGui::DestroyContext();
-
- CleanupVulkanWindow();
- CleanupVulkan();
-
- glfwDestroyWindow(window);
- glfwTerminate();
-
- return 0;
-}
diff --git a/imgui-1.92.1/examples/example_glfw_wgpu/CMakeLists.txt b/imgui-1.92.1/examples/example_glfw_wgpu/CMakeLists.txt
deleted file mode 100644
index 8e164e4..0000000
--- a/imgui-1.92.1/examples/example_glfw_wgpu/CMakeLists.txt
+++ /dev/null
@@ -1,117 +0,0 @@
-# Building for desktop (WebGPU-native) with Dawn:
-# 1. git clone https://github.com/google/dawn dawn
-# 2. cmake -B build -DIMGUI_DAWN_DIR=dawn
-# 3. cmake --build build
-# The resulting binary will be found at one of the following locations:
-# * build/Debug/example_glfw_wgpu[.exe]
-# * build/example_glfw_wgpu[.exe]
-
-# Building for Emscripten:
-# 1. Install Emscripten SDK following the instructions: https://emscripten.org/docs/getting_started/downloads.html
-# 2. Install Ninja build system
-# 3. emcmake cmake -G Ninja -B build
-# 3. cmake --build build
-# 4. emrun build/index.html
-
-cmake_minimum_required(VERSION 3.10.2)
-project(imgui_example_glfw_wgpu C CXX)
-
-if(NOT CMAKE_BUILD_TYPE)
- set(CMAKE_BUILD_TYPE Debug CACHE STRING "" FORCE)
-endif()
-
-set(CMAKE_CXX_STANDARD 17) # Dawn requires C++17
-
-# Dear ImGui
-set(IMGUI_DIR ../../)
-
-# Libraries
-if(EMSCRIPTEN)
- if(EMSCRIPTEN_VERSION VERSION_GREATER_EQUAL "3.1.57")
- set(IMGUI_EMSCRIPTEN_GLFW3 "--use-port=contrib.glfw3" CACHE STRING "Choose between --use-port=contrib.glfw3 and -sUSE_GLFW=3 for GLFW implementation (default to --use-port=contrib.glfw3)")
- else()
- # cannot use contrib.glfw3 prior to 3.1.57
- set(IMGUI_EMSCRIPTEN_GLFW3 "-sUSE_GLFW=3" CACHE STRING "Use -sUSE_GLFW=3 for GLFW implementation" FORCE)
- endif()
- set(LIBRARIES glfw)
- add_compile_options(-sDISABLE_EXCEPTION_CATCHING=1 -DIMGUI_DISABLE_FILE_FUNCTIONS=1)
-else()
- # Dawn wgpu desktop
- set(DAWN_FETCH_DEPENDENCIES ON)
- set(IMGUI_DAWN_DIR CACHE PATH "Path to Dawn repository")
- if (NOT IMGUI_DAWN_DIR)
- message(FATAL_ERROR "Please specify the Dawn repository by setting IMGUI_DAWN_DIR")
- endif()
-
- option(DAWN_FETCH_DEPENDENCIES "Use fetch_dawn_dependencies.py as an alternative to using depot_tools" ON)
-
- # Dawn builds many things by default - disable things we don't need
- option(DAWN_BUILD_SAMPLES "Enables building Dawn's samples" OFF)
- option(TINT_BUILD_CMD_TOOLS "Build the Tint command line tools" OFF)
- option(TINT_BUILD_DOCS "Build documentation" OFF)
- option(TINT_BUILD_TESTS "Build tests" OFF)
- if (NOT APPLE)
- option(TINT_BUILD_MSL_WRITER "Build the MSL output writer" OFF)
- endif()
- if(WIN32)
- option(TINT_BUILD_SPV_READER "Build the SPIR-V input reader" OFF)
- option(TINT_BUILD_WGSL_READER "Build the WGSL input reader" ON)
- option(TINT_BUILD_GLSL_WRITER "Build the GLSL output writer" OFF)
- option(TINT_BUILD_GLSL_VALIDATOR "Build the GLSL output validator" OFF)
- option(TINT_BUILD_SPV_WRITER "Build the SPIR-V output writer" OFF)
- option(TINT_BUILD_WGSL_WRITER "Build the WGSL output writer" ON)
- endif()
-
- add_subdirectory("${IMGUI_DAWN_DIR}" "${CMAKE_CURRENT_BINARY_DIR}/dawn" EXCLUDE_FROM_ALL)
-
- set(LIBRARIES webgpu_dawn webgpu_cpp webgpu_glfw glfw)
-endif()
-
-add_executable(example_glfw_wgpu
- main.cpp
- # backend files
- ${IMGUI_DIR}/backends/imgui_impl_glfw.cpp
- ${IMGUI_DIR}/backends/imgui_impl_wgpu.cpp
- # Dear ImGui files
- ${IMGUI_DIR}/imgui.cpp
- ${IMGUI_DIR}/imgui_draw.cpp
- ${IMGUI_DIR}/imgui_demo.cpp
- ${IMGUI_DIR}/imgui_tables.cpp
- ${IMGUI_DIR}/imgui_widgets.cpp
-)
-IF(NOT EMSCRIPTEN)
- target_compile_definitions(example_glfw_wgpu PUBLIC
- "IMGUI_IMPL_WEBGPU_BACKEND_DAWN"
- )
-endif()
-target_include_directories(example_glfw_wgpu PUBLIC
- ${IMGUI_DIR}
- ${IMGUI_DIR}/backends
-)
-
-target_link_libraries(example_glfw_wgpu PUBLIC ${LIBRARIES})
-
-# Emscripten settings
-if(EMSCRIPTEN)
- if("${IMGUI_EMSCRIPTEN_GLFW3}" STREQUAL "--use-port=contrib.glfw3")
- target_compile_options(example_glfw_wgpu PUBLIC
- "${IMGUI_EMSCRIPTEN_GLFW3}"
- )
- endif()
- message(STATUS "Using ${IMGUI_EMSCRIPTEN_GLFW3} GLFW implementation")
- target_link_options(example_glfw_wgpu PRIVATE
- "-sUSE_WEBGPU=1"
- "${IMGUI_EMSCRIPTEN_GLFW3}"
- "-sWASM=1"
- "-sALLOW_MEMORY_GROWTH=1"
- "-sNO_EXIT_RUNTIME=0"
- "-sASSERTIONS=1"
- "-sDISABLE_EXCEPTION_CATCHING=1"
- "-sNO_FILESYSTEM=1"
- )
- set_target_properties(example_glfw_wgpu PROPERTIES OUTPUT_NAME "index")
- # copy our custom index.html to build directory
- add_custom_command(TARGET example_glfw_wgpu POST_BUILD
- COMMAND ${CMAKE_COMMAND} -E copy_if_different "${CMAKE_CURRENT_LIST_DIR}/web/index.html" $<TARGET_FILE_DIR:example_glfw_wgpu>
- )
-endif()
diff --git a/imgui-1.92.1/examples/example_glfw_wgpu/Makefile.emscripten b/imgui-1.92.1/examples/example_glfw_wgpu/Makefile.emscripten
deleted file mode 100644
index 8ee398b..0000000
--- a/imgui-1.92.1/examples/example_glfw_wgpu/Makefile.emscripten
+++ /dev/null
@@ -1,92 +0,0 @@
-#
-# Makefile to use with emscripten
-# See https://emscripten.org/docs/getting_started/downloads.html
-# for installation instructions.
-#
-# This Makefile assumes you have loaded emscripten's environment.
-# (On Windows, you may need to execute emsdk_env.bat or encmdprompt.bat ahead)
-#
-# Running `make` will produce three files:
-# - web/index.html (current stored in the repository)
-# - web/index.js
-# - web/index.wasm
-#
-# All three are needed to run the demo.
-
-CC = emcc
-CXX = em++
-WEB_DIR = web
-EXE = $(WEB_DIR)/index.js
-IMGUI_DIR = ../..
-SOURCES = main.cpp
-SOURCES += $(IMGUI_DIR)/imgui.cpp $(IMGUI_DIR)/imgui_demo.cpp $(IMGUI_DIR)/imgui_draw.cpp $(IMGUI_DIR)/imgui_tables.cpp $(IMGUI_DIR)/imgui_widgets.cpp
-SOURCES += $(IMGUI_DIR)/backends/imgui_impl_glfw.cpp $(IMGUI_DIR)/backends/imgui_impl_wgpu.cpp
-OBJS = $(addsuffix .o, $(basename $(notdir $(SOURCES))))
-UNAME_S := $(shell uname -s)
-CPPFLAGS =
-LDFLAGS =
-EMS =
-
-##---------------------------------------------------------------------
-## EMSCRIPTEN OPTIONS
-##---------------------------------------------------------------------
-
-# ("EMS" options gets added to both CPPFLAGS and LDFLAGS, whereas some options are for linker only)
-# Note: For glfw, we use emscripten-glfw port (contrib.glfw3) instead of (-s USE_GLFW=3) to get a better support for High DPI displays.
-EMS += -s DISABLE_EXCEPTION_CATCHING=1 --use-port=contrib.glfw3
-LDFLAGS += -s USE_WEBGPU=1
-LDFLAGS += -s WASM=1 -s ALLOW_MEMORY_GROWTH=1 -s NO_EXIT_RUNTIME=0 -s ASSERTIONS=1
-
-# Build as single file (binary text encoded in .html file)
-#LDFLAGS += -sSINGLE_FILE
-
-# Emscripten allows preloading a file or folder to be accessible at runtime.
-# The Makefile for this example project suggests embedding the misc/fonts/ folder into our application, it will then be accessible as "/fonts"
-# See documentation for more details: https://emscripten.org/docs/porting/files/packaging_files.html
-# (Default value is 0. Set to 1 to enable file-system and include the misc/fonts/ folder as part of the build.)
-USE_FILE_SYSTEM ?= 0
-ifeq ($(USE_FILE_SYSTEM), 0)
-LDFLAGS += -s NO_FILESYSTEM=1
-CPPFLAGS += -DIMGUI_DISABLE_FILE_FUNCTIONS
-endif
-ifeq ($(USE_FILE_SYSTEM), 1)
-LDFLAGS += --no-heap-copy --preload-file ../../misc/fonts@/fonts
-endif
-
-##---------------------------------------------------------------------
-## FINAL BUILD FLAGS
-##---------------------------------------------------------------------
-
-CPPFLAGS += -I$(IMGUI_DIR) -I$(IMGUI_DIR)/backends
-#CPPFLAGS += -g
-CPPFLAGS += -Wall -Wformat -Os $(EMS)
-#LDFLAGS += --shell-file shell_minimal.html
-LDFLAGS += $(EMS)
-
-##---------------------------------------------------------------------
-## BUILD RULES
-##---------------------------------------------------------------------
-
-%.o:%.cpp
- $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c -o $@ $<
-
-%.o:$(IMGUI_DIR)/%.cpp
- $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c -o $@ $<
-
-%.o:$(IMGUI_DIR)/backends/%.cpp
- $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c -o $@ $<
-
-all: $(EXE)
- @echo Build complete for $(EXE)
-
-$(WEB_DIR):
- mkdir $@
-
-serve: all
- python3 -m http.server -d $(WEB_DIR)
-
-$(EXE): $(OBJS) $(WEB_DIR)
- $(CXX) -o $@ $(OBJS) $(LDFLAGS)
-
-clean:
- rm -f $(EXE) $(OBJS) $(WEB_DIR)/*.js $(WEB_DIR)/*.wasm $(WEB_DIR)/*.wasm.pre
diff --git a/imgui-1.92.1/examples/example_glfw_wgpu/README.md b/imgui-1.92.1/examples/example_glfw_wgpu/README.md
deleted file mode 100644
index 399d431..0000000
--- a/imgui-1.92.1/examples/example_glfw_wgpu/README.md
+++ /dev/null
@@ -1,24 +0,0 @@
-## How to Build
-
-- You need to install Emscripten from https://emscripten.org/docs/getting_started/downloads.html, and have the environment variables set, as described in https://emscripten.org/docs/getting_started/downloads.html#installation-instructions
-
-- Depending on your configuration, in Windows you may need to run `emsdk/emsdk_env.bat` in your console to access the Emscripten command-line tools.
-
-- You may also refer to our [Continuous Integration setup](https://github.com/ocornut/imgui/tree/master/.github/workflows) for Emscripten setup.
-
-- Then build using `make -f Makefile.emscripten` while in the `example_glfw_wgpu/` directory.
-
-- Requires recent Emscripten as WGPU is still a work-in-progress API.
-
-## How to Run
-
-To run on a local machine:
-- Make sure your browse supports WGPU and it is enabled. WGPU is still WIP not enabled by default in most browser.
-- `make serve` will use Python3 to spawn a local webserver, you can then browse http://localhost:8000 to access your build.
-- Otherwise, generally you will need a local webserver:
- - Quoting [https://emscripten.org/docs/getting_started](https://emscripten.org/docs/getting_started/Tutorial.html#generating-html):<br>
-_"Unfortunately several browsers (including Chrome, Safari, and Internet Explorer) do not support file:// [XHR](https://emscripten.org/docs/site/glossary.html#term-xhr) requests, and can’t load extra files needed by the HTML (like a .wasm file, or packaged file data as mentioned lower down). For these browsers you’ll need to serve the files using a [local webserver](https://emscripten.org/docs/getting_started/FAQ.html#faq-local-webserver) and then open http://localhost:8000/hello.html."_
- - Emscripten SDK has a handy `emrun` command: `emrun web/example_glfw_wgpu.html --browser firefox` which will spawn a temporary local webserver (in Firefox). See https://emscripten.org/docs/compiling/Running-html-files-with-emrun.html for details.
- - You may use Python 3 builtin webserver: `python -m http.server -d web` (this is what `make serve` uses).
- - You may use Python 2 builtin webserver: `cd web && python -m SimpleHTTPServer`.
- - If you are accessing the files over a network, certain browsers, such as Firefox, will restrict Gamepad API access to secure contexts only (e.g. https only).
diff --git a/imgui-1.92.1/examples/example_glfw_wgpu/main.cpp b/imgui-1.92.1/examples/example_glfw_wgpu/main.cpp
deleted file mode 100644
index c150b59..0000000
--- a/imgui-1.92.1/examples/example_glfw_wgpu/main.cpp
+++ /dev/null
@@ -1,350 +0,0 @@
-// Dear ImGui: standalone example application for using GLFW + WebGPU
-// - Emscripten is supported for publishing on web. See https://emscripten.org.
-// - Dawn is used as a WebGPU implementation on desktop.
-
-// Learn about Dear ImGui:
-// - FAQ https://dearimgui.com/faq
-// - Getting Started https://dearimgui.com/getting-started
-// - Documentation https://dearimgui.com/docs (same as your local docs/ folder).
-// - Introduction, links and more at the top of imgui.cpp
-
-#include "imgui.h"
-#include "imgui_impl_glfw.h"
-#include "imgui_impl_wgpu.h"
-#include <stdio.h>
-
-#ifdef __EMSCRIPTEN__
-#include <emscripten.h>
-#include <emscripten/html5.h>
-#include <emscripten/html5_webgpu.h>
-#else
-#include <webgpu/webgpu_glfw.h>
-#endif
-
-#include <GLFW/glfw3.h>
-#include <webgpu/webgpu.h>
-#include <webgpu/webgpu_cpp.h>
-
-// This example can also compile and run with Emscripten! See 'Makefile.emscripten' for details.
-#ifdef __EMSCRIPTEN__
-#include "../libs/emscripten/emscripten_mainloop_stub.h"
-#endif
-
-// Global WebGPU required states
-static WGPUInstance wgpu_instance = nullptr;
-static WGPUDevice wgpu_device = nullptr;
-static WGPUSurface wgpu_surface = nullptr;
-static WGPUTextureFormat wgpu_preferred_fmt = WGPUTextureFormat_RGBA8Unorm;
-static WGPUSwapChain wgpu_swap_chain = nullptr;
-static int wgpu_swap_chain_width = 1280;
-static int wgpu_swap_chain_height = 720;
-
-// Forward declarations
-static bool InitWGPU(GLFWwindow* window);
-static void CreateSwapChain(int width, int height);
-
-static void glfw_error_callback(int error, const char* description)
-{
- printf("GLFW Error %d: %s\n", error, description);
-}
-
-static void wgpu_error_callback(WGPUErrorType error_type, const char* message, void*)
-{
- const char* error_type_lbl = "";
- switch (error_type)
- {
- case WGPUErrorType_Validation: error_type_lbl = "Validation"; break;
- case WGPUErrorType_OutOfMemory: error_type_lbl = "Out of memory"; break;
- case WGPUErrorType_Unknown: error_type_lbl = "Unknown"; break;
- case WGPUErrorType_DeviceLost: error_type_lbl = "Device lost"; break;
- default: error_type_lbl = "Unknown";
- }
- printf("%s error: %s\n", error_type_lbl, message);
-}
-
-// Main code
-int main(int, char**)
-{
- glfwSetErrorCallback(glfw_error_callback);
- if (!glfwInit())
- return 1;
-
- // Make sure GLFW does not initialize any graphics context.
- // This needs to be done explicitly later.
- glfwWindowHint(GLFW_CLIENT_API, GLFW_NO_API);
- GLFWwindow* window = glfwCreateWindow(wgpu_swap_chain_width, wgpu_swap_chain_height, "Dear ImGui GLFW+WebGPU example", nullptr, nullptr);
- if (window == nullptr)
- return 1;
-
- // Initialize the WebGPU environment
- if (!InitWGPU(window))
- {
- if (window)
- glfwDestroyWindow(window);
- glfwTerminate();
- return 1;
- }
- CreateSwapChain(wgpu_swap_chain_width, wgpu_swap_chain_height);
- glfwShowWindow(window);
-
- // Setup Dear ImGui context
- IMGUI_CHECKVERSION();
- ImGui::CreateContext();
- ImGuiIO& io = ImGui::GetIO(); (void)io;
- io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard; // Enable Keyboard Controls
- io.ConfigFlags |= ImGuiConfigFlags_NavEnableGamepad; // Enable Gamepad Controls
-
- // Setup Dear ImGui style
- ImGui::StyleColorsDark();
- //ImGui::StyleColorsLight();
-
- // Setup Platform/Renderer backends
- ImGui_ImplGlfw_InitForOther(window, true);
-#ifdef __EMSCRIPTEN__
- ImGui_ImplGlfw_InstallEmscriptenCallbacks(window, "#canvas");
-#endif
- ImGui_ImplWGPU_InitInfo init_info;
- init_info.Device = wgpu_device;
- init_info.NumFramesInFlight = 3;
- init_info.RenderTargetFormat = wgpu_preferred_fmt;
- init_info.DepthStencilFormat = WGPUTextureFormat_Undefined;
- ImGui_ImplWGPU_Init(&init_info);
-
- // Load Fonts
- // - If no fonts are loaded, dear imgui will use the default font. You can also load multiple fonts and use ImGui::PushFont()/PopFont() to select them.
- // - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
- // - If the file cannot be loaded, the function will return a nullptr. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
- // - Use '#define IMGUI_ENABLE_FREETYPE' in your imconfig file to use Freetype for higher quality font rendering.
- // - Read 'docs/FONTS.md' for more instructions and details.
- // - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
- // - Emscripten allows preloading a file or folder to be accessible at runtime. See Makefile for details.
- //io.Fonts->AddFontDefault();
- //style.FontSizeBase = 20.0f;
-#ifndef IMGUI_DISABLE_FILE_FUNCTIONS
- //io.Fonts->AddFontFromFileTTF("fonts/segoeui.ttf");
- //io.Fonts->AddFontFromFileTTF("fonts/DroidSans.ttf");
- //io.Fonts->AddFontFromFileTTF("fonts/Roboto-Medium.ttf");
- //io.Fonts->AddFontFromFileTTF("fonts/Cousine-Regular.ttf");
- //io.Fonts->AddFontFromFileTTF("fonts/ProggyTiny.ttf");
- //ImFont* font = io.Fonts->AddFontFromFileTTF("fonts/ArialUni.ttf");
- //IM_ASSERT(font != nullptr);
-#endif
-
- // Our state
- bool show_demo_window = true;
- bool show_another_window = false;
- ImVec4 clear_color = ImVec4(0.45f, 0.55f, 0.60f, 1.00f);
-
- // Main loop
-#ifdef __EMSCRIPTEN__
- // For an Emscripten build we are disabling file-system access, so let's not attempt to do a fopen() of the imgui.ini file.
- // You may manually call LoadIniSettingsFromMemory() to load settings from your own storage.
- io.IniFilename = nullptr;
- EMSCRIPTEN_MAINLOOP_BEGIN
-#else
- while (!glfwWindowShouldClose(window))
-#endif
- {
- // Poll and handle events (inputs, window resize, etc.)
- // You can read the io.WantCaptureMouse, io.WantCaptureKeyboard flags to tell if dear imgui wants to use your inputs.
- // - When io.WantCaptureMouse is true, do not dispatch mouse input data to your main application, or clear/overwrite your copy of the mouse data.
- // - When io.WantCaptureKeyboard is true, do not dispatch keyboard input data to your main application, or clear/overwrite your copy of the keyboard data.
- // Generally you may always pass all inputs to dear imgui, and hide them from your application based on those two flags.
- glfwPollEvents();
- if (glfwGetWindowAttrib(window, GLFW_ICONIFIED) != 0)
- {
- ImGui_ImplGlfw_Sleep(10);
- continue;
- }
-
- // React to changes in screen size
- int width, height;
- glfwGetFramebufferSize((GLFWwindow*)window, &width, &height);
- if (width != wgpu_swap_chain_width || height != wgpu_swap_chain_height)
- {
- ImGui_ImplWGPU_InvalidateDeviceObjects();
- CreateSwapChain(width, height);
- ImGui_ImplWGPU_CreateDeviceObjects();
- }
-
- // Start the Dear ImGui frame
- ImGui_ImplWGPU_NewFrame();
- ImGui_ImplGlfw_NewFrame();
- ImGui::NewFrame();
-
- // 1. Show the big demo window (Most of the sample code is in ImGui::ShowDemoWindow()! You can browse its code to learn more about Dear ImGui!).
- if (show_demo_window)
- ImGui::ShowDemoWindow(&show_demo_window);
-
- // 2. Show a simple window that we create ourselves. We use a Begin/End pair to create a named window.
- {
- static float f = 0.0f;
- static int counter = 0;
-
- ImGui::Begin("Hello, world!"); // Create a window called "Hello, world!" and append into it.
-
- ImGui::Text("This is some useful text."); // Display some text (you can use a format strings too)
- ImGui::Checkbox("Demo Window", &show_demo_window); // Edit bools storing our window open/close state
- ImGui::Checkbox("Another Window", &show_another_window);
-
- ImGui::SliderFloat("float", &f, 0.0f, 1.0f); // Edit 1 float using a slider from 0.0f to 1.0f
- ImGui::ColorEdit3("clear color", (float*)&clear_color); // Edit 3 floats representing a color
-
- if (ImGui::Button("Button")) // Buttons return true when clicked (most widgets return true when edited/activated)
- counter++;
- ImGui::SameLine();
- ImGui::Text("counter = %d", counter);
-
- ImGui::Text("Application average %.3f ms/frame (%.1f FPS)", 1000.0f / io.Framerate, io.Framerate);
- ImGui::End();
- }
-
- // 3. Show another simple window.
- if (show_another_window)
- {
- ImGui::Begin("Another Window", &show_another_window); // Pass a pointer to our bool variable (the window will have a closing button that will clear the bool when clicked)
- ImGui::Text("Hello from another window!");
- if (ImGui::Button("Close Me"))
- show_another_window = false;
- ImGui::End();
- }
-
- // Rendering
- ImGui::Render();
-
-#ifndef __EMSCRIPTEN__
- // Tick needs to be called in Dawn to display validation errors
- wgpuDeviceTick(wgpu_device);
-#endif
-
- WGPURenderPassColorAttachment color_attachments = {};
- color_attachments.depthSlice = WGPU_DEPTH_SLICE_UNDEFINED;
- color_attachments.loadOp = WGPULoadOp_Clear;
- color_attachments.storeOp = WGPUStoreOp_Store;
- color_attachments.clearValue = { clear_color.x * clear_color.w, clear_color.y * clear_color.w, clear_color.z * clear_color.w, clear_color.w };
- color_attachments.view = wgpuSwapChainGetCurrentTextureView(wgpu_swap_chain);
-
- WGPURenderPassDescriptor render_pass_desc = {};
- render_pass_desc.colorAttachmentCount = 1;
- render_pass_desc.colorAttachments = &color_attachments;
- render_pass_desc.depthStencilAttachment = nullptr;
-
- WGPUCommandEncoderDescriptor enc_desc = {};
- WGPUCommandEncoder encoder = wgpuDeviceCreateCommandEncoder(wgpu_device, &enc_desc);
-
- WGPURenderPassEncoder pass = wgpuCommandEncoderBeginRenderPass(encoder, &render_pass_desc);
- ImGui_ImplWGPU_RenderDrawData(ImGui::GetDrawData(), pass);
- wgpuRenderPassEncoderEnd(pass);
-
- WGPUCommandBufferDescriptor cmd_buffer_desc = {};
- WGPUCommandBuffer cmd_buffer = wgpuCommandEncoderFinish(encoder, &cmd_buffer_desc);
- WGPUQueue queue = wgpuDeviceGetQueue(wgpu_device);
- wgpuQueueSubmit(queue, 1, &cmd_buffer);
-
-#ifndef __EMSCRIPTEN__
- wgpuSwapChainPresent(wgpu_swap_chain);
-#endif
-
- wgpuTextureViewRelease(color_attachments.view);
- wgpuRenderPassEncoderRelease(pass);
- wgpuCommandEncoderRelease(encoder);
- wgpuCommandBufferRelease(cmd_buffer);
- }
-#ifdef __EMSCRIPTEN__
- EMSCRIPTEN_MAINLOOP_END;
-#endif
-
- // Cleanup
- ImGui_ImplWGPU_Shutdown();
- ImGui_ImplGlfw_Shutdown();
- ImGui::DestroyContext();
-
- glfwDestroyWindow(window);
- glfwTerminate();
-
- return 0;
-}
-
-#ifndef __EMSCRIPTEN__
-static WGPUAdapter RequestAdapter(WGPUInstance instance)
-{
- auto onAdapterRequestEnded = [](WGPURequestAdapterStatus status, WGPUAdapter adapter, const char* message, void* pUserData)
- {
- if (status == WGPURequestAdapterStatus_Success)
- *(WGPUAdapter*)(pUserData) = adapter;
- else
- printf("Could not get WebGPU adapter: %s\n", message);
-};
- WGPUAdapter adapter;
- wgpuInstanceRequestAdapter(instance, nullptr, onAdapterRequestEnded, (void*)&adapter);
- return adapter;
-}
-
-static WGPUDevice RequestDevice(WGPUAdapter& adapter)
-{
- auto onDeviceRequestEnded = [](WGPURequestDeviceStatus status, WGPUDevice device, const char* message, void* pUserData)
- {
- if (status == WGPURequestDeviceStatus_Success)
- *(WGPUDevice*)(pUserData) = device;
- else
- printf("Could not get WebGPU device: %s\n", message);
- };
- WGPUDevice device;
- wgpuAdapterRequestDevice(adapter, nullptr, onDeviceRequestEnded, (void*)&device);
- return device;
-}
-#endif
-
-static bool InitWGPU(GLFWwindow* window)
-{
- wgpu::Instance instance = wgpuCreateInstance(nullptr);
-
-#ifdef __EMSCRIPTEN__
- wgpu_device = emscripten_webgpu_get_device();
- if (!wgpu_device)
- return false;
-#else
- WGPUAdapter adapter = RequestAdapter(instance.Get());
- if (!adapter)
- return false;
- wgpu_device = RequestDevice(adapter);
-#endif
-
-#ifdef __EMSCRIPTEN__
- wgpu::SurfaceDescriptorFromCanvasHTMLSelector html_surface_desc = {};
- html_surface_desc.selector = "#canvas";
- wgpu::SurfaceDescriptor surface_desc = {};
- surface_desc.nextInChain = &html_surface_desc;
- wgpu::Surface surface = instance.CreateSurface(&surface_desc);
-
- wgpu::Adapter adapter = {};
- wgpu_preferred_fmt = (WGPUTextureFormat)surface.GetPreferredFormat(adapter);
-#else
- wgpu::Surface surface = wgpu::glfw::CreateSurfaceForWindow(instance, window);
- if (!surface)
- return false;
- wgpu_preferred_fmt = WGPUTextureFormat_BGRA8Unorm;
-#endif
-
- wgpu_instance = instance.MoveToCHandle();
- wgpu_surface = surface.MoveToCHandle();
-
- wgpuDeviceSetUncapturedErrorCallback(wgpu_device, wgpu_error_callback, nullptr);
-
- return true;
-}
-
-static void CreateSwapChain(int width, int height)
-{
- if (wgpu_swap_chain)
- wgpuSwapChainRelease(wgpu_swap_chain);
- wgpu_swap_chain_width = width;
- wgpu_swap_chain_height = height;
- WGPUSwapChainDescriptor swap_chain_desc = {};
- swap_chain_desc.usage = WGPUTextureUsage_RenderAttachment;
- swap_chain_desc.format = wgpu_preferred_fmt;
- swap_chain_desc.width = width;
- swap_chain_desc.height = height;
- swap_chain_desc.presentMode = WGPUPresentMode_Fifo;
- wgpu_swap_chain = wgpuDeviceCreateSwapChain(wgpu_device, wgpu_surface, &swap_chain_desc);
-}
diff --git a/imgui-1.92.1/examples/example_glut_opengl2/Makefile b/imgui-1.92.1/examples/example_glut_opengl2/Makefile
deleted file mode 100644
index 7af289d..0000000
--- a/imgui-1.92.1/examples/example_glut_opengl2/Makefile
+++ /dev/null
@@ -1,75 +0,0 @@
-#
-# Cross Platform Makefile
-# Compatible with MSYS2/MINGW, Ubuntu 14.04.1 and Mac OS X
-#
-# Linux:
-# apt-get install freeglut3-dev
-#
-
-#CXX = g++
-#CXX = clang++
-
-EXE = example_glut_opengl2
-IMGUI_DIR = ../..
-SOURCES = main.cpp
-SOURCES += $(IMGUI_DIR)/imgui.cpp $(IMGUI_DIR)/imgui_demo.cpp $(IMGUI_DIR)/imgui_draw.cpp $(IMGUI_DIR)/imgui_tables.cpp $(IMGUI_DIR)/imgui_widgets.cpp
-SOURCES += $(IMGUI_DIR)/backends/imgui_impl_glut.cpp $(IMGUI_DIR)/backends/imgui_impl_opengl2.cpp
-OBJS = $(addsuffix .o, $(basename $(notdir $(SOURCES))))
-UNAME_S := $(shell uname -s)
-
-CXXFLAGS = -std=c++11 -I$(IMGUI_DIR) -I$(IMGUI_DIR)/backends
-CXXFLAGS += -g -Wall -Wformat
-LIBS =
-
-##---------------------------------------------------------------------
-## BUILD FLAGS PER PLATFORM
-##---------------------------------------------------------------------
-
-ifeq ($(UNAME_S), Linux) #LINUX
- ECHO_MESSAGE = "Linux"
- LIBS += -lGL -lglut
- CFLAGS = $(CXXFLAGS)
-endif
-
-ifeq ($(UNAME_S), Darwin) #APPLE
- ECHO_MESSAGE = "Mac OS X"
- LIBS += -framework OpenGL -framework GLUT
- LIBS += -L/usr/local/lib -L/opt/local/lib
-
- CXXFLAGS += -I/usr/local/include -I/opt/local/include
- CFLAGS = $(CXXFLAGS)
-endif
-
-ifeq ($(OS), Windows_NT)
- ECHO_MESSAGE = "MinGW"
- LIBS += -lgdi32 -lopengl32 -limm32
-ifeq ($(shell pkg-config freeglut --exists 2> /dev/null && echo yes || echo no),yes)
- CXXFLAGS += $(shell pkg-config freeglut --cflags)
- LIBS += $(shell pkg-config freeglut --libs)
-else
- LIBS += -lglut
-endif
- CFLAGS = $(CXXFLAGS)
-endif
-
-##---------------------------------------------------------------------
-## BUILD RULES
-##---------------------------------------------------------------------
-
-%.o:%.cpp
- $(CXX) $(CXXFLAGS) -c -o $@ $<
-
-%.o:$(IMGUI_DIR)/%.cpp
- $(CXX) $(CXXFLAGS) -c -o $@ $<
-
-%.o:$(IMGUI_DIR)/backends/%.cpp
- $(CXX) $(CXXFLAGS) -c -o $@ $<
-
-all: $(EXE)
- @echo Build complete for $(ECHO_MESSAGE)
-
-$(EXE): $(OBJS)
- $(CXX) -o $@ $^ $(CXXFLAGS) $(LIBS)
-
-clean:
- rm -f $(EXE) $(OBJS)
diff --git a/imgui-1.92.1/examples/example_glut_opengl2/example_glut_opengl2.vcxproj b/imgui-1.92.1/examples/example_glut_opengl2/example_glut_opengl2.vcxproj
deleted file mode 100644
index c56452b..0000000
--- a/imgui-1.92.1/examples/example_glut_opengl2/example_glut_opengl2.vcxproj
+++ /dev/null
@@ -1,186 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="Debug|Win32">
- <Configuration>Debug</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Debug|x64">
- <Configuration>Debug</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|Win32">
- <Configuration>Release</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|x64">
- <Configuration>Release</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- </ItemGroup>
- <PropertyGroup Label="Globals">
- <ProjectGuid>{F90D0333-5FB1-440D-918D-DD39A1B5187E}</ProjectGuid>
- <RootNamespace>example_glut_opengl2</RootNamespace>
- <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>true</UseDebugLibraries>
- <CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>true</UseDebugLibraries>
- <CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>false</UseDebugLibraries>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- <CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>false</UseDebugLibraries>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- <CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
- <ImportGroup Label="ExtensionSettings">
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <PropertyGroup Label="UserMacros" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <OutDir>$(ProjectDir)$(Configuration)\</OutDir>
- <IntDir>$(ProjectDir)$(Configuration)\</IntDir>
- <IncludePath>$(IncludePath)</IncludePath>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <OutDir>$(ProjectDir)$(Configuration)\</OutDir>
- <IntDir>$(ProjectDir)$(Configuration)\</IntDir>
- <IncludePath>$(IncludePath)</IncludePath>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <OutDir>$(ProjectDir)$(Configuration)\</OutDir>
- <IntDir>$(ProjectDir)$(Configuration)\</IntDir>
- <IncludePath>$(IncludePath)</IncludePath>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <OutDir>$(ProjectDir)$(Configuration)\</OutDir>
- <IntDir>$(ProjectDir)$(Configuration)\</IntDir>
- <IncludePath>$(IncludePath)</IncludePath>
- </PropertyGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <ClCompile>
- <WarningLevel>Level4</WarningLevel>
- <Optimization>Disabled</Optimization>
- <AdditionalIncludeDirectories>$(GLUT_INCLUDE_DIR);..\..;..\..\backends;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
- </ClCompile>
- <Link>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <AdditionalLibraryDirectories>$(GLUT_ROOT_PATH)/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
- <AdditionalDependencies>opengl32.lib;freeglut.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <SubSystem>Console</SubSystem>
- <IgnoreSpecificDefaultLibraries>msvcrt.lib</IgnoreSpecificDefaultLibraries>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <ClCompile>
- <WarningLevel>Level4</WarningLevel>
- <Optimization>Disabled</Optimization>
- <AdditionalIncludeDirectories>$(GLUT_INCLUDE_DIR);..\..;..\..\backends;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
- </ClCompile>
- <Link>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <AdditionalLibraryDirectories>$(GLUT_ROOT_PATH)/lib/x64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
- <AdditionalDependencies>opengl32.lib;freeglut.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <SubSystem>Console</SubSystem>
- <IgnoreSpecificDefaultLibraries>msvcrt.lib</IgnoreSpecificDefaultLibraries>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <ClCompile>
- <WarningLevel>Level4</WarningLevel>
- <Optimization>MaxSpeed</Optimization>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <IntrinsicFunctions>true</IntrinsicFunctions>
- <AdditionalIncludeDirectories>$(GLUT_INCLUDE_DIR);..\..;..\..\backends;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <BufferSecurityCheck>false</BufferSecurityCheck>
- <AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
- </ClCompile>
- <Link>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- <OptimizeReferences>true</OptimizeReferences>
- <AdditionalLibraryDirectories>$(GLUT_ROOT_PATH)/lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
- <AdditionalDependencies>opengl32.lib;freeglut.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <SubSystem>Console</SubSystem>
- <IgnoreSpecificDefaultLibraries>
- </IgnoreSpecificDefaultLibraries>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <ClCompile>
- <WarningLevel>Level4</WarningLevel>
- <Optimization>MaxSpeed</Optimization>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <IntrinsicFunctions>true</IntrinsicFunctions>
- <AdditionalIncludeDirectories>$(GLUT_INCLUDE_DIR);..\..;..\..\backends;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <BufferSecurityCheck>false</BufferSecurityCheck>
- <AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
- </ClCompile>
- <Link>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- <OptimizeReferences>true</OptimizeReferences>
- <AdditionalLibraryDirectories>$(GLUT_ROOT_PATH)/lib/x64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
- <AdditionalDependencies>opengl32.lib;freeglut.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <SubSystem>Console</SubSystem>
- <IgnoreSpecificDefaultLibraries>
- </IgnoreSpecificDefaultLibraries>
- </Link>
- </ItemDefinitionGroup>
- <ItemGroup>
- <ClCompile Include="..\..\imgui.cpp" />
- <ClCompile Include="..\..\imgui_demo.cpp" />
- <ClCompile Include="..\..\imgui_draw.cpp" />
- <ClCompile Include="..\..\imgui_tables.cpp" />
- <ClCompile Include="..\..\imgui_widgets.cpp" />
- <ClCompile Include="..\..\backends\imgui_impl_glut.cpp" />
- <ClCompile Include="..\..\backends\imgui_impl_opengl2.cpp" />
- <ClCompile Include="main.cpp" />
- </ItemGroup>
- <ItemGroup>
- <ClInclude Include="..\..\imconfig.h" />
- <ClInclude Include="..\..\imgui.h" />
- <ClInclude Include="..\..\imgui_internal.h" />
- <ClInclude Include="..\..\backends\imgui_impl_glut.h" />
- <ClInclude Include="..\..\backends\imgui_impl_opengl2.h" />
- </ItemGroup>
- <ItemGroup>
- <None Include="..\..\misc\debuggers\imgui.natstepfilter" />
- <None Include="..\..\misc\debuggers\imgui.natvis" />
- <None Include="..\README.txt" />
- </ItemGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
- <ImportGroup Label="ExtensionTargets">
- </ImportGroup>
-</Project> \ No newline at end of file
diff --git a/imgui-1.92.1/examples/example_glut_opengl2/example_glut_opengl2.vcxproj.filters b/imgui-1.92.1/examples/example_glut_opengl2/example_glut_opengl2.vcxproj.filters
deleted file mode 100644
index 0ac4a0b..0000000
--- a/imgui-1.92.1/examples/example_glut_opengl2/example_glut_opengl2.vcxproj.filters
+++ /dev/null
@@ -1,64 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup>
- <Filter Include="imgui">
- <UniqueIdentifier>{c336cfe3-f0c4-464c-9ef0-a9e17a7ff222}</UniqueIdentifier>
- </Filter>
- <Filter Include="sources">
- <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
- <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
- </Filter>
- </ItemGroup>
- <ItemGroup>
- <ClCompile Include="main.cpp">
- <Filter>sources</Filter>
- </ClCompile>
- <ClCompile Include="..\..\imgui.cpp">
- <Filter>imgui</Filter>
- </ClCompile>
- <ClCompile Include="..\..\imgui_demo.cpp">
- <Filter>imgui</Filter>
- </ClCompile>
- <ClCompile Include="..\..\imgui_draw.cpp">
- <Filter>imgui</Filter>
- </ClCompile>
- <ClCompile Include="..\..\imgui_tables.cpp">
- <Filter>imgui</Filter>
- </ClCompile>
- <ClCompile Include="..\..\imgui_widgets.cpp">
- <Filter>imgui</Filter>
- </ClCompile>
- <ClCompile Include="..\..\backends\imgui_impl_glut.cpp">
- <Filter>sources</Filter>
- </ClCompile>
- <ClCompile Include="..\..\backends\imgui_impl_opengl2.cpp">
- <Filter>sources</Filter>
- </ClCompile>
- </ItemGroup>
- <ItemGroup>
- <ClInclude Include="..\..\imconfig.h">
- <Filter>imgui</Filter>
- </ClInclude>
- <ClInclude Include="..\..\imgui.h">
- <Filter>imgui</Filter>
- </ClInclude>
- <ClInclude Include="..\..\imgui_internal.h">
- <Filter>imgui</Filter>
- </ClInclude>
- <ClInclude Include="..\..\backends\imgui_impl_glut.h">
- <Filter>sources</Filter>
- </ClInclude>
- <ClInclude Include="..\..\backends\imgui_impl_opengl2.h">
- <Filter>sources</Filter>
- </ClInclude>
- </ItemGroup>
- <ItemGroup>
- <None Include="..\README.txt" />
- <None Include="..\..\misc\debuggers\imgui.natvis">
- <Filter>imgui</Filter>
- </None>
- <None Include="..\..\misc\debuggers\imgui.natstepfilter">
- <Filter>imgui</Filter>
- </None>
- </ItemGroup>
-</Project> \ No newline at end of file
diff --git a/imgui-1.92.1/examples/example_glut_opengl2/main.cpp b/imgui-1.92.1/examples/example_glut_opengl2/main.cpp
deleted file mode 100644
index 69f85a2..0000000
--- a/imgui-1.92.1/examples/example_glut_opengl2/main.cpp
+++ /dev/null
@@ -1,164 +0,0 @@
-// Dear ImGui: standalone example application for GLUT/FreeGLUT + OpenGL2, using legacy fixed pipeline
-
-// Learn about Dear ImGui:
-// - FAQ https://dearimgui.com/faq
-// - Getting Started https://dearimgui.com/getting-started
-// - Documentation https://dearimgui.com/docs (same as your local docs/ folder).
-// - Introduction, links and more at the top of imgui.cpp
-
-// !!! GLUT/FreeGLUT IS OBSOLETE PREHISTORIC SOFTWARE. Using GLUT is not recommended unless you really miss the 90's. !!!
-// !!! If someone or something is teaching you GLUT today, you are being abused. Please show some resistance. !!!
-// !!! Nowadays, prefer using GLFW or SDL instead!
-
-// On Windows, you can install Freeglut using vcpkg:
-// git clone https://github.com/Microsoft/vcpkg
-// cd vcpkg
-// bootstrap - vcpkg.bat
-// vcpkg install freeglut --triplet=x86-windows ; for win32
-// vcpkg install freeglut --triplet=x64-windows ; for win64
-// vcpkg integrate install ; register include and libs in Visual Studio
-
-#include "imgui.h"
-#include "imgui_impl_glut.h"
-#include "imgui_impl_opengl2.h"
-#define GL_SILENCE_DEPRECATION
-#ifdef __APPLE__
-#include <GLUT/glut.h>
-#else
-#include <GL/freeglut.h>
-#endif
-
-#ifdef _MSC_VER
-#pragma warning (disable: 4505) // unreferenced local function has been removed
-#endif
-
-// Forward declarations of helper functions
-void MainLoopStep();
-
-// Our state
-static bool show_demo_window = true;
-static bool show_another_window = false;
-static ImVec4 clear_color = ImVec4(0.45f, 0.55f, 0.60f, 1.00f);
-
-int main(int argc, char** argv)
-{
- // Create GLUT window
- glutInit(&argc, argv);
-#ifdef __FREEGLUT_EXT_H__
- glutSetOption(GLUT_ACTION_ON_WINDOW_CLOSE, GLUT_ACTION_GLUTMAINLOOP_RETURNS);
-#endif
- glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE | GLUT_MULTISAMPLE);
- glutInitWindowSize(1280, 720);
- glutCreateWindow("Dear ImGui GLUT+OpenGL2 Example");
-
- // Setup GLUT display function
- // We will also call ImGui_ImplGLUT_InstallFuncs() to get all the other functions installed for us,
- // otherwise it is possible to install our own functions and call the imgui_impl_glut.h functions ourselves.
- glutDisplayFunc(MainLoopStep);
-
- // Setup Dear ImGui context
- IMGUI_CHECKVERSION();
- ImGui::CreateContext();
- ImGuiIO& io = ImGui::GetIO(); (void)io;
- io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard; // Enable Keyboard Controls
-
- // Setup Dear ImGui style
- ImGui::StyleColorsDark();
- //ImGui::StyleColorsLight();
-
- // Setup Platform/Renderer backends
- // FIXME: Consider reworking this example to install our own GLUT funcs + forward calls ImGui_ImplGLUT_XXX ones, instead of using ImGui_ImplGLUT_InstallFuncs().
- ImGui_ImplGLUT_Init();
- ImGui_ImplOpenGL2_Init();
-
- // Install GLUT handlers (glutReshapeFunc(), glutMotionFunc(), glutPassiveMotionFunc(), glutMouseFunc(), glutKeyboardFunc() etc.)
- // You can read the io.WantCaptureMouse, io.WantCaptureKeyboard flags to tell if dear imgui wants to use your inputs.
- // - When io.WantCaptureMouse is true, do not dispatch mouse input data to your main application, or clear/overwrite your copy of the mouse data.
- // - When io.WantCaptureKeyboard is true, do not dispatch keyboard input data to your main application, or clear/overwrite your copy of the keyboard data.
- // Generally you may always pass all inputs to dear imgui, and hide them from your application based on those two flags.
- ImGui_ImplGLUT_InstallFuncs();
-
-
- // Load Fonts
- // - If no fonts are loaded, dear imgui will use the default font. You can also load multiple fonts and use ImGui::PushFont()/PopFont() to select them.
- // - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
- // - If the file cannot be loaded, the function will return a nullptr. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
- // - Use '#define IMGUI_ENABLE_FREETYPE' in your imconfig file to use Freetype for higher quality font rendering.
- // - Read 'docs/FONTS.md' for more instructions and details.
- // - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
- //style.FontSizeBase = 20.0f;
- //io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\segoeui.ttf");
- //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf");
- //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf");
- //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf");
- //ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf");
- //IM_ASSERT(font != nullptr);
-
- // Main loop
- glutMainLoop();
-
- // Cleanup
- ImGui_ImplOpenGL2_Shutdown();
- ImGui_ImplGLUT_Shutdown();
- ImGui::DestroyContext();
-
- return 0;
-}
-
-void MainLoopStep()
-{
- // Start the Dear ImGui frame
- ImGui_ImplOpenGL2_NewFrame();
- ImGui_ImplGLUT_NewFrame();
- ImGui::NewFrame();
- ImGuiIO& io = ImGui::GetIO();
-
- // 1. Show the big demo window (Most of the sample code is in ImGui::ShowDemoWindow()! You can browse its code to learn more about Dear ImGui!).
- if (show_demo_window)
- ImGui::ShowDemoWindow(&show_demo_window);
-
- // 2. Show a simple window that we create ourselves. We use a Begin/End pair to create a named window.
- {
- static float f = 0.0f;
- static int counter = 0;
-
- ImGui::Begin("Hello, world!"); // Create a window called "Hello, world!" and append into it.
-
- ImGui::Text("This is some useful text."); // Display some text (you can use a format strings too)
- ImGui::Checkbox("Demo Window", &show_demo_window); // Edit bools storing our window open/close state
- ImGui::Checkbox("Another Window", &show_another_window);
-
- ImGui::SliderFloat("float", &f, 0.0f, 1.0f); // Edit 1 float using a slider from 0.0f to 1.0f
- ImGui::ColorEdit3("clear color", (float*)&clear_color); // Edit 3 floats representing a color
-
- if (ImGui::Button("Button")) // Buttons return true when clicked (most widgets return true when edited/activated)
- counter++;
- ImGui::SameLine();
- ImGui::Text("counter = %d", counter);
-
- ImGui::Text("Application average %.3f ms/frame (%.1f FPS)", 1000.0f / io.Framerate, io.Framerate);
- ImGui::End();
- }
-
- // 3. Show another simple window.
- if (show_another_window)
- {
- ImGui::Begin("Another Window", &show_another_window); // Pass a pointer to our bool variable (the window will have a closing button that will clear the bool when clicked)
- ImGui::Text("Hello from another window!");
- if (ImGui::Button("Close Me"))
- show_another_window = false;
- ImGui::End();
- }
-
- // Rendering
- ImGui::Render();
- glViewport(0, 0, (GLsizei)io.DisplaySize.x, (GLsizei)io.DisplaySize.y);
- glClearColor(clear_color.x * clear_color.w, clear_color.y * clear_color.w, clear_color.z * clear_color.w, clear_color.w);
- glClear(GL_COLOR_BUFFER_BIT);
- //glUseProgram(0); // You may want this if using this code in an OpenGL 3+ context where shaders may be bound, but prefer using the GL3+ code.
- ImGui_ImplOpenGL2_RenderDrawData(ImGui::GetDrawData());
-
- glutSwapBuffers();
- glutPostRedisplay();
-}
diff --git a/imgui-1.92.1/examples/example_null/Makefile b/imgui-1.92.1/examples/example_null/Makefile
deleted file mode 100644
index 4a67cec..0000000
--- a/imgui-1.92.1/examples/example_null/Makefile
+++ /dev/null
@@ -1,92 +0,0 @@
-#
-# Cross Platform Makefile
-# Compatible with MSYS2/MINGW, Ubuntu 14.04.1+ and Mac OS X
-#
-# Important: This is a "null backend" application, with no visible output or interaction!
-# This is used for testing purpose and continuous integration, and has little use for end-user.
-#
-
-# Options
-WITH_EXTRA_WARNINGS ?= 0
-WITH_FREETYPE ?= 0
-
-EXE = example_null
-IMGUI_DIR = ../..
-SOURCES = main.cpp
-SOURCES += $(IMGUI_DIR)/imgui.cpp $(IMGUI_DIR)/imgui_demo.cpp $(IMGUI_DIR)/imgui_draw.cpp $(IMGUI_DIR)/imgui_tables.cpp $(IMGUI_DIR)/imgui_widgets.cpp
-OBJS = $(addsuffix .o, $(basename $(notdir $(SOURCES))))
-UNAME_S := $(shell uname -s)
-
-CXXFLAGS += -std=c++11 -I$(IMGUI_DIR)
-CXXFLAGS += -g -Wall -Wformat
-LIBS =
-
-# We use the WITH_EXTRA_WARNINGS flag on our CI setup to eagerly catch zealous warnings
-ifeq ($(WITH_EXTRA_WARNINGS), 1)
- CXXFLAGS += -Wno-zero-as-null-pointer-constant -Wno-double-promotion -Wno-variadic-macros
-endif
-
-# We use the WITH_FREETYPE flag on our CI setup to test compiling misc/freetype/imgui_freetype.cpp
-# (only supported on Linux, and note that the imgui_freetype code currently won't be executed)
-ifeq ($(WITH_FREETYPE), 1)
- SOURCES += $(IMGUI_DIR)/misc/freetype/imgui_freetype.cpp
- CXXFLAGS += $(shell pkg-config --cflags freetype2)
- LIBS += $(shell pkg-config --libs freetype2)
-endif
-
-##---------------------------------------------------------------------
-## BUILD FLAGS PER PLATFORM
-##---------------------------------------------------------------------
-
-ifeq ($(UNAME_S), Linux) #LINUX
- ECHO_MESSAGE = "Linux"
- ifeq ($(WITH_EXTRA_WARNINGS), 1)
- CXXFLAGS += -Wextra -Wpedantic
- ifeq ($(shell $(CXX) -v 2>&1 | grep -c "clang version"), 1)
- CXXFLAGS += -Wshadow -Wsign-conversion
- endif
- endif
- CFLAGS = $(CXXFLAGS)
-endif
-
-ifeq ($(UNAME_S), Darwin) #APPLE
- ECHO_MESSAGE = "Mac OS X"
- ifeq ($(WITH_EXTRA_WARNINGS), 1)
- CXXFLAGS += -Weverything -Wno-reserved-id-macro -Wno-c++98-compat-pedantic -Wno-padded -Wno-poison-system-directories
- endif
- CFLAGS = $(CXXFLAGS)
-endif
-
-ifeq ($(OS), Windows_NT)
- ECHO_MESSAGE = "MinGW"
- ifeq ($(WITH_EXTRA_WARNINGS), 1)
- CXXFLAGS += -Wextra -Wpedantic
- endif
- LIBS += -limm32
- CFLAGS = $(CXXFLAGS)
-endif
-
-##---------------------------------------------------------------------
-## BUILD RULES
-##---------------------------------------------------------------------
-
-%.o:%.cpp
- $(CXX) $(CXXFLAGS) -c -o $@ $<
-
-%.o:$(IMGUI_DIR)/%.cpp
- $(CXX) $(CXXFLAGS) -c -o $@ $<
-
-%.o:$(IMGUI_DIR)/backends/%.cpp
- $(CXX) $(CXXFLAGS) -c -o $@ $<
-
-%.o:$(IMGUI_DIR)/misc/freetype/%.cpp
- $(CXX) $(CXXFLAGS) -c -o $@ $<
-
-all: $(EXE)
- @echo Build complete for $(ECHO_MESSAGE)
-
-$(EXE): $(OBJS)
- $(CXX) -o $@ $^ $(CXXFLAGS) $(LIBS)
-
-clean:
- rm -f $(EXE) $(OBJS)
diff --git a/imgui-1.92.1/examples/example_null/build_win32.bat b/imgui-1.92.1/examples/example_null/build_win32.bat
deleted file mode 100644
index be81d80..0000000
--- a/imgui-1.92.1/examples/example_null/build_win32.bat
+++ /dev/null
@@ -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 /utf-8 /I ..\.. %* *.cpp ..\..\*.cpp /FeDebug/example_null.exe /FoDebug/ /link gdi32.lib shell32.lib imm32.lib
diff --git a/imgui-1.92.1/examples/example_null/main.cpp b/imgui-1.92.1/examples/example_null/main.cpp
deleted file mode 100644
index 460f33c..0000000
--- a/imgui-1.92.1/examples/example_null/main.cpp
+++ /dev/null
@@ -1,38 +0,0 @@
-// dear imgui: "null" example application
-// (compile and link imgui, create context, run headless with NO INPUTS, NO GRAPHICS OUTPUT)
-// This is useful to test building, but you cannot interact with anything here!
-#include "imgui.h"
-#include <stdio.h>
-
-int main(int, char**)
-{
- IMGUI_CHECKVERSION();
- ImGui::CreateContext();
- ImGuiIO& io = ImGui::GetIO();
-
- // Build atlas
- //unsigned char* tex_pixels = nullptr;
- //int tex_w, tex_h;
- //io.Fonts->GetTexDataAsRGBA32(&tex_pixels, &tex_w, &tex_h);
- io.BackendFlags |= ImGuiBackendFlags_RendererHasTextures;
-
- for (int n = 0; n < 20; n++)
- {
- printf("NewFrame() %d\n", n);
- io.DisplaySize = ImVec2(1920, 1080);
- io.DeltaTime = 1.0f / 60.0f;
- ImGui::NewFrame();
-
- static float f = 0.0f;
- ImGui::Text("Hello, world!");
- ImGui::SliderFloat("float", &f, 0.0f, 1.0f);
- ImGui::Text("Application average %.3f ms/frame (%.1f FPS)", 1000.0f / io.Framerate, io.Framerate);
- ImGui::ShowDemoWindow(nullptr);
-
- ImGui::Render();
- }
-
- printf("DestroyContext()\n");
- ImGui::DestroyContext();
- return 0;
-}
diff --git a/imgui-1.92.1/examples/example_sdl2_directx11/build_win32.bat b/imgui-1.92.1/examples/example_sdl2_directx11/build_win32.bat
deleted file mode 100644
index f0b485c..0000000
--- a/imgui-1.92.1/examples/example_sdl2_directx11/build_win32.bat
+++ /dev/null
@@ -1,8 +0,0 @@
-@REM Build for Visual Studio compiler. Run your copy of vcvars32.bat or vcvarsall.bat to setup command-line compiler.
-@set OUT_DIR=Debug
-@set OUT_EXE=example_sdl2_directx11
-@set INCLUDES=/I..\.. /I..\..\backends /I%SDL2_DIR%\include /I "%WindowsSdkDir%Include\um" /I "%WindowsSdkDir%Include\shared" /I "%DXSDK_DIR%Include"
-@set SOURCES=main.cpp ..\..\backends\imgui_impl_sdl2.cpp ..\..\backends\imgui_impl_dx11.cpp ..\..\imgui*.cpp
-@set LIBS=/LIBPATH:%SDL2_DIR%\lib\x86 SDL2.lib SDL2main.lib /LIBPATH:"%DXSDK_DIR%/Lib/x86" d3d11.lib d3dcompiler.lib shell32.lib
-mkdir %OUT_DIR%
-cl /nologo /Zi /MD /utf-8 %INCLUDES% %SOURCES% /Fe%OUT_DIR%/%OUT_EXE%.exe /Fo%OUT_DIR%/ /link %LIBS% /subsystem:console
diff --git a/imgui-1.92.1/examples/example_sdl2_directx11/example_sdl2_directx11.vcxproj b/imgui-1.92.1/examples/example_sdl2_directx11/example_sdl2_directx11.vcxproj
deleted file mode 100644
index c23800c..0000000
--- a/imgui-1.92.1/examples/example_sdl2_directx11/example_sdl2_directx11.vcxproj
+++ /dev/null
@@ -1,187 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="Debug|Win32">
- <Configuration>Debug</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Debug|x64">
- <Configuration>Debug</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|Win32">
- <Configuration>Release</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|x64">
- <Configuration>Release</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- </ItemGroup>
- <PropertyGroup Label="Globals">
- <ProjectGuid>{9E1987E3-1F19-45CA-B9C9-D31E791836D8}</ProjectGuid>
- <RootNamespace>example_sdl2_directx11</RootNamespace>
- <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
- <ProjectName>example_sdl2_directx11</ProjectName>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>true</UseDebugLibraries>
- <CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>true</UseDebugLibraries>
- <CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>false</UseDebugLibraries>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- <CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>false</UseDebugLibraries>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- <CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
- <ImportGroup Label="ExtensionSettings">
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <PropertyGroup Label="UserMacros" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <OutDir>$(ProjectDir)$(Configuration)\</OutDir>
- <IntDir>$(ProjectDir)$(Configuration)\</IntDir>
- <IncludePath>$(IncludePath)</IncludePath>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <OutDir>$(ProjectDir)$(Configuration)\</OutDir>
- <IntDir>$(ProjectDir)$(Configuration)\</IntDir>
- <IncludePath>$(IncludePath)</IncludePath>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <OutDir>$(ProjectDir)$(Configuration)\</OutDir>
- <IntDir>$(ProjectDir)$(Configuration)\</IntDir>
- <IncludePath>$(IncludePath)</IncludePath>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <OutDir>$(ProjectDir)$(Configuration)\</OutDir>
- <IntDir>$(ProjectDir)$(Configuration)\</IntDir>
- <IncludePath>$(IncludePath)</IncludePath>
- </PropertyGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <ClCompile>
- <WarningLevel>Level4</WarningLevel>
- <Optimization>Disabled</Optimization>
- <AdditionalIncludeDirectories>..\..;..\..\backends;%SDL2_DIR%\include;$(VcpkgCurrentInstalledDir)include\SDL2;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
- </ClCompile>
- <Link>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <AdditionalLibraryDirectories>%SDL2_DIR%\lib\x86;$(DXSDK_DIR)/Lib/x86;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
- <AdditionalDependencies>SDL2.lib;SDL2main.lib;d3d11.lib;d3dcompiler.lib;dxgi.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <SubSystem>Console</SubSystem>
- <IgnoreSpecificDefaultLibraries>msvcrt.lib</IgnoreSpecificDefaultLibraries>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <ClCompile>
- <WarningLevel>Level4</WarningLevel>
- <Optimization>Disabled</Optimization>
- <AdditionalIncludeDirectories>..\..;..\..\backends;%SDL2_DIR%\include;$(VcpkgCurrentInstalledDir)include\SDL2;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
- </ClCompile>
- <Link>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <AdditionalLibraryDirectories>%SDL2_DIR%\lib\x64;$(DXSDK_DIR)/Lib/x64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
- <AdditionalDependencies>SDL2.lib;SDL2main.lib;d3d11.lib;d3dcompiler.lib;dxgi.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <SubSystem>Console</SubSystem>
- <IgnoreSpecificDefaultLibraries>msvcrt.lib</IgnoreSpecificDefaultLibraries>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <ClCompile>
- <WarningLevel>Level4</WarningLevel>
- <Optimization>MaxSpeed</Optimization>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <IntrinsicFunctions>true</IntrinsicFunctions>
- <AdditionalIncludeDirectories>..\..;..\..\backends;%SDL2_DIR%\include;$(VcpkgCurrentInstalledDir)include\SDL2;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <BufferSecurityCheck>false</BufferSecurityCheck>
- <AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
- </ClCompile>
- <Link>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- <OptimizeReferences>true</OptimizeReferences>
- <AdditionalLibraryDirectories>%SDL2_DIR%\lib\x86;$(DXSDK_DIR)/Lib/x86;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
- <AdditionalDependencies>SDL2.lib;SDL2main.lib;d3d11.lib;d3dcompiler.lib;dxgi.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <SubSystem>Console</SubSystem>
- <IgnoreSpecificDefaultLibraries>
- </IgnoreSpecificDefaultLibraries>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <ClCompile>
- <WarningLevel>Level4</WarningLevel>
- <Optimization>MaxSpeed</Optimization>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <IntrinsicFunctions>true</IntrinsicFunctions>
- <AdditionalIncludeDirectories>..\..;..\..\backends;%SDL2_DIR%\include;$(VcpkgCurrentInstalledDir)include\SDL2;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <BufferSecurityCheck>false</BufferSecurityCheck>
- <AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
- </ClCompile>
- <Link>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- <OptimizeReferences>true</OptimizeReferences>
- <AdditionalLibraryDirectories>%SDL2_DIR%\lib\x64;$(DXSDK_DIR)/Lib/x64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
- <AdditionalDependencies>SDL2.lib;SDL2main.lib;d3d11.lib;d3dcompiler.lib;dxgi.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <SubSystem>Console</SubSystem>
- <IgnoreSpecificDefaultLibraries>
- </IgnoreSpecificDefaultLibraries>
- </Link>
- </ItemDefinitionGroup>
- <ItemGroup>
- <ClCompile Include="..\..\imgui.cpp" />
- <ClCompile Include="..\..\imgui_demo.cpp" />
- <ClCompile Include="..\..\imgui_draw.cpp" />
- <ClCompile Include="..\..\imgui_tables.cpp" />
- <ClCompile Include="..\..\imgui_widgets.cpp" />
- <ClCompile Include="..\..\backends\imgui_impl_sdl2.cpp" />
- <ClCompile Include="..\..\backends\imgui_impl_dx11.cpp" />
- <ClCompile Include="main.cpp" />
- </ItemGroup>
- <ItemGroup>
- <ClInclude Include="..\..\imconfig.h" />
- <ClInclude Include="..\..\imgui.h" />
- <ClInclude Include="..\..\imgui_internal.h" />
- <ClInclude Include="..\..\backends\imgui_impl_sdl2.h" />
- <ClInclude Include="..\..\backends\imgui_impl_dx11.h" />
- </ItemGroup>
- <ItemGroup>
- <None Include="..\..\misc\debuggers\imgui.natstepfilter" />
- <None Include="..\..\misc\debuggers\imgui.natvis" />
- <None Include="..\README.txt" />
- </ItemGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
- <ImportGroup Label="ExtensionTargets">
- </ImportGroup>
-</Project> \ No newline at end of file
diff --git a/imgui-1.92.1/examples/example_sdl2_directx11/example_sdl2_directx11.vcxproj.filters b/imgui-1.92.1/examples/example_sdl2_directx11/example_sdl2_directx11.vcxproj.filters
deleted file mode 100644
index 92d11f8..0000000
--- a/imgui-1.92.1/examples/example_sdl2_directx11/example_sdl2_directx11.vcxproj.filters
+++ /dev/null
@@ -1,63 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup>
- <Filter Include="imgui">
- <UniqueIdentifier>{0587d7a3-f2ce-4d56-b84f-a0005d3bfce6}</UniqueIdentifier>
- </Filter>
- <Filter Include="sources">
- <UniqueIdentifier>{08e36723-ce4f-4cff-9662-c40801cf1acf}</UniqueIdentifier>
- </Filter>
- </ItemGroup>
- <ItemGroup>
- <ClInclude Include="..\..\imconfig.h">
- <Filter>imgui</Filter>
- </ClInclude>
- <ClInclude Include="..\..\imgui.h">
- <Filter>imgui</Filter>
- </ClInclude>
- <ClInclude Include="..\..\imgui_internal.h">
- <Filter>imgui</Filter>
- </ClInclude>
- <ClInclude Include="..\..\backends\imgui_impl_sdl2.h">
- <Filter>sources</Filter>
- </ClInclude>
- <ClInclude Include="..\..\backends\imgui_impl_dx11.h">
- <Filter>sources</Filter>
- </ClInclude>
- </ItemGroup>
- <ItemGroup>
- <ClCompile Include="..\..\imgui.cpp">
- <Filter>imgui</Filter>
- </ClCompile>
- <ClCompile Include="main.cpp">
- <Filter>sources</Filter>
- </ClCompile>
- <ClCompile Include="..\..\imgui_demo.cpp">
- <Filter>imgui</Filter>
- </ClCompile>
- <ClCompile Include="..\..\imgui_draw.cpp">
- <Filter>imgui</Filter>
- </ClCompile>
- <ClCompile Include="..\..\imgui_tables.cpp">
- <Filter>imgui</Filter>
- </ClCompile>
- <ClCompile Include="..\..\imgui_widgets.cpp">
- <Filter>imgui</Filter>
- </ClCompile>
- <ClCompile Include="..\..\backends\imgui_impl_sdl2.cpp">
- <Filter>sources</Filter>
- </ClCompile>
- <ClCompile Include="..\..\backends\imgui_impl_dx11.cpp">
- <Filter>sources</Filter>
- </ClCompile>
- </ItemGroup>
- <ItemGroup>
- <None Include="..\README.txt" />
- <None Include="..\..\misc\debuggers\imgui.natvis">
- <Filter>imgui</Filter>
- </None>
- <None Include="..\..\misc\debuggers\imgui.natstepfilter">
- <Filter>imgui</Filter>
- </None>
- </ItemGroup>
-</Project> \ No newline at end of file
diff --git a/imgui-1.92.1/examples/example_sdl2_directx11/main.cpp b/imgui-1.92.1/examples/example_sdl2_directx11/main.cpp
deleted file mode 100644
index 194dd0e..0000000
--- a/imgui-1.92.1/examples/example_sdl2_directx11/main.cpp
+++ /dev/null
@@ -1,259 +0,0 @@
-// Dear ImGui: standalone example application for SDL2 + DirectX 11
-// (SDL is a cross-platform general purpose library for handling windows, inputs, OpenGL/Vulkan/Metal graphics context creation, etc.)
-
-// Learn about Dear ImGui:
-// - FAQ https://dearimgui.com/faq
-// - Getting Started https://dearimgui.com/getting-started
-// - Documentation https://dearimgui.com/docs (same as your local docs/ folder).
-// - Introduction, links and more at the top of imgui.cpp
-
-#include "imgui.h"
-#include "imgui_impl_sdl2.h"
-#include "imgui_impl_dx11.h"
-#include <d3d11.h>
-#include <stdio.h>
-#include <SDL.h>
-#include <SDL_syswm.h>
-
-// Data
-static ID3D11Device* g_pd3dDevice = nullptr;
-static ID3D11DeviceContext* g_pd3dDeviceContext = nullptr;
-static IDXGISwapChain* g_pSwapChain = nullptr;
-static ID3D11RenderTargetView* g_mainRenderTargetView = nullptr;
-
-// Forward declarations of helper functions
-bool CreateDeviceD3D(HWND hWnd);
-void CleanupDeviceD3D();
-void CreateRenderTarget();
-void CleanupRenderTarget();
-
-// Main code
-int main(int, char**)
-{
- // Setup SDL
- // (Some versions of SDL before <2.0.10 appears to have performance/stalling issues on a minority of Windows systems,
- // depending on whether SDL_INIT_GAMECONTROLLER is enabled or disabled.. updating to the latest version of SDL is recommended!)
-#ifdef _WIN32
- ::SetProcessDPIAware();
-#endif
- if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_TIMER | SDL_INIT_GAMECONTROLLER) != 0)
- {
- printf("Error: %s\n", SDL_GetError());
- return -1;
- }
-
- // From 2.0.18: Enable native IME.
-#ifdef SDL_HINT_IME_SHOW_UI
- SDL_SetHint(SDL_HINT_IME_SHOW_UI, "1");
-#endif
-
- // Setup window
- float main_scale = ImGui_ImplSDL2_GetContentScaleForDisplay(0);
- SDL_WindowFlags window_flags = (SDL_WindowFlags)(SDL_WINDOW_RESIZABLE | SDL_WINDOW_ALLOW_HIGHDPI);
- SDL_Window* window = SDL_CreateWindow("Dear ImGui SDL2+DirectX11 example", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, (int)(1280 * main_scale), (int)(720 * main_scale), window_flags);
- if (window == nullptr)
- {
- printf("Error: SDL_CreateWindow(): %s\n", SDL_GetError());
- return -1;
- }
-
- SDL_SysWMinfo wmInfo;
- SDL_VERSION(&wmInfo.version);
- SDL_GetWindowWMInfo(window, &wmInfo);
- HWND hwnd = (HWND)wmInfo.info.win.window;
-
- // Initialize Direct3D
- if (!CreateDeviceD3D(hwnd))
- {
- CleanupDeviceD3D();
- return 1;
- }
-
- // Setup Dear ImGui context
- IMGUI_CHECKVERSION();
- ImGui::CreateContext();
- ImGuiIO& io = ImGui::GetIO(); (void)io;
- io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard; // Enable Keyboard Controls
- io.ConfigFlags |= ImGuiConfigFlags_NavEnableGamepad; // Enable Gamepad Controls
-
- // Setup Dear ImGui style
- ImGui::StyleColorsDark();
- //ImGui::StyleColorsLight();
-
- // Setup scaling
- ImGuiStyle& style = ImGui::GetStyle();
- style.ScaleAllSizes(main_scale); // Bake a fixed style scale. (until we have a solution for dynamic style scaling, changing this requires resetting Style + calling this again)
- style.FontScaleDpi = main_scale; // Set initial font scale. (using io.ConfigDpiScaleFonts=true makes this unnecessary. We leave both here for documentation purpose)
-
- // Setup Platform/Renderer backends
- ImGui_ImplSDL2_InitForD3D(window);
- ImGui_ImplDX11_Init(g_pd3dDevice, g_pd3dDeviceContext);
-
- // Load Fonts
- // - If no fonts are loaded, dear imgui will use the default font. You can also load multiple fonts and use ImGui::PushFont()/PopFont() to select them.
- // - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
- // - If the file cannot be loaded, the function will return a nullptr. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
- // - Use '#define IMGUI_ENABLE_FREETYPE' in your imconfig file to use Freetype for higher quality font rendering.
- // - Read 'docs/FONTS.md' for more instructions and details.
- // - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
- //style.FontSizeBase = 20.0f;
- //io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\segoeui.ttf");
- //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf");
- //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf");
- //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf");
- //ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf");
- //IM_ASSERT(font != nullptr);
-
- // Our state
- bool show_demo_window = true;
- bool show_another_window = false;
- ImVec4 clear_color = ImVec4(0.45f, 0.55f, 0.60f, 1.00f);
-
- // Main loop
- bool done = false;
- while (!done)
- {
- // Poll and handle events (inputs, window resize, etc.)
- // You can read the io.WantCaptureMouse, io.WantCaptureKeyboard flags to tell if dear imgui wants to use your inputs.
- // - When io.WantCaptureMouse is true, do not dispatch mouse input data to your main application, or clear/overwrite your copy of the mouse data.
- // - When io.WantCaptureKeyboard is true, do not dispatch keyboard input data to your main application, or clear/overwrite your copy of the keyboard data.
- // Generally you may always pass all inputs to dear imgui, and hide them from your application based on those two flags.
- SDL_Event event;
- while (SDL_PollEvent(&event))
- {
- ImGui_ImplSDL2_ProcessEvent(&event);
- if (event.type == SDL_QUIT)
- done = true;
- if (event.type == SDL_WINDOWEVENT && event.window.event == SDL_WINDOWEVENT_CLOSE && event.window.windowID == SDL_GetWindowID(window))
- done = true;
- if (event.type == SDL_WINDOWEVENT && event.window.event == SDL_WINDOWEVENT_RESIZED && event.window.windowID == SDL_GetWindowID(window))
- {
- // Release all outstanding references to the swap chain's buffers before resizing.
- CleanupRenderTarget();
- g_pSwapChain->ResizeBuffers(0, 0, 0, DXGI_FORMAT_UNKNOWN, 0);
- CreateRenderTarget();
- }
- }
- if (SDL_GetWindowFlags(window) & SDL_WINDOW_MINIMIZED)
- {
- SDL_Delay(10);
- continue;
- }
-
- // Start the Dear ImGui frame
- ImGui_ImplDX11_NewFrame();
- ImGui_ImplSDL2_NewFrame();
- ImGui::NewFrame();
-
- // 1. Show the big demo window (Most of the sample code is in ImGui::ShowDemoWindow()! You can browse its code to learn more about Dear ImGui!).
- if (show_demo_window)
- ImGui::ShowDemoWindow(&show_demo_window);
-
- // 2. Show a simple window that we create ourselves. We use a Begin/End pair to create a named window.
- {
- static float f = 0.0f;
- static int counter = 0;
-
- ImGui::Begin("Hello, world!"); // Create a window called "Hello, world!" and append into it.
-
- ImGui::Text("This is some useful text."); // Display some text (you can use a format strings too)
- ImGui::Checkbox("Demo Window", &show_demo_window); // Edit bools storing our window open/close state
- ImGui::Checkbox("Another Window", &show_another_window);
-
- ImGui::SliderFloat("float", &f, 0.0f, 1.0f); // Edit 1 float using a slider from 0.0f to 1.0f
- ImGui::ColorEdit3("clear color", (float*)&clear_color); // Edit 3 floats representing a color
-
- if (ImGui::Button("Button")) // Buttons return true when clicked (most widgets return true when edited/activated)
- counter++;
- ImGui::SameLine();
- ImGui::Text("counter = %d", counter);
-
- ImGui::Text("Application average %.3f ms/frame (%.1f FPS)", 1000.0f / io.Framerate, io.Framerate);
- ImGui::End();
- }
-
- // 3. Show another simple window.
- if (show_another_window)
- {
- ImGui::Begin("Another Window", &show_another_window); // Pass a pointer to our bool variable (the window will have a closing button that will clear the bool when clicked)
- ImGui::Text("Hello from another window!");
- if (ImGui::Button("Close Me"))
- show_another_window = false;
- ImGui::End();
- }
-
- // Rendering
- ImGui::Render();
- const float clear_color_with_alpha[4] = { clear_color.x * clear_color.w, clear_color.y * clear_color.w, clear_color.z * clear_color.w, clear_color.w };
- g_pd3dDeviceContext->OMSetRenderTargets(1, &g_mainRenderTargetView, nullptr);
- g_pd3dDeviceContext->ClearRenderTargetView(g_mainRenderTargetView, clear_color_with_alpha);
- ImGui_ImplDX11_RenderDrawData(ImGui::GetDrawData());
-
- g_pSwapChain->Present(1, 0); // Present with vsync
- //g_pSwapChain->Present(0, 0); // Present without vsync
- }
-
- // Cleanup
- ImGui_ImplDX11_Shutdown();
- ImGui_ImplSDL2_Shutdown();
- ImGui::DestroyContext();
-
- CleanupDeviceD3D();
- SDL_DestroyWindow(window);
- SDL_Quit();
-
- return 0;
-}
-
-// Helper functions to use DirectX11
-bool CreateDeviceD3D(HWND hWnd)
-{
- // Setup swap chain
- DXGI_SWAP_CHAIN_DESC sd;
- ZeroMemory(&sd, sizeof(sd));
- sd.BufferCount = 2;
- sd.BufferDesc.Width = 0;
- sd.BufferDesc.Height = 0;
- sd.BufferDesc.Format = DXGI_FORMAT_R8G8B8A8_UNORM;
- sd.BufferDesc.RefreshRate.Numerator = 60;
- sd.BufferDesc.RefreshRate.Denominator = 1;
- sd.Flags = DXGI_SWAP_CHAIN_FLAG_ALLOW_MODE_SWITCH;
- sd.BufferUsage = DXGI_USAGE_RENDER_TARGET_OUTPUT;
- sd.OutputWindow = hWnd;
- sd.SampleDesc.Count = 1;
- sd.SampleDesc.Quality = 0;
- sd.Windowed = TRUE;
- sd.SwapEffect = DXGI_SWAP_EFFECT_DISCARD;
-
- UINT createDeviceFlags = 0;
- //createDeviceFlags |= D3D11_CREATE_DEVICE_DEBUG;
- D3D_FEATURE_LEVEL featureLevel;
- const D3D_FEATURE_LEVEL featureLevelArray[2] = { D3D_FEATURE_LEVEL_11_0, D3D_FEATURE_LEVEL_10_0, };
- if (D3D11CreateDeviceAndSwapChain(nullptr, D3D_DRIVER_TYPE_HARDWARE, nullptr, createDeviceFlags, featureLevelArray, 2, D3D11_SDK_VERSION, &sd, &g_pSwapChain, &g_pd3dDevice, &featureLevel, &g_pd3dDeviceContext) != S_OK)
- return false;
-
- CreateRenderTarget();
- return true;
-}
-
-void CleanupDeviceD3D()
-{
- CleanupRenderTarget();
- if (g_pSwapChain) { g_pSwapChain->Release(); g_pSwapChain = nullptr; }
- if (g_pd3dDeviceContext) { g_pd3dDeviceContext->Release(); g_pd3dDeviceContext = nullptr; }
- if (g_pd3dDevice) { g_pd3dDevice->Release(); g_pd3dDevice = nullptr; }
-}
-
-void CreateRenderTarget()
-{
- ID3D11Texture2D* pBackBuffer;
- g_pSwapChain->GetBuffer(0, IID_PPV_ARGS(&pBackBuffer));
- g_pd3dDevice->CreateRenderTargetView(pBackBuffer, nullptr, &g_mainRenderTargetView);
- pBackBuffer->Release();
-}
-
-void CleanupRenderTarget()
-{
- if (g_mainRenderTargetView) { g_mainRenderTargetView->Release(); g_mainRenderTargetView = nullptr; }
-}
diff --git a/imgui-1.92.1/examples/example_sdl2_metal/Makefile b/imgui-1.92.1/examples/example_sdl2_metal/Makefile
deleted file mode 100644
index 53c5f75..0000000
--- a/imgui-1.92.1/examples/example_sdl2_metal/Makefile
+++ /dev/null
@@ -1,47 +0,0 @@
-#
-# You will need SDL2 (http://www.libsdl.org):
-# brew install sdl2
-#
-
-#CXX = g++
-#CXX = clang++
-
-EXE = example_sdl2_metal
-IMGUI_DIR = ../..
-SOURCES = main.mm
-SOURCES += $(IMGUI_DIR)/imgui.cpp $(IMGUI_DIR)/imgui_demo.cpp $(IMGUI_DIR)/imgui_draw.cpp $(IMGUI_DIR)/imgui_tables.cpp $(IMGUI_DIR)/imgui_widgets.cpp
-SOURCES += $(IMGUI_DIR)/backends/imgui_impl_sdl2.cpp $(IMGUI_DIR)/backends/imgui_impl_metal.mm
-OBJS = $(addsuffix .o, $(basename $(notdir $(SOURCES))))
-
-LIBS = -framework Metal -framework MetalKit -framework Cocoa -framework IOKit -framework CoreVideo -framework QuartzCore
-LIBS += `sdl2-config --libs`
-LIBS += -L/usr/local/lib
-
-CXXFLAGS = -std=c++11 -I$(IMGUI_DIR) -I$(IMGUI_DIR)/backends -I/usr/local/include
-CXXFLAGS += `sdl2-config --cflags`
-CXXFLAGS += -Wall -Wformat
-CFLAGS = $(CXXFLAGS)
-
-%.o:%.cpp
- $(CXX) $(CXXFLAGS) -c -o $@ $<
-
-%.o:$(IMGUI_DIR)/%.cpp
- $(CXX) $(CXXFLAGS) -c -o $@ $<
-
-%.o:$(IMGUI_DIR)/backends/%.cpp
- $(CXX) $(CXXFLAGS) -c -o $@ $<
-
-%.o:%.mm
- $(CXX) $(CXXFLAGS) -ObjC++ -fobjc-weak -fobjc-arc -c -o $@ $<
-
-%.o:$(IMGUI_DIR)/backends/%.mm
- $(CXX) $(CXXFLAGS) -ObjC++ -fobjc-weak -fobjc-arc -c -o $@ $<
-
-all: $(EXE)
- @echo Build complete
-
-$(EXE): $(OBJS)
- $(CXX) -o $@ $^ $(CXXFLAGS) $(LIBS)
-
-clean:
- rm -f $(EXE) $(OBJS)
diff --git a/imgui-1.92.1/examples/example_sdl2_metal/main.mm b/imgui-1.92.1/examples/example_sdl2_metal/main.mm
deleted file mode 100644
index c1750b1..0000000
--- a/imgui-1.92.1/examples/example_sdl2_metal/main.mm
+++ /dev/null
@@ -1,189 +0,0 @@
-// Dear ImGui: standalone example application for SDL2 + Metal
-// (SDL is a cross-platform general purpose library for handling windows, inputs, OpenGL/Vulkan/Metal graphics context creation, etc.)
-
-// Learn about Dear ImGui:
-// - FAQ https://dearimgui.com/faq
-// - Getting Started https://dearimgui.com/getting-started
-// - Documentation https://dearimgui.com/docs (same as your local docs/ folder).
-// - Introduction, links and more at the top of imgui.cpp
-
-#include "imgui.h"
-#include "imgui_impl_sdl2.h"
-#include "imgui_impl_metal.h"
-#include <stdio.h>
-#include <SDL.h>
-
-#import <Metal/Metal.h>
-#import <QuartzCore/QuartzCore.h>
-
-int main(int, char**)
-{
- // Setup Dear ImGui context
- IMGUI_CHECKVERSION();
- ImGui::CreateContext();
- ImGuiIO& io = ImGui::GetIO(); (void)io;
- io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard; // Enable Keyboard Controls
- io.ConfigFlags |= ImGuiConfigFlags_NavEnableGamepad; // Enable Gamepad Controls
-
- // Setup style
- ImGui::StyleColorsDark();
- //ImGui::StyleColorsLight();
-
- // Load Fonts
- // - If no fonts are loaded, dear imgui will use the default font. You can also load multiple fonts and use ImGui::PushFont()/PopFont() to select them.
- // - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
- // - If the file cannot be loaded, the function will return a nullptr. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
- // - Use '#define IMGUI_ENABLE_FREETYPE' in your imconfig file to use Freetype for higher quality font rendering.
- // - Read 'docs/FONTS.md' for more instructions and details.
- // - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
- //style.FontSizeBase = 20.0f;
- //io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\segoeui.ttf");
- //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf");
- //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf");
- //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf");
- //ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf");
- //IM_ASSERT(font != nullptr);
-
- // Setup SDL
- // (Some versions of SDL before <2.0.10 appears to have performance/stalling issues on a minority of Windows systems,
- // depending on whether SDL_INIT_GAMECONTROLLER is enabled or disabled.. updating to latest version of SDL is recommended!)
- if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_TIMER | SDL_INIT_GAMECONTROLLER) != 0)
- {
- printf("Error: %s\n", SDL_GetError());
- return -1;
- }
-
- // Inform SDL that we will be using metal for rendering. Without this hint initialization of metal renderer may fail.
- SDL_SetHint(SDL_HINT_RENDER_DRIVER, "metal");
-
- // Enable native IME.
- SDL_SetHint(SDL_HINT_IME_SHOW_UI, "1");
-
- SDL_Window* window = SDL_CreateWindow("Dear ImGui SDL+Metal example", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 1280, 720, SDL_WINDOW_RESIZABLE | SDL_WINDOW_ALLOW_HIGHDPI);
- if (window == nullptr)
- {
- printf("Error creating window: %s\n", SDL_GetError());
- return -2;
- }
-
- SDL_Renderer* renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED | SDL_RENDERER_PRESENTVSYNC);
- if (renderer == nullptr)
- {
- printf("Error creating renderer: %s\n", SDL_GetError());
- return -3;
- }
-
- // Setup Platform/Renderer backends
- CAMetalLayer* layer = (__bridge CAMetalLayer*)SDL_RenderGetMetalLayer(renderer);
- layer.pixelFormat = MTLPixelFormatBGRA8Unorm;
- ImGui_ImplMetal_Init(layer.device);
- ImGui_ImplSDL2_InitForMetal(window);
-
- id<MTLCommandQueue> commandQueue = [layer.device newCommandQueue];
- MTLRenderPassDescriptor* renderPassDescriptor = [MTLRenderPassDescriptor new];
-
- // Our state
- bool show_demo_window = true;
- bool show_another_window = false;
- float clear_color[4] = {0.45f, 0.55f, 0.60f, 1.00f};
-
- // Main loop
- bool done = false;
- while (!done)
- {
- @autoreleasepool
- {
- // Poll and handle events (inputs, window resize, etc.)
- // You can read the io.WantCaptureMouse, io.WantCaptureKeyboard flags to tell if dear imgui wants to use your inputs.
- // - When io.WantCaptureMouse is true, do not dispatch mouse input data to your main application, or clear/overwrite your copy of the mouse data.
- // - When io.WantCaptureKeyboard is true, do not dispatch keyboard input data to your main application, or clear/overwrite your copy of the keyboard data.
- // Generally you may always pass all inputs to dear imgui, and hide them from your application based on those two flags.
- SDL_Event event;
- while (SDL_PollEvent(&event))
- {
- ImGui_ImplSDL2_ProcessEvent(&event);
- if (event.type == SDL_QUIT)
- done = true;
- if (event.type == SDL_WINDOWEVENT && event.window.event == SDL_WINDOWEVENT_CLOSE && event.window.windowID == SDL_GetWindowID(window))
- done = true;
- }
-
- int width, height;
- SDL_GetRendererOutputSize(renderer, &width, &height);
- layer.drawableSize = CGSizeMake(width, height);
- id<CAMetalDrawable> drawable = [layer nextDrawable];
-
- id<MTLCommandBuffer> commandBuffer = [commandQueue commandBuffer];
- renderPassDescriptor.colorAttachments[0].clearColor = MTLClearColorMake(clear_color[0] * clear_color[3], clear_color[1] * clear_color[3], clear_color[2] * clear_color[3], clear_color[3]);
- renderPassDescriptor.colorAttachments[0].texture = drawable.texture;
- renderPassDescriptor.colorAttachments[0].loadAction = MTLLoadActionClear;
- renderPassDescriptor.colorAttachments[0].storeAction = MTLStoreActionStore;
- id <MTLRenderCommandEncoder> renderEncoder = [commandBuffer renderCommandEncoderWithDescriptor:renderPassDescriptor];
- [renderEncoder pushDebugGroup:@"ImGui demo"];
-
- // Start the Dear ImGui frame
- ImGui_ImplMetal_NewFrame(renderPassDescriptor);
- ImGui_ImplSDL2_NewFrame();
- ImGui::NewFrame();
-
- // 1. Show the big demo window (Most of the sample code is in ImGui::ShowDemoWindow()! You can browse its code to learn more about Dear ImGui!).
- if (show_demo_window)
- ImGui::ShowDemoWindow(&show_demo_window);
-
- // 2. Show a simple window that we create ourselves. We use a Begin/End pair to create a named window.
- {
- static float f = 0.0f;
- static int counter = 0;
-
- ImGui::Begin("Hello, world!"); // Create a window called "Hello, world!" and append into it.
-
- ImGui::Text("This is some useful text."); // Display some text (you can use a format strings too)
- ImGui::Checkbox("Demo Window", &show_demo_window); // Edit bools storing our window open/close state
- ImGui::Checkbox("Another Window", &show_another_window);
-
- ImGui::SliderFloat("float", &f, 0.0f, 1.0f); // Edit 1 float using a slider from 0.0f to 1.0f
- ImGui::ColorEdit3("clear color", (float*)&clear_color); // Edit 3 floats representing a color
-
- if (ImGui::Button("Button")) // Buttons return true when clicked (most widgets return true when edited/activated)
- counter++;
- ImGui::SameLine();
- ImGui::Text("counter = %d", counter);
-
- ImGui::Text("Application average %.3f ms/frame (%.1f FPS)", 1000.0f / io.Framerate, io.Framerate);
- ImGui::End();
- }
-
- // 3. Show another simple window.
- if (show_another_window)
- {
- ImGui::Begin("Another Window", &show_another_window); // Pass a pointer to our bool variable (the window will have a closing button that will clear the bool when clicked)
- ImGui::Text("Hello from another window!");
- if (ImGui::Button("Close Me"))
- show_another_window = false;
- ImGui::End();
- }
-
- // Rendering
- ImGui::Render();
- ImGui_ImplMetal_RenderDrawData(ImGui::GetDrawData(), commandBuffer, renderEncoder);
-
- [renderEncoder popDebugGroup];
- [renderEncoder endEncoding];
-
- [commandBuffer presentDrawable:drawable];
- [commandBuffer commit];
- }
- }
-
- // Cleanup
- ImGui_ImplMetal_Shutdown();
- ImGui_ImplSDL2_Shutdown();
- ImGui::DestroyContext();
-
- SDL_DestroyRenderer(renderer);
- SDL_DestroyWindow(window);
- SDL_Quit();
-
- return 0;
-}
diff --git a/imgui-1.92.1/examples/example_sdl2_opengl2/Makefile b/imgui-1.92.1/examples/example_sdl2_opengl2/Makefile
deleted file mode 100644
index a85ced0..0000000
--- a/imgui-1.92.1/examples/example_sdl2_opengl2/Makefile
+++ /dev/null
@@ -1,79 +0,0 @@
-#
-# Cross Platform Makefile
-# Compatible with MSYS2/MINGW, Ubuntu 14.04.1 and Mac OS X
-#
-# You will need SDL2 (http://www.libsdl.org):
-# Linux:
-# apt-get install libsdl2-dev
-# Mac OS X:
-# brew install sdl2
-# MSYS2:
-# pacman -S mingw-w64-i686-SDL2
-#
-
-#CXX = g++
-#CXX = clang++
-
-EXE = example_sdl2_opengl2
-IMGUI_DIR = ../..
-SOURCES = main.cpp
-SOURCES += $(IMGUI_DIR)/imgui.cpp $(IMGUI_DIR)/imgui_demo.cpp $(IMGUI_DIR)/imgui_draw.cpp $(IMGUI_DIR)/imgui_tables.cpp $(IMGUI_DIR)/imgui_widgets.cpp
-SOURCES += $(IMGUI_DIR)/backends/imgui_impl_sdl2.cpp $(IMGUI_DIR)/backends/imgui_impl_opengl2.cpp
-OBJS = $(addsuffix .o, $(basename $(notdir $(SOURCES))))
-UNAME_S := $(shell uname -s)
-
-CXXFLAGS = -std=c++11 -I$(IMGUI_DIR) -I$(IMGUI_DIR)/backends
-CXXFLAGS += -g -Wall -Wformat
-LIBS =
-
-##---------------------------------------------------------------------
-## BUILD FLAGS PER PLATFORM
-##---------------------------------------------------------------------
-
-ifeq ($(UNAME_S), Linux) #LINUX
- ECHO_MESSAGE = "Linux"
- LIBS += -lGL -ldl `sdl2-config --libs`
-
- CXXFLAGS += `sdl2-config --cflags`
- CFLAGS = $(CXXFLAGS)
-endif
-
-ifeq ($(UNAME_S), Darwin) #APPLE
- ECHO_MESSAGE = "Mac OS X"
- LIBS += -framework OpenGL -framework Cocoa -framework IOKit -framework CoreVideo `sdl2-config --libs`
- LIBS += -L/usr/local/lib -L/opt/local/lib
-
- CXXFLAGS += `sdl2-config --cflags`
- CXXFLAGS += -I/usr/local/include -I/opt/local/include
- CFLAGS = $(CXXFLAGS)
-endif
-
-ifeq ($(OS), Windows_NT)
- ECHO_MESSAGE = "MinGW"
- LIBS += -lgdi32 -lopengl32 -limm32 `pkg-config --static --libs sdl2`
-
- CXXFLAGS += `pkg-config --cflags sdl2`
- CFLAGS = $(CXXFLAGS)
-endif
-
-##---------------------------------------------------------------------
-## BUILD RULES
-##---------------------------------------------------------------------
-
-%.o:%.cpp
- $(CXX) $(CXXFLAGS) -c -o $@ $<
-
-%.o:$(IMGUI_DIR)/%.cpp
- $(CXX) $(CXXFLAGS) -c -o $@ $<
-
-%.o:$(IMGUI_DIR)/backends/%.cpp
- $(CXX) $(CXXFLAGS) -c -o $@ $<
-
-all: $(EXE)
- @echo Build complete for $(ECHO_MESSAGE)
-
-$(EXE): $(OBJS)
- $(CXX) -o $@ $^ $(CXXFLAGS) $(LIBS)
-
-clean:
- rm -f $(EXE) $(OBJS)
diff --git a/imgui-1.92.1/examples/example_sdl2_opengl2/README.md b/imgui-1.92.1/examples/example_sdl2_opengl2/README.md
deleted file mode 100644
index 40a49e6..0000000
--- a/imgui-1.92.1/examples/example_sdl2_opengl2/README.md
+++ /dev/null
@@ -1,29 +0,0 @@
-
-# How to Build
-
-- On Windows with Visual Studio's IDE
-
-Use the provided project file (.vcxproj). Add to solution (imgui_examples.sln) if necessary.
-
-- On Windows with Visual Studio's CLI
-
-```
-set SDL2_DIR=path_to_your_sdl2_folder
-cl /Zi /MD /I.. /I..\.. /I%SDL2_DIR%\include main.cpp ..\..\backends\imgui_impl_sdl2.cpp ..\..\backends\imgui_impl_opengl2.cpp ..\..\imgui*.cpp /FeDebug/example_sdl2_opengl2.exe /FoDebug/ /link /libpath:%SDL2_DIR%\lib\x86 SDL2.lib SDL2main.lib opengl32.lib /subsystem:console
-# ^^ include paths ^^ source files ^^ output exe ^^ output dir ^^ libraries
-# or for 64-bit:
-cl /Zi /MD /I.. /I..\.. /I%SDL2_DIR%\include main.cpp ..\..\backends\imgui_impl_sdl2.cpp ..\..\backends\imgui_impl_opengl2.cpp ..\..\imgui*.cpp /FeDebug/example_sdl2_opengl2.exe /FoDebug/ /link /libpath:%SDL2_DIR%\lib\x64 SDL2.lib SDL2main.lib opengl32.lib /subsystem:console
-```
-
-- On Linux and similar Unixes
-
-```
-c++ `sdl2-config --cflags` -I .. -I ../.. -I ../../backends main.cpp ../../backends/imgui_impl_sdl2.cpp ../../backends/imgui_impl_opengl2.cpp ../../imgui*.cpp `sdl2-config --libs` -lGL
-```
-
-- On Mac OS X
-
-```
-brew install sdl2
-c++ `sdl2-config --cflags` -I .. -I ../.. -I ../../backends main.cpp ../../backends/imgui_impl_sdl2.cpp ../../backends/imgui_impl_opengl2.cpp ../../imgui*.cpp `sdl2-config --libs` -framework OpenGl
-```
diff --git a/imgui-1.92.1/examples/example_sdl2_opengl2/build_win32.bat b/imgui-1.92.1/examples/example_sdl2_opengl2/build_win32.bat
deleted file mode 100644
index 7543eda..0000000
--- a/imgui-1.92.1/examples/example_sdl2_opengl2/build_win32.bat
+++ /dev/null
@@ -1,8 +0,0 @@
-@REM Build for Visual Studio compiler. Run your copy of vcvars32.bat or vcvarsall.bat to setup command-line compiler.
-@set OUT_DIR=Debug
-@set OUT_EXE=example_sdl2_opengl2
-@set INCLUDES=/I..\.. /I..\..\backends /I%SDL2_DIR%\include
-@set SOURCES=main.cpp ..\..\backends\imgui_impl_sdl2.cpp ..\..\backends\imgui_impl_opengl2.cpp ..\..\imgui*.cpp
-@set LIBS=/LIBPATH:%SDL2_DIR%\lib\x86 SDL2.lib SDL2main.lib opengl32.lib shell32.lib
-mkdir %OUT_DIR%
-cl /nologo /Zi /MD /utf-8 %INCLUDES% %SOURCES% /Fe%OUT_DIR%/%OUT_EXE%.exe /Fo%OUT_DIR%/ /link %LIBS% /subsystem:console
diff --git a/imgui-1.92.1/examples/example_sdl2_opengl2/example_sdl2_opengl2.vcxproj b/imgui-1.92.1/examples/example_sdl2_opengl2/example_sdl2_opengl2.vcxproj
deleted file mode 100644
index 036463f..0000000
--- a/imgui-1.92.1/examples/example_sdl2_opengl2/example_sdl2_opengl2.vcxproj
+++ /dev/null
@@ -1,186 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="Debug|Win32">
- <Configuration>Debug</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Debug|x64">
- <Configuration>Debug</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|Win32">
- <Configuration>Release</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|x64">
- <Configuration>Release</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- </ItemGroup>
- <PropertyGroup Label="Globals">
- <ProjectGuid>{2AE17FDE-F7F3-4CAC-ADAB-0710EDA4F741}</ProjectGuid>
- <RootNamespace>example_sdl2_opengl2</RootNamespace>
- <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>true</UseDebugLibraries>
- <CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>true</UseDebugLibraries>
- <CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>false</UseDebugLibraries>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- <CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>false</UseDebugLibraries>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- <CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
- <ImportGroup Label="ExtensionSettings">
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <PropertyGroup Label="UserMacros" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <OutDir>$(ProjectDir)$(Configuration)\</OutDir>
- <IntDir>$(ProjectDir)$(Configuration)\</IntDir>
- <IncludePath>$(IncludePath)</IncludePath>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <OutDir>$(ProjectDir)$(Configuration)\</OutDir>
- <IntDir>$(ProjectDir)$(Configuration)\</IntDir>
- <IncludePath>$(IncludePath)</IncludePath>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <OutDir>$(ProjectDir)$(Configuration)\</OutDir>
- <IntDir>$(ProjectDir)$(Configuration)\</IntDir>
- <IncludePath>$(IncludePath)</IncludePath>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <OutDir>$(ProjectDir)$(Configuration)\</OutDir>
- <IntDir>$(ProjectDir)$(Configuration)\</IntDir>
- <IncludePath>$(IncludePath)</IncludePath>
- </PropertyGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <ClCompile>
- <WarningLevel>Level4</WarningLevel>
- <Optimization>Disabled</Optimization>
- <AdditionalIncludeDirectories>..\..;..\..\backends;%SDL2_DIR%\include;$(VcpkgCurrentInstalledDir)include\SDL2;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
- </ClCompile>
- <Link>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <AdditionalLibraryDirectories>%SDL2_DIR%\lib\x86;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
- <AdditionalDependencies>opengl32.lib;SDL2.lib;SDL2main.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <SubSystem>Console</SubSystem>
- <IgnoreSpecificDefaultLibraries>msvcrt.lib</IgnoreSpecificDefaultLibraries>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <ClCompile>
- <WarningLevel>Level4</WarningLevel>
- <Optimization>Disabled</Optimization>
- <AdditionalIncludeDirectories>..\..;..\..\backends;%SDL2_DIR%\include;$(VcpkgCurrentInstalledDir)include\SDL2;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
- </ClCompile>
- <Link>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <AdditionalLibraryDirectories>%SDL2_DIR%\lib\x64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
- <AdditionalDependencies>opengl32.lib;SDL2.lib;SDL2main.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <SubSystem>Console</SubSystem>
- <IgnoreSpecificDefaultLibraries>msvcrt.lib</IgnoreSpecificDefaultLibraries>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <ClCompile>
- <WarningLevel>Level4</WarningLevel>
- <Optimization>MaxSpeed</Optimization>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <IntrinsicFunctions>true</IntrinsicFunctions>
- <AdditionalIncludeDirectories>..\..;..\..\backends;%SDL2_DIR%\include;$(VcpkgCurrentInstalledDir)include\SDL2;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <BufferSecurityCheck>false</BufferSecurityCheck>
- <AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
- </ClCompile>
- <Link>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- <OptimizeReferences>true</OptimizeReferences>
- <AdditionalLibraryDirectories>%SDL2_DIR%\lib\x86;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
- <AdditionalDependencies>opengl32.lib;SDL2.lib;SDL2main.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <SubSystem>Console</SubSystem>
- <IgnoreSpecificDefaultLibraries>
- </IgnoreSpecificDefaultLibraries>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <ClCompile>
- <WarningLevel>Level4</WarningLevel>
- <Optimization>MaxSpeed</Optimization>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <IntrinsicFunctions>true</IntrinsicFunctions>
- <AdditionalIncludeDirectories>..\..;..\..\backends;%SDL2_DIR%\include;$(VcpkgCurrentInstalledDir)include\SDL2;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <BufferSecurityCheck>false</BufferSecurityCheck>
- <AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
- </ClCompile>
- <Link>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- <OptimizeReferences>true</OptimizeReferences>
- <AdditionalLibraryDirectories>%SDL2_DIR%\lib\x64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
- <AdditionalDependencies>opengl32.lib;SDL2.lib;SDL2main.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <SubSystem>Console</SubSystem>
- <IgnoreSpecificDefaultLibraries>
- </IgnoreSpecificDefaultLibraries>
- </Link>
- </ItemDefinitionGroup>
- <ItemGroup>
- <ClCompile Include="..\..\imgui.cpp" />
- <ClCompile Include="..\..\imgui_demo.cpp" />
- <ClCompile Include="..\..\imgui_draw.cpp" />
- <ClCompile Include="..\..\imgui_tables.cpp" />
- <ClCompile Include="..\..\imgui_widgets.cpp" />
- <ClCompile Include="..\..\backends\imgui_impl_sdl2.cpp" />
- <ClCompile Include="..\..\backends\imgui_impl_opengl2.cpp" />
- <ClCompile Include="main.cpp" />
- </ItemGroup>
- <ItemGroup>
- <ClInclude Include="..\..\imconfig.h" />
- <ClInclude Include="..\..\imgui.h" />
- <ClInclude Include="..\..\imgui_internal.h" />
- <ClInclude Include="..\..\backends\imgui_impl_sdl2.h" />
- <ClInclude Include="..\..\backends\imgui_impl_opengl2.h" />
- </ItemGroup>
- <ItemGroup>
- <None Include="..\..\misc\debuggers\imgui.natstepfilter" />
- <None Include="..\..\misc\debuggers\imgui.natvis" />
- <None Include="..\README.txt" />
- </ItemGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
- <ImportGroup Label="ExtensionTargets">
- </ImportGroup>
-</Project> \ No newline at end of file
diff --git a/imgui-1.92.1/examples/example_sdl2_opengl2/example_sdl2_opengl2.vcxproj.filters b/imgui-1.92.1/examples/example_sdl2_opengl2/example_sdl2_opengl2.vcxproj.filters
deleted file mode 100644
index 752a196..0000000
--- a/imgui-1.92.1/examples/example_sdl2_opengl2/example_sdl2_opengl2.vcxproj.filters
+++ /dev/null
@@ -1,64 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup>
- <Filter Include="imgui">
- <UniqueIdentifier>{20b90ce4-7fcb-4731-b9a0-075f875de82d}</UniqueIdentifier>
- </Filter>
- <Filter Include="sources">
- <UniqueIdentifier>{f18ab499-84e1-499f-8eff-9754361e0e52}</UniqueIdentifier>
- <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
- </Filter>
- </ItemGroup>
- <ItemGroup>
- <ClCompile Include="..\..\imgui.cpp">
- <Filter>imgui</Filter>
- </ClCompile>
- <ClCompile Include="..\..\imgui_demo.cpp">
- <Filter>imgui</Filter>
- </ClCompile>
- <ClCompile Include="..\..\imgui_draw.cpp">
- <Filter>imgui</Filter>
- </ClCompile>
- <ClCompile Include="main.cpp">
- <Filter>sources</Filter>
- </ClCompile>
- <ClCompile Include="..\..\imgui_tables.cpp">
- <Filter>imgui</Filter>
- </ClCompile>
- <ClCompile Include="..\..\imgui_widgets.cpp">
- <Filter>imgui</Filter>
- </ClCompile>
- <ClCompile Include="..\..\backends\imgui_impl_sdl2.cpp">
- <Filter>sources</Filter>
- </ClCompile>
- <ClCompile Include="..\..\backends\imgui_impl_opengl2.cpp">
- <Filter>sources</Filter>
- </ClCompile>
- </ItemGroup>
- <ItemGroup>
- <ClInclude Include="..\..\imconfig.h">
- <Filter>imgui</Filter>
- </ClInclude>
- <ClInclude Include="..\..\imgui.h">
- <Filter>imgui</Filter>
- </ClInclude>
- <ClInclude Include="..\..\imgui_internal.h">
- <Filter>imgui</Filter>
- </ClInclude>
- <ClInclude Include="..\..\backends\imgui_impl_opengl2.h">
- <Filter>sources</Filter>
- </ClInclude>
- <ClInclude Include="..\..\backends\imgui_impl_sdl2.h">
- <Filter>sources</Filter>
- </ClInclude>
- </ItemGroup>
- <ItemGroup>
- <None Include="..\README.txt" />
- <None Include="..\..\misc\debuggers\imgui.natvis">
- <Filter>imgui</Filter>
- </None>
- <None Include="..\..\misc\debuggers\imgui.natstepfilter">
- <Filter>imgui</Filter>
- </None>
- </ItemGroup>
-</Project> \ No newline at end of file
diff --git a/imgui-1.92.1/examples/example_sdl2_opengl2/main.cpp b/imgui-1.92.1/examples/example_sdl2_opengl2/main.cpp
deleted file mode 100644
index c8363fe..0000000
--- a/imgui-1.92.1/examples/example_sdl2_opengl2/main.cpp
+++ /dev/null
@@ -1,188 +0,0 @@
-// Dear ImGui: standalone example application for SDL2 + OpenGL
-// (SDL is a cross-platform general purpose library for handling windows, inputs, OpenGL/Vulkan/Metal graphics context creation, etc.)
-
-// Learn about Dear ImGui:
-// - FAQ https://dearimgui.com/faq
-// - Getting Started https://dearimgui.com/getting-started
-// - Documentation https://dearimgui.com/docs (same as your local docs/ folder).
-// - Introduction, links and more at the top of imgui.cpp
-
-// **DO NOT USE THIS CODE IF YOUR CODE/ENGINE IS USING MODERN OPENGL (SHADERS, VBO, VAO, etc.)**
-// **Prefer using the code in the example_sdl2_opengl3/ folder**
-// See imgui_impl_sdl2.cpp for details.
-
-#include "imgui.h"
-#include "imgui_impl_sdl2.h"
-#include "imgui_impl_opengl2.h"
-#include <stdio.h>
-#include <SDL.h>
-#include <SDL_opengl.h>
-#ifdef _WIN32
-#include <windows.h> // SetProcessDPIAware()
-#endif
-
-// Main code
-int main(int, char**)
-{
- // Setup SDL
-#ifdef _WIN32
- ::SetProcessDPIAware();
-#endif
- if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_TIMER | SDL_INIT_GAMECONTROLLER) != 0)
- {
- printf("Error: %s\n", SDL_GetError());
- return -1;
- }
-
- // From 2.0.18: Enable native IME.
-#ifdef SDL_HINT_IME_SHOW_UI
- SDL_SetHint(SDL_HINT_IME_SHOW_UI, "1");
-#endif
-
- // Setup window
- SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);
- SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE, 24);
- SDL_GL_SetAttribute(SDL_GL_STENCIL_SIZE, 8);
- SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 2);
- SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 2);
- float main_scale = ImGui_ImplSDL2_GetContentScaleForDisplay(0);
- SDL_WindowFlags window_flags = (SDL_WindowFlags)(SDL_WINDOW_OPENGL | SDL_WINDOW_RESIZABLE | SDL_WINDOW_ALLOW_HIGHDPI);
- SDL_Window* window = SDL_CreateWindow("Dear ImGui SDL2+OpenGL example", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, (int)(1280 * main_scale), (int)(720 * main_scale), window_flags);
- if (window == nullptr)
- {
- printf("Error: SDL_CreateWindow(): %s\n", SDL_GetError());
- return -1;
- }
-
- SDL_GLContext gl_context = SDL_GL_CreateContext(window);
- SDL_GL_MakeCurrent(window, gl_context);
- SDL_GL_SetSwapInterval(1); // Enable vsync
-
- // Setup Dear ImGui context
- IMGUI_CHECKVERSION();
- ImGui::CreateContext();
- ImGuiIO& io = ImGui::GetIO(); (void)io;
- io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard; // Enable Keyboard Controls
- io.ConfigFlags |= ImGuiConfigFlags_NavEnableGamepad; // Enable Gamepad Controls
-
- // Setup Dear ImGui style
- ImGui::StyleColorsDark();
- //ImGui::StyleColorsLight();
-
- // Setup scaling
- ImGuiStyle& style = ImGui::GetStyle();
- style.ScaleAllSizes(main_scale); // Bake a fixed style scale. (until we have a solution for dynamic style scaling, changing this requires resetting Style + calling this again)
- style.FontScaleDpi = main_scale; // Set initial font scale. (using io.ConfigDpiScaleFonts=true makes this unnecessary. We leave both here for documentation purpose)
-
- // Setup Platform/Renderer backends
- ImGui_ImplSDL2_InitForOpenGL(window, gl_context);
- ImGui_ImplOpenGL2_Init();
-
- // Load Fonts
- // - If no fonts are loaded, dear imgui will use the default font. You can also load multiple fonts and use ImGui::PushFont()/PopFont() to select them.
- // - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
- // - If the file cannot be loaded, the function will return a nullptr. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
- // - Use '#define IMGUI_ENABLE_FREETYPE' in your imconfig file to use Freetype for higher quality font rendering.
- // - Read 'docs/FONTS.md' for more instructions and details.
- // - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
- //style.FontSizeBase = 20.0f;
- //io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\segoeui.ttf");
- //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf");
- //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf");
- //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf");
- //ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf");
- //IM_ASSERT(font != nullptr);
-
- // Our state
- bool show_demo_window = true;
- bool show_another_window = false;
- ImVec4 clear_color = ImVec4(0.45f, 0.55f, 0.60f, 1.00f);
-
- // Main loop
- bool done = false;
- while (!done)
- {
- // Poll and handle events (inputs, window resize, etc.)
- // You can read the io.WantCaptureMouse, io.WantCaptureKeyboard flags to tell if dear imgui wants to use your inputs.
- // - When io.WantCaptureMouse is true, do not dispatch mouse input data to your main application, or clear/overwrite your copy of the mouse data.
- // - When io.WantCaptureKeyboard is true, do not dispatch keyboard input data to your main application, or clear/overwrite your copy of the keyboard data.
- // Generally you may always pass all inputs to dear imgui, and hide them from your application based on those two flags.
- SDL_Event event;
- while (SDL_PollEvent(&event))
- {
- ImGui_ImplSDL2_ProcessEvent(&event);
- if (event.type == SDL_QUIT)
- done = true;
- if (event.type == SDL_WINDOWEVENT && event.window.event == SDL_WINDOWEVENT_CLOSE && event.window.windowID == SDL_GetWindowID(window))
- done = true;
- }
- if (SDL_GetWindowFlags(window) & SDL_WINDOW_MINIMIZED)
- {
- SDL_Delay(10);
- continue;
- }
-
- // Start the Dear ImGui frame
- ImGui_ImplOpenGL2_NewFrame();
- ImGui_ImplSDL2_NewFrame();
- ImGui::NewFrame();
-
- // 1. Show the big demo window (Most of the sample code is in ImGui::ShowDemoWindow()! You can browse its code to learn more about Dear ImGui!).
- if (show_demo_window)
- ImGui::ShowDemoWindow(&show_demo_window);
-
- // 2. Show a simple window that we create ourselves. We use a Begin/End pair to create a named window.
- {
- static float f = 0.0f;
- static int counter = 0;
-
- ImGui::Begin("Hello, world!"); // Create a window called "Hello, world!" and append into it.
-
- ImGui::Text("This is some useful text."); // Display some text (you can use a format strings too)
- ImGui::Checkbox("Demo Window", &show_demo_window); // Edit bools storing our window open/close state
- ImGui::Checkbox("Another Window", &show_another_window);
-
- ImGui::SliderFloat("float", &f, 0.0f, 1.0f); // Edit 1 float using a slider from 0.0f to 1.0f
- ImGui::ColorEdit3("clear color", (float*)&clear_color); // Edit 3 floats representing a color
-
- if (ImGui::Button("Button")) // Buttons return true when clicked (most widgets return true when edited/activated)
- counter++;
- ImGui::SameLine();
- ImGui::Text("counter = %d", counter);
-
- ImGui::Text("Application average %.3f ms/frame (%.1f FPS)", 1000.0f / io.Framerate, io.Framerate);
- ImGui::End();
- }
-
- // 3. Show another simple window.
- if (show_another_window)
- {
- ImGui::Begin("Another Window", &show_another_window); // Pass a pointer to our bool variable (the window will have a closing button that will clear the bool when clicked)
- ImGui::Text("Hello from another window!");
- if (ImGui::Button("Close Me"))
- show_another_window = false;
- ImGui::End();
- }
-
- // Rendering
- ImGui::Render();
- glViewport(0, 0, (int)io.DisplaySize.x, (int)io.DisplaySize.y);
- glClearColor(clear_color.x * clear_color.w, clear_color.y * clear_color.w, clear_color.z * clear_color.w, clear_color.w);
- glClear(GL_COLOR_BUFFER_BIT);
- //glUseProgram(0); // You may want this if using this code in an OpenGL 3+ context where shaders may be bound
- ImGui_ImplOpenGL2_RenderDrawData(ImGui::GetDrawData());
- SDL_GL_SwapWindow(window);
- }
-
- // Cleanup
- ImGui_ImplOpenGL2_Shutdown();
- ImGui_ImplSDL2_Shutdown();
- ImGui::DestroyContext();
-
- SDL_GL_DeleteContext(gl_context);
- SDL_DestroyWindow(window);
- SDL_Quit();
-
- return 0;
-}
diff --git a/imgui-1.92.1/examples/example_sdl2_opengl3/Makefile b/imgui-1.92.1/examples/example_sdl2_opengl3/Makefile
deleted file mode 100644
index 5b4f941..0000000
--- a/imgui-1.92.1/examples/example_sdl2_opengl3/Makefile
+++ /dev/null
@@ -1,91 +0,0 @@
-#
-# Cross Platform Makefile
-# Compatible with MSYS2/MINGW, Ubuntu 14.04.1 and Mac OS X
-#
-# You will need SDL2 (http://www.libsdl.org):
-# Linux:
-# apt-get install libsdl2-dev
-# Mac OS X:
-# brew install sdl2
-# MSYS2:
-# pacman -S mingw-w64-i686-SDL2
-#
-
-#CXX = g++
-#CXX = clang++
-
-EXE = example_sdl2_opengl3
-IMGUI_DIR = ../..
-SOURCES = main.cpp
-SOURCES += $(IMGUI_DIR)/imgui.cpp $(IMGUI_DIR)/imgui_demo.cpp $(IMGUI_DIR)/imgui_draw.cpp $(IMGUI_DIR)/imgui_tables.cpp $(IMGUI_DIR)/imgui_widgets.cpp
-SOURCES += $(IMGUI_DIR)/backends/imgui_impl_sdl2.cpp $(IMGUI_DIR)/backends/imgui_impl_opengl3.cpp
-OBJS = $(addsuffix .o, $(basename $(notdir $(SOURCES))))
-UNAME_S := $(shell uname -s)
-LINUX_GL_LIBS = -lGL
-
-CXXFLAGS = -std=c++11 -I$(IMGUI_DIR) -I$(IMGUI_DIR)/backends
-CXXFLAGS += -g -Wall -Wformat
-LIBS =
-
-##---------------------------------------------------------------------
-## OPENGL ES
-##---------------------------------------------------------------------
-
-## This assumes a GL ES library available in the system, e.g. libGLESv2.so
-# CXXFLAGS += -DIMGUI_IMPL_OPENGL_ES2
-# LINUX_GL_LIBS = -lGLESv2
-## If you're on a Raspberry Pi and want to use the legacy drivers,
-## use the following instead:
-# LINUX_GL_LIBS = -L/opt/vc/lib -lbrcmGLESv2
-
-##---------------------------------------------------------------------
-## BUILD FLAGS PER PLATFORM
-##---------------------------------------------------------------------
-
-ifeq ($(UNAME_S), Linux) #LINUX
- ECHO_MESSAGE = "Linux"
- LIBS += $(LINUX_GL_LIBS) -ldl `sdl2-config --libs`
-
- CXXFLAGS += `sdl2-config --cflags`
- CFLAGS = $(CXXFLAGS)
-endif
-
-ifeq ($(UNAME_S), Darwin) #APPLE
- ECHO_MESSAGE = "Mac OS X"
- LIBS += -framework OpenGL -framework Cocoa -framework IOKit -framework CoreVideo `sdl2-config --libs`
- LIBS += -L/usr/local/lib -L/opt/local/lib
-
- CXXFLAGS += `sdl2-config --cflags`
- CXXFLAGS += -I/usr/local/include -I/opt/local/include
- CFLAGS = $(CXXFLAGS)
-endif
-
-ifeq ($(OS), Windows_NT)
- ECHO_MESSAGE = "MinGW"
- LIBS += -lgdi32 -lopengl32 -limm32 `pkg-config --static --libs sdl2`
-
- CXXFLAGS += `pkg-config --cflags sdl2`
- CFLAGS = $(CXXFLAGS)
-endif
-
-##---------------------------------------------------------------------
-## BUILD RULES
-##---------------------------------------------------------------------
-
-%.o:%.cpp
- $(CXX) $(CXXFLAGS) -c -o $@ $<
-
-%.o:$(IMGUI_DIR)/%.cpp
- $(CXX) $(CXXFLAGS) -c -o $@ $<
-
-%.o:$(IMGUI_DIR)/backends/%.cpp
- $(CXX) $(CXXFLAGS) -c -o $@ $<
-
-all: $(EXE)
- @echo Build complete for $(ECHO_MESSAGE)
-
-$(EXE): $(OBJS)
- $(CXX) -o $@ $^ $(CXXFLAGS) $(LIBS)
-
-clean:
- rm -f $(EXE) $(OBJS)
diff --git a/imgui-1.92.1/examples/example_sdl2_opengl3/Makefile.emscripten b/imgui-1.92.1/examples/example_sdl2_opengl3/Makefile.emscripten
deleted file mode 100644
index bc06ade..0000000
--- a/imgui-1.92.1/examples/example_sdl2_opengl3/Makefile.emscripten
+++ /dev/null
@@ -1,95 +0,0 @@
-#
-# Makefile to use with SDL+emscripten
-# See https://emscripten.org/docs/getting_started/downloads.html
-# for installation instructions.
-#
-# This Makefile assumes you have loaded emscripten's environment.
-# (On Windows, you may need to execute emsdk_env.bat or encmdprompt.bat ahead)
-#
-# Running `make -f Makefile.emscripten` will produce three files:
-# - web/index.html
-# - web/index.js
-# - web/index.wasm
-#
-# All three are needed to run the demo.
-
-CC = emcc
-CXX = em++
-WEB_DIR = web
-EXE = $(WEB_DIR)/index.html
-IMGUI_DIR = ../..
-SOURCES = main.cpp
-SOURCES += $(IMGUI_DIR)/imgui.cpp $(IMGUI_DIR)/imgui_demo.cpp $(IMGUI_DIR)/imgui_draw.cpp $(IMGUI_DIR)/imgui_tables.cpp $(IMGUI_DIR)/imgui_widgets.cpp
-SOURCES += $(IMGUI_DIR)/backends/imgui_impl_sdl2.cpp $(IMGUI_DIR)/backends/imgui_impl_opengl3.cpp
-OBJS = $(addsuffix .o, $(basename $(notdir $(SOURCES))))
-UNAME_S := $(shell uname -s)
-CPPFLAGS =
-LDFLAGS =
-EMS =
-
-##---------------------------------------------------------------------
-## EMSCRIPTEN OPTIONS
-##---------------------------------------------------------------------
-
-# ("EMS" options gets added to both CPPFLAGS and LDFLAGS, whereas some options are for linker only)
-EMS += -s USE_SDL=2
-EMS += -s DISABLE_EXCEPTION_CATCHING=1
-LDFLAGS += -s WASM=1 -s ALLOW_MEMORY_GROWTH=1 -s NO_EXIT_RUNTIME=0 -s ASSERTIONS=1
-
-# Build as single file (binary text encoded in .html file)
-#LDFLAGS += -sSINGLE_FILE
-
-# Uncomment next line to fix possible rendering bugs with Emscripten version older then 1.39.0 (https://github.com/ocornut/imgui/issues/2877)
-#EMS += -s BINARYEN_TRAP_MODE=clamp
-#EMS += -s SAFE_HEAP=1 ## Adds overhead
-
-# Emscripten allows preloading a file or folder to be accessible at runtime.
-# The Makefile for this example project suggests embedding the misc/fonts/ folder into our application, it will then be accessible as "/fonts"
-# See documentation for more details: https://emscripten.org/docs/porting/files/packaging_files.html
-# (Default value is 0. Set to 1 to enable file-system and include the misc/fonts/ folder as part of the build.)
-USE_FILE_SYSTEM ?= 0
-ifeq ($(USE_FILE_SYSTEM), 0)
-LDFLAGS += -s NO_FILESYSTEM=1
-CPPFLAGS += -DIMGUI_DISABLE_FILE_FUNCTIONS
-endif
-ifeq ($(USE_FILE_SYSTEM), 1)
-LDFLAGS += --no-heap-copy --preload-file ../../misc/fonts@/fonts
-endif
-
-##---------------------------------------------------------------------
-## FINAL BUILD FLAGS
-##---------------------------------------------------------------------
-
-CPPFLAGS += -I$(IMGUI_DIR) -I$(IMGUI_DIR)/backends
-#CPPFLAGS += -g
-CPPFLAGS += -Wall -Wformat -Os $(EMS)
-LDFLAGS += --shell-file ../libs/emscripten/shell_minimal.html
-LDFLAGS += $(EMS)
-
-##---------------------------------------------------------------------
-## BUILD RULES
-##---------------------------------------------------------------------
-
-%.o:%.cpp
- $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c -o $@ $<
-
-%.o:$(IMGUI_DIR)/%.cpp
- $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c -o $@ $<
-
-%.o:$(IMGUI_DIR)/backends/%.cpp
- $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c -o $@ $<
-
-all: $(EXE)
- @echo Build complete for $(EXE)
-
-$(WEB_DIR):
- mkdir $@
-
-serve: all
- python3 -m http.server -d $(WEB_DIR)
-
-$(EXE): $(OBJS) $(WEB_DIR)
- $(CXX) -o $@ $(OBJS) $(LDFLAGS)
-
-clean:
- rm -rf $(OBJS) $(WEB_DIR)
diff --git a/imgui-1.92.1/examples/example_sdl2_opengl3/README.md b/imgui-1.92.1/examples/example_sdl2_opengl3/README.md
deleted file mode 100644
index 81fd9fe..0000000
--- a/imgui-1.92.1/examples/example_sdl2_opengl3/README.md
+++ /dev/null
@@ -1,57 +0,0 @@
-
-# How to Build
-
-## Windows with Visual Studio's IDE
-
-Use the provided project file (.vcxproj). Add to solution (imgui_examples.sln) if necessary.
-
-## Windows with Visual Studio's CLI
-
-Use build_win32.bat or directly:
-```
-set SDL2_DIR=path_to_your_sdl2_folder
-cl /Zi /MD /utf-8 /I.. /I..\.. /I%SDL2_DIR%\include main.cpp ..\..\backends\imgui_impl_sdl2.cpp ..\..\backends\imgui_impl_opengl3.cpp ..\..\imgui*.cpp /FeDebug/example_sdl2_opengl3.exe /FoDebug/ /link /libpath:%SDL2_DIR%\lib\x86 SDL2.lib SDL2main.lib opengl32.lib /subsystem:console
-# ^^ include paths ^^ source files ^^ output exe ^^ output dir ^^ libraries
-# or for 64-bit:
-cl /Zi /MD /utf-8 /I.. /I..\.. /I%SDL2_DIR%\include main.cpp ..\..\backends\imgui_impl_sdl2.cpp ..\..\backends\imgui_impl_opengl3.cpp ..\..\imgui*.cpp /FeDebug/example_sdl2_opengl3.exe /FoDebug/ /link /libpath:%SDL2_DIR%\lib\x64 SDL2.lib SDL2main.lib opengl32.lib /subsystem:console
-```
-
-## Linux and similar Unixes
-
-Use our Makefile or directly:
-```
-c++ `sdl2-config --cflags` -I .. -I ../.. -I ../../backends
- main.cpp ../../backends/imgui_impl_sdl2.cpp ../../backends/imgui_impl_opengl3.cpp ../../imgui*.cpp
- `sdl2-config --libs` -lGL -ldl
-```
-
-## macOS
-
-Use our Makefile or directly:
-```
-brew install sdl2
-c++ `sdl2-config --cflags` -I .. -I ../.. -I ../../backends
- main.cpp ../../backends/imgui_impl_sdl2.cpp ../../backends/imgui_impl_opengl3.cpp ../../imgui*.cpp
- `sdl2-config --libs` -framework OpenGl -framework CoreFoundation
-```
-
-## Emscripten
-
-**Building**
-
-You need to install Emscripten from https://emscripten.org/docs/getting_started/downloads.html, and have the environment variables set, as described in https://emscripten.org/docs/getting_started/downloads.html#installation-instructions
-
-- Depending on your configuration, in Windows you may need to run `emsdk/emsdk_env.bat` in your console to access the Emscripten command-line tools.
-- You may also refer to our [Continuous Integration setup](https://github.com/ocornut/imgui/tree/master/.github/workflows) for Emscripten setup.
-- Then build using `make -f Makefile.emscripten` while in the current directory.
-
-**Running an Emscripten project**
-
-To run on a local machine:
-- `make -f Makefile.emscripten serve` will use Python3 to spawn a local webserver, you can then browse http://localhost:8000 to access your build.
-- Otherwise, generally you will need a local webserver. Quoting [https://emscripten.org/docs/getting_started](https://emscripten.org/docs/getting_started/Tutorial.html#generating-html):<br>
-_"Unfortunately several browsers (including Chrome, Safari, and Internet Explorer) do not support file:// [XHR](https://emscripten.org/docs/site/glossary.html#term-xhr) requests, and can’t load extra files needed by the HTML (like a .wasm file, or packaged file data as mentioned lower down). For these browsers you’ll need to serve the files using a [local webserver](https://emscripten.org/docs/getting_started/FAQ.html#faq-local-webserver) and then open http://localhost:8000/hello.html."_
-- Emscripten SDK has a handy `emrun` command: `emrun web/index.html --browser firefox` which will spawn a temporary local webserver (in Firefox). See https://emscripten.org/docs/compiling/Running-html-files-with-emrun.html for details.
-- You may use Python 3 builtin webserver: `python -m http.server -d web` (this is what `make serve` uses).
-- You may use Python 2 builtin webserver: `cd web && python -m SimpleHTTPServer`.
-- If you are accessing the files over a network, certain browsers, such as Firefox, will restrict Gamepad API access to secure contexts only (e.g. https only).
diff --git a/imgui-1.92.1/examples/example_sdl2_opengl3/build_win32.bat b/imgui-1.92.1/examples/example_sdl2_opengl3/build_win32.bat
deleted file mode 100644
index 7b2fac9..0000000
--- a/imgui-1.92.1/examples/example_sdl2_opengl3/build_win32.bat
+++ /dev/null
@@ -1,8 +0,0 @@
-@REM Build for Visual Studio compiler. Run your copy of vcvars32.bat or vcvarsall.bat to setup command-line compiler.
-@set OUT_DIR=Debug
-@set OUT_EXE=example_sdl2_opengl3
-@set INCLUDES=/I..\.. /I..\..\backends /I%SDL2_DIR%\include
-@set SOURCES=main.cpp ..\..\backends\imgui_impl_sdl2.cpp ..\..\backends\imgui_impl_opengl3.cpp ..\..\imgui*.cpp
-@set LIBS=/LIBPATH:%SDL2_DIR%\lib\x86 SDL2.lib SDL2main.lib opengl32.lib shell32.lib
-mkdir %OUT_DIR%
-cl /nologo /Zi /MD /utf-8 %INCLUDES% %SOURCES% /Fe%OUT_DIR%/%OUT_EXE%.exe /Fo%OUT_DIR%/ /link %LIBS% /subsystem:console
diff --git a/imgui-1.92.1/examples/example_sdl2_opengl3/example_sdl2_opengl3.vcxproj b/imgui-1.92.1/examples/example_sdl2_opengl3/example_sdl2_opengl3.vcxproj
deleted file mode 100644
index 6a81c67..0000000
--- a/imgui-1.92.1/examples/example_sdl2_opengl3/example_sdl2_opengl3.vcxproj
+++ /dev/null
@@ -1,187 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="Debug|Win32">
- <Configuration>Debug</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Debug|x64">
- <Configuration>Debug</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|Win32">
- <Configuration>Release</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|x64">
- <Configuration>Release</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- </ItemGroup>
- <PropertyGroup Label="Globals">
- <ProjectGuid>{BBAEB705-1669-40F3-8567-04CF6A991F4C}</ProjectGuid>
- <RootNamespace>example_sdl2_opengl3</RootNamespace>
- <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>true</UseDebugLibraries>
- <CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>true</UseDebugLibraries>
- <CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>false</UseDebugLibraries>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- <CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>false</UseDebugLibraries>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- <CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
- <ImportGroup Label="ExtensionSettings">
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <PropertyGroup Label="UserMacros" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <OutDir>$(ProjectDir)$(Configuration)\</OutDir>
- <IntDir>$(ProjectDir)$(Configuration)\</IntDir>
- <IncludePath>$(IncludePath)</IncludePath>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <OutDir>$(ProjectDir)$(Configuration)\</OutDir>
- <IntDir>$(ProjectDir)$(Configuration)\</IntDir>
- <IncludePath>$(IncludePath)</IncludePath>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <OutDir>$(ProjectDir)$(Configuration)\</OutDir>
- <IntDir>$(ProjectDir)$(Configuration)\</IntDir>
- <IncludePath>$(IncludePath)</IncludePath>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <OutDir>$(ProjectDir)$(Configuration)\</OutDir>
- <IntDir>$(ProjectDir)$(Configuration)\</IntDir>
- <IncludePath>$(IncludePath)</IncludePath>
- </PropertyGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <ClCompile>
- <WarningLevel>Level4</WarningLevel>
- <Optimization>Disabled</Optimization>
- <AdditionalIncludeDirectories>..\..;..\..\backends;%SDL2_DIR%\include;$(VcpkgCurrentInstalledDir)include\SDL2;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
- </ClCompile>
- <Link>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <AdditionalLibraryDirectories>%SDL2_DIR%\lib\x86;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
- <AdditionalDependencies>opengl32.lib;SDL2.lib;SDL2main.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <SubSystem>Console</SubSystem>
- <IgnoreSpecificDefaultLibraries>msvcrt.lib</IgnoreSpecificDefaultLibraries>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <ClCompile>
- <WarningLevel>Level4</WarningLevel>
- <Optimization>Disabled</Optimization>
- <AdditionalIncludeDirectories>..\..;..\..\backends;%SDL2_DIR%\include;$(VcpkgCurrentInstalledDir)include\SDL2;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
- </ClCompile>
- <Link>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <AdditionalLibraryDirectories>%SDL2_DIR%\lib\x64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
- <AdditionalDependencies>opengl32.lib;SDL2.lib;SDL2main.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <SubSystem>Console</SubSystem>
- <IgnoreSpecificDefaultLibraries>msvcrt.lib</IgnoreSpecificDefaultLibraries>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <ClCompile>
- <WarningLevel>Level4</WarningLevel>
- <Optimization>MaxSpeed</Optimization>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <IntrinsicFunctions>true</IntrinsicFunctions>
- <AdditionalIncludeDirectories>..\..;..\..\backends;%SDL2_DIR%\include;$(VcpkgCurrentInstalledDir)include\SDL2;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <BufferSecurityCheck>false</BufferSecurityCheck>
- <AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
- </ClCompile>
- <Link>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- <OptimizeReferences>true</OptimizeReferences>
- <AdditionalLibraryDirectories>%SDL2_DIR%\lib\x86;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
- <AdditionalDependencies>opengl32.lib;SDL2.lib;SDL2main.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <SubSystem>Console</SubSystem>
- <IgnoreSpecificDefaultLibraries>
- </IgnoreSpecificDefaultLibraries>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <ClCompile>
- <WarningLevel>Level4</WarningLevel>
- <Optimization>MaxSpeed</Optimization>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <IntrinsicFunctions>true</IntrinsicFunctions>
- <AdditionalIncludeDirectories>..\..;..\..\backends;%SDL2_DIR%\include;$(VcpkgCurrentInstalledDir)include\SDL2;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <BufferSecurityCheck>false</BufferSecurityCheck>
- <AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
- </ClCompile>
- <Link>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- <OptimizeReferences>true</OptimizeReferences>
- <AdditionalLibraryDirectories>%SDL2_DIR%\lib\x64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
- <AdditionalDependencies>opengl32.lib;SDL2.lib;SDL2main.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <SubSystem>Console</SubSystem>
- <IgnoreSpecificDefaultLibraries>
- </IgnoreSpecificDefaultLibraries>
- </Link>
- </ItemDefinitionGroup>
- <ItemGroup>
- <ClCompile Include="..\..\imgui.cpp" />
- <ClCompile Include="..\..\imgui_demo.cpp" />
- <ClCompile Include="..\..\imgui_draw.cpp" />
- <ClCompile Include="..\..\imgui_tables.cpp" />
- <ClCompile Include="..\..\imgui_widgets.cpp" />
- <ClCompile Include="..\..\backends\imgui_impl_sdl2.cpp" />
- <ClCompile Include="..\..\backends\imgui_impl_opengl3.cpp" />
- <ClCompile Include="main.cpp" />
- </ItemGroup>
- <ItemGroup>
- <ClInclude Include="..\..\imconfig.h" />
- <ClInclude Include="..\..\imgui.h" />
- <ClInclude Include="..\..\imgui_internal.h" />
- <ClInclude Include="..\..\backends\imgui_impl_sdl2.h" />
- <ClInclude Include="..\..\backends\imgui_impl_opengl3.h" />
- <ClInclude Include="..\..\backends\imgui_impl_opengl3_loader.h" />
- </ItemGroup>
- <ItemGroup>
- <None Include="..\..\misc\debuggers\imgui.natstepfilter" />
- <None Include="..\..\misc\debuggers\imgui.natvis" />
- <None Include="..\README.txt" />
- </ItemGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
- <ImportGroup Label="ExtensionTargets">
- </ImportGroup>
-</Project> \ No newline at end of file
diff --git a/imgui-1.92.1/examples/example_sdl2_opengl3/example_sdl2_opengl3.vcxproj.filters b/imgui-1.92.1/examples/example_sdl2_opengl3/example_sdl2_opengl3.vcxproj.filters
deleted file mode 100644
index 846d557..0000000
--- a/imgui-1.92.1/examples/example_sdl2_opengl3/example_sdl2_opengl3.vcxproj.filters
+++ /dev/null
@@ -1,67 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup>
- <Filter Include="imgui">
- <UniqueIdentifier>{20b90ce4-7fcb-4731-b9a0-075f875de82d}</UniqueIdentifier>
- </Filter>
- <Filter Include="sources">
- <UniqueIdentifier>{f18ab499-84e1-499f-8eff-9754361e0e52}</UniqueIdentifier>
- <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
- </Filter>
- </ItemGroup>
- <ItemGroup>
- <ClCompile Include="..\..\imgui.cpp">
- <Filter>imgui</Filter>
- </ClCompile>
- <ClCompile Include="..\..\imgui_demo.cpp">
- <Filter>imgui</Filter>
- </ClCompile>
- <ClCompile Include="..\..\imgui_draw.cpp">
- <Filter>imgui</Filter>
- </ClCompile>
- <ClCompile Include="main.cpp">
- <Filter>sources</Filter>
- </ClCompile>
- <ClCompile Include="..\..\backends\imgui_impl_sdl2.cpp">
- <Filter>sources</Filter>
- </ClCompile>
- <ClCompile Include="..\..\backends\imgui_impl_opengl3.cpp">
- <Filter>sources</Filter>
- </ClCompile>
- <ClCompile Include="..\..\imgui_tables.cpp">
- <Filter>imgui</Filter>
- </ClCompile>
- <ClCompile Include="..\..\imgui_widgets.cpp">
- <Filter>imgui</Filter>
- </ClCompile>
- </ItemGroup>
- <ItemGroup>
- <ClInclude Include="..\..\imconfig.h">
- <Filter>imgui</Filter>
- </ClInclude>
- <ClInclude Include="..\..\imgui.h">
- <Filter>imgui</Filter>
- </ClInclude>
- <ClInclude Include="..\..\imgui_internal.h">
- <Filter>imgui</Filter>
- </ClInclude>
- <ClInclude Include="..\..\backends\imgui_impl_sdl2.h">
- <Filter>sources</Filter>
- </ClInclude>
- <ClInclude Include="..\..\backends\imgui_impl_opengl3.h">
- <Filter>sources</Filter>
- </ClInclude>
- <ClInclude Include="..\..\backends\imgui_impl_opengl3_loader.h">
- <Filter>sources</Filter>
- </ClInclude>
- </ItemGroup>
- <ItemGroup>
- <None Include="..\README.txt" />
- <None Include="..\..\misc\debuggers\imgui.natvis">
- <Filter>imgui</Filter>
- </None>
- <None Include="..\..\misc\debuggers\imgui.natstepfilter">
- <Filter>imgui</Filter>
- </None>
- </ItemGroup>
-</Project> \ No newline at end of file
diff --git a/imgui-1.92.1/examples/example_sdl2_opengl3/main.cpp b/imgui-1.92.1/examples/example_sdl2_opengl3/main.cpp
deleted file mode 100644
index 16a73de..0000000
--- a/imgui-1.92.1/examples/example_sdl2_opengl3/main.cpp
+++ /dev/null
@@ -1,238 +0,0 @@
-// Dear ImGui: standalone example application for SDL2 + OpenGL
-// (SDL is a cross-platform general purpose library for handling windows, inputs, OpenGL/Vulkan/Metal graphics context creation, etc.)
-
-// Learn about Dear ImGui:
-// - FAQ https://dearimgui.com/faq
-// - Getting Started https://dearimgui.com/getting-started
-// - Documentation https://dearimgui.com/docs (same as your local docs/ folder).
-// - Introduction, links and more at the top of imgui.cpp
-
-#include "imgui.h"
-#include "imgui_impl_sdl2.h"
-#include "imgui_impl_opengl3.h"
-#include <stdio.h>
-#include <SDL.h>
-#if defined(IMGUI_IMPL_OPENGL_ES2)
-#include <SDL_opengles2.h>
-#else
-#include <SDL_opengl.h>
-#endif
-#ifdef _WIN32
-#include <windows.h> // SetProcessDPIAware()
-#endif
-
-// This example can also compile and run with Emscripten! See 'Makefile.emscripten' for details.
-#ifdef __EMSCRIPTEN__
-#include "../libs/emscripten/emscripten_mainloop_stub.h"
-#endif
-
-// Main code
-int main(int, char**)
-{
- // Setup SDL
-#ifdef _WIN32
- ::SetProcessDPIAware();
-#endif
- if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_TIMER | SDL_INIT_GAMECONTROLLER) != 0)
- {
- printf("Error: %s\n", SDL_GetError());
- return -1;
- }
-
- // Decide GL+GLSL versions
-#if defined(IMGUI_IMPL_OPENGL_ES2)
- // GL ES 2.0 + GLSL 100 (WebGL 1.0)
- const char* glsl_version = "#version 100";
- SDL_GL_SetAttribute(SDL_GL_CONTEXT_FLAGS, 0);
- SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_ES);
- SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 2);
- SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 0);
-#elif defined(IMGUI_IMPL_OPENGL_ES3)
- // GL ES 3.0 + GLSL 300 es (WebGL 2.0)
- const char* glsl_version = "#version 300 es";
- SDL_GL_SetAttribute(SDL_GL_CONTEXT_FLAGS, 0);
- SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_ES);
- SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 3);
- SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 0);
-#elif defined(__APPLE__)
- // GL 3.2 Core + GLSL 150
- const char* glsl_version = "#version 150";
- SDL_GL_SetAttribute(SDL_GL_CONTEXT_FLAGS, SDL_GL_CONTEXT_FORWARD_COMPATIBLE_FLAG); // Always required on Mac
- SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_CORE);
- SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 3);
- SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 2);
-#else
- // GL 3.0 + GLSL 130
- const char* glsl_version = "#version 130";
- SDL_GL_SetAttribute(SDL_GL_CONTEXT_FLAGS, 0);
- SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_CORE);
- SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 3);
- SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 0);
-#endif
-
- // From 2.0.18: Enable native IME.
-#ifdef SDL_HINT_IME_SHOW_UI
- SDL_SetHint(SDL_HINT_IME_SHOW_UI, "1");
-#endif
-
- // Create window with graphics context
- SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);
- SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE, 24);
- SDL_GL_SetAttribute(SDL_GL_STENCIL_SIZE, 8);
- float main_scale = ImGui_ImplSDL2_GetContentScaleForDisplay(0);
- SDL_WindowFlags window_flags = (SDL_WindowFlags)(SDL_WINDOW_OPENGL | SDL_WINDOW_RESIZABLE | SDL_WINDOW_ALLOW_HIGHDPI);
- SDL_Window* window = SDL_CreateWindow("Dear ImGui SDL2+OpenGL3 example", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, (int)(1280 * main_scale), (int)(720 * main_scale), window_flags);
- if (window == nullptr)
- {
- printf("Error: SDL_CreateWindow(): %s\n", SDL_GetError());
- return -1;
- }
-
- SDL_GLContext gl_context = SDL_GL_CreateContext(window);
- if (gl_context == nullptr)
- {
- printf("Error: SDL_GL_CreateContext(): %s\n", SDL_GetError());
- return -1;
- }
-
- SDL_GL_MakeCurrent(window, gl_context);
- SDL_GL_SetSwapInterval(1); // Enable vsync
-
- // Setup Dear ImGui context
- IMGUI_CHECKVERSION();
- ImGui::CreateContext();
- ImGuiIO& io = ImGui::GetIO(); (void)io;
- io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard; // Enable Keyboard Controls
- io.ConfigFlags |= ImGuiConfigFlags_NavEnableGamepad; // Enable Gamepad Controls
-
- // Setup Dear ImGui style
- ImGui::StyleColorsDark();
- //ImGui::StyleColorsLight();
-
- // Setup scaling
- ImGuiStyle& style = ImGui::GetStyle();
- style.ScaleAllSizes(main_scale); // Bake a fixed style scale. (until we have a solution for dynamic style scaling, changing this requires resetting Style + calling this again)
- style.FontScaleDpi = main_scale; // Set initial font scale. (using io.ConfigDpiScaleFonts=true makes this unnecessary. We leave both here for documentation purpose)
-
- // Setup Platform/Renderer backends
- ImGui_ImplSDL2_InitForOpenGL(window, gl_context);
- ImGui_ImplOpenGL3_Init(glsl_version);
-
- // Load Fonts
- // - If no fonts are loaded, dear imgui will use the default font. You can also load multiple fonts and use ImGui::PushFont()/PopFont() to select them.
- // - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
- // - If the file cannot be loaded, the function will return a nullptr. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
- // - Use '#define IMGUI_ENABLE_FREETYPE' in your imconfig file to use Freetype for higher quality font rendering.
- // - Read 'docs/FONTS.md' for more instructions and details.
- // - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
- // - Our Emscripten build process allows embedding fonts to be accessible at runtime from the "fonts/" folder. See Makefile.emscripten for details.
- //style.FontSizeBase = 20.0f;
- //io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\segoeui.ttf");
- //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf");
- //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf");
- //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf");
- //ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf");
- //IM_ASSERT(font != nullptr);
-
- // Our state
- bool show_demo_window = true;
- bool show_another_window = false;
- ImVec4 clear_color = ImVec4(0.45f, 0.55f, 0.60f, 1.00f);
-
- // Main loop
- bool done = false;
-#ifdef __EMSCRIPTEN__
- // For an Emscripten build we are disabling file-system access, so let's not attempt to do a fopen() of the imgui.ini file.
- // You may manually call LoadIniSettingsFromMemory() to load settings from your own storage.
- io.IniFilename = nullptr;
- EMSCRIPTEN_MAINLOOP_BEGIN
-#else
- while (!done)
-#endif
- {
- // Poll and handle events (inputs, window resize, etc.)
- // You can read the io.WantCaptureMouse, io.WantCaptureKeyboard flags to tell if dear imgui wants to use your inputs.
- // - When io.WantCaptureMouse is true, do not dispatch mouse input data to your main application, or clear/overwrite your copy of the mouse data.
- // - When io.WantCaptureKeyboard is true, do not dispatch keyboard input data to your main application, or clear/overwrite your copy of the keyboard data.
- // Generally you may always pass all inputs to dear imgui, and hide them from your application based on those two flags.
- SDL_Event event;
- while (SDL_PollEvent(&event))
- {
- ImGui_ImplSDL2_ProcessEvent(&event);
- if (event.type == SDL_QUIT)
- done = true;
- if (event.type == SDL_WINDOWEVENT && event.window.event == SDL_WINDOWEVENT_CLOSE && event.window.windowID == SDL_GetWindowID(window))
- done = true;
- }
- if (SDL_GetWindowFlags(window) & SDL_WINDOW_MINIMIZED)
- {
- SDL_Delay(10);
- continue;
- }
-
- // Start the Dear ImGui frame
- ImGui_ImplOpenGL3_NewFrame();
- ImGui_ImplSDL2_NewFrame();
- ImGui::NewFrame();
-
- // 1. Show the big demo window (Most of the sample code is in ImGui::ShowDemoWindow()! You can browse its code to learn more about Dear ImGui!).
- if (show_demo_window)
- ImGui::ShowDemoWindow(&show_demo_window);
-
- // 2. Show a simple window that we create ourselves. We use a Begin/End pair to create a named window.
- {
- static float f = 0.0f;
- static int counter = 0;
-
- ImGui::Begin("Hello, world!"); // Create a window called "Hello, world!" and append into it.
-
- ImGui::Text("This is some useful text."); // Display some text (you can use a format strings too)
- ImGui::Checkbox("Demo Window", &show_demo_window); // Edit bools storing our window open/close state
- ImGui::Checkbox("Another Window", &show_another_window);
-
- ImGui::SliderFloat("float", &f, 0.0f, 1.0f); // Edit 1 float using a slider from 0.0f to 1.0f
- ImGui::ColorEdit3("clear color", (float*)&clear_color); // Edit 3 floats representing a color
-
- if (ImGui::Button("Button")) // Buttons return true when clicked (most widgets return true when edited/activated)
- counter++;
- ImGui::SameLine();
- ImGui::Text("counter = %d", counter);
-
- ImGui::Text("Application average %.3f ms/frame (%.1f FPS)", 1000.0f / io.Framerate, io.Framerate);
- ImGui::End();
- }
-
- // 3. Show another simple window.
- if (show_another_window)
- {
- ImGui::Begin("Another Window", &show_another_window); // Pass a pointer to our bool variable (the window will have a closing button that will clear the bool when clicked)
- ImGui::Text("Hello from another window!");
- if (ImGui::Button("Close Me"))
- show_another_window = false;
- ImGui::End();
- }
-
- // Rendering
- ImGui::Render();
- glViewport(0, 0, (int)io.DisplaySize.x, (int)io.DisplaySize.y);
- glClearColor(clear_color.x * clear_color.w, clear_color.y * clear_color.w, clear_color.z * clear_color.w, clear_color.w);
- glClear(GL_COLOR_BUFFER_BIT);
- ImGui_ImplOpenGL3_RenderDrawData(ImGui::GetDrawData());
- SDL_GL_SwapWindow(window);
- }
-#ifdef __EMSCRIPTEN__
- EMSCRIPTEN_MAINLOOP_END;
-#endif
-
- // Cleanup
- ImGui_ImplOpenGL3_Shutdown();
- ImGui_ImplSDL2_Shutdown();
- ImGui::DestroyContext();
-
- SDL_GL_DeleteContext(gl_context);
- SDL_DestroyWindow(window);
- SDL_Quit();
-
- return 0;
-}
diff --git a/imgui-1.92.1/examples/example_sdl2_sdlrenderer2/Makefile b/imgui-1.92.1/examples/example_sdl2_sdlrenderer2/Makefile
deleted file mode 100644
index 5820d9b..0000000
--- a/imgui-1.92.1/examples/example_sdl2_sdlrenderer2/Makefile
+++ /dev/null
@@ -1,79 +0,0 @@
-#
-# Cross Platform Makefile
-# Compatible with MSYS2/MINGW, Ubuntu 14.04.1 and Mac OS X
-#
-# You will need SDL2 (http://www.libsdl.org):
-# Linux:
-# apt-get install libsdl2-dev
-# Mac OS X:
-# brew install sdl2
-# MSYS2:
-# pacman -S mingw-w64-i686-SDL2
-#
-
-#CXX = g++
-#CXX = clang++
-
-EXE = example_sdl2_sdlrenderer2
-IMGUI_DIR = ../..
-SOURCES = main.cpp
-SOURCES += $(IMGUI_DIR)/imgui.cpp $(IMGUI_DIR)/imgui_demo.cpp $(IMGUI_DIR)/imgui_draw.cpp $(IMGUI_DIR)/imgui_tables.cpp $(IMGUI_DIR)/imgui_widgets.cpp
-SOURCES += $(IMGUI_DIR)/backends/imgui_impl_sdl2.cpp $(IMGUI_DIR)/backends/imgui_impl_sdlrenderer2.cpp
-OBJS = $(addsuffix .o, $(basename $(notdir $(SOURCES))))
-UNAME_S := $(shell uname -s)
-
-CXXFLAGS = -std=c++11 -I$(IMGUI_DIR) -I$(IMGUI_DIR)/backends
-CXXFLAGS += -g -Wall -Wformat
-LIBS =
-
-##---------------------------------------------------------------------
-## BUILD FLAGS PER PLATFORM
-##---------------------------------------------------------------------
-
-ifeq ($(UNAME_S), Linux) #LINUX
- ECHO_MESSAGE = "Linux"
- LIBS += -lGL -ldl `sdl2-config --libs`
-
- CXXFLAGS += `sdl2-config --cflags`
- CFLAGS = $(CXXFLAGS)
-endif
-
-ifeq ($(UNAME_S), Darwin) #APPLE
- ECHO_MESSAGE = "Mac OS X"
- LIBS += -framework OpenGL -framework Cocoa -framework IOKit -framework CoreVideo `sdl2-config --libs`
- LIBS += -L/usr/local/lib -L/opt/local/lib
-
- CXXFLAGS += `sdl2-config --cflags`
- CXXFLAGS += -I/usr/local/include -I/opt/local/include
- CFLAGS = $(CXXFLAGS)
-endif
-
-ifeq ($(OS), Windows_NT)
- ECHO_MESSAGE = "MinGW"
- LIBS += -lgdi32 -lopengl32 -limm32 `pkg-config --static --libs sdl2`
-
- CXXFLAGS += `pkg-config --cflags sdl2`
- CFLAGS = $(CXXFLAGS)
-endif
-
-##---------------------------------------------------------------------
-## BUILD RULES
-##---------------------------------------------------------------------
-
-%.o:%.cpp
- $(CXX) $(CXXFLAGS) -c -o $@ $<
-
-%.o:$(IMGUI_DIR)/%.cpp
- $(CXX) $(CXXFLAGS) -c -o $@ $<
-
-%.o:$(IMGUI_DIR)/backends/%.cpp
- $(CXX) $(CXXFLAGS) -c -o $@ $<
-
-all: $(EXE)
- @echo Build complete for $(ECHO_MESSAGE)
-
-$(EXE): $(OBJS)
- $(CXX) -o $@ $^ $(CXXFLAGS) $(LIBS)
-
-clean:
- rm -f $(EXE) $(OBJS)
diff --git a/imgui-1.92.1/examples/example_sdl2_sdlrenderer2/README.md b/imgui-1.92.1/examples/example_sdl2_sdlrenderer2/README.md
deleted file mode 100644
index ef6fe85..0000000
--- a/imgui-1.92.1/examples/example_sdl2_sdlrenderer2/README.md
+++ /dev/null
@@ -1,25 +0,0 @@
-
-# How to Build
-
-- On Windows with Visual Studio's CLI
-
-```
-set SDL2_DIR=path_to_your_sdl2_folder
-cl /Zi /MD /utf-8 /I.. /I..\.. /I%SDL2_DIR%\include main.cpp ..\..\backends\imgui_impl_sdl2.cpp ..\..\backends\imgui_impl_sdlrenderer2.cpp ..\..\imgui*.cpp /FeDebug/example_sdl2_sdlrenderer.exe /FoDebug/ /link /libpath:%SDL2_DIR%\lib\x86 SDL2.lib SDL2main.lib /subsystem:console
-# ^^ include paths ^^ source files ^^ output exe ^^ output dir ^^ libraries
-# or for 64-bit:
-cl /Zi /MD /utf-8 /I.. /I..\.. /I%SDL2_DIR%\include main.cpp ..\..\backends\imgui_impl_sdl2.cpp ..\..\backends\imgui_impl_sdlrenderer2.cpp ..\..\imgui*.cpp /FeDebug/example_sdl2_sdlrenderer.exe /FoDebug/ /link /libpath:%SDL2_DIR%\lib\x64 SDL2.lib SDL2main.lib /subsystem:console
-```
-
-- On Linux and similar Unixes
-
-```
-c++ `sdl2-config --cflags` -I .. -I ../.. main.cpp ../../backends/imgui_impl_sdl2.cpp ../../backends/imgui_impl_sdlrenderer2.cpp ../../imgui*.cpp `sdl2-config --libs` -lGL
-```
-
-- On Mac OS X
-
-```
-brew install sdl2
-c++ `sdl2-config --cflags` -I .. -I ../.. main.cpp ../../backends/imgui_impl_sdl2.cpp ../../backends/imgui_impl_sdlrenderer2.cpp ../../imgui*.cpp `sdl2-config --libs` -framework OpenGl
-```
diff --git a/imgui-1.92.1/examples/example_sdl2_sdlrenderer2/build_win32.bat b/imgui-1.92.1/examples/example_sdl2_sdlrenderer2/build_win32.bat
deleted file mode 100644
index e311bfc..0000000
--- a/imgui-1.92.1/examples/example_sdl2_sdlrenderer2/build_win32.bat
+++ /dev/null
@@ -1,8 +0,0 @@
-@REM Build for Visual Studio compiler. Run your copy of vcvars32.bat or vcvarsall.bat to setup command-line compiler.
-@set OUT_DIR=Debug
-@set OUT_EXE=example_sdl2_sdlrenderer_
-@set INCLUDES=/I..\.. /I..\..\backends /I%SDL2_DIR%\include
-@set SOURCES=main.cpp ..\..\backends\imgui_impl_sdl2.cpp ..\..\backends\imgui_impl_sdlrenderer2.cpp ..\..\imgui*.cpp
-@set LIBS=/LIBPATH:%SDL2_DIR%\lib\x86 SDL2.lib SDL2main.lib
-mkdir %OUT_DIR%
-cl /nologo /Zi /MD /utf-8 %INCLUDES% %SOURCES% /Fe%OUT_DIR%/%OUT_EXE%.exe /Fo%OUT_DIR%/ /link %LIBS% /subsystem:console
diff --git a/imgui-1.92.1/examples/example_sdl2_sdlrenderer2/example_sdl2_sdlrenderer2.vcxproj b/imgui-1.92.1/examples/example_sdl2_sdlrenderer2/example_sdl2_sdlrenderer2.vcxproj
deleted file mode 100644
index cf2c890..0000000
--- a/imgui-1.92.1/examples/example_sdl2_sdlrenderer2/example_sdl2_sdlrenderer2.vcxproj
+++ /dev/null
@@ -1,187 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="Debug|Win32">
- <Configuration>Debug</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Debug|x64">
- <Configuration>Debug</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|Win32">
- <Configuration>Release</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|x64">
- <Configuration>Release</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- </ItemGroup>
- <PropertyGroup Label="Globals">
- <ProjectGuid>{0C0B2BEA-311F-473C-9652-87923EF639E3}</ProjectGuid>
- <RootNamespace>example_sdl2_sdlrenderer2</RootNamespace>
- <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
- <ProjectName>example_sdl2_sdlrenderer2</ProjectName>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>true</UseDebugLibraries>
- <CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>true</UseDebugLibraries>
- <CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>false</UseDebugLibraries>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- <CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>false</UseDebugLibraries>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- <CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
- <ImportGroup Label="ExtensionSettings">
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <PropertyGroup Label="UserMacros" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <OutDir>$(ProjectDir)$(Configuration)\</OutDir>
- <IntDir>$(ProjectDir)$(Configuration)\</IntDir>
- <IncludePath>$(IncludePath)</IncludePath>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <OutDir>$(ProjectDir)$(Configuration)\</OutDir>
- <IntDir>$(ProjectDir)$(Configuration)\</IntDir>
- <IncludePath>$(IncludePath)</IncludePath>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <OutDir>$(ProjectDir)$(Configuration)\</OutDir>
- <IntDir>$(ProjectDir)$(Configuration)\</IntDir>
- <IncludePath>$(IncludePath)</IncludePath>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <OutDir>$(ProjectDir)$(Configuration)\</OutDir>
- <IntDir>$(ProjectDir)$(Configuration)\</IntDir>
- <IncludePath>$(IncludePath)</IncludePath>
- </PropertyGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <ClCompile>
- <WarningLevel>Level4</WarningLevel>
- <Optimization>Disabled</Optimization>
- <AdditionalIncludeDirectories>..\..;..\..\backends;%SDL2_DIR%\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
- </ClCompile>
- <Link>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <AdditionalLibraryDirectories>%SDL2_DIR%\lib\x86;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
- <AdditionalDependencies>SDL2.lib;SDL2main.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <SubSystem>Console</SubSystem>
- <IgnoreSpecificDefaultLibraries>msvcrt.lib</IgnoreSpecificDefaultLibraries>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <ClCompile>
- <WarningLevel>Level4</WarningLevel>
- <Optimization>Disabled</Optimization>
- <AdditionalIncludeDirectories>..\..;..\..\backends;%SDL2_DIR%\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
- </ClCompile>
- <Link>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <AdditionalLibraryDirectories>%SDL2_DIR%\lib\x64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
- <AdditionalDependencies>SDL2.lib;SDL2main.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <SubSystem>Console</SubSystem>
- <IgnoreSpecificDefaultLibraries>msvcrt.lib</IgnoreSpecificDefaultLibraries>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <ClCompile>
- <WarningLevel>Level4</WarningLevel>
- <Optimization>MaxSpeed</Optimization>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <IntrinsicFunctions>true</IntrinsicFunctions>
- <AdditionalIncludeDirectories>..\..;..\..\backends;%SDL2_DIR%\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <BufferSecurityCheck>false</BufferSecurityCheck>
- <AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
- </ClCompile>
- <Link>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- <OptimizeReferences>true</OptimizeReferences>
- <AdditionalLibraryDirectories>%SDL2_DIR%\lib\x86;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
- <AdditionalDependencies>SDL2.lib;SDL2main.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <SubSystem>Console</SubSystem>
- <IgnoreSpecificDefaultLibraries>
- </IgnoreSpecificDefaultLibraries>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <ClCompile>
- <WarningLevel>Level4</WarningLevel>
- <Optimization>MaxSpeed</Optimization>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <IntrinsicFunctions>true</IntrinsicFunctions>
- <AdditionalIncludeDirectories>..\..;..\..\backends;%SDL2_DIR%\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <BufferSecurityCheck>false</BufferSecurityCheck>
- <AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
- </ClCompile>
- <Link>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- <OptimizeReferences>true</OptimizeReferences>
- <AdditionalLibraryDirectories>%SDL2_DIR%\lib\x64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
- <AdditionalDependencies>SDL2.lib;SDL2main.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <SubSystem>Console</SubSystem>
- <IgnoreSpecificDefaultLibraries>
- </IgnoreSpecificDefaultLibraries>
- </Link>
- </ItemDefinitionGroup>
- <ItemGroup>
- <ClCompile Include="..\..\imgui.cpp" />
- <ClCompile Include="..\..\imgui_demo.cpp" />
- <ClCompile Include="..\..\imgui_draw.cpp" />
- <ClCompile Include="..\..\imgui_tables.cpp" />
- <ClCompile Include="..\..\imgui_widgets.cpp" />
- <ClCompile Include="..\..\backends\imgui_impl_sdl2.cpp" />
- <ClCompile Include="..\..\backends\imgui_impl_sdlrenderer2.cpp" />
- <ClCompile Include="main.cpp" />
- </ItemGroup>
- <ItemGroup>
- <ClInclude Include="..\..\imconfig.h" />
- <ClInclude Include="..\..\imgui.h" />
- <ClInclude Include="..\..\imgui_internal.h" />
- <ClInclude Include="..\..\backends\imgui_impl_sdl2.h" />
- <ClInclude Include="..\..\backends\imgui_impl_sdlrenderer2.h" />
- </ItemGroup>
- <ItemGroup>
- <None Include="..\..\misc\debuggers\imgui.natstepfilter" />
- <None Include="..\..\misc\debuggers\imgui.natvis" />
- <None Include="..\README.txt" />
- </ItemGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
- <ImportGroup Label="ExtensionTargets">
- </ImportGroup>
-</Project>
diff --git a/imgui-1.92.1/examples/example_sdl2_sdlrenderer2/example_sdl2_sdlrenderer2.vcxproj.filters b/imgui-1.92.1/examples/example_sdl2_sdlrenderer2/example_sdl2_sdlrenderer2.vcxproj.filters
deleted file mode 100644
index 5c6da42..0000000
--- a/imgui-1.92.1/examples/example_sdl2_sdlrenderer2/example_sdl2_sdlrenderer2.vcxproj.filters
+++ /dev/null
@@ -1,64 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup>
- <Filter Include="imgui">
- <UniqueIdentifier>{20b90ce4-7fcb-4731-b9a0-075f875de82d}</UniqueIdentifier>
- </Filter>
- <Filter Include="sources">
- <UniqueIdentifier>{f18ab499-84e1-499f-8eff-9754361e0e52}</UniqueIdentifier>
- <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
- </Filter>
- </ItemGroup>
- <ItemGroup>
- <ClCompile Include="..\..\imgui.cpp">
- <Filter>imgui</Filter>
- </ClCompile>
- <ClCompile Include="..\..\imgui_demo.cpp">
- <Filter>imgui</Filter>
- </ClCompile>
- <ClCompile Include="..\..\imgui_draw.cpp">
- <Filter>imgui</Filter>
- </ClCompile>
- <ClCompile Include="main.cpp">
- <Filter>sources</Filter>
- </ClCompile>
- <ClCompile Include="..\..\imgui_tables.cpp">
- <Filter>imgui</Filter>
- </ClCompile>
- <ClCompile Include="..\..\imgui_widgets.cpp">
- <Filter>imgui</Filter>
- </ClCompile>
- <ClCompile Include="..\..\backends\imgui_impl_sdl2.cpp">
- <Filter>sources</Filter>
- </ClCompile>
- <ClCompile Include="..\..\backends\imgui_impl_sdlrenderer2.cpp">
- <Filter>sources</Filter>
- </ClCompile>
- </ItemGroup>
- <ItemGroup>
- <ClInclude Include="..\..\imconfig.h">
- <Filter>imgui</Filter>
- </ClInclude>
- <ClInclude Include="..\..\imgui.h">
- <Filter>imgui</Filter>
- </ClInclude>
- <ClInclude Include="..\..\imgui_internal.h">
- <Filter>imgui</Filter>
- </ClInclude>
- <ClInclude Include="..\..\backends\imgui_impl_sdlrenderer2.h">
- <Filter>sources</Filter>
- </ClInclude>
- <ClInclude Include="..\..\backends\imgui_impl_sdl2.h">
- <Filter>sources</Filter>
- </ClInclude>
- </ItemGroup>
- <ItemGroup>
- <None Include="..\README.txt" />
- <None Include="..\..\misc\debuggers\imgui.natvis">
- <Filter>imgui</Filter>
- </None>
- <None Include="..\..\misc\debuggers\imgui.natstepfilter">
- <Filter>imgui</Filter>
- </None>
- </ItemGroup>
-</Project>
diff --git a/imgui-1.92.1/examples/example_sdl2_sdlrenderer2/main.cpp b/imgui-1.92.1/examples/example_sdl2_sdlrenderer2/main.cpp
deleted file mode 100644
index e456b2e..0000000
--- a/imgui-1.92.1/examples/example_sdl2_sdlrenderer2/main.cpp
+++ /dev/null
@@ -1,189 +0,0 @@
-// Dear ImGui: standalone example application for SDL2 + SDL_Renderer
-// (SDL is a cross-platform general purpose library for handling windows, inputs, OpenGL/Vulkan/Metal graphics context creation, etc.)
-
-// Learn about Dear ImGui:
-// - FAQ https://dearimgui.com/faq
-// - Getting Started https://dearimgui.com/getting-started
-// - Documentation https://dearimgui.com/docs (same as your local docs/ folder).
-// - Introduction, links and more at the top of imgui.cpp
-
-// Important to understand: SDL_Renderer is an _optional_ component of SDL2.
-// For a multi-platform app consider using e.g. SDL+DirectX on Windows and SDL+OpenGL on Linux/OSX.
-
-#include "imgui.h"
-#include "imgui_impl_sdl2.h"
-#include "imgui_impl_sdlrenderer2.h"
-#include <stdio.h>
-#include <SDL.h>
-#ifdef _WIN32
-#include <windows.h> // SetProcessDPIAware()
-#endif
-
-#if !SDL_VERSION_ATLEAST(2,0,17)
-#error This backend requires SDL 2.0.17+ because of SDL_RenderGeometry() function
-#endif
-
-// Main code
-int main(int, char**)
-{
- // Setup SDL
-#ifdef _WIN32
- ::SetProcessDPIAware();
-#endif
- if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_TIMER | SDL_INIT_GAMECONTROLLER) != 0)
- {
- printf("Error: %s\n", SDL_GetError());
- return -1;
- }
-
- // From 2.0.18: Enable native IME.
-#ifdef SDL_HINT_IME_SHOW_UI
- SDL_SetHint(SDL_HINT_IME_SHOW_UI, "1");
-#endif
-
- // Create window with SDL_Renderer graphics context
- float main_scale = ImGui_ImplSDL2_GetContentScaleForDisplay(0);
- SDL_WindowFlags window_flags = (SDL_WindowFlags)(SDL_WINDOW_RESIZABLE | SDL_WINDOW_ALLOW_HIGHDPI);
- SDL_Window* window = SDL_CreateWindow("Dear ImGui SDL2+SDL_Renderer example", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, (int)(1280 * main_scale), (int)(720 * main_scale), window_flags);
- if (window == nullptr)
- {
- printf("Error: SDL_CreateWindow(): %s\n", SDL_GetError());
- return -1;
- }
- SDL_Renderer* renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_PRESENTVSYNC | SDL_RENDERER_ACCELERATED);
- if (renderer == nullptr)
- {
- SDL_Log("Error creating SDL_Renderer!");
- return -1;
- }
- //SDL_RendererInfo info;
- //SDL_GetRendererInfo(renderer, &info);
- //SDL_Log("Current SDL_Renderer: %s", info.name);
-
- // Setup Dear ImGui context
- IMGUI_CHECKVERSION();
- ImGui::CreateContext();
- ImGuiIO& io = ImGui::GetIO(); (void)io;
- io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard; // Enable Keyboard Controls
- io.ConfigFlags |= ImGuiConfigFlags_NavEnableGamepad; // Enable Gamepad Controls
-
- // Setup Dear ImGui style
- ImGui::StyleColorsDark();
- //ImGui::StyleColorsLight();
-
- // Setup scaling
- ImGuiStyle& style = ImGui::GetStyle();
- style.ScaleAllSizes(main_scale); // Bake a fixed style scale. (until we have a solution for dynamic style scaling, changing this requires resetting Style + calling this again)
- style.FontScaleDpi = main_scale; // Set initial font scale. (using io.ConfigDpiScaleFonts=true makes this unnecessary. We leave both here for documentation purpose)
-
- // Setup Platform/Renderer backends
- ImGui_ImplSDL2_InitForSDLRenderer(window, renderer);
- ImGui_ImplSDLRenderer2_Init(renderer);
-
- // Load Fonts
- // - If no fonts are loaded, dear imgui will use the default font. You can also load multiple fonts and use ImGui::PushFont()/PopFont() to select them.
- // - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
- // - If the file cannot be loaded, the function will return a nullptr. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
- // - Use '#define IMGUI_ENABLE_FREETYPE' in your imconfig file to use Freetype for higher quality font rendering.
- // - Read 'docs/FONTS.md' for more instructions and details.
- // - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
- //style.FontSizeBase = 20.0f;
- //io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\segoeui.ttf");
- //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf");
- //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf");
- //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf");
- //ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf");
- //IM_ASSERT(font != nullptr);
-
- // Our state
- bool show_demo_window = true;
- bool show_another_window = false;
- ImVec4 clear_color = ImVec4(0.45f, 0.55f, 0.60f, 1.00f);
-
- // Main loop
- bool done = false;
- while (!done)
- {
- // Poll and handle events (inputs, window resize, etc.)
- // You can read the io.WantCaptureMouse, io.WantCaptureKeyboard flags to tell if dear imgui wants to use your inputs.
- // - When io.WantCaptureMouse is true, do not dispatch mouse input data to your main application, or clear/overwrite your copy of the mouse data.
- // - When io.WantCaptureKeyboard is true, do not dispatch keyboard input data to your main application, or clear/overwrite your copy of the keyboard data.
- // Generally you may always pass all inputs to dear imgui, and hide them from your application based on those two flags.
- SDL_Event event;
- while (SDL_PollEvent(&event))
- {
- ImGui_ImplSDL2_ProcessEvent(&event);
- if (event.type == SDL_QUIT)
- done = true;
- if (event.type == SDL_WINDOWEVENT && event.window.event == SDL_WINDOWEVENT_CLOSE && event.window.windowID == SDL_GetWindowID(window))
- done = true;
- }
- if (SDL_GetWindowFlags(window) & SDL_WINDOW_MINIMIZED)
- {
- SDL_Delay(10);
- continue;
- }
-
- // Start the Dear ImGui frame
- ImGui_ImplSDLRenderer2_NewFrame();
- ImGui_ImplSDL2_NewFrame();
- ImGui::NewFrame();
-
- // 1. Show the big demo window (Most of the sample code is in ImGui::ShowDemoWindow()! You can browse its code to learn more about Dear ImGui!).
- if (show_demo_window)
- ImGui::ShowDemoWindow(&show_demo_window);
-
- // 2. Show a simple window that we create ourselves. We use a Begin/End pair to create a named window.
- {
- static float f = 0.0f;
- static int counter = 0;
-
- ImGui::Begin("Hello, world!"); // Create a window called "Hello, world!" and append into it.
-
- ImGui::Text("This is some useful text."); // Display some text (you can use a format strings too)
- ImGui::Checkbox("Demo Window", &show_demo_window); // Edit bools storing our window open/close state
- ImGui::Checkbox("Another Window", &show_another_window);
-
- ImGui::SliderFloat("float", &f, 0.0f, 1.0f); // Edit 1 float using a slider from 0.0f to 1.0f
- ImGui::ColorEdit3("clear color", (float*)&clear_color); // Edit 3 floats representing a color
-
- if (ImGui::Button("Button")) // Buttons return true when clicked (most widgets return true when edited/activated)
- counter++;
- ImGui::SameLine();
- ImGui::Text("counter = %d", counter);
-
- ImGui::Text("Application average %.3f ms/frame (%.1f FPS)", 1000.0f / io.Framerate, io.Framerate);
- ImGui::End();
- }
-
- // 3. Show another simple window.
- if (show_another_window)
- {
- ImGui::Begin("Another Window", &show_another_window); // Pass a pointer to our bool variable (the window will have a closing button that will clear the bool when clicked)
- ImGui::Text("Hello from another window!");
- if (ImGui::Button("Close Me"))
- show_another_window = false;
- ImGui::End();
- }
-
- // Rendering
- ImGui::Render();
- SDL_RenderSetScale(renderer, io.DisplayFramebufferScale.x, io.DisplayFramebufferScale.y);
- SDL_SetRenderDrawColor(renderer, (Uint8)(clear_color.x * 255), (Uint8)(clear_color.y * 255), (Uint8)(clear_color.z * 255), (Uint8)(clear_color.w * 255));
- SDL_RenderClear(renderer);
- ImGui_ImplSDLRenderer2_RenderDrawData(ImGui::GetDrawData(), renderer);
- SDL_RenderPresent(renderer);
- }
-
- // Cleanup
- ImGui_ImplSDLRenderer2_Shutdown();
- ImGui_ImplSDL2_Shutdown();
- ImGui::DestroyContext();
-
- SDL_DestroyRenderer(renderer);
- SDL_DestroyWindow(window);
- SDL_Quit();
-
- return 0;
-}
diff --git a/imgui-1.92.1/examples/example_sdl2_vulkan/Makefile b/imgui-1.92.1/examples/example_sdl2_vulkan/Makefile
deleted file mode 100644
index e722ab0..0000000
--- a/imgui-1.92.1/examples/example_sdl2_vulkan/Makefile
+++ /dev/null
@@ -1,80 +0,0 @@
-#
-# Cross Platform Makefile
-# Compatible with MSYS2/MINGW, Ubuntu 14.04.1 and Mac OS X
-#
-# You will need SDL2 (http://www.libsdl.org):
-# Linux:
-# apt-get install libsdl2-dev
-# Mac OS X:
-# brew install sdl2
-# MSYS2:
-# pacman -S mingw-w64-i686-SDL2
-#
-
-#CXX = g++
-#CXX = clang++
-
-EXE = example_sdl2_vulkan
-IMGUI_DIR = ../..
-SOURCES = main.cpp
-SOURCES += $(IMGUI_DIR)/imgui.cpp $(IMGUI_DIR)/imgui_demo.cpp $(IMGUI_DIR)/imgui_draw.cpp $(IMGUI_DIR)/imgui_tables.cpp $(IMGUI_DIR)/imgui_widgets.cpp
-SOURCES += $(IMGUI_DIR)/backends/imgui_impl_sdl2.cpp $(IMGUI_DIR)/backends/imgui_impl_vulkan.cpp
-OBJS = $(addsuffix .o, $(basename $(notdir $(SOURCES))))
-UNAME_S := $(shell uname -s)
-
-CXXFLAGS = -std=c++11 -I$(IMGUI_DIR) -I$(IMGUI_DIR)/backends
-CXXFLAGS += -g -Wall -Wformat
-LIBS =
-
-##---------------------------------------------------------------------
-## BUILD FLAGS PER PLATFORM
-##---------------------------------------------------------------------
-
-ifeq ($(UNAME_S), Linux) #LINUX
- ECHO_MESSAGE = "Linux"
- LIBS += -lGL -ldl
- LIBS += `pkg-config --libs sdl2 vulkan`
- CXXFLAGS += `pkg-config --cflags sdl2 vulkan`
- CFLAGS = $(CXXFLAGS)
-endif
-
-ifeq ($(UNAME_S), Darwin) #APPLE
- ECHO_MESSAGE = "Mac OS X"
- LIBS += -framework Cocoa -framework IOKit -framework CoreVideo
- LIBS += `pkg-config --libs sdl2 vulkan`
- LIBS += -L/usr/local/lib -L/opt/local/lib
-
- CXXFLAGS += `pkg-config --cflags sdl2 vulkan`
- CXXFLAGS += -I/usr/local/include -I/opt/local/include
- CFLAGS = $(CXXFLAGS)
-endif
-
-ifeq ($(OS), Windows_NT)
- ECHO_MESSAGE = "MinGW"
- LIBS += -lgdi32 -lopengl32 -limm32 `pkg-config --static --libs sdl2 vulkan`
-
- CXXFLAGS += `pkg-config --cflags sdl2 vulkan`
- CFLAGS = $(CXXFLAGS)
-endif
-
-##---------------------------------------------------------------------
-## BUILD RULES
-##---------------------------------------------------------------------
-
-%.o:%.cpp
- $(CXX) $(CXXFLAGS) -c -o $@ $<
-
-%.o:$(IMGUI_DIR)/%.cpp
- $(CXX) $(CXXFLAGS) -c -o $@ $<
-
-%.o:$(IMGUI_DIR)/backends/%.cpp
- $(CXX) $(CXXFLAGS) -c -o $@ $<
-
-all: $(EXE)
- @echo Build complete for $(ECHO_MESSAGE)
-
-$(EXE): $(OBJS)
- $(CXX) -o $@ $^ $(CXXFLAGS) $(LIBS)
-
-clean:
- rm -f $(EXE) $(OBJS)
diff --git a/imgui-1.92.1/examples/example_sdl2_vulkan/build_win32.bat b/imgui-1.92.1/examples/example_sdl2_vulkan/build_win32.bat
deleted file mode 100644
index f634aba..0000000
--- a/imgui-1.92.1/examples/example_sdl2_vulkan/build_win32.bat
+++ /dev/null
@@ -1,14 +0,0 @@
-@REM Build for Visual Studio compiler. Run your copy of vcvars32.bat or vcvarsall.bat to setup command-line compiler.
-
-@set OUT_EXE=example_sdl2_vulkan
-@set INCLUDES=/I..\.. /I..\..\backends /I%SDL2_DIR%\include /I %VULKAN_SDK%\include
-@set SOURCES=main.cpp ..\..\backends\imgui_impl_sdl2.cpp ..\..\backends\imgui_impl_vulkan.cpp ..\..\imgui*.cpp
-@set LIBS=/LIBPATH:%SDL2_DIR%\lib\x86 /libpath:%VULKAN_SDK%\lib32 SDL2.lib SDL2main.lib shell32.lib vulkan-1.lib
-
-@set OUT_DIR=Debug
-mkdir %OUT_DIR%
-cl /nologo /Zi /MD /utf-8 %INCLUDES% %SOURCES% /Fe%OUT_DIR%/%OUT_EXE%.exe /Fo%OUT_DIR%/ /link %LIBS% /subsystem:console
-
-@set OUT_DIR=Release
-@REM mkdir %OUT_DIR%
-@REM cl /nologo /Zi /MD /utf-8 /Ox /Oi %INCLUDES% %SOURCES% /Fe%OUT_DIR%/%OUT_EXE%.exe /Fo%OUT_DIR%/ /link %LIBS% /subsystem:console
diff --git a/imgui-1.92.1/examples/example_sdl2_vulkan/build_win64.bat b/imgui-1.92.1/examples/example_sdl2_vulkan/build_win64.bat
deleted file mode 100644
index 5d315cc..0000000
--- a/imgui-1.92.1/examples/example_sdl2_vulkan/build_win64.bat
+++ /dev/null
@@ -1,14 +0,0 @@
-@REM Build for Visual Studio compiler. Run your copy of vcvars64.bat or vcvarsall.bat to setup command-line compiler.
-
-@set OUT_EXE=example_sdl2_vulkan
-@set INCLUDES=/I..\.. /I..\..\backends /I%SDL2_DIR%\include /I %VULKAN_SDK%\include
-@set SOURCES=main.cpp ..\..\backends\imgui_impl_sdl2.cpp ..\..\backends\imgui_impl_vulkan.cpp ..\..\imgui*.cpp
-@set LIBS=/LIBPATH:%SDL2_DIR%\lib\x64 /libpath:%VULKAN_SDK%\lib SDL2.lib SDL2main.lib shell32.lib vulkan-1.lib
-
-@set OUT_DIR=Debug
-mkdir %OUT_DIR%
-cl /nologo /Zi /MD /utf-8 %INCLUDES% %SOURCES% /Fe%OUT_DIR%/%OUT_EXE%.exe /Fo%OUT_DIR%/ /link %LIBS% /subsystem:console
-
-@set OUT_DIR=Release
-@REM mkdir %OUT_DIR%
-@REM cl /nologo /Zi /MD /utf-8 /Ox /Oi %INCLUDES% %SOURCES% /Fe%OUT_DIR%/%OUT_EXE%.exe /Fo%OUT_DIR%/ /link %LIBS% /subsystem:console
diff --git a/imgui-1.92.1/examples/example_sdl2_vulkan/example_sdl2_vulkan.vcxproj b/imgui-1.92.1/examples/example_sdl2_vulkan/example_sdl2_vulkan.vcxproj
deleted file mode 100644
index bcf99a4..0000000
--- a/imgui-1.92.1/examples/example_sdl2_vulkan/example_sdl2_vulkan.vcxproj
+++ /dev/null
@@ -1,190 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="Debug|Win32">
- <Configuration>Debug</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Debug|x64">
- <Configuration>Debug</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|Win32">
- <Configuration>Release</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|x64">
- <Configuration>Release</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- </ItemGroup>
- <PropertyGroup Label="Globals">
- <ProjectGuid>{BAE3D0B5-9695-4EB1-AD0F-75890EB4A3B3}</ProjectGuid>
- <RootNamespace>example_sdl2_vulkan</RootNamespace>
- <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>true</UseDebugLibraries>
- <CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>true</UseDebugLibraries>
- <CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>false</UseDebugLibraries>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- <CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>false</UseDebugLibraries>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- <CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
- <ImportGroup Label="ExtensionSettings">
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <PropertyGroup Label="UserMacros" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <OutDir>$(ProjectDir)$(Configuration)\</OutDir>
- <IntDir>$(ProjectDir)$(Configuration)\</IntDir>
- <IncludePath>$(IncludePath)</IncludePath>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <OutDir>$(ProjectDir)$(Configuration)\</OutDir>
- <IntDir>$(ProjectDir)$(Configuration)\</IntDir>
- <IncludePath>$(IncludePath)</IncludePath>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <OutDir>$(ProjectDir)$(Configuration)\</OutDir>
- <IntDir>$(ProjectDir)$(Configuration)\</IntDir>
- <IncludePath>$(IncludePath)</IncludePath>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <OutDir>$(ProjectDir)$(Configuration)\</OutDir>
- <IntDir>$(ProjectDir)$(Configuration)\</IntDir>
- <IncludePath>$(IncludePath)</IncludePath>
- </PropertyGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <ClCompile>
- <WarningLevel>Level4</WarningLevel>
- <Optimization>Disabled</Optimization>
- <AdditionalIncludeDirectories>..\..;..\..\backends;%VULKAN_SDK%\include;%SDL2_DIR%\include;$(VcpkgCurrentInstalledDir)include\SDL2;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_MBCS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
- </ClCompile>
- <Link>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <AdditionalLibraryDirectories>%VULKAN_SDK%\lib32;%SDL2_DIR%\lib\x86;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
- <AdditionalDependencies>vulkan-1.lib;SDL2.lib;SDL2main.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <SubSystem>Console</SubSystem>
- <IgnoreSpecificDefaultLibraries>msvcrt.lib</IgnoreSpecificDefaultLibraries>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <ClCompile>
- <WarningLevel>Level4</WarningLevel>
- <Optimization>Disabled</Optimization>
- <AdditionalIncludeDirectories>..\..;..\..\backends;%VULKAN_SDK%\include;%SDL2_DIR%\include;$(VcpkgCurrentInstalledDir)include\SDL2;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_MBCS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
- </ClCompile>
- <Link>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <AdditionalLibraryDirectories>%VULKAN_SDK%\lib;%SDL2_DIR%\lib\x64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
- <AdditionalDependencies>vulkan-1.lib;SDL2.lib;SDL2main.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <SubSystem>Console</SubSystem>
- <IgnoreSpecificDefaultLibraries>msvcrt.lib</IgnoreSpecificDefaultLibraries>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <ClCompile>
- <WarningLevel>Level4</WarningLevel>
- <Optimization>MaxSpeed</Optimization>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <IntrinsicFunctions>true</IntrinsicFunctions>
- <AdditionalIncludeDirectories>..\..;..\..\backends;%VULKAN_SDK%\include;%SDL2_DIR%\include;$(VcpkgCurrentInstalledDir)include\SDL2;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <BufferSecurityCheck>false</BufferSecurityCheck>
- <PreprocessorDefinitions>_MBCS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
- </ClCompile>
- <Link>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- <OptimizeReferences>true</OptimizeReferences>
- <AdditionalLibraryDirectories>%VULKAN_SDK%\lib32;%SDL2_DIR%\lib\x86;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
- <AdditionalDependencies>vulkan-1.lib;SDL2.lib;SDL2main.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <SubSystem>Console</SubSystem>
- <IgnoreSpecificDefaultLibraries>
- </IgnoreSpecificDefaultLibraries>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <ClCompile>
- <WarningLevel>Level4</WarningLevel>
- <Optimization>MaxSpeed</Optimization>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <IntrinsicFunctions>true</IntrinsicFunctions>
- <AdditionalIncludeDirectories>..\..;..\..\backends;%VULKAN_SDK%\include;%SDL2_DIR%\include;$(VcpkgCurrentInstalledDir)include\SDL2;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <BufferSecurityCheck>false</BufferSecurityCheck>
- <PreprocessorDefinitions>_MBCS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
- </ClCompile>
- <Link>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- <OptimizeReferences>true</OptimizeReferences>
- <AdditionalLibraryDirectories>%VULKAN_SDK%\lib;%SDL2_DIR%\lib\x64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
- <AdditionalDependencies>vulkan-1.lib;SDL2.lib;SDL2main.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <SubSystem>Console</SubSystem>
- <IgnoreSpecificDefaultLibraries>
- </IgnoreSpecificDefaultLibraries>
- </Link>
- </ItemDefinitionGroup>
- <ItemGroup>
- <ClCompile Include="..\..\imgui.cpp" />
- <ClCompile Include="..\..\imgui_demo.cpp" />
- <ClCompile Include="..\..\imgui_draw.cpp" />
- <ClCompile Include="..\..\imgui_tables.cpp" />
- <ClCompile Include="..\..\imgui_widgets.cpp" />
- <ClCompile Include="..\..\backends\imgui_impl_sdl2.cpp" />
- <ClCompile Include="..\..\backends\imgui_impl_vulkan.cpp" />
- <ClCompile Include="main.cpp" />
- </ItemGroup>
- <ItemGroup>
- <ClInclude Include="..\..\imconfig.h" />
- <ClInclude Include="..\..\imgui.h" />
- <ClInclude Include="..\..\imgui_internal.h" />
- <ClInclude Include="..\..\backends\imgui_impl_sdl2.h" />
- <ClInclude Include="..\..\backends\imgui_impl_vulkan.h" />
- </ItemGroup>
- <ItemGroup>
- <None Include="..\..\misc\debuggers\imgui.natstepfilter" />
- <None Include="..\..\misc\debuggers\imgui.natvis" />
- <None Include="..\README.txt" />
- </ItemGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
- <ImportGroup Label="ExtensionTargets">
- </ImportGroup>
-</Project>
diff --git a/imgui-1.92.1/examples/example_sdl2_vulkan/example_sdl2_vulkan.vcxproj.filters b/imgui-1.92.1/examples/example_sdl2_vulkan/example_sdl2_vulkan.vcxproj.filters
deleted file mode 100644
index ab42485..0000000
--- a/imgui-1.92.1/examples/example_sdl2_vulkan/example_sdl2_vulkan.vcxproj.filters
+++ /dev/null
@@ -1,64 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup>
- <Filter Include="imgui">
- <UniqueIdentifier>{20b90ce4-7fcb-4731-b9a0-075f875de82d}</UniqueIdentifier>
- </Filter>
- <Filter Include="sources">
- <UniqueIdentifier>{f18ab499-84e1-499f-8eff-9754361e0e52}</UniqueIdentifier>
- <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
- </Filter>
- </ItemGroup>
- <ItemGroup>
- <ClCompile Include="..\..\imgui.cpp">
- <Filter>imgui</Filter>
- </ClCompile>
- <ClCompile Include="..\..\imgui_demo.cpp">
- <Filter>imgui</Filter>
- </ClCompile>
- <ClCompile Include="..\..\imgui_draw.cpp">
- <Filter>imgui</Filter>
- </ClCompile>
- <ClCompile Include="..\..\backends\imgui_impl_sdl2.cpp">
- <Filter>sources</Filter>
- </ClCompile>
- <ClCompile Include="main.cpp">
- <Filter>sources</Filter>
- </ClCompile>
- <ClCompile Include="..\..\backends\imgui_impl_vulkan.cpp">
- <Filter>sources</Filter>
- </ClCompile>
- <ClCompile Include="..\..\imgui_widgets.cpp">
- <Filter>imgui</Filter>
- </ClCompile>
- <ClCompile Include="..\..\imgui_tables.cpp">
- <Filter>imgui</Filter>
- </ClCompile>
- </ItemGroup>
- <ItemGroup>
- <ClInclude Include="..\..\imconfig.h">
- <Filter>imgui</Filter>
- </ClInclude>
- <ClInclude Include="..\..\imgui.h">
- <Filter>imgui</Filter>
- </ClInclude>
- <ClInclude Include="..\..\imgui_internal.h">
- <Filter>imgui</Filter>
- </ClInclude>
- <ClInclude Include="..\..\backends\imgui_impl_sdl2.h">
- <Filter>sources</Filter>
- </ClInclude>
- <ClInclude Include="..\..\backends\imgui_impl_vulkan.h">
- <Filter>sources</Filter>
- </ClInclude>
- </ItemGroup>
- <ItemGroup>
- <None Include="..\README.txt" />
- <None Include="..\..\misc\debuggers\imgui.natvis">
- <Filter>imgui</Filter>
- </None>
- <None Include="..\..\misc\debuggers\imgui.natstepfilter">
- <Filter>imgui</Filter>
- </None>
- </ItemGroup>
-</Project> \ No newline at end of file
diff --git a/imgui-1.92.1/examples/example_sdl2_vulkan/main.cpp b/imgui-1.92.1/examples/example_sdl2_vulkan/main.cpp
deleted file mode 100644
index 300543f..0000000
--- a/imgui-1.92.1/examples/example_sdl2_vulkan/main.cpp
+++ /dev/null
@@ -1,555 +0,0 @@
-// Dear ImGui: standalone example application for SDL2 + Vulkan
-
-// Learn about Dear ImGui:
-// - FAQ https://dearimgui.com/faq
-// - Getting Started https://dearimgui.com/getting-started
-// - Documentation https://dearimgui.com/docs (same as your local docs/ folder).
-// - Introduction, links and more at the top of imgui.cpp
-
-// Important note to the reader who wish to integrate imgui_impl_vulkan.cpp/.h in their own engine/app.
-// - Common ImGui_ImplVulkan_XXX functions and structures are used to interface with imgui_impl_vulkan.cpp/.h.
-// You will use those if you want to use this rendering backend in your engine/app.
-// - Helper ImGui_ImplVulkanH_XXX functions and structures are only used by this example (main.cpp) and by
-// the backend itself (imgui_impl_vulkan.cpp), but should PROBABLY NOT be used by your own engine/app code.
-// Read comments in imgui_impl_vulkan.h.
-
-#include "imgui.h"
-#include "imgui_impl_sdl2.h"
-#include "imgui_impl_vulkan.h"
-#include <stdio.h> // printf, fprintf
-#include <stdlib.h> // abort
-#include <SDL.h>
-#include <SDL_vulkan.h>
-#ifdef _WIN32
-#include <windows.h> // SetProcessDPIAware()
-#endif
-
-// Volk headers
-#ifdef IMGUI_IMPL_VULKAN_USE_VOLK
-#define VOLK_IMPLEMENTATION
-#include <volk.h>
-#endif
-
-//#define APP_USE_UNLIMITED_FRAME_RATE
-#ifdef _DEBUG
-#define APP_USE_VULKAN_DEBUG_REPORT
-static VkDebugReportCallbackEXT g_DebugReport = VK_NULL_HANDLE;
-#endif
-
-// Data
-static VkAllocationCallbacks* g_Allocator = nullptr;
-static VkInstance g_Instance = VK_NULL_HANDLE;
-static VkPhysicalDevice g_PhysicalDevice = VK_NULL_HANDLE;
-static VkDevice g_Device = VK_NULL_HANDLE;
-static uint32_t g_QueueFamily = (uint32_t)-1;
-static VkQueue g_Queue = VK_NULL_HANDLE;
-static VkPipelineCache g_PipelineCache = VK_NULL_HANDLE;
-static VkDescriptorPool g_DescriptorPool = VK_NULL_HANDLE;
-
-static ImGui_ImplVulkanH_Window g_MainWindowData;
-static uint32_t g_MinImageCount = 2;
-static bool g_SwapChainRebuild = false;
-
-static void check_vk_result(VkResult err)
-{
- if (err == VK_SUCCESS)
- return;
- fprintf(stderr, "[vulkan] Error: VkResult = %d\n", err);
- if (err < 0)
- abort();
-}
-
-#ifdef APP_USE_VULKAN_DEBUG_REPORT
-static VKAPI_ATTR VkBool32 VKAPI_CALL debug_report(VkDebugReportFlagsEXT flags, VkDebugReportObjectTypeEXT objectType, uint64_t object, size_t location, int32_t messageCode, const char* pLayerPrefix, const char* pMessage, void* pUserData)
-{
- (void)flags; (void)object; (void)location; (void)messageCode; (void)pUserData; (void)pLayerPrefix; // Unused arguments
- fprintf(stderr, "[vulkan] Debug report from ObjectType: %i\nMessage: %s\n\n", objectType, pMessage);
- return VK_FALSE;
-}
-#endif // APP_USE_VULKAN_DEBUG_REPORT
-
-static bool IsExtensionAvailable(const ImVector<VkExtensionProperties>& properties, const char* extension)
-{
- for (const VkExtensionProperties& p : properties)
- if (strcmp(p.extensionName, extension) == 0)
- return true;
- return false;
-}
-
-static void SetupVulkan(ImVector<const char*> instance_extensions)
-{
- VkResult err;
-#ifdef IMGUI_IMPL_VULKAN_USE_VOLK
- volkInitialize();
-#endif
-
- // Create Vulkan Instance
- {
- VkInstanceCreateInfo create_info = {};
- create_info.sType = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO;
-
- // Enumerate available extensions
- uint32_t properties_count;
- ImVector<VkExtensionProperties> properties;
- vkEnumerateInstanceExtensionProperties(nullptr, &properties_count, nullptr);
- properties.resize(properties_count);
- err = vkEnumerateInstanceExtensionProperties(nullptr, &properties_count, properties.Data);
- check_vk_result(err);
-
- // Enable required extensions
- if (IsExtensionAvailable(properties, VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME))
- instance_extensions.push_back(VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME);
-#ifdef VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME
- if (IsExtensionAvailable(properties, VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME))
- {
- instance_extensions.push_back(VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME);
- create_info.flags |= VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR;
- }
-#endif
-
- // Enabling validation layers
-#ifdef APP_USE_VULKAN_DEBUG_REPORT
- const char* layers[] = { "VK_LAYER_KHRONOS_validation" };
- create_info.enabledLayerCount = 1;
- create_info.ppEnabledLayerNames = layers;
- instance_extensions.push_back("VK_EXT_debug_report");
-#endif
-
- // Create Vulkan Instance
- create_info.enabledExtensionCount = (uint32_t)instance_extensions.Size;
- create_info.ppEnabledExtensionNames = instance_extensions.Data;
- err = vkCreateInstance(&create_info, g_Allocator, &g_Instance);
- check_vk_result(err);
-#ifdef IMGUI_IMPL_VULKAN_USE_VOLK
- volkLoadInstance(g_Instance);
-#endif
-
- // Setup the debug report callback
-#ifdef APP_USE_VULKAN_DEBUG_REPORT
- auto f_vkCreateDebugReportCallbackEXT = (PFN_vkCreateDebugReportCallbackEXT)vkGetInstanceProcAddr(g_Instance, "vkCreateDebugReportCallbackEXT");
- IM_ASSERT(f_vkCreateDebugReportCallbackEXT != nullptr);
- VkDebugReportCallbackCreateInfoEXT debug_report_ci = {};
- debug_report_ci.sType = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT;
- debug_report_ci.flags = VK_DEBUG_REPORT_ERROR_BIT_EXT | VK_DEBUG_REPORT_WARNING_BIT_EXT | VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT;
- debug_report_ci.pfnCallback = debug_report;
- debug_report_ci.pUserData = nullptr;
- err = f_vkCreateDebugReportCallbackEXT(g_Instance, &debug_report_ci, g_Allocator, &g_DebugReport);
- check_vk_result(err);
-#endif
- }
-
- // Select Physical Device (GPU)
- g_PhysicalDevice = ImGui_ImplVulkanH_SelectPhysicalDevice(g_Instance);
- IM_ASSERT(g_PhysicalDevice != VK_NULL_HANDLE);
-
- // Select graphics queue family
- g_QueueFamily = ImGui_ImplVulkanH_SelectQueueFamilyIndex(g_PhysicalDevice);
- IM_ASSERT(g_QueueFamily != (uint32_t)-1);
-
- // Create Logical Device (with 1 queue)
- {
- ImVector<const char*> device_extensions;
- device_extensions.push_back("VK_KHR_swapchain");
-
- // Enumerate physical device extension
- uint32_t properties_count;
- ImVector<VkExtensionProperties> properties;
- vkEnumerateDeviceExtensionProperties(g_PhysicalDevice, nullptr, &properties_count, nullptr);
- properties.resize(properties_count);
- vkEnumerateDeviceExtensionProperties(g_PhysicalDevice, nullptr, &properties_count, properties.Data);
-#ifdef VK_KHR_PORTABILITY_SUBSET_EXTENSION_NAME
- if (IsExtensionAvailable(properties, VK_KHR_PORTABILITY_SUBSET_EXTENSION_NAME))
- device_extensions.push_back(VK_KHR_PORTABILITY_SUBSET_EXTENSION_NAME);
-#endif
-
- const float queue_priority[] = { 1.0f };
- VkDeviceQueueCreateInfo queue_info[1] = {};
- queue_info[0].sType = VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO;
- queue_info[0].queueFamilyIndex = g_QueueFamily;
- queue_info[0].queueCount = 1;
- queue_info[0].pQueuePriorities = queue_priority;
- VkDeviceCreateInfo create_info = {};
- create_info.sType = VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO;
- create_info.queueCreateInfoCount = sizeof(queue_info) / sizeof(queue_info[0]);
- create_info.pQueueCreateInfos = queue_info;
- create_info.enabledExtensionCount = (uint32_t)device_extensions.Size;
- create_info.ppEnabledExtensionNames = device_extensions.Data;
- err = vkCreateDevice(g_PhysicalDevice, &create_info, g_Allocator, &g_Device);
- check_vk_result(err);
- vkGetDeviceQueue(g_Device, g_QueueFamily, 0, &g_Queue);
- }
-
- // Create Descriptor Pool
- // If you wish to load e.g. additional textures you may need to alter pools sizes and maxSets.
- {
- VkDescriptorPoolSize pool_sizes[] =
- {
- { VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, IMGUI_IMPL_VULKAN_MINIMUM_IMAGE_SAMPLER_POOL_SIZE },
- };
- VkDescriptorPoolCreateInfo pool_info = {};
- pool_info.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO;
- pool_info.flags = VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT;
- pool_info.maxSets = 0;
- for (VkDescriptorPoolSize& pool_size : pool_sizes)
- pool_info.maxSets += pool_size.descriptorCount;
- pool_info.poolSizeCount = (uint32_t)IM_ARRAYSIZE(pool_sizes);
- pool_info.pPoolSizes = pool_sizes;
- err = vkCreateDescriptorPool(g_Device, &pool_info, g_Allocator, &g_DescriptorPool);
- check_vk_result(err);
- }
-}
-
-// All the ImGui_ImplVulkanH_XXX structures/functions are optional helpers used by the demo.
-// Your real engine/app may not use them.
-static void SetupVulkanWindow(ImGui_ImplVulkanH_Window* wd, VkSurfaceKHR surface, int width, int height)
-{
- wd->Surface = surface;
-
- // Check for WSI support
- VkBool32 res;
- vkGetPhysicalDeviceSurfaceSupportKHR(g_PhysicalDevice, g_QueueFamily, wd->Surface, &res);
- if (res != VK_TRUE)
- {
- fprintf(stderr, "Error no WSI support on physical device 0\n");
- exit(-1);
- }
-
- // Select Surface Format
- const VkFormat requestSurfaceImageFormat[] = { VK_FORMAT_B8G8R8A8_UNORM, VK_FORMAT_R8G8B8A8_UNORM, VK_FORMAT_B8G8R8_UNORM, VK_FORMAT_R8G8B8_UNORM };
- const VkColorSpaceKHR requestSurfaceColorSpace = VK_COLORSPACE_SRGB_NONLINEAR_KHR;
- wd->SurfaceFormat = ImGui_ImplVulkanH_SelectSurfaceFormat(g_PhysicalDevice, wd->Surface, requestSurfaceImageFormat, (size_t)IM_ARRAYSIZE(requestSurfaceImageFormat), requestSurfaceColorSpace);
-
- // Select Present Mode
-#ifdef APP_USE_UNLIMITED_FRAME_RATE
- VkPresentModeKHR present_modes[] = { VK_PRESENT_MODE_MAILBOX_KHR, VK_PRESENT_MODE_IMMEDIATE_KHR, VK_PRESENT_MODE_FIFO_KHR };
-#else
- VkPresentModeKHR present_modes[] = { VK_PRESENT_MODE_FIFO_KHR };
-#endif
- wd->PresentMode = ImGui_ImplVulkanH_SelectPresentMode(g_PhysicalDevice, wd->Surface, &present_modes[0], IM_ARRAYSIZE(present_modes));
- //printf("[vulkan] Selected PresentMode = %d\n", wd->PresentMode);
-
- // Create SwapChain, RenderPass, Framebuffer, etc.
- IM_ASSERT(g_MinImageCount >= 2);
- ImGui_ImplVulkanH_CreateOrResizeWindow(g_Instance, g_PhysicalDevice, g_Device, wd, g_QueueFamily, g_Allocator, width, height, g_MinImageCount);
-}
-
-static void CleanupVulkan()
-{
- vkDestroyDescriptorPool(g_Device, g_DescriptorPool, g_Allocator);
-
-#ifdef APP_USE_VULKAN_DEBUG_REPORT
- // Remove the debug report callback
- auto f_vkDestroyDebugReportCallbackEXT = (PFN_vkDestroyDebugReportCallbackEXT)vkGetInstanceProcAddr(g_Instance, "vkDestroyDebugReportCallbackEXT");
- f_vkDestroyDebugReportCallbackEXT(g_Instance, g_DebugReport, g_Allocator);
-#endif // APP_USE_VULKAN_DEBUG_REPORT
-
- vkDestroyDevice(g_Device, g_Allocator);
- vkDestroyInstance(g_Instance, g_Allocator);
-}
-
-static void CleanupVulkanWindow()
-{
- ImGui_ImplVulkanH_DestroyWindow(g_Instance, g_Device, &g_MainWindowData, g_Allocator);
-}
-
-static void FrameRender(ImGui_ImplVulkanH_Window* wd, ImDrawData* draw_data)
-{
- VkSemaphore image_acquired_semaphore = wd->FrameSemaphores[wd->SemaphoreIndex].ImageAcquiredSemaphore;
- VkSemaphore render_complete_semaphore = wd->FrameSemaphores[wd->SemaphoreIndex].RenderCompleteSemaphore;
- VkResult err = vkAcquireNextImageKHR(g_Device, wd->Swapchain, UINT64_MAX, image_acquired_semaphore, VK_NULL_HANDLE, &wd->FrameIndex);
- if (err == VK_ERROR_OUT_OF_DATE_KHR || err == VK_SUBOPTIMAL_KHR)
- g_SwapChainRebuild = true;
- if (err == VK_ERROR_OUT_OF_DATE_KHR)
- return;
- if (err != VK_SUBOPTIMAL_KHR)
- check_vk_result(err);
-
- ImGui_ImplVulkanH_Frame* fd = &wd->Frames[wd->FrameIndex];
- {
- err = vkWaitForFences(g_Device, 1, &fd->Fence, VK_TRUE, UINT64_MAX); // wait indefinitely instead of periodically checking
- check_vk_result(err);
-
- err = vkResetFences(g_Device, 1, &fd->Fence);
- check_vk_result(err);
- }
- {
- err = vkResetCommandPool(g_Device, fd->CommandPool, 0);
- check_vk_result(err);
- VkCommandBufferBeginInfo info = {};
- info.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO;
- info.flags |= VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT;
- err = vkBeginCommandBuffer(fd->CommandBuffer, &info);
- check_vk_result(err);
- }
- {
- VkRenderPassBeginInfo info = {};
- info.sType = VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO;
- info.renderPass = wd->RenderPass;
- info.framebuffer = fd->Framebuffer;
- info.renderArea.extent.width = wd->Width;
- info.renderArea.extent.height = wd->Height;
- info.clearValueCount = 1;
- info.pClearValues = &wd->ClearValue;
- vkCmdBeginRenderPass(fd->CommandBuffer, &info, VK_SUBPASS_CONTENTS_INLINE);
- }
-
- // Record dear imgui primitives into command buffer
- ImGui_ImplVulkan_RenderDrawData(draw_data, fd->CommandBuffer);
-
- // Submit command buffer
- vkCmdEndRenderPass(fd->CommandBuffer);
- {
- VkPipelineStageFlags wait_stage = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT;
- VkSubmitInfo info = {};
- info.sType = VK_STRUCTURE_TYPE_SUBMIT_INFO;
- info.waitSemaphoreCount = 1;
- info.pWaitSemaphores = &image_acquired_semaphore;
- info.pWaitDstStageMask = &wait_stage;
- info.commandBufferCount = 1;
- info.pCommandBuffers = &fd->CommandBuffer;
- info.signalSemaphoreCount = 1;
- info.pSignalSemaphores = &render_complete_semaphore;
-
- err = vkEndCommandBuffer(fd->CommandBuffer);
- check_vk_result(err);
- err = vkQueueSubmit(g_Queue, 1, &info, fd->Fence);
- check_vk_result(err);
- }
-}
-
-static void FramePresent(ImGui_ImplVulkanH_Window* wd)
-{
- if (g_SwapChainRebuild)
- return;
- VkSemaphore render_complete_semaphore = wd->FrameSemaphores[wd->SemaphoreIndex].RenderCompleteSemaphore;
- VkPresentInfoKHR info = {};
- info.sType = VK_STRUCTURE_TYPE_PRESENT_INFO_KHR;
- info.waitSemaphoreCount = 1;
- info.pWaitSemaphores = &render_complete_semaphore;
- info.swapchainCount = 1;
- info.pSwapchains = &wd->Swapchain;
- info.pImageIndices = &wd->FrameIndex;
- VkResult err = vkQueuePresentKHR(g_Queue, &info);
- if (err == VK_ERROR_OUT_OF_DATE_KHR || err == VK_SUBOPTIMAL_KHR)
- g_SwapChainRebuild = true;
- if (err == VK_ERROR_OUT_OF_DATE_KHR)
- return;
- if (err != VK_SUBOPTIMAL_KHR)
- check_vk_result(err);
- wd->SemaphoreIndex = (wd->SemaphoreIndex + 1) % wd->SemaphoreCount; // Now we can use the next set of semaphores
-}
-
-// Main code
-int main(int, char**)
-{
- // Setup SDL
-#ifdef _WIN32
- ::SetProcessDPIAware();
-#endif
- if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_TIMER | SDL_INIT_GAMECONTROLLER) != 0)
- {
- printf("Error: %s\n", SDL_GetError());
- return -1;
- }
-
- // From 2.0.18: Enable native IME.
-#ifdef SDL_HINT_IME_SHOW_UI
- SDL_SetHint(SDL_HINT_IME_SHOW_UI, "1");
-#endif
-
- // Create window with Vulkan graphics context
- float main_scale = ImGui_ImplSDL2_GetContentScaleForDisplay(0);
- SDL_WindowFlags window_flags = (SDL_WindowFlags)(SDL_WINDOW_VULKAN | SDL_WINDOW_RESIZABLE | SDL_WINDOW_ALLOW_HIGHDPI);
- SDL_Window* window = SDL_CreateWindow("Dear ImGui SDL2+Vulkan example", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, (int)(1280 * main_scale), (int)(720 * main_scale), window_flags);
- if (window == nullptr)
- {
- printf("Error: SDL_CreateWindow(): %s\n", SDL_GetError());
- return -1;
- }
-
- ImVector<const char*> extensions;
- uint32_t extensions_count = 0;
- SDL_Vulkan_GetInstanceExtensions(window, &extensions_count, nullptr);
- extensions.resize(extensions_count);
- SDL_Vulkan_GetInstanceExtensions(window, &extensions_count, extensions.Data);
- SetupVulkan(extensions);
-
- // Create Window Surface
- VkSurfaceKHR surface;
- VkResult err;
- if (SDL_Vulkan_CreateSurface(window, g_Instance, &surface) == 0)
- {
- printf("Failed to create Vulkan surface.\n");
- return 1;
- }
-
- // Create Framebuffers
- int w, h;
- SDL_GetWindowSize(window, &w, &h);
- ImGui_ImplVulkanH_Window* wd = &g_MainWindowData;
- SetupVulkanWindow(wd, surface, w, h);
-
- // Setup Dear ImGui context
- IMGUI_CHECKVERSION();
- ImGui::CreateContext();
- ImGuiIO& io = ImGui::GetIO(); (void)io;
- io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard; // Enable Keyboard Controls
- io.ConfigFlags |= ImGuiConfigFlags_NavEnableGamepad; // Enable Gamepad Controls
-
- // Setup Dear ImGui style
- ImGui::StyleColorsDark();
- //ImGui::StyleColorsLight();
-
- // Setup scaling
- ImGuiStyle& style = ImGui::GetStyle();
- style.ScaleAllSizes(main_scale); // Bake a fixed style scale. (until we have a solution for dynamic style scaling, changing this requires resetting Style + calling this again)
- style.FontScaleDpi = main_scale; // Set initial font scale. (using io.ConfigDpiScaleFonts=true makes this unnecessary. We leave both here for documentation purpose)
-
- // Setup Platform/Renderer backends
- ImGui_ImplSDL2_InitForVulkan(window);
- ImGui_ImplVulkan_InitInfo init_info = {};
- //init_info.ApiVersion = VK_API_VERSION_1_3; // Pass in your value of VkApplicationInfo::apiVersion, otherwise will default to header version.
- init_info.Instance = g_Instance;
- init_info.PhysicalDevice = g_PhysicalDevice;
- init_info.Device = g_Device;
- init_info.QueueFamily = g_QueueFamily;
- init_info.Queue = g_Queue;
- init_info.PipelineCache = g_PipelineCache;
- init_info.DescriptorPool = g_DescriptorPool;
- init_info.RenderPass = wd->RenderPass;
- init_info.Subpass = 0;
- init_info.MinImageCount = g_MinImageCount;
- init_info.ImageCount = wd->ImageCount;
- init_info.MSAASamples = VK_SAMPLE_COUNT_1_BIT;
- init_info.Allocator = g_Allocator;
- init_info.CheckVkResultFn = check_vk_result;
- ImGui_ImplVulkan_Init(&init_info);
-
- // Load Fonts
- // - If no fonts are loaded, dear imgui will use the default font. You can also load multiple fonts and use ImGui::PushFont()/PopFont() to select them.
- // - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
- // - If the file cannot be loaded, the function will return a nullptr. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
- // - Use '#define IMGUI_ENABLE_FREETYPE' in your imconfig file to use Freetype for higher quality font rendering.
- // - Read 'docs/FONTS.md' for more instructions and details.
- // - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
- //style.FontSizeBase = 20.0f;
- //io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\segoeui.ttf");
- //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf");
- //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf");
- //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf");
- //ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf");
- //IM_ASSERT(font != nullptr);
-
- // Our state
- bool show_demo_window = true;
- bool show_another_window = false;
- ImVec4 clear_color = ImVec4(0.45f, 0.55f, 0.60f, 1.00f);
-
- // Main loop
- bool done = false;
- while (!done)
- {
- // Poll and handle events (inputs, window resize, etc.)
- // You can read the io.WantCaptureMouse, io.WantCaptureKeyboard flags to tell if dear imgui wants to use your inputs.
- // - When io.WantCaptureMouse is true, do not dispatch mouse input data to your main application, or clear/overwrite your copy of the mouse data.
- // - When io.WantCaptureKeyboard is true, do not dispatch keyboard input data to your main application, or clear/overwrite your copy of the keyboard data.
- // Generally you may always pass all inputs to dear imgui, and hide them from your application based on those two flags.
- SDL_Event event;
- while (SDL_PollEvent(&event))
- {
- ImGui_ImplSDL2_ProcessEvent(&event);
- if (event.type == SDL_QUIT)
- done = true;
- if (event.type == SDL_WINDOWEVENT && event.window.event == SDL_WINDOWEVENT_CLOSE && event.window.windowID == SDL_GetWindowID(window))
- done = true;
- }
- if (SDL_GetWindowFlags(window) & SDL_WINDOW_MINIMIZED)
- {
- SDL_Delay(10);
- continue;
- }
-
- // Resize swap chain?
- int fb_width, fb_height;
- SDL_GetWindowSize(window, &fb_width, &fb_height);
- if (fb_width > 0 && fb_height > 0 && (g_SwapChainRebuild || g_MainWindowData.Width != fb_width || g_MainWindowData.Height != fb_height))
- {
- ImGui_ImplVulkan_SetMinImageCount(g_MinImageCount);
- ImGui_ImplVulkanH_CreateOrResizeWindow(g_Instance, g_PhysicalDevice, g_Device, &g_MainWindowData, g_QueueFamily, g_Allocator, fb_width, fb_height, g_MinImageCount);
- g_MainWindowData.FrameIndex = 0;
- g_SwapChainRebuild = false;
- }
-
- // Start the Dear ImGui frame
- ImGui_ImplVulkan_NewFrame();
- ImGui_ImplSDL2_NewFrame();
- ImGui::NewFrame();
-
- // 1. Show the big demo window (Most of the sample code is in ImGui::ShowDemoWindow()! You can browse its code to learn more about Dear ImGui!).
- if (show_demo_window)
- ImGui::ShowDemoWindow(&show_demo_window);
-
- // 2. Show a simple window that we create ourselves. We use a Begin/End pair to create a named window.
- {
- static float f = 0.0f;
- static int counter = 0;
-
- ImGui::Begin("Hello, world!"); // Create a window called "Hello, world!" and append into it.
-
- ImGui::Text("This is some useful text."); // Display some text (you can use a format strings too)
- ImGui::Checkbox("Demo Window", &show_demo_window); // Edit bools storing our window open/close state
- ImGui::Checkbox("Another Window", &show_another_window);
-
- ImGui::SliderFloat("float", &f, 0.0f, 1.0f); // Edit 1 float using a slider from 0.0f to 1.0f
- ImGui::ColorEdit3("clear color", (float*)&clear_color); // Edit 3 floats representing a color
-
- if (ImGui::Button("Button")) // Buttons return true when clicked (most widgets return true when edited/activated)
- counter++;
- ImGui::SameLine();
- ImGui::Text("counter = %d", counter);
-
- ImGui::Text("Application average %.3f ms/frame (%.1f FPS)", 1000.0f / io.Framerate, io.Framerate);
- ImGui::End();
- }
-
- // 3. Show another simple window.
- if (show_another_window)
- {
- ImGui::Begin("Another Window", &show_another_window); // Pass a pointer to our bool variable (the window will have a closing button that will clear the bool when clicked)
- ImGui::Text("Hello from another window!");
- if (ImGui::Button("Close Me"))
- show_another_window = false;
- ImGui::End();
- }
-
- // Rendering
- ImGui::Render();
- ImDrawData* draw_data = ImGui::GetDrawData();
- const bool is_minimized = (draw_data->DisplaySize.x <= 0.0f || draw_data->DisplaySize.y <= 0.0f);
- if (!is_minimized)
- {
- wd->ClearValue.color.float32[0] = clear_color.x * clear_color.w;
- wd->ClearValue.color.float32[1] = clear_color.y * clear_color.w;
- wd->ClearValue.color.float32[2] = clear_color.z * clear_color.w;
- wd->ClearValue.color.float32[3] = clear_color.w;
- FrameRender(wd, draw_data);
- FramePresent(wd);
- }
- }
-
- // Cleanup
- err = vkDeviceWaitIdle(g_Device);
- check_vk_result(err);
- ImGui_ImplVulkan_Shutdown();
- ImGui_ImplSDL2_Shutdown();
- ImGui::DestroyContext();
-
- CleanupVulkanWindow();
- CleanupVulkan();
-
- SDL_DestroyWindow(window);
- SDL_Quit();
-
- return 0;
-}
diff --git a/imgui-1.92.1/examples/example_sdl3_opengl3/Makefile b/imgui-1.92.1/examples/example_sdl3_opengl3/Makefile
deleted file mode 100644
index d9c6eac..0000000
--- a/imgui-1.92.1/examples/example_sdl3_opengl3/Makefile
+++ /dev/null
@@ -1,85 +0,0 @@
-#
-# Cross Platform Makefile
-# Compatible with MSYS2/MINGW, Ubuntu 14.04.1 and Mac OS X
-#
-# You will need SDL3 (http://www.libsdl.org) which is still unreleased/unpackaged.
-
-#CXX = g++
-#CXX = clang++
-
-EXE = example_sdl3_opengl3
-IMGUI_DIR = ../..
-SOURCES = main.cpp
-SOURCES += $(IMGUI_DIR)/imgui.cpp $(IMGUI_DIR)/imgui_demo.cpp $(IMGUI_DIR)/imgui_draw.cpp $(IMGUI_DIR)/imgui_tables.cpp $(IMGUI_DIR)/imgui_widgets.cpp
-SOURCES += $(IMGUI_DIR)/backends/imgui_impl_sdl3.cpp $(IMGUI_DIR)/backends/imgui_impl_opengl3.cpp
-OBJS = $(addsuffix .o, $(basename $(notdir $(SOURCES))))
-UNAME_S := $(shell uname -s)
-LINUX_GL_LIBS = -lGL
-
-CXXFLAGS = -std=c++11 -I$(IMGUI_DIR) -I$(IMGUI_DIR)/backends
-CXXFLAGS += -g -Wall -Wformat
-LIBS =
-
-##---------------------------------------------------------------------
-## OPENGL ES
-##---------------------------------------------------------------------
-
-## This assumes a GL ES library available in the system, e.g. libGLESv2.so
-# CXXFLAGS += -DIMGUI_IMPL_OPENGL_ES2
-# LINUX_GL_LIBS = -lGLESv2
-## If you're on a Raspberry Pi and want to use the legacy drivers,
-## use the following instead:
-# LINUX_GL_LIBS = -L/opt/vc/lib -lbrcmGLESv2
-
-##---------------------------------------------------------------------
-## BUILD FLAGS PER PLATFORM
-##---------------------------------------------------------------------
-
-ifeq ($(UNAME_S), Linux) #LINUX
- ECHO_MESSAGE = "Linux"
- LIBS += $(LINUX_GL_LIBS) -ldl `pkg-config sdl3 --libs`
-
- CXXFLAGS += `pkg-config sdl3 --cflags`
- CFLAGS = $(CXXFLAGS)
-endif
-
-ifeq ($(UNAME_S), Darwin) #APPLE
- ECHO_MESSAGE = "Mac OS X"
- LIBS += -framework OpenGL -framework Cocoa -framework IOKit -framework CoreVideo
- LIBS += `pkg-config --libs sdl3`
- LIBS += -L/usr/local/lib -L/opt/local/lib
-
- CXXFLAGS += `pkg-config --cflags sdl3`
- CXXFLAGS += -I/usr/local/include -I/opt/local/include
- CFLAGS = $(CXXFLAGS)
-endif
-
-ifeq ($(OS), Windows_NT)
- ECHO_MESSAGE = "MinGW"
- LIBS += -lgdi32 -lopengl32 -limm32 `pkg-config --static --libs sdl3`
-
- CXXFLAGS += `pkg-config --cflags sdl3`
- CFLAGS = $(CXXFLAGS)
-endif
-
-##---------------------------------------------------------------------
-## BUILD RULES
-##---------------------------------------------------------------------
-
-%.o:%.cpp
- $(CXX) $(CXXFLAGS) -c -o $@ $<
-
-%.o:$(IMGUI_DIR)/%.cpp
- $(CXX) $(CXXFLAGS) -c -o $@ $<
-
-%.o:$(IMGUI_DIR)/backends/%.cpp
- $(CXX) $(CXXFLAGS) -c -o $@ $<
-
-all: $(EXE)
- @echo Build complete for $(ECHO_MESSAGE)
-
-$(EXE): $(OBJS)
- $(CXX) -o $@ $^ $(CXXFLAGS) $(LIBS)
-
-clean:
- rm -f $(EXE) $(OBJS)
diff --git a/imgui-1.92.1/examples/example_sdl3_opengl3/Makefile.emscripten b/imgui-1.92.1/examples/example_sdl3_opengl3/Makefile.emscripten
deleted file mode 100644
index 57247ff..0000000
--- a/imgui-1.92.1/examples/example_sdl3_opengl3/Makefile.emscripten
+++ /dev/null
@@ -1,99 +0,0 @@
-
-# IMPORTANT: SDL3 IS IN DEVELOPMENT, AS OF 2023-05-30, EMSCRIPTEN DOESN'T SUPPORT SDL3 YET.
-# WE ARE LEAVING THIS MAKEFILE AROUND FOR THE DAY IT WILL SUPPORT IT.
-
-#
-# Makefile to use with SDL+emscripten
-# See https://emscripten.org/docs/getting_started/downloads.html
-# for installation instructions.
-#
-# This Makefile assumes you have loaded emscripten's environment.
-# (On Windows, you may need to execute emsdk_env.bat or encmdprompt.bat ahead)
-#
-# Running `make -f Makefile.emscripten` will produce three files:
-# - web/index.html
-# - web/index.js
-# - web/index.wasm
-#
-# All three are needed to run the demo.
-
-CC = emcc
-CXX = em++
-WEB_DIR = web
-EXE = $(WEB_DIR)/index.html
-IMGUI_DIR = ../..
-SOURCES = main.cpp
-SOURCES += $(IMGUI_DIR)/imgui.cpp $(IMGUI_DIR)/imgui_demo.cpp $(IMGUI_DIR)/imgui_draw.cpp $(IMGUI_DIR)/imgui_tables.cpp $(IMGUI_DIR)/imgui_widgets.cpp
-SOURCES += $(IMGUI_DIR)/backends/imgui_impl_sdl3.cpp $(IMGUI_DIR)/backends/imgui_impl_opengl3.cpp
-OBJS = $(addsuffix .o, $(basename $(notdir $(SOURCES))))
-UNAME_S := $(shell uname -s)
-CPPFLAGS =
-LDFLAGS =
-EMS =
-
-##---------------------------------------------------------------------
-## EMSCRIPTEN OPTIONS
-##---------------------------------------------------------------------
-
-# ("EMS" options gets added to both CPPFLAGS and LDFLAGS, whereas some options are for linker only)
-EMS += -s USE_SDL=2
-EMS += -s DISABLE_EXCEPTION_CATCHING=1
-LDFLAGS += -s WASM=1 -s ALLOW_MEMORY_GROWTH=1 -s NO_EXIT_RUNTIME=0 -s ASSERTIONS=1
-
-# Build as single file (binary text encoded in .html file)
-#LDFLAGS += -sSINGLE_FILE
-
-# Uncomment next line to fix possible rendering bugs with Emscripten version older then 1.39.0 (https://github.com/ocornut/imgui/issues/2877)
-#EMS += -s BINARYEN_TRAP_MODE=clamp
-#EMS += -s SAFE_HEAP=1 ## Adds overhead
-
-# Emscripten allows preloading a file or folder to be accessible at runtime.
-# The Makefile for this example project suggests embedding the misc/fonts/ folder into our application, it will then be accessible as "/fonts"
-# See documentation for more details: https://emscripten.org/docs/porting/files/packaging_files.html
-# (Default value is 0. Set to 1 to enable file-system and include the misc/fonts/ folder as part of the build.)
-USE_FILE_SYSTEM ?= 0
-ifeq ($(USE_FILE_SYSTEM), 0)
-LDFLAGS += -s NO_FILESYSTEM=1
-CPPFLAGS += -DIMGUI_DISABLE_FILE_FUNCTIONS
-endif
-ifeq ($(USE_FILE_SYSTEM), 1)
-LDFLAGS += --no-heap-copy --preload-file ../../misc/fonts@/fonts
-endif
-
-##---------------------------------------------------------------------
-## FINAL BUILD FLAGS
-##---------------------------------------------------------------------
-
-CPPFLAGS += -I$(IMGUI_DIR) -I$(IMGUI_DIR)/backends
-#CPPFLAGS += -g
-CPPFLAGS += -Wall -Wformat -Os $(EMS)
-LDFLAGS += --shell-file ../libs/emscripten/shell_minimal.html
-LDFLAGS += $(EMS)
-
-##---------------------------------------------------------------------
-## BUILD RULES
-##---------------------------------------------------------------------
-
-%.o:%.cpp
- $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c -o $@ $<
-
-%.o:$(IMGUI_DIR)/%.cpp
- $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c -o $@ $<
-
-%.o:$(IMGUI_DIR)/backends/%.cpp
- $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c -o $@ $<
-
-all: $(EXE)
- @echo Build complete for $(EXE)
-
-$(WEB_DIR):
- mkdir $@
-
-serve: all
- python3 -m http.server -d $(WEB_DIR)
-
-$(EXE): $(OBJS) $(WEB_DIR)
- $(CXX) -o $@ $(OBJS) $(LDFLAGS)
-
-clean:
- rm -rf $(OBJS) $(WEB_DIR)
diff --git a/imgui-1.92.1/examples/example_sdl3_opengl3/README.md b/imgui-1.92.1/examples/example_sdl3_opengl3/README.md
deleted file mode 100644
index a032f87..0000000
--- a/imgui-1.92.1/examples/example_sdl3_opengl3/README.md
+++ /dev/null
@@ -1,40 +0,0 @@
-
-# How to Build
-
-## Windows with Visual Studio's IDE
-
-Use the provided project file (.vcxproj). Add to solution (imgui_examples.sln) if necessary.
-
-## Windows with Visual Studio's CLI
-
-Use build_win32.bat or directly:
-```
-set SDL3_DIR=path_to_your_sdl3_folder
-cl /Zi /MD /utf-8 /I.. /I..\.. /I%SDL3_DIR%\include main.cpp ..\..\backends\imgui_impl_sdl3.cpp ..\..\backends\imgui_impl_opengl3.cpp ..\..\imgui*.cpp /FeDebug/example_sdl3_opengl3.exe /FoDebug/ /link /libpath:%SDL3_DIR%\lib\x86 SDL3.lib opengl32.lib /subsystem:console
-# ^^ include paths ^^ source files ^^ output exe ^^ output dir ^^ libraries
-# or for 64-bit:
-cl /Zi /MD /utf-8 /I.. /I..\.. /I%SDL3_DIR%\include main.cpp ..\..\backends\imgui_impl_sdl3.cpp ..\..\backends\imgui_impl_opengl3.cpp ..\..\imgui*.cpp /FeDebug/example_sdl3_opengl3.exe /FoDebug/ /link /libpath:%SDL3_DIR%\lib\x64 SDL3.lib SDL2mainopengl32.lib /subsystem:console
-```
-
-## Linux and similar Unixes
-
-Use our Makefile or directly:
-```
-c++ `sdl3-config --cflags` -I .. -I ../.. -I ../../backends
- main.cpp ../../backends/imgui_impl_sdl3.cpp ../../backends/imgui_impl_opengl3.cpp ../../imgui*.cpp
- `sdl3-config --libs` -lGL -ldl
-```
-
-## macOS
-
-Use our Makefile or directly:
-```
-brew install sdl3
-c++ `sdl3-config --cflags` -I .. -I ../.. -I ../../backends
- main.cpp ../../backends/imgui_impl_sdl3.cpp ../../backends/imgui_impl_opengl3.cpp ../../imgui*.cpp
- `sdl3-config --libs` -framework OpenGl -framework CoreFoundation
-```
-
-## Emscripten
-
-As of 2023-05-30 Emscripten doesn't support SDL3 yet.
diff --git a/imgui-1.92.1/examples/example_sdl3_opengl3/build_win32.bat b/imgui-1.92.1/examples/example_sdl3_opengl3/build_win32.bat
deleted file mode 100644
index 5bed40a..0000000
--- a/imgui-1.92.1/examples/example_sdl3_opengl3/build_win32.bat
+++ /dev/null
@@ -1,14 +0,0 @@
-@REM Build for Visual Studio compiler. Run your copy of vcvars32.bat or vcvarsall.bat to setup command-line compiler.
-
-@set OUT_EXE=example_sdl3_opengl3
-@set INCLUDES=/I..\.. /I..\..\backends /I%SDL3_DIR%\include
-@set SOURCES=main.cpp ..\..\backends\imgui_impl_sdl3.cpp ..\..\backends\imgui_impl_opengl3.cpp ..\..\imgui*.cpp
-@set LIBS=/LIBPATH:%SDL3_DIR%\lib\x86 SDL3.lib opengl32.lib shell32.lib
-
-@set OUT_DIR=Debug
-mkdir %OUT_DIR%
-cl /nologo /Zi /MD /utf-8 %INCLUDES% %SOURCES% /Fe%OUT_DIR%/%OUT_EXE%.exe /Fo%OUT_DIR%/ /link %LIBS% /subsystem:console
-
-@set OUT_DIR=Release
-@REM mkdir %OUT_DIR%
-@REM cl /nologo /Zi /MD /utf-8 /Ox /Oi %INCLUDES% %SOURCES% /Fe%OUT_DIR%/%OUT_EXE%.exe /Fo%OUT_DIR%/ /link %LIBS% /subsystem:console
diff --git a/imgui-1.92.1/examples/example_sdl3_opengl3/build_win64.bat b/imgui-1.92.1/examples/example_sdl3_opengl3/build_win64.bat
deleted file mode 100644
index 87c6bb8..0000000
--- a/imgui-1.92.1/examples/example_sdl3_opengl3/build_win64.bat
+++ /dev/null
@@ -1,14 +0,0 @@
-@REM Build for Visual Studio compiler. Run your copy of vcvars64.bat or vcvarsall.bat to setup command-line compiler.
-
-@set OUT_EXE=example_sdl3_opengl3
-@set INCLUDES=/I..\.. /I..\..\backends /I%SDL3_DIR%\include
-@set SOURCES=main.cpp ..\..\backends\imgui_impl_sdl3.cpp ..\..\backends\imgui_impl_opengl3.cpp ..\..\imgui*.cpp
-@set LIBS=/LIBPATH:%SDL3_DIR%\lib\x64 SDL3.lib opengl32.lib shell32.lib
-
-@set OUT_DIR=Debug
-mkdir %OUT_DIR%
-cl /nologo /Zi /MD /utf-8 %INCLUDES% %SOURCES% /Fe%OUT_DIR%/%OUT_EXE%.exe /Fo%OUT_DIR%/ /link %LIBS% /subsystem:console
-
-@set OUT_DIR=Release
-@REM mkdir %OUT_DIR%
-@REM cl /nologo /Zi /MD /utf-8 /Ox /Oi %INCLUDES% %SOURCES% /Fe%OUT_DIR%/%OUT_EXE%.exe /Fo%OUT_DIR%/ /link %LIBS% /subsystem:console
diff --git a/imgui-1.92.1/examples/example_sdl3_opengl3/example_sdl3_opengl3.vcxproj b/imgui-1.92.1/examples/example_sdl3_opengl3/example_sdl3_opengl3.vcxproj
deleted file mode 100644
index 051f87d..0000000
--- a/imgui-1.92.1/examples/example_sdl3_opengl3/example_sdl3_opengl3.vcxproj
+++ /dev/null
@@ -1,187 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="Debug|Win32">
- <Configuration>Debug</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Debug|x64">
- <Configuration>Debug</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|Win32">
- <Configuration>Release</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|x64">
- <Configuration>Release</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- </ItemGroup>
- <PropertyGroup Label="Globals">
- <ProjectGuid>{84AAA301-84FE-428B-9E3E-817BC8123C0C}</ProjectGuid>
- <RootNamespace>example_sdl3_opengl3</RootNamespace>
- <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>true</UseDebugLibraries>
- <CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>true</UseDebugLibraries>
- <CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>false</UseDebugLibraries>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- <CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>false</UseDebugLibraries>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- <CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
- <ImportGroup Label="ExtensionSettings">
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <PropertyGroup Label="UserMacros" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <OutDir>$(ProjectDir)$(Configuration)\</OutDir>
- <IntDir>$(ProjectDir)$(Configuration)\</IntDir>
- <IncludePath>$(IncludePath)</IncludePath>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <OutDir>$(ProjectDir)$(Configuration)\</OutDir>
- <IntDir>$(ProjectDir)$(Configuration)\</IntDir>
- <IncludePath>$(IncludePath)</IncludePath>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <OutDir>$(ProjectDir)$(Configuration)\</OutDir>
- <IntDir>$(ProjectDir)$(Configuration)\</IntDir>
- <IncludePath>$(IncludePath)</IncludePath>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <OutDir>$(ProjectDir)$(Configuration)\</OutDir>
- <IntDir>$(ProjectDir)$(Configuration)\</IntDir>
- <IncludePath>$(IncludePath)</IncludePath>
- </PropertyGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <ClCompile>
- <WarningLevel>Level4</WarningLevel>
- <Optimization>Disabled</Optimization>
- <AdditionalIncludeDirectories>..\..;..\..\backends;%SDL3_DIR%\include;$(VcpkgCurrentInstalledDir)include\SDL3;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
- </ClCompile>
- <Link>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <AdditionalLibraryDirectories>%SDL3_DIR%\lib\x86;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
- <AdditionalDependencies>opengl32.lib;SDL3.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <SubSystem>Console</SubSystem>
- <IgnoreSpecificDefaultLibraries>msvcrt.lib</IgnoreSpecificDefaultLibraries>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <ClCompile>
- <WarningLevel>Level4</WarningLevel>
- <Optimization>Disabled</Optimization>
- <AdditionalIncludeDirectories>..\..;..\..\backends;%SDL3_DIR%\include;$(VcpkgCurrentInstalledDir)include\SDL3;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
- </ClCompile>
- <Link>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <AdditionalLibraryDirectories>%SDL3_DIR%\lib\x64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
- <AdditionalDependencies>opengl32.lib;SDL3.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <SubSystem>Console</SubSystem>
- <IgnoreSpecificDefaultLibraries>msvcrt.lib</IgnoreSpecificDefaultLibraries>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <ClCompile>
- <WarningLevel>Level4</WarningLevel>
- <Optimization>MaxSpeed</Optimization>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <IntrinsicFunctions>true</IntrinsicFunctions>
- <AdditionalIncludeDirectories>..\..;..\..\backends;%SDL3_DIR%\include;$(VcpkgCurrentInstalledDir)include\SDL3;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <BufferSecurityCheck>false</BufferSecurityCheck>
- <AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
- </ClCompile>
- <Link>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- <OptimizeReferences>true</OptimizeReferences>
- <AdditionalLibraryDirectories>%SDL3_DIR%\lib\x86;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
- <AdditionalDependencies>opengl32.lib;SDL3.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <SubSystem>Console</SubSystem>
- <IgnoreSpecificDefaultLibraries>
- </IgnoreSpecificDefaultLibraries>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <ClCompile>
- <WarningLevel>Level4</WarningLevel>
- <Optimization>MaxSpeed</Optimization>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <IntrinsicFunctions>true</IntrinsicFunctions>
- <AdditionalIncludeDirectories>..\..;..\..\backends;%SDL3_DIR%\include;$(VcpkgCurrentInstalledDir)include\SDL3;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <BufferSecurityCheck>false</BufferSecurityCheck>
- <AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
- </ClCompile>
- <Link>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- <OptimizeReferences>true</OptimizeReferences>
- <AdditionalLibraryDirectories>%SDL3_DIR%\lib\x64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
- <AdditionalDependencies>opengl32.lib;SDL3.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <SubSystem>Console</SubSystem>
- <IgnoreSpecificDefaultLibraries>
- </IgnoreSpecificDefaultLibraries>
- </Link>
- </ItemDefinitionGroup>
- <ItemGroup>
- <ClCompile Include="..\..\imgui.cpp" />
- <ClCompile Include="..\..\imgui_demo.cpp" />
- <ClCompile Include="..\..\imgui_draw.cpp" />
- <ClCompile Include="..\..\imgui_tables.cpp" />
- <ClCompile Include="..\..\imgui_widgets.cpp" />
- <ClCompile Include="..\..\backends\imgui_impl_sdl3.cpp" />
- <ClCompile Include="..\..\backends\imgui_impl_opengl3.cpp" />
- <ClCompile Include="main.cpp" />
- </ItemGroup>
- <ItemGroup>
- <ClInclude Include="..\..\imconfig.h" />
- <ClInclude Include="..\..\imgui.h" />
- <ClInclude Include="..\..\imgui_internal.h" />
- <ClInclude Include="..\..\backends\imgui_impl_sdl3.h" />
- <ClInclude Include="..\..\backends\imgui_impl_opengl3.h" />
- <ClInclude Include="..\..\backends\imgui_impl_opengl3_loader.h" />
- </ItemGroup>
- <ItemGroup>
- <None Include="..\..\misc\debuggers\imgui.natstepfilter" />
- <None Include="..\..\misc\debuggers\imgui.natvis" />
- <None Include="..\README.txt" />
- </ItemGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
- <ImportGroup Label="ExtensionTargets">
- </ImportGroup>
-</Project> \ No newline at end of file
diff --git a/imgui-1.92.1/examples/example_sdl3_opengl3/example_sdl3_opengl3.vcxproj.filters b/imgui-1.92.1/examples/example_sdl3_opengl3/example_sdl3_opengl3.vcxproj.filters
deleted file mode 100644
index f365473..0000000
--- a/imgui-1.92.1/examples/example_sdl3_opengl3/example_sdl3_opengl3.vcxproj.filters
+++ /dev/null
@@ -1,67 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup>
- <Filter Include="imgui">
- <UniqueIdentifier>{20b90ce4-7fcb-4731-b9a0-075f875de82d}</UniqueIdentifier>
- </Filter>
- <Filter Include="sources">
- <UniqueIdentifier>{f18ab499-84e1-499f-8eff-9754361e0e52}</UniqueIdentifier>
- <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
- </Filter>
- </ItemGroup>
- <ItemGroup>
- <ClCompile Include="..\..\imgui.cpp">
- <Filter>imgui</Filter>
- </ClCompile>
- <ClCompile Include="..\..\imgui_demo.cpp">
- <Filter>imgui</Filter>
- </ClCompile>
- <ClCompile Include="..\..\imgui_draw.cpp">
- <Filter>imgui</Filter>
- </ClCompile>
- <ClCompile Include="main.cpp">
- <Filter>sources</Filter>
- </ClCompile>
- <ClCompile Include="..\..\backends\imgui_impl_sdl3.cpp">
- <Filter>sources</Filter>
- </ClCompile>
- <ClCompile Include="..\..\backends\imgui_impl_opengl3.cpp">
- <Filter>sources</Filter>
- </ClCompile>
- <ClCompile Include="..\..\imgui_tables.cpp">
- <Filter>imgui</Filter>
- </ClCompile>
- <ClCompile Include="..\..\imgui_widgets.cpp">
- <Filter>imgui</Filter>
- </ClCompile>
- </ItemGroup>
- <ItemGroup>
- <ClInclude Include="..\..\imconfig.h">
- <Filter>imgui</Filter>
- </ClInclude>
- <ClInclude Include="..\..\imgui.h">
- <Filter>imgui</Filter>
- </ClInclude>
- <ClInclude Include="..\..\imgui_internal.h">
- <Filter>imgui</Filter>
- </ClInclude>
- <ClInclude Include="..\..\backends\imgui_impl_sdl3.h">
- <Filter>sources</Filter>
- </ClInclude>
- <ClInclude Include="..\..\backends\imgui_impl_opengl3.h">
- <Filter>sources</Filter>
- </ClInclude>
- <ClInclude Include="..\..\backends\imgui_impl_opengl3_loader.h">
- <Filter>sources</Filter>
- </ClInclude>
- </ItemGroup>
- <ItemGroup>
- <None Include="..\README.txt" />
- <None Include="..\..\misc\debuggers\imgui.natvis">
- <Filter>imgui</Filter>
- </None>
- <None Include="..\..\misc\debuggers\imgui.natstepfilter">
- <Filter>imgui</Filter>
- </None>
- </ItemGroup>
-</Project> \ No newline at end of file
diff --git a/imgui-1.92.1/examples/example_sdl3_opengl3/main.cpp b/imgui-1.92.1/examples/example_sdl3_opengl3/main.cpp
deleted file mode 100644
index cfd6f6a..0000000
--- a/imgui-1.92.1/examples/example_sdl3_opengl3/main.cpp
+++ /dev/null
@@ -1,232 +0,0 @@
-// Dear ImGui: standalone example application for SDL3 + OpenGL
-// (SDL is a cross-platform general purpose library for handling windows, inputs, OpenGL/Vulkan/Metal graphics context creation, etc.)
-
-// Learn about Dear ImGui:
-// - FAQ https://dearimgui.com/faq
-// - Getting Started https://dearimgui.com/getting-started
-// - Documentation https://dearimgui.com/docs (same as your local docs/ folder).
-// - Introduction, links and more at the top of imgui.cpp
-
-#include "imgui.h"
-#include "imgui_impl_sdl3.h"
-#include "imgui_impl_opengl3.h"
-#include <stdio.h>
-#include <SDL3/SDL.h>
-#if defined(IMGUI_IMPL_OPENGL_ES2)
-#include <SDL3/SDL_opengles2.h>
-#else
-#include <SDL3/SDL_opengl.h>
-#endif
-
-#ifdef __EMSCRIPTEN__
-#include "../libs/emscripten/emscripten_mainloop_stub.h"
-#endif
-
-// Main code
-int main(int, char**)
-{
- // Setup SDL
- // [If using SDL_MAIN_USE_CALLBACKS: all code below until the main loop starts would likely be your SDL_AppInit() function]
- if (!SDL_Init(SDL_INIT_VIDEO | SDL_INIT_GAMEPAD))
- {
- printf("Error: SDL_Init(): %s\n", SDL_GetError());
- return -1;
- }
-
- // Decide GL+GLSL versions
-#if defined(IMGUI_IMPL_OPENGL_ES2)
- // GL ES 2.0 + GLSL 100 (WebGL 1.0)
- const char* glsl_version = "#version 100";
- SDL_GL_SetAttribute(SDL_GL_CONTEXT_FLAGS, 0);
- SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_ES);
- SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 2);
- SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 0);
-#elif defined(IMGUI_IMPL_OPENGL_ES3)
- // GL ES 3.0 + GLSL 300 es (WebGL 2.0)
- const char* glsl_version = "#version 300 es";
- SDL_GL_SetAttribute(SDL_GL_CONTEXT_FLAGS, 0);
- SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_ES);
- SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 3);
- SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 0);
-#elif defined(__APPLE__)
- // GL 3.2 Core + GLSL 150
- const char* glsl_version = "#version 150";
- SDL_GL_SetAttribute(SDL_GL_CONTEXT_FLAGS, SDL_GL_CONTEXT_FORWARD_COMPATIBLE_FLAG); // Always required on Mac
- SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_CORE);
- SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 3);
- SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 2);
-#else
- // GL 3.0 + GLSL 130
- const char* glsl_version = "#version 130";
- SDL_GL_SetAttribute(SDL_GL_CONTEXT_FLAGS, 0);
- SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_CORE);
- SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 3);
- SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 0);
-#endif
-
- // Create window with graphics context
- SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);
- SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE, 24);
- SDL_GL_SetAttribute(SDL_GL_STENCIL_SIZE, 8);
- float main_scale = SDL_GetDisplayContentScale(SDL_GetPrimaryDisplay());
- SDL_WindowFlags window_flags = SDL_WINDOW_OPENGL | SDL_WINDOW_RESIZABLE | SDL_WINDOW_HIDDEN | SDL_WINDOW_HIGH_PIXEL_DENSITY;
- SDL_Window* window = SDL_CreateWindow("Dear ImGui SDL3+OpenGL3 example", (int)(1280 * main_scale), (int)(720 * main_scale), window_flags);
- if (window == nullptr)
- {
- printf("Error: SDL_CreateWindow(): %s\n", SDL_GetError());
- return -1;
- }
- SDL_GLContext gl_context = SDL_GL_CreateContext(window);
- if (gl_context == nullptr)
- {
- printf("Error: SDL_GL_CreateContext(): %s\n", SDL_GetError());
- return -1;
- }
-
- SDL_GL_MakeCurrent(window, gl_context);
- SDL_GL_SetSwapInterval(1); // Enable vsync
- SDL_SetWindowPosition(window, SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED);
- SDL_ShowWindow(window);
-
- // Setup Dear ImGui context
- IMGUI_CHECKVERSION();
- ImGui::CreateContext();
- ImGuiIO& io = ImGui::GetIO(); (void)io;
- io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard; // Enable Keyboard Controls
- io.ConfigFlags |= ImGuiConfigFlags_NavEnableGamepad; // Enable Gamepad Controls
-
- // Setup Dear ImGui style
- ImGui::StyleColorsDark();
- //ImGui::StyleColorsLight();
-
- // Setup scaling
- ImGuiStyle& style = ImGui::GetStyle();
- style.ScaleAllSizes(main_scale); // Bake a fixed style scale. (until we have a solution for dynamic style scaling, changing this requires resetting Style + calling this again)
- style.FontScaleDpi = main_scale; // Set initial font scale. (using io.ConfigDpiScaleFonts=true makes this unnecessary. We leave both here for documentation purpose)
-
- // Setup Platform/Renderer backends
- ImGui_ImplSDL3_InitForOpenGL(window, gl_context);
- ImGui_ImplOpenGL3_Init(glsl_version);
-
- // Load Fonts
- // - If no fonts are loaded, dear imgui will use the default font. You can also load multiple fonts and use ImGui::PushFont()/PopFont() to select them.
- // - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
- // - If the file cannot be loaded, the function will return a nullptr. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
- // - Use '#define IMGUI_ENABLE_FREETYPE' in your imconfig file to use Freetype for higher quality font rendering.
- // - Read 'docs/FONTS.md' for more instructions and details.
- // - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
- // - Our Emscripten build process allows embedding fonts to be accessible at runtime from the "fonts/" folder. See Makefile.emscripten for details.
- //style.FontSizeBase = 20.0f;
- //io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\segoeui.ttf");
- //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf");
- //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf");
- //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf");
- //ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf");
- //IM_ASSERT(font != nullptr);
-
- // Our state
- bool show_demo_window = true;
- bool show_another_window = false;
- ImVec4 clear_color = ImVec4(0.45f, 0.55f, 0.60f, 1.00f);
-
- // Main loop
- bool done = false;
-#ifdef __EMSCRIPTEN__
- // For an Emscripten build we are disabling file-system access, so let's not attempt to do a fopen() of the imgui.ini file.
- // You may manually call LoadIniSettingsFromMemory() to load settings from your own storage.
- io.IniFilename = nullptr;
- EMSCRIPTEN_MAINLOOP_BEGIN
-#else
- while (!done)
-#endif
- {
- // Poll and handle events (inputs, window resize, etc.)
- // You can read the io.WantCaptureMouse, io.WantCaptureKeyboard flags to tell if dear imgui wants to use your inputs.
- // - When io.WantCaptureMouse is true, do not dispatch mouse input data to your main application, or clear/overwrite your copy of the mouse data.
- // - When io.WantCaptureKeyboard is true, do not dispatch keyboard input data to your main application, or clear/overwrite your copy of the keyboard data.
- // Generally you may always pass all inputs to dear imgui, and hide them from your application based on those two flags.
- // [If using SDL_MAIN_USE_CALLBACKS: call ImGui_ImplSDL3_ProcessEvent() from your SDL_AppEvent() function]
- SDL_Event event;
- while (SDL_PollEvent(&event))
- {
- ImGui_ImplSDL3_ProcessEvent(&event);
- if (event.type == SDL_EVENT_QUIT)
- done = true;
- if (event.type == SDL_EVENT_WINDOW_CLOSE_REQUESTED && event.window.windowID == SDL_GetWindowID(window))
- done = true;
- }
-
- // [If using SDL_MAIN_USE_CALLBACKS: all code below would likely be your SDL_AppIterate() function]
- if (SDL_GetWindowFlags(window) & SDL_WINDOW_MINIMIZED)
- {
- SDL_Delay(10);
- continue;
- }
-
- // Start the Dear ImGui frame
- ImGui_ImplOpenGL3_NewFrame();
- ImGui_ImplSDL3_NewFrame();
- ImGui::NewFrame();
-
- // 1. Show the big demo window (Most of the sample code is in ImGui::ShowDemoWindow()! You can browse its code to learn more about Dear ImGui!).
- if (show_demo_window)
- ImGui::ShowDemoWindow(&show_demo_window);
-
- // 2. Show a simple window that we create ourselves. We use a Begin/End pair to create a named window.
- {
- static float f = 0.0f;
- static int counter = 0;
-
- ImGui::Begin("Hello, world!"); // Create a window called "Hello, world!" and append into it.
-
- ImGui::Text("This is some useful text."); // Display some text (you can use a format strings too)
- ImGui::Checkbox("Demo Window", &show_demo_window); // Edit bools storing our window open/close state
- ImGui::Checkbox("Another Window", &show_another_window);
-
- ImGui::SliderFloat("float", &f, 0.0f, 1.0f); // Edit 1 float using a slider from 0.0f to 1.0f
- ImGui::ColorEdit3("clear color", (float*)&clear_color); // Edit 3 floats representing a color
-
- if (ImGui::Button("Button")) // Buttons return true when clicked (most widgets return true when edited/activated)
- counter++;
- ImGui::SameLine();
- ImGui::Text("counter = %d", counter);
-
- ImGui::Text("Application average %.3f ms/frame (%.1f FPS)", 1000.0f / io.Framerate, io.Framerate);
- ImGui::End();
- }
-
- // 3. Show another simple window.
- if (show_another_window)
- {
- ImGui::Begin("Another Window", &show_another_window); // Pass a pointer to our bool variable (the window will have a closing button that will clear the bool when clicked)
- ImGui::Text("Hello from another window!");
- if (ImGui::Button("Close Me"))
- show_another_window = false;
- ImGui::End();
- }
-
- // Rendering
- ImGui::Render();
- glViewport(0, 0, (int)io.DisplaySize.x, (int)io.DisplaySize.y);
- glClearColor(clear_color.x * clear_color.w, clear_color.y * clear_color.w, clear_color.z * clear_color.w, clear_color.w);
- glClear(GL_COLOR_BUFFER_BIT);
- ImGui_ImplOpenGL3_RenderDrawData(ImGui::GetDrawData());
- SDL_GL_SwapWindow(window);
- }
-#ifdef __EMSCRIPTEN__
- EMSCRIPTEN_MAINLOOP_END;
-#endif
-
- // Cleanup
- // [If using SDL_MAIN_USE_CALLBACKS: all code below would likely be your SDL_AppQuit() function]
- ImGui_ImplOpenGL3_Shutdown();
- ImGui_ImplSDL3_Shutdown();
- ImGui::DestroyContext();
-
- SDL_GL_DestroyContext(gl_context);
- SDL_DestroyWindow(window);
- SDL_Quit();
-
- return 0;
-}
diff --git a/imgui-1.92.1/examples/example_sdl3_sdlgpu3/Makefile b/imgui-1.92.1/examples/example_sdl3_sdlgpu3/Makefile
deleted file mode 100644
index c3159d8..0000000
--- a/imgui-1.92.1/examples/example_sdl3_sdlgpu3/Makefile
+++ /dev/null
@@ -1,73 +0,0 @@
-#
-# Cross Platform Makefile
-# Compatible with MSYS2/MINGW, Ubuntu 14.04.1 and Mac OS X
-#
-# You will need SDL3 (http://www.libsdl.org) which is still unreleased/unpackaged.
-
-#CXX = g++
-#CXX = clang++
-
-EXE = example_sdl3_sdlgpu3
-IMGUI_DIR = ../..
-SOURCES = main.cpp
-SOURCES += $(IMGUI_DIR)/imgui.cpp $(IMGUI_DIR)/imgui_demo.cpp $(IMGUI_DIR)/imgui_draw.cpp $(IMGUI_DIR)/imgui_tables.cpp $(IMGUI_DIR)/imgui_widgets.cpp
-SOURCES += $(IMGUI_DIR)/backends/imgui_impl_sdl3.cpp $(IMGUI_DIR)/backends/imgui_impl_sdlgpu3.cpp
-OBJS = $(addsuffix .o, $(basename $(notdir $(SOURCES))))
-UNAME_S := $(shell uname -s)
-
-CXXFLAGS = -std=c++11 -I$(IMGUI_DIR) -I$(IMGUI_DIR)/backends
-CXXFLAGS += -g -Wall -Wformat
-LIBS =
-
-
-##---------------------------------------------------------------------
-## BUILD FLAGS PER PLATFORM
-##---------------------------------------------------------------------
-
-ifeq ($(UNAME_S), Linux) #LINUX
- ECHO_MESSAGE = "Linux"
- LIBS += -ldl `pkg-config sdl3 --libs`
-
- CXXFLAGS += `pkg-config sdl3 --cflags`
- CFLAGS = $(CXXFLAGS)
-endif
-
-ifeq ($(UNAME_S), Darwin) #APPLE
- ECHO_MESSAGE = "Mac OS X"
- LIBS += -framework Cocoa -framework IOKit -framework CoreVideo `pkg-config --libs sdl3`
- LIBS += -L/usr/local/lib -L/opt/local/lib
-
- CXXFLAGS += `pkg-config sdl3 --cflags`
- CXXFLAGS += -I/usr/local/include -I/opt/local/include
- CFLAGS = $(CXXFLAGS)
-endif
-
-ifeq ($(OS), Windows_NT)
- ECHO_MESSAGE = "MinGW"
- LIBS += -lgdi32 -limm32 `pkg-config --static --libs sdl3`
-
- CXXFLAGS += `pkg-config --cflags sdl3`
- CFLAGS = $(CXXFLAGS)
-endif
-
-##---------------------------------------------------------------------
-## BUILD RULES
-##---------------------------------------------------------------------
-
-%.o:%.cpp
- $(CXX) $(CXXFLAGS) -c -o $@ $<
-
-%.o:$(IMGUI_DIR)/%.cpp
- $(CXX) $(CXXFLAGS) -c -o $@ $<
-
-%.o:$(IMGUI_DIR)/backends/%.cpp
- $(CXX) $(CXXFLAGS) -c -o $@ $<
-
-all: $(EXE)
- @echo Build complete for $(ECHO_MESSAGE)
-
-$(EXE): $(OBJS)
- $(CXX) -o $@ $^ $(CXXFLAGS) $(LIBS)
-
-clean:
- rm -f $(EXE) $(OBJS)
diff --git a/imgui-1.92.1/examples/example_sdl3_sdlgpu3/build_win64.bat b/imgui-1.92.1/examples/example_sdl3_sdlgpu3/build_win64.bat
deleted file mode 100644
index ad7a2d6..0000000
--- a/imgui-1.92.1/examples/example_sdl3_sdlgpu3/build_win64.bat
+++ /dev/null
@@ -1,14 +0,0 @@
-@REM Build for Visual Studio compiler. Run your copy of vcvars64.bat or vcvarsall.bat to setup command-line compiler.
-
-@set OUT_EXE=example_sdl3_sdlgpu3
-@set INCLUDES=/I..\.. /I..\..\backends /I%SDL3_DIR%\include
-@set SOURCES=main.cpp ..\..\backends\imgui_impl_sdl3.cpp ..\..\backends\imgui_impl_sdlgpu3.cpp ..\..\imgui*.cpp
-@set LIBS=/LIBPATH:%SDL3_DIR%\lib\x64 SDL3.lib shell32.lib
-
-@set OUT_DIR=Debug
-mkdir %OUT_DIR%
-cl /nologo /Zi /MD /utf-8 %INCLUDES% %SOURCES% /Fe%OUT_DIR%/%OUT_EXE%.exe /Fo%OUT_DIR%/ /link %LIBS% /subsystem:console
-
-@set OUT_DIR=Release
-@REM mkdir %OUT_DIR%
-@REM cl /nologo /Zi /MD /utf-8 /Ox /Oi %INCLUDES% %SOURCES% /Fe%OUT_DIR%/%OUT_EXE%.exe /Fo%OUT_DIR%/ /link %LIBS% /subsystem:console
diff --git a/imgui-1.92.1/examples/example_sdl3_sdlgpu3/example_sdl3_sdlgpu3.vcxproj b/imgui-1.92.1/examples/example_sdl3_sdlgpu3/example_sdl3_sdlgpu3.vcxproj
deleted file mode 100644
index 3d034f5..0000000
--- a/imgui-1.92.1/examples/example_sdl3_sdlgpu3/example_sdl3_sdlgpu3.vcxproj
+++ /dev/null
@@ -1,189 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="Debug|Win32">
- <Configuration>Debug</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Debug|x64">
- <Configuration>Debug</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|Win32">
- <Configuration>Release</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|x64">
- <Configuration>Release</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- </ItemGroup>
- <PropertyGroup Label="Globals">
- <ProjectGuid>{c22cb6f8-39a5-4dda-90ed-4aca4e81e1e5}</ProjectGuid>
- <RootNamespace>example_sdl3_sdlgpu3</RootNamespace>
- <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>true</UseDebugLibraries>
- <CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>true</UseDebugLibraries>
- <CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>false</UseDebugLibraries>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- <CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>false</UseDebugLibraries>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- <CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
- <ImportGroup Label="ExtensionSettings">
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <PropertyGroup Label="UserMacros" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <OutDir>$(ProjectDir)$(Configuration)\</OutDir>
- <IntDir>$(ProjectDir)$(Configuration)\</IntDir>
- <IncludePath>$(IncludePath)</IncludePath>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <OutDir>$(ProjectDir)$(Configuration)\</OutDir>
- <IntDir>$(ProjectDir)$(Configuration)\</IntDir>
- <IncludePath>$(IncludePath)</IncludePath>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <OutDir>$(ProjectDir)$(Configuration)\</OutDir>
- <IntDir>$(ProjectDir)$(Configuration)\</IntDir>
- <IncludePath>$(IncludePath)</IncludePath>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <OutDir>$(ProjectDir)$(Configuration)\</OutDir>
- <IntDir>$(ProjectDir)$(Configuration)\</IntDir>
- <IncludePath>$(IncludePath)</IncludePath>
- </PropertyGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <ClCompile>
- <WarningLevel>Level4</WarningLevel>
- <Optimization>Disabled</Optimization>
- <AdditionalIncludeDirectories>..\..;..\..\backends;%SDL3_DIR%\include;$(VcpkgCurrentInstalledDir)include\SDL3;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_MBCS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
- </ClCompile>
- <Link>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <AdditionalLibraryDirectories>%SDL3_DIR%\lib\x86;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
- <AdditionalDependencies>SDL3.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <SubSystem>Console</SubSystem>
- <IgnoreSpecificDefaultLibraries>msvcrt.lib</IgnoreSpecificDefaultLibraries>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <ClCompile>
- <WarningLevel>Level4</WarningLevel>
- <Optimization>Disabled</Optimization>
- <AdditionalIncludeDirectories>..\..;..\..\backends;%SDL3_DIR%\include;$(VcpkgCurrentInstalledDir)include\SDL3;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_MBCS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
- </ClCompile>
- <Link>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <AdditionalLibraryDirectories>%SDL3_DIR%\lib\x64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
- <AdditionalDependencies>SDL3.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <SubSystem>Console</SubSystem>
- <IgnoreSpecificDefaultLibraries>msvcrt.lib</IgnoreSpecificDefaultLibraries>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <ClCompile>
- <WarningLevel>Level4</WarningLevel>
- <Optimization>MaxSpeed</Optimization>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <IntrinsicFunctions>true</IntrinsicFunctions>
- <AdditionalIncludeDirectories>..\..;..\..\backends;%SDL3_DIR%\include;$(VcpkgCurrentInstalledDir)include\SDL3;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <BufferSecurityCheck>false</BufferSecurityCheck>
- <PreprocessorDefinitions>_MBCS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
- </ClCompile>
- <Link>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- <OptimizeReferences>true</OptimizeReferences>
- <AdditionalLibraryDirectories>%SDL3_DIR%\lib\x86;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
- <AdditionalDependencies>SDL3.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <SubSystem>Console</SubSystem>
- <IgnoreSpecificDefaultLibraries>
- </IgnoreSpecificDefaultLibraries>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <ClCompile>
- <WarningLevel>Level4</WarningLevel>
- <Optimization>MaxSpeed</Optimization>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <IntrinsicFunctions>true</IntrinsicFunctions>
- <AdditionalIncludeDirectories>..\..;..\..\backends;%SDL3_DIR%\include;$(VcpkgCurrentInstalledDir)include\SDL3;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <BufferSecurityCheck>false</BufferSecurityCheck>
- <PreprocessorDefinitions>_MBCS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
- </ClCompile>
- <Link>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- <OptimizeReferences>true</OptimizeReferences>
- <AdditionalLibraryDirectories>%SDL3_DIR%\lib\x64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
- <AdditionalDependencies>SDL3.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <SubSystem>Console</SubSystem>
- <IgnoreSpecificDefaultLibraries>
- </IgnoreSpecificDefaultLibraries>
- </Link>
- </ItemDefinitionGroup>
- <ItemGroup>
- <ClCompile Include="..\..\backends\imgui_impl_sdlgpu3.cpp" />
- <ClCompile Include="..\..\imgui.cpp" />
- <ClCompile Include="..\..\imgui_demo.cpp" />
- <ClCompile Include="..\..\imgui_draw.cpp" />
- <ClCompile Include="..\..\imgui_tables.cpp" />
- <ClCompile Include="..\..\imgui_widgets.cpp" />
- <ClCompile Include="..\..\backends\imgui_impl_sdl3.cpp" />
- <ClCompile Include="main.cpp" />
- </ItemGroup>
- <ItemGroup>
- <ClInclude Include="..\..\backends\imgui_impl_sdlgpu3.h" />
- <ClInclude Include="..\..\backends\imgui_impl_sdlgpu3_shaders.h" />
- <ClInclude Include="..\..\imconfig.h" />
- <ClInclude Include="..\..\imgui.h" />
- <ClInclude Include="..\..\imgui_internal.h" />
- <ClInclude Include="..\..\backends\imgui_impl_sdl3.h" />
- </ItemGroup>
- <ItemGroup>
- <None Include="..\README.txt" />
- </ItemGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
- <ImportGroup Label="ExtensionTargets">
- </ImportGroup>
-</Project>
diff --git a/imgui-1.92.1/examples/example_sdl3_sdlgpu3/example_sdl3_sdlgpu3.vcxproj.filters b/imgui-1.92.1/examples/example_sdl3_sdlgpu3/example_sdl3_sdlgpu3.vcxproj.filters
deleted file mode 100644
index 4710b55..0000000
--- a/imgui-1.92.1/examples/example_sdl3_sdlgpu3/example_sdl3_sdlgpu3.vcxproj.filters
+++ /dev/null
@@ -1,60 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup>
- <ClCompile Include="main.cpp">
- <Filter>sources</Filter>
- </ClCompile>
- <ClCompile Include="..\..\backends\imgui_impl_sdlgpu3.cpp">
- <Filter>sources</Filter>
- </ClCompile>
- <ClCompile Include="..\..\backends\imgui_impl_sdl3.cpp">
- <Filter>sources</Filter>
- </ClCompile>
- <ClCompile Include="..\..\imgui.cpp">
- <Filter>imgui</Filter>
- </ClCompile>
- <ClCompile Include="..\..\imgui_demo.cpp">
- <Filter>imgui</Filter>
- </ClCompile>
- <ClCompile Include="..\..\imgui_draw.cpp">
- <Filter>imgui</Filter>
- </ClCompile>
- <ClCompile Include="..\..\imgui_tables.cpp">
- <Filter>imgui</Filter>
- </ClCompile>
- <ClCompile Include="..\..\imgui_widgets.cpp">
- <Filter>imgui</Filter>
- </ClCompile>
- </ItemGroup>
- <ItemGroup>
- <ClInclude Include="..\..\backends\imgui_impl_sdlgpu3.h">
- <Filter>sources</Filter>
- </ClInclude>
- <ClInclude Include="..\..\backends\imgui_impl_sdlgpu3_shaders.h">
- <Filter>sources</Filter>
- </ClInclude>
- <ClInclude Include="..\..\backends\imgui_impl_sdl3.h">
- <Filter>sources</Filter>
- </ClInclude>
- <ClInclude Include="..\..\imconfig.h">
- <Filter>imgui</Filter>
- </ClInclude>
- <ClInclude Include="..\..\imgui.h">
- <Filter>imgui</Filter>
- </ClInclude>
- <ClInclude Include="..\..\imgui_internal.h">
- <Filter>imgui</Filter>
- </ClInclude>
- </ItemGroup>
- <ItemGroup>
- <None Include="..\README.txt" />
- </ItemGroup>
- <ItemGroup>
- <Filter Include="imgui">
- <UniqueIdentifier>{9044ef92-2afa-42f2-92df-ac473c7c32b3}</UniqueIdentifier>
- </Filter>
- <Filter Include="sources">
- <UniqueIdentifier>{ef84458b-039a-4902-8455-4e33df5a8578}</UniqueIdentifier>
- </Filter>
- </ItemGroup>
-</Project> \ No newline at end of file
diff --git a/imgui-1.92.1/examples/example_sdl3_sdlgpu3/main.cpp b/imgui-1.92.1/examples/example_sdl3_sdlgpu3/main.cpp
deleted file mode 100644
index 581b11c..0000000
--- a/imgui-1.92.1/examples/example_sdl3_sdlgpu3/main.cpp
+++ /dev/null
@@ -1,227 +0,0 @@
-// Dear ImGui: standalone example application for SDL3 + SDL_GPU
-
-// Learn about Dear ImGui:
-// - FAQ https://dearimgui.com/faq
-// - Getting Started https://dearimgui.com/getting-started
-// - Documentation https://dearimgui.com/docs (same as your local docs/ folder).
-// - Introduction, links and more at the top of imgui.cpp
-
-// Important note to the reader who wish to integrate imgui_impl_sdlgpu3.cpp/.h in their own engine/app.
-// - Unlike other backends, the user must call the function ImGui_ImplSDLGPU_PrepareDrawData() BEFORE issuing a SDL_GPURenderPass containing ImGui_ImplSDLGPU_RenderDrawData.
-// Calling the function is MANDATORY, otherwise the ImGui will not upload neither the vertex nor the index buffer for the GPU. See imgui_impl_sdlgpu3.cpp for more info.
-
-#include "imgui.h"
-#include "imgui_impl_sdl3.h"
-#include "imgui_impl_sdlgpu3.h"
-#include <stdio.h> // printf, fprintf
-#include <stdlib.h> // abort
-#include <SDL3/SDL.h>
-
-// This example doesn't compile with Emscripten yet! Awaiting SDL3 support.
-#ifdef __EMSCRIPTEN__
-#include "../libs/emscripten/emscripten_mainloop_stub.h"
-#endif
-
-// Main code
-int main(int, char**)
-{
- // Setup SDL
- // [If using SDL_MAIN_USE_CALLBACKS: all code below until the main loop starts would likely be your SDL_AppInit() function]
- if (!SDL_Init(SDL_INIT_VIDEO | SDL_INIT_GAMEPAD))
- {
- printf("Error: SDL_Init(): %s\n", SDL_GetError());
- return -1;
- }
-
- // Create SDL window graphics context
- float main_scale = SDL_GetDisplayContentScale(SDL_GetPrimaryDisplay());
- SDL_WindowFlags window_flags = SDL_WINDOW_RESIZABLE | SDL_WINDOW_HIDDEN | SDL_WINDOW_HIGH_PIXEL_DENSITY;
- SDL_Window* window = SDL_CreateWindow("Dear ImGui SDL3+SDL_GPU example", (int)(1280 * main_scale), (int)(720 * main_scale), window_flags);
- if (window == nullptr)
- {
- printf("Error: SDL_CreateWindow(): %s\n", SDL_GetError());
- return -1;
- }
- SDL_SetWindowPosition(window, SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED);
- SDL_ShowWindow(window);
-
- // Create GPU Device
- SDL_GPUDevice* gpu_device = SDL_CreateGPUDevice(SDL_GPU_SHADERFORMAT_SPIRV | SDL_GPU_SHADERFORMAT_DXIL | SDL_GPU_SHADERFORMAT_METALLIB,true,nullptr);
- if (gpu_device == nullptr)
- {
- printf("Error: SDL_CreateGPUDevice(): %s\n", SDL_GetError());
- return -1;
- }
-
- // Claim window for GPU Device
- if (!SDL_ClaimWindowForGPUDevice(gpu_device, window))
- {
- printf("Error: SDL_ClaimWindowForGPUDevice(): %s\n", SDL_GetError());
- return -1;
- }
- SDL_SetGPUSwapchainParameters(gpu_device, window, SDL_GPU_SWAPCHAINCOMPOSITION_SDR, SDL_GPU_PRESENTMODE_MAILBOX);
-
- // Setup Dear ImGui context
- IMGUI_CHECKVERSION();
- ImGui::CreateContext();
- ImGuiIO& io = ImGui::GetIO(); (void)io;
- io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard; // Enable Keyboard Controls
- io.ConfigFlags |= ImGuiConfigFlags_NavEnableGamepad; // Enable Gamepad Controls
-
- // Setup Dear ImGui style
- ImGui::StyleColorsDark();
- //ImGui::StyleColorsLight();
-
- // Setup scaling
- ImGuiStyle& style = ImGui::GetStyle();
- style.ScaleAllSizes(main_scale); // Bake a fixed style scale. (until we have a solution for dynamic style scaling, changing this requires resetting Style + calling this again)
- style.FontScaleDpi = main_scale; // Set initial font scale. (using io.ConfigDpiScaleFonts=true makes this unnecessary. We leave both here for documentation purpose)
-
- // Setup Platform/Renderer backends
- ImGui_ImplSDL3_InitForSDLGPU(window);
- ImGui_ImplSDLGPU3_InitInfo init_info = {};
- init_info.Device = gpu_device;
- init_info.ColorTargetFormat = SDL_GetGPUSwapchainTextureFormat(gpu_device, window);
- init_info.MSAASamples = SDL_GPU_SAMPLECOUNT_1;
- ImGui_ImplSDLGPU3_Init(&init_info);
-
- // Load Fonts
- // - If no fonts are loaded, dear imgui will use the default font. You can also load multiple fonts and use ImGui::PushFont()/PopFont() to select them.
- // - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
- // - If the file cannot be loaded, the function will return a nullptr. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
- // - Use '#define IMGUI_ENABLE_FREETYPE' in your imconfig file to use Freetype for higher quality font rendering.
- // - Read 'docs/FONTS.md' for more instructions and details.
- // - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
- //style.FontSizeBase = 20.0f;
- //io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\segoeui.ttf");
- //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf");
- //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf");
- //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf");
- //ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf");
- //IM_ASSERT(font != nullptr);
-
- // Our state
- bool show_demo_window = true;
- bool show_another_window = false;
- ImVec4 clear_color = ImVec4(0.45f, 0.55f, 0.60f, 1.00f);
-
- // Main loop
- bool done = false;
- while (!done)
- {
- // Poll and handle events (inputs, window resize, etc.)
- // You can read the io.WantCaptureMouse, io.WantCaptureKeyboard flags to tell if dear imgui wants to use your inputs.
- // - When io.WantCaptureMouse is true, do not dispatch mouse input data to your main application, or clear/overwrite your copy of the mouse data.
- // - When io.WantCaptureKeyboard is true, do not dispatch keyboard input data to your main application, or clear/overwrite your copy of the keyboard data.
- // Generally you may always pass all inputs to dear imgui, and hide them from your application based on those two flags.
- // [If using SDL_MAIN_USE_CALLBACKS: call ImGui_ImplSDL3_ProcessEvent() from your SDL_AppEvent() function]
- SDL_Event event;
- while (SDL_PollEvent(&event))
- {
- ImGui_ImplSDL3_ProcessEvent(&event);
- if (event.type == SDL_EVENT_QUIT)
- done = true;
- if (event.type == SDL_EVENT_WINDOW_CLOSE_REQUESTED && event.window.windowID == SDL_GetWindowID(window))
- done = true;
- }
-
- // [If using SDL_MAIN_USE_CALLBACKS: all code below would likely be your SDL_AppIterate() function]
- if (SDL_GetWindowFlags(window) & SDL_WINDOW_MINIMIZED)
- {
- SDL_Delay(10);
- continue;
- }
-
- // Start the Dear ImGui frame
- ImGui_ImplSDLGPU3_NewFrame();
- ImGui_ImplSDL3_NewFrame();
- ImGui::NewFrame();
-
- // 1. Show the big demo window (Most of the sample code is in ImGui::ShowDemoWindow()! You can browse its code to learn more about Dear ImGui!).
- if (show_demo_window)
- ImGui::ShowDemoWindow(&show_demo_window);
-
- // 2. Show a simple window that we create ourselves. We use a Begin/End pair to create a named window.
- {
- static float f = 0.0f;
- static int counter = 0;
-
- ImGui::Begin("Hello, world!"); // Create a window called "Hello, world!" and append into it.
-
- ImGui::Text("This is some useful text."); // Display some text (you can use a format strings too)
- ImGui::Checkbox("Demo Window", &show_demo_window); // Edit bools storing our window open/close state
- ImGui::Checkbox("Another Window", &show_another_window);
-
- ImGui::SliderFloat("float", &f, 0.0f, 1.0f); // Edit 1 float using a slider from 0.0f to 1.0f
- ImGui::ColorEdit4("clear color", (float*)&clear_color); // Edit 3 floats representing a color
-
- if (ImGui::Button("Button")) // Buttons return true when clicked (most widgets return true when edited/activated)
- counter++;
- ImGui::SameLine();
- ImGui::Text("counter = %d", counter);
-
- ImGui::Text("Application average %.3f ms/frame (%.1f FPS)", 1000.0f / io.Framerate, io.Framerate);
- ImGui::End();
- }
-
- // 3. Show another simple window.
- if (show_another_window)
- {
- ImGui::Begin("Another Window", &show_another_window); // Pass a pointer to our bool variable (the window will have a closing button that will clear the bool when clicked)
- ImGui::Text("Hello from another window!");
- if (ImGui::Button("Close Me"))
- show_another_window = false;
- ImGui::End();
- }
-
- // Rendering
- ImGui::Render();
- ImDrawData* draw_data = ImGui::GetDrawData();
- const bool is_minimized = (draw_data->DisplaySize.x <= 0.0f || draw_data->DisplaySize.y <= 0.0f);
-
- SDL_GPUCommandBuffer* command_buffer = SDL_AcquireGPUCommandBuffer(gpu_device); // Acquire a GPU command buffer
-
- SDL_GPUTexture* swapchain_texture;
- SDL_AcquireGPUSwapchainTexture(command_buffer, window, &swapchain_texture, nullptr, nullptr); // Acquire a swapchain texture
-
- if (swapchain_texture != nullptr && !is_minimized)
- {
- // This is mandatory: call ImGui_ImplSDLGPU3_PrepareDrawData() to upload the vertex/index buffer!
- ImGui_ImplSDLGPU3_PrepareDrawData(draw_data, command_buffer);
-
- // Setup and start a render pass
- SDL_GPUColorTargetInfo target_info = {};
- target_info.texture = swapchain_texture;
- target_info.clear_color = SDL_FColor { clear_color.x, clear_color.y, clear_color.z, clear_color.w };
- target_info.load_op = SDL_GPU_LOADOP_CLEAR;
- target_info.store_op = SDL_GPU_STOREOP_STORE;
- target_info.mip_level = 0;
- target_info.layer_or_depth_plane = 0;
- target_info.cycle = false;
- SDL_GPURenderPass* render_pass = SDL_BeginGPURenderPass(command_buffer, &target_info, 1, nullptr);
-
- // Render ImGui
- ImGui_ImplSDLGPU3_RenderDrawData(draw_data, command_buffer, render_pass);
-
- SDL_EndGPURenderPass(render_pass);
- }
-
- // Submit the command buffer
- SDL_SubmitGPUCommandBuffer(command_buffer);
- }
-
- // Cleanup
- // [If using SDL_MAIN_USE_CALLBACKS: all code below would likely be your SDL_AppQuit() function]
- SDL_WaitForGPUIdle(gpu_device);
- ImGui_ImplSDL3_Shutdown();
- ImGui_ImplSDLGPU3_Shutdown();
- ImGui::DestroyContext();
-
- SDL_ReleaseWindowFromGPUDevice(gpu_device, window);
- SDL_DestroyGPUDevice(gpu_device);
- SDL_DestroyWindow(window);
- SDL_Quit();
-
- return 0;
-}
diff --git a/imgui-1.92.1/examples/example_sdl3_sdlrenderer3/Makefile b/imgui-1.92.1/examples/example_sdl3_sdlrenderer3/Makefile
deleted file mode 100644
index c278f78..0000000
--- a/imgui-1.92.1/examples/example_sdl3_sdlrenderer3/Makefile
+++ /dev/null
@@ -1,74 +0,0 @@
-#
-# Cross Platform Makefile
-# Compatible with MSYS2/MINGW, Ubuntu 14.04.1 and Mac OS X
-#
-# You will need SDL3 (http://www.libsdl.org) which is still unreleased/unpackaged.
-
-#CXX = g++
-#CXX = clang++
-
-EXE = example_sdl3_sdlrenderer3
-IMGUI_DIR = ../..
-SOURCES = main.cpp
-SOURCES += $(IMGUI_DIR)/imgui.cpp $(IMGUI_DIR)/imgui_demo.cpp $(IMGUI_DIR)/imgui_draw.cpp $(IMGUI_DIR)/imgui_tables.cpp $(IMGUI_DIR)/imgui_widgets.cpp
-SOURCES += $(IMGUI_DIR)/backends/imgui_impl_sdl3.cpp $(IMGUI_DIR)/backends/imgui_impl_sdlrenderer3.cpp
-OBJS = $(addsuffix .o, $(basename $(notdir $(SOURCES))))
-UNAME_S := $(shell uname -s)
-LINUX_GL_LIBS = -lGL
-
-CXXFLAGS = -std=c++11 -I$(IMGUI_DIR) -I$(IMGUI_DIR)/backends
-CXXFLAGS += -g -Wall -Wformat
-LIBS =
-
-##---------------------------------------------------------------------
-## BUILD FLAGS PER PLATFORM
-##---------------------------------------------------------------------
-
-ifeq ($(UNAME_S), Linux) #LINUX
- ECHO_MESSAGE = "Linux"
- LIBS += -ldl `pkg-config sdl3 --libs`
-
- CXXFLAGS += `pkg-config sdl3 --cflags`
- CFLAGS = $(CXXFLAGS)
-endif
-
-ifeq ($(UNAME_S), Darwin) #APPLE
- ECHO_MESSAGE = "Mac OS X"
- LIBS += -framework Cocoa -framework IOKit -framework CoreVideo
- LIBS += `pkg-config --libs sdl3`
- LIBS += -L/usr/local/lib -L/opt/local/lib
-
- CXXFLAGS += `pkg-config --cflags sdl3`
- CXXFLAGS += -I/usr/local/include -I/opt/local/include
- CFLAGS = $(CXXFLAGS)
-endif
-
-ifeq ($(OS), Windows_NT)
- ECHO_MESSAGE = "MinGW"
- LIBS += -lgdi32 -limm32 `pkg-config --static --libs sdl3`
-
- CXXFLAGS += `pkg-config --cflags sdl3`
- CFLAGS = $(CXXFLAGS)
-endif
-
-##---------------------------------------------------------------------
-## BUILD RULES
-##---------------------------------------------------------------------
-
-%.o:%.cpp
- $(CXX) $(CXXFLAGS) -c -o $@ $<
-
-%.o:$(IMGUI_DIR)/%.cpp
- $(CXX) $(CXXFLAGS) -c -o $@ $<
-
-%.o:$(IMGUI_DIR)/backends/%.cpp
- $(CXX) $(CXXFLAGS) -c -o $@ $<
-
-all: $(EXE)
- @echo Build complete for $(ECHO_MESSAGE)
-
-$(EXE): $(OBJS)
- $(CXX) -o $@ $^ $(CXXFLAGS) $(LIBS)
-
-clean:
- rm -f $(EXE) $(OBJS)
diff --git a/imgui-1.92.1/examples/example_sdl3_sdlrenderer3/build_win32.bat b/imgui-1.92.1/examples/example_sdl3_sdlrenderer3/build_win32.bat
deleted file mode 100644
index 7bc131a..0000000
--- a/imgui-1.92.1/examples/example_sdl3_sdlrenderer3/build_win32.bat
+++ /dev/null
@@ -1,8 +0,0 @@
-@REM Build for Visual Studio compiler. Run your copy of vcvars32.bat or vcvarsall.bat to setup command-line compiler.
-@set OUT_DIR=Debug
-@set OUT_EXE=example_sdl3_sdlrenderer3
-@set INCLUDES=/I..\.. /I..\..\backends /I%SDL3_DIR%\include
-@set SOURCES=main.cpp ..\..\backends\imgui_impl_sdl3.cpp ..\..\backends\imgui_impl_sdlrenderer3.cpp ..\..\imgui*.cpp
-@set LIBS=/LIBPATH:%SDL3_DIR%\lib\x86 SDL3.lib
-mkdir %OUT_DIR%
-cl /nologo /Zi /MD /utf-8 %INCLUDES% %SOURCES% /Fe%OUT_DIR%/%OUT_EXE%.exe /Fo%OUT_DIR%/ /link %LIBS% /subsystem:console
diff --git a/imgui-1.92.1/examples/example_sdl3_sdlrenderer3/example_sdl3_sdlrenderer3.vcxproj b/imgui-1.92.1/examples/example_sdl3_sdlrenderer3/example_sdl3_sdlrenderer3.vcxproj
deleted file mode 100644
index 8b71324..0000000
--- a/imgui-1.92.1/examples/example_sdl3_sdlrenderer3/example_sdl3_sdlrenderer3.vcxproj
+++ /dev/null
@@ -1,186 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="Debug|Win32">
- <Configuration>Debug</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Debug|x64">
- <Configuration>Debug</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|Win32">
- <Configuration>Release</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|x64">
- <Configuration>Release</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- </ItemGroup>
- <PropertyGroup Label="Globals">
- <ProjectGuid>{C0290D21-3AD2-4A35-ABBC-A2F5F48326DA}</ProjectGuid>
- <RootNamespace>example_sdl3_opengl3</RootNamespace>
- <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>true</UseDebugLibraries>
- <CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>true</UseDebugLibraries>
- <CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>false</UseDebugLibraries>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- <CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>false</UseDebugLibraries>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- <CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
- <ImportGroup Label="ExtensionSettings">
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <PropertyGroup Label="UserMacros" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <OutDir>$(ProjectDir)$(Configuration)\</OutDir>
- <IntDir>$(ProjectDir)$(Configuration)\</IntDir>
- <IncludePath>$(IncludePath)</IncludePath>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <OutDir>$(ProjectDir)$(Configuration)\</OutDir>
- <IntDir>$(ProjectDir)$(Configuration)\</IntDir>
- <IncludePath>$(IncludePath)</IncludePath>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <OutDir>$(ProjectDir)$(Configuration)\</OutDir>
- <IntDir>$(ProjectDir)$(Configuration)\</IntDir>
- <IncludePath>$(IncludePath)</IncludePath>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <OutDir>$(ProjectDir)$(Configuration)\</OutDir>
- <IntDir>$(ProjectDir)$(Configuration)\</IntDir>
- <IncludePath>$(IncludePath)</IncludePath>
- </PropertyGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <ClCompile>
- <WarningLevel>Level4</WarningLevel>
- <Optimization>Disabled</Optimization>
- <AdditionalIncludeDirectories>..\..;..\..\backends;%SDL3_DIR%\include;$(VcpkgCurrentInstalledDir)include\SDL3;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
- </ClCompile>
- <Link>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <AdditionalLibraryDirectories>%SDL3_DIR%\lib\x86;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
- <AdditionalDependencies>opengl32.lib;SDL3.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <SubSystem>Console</SubSystem>
- <IgnoreSpecificDefaultLibraries>msvcrt.lib</IgnoreSpecificDefaultLibraries>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <ClCompile>
- <WarningLevel>Level4</WarningLevel>
- <Optimization>Disabled</Optimization>
- <AdditionalIncludeDirectories>..\..;..\..\backends;%SDL3_DIR%\include;$(VcpkgCurrentInstalledDir)include\SDL3;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
- </ClCompile>
- <Link>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <AdditionalLibraryDirectories>%SDL3_DIR%\lib\x64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
- <AdditionalDependencies>opengl32.lib;SDL3.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <SubSystem>Console</SubSystem>
- <IgnoreSpecificDefaultLibraries>msvcrt.lib</IgnoreSpecificDefaultLibraries>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <ClCompile>
- <WarningLevel>Level4</WarningLevel>
- <Optimization>MaxSpeed</Optimization>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <IntrinsicFunctions>true</IntrinsicFunctions>
- <AdditionalIncludeDirectories>..\..;..\..\backends;%SDL3_DIR%\include;$(VcpkgCurrentInstalledDir)include\SDL3;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <BufferSecurityCheck>false</BufferSecurityCheck>
- <AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
- </ClCompile>
- <Link>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- <OptimizeReferences>true</OptimizeReferences>
- <AdditionalLibraryDirectories>%SDL3_DIR%\lib\x86;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
- <AdditionalDependencies>opengl32.lib;SDL3.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <SubSystem>Console</SubSystem>
- <IgnoreSpecificDefaultLibraries>
- </IgnoreSpecificDefaultLibraries>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <ClCompile>
- <WarningLevel>Level4</WarningLevel>
- <Optimization>MaxSpeed</Optimization>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <IntrinsicFunctions>true</IntrinsicFunctions>
- <AdditionalIncludeDirectories>..\..;..\..\backends;%SDL3_DIR%\include;$(VcpkgCurrentInstalledDir)include\SDL3;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <BufferSecurityCheck>false</BufferSecurityCheck>
- <AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
- </ClCompile>
- <Link>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- <OptimizeReferences>true</OptimizeReferences>
- <AdditionalLibraryDirectories>%SDL3_DIR%\lib\x64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
- <AdditionalDependencies>opengl32.lib;SDL3.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <SubSystem>Console</SubSystem>
- <IgnoreSpecificDefaultLibraries>
- </IgnoreSpecificDefaultLibraries>
- </Link>
- </ItemDefinitionGroup>
- <ItemGroup>
- <ClCompile Include="..\..\backends\imgui_impl_sdlrenderer3.cpp" />
- <ClCompile Include="..\..\imgui.cpp" />
- <ClCompile Include="..\..\imgui_demo.cpp" />
- <ClCompile Include="..\..\imgui_draw.cpp" />
- <ClCompile Include="..\..\imgui_tables.cpp" />
- <ClCompile Include="..\..\imgui_widgets.cpp" />
- <ClCompile Include="..\..\backends\imgui_impl_sdl3.cpp" />
- <ClCompile Include="main.cpp" />
- </ItemGroup>
- <ItemGroup>
- <ClInclude Include="..\..\backends\imgui_impl_sdlrenderer3.h" />
- <ClInclude Include="..\..\imconfig.h" />
- <ClInclude Include="..\..\imgui.h" />
- <ClInclude Include="..\..\imgui_internal.h" />
- <ClInclude Include="..\..\backends\imgui_impl_sdl3.h" />
- </ItemGroup>
- <ItemGroup>
- <None Include="..\..\misc\debuggers\imgui.natstepfilter" />
- <None Include="..\..\misc\debuggers\imgui.natvis" />
- <None Include="..\README.txt" />
- </ItemGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
- <ImportGroup Label="ExtensionTargets">
- </ImportGroup>
-</Project> \ No newline at end of file
diff --git a/imgui-1.92.1/examples/example_sdl3_sdlrenderer3/example_sdl3_sdlrenderer3.vcxproj.filters b/imgui-1.92.1/examples/example_sdl3_sdlrenderer3/example_sdl3_sdlrenderer3.vcxproj.filters
deleted file mode 100644
index c41210d..0000000
--- a/imgui-1.92.1/examples/example_sdl3_sdlrenderer3/example_sdl3_sdlrenderer3.vcxproj.filters
+++ /dev/null
@@ -1,64 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup>
- <Filter Include="imgui">
- <UniqueIdentifier>{20b90ce4-7fcb-4731-b9a0-075f875de82d}</UniqueIdentifier>
- </Filter>
- <Filter Include="sources">
- <UniqueIdentifier>{f18ab499-84e1-499f-8eff-9754361e0e52}</UniqueIdentifier>
- <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
- </Filter>
- </ItemGroup>
- <ItemGroup>
- <ClCompile Include="..\..\imgui.cpp">
- <Filter>imgui</Filter>
- </ClCompile>
- <ClCompile Include="..\..\imgui_demo.cpp">
- <Filter>imgui</Filter>
- </ClCompile>
- <ClCompile Include="..\..\imgui_draw.cpp">
- <Filter>imgui</Filter>
- </ClCompile>
- <ClCompile Include="main.cpp">
- <Filter>sources</Filter>
- </ClCompile>
- <ClCompile Include="..\..\backends\imgui_impl_sdl3.cpp">
- <Filter>sources</Filter>
- </ClCompile>
- <ClCompile Include="..\..\imgui_tables.cpp">
- <Filter>imgui</Filter>
- </ClCompile>
- <ClCompile Include="..\..\imgui_widgets.cpp">
- <Filter>imgui</Filter>
- </ClCompile>
- <ClCompile Include="..\..\backends\imgui_impl_sdlrenderer3.cpp">
- <Filter>sources</Filter>
- </ClCompile>
- </ItemGroup>
- <ItemGroup>
- <ClInclude Include="..\..\imconfig.h">
- <Filter>imgui</Filter>
- </ClInclude>
- <ClInclude Include="..\..\imgui.h">
- <Filter>imgui</Filter>
- </ClInclude>
- <ClInclude Include="..\..\imgui_internal.h">
- <Filter>imgui</Filter>
- </ClInclude>
- <ClInclude Include="..\..\backends\imgui_impl_sdl3.h">
- <Filter>sources</Filter>
- </ClInclude>
- <ClInclude Include="..\..\backends\imgui_impl_sdlrenderer3.h">
- <Filter>sources</Filter>
- </ClInclude>
- </ItemGroup>
- <ItemGroup>
- <None Include="..\README.txt" />
- <None Include="..\..\misc\debuggers\imgui.natvis">
- <Filter>imgui</Filter>
- </None>
- <None Include="..\..\misc\debuggers\imgui.natstepfilter">
- <Filter>imgui</Filter>
- </None>
- </ItemGroup>
-</Project> \ No newline at end of file
diff --git a/imgui-1.92.1/examples/example_sdl3_sdlrenderer3/main.cpp b/imgui-1.92.1/examples/example_sdl3_sdlrenderer3/main.cpp
deleted file mode 100644
index 6e39429..0000000
--- a/imgui-1.92.1/examples/example_sdl3_sdlrenderer3/main.cpp
+++ /dev/null
@@ -1,194 +0,0 @@
-// Dear ImGui: standalone example application for SDL3 + SDL_Renderer
-// (SDL is a cross-platform general purpose library for handling windows, inputs, OpenGL/Vulkan/Metal graphics context creation, etc.)
-
-// Learn about Dear ImGui:
-// - FAQ https://dearimgui.com/faq
-// - Getting Started https://dearimgui.com/getting-started
-// - Documentation https://dearimgui.com/docs (same as your local docs/ folder).
-// - Introduction, links and more at the top of imgui.cpp
-
-// Important to understand: SDL_Renderer is an _optional_ component of SDL3.
-// For a multi-platform app consider using e.g. SDL+DirectX on Windows and SDL+OpenGL on Linux/OSX.
-
-#include "imgui.h"
-#include "imgui_impl_sdl3.h"
-#include "imgui_impl_sdlrenderer3.h"
-#include <stdio.h>
-#include <SDL3/SDL.h>
-
-#ifdef __EMSCRIPTEN__
-#include "../libs/emscripten/emscripten_mainloop_stub.h"
-#endif
-
-// Main code
-int main(int, char**)
-{
- // Setup SDL
- // [If using SDL_MAIN_USE_CALLBACKS: all code below until the main loop starts would likely be your SDL_AppInit() function]
- if (!SDL_Init(SDL_INIT_VIDEO | SDL_INIT_GAMEPAD))
- {
- printf("Error: SDL_Init(): %s\n", SDL_GetError());
- return -1;
- }
-
- // Create window with SDL_Renderer graphics context
- float main_scale = SDL_GetDisplayContentScale(SDL_GetPrimaryDisplay());
- SDL_WindowFlags window_flags = SDL_WINDOW_RESIZABLE | SDL_WINDOW_HIDDEN | SDL_WINDOW_HIGH_PIXEL_DENSITY;
- SDL_Window* window = SDL_CreateWindow("Dear ImGui SDL3+SDL_Renderer example", (int)(1280 * main_scale), (int)(720 * main_scale), window_flags);
- if (window == nullptr)
- {
- printf("Error: SDL_CreateWindow(): %s\n", SDL_GetError());
- return -1;
- }
- SDL_Renderer* renderer = SDL_CreateRenderer(window, nullptr);
- SDL_SetRenderVSync(renderer, 1);
- if (renderer == nullptr)
- {
- SDL_Log("Error: SDL_CreateRenderer(): %s\n", SDL_GetError());
- return -1;
- }
- SDL_SetWindowPosition(window, SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED);
- SDL_ShowWindow(window);
-
- // Setup Dear ImGui context
- IMGUI_CHECKVERSION();
- ImGui::CreateContext();
- ImGuiIO& io = ImGui::GetIO(); (void)io;
- io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard; // Enable Keyboard Controls
- io.ConfigFlags |= ImGuiConfigFlags_NavEnableGamepad; // Enable Gamepad Controls
-
- // Setup Dear ImGui style
- ImGui::StyleColorsDark();
- //ImGui::StyleColorsLight();
-
- // Setup scaling
- ImGuiStyle& style = ImGui::GetStyle();
- style.ScaleAllSizes(main_scale); // Bake a fixed style scale. (until we have a solution for dynamic style scaling, changing this requires resetting Style + calling this again)
- style.FontScaleDpi = main_scale; // Set initial font scale. (using io.ConfigDpiScaleFonts=true makes this unnecessary. We leave both here for documentation purpose)
-
- // Setup Platform/Renderer backends
- ImGui_ImplSDL3_InitForSDLRenderer(window, renderer);
- ImGui_ImplSDLRenderer3_Init(renderer);
-
- // Load Fonts
- // - If no fonts are loaded, dear imgui will use the default font. You can also load multiple fonts and use ImGui::PushFont()/PopFont() to select them.
- // - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
- // - If the file cannot be loaded, the function will return a nullptr. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
- // - Use '#define IMGUI_ENABLE_FREETYPE' in your imconfig file to use Freetype for higher quality font rendering.
- // - Read 'docs/FONTS.md' for more instructions and details.
- // - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
- // - Our Emscripten build process allows embedding fonts to be accessible at runtime from the "fonts/" folder. See Makefile.emscripten for details.
- //style.FontSizeBase = 20.0f;
- //io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\segoeui.ttf");
- //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf");
- //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf");
- //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf");
- //ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf");
- //IM_ASSERT(font != nullptr);
-
- // Our state
- bool show_demo_window = true;
- bool show_another_window = false;
- ImVec4 clear_color = ImVec4(0.45f, 0.55f, 0.60f, 1.00f);
-
- // Main loop
- bool done = false;
-#ifdef __EMSCRIPTEN__
- // For an Emscripten build we are disabling file-system access, so let's not attempt to do a fopen() of the imgui.ini file.
- // You may manually call LoadIniSettingsFromMemory() to load settings from your own storage.
- io.IniFilename = nullptr;
- EMSCRIPTEN_MAINLOOP_BEGIN
-#else
- while (!done)
-#endif
- {
- // Poll and handle events (inputs, window resize, etc.)
- // You can read the io.WantCaptureMouse, io.WantCaptureKeyboard flags to tell if dear imgui wants to use your inputs.
- // - When io.WantCaptureMouse is true, do not dispatch mouse input data to your main application, or clear/overwrite your copy of the mouse data.
- // - When io.WantCaptureKeyboard is true, do not dispatch keyboard input data to your main application, or clear/overwrite your copy of the keyboard data.
- // Generally you may always pass all inputs to dear imgui, and hide them from your application based on those two flags.
- // [If using SDL_MAIN_USE_CALLBACKS: call ImGui_ImplSDL3_ProcessEvent() from your SDL_AppEvent() function]
- SDL_Event event;
- while (SDL_PollEvent(&event))
- {
- ImGui_ImplSDL3_ProcessEvent(&event);
- if (event.type == SDL_EVENT_QUIT)
- done = true;
- if (event.type == SDL_EVENT_WINDOW_CLOSE_REQUESTED && event.window.windowID == SDL_GetWindowID(window))
- done = true;
- }
-
- // [If using SDL_MAIN_USE_CALLBACKS: all code below would likely be your SDL_AppIterate() function]
- if (SDL_GetWindowFlags(window) & SDL_WINDOW_MINIMIZED)
- {
- SDL_Delay(10);
- continue;
- }
-
- // Start the Dear ImGui frame
- ImGui_ImplSDLRenderer3_NewFrame();
- ImGui_ImplSDL3_NewFrame();
- ImGui::NewFrame();
-
- // 1. Show the big demo window (Most of the sample code is in ImGui::ShowDemoWindow()! You can browse its code to learn more about Dear ImGui!).
- if (show_demo_window)
- ImGui::ShowDemoWindow(&show_demo_window);
-
- // 2. Show a simple window that we create ourselves. We use a Begin/End pair to create a named window.
- {
- static float f = 0.0f;
- static int counter = 0;
-
- ImGui::Begin("Hello, world!"); // Create a window called "Hello, world!" and append into it.
-
- ImGui::Text("This is some useful text."); // Display some text (you can use a format strings too)
- ImGui::Checkbox("Demo Window", &show_demo_window); // Edit bools storing our window open/close state
- ImGui::Checkbox("Another Window", &show_another_window);
-
- ImGui::SliderFloat("float", &f, 0.0f, 1.0f); // Edit 1 float using a slider from 0.0f to 1.0f
- ImGui::ColorEdit3("clear color", (float*)&clear_color); // Edit 3 floats representing a color
-
- if (ImGui::Button("Button")) // Buttons return true when clicked (most widgets return true when edited/activated)
- counter++;
- ImGui::SameLine();
- ImGui::Text("counter = %d", counter);
-
- ImGui::Text("Application average %.3f ms/frame (%.1f FPS)", 1000.0f / io.Framerate, io.Framerate);
- ImGui::End();
- }
-
- // 3. Show another simple window.
- if (show_another_window)
- {
- ImGui::Begin("Another Window", &show_another_window); // Pass a pointer to our bool variable (the window will have a closing button that will clear the bool when clicked)
- ImGui::Text("Hello from another window!");
- if (ImGui::Button("Close Me"))
- show_another_window = false;
- ImGui::End();
- }
-
- // Rendering
- ImGui::Render();
- SDL_SetRenderScale(renderer, io.DisplayFramebufferScale.x, io.DisplayFramebufferScale.y);
- SDL_SetRenderDrawColorFloat(renderer, clear_color.x, clear_color.y, clear_color.z, clear_color.w);
- SDL_RenderClear(renderer);
- ImGui_ImplSDLRenderer3_RenderDrawData(ImGui::GetDrawData(), renderer);
- SDL_RenderPresent(renderer);
- }
-#ifdef __EMSCRIPTEN__
- EMSCRIPTEN_MAINLOOP_END;
-#endif
-
- // Cleanup
- // [If using SDL_MAIN_USE_CALLBACKS: all code below would likely be your SDL_AppQuit() function]
- ImGui_ImplSDLRenderer3_Shutdown();
- ImGui_ImplSDL3_Shutdown();
- ImGui::DestroyContext();
-
- SDL_DestroyRenderer(renderer);
- SDL_DestroyWindow(window);
- SDL_Quit();
-
- return 0;
-}
diff --git a/imgui-1.92.1/examples/example_sdl3_vulkan/Makefile b/imgui-1.92.1/examples/example_sdl3_vulkan/Makefile
deleted file mode 100644
index e1956ff..0000000
--- a/imgui-1.92.1/examples/example_sdl3_vulkan/Makefile
+++ /dev/null
@@ -1,77 +0,0 @@
-#
-# Cross Platform Makefile
-# Compatible with MSYS2/MINGW, Ubuntu 14.04.1 and Mac OS X
-#
-# You will need SDL3 (http://www.libsdl.org) which is still unreleased/unpackaged.
-# Mac OS X:
-# brew install sdl3
-
-#CXX = g++
-#CXX = clang++
-
-EXE = example_sdl3_vulkan
-IMGUI_DIR = ../..
-SOURCES = main.cpp
-SOURCES += $(IMGUI_DIR)/imgui.cpp $(IMGUI_DIR)/imgui_demo.cpp $(IMGUI_DIR)/imgui_draw.cpp $(IMGUI_DIR)/imgui_tables.cpp $(IMGUI_DIR)/imgui_widgets.cpp
-SOURCES += $(IMGUI_DIR)/backends/imgui_impl_sdl3.cpp $(IMGUI_DIR)/backends/imgui_impl_vulkan.cpp
-OBJS = $(addsuffix .o, $(basename $(notdir $(SOURCES))))
-UNAME_S := $(shell uname -s)
-
-CXXFLAGS = -std=c++11 -I$(IMGUI_DIR) -I$(IMGUI_DIR)/backends
-CXXFLAGS += -g -Wall -Wformat
-LIBS =
-
-
-##---------------------------------------------------------------------
-## BUILD FLAGS PER PLATFORM
-##---------------------------------------------------------------------
-
-ifeq ($(UNAME_S), Linux) #LINUX
- ECHO_MESSAGE = "Linux"
- LIBS += -ldl
- LIBS += `pkg-config --libs sdl3 vulkan`
-
- CXXFLAGS += `pkg-config --cflags sdl3 vulkan`
- CFLAGS = $(CXXFLAGS)
-endif
-
-ifeq ($(UNAME_S), Darwin) #APPLE
- ECHO_MESSAGE = "Mac OS X"
- LIBS += -framework Cocoa -framework IOKit -framework CoreVideo
- LIBS += `pkg-config --libs sdl3 vulkan`
- LIBS += -L/usr/local/lib -L/opt/local/lib
-
- CXXFLAGS += `pkg-config --cflags sdl3 vulkan`
- CXXFLAGS += -I/usr/local/include -I/opt/local/include
- CFLAGS = $(CXXFLAGS)
-endif
-
-ifeq ($(OS), Windows_NT)
- ECHO_MESSAGE = "MinGW"
- LIBS += -lgdi32 -limm32 `pkg-config --static --libs sdl3 vulkan`
-
- CXXFLAGS += `pkg-config --cflags sdl3 vulkan`
- CFLAGS = $(CXXFLAGS)
-endif
-
-##---------------------------------------------------------------------
-## BUILD RULES
-##---------------------------------------------------------------------
-
-%.o:%.cpp
- $(CXX) $(CXXFLAGS) -c -o $@ $<
-
-%.o:$(IMGUI_DIR)/%.cpp
- $(CXX) $(CXXFLAGS) -c -o $@ $<
-
-%.o:$(IMGUI_DIR)/backends/%.cpp
- $(CXX) $(CXXFLAGS) -c -o $@ $<
-
-all: $(EXE)
- @echo Build complete for $(ECHO_MESSAGE)
-
-$(EXE): $(OBJS)
- $(CXX) -o $@ $^ $(CXXFLAGS) $(LIBS)
-
-clean:
- rm -f $(EXE) $(OBJS)
diff --git a/imgui-1.92.1/examples/example_sdl3_vulkan/build_win32.bat b/imgui-1.92.1/examples/example_sdl3_vulkan/build_win32.bat
deleted file mode 100644
index 3e26d30..0000000
--- a/imgui-1.92.1/examples/example_sdl3_vulkan/build_win32.bat
+++ /dev/null
@@ -1,14 +0,0 @@
-@REM Build for Visual Studio compiler. Run your copy of vcvars32.bat or vcvarsall.bat to setup command-line compiler.
-
-@set OUT_EXE=example_sdl3_vulkan
-@set INCLUDES=/I..\.. /I..\..\backends /I%SDL3_DIR%\include /I %VULKAN_SDK%\include
-@set SOURCES=main.cpp ..\..\backends\imgui_impl_sdl3.cpp ..\..\backends\imgui_impl_vulkan.cpp ..\..\imgui*.cpp
-@set LIBS=/LIBPATH:%SDL3_DIR%\lib\x86 /libpath:%VULKAN_SDK%\lib32 SDL3.lib shell32.lib vulkan-1.lib
-
-@set OUT_DIR=Debug
-mkdir %OUT_DIR%
-cl /nologo /Zi /MD /utf-8 %INCLUDES% %SOURCES% /Fe%OUT_DIR%/%OUT_EXE%.exe /Fo%OUT_DIR%/ /link %LIBS% /subsystem:console
-
-@set OUT_DIR=Release
-@REM mkdir %OUT_DIR%
-@REM cl /nologo /Zi /MD /utf-8 /Ox /Oi %INCLUDES% %SOURCES% /Fe%OUT_DIR%/%OUT_EXE%.exe /Fo%OUT_DIR%/ /link %LIBS% /subsystem:console
diff --git a/imgui-1.92.1/examples/example_sdl3_vulkan/build_win64.bat b/imgui-1.92.1/examples/example_sdl3_vulkan/build_win64.bat
deleted file mode 100644
index 5d038d1..0000000
--- a/imgui-1.92.1/examples/example_sdl3_vulkan/build_win64.bat
+++ /dev/null
@@ -1,14 +0,0 @@
-@REM Build for Visual Studio compiler. Run your copy of vcvars64.bat or vcvarsall.bat to setup command-line compiler.
-
-@set OUT_EXE=example_sdl3_vulkan
-@set INCLUDES=/I..\.. /I..\..\backends /I%SDL3_DIR%\include /I %VULKAN_SDK%\include
-@set SOURCES=main.cpp ..\..\backends\imgui_impl_sdl3.cpp ..\..\backends\imgui_impl_vulkan.cpp ..\..\imgui*.cpp
-@set LIBS=/LIBPATH:%SDL3_DIR%\lib\x64 /libpath:%VULKAN_SDK%\lib SDL3.lib shell32.lib vulkan-1.lib
-
-@set OUT_DIR=Debug
-mkdir %OUT_DIR%
-cl /nologo /Zi /MD /utf-8 %INCLUDES% %SOURCES% /Fe%OUT_DIR%/%OUT_EXE%.exe /Fo%OUT_DIR%/ /link %LIBS% /subsystem:console
-
-@set OUT_DIR=Release
-@REM mkdir %OUT_DIR%
-@REM cl /nologo /Zi /MD /utf-8 /Ox /Oi %INCLUDES% %SOURCES% /Fe%OUT_DIR%/%OUT_EXE%.exe /Fo%OUT_DIR%/ /link %LIBS% /subsystem:console
diff --git a/imgui-1.92.1/examples/example_sdl3_vulkan/example_sdl3_vulkan.vcxproj b/imgui-1.92.1/examples/example_sdl3_vulkan/example_sdl3_vulkan.vcxproj
deleted file mode 100644
index d48e4af..0000000
--- a/imgui-1.92.1/examples/example_sdl3_vulkan/example_sdl3_vulkan.vcxproj
+++ /dev/null
@@ -1,190 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="Debug|Win32">
- <Configuration>Debug</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Debug|x64">
- <Configuration>Debug</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|Win32">
- <Configuration>Release</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|x64">
- <Configuration>Release</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- </ItemGroup>
- <PropertyGroup Label="Globals">
- <ProjectGuid>{663A7E89-1E42-4222-921C-177F5B5910DF}</ProjectGuid>
- <RootNamespace>example_sdl3_vulkan</RootNamespace>
- <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>true</UseDebugLibraries>
- <CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>true</UseDebugLibraries>
- <CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>false</UseDebugLibraries>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- <CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>false</UseDebugLibraries>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- <CharacterSet>MultiByte</CharacterSet>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
- <ImportGroup Label="ExtensionSettings">
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <PropertyGroup Label="UserMacros" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <OutDir>$(ProjectDir)$(Configuration)\</OutDir>
- <IntDir>$(ProjectDir)$(Configuration)\</IntDir>
- <IncludePath>$(IncludePath)</IncludePath>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <OutDir>$(ProjectDir)$(Configuration)\</OutDir>
- <IntDir>$(ProjectDir)$(Configuration)\</IntDir>
- <IncludePath>$(IncludePath)</IncludePath>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <OutDir>$(ProjectDir)$(Configuration)\</OutDir>
- <IntDir>$(ProjectDir)$(Configuration)\</IntDir>
- <IncludePath>$(IncludePath)</IncludePath>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <OutDir>$(ProjectDir)$(Configuration)\</OutDir>
- <IntDir>$(ProjectDir)$(Configuration)\</IntDir>
- <IncludePath>$(IncludePath)</IncludePath>
- </PropertyGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <ClCompile>
- <WarningLevel>Level4</WarningLevel>
- <Optimization>Disabled</Optimization>
- <AdditionalIncludeDirectories>..\..;..\..\backends;%VULKAN_SDK%\include;%SDL3_DIR%\include;$(VcpkgCurrentInstalledDir)include\SDL3;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_MBCS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
- </ClCompile>
- <Link>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <AdditionalLibraryDirectories>%VULKAN_SDK%\lib32;%SDL3_DIR%\lib\x86;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
- <AdditionalDependencies>vulkan-1.lib;SDL3.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <SubSystem>Console</SubSystem>
- <IgnoreSpecificDefaultLibraries>msvcrt.lib</IgnoreSpecificDefaultLibraries>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <ClCompile>
- <WarningLevel>Level4</WarningLevel>
- <Optimization>Disabled</Optimization>
- <AdditionalIncludeDirectories>..\..;..\..\backends;%VULKAN_SDK%\include;%SDL3_DIR%\include;$(VcpkgCurrentInstalledDir)include\SDL3;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_MBCS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
- </ClCompile>
- <Link>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <AdditionalLibraryDirectories>%VULKAN_SDK%\lib;%SDL3_DIR%\lib\x64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
- <AdditionalDependencies>vulkan-1.lib;SDL3.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <SubSystem>Console</SubSystem>
- <IgnoreSpecificDefaultLibraries>msvcrt.lib</IgnoreSpecificDefaultLibraries>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <ClCompile>
- <WarningLevel>Level4</WarningLevel>
- <Optimization>MaxSpeed</Optimization>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <IntrinsicFunctions>true</IntrinsicFunctions>
- <AdditionalIncludeDirectories>..\..;..\..\backends;%VULKAN_SDK%\include;%SDL3_DIR%\include;$(VcpkgCurrentInstalledDir)include\SDL3;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <BufferSecurityCheck>false</BufferSecurityCheck>
- <PreprocessorDefinitions>_MBCS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
- </ClCompile>
- <Link>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- <OptimizeReferences>true</OptimizeReferences>
- <AdditionalLibraryDirectories>%VULKAN_SDK%\lib32;%SDL3_DIR%\lib\x86;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
- <AdditionalDependencies>vulkan-1.lib;SDL3.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <SubSystem>Console</SubSystem>
- <IgnoreSpecificDefaultLibraries>
- </IgnoreSpecificDefaultLibraries>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <ClCompile>
- <WarningLevel>Level4</WarningLevel>
- <Optimization>MaxSpeed</Optimization>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <IntrinsicFunctions>true</IntrinsicFunctions>
- <AdditionalIncludeDirectories>..\..;..\..\backends;%VULKAN_SDK%\include;%SDL3_DIR%\include;$(VcpkgCurrentInstalledDir)include\SDL3;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <BufferSecurityCheck>false</BufferSecurityCheck>
- <PreprocessorDefinitions>_MBCS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
- </ClCompile>
- <Link>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- <OptimizeReferences>true</OptimizeReferences>
- <AdditionalLibraryDirectories>%VULKAN_SDK%\lib;%SDL3_DIR%\lib\x64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
- <AdditionalDependencies>vulkan-1.lib;SDL3.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <SubSystem>Console</SubSystem>
- <IgnoreSpecificDefaultLibraries>
- </IgnoreSpecificDefaultLibraries>
- </Link>
- </ItemDefinitionGroup>
- <ItemGroup>
- <ClCompile Include="..\..\imgui.cpp" />
- <ClCompile Include="..\..\imgui_demo.cpp" />
- <ClCompile Include="..\..\imgui_draw.cpp" />
- <ClCompile Include="..\..\imgui_tables.cpp" />
- <ClCompile Include="..\..\imgui_widgets.cpp" />
- <ClCompile Include="..\..\backends\imgui_impl_sdl3.cpp" />
- <ClCompile Include="..\..\backends\imgui_impl_vulkan.cpp" />
- <ClCompile Include="main.cpp" />
- </ItemGroup>
- <ItemGroup>
- <ClInclude Include="..\..\imconfig.h" />
- <ClInclude Include="..\..\imgui.h" />
- <ClInclude Include="..\..\imgui_internal.h" />
- <ClInclude Include="..\..\backends\imgui_impl_sdl3.h" />
- <ClInclude Include="..\..\backends\imgui_impl_vulkan.h" />
- </ItemGroup>
- <ItemGroup>
- <None Include="..\..\misc\debuggers\imgui.natstepfilter" />
- <None Include="..\..\misc\debuggers\imgui.natvis" />
- <None Include="..\README.txt" />
- </ItemGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
- <ImportGroup Label="ExtensionTargets">
- </ImportGroup>
-</Project> \ No newline at end of file
diff --git a/imgui-1.92.1/examples/example_sdl3_vulkan/example_sdl3_vulkan.vcxproj.filters b/imgui-1.92.1/examples/example_sdl3_vulkan/example_sdl3_vulkan.vcxproj.filters
deleted file mode 100644
index 46ebb58..0000000
--- a/imgui-1.92.1/examples/example_sdl3_vulkan/example_sdl3_vulkan.vcxproj.filters
+++ /dev/null
@@ -1,64 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup>
- <Filter Include="imgui">
- <UniqueIdentifier>{20b90ce4-7fcb-4731-b9a0-075f875de82d}</UniqueIdentifier>
- </Filter>
- <Filter Include="sources">
- <UniqueIdentifier>{f18ab499-84e1-499f-8eff-9754361e0e52}</UniqueIdentifier>
- <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
- </Filter>
- </ItemGroup>
- <ItemGroup>
- <ClCompile Include="..\..\imgui.cpp">
- <Filter>imgui</Filter>
- </ClCompile>
- <ClCompile Include="..\..\imgui_demo.cpp">
- <Filter>imgui</Filter>
- </ClCompile>
- <ClCompile Include="..\..\imgui_draw.cpp">
- <Filter>imgui</Filter>
- </ClCompile>
- <ClCompile Include="..\..\backends\imgui_impl_sdl3.cpp">
- <Filter>sources</Filter>
- </ClCompile>
- <ClCompile Include="main.cpp">
- <Filter>sources</Filter>
- </ClCompile>
- <ClCompile Include="..\..\backends\imgui_impl_vulkan.cpp">
- <Filter>sources</Filter>
- </ClCompile>
- <ClCompile Include="..\..\imgui_widgets.cpp">
- <Filter>imgui</Filter>
- </ClCompile>
- <ClCompile Include="..\..\imgui_tables.cpp">
- <Filter>imgui</Filter>
- </ClCompile>
- </ItemGroup>
- <ItemGroup>
- <ClInclude Include="..\..\imconfig.h">
- <Filter>imgui</Filter>
- </ClInclude>
- <ClInclude Include="..\..\imgui.h">
- <Filter>imgui</Filter>
- </ClInclude>
- <ClInclude Include="..\..\imgui_internal.h">
- <Filter>imgui</Filter>
- </ClInclude>
- <ClInclude Include="..\..\backends\imgui_impl_sdl3.h">
- <Filter>sources</Filter>
- </ClInclude>
- <ClInclude Include="..\..\backends\imgui_impl_vulkan.h">
- <Filter>sources</Filter>
- </ClInclude>
- </ItemGroup>
- <ItemGroup>
- <None Include="..\README.txt" />
- <None Include="..\..\misc\debuggers\imgui.natvis">
- <Filter>imgui</Filter>
- </None>
- <None Include="..\..\misc\debuggers\imgui.natstepfilter">
- <Filter>imgui</Filter>
- </None>
- </ItemGroup>
-</Project> \ No newline at end of file
diff --git a/imgui-1.92.1/examples/example_sdl3_vulkan/main.cpp b/imgui-1.92.1/examples/example_sdl3_vulkan/main.cpp
deleted file mode 100644
index df7f5ef..0000000
--- a/imgui-1.92.1/examples/example_sdl3_vulkan/main.cpp
+++ /dev/null
@@ -1,558 +0,0 @@
-// Dear ImGui: standalone example application for SDL3 + Vulkan
-
-// Learn about Dear ImGui:
-// - FAQ https://dearimgui.com/faq
-// - Getting Started https://dearimgui.com/getting-started
-// - Documentation https://dearimgui.com/docs (same as your local docs/ folder).
-// - Introduction, links and more at the top of imgui.cpp
-
-// Important note to the reader who wish to integrate imgui_impl_vulkan.cpp/.h in their own engine/app.
-// - Common ImGui_ImplVulkan_XXX functions and structures are used to interface with imgui_impl_vulkan.cpp/.h.
-// You will use those if you want to use this rendering backend in your engine/app.
-// - Helper ImGui_ImplVulkanH_XXX functions and structures are only used by this example (main.cpp) and by
-// the backend itself (imgui_impl_vulkan.cpp), but should PROBABLY NOT be used by your own engine/app code.
-// Read comments in imgui_impl_vulkan.h.
-
-#include "imgui.h"
-#include "imgui_impl_sdl3.h"
-#include "imgui_impl_vulkan.h"
-#include <stdio.h> // printf, fprintf
-#include <stdlib.h> // abort
-#include <SDL3/SDL.h>
-#include <SDL3/SDL_vulkan.h>
-
-// This example doesn't compile with Emscripten yet! Awaiting SDL3 support.
-#ifdef __EMSCRIPTEN__
-#include "../libs/emscripten/emscripten_mainloop_stub.h"
-#endif
-
-// Volk headers
-#ifdef IMGUI_IMPL_VULKAN_USE_VOLK
-#define VOLK_IMPLEMENTATION
-#include <volk.h>
-#endif
-
-//#define APP_USE_UNLIMITED_FRAME_RATE
-#ifdef _DEBUG
-#define APP_USE_VULKAN_DEBUG_REPORT
-static VkDebugReportCallbackEXT g_DebugReport = VK_NULL_HANDLE;
-#endif
-
-// Data
-static VkAllocationCallbacks* g_Allocator = nullptr;
-static VkInstance g_Instance = VK_NULL_HANDLE;
-static VkPhysicalDevice g_PhysicalDevice = VK_NULL_HANDLE;
-static VkDevice g_Device = VK_NULL_HANDLE;
-static uint32_t g_QueueFamily = (uint32_t)-1;
-static VkQueue g_Queue = VK_NULL_HANDLE;
-static VkPipelineCache g_PipelineCache = VK_NULL_HANDLE;
-static VkDescriptorPool g_DescriptorPool = VK_NULL_HANDLE;
-
-static ImGui_ImplVulkanH_Window g_MainWindowData;
-static uint32_t g_MinImageCount = 2;
-static bool g_SwapChainRebuild = false;
-
-static void check_vk_result(VkResult err)
-{
- if (err == VK_SUCCESS)
- return;
- fprintf(stderr, "[vulkan] Error: VkResult = %d\n", err);
- if (err < 0)
- abort();
-}
-
-#ifdef APP_USE_VULKAN_DEBUG_REPORT
-static VKAPI_ATTR VkBool32 VKAPI_CALL debug_report(VkDebugReportFlagsEXT flags, VkDebugReportObjectTypeEXT objectType, uint64_t object, size_t location, int32_t messageCode, const char* pLayerPrefix, const char* pMessage, void* pUserData)
-{
- (void)flags; (void)object; (void)location; (void)messageCode; (void)pUserData; (void)pLayerPrefix; // Unused arguments
- fprintf(stderr, "[vulkan] Debug report from ObjectType: %i\nMessage: %s\n\n", objectType, pMessage);
- return VK_FALSE;
-}
-#endif // APP_USE_VULKAN_DEBUG_REPORT
-
-static bool IsExtensionAvailable(const ImVector<VkExtensionProperties>& properties, const char* extension)
-{
- for (const VkExtensionProperties& p : properties)
- if (strcmp(p.extensionName, extension) == 0)
- return true;
- return false;
-}
-
-static void SetupVulkan(ImVector<const char*> instance_extensions)
-{
- VkResult err;
-#ifdef IMGUI_IMPL_VULKAN_USE_VOLK
- volkInitialize();
-#endif
-
- // Create Vulkan Instance
- {
- VkInstanceCreateInfo create_info = {};
- create_info.sType = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO;
-
- // Enumerate available extensions
- uint32_t properties_count;
- ImVector<VkExtensionProperties> properties;
- vkEnumerateInstanceExtensionProperties(nullptr, &properties_count, nullptr);
- properties.resize(properties_count);
- err = vkEnumerateInstanceExtensionProperties(nullptr, &properties_count, properties.Data);
- check_vk_result(err);
-
- // Enable required extensions
- if (IsExtensionAvailable(properties, VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME))
- instance_extensions.push_back(VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME);
-#ifdef VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME
- if (IsExtensionAvailable(properties, VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME))
- {
- instance_extensions.push_back(VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME);
- create_info.flags |= VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR;
- }
-#endif
-
- // Enabling validation layers
-#ifdef APP_USE_VULKAN_DEBUG_REPORT
- const char* layers[] = { "VK_LAYER_KHRONOS_validation" };
- create_info.enabledLayerCount = 1;
- create_info.ppEnabledLayerNames = layers;
- instance_extensions.push_back("VK_EXT_debug_report");
-#endif
-
- // Create Vulkan Instance
- create_info.enabledExtensionCount = (uint32_t)instance_extensions.Size;
- create_info.ppEnabledExtensionNames = instance_extensions.Data;
- err = vkCreateInstance(&create_info, g_Allocator, &g_Instance);
- check_vk_result(err);
-#ifdef IMGUI_IMPL_VULKAN_USE_VOLK
- volkLoadInstance(g_Instance);
-#endif
-
- // Setup the debug report callback
-#ifdef APP_USE_VULKAN_DEBUG_REPORT
- auto f_vkCreateDebugReportCallbackEXT = (PFN_vkCreateDebugReportCallbackEXT)vkGetInstanceProcAddr(g_Instance, "vkCreateDebugReportCallbackEXT");
- IM_ASSERT(f_vkCreateDebugReportCallbackEXT != nullptr);
- VkDebugReportCallbackCreateInfoEXT debug_report_ci = {};
- debug_report_ci.sType = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT;
- debug_report_ci.flags = VK_DEBUG_REPORT_ERROR_BIT_EXT | VK_DEBUG_REPORT_WARNING_BIT_EXT | VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT;
- debug_report_ci.pfnCallback = debug_report;
- debug_report_ci.pUserData = nullptr;
- err = f_vkCreateDebugReportCallbackEXT(g_Instance, &debug_report_ci, g_Allocator, &g_DebugReport);
- check_vk_result(err);
-#endif
- }
-
- // Select Physical Device (GPU)
- g_PhysicalDevice = ImGui_ImplVulkanH_SelectPhysicalDevice(g_Instance);
- IM_ASSERT(g_PhysicalDevice != VK_NULL_HANDLE);
-
- // Select graphics queue family
- g_QueueFamily = ImGui_ImplVulkanH_SelectQueueFamilyIndex(g_PhysicalDevice);
- IM_ASSERT(g_QueueFamily != (uint32_t)-1);
-
- // Create Logical Device (with 1 queue)
- {
- ImVector<const char*> device_extensions;
- device_extensions.push_back("VK_KHR_swapchain");
-
- // Enumerate physical device extension
- uint32_t properties_count;
- ImVector<VkExtensionProperties> properties;
- vkEnumerateDeviceExtensionProperties(g_PhysicalDevice, nullptr, &properties_count, nullptr);
- properties.resize(properties_count);
- vkEnumerateDeviceExtensionProperties(g_PhysicalDevice, nullptr, &properties_count, properties.Data);
-#ifdef VK_KHR_PORTABILITY_SUBSET_EXTENSION_NAME
- if (IsExtensionAvailable(properties, VK_KHR_PORTABILITY_SUBSET_EXTENSION_NAME))
- device_extensions.push_back(VK_KHR_PORTABILITY_SUBSET_EXTENSION_NAME);
-#endif
-
- const float queue_priority[] = { 1.0f };
- VkDeviceQueueCreateInfo queue_info[1] = {};
- queue_info[0].sType = VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO;
- queue_info[0].queueFamilyIndex = g_QueueFamily;
- queue_info[0].queueCount = 1;
- queue_info[0].pQueuePriorities = queue_priority;
- VkDeviceCreateInfo create_info = {};
- create_info.sType = VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO;
- create_info.queueCreateInfoCount = sizeof(queue_info) / sizeof(queue_info[0]);
- create_info.pQueueCreateInfos = queue_info;
- create_info.enabledExtensionCount = (uint32_t)device_extensions.Size;
- create_info.ppEnabledExtensionNames = device_extensions.Data;
- err = vkCreateDevice(g_PhysicalDevice, &create_info, g_Allocator, &g_Device);
- check_vk_result(err);
- vkGetDeviceQueue(g_Device, g_QueueFamily, 0, &g_Queue);
- }
-
- // Create Descriptor Pool
- // If you wish to load e.g. additional textures you may need to alter pools sizes and maxSets.
- {
- VkDescriptorPoolSize pool_sizes[] =
- {
- { VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, IMGUI_IMPL_VULKAN_MINIMUM_IMAGE_SAMPLER_POOL_SIZE },
- };
- VkDescriptorPoolCreateInfo pool_info = {};
- pool_info.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO;
- pool_info.flags = VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT;
- pool_info.maxSets = 0;
- for (VkDescriptorPoolSize& pool_size : pool_sizes)
- pool_info.maxSets += pool_size.descriptorCount;
- pool_info.poolSizeCount = (uint32_t)IM_ARRAYSIZE(pool_sizes);
- pool_info.pPoolSizes = pool_sizes;
- err = vkCreateDescriptorPool(g_Device, &pool_info, g_Allocator, &g_DescriptorPool);
- check_vk_result(err);
- }
-}
-
-// All the ImGui_ImplVulkanH_XXX structures/functions are optional helpers used by the demo.
-// Your real engine/app may not use them.
-static void SetupVulkanWindow(ImGui_ImplVulkanH_Window* wd, VkSurfaceKHR surface, int width, int height)
-{
- wd->Surface = surface;
-
- // Check for WSI support
- VkBool32 res;
- vkGetPhysicalDeviceSurfaceSupportKHR(g_PhysicalDevice, g_QueueFamily, wd->Surface, &res);
- if (res != VK_TRUE)
- {
- fprintf(stderr, "Error no WSI support on physical device 0\n");
- exit(-1);
- }
-
- // Select Surface Format
- const VkFormat requestSurfaceImageFormat[] = { VK_FORMAT_B8G8R8A8_UNORM, VK_FORMAT_R8G8B8A8_UNORM, VK_FORMAT_B8G8R8_UNORM, VK_FORMAT_R8G8B8_UNORM };
- const VkColorSpaceKHR requestSurfaceColorSpace = VK_COLORSPACE_SRGB_NONLINEAR_KHR;
- wd->SurfaceFormat = ImGui_ImplVulkanH_SelectSurfaceFormat(g_PhysicalDevice, wd->Surface, requestSurfaceImageFormat, (size_t)IM_ARRAYSIZE(requestSurfaceImageFormat), requestSurfaceColorSpace);
-
- // Select Present Mode
-#ifdef APP_USE_UNLIMITED_FRAME_RATE
- VkPresentModeKHR present_modes[] = { VK_PRESENT_MODE_MAILBOX_KHR, VK_PRESENT_MODE_IMMEDIATE_KHR, VK_PRESENT_MODE_FIFO_KHR };
-#else
- VkPresentModeKHR present_modes[] = { VK_PRESENT_MODE_FIFO_KHR };
-#endif
- wd->PresentMode = ImGui_ImplVulkanH_SelectPresentMode(g_PhysicalDevice, wd->Surface, &present_modes[0], IM_ARRAYSIZE(present_modes));
- //printf("[vulkan] Selected PresentMode = %d\n", wd->PresentMode);
-
- // Create SwapChain, RenderPass, Framebuffer, etc.
- IM_ASSERT(g_MinImageCount >= 2);
- ImGui_ImplVulkanH_CreateOrResizeWindow(g_Instance, g_PhysicalDevice, g_Device, wd, g_QueueFamily, g_Allocator, width, height, g_MinImageCount);
-}
-
-static void CleanupVulkan()
-{
- vkDestroyDescriptorPool(g_Device, g_DescriptorPool, g_Allocator);
-
-#ifdef APP_USE_VULKAN_DEBUG_REPORT
- // Remove the debug report callback
- auto f_vkDestroyDebugReportCallbackEXT = (PFN_vkDestroyDebugReportCallbackEXT)vkGetInstanceProcAddr(g_Instance, "vkDestroyDebugReportCallbackEXT");
- f_vkDestroyDebugReportCallbackEXT(g_Instance, g_DebugReport, g_Allocator);
-#endif // APP_USE_VULKAN_DEBUG_REPORT
-
- vkDestroyDevice(g_Device, g_Allocator);
- vkDestroyInstance(g_Instance, g_Allocator);
-}
-
-static void CleanupVulkanWindow()
-{
- ImGui_ImplVulkanH_DestroyWindow(g_Instance, g_Device, &g_MainWindowData, g_Allocator);
-}
-
-static void FrameRender(ImGui_ImplVulkanH_Window* wd, ImDrawData* draw_data)
-{
- VkSemaphore image_acquired_semaphore = wd->FrameSemaphores[wd->SemaphoreIndex].ImageAcquiredSemaphore;
- VkSemaphore render_complete_semaphore = wd->FrameSemaphores[wd->SemaphoreIndex].RenderCompleteSemaphore;
- VkResult err = vkAcquireNextImageKHR(g_Device, wd->Swapchain, UINT64_MAX, image_acquired_semaphore, VK_NULL_HANDLE, &wd->FrameIndex);
- if (err == VK_ERROR_OUT_OF_DATE_KHR || err == VK_SUBOPTIMAL_KHR)
- g_SwapChainRebuild = true;
- if (err == VK_ERROR_OUT_OF_DATE_KHR)
- return;
- if (err != VK_SUBOPTIMAL_KHR)
- check_vk_result(err);
-
- ImGui_ImplVulkanH_Frame* fd = &wd->Frames[wd->FrameIndex];
- {
- err = vkWaitForFences(g_Device, 1, &fd->Fence, VK_TRUE, UINT64_MAX); // wait indefinitely instead of periodically checking
- check_vk_result(err);
-
- err = vkResetFences(g_Device, 1, &fd->Fence);
- check_vk_result(err);
- }
- {
- err = vkResetCommandPool(g_Device, fd->CommandPool, 0);
- check_vk_result(err);
- VkCommandBufferBeginInfo info = {};
- info.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO;
- info.flags |= VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT;
- err = vkBeginCommandBuffer(fd->CommandBuffer, &info);
- check_vk_result(err);
- }
- {
- VkRenderPassBeginInfo info = {};
- info.sType = VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO;
- info.renderPass = wd->RenderPass;
- info.framebuffer = fd->Framebuffer;
- info.renderArea.extent.width = wd->Width;
- info.renderArea.extent.height = wd->Height;
- info.clearValueCount = 1;
- info.pClearValues = &wd->ClearValue;
- vkCmdBeginRenderPass(fd->CommandBuffer, &info, VK_SUBPASS_CONTENTS_INLINE);
- }
-
- // Record dear imgui primitives into command buffer
- ImGui_ImplVulkan_RenderDrawData(draw_data, fd->CommandBuffer);
-
- // Submit command buffer
- vkCmdEndRenderPass(fd->CommandBuffer);
- {
- VkPipelineStageFlags wait_stage = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT;
- VkSubmitInfo info = {};
- info.sType = VK_STRUCTURE_TYPE_SUBMIT_INFO;
- info.waitSemaphoreCount = 1;
- info.pWaitSemaphores = &image_acquired_semaphore;
- info.pWaitDstStageMask = &wait_stage;
- info.commandBufferCount = 1;
- info.pCommandBuffers = &fd->CommandBuffer;
- info.signalSemaphoreCount = 1;
- info.pSignalSemaphores = &render_complete_semaphore;
-
- err = vkEndCommandBuffer(fd->CommandBuffer);
- check_vk_result(err);
- err = vkQueueSubmit(g_Queue, 1, &info, fd->Fence);
- check_vk_result(err);
- }
-}
-
-static void FramePresent(ImGui_ImplVulkanH_Window* wd)
-{
- if (g_SwapChainRebuild)
- return;
- VkSemaphore render_complete_semaphore = wd->FrameSemaphores[wd->SemaphoreIndex].RenderCompleteSemaphore;
- VkPresentInfoKHR info = {};
- info.sType = VK_STRUCTURE_TYPE_PRESENT_INFO_KHR;
- info.waitSemaphoreCount = 1;
- info.pWaitSemaphores = &render_complete_semaphore;
- info.swapchainCount = 1;
- info.pSwapchains = &wd->Swapchain;
- info.pImageIndices = &wd->FrameIndex;
- VkResult err = vkQueuePresentKHR(g_Queue, &info);
- if (err == VK_ERROR_OUT_OF_DATE_KHR || err == VK_SUBOPTIMAL_KHR)
- g_SwapChainRebuild = true;
- if (err == VK_ERROR_OUT_OF_DATE_KHR)
- return;
- if (err != VK_SUBOPTIMAL_KHR)
- check_vk_result(err);
- wd->SemaphoreIndex = (wd->SemaphoreIndex + 1) % wd->SemaphoreCount; // Now we can use the next set of semaphores
-}
-
-// Main code
-int main(int, char**)
-{
- // Setup SDL
- // [If using SDL_MAIN_USE_CALLBACKS: all code below until the main loop starts would likely be your SDL_AppInit() function]
- if (!SDL_Init(SDL_INIT_VIDEO | SDL_INIT_GAMEPAD))
- {
- printf("Error: SDL_Init(): %s\n", SDL_GetError());
- return -1;
- }
-
- // Create window with Vulkan graphics context
- float main_scale = SDL_GetDisplayContentScale(SDL_GetPrimaryDisplay());
- SDL_WindowFlags window_flags = SDL_WINDOW_VULKAN | SDL_WINDOW_RESIZABLE | SDL_WINDOW_HIDDEN | SDL_WINDOW_HIGH_PIXEL_DENSITY;
- SDL_Window* window = SDL_CreateWindow("Dear ImGui SDL3+Vulkan example", (int)(1280 * main_scale), (int)(720 * main_scale), window_flags);
- if (window == nullptr)
- {
- printf("Error: SDL_CreateWindow(): %s\n", SDL_GetError());
- return -1;
- }
-
- ImVector<const char*> extensions;
- {
- uint32_t sdl_extensions_count = 0;
- const char* const* sdl_extensions = SDL_Vulkan_GetInstanceExtensions(&sdl_extensions_count);
- for (uint32_t n = 0; n < sdl_extensions_count; n++)
- extensions.push_back(sdl_extensions[n]);
- }
- SetupVulkan(extensions);
-
- // Create Window Surface
- VkSurfaceKHR surface;
- VkResult err;
- if (SDL_Vulkan_CreateSurface(window, g_Instance, g_Allocator, &surface) == 0)
- {
- printf("Failed to create Vulkan surface.\n");
- return 1;
- }
-
- // Create Framebuffers
- int w, h;
- SDL_GetWindowSize(window, &w, &h);
- ImGui_ImplVulkanH_Window* wd = &g_MainWindowData;
- SetupVulkanWindow(wd, surface, w, h);
- SDL_SetWindowPosition(window, SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED);
- SDL_ShowWindow(window);
-
- // Setup Dear ImGui context
- IMGUI_CHECKVERSION();
- ImGui::CreateContext();
- ImGuiIO& io = ImGui::GetIO(); (void)io;
- io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard; // Enable Keyboard Controls
- io.ConfigFlags |= ImGuiConfigFlags_NavEnableGamepad; // Enable Gamepad Controls
-
- // Setup Dear ImGui style
- ImGui::StyleColorsDark();
- //ImGui::StyleColorsLight();
-
- // Setup scaling
- ImGuiStyle& style = ImGui::GetStyle();
- style.ScaleAllSizes(main_scale); // Bake a fixed style scale. (until we have a solution for dynamic style scaling, changing this requires resetting Style + calling this again)
- style.FontScaleDpi = main_scale; // Set initial font scale. (using io.ConfigDpiScaleFonts=true makes this unnecessary. We leave both here for documentation purpose)
-
- // Setup Platform/Renderer backends
- ImGui_ImplSDL3_InitForVulkan(window);
- ImGui_ImplVulkan_InitInfo init_info = {};
- //init_info.ApiVersion = VK_API_VERSION_1_3; // Pass in your value of VkApplicationInfo::apiVersion, otherwise will default to header version.
- init_info.Instance = g_Instance;
- init_info.PhysicalDevice = g_PhysicalDevice;
- init_info.Device = g_Device;
- init_info.QueueFamily = g_QueueFamily;
- init_info.Queue = g_Queue;
- init_info.PipelineCache = g_PipelineCache;
- init_info.DescriptorPool = g_DescriptorPool;
- init_info.RenderPass = wd->RenderPass;
- init_info.Subpass = 0;
- init_info.MinImageCount = g_MinImageCount;
- init_info.ImageCount = wd->ImageCount;
- init_info.MSAASamples = VK_SAMPLE_COUNT_1_BIT;
- init_info.Allocator = g_Allocator;
- init_info.CheckVkResultFn = check_vk_result;
- ImGui_ImplVulkan_Init(&init_info);
-
- // Load Fonts
- // - If no fonts are loaded, dear imgui will use the default font. You can also load multiple fonts and use ImGui::PushFont()/PopFont() to select them.
- // - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
- // - If the file cannot be loaded, the function will return a nullptr. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
- // - Use '#define IMGUI_ENABLE_FREETYPE' in your imconfig file to use Freetype for higher quality font rendering.
- // - Read 'docs/FONTS.md' for more instructions and details.
- // - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
- //style.FontSizeBase = 20.0f;
- //io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\segoeui.ttf");
- //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf");
- //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf");
- //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf");
- //ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf");
- //IM_ASSERT(font != nullptr);
-
- // Our state
- bool show_demo_window = true;
- bool show_another_window = false;
- ImVec4 clear_color = ImVec4(0.45f, 0.55f, 0.60f, 1.00f);
-
- // Main loop
- bool done = false;
- while (!done)
- {
- // Poll and handle events (inputs, window resize, etc.)
- // You can read the io.WantCaptureMouse, io.WantCaptureKeyboard flags to tell if dear imgui wants to use your inputs.
- // - When io.WantCaptureMouse is true, do not dispatch mouse input data to your main application, or clear/overwrite your copy of the mouse data.
- // - When io.WantCaptureKeyboard is true, do not dispatch keyboard input data to your main application, or clear/overwrite your copy of the keyboard data.
- // Generally you may always pass all inputs to dear imgui, and hide them from your application based on those two flags.
- // [If using SDL_MAIN_USE_CALLBACKS: call ImGui_ImplSDL3_ProcessEvent() from your SDL_AppEvent() function]
- SDL_Event event;
- while (SDL_PollEvent(&event))
- {
- ImGui_ImplSDL3_ProcessEvent(&event);
- if (event.type == SDL_EVENT_QUIT)
- done = true;
- if (event.type == SDL_EVENT_WINDOW_CLOSE_REQUESTED && event.window.windowID == SDL_GetWindowID(window))
- done = true;
- }
-
- // [If using SDL_MAIN_USE_CALLBACKS: all code below would likely be your SDL_AppIterate() function]
- if (SDL_GetWindowFlags(window) & SDL_WINDOW_MINIMIZED)
- {
- SDL_Delay(10);
- continue;
- }
-
- // Resize swap chain?
- int fb_width, fb_height;
- SDL_GetWindowSize(window, &fb_width, &fb_height);
- if (fb_width > 0 && fb_height > 0 && (g_SwapChainRebuild || g_MainWindowData.Width != fb_width || g_MainWindowData.Height != fb_height))
- {
- ImGui_ImplVulkan_SetMinImageCount(g_MinImageCount);
- ImGui_ImplVulkanH_CreateOrResizeWindow(g_Instance, g_PhysicalDevice, g_Device, &g_MainWindowData, g_QueueFamily, g_Allocator, fb_width, fb_height, g_MinImageCount);
- g_MainWindowData.FrameIndex = 0;
- g_SwapChainRebuild = false;
- }
-
- // Start the Dear ImGui frame
- ImGui_ImplVulkan_NewFrame();
- ImGui_ImplSDL3_NewFrame();
- ImGui::NewFrame();
-
- // 1. Show the big demo window (Most of the sample code is in ImGui::ShowDemoWindow()! You can browse its code to learn more about Dear ImGui!).
- if (show_demo_window)
- ImGui::ShowDemoWindow(&show_demo_window);
-
- // 2. Show a simple window that we create ourselves. We use a Begin/End pair to create a named window.
- {
- static float f = 0.0f;
- static int counter = 0;
-
- ImGui::Begin("Hello, world!"); // Create a window called "Hello, world!" and append into it.
-
- ImGui::Text("This is some useful text."); // Display some text (you can use a format strings too)
- ImGui::Checkbox("Demo Window", &show_demo_window); // Edit bools storing our window open/close state
- ImGui::Checkbox("Another Window", &show_another_window);
-
- ImGui::SliderFloat("float", &f, 0.0f, 1.0f); // Edit 1 float using a slider from 0.0f to 1.0f
- ImGui::ColorEdit3("clear color", (float*)&clear_color); // Edit 3 floats representing a color
-
- if (ImGui::Button("Button")) // Buttons return true when clicked (most widgets return true when edited/activated)
- counter++;
- ImGui::SameLine();
- ImGui::Text("counter = %d", counter);
-
- ImGui::Text("Application average %.3f ms/frame (%.1f FPS)", 1000.0f / io.Framerate, io.Framerate);
- ImGui::End();
- }
-
- // 3. Show another simple window.
- if (show_another_window)
- {
- ImGui::Begin("Another Window", &show_another_window); // Pass a pointer to our bool variable (the window will have a closing button that will clear the bool when clicked)
- ImGui::Text("Hello from another window!");
- if (ImGui::Button("Close Me"))
- show_another_window = false;
- ImGui::End();
- }
-
- // Rendering
- ImGui::Render();
- ImDrawData* draw_data = ImGui::GetDrawData();
- const bool is_minimized = (draw_data->DisplaySize.x <= 0.0f || draw_data->DisplaySize.y <= 0.0f);
- if (!is_minimized)
- {
- wd->ClearValue.color.float32[0] = clear_color.x * clear_color.w;
- wd->ClearValue.color.float32[1] = clear_color.y * clear_color.w;
- wd->ClearValue.color.float32[2] = clear_color.z * clear_color.w;
- wd->ClearValue.color.float32[3] = clear_color.w;
- FrameRender(wd, draw_data);
- FramePresent(wd);
- }
- }
-
- // Cleanup
- // [If using SDL_MAIN_USE_CALLBACKS: all code below would likely be your SDL_AppQuit() function]
- err = vkDeviceWaitIdle(g_Device);
- check_vk_result(err);
- ImGui_ImplVulkan_Shutdown();
- ImGui_ImplSDL3_Shutdown();
- ImGui::DestroyContext();
-
- CleanupVulkanWindow();
- CleanupVulkan();
-
- SDL_DestroyWindow(window);
- SDL_Quit();
-
- return 0;
-}
diff --git a/imgui-1.92.1/examples/example_win32_directx10/build_win32.bat b/imgui-1.92.1/examples/example_win32_directx10/build_win32.bat
deleted file mode 100644
index 78a6e37..0000000
--- a/imgui-1.92.1/examples/example_win32_directx10/build_win32.bat
+++ /dev/null
@@ -1,8 +0,0 @@
-@REM Build for Visual Studio compiler. Run your copy of vcvars32.bat or vcvarsall.bat to setup command-line compiler.
-@set OUT_DIR=Debug
-@set OUT_EXE=example_win32_directx10
-@set INCLUDES=/I..\.. /I..\..\backends /I "%WindowsSdkDir%Include\um" /I "%WindowsSdkDir%Include\shared" /I "%DXSDK_DIR%Include"
-@set SOURCES=main.cpp ..\..\backends\imgui_impl_win32.cpp ..\..\backends\imgui_impl_dx10.cpp ..\..\imgui*.cpp
-@set LIBS=/LIBPATH:"%DXSDK_DIR%/Lib/x86" d3d10.lib d3dcompiler.lib
-mkdir %OUT_DIR%
-cl /nologo /Zi /MD /utf-8 %INCLUDES% /D UNICODE /D _UNICODE %SOURCES% /Fe%OUT_DIR%/%OUT_EXE%.exe /Fo%OUT_DIR%/ /link %LIBS%
diff --git a/imgui-1.92.1/examples/example_win32_directx10/example_win32_directx10.vcxproj b/imgui-1.92.1/examples/example_win32_directx10/example_win32_directx10.vcxproj
deleted file mode 100644
index d11aed8..0000000
--- a/imgui-1.92.1/examples/example_win32_directx10/example_win32_directx10.vcxproj
+++ /dev/null
@@ -1,176 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="Debug|Win32">
- <Configuration>Debug</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Debug|x64">
- <Configuration>Debug</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|Win32">
- <Configuration>Release</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|x64">
- <Configuration>Release</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- </ItemGroup>
- <PropertyGroup Label="Globals">
- <ProjectGuid>{345A953E-A004-4648-B442-DC5F9F11068C}</ProjectGuid>
- <RootNamespace>example_win32_directx10</RootNamespace>
- <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>true</UseDebugLibraries>
- <CharacterSet>Unicode</CharacterSet>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>true</UseDebugLibraries>
- <CharacterSet>Unicode</CharacterSet>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>false</UseDebugLibraries>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- <CharacterSet>Unicode</CharacterSet>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>false</UseDebugLibraries>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- <CharacterSet>Unicode</CharacterSet>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
- <ImportGroup Label="ExtensionSettings">
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <PropertyGroup Label="UserMacros" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <OutDir>$(ProjectDir)$(Configuration)\</OutDir>
- <IntDir>$(ProjectDir)$(Configuration)\</IntDir>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <OutDir>$(ProjectDir)$(Configuration)\</OutDir>
- <IntDir>$(ProjectDir)$(Configuration)\</IntDir>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <OutDir>$(ProjectDir)$(Configuration)\</OutDir>
- <IntDir>$(ProjectDir)$(Configuration)\</IntDir>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <OutDir>$(ProjectDir)$(Configuration)\</OutDir>
- <IntDir>$(ProjectDir)$(Configuration)\</IntDir>
- </PropertyGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <ClCompile>
- <WarningLevel>Level4</WarningLevel>
- <Optimization>Disabled</Optimization>
- <AdditionalIncludeDirectories>..\..;..\..\backends;%(AdditionalIncludeDirectories);</AdditionalIncludeDirectories>
- <AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
- </ClCompile>
- <Link>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <AdditionalDependencies>d3d10.lib;d3dcompiler.lib;dxgi.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <AdditionalLibraryDirectories>$(DXSDK_DIR)/Lib/x86;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
- <SubSystem>Console</SubSystem>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <ClCompile>
- <WarningLevel>Level4</WarningLevel>
- <Optimization>Disabled</Optimization>
- <AdditionalIncludeDirectories>..\..;..\..\backends;%(AdditionalIncludeDirectories);</AdditionalIncludeDirectories>
- <AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
- </ClCompile>
- <Link>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <AdditionalDependencies>d3d10.lib;d3dcompiler.lib;dxgi.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <AdditionalLibraryDirectories>$(DXSDK_DIR)/Lib/x64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
- <SubSystem>Console</SubSystem>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <ClCompile>
- <WarningLevel>Level4</WarningLevel>
- <Optimization>MaxSpeed</Optimization>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <IntrinsicFunctions>true</IntrinsicFunctions>
- <AdditionalIncludeDirectories>..\..;..\..\backends;%(AdditionalIncludeDirectories);</AdditionalIncludeDirectories>
- <BufferSecurityCheck>false</BufferSecurityCheck>
- <AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
- </ClCompile>
- <Link>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- <OptimizeReferences>true</OptimizeReferences>
- <AdditionalDependencies>d3d10.lib;d3dcompiler.lib;dxgi.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <AdditionalLibraryDirectories>$(DXSDK_DIR)/Lib/x86;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
- <SubSystem>Console</SubSystem>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <ClCompile>
- <WarningLevel>Level4</WarningLevel>
- <Optimization>MaxSpeed</Optimization>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <IntrinsicFunctions>true</IntrinsicFunctions>
- <AdditionalIncludeDirectories>..\..;..\..\backends;%(AdditionalIncludeDirectories);</AdditionalIncludeDirectories>
- <BufferSecurityCheck>false</BufferSecurityCheck>
- <AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
- </ClCompile>
- <Link>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- <OptimizeReferences>true</OptimizeReferences>
- <AdditionalDependencies>d3d10.lib;d3dcompiler.lib;dxgi.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <AdditionalLibraryDirectories>$(DXSDK_DIR)/Lib/x64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
- <SubSystem>Console</SubSystem>
- </Link>
- </ItemDefinitionGroup>
- <ItemGroup>
- <ClInclude Include="..\..\imconfig.h" />
- <ClInclude Include="..\..\imgui.h" />
- <ClInclude Include="..\..\imgui_internal.h" />
- <ClInclude Include="..\..\backends\imgui_impl_dx10.h" />
- <ClInclude Include="..\..\backends\imgui_impl_win32.h" />
- </ItemGroup>
- <ItemGroup>
- <ClCompile Include="..\..\imgui.cpp" />
- <ClCompile Include="..\..\imgui_demo.cpp" />
- <ClCompile Include="..\..\imgui_draw.cpp" />
- <ClCompile Include="..\..\imgui_tables.cpp" />
- <ClCompile Include="..\..\imgui_widgets.cpp" />
- <ClCompile Include="..\..\backends\imgui_impl_dx10.cpp" />
- <ClCompile Include="..\..\backends\imgui_impl_win32.cpp" />
- <ClCompile Include="main.cpp" />
- </ItemGroup>
- <ItemGroup>
- <None Include="..\..\misc\debuggers\imgui.natstepfilter" />
- <None Include="..\..\misc\debuggers\imgui.natvis" />
- <None Include="..\README.txt" />
- </ItemGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
- <ImportGroup Label="ExtensionTargets">
- </ImportGroup>
-</Project> \ No newline at end of file
diff --git a/imgui-1.92.1/examples/example_win32_directx10/example_win32_directx10.vcxproj.filters b/imgui-1.92.1/examples/example_win32_directx10/example_win32_directx10.vcxproj.filters
deleted file mode 100644
index 33ab99b..0000000
--- a/imgui-1.92.1/examples/example_win32_directx10/example_win32_directx10.vcxproj.filters
+++ /dev/null
@@ -1,63 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup>
- <Filter Include="imgui">
- <UniqueIdentifier>{0587d7a3-f2ce-4d56-b84f-a0005d3bfce6}</UniqueIdentifier>
- </Filter>
- <Filter Include="sources">
- <UniqueIdentifier>{08e36723-ce4f-4cff-9662-c40801cf1acf}</UniqueIdentifier>
- </Filter>
- </ItemGroup>
- <ItemGroup>
- <ClInclude Include="..\..\imconfig.h">
- <Filter>imgui</Filter>
- </ClInclude>
- <ClInclude Include="..\..\imgui.h">
- <Filter>imgui</Filter>
- </ClInclude>
- <ClInclude Include="..\..\imgui_internal.h">
- <Filter>imgui</Filter>
- </ClInclude>
- <ClInclude Include="..\..\backends\imgui_impl_dx10.h">
- <Filter>sources</Filter>
- </ClInclude>
- <ClInclude Include="..\..\backends\imgui_impl_win32.h">
- <Filter>sources</Filter>
- </ClInclude>
- </ItemGroup>
- <ItemGroup>
- <ClCompile Include="..\..\imgui.cpp">
- <Filter>imgui</Filter>
- </ClCompile>
- <ClCompile Include="main.cpp">
- <Filter>sources</Filter>
- </ClCompile>
- <ClCompile Include="..\..\imgui_demo.cpp">
- <Filter>imgui</Filter>
- </ClCompile>
- <ClCompile Include="..\..\imgui_draw.cpp">
- <Filter>imgui</Filter>
- </ClCompile>
- <ClCompile Include="..\..\backends\imgui_impl_dx10.cpp">
- <Filter>sources</Filter>
- </ClCompile>
- <ClCompile Include="..\..\backends\imgui_impl_win32.cpp">
- <Filter>sources</Filter>
- </ClCompile>
- <ClCompile Include="..\..\imgui_tables.cpp">
- <Filter>imgui</Filter>
- </ClCompile>
- <ClCompile Include="..\..\imgui_widgets.cpp">
- <Filter>imgui</Filter>
- </ClCompile>
- </ItemGroup>
- <ItemGroup>
- <None Include="..\README.txt" />
- <None Include="..\..\misc\debuggers\imgui.natvis">
- <Filter>imgui</Filter>
- </None>
- <None Include="..\..\misc\debuggers\imgui.natstepfilter">
- <Filter>imgui</Filter>
- </None>
- </ItemGroup>
-</Project> \ No newline at end of file
diff --git a/imgui-1.92.1/examples/example_win32_directx10/main.cpp b/imgui-1.92.1/examples/example_win32_directx10/main.cpp
deleted file mode 100644
index 23033d6..0000000
--- a/imgui-1.92.1/examples/example_win32_directx10/main.cpp
+++ /dev/null
@@ -1,279 +0,0 @@
-// Dear ImGui: standalone example application for DirectX 10
-
-// Learn about Dear ImGui:
-// - FAQ https://dearimgui.com/faq
-// - Getting Started https://dearimgui.com/getting-started
-// - Documentation https://dearimgui.com/docs (same as your local docs/ folder).
-// - Introduction, links and more at the top of imgui.cpp
-
-#include "imgui.h"
-#include "imgui_impl_win32.h"
-#include "imgui_impl_dx10.h"
-#include <d3d10_1.h>
-#include <d3d10.h>
-#include <tchar.h>
-
-// Data
-static ID3D10Device* g_pd3dDevice = nullptr;
-static IDXGISwapChain* g_pSwapChain = nullptr;
-static bool g_SwapChainOccluded = false;
-static UINT g_ResizeWidth = 0, g_ResizeHeight = 0;
-static ID3D10RenderTargetView* g_mainRenderTargetView = nullptr;
-
-// Forward declarations of helper functions
-bool CreateDeviceD3D(HWND hWnd);
-void CleanupDeviceD3D();
-void CreateRenderTarget();
-void CleanupRenderTarget();
-LRESULT WINAPI WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);
-
-// Main code
-int main(int, char**)
-{
- // Make process DPI aware and obtain main monitor scale
- ImGui_ImplWin32_EnableDpiAwareness();
- float main_scale = ImGui_ImplWin32_GetDpiScaleForMonitor(::MonitorFromPoint(POINT{ 0, 0 }, MONITOR_DEFAULTTOPRIMARY));
-
- // Create application window
- WNDCLASSEXW wc = { sizeof(wc), CS_CLASSDC, WndProc, 0L, 0L, GetModuleHandle(nullptr), nullptr, nullptr, nullptr, nullptr, L"ImGui Example", nullptr };
- ::RegisterClassExW(&wc);
- HWND hwnd = ::CreateWindowW(wc.lpszClassName, L"Dear ImGui DirectX10 Example", WS_OVERLAPPEDWINDOW, 100, 100, (int)(1280 * main_scale), (int)(800 * main_scale), nullptr, nullptr, wc.hInstance, nullptr);
-
- // Initialize Direct3D
- if (!CreateDeviceD3D(hwnd))
- {
- CleanupDeviceD3D();
- ::UnregisterClassW(wc.lpszClassName, wc.hInstance);
- return 1;
- }
-
- // Show the window
- ::ShowWindow(hwnd, SW_SHOWDEFAULT);
- ::UpdateWindow(hwnd);
-
- // Setup Dear ImGui context
- IMGUI_CHECKVERSION();
- ImGui::CreateContext();
- ImGuiIO& io = ImGui::GetIO(); (void)io;
- io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard; // Enable Keyboard Controls
- io.ConfigFlags |= ImGuiConfigFlags_NavEnableGamepad; // Enable Gamepad Controls
-
- // Setup Dear ImGui style
- ImGui::StyleColorsDark();
- //ImGui::StyleColorsLight();
-
- // Setup scaling
- ImGuiStyle& style = ImGui::GetStyle();
- style.ScaleAllSizes(main_scale); // Bake a fixed style scale. (until we have a solution for dynamic style scaling, changing this requires resetting Style + calling this again)
- style.FontScaleDpi = main_scale; // Set initial font scale. (using io.ConfigDpiScaleFonts=true makes this unnecessary. We leave both here for documentation purpose)
-
- // Setup Platform/Renderer backends
- ImGui_ImplWin32_Init(hwnd);
- ImGui_ImplDX10_Init(g_pd3dDevice);
-
- // Load Fonts
- // - If no fonts are loaded, dear imgui will use the default font. You can also load multiple fonts and use ImGui::PushFont()/PopFont() to select them.
- // - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
- // - If the file cannot be loaded, the function will return a nullptr. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
- // - Use '#define IMGUI_ENABLE_FREETYPE' in your imconfig file to use Freetype for higher quality font rendering.
- // - Read 'docs/FONTS.md' for more instructions and details.
- // - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
- //style.FontSizeBase = 20.0f;
- //io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\segoeui.ttf");
- //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf");
- //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf");
- //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf");
- //ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf");
- //IM_ASSERT(font != nullptr);
-
- // Our state
- bool show_demo_window = true;
- bool show_another_window = false;
- ImVec4 clear_color = ImVec4(0.45f, 0.55f, 0.60f, 1.00f);
-
- // Main loop
- bool done = false;
- while (!done)
- {
- // Poll and handle messages (inputs, window resize, etc.)
- // See the WndProc() function below for our to dispatch events to the Win32 backend.
- MSG msg;
- while (::PeekMessage(&msg, nullptr, 0U, 0U, PM_REMOVE))
- {
- ::TranslateMessage(&msg);
- ::DispatchMessage(&msg);
- if (msg.message == WM_QUIT)
- done = true;
- }
- if (done)
- break;
-
- // Handle window being minimized or screen locked
- if (g_SwapChainOccluded && g_pSwapChain->Present(0, DXGI_PRESENT_TEST) == DXGI_STATUS_OCCLUDED)
- {
- ::Sleep(10);
- continue;
- }
- g_SwapChainOccluded = false;
-
- // Handle window resize (we don't resize directly in the WM_SIZE handler)
- if (g_ResizeWidth != 0 && g_ResizeHeight != 0)
- {
- CleanupRenderTarget();
- g_pSwapChain->ResizeBuffers(0, g_ResizeWidth, g_ResizeHeight, DXGI_FORMAT_UNKNOWN, 0);
- g_ResizeWidth = g_ResizeHeight = 0;
- CreateRenderTarget();
- }
-
- // Start the Dear ImGui frame
- ImGui_ImplDX10_NewFrame();
- ImGui_ImplWin32_NewFrame();
- ImGui::NewFrame();
-
- // 1. Show the big demo window (Most of the sample code is in ImGui::ShowDemoWindow()! You can browse its code to learn more about Dear ImGui!).
- if (show_demo_window)
- ImGui::ShowDemoWindow(&show_demo_window);
-
- // 2. Show a simple window that we create ourselves. We use a Begin/End pair to create a named window.
- {
- static float f = 0.0f;
- static int counter = 0;
-
- ImGui::Begin("Hello, world!"); // Create a window called "Hello, world!" and append into it.
-
- ImGui::Text("This is some useful text."); // Display some text (you can use a format strings too)
- ImGui::Checkbox("Demo Window", &show_demo_window); // Edit bools storing our window open/close state
- ImGui::Checkbox("Another Window", &show_another_window);
-
- ImGui::SliderFloat("float", &f, 0.0f, 1.0f); // Edit 1 float using a slider from 0.0f to 1.0f
- ImGui::ColorEdit3("clear color", (float*)&clear_color); // Edit 3 floats representing a color
-
- if (ImGui::Button("Button")) // Buttons return true when clicked (most widgets return true when edited/activated)
- counter++;
- ImGui::SameLine();
- ImGui::Text("counter = %d", counter);
-
- ImGui::Text("Application average %.3f ms/frame (%.1f FPS)", 1000.0f / io.Framerate, io.Framerate);
- ImGui::End();
- }
-
- // 3. Show another simple window.
- if (show_another_window)
- {
- ImGui::Begin("Another Window", &show_another_window); // Pass a pointer to our bool variable (the window will have a closing button that will clear the bool when clicked)
- ImGui::Text("Hello from another window!");
- if (ImGui::Button("Close Me"))
- show_another_window = false;
- ImGui::End();
- }
-
- // Rendering
- ImGui::Render();
- const float clear_color_with_alpha[4] = { clear_color.x * clear_color.w, clear_color.y * clear_color.w, clear_color.z * clear_color.w, clear_color.w };
- g_pd3dDevice->OMSetRenderTargets(1, &g_mainRenderTargetView, nullptr);
- g_pd3dDevice->ClearRenderTargetView(g_mainRenderTargetView, clear_color_with_alpha);
- ImGui_ImplDX10_RenderDrawData(ImGui::GetDrawData());
-
- // Present
- HRESULT hr = g_pSwapChain->Present(1, 0); // Present with vsync
- //HRESULT hr = g_pSwapChain->Present(0, 0); // Present without vsync
- g_SwapChainOccluded = (hr == DXGI_STATUS_OCCLUDED);
- }
-
- // Cleanup
- ImGui_ImplDX10_Shutdown();
- ImGui_ImplWin32_Shutdown();
- ImGui::DestroyContext();
-
- CleanupDeviceD3D();
- ::DestroyWindow(hwnd);
- ::UnregisterClassW(wc.lpszClassName, wc.hInstance);
-
- return 0;
-}
-
-// Helper functions
-
-bool CreateDeviceD3D(HWND hWnd)
-{
- // Setup swap chain
- DXGI_SWAP_CHAIN_DESC sd;
- ZeroMemory(&sd, sizeof(sd));
- sd.BufferCount = 2;
- sd.BufferDesc.Width = 0;
- sd.BufferDesc.Height = 0;
- sd.BufferDesc.Format = DXGI_FORMAT_R8G8B8A8_UNORM;
- sd.BufferDesc.RefreshRate.Numerator = 60;
- sd.BufferDesc.RefreshRate.Denominator = 1;
- sd.Flags = DXGI_SWAP_CHAIN_FLAG_ALLOW_MODE_SWITCH;
- sd.BufferUsage = DXGI_USAGE_RENDER_TARGET_OUTPUT;
- sd.OutputWindow = hWnd;
- sd.SampleDesc.Count = 1;
- sd.SampleDesc.Quality = 0;
- sd.Windowed = TRUE;
- sd.SwapEffect = DXGI_SWAP_EFFECT_DISCARD;
-
- UINT createDeviceFlags = 0;
- //createDeviceFlags |= D3D10_CREATE_DEVICE_DEBUG;
- HRESULT res = D3D10CreateDeviceAndSwapChain(nullptr, D3D10_DRIVER_TYPE_HARDWARE, nullptr, createDeviceFlags, D3D10_SDK_VERSION, &sd, &g_pSwapChain, &g_pd3dDevice);
- if (res == DXGI_ERROR_UNSUPPORTED) // Try high-performance WARP software driver if hardware is not available.
- res = D3D10CreateDeviceAndSwapChain(nullptr, D3D10_DRIVER_TYPE_WARP, nullptr, createDeviceFlags, D3D10_SDK_VERSION, &sd, &g_pSwapChain, &g_pd3dDevice);
- if (res != S_OK)
- return false;
-
- CreateRenderTarget();
- return true;
-}
-
-void CleanupDeviceD3D()
-{
- CleanupRenderTarget();
- if (g_pSwapChain) { g_pSwapChain->Release(); g_pSwapChain = nullptr; }
- if (g_pd3dDevice) { g_pd3dDevice->Release(); g_pd3dDevice = nullptr; }
-}
-
-void CreateRenderTarget()
-{
- ID3D10Texture2D* pBackBuffer;
- g_pSwapChain->GetBuffer(0, IID_PPV_ARGS(&pBackBuffer));
- g_pd3dDevice->CreateRenderTargetView(pBackBuffer, nullptr, &g_mainRenderTargetView);
- pBackBuffer->Release();
-}
-
-void CleanupRenderTarget()
-{
- if (g_mainRenderTargetView) { g_mainRenderTargetView->Release(); g_mainRenderTargetView = nullptr; }
-}
-
-// Forward declare message handler from imgui_impl_win32.cpp
-extern IMGUI_IMPL_API LRESULT ImGui_ImplWin32_WndProcHandler(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);
-
-// Win32 message handler
-// You can read the io.WantCaptureMouse, io.WantCaptureKeyboard flags to tell if dear imgui wants to use your inputs.
-// - When io.WantCaptureMouse is true, do not dispatch mouse input data to your main application, or clear/overwrite your copy of the mouse data.
-// - When io.WantCaptureKeyboard is true, do not dispatch keyboard input data to your main application, or clear/overwrite your copy of the keyboard data.
-// Generally you may always pass all inputs to dear imgui, and hide them from your application based on those two flags.
-LRESULT WINAPI WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
-{
- if (ImGui_ImplWin32_WndProcHandler(hWnd, msg, wParam, lParam))
- return true;
-
- switch (msg)
- {
- case WM_SIZE:
- if (wParam == SIZE_MINIMIZED)
- return 0;
- g_ResizeWidth = (UINT)LOWORD(lParam); // Queue resize
- g_ResizeHeight = (UINT)HIWORD(lParam);
- return 0;
- case WM_SYSCOMMAND:
- if ((wParam & 0xfff0) == SC_KEYMENU) // Disable ALT application menu
- return 0;
- break;
- case WM_DESTROY:
- ::PostQuitMessage(0);
- return 0;
- }
- return ::DefWindowProcW(hWnd, msg, wParam, lParam);
-}
diff --git a/imgui-1.92.1/examples/example_win32_directx11/build_win32.bat b/imgui-1.92.1/examples/example_win32_directx11/build_win32.bat
deleted file mode 100644
index c9a717c..0000000
--- a/imgui-1.92.1/examples/example_win32_directx11/build_win32.bat
+++ /dev/null
@@ -1,9 +0,0 @@
-@REM Build for Visual Studio compiler. Run your copy of vcvars32.bat or vcvarsall.bat to setup command-line compiler.
-@set OUT_DIR=Debug
-@set OUT_EXE=example_win32_directx11
-@set INCLUDES=/I..\.. /I..\..\backends /I "%WindowsSdkDir%Include\um" /I "%WindowsSdkDir%Include\shared" /I "%DXSDK_DIR%Include"
-@set SOURCES=main.cpp ..\..\backends\imgui_impl_dx11.cpp ..\..\backends\imgui_impl_win32.cpp ..\..\imgui*.cpp
-@set LIBS=/LIBPATH:"%DXSDK_DIR%/Lib/x86" d3d11.lib d3dcompiler.lib
-mkdir %OUT_DIR%
-cl /nologo /Zi /MD /utf-8 %INCLUDES% /D UNICODE /D _UNICODE %SOURCES% /Fe%OUT_DIR%/%OUT_EXE%.exe /Fo%OUT_DIR%/ /link %LIBS%
-
diff --git a/imgui-1.92.1/examples/example_win32_directx11/example_win32_directx11.vcxproj b/imgui-1.92.1/examples/example_win32_directx11/example_win32_directx11.vcxproj
deleted file mode 100644
index bace6a2..0000000
--- a/imgui-1.92.1/examples/example_win32_directx11/example_win32_directx11.vcxproj
+++ /dev/null
@@ -1,175 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="Debug|Win32">
- <Configuration>Debug</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Debug|x64">
- <Configuration>Debug</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|Win32">
- <Configuration>Release</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|x64">
- <Configuration>Release</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- </ItemGroup>
- <PropertyGroup Label="Globals">
- <ProjectGuid>{9F316E83-5AE5-4939-A723-305A94F48005}</ProjectGuid>
- <RootNamespace>example_win32_directx11</RootNamespace>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>true</UseDebugLibraries>
- <CharacterSet>Unicode</CharacterSet>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>true</UseDebugLibraries>
- <CharacterSet>Unicode</CharacterSet>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>false</UseDebugLibraries>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- <CharacterSet>Unicode</CharacterSet>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>false</UseDebugLibraries>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- <CharacterSet>Unicode</CharacterSet>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
- <ImportGroup Label="ExtensionSettings">
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <PropertyGroup Label="UserMacros" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <OutDir>$(ProjectDir)$(Configuration)\</OutDir>
- <IntDir>$(ProjectDir)$(Configuration)\</IntDir>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <OutDir>$(ProjectDir)$(Configuration)\</OutDir>
- <IntDir>$(ProjectDir)$(Configuration)\</IntDir>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <OutDir>$(ProjectDir)$(Configuration)\</OutDir>
- <IntDir>$(ProjectDir)$(Configuration)\</IntDir>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <OutDir>$(ProjectDir)$(Configuration)\</OutDir>
- <IntDir>$(ProjectDir)$(Configuration)\</IntDir>
- </PropertyGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <ClCompile>
- <WarningLevel>Level4</WarningLevel>
- <Optimization>Disabled</Optimization>
- <AdditionalIncludeDirectories>..\..;..\..\backends;%(AdditionalIncludeDirectories);</AdditionalIncludeDirectories>
- <AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
- </ClCompile>
- <Link>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <AdditionalDependencies>d3d11.lib;d3dcompiler.lib;dxgi.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <AdditionalLibraryDirectories>$(DXSDK_DIR)/Lib/x86;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
- <SubSystem>Console</SubSystem>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <ClCompile>
- <WarningLevel>Level4</WarningLevel>
- <Optimization>Disabled</Optimization>
- <AdditionalIncludeDirectories>..\..;..\..\backends;%(AdditionalIncludeDirectories);</AdditionalIncludeDirectories>
- <AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
- </ClCompile>
- <Link>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <AdditionalDependencies>d3d11.lib;d3dcompiler.lib;dxgi.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <AdditionalLibraryDirectories>$(DXSDK_DIR)/Lib/x64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
- <SubSystem>Console</SubSystem>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <ClCompile>
- <WarningLevel>Level4</WarningLevel>
- <Optimization>MaxSpeed</Optimization>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <IntrinsicFunctions>true</IntrinsicFunctions>
- <AdditionalIncludeDirectories>..\..;..\..\backends;%(AdditionalIncludeDirectories);</AdditionalIncludeDirectories>
- <BufferSecurityCheck>false</BufferSecurityCheck>
- <AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
- </ClCompile>
- <Link>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- <OptimizeReferences>true</OptimizeReferences>
- <AdditionalDependencies>d3d11.lib;d3dcompiler.lib;dxgi.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <AdditionalLibraryDirectories>$(DXSDK_DIR)/Lib/x86;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
- <SubSystem>Console</SubSystem>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <ClCompile>
- <WarningLevel>Level4</WarningLevel>
- <Optimization>MaxSpeed</Optimization>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <IntrinsicFunctions>true</IntrinsicFunctions>
- <AdditionalIncludeDirectories>..\..;..\..\backends;%(AdditionalIncludeDirectories);</AdditionalIncludeDirectories>
- <BufferSecurityCheck>false</BufferSecurityCheck>
- <AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
- </ClCompile>
- <Link>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- <OptimizeReferences>true</OptimizeReferences>
- <AdditionalDependencies>d3d11.lib;d3dcompiler.lib;dxgi.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <AdditionalLibraryDirectories>$(DXSDK_DIR)/Lib/x64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
- <SubSystem>Console</SubSystem>
- </Link>
- </ItemDefinitionGroup>
- <ItemGroup>
- <ClInclude Include="..\..\imconfig.h" />
- <ClInclude Include="..\..\imgui.h" />
- <ClInclude Include="..\..\imgui_internal.h" />
- <ClInclude Include="..\..\backends\imgui_impl_dx11.h" />
- <ClInclude Include="..\..\backends\imgui_impl_win32.h" />
- </ItemGroup>
- <ItemGroup>
- <ClCompile Include="..\..\imgui.cpp" />
- <ClCompile Include="..\..\imgui_demo.cpp" />
- <ClCompile Include="..\..\imgui_draw.cpp" />
- <ClCompile Include="..\..\imgui_tables.cpp" />
- <ClCompile Include="..\..\imgui_widgets.cpp" />
- <ClCompile Include="..\..\backends\imgui_impl_dx11.cpp" />
- <ClCompile Include="..\..\backends\imgui_impl_win32.cpp" />
- <ClCompile Include="main.cpp" />
- </ItemGroup>
- <ItemGroup>
- <None Include="..\..\misc\debuggers\imgui.natstepfilter" />
- <None Include="..\..\misc\debuggers\imgui.natvis" />
- <None Include="..\README.txt" />
- </ItemGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
- <ImportGroup Label="ExtensionTargets">
- </ImportGroup>
-</Project> \ No newline at end of file
diff --git a/imgui-1.92.1/examples/example_win32_directx11/example_win32_directx11.vcxproj.filters b/imgui-1.92.1/examples/example_win32_directx11/example_win32_directx11.vcxproj.filters
deleted file mode 100644
index 63032a6..0000000
--- a/imgui-1.92.1/examples/example_win32_directx11/example_win32_directx11.vcxproj.filters
+++ /dev/null
@@ -1,63 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup>
- <Filter Include="imgui">
- <UniqueIdentifier>{0587d7a3-f2ce-4d56-b84f-a0005d3bfce6}</UniqueIdentifier>
- </Filter>
- <Filter Include="sources">
- <UniqueIdentifier>{08e36723-ce4f-4cff-9662-c40801cf1acf}</UniqueIdentifier>
- </Filter>
- </ItemGroup>
- <ItemGroup>
- <ClInclude Include="..\..\imconfig.h">
- <Filter>imgui</Filter>
- </ClInclude>
- <ClInclude Include="..\..\imgui.h">
- <Filter>imgui</Filter>
- </ClInclude>
- <ClInclude Include="..\..\imgui_internal.h">
- <Filter>imgui</Filter>
- </ClInclude>
- <ClInclude Include="..\..\backends\imgui_impl_win32.h">
- <Filter>sources</Filter>
- </ClInclude>
- <ClInclude Include="..\..\backends\imgui_impl_dx11.h">
- <Filter>sources</Filter>
- </ClInclude>
- </ItemGroup>
- <ItemGroup>
- <ClCompile Include="..\..\imgui.cpp">
- <Filter>imgui</Filter>
- </ClCompile>
- <ClCompile Include="main.cpp">
- <Filter>sources</Filter>
- </ClCompile>
- <ClCompile Include="..\..\imgui_demo.cpp">
- <Filter>imgui</Filter>
- </ClCompile>
- <ClCompile Include="..\..\imgui_draw.cpp">
- <Filter>imgui</Filter>
- </ClCompile>
- <ClCompile Include="..\..\imgui_widgets.cpp">
- <Filter>imgui</Filter>
- </ClCompile>
- <ClCompile Include="..\..\backends\imgui_impl_win32.cpp">
- <Filter>sources</Filter>
- </ClCompile>
- <ClCompile Include="..\..\backends\imgui_impl_dx11.cpp">
- <Filter>sources</Filter>
- </ClCompile>
- <ClCompile Include="..\..\imgui_tables.cpp">
- <Filter>imgui</Filter>
- </ClCompile>
- </ItemGroup>
- <ItemGroup>
- <None Include="..\README.txt" />
- <None Include="..\..\misc\debuggers\imgui.natvis">
- <Filter>imgui</Filter>
- </None>
- <None Include="..\..\misc\debuggers\imgui.natstepfilter">
- <Filter>imgui</Filter>
- </None>
- </ItemGroup>
-</Project> \ No newline at end of file
diff --git a/imgui-1.92.1/examples/example_win32_directx11/main.cpp b/imgui-1.92.1/examples/example_win32_directx11/main.cpp
deleted file mode 100644
index c80114c..0000000
--- a/imgui-1.92.1/examples/example_win32_directx11/main.cpp
+++ /dev/null
@@ -1,282 +0,0 @@
-// Dear ImGui: standalone example application for DirectX 11
-
-// Learn about Dear ImGui:
-// - FAQ https://dearimgui.com/faq
-// - Getting Started https://dearimgui.com/getting-started
-// - Documentation https://dearimgui.com/docs (same as your local docs/ folder).
-// - Introduction, links and more at the top of imgui.cpp
-
-#include "imgui.h"
-#include "imgui_impl_win32.h"
-#include "imgui_impl_dx11.h"
-#include <d3d11.h>
-#include <tchar.h>
-
-// Data
-static ID3D11Device* g_pd3dDevice = nullptr;
-static ID3D11DeviceContext* g_pd3dDeviceContext = nullptr;
-static IDXGISwapChain* g_pSwapChain = nullptr;
-static bool g_SwapChainOccluded = false;
-static UINT g_ResizeWidth = 0, g_ResizeHeight = 0;
-static ID3D11RenderTargetView* g_mainRenderTargetView = nullptr;
-
-// Forward declarations of helper functions
-bool CreateDeviceD3D(HWND hWnd);
-void CleanupDeviceD3D();
-void CreateRenderTarget();
-void CleanupRenderTarget();
-LRESULT WINAPI WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);
-
-// Main code
-int main(int, char**)
-{
- // Make process DPI aware and obtain main monitor scale
- ImGui_ImplWin32_EnableDpiAwareness();
- float main_scale = ImGui_ImplWin32_GetDpiScaleForMonitor(::MonitorFromPoint(POINT{ 0, 0 }, MONITOR_DEFAULTTOPRIMARY));
-
- // Create application window
- WNDCLASSEXW wc = { sizeof(wc), CS_CLASSDC, WndProc, 0L, 0L, GetModuleHandle(nullptr), nullptr, nullptr, nullptr, nullptr, L"ImGui Example", nullptr };
- ::RegisterClassExW(&wc);
- HWND hwnd = ::CreateWindowW(wc.lpszClassName, L"Dear ImGui DirectX11 Example", WS_OVERLAPPEDWINDOW, 100, 100, (int)(1280 * main_scale), (int)(800 * main_scale), nullptr, nullptr, wc.hInstance, nullptr);
-
- // Initialize Direct3D
- if (!CreateDeviceD3D(hwnd))
- {
- CleanupDeviceD3D();
- ::UnregisterClassW(wc.lpszClassName, wc.hInstance);
- return 1;
- }
-
- // Show the window
- ::ShowWindow(hwnd, SW_SHOWDEFAULT);
- ::UpdateWindow(hwnd);
-
- // Setup Dear ImGui context
- IMGUI_CHECKVERSION();
- ImGui::CreateContext();
- ImGuiIO& io = ImGui::GetIO(); (void)io;
- io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard; // Enable Keyboard Controls
- io.ConfigFlags |= ImGuiConfigFlags_NavEnableGamepad; // Enable Gamepad Controls
-
- // Setup Dear ImGui style
- ImGui::StyleColorsDark();
- //ImGui::StyleColorsLight();
-
- // Setup scaling
- ImGuiStyle& style = ImGui::GetStyle();
- style.ScaleAllSizes(main_scale); // Bake a fixed style scale. (until we have a solution for dynamic style scaling, changing this requires resetting Style + calling this again)
- style.FontScaleDpi = main_scale; // Set initial font scale. (using io.ConfigDpiScaleFonts=true makes this unnecessary. We leave both here for documentation purpose)
-
- // Setup Platform/Renderer backends
- ImGui_ImplWin32_Init(hwnd);
- ImGui_ImplDX11_Init(g_pd3dDevice, g_pd3dDeviceContext);
-
- // Load Fonts
- // - If no fonts are loaded, dear imgui will use the default font. You can also load multiple fonts and use ImGui::PushFont()/PopFont() to select them.
- // - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
- // - If the file cannot be loaded, the function will return a nullptr. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
- // - Use '#define IMGUI_ENABLE_FREETYPE' in your imconfig file to use Freetype for higher quality font rendering.
- // - Read 'docs/FONTS.md' for more instructions and details.
- // - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
- //style.FontSizeBase = 20.0f;
- //io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\segoeui.ttf");
- //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf");
- //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf");
- //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf");
- //ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf");
- //IM_ASSERT(font != nullptr);
-
- // Our state
- bool show_demo_window = true;
- bool show_another_window = false;
- ImVec4 clear_color = ImVec4(0.45f, 0.55f, 0.60f, 1.00f);
-
- // Main loop
- bool done = false;
- while (!done)
- {
- // Poll and handle messages (inputs, window resize, etc.)
- // See the WndProc() function below for our to dispatch events to the Win32 backend.
- MSG msg;
- while (::PeekMessage(&msg, nullptr, 0U, 0U, PM_REMOVE))
- {
- ::TranslateMessage(&msg);
- ::DispatchMessage(&msg);
- if (msg.message == WM_QUIT)
- done = true;
- }
- if (done)
- break;
-
- // Handle window being minimized or screen locked
- if (g_SwapChainOccluded && g_pSwapChain->Present(0, DXGI_PRESENT_TEST) == DXGI_STATUS_OCCLUDED)
- {
- ::Sleep(10);
- continue;
- }
- g_SwapChainOccluded = false;
-
- // Handle window resize (we don't resize directly in the WM_SIZE handler)
- if (g_ResizeWidth != 0 && g_ResizeHeight != 0)
- {
- CleanupRenderTarget();
- g_pSwapChain->ResizeBuffers(0, g_ResizeWidth, g_ResizeHeight, DXGI_FORMAT_UNKNOWN, 0);
- g_ResizeWidth = g_ResizeHeight = 0;
- CreateRenderTarget();
- }
-
- // Start the Dear ImGui frame
- ImGui_ImplDX11_NewFrame();
- ImGui_ImplWin32_NewFrame();
- ImGui::NewFrame();
-
- // 1. Show the big demo window (Most of the sample code is in ImGui::ShowDemoWindow()! You can browse its code to learn more about Dear ImGui!).
- if (show_demo_window)
- ImGui::ShowDemoWindow(&show_demo_window);
-
- // 2. Show a simple window that we create ourselves. We use a Begin/End pair to create a named window.
- {
- static float f = 0.0f;
- static int counter = 0;
-
- ImGui::Begin("Hello, world!"); // Create a window called "Hello, world!" and append into it.
-
- ImGui::Text("This is some useful text."); // Display some text (you can use a format strings too)
- ImGui::Checkbox("Demo Window", &show_demo_window); // Edit bools storing our window open/close state
- ImGui::Checkbox("Another Window", &show_another_window);
-
- ImGui::SliderFloat("float", &f, 0.0f, 1.0f); // Edit 1 float using a slider from 0.0f to 1.0f
- ImGui::ColorEdit3("clear color", (float*)&clear_color); // Edit 3 floats representing a color
-
- if (ImGui::Button("Button")) // Buttons return true when clicked (most widgets return true when edited/activated)
- counter++;
- ImGui::SameLine();
- ImGui::Text("counter = %d", counter);
-
- ImGui::Text("Application average %.3f ms/frame (%.1f FPS)", 1000.0f / io.Framerate, io.Framerate);
- ImGui::End();
- }
-
- // 3. Show another simple window.
- if (show_another_window)
- {
- ImGui::Begin("Another Window", &show_another_window); // Pass a pointer to our bool variable (the window will have a closing button that will clear the bool when clicked)
- ImGui::Text("Hello from another window!");
- if (ImGui::Button("Close Me"))
- show_another_window = false;
- ImGui::End();
- }
-
- // Rendering
- ImGui::Render();
- const float clear_color_with_alpha[4] = { clear_color.x * clear_color.w, clear_color.y * clear_color.w, clear_color.z * clear_color.w, clear_color.w };
- g_pd3dDeviceContext->OMSetRenderTargets(1, &g_mainRenderTargetView, nullptr);
- g_pd3dDeviceContext->ClearRenderTargetView(g_mainRenderTargetView, clear_color_with_alpha);
- ImGui_ImplDX11_RenderDrawData(ImGui::GetDrawData());
-
- // Present
- HRESULT hr = g_pSwapChain->Present(1, 0); // Present with vsync
- //HRESULT hr = g_pSwapChain->Present(0, 0); // Present without vsync
- g_SwapChainOccluded = (hr == DXGI_STATUS_OCCLUDED);
- }
-
- // Cleanup
- ImGui_ImplDX11_Shutdown();
- ImGui_ImplWin32_Shutdown();
- ImGui::DestroyContext();
-
- CleanupDeviceD3D();
- ::DestroyWindow(hwnd);
- ::UnregisterClassW(wc.lpszClassName, wc.hInstance);
-
- return 0;
-}
-
-// Helper functions
-
-bool CreateDeviceD3D(HWND hWnd)
-{
- // Setup swap chain
- DXGI_SWAP_CHAIN_DESC sd;
- ZeroMemory(&sd, sizeof(sd));
- sd.BufferCount = 2;
- sd.BufferDesc.Width = 0;
- sd.BufferDesc.Height = 0;
- sd.BufferDesc.Format = DXGI_FORMAT_R8G8B8A8_UNORM;
- sd.BufferDesc.RefreshRate.Numerator = 60;
- sd.BufferDesc.RefreshRate.Denominator = 1;
- sd.Flags = DXGI_SWAP_CHAIN_FLAG_ALLOW_MODE_SWITCH;
- sd.BufferUsage = DXGI_USAGE_RENDER_TARGET_OUTPUT;
- sd.OutputWindow = hWnd;
- sd.SampleDesc.Count = 1;
- sd.SampleDesc.Quality = 0;
- sd.Windowed = TRUE;
- sd.SwapEffect = DXGI_SWAP_EFFECT_DISCARD;
-
- UINT createDeviceFlags = 0;
- //createDeviceFlags |= D3D11_CREATE_DEVICE_DEBUG;
- D3D_FEATURE_LEVEL featureLevel;
- const D3D_FEATURE_LEVEL featureLevelArray[2] = { D3D_FEATURE_LEVEL_11_0, D3D_FEATURE_LEVEL_10_0, };
- HRESULT res = D3D11CreateDeviceAndSwapChain(nullptr, D3D_DRIVER_TYPE_HARDWARE, nullptr, createDeviceFlags, featureLevelArray, 2, D3D11_SDK_VERSION, &sd, &g_pSwapChain, &g_pd3dDevice, &featureLevel, &g_pd3dDeviceContext);
- if (res == DXGI_ERROR_UNSUPPORTED) // Try high-performance WARP software driver if hardware is not available.
- res = D3D11CreateDeviceAndSwapChain(nullptr, D3D_DRIVER_TYPE_WARP, nullptr, createDeviceFlags, featureLevelArray, 2, D3D11_SDK_VERSION, &sd, &g_pSwapChain, &g_pd3dDevice, &featureLevel, &g_pd3dDeviceContext);
- if (res != S_OK)
- return false;
-
- CreateRenderTarget();
- return true;
-}
-
-void CleanupDeviceD3D()
-{
- CleanupRenderTarget();
- if (g_pSwapChain) { g_pSwapChain->Release(); g_pSwapChain = nullptr; }
- if (g_pd3dDeviceContext) { g_pd3dDeviceContext->Release(); g_pd3dDeviceContext = nullptr; }
- if (g_pd3dDevice) { g_pd3dDevice->Release(); g_pd3dDevice = nullptr; }
-}
-
-void CreateRenderTarget()
-{
- ID3D11Texture2D* pBackBuffer;
- g_pSwapChain->GetBuffer(0, IID_PPV_ARGS(&pBackBuffer));
- g_pd3dDevice->CreateRenderTargetView(pBackBuffer, nullptr, &g_mainRenderTargetView);
- pBackBuffer->Release();
-}
-
-void CleanupRenderTarget()
-{
- if (g_mainRenderTargetView) { g_mainRenderTargetView->Release(); g_mainRenderTargetView = nullptr; }
-}
-
-// Forward declare message handler from imgui_impl_win32.cpp
-extern IMGUI_IMPL_API LRESULT ImGui_ImplWin32_WndProcHandler(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);
-
-// Win32 message handler
-// You can read the io.WantCaptureMouse, io.WantCaptureKeyboard flags to tell if dear imgui wants to use your inputs.
-// - When io.WantCaptureMouse is true, do not dispatch mouse input data to your main application, or clear/overwrite your copy of the mouse data.
-// - When io.WantCaptureKeyboard is true, do not dispatch keyboard input data to your main application, or clear/overwrite your copy of the keyboard data.
-// Generally you may always pass all inputs to dear imgui, and hide them from your application based on those two flags.
-LRESULT WINAPI WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
-{
- if (ImGui_ImplWin32_WndProcHandler(hWnd, msg, wParam, lParam))
- return true;
-
- switch (msg)
- {
- case WM_SIZE:
- if (wParam == SIZE_MINIMIZED)
- return 0;
- g_ResizeWidth = (UINT)LOWORD(lParam); // Queue resize
- g_ResizeHeight = (UINT)HIWORD(lParam);
- return 0;
- case WM_SYSCOMMAND:
- if ((wParam & 0xfff0) == SC_KEYMENU) // Disable ALT application menu
- return 0;
- break;
- case WM_DESTROY:
- ::PostQuitMessage(0);
- return 0;
- }
- return ::DefWindowProcW(hWnd, msg, wParam, lParam);
-}
diff --git a/imgui-1.92.1/examples/example_win32_directx12/build_win32.bat b/imgui-1.92.1/examples/example_win32_directx12/build_win32.bat
deleted file mode 100644
index cb5e8e2..0000000
--- a/imgui-1.92.1/examples/example_win32_directx12/build_win32.bat
+++ /dev/null
@@ -1,8 +0,0 @@
-@REM Build for Visual Studio compiler. Run your copy of vcvars32.bat or vcvarsall.bat to setup command-line compiler.
-@set OUT_DIR=Debug
-@set OUT_EXE=example_win32_directx12
-@set INCLUDES=/I..\.. /I..\..\backends /I "%WindowsSdkDir%Include\um" /I "%WindowsSdkDir%Include\shared"
-@set SOURCES=main.cpp ..\..\backends\imgui_impl_dx12.cpp ..\..\backends\imgui_impl_win32.cpp ..\..\imgui*.cpp
-@set LIBS=d3d12.lib d3dcompiler.lib dxgi.lib
-mkdir Debug
-cl /nologo /Zi /MD /utf-8 %INCLUDES% /D UNICODE /D _UNICODE %SOURCES% /Fe%OUT_DIR%/%OUT_EXE%.exe /Fo%OUT_DIR%/ /link %LIBS%
diff --git a/imgui-1.92.1/examples/example_win32_directx12/example_win32_directx12.vcxproj b/imgui-1.92.1/examples/example_win32_directx12/example_win32_directx12.vcxproj
deleted file mode 100644
index bb98c41..0000000
--- a/imgui-1.92.1/examples/example_win32_directx12/example_win32_directx12.vcxproj
+++ /dev/null
@@ -1,180 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="Debug|Win32">
- <Configuration>Debug</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Debug|x64">
- <Configuration>Debug</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|Win32">
- <Configuration>Release</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|x64">
- <Configuration>Release</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- </ItemGroup>
- <PropertyGroup Label="Globals">
- <ProjectGuid>{b4cf9797-519d-4afe-a8f4-5141a6b521d3}</ProjectGuid>
- <RootNamespace>example_win32_directx12</RootNamespace>
- <WindowsTargetPlatformVersion>10.0.20348.0</WindowsTargetPlatformVersion>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>true</UseDebugLibraries>
- <CharacterSet>Unicode</CharacterSet>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>true</UseDebugLibraries>
- <CharacterSet>Unicode</CharacterSet>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>false</UseDebugLibraries>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- <CharacterSet>Unicode</CharacterSet>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>false</UseDebugLibraries>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- <CharacterSet>Unicode</CharacterSet>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
- <ImportGroup Label="ExtensionSettings">
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <PropertyGroup Label="UserMacros" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <OutDir>$(ProjectDir)$(Configuration)\</OutDir>
- <IntDir>$(ProjectDir)$(Configuration)\</IntDir>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <OutDir>$(ProjectDir)$(Configuration)\</OutDir>
- <IntDir>$(ProjectDir)$(Configuration)\</IntDir>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <OutDir>$(ProjectDir)$(Configuration)\</OutDir>
- <IntDir>$(ProjectDir)$(Configuration)\</IntDir>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <OutDir>$(ProjectDir)$(Configuration)\</OutDir>
- <IntDir>$(ProjectDir)$(Configuration)\</IntDir>
- </PropertyGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <ClCompile>
- <WarningLevel>Level4</WarningLevel>
- <Optimization>Disabled</Optimization>
- <AdditionalIncludeDirectories>..\..;..\..\backends;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
- </ClCompile>
- <Link>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <AdditionalDependencies>d3d12.lib;d3dcompiler.lib;dxgi.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
- <SubSystem>Console</SubSystem>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <ClCompile>
- <WarningLevel>Level4</WarningLevel>
- <Optimization>Disabled</Optimization>
- <AdditionalIncludeDirectories>..\..;..\..\backends;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
- </ClCompile>
- <Link>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <AdditionalDependencies>d3d12.lib;d3dcompiler.lib;dxgi.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
- <SubSystem>Console</SubSystem>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <ClCompile>
- <WarningLevel>Level4</WarningLevel>
- <Optimization>MaxSpeed</Optimization>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <IntrinsicFunctions>true</IntrinsicFunctions>
- <AdditionalIncludeDirectories>..\..;..\..\backends;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
- </ClCompile>
- <Link>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- <OptimizeReferences>true</OptimizeReferences>
- <AdditionalDependencies>d3d12.lib;d3dcompiler.lib;dxgi.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
- <SubSystem>Console</SubSystem>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <ClCompile>
- <WarningLevel>Level4</WarningLevel>
- <Optimization>MaxSpeed</Optimization>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <IntrinsicFunctions>true</IntrinsicFunctions>
- <AdditionalIncludeDirectories>..\..;..\..\backends;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
- </ClCompile>
- <Link>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- <OptimizeReferences>true</OptimizeReferences>
- <AdditionalDependencies>d3d12.lib;d3dcompiler.lib;dxgi.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
- <SubSystem>Console</SubSystem>
- </Link>
- </ItemDefinitionGroup>
- <ItemGroup>
- <ClInclude Include="..\..\imconfig.h" />
- <ClInclude Include="..\..\imgui.h" />
- <ClInclude Include="..\..\imgui_internal.h" />
- <ClInclude Include="..\..\backends\imgui_impl_dx12.h" />
- <ClInclude Include="..\..\backends\imgui_impl_win32.h" />
- </ItemGroup>
- <ItemGroup>
- <ClCompile Include="..\..\imgui.cpp" />
- <ClCompile Include="..\..\imgui_demo.cpp" />
- <ClCompile Include="..\..\imgui_draw.cpp" />
- <ClCompile Include="..\..\imgui_tables.cpp" />
- <ClCompile Include="..\..\imgui_widgets.cpp" />
- <ClCompile Include="..\..\backends\imgui_impl_dx12.cpp" />
- <ClCompile Include="..\..\backends\imgui_impl_win32.cpp" />
- <ClCompile Include="main.cpp" />
- </ItemGroup>
- <ItemGroup>
- <None Include="..\..\misc\debuggers\imgui.natstepfilter" />
- <None Include="..\README.txt" />
- </ItemGroup>
- <ItemGroup>
- <Natvis Include="..\..\misc\debuggers\imgui.natvis" />
- </ItemGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
- <ImportGroup Label="ExtensionTargets">
- </ImportGroup>
-</Project> \ No newline at end of file
diff --git a/imgui-1.92.1/examples/example_win32_directx12/example_win32_directx12.vcxproj.filters b/imgui-1.92.1/examples/example_win32_directx12/example_win32_directx12.vcxproj.filters
deleted file mode 100644
index 23a9952..0000000
--- a/imgui-1.92.1/examples/example_win32_directx12/example_win32_directx12.vcxproj.filters
+++ /dev/null
@@ -1,65 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup>
- <Filter Include="imgui">
- <UniqueIdentifier>{fb3d294f-51ec-478e-a627-25831c80fefd}</UniqueIdentifier>
- </Filter>
- <Filter Include="sources">
- <UniqueIdentifier>{4f33ddea-9910-456d-b868-4267eb3c2b19}</UniqueIdentifier>
- </Filter>
- </ItemGroup>
- <ItemGroup>
- <ClInclude Include="..\..\imconfig.h">
- <Filter>imgui</Filter>
- </ClInclude>
- <ClInclude Include="..\..\imgui.h">
- <Filter>imgui</Filter>
- </ClInclude>
- <ClInclude Include="..\..\imgui_internal.h">
- <Filter>imgui</Filter>
- </ClInclude>
- <ClInclude Include="..\..\backends\imgui_impl_dx12.h">
- <Filter>sources</Filter>
- </ClInclude>
- <ClInclude Include="..\..\backends\imgui_impl_win32.h">
- <Filter>sources</Filter>
- </ClInclude>
- </ItemGroup>
- <ItemGroup>
- <ClCompile Include="..\..\imgui.cpp">
- <Filter>imgui</Filter>
- </ClCompile>
- <ClCompile Include="main.cpp">
- <Filter>sources</Filter>
- </ClCompile>
- <ClCompile Include="..\..\imgui_demo.cpp">
- <Filter>imgui</Filter>
- </ClCompile>
- <ClCompile Include="..\..\imgui_draw.cpp">
- <Filter>imgui</Filter>
- </ClCompile>
- <ClCompile Include="..\..\backends\imgui_impl_dx12.cpp">
- <Filter>sources</Filter>
- </ClCompile>
- <ClCompile Include="..\..\backends\imgui_impl_win32.cpp">
- <Filter>sources</Filter>
- </ClCompile>
- <ClCompile Include="..\..\imgui_tables.cpp">
- <Filter>imgui</Filter>
- </ClCompile>
- <ClCompile Include="..\..\imgui_widgets.cpp">
- <Filter>imgui</Filter>
- </ClCompile>
- </ItemGroup>
- <ItemGroup>
- <None Include="..\README.txt" />
- <None Include="..\..\misc\debuggers\imgui.natstepfilter">
- <Filter>imgui</Filter>
- </None>
- </ItemGroup>
- <ItemGroup>
- <Natvis Include="..\..\misc\debuggers\imgui.natvis">
- <Filter>imgui</Filter>
- </Natvis>
- </ItemGroup>
-</Project> \ No newline at end of file
diff --git a/imgui-1.92.1/examples/example_win32_directx12/main.cpp b/imgui-1.92.1/examples/example_win32_directx12/main.cpp
deleted file mode 100644
index 3a9ba4f..0000000
--- a/imgui-1.92.1/examples/example_win32_directx12/main.cpp
+++ /dev/null
@@ -1,547 +0,0 @@
-// Dear ImGui: standalone example application for DirectX 12
-
-// Learn about Dear ImGui:
-// - FAQ https://dearimgui.com/faq
-// - Getting Started https://dearimgui.com/getting-started
-// - Documentation https://dearimgui.com/docs (same as your local docs/ folder).
-// - Introduction, links and more at the top of imgui.cpp
-
-#include "imgui.h"
-#include "imgui_impl_win32.h"
-#include "imgui_impl_dx12.h"
-#include <d3d12.h>
-#include <dxgi1_4.h>
-#include <tchar.h>
-
-#ifdef _DEBUG
-#define DX12_ENABLE_DEBUG_LAYER
-#endif
-
-#ifdef DX12_ENABLE_DEBUG_LAYER
-#include <dxgidebug.h>
-#pragma comment(lib, "dxguid.lib")
-#endif
-
-// Config for example app
-static const int APP_NUM_FRAMES_IN_FLIGHT = 2;
-static const int APP_NUM_BACK_BUFFERS = 2;
-static const int APP_SRV_HEAP_SIZE = 64;
-
-struct FrameContext
-{
- ID3D12CommandAllocator* CommandAllocator;
- UINT64 FenceValue;
-};
-
-// Simple free list based allocator
-struct ExampleDescriptorHeapAllocator
-{
- ID3D12DescriptorHeap* Heap = nullptr;
- D3D12_DESCRIPTOR_HEAP_TYPE HeapType = D3D12_DESCRIPTOR_HEAP_TYPE_NUM_TYPES;
- D3D12_CPU_DESCRIPTOR_HANDLE HeapStartCpu;
- D3D12_GPU_DESCRIPTOR_HANDLE HeapStartGpu;
- UINT HeapHandleIncrement;
- ImVector<int> FreeIndices;
-
- void Create(ID3D12Device* device, ID3D12DescriptorHeap* heap)
- {
- IM_ASSERT(Heap == nullptr && FreeIndices.empty());
- Heap = heap;
- D3D12_DESCRIPTOR_HEAP_DESC desc = heap->GetDesc();
- HeapType = desc.Type;
- HeapStartCpu = Heap->GetCPUDescriptorHandleForHeapStart();
- HeapStartGpu = Heap->GetGPUDescriptorHandleForHeapStart();
- HeapHandleIncrement = device->GetDescriptorHandleIncrementSize(HeapType);
- FreeIndices.reserve((int)desc.NumDescriptors);
- for (int n = desc.NumDescriptors; n > 0; n--)
- FreeIndices.push_back(n - 1);
- }
- void Destroy()
- {
- Heap = nullptr;
- FreeIndices.clear();
- }
- void Alloc(D3D12_CPU_DESCRIPTOR_HANDLE* out_cpu_desc_handle, D3D12_GPU_DESCRIPTOR_HANDLE* out_gpu_desc_handle)
- {
- IM_ASSERT(FreeIndices.Size > 0);
- int idx = FreeIndices.back();
- FreeIndices.pop_back();
- out_cpu_desc_handle->ptr = HeapStartCpu.ptr + (idx * HeapHandleIncrement);
- out_gpu_desc_handle->ptr = HeapStartGpu.ptr + (idx * HeapHandleIncrement);
- }
- void Free(D3D12_CPU_DESCRIPTOR_HANDLE out_cpu_desc_handle, D3D12_GPU_DESCRIPTOR_HANDLE out_gpu_desc_handle)
- {
- int cpu_idx = (int)((out_cpu_desc_handle.ptr - HeapStartCpu.ptr) / HeapHandleIncrement);
- int gpu_idx = (int)((out_gpu_desc_handle.ptr - HeapStartGpu.ptr) / HeapHandleIncrement);
- IM_ASSERT(cpu_idx == gpu_idx);
- FreeIndices.push_back(cpu_idx);
- }
-};
-
-// Data
-static FrameContext g_frameContext[APP_NUM_FRAMES_IN_FLIGHT] = {};
-static UINT g_frameIndex = 0;
-
-static ID3D12Device* g_pd3dDevice = nullptr;
-static ID3D12DescriptorHeap* g_pd3dRtvDescHeap = nullptr;
-static ID3D12DescriptorHeap* g_pd3dSrvDescHeap = nullptr;
-static ExampleDescriptorHeapAllocator g_pd3dSrvDescHeapAlloc;
-static ID3D12CommandQueue* g_pd3dCommandQueue = nullptr;
-static ID3D12GraphicsCommandList* g_pd3dCommandList = nullptr;
-static ID3D12Fence* g_fence = nullptr;
-static HANDLE g_fenceEvent = nullptr;
-static UINT64 g_fenceLastSignaledValue = 0;
-static IDXGISwapChain3* g_pSwapChain = nullptr;
-static bool g_SwapChainOccluded = false;
-static HANDLE g_hSwapChainWaitableObject = nullptr;
-static ID3D12Resource* g_mainRenderTargetResource[APP_NUM_BACK_BUFFERS] = {};
-static D3D12_CPU_DESCRIPTOR_HANDLE g_mainRenderTargetDescriptor[APP_NUM_BACK_BUFFERS] = {};
-
-// Forward declarations of helper functions
-bool CreateDeviceD3D(HWND hWnd);
-void CleanupDeviceD3D();
-void CreateRenderTarget();
-void CleanupRenderTarget();
-void WaitForLastSubmittedFrame();
-FrameContext* WaitForNextFrameResources();
-LRESULT WINAPI WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);
-
-// Main code
-int main(int, char**)
-{
- // Make process DPI aware and obtain main monitor scale
- ImGui_ImplWin32_EnableDpiAwareness();
- float main_scale = ImGui_ImplWin32_GetDpiScaleForMonitor(::MonitorFromPoint(POINT{ 0, 0 }, MONITOR_DEFAULTTOPRIMARY));
-
- // Create application window
- WNDCLASSEXW wc = { sizeof(wc), CS_CLASSDC, WndProc, 0L, 0L, GetModuleHandle(nullptr), nullptr, nullptr, nullptr, nullptr, L"ImGui Example", nullptr };
- ::RegisterClassExW(&wc);
- HWND hwnd = ::CreateWindowW(wc.lpszClassName, L"Dear ImGui DirectX12 Example", WS_OVERLAPPEDWINDOW, 100, 100, (int)(1280 * main_scale), (int)(800 * main_scale), nullptr, nullptr, wc.hInstance, nullptr);
-
- // Initialize Direct3D
- if (!CreateDeviceD3D(hwnd))
- {
- CleanupDeviceD3D();
- ::UnregisterClassW(wc.lpszClassName, wc.hInstance);
- return 1;
- }
-
- // Show the window
- ::ShowWindow(hwnd, SW_SHOWDEFAULT);
- ::UpdateWindow(hwnd);
-
- // Setup Dear ImGui context
- IMGUI_CHECKVERSION();
- ImGui::CreateContext();
- ImGuiIO& io = ImGui::GetIO(); (void)io;
- io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard; // Enable Keyboard Controls
- io.ConfigFlags |= ImGuiConfigFlags_NavEnableGamepad; // Enable Gamepad Controls
-
- // Setup Dear ImGui style
- ImGui::StyleColorsDark();
- //ImGui::StyleColorsLight();
-
- // Setup scaling
- ImGuiStyle& style = ImGui::GetStyle();
- style.ScaleAllSizes(main_scale); // Bake a fixed style scale. (until we have a solution for dynamic style scaling, changing this requires resetting Style + calling this again)
- style.FontScaleDpi = main_scale; // Set initial font scale. (using io.ConfigDpiScaleFonts=true makes this unnecessary. We leave both here for documentation purpose)
-
- // Setup Platform/Renderer backends
- ImGui_ImplWin32_Init(hwnd);
-
- ImGui_ImplDX12_InitInfo init_info = {};
- init_info.Device = g_pd3dDevice;
- init_info.CommandQueue = g_pd3dCommandQueue;
- init_info.NumFramesInFlight = APP_NUM_FRAMES_IN_FLIGHT;
- init_info.RTVFormat = DXGI_FORMAT_R8G8B8A8_UNORM;
- init_info.DSVFormat = DXGI_FORMAT_UNKNOWN;
- // Allocating SRV descriptors (for textures) is up to the application, so we provide callbacks.
- // (current version of the backend will only allocate one descriptor, future versions will need to allocate more)
- init_info.SrvDescriptorHeap = g_pd3dSrvDescHeap;
- init_info.SrvDescriptorAllocFn = [](ImGui_ImplDX12_InitInfo*, D3D12_CPU_DESCRIPTOR_HANDLE* out_cpu_handle, D3D12_GPU_DESCRIPTOR_HANDLE* out_gpu_handle) { return g_pd3dSrvDescHeapAlloc.Alloc(out_cpu_handle, out_gpu_handle); };
- init_info.SrvDescriptorFreeFn = [](ImGui_ImplDX12_InitInfo*, D3D12_CPU_DESCRIPTOR_HANDLE cpu_handle, D3D12_GPU_DESCRIPTOR_HANDLE gpu_handle) { return g_pd3dSrvDescHeapAlloc.Free(cpu_handle, gpu_handle); };
- ImGui_ImplDX12_Init(&init_info);
-
- // Before 1.91.6: our signature was using a single descriptor. From 1.92, specifying SrvDescriptorAllocFn/SrvDescriptorFreeFn will be required to benefit from new features.
- //ImGui_ImplDX12_Init(g_pd3dDevice, APP_NUM_FRAMES_IN_FLIGHT, DXGI_FORMAT_R8G8B8A8_UNORM, g_pd3dSrvDescHeap, g_pd3dSrvDescHeap->GetCPUDescriptorHandleForHeapStart(), g_pd3dSrvDescHeap->GetGPUDescriptorHandleForHeapStart());
-
- // Load Fonts
- // - If no fonts are loaded, dear imgui will use the default font. You can also load multiple fonts and use ImGui::PushFont()/PopFont() to select them.
- // - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
- // - If the file cannot be loaded, the function will return a nullptr. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
- // - Use '#define IMGUI_ENABLE_FREETYPE' in your imconfig file to use Freetype for higher quality font rendering.
- // - Read 'docs/FONTS.md' for more instructions and details.
- // - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
- //style.FontSizeBase = 20.0f;
- //io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\segoeui.ttf");
- //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf");
- //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf");
- //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf");
- //ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf");
- //IM_ASSERT(font != nullptr);
-
- // Our state
- bool show_demo_window = true;
- bool show_another_window = false;
- ImVec4 clear_color = ImVec4(0.45f, 0.55f, 0.60f, 1.00f);
-
- // Main loop
- bool done = false;
- while (!done)
- {
- // Poll and handle messages (inputs, window resize, etc.)
- // See the WndProc() function below for our to dispatch events to the Win32 backend.
- MSG msg;
- while (::PeekMessage(&msg, nullptr, 0U, 0U, PM_REMOVE))
- {
- ::TranslateMessage(&msg);
- ::DispatchMessage(&msg);
- if (msg.message == WM_QUIT)
- done = true;
- }
- if (done)
- break;
-
- // Handle window screen locked
- if ((g_SwapChainOccluded && g_pSwapChain->Present(0, DXGI_PRESENT_TEST) == DXGI_STATUS_OCCLUDED) || ::IsIconic(hwnd))
- {
- ::Sleep(10);
- continue;
- }
- g_SwapChainOccluded = false;
-
- // Start the Dear ImGui frame
- ImGui_ImplDX12_NewFrame();
- ImGui_ImplWin32_NewFrame();
- ImGui::NewFrame();
-
- // 1. Show the big demo window (Most of the sample code is in ImGui::ShowDemoWindow()! You can browse its code to learn more about Dear ImGui!).
- if (show_demo_window)
- ImGui::ShowDemoWindow(&show_demo_window);
-
- // 2. Show a simple window that we create ourselves. We use a Begin/End pair to create a named window.
- {
- static float f = 0.0f;
- static int counter = 0;
-
- ImGui::Begin("Hello, world!"); // Create a window called "Hello, world!" and append into it.
-
- ImGui::Text("This is some useful text."); // Display some text (you can use a format strings too)
- ImGui::Checkbox("Demo Window", &show_demo_window); // Edit bools storing our window open/close state
- ImGui::Checkbox("Another Window", &show_another_window);
-
- ImGui::SliderFloat("float", &f, 0.0f, 1.0f); // Edit 1 float using a slider from 0.0f to 1.0f
- ImGui::ColorEdit3("clear color", (float*)&clear_color); // Edit 3 floats representing a color
-
- if (ImGui::Button("Button")) // Buttons return true when clicked (most widgets return true when edited/activated)
- counter++;
- ImGui::SameLine();
- ImGui::Text("counter = %d", counter);
-
- ImGui::Text("Application average %.3f ms/frame (%.1f FPS)", 1000.0f / io.Framerate, io.Framerate);
- ImGui::End();
- }
-
- // 3. Show another simple window.
- if (show_another_window)
- {
- ImGui::Begin("Another Window", &show_another_window); // Pass a pointer to our bool variable (the window will have a closing button that will clear the bool when clicked)
- ImGui::Text("Hello from another window!");
- if (ImGui::Button("Close Me"))
- show_another_window = false;
- ImGui::End();
- }
-
- // Rendering
- ImGui::Render();
-
- FrameContext* frameCtx = WaitForNextFrameResources();
- UINT backBufferIdx = g_pSwapChain->GetCurrentBackBufferIndex();
- frameCtx->CommandAllocator->Reset();
-
- D3D12_RESOURCE_BARRIER barrier = {};
- barrier.Type = D3D12_RESOURCE_BARRIER_TYPE_TRANSITION;
- barrier.Flags = D3D12_RESOURCE_BARRIER_FLAG_NONE;
- barrier.Transition.pResource = g_mainRenderTargetResource[backBufferIdx];
- barrier.Transition.Subresource = D3D12_RESOURCE_BARRIER_ALL_SUBRESOURCES;
- barrier.Transition.StateBefore = D3D12_RESOURCE_STATE_PRESENT;
- barrier.Transition.StateAfter = D3D12_RESOURCE_STATE_RENDER_TARGET;
- g_pd3dCommandList->Reset(frameCtx->CommandAllocator, nullptr);
- g_pd3dCommandList->ResourceBarrier(1, &barrier);
-
- // Render Dear ImGui graphics
- const float clear_color_with_alpha[4] = { clear_color.x * clear_color.w, clear_color.y * clear_color.w, clear_color.z * clear_color.w, clear_color.w };
- g_pd3dCommandList->ClearRenderTargetView(g_mainRenderTargetDescriptor[backBufferIdx], clear_color_with_alpha, 0, nullptr);
- g_pd3dCommandList->OMSetRenderTargets(1, &g_mainRenderTargetDescriptor[backBufferIdx], FALSE, nullptr);
- g_pd3dCommandList->SetDescriptorHeaps(1, &g_pd3dSrvDescHeap);
- ImGui_ImplDX12_RenderDrawData(ImGui::GetDrawData(), g_pd3dCommandList);
- barrier.Transition.StateBefore = D3D12_RESOURCE_STATE_RENDER_TARGET;
- barrier.Transition.StateAfter = D3D12_RESOURCE_STATE_PRESENT;
- g_pd3dCommandList->ResourceBarrier(1, &barrier);
- g_pd3dCommandList->Close();
-
- g_pd3dCommandQueue->ExecuteCommandLists(1, (ID3D12CommandList* const*)&g_pd3dCommandList);
-
- // Present
- HRESULT hr = g_pSwapChain->Present(1, 0); // Present with vsync
- //HRESULT hr = g_pSwapChain->Present(0, 0); // Present without vsync
- g_SwapChainOccluded = (hr == DXGI_STATUS_OCCLUDED);
-
- UINT64 fenceValue = g_fenceLastSignaledValue + 1;
- g_pd3dCommandQueue->Signal(g_fence, fenceValue);
- g_fenceLastSignaledValue = fenceValue;
- frameCtx->FenceValue = fenceValue;
- }
-
- WaitForLastSubmittedFrame();
-
- // Cleanup
- ImGui_ImplDX12_Shutdown();
- ImGui_ImplWin32_Shutdown();
- ImGui::DestroyContext();
-
- CleanupDeviceD3D();
- ::DestroyWindow(hwnd);
- ::UnregisterClassW(wc.lpszClassName, wc.hInstance);
-
- return 0;
-}
-
-// Helper functions
-
-bool CreateDeviceD3D(HWND hWnd)
-{
- // Setup swap chain
- DXGI_SWAP_CHAIN_DESC1 sd;
- {
- ZeroMemory(&sd, sizeof(sd));
- sd.BufferCount = APP_NUM_BACK_BUFFERS;
- sd.Width = 0;
- sd.Height = 0;
- sd.Format = DXGI_FORMAT_R8G8B8A8_UNORM;
- sd.Flags = DXGI_SWAP_CHAIN_FLAG_FRAME_LATENCY_WAITABLE_OBJECT;
- sd.BufferUsage = DXGI_USAGE_RENDER_TARGET_OUTPUT;
- sd.SampleDesc.Count = 1;
- sd.SampleDesc.Quality = 0;
- sd.SwapEffect = DXGI_SWAP_EFFECT_FLIP_DISCARD;
- sd.AlphaMode = DXGI_ALPHA_MODE_UNSPECIFIED;
- sd.Scaling = DXGI_SCALING_STRETCH;
- sd.Stereo = FALSE;
- }
-
- // [DEBUG] Enable debug interface
-#ifdef DX12_ENABLE_DEBUG_LAYER
- ID3D12Debug* pdx12Debug = nullptr;
- if (SUCCEEDED(D3D12GetDebugInterface(IID_PPV_ARGS(&pdx12Debug))))
- pdx12Debug->EnableDebugLayer();
-#endif
-
- // Create device
- D3D_FEATURE_LEVEL featureLevel = D3D_FEATURE_LEVEL_11_0;
- if (D3D12CreateDevice(nullptr, featureLevel, IID_PPV_ARGS(&g_pd3dDevice)) != S_OK)
- return false;
-
- // [DEBUG] Setup debug interface to break on any warnings/errors
-#ifdef DX12_ENABLE_DEBUG_LAYER
- if (pdx12Debug != nullptr)
- {
- ID3D12InfoQueue* pInfoQueue = nullptr;
- g_pd3dDevice->QueryInterface(IID_PPV_ARGS(&pInfoQueue));
- pInfoQueue->SetBreakOnSeverity(D3D12_MESSAGE_SEVERITY_ERROR, true);
- pInfoQueue->SetBreakOnSeverity(D3D12_MESSAGE_SEVERITY_CORRUPTION, true);
- pInfoQueue->SetBreakOnSeverity(D3D12_MESSAGE_SEVERITY_WARNING, true);
- pInfoQueue->Release();
- pdx12Debug->Release();
- }
-#endif
-
- {
- D3D12_DESCRIPTOR_HEAP_DESC desc = {};
- desc.Type = D3D12_DESCRIPTOR_HEAP_TYPE_RTV;
- desc.NumDescriptors = APP_NUM_BACK_BUFFERS;
- desc.Flags = D3D12_DESCRIPTOR_HEAP_FLAG_NONE;
- desc.NodeMask = 1;
- if (g_pd3dDevice->CreateDescriptorHeap(&desc, IID_PPV_ARGS(&g_pd3dRtvDescHeap)) != S_OK)
- return false;
-
- SIZE_T rtvDescriptorSize = g_pd3dDevice->GetDescriptorHandleIncrementSize(D3D12_DESCRIPTOR_HEAP_TYPE_RTV);
- D3D12_CPU_DESCRIPTOR_HANDLE rtvHandle = g_pd3dRtvDescHeap->GetCPUDescriptorHandleForHeapStart();
- for (UINT i = 0; i < APP_NUM_BACK_BUFFERS; i++)
- {
- g_mainRenderTargetDescriptor[i] = rtvHandle;
- rtvHandle.ptr += rtvDescriptorSize;
- }
- }
-
- {
- D3D12_DESCRIPTOR_HEAP_DESC desc = {};
- desc.Type = D3D12_DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAV;
- desc.NumDescriptors = APP_SRV_HEAP_SIZE;
- desc.Flags = D3D12_DESCRIPTOR_HEAP_FLAG_SHADER_VISIBLE;
- if (g_pd3dDevice->CreateDescriptorHeap(&desc, IID_PPV_ARGS(&g_pd3dSrvDescHeap)) != S_OK)
- return false;
- g_pd3dSrvDescHeapAlloc.Create(g_pd3dDevice, g_pd3dSrvDescHeap);
- }
-
- {
- D3D12_COMMAND_QUEUE_DESC desc = {};
- desc.Type = D3D12_COMMAND_LIST_TYPE_DIRECT;
- desc.Flags = D3D12_COMMAND_QUEUE_FLAG_NONE;
- desc.NodeMask = 1;
- if (g_pd3dDevice->CreateCommandQueue(&desc, IID_PPV_ARGS(&g_pd3dCommandQueue)) != S_OK)
- return false;
- }
-
- for (UINT i = 0; i < APP_NUM_FRAMES_IN_FLIGHT; i++)
- if (g_pd3dDevice->CreateCommandAllocator(D3D12_COMMAND_LIST_TYPE_DIRECT, IID_PPV_ARGS(&g_frameContext[i].CommandAllocator)) != S_OK)
- return false;
-
- if (g_pd3dDevice->CreateCommandList(0, D3D12_COMMAND_LIST_TYPE_DIRECT, g_frameContext[0].CommandAllocator, nullptr, IID_PPV_ARGS(&g_pd3dCommandList)) != S_OK ||
- g_pd3dCommandList->Close() != S_OK)
- return false;
-
- if (g_pd3dDevice->CreateFence(0, D3D12_FENCE_FLAG_NONE, IID_PPV_ARGS(&g_fence)) != S_OK)
- return false;
-
- g_fenceEvent = CreateEvent(nullptr, FALSE, FALSE, nullptr);
- if (g_fenceEvent == nullptr)
- return false;
-
- {
- IDXGIFactory4* dxgiFactory = nullptr;
- IDXGISwapChain1* swapChain1 = nullptr;
- if (CreateDXGIFactory1(IID_PPV_ARGS(&dxgiFactory)) != S_OK)
- return false;
- if (dxgiFactory->CreateSwapChainForHwnd(g_pd3dCommandQueue, hWnd, &sd, nullptr, nullptr, &swapChain1) != S_OK)
- return false;
- if (swapChain1->QueryInterface(IID_PPV_ARGS(&g_pSwapChain)) != S_OK)
- return false;
- swapChain1->Release();
- dxgiFactory->Release();
- g_pSwapChain->SetMaximumFrameLatency(APP_NUM_BACK_BUFFERS);
- g_hSwapChainWaitableObject = g_pSwapChain->GetFrameLatencyWaitableObject();
- }
-
- CreateRenderTarget();
- return true;
-}
-
-void CleanupDeviceD3D()
-{
- CleanupRenderTarget();
- if (g_pSwapChain) { g_pSwapChain->SetFullscreenState(false, nullptr); g_pSwapChain->Release(); g_pSwapChain = nullptr; }
- if (g_hSwapChainWaitableObject != nullptr) { CloseHandle(g_hSwapChainWaitableObject); }
- for (UINT i = 0; i < APP_NUM_FRAMES_IN_FLIGHT; i++)
- if (g_frameContext[i].CommandAllocator) { g_frameContext[i].CommandAllocator->Release(); g_frameContext[i].CommandAllocator = nullptr; }
- if (g_pd3dCommandQueue) { g_pd3dCommandQueue->Release(); g_pd3dCommandQueue = nullptr; }
- if (g_pd3dCommandList) { g_pd3dCommandList->Release(); g_pd3dCommandList = nullptr; }
- if (g_pd3dRtvDescHeap) { g_pd3dRtvDescHeap->Release(); g_pd3dRtvDescHeap = nullptr; }
- if (g_pd3dSrvDescHeap) { g_pd3dSrvDescHeap->Release(); g_pd3dSrvDescHeap = nullptr; }
- if (g_fence) { g_fence->Release(); g_fence = nullptr; }
- if (g_fenceEvent) { CloseHandle(g_fenceEvent); g_fenceEvent = nullptr; }
- if (g_pd3dDevice) { g_pd3dDevice->Release(); g_pd3dDevice = nullptr; }
-
-#ifdef DX12_ENABLE_DEBUG_LAYER
- IDXGIDebug1* pDebug = nullptr;
- if (SUCCEEDED(DXGIGetDebugInterface1(0, IID_PPV_ARGS(&pDebug))))
- {
- pDebug->ReportLiveObjects(DXGI_DEBUG_ALL, DXGI_DEBUG_RLO_SUMMARY);
- pDebug->Release();
- }
-#endif
-}
-
-void CreateRenderTarget()
-{
- for (UINT i = 0; i < APP_NUM_BACK_BUFFERS; i++)
- {
- ID3D12Resource* pBackBuffer = nullptr;
- g_pSwapChain->GetBuffer(i, IID_PPV_ARGS(&pBackBuffer));
- g_pd3dDevice->CreateRenderTargetView(pBackBuffer, nullptr, g_mainRenderTargetDescriptor[i]);
- g_mainRenderTargetResource[i] = pBackBuffer;
- }
-}
-
-void CleanupRenderTarget()
-{
- WaitForLastSubmittedFrame();
-
- for (UINT i = 0; i < APP_NUM_BACK_BUFFERS; i++)
- if (g_mainRenderTargetResource[i]) { g_mainRenderTargetResource[i]->Release(); g_mainRenderTargetResource[i] = nullptr; }
-}
-
-void WaitForLastSubmittedFrame()
-{
- FrameContext* frameCtx = &g_frameContext[g_frameIndex % APP_NUM_FRAMES_IN_FLIGHT];
-
- UINT64 fenceValue = frameCtx->FenceValue;
- if (fenceValue == 0)
- return; // No fence was signaled
-
- frameCtx->FenceValue = 0;
- if (g_fence->GetCompletedValue() >= fenceValue)
- return;
-
- g_fence->SetEventOnCompletion(fenceValue, g_fenceEvent);
- WaitForSingleObject(g_fenceEvent, INFINITE);
-}
-
-FrameContext* WaitForNextFrameResources()
-{
- UINT nextFrameIndex = g_frameIndex + 1;
- g_frameIndex = nextFrameIndex;
-
- HANDLE waitableObjects[] = { g_hSwapChainWaitableObject, nullptr };
- DWORD numWaitableObjects = 1;
-
- FrameContext* frameCtx = &g_frameContext[nextFrameIndex % APP_NUM_FRAMES_IN_FLIGHT];
- UINT64 fenceValue = frameCtx->FenceValue;
- if (fenceValue != 0) // means no fence was signaled
- {
- frameCtx->FenceValue = 0;
- g_fence->SetEventOnCompletion(fenceValue, g_fenceEvent);
- waitableObjects[1] = g_fenceEvent;
- numWaitableObjects = 2;
- }
-
- WaitForMultipleObjects(numWaitableObjects, waitableObjects, TRUE, INFINITE);
-
- return frameCtx;
-}
-
-// Forward declare message handler from imgui_impl_win32.cpp
-extern IMGUI_IMPL_API LRESULT ImGui_ImplWin32_WndProcHandler(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);
-
-// Win32 message handler
-// You can read the io.WantCaptureMouse, io.WantCaptureKeyboard flags to tell if dear imgui wants to use your inputs.
-// - When io.WantCaptureMouse is true, do not dispatch mouse input data to your main application, or clear/overwrite your copy of the mouse data.
-// - When io.WantCaptureKeyboard is true, do not dispatch keyboard input data to your main application, or clear/overwrite your copy of the keyboard data.
-// Generally you may always pass all inputs to dear imgui, and hide them from your application based on those two flags.
-LRESULT WINAPI WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
-{
- if (ImGui_ImplWin32_WndProcHandler(hWnd, msg, wParam, lParam))
- return true;
-
- switch (msg)
- {
- case WM_SIZE:
- if (g_pd3dDevice != nullptr && wParam != SIZE_MINIMIZED)
- {
- WaitForLastSubmittedFrame();
- CleanupRenderTarget();
- HRESULT result = g_pSwapChain->ResizeBuffers(0, (UINT)LOWORD(lParam), (UINT)HIWORD(lParam), DXGI_FORMAT_UNKNOWN, DXGI_SWAP_CHAIN_FLAG_FRAME_LATENCY_WAITABLE_OBJECT);
- assert(SUCCEEDED(result) && "Failed to resize swapchain.");
- CreateRenderTarget();
- }
- return 0;
- case WM_SYSCOMMAND:
- if ((wParam & 0xfff0) == SC_KEYMENU) // Disable ALT application menu
- return 0;
- break;
- case WM_DESTROY:
- ::PostQuitMessage(0);
- return 0;
- }
- return ::DefWindowProcW(hWnd, msg, wParam, lParam);
-}
diff --git a/imgui-1.92.1/examples/example_win32_directx9/build_win32.bat b/imgui-1.92.1/examples/example_win32_directx9/build_win32.bat
deleted file mode 100644
index ece5ea1..0000000
--- a/imgui-1.92.1/examples/example_win32_directx9/build_win32.bat
+++ /dev/null
@@ -1,8 +0,0 @@
-@REM Build for Visual Studio compiler. Run your copy of vcvars32.bat or vcvarsall.bat to setup command-line compiler.
-@set OUT_DIR=Debug
-@set OUT_EXE=example_win32_directx9
-@set INCLUDES=/I..\.. /I..\..\backends /I "%DXSDK_DIR%/Include"
-@set SOURCES=main.cpp ..\..\backends\imgui_impl_dx9.cpp ..\..\backends\imgui_impl_win32.cpp ..\..\imgui*.cpp
-@set LIBS=/LIBPATH:"%DXSDK_DIR%/Lib/x86" d3d9.lib
-mkdir %OUT_DIR%
-cl /nologo /Zi /MD /utf-8 %INCLUDES% /D UNICODE /D _UNICODE %SOURCES% /Fe%OUT_DIR%/%OUT_EXE%.exe /Fo%OUT_DIR%/ /link %LIBS%
diff --git a/imgui-1.92.1/examples/example_win32_directx9/example_win32_directx9.vcxproj b/imgui-1.92.1/examples/example_win32_directx9/example_win32_directx9.vcxproj
deleted file mode 100644
index 8c3f995..0000000
--- a/imgui-1.92.1/examples/example_win32_directx9/example_win32_directx9.vcxproj
+++ /dev/null
@@ -1,176 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="Debug|Win32">
- <Configuration>Debug</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Debug|x64">
- <Configuration>Debug</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|Win32">
- <Configuration>Release</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|x64">
- <Configuration>Release</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- </ItemGroup>
- <PropertyGroup Label="Globals">
- <ProjectGuid>{4165A294-21F2-44CA-9B38-E3F935ABADF5}</ProjectGuid>
- <RootNamespace>example_win32_directx9</RootNamespace>
- <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>true</UseDebugLibraries>
- <CharacterSet>Unicode</CharacterSet>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>true</UseDebugLibraries>
- <CharacterSet>Unicode</CharacterSet>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>false</UseDebugLibraries>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- <CharacterSet>Unicode</CharacterSet>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>false</UseDebugLibraries>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- <CharacterSet>Unicode</CharacterSet>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
- <ImportGroup Label="ExtensionSettings">
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <PropertyGroup Label="UserMacros" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <OutDir>$(ProjectDir)$(Configuration)\</OutDir>
- <IntDir>$(ProjectDir)$(Configuration)\</IntDir>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <OutDir>$(ProjectDir)$(Configuration)\</OutDir>
- <IntDir>$(ProjectDir)$(Configuration)\</IntDir>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <OutDir>$(ProjectDir)$(Configuration)\</OutDir>
- <IntDir>$(ProjectDir)$(Configuration)\</IntDir>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <OutDir>$(ProjectDir)$(Configuration)\</OutDir>
- <IntDir>$(ProjectDir)$(Configuration)\</IntDir>
- </PropertyGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <ClCompile>
- <WarningLevel>Level4</WarningLevel>
- <Optimization>Disabled</Optimization>
- <AdditionalIncludeDirectories>..\..;..\..\backends;%(AdditionalIncludeDirectories);$(DXSDK_DIR)Include;</AdditionalIncludeDirectories>
- <AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
- </ClCompile>
- <Link>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <AdditionalLibraryDirectories>$(DXSDK_DIR)/Lib/x86;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
- <AdditionalDependencies>d3d9.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <SubSystem>Console</SubSystem>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <ClCompile>
- <WarningLevel>Level4</WarningLevel>
- <Optimization>Disabled</Optimization>
- <AdditionalIncludeDirectories>..\..;..\..\backends;%(AdditionalIncludeDirectories);$(DXSDK_DIR)Include;</AdditionalIncludeDirectories>
- <AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
- </ClCompile>
- <Link>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <AdditionalLibraryDirectories>$(DXSDK_DIR)/Lib/x64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
- <AdditionalDependencies>d3d9.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <SubSystem>Console</SubSystem>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <ClCompile>
- <WarningLevel>Level4</WarningLevel>
- <Optimization>MaxSpeed</Optimization>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <IntrinsicFunctions>true</IntrinsicFunctions>
- <AdditionalIncludeDirectories>..\..;..\..\backends;%(AdditionalIncludeDirectories);$(DXSDK_DIR)Include;</AdditionalIncludeDirectories>
- <BufferSecurityCheck>false</BufferSecurityCheck>
- <AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
- </ClCompile>
- <Link>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- <OptimizeReferences>true</OptimizeReferences>
- <AdditionalLibraryDirectories>$(DXSDK_DIR)/Lib/x86;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
- <AdditionalDependencies>d3d9.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <SubSystem>Console</SubSystem>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <ClCompile>
- <WarningLevel>Level4</WarningLevel>
- <Optimization>MaxSpeed</Optimization>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <IntrinsicFunctions>true</IntrinsicFunctions>
- <AdditionalIncludeDirectories>..\..;..\..\backends;%(AdditionalIncludeDirectories);$(DXSDK_DIR)Include;</AdditionalIncludeDirectories>
- <BufferSecurityCheck>false</BufferSecurityCheck>
- <AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
- </ClCompile>
- <Link>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- <OptimizeReferences>true</OptimizeReferences>
- <AdditionalLibraryDirectories>$(DXSDK_DIR)/Lib/x64;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
- <AdditionalDependencies>d3d9.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <SubSystem>Console</SubSystem>
- </Link>
- </ItemDefinitionGroup>
- <ItemGroup>
- <ClCompile Include="..\..\imgui.cpp" />
- <ClCompile Include="..\..\imgui_demo.cpp" />
- <ClCompile Include="..\..\imgui_draw.cpp" />
- <ClCompile Include="..\..\imgui_tables.cpp" />
- <ClCompile Include="..\..\imgui_widgets.cpp" />
- <ClCompile Include="..\..\backends\imgui_impl_dx9.cpp" />
- <ClCompile Include="..\..\backends\imgui_impl_win32.cpp" />
- <ClCompile Include="main.cpp" />
- </ItemGroup>
- <ItemGroup>
- <ClInclude Include="..\..\imconfig.h" />
- <ClInclude Include="..\..\imgui.h" />
- <ClInclude Include="..\..\imgui_internal.h" />
- <ClInclude Include="..\..\backends\imgui_impl_dx9.h" />
- <ClInclude Include="..\..\backends\imgui_impl_win32.h" />
- </ItemGroup>
- <ItemGroup>
- <None Include="..\..\misc\debuggers\imgui.natstepfilter" />
- <None Include="..\..\misc\debuggers\imgui.natvis" />
- <None Include="..\README.txt" />
- </ItemGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
- <ImportGroup Label="ExtensionTargets">
- </ImportGroup>
-</Project> \ No newline at end of file
diff --git a/imgui-1.92.1/examples/example_win32_directx9/example_win32_directx9.vcxproj.filters b/imgui-1.92.1/examples/example_win32_directx9/example_win32_directx9.vcxproj.filters
deleted file mode 100644
index 5ed89d6..0000000
--- a/imgui-1.92.1/examples/example_win32_directx9/example_win32_directx9.vcxproj.filters
+++ /dev/null
@@ -1,64 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup>
- <Filter Include="sources">
- <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
- <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
- </Filter>
- <Filter Include="imgui">
- <UniqueIdentifier>{a82cba23-9de0-45c2-b1e3-2eb1666702de}</UniqueIdentifier>
- </Filter>
- </ItemGroup>
- <ItemGroup>
- <ClCompile Include="main.cpp">
- <Filter>sources</Filter>
- </ClCompile>
- <ClCompile Include="..\..\imgui.cpp">
- <Filter>imgui</Filter>
- </ClCompile>
- <ClCompile Include="..\..\imgui_demo.cpp">
- <Filter>imgui</Filter>
- </ClCompile>
- <ClCompile Include="..\..\imgui_draw.cpp">
- <Filter>imgui</Filter>
- </ClCompile>
- <ClCompile Include="..\..\backends\imgui_impl_win32.cpp">
- <Filter>sources</Filter>
- </ClCompile>
- <ClCompile Include="..\..\backends\imgui_impl_dx9.cpp">
- <Filter>sources</Filter>
- </ClCompile>
- <ClCompile Include="..\..\imgui_tables.cpp">
- <Filter>imgui</Filter>
- </ClCompile>
- <ClCompile Include="..\..\imgui_widgets.cpp">
- <Filter>imgui</Filter>
- </ClCompile>
- </ItemGroup>
- <ItemGroup>
- <ClInclude Include="..\..\imconfig.h">
- <Filter>imgui</Filter>
- </ClInclude>
- <ClInclude Include="..\..\imgui.h">
- <Filter>imgui</Filter>
- </ClInclude>
- <ClInclude Include="..\..\imgui_internal.h">
- <Filter>imgui</Filter>
- </ClInclude>
- <ClInclude Include="..\..\backends\imgui_impl_win32.h">
- <Filter>sources</Filter>
- </ClInclude>
- <ClInclude Include="..\..\backends\imgui_impl_dx9.h">
- <Filter>sources</Filter>
- </ClInclude>
- </ItemGroup>
- <ItemGroup>
- <None Include="..\README.txt" />
- <None Include="..\..\misc\debuggers\imgui.natvis">
- <Filter>imgui</Filter>
- </None>
- <None Include="..\..\misc\debuggers\imgui.natstepfilter">
- <Filter>imgui</Filter>
- </None>
- </ItemGroup>
-</Project> \ No newline at end of file
diff --git a/imgui-1.92.1/examples/example_win32_directx9/main.cpp b/imgui-1.92.1/examples/example_win32_directx9/main.cpp
deleted file mode 100644
index 430a2b4..0000000
--- a/imgui-1.92.1/examples/example_win32_directx9/main.cpp
+++ /dev/null
@@ -1,272 +0,0 @@
-// Dear ImGui: standalone example application for DirectX 9
-
-// Learn about Dear ImGui:
-// - FAQ https://dearimgui.com/faq
-// - Getting Started https://dearimgui.com/getting-started
-// - Documentation https://dearimgui.com/docs (same as your local docs/ folder).
-// - Introduction, links and more at the top of imgui.cpp
-
-#include "imgui.h"
-#include "imgui_impl_dx9.h"
-#include "imgui_impl_win32.h"
-#include <d3d9.h>
-#include <tchar.h>
-
-// Data
-static LPDIRECT3D9 g_pD3D = nullptr;
-static LPDIRECT3DDEVICE9 g_pd3dDevice = nullptr;
-static bool g_DeviceLost = false;
-static UINT g_ResizeWidth = 0, g_ResizeHeight = 0;
-static D3DPRESENT_PARAMETERS g_d3dpp = {};
-
-// Forward declarations of helper functions
-bool CreateDeviceD3D(HWND hWnd);
-void CleanupDeviceD3D();
-void ResetDevice();
-LRESULT WINAPI WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);
-
-// Main code
-int main(int, char**)
-{
- // Make process DPI aware and obtain main monitor scale
- ImGui_ImplWin32_EnableDpiAwareness();
- float main_scale = ImGui_ImplWin32_GetDpiScaleForMonitor(::MonitorFromPoint(POINT{ 0, 0 }, MONITOR_DEFAULTTOPRIMARY));
-
- // Create application window
- WNDCLASSEXW wc = { sizeof(wc), CS_CLASSDC, WndProc, 0L, 0L, GetModuleHandle(nullptr), nullptr, nullptr, nullptr, nullptr, L"ImGui Example", nullptr };
- ::RegisterClassExW(&wc);
- HWND hwnd = ::CreateWindowW(wc.lpszClassName, L"Dear ImGui DirectX9 Example", WS_OVERLAPPEDWINDOW, 100, 100, (int)(1280 * main_scale), (int)(800 * main_scale), nullptr, nullptr, wc.hInstance, nullptr);
-
- // Initialize Direct3D
- if (!CreateDeviceD3D(hwnd))
- {
- CleanupDeviceD3D();
- ::UnregisterClassW(wc.lpszClassName, wc.hInstance);
- return 1;
- }
-
- // Show the window
- ::ShowWindow(hwnd, SW_SHOWDEFAULT);
- ::UpdateWindow(hwnd);
-
- // Setup Dear ImGui context
- IMGUI_CHECKVERSION();
- ImGui::CreateContext();
- ImGuiIO& io = ImGui::GetIO(); (void)io;
- io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard; // Enable Keyboard Controls
- io.ConfigFlags |= ImGuiConfigFlags_NavEnableGamepad; // Enable Gamepad Controls
-
- // Setup Dear ImGui style
- ImGui::StyleColorsDark();
- //ImGui::StyleColorsLight();
-
- // Setup scaling
- ImGuiStyle& style = ImGui::GetStyle();
- style.ScaleAllSizes(main_scale); // Bake a fixed style scale. (until we have a solution for dynamic style scaling, changing this requires resetting Style + calling this again)
- style.FontScaleDpi = main_scale; // Set initial font scale. (using io.ConfigDpiScaleFonts=true makes this unnecessary. We leave both here for documentation purpose)
-
- // Setup Platform/Renderer backends
- ImGui_ImplWin32_Init(hwnd);
- ImGui_ImplDX9_Init(g_pd3dDevice);
-
- // Load Fonts
- // - If no fonts are loaded, dear imgui will use the default font. You can also load multiple fonts and use ImGui::PushFont()/PopFont() to select them.
- // - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
- // - If the file cannot be loaded, the function will return a nullptr. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
- // - Use '#define IMGUI_ENABLE_FREETYPE' in your imconfig file to use Freetype for higher quality font rendering.
- // - Read 'docs/FONTS.md' for more instructions and details.
- // - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
- //style.FontSizeBase = 20.0f;
- //io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\segoeui.ttf");
- //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf");
- //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf");
- //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf");
- //ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf");
- //IM_ASSERT(font != nullptr);
-
- // Our state
- bool show_demo_window = true;
- bool show_another_window = false;
- ImVec4 clear_color = ImVec4(0.45f, 0.55f, 0.60f, 1.00f);
-
- // Main loop
- bool done = false;
- while (!done)
- {
- // Poll and handle messages (inputs, window resize, etc.)
- // See the WndProc() function below for our to dispatch events to the Win32 backend.
- MSG msg;
- while (::PeekMessage(&msg, nullptr, 0U, 0U, PM_REMOVE))
- {
- ::TranslateMessage(&msg);
- ::DispatchMessage(&msg);
- if (msg.message == WM_QUIT)
- done = true;
- }
- if (done)
- break;
-
- // Handle lost D3D9 device
- if (g_DeviceLost)
- {
- HRESULT hr = g_pd3dDevice->TestCooperativeLevel();
- if (hr == D3DERR_DEVICELOST)
- {
- ::Sleep(10);
- continue;
- }
- if (hr == D3DERR_DEVICENOTRESET)
- ResetDevice();
- g_DeviceLost = false;
- }
-
- // Handle window resize (we don't resize directly in the WM_SIZE handler)
- if (g_ResizeWidth != 0 && g_ResizeHeight != 0)
- {
- g_d3dpp.BackBufferWidth = g_ResizeWidth;
- g_d3dpp.BackBufferHeight = g_ResizeHeight;
- g_ResizeWidth = g_ResizeHeight = 0;
- ResetDevice();
- }
-
- // Start the Dear ImGui frame
- ImGui_ImplDX9_NewFrame();
- ImGui_ImplWin32_NewFrame();
- ImGui::NewFrame();
-
- // 1. Show the big demo window (Most of the sample code is in ImGui::ShowDemoWindow()! You can browse its code to learn more about Dear ImGui!).
- if (show_demo_window)
- ImGui::ShowDemoWindow(&show_demo_window);
-
- // 2. Show a simple window that we create ourselves. We use a Begin/End pair to create a named window.
- {
- static float f = 0.0f;
- static int counter = 0;
-
- ImGui::Begin("Hello, world!"); // Create a window called "Hello, world!" and append into it.
-
- ImGui::Text("This is some useful text."); // Display some text (you can use a format strings too)
- ImGui::Checkbox("Demo Window", &show_demo_window); // Edit bools storing our window open/close state
- ImGui::Checkbox("Another Window", &show_another_window);
-
- ImGui::SliderFloat("float", &f, 0.0f, 1.0f); // Edit 1 float using a slider from 0.0f to 1.0f
- ImGui::ColorEdit3("clear color", (float*)&clear_color); // Edit 3 floats representing a color
-
- if (ImGui::Button("Button")) // Buttons return true when clicked (most widgets return true when edited/activated)
- counter++;
- ImGui::SameLine();
- ImGui::Text("counter = %d", counter);
-
- ImGui::Text("Application average %.3f ms/frame (%.1f FPS)", 1000.0f / io.Framerate, io.Framerate);
- ImGui::End();
- }
-
- // 3. Show another simple window.
- if (show_another_window)
- {
- ImGui::Begin("Another Window", &show_another_window); // Pass a pointer to our bool variable (the window will have a closing button that will clear the bool when clicked)
- ImGui::Text("Hello from another window!");
- if (ImGui::Button("Close Me"))
- show_another_window = false;
- ImGui::End();
- }
-
- // Rendering
- ImGui::EndFrame();
- g_pd3dDevice->SetRenderState(D3DRS_ZENABLE, FALSE);
- g_pd3dDevice->SetRenderState(D3DRS_ALPHABLENDENABLE, FALSE);
- g_pd3dDevice->SetRenderState(D3DRS_SCISSORTESTENABLE, FALSE);
- D3DCOLOR clear_col_dx = D3DCOLOR_RGBA((int)(clear_color.x*clear_color.w*255.0f), (int)(clear_color.y*clear_color.w*255.0f), (int)(clear_color.z*clear_color.w*255.0f), (int)(clear_color.w*255.0f));
- g_pd3dDevice->Clear(0, nullptr, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER, clear_col_dx, 1.0f, 0);
- if (g_pd3dDevice->BeginScene() >= 0)
- {
- ImGui::Render();
- ImGui_ImplDX9_RenderDrawData(ImGui::GetDrawData());
- g_pd3dDevice->EndScene();
- }
- HRESULT result = g_pd3dDevice->Present(nullptr, nullptr, nullptr, nullptr);
- if (result == D3DERR_DEVICELOST)
- g_DeviceLost = true;
- }
-
- // Cleanup
- ImGui_ImplDX9_Shutdown();
- ImGui_ImplWin32_Shutdown();
- ImGui::DestroyContext();
-
- CleanupDeviceD3D();
- ::DestroyWindow(hwnd);
- ::UnregisterClassW(wc.lpszClassName, wc.hInstance);
-
- return 0;
-}
-
-// Helper functions
-
-bool CreateDeviceD3D(HWND hWnd)
-{
- if ((g_pD3D = Direct3DCreate9(D3D_SDK_VERSION)) == nullptr)
- return false;
-
- // Create the D3DDevice
- ZeroMemory(&g_d3dpp, sizeof(g_d3dpp));
- g_d3dpp.Windowed = TRUE;
- g_d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;
- g_d3dpp.BackBufferFormat = D3DFMT_UNKNOWN; // Need to use an explicit format with alpha if needing per-pixel alpha composition.
- g_d3dpp.EnableAutoDepthStencil = TRUE;
- g_d3dpp.AutoDepthStencilFormat = D3DFMT_D16;
- g_d3dpp.PresentationInterval = D3DPRESENT_INTERVAL_ONE; // Present with vsync
- //g_d3dpp.PresentationInterval = D3DPRESENT_INTERVAL_IMMEDIATE; // Present without vsync, maximum unthrottled framerate
- if (g_pD3D->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd, D3DCREATE_HARDWARE_VERTEXPROCESSING, &g_d3dpp, &g_pd3dDevice) < 0)
- return false;
-
- return true;
-}
-
-void CleanupDeviceD3D()
-{
- if (g_pd3dDevice) { g_pd3dDevice->Release(); g_pd3dDevice = nullptr; }
- if (g_pD3D) { g_pD3D->Release(); g_pD3D = nullptr; }
-}
-
-void ResetDevice()
-{
- ImGui_ImplDX9_InvalidateDeviceObjects();
- HRESULT hr = g_pd3dDevice->Reset(&g_d3dpp);
- if (hr == D3DERR_INVALIDCALL)
- IM_ASSERT(0);
- ImGui_ImplDX9_CreateDeviceObjects();
-}
-
-// Forward declare message handler from imgui_impl_win32.cpp
-extern IMGUI_IMPL_API LRESULT ImGui_ImplWin32_WndProcHandler(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);
-
-// Win32 message handler
-// You can read the io.WantCaptureMouse, io.WantCaptureKeyboard flags to tell if dear imgui wants to use your inputs.
-// - When io.WantCaptureMouse is true, do not dispatch mouse input data to your main application, or clear/overwrite your copy of the mouse data.
-// - When io.WantCaptureKeyboard is true, do not dispatch keyboard input data to your main application, or clear/overwrite your copy of the keyboard data.
-// Generally you may always pass all inputs to dear imgui, and hide them from your application based on those two flags.
-LRESULT WINAPI WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
-{
- if (ImGui_ImplWin32_WndProcHandler(hWnd, msg, wParam, lParam))
- return true;
-
- switch (msg)
- {
- case WM_SIZE:
- if (wParam == SIZE_MINIMIZED)
- return 0;
- g_ResizeWidth = (UINT)LOWORD(lParam); // Queue resize
- g_ResizeHeight = (UINT)HIWORD(lParam);
- return 0;
- case WM_SYSCOMMAND:
- if ((wParam & 0xfff0) == SC_KEYMENU) // Disable ALT application menu
- return 0;
- break;
- case WM_DESTROY:
- ::PostQuitMessage(0);
- return 0;
- }
- return ::DefWindowProcW(hWnd, msg, wParam, lParam);
-}
diff --git a/imgui-1.92.1/examples/example_win32_opengl3/build_mingw.bat b/imgui-1.92.1/examples/example_win32_opengl3/build_mingw.bat
deleted file mode 100644
index e9f804f..0000000
--- a/imgui-1.92.1/examples/example_win32_opengl3/build_mingw.bat
+++ /dev/null
@@ -1,8 +0,0 @@
-@REM Build for MINGW64 or 32 from MSYS2.
-@set OUT_DIR=Debug
-@set OUT_EXE=example_win32_opengl3
-@set INCLUDES=-I../.. -I../../backends
-@set SOURCES=main.cpp ../../backends/imgui_impl_opengl3.cpp ../../backends/imgui_impl_win32.cpp ../../imgui*.cpp
-@set LIBS=-lopengl32 -lgdi32 -ldwmapi
-mkdir %OUT_DIR%
-g++ -DUNICODE %INCLUDES% %SOURCES% -o %OUT_DIR%/%OUT_EXE%.exe --static -mwindows %LIBS% %LIBS%
diff --git a/imgui-1.92.1/examples/example_win32_opengl3/build_win32.bat b/imgui-1.92.1/examples/example_win32_opengl3/build_win32.bat
deleted file mode 100644
index 48df080..0000000
--- a/imgui-1.92.1/examples/example_win32_opengl3/build_win32.bat
+++ /dev/null
@@ -1,8 +0,0 @@
-@REM Build for Visual Studio compiler. Run your copy of vcvars32.bat or vcvarsall.bat to setup command-line compiler.
-@set OUT_DIR=Debug
-@set OUT_EXE=example_win32_opengl3
-@set INCLUDES=/I..\.. /I..\..\backends
-@set SOURCES=main.cpp ..\..\backends\imgui_impl_opengl3.cpp ..\..\backends\imgui_impl_win32.cpp ..\..\imgui*.cpp
-@set LIBS=opengl32.lib
-mkdir %OUT_DIR%
-cl /nologo /Zi /MD /utf-8 %INCLUDES% /D UNICODE /D _UNICODE %SOURCES% /Fe%OUT_DIR%/%OUT_EXE%.exe /Fo%OUT_DIR%/ /link %LIBS%
diff --git a/imgui-1.92.1/examples/example_win32_opengl3/example_win32_opengl3.vcxproj b/imgui-1.92.1/examples/example_win32_opengl3/example_win32_opengl3.vcxproj
deleted file mode 100644
index 98fc38f..0000000
--- a/imgui-1.92.1/examples/example_win32_opengl3/example_win32_opengl3.vcxproj
+++ /dev/null
@@ -1,176 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="Debug|Win32">
- <Configuration>Debug</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Debug|x64">
- <Configuration>Debug</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|Win32">
- <Configuration>Release</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|x64">
- <Configuration>Release</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- </ItemGroup>
- <PropertyGroup Label="Globals">
- <ProjectGuid>{C624E5FF-D4FE-4D35-9164-B8A91864F98E}</ProjectGuid>
- <RootNamespace>example_win32_opengl2</RootNamespace>
- <WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>true</UseDebugLibraries>
- <CharacterSet>Unicode</CharacterSet>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>true</UseDebugLibraries>
- <CharacterSet>Unicode</CharacterSet>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>false</UseDebugLibraries>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- <CharacterSet>Unicode</CharacterSet>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>false</UseDebugLibraries>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- <CharacterSet>Unicode</CharacterSet>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
- <ImportGroup Label="ExtensionSettings">
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <PropertyGroup Label="UserMacros" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <OutDir>$(ProjectDir)$(Configuration)\</OutDir>
- <IntDir>$(ProjectDir)$(Configuration)\</IntDir>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <OutDir>$(ProjectDir)$(Configuration)\</OutDir>
- <IntDir>$(ProjectDir)$(Configuration)\</IntDir>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <OutDir>$(ProjectDir)$(Configuration)\</OutDir>
- <IntDir>$(ProjectDir)$(Configuration)\</IntDir>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <OutDir>$(ProjectDir)$(Configuration)\</OutDir>
- <IntDir>$(ProjectDir)$(Configuration)\</IntDir>
- </PropertyGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <ClCompile>
- <WarningLevel>Level4</WarningLevel>
- <Optimization>Disabled</Optimization>
- <AdditionalIncludeDirectories>..\..;..\..\backends;</AdditionalIncludeDirectories>
- <AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
- </ClCompile>
- <Link>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
- <AdditionalDependencies>opengl32.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <SubSystem>Console</SubSystem>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <ClCompile>
- <WarningLevel>Level4</WarningLevel>
- <Optimization>Disabled</Optimization>
- <AdditionalIncludeDirectories>..\..;..\..\backends;</AdditionalIncludeDirectories>
- <AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
- </ClCompile>
- <Link>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
- <AdditionalDependencies>opengl32.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <SubSystem>Console</SubSystem>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <ClCompile>
- <WarningLevel>Level4</WarningLevel>
- <Optimization>MaxSpeed</Optimization>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <IntrinsicFunctions>true</IntrinsicFunctions>
- <AdditionalIncludeDirectories>..\..;..\..\backends;</AdditionalIncludeDirectories>
- <BufferSecurityCheck>false</BufferSecurityCheck>
- <AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
- </ClCompile>
- <Link>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- <OptimizeReferences>true</OptimizeReferences>
- <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
- <AdditionalDependencies>opengl32.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <SubSystem>Console</SubSystem>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <ClCompile>
- <WarningLevel>Level4</WarningLevel>
- <Optimization>MaxSpeed</Optimization>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <IntrinsicFunctions>true</IntrinsicFunctions>
- <AdditionalIncludeDirectories>..\..;..\..\backends;</AdditionalIncludeDirectories>
- <BufferSecurityCheck>false</BufferSecurityCheck>
- <AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
- </ClCompile>
- <Link>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- <OptimizeReferences>true</OptimizeReferences>
- <AdditionalLibraryDirectories>%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
- <AdditionalDependencies>opengl32.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <SubSystem>Console</SubSystem>
- </Link>
- </ItemDefinitionGroup>
- <ItemGroup>
- <ClCompile Include="..\..\imgui.cpp" />
- <ClCompile Include="..\..\imgui_demo.cpp" />
- <ClCompile Include="..\..\imgui_draw.cpp" />
- <ClCompile Include="..\..\imgui_tables.cpp" />
- <ClCompile Include="..\..\imgui_widgets.cpp" />
- <ClCompile Include="..\..\backends\imgui_impl_opengl3.cpp" />
- <ClCompile Include="..\..\backends\imgui_impl_win32.cpp" />
- <ClCompile Include="main.cpp" />
- </ItemGroup>
- <ItemGroup>
- <ClInclude Include="..\..\imconfig.h" />
- <ClInclude Include="..\..\imgui.h" />
- <ClInclude Include="..\..\imgui_internal.h" />
- <ClInclude Include="..\..\backends\imgui_impl_opengl3.h" />
- <ClInclude Include="..\..\backends\imgui_impl_opengl3_loader.h" />
- <ClInclude Include="..\..\backends\imgui_impl_win32.h" />
- </ItemGroup>
- <ItemGroup>
- <None Include="..\..\misc\natvis\imgui.natvis" />
- <None Include="..\README.txt" />
- </ItemGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
- <ImportGroup Label="ExtensionTargets">
- </ImportGroup>
-</Project> \ No newline at end of file
diff --git a/imgui-1.92.1/examples/example_win32_opengl3/example_win32_opengl3.vcxproj.filters b/imgui-1.92.1/examples/example_win32_opengl3/example_win32_opengl3.vcxproj.filters
deleted file mode 100644
index 47ed299..0000000
--- a/imgui-1.92.1/examples/example_win32_opengl3/example_win32_opengl3.vcxproj.filters
+++ /dev/null
@@ -1,64 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup>
- <Filter Include="sources">
- <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
- <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
- </Filter>
- <Filter Include="imgui">
- <UniqueIdentifier>{a82cba23-9de0-45c2-b1e3-2eb1666702de}</UniqueIdentifier>
- </Filter>
- </ItemGroup>
- <ItemGroup>
- <ClCompile Include="main.cpp">
- <Filter>sources</Filter>
- </ClCompile>
- <ClCompile Include="..\..\imgui.cpp">
- <Filter>imgui</Filter>
- </ClCompile>
- <ClCompile Include="..\..\imgui_demo.cpp">
- <Filter>imgui</Filter>
- </ClCompile>
- <ClCompile Include="..\..\imgui_draw.cpp">
- <Filter>imgui</Filter>
- </ClCompile>
- <ClCompile Include="..\..\imgui_widgets.cpp">
- <Filter>imgui</Filter>
- </ClCompile>
- <ClCompile Include="..\..\backends\imgui_impl_win32.cpp">
- <Filter>sources</Filter>
- </ClCompile>
- <ClCompile Include="..\..\imgui_tables.cpp">
- <Filter>imgui</Filter>
- </ClCompile>
- <ClCompile Include="..\..\backends\imgui_impl_opengl3.cpp">
- <Filter>sources</Filter>
- </ClCompile>
- </ItemGroup>
- <ItemGroup>
- <ClInclude Include="..\..\imconfig.h">
- <Filter>imgui</Filter>
- </ClInclude>
- <ClInclude Include="..\..\imgui.h">
- <Filter>imgui</Filter>
- </ClInclude>
- <ClInclude Include="..\..\imgui_internal.h">
- <Filter>imgui</Filter>
- </ClInclude>
- <ClInclude Include="..\..\backends\imgui_impl_win32.h">
- <Filter>sources</Filter>
- </ClInclude>
- <ClInclude Include="..\..\backends\imgui_impl_opengl3.h">
- <Filter>sources</Filter>
- </ClInclude>
- <ClInclude Include="..\..\backends\imgui_impl_opengl3_loader.h">
- <Filter>sources</Filter>
- </ClInclude>
- </ItemGroup>
- <ItemGroup>
- <None Include="..\README.txt" />
- <None Include="..\..\misc\natvis\imgui.natvis">
- <Filter>sources</Filter>
- </None>
- </ItemGroup>
-</Project> \ No newline at end of file
diff --git a/imgui-1.92.1/examples/example_win32_opengl3/main.cpp b/imgui-1.92.1/examples/example_win32_opengl3/main.cpp
deleted file mode 100644
index 820248c..0000000
--- a/imgui-1.92.1/examples/example_win32_opengl3/main.cpp
+++ /dev/null
@@ -1,243 +0,0 @@
-// Dear ImGui: standalone example application for Win32 + OpenGL 3
-
-// Learn about Dear ImGui:
-// - FAQ https://dearimgui.com/faq
-// - Getting Started https://dearimgui.com/getting-started
-// - Documentation https://dearimgui.com/docs (same as your local docs/ folder).
-// - Introduction, links and more at the top of imgui.cpp
-
-// This is provided for completeness, however it is strongly recommended you use OpenGL with SDL or GLFW.
-
-#include "imgui.h"
-#include "imgui_impl_opengl3.h"
-#include "imgui_impl_win32.h"
-#ifndef WIN32_LEAN_AND_MEAN
-#define WIN32_LEAN_AND_MEAN
-#endif
-#include <windows.h>
-#include <GL/GL.h>
-#include <tchar.h>
-
-// Data stored per platform window
-struct WGL_WindowData { HDC hDC; };
-
-// Data
-static HGLRC g_hRC;
-static WGL_WindowData g_MainWindow;
-static int g_Width;
-static int g_Height;
-
-// Forward declarations of helper functions
-bool CreateDeviceWGL(HWND hWnd, WGL_WindowData* data);
-void CleanupDeviceWGL(HWND hWnd, WGL_WindowData* data);
-void ResetDeviceWGL();
-LRESULT WINAPI WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);
-
-// Main code
-int main(int, char**)
-{
- // Create application window
- //ImGui_ImplWin32_EnableDpiAwareness();
- WNDCLASSEXW wc = { sizeof(wc), CS_OWNDC, WndProc, 0L, 0L, GetModuleHandle(nullptr), nullptr, nullptr, nullptr, nullptr, L"ImGui Example", nullptr };
- ::RegisterClassExW(&wc);
- HWND hwnd = ::CreateWindowW(wc.lpszClassName, L"Dear ImGui Win32+OpenGL3 Example", WS_OVERLAPPEDWINDOW, 100, 100, 1280, 800, nullptr, nullptr, wc.hInstance, nullptr);
-
- // Initialize OpenGL
- if (!CreateDeviceWGL(hwnd, &g_MainWindow))
- {
- CleanupDeviceWGL(hwnd, &g_MainWindow);
- ::DestroyWindow(hwnd);
- ::UnregisterClassW(wc.lpszClassName, wc.hInstance);
- return 1;
- }
- wglMakeCurrent(g_MainWindow.hDC, g_hRC);
-
- // Show the window
- ::ShowWindow(hwnd, SW_SHOWDEFAULT);
- ::UpdateWindow(hwnd);
-
- // Setup Dear ImGui context
- IMGUI_CHECKVERSION();
- ImGui::CreateContext();
- ImGuiIO& io = ImGui::GetIO(); (void)io;
- io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard; // Enable Keyboard Controls
- io.ConfigFlags |= ImGuiConfigFlags_NavEnableGamepad; // Enable Gamepad Controls
-
- // Setup Dear ImGui style
- ImGui::StyleColorsDark();
- //ImGui::StyleColorsClassic();
-
- // Setup Platform/Renderer backends
- ImGui_ImplWin32_InitForOpenGL(hwnd);
- ImGui_ImplOpenGL3_Init();
-
- // Load Fonts
- // - If no fonts are loaded, dear imgui will use the default font. You can also load multiple fonts and use ImGui::PushFont()/PopFont() to select them.
- // - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
- // - If the file cannot be loaded, the function will return a nullptr. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
- // - Use '#define IMGUI_ENABLE_FREETYPE' in your imconfig file to use Freetype for higher quality font rendering.
- // - Read 'docs/FONTS.md' for more instructions and details.
- // - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
- //style.FontSizeBase = 20.0f;
- //io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\segoeui.ttf");
- //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf");
- //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf");
- //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf");
- //ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf");
- //IM_ASSERT(font != nullptr);
-
- // Our state
- bool show_demo_window = true;
- bool show_another_window = false;
- ImVec4 clear_color = ImVec4(0.45f, 0.55f, 0.60f, 1.00f);
-
- // Main loop
- bool done = false;
- while (!done)
- {
- // Poll and handle messages (inputs, window resize, etc.)
- // See the WndProc() function below for our to dispatch events to the Win32 backend.
- MSG msg;
- while (::PeekMessage(&msg, nullptr, 0U, 0U, PM_REMOVE))
- {
- ::TranslateMessage(&msg);
- ::DispatchMessage(&msg);
- if (msg.message == WM_QUIT)
- done = true;
- }
- if (done)
- break;
- if (::IsIconic(hwnd))
- {
- ::Sleep(10);
- continue;
- }
-
- // Start the Dear ImGui frame
- ImGui_ImplOpenGL3_NewFrame();
- ImGui_ImplWin32_NewFrame();
- ImGui::NewFrame();
-
- // 1. Show the big demo window (Most of the sample code is in ImGui::ShowDemoWindow()! You can browse its code to learn more about Dear ImGui!).
- if (show_demo_window)
- ImGui::ShowDemoWindow(&show_demo_window);
-
- // 2. Show a simple window that we create ourselves. We use a Begin/End pair to create a named window.
- {
- static float f = 0.0f;
- static int counter = 0;
-
- ImGui::Begin("Hello, world!"); // Create a window called "Hello, world!" and append into it.
-
- ImGui::Text("This is some useful text."); // Display some text (you can use a format strings too)
- ImGui::Checkbox("Demo Window", &show_demo_window); // Edit bools storing our window open/close state
- ImGui::Checkbox("Another Window", &show_another_window);
-
- ImGui::SliderFloat("float", &f, 0.0f, 1.0f); // Edit 1 float using a slider from 0.0f to 1.0f
- ImGui::ColorEdit3("clear color", (float*)&clear_color); // Edit 3 floats representing a color
-
- if (ImGui::Button("Button")) // Buttons return true when clicked (most widgets return true when edited/activated)
- counter++;
- ImGui::SameLine();
- ImGui::Text("counter = %d", counter);
-
- ImGui::Text("Application average %.3f ms/frame (%.1f FPS)", 1000.0f / io.Framerate, io.Framerate);
- ImGui::End();
- }
-
- // 3. Show another simple window.
- if (show_another_window)
- {
- ImGui::Begin("Another Window", &show_another_window); // Pass a pointer to our bool variable (the window will have a closing button that will clear the bool when clicked)
- ImGui::Text("Hello from another window!");
- if (ImGui::Button("Close Me"))
- show_another_window = false;
- ImGui::End();
- }
-
- // Rendering
- ImGui::Render();
- glViewport(0, 0, g_Width, g_Height);
- glClearColor(clear_color.x, clear_color.y, clear_color.z, clear_color.w);
- glClear(GL_COLOR_BUFFER_BIT);
- ImGui_ImplOpenGL3_RenderDrawData(ImGui::GetDrawData());
-
- // Present
- ::SwapBuffers(g_MainWindow.hDC);
- }
-
- ImGui_ImplOpenGL3_Shutdown();
- ImGui_ImplWin32_Shutdown();
- ImGui::DestroyContext();
-
- CleanupDeviceWGL(hwnd, &g_MainWindow);
- wglDeleteContext(g_hRC);
- ::DestroyWindow(hwnd);
- ::UnregisterClassW(wc.lpszClassName, wc.hInstance);
-
- return 0;
-}
-
-// Helper functions
-bool CreateDeviceWGL(HWND hWnd, WGL_WindowData* data)
-{
- HDC hDc = ::GetDC(hWnd);
- PIXELFORMATDESCRIPTOR pfd = { 0 };
- pfd.nSize = sizeof(pfd);
- pfd.nVersion = 1;
- pfd.dwFlags = PFD_DRAW_TO_WINDOW | PFD_SUPPORT_OPENGL | PFD_DOUBLEBUFFER;
- pfd.iPixelType = PFD_TYPE_RGBA;
- pfd.cColorBits = 32;
-
- const int pf = ::ChoosePixelFormat(hDc, &pfd);
- if (pf == 0)
- return false;
- if (::SetPixelFormat(hDc, pf, &pfd) == FALSE)
- return false;
- ::ReleaseDC(hWnd, hDc);
-
- data->hDC = ::GetDC(hWnd);
- if (!g_hRC)
- g_hRC = wglCreateContext(data->hDC);
- return true;
-}
-
-void CleanupDeviceWGL(HWND hWnd, WGL_WindowData* data)
-{
- wglMakeCurrent(nullptr, nullptr);
- ::ReleaseDC(hWnd, data->hDC);
-}
-
-// Forward declare message handler from imgui_impl_win32.cpp
-extern IMGUI_IMPL_API LRESULT ImGui_ImplWin32_WndProcHandler(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);
-
-// Win32 message handler
-// You can read the io.WantCaptureMouse, io.WantCaptureKeyboard flags to tell if dear imgui wants to use your inputs.
-// - When io.WantCaptureMouse is true, do not dispatch mouse input data to your main application, or clear/overwrite your copy of the mouse data.
-// - When io.WantCaptureKeyboard is true, do not dispatch keyboard input data to your main application, or clear/overwrite your copy of the keyboard data.
-// Generally you may always pass all inputs to dear imgui, and hide them from your application based on those two flags.
-LRESULT WINAPI WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
-{
- if (ImGui_ImplWin32_WndProcHandler(hWnd, msg, wParam, lParam))
- return true;
-
- switch (msg)
- {
- case WM_SIZE:
- if (wParam != SIZE_MINIMIZED)
- {
- g_Width = LOWORD(lParam);
- g_Height = HIWORD(lParam);
- }
- return 0;
- case WM_SYSCOMMAND:
- if ((wParam & 0xfff0) == SC_KEYMENU) // Disable ALT application menu
- return 0;
- break;
- case WM_DESTROY:
- ::PostQuitMessage(0);
- return 0;
- }
- return ::DefWindowProcW(hWnd, msg, wParam, lParam);
-}
diff --git a/imgui-1.92.1/examples/example_win32_vulkan/build_win32.bat b/imgui-1.92.1/examples/example_win32_vulkan/build_win32.bat
deleted file mode 100644
index 4bfb7ca..0000000
--- a/imgui-1.92.1/examples/example_win32_vulkan/build_win32.bat
+++ /dev/null
@@ -1,9 +0,0 @@
-@REM Build for Visual Studio compiler. Run your copy of vcvars32.bat or vcvarsall.bat to setup command-line compiler.
-@set OUT_DIR=Debug
-@set OUT_EXE=example_win32_vulkan
-@set INCLUDES=/I..\.. /I..\..\backends /I "%WindowsSdkDir%Include\um" /I "%WindowsSdkDir%Include\shared" /I %VULKAN_SDK%\include
-@set SOURCES=main.cpp ..\..\backends\imgui_impl_vulkan.cpp ..\..\backends\imgui_impl_win32.cpp ..\..\imgui*.cpp
-@set LIBS=/libpath:%VULKAN_SDK%\lib32 vulkan-1.lib
-
-mkdir %OUT_DIR%
-cl /nologo /Zi /MD /utf-8 %INCLUDES% /D UNICODE /D _UNICODE %SOURCES% /Fe%OUT_DIR%/%OUT_EXE%.exe /Fo%OUT_DIR%/ /link %LIBS%
diff --git a/imgui-1.92.1/examples/example_win32_vulkan/build_win64.bat b/imgui-1.92.1/examples/example_win32_vulkan/build_win64.bat
deleted file mode 100644
index f8c66f7..0000000
--- a/imgui-1.92.1/examples/example_win32_vulkan/build_win64.bat
+++ /dev/null
@@ -1,9 +0,0 @@
-@REM Build for Visual Studio compiler. Run your copy of vcvars32.bat or vcvarsall.bat to setup command-line compiler.
-@set OUT_DIR=Debug
-@set OUT_EXE=example_win32_vulkan
-@set INCLUDES=/I..\.. /I..\..\backends /I "%WindowsSdkDir%Include\um" /I "%WindowsSdkDir%Include\shared" /I %VULKAN_SDK%\include
-@set SOURCES=main.cpp ..\..\backends\imgui_impl_vulkan.cpp ..\..\backends\imgui_impl_win32.cpp ..\..\imgui*.cpp
-@set LIBS=/libpath:%VULKAN_SDK%\lib vulkan-1.lib
-
-mkdir %OUT_DIR%
-cl /nologo /Zi /MD /utf-8 %INCLUDES% /D UNICODE /D _UNICODE %SOURCES% /Fe%OUT_DIR%/%OUT_EXE%.exe /Fo%OUT_DIR%/ /link %LIBS%
diff --git a/imgui-1.92.1/examples/example_win32_vulkan/example_win32_vulkan.vcxproj b/imgui-1.92.1/examples/example_win32_vulkan/example_win32_vulkan.vcxproj
deleted file mode 100644
index dab8afd..0000000
--- a/imgui-1.92.1/examples/example_win32_vulkan/example_win32_vulkan.vcxproj
+++ /dev/null
@@ -1,178 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="Debug|Win32">
- <Configuration>Debug</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Debug|x64">
- <Configuration>Debug</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|Win32">
- <Configuration>Release</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|x64">
- <Configuration>Release</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- </ItemGroup>
- <PropertyGroup Label="Globals">
- <ProjectGuid>{0A1E32DF-E0F4-4CCE-B3DC-9644C503BD88}</ProjectGuid>
- <RootNamespace>example_win32_directx11</RootNamespace>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>true</UseDebugLibraries>
- <CharacterSet>Unicode</CharacterSet>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>true</UseDebugLibraries>
- <CharacterSet>Unicode</CharacterSet>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>false</UseDebugLibraries>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- <CharacterSet>Unicode</CharacterSet>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>false</UseDebugLibraries>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- <CharacterSet>Unicode</CharacterSet>
- <PlatformToolset>v140</PlatformToolset>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
- <ImportGroup Label="ExtensionSettings">
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <PropertyGroup Label="UserMacros" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <OutDir>$(ProjectDir)$(Configuration)\</OutDir>
- <IntDir>$(ProjectDir)$(Configuration)\</IntDir>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <OutDir>$(ProjectDir)$(Configuration)\</OutDir>
- <IntDir>$(ProjectDir)$(Configuration)\</IntDir>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <OutDir>$(ProjectDir)$(Configuration)\</OutDir>
- <IntDir>$(ProjectDir)$(Configuration)\</IntDir>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <OutDir>$(ProjectDir)$(Configuration)\</OutDir>
- <IntDir>$(ProjectDir)$(Configuration)\</IntDir>
- </PropertyGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <ClCompile>
- <WarningLevel>Level4</WarningLevel>
- <Optimization>Disabled</Optimization>
- <AdditionalIncludeDirectories>..\..;..\..\backends;%VULKAN_SDK%\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
- </ClCompile>
- <Link>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <AdditionalDependencies>vulkan-1.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <AdditionalLibraryDirectories>%VULKAN_SDK%\lib32;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
- <SubSystem>Console</SubSystem>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <ClCompile>
- <WarningLevel>Level4</WarningLevel>
- <Optimization>Disabled</Optimization>
- <AdditionalIncludeDirectories>..\..;..\..\backends;%VULKAN_SDK%\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
- </ClCompile>
- <Link>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <AdditionalDependencies>vulkan-1.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <AdditionalLibraryDirectories>%VULKAN_SDK%\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
- <SubSystem>Console</SubSystem>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <ClCompile>
- <WarningLevel>Level4</WarningLevel>
- <Optimization>MaxSpeed</Optimization>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <IntrinsicFunctions>true</IntrinsicFunctions>
- <AdditionalIncludeDirectories>..\..;..\..\backends;%VULKAN_SDK%\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <BufferSecurityCheck>false</BufferSecurityCheck>
- <AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
- </ClCompile>
- <Link>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- <OptimizeReferences>true</OptimizeReferences>
- <AdditionalDependencies>vulkan-1.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <AdditionalLibraryDirectories>%VULKAN_SDK%\lib32;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
- <SubSystem>Console</SubSystem>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <ClCompile>
- <WarningLevel>Level4</WarningLevel>
- <Optimization>MaxSpeed</Optimization>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <IntrinsicFunctions>true</IntrinsicFunctions>
- <AdditionalIncludeDirectories>..\..;..\..\backends;%VULKAN_SDK%\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
- </ClCompile>
- <Link>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- <OptimizeReferences>true</OptimizeReferences>
- <AdditionalDependencies>vulkan-1.lib;%(AdditionalDependencies)</AdditionalDependencies>
- <AdditionalLibraryDirectories>%VULKAN_SDK%\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
- <SubSystem>Console</SubSystem>
- </Link>
- </ItemDefinitionGroup>
- <ItemGroup>
- <ClInclude Include="..\..\imconfig.h" />
- <ClInclude Include="..\..\imgui.h" />
- <ClInclude Include="..\..\imgui_internal.h" />
- <ClInclude Include="..\..\backends\imgui_impl_vulkan.h" />
- <ClInclude Include="..\..\backends\imgui_impl_win32.h" />
- </ItemGroup>
- <ItemGroup>
- <ClCompile Include="..\..\imgui.cpp" />
- <ClCompile Include="..\..\imgui_demo.cpp" />
- <ClCompile Include="..\..\imgui_draw.cpp" />
- <ClCompile Include="..\..\imgui_tables.cpp" />
- <ClCompile Include="..\..\imgui_widgets.cpp" />
- <ClCompile Include="..\..\backends\imgui_impl_vulkan.cpp" />
- <ClCompile Include="..\..\backends\imgui_impl_win32.cpp" />
- <ClCompile Include="main.cpp" />
- </ItemGroup>
- <ItemGroup>
- <None Include="..\..\misc\debuggers\imgui.natstepfilter" />
- <None Include="..\..\misc\debuggers\imgui.natvis" />
- <None Include="..\README.txt" />
- </ItemGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
- <ImportGroup Label="ExtensionTargets">
- </ImportGroup>
-</Project> \ No newline at end of file
diff --git a/imgui-1.92.1/examples/example_win32_vulkan/example_win32_vulkan.vcxproj.filters b/imgui-1.92.1/examples/example_win32_vulkan/example_win32_vulkan.vcxproj.filters
deleted file mode 100644
index c91a958..0000000
--- a/imgui-1.92.1/examples/example_win32_vulkan/example_win32_vulkan.vcxproj.filters
+++ /dev/null
@@ -1,63 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup>
- <Filter Include="imgui">
- <UniqueIdentifier>{0587d7a3-f2ce-4d56-b84f-a0005d3bfce6}</UniqueIdentifier>
- </Filter>
- <Filter Include="sources">
- <UniqueIdentifier>{08e36723-ce4f-4cff-9662-c40801cf1acf}</UniqueIdentifier>
- </Filter>
- </ItemGroup>
- <ItemGroup>
- <ClInclude Include="..\..\imconfig.h">
- <Filter>imgui</Filter>
- </ClInclude>
- <ClInclude Include="..\..\imgui.h">
- <Filter>imgui</Filter>
- </ClInclude>
- <ClInclude Include="..\..\imgui_internal.h">
- <Filter>imgui</Filter>
- </ClInclude>
- <ClInclude Include="..\..\backends\imgui_impl_win32.h">
- <Filter>sources</Filter>
- </ClInclude>
- <ClInclude Include="..\..\backends\imgui_impl_vulkan.h">
- <Filter>sources</Filter>
- </ClInclude>
- </ItemGroup>
- <ItemGroup>
- <ClCompile Include="..\..\imgui.cpp">
- <Filter>imgui</Filter>
- </ClCompile>
- <ClCompile Include="main.cpp">
- <Filter>sources</Filter>
- </ClCompile>
- <ClCompile Include="..\..\imgui_demo.cpp">
- <Filter>imgui</Filter>
- </ClCompile>
- <ClCompile Include="..\..\imgui_draw.cpp">
- <Filter>imgui</Filter>
- </ClCompile>
- <ClCompile Include="..\..\imgui_widgets.cpp">
- <Filter>imgui</Filter>
- </ClCompile>
- <ClCompile Include="..\..\backends\imgui_impl_win32.cpp">
- <Filter>sources</Filter>
- </ClCompile>
- <ClCompile Include="..\..\backends\imgui_impl_vulkan.cpp">
- <Filter>sources</Filter>
- </ClCompile>
- <ClCompile Include="..\..\imgui_tables.cpp">
- <Filter>imgui</Filter>
- </ClCompile>
- </ItemGroup>
- <ItemGroup>
- <None Include="..\README.txt" />
- <None Include="..\..\misc\debuggers\imgui.natvis">
- <Filter>imgui</Filter>
- </None>
- <None Include="..\..\misc\debuggers\imgui.natstepfilter">
- <Filter>imgui</Filter>
- </None>
- </ItemGroup>
-</Project> \ No newline at end of file
diff --git a/imgui-1.92.1/examples/example_win32_vulkan/main.cpp b/imgui-1.92.1/examples/example_win32_vulkan/main.cpp
deleted file mode 100644
index a98f16f..0000000
--- a/imgui-1.92.1/examples/example_win32_vulkan/main.cpp
+++ /dev/null
@@ -1,559 +0,0 @@
-// Dear ImGui: standalone example application for Win32 + Vulkan
-
-// Learn about Dear ImGui:
-// - FAQ https://dearimgui.com/faq
-// - Getting Started https://dearimgui.com/getting-started
-// - Documentation https://dearimgui.com/docs (same as your local docs/ folder).
-// - Introduction, links and more at the top of imgui.cpp
-
-// Important note to the reader who wish to integrate imgui_impl_vulkan.cpp/.h in their own engine/app.
-// - Common ImGui_ImplVulkan_XXX functions and structures are used to interface with imgui_impl_vulkan.cpp/.h.
-// You will use those if you want to use this rendering backend in your engine/app.
-// - Helper ImGui_ImplVulkanH_XXX functions and structures are only used by this example (main.cpp) and by
-// the backend itself (imgui_impl_vulkan.cpp), but should PROBABLY NOT be used by your own engine/app code.
-// Read comments in imgui_impl_vulkan.h.
-
-#include "imgui.h"
-#include "imgui_impl_win32.h"
-#define VK_USE_PLATFORM_WIN32_KHR
-#include "imgui_impl_vulkan.h"
-#include <windows.h>
-#include <stdio.h> // printf, fprintf
-#include <stdlib.h> // abort
-#include <tchar.h>
-
-// Volk headers
-#ifdef IMGUI_IMPL_VULKAN_USE_VOLK
-#define VOLK_IMPLEMENTATION
-#include <volk.h>
-#endif
-
-//#define APP_USE_UNLIMITED_FRAME_RATE
-#ifdef _DEBUG
-#define APP_USE_VULKAN_DEBUG_REPORT
-#endif
-
-// Data
-static VkAllocationCallbacks* g_Allocator = nullptr;
-static VkInstance g_Instance = VK_NULL_HANDLE;
-static VkPhysicalDevice g_PhysicalDevice = VK_NULL_HANDLE;
-static VkDevice g_Device = VK_NULL_HANDLE;
-static uint32_t g_QueueFamily = (uint32_t)-1;
-static VkQueue g_Queue = VK_NULL_HANDLE;
-static VkDebugReportCallbackEXT g_DebugReport = VK_NULL_HANDLE;
-static VkPipelineCache g_PipelineCache = VK_NULL_HANDLE;
-static VkDescriptorPool g_DescriptorPool = VK_NULL_HANDLE;
-
-static ImGui_ImplVulkanH_Window g_MainWindowData;
-static uint32_t g_MinImageCount = 2;
-static bool g_SwapChainRebuild = false;
-
-static void check_vk_result(VkResult err)
-{
- if (err == VK_SUCCESS)
- return;
- fprintf(stderr, "[vulkan] Error: VkResult = %d\n", err);
- if (err < 0)
- abort();
-}
-
-#ifdef APP_USE_VULKAN_DEBUG_REPORT
-static VKAPI_ATTR VkBool32 VKAPI_CALL debug_report(VkDebugReportFlagsEXT flags, VkDebugReportObjectTypeEXT objectType, uint64_t object, size_t location, int32_t messageCode, const char* pLayerPrefix, const char* pMessage, void* pUserData)
-{
- (void)flags; (void)object; (void)location; (void)messageCode; (void)pUserData; (void)pLayerPrefix; // Unused arguments
- fprintf(stderr, "[vulkan] Debug report from ObjectType: %i\nMessage: %s\n\n", objectType, pMessage);
- return VK_FALSE;
-}
-#endif // APP_USE_VULKAN_DEBUG_REPORT
-
-static bool IsExtensionAvailable(const ImVector<VkExtensionProperties>& properties, const char* extension)
-{
- for (const VkExtensionProperties& p : properties)
- if (strcmp(p.extensionName, extension) == 0)
- return true;
- return false;
-}
-
-static void SetupVulkan(ImVector<const char*> instance_extensions)
-{
- VkResult err;
-#ifdef IMGUI_IMPL_VULKAN_USE_VOLK
- volkInitialize();
-#endif
-
- // Create Vulkan Instance
- {
- VkInstanceCreateInfo create_info = {};
- create_info.sType = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO;
-
- // Enumerate available extensions
- uint32_t properties_count;
- ImVector<VkExtensionProperties> properties;
- vkEnumerateInstanceExtensionProperties(nullptr, &properties_count, nullptr);
- properties.resize(properties_count);
- err = vkEnumerateInstanceExtensionProperties(nullptr, &properties_count, properties.Data);
- check_vk_result(err);
-
- // Enable required extensions
- if (IsExtensionAvailable(properties, VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME))
- instance_extensions.push_back(VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME);
-#ifdef VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME
- if (IsExtensionAvailable(properties, VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME))
- {
- instance_extensions.push_back(VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME);
- create_info.flags |= VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR;
- }
-#endif
-
- // Enabling validation layers
-#ifdef APP_USE_VULKAN_DEBUG_REPORT
- const char* layers[] = { "VK_LAYER_KHRONOS_validation" };
- create_info.enabledLayerCount = 1;
- create_info.ppEnabledLayerNames = layers;
- instance_extensions.push_back("VK_EXT_debug_report");
-#endif
-
- // Create Vulkan Instance
- create_info.enabledExtensionCount = (uint32_t)instance_extensions.Size;
- create_info.ppEnabledExtensionNames = instance_extensions.Data;
- err = vkCreateInstance(&create_info, g_Allocator, &g_Instance);
- check_vk_result(err);
-#ifdef IMGUI_IMPL_VULKAN_USE_VOLK
- volkLoadInstance(g_Instance);
-#endif
-
- // Setup the debug report callback
-#ifdef APP_USE_VULKAN_DEBUG_REPORT
- auto f_vkCreateDebugReportCallbackEXT = (PFN_vkCreateDebugReportCallbackEXT)vkGetInstanceProcAddr(g_Instance, "vkCreateDebugReportCallbackEXT");
- IM_ASSERT(f_vkCreateDebugReportCallbackEXT != nullptr);
- VkDebugReportCallbackCreateInfoEXT debug_report_ci = {};
- debug_report_ci.sType = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT;
- debug_report_ci.flags = VK_DEBUG_REPORT_ERROR_BIT_EXT | VK_DEBUG_REPORT_WARNING_BIT_EXT | VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT;
- debug_report_ci.pfnCallback = debug_report;
- debug_report_ci.pUserData = nullptr;
- err = f_vkCreateDebugReportCallbackEXT(g_Instance, &debug_report_ci, g_Allocator, &g_DebugReport);
- check_vk_result(err);
-#endif
- }
-
- // Select Physical Device (GPU)
- g_PhysicalDevice = ImGui_ImplVulkanH_SelectPhysicalDevice(g_Instance);
- IM_ASSERT(g_PhysicalDevice != VK_NULL_HANDLE);
-
- // Select graphics queue family
- g_QueueFamily = ImGui_ImplVulkanH_SelectQueueFamilyIndex(g_PhysicalDevice);
- IM_ASSERT(g_QueueFamily != (uint32_t)-1);
-
- // Create Logical Device (with 1 queue)
- {
- ImVector<const char*> device_extensions;
- device_extensions.push_back("VK_KHR_swapchain");
-
- // Enumerate physical device extension
- uint32_t properties_count;
- ImVector<VkExtensionProperties> properties;
- vkEnumerateDeviceExtensionProperties(g_PhysicalDevice, nullptr, &properties_count, nullptr);
- properties.resize(properties_count);
- vkEnumerateDeviceExtensionProperties(g_PhysicalDevice, nullptr, &properties_count, properties.Data);
-#ifdef VK_KHR_PORTABILITY_SUBSET_EXTENSION_NAME
- if (IsExtensionAvailable(properties, VK_KHR_PORTABILITY_SUBSET_EXTENSION_NAME))
- device_extensions.push_back(VK_KHR_PORTABILITY_SUBSET_EXTENSION_NAME);
-#endif
-
- const float queue_priority[] = { 1.0f };
- VkDeviceQueueCreateInfo queue_info[1] = {};
- queue_info[0].sType = VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO;
- queue_info[0].queueFamilyIndex = g_QueueFamily;
- queue_info[0].queueCount = 1;
- queue_info[0].pQueuePriorities = queue_priority;
- VkDeviceCreateInfo create_info = {};
- create_info.sType = VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO;
- create_info.queueCreateInfoCount = sizeof(queue_info) / sizeof(queue_info[0]);
- create_info.pQueueCreateInfos = queue_info;
- create_info.enabledExtensionCount = (uint32_t)device_extensions.Size;
- create_info.ppEnabledExtensionNames = device_extensions.Data;
- err = vkCreateDevice(g_PhysicalDevice, &create_info, g_Allocator, &g_Device);
- check_vk_result(err);
- vkGetDeviceQueue(g_Device, g_QueueFamily, 0, &g_Queue);
- }
-
- // Create Descriptor Pool
- // If you wish to load e.g. additional textures you may need to alter pools sizes and maxSets.
- {
- VkDescriptorPoolSize pool_sizes[] =
- {
- { VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, IMGUI_IMPL_VULKAN_MINIMUM_IMAGE_SAMPLER_POOL_SIZE },
- };
- VkDescriptorPoolCreateInfo pool_info = {};
- pool_info.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO;
- pool_info.flags = VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT;
- pool_info.maxSets = 0;
- for (VkDescriptorPoolSize& pool_size : pool_sizes)
- pool_info.maxSets += pool_size.descriptorCount;
- pool_info.poolSizeCount = (uint32_t)IM_ARRAYSIZE(pool_sizes);
- pool_info.pPoolSizes = pool_sizes;
- err = vkCreateDescriptorPool(g_Device, &pool_info, g_Allocator, &g_DescriptorPool);
- check_vk_result(err);
- }
-}
-
-// All the ImGui_ImplVulkanH_XXX structures/functions are optional helpers used by the demo.
-// Your real engine/app may not use them.
-static void SetupVulkanWindow(ImGui_ImplVulkanH_Window* wd, VkSurfaceKHR surface, int width, int height)
-{
- wd->Surface = surface;
-
- // Check for WSI support
- VkBool32 res;
- vkGetPhysicalDeviceSurfaceSupportKHR(g_PhysicalDevice, g_QueueFamily, wd->Surface, &res);
- if (res != VK_TRUE)
- {
- fprintf(stderr, "Error no WSI support on physical device 0\n");
- exit(-1);
- }
-
- // Select Surface Format
- const VkFormat requestSurfaceImageFormat[] = { VK_FORMAT_B8G8R8A8_UNORM, VK_FORMAT_R8G8B8A8_UNORM, VK_FORMAT_B8G8R8_UNORM, VK_FORMAT_R8G8B8_UNORM };
- const VkColorSpaceKHR requestSurfaceColorSpace = VK_COLORSPACE_SRGB_NONLINEAR_KHR;
- wd->SurfaceFormat = ImGui_ImplVulkanH_SelectSurfaceFormat(g_PhysicalDevice, wd->Surface, requestSurfaceImageFormat, (size_t)IM_ARRAYSIZE(requestSurfaceImageFormat), requestSurfaceColorSpace);
-
- // Select Present Mode
-#ifdef APP_USE_UNLIMITED_FRAME_RATE
- VkPresentModeKHR present_modes[] = { VK_PRESENT_MODE_MAILBOX_KHR, VK_PRESENT_MODE_IMMEDIATE_KHR, VK_PRESENT_MODE_FIFO_KHR };
-#else
- VkPresentModeKHR present_modes[] = { VK_PRESENT_MODE_FIFO_KHR };
-#endif
- wd->PresentMode = ImGui_ImplVulkanH_SelectPresentMode(g_PhysicalDevice, wd->Surface, &present_modes[0], IM_ARRAYSIZE(present_modes));
- //printf("[vulkan] Selected PresentMode = %d\n", wd->PresentMode);
-
- // Create SwapChain, RenderPass, Framebuffer, etc.
- IM_ASSERT(g_MinImageCount >= 2);
- ImGui_ImplVulkanH_CreateOrResizeWindow(g_Instance, g_PhysicalDevice, g_Device, wd, g_QueueFamily, g_Allocator, width, height, g_MinImageCount);
-}
-
-static void CleanupVulkan()
-{
- vkDestroyDescriptorPool(g_Device, g_DescriptorPool, g_Allocator);
-
-#ifdef APP_USE_VULKAN_DEBUG_REPORT
- // Remove the debug report callback
- auto f_vkDestroyDebugReportCallbackEXT = (PFN_vkDestroyDebugReportCallbackEXT)vkGetInstanceProcAddr(g_Instance, "vkDestroyDebugReportCallbackEXT");
- f_vkDestroyDebugReportCallbackEXT(g_Instance, g_DebugReport, g_Allocator);
-#endif // APP_USE_VULKAN_DEBUG_REPORT
-
- vkDestroyDevice(g_Device, g_Allocator);
- vkDestroyInstance(g_Instance, g_Allocator);
-}
-
-static void CleanupVulkanWindow()
-{
- ImGui_ImplVulkanH_DestroyWindow(g_Instance, g_Device, &g_MainWindowData, g_Allocator);
-}
-
-static void FrameRender(ImGui_ImplVulkanH_Window* wd, ImDrawData* draw_data)
-{
- VkSemaphore image_acquired_semaphore = wd->FrameSemaphores[wd->SemaphoreIndex].ImageAcquiredSemaphore;
- VkSemaphore render_complete_semaphore = wd->FrameSemaphores[wd->SemaphoreIndex].RenderCompleteSemaphore;
- VkResult err = vkAcquireNextImageKHR(g_Device, wd->Swapchain, UINT64_MAX, image_acquired_semaphore, VK_NULL_HANDLE, &wd->FrameIndex);
- if (err == VK_ERROR_OUT_OF_DATE_KHR || err == VK_SUBOPTIMAL_KHR)
- g_SwapChainRebuild = true;
- if (err == VK_ERROR_OUT_OF_DATE_KHR)
- return;
- if (err != VK_SUBOPTIMAL_KHR)
- check_vk_result(err);
-
- ImGui_ImplVulkanH_Frame* fd = &wd->Frames[wd->FrameIndex];
- {
- err = vkWaitForFences(g_Device, 1, &fd->Fence, VK_TRUE, UINT64_MAX); // wait indefinitely instead of periodically checking
- check_vk_result(err);
-
- err = vkResetFences(g_Device, 1, &fd->Fence);
- check_vk_result(err);
- }
- {
- err = vkResetCommandPool(g_Device, fd->CommandPool, 0);
- check_vk_result(err);
- VkCommandBufferBeginInfo info = {};
- info.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO;
- info.flags |= VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT;
- err = vkBeginCommandBuffer(fd->CommandBuffer, &info);
- check_vk_result(err);
- }
- {
- VkRenderPassBeginInfo info = {};
- info.sType = VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO;
- info.renderPass = wd->RenderPass;
- info.framebuffer = fd->Framebuffer;
- info.renderArea.extent.width = wd->Width;
- info.renderArea.extent.height = wd->Height;
- info.clearValueCount = 1;
- info.pClearValues = &wd->ClearValue;
- vkCmdBeginRenderPass(fd->CommandBuffer, &info, VK_SUBPASS_CONTENTS_INLINE);
- }
-
- // Record dear imgui primitives into command buffer
- ImGui_ImplVulkan_RenderDrawData(draw_data, fd->CommandBuffer);
-
- // Submit command buffer
- vkCmdEndRenderPass(fd->CommandBuffer);
- {
- VkPipelineStageFlags wait_stage = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT;
- VkSubmitInfo info = {};
- info.sType = VK_STRUCTURE_TYPE_SUBMIT_INFO;
- info.waitSemaphoreCount = 1;
- info.pWaitSemaphores = &image_acquired_semaphore;
- info.pWaitDstStageMask = &wait_stage;
- info.commandBufferCount = 1;
- info.pCommandBuffers = &fd->CommandBuffer;
- info.signalSemaphoreCount = 1;
- info.pSignalSemaphores = &render_complete_semaphore;
-
- err = vkEndCommandBuffer(fd->CommandBuffer);
- check_vk_result(err);
- err = vkQueueSubmit(g_Queue, 1, &info, fd->Fence);
- check_vk_result(err);
- }
-}
-
-static void FramePresent(ImGui_ImplVulkanH_Window* wd)
-{
- if (g_SwapChainRebuild)
- return;
- VkSemaphore render_complete_semaphore = wd->FrameSemaphores[wd->SemaphoreIndex].RenderCompleteSemaphore;
- VkPresentInfoKHR info = {};
- info.sType = VK_STRUCTURE_TYPE_PRESENT_INFO_KHR;
- info.waitSemaphoreCount = 1;
- info.pWaitSemaphores = &render_complete_semaphore;
- info.swapchainCount = 1;
- info.pSwapchains = &wd->Swapchain;
- info.pImageIndices = &wd->FrameIndex;
- VkResult err = vkQueuePresentKHR(g_Queue, &info);
- if (err == VK_ERROR_OUT_OF_DATE_KHR || err == VK_SUBOPTIMAL_KHR)
- g_SwapChainRebuild = true;
- if (err == VK_ERROR_OUT_OF_DATE_KHR)
- return;
- if (err != VK_SUBOPTIMAL_KHR)
- check_vk_result(err);
- wd->SemaphoreIndex = (wd->SemaphoreIndex + 1) % wd->SemaphoreCount; // Now we can use the next set of semaphores
-}
-
-LRESULT WINAPI WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);
-
-// Main code
-int main(int, char**)
-{
- // Create application window
- //ImGui_ImplWin32_EnableDpiAwareness();
- WNDCLASSEXW wc = { sizeof(wc), CS_CLASSDC, WndProc, 0L, 0L, GetModuleHandle(nullptr), nullptr, nullptr, nullptr, nullptr, L"ImGui Example", nullptr };
- ::RegisterClassExW(&wc);
- HWND hwnd = ::CreateWindowW(wc.lpszClassName, L"Dear ImGui Win32+Vulkan Example", WS_OVERLAPPEDWINDOW, 100, 100, 1280, 800, nullptr, nullptr, wc.hInstance, nullptr);
-
- ImVector<const char*> extensions;
- extensions.push_back("VK_KHR_surface");
- extensions.push_back("VK_KHR_win32_surface");
- SetupVulkan(extensions);
-
- // Create Window Surface
- VkSurfaceKHR surface;
- VkResult err;
- VkWin32SurfaceCreateInfoKHR createInfo = {};
- createInfo.sType = VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR;
- createInfo.hwnd = hwnd;
- createInfo.hinstance = ::GetModuleHandle(nullptr);
- if (vkCreateWin32SurfaceKHR(g_Instance, &createInfo, nullptr, &surface) != VK_SUCCESS)
- {
- printf("Failed to create Vulkan surface.\n");
- return 1;
- }
-
- // Show the window
- // FIXME: Retrieve client size from window itself.
- ImGui_ImplVulkanH_Window* wd = &g_MainWindowData;
- SetupVulkanWindow(wd, surface, 1280, 800);
- ::ShowWindow(hwnd, SW_SHOWDEFAULT);
- ::UpdateWindow(hwnd);
-
- // Setup Dear ImGui context
- IMGUI_CHECKVERSION();
- ImGui::CreateContext();
- ImGuiIO& io = ImGui::GetIO(); (void)io;
- io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard; // Enable Keyboard Controls
- io.ConfigFlags |= ImGuiConfigFlags_NavEnableGamepad; // Enable Gamepad Controls
-
- // Setup Dear ImGui style
- ImGui::StyleColorsDark();
- //ImGui::StyleColorsLight();
-
- // Setup Platform/Renderer backends
- ImGui_ImplWin32_Init(hwnd);
- ImGui_ImplVulkan_InitInfo init_info = {};
- //init_info.ApiVersion = VK_API_VERSION_1_3; // Pass in your value of VkApplicationInfo::apiVersion, otherwise will default to header version.
- init_info.Instance = g_Instance;
- init_info.PhysicalDevice = g_PhysicalDevice;
- init_info.Device = g_Device;
- init_info.QueueFamily = g_QueueFamily;
- init_info.Queue = g_Queue;
- init_info.PipelineCache = g_PipelineCache;
- init_info.DescriptorPool = g_DescriptorPool;
- init_info.RenderPass = wd->RenderPass;
- init_info.Subpass = 0;
- init_info.MinImageCount = g_MinImageCount;
- init_info.ImageCount = wd->ImageCount;
- init_info.MSAASamples = VK_SAMPLE_COUNT_1_BIT;
- init_info.Allocator = g_Allocator;
- init_info.CheckVkResultFn = check_vk_result;
- ImGui_ImplVulkan_Init(&init_info);
-
- // Load Fonts
- // - If no fonts are loaded, dear imgui will use the default font. You can also load multiple fonts and use ImGui::PushFont()/PopFont() to select them.
- // - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
- // - If the file cannot be loaded, the function will return a nullptr. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
- // - Use '#define IMGUI_ENABLE_FREETYPE' in your imconfig file to use Freetype for higher quality font rendering.
- // - Read 'docs/FONTS.md' for more instructions and details.
- // - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
- //style.FontSizeBase = 20.0f;
- //io.Fonts->AddFontDefault();
- //io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\segoeui.ttf");
- //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf");
- //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf");
- //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf");
- //ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf");
- //IM_ASSERT(font != nullptr);
-
- // Our state
- bool show_demo_window = true;
- bool show_another_window = false;
- ImVec4 clear_color = ImVec4(0.45f, 0.55f, 0.60f, 1.00f);
-
- // Main loop
- bool done = false;
- while (!done)
- {
- // Poll and handle messages (inputs, window resize, etc.)
- // See the WndProc() function below for our to dispatch events to the Win32 backend.
- MSG msg;
- while (::PeekMessage(&msg, nullptr, 0U, 0U, PM_REMOVE))
- {
- ::TranslateMessage(&msg);
- ::DispatchMessage(&msg);
- if (msg.message == WM_QUIT)
- done = true;
- }
- if (done)
- break;
-
- // Start the Dear ImGui frame
- ImGui_ImplVulkan_NewFrame();
- ImGui_ImplWin32_NewFrame();
- ImGui::NewFrame();
-
- // 1. Show the big demo window (Most of the sample code is in ImGui::ShowDemoWindow()! You can browse its code to learn more about Dear ImGui!).
- if (show_demo_window)
- ImGui::ShowDemoWindow(&show_demo_window);
-
- // 2. Show a simple window that we create ourselves. We use a Begin/End pair to create a named window.
- {
- static float f = 0.0f;
- static int counter = 0;
-
- ImGui::Begin("Hello, world!"); // Create a window called "Hello, world!" and append into it.
-
- ImGui::Text("This is some useful text."); // Display some text (you can use a format strings too)
- ImGui::Checkbox("Demo Window", &show_demo_window); // Edit bools storing our window open/close state
- ImGui::Checkbox("Another Window", &show_another_window);
-
- ImGui::SliderFloat("float", &f, 0.0f, 1.0f); // Edit 1 float using a slider from 0.0f to 1.0f
- ImGui::ColorEdit3("clear color", (float*)&clear_color); // Edit 3 floats representing a color
-
- if (ImGui::Button("Button")) // Buttons return true when clicked (most widgets return true when edited/activated)
- counter++;
- ImGui::SameLine();
- ImGui::Text("counter = %d", counter);
-
- ImGui::Text("Application average %.3f ms/frame (%.1f FPS)", 1000.0f / io.Framerate, io.Framerate);
- ImGui::End();
- }
-
- // 3. Show another simple window.
- if (show_another_window)
- {
- ImGui::Begin("Another Window", &show_another_window); // Pass a pointer to our bool variable (the window will have a closing button that will clear the bool when clicked)
- ImGui::Text("Hello from another window!");
- if (ImGui::Button("Close Me"))
- show_another_window = false;
- ImGui::End();
- }
-
- // Rendering
- ImGui::Render();
- ImDrawData* draw_data = ImGui::GetDrawData();
- const bool is_minimized = (draw_data->DisplaySize.x <= 0.0f || draw_data->DisplaySize.y <= 0.0f);
- if (!is_minimized)
- {
- wd->ClearValue.color.float32[0] = clear_color.x * clear_color.w;
- wd->ClearValue.color.float32[1] = clear_color.y * clear_color.w;
- wd->ClearValue.color.float32[2] = clear_color.z * clear_color.w;
- wd->ClearValue.color.float32[3] = clear_color.w;
- FrameRender(wd, draw_data);
- FramePresent(wd);
- }
- }
-
- // Cleanup
- err = vkDeviceWaitIdle(g_Device);
- check_vk_result(err);
- ImGui_ImplVulkan_Shutdown();
- ImGui_ImplWin32_Shutdown();
- ImGui::DestroyContext();
-
- CleanupVulkanWindow();
- CleanupVulkan();
-
- ::DestroyWindow(hwnd);
- ::UnregisterClassW(wc.lpszClassName, wc.hInstance);
-
- return 0;
-}
-
-// Helper functions
-
-// Forward declare message handler from imgui_impl_win32.cpp
-extern IMGUI_IMPL_API LRESULT ImGui_ImplWin32_WndProcHandler(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);
-
-// Win32 message handler
-// You can read the io.WantCaptureMouse, io.WantCaptureKeyboard flags to tell if dear imgui wants to use your inputs.
-// - When io.WantCaptureMouse is true, do not dispatch mouse input data to your main application, or clear/overwrite your copy of the mouse data.
-// - When io.WantCaptureKeyboard is true, do not dispatch keyboard input data to your main application, or clear/overwrite your copy of the keyboard data.
-// Generally you may always pass all inputs to dear imgui, and hide them from your application based on those two flags.
-LRESULT WINAPI WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
-{
- if (ImGui_ImplWin32_WndProcHandler(hWnd, msg, wParam, lParam))
- return true;
-
- switch (msg)
- {
- case WM_SIZE:
- if (g_Device != VK_NULL_HANDLE && wParam != SIZE_MINIMIZED)
- {
- // Resize swap chain
- int fb_width = (UINT)LOWORD(lParam);
- int fb_height = (UINT)HIWORD(lParam);
- if (fb_width > 0 && fb_height > 0 && (g_SwapChainRebuild || g_MainWindowData.Width != fb_width || g_MainWindowData.Height != fb_height))
- {
- ImGui_ImplVulkan_SetMinImageCount(g_MinImageCount);
- ImGui_ImplVulkanH_CreateOrResizeWindow(g_Instance, g_PhysicalDevice, g_Device, &g_MainWindowData, g_QueueFamily, g_Allocator, fb_width, fb_height, g_MinImageCount);
- g_MainWindowData.FrameIndex = 0;
- g_SwapChainRebuild = false;
- }
- }
- return 0;
- case WM_SYSCOMMAND:
- if ((wParam & 0xfff0) == SC_KEYMENU) // Disable ALT application menu
- return 0;
- break;
- case WM_DESTROY:
- ::PostQuitMessage(0);
- return 0;
- }
- return ::DefWindowProcW(hWnd, msg, wParam, lParam);
-}
diff --git a/imgui-1.92.1/examples/imgui_examples.sln b/imgui-1.92.1/examples/imgui_examples.sln
deleted file mode 100644
index cf1c5ad..0000000
--- a/imgui-1.92.1/examples/imgui_examples.sln
+++ /dev/null
@@ -1,201 +0,0 @@
-
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio Version 17
-VisualStudioVersion = 17.2.32616.157
-MinimumVisualStudioVersion = 10.0.40219.1
-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}") = "example_win32_directx10", "example_win32_directx10\example_win32_directx10.vcxproj", "{345A953E-A004-4648-B442-DC5F9F11068C}"
-EndProject
-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}") = "example_win32_directx12", "example_win32_directx12\example_win32_directx12.vcxproj", "{B4CF9797-519D-4AFE-A8F4-5141A6B521D3}"
-EndProject
-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}") = "example_glfw_opengl3", "example_glfw_opengl3\example_glfw_opengl3.vcxproj", "{4A1FB5EA-22F5-42A8-AB92-1D2DF5D47FB9}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "example_glfw_vulkan", "example_glfw_vulkan\example_glfw_vulkan.vcxproj", "{57E2DF5A-6FC8-45BB-99DD-91A18C646E80}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "example_sdl2_directx11", "example_sdl2_directx11\example_sdl2_directx11.vcxproj", "{9E1987E3-1F19-45CA-B9C9-D31E791836D8}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "example_sdl2_opengl2", "example_sdl2_opengl2\example_sdl2_opengl2.vcxproj", "{2AE17FDE-F7F3-4CAC-ADAB-0710EDA4F741}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "example_sdl2_opengl3", "example_sdl2_opengl3\example_sdl2_opengl3.vcxproj", "{BBAEB705-1669-40F3-8567-04CF6A991F4C}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "example_sdl2_vulkan", "example_sdl2_vulkan\example_sdl2_vulkan.vcxproj", "{BAE3D0B5-9695-4EB1-AD0F-75890EB4A3B3}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "example_win32_opengl3", "example_win32_opengl3\example_win32_opengl3.vcxproj", "{C624E5FF-D4FE-4D35-9164-B8A91864F98E}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "example_sdl2_sdlrenderer2", "example_sdl2_sdlrenderer2\example_sdl2_sdlrenderer2.vcxproj", "{0C0B2BEA-311F-473C-9652-87923EF639E3}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "example_sdl3_opengl3", "example_sdl3_opengl3\example_sdl3_opengl3.vcxproj", "{84AAA301-84FE-428B-9E3E-817BC8123C0C}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "example_sdl3_sdlrenderer3", "example_sdl3_sdlrenderer3\example_sdl3_sdlrenderer3.vcxproj", "{C0290D21-3AD2-4A35-ABBC-A2F5F48326DA}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "example_sdl3_vulkan", "example_sdl3_vulkan\example_sdl3_vulkan.vcxproj", "{663A7E89-1E42-4222-921C-177F5B5910DF}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "example_win32_vulkan", "example_win32_vulkan\example_win32_vulkan.vcxproj", "{0A1E32DF-E0F4-4CCE-B3DC-9644C503BD88}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "example_sdl3_sdlgpu3", "example_sdl3_sdlgpu3\example_sdl3_sdlgpu3.vcxproj", "{C22CB6F8-39A5-4DDA-90ED-4ACA4E81E1E5}"
-EndProject
-Global
- GlobalSection(SolutionConfigurationPlatforms) = preSolution
- Debug|Win32 = Debug|Win32
- Debug|x64 = Debug|x64
- Release|Win32 = Release|Win32
- Release|x64 = Release|x64
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {4165A294-21F2-44CA-9B38-E3F935ABADF5}.Debug|Win32.ActiveCfg = Debug|Win32
- {4165A294-21F2-44CA-9B38-E3F935ABADF5}.Debug|Win32.Build.0 = Debug|Win32
- {4165A294-21F2-44CA-9B38-E3F935ABADF5}.Debug|x64.ActiveCfg = Debug|x64
- {4165A294-21F2-44CA-9B38-E3F935ABADF5}.Debug|x64.Build.0 = Debug|x64
- {4165A294-21F2-44CA-9B38-E3F935ABADF5}.Release|Win32.ActiveCfg = Release|Win32
- {4165A294-21F2-44CA-9B38-E3F935ABADF5}.Release|Win32.Build.0 = Release|Win32
- {4165A294-21F2-44CA-9B38-E3F935ABADF5}.Release|x64.ActiveCfg = Release|x64
- {4165A294-21F2-44CA-9B38-E3F935ABADF5}.Release|x64.Build.0 = Release|x64
- {345A953E-A004-4648-B442-DC5F9F11068C}.Debug|Win32.ActiveCfg = Debug|Win32
- {345A953E-A004-4648-B442-DC5F9F11068C}.Debug|Win32.Build.0 = Debug|Win32
- {345A953E-A004-4648-B442-DC5F9F11068C}.Debug|x64.ActiveCfg = Debug|x64
- {345A953E-A004-4648-B442-DC5F9F11068C}.Debug|x64.Build.0 = Debug|x64
- {345A953E-A004-4648-B442-DC5F9F11068C}.Release|Win32.ActiveCfg = Release|Win32
- {345A953E-A004-4648-B442-DC5F9F11068C}.Release|Win32.Build.0 = Release|Win32
- {345A953E-A004-4648-B442-DC5F9F11068C}.Release|x64.ActiveCfg = Release|x64
- {345A953E-A004-4648-B442-DC5F9F11068C}.Release|x64.Build.0 = Release|x64
- {9F316E83-5AE5-4939-A723-305A94F48005}.Debug|Win32.ActiveCfg = Debug|Win32
- {9F316E83-5AE5-4939-A723-305A94F48005}.Debug|Win32.Build.0 = Debug|Win32
- {9F316E83-5AE5-4939-A723-305A94F48005}.Debug|x64.ActiveCfg = Debug|x64
- {9F316E83-5AE5-4939-A723-305A94F48005}.Debug|x64.Build.0 = Debug|x64
- {9F316E83-5AE5-4939-A723-305A94F48005}.Release|Win32.ActiveCfg = Release|Win32
- {9F316E83-5AE5-4939-A723-305A94F48005}.Release|Win32.Build.0 = Release|Win32
- {9F316E83-5AE5-4939-A723-305A94F48005}.Release|x64.ActiveCfg = Release|x64
- {9F316E83-5AE5-4939-A723-305A94F48005}.Release|x64.Build.0 = Release|x64
- {B4CF9797-519D-4AFE-A8F4-5141A6B521D3}.Debug|Win32.ActiveCfg = Debug|Win32
- {B4CF9797-519D-4AFE-A8F4-5141A6B521D3}.Debug|Win32.Build.0 = Debug|Win32
- {B4CF9797-519D-4AFE-A8F4-5141A6B521D3}.Debug|x64.ActiveCfg = Debug|x64
- {B4CF9797-519D-4AFE-A8F4-5141A6B521D3}.Debug|x64.Build.0 = Debug|x64
- {B4CF9797-519D-4AFE-A8F4-5141A6B521D3}.Release|Win32.ActiveCfg = Release|Win32
- {B4CF9797-519D-4AFE-A8F4-5141A6B521D3}.Release|Win32.Build.0 = Release|Win32
- {B4CF9797-519D-4AFE-A8F4-5141A6B521D3}.Release|x64.ActiveCfg = Release|x64
- {B4CF9797-519D-4AFE-A8F4-5141A6B521D3}.Release|x64.Build.0 = Release|x64
- {9CDA7840-B7A5-496D-A527-E95571496D18}.Debug|Win32.ActiveCfg = Debug|Win32
- {9CDA7840-B7A5-496D-A527-E95571496D18}.Debug|Win32.Build.0 = Debug|Win32
- {9CDA7840-B7A5-496D-A527-E95571496D18}.Debug|x64.ActiveCfg = Debug|x64
- {9CDA7840-B7A5-496D-A527-E95571496D18}.Debug|x64.Build.0 = Debug|x64
- {9CDA7840-B7A5-496D-A527-E95571496D18}.Release|Win32.ActiveCfg = Release|Win32
- {9CDA7840-B7A5-496D-A527-E95571496D18}.Release|Win32.Build.0 = Release|Win32
- {9CDA7840-B7A5-496D-A527-E95571496D18}.Release|x64.ActiveCfg = Release|x64
- {9CDA7840-B7A5-496D-A527-E95571496D18}.Release|x64.Build.0 = Release|x64
- {4A1FB5EA-22F5-42A8-AB92-1D2DF5D47FB9}.Debug|Win32.ActiveCfg = Debug|Win32
- {4A1FB5EA-22F5-42A8-AB92-1D2DF5D47FB9}.Debug|Win32.Build.0 = Debug|Win32
- {4A1FB5EA-22F5-42A8-AB92-1D2DF5D47FB9}.Debug|x64.ActiveCfg = Debug|x64
- {4A1FB5EA-22F5-42A8-AB92-1D2DF5D47FB9}.Debug|x64.Build.0 = Debug|x64
- {4A1FB5EA-22F5-42A8-AB92-1D2DF5D47FB9}.Release|Win32.ActiveCfg = Release|Win32
- {4A1FB5EA-22F5-42A8-AB92-1D2DF5D47FB9}.Release|Win32.Build.0 = Release|Win32
- {4A1FB5EA-22F5-42A8-AB92-1D2DF5D47FB9}.Release|x64.ActiveCfg = Release|x64
- {4A1FB5EA-22F5-42A8-AB92-1D2DF5D47FB9}.Release|x64.Build.0 = Release|x64
- {57E2DF5A-6FC8-45BB-99DD-91A18C646E80}.Debug|Win32.ActiveCfg = Debug|Win32
- {57E2DF5A-6FC8-45BB-99DD-91A18C646E80}.Debug|Win32.Build.0 = Debug|Win32
- {57E2DF5A-6FC8-45BB-99DD-91A18C646E80}.Debug|x64.ActiveCfg = Debug|x64
- {57E2DF5A-6FC8-45BB-99DD-91A18C646E80}.Debug|x64.Build.0 = Debug|x64
- {57E2DF5A-6FC8-45BB-99DD-91A18C646E80}.Release|Win32.ActiveCfg = Release|Win32
- {57E2DF5A-6FC8-45BB-99DD-91A18C646E80}.Release|Win32.Build.0 = Release|Win32
- {57E2DF5A-6FC8-45BB-99DD-91A18C646E80}.Release|x64.ActiveCfg = Release|x64
- {57E2DF5A-6FC8-45BB-99DD-91A18C646E80}.Release|x64.Build.0 = Release|x64
- {9E1987E3-1F19-45CA-B9C9-D31E791836D8}.Debug|Win32.ActiveCfg = Debug|Win32
- {9E1987E3-1F19-45CA-B9C9-D31E791836D8}.Debug|Win32.Build.0 = Debug|Win32
- {9E1987E3-1F19-45CA-B9C9-D31E791836D8}.Debug|x64.ActiveCfg = Debug|x64
- {9E1987E3-1F19-45CA-B9C9-D31E791836D8}.Debug|x64.Build.0 = Debug|x64
- {9E1987E3-1F19-45CA-B9C9-D31E791836D8}.Release|Win32.ActiveCfg = Release|Win32
- {9E1987E3-1F19-45CA-B9C9-D31E791836D8}.Release|Win32.Build.0 = Release|Win32
- {9E1987E3-1F19-45CA-B9C9-D31E791836D8}.Release|x64.ActiveCfg = Release|x64
- {9E1987E3-1F19-45CA-B9C9-D31E791836D8}.Release|x64.Build.0 = Release|x64
- {2AE17FDE-F7F3-4CAC-ADAB-0710EDA4F741}.Debug|Win32.ActiveCfg = Debug|Win32
- {2AE17FDE-F7F3-4CAC-ADAB-0710EDA4F741}.Debug|Win32.Build.0 = Debug|Win32
- {2AE17FDE-F7F3-4CAC-ADAB-0710EDA4F741}.Debug|x64.ActiveCfg = Debug|x64
- {2AE17FDE-F7F3-4CAC-ADAB-0710EDA4F741}.Debug|x64.Build.0 = Debug|x64
- {2AE17FDE-F7F3-4CAC-ADAB-0710EDA4F741}.Release|Win32.ActiveCfg = Release|Win32
- {2AE17FDE-F7F3-4CAC-ADAB-0710EDA4F741}.Release|Win32.Build.0 = Release|Win32
- {2AE17FDE-F7F3-4CAC-ADAB-0710EDA4F741}.Release|x64.ActiveCfg = Release|x64
- {2AE17FDE-F7F3-4CAC-ADAB-0710EDA4F741}.Release|x64.Build.0 = Release|x64
- {BBAEB705-1669-40F3-8567-04CF6A991F4C}.Debug|Win32.ActiveCfg = Debug|Win32
- {BBAEB705-1669-40F3-8567-04CF6A991F4C}.Debug|Win32.Build.0 = Debug|Win32
- {BBAEB705-1669-40F3-8567-04CF6A991F4C}.Debug|x64.ActiveCfg = Debug|x64
- {BBAEB705-1669-40F3-8567-04CF6A991F4C}.Debug|x64.Build.0 = Debug|x64
- {BBAEB705-1669-40F3-8567-04CF6A991F4C}.Release|Win32.ActiveCfg = Release|Win32
- {BBAEB705-1669-40F3-8567-04CF6A991F4C}.Release|Win32.Build.0 = Release|Win32
- {BBAEB705-1669-40F3-8567-04CF6A991F4C}.Release|x64.ActiveCfg = Release|x64
- {BBAEB705-1669-40F3-8567-04CF6A991F4C}.Release|x64.Build.0 = Release|x64
- {BAE3D0B5-9695-4EB1-AD0F-75890EB4A3B3}.Debug|Win32.ActiveCfg = Debug|Win32
- {BAE3D0B5-9695-4EB1-AD0F-75890EB4A3B3}.Debug|Win32.Build.0 = Debug|Win32
- {BAE3D0B5-9695-4EB1-AD0F-75890EB4A3B3}.Debug|x64.ActiveCfg = Debug|x64
- {BAE3D0B5-9695-4EB1-AD0F-75890EB4A3B3}.Debug|x64.Build.0 = Debug|x64
- {BAE3D0B5-9695-4EB1-AD0F-75890EB4A3B3}.Release|Win32.ActiveCfg = Release|Win32
- {BAE3D0B5-9695-4EB1-AD0F-75890EB4A3B3}.Release|Win32.Build.0 = Release|Win32
- {BAE3D0B5-9695-4EB1-AD0F-75890EB4A3B3}.Release|x64.ActiveCfg = Release|x64
- {BAE3D0B5-9695-4EB1-AD0F-75890EB4A3B3}.Release|x64.Build.0 = Release|x64
- {C624E5FF-D4FE-4D35-9164-B8A91864F98E}.Debug|Win32.ActiveCfg = Debug|Win32
- {C624E5FF-D4FE-4D35-9164-B8A91864F98E}.Debug|Win32.Build.0 = Debug|Win32
- {C624E5FF-D4FE-4D35-9164-B8A91864F98E}.Debug|x64.ActiveCfg = Debug|x64
- {C624E5FF-D4FE-4D35-9164-B8A91864F98E}.Debug|x64.Build.0 = Debug|x64
- {C624E5FF-D4FE-4D35-9164-B8A91864F98E}.Release|Win32.ActiveCfg = Release|Win32
- {C624E5FF-D4FE-4D35-9164-B8A91864F98E}.Release|Win32.Build.0 = Release|Win32
- {C624E5FF-D4FE-4D35-9164-B8A91864F98E}.Release|x64.ActiveCfg = Release|x64
- {C624E5FF-D4FE-4D35-9164-B8A91864F98E}.Release|x64.Build.0 = Release|x64
- {0C0B2BEA-311F-473C-9652-87923EF639E3}.Debug|Win32.ActiveCfg = Debug|Win32
- {0C0B2BEA-311F-473C-9652-87923EF639E3}.Debug|Win32.Build.0 = Debug|Win32
- {0C0B2BEA-311F-473C-9652-87923EF639E3}.Debug|x64.ActiveCfg = Debug|x64
- {0C0B2BEA-311F-473C-9652-87923EF639E3}.Debug|x64.Build.0 = Debug|x64
- {0C0B2BEA-311F-473C-9652-87923EF639E3}.Release|Win32.ActiveCfg = Release|Win32
- {0C0B2BEA-311F-473C-9652-87923EF639E3}.Release|Win32.Build.0 = Release|Win32
- {0C0B2BEA-311F-473C-9652-87923EF639E3}.Release|x64.ActiveCfg = Release|x64
- {0C0B2BEA-311F-473C-9652-87923EF639E3}.Release|x64.Build.0 = Release|x64
- {84AAA301-84FE-428B-9E3E-817BC8123C0C}.Debug|Win32.ActiveCfg = Debug|Win32
- {84AAA301-84FE-428B-9E3E-817BC8123C0C}.Debug|Win32.Build.0 = Debug|Win32
- {84AAA301-84FE-428B-9E3E-817BC8123C0C}.Debug|x64.ActiveCfg = Debug|x64
- {84AAA301-84FE-428B-9E3E-817BC8123C0C}.Debug|x64.Build.0 = Debug|x64
- {84AAA301-84FE-428B-9E3E-817BC8123C0C}.Release|Win32.ActiveCfg = Release|Win32
- {84AAA301-84FE-428B-9E3E-817BC8123C0C}.Release|Win32.Build.0 = Release|Win32
- {84AAA301-84FE-428B-9E3E-817BC8123C0C}.Release|x64.ActiveCfg = Release|x64
- {84AAA301-84FE-428B-9E3E-817BC8123C0C}.Release|x64.Build.0 = Release|x64
- {C0290D21-3AD2-4A35-ABBC-A2F5F48326DA}.Debug|Win32.ActiveCfg = Debug|Win32
- {C0290D21-3AD2-4A35-ABBC-A2F5F48326DA}.Debug|Win32.Build.0 = Debug|Win32
- {C0290D21-3AD2-4A35-ABBC-A2F5F48326DA}.Debug|x64.ActiveCfg = Debug|x64
- {C0290D21-3AD2-4A35-ABBC-A2F5F48326DA}.Debug|x64.Build.0 = Debug|x64
- {C0290D21-3AD2-4A35-ABBC-A2F5F48326DA}.Release|Win32.ActiveCfg = Release|Win32
- {C0290D21-3AD2-4A35-ABBC-A2F5F48326DA}.Release|Win32.Build.0 = Release|Win32
- {C0290D21-3AD2-4A35-ABBC-A2F5F48326DA}.Release|x64.ActiveCfg = Release|x64
- {C0290D21-3AD2-4A35-ABBC-A2F5F48326DA}.Release|x64.Build.0 = Release|x64
- {663A7E89-1E42-4222-921C-177F5B5910DF}.Debug|Win32.ActiveCfg = Debug|Win32
- {663A7E89-1E42-4222-921C-177F5B5910DF}.Debug|Win32.Build.0 = Debug|Win32
- {663A7E89-1E42-4222-921C-177F5B5910DF}.Debug|x64.ActiveCfg = Debug|x64
- {663A7E89-1E42-4222-921C-177F5B5910DF}.Debug|x64.Build.0 = Debug|x64
- {663A7E89-1E42-4222-921C-177F5B5910DF}.Release|Win32.ActiveCfg = Release|Win32
- {663A7E89-1E42-4222-921C-177F5B5910DF}.Release|Win32.Build.0 = Release|Win32
- {663A7E89-1E42-4222-921C-177F5B5910DF}.Release|x64.ActiveCfg = Release|x64
- {663A7E89-1E42-4222-921C-177F5B5910DF}.Release|x64.Build.0 = Release|x64
- {0A1E32DF-E0F4-4CCE-B3DC-9644C503BD88}.Debug|Win32.ActiveCfg = Debug|Win32
- {0A1E32DF-E0F4-4CCE-B3DC-9644C503BD88}.Debug|Win32.Build.0 = Debug|Win32
- {0A1E32DF-E0F4-4CCE-B3DC-9644C503BD88}.Debug|x64.ActiveCfg = Debug|x64
- {0A1E32DF-E0F4-4CCE-B3DC-9644C503BD88}.Debug|x64.Build.0 = Debug|x64
- {0A1E32DF-E0F4-4CCE-B3DC-9644C503BD88}.Release|Win32.ActiveCfg = Release|Win32
- {0A1E32DF-E0F4-4CCE-B3DC-9644C503BD88}.Release|Win32.Build.0 = Release|Win32
- {0A1E32DF-E0F4-4CCE-B3DC-9644C503BD88}.Release|x64.ActiveCfg = Release|x64
- {0A1E32DF-E0F4-4CCE-B3DC-9644C503BD88}.Release|x64.Build.0 = Release|x64
- {C22CB6F8-39A5-4DDA-90ED-4ACA4E81E1E5}.Debug|Win32.ActiveCfg = Debug|Win32
- {C22CB6F8-39A5-4DDA-90ED-4ACA4E81E1E5}.Debug|Win32.Build.0 = Debug|Win32
- {C22CB6F8-39A5-4DDA-90ED-4ACA4E81E1E5}.Debug|x64.ActiveCfg = Debug|x64
- {C22CB6F8-39A5-4DDA-90ED-4ACA4E81E1E5}.Debug|x64.Build.0 = Debug|x64
- {C22CB6F8-39A5-4DDA-90ED-4ACA4E81E1E5}.Release|Win32.ActiveCfg = Release|Win32
- {C22CB6F8-39A5-4DDA-90ED-4ACA4E81E1E5}.Release|Win32.Build.0 = Release|Win32
- {C22CB6F8-39A5-4DDA-90ED-4ACA4E81E1E5}.Release|x64.ActiveCfg = Release|x64
- {C22CB6F8-39A5-4DDA-90ED-4ACA4E81E1E5}.Release|x64.Build.0 = Release|x64
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
- GlobalSection(ExtensibilityGlobals) = postSolution
- SolutionGuid = {B1ACFD20-A0A9-4A4C-ADBA-E7608F0E2BEE}
- EndGlobalSection
-EndGlobal
diff --git a/imgui-1.92.1/examples/libs/emscripten/emscripten_mainloop_stub.h b/imgui-1.92.1/examples/libs/emscripten/emscripten_mainloop_stub.h
deleted file mode 100644
index 8c4c48e..0000000
--- a/imgui-1.92.1/examples/libs/emscripten/emscripten_mainloop_stub.h
+++ /dev/null
@@ -1,38 +0,0 @@
-// What does this file solves?
-// - Since Dear ImGui 1.00 we took pride that most of our examples applications had their entire
-// main-loop inside the main() function. That's because:
-// - It makes the examples easier to read, keeping the code sequential.
-// - It permit the use of local variables, making it easier to try things and perform quick
-// changes when someone needs to quickly test something (vs having to structure the example
-// in order to pass data around). This is very important because people use those examples
-// to craft easy-to-past repro when they want to discuss features or report issues.
-// - It conveys at a glance that this is a no-BS framework, it won't take your main loop away from you.
-// - It is generally nice and elegant.
-// - However, comes Emscripten... it is a wonderful and magical tech but it requires a "main loop" function.
-// - Only some of our examples would run on Emscripten. Typically the ones rendering with GL or WGPU ones.
-// - I tried to refactor those examples but felt it was problematic that other examples didn't follow the
-// same layout. Why would the SDL+GL example be structured one way and the SGL+DX11 be structured differently?
-// Especially as we are trying hard to convey that using a Dear ImGui backend in an *existing application*
-// should requires only a few dozens lines of code, and this should be consistent and symmetrical for all backends.
-// - So the next logical step was to refactor all examples to follow that layout of using a "main loop" function.
-// This worked, but it made us lose all the nice things we had...
-
-// Since only about 4 examples really need to run with Emscripten, here's our solution:
-// - Use some weird macros and capturing lambda to turn a loop in main() into a function.
-// - Hide all that crap in this file so it doesn't make our examples unusually ugly.
-// As a stance and principle of Dear ImGui development we don't use C++ headers and we don't
-// want to suggest to the newcomer that we would ever use C++ headers as this would affect
-// the initial judgment of many of our target audience.
-// - Technique is based on this idea: https://github.com/ocornut/imgui/pull/2492/
-// - The do { } while (0) is to allow our code calling continue in the main loop.
-#ifdef __EMSCRIPTEN__
-#include <emscripten.h>
-#include <functional>
-static std::function<void()> MainLoopForEmscriptenP;
-static void MainLoopForEmscripten() { MainLoopForEmscriptenP(); }
-#define EMSCRIPTEN_MAINLOOP_BEGIN MainLoopForEmscriptenP = [&]() { do
-#define EMSCRIPTEN_MAINLOOP_END while (0); }; emscripten_set_main_loop(MainLoopForEmscripten, 0, true)
-#else
-#define EMSCRIPTEN_MAINLOOP_BEGIN
-#define EMSCRIPTEN_MAINLOOP_END
-#endif
diff --git a/imgui-1.92.1/examples/libs/emscripten/shell_minimal.html b/imgui-1.92.1/examples/libs/emscripten/shell_minimal.html
deleted file mode 100644
index bcf6262..0000000
--- a/imgui-1.92.1/examples/libs/emscripten/shell_minimal.html
+++ /dev/null
@@ -1,65 +0,0 @@
-<!doctype html>
-<html lang="en-us">
- <head>
- <meta charset="utf-8">
- <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no"/>
- <title>Dear ImGui Emscripten example</title>
- <style>
- body { margin: 0; background-color: black }
- /* FIXME: with our GLFW example this block seems to break resizing and io.DisplaySize gets stuck */
- .emscripten {
- position: absolute;
- top: 0px;
- left: 0px;
- margin: 0px;
- border: 0;
- width: 100%;
- height: 100%;
- overflow: hidden;
- display: block;
- image-rendering: optimizeSpeed;
- image-rendering: -moz-crisp-edges;
- image-rendering: -o-crisp-edges;
- image-rendering: -webkit-optimize-contrast;
- image-rendering: optimize-contrast;
- image-rendering: crisp-edges;
- image-rendering: pixelated;
- -ms-interpolation-mode: nearest-neighbor;
- }
- </style>
- </head>
- <body>
- <canvas class="emscripten" id="canvas" oncontextmenu="event.preventDefault()"></canvas>
- <script type='text/javascript'>
- var Module = {
- preRun: [],
- postRun: [],
- print: (function() {
- return function(text) {
- text = Array.prototype.slice.call(arguments).join(' ');
- console.log(text);
- };
- })(),
- printErr: function(text) {
- text = Array.prototype.slice.call(arguments).join(' ');
- console.error(text);
- },
- canvas: (function() {
- var canvas = document.getElementById('canvas');
- //canvas.addEventListener("webglcontextlost", function(e) { alert('FIXME: WebGL context lost, please reload the page'); e.preventDefault(); }, false);
- return canvas;
- })(),
- setStatus: function(text) {
- console.log("status: " + text);
- },
- monitorRunDependencies: function(left) {
- // no run dependencies to log
- }
- };
- window.onerror = function() {
- console.log("onerror: " + event);
- };
- </script>
- {{{ SCRIPT }}}
- </body>
-</html>
diff --git a/imgui-1.92.1/examples/libs/glfw/COPYING.txt b/imgui-1.92.1/examples/libs/glfw/COPYING.txt
deleted file mode 100644
index b30c701..0000000
--- a/imgui-1.92.1/examples/libs/glfw/COPYING.txt
+++ /dev/null
@@ -1,22 +0,0 @@
-Copyright (c) 2002-2006 Marcus Geelnard
-Copyright (c) 2006-2010 Camilla Berglund <elmindreda@elmindreda.org>
-
-This software is provided 'as-is', without any express or implied
-warranty. In no event will the authors be held liable for any damages
-arising from the use of this software.
-
-Permission is granted to anyone to use this software for any purpose,
-including commercial applications, and to alter it and redistribute it
-freely, subject to the following restrictions:
-
-1. The origin of this software must not be misrepresented; you must not
- claim that you wrote the original software. If you use this software
- in a product, an acknowledgment in the product documentation would
- be appreciated but is not required.
-
-2. Altered source versions must be plainly marked as such, and must not
- be misrepresented as being the original software.
-
-3. This notice may not be removed or altered from any source
- distribution.
-
diff --git a/imgui-1.92.1/examples/libs/glfw/include/GLFW/glfw3.h b/imgui-1.92.1/examples/libs/glfw/include/GLFW/glfw3.h
deleted file mode 100644
index f8ca3d6..0000000
--- a/imgui-1.92.1/examples/libs/glfw/include/GLFW/glfw3.h
+++ /dev/null
@@ -1,4227 +0,0 @@
-/*************************************************************************
- * GLFW 3.2 - www.glfw.org
- * A library for OpenGL, window and input
- *------------------------------------------------------------------------
- * Copyright (c) 2002-2006 Marcus Geelnard
- * Copyright (c) 2006-2010 Camilla Berglund <elmindreda@elmindreda.org>
- *
- * This software is provided 'as-is', without any express or implied
- * warranty. In no event will the authors be held liable for any damages
- * arising from the use of this software.
- *
- * Permission is granted to anyone to use this software for any purpose,
- * including commercial applications, and to alter it and redistribute it
- * freely, subject to the following restrictions:
- *
- * 1. The origin of this software must not be misrepresented; you must not
- * claim that you wrote the original software. If you use this software
- * in a product, an acknowledgment in the product documentation would
- * be appreciated but is not required.
- *
- * 2. Altered source versions must be plainly marked as such, and must not
- * be misrepresented as being the original software.
- *
- * 3. This notice may not be removed or altered from any source
- * distribution.
- *
- *************************************************************************/
-
-#ifndef _glfw3_h_
-#define _glfw3_h_
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-/*************************************************************************
- * Doxygen documentation
- *************************************************************************/
-
-/*! @file glfw3.h
- * @brief The header of the GLFW 3 API.
- *
- * This is the header file of the GLFW 3 API. It defines all its types and
- * declares all its functions.
- *
- * For more information about how to use this file, see @ref build_include.
- */
-/*! @defgroup context Context reference
- *
- * This is the reference documentation for OpenGL and OpenGL ES context related
- * functions. For more task-oriented information, see the @ref context_guide.
- */
-/*! @defgroup vulkan Vulkan reference
- *
- * This is the reference documentation for Vulkan related functions and types.
- * For more task-oriented information, see the @ref vulkan_guide.
- */
-/*! @defgroup init Initialization, version and error reference
- *
- * This is the reference documentation for initialization and termination of
- * the library, version management and error handling. For more task-oriented
- * information, see the @ref intro_guide.
- */
-/*! @defgroup input Input reference
- *
- * This is the reference documentation for input related functions and types.
- * For more task-oriented information, see the @ref input_guide.
- */
-/*! @defgroup monitor Monitor reference
- *
- * This is the reference documentation for monitor related functions and types.
- * For more task-oriented information, see the @ref monitor_guide.
- */
-/*! @defgroup window Window reference
- *
- * This is the reference documentation for window related functions and types,
- * including creation, deletion and event polling. For more task-oriented
- * information, see the @ref window_guide.
- */
-
-
-/*************************************************************************
- * Compiler- and platform-specific preprocessor work
- *************************************************************************/
-
-/* If we are we on Windows, we want a single define for it.
- */
-#if !defined(_WIN32) && (defined(__WIN32__) || defined(WIN32) || defined(__MINGW32__))
- #define _WIN32
-#endif /* _WIN32 */
-
-/* It is customary to use APIENTRY for OpenGL function pointer declarations on
- * all platforms. Additionally, the Windows OpenGL header needs APIENTRY.
- */
-#ifndef APIENTRY
- #ifdef _WIN32
- #define APIENTRY __stdcall
- #else
- #define APIENTRY
- #endif
-#endif /* APIENTRY */
-
-/* Some Windows OpenGL headers need this.
- */
-#if !defined(WINGDIAPI) && defined(_WIN32)
- #define WINGDIAPI __declspec(dllimport)
- #define GLFW_WINGDIAPI_DEFINED
-#endif /* WINGDIAPI */
-
-/* Some Windows GLU headers need this.
- */
-#if !defined(CALLBACK) && defined(_WIN32)
- #define CALLBACK __stdcall
- #define GLFW_CALLBACK_DEFINED
-#endif /* CALLBACK */
-
-/* Most Windows GLU headers need wchar_t.
- * The OS X OpenGL header blocks the definition of ptrdiff_t by glext.h.
- * Include it unconditionally to avoid surprising side-effects.
- */
-#include <stddef.h>
-#include <stdint.h>
-
-/* Include the chosen client API headers.
- */
-#if defined(__APPLE__)
- #if defined(GLFW_INCLUDE_GLCOREARB)
- #include <OpenGL/gl3.h>
- #if defined(GLFW_INCLUDE_GLEXT)
- #include <OpenGL/gl3ext.h>
- #endif
- #elif !defined(GLFW_INCLUDE_NONE)
- #if !defined(GLFW_INCLUDE_GLEXT)
- #define GL_GLEXT_LEGACY
- #endif
- #include <OpenGL/gl.h>
- #endif
- #if defined(GLFW_INCLUDE_GLU)
- #include <OpenGL/glu.h>
- #endif
-#else
- #if defined(GLFW_INCLUDE_GLCOREARB)
- #include <GL/glcorearb.h>
- #elif defined(GLFW_INCLUDE_ES1)
- #include <GLES/gl.h>
- #if defined(GLFW_INCLUDE_GLEXT)
- #include <GLES/glext.h>
- #endif
- #elif defined(GLFW_INCLUDE_ES2)
- #include <GLES2/gl2.h>
- #if defined(GLFW_INCLUDE_GLEXT)
- #include <GLES2/gl2ext.h>
- #endif
- #elif defined(GLFW_INCLUDE_ES3)
- #include <GLES3/gl3.h>
- #if defined(GLFW_INCLUDE_GLEXT)
- #include <GLES2/gl2ext.h>
- #endif
- #elif defined(GLFW_INCLUDE_ES31)
- #include <GLES3/gl31.h>
- #if defined(GLFW_INCLUDE_GLEXT)
- #include <GLES2/gl2ext.h>
- #endif
- #elif defined(GLFW_INCLUDE_VULKAN)
- #include <vulkan/vulkan.h>
- #elif !defined(GLFW_INCLUDE_NONE)
- #include <GL/gl.h>
- #if defined(GLFW_INCLUDE_GLEXT)
- #include <GL/glext.h>
- #endif
- #endif
- #if defined(GLFW_INCLUDE_GLU)
- #include <GL/glu.h>
- #endif
-#endif
-
-#if defined(GLFW_DLL) && defined(_GLFW_BUILD_DLL)
- /* GLFW_DLL must be defined by applications that are linking against the DLL
- * version of the GLFW library. _GLFW_BUILD_DLL is defined by the GLFW
- * configuration header when compiling the DLL version of the library.
- */
- #error "You must not have both GLFW_DLL and _GLFW_BUILD_DLL defined"
-#endif
-
-/* GLFWAPI is used to declare public API functions for export
- * from the DLL / shared library / dynamic library.
- */
-#if defined(_WIN32) && defined(_GLFW_BUILD_DLL)
- /* We are building GLFW as a Win32 DLL */
- #define GLFWAPI __declspec(dllexport)
-#elif defined(_WIN32) && defined(GLFW_DLL)
- /* We are calling GLFW as a Win32 DLL */
- #define GLFWAPI __declspec(dllimport)
-#elif defined(__GNUC__) && defined(_GLFW_BUILD_DLL)
- /* We are building GLFW as a shared / dynamic library */
- #define GLFWAPI __attribute__((visibility("default")))
-#else
- /* We are building or calling GLFW as a static library */
- #define GLFWAPI
-#endif
-
-
-/*************************************************************************
- * GLFW API tokens
- *************************************************************************/
-
-/*! @name GLFW version macros
- * @{ */
-/*! @brief The major version number of the GLFW library.
- *
- * This is incremented when the API is changed in non-compatible ways.
- * @ingroup init
- */
-#define GLFW_VERSION_MAJOR 3
-/*! @brief The minor version number of the GLFW library.
- *
- * This is incremented when features are added to the API but it remains
- * backward-compatible.
- * @ingroup init
- */
-#define GLFW_VERSION_MINOR 2
-/*! @brief The revision number of the GLFW library.
- *
- * This is incremented when a bug fix release is made that does not contain any
- * API changes.
- * @ingroup init
- */
-#define GLFW_VERSION_REVISION 0
-/*! @} */
-
-/*! @name Boolean values
- * @{ */
-/*! @brief One.
- *
- * One. Seriously. You don't _need_ to use this symbol in your code. It's
- * just semantic sugar for the number 1. You can use `1` or `true` or `_True`
- * or `GL_TRUE` or whatever you want.
- */
-#define GLFW_TRUE 1
-/*! @brief Zero.
- *
- * Zero. Seriously. You don't _need_ to use this symbol in your code. It's
- * just just semantic sugar for the number 0. You can use `0` or `false` or
- * `_False` or `GL_FALSE` or whatever you want.
- */
-#define GLFW_FALSE 0
-/*! @} */
-
-/*! @name Key and button actions
- * @{ */
-/*! @brief The key or mouse button was released.
- *
- * The key or mouse button was released.
- *
- * @ingroup input
- */
-#define GLFW_RELEASE 0
-/*! @brief The key or mouse button was pressed.
- *
- * The key or mouse button was pressed.
- *
- * @ingroup input
- */
-#define GLFW_PRESS 1
-/*! @brief The key was held down until it repeated.
- *
- * The key was held down until it repeated.
- *
- * @ingroup input
- */
-#define GLFW_REPEAT 2
-/*! @} */
-
-/*! @defgroup keys Keyboard keys
- *
- * See [key input](@ref input_key) for how these are used.
- *
- * These key codes are inspired by the _USB HID Usage Tables v1.12_ (p. 53-60),
- * but re-arranged to map to 7-bit ASCII for printable keys (function keys are
- * put in the 256+ range).
- *
- * The naming of the key codes follow these rules:
- * - The US keyboard layout is used
- * - Names of printable alpha-numeric characters are used (e.g. "A", "R",
- * "3", etc.)
- * - For non-alphanumeric characters, Unicode:ish names are used (e.g.
- * "COMMA", "LEFT_SQUARE_BRACKET", etc.). Note that some names do not
- * correspond to the Unicode standard (usually for brevity)
- * - Keys that lack a clear US mapping are named "WORLD_x"
- * - For non-printable keys, custom names are used (e.g. "F4",
- * "BACKSPACE", etc.)
- *
- * @ingroup input
- * @{
- */
-
-/* The unknown key */
-#define GLFW_KEY_UNKNOWN -1
-
-/* Printable keys */
-#define GLFW_KEY_SPACE 32
-#define GLFW_KEY_APOSTROPHE 39 /* ' */
-#define GLFW_KEY_COMMA 44 /* , */
-#define GLFW_KEY_MINUS 45 /* - */
-#define GLFW_KEY_PERIOD 46 /* . */
-#define GLFW_KEY_SLASH 47 /* / */
-#define GLFW_KEY_0 48
-#define GLFW_KEY_1 49
-#define GLFW_KEY_2 50
-#define GLFW_KEY_3 51
-#define GLFW_KEY_4 52
-#define GLFW_KEY_5 53
-#define GLFW_KEY_6 54
-#define GLFW_KEY_7 55
-#define GLFW_KEY_8 56
-#define GLFW_KEY_9 57
-#define GLFW_KEY_SEMICOLON 59 /* ; */
-#define GLFW_KEY_EQUAL 61 /* = */
-#define GLFW_KEY_A 65
-#define GLFW_KEY_B 66
-#define GLFW_KEY_C 67
-#define GLFW_KEY_D 68
-#define GLFW_KEY_E 69
-#define GLFW_KEY_F 70
-#define GLFW_KEY_G 71
-#define GLFW_KEY_H 72
-#define GLFW_KEY_I 73
-#define GLFW_KEY_J 74
-#define GLFW_KEY_K 75
-#define GLFW_KEY_L 76
-#define GLFW_KEY_M 77
-#define GLFW_KEY_N 78
-#define GLFW_KEY_O 79
-#define GLFW_KEY_P 80
-#define GLFW_KEY_Q 81
-#define GLFW_KEY_R 82
-#define GLFW_KEY_S 83
-#define GLFW_KEY_T 84
-#define GLFW_KEY_U 85
-#define GLFW_KEY_V 86
-#define GLFW_KEY_W 87
-#define GLFW_KEY_X 88
-#define GLFW_KEY_Y 89
-#define GLFW_KEY_Z 90
-#define GLFW_KEY_LEFT_BRACKET 91 /* [ */
-#define GLFW_KEY_BACKSLASH 92 /* \ */
-#define GLFW_KEY_RIGHT_BRACKET 93 /* ] */
-#define GLFW_KEY_GRAVE_ACCENT 96 /* ` */
-#define GLFW_KEY_WORLD_1 161 /* non-US #1 */
-#define GLFW_KEY_WORLD_2 162 /* non-US #2 */
-
-/* Function keys */
-#define GLFW_KEY_ESCAPE 256
-#define GLFW_KEY_ENTER 257
-#define GLFW_KEY_TAB 258
-#define GLFW_KEY_BACKSPACE 259
-#define GLFW_KEY_INSERT 260
-#define GLFW_KEY_DELETE 261
-#define GLFW_KEY_RIGHT 262
-#define GLFW_KEY_LEFT 263
-#define GLFW_KEY_DOWN 264
-#define GLFW_KEY_UP 265
-#define GLFW_KEY_PAGE_UP 266
-#define GLFW_KEY_PAGE_DOWN 267
-#define GLFW_KEY_HOME 268
-#define GLFW_KEY_END 269
-#define GLFW_KEY_CAPS_LOCK 280
-#define GLFW_KEY_SCROLL_LOCK 281
-#define GLFW_KEY_NUM_LOCK 282
-#define GLFW_KEY_PRINT_SCREEN 283
-#define GLFW_KEY_PAUSE 284
-#define GLFW_KEY_F1 290
-#define GLFW_KEY_F2 291
-#define GLFW_KEY_F3 292
-#define GLFW_KEY_F4 293
-#define GLFW_KEY_F5 294
-#define GLFW_KEY_F6 295
-#define GLFW_KEY_F7 296
-#define GLFW_KEY_F8 297
-#define GLFW_KEY_F9 298
-#define GLFW_KEY_F10 299
-#define GLFW_KEY_F11 300
-#define GLFW_KEY_F12 301
-#define GLFW_KEY_F13 302
-#define GLFW_KEY_F14 303
-#define GLFW_KEY_F15 304
-#define GLFW_KEY_F16 305
-#define GLFW_KEY_F17 306
-#define GLFW_KEY_F18 307
-#define GLFW_KEY_F19 308
-#define GLFW_KEY_F20 309
-#define GLFW_KEY_F21 310
-#define GLFW_KEY_F22 311
-#define GLFW_KEY_F23 312
-#define GLFW_KEY_F24 313
-#define GLFW_KEY_F25 314
-#define GLFW_KEY_KP_0 320
-#define GLFW_KEY_KP_1 321
-#define GLFW_KEY_KP_2 322
-#define GLFW_KEY_KP_3 323
-#define GLFW_KEY_KP_4 324
-#define GLFW_KEY_KP_5 325
-#define GLFW_KEY_KP_6 326
-#define GLFW_KEY_KP_7 327
-#define GLFW_KEY_KP_8 328
-#define GLFW_KEY_KP_9 329
-#define GLFW_KEY_KP_DECIMAL 330
-#define GLFW_KEY_KP_DIVIDE 331
-#define GLFW_KEY_KP_MULTIPLY 332
-#define GLFW_KEY_KP_SUBTRACT 333
-#define GLFW_KEY_KP_ADD 334
-#define GLFW_KEY_KP_ENTER 335
-#define GLFW_KEY_KP_EQUAL 336
-#define GLFW_KEY_LEFT_SHIFT 340
-#define GLFW_KEY_LEFT_CONTROL 341
-#define GLFW_KEY_LEFT_ALT 342
-#define GLFW_KEY_LEFT_SUPER 343
-#define GLFW_KEY_RIGHT_SHIFT 344
-#define GLFW_KEY_RIGHT_CONTROL 345
-#define GLFW_KEY_RIGHT_ALT 346
-#define GLFW_KEY_RIGHT_SUPER 347
-#define GLFW_KEY_MENU 348
-
-#define GLFW_KEY_LAST GLFW_KEY_MENU
-
-/*! @} */
-
-/*! @defgroup mods Modifier key flags
- *
- * See [key input](@ref input_key) for how these are used.
- *
- * @ingroup input
- * @{ */
-
-/*! @brief If this bit is set one or more Shift keys were held down.
- */
-#define GLFW_MOD_SHIFT 0x0001
-/*! @brief If this bit is set one or more Control keys were held down.
- */
-#define GLFW_MOD_CONTROL 0x0002
-/*! @brief If this bit is set one or more Alt keys were held down.
- */
-#define GLFW_MOD_ALT 0x0004
-/*! @brief If this bit is set one or more Super keys were held down.
- */
-#define GLFW_MOD_SUPER 0x0008
-
-/*! @} */
-
-/*! @defgroup buttons Mouse buttons
- *
- * See [mouse button input](@ref input_mouse_button) for how these are used.
- *
- * @ingroup input
- * @{ */
-#define GLFW_MOUSE_BUTTON_1 0
-#define GLFW_MOUSE_BUTTON_2 1
-#define GLFW_MOUSE_BUTTON_3 2
-#define GLFW_MOUSE_BUTTON_4 3
-#define GLFW_MOUSE_BUTTON_5 4
-#define GLFW_MOUSE_BUTTON_6 5
-#define GLFW_MOUSE_BUTTON_7 6
-#define GLFW_MOUSE_BUTTON_8 7
-#define GLFW_MOUSE_BUTTON_LAST GLFW_MOUSE_BUTTON_8
-#define GLFW_MOUSE_BUTTON_LEFT GLFW_MOUSE_BUTTON_1
-#define GLFW_MOUSE_BUTTON_RIGHT GLFW_MOUSE_BUTTON_2
-#define GLFW_MOUSE_BUTTON_MIDDLE GLFW_MOUSE_BUTTON_3
-/*! @} */
-
-/*! @defgroup joysticks Joysticks
- *
- * See [joystick input](@ref joystick) for how these are used.
- *
- * @ingroup input
- * @{ */
-#define GLFW_JOYSTICK_1 0
-#define GLFW_JOYSTICK_2 1
-#define GLFW_JOYSTICK_3 2
-#define GLFW_JOYSTICK_4 3
-#define GLFW_JOYSTICK_5 4
-#define GLFW_JOYSTICK_6 5
-#define GLFW_JOYSTICK_7 6
-#define GLFW_JOYSTICK_8 7
-#define GLFW_JOYSTICK_9 8
-#define GLFW_JOYSTICK_10 9
-#define GLFW_JOYSTICK_11 10
-#define GLFW_JOYSTICK_12 11
-#define GLFW_JOYSTICK_13 12
-#define GLFW_JOYSTICK_14 13
-#define GLFW_JOYSTICK_15 14
-#define GLFW_JOYSTICK_16 15
-#define GLFW_JOYSTICK_LAST GLFW_JOYSTICK_16
-/*! @} */
-
-/*! @defgroup errors Error codes
- *
- * See [error handling](@ref error_handling) for how these are used.
- *
- * @ingroup init
- * @{ */
-/*! @brief GLFW has not been initialized.
- *
- * This occurs if a GLFW function was called that must not be called unless the
- * library is [initialized](@ref intro_init).
- *
- * @analysis Application programmer error. Initialize GLFW before calling any
- * function that requires initialization.
- */
-#define GLFW_NOT_INITIALIZED 0x00010001
-/*! @brief No context is current for this thread.
- *
- * This occurs if a GLFW function was called that needs and operates on the
- * current OpenGL or OpenGL ES context but no context is current on the calling
- * thread. One such function is @ref glfwSwapInterval.
- *
- * @analysis Application programmer error. Ensure a context is current before
- * calling functions that require a current context.
- */
-#define GLFW_NO_CURRENT_CONTEXT 0x00010002
-/*! @brief One of the arguments to the function was an invalid enum value.
- *
- * One of the arguments to the function was an invalid enum value, for example
- * requesting [GLFW_RED_BITS](@ref window_hints_fb) with @ref
- * glfwGetWindowAttrib.
- *
- * @analysis Application programmer error. Fix the offending call.
- */
-#define GLFW_INVALID_ENUM 0x00010003
-/*! @brief One of the arguments to the function was an invalid value.
- *
- * One of the arguments to the function was an invalid value, for example
- * requesting a non-existent OpenGL or OpenGL ES version like 2.7.
- *
- * Requesting a valid but unavailable OpenGL or OpenGL ES version will instead
- * result in a @ref GLFW_VERSION_UNAVAILABLE error.
- *
- * @analysis Application programmer error. Fix the offending call.
- */
-#define GLFW_INVALID_VALUE 0x00010004
-/*! @brief A memory allocation failed.
- *
- * A memory allocation failed.
- *
- * @analysis A bug in GLFW or the underlying operating system. Report the bug
- * to our [issue tracker](https://github.com/glfw/glfw/issues).
- */
-#define GLFW_OUT_OF_MEMORY 0x00010005
-/*! @brief GLFW could not find support for the requested API on the system.
- *
- * GLFW could not find support for the requested API on the system.
- *
- * @analysis The installed graphics driver does not support the requested
- * API, or does not support it via the chosen context creation backend.
- * Below are a few examples.
- *
- * @par
- * Some pre-installed Windows graphics drivers do not support OpenGL. AMD only
- * supports OpenGL ES via EGL, while Nvidia and Intel only support it via
- * a WGL or GLX extension. OS X does not provide OpenGL ES at all. The Mesa
- * EGL, OpenGL and OpenGL ES libraries do not interface with the Nvidia binary
- * driver. Older graphics drivers do not support Vulkan.
- */
-#define GLFW_API_UNAVAILABLE 0x00010006
-/*! @brief The requested OpenGL or OpenGL ES version is not available.
- *
- * The requested OpenGL or OpenGL ES version (including any requested context
- * or framebuffer hints) is not available on this machine.
- *
- * @analysis The machine does not support your requirements. If your
- * application is sufficiently flexible, downgrade your requirements and try
- * again. Otherwise, inform the user that their machine does not match your
- * requirements.
- *
- * @par
- * Future invalid OpenGL and OpenGL ES versions, for example OpenGL 4.8 if 5.0
- * comes out before the 4.x series gets that far, also fail with this error and
- * not @ref GLFW_INVALID_VALUE, because GLFW cannot know what future versions
- * will exist.
- */
-#define GLFW_VERSION_UNAVAILABLE 0x00010007
-/*! @brief A platform-specific error occurred that does not match any of the
- * more specific categories.
- *
- * A platform-specific error occurred that does not match any of the more
- * specific categories.
- *
- * @analysis A bug or configuration error in GLFW, the underlying operating
- * system or its drivers, or a lack of required resources. Report the issue to
- * our [issue tracker](https://github.com/glfw/glfw/issues).
- */
-#define GLFW_PLATFORM_ERROR 0x00010008
-/*! @brief The requested format is not supported or available.
- *
- * If emitted during window creation, the requested pixel format is not
- * supported.
- *
- * If emitted when querying the clipboard, the contents of the clipboard could
- * not be converted to the requested format.
- *
- * @analysis If emitted during window creation, one or more
- * [hard constraints](@ref window_hints_hard) did not match any of the
- * available pixel formats. If your application is sufficiently flexible,
- * downgrade your requirements and try again. Otherwise, inform the user that
- * their machine does not match your requirements.
- *
- * @par
- * If emitted when querying the clipboard, ignore the error or report it to
- * the user, as appropriate.
- */
-#define GLFW_FORMAT_UNAVAILABLE 0x00010009
-/*! @brief The specified window does not have an OpenGL or OpenGL ES context.
- *
- * A window that does not have an OpenGL or OpenGL ES context was passed to
- * a function that requires it to have one.
- *
- * @analysis Application programmer error. Fix the offending call.
- */
-#define GLFW_NO_WINDOW_CONTEXT 0x0001000A
-/*! @} */
-
-#define GLFW_FOCUSED 0x00020001
-#define GLFW_ICONIFIED 0x00020002
-#define GLFW_RESIZABLE 0x00020003
-#define GLFW_VISIBLE 0x00020004
-#define GLFW_DECORATED 0x00020005
-#define GLFW_AUTO_ICONIFY 0x00020006
-#define GLFW_FLOATING 0x00020007
-#define GLFW_MAXIMIZED 0x00020008
-
-#define GLFW_RED_BITS 0x00021001
-#define GLFW_GREEN_BITS 0x00021002
-#define GLFW_BLUE_BITS 0x00021003
-#define GLFW_ALPHA_BITS 0x00021004
-#define GLFW_DEPTH_BITS 0x00021005
-#define GLFW_STENCIL_BITS 0x00021006
-#define GLFW_ACCUM_RED_BITS 0x00021007
-#define GLFW_ACCUM_GREEN_BITS 0x00021008
-#define GLFW_ACCUM_BLUE_BITS 0x00021009
-#define GLFW_ACCUM_ALPHA_BITS 0x0002100A
-#define GLFW_AUX_BUFFERS 0x0002100B
-#define GLFW_STEREO 0x0002100C
-#define GLFW_SAMPLES 0x0002100D
-#define GLFW_SRGB_CAPABLE 0x0002100E
-#define GLFW_REFRESH_RATE 0x0002100F
-#define GLFW_DOUBLEBUFFER 0x00021010
-
-#define GLFW_CLIENT_API 0x00022001
-#define GLFW_CONTEXT_VERSION_MAJOR 0x00022002
-#define GLFW_CONTEXT_VERSION_MINOR 0x00022003
-#define GLFW_CONTEXT_REVISION 0x00022004
-#define GLFW_CONTEXT_ROBUSTNESS 0x00022005
-#define GLFW_OPENGL_FORWARD_COMPAT 0x00022006
-#define GLFW_OPENGL_DEBUG_CONTEXT 0x00022007
-#define GLFW_OPENGL_PROFILE 0x00022008
-#define GLFW_CONTEXT_RELEASE_BEHAVIOR 0x00022009
-#define GLFW_CONTEXT_NO_ERROR 0x0002200A
-
-#define GLFW_NO_API 0
-#define GLFW_OPENGL_API 0x00030001
-#define GLFW_OPENGL_ES_API 0x00030002
-
-#define GLFW_NO_ROBUSTNESS 0
-#define GLFW_NO_RESET_NOTIFICATION 0x00031001
-#define GLFW_LOSE_CONTEXT_ON_RESET 0x00031002
-
-#define GLFW_OPENGL_ANY_PROFILE 0
-#define GLFW_OPENGL_CORE_PROFILE 0x00032001
-#define GLFW_OPENGL_COMPAT_PROFILE 0x00032002
-
-#define GLFW_CURSOR 0x00033001
-#define GLFW_STICKY_KEYS 0x00033002
-#define GLFW_STICKY_MOUSE_BUTTONS 0x00033003
-
-#define GLFW_CURSOR_NORMAL 0x00034001
-#define GLFW_CURSOR_HIDDEN 0x00034002
-#define GLFW_CURSOR_DISABLED 0x00034003
-
-#define GLFW_ANY_RELEASE_BEHAVIOR 0
-#define GLFW_RELEASE_BEHAVIOR_FLUSH 0x00035001
-#define GLFW_RELEASE_BEHAVIOR_NONE 0x00035002
-
-/*! @defgroup shapes Standard cursor shapes
- *
- * See [standard cursor creation](@ref cursor_standard) for how these are used.
- *
- * @ingroup input
- * @{ */
-
-/*! @brief The regular arrow cursor shape.
- *
- * The regular arrow cursor.
- */
-#define GLFW_ARROW_CURSOR 0x00036001
-/*! @brief The text input I-beam cursor shape.
- *
- * The text input I-beam cursor shape.
- */
-#define GLFW_IBEAM_CURSOR 0x00036002
-/*! @brief The crosshair shape.
- *
- * The crosshair shape.
- */
-#define GLFW_CROSSHAIR_CURSOR 0x00036003
-/*! @brief The hand shape.
- *
- * The hand shape.
- */
-#define GLFW_HAND_CURSOR 0x00036004
-/*! @brief The horizontal resize arrow shape.
- *
- * The horizontal resize arrow shape.
- */
-#define GLFW_HRESIZE_CURSOR 0x00036005
-/*! @brief The vertical resize arrow shape.
- *
- * The vertical resize arrow shape.
- */
-#define GLFW_VRESIZE_CURSOR 0x00036006
-/*! @} */
-
-#define GLFW_CONNECTED 0x00040001
-#define GLFW_DISCONNECTED 0x00040002
-
-#define GLFW_DONT_CARE -1
-
-
-/*************************************************************************
- * GLFW API types
- *************************************************************************/
-
-/*! @brief Client API function pointer type.
- *
- * Generic function pointer used for returning client API function pointers
- * without forcing a cast from a regular pointer.
- *
- * @sa @ref context_glext
- * @sa glfwGetProcAddress
- *
- * @since Added in version 3.0.
-
- * @ingroup context
- */
-typedef void (*GLFWglproc)(void);
-
-/*! @brief Vulkan API function pointer type.
- *
- * Generic function pointer used for returning Vulkan API function pointers
- * without forcing a cast from a regular pointer.
- *
- * @sa @ref vulkan_proc
- * @sa glfwGetInstanceProcAddress
- *
- * @since Added in version 3.2.
- *
- * @ingroup vulkan
- */
-typedef void (*GLFWvkproc)(void);
-
-/*! @brief Opaque monitor object.
- *
- * Opaque monitor object.
- *
- * @see @ref monitor_object
- *
- * @since Added in version 3.0.
- *
- * @ingroup monitor
- */
-typedef struct GLFWmonitor GLFWmonitor;
-
-/*! @brief Opaque window object.
- *
- * Opaque window object.
- *
- * @see @ref window_object
- *
- * @since Added in version 3.0.
- *
- * @ingroup window
- */
-typedef struct GLFWwindow GLFWwindow;
-
-/*! @brief Opaque cursor object.
- *
- * Opaque cursor object.
- *
- * @see @ref cursor_object
- *
- * @since Added in version 3.1.
- *
- * @ingroup cursor
- */
-typedef struct GLFWcursor GLFWcursor;
-
-/*! @brief The function signature for error callbacks.
- *
- * This is the function signature for error callback functions.
- *
- * @param[in] error An [error code](@ref errors).
- * @param[in] description A UTF-8 encoded string describing the error.
- *
- * @sa @ref error_handling
- * @sa glfwSetErrorCallback
- *
- * @since Added in version 3.0.
- *
- * @ingroup init
- */
-typedef void (* GLFWerrorfun)(int,const char*);
-
-/*! @brief The function signature for window position callbacks.
- *
- * This is the function signature for window position callback functions.
- *
- * @param[in] window The window that was moved.
- * @param[in] xpos The new x-coordinate, in screen coordinates, of the
- * upper-left corner of the client area of the window.
- * @param[in] ypos The new y-coordinate, in screen coordinates, of the
- * upper-left corner of the client area of the window.
- *
- * @sa @ref window_pos
- * @sa glfwSetWindowPosCallback
- *
- * @since Added in version 3.0.
- *
- * @ingroup window
- */
-typedef void (* GLFWwindowposfun)(GLFWwindow*,int,int);
-
-/*! @brief The function signature for window resize callbacks.
- *
- * This is the function signature for window size callback functions.
- *
- * @param[in] window The window that was resized.
- * @param[in] width The new width, in screen coordinates, of the window.
- * @param[in] height The new height, in screen coordinates, of the window.
- *
- * @sa @ref window_size
- * @sa glfwSetWindowSizeCallback
- *
- * @since Added in version 1.0.
- * @glfw3 Added window handle parameter.
- *
- * @ingroup window
- */
-typedef void (* GLFWwindowsizefun)(GLFWwindow*,int,int);
-
-/*! @brief The function signature for window close callbacks.
- *
- * This is the function signature for window close callback functions.
- *
- * @param[in] window The window that the user attempted to close.
- *
- * @sa @ref window_close
- * @sa glfwSetWindowCloseCallback
- *
- * @since Added in version 2.5.
- * @glfw3 Added window handle parameter.
- *
- * @ingroup window
- */
-typedef void (* GLFWwindowclosefun)(GLFWwindow*);
-
-/*! @brief The function signature for window content refresh callbacks.
- *
- * This is the function signature for window refresh callback functions.
- *
- * @param[in] window The window whose content needs to be refreshed.
- *
- * @sa @ref window_refresh
- * @sa glfwSetWindowRefreshCallback
- *
- * @since Added in version 2.5.
- * @glfw3 Added window handle parameter.
- *
- * @ingroup window
- */
-typedef void (* GLFWwindowrefreshfun)(GLFWwindow*);
-
-/*! @brief The function signature for window focus/defocus callbacks.
- *
- * This is the function signature for window focus callback functions.
- *
- * @param[in] window The window that gained or lost input focus.
- * @param[in] focused `GLFW_TRUE` if the window was given input focus, or
- * `GLFW_FALSE` if it lost it.
- *
- * @sa @ref window_focus
- * @sa glfwSetWindowFocusCallback
- *
- * @since Added in version 3.0.
- *
- * @ingroup window
- */
-typedef void (* GLFWwindowfocusfun)(GLFWwindow*,int);
-
-/*! @brief The function signature for window iconify/restore callbacks.
- *
- * This is the function signature for window iconify/restore callback
- * functions.
- *
- * @param[in] window The window that was iconified or restored.
- * @param[in] iconified `GLFW_TRUE` if the window was iconified, or
- * `GLFW_FALSE` if it was restored.
- *
- * @sa @ref window_iconify
- * @sa glfwSetWindowIconifyCallback
- *
- * @since Added in version 3.0.
- *
- * @ingroup window
- */
-typedef void (* GLFWwindowiconifyfun)(GLFWwindow*,int);
-
-/*! @brief The function signature for framebuffer resize callbacks.
- *
- * This is the function signature for framebuffer resize callback
- * functions.
- *
- * @param[in] window The window whose framebuffer was resized.
- * @param[in] width The new width, in pixels, of the framebuffer.
- * @param[in] height The new height, in pixels, of the framebuffer.
- *
- * @sa @ref window_fbsize
- * @sa glfwSetFramebufferSizeCallback
- *
- * @since Added in version 3.0.
- *
- * @ingroup window
- */
-typedef void (* GLFWframebuffersizefun)(GLFWwindow*,int,int);
-
-/*! @brief The function signature for mouse button callbacks.
- *
- * This is the function signature for mouse button callback functions.
- *
- * @param[in] window The window that received the event.
- * @param[in] button The [mouse button](@ref buttons) that was pressed or
- * released.
- * @param[in] action One of `GLFW_PRESS` or `GLFW_RELEASE`.
- * @param[in] mods Bit field describing which [modifier keys](@ref mods) were
- * held down.
- *
- * @sa @ref input_mouse_button
- * @sa glfwSetMouseButtonCallback
- *
- * @since Added in version 1.0.
- * @glfw3 Added window handle and modifier mask parameters.
- *
- * @ingroup input
- */
-typedef void (* GLFWmousebuttonfun)(GLFWwindow*,int,int,int);
-
-/*! @brief The function signature for cursor position callbacks.
- *
- * This is the function signature for cursor position callback functions.
- *
- * @param[in] window The window that received the event.
- * @param[in] xpos The new cursor x-coordinate, relative to the left edge of
- * the client area.
- * @param[in] ypos The new cursor y-coordinate, relative to the top edge of the
- * client area.
- *
- * @sa @ref cursor_pos
- * @sa glfwSetCursorPosCallback
- *
- * @since Added in version 3.0. Replaces `GLFWmouseposfun`.
- *
- * @ingroup input
- */
-typedef void (* GLFWcursorposfun)(GLFWwindow*,double,double);
-
-/*! @brief The function signature for cursor enter/leave callbacks.
- *
- * This is the function signature for cursor enter/leave callback functions.
- *
- * @param[in] window The window that received the event.
- * @param[in] entered `GLFW_TRUE` if the cursor entered the window's client
- * area, or `GLFW_FALSE` if it left it.
- *
- * @sa @ref cursor_enter
- * @sa glfwSetCursorEnterCallback
- *
- * @since Added in version 3.0.
- *
- * @ingroup input
- */
-typedef void (* GLFWcursorenterfun)(GLFWwindow*,int);
-
-/*! @brief The function signature for scroll callbacks.
- *
- * This is the function signature for scroll callback functions.
- *
- * @param[in] window The window that received the event.
- * @param[in] xoffset The scroll offset along the x-axis.
- * @param[in] yoffset The scroll offset along the y-axis.
- *
- * @sa @ref scrolling
- * @sa glfwSetScrollCallback
- *
- * @since Added in version 3.0. Replaces `GLFWmousewheelfun`.
- *
- * @ingroup input
- */
-typedef void (* GLFWscrollfun)(GLFWwindow*,double,double);
-
-/*! @brief The function signature for keyboard key callbacks.
- *
- * This is the function signature for keyboard key callback functions.
- *
- * @param[in] window The window that received the event.
- * @param[in] key The [keyboard key](@ref keys) that was pressed or released.
- * @param[in] scancode The system-specific scancode of the key.
- * @param[in] action `GLFW_PRESS`, `GLFW_RELEASE` or `GLFW_REPEAT`.
- * @param[in] mods Bit field describing which [modifier keys](@ref mods) were
- * held down.
- *
- * @sa @ref input_key
- * @sa glfwSetKeyCallback
- *
- * @since Added in version 1.0.
- * @glfw3 Added window handle, scancode and modifier mask parameters.
- *
- * @ingroup input
- */
-typedef void (* GLFWkeyfun)(GLFWwindow*,int,int,int,int);
-
-/*! @brief The function signature for Unicode character callbacks.
- *
- * This is the function signature for Unicode character callback functions.
- *
- * @param[in] window The window that received the event.
- * @param[in] codepoint The Unicode code point of the character.
- *
- * @sa @ref input_char
- * @sa glfwSetCharCallback
- *
- * @since Added in version 2.4.
- * @glfw3 Added window handle parameter.
- *
- * @ingroup input
- */
-typedef void (* GLFWcharfun)(GLFWwindow*,unsigned int);
-
-/*! @brief The function signature for Unicode character with modifiers
- * callbacks.
- *
- * This is the function signature for Unicode character with modifiers callback
- * functions. It is called for each input character, regardless of what
- * modifier keys are held down.
- *
- * @param[in] window The window that received the event.
- * @param[in] codepoint The Unicode code point of the character.
- * @param[in] mods Bit field describing which [modifier keys](@ref mods) were
- * held down.
- *
- * @sa @ref input_char
- * @sa glfwSetCharModsCallback
- *
- * @since Added in version 3.1.
- *
- * @ingroup input
- */
-typedef void (* GLFWcharmodsfun)(GLFWwindow*,unsigned int,int);
-
-/*! @brief The function signature for file drop callbacks.
- *
- * This is the function signature for file drop callbacks.
- *
- * @param[in] window The window that received the event.
- * @param[in] count The number of dropped files.
- * @param[in] paths The UTF-8 encoded file and/or directory path names.
- *
- * @sa @ref path_drop
- * @sa glfwSetDropCallback
- *
- * @since Added in version 3.1.
- *
- * @ingroup input
- */
-typedef void (* GLFWdropfun)(GLFWwindow*,int,const char**);
-
-/*! @brief The function signature for monitor configuration callbacks.
- *
- * This is the function signature for monitor configuration callback functions.
- *
- * @param[in] monitor The monitor that was connected or disconnected.
- * @param[in] event One of `GLFW_CONNECTED` or `GLFW_DISCONNECTED`.
- *
- * @sa @ref monitor_event
- * @sa glfwSetMonitorCallback
- *
- * @since Added in version 3.0.
- *
- * @ingroup monitor
- */
-typedef void (* GLFWmonitorfun)(GLFWmonitor*,int);
-
-/*! @brief The function signature for joystick configuration callbacks.
- *
- * This is the function signature for joystick configuration callback
- * functions.
- *
- * @param[in] joy The joystick that was connected or disconnected.
- * @param[in] event One of `GLFW_CONNECTED` or `GLFW_DISCONNECTED`.
- *
- * @sa @ref joystick_event
- * @sa glfwSetJoystickCallback
- *
- * @since Added in version 3.2.
- *
- * @ingroup input
- */
-typedef void (* GLFWjoystickfun)(int,int);
-
-/*! @brief Video mode type.
- *
- * This describes a single video mode.
- *
- * @sa @ref monitor_modes
- * @sa glfwGetVideoMode glfwGetVideoModes
- *
- * @since Added in version 1.0.
- * @glfw3 Added refresh rate member.
- *
- * @ingroup monitor
- */
-typedef struct GLFWvidmode
-{
- /*! The width, in screen coordinates, of the video mode.
- */
- int width;
- /*! The height, in screen coordinates, of the video mode.
- */
- int height;
- /*! The bit depth of the red channel of the video mode.
- */
- int redBits;
- /*! The bit depth of the green channel of the video mode.
- */
- int greenBits;
- /*! The bit depth of the blue channel of the video mode.
- */
- int blueBits;
- /*! The refresh rate, in Hz, of the video mode.
- */
- int refreshRate;
-} GLFWvidmode;
-
-/*! @brief Gamma ramp.
- *
- * This describes the gamma ramp for a monitor.
- *
- * @sa @ref monitor_gamma
- * @sa glfwGetGammaRamp glfwSetGammaRamp
- *
- * @since Added in version 3.0.
- *
- * @ingroup monitor
- */
-typedef struct GLFWgammaramp
-{
- /*! An array of value describing the response of the red channel.
- */
- unsigned short* red;
- /*! An array of value describing the response of the green channel.
- */
- unsigned short* green;
- /*! An array of value describing the response of the blue channel.
- */
- unsigned short* blue;
- /*! The number of elements in each array.
- */
- unsigned int size;
-} GLFWgammaramp;
-
-/*! @brief Image data.
- *
- * @sa @ref cursor_custom
- *
- * @since Added in version 2.1.
- * @glfw3 Removed format and bytes-per-pixel members.
- */
-typedef struct GLFWimage
-{
- /*! The width, in pixels, of this image.
- */
- int width;
- /*! The height, in pixels, of this image.
- */
- int height;
- /*! The pixel data of this image, arranged left-to-right, top-to-bottom.
- */
- unsigned char* pixels;
-} GLFWimage;
-
-
-/*************************************************************************
- * GLFW API functions
- *************************************************************************/
-
-/*! @brief Initializes the GLFW library.
- *
- * This function initializes the GLFW library. Before most GLFW functions can
- * be used, GLFW must be initialized, and before an application terminates GLFW
- * should be terminated in order to free any resources allocated during or
- * after initialization.
- *
- * If this function fails, it calls @ref glfwTerminate before returning. If it
- * succeeds, you should call @ref glfwTerminate before the application exits.
- *
- * Additional calls to this function after successful initialization but before
- * termination will return `GLFW_TRUE` immediately.
- *
- * @return `GLFW_TRUE` if successful, or `GLFW_FALSE` if an
- * [error](@ref error_handling) occurred.
- *
- * @errors Possible errors include @ref GLFW_PLATFORM_ERROR.
- *
- * @remark @osx This function will change the current directory of the
- * application to the `Contents/Resources` subdirectory of the application's
- * bundle, if present. This can be disabled with a
- * [compile-time option](@ref compile_options_osx).
- *
- * @thread_safety This function must only be called from the main thread.
- *
- * @sa @ref intro_init
- * @sa glfwTerminate
- *
- * @since Added in version 1.0.
- *
- * @ingroup init
- */
-GLFWAPI int glfwInit(void);
-
-/*! @brief Terminates the GLFW library.
- *
- * This function destroys all remaining windows and cursors, restores any
- * modified gamma ramps and frees any other allocated resources. Once this
- * function is called, you must again call @ref glfwInit successfully before
- * you will be able to use most GLFW functions.
- *
- * If GLFW has been successfully initialized, this function should be called
- * before the application exits. If initialization fails, there is no need to
- * call this function, as it is called by @ref glfwInit before it returns
- * failure.
- *
- * @errors Possible errors include @ref GLFW_PLATFORM_ERROR.
- *
- * @remark This function may be called before @ref glfwInit.
- *
- * @warning The contexts of any remaining windows must not be current on any
- * other thread when this function is called.
- *
- * @reentrancy This function must not be called from a callback.
- *
- * @thread_safety This function must only be called from the main thread.
- *
- * @sa @ref intro_init
- * @sa glfwInit
- *
- * @since Added in version 1.0.
- *
- * @ingroup init
- */
-GLFWAPI void glfwTerminate(void);
-
-/*! @brief Retrieves the version of the GLFW library.
- *
- * This function retrieves the major, minor and revision numbers of the GLFW
- * library. It is intended for when you are using GLFW as a shared library and
- * want to ensure that you are using the minimum required version.
- *
- * Any or all of the version arguments may be `NULL`.
- *
- * @param[out] major Where to store the major version number, or `NULL`.
- * @param[out] minor Where to store the minor version number, or `NULL`.
- * @param[out] rev Where to store the revision number, or `NULL`.
- *
- * @errors None.
- *
- * @remark This function may be called before @ref glfwInit.
- *
- * @thread_safety This function may be called from any thread.
- *
- * @sa @ref intro_version
- * @sa glfwGetVersionString
- *
- * @since Added in version 1.0.
- *
- * @ingroup init
- */
-GLFWAPI void glfwGetVersion(int* major, int* minor, int* rev);
-
-/*! @brief Returns a string describing the compile-time configuration.
- *
- * This function returns the compile-time generated
- * [version string](@ref intro_version_string) of the GLFW library binary. It
- * describes the version, platform, compiler and any platform-specific
- * compile-time options. It should not be confused with the OpenGL or OpenGL
- * ES version string, queried with `glGetString`.
- *
- * __Do not use the version string__ to parse the GLFW library version. The
- * @ref glfwGetVersion function provides the version of the running library
- * binary in numerical format.
- *
- * @return The ASCII encoded GLFW version string.
- *
- * @errors None.
- *
- * @remark This function may be called before @ref glfwInit.
- *
- * @pointer_lifetime The returned string is static and compile-time generated.
- *
- * @thread_safety This function may be called from any thread.
- *
- * @sa @ref intro_version
- * @sa glfwGetVersion
- *
- * @since Added in version 3.0.
- *
- * @ingroup init
- */
-GLFWAPI const char* glfwGetVersionString(void);
-
-/*! @brief Sets the error callback.
- *
- * This function sets the error callback, which is called with an error code
- * and a human-readable description each time a GLFW error occurs.
- *
- * The error callback is called on the thread where the error occurred. If you
- * are using GLFW from multiple threads, your error callback needs to be
- * written accordingly.
- *
- * Because the description string may have been generated specifically for that
- * error, it is not guaranteed to be valid after the callback has returned. If
- * you wish to use it after the callback returns, you need to make a copy.
- *
- * Once set, the error callback remains set even after the library has been
- * terminated.
- *
- * @param[in] cbfun The new callback, or `NULL` to remove the currently set
- * callback.
- * @return The previously set callback, or `NULL` if no callback was set.
- *
- * @errors None.
- *
- * @remark This function may be called before @ref glfwInit.
- *
- * @thread_safety This function must only be called from the main thread.
- *
- * @sa @ref error_handling
- *
- * @since Added in version 3.0.
- *
- * @ingroup init
- */
-GLFWAPI GLFWerrorfun glfwSetErrorCallback(GLFWerrorfun cbfun);
-
-/*! @brief Returns the currently connected monitors.
- *
- * This function returns an array of handles for all currently connected
- * monitors. The primary monitor is always first in the returned array. If no
- * monitors were found, this function returns `NULL`.
- *
- * @param[out] count Where to store the number of monitors in the returned
- * array. This is set to zero if an error occurred.
- * @return An array of monitor handles, or `NULL` if no monitors were found or
- * if an [error](@ref error_handling) occurred.
- *
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
- *
- * @pointer_lifetime The returned array is allocated and freed by GLFW. You
- * should not free it yourself. It is guaranteed to be valid only until the
- * monitor configuration changes or the library is terminated.
- *
- * @thread_safety This function must only be called from the main thread.
- *
- * @sa @ref monitor_monitors
- * @sa @ref monitor_event
- * @sa glfwGetPrimaryMonitor
- *
- * @since Added in version 3.0.
- *
- * @ingroup monitor
- */
-GLFWAPI GLFWmonitor** glfwGetMonitors(int* count);
-
-/*! @brief Returns the primary monitor.
- *
- * This function returns the primary monitor. This is usually the monitor
- * where elements like the task bar or global menu bar are located.
- *
- * @return The primary monitor, or `NULL` if no monitors were found or if an
- * [error](@ref error_handling) occurred.
- *
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
- *
- * @thread_safety This function must only be called from the main thread.
- *
- * @remark The primary monitor is always first in the array returned by @ref
- * glfwGetMonitors.
- *
- * @sa @ref monitor_monitors
- * @sa glfwGetMonitors
- *
- * @since Added in version 3.0.
- *
- * @ingroup monitor
- */
-GLFWAPI GLFWmonitor* glfwGetPrimaryMonitor(void);
-
-/*! @brief Returns the position of the monitor's viewport on the virtual screen.
- *
- * This function returns the position, in screen coordinates, of the upper-left
- * corner of the specified monitor.
- *
- * Any or all of the position arguments may be `NULL`. If an error occurs, all
- * non-`NULL` position arguments will be set to zero.
- *
- * @param[in] monitor The monitor to query.
- * @param[out] xpos Where to store the monitor x-coordinate, or `NULL`.
- * @param[out] ypos Where to store the monitor y-coordinate, or `NULL`.
- *
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
- * GLFW_PLATFORM_ERROR.
- *
- * @thread_safety This function must only be called from the main thread.
- *
- * @sa @ref monitor_properties
- *
- * @since Added in version 3.0.
- *
- * @ingroup monitor
- */
-GLFWAPI void glfwGetMonitorPos(GLFWmonitor* monitor, int* xpos, int* ypos);
-
-/*! @brief Returns the physical size of the monitor.
- *
- * This function returns the size, in millimetres, of the display area of the
- * specified monitor.
- *
- * Some systems do not provide accurate monitor size information, either
- * because the monitor
- * [EDID](https://en.wikipedia.org/wiki/Extended_display_identification_data)
- * data is incorrect or because the driver does not report it accurately.
- *
- * Any or all of the size arguments may be `NULL`. If an error occurs, all
- * non-`NULL` size arguments will be set to zero.
- *
- * @param[in] monitor The monitor to query.
- * @param[out] widthMM Where to store the width, in millimetres, of the
- * monitor's display area, or `NULL`.
- * @param[out] heightMM Where to store the height, in millimetres, of the
- * monitor's display area, or `NULL`.
- *
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
- *
- * @remark @win32 calculates the returned physical size from the
- * current resolution and system DPI instead of querying the monitor EDID data.
- *
- * @thread_safety This function must only be called from the main thread.
- *
- * @sa @ref monitor_properties
- *
- * @since Added in version 3.0.
- *
- * @ingroup monitor
- */
-GLFWAPI void glfwGetMonitorPhysicalSize(GLFWmonitor* monitor, int* widthMM, int* heightMM);
-
-/*! @brief Returns the name of the specified monitor.
- *
- * This function returns a human-readable name, encoded as UTF-8, of the
- * specified monitor. The name typically reflects the make and model of the
- * monitor and is not guaranteed to be unique among the connected monitors.
- *
- * @param[in] monitor The monitor to query.
- * @return The UTF-8 encoded name of the monitor, or `NULL` if an
- * [error](@ref error_handling) occurred.
- *
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
- *
- * @pointer_lifetime The returned string is allocated and freed by GLFW. You
- * should not free it yourself. It is valid until the specified monitor is
- * disconnected or the library is terminated.
- *
- * @thread_safety This function must only be called from the main thread.
- *
- * @sa @ref monitor_properties
- *
- * @since Added in version 3.0.
- *
- * @ingroup monitor
- */
-GLFWAPI const char* glfwGetMonitorName(GLFWmonitor* monitor);
-
-/*! @brief Sets the monitor configuration callback.
- *
- * This function sets the monitor configuration callback, or removes the
- * currently set callback. This is called when a monitor is connected to or
- * disconnected from the system.
- *
- * @param[in] cbfun The new callback, or `NULL` to remove the currently set
- * callback.
- * @return The previously set callback, or `NULL` if no callback was set or the
- * library had not been [initialized](@ref intro_init).
- *
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
- *
- * @thread_safety This function must only be called from the main thread.
- *
- * @sa @ref monitor_event
- *
- * @since Added in version 3.0.
- *
- * @ingroup monitor
- */
-GLFWAPI GLFWmonitorfun glfwSetMonitorCallback(GLFWmonitorfun cbfun);
-
-/*! @brief Returns the available video modes for the specified monitor.
- *
- * This function returns an array of all video modes supported by the specified
- * monitor. The returned array is sorted in ascending order, first by color
- * bit depth (the sum of all channel depths) and then by resolution area (the
- * product of width and height).
- *
- * @param[in] monitor The monitor to query.
- * @param[out] count Where to store the number of video modes in the returned
- * array. This is set to zero if an error occurred.
- * @return An array of video modes, or `NULL` if an
- * [error](@ref error_handling) occurred.
- *
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
- * GLFW_PLATFORM_ERROR.
- *
- * @pointer_lifetime The returned array is allocated and freed by GLFW. You
- * should not free it yourself. It is valid until the specified monitor is
- * disconnected, this function is called again for that monitor or the library
- * is terminated.
- *
- * @thread_safety This function must only be called from the main thread.
- *
- * @sa @ref monitor_modes
- * @sa glfwGetVideoMode
- *
- * @since Added in version 1.0.
- * @glfw3 Changed to return an array of modes for a specific monitor.
- *
- * @ingroup monitor
- */
-GLFWAPI const GLFWvidmode* glfwGetVideoModes(GLFWmonitor* monitor, int* count);
-
-/*! @brief Returns the current mode of the specified monitor.
- *
- * This function returns the current video mode of the specified monitor. If
- * you have created a full screen window for that monitor, the return value
- * will depend on whether that window is iconified.
- *
- * @param[in] monitor The monitor to query.
- * @return The current mode of the monitor, or `NULL` if an
- * [error](@ref error_handling) occurred.
- *
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
- * GLFW_PLATFORM_ERROR.
- *
- * @pointer_lifetime The returned array is allocated and freed by GLFW. You
- * should not free it yourself. It is valid until the specified monitor is
- * disconnected or the library is terminated.
- *
- * @thread_safety This function must only be called from the main thread.
- *
- * @sa @ref monitor_modes
- * @sa glfwGetVideoModes
- *
- * @since Added in version 3.0. Replaces `glfwGetDesktopMode`.
- *
- * @ingroup monitor
- */
-GLFWAPI const GLFWvidmode* glfwGetVideoMode(GLFWmonitor* monitor);
-
-/*! @brief Generates a gamma ramp and sets it for the specified monitor.
- *
- * This function generates a 256-element gamma ramp from the specified exponent
- * and then calls @ref glfwSetGammaRamp with it. The value must be a finite
- * number greater than zero.
- *
- * @param[in] monitor The monitor whose gamma ramp to set.
- * @param[in] gamma The desired exponent.
- *
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
- * GLFW_INVALID_VALUE and @ref GLFW_PLATFORM_ERROR.
- *
- * @thread_safety This function must only be called from the main thread.
- *
- * @sa @ref monitor_gamma
- *
- * @since Added in version 3.0.
- *
- * @ingroup monitor
- */
-GLFWAPI void glfwSetGamma(GLFWmonitor* monitor, float gamma);
-
-/*! @brief Returns the current gamma ramp for the specified monitor.
- *
- * This function returns the current gamma ramp of the specified monitor.
- *
- * @param[in] monitor The monitor to query.
- * @return The current gamma ramp, or `NULL` if an
- * [error](@ref error_handling) occurred.
- *
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
- * GLFW_PLATFORM_ERROR.
- *
- * @pointer_lifetime The returned structure and its arrays are allocated and
- * freed by GLFW. You should not free them yourself. They are valid until the
- * specified monitor is disconnected, this function is called again for that
- * monitor or the library is terminated.
- *
- * @thread_safety This function must only be called from the main thread.
- *
- * @sa @ref monitor_gamma
- *
- * @since Added in version 3.0.
- *
- * @ingroup monitor
- */
-GLFWAPI const GLFWgammaramp* glfwGetGammaRamp(GLFWmonitor* monitor);
-
-/*! @brief Sets the current gamma ramp for the specified monitor.
- *
- * This function sets the current gamma ramp for the specified monitor. The
- * original gamma ramp for that monitor is saved by GLFW the first time this
- * function is called and is restored by @ref glfwTerminate.
- *
- * @param[in] monitor The monitor whose gamma ramp to set.
- * @param[in] ramp The gamma ramp to use.
- *
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
- * GLFW_PLATFORM_ERROR.
- *
- * @remark Gamma ramp sizes other than 256 are not supported by all platforms
- * or graphics hardware.
- *
- * @remark @win32 The gamma ramp size must be 256.
- *
- * @pointer_lifetime The specified gamma ramp is copied before this function
- * returns.
- *
- * @thread_safety This function must only be called from the main thread.
- *
- * @sa @ref monitor_gamma
- *
- * @since Added in version 3.0.
- *
- * @ingroup monitor
- */
-GLFWAPI void glfwSetGammaRamp(GLFWmonitor* monitor, const GLFWgammaramp* ramp);
-
-/*! @brief Resets all window hints to their default values.
- *
- * This function resets all window hints to their
- * [default values](@ref window_hints_values).
- *
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
- *
- * @thread_safety This function must only be called from the main thread.
- *
- * @sa @ref window_hints
- * @sa glfwWindowHint
- *
- * @since Added in version 3.0.
- *
- * @ingroup window
- */
-GLFWAPI void glfwDefaultWindowHints(void);
-
-/*! @brief Sets the specified window hint to the desired value.
- *
- * This function sets hints for the next call to @ref glfwCreateWindow. The
- * hints, once set, retain their values until changed by a call to @ref
- * glfwWindowHint or @ref glfwDefaultWindowHints, or until the library is
- * terminated.
- *
- * This function does not check whether the specified hint values are valid.
- * If you set hints to invalid values this will instead be reported by the next
- * call to @ref glfwCreateWindow.
- *
- * @param[in] hint The [window hint](@ref window_hints) to set.
- * @param[in] value The new value of the window hint.
- *
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
- * GLFW_INVALID_ENUM.
- *
- * @thread_safety This function must only be called from the main thread.
- *
- * @sa @ref window_hints
- * @sa glfwDefaultWindowHints
- *
- * @since Added in version 3.0. Replaces `glfwOpenWindowHint`.
- *
- * @ingroup window
- */
-GLFWAPI void glfwWindowHint(int hint, int value);
-
-/*! @brief Creates a window and its associated context.
- *
- * This function creates a window and its associated OpenGL or OpenGL ES
- * context. Most of the options controlling how the window and its context
- * should be created are specified with [window hints](@ref window_hints).
- *
- * Successful creation does not change which context is current. Before you
- * can use the newly created context, you need to
- * [make it current](@ref context_current). For information about the `share`
- * parameter, see @ref context_sharing.
- *
- * The created window, framebuffer and context may differ from what you
- * requested, as not all parameters and hints are
- * [hard constraints](@ref window_hints_hard). This includes the size of the
- * window, especially for full screen windows. To query the actual attributes
- * of the created window, framebuffer and context, see @ref
- * glfwGetWindowAttrib, @ref glfwGetWindowSize and @ref glfwGetFramebufferSize.
- *
- * To create a full screen window, you need to specify the monitor the window
- * will cover. If no monitor is specified, the window will be windowed mode.
- * Unless you have a way for the user to choose a specific monitor, it is
- * recommended that you pick the primary monitor. For more information on how
- * to query connected monitors, see @ref monitor_monitors.
- *
- * For full screen windows, the specified size becomes the resolution of the
- * window's _desired video mode_. As long as a full screen window is not
- * iconified, the supported video mode most closely matching the desired video
- * mode is set for the specified monitor. For more information about full
- * screen windows, including the creation of so called _windowed full screen_
- * or _borderless full screen_ windows, see @ref window_windowed_full_screen.
- *
- * By default, newly created windows use the placement recommended by the
- * window system. To create the window at a specific position, make it
- * initially invisible using the [GLFW_VISIBLE](@ref window_hints_wnd) window
- * hint, set its [position](@ref window_pos) and then [show](@ref window_hide)
- * it.
- *
- * As long as at least one full screen window is not iconified, the screensaver
- * is prohibited from starting.
- *
- * Window systems put limits on window sizes. Very large or very small window
- * dimensions may be overridden by the window system on creation. Check the
- * actual [size](@ref window_size) after creation.
- *
- * The [swap interval](@ref buffer_swap) is not set during window creation and
- * the initial value may vary depending on driver settings and defaults.
- *
- * @param[in] width The desired width, in screen coordinates, of the window.
- * This must be greater than zero.
- * @param[in] height The desired height, in screen coordinates, of the window.
- * This must be greater than zero.
- * @param[in] title The initial, UTF-8 encoded window title.
- * @param[in] monitor The monitor to use for full screen mode, or `NULL` for
- * windowed mode.
- * @param[in] share The window whose context to share resources with, or `NULL`
- * to not share resources.
- * @return The handle of the created window, or `NULL` if an
- * [error](@ref error_handling) occurred.
- *
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
- * GLFW_INVALID_ENUM, @ref GLFW_INVALID_VALUE, @ref GLFW_API_UNAVAILABLE, @ref
- * GLFW_VERSION_UNAVAILABLE, @ref GLFW_FORMAT_UNAVAILABLE and @ref
- * GLFW_PLATFORM_ERROR.
- *
- * @remark @win32 Window creation will fail if the Microsoft GDI software
- * OpenGL implementation is the only one available.
- *
- * @remark @win32 If the executable has an icon resource named `GLFW_ICON,`
- * it will be set as the icon for the window. If no such icon is present, the
- * `IDI_WINLOGO` icon will be used instead.
- *
- * @remark @win32 The context to share resources with must not be current on
- * any other thread.
- *
- * @remark @osx The GLFW window has no icon, as it is not a document
- * window, but the dock icon will be the same as the application bundle's icon.
- * For more information on bundles, see the
- * [Bundle Programming Guide](https://developer.apple.com/library/mac/documentation/CoreFoundation/Conceptual/CFBundles/)
- * in the Mac Developer Library.
- *
- * @remark @osx The first time a window is created the menu bar is populated
- * with common commands like Hide, Quit and About. The About entry opens
- * a minimal about dialog with information from the application's bundle. The
- * menu bar can be disabled with a
- * [compile-time option](@ref compile_options_osx).
- *
- * @remark @osx On OS X 10.10 and later the window frame will not be rendered
- * at full resolution on Retina displays unless the `NSHighResolutionCapable`
- * key is enabled in the application bundle's `Info.plist`. For more
- * information, see
- * [High Resolution Guidelines for OS X](https://developer.apple.com/library/mac/documentation/GraphicsAnimation/Conceptual/HighResolutionOSX/Explained/Explained.html)
- * in the Mac Developer Library. The GLFW test and example programs use
- * a custom `Info.plist` template for this, which can be found as
- * `CMake/MacOSXBundleInfo.plist.in` in the source tree.
- *
- * @remark @x11 There is no mechanism for setting the window icon yet.
- *
- * @remark @x11 Some window managers will not respect the placement of
- * initially hidden windows.
- *
- * @remark @x11 Due to the asynchronous nature of X11, it may take a moment for
- * a window to reach its requested state. This means you may not be able to
- * query the final size, position or other attributes directly after window
- * creation.
- *
- * @reentrancy This function must not be called from a callback.
- *
- * @thread_safety This function must only be called from the main thread.
- *
- * @sa @ref window_creation
- * @sa glfwDestroyWindow
- *
- * @since Added in version 3.0. Replaces `glfwOpenWindow`.
- *
- * @ingroup window
- */
-GLFWAPI GLFWwindow* glfwCreateWindow(int width, int height, const char* title, GLFWmonitor* monitor, GLFWwindow* share);
-
-/*! @brief Destroys the specified window and its context.
- *
- * This function destroys the specified window and its context. On calling
- * this function, no further callbacks will be called for that window.
- *
- * If the context of the specified window is current on the main thread, it is
- * detached before being destroyed.
- *
- * @param[in] window The window to destroy.
- *
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
- * GLFW_PLATFORM_ERROR.
- *
- * @note The context of the specified window must not be current on any other
- * thread when this function is called.
- *
- * @reentrancy This function must not be called from a callback.
- *
- * @thread_safety This function must only be called from the main thread.
- *
- * @sa @ref window_creation
- * @sa glfwCreateWindow
- *
- * @since Added in version 3.0. Replaces `glfwCloseWindow`.
- *
- * @ingroup window
- */
-GLFWAPI void glfwDestroyWindow(GLFWwindow* window);
-
-/*! @brief Checks the close flag of the specified window.
- *
- * This function returns the value of the close flag of the specified window.
- *
- * @param[in] window The window to query.
- * @return The value of the close flag.
- *
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
- *
- * @thread_safety This function may be called from any thread. Access is not
- * synchronized.
- *
- * @sa @ref window_close
- *
- * @since Added in version 3.0.
- *
- * @ingroup window
- */
-GLFWAPI int glfwWindowShouldClose(GLFWwindow* window);
-
-/*! @brief Sets the close flag of the specified window.
- *
- * This function sets the value of the close flag of the specified window.
- * This can be used to override the user's attempt to close the window, or
- * to signal that it should be closed.
- *
- * @param[in] window The window whose flag to change.
- * @param[in] value The new value.
- *
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
- *
- * @thread_safety This function may be called from any thread. Access is not
- * synchronized.
- *
- * @sa @ref window_close
- *
- * @since Added in version 3.0.
- *
- * @ingroup window
- */
-GLFWAPI void glfwSetWindowShouldClose(GLFWwindow* window, int value);
-
-/*! @brief Sets the title of the specified window.
- *
- * This function sets the window title, encoded as UTF-8, of the specified
- * window.
- *
- * @param[in] window The window whose title to change.
- * @param[in] title The UTF-8 encoded window title.
- *
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
- * GLFW_PLATFORM_ERROR.
- *
- * @remark @osx The window title will not be updated until the next time you
- * process events.
- *
- * @thread_safety This function must only be called from the main thread.
- *
- * @sa @ref window_title
- *
- * @since Added in version 1.0.
- * @glfw3 Added window handle parameter.
- *
- * @ingroup window
- */
-GLFWAPI void glfwSetWindowTitle(GLFWwindow* window, const char* title);
-
-/*! @brief Sets the icon for the specified window.
- *
- * This function sets the icon of the specified window. If passed an array of
- * candidate images, those of or closest to the sizes desired by the system are
- * selected. If no images are specified, the window reverts to its default
- * icon.
- *
- * The desired image sizes varies depending on platform and system settings.
- * The selected images will be rescaled as needed. Good sizes include 16x16,
- * 32x32 and 48x48.
- *
- * @param[in] window The window whose icon to set.
- * @param[in] count The number of images in the specified array, or zero to
- * revert to the default window icon.
- * @param[in] images The images to create the icon from. This is ignored if
- * count is zero.
- *
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
- * GLFW_PLATFORM_ERROR.
- *
- * @pointer_lifetime The specified image data is copied before this function
- * returns.
- *
- * @remark @osx The GLFW window has no icon, as it is not a document
- * window, but the dock icon will be the same as the application bundle's icon.
- * For more information on bundles, see the
- * [Bundle Programming Guide](https://developer.apple.com/library/mac/documentation/CoreFoundation/Conceptual/CFBundles/)
- * in the Mac Developer Library.
- *
- * @thread_safety This function must only be called from the main thread.
- *
- * @sa @ref window_icon
- *
- * @since Added in version 3.2.
- *
- * @ingroup window
- */
-GLFWAPI void glfwSetWindowIcon(GLFWwindow* window, int count, const GLFWimage* images);
-
-/*! @brief Retrieves the position of the client area of the specified window.
- *
- * This function retrieves the position, in screen coordinates, of the
- * upper-left corner of the client area of the specified window.
- *
- * Any or all of the position arguments may be `NULL`. If an error occurs, all
- * non-`NULL` position arguments will be set to zero.
- *
- * @param[in] window The window to query.
- * @param[out] xpos Where to store the x-coordinate of the upper-left corner of
- * the client area, or `NULL`.
- * @param[out] ypos Where to store the y-coordinate of the upper-left corner of
- * the client area, or `NULL`.
- *
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
- * GLFW_PLATFORM_ERROR.
- *
- * @thread_safety This function must only be called from the main thread.
- *
- * @sa @ref window_pos
- * @sa glfwSetWindowPos
- *
- * @since Added in version 3.0.
- *
- * @ingroup window
- */
-GLFWAPI void glfwGetWindowPos(GLFWwindow* window, int* xpos, int* ypos);
-
-/*! @brief Sets the position of the client area of the specified window.
- *
- * This function sets the position, in screen coordinates, of the upper-left
- * corner of the client area of the specified windowed mode window. If the
- * window is a full screen window, this function does nothing.
- *
- * __Do not use this function__ to move an already visible window unless you
- * have very good reasons for doing so, as it will confuse and annoy the user.
- *
- * The window manager may put limits on what positions are allowed. GLFW
- * cannot and should not override these limits.
- *
- * @param[in] window The window to query.
- * @param[in] xpos The x-coordinate of the upper-left corner of the client area.
- * @param[in] ypos The y-coordinate of the upper-left corner of the client area.
- *
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
- * GLFW_PLATFORM_ERROR.
- *
- * @thread_safety This function must only be called from the main thread.
- *
- * @sa @ref window_pos
- * @sa glfwGetWindowPos
- *
- * @since Added in version 1.0.
- * @glfw3 Added window handle parameter.
- *
- * @ingroup window
- */
-GLFWAPI void glfwSetWindowPos(GLFWwindow* window, int xpos, int ypos);
-
-/*! @brief Retrieves the size of the client area of the specified window.
- *
- * This function retrieves the size, in screen coordinates, of the client area
- * of the specified window. If you wish to retrieve the size of the
- * framebuffer of the window in pixels, see @ref glfwGetFramebufferSize.
- *
- * Any or all of the size arguments may be `NULL`. If an error occurs, all
- * non-`NULL` size arguments will be set to zero.
- *
- * @param[in] window The window whose size to retrieve.
- * @param[out] width Where to store the width, in screen coordinates, of the
- * client area, or `NULL`.
- * @param[out] height Where to store the height, in screen coordinates, of the
- * client area, or `NULL`.
- *
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
- * GLFW_PLATFORM_ERROR.
- *
- * @thread_safety This function must only be called from the main thread.
- *
- * @sa @ref window_size
- * @sa glfwSetWindowSize
- *
- * @since Added in version 1.0.
- * @glfw3 Added window handle parameter.
- *
- * @ingroup window
- */
-GLFWAPI void glfwGetWindowSize(GLFWwindow* window, int* width, int* height);
-
-/*! @brief Sets the size limits of the specified window.
- *
- * This function sets the size limits of the client area of the specified
- * window. If the window is full screen, the size limits only take effect if
- * once it is made windowed. If the window is not resizable, this function
- * does nothing.
- *
- * The size limits are applied immediately to a windowed mode window and may
- * cause it to be resized.
- *
- * @param[in] window The window to set limits for.
- * @param[in] minwidth The minimum width, in screen coordinates, of the client
- * area, or `GLFW_DONT_CARE`.
- * @param[in] minheight The minimum height, in screen coordinates, of the
- * client area, or `GLFW_DONT_CARE`.
- * @param[in] maxwidth The maximum width, in screen coordinates, of the client
- * area, or `GLFW_DONT_CARE`.
- * @param[in] maxheight The maximum height, in screen coordinates, of the
- * client area, or `GLFW_DONT_CARE`.
- *
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
- * GLFW_PLATFORM_ERROR.
- *
- * @remark If you set size limits and an aspect ratio that conflict, the
- * results are undefined.
- *
- * @thread_safety This function must only be called from the main thread.
- *
- * @sa @ref window_sizelimits
- * @sa glfwSetWindowAspectRatio
- *
- * @since Added in version 3.2.
- *
- * @ingroup window
- */
-GLFWAPI void glfwSetWindowSizeLimits(GLFWwindow* window, int minwidth, int minheight, int maxwidth, int maxheight);
-
-/*! @brief Sets the aspect ratio of the specified window.
- *
- * This function sets the required aspect ratio of the client area of the
- * specified window. If the window is full screen, the aspect ratio only takes
- * effect once it is made windowed. If the window is not resizable, this
- * function does nothing.
- *
- * The aspect ratio is specified as a numerator and a denominator and both
- * values must be greater than zero. For example, the common 16:9 aspect ratio
- * is specified as 16 and 9, respectively.
- *
- * If the numerator and denominator is set to `GLFW_DONT_CARE` then the aspect
- * ratio limit is disabled.
- *
- * The aspect ratio is applied immediately to a windowed mode window and may
- * cause it to be resized.
- *
- * @param[in] window The window to set limits for.
- * @param[in] numer The numerator of the desired aspect ratio, or
- * `GLFW_DONT_CARE`.
- * @param[in] denom The denominator of the desired aspect ratio, or
- * `GLFW_DONT_CARE`.
- *
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
- * GLFW_INVALID_VALUE and @ref GLFW_PLATFORM_ERROR.
- *
- * @remark If you set size limits and an aspect ratio that conflict, the
- * results are undefined.
- *
- * @thread_safety This function must only be called from the main thread.
- *
- * @sa @ref window_sizelimits
- * @sa glfwSetWindowSizeLimits
- *
- * @since Added in version 3.2.
- *
- * @ingroup window
- */
-GLFWAPI void glfwSetWindowAspectRatio(GLFWwindow* window, int numer, int denom);
-
-/*! @brief Sets the size of the client area of the specified window.
- *
- * This function sets the size, in screen coordinates, of the client area of
- * the specified window.
- *
- * For full screen windows, this function updates the resolution of its desired
- * video mode and switches to the video mode closest to it, without affecting
- * the window's context. As the context is unaffected, the bit depths of the
- * framebuffer remain unchanged.
- *
- * If you wish to update the refresh rate of the desired video mode in addition
- * to its resolution, see @ref glfwSetWindowMonitor.
- *
- * The window manager may put limits on what sizes are allowed. GLFW cannot
- * and should not override these limits.
- *
- * @param[in] window The window to resize.
- * @param[in] width The desired width, in screen coordinates, of the window
- * client area.
- * @param[in] height The desired height, in screen coordinates, of the window
- * client area.
- *
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
- * GLFW_PLATFORM_ERROR.
- *
- * @thread_safety This function must only be called from the main thread.
- *
- * @sa @ref window_size
- * @sa glfwGetWindowSize
- * @sa glfwSetWindowMonitor
- *
- * @since Added in version 1.0.
- * @glfw3 Added window handle parameter.
- *
- * @ingroup window
- */
-GLFWAPI void glfwSetWindowSize(GLFWwindow* window, int width, int height);
-
-/*! @brief Retrieves the size of the framebuffer of the specified window.
- *
- * This function retrieves the size, in pixels, of the framebuffer of the
- * specified window. If you wish to retrieve the size of the window in screen
- * coordinates, see @ref glfwGetWindowSize.
- *
- * Any or all of the size arguments may be `NULL`. If an error occurs, all
- * non-`NULL` size arguments will be set to zero.
- *
- * @param[in] window The window whose framebuffer to query.
- * @param[out] width Where to store the width, in pixels, of the framebuffer,
- * or `NULL`.
- * @param[out] height Where to store the height, in pixels, of the framebuffer,
- * or `NULL`.
- *
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
- * GLFW_PLATFORM_ERROR.
- *
- * @thread_safety This function must only be called from the main thread.
- *
- * @sa @ref window_fbsize
- * @sa glfwSetFramebufferSizeCallback
- *
- * @since Added in version 3.0.
- *
- * @ingroup window
- */
-GLFWAPI void glfwGetFramebufferSize(GLFWwindow* window, int* width, int* height);
-
-/*! @brief Retrieves the size of the frame of the window.
- *
- * This function retrieves the size, in screen coordinates, of each edge of the
- * frame of the specified window. This size includes the title bar, if the
- * window has one. The size of the frame may vary depending on the
- * [window-related hints](@ref window_hints_wnd) used to create it.
- *
- * Because this function retrieves the size of each window frame edge and not
- * the offset along a particular coordinate axis, the retrieved values will
- * always be zero or positive.
- *
- * Any or all of the size arguments may be `NULL`. If an error occurs, all
- * non-`NULL` size arguments will be set to zero.
- *
- * @param[in] window The window whose frame size to query.
- * @param[out] left Where to store the size, in screen coordinates, of the left
- * edge of the window frame, or `NULL`.
- * @param[out] top Where to store the size, in screen coordinates, of the top
- * edge of the window frame, or `NULL`.
- * @param[out] right Where to store the size, in screen coordinates, of the
- * right edge of the window frame, or `NULL`.
- * @param[out] bottom Where to store the size, in screen coordinates, of the
- * bottom edge of the window frame, or `NULL`.
- *
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
- * GLFW_PLATFORM_ERROR.
- *
- * @thread_safety This function must only be called from the main thread.
- *
- * @sa @ref window_size
- *
- * @since Added in version 3.1.
- *
- * @ingroup window
- */
-GLFWAPI void glfwGetWindowFrameSize(GLFWwindow* window, int* left, int* top, int* right, int* bottom);
-
-/*! @brief Iconifies the specified window.
- *
- * This function iconifies (minimizes) the specified window if it was
- * previously restored. If the window is already iconified, this function does
- * nothing.
- *
- * If the specified window is a full screen window, the original monitor
- * resolution is restored until the window is restored.
- *
- * @param[in] window The window to iconify.
- *
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
- * GLFW_PLATFORM_ERROR.
- *
- * @thread_safety This function must only be called from the main thread.
- *
- * @sa @ref window_iconify
- * @sa glfwRestoreWindow
- * @sa glfwMaximizeWindow
- *
- * @since Added in version 2.1.
- * @glfw3 Added window handle parameter.
- *
- * @ingroup window
- */
-GLFWAPI void glfwIconifyWindow(GLFWwindow* window);
-
-/*! @brief Restores the specified window.
- *
- * This function restores the specified window if it was previously iconified
- * (minimized) or maximized. If the window is already restored, this function
- * does nothing.
- *
- * If the specified window is a full screen window, the resolution chosen for
- * the window is restored on the selected monitor.
- *
- * @param[in] window The window to restore.
- *
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
- * GLFW_PLATFORM_ERROR.
- *
- * @thread_safety This function must only be called from the main thread.
- *
- * @sa @ref window_iconify
- * @sa glfwIconifyWindow
- * @sa glfwMaximizeWindow
- *
- * @since Added in version 2.1.
- * @glfw3 Added window handle parameter.
- *
- * @ingroup window
- */
-GLFWAPI void glfwRestoreWindow(GLFWwindow* window);
-
-/*! @brief Maximizes the specified window.
- *
- * This function maximizes the specified window if it was previously not
- * maximized. If the window is already maximized, this function does nothing.
- *
- * If the specified window is a full screen window, this function does nothing.
- *
- * @param[in] window The window to maximize.
- *
- * @par Thread Safety
- * This function may only be called from the main thread.
- *
- * @sa @ref window_iconify
- * @sa glfwIconifyWindow
- * @sa glfwRestoreWindow
- *
- * @since Added in GLFW 3.2.
- *
- * @ingroup window
- */
-GLFWAPI void glfwMaximizeWindow(GLFWwindow* window);
-
-/*! @brief Makes the specified window visible.
- *
- * This function makes the specified window visible if it was previously
- * hidden. If the window is already visible or is in full screen mode, this
- * function does nothing.
- *
- * @param[in] window The window to make visible.
- *
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
- * GLFW_PLATFORM_ERROR.
- *
- * @thread_safety This function must only be called from the main thread.
- *
- * @sa @ref window_hide
- * @sa glfwHideWindow
- *
- * @since Added in version 3.0.
- *
- * @ingroup window
- */
-GLFWAPI void glfwShowWindow(GLFWwindow* window);
-
-/*! @brief Hides the specified window.
- *
- * This function hides the specified window if it was previously visible. If
- * the window is already hidden or is in full screen mode, this function does
- * nothing.
- *
- * @param[in] window The window to hide.
- *
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
- * GLFW_PLATFORM_ERROR.
- *
- * @thread_safety This function must only be called from the main thread.
- *
- * @sa @ref window_hide
- * @sa glfwShowWindow
- *
- * @since Added in version 3.0.
- *
- * @ingroup window
- */
-GLFWAPI void glfwHideWindow(GLFWwindow* window);
-
-/*! @brief Brings the specified window to front and sets input focus.
- *
- * This function brings the specified window to front and sets input focus.
- * The window should already be visible and not iconified.
- *
- * By default, both windowed and full screen mode windows are focused when
- * initially created. Set the [GLFW_FOCUSED](@ref window_hints_wnd) to disable
- * this behavior.
- *
- * __Do not use this function__ to steal focus from other applications unless
- * you are certain that is what the user wants. Focus stealing can be
- * extremely disruptive.
- *
- * @param[in] window The window to give input focus.
- *
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
- * GLFW_PLATFORM_ERROR.
- *
- * @thread_safety This function must only be called from the main thread.
- *
- * @sa @ref window_focus
- *
- * @since Added in version 3.2.
- *
- * @ingroup window
- */
-GLFWAPI void glfwFocusWindow(GLFWwindow* window);
-
-/*! @brief Returns the monitor that the window uses for full screen mode.
- *
- * This function returns the handle of the monitor that the specified window is
- * in full screen on.
- *
- * @param[in] window The window to query.
- * @return The monitor, or `NULL` if the window is in windowed mode or an error
- * occurred.
- *
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
- *
- * @thread_safety This function must only be called from the main thread.
- *
- * @sa @ref window_monitor
- * @sa glfwSetWindowMonitor
- *
- * @since Added in version 3.0.
- *
- * @ingroup window
- */
-GLFWAPI GLFWmonitor* glfwGetWindowMonitor(GLFWwindow* window);
-
-/*! @brief Sets the mode, monitor, video mode and placement of a window.
- *
- * This function sets the monitor that the window uses for full screen mode or,
- * if the monitor is `NULL`, makes it windowed mode.
- *
- * When setting a monitor, this function updates the width, height and refresh
- * rate of the desired video mode and switches to the video mode closest to it.
- * The window position is ignored when setting a monitor.
- *
- * When the monitor is `NULL`, the position, width and height are used to
- * place the window client area. The refresh rate is ignored when no monitor
- * is specified.
- *
- * If you only wish to update the resolution of a full screen window or the
- * size of a windowed mode window, see @ref glfwSetWindowSize.
- *
- * When a window transitions from full screen to windowed mode, this function
- * restores any previous window settings such as whether it is decorated,
- * floating, resizable, has size or aspect ratio limits, etc..
- *
- * @param[in] window The window whose monitor, size or video mode to set.
- * @param[in] monitor The desired monitor, or `NULL` to set windowed mode.
- * @param[in] xpos The desired x-coordinate of the upper-left corner of the
- * client area.
- * @param[in] ypos The desired y-coordinate of the upper-left corner of the
- * client area.
- * @param[in] width The desired with, in screen coordinates, of the client area
- * or video mode.
- * @param[in] height The desired height, in screen coordinates, of the client
- * area or video mode.
- * @param[in] refreshRate The desired refresh rate, in Hz, of the video mode.
- *
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
- * GLFW_PLATFORM_ERROR.
- *
- * @thread_safety This function must only be called from the main thread.
- *
- * @sa @ref window_monitor
- * @sa @ref window_full_screen
- * @sa glfwGetWindowMonitor
- * @sa glfwSetWindowSize
- *
- * @since Added in version 3.2.
- *
- * @ingroup window
- */
-GLFWAPI void glfwSetWindowMonitor(GLFWwindow* window, GLFWmonitor* monitor, int xpos, int ypos, int width, int height, int refreshRate);
-
-/*! @brief Returns an attribute of the specified window.
- *
- * This function returns the value of an attribute of the specified window or
- * its OpenGL or OpenGL ES context.
- *
- * @param[in] window The window to query.
- * @param[in] attrib The [window attribute](@ref window_attribs) whose value to
- * return.
- * @return The value of the attribute, or zero if an
- * [error](@ref error_handling) occurred.
- *
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
- * GLFW_INVALID_ENUM and @ref GLFW_PLATFORM_ERROR.
- *
- * @remark Framebuffer related hints are not window attributes. See @ref
- * window_attribs_fb for more information.
- *
- * @remark Zero is a valid value for many window and context related
- * attributes so you cannot use a return value of zero as an indication of
- * errors. However, this function should not fail as long as it is passed
- * valid arguments and the library has been [initialized](@ref intro_init).
- *
- * @thread_safety This function must only be called from the main thread.
- *
- * @sa @ref window_attribs
- *
- * @since Added in version 3.0. Replaces `glfwGetWindowParam` and
- * `glfwGetGLVersion`.
- *
- * @ingroup window
- */
-GLFWAPI int glfwGetWindowAttrib(GLFWwindow* window, int attrib);
-
-/*! @brief Sets the user pointer of the specified window.
- *
- * This function sets the user-defined pointer of the specified window. The
- * current value is retained until the window is destroyed. The initial value
- * is `NULL`.
- *
- * @param[in] window The window whose pointer to set.
- * @param[in] pointer The new value.
- *
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
- *
- * @thread_safety This function may be called from any thread. Access is not
- * synchronized.
- *
- * @sa @ref window_userptr
- * @sa glfwGetWindowUserPointer
- *
- * @since Added in version 3.0.
- *
- * @ingroup window
- */
-GLFWAPI void glfwSetWindowUserPointer(GLFWwindow* window, void* pointer);
-
-/*! @brief Returns the user pointer of the specified window.
- *
- * This function returns the current value of the user-defined pointer of the
- * specified window. The initial value is `NULL`.
- *
- * @param[in] window The window whose pointer to return.
- *
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
- *
- * @thread_safety This function may be called from any thread. Access is not
- * synchronized.
- *
- * @sa @ref window_userptr
- * @sa glfwSetWindowUserPointer
- *
- * @since Added in version 3.0.
- *
- * @ingroup window
- */
-GLFWAPI void* glfwGetWindowUserPointer(GLFWwindow* window);
-
-/*! @brief Sets the position callback for the specified window.
- *
- * This function sets the position callback of the specified window, which is
- * called when the window is moved. The callback is provided with the screen
- * position of the upper-left corner of the client area of the window.
- *
- * @param[in] window The window whose callback to set.
- * @param[in] cbfun The new callback, or `NULL` to remove the currently set
- * callback.
- * @return The previously set callback, or `NULL` if no callback was set or the
- * library had not been [initialized](@ref intro_init).
- *
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
- *
- * @thread_safety This function must only be called from the main thread.
- *
- * @sa @ref window_pos
- *
- * @since Added in version 3.0.
- *
- * @ingroup window
- */
-GLFWAPI GLFWwindowposfun glfwSetWindowPosCallback(GLFWwindow* window, GLFWwindowposfun cbfun);
-
-/*! @brief Sets the size callback for the specified window.
- *
- * This function sets the size callback of the specified window, which is
- * called when the window is resized. The callback is provided with the size,
- * in screen coordinates, of the client area of the window.
- *
- * @param[in] window The window whose callback to set.
- * @param[in] cbfun The new callback, or `NULL` to remove the currently set
- * callback.
- * @return The previously set callback, or `NULL` if no callback was set or the
- * library had not been [initialized](@ref intro_init).
- *
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
- *
- * @thread_safety This function must only be called from the main thread.
- *
- * @sa @ref window_size
- *
- * @since Added in version 1.0.
- * @glfw3 Added window handle parameter and return value.
- *
- * @ingroup window
- */
-GLFWAPI GLFWwindowsizefun glfwSetWindowSizeCallback(GLFWwindow* window, GLFWwindowsizefun cbfun);
-
-/*! @brief Sets the close callback for the specified window.
- *
- * This function sets the close callback of the specified window, which is
- * called when the user attempts to close the window, for example by clicking
- * the close widget in the title bar.
- *
- * The close flag is set before this callback is called, but you can modify it
- * at any time with @ref glfwSetWindowShouldClose.
- *
- * The close callback is not triggered by @ref glfwDestroyWindow.
- *
- * @param[in] window The window whose callback to set.
- * @param[in] cbfun The new callback, or `NULL` to remove the currently set
- * callback.
- * @return The previously set callback, or `NULL` if no callback was set or the
- * library had not been [initialized](@ref intro_init).
- *
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
- *
- * @remark @osx Selecting Quit from the application menu will trigger the close
- * callback for all windows.
- *
- * @thread_safety This function must only be called from the main thread.
- *
- * @sa @ref window_close
- *
- * @since Added in version 2.5.
- * @glfw3 Added window handle parameter and return value.
- *
- * @ingroup window
- */
-GLFWAPI GLFWwindowclosefun glfwSetWindowCloseCallback(GLFWwindow* window, GLFWwindowclosefun cbfun);
-
-/*! @brief Sets the refresh callback for the specified window.
- *
- * This function sets the refresh callback of the specified window, which is
- * called when the client area of the window needs to be redrawn, for example
- * if the window has been exposed after having been covered by another window.
- *
- * On compositing window systems such as Aero, Compiz or Aqua, where the window
- * contents are saved off-screen, this callback may be called only very
- * infrequently or never at all.
- *
- * @param[in] window The window whose callback to set.
- * @param[in] cbfun The new callback, or `NULL` to remove the currently set
- * callback.
- * @return The previously set callback, or `NULL` if no callback was set or the
- * library had not been [initialized](@ref intro_init).
- *
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
- *
- * @thread_safety This function must only be called from the main thread.
- *
- * @sa @ref window_refresh
- *
- * @since Added in version 2.5.
- * @glfw3 Added window handle parameter and return value.
- *
- * @ingroup window
- */
-GLFWAPI GLFWwindowrefreshfun glfwSetWindowRefreshCallback(GLFWwindow* window, GLFWwindowrefreshfun cbfun);
-
-/*! @brief Sets the focus callback for the specified window.
- *
- * This function sets the focus callback of the specified window, which is
- * called when the window gains or loses input focus.
- *
- * After the focus callback is called for a window that lost input focus,
- * synthetic key and mouse button release events will be generated for all such
- * that had been pressed. For more information, see @ref glfwSetKeyCallback
- * and @ref glfwSetMouseButtonCallback.
- *
- * @param[in] window The window whose callback to set.
- * @param[in] cbfun The new callback, or `NULL` to remove the currently set
- * callback.
- * @return The previously set callback, or `NULL` if no callback was set or the
- * library had not been [initialized](@ref intro_init).
- *
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
- *
- * @thread_safety This function must only be called from the main thread.
- *
- * @sa @ref window_focus
- *
- * @since Added in version 3.0.
- *
- * @ingroup window
- */
-GLFWAPI GLFWwindowfocusfun glfwSetWindowFocusCallback(GLFWwindow* window, GLFWwindowfocusfun cbfun);
-
-/*! @brief Sets the iconify callback for the specified window.
- *
- * This function sets the iconification callback of the specified window, which
- * is called when the window is iconified or restored.
- *
- * @param[in] window The window whose callback to set.
- * @param[in] cbfun The new callback, or `NULL` to remove the currently set
- * callback.
- * @return The previously set callback, or `NULL` if no callback was set or the
- * library had not been [initialized](@ref intro_init).
- *
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
- *
- * @thread_safety This function must only be called from the main thread.
- *
- * @sa @ref window_iconify
- *
- * @since Added in version 3.0.
- *
- * @ingroup window
- */
-GLFWAPI GLFWwindowiconifyfun glfwSetWindowIconifyCallback(GLFWwindow* window, GLFWwindowiconifyfun cbfun);
-
-/*! @brief Sets the framebuffer resize callback for the specified window.
- *
- * This function sets the framebuffer resize callback of the specified window,
- * which is called when the framebuffer of the specified window is resized.
- *
- * @param[in] window The window whose callback to set.
- * @param[in] cbfun The new callback, or `NULL` to remove the currently set
- * callback.
- * @return The previously set callback, or `NULL` if no callback was set or the
- * library had not been [initialized](@ref intro_init).
- *
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
- *
- * @thread_safety This function must only be called from the main thread.
- *
- * @sa @ref window_fbsize
- *
- * @since Added in version 3.0.
- *
- * @ingroup window
- */
-GLFWAPI GLFWframebuffersizefun glfwSetFramebufferSizeCallback(GLFWwindow* window, GLFWframebuffersizefun cbfun);
-
-/*! @brief Processes all pending events.
- *
- * This function processes only those events that are already in the event
- * queue and then returns immediately. Processing events will cause the window
- * and input callbacks associated with those events to be called.
- *
- * On some platforms, a window move, resize or menu operation will cause event
- * processing to block. This is due to how event processing is designed on
- * those platforms. You can use the
- * [window refresh callback](@ref window_refresh) to redraw the contents of
- * your window when necessary during such operations.
- *
- * On some platforms, certain events are sent directly to the application
- * without going through the event queue, causing callbacks to be called
- * outside of a call to one of the event processing functions.
- *
- * Event processing is not required for joystick input to work.
- *
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
- * GLFW_PLATFORM_ERROR.
- *
- * @reentrancy This function must not be called from a callback.
- *
- * @thread_safety This function must only be called from the main thread.
- *
- * @sa @ref events
- * @sa glfwWaitEvents
- * @sa glfwWaitEventsTimeout
- *
- * @since Added in version 1.0.
- *
- * @ingroup window
- */
-GLFWAPI void glfwPollEvents(void);
-
-/*! @brief Waits until events are queued and processes them.
- *
- * This function puts the calling thread to sleep until at least one event is
- * available in the event queue. Once one or more events are available,
- * it behaves exactly like @ref glfwPollEvents, i.e. the events in the queue
- * are processed and the function then returns immediately. Processing events
- * will cause the window and input callbacks associated with those events to be
- * called.
- *
- * Since not all events are associated with callbacks, this function may return
- * without a callback having been called even if you are monitoring all
- * callbacks.
- *
- * On some platforms, a window move, resize or menu operation will cause event
- * processing to block. This is due to how event processing is designed on
- * those platforms. You can use the
- * [window refresh callback](@ref window_refresh) to redraw the contents of
- * your window when necessary during such operations.
- *
- * On some platforms, certain callbacks may be called outside of a call to one
- * of the event processing functions.
- *
- * If no windows exist, this function returns immediately. For synchronization
- * of threads in applications that do not create windows, use your threading
- * library of choice.
- *
- * Event processing is not required for joystick input to work.
- *
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
- * GLFW_PLATFORM_ERROR.
- *
- * @reentrancy This function must not be called from a callback.
- *
- * @thread_safety This function must only be called from the main thread.
- *
- * @sa @ref events
- * @sa glfwPollEvents
- * @sa glfwWaitEventsTimeout
- *
- * @since Added in version 2.5.
- *
- * @ingroup window
- */
-GLFWAPI void glfwWaitEvents(void);
-
-/*! @brief Waits with timeout until events are queued and processes them.
- *
- * This function puts the calling thread to sleep until at least one event is
- * available in the event queue, or until the specified timeout is reached. If
- * one or more events are available, it behaves exactly like @ref
- * glfwPollEvents, i.e. the events in the queue are processed and the function
- * then returns immediately. Processing events will cause the window and input
- * callbacks associated with those events to be called.
- *
- * The timeout value must be a positive finite number.
- *
- * Since not all events are associated with callbacks, this function may return
- * without a callback having been called even if you are monitoring all
- * callbacks.
- *
- * On some platforms, a window move, resize or menu operation will cause event
- * processing to block. This is due to how event processing is designed on
- * those platforms. You can use the
- * [window refresh callback](@ref window_refresh) to redraw the contents of
- * your window when necessary during such operations.
- *
- * On some platforms, certain callbacks may be called outside of a call to one
- * of the event processing functions.
- *
- * If no windows exist, this function returns immediately. For synchronization
- * of threads in applications that do not create windows, use your threading
- * library of choice.
- *
- * Event processing is not required for joystick input to work.
- *
- * @param[in] timeout The maximum amount of time, in seconds, to wait.
- *
- * @reentrancy This function must not be called from a callback.
- *
- * @thread_safety This function must only be called from the main thread.
- *
- * @sa @ref events
- * @sa glfwPollEvents
- * @sa glfwWaitEvents
- *
- * @since Added in version 3.2.
- *
- * @ingroup window
- */
-GLFWAPI void glfwWaitEventsTimeout(double timeout);
-
-/*! @brief Posts an empty event to the event queue.
- *
- * This function posts an empty event from the current thread to the event
- * queue, causing @ref glfwWaitEvents to return.
- *
- * If no windows exist, this function returns immediately. For synchronization
- * of threads in applications that do not create windows, use your threading
- * library of choice.
- *
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
- * GLFW_PLATFORM_ERROR.
- *
- * @thread_safety This function may be called from any thread.
- *
- * @sa @ref events
- * @sa glfwWaitEvents
- *
- * @since Added in version 3.1.
- *
- * @ingroup window
- */
-GLFWAPI void glfwPostEmptyEvent(void);
-
-/*! @brief Returns the value of an input option for the specified window.
- *
- * This function returns the value of an input option for the specified window.
- * The mode must be one of `GLFW_CURSOR`, `GLFW_STICKY_KEYS` or
- * `GLFW_STICKY_MOUSE_BUTTONS`.
- *
- * @param[in] window The window to query.
- * @param[in] mode One of `GLFW_CURSOR`, `GLFW_STICKY_KEYS` or
- * `GLFW_STICKY_MOUSE_BUTTONS`.
- *
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
- * GLFW_INVALID_ENUM.
- *
- * @thread_safety This function must only be called from the main thread.
- *
- * @sa glfwSetInputMode
- *
- * @since Added in version 3.0.
- *
- * @ingroup input
- */
-GLFWAPI int glfwGetInputMode(GLFWwindow* window, int mode);
-
-/*! @brief Sets an input option for the specified window.
- *
- * This function sets an input mode option for the specified window. The mode
- * must be one of `GLFW_CURSOR`, `GLFW_STICKY_KEYS` or
- * `GLFW_STICKY_MOUSE_BUTTONS`.
- *
- * If the mode is `GLFW_CURSOR`, the value must be one of the following cursor
- * modes:
- * - `GLFW_CURSOR_NORMAL` makes the cursor visible and behaving normally.
- * - `GLFW_CURSOR_HIDDEN` makes the cursor invisible when it is over the client
- * area of the window but does not restrict the cursor from leaving.
- * - `GLFW_CURSOR_DISABLED` hides and grabs the cursor, providing virtual
- * and unlimited cursor movement. This is useful for implementing for
- * example 3D camera controls.
- *
- * If the mode is `GLFW_STICKY_KEYS`, the value must be either `GLFW_TRUE` to
- * enable sticky keys, or `GLFW_FALSE` to disable it. If sticky keys are
- * enabled, a key press will ensure that @ref glfwGetKey returns `GLFW_PRESS`
- * the next time it is called even if the key had been released before the
- * call. This is useful when you are only interested in whether keys have been
- * pressed but not when or in which order.
- *
- * If the mode is `GLFW_STICKY_MOUSE_BUTTONS`, the value must be either
- * `GLFW_TRUE` to enable sticky mouse buttons, or `GLFW_FALSE` to disable it.
- * If sticky mouse buttons are enabled, a mouse button press will ensure that
- * @ref glfwGetMouseButton returns `GLFW_PRESS` the next time it is called even
- * if the mouse button had been released before the call. This is useful when
- * you are only interested in whether mouse buttons have been pressed but not
- * when or in which order.
- *
- * @param[in] window The window whose input mode to set.
- * @param[in] mode One of `GLFW_CURSOR`, `GLFW_STICKY_KEYS` or
- * `GLFW_STICKY_MOUSE_BUTTONS`.
- * @param[in] value The new value of the specified input mode.
- *
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
- * GLFW_INVALID_ENUM and @ref GLFW_PLATFORM_ERROR.
- *
- * @thread_safety This function must only be called from the main thread.
- *
- * @sa glfwGetInputMode
- *
- * @since Added in version 3.0. Replaces `glfwEnable` and `glfwDisable`.
- *
- * @ingroup input
- */
-GLFWAPI void glfwSetInputMode(GLFWwindow* window, int mode, int value);
-
-/*! @brief Returns the localized name of the specified printable key.
- *
- * This function returns the localized name of the specified printable key.
- * This is intended for displaying key bindings to the user.
- *
- * If the key is `GLFW_KEY_UNKNOWN`, the scancode is used instead, otherwise
- * the scancode is ignored. If a non-printable key or (if the key is
- * `GLFW_KEY_UNKNOWN`) a scancode that maps to a non-printable key is
- * specified, this function returns `NULL`.
- *
- * This behavior allows you to pass in the arguments passed to the
- * [key callback](@ref input_key) without modification.
- *
- * The printable keys are:
- * - `GLFW_KEY_APOSTROPHE`
- * - `GLFW_KEY_COMMA`
- * - `GLFW_KEY_MINUS`
- * - `GLFW_KEY_PERIOD`
- * - `GLFW_KEY_SLASH`
- * - `GLFW_KEY_SEMICOLON`
- * - `GLFW_KEY_EQUAL`
- * - `GLFW_KEY_LEFT_BRACKET`
- * - `GLFW_KEY_RIGHT_BRACKET`
- * - `GLFW_KEY_BACKSLASH`
- * - `GLFW_KEY_WORLD_1`
- * - `GLFW_KEY_WORLD_2`
- * - `GLFW_KEY_0` to `GLFW_KEY_9`
- * - `GLFW_KEY_A` to `GLFW_KEY_Z`
- * - `GLFW_KEY_KP_0` to `GLFW_KEY_KP_9`
- * - `GLFW_KEY_KP_DECIMAL`
- * - `GLFW_KEY_KP_DIVIDE`
- * - `GLFW_KEY_KP_MULTIPLY`
- * - `GLFW_KEY_KP_SUBTRACT`
- * - `GLFW_KEY_KP_ADD`
- * - `GLFW_KEY_KP_EQUAL`
- *
- * @param[in] key The key to query, or `GLFW_KEY_UNKNOWN`.
- * @param[in] scancode The scancode of the key to query.
- * @return The localized name of the key, or `NULL`.
- *
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
- * GLFW_PLATFORM_ERROR.
- *
- * @pointer_lifetime The returned string is allocated and freed by GLFW. You
- * should not free it yourself. It is valid until the next call to @ref
- * glfwGetKeyName, or until the library is terminated.
- *
- * @thread_safety This function must only be called from the main thread.
- *
- * @sa @ref input_key_name
- *
- * @since Added in version 3.2.
- *
- * @ingroup input
- */
-GLFWAPI const char* glfwGetKeyName(int key, int scancode);
-
-/*! @brief Returns the last reported state of a keyboard key for the specified
- * window.
- *
- * This function returns the last state reported for the specified key to the
- * specified window. The returned state is one of `GLFW_PRESS` or
- * `GLFW_RELEASE`. The higher-level action `GLFW_REPEAT` is only reported to
- * the key callback.
- *
- * If the `GLFW_STICKY_KEYS` input mode is enabled, this function returns
- * `GLFW_PRESS` the first time you call it for a key that was pressed, even if
- * that key has already been released.
- *
- * The key functions deal with physical keys, with [key tokens](@ref keys)
- * named after their use on the standard US keyboard layout. If you want to
- * input text, use the Unicode character callback instead.
- *
- * The [modifier key bit masks](@ref mods) are not key tokens and cannot be
- * used with this function.
- *
- * __Do not use this function__ to implement [text input](@ref input_char).
- *
- * @param[in] window The desired window.
- * @param[in] key The desired [keyboard key](@ref keys). `GLFW_KEY_UNKNOWN` is
- * not a valid key for this function.
- * @return One of `GLFW_PRESS` or `GLFW_RELEASE`.
- *
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
- * GLFW_INVALID_ENUM.
- *
- * @thread_safety This function must only be called from the main thread.
- *
- * @sa @ref input_key
- *
- * @since Added in version 1.0.
- * @glfw3 Added window handle parameter.
- *
- * @ingroup input
- */
-GLFWAPI int glfwGetKey(GLFWwindow* window, int key);
-
-/*! @brief Returns the last reported state of a mouse button for the specified
- * window.
- *
- * This function returns the last state reported for the specified mouse button
- * to the specified window. The returned state is one of `GLFW_PRESS` or
- * `GLFW_RELEASE`.
- *
- * If the `GLFW_STICKY_MOUSE_BUTTONS` input mode is enabled, this function
- * `GLFW_PRESS` the first time you call it for a mouse button that was pressed,
- * even if that mouse button has already been released.
- *
- * @param[in] window The desired window.
- * @param[in] button The desired [mouse button](@ref buttons).
- * @return One of `GLFW_PRESS` or `GLFW_RELEASE`.
- *
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
- * GLFW_INVALID_ENUM.
- *
- * @thread_safety This function must only be called from the main thread.
- *
- * @sa @ref input_mouse_button
- *
- * @since Added in version 1.0.
- * @glfw3 Added window handle parameter.
- *
- * @ingroup input
- */
-GLFWAPI int glfwGetMouseButton(GLFWwindow* window, int button);
-
-/*! @brief Retrieves the position of the cursor relative to the client area of
- * the window.
- *
- * This function returns the position of the cursor, in screen coordinates,
- * relative to the upper-left corner of the client area of the specified
- * window.
- *
- * If the cursor is disabled (with `GLFW_CURSOR_DISABLED`) then the cursor
- * position is unbounded and limited only by the minimum and maximum values of
- * a `double`.
- *
- * The coordinate can be converted to their integer equivalents with the
- * `floor` function. Casting directly to an integer type works for positive
- * coordinates, but fails for negative ones.
- *
- * Any or all of the position arguments may be `NULL`. If an error occurs, all
- * non-`NULL` position arguments will be set to zero.
- *
- * @param[in] window The desired window.
- * @param[out] xpos Where to store the cursor x-coordinate, relative to the
- * left edge of the client area, or `NULL`.
- * @param[out] ypos Where to store the cursor y-coordinate, relative to the to
- * top edge of the client area, or `NULL`.
- *
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
- * GLFW_PLATFORM_ERROR.
- *
- * @thread_safety This function must only be called from the main thread.
- *
- * @sa @ref cursor_pos
- * @sa glfwSetCursorPos
- *
- * @since Added in version 3.0. Replaces `glfwGetMousePos`.
- *
- * @ingroup input
- */
-GLFWAPI void glfwGetCursorPos(GLFWwindow* window, double* xpos, double* ypos);
-
-/*! @brief Sets the position of the cursor, relative to the client area of the
- * window.
- *
- * This function sets the position, in screen coordinates, of the cursor
- * relative to the upper-left corner of the client area of the specified
- * window. The window must have input focus. If the window does not have
- * input focus when this function is called, it fails silently.
- *
- * __Do not use this function__ to implement things like camera controls. GLFW
- * already provides the `GLFW_CURSOR_DISABLED` cursor mode that hides the
- * cursor, transparently re-centers it and provides unconstrained cursor
- * motion. See @ref glfwSetInputMode for more information.
- *
- * If the cursor mode is `GLFW_CURSOR_DISABLED` then the cursor position is
- * unconstrained and limited only by the minimum and maximum values of
- * a `double`.
- *
- * @param[in] window The desired window.
- * @param[in] xpos The desired x-coordinate, relative to the left edge of the
- * client area.
- * @param[in] ypos The desired y-coordinate, relative to the top edge of the
- * client area.
- *
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
- * GLFW_PLATFORM_ERROR.
- *
- * @remark @x11 Due to the asynchronous nature of X11, it may take a moment for
- * the window focus event to arrive. This means you may not be able to set the
- * cursor position directly after window creation.
- *
- * @thread_safety This function must only be called from the main thread.
- *
- * @sa @ref cursor_pos
- * @sa glfwGetCursorPos
- *
- * @since Added in version 3.0. Replaces `glfwSetMousePos`.
- *
- * @ingroup input
- */
-GLFWAPI void glfwSetCursorPos(GLFWwindow* window, double xpos, double ypos);
-
-/*! @brief Creates a custom cursor.
- *
- * Creates a new custom cursor image that can be set for a window with @ref
- * glfwSetCursor. The cursor can be destroyed with @ref glfwDestroyCursor.
- * Any remaining cursors are destroyed by @ref glfwTerminate.
- *
- * The pixels are 32-bit, little-endian, non-premultiplied RGBA, i.e. eight
- * bits per channel. They are arranged canonically as packed sequential rows,
- * starting from the top-left corner.
- *
- * The cursor hotspot is specified in pixels, relative to the upper-left corner
- * of the cursor image. Like all other coordinate systems in GLFW, the X-axis
- * points to the right and the Y-axis points down.
- *
- * @param[in] image The desired cursor image.
- * @param[in] xhot The desired x-coordinate, in pixels, of the cursor hotspot.
- * @param[in] yhot The desired y-coordinate, in pixels, of the cursor hotspot.
- * @return The handle of the created cursor, or `NULL` if an
- * [error](@ref error_handling) occurred.
- *
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
- * GLFW_PLATFORM_ERROR.
- *
- * @pointer_lifetime The specified image data is copied before this function
- * returns.
- *
- * @reentrancy This function must not be called from a callback.
- *
- * @thread_safety This function must only be called from the main thread.
- *
- * @sa @ref cursor_object
- * @sa glfwDestroyCursor
- * @sa glfwCreateStandardCursor
- *
- * @since Added in version 3.1.
- *
- * @ingroup input
- */
-GLFWAPI GLFWcursor* glfwCreateCursor(const GLFWimage* image, int xhot, int yhot);
-
-/*! @brief Creates a cursor with a standard shape.
- *
- * Returns a cursor with a [standard shape](@ref shapes), that can be set for
- * a window with @ref glfwSetCursor.
- *
- * @param[in] shape One of the [standard shapes](@ref shapes).
- * @return A new cursor ready to use or `NULL` if an
- * [error](@ref error_handling) occurred.
- *
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
- * GLFW_INVALID_ENUM and @ref GLFW_PLATFORM_ERROR.
- *
- * @reentrancy This function must not be called from a callback.
- *
- * @thread_safety This function must only be called from the main thread.
- *
- * @sa @ref cursor_object
- * @sa glfwCreateCursor
- *
- * @since Added in version 3.1.
- *
- * @ingroup input
- */
-GLFWAPI GLFWcursor* glfwCreateStandardCursor(int shape);
-
-/*! @brief Destroys a cursor.
- *
- * This function destroys a cursor previously created with @ref
- * glfwCreateCursor. Any remaining cursors will be destroyed by @ref
- * glfwTerminate.
- *
- * @param[in] cursor The cursor object to destroy.
- *
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
- * GLFW_PLATFORM_ERROR.
- *
- * @reentrancy This function must not be called from a callback.
- *
- * @thread_safety This function must only be called from the main thread.
- *
- * @sa @ref cursor_object
- * @sa glfwCreateCursor
- *
- * @since Added in version 3.1.
- *
- * @ingroup input
- */
-GLFWAPI void glfwDestroyCursor(GLFWcursor* cursor);
-
-/*! @brief Sets the cursor for the window.
- *
- * This function sets the cursor image to be used when the cursor is over the
- * client area of the specified window. The set cursor will only be visible
- * when the [cursor mode](@ref cursor_mode) of the window is
- * `GLFW_CURSOR_NORMAL`.
- *
- * On some platforms, the set cursor may not be visible unless the window also
- * has input focus.
- *
- * @param[in] window The window to set the cursor for.
- * @param[in] cursor The cursor to set, or `NULL` to switch back to the default
- * arrow cursor.
- *
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
- * GLFW_PLATFORM_ERROR.
- *
- * @thread_safety This function must only be called from the main thread.
- *
- * @sa @ref cursor_object
- *
- * @since Added in version 3.1.
- *
- * @ingroup input
- */
-GLFWAPI void glfwSetCursor(GLFWwindow* window, GLFWcursor* cursor);
-
-/*! @brief Sets the key callback.
- *
- * This function sets the key callback of the specified window, which is called
- * when a key is pressed, repeated or released.
- *
- * The key functions deal with physical keys, with layout independent
- * [key tokens](@ref keys) named after their values in the standard US keyboard
- * layout. If you want to input text, use the
- * [character callback](@ref glfwSetCharCallback) instead.
- *
- * When a window loses input focus, it will generate synthetic key release
- * events for all pressed keys. You can tell these events from user-generated
- * events by the fact that the synthetic ones are generated after the focus
- * loss event has been processed, i.e. after the
- * [window focus callback](@ref glfwSetWindowFocusCallback) has been called.
- *
- * The scancode of a key is specific to that platform or sometimes even to that
- * machine. Scancodes are intended to allow users to bind keys that don't have
- * a GLFW key token. Such keys have `key` set to `GLFW_KEY_UNKNOWN`, their
- * state is not saved and so it cannot be queried with @ref glfwGetKey.
- *
- * Sometimes GLFW needs to generate synthetic key events, in which case the
- * scancode may be zero.
- *
- * @param[in] window The window whose callback to set.
- * @param[in] cbfun The new key callback, or `NULL` to remove the currently
- * set callback.
- * @return The previously set callback, or `NULL` if no callback was set or the
- * library had not been [initialized](@ref intro_init).
- *
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
- *
- * @thread_safety This function must only be called from the main thread.
- *
- * @sa @ref input_key
- *
- * @since Added in version 1.0.
- * @glfw3 Added window handle parameter and return value.
- *
- * @ingroup input
- */
-GLFWAPI GLFWkeyfun glfwSetKeyCallback(GLFWwindow* window, GLFWkeyfun cbfun);
-
-/*! @brief Sets the Unicode character callback.
- *
- * This function sets the character callback of the specified window, which is
- * called when a Unicode character is input.
- *
- * The character callback is intended for Unicode text input. As it deals with
- * characters, it is keyboard layout dependent, whereas the
- * [key callback](@ref glfwSetKeyCallback) is not. Characters do not map 1:1
- * to physical keys, as a key may produce zero, one or more characters. If you
- * want to know whether a specific physical key was pressed or released, see
- * the key callback instead.
- *
- * The character callback behaves as system text input normally does and will
- * not be called if modifier keys are held down that would prevent normal text
- * input on that platform, for example a Super (Command) key on OS X or Alt key
- * on Windows. There is a
- * [character with modifiers callback](@ref glfwSetCharModsCallback) that
- * receives these events.
- *
- * @param[in] window The window whose callback to set.
- * @param[in] cbfun The new callback, or `NULL` to remove the currently set
- * callback.
- * @return The previously set callback, or `NULL` if no callback was set or the
- * library had not been [initialized](@ref intro_init).
- *
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
- *
- * @thread_safety This function must only be called from the main thread.
- *
- * @sa @ref input_char
- *
- * @since Added in version 2.4.
- * @glfw3 Added window handle parameter and return value.
- *
- * @ingroup input
- */
-GLFWAPI GLFWcharfun glfwSetCharCallback(GLFWwindow* window, GLFWcharfun cbfun);
-
-/*! @brief Sets the Unicode character with modifiers callback.
- *
- * This function sets the character with modifiers callback of the specified
- * window, which is called when a Unicode character is input regardless of what
- * modifier keys are used.
- *
- * The character with modifiers callback is intended for implementing custom
- * Unicode character input. For regular Unicode text input, see the
- * [character callback](@ref glfwSetCharCallback). Like the character
- * callback, the character with modifiers callback deals with characters and is
- * keyboard layout dependent. Characters do not map 1:1 to physical keys, as
- * a key may produce zero, one or more characters. If you want to know whether
- * a specific physical key was pressed or released, see the
- * [key callback](@ref glfwSetKeyCallback) instead.
- *
- * @param[in] window The window whose callback to set.
- * @param[in] cbfun The new callback, or `NULL` to remove the currently set
- * callback.
- * @return The previously set callback, or `NULL` if no callback was set or an
- * error occurred.
- *
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
- *
- * @thread_safety This function must only be called from the main thread.
- *
- * @sa @ref input_char
- *
- * @since Added in version 3.1.
- *
- * @ingroup input
- */
-GLFWAPI GLFWcharmodsfun glfwSetCharModsCallback(GLFWwindow* window, GLFWcharmodsfun cbfun);
-
-/*! @brief Sets the mouse button callback.
- *
- * This function sets the mouse button callback of the specified window, which
- * is called when a mouse button is pressed or released.
- *
- * When a window loses input focus, it will generate synthetic mouse button
- * release events for all pressed mouse buttons. You can tell these events
- * from user-generated events by the fact that the synthetic ones are generated
- * after the focus loss event has been processed, i.e. after the
- * [window focus callback](@ref glfwSetWindowFocusCallback) has been called.
- *
- * @param[in] window The window whose callback to set.
- * @param[in] cbfun The new callback, or `NULL` to remove the currently set
- * callback.
- * @return The previously set callback, or `NULL` if no callback was set or the
- * library had not been [initialized](@ref intro_init).
- *
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
- *
- * @thread_safety This function must only be called from the main thread.
- *
- * @sa @ref input_mouse_button
- *
- * @since Added in version 1.0.
- * @glfw3 Added window handle parameter and return value.
- *
- * @ingroup input
- */
-GLFWAPI GLFWmousebuttonfun glfwSetMouseButtonCallback(GLFWwindow* window, GLFWmousebuttonfun cbfun);
-
-/*! @brief Sets the cursor position callback.
- *
- * This function sets the cursor position callback of the specified window,
- * which is called when the cursor is moved. The callback is provided with the
- * position, in screen coordinates, relative to the upper-left corner of the
- * client area of the window.
- *
- * @param[in] window The window whose callback to set.
- * @param[in] cbfun The new callback, or `NULL` to remove the currently set
- * callback.
- * @return The previously set callback, or `NULL` if no callback was set or the
- * library had not been [initialized](@ref intro_init).
- *
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
- *
- * @thread_safety This function must only be called from the main thread.
- *
- * @sa @ref cursor_pos
- *
- * @since Added in version 3.0. Replaces `glfwSetMousePosCallback`.
- *
- * @ingroup input
- */
-GLFWAPI GLFWcursorposfun glfwSetCursorPosCallback(GLFWwindow* window, GLFWcursorposfun cbfun);
-
-/*! @brief Sets the cursor enter/exit callback.
- *
- * This function sets the cursor boundary crossing callback of the specified
- * window, which is called when the cursor enters or leaves the client area of
- * the window.
- *
- * @param[in] window The window whose callback to set.
- * @param[in] cbfun The new callback, or `NULL` to remove the currently set
- * callback.
- * @return The previously set callback, or `NULL` if no callback was set or the
- * library had not been [initialized](@ref intro_init).
- *
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
- *
- * @thread_safety This function must only be called from the main thread.
- *
- * @sa @ref cursor_enter
- *
- * @since Added in version 3.0.
- *
- * @ingroup input
- */
-GLFWAPI GLFWcursorenterfun glfwSetCursorEnterCallback(GLFWwindow* window, GLFWcursorenterfun cbfun);
-
-/*! @brief Sets the scroll callback.
- *
- * This function sets the scroll callback of the specified window, which is
- * called when a scrolling device is used, such as a mouse wheel or scrolling
- * area of a touchpad.
- *
- * The scroll callback receives all scrolling input, like that from a mouse
- * wheel or a touchpad scrolling area.
- *
- * @param[in] window The window whose callback to set.
- * @param[in] cbfun The new scroll callback, or `NULL` to remove the currently
- * set callback.
- * @return The previously set callback, or `NULL` if no callback was set or the
- * library had not been [initialized](@ref intro_init).
- *
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
- *
- * @thread_safety This function must only be called from the main thread.
- *
- * @sa @ref scrolling
- *
- * @since Added in version 3.0. Replaces `glfwSetMouseWheelCallback`.
- *
- * @ingroup input
- */
-GLFWAPI GLFWscrollfun glfwSetScrollCallback(GLFWwindow* window, GLFWscrollfun cbfun);
-
-/*! @brief Sets the file drop callback.
- *
- * This function sets the file drop callback of the specified window, which is
- * called when one or more dragged files are dropped on the window.
- *
- * Because the path array and its strings may have been generated specifically
- * for that event, they are not guaranteed to be valid after the callback has
- * returned. If you wish to use them after the callback returns, you need to
- * make a deep copy.
- *
- * @param[in] window The window whose callback to set.
- * @param[in] cbfun The new file drop callback, or `NULL` to remove the
- * currently set callback.
- * @return The previously set callback, or `NULL` if no callback was set or the
- * library had not been [initialized](@ref intro_init).
- *
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
- *
- * @thread_safety This function must only be called from the main thread.
- *
- * @sa @ref path_drop
- *
- * @since Added in version 3.1.
- *
- * @ingroup input
- */
-GLFWAPI GLFWdropfun glfwSetDropCallback(GLFWwindow* window, GLFWdropfun cbfun);
-
-/*! @brief Returns whether the specified joystick is present.
- *
- * This function returns whether the specified joystick is present.
- *
- * @param[in] joy The [joystick](@ref joysticks) to query.
- * @return `GLFW_TRUE` if the joystick is present, or `GLFW_FALSE` otherwise.
- *
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
- * GLFW_INVALID_ENUM and @ref GLFW_PLATFORM_ERROR.
- *
- * @thread_safety This function must only be called from the main thread.
- *
- * @sa @ref joystick
- *
- * @since Added in version 3.0. Replaces `glfwGetJoystickParam`.
- *
- * @ingroup input
- */
-GLFWAPI int glfwJoystickPresent(int joy);
-
-/*! @brief Returns the values of all axes of the specified joystick.
- *
- * This function returns the values of all axes of the specified joystick.
- * Each element in the array is a value between -1.0 and 1.0.
- *
- * Querying a joystick slot with no device present is not an error, but will
- * cause this function to return `NULL`. Call @ref glfwJoystickPresent to
- * check device presence.
- *
- * @param[in] joy The [joystick](@ref joysticks) to query.
- * @param[out] count Where to store the number of axis values in the returned
- * array. This is set to zero if an error occurred.
- * @return An array of axis values, or `NULL` if the joystick is not present.
- *
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
- * GLFW_INVALID_ENUM and @ref GLFW_PLATFORM_ERROR.
- *
- * @pointer_lifetime The returned array is allocated and freed by GLFW. You
- * should not free it yourself. It is valid until the specified joystick is
- * disconnected, this function is called again for that joystick or the library
- * is terminated.
- *
- * @thread_safety This function must only be called from the main thread.
- *
- * @sa @ref joystick_axis
- *
- * @since Added in version 3.0. Replaces `glfwGetJoystickPos`.
- *
- * @ingroup input
- */
-GLFWAPI const float* glfwGetJoystickAxes(int joy, int* count);
-
-/*! @brief Returns the state of all buttons of the specified joystick.
- *
- * This function returns the state of all buttons of the specified joystick.
- * Each element in the array is either `GLFW_PRESS` or `GLFW_RELEASE`.
- *
- * Querying a joystick slot with no device present is not an error, but will
- * cause this function to return `NULL`. Call @ref glfwJoystickPresent to
- * check device presence.
- *
- * @param[in] joy The [joystick](@ref joysticks) to query.
- * @param[out] count Where to store the number of button states in the returned
- * array. This is set to zero if an error occurred.
- * @return An array of button states, or `NULL` if the joystick is not present.
- *
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
- * GLFW_INVALID_ENUM and @ref GLFW_PLATFORM_ERROR.
- *
- * @pointer_lifetime The returned array is allocated and freed by GLFW. You
- * should not free it yourself. It is valid until the specified joystick is
- * disconnected, this function is called again for that joystick or the library
- * is terminated.
- *
- * @thread_safety This function must only be called from the main thread.
- *
- * @sa @ref joystick_button
- *
- * @since Added in version 2.2.
- * @glfw3 Changed to return a dynamic array.
- *
- * @ingroup input
- */
-GLFWAPI const unsigned char* glfwGetJoystickButtons(int joy, int* count);
-
-/*! @brief Returns the name of the specified joystick.
- *
- * This function returns the name, encoded as UTF-8, of the specified joystick.
- * The returned string is allocated and freed by GLFW. You should not free it
- * yourself.
- *
- * Querying a joystick slot with no device present is not an error, but will
- * cause this function to return `NULL`. Call @ref glfwJoystickPresent to
- * check device presence.
- *
- * @param[in] joy The [joystick](@ref joysticks) to query.
- * @return The UTF-8 encoded name of the joystick, or `NULL` if the joystick
- * is not present.
- *
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
- * GLFW_INVALID_ENUM and @ref GLFW_PLATFORM_ERROR.
- *
- * @pointer_lifetime The returned string is allocated and freed by GLFW. You
- * should not free it yourself. It is valid until the specified joystick is
- * disconnected, this function is called again for that joystick or the library
- * is terminated.
- *
- * @thread_safety This function must only be called from the main thread.
- *
- * @sa @ref joystick_name
- *
- * @since Added in version 3.0.
- *
- * @ingroup input
- */
-GLFWAPI const char* glfwGetJoystickName(int joy);
-
-/*! @brief Sets the joystick configuration callback.
- *
- * This function sets the joystick configuration callback, or removes the
- * currently set callback. This is called when a joystick is connected to or
- * disconnected from the system.
- *
- * @param[in] cbfun The new callback, or `NULL` to remove the currently set
- * callback.
- * @return The previously set callback, or `NULL` if no callback was set or the
- * library had not been [initialized](@ref intro_init).
- *
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
- *
- * @thread_safety This function must only be called from the main thread.
- *
- * @sa @ref joystick_event
- *
- * @since Added in version 3.2.
- *
- * @ingroup input
- */
-GLFWAPI GLFWjoystickfun glfwSetJoystickCallback(GLFWjoystickfun cbfun);
-
-/*! @brief Sets the clipboard to the specified string.
- *
- * This function sets the system clipboard to the specified, UTF-8 encoded
- * string.
- *
- * @param[in] window The window that will own the clipboard contents.
- * @param[in] string A UTF-8 encoded string.
- *
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
- * GLFW_PLATFORM_ERROR.
- *
- * @pointer_lifetime The specified string is copied before this function
- * returns.
- *
- * @thread_safety This function must only be called from the main thread.
- *
- * @sa @ref clipboard
- * @sa glfwGetClipboardString
- *
- * @since Added in version 3.0.
- *
- * @ingroup input
- */
-GLFWAPI void glfwSetClipboardString(GLFWwindow* window, const char* string);
-
-/*! @brief Returns the contents of the clipboard as a string.
- *
- * This function returns the contents of the system clipboard, if it contains
- * or is convertible to a UTF-8 encoded string. If the clipboard is empty or
- * if its contents cannot be converted, `NULL` is returned and a @ref
- * GLFW_FORMAT_UNAVAILABLE error is generated.
- *
- * @param[in] window The window that will request the clipboard contents.
- * @return The contents of the clipboard as a UTF-8 encoded string, or `NULL`
- * if an [error](@ref error_handling) occurred.
- *
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
- * GLFW_PLATFORM_ERROR.
- *
- * @pointer_lifetime The returned string is allocated and freed by GLFW. You
- * should not free it yourself. It is valid until the next call to @ref
- * glfwGetClipboardString or @ref glfwSetClipboardString, or until the library
- * is terminated.
- *
- * @thread_safety This function must only be called from the main thread.
- *
- * @sa @ref clipboard
- * @sa glfwSetClipboardString
- *
- * @since Added in version 3.0.
- *
- * @ingroup input
- */
-GLFWAPI const char* glfwGetClipboardString(GLFWwindow* window);
-
-/*! @brief Returns the value of the GLFW timer.
- *
- * This function returns the value of the GLFW timer. Unless the timer has
- * been set using @ref glfwSetTime, the timer measures time elapsed since GLFW
- * was initialized.
- *
- * The resolution of the timer is system dependent, but is usually on the order
- * of a few micro- or nanoseconds. It uses the highest-resolution monotonic
- * time source on each supported platform.
- *
- * @return The current value, in seconds, or zero if an
- * [error](@ref error_handling) occurred.
- *
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
- *
- * @thread_safety This function may be called from any thread. Reading of the
- * internal timer offset is not atomic.
- *
- * @sa @ref time
- *
- * @since Added in version 1.0.
- *
- * @ingroup input
- */
-GLFWAPI double glfwGetTime(void);
-
-/*! @brief Sets the GLFW timer.
- *
- * This function sets the value of the GLFW timer. It then continues to count
- * up from that value. The value must be a positive finite number less than
- * or equal to 18446744073.0, which is approximately 584.5 years.
- *
- * @param[in] time The new value, in seconds.
- *
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
- * GLFW_INVALID_VALUE.
- *
- * @remark The upper limit of the timer is calculated as
- * floor((2<sup>64</sup> - 1) / 10<sup>9</sup>) and is due to implementations
- * storing nanoseconds in 64 bits. The limit may be increased in the future.
- *
- * @thread_safety This function may be called from any thread. Writing of the
- * internal timer offset is not atomic.
- *
- * @sa @ref time
- *
- * @since Added in version 2.2.
- *
- * @ingroup input
- */
-GLFWAPI void glfwSetTime(double time);
-
-/*! @brief Returns the current value of the raw timer.
- *
- * This function returns the current value of the raw timer, measured in
- * 1&nbsp;/&nbsp;frequency seconds. To get the frequency, call @ref
- * glfwGetTimerFrequency.
- *
- * @return The value of the timer, or zero if an
- * [error](@ref error_handling) occurred.
- *
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
- *
- * @thread_safety This function may be called from any thread.
- *
- * @sa @ref time
- * @sa glfwGetTimerFrequency
- *
- * @since Added in version 3.2.
- *
- * @ingroup input
- */
-GLFWAPI uint64_t glfwGetTimerValue(void);
-
-/*! @brief Returns the frequency, in Hz, of the raw timer.
- *
- * This function returns the frequency, in Hz, of the raw timer.
- *
- * @return The frequency of the timer, in Hz, or zero if an
- * [error](@ref error_handling) occurred.
- *
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
- *
- * @thread_safety This function may be called from any thread.
- *
- * @sa @ref time
- * @sa glfwGetTimerValue
- *
- * @since Added in version 3.2.
- *
- * @ingroup input
- */
-GLFWAPI uint64_t glfwGetTimerFrequency(void);
-
-/*! @brief Makes the context of the specified window current for the calling
- * thread.
- *
- * This function makes the OpenGL or OpenGL ES context of the specified window
- * current on the calling thread. A context can only be made current on
- * a single thread at a time and each thread can have only a single current
- * context at a time.
- *
- * By default, making a context non-current implicitly forces a pipeline flush.
- * On machines that support `GL_KHR_context_flush_control`, you can control
- * whether a context performs this flush by setting the
- * [GLFW_CONTEXT_RELEASE_BEHAVIOR](@ref window_hints_ctx) window hint.
- *
- * The specified window must have an OpenGL or OpenGL ES context. Specifying
- * a window without a context will generate a @ref GLFW_NO_WINDOW_CONTEXT
- * error.
- *
- * @param[in] window The window whose context to make current, or `NULL` to
- * detach the current context.
- *
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
- * GLFW_NO_WINDOW_CONTEXT and @ref GLFW_PLATFORM_ERROR.
- *
- * @thread_safety This function may be called from any thread.
- *
- * @sa @ref context_current
- * @sa glfwGetCurrentContext
- *
- * @since Added in version 3.0.
- *
- * @ingroup context
- */
-GLFWAPI void glfwMakeContextCurrent(GLFWwindow* window);
-
-/*! @brief Returns the window whose context is current on the calling thread.
- *
- * This function returns the window whose OpenGL or OpenGL ES context is
- * current on the calling thread.
- *
- * @return The window whose context is current, or `NULL` if no window's
- * context is current.
- *
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
- *
- * @thread_safety This function may be called from any thread.
- *
- * @sa @ref context_current
- * @sa glfwMakeContextCurrent
- *
- * @since Added in version 3.0.
- *
- * @ingroup context
- */
-GLFWAPI GLFWwindow* glfwGetCurrentContext(void);
-
-/*! @brief Swaps the front and back buffers of the specified window.
- *
- * This function swaps the front and back buffers of the specified window when
- * rendering with OpenGL or OpenGL ES. If the swap interval is greater than
- * zero, the GPU driver waits the specified number of screen updates before
- * swapping the buffers.
- *
- * The specified window must have an OpenGL or OpenGL ES context. Specifying
- * a window without a context will generate a @ref GLFW_NO_WINDOW_CONTEXT
- * error.
- *
- * This function does not apply to Vulkan. If you are rendering with Vulkan,
- * see `vkQueuePresentKHR` instead.
- *
- * @param[in] window The window whose buffers to swap.
- *
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
- * GLFW_NO_WINDOW_CONTEXT and @ref GLFW_PLATFORM_ERROR.
- *
- * @remark __EGL:__ The context of the specified window must be current on the
- * calling thread.
- *
- * @thread_safety This function may be called from any thread.
- *
- * @sa @ref buffer_swap
- * @sa glfwSwapInterval
- *
- * @since Added in version 1.0.
- * @glfw3 Added window handle parameter.
- *
- * @ingroup window
- */
-GLFWAPI void glfwSwapBuffers(GLFWwindow* window);
-
-/*! @brief Sets the swap interval for the current context.
- *
- * This function sets the swap interval for the current OpenGL or OpenGL ES
- * context, i.e. the number of screen updates to wait from the time @ref
- * glfwSwapBuffers was called before swapping the buffers and returning. This
- * is sometimes called _vertical synchronization_, _vertical retrace
- * synchronization_ or just _vsync_.
- *
- * Contexts that support either of the `WGL_EXT_swap_control_tear` and
- * `GLX_EXT_swap_control_tear` extensions also accept negative swap intervals,
- * which allow the driver to swap even if a frame arrives a little bit late.
- * You can check for the presence of these extensions using @ref
- * glfwExtensionSupported. For more information about swap tearing, see the
- * extension specifications.
- *
- * A context must be current on the calling thread. Calling this function
- * without a current context will cause a @ref GLFW_NO_CURRENT_CONTEXT error.
- *
- * This function does not apply to Vulkan. If you are rendering with Vulkan,
- * see the present mode of your swapchain instead.
- *
- * @param[in] interval The minimum number of screen updates to wait for
- * until the buffers are swapped by @ref glfwSwapBuffers.
- *
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
- * GLFW_NO_CURRENT_CONTEXT and @ref GLFW_PLATFORM_ERROR.
- *
- * @remark This function is not called during context creation, leaving the
- * swap interval set to whatever is the default on that platform. This is done
- * because some swap interval extensions used by GLFW do not allow the swap
- * interval to be reset to zero once it has been set to a non-zero value.
- *
- * @remark Some GPU drivers do not honor the requested swap interval, either
- * because of a user setting that overrides the application's request or due to
- * bugs in the driver.
- *
- * @thread_safety This function may be called from any thread.
- *
- * @sa @ref buffer_swap
- * @sa glfwSwapBuffers
- *
- * @since Added in version 1.0.
- *
- * @ingroup context
- */
-GLFWAPI void glfwSwapInterval(int interval);
-
-/*! @brief Returns whether the specified extension is available.
- *
- * This function returns whether the specified
- * [API extension](@ref context_glext) is supported by the current OpenGL or
- * OpenGL ES context. It searches both for client API extension and context
- * creation API extensions.
- *
- * A context must be current on the calling thread. Calling this function
- * without a current context will cause a @ref GLFW_NO_CURRENT_CONTEXT error.
- *
- * As this functions retrieves and searches one or more extension strings each
- * call, it is recommended that you cache its results if it is going to be used
- * frequently. The extension strings will not change during the lifetime of
- * a context, so there is no danger in doing this.
- *
- * This function does not apply to Vulkan. If you are using Vulkan, see @ref
- * glfwGetRequiredInstanceExtensions, `vkEnumerateInstanceExtensionProperties`
- * and `vkEnumerateDeviceExtensionProperties` instead.
- *
- * @param[in] extension The ASCII encoded name of the extension.
- * @return `GLFW_TRUE` if the extension is available, or `GLFW_FALSE`
- * otherwise.
- *
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
- * GLFW_NO_CURRENT_CONTEXT, @ref GLFW_INVALID_VALUE and @ref
- * GLFW_PLATFORM_ERROR.
- *
- * @thread_safety This function may be called from any thread.
- *
- * @sa @ref context_glext
- * @sa glfwGetProcAddress
- *
- * @since Added in version 1.0.
- *
- * @ingroup context
- */
-GLFWAPI int glfwExtensionSupported(const char* extension);
-
-/*! @brief Returns the address of the specified function for the current
- * context.
- *
- * This function returns the address of the specified OpenGL or OpenGL ES
- * [core or extension function](@ref context_glext), if it is supported
- * by the current context.
- *
- * A context must be current on the calling thread. Calling this function
- * without a current context will cause a @ref GLFW_NO_CURRENT_CONTEXT error.
- *
- * This function does not apply to Vulkan. If you are rendering with Vulkan,
- * see @ref glfwGetInstanceProcAddress, `vkGetInstanceProcAddr` and
- * `vkGetDeviceProcAddr` instead.
- *
- * @param[in] procname The ASCII encoded name of the function.
- * @return The address of the function, or `NULL` if an
- * [error](@ref error_handling) occurred.
- *
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
- * GLFW_NO_CURRENT_CONTEXT and @ref GLFW_PLATFORM_ERROR.
- *
- * @remark The address of a given function is not guaranteed to be the same
- * between contexts.
- *
- * @remark This function may return a non-`NULL` address despite the
- * associated version or extension not being available. Always check the
- * context version or extension string first.
- *
- * @pointer_lifetime The returned function pointer is valid until the context
- * is destroyed or the library is terminated.
- *
- * @thread_safety This function may be called from any thread.
- *
- * @sa @ref context_glext
- * @sa glfwExtensionSupported
- *
- * @since Added in version 1.0.
- *
- * @ingroup context
- */
-GLFWAPI GLFWglproc glfwGetProcAddress(const char* procname);
-
-/*! @brief Returns whether the Vulkan loader has been found.
- *
- * This function returns whether the Vulkan loader has been found. This check
- * is performed by @ref glfwInit.
- *
- * The availability of a Vulkan loader does not by itself guarantee that window
- * surface creation or even device creation is possible. Call @ref
- * glfwGetRequiredInstanceExtensions to check whether the extensions necessary
- * for Vulkan surface creation are available and @ref
- * glfwGetPhysicalDevicePresentationSupport to check whether a queue family of
- * a physical device supports image presentation.
- *
- * @return `GLFW_TRUE` if Vulkan is available, or `GLFW_FALSE` otherwise.
- *
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
- *
- * @thread_safety This function may be called from any thread.
- *
- * @sa @ref vulkan_support
- *
- * @since Added in version 3.2.
- *
- * @ingroup vulkan
- */
-GLFWAPI int glfwVulkanSupported(void);
-
-/*! @brief Returns the Vulkan instance extensions required by GLFW.
- *
- * This function returns an array of names of Vulkan instance extensions required
- * by GLFW for creating Vulkan surfaces for GLFW windows. If successful, the
- * list will always contains `VK_KHR_surface`, so if you don't require any
- * additional extensions you can pass this list directly to the
- * `VkInstanceCreateInfo` struct.
- *
- * If Vulkan is not available on the machine, this function returns `NULL` and
- * generates a @ref GLFW_API_UNAVAILABLE error. Call @ref glfwVulkanSupported
- * to check whether Vulkan is available.
- *
- * If Vulkan is available but no set of extensions allowing window surface
- * creation was found, this function returns `NULL`. You may still use Vulkan
- * for off-screen rendering and compute work.
- *
- * @param[out] count Where to store the number of extensions in the returned
- * array. This is set to zero if an error occurred.
- * @return An array of ASCII encoded extension names, or `NULL` if an
- * [error](@ref error_handling) occurred.
- *
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
- * GLFW_API_UNAVAILABLE.
- *
- * @remarks Additional extensions may be required by future versions of GLFW.
- * You should check if any extensions you wish to enable are already in the
- * returned array, as it is an error to specify an extension more than once in
- * the `VkInstanceCreateInfo` struct.
- *
- * @pointer_lifetime The returned array is allocated and freed by GLFW. You
- * should not free it yourself. It is guaranteed to be valid only until the
- * library is terminated.
- *
- * @thread_safety This function may be called from any thread.
- *
- * @sa @ref vulkan_ext
- * @sa glfwCreateWindowSurface
- *
- * @since Added in version 3.2.
- *
- * @ingroup vulkan
- */
-GLFWAPI const char** glfwGetRequiredInstanceExtensions(uint32_t* count);
-
-#if defined(VK_VERSION_1_0)
-
-/*! @brief Returns the address of the specified Vulkan instance function.
- *
- * This function returns the address of the specified Vulkan core or extension
- * function for the specified instance. If instance is set to `NULL` it can
- * return any function exported from the Vulkan loader, including at least the
- * following functions:
- *
- * - `vkEnumerateInstanceExtensionProperties`
- * - `vkEnumerateInstanceLayerProperties`
- * - `vkCreateInstance`
- * - `vkGetInstanceProcAddr`
- *
- * If Vulkan is not available on the machine, this function returns `NULL` and
- * generates a @ref GLFW_API_UNAVAILABLE error. Call @ref glfwVulkanSupported
- * to check whether Vulkan is available.
- *
- * This function is equivalent to calling `vkGetInstanceProcAddr` with
- * a platform-specific query of the Vulkan loader as a fallback.
- *
- * @param[in] instance The Vulkan instance to query, or `NULL` to retrieve
- * functions related to instance creation.
- * @param[in] procname The ASCII encoded name of the function.
- * @return The address of the function, or `NULL` if an
- * [error](@ref error_handling) occurred.
- *
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
- * GLFW_API_UNAVAILABLE.
- *
- * @pointer_lifetime The returned function pointer is valid until the library
- * is terminated.
- *
- * @thread_safety This function may be called from any thread.
- *
- * @sa @ref vulkan_proc
- *
- * @since Added in version 3.2.
- *
- * @ingroup vulkan
- */
-GLFWAPI GLFWvkproc glfwGetInstanceProcAddress(VkInstance instance, const char* procname);
-
-/*! @brief Returns whether the specified queue family can present images.
- *
- * This function returns whether the specified queue family of the specified
- * physical device supports presentation to the platform GLFW was built for.
- *
- * If Vulkan or the required window surface creation instance extensions are
- * not available on the machine, or if the specified instance was not created
- * with the required extensions, this function returns `GLFW_FALSE` and
- * generates a @ref GLFW_API_UNAVAILABLE error. Call @ref glfwVulkanSupported
- * to check whether Vulkan is available and @ref
- * glfwGetRequiredInstanceExtensions to check what instance extensions are
- * required.
- *
- * @param[in] instance The instance that the physical device belongs to.
- * @param[in] device The physical device that the queue family belongs to.
- * @param[in] queuefamily The index of the queue family to query.
- * @return `GLFW_TRUE` if the queue family supports presentation, or
- * `GLFW_FALSE` otherwise.
- *
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
- * GLFW_API_UNAVAILABLE and @ref GLFW_PLATFORM_ERROR.
- *
- * @thread_safety This function may be called from any thread. For
- * synchronization details of Vulkan objects, see the Vulkan specification.
- *
- * @sa @ref vulkan_present
- *
- * @since Added in version 3.2.
- *
- * @ingroup vulkan
- */
-GLFWAPI int glfwGetPhysicalDevicePresentationSupport(VkInstance instance, VkPhysicalDevice device, uint32_t queuefamily);
-
-/*! @brief Creates a Vulkan surface for the specified window.
- *
- * This function creates a Vulkan surface for the specified window.
- *
- * If the Vulkan loader was not found at initialization, this function returns
- * `VK_ERROR_INITIALIZATION_FAILED` and generates a @ref GLFW_API_UNAVAILABLE
- * error. Call @ref glfwVulkanSupported to check whether the Vulkan loader was
- * found.
- *
- * If the required window surface creation instance extensions are not
- * available or if the specified instance was not created with these extensions
- * enabled, this function returns `VK_ERROR_EXTENSION_NOT_PRESENT` and
- * generates a @ref GLFW_API_UNAVAILABLE error. Call @ref
- * glfwGetRequiredInstanceExtensions to check what instance extensions are
- * required.
- *
- * The window surface must be destroyed before the specified Vulkan instance.
- * It is the responsibility of the caller to destroy the window surface. GLFW
- * does not destroy it for you. Call `vkDestroySurfaceKHR` to destroy the
- * surface.
- *
- * @param[in] instance The Vulkan instance to create the surface in.
- * @param[in] window The window to create the surface for.
- * @param[in] allocator The allocator to use, or `NULL` to use the default
- * allocator.
- * @param[out] surface Where to store the handle of the surface. This is set
- * to `VK_NULL_HANDLE` if an error occurred.
- * @return `VK_SUCCESS` if successful, or a Vulkan error code if an
- * [error](@ref error_handling) occurred.
- *
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED, @ref
- * GLFW_API_UNAVAILABLE and @ref GLFW_PLATFORM_ERROR.
- *
- * @remarks If an error occurs before the creation call is made, GLFW returns
- * the Vulkan error code most appropriate for the error. Appropriate use of
- * @ref glfwVulkanSupported and @ref glfwGetRequiredInstanceExtensions should
- * eliminate almost all occurrences of these errors.
- *
- * @thread_safety This function may be called from any thread. For
- * synchronization details of Vulkan objects, see the Vulkan specification.
- *
- * @sa @ref vulkan_surface
- * @sa glfwGetRequiredInstanceExtensions
- *
- * @since Added in version 3.2.
- *
- * @ingroup vulkan
- */
-GLFWAPI VkResult glfwCreateWindowSurface(VkInstance instance, GLFWwindow* window, const VkAllocationCallbacks* allocator, VkSurfaceKHR* surface);
-
-#endif /*VK_VERSION_1_0*/
-
-
-/*************************************************************************
- * Global definition cleanup
- *************************************************************************/
-
-/* ------------------- BEGIN SYSTEM/COMPILER SPECIFIC -------------------- */
-
-#ifdef GLFW_WINGDIAPI_DEFINED
- #undef WINGDIAPI
- #undef GLFW_WINGDIAPI_DEFINED
-#endif
-
-#ifdef GLFW_CALLBACK_DEFINED
- #undef CALLBACK
- #undef GLFW_CALLBACK_DEFINED
-#endif
-
-/* -------------------- END SYSTEM/COMPILER SPECIFIC --------------------- */
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _glfw3_h_ */
-
diff --git a/imgui-1.92.1/examples/libs/glfw/include/GLFW/glfw3native.h b/imgui-1.92.1/examples/libs/glfw/include/GLFW/glfw3native.h
deleted file mode 100644
index 9fa955e..0000000
--- a/imgui-1.92.1/examples/libs/glfw/include/GLFW/glfw3native.h
+++ /dev/null
@@ -1,456 +0,0 @@
-/*************************************************************************
- * GLFW 3.2 - www.glfw.org
- * A library for OpenGL, window and input
- *------------------------------------------------------------------------
- * Copyright (c) 2002-2006 Marcus Geelnard
- * Copyright (c) 2006-2010 Camilla Berglund <elmindreda@elmindreda.org>
- *
- * This software is provided 'as-is', without any express or implied
- * warranty. In no event will the authors be held liable for any damages
- * arising from the use of this software.
- *
- * Permission is granted to anyone to use this software for any purpose,
- * including commercial applications, and to alter it and redistribute it
- * freely, subject to the following restrictions:
- *
- * 1. The origin of this software must not be misrepresented; you must not
- * claim that you wrote the original software. If you use this software
- * in a product, an acknowledgment in the product documentation would
- * be appreciated but is not required.
- *
- * 2. Altered source versions must be plainly marked as such, and must not
- * be misrepresented as being the original software.
- *
- * 3. This notice may not be removed or altered from any source
- * distribution.
- *
- *************************************************************************/
-
-#ifndef _glfw3_native_h_
-#define _glfw3_native_h_
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-/*************************************************************************
- * Doxygen documentation
- *************************************************************************/
-
-/*! @file glfw3native.h
- * @brief The header of the native access functions.
- *
- * This is the header file of the native access functions. See @ref native for
- * more information.
- */
-/*! @defgroup native Native access
- *
- * **By using the native access functions you assert that you know what you're
- * doing and how to fix problems caused by using them. If you don't, you
- * shouldn't be using them.**
- *
- * Before the inclusion of @ref glfw3native.h, you may define exactly one
- * window system API macro and zero or more context creation API macros.
- *
- * The chosen backends must match those the library was compiled for. Failure
- * to do this will cause a link-time error.
- *
- * The available window API macros are:
- * * `GLFW_EXPOSE_NATIVE_WIN32`
- * * `GLFW_EXPOSE_NATIVE_COCOA`
- * * `GLFW_EXPOSE_NATIVE_X11`
- * * `GLFW_EXPOSE_NATIVE_WAYLAND`
- * * `GLFW_EXPOSE_NATIVE_MIR`
- *
- * The available context API macros are:
- * * `GLFW_EXPOSE_NATIVE_WGL`
- * * `GLFW_EXPOSE_NATIVE_NSGL`
- * * `GLFW_EXPOSE_NATIVE_GLX`
- * * `GLFW_EXPOSE_NATIVE_EGL`
- *
- * These macros select which of the native access functions that are declared
- * and which platform-specific headers to include. It is then up your (by
- * definition platform-specific) code to handle which of these should be
- * defined.
- */
-
-
-/*************************************************************************
- * System headers and types
- *************************************************************************/
-
-#if defined(GLFW_EXPOSE_NATIVE_WIN32)
- // This is a workaround for the fact that glfw3.h needs to export APIENTRY (for
- // example to allow applications to correctly declare a GL_ARB_debug_output
- // callback) but windows.h assumes no one will define APIENTRY before it does
- #undef APIENTRY
- #include <windows.h>
-#elif defined(GLFW_EXPOSE_NATIVE_COCOA)
- #include <ApplicationServices/ApplicationServices.h>
- #if defined(__OBJC__)
- #import <Cocoa/Cocoa.h>
- #else
- typedef void* id;
- #endif
-#elif defined(GLFW_EXPOSE_NATIVE_X11)
- #include <X11/Xlib.h>
- #include <X11/extensions/Xrandr.h>
-#elif defined(GLFW_EXPOSE_NATIVE_WAYLAND)
- #include <wayland-client.h>
-#elif defined(GLFW_EXPOSE_NATIVE_MIR)
- #include <mir_toolkit/mir_client_library.h>
-#endif
-
-#if defined(GLFW_EXPOSE_NATIVE_WGL)
- /* WGL is declared by windows.h */
-#endif
-#if defined(GLFW_EXPOSE_NATIVE_NSGL)
- /* NSGL is declared by Cocoa.h */
-#endif
-#if defined(GLFW_EXPOSE_NATIVE_GLX)
- #include <GL/glx.h>
-#endif
-#if defined(GLFW_EXPOSE_NATIVE_EGL)
- #include <EGL/egl.h>
-#endif
-
-
-/*************************************************************************
- * Functions
- *************************************************************************/
-
-#if defined(GLFW_EXPOSE_NATIVE_WIN32)
-/*! @brief Returns the adapter device name of the specified monitor.
- *
- * @return The UTF-8 encoded adapter device name (for example `\\.\DISPLAY1`)
- * of the specified monitor, or `NULL` if an [error](@ref error_handling)
- * occurred.
- *
- * @thread_safety This function may be called from any thread. Access is not
- * synchronized.
- *
- * @since Added in version 3.1.
- *
- * @ingroup native
- */
-GLFWAPI const char* glfwGetWin32Adapter(GLFWmonitor* monitor);
-
-/*! @brief Returns the display device name of the specified monitor.
- *
- * @return The UTF-8 encoded display device name (for example
- * `\\.\DISPLAY1\Monitor0`) of the specified monitor, or `NULL` if an
- * [error](@ref error_handling) occurred.
- *
- * @thread_safety This function may be called from any thread. Access is not
- * synchronized.
- *
- * @since Added in version 3.1.
- *
- * @ingroup native
- */
-GLFWAPI const char* glfwGetWin32Monitor(GLFWmonitor* monitor);
-
-/*! @brief Returns the `HWND` of the specified window.
- *
- * @return The `HWND` of the specified window, or `NULL` if an
- * [error](@ref error_handling) occurred.
- *
- * @thread_safety This function may be called from any thread. Access is not
- * synchronized.
- *
- * @since Added in version 3.0.
- *
- * @ingroup native
- */
-GLFWAPI HWND glfwGetWin32Window(GLFWwindow* window);
-#endif
-
-#if defined(GLFW_EXPOSE_NATIVE_WGL)
-/*! @brief Returns the `HGLRC` of the specified window.
- *
- * @return The `HGLRC` of the specified window, or `NULL` if an
- * [error](@ref error_handling) occurred.
- *
- * @thread_safety This function may be called from any thread. Access is not
- * synchronized.
- *
- * @since Added in version 3.0.
- *
- * @ingroup native
- */
-GLFWAPI HGLRC glfwGetWGLContext(GLFWwindow* window);
-#endif
-
-#if defined(GLFW_EXPOSE_NATIVE_COCOA)
-/*! @brief Returns the `CGDirectDisplayID` of the specified monitor.
- *
- * @return The `CGDirectDisplayID` of the specified monitor, or
- * `kCGNullDirectDisplay` if an [error](@ref error_handling) occurred.
- *
- * @thread_safety This function may be called from any thread. Access is not
- * synchronized.
- *
- * @since Added in version 3.1.
- *
- * @ingroup native
- */
-GLFWAPI CGDirectDisplayID glfwGetCocoaMonitor(GLFWmonitor* monitor);
-
-/*! @brief Returns the `NSWindow` of the specified window.
- *
- * @return The `NSWindow` of the specified window, or `nil` if an
- * [error](@ref error_handling) occurred.
- *
- * @thread_safety This function may be called from any thread. Access is not
- * synchronized.
- *
- * @since Added in version 3.0.
- *
- * @ingroup native
- */
-GLFWAPI id glfwGetCocoaWindow(GLFWwindow* window);
-#endif
-
-#if defined(GLFW_EXPOSE_NATIVE_NSGL)
-/*! @brief Returns the `NSOpenGLContext` of the specified window.
- *
- * @return The `NSOpenGLContext` of the specified window, or `nil` if an
- * [error](@ref error_handling) occurred.
- *
- * @thread_safety This function may be called from any thread. Access is not
- * synchronized.
- *
- * @since Added in version 3.0.
- *
- * @ingroup native
- */
-GLFWAPI id glfwGetNSGLContext(GLFWwindow* window);
-#endif
-
-#if defined(GLFW_EXPOSE_NATIVE_X11)
-/*! @brief Returns the `Display` used by GLFW.
- *
- * @return The `Display` used by GLFW, or `NULL` if an
- * [error](@ref error_handling) occurred.
- *
- * @thread_safety This function may be called from any thread. Access is not
- * synchronized.
- *
- * @since Added in version 3.0.
- *
- * @ingroup native
- */
-GLFWAPI Display* glfwGetX11Display(void);
-
-/*! @brief Returns the `RRCrtc` of the specified monitor.
- *
- * @return The `RRCrtc` of the specified monitor, or `None` if an
- * [error](@ref error_handling) occurred.
- *
- * @thread_safety This function may be called from any thread. Access is not
- * synchronized.
- *
- * @since Added in version 3.1.
- *
- * @ingroup native
- */
-GLFWAPI RRCrtc glfwGetX11Adapter(GLFWmonitor* monitor);
-
-/*! @brief Returns the `RROutput` of the specified monitor.
- *
- * @return The `RROutput` of the specified monitor, or `None` if an
- * [error](@ref error_handling) occurred.
- *
- * @thread_safety This function may be called from any thread. Access is not
- * synchronized.
- *
- * @since Added in version 3.1.
- *
- * @ingroup native
- */
-GLFWAPI RROutput glfwGetX11Monitor(GLFWmonitor* monitor);
-
-/*! @brief Returns the `Window` of the specified window.
- *
- * @return The `Window` of the specified window, or `None` if an
- * [error](@ref error_handling) occurred.
- *
- * @thread_safety This function may be called from any thread. Access is not
- * synchronized.
- *
- * @since Added in version 3.0.
- *
- * @ingroup native
- */
-GLFWAPI Window glfwGetX11Window(GLFWwindow* window);
-#endif
-
-#if defined(GLFW_EXPOSE_NATIVE_GLX)
-/*! @brief Returns the `GLXContext` of the specified window.
- *
- * @return The `GLXContext` of the specified window, or `NULL` if an
- * [error](@ref error_handling) occurred.
- *
- * @thread_safety This function may be called from any thread. Access is not
- * synchronized.
- *
- * @since Added in version 3.0.
- *
- * @ingroup native
- */
-GLFWAPI GLXContext glfwGetGLXContext(GLFWwindow* window);
-
-/*! @brief Returns the `GLXWindow` of the specified window.
- *
- * @return The `GLXWindow` of the specified window, or `None` if an
- * [error](@ref error_handling) occurred.
- *
- * @thread_safety This function may be called from any thread. Access is not
- * synchronized.
- *
- * @since Added in version 3.2.
- *
- * @ingroup native
- */
-GLFWAPI GLXWindow glfwGetGLXWindow(GLFWwindow* window);
-#endif
-
-#if defined(GLFW_EXPOSE_NATIVE_WAYLAND)
-/*! @brief Returns the `struct wl_display*` used by GLFW.
- *
- * @return The `struct wl_display*` used by GLFW, or `NULL` if an
- * [error](@ref error_handling) occurred.
- *
- * @thread_safety This function may be called from any thread. Access is not
- * synchronized.
- *
- * @since Added in version 3.2.
- *
- * @ingroup native
- */
-GLFWAPI struct wl_display* glfwGetWaylandDisplay(void);
-
-/*! @brief Returns the `struct wl_output*` of the specified monitor.
- *
- * @return The `struct wl_output*` of the specified monitor, or `NULL` if an
- * [error](@ref error_handling) occurred.
- *
- * @thread_safety This function may be called from any thread. Access is not
- * synchronized.
- *
- * @since Added in version 3.2.
- *
- * @ingroup native
- */
-GLFWAPI struct wl_output* glfwGetWaylandMonitor(GLFWmonitor* monitor);
-
-/*! @brief Returns the main `struct wl_surface*` of the specified window.
- *
- * @return The main `struct wl_surface*` of the specified window, or `NULL` if
- * an [error](@ref error_handling) occurred.
- *
- * @thread_safety This function may be called from any thread. Access is not
- * synchronized.
- *
- * @since Added in version 3.2.
- *
- * @ingroup native
- */
-GLFWAPI struct wl_surface* glfwGetWaylandWindow(GLFWwindow* window);
-#endif
-
-#if defined(GLFW_EXPOSE_NATIVE_MIR)
-/*! @brief Returns the `MirConnection*` used by GLFW.
- *
- * @return The `MirConnection*` used by GLFW, or `NULL` if an
- * [error](@ref error_handling) occurred.
- *
- * @thread_safety This function may be called from any thread. Access is not
- * synchronized.
- *
- * @since Added in version 3.2.
- *
- * @ingroup native
- */
-GLFWAPI MirConnection* glfwGetMirDisplay(void);
-
-/*! @brief Returns the Mir output ID of the specified monitor.
- *
- * @return The Mir output ID of the specified monitor, or zero if an
- * [error](@ref error_handling) occurred.
- *
- * @thread_safety This function may be called from any thread. Access is not
- * synchronized.
- *
- * @since Added in version 3.2.
- *
- * @ingroup native
- */
-GLFWAPI int glfwGetMirMonitor(GLFWmonitor* monitor);
-
-/*! @brief Returns the `MirSurface*` of the specified window.
- *
- * @return The `MirSurface*` of the specified window, or `NULL` if an
- * [error](@ref error_handling) occurred.
- *
- * @thread_safety This function may be called from any thread. Access is not
- * synchronized.
- *
- * @since Added in version 3.2.
- *
- * @ingroup native
- */
-GLFWAPI MirSurface* glfwGetMirWindow(GLFWwindow* window);
-#endif
-
-#if defined(GLFW_EXPOSE_NATIVE_EGL)
-/*! @brief Returns the `EGLDisplay` used by GLFW.
- *
- * @return The `EGLDisplay` used by GLFW, or `EGL_NO_DISPLAY` if an
- * [error](@ref error_handling) occurred.
- *
- * @thread_safety This function may be called from any thread. Access is not
- * synchronized.
- *
- * @since Added in version 3.0.
- *
- * @ingroup native
- */
-GLFWAPI EGLDisplay glfwGetEGLDisplay(void);
-
-/*! @brief Returns the `EGLContext` of the specified window.
- *
- * @return The `EGLContext` of the specified window, or `EGL_NO_CONTEXT` if an
- * [error](@ref error_handling) occurred.
- *
- * @thread_safety This function may be called from any thread. Access is not
- * synchronized.
- *
- * @since Added in version 3.0.
- *
- * @ingroup native
- */
-GLFWAPI EGLContext glfwGetEGLContext(GLFWwindow* window);
-
-/*! @brief Returns the `EGLSurface` of the specified window.
- *
- * @return The `EGLSurface` of the specified window, or `EGL_NO_SURFACE` if an
- * [error](@ref error_handling) occurred.
- *
- * @thread_safety This function may be called from any thread. Access is not
- * synchronized.
- *
- * @since Added in version 3.0.
- *
- * @ingroup native
- */
-GLFWAPI EGLSurface glfwGetEGLSurface(GLFWwindow* window);
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _glfw3_native_h_ */
-
diff --git a/imgui-1.92.1/examples/libs/glfw/lib-vc2010-32/glfw3.lib b/imgui-1.92.1/examples/libs/glfw/lib-vc2010-32/glfw3.lib
deleted file mode 100644
index 348abec..0000000
--- a/imgui-1.92.1/examples/libs/glfw/lib-vc2010-32/glfw3.lib
+++ /dev/null
Binary files differ
diff --git a/imgui-1.92.1/examples/libs/glfw/lib-vc2010-64/glfw3.lib b/imgui-1.92.1/examples/libs/glfw/lib-vc2010-64/glfw3.lib
deleted file mode 100644
index 768f308..0000000
--- a/imgui-1.92.1/examples/libs/glfw/lib-vc2010-64/glfw3.lib
+++ /dev/null
Binary files differ
diff --git a/imgui-1.92.1/examples/libs/usynergy/README.txt b/imgui-1.92.1/examples/libs/usynergy/README.txt
deleted file mode 100644
index c86b909..0000000
--- a/imgui-1.92.1/examples/libs/usynergy/README.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-
-uSynergy client -- Implementation for the embedded Synergy client library
-version 1.0.0, July 7th, 2012
-Copyright (c) 2012 Alex Evans
-
-This is a copy of the files once found at:
- https://github.com/symless/synergy-core/tree/790d108a56ada9caad8e56ff777d444485a69da9/src/micro
-
diff --git a/imgui-1.92.1/examples/libs/usynergy/uSynergy.c b/imgui-1.92.1/examples/libs/usynergy/uSynergy.c
deleted file mode 100644
index 8dce47b..0000000
--- a/imgui-1.92.1/examples/libs/usynergy/uSynergy.c
+++ /dev/null
@@ -1,636 +0,0 @@
-/*
-uSynergy client -- Implementation for the embedded Synergy client library
- version 1.0.0, July 7th, 2012
-
-Copyright (c) 2012 Alex Evans
-
-This software is provided 'as-is', without any express or implied
-warranty. In no event will the authors be held liable for any damages
-arising from the use of this software.
-
-Permission is granted to anyone to use this software for any purpose,
-including commercial applications, and to alter it and redistribute it
-freely, subject to the following restrictions:
-
- 1. The origin of this software must not be misrepresented; you must not
- claim that you wrote the original software. If you use this software
- in a product, an acknowledgment in the product documentation would be
- appreciated but is not required.
-
- 2. Altered source versions must be plainly marked as such, and must not be
- misrepresented as being the original software.
-
- 3. This notice may not be removed or altered from any source
- distribution.
-*/
-#include "uSynergy.h"
-#include <stdio.h>
-#include <string.h>
-
-
-
-//---------------------------------------------------------------------------------------------------------------------
-// Internal helpers
-//---------------------------------------------------------------------------------------------------------------------
-
-
-
-/**
-@brief Read 16 bit integer in network byte order and convert to native byte order
-**/
-static int16_t sNetToNative16(const unsigned char *value)
-{
-#ifdef USYNERGY_LITTLE_ENDIAN
- return value[1] | (value[0] << 8);
-#else
- return value[0] | (value[1] << 8);
-#endif
-}
-
-
-
-/**
-@brief Read 32 bit integer in network byte order and convert to native byte order
-**/
-static int32_t sNetToNative32(const unsigned char *value)
-{
-#ifdef USYNERGY_LITTLE_ENDIAN
- return value[3] | (value[2] << 8) | (value[1] << 16) | (value[0] << 24);
-#else
- return value[0] | (value[1] << 8) | (value[2] << 16) | (value[3] << 24);
-#endif
-}
-
-
-
-/**
-@brief Trace text to client
-**/
-static void sTrace(uSynergyContext *context, const char* text)
-{
- // Don't trace if we don't have a trace function
- if (context->m_traceFunc != 0L)
- context->m_traceFunc(context->m_cookie, text);
-}
-
-
-
-/**
-@brief Add string to reply packet
-**/
-static void sAddString(uSynergyContext *context, const char *string)
-{
- size_t len = strlen(string);
- memcpy(context->m_replyCur, string, len);
- context->m_replyCur += len;
-}
-
-
-
-/**
-@brief Add uint8 to reply packet
-**/
-static void sAddUInt8(uSynergyContext *context, uint8_t value)
-{
- *context->m_replyCur++ = value;
-}
-
-
-
-/**
-@brief Add uint16 to reply packet
-**/
-static void sAddUInt16(uSynergyContext *context, uint16_t value)
-{
- uint8_t *reply = context->m_replyCur;
- *reply++ = (uint8_t)(value >> 8);
- *reply++ = (uint8_t)value;
- context->m_replyCur = reply;
-}
-
-
-
-/**
-@brief Add uint32 to reply packet
-**/
-static void sAddUInt32(uSynergyContext *context, uint32_t value)
-{
- uint8_t *reply = context->m_replyCur;
- *reply++ = (uint8_t)(value >> 24);
- *reply++ = (uint8_t)(value >> 16);
- *reply++ = (uint8_t)(value >> 8);
- *reply++ = (uint8_t)value;
- context->m_replyCur = reply;
-}
-
-
-
-/**
-@brief Send reply packet
-**/
-static uSynergyBool sSendReply(uSynergyContext *context)
-{
- // Set header size
- uint8_t *reply_buf = context->m_replyBuffer;
- uint32_t reply_len = (uint32_t)(context->m_replyCur - reply_buf); /* Total size of reply */
- uint32_t body_len = reply_len - 4; /* Size of body */
- uSynergyBool ret;
- reply_buf[0] = (uint8_t)(body_len >> 24);
- reply_buf[1] = (uint8_t)(body_len >> 16);
- reply_buf[2] = (uint8_t)(body_len >> 8);
- reply_buf[3] = (uint8_t)body_len;
-
- // Send reply
- ret = context->m_sendFunc(context->m_cookie, context->m_replyBuffer, reply_len);
-
- // Reset reply buffer write pointer
- context->m_replyCur = context->m_replyBuffer+4;
- return ret;
-}
-
-
-
-/**
-@brief Call mouse callback after a mouse event
-**/
-static void sSendMouseCallback(uSynergyContext *context)
-{
- // Skip if no callback is installed
- if (context->m_mouseCallback == 0L)
- return;
-
- // Send callback
- context->m_mouseCallback(context->m_cookie, context->m_mouseX, context->m_mouseY, context->m_mouseWheelX,
- context->m_mouseWheelY, context->m_mouseButtonLeft, context->m_mouseButtonRight, context->m_mouseButtonMiddle);
-}
-
-
-
-/**
-@brief Send keyboard callback when a key has been pressed or released
-**/
-static void sSendKeyboardCallback(uSynergyContext *context, uint16_t key, uint16_t modifiers, uSynergyBool down, uSynergyBool repeat)
-{
- // Skip if no callback is installed
- if (context->m_keyboardCallback == 0L)
- return;
-
- // Send callback
- context->m_keyboardCallback(context->m_cookie, key, modifiers, down, repeat);
-}
-
-
-
-/**
-@brief Send joystick callback
-**/
-static void sSendJoystickCallback(uSynergyContext *context, uint8_t joyNum)
-{
- int8_t *sticks;
-
- // Skip if no callback is installed
- if (context->m_joystickCallback == 0L)
- return;
-
- // Send callback
- sticks = context->m_joystickSticks[joyNum];
- context->m_joystickCallback(context->m_cookie, joyNum, context->m_joystickButtons[joyNum], sticks[0], sticks[1], sticks[2], sticks[3]);
-}
-
-
-
-/**
-@brief Parse a single client message, update state, send callbacks and send replies
-**/
-#define USYNERGY_IS_PACKET(pkt_id) memcmp(message+4, pkt_id, 4)==0
-static void sProcessMessage(uSynergyContext *context, const uint8_t *message)
-{
- // We have a packet!
- if (memcmp(message+4, "Synergy", 7)==0)
- {
- // Welcome message
- // kMsgHello = "Synergy%2i%2i"
- // kMsgHelloBack = "Synergy%2i%2i%s"
- sAddString(context, "Synergy");
- sAddUInt16(context, USYNERGY_PROTOCOL_MAJOR);
- sAddUInt16(context, USYNERGY_PROTOCOL_MINOR);
- sAddUInt32(context, (uint32_t)strlen(context->m_clientName));
- sAddString(context, context->m_clientName);
- if (!sSendReply(context))
- {
- // Send reply failed, let's try to reconnect
- sTrace(context, "SendReply failed, trying to reconnect in a second");
- context->m_connected = USYNERGY_FALSE;
- context->m_sleepFunc(context->m_cookie, 1000);
- }
- else
- {
- // Let's assume we're connected
- char buffer[256+1];
- sprintf(buffer, "Connected as client \"%s\"", context->m_clientName);
- sTrace(context, buffer);
- context->m_hasReceivedHello = USYNERGY_TRUE;
- }
- return;
- }
- else if (USYNERGY_IS_PACKET("QINF"))
- {
- // Screen info. Reply with DINF
- // kMsgQInfo = "QINF"
- // kMsgDInfo = "DINF%2i%2i%2i%2i%2i%2i%2i"
- uint16_t x = 0, y = 0, warp = 0;
- sAddString(context, "DINF");
- sAddUInt16(context, x);
- sAddUInt16(context, y);
- sAddUInt16(context, context->m_clientWidth);
- sAddUInt16(context, context->m_clientHeight);
- sAddUInt16(context, warp);
- sAddUInt16(context, 0); // mx?
- sAddUInt16(context, 0); // my?
- sSendReply(context);
- return;
- }
- else if (USYNERGY_IS_PACKET("CIAK"))
- {
- // Do nothing?
- // kMsgCInfoAck = "CIAK"
- return;
- }
- else if (USYNERGY_IS_PACKET("CROP"))
- {
- // Do nothing?
- // kMsgCResetOptions = "CROP"
- return;
- }
- else if (USYNERGY_IS_PACKET("CINN"))
- {
- // Screen enter. Reply with CNOP
- // kMsgCEnter = "CINN%2i%2i%4i%2i"
-
- // Obtain the Synergy sequence number
- context->m_sequenceNumber = sNetToNative32(message + 12);
- context->m_isCaptured = USYNERGY_TRUE;
-
- // Call callback
- if (context->m_screenActiveCallback != 0L)
- context->m_screenActiveCallback(context->m_cookie, USYNERGY_TRUE);
- }
- else if (USYNERGY_IS_PACKET("COUT"))
- {
- // Screen leave
- // kMsgCLeave = "COUT"
- context->m_isCaptured = USYNERGY_FALSE;
-
- // Call callback
- if (context->m_screenActiveCallback != 0L)
- context->m_screenActiveCallback(context->m_cookie, USYNERGY_FALSE);
- }
- else if (USYNERGY_IS_PACKET("DMDN"))
- {
- // Mouse down
- // kMsgDMouseDown = "DMDN%1i"
- char btn = message[8]-1;
- if (btn==2)
- context->m_mouseButtonRight = USYNERGY_TRUE;
- else if (btn==1)
- context->m_mouseButtonMiddle = USYNERGY_TRUE;
- else
- context->m_mouseButtonLeft = USYNERGY_TRUE;
- sSendMouseCallback(context);
- }
- else if (USYNERGY_IS_PACKET("DMUP"))
- {
- // Mouse up
- // kMsgDMouseUp = "DMUP%1i"
- char btn = message[8]-1;
- if (btn==2)
- context->m_mouseButtonRight = USYNERGY_FALSE;
- else if (btn==1)
- context->m_mouseButtonMiddle = USYNERGY_FALSE;
- else
- context->m_mouseButtonLeft = USYNERGY_FALSE;
- sSendMouseCallback(context);
- }
- else if (USYNERGY_IS_PACKET("DMMV"))
- {
- // Mouse move. Reply with CNOP
- // kMsgDMouseMove = "DMMV%2i%2i"
- context->m_mouseX = sNetToNative16(message+8);
- context->m_mouseY = sNetToNative16(message+10);
- sSendMouseCallback(context);
- }
- else if (USYNERGY_IS_PACKET("DMWM"))
- {
- // Mouse wheel
- // kMsgDMouseWheel = "DMWM%2i%2i"
- // kMsgDMouseWheel1_0 = "DMWM%2i"
- context->m_mouseWheelX += sNetToNative16(message+8);
- context->m_mouseWheelY += sNetToNative16(message+10);
- sSendMouseCallback(context);
- }
- else if (USYNERGY_IS_PACKET("DKDN"))
- {
- // Key down
- // kMsgDKeyDown = "DKDN%2i%2i%2i"
- // kMsgDKeyDown1_0 = "DKDN%2i%2i"
- //uint16_t id = sNetToNative16(message+8);
- uint16_t mod = sNetToNative16(message+10);
- uint16_t key = sNetToNative16(message+12);
- sSendKeyboardCallback(context, key, mod, USYNERGY_TRUE, USYNERGY_FALSE);
- }
- else if (USYNERGY_IS_PACKET("DKRP"))
- {
- // Key repeat
- // kMsgDKeyRepeat = "DKRP%2i%2i%2i%2i"
- // kMsgDKeyRepeat1_0 = "DKRP%2i%2i%2i"
- uint16_t mod = sNetToNative16(message+10);
-// uint16_t count = sNetToNative16(message+12);
- uint16_t key = sNetToNative16(message+14);
- sSendKeyboardCallback(context, key, mod, USYNERGY_TRUE, USYNERGY_TRUE);
- }
- else if (USYNERGY_IS_PACKET("DKUP"))
- {
- // Key up
- // kMsgDKeyUp = "DKUP%2i%2i%2i"
- // kMsgDKeyUp1_0 = "DKUP%2i%2i"
- //uint16 id=Endian::sNetToNative(sbuf[4]);
- uint16_t mod = sNetToNative16(message+10);
- uint16_t key = sNetToNative16(message+12);
- sSendKeyboardCallback(context, key, mod, USYNERGY_FALSE, USYNERGY_FALSE);
- }
- else if (USYNERGY_IS_PACKET("DGBT"))
- {
- // Joystick buttons
- // kMsgDGameButtons = "DGBT%1i%2i";
- uint8_t joy_num = message[8];
- if (joy_num<USYNERGY_NUM_JOYSTICKS)
- {
- // Copy button state, then send callback
- context->m_joystickButtons[joy_num] = (message[9] << 8) | message[10];
- sSendJoystickCallback(context, joy_num);
- }
- }
- else if (USYNERGY_IS_PACKET("DGST"))
- {
- // Joystick sticks
- // kMsgDGameSticks = "DGST%1i%1i%1i%1i%1i";
- uint8_t joy_num = message[8];
- if (joy_num<USYNERGY_NUM_JOYSTICKS)
- {
- // Copy stick state, then send callback
- memcpy(context->m_joystickSticks[joy_num], message+9, 4);
- sSendJoystickCallback(context, joy_num);
- }
- }
- else if (USYNERGY_IS_PACKET("DSOP"))
- {
- // Set options
- // kMsgDSetOptions = "DSOP%4I"
- }
- else if (USYNERGY_IS_PACKET("CALV"))
- {
- // Keepalive, reply with CALV and then CNOP
- // kMsgCKeepAlive = "CALV"
- sAddString(context, "CALV");
- sSendReply(context);
- // now reply with CNOP
- }
- else if (USYNERGY_IS_PACKET("DCLP"))
- {
- // Clipboard message
- // kMsgDClipboard = "DCLP%1i%4i%s"
- //
- // The clipboard message contains:
- // 1 uint32: The size of the message
- // 4 chars: The identifier ("DCLP")
- // 1 uint8: The clipboard index
- // 1 uint32: The sequence number. It's zero, because this message is always coming from the server?
- // 1 uint32: The total size of the remaining 'string' (as per the Synergy %s string format (which is 1 uint32 for size followed by a char buffer (not necessarily null terminated)).
- // 1 uint32: The number of formats present in the message
- // And then 'number of formats' times the following:
- // 1 uint32: The format of the clipboard data
- // 1 uint32: The size n of the clipboard data
- // n uint8: The clipboard data
- const uint8_t * parse_msg = message+17;
- uint32_t num_formats = sNetToNative32(parse_msg);
- parse_msg += 4;
- for (; num_formats; num_formats--)
- {
- // Parse clipboard format header
- uint32_t format = sNetToNative32(parse_msg);
- uint32_t size = sNetToNative32(parse_msg+4);
- parse_msg += 8;
-
- // Call callback
- if (context->m_clipboardCallback)
- context->m_clipboardCallback(context->m_cookie, format, parse_msg, size);
-
- parse_msg += size;
- }
- }
- else
- {
- // Unknown packet, could be any of these
- // kMsgCNoop = "CNOP"
- // kMsgCClose = "CBYE"
- // kMsgCClipboard = "CCLP%1i%4i"
- // kMsgCScreenSaver = "CSEC%1i"
- // kMsgDKeyRepeat = "DKRP%2i%2i%2i%2i"
- // kMsgDKeyRepeat1_0 = "DKRP%2i%2i%2i"
- // kMsgDMouseRelMove = "DMRM%2i%2i"
- // kMsgEIncompatible = "EICV%2i%2i"
- // kMsgEBusy = "EBSY"
- // kMsgEUnknown = "EUNK"
- // kMsgEBad = "EBAD"
- char buffer[64];
- sprintf(buffer, "Unknown packet '%c%c%c%c'", message[4], message[5], message[6], message[7]);
- sTrace(context, buffer);
- return;
- }
-
- // Reply with CNOP maybe?
- sAddString(context, "CNOP");
- sSendReply(context);
-}
-#undef USYNERGY_IS_PACKET
-
-
-
-/**
-@brief Mark context as being disconnected
-**/
-static void sSetDisconnected(uSynergyContext *context)
-{
- context->m_connected = USYNERGY_FALSE;
- context->m_hasReceivedHello = USYNERGY_FALSE;
- context->m_isCaptured = USYNERGY_FALSE;
- context->m_replyCur = context->m_replyBuffer + 4;
- context->m_sequenceNumber = 0;
-}
-
-
-
-/**
-@brief Update a connected context
-**/
-static void sUpdateContext(uSynergyContext *context)
-{
- /* Receive data (blocking) */
- int receive_size = USYNERGY_RECEIVE_BUFFER_SIZE - context->m_receiveOfs;
- int num_received = 0;
- int packlen = 0;
- if (context->m_receiveFunc(context->m_cookie, context->m_receiveBuffer + context->m_receiveOfs, receive_size, &num_received) == USYNERGY_FALSE)
- {
- /* Receive failed, let's try to reconnect */
- char buffer[128];
- sprintf(buffer, "Receive failed (%d bytes asked, %d bytes received), trying to reconnect in a second", receive_size, num_received);
- sTrace(context, buffer);
- sSetDisconnected(context);
- context->m_sleepFunc(context->m_cookie, 1000);
- return;
- }
- context->m_receiveOfs += num_received;
-
- /* If we didn't receive any data then we're probably still polling to get connected and
- therefore not getting any data back. To avoid overloading the system with a Synergy
- thread that would hammer on polling, we let it rest for a bit if there's no data. */
- if (num_received == 0)
- context->m_sleepFunc(context->m_cookie, 500);
-
- /* Check for timeouts */
- if (context->m_hasReceivedHello)
- {
- uint32_t cur_time = context->m_getTimeFunc();
- if (num_received == 0)
- {
- /* Timeout after 2 secs of inactivity (we received no CALV) */
- if ((cur_time - context->m_lastMessageTime) > USYNERGY_IDLE_TIMEOUT)
- sSetDisconnected(context);
- }
- else
- context->m_lastMessageTime = cur_time;
- }
-
- /* Eat packets */
- for (;;)
- {
- /* Grab packet length and bail out if the packet goes beyond the end of the buffer */
- packlen = sNetToNative32(context->m_receiveBuffer);
- if (packlen+4 > context->m_receiveOfs)
- break;
-
- /* Process message */
- sProcessMessage(context, context->m_receiveBuffer);
-
- /* Move packet to front of buffer */
- memmove(context->m_receiveBuffer, context->m_receiveBuffer+packlen+4, context->m_receiveOfs-packlen-4);
- context->m_receiveOfs -= packlen+4;
- }
-
- /* Throw away over-sized packets */
- if (packlen > USYNERGY_RECEIVE_BUFFER_SIZE)
- {
- /* Oversized packet, ditch tail end */
- char buffer[128];
- sprintf(buffer, "Oversized packet: '%c%c%c%c' (length %d)", context->m_receiveBuffer[4], context->m_receiveBuffer[5], context->m_receiveBuffer[6], context->m_receiveBuffer[7], packlen);
- sTrace(context, buffer);
- num_received = context->m_receiveOfs-4; // 4 bytes for the size field
- while (num_received != packlen)
- {
- int buffer_left = packlen - num_received;
- int to_receive = buffer_left < USYNERGY_RECEIVE_BUFFER_SIZE ? buffer_left : USYNERGY_RECEIVE_BUFFER_SIZE;
- int ditch_received = 0;
- if (context->m_receiveFunc(context->m_cookie, context->m_receiveBuffer, to_receive, &ditch_received) == USYNERGY_FALSE)
- {
- /* Receive failed, let's try to reconnect */
- sTrace(context, "Receive failed, trying to reconnect in a second");
- sSetDisconnected(context);
- context->m_sleepFunc(context->m_cookie, 1000);
- break;
- }
- else
- {
- num_received += ditch_received;
- }
- }
- context->m_receiveOfs = 0;
- }
-}
-
-
-//---------------------------------------------------------------------------------------------------------------------
-// Public interface
-//---------------------------------------------------------------------------------------------------------------------
-
-
-
-/**
-@brief Initialize uSynergy context
-**/
-void uSynergyInit(uSynergyContext *context)
-{
- /* Zero memory */
- memset(context, 0, sizeof(uSynergyContext));
-
- /* Initialize to default state */
- sSetDisconnected(context);
-}
-
-
-/**
-@brief Update uSynergy
-**/
-void uSynergyUpdate(uSynergyContext *context)
-{
- if (context->m_connected)
- {
- /* Update context, receive data, call callbacks */
- sUpdateContext(context);
- }
- else
- {
- /* Try to connect */
- if (context->m_connectFunc(context->m_cookie))
- context->m_connected = USYNERGY_TRUE;
- }
-}
-
-
-
-/**
-@brief Send clipboard data
-**/
-void uSynergySendClipboard(uSynergyContext *context, const char *text)
-{
- // Calculate maximum size that will fit in a reply packet
- uint32_t overhead_size = 4 + /* Message size */
- 4 + /* Message ID */
- 1 + /* Clipboard index */
- 4 + /* Sequence number */
- 4 + /* Rest of message size (because it's a Synergy string from here on) */
- 4 + /* Number of clipboard formats */
- 4 + /* Clipboard format */
- 4; /* Clipboard data length */
- uint32_t max_length = USYNERGY_REPLY_BUFFER_SIZE - overhead_size;
-
- // Clip text to max length
- uint32_t text_length = (uint32_t)strlen(text);
- if (text_length > max_length)
- {
- char buffer[128];
- sprintf(buffer, "Clipboard buffer too small, clipboard truncated at %d characters", max_length);
- sTrace(context, buffer);
- text_length = max_length;
- }
-
- // Assemble packet
- sAddString(context, "DCLP");
- sAddUInt8(context, 0); /* Clipboard index */
- sAddUInt32(context, context->m_sequenceNumber);
- sAddUInt32(context, 4+4+4+text_length); /* Rest of message size: numFormats, format, length, data */
- sAddUInt32(context, 1); /* Number of formats (only text for now) */
- sAddUInt32(context, USYNERGY_CLIPBOARD_FORMAT_TEXT);
- sAddUInt32(context, text_length);
- sAddString(context, text);
- sSendReply(context);
-}
diff --git a/imgui-1.92.1/examples/libs/usynergy/uSynergy.h b/imgui-1.92.1/examples/libs/usynergy/uSynergy.h
deleted file mode 100644
index 2b4d779..0000000
--- a/imgui-1.92.1/examples/libs/usynergy/uSynergy.h
+++ /dev/null
@@ -1,420 +0,0 @@
-/*
-uSynergy client -- Interface for the embedded Synergy client library
- version 1.0.0, July 7th, 2012
-
-Copyright (C) 2012 Synergy Si Ltd.
-Copyright (c) 2012 Alex Evans
-
-This software is provided 'as-is', without any express or implied
-warranty. In no event will the authors be held liable for any damages
-arising from the use of this software.
-
-Permission is granted to anyone to use this software for any purpose,
-including commercial applications, and to alter it and redistribute it
-freely, subject to the following restrictions:
-
- 1. The origin of this software must not be misrepresented; you must not
- claim that you wrote the original software. If you use this software
- in a product, an acknowledgment in the product documentation would be
- appreciated but is not required.
-
- 2. Altered source versions must be plainly marked as such, and must not be
- misrepresented as being the original software.
-
- 3. This notice may not be removed or altered from any source
- distribution.
-*/
-#include <stdint.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-
-//---------------------------------------------------------------------------------------------------------------------
-// Configuration
-//---------------------------------------------------------------------------------------------------------------------
-
-
-
-/**
-@brief Determine endianness
-**/
-#if defined(USYNERGY_LITTLE_ENDIAN) && defined(USYNERGY_BIG_ENDIAN)
- /* Ambiguous: both endians specified */
- #error "Can't define both USYNERGY_LITTLE_ENDIAN and USYNERGY_BIG_ENDIAN"
-#elif !defined(USYNERGY_LITTLE_ENDIAN) && !defined(USYNERGY_BIG_ENDIAN)
- /* Attempt to auto detect */
- #if defined(__LITTLE_ENDIAN__) || defined(LITTLE_ENDIAN) || (_BYTE_ORDER == _LITTLE_ENDIAN)
- #define USYNERGY_LITTLE_ENDIAN
- #elif defined(__BIG_ENDIAN__) || defined(BIG_ENDIAN) || (_BYTE_ORDER == _BIG_ENDIAN)
- #define USYNERGY_BIG_ENDIAN
- #else
- #error "Can't detect endian-nes, please defined either USYNERGY_LITTLE_ENDIAN or USYNERGY_BIG_ENDIAN";
- #endif
-#else
- /* User-specified endian-nes, nothing to do for us */
-#endif
-
-
-
-//---------------------------------------------------------------------------------------------------------------------
-// Types and Constants
-//---------------------------------------------------------------------------------------------------------------------
-
-
-
-/**
-@brief Boolean type
-**/
-typedef int uSynergyBool;
-#define USYNERGY_FALSE 0 /* False value */
-#define USYNERGY_TRUE 1 /* True value */
-
-
-/**
-@brief User context type
-
-The uSynergyCookie type is an opaque type that is used by uSynergy to communicate to the client. It is passed along to
-callback functions as context.
-**/
-typedef struct { int ignored; } * uSynergyCookie;
-
-
-
-/**
-@brief Clipboard types
-**/
-enum uSynergyClipboardFormat
-{
- USYNERGY_CLIPBOARD_FORMAT_TEXT = 0, /* Text format, UTF-8, newline is LF */
- USYNERGY_CLIPBOARD_FORMAT_BITMAP = 1, /* Bitmap format, BMP 24/32bpp, BI_RGB */
- USYNERGY_CLIPBOARD_FORMAT_HTML = 2, /* HTML format, HTML fragment, UTF-8, newline is LF */
-};
-
-
-
-/**
-@brief Constants and limits
-**/
-#define USYNERGY_NUM_JOYSTICKS 4 /* Maximum number of supported joysticks */
-
-#define USYNERGY_PROTOCOL_MAJOR 1 /* Major protocol version */
-#define USYNERGY_PROTOCOL_MINOR 4 /* Minor protocol version */
-
-#define USYNERGY_IDLE_TIMEOUT 2000 /* Timeout in milliseconds before reconnecting */
-
-#define USYNERGY_TRACE_BUFFER_SIZE 1024 /* Maximum length of traced message */
-#define USYNERGY_REPLY_BUFFER_SIZE 1024 /* Maximum size of a reply packet */
-#define USYNERGY_RECEIVE_BUFFER_SIZE 4096 /* Maximum size of an incoming packet */
-
-
-
-/**
-@brief Keyboard constants
-**/
-#define USYNERGY_MODIFIER_SHIFT 0x0001 /* Shift key modifier */
-#define USYNERGY_MODIFIER_CTRL 0x0002 /* Ctrl key modifier */
-#define USYNERGY_MODIFIER_ALT 0x0004 /* Alt key modifier */
-#define USYNERGY_MODIFIER_META 0x0008 /* Meta key modifier */
-#define USYNERGY_MODIFIER_WIN 0x0010 /* Windows key modifier */
-#define USYNERGY_MODIFIER_ALT_GR 0x0020 /* AltGr key modifier */
-#define USYNERGY_MODIFIER_LEVEL5LOCK 0x0040 /* Level5Lock key modifier */
-#define USYNERGY_MODIFIER_CAPSLOCK 0x1000 /* CapsLock key modifier */
-#define USYNERGY_MODIFIER_NUMLOCK 0x2000 /* NumLock key modifier */
-#define USYNERGY_MODIFIER_SCROLLOCK 0x4000 /* ScrollLock key modifier */
-
-
-
-
-//---------------------------------------------------------------------------------------------------------------------
-// Functions and Callbacks
-//---------------------------------------------------------------------------------------------------------------------
-
-
-
-/**
-@brief Connect function
-
-This function is called when uSynergy needs to connect to the host. It doesn't imply a network implementation or
-destination address, that must all be handled on the user side. The function should return USYNERGY_TRUE if a
-connection was established or USYNERGY_FALSE if it could not connect.
-
-When network errors occur (e.g. uSynergySend or uSynergyReceive fail) then the connect call will be called again
-so the implementation of the function must close any old connections and clean up resources before retrying.
-
-@param cookie Cookie supplied in the Synergy context
-**/
-typedef uSynergyBool (*uSynergyConnectFunc)(uSynergyCookie cookie);
-
-
-
-/**
-@brief Send function
-
-This function is called when uSynergy needs to send something over the default connection. It should return
-USYNERGY_TRUE if sending succeeded and USYNERGY_FALSE otherwise. This function should block until the send
-operation is completed.
-
-@param cookie Cookie supplied in the Synergy context
-@param buffer Address of buffer to send
-@param length Length of buffer to send
-**/
-typedef uSynergyBool (*uSynergySendFunc)(uSynergyCookie cookie, const uint8_t *buffer, int length);
-
-
-
-/**
-@brief Receive function
-
-This function is called when uSynergy needs to receive data from the default connection. It should return
-USYNERGY_TRUE if receiving data succeeded and USYNERGY_FALSE otherwise. This function should block until data
-has been received and wait for data to become available. If @a outLength is set to 0 upon completion it is
-assumed that the connection is alive, but still in a connecting state and needs time to settle.
-
-@param cookie Cookie supplied in the Synergy context
-@param buffer Address of buffer to receive data into
-@param maxLength Maximum amount of bytes to write into the receive buffer
-@param outLength Address of integer that receives the actual amount of bytes written into @a buffer
-**/
-typedef uSynergyBool (*uSynergyReceiveFunc)(uSynergyCookie cookie, uint8_t *buffer, int maxLength, int* outLength);
-
-
-
-/**
-@brief Thread sleep function
-
-This function is called when uSynergy wants to suspend operation for a while before retrying an operation. It
-is mostly used when a socket times out or disconnect occurs to prevent uSynergy from continuously hammering a
-network connection in case the network is down.
-
-@param cookie Cookie supplied in the Synergy context
-@param timeMs Time to sleep the current thread (in milliseconds)
-**/
-typedef void (*uSynergySleepFunc)(uSynergyCookie cookie, int timeMs);
-
-
-
-/**
-@brief Get time function
-
-This function is called when uSynergy needs to know the current time. This is used to determine when timeouts
-have occurred. The time base should be a cyclic millisecond time value.
-
-@returns Time value in milliseconds
-**/
-typedef uint32_t (*uSynergyGetTimeFunc)();
-
-
-
-/**
-@brief Trace function
-
-This function is called when uSynergy wants to trace something. It is optional to show these messages, but they
-are often useful when debugging. uSynergy only traces major events like connecting and disconnecting. Usually
-only a single trace is shown when the connection is established and no more trace are called.
-
-@param cookie Cookie supplied in the Synergy context
-@param text Text to be traced
-**/
-typedef void (*uSynergyTraceFunc)(uSynergyCookie cookie, const char *text);
-
-
-
-/**
-@brief Screen active callback
-
-This callback is called when Synergy makes the screen active or inactive. This
-callback is usually sent when the mouse enters or leaves the screen.
-
-@param cookie Cookie supplied in the Synergy context
-@param active Activation flag, 1 if the screen has become active, 0 if the screen has become inactive
-**/
-typedef void (*uSynergyScreenActiveCallback)(uSynergyCookie cookie, uSynergyBool active);
-
-
-
-/**
-@brief Mouse callback
-
-This callback is called when a mouse events happens. The mouse X and Y position,
-wheel and button state is communicated in the message. It's up to the user to
-interpret if this is a mouse up, down, double-click or other message.
-
-@param cookie Cookie supplied in the Synergy context
-@param x Mouse X position
-@param y Mouse Y position
-@param wheelX Mouse wheel X position
-@param wheelY Mouse wheel Y position
-@param buttonLeft Left button pressed status, 0 for released, 1 for pressed
-@param buttonMiddle Middle button pressed status, 0 for released, 1 for pressed
-@param buttonRight Right button pressed status, 0 for released, 1 for pressed
-**/
-typedef void (*uSynergyMouseCallback)(uSynergyCookie cookie, uint16_t x, uint16_t y, int16_t wheelX, int16_t wheelY, uSynergyBool buttonLeft, uSynergyBool buttonRight, uSynergyBool buttonMiddle);
-
-
-
-/**
-@brief Key event callback
-
-This callback is called when a key is pressed or released.
-
-@param cookie Cookie supplied in the Synergy context
-@param key Key code of key that was pressed or released
-@param modifiers Status of modifier keys (alt, shift, etc.)
-@param down Down or up status, 1 is key is pressed down, 0 if key is released (up)
-@param repeat Repeat flag, 1 if the key is down because the key is repeating, 0 if the key is initially pressed by the user
-**/
-typedef void (*uSynergyKeyboardCallback)(uSynergyCookie cookie, uint16_t key, uint16_t modifiers, uSynergyBool down, uSynergyBool repeat);
-
-
-
-/**
-@brief Joystick event callback
-
-This callback is called when a joystick stick or button changes. It is possible that multiple callbacks are
-fired when different sticks or buttons change as these are individual messages in the packet stream. Each
-callback will contain all the valid state for the different axes and buttons. The last callback received will
-represent the most current joystick state.
-
-@param cookie Cookie supplied in the Synergy context
-@param joyNum Joystick number, always in the range [0 ... USYNERGY_NUM_JOYSTICKS>
-@param buttons Button pressed mask
-@param leftStickX Left stick X position, in range [-127 ... 127]
-@param leftStickY Left stick Y position, in range [-127 ... 127]
-@param rightStickX Right stick X position, in range [-127 ... 127]
-@param rightStickY Right stick Y position, in range [-127 ... 127]
-**/
-typedef void (*uSynergyJoystickCallback)(uSynergyCookie cookie, uint8_t joyNum, uint16_t buttons, int8_t leftStickX, int8_t leftStickY, int8_t rightStickX, int8_t rightStickY);
-
-
-
-/**
-@brief Clipboard event callback
-
-This callback is called when something is placed on the clipboard. Multiple callbacks may be fired for
-multiple clipboard formats if they are supported. The data provided is read-only and may not be modified
-by the application.
-
-@param cookie Cookie supplied in the Synergy context
-@param format Clipboard format
-@param data Memory area containing the clipboard raw data
-@param size Size of clipboard data
-**/
-typedef void (*uSynergyClipboardCallback)(uSynergyCookie cookie, enum uSynergyClipboardFormat format, const uint8_t *data, uint32_t size);
-
-
-
-//---------------------------------------------------------------------------------------------------------------------
-// Context
-//---------------------------------------------------------------------------------------------------------------------
-
-
-
-/**
-@brief uSynergy context
-**/
-typedef struct
-{
- /* Mandatory configuration data, filled in by client */
- uSynergyConnectFunc m_connectFunc; /* Connect function */
- uSynergySendFunc m_sendFunc; /* Send data function */
- uSynergyReceiveFunc m_receiveFunc; /* Receive data function */
- uSynergySleepFunc m_sleepFunc; /* Thread sleep function */
- uSynergyGetTimeFunc m_getTimeFunc; /* Get current time function */
- const char* m_clientName; /* Name of Synergy Screen / Client */
- uint16_t m_clientWidth; /* Width of screen */
- uint16_t m_clientHeight; /* Height of screen */
-
- /* Optional configuration data, filled in by client */
- uSynergyCookie m_cookie; /* Cookie pointer passed to callback functions (can be NULL) */
- uSynergyTraceFunc m_traceFunc; /* Function for tracing status (can be NULL) */
- uSynergyScreenActiveCallback m_screenActiveCallback; /* Callback for entering and leaving screen */
- uSynergyMouseCallback m_mouseCallback; /* Callback for mouse events */
- uSynergyKeyboardCallback m_keyboardCallback; /* Callback for keyboard events */
- uSynergyJoystickCallback m_joystickCallback; /* Callback for joystick events */
- uSynergyClipboardCallback m_clipboardCallback; /* Callback for clipboard events */
-
- /* State data, used internally by client, initialized by uSynergyInit() */
- uSynergyBool m_connected; /* Is our socket connected? */
- uSynergyBool m_hasReceivedHello; /* Have we received a 'Hello' from the server? */
- uSynergyBool m_isCaptured; /* Is Synergy active (i.e. this client is receiving input messages?) */
- uint32_t m_lastMessageTime; /* Time at which last message was received */
- uint32_t m_sequenceNumber; /* Packet sequence number */
- uint8_t m_receiveBuffer[USYNERGY_RECEIVE_BUFFER_SIZE]; /* Receive buffer */
- int m_receiveOfs; /* Receive buffer offset */
- uint8_t m_replyBuffer[USYNERGY_REPLY_BUFFER_SIZE]; /* Reply buffer */
- uint8_t* m_replyCur; /* Write offset into reply buffer */
- uint16_t m_mouseX; /* Mouse X position */
- uint16_t m_mouseY; /* Mouse Y position */
- int16_t m_mouseWheelX; /* Mouse wheel X position */
- int16_t m_mouseWheelY; /* Mouse wheel Y position */
- uSynergyBool m_mouseButtonLeft; /* Mouse left button */
- uSynergyBool m_mouseButtonRight; /* Mouse right button */
- uSynergyBool m_mouseButtonMiddle; /* Mouse middle button */
- int8_t m_joystickSticks[USYNERGY_NUM_JOYSTICKS][4]; /* Joystick stick position in 2 axes for 2 sticks */
- uint16_t m_joystickButtons[USYNERGY_NUM_JOYSTICKS]; /* Joystick button state */
-} uSynergyContext;
-
-
-
-//---------------------------------------------------------------------------------------------------------------------
-// Interface
-//---------------------------------------------------------------------------------------------------------------------
-
-
-
-/**
-@brief Initialize uSynergy context
-
-This function initializes @a context for use. Call this function directly after
-creating the context, before filling in any configuration data in it. Not calling
-this function will cause undefined behavior.
-
-@param context Context to be initialized
-**/
-extern void uSynergyInit(uSynergyContext *context);
-
-
-
-/**
-@brief Update uSynergy
-
-This function updates uSynergy and does the bulk of the work. It does connection management,
-receiving data, reconnecting after errors or timeouts and so on. It assumes that networking
-operations are blocking and it can suspend the current thread if it needs to wait. It is
-best practice to call uSynergyUpdate from a background thread so it is responsive.
-
-Because uSynergy relies mostly on blocking calls it will mostly stay in thread sleep state
-waiting for system mutexes and won't eat much memory.
-
-uSynergyUpdate doesn't do any memory allocations or have any side effects beyond those of
-the callbacks it calls.
-
-@param context Context to be updated
-**/
-extern void uSynergyUpdate(uSynergyContext *context);
-
-
-
-/**
-@brief Send clipboard data
-
-This function sets new clipboard data and sends it to the server. Use this function if
-your client cuts or copies data onto the clipboard that it needs to share with the
-server.
-
-Currently there is only support for plaintext, but HTML and image data could be
-supported with some effort.
-
-@param context Context to send clipboard data to
-@param text Text to set to the clipboard
-**/
-extern void uSynergySendClipboard(uSynergyContext *context, const char *text);
-
-
-
-#ifdef __cplusplus
-};
-#endif