├── DirectX-Application
├── imgui.ini
├── entry.hpp
├── external
│ └── imgui-docking
│ │ ├── examples
│ │ ├── example_android_opengl3
│ │ │ ├── android
│ │ │ │ ├── settings.gradle
│ │ │ │ ├── .gitignore
│ │ │ │ ├── build.gradle
│ │ │ │ └── app
│ │ │ │ │ ├── build.gradle
│ │ │ │ │ └── src
│ │ │ │ │ └── main
│ │ │ │ │ ├── AndroidManifest.xml
│ │ │ │ │ └── java
│ │ │ │ │ └── MainActivity.kt
│ │ │ └── CMakeLists.txt
│ │ ├── example_null
│ │ │ ├── build_win32.bat
│ │ │ ├── main.cpp
│ │ │ └── Makefile
│ │ ├── libs
│ │ │ ├── usynergy
│ │ │ │ └── README.txt
│ │ │ └── glfw
│ │ │ │ └── COPYING.txt
│ │ ├── example_apple_metal
│ │ │ ├── README.md
│ │ │ ├── macOS
│ │ │ │ ├── Info-macOS.plist
│ │ │ │ └── MainMenu.storyboard
│ │ │ └── iOS
│ │ │ │ ├── Info-iOS.plist
│ │ │ │ └── LaunchScreen.storyboard
│ │ ├── example_win32_directx9
│ │ │ ├── build_win32.bat
│ │ │ └── example_win32_directx9.vcxproj.filters
│ │ ├── example_glfw_opengl2
│ │ │ ├── build_win32.bat
│ │ │ ├── example_glfw_opengl2.vcxproj.filters
│ │ │ └── Makefile
│ │ ├── example_glfw_opengl3
│ │ │ ├── build_win32.bat
│ │ │ ├── example_glfw_opengl3.vcxproj.filters
│ │ │ └── Makefile
│ │ ├── example_sdl_opengl2
│ │ │ ├── build_win32.bat
│ │ │ ├── README.md
│ │ │ ├── example_sdl_opengl2.vcxproj.filters
│ │ │ └── Makefile
│ │ ├── example_sdl_opengl3
│ │ │ ├── build_win32.bat
│ │ │ ├── README.md
│ │ │ ├── example_sdl_opengl3.vcxproj.filters
│ │ │ └── Makefile
│ │ ├── example_emscripten_wgpu
│ │ │ ├── README.md
│ │ │ └── Makefile
│ │ ├── README.txt
│ │ ├── example_allegro5
│ │ │ ├── imconfig_allegro5.h
│ │ │ ├── README.md
│ │ │ ├── example_allegro5.vcxproj.filters
│ │ │ └── main.cpp
│ │ ├── example_win32_directx10
│ │ │ ├── build_win32.bat
│ │ │ └── example_win32_directx10.vcxproj.filters
│ │ ├── example_sdl_vulkan
│ │ │ ├── build_win32.bat
│ │ │ └── example_sdl_vulkan.vcxproj.filters
│ │ ├── example_win32_directx11
│ │ │ ├── build_win32.bat
│ │ │ └── example_win32_directx11.vcxproj.filters
│ │ ├── example_sdl_directx11
│ │ │ ├── build_win32.bat
│ │ │ └── example_sdl_directx11.vcxproj.filters
│ │ ├── example_win32_directx12
│ │ │ ├── build_win32.bat
│ │ │ └── example_win32_directx12.vcxproj.filters
│ │ ├── example_glfw_vulkan
│ │ │ ├── build_win64.bat
│ │ │ ├── build_win32.bat
│ │ │ ├── CMakeLists.txt
│ │ │ └── example_glfw_vulkan.vcxproj.filters
│ │ ├── example_marmalade
│ │ │ ├── data
│ │ │ │ └── app.icf
│ │ │ ├── marmalade_example.mkb
│ │ │ └── main.cpp
│ │ ├── example_glfw_metal
│ │ │ └── Makefile
│ │ ├── example_sdl_metal
│ │ │ └── Makefile
│ │ ├── example_glut_opengl2
│ │ │ ├── Makefile
│ │ │ ├── example_glut_opengl2.vcxproj.filters
│ │ │ └── main.cpp
│ │ └── example_emscripten_opengl3
│ │ │ ├── shell_minimal.html
│ │ │ ├── README.md
│ │ │ └── Makefile
│ │ ├── .github
│ │ ├── FUNDING.yml
│ │ ├── pull_request_template.md
│ │ ├── workflows
│ │ │ ├── scheduled.yml
│ │ │ └── static-analysis.yml
│ │ └── issue_template.md
│ │ ├── misc
│ │ ├── fonts
│ │ │ ├── DroidSans.ttf
│ │ │ ├── ProggyClean.ttf
│ │ │ ├── ProggyTiny.ttf
│ │ │ ├── Karla-Regular.ttf
│ │ │ ├── Roboto-Medium.ttf
│ │ │ └── Cousine-Regular.ttf
│ │ ├── debuggers
│ │ │ ├── README.txt
│ │ │ ├── imgui.gdb
│ │ │ ├── imgui.natstepfilter
│ │ │ └── imgui.natvis
│ │ ├── cpp
│ │ │ ├── README.txt
│ │ │ ├── imgui_stdlib.h
│ │ │ └── imgui_stdlib.cpp
│ │ ├── single_file
│ │ │ └── imgui_single_file.h
│ │ ├── README.txt
│ │ └── freetype
│ │ │ ├── README.md
│ │ │ └── imgui_freetype.h
│ │ ├── backends
│ │ ├── vulkan
│ │ │ ├── generate_spv.sh
│ │ │ ├── glsl_shader.frag
│ │ │ └── glsl_shader.vert
│ │ ├── imgui_impl_dx9.h
│ │ ├── imgui_impl_dx10.h
│ │ ├── imgui_impl_wgpu.h
│ │ ├── imgui_impl_osx.h
│ │ ├── imgui_impl_dx11.h
│ │ ├── imgui_impl_android.h
│ │ ├── imgui_impl_marmalade.h
│ │ ├── imgui_impl_metal.h
│ │ ├── imgui_impl_allegro5.h
│ │ ├── imgui_impl_opengl2.h
│ │ ├── imgui_impl_sdl.h
│ │ ├── imgui_impl_glut.h
│ │ ├── imgui_impl_dx12.h
│ │ ├── imgui_impl_win32.h
│ │ ├── imgui_impl_opengl3.h
│ │ └── imgui_impl_glfw.h
│ │ ├── .gitattributes
│ │ ├── .editorconfig
│ │ ├── LICENSE.txt
│ │ ├── .gitignore
│ │ ├── imgui_impl_dx11.h
│ │ └── imgui_impl_win32.h
├── c_ui.cpp
├── c_ui.hpp
├── DirectX-Application.vcxproj.user
├── c_ui_utils.hpp
├── entry.cpp
├── pch.hpp
├── c_directx.hpp
├── c_ui_utils.cpp
└── DirectX-Application.vcxproj.filters
├── .gitattributes
├── SECURITY.md
├── .gitignore
├── README.md
├── .github
├── ISSUE_TEMPLATE
│ ├── feature_request.md
│ └── bug_report.md
└── workflows
│ └── codeql-analysis.yml
├── LICENSE
└── DirectX-Application.sln
/DirectX-Application/imgui.ini:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/DirectX-Application/entry.hpp:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 |
4 |
--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | # Auto detect text files and perform LF normalization
2 | * text=auto
3 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/examples/example_android_opengl3/android/settings.gradle:
--------------------------------------------------------------------------------
1 | include ':app'
2 |
--------------------------------------------------------------------------------
/DirectX-Application/c_ui.cpp:
--------------------------------------------------------------------------------
1 | #include "c_ui.hpp"
2 |
3 | void c_ui::renderer()
4 | {
5 | ImGui::ShowDemoWindow();
6 | }
7 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | custom: ['https://github.com/ocornut/imgui/wiki/Sponsors']
2 |
--------------------------------------------------------------------------------
/DirectX-Application/c_ui.hpp:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "pch.hpp"
3 | class c_ui
4 | {
5 | public:
6 | static void renderer();
7 | };
8 |
9 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/misc/fonts/DroidSans.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/argon-projects/ImGui-Application/HEAD/DirectX-Application/external/imgui-docking/misc/fonts/DroidSans.ttf
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/misc/fonts/ProggyClean.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/argon-projects/ImGui-Application/HEAD/DirectX-Application/external/imgui-docking/misc/fonts/ProggyClean.ttf
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/misc/fonts/ProggyTiny.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/argon-projects/ImGui-Application/HEAD/DirectX-Application/external/imgui-docking/misc/fonts/ProggyTiny.ttf
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/misc/fonts/Karla-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/argon-projects/ImGui-Application/HEAD/DirectX-Application/external/imgui-docking/misc/fonts/Karla-Regular.ttf
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/misc/fonts/Roboto-Medium.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/argon-projects/ImGui-Application/HEAD/DirectX-Application/external/imgui-docking/misc/fonts/Roboto-Medium.ttf
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/misc/fonts/Cousine-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/argon-projects/ImGui-Application/HEAD/DirectX-Application/external/imgui-docking/misc/fonts/Cousine-Regular.ttf
--------------------------------------------------------------------------------
/DirectX-Application/DirectX-Application.vcxproj.user:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/DirectX-Application/c_ui_utils.hpp:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "pch.hpp"
3 | class c_ui_utils
4 | {
5 | public:
6 | static ImFont* load_font(ImFontAtlas& atlas, const char* name, float size, const ImVec2& displayOffset = ImVec2(0, 0));
7 | };
8 |
9 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/examples/example_android_opengl3/android/.gitignore:
--------------------------------------------------------------------------------
1 | .cxx
2 | .externalNativeBuild
3 | build/
4 | *.iml
5 |
6 | .idea
7 | .gradle
8 | local.properties
9 |
10 | # Android Studio puts a Gradle wrapper here, that we don't want:
11 | gradle/
12 | gradlew*
13 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/.github/pull_request_template.md:
--------------------------------------------------------------------------------
1 | (Click "Preview" to turn any http URL into a clickable link)
2 |
3 | 1. PLEASE CAREFULLY READ: [Issue Submitting Guidelines](https://github.com/ocornut/imgui/issues/2261)
4 |
5 | 2. Clear this template before submitting your PR.
6 |
7 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/examples/example_null/build_win32.bat:
--------------------------------------------------------------------------------
1 | @REM Build for Visual Studio compiler. Run your copy of vcvars32.bat or vcvarsall.bat to setup command-line compiler.
2 | mkdir Debug
3 | cl /nologo /Zi /MD /I ..\.. %* *.cpp ..\..\*.cpp /FeDebug/example_null.exe /FoDebug/ /link gdi32.lib shell32.lib imm32.lib
4 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/backends/vulkan/generate_spv.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 | ## -V: create SPIR-V binary
3 | ## -x: save binary output as text-based 32-bit hexadecimal numbers
4 | ## -o: output file
5 | glslangValidator -V -x -o glsl_shader.frag.u32 glsl_shader.frag
6 | glslangValidator -V -x -o glsl_shader.vert.u32 glsl_shader.vert
7 |
--------------------------------------------------------------------------------
/SECURITY.md:
--------------------------------------------------------------------------------
1 | # Security Policy
2 |
3 | ## Supported Versions
4 |
5 |
6 | ONLY the latest version is supported by security updates:
7 |
8 | | Version | Supported |
9 | | ------- | ------------------ |
10 | | 1.x.x | :white_check_mark: |
11 |
12 | ## Reporting a Vulnerability
13 |
14 | Create a Issue to Report the Vulnerability!
15 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/examples/libs/usynergy/README.txt:
--------------------------------------------------------------------------------
1 |
2 | uSynergy client -- Implementation for the embedded Synergy client library
3 | version 1.0.0, July 7th, 2012
4 | Copyright (c) 2012 Alex Evans
5 |
6 | This is a copy of the files once found at:
7 | https://github.com/symless/synergy-core/tree/790d108a56ada9caad8e56ff777d444485a69da9/src/micro
8 |
9 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/backends/vulkan/glsl_shader.frag:
--------------------------------------------------------------------------------
1 | #version 450 core
2 | layout(location = 0) out vec4 fColor;
3 |
4 | layout(set=0, binding=0) uniform sampler2D sTexture;
5 |
6 | layout(location = 0) in struct {
7 | vec4 Color;
8 | vec2 UV;
9 | } In;
10 |
11 | void main()
12 | {
13 | fColor = In.Color * texture(sTexture, In.UV.st);
14 | }
15 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Prerequisites
2 | *.d
3 |
4 | # Compiled Object files
5 | *.slo
6 | *.lo
7 | *.o
8 | *.obj
9 |
10 | # Precompiled Headers
11 | *.gch
12 | *.pch
13 |
14 | # Compiled Dynamic libraries
15 | *.so
16 | *.dylib
17 | *.dll
18 |
19 | # Fortran module files
20 | *.mod
21 | *.smod
22 |
23 | # Compiled Static libraries
24 | *.lai
25 | *.la
26 | *.a
27 | *.lib
28 |
29 | # Executables
30 | *.exe
31 | *.out
32 | *.app
33 |
--------------------------------------------------------------------------------
/DirectX-Application/entry.cpp:
--------------------------------------------------------------------------------
1 | #include "pch.hpp"
2 | #include "entry.hpp"
3 |
4 | int APIENTRY wWinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInstance, _In_ LPWSTR lpCmdLine, _In_ int nCmdShow)
5 | {
6 | UNREFERENCED_PARAMETER(hPrevInstance);
7 | UNREFERENCED_PARAMETER(lpCmdLine);
8 |
9 | c_directx* d3d = new c_directx(L"ImGui test", L"ImGui test");
10 | delete d3d;
11 |
12 |
13 | return 0;
14 | }
15 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/.github/workflows/scheduled.yml:
--------------------------------------------------------------------------------
1 | #
2 | # This is a dummy workflow used to trigger scheduled builds. Forked repositories most likely should disable this
3 | # workflow to avoid daily builds of inactive repositories.
4 | #
5 | name: scheduled
6 |
7 | on:
8 | schedule:
9 | - cron: '0 9 * * *'
10 |
11 | jobs:
12 | scheduled:
13 | runs-on: ubuntu-latest
14 | steps:
15 | - run: exit 0
16 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/examples/example_apple_metal/README.md:
--------------------------------------------------------------------------------
1 | # iOS / OSX Metal example
2 |
3 | ## Introduction
4 |
5 | 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.
6 |
7 | Consider basing your work off the example_glfw_metal/ or example_sdl_metal/ examples. They are better supported and will be portable unlike this one.
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/DirectX-Application/pch.hpp:
--------------------------------------------------------------------------------
1 | #pragma once
2 |
3 | // ---------------- Default Includes ----------------
4 |
5 | #include
6 | #include
7 | #include
8 | #include
9 | #include
10 |
11 | // ---------------- External Includes ----------------
12 |
13 | #include
14 | #include
15 | #include
16 | #include
17 |
18 | // ---------------- Project Includes ----------------
19 |
20 | #include "c_ui.hpp"
21 | #include "c_ui_utils.hpp"
22 | #include "c_directx.hpp"
23 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/.gitattributes:
--------------------------------------------------------------------------------
1 | * text=auto
2 |
3 | *.c text
4 | *.cpp text
5 | *.h text
6 | *.m text
7 | *.mm text
8 | *.md text
9 | *.txt text
10 | *.html text
11 | *.bat text
12 | *.frag text
13 | *.vert text
14 | *.mkb text
15 | *.icf text
16 |
17 | *.sln text eol=crlf
18 | *.vcxproj text eol=crlf
19 | *.vcxproj.filters text eol=crlf
20 | *.natvis text eol=crlf
21 |
22 | Makefile text eol=lf
23 | *.sh text eol=lf
24 | *.pbxproj text eol=lf
25 | *.storyboard text eol=lf
26 | *.plist text eol=lf
27 |
28 | *.png binary
29 | *.ttf binary
30 | *.lib binary
31 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/examples/example_android_opengl3/android/build.gradle:
--------------------------------------------------------------------------------
1 | buildscript {
2 | ext.kotlin_version = '1.4.31'
3 | repositories {
4 | google()
5 | mavenCentral()
6 |
7 | }
8 | dependencies {
9 | classpath 'com.android.tools.build:gradle:4.1.0'
10 | classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
11 |
12 | }
13 | }
14 |
15 | allprojects {
16 | repositories {
17 | google()
18 | mavenCentral()
19 | }
20 | }
21 |
22 | task clean(type: Delete) {
23 | delete rootProject.buildDir
24 | }
25 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/misc/debuggers/README.txt:
--------------------------------------------------------------------------------
1 |
2 | HELPER FILES FOR POPULAR DEBUGGERS
3 |
4 | imgui.gdb
5 | GDB: disable stepping into trivial functions.
6 | (read comments inside file for details)
7 |
8 | imgui.natstepfilter
9 | Visual Studio Debugger: disable stepping into trivial functions.
10 | (read comments inside file for details)
11 |
12 | imgui.natvis
13 | Visual Studio Debugger: describe Dear ImGui types for better display.
14 | With this, types like ImVector<> will be displayed nicely in the debugger.
15 | (read comments inside file for details)
16 |
17 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # ImGui-Application
2 | [](https://forthebadge.com)
3 | [](https://forthebadge.com)
4 |
5 | # Informations
6 | A ImGui Application with Multi Viewports and Docking using D3D11
7 |
8 | # Build
9 | You need the DirectX SDK, here the Download link: https://www.microsoft.com/en-us/download/details.aspx?id=6812
10 |
11 | # Pictures
12 | 
13 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/examples/example_win32_directx9/build_win32.bat:
--------------------------------------------------------------------------------
1 | @REM Build for Visual Studio compiler. Run your copy of vcvars32.bat or vcvarsall.bat to setup command-line compiler.
2 | @set OUT_DIR=Debug
3 | @set OUT_EXE=example_win32_directx9
4 | @set INCLUDES=/I..\.. /I..\..\backends /I "%DXSDK_DIR%/Include"
5 | @set SOURCES=main.cpp ..\..\backends\imgui_impl_dx9.cpp ..\..\backends\imgui_impl_win32.cpp ..\..\imgui*.cpp
6 | @set LIBS=/LIBPATH:"%DXSDK_DIR%/Lib/x86" d3d9.lib
7 | mkdir %OUT_DIR%
8 | cl /nologo /Zi /MD %INCLUDES% /D UNICODE /D _UNICODE %SOURCES% /Fe%OUT_DIR%/%OUT_EXE%.exe /Fo%OUT_DIR%/ /link %LIBS%
9 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/backends/vulkan/glsl_shader.vert:
--------------------------------------------------------------------------------
1 | #version 450 core
2 | layout(location = 0) in vec2 aPos;
3 | layout(location = 1) in vec2 aUV;
4 | layout(location = 2) in vec4 aColor;
5 |
6 | layout(push_constant) uniform uPushConstant {
7 | vec2 uScale;
8 | vec2 uTranslate;
9 | } pc;
10 |
11 | out gl_PerVertex {
12 | vec4 gl_Position;
13 | };
14 |
15 | layout(location = 0) out struct {
16 | vec4 Color;
17 | vec2 UV;
18 | } Out;
19 |
20 | void main()
21 | {
22 | Out.Color = aColor;
23 | Out.UV = aUV;
24 | gl_Position = vec4(aPos * pc.uScale + pc.uTranslate, 0, 1);
25 | }
26 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/examples/example_glfw_opengl2/build_win32.bat:
--------------------------------------------------------------------------------
1 | @REM Build for Visual Studio compiler. Run your copy of vcvars32.bat or vcvarsall.bat to setup command-line compiler.
2 | @set OUT_DIR=Debug
3 | @set OUT_EXE=example_glfw_opengl2
4 | @set INCLUDES=/I..\.. /I..\..\backends /I..\libs\glfw\include
5 | @set SOURCES=main.cpp ..\..\backends\imgui_impl_opengl2.cpp ..\..\backends\imgui_impl_glfw.cpp ..\..\imgui*.cpp
6 | @set LIBS=/LIBPATH:..\libs\glfw\lib-vc2010-32 glfw3.lib opengl32.lib gdi32.lib shell32.lib
7 | mkdir %OUT_DIR%
8 | cl /nologo /Zi /MD %INCLUDES% %SOURCES% /Fe%OUT_DIR%/%OUT_EXE%.exe /Fo%OUT_DIR%/ /link %LIBS%
9 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/examples/example_glfw_opengl3/build_win32.bat:
--------------------------------------------------------------------------------
1 | @REM Build for Visual Studio compiler. Run your copy of vcvars32.bat or vcvarsall.bat to setup command-line compiler.
2 | @set OUT_DIR=Debug
3 | @set OUT_EXE=example_glfw_opengl3
4 | @set INCLUDES=/I..\.. /I..\..\backends /I..\libs\glfw\include
5 | @set SOURCES=main.cpp ..\..\backends\imgui_impl_glfw.cpp ..\..\backends\imgui_impl_opengl3.cpp ..\..\imgui*.cpp
6 | @set LIBS=/LIBPATH:..\libs\glfw\lib-vc2010-32 glfw3.lib opengl32.lib gdi32.lib shell32.lib
7 | mkdir %OUT_DIR%
8 | cl /nologo /Zi /MD %INCLUDES% %SOURCES% /Fe%OUT_DIR%/%OUT_EXE%.exe /Fo%OUT_DIR%/ /link %LIBS%
9 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/examples/example_sdl_opengl2/build_win32.bat:
--------------------------------------------------------------------------------
1 | @REM Build for Visual Studio compiler. Run your copy of vcvars32.bat or vcvarsall.bat to setup command-line compiler.
2 | @set OUT_DIR=Debug
3 | @set OUT_EXE=example_sdl_opengl2
4 | @set INCLUDES=/I..\.. /I..\..\backends /I%SDL2_DIR%\include
5 | @set SOURCES=main.cpp ..\..\backends\imgui_impl_sdl.cpp ..\..\backends\imgui_impl_opengl2.cpp ..\..\imgui*.cpp
6 | @set LIBS=/LIBPATH:%SDL2_DIR%\lib\x86 SDL2.lib SDL2main.lib opengl32.lib shell32.lib
7 | mkdir %OUT_DIR%
8 | cl /nologo /Zi /MD %INCLUDES% %SOURCES% /Fe%OUT_DIR%/%OUT_EXE%.exe /Fo%OUT_DIR%/ /link %LIBS% /subsystem:console
9 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/examples/example_sdl_opengl3/build_win32.bat:
--------------------------------------------------------------------------------
1 | @REM Build for Visual Studio compiler. Run your copy of vcvars32.bat or vcvarsall.bat to setup command-line compiler.
2 | @set OUT_DIR=Debug
3 | @set OUT_EXE=example_sdl_opengl3
4 | @set INCLUDES=/I..\.. /I..\..\backends /I%SDL2_DIR%\include
5 | @set SOURCES=main.cpp ..\..\backends\imgui_impl_sdl.cpp ..\..\backends\imgui_impl_opengl3.cpp ..\..\imgui*.cpp
6 | @set LIBS=/LIBPATH:%SDL2_DIR%\lib\x86 SDL2.lib SDL2main.lib opengl32.lib shell32.lib
7 | mkdir %OUT_DIR%
8 | cl /nologo /Zi /MD %INCLUDES% %SOURCES% /Fe%OUT_DIR%/%OUT_EXE%.exe /Fo%OUT_DIR%/ /link %LIBS% /subsystem:console
9 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/misc/debuggers/imgui.gdb:
--------------------------------------------------------------------------------
1 | # GDB configuration to aid debugging experience
2 |
3 | # To enable these customizations edit $HOME/.gdbinit (or ./.gdbinit if local gdbinit is enabled) and add:
4 | # add-auto-load-safe-path /path/to/imgui.gdb
5 | # source /path/to/imgui.gdb
6 | #
7 | # More Information at:
8 | # * https://sourceware.org/gdb/current/onlinedocs/gdb/gdbinit-man.html
9 | # * https://sourceware.org/gdb/current/onlinedocs/gdb/Init-File-in-the-Current-Directory.html#Init-File-in-the-Current-Directory
10 |
11 | # Disable stepping into trivial functions
12 | skip -rfunction Im(Vec2|Vec4|Strv|Vector|Span)::.+
13 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/misc/cpp/README.txt:
--------------------------------------------------------------------------------
1 |
2 | imgui_stdlib.h + imgui_stdlib.cpp
3 | InputText() wrappers for C++ standard library (STL) type: std::string.
4 | This is also an example of how you may wrap your own similar types.
5 |
6 | imgui_scoped.h
7 | [Experimental, not currently in main repository]
8 | Additional header file with some RAII-style wrappers for common Dear ImGui functions.
9 | Try by merging: https://github.com/ocornut/imgui/pull/2197
10 | Discuss at: https://github.com/ocornut/imgui/issues/2096
11 |
12 | See more C++ related extension on Wiki
13 | https://github.com/ocornut/imgui/wiki/Useful-Extensions#cness
14 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/examples/example_emscripten_wgpu/README.md:
--------------------------------------------------------------------------------
1 |
2 | # How to Build
3 |
4 | - 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
5 |
6 | - 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.
7 |
8 | - Then build using `make` while in the `example_emscripten_wgpu/` directory.
9 |
10 | - Requires Emscripten 2.0.10 (December 2020) due to GLFW adaptations
11 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/examples/README.txt:
--------------------------------------------------------------------------------
1 | See BACKENDS and EXAMPLES files in the docs/ folder, or on the web at: https://github.com/ocornut/imgui/tree/master/docs
2 |
3 | Backends = Helper code to facilitate integration with platforms/graphics api (used by Examples + should be used by your app).
4 | Examples = Standalone applications showcasing integration with platforms/graphics api.
5 |
6 | Some Examples have extra README files in their respective directory, please check them too!
7 |
8 | Once Dear ImGui is running (in either examples or your own application/game/engine),
9 | run and refer to ImGui::ShowDemoWindow() in imgui_demo.cpp for the end-user API.
10 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/examples/example_allegro5/imconfig_allegro5.h:
--------------------------------------------------------------------------------
1 | //-----------------------------------------------------------------------------
2 | // COMPILE-TIME OPTIONS FOR DEAR IMGUI ALLEGRO 5 EXAMPLE
3 | // See imconfig.h for the full template
4 | // Because Allegro doesn't support 16-bit vertex indices, we enable the compile-time option of imgui to use 32-bit indices
5 | //-----------------------------------------------------------------------------
6 |
7 | #pragma once
8 |
9 | // Use 32-bit vertex indices because Allegro doesn't support 16-bit ones
10 | // This allows us to avoid converting vertices format at runtime
11 | #define ImDrawIdx int
12 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/feature_request.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Feature request
3 | about: Suggest an idea for this project
4 | title: ''
5 | labels: ''
6 | assignees: ''
7 |
8 | ---
9 |
10 | **Is your feature request related to a problem? Please describe.**
11 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
12 |
13 | **Describe the solution you'd like**
14 | A clear and concise description of what you want to happen.
15 |
16 | **Describe alternatives you've considered**
17 | A clear and concise description of any alternative solutions or features you've considered.
18 |
19 | **Additional context**
20 | Add any other context or screenshots about the feature request here.
21 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/examples/example_win32_directx10/build_win32.bat:
--------------------------------------------------------------------------------
1 | @REM Build for Visual Studio compiler. Run your copy of vcvars32.bat or vcvarsall.bat to setup command-line compiler.
2 | @set OUT_DIR=Debug
3 | @set OUT_EXE=example_win32_directx10
4 | @set INCLUDES=/I..\.. /I..\..\backends /I "%WindowsSdkDir%Include\um" /I "%WindowsSdkDir%Include\shared" /I "%DXSDK_DIR%Include"
5 | @set SOURCES=main.cpp ..\..\backends\imgui_impl_win32.cpp ..\..\backends\imgui_impl_dx10.cpp ..\..\imgui*.cpp
6 | @set LIBS=/LIBPATH:"%DXSDK_DIR%/Lib/x86" d3d10.lib d3dcompiler.lib
7 | mkdir %OUT_DIR%
8 | cl /nologo /Zi /MD %INCLUDES% /D UNICODE /D _UNICODE %SOURCES% /Fe%OUT_DIR%/%OUT_EXE%.exe /Fo%OUT_DIR%/ /link %LIBS%
9 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/examples/example_sdl_vulkan/build_win32.bat:
--------------------------------------------------------------------------------
1 | @REM Build for Visual Studio compiler. Run your copy of vcvars32.bat or vcvarsall.bat to setup command-line compiler.
2 |
3 | @set OUT_EXE=example_sdl_vulkan
4 | @set INCLUDES=/I..\.. /I..\..\backends /I%SDL2_DIR%\include /I %VULKAN_SDK%\include
5 | @set SOURCES=main.cpp ..\..\backends\imgui_impl_sdl.cpp ..\..\backends\imgui_impl_vulkan.cpp ..\..\imgui*.cpp
6 | @set LIBS=/LIBPATH:%SDL2_DIR%\lib\x86 /libpath:%VULKAN_SDK%\lib32 SDL2.lib SDL2main.lib shell32.lib vulkan-1.lib
7 |
8 | @set OUT_DIR=Debug
9 | mkdir %OUT_DIR%
10 | cl /nologo /Zi /MD %INCLUDES% %SOURCES% /Fe%OUT_DIR%/%OUT_EXE%.exe /Fo%OUT_DIR%/ /link %LIBS% /subsystem:console
11 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/examples/example_win32_directx11/build_win32.bat:
--------------------------------------------------------------------------------
1 | @REM Build for Visual Studio compiler. Run your copy of vcvars32.bat or vcvarsall.bat to setup command-line compiler.
2 | @set OUT_DIR=Debug
3 | @set OUT_EXE=example_win32_directx11
4 | @set INCLUDES=/I..\.. /I..\..\backends /I "%WindowsSdkDir%Include\um" /I "%WindowsSdkDir%Include\shared" /I "%DXSDK_DIR%Include"
5 | @set SOURCES=main.cpp ..\..\backends\imgui_impl_dx11.cpp ..\..\backends\imgui_impl_win32.cpp ..\..\imgui*.cpp
6 | @set LIBS=/LIBPATH:"%DXSDK_DIR%/Lib/x86" d3d11.lib d3dcompiler.lib
7 | mkdir %OUT_DIR%
8 | cl /nologo /Zi /MD %INCLUDES% /D UNICODE /D _UNICODE %SOURCES% /Fe%OUT_DIR%/%OUT_EXE%.exe /Fo%OUT_DIR%/ /link %LIBS%
9 |
10 |
--------------------------------------------------------------------------------
/DirectX-Application/c_directx.hpp:
--------------------------------------------------------------------------------
1 | #pragma once
2 | #include "pch.hpp"
3 | class c_directx
4 | {
5 | public:
6 | c_directx(LPCWSTR window_name, LPCWSTR window_class);
7 | static HWND hwnd;
8 | private:
9 |
10 | static LPCWSTR window_name;
11 | static LPCWSTR window_class;
12 | static ID3D11Device* d3d_device;
13 | static ID3D11DeviceContext* d3d_device_context;
14 | static IDXGISwapChain* d3d_swapchain;
15 | static ID3D11RenderTargetView* d3d_main_render_target_view;
16 |
17 | static void initialise();
18 | static bool create_d3d_device();
19 | static void cleanup_d3d_device();
20 | static void create_render_target();
21 | static void cleanup_render_target();
22 |
23 | static LRESULT WINAPI wnd_proc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);
24 | };
25 |
26 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/examples/example_sdl_directx11/build_win32.bat:
--------------------------------------------------------------------------------
1 | @REM Build for Visual Studio compiler. Run your copy of vcvars32.bat or vcvarsall.bat to setup command-line compiler.
2 | @set OUT_DIR=Debug
3 | @set OUT_EXE=example_sdl_directx11
4 | @set INCLUDES=/I..\.. /I..\..\backends /I%SDL2_DIR%\include /I "%WindowsSdkDir%Include\um" /I "%WindowsSdkDir%Include\shared" /I "%DXSDK_DIR%Include"
5 | @set SOURCES=main.cpp ..\..\backends\imgui_impl_sdl.cpp ..\..\backends\imgui_impl_dx11.cpp ..\..\imgui*.cpp
6 | @set LIBS=/LIBPATH:%SDL2_DIR%\lib\x86 SDL2.lib SDL2main.lib /LIBPATH:"%DXSDK_DIR%/Lib/x86" d3d11.lib d3dcompiler.lib shell32.lib
7 | mkdir %OUT_DIR%
8 | cl /nologo /Zi /MD %INCLUDES% %SOURCES% /Fe%OUT_DIR%/%OUT_EXE%.exe /Fo%OUT_DIR%/ /link %LIBS% /subsystem:console
9 |
--------------------------------------------------------------------------------
/DirectX-Application/c_ui_utils.cpp:
--------------------------------------------------------------------------------
1 | #include "c_ui_utils.hpp"
2 |
3 | ImFont* c_ui_utils::load_font(ImFontAtlas& atlas, const char* name, float size, const ImVec2& displayOffset)
4 | {
5 | char* windir = nullptr;
6 | if (_dupenv_s(&windir, nullptr, "WINDIR") || windir == nullptr)
7 | return nullptr;
8 |
9 | static const ImWchar ranges[] =
10 | {
11 | 0x1, 0x1FFFF, //All Ranges
12 | 0
13 | };
14 |
15 | ImFontConfig config;
16 | config.OversampleH = 4;
17 | config.OversampleV = 4;
18 | config.PixelSnapH = false;
19 |
20 | auto path = std::string(windir) + "\\Fonts\\" + name;
21 | auto font = atlas.AddFontFromFileTTF(path.c_str(), size, &config, ranges);
22 |
23 |
24 | free(windir);
25 |
26 | return font;
27 | }
28 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/examples/example_win32_directx12/build_win32.bat:
--------------------------------------------------------------------------------
1 | @REM Build for Visual Studio compiler. Run your copy of vcvars32.bat or vcvarsall.bat to setup command-line compiler.
2 | @REM Important: to build on 32-bit systems, the DX12 backends needs '#define ImTextureID ImU64', so we pass it here.
3 | @set OUT_DIR=Debug
4 | @set OUT_EXE=example_win32_directx12
5 | @set INCLUDES=/I..\.. /I..\..\backends /I "%WindowsSdkDir%Include\um" /I "%WindowsSdkDir%Include\shared"
6 | @set SOURCES=main.cpp ..\..\backends\imgui_impl_dx12.cpp ..\..\backends\imgui_impl_win32.cpp ..\..\imgui*.cpp
7 | @set LIBS=d3d12.lib d3dcompiler.lib dxgi.lib
8 | mkdir Debug
9 | cl /nologo /Zi /MD %INCLUDES% /D ImTextureID=ImU64 /D UNICODE /D _UNICODE %SOURCES% /Fe%OUT_DIR%/%OUT_EXE%.exe /Fo%OUT_DIR%/ /link %LIBS%
10 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/examples/example_glfw_vulkan/build_win64.bat:
--------------------------------------------------------------------------------
1 | @REM Build for Visual Studio compiler. Run your copy of amd64/vcvars32.bat to setup 64-bit command-line compiler.
2 |
3 | @set INCLUDES=/I..\.. /I..\..\backends /I..\libs\glfw\include /I %VULKAN_SDK%\include
4 | @set SOURCES=main.cpp ..\..\backends\imgui_impl_vulkan.cpp ..\..\backends\imgui_impl_glfw.cpp ..\..\imgui*.cpp
5 | @set LIBS=/LIBPATH:..\libs\glfw\lib-vc2010-64 /libpath:%VULKAN_SDK%\lib glfw3.lib opengl32.lib gdi32.lib shell32.lib vulkan-1.lib
6 |
7 | @set OUT_DIR=Debug
8 | mkdir %OUT_DIR%
9 | cl /nologo /Zi /MD %INCLUDES% %SOURCES% /Fe%OUT_DIR%/%OUT_EXE%.exe /Fo%OUT_DIR%/ /link %LIBS%
10 |
11 | @set OUT_DIR=Release
12 | mkdir %OUT_DIR%
13 | cl /nologo /Zi /MD /Ox /Oi %INCLUDES% %SOURCES% /Fe%OUT_DIR%/%OUT_EXE%.exe /Fo%OUT_DIR%/ /link %LIBS%
14 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/examples/example_glfw_vulkan/build_win32.bat:
--------------------------------------------------------------------------------
1 | @REM Build for Visual Studio compiler. Run your copy of vcvars32.bat or vcvarsall.bat to setup command-line compiler.
2 |
3 | @set OUT_EXE=example_glfw_vulkan
4 | @set INCLUDES=/I..\.. /I..\..\backends /I..\libs\glfw\include /I %VULKAN_SDK%\include
5 | @set SOURCES=main.cpp ..\..\backends\imgui_impl_vulkan.cpp ..\..\backends\imgui_impl_glfw.cpp ..\..\imgui*.cpp
6 | @set LIBS=/LIBPATH:..\libs\glfw\lib-vc2010-32 /libpath:%VULKAN_SDK%\lib32 glfw3.lib opengl32.lib gdi32.lib shell32.lib vulkan-1.lib
7 |
8 | @set OUT_DIR=Debug
9 | mkdir %OUT_DIR%
10 | cl /nologo /Zi /MD %INCLUDES% %SOURCES% /Fe%OUT_DIR%/%OUT_EXE%.exe /Fo%OUT_DIR%/ /link %LIBS%
11 |
12 | @set OUT_DIR=Release
13 | mkdir %OUT_DIR%
14 | cl /nologo /Zi /MD /Ox /Oi %INCLUDES% %SOURCES% /Fe%OUT_DIR%/%OUT_EXE%.exe /Fo%OUT_DIR%/ /link %LIBS%
15 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/misc/single_file/imgui_single_file.h:
--------------------------------------------------------------------------------
1 | // dear imgui: single-file wrapper include
2 | // We use this to validate compiling all *.cpp files in a same compilation unit.
3 | // Users of that technique (also called "Unity builds") can generally provide this themselves,
4 | // so we don't really recommend you use this in your projects.
5 |
6 | // Do this:
7 | // #define IMGUI_IMPLEMENTATION
8 | // Before you include this file in *one* C++ file to create the implementation.
9 | // Using this in your project will leak the contents of imgui_internal.h and ImVec2 operators in this compilation unit.
10 | #include "../../imgui.h"
11 |
12 | #ifdef IMGUI_IMPLEMENTATION
13 | #include "../../imgui.cpp"
14 | #include "../../imgui_demo.cpp"
15 | #include "../../imgui_draw.cpp"
16 | #include "../../imgui_tables.cpp"
17 | #include "../../imgui_widgets.cpp"
18 | #endif
19 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/.editorconfig:
--------------------------------------------------------------------------------
1 | # See http://editorconfig.org to read about the EditorConfig format.
2 | # - In theory automatically supported by VS2017+ and most common IDE or text editors.
3 | # - In practice VS2019 stills gets trailing whitespaces wrong :(
4 | # - Suggest install to trim whitespaces: https://marketplace.visualstudio.com/items?itemName=MadsKristensen.TrailingWhitespaceVisualizer
5 | # - Alternative for older VS2010 to VS2015: https://marketplace.visualstudio.com/items?itemName=EditorConfigTeam.EditorConfig
6 |
7 | # top-most EditorConfig file
8 | root = true
9 |
10 | # Default settings:
11 | # Use 4 spaces as indentation
12 | [*]
13 | indent_style = space
14 | indent_size = 4
15 | insert_final_newline = true
16 | trim_trailing_whitespace = true
17 |
18 | [imstb_*]
19 | indent_size = 3
20 | trim_trailing_whitespace = false
21 |
22 | [Makefile]
23 | indent_style = tab
24 | indent_size = 4
25 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/examples/example_marmalade/data/app.icf:
--------------------------------------------------------------------------------
1 | # This file is for configuration settings for your
2 | # application.
3 | #
4 | # The syntax is similar to windows .ini files ie
5 | #
6 | # [GroupName]
7 | # Setting = Value
8 | #
9 | # Which can be read by your application using
10 | # e.g s3eConfigGetString("GroupName", "Setting", string)
11 | #
12 | # All settings must be documented in .config.txt files.
13 | # New settings specific to this application should be
14 | # documented in app.config.txt
15 | #
16 | # Some conditional operations are also permitted, see the
17 | # S3E documentation for details.
18 |
19 | [S3E]
20 | MemSize=6000000
21 | MemSizeDebug=6000000
22 | DispFixRot=FixedLandscape
23 |
24 | # emulate iphone 5 resolution, change these settings to emulate other display resolution
25 | WinWidth=1136
26 | WinHeight=640
27 |
28 | [GX]
29 | DataCacheSize=131070
30 |
31 | [Util]
32 | #MemoryBreakpoint=1282
33 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/examples/example_android_opengl3/android/app/build.gradle:
--------------------------------------------------------------------------------
1 | apply plugin: 'com.android.application'
2 | apply plugin: 'kotlin-android'
3 |
4 | android {
5 | compileSdkVersion 29
6 | buildToolsVersion "30.0.3"
7 | ndkVersion "21.4.7075529"
8 | defaultConfig {
9 | applicationId "imgui.example.android"
10 | minSdkVersion 23
11 | targetSdkVersion 29
12 | versionCode 1
13 | versionName "1.0"
14 | }
15 |
16 | buildTypes {
17 | release {
18 | minifyEnabled false
19 | proguardFiles getDefaultProguardFile('proguard-android-optimize.txt')
20 | }
21 | }
22 |
23 | externalNativeBuild {
24 | cmake {
25 | path "../../CMakeLists.txt"
26 | }
27 | }
28 | }
29 | repositories {
30 | mavenCentral()
31 | }
32 | dependencies {
33 | implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
34 | }
35 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/bug_report.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Bug report
3 | about: Create a report to help us improve
4 | title: ''
5 | labels: ''
6 | assignees: ''
7 |
8 | ---
9 |
10 | **Describe the bug**
11 | A clear and concise description of what the bug is.
12 |
13 | **To Reproduce**
14 | Steps to reproduce the behavior:
15 | 1. Go to '...'
16 | 2. Click on '....'
17 | 3. Scroll down to '....'
18 | 4. See error
19 |
20 | **Expected behavior**
21 | A clear and concise description of what you expected to happen.
22 |
23 | **Screenshots**
24 | If applicable, add screenshots to help explain your problem.
25 |
26 | **Desktop (please complete the following information):**
27 | - OS: [e.g. iOS]
28 | - Browser [e.g. chrome, safari]
29 | - Version [e.g. 22]
30 |
31 | **Smartphone (please complete the following information):**
32 | - Device: [e.g. iPhone6]
33 | - OS: [e.g. iOS8.1]
34 | - Browser [e.g. stock browser, safari]
35 | - Version [e.g. 22]
36 |
37 | **Additional context**
38 | Add any other context about the problem here.
39 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/examples/libs/glfw/COPYING.txt:
--------------------------------------------------------------------------------
1 | Copyright (c) 2002-2006 Marcus Geelnard
2 | Copyright (c) 2006-2010 Camilla Berglund
3 |
4 | This software is provided 'as-is', without any express or implied
5 | warranty. In no event will the authors be held liable for any damages
6 | arising from the use of this software.
7 |
8 | Permission is granted to anyone to use this software for any purpose,
9 | including commercial applications, and to alter it and redistribute it
10 | freely, subject to the following restrictions:
11 |
12 | 1. The origin of this software must not be misrepresented; you must not
13 | claim that you wrote the original software. If you use this software
14 | in a product, an acknowledgment in the product documentation would
15 | be appreciated but is not required.
16 |
17 | 2. Altered source versions must be plainly marked as such, and must not
18 | be misrepresented as being the original software.
19 |
20 | 3. This notice may not be removed or altered from any source
21 | distribution.
22 |
23 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/examples/example_marmalade/marmalade_example.mkb:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env mkb
2 |
3 | # ImGui - standalone example application for Marmalade
4 | # Copyright (C) 2015 by Giovanni Zito
5 | # This file is part of ImGui
6 | # https://github.com/ocornut/imgui
7 |
8 | define IMGUI_DISABLE_INCLUDE_IMCONFIG_H
9 | define IMGUI_DISABLE_WIN32_DEFAULT_CLIPBOARD_FUNCS
10 | define IMGUI_DISABLE_WIN32_DEFAULT_IME_FUNCS
11 | define _snprintf=snprintf
12 |
13 | options
14 | {
15 | optimise-speed=1
16 | }
17 |
18 | includepaths
19 | {
20 | ../..
21 | ../../backends
22 | }
23 |
24 | subprojects
25 | {
26 | iwgx
27 | }
28 |
29 | files
30 | {
31 | (.)
32 | ["imgui"]
33 | ../../imgui.cpp
34 | ../../imgui_demo.cpp
35 | ../../imgui_draw.cpp
36 | ../../imgui_tables.cpp
37 | ../../imgui_widgets.cpp
38 | ../../imconfig.h
39 | ../../imgui.h
40 | ../../imgui_internal.h
41 |
42 | ["imgui","Marmalade backend"]
43 | ../../backends/imgui_impl_marmalade.h
44 | ../../backends/imgui_impl_marmalade.cpp
45 | main.cpp
46 |
47 | }
48 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/examples/example_android_opengl3/android/app/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
10 |
11 |
15 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/misc/README.txt:
--------------------------------------------------------------------------------
1 |
2 | misc/cpp/
3 | InputText() wrappers for C++ standard library (STL) type: std::string.
4 | This is also an example of how you may wrap your own similar types.
5 |
6 | misc/debuggers/
7 | Helper files for popular debuggers.
8 | With the .natvis file, types like ImVector<> will be displayed nicely in Visual Studio debugger.
9 |
10 | misc/fonts/
11 | Fonts loading/merging instructions (e.g. How to handle glyph ranges, how to merge icons fonts).
12 | Command line tool "binary_to_compressed_c" to create compressed arrays to embed data in source code.
13 | Suggested fonts and links.
14 |
15 | misc/freetype/
16 | Font atlas builder/rasterizer using FreeType instead of stb_truetype.
17 | Benefit from better FreeType rasterization, in particular for small fonts.
18 |
19 | misc/single_file/
20 | Single-file header stub.
21 | We use this to validate compiling all *.cpp files in a same compilation unit.
22 | Users of that technique (also called "Unity builds") can generally provide this themselves,
23 | so we don't really recommend you use this in your projects.
24 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/examples/example_apple_metal/macOS/Info-macOS.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | $(DEVELOPMENT_LANGUAGE)
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIconFile
10 |
11 | CFBundleIdentifier
12 | $(PRODUCT_BUNDLE_IDENTIFIER)
13 | CFBundleInfoDictionaryVersion
14 | 6.0
15 | CFBundleName
16 | imgui
17 | CFBundlePackageType
18 | APPL
19 | CFBundleShortVersionString
20 | 1.0
21 | CFBundleVersion
22 | 1
23 | LSMinimumSystemVersion
24 | $(MACOSX_DEPLOYMENT_TARGET)
25 | NSMainStoryboardFile
26 | MainMenu
27 | NSPrincipalClass
28 | NSApplication
29 |
30 |
31 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2021 Argon Projects
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/LICENSE.txt:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2014-2021 Omar Cornut
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/.gitignore:
--------------------------------------------------------------------------------
1 | ## OSX artifacts
2 | .DS_Store
3 |
4 | ## Dear ImGui artifacts
5 | imgui.ini
6 |
7 | ## General build artifacts
8 | *.o
9 | *.obj
10 | *.exe
11 | examples/build/*
12 | examples/*/Debug/*
13 | examples/*/Release/*
14 | examples/*/x64/*
15 |
16 | ## Visual Studio artifacts
17 | .vs
18 | ipch
19 | *.opensdf
20 | *.log
21 | *.pdb
22 | *.ilk
23 | *.user
24 | *.sdf
25 | *.suo
26 | *.VC.db
27 | *.VC.VC.opendb
28 |
29 | ## Commonly used CMake directories
30 | /build*/
31 |
32 | ## Xcode artifacts
33 | project.xcworkspace
34 | xcuserdata
35 |
36 | ## Emscripten artifacts
37 | examples/*.o.tmp
38 | examples/*.out.js
39 | examples/*.out.wasm
40 | examples/example_emscripten_opengl3/web/*
41 | examples/example_emscripten_wgpu/web/*
42 |
43 | ## JetBrains IDE artifacts
44 | .idea
45 | cmake-build-*
46 |
47 | ## Unix executables from our example Makefiles
48 | examples/example_glfw_opengl2/example_glfw_opengl2
49 | examples/example_glfw_opengl3/example_glfw_opengl3
50 | examples/example_glut_opengl2/example_glut_opengl2
51 | examples/example_null/example_null
52 | examples/example_sdl_opengl2/example_sdl_opengl2
53 | examples/example_sdl_opengl3/example_sdl_opengl3
54 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/examples/example_null/main.cpp:
--------------------------------------------------------------------------------
1 | // dear imgui: "null" example application
2 | // (compile and link imgui, create context, run headless with NO INPUTS, NO GRAPHICS OUTPUT)
3 | // This is useful to test building, but you cannot interact with anything here!
4 | #include "imgui.h"
5 | #include
6 |
7 | int main(int, char**)
8 | {
9 | IMGUI_CHECKVERSION();
10 | ImGui::CreateContext();
11 | ImGuiIO& io = ImGui::GetIO();
12 |
13 | // Build atlas
14 | unsigned char* tex_pixels = NULL;
15 | int tex_w, tex_h;
16 | io.Fonts->GetTexDataAsRGBA32(&tex_pixels, &tex_w, &tex_h);
17 |
18 | for (int n = 0; n < 20; n++)
19 | {
20 | printf("NewFrame() %d\n", n);
21 | io.DisplaySize = ImVec2(1920, 1080);
22 | io.DeltaTime = 1.0f / 60.0f;
23 | ImGui::NewFrame();
24 |
25 | static float f = 0.0f;
26 | ImGui::Text("Hello, world!");
27 | ImGui::SliderFloat("float", &f, 0.0f, 1.0f);
28 | ImGui::Text("Application average %.3f ms/frame (%.1f FPS)", 1000.0f / io.Framerate, io.Framerate);
29 | ImGui::ShowDemoWindow(NULL);
30 |
31 | ImGui::Render();
32 | }
33 |
34 | printf("DestroyContext()\n");
35 | ImGui::DestroyContext();
36 | return 0;
37 | }
38 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/misc/cpp/imgui_stdlib.h:
--------------------------------------------------------------------------------
1 | // dear imgui: wrappers for C++ standard library (STL) types (std::string, etc.)
2 | // This is also an example of how you may wrap your own similar types.
3 |
4 | // Compatibility:
5 | // - std::string support is only guaranteed to work from C++11.
6 | // If you try to use it pre-C++11, please share your findings (w/ info about compiler/architecture)
7 |
8 | // Changelog:
9 | // - v0.10: Initial version. Added InputText() / InputTextMultiline() calls with std::string
10 |
11 | #pragma once
12 |
13 | #include
14 |
15 | namespace ImGui
16 | {
17 | // ImGui::InputText() with std::string
18 | // Because text input needs dynamic resizing, we need to setup a callback to grow the capacity
19 | IMGUI_API bool InputText(const char* label, std::string* str, ImGuiInputTextFlags flags = 0, ImGuiInputTextCallback callback = NULL, void* user_data = NULL);
20 | IMGUI_API bool InputTextMultiline(const char* label, std::string* str, const ImVec2& size = ImVec2(0, 0), ImGuiInputTextFlags flags = 0, ImGuiInputTextCallback callback = NULL, void* user_data = NULL);
21 | IMGUI_API bool InputTextWithHint(const char* label, const char* hint, std::string* str, ImGuiInputTextFlags flags = 0, ImGuiInputTextCallback callback = NULL, void* user_data = NULL);
22 | }
23 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/examples/example_android_opengl3/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | cmake_minimum_required(VERSION 3.6)
2 |
3 | project(ImGuiExample)
4 |
5 | set(CMAKE_CXX_STANDARD 11)
6 | set(CMAKE_CXX_STANDARD_REQUIRED ON)
7 | set(CMAKE_CXX_EXTENSIONS OFF)
8 |
9 | add_library(${CMAKE_PROJECT_NAME} SHARED
10 | ${CMAKE_CURRENT_SOURCE_DIR}/main.cpp
11 | ${CMAKE_CURRENT_SOURCE_DIR}/../../imgui.cpp
12 | ${CMAKE_CURRENT_SOURCE_DIR}/../../imgui_demo.cpp
13 | ${CMAKE_CURRENT_SOURCE_DIR}/../../imgui_draw.cpp
14 | ${CMAKE_CURRENT_SOURCE_DIR}/../../imgui_tables.cpp
15 | ${CMAKE_CURRENT_SOURCE_DIR}/../../imgui_widgets.cpp
16 | ${CMAKE_CURRENT_SOURCE_DIR}/../../backends/imgui_impl_android.cpp
17 | ${CMAKE_CURRENT_SOURCE_DIR}/../../backends/imgui_impl_opengl3.cpp
18 | ${ANDROID_NDK}/sources/android/native_app_glue/android_native_app_glue.c
19 | )
20 |
21 | set(CMAKE_SHARED_LINKER_FLAGS
22 | "${CMAKE_SHARED_LINKER_FLAGS} -u ANativeActivity_onCreate"
23 | )
24 |
25 | target_compile_definitions(${CMAKE_PROJECT_NAME} PRIVATE
26 | IMGUI_IMPL_OPENGL_ES3
27 | )
28 |
29 | target_include_directories(${CMAKE_PROJECT_NAME} PRIVATE
30 | ${CMAKE_CURRENT_SOURCE_DIR}/../..
31 | ${CMAKE_CURRENT_SOURCE_DIR}/../../backends
32 | ${ANDROID_NDK}/sources/android/native_app_glue
33 | )
34 |
35 | target_link_libraries(${CMAKE_PROJECT_NAME} PRIVATE
36 | android
37 | EGL
38 | GLESv3
39 | log
40 | )
41 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/misc/debuggers/imgui.natstepfilter:
--------------------------------------------------------------------------------
1 |
2 |
17 |
18 |
19 |
20 |
21 |
22 | (ImVec2|ImVec4|ImStrv)::.+
23 | NoStepInto
24 |
25 |
26 | (ImVector|ImSpan).*::operator.+
27 | NoStepInto
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/examples/example_glfw_metal/Makefile:
--------------------------------------------------------------------------------
1 | #
2 | # You will need GLFW (http://www.glfw.org):
3 | # brew install glfw
4 | #
5 |
6 | #CXX = g++
7 | #CXX = clang++
8 |
9 | EXE = example_glfw_metal
10 | IMGUI_DIR = ../..
11 | SOURCES = main.mm
12 | 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
13 | SOURCES += $(IMGUI_DIR)/backends/imgui_impl_glfw.cpp $(IMGUI_DIR)/backends/imgui_impl_metal.mm
14 | OBJS = $(addsuffix .o, $(basename $(notdir $(SOURCES))))
15 |
16 | LIBS = -framework Metal -framework MetalKit -framework Cocoa -framework IOKit -framework CoreVideo -framework QuartzCore
17 | LIBS += -L/usr/local/lib -L/opt/homebrew/lib
18 | LIBS += -lglfw
19 |
20 | CXXFLAGS = -I$(IMGUI_DIR) -I$(IMGUI_DIR)/backends -I/usr/local/include -I/opt/homebrew/include
21 | CXXFLAGS += -Wall -Wformat
22 | CFLAGS = $(CXXFLAGS)
23 |
24 | %.o:%.cpp
25 | $(CXX) $(CXXFLAGS) -c -o $@ $<
26 |
27 | %.o:$(IMGUI_DIR)/%.cpp
28 | $(CXX) $(CXXFLAGS) -c -o $@ $<
29 |
30 | %.o:$(IMGUI_DIR)/backends/%.cpp
31 | $(CXX) $(CXXFLAGS) -c -o $@ $<
32 |
33 | %.o:%.mm
34 | $(CXX) $(CXXFLAGS) -ObjC++ -fobjc-weak -fobjc-arc -c -o $@ $<
35 |
36 | %.o:$(IMGUI_DIR)/backends/%.mm
37 | $(CXX) $(CXXFLAGS) -ObjC++ -fobjc-weak -fobjc-arc -c -o $@ $<
38 |
39 | all: $(EXE)
40 | @echo Build complete
41 |
42 | $(EXE): $(OBJS)
43 | $(CXX) -o $@ $^ $(CXXFLAGS) $(LIBS)
44 |
45 | clean:
46 | rm -f $(EXE) $(OBJS)
47 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/examples/example_sdl_metal/Makefile:
--------------------------------------------------------------------------------
1 | #
2 | # You will need SDL2 (http://www.libsdl.org):
3 | # brew install sdl2
4 | #
5 |
6 | #CXX = g++
7 | #CXX = clang++
8 |
9 | EXE = example_sdl_metal
10 | IMGUI_DIR = ../..
11 | SOURCES = main.mm
12 | 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
13 | SOURCES += $(IMGUI_DIR)/backends/imgui_impl_sdl.cpp $(IMGUI_DIR)/backends/imgui_impl_metal.mm
14 | OBJS = $(addsuffix .o, $(basename $(notdir $(SOURCES))))
15 |
16 | LIBS = -framework Metal -framework MetalKit -framework Cocoa -framework IOKit -framework CoreVideo -framework QuartzCore
17 | LIBS += `sdl2-config --libs`
18 | LIBS += -L/usr/local/lib
19 |
20 | CXXFLAGS = -I$(IMGUI_DIR) -I$(IMGUI_DIR)/backends -I/usr/local/include
21 | CXXFLAGS += `sdl2-config --cflags`
22 | CXXFLAGS += -Wall -Wformat
23 | CFLAGS = $(CXXFLAGS)
24 |
25 | %.o:%.cpp
26 | $(CXX) $(CXXFLAGS) -c -o $@ $<
27 |
28 | %.o:$(IMGUI_DIR)/%.cpp
29 | $(CXX) $(CXXFLAGS) -c -o $@ $<
30 |
31 | %.o:$(IMGUI_DIR)/backends/%.cpp
32 | $(CXX) $(CXXFLAGS) -c -o $@ $<
33 |
34 | %.o:%.mm
35 | $(CXX) $(CXXFLAGS) -ObjC++ -fobjc-weak -fobjc-arc -c -o $@ $<
36 |
37 | %.o:$(IMGUI_DIR)/backends/%.mm
38 | $(CXX) $(CXXFLAGS) -ObjC++ -fobjc-weak -fobjc-arc -c -o $@ $<
39 |
40 | all: $(EXE)
41 | @echo Build complete
42 |
43 | $(EXE): $(OBJS)
44 | $(CXX) -o $@ $^ $(CXXFLAGS) $(LIBS)
45 |
46 | clean:
47 | rm -f $(EXE) $(OBJS)
48 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/backends/imgui_impl_dx9.h:
--------------------------------------------------------------------------------
1 | // dear imgui: Renderer Backend for DirectX9
2 | // This needs to be used along with a Platform Backend (e.g. Win32)
3 |
4 | // Implemented features:
5 | // [X] Renderer: User texture binding. Use 'LPDIRECT3DTEXTURE9' as ImTextureID. Read the FAQ about ImTextureID!
6 | // [X] Renderer: Multi-viewport support. Enable with 'io.ConfigFlags |= ImGuiConfigFlags_ViewportsEnable'.
7 | // [X] Renderer: Support for large meshes (64k+ vertices) with 16-bit indices.
8 |
9 | // You can use unmodified imgui_impl_* files in your project. See examples/ folder for examples of using this.
10 | // Prefer including the entire imgui/ repository into your project (either as a copy or as a submodule), and only build the backends you need.
11 | // If you are new to Dear ImGui, read documentation from the docs/ folder + read the top of imgui.cpp.
12 | // Read online: https://github.com/ocornut/imgui/tree/master/docs
13 |
14 | #pragma once
15 | #include "imgui.h" // IMGUI_IMPL_API
16 |
17 | struct IDirect3DDevice9;
18 |
19 | IMGUI_IMPL_API bool ImGui_ImplDX9_Init(IDirect3DDevice9* device);
20 | IMGUI_IMPL_API void ImGui_ImplDX9_Shutdown();
21 | IMGUI_IMPL_API void ImGui_ImplDX9_NewFrame();
22 | IMGUI_IMPL_API void ImGui_ImplDX9_RenderDrawData(ImDrawData* draw_data);
23 |
24 | // Use if you want to reset your rendering device without losing Dear ImGui state.
25 | IMGUI_IMPL_API bool ImGui_ImplDX9_CreateDeviceObjects();
26 | IMGUI_IMPL_API void ImGui_ImplDX9_InvalidateDeviceObjects();
27 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/backends/imgui_impl_dx10.h:
--------------------------------------------------------------------------------
1 | // dear imgui: Renderer Backend for DirectX10
2 | // This needs to be used along with a Platform Backend (e.g. Win32)
3 |
4 | // Implemented features:
5 | // [X] Renderer: User texture binding. Use 'ID3D10ShaderResourceView*' as ImTextureID. Read the FAQ about ImTextureID!
6 | // [X] Renderer: Multi-viewport support. Enable with 'io.ConfigFlags |= ImGuiConfigFlags_ViewportsEnable'.
7 | // [X] Renderer: Support for large meshes (64k+ vertices) with 16-bit indices.
8 |
9 | // You can use unmodified imgui_impl_* files in your project. See examples/ folder for examples of using this.
10 | // Prefer including the entire imgui/ repository into your project (either as a copy or as a submodule), and only build the backends you need.
11 | // If you are new to Dear ImGui, read documentation from the docs/ folder + read the top of imgui.cpp.
12 | // Read online: https://github.com/ocornut/imgui/tree/master/docs
13 |
14 | #pragma once
15 | #include "imgui.h" // IMGUI_IMPL_API
16 |
17 | struct ID3D10Device;
18 |
19 | IMGUI_IMPL_API bool ImGui_ImplDX10_Init(ID3D10Device* device);
20 | IMGUI_IMPL_API void ImGui_ImplDX10_Shutdown();
21 | IMGUI_IMPL_API void ImGui_ImplDX10_NewFrame();
22 | IMGUI_IMPL_API void ImGui_ImplDX10_RenderDrawData(ImDrawData* draw_data);
23 |
24 | // Use if you want to reset your rendering device without losing Dear ImGui state.
25 | IMGUI_IMPL_API void ImGui_ImplDX10_InvalidateDeviceObjects();
26 | IMGUI_IMPL_API bool ImGui_ImplDX10_CreateDeviceObjects();
27 |
--------------------------------------------------------------------------------
/DirectX-Application.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio Version 17
4 | VisualStudioVersion = 17.0.31521.260
5 | MinimumVisualStudioVersion = 10.0.40219.1
6 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DirectX-Application", "DirectX-Application\DirectX-Application.vcxproj", "{65FDB87E-A47A-4A62-9AC9-94435D7A2C97}"
7 | EndProject
8 | Global
9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
10 | Debug|x64 = Debug|x64
11 | Debug|x86 = Debug|x86
12 | Release|x64 = Release|x64
13 | Release|x86 = Release|x86
14 | EndGlobalSection
15 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
16 | {65FDB87E-A47A-4A62-9AC9-94435D7A2C97}.Debug|x64.ActiveCfg = Debug|x64
17 | {65FDB87E-A47A-4A62-9AC9-94435D7A2C97}.Debug|x64.Build.0 = Debug|x64
18 | {65FDB87E-A47A-4A62-9AC9-94435D7A2C97}.Debug|x86.ActiveCfg = Debug|Win32
19 | {65FDB87E-A47A-4A62-9AC9-94435D7A2C97}.Debug|x86.Build.0 = Debug|Win32
20 | {65FDB87E-A47A-4A62-9AC9-94435D7A2C97}.Release|x64.ActiveCfg = Release|x64
21 | {65FDB87E-A47A-4A62-9AC9-94435D7A2C97}.Release|x64.Build.0 = Release|x64
22 | {65FDB87E-A47A-4A62-9AC9-94435D7A2C97}.Release|x86.ActiveCfg = Release|Win32
23 | {65FDB87E-A47A-4A62-9AC9-94435D7A2C97}.Release|x86.Build.0 = Release|Win32
24 | EndGlobalSection
25 | GlobalSection(SolutionProperties) = preSolution
26 | HideSolutionNode = FALSE
27 | EndGlobalSection
28 | GlobalSection(ExtensibilityGlobals) = postSolution
29 | SolutionGuid = {7D629700-883B-4BA1-ABE9-B35ABF8C936B}
30 | EndGlobalSection
31 | EndGlobal
32 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/backends/imgui_impl_wgpu.h:
--------------------------------------------------------------------------------
1 | // dear imgui: Renderer for WebGPU
2 | // This needs to be used along with a Platform Binding (e.g. GLFW)
3 | // (Please note that WebGPU is currently experimental, will not run on non-beta browsers, and may break.)
4 |
5 | // Implemented features:
6 | // [X] Renderer: User texture binding. Use 'WGPUTextureView' as ImTextureID. Read the FAQ about ImTextureID!
7 | // [X] Renderer: Support for large meshes (64k+ vertices) with 16-bit indices.
8 |
9 | // You can use unmodified imgui_impl_* files in your project. See examples/ folder for examples of using this.
10 | // Prefer including the entire imgui/ repository into your project (either as a copy or as a submodule), and only build the backends you need.
11 | // If you are new to Dear ImGui, read documentation from the docs/ folder + read the top of imgui.cpp.
12 | // Read online: https://github.com/ocornut/imgui/tree/master/docs
13 |
14 | #pragma once
15 | #include "imgui.h" // IMGUI_IMPL_API
16 | #include
17 |
18 | IMGUI_IMPL_API bool ImGui_ImplWGPU_Init(WGPUDevice device, int num_frames_in_flight, WGPUTextureFormat rt_format);
19 | IMGUI_IMPL_API void ImGui_ImplWGPU_Shutdown();
20 | IMGUI_IMPL_API void ImGui_ImplWGPU_NewFrame();
21 | IMGUI_IMPL_API void ImGui_ImplWGPU_RenderDrawData(ImDrawData* draw_data, WGPURenderPassEncoder pass_encoder);
22 |
23 | // Use if you want to reset your rendering device without losing Dear ImGui state.
24 | IMGUI_IMPL_API void ImGui_ImplWGPU_InvalidateDeviceObjects();
25 | IMGUI_IMPL_API bool ImGui_ImplWGPU_CreateDeviceObjects();
26 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/backends/imgui_impl_osx.h:
--------------------------------------------------------------------------------
1 | // dear imgui: Platform Backend for OSX / Cocoa
2 | // This needs to be used along with a Renderer (e.g. OpenGL2, OpenGL3, Vulkan, Metal..)
3 | // [ALPHA] Early backend, not well tested. If you want a portable application, prefer using the GLFW or SDL platform Backends on Mac.
4 |
5 | // Implemented features:
6 | // [X] Platform: Mouse cursor shape and visibility. Disable with 'io.ConfigFlags |= ImGuiConfigFlags_NoMouseCursorChange'.
7 | // [X] Platform: OSX clipboard is supported within core Dear ImGui (no specific code in this backend).
8 | // Issues:
9 | // [ ] Platform: Keys are all generally very broken. Best using [event keycode] and not [event characters]..
10 | // [ ] Platform: Multi-viewport / platform windows.
11 |
12 | // You can use unmodified imgui_impl_* files in your project. See examples/ folder for examples of using this.
13 | // Prefer including the entire imgui/ repository into your project (either as a copy or as a submodule), and only build the backends you need.
14 | // If you are new to Dear ImGui, read documentation from the docs/ folder + read the top of imgui.cpp.
15 | // Read online: https://github.com/ocornut/imgui/tree/master/docs
16 |
17 | #include "imgui.h" // IMGUI_IMPL_API
18 |
19 | @class NSEvent;
20 | @class NSView;
21 |
22 | IMGUI_IMPL_API bool ImGui_ImplOSX_Init();
23 | IMGUI_IMPL_API void ImGui_ImplOSX_Shutdown();
24 | IMGUI_IMPL_API void ImGui_ImplOSX_NewFrame(NSView* _Nullable view);
25 | IMGUI_IMPL_API bool ImGui_ImplOSX_HandleEvent(NSEvent* _Nonnull event, NSView* _Nullable view);
26 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/examples/example_sdl_opengl2/README.md:
--------------------------------------------------------------------------------
1 |
2 | # How to Build
3 |
4 | - On Windows with Visual Studio's IDE
5 |
6 | Use the provided project file (.vcxproj). Add to solution (imgui_examples.sln) if necessary.
7 |
8 | - On Windows with Visual Studio's CLI
9 |
10 | ```
11 | set SDL2_DIR=path_to_your_sdl2_folder
12 | cl /Zi /MD /I.. /I..\.. /I%SDL2_DIR%\include main.cpp ..\..\backends\imgui_impl_sdl.cpp ..\..\backends\imgui_impl_opengl2.cpp ..\..\imgui*.cpp /FeDebug/example_sdl_opengl2.exe /FoDebug/ /link /libpath:%SDL2_DIR%\lib\x86 SDL2.lib SDL2main.lib opengl32.lib /subsystem:console
13 | # ^^ include paths ^^ source files ^^ output exe ^^ output dir ^^ libraries
14 | # or for 64-bit:
15 | cl /Zi /MD /I.. /I..\.. /I%SDL2_DIR%\include main.cpp ..\..\backends\imgui_impl_sdl.cpp ..\..\backends\imgui_impl_opengl2.cpp ..\..\imgui*.cpp /FeDebug/example_sdl_opengl2.exe /FoDebug/ /link /libpath:%SDL2_DIR%\lib\x64 SDL2.lib SDL2main.lib opengl32.lib /subsystem:console
16 | ```
17 |
18 | - On Linux and similar Unixes
19 |
20 | ```
21 | c++ `sdl2-config --cflags` -I .. -I ../.. -I ../../backends main.cpp ../../backends/imgui_impl_sdl.cpp ../../backends/imgui_impl_opengl2.cpp ../../imgui*.cpp `sdl2-config --libs` -lGL
22 | ```
23 |
24 | - On Mac OS X
25 |
26 | ```
27 | brew install sdl2
28 | c++ `sdl2-config --cflags` -I .. -I ../.. -I ../../backends main.cpp ../../backends/imgui_impl_sdl.cpp ../../backends/imgui_impl_opengl2.cpp ../../imgui*.cpp `sdl2-config --libs` -framework OpenGl
29 | ```
30 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/imgui_impl_dx11.h:
--------------------------------------------------------------------------------
1 | // dear imgui: Renderer Backend for DirectX11
2 | // This needs to be used along with a Platform Backend (e.g. Win32)
3 |
4 | // Implemented features:
5 | // [X] Renderer: User texture binding. Use 'ID3D11ShaderResourceView*' as ImTextureID. Read the FAQ about ImTextureID!
6 | // [X] Renderer: Multi-viewport support. Enable with 'io.ConfigFlags |= ImGuiConfigFlags_ViewportsEnable'.
7 | // [X] Renderer: Support for large meshes (64k+ vertices) with 16-bit indices.
8 |
9 | // You can use unmodified imgui_impl_* files in your project. See examples/ folder for examples of using this.
10 | // Prefer including the entire imgui/ repository into your project (either as a copy or as a submodule), and only build the backends you need.
11 | // If you are new to Dear ImGui, read documentation from the docs/ folder + read the top of imgui.cpp.
12 | // Read online: https://github.com/ocornut/imgui/tree/master/docs
13 |
14 | #pragma once
15 | #include "imgui.h" // IMGUI_IMPL_API
16 |
17 | struct ID3D11Device;
18 | struct ID3D11DeviceContext;
19 |
20 | IMGUI_IMPL_API bool ImGui_ImplDX11_Init(ID3D11Device* device, ID3D11DeviceContext* device_context);
21 | IMGUI_IMPL_API void ImGui_ImplDX11_Shutdown();
22 | IMGUI_IMPL_API void ImGui_ImplDX11_NewFrame();
23 | IMGUI_IMPL_API void ImGui_ImplDX11_RenderDrawData(ImDrawData* draw_data);
24 |
25 | // Use if you want to reset your rendering device without losing Dear ImGui state.
26 | IMGUI_IMPL_API void ImGui_ImplDX11_InvalidateDeviceObjects();
27 | IMGUI_IMPL_API bool ImGui_ImplDX11_CreateDeviceObjects();
28 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/backends/imgui_impl_dx11.h:
--------------------------------------------------------------------------------
1 | // dear imgui: Renderer Backend for DirectX11
2 | // This needs to be used along with a Platform Backend (e.g. Win32)
3 |
4 | // Implemented features:
5 | // [X] Renderer: User texture binding. Use 'ID3D11ShaderResourceView*' as ImTextureID. Read the FAQ about ImTextureID!
6 | // [X] Renderer: Multi-viewport support. Enable with 'io.ConfigFlags |= ImGuiConfigFlags_ViewportsEnable'.
7 | // [X] Renderer: Support for large meshes (64k+ vertices) with 16-bit indices.
8 |
9 | // You can use unmodified imgui_impl_* files in your project. See examples/ folder for examples of using this.
10 | // Prefer including the entire imgui/ repository into your project (either as a copy or as a submodule), and only build the backends you need.
11 | // If you are new to Dear ImGui, read documentation from the docs/ folder + read the top of imgui.cpp.
12 | // Read online: https://github.com/ocornut/imgui/tree/master/docs
13 |
14 | #pragma once
15 | #include "imgui.h" // IMGUI_IMPL_API
16 |
17 | struct ID3D11Device;
18 | struct ID3D11DeviceContext;
19 |
20 | IMGUI_IMPL_API bool ImGui_ImplDX11_Init(ID3D11Device* device, ID3D11DeviceContext* device_context);
21 | IMGUI_IMPL_API void ImGui_ImplDX11_Shutdown();
22 | IMGUI_IMPL_API void ImGui_ImplDX11_NewFrame();
23 | IMGUI_IMPL_API void ImGui_ImplDX11_RenderDrawData(ImDrawData* draw_data);
24 |
25 | // Use if you want to reset your rendering device without losing Dear ImGui state.
26 | IMGUI_IMPL_API void ImGui_ImplDX11_InvalidateDeviceObjects();
27 | IMGUI_IMPL_API bool ImGui_ImplDX11_CreateDeviceObjects();
28 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/examples/example_sdl_opengl3/README.md:
--------------------------------------------------------------------------------
1 |
2 | # How to Build
3 |
4 | - On Windows with Visual Studio's IDE
5 |
6 | Use the provided project file (.vcxproj). Add to solution (imgui_examples.sln) if necessary.
7 |
8 | - On Windows with Visual Studio's CLI
9 |
10 | ```
11 | set SDL2_DIR=path_to_your_sdl2_folder
12 | cl /Zi /MD /I.. /I..\.. /I%SDL2_DIR%\include main.cpp ..\..\backends\imgui_impl_sdl.cpp ..\..\backends\imgui_impl_opengl3.cpp ..\..\imgui*.cpp /FeDebug/example_sdl_opengl3.exe /FoDebug/ /link /libpath:%SDL2_DIR%\lib\x86 SDL2.lib SDL2main.lib opengl32.lib /subsystem:console
13 | # ^^ include paths ^^ source files ^^ output exe ^^ output dir ^^ libraries
14 | # or for 64-bit:
15 | cl /Zi /MD /I.. /I..\.. /I%SDL2_DIR%\include main.cpp ..\..\backends\imgui_impl_sdl.cpp ..\..\backends\imgui_impl_opengl3.cpp ..\..\imgui*.cpp /FeDebug/example_sdl_opengl3.exe /FoDebug/ /link /libpath:%SDL2_DIR%\lib\x64 SDL2.lib SDL2main.lib opengl32.lib /subsystem:console
16 | ```
17 |
18 | - On Linux and similar Unixes
19 |
20 | ```
21 | c++ `sdl2-config --cflags` -I .. -I ../.. -I ../../backends main.cpp ../../backends/imgui_impl_sdl.cpp ../../backends/imgui_impl_opengl3.cpp ../../imgui*.cpp `sdl2-config --libs` -lGL -ldl
22 | ```
23 |
24 | - On Mac OS X
25 |
26 | ```
27 | brew install sdl2
28 | c++ `sdl2-config --cflags` -I .. -I ../.. -I ../../backends main.cpp ../../backends/imgui_impl_sdl.cpp ../../backends/imgui_impl_opengl3.cpp ../../imgui*.cpp `sdl2-config --libs` -framework OpenGl -framework CoreFoundation
29 | ```
30 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/backends/imgui_impl_android.h:
--------------------------------------------------------------------------------
1 | // dear imgui: Platform Binding for Android native app
2 | // This needs to be used along with the OpenGL 3 Renderer (imgui_impl_opengl3)
3 |
4 | // Implemented features:
5 | // [X] Platform: Keyboard arrays indexed using AKEYCODE_* codes, e.g. ImGui::IsKeyPressed(AKEYCODE_SPACE).
6 | // Missing features:
7 | // [ ] Platform: Clipboard support.
8 | // [ ] Platform: Gamepad support. Enable with 'io.ConfigFlags |= ImGuiConfigFlags_NavEnableGamepad'.
9 | // [ ] Platform: Mouse cursor shape and visibility. Disable with 'io.ConfigFlags |= ImGuiConfigFlags_NoMouseCursorChange'. FIXME: Check if this is even possible with Android.
10 | // Important:
11 | // - FIXME: On-screen keyboard currently needs to be enabled by the application (see examples/ and issue #3446)
12 | // - FIXME: Unicode character inputs needs to be passed by Dear ImGui by the application (see examples/ and issue #3446)
13 |
14 | // You can use unmodified imgui_impl_* files in your project. See examples/ folder for examples of using this.
15 | // Prefer including the entire imgui/ repository into your project (either as a copy or as a submodule), and only build the backends you need.
16 | // If you are new to Dear ImGui, read documentation from the docs/ folder + read the top of imgui.cpp.
17 | // Read online: https://github.com/ocornut/imgui/tree/master/docs
18 |
19 | #pragma once
20 |
21 | struct ANativeWindow;
22 | struct AInputEvent;
23 |
24 | IMGUI_IMPL_API bool ImGui_ImplAndroid_Init(ANativeWindow* window);
25 | IMGUI_IMPL_API int32_t ImGui_ImplAndroid_HandleInputEvent(AInputEvent* input_event);
26 | IMGUI_IMPL_API void ImGui_ImplAndroid_Shutdown();
27 | IMGUI_IMPL_API void ImGui_ImplAndroid_NewFrame();
28 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/examples/example_android_opengl3/android/app/src/main/java/MainActivity.kt:
--------------------------------------------------------------------------------
1 | package imgui.example.android
2 |
3 | import android.app.NativeActivity
4 | import android.os.Bundle
5 | import android.content.Context
6 | import android.view.inputmethod.InputMethodManager
7 | import android.view.KeyEvent
8 | import java.util.concurrent.LinkedBlockingQueue
9 |
10 | class MainActivity : NativeActivity() {
11 | public override fun onCreate(savedInstanceState: Bundle?) {
12 | super.onCreate(savedInstanceState)
13 | }
14 |
15 | fun showSoftInput() {
16 | val inputMethodManager = getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
17 | inputMethodManager.showSoftInput(this.window.decorView, 0)
18 | }
19 |
20 | fun hideSoftInput() {
21 | val inputMethodManager = getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
22 | inputMethodManager.hideSoftInputFromWindow(this.window.decorView.windowToken, 0)
23 | }
24 |
25 | // Queue for the Unicode characters to be polled from native code (via pollUnicodeChar())
26 | private var unicodeCharacterQueue: LinkedBlockingQueue = LinkedBlockingQueue()
27 |
28 | // We assume dispatchKeyEvent() of the NativeActivity is actually called for every
29 | // KeyEvent and not consumed by any View before it reaches here
30 | override fun dispatchKeyEvent(event: KeyEvent): Boolean {
31 | if (event.action == KeyEvent.ACTION_DOWN) {
32 | unicodeCharacterQueue.offer(event.getUnicodeChar(event.metaState))
33 | }
34 | return super.dispatchKeyEvent(event)
35 | }
36 |
37 | fun pollUnicodeChar(): Int {
38 | return unicodeCharacterQueue.poll() ?: 0
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/examples/example_glfw_vulkan/CMakeLists.txt:
--------------------------------------------------------------------------------
1 | # Example usage:
2 | # mkdir build
3 | # cd build
4 | # cmake -g "Visual Studio 14 2015" ..
5 |
6 | cmake_minimum_required(VERSION 2.8)
7 | project(imgui_example_glfw_vulkan C CXX)
8 |
9 | if(NOT CMAKE_BUILD_TYPE)
10 | set(CMAKE_BUILD_TYPE Debug CACHE STRING "" FORCE)
11 | endif()
12 |
13 | set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DVK_PROTOTYPES")
14 | set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DVK_PROTOTYPES")
15 |
16 | # GLFW
17 | set(GLFW_DIR ../../../glfw) # Set this to point to an up-to-date GLFW repo
18 | option(GLFW_BUILD_EXAMPLES "Build the GLFW example programs" OFF)
19 | option(GLFW_BUILD_TESTS "Build the GLFW test programs" OFF)
20 | option(GLFW_BUILD_DOCS "Build the GLFW documentation" OFF)
21 | option(GLFW_INSTALL "Generate installation target" OFF)
22 | option(GLFW_DOCUMENT_INTERNALS "Include internals in documentation" OFF)
23 | add_subdirectory(${GLFW_DIR} binary_dir EXCLUDE_FROM_ALL)
24 | include_directories(${GLFW_DIR}/include)
25 |
26 | # Dear ImGui
27 | set(IMGUI_DIR ../../)
28 | include_directories(${IMGUI_DIR} ${IMGUI_DIR}/backends ..)
29 |
30 | # Libraries
31 | find_package(Vulkan REQUIRED)
32 | #find_library(VULKAN_LIBRARY
33 | #NAMES vulkan vulkan-1)
34 | #set(LIBRARIES "glfw;${VULKAN_LIBRARY}")
35 | set(LIBRARIES "glfw;Vulkan::Vulkan")
36 |
37 | # Use vulkan headers from glfw:
38 | include_directories(${GLFW_DIR}/deps)
39 |
40 | file(GLOB sources *.cpp)
41 |
42 | 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)
43 | target_link_libraries(example_glfw_vulkan ${LIBRARIES})
44 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/examples/example_allegro5/README.md:
--------------------------------------------------------------------------------
1 |
2 | # Configuration
3 |
4 | Dear ImGui outputs 16-bit vertex indices by default.
5 | 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.
6 | 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.
7 | We are providing `imconfig_allegro5.h` that enables 32-bit indices.
8 | 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.
9 |
10 | # How to Build
11 |
12 | ### On Ubuntu 14.04+ and macOS
13 |
14 | ```bash
15 | g++ -DIMGUI_USER_CONFIG=\"examples/example_allegro5/imconfig_allegro5.h\" -I .. -I ../.. main.cpp ../../backends/imgui_impl_allegro5.cpp ../../imgui*.cpp -lallegro -lallegro_main -lallegro_primitives -o allegro5_example
16 | ```
17 |
18 | On macOS, install Allegro with homebrew: `brew install allegro`.
19 |
20 | ### On Windows with Visual Studio's CLI
21 |
22 | You may install Allegro using vcpkg:
23 | ```
24 | git clone https://github.com/Microsoft/vcpkg
25 | cd vcpkg
26 | bootstrap-vcpkg.bat
27 | vcpkg install allegro5 --triplet=x86-windows ; for win32
28 | vcpkg install allegro5 --triplet=x64-windows ; for win64
29 | vcpkg integrate install ; register include / libs in Visual Studio
30 | ```
31 |
32 | Build:
33 | ```
34 | set ALLEGRODIR=path_to_your_allegro5_folder
35 | cl /Zi /MD /I %ALLEGRODIR%\include /DIMGUI_USER_CONFIG=\"examples/example_allegro5/imconfig_allegro5.h\" /I .. /I ..\.. main.cpp ..\..\backends\imgui_impl_allegro5.cpp ..\..\imgui*.cpp /link /LIBPATH:%ALLEGRODIR%\lib allegro-5.0.10-monolith-md.lib user32.lib
36 | ```
37 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/backends/imgui_impl_marmalade.h:
--------------------------------------------------------------------------------
1 | // dear imgui: Renderer + Platform Backend for Marmalade + IwGx
2 | // Marmalade code: Copyright (C) 2015 by Giovanni Zito (this file is part of Dear ImGui)
3 |
4 | // Implemented features:
5 | // [X] Renderer: User texture binding. Use 'CIwTexture*' as ImTextureID. Read the FAQ about ImTextureID!
6 |
7 | // You can use unmodified imgui_impl_* files in your project. See examples/ folder for examples of using this.
8 | // Prefer including the entire imgui/ repository into your project (either as a copy or as a submodule), and only build the backends you need.
9 | // If you are new to Dear ImGui, read documentation from the docs/ folder + read the top of imgui.cpp.
10 | // Read online: https://github.com/ocornut/imgui/tree/master/docs
11 |
12 | #pragma once
13 | #include "imgui.h" // IMGUI_IMPL_API
14 |
15 | IMGUI_IMPL_API bool ImGui_Marmalade_Init(bool install_callbacks);
16 | IMGUI_IMPL_API void ImGui_Marmalade_Shutdown();
17 | IMGUI_IMPL_API void ImGui_Marmalade_NewFrame();
18 | IMGUI_IMPL_API void ImGui_Marmalade_RenderDrawData(ImDrawData* draw_data);
19 |
20 | // Use if you want to reset your rendering device without losing Dear ImGui state.
21 | IMGUI_IMPL_API void ImGui_Marmalade_InvalidateDeviceObjects();
22 | IMGUI_IMPL_API bool ImGui_Marmalade_CreateDeviceObjects();
23 |
24 | // Callbacks (installed by default if you enable 'install_callbacks' during initialization)
25 | // You can also handle inputs yourself and use those as a reference.
26 | IMGUI_IMPL_API int32 ImGui_Marmalade_PointerButtonEventCallback(void* system_data, void* user_data);
27 | IMGUI_IMPL_API int32 ImGui_Marmalade_KeyCallback(void* system_data, void* user_data);
28 | IMGUI_IMPL_API int32 ImGui_Marmalade_CharCallback(void* system_data, void* user_data);
29 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/examples/example_apple_metal/iOS/Info-iOS.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | $(DEVELOPMENT_LANGUAGE)
7 | CFBundleExecutable
8 | $(EXECUTABLE_NAME)
9 | CFBundleIdentifier
10 | $(PRODUCT_BUNDLE_IDENTIFIER)
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | imgui
15 | CFBundlePackageType
16 | APPL
17 | CFBundleShortVersionString
18 | 1.0
19 | CFBundleVersion
20 | 1
21 | LSRequiresIPhoneOS
22 |
23 | UILaunchStoryboardName
24 | LaunchScreen
25 | UIRequiredDeviceCapabilities
26 |
27 | armv7
28 | metal
29 |
30 | UIRequiresFullScreen
31 |
32 | UIStatusBarHidden
33 |
34 | UISupportedInterfaceOrientations
35 |
36 | UIInterfaceOrientationPortrait
37 | UIInterfaceOrientationLandscapeLeft
38 | UIInterfaceOrientationLandscapeRight
39 | UIInterfaceOrientationPortraitUpsideDown
40 |
41 | UISupportedInterfaceOrientations~ipad
42 |
43 | UIInterfaceOrientationPortrait
44 | UIInterfaceOrientationPortraitUpsideDown
45 | UIInterfaceOrientationLandscapeLeft
46 | UIInterfaceOrientationLandscapeRight
47 |
48 |
49 |
50 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/backends/imgui_impl_metal.h:
--------------------------------------------------------------------------------
1 | // dear imgui: Renderer Backend for Metal
2 | // This needs to be used along with a Platform Backend (e.g. OSX)
3 |
4 | // Implemented features:
5 | // [X] Renderer: User texture binding. Use 'MTLTexture' as ImTextureID. Read the FAQ about ImTextureID!
6 | // [X] Renderer: Support for large meshes (64k+ vertices) with 16-bit indices.
7 | // Missing features:
8 | // [ ] Renderer: Multi-viewport / platform windows.
9 |
10 | // You can use unmodified imgui_impl_* files in your project. See examples/ folder for examples of using this.
11 | // Prefer including the entire imgui/ repository into your project (either as a copy or as a submodule), and only build the backends you need.
12 | // If you are new to Dear ImGui, read documentation from the docs/ folder + read the top of imgui.cpp.
13 | // Read online: https://github.com/ocornut/imgui/tree/master/docs
14 |
15 | #include "imgui.h" // IMGUI_IMPL_API
16 |
17 | @class MTLRenderPassDescriptor;
18 | @protocol MTLDevice, MTLCommandBuffer, MTLRenderCommandEncoder;
19 |
20 | IMGUI_IMPL_API bool ImGui_ImplMetal_Init(id device);
21 | IMGUI_IMPL_API void ImGui_ImplMetal_Shutdown();
22 | IMGUI_IMPL_API void ImGui_ImplMetal_NewFrame(MTLRenderPassDescriptor* renderPassDescriptor);
23 | IMGUI_IMPL_API void ImGui_ImplMetal_RenderDrawData(ImDrawData* draw_data,
24 | id commandBuffer,
25 | id commandEncoder);
26 |
27 | // Called by Init/NewFrame/Shutdown
28 | IMGUI_IMPL_API bool ImGui_ImplMetal_CreateFontsTexture(id device);
29 | IMGUI_IMPL_API void ImGui_ImplMetal_DestroyFontsTexture();
30 | IMGUI_IMPL_API bool ImGui_ImplMetal_CreateDeviceObjects(id device);
31 | IMGUI_IMPL_API void ImGui_ImplMetal_DestroyDeviceObjects();
32 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/backends/imgui_impl_allegro5.h:
--------------------------------------------------------------------------------
1 | // dear imgui: Renderer + Platform Backend for Allegro 5
2 | // (Info: Allegro 5 is a cross-platform general purpose library for handling windows, inputs, graphics, etc.)
3 |
4 | // Implemented features:
5 | // [X] Renderer: User texture binding. Use 'ALLEGRO_BITMAP*' as ImTextureID. Read the FAQ about ImTextureID!
6 | // [X] Platform: Clipboard support (from Allegro 5.1.12)
7 | // [X] Platform: Mouse cursor shape and visibility. Disable with 'io.ConfigFlags |= ImGuiConfigFlags_NoMouseCursorChange'.
8 | // Issues:
9 | // [ ] Renderer: The renderer is suboptimal as we need to unindex our buffers and convert vertices manually.
10 | // [ ] Platform: Missing gamepad support.
11 |
12 | // You can use unmodified imgui_impl_* files in your project. See examples/ folder for examples of using this.
13 | // Prefer including the entire imgui/ repository into your project (either as a copy or as a submodule), and only build the backends you need.
14 | // If you are new to Dear ImGui, read documentation from the docs/ folder + read the top of imgui.cpp.
15 | // Read online: https://github.com/ocornut/imgui/tree/master/docs
16 |
17 | #pragma once
18 | #include "imgui.h" // IMGUI_IMPL_API
19 |
20 | struct ALLEGRO_DISPLAY;
21 | union ALLEGRO_EVENT;
22 |
23 | IMGUI_IMPL_API bool ImGui_ImplAllegro5_Init(ALLEGRO_DISPLAY* display);
24 | IMGUI_IMPL_API void ImGui_ImplAllegro5_Shutdown();
25 | IMGUI_IMPL_API void ImGui_ImplAllegro5_NewFrame();
26 | IMGUI_IMPL_API void ImGui_ImplAllegro5_RenderDrawData(ImDrawData* draw_data);
27 | IMGUI_IMPL_API bool ImGui_ImplAllegro5_ProcessEvent(ALLEGRO_EVENT* event);
28 |
29 | // Use if you want to reset your rendering device without losing Dear ImGui state.
30 | IMGUI_IMPL_API bool ImGui_ImplAllegro5_CreateDeviceObjects();
31 | IMGUI_IMPL_API void ImGui_ImplAllegro5_InvalidateDeviceObjects();
32 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/examples/example_apple_metal/iOS/LaunchScreen.storyboard:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/misc/freetype/README.md:
--------------------------------------------------------------------------------
1 | # imgui_freetype
2 |
3 | Build font atlases using FreeType instead of stb_truetype (which is the default font rasterizer).
4 |
by @vuhdo, @mikesart, @ocornut.
5 |
6 | ### Usage
7 |
8 | 1. Get latest FreeType binaries or build yourself (under Windows you may use vcpkg with `vcpkg install freetype --triplet=x64-windows`, `vcpkg integrate install`).
9 | 2. Add imgui_freetype.h/cpp alongside your project files.
10 | 3. Add `#define IMGUI_ENABLE_FREETYPE` in your [imconfig.h](https://github.com/ocornut/imgui/blob/master/imconfig.h) file
11 |
12 | ### About Gamma Correct Blending
13 |
14 | FreeType assumes blending in linear space rather than gamma space.
15 | See FreeType note for [FT_Render_Glyph](https://www.freetype.org/freetype2/docs/reference/ft2-base_interface.html#FT_Render_Glyph).
16 | For correct results you need to be using sRGB and convert to linear space in the pixel shader output.
17 | The default Dear ImGui styles will be impacted by this change (alpha values will need tweaking).
18 |
19 | ### Testbed for toying with settings (for developers)
20 |
21 | See https://gist.github.com/ocornut/b3a9ecf13502fd818799a452969649ad
22 |
23 | ### Known issues
24 |
25 | - Oversampling settins are ignored but also not so much necessary with the higher quality rendering.
26 |
27 | ### Comparaison
28 |
29 | Small, thin anti-aliased fonts are typically benefiting a lots from Freetype's hinting:
30 | 
31 |
32 | ### Colorful glyphs/emojis
33 |
34 | You can use the `ImGuiFreeTypeBuilderFlags_LoadColor` flag to load certain colorful glyphs. See
35 | ["Using Colorful Glyphs/Emojis"](https://github.com/ocornut/imgui/edit/master/docs/FONTS.md#using-colorful-glyphsemojis) section of FONTS.md.
36 |
37 | 
38 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/.github/issue_template.md:
--------------------------------------------------------------------------------
1 | (Click "Preview" above ^ to turn URL into clickable links)
2 |
3 | 1. FOR FIRST-TIME USERS ISSUES COMPILING/LINKING/RUNNING or LOADING FONTS, please use [GitHub Discussions](https://github.com/ocornut/imgui/discussions).
4 |
5 | 2. PLEASE CAREFULLY READ: [FAQ](https://github.com/ocornut/imgui/blob/master/docs/FAQ.md)
6 |
7 | 3. PLEASE CAREFULLY READ: [Issue Submitting Guidelines](https://github.com/ocornut/imgui/issues/2261)
8 |
9 | 4. PLEASE MAKE SURE that you have: read the FAQ; explored the contents of `ShowDemoWindow()` including the Examples menu; searched among Issues; used your IDE to search for keywords in all sources and text files; and read the links above.
10 |
11 | 5. Be mindful that messages are being sent to the e-mail box of "Watching" users. Try to proof-read your messages before sending them. Edits are not seen by those users.
12 |
13 | 6. Delete points 1-6 and PLEASE FILL THE TEMPLATE BELOW before submitting your issue.
14 |
15 | Thank you!
16 |
17 | ----
18 |
19 | _(you may also go to Demo>About Window, and click "Config/Build Information" to obtain a bunch of detailed information that you can paste here)_
20 |
21 | **Version/Branch of Dear ImGui:**
22 |
23 | Version: XXX
24 | Branch: XXX _(master/viewport/docking/etc.)_
25 |
26 | **Back-end/Renderer/Compiler/OS**
27 |
28 | Back-ends: imgui_impl_XXX.cpp + imgui_impl_XXX.cpp _(or specify if using a custom engine/back-end)_
29 | Compiler: XXX _(if the question is related to building or platform specific features)_
30 | Operating System: XXX
31 |
32 | **My Issue/Question:**
33 |
34 | XXX _(please provide as much context as possible)_
35 |
36 | **Screenshots/Video**
37 |
38 | XXX _(you can drag files here)_
39 |
40 | **Standalone, minimal, complete and verifiable example:** _(see https://github.com/ocornut/imgui/issues/2261)_
41 | ```
42 | // Here's some code anyone can copy and paste to reproduce your issue
43 | ImGui::Begin("Example Bug");
44 | MoreCodeToExplainMyIssue();
45 | ImGui::End();
46 | ```
47 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/examples/example_win32_directx12/example_win32_directx12.vcxproj.filters:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {fb3d294f-51ec-478e-a627-25831c80fefd}
6 |
7 |
8 | {4f33ddea-9910-456d-b868-4267eb3c2b19}
9 |
10 |
11 |
12 |
13 | imgui
14 |
15 |
16 | imgui
17 |
18 |
19 | imgui
20 |
21 |
22 | sources
23 |
24 |
25 | sources
26 |
27 |
28 |
29 |
30 | imgui
31 |
32 |
33 | sources
34 |
35 |
36 | imgui
37 |
38 |
39 | imgui
40 |
41 |
42 | sources
43 |
44 |
45 | sources
46 |
47 |
48 | imgui
49 |
50 |
51 | imgui
52 |
53 |
54 |
55 |
56 |
57 |
58 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/examples/example_allegro5/example_allegro5.vcxproj.filters:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {20b90ce4-7fcb-4731-b9a0-075f875de82d}
6 |
7 |
8 | {f18ab499-84e1-499f-8eff-9754361e0e52}
9 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx
10 |
11 |
12 |
13 |
14 | imgui
15 |
16 |
17 | imgui
18 |
19 |
20 | imgui
21 |
22 |
23 | sources
24 |
25 |
26 | sources
27 |
28 |
29 | sources
30 |
31 |
32 | imgui
33 |
34 |
35 | imgui
36 |
37 |
38 |
39 |
40 | imgui
41 |
42 |
43 | imgui
44 |
45 |
46 | imgui
47 |
48 |
49 | sources
50 |
51 |
52 |
53 |
54 |
55 | sources
56 |
57 |
58 |
59 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/backends/imgui_impl_opengl2.h:
--------------------------------------------------------------------------------
1 | // dear imgui: Renderer Backend for OpenGL2 (legacy OpenGL, fixed pipeline)
2 | // This needs to be used along with a Platform Backend (e.g. GLFW, SDL, Win32, custom..)
3 |
4 | // Implemented features:
5 | // [X] Renderer: User texture binding. Use 'GLuint' OpenGL texture identifier as void*/ImTextureID. Read the FAQ about ImTextureID!
6 | // [X] Renderer: Multi-viewport support. Enable with 'io.ConfigFlags |= ImGuiConfigFlags_ViewportsEnable'.
7 |
8 | // You can use unmodified imgui_impl_* files in your project. See examples/ folder for examples of using this.
9 | // Prefer including the entire imgui/ repository into your project (either as a copy or as a submodule), and only build the backends you need.
10 | // If you are new to Dear ImGui, read documentation from the docs/ folder + read the top of imgui.cpp.
11 | // Read online: https://github.com/ocornut/imgui/tree/master/docs
12 |
13 | // **DO NOT USE THIS CODE IF YOUR CODE/ENGINE IS USING MODERN OPENGL (SHADERS, VBO, VAO, etc.)**
14 | // **Prefer using the code in imgui_impl_opengl3.cpp**
15 | // This code is mostly provided as a reference to learn how ImGui integration works, because it is shorter to read.
16 | // If your code is using GL3+ context or any semi modern OpenGL calls, using this is likely to make everything more
17 | // complicated, will require your code to reset every single OpenGL attributes to their initial state, and might
18 | // confuse your GPU driver.
19 | // The GL2 code is unable to reset attributes or even call e.g. "glUseProgram(0)" because they don't exist in that API.
20 |
21 | #pragma once
22 | #include "imgui.h" // IMGUI_IMPL_API
23 |
24 | IMGUI_IMPL_API bool ImGui_ImplOpenGL2_Init();
25 | IMGUI_IMPL_API void ImGui_ImplOpenGL2_Shutdown();
26 | IMGUI_IMPL_API void ImGui_ImplOpenGL2_NewFrame();
27 | IMGUI_IMPL_API void ImGui_ImplOpenGL2_RenderDrawData(ImDrawData* draw_data);
28 |
29 | // Called by Init/NewFrame/Shutdown
30 | IMGUI_IMPL_API bool ImGui_ImplOpenGL2_CreateFontsTexture();
31 | IMGUI_IMPL_API void ImGui_ImplOpenGL2_DestroyFontsTexture();
32 | IMGUI_IMPL_API bool ImGui_ImplOpenGL2_CreateDeviceObjects();
33 | IMGUI_IMPL_API void ImGui_ImplOpenGL2_DestroyDeviceObjects();
34 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/examples/example_sdl_directx11/example_sdl_directx11.vcxproj.filters:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {0587d7a3-f2ce-4d56-b84f-a0005d3bfce6}
6 |
7 |
8 | {08e36723-ce4f-4cff-9662-c40801cf1acf}
9 |
10 |
11 |
12 |
13 | imgui
14 |
15 |
16 | imgui
17 |
18 |
19 | imgui
20 |
21 |
22 | sources
23 |
24 |
25 | sources
26 |
27 |
28 |
29 |
30 | imgui
31 |
32 |
33 | sources
34 |
35 |
36 | imgui
37 |
38 |
39 | imgui
40 |
41 |
42 | imgui
43 |
44 |
45 | imgui
46 |
47 |
48 | sources
49 |
50 |
51 | sources
52 |
53 |
54 |
55 |
56 |
57 | sources
58 |
59 |
60 |
61 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/examples/example_win32_directx10/example_win32_directx10.vcxproj.filters:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {0587d7a3-f2ce-4d56-b84f-a0005d3bfce6}
6 |
7 |
8 | {08e36723-ce4f-4cff-9662-c40801cf1acf}
9 |
10 |
11 |
12 |
13 | imgui
14 |
15 |
16 | imgui
17 |
18 |
19 | imgui
20 |
21 |
22 | sources
23 |
24 |
25 | sources
26 |
27 |
28 |
29 |
30 | imgui
31 |
32 |
33 | sources
34 |
35 |
36 | imgui
37 |
38 |
39 | imgui
40 |
41 |
42 | sources
43 |
44 |
45 | sources
46 |
47 |
48 | imgui
49 |
50 |
51 | imgui
52 |
53 |
54 |
55 |
56 |
57 | sources
58 |
59 |
60 |
61 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/examples/example_win32_directx11/example_win32_directx11.vcxproj.filters:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {0587d7a3-f2ce-4d56-b84f-a0005d3bfce6}
6 |
7 |
8 | {08e36723-ce4f-4cff-9662-c40801cf1acf}
9 |
10 |
11 |
12 |
13 | imgui
14 |
15 |
16 | imgui
17 |
18 |
19 | imgui
20 |
21 |
22 | sources
23 |
24 |
25 | sources
26 |
27 |
28 |
29 |
30 | imgui
31 |
32 |
33 | sources
34 |
35 |
36 | imgui
37 |
38 |
39 | imgui
40 |
41 |
42 | imgui
43 |
44 |
45 | sources
46 |
47 |
48 | sources
49 |
50 |
51 | imgui
52 |
53 |
54 |
55 |
56 |
57 | sources
58 |
59 |
60 |
61 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/examples/example_glut_opengl2/Makefile:
--------------------------------------------------------------------------------
1 | #
2 | # Cross Platform Makefile
3 | # Compatible with MSYS2/MINGW, Ubuntu 14.04.1 and Mac OS X
4 | #
5 | # Linux:
6 | # apt-get install freeglut3-dev
7 | #
8 |
9 | #CXX = g++
10 | #CXX = clang++
11 |
12 | EXE = example_glut_opengl2
13 | IMGUI_DIR = ../..
14 | SOURCES = main.cpp
15 | 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
16 | SOURCES += $(IMGUI_DIR)/backends/imgui_impl_glut.cpp $(IMGUI_DIR)/backends/imgui_impl_opengl2.cpp
17 | OBJS = $(addsuffix .o, $(basename $(notdir $(SOURCES))))
18 | UNAME_S := $(shell uname -s)
19 |
20 | CXXFLAGS = -I$(IMGUI_DIR) -I$(IMGUI_DIR)/backends
21 | CXXFLAGS += -g -Wall -Wformat
22 | LIBS =
23 |
24 | ##---------------------------------------------------------------------
25 | ## BUILD FLAGS PER PLATFORM
26 | ##---------------------------------------------------------------------
27 |
28 | ifeq ($(UNAME_S), Linux) #LINUX
29 | ECHO_MESSAGE = "Linux"
30 | LIBS += -lGL -lglut
31 | CFLAGS = $(CXXFLAGS)
32 | endif
33 |
34 | ifeq ($(UNAME_S), Darwin) #APPLE
35 | ECHO_MESSAGE = "Mac OS X"
36 | LIBS += -framework OpenGL -framework GLUT
37 | LIBS += -L/usr/local/lib -L/opt/local/lib
38 |
39 | CXXFLAGS += -I/usr/local/include -I/opt/local/include
40 | CFLAGS = $(CXXFLAGS)
41 | endif
42 |
43 | ifeq ($(OS), Windows_NT)
44 | ECHO_MESSAGE = "MinGW"
45 | LIBS += -lgdi32 -lopengl32 -limm32
46 | ifeq ($(shell pkg-config freeglut --exists 2> /dev/null && echo yes || echo no),yes)
47 | CXXFLAGS += $(shell pkg-config freeglut --cflags)
48 | LIBS += $(shell pkg-config freeglut --libs)
49 | else
50 | LIBS += -lglut
51 | endif
52 | CFLAGS = $(CXXFLAGS)
53 | endif
54 |
55 | ##---------------------------------------------------------------------
56 | ## BUILD RULES
57 | ##---------------------------------------------------------------------
58 |
59 | %.o:%.cpp
60 | $(CXX) $(CXXFLAGS) -c -o $@ $<
61 |
62 | %.o:$(IMGUI_DIR)/%.cpp
63 | $(CXX) $(CXXFLAGS) -c -o $@ $<
64 |
65 | %.o:$(IMGUI_DIR)/backends/%.cpp
66 | $(CXX) $(CXXFLAGS) -c -o $@ $<
67 |
68 | all: $(EXE)
69 | @echo Build complete for $(ECHO_MESSAGE)
70 |
71 | $(EXE): $(OBJS)
72 | $(CXX) -o $@ $^ $(CXXFLAGS) $(LIBS)
73 |
74 | clean:
75 | rm -f $(EXE) $(OBJS)
76 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/examples/example_sdl_vulkan/example_sdl_vulkan.vcxproj.filters:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {20b90ce4-7fcb-4731-b9a0-075f875de82d}
6 |
7 |
8 | {f18ab499-84e1-499f-8eff-9754361e0e52}
9 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx
10 |
11 |
12 |
13 |
14 | imgui
15 |
16 |
17 | imgui
18 |
19 |
20 | imgui
21 |
22 |
23 | sources
24 |
25 |
26 | sources
27 |
28 |
29 | sources
30 |
31 |
32 | imgui
33 |
34 |
35 | sources
36 |
37 |
38 |
39 |
40 | imgui
41 |
42 |
43 | imgui
44 |
45 |
46 | imgui
47 |
48 |
49 | sources
50 |
51 |
52 | sources
53 |
54 |
55 |
56 |
57 |
58 | sources
59 |
60 |
61 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/examples/example_glfw_vulkan/example_glfw_vulkan.vcxproj.filters:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {20b90ce4-7fcb-4731-b9a0-075f875de82d}
6 |
7 |
8 | {f18ab499-84e1-499f-8eff-9754361e0e52}
9 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx
10 |
11 |
12 |
13 |
14 | sources
15 |
16 |
17 | imgui
18 |
19 |
20 | imgui
21 |
22 |
23 | imgui
24 |
25 |
26 | imgui
27 |
28 |
29 | imgui
30 |
31 |
32 | sources
33 |
34 |
35 | sources
36 |
37 |
38 |
39 |
40 | imgui
41 |
42 |
43 | imgui
44 |
45 |
46 | imgui
47 |
48 |
49 | sources
50 |
51 |
52 | sources
53 |
54 |
55 |
56 |
57 |
58 | sources
59 |
60 |
61 |
62 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/examples/example_sdl_opengl2/example_sdl_opengl2.vcxproj.filters:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {20b90ce4-7fcb-4731-b9a0-075f875de82d}
6 |
7 |
8 | {f18ab499-84e1-499f-8eff-9754361e0e52}
9 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx
10 |
11 |
12 |
13 |
14 | imgui
15 |
16 |
17 | imgui
18 |
19 |
20 | imgui
21 |
22 |
23 | sources
24 |
25 |
26 | imgui
27 |
28 |
29 | imgui
30 |
31 |
32 | sources
33 |
34 |
35 | sources
36 |
37 |
38 |
39 |
40 | imgui
41 |
42 |
43 | imgui
44 |
45 |
46 | imgui
47 |
48 |
49 | sources
50 |
51 |
52 | sources
53 |
54 |
55 |
56 |
57 |
58 | sources
59 |
60 |
61 |
62 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/examples/example_glfw_opengl2/example_glfw_opengl2.vcxproj.filters:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {c336cfe3-f0c4-464c-9ef0-a9e17a7ff222}
6 |
7 |
8 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
9 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx
10 |
11 |
12 |
13 |
14 | sources
15 |
16 |
17 | imgui
18 |
19 |
20 | imgui
21 |
22 |
23 | imgui
24 |
25 |
26 | imgui
27 |
28 |
29 | imgui
30 |
31 |
32 | sources
33 |
34 |
35 | sources
36 |
37 |
38 |
39 |
40 | imgui
41 |
42 |
43 | imgui
44 |
45 |
46 | imgui
47 |
48 |
49 | sources
50 |
51 |
52 | sources
53 |
54 |
55 |
56 |
57 |
58 | sources
59 |
60 |
61 |
62 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/examples/example_glut_opengl2/example_glut_opengl2.vcxproj.filters:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {c336cfe3-f0c4-464c-9ef0-a9e17a7ff222}
6 |
7 |
8 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
9 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx
10 |
11 |
12 |
13 |
14 | sources
15 |
16 |
17 | imgui
18 |
19 |
20 | imgui
21 |
22 |
23 | imgui
24 |
25 |
26 | imgui
27 |
28 |
29 | imgui
30 |
31 |
32 | sources
33 |
34 |
35 | sources
36 |
37 |
38 |
39 |
40 | imgui
41 |
42 |
43 | imgui
44 |
45 |
46 | imgui
47 |
48 |
49 | sources
50 |
51 |
52 | sources
53 |
54 |
55 |
56 |
57 |
58 | sources
59 |
60 |
61 |
62 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/examples/example_win32_directx9/example_win32_directx9.vcxproj.filters:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx
7 |
8 |
9 | {a82cba23-9de0-45c2-b1e3-2eb1666702de}
10 |
11 |
12 |
13 |
14 | sources
15 |
16 |
17 | imgui
18 |
19 |
20 | imgui
21 |
22 |
23 | imgui
24 |
25 |
26 | sources
27 |
28 |
29 | sources
30 |
31 |
32 | imgui
33 |
34 |
35 | imgui
36 |
37 |
38 |
39 |
40 | imgui
41 |
42 |
43 | imgui
44 |
45 |
46 | imgui
47 |
48 |
49 | sources
50 |
51 |
52 | sources
53 |
54 |
55 |
56 |
57 |
58 | sources
59 |
60 |
61 |
62 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/examples/example_sdl_opengl2/Makefile:
--------------------------------------------------------------------------------
1 | #
2 | # Cross Platform Makefile
3 | # Compatible with MSYS2/MINGW, Ubuntu 14.04.1 and Mac OS X
4 | #
5 | # You will need SDL2 (http://www.libsdl.org):
6 | # Linux:
7 | # apt-get install libsdl2-dev
8 | # Mac OS X:
9 | # brew install sdl2
10 | # MSYS2:
11 | # pacman -S mingw-w64-i686-SDL2
12 | #
13 |
14 | #CXX = g++
15 | #CXX = clang++
16 |
17 | EXE = example_sdl_opengl2
18 | IMGUI_DIR = ../..
19 | SOURCES = main.cpp
20 | 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
21 | SOURCES += $(IMGUI_DIR)/backends/imgui_impl_sdl.cpp $(IMGUI_DIR)/backends/imgui_impl_opengl2.cpp
22 | OBJS = $(addsuffix .o, $(basename $(notdir $(SOURCES))))
23 | UNAME_S := $(shell uname -s)
24 |
25 | CXXFLAGS = -I$(IMGUI_DIR) -I$(IMGUI_DIR)/backends
26 | CXXFLAGS += -g -Wall -Wformat
27 | LIBS =
28 |
29 | ##---------------------------------------------------------------------
30 | ## BUILD FLAGS PER PLATFORM
31 | ##---------------------------------------------------------------------
32 |
33 | ifeq ($(UNAME_S), Linux) #LINUX
34 | ECHO_MESSAGE = "Linux"
35 | LIBS += -lGL -ldl `sdl2-config --libs`
36 |
37 | CXXFLAGS += `sdl2-config --cflags`
38 | CFLAGS = $(CXXFLAGS)
39 | endif
40 |
41 | ifeq ($(UNAME_S), Darwin) #APPLE
42 | ECHO_MESSAGE = "Mac OS X"
43 | LIBS += -framework OpenGL -framework Cocoa -framework IOKit -framework CoreVideo `sdl2-config --libs`
44 | LIBS += -L/usr/local/lib -L/opt/local/lib
45 |
46 | CXXFLAGS += `sdl2-config --cflags`
47 | CXXFLAGS += -I/usr/local/include -I/opt/local/include
48 | CFLAGS = $(CXXFLAGS)
49 | endif
50 |
51 | ifeq ($(OS), Windows_NT)
52 | ECHO_MESSAGE = "MinGW"
53 | LIBS += -lgdi32 -lopengl32 -limm32 `pkg-config --static --libs sdl2`
54 |
55 | CXXFLAGS += `pkg-config --cflags sdl2`
56 | CFLAGS = $(CXXFLAGS)
57 | endif
58 |
59 | ##---------------------------------------------------------------------
60 | ## BUILD RULES
61 | ##---------------------------------------------------------------------
62 |
63 | %.o:%.cpp
64 | $(CXX) $(CXXFLAGS) -c -o $@ $<
65 |
66 | %.o:$(IMGUI_DIR)/%.cpp
67 | $(CXX) $(CXXFLAGS) -c -o $@ $<
68 |
69 | %.o:$(IMGUI_DIR)/backends/%.cpp
70 | $(CXX) $(CXXFLAGS) -c -o $@ $<
71 |
72 | all: $(EXE)
73 | @echo Build complete for $(ECHO_MESSAGE)
74 |
75 | $(EXE): $(OBJS)
76 | $(CXX) -o $@ $^ $(CXXFLAGS) $(LIBS)
77 |
78 | clean:
79 | rm -f $(EXE) $(OBJS)
80 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/misc/debuggers/imgui.natvis:
--------------------------------------------------------------------------------
1 |
2 |
13 |
14 |
15 |
16 |
17 | {{Size={Size} Capacity={Capacity}}}
18 |
19 |
20 | Size
21 | Data
22 |
23 |
24 |
25 |
26 |
27 | {{Size={DataEnd-Data} }}
28 |
29 |
30 | DataEnd-Data
31 | Data
32 |
33 |
34 |
35 |
36 |
37 | {{x={x,g} y={y,g}}}
38 |
39 |
40 |
41 | {{x={x,g} y={y,g} z={z,g} w={w,g}}}
42 |
43 |
44 |
45 | {{Min=({Min.x,g} {Min.y,g}) Max=({Max.x,g} {Max.y,g}) Size=({Max.x-Min.x,g} {Max.y-Min.y,g})}}
46 |
47 | - Min
48 | - Max
49 | - Max.x - Min.x
50 | - Max.y - Min.y
51 |
52 |
53 |
54 |
55 | {{Name {Name,s} Active {(Active||WasActive)?1:0,d} Child {(Flags & 0x01000000)?1:0,d} Popup {(Flags & 0x04000000)?1:0,d} Hidden {(Hidden)?1:0,d}}
56 |
57 |
58 |
59 | {{ID {ID,x} Pos=({Pos.x,g} {Pos.y,g}) Size=({Size.x,g} {Size.y,g}) Parent {(ParentNode==0)?0:ParentNode->ID,x} Childs {(ChildNodes[0] != 0)+(ChildNodes[1] != 0)} Windows {Windows.Size} }
60 |
61 |
62 |
63 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/backends/imgui_impl_sdl.h:
--------------------------------------------------------------------------------
1 | // dear imgui: Platform Backend for SDL2
2 | // This needs to be used along with a Renderer (e.g. DirectX11, OpenGL3, Vulkan..)
3 | // (Info: SDL2 is a cross-platform general purpose library for handling windows, inputs, graphics context creation, etc.)
4 |
5 | // Implemented features:
6 | // [X] Platform: Mouse cursor shape and visibility. Disable with 'io.ConfigFlags |= ImGuiConfigFlags_NoMouseCursorChange'.
7 | // [X] Platform: Clipboard support.
8 | // [X] Platform: Keyboard arrays indexed using SDL_SCANCODE_* codes, e.g. ImGui::IsKeyPressed(SDL_SCANCODE_SPACE).
9 | // [X] Platform: Gamepad support. Enabled with 'io.ConfigFlags |= ImGuiConfigFlags_NavEnableGamepad'.
10 | // [X] Platform: Multi-viewport support (multiple windows). Enable with 'io.ConfigFlags |= ImGuiConfigFlags_ViewportsEnable'.
11 | // Missing features:
12 | // [ ] Platform: SDL2 handling of IME under Windows appears to be broken and it explicitly disable the regular Windows IME. You can restore Windows IME by compiling SDL with SDL_DISABLE_WINDOWS_IME.
13 | // [ ] Platform: Multi-viewport + Minimized windows seems to break mouse wheel events (at least under Windows).
14 |
15 | // You can use unmodified imgui_impl_* files in your project. See examples/ folder for examples of using this.
16 | // Prefer including the entire imgui/ repository into your project (either as a copy or as a submodule), and only build the backends you need.
17 | // If you are new to Dear ImGui, read documentation from the docs/ folder + read the top of imgui.cpp.
18 | // Read online: https://github.com/ocornut/imgui/tree/master/docs
19 |
20 | #pragma once
21 | #include "imgui.h" // IMGUI_IMPL_API
22 |
23 | struct SDL_Window;
24 | typedef union SDL_Event SDL_Event;
25 |
26 | IMGUI_IMPL_API bool ImGui_ImplSDL2_InitForOpenGL(SDL_Window* window, void* sdl_gl_context);
27 | IMGUI_IMPL_API bool ImGui_ImplSDL2_InitForVulkan(SDL_Window* window);
28 | IMGUI_IMPL_API bool ImGui_ImplSDL2_InitForD3D(SDL_Window* window);
29 | IMGUI_IMPL_API bool ImGui_ImplSDL2_InitForMetal(SDL_Window* window);
30 | IMGUI_IMPL_API void ImGui_ImplSDL2_Shutdown();
31 | IMGUI_IMPL_API void ImGui_ImplSDL2_NewFrame();
32 | IMGUI_IMPL_API bool ImGui_ImplSDL2_ProcessEvent(const SDL_Event* event);
33 |
34 | #ifndef IMGUI_DISABLE_OBSOLETE_FUNCTIONS
35 | static inline void ImGui_ImplSDL2_NewFrame(SDL_Window*) { ImGui_ImplSDL2_NewFrame(); } // 1.84: removed unnecessary parameter
36 | #endif
37 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/examples/example_emscripten_opengl3/shell_minimal.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Dear ImGui Emscripten example
7 |
29 |
30 |
31 |
32 |
62 | {{{ SCRIPT }}}
63 |
64 |
65 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/examples/example_sdl_opengl3/example_sdl_opengl3.vcxproj.filters:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {20b90ce4-7fcb-4731-b9a0-075f875de82d}
6 |
7 |
8 | {f18ab499-84e1-499f-8eff-9754361e0e52}
9 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx
10 |
11 |
12 |
13 |
14 | imgui
15 |
16 |
17 | imgui
18 |
19 |
20 | imgui
21 |
22 |
23 | sources
24 |
25 |
26 | sources
27 |
28 |
29 | sources
30 |
31 |
32 | imgui
33 |
34 |
35 | imgui
36 |
37 |
38 |
39 |
40 | imgui
41 |
42 |
43 | imgui
44 |
45 |
46 | imgui
47 |
48 |
49 | sources
50 |
51 |
52 | sources
53 |
54 |
55 | sources
56 |
57 |
58 |
59 |
60 |
61 | sources
62 |
63 |
64 |
65 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/examples/example_glfw_opengl3/example_glfw_opengl3.vcxproj.filters:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {20b90ce4-7fcb-4731-b9a0-075f875de82d}
6 |
7 |
8 | {f18ab499-84e1-499f-8eff-9754361e0e52}
9 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx
10 |
11 |
12 |
13 |
14 | sources
15 |
16 |
17 | imgui
18 |
19 |
20 | imgui
21 |
22 |
23 | imgui
24 |
25 |
26 | imgui
27 |
28 |
29 | imgui
30 |
31 |
32 | sources
33 |
34 |
35 | sources
36 |
37 |
38 |
39 |
40 | imgui
41 |
42 |
43 | imgui
44 |
45 |
46 | imgui
47 |
48 |
49 | sources
50 |
51 |
52 | sources
53 |
54 |
55 | sources
56 |
57 |
58 |
59 |
60 |
61 | sources
62 |
63 |
64 |
65 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/examples/example_emscripten_opengl3/README.md:
--------------------------------------------------------------------------------
1 | ## How to Build
2 |
3 | - 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
4 | - You may also refer to our [Continuous Integration setup](https://github.com/ocornut/imgui/tree/master/.github/workflows) for Emscripten setup.
5 | - 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.
6 | - Then build using `make` while in the `example_emscripten_opengl3/` directory.
7 |
8 | ## How to Run
9 |
10 | To run on a local machine:
11 | - `make serve` will use Python3 to spawn a local webserver, you can then browse http://localhost:8000 to access your build.
12 | - Otherwise, generally you will need a local webserver:
13 | - Quoting [https://emscripten.org/docs/getting_started](https://emscripten.org/docs/getting_started/Tutorial.html#generating-html):
14 | _"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."_
15 | - Emscripten SDK has a handy `emrun` command: `emrun web/example_emscripten_opengl3.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.
16 | - You may use Python 3 builtin webserver: `python -m http.server -d web` (this is what `make serve` uses).
17 | - You may use Python 2 builtin webserver: `cd web && python -m SimpleHTTPServer`.
18 |
19 | ## Obsolete features:
20 |
21 | - Emscripten 2.0 (August 2020) obsoleted the fastcomp backend, only llvm is supported.
22 | - Emscripten 1.39.0 (October 2019) obsoleted the `BINARYEN_TRAP_MODE=clamp` compilation flag which was required with version older than 1.39.0 to avoid rendering artefacts. See [#2877](https://github.com/ocornut/imgui/issues/2877) for details. If you use an older version, uncomment this line in the Makefile: `#EMS += -s BINARYEN_TRAP_MODE=clamp`
23 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/examples/example_glfw_opengl2/Makefile:
--------------------------------------------------------------------------------
1 | #
2 | # Cross Platform Makefile
3 | # Compatible with MSYS2/MINGW, Ubuntu 14.04.1 and Mac OS X
4 | #
5 | # You will need GLFW (http://www.glfw.org):
6 | # Linux:
7 | # apt-get install libglfw-dev
8 | # Mac OS X:
9 | # brew install glfw
10 | # MSYS2:
11 | # pacman -S --noconfirm --needed mingw-w64-x86_64-toolchain mingw-w64-x86_64-glfw
12 | #
13 |
14 | #CXX = g++
15 | #CXX = clang++
16 |
17 | EXE = example_glfw_opengl2
18 | IMGUI_DIR = ../..
19 | SOURCES = main.cpp
20 | 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
21 | SOURCES += $(IMGUI_DIR)/backends/imgui_impl_glfw.cpp $(IMGUI_DIR)/backends/imgui_impl_opengl2.cpp
22 | OBJS = $(addsuffix .o, $(basename $(notdir $(SOURCES))))
23 | UNAME_S := $(shell uname -s)
24 |
25 | CXXFLAGS = -I$(IMGUI_DIR) -I$(IMGUI_DIR)/backends
26 | CXXFLAGS += -g -Wall -Wformat
27 | LIBS =
28 |
29 | ##---------------------------------------------------------------------
30 | ## BUILD FLAGS PER PLATFORM
31 | ##---------------------------------------------------------------------
32 |
33 | ifeq ($(UNAME_S), Linux) #LINUX
34 | ECHO_MESSAGE = "Linux"
35 | LIBS += -lGL `pkg-config --static --libs glfw3`
36 |
37 | CXXFLAGS += `pkg-config --cflags glfw3`
38 | CFLAGS = $(CXXFLAGS)
39 | endif
40 |
41 | ifeq ($(UNAME_S), Darwin) #APPLE
42 | ECHO_MESSAGE = "Mac OS X"
43 | LIBS += -framework OpenGL -framework Cocoa -framework IOKit -framework CoreVideo
44 | LIBS += -L/usr/local/lib -L/opt/local/lib -L/opt/homebrew/lib
45 | #LIBS += -lglfw3
46 | LIBS += -lglfw
47 |
48 | CXXFLAGS += -I/usr/local/include -I/opt/local/include -I/opt/homebrew/include
49 | CFLAGS = $(CXXFLAGS)
50 | endif
51 |
52 | ifeq ($(OS), Windows_NT)
53 | ECHO_MESSAGE = "MinGW"
54 | LIBS += -lglfw3 -lgdi32 -lopengl32 -limm32
55 |
56 | CXXFLAGS += `pkg-config --cflags glfw3`
57 | CFLAGS = $(CXXFLAGS)
58 | endif
59 |
60 | ##---------------------------------------------------------------------
61 | ## BUILD RULES
62 | ##---------------------------------------------------------------------
63 |
64 | %.o:%.cpp
65 | $(CXX) $(CXXFLAGS) -c -o $@ $<
66 |
67 | %.o:$(IMGUI_DIR)/%.cpp
68 | $(CXX) $(CXXFLAGS) -c -o $@ $<
69 |
70 | %.o:$(IMGUI_DIR)/backends/%.cpp
71 | $(CXX) $(CXXFLAGS) -c -o $@ $<
72 |
73 | all: $(EXE)
74 | @echo Build complete for $(ECHO_MESSAGE)
75 |
76 | $(EXE): $(OBJS)
77 | $(CXX) -o $@ $^ $(CXXFLAGS) $(LIBS)
78 |
79 | clean:
80 | rm -f $(EXE) $(OBJS)
81 |
82 |
--------------------------------------------------------------------------------
/.github/workflows/codeql-analysis.yml:
--------------------------------------------------------------------------------
1 | # For most projects, this workflow file will not need changing; you simply need
2 | # to commit it to your repository.
3 | #
4 | # You may wish to alter this file to override the set of languages analyzed,
5 | # or to provide custom queries or build logic.
6 | #
7 | # ******** NOTE ********
8 | # We have attempted to detect the languages in your repository. Please check
9 | # the `language` matrix defined below to confirm you have the correct set of
10 | # supported CodeQL languages.
11 | #
12 | name: "CodeQL"
13 |
14 | on:
15 | push:
16 | branches: [ main ]
17 | pull_request:
18 | # The branches below must be a subset of the branches above
19 | branches: [ main ]
20 | schedule:
21 | - cron: '16 12 * * 2'
22 |
23 | jobs:
24 | analyze:
25 | name: Analyze
26 | runs-on: ubuntu-latest
27 | permissions:
28 | actions: read
29 | contents: read
30 | security-events: write
31 |
32 | strategy:
33 | fail-fast: false
34 | matrix:
35 | language: [ 'cpp' ]
36 | # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ]
37 | # Learn more:
38 | # https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed
39 |
40 | steps:
41 | - name: Checkout repository
42 | uses: actions/checkout@v2
43 |
44 | # Initializes the CodeQL tools for scanning.
45 | - name: Initialize CodeQL
46 | uses: github/codeql-action/init@v1
47 | with:
48 | languages: ${{ matrix.language }}
49 | # If you wish to specify custom queries, you can do so here or in a config file.
50 | # By default, queries listed here will override any specified in a config file.
51 | # Prefix the list here with "+" to use these queries and those in the config file.
52 | # queries: ./path/to/local/query, your-org/your-repo/queries@main
53 |
54 | # Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
55 | # If this step fails, then you should remove it and run the build manually (see below)
56 | - name: Autobuild
57 | uses: github/codeql-action/autobuild@v1
58 |
59 | # ℹ️ Command-line programs to run using the OS shell.
60 | # 📚 https://git.io/JvXDl
61 |
62 | # ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
63 | # and modify them (or add more) to build your code if your project
64 | # uses a compiled language
65 |
66 | #- run: |
67 | # make bootstrap
68 | # make release
69 |
70 | - name: Perform CodeQL Analysis
71 | uses: github/codeql-action/analyze@v1
72 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/backends/imgui_impl_glut.h:
--------------------------------------------------------------------------------
1 | // dear imgui: Platform Backend for GLUT/FreeGLUT
2 | // This needs to be used along with a Renderer (e.g. OpenGL2)
3 |
4 | // !!! GLUT/FreeGLUT IS OBSOLETE PREHISTORIC SOFTWARE. Using GLUT is not recommended unless you really miss the 90's. !!!
5 | // !!! If someone or something is teaching you GLUT today, you are being abused. Please show some resistance. !!!
6 | // !!! Nowadays, prefer using GLFW or SDL instead!
7 |
8 | // Issues:
9 | // [ ] Platform: GLUT is unable to distinguish e.g. Backspace from CTRL+H or TAB from CTRL+I
10 | // [ ] Platform: Missing mouse cursor shape/visibility support.
11 | // [ ] Platform: Missing clipboard support (not supported by Glut).
12 | // [ ] Platform: Missing gamepad support.
13 |
14 | // You can use unmodified imgui_impl_* files in your project. See examples/ folder for examples of using this.
15 | // Prefer including the entire imgui/ repository into your project (either as a copy or as a submodule), and only build the backends you need.
16 | // If you are new to Dear ImGui, read documentation from the docs/ folder + read the top of imgui.cpp.
17 | // Read online: https://github.com/ocornut/imgui/tree/master/docs
18 |
19 | #pragma once
20 | #include "imgui.h" // IMGUI_IMPL_API
21 |
22 | IMGUI_IMPL_API bool ImGui_ImplGLUT_Init();
23 | IMGUI_IMPL_API void ImGui_ImplGLUT_InstallFuncs();
24 | IMGUI_IMPL_API void ImGui_ImplGLUT_Shutdown();
25 | IMGUI_IMPL_API void ImGui_ImplGLUT_NewFrame();
26 |
27 | // You can call ImGui_ImplGLUT_InstallFuncs() to get all those functions installed automatically,
28 | // or call them yourself from your own GLUT handlers. We are using the same weird names as GLUT for consistency..
29 | //---------------------------------------- GLUT name --------------------------------------------- Decent Name ---------
30 | IMGUI_IMPL_API void ImGui_ImplGLUT_ReshapeFunc(int w, int h); // ~ ResizeFunc
31 | IMGUI_IMPL_API void ImGui_ImplGLUT_MotionFunc(int x, int y); // ~ MouseMoveFunc
32 | IMGUI_IMPL_API void ImGui_ImplGLUT_MouseFunc(int button, int state, int x, int y); // ~ MouseButtonFunc
33 | IMGUI_IMPL_API void ImGui_ImplGLUT_MouseWheelFunc(int button, int dir, int x, int y); // ~ MouseWheelFunc
34 | IMGUI_IMPL_API void ImGui_ImplGLUT_KeyboardFunc(unsigned char c, int x, int y); // ~ CharPressedFunc
35 | IMGUI_IMPL_API void ImGui_ImplGLUT_KeyboardUpFunc(unsigned char c, int x, int y); // ~ CharReleasedFunc
36 | IMGUI_IMPL_API void ImGui_ImplGLUT_SpecialFunc(int key, int x, int y); // ~ KeyPressedFunc
37 | IMGUI_IMPL_API void ImGui_ImplGLUT_SpecialUpFunc(int key, int x, int y); // ~ KeyReleasedFunc
38 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/examples/example_glfw_opengl3/Makefile:
--------------------------------------------------------------------------------
1 | #
2 | # Cross Platform Makefile
3 | # Compatible with MSYS2/MINGW, Ubuntu 14.04.1 and Mac OS X
4 | #
5 | # You will need GLFW (http://www.glfw.org):
6 | # Linux:
7 | # apt-get install libglfw-dev
8 | # Mac OS X:
9 | # brew install glfw
10 | # MSYS2:
11 | # pacman -S --noconfirm --needed mingw-w64-x86_64-toolchain mingw-w64-x86_64-glfw
12 | #
13 |
14 | #CXX = g++
15 | #CXX = clang++
16 |
17 | EXE = example_glfw_opengl3
18 | IMGUI_DIR = ../..
19 | SOURCES = main.cpp
20 | 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
21 | SOURCES += $(IMGUI_DIR)/backends/imgui_impl_glfw.cpp $(IMGUI_DIR)/backends/imgui_impl_opengl3.cpp
22 | OBJS = $(addsuffix .o, $(basename $(notdir $(SOURCES))))
23 | UNAME_S := $(shell uname -s)
24 | LINUX_GL_LIBS = -lGL
25 |
26 | CXXFLAGS = -I$(IMGUI_DIR) -I$(IMGUI_DIR)/backends
27 | CXXFLAGS += -g -Wall -Wformat
28 | LIBS =
29 |
30 | ##---------------------------------------------------------------------
31 | ## OPENGL ES
32 | ##---------------------------------------------------------------------
33 |
34 | ## This assumes a GL ES library available in the system, e.g. libGLESv2.so
35 | # CXXFLAGS += -DIMGUI_IMPL_OPENGL_ES2
36 | # LINUX_GL_LIBS = -lGLESv2
37 |
38 | ##---------------------------------------------------------------------
39 | ## BUILD FLAGS PER PLATFORM
40 | ##---------------------------------------------------------------------
41 |
42 | ifeq ($(UNAME_S), Linux) #LINUX
43 | ECHO_MESSAGE = "Linux"
44 | LIBS += $(LINUX_GL_LIBS) `pkg-config --static --libs glfw3`
45 |
46 | CXXFLAGS += `pkg-config --cflags glfw3`
47 | CFLAGS = $(CXXFLAGS)
48 | endif
49 |
50 | ifeq ($(UNAME_S), Darwin) #APPLE
51 | ECHO_MESSAGE = "Mac OS X"
52 | LIBS += -framework OpenGL -framework Cocoa -framework IOKit -framework CoreVideo
53 | LIBS += -L/usr/local/lib -L/opt/local/lib -L/opt/homebrew/lib
54 | #LIBS += -lglfw3
55 | LIBS += -lglfw
56 |
57 | CXXFLAGS += -I/usr/local/include -I/opt/local/include -I/opt/homebrew/include
58 | CFLAGS = $(CXXFLAGS)
59 | endif
60 |
61 | ifeq ($(OS), Windows_NT)
62 | ECHO_MESSAGE = "MinGW"
63 | LIBS += -lglfw3 -lgdi32 -lopengl32 -limm32
64 |
65 | CXXFLAGS += `pkg-config --cflags glfw3`
66 | CFLAGS = $(CXXFLAGS)
67 | endif
68 |
69 | ##---------------------------------------------------------------------
70 | ## BUILD RULES
71 | ##---------------------------------------------------------------------
72 |
73 | %.o:%.cpp
74 | $(CXX) $(CXXFLAGS) -c -o $@ $<
75 |
76 | %.o:$(IMGUI_DIR)/%.cpp
77 | $(CXX) $(CXXFLAGS) -c -o $@ $<
78 |
79 | %.o:$(IMGUI_DIR)/backends/%.cpp
80 | $(CXX) $(CXXFLAGS) -c -o $@ $<
81 |
82 | all: $(EXE)
83 | @echo Build complete for $(ECHO_MESSAGE)
84 |
85 | $(EXE): $(OBJS)
86 | $(CXX) -o $@ $^ $(CXXFLAGS) $(LIBS)
87 |
88 | clean:
89 | rm -f $(EXE) $(OBJS)
90 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/examples/example_sdl_opengl3/Makefile:
--------------------------------------------------------------------------------
1 | #
2 | # Cross Platform Makefile
3 | # Compatible with MSYS2/MINGW, Ubuntu 14.04.1 and Mac OS X
4 | #
5 | # You will need SDL2 (http://www.libsdl.org):
6 | # Linux:
7 | # apt-get install libsdl2-dev
8 | # Mac OS X:
9 | # brew install sdl2
10 | # MSYS2:
11 | # pacman -S mingw-w64-i686-SDL2
12 | #
13 |
14 | #CXX = g++
15 | #CXX = clang++
16 |
17 | EXE = example_sdl_opengl3
18 | IMGUI_DIR = ../..
19 | SOURCES = main.cpp
20 | 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
21 | SOURCES += $(IMGUI_DIR)/backends/imgui_impl_sdl.cpp $(IMGUI_DIR)/backends/imgui_impl_opengl3.cpp
22 | OBJS = $(addsuffix .o, $(basename $(notdir $(SOURCES))))
23 | UNAME_S := $(shell uname -s)
24 | LINUX_GL_LIBS = -lGL
25 |
26 | CXXFLAGS = -I$(IMGUI_DIR) -I$(IMGUI_DIR)/backends
27 | CXXFLAGS += -g -Wall -Wformat
28 | LIBS =
29 |
30 | ##---------------------------------------------------------------------
31 | ## OPENGL ES
32 | ##---------------------------------------------------------------------
33 |
34 | ## This assumes a GL ES library available in the system, e.g. libGLESv2.so
35 | # CXXFLAGS += -DIMGUI_IMPL_OPENGL_ES2
36 | # LINUX_GL_LIBS = -lGLESv2
37 | ## If you're on a Raspberry Pi and want to use the legacy drivers,
38 | ## use the following instead:
39 | # LINUX_GL_LIBS = -L/opt/vc/lib -lbrcmGLESv2
40 |
41 | ##---------------------------------------------------------------------
42 | ## BUILD FLAGS PER PLATFORM
43 | ##---------------------------------------------------------------------
44 |
45 | ifeq ($(UNAME_S), Linux) #LINUX
46 | ECHO_MESSAGE = "Linux"
47 | LIBS += $(LINUX_GL_LIBS) -ldl `sdl2-config --libs`
48 |
49 | CXXFLAGS += `sdl2-config --cflags`
50 | CFLAGS = $(CXXFLAGS)
51 | endif
52 |
53 | ifeq ($(UNAME_S), Darwin) #APPLE
54 | ECHO_MESSAGE = "Mac OS X"
55 | LIBS += -framework OpenGL -framework Cocoa -framework IOKit -framework CoreVideo `sdl2-config --libs`
56 | LIBS += -L/usr/local/lib -L/opt/local/lib
57 |
58 | CXXFLAGS += `sdl2-config --cflags`
59 | CXXFLAGS += -I/usr/local/include -I/opt/local/include
60 | CFLAGS = $(CXXFLAGS)
61 | endif
62 |
63 | ifeq ($(OS), Windows_NT)
64 | ECHO_MESSAGE = "MinGW"
65 | LIBS += -lgdi32 -lopengl32 -limm32 `pkg-config --static --libs sdl2`
66 |
67 | CXXFLAGS += `pkg-config --cflags sdl2`
68 | CFLAGS = $(CXXFLAGS)
69 | endif
70 |
71 | ##---------------------------------------------------------------------
72 | ## BUILD RULES
73 | ##---------------------------------------------------------------------
74 |
75 | %.o:%.cpp
76 | $(CXX) $(CXXFLAGS) -c -o $@ $<
77 |
78 | %.o:$(IMGUI_DIR)/%.cpp
79 | $(CXX) $(CXXFLAGS) -c -o $@ $<
80 |
81 | %.o:$(IMGUI_DIR)/backends/%.cpp
82 | $(CXX) $(CXXFLAGS) -c -o $@ $<
83 |
84 | all: $(EXE)
85 | @echo Build complete for $(ECHO_MESSAGE)
86 |
87 | $(EXE): $(OBJS)
88 | $(CXX) -o $@ $^ $(CXXFLAGS) $(LIBS)
89 |
90 | clean:
91 | rm -f $(EXE) $(OBJS)
92 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/backends/imgui_impl_dx12.h:
--------------------------------------------------------------------------------
1 | // dear imgui: Renderer Backend for DirectX12
2 | // This needs to be used along with a Platform Backend (e.g. Win32)
3 |
4 | // Implemented features:
5 | // [X] Renderer: User texture binding. Use 'D3D12_GPU_DESCRIPTOR_HANDLE' as ImTextureID. Read the FAQ about ImTextureID!
6 | // [X] Renderer: Multi-viewport support. Enable with 'io.ConfigFlags |= ImGuiConfigFlags_ViewportsEnable'.
7 | // [X] Renderer: Support for large meshes (64k+ vertices) with 16-bit indices.
8 |
9 | // Important: to compile on 32-bit systems, this backend requires code to be compiled with '#define ImTextureID ImU64'.
10 | // This is because we need ImTextureID to carry a 64-bit value and by default ImTextureID is defined as void*.
11 | // This define is set in the example .vcxproj file and need to be replicated in your app or by adding it to your imconfig.h file.
12 |
13 | // You can use unmodified imgui_impl_* files in your project. See examples/ folder for examples of using this.
14 | // Prefer including the entire imgui/ repository into your project (either as a copy or as a submodule), and only build the backends you need.
15 | // If you are new to Dear ImGui, read documentation from the docs/ folder + read the top of imgui.cpp.
16 | // Read online: https://github.com/ocornut/imgui/tree/master/docs
17 |
18 | #pragma once
19 | #include "imgui.h" // IMGUI_IMPL_API
20 |
21 | #ifdef _MSC_VER
22 | #pragma warning (push)
23 | #pragma warning (disable: 4471) // a forward declaration of an unscoped enumeration must have an underlying type
24 | #endif
25 |
26 | enum DXGI_FORMAT;
27 | struct ID3D12Device;
28 | struct ID3D12DescriptorHeap;
29 | struct ID3D12GraphicsCommandList;
30 | struct D3D12_CPU_DESCRIPTOR_HANDLE;
31 | struct D3D12_GPU_DESCRIPTOR_HANDLE;
32 |
33 | // cmd_list is the command list that the implementation will use to render imgui draw lists.
34 | // Before calling the render function, caller must prepare cmd_list by resetting it and setting the appropriate
35 | // render target and descriptor heap that contains font_srv_cpu_desc_handle/font_srv_gpu_desc_handle.
36 | // font_srv_cpu_desc_handle and font_srv_gpu_desc_handle are handles to a single SRV descriptor to use for the internal font texture.
37 | IMGUI_IMPL_API bool ImGui_ImplDX12_Init(ID3D12Device* device, int num_frames_in_flight, DXGI_FORMAT rtv_format, ID3D12DescriptorHeap* cbv_srv_heap,
38 | D3D12_CPU_DESCRIPTOR_HANDLE font_srv_cpu_desc_handle, D3D12_GPU_DESCRIPTOR_HANDLE font_srv_gpu_desc_handle);
39 | IMGUI_IMPL_API void ImGui_ImplDX12_Shutdown();
40 | IMGUI_IMPL_API void ImGui_ImplDX12_NewFrame();
41 | IMGUI_IMPL_API void ImGui_ImplDX12_RenderDrawData(ImDrawData* draw_data, ID3D12GraphicsCommandList* graphics_command_list);
42 |
43 | // Use if you want to reset your rendering device without losing Dear ImGui state.
44 | IMGUI_IMPL_API void ImGui_ImplDX12_InvalidateDeviceObjects();
45 | IMGUI_IMPL_API bool ImGui_ImplDX12_CreateDeviceObjects();
46 |
47 | #ifdef _MSC_VER
48 | #pragma warning (pop)
49 | #endif
50 |
51 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/imgui_impl_win32.h:
--------------------------------------------------------------------------------
1 | // dear imgui: Platform Backend for Windows (standard windows API for 32 and 64 bits applications)
2 | // This needs to be used along with a Renderer (e.g. DirectX11, OpenGL3, Vulkan..)
3 |
4 | // Implemented features:
5 | // [X] Platform: Clipboard support (for Win32 this is actually part of core dear imgui)
6 | // [X] Platform: Mouse cursor shape and visibility. Disable with 'io.ConfigFlags |= ImGuiConfigFlags_NoMouseCursorChange'.
7 | // [X] Platform: Keyboard arrays indexed using VK_* Virtual Key Codes, e.g. ImGui::IsKeyPressed(VK_SPACE).
8 | // [X] Platform: Gamepad support. Enabled with 'io.ConfigFlags |= ImGuiConfigFlags_NavEnableGamepad'.
9 | // [X] Platform: Multi-viewport support (multiple windows). Enable with 'io.ConfigFlags |= ImGuiConfigFlags_ViewportsEnable'.
10 |
11 | // You can use unmodified imgui_impl_* files in your project. See examples/ folder for examples of using this.
12 | // Prefer including the entire imgui/ repository into your project (either as a copy or as a submodule), and only build the backends you need.
13 | // If you are new to Dear ImGui, read documentation from the docs/ folder + read the top of imgui.cpp.
14 | // Read online: https://github.com/ocornut/imgui/tree/master/docs
15 |
16 | #pragma once
17 | #include "imgui.h" // IMGUI_IMPL_API
18 |
19 | IMGUI_IMPL_API bool ImGui_ImplWin32_Init(void* hwnd);
20 | IMGUI_IMPL_API void ImGui_ImplWin32_Shutdown();
21 | IMGUI_IMPL_API void ImGui_ImplWin32_NewFrame();
22 |
23 | // Win32 message handler your application need to call.
24 | // - Intentionally commented out in a '#if 0' block to avoid dragging dependencies on from this helper.
25 | // - You should COPY the line below into your .cpp code to forward declare the function and then you can call it.
26 | #if 0
27 | extern IMGUI_IMPL_API LRESULT ImGui_ImplWin32_WndProcHandler(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);
28 | #endif
29 |
30 | // DPI-related helpers (optional)
31 | // - Use to enable DPI awareness without having to create an application manifest.
32 | // - Your own app may already do this via a manifest or explicit calls. This is mostly useful for our examples/ apps.
33 | // - In theory we could call simple functions from Windows SDK such as SetProcessDPIAware(), SetProcessDpiAwareness(), etc.
34 | // but most of the functions provided by Microsoft require Windows 8.1/10+ SDK at compile time and Windows 8/10+ at runtime,
35 | // neither we want to require the user to have. So we dynamically select and load those functions to avoid dependencies.
36 | IMGUI_IMPL_API void ImGui_ImplWin32_EnableDpiAwareness();
37 | IMGUI_IMPL_API float ImGui_ImplWin32_GetDpiScaleForHwnd(void* hwnd); // HWND hwnd
38 | IMGUI_IMPL_API float ImGui_ImplWin32_GetDpiScaleForMonitor(void* monitor); // HMONITOR monitor
39 |
40 | // Transparency related helpers (optional) [experimental]
41 | // - Use to enable alpha compositing transparency with the desktop.
42 | // - Use together with e.g. clearing your framebuffer with zero-alpha.
43 | IMGUI_IMPL_API void ImGui_ImplWin32_EnableAlphaCompositing(void* hwnd); // HWND hwnd
44 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/examples/example_null/Makefile:
--------------------------------------------------------------------------------
1 | #
2 | # Cross Platform Makefile
3 | # Compatible with MSYS2/MINGW, Ubuntu 14.04.1 and Mac OS X
4 | #
5 | # Important: This is a "null backend" application, with no visible output or interaction!
6 | # This is used for testing purpose and continuous integration, and has little use for end-user.
7 | #
8 |
9 | # Options
10 | WITH_EXTRA_WARNINGS ?= 0
11 | WITH_FREETYPE ?= 0
12 |
13 | EXE = example_null
14 | IMGUI_DIR = ../..
15 | SOURCES = main.cpp
16 | 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
17 | OBJS = $(addsuffix .o, $(basename $(notdir $(SOURCES))))
18 | UNAME_S := $(shell uname -s)
19 |
20 | CXXFLAGS += -I$(IMGUI_DIR)
21 | CXXFLAGS += -g -Wall -Wformat
22 | LIBS =
23 |
24 | # We use the WITH_EXTRA_WARNINGS flag on our CI setup to eagerly catch zealous warnings
25 | ifeq ($(WITH_EXTRA_WARNINGS), 1)
26 | CXXFLAGS += -Wno-zero-as-null-pointer-constant -Wno-double-promotion -Wno-variadic-macros
27 | endif
28 |
29 | # We use the WITH_FREETYPE flag on our CI setup to test compiling misc/freetype/imgui_freetype.cpp
30 | # (only supported on Linux, and note that the imgui_freetype code currently won't be executed)
31 | ifeq ($(WITH_FREETYPE), 1)
32 | SOURCES += $(IMGUI_DIR)/misc/freetype/imgui_freetype.cpp
33 | CXXFLAGS += $(shell pkg-config --cflags freetype2)
34 | LIBS += $(shell pkg-config --libs freetype2)
35 | endif
36 |
37 | ##---------------------------------------------------------------------
38 | ## BUILD FLAGS PER PLATFORM
39 | ##---------------------------------------------------------------------
40 |
41 | ifeq ($(UNAME_S), Linux) #LINUX
42 | ECHO_MESSAGE = "Linux"
43 | ifeq ($(WITH_EXTRA_WARNINGS), 1)
44 | CXXFLAGS += -Wextra -Wpedantic
45 | ifeq ($(shell $(CXX) -v 2>&1 | grep -c "clang version"), 1)
46 | CXXFLAGS += -Wshadow -Wsign-conversion
47 | endif
48 | endif
49 | CFLAGS = $(CXXFLAGS)
50 | endif
51 |
52 | ifeq ($(UNAME_S), Darwin) #APPLE
53 | ECHO_MESSAGE = "Mac OS X"
54 | ifeq ($(WITH_EXTRA_WARNINGS), 1)
55 | CXXFLAGS += -Weverything -Wno-reserved-id-macro -Wno-c++98-compat-pedantic -Wno-padded -Wno-c++11-long-long -Wno-poison-system-directories
56 | endif
57 | CFLAGS = $(CXXFLAGS)
58 | endif
59 |
60 | ifeq ($(OS), Windows_NT)
61 | ECHO_MESSAGE = "MinGW"
62 | ifeq ($(WITH_EXTRA_WARNINGS), 1)
63 | CXXFLAGS += -Wextra -Wpedantic
64 | endif
65 | LIBS += -limm32
66 | CFLAGS = $(CXXFLAGS)
67 | endif
68 |
69 | ##---------------------------------------------------------------------
70 | ## BUILD RULES
71 | ##---------------------------------------------------------------------
72 |
73 | %.o:%.cpp
74 | $(CXX) $(CXXFLAGS) -c -o $@ $<
75 |
76 | %.o:$(IMGUI_DIR)/%.cpp
77 | $(CXX) $(CXXFLAGS) -c -o $@ $<
78 |
79 | %.o:$(IMGUI_DIR)/backends/%.cpp
80 | $(CXX) $(CXXFLAGS) -c -o $@ $<
81 |
82 | %.o:$(IMGUI_DIR)/misc/freetype/%.cpp
83 | $(CXX) $(CXXFLAGS) -c -o $@ $<
84 |
85 | all: $(EXE)
86 | @echo Build complete for $(ECHO_MESSAGE)
87 |
88 | $(EXE): $(OBJS)
89 | $(CXX) -o $@ $^ $(CXXFLAGS) $(LIBS)
90 |
91 | clean:
92 | rm -f $(EXE) $(OBJS)
93 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/backends/imgui_impl_win32.h:
--------------------------------------------------------------------------------
1 | // dear imgui: Platform Backend for Windows (standard windows API for 32 and 64 bits applications)
2 | // This needs to be used along with a Renderer (e.g. DirectX11, OpenGL3, Vulkan..)
3 |
4 | // Implemented features:
5 | // [X] Platform: Clipboard support (for Win32 this is actually part of core dear imgui)
6 | // [X] Platform: Mouse cursor shape and visibility. Disable with 'io.ConfigFlags |= ImGuiConfigFlags_NoMouseCursorChange'.
7 | // [X] Platform: Keyboard arrays indexed using VK_* Virtual Key Codes, e.g. ImGui::IsKeyPressed(VK_SPACE).
8 | // [X] Platform: Gamepad support. Enabled with 'io.ConfigFlags |= ImGuiConfigFlags_NavEnableGamepad'.
9 | // [X] Platform: Multi-viewport support (multiple windows). Enable with 'io.ConfigFlags |= ImGuiConfigFlags_ViewportsEnable'.
10 |
11 | // You can use unmodified imgui_impl_* files in your project. See examples/ folder for examples of using this.
12 | // Prefer including the entire imgui/ repository into your project (either as a copy or as a submodule), and only build the backends you need.
13 | // If you are new to Dear ImGui, read documentation from the docs/ folder + read the top of imgui.cpp.
14 | // Read online: https://github.com/ocornut/imgui/tree/master/docs
15 |
16 | #pragma once
17 | #include "imgui.h" // IMGUI_IMPL_API
18 |
19 | IMGUI_IMPL_API bool ImGui_ImplWin32_Init(void* hwnd);
20 | IMGUI_IMPL_API void ImGui_ImplWin32_Shutdown();
21 | IMGUI_IMPL_API void ImGui_ImplWin32_NewFrame();
22 |
23 | // Win32 message handler your application need to call.
24 | // - Intentionally commented out in a '#if 0' block to avoid dragging dependencies on from this helper.
25 | // - You should COPY the line below into your .cpp code to forward declare the function and then you can call it.
26 | #if 0
27 | extern IMGUI_IMPL_API LRESULT ImGui_ImplWin32_WndProcHandler(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);
28 | #endif
29 |
30 | // DPI-related helpers (optional)
31 | // - Use to enable DPI awareness without having to create an application manifest.
32 | // - Your own app may already do this via a manifest or explicit calls. This is mostly useful for our examples/ apps.
33 | // - In theory we could call simple functions from Windows SDK such as SetProcessDPIAware(), SetProcessDpiAwareness(), etc.
34 | // but most of the functions provided by Microsoft require Windows 8.1/10+ SDK at compile time and Windows 8/10+ at runtime,
35 | // neither we want to require the user to have. So we dynamically select and load those functions to avoid dependencies.
36 | IMGUI_IMPL_API void ImGui_ImplWin32_EnableDpiAwareness();
37 | IMGUI_IMPL_API float ImGui_ImplWin32_GetDpiScaleForHwnd(void* hwnd); // HWND hwnd
38 | IMGUI_IMPL_API float ImGui_ImplWin32_GetDpiScaleForMonitor(void* monitor); // HMONITOR monitor
39 |
40 | // Transparency related helpers (optional) [experimental]
41 | // - Use to enable alpha compositing transparency with the desktop.
42 | // - Use together with e.g. clearing your framebuffer with zero-alpha.
43 | IMGUI_IMPL_API void ImGui_ImplWin32_EnableAlphaCompositing(void* hwnd); // HWND hwnd
44 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/backends/imgui_impl_opengl3.h:
--------------------------------------------------------------------------------
1 | // dear imgui: Renderer Backend for modern OpenGL with shaders / programmatic pipeline
2 | // - Desktop GL: 2.x 3.x 4.x
3 | // - Embedded GL: ES 2.0 (WebGL 1.0), ES 3.0 (WebGL 2.0)
4 | // This needs to be used along with a Platform Backend (e.g. GLFW, SDL, Win32, custom..)
5 |
6 | // Implemented features:
7 | // [X] Renderer: User texture binding. Use 'GLuint' OpenGL texture identifier as void*/ImTextureID. Read the FAQ about ImTextureID!
8 | // [X] Renderer: Multi-viewport support. Enable with 'io.ConfigFlags |= ImGuiConfigFlags_ViewportsEnable'.
9 | // [x] Renderer: Desktop GL only: Support for large meshes (64k+ vertices) with 16-bit indices.
10 |
11 | // You can use unmodified imgui_impl_* files in your project. See examples/ folder for examples of using this.
12 | // Prefer including the entire imgui/ repository into your project (either as a copy or as a submodule), and only build the backends you need.
13 | // If you are new to Dear ImGui, read documentation from the docs/ folder + read the top of imgui.cpp.
14 | // Read online: https://github.com/ocornut/imgui/tree/master/docs
15 |
16 | // About GLSL version:
17 | // The 'glsl_version' initialization parameter should be NULL (default) or a "#version XXX" string.
18 | // On computer platform the GLSL version default to "#version 130". On OpenGL ES 3 platform it defaults to "#version 300 es"
19 | // Only override if your GL version doesn't handle this GLSL version. See GLSL version table at the top of imgui_impl_opengl3.cpp.
20 |
21 | #pragma once
22 | #include "imgui.h" // IMGUI_IMPL_API
23 |
24 | // Backend API
25 | IMGUI_IMPL_API bool ImGui_ImplOpenGL3_Init(const char* glsl_version = NULL);
26 | IMGUI_IMPL_API void ImGui_ImplOpenGL3_Shutdown();
27 | IMGUI_IMPL_API void ImGui_ImplOpenGL3_NewFrame();
28 | IMGUI_IMPL_API void ImGui_ImplOpenGL3_RenderDrawData(ImDrawData* draw_data);
29 |
30 | // (Optional) Called by Init/NewFrame/Shutdown
31 | IMGUI_IMPL_API bool ImGui_ImplOpenGL3_CreateFontsTexture();
32 | IMGUI_IMPL_API void ImGui_ImplOpenGL3_DestroyFontsTexture();
33 | IMGUI_IMPL_API bool ImGui_ImplOpenGL3_CreateDeviceObjects();
34 | IMGUI_IMPL_API void ImGui_ImplOpenGL3_DestroyDeviceObjects();
35 |
36 | // Specific OpenGL ES versions
37 | //#define IMGUI_IMPL_OPENGL_ES2 // Auto-detected on Emscripten
38 | //#define IMGUI_IMPL_OPENGL_ES3 // Auto-detected on iOS/Android
39 |
40 | // You can explicitly select GLES2 or GLES3 API by using one of the '#define IMGUI_IMPL_OPENGL_LOADER_XXX' in imconfig.h or compiler command-line.
41 | #if !defined(IMGUI_IMPL_OPENGL_ES2) \
42 | && !defined(IMGUI_IMPL_OPENGL_ES3)
43 |
44 | // Try to detect GLES on matching platforms
45 | #if defined(__APPLE__)
46 | #include
47 | #endif
48 | #if (defined(__APPLE__) && (TARGET_OS_IOS || TARGET_OS_TV)) || (defined(__ANDROID__))
49 | #define IMGUI_IMPL_OPENGL_ES3 // iOS, Android -> GL ES 3, "#version 300 es"
50 | #elif defined(__EMSCRIPTEN__)
51 | #define IMGUI_IMPL_OPENGL_ES2 // Emscripten -> GL ES 2, "#version 100"
52 | #else
53 | // Otherwise imgui_impl_opengl3_loader.h will be used.
54 | #endif
55 |
56 | #endif
57 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/backends/imgui_impl_glfw.h:
--------------------------------------------------------------------------------
1 | // dear imgui: Platform Backend for GLFW
2 | // This needs to be used along with a Renderer (e.g. OpenGL3, Vulkan, WebGPU..)
3 | // (Info: GLFW is a cross-platform general purpose library for handling windows, inputs, OpenGL/Vulkan graphics context creation, etc.)
4 |
5 | // Implemented features:
6 | // [X] Platform: Clipboard support.
7 | // [X] Platform: Gamepad support. Enable with 'io.ConfigFlags |= ImGuiConfigFlags_NavEnableGamepad'.
8 | // [x] Platform: Mouse cursor shape and visibility. Disable with 'io.ConfigFlags |= ImGuiConfigFlags_NoMouseCursorChange'. FIXME: 3 cursors types are missing from GLFW.
9 | // [X] Platform: Keyboard arrays indexed using GLFW_KEY_* codes, e.g. ImGui::IsKeyPressed(GLFW_KEY_SPACE).
10 | // [X] Platform: Multi-viewport support (multiple windows). Enable with 'io.ConfigFlags |= ImGuiConfigFlags_ViewportsEnable'.
11 |
12 | // Issues:
13 | // [ ] Platform: Multi-viewport support: ParentViewportID not honored, and so io.ConfigViewportsNoDefaultParent has no effect (minor).
14 |
15 | // You can use unmodified imgui_impl_* files in your project. See examples/ folder for examples of using this.
16 | // Prefer including the entire imgui/ repository into your project (either as a copy or as a submodule), and only build the backends you need.
17 | // If you are new to Dear ImGui, read documentation from the docs/ folder + read the top of imgui.cpp.
18 | // Read online: https://github.com/ocornut/imgui/tree/master/docs
19 |
20 | // About GLSL version:
21 | // The 'glsl_version' initialization parameter defaults to "#version 150" if NULL.
22 | // Only override if your GL version doesn't handle this GLSL version. Keep NULL if unsure!
23 |
24 | #pragma once
25 | #include "imgui.h" // IMGUI_IMPL_API
26 |
27 | struct GLFWwindow;
28 | struct GLFWmonitor;
29 |
30 | IMGUI_IMPL_API bool ImGui_ImplGlfw_InitForOpenGL(GLFWwindow* window, bool install_callbacks);
31 | IMGUI_IMPL_API bool ImGui_ImplGlfw_InitForVulkan(GLFWwindow* window, bool install_callbacks);
32 | IMGUI_IMPL_API bool ImGui_ImplGlfw_InitForOther(GLFWwindow* window, bool install_callbacks);
33 | IMGUI_IMPL_API void ImGui_ImplGlfw_Shutdown();
34 | IMGUI_IMPL_API void ImGui_ImplGlfw_NewFrame();
35 |
36 | // GLFW callbacks
37 | // - When calling Init with 'install_callbacks=true': GLFW callbacks will be installed for you. They will call user's previously installed callbacks, if any.
38 | // - When calling Init with 'install_callbacks=false': GLFW callbacks won't be installed. You will need to call those function yourself from your own GLFW callbacks.
39 | IMGUI_IMPL_API void ImGui_ImplGlfw_WindowFocusCallback(GLFWwindow* window, int focused);
40 | IMGUI_IMPL_API void ImGui_ImplGlfw_CursorEnterCallback(GLFWwindow* window, int entered);
41 | IMGUI_IMPL_API void ImGui_ImplGlfw_MouseButtonCallback(GLFWwindow* window, int button, int action, int mods);
42 | IMGUI_IMPL_API void ImGui_ImplGlfw_ScrollCallback(GLFWwindow* window, double xoffset, double yoffset);
43 | IMGUI_IMPL_API void ImGui_ImplGlfw_KeyCallback(GLFWwindow* window, int key, int scancode, int action, int mods);
44 | IMGUI_IMPL_API void ImGui_ImplGlfw_CharCallback(GLFWwindow* window, unsigned int c);
45 | IMGUI_IMPL_API void ImGui_ImplGlfw_MonitorCallback(GLFWmonitor* monitor, int event);
46 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/examples/example_emscripten_wgpu/Makefile:
--------------------------------------------------------------------------------
1 | #
2 | # Makefile to use with emscripten
3 | # See https://emscripten.org/docs/getting_started/downloads.html
4 | # for installation instructions.
5 | #
6 | # This Makefile assumes you have loaded emscripten's environment.
7 | # (On Windows, you may need to execute emsdk_env.bat or encmdprompt.bat ahead)
8 | #
9 | # Running `make` will produce three files:
10 | # - web/index.html (current stored in the repository)
11 | # - web/index.js
12 | # - web/index.wasm
13 | #
14 | # All three are needed to run the demo.
15 |
16 | CC = emcc
17 | CXX = em++
18 | WEB_DIR = web
19 | EXE = $(WEB_DIR)/index.js
20 | IMGUI_DIR = ../..
21 | SOURCES = main.cpp
22 | 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
23 | SOURCES += $(IMGUI_DIR)/backends/imgui_impl_glfw.cpp $(IMGUI_DIR)/backends/imgui_impl_wgpu.cpp
24 | OBJS = $(addsuffix .o, $(basename $(notdir $(SOURCES))))
25 | UNAME_S := $(shell uname -s)
26 | CPPFLAGS =
27 | LDFLAGS =
28 | EMS =
29 |
30 | ##---------------------------------------------------------------------
31 | ## EMSCRIPTEN OPTIONS
32 | ##---------------------------------------------------------------------
33 |
34 | # ("EMS" options gets added to both CPPFLAGS and LDFLAGS, whereas some options are for linker only)
35 | EMS += -s DISABLE_EXCEPTION_CATCHING=1
36 | LDFLAGS += -s USE_GLFW=3 -s USE_WEBGPU=1
37 | LDFLAGS += -s WASM=1 -s ALLOW_MEMORY_GROWTH=1 -s NO_EXIT_RUNTIME=0 -s ASSERTIONS=1
38 |
39 | # Emscripten allows preloading a file or folder to be accessible at runtime.
40 | # The Makefile for this example project suggests embedding the misc/fonts/ folder into our application, it will then be accessible as "/fonts"
41 | # See documentation for more details: https://emscripten.org/docs/porting/files/packaging_files.html
42 | # (Default value is 0. Set to 1 to enable file-system and include the misc/fonts/ folder as part of the build.)
43 | USE_FILE_SYSTEM ?= 0
44 | ifeq ($(USE_FILE_SYSTEM), 0)
45 | LDFLAGS += -s NO_FILESYSTEM=1
46 | CPPFLAGS += -DIMGUI_DISABLE_FILE_FUNCTIONS
47 | endif
48 | ifeq ($(USE_FILE_SYSTEM), 1)
49 | LDFLAGS += --no-heap-copy --preload-file ../../misc/fonts@/fonts
50 | endif
51 |
52 | ##---------------------------------------------------------------------
53 | ## FINAL BUILD FLAGS
54 | ##---------------------------------------------------------------------
55 |
56 | CPPFLAGS += -I$(IMGUI_DIR) -I$(IMGUI_DIR)/backends
57 | #CPPFLAGS += -g
58 | CPPFLAGS += -Wall -Wformat -Os $(EMS)
59 | #LDFLAGS += --shell-file shell_minimal.html
60 | LDFLAGS += $(EMS)
61 |
62 | ##---------------------------------------------------------------------
63 | ## BUILD RULES
64 | ##---------------------------------------------------------------------
65 |
66 | %.o:%.cpp
67 | $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c -o $@ $<
68 |
69 | %.o:$(IMGUI_DIR)/%.cpp
70 | $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c -o $@ $<
71 |
72 | %.o:$(IMGUI_DIR)/backends/%.cpp
73 | $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c -o $@ $<
74 |
75 | all: $(EXE)
76 | @echo Build complete for $(EXE)
77 |
78 | $(WEB_DIR):
79 | mkdir $@
80 |
81 | serve: all
82 | python3 -m http.server -d $(WEB_DIR)
83 |
84 | $(EXE): $(OBJS) $(WEB_DIR)
85 | $(CXX) -o $@ $(OBJS) $(LDFLAGS)
86 |
87 | clean:
88 | rm -f $(EXE) $(OBJS) $(WEB_DIR)/*.js $(WEB_DIR)/*.wasm $(WEB_DIR)/*.wasm.pre
89 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/misc/cpp/imgui_stdlib.cpp:
--------------------------------------------------------------------------------
1 | // dear imgui: wrappers for C++ standard library (STL) types (std::string, etc.)
2 | // This is also an example of how you may wrap your own similar types.
3 |
4 | // Compatibility:
5 | // - std::string support is only guaranteed to work from C++11.
6 | // If you try to use it pre-C++11, please share your findings (w/ info about compiler/architecture)
7 |
8 | // Changelog:
9 | // - v0.10: Initial version. Added InputText() / InputTextMultiline() calls with std::string
10 |
11 | #include "imgui.h"
12 | #include "imgui_stdlib.h"
13 |
14 | struct InputTextCallback_UserData
15 | {
16 | std::string* Str;
17 | ImGuiInputTextCallback ChainCallback;
18 | void* ChainCallbackUserData;
19 | };
20 |
21 | static int InputTextCallback(ImGuiInputTextCallbackData* data)
22 | {
23 | InputTextCallback_UserData* user_data = (InputTextCallback_UserData*)data->UserData;
24 | if (data->EventFlag == ImGuiInputTextFlags_CallbackResize)
25 | {
26 | // Resize string callback
27 | // If for some reason we refuse the new length (BufTextLen) and/or capacity (BufSize) we need to set them back to what we want.
28 | std::string* str = user_data->Str;
29 | IM_ASSERT(data->Buf == str->c_str());
30 | str->resize(data->BufTextLen);
31 | data->Buf = (char*)str->c_str();
32 | }
33 | else if (user_data->ChainCallback)
34 | {
35 | // Forward to user callback, if any
36 | data->UserData = user_data->ChainCallbackUserData;
37 | return user_data->ChainCallback(data);
38 | }
39 | return 0;
40 | }
41 |
42 | bool ImGui::InputText(const char* label, std::string* str, ImGuiInputTextFlags flags, ImGuiInputTextCallback callback, void* user_data)
43 | {
44 | IM_ASSERT((flags & ImGuiInputTextFlags_CallbackResize) == 0);
45 | flags |= ImGuiInputTextFlags_CallbackResize;
46 |
47 | InputTextCallback_UserData cb_user_data;
48 | cb_user_data.Str = str;
49 | cb_user_data.ChainCallback = callback;
50 | cb_user_data.ChainCallbackUserData = user_data;
51 | return InputText(label, (char*)str->c_str(), str->capacity() + 1, flags, InputTextCallback, &cb_user_data);
52 | }
53 |
54 | bool ImGui::InputTextMultiline(const char* label, std::string* str, const ImVec2& size, ImGuiInputTextFlags flags, ImGuiInputTextCallback callback, void* user_data)
55 | {
56 | IM_ASSERT((flags & ImGuiInputTextFlags_CallbackResize) == 0);
57 | flags |= ImGuiInputTextFlags_CallbackResize;
58 |
59 | InputTextCallback_UserData cb_user_data;
60 | cb_user_data.Str = str;
61 | cb_user_data.ChainCallback = callback;
62 | cb_user_data.ChainCallbackUserData = user_data;
63 | return InputTextMultiline(label, (char*)str->c_str(), str->capacity() + 1, size, flags, InputTextCallback, &cb_user_data);
64 | }
65 |
66 | bool ImGui::InputTextWithHint(const char* label, const char* hint, std::string* str, ImGuiInputTextFlags flags, ImGuiInputTextCallback callback, void* user_data)
67 | {
68 | IM_ASSERT((flags & ImGuiInputTextFlags_CallbackResize) == 0);
69 | flags |= ImGuiInputTextFlags_CallbackResize;
70 |
71 | InputTextCallback_UserData cb_user_data;
72 | cb_user_data.Str = str;
73 | cb_user_data.ChainCallback = callback;
74 | cb_user_data.ChainCallbackUserData = user_data;
75 | return InputTextWithHint(label, hint, (char*)str->c_str(), str->capacity() + 1, flags, InputTextCallback, &cb_user_data);
76 | }
77 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/examples/example_emscripten_opengl3/Makefile:
--------------------------------------------------------------------------------
1 | #
2 | # Makefile to use with emscripten
3 | # See https://emscripten.org/docs/getting_started/downloads.html
4 | # for installation instructions.
5 | #
6 | # This Makefile assumes you have loaded emscripten's environment.
7 | # (On Windows, you may need to execute emsdk_env.bat or encmdprompt.bat ahead)
8 | #
9 | # Running `make` will produce three files:
10 | # - web/index.html
11 | # - web/index.js
12 | # - web/index.wasm
13 | #
14 | # All three are needed to run the demo.
15 |
16 | CC = emcc
17 | CXX = em++
18 | WEB_DIR = web
19 | EXE = $(WEB_DIR)/index.html
20 | IMGUI_DIR = ../..
21 | SOURCES = main.cpp
22 | 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
23 | SOURCES += $(IMGUI_DIR)/backends/imgui_impl_sdl.cpp $(IMGUI_DIR)/backends/imgui_impl_opengl3.cpp
24 | OBJS = $(addsuffix .o, $(basename $(notdir $(SOURCES))))
25 | UNAME_S := $(shell uname -s)
26 | CPPFLAGS =
27 | LDFLAGS =
28 | EMS =
29 |
30 | ##---------------------------------------------------------------------
31 | ## EMSCRIPTEN OPTIONS
32 | ##---------------------------------------------------------------------
33 |
34 | # ("EMS" options gets added to both CPPFLAGS and LDFLAGS, whereas some options are for linker only)
35 | EMS += -s USE_SDL=2
36 | EMS += -s DISABLE_EXCEPTION_CATCHING=1
37 | LDFLAGS += -s WASM=1 -s ALLOW_MEMORY_GROWTH=1 -s NO_EXIT_RUNTIME=0 -s ASSERTIONS=1
38 |
39 | # Uncomment next line to fix possible rendering bugs with Emscripten version older then 1.39.0 (https://github.com/ocornut/imgui/issues/2877)
40 | #EMS += -s BINARYEN_TRAP_MODE=clamp
41 | #EMS += -s SAFE_HEAP=1 ## Adds overhead
42 |
43 | # Emscripten allows preloading a file or folder to be accessible at runtime.
44 | # The Makefile for this example project suggests embedding the misc/fonts/ folder into our application, it will then be accessible as "/fonts"
45 | # See documentation for more details: https://emscripten.org/docs/porting/files/packaging_files.html
46 | # (Default value is 0. Set to 1 to enable file-system and include the misc/fonts/ folder as part of the build.)
47 | USE_FILE_SYSTEM ?= 0
48 | ifeq ($(USE_FILE_SYSTEM), 0)
49 | LDFLAGS += -s NO_FILESYSTEM=1
50 | CPPFLAGS += -DIMGUI_DISABLE_FILE_FUNCTIONS
51 | endif
52 | ifeq ($(USE_FILE_SYSTEM), 1)
53 | LDFLAGS += --no-heap-copy --preload-file ../../misc/fonts@/fonts
54 | endif
55 |
56 | ##---------------------------------------------------------------------
57 | ## FINAL BUILD FLAGS
58 | ##---------------------------------------------------------------------
59 |
60 | CPPFLAGS += -I$(IMGUI_DIR) -I$(IMGUI_DIR)/backends
61 | #CPPFLAGS += -g
62 | CPPFLAGS += -Wall -Wformat -Os $(EMS)
63 | LDFLAGS += --shell-file shell_minimal.html $(EMS)
64 |
65 | ##---------------------------------------------------------------------
66 | ## BUILD RULES
67 | ##---------------------------------------------------------------------
68 |
69 | %.o:%.cpp
70 | $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c -o $@ $<
71 |
72 | %.o:$(IMGUI_DIR)/%.cpp
73 | $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c -o $@ $<
74 |
75 | %.o:$(IMGUI_DIR)/backends/%.cpp
76 | $(CXX) $(CPPFLAGS) $(CXXFLAGS) -c -o $@ $<
77 |
78 | all: $(EXE)
79 | @echo Build complete for $(EXE)
80 |
81 | $(WEB_DIR):
82 | mkdir $@
83 |
84 | serve: all
85 | python3 -m http.server -d $(WEB_DIR)
86 |
87 | $(EXE): $(OBJS) $(WEB_DIR)
88 | $(CXX) -o $@ $(OBJS) $(LDFLAGS)
89 |
90 | clean:
91 | rm -rf $(OBJS) $(WEB_DIR)
92 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/.github/workflows/static-analysis.yml:
--------------------------------------------------------------------------------
1 | name: static-analysis
2 |
3 | on:
4 | workflow_run:
5 | # Perform static analysis together with build workflow. Build triggers of "build" workflow do not need to be repeated here.
6 | workflows:
7 | - build
8 | types:
9 | - requested
10 |
11 | jobs:
12 | PVS-Studio:
13 | runs-on: ubuntu-18.04
14 | steps:
15 | - uses: actions/checkout@v1
16 | with:
17 | fetch-depth: 1
18 |
19 | - name: Install Dependencies
20 | env:
21 | # The Secret variable setup in GitHub must be in format: "name_or_email key", on a single line
22 | PVS_STUDIO_LICENSE: ${{ secrets.PVS_STUDIO_LICENSE }}
23 | run: |
24 | if [[ "$PVS_STUDIO_LICENSE" != "" ]];
25 | then
26 | wget -q https://files.viva64.com/etc/pubkey.txt
27 | sudo apt-key add pubkey.txt
28 | sudo wget -O /etc/apt/sources.list.d/viva64.list https://files.viva64.com/etc/viva64.list
29 | sudo apt-get update
30 | sudo apt-get install -y pvs-studio
31 | pvs-studio-analyzer credentials -o pvs-studio.lic $PVS_STUDIO_LICENSE
32 | fi
33 |
34 | - name: PVS-Studio static analysis
35 | run: |
36 | if [[ ! -f pvs-studio.lic ]];
37 | then
38 | echo "PVS Studio license is missing. No analysis will be performed."
39 | echo "If you have a PVS Studio license please create a project secret named PVS_STUDIO_LICENSE with your license."
40 | echo "You may use a free license. More information at https://www.viva64.com/en/b/0457/"
41 | exit 0
42 | fi
43 | cd examples/example_null
44 | pvs-studio-analyzer trace -- make WITH_EXTRA_WARNINGS=1
45 | pvs-studio-analyzer analyze -e ../../imstb_rectpack.h -e ../../imstb_textedit.h -e ../../imstb_truetype.h -l ../../pvs-studio.lic -o pvs-studio.log
46 | plog-converter -a 'GA:1,2;OP:1' -d V1071 -t errorfile -w pvs-studio.log
47 |
48 | Discord-CI:
49 | runs-on: ubuntu-18.04
50 | needs: [PVS-Studio]
51 | if: always()
52 | steps:
53 | - uses: dearimgui/github_discord_notifier@latest
54 | with:
55 | discord-webhook: ${{ secrets.DISCORD_CI_WEBHOOK }}
56 | github-token: ${{ github.token }}
57 | action-task: discord-jobs
58 | discord-filter: "'{{ github.branch }}'.match(/master|docking/g) != null && '{{ run.conclusion }}' != '{{ last_run.conclusion }}'"
59 | discord-username: GitHub Actions
60 | discord-job-new-failure-message: ''
61 | discord-job-fixed-failure-message: ''
62 | discord-job-new-failure-embed: |
63 | {
64 | "title": "`{{ job.name }}` job is failing on `{{ github.branch }}`!",
65 | "description": "Commit [{{ github.context.payload.head_commit.title }}]({{ github.context.payload.head_commit.url }}) pushed to [{{ github.branch }}]({{ github.branch_url }}) broke static analysis [{{ job.name }}]({{ job.url }}) job.\nFailing steps: {{ failing_steps }}",
66 | "url": "{{ job.url }}",
67 | "color": "0xFF0000",
68 | "timestamp": "{{ run.updated_at }}"
69 | }
70 | discord-job-fixed-failure-embed: |
71 | {
72 | "title": "`{{ github.branch }}` branch is no longer failing!",
73 | "description": "Static analysis failures were fixed on [{{ github.branch }}]({{ github.branch_url }}) branch.",
74 | "color": "0x00FF00",
75 | "url": "{{ github.context.payload.head_commit.url }}",
76 | "timestamp": "{{ run.completed_at }}"
77 | }
78 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/misc/freetype/imgui_freetype.h:
--------------------------------------------------------------------------------
1 | // dear imgui: FreeType font builder (used as a replacement for the stb_truetype builder)
2 | // (headers)
3 |
4 | #pragma once
5 |
6 | #include "imgui.h" // IMGUI_API
7 |
8 | // Forward declarations
9 | struct ImFontAtlas;
10 | struct ImFontBuilderIO;
11 |
12 | // Hinting greatly impacts visuals (and glyph sizes).
13 | // - By default, hinting is enabled and the font's native hinter is preferred over the auto-hinter.
14 | // - When disabled, FreeType generates blurrier glyphs, more or less matches the stb_truetype.h
15 | // - The Default hinting mode usually looks good, but may distort glyphs in an unusual way.
16 | // - The Light hinting mode generates fuzzier glyphs but better matches Microsoft's rasterizer.
17 | // You can set those flags globaly in ImFontAtlas::FontBuilderFlags
18 | // You can set those flags on a per font basis in ImFontConfig::FontBuilderFlags
19 | enum ImGuiFreeTypeBuilderFlags
20 | {
21 | ImGuiFreeTypeBuilderFlags_NoHinting = 1 << 0, // Disable hinting. This generally generates 'blurrier' bitmap glyphs when the glyph are rendered in any of the anti-aliased modes.
22 | ImGuiFreeTypeBuilderFlags_NoAutoHint = 1 << 1, // Disable auto-hinter.
23 | ImGuiFreeTypeBuilderFlags_ForceAutoHint = 1 << 2, // Indicates that the auto-hinter is preferred over the font's native hinter.
24 | ImGuiFreeTypeBuilderFlags_LightHinting = 1 << 3, // A lighter hinting algorithm for gray-level modes. Many generated glyphs are fuzzier but better resemble their original shape. This is achieved by snapping glyphs to the pixel grid only vertically (Y-axis), as is done by Microsoft's ClearType and Adobe's proprietary font renderer. This preserves inter-glyph spacing in horizontal text.
25 | ImGuiFreeTypeBuilderFlags_MonoHinting = 1 << 4, // Strong hinting algorithm that should only be used for monochrome output.
26 | ImGuiFreeTypeBuilderFlags_Bold = 1 << 5, // Styling: Should we artificially embolden the font?
27 | ImGuiFreeTypeBuilderFlags_Oblique = 1 << 6, // Styling: Should we slant the font, emulating italic style?
28 | ImGuiFreeTypeBuilderFlags_Monochrome = 1 << 7, // Disable anti-aliasing. Combine this with MonoHinting for best results!
29 | ImGuiFreeTypeBuilderFlags_LoadColor = 1 << 8, // Enable FreeType color-layered glyphs
30 | ImGuiFreeTypeBuilderFlags_Bitmap = 1 << 9 // Enable FreeType bitmap glyphs
31 | };
32 |
33 | namespace ImGuiFreeType
34 | {
35 | // This is automatically assigned when using '#define IMGUI_ENABLE_FREETYPE'.
36 | // If you need to dynamically select between multiple builders:
37 | // - you can manually assign this builder with 'atlas->FontBuilderIO = ImGuiFreeType::GetBuilderForFreeType()'
38 | // - prefer deep-copying this into your own ImFontBuilderIO instance if you use hot-reloading that messes up static data.
39 | IMGUI_API const ImFontBuilderIO* GetBuilderForFreeType();
40 |
41 | // Override allocators. By default ImGuiFreeType will use IM_ALLOC()/IM_FREE()
42 | // However, as FreeType does lots of allocations we provide a way for the user to redirect it to a separate memory heap if desired.
43 | IMGUI_API void SetAllocatorFunctions(void* (*alloc_func)(size_t sz, void* user_data), void (*free_func)(void* ptr, void* user_data), void* user_data = NULL);
44 |
45 | // Obsolete names (will be removed soon)
46 | // Prefer using '#define IMGUI_ENABLE_FREETYPE'
47 | #ifndef IMGUI_DISABLE_OBSOLETE_FUNCTIONS
48 | static inline bool BuildFontAtlas(ImFontAtlas* atlas, unsigned int flags = 0) { atlas->FontBuilderIO = GetBuilderForFreeType(); atlas->FontBuilderFlags = flags; return atlas->Build(); }
49 | #endif
50 | }
51 |
--------------------------------------------------------------------------------
/DirectX-Application/DirectX-Application.vcxproj.filters:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
6 | cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx
7 |
8 |
9 | {93995380-89BD-4b04-88EB-625FBE52EBFB}
10 | h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd
11 |
12 |
13 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
15 |
16 |
17 | {4662e338-0d56-481b-83ef-aa38488fd523}
18 |
19 |
20 |
21 |
22 | Headerdateien
23 |
24 |
25 | Headerdateien
26 |
27 |
28 | Headerdateien
29 |
30 |
31 | ImGui
32 |
33 |
34 | ImGui
35 |
36 |
37 | ImGui
38 |
39 |
40 | ImGui
41 |
42 |
43 | ImGui
44 |
45 |
46 | ImGui
47 |
48 |
49 | ImGui
50 |
51 |
52 | ImGui
53 |
54 |
55 | Headerdateien
56 |
57 |
58 | Headerdateien
59 |
60 |
61 |
62 |
63 | Quelldateien
64 |
65 |
66 | Quelldateien
67 |
68 |
69 | ImGui
70 |
71 |
72 | ImGui
73 |
74 |
75 | ImGui
76 |
77 |
78 | ImGui
79 |
80 |
81 | ImGui
82 |
83 |
84 | ImGui
85 |
86 |
87 | ImGui
88 |
89 |
90 | Quelldateien
91 |
92 |
93 | Quelldateien
94 |
95 |
96 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/examples/example_marmalade/main.cpp:
--------------------------------------------------------------------------------
1 | // Dear ImGui: standalone example application for Marmalade
2 | // If you are new to Dear ImGui, read documentation from the docs/ folder + read the top of imgui.cpp.
3 | // Read online: https://github.com/ocornut/imgui/tree/master/docs
4 |
5 | // Copyright (C) 2015 by Giovanni Zito
6 | // This file is part of Dear ImGui
7 |
8 | #include "imgui.h"
9 | #include "imgui_impl_marmalade.h"
10 | #include
11 |
12 | #include
13 | #include
14 | #include
15 |
16 | int main(int, char**)
17 | {
18 | IwGxInit();
19 |
20 | // Setup Dear ImGui context
21 | IMGUI_CHECKVERSION();
22 | ImGui::CreateContext();
23 | ImGuiIO& io = ImGui::GetIO(); (void)io;
24 | //io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard; // Enable Keyboard Controls
25 | io.ConfigFlags |= ImGuiConfigFlags_DockingEnable; // Enable Docking
26 |
27 | // Setup Dear ImGui style
28 | ImGui::StyleColorsDark();
29 | //ImGui::StyleColorsClassic();
30 |
31 | // Setup Platform/Renderer backends
32 | ImGui_Marmalade_Init(true);
33 |
34 | // Load Fonts
35 | // - 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.
36 | // - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
37 | // - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
38 | // - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
39 | // - Read 'docs/FONTS.md' for more instructions and details.
40 | // - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
41 | //io.Fonts->AddFontDefault();
42 | //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
43 | //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
44 | //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
45 | //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
46 | //ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
47 | //IM_ASSERT(font != NULL);
48 |
49 | // Our state
50 | bool show_demo_window = true;
51 | bool show_another_window = false;
52 | ImVec4 clear_color = ImVec4(0.45f, 0.55f, 0.60f, 1.00f);
53 |
54 | // Main loop
55 | while (true)
56 | {
57 | if (s3eDeviceCheckQuitRequest())
58 | break;
59 |
60 | // Poll and handle inputs
61 | // You can read the io.WantCaptureMouse, io.WantCaptureKeyboard flags to tell if dear imgui wants to use your inputs.
62 | // - When io.WantCaptureMouse is true, do not dispatch mouse input data to your main application.
63 | // - When io.WantCaptureKeyboard is true, do not dispatch keyboard input data to your main application.
64 | // Generally you may always pass all inputs to dear imgui, and hide them from your application based on those two flags.
65 | s3eKeyboardUpdate();
66 | s3ePointerUpdate();
67 |
68 | // Start the Dear ImGui frame
69 | ImGui_Marmalade_NewFrame();
70 | ImGui::NewFrame();
71 |
72 | // 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!).
73 | if (show_demo_window)
74 | ImGui::ShowDemoWindow(&show_demo_window);
75 |
76 | // 2. Show a simple window that we create ourselves. We use a Begin/End pair to created a named window.
77 | {
78 | static float f = 0.0f;
79 | static int counter = 0;
80 |
81 | ImGui::Begin("Hello, world!"); // Create a window called "Hello, world!" and append into it.
82 |
83 | ImGui::Text("This is some useful text."); // Display some text (you can use a format strings too)
84 | ImGui::Checkbox("Demo Window", &show_demo_window); // Edit bools storing our window open/close state
85 | ImGui::Checkbox("Another Window", &show_another_window);
86 |
87 | ImGui::SliderFloat("float", &f, 0.0f, 1.0f); // Edit 1 float using a slider from 0.0f to 1.0f
88 | ImGui::ColorEdit3("clear color", (float*)&clear_color); // Edit 3 floats representing a color
89 |
90 | if (ImGui::Button("Button")) // Buttons return true when clicked (most widgets return true when edited/activated)
91 | counter++;
92 | ImGui::SameLine();
93 | ImGui::Text("counter = %d", counter);
94 |
95 | ImGui::Text("Application average %.3f ms/frame (%.1f FPS)", 1000.0f / ImGui::GetIO().Framerate, ImGui::GetIO().Framerate);
96 | ImGui::End();
97 | }
98 |
99 | // 3. Show another simple window.
100 | if (show_another_window)
101 | {
102 | 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)
103 | ImGui::Text("Hello from another window!");
104 | if (ImGui::Button("Close Me"))
105 | show_another_window = false;
106 | ImGui::End();
107 | }
108 |
109 | // Rendering
110 | ImGui::Render();
111 | IwGxSetColClear(clear_color.x * 255, clear_color.y * 255, clear_color.z * 255, clear_color.w * 255);
112 | IwGxClear();
113 | ImGui_Marmalade_RenderDrawData(ImGui::GetDrawData());
114 | IwGxSwapBuffers();
115 |
116 | s3eDeviceYield(0);
117 | }
118 |
119 | // Cleanup
120 | ImGui_Marmalade_Shutdown();
121 | ImGui::DestroyContext();
122 | IwGxTerminate();
123 |
124 | return 0;
125 | }
126 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/examples/example_apple_metal/macOS/MainMenu.storyboard:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/examples/example_allegro5/main.cpp:
--------------------------------------------------------------------------------
1 | // Dear ImGui: standalone example application for Allegro 5
2 | // If you are new to Dear ImGui, read documentation from the docs/ folder + read the top of imgui.cpp.
3 | // Read online: https://github.com/ocornut/imgui/tree/master/docs
4 |
5 | // On Windows, you can install Allegro5 using vcpkg:
6 | // git clone https://github.com/Microsoft/vcpkg
7 | // cd vcpkg
8 | // bootstrap - vcpkg.bat
9 | // vcpkg install allegro5 --triplet=x86-windows ; for win32
10 | // vcpkg install allegro5 --triplet=x64-windows ; for win64
11 | // vcpkg integrate install ; register include and libs in Visual Studio
12 |
13 | #include
14 | #include
15 | #include
16 | #include "imgui.h"
17 | #include "imgui_impl_allegro5.h"
18 |
19 | int main(int, char**)
20 | {
21 | // Setup Allegro
22 | al_init();
23 | al_install_keyboard();
24 | al_install_mouse();
25 | al_init_primitives_addon();
26 | al_set_new_display_flags(ALLEGRO_RESIZABLE);
27 | ALLEGRO_DISPLAY* display = al_create_display(1280, 720);
28 | al_set_window_title(display, "Dear ImGui Allegro 5 example");
29 | ALLEGRO_EVENT_QUEUE* queue = al_create_event_queue();
30 | al_register_event_source(queue, al_get_display_event_source(display));
31 | al_register_event_source(queue, al_get_keyboard_event_source());
32 | al_register_event_source(queue, al_get_mouse_event_source());
33 |
34 | // Setup Dear ImGui context
35 | IMGUI_CHECKVERSION();
36 | ImGui::CreateContext();
37 | ImGuiIO& io = ImGui::GetIO(); (void)io;
38 | //io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard; // Enable Keyboard Controls
39 | io.ConfigFlags |= ImGuiConfigFlags_DockingEnable; // Enable Docking
40 |
41 | // Setup Dear ImGui style
42 | ImGui::StyleColorsDark();
43 | //ImGui::StyleColorsClassic();
44 |
45 | // Setup Platform/Renderer backends
46 | ImGui_ImplAllegro5_Init(display);
47 |
48 | // Load Fonts
49 | // - 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.
50 | // - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
51 | // - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
52 | // - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
53 | // - Read 'docs/FONTS.md' for more instructions and details.
54 | // - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
55 | //io.Fonts->AddFontDefault();
56 | //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
57 | //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
58 | //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
59 | //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
60 | //ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
61 | //IM_ASSERT(font != NULL);
62 |
63 | bool show_demo_window = true;
64 | bool show_another_window = false;
65 | ImVec4 clear_color = ImVec4(0.45f, 0.55f, 0.60f, 1.00f);
66 |
67 | // Main loop
68 | bool running = true;
69 | while (running)
70 | {
71 | // Poll and handle events (inputs, window resize, etc.)
72 | // You can read the io.WantCaptureMouse, io.WantCaptureKeyboard flags to tell if dear imgui wants to use your inputs.
73 | // - When io.WantCaptureMouse is true, do not dispatch mouse input data to your main application.
74 | // - When io.WantCaptureKeyboard is true, do not dispatch keyboard input data to your main application.
75 | // Generally you may always pass all inputs to dear imgui, and hide them from your application based on those two flags.
76 | ALLEGRO_EVENT ev;
77 | while (al_get_next_event(queue, &ev))
78 | {
79 | ImGui_ImplAllegro5_ProcessEvent(&ev);
80 | if (ev.type == ALLEGRO_EVENT_DISPLAY_CLOSE)
81 | running = false;
82 | if (ev.type == ALLEGRO_EVENT_DISPLAY_RESIZE)
83 | {
84 | ImGui_ImplAllegro5_InvalidateDeviceObjects();
85 | al_acknowledge_resize(display);
86 | ImGui_ImplAllegro5_CreateDeviceObjects();
87 | }
88 | }
89 |
90 | // Start the Dear ImGui frame
91 | ImGui_ImplAllegro5_NewFrame();
92 | ImGui::NewFrame();
93 |
94 | // 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!).
95 | if (show_demo_window)
96 | ImGui::ShowDemoWindow(&show_demo_window);
97 |
98 | // 2. Show a simple window that we create ourselves. We use a Begin/End pair to created a named window.
99 | {
100 | static float f = 0.0f;
101 | static int counter = 0;
102 |
103 | ImGui::Begin("Hello, world!"); // Create a window called "Hello, world!" and append into it.
104 |
105 | ImGui::Text("This is some useful text."); // Display some text (you can use a format strings too)
106 | ImGui::Checkbox("Demo Window", &show_demo_window); // Edit bools storing our window open/close state
107 | ImGui::Checkbox("Another Window", &show_another_window);
108 |
109 | ImGui::SliderFloat("float", &f, 0.0f, 1.0f); // Edit 1 float using a slider from 0.0f to 1.0f
110 | ImGui::ColorEdit3("clear color", (float*)&clear_color); // Edit 3 floats representing a color
111 |
112 | if (ImGui::Button("Button")) // Buttons return true when clicked (most widgets return true when edited/activated)
113 | counter++;
114 | ImGui::SameLine();
115 | ImGui::Text("counter = %d", counter);
116 |
117 | ImGui::Text("Application average %.3f ms/frame (%.1f FPS)", 1000.0f / ImGui::GetIO().Framerate, ImGui::GetIO().Framerate);
118 | ImGui::End();
119 | }
120 |
121 | // 3. Show another simple window.
122 | if (show_another_window)
123 | {
124 | 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)
125 | ImGui::Text("Hello from another window!");
126 | if (ImGui::Button("Close Me"))
127 | show_another_window = false;
128 | ImGui::End();
129 | }
130 |
131 | // Rendering
132 | ImGui::Render();
133 | 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));
134 | ImGui_ImplAllegro5_RenderDrawData(ImGui::GetDrawData());
135 | al_flip_display();
136 | }
137 |
138 | // Cleanup
139 | ImGui_ImplAllegro5_Shutdown();
140 | ImGui::DestroyContext();
141 | al_destroy_event_queue(queue);
142 | al_destroy_display(display);
143 |
144 | return 0;
145 | }
146 |
--------------------------------------------------------------------------------
/DirectX-Application/external/imgui-docking/examples/example_glut_opengl2/main.cpp:
--------------------------------------------------------------------------------
1 | // Dear ImGui: standalone example application for GLUT/FreeGLUT + OpenGL2, using legacy fixed pipeline
2 | // If you are new to Dear ImGui, read documentation from the docs/ folder + read the top of imgui.cpp.
3 | // Read online: https://github.com/ocornut/imgui/tree/master/docs
4 |
5 | // !!! GLUT/FreeGLUT IS OBSOLETE PREHISTORIC SOFTWARE. Using GLUT is not recommended unless you really miss the 90's. !!!
6 | // !!! If someone or something is teaching you GLUT today, you are being abused. Please show some resistance. !!!
7 | // !!! Nowadays, prefer using GLFW or SDL instead!
8 |
9 | // On Windows, you can install Freeglut using vcpkg:
10 | // git clone https://github.com/Microsoft/vcpkg
11 | // cd vcpkg
12 | // bootstrap - vcpkg.bat
13 | // vcpkg install freeglut --triplet=x86-windows ; for win32
14 | // vcpkg install freeglut --triplet=x64-windows ; for win64
15 | // vcpkg integrate install ; register include and libs in Visual Studio
16 |
17 | #include "imgui.h"
18 | #include "imgui_impl_glut.h"
19 | #include "imgui_impl_opengl2.h"
20 | #ifdef __APPLE__
21 | #include
22 | #else
23 | #include
24 | #endif
25 |
26 | #ifdef _MSC_VER
27 | #pragma warning (disable: 4505) // unreferenced local function has been removed
28 | #endif
29 |
30 | // Our state
31 | static bool show_demo_window = true;
32 | static bool show_another_window = false;
33 | static ImVec4 clear_color = ImVec4(0.45f, 0.55f, 0.60f, 1.00f);
34 |
35 | void my_display_code()
36 | {
37 | // 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!).
38 | if (show_demo_window)
39 | ImGui::ShowDemoWindow(&show_demo_window);
40 |
41 | // 2. Show a simple window that we create ourselves. We use a Begin/End pair to created a named window.
42 | {
43 | static float f = 0.0f;
44 | static int counter = 0;
45 |
46 | ImGui::Begin("Hello, world!"); // Create a window called "Hello, world!" and append into it.
47 |
48 | ImGui::Text("This is some useful text."); // Display some text (you can use a format strings too)
49 | ImGui::Checkbox("Demo Window", &show_demo_window); // Edit bools storing our window open/close state
50 | ImGui::Checkbox("Another Window", &show_another_window);
51 |
52 | ImGui::SliderFloat("float", &f, 0.0f, 1.0f); // Edit 1 float using a slider from 0.0f to 1.0f
53 | ImGui::ColorEdit3("clear color", (float*)&clear_color); // Edit 3 floats representing a color
54 |
55 | if (ImGui::Button("Button")) // Buttons return true when clicked (most widgets return true when edited/activated)
56 | counter++;
57 | ImGui::SameLine();
58 | ImGui::Text("counter = %d", counter);
59 |
60 | ImGui::Text("Application average %.3f ms/frame (%.1f FPS)", 1000.0f / ImGui::GetIO().Framerate, ImGui::GetIO().Framerate);
61 | ImGui::End();
62 | }
63 |
64 | // 3. Show another simple window.
65 | if (show_another_window)
66 | {
67 | 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)
68 | ImGui::Text("Hello from another window!");
69 | if (ImGui::Button("Close Me"))
70 | show_another_window = false;
71 | ImGui::End();
72 | }
73 | }
74 |
75 | void glut_display_func()
76 | {
77 | // Start the Dear ImGui frame
78 | ImGui_ImplOpenGL2_NewFrame();
79 | ImGui_ImplGLUT_NewFrame();
80 |
81 | my_display_code();
82 |
83 | // Rendering
84 | ImGui::Render();
85 | ImGuiIO& io = ImGui::GetIO();
86 | glViewport(0, 0, (GLsizei)io.DisplaySize.x, (GLsizei)io.DisplaySize.y);
87 | glClearColor(clear_color.x * clear_color.w, clear_color.y * clear_color.w, clear_color.z * clear_color.w, clear_color.w);
88 | glClear(GL_COLOR_BUFFER_BIT);
89 | //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.
90 | ImGui_ImplOpenGL2_RenderDrawData(ImGui::GetDrawData());
91 |
92 | glutSwapBuffers();
93 | glutPostRedisplay();
94 | }
95 |
96 | // You can read the io.WantCaptureMouse, io.WantCaptureKeyboard flags to tell if dear imgui wants to use your inputs.
97 | // - When io.WantCaptureMouse is true, do not dispatch mouse input data to your main application.
98 | // - When io.WantCaptureKeyboard is true, do not dispatch keyboard input data to your main application.
99 | // Generally you may always pass all inputs to dear imgui, and hide them from your application based on those two flags.
100 |
101 | int main(int argc, char** argv)
102 | {
103 | // Create GLUT window
104 | glutInit(&argc, argv);
105 | #ifdef __FREEGLUT_EXT_H__
106 | glutSetOption(GLUT_ACTION_ON_WINDOW_CLOSE, GLUT_ACTION_GLUTMAINLOOP_RETURNS);
107 | #endif
108 | glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE | GLUT_MULTISAMPLE);
109 | glutInitWindowSize(1280, 720);
110 | glutCreateWindow("Dear ImGui GLUT+OpenGL2 Example");
111 |
112 | // Setup GLUT display function
113 | // We will also call ImGui_ImplGLUT_InstallFuncs() to get all the other functions installed for us,
114 | // otherwise it is possible to install our own functions and call the imgui_impl_glut.h functions ourselves.
115 | glutDisplayFunc(glut_display_func);
116 |
117 | // Setup Dear ImGui context
118 | IMGUI_CHECKVERSION();
119 | ImGui::CreateContext();
120 | ImGuiIO& io = ImGui::GetIO(); (void)io;
121 | //io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard; // Enable Keyboard Controls
122 | io.ConfigFlags |= ImGuiConfigFlags_DockingEnable; // Enable Docking
123 |
124 | // Setup Dear ImGui style
125 | ImGui::StyleColorsDark();
126 | //ImGui::StyleColorsClassic();
127 |
128 | // Setup Platform/Renderer backends
129 | ImGui_ImplGLUT_Init();
130 | ImGui_ImplGLUT_InstallFuncs();
131 | ImGui_ImplOpenGL2_Init();
132 |
133 | // Load Fonts
134 | // - 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.
135 | // - AddFontFromFileTTF() will return the ImFont* so you can store it if you need to select the font among multiple.
136 | // - If the file cannot be loaded, the function will return NULL. Please handle those errors in your application (e.g. use an assertion, or display an error and quit).
137 | // - The fonts will be rasterized at a given size (w/ oversampling) and stored into a texture when calling ImFontAtlas::Build()/GetTexDataAsXXXX(), which ImGui_ImplXXXX_NewFrame below will call.
138 | // - Read 'docs/FONTS.md' for more instructions and details.
139 | // - Remember that in C/C++ if you want to include a backslash \ in a string literal you need to write a double backslash \\ !
140 | //io.Fonts->AddFontDefault();
141 | //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Roboto-Medium.ttf", 16.0f);
142 | //io.Fonts->AddFontFromFileTTF("../../misc/fonts/Cousine-Regular.ttf", 15.0f);
143 | //io.Fonts->AddFontFromFileTTF("../../misc/fonts/DroidSans.ttf", 16.0f);
144 | //io.Fonts->AddFontFromFileTTF("../../misc/fonts/ProggyTiny.ttf", 10.0f);
145 | //ImFont* font = io.Fonts->AddFontFromFileTTF("c:\\Windows\\Fonts\\ArialUni.ttf", 18.0f, NULL, io.Fonts->GetGlyphRangesJapanese());
146 | //IM_ASSERT(font != NULL);
147 |
148 | glutMainLoop();
149 |
150 | // Cleanup
151 | ImGui_ImplOpenGL2_Shutdown();
152 | ImGui_ImplGLUT_Shutdown();
153 | ImGui::DestroyContext();
154 |
155 | return 0;
156 | }
157 |
--------------------------------------------------------------------------------