Compare commits

..

2 Commits

Author SHA1 Message Date
Jordan Arch
3a5cc921b8 Model loading added 2026-02-20 15:14:57 -05:00
Jordan Arch
0e784b7ad2 Finished depth buffer 2026-02-20 14:00:53 -05:00
69 changed files with 8874 additions and 3625 deletions

View File

@@ -1,9 +1,26 @@
StatementMacros: ['UPROPERTY', 'UFUNCTION', 'UCLASS', 'USTRUCT', 'UENUM', 'UINTERFACE', 'GENERATED_BODY']
StatementMacros:
[
"UPROPERTY",
"UFUNCTION",
"UCLASS",
"USTRUCT",
"UENUM",
"UINTERFACE",
"GENERATED_BODY",
]
Language: Cpp
BasedOnStyle: LLVM
AccessModifierOffset: -4
AlignAfterOpenBracket: DontAlign
AlignAfterOpenBracket: BlockIndent
# BreakAfterOpenBracketBracedList: true
# BreakAfterOpenBracketFunction: true
# BreakAfterOpenBracketIf: true
# BreakBeforeCloseBracketBracedList: true
# BreakBeforeCloseBracketFunction: true
# BreakBeforeCloseBracketIf: true
AlignConsecutiveDeclarations: true
AlignEscapedNewlines: Left
AlignOperands: DontAlign
@@ -35,7 +52,6 @@ BreakInheritanceList: AfterColon
BreakBeforeTernaryOperators: true
BreakConstructorInitializers: BeforeComma
BreakStringLiterals: false
ColumnLimit: 0
ConstructorInitializerAllOnOneLineOrOnePerLine: true
Cpp11BracedListStyle: false
EmptyLineBeforeAccessModifier: LogicalBlock
@@ -49,3 +65,10 @@ SortIncludes: false
SpaceBeforeCaseColon: false
TabWidth: 4
UseTab: Always
ColumnLimit: 100
BinPackArguments: false
BinPackParameters: false
AllowAllArgumentsOnNextLine: false
AllowAllParametersOfDeclarationOnNextLine: false
ExperimentalAutoDetectBinPacking: false

View File

@@ -31,6 +31,8 @@ target_include_directories(${PROJECT_NAME}
PRIVATE
lib
lib/stb
lib/tinyobjloader
lib/tinyobjloader
${IMGUI_DIR}
${IMGUI_DIR}/backends
src

Binary file not shown.

View File

@@ -1,9 +1,13 @@
#version 450
layout(location = 0) in vec3 fragColor;
layout(location = 1) in vec2 fragTextureCoordinates;
layout(location = 0) out vec4 outColor;
layout(binding = 1) uniform sampler2D textureSampler;
void main() {
outColor = vec4(fragColor, 1.0);
outColor = texture(textureSampler, fragTextureCoordinates);
}

View File

@@ -6,12 +6,15 @@ layout(binding = 0) uniform UniformBufferObject {
mat4 proj;
} ubo;
layout(location = 0) in vec2 inPosition;
layout(location = 0) in vec3 inPosition;
layout(location = 1) in vec3 inColor;
layout(location = 2) in vec2 inTextureCoordinates;
layout(location = 0) out vec3 fragColor;
layout(location = 1) out vec2 fragTextureCoordinates;
void main() {
gl_Position = ubo.proj * ubo.view * ubo.model * vec4(inPosition, 0.0, 1.0);
gl_Position = ubo.proj * ubo.view * ubo.model * vec4(inPosition, 1.0);
fragColor = inColor;
fragTextureCoordinates = inTextureCoordinates;
}

Binary file not shown.

View File

@@ -1196,8 +1196,8 @@ events:
checks:
- "Detecting C compiler ABI info"
directories:
source: "/home/Jordan/Projects/CPP/LearningVulkan/build/CMakeFiles/CMakeScratch/TryCompile-cavOgA"
binary: "/home/Jordan/Projects/CPP/LearningVulkan/build/CMakeFiles/CMakeScratch/TryCompile-cavOgA"
source: "/home/Jordan/Projects/CPP/LearningVulkan/build/CMakeFiles/CMakeScratch/TryCompile-JPbLH1"
binary: "/home/Jordan/Projects/CPP/LearningVulkan/build/CMakeFiles/CMakeScratch/TryCompile-JPbLH1"
cmakeVariables:
CMAKE_C_FLAGS: ""
CMAKE_C_FLAGS_DEBUG: "-g"
@@ -1206,13 +1206,13 @@ events:
variable: "CMAKE_C_ABI_COMPILED"
cached: true
stdout: |
Change Dir: '/home/Jordan/Projects/CPP/LearningVulkan/build/CMakeFiles/CMakeScratch/TryCompile-cavOgA'
Change Dir: '/home/Jordan/Projects/CPP/LearningVulkan/build/CMakeFiles/CMakeScratch/TryCompile-JPbLH1'
Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/make -f Makefile cmTC_f22b1/fast
/usr/bin/make -f CMakeFiles/cmTC_f22b1.dir/build.make CMakeFiles/cmTC_f22b1.dir/build
make[1]: Entering directory '/home/Jordan/Projects/CPP/LearningVulkan/build/CMakeFiles/CMakeScratch/TryCompile-cavOgA'
Building C object CMakeFiles/cmTC_f22b1.dir/CMakeCCompilerABI.c.o
/usr/bin/cc -v -o CMakeFiles/cmTC_f22b1.dir/CMakeCCompilerABI.c.o -c /usr/share/cmake/Modules/CMakeCCompilerABI.c
Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/make -f Makefile cmTC_93f19/fast
/usr/bin/make -f CMakeFiles/cmTC_93f19.dir/build.make CMakeFiles/cmTC_93f19.dir/build
make[1]: Entering directory '/home/Jordan/Projects/CPP/LearningVulkan/build/CMakeFiles/CMakeScratch/TryCompile-JPbLH1'
Building C object CMakeFiles/cmTC_93f19.dir/CMakeCCompilerABI.c.o
/usr/bin/cc -v -o CMakeFiles/cmTC_93f19.dir/CMakeCCompilerABI.c.o -c /usr/share/cmake/Modules/CMakeCCompilerABI.c
Using built-in specs.
COLLECT_GCC=/usr/bin/cc
Target: x86_64-pc-linux-gnu
@@ -1220,8 +1220,8 @@ events:
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 15.2.1 20260209 (GCC)
COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_f22b1.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_f22b1.dir/'
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/cc1 -quiet -v /usr/share/cmake/Modules/CMakeCCompilerABI.c -quiet -dumpdir CMakeFiles/cmTC_f22b1.dir/ -dumpbase CMakeCCompilerABI.c.c -dumpbase-ext .c -mtune=generic -march=x86-64 -version -o /tmp/ccUBJkg7.s
COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_93f19.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_93f19.dir/'
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/cc1 -quiet -v /usr/share/cmake/Modules/CMakeCCompilerABI.c -quiet -dumpdir CMakeFiles/cmTC_93f19.dir/ -dumpbase CMakeCCompilerABI.c.c -dumpbase-ext .c -mtune=generic -march=x86-64 -version -o /tmp/cc1naoBb.s
GNU C23 (GCC) version 15.2.1 20260209 (x86_64-pc-linux-gnu)
compiled by GNU C version 15.2.1 20260209, GMP version 6.3.0, MPFR version 4.2.2, MPC version 1.3.1, isl version isl-0.27-GMP
@@ -1235,14 +1235,14 @@ events:
/usr/include
End of search list.
Compiler executable checksum: 4a3176b8a5098bb872007d0a1d5e5fb3
COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_f22b1.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_f22b1.dir/'
as -v --64 -o CMakeFiles/cmTC_f22b1.dir/CMakeCCompilerABI.c.o /tmp/ccUBJkg7.s
COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_93f19.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_93f19.dir/'
as -v --64 -o CMakeFiles/cmTC_93f19.dir/CMakeCCompilerABI.c.o /tmp/cc1naoBb.s
GNU assembler version 2.46 (x86_64-pc-linux-gnu) using BFD version (GNU Binutils) 2.46
COMPILER_PATH=/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/:/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/
LIBRARY_PATH=/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/:/lib/../lib/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../:/lib/:/usr/lib/
COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_f22b1.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_f22b1.dir/CMakeCCompilerABI.c.'
Linking C executable cmTC_f22b1
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_f22b1.dir/link.txt --verbose=1
COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_93f19.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_93f19.dir/CMakeCCompilerABI.c.'
Linking C executable cmTC_93f19
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_93f19.dir/link.txt --verbose=1
Using built-in specs.
COLLECT_GCC=/usr/bin/cc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/lto-wrapper
@@ -1253,14 +1253,14 @@ events:
gcc version 15.2.1 20260209 (GCC)
COMPILER_PATH=/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/:/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/
LIBRARY_PATH=/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/:/lib/../lib/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../:/lib/:/usr/lib/
COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_f22b1' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_f22b1.'
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/collect2 -plugin /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/lto-wrapper -plugin-opt=-fresolution=/tmp/cciDPlOs.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --build-id --eh-frame-hdr --hash-style=gnu -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -o cmTC_f22b1 /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/Scrt1.o /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/crti.o /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/crtbeginS.o -L/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1 -L/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib -L/lib/../lib -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../.. -L/lib -L/usr/lib -v CMakeFiles/cmTC_f22b1.dir/CMakeCCompilerABI.c.o -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/crtendS.o /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/crtn.o
COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_93f19' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_93f19.'
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/collect2 -plugin /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/lto-wrapper -plugin-opt=-fresolution=/tmp/ccE8t8XM.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --build-id --eh-frame-hdr --hash-style=gnu -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -o cmTC_93f19 /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/Scrt1.o /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/crti.o /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/crtbeginS.o -L/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1 -L/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib -L/lib/../lib -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../.. -L/lib -L/usr/lib -v CMakeFiles/cmTC_93f19.dir/CMakeCCompilerABI.c.o -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/crtendS.o /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/crtn.o
collect2 version 15.2.1 20260209
/usr/bin/ld -plugin /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/lto-wrapper -plugin-opt=-fresolution=/tmp/cciDPlOs.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --build-id --eh-frame-hdr --hash-style=gnu -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -o cmTC_f22b1 /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/Scrt1.o /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/crti.o /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/crtbeginS.o -L/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1 -L/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib -L/lib/../lib -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../.. -L/lib -L/usr/lib -v CMakeFiles/cmTC_f22b1.dir/CMakeCCompilerABI.c.o -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/crtendS.o /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/crtn.o
/usr/bin/ld -plugin /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/lto-wrapper -plugin-opt=-fresolution=/tmp/ccE8t8XM.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --build-id --eh-frame-hdr --hash-style=gnu -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -o cmTC_93f19 /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/Scrt1.o /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/crti.o /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/crtbeginS.o -L/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1 -L/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib -L/lib/../lib -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../.. -L/lib -L/usr/lib -v CMakeFiles/cmTC_93f19.dir/CMakeCCompilerABI.c.o -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/crtendS.o /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/crtn.o
GNU ld (GNU Binutils) 2.46
COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_f22b1' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_f22b1.'
/usr/bin/cc -v -Wl,-v CMakeFiles/cmTC_f22b1.dir/CMakeCCompilerABI.c.o -o cmTC_f22b1
make[1]: Leaving directory '/home/Jordan/Projects/CPP/LearningVulkan/build/CMakeFiles/CMakeScratch/TryCompile-cavOgA'
COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_93f19' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_93f19.'
/usr/bin/cc -v -Wl,-v CMakeFiles/cmTC_93f19.dir/CMakeCCompilerABI.c.o -o cmTC_93f19
make[1]: Leaving directory '/home/Jordan/Projects/CPP/LearningVulkan/build/CMakeFiles/CMakeScratch/TryCompile-JPbLH1'
exitCode: 0
-
@@ -1295,13 +1295,13 @@ events:
Parsed C implicit link information:
link line regex: [^( *|.*[/\\])(ld[0-9]*(|\\.[a-rt-z][a-z]*|\\.s[a-np-z][a-z]*|\\.so[a-z]+)|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\\]+-)?ld|collect2)[^/\\]*( |$)]
linker tool regex: [^[ ]*(->|"|[0-9]+>[ -]*Build:[ 0-9]+ ms[ ]*)?[ ]*(([^"]*[/\\])?(ld[0-9]*(|\\.[a-rt-z][a-z]*|\\.s[a-np-z][a-z]*|\\.so[a-z]+)))("|,| |$)]
ignore line: [Change Dir: '/home/Jordan/Projects/CPP/LearningVulkan/build/CMakeFiles/CMakeScratch/TryCompile-cavOgA']
ignore line: [Change Dir: '/home/Jordan/Projects/CPP/LearningVulkan/build/CMakeFiles/CMakeScratch/TryCompile-JPbLH1']
ignore line: []
ignore line: [Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/make -f Makefile cmTC_f22b1/fast]
ignore line: [/usr/bin/make -f CMakeFiles/cmTC_f22b1.dir/build.make CMakeFiles/cmTC_f22b1.dir/build]
ignore line: [make[1]: Entering directory '/home/Jordan/Projects/CPP/LearningVulkan/build/CMakeFiles/CMakeScratch/TryCompile-cavOgA']
ignore line: [Building C object CMakeFiles/cmTC_f22b1.dir/CMakeCCompilerABI.c.o]
ignore line: [/usr/bin/cc -v -o CMakeFiles/cmTC_f22b1.dir/CMakeCCompilerABI.c.o -c /usr/share/cmake/Modules/CMakeCCompilerABI.c]
ignore line: [Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/make -f Makefile cmTC_93f19/fast]
ignore line: [/usr/bin/make -f CMakeFiles/cmTC_93f19.dir/build.make CMakeFiles/cmTC_93f19.dir/build]
ignore line: [make[1]: Entering directory '/home/Jordan/Projects/CPP/LearningVulkan/build/CMakeFiles/CMakeScratch/TryCompile-JPbLH1']
ignore line: [Building C object CMakeFiles/cmTC_93f19.dir/CMakeCCompilerABI.c.o]
ignore line: [/usr/bin/cc -v -o CMakeFiles/cmTC_93f19.dir/CMakeCCompilerABI.c.o -c /usr/share/cmake/Modules/CMakeCCompilerABI.c]
ignore line: [Using built-in specs.]
ignore line: [COLLECT_GCC=/usr/bin/cc]
ignore line: [Target: x86_64-pc-linux-gnu]
@@ -1309,8 +1309,8 @@ events:
ignore line: [Thread model: posix]
ignore line: [Supported LTO compression algorithms: zlib zstd]
ignore line: [gcc version 15.2.1 20260209 (GCC) ]
ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_f22b1.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_f22b1.dir/']
ignore line: [ /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/cc1 -quiet -v /usr/share/cmake/Modules/CMakeCCompilerABI.c -quiet -dumpdir CMakeFiles/cmTC_f22b1.dir/ -dumpbase CMakeCCompilerABI.c.c -dumpbase-ext .c -mtune=generic -march=x86-64 -version -o /tmp/ccUBJkg7.s]
ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_93f19.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_93f19.dir/']
ignore line: [ /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/cc1 -quiet -v /usr/share/cmake/Modules/CMakeCCompilerABI.c -quiet -dumpdir CMakeFiles/cmTC_93f19.dir/ -dumpbase CMakeCCompilerABI.c.c -dumpbase-ext .c -mtune=generic -march=x86-64 -version -o /tmp/cc1naoBb.s]
ignore line: [GNU C23 (GCC) version 15.2.1 20260209 (x86_64-pc-linux-gnu)]
ignore line: [ compiled by GNU C version 15.2.1 20260209 GMP version 6.3.0 MPFR version 4.2.2 MPC version 1.3.1 isl version isl-0.27-GMP]
ignore line: []
@@ -1324,14 +1324,14 @@ events:
ignore line: [ /usr/include]
ignore line: [End of search list.]
ignore line: [Compiler executable checksum: 4a3176b8a5098bb872007d0a1d5e5fb3]
ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_f22b1.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_f22b1.dir/']
ignore line: [ as -v --64 -o CMakeFiles/cmTC_f22b1.dir/CMakeCCompilerABI.c.o /tmp/ccUBJkg7.s]
ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_93f19.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_93f19.dir/']
ignore line: [ as -v --64 -o CMakeFiles/cmTC_93f19.dir/CMakeCCompilerABI.c.o /tmp/cc1naoBb.s]
ignore line: [GNU assembler version 2.46 (x86_64-pc-linux-gnu) using BFD version (GNU Binutils) 2.46]
ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/:/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/]
ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/:/lib/../lib/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../:/lib/:/usr/lib/]
ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_f22b1.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_f22b1.dir/CMakeCCompilerABI.c.']
ignore line: [Linking C executable cmTC_f22b1]
ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_f22b1.dir/link.txt --verbose=1]
ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_93f19.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_93f19.dir/CMakeCCompilerABI.c.']
ignore line: [Linking C executable cmTC_93f19]
ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_93f19.dir/link.txt --verbose=1]
ignore line: [Using built-in specs.]
ignore line: [COLLECT_GCC=/usr/bin/cc]
ignore line: [COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/lto-wrapper]
@@ -1342,13 +1342,13 @@ events:
ignore line: [gcc version 15.2.1 20260209 (GCC) ]
ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/:/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/]
ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/:/lib/../lib/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../:/lib/:/usr/lib/]
ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_f22b1' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_f22b1.']
link line: [ /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/collect2 -plugin /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/lto-wrapper -plugin-opt=-fresolution=/tmp/cciDPlOs.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --build-id --eh-frame-hdr --hash-style=gnu -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -o cmTC_f22b1 /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/Scrt1.o /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/crti.o /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/crtbeginS.o -L/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1 -L/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib -L/lib/../lib -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../.. -L/lib -L/usr/lib -v CMakeFiles/cmTC_f22b1.dir/CMakeCCompilerABI.c.o -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/crtendS.o /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/crtn.o]
ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_93f19' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_93f19.']
link line: [ /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/collect2 -plugin /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/lto-wrapper -plugin-opt=-fresolution=/tmp/ccE8t8XM.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --build-id --eh-frame-hdr --hash-style=gnu -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -o cmTC_93f19 /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/Scrt1.o /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/crti.o /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/crtbeginS.o -L/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1 -L/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib -L/lib/../lib -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../.. -L/lib -L/usr/lib -v CMakeFiles/cmTC_93f19.dir/CMakeCCompilerABI.c.o -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/crtendS.o /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/crtn.o]
arg [/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/collect2] ==> ignore
arg [-plugin] ==> ignore
arg [/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/liblto_plugin.so] ==> ignore
arg [-plugin-opt=/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/lto-wrapper] ==> ignore
arg [-plugin-opt=-fresolution=/tmp/cciDPlOs.res] ==> ignore
arg [-plugin-opt=-fresolution=/tmp/ccE8t8XM.res] ==> ignore
arg [-plugin-opt=-pass-through=-lgcc] ==> ignore
arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore
arg [-plugin-opt=-pass-through=-lc] ==> ignore
@@ -1363,7 +1363,7 @@ events:
arg [/lib64/ld-linux-x86-64.so.2] ==> ignore
arg [-pie] ==> ignore
arg [-o] ==> ignore
arg [cmTC_f22b1] ==> ignore
arg [cmTC_93f19] ==> ignore
arg [/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/Scrt1.o] ==> obj [/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/Scrt1.o]
arg [/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/crti.o] ==> obj [/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/crti.o]
arg [/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/crtbeginS.o] ==> obj [/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/crtbeginS.o]
@@ -1375,7 +1375,7 @@ events:
arg [-L/lib] ==> dir [/lib]
arg [-L/usr/lib] ==> dir [/usr/lib]
arg [-v] ==> ignore
arg [CMakeFiles/cmTC_f22b1.dir/CMakeCCompilerABI.c.o] ==> ignore
arg [CMakeFiles/cmTC_93f19.dir/CMakeCCompilerABI.c.o] ==> ignore
arg [-lgcc] ==> lib [gcc]
arg [--push-state] ==> ignore
arg [--as-needed] ==> ignore
@@ -1390,7 +1390,7 @@ events:
arg [/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/crtendS.o] ==> obj [/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/crtendS.o]
arg [/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/crtn.o] ==> obj [/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/crtn.o]
ignore line: [collect2 version 15.2.1 20260209]
ignore line: [/usr/bin/ld -plugin /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/lto-wrapper -plugin-opt=-fresolution=/tmp/cciDPlOs.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --build-id --eh-frame-hdr --hash-style=gnu -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -o cmTC_f22b1 /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/Scrt1.o /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/crti.o /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/crtbeginS.o -L/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1 -L/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib -L/lib/../lib -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../.. -L/lib -L/usr/lib -v CMakeFiles/cmTC_f22b1.dir/CMakeCCompilerABI.c.o -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/crtendS.o /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/crtn.o]
ignore line: [/usr/bin/ld -plugin /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/lto-wrapper -plugin-opt=-fresolution=/tmp/ccE8t8XM.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --build-id --eh-frame-hdr --hash-style=gnu -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -o cmTC_93f19 /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/Scrt1.o /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/crti.o /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/crtbeginS.o -L/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1 -L/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib -L/lib/../lib -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../.. -L/lib -L/usr/lib -v CMakeFiles/cmTC_93f19.dir/CMakeCCompilerABI.c.o -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/crtendS.o /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/crtn.o]
linker tool for 'C': /usr/bin/ld
collapse obj [/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/Scrt1.o] ==> [/usr/lib/Scrt1.o]
collapse obj [/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/crti.o] ==> [/usr/lib/crti.o]
@@ -1427,8 +1427,8 @@ events:
checks:
- "Detecting CXX compiler ABI info"
directories:
source: "/home/Jordan/Projects/CPP/LearningVulkan/build/CMakeFiles/CMakeScratch/TryCompile-Z1OehA"
binary: "/home/Jordan/Projects/CPP/LearningVulkan/build/CMakeFiles/CMakeScratch/TryCompile-Z1OehA"
source: "/home/Jordan/Projects/CPP/LearningVulkan/build/CMakeFiles/CMakeScratch/TryCompile-4hsoiO"
binary: "/home/Jordan/Projects/CPP/LearningVulkan/build/CMakeFiles/CMakeScratch/TryCompile-4hsoiO"
cmakeVariables:
CMAKE_CXX_FLAGS: ""
CMAKE_CXX_FLAGS_DEBUG: "-g"
@@ -1438,13 +1438,13 @@ events:
variable: "CMAKE_CXX_ABI_COMPILED"
cached: true
stdout: |
Change Dir: '/home/Jordan/Projects/CPP/LearningVulkan/build/CMakeFiles/CMakeScratch/TryCompile-Z1OehA'
Change Dir: '/home/Jordan/Projects/CPP/LearningVulkan/build/CMakeFiles/CMakeScratch/TryCompile-4hsoiO'
Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/make -f Makefile cmTC_62d97/fast
/usr/bin/make -f CMakeFiles/cmTC_62d97.dir/build.make CMakeFiles/cmTC_62d97.dir/build
make[1]: Entering directory '/home/Jordan/Projects/CPP/LearningVulkan/build/CMakeFiles/CMakeScratch/TryCompile-Z1OehA'
Building CXX object CMakeFiles/cmTC_62d97.dir/CMakeCXXCompilerABI.cpp.o
/usr/bin/c++ -v -o CMakeFiles/cmTC_62d97.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake/Modules/CMakeCXXCompilerABI.cpp
Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/make -f Makefile cmTC_6421f/fast
/usr/bin/make -f CMakeFiles/cmTC_6421f.dir/build.make CMakeFiles/cmTC_6421f.dir/build
make[1]: Entering directory '/home/Jordan/Projects/CPP/LearningVulkan/build/CMakeFiles/CMakeScratch/TryCompile-4hsoiO'
Building CXX object CMakeFiles/cmTC_6421f.dir/CMakeCXXCompilerABI.cpp.o
/usr/bin/c++ -v -o CMakeFiles/cmTC_6421f.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake/Modules/CMakeCXXCompilerABI.cpp
Using built-in specs.
COLLECT_GCC=/usr/bin/c++
Target: x86_64-pc-linux-gnu
@@ -1452,8 +1452,8 @@ events:
Thread model: posix
Supported LTO compression algorithms: zlib zstd
gcc version 15.2.1 20260209 (GCC)
COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_62d97.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_62d97.dir/'
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/cc1plus -quiet -v -D_GNU_SOURCE /usr/share/cmake/Modules/CMakeCXXCompilerABI.cpp -quiet -dumpdir CMakeFiles/cmTC_62d97.dir/ -dumpbase CMakeCXXCompilerABI.cpp.cpp -dumpbase-ext .cpp -mtune=generic -march=x86-64 -version -o /tmp/ccSB0kAz.s
COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_6421f.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_6421f.dir/'
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/cc1plus -quiet -v -D_GNU_SOURCE /usr/share/cmake/Modules/CMakeCXXCompilerABI.cpp -quiet -dumpdir CMakeFiles/cmTC_6421f.dir/ -dumpbase CMakeCXXCompilerABI.cpp.cpp -dumpbase-ext .cpp -mtune=generic -march=x86-64 -version -o /tmp/ccFxAJtA.s
GNU C++17 (GCC) version 15.2.1 20260209 (x86_64-pc-linux-gnu)
compiled by GNU C version 15.2.1 20260209, GMP version 6.3.0, MPFR version 4.2.2, MPC version 1.3.1, isl version isl-0.27-GMP
@@ -1470,14 +1470,14 @@ events:
/usr/include
End of search list.
Compiler executable checksum: 5e3969de92aa3c12a625237f01b15b2f
COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_62d97.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_62d97.dir/'
as -v --64 -o CMakeFiles/cmTC_62d97.dir/CMakeCXXCompilerABI.cpp.o /tmp/ccSB0kAz.s
COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_6421f.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_6421f.dir/'
as -v --64 -o CMakeFiles/cmTC_6421f.dir/CMakeCXXCompilerABI.cpp.o /tmp/ccFxAJtA.s
GNU assembler version 2.46 (x86_64-pc-linux-gnu) using BFD version (GNU Binutils) 2.46
COMPILER_PATH=/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/:/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/
LIBRARY_PATH=/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/:/lib/../lib/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../:/lib/:/usr/lib/
COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_62d97.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_62d97.dir/CMakeCXXCompilerABI.cpp.'
Linking CXX executable cmTC_62d97
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_62d97.dir/link.txt --verbose=1
COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_6421f.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_6421f.dir/CMakeCXXCompilerABI.cpp.'
Linking CXX executable cmTC_6421f
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_6421f.dir/link.txt --verbose=1
Using built-in specs.
COLLECT_GCC=/usr/bin/c++
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/lto-wrapper
@@ -1488,14 +1488,14 @@ events:
gcc version 15.2.1 20260209 (GCC)
COMPILER_PATH=/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/:/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/
LIBRARY_PATH=/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/:/lib/../lib/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../:/lib/:/usr/lib/
COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_62d97' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_62d97.'
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/collect2 -plugin /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/lto-wrapper -plugin-opt=-fresolution=/tmp/cc9yM9j7.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr --hash-style=gnu -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -o cmTC_62d97 /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/Scrt1.o /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/crti.o /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/crtbeginS.o -L/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1 -L/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib -L/lib/../lib -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../.. -L/lib -L/usr/lib -v CMakeFiles/cmTC_62d97.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/crtendS.o /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/crtn.o
COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_6421f' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_6421f.'
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/collect2 -plugin /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/lto-wrapper -plugin-opt=-fresolution=/tmp/ccXdq1qO.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr --hash-style=gnu -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -o cmTC_6421f /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/Scrt1.o /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/crti.o /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/crtbeginS.o -L/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1 -L/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib -L/lib/../lib -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../.. -L/lib -L/usr/lib -v CMakeFiles/cmTC_6421f.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/crtendS.o /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/crtn.o
collect2 version 15.2.1 20260209
/usr/bin/ld -plugin /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/lto-wrapper -plugin-opt=-fresolution=/tmp/cc9yM9j7.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr --hash-style=gnu -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -o cmTC_62d97 /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/Scrt1.o /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/crti.o /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/crtbeginS.o -L/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1 -L/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib -L/lib/../lib -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../.. -L/lib -L/usr/lib -v CMakeFiles/cmTC_62d97.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/crtendS.o /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/crtn.o
/usr/bin/ld -plugin /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/lto-wrapper -plugin-opt=-fresolution=/tmp/ccXdq1qO.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr --hash-style=gnu -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -o cmTC_6421f /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/Scrt1.o /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/crti.o /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/crtbeginS.o -L/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1 -L/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib -L/lib/../lib -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../.. -L/lib -L/usr/lib -v CMakeFiles/cmTC_6421f.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/crtendS.o /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/crtn.o
GNU ld (GNU Binutils) 2.46
COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_62d97' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_62d97.'
/usr/bin/c++ -v -Wl,-v CMakeFiles/cmTC_62d97.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_62d97
make[1]: Leaving directory '/home/Jordan/Projects/CPP/LearningVulkan/build/CMakeFiles/CMakeScratch/TryCompile-Z1OehA'
COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_6421f' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_6421f.'
/usr/bin/c++ -v -Wl,-v CMakeFiles/cmTC_6421f.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_6421f
make[1]: Leaving directory '/home/Jordan/Projects/CPP/LearningVulkan/build/CMakeFiles/CMakeScratch/TryCompile-4hsoiO'
exitCode: 0
-
@@ -1536,13 +1536,13 @@ events:
Parsed CXX implicit link information:
link line regex: [^( *|.*[/\\])(ld[0-9]*(|\\.[a-rt-z][a-z]*|\\.s[a-np-z][a-z]*|\\.so[a-z]+)|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\\]+-)?ld|collect2)[^/\\]*( |$)]
linker tool regex: [^[ ]*(->|"|[0-9]+>[ -]*Build:[ 0-9]+ ms[ ]*)?[ ]*(([^"]*[/\\])?(ld[0-9]*(|\\.[a-rt-z][a-z]*|\\.s[a-np-z][a-z]*|\\.so[a-z]+)))("|,| |$)]
ignore line: [Change Dir: '/home/Jordan/Projects/CPP/LearningVulkan/build/CMakeFiles/CMakeScratch/TryCompile-Z1OehA']
ignore line: [Change Dir: '/home/Jordan/Projects/CPP/LearningVulkan/build/CMakeFiles/CMakeScratch/TryCompile-4hsoiO']
ignore line: []
ignore line: [Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/make -f Makefile cmTC_62d97/fast]
ignore line: [/usr/bin/make -f CMakeFiles/cmTC_62d97.dir/build.make CMakeFiles/cmTC_62d97.dir/build]
ignore line: [make[1]: Entering directory '/home/Jordan/Projects/CPP/LearningVulkan/build/CMakeFiles/CMakeScratch/TryCompile-Z1OehA']
ignore line: [Building CXX object CMakeFiles/cmTC_62d97.dir/CMakeCXXCompilerABI.cpp.o]
ignore line: [/usr/bin/c++ -v -o CMakeFiles/cmTC_62d97.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake/Modules/CMakeCXXCompilerABI.cpp]
ignore line: [Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/make -f Makefile cmTC_6421f/fast]
ignore line: [/usr/bin/make -f CMakeFiles/cmTC_6421f.dir/build.make CMakeFiles/cmTC_6421f.dir/build]
ignore line: [make[1]: Entering directory '/home/Jordan/Projects/CPP/LearningVulkan/build/CMakeFiles/CMakeScratch/TryCompile-4hsoiO']
ignore line: [Building CXX object CMakeFiles/cmTC_6421f.dir/CMakeCXXCompilerABI.cpp.o]
ignore line: [/usr/bin/c++ -v -o CMakeFiles/cmTC_6421f.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake/Modules/CMakeCXXCompilerABI.cpp]
ignore line: [Using built-in specs.]
ignore line: [COLLECT_GCC=/usr/bin/c++]
ignore line: [Target: x86_64-pc-linux-gnu]
@@ -1550,8 +1550,8 @@ events:
ignore line: [Thread model: posix]
ignore line: [Supported LTO compression algorithms: zlib zstd]
ignore line: [gcc version 15.2.1 20260209 (GCC) ]
ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_62d97.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_62d97.dir/']
ignore line: [ /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/cc1plus -quiet -v -D_GNU_SOURCE /usr/share/cmake/Modules/CMakeCXXCompilerABI.cpp -quiet -dumpdir CMakeFiles/cmTC_62d97.dir/ -dumpbase CMakeCXXCompilerABI.cpp.cpp -dumpbase-ext .cpp -mtune=generic -march=x86-64 -version -o /tmp/ccSB0kAz.s]
ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_6421f.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_6421f.dir/']
ignore line: [ /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/cc1plus -quiet -v -D_GNU_SOURCE /usr/share/cmake/Modules/CMakeCXXCompilerABI.cpp -quiet -dumpdir CMakeFiles/cmTC_6421f.dir/ -dumpbase CMakeCXXCompilerABI.cpp.cpp -dumpbase-ext .cpp -mtune=generic -march=x86-64 -version -o /tmp/ccFxAJtA.s]
ignore line: [GNU C++17 (GCC) version 15.2.1 20260209 (x86_64-pc-linux-gnu)]
ignore line: [ compiled by GNU C version 15.2.1 20260209 GMP version 6.3.0 MPFR version 4.2.2 MPC version 1.3.1 isl version isl-0.27-GMP]
ignore line: []
@@ -1568,14 +1568,14 @@ events:
ignore line: [ /usr/include]
ignore line: [End of search list.]
ignore line: [Compiler executable checksum: 5e3969de92aa3c12a625237f01b15b2f]
ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_62d97.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_62d97.dir/']
ignore line: [ as -v --64 -o CMakeFiles/cmTC_62d97.dir/CMakeCXXCompilerABI.cpp.o /tmp/ccSB0kAz.s]
ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_6421f.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_6421f.dir/']
ignore line: [ as -v --64 -o CMakeFiles/cmTC_6421f.dir/CMakeCXXCompilerABI.cpp.o /tmp/ccFxAJtA.s]
ignore line: [GNU assembler version 2.46 (x86_64-pc-linux-gnu) using BFD version (GNU Binutils) 2.46]
ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/:/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/]
ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/:/lib/../lib/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../:/lib/:/usr/lib/]
ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_62d97.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_62d97.dir/CMakeCXXCompilerABI.cpp.']
ignore line: [Linking CXX executable cmTC_62d97]
ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_62d97.dir/link.txt --verbose=1]
ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_6421f.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_6421f.dir/CMakeCXXCompilerABI.cpp.']
ignore line: [Linking CXX executable cmTC_6421f]
ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_6421f.dir/link.txt --verbose=1]
ignore line: [Using built-in specs.]
ignore line: [COLLECT_GCC=/usr/bin/c++]
ignore line: [COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/lto-wrapper]
@@ -1586,13 +1586,13 @@ events:
ignore line: [gcc version 15.2.1 20260209 (GCC) ]
ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/:/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/]
ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/:/lib/../lib/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../:/lib/:/usr/lib/]
ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_62d97' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_62d97.']
link line: [ /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/collect2 -plugin /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/lto-wrapper -plugin-opt=-fresolution=/tmp/cc9yM9j7.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr --hash-style=gnu -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -o cmTC_62d97 /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/Scrt1.o /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/crti.o /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/crtbeginS.o -L/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1 -L/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib -L/lib/../lib -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../.. -L/lib -L/usr/lib -v CMakeFiles/cmTC_62d97.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/crtendS.o /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/crtn.o]
ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_6421f' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_6421f.']
link line: [ /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/collect2 -plugin /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/lto-wrapper -plugin-opt=-fresolution=/tmp/ccXdq1qO.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr --hash-style=gnu -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -o cmTC_6421f /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/Scrt1.o /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/crti.o /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/crtbeginS.o -L/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1 -L/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib -L/lib/../lib -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../.. -L/lib -L/usr/lib -v CMakeFiles/cmTC_6421f.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/crtendS.o /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/crtn.o]
arg [/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/collect2] ==> ignore
arg [-plugin] ==> ignore
arg [/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/liblto_plugin.so] ==> ignore
arg [-plugin-opt=/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/lto-wrapper] ==> ignore
arg [-plugin-opt=-fresolution=/tmp/cc9yM9j7.res] ==> ignore
arg [-plugin-opt=-fresolution=/tmp/ccXdq1qO.res] ==> ignore
arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore
arg [-plugin-opt=-pass-through=-lgcc] ==> ignore
arg [-plugin-opt=-pass-through=-lc] ==> ignore
@@ -1607,7 +1607,7 @@ events:
arg [/lib64/ld-linux-x86-64.so.2] ==> ignore
arg [-pie] ==> ignore
arg [-o] ==> ignore
arg [cmTC_62d97] ==> ignore
arg [cmTC_6421f] ==> ignore
arg [/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/Scrt1.o] ==> obj [/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/Scrt1.o]
arg [/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/crti.o] ==> obj [/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/crti.o]
arg [/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/crtbeginS.o] ==> obj [/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/crtbeginS.o]
@@ -1619,7 +1619,7 @@ events:
arg [-L/lib] ==> dir [/lib]
arg [-L/usr/lib] ==> dir [/usr/lib]
arg [-v] ==> ignore
arg [CMakeFiles/cmTC_62d97.dir/CMakeCXXCompilerABI.cpp.o] ==> ignore
arg [CMakeFiles/cmTC_6421f.dir/CMakeCXXCompilerABI.cpp.o] ==> ignore
arg [-lstdc++] ==> lib [stdc++]
arg [-lm] ==> lib [m]
arg [-lgcc_s] ==> lib [gcc_s]
@@ -1630,7 +1630,7 @@ events:
arg [/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/crtendS.o] ==> obj [/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/crtendS.o]
arg [/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/crtn.o] ==> obj [/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/crtn.o]
ignore line: [collect2 version 15.2.1 20260209]
ignore line: [/usr/bin/ld -plugin /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/lto-wrapper -plugin-opt=-fresolution=/tmp/cc9yM9j7.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr --hash-style=gnu -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -o cmTC_62d97 /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/Scrt1.o /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/crti.o /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/crtbeginS.o -L/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1 -L/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib -L/lib/../lib -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../.. -L/lib -L/usr/lib -v CMakeFiles/cmTC_62d97.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/crtendS.o /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/crtn.o]
ignore line: [/usr/bin/ld -plugin /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/lto-wrapper -plugin-opt=-fresolution=/tmp/ccXdq1qO.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr --hash-style=gnu -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -o cmTC_6421f /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/Scrt1.o /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/crti.o /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/crtbeginS.o -L/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1 -L/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib -L/lib/../lib -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../.. -L/lib -L/usr/lib -v CMakeFiles/cmTC_6421f.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/crtendS.o /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/crtn.o]
linker tool for 'CXX': /usr/bin/ld
collapse obj [/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/Scrt1.o] ==> [/usr/lib/Scrt1.o]
collapse obj [/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/../../../../lib/crti.o] ==> [/usr/lib/crti.o]

View File

@@ -17,7 +17,7 @@ set(CMAKE_DEPENDS_DEPENDENCY_FILES
"/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/imgui_widgets.cpp" "CMakeFiles/LearningVulkan.dir/lib/imgui/imgui_widgets.cpp.o" "gcc" "CMakeFiles/LearningVulkan.dir/lib/imgui/imgui_widgets.cpp.o.d"
"/home/Jordan/Projects/CPP/LearningVulkan/src/main.cpp" "CMakeFiles/LearningVulkan.dir/src/main.cpp.o" "gcc" "CMakeFiles/LearningVulkan.dir/src/main.cpp.o.d"
"/home/Jordan/Projects/CPP/LearningVulkan/src/private/GlfwWindowManager.cpp" "CMakeFiles/LearningVulkan.dir/src/private/GlfwWindowManager.cpp.o" "gcc" "CMakeFiles/LearningVulkan.dir/src/private/GlfwWindowManager.cpp.o.d"
"/home/Jordan/Projects/CPP/LearningVulkan/src/private/VulkanCommandBuffers.cpp" "CMakeFiles/LearningVulkan.dir/src/private/VulkanCommandBuffers.cpp.o" "gcc" "CMakeFiles/LearningVulkan.dir/src/private/VulkanCommandBuffers.cpp.o.d"
"/home/Jordan/Projects/CPP/LearningVulkan/src/private/VulkanBuffers.cpp" "CMakeFiles/LearningVulkan.dir/src/private/VulkanBuffers.cpp.o" "gcc" "CMakeFiles/LearningVulkan.dir/src/private/VulkanBuffers.cpp.o.d"
"/home/Jordan/Projects/CPP/LearningVulkan/src/private/VulkanContext.cpp" "CMakeFiles/LearningVulkan.dir/src/private/VulkanContext.cpp.o" "gcc" "CMakeFiles/LearningVulkan.dir/src/private/VulkanContext.cpp.o.d"
"/home/Jordan/Projects/CPP/LearningVulkan/src/private/VulkanDebugManager.cpp" "CMakeFiles/LearningVulkan.dir/src/private/VulkanDebugManager.cpp.o" "gcc" "CMakeFiles/LearningVulkan.dir/src/private/VulkanDebugManager.cpp.o.d"
"/home/Jordan/Projects/CPP/LearningVulkan/src/private/VulkanDeviceManager.cpp" "CMakeFiles/LearningVulkan.dir/src/private/VulkanDeviceManager.cpp.o" "gcc" "CMakeFiles/LearningVulkan.dir/src/private/VulkanDeviceManager.cpp.o.d"
@@ -26,9 +26,10 @@ set(CMAKE_DEPENDS_DEPENDENCY_FILES
"/home/Jordan/Projects/CPP/LearningVulkan/src/private/VulkanPipeline.cpp" "CMakeFiles/LearningVulkan.dir/src/private/VulkanPipeline.cpp.o" "gcc" "CMakeFiles/LearningVulkan.dir/src/private/VulkanPipeline.cpp.o.d"
"/home/Jordan/Projects/CPP/LearningVulkan/src/private/VulkanRenderPass.cpp" "CMakeFiles/LearningVulkan.dir/src/private/VulkanRenderPass.cpp.o" "gcc" "CMakeFiles/LearningVulkan.dir/src/private/VulkanRenderPass.cpp.o.d"
"/home/Jordan/Projects/CPP/LearningVulkan/src/private/VulkanSwapChain.cpp" "CMakeFiles/LearningVulkan.dir/src/private/VulkanSwapChain.cpp.o" "gcc" "CMakeFiles/LearningVulkan.dir/src/private/VulkanSwapChain.cpp.o.d"
"/home/Jordan/Projects/CPP/LearningVulkan/src/private/VulkanVertexBuffer.cpp" "CMakeFiles/LearningVulkan.dir/src/private/VulkanVertexBuffer.cpp.o" "gcc" "CMakeFiles/LearningVulkan.dir/src/private/VulkanVertexBuffer.cpp.o.d"
"/home/Jordan/Projects/CPP/LearningVulkan/src/private/VulkanTexture.cpp" "CMakeFiles/LearningVulkan.dir/src/private/VulkanTexture.cpp.o" "gcc" "CMakeFiles/LearningVulkan.dir/src/private/VulkanTexture.cpp.o.d"
"/home/Jordan/Projects/CPP/LearningVulkan/src/utilities/Logger.cpp" "CMakeFiles/LearningVulkan.dir/src/utilities/Logger.cpp.o" "gcc" "CMakeFiles/LearningVulkan.dir/src/utilities/Logger.cpp.o.d"
"/home/Jordan/Projects/CPP/LearningVulkan/src/utilities/stb_image_impl.cpp" "CMakeFiles/LearningVulkan.dir/src/utilities/stb_image_impl.cpp.o" "gcc" "CMakeFiles/LearningVulkan.dir/src/utilities/stb_image_impl.cpp.o.d"
"/home/Jordan/Projects/CPP/LearningVulkan/src/utilities/tiny_obj_loader_impl.cpp" "CMakeFiles/LearningVulkan.dir/src/utilities/tiny_obj_loader_impl.cpp.o" "gcc" "CMakeFiles/LearningVulkan.dir/src/utilities/tiny_obj_loader_impl.cpp.o.d"
"" "LearningVulkan" "gcc" "CMakeFiles/LearningVulkan.dir/link.d"
)

View File

@@ -100,19 +100,19 @@ CMakeFiles/LearningVulkan.dir/src/private/GlfwWindowManager.cpp.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Compiling CXX source to assembly CMakeFiles/LearningVulkan.dir/src/private/GlfwWindowManager.cpp.s"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/Jordan/Projects/CPP/LearningVulkan/src/private/GlfwWindowManager.cpp -o CMakeFiles/LearningVulkan.dir/src/private/GlfwWindowManager.cpp.s
CMakeFiles/LearningVulkan.dir/src/private/VulkanCommandBuffers.cpp.o: CMakeFiles/LearningVulkan.dir/flags.make
CMakeFiles/LearningVulkan.dir/src/private/VulkanCommandBuffers.cpp.o: /home/Jordan/Projects/CPP/LearningVulkan/src/private/VulkanCommandBuffers.cpp
CMakeFiles/LearningVulkan.dir/src/private/VulkanCommandBuffers.cpp.o: CMakeFiles/LearningVulkan.dir/compiler_depend.ts
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/home/Jordan/Projects/CPP/LearningVulkan/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_3) "Building CXX object CMakeFiles/LearningVulkan.dir/src/private/VulkanCommandBuffers.cpp.o"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT CMakeFiles/LearningVulkan.dir/src/private/VulkanCommandBuffers.cpp.o -MF CMakeFiles/LearningVulkan.dir/src/private/VulkanCommandBuffers.cpp.o.d -o CMakeFiles/LearningVulkan.dir/src/private/VulkanCommandBuffers.cpp.o -c /home/Jordan/Projects/CPP/LearningVulkan/src/private/VulkanCommandBuffers.cpp
CMakeFiles/LearningVulkan.dir/src/private/VulkanBuffers.cpp.o: CMakeFiles/LearningVulkan.dir/flags.make
CMakeFiles/LearningVulkan.dir/src/private/VulkanBuffers.cpp.o: /home/Jordan/Projects/CPP/LearningVulkan/src/private/VulkanBuffers.cpp
CMakeFiles/LearningVulkan.dir/src/private/VulkanBuffers.cpp.o: CMakeFiles/LearningVulkan.dir/compiler_depend.ts
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/home/Jordan/Projects/CPP/LearningVulkan/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_3) "Building CXX object CMakeFiles/LearningVulkan.dir/src/private/VulkanBuffers.cpp.o"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT CMakeFiles/LearningVulkan.dir/src/private/VulkanBuffers.cpp.o -MF CMakeFiles/LearningVulkan.dir/src/private/VulkanBuffers.cpp.o.d -o CMakeFiles/LearningVulkan.dir/src/private/VulkanBuffers.cpp.o -c /home/Jordan/Projects/CPP/LearningVulkan/src/private/VulkanBuffers.cpp
CMakeFiles/LearningVulkan.dir/src/private/VulkanCommandBuffers.cpp.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Preprocessing CXX source to CMakeFiles/LearningVulkan.dir/src/private/VulkanCommandBuffers.cpp.i"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/Jordan/Projects/CPP/LearningVulkan/src/private/VulkanCommandBuffers.cpp > CMakeFiles/LearningVulkan.dir/src/private/VulkanCommandBuffers.cpp.i
CMakeFiles/LearningVulkan.dir/src/private/VulkanBuffers.cpp.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Preprocessing CXX source to CMakeFiles/LearningVulkan.dir/src/private/VulkanBuffers.cpp.i"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/Jordan/Projects/CPP/LearningVulkan/src/private/VulkanBuffers.cpp > CMakeFiles/LearningVulkan.dir/src/private/VulkanBuffers.cpp.i
CMakeFiles/LearningVulkan.dir/src/private/VulkanCommandBuffers.cpp.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Compiling CXX source to assembly CMakeFiles/LearningVulkan.dir/src/private/VulkanCommandBuffers.cpp.s"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/Jordan/Projects/CPP/LearningVulkan/src/private/VulkanCommandBuffers.cpp -o CMakeFiles/LearningVulkan.dir/src/private/VulkanCommandBuffers.cpp.s
CMakeFiles/LearningVulkan.dir/src/private/VulkanBuffers.cpp.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Compiling CXX source to assembly CMakeFiles/LearningVulkan.dir/src/private/VulkanBuffers.cpp.s"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/Jordan/Projects/CPP/LearningVulkan/src/private/VulkanBuffers.cpp -o CMakeFiles/LearningVulkan.dir/src/private/VulkanBuffers.cpp.s
CMakeFiles/LearningVulkan.dir/src/private/VulkanContext.cpp.o: CMakeFiles/LearningVulkan.dir/flags.make
CMakeFiles/LearningVulkan.dir/src/private/VulkanContext.cpp.o: /home/Jordan/Projects/CPP/LearningVulkan/src/private/VulkanContext.cpp
@@ -226,19 +226,19 @@ CMakeFiles/LearningVulkan.dir/src/private/VulkanSwapChain.cpp.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Compiling CXX source to assembly CMakeFiles/LearningVulkan.dir/src/private/VulkanSwapChain.cpp.s"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/Jordan/Projects/CPP/LearningVulkan/src/private/VulkanSwapChain.cpp -o CMakeFiles/LearningVulkan.dir/src/private/VulkanSwapChain.cpp.s
CMakeFiles/LearningVulkan.dir/src/private/VulkanVertexBuffer.cpp.o: CMakeFiles/LearningVulkan.dir/flags.make
CMakeFiles/LearningVulkan.dir/src/private/VulkanVertexBuffer.cpp.o: /home/Jordan/Projects/CPP/LearningVulkan/src/private/VulkanVertexBuffer.cpp
CMakeFiles/LearningVulkan.dir/src/private/VulkanVertexBuffer.cpp.o: CMakeFiles/LearningVulkan.dir/compiler_depend.ts
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/home/Jordan/Projects/CPP/LearningVulkan/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_12) "Building CXX object CMakeFiles/LearningVulkan.dir/src/private/VulkanVertexBuffer.cpp.o"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT CMakeFiles/LearningVulkan.dir/src/private/VulkanVertexBuffer.cpp.o -MF CMakeFiles/LearningVulkan.dir/src/private/VulkanVertexBuffer.cpp.o.d -o CMakeFiles/LearningVulkan.dir/src/private/VulkanVertexBuffer.cpp.o -c /home/Jordan/Projects/CPP/LearningVulkan/src/private/VulkanVertexBuffer.cpp
CMakeFiles/LearningVulkan.dir/src/private/VulkanTexture.cpp.o: CMakeFiles/LearningVulkan.dir/flags.make
CMakeFiles/LearningVulkan.dir/src/private/VulkanTexture.cpp.o: /home/Jordan/Projects/CPP/LearningVulkan/src/private/VulkanTexture.cpp
CMakeFiles/LearningVulkan.dir/src/private/VulkanTexture.cpp.o: CMakeFiles/LearningVulkan.dir/compiler_depend.ts
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/home/Jordan/Projects/CPP/LearningVulkan/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_12) "Building CXX object CMakeFiles/LearningVulkan.dir/src/private/VulkanTexture.cpp.o"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT CMakeFiles/LearningVulkan.dir/src/private/VulkanTexture.cpp.o -MF CMakeFiles/LearningVulkan.dir/src/private/VulkanTexture.cpp.o.d -o CMakeFiles/LearningVulkan.dir/src/private/VulkanTexture.cpp.o -c /home/Jordan/Projects/CPP/LearningVulkan/src/private/VulkanTexture.cpp
CMakeFiles/LearningVulkan.dir/src/private/VulkanVertexBuffer.cpp.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Preprocessing CXX source to CMakeFiles/LearningVulkan.dir/src/private/VulkanVertexBuffer.cpp.i"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/Jordan/Projects/CPP/LearningVulkan/src/private/VulkanVertexBuffer.cpp > CMakeFiles/LearningVulkan.dir/src/private/VulkanVertexBuffer.cpp.i
CMakeFiles/LearningVulkan.dir/src/private/VulkanTexture.cpp.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Preprocessing CXX source to CMakeFiles/LearningVulkan.dir/src/private/VulkanTexture.cpp.i"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/Jordan/Projects/CPP/LearningVulkan/src/private/VulkanTexture.cpp > CMakeFiles/LearningVulkan.dir/src/private/VulkanTexture.cpp.i
CMakeFiles/LearningVulkan.dir/src/private/VulkanVertexBuffer.cpp.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Compiling CXX source to assembly CMakeFiles/LearningVulkan.dir/src/private/VulkanVertexBuffer.cpp.s"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/Jordan/Projects/CPP/LearningVulkan/src/private/VulkanVertexBuffer.cpp -o CMakeFiles/LearningVulkan.dir/src/private/VulkanVertexBuffer.cpp.s
CMakeFiles/LearningVulkan.dir/src/private/VulkanTexture.cpp.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Compiling CXX source to assembly CMakeFiles/LearningVulkan.dir/src/private/VulkanTexture.cpp.s"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/Jordan/Projects/CPP/LearningVulkan/src/private/VulkanTexture.cpp -o CMakeFiles/LearningVulkan.dir/src/private/VulkanTexture.cpp.s
CMakeFiles/LearningVulkan.dir/src/utilities/Logger.cpp.o: CMakeFiles/LearningVulkan.dir/flags.make
CMakeFiles/LearningVulkan.dir/src/utilities/Logger.cpp.o: /home/Jordan/Projects/CPP/LearningVulkan/src/utilities/Logger.cpp
@@ -268,10 +268,24 @@ CMakeFiles/LearningVulkan.dir/src/utilities/stb_image_impl.cpp.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Compiling CXX source to assembly CMakeFiles/LearningVulkan.dir/src/utilities/stb_image_impl.cpp.s"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/Jordan/Projects/CPP/LearningVulkan/src/utilities/stb_image_impl.cpp -o CMakeFiles/LearningVulkan.dir/src/utilities/stb_image_impl.cpp.s
CMakeFiles/LearningVulkan.dir/src/utilities/tiny_obj_loader_impl.cpp.o: CMakeFiles/LearningVulkan.dir/flags.make
CMakeFiles/LearningVulkan.dir/src/utilities/tiny_obj_loader_impl.cpp.o: /home/Jordan/Projects/CPP/LearningVulkan/src/utilities/tiny_obj_loader_impl.cpp
CMakeFiles/LearningVulkan.dir/src/utilities/tiny_obj_loader_impl.cpp.o: CMakeFiles/LearningVulkan.dir/compiler_depend.ts
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/home/Jordan/Projects/CPP/LearningVulkan/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_15) "Building CXX object CMakeFiles/LearningVulkan.dir/src/utilities/tiny_obj_loader_impl.cpp.o"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT CMakeFiles/LearningVulkan.dir/src/utilities/tiny_obj_loader_impl.cpp.o -MF CMakeFiles/LearningVulkan.dir/src/utilities/tiny_obj_loader_impl.cpp.o.d -o CMakeFiles/LearningVulkan.dir/src/utilities/tiny_obj_loader_impl.cpp.o -c /home/Jordan/Projects/CPP/LearningVulkan/src/utilities/tiny_obj_loader_impl.cpp
CMakeFiles/LearningVulkan.dir/src/utilities/tiny_obj_loader_impl.cpp.i: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Preprocessing CXX source to CMakeFiles/LearningVulkan.dir/src/utilities/tiny_obj_loader_impl.cpp.i"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/Jordan/Projects/CPP/LearningVulkan/src/utilities/tiny_obj_loader_impl.cpp > CMakeFiles/LearningVulkan.dir/src/utilities/tiny_obj_loader_impl.cpp.i
CMakeFiles/LearningVulkan.dir/src/utilities/tiny_obj_loader_impl.cpp.s: cmake_force
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Compiling CXX source to assembly CMakeFiles/LearningVulkan.dir/src/utilities/tiny_obj_loader_impl.cpp.s"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/Jordan/Projects/CPP/LearningVulkan/src/utilities/tiny_obj_loader_impl.cpp -o CMakeFiles/LearningVulkan.dir/src/utilities/tiny_obj_loader_impl.cpp.s
CMakeFiles/LearningVulkan.dir/lib/imgui/imgui.cpp.o: CMakeFiles/LearningVulkan.dir/flags.make
CMakeFiles/LearningVulkan.dir/lib/imgui/imgui.cpp.o: /home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/imgui.cpp
CMakeFiles/LearningVulkan.dir/lib/imgui/imgui.cpp.o: CMakeFiles/LearningVulkan.dir/compiler_depend.ts
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/home/Jordan/Projects/CPP/LearningVulkan/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_15) "Building CXX object CMakeFiles/LearningVulkan.dir/lib/imgui/imgui.cpp.o"
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/home/Jordan/Projects/CPP/LearningVulkan/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_16) "Building CXX object CMakeFiles/LearningVulkan.dir/lib/imgui/imgui.cpp.o"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT CMakeFiles/LearningVulkan.dir/lib/imgui/imgui.cpp.o -MF CMakeFiles/LearningVulkan.dir/lib/imgui/imgui.cpp.o.d -o CMakeFiles/LearningVulkan.dir/lib/imgui/imgui.cpp.o -c /home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/imgui.cpp
CMakeFiles/LearningVulkan.dir/lib/imgui/imgui.cpp.i: cmake_force
@@ -285,7 +299,7 @@ CMakeFiles/LearningVulkan.dir/lib/imgui/imgui.cpp.s: cmake_force
CMakeFiles/LearningVulkan.dir/lib/imgui/imgui_demo.cpp.o: CMakeFiles/LearningVulkan.dir/flags.make
CMakeFiles/LearningVulkan.dir/lib/imgui/imgui_demo.cpp.o: /home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/imgui_demo.cpp
CMakeFiles/LearningVulkan.dir/lib/imgui/imgui_demo.cpp.o: CMakeFiles/LearningVulkan.dir/compiler_depend.ts
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/home/Jordan/Projects/CPP/LearningVulkan/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_16) "Building CXX object CMakeFiles/LearningVulkan.dir/lib/imgui/imgui_demo.cpp.o"
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/home/Jordan/Projects/CPP/LearningVulkan/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_17) "Building CXX object CMakeFiles/LearningVulkan.dir/lib/imgui/imgui_demo.cpp.o"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT CMakeFiles/LearningVulkan.dir/lib/imgui/imgui_demo.cpp.o -MF CMakeFiles/LearningVulkan.dir/lib/imgui/imgui_demo.cpp.o.d -o CMakeFiles/LearningVulkan.dir/lib/imgui/imgui_demo.cpp.o -c /home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/imgui_demo.cpp
CMakeFiles/LearningVulkan.dir/lib/imgui/imgui_demo.cpp.i: cmake_force
@@ -299,7 +313,7 @@ CMakeFiles/LearningVulkan.dir/lib/imgui/imgui_demo.cpp.s: cmake_force
CMakeFiles/LearningVulkan.dir/lib/imgui/imgui_draw.cpp.o: CMakeFiles/LearningVulkan.dir/flags.make
CMakeFiles/LearningVulkan.dir/lib/imgui/imgui_draw.cpp.o: /home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/imgui_draw.cpp
CMakeFiles/LearningVulkan.dir/lib/imgui/imgui_draw.cpp.o: CMakeFiles/LearningVulkan.dir/compiler_depend.ts
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/home/Jordan/Projects/CPP/LearningVulkan/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_17) "Building CXX object CMakeFiles/LearningVulkan.dir/lib/imgui/imgui_draw.cpp.o"
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/home/Jordan/Projects/CPP/LearningVulkan/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_18) "Building CXX object CMakeFiles/LearningVulkan.dir/lib/imgui/imgui_draw.cpp.o"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT CMakeFiles/LearningVulkan.dir/lib/imgui/imgui_draw.cpp.o -MF CMakeFiles/LearningVulkan.dir/lib/imgui/imgui_draw.cpp.o.d -o CMakeFiles/LearningVulkan.dir/lib/imgui/imgui_draw.cpp.o -c /home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/imgui_draw.cpp
CMakeFiles/LearningVulkan.dir/lib/imgui/imgui_draw.cpp.i: cmake_force
@@ -313,7 +327,7 @@ CMakeFiles/LearningVulkan.dir/lib/imgui/imgui_draw.cpp.s: cmake_force
CMakeFiles/LearningVulkan.dir/lib/imgui/imgui_tables.cpp.o: CMakeFiles/LearningVulkan.dir/flags.make
CMakeFiles/LearningVulkan.dir/lib/imgui/imgui_tables.cpp.o: /home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/imgui_tables.cpp
CMakeFiles/LearningVulkan.dir/lib/imgui/imgui_tables.cpp.o: CMakeFiles/LearningVulkan.dir/compiler_depend.ts
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/home/Jordan/Projects/CPP/LearningVulkan/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_18) "Building CXX object CMakeFiles/LearningVulkan.dir/lib/imgui/imgui_tables.cpp.o"
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/home/Jordan/Projects/CPP/LearningVulkan/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_19) "Building CXX object CMakeFiles/LearningVulkan.dir/lib/imgui/imgui_tables.cpp.o"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT CMakeFiles/LearningVulkan.dir/lib/imgui/imgui_tables.cpp.o -MF CMakeFiles/LearningVulkan.dir/lib/imgui/imgui_tables.cpp.o.d -o CMakeFiles/LearningVulkan.dir/lib/imgui/imgui_tables.cpp.o -c /home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/imgui_tables.cpp
CMakeFiles/LearningVulkan.dir/lib/imgui/imgui_tables.cpp.i: cmake_force
@@ -327,7 +341,7 @@ CMakeFiles/LearningVulkan.dir/lib/imgui/imgui_tables.cpp.s: cmake_force
CMakeFiles/LearningVulkan.dir/lib/imgui/imgui_widgets.cpp.o: CMakeFiles/LearningVulkan.dir/flags.make
CMakeFiles/LearningVulkan.dir/lib/imgui/imgui_widgets.cpp.o: /home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/imgui_widgets.cpp
CMakeFiles/LearningVulkan.dir/lib/imgui/imgui_widgets.cpp.o: CMakeFiles/LearningVulkan.dir/compiler_depend.ts
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/home/Jordan/Projects/CPP/LearningVulkan/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_19) "Building CXX object CMakeFiles/LearningVulkan.dir/lib/imgui/imgui_widgets.cpp.o"
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/home/Jordan/Projects/CPP/LearningVulkan/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_20) "Building CXX object CMakeFiles/LearningVulkan.dir/lib/imgui/imgui_widgets.cpp.o"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT CMakeFiles/LearningVulkan.dir/lib/imgui/imgui_widgets.cpp.o -MF CMakeFiles/LearningVulkan.dir/lib/imgui/imgui_widgets.cpp.o.d -o CMakeFiles/LearningVulkan.dir/lib/imgui/imgui_widgets.cpp.o -c /home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/imgui_widgets.cpp
CMakeFiles/LearningVulkan.dir/lib/imgui/imgui_widgets.cpp.i: cmake_force
@@ -341,7 +355,7 @@ CMakeFiles/LearningVulkan.dir/lib/imgui/imgui_widgets.cpp.s: cmake_force
CMakeFiles/LearningVulkan.dir/lib/imgui/backends/imgui_impl_glfw.cpp.o: CMakeFiles/LearningVulkan.dir/flags.make
CMakeFiles/LearningVulkan.dir/lib/imgui/backends/imgui_impl_glfw.cpp.o: /home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/backends/imgui_impl_glfw.cpp
CMakeFiles/LearningVulkan.dir/lib/imgui/backends/imgui_impl_glfw.cpp.o: CMakeFiles/LearningVulkan.dir/compiler_depend.ts
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/home/Jordan/Projects/CPP/LearningVulkan/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_20) "Building CXX object CMakeFiles/LearningVulkan.dir/lib/imgui/backends/imgui_impl_glfw.cpp.o"
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/home/Jordan/Projects/CPP/LearningVulkan/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_21) "Building CXX object CMakeFiles/LearningVulkan.dir/lib/imgui/backends/imgui_impl_glfw.cpp.o"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT CMakeFiles/LearningVulkan.dir/lib/imgui/backends/imgui_impl_glfw.cpp.o -MF CMakeFiles/LearningVulkan.dir/lib/imgui/backends/imgui_impl_glfw.cpp.o.d -o CMakeFiles/LearningVulkan.dir/lib/imgui/backends/imgui_impl_glfw.cpp.o -c /home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/backends/imgui_impl_glfw.cpp
CMakeFiles/LearningVulkan.dir/lib/imgui/backends/imgui_impl_glfw.cpp.i: cmake_force
@@ -355,7 +369,7 @@ CMakeFiles/LearningVulkan.dir/lib/imgui/backends/imgui_impl_glfw.cpp.s: cmake_fo
CMakeFiles/LearningVulkan.dir/lib/imgui/backends/imgui_impl_vulkan.cpp.o: CMakeFiles/LearningVulkan.dir/flags.make
CMakeFiles/LearningVulkan.dir/lib/imgui/backends/imgui_impl_vulkan.cpp.o: /home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/backends/imgui_impl_vulkan.cpp
CMakeFiles/LearningVulkan.dir/lib/imgui/backends/imgui_impl_vulkan.cpp.o: CMakeFiles/LearningVulkan.dir/compiler_depend.ts
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/home/Jordan/Projects/CPP/LearningVulkan/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_21) "Building CXX object CMakeFiles/LearningVulkan.dir/lib/imgui/backends/imgui_impl_vulkan.cpp.o"
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/home/Jordan/Projects/CPP/LearningVulkan/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_22) "Building CXX object CMakeFiles/LearningVulkan.dir/lib/imgui/backends/imgui_impl_vulkan.cpp.o"
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT CMakeFiles/LearningVulkan.dir/lib/imgui/backends/imgui_impl_vulkan.cpp.o -MF CMakeFiles/LearningVulkan.dir/lib/imgui/backends/imgui_impl_vulkan.cpp.o.d -o CMakeFiles/LearningVulkan.dir/lib/imgui/backends/imgui_impl_vulkan.cpp.o -c /home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/backends/imgui_impl_vulkan.cpp
CMakeFiles/LearningVulkan.dir/lib/imgui/backends/imgui_impl_vulkan.cpp.i: cmake_force
@@ -370,7 +384,7 @@ CMakeFiles/LearningVulkan.dir/lib/imgui/backends/imgui_impl_vulkan.cpp.s: cmake_
LearningVulkan_OBJECTS = \
"CMakeFiles/LearningVulkan.dir/src/main.cpp.o" \
"CMakeFiles/LearningVulkan.dir/src/private/GlfwWindowManager.cpp.o" \
"CMakeFiles/LearningVulkan.dir/src/private/VulkanCommandBuffers.cpp.o" \
"CMakeFiles/LearningVulkan.dir/src/private/VulkanBuffers.cpp.o" \
"CMakeFiles/LearningVulkan.dir/src/private/VulkanContext.cpp.o" \
"CMakeFiles/LearningVulkan.dir/src/private/VulkanDebugManager.cpp.o" \
"CMakeFiles/LearningVulkan.dir/src/private/VulkanDeviceManager.cpp.o" \
@@ -379,9 +393,10 @@ LearningVulkan_OBJECTS = \
"CMakeFiles/LearningVulkan.dir/src/private/VulkanPipeline.cpp.o" \
"CMakeFiles/LearningVulkan.dir/src/private/VulkanRenderPass.cpp.o" \
"CMakeFiles/LearningVulkan.dir/src/private/VulkanSwapChain.cpp.o" \
"CMakeFiles/LearningVulkan.dir/src/private/VulkanVertexBuffer.cpp.o" \
"CMakeFiles/LearningVulkan.dir/src/private/VulkanTexture.cpp.o" \
"CMakeFiles/LearningVulkan.dir/src/utilities/Logger.cpp.o" \
"CMakeFiles/LearningVulkan.dir/src/utilities/stb_image_impl.cpp.o" \
"CMakeFiles/LearningVulkan.dir/src/utilities/tiny_obj_loader_impl.cpp.o" \
"CMakeFiles/LearningVulkan.dir/lib/imgui/imgui.cpp.o" \
"CMakeFiles/LearningVulkan.dir/lib/imgui/imgui_demo.cpp.o" \
"CMakeFiles/LearningVulkan.dir/lib/imgui/imgui_draw.cpp.o" \
@@ -395,7 +410,7 @@ LearningVulkan_EXTERNAL_OBJECTS =
LearningVulkan: CMakeFiles/LearningVulkan.dir/src/main.cpp.o
LearningVulkan: CMakeFiles/LearningVulkan.dir/src/private/GlfwWindowManager.cpp.o
LearningVulkan: CMakeFiles/LearningVulkan.dir/src/private/VulkanCommandBuffers.cpp.o
LearningVulkan: CMakeFiles/LearningVulkan.dir/src/private/VulkanBuffers.cpp.o
LearningVulkan: CMakeFiles/LearningVulkan.dir/src/private/VulkanContext.cpp.o
LearningVulkan: CMakeFiles/LearningVulkan.dir/src/private/VulkanDebugManager.cpp.o
LearningVulkan: CMakeFiles/LearningVulkan.dir/src/private/VulkanDeviceManager.cpp.o
@@ -404,9 +419,10 @@ LearningVulkan: CMakeFiles/LearningVulkan.dir/src/private/VulkanInstanceManager.
LearningVulkan: CMakeFiles/LearningVulkan.dir/src/private/VulkanPipeline.cpp.o
LearningVulkan: CMakeFiles/LearningVulkan.dir/src/private/VulkanRenderPass.cpp.o
LearningVulkan: CMakeFiles/LearningVulkan.dir/src/private/VulkanSwapChain.cpp.o
LearningVulkan: CMakeFiles/LearningVulkan.dir/src/private/VulkanVertexBuffer.cpp.o
LearningVulkan: CMakeFiles/LearningVulkan.dir/src/private/VulkanTexture.cpp.o
LearningVulkan: CMakeFiles/LearningVulkan.dir/src/utilities/Logger.cpp.o
LearningVulkan: CMakeFiles/LearningVulkan.dir/src/utilities/stb_image_impl.cpp.o
LearningVulkan: CMakeFiles/LearningVulkan.dir/src/utilities/tiny_obj_loader_impl.cpp.o
LearningVulkan: CMakeFiles/LearningVulkan.dir/lib/imgui/imgui.cpp.o
LearningVulkan: CMakeFiles/LearningVulkan.dir/lib/imgui/imgui_demo.cpp.o
LearningVulkan: CMakeFiles/LearningVulkan.dir/lib/imgui/imgui_draw.cpp.o
@@ -417,7 +433,7 @@ LearningVulkan: CMakeFiles/LearningVulkan.dir/lib/imgui/backends/imgui_impl_vulk
LearningVulkan: CMakeFiles/LearningVulkan.dir/build.make
LearningVulkan: CMakeFiles/LearningVulkan.dir/compiler_depend.ts
LearningVulkan: CMakeFiles/LearningVulkan.dir/link.txt
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --bold --progress-dir=/home/Jordan/Projects/CPP/LearningVulkan/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_22) "Linking CXX executable LearningVulkan"
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --bold --progress-dir=/home/Jordan/Projects/CPP/LearningVulkan/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_23) "Linking CXX executable LearningVulkan"
$(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/LearningVulkan.dir/link.txt --verbose=$(VERBOSE)
# Rule to build all files generated by this target.

View File

@@ -18,8 +18,8 @@ file(REMOVE_RECURSE
"CMakeFiles/LearningVulkan.dir/src/main.cpp.o.d"
"CMakeFiles/LearningVulkan.dir/src/private/GlfwWindowManager.cpp.o"
"CMakeFiles/LearningVulkan.dir/src/private/GlfwWindowManager.cpp.o.d"
"CMakeFiles/LearningVulkan.dir/src/private/VulkanCommandBuffers.cpp.o"
"CMakeFiles/LearningVulkan.dir/src/private/VulkanCommandBuffers.cpp.o.d"
"CMakeFiles/LearningVulkan.dir/src/private/VulkanBuffers.cpp.o"
"CMakeFiles/LearningVulkan.dir/src/private/VulkanBuffers.cpp.o.d"
"CMakeFiles/LearningVulkan.dir/src/private/VulkanContext.cpp.o"
"CMakeFiles/LearningVulkan.dir/src/private/VulkanContext.cpp.o.d"
"CMakeFiles/LearningVulkan.dir/src/private/VulkanDebugManager.cpp.o"
@@ -36,12 +36,14 @@ file(REMOVE_RECURSE
"CMakeFiles/LearningVulkan.dir/src/private/VulkanRenderPass.cpp.o.d"
"CMakeFiles/LearningVulkan.dir/src/private/VulkanSwapChain.cpp.o"
"CMakeFiles/LearningVulkan.dir/src/private/VulkanSwapChain.cpp.o.d"
"CMakeFiles/LearningVulkan.dir/src/private/VulkanVertexBuffer.cpp.o"
"CMakeFiles/LearningVulkan.dir/src/private/VulkanVertexBuffer.cpp.o.d"
"CMakeFiles/LearningVulkan.dir/src/private/VulkanTexture.cpp.o"
"CMakeFiles/LearningVulkan.dir/src/private/VulkanTexture.cpp.o.d"
"CMakeFiles/LearningVulkan.dir/src/utilities/Logger.cpp.o"
"CMakeFiles/LearningVulkan.dir/src/utilities/Logger.cpp.o.d"
"CMakeFiles/LearningVulkan.dir/src/utilities/stb_image_impl.cpp.o"
"CMakeFiles/LearningVulkan.dir/src/utilities/stb_image_impl.cpp.o.d"
"CMakeFiles/LearningVulkan.dir/src/utilities/tiny_obj_loader_impl.cpp.o"
"CMakeFiles/LearningVulkan.dir/src/utilities/tiny_obj_loader_impl.cpp.o.d"
"LearningVulkan"
"LearningVulkan.pdb"
)

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -4,7 +4,7 @@
# compile CXX with /usr/bin/c++
CXX_DEFINES =
CXX_INCLUDES = -I/home/Jordan/Projects/CPP/LearningVulkan/lib -I/home/Jordan/Projects/CPP/LearningVulkan/lib/stb -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/backends -I/home/Jordan/Projects/CPP/LearningVulkan/src -I/home/Jordan/Projects/CPP/LearningVulkan/src/utilities -I/home/Jordan/Projects/CPP/LearningVulkan/src/private -I/home/Jordan/Projects/CPP/LearningVulkan/src/public
CXX_INCLUDES = -I/home/Jordan/Projects/CPP/LearningVulkan/lib -I/home/Jordan/Projects/CPP/LearningVulkan/lib/stb -I/home/Jordan/Projects/CPP/LearningVulkan/lib/tinyobjloader -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/backends -I/home/Jordan/Projects/CPP/LearningVulkan/src -I/home/Jordan/Projects/CPP/LearningVulkan/src/utilities -I/home/Jordan/Projects/CPP/LearningVulkan/src/private -I/home/Jordan/Projects/CPP/LearningVulkan/src/public
CXX_FLAGS = -std=c++20 -Wall -Wextra -O2

View File

@@ -4,7 +4,7 @@ LearningVulkan: \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/crtbeginS.o \
CMakeFiles/LearningVulkan.dir/src/main.cpp.o \
CMakeFiles/LearningVulkan.dir/src/private/GlfwWindowManager.cpp.o \
CMakeFiles/LearningVulkan.dir/src/private/VulkanCommandBuffers.cpp.o \
CMakeFiles/LearningVulkan.dir/src/private/VulkanBuffers.cpp.o \
CMakeFiles/LearningVulkan.dir/src/private/VulkanContext.cpp.o \
CMakeFiles/LearningVulkan.dir/src/private/VulkanDebugManager.cpp.o \
CMakeFiles/LearningVulkan.dir/src/private/VulkanDeviceManager.cpp.o \
@@ -13,9 +13,10 @@ LearningVulkan: \
CMakeFiles/LearningVulkan.dir/src/private/VulkanPipeline.cpp.o \
CMakeFiles/LearningVulkan.dir/src/private/VulkanRenderPass.cpp.o \
CMakeFiles/LearningVulkan.dir/src/private/VulkanSwapChain.cpp.o \
CMakeFiles/LearningVulkan.dir/src/private/VulkanVertexBuffer.cpp.o \
CMakeFiles/LearningVulkan.dir/src/private/VulkanTexture.cpp.o \
CMakeFiles/LearningVulkan.dir/src/utilities/Logger.cpp.o \
CMakeFiles/LearningVulkan.dir/src/utilities/stb_image_impl.cpp.o \
CMakeFiles/LearningVulkan.dir/src/utilities/tiny_obj_loader_impl.cpp.o \
CMakeFiles/LearningVulkan.dir/lib/imgui/imgui.cpp.o \
CMakeFiles/LearningVulkan.dir/lib/imgui/imgui_demo.cpp.o \
CMakeFiles/LearningVulkan.dir/lib/imgui/imgui_draw.cpp.o \
@@ -74,7 +75,7 @@ CMakeFiles/LearningVulkan.dir/src/main.cpp.o:
CMakeFiles/LearningVulkan.dir/src/private/GlfwWindowManager.cpp.o:
CMakeFiles/LearningVulkan.dir/src/private/VulkanCommandBuffers.cpp.o:
CMakeFiles/LearningVulkan.dir/src/private/VulkanBuffers.cpp.o:
CMakeFiles/LearningVulkan.dir/src/private/VulkanContext.cpp.o:
@@ -92,12 +93,14 @@ CMakeFiles/LearningVulkan.dir/src/private/VulkanRenderPass.cpp.o:
CMakeFiles/LearningVulkan.dir/src/private/VulkanSwapChain.cpp.o:
CMakeFiles/LearningVulkan.dir/src/private/VulkanVertexBuffer.cpp.o:
CMakeFiles/LearningVulkan.dir/src/private/VulkanTexture.cpp.o:
CMakeFiles/LearningVulkan.dir/src/utilities/Logger.cpp.o:
CMakeFiles/LearningVulkan.dir/src/utilities/stb_image_impl.cpp.o:
CMakeFiles/LearningVulkan.dir/src/utilities/tiny_obj_loader_impl.cpp.o:
CMakeFiles/LearningVulkan.dir/lib/imgui/imgui.cpp.o:
CMakeFiles/LearningVulkan.dir/lib/imgui/imgui_demo.cpp.o:

View File

@@ -1 +1 @@
/usr/bin/c++ -Wl,--dependency-file=CMakeFiles/LearningVulkan.dir/link.d CMakeFiles/LearningVulkan.dir/src/main.cpp.o CMakeFiles/LearningVulkan.dir/src/private/GlfwWindowManager.cpp.o CMakeFiles/LearningVulkan.dir/src/private/VulkanCommandBuffers.cpp.o CMakeFiles/LearningVulkan.dir/src/private/VulkanContext.cpp.o CMakeFiles/LearningVulkan.dir/src/private/VulkanDebugManager.cpp.o CMakeFiles/LearningVulkan.dir/src/private/VulkanDeviceManager.cpp.o CMakeFiles/LearningVulkan.dir/src/private/VulkanFramebuffers.cpp.o CMakeFiles/LearningVulkan.dir/src/private/VulkanInstanceManager.cpp.o CMakeFiles/LearningVulkan.dir/src/private/VulkanPipeline.cpp.o CMakeFiles/LearningVulkan.dir/src/private/VulkanRenderPass.cpp.o CMakeFiles/LearningVulkan.dir/src/private/VulkanSwapChain.cpp.o CMakeFiles/LearningVulkan.dir/src/private/VulkanVertexBuffer.cpp.o CMakeFiles/LearningVulkan.dir/src/utilities/Logger.cpp.o CMakeFiles/LearningVulkan.dir/src/utilities/stb_image_impl.cpp.o CMakeFiles/LearningVulkan.dir/lib/imgui/imgui.cpp.o CMakeFiles/LearningVulkan.dir/lib/imgui/imgui_demo.cpp.o CMakeFiles/LearningVulkan.dir/lib/imgui/imgui_draw.cpp.o CMakeFiles/LearningVulkan.dir/lib/imgui/imgui_tables.cpp.o CMakeFiles/LearningVulkan.dir/lib/imgui/imgui_widgets.cpp.o CMakeFiles/LearningVulkan.dir/lib/imgui/backends/imgui_impl_glfw.cpp.o CMakeFiles/LearningVulkan.dir/lib/imgui/backends/imgui_impl_vulkan.cpp.o -o LearningVulkan -lglfw -lvulkan -ldl -lpthread -lX11 -lXxf86vm -lXrandr -lXi
/usr/bin/c++ -Wl,--dependency-file=CMakeFiles/LearningVulkan.dir/link.d CMakeFiles/LearningVulkan.dir/src/main.cpp.o CMakeFiles/LearningVulkan.dir/src/private/GlfwWindowManager.cpp.o CMakeFiles/LearningVulkan.dir/src/private/VulkanBuffers.cpp.o CMakeFiles/LearningVulkan.dir/src/private/VulkanContext.cpp.o CMakeFiles/LearningVulkan.dir/src/private/VulkanDebugManager.cpp.o CMakeFiles/LearningVulkan.dir/src/private/VulkanDeviceManager.cpp.o CMakeFiles/LearningVulkan.dir/src/private/VulkanFramebuffers.cpp.o CMakeFiles/LearningVulkan.dir/src/private/VulkanInstanceManager.cpp.o CMakeFiles/LearningVulkan.dir/src/private/VulkanPipeline.cpp.o CMakeFiles/LearningVulkan.dir/src/private/VulkanRenderPass.cpp.o CMakeFiles/LearningVulkan.dir/src/private/VulkanSwapChain.cpp.o CMakeFiles/LearningVulkan.dir/src/private/VulkanTexture.cpp.o CMakeFiles/LearningVulkan.dir/src/utilities/Logger.cpp.o CMakeFiles/LearningVulkan.dir/src/utilities/stb_image_impl.cpp.o CMakeFiles/LearningVulkan.dir/src/utilities/tiny_obj_loader_impl.cpp.o CMakeFiles/LearningVulkan.dir/lib/imgui/imgui.cpp.o CMakeFiles/LearningVulkan.dir/lib/imgui/imgui_demo.cpp.o CMakeFiles/LearningVulkan.dir/lib/imgui/imgui_draw.cpp.o CMakeFiles/LearningVulkan.dir/lib/imgui/imgui_tables.cpp.o CMakeFiles/LearningVulkan.dir/lib/imgui/imgui_widgets.cpp.o CMakeFiles/LearningVulkan.dir/lib/imgui/backends/imgui_impl_glfw.cpp.o CMakeFiles/LearningVulkan.dir/lib/imgui/backends/imgui_impl_vulkan.cpp.o -o LearningVulkan -lglfw -lvulkan -ldl -lpthread -lX11 -lXxf86vm -lXrandr -lXi

View File

@@ -20,4 +20,5 @@ CMAKE_PROGRESS_19 = 19
CMAKE_PROGRESS_20 = 20
CMAKE_PROGRESS_21 = 21
CMAKE_PROGRESS_22 = 22
CMAKE_PROGRESS_23 = 23

View File

@@ -1,62 +1,30 @@
CMakeFiles/LearningVulkan.dir/src/main.cpp.o: \
/home/Jordan/Projects/CPP/LearningVulkan/src/main.cpp \
/usr/include/stdc-predef.h /usr/include/GLFW/glfw3.h \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stddef.h \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdint.h \
/usr/include/stdint.h /usr/include/bits/libc-header-start.h \
/usr/include/stdc-predef.h \
/home/Jordan/Projects/CPP/LearningVulkan/src/public/GlfwWindowManager.h \
/usr/include/c++/15.2.1/string \
/usr/include/c++/15.2.1/bits/requires_hosted.h \
/usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/c++config.h \
/usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/os_defines.h \
/usr/include/features.h /usr/include/features-time64.h \
/usr/include/bits/wordsize.h /usr/include/bits/timesize.h \
/usr/include/sys/cdefs.h /usr/include/bits/long-double.h \
/usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
/usr/include/bits/types.h /usr/include/bits/typesizes.h \
/usr/include/bits/time64.h /usr/include/bits/wchar.h \
/usr/include/bits/stdint-intn.h /usr/include/bits/stdint-uintn.h \
/usr/include/bits/stdint-least.h /usr/include/GL/gl.h \
/usr/include/GL/glext.h /usr/include/KHR/khrplatform.h \
/usr/include/c++/15.2.1/cstdint \
/usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/c++config.h \
/usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/os_defines.h \
/usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/cpu_defines.h \
/usr/include/c++/15.2.1/pstl/pstl_config.h \
/usr/include/vulkan/vulkan_core.h /usr/include/vulkan/vk_platform.h \
/usr/include/vk_video/vulkan_video_codec_h264std.h \
/usr/include/vk_video/vulkan_video_codecs_common.h \
/usr/include/vk_video/vulkan_video_codec_h264std_encode.h \
/usr/include/vk_video/vulkan_video_codec_h264std.h \
/usr/include/vk_video/vulkan_video_codec_h265std.h \
/usr/include/vk_video/vulkan_video_codec_h265std_encode.h \
/usr/include/vk_video/vulkan_video_codec_h265std.h \
/usr/include/vk_video/vulkan_video_codec_h264std_decode.h \
/usr/include/vk_video/vulkan_video_codec_h265std_decode.h \
/usr/include/vk_video/vulkan_video_codec_av1std.h \
/usr/include/vk_video/vulkan_video_codec_av1std_decode.h \
/usr/include/vk_video/vulkan_video_codec_av1std.h \
/usr/include/vk_video/vulkan_video_codec_av1std_encode.h \
/usr/include/vk_video/vulkan_video_codec_vp9std.h \
/usr/include/vk_video/vulkan_video_codec_vp9std_decode.h \
/usr/include/vk_video/vulkan_video_codec_vp9std.h \
/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/imgui.h \
/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/imconfig.h \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/float.h \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdarg.h \
/usr/include/string.h /usr/include/bits/types/locale_t.h \
/usr/include/bits/types/__locale_t.h /usr/include/strings.h \
/usr/include/assert.h \
/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/backends/imgui_impl_glfw.h \
/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/backends/imgui_impl_vulkan.h \
/usr/include/vulkan/vulkan.h /usr/include/vulkan/vulkan_core.h \
/home/Jordan/Projects/CPP/LearningVulkan/src/utilities/Logger.h \
/usr/include/c++/15.2.1/string \
/usr/include/c++/15.2.1/bits/requires_hosted.h \
/usr/include/c++/15.2.1/bits/stringfwd.h \
/usr/include/c++/15.2.1/bits/memoryfwd.h \
/usr/include/c++/15.2.1/bits/char_traits.h \
/usr/include/c++/15.2.1/bits/postypes.h /usr/include/c++/15.2.1/cwchar \
/usr/include/wchar.h /usr/include/bits/floatn.h \
/usr/include/bits/floatn-common.h /usr/include/bits/types/wint_t.h \
/usr/include/wchar.h /usr/include/bits/libc-header-start.h \
/usr/include/bits/floatn.h /usr/include/bits/floatn-common.h \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stddef.h \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdarg.h \
/usr/include/bits/wchar.h /usr/include/bits/types/wint_t.h \
/usr/include/bits/types/mbstate_t.h \
/usr/include/bits/types/__mbstate_t.h /usr/include/bits/types/__FILE.h \
/usr/include/bits/types/FILE.h /usr/include/c++/15.2.1/type_traits \
/usr/include/bits/types/FILE.h /usr/include/bits/types/locale_t.h \
/usr/include/bits/types/__locale_t.h /usr/include/c++/15.2.1/type_traits \
/usr/include/c++/15.2.1/bits/version.h /usr/include/c++/15.2.1/compare \
/usr/include/c++/15.2.1/concepts \
/usr/include/c++/15.2.1/bits/stl_construct.h /usr/include/c++/15.2.1/new \
@@ -80,7 +48,9 @@ CMakeFiles/LearningVulkan.dir/src/main.cpp.o: \
/usr/include/c++/15.2.1/clocale /usr/include/locale.h \
/usr/include/bits/locale.h /usr/include/c++/15.2.1/iosfwd \
/usr/include/c++/15.2.1/cctype /usr/include/ctype.h \
/usr/include/bits/endian.h /usr/include/bits/endianness.h \
/usr/include/bits/types.h /usr/include/bits/typesizes.h \
/usr/include/bits/time64.h /usr/include/bits/endian.h \
/usr/include/bits/endianness.h \
/usr/include/c++/15.2.1/bits/ostream_insert.h \
/usr/include/c++/15.2.1/bits/cxxabi_forced.h \
/usr/include/c++/15.2.1/bits/stl_iterator.h \
@@ -112,10 +82,11 @@ CMakeFiles/LearningVulkan.dir/src/main.cpp.o: \
/usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
/usr/include/sys/types.h /usr/include/bits/types/clock_t.h \
/usr/include/bits/types/clockid_t.h /usr/include/bits/types/time_t.h \
/usr/include/bits/types/timer_t.h /usr/include/endian.h \
/usr/include/bits/byteswap.h /usr/include/bits/uintn-identity.h \
/usr/include/sys/select.h /usr/include/bits/select.h \
/usr/include/bits/types/sigset_t.h /usr/include/bits/types/__sigset_t.h \
/usr/include/bits/types/timer_t.h /usr/include/bits/stdint-intn.h \
/usr/include/endian.h /usr/include/bits/byteswap.h \
/usr/include/bits/uintn-identity.h /usr/include/sys/select.h \
/usr/include/bits/select.h /usr/include/bits/types/sigset_t.h \
/usr/include/bits/types/__sigset_t.h \
/usr/include/bits/types/struct_timeval.h \
/usr/include/bits/types/struct_timespec.h \
/usr/include/bits/pthreadtypes.h /usr/include/bits/thread-shared-types.h \
@@ -140,11 +111,44 @@ CMakeFiles/LearningVulkan.dir/src/main.cpp.o: \
/usr/include/c++/15.2.1/bits/uses_allocator.h \
/usr/include/c++/15.2.1/bits/uses_allocator_args.h \
/usr/include/c++/15.2.1/tuple /usr/include/c++/15.2.1/bits/ranges_util.h \
/usr/include/c++/15.2.1/source_location /usr/include/c++/15.2.1/format \
/usr/include/c++/15.2.1/array /usr/include/c++/15.2.1/charconv \
/usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/error_constants.h \
/usr/include/c++/15.2.1/limits /usr/include/c++/15.2.1/locale \
/usr/include/c++/15.2.1/bits/locale_classes.h \
/usr/include/vulkan/vulkan_core.h /usr/include/vulkan/vk_platform.h \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdint.h \
/usr/include/stdint.h /usr/include/bits/stdint-uintn.h \
/usr/include/bits/stdint-least.h \
/usr/include/vk_video/vulkan_video_codec_h264std.h \
/usr/include/vk_video/vulkan_video_codecs_common.h \
/usr/include/vk_video/vulkan_video_codec_h264std_encode.h \
/usr/include/vk_video/vulkan_video_codec_h264std.h \
/usr/include/vk_video/vulkan_video_codec_h265std.h \
/usr/include/vk_video/vulkan_video_codec_h265std_encode.h \
/usr/include/vk_video/vulkan_video_codec_h265std.h \
/usr/include/vk_video/vulkan_video_codec_h264std_decode.h \
/usr/include/vk_video/vulkan_video_codec_h265std_decode.h \
/usr/include/vk_video/vulkan_video_codec_av1std.h \
/usr/include/vk_video/vulkan_video_codec_av1std_decode.h \
/usr/include/vk_video/vulkan_video_codec_av1std.h \
/usr/include/vk_video/vulkan_video_codec_av1std_encode.h \
/usr/include/vk_video/vulkan_video_codec_vp9std.h \
/usr/include/vk_video/vulkan_video_codec_vp9std_decode.h \
/usr/include/vk_video/vulkan_video_codec_vp9std.h \
/usr/include/GLFW/glfw3.h /usr/include/vulkan/vulkan.h \
/usr/include/vulkan/vulkan_core.h /usr/include/GL/gl.h \
/usr/include/GL/glext.h /usr/include/KHR/khrplatform.h \
/usr/include/GLFW/glfw3native.h \
/home/Jordan/Projects/CPP/LearningVulkan/src/public/VulkanContext.hpp \
/usr/include/c++/15.2.1/cstdint /usr/include/c++/15.2.1/memory \
/usr/include/c++/15.2.1/bits/stl_tempbuf.h \
/usr/include/c++/15.2.1/bits/stl_uninitialized.h \
/usr/include/c++/15.2.1/bits/stl_raw_storage_iter.h \
/usr/include/c++/15.2.1/bits/align.h \
/usr/include/c++/15.2.1/bits/unique_ptr.h \
/usr/include/c++/15.2.1/bits/ostream.h /usr/include/c++/15.2.1/ios \
/usr/include/c++/15.2.1/exception \
/usr/include/c++/15.2.1/bits/exception_ptr.h \
/usr/include/c++/15.2.1/bits/cxxabi_init_exception.h \
/usr/include/c++/15.2.1/typeinfo \
/usr/include/c++/15.2.1/bits/nested_exception.h \
/usr/include/c++/15.2.1/bits/ios_base.h \
/usr/include/c++/15.2.1/ext/atomicity.h \
/usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/gthr.h \
/usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/gthr-default.h \
@@ -163,48 +167,59 @@ CMakeFiles/LearningVulkan.dir/src/main.cpp.o: \
/usr/include/bits/pthread_stack_min-dynamic.h \
/usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/atomic_word.h \
/usr/include/sys/single_threaded.h \
/usr/include/c++/15.2.1/bits/locale_classes.h \
/usr/include/c++/15.2.1/bits/locale_classes.tcc \
/usr/include/c++/15.2.1/system_error \
/usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/error_constants.h \
/usr/include/c++/15.2.1/stdexcept /usr/include/c++/15.2.1/streambuf \
/usr/include/c++/15.2.1/bits/streambuf.tcc \
/usr/include/c++/15.2.1/bits/basic_ios.h \
/usr/include/c++/15.2.1/bits/locale_facets.h \
/usr/include/c++/15.2.1/cwctype /usr/include/wctype.h \
/usr/include/bits/wctype-wchar.h \
/usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/ctype_base.h \
/usr/include/c++/15.2.1/bits/ios_base.h \
/usr/include/c++/15.2.1/system_error /usr/include/c++/15.2.1/stdexcept \
/usr/include/c++/15.2.1/exception \
/usr/include/c++/15.2.1/bits/exception_ptr.h \
/usr/include/c++/15.2.1/bits/cxxabi_init_exception.h \
/usr/include/c++/15.2.1/typeinfo \
/usr/include/c++/15.2.1/bits/nested_exception.h \
/usr/include/c++/15.2.1/streambuf \
/usr/include/c++/15.2.1/bits/streambuf.tcc \
/usr/include/c++/15.2.1/bits/streambuf_iterator.h \
/usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/ctype_inline.h \
/usr/include/c++/15.2.1/bits/locale_facets.tcc \
/usr/include/c++/15.2.1/bits/locale_facets_nonio.h \
/usr/include/c++/15.2.1/ctime \
/usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/time_members.h \
/usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/messages_members.h \
/usr/include/libintl.h /usr/include/c++/15.2.1/bits/codecvt.h \
/usr/include/c++/15.2.1/bits/locale_facets_nonio.tcc \
/usr/include/c++/15.2.1/bits/locale_conv.h \
/usr/include/c++/15.2.1/bits/basic_ios.tcc \
/usr/include/c++/15.2.1/bits/shared_ptr.h \
/usr/include/c++/15.2.1/bits/shared_ptr_base.h \
/usr/include/c++/15.2.1/bits/allocated_ptr.h \
/usr/include/c++/15.2.1/ext/aligned_buffer.h \
/usr/include/c++/15.2.1/ext/concurrence.h \
/usr/include/c++/15.2.1/bits/shared_ptr_atomic.h \
/usr/include/c++/15.2.1/bits/atomic_base.h \
/usr/include/c++/15.2.1/bits/atomic_lockfree_defines.h \
/usr/include/c++/15.2.1/bits/atomic_wait.h \
/usr/include/c++/15.2.1/climits \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/limits.h \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/syslimits.h \
/usr/include/limits.h /usr/include/bits/posix1_lim.h \
/usr/include/bits/local_lim.h /usr/include/linux/limits.h \
/usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \
/usr/include/bits/uio_lim.h /usr/include/unistd.h \
/usr/include/bits/posix_opt.h /usr/include/bits/environments.h \
/usr/include/bits/confname.h /usr/include/bits/getopt_posix.h \
/usr/include/bits/getopt_core.h /usr/include/bits/unistd_ext.h \
/usr/include/linux/close_range.h /usr/include/syscall.h \
/usr/include/sys/syscall.h /usr/include/asm/unistd.h \
/usr/include/asm/unistd_64.h /usr/include/bits/syscall.h \
/usr/include/c++/15.2.1/bits/std_mutex.h \
/usr/include/c++/15.2.1/backward/auto_ptr.h \
/usr/include/c++/15.2.1/bits/ranges_uninitialized.h \
/usr/include/c++/15.2.1/bits/ranges_algobase.h \
/usr/include/c++/15.2.1/pstl/glue_memory_defs.h \
/usr/include/c++/15.2.1/pstl/execution_defs.h \
/usr/include/c++/15.2.1/vector /usr/include/c++/15.2.1/bits/stl_vector.h \
/usr/include/c++/15.2.1/bits/stl_bvector.h \
/usr/include/c++/15.2.1/bits/vector.tcc \
/home/Jordan/Projects/CPP/LearningVulkan/src/public/VulkanDeviceManager.h \
/usr/include/c++/15.2.1/optional \
/usr/include/c++/15.2.1/bits/enable_special_members.h \
/usr/include/c++/15.2.1/span /usr/include/c++/15.2.1/bits/monostate.h \
/usr/include/c++/15.2.1/bits/formatfwd.h \
/usr/include/c++/15.2.1/bits/ranges_algobase.h \
/usr/include/c++/15.2.1/bits/unicode.h \
/usr/include/c++/15.2.1/bits/stl_algo.h \
/usr/include/c++/15.2.1/bits/algorithmfwd.h \
/usr/include/c++/15.2.1/bits/stl_heap.h \
/usr/include/c++/15.2.1/bits/uniform_int_dist.h \
/usr/include/c++/15.2.1/bits/stl_tempbuf.h \
/usr/include/c++/15.2.1/bits/unicode-data.h \
/home/Jordan/Projects/CPP/LearningVulkan/src/public/GlfwWindowManager.h \
/usr/include/GLFW/glfw3native.h \
/home/Jordan/Projects/CPP/LearningVulkan/src/public/VulkanContext.h \
/home/Jordan/Projects/CPP/LearningVulkan/src/public/VulkanCommandBuffers.h \
/home/Jordan/Projects/CPP/LearningVulkan/src/public/VulkanVertexBuffer.h \
/home/Jordan/Projects/CPP/LearningVulkan/src/public/Primitives.h \
/home/Jordan/Projects/CPP/LearningVulkan/src/utilities/Primitives.h \
/usr/include/glm/fwd.hpp /usr/include/glm/detail/qualifier.hpp \
/usr/include/glm/detail/setup.hpp /usr/include/c++/15.2.1/cassert \
/usr/include/assert.h /usr/include/glm/simd/platform.h \
/usr/include/glm/glm.hpp /usr/include/glm/detail/_fixes.hpp \
/usr/include/c++/15.2.1/cmath /usr/include/math.h \
/usr/include/bits/math-vector.h /usr/include/bits/libm-simd-decl-stubs.h \
@@ -213,7 +228,7 @@ CMakeFiles/LearningVulkan.dir/src/main.cpp.o: \
/usr/include/bits/mathcalls-helper-functions.h \
/usr/include/bits/mathcalls.h /usr/include/bits/mathcalls-narrow.h \
/usr/include/bits/iscanonical.h /usr/include/c++/15.2.1/bits/specfun.h \
/usr/include/c++/15.2.1/tr1/gamma.tcc \
/usr/include/c++/15.2.1/limits /usr/include/c++/15.2.1/tr1/gamma.tcc \
/usr/include/c++/15.2.1/tr1/special_function_util.h \
/usr/include/c++/15.2.1/tr1/bessel_function.tcc \
/usr/include/c++/15.2.1/tr1/beta_function.tcc \
@@ -225,17 +240,9 @@ CMakeFiles/LearningVulkan.dir/src/main.cpp.o: \
/usr/include/c++/15.2.1/tr1/poly_hermite.tcc \
/usr/include/c++/15.2.1/tr1/poly_laguerre.tcc \
/usr/include/c++/15.2.1/tr1/riemann_zeta.tcc \
/usr/include/glm/detail/setup.hpp /usr/include/c++/15.2.1/cassert \
/usr/include/glm/simd/platform.h /usr/include/c++/15.2.1/climits \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/limits.h \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/syslimits.h \
/usr/include/limits.h /usr/include/bits/posix1_lim.h \
/usr/include/bits/local_lim.h /usr/include/linux/limits.h \
/usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \
/usr/include/bits/uio_lim.h /usr/include/c++/15.2.1/cfloat \
/usr/include/glm/fwd.hpp /usr/include/glm/detail/qualifier.hpp \
/usr/include/glm/detail/setup.hpp /usr/include/glm/vec2.hpp \
/usr/include/glm/ext/vector_bool2.hpp \
/usr/include/glm/detail/setup.hpp /usr/include/c++/15.2.1/cfloat \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/float.h \
/usr/include/glm/vec2.hpp /usr/include/glm/ext/vector_bool2.hpp \
/usr/include/glm/detail/type_vec2.hpp \
/usr/include/glm/detail/type_vec2.inl \
/usr/include/glm/detail/compute_vector_relational.hpp \
@@ -260,13 +267,8 @@ CMakeFiles/LearningVulkan.dir/src/main.cpp.o: \
/usr/include/c++/15.2.1/bits/unordered_map.h \
/usr/include/c++/15.2.1/bits/hashtable.h \
/usr/include/c++/15.2.1/bits/hashtable_policy.h \
/usr/include/c++/15.2.1/ext/aligned_buffer.h \
/usr/include/c++/15.2.1/bits/node_handle.h \
/usr/include/c++/15.2.1/bits/erase_if.h /usr/include/c++/15.2.1/vector \
/usr/include/c++/15.2.1/bits/stl_uninitialized.h \
/usr/include/c++/15.2.1/bits/stl_vector.h \
/usr/include/c++/15.2.1/bits/stl_bvector.h \
/usr/include/c++/15.2.1/bits/vector.tcc \
/usr/include/c++/15.2.1/bits/erase_if.h /usr/include/c++/15.2.1/array \
/usr/include/glm/detail/_vectorize.hpp \
/usr/include/glm/ext/vector_bool3_precision.hpp \
/usr/include/glm/ext/vector_float3.hpp \
@@ -358,11 +360,76 @@ CMakeFiles/LearningVulkan.dir/src/main.cpp.o: \
/usr/include/glm/packing.hpp /usr/include/glm/detail/func_packing.inl \
/usr/include/glm/detail/type_half.hpp \
/usr/include/glm/detail/type_half.inl /usr/include/glm/integer.hpp \
/usr/include/glm/detail/func_integer.inl \
/home/Jordan/Projects/CPP/LearningVulkan/src/public/VulkanFramebuffers.h \
/home/Jordan/Projects/CPP/LearningVulkan/src/public/VulkanInstanceManager.h \
/home/Jordan/Projects/CPP/LearningVulkan/src/public/VulkanDebugManager.h \
/home/Jordan/Projects/CPP/LearningVulkan/src/public/VulkanDeviceManager.h \
/home/Jordan/Projects/CPP/LearningVulkan/src/public/VulkanPipeline.h \
/home/Jordan/Projects/CPP/LearningVulkan/src/public/VulkanRenderPass.h \
/home/Jordan/Projects/CPP/LearningVulkan/src/public/VulkanSwapChain.h
/usr/include/glm/detail/func_integer.inl /usr/include/glm/gtx/hash.hpp \
/usr/include/glm/gtc/vec1.hpp /usr/include/glm/ext/vector_bool1.hpp \
/usr/include/glm/ext/vector_bool1_precision.hpp \
/usr/include/glm/ext/vector_float1.hpp \
/usr/include/glm/ext/vector_float1_precision.hpp \
/usr/include/glm/ext/vector_double1.hpp \
/usr/include/glm/ext/vector_double1_precision.hpp \
/usr/include/glm/ext/vector_int1.hpp \
/usr/include/glm/ext/vector_int1_sized.hpp \
/usr/include/glm/ext/vector_uint1.hpp \
/usr/include/glm/ext/vector_uint1_sized.hpp \
/usr/include/glm/gtc/quaternion.hpp /usr/include/glm/gtc/constants.hpp \
/usr/include/glm/ext/scalar_constants.hpp \
/usr/include/glm/ext/scalar_constants.inl \
/usr/include/glm/gtc/constants.inl \
/usr/include/glm/gtc/matrix_transform.hpp \
/usr/include/glm/ext/matrix_projection.hpp \
/usr/include/glm/ext/matrix_projection.inl \
/usr/include/glm/ext/matrix_clip_space.hpp \
/usr/include/glm/ext/matrix_clip_space.inl \
/usr/include/glm/ext/matrix_transform.hpp \
/usr/include/glm/ext/matrix_transform.inl \
/usr/include/glm/gtc/matrix_transform.inl \
/usr/include/glm/ext/vector_relational.hpp \
/usr/include/glm/ext/vector_relational.inl \
/usr/include/glm/detail/type_float.hpp \
/usr/include/glm/ext/quaternion_common.hpp \
/usr/include/glm/ext/quaternion_geometric.hpp \
/usr/include/glm/ext/quaternion_geometric.inl \
/usr/include/glm/ext/quaternion_common.inl \
/usr/include/glm/ext/quaternion_float.hpp \
/usr/include/glm/detail/type_quat.hpp \
/usr/include/glm/ext/quaternion_relational.hpp \
/usr/include/glm/ext/quaternion_relational.inl \
/usr/include/glm/detail/type_quat.inl \
/usr/include/glm/ext/quaternion_float_precision.hpp \
/usr/include/glm/ext/quaternion_double.hpp \
/usr/include/glm/ext/quaternion_double_precision.hpp \
/usr/include/glm/ext/quaternion_trigonometric.hpp \
/usr/include/glm/ext/quaternion_trigonometric.inl \
/usr/include/glm/ext/quaternion_transform.hpp \
/usr/include/glm/ext/quaternion_transform.inl \
/usr/include/glm/gtc/quaternion.inl /usr/include/glm/gtc/epsilon.hpp \
/usr/include/glm/detail/setup.hpp /usr/include/glm/gtc/epsilon.inl \
/usr/include/glm/gtx/dual_quaternion.hpp \
/usr/include/glm/gtx/dual_quaternion.inl /usr/include/glm/gtx/hash.inl \
/home/Jordan/Projects/CPP/LearningVulkan/src/utilities/Logger.h \
/usr/include/c++/15.2.1/source_location /usr/include/c++/15.2.1/format \
/usr/include/c++/15.2.1/charconv /usr/include/c++/15.2.1/locale \
/usr/include/c++/15.2.1/bits/locale_facets_nonio.h \
/usr/include/c++/15.2.1/ctime \
/usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/time_members.h \
/usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/messages_members.h \
/usr/include/libintl.h /usr/include/c++/15.2.1/bits/codecvt.h \
/usr/include/c++/15.2.1/bits/locale_facets_nonio.tcc \
/usr/include/c++/15.2.1/bits/locale_conv.h /usr/include/c++/15.2.1/span \
/usr/include/c++/15.2.1/bits/monostate.h \
/usr/include/c++/15.2.1/bits/formatfwd.h \
/usr/include/c++/15.2.1/bits/unicode.h \
/usr/include/c++/15.2.1/bits/stl_algo.h \
/usr/include/c++/15.2.1/bits/algorithmfwd.h \
/usr/include/c++/15.2.1/bits/stl_heap.h \
/usr/include/c++/15.2.1/bits/uniform_int_dist.h \
/usr/include/c++/15.2.1/bits/unicode-data.h \
/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/imgui.h \
/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/imconfig.h \
/usr/include/string.h /usr/include/strings.h \
/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/backends/imgui_impl_glfw.h \
/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/backends/imgui_impl_vulkan.h \
/home/Jordan/Projects/CPP/LearningVulkan/lib/tinyobjloader/tiny_obj_loader.h \
/usr/include/c++/15.2.1/map /usr/include/c++/15.2.1/bits/stl_tree.h \
/usr/include/c++/15.2.1/bits/stl_map.h \
/usr/include/c++/15.2.1/bits/stl_multimap.h

View File

@@ -1,357 +0,0 @@
CMakeFiles/LearningVulkan.dir/src/private/VulkanCommandBuffers.cpp.o: \
/home/Jordan/Projects/CPP/LearningVulkan/src/private/VulkanCommandBuffers.cpp \
/usr/include/stdc-predef.h \
/home/Jordan/Projects/CPP/LearningVulkan/src/public/VulkanCommandBuffers.h \
/home/Jordan/Projects/CPP/LearningVulkan/src/public/VulkanVertexBuffer.h \
/home/Jordan/Projects/CPP/LearningVulkan/src/public/Primitives.h \
/usr/include/glm/glm.hpp /usr/include/glm/detail/_fixes.hpp \
/usr/include/c++/15.2.1/cmath \
/usr/include/c++/15.2.1/bits/requires_hosted.h \
/usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/c++config.h \
/usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/os_defines.h \
/usr/include/features.h /usr/include/features-time64.h \
/usr/include/bits/wordsize.h /usr/include/bits/timesize.h \
/usr/include/sys/cdefs.h /usr/include/bits/long-double.h \
/usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
/usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/cpu_defines.h \
/usr/include/c++/15.2.1/pstl/pstl_config.h \
/usr/include/c++/15.2.1/bits/cpp_type_traits.h \
/usr/include/c++/15.2.1/bits/version.h \
/usr/include/c++/15.2.1/type_traits \
/usr/include/c++/15.2.1/ext/type_traits.h /usr/include/math.h \
/usr/include/bits/libc-header-start.h /usr/include/bits/math-vector.h \
/usr/include/bits/libm-simd-decl-stubs.h /usr/include/bits/floatn.h \
/usr/include/bits/floatn-common.h /usr/include/bits/flt-eval-method.h \
/usr/include/bits/fp-logb.h /usr/include/bits/fp-fast.h \
/usr/include/bits/mathcalls-macros.h \
/usr/include/bits/mathcalls-helper-functions.h \
/usr/include/bits/mathcalls.h /usr/include/bits/mathcalls-narrow.h \
/usr/include/bits/iscanonical.h /usr/include/c++/15.2.1/bits/std_abs.h \
/usr/include/stdlib.h \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stddef.h \
/usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
/usr/include/bits/types/locale_t.h /usr/include/bits/types/__locale_t.h \
/usr/include/sys/types.h /usr/include/bits/types.h \
/usr/include/bits/typesizes.h /usr/include/bits/time64.h \
/usr/include/bits/types/clock_t.h /usr/include/bits/types/clockid_t.h \
/usr/include/bits/types/time_t.h /usr/include/bits/types/timer_t.h \
/usr/include/bits/stdint-intn.h /usr/include/endian.h \
/usr/include/bits/endian.h /usr/include/bits/endianness.h \
/usr/include/bits/byteswap.h /usr/include/bits/uintn-identity.h \
/usr/include/sys/select.h /usr/include/bits/select.h \
/usr/include/bits/types/sigset_t.h /usr/include/bits/types/__sigset_t.h \
/usr/include/bits/types/struct_timeval.h \
/usr/include/bits/types/struct_timespec.h \
/usr/include/bits/pthreadtypes.h /usr/include/bits/thread-shared-types.h \
/usr/include/bits/pthreadtypes-arch.h \
/usr/include/bits/atomic_wide_counter.h /usr/include/bits/struct_mutex.h \
/usr/include/bits/struct_rwlock.h /usr/include/alloca.h \
/usr/include/bits/stdlib-bsearch.h /usr/include/bits/stdlib-float.h \
/usr/include/c++/15.2.1/bits/specfun.h \
/usr/include/c++/15.2.1/bits/stl_algobase.h \
/usr/include/c++/15.2.1/bits/functexcept.h \
/usr/include/c++/15.2.1/bits/exception_defines.h \
/usr/include/c++/15.2.1/ext/numeric_traits.h \
/usr/include/c++/15.2.1/bits/stl_pair.h \
/usr/include/c++/15.2.1/bits/move.h \
/usr/include/c++/15.2.1/bits/utility.h /usr/include/c++/15.2.1/compare \
/usr/include/c++/15.2.1/concepts \
/usr/include/c++/15.2.1/bits/stl_iterator_base_types.h \
/usr/include/c++/15.2.1/bits/iterator_concepts.h \
/usr/include/c++/15.2.1/bits/ptr_traits.h \
/usr/include/c++/15.2.1/bits/ranges_cmp.h \
/usr/include/c++/15.2.1/bits/stl_iterator_base_funcs.h \
/usr/include/c++/15.2.1/bits/concept_check.h \
/usr/include/c++/15.2.1/debug/assertions.h \
/usr/include/c++/15.2.1/bits/stl_iterator.h /usr/include/c++/15.2.1/new \
/usr/include/c++/15.2.1/bits/exception.h \
/usr/include/c++/15.2.1/bits/stl_construct.h \
/usr/include/c++/15.2.1/debug/debug.h \
/usr/include/c++/15.2.1/bits/predefined_ops.h \
/usr/include/c++/15.2.1/bit /usr/include/c++/15.2.1/limits \
/usr/include/c++/15.2.1/tr1/gamma.tcc \
/usr/include/c++/15.2.1/tr1/special_function_util.h \
/usr/include/c++/15.2.1/tr1/bessel_function.tcc \
/usr/include/c++/15.2.1/tr1/beta_function.tcc \
/usr/include/c++/15.2.1/tr1/ell_integral.tcc \
/usr/include/c++/15.2.1/tr1/exp_integral.tcc \
/usr/include/c++/15.2.1/tr1/hypergeometric.tcc \
/usr/include/c++/15.2.1/tr1/legendre_function.tcc \
/usr/include/c++/15.2.1/tr1/modified_bessel_func.tcc \
/usr/include/c++/15.2.1/tr1/poly_hermite.tcc \
/usr/include/c++/15.2.1/tr1/poly_laguerre.tcc \
/usr/include/c++/15.2.1/tr1/riemann_zeta.tcc \
/usr/include/glm/detail/setup.hpp /usr/include/c++/15.2.1/cassert \
/usr/include/assert.h /usr/include/c++/15.2.1/cstddef \
/usr/include/glm/simd/platform.h /usr/include/c++/15.2.1/cstdint \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdint.h \
/usr/include/stdint.h /usr/include/bits/wchar.h \
/usr/include/bits/stdint-uintn.h /usr/include/bits/stdint-least.h \
/usr/include/c++/15.2.1/climits \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/limits.h \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/syslimits.h \
/usr/include/limits.h /usr/include/bits/posix1_lim.h \
/usr/include/bits/local_lim.h /usr/include/linux/limits.h \
/usr/include/bits/pthread_stack_min-dynamic.h \
/usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \
/usr/include/bits/uio_lim.h /usr/include/c++/15.2.1/cfloat \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/float.h \
/usr/include/glm/fwd.hpp /usr/include/glm/detail/qualifier.hpp \
/usr/include/glm/detail/setup.hpp /usr/include/glm/vec2.hpp \
/usr/include/glm/ext/vector_bool2.hpp \
/usr/include/glm/detail/type_vec2.hpp \
/usr/include/glm/detail/type_vec2.inl \
/usr/include/glm/detail/compute_vector_relational.hpp \
/usr/include/glm/ext/vector_bool2_precision.hpp \
/usr/include/glm/ext/vector_float2.hpp \
/usr/include/glm/ext/vector_float2_precision.hpp \
/usr/include/glm/ext/vector_double2.hpp \
/usr/include/glm/ext/vector_double2_precision.hpp \
/usr/include/glm/ext/vector_int2.hpp \
/usr/include/glm/ext/vector_int2_sized.hpp \
/usr/include/glm/ext/scalar_int_sized.hpp \
/usr/include/glm/detail/setup.hpp /usr/include/glm/ext/vector_uint2.hpp \
/usr/include/glm/ext/vector_uint2_sized.hpp \
/usr/include/glm/ext/scalar_uint_sized.hpp /usr/include/glm/vec3.hpp \
/usr/include/glm/ext/vector_bool3.hpp \
/usr/include/glm/detail/type_vec3.hpp \
/usr/include/glm/detail/type_vec3.inl \
/usr/include/glm/detail/compute_vector_decl.hpp \
/usr/include/c++/15.2.1/functional \
/usr/include/c++/15.2.1/bits/stl_function.h \
/usr/include/c++/15.2.1/backward/binders.h /usr/include/c++/15.2.1/tuple \
/usr/include/c++/15.2.1/bits/uses_allocator.h \
/usr/include/c++/15.2.1/bits/invoke.h \
/usr/include/c++/15.2.1/bits/ranges_util.h \
/usr/include/c++/15.2.1/bits/ranges_base.h \
/usr/include/c++/15.2.1/initializer_list \
/usr/include/c++/15.2.1/bits/max_size_type.h \
/usr/include/c++/15.2.1/numbers \
/usr/include/c++/15.2.1/bits/functional_hash.h \
/usr/include/c++/15.2.1/bits/hash_bytes.h \
/usr/include/c++/15.2.1/bits/refwrap.h \
/usr/include/c++/15.2.1/bits/std_function.h \
/usr/include/c++/15.2.1/typeinfo /usr/include/c++/15.2.1/unordered_map \
/usr/include/c++/15.2.1/bits/unordered_map.h \
/usr/include/c++/15.2.1/bits/hashtable.h \
/usr/include/c++/15.2.1/bits/hashtable_policy.h \
/usr/include/c++/15.2.1/ext/aligned_buffer.h \
/usr/include/c++/15.2.1/ext/alloc_traits.h \
/usr/include/c++/15.2.1/bits/alloc_traits.h \
/usr/include/c++/15.2.1/bits/memoryfwd.h \
/usr/include/c++/15.2.1/bits/allocator.h \
/usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/c++allocator.h \
/usr/include/c++/15.2.1/bits/new_allocator.h \
/usr/include/c++/15.2.1/bits/enable_special_members.h \
/usr/include/c++/15.2.1/bits/node_handle.h \
/usr/include/c++/15.2.1/bits/range_access.h \
/usr/include/c++/15.2.1/bits/erase_if.h \
/usr/include/c++/15.2.1/bits/memory_resource.h \
/usr/include/c++/15.2.1/bits/uses_allocator_args.h \
/usr/include/c++/15.2.1/vector \
/usr/include/c++/15.2.1/bits/stl_uninitialized.h \
/usr/include/c++/15.2.1/bits/stl_vector.h \
/usr/include/c++/15.2.1/bits/stl_bvector.h \
/usr/include/c++/15.2.1/bits/vector.tcc /usr/include/c++/15.2.1/array \
/usr/include/glm/detail/_vectorize.hpp \
/usr/include/glm/ext/vector_bool3_precision.hpp \
/usr/include/glm/ext/vector_float3.hpp \
/usr/include/glm/ext/vector_float3_precision.hpp \
/usr/include/glm/ext/vector_double3.hpp \
/usr/include/glm/ext/vector_double3_precision.hpp \
/usr/include/glm/ext/vector_int3.hpp \
/usr/include/glm/ext/vector_int3_sized.hpp \
/usr/include/glm/ext/vector_uint3.hpp \
/usr/include/glm/ext/vector_uint3_sized.hpp /usr/include/glm/vec4.hpp \
/usr/include/glm/ext/vector_bool4.hpp \
/usr/include/glm/detail/type_vec4.hpp \
/usr/include/glm/detail/type_vec4.inl \
/usr/include/glm/ext/vector_bool4_precision.hpp \
/usr/include/glm/ext/vector_float4.hpp \
/usr/include/glm/ext/vector_float4_precision.hpp \
/usr/include/glm/ext/vector_double4.hpp \
/usr/include/glm/ext/vector_double4_precision.hpp \
/usr/include/glm/ext/vector_int4.hpp \
/usr/include/glm/ext/vector_int4_sized.hpp \
/usr/include/glm/ext/vector_uint4.hpp \
/usr/include/glm/ext/vector_uint4_sized.hpp /usr/include/glm/mat2x2.hpp \
/usr/include/glm/ext/matrix_double2x2.hpp \
/usr/include/glm/detail/type_mat2x2.hpp \
/usr/include/glm/detail/type_mat2x2.inl /usr/include/glm/matrix.hpp \
/usr/include/glm/mat2x3.hpp /usr/include/glm/ext/matrix_double2x3.hpp \
/usr/include/glm/detail/type_mat2x3.hpp \
/usr/include/glm/detail/type_mat2x3.inl \
/usr/include/glm/ext/matrix_double2x3_precision.hpp \
/usr/include/glm/ext/matrix_float2x3.hpp \
/usr/include/glm/ext/matrix_float2x3_precision.hpp \
/usr/include/glm/mat2x4.hpp /usr/include/glm/ext/matrix_double2x4.hpp \
/usr/include/glm/detail/type_mat2x4.hpp \
/usr/include/glm/detail/type_mat2x4.inl \
/usr/include/glm/ext/matrix_double2x4_precision.hpp \
/usr/include/glm/ext/matrix_float2x4.hpp \
/usr/include/glm/ext/matrix_float2x4_precision.hpp \
/usr/include/glm/mat3x2.hpp /usr/include/glm/ext/matrix_double3x2.hpp \
/usr/include/glm/detail/type_mat3x2.hpp \
/usr/include/glm/detail/type_mat3x2.inl \
/usr/include/glm/ext/matrix_double3x2_precision.hpp \
/usr/include/glm/ext/matrix_float3x2.hpp \
/usr/include/glm/ext/matrix_float3x2_precision.hpp \
/usr/include/glm/mat3x3.hpp /usr/include/glm/ext/matrix_double3x3.hpp \
/usr/include/glm/detail/type_mat3x3.hpp \
/usr/include/glm/detail/type_mat3x3.inl /usr/include/glm/common.hpp \
/usr/include/glm/detail/func_common.inl \
/usr/include/glm/vector_relational.hpp \
/usr/include/glm/detail/func_vector_relational.inl \
/usr/include/glm/detail/compute_common.hpp \
/usr/include/glm/detail/type_vec1.hpp \
/usr/include/glm/detail/type_vec1.inl \
/usr/include/glm/ext/matrix_double3x3_precision.hpp \
/usr/include/glm/ext/matrix_float3x3.hpp \
/usr/include/glm/ext/matrix_float3x3_precision.hpp \
/usr/include/glm/mat3x4.hpp /usr/include/glm/ext/matrix_double3x4.hpp \
/usr/include/glm/detail/type_mat3x4.hpp \
/usr/include/glm/detail/type_mat3x4.inl \
/usr/include/glm/ext/matrix_double3x4_precision.hpp \
/usr/include/glm/ext/matrix_float3x4.hpp \
/usr/include/glm/ext/matrix_float3x4_precision.hpp \
/usr/include/glm/mat4x2.hpp /usr/include/glm/ext/matrix_double4x2.hpp \
/usr/include/glm/detail/type_mat4x2.hpp \
/usr/include/glm/detail/type_mat4x2.inl \
/usr/include/glm/ext/matrix_double4x2_precision.hpp \
/usr/include/glm/ext/matrix_float4x2.hpp \
/usr/include/glm/ext/matrix_float4x2_precision.hpp \
/usr/include/glm/mat4x3.hpp /usr/include/glm/ext/matrix_double4x3.hpp \
/usr/include/glm/detail/type_mat4x3.hpp \
/usr/include/glm/detail/type_mat4x3.inl \
/usr/include/glm/ext/matrix_double4x3_precision.hpp \
/usr/include/glm/ext/matrix_float4x3.hpp \
/usr/include/glm/ext/matrix_float4x3_precision.hpp \
/usr/include/glm/mat4x4.hpp /usr/include/glm/ext/matrix_double4x4.hpp \
/usr/include/glm/detail/type_mat4x4.hpp \
/usr/include/glm/detail/type_mat4x4.inl /usr/include/glm/geometric.hpp \
/usr/include/glm/detail/func_geometric.inl \
/usr/include/glm/exponential.hpp \
/usr/include/glm/detail/func_exponential.inl \
/usr/include/glm/ext/matrix_double4x4_precision.hpp \
/usr/include/glm/ext/matrix_float4x4.hpp \
/usr/include/glm/ext/matrix_float4x4_precision.hpp \
/usr/include/glm/detail/func_matrix.inl \
/usr/include/glm/ext/matrix_double2x2_precision.hpp \
/usr/include/glm/ext/matrix_float2x2.hpp \
/usr/include/glm/ext/matrix_float2x2_precision.hpp \
/usr/include/glm/trigonometric.hpp \
/usr/include/glm/detail/func_trigonometric.inl \
/usr/include/glm/packing.hpp /usr/include/glm/detail/func_packing.inl \
/usr/include/glm/detail/type_half.hpp \
/usr/include/glm/detail/type_half.inl /usr/include/glm/integer.hpp \
/usr/include/glm/detail/func_integer.inl \
/usr/include/vulkan/vulkan_core.h /usr/include/vulkan/vk_platform.h \
/usr/include/vk_video/vulkan_video_codec_h264std.h \
/usr/include/vk_video/vulkan_video_codecs_common.h \
/usr/include/vk_video/vulkan_video_codec_h264std_encode.h \
/usr/include/vk_video/vulkan_video_codec_h264std.h \
/usr/include/vk_video/vulkan_video_codec_h265std.h \
/usr/include/vk_video/vulkan_video_codec_h265std_encode.h \
/usr/include/vk_video/vulkan_video_codec_h265std.h \
/usr/include/vk_video/vulkan_video_codec_h264std_decode.h \
/usr/include/vk_video/vulkan_video_codec_h265std_decode.h \
/usr/include/vk_video/vulkan_video_codec_av1std.h \
/usr/include/vk_video/vulkan_video_codec_av1std_decode.h \
/usr/include/vk_video/vulkan_video_codec_av1std.h \
/usr/include/vk_video/vulkan_video_codec_av1std_encode.h \
/usr/include/vk_video/vulkan_video_codec_vp9std.h \
/usr/include/vk_video/vulkan_video_codec_vp9std_decode.h \
/usr/include/vk_video/vulkan_video_codec_vp9std.h \
/usr/include/GLFW/glfw3.h /usr/include/vulkan/vulkan.h \
/usr/include/vulkan/vulkan_core.h /usr/include/GL/gl.h \
/usr/include/GL/glext.h /usr/include/KHR/khrplatform.h \
/usr/include/c++/15.2.1/optional /usr/include/c++/15.2.1/exception \
/usr/include/c++/15.2.1/bits/exception_ptr.h \
/usr/include/c++/15.2.1/bits/cxxabi_init_exception.h \
/usr/include/c++/15.2.1/bits/nested_exception.h \
/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/imgui.h \
/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/imconfig.h \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdarg.h \
/usr/include/string.h /usr/include/strings.h \
/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/backends/imgui_impl_vulkan.h \
/home/Jordan/Projects/CPP/LearningVulkan/src/utilities/Logger.h \
/usr/include/c++/15.2.1/string /usr/include/c++/15.2.1/bits/stringfwd.h \
/usr/include/c++/15.2.1/bits/char_traits.h \
/usr/include/c++/15.2.1/bits/postypes.h /usr/include/c++/15.2.1/cwchar \
/usr/include/wchar.h /usr/include/bits/types/wint_t.h \
/usr/include/bits/types/mbstate_t.h \
/usr/include/bits/types/__mbstate_t.h /usr/include/bits/types/__FILE.h \
/usr/include/bits/types/FILE.h /usr/include/c++/15.2.1/bits/localefwd.h \
/usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/c++locale.h \
/usr/include/c++/15.2.1/clocale /usr/include/locale.h \
/usr/include/bits/locale.h /usr/include/c++/15.2.1/iosfwd \
/usr/include/c++/15.2.1/cctype /usr/include/ctype.h \
/usr/include/c++/15.2.1/bits/ostream_insert.h \
/usr/include/c++/15.2.1/bits/cxxabi_forced.h \
/usr/include/c++/15.2.1/bits/basic_string.h \
/usr/include/c++/15.2.1/string_view \
/usr/include/c++/15.2.1/bits/string_view.tcc \
/usr/include/c++/15.2.1/ext/string_conversions.h \
/usr/include/c++/15.2.1/cstdlib /usr/include/c++/15.2.1/cstdio \
/usr/include/stdio.h /usr/include/bits/types/__fpos_t.h \
/usr/include/bits/types/__fpos64_t.h \
/usr/include/bits/types/struct_FILE.h \
/usr/include/bits/types/cookie_io_functions_t.h \
/usr/include/bits/stdio_lim.h /usr/include/bits/stdio.h \
/usr/include/c++/15.2.1/cerrno /usr/include/errno.h \
/usr/include/bits/errno.h /usr/include/linux/errno.h \
/usr/include/asm/errno.h /usr/include/asm-generic/errno.h \
/usr/include/asm-generic/errno-base.h /usr/include/bits/types/error_t.h \
/usr/include/c++/15.2.1/bits/charconv.h \
/usr/include/c++/15.2.1/bits/basic_string.tcc \
/usr/include/c++/15.2.1/source_location /usr/include/c++/15.2.1/format \
/usr/include/c++/15.2.1/charconv \
/usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/error_constants.h \
/usr/include/c++/15.2.1/locale \
/usr/include/c++/15.2.1/bits/locale_classes.h \
/usr/include/c++/15.2.1/ext/atomicity.h \
/usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/gthr.h \
/usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/gthr-default.h \
/usr/include/pthread.h /usr/include/sched.h /usr/include/bits/sched.h \
/usr/include/linux/sched/types.h /usr/include/linux/types.h \
/usr/include/asm/types.h /usr/include/asm-generic/types.h \
/usr/include/asm-generic/int-ll64.h /usr/include/asm/bitsperlong.h \
/usr/include/asm-generic/bitsperlong.h /usr/include/linux/posix_types.h \
/usr/include/linux/stddef.h /usr/include/asm/posix_types.h \
/usr/include/asm/posix_types_64.h /usr/include/asm-generic/posix_types.h \
/usr/include/bits/types/struct_sched_param.h /usr/include/bits/cpu-set.h \
/usr/include/time.h /usr/include/bits/time.h /usr/include/bits/timex.h \
/usr/include/bits/types/struct_tm.h \
/usr/include/bits/types/struct_itimerspec.h /usr/include/bits/setjmp.h \
/usr/include/bits/types/struct___jmp_buf_tag.h \
/usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/atomic_word.h \
/usr/include/sys/single_threaded.h \
/usr/include/c++/15.2.1/bits/locale_classes.tcc \
/usr/include/c++/15.2.1/bits/locale_facets.h \
/usr/include/c++/15.2.1/cwctype /usr/include/wctype.h \
/usr/include/bits/wctype-wchar.h \
/usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/ctype_base.h \
/usr/include/c++/15.2.1/bits/ios_base.h \
/usr/include/c++/15.2.1/system_error /usr/include/c++/15.2.1/stdexcept \
/usr/include/c++/15.2.1/streambuf \
/usr/include/c++/15.2.1/bits/streambuf.tcc \
/usr/include/c++/15.2.1/bits/streambuf_iterator.h \
/usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/ctype_inline.h \
/usr/include/c++/15.2.1/bits/locale_facets.tcc \
/usr/include/c++/15.2.1/bits/locale_facets_nonio.h \
/usr/include/c++/15.2.1/ctime \
/usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/time_members.h \
/usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/messages_members.h \
/usr/include/libintl.h /usr/include/c++/15.2.1/bits/codecvt.h \
/usr/include/c++/15.2.1/bits/locale_facets_nonio.tcc \
/usr/include/c++/15.2.1/bits/locale_conv.h /usr/include/c++/15.2.1/span \
/usr/include/c++/15.2.1/bits/monostate.h \
/usr/include/c++/15.2.1/bits/formatfwd.h \
/usr/include/c++/15.2.1/bits/ranges_algobase.h \
/usr/include/c++/15.2.1/bits/unicode.h \
/usr/include/c++/15.2.1/bits/stl_algo.h \
/usr/include/c++/15.2.1/bits/algorithmfwd.h \
/usr/include/c++/15.2.1/bits/stl_heap.h \
/usr/include/c++/15.2.1/bits/uniform_int_dist.h \
/usr/include/c++/15.2.1/bits/stl_tempbuf.h \
/usr/include/c++/15.2.1/bits/unicode-data.h

View File

@@ -1,13 +1,8 @@
CMakeFiles/LearningVulkan.dir/src/private/VulkanContext.cpp.o: \
/home/Jordan/Projects/CPP/LearningVulkan/src/private/VulkanContext.cpp \
/usr/include/stdc-predef.h \
/home/Jordan/Projects/CPP/LearningVulkan/src/public/VulkanContext.h \
/home/Jordan/Projects/CPP/LearningVulkan/src/public/VulkanCommandBuffers.h \
/home/Jordan/Projects/CPP/LearningVulkan/src/public/VulkanVertexBuffer.h \
/home/Jordan/Projects/CPP/LearningVulkan/src/public/Primitives.h \
/usr/include/glm/glm.hpp /usr/include/glm/detail/_fixes.hpp \
/usr/include/c++/15.2.1/cmath \
/usr/include/c++/15.2.1/bits/requires_hosted.h \
/home/Jordan/Projects/CPP/LearningVulkan/src/public/VulkanContext.hpp \
/usr/include/c++/15.2.1/cstdint \
/usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/c++config.h \
/usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/os_defines.h \
/usr/include/features.h /usr/include/features-time64.h \
@@ -16,60 +11,251 @@ CMakeFiles/LearningVulkan.dir/src/private/VulkanContext.cpp.o: \
/usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
/usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/cpu_defines.h \
/usr/include/c++/15.2.1/pstl/pstl_config.h \
/usr/include/c++/15.2.1/bits/cpp_type_traits.h \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdint.h \
/usr/include/stdint.h /usr/include/bits/libc-header-start.h \
/usr/include/bits/types.h /usr/include/bits/typesizes.h \
/usr/include/bits/time64.h /usr/include/bits/wchar.h \
/usr/include/bits/stdint-intn.h /usr/include/bits/stdint-uintn.h \
/usr/include/bits/stdint-least.h /usr/include/c++/15.2.1/memory \
/usr/include/c++/15.2.1/bits/memoryfwd.h \
/usr/include/c++/15.2.1/bits/allocator.h \
/usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/c++allocator.h \
/usr/include/c++/15.2.1/bits/new_allocator.h /usr/include/c++/15.2.1/new \
/usr/include/c++/15.2.1/bits/exception.h \
/usr/include/c++/15.2.1/bits/version.h \
/usr/include/c++/15.2.1/type_traits \
/usr/include/c++/15.2.1/ext/type_traits.h /usr/include/math.h \
/usr/include/bits/libc-header-start.h /usr/include/bits/math-vector.h \
/usr/include/bits/libm-simd-decl-stubs.h /usr/include/bits/floatn.h \
/usr/include/bits/floatn-common.h /usr/include/bits/flt-eval-method.h \
/usr/include/bits/fp-logb.h /usr/include/bits/fp-fast.h \
/usr/include/bits/mathcalls-macros.h \
/usr/include/bits/mathcalls-helper-functions.h \
/usr/include/bits/mathcalls.h /usr/include/bits/mathcalls-narrow.h \
/usr/include/bits/iscanonical.h /usr/include/c++/15.2.1/bits/std_abs.h \
/usr/include/stdlib.h \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stddef.h \
/usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
/usr/include/bits/types/locale_t.h /usr/include/bits/types/__locale_t.h \
/usr/include/sys/types.h /usr/include/bits/types.h \
/usr/include/bits/typesizes.h /usr/include/bits/time64.h \
/usr/include/bits/types/clock_t.h /usr/include/bits/types/clockid_t.h \
/usr/include/bits/types/time_t.h /usr/include/bits/types/timer_t.h \
/usr/include/bits/stdint-intn.h /usr/include/endian.h \
/usr/include/bits/endian.h /usr/include/bits/endianness.h \
/usr/include/bits/byteswap.h /usr/include/bits/uintn-identity.h \
/usr/include/sys/select.h /usr/include/bits/select.h \
/usr/include/bits/types/sigset_t.h /usr/include/bits/types/__sigset_t.h \
/usr/include/bits/types/struct_timeval.h \
/usr/include/bits/types/struct_timespec.h \
/usr/include/bits/pthreadtypes.h /usr/include/bits/thread-shared-types.h \
/usr/include/bits/pthreadtypes-arch.h \
/usr/include/bits/atomic_wide_counter.h /usr/include/bits/struct_mutex.h \
/usr/include/bits/struct_rwlock.h /usr/include/alloca.h \
/usr/include/bits/stdlib-bsearch.h /usr/include/bits/stdlib-float.h \
/usr/include/c++/15.2.1/bits/specfun.h \
/usr/include/c++/15.2.1/bits/stl_algobase.h \
/usr/include/c++/15.2.1/bits/functexcept.h \
/usr/include/c++/15.2.1/bits/exception_defines.h \
/usr/include/c++/15.2.1/ext/numeric_traits.h \
/usr/include/c++/15.2.1/bits/stl_pair.h \
/usr/include/c++/15.2.1/bits/move.h \
/usr/include/c++/15.2.1/bits/utility.h /usr/include/c++/15.2.1/compare \
/usr/include/c++/15.2.1/concepts \
/usr/include/c++/15.2.1/bits/move.h /usr/include/c++/15.2.1/type_traits \
/usr/include/c++/15.2.1/bits/stl_tempbuf.h \
/usr/include/c++/15.2.1/bits/stl_construct.h \
/usr/include/c++/15.2.1/bits/stl_iterator_base_types.h \
/usr/include/c++/15.2.1/bits/iterator_concepts.h \
/usr/include/c++/15.2.1/concepts \
/usr/include/c++/15.2.1/bits/ptr_traits.h \
/usr/include/c++/15.2.1/bits/ranges_cmp.h \
/usr/include/c++/15.2.1/bits/stl_iterator_base_funcs.h \
/usr/include/c++/15.2.1/bits/concept_check.h \
/usr/include/c++/15.2.1/debug/assertions.h \
/usr/include/c++/15.2.1/bits/stl_iterator.h /usr/include/c++/15.2.1/new \
/usr/include/c++/15.2.1/bits/exception.h \
/usr/include/c++/15.2.1/bits/stl_construct.h \
/usr/include/c++/15.2.1/bits/stl_pair.h \
/usr/include/c++/15.2.1/bits/utility.h /usr/include/c++/15.2.1/compare \
/usr/include/c++/15.2.1/ext/numeric_traits.h \
/usr/include/c++/15.2.1/bits/cpp_type_traits.h \
/usr/include/c++/15.2.1/ext/type_traits.h \
/usr/include/c++/15.2.1/bits/stl_uninitialized.h \
/usr/include/c++/15.2.1/bits/stl_algobase.h \
/usr/include/c++/15.2.1/bits/stl_iterator.h \
/usr/include/c++/15.2.1/debug/debug.h \
/usr/include/c++/15.2.1/bits/predefined_ops.h \
/usr/include/c++/15.2.1/bit /usr/include/c++/15.2.1/limits \
/usr/include/c++/15.2.1/bit /usr/include/c++/15.2.1/ext/alloc_traits.h \
/usr/include/c++/15.2.1/bits/alloc_traits.h \
/usr/include/c++/15.2.1/bits/stl_raw_storage_iter.h \
/usr/include/c++/15.2.1/bits/align.h \
/usr/include/c++/15.2.1/bits/uses_allocator.h \
/usr/include/c++/15.2.1/bits/unique_ptr.h /usr/include/c++/15.2.1/tuple \
/usr/include/c++/15.2.1/bits/invoke.h \
/usr/include/c++/15.2.1/bits/ranges_util.h \
/usr/include/c++/15.2.1/bits/ranges_base.h \
/usr/include/c++/15.2.1/initializer_list \
/usr/include/c++/15.2.1/bits/max_size_type.h \
/usr/include/c++/15.2.1/numbers \
/usr/include/c++/15.2.1/bits/stl_function.h \
/usr/include/c++/15.2.1/backward/binders.h \
/usr/include/c++/15.2.1/bits/functional_hash.h \
/usr/include/c++/15.2.1/bits/hash_bytes.h \
/usr/include/c++/15.2.1/bits/ostream.h \
/usr/include/c++/15.2.1/bits/requires_hosted.h \
/usr/include/c++/15.2.1/ios /usr/include/c++/15.2.1/iosfwd \
/usr/include/c++/15.2.1/bits/stringfwd.h \
/usr/include/c++/15.2.1/bits/postypes.h /usr/include/c++/15.2.1/cwchar \
/usr/include/wchar.h /usr/include/bits/floatn.h \
/usr/include/bits/floatn-common.h \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stddef.h \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdarg.h \
/usr/include/bits/types/wint_t.h /usr/include/bits/types/mbstate_t.h \
/usr/include/bits/types/__mbstate_t.h /usr/include/bits/types/__FILE.h \
/usr/include/bits/types/FILE.h /usr/include/bits/types/locale_t.h \
/usr/include/bits/types/__locale_t.h /usr/include/c++/15.2.1/exception \
/usr/include/c++/15.2.1/bits/exception_ptr.h \
/usr/include/c++/15.2.1/bits/cxxabi_init_exception.h \
/usr/include/c++/15.2.1/typeinfo \
/usr/include/c++/15.2.1/bits/nested_exception.h \
/usr/include/c++/15.2.1/bits/char_traits.h \
/usr/include/c++/15.2.1/bits/localefwd.h \
/usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/c++locale.h \
/usr/include/c++/15.2.1/clocale /usr/include/locale.h \
/usr/include/bits/locale.h /usr/include/c++/15.2.1/cctype \
/usr/include/ctype.h /usr/include/bits/endian.h \
/usr/include/bits/endianness.h /usr/include/c++/15.2.1/bits/ios_base.h \
/usr/include/c++/15.2.1/ext/atomicity.h \
/usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/gthr.h \
/usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/gthr-default.h \
/usr/include/pthread.h /usr/include/sched.h \
/usr/include/bits/types/time_t.h \
/usr/include/bits/types/struct_timespec.h /usr/include/bits/sched.h \
/usr/include/linux/sched/types.h /usr/include/linux/types.h \
/usr/include/asm/types.h /usr/include/asm-generic/types.h \
/usr/include/asm-generic/int-ll64.h /usr/include/asm/bitsperlong.h \
/usr/include/asm-generic/bitsperlong.h /usr/include/linux/posix_types.h \
/usr/include/linux/stddef.h /usr/include/asm/posix_types.h \
/usr/include/asm/posix_types_64.h /usr/include/asm-generic/posix_types.h \
/usr/include/bits/types/struct_sched_param.h /usr/include/bits/cpu-set.h \
/usr/include/time.h /usr/include/bits/time.h /usr/include/bits/timex.h \
/usr/include/bits/types/struct_timeval.h \
/usr/include/bits/types/clock_t.h /usr/include/bits/types/struct_tm.h \
/usr/include/bits/types/clockid_t.h /usr/include/bits/types/timer_t.h \
/usr/include/bits/types/struct_itimerspec.h \
/usr/include/bits/pthreadtypes.h /usr/include/bits/thread-shared-types.h \
/usr/include/bits/pthreadtypes-arch.h \
/usr/include/bits/atomic_wide_counter.h /usr/include/bits/struct_mutex.h \
/usr/include/bits/struct_rwlock.h /usr/include/bits/setjmp.h \
/usr/include/bits/types/__sigset_t.h \
/usr/include/bits/types/struct___jmp_buf_tag.h \
/usr/include/bits/pthread_stack_min-dynamic.h \
/usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/atomic_word.h \
/usr/include/sys/single_threaded.h \
/usr/include/c++/15.2.1/bits/locale_classes.h \
/usr/include/c++/15.2.1/string \
/usr/include/c++/15.2.1/bits/ostream_insert.h \
/usr/include/c++/15.2.1/bits/cxxabi_forced.h \
/usr/include/c++/15.2.1/bits/refwrap.h \
/usr/include/c++/15.2.1/bits/range_access.h \
/usr/include/c++/15.2.1/bits/basic_string.h \
/usr/include/c++/15.2.1/string_view \
/usr/include/c++/15.2.1/bits/string_view.tcc \
/usr/include/c++/15.2.1/ext/string_conversions.h \
/usr/include/c++/15.2.1/cstdlib /usr/include/stdlib.h \
/usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
/usr/include/sys/types.h /usr/include/endian.h \
/usr/include/bits/byteswap.h /usr/include/bits/uintn-identity.h \
/usr/include/sys/select.h /usr/include/bits/select.h \
/usr/include/bits/types/sigset_t.h /usr/include/alloca.h \
/usr/include/bits/stdlib-bsearch.h /usr/include/bits/stdlib-float.h \
/usr/include/c++/15.2.1/bits/std_abs.h /usr/include/c++/15.2.1/cstdio \
/usr/include/stdio.h /usr/include/bits/types/__fpos_t.h \
/usr/include/bits/types/__fpos64_t.h \
/usr/include/bits/types/struct_FILE.h \
/usr/include/bits/types/cookie_io_functions_t.h \
/usr/include/bits/stdio_lim.h /usr/include/bits/stdio.h \
/usr/include/c++/15.2.1/cerrno /usr/include/errno.h \
/usr/include/bits/errno.h /usr/include/linux/errno.h \
/usr/include/asm/errno.h /usr/include/asm-generic/errno.h \
/usr/include/asm-generic/errno-base.h /usr/include/bits/types/error_t.h \
/usr/include/c++/15.2.1/bits/charconv.h \
/usr/include/c++/15.2.1/bits/basic_string.tcc \
/usr/include/c++/15.2.1/bits/memory_resource.h \
/usr/include/c++/15.2.1/cstddef \
/usr/include/c++/15.2.1/bits/uses_allocator_args.h \
/usr/include/c++/15.2.1/bits/locale_classes.tcc \
/usr/include/c++/15.2.1/system_error \
/usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/error_constants.h \
/usr/include/c++/15.2.1/stdexcept /usr/include/c++/15.2.1/streambuf \
/usr/include/c++/15.2.1/bits/streambuf.tcc \
/usr/include/c++/15.2.1/bits/basic_ios.h \
/usr/include/c++/15.2.1/bits/locale_facets.h \
/usr/include/c++/15.2.1/cwctype /usr/include/wctype.h \
/usr/include/bits/wctype-wchar.h \
/usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/ctype_base.h \
/usr/include/c++/15.2.1/bits/streambuf_iterator.h \
/usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/ctype_inline.h \
/usr/include/c++/15.2.1/bits/locale_facets.tcc \
/usr/include/c++/15.2.1/bits/basic_ios.tcc \
/usr/include/c++/15.2.1/bits/shared_ptr.h \
/usr/include/c++/15.2.1/bits/shared_ptr_base.h \
/usr/include/c++/15.2.1/bits/allocated_ptr.h \
/usr/include/c++/15.2.1/ext/aligned_buffer.h \
/usr/include/c++/15.2.1/ext/concurrence.h \
/usr/include/c++/15.2.1/bits/shared_ptr_atomic.h \
/usr/include/c++/15.2.1/bits/atomic_base.h \
/usr/include/c++/15.2.1/bits/atomic_lockfree_defines.h \
/usr/include/c++/15.2.1/bits/atomic_wait.h \
/usr/include/c++/15.2.1/climits \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/limits.h \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/syslimits.h \
/usr/include/limits.h /usr/include/bits/posix1_lim.h \
/usr/include/bits/local_lim.h /usr/include/linux/limits.h \
/usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \
/usr/include/bits/uio_lim.h /usr/include/unistd.h \
/usr/include/bits/posix_opt.h /usr/include/bits/environments.h \
/usr/include/bits/confname.h /usr/include/bits/getopt_posix.h \
/usr/include/bits/getopt_core.h /usr/include/bits/unistd_ext.h \
/usr/include/linux/close_range.h /usr/include/syscall.h \
/usr/include/sys/syscall.h /usr/include/asm/unistd.h \
/usr/include/asm/unistd_64.h /usr/include/bits/syscall.h \
/usr/include/c++/15.2.1/bits/std_mutex.h \
/usr/include/c++/15.2.1/backward/auto_ptr.h \
/usr/include/c++/15.2.1/bits/ranges_uninitialized.h \
/usr/include/c++/15.2.1/bits/ranges_algobase.h \
/usr/include/c++/15.2.1/pstl/glue_memory_defs.h \
/usr/include/c++/15.2.1/pstl/execution_defs.h \
/usr/include/c++/15.2.1/vector /usr/include/c++/15.2.1/bits/stl_vector.h \
/usr/include/c++/15.2.1/bits/stl_bvector.h \
/usr/include/c++/15.2.1/bits/vector.tcc \
/usr/include/vulkan/vulkan_core.h /usr/include/vulkan/vk_platform.h \
/usr/include/vk_video/vulkan_video_codec_h264std.h \
/usr/include/vk_video/vulkan_video_codecs_common.h \
/usr/include/vk_video/vulkan_video_codec_h264std_encode.h \
/usr/include/vk_video/vulkan_video_codec_h264std.h \
/usr/include/vk_video/vulkan_video_codec_h265std.h \
/usr/include/vk_video/vulkan_video_codec_h265std_encode.h \
/usr/include/vk_video/vulkan_video_codec_h265std.h \
/usr/include/vk_video/vulkan_video_codec_h264std_decode.h \
/usr/include/vk_video/vulkan_video_codec_h265std_decode.h \
/usr/include/vk_video/vulkan_video_codec_av1std.h \
/usr/include/vk_video/vulkan_video_codec_av1std_decode.h \
/usr/include/vk_video/vulkan_video_codec_av1std.h \
/usr/include/vk_video/vulkan_video_codec_av1std_encode.h \
/usr/include/vk_video/vulkan_video_codec_vp9std.h \
/usr/include/vk_video/vulkan_video_codec_vp9std_decode.h \
/usr/include/vk_video/vulkan_video_codec_vp9std.h \
/usr/include/GLFW/glfw3.h /usr/include/vulkan/vulkan.h \
/usr/include/vulkan/vulkan_core.h /usr/include/GL/gl.h \
/usr/include/GL/glext.h /usr/include/KHR/khrplatform.h \
/home/Jordan/Projects/CPP/LearningVulkan/src/public/VulkanTexture.hpp \
/usr/include/vulkan/vulkan.hpp /usr/include/vulkan/vulkan_hpp_macros.hpp \
/usr/include/c++/15.2.1/version /usr/include/c++/15.2.1/algorithm \
/usr/include/c++/15.2.1/bits/stl_algo.h \
/usr/include/c++/15.2.1/bits/algorithmfwd.h \
/usr/include/c++/15.2.1/bits/stl_heap.h \
/usr/include/c++/15.2.1/bits/uniform_int_dist.h \
/usr/include/c++/15.2.1/bits/ranges_algo.h \
/usr/include/c++/15.2.1/pstl/glue_algorithm_defs.h \
/usr/include/c++/15.2.1/array /usr/include/c++/15.2.1/cassert \
/usr/include/assert.h /usr/include/string.h /usr/include/strings.h \
/usr/include/c++/15.2.1/utility \
/usr/include/c++/15.2.1/bits/stl_relops.h /usr/include/c++/15.2.1/span \
/usr/include/dlfcn.h /usr/include/bits/dlfcn.h \
/usr/include/bits/dl_find_object.h /usr/include/vulkan/vulkan_enums.hpp \
/usr/include/vulkan/vulkan_to_string.hpp /usr/include/c++/15.2.1/format \
/usr/include/c++/15.2.1/charconv /usr/include/c++/15.2.1/limits \
/usr/include/c++/15.2.1/locale \
/usr/include/c++/15.2.1/bits/locale_facets_nonio.h \
/usr/include/c++/15.2.1/ctime \
/usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/time_members.h \
/usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/messages_members.h \
/usr/include/libintl.h /usr/include/c++/15.2.1/bits/codecvt.h \
/usr/include/c++/15.2.1/bits/locale_facets_nonio.tcc \
/usr/include/c++/15.2.1/bits/locale_conv.h \
/usr/include/c++/15.2.1/optional \
/usr/include/c++/15.2.1/bits/enable_special_members.h \
/usr/include/c++/15.2.1/bits/monostate.h \
/usr/include/c++/15.2.1/bits/formatfwd.h \
/usr/include/c++/15.2.1/bits/unicode.h \
/usr/include/c++/15.2.1/bits/unicode-data.h \
/usr/include/vulkan/vulkan_handles.hpp \
/usr/include/vulkan/vulkan_structs.hpp /usr/include/c++/15.2.1/cstring \
/usr/include/vulkan/vulkan_funcs.hpp \
/home/Jordan/Projects/CPP/LearningVulkan/src/public/VulkanBuffers.h \
/home/Jordan/Projects/CPP/LearningVulkan/src/utilities/Primitives.h \
/usr/include/glm/fwd.hpp /usr/include/glm/detail/qualifier.hpp \
/usr/include/glm/detail/setup.hpp /usr/include/glm/simd/platform.h \
/usr/include/glm/glm.hpp /usr/include/glm/detail/_fixes.hpp \
/usr/include/c++/15.2.1/cmath /usr/include/math.h \
/usr/include/bits/math-vector.h /usr/include/bits/libm-simd-decl-stubs.h \
/usr/include/bits/flt-eval-method.h /usr/include/bits/fp-logb.h \
/usr/include/bits/fp-fast.h /usr/include/bits/mathcalls-macros.h \
/usr/include/bits/mathcalls-helper-functions.h \
/usr/include/bits/mathcalls.h /usr/include/bits/mathcalls-narrow.h \
/usr/include/bits/iscanonical.h /usr/include/c++/15.2.1/bits/specfun.h \
/usr/include/c++/15.2.1/tr1/gamma.tcc \
/usr/include/c++/15.2.1/tr1/special_function_util.h \
/usr/include/c++/15.2.1/tr1/bessel_function.tcc \
@@ -82,24 +268,9 @@ CMakeFiles/LearningVulkan.dir/src/private/VulkanContext.cpp.o: \
/usr/include/c++/15.2.1/tr1/poly_hermite.tcc \
/usr/include/c++/15.2.1/tr1/poly_laguerre.tcc \
/usr/include/c++/15.2.1/tr1/riemann_zeta.tcc \
/usr/include/glm/detail/setup.hpp /usr/include/c++/15.2.1/cassert \
/usr/include/assert.h /usr/include/c++/15.2.1/cstddef \
/usr/include/glm/simd/platform.h /usr/include/c++/15.2.1/cstdint \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdint.h \
/usr/include/stdint.h /usr/include/bits/wchar.h \
/usr/include/bits/stdint-uintn.h /usr/include/bits/stdint-least.h \
/usr/include/c++/15.2.1/climits \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/limits.h \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/syslimits.h \
/usr/include/limits.h /usr/include/bits/posix1_lim.h \
/usr/include/bits/local_lim.h /usr/include/linux/limits.h \
/usr/include/bits/pthread_stack_min-dynamic.h \
/usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \
/usr/include/bits/uio_lim.h /usr/include/c++/15.2.1/cfloat \
/usr/include/glm/detail/setup.hpp /usr/include/c++/15.2.1/cfloat \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/float.h \
/usr/include/glm/fwd.hpp /usr/include/glm/detail/qualifier.hpp \
/usr/include/glm/detail/setup.hpp /usr/include/glm/vec2.hpp \
/usr/include/glm/ext/vector_bool2.hpp \
/usr/include/glm/vec2.hpp /usr/include/glm/ext/vector_bool2.hpp \
/usr/include/glm/detail/type_vec2.hpp \
/usr/include/glm/detail/type_vec2.inl \
/usr/include/glm/detail/compute_vector_relational.hpp \
@@ -119,41 +290,13 @@ CMakeFiles/LearningVulkan.dir/src/private/VulkanContext.cpp.o: \
/usr/include/glm/detail/type_vec3.inl \
/usr/include/glm/detail/compute_vector_decl.hpp \
/usr/include/c++/15.2.1/functional \
/usr/include/c++/15.2.1/bits/stl_function.h \
/usr/include/c++/15.2.1/backward/binders.h /usr/include/c++/15.2.1/tuple \
/usr/include/c++/15.2.1/bits/uses_allocator.h \
/usr/include/c++/15.2.1/bits/invoke.h \
/usr/include/c++/15.2.1/bits/ranges_util.h \
/usr/include/c++/15.2.1/bits/ranges_base.h \
/usr/include/c++/15.2.1/initializer_list \
/usr/include/c++/15.2.1/bits/max_size_type.h \
/usr/include/c++/15.2.1/numbers \
/usr/include/c++/15.2.1/bits/functional_hash.h \
/usr/include/c++/15.2.1/bits/hash_bytes.h \
/usr/include/c++/15.2.1/bits/refwrap.h \
/usr/include/c++/15.2.1/bits/std_function.h \
/usr/include/c++/15.2.1/typeinfo /usr/include/c++/15.2.1/unordered_map \
/usr/include/c++/15.2.1/unordered_map \
/usr/include/c++/15.2.1/bits/unordered_map.h \
/usr/include/c++/15.2.1/bits/hashtable.h \
/usr/include/c++/15.2.1/bits/hashtable_policy.h \
/usr/include/c++/15.2.1/ext/aligned_buffer.h \
/usr/include/c++/15.2.1/ext/alloc_traits.h \
/usr/include/c++/15.2.1/bits/alloc_traits.h \
/usr/include/c++/15.2.1/bits/memoryfwd.h \
/usr/include/c++/15.2.1/bits/allocator.h \
/usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/c++allocator.h \
/usr/include/c++/15.2.1/bits/new_allocator.h \
/usr/include/c++/15.2.1/bits/enable_special_members.h \
/usr/include/c++/15.2.1/bits/node_handle.h \
/usr/include/c++/15.2.1/bits/range_access.h \
/usr/include/c++/15.2.1/bits/erase_if.h \
/usr/include/c++/15.2.1/bits/memory_resource.h \
/usr/include/c++/15.2.1/bits/uses_allocator_args.h \
/usr/include/c++/15.2.1/vector \
/usr/include/c++/15.2.1/bits/stl_uninitialized.h \
/usr/include/c++/15.2.1/bits/stl_vector.h \
/usr/include/c++/15.2.1/bits/stl_bvector.h \
/usr/include/c++/15.2.1/bits/vector.tcc /usr/include/c++/15.2.1/array \
/usr/include/glm/detail/_vectorize.hpp \
/usr/include/glm/ext/vector_bool3_precision.hpp \
/usr/include/glm/ext/vector_float3.hpp \
@@ -245,152 +388,73 @@ CMakeFiles/LearningVulkan.dir/src/private/VulkanContext.cpp.o: \
/usr/include/glm/packing.hpp /usr/include/glm/detail/func_packing.inl \
/usr/include/glm/detail/type_half.hpp \
/usr/include/glm/detail/type_half.inl /usr/include/glm/integer.hpp \
/usr/include/glm/detail/func_integer.inl \
/usr/include/vulkan/vulkan_core.h /usr/include/vulkan/vk_platform.h \
/usr/include/vk_video/vulkan_video_codec_h264std.h \
/usr/include/vk_video/vulkan_video_codecs_common.h \
/usr/include/vk_video/vulkan_video_codec_h264std_encode.h \
/usr/include/vk_video/vulkan_video_codec_h264std.h \
/usr/include/vk_video/vulkan_video_codec_h265std.h \
/usr/include/vk_video/vulkan_video_codec_h265std_encode.h \
/usr/include/vk_video/vulkan_video_codec_h265std.h \
/usr/include/vk_video/vulkan_video_codec_h264std_decode.h \
/usr/include/vk_video/vulkan_video_codec_h265std_decode.h \
/usr/include/vk_video/vulkan_video_codec_av1std.h \
/usr/include/vk_video/vulkan_video_codec_av1std_decode.h \
/usr/include/vk_video/vulkan_video_codec_av1std.h \
/usr/include/vk_video/vulkan_video_codec_av1std_encode.h \
/usr/include/vk_video/vulkan_video_codec_vp9std.h \
/usr/include/vk_video/vulkan_video_codec_vp9std_decode.h \
/usr/include/vk_video/vulkan_video_codec_vp9std.h \
/usr/include/GLFW/glfw3.h /usr/include/vulkan/vulkan.h \
/usr/include/vulkan/vulkan_core.h /usr/include/GL/gl.h \
/usr/include/GL/glext.h /usr/include/KHR/khrplatform.h \
/usr/include/c++/15.2.1/optional /usr/include/c++/15.2.1/exception \
/usr/include/c++/15.2.1/bits/exception_ptr.h \
/usr/include/c++/15.2.1/bits/cxxabi_init_exception.h \
/usr/include/c++/15.2.1/bits/nested_exception.h \
/home/Jordan/Projects/CPP/LearningVulkan/src/public/VulkanFramebuffers.h \
/home/Jordan/Projects/CPP/LearningVulkan/src/public/VulkanInstanceManager.h \
/home/Jordan/Projects/CPP/LearningVulkan/src/public/VulkanDebugManager.h \
/home/Jordan/Projects/CPP/LearningVulkan/src/public/VulkanDeviceManager.h \
/home/Jordan/Projects/CPP/LearningVulkan/src/public/VulkanPipeline.h \
/home/Jordan/Projects/CPP/LearningVulkan/src/public/VulkanRenderPass.h \
/home/Jordan/Projects/CPP/LearningVulkan/src/public/VulkanSwapChain.h \
/home/Jordan/Projects/CPP/LearningVulkan/src/utilities/Logger.h \
/usr/include/c++/15.2.1/string /usr/include/c++/15.2.1/bits/stringfwd.h \
/usr/include/c++/15.2.1/bits/char_traits.h \
/usr/include/c++/15.2.1/bits/postypes.h /usr/include/c++/15.2.1/cwchar \
/usr/include/wchar.h \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdarg.h \
/usr/include/bits/types/wint_t.h /usr/include/bits/types/mbstate_t.h \
/usr/include/bits/types/__mbstate_t.h /usr/include/bits/types/__FILE.h \
/usr/include/bits/types/FILE.h /usr/include/c++/15.2.1/bits/localefwd.h \
/usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/c++locale.h \
/usr/include/c++/15.2.1/clocale /usr/include/locale.h \
/usr/include/bits/locale.h /usr/include/c++/15.2.1/iosfwd \
/usr/include/c++/15.2.1/cctype /usr/include/ctype.h \
/usr/include/c++/15.2.1/bits/ostream_insert.h \
/usr/include/c++/15.2.1/bits/cxxabi_forced.h \
/usr/include/c++/15.2.1/bits/basic_string.h \
/usr/include/c++/15.2.1/string_view \
/usr/include/c++/15.2.1/bits/string_view.tcc \
/usr/include/c++/15.2.1/ext/string_conversions.h \
/usr/include/c++/15.2.1/cstdlib /usr/include/c++/15.2.1/cstdio \
/usr/include/stdio.h /usr/include/bits/types/__fpos_t.h \
/usr/include/bits/types/__fpos64_t.h \
/usr/include/bits/types/struct_FILE.h \
/usr/include/bits/types/cookie_io_functions_t.h \
/usr/include/bits/stdio_lim.h /usr/include/bits/stdio.h \
/usr/include/c++/15.2.1/cerrno /usr/include/errno.h \
/usr/include/bits/errno.h /usr/include/linux/errno.h \
/usr/include/asm/errno.h /usr/include/asm-generic/errno.h \
/usr/include/asm-generic/errno-base.h /usr/include/bits/types/error_t.h \
/usr/include/c++/15.2.1/bits/charconv.h \
/usr/include/c++/15.2.1/bits/basic_string.tcc \
/usr/include/c++/15.2.1/source_location /usr/include/c++/15.2.1/format \
/usr/include/c++/15.2.1/charconv \
/usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/error_constants.h \
/usr/include/c++/15.2.1/locale \
/usr/include/c++/15.2.1/bits/locale_classes.h \
/usr/include/c++/15.2.1/ext/atomicity.h \
/usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/gthr.h \
/usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/gthr-default.h \
/usr/include/pthread.h /usr/include/sched.h /usr/include/bits/sched.h \
/usr/include/linux/sched/types.h /usr/include/linux/types.h \
/usr/include/asm/types.h /usr/include/asm-generic/types.h \
/usr/include/asm-generic/int-ll64.h /usr/include/asm/bitsperlong.h \
/usr/include/asm-generic/bitsperlong.h /usr/include/linux/posix_types.h \
/usr/include/linux/stddef.h /usr/include/asm/posix_types.h \
/usr/include/asm/posix_types_64.h /usr/include/asm-generic/posix_types.h \
/usr/include/bits/types/struct_sched_param.h /usr/include/bits/cpu-set.h \
/usr/include/time.h /usr/include/bits/time.h /usr/include/bits/timex.h \
/usr/include/bits/types/struct_tm.h \
/usr/include/bits/types/struct_itimerspec.h /usr/include/bits/setjmp.h \
/usr/include/bits/types/struct___jmp_buf_tag.h \
/usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/atomic_word.h \
/usr/include/sys/single_threaded.h \
/usr/include/c++/15.2.1/bits/locale_classes.tcc \
/usr/include/c++/15.2.1/bits/locale_facets.h \
/usr/include/c++/15.2.1/cwctype /usr/include/wctype.h \
/usr/include/bits/wctype-wchar.h \
/usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/ctype_base.h \
/usr/include/c++/15.2.1/bits/ios_base.h \
/usr/include/c++/15.2.1/system_error /usr/include/c++/15.2.1/stdexcept \
/usr/include/c++/15.2.1/streambuf \
/usr/include/c++/15.2.1/bits/streambuf.tcc \
/usr/include/c++/15.2.1/bits/streambuf_iterator.h \
/usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/ctype_inline.h \
/usr/include/c++/15.2.1/bits/locale_facets.tcc \
/usr/include/c++/15.2.1/bits/locale_facets_nonio.h \
/usr/include/c++/15.2.1/ctime \
/usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/time_members.h \
/usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/messages_members.h \
/usr/include/libintl.h /usr/include/c++/15.2.1/bits/codecvt.h \
/usr/include/c++/15.2.1/bits/locale_facets_nonio.tcc \
/usr/include/c++/15.2.1/bits/locale_conv.h /usr/include/c++/15.2.1/span \
/usr/include/c++/15.2.1/bits/monostate.h \
/usr/include/c++/15.2.1/bits/formatfwd.h \
/usr/include/c++/15.2.1/bits/ranges_algobase.h \
/usr/include/c++/15.2.1/bits/unicode.h \
/usr/include/c++/15.2.1/bits/stl_algo.h \
/usr/include/c++/15.2.1/bits/algorithmfwd.h \
/usr/include/c++/15.2.1/bits/stl_heap.h \
/usr/include/c++/15.2.1/bits/uniform_int_dist.h \
/usr/include/c++/15.2.1/bits/stl_tempbuf.h \
/usr/include/c++/15.2.1/bits/unicode-data.h \
/home/Jordan/Projects/CPP/LearningVulkan/lib/stb/stb_image.h \
/usr/include/c++/15.2.1/stdlib.h \
/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/backends/imgui_impl_glfw.h \
/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/imgui.h \
/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/imconfig.h \
/usr/include/string.h /usr/include/strings.h \
/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/backends/imgui_impl_vulkan.h \
/usr/include/glm/ext/matrix_clip_space.hpp \
/usr/include/glm/detail/func_integer.inl /usr/include/glm/gtx/hash.hpp \
/usr/include/glm/gtc/vec1.hpp /usr/include/glm/ext/vector_bool1.hpp \
/usr/include/glm/ext/vector_bool1_precision.hpp \
/usr/include/glm/ext/vector_float1.hpp \
/usr/include/glm/ext/vector_float1_precision.hpp \
/usr/include/glm/ext/vector_double1.hpp \
/usr/include/glm/ext/vector_double1_precision.hpp \
/usr/include/glm/ext/vector_int1.hpp \
/usr/include/glm/ext/vector_int1_sized.hpp \
/usr/include/glm/ext/vector_uint1.hpp \
/usr/include/glm/ext/vector_uint1_sized.hpp \
/usr/include/glm/gtc/quaternion.hpp /usr/include/glm/gtc/constants.hpp \
/usr/include/glm/ext/scalar_constants.hpp \
/usr/include/glm/ext/scalar_constants.inl \
/usr/include/glm/ext/matrix_clip_space.inl \
/usr/include/glm/ext/matrix_transform.hpp \
/usr/include/glm/gtc/constants.hpp /usr/include/glm/gtc/constants.inl \
/usr/include/glm/ext/matrix_transform.inl \
/usr/include/glm/gtc/constants.inl \
/usr/include/glm/gtc/matrix_transform.hpp \
/usr/include/glm/ext/matrix_projection.hpp \
/usr/include/glm/ext/matrix_projection.inl \
/usr/include/glm/gtc/matrix_transform.inl /usr/include/c++/15.2.1/chrono \
/usr/include/c++/15.2.1/bits/chrono.h /usr/include/c++/15.2.1/ratio \
/usr/include/glm/ext/matrix_clip_space.hpp \
/usr/include/glm/ext/matrix_clip_space.inl \
/usr/include/glm/ext/matrix_transform.hpp \
/usr/include/glm/ext/matrix_transform.inl \
/usr/include/glm/gtc/matrix_transform.inl \
/usr/include/glm/ext/vector_relational.hpp \
/usr/include/glm/ext/vector_relational.inl \
/usr/include/glm/detail/type_float.hpp \
/usr/include/glm/ext/quaternion_common.hpp \
/usr/include/glm/ext/quaternion_geometric.hpp \
/usr/include/glm/ext/quaternion_geometric.inl \
/usr/include/glm/ext/quaternion_common.inl \
/usr/include/glm/ext/quaternion_float.hpp \
/usr/include/glm/detail/type_quat.hpp \
/usr/include/glm/ext/quaternion_relational.hpp \
/usr/include/glm/ext/quaternion_relational.inl \
/usr/include/glm/detail/type_quat.inl \
/usr/include/glm/ext/quaternion_float_precision.hpp \
/usr/include/glm/ext/quaternion_double.hpp \
/usr/include/glm/ext/quaternion_double_precision.hpp \
/usr/include/glm/ext/quaternion_trigonometric.hpp \
/usr/include/glm/ext/quaternion_trigonometric.inl \
/usr/include/glm/ext/quaternion_transform.hpp \
/usr/include/glm/ext/quaternion_transform.inl \
/usr/include/glm/gtc/quaternion.inl /usr/include/glm/gtc/epsilon.hpp \
/usr/include/glm/detail/setup.hpp /usr/include/glm/gtc/epsilon.inl \
/usr/include/glm/gtx/dual_quaternion.hpp \
/usr/include/glm/gtx/dual_quaternion.inl /usr/include/glm/gtx/hash.inl \
/home/Jordan/Projects/CPP/LearningVulkan/src/public/VulkanDebugManager.h \
/home/Jordan/Projects/CPP/LearningVulkan/src/public/VulkanDeviceManager.h \
/home/Jordan/Projects/CPP/LearningVulkan/src/public/VulkanFramebuffers.h \
/home/Jordan/Projects/CPP/LearningVulkan/src/public/VulkanInstanceManager.hpp \
/home/Jordan/Projects/CPP/LearningVulkan/src/public/VulkanPipeline.h \
/home/Jordan/Projects/CPP/LearningVulkan/src/public/VulkanRenderPass.h \
/home/Jordan/Projects/CPP/LearningVulkan/src/public/VulkanSwapChain.h \
/usr/include/c++/15.2.1/chrono /usr/include/c++/15.2.1/bits/chrono.h \
/usr/include/c++/15.2.1/ratio \
/usr/include/c++/15.2.1/bits/parse_numbers.h \
/usr/include/c++/15.2.1/sstream /usr/include/c++/15.2.1/istream \
/usr/include/c++/15.2.1/ios /usr/include/c++/15.2.1/bits/basic_ios.h \
/usr/include/c++/15.2.1/bits/basic_ios.tcc \
/usr/include/c++/15.2.1/ostream /usr/include/c++/15.2.1/bits/ostream.h \
/usr/include/c++/15.2.1/bits/ostream.tcc \
/usr/include/c++/15.2.1/ostream /usr/include/c++/15.2.1/bits/ostream.tcc \
/usr/include/c++/15.2.1/bits/istream.tcc \
/usr/include/c++/15.2.1/bits/sstream.tcc \
/usr/include/c++/15.2.1/bits/shared_ptr.h \
/usr/include/c++/15.2.1/bits/shared_ptr_base.h \
/usr/include/c++/15.2.1/bits/allocated_ptr.h \
/usr/include/c++/15.2.1/bits/unique_ptr.h \
/usr/include/c++/15.2.1/ext/concurrence.h \
/usr/include/c++/15.2.1/bits/align.h \
/usr/include/c++/15.2.1/bits/chrono_io.h /usr/include/c++/15.2.1/iomanip \
/usr/include/c++/15.2.1/bits/quoted_string.h
/usr/include/c++/15.2.1/bits/quoted_string.h \
/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/backends/imgui_impl_glfw.h \
/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/imgui.h \
/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/imconfig.h \
/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/backends/imgui_impl_vulkan.h \
/home/Jordan/Projects/CPP/LearningVulkan/lib/stb/stb_image.h \
/usr/include/c++/15.2.1/stdlib.h \
/home/Jordan/Projects/CPP/LearningVulkan/src/utilities/Logger.h \
/usr/include/c++/15.2.1/source_location

View File

@@ -101,205 +101,72 @@ CMakeFiles/LearningVulkan.dir/src/private/VulkanDeviceManager.cpp.o: \
/usr/include/c++/15.2.1/bits/erase_if.h /usr/include/c++/15.2.1/cstdint \
/usr/include/c++/15.2.1/set /usr/include/c++/15.2.1/bits/stl_set.h \
/usr/include/c++/15.2.1/bits/stl_multiset.h \
/home/Jordan/Projects/CPP/LearningVulkan/src/public/VulkanContext.h \
/home/Jordan/Projects/CPP/LearningVulkan/src/public/VulkanCommandBuffers.h \
/home/Jordan/Projects/CPP/LearningVulkan/src/public/VulkanVertexBuffer.h \
/home/Jordan/Projects/CPP/LearningVulkan/src/public/Primitives.h \
/usr/include/glm/glm.hpp /usr/include/glm/detail/_fixes.hpp \
/usr/include/c++/15.2.1/cmath /usr/include/math.h \
/usr/include/bits/math-vector.h /usr/include/bits/libm-simd-decl-stubs.h \
/usr/include/bits/floatn.h /usr/include/bits/floatn-common.h \
/usr/include/bits/flt-eval-method.h /usr/include/bits/fp-logb.h \
/usr/include/bits/fp-fast.h /usr/include/bits/mathcalls-macros.h \
/usr/include/bits/mathcalls-helper-functions.h \
/usr/include/bits/mathcalls.h /usr/include/bits/mathcalls-narrow.h \
/usr/include/bits/iscanonical.h /usr/include/c++/15.2.1/bits/std_abs.h \
/usr/include/stdlib.h /usr/include/bits/waitflags.h \
/usr/include/bits/waitstatus.h /usr/include/bits/types/locale_t.h \
/usr/include/bits/types/__locale_t.h /usr/include/sys/types.h \
/usr/include/bits/types/clock_t.h /usr/include/bits/types/clockid_t.h \
/usr/include/bits/types/time_t.h /usr/include/bits/types/timer_t.h \
/usr/include/endian.h /usr/include/bits/endian.h \
/usr/include/bits/endianness.h /usr/include/bits/byteswap.h \
/usr/include/bits/uintn-identity.h /usr/include/sys/select.h \
/usr/include/bits/select.h /usr/include/bits/types/sigset_t.h \
/usr/include/bits/types/__sigset_t.h \
/usr/include/bits/types/struct_timeval.h \
/usr/include/bits/types/struct_timespec.h \
/usr/include/bits/pthreadtypes.h /usr/include/bits/thread-shared-types.h \
/usr/include/bits/pthreadtypes-arch.h \
/usr/include/bits/atomic_wide_counter.h /usr/include/bits/struct_mutex.h \
/usr/include/bits/struct_rwlock.h /usr/include/alloca.h \
/usr/include/bits/stdlib-bsearch.h /usr/include/bits/stdlib-float.h \
/usr/include/c++/15.2.1/bits/specfun.h /usr/include/c++/15.2.1/limits \
/usr/include/c++/15.2.1/tr1/gamma.tcc \
/usr/include/c++/15.2.1/tr1/special_function_util.h \
/usr/include/c++/15.2.1/tr1/bessel_function.tcc \
/usr/include/c++/15.2.1/tr1/beta_function.tcc \
/usr/include/c++/15.2.1/tr1/ell_integral.tcc \
/usr/include/c++/15.2.1/tr1/exp_integral.tcc \
/usr/include/c++/15.2.1/tr1/hypergeometric.tcc \
/usr/include/c++/15.2.1/tr1/legendre_function.tcc \
/usr/include/c++/15.2.1/tr1/modified_bessel_func.tcc \
/usr/include/c++/15.2.1/tr1/poly_hermite.tcc \
/usr/include/c++/15.2.1/tr1/poly_laguerre.tcc \
/usr/include/c++/15.2.1/tr1/riemann_zeta.tcc \
/usr/include/glm/detail/setup.hpp /usr/include/c++/15.2.1/cassert \
/usr/include/assert.h /usr/include/glm/simd/platform.h \
/usr/include/c++/15.2.1/climits \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/limits.h \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/syslimits.h \
/usr/include/limits.h /usr/include/bits/posix1_lim.h \
/usr/include/bits/local_lim.h /usr/include/linux/limits.h \
/usr/include/bits/pthread_stack_min-dynamic.h \
/usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \
/usr/include/bits/uio_lim.h /usr/include/c++/15.2.1/cfloat \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/float.h \
/usr/include/glm/fwd.hpp /usr/include/glm/detail/qualifier.hpp \
/usr/include/glm/detail/setup.hpp /usr/include/glm/vec2.hpp \
/usr/include/glm/ext/vector_bool2.hpp \
/usr/include/glm/detail/type_vec2.hpp \
/usr/include/glm/detail/type_vec2.inl \
/usr/include/glm/detail/compute_vector_relational.hpp \
/usr/include/glm/ext/vector_bool2_precision.hpp \
/usr/include/glm/ext/vector_float2.hpp \
/usr/include/glm/ext/vector_float2_precision.hpp \
/usr/include/glm/ext/vector_double2.hpp \
/usr/include/glm/ext/vector_double2_precision.hpp \
/usr/include/glm/ext/vector_int2.hpp \
/usr/include/glm/ext/vector_int2_sized.hpp \
/usr/include/glm/ext/scalar_int_sized.hpp \
/usr/include/glm/detail/setup.hpp /usr/include/glm/ext/vector_uint2.hpp \
/usr/include/glm/ext/vector_uint2_sized.hpp \
/usr/include/glm/ext/scalar_uint_sized.hpp /usr/include/glm/vec3.hpp \
/usr/include/glm/ext/vector_bool3.hpp \
/usr/include/glm/detail/type_vec3.hpp \
/usr/include/glm/detail/type_vec3.inl \
/usr/include/glm/detail/compute_vector_decl.hpp \
/usr/include/c++/15.2.1/functional \
/usr/include/c++/15.2.1/bits/std_function.h \
/usr/include/c++/15.2.1/unordered_map \
/usr/include/c++/15.2.1/bits/unordered_map.h \
/usr/include/c++/15.2.1/bits/hashtable.h \
/usr/include/c++/15.2.1/bits/hashtable_policy.h \
/usr/include/c++/15.2.1/array /usr/include/glm/detail/_vectorize.hpp \
/usr/include/glm/ext/vector_bool3_precision.hpp \
/usr/include/glm/ext/vector_float3.hpp \
/usr/include/glm/ext/vector_float3_precision.hpp \
/usr/include/glm/ext/vector_double3.hpp \
/usr/include/glm/ext/vector_double3_precision.hpp \
/usr/include/glm/ext/vector_int3.hpp \
/usr/include/glm/ext/vector_int3_sized.hpp \
/usr/include/glm/ext/vector_uint3.hpp \
/usr/include/glm/ext/vector_uint3_sized.hpp /usr/include/glm/vec4.hpp \
/usr/include/glm/ext/vector_bool4.hpp \
/usr/include/glm/detail/type_vec4.hpp \
/usr/include/glm/detail/type_vec4.inl \
/usr/include/glm/ext/vector_bool4_precision.hpp \
/usr/include/glm/ext/vector_float4.hpp \
/usr/include/glm/ext/vector_float4_precision.hpp \
/usr/include/glm/ext/vector_double4.hpp \
/usr/include/glm/ext/vector_double4_precision.hpp \
/usr/include/glm/ext/vector_int4.hpp \
/usr/include/glm/ext/vector_int4_sized.hpp \
/usr/include/glm/ext/vector_uint4.hpp \
/usr/include/glm/ext/vector_uint4_sized.hpp /usr/include/glm/mat2x2.hpp \
/usr/include/glm/ext/matrix_double2x2.hpp \
/usr/include/glm/detail/type_mat2x2.hpp \
/usr/include/glm/detail/type_mat2x2.inl /usr/include/glm/matrix.hpp \
/usr/include/glm/mat2x3.hpp /usr/include/glm/ext/matrix_double2x3.hpp \
/usr/include/glm/detail/type_mat2x3.hpp \
/usr/include/glm/detail/type_mat2x3.inl \
/usr/include/glm/ext/matrix_double2x3_precision.hpp \
/usr/include/glm/ext/matrix_float2x3.hpp \
/usr/include/glm/ext/matrix_float2x3_precision.hpp \
/usr/include/glm/mat2x4.hpp /usr/include/glm/ext/matrix_double2x4.hpp \
/usr/include/glm/detail/type_mat2x4.hpp \
/usr/include/glm/detail/type_mat2x4.inl \
/usr/include/glm/ext/matrix_double2x4_precision.hpp \
/usr/include/glm/ext/matrix_float2x4.hpp \
/usr/include/glm/ext/matrix_float2x4_precision.hpp \
/usr/include/glm/mat3x2.hpp /usr/include/glm/ext/matrix_double3x2.hpp \
/usr/include/glm/detail/type_mat3x2.hpp \
/usr/include/glm/detail/type_mat3x2.inl \
/usr/include/glm/ext/matrix_double3x2_precision.hpp \
/usr/include/glm/ext/matrix_float3x2.hpp \
/usr/include/glm/ext/matrix_float3x2_precision.hpp \
/usr/include/glm/mat3x3.hpp /usr/include/glm/ext/matrix_double3x3.hpp \
/usr/include/glm/detail/type_mat3x3.hpp \
/usr/include/glm/detail/type_mat3x3.inl /usr/include/glm/common.hpp \
/usr/include/glm/detail/func_common.inl \
/usr/include/glm/vector_relational.hpp \
/usr/include/glm/detail/func_vector_relational.inl \
/usr/include/glm/detail/compute_common.hpp \
/usr/include/glm/detail/type_vec1.hpp \
/usr/include/glm/detail/type_vec1.inl \
/usr/include/glm/ext/matrix_double3x3_precision.hpp \
/usr/include/glm/ext/matrix_float3x3.hpp \
/usr/include/glm/ext/matrix_float3x3_precision.hpp \
/usr/include/glm/mat3x4.hpp /usr/include/glm/ext/matrix_double3x4.hpp \
/usr/include/glm/detail/type_mat3x4.hpp \
/usr/include/glm/detail/type_mat3x4.inl \
/usr/include/glm/ext/matrix_double3x4_precision.hpp \
/usr/include/glm/ext/matrix_float3x4.hpp \
/usr/include/glm/ext/matrix_float3x4_precision.hpp \
/usr/include/glm/mat4x2.hpp /usr/include/glm/ext/matrix_double4x2.hpp \
/usr/include/glm/detail/type_mat4x2.hpp \
/usr/include/glm/detail/type_mat4x2.inl \
/usr/include/glm/ext/matrix_double4x2_precision.hpp \
/usr/include/glm/ext/matrix_float4x2.hpp \
/usr/include/glm/ext/matrix_float4x2_precision.hpp \
/usr/include/glm/mat4x3.hpp /usr/include/glm/ext/matrix_double4x3.hpp \
/usr/include/glm/detail/type_mat4x3.hpp \
/usr/include/glm/detail/type_mat4x3.inl \
/usr/include/glm/ext/matrix_double4x3_precision.hpp \
/usr/include/glm/ext/matrix_float4x3.hpp \
/usr/include/glm/ext/matrix_float4x3_precision.hpp \
/usr/include/glm/mat4x4.hpp /usr/include/glm/ext/matrix_double4x4.hpp \
/usr/include/glm/detail/type_mat4x4.hpp \
/usr/include/glm/detail/type_mat4x4.inl /usr/include/glm/geometric.hpp \
/usr/include/glm/detail/func_geometric.inl \
/usr/include/glm/exponential.hpp \
/usr/include/glm/detail/func_exponential.inl \
/usr/include/glm/ext/matrix_double4x4_precision.hpp \
/usr/include/glm/ext/matrix_float4x4.hpp \
/usr/include/glm/ext/matrix_float4x4_precision.hpp \
/usr/include/glm/detail/func_matrix.inl \
/usr/include/glm/ext/matrix_double2x2_precision.hpp \
/usr/include/glm/ext/matrix_float2x2.hpp \
/usr/include/glm/ext/matrix_float2x2_precision.hpp \
/usr/include/glm/trigonometric.hpp \
/usr/include/glm/detail/func_trigonometric.inl \
/usr/include/glm/packing.hpp /usr/include/glm/detail/func_packing.inl \
/usr/include/glm/detail/type_half.hpp \
/usr/include/glm/detail/type_half.inl /usr/include/glm/integer.hpp \
/usr/include/glm/detail/func_integer.inl \
/home/Jordan/Projects/CPP/LearningVulkan/src/public/VulkanFramebuffers.h \
/home/Jordan/Projects/CPP/LearningVulkan/src/public/VulkanInstanceManager.h \
/home/Jordan/Projects/CPP/LearningVulkan/src/public/VulkanDebugManager.h \
/home/Jordan/Projects/CPP/LearningVulkan/src/public/VulkanPipeline.h \
/home/Jordan/Projects/CPP/LearningVulkan/src/public/VulkanRenderPass.h \
/home/Jordan/Projects/CPP/LearningVulkan/src/public/VulkanSwapChain.h \
/home/Jordan/Projects/CPP/LearningVulkan/src/utilities/Logger.h \
/usr/include/c++/15.2.1/string /usr/include/c++/15.2.1/bits/stringfwd.h \
/usr/include/c++/15.2.1/bits/char_traits.h \
/home/Jordan/Projects/CPP/LearningVulkan/src/public/VulkanContext.hpp \
/usr/include/c++/15.2.1/memory \
/usr/include/c++/15.2.1/bits/stl_tempbuf.h \
/usr/include/c++/15.2.1/bits/stl_raw_storage_iter.h \
/usr/include/c++/15.2.1/bits/align.h \
/usr/include/c++/15.2.1/bits/unique_ptr.h \
/usr/include/c++/15.2.1/bits/ostream.h /usr/include/c++/15.2.1/ios \
/usr/include/c++/15.2.1/iosfwd /usr/include/c++/15.2.1/bits/stringfwd.h \
/usr/include/c++/15.2.1/bits/postypes.h /usr/include/c++/15.2.1/cwchar \
/usr/include/wchar.h \
/usr/include/wchar.h /usr/include/bits/floatn.h \
/usr/include/bits/floatn-common.h \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdarg.h \
/usr/include/bits/types/wint_t.h /usr/include/bits/types/mbstate_t.h \
/usr/include/bits/types/__mbstate_t.h /usr/include/bits/types/__FILE.h \
/usr/include/bits/types/FILE.h /usr/include/c++/15.2.1/bits/localefwd.h \
/usr/include/bits/types/FILE.h /usr/include/bits/types/locale_t.h \
/usr/include/bits/types/__locale_t.h \
/usr/include/c++/15.2.1/bits/char_traits.h \
/usr/include/c++/15.2.1/bits/localefwd.h \
/usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/c++locale.h \
/usr/include/c++/15.2.1/clocale /usr/include/locale.h \
/usr/include/bits/locale.h /usr/include/c++/15.2.1/iosfwd \
/usr/include/c++/15.2.1/cctype /usr/include/ctype.h \
/usr/include/bits/locale.h /usr/include/c++/15.2.1/cctype \
/usr/include/ctype.h /usr/include/bits/endian.h \
/usr/include/bits/endianness.h /usr/include/c++/15.2.1/bits/ios_base.h \
/usr/include/c++/15.2.1/ext/atomicity.h \
/usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/gthr.h \
/usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/gthr-default.h \
/usr/include/pthread.h /usr/include/sched.h \
/usr/include/bits/types/time_t.h \
/usr/include/bits/types/struct_timespec.h /usr/include/bits/sched.h \
/usr/include/linux/sched/types.h /usr/include/linux/types.h \
/usr/include/asm/types.h /usr/include/asm-generic/types.h \
/usr/include/asm-generic/int-ll64.h /usr/include/asm/bitsperlong.h \
/usr/include/asm-generic/bitsperlong.h /usr/include/linux/posix_types.h \
/usr/include/linux/stddef.h /usr/include/asm/posix_types.h \
/usr/include/asm/posix_types_64.h /usr/include/asm-generic/posix_types.h \
/usr/include/bits/types/struct_sched_param.h /usr/include/bits/cpu-set.h \
/usr/include/time.h /usr/include/bits/time.h /usr/include/bits/timex.h \
/usr/include/bits/types/struct_timeval.h \
/usr/include/bits/types/clock_t.h /usr/include/bits/types/struct_tm.h \
/usr/include/bits/types/clockid_t.h /usr/include/bits/types/timer_t.h \
/usr/include/bits/types/struct_itimerspec.h \
/usr/include/bits/pthreadtypes.h /usr/include/bits/thread-shared-types.h \
/usr/include/bits/pthreadtypes-arch.h \
/usr/include/bits/atomic_wide_counter.h /usr/include/bits/struct_mutex.h \
/usr/include/bits/struct_rwlock.h /usr/include/bits/setjmp.h \
/usr/include/bits/types/__sigset_t.h \
/usr/include/bits/types/struct___jmp_buf_tag.h \
/usr/include/bits/pthread_stack_min-dynamic.h \
/usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/atomic_word.h \
/usr/include/sys/single_threaded.h \
/usr/include/c++/15.2.1/bits/locale_classes.h \
/usr/include/c++/15.2.1/string \
/usr/include/c++/15.2.1/bits/ostream_insert.h \
/usr/include/c++/15.2.1/bits/cxxabi_forced.h \
/usr/include/c++/15.2.1/bits/basic_string.h \
/usr/include/c++/15.2.1/string_view \
/usr/include/c++/15.2.1/bits/string_view.tcc \
/usr/include/c++/15.2.1/ext/string_conversions.h \
/usr/include/c++/15.2.1/cstdlib /usr/include/c++/15.2.1/cstdio \
/usr/include/c++/15.2.1/cstdlib /usr/include/stdlib.h \
/usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
/usr/include/sys/types.h /usr/include/endian.h \
/usr/include/bits/byteswap.h /usr/include/bits/uintn-identity.h \
/usr/include/sys/select.h /usr/include/bits/select.h \
/usr/include/bits/types/sigset_t.h /usr/include/alloca.h \
/usr/include/bits/stdlib-bsearch.h /usr/include/bits/stdlib-float.h \
/usr/include/c++/15.2.1/bits/std_abs.h /usr/include/c++/15.2.1/cstdio \
/usr/include/stdio.h /usr/include/bits/types/__fpos_t.h \
/usr/include/bits/types/__fpos64_t.h \
/usr/include/bits/types/struct_FILE.h \
@@ -311,40 +178,51 @@ CMakeFiles/LearningVulkan.dir/src/private/VulkanDeviceManager.cpp.o: \
/usr/include/asm-generic/errno-base.h /usr/include/bits/types/error_t.h \
/usr/include/c++/15.2.1/bits/charconv.h \
/usr/include/c++/15.2.1/bits/basic_string.tcc \
/usr/include/c++/15.2.1/source_location /usr/include/c++/15.2.1/format \
/usr/include/c++/15.2.1/charconv \
/usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/error_constants.h \
/usr/include/c++/15.2.1/locale \
/usr/include/c++/15.2.1/bits/locale_classes.h \
/usr/include/c++/15.2.1/ext/atomicity.h \
/usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/gthr.h \
/usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/gthr-default.h \
/usr/include/pthread.h /usr/include/sched.h /usr/include/bits/sched.h \
/usr/include/linux/sched/types.h /usr/include/linux/types.h \
/usr/include/asm/types.h /usr/include/asm-generic/types.h \
/usr/include/asm-generic/int-ll64.h /usr/include/asm/bitsperlong.h \
/usr/include/asm-generic/bitsperlong.h /usr/include/linux/posix_types.h \
/usr/include/linux/stddef.h /usr/include/asm/posix_types.h \
/usr/include/asm/posix_types_64.h /usr/include/asm-generic/posix_types.h \
/usr/include/bits/types/struct_sched_param.h /usr/include/bits/cpu-set.h \
/usr/include/time.h /usr/include/bits/time.h /usr/include/bits/timex.h \
/usr/include/bits/types/struct_tm.h \
/usr/include/bits/types/struct_itimerspec.h /usr/include/bits/setjmp.h \
/usr/include/bits/types/struct___jmp_buf_tag.h \
/usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/atomic_word.h \
/usr/include/sys/single_threaded.h \
/usr/include/c++/15.2.1/bits/locale_classes.tcc \
/usr/include/c++/15.2.1/system_error \
/usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/error_constants.h \
/usr/include/c++/15.2.1/stdexcept /usr/include/c++/15.2.1/streambuf \
/usr/include/c++/15.2.1/bits/streambuf.tcc \
/usr/include/c++/15.2.1/bits/basic_ios.h \
/usr/include/c++/15.2.1/bits/locale_facets.h \
/usr/include/c++/15.2.1/cwctype /usr/include/wctype.h \
/usr/include/bits/wctype-wchar.h \
/usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/ctype_base.h \
/usr/include/c++/15.2.1/bits/ios_base.h \
/usr/include/c++/15.2.1/system_error /usr/include/c++/15.2.1/stdexcept \
/usr/include/c++/15.2.1/streambuf \
/usr/include/c++/15.2.1/bits/streambuf.tcc \
/usr/include/c++/15.2.1/bits/streambuf_iterator.h \
/usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/ctype_inline.h \
/usr/include/c++/15.2.1/bits/locale_facets.tcc \
/usr/include/c++/15.2.1/bits/basic_ios.tcc \
/usr/include/c++/15.2.1/bits/shared_ptr.h \
/usr/include/c++/15.2.1/bits/shared_ptr_base.h \
/usr/include/c++/15.2.1/bits/allocated_ptr.h \
/usr/include/c++/15.2.1/ext/concurrence.h \
/usr/include/c++/15.2.1/bits/shared_ptr_atomic.h \
/usr/include/c++/15.2.1/bits/atomic_base.h \
/usr/include/c++/15.2.1/bits/atomic_lockfree_defines.h \
/usr/include/c++/15.2.1/bits/atomic_wait.h \
/usr/include/c++/15.2.1/climits \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/limits.h \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/syslimits.h \
/usr/include/limits.h /usr/include/bits/posix1_lim.h \
/usr/include/bits/local_lim.h /usr/include/linux/limits.h \
/usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \
/usr/include/bits/uio_lim.h /usr/include/unistd.h \
/usr/include/bits/posix_opt.h /usr/include/bits/environments.h \
/usr/include/bits/confname.h /usr/include/bits/getopt_posix.h \
/usr/include/bits/getopt_core.h /usr/include/bits/unistd_ext.h \
/usr/include/linux/close_range.h /usr/include/syscall.h \
/usr/include/sys/syscall.h /usr/include/asm/unistd.h \
/usr/include/asm/unistd_64.h /usr/include/bits/syscall.h \
/usr/include/c++/15.2.1/bits/std_mutex.h \
/usr/include/c++/15.2.1/backward/auto_ptr.h \
/usr/include/c++/15.2.1/bits/ranges_uninitialized.h \
/usr/include/c++/15.2.1/bits/ranges_algobase.h \
/usr/include/c++/15.2.1/pstl/glue_memory_defs.h \
/usr/include/c++/15.2.1/pstl/execution_defs.h \
/home/Jordan/Projects/CPP/LearningVulkan/src/utilities/Logger.h \
/usr/include/c++/15.2.1/source_location /usr/include/c++/15.2.1/format \
/usr/include/c++/15.2.1/array /usr/include/c++/15.2.1/charconv \
/usr/include/c++/15.2.1/limits /usr/include/c++/15.2.1/locale \
/usr/include/c++/15.2.1/bits/locale_facets_nonio.h \
/usr/include/c++/15.2.1/ctime \
/usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/time_members.h \
@@ -354,11 +232,9 @@ CMakeFiles/LearningVulkan.dir/src/private/VulkanDeviceManager.cpp.o: \
/usr/include/c++/15.2.1/bits/locale_conv.h /usr/include/c++/15.2.1/span \
/usr/include/c++/15.2.1/bits/monostate.h \
/usr/include/c++/15.2.1/bits/formatfwd.h \
/usr/include/c++/15.2.1/bits/ranges_algobase.h \
/usr/include/c++/15.2.1/bits/unicode.h \
/usr/include/c++/15.2.1/bits/stl_algo.h \
/usr/include/c++/15.2.1/bits/algorithmfwd.h \
/usr/include/c++/15.2.1/bits/stl_heap.h \
/usr/include/c++/15.2.1/bits/uniform_int_dist.h \
/usr/include/c++/15.2.1/bits/stl_tempbuf.h \
/usr/include/c++/15.2.1/bits/unicode-data.h

View File

@@ -1,7 +1,7 @@
CMakeFiles/LearningVulkan.dir/src/private/VulkanInstanceManager.cpp.o: \
/home/Jordan/Projects/CPP/LearningVulkan/src/private/VulkanInstanceManager.cpp \
/usr/include/stdc-predef.h \
/home/Jordan/Projects/CPP/LearningVulkan/src/public/VulkanInstanceManager.h \
/home/Jordan/Projects/CPP/LearningVulkan/src/public/VulkanInstanceManager.hpp \
/usr/include/c++/15.2.1/vector \
/usr/include/c++/15.2.1/bits/requires_hosted.h \
/usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/c++config.h \
@@ -89,213 +89,76 @@ CMakeFiles/LearningVulkan.dir/src/private/VulkanInstanceManager.cpp.o: \
/usr/include/vk_video/vulkan_video_codec_vp9std.h /usr/include/GL/gl.h \
/usr/include/GL/glext.h /usr/include/KHR/khrplatform.h \
/home/Jordan/Projects/CPP/LearningVulkan/src/public/VulkanDebugManager.h \
/home/Jordan/Projects/CPP/LearningVulkan/src/public/VulkanContext.h \
/home/Jordan/Projects/CPP/LearningVulkan/src/public/VulkanCommandBuffers.h \
/home/Jordan/Projects/CPP/LearningVulkan/src/public/VulkanVertexBuffer.h \
/home/Jordan/Projects/CPP/LearningVulkan/src/public/Primitives.h \
/usr/include/glm/glm.hpp /usr/include/glm/detail/_fixes.hpp \
/usr/include/c++/15.2.1/cmath /usr/include/math.h \
/usr/include/bits/math-vector.h /usr/include/bits/libm-simd-decl-stubs.h \
/usr/include/bits/floatn.h /usr/include/bits/floatn-common.h \
/usr/include/bits/flt-eval-method.h /usr/include/bits/fp-logb.h \
/usr/include/bits/fp-fast.h /usr/include/bits/mathcalls-macros.h \
/usr/include/bits/mathcalls-helper-functions.h \
/usr/include/bits/mathcalls.h /usr/include/bits/mathcalls-narrow.h \
/usr/include/bits/iscanonical.h /usr/include/c++/15.2.1/bits/std_abs.h \
/usr/include/stdlib.h /usr/include/bits/waitflags.h \
/usr/include/bits/waitstatus.h /usr/include/bits/types/locale_t.h \
/usr/include/bits/types/__locale_t.h /usr/include/sys/types.h \
/usr/include/bits/types/clock_t.h /usr/include/bits/types/clockid_t.h \
/usr/include/bits/types/time_t.h /usr/include/bits/types/timer_t.h \
/usr/include/endian.h /usr/include/bits/endian.h \
/usr/include/bits/endianness.h /usr/include/bits/byteswap.h \
/usr/include/bits/uintn-identity.h /usr/include/sys/select.h \
/usr/include/bits/select.h /usr/include/bits/types/sigset_t.h \
/usr/include/bits/types/__sigset_t.h \
/usr/include/bits/types/struct_timeval.h \
/usr/include/bits/types/struct_timespec.h \
/usr/include/bits/pthreadtypes.h /usr/include/bits/thread-shared-types.h \
/usr/include/bits/pthreadtypes-arch.h \
/usr/include/bits/atomic_wide_counter.h /usr/include/bits/struct_mutex.h \
/usr/include/bits/struct_rwlock.h /usr/include/alloca.h \
/usr/include/bits/stdlib-bsearch.h /usr/include/bits/stdlib-float.h \
/usr/include/c++/15.2.1/bits/specfun.h /usr/include/c++/15.2.1/limits \
/usr/include/c++/15.2.1/tr1/gamma.tcc \
/usr/include/c++/15.2.1/tr1/special_function_util.h \
/usr/include/c++/15.2.1/tr1/bessel_function.tcc \
/usr/include/c++/15.2.1/tr1/beta_function.tcc \
/usr/include/c++/15.2.1/tr1/ell_integral.tcc \
/usr/include/c++/15.2.1/tr1/exp_integral.tcc \
/usr/include/c++/15.2.1/tr1/hypergeometric.tcc \
/usr/include/c++/15.2.1/tr1/legendre_function.tcc \
/usr/include/c++/15.2.1/tr1/modified_bessel_func.tcc \
/usr/include/c++/15.2.1/tr1/poly_hermite.tcc \
/usr/include/c++/15.2.1/tr1/poly_laguerre.tcc \
/usr/include/c++/15.2.1/tr1/riemann_zeta.tcc \
/usr/include/glm/detail/setup.hpp /usr/include/c++/15.2.1/cassert \
/usr/include/assert.h /usr/include/glm/simd/platform.h \
/usr/include/c++/15.2.1/cstdint /usr/include/c++/15.2.1/climits \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/limits.h \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/syslimits.h \
/usr/include/limits.h /usr/include/bits/posix1_lim.h \
/usr/include/bits/local_lim.h /usr/include/linux/limits.h \
/usr/include/bits/pthread_stack_min-dynamic.h \
/usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \
/usr/include/bits/uio_lim.h /usr/include/c++/15.2.1/cfloat \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/float.h \
/usr/include/glm/fwd.hpp /usr/include/glm/detail/qualifier.hpp \
/usr/include/glm/detail/setup.hpp /usr/include/glm/vec2.hpp \
/usr/include/glm/ext/vector_bool2.hpp \
/usr/include/glm/detail/type_vec2.hpp \
/usr/include/glm/detail/type_vec2.inl \
/usr/include/glm/detail/compute_vector_relational.hpp \
/usr/include/glm/ext/vector_bool2_precision.hpp \
/usr/include/glm/ext/vector_float2.hpp \
/usr/include/glm/ext/vector_float2_precision.hpp \
/usr/include/glm/ext/vector_double2.hpp \
/usr/include/glm/ext/vector_double2_precision.hpp \
/usr/include/glm/ext/vector_int2.hpp \
/usr/include/glm/ext/vector_int2_sized.hpp \
/usr/include/glm/ext/scalar_int_sized.hpp \
/usr/include/glm/detail/setup.hpp /usr/include/glm/ext/vector_uint2.hpp \
/usr/include/glm/ext/vector_uint2_sized.hpp \
/usr/include/glm/ext/scalar_uint_sized.hpp /usr/include/glm/vec3.hpp \
/usr/include/glm/ext/vector_bool3.hpp \
/usr/include/glm/detail/type_vec3.hpp \
/usr/include/glm/detail/type_vec3.inl \
/usr/include/glm/detail/compute_vector_decl.hpp \
/usr/include/c++/15.2.1/functional \
/usr/include/c++/15.2.1/bits/std_function.h \
/usr/include/c++/15.2.1/typeinfo /usr/include/c++/15.2.1/unordered_map \
/usr/include/c++/15.2.1/bits/unordered_map.h \
/usr/include/c++/15.2.1/bits/hashtable.h \
/usr/include/c++/15.2.1/bits/hashtable_policy.h \
/usr/include/c++/15.2.1/ext/aligned_buffer.h \
/usr/include/c++/15.2.1/bits/enable_special_members.h \
/usr/include/c++/15.2.1/bits/node_handle.h \
/usr/include/c++/15.2.1/bits/erase_if.h /usr/include/c++/15.2.1/array \
/usr/include/glm/detail/_vectorize.hpp \
/usr/include/glm/ext/vector_bool3_precision.hpp \
/usr/include/glm/ext/vector_float3.hpp \
/usr/include/glm/ext/vector_float3_precision.hpp \
/usr/include/glm/ext/vector_double3.hpp \
/usr/include/glm/ext/vector_double3_precision.hpp \
/usr/include/glm/ext/vector_int3.hpp \
/usr/include/glm/ext/vector_int3_sized.hpp \
/usr/include/glm/ext/vector_uint3.hpp \
/usr/include/glm/ext/vector_uint3_sized.hpp /usr/include/glm/vec4.hpp \
/usr/include/glm/ext/vector_bool4.hpp \
/usr/include/glm/detail/type_vec4.hpp \
/usr/include/glm/detail/type_vec4.inl \
/usr/include/glm/ext/vector_bool4_precision.hpp \
/usr/include/glm/ext/vector_float4.hpp \
/usr/include/glm/ext/vector_float4_precision.hpp \
/usr/include/glm/ext/vector_double4.hpp \
/usr/include/glm/ext/vector_double4_precision.hpp \
/usr/include/glm/ext/vector_int4.hpp \
/usr/include/glm/ext/vector_int4_sized.hpp \
/usr/include/glm/ext/vector_uint4.hpp \
/usr/include/glm/ext/vector_uint4_sized.hpp /usr/include/glm/mat2x2.hpp \
/usr/include/glm/ext/matrix_double2x2.hpp \
/usr/include/glm/detail/type_mat2x2.hpp \
/usr/include/glm/detail/type_mat2x2.inl /usr/include/glm/matrix.hpp \
/usr/include/glm/mat2x3.hpp /usr/include/glm/ext/matrix_double2x3.hpp \
/usr/include/glm/detail/type_mat2x3.hpp \
/usr/include/glm/detail/type_mat2x3.inl \
/usr/include/glm/ext/matrix_double2x3_precision.hpp \
/usr/include/glm/ext/matrix_float2x3.hpp \
/usr/include/glm/ext/matrix_float2x3_precision.hpp \
/usr/include/glm/mat2x4.hpp /usr/include/glm/ext/matrix_double2x4.hpp \
/usr/include/glm/detail/type_mat2x4.hpp \
/usr/include/glm/detail/type_mat2x4.inl \
/usr/include/glm/ext/matrix_double2x4_precision.hpp \
/usr/include/glm/ext/matrix_float2x4.hpp \
/usr/include/glm/ext/matrix_float2x4_precision.hpp \
/usr/include/glm/mat3x2.hpp /usr/include/glm/ext/matrix_double3x2.hpp \
/usr/include/glm/detail/type_mat3x2.hpp \
/usr/include/glm/detail/type_mat3x2.inl \
/usr/include/glm/ext/matrix_double3x2_precision.hpp \
/usr/include/glm/ext/matrix_float3x2.hpp \
/usr/include/glm/ext/matrix_float3x2_precision.hpp \
/usr/include/glm/mat3x3.hpp /usr/include/glm/ext/matrix_double3x3.hpp \
/usr/include/glm/detail/type_mat3x3.hpp \
/usr/include/glm/detail/type_mat3x3.inl /usr/include/glm/common.hpp \
/usr/include/glm/detail/func_common.inl \
/usr/include/glm/vector_relational.hpp \
/usr/include/glm/detail/func_vector_relational.inl \
/usr/include/glm/detail/compute_common.hpp \
/usr/include/glm/detail/type_vec1.hpp \
/usr/include/glm/detail/type_vec1.inl \
/usr/include/glm/ext/matrix_double3x3_precision.hpp \
/usr/include/glm/ext/matrix_float3x3.hpp \
/usr/include/glm/ext/matrix_float3x3_precision.hpp \
/usr/include/glm/mat3x4.hpp /usr/include/glm/ext/matrix_double3x4.hpp \
/usr/include/glm/detail/type_mat3x4.hpp \
/usr/include/glm/detail/type_mat3x4.inl \
/usr/include/glm/ext/matrix_double3x4_precision.hpp \
/usr/include/glm/ext/matrix_float3x4.hpp \
/usr/include/glm/ext/matrix_float3x4_precision.hpp \
/usr/include/glm/mat4x2.hpp /usr/include/glm/ext/matrix_double4x2.hpp \
/usr/include/glm/detail/type_mat4x2.hpp \
/usr/include/glm/detail/type_mat4x2.inl \
/usr/include/glm/ext/matrix_double4x2_precision.hpp \
/usr/include/glm/ext/matrix_float4x2.hpp \
/usr/include/glm/ext/matrix_float4x2_precision.hpp \
/usr/include/glm/mat4x3.hpp /usr/include/glm/ext/matrix_double4x3.hpp \
/usr/include/glm/detail/type_mat4x3.hpp \
/usr/include/glm/detail/type_mat4x3.inl \
/usr/include/glm/ext/matrix_double4x3_precision.hpp \
/usr/include/glm/ext/matrix_float4x3.hpp \
/usr/include/glm/ext/matrix_float4x3_precision.hpp \
/usr/include/glm/mat4x4.hpp /usr/include/glm/ext/matrix_double4x4.hpp \
/usr/include/glm/detail/type_mat4x4.hpp \
/usr/include/glm/detail/type_mat4x4.inl /usr/include/glm/geometric.hpp \
/usr/include/glm/detail/func_geometric.inl \
/usr/include/glm/exponential.hpp \
/usr/include/glm/detail/func_exponential.inl \
/usr/include/glm/ext/matrix_double4x4_precision.hpp \
/usr/include/glm/ext/matrix_float4x4.hpp \
/usr/include/glm/ext/matrix_float4x4_precision.hpp \
/usr/include/glm/detail/func_matrix.inl \
/usr/include/glm/ext/matrix_double2x2_precision.hpp \
/usr/include/glm/ext/matrix_float2x2.hpp \
/usr/include/glm/ext/matrix_float2x2_precision.hpp \
/usr/include/glm/trigonometric.hpp \
/usr/include/glm/detail/func_trigonometric.inl \
/usr/include/glm/packing.hpp /usr/include/glm/detail/func_packing.inl \
/usr/include/glm/detail/type_half.hpp \
/usr/include/glm/detail/type_half.inl /usr/include/glm/integer.hpp \
/usr/include/glm/detail/func_integer.inl \
/usr/include/vulkan/vulkan_core.h /usr/include/c++/15.2.1/optional \
/usr/include/c++/15.2.1/exception \
/usr/include/c++/15.2.1/bits/exception_ptr.h \
/usr/include/c++/15.2.1/bits/cxxabi_init_exception.h \
/usr/include/c++/15.2.1/bits/nested_exception.h \
/home/Jordan/Projects/CPP/LearningVulkan/src/public/VulkanFramebuffers.h \
/home/Jordan/Projects/CPP/LearningVulkan/src/public/VulkanDeviceManager.h \
/home/Jordan/Projects/CPP/LearningVulkan/src/public/VulkanPipeline.h \
/home/Jordan/Projects/CPP/LearningVulkan/src/public/VulkanRenderPass.h \
/home/Jordan/Projects/CPP/LearningVulkan/src/public/VulkanSwapChain.h \
/home/Jordan/Projects/CPP/LearningVulkan/src/utilities/Logger.h \
/usr/include/c++/15.2.1/string /usr/include/c++/15.2.1/bits/stringfwd.h \
/usr/include/c++/15.2.1/bits/char_traits.h \
/home/Jordan/Projects/CPP/LearningVulkan/src/public/VulkanContext.hpp \
/usr/include/c++/15.2.1/cstdint /usr/include/c++/15.2.1/memory \
/usr/include/c++/15.2.1/bits/stl_tempbuf.h \
/usr/include/c++/15.2.1/bits/stl_raw_storage_iter.h \
/usr/include/c++/15.2.1/bits/align.h \
/usr/include/c++/15.2.1/bits/unique_ptr.h \
/usr/include/c++/15.2.1/bits/ostream.h /usr/include/c++/15.2.1/ios \
/usr/include/c++/15.2.1/iosfwd /usr/include/c++/15.2.1/bits/stringfwd.h \
/usr/include/c++/15.2.1/bits/postypes.h /usr/include/c++/15.2.1/cwchar \
/usr/include/wchar.h \
/usr/include/wchar.h /usr/include/bits/floatn.h \
/usr/include/bits/floatn-common.h \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdarg.h \
/usr/include/bits/types/wint_t.h /usr/include/bits/types/mbstate_t.h \
/usr/include/bits/types/__mbstate_t.h /usr/include/bits/types/__FILE.h \
/usr/include/bits/types/FILE.h /usr/include/c++/15.2.1/bits/localefwd.h \
/usr/include/bits/types/FILE.h /usr/include/bits/types/locale_t.h \
/usr/include/bits/types/__locale_t.h /usr/include/c++/15.2.1/exception \
/usr/include/c++/15.2.1/bits/exception_ptr.h \
/usr/include/c++/15.2.1/bits/cxxabi_init_exception.h \
/usr/include/c++/15.2.1/typeinfo \
/usr/include/c++/15.2.1/bits/nested_exception.h \
/usr/include/c++/15.2.1/bits/char_traits.h \
/usr/include/c++/15.2.1/bits/localefwd.h \
/usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/c++locale.h \
/usr/include/c++/15.2.1/clocale /usr/include/locale.h \
/usr/include/bits/locale.h /usr/include/c++/15.2.1/iosfwd \
/usr/include/c++/15.2.1/cctype /usr/include/ctype.h \
/usr/include/bits/locale.h /usr/include/c++/15.2.1/cctype \
/usr/include/ctype.h /usr/include/bits/endian.h \
/usr/include/bits/endianness.h /usr/include/c++/15.2.1/bits/ios_base.h \
/usr/include/c++/15.2.1/ext/atomicity.h \
/usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/gthr.h \
/usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/gthr-default.h \
/usr/include/pthread.h /usr/include/sched.h \
/usr/include/bits/types/time_t.h \
/usr/include/bits/types/struct_timespec.h /usr/include/bits/sched.h \
/usr/include/linux/sched/types.h /usr/include/linux/types.h \
/usr/include/asm/types.h /usr/include/asm-generic/types.h \
/usr/include/asm-generic/int-ll64.h /usr/include/asm/bitsperlong.h \
/usr/include/asm-generic/bitsperlong.h /usr/include/linux/posix_types.h \
/usr/include/linux/stddef.h /usr/include/asm/posix_types.h \
/usr/include/asm/posix_types_64.h /usr/include/asm-generic/posix_types.h \
/usr/include/bits/types/struct_sched_param.h /usr/include/bits/cpu-set.h \
/usr/include/time.h /usr/include/bits/time.h /usr/include/bits/timex.h \
/usr/include/bits/types/struct_timeval.h \
/usr/include/bits/types/clock_t.h /usr/include/bits/types/struct_tm.h \
/usr/include/bits/types/clockid_t.h /usr/include/bits/types/timer_t.h \
/usr/include/bits/types/struct_itimerspec.h \
/usr/include/bits/pthreadtypes.h /usr/include/bits/thread-shared-types.h \
/usr/include/bits/pthreadtypes-arch.h \
/usr/include/bits/atomic_wide_counter.h /usr/include/bits/struct_mutex.h \
/usr/include/bits/struct_rwlock.h /usr/include/bits/setjmp.h \
/usr/include/bits/types/__sigset_t.h \
/usr/include/bits/types/struct___jmp_buf_tag.h \
/usr/include/bits/pthread_stack_min-dynamic.h \
/usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/atomic_word.h \
/usr/include/sys/single_threaded.h \
/usr/include/c++/15.2.1/bits/locale_classes.h \
/usr/include/c++/15.2.1/string \
/usr/include/c++/15.2.1/bits/ostream_insert.h \
/usr/include/c++/15.2.1/bits/cxxabi_forced.h \
/usr/include/c++/15.2.1/bits/basic_string.h \
/usr/include/c++/15.2.1/string_view \
/usr/include/c++/15.2.1/bits/string_view.tcc \
/usr/include/c++/15.2.1/ext/string_conversions.h \
/usr/include/c++/15.2.1/cstdlib /usr/include/c++/15.2.1/cstdio \
/usr/include/c++/15.2.1/cstdlib /usr/include/stdlib.h \
/usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
/usr/include/sys/types.h /usr/include/endian.h \
/usr/include/bits/byteswap.h /usr/include/bits/uintn-identity.h \
/usr/include/sys/select.h /usr/include/bits/select.h \
/usr/include/bits/types/sigset_t.h /usr/include/alloca.h \
/usr/include/bits/stdlib-bsearch.h /usr/include/bits/stdlib-float.h \
/usr/include/c++/15.2.1/bits/std_abs.h /usr/include/c++/15.2.1/cstdio \
/usr/include/stdio.h /usr/include/bits/types/__fpos_t.h \
/usr/include/bits/types/__fpos64_t.h \
/usr/include/bits/types/struct_FILE.h \
@@ -307,56 +170,69 @@ CMakeFiles/LearningVulkan.dir/src/private/VulkanInstanceManager.cpp.o: \
/usr/include/asm-generic/errno-base.h /usr/include/bits/types/error_t.h \
/usr/include/c++/15.2.1/bits/charconv.h \
/usr/include/c++/15.2.1/bits/basic_string.tcc \
/usr/include/c++/15.2.1/source_location /usr/include/c++/15.2.1/format \
/usr/include/c++/15.2.1/charconv \
/usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/error_constants.h \
/usr/include/c++/15.2.1/locale \
/usr/include/c++/15.2.1/bits/locale_classes.h \
/usr/include/c++/15.2.1/ext/atomicity.h \
/usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/gthr.h \
/usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/gthr-default.h \
/usr/include/pthread.h /usr/include/sched.h /usr/include/bits/sched.h \
/usr/include/linux/sched/types.h /usr/include/linux/types.h \
/usr/include/asm/types.h /usr/include/asm-generic/types.h \
/usr/include/asm-generic/int-ll64.h /usr/include/asm/bitsperlong.h \
/usr/include/asm-generic/bitsperlong.h /usr/include/linux/posix_types.h \
/usr/include/linux/stddef.h /usr/include/asm/posix_types.h \
/usr/include/asm/posix_types_64.h /usr/include/asm-generic/posix_types.h \
/usr/include/bits/types/struct_sched_param.h /usr/include/bits/cpu-set.h \
/usr/include/time.h /usr/include/bits/time.h /usr/include/bits/timex.h \
/usr/include/bits/types/struct_tm.h \
/usr/include/bits/types/struct_itimerspec.h /usr/include/bits/setjmp.h \
/usr/include/bits/types/struct___jmp_buf_tag.h \
/usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/atomic_word.h \
/usr/include/sys/single_threaded.h \
/usr/include/c++/15.2.1/bits/locale_classes.tcc \
/usr/include/c++/15.2.1/system_error \
/usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/error_constants.h \
/usr/include/c++/15.2.1/stdexcept /usr/include/c++/15.2.1/streambuf \
/usr/include/c++/15.2.1/bits/streambuf.tcc \
/usr/include/c++/15.2.1/bits/basic_ios.h \
/usr/include/c++/15.2.1/bits/locale_facets.h \
/usr/include/c++/15.2.1/cwctype /usr/include/wctype.h \
/usr/include/bits/wctype-wchar.h \
/usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/ctype_base.h \
/usr/include/c++/15.2.1/bits/ios_base.h \
/usr/include/c++/15.2.1/system_error /usr/include/c++/15.2.1/stdexcept \
/usr/include/c++/15.2.1/streambuf \
/usr/include/c++/15.2.1/bits/streambuf.tcc \
/usr/include/c++/15.2.1/bits/streambuf_iterator.h \
/usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/ctype_inline.h \
/usr/include/c++/15.2.1/bits/locale_facets.tcc \
/usr/include/c++/15.2.1/bits/basic_ios.tcc \
/usr/include/c++/15.2.1/bits/shared_ptr.h \
/usr/include/c++/15.2.1/bits/shared_ptr_base.h \
/usr/include/c++/15.2.1/bits/allocated_ptr.h \
/usr/include/c++/15.2.1/ext/aligned_buffer.h \
/usr/include/c++/15.2.1/ext/concurrence.h \
/usr/include/c++/15.2.1/bits/shared_ptr_atomic.h \
/usr/include/c++/15.2.1/bits/atomic_base.h \
/usr/include/c++/15.2.1/bits/atomic_lockfree_defines.h \
/usr/include/c++/15.2.1/bits/atomic_wait.h \
/usr/include/c++/15.2.1/climits \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/limits.h \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/syslimits.h \
/usr/include/limits.h /usr/include/bits/posix1_lim.h \
/usr/include/bits/local_lim.h /usr/include/linux/limits.h \
/usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \
/usr/include/bits/uio_lim.h /usr/include/unistd.h \
/usr/include/bits/posix_opt.h /usr/include/bits/environments.h \
/usr/include/bits/confname.h /usr/include/bits/getopt_posix.h \
/usr/include/bits/getopt_core.h /usr/include/bits/unistd_ext.h \
/usr/include/linux/close_range.h /usr/include/syscall.h \
/usr/include/sys/syscall.h /usr/include/asm/unistd.h \
/usr/include/asm/unistd_64.h /usr/include/bits/syscall.h \
/usr/include/c++/15.2.1/bits/std_mutex.h \
/usr/include/c++/15.2.1/backward/auto_ptr.h \
/usr/include/c++/15.2.1/bits/ranges_uninitialized.h \
/usr/include/c++/15.2.1/bits/ranges_algobase.h \
/usr/include/c++/15.2.1/pstl/glue_memory_defs.h \
/usr/include/c++/15.2.1/pstl/execution_defs.h \
/usr/include/vulkan/vulkan_core.h \
/home/Jordan/Projects/CPP/LearningVulkan/src/utilities/Logger.h \
/usr/include/c++/15.2.1/source_location /usr/include/c++/15.2.1/format \
/usr/include/c++/15.2.1/array /usr/include/c++/15.2.1/charconv \
/usr/include/c++/15.2.1/limits /usr/include/c++/15.2.1/locale \
/usr/include/c++/15.2.1/bits/locale_facets_nonio.h \
/usr/include/c++/15.2.1/ctime \
/usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/time_members.h \
/usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/messages_members.h \
/usr/include/libintl.h /usr/include/c++/15.2.1/bits/codecvt.h \
/usr/include/c++/15.2.1/bits/locale_facets_nonio.tcc \
/usr/include/c++/15.2.1/bits/locale_conv.h /usr/include/c++/15.2.1/span \
/usr/include/c++/15.2.1/bits/monostate.h \
/usr/include/c++/15.2.1/bits/locale_conv.h \
/usr/include/c++/15.2.1/optional \
/usr/include/c++/15.2.1/bits/enable_special_members.h \
/usr/include/c++/15.2.1/span /usr/include/c++/15.2.1/bits/monostate.h \
/usr/include/c++/15.2.1/bits/formatfwd.h \
/usr/include/c++/15.2.1/bits/ranges_algobase.h \
/usr/include/c++/15.2.1/bits/unicode.h \
/usr/include/c++/15.2.1/bits/stl_algo.h \
/usr/include/c++/15.2.1/bits/algorithmfwd.h \
/usr/include/c++/15.2.1/bits/stl_heap.h \
/usr/include/c++/15.2.1/bits/uniform_int_dist.h \
/usr/include/c++/15.2.1/bits/stl_tempbuf.h \
/usr/include/c++/15.2.1/bits/unicode-data.h \
/usr/include/c++/15.2.1/cstring /usr/include/string.h \
/usr/include/strings.h

View File

@@ -210,7 +210,10 @@ CMakeFiles/LearningVulkan.dir/src/private/VulkanPipeline.cpp.o: \
/usr/include/c++/15.2.1/bits/uniform_int_dist.h \
/usr/include/c++/15.2.1/bits/stl_tempbuf.h \
/usr/include/c++/15.2.1/bits/unicode-data.h \
/home/Jordan/Projects/CPP/LearningVulkan/src/public/Primitives.h \
/home/Jordan/Projects/CPP/LearningVulkan/src/utilities/Primitives.h \
/usr/include/glm/fwd.hpp /usr/include/glm/detail/qualifier.hpp \
/usr/include/glm/detail/setup.hpp /usr/include/c++/15.2.1/cassert \
/usr/include/assert.h /usr/include/glm/simd/platform.h \
/usr/include/glm/glm.hpp /usr/include/glm/detail/_fixes.hpp \
/usr/include/c++/15.2.1/cmath /usr/include/math.h \
/usr/include/bits/math-vector.h /usr/include/bits/libm-simd-decl-stubs.h \
@@ -231,9 +234,7 @@ CMakeFiles/LearningVulkan.dir/src/private/VulkanPipeline.cpp.o: \
/usr/include/c++/15.2.1/tr1/poly_hermite.tcc \
/usr/include/c++/15.2.1/tr1/poly_laguerre.tcc \
/usr/include/c++/15.2.1/tr1/riemann_zeta.tcc \
/usr/include/glm/detail/setup.hpp /usr/include/c++/15.2.1/cassert \
/usr/include/assert.h /usr/include/glm/simd/platform.h \
/usr/include/c++/15.2.1/climits \
/usr/include/glm/detail/setup.hpp /usr/include/c++/15.2.1/climits \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/limits.h \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/syslimits.h \
/usr/include/limits.h /usr/include/bits/posix1_lim.h \
@@ -241,9 +242,7 @@ CMakeFiles/LearningVulkan.dir/src/private/VulkanPipeline.cpp.o: \
/usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \
/usr/include/bits/uio_lim.h /usr/include/c++/15.2.1/cfloat \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/float.h \
/usr/include/glm/fwd.hpp /usr/include/glm/detail/qualifier.hpp \
/usr/include/glm/detail/setup.hpp /usr/include/glm/vec2.hpp \
/usr/include/glm/ext/vector_bool2.hpp \
/usr/include/glm/vec2.hpp /usr/include/glm/ext/vector_bool2.hpp \
/usr/include/glm/detail/type_vec2.hpp \
/usr/include/glm/detail/type_vec2.inl \
/usr/include/glm/detail/compute_vector_relational.hpp \
@@ -362,4 +361,49 @@ CMakeFiles/LearningVulkan.dir/src/private/VulkanPipeline.cpp.o: \
/usr/include/glm/packing.hpp /usr/include/glm/detail/func_packing.inl \
/usr/include/glm/detail/type_half.hpp \
/usr/include/glm/detail/type_half.inl /usr/include/glm/integer.hpp \
/usr/include/glm/detail/func_integer.inl
/usr/include/glm/detail/func_integer.inl /usr/include/glm/gtx/hash.hpp \
/usr/include/glm/gtc/vec1.hpp /usr/include/glm/ext/vector_bool1.hpp \
/usr/include/glm/ext/vector_bool1_precision.hpp \
/usr/include/glm/ext/vector_float1.hpp \
/usr/include/glm/ext/vector_float1_precision.hpp \
/usr/include/glm/ext/vector_double1.hpp \
/usr/include/glm/ext/vector_double1_precision.hpp \
/usr/include/glm/ext/vector_int1.hpp \
/usr/include/glm/ext/vector_int1_sized.hpp \
/usr/include/glm/ext/vector_uint1.hpp \
/usr/include/glm/ext/vector_uint1_sized.hpp \
/usr/include/glm/gtc/quaternion.hpp /usr/include/glm/gtc/constants.hpp \
/usr/include/glm/ext/scalar_constants.hpp \
/usr/include/glm/ext/scalar_constants.inl \
/usr/include/glm/gtc/constants.inl \
/usr/include/glm/gtc/matrix_transform.hpp \
/usr/include/glm/ext/matrix_projection.hpp \
/usr/include/glm/ext/matrix_projection.inl \
/usr/include/glm/ext/matrix_clip_space.hpp \
/usr/include/glm/ext/matrix_clip_space.inl \
/usr/include/glm/ext/matrix_transform.hpp \
/usr/include/glm/ext/matrix_transform.inl \
/usr/include/glm/gtc/matrix_transform.inl \
/usr/include/glm/ext/vector_relational.hpp \
/usr/include/glm/ext/vector_relational.inl \
/usr/include/glm/detail/type_float.hpp \
/usr/include/glm/ext/quaternion_common.hpp \
/usr/include/glm/ext/quaternion_geometric.hpp \
/usr/include/glm/ext/quaternion_geometric.inl \
/usr/include/glm/ext/quaternion_common.inl \
/usr/include/glm/ext/quaternion_float.hpp \
/usr/include/glm/detail/type_quat.hpp \
/usr/include/glm/ext/quaternion_relational.hpp \
/usr/include/glm/ext/quaternion_relational.inl \
/usr/include/glm/detail/type_quat.inl \
/usr/include/glm/ext/quaternion_float_precision.hpp \
/usr/include/glm/ext/quaternion_double.hpp \
/usr/include/glm/ext/quaternion_double_precision.hpp \
/usr/include/glm/ext/quaternion_trigonometric.hpp \
/usr/include/glm/ext/quaternion_trigonometric.inl \
/usr/include/glm/ext/quaternion_transform.hpp \
/usr/include/glm/ext/quaternion_transform.inl \
/usr/include/glm/gtc/quaternion.inl /usr/include/glm/gtc/epsilon.hpp \
/usr/include/glm/detail/setup.hpp /usr/include/glm/gtc/epsilon.inl \
/usr/include/glm/gtx/dual_quaternion.hpp \
/usr/include/glm/gtx/dual_quaternion.inl /usr/include/glm/gtx/hash.inl

View File

@@ -191,4 +191,5 @@ CMakeFiles/LearningVulkan.dir/src/private/VulkanRenderPass.cpp.o: \
/usr/include/c++/15.2.1/bits/stl_heap.h \
/usr/include/c++/15.2.1/bits/uniform_int_dist.h \
/usr/include/c++/15.2.1/bits/stl_tempbuf.h \
/usr/include/c++/15.2.1/bits/unicode-data.h
/usr/include/c++/15.2.1/bits/unicode-data.h \
/usr/include/vulkan/vulkan_core.h

View File

@@ -2,7 +2,7 @@ CMakeFiles/LearningVulkan.dir/src/private/VulkanSwapChain.cpp.o: \
/home/Jordan/Projects/CPP/LearningVulkan/src/private/VulkanSwapChain.cpp \
/usr/include/stdc-predef.h \
/home/Jordan/Projects/CPP/LearningVulkan/src/public/VulkanSwapChain.h \
/usr/include/c++/15.2.1/optional /usr/include/c++/15.2.1/bits/version.h \
/usr/include/c++/15.2.1/cstdint \
/usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/c++config.h \
/usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/os_defines.h \
/usr/include/features.h /usr/include/features-time64.h \
@@ -11,38 +11,35 @@ CMakeFiles/LearningVulkan.dir/src/private/VulkanSwapChain.cpp.o: \
/usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
/usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/cpu_defines.h \
/usr/include/c++/15.2.1/pstl/pstl_config.h \
/usr/include/c++/15.2.1/type_traits /usr/include/c++/15.2.1/exception \
/usr/include/c++/15.2.1/bits/exception.h \
/usr/include/c++/15.2.1/bits/exception_ptr.h \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdint.h \
/usr/include/stdint.h /usr/include/bits/libc-header-start.h \
/usr/include/bits/types.h /usr/include/bits/typesizes.h \
/usr/include/bits/time64.h /usr/include/bits/wchar.h \
/usr/include/bits/stdint-intn.h /usr/include/bits/stdint-uintn.h \
/usr/include/bits/stdint-least.h /usr/include/c++/15.2.1/vector \
/usr/include/c++/15.2.1/bits/requires_hosted.h \
/usr/include/c++/15.2.1/bits/stl_algobase.h \
/usr/include/c++/15.2.1/bits/functexcept.h \
/usr/include/c++/15.2.1/bits/exception_defines.h \
/usr/include/c++/15.2.1/bits/cxxabi_init_exception.h \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stddef.h \
/usr/include/c++/15.2.1/typeinfo \
/usr/include/c++/15.2.1/bits/hash_bytes.h /usr/include/c++/15.2.1/new \
/usr/include/c++/15.2.1/bits/cpp_type_traits.h \
/usr/include/c++/15.2.1/bits/version.h \
/usr/include/c++/15.2.1/type_traits \
/usr/include/c++/15.2.1/ext/type_traits.h \
/usr/include/c++/15.2.1/ext/numeric_traits.h \
/usr/include/c++/15.2.1/bits/stl_pair.h \
/usr/include/c++/15.2.1/bits/move.h \
/usr/include/c++/15.2.1/bits/nested_exception.h \
/usr/include/c++/15.2.1/initializer_list \
/usr/include/c++/15.2.1/bits/enable_special_members.h \
/usr/include/c++/15.2.1/bits/functional_hash.h \
/usr/include/c++/15.2.1/bits/stl_construct.h \
/usr/include/c++/15.2.1/bits/utility.h /usr/include/c++/15.2.1/compare \
/usr/include/c++/15.2.1/concepts \
/usr/include/c++/15.2.1/bits/stl_iterator_base_types.h \
/usr/include/c++/15.2.1/bits/iterator_concepts.h \
/usr/include/c++/15.2.1/concepts \
/usr/include/c++/15.2.1/bits/ptr_traits.h \
/usr/include/c++/15.2.1/bits/ranges_cmp.h \
/usr/include/c++/15.2.1/bits/stl_iterator_base_funcs.h \
/usr/include/c++/15.2.1/bits/concept_check.h \
/usr/include/c++/15.2.1/debug/assertions.h \
/usr/include/c++/15.2.1/bits/utility.h /usr/include/c++/15.2.1/compare \
/usr/include/c++/15.2.1/bits/invoke.h /usr/include/c++/15.2.1/vector \
/usr/include/c++/15.2.1/bits/requires_hosted.h \
/usr/include/c++/15.2.1/bits/stl_algobase.h \
/usr/include/c++/15.2.1/bits/functexcept.h \
/usr/include/c++/15.2.1/bits/cpp_type_traits.h \
/usr/include/c++/15.2.1/ext/type_traits.h \
/usr/include/c++/15.2.1/ext/numeric_traits.h \
/usr/include/c++/15.2.1/bits/stl_pair.h \
/usr/include/c++/15.2.1/bits/stl_iterator.h \
/usr/include/c++/15.2.1/bits/stl_iterator.h /usr/include/c++/15.2.1/new \
/usr/include/c++/15.2.1/bits/exception.h \
/usr/include/c++/15.2.1/bits/stl_construct.h \
/usr/include/c++/15.2.1/debug/debug.h \
/usr/include/c++/15.2.1/bits/predefined_ops.h \
/usr/include/c++/15.2.1/bit /usr/include/c++/15.2.1/bits/allocator.h \
@@ -53,27 +50,26 @@ CMakeFiles/LearningVulkan.dir/src/private/VulkanSwapChain.cpp.o: \
/usr/include/c++/15.2.1/ext/alloc_traits.h \
/usr/include/c++/15.2.1/bits/alloc_traits.h \
/usr/include/c++/15.2.1/bits/stl_vector.h \
/usr/include/c++/15.2.1/initializer_list \
/usr/include/c++/15.2.1/bits/ranges_base.h \
/usr/include/c++/15.2.1/bits/max_size_type.h \
/usr/include/c++/15.2.1/numbers \
/usr/include/c++/15.2.1/bits/stl_bvector.h \
/usr/include/c++/15.2.1/bits/functional_hash.h \
/usr/include/c++/15.2.1/bits/hash_bytes.h \
/usr/include/c++/15.2.1/bits/refwrap.h \
/usr/include/c++/15.2.1/bits/invoke.h \
/usr/include/c++/15.2.1/bits/stl_function.h \
/usr/include/c++/15.2.1/backward/binders.h \
/usr/include/c++/15.2.1/bits/range_access.h \
/usr/include/c++/15.2.1/bits/vector.tcc \
/usr/include/c++/15.2.1/bits/memory_resource.h \
/usr/include/c++/15.2.1/cstddef \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stddef.h \
/usr/include/c++/15.2.1/bits/uses_allocator.h \
/usr/include/c++/15.2.1/bits/uses_allocator_args.h \
/usr/include/c++/15.2.1/tuple /usr/include/c++/15.2.1/bits/ranges_util.h \
/usr/include/vulkan/vulkan_core.h /usr/include/vulkan/vk_platform.h \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdint.h \
/usr/include/stdint.h /usr/include/bits/libc-header-start.h \
/usr/include/bits/types.h /usr/include/bits/typesizes.h \
/usr/include/bits/time64.h /usr/include/bits/wchar.h \
/usr/include/bits/stdint-intn.h /usr/include/bits/stdint-uintn.h \
/usr/include/bits/stdint-least.h \
/usr/include/vk_video/vulkan_video_codec_h264std.h \
/usr/include/vk_video/vulkan_video_codecs_common.h \
/usr/include/vk_video/vulkan_video_codec_h264std_encode.h \
@@ -93,8 +89,7 @@ CMakeFiles/LearningVulkan.dir/src/private/VulkanSwapChain.cpp.o: \
/usr/include/GLFW/glfw3.h /usr/include/vulkan/vulkan.h \
/usr/include/vulkan/vulkan_core.h /usr/include/GL/gl.h \
/usr/include/GL/glext.h /usr/include/KHR/khrplatform.h \
/usr/include/c++/15.2.1/cstdint /usr/include/c++/15.2.1/limits \
/usr/include/c++/15.2.1/algorithm \
/usr/include/c++/15.2.1/limits /usr/include/c++/15.2.1/algorithm \
/usr/include/c++/15.2.1/bits/stl_algo.h \
/usr/include/c++/15.2.1/bits/algorithmfwd.h \
/usr/include/c++/15.2.1/bits/stl_heap.h \
@@ -183,6 +178,11 @@ CMakeFiles/LearningVulkan.dir/src/private/VulkanSwapChain.cpp.o: \
/usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/ctype_base.h \
/usr/include/c++/15.2.1/bits/ios_base.h \
/usr/include/c++/15.2.1/system_error /usr/include/c++/15.2.1/stdexcept \
/usr/include/c++/15.2.1/exception \
/usr/include/c++/15.2.1/bits/exception_ptr.h \
/usr/include/c++/15.2.1/bits/cxxabi_init_exception.h \
/usr/include/c++/15.2.1/typeinfo \
/usr/include/c++/15.2.1/bits/nested_exception.h \
/usr/include/c++/15.2.1/streambuf \
/usr/include/c++/15.2.1/bits/streambuf.tcc \
/usr/include/c++/15.2.1/bits/streambuf_iterator.h \
@@ -194,8 +194,10 @@ CMakeFiles/LearningVulkan.dir/src/private/VulkanSwapChain.cpp.o: \
/usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/messages_members.h \
/usr/include/libintl.h /usr/include/c++/15.2.1/bits/codecvt.h \
/usr/include/c++/15.2.1/bits/locale_facets_nonio.tcc \
/usr/include/c++/15.2.1/bits/locale_conv.h /usr/include/c++/15.2.1/span \
/usr/include/c++/15.2.1/bits/monostate.h \
/usr/include/c++/15.2.1/bits/locale_conv.h \
/usr/include/c++/15.2.1/optional \
/usr/include/c++/15.2.1/bits/enable_special_members.h \
/usr/include/c++/15.2.1/span /usr/include/c++/15.2.1/bits/monostate.h \
/usr/include/c++/15.2.1/bits/formatfwd.h \
/usr/include/c++/15.2.1/bits/unicode.h \
/usr/include/c++/15.2.1/bits/unicode-data.h

View File

@@ -1,355 +0,0 @@
CMakeFiles/LearningVulkan.dir/src/private/VulkanVertexBuffer.cpp.o: \
/home/Jordan/Projects/CPP/LearningVulkan/src/private/VulkanVertexBuffer.cpp \
/usr/include/stdc-predef.h \
/home/Jordan/Projects/CPP/LearningVulkan/src/public/VulkanVertexBuffer.h \
/home/Jordan/Projects/CPP/LearningVulkan/src/public/Primitives.h \
/usr/include/glm/glm.hpp /usr/include/glm/detail/_fixes.hpp \
/usr/include/c++/15.2.1/cmath \
/usr/include/c++/15.2.1/bits/requires_hosted.h \
/usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/c++config.h \
/usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/os_defines.h \
/usr/include/features.h /usr/include/features-time64.h \
/usr/include/bits/wordsize.h /usr/include/bits/timesize.h \
/usr/include/sys/cdefs.h /usr/include/bits/long-double.h \
/usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
/usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/cpu_defines.h \
/usr/include/c++/15.2.1/pstl/pstl_config.h \
/usr/include/c++/15.2.1/bits/cpp_type_traits.h \
/usr/include/c++/15.2.1/bits/version.h \
/usr/include/c++/15.2.1/type_traits \
/usr/include/c++/15.2.1/ext/type_traits.h /usr/include/math.h \
/usr/include/bits/libc-header-start.h /usr/include/bits/math-vector.h \
/usr/include/bits/libm-simd-decl-stubs.h /usr/include/bits/floatn.h \
/usr/include/bits/floatn-common.h /usr/include/bits/flt-eval-method.h \
/usr/include/bits/fp-logb.h /usr/include/bits/fp-fast.h \
/usr/include/bits/mathcalls-macros.h \
/usr/include/bits/mathcalls-helper-functions.h \
/usr/include/bits/mathcalls.h /usr/include/bits/mathcalls-narrow.h \
/usr/include/bits/iscanonical.h /usr/include/c++/15.2.1/bits/std_abs.h \
/usr/include/stdlib.h \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stddef.h \
/usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
/usr/include/bits/types/locale_t.h /usr/include/bits/types/__locale_t.h \
/usr/include/sys/types.h /usr/include/bits/types.h \
/usr/include/bits/typesizes.h /usr/include/bits/time64.h \
/usr/include/bits/types/clock_t.h /usr/include/bits/types/clockid_t.h \
/usr/include/bits/types/time_t.h /usr/include/bits/types/timer_t.h \
/usr/include/bits/stdint-intn.h /usr/include/endian.h \
/usr/include/bits/endian.h /usr/include/bits/endianness.h \
/usr/include/bits/byteswap.h /usr/include/bits/uintn-identity.h \
/usr/include/sys/select.h /usr/include/bits/select.h \
/usr/include/bits/types/sigset_t.h /usr/include/bits/types/__sigset_t.h \
/usr/include/bits/types/struct_timeval.h \
/usr/include/bits/types/struct_timespec.h \
/usr/include/bits/pthreadtypes.h /usr/include/bits/thread-shared-types.h \
/usr/include/bits/pthreadtypes-arch.h \
/usr/include/bits/atomic_wide_counter.h /usr/include/bits/struct_mutex.h \
/usr/include/bits/struct_rwlock.h /usr/include/alloca.h \
/usr/include/bits/stdlib-bsearch.h /usr/include/bits/stdlib-float.h \
/usr/include/c++/15.2.1/bits/specfun.h \
/usr/include/c++/15.2.1/bits/stl_algobase.h \
/usr/include/c++/15.2.1/bits/functexcept.h \
/usr/include/c++/15.2.1/bits/exception_defines.h \
/usr/include/c++/15.2.1/ext/numeric_traits.h \
/usr/include/c++/15.2.1/bits/stl_pair.h \
/usr/include/c++/15.2.1/bits/move.h \
/usr/include/c++/15.2.1/bits/utility.h /usr/include/c++/15.2.1/compare \
/usr/include/c++/15.2.1/concepts \
/usr/include/c++/15.2.1/bits/stl_iterator_base_types.h \
/usr/include/c++/15.2.1/bits/iterator_concepts.h \
/usr/include/c++/15.2.1/bits/ptr_traits.h \
/usr/include/c++/15.2.1/bits/ranges_cmp.h \
/usr/include/c++/15.2.1/bits/stl_iterator_base_funcs.h \
/usr/include/c++/15.2.1/bits/concept_check.h \
/usr/include/c++/15.2.1/debug/assertions.h \
/usr/include/c++/15.2.1/bits/stl_iterator.h /usr/include/c++/15.2.1/new \
/usr/include/c++/15.2.1/bits/exception.h \
/usr/include/c++/15.2.1/bits/stl_construct.h \
/usr/include/c++/15.2.1/debug/debug.h \
/usr/include/c++/15.2.1/bits/predefined_ops.h \
/usr/include/c++/15.2.1/bit /usr/include/c++/15.2.1/limits \
/usr/include/c++/15.2.1/tr1/gamma.tcc \
/usr/include/c++/15.2.1/tr1/special_function_util.h \
/usr/include/c++/15.2.1/tr1/bessel_function.tcc \
/usr/include/c++/15.2.1/tr1/beta_function.tcc \
/usr/include/c++/15.2.1/tr1/ell_integral.tcc \
/usr/include/c++/15.2.1/tr1/exp_integral.tcc \
/usr/include/c++/15.2.1/tr1/hypergeometric.tcc \
/usr/include/c++/15.2.1/tr1/legendre_function.tcc \
/usr/include/c++/15.2.1/tr1/modified_bessel_func.tcc \
/usr/include/c++/15.2.1/tr1/poly_hermite.tcc \
/usr/include/c++/15.2.1/tr1/poly_laguerre.tcc \
/usr/include/c++/15.2.1/tr1/riemann_zeta.tcc \
/usr/include/glm/detail/setup.hpp /usr/include/c++/15.2.1/cassert \
/usr/include/assert.h /usr/include/c++/15.2.1/cstddef \
/usr/include/glm/simd/platform.h /usr/include/c++/15.2.1/cstdint \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdint.h \
/usr/include/stdint.h /usr/include/bits/wchar.h \
/usr/include/bits/stdint-uintn.h /usr/include/bits/stdint-least.h \
/usr/include/c++/15.2.1/climits \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/limits.h \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/syslimits.h \
/usr/include/limits.h /usr/include/bits/posix1_lim.h \
/usr/include/bits/local_lim.h /usr/include/linux/limits.h \
/usr/include/bits/pthread_stack_min-dynamic.h \
/usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \
/usr/include/bits/uio_lim.h /usr/include/c++/15.2.1/cfloat \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/float.h \
/usr/include/glm/fwd.hpp /usr/include/glm/detail/qualifier.hpp \
/usr/include/glm/detail/setup.hpp /usr/include/glm/vec2.hpp \
/usr/include/glm/ext/vector_bool2.hpp \
/usr/include/glm/detail/type_vec2.hpp \
/usr/include/glm/detail/type_vec2.inl \
/usr/include/glm/detail/compute_vector_relational.hpp \
/usr/include/glm/ext/vector_bool2_precision.hpp \
/usr/include/glm/ext/vector_float2.hpp \
/usr/include/glm/ext/vector_float2_precision.hpp \
/usr/include/glm/ext/vector_double2.hpp \
/usr/include/glm/ext/vector_double2_precision.hpp \
/usr/include/glm/ext/vector_int2.hpp \
/usr/include/glm/ext/vector_int2_sized.hpp \
/usr/include/glm/ext/scalar_int_sized.hpp \
/usr/include/glm/detail/setup.hpp /usr/include/glm/ext/vector_uint2.hpp \
/usr/include/glm/ext/vector_uint2_sized.hpp \
/usr/include/glm/ext/scalar_uint_sized.hpp /usr/include/glm/vec3.hpp \
/usr/include/glm/ext/vector_bool3.hpp \
/usr/include/glm/detail/type_vec3.hpp \
/usr/include/glm/detail/type_vec3.inl \
/usr/include/glm/detail/compute_vector_decl.hpp \
/usr/include/c++/15.2.1/functional \
/usr/include/c++/15.2.1/bits/stl_function.h \
/usr/include/c++/15.2.1/backward/binders.h /usr/include/c++/15.2.1/tuple \
/usr/include/c++/15.2.1/bits/uses_allocator.h \
/usr/include/c++/15.2.1/bits/invoke.h \
/usr/include/c++/15.2.1/bits/ranges_util.h \
/usr/include/c++/15.2.1/bits/ranges_base.h \
/usr/include/c++/15.2.1/initializer_list \
/usr/include/c++/15.2.1/bits/max_size_type.h \
/usr/include/c++/15.2.1/numbers \
/usr/include/c++/15.2.1/bits/functional_hash.h \
/usr/include/c++/15.2.1/bits/hash_bytes.h \
/usr/include/c++/15.2.1/bits/refwrap.h \
/usr/include/c++/15.2.1/bits/std_function.h \
/usr/include/c++/15.2.1/typeinfo /usr/include/c++/15.2.1/unordered_map \
/usr/include/c++/15.2.1/bits/unordered_map.h \
/usr/include/c++/15.2.1/bits/hashtable.h \
/usr/include/c++/15.2.1/bits/hashtable_policy.h \
/usr/include/c++/15.2.1/ext/aligned_buffer.h \
/usr/include/c++/15.2.1/ext/alloc_traits.h \
/usr/include/c++/15.2.1/bits/alloc_traits.h \
/usr/include/c++/15.2.1/bits/memoryfwd.h \
/usr/include/c++/15.2.1/bits/allocator.h \
/usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/c++allocator.h \
/usr/include/c++/15.2.1/bits/new_allocator.h \
/usr/include/c++/15.2.1/bits/enable_special_members.h \
/usr/include/c++/15.2.1/bits/node_handle.h \
/usr/include/c++/15.2.1/bits/range_access.h \
/usr/include/c++/15.2.1/bits/erase_if.h \
/usr/include/c++/15.2.1/bits/memory_resource.h \
/usr/include/c++/15.2.1/bits/uses_allocator_args.h \
/usr/include/c++/15.2.1/vector \
/usr/include/c++/15.2.1/bits/stl_uninitialized.h \
/usr/include/c++/15.2.1/bits/stl_vector.h \
/usr/include/c++/15.2.1/bits/stl_bvector.h \
/usr/include/c++/15.2.1/bits/vector.tcc /usr/include/c++/15.2.1/array \
/usr/include/glm/detail/_vectorize.hpp \
/usr/include/glm/ext/vector_bool3_precision.hpp \
/usr/include/glm/ext/vector_float3.hpp \
/usr/include/glm/ext/vector_float3_precision.hpp \
/usr/include/glm/ext/vector_double3.hpp \
/usr/include/glm/ext/vector_double3_precision.hpp \
/usr/include/glm/ext/vector_int3.hpp \
/usr/include/glm/ext/vector_int3_sized.hpp \
/usr/include/glm/ext/vector_uint3.hpp \
/usr/include/glm/ext/vector_uint3_sized.hpp /usr/include/glm/vec4.hpp \
/usr/include/glm/ext/vector_bool4.hpp \
/usr/include/glm/detail/type_vec4.hpp \
/usr/include/glm/detail/type_vec4.inl \
/usr/include/glm/ext/vector_bool4_precision.hpp \
/usr/include/glm/ext/vector_float4.hpp \
/usr/include/glm/ext/vector_float4_precision.hpp \
/usr/include/glm/ext/vector_double4.hpp \
/usr/include/glm/ext/vector_double4_precision.hpp \
/usr/include/glm/ext/vector_int4.hpp \
/usr/include/glm/ext/vector_int4_sized.hpp \
/usr/include/glm/ext/vector_uint4.hpp \
/usr/include/glm/ext/vector_uint4_sized.hpp /usr/include/glm/mat2x2.hpp \
/usr/include/glm/ext/matrix_double2x2.hpp \
/usr/include/glm/detail/type_mat2x2.hpp \
/usr/include/glm/detail/type_mat2x2.inl /usr/include/glm/matrix.hpp \
/usr/include/glm/mat2x3.hpp /usr/include/glm/ext/matrix_double2x3.hpp \
/usr/include/glm/detail/type_mat2x3.hpp \
/usr/include/glm/detail/type_mat2x3.inl \
/usr/include/glm/ext/matrix_double2x3_precision.hpp \
/usr/include/glm/ext/matrix_float2x3.hpp \
/usr/include/glm/ext/matrix_float2x3_precision.hpp \
/usr/include/glm/mat2x4.hpp /usr/include/glm/ext/matrix_double2x4.hpp \
/usr/include/glm/detail/type_mat2x4.hpp \
/usr/include/glm/detail/type_mat2x4.inl \
/usr/include/glm/ext/matrix_double2x4_precision.hpp \
/usr/include/glm/ext/matrix_float2x4.hpp \
/usr/include/glm/ext/matrix_float2x4_precision.hpp \
/usr/include/glm/mat3x2.hpp /usr/include/glm/ext/matrix_double3x2.hpp \
/usr/include/glm/detail/type_mat3x2.hpp \
/usr/include/glm/detail/type_mat3x2.inl \
/usr/include/glm/ext/matrix_double3x2_precision.hpp \
/usr/include/glm/ext/matrix_float3x2.hpp \
/usr/include/glm/ext/matrix_float3x2_precision.hpp \
/usr/include/glm/mat3x3.hpp /usr/include/glm/ext/matrix_double3x3.hpp \
/usr/include/glm/detail/type_mat3x3.hpp \
/usr/include/glm/detail/type_mat3x3.inl /usr/include/glm/common.hpp \
/usr/include/glm/detail/func_common.inl \
/usr/include/glm/vector_relational.hpp \
/usr/include/glm/detail/func_vector_relational.inl \
/usr/include/glm/detail/compute_common.hpp \
/usr/include/glm/detail/type_vec1.hpp \
/usr/include/glm/detail/type_vec1.inl \
/usr/include/glm/ext/matrix_double3x3_precision.hpp \
/usr/include/glm/ext/matrix_float3x3.hpp \
/usr/include/glm/ext/matrix_float3x3_precision.hpp \
/usr/include/glm/mat3x4.hpp /usr/include/glm/ext/matrix_double3x4.hpp \
/usr/include/glm/detail/type_mat3x4.hpp \
/usr/include/glm/detail/type_mat3x4.inl \
/usr/include/glm/ext/matrix_double3x4_precision.hpp \
/usr/include/glm/ext/matrix_float3x4.hpp \
/usr/include/glm/ext/matrix_float3x4_precision.hpp \
/usr/include/glm/mat4x2.hpp /usr/include/glm/ext/matrix_double4x2.hpp \
/usr/include/glm/detail/type_mat4x2.hpp \
/usr/include/glm/detail/type_mat4x2.inl \
/usr/include/glm/ext/matrix_double4x2_precision.hpp \
/usr/include/glm/ext/matrix_float4x2.hpp \
/usr/include/glm/ext/matrix_float4x2_precision.hpp \
/usr/include/glm/mat4x3.hpp /usr/include/glm/ext/matrix_double4x3.hpp \
/usr/include/glm/detail/type_mat4x3.hpp \
/usr/include/glm/detail/type_mat4x3.inl \
/usr/include/glm/ext/matrix_double4x3_precision.hpp \
/usr/include/glm/ext/matrix_float4x3.hpp \
/usr/include/glm/ext/matrix_float4x3_precision.hpp \
/usr/include/glm/mat4x4.hpp /usr/include/glm/ext/matrix_double4x4.hpp \
/usr/include/glm/detail/type_mat4x4.hpp \
/usr/include/glm/detail/type_mat4x4.inl /usr/include/glm/geometric.hpp \
/usr/include/glm/detail/func_geometric.inl \
/usr/include/glm/exponential.hpp \
/usr/include/glm/detail/func_exponential.inl \
/usr/include/glm/ext/matrix_double4x4_precision.hpp \
/usr/include/glm/ext/matrix_float4x4.hpp \
/usr/include/glm/ext/matrix_float4x4_precision.hpp \
/usr/include/glm/detail/func_matrix.inl \
/usr/include/glm/ext/matrix_double2x2_precision.hpp \
/usr/include/glm/ext/matrix_float2x2.hpp \
/usr/include/glm/ext/matrix_float2x2_precision.hpp \
/usr/include/glm/trigonometric.hpp \
/usr/include/glm/detail/func_trigonometric.inl \
/usr/include/glm/packing.hpp /usr/include/glm/detail/func_packing.inl \
/usr/include/glm/detail/type_half.hpp \
/usr/include/glm/detail/type_half.inl /usr/include/glm/integer.hpp \
/usr/include/glm/detail/func_integer.inl \
/usr/include/vulkan/vulkan_core.h /usr/include/vulkan/vk_platform.h \
/usr/include/vk_video/vulkan_video_codec_h264std.h \
/usr/include/vk_video/vulkan_video_codecs_common.h \
/usr/include/vk_video/vulkan_video_codec_h264std_encode.h \
/usr/include/vk_video/vulkan_video_codec_h264std.h \
/usr/include/vk_video/vulkan_video_codec_h265std.h \
/usr/include/vk_video/vulkan_video_codec_h265std_encode.h \
/usr/include/vk_video/vulkan_video_codec_h265std.h \
/usr/include/vk_video/vulkan_video_codec_h264std_decode.h \
/usr/include/vk_video/vulkan_video_codec_h265std_decode.h \
/usr/include/vk_video/vulkan_video_codec_av1std.h \
/usr/include/vk_video/vulkan_video_codec_av1std_decode.h \
/usr/include/vk_video/vulkan_video_codec_av1std.h \
/usr/include/vk_video/vulkan_video_codec_av1std_encode.h \
/usr/include/vk_video/vulkan_video_codec_vp9std.h \
/usr/include/vk_video/vulkan_video_codec_vp9std_decode.h \
/usr/include/vk_video/vulkan_video_codec_vp9std.h \
/usr/include/GLFW/glfw3.h /usr/include/vulkan/vulkan.h \
/usr/include/vulkan/vulkan_core.h /usr/include/GL/gl.h \
/usr/include/GL/glext.h /usr/include/KHR/khrplatform.h \
/home/Jordan/Projects/CPP/LearningVulkan/src/utilities/Logger.h \
/usr/include/c++/15.2.1/string /usr/include/c++/15.2.1/bits/stringfwd.h \
/usr/include/c++/15.2.1/bits/char_traits.h \
/usr/include/c++/15.2.1/bits/postypes.h /usr/include/c++/15.2.1/cwchar \
/usr/include/wchar.h \
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdarg.h \
/usr/include/bits/types/wint_t.h /usr/include/bits/types/mbstate_t.h \
/usr/include/bits/types/__mbstate_t.h /usr/include/bits/types/__FILE.h \
/usr/include/bits/types/FILE.h /usr/include/c++/15.2.1/bits/localefwd.h \
/usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/c++locale.h \
/usr/include/c++/15.2.1/clocale /usr/include/locale.h \
/usr/include/bits/locale.h /usr/include/c++/15.2.1/iosfwd \
/usr/include/c++/15.2.1/cctype /usr/include/ctype.h \
/usr/include/c++/15.2.1/bits/ostream_insert.h \
/usr/include/c++/15.2.1/bits/cxxabi_forced.h \
/usr/include/c++/15.2.1/bits/basic_string.h \
/usr/include/c++/15.2.1/string_view \
/usr/include/c++/15.2.1/bits/string_view.tcc \
/usr/include/c++/15.2.1/ext/string_conversions.h \
/usr/include/c++/15.2.1/cstdlib /usr/include/c++/15.2.1/cstdio \
/usr/include/stdio.h /usr/include/bits/types/__fpos_t.h \
/usr/include/bits/types/__fpos64_t.h \
/usr/include/bits/types/struct_FILE.h \
/usr/include/bits/types/cookie_io_functions_t.h \
/usr/include/bits/stdio_lim.h /usr/include/bits/stdio.h \
/usr/include/c++/15.2.1/cerrno /usr/include/errno.h \
/usr/include/bits/errno.h /usr/include/linux/errno.h \
/usr/include/asm/errno.h /usr/include/asm-generic/errno.h \
/usr/include/asm-generic/errno-base.h /usr/include/bits/types/error_t.h \
/usr/include/c++/15.2.1/bits/charconv.h \
/usr/include/c++/15.2.1/bits/basic_string.tcc \
/usr/include/c++/15.2.1/source_location /usr/include/c++/15.2.1/format \
/usr/include/c++/15.2.1/charconv \
/usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/error_constants.h \
/usr/include/c++/15.2.1/locale \
/usr/include/c++/15.2.1/bits/locale_classes.h \
/usr/include/c++/15.2.1/ext/atomicity.h \
/usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/gthr.h \
/usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/gthr-default.h \
/usr/include/pthread.h /usr/include/sched.h /usr/include/bits/sched.h \
/usr/include/linux/sched/types.h /usr/include/linux/types.h \
/usr/include/asm/types.h /usr/include/asm-generic/types.h \
/usr/include/asm-generic/int-ll64.h /usr/include/asm/bitsperlong.h \
/usr/include/asm-generic/bitsperlong.h /usr/include/linux/posix_types.h \
/usr/include/linux/stddef.h /usr/include/asm/posix_types.h \
/usr/include/asm/posix_types_64.h /usr/include/asm-generic/posix_types.h \
/usr/include/bits/types/struct_sched_param.h /usr/include/bits/cpu-set.h \
/usr/include/time.h /usr/include/bits/time.h /usr/include/bits/timex.h \
/usr/include/bits/types/struct_tm.h \
/usr/include/bits/types/struct_itimerspec.h /usr/include/bits/setjmp.h \
/usr/include/bits/types/struct___jmp_buf_tag.h \
/usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/atomic_word.h \
/usr/include/sys/single_threaded.h \
/usr/include/c++/15.2.1/bits/locale_classes.tcc \
/usr/include/c++/15.2.1/bits/locale_facets.h \
/usr/include/c++/15.2.1/cwctype /usr/include/wctype.h \
/usr/include/bits/wctype-wchar.h \
/usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/ctype_base.h \
/usr/include/c++/15.2.1/bits/ios_base.h \
/usr/include/c++/15.2.1/system_error /usr/include/c++/15.2.1/stdexcept \
/usr/include/c++/15.2.1/exception \
/usr/include/c++/15.2.1/bits/exception_ptr.h \
/usr/include/c++/15.2.1/bits/cxxabi_init_exception.h \
/usr/include/c++/15.2.1/bits/nested_exception.h \
/usr/include/c++/15.2.1/streambuf \
/usr/include/c++/15.2.1/bits/streambuf.tcc \
/usr/include/c++/15.2.1/bits/streambuf_iterator.h \
/usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/ctype_inline.h \
/usr/include/c++/15.2.1/bits/locale_facets.tcc \
/usr/include/c++/15.2.1/bits/locale_facets_nonio.h \
/usr/include/c++/15.2.1/ctime \
/usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/time_members.h \
/usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/messages_members.h \
/usr/include/libintl.h /usr/include/c++/15.2.1/bits/codecvt.h \
/usr/include/c++/15.2.1/bits/locale_facets_nonio.tcc \
/usr/include/c++/15.2.1/bits/locale_conv.h \
/usr/include/c++/15.2.1/optional /usr/include/c++/15.2.1/span \
/usr/include/c++/15.2.1/bits/monostate.h \
/usr/include/c++/15.2.1/bits/formatfwd.h \
/usr/include/c++/15.2.1/bits/ranges_algobase.h \
/usr/include/c++/15.2.1/bits/unicode.h \
/usr/include/c++/15.2.1/bits/stl_algo.h \
/usr/include/c++/15.2.1/bits/algorithmfwd.h \
/usr/include/c++/15.2.1/bits/stl_heap.h \
/usr/include/c++/15.2.1/bits/uniform_int_dist.h \
/usr/include/c++/15.2.1/bits/stl_tempbuf.h \
/usr/include/c++/15.2.1/bits/unicode-data.h \
/usr/include/c++/15.2.1/cstring /usr/include/string.h \
/usr/include/strings.h

View File

@@ -85,12 +85,12 @@ clean: CMakeFiles/LearningVulkan.dir/clean
CMakeFiles/LearningVulkan.dir/all:
$(MAKE) $(MAKESILENT) -f CMakeFiles/LearningVulkan.dir/build.make CMakeFiles/LearningVulkan.dir/depend
$(MAKE) $(MAKESILENT) -f CMakeFiles/LearningVulkan.dir/build.make CMakeFiles/LearningVulkan.dir/build
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --progress-dir=/home/Jordan/Projects/CPP/LearningVulkan/build/CMakeFiles --progress-num=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22 "Built target LearningVulkan"
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --progress-dir=/home/Jordan/Projects/CPP/LearningVulkan/build/CMakeFiles --progress-num=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23 "Built target LearningVulkan"
.PHONY : CMakeFiles/LearningVulkan.dir/all
# Build rule for subdir invocation for target.
CMakeFiles/LearningVulkan.dir/rule: cmake_check_build_system
$(CMAKE_COMMAND) -E cmake_progress_start /home/Jordan/Projects/CPP/LearningVulkan/build/CMakeFiles 22
$(CMAKE_COMMAND) -E cmake_progress_start /home/Jordan/Projects/CPP/LearningVulkan/build/CMakeFiles 23
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 CMakeFiles/LearningVulkan.dir/all
$(CMAKE_COMMAND) -E cmake_progress_start /home/Jordan/Projects/CPP/LearningVulkan/build/CMakeFiles 0
.PHONY : CMakeFiles/LearningVulkan.dir/rule
@@ -102,7 +102,7 @@ LearningVulkan: CMakeFiles/LearningVulkan.dir/rule
# codegen rule for target.
CMakeFiles/LearningVulkan.dir/codegen:
$(MAKE) $(MAKESILENT) -f CMakeFiles/LearningVulkan.dir/build.make CMakeFiles/LearningVulkan.dir/codegen
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --progress-dir=/home/Jordan/Projects/CPP/LearningVulkan/build/CMakeFiles --progress-num=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22 "Finished codegen for target LearningVulkan"
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --progress-dir=/home/Jordan/Projects/CPP/LearningVulkan/build/CMakeFiles --progress-num=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23 "Finished codegen for target LearningVulkan"
.PHONY : CMakeFiles/LearningVulkan.dir/codegen
# clean rule for target.

View File

@@ -1 +1 @@
22
23

Binary file not shown.

View File

@@ -345,29 +345,29 @@ src/private/GlfwWindowManager.cpp.s:
$(MAKE) $(MAKESILENT) -f CMakeFiles/LearningVulkan.dir/build.make CMakeFiles/LearningVulkan.dir/src/private/GlfwWindowManager.cpp.s
.PHONY : src/private/GlfwWindowManager.cpp.s
src/private/VulkanCommandBuffers.o: src/private/VulkanCommandBuffers.cpp.o
.PHONY : src/private/VulkanCommandBuffers.o
src/private/VulkanBuffers.o: src/private/VulkanBuffers.cpp.o
.PHONY : src/private/VulkanBuffers.o
# target to build an object file
src/private/VulkanCommandBuffers.cpp.o:
$(MAKE) $(MAKESILENT) -f CMakeFiles/LearningVulkan.dir/build.make CMakeFiles/LearningVulkan.dir/src/private/VulkanCommandBuffers.cpp.o
.PHONY : src/private/VulkanCommandBuffers.cpp.o
src/private/VulkanBuffers.cpp.o:
$(MAKE) $(MAKESILENT) -f CMakeFiles/LearningVulkan.dir/build.make CMakeFiles/LearningVulkan.dir/src/private/VulkanBuffers.cpp.o
.PHONY : src/private/VulkanBuffers.cpp.o
src/private/VulkanCommandBuffers.i: src/private/VulkanCommandBuffers.cpp.i
.PHONY : src/private/VulkanCommandBuffers.i
src/private/VulkanBuffers.i: src/private/VulkanBuffers.cpp.i
.PHONY : src/private/VulkanBuffers.i
# target to preprocess a source file
src/private/VulkanCommandBuffers.cpp.i:
$(MAKE) $(MAKESILENT) -f CMakeFiles/LearningVulkan.dir/build.make CMakeFiles/LearningVulkan.dir/src/private/VulkanCommandBuffers.cpp.i
.PHONY : src/private/VulkanCommandBuffers.cpp.i
src/private/VulkanBuffers.cpp.i:
$(MAKE) $(MAKESILENT) -f CMakeFiles/LearningVulkan.dir/build.make CMakeFiles/LearningVulkan.dir/src/private/VulkanBuffers.cpp.i
.PHONY : src/private/VulkanBuffers.cpp.i
src/private/VulkanCommandBuffers.s: src/private/VulkanCommandBuffers.cpp.s
.PHONY : src/private/VulkanCommandBuffers.s
src/private/VulkanBuffers.s: src/private/VulkanBuffers.cpp.s
.PHONY : src/private/VulkanBuffers.s
# target to generate assembly for a file
src/private/VulkanCommandBuffers.cpp.s:
$(MAKE) $(MAKESILENT) -f CMakeFiles/LearningVulkan.dir/build.make CMakeFiles/LearningVulkan.dir/src/private/VulkanCommandBuffers.cpp.s
.PHONY : src/private/VulkanCommandBuffers.cpp.s
src/private/VulkanBuffers.cpp.s:
$(MAKE) $(MAKESILENT) -f CMakeFiles/LearningVulkan.dir/build.make CMakeFiles/LearningVulkan.dir/src/private/VulkanBuffers.cpp.s
.PHONY : src/private/VulkanBuffers.cpp.s
src/private/VulkanContext.o: src/private/VulkanContext.cpp.o
.PHONY : src/private/VulkanContext.o
@@ -561,29 +561,29 @@ src/private/VulkanSwapChain.cpp.s:
$(MAKE) $(MAKESILENT) -f CMakeFiles/LearningVulkan.dir/build.make CMakeFiles/LearningVulkan.dir/src/private/VulkanSwapChain.cpp.s
.PHONY : src/private/VulkanSwapChain.cpp.s
src/private/VulkanVertexBuffer.o: src/private/VulkanVertexBuffer.cpp.o
.PHONY : src/private/VulkanVertexBuffer.o
src/private/VulkanTexture.o: src/private/VulkanTexture.cpp.o
.PHONY : src/private/VulkanTexture.o
# target to build an object file
src/private/VulkanVertexBuffer.cpp.o:
$(MAKE) $(MAKESILENT) -f CMakeFiles/LearningVulkan.dir/build.make CMakeFiles/LearningVulkan.dir/src/private/VulkanVertexBuffer.cpp.o
.PHONY : src/private/VulkanVertexBuffer.cpp.o
src/private/VulkanTexture.cpp.o:
$(MAKE) $(MAKESILENT) -f CMakeFiles/LearningVulkan.dir/build.make CMakeFiles/LearningVulkan.dir/src/private/VulkanTexture.cpp.o
.PHONY : src/private/VulkanTexture.cpp.o
src/private/VulkanVertexBuffer.i: src/private/VulkanVertexBuffer.cpp.i
.PHONY : src/private/VulkanVertexBuffer.i
src/private/VulkanTexture.i: src/private/VulkanTexture.cpp.i
.PHONY : src/private/VulkanTexture.i
# target to preprocess a source file
src/private/VulkanVertexBuffer.cpp.i:
$(MAKE) $(MAKESILENT) -f CMakeFiles/LearningVulkan.dir/build.make CMakeFiles/LearningVulkan.dir/src/private/VulkanVertexBuffer.cpp.i
.PHONY : src/private/VulkanVertexBuffer.cpp.i
src/private/VulkanTexture.cpp.i:
$(MAKE) $(MAKESILENT) -f CMakeFiles/LearningVulkan.dir/build.make CMakeFiles/LearningVulkan.dir/src/private/VulkanTexture.cpp.i
.PHONY : src/private/VulkanTexture.cpp.i
src/private/VulkanVertexBuffer.s: src/private/VulkanVertexBuffer.cpp.s
.PHONY : src/private/VulkanVertexBuffer.s
src/private/VulkanTexture.s: src/private/VulkanTexture.cpp.s
.PHONY : src/private/VulkanTexture.s
# target to generate assembly for a file
src/private/VulkanVertexBuffer.cpp.s:
$(MAKE) $(MAKESILENT) -f CMakeFiles/LearningVulkan.dir/build.make CMakeFiles/LearningVulkan.dir/src/private/VulkanVertexBuffer.cpp.s
.PHONY : src/private/VulkanVertexBuffer.cpp.s
src/private/VulkanTexture.cpp.s:
$(MAKE) $(MAKESILENT) -f CMakeFiles/LearningVulkan.dir/build.make CMakeFiles/LearningVulkan.dir/src/private/VulkanTexture.cpp.s
.PHONY : src/private/VulkanTexture.cpp.s
src/utilities/Logger.o: src/utilities/Logger.cpp.o
.PHONY : src/utilities/Logger.o
@@ -633,6 +633,30 @@ src/utilities/stb_image_impl.cpp.s:
$(MAKE) $(MAKESILENT) -f CMakeFiles/LearningVulkan.dir/build.make CMakeFiles/LearningVulkan.dir/src/utilities/stb_image_impl.cpp.s
.PHONY : src/utilities/stb_image_impl.cpp.s
src/utilities/tiny_obj_loader_impl.o: src/utilities/tiny_obj_loader_impl.cpp.o
.PHONY : src/utilities/tiny_obj_loader_impl.o
# target to build an object file
src/utilities/tiny_obj_loader_impl.cpp.o:
$(MAKE) $(MAKESILENT) -f CMakeFiles/LearningVulkan.dir/build.make CMakeFiles/LearningVulkan.dir/src/utilities/tiny_obj_loader_impl.cpp.o
.PHONY : src/utilities/tiny_obj_loader_impl.cpp.o
src/utilities/tiny_obj_loader_impl.i: src/utilities/tiny_obj_loader_impl.cpp.i
.PHONY : src/utilities/tiny_obj_loader_impl.i
# target to preprocess a source file
src/utilities/tiny_obj_loader_impl.cpp.i:
$(MAKE) $(MAKESILENT) -f CMakeFiles/LearningVulkan.dir/build.make CMakeFiles/LearningVulkan.dir/src/utilities/tiny_obj_loader_impl.cpp.i
.PHONY : src/utilities/tiny_obj_loader_impl.cpp.i
src/utilities/tiny_obj_loader_impl.s: src/utilities/tiny_obj_loader_impl.cpp.s
.PHONY : src/utilities/tiny_obj_loader_impl.s
# target to generate assembly for a file
src/utilities/tiny_obj_loader_impl.cpp.s:
$(MAKE) $(MAKESILENT) -f CMakeFiles/LearningVulkan.dir/build.make CMakeFiles/LearningVulkan.dir/src/utilities/tiny_obj_loader_impl.cpp.s
.PHONY : src/utilities/tiny_obj_loader_impl.cpp.s
# Help Target
help:
@echo "The following are some of the valid targets for this Makefile:"
@@ -669,9 +693,9 @@ help:
@echo "... src/private/GlfwWindowManager.o"
@echo "... src/private/GlfwWindowManager.i"
@echo "... src/private/GlfwWindowManager.s"
@echo "... src/private/VulkanCommandBuffers.o"
@echo "... src/private/VulkanCommandBuffers.i"
@echo "... src/private/VulkanCommandBuffers.s"
@echo "... src/private/VulkanBuffers.o"
@echo "... src/private/VulkanBuffers.i"
@echo "... src/private/VulkanBuffers.s"
@echo "... src/private/VulkanContext.o"
@echo "... src/private/VulkanContext.i"
@echo "... src/private/VulkanContext.s"
@@ -696,15 +720,18 @@ help:
@echo "... src/private/VulkanSwapChain.o"
@echo "... src/private/VulkanSwapChain.i"
@echo "... src/private/VulkanSwapChain.s"
@echo "... src/private/VulkanVertexBuffer.o"
@echo "... src/private/VulkanVertexBuffer.i"
@echo "... src/private/VulkanVertexBuffer.s"
@echo "... src/private/VulkanTexture.o"
@echo "... src/private/VulkanTexture.i"
@echo "... src/private/VulkanTexture.s"
@echo "... src/utilities/Logger.o"
@echo "... src/utilities/Logger.i"
@echo "... src/utilities/Logger.s"
@echo "... src/utilities/stb_image_impl.o"
@echo "... src/utilities/stb_image_impl.i"
@echo "... src/utilities/stb_image_impl.s"
@echo "... src/utilities/tiny_obj_loader_impl.o"
@echo "... src/utilities/tiny_obj_loader_impl.i"
@echo "... src/utilities/tiny_obj_loader_impl.s"
.PHONY : help

View File

@@ -1,127 +1,133 @@
[
{
"directory": "/home/Jordan/Projects/CPP/LearningVulkan/build",
"command": "/usr/bin/c++ -I/home/Jordan/Projects/CPP/LearningVulkan/lib -I/home/Jordan/Projects/CPP/LearningVulkan/lib/stb -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/backends -I/home/Jordan/Projects/CPP/LearningVulkan/src -I/home/Jordan/Projects/CPP/LearningVulkan/src/utilities -I/home/Jordan/Projects/CPP/LearningVulkan/src/private -I/home/Jordan/Projects/CPP/LearningVulkan/src/public -std=c++20 -Wall -Wextra -O2 -o CMakeFiles/LearningVulkan.dir/src/main.cpp.o -c /home/Jordan/Projects/CPP/LearningVulkan/src/main.cpp",
"command": "/usr/bin/c++ -I/home/Jordan/Projects/CPP/LearningVulkan/lib -I/home/Jordan/Projects/CPP/LearningVulkan/lib/stb -I/home/Jordan/Projects/CPP/LearningVulkan/lib/tinyobjloader -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/backends -I/home/Jordan/Projects/CPP/LearningVulkan/src -I/home/Jordan/Projects/CPP/LearningVulkan/src/utilities -I/home/Jordan/Projects/CPP/LearningVulkan/src/private -I/home/Jordan/Projects/CPP/LearningVulkan/src/public -std=c++20 -Wall -Wextra -O2 -o CMakeFiles/LearningVulkan.dir/src/main.cpp.o -c /home/Jordan/Projects/CPP/LearningVulkan/src/main.cpp",
"file": "/home/Jordan/Projects/CPP/LearningVulkan/src/main.cpp",
"output": "CMakeFiles/LearningVulkan.dir/src/main.cpp.o"
},
{
"directory": "/home/Jordan/Projects/CPP/LearningVulkan/build",
"command": "/usr/bin/c++ -I/home/Jordan/Projects/CPP/LearningVulkan/lib -I/home/Jordan/Projects/CPP/LearningVulkan/lib/stb -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/backends -I/home/Jordan/Projects/CPP/LearningVulkan/src -I/home/Jordan/Projects/CPP/LearningVulkan/src/utilities -I/home/Jordan/Projects/CPP/LearningVulkan/src/private -I/home/Jordan/Projects/CPP/LearningVulkan/src/public -std=c++20 -Wall -Wextra -O2 -o CMakeFiles/LearningVulkan.dir/src/private/GlfwWindowManager.cpp.o -c /home/Jordan/Projects/CPP/LearningVulkan/src/private/GlfwWindowManager.cpp",
"command": "/usr/bin/c++ -I/home/Jordan/Projects/CPP/LearningVulkan/lib -I/home/Jordan/Projects/CPP/LearningVulkan/lib/stb -I/home/Jordan/Projects/CPP/LearningVulkan/lib/tinyobjloader -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/backends -I/home/Jordan/Projects/CPP/LearningVulkan/src -I/home/Jordan/Projects/CPP/LearningVulkan/src/utilities -I/home/Jordan/Projects/CPP/LearningVulkan/src/private -I/home/Jordan/Projects/CPP/LearningVulkan/src/public -std=c++20 -Wall -Wextra -O2 -o CMakeFiles/LearningVulkan.dir/src/private/GlfwWindowManager.cpp.o -c /home/Jordan/Projects/CPP/LearningVulkan/src/private/GlfwWindowManager.cpp",
"file": "/home/Jordan/Projects/CPP/LearningVulkan/src/private/GlfwWindowManager.cpp",
"output": "CMakeFiles/LearningVulkan.dir/src/private/GlfwWindowManager.cpp.o"
},
{
"directory": "/home/Jordan/Projects/CPP/LearningVulkan/build",
"command": "/usr/bin/c++ -I/home/Jordan/Projects/CPP/LearningVulkan/lib -I/home/Jordan/Projects/CPP/LearningVulkan/lib/stb -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/backends -I/home/Jordan/Projects/CPP/LearningVulkan/src -I/home/Jordan/Projects/CPP/LearningVulkan/src/utilities -I/home/Jordan/Projects/CPP/LearningVulkan/src/private -I/home/Jordan/Projects/CPP/LearningVulkan/src/public -std=c++20 -Wall -Wextra -O2 -o CMakeFiles/LearningVulkan.dir/src/private/VulkanCommandBuffers.cpp.o -c /home/Jordan/Projects/CPP/LearningVulkan/src/private/VulkanCommandBuffers.cpp",
"file": "/home/Jordan/Projects/CPP/LearningVulkan/src/private/VulkanCommandBuffers.cpp",
"output": "CMakeFiles/LearningVulkan.dir/src/private/VulkanCommandBuffers.cpp.o"
"command": "/usr/bin/c++ -I/home/Jordan/Projects/CPP/LearningVulkan/lib -I/home/Jordan/Projects/CPP/LearningVulkan/lib/stb -I/home/Jordan/Projects/CPP/LearningVulkan/lib/tinyobjloader -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/backends -I/home/Jordan/Projects/CPP/LearningVulkan/src -I/home/Jordan/Projects/CPP/LearningVulkan/src/utilities -I/home/Jordan/Projects/CPP/LearningVulkan/src/private -I/home/Jordan/Projects/CPP/LearningVulkan/src/public -std=c++20 -Wall -Wextra -O2 -o CMakeFiles/LearningVulkan.dir/src/private/VulkanBuffers.cpp.o -c /home/Jordan/Projects/CPP/LearningVulkan/src/private/VulkanBuffers.cpp",
"file": "/home/Jordan/Projects/CPP/LearningVulkan/src/private/VulkanBuffers.cpp",
"output": "CMakeFiles/LearningVulkan.dir/src/private/VulkanBuffers.cpp.o"
},
{
"directory": "/home/Jordan/Projects/CPP/LearningVulkan/build",
"command": "/usr/bin/c++ -I/home/Jordan/Projects/CPP/LearningVulkan/lib -I/home/Jordan/Projects/CPP/LearningVulkan/lib/stb -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/backends -I/home/Jordan/Projects/CPP/LearningVulkan/src -I/home/Jordan/Projects/CPP/LearningVulkan/src/utilities -I/home/Jordan/Projects/CPP/LearningVulkan/src/private -I/home/Jordan/Projects/CPP/LearningVulkan/src/public -std=c++20 -Wall -Wextra -O2 -o CMakeFiles/LearningVulkan.dir/src/private/VulkanContext.cpp.o -c /home/Jordan/Projects/CPP/LearningVulkan/src/private/VulkanContext.cpp",
"command": "/usr/bin/c++ -I/home/Jordan/Projects/CPP/LearningVulkan/lib -I/home/Jordan/Projects/CPP/LearningVulkan/lib/stb -I/home/Jordan/Projects/CPP/LearningVulkan/lib/tinyobjloader -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/backends -I/home/Jordan/Projects/CPP/LearningVulkan/src -I/home/Jordan/Projects/CPP/LearningVulkan/src/utilities -I/home/Jordan/Projects/CPP/LearningVulkan/src/private -I/home/Jordan/Projects/CPP/LearningVulkan/src/public -std=c++20 -Wall -Wextra -O2 -o CMakeFiles/LearningVulkan.dir/src/private/VulkanContext.cpp.o -c /home/Jordan/Projects/CPP/LearningVulkan/src/private/VulkanContext.cpp",
"file": "/home/Jordan/Projects/CPP/LearningVulkan/src/private/VulkanContext.cpp",
"output": "CMakeFiles/LearningVulkan.dir/src/private/VulkanContext.cpp.o"
},
{
"directory": "/home/Jordan/Projects/CPP/LearningVulkan/build",
"command": "/usr/bin/c++ -I/home/Jordan/Projects/CPP/LearningVulkan/lib -I/home/Jordan/Projects/CPP/LearningVulkan/lib/stb -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/backends -I/home/Jordan/Projects/CPP/LearningVulkan/src -I/home/Jordan/Projects/CPP/LearningVulkan/src/utilities -I/home/Jordan/Projects/CPP/LearningVulkan/src/private -I/home/Jordan/Projects/CPP/LearningVulkan/src/public -std=c++20 -Wall -Wextra -O2 -o CMakeFiles/LearningVulkan.dir/src/private/VulkanDebugManager.cpp.o -c /home/Jordan/Projects/CPP/LearningVulkan/src/private/VulkanDebugManager.cpp",
"command": "/usr/bin/c++ -I/home/Jordan/Projects/CPP/LearningVulkan/lib -I/home/Jordan/Projects/CPP/LearningVulkan/lib/stb -I/home/Jordan/Projects/CPP/LearningVulkan/lib/tinyobjloader -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/backends -I/home/Jordan/Projects/CPP/LearningVulkan/src -I/home/Jordan/Projects/CPP/LearningVulkan/src/utilities -I/home/Jordan/Projects/CPP/LearningVulkan/src/private -I/home/Jordan/Projects/CPP/LearningVulkan/src/public -std=c++20 -Wall -Wextra -O2 -o CMakeFiles/LearningVulkan.dir/src/private/VulkanDebugManager.cpp.o -c /home/Jordan/Projects/CPP/LearningVulkan/src/private/VulkanDebugManager.cpp",
"file": "/home/Jordan/Projects/CPP/LearningVulkan/src/private/VulkanDebugManager.cpp",
"output": "CMakeFiles/LearningVulkan.dir/src/private/VulkanDebugManager.cpp.o"
},
{
"directory": "/home/Jordan/Projects/CPP/LearningVulkan/build",
"command": "/usr/bin/c++ -I/home/Jordan/Projects/CPP/LearningVulkan/lib -I/home/Jordan/Projects/CPP/LearningVulkan/lib/stb -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/backends -I/home/Jordan/Projects/CPP/LearningVulkan/src -I/home/Jordan/Projects/CPP/LearningVulkan/src/utilities -I/home/Jordan/Projects/CPP/LearningVulkan/src/private -I/home/Jordan/Projects/CPP/LearningVulkan/src/public -std=c++20 -Wall -Wextra -O2 -o CMakeFiles/LearningVulkan.dir/src/private/VulkanDeviceManager.cpp.o -c /home/Jordan/Projects/CPP/LearningVulkan/src/private/VulkanDeviceManager.cpp",
"command": "/usr/bin/c++ -I/home/Jordan/Projects/CPP/LearningVulkan/lib -I/home/Jordan/Projects/CPP/LearningVulkan/lib/stb -I/home/Jordan/Projects/CPP/LearningVulkan/lib/tinyobjloader -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/backends -I/home/Jordan/Projects/CPP/LearningVulkan/src -I/home/Jordan/Projects/CPP/LearningVulkan/src/utilities -I/home/Jordan/Projects/CPP/LearningVulkan/src/private -I/home/Jordan/Projects/CPP/LearningVulkan/src/public -std=c++20 -Wall -Wextra -O2 -o CMakeFiles/LearningVulkan.dir/src/private/VulkanDeviceManager.cpp.o -c /home/Jordan/Projects/CPP/LearningVulkan/src/private/VulkanDeviceManager.cpp",
"file": "/home/Jordan/Projects/CPP/LearningVulkan/src/private/VulkanDeviceManager.cpp",
"output": "CMakeFiles/LearningVulkan.dir/src/private/VulkanDeviceManager.cpp.o"
},
{
"directory": "/home/Jordan/Projects/CPP/LearningVulkan/build",
"command": "/usr/bin/c++ -I/home/Jordan/Projects/CPP/LearningVulkan/lib -I/home/Jordan/Projects/CPP/LearningVulkan/lib/stb -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/backends -I/home/Jordan/Projects/CPP/LearningVulkan/src -I/home/Jordan/Projects/CPP/LearningVulkan/src/utilities -I/home/Jordan/Projects/CPP/LearningVulkan/src/private -I/home/Jordan/Projects/CPP/LearningVulkan/src/public -std=c++20 -Wall -Wextra -O2 -o CMakeFiles/LearningVulkan.dir/src/private/VulkanFramebuffers.cpp.o -c /home/Jordan/Projects/CPP/LearningVulkan/src/private/VulkanFramebuffers.cpp",
"command": "/usr/bin/c++ -I/home/Jordan/Projects/CPP/LearningVulkan/lib -I/home/Jordan/Projects/CPP/LearningVulkan/lib/stb -I/home/Jordan/Projects/CPP/LearningVulkan/lib/tinyobjloader -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/backends -I/home/Jordan/Projects/CPP/LearningVulkan/src -I/home/Jordan/Projects/CPP/LearningVulkan/src/utilities -I/home/Jordan/Projects/CPP/LearningVulkan/src/private -I/home/Jordan/Projects/CPP/LearningVulkan/src/public -std=c++20 -Wall -Wextra -O2 -o CMakeFiles/LearningVulkan.dir/src/private/VulkanFramebuffers.cpp.o -c /home/Jordan/Projects/CPP/LearningVulkan/src/private/VulkanFramebuffers.cpp",
"file": "/home/Jordan/Projects/CPP/LearningVulkan/src/private/VulkanFramebuffers.cpp",
"output": "CMakeFiles/LearningVulkan.dir/src/private/VulkanFramebuffers.cpp.o"
},
{
"directory": "/home/Jordan/Projects/CPP/LearningVulkan/build",
"command": "/usr/bin/c++ -I/home/Jordan/Projects/CPP/LearningVulkan/lib -I/home/Jordan/Projects/CPP/LearningVulkan/lib/stb -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/backends -I/home/Jordan/Projects/CPP/LearningVulkan/src -I/home/Jordan/Projects/CPP/LearningVulkan/src/utilities -I/home/Jordan/Projects/CPP/LearningVulkan/src/private -I/home/Jordan/Projects/CPP/LearningVulkan/src/public -std=c++20 -Wall -Wextra -O2 -o CMakeFiles/LearningVulkan.dir/src/private/VulkanInstanceManager.cpp.o -c /home/Jordan/Projects/CPP/LearningVulkan/src/private/VulkanInstanceManager.cpp",
"command": "/usr/bin/c++ -I/home/Jordan/Projects/CPP/LearningVulkan/lib -I/home/Jordan/Projects/CPP/LearningVulkan/lib/stb -I/home/Jordan/Projects/CPP/LearningVulkan/lib/tinyobjloader -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/backends -I/home/Jordan/Projects/CPP/LearningVulkan/src -I/home/Jordan/Projects/CPP/LearningVulkan/src/utilities -I/home/Jordan/Projects/CPP/LearningVulkan/src/private -I/home/Jordan/Projects/CPP/LearningVulkan/src/public -std=c++20 -Wall -Wextra -O2 -o CMakeFiles/LearningVulkan.dir/src/private/VulkanInstanceManager.cpp.o -c /home/Jordan/Projects/CPP/LearningVulkan/src/private/VulkanInstanceManager.cpp",
"file": "/home/Jordan/Projects/CPP/LearningVulkan/src/private/VulkanInstanceManager.cpp",
"output": "CMakeFiles/LearningVulkan.dir/src/private/VulkanInstanceManager.cpp.o"
},
{
"directory": "/home/Jordan/Projects/CPP/LearningVulkan/build",
"command": "/usr/bin/c++ -I/home/Jordan/Projects/CPP/LearningVulkan/lib -I/home/Jordan/Projects/CPP/LearningVulkan/lib/stb -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/backends -I/home/Jordan/Projects/CPP/LearningVulkan/src -I/home/Jordan/Projects/CPP/LearningVulkan/src/utilities -I/home/Jordan/Projects/CPP/LearningVulkan/src/private -I/home/Jordan/Projects/CPP/LearningVulkan/src/public -std=c++20 -Wall -Wextra -O2 -o CMakeFiles/LearningVulkan.dir/src/private/VulkanPipeline.cpp.o -c /home/Jordan/Projects/CPP/LearningVulkan/src/private/VulkanPipeline.cpp",
"command": "/usr/bin/c++ -I/home/Jordan/Projects/CPP/LearningVulkan/lib -I/home/Jordan/Projects/CPP/LearningVulkan/lib/stb -I/home/Jordan/Projects/CPP/LearningVulkan/lib/tinyobjloader -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/backends -I/home/Jordan/Projects/CPP/LearningVulkan/src -I/home/Jordan/Projects/CPP/LearningVulkan/src/utilities -I/home/Jordan/Projects/CPP/LearningVulkan/src/private -I/home/Jordan/Projects/CPP/LearningVulkan/src/public -std=c++20 -Wall -Wextra -O2 -o CMakeFiles/LearningVulkan.dir/src/private/VulkanPipeline.cpp.o -c /home/Jordan/Projects/CPP/LearningVulkan/src/private/VulkanPipeline.cpp",
"file": "/home/Jordan/Projects/CPP/LearningVulkan/src/private/VulkanPipeline.cpp",
"output": "CMakeFiles/LearningVulkan.dir/src/private/VulkanPipeline.cpp.o"
},
{
"directory": "/home/Jordan/Projects/CPP/LearningVulkan/build",
"command": "/usr/bin/c++ -I/home/Jordan/Projects/CPP/LearningVulkan/lib -I/home/Jordan/Projects/CPP/LearningVulkan/lib/stb -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/backends -I/home/Jordan/Projects/CPP/LearningVulkan/src -I/home/Jordan/Projects/CPP/LearningVulkan/src/utilities -I/home/Jordan/Projects/CPP/LearningVulkan/src/private -I/home/Jordan/Projects/CPP/LearningVulkan/src/public -std=c++20 -Wall -Wextra -O2 -o CMakeFiles/LearningVulkan.dir/src/private/VulkanRenderPass.cpp.o -c /home/Jordan/Projects/CPP/LearningVulkan/src/private/VulkanRenderPass.cpp",
"command": "/usr/bin/c++ -I/home/Jordan/Projects/CPP/LearningVulkan/lib -I/home/Jordan/Projects/CPP/LearningVulkan/lib/stb -I/home/Jordan/Projects/CPP/LearningVulkan/lib/tinyobjloader -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/backends -I/home/Jordan/Projects/CPP/LearningVulkan/src -I/home/Jordan/Projects/CPP/LearningVulkan/src/utilities -I/home/Jordan/Projects/CPP/LearningVulkan/src/private -I/home/Jordan/Projects/CPP/LearningVulkan/src/public -std=c++20 -Wall -Wextra -O2 -o CMakeFiles/LearningVulkan.dir/src/private/VulkanRenderPass.cpp.o -c /home/Jordan/Projects/CPP/LearningVulkan/src/private/VulkanRenderPass.cpp",
"file": "/home/Jordan/Projects/CPP/LearningVulkan/src/private/VulkanRenderPass.cpp",
"output": "CMakeFiles/LearningVulkan.dir/src/private/VulkanRenderPass.cpp.o"
},
{
"directory": "/home/Jordan/Projects/CPP/LearningVulkan/build",
"command": "/usr/bin/c++ -I/home/Jordan/Projects/CPP/LearningVulkan/lib -I/home/Jordan/Projects/CPP/LearningVulkan/lib/stb -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/backends -I/home/Jordan/Projects/CPP/LearningVulkan/src -I/home/Jordan/Projects/CPP/LearningVulkan/src/utilities -I/home/Jordan/Projects/CPP/LearningVulkan/src/private -I/home/Jordan/Projects/CPP/LearningVulkan/src/public -std=c++20 -Wall -Wextra -O2 -o CMakeFiles/LearningVulkan.dir/src/private/VulkanSwapChain.cpp.o -c /home/Jordan/Projects/CPP/LearningVulkan/src/private/VulkanSwapChain.cpp",
"command": "/usr/bin/c++ -I/home/Jordan/Projects/CPP/LearningVulkan/lib -I/home/Jordan/Projects/CPP/LearningVulkan/lib/stb -I/home/Jordan/Projects/CPP/LearningVulkan/lib/tinyobjloader -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/backends -I/home/Jordan/Projects/CPP/LearningVulkan/src -I/home/Jordan/Projects/CPP/LearningVulkan/src/utilities -I/home/Jordan/Projects/CPP/LearningVulkan/src/private -I/home/Jordan/Projects/CPP/LearningVulkan/src/public -std=c++20 -Wall -Wextra -O2 -o CMakeFiles/LearningVulkan.dir/src/private/VulkanSwapChain.cpp.o -c /home/Jordan/Projects/CPP/LearningVulkan/src/private/VulkanSwapChain.cpp",
"file": "/home/Jordan/Projects/CPP/LearningVulkan/src/private/VulkanSwapChain.cpp",
"output": "CMakeFiles/LearningVulkan.dir/src/private/VulkanSwapChain.cpp.o"
},
{
"directory": "/home/Jordan/Projects/CPP/LearningVulkan/build",
"command": "/usr/bin/c++ -I/home/Jordan/Projects/CPP/LearningVulkan/lib -I/home/Jordan/Projects/CPP/LearningVulkan/lib/stb -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/backends -I/home/Jordan/Projects/CPP/LearningVulkan/src -I/home/Jordan/Projects/CPP/LearningVulkan/src/utilities -I/home/Jordan/Projects/CPP/LearningVulkan/src/private -I/home/Jordan/Projects/CPP/LearningVulkan/src/public -std=c++20 -Wall -Wextra -O2 -o CMakeFiles/LearningVulkan.dir/src/private/VulkanVertexBuffer.cpp.o -c /home/Jordan/Projects/CPP/LearningVulkan/src/private/VulkanVertexBuffer.cpp",
"file": "/home/Jordan/Projects/CPP/LearningVulkan/src/private/VulkanVertexBuffer.cpp",
"output": "CMakeFiles/LearningVulkan.dir/src/private/VulkanVertexBuffer.cpp.o"
"command": "/usr/bin/c++ -I/home/Jordan/Projects/CPP/LearningVulkan/lib -I/home/Jordan/Projects/CPP/LearningVulkan/lib/stb -I/home/Jordan/Projects/CPP/LearningVulkan/lib/tinyobjloader -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/backends -I/home/Jordan/Projects/CPP/LearningVulkan/src -I/home/Jordan/Projects/CPP/LearningVulkan/src/utilities -I/home/Jordan/Projects/CPP/LearningVulkan/src/private -I/home/Jordan/Projects/CPP/LearningVulkan/src/public -std=c++20 -Wall -Wextra -O2 -o CMakeFiles/LearningVulkan.dir/src/private/VulkanTexture.cpp.o -c /home/Jordan/Projects/CPP/LearningVulkan/src/private/VulkanTexture.cpp",
"file": "/home/Jordan/Projects/CPP/LearningVulkan/src/private/VulkanTexture.cpp",
"output": "CMakeFiles/LearningVulkan.dir/src/private/VulkanTexture.cpp.o"
},
{
"directory": "/home/Jordan/Projects/CPP/LearningVulkan/build",
"command": "/usr/bin/c++ -I/home/Jordan/Projects/CPP/LearningVulkan/lib -I/home/Jordan/Projects/CPP/LearningVulkan/lib/stb -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/backends -I/home/Jordan/Projects/CPP/LearningVulkan/src -I/home/Jordan/Projects/CPP/LearningVulkan/src/utilities -I/home/Jordan/Projects/CPP/LearningVulkan/src/private -I/home/Jordan/Projects/CPP/LearningVulkan/src/public -std=c++20 -Wall -Wextra -O2 -o CMakeFiles/LearningVulkan.dir/src/utilities/Logger.cpp.o -c /home/Jordan/Projects/CPP/LearningVulkan/src/utilities/Logger.cpp",
"command": "/usr/bin/c++ -I/home/Jordan/Projects/CPP/LearningVulkan/lib -I/home/Jordan/Projects/CPP/LearningVulkan/lib/stb -I/home/Jordan/Projects/CPP/LearningVulkan/lib/tinyobjloader -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/backends -I/home/Jordan/Projects/CPP/LearningVulkan/src -I/home/Jordan/Projects/CPP/LearningVulkan/src/utilities -I/home/Jordan/Projects/CPP/LearningVulkan/src/private -I/home/Jordan/Projects/CPP/LearningVulkan/src/public -std=c++20 -Wall -Wextra -O2 -o CMakeFiles/LearningVulkan.dir/src/utilities/Logger.cpp.o -c /home/Jordan/Projects/CPP/LearningVulkan/src/utilities/Logger.cpp",
"file": "/home/Jordan/Projects/CPP/LearningVulkan/src/utilities/Logger.cpp",
"output": "CMakeFiles/LearningVulkan.dir/src/utilities/Logger.cpp.o"
},
{
"directory": "/home/Jordan/Projects/CPP/LearningVulkan/build",
"command": "/usr/bin/c++ -I/home/Jordan/Projects/CPP/LearningVulkan/lib -I/home/Jordan/Projects/CPP/LearningVulkan/lib/stb -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/backends -I/home/Jordan/Projects/CPP/LearningVulkan/src -I/home/Jordan/Projects/CPP/LearningVulkan/src/utilities -I/home/Jordan/Projects/CPP/LearningVulkan/src/private -I/home/Jordan/Projects/CPP/LearningVulkan/src/public -std=c++20 -Wall -Wextra -O2 -o CMakeFiles/LearningVulkan.dir/src/utilities/stb_image_impl.cpp.o -c /home/Jordan/Projects/CPP/LearningVulkan/src/utilities/stb_image_impl.cpp",
"command": "/usr/bin/c++ -I/home/Jordan/Projects/CPP/LearningVulkan/lib -I/home/Jordan/Projects/CPP/LearningVulkan/lib/stb -I/home/Jordan/Projects/CPP/LearningVulkan/lib/tinyobjloader -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/backends -I/home/Jordan/Projects/CPP/LearningVulkan/src -I/home/Jordan/Projects/CPP/LearningVulkan/src/utilities -I/home/Jordan/Projects/CPP/LearningVulkan/src/private -I/home/Jordan/Projects/CPP/LearningVulkan/src/public -std=c++20 -Wall -Wextra -O2 -o CMakeFiles/LearningVulkan.dir/src/utilities/stb_image_impl.cpp.o -c /home/Jordan/Projects/CPP/LearningVulkan/src/utilities/stb_image_impl.cpp",
"file": "/home/Jordan/Projects/CPP/LearningVulkan/src/utilities/stb_image_impl.cpp",
"output": "CMakeFiles/LearningVulkan.dir/src/utilities/stb_image_impl.cpp.o"
},
{
"directory": "/home/Jordan/Projects/CPP/LearningVulkan/build",
"command": "/usr/bin/c++ -I/home/Jordan/Projects/CPP/LearningVulkan/lib -I/home/Jordan/Projects/CPP/LearningVulkan/lib/stb -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/backends -I/home/Jordan/Projects/CPP/LearningVulkan/src -I/home/Jordan/Projects/CPP/LearningVulkan/src/utilities -I/home/Jordan/Projects/CPP/LearningVulkan/src/private -I/home/Jordan/Projects/CPP/LearningVulkan/src/public -std=c++20 -Wall -Wextra -O2 -o CMakeFiles/LearningVulkan.dir/lib/imgui/imgui.cpp.o -c /home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/imgui.cpp",
"command": "/usr/bin/c++ -I/home/Jordan/Projects/CPP/LearningVulkan/lib -I/home/Jordan/Projects/CPP/LearningVulkan/lib/stb -I/home/Jordan/Projects/CPP/LearningVulkan/lib/tinyobjloader -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/backends -I/home/Jordan/Projects/CPP/LearningVulkan/src -I/home/Jordan/Projects/CPP/LearningVulkan/src/utilities -I/home/Jordan/Projects/CPP/LearningVulkan/src/private -I/home/Jordan/Projects/CPP/LearningVulkan/src/public -std=c++20 -Wall -Wextra -O2 -o CMakeFiles/LearningVulkan.dir/src/utilities/tiny_obj_loader_impl.cpp.o -c /home/Jordan/Projects/CPP/LearningVulkan/src/utilities/tiny_obj_loader_impl.cpp",
"file": "/home/Jordan/Projects/CPP/LearningVulkan/src/utilities/tiny_obj_loader_impl.cpp",
"output": "CMakeFiles/LearningVulkan.dir/src/utilities/tiny_obj_loader_impl.cpp.o"
},
{
"directory": "/home/Jordan/Projects/CPP/LearningVulkan/build",
"command": "/usr/bin/c++ -I/home/Jordan/Projects/CPP/LearningVulkan/lib -I/home/Jordan/Projects/CPP/LearningVulkan/lib/stb -I/home/Jordan/Projects/CPP/LearningVulkan/lib/tinyobjloader -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/backends -I/home/Jordan/Projects/CPP/LearningVulkan/src -I/home/Jordan/Projects/CPP/LearningVulkan/src/utilities -I/home/Jordan/Projects/CPP/LearningVulkan/src/private -I/home/Jordan/Projects/CPP/LearningVulkan/src/public -std=c++20 -Wall -Wextra -O2 -o CMakeFiles/LearningVulkan.dir/lib/imgui/imgui.cpp.o -c /home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/imgui.cpp",
"file": "/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/imgui.cpp",
"output": "CMakeFiles/LearningVulkan.dir/lib/imgui/imgui.cpp.o"
},
{
"directory": "/home/Jordan/Projects/CPP/LearningVulkan/build",
"command": "/usr/bin/c++ -I/home/Jordan/Projects/CPP/LearningVulkan/lib -I/home/Jordan/Projects/CPP/LearningVulkan/lib/stb -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/backends -I/home/Jordan/Projects/CPP/LearningVulkan/src -I/home/Jordan/Projects/CPP/LearningVulkan/src/utilities -I/home/Jordan/Projects/CPP/LearningVulkan/src/private -I/home/Jordan/Projects/CPP/LearningVulkan/src/public -std=c++20 -Wall -Wextra -O2 -o CMakeFiles/LearningVulkan.dir/lib/imgui/imgui_demo.cpp.o -c /home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/imgui_demo.cpp",
"command": "/usr/bin/c++ -I/home/Jordan/Projects/CPP/LearningVulkan/lib -I/home/Jordan/Projects/CPP/LearningVulkan/lib/stb -I/home/Jordan/Projects/CPP/LearningVulkan/lib/tinyobjloader -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/backends -I/home/Jordan/Projects/CPP/LearningVulkan/src -I/home/Jordan/Projects/CPP/LearningVulkan/src/utilities -I/home/Jordan/Projects/CPP/LearningVulkan/src/private -I/home/Jordan/Projects/CPP/LearningVulkan/src/public -std=c++20 -Wall -Wextra -O2 -o CMakeFiles/LearningVulkan.dir/lib/imgui/imgui_demo.cpp.o -c /home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/imgui_demo.cpp",
"file": "/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/imgui_demo.cpp",
"output": "CMakeFiles/LearningVulkan.dir/lib/imgui/imgui_demo.cpp.o"
},
{
"directory": "/home/Jordan/Projects/CPP/LearningVulkan/build",
"command": "/usr/bin/c++ -I/home/Jordan/Projects/CPP/LearningVulkan/lib -I/home/Jordan/Projects/CPP/LearningVulkan/lib/stb -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/backends -I/home/Jordan/Projects/CPP/LearningVulkan/src -I/home/Jordan/Projects/CPP/LearningVulkan/src/utilities -I/home/Jordan/Projects/CPP/LearningVulkan/src/private -I/home/Jordan/Projects/CPP/LearningVulkan/src/public -std=c++20 -Wall -Wextra -O2 -o CMakeFiles/LearningVulkan.dir/lib/imgui/imgui_draw.cpp.o -c /home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/imgui_draw.cpp",
"command": "/usr/bin/c++ -I/home/Jordan/Projects/CPP/LearningVulkan/lib -I/home/Jordan/Projects/CPP/LearningVulkan/lib/stb -I/home/Jordan/Projects/CPP/LearningVulkan/lib/tinyobjloader -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/backends -I/home/Jordan/Projects/CPP/LearningVulkan/src -I/home/Jordan/Projects/CPP/LearningVulkan/src/utilities -I/home/Jordan/Projects/CPP/LearningVulkan/src/private -I/home/Jordan/Projects/CPP/LearningVulkan/src/public -std=c++20 -Wall -Wextra -O2 -o CMakeFiles/LearningVulkan.dir/lib/imgui/imgui_draw.cpp.o -c /home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/imgui_draw.cpp",
"file": "/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/imgui_draw.cpp",
"output": "CMakeFiles/LearningVulkan.dir/lib/imgui/imgui_draw.cpp.o"
},
{
"directory": "/home/Jordan/Projects/CPP/LearningVulkan/build",
"command": "/usr/bin/c++ -I/home/Jordan/Projects/CPP/LearningVulkan/lib -I/home/Jordan/Projects/CPP/LearningVulkan/lib/stb -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/backends -I/home/Jordan/Projects/CPP/LearningVulkan/src -I/home/Jordan/Projects/CPP/LearningVulkan/src/utilities -I/home/Jordan/Projects/CPP/LearningVulkan/src/private -I/home/Jordan/Projects/CPP/LearningVulkan/src/public -std=c++20 -Wall -Wextra -O2 -o CMakeFiles/LearningVulkan.dir/lib/imgui/imgui_tables.cpp.o -c /home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/imgui_tables.cpp",
"command": "/usr/bin/c++ -I/home/Jordan/Projects/CPP/LearningVulkan/lib -I/home/Jordan/Projects/CPP/LearningVulkan/lib/stb -I/home/Jordan/Projects/CPP/LearningVulkan/lib/tinyobjloader -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/backends -I/home/Jordan/Projects/CPP/LearningVulkan/src -I/home/Jordan/Projects/CPP/LearningVulkan/src/utilities -I/home/Jordan/Projects/CPP/LearningVulkan/src/private -I/home/Jordan/Projects/CPP/LearningVulkan/src/public -std=c++20 -Wall -Wextra -O2 -o CMakeFiles/LearningVulkan.dir/lib/imgui/imgui_tables.cpp.o -c /home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/imgui_tables.cpp",
"file": "/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/imgui_tables.cpp",
"output": "CMakeFiles/LearningVulkan.dir/lib/imgui/imgui_tables.cpp.o"
},
{
"directory": "/home/Jordan/Projects/CPP/LearningVulkan/build",
"command": "/usr/bin/c++ -I/home/Jordan/Projects/CPP/LearningVulkan/lib -I/home/Jordan/Projects/CPP/LearningVulkan/lib/stb -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/backends -I/home/Jordan/Projects/CPP/LearningVulkan/src -I/home/Jordan/Projects/CPP/LearningVulkan/src/utilities -I/home/Jordan/Projects/CPP/LearningVulkan/src/private -I/home/Jordan/Projects/CPP/LearningVulkan/src/public -std=c++20 -Wall -Wextra -O2 -o CMakeFiles/LearningVulkan.dir/lib/imgui/imgui_widgets.cpp.o -c /home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/imgui_widgets.cpp",
"command": "/usr/bin/c++ -I/home/Jordan/Projects/CPP/LearningVulkan/lib -I/home/Jordan/Projects/CPP/LearningVulkan/lib/stb -I/home/Jordan/Projects/CPP/LearningVulkan/lib/tinyobjloader -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/backends -I/home/Jordan/Projects/CPP/LearningVulkan/src -I/home/Jordan/Projects/CPP/LearningVulkan/src/utilities -I/home/Jordan/Projects/CPP/LearningVulkan/src/private -I/home/Jordan/Projects/CPP/LearningVulkan/src/public -std=c++20 -Wall -Wextra -O2 -o CMakeFiles/LearningVulkan.dir/lib/imgui/imgui_widgets.cpp.o -c /home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/imgui_widgets.cpp",
"file": "/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/imgui_widgets.cpp",
"output": "CMakeFiles/LearningVulkan.dir/lib/imgui/imgui_widgets.cpp.o"
},
{
"directory": "/home/Jordan/Projects/CPP/LearningVulkan/build",
"command": "/usr/bin/c++ -I/home/Jordan/Projects/CPP/LearningVulkan/lib -I/home/Jordan/Projects/CPP/LearningVulkan/lib/stb -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/backends -I/home/Jordan/Projects/CPP/LearningVulkan/src -I/home/Jordan/Projects/CPP/LearningVulkan/src/utilities -I/home/Jordan/Projects/CPP/LearningVulkan/src/private -I/home/Jordan/Projects/CPP/LearningVulkan/src/public -std=c++20 -Wall -Wextra -O2 -o CMakeFiles/LearningVulkan.dir/lib/imgui/backends/imgui_impl_glfw.cpp.o -c /home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/backends/imgui_impl_glfw.cpp",
"command": "/usr/bin/c++ -I/home/Jordan/Projects/CPP/LearningVulkan/lib -I/home/Jordan/Projects/CPP/LearningVulkan/lib/stb -I/home/Jordan/Projects/CPP/LearningVulkan/lib/tinyobjloader -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/backends -I/home/Jordan/Projects/CPP/LearningVulkan/src -I/home/Jordan/Projects/CPP/LearningVulkan/src/utilities -I/home/Jordan/Projects/CPP/LearningVulkan/src/private -I/home/Jordan/Projects/CPP/LearningVulkan/src/public -std=c++20 -Wall -Wextra -O2 -o CMakeFiles/LearningVulkan.dir/lib/imgui/backends/imgui_impl_glfw.cpp.o -c /home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/backends/imgui_impl_glfw.cpp",
"file": "/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/backends/imgui_impl_glfw.cpp",
"output": "CMakeFiles/LearningVulkan.dir/lib/imgui/backends/imgui_impl_glfw.cpp.o"
},
{
"directory": "/home/Jordan/Projects/CPP/LearningVulkan/build",
"command": "/usr/bin/c++ -I/home/Jordan/Projects/CPP/LearningVulkan/lib -I/home/Jordan/Projects/CPP/LearningVulkan/lib/stb -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/backends -I/home/Jordan/Projects/CPP/LearningVulkan/src -I/home/Jordan/Projects/CPP/LearningVulkan/src/utilities -I/home/Jordan/Projects/CPP/LearningVulkan/src/private -I/home/Jordan/Projects/CPP/LearningVulkan/src/public -std=c++20 -Wall -Wextra -O2 -o CMakeFiles/LearningVulkan.dir/lib/imgui/backends/imgui_impl_vulkan.cpp.o -c /home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/backends/imgui_impl_vulkan.cpp",
"command": "/usr/bin/c++ -I/home/Jordan/Projects/CPP/LearningVulkan/lib -I/home/Jordan/Projects/CPP/LearningVulkan/lib/stb -I/home/Jordan/Projects/CPP/LearningVulkan/lib/tinyobjloader -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/backends -I/home/Jordan/Projects/CPP/LearningVulkan/src -I/home/Jordan/Projects/CPP/LearningVulkan/src/utilities -I/home/Jordan/Projects/CPP/LearningVulkan/src/private -I/home/Jordan/Projects/CPP/LearningVulkan/src/public -std=c++20 -Wall -Wextra -O2 -o CMakeFiles/LearningVulkan.dir/lib/imgui/backends/imgui_impl_vulkan.cpp.o -c /home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/backends/imgui_impl_vulkan.cpp",
"file": "/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/backends/imgui_impl_vulkan.cpp",
"output": "CMakeFiles/LearningVulkan.dir/lib/imgui/backends/imgui_impl_vulkan.cpp.o"
}

File diff suppressed because it is too large Load Diff

View File

@@ -1,24 +1,32 @@
#include "GlfwWindowManager.h"
#include "VulkanContext.hpp"
#include "VulkanDeviceManager.h"
#include "Primitives.h"
#include "Logger.h"
#include <GLFW/glfw3.h>
#include <cstdint>
#include <string>
#include <unordered_map>
#include <vulkan/vulkan_core.h>
#include "imgui.h"
#include "imgui_impl_glfw.h"
#include "imgui_impl_vulkan.h"
#include "tiny_obj_loader.h"
#include "utilities/Logger.h"
#include "GlfwWindowManager.h"
#include "VulkanContext.h"
#include <cstdint>
#include <vector>
struct AppConfig
{
std::string Title = "Learning Vulkan";
uint32_t Width = 800;
uint32_t Height = 600;
bool bResizable = true;
bool bFullscreen = false;
bool bValidationEnabled = false;
bool bVerboseLogging = false;
std::string Title = "Learning Vulkan";
uint32_t Width = 800;
uint32_t Height = 600;
bool bResizable = true;
bool bFullscreen = false;
bool bValidationEnabled = false;
bool bVerboseLogging = false;
const std::string MODEL_PATH = "models/viking_room.obj";
const std::string TEXTURE_PATH = "textures/viking_room.png";
};
// const std::vector<Vertex> TriangleVertices = {
@@ -27,22 +35,26 @@ struct AppConfig
// { { -0.5f, 0.5f }, { 0.0f, 0.0f, 1.0f } }
// };
const std::vector<Vertex> SquareVertices = {
{ { -0.5f, -0.5f }, { 1.0f, 0.0f, 0.0f } },
{ { 0.5f, -0.5f }, { 0.0f, 1.0f, 0.0f } },
{ { 0.5f, 0.5f }, { 0.0f, 0.0f, 1.0f } },
{ { -0.5f, 0.5f }, { 1.0f, 1.0f, 1.0f } }
};
// const std::vector<Vertex> SquareVertices = {
// { { -0.5f, -0.5f, 0.0f }, { 1.0f, 0.0f, 0.0f }, { 1.0f, 0.0f } },
// { { 0.5f, -0.5f, 0.0f }, { 0.0f, 1.0f, 0.0f }, { 0.0f, 0.0f } },
// { { 0.5f, 0.5f, 0.0f }, { 0.0f, 0.0f, 1.0f }, { 0.0f, 1.0f } },
// { { -0.5f, 0.5f, 0.0f }, { 1.0f, 1.0f, 1.0f }, { 1.0f, 1.0f } },
//
// { { -0.5f, -0.5f, -0.5f }, { 1.0f, 0.0f, 0.0f }, { 1.0f, 0.0f } },
// { { 0.5f, -0.5f, -0.5f }, { 0.0f, 1.0f, 0.0f }, { 0.0f, 0.0f } },
// { { 0.5f, 0.5f, -0.5f }, { 0.0f, 0.0f, 1.0f }, { 0.0f, 1.0f } },
// { { -0.5f, 0.5f, -0.5f }, { 1.0f, 1.0f, 1.0f }, { 1.0f, 1.0f } }
// };
const std::vector<uint16_t> SquareIndices = {
0, 1, 2, 2, 3, 0
};
// const std::vector<uint16_t> SquareIndices = { 0, 1, 2, 2, 3, 0, 4, 5, 6, 6, 7, 4 };
class HelloTriangleApplication
{
public:
void Run()
{
LoadModel();
Initialization();
Log::Info("Initialization finished...");
MainLoop();
@@ -58,6 +70,9 @@ private:
bool bShowImGui = false;
bool bShowDemo = false;
std::vector<Vertex> Vertices;
std::vector<uint32_t> Indices;
static void KeyCallback(GLFWwindow* Window, int Key, int Scancode, int Action, int Mods)
{
auto App = reinterpret_cast<HelloTriangleApplication*>(glfwGetWindowUserPointer(Window));
@@ -82,6 +97,62 @@ private:
}
}
void LoadModel()
{
tinyobj::attrib_t Attribute;
std::vector<tinyobj::shape_t> Shapes;
std::vector<tinyobj::material_t> Materials;
std::string Error;
std::string Warning;
if (!tinyobj::LoadObj(
&Attribute,
&Shapes,
&Materials,
&Warning,
&Error,
Settings.MODEL_PATH.c_str()
))
{
Log::Error(Error);
}
Log::Info("Parsing model...");
Log::Info("Models : " + std::to_string(Shapes.size()));
std::unordered_map<Vertex, uint32_t> UniqueVertices{};
for (const auto& Shape : Shapes)
{
Log::Info("Models vertices : " + std::to_string(Shape.mesh.indices.size()));
for (const auto& Index : Shape.mesh.indices)
{
Vertex Vertex{};
Vertex.Position = { Attribute.vertices[3 * Index.vertex_index + 0],
Attribute.vertices[3 * Index.vertex_index + 1],
Attribute.vertices[3 * Index.vertex_index + 2] };
Vertex.TextureCoordinates = {
Attribute.texcoords[2 * Index.texcoord_index + 0],
1.0 - Attribute.texcoords[2 * Index.texcoord_index + 1]
};
Vertex.Color = { 1.0f, 1.0f, 1.0f };
if (UniqueVertices.count(Vertex) == 0)
{
UniqueVertices[Vertex] = static_cast<uint32_t>(Vertices.size());
Vertices.push_back(Vertex);
}
// Vertices.push_back(Vertex);
Indices.push_back(UniqueVertices[Vertex]);
}
}
Log::Info("Final size : " + std::to_string(Vertices.size()));
}
void Initialization()
{
InitGlfw();
@@ -95,23 +166,22 @@ private:
void InitVulkan()
{
FVulkanConfig Config = {
Settings.bValidationEnabled,
Settings.bVerboseLogging,
WindowManager.GetWindow(),
};
VkContext.Initialize(Config, SquareVertices, SquareIndices);
FVulkanConfig Config = { Settings.bValidationEnabled,
Settings.bVerboseLogging,
WindowManager.GetWindow(),
Settings.MODEL_PATH,
Settings.TEXTURE_PATH };
VkContext.Initialize(Config, Vertices, Indices);
}
void InitGlfw()
{
FWindowConfig Config = {
Settings.Title,
Settings.Width,
Settings.Height,
Settings.bResizable,
Settings.bFullscreen
};
FWindowConfig Config = { Settings.Title,
Settings.Width,
Settings.Height,
Settings.bResizable,
Settings.bFullscreen };
WindowManager.Initialize(Config);
glfwSetWindowUserPointer(WindowManager.GetWindow(), this);
@@ -129,7 +199,7 @@ private:
void MainLoop()
{
VkPhysicalDeviceProperties Properties{};
vkGetPhysicalDeviceProperties(VkContext.DeviceManager.GetPhysicalDevice(), &Properties);
vkGetPhysicalDeviceProperties(VkContext.DeviceManager->GetPhysicalDevice(), &Properties);
while (!WindowManager.ShouldClose())
{
@@ -152,7 +222,7 @@ private:
}
}
VkContext.DrawFrame(bShowImGui, SquareVertices.size(), SquareIndices.size());
VkContext.DrawFrame(bShowImGui, Vertices.size(), Indices.size());
}
}

View File

@@ -0,0 +1,479 @@
#include "VulkanBuffers.h"
#include "imgui.h"
#include "imgui_impl_vulkan.h"
#include "utilities/Logger.h"
#include <cstddef>
#include <vulkan/vulkan_core.h>
void VulkanBuffers::Initialize(FBufferConfig InConfig)
// VkDevice InDevice,
// VkRenderPass InRenderPass)
{
Config = InConfig;
}
void VulkanBuffers::Cleanup(size_t MAX_FRAMES_IN_FLIGHT)
{
vkDestroyCommandPool(Config.Device, CommandPool, nullptr);
for (size_t i = 0; i < MAX_FRAMES_IN_FLIGHT; i++)
{
vkDestroyBuffer(Config.Device, UniformBuffers[i], nullptr);
vkFreeMemory(Config.Device, UniformBuffersMemory[i], nullptr);
}
vkDestroyBuffer(Config.Device, IndexBuffer, nullptr);
vkFreeMemory(Config.Device, IndexBufferMemory, nullptr);
vkDestroyBuffer(Config.Device, VertexBuffer, nullptr);
vkFreeMemory(Config.Device, VertexBufferMemory, nullptr);
}
void VulkanBuffers::CreateCommandPool(std::optional<uint32_t> GraphicsFamily)
{
VkCommandPoolCreateInfo PoolInfo{};
PoolInfo.sType = VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO;
PoolInfo.flags = VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT;
PoolInfo.queueFamilyIndex = GraphicsFamily.value();
if (vkCreateCommandPool(Config.Device, &PoolInfo, nullptr, &CommandPool) != VK_SUCCESS)
{
Log::Error("Failed to create command pool!");
}
else
{
Log::Info("Successfully created command pool");
}
}
void VulkanBuffers::CreateCommandBuffers(int FramesInFlight)
{
CommandBuffers.resize(FramesInFlight);
VkCommandBufferAllocateInfo AllocateInfo{};
AllocateInfo.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO;
AllocateInfo.commandPool = CommandPool;
AllocateInfo.level = VK_COMMAND_BUFFER_LEVEL_PRIMARY;
AllocateInfo.commandBufferCount = (uint32_t)CommandBuffers.size();
if (vkAllocateCommandBuffers(Config.Device, &AllocateInfo, CommandBuffers.data()) != VK_SUCCESS)
{
Log::Error("Failed to allocate command buffers!");
}
else
{
Log::Info("Successfully allocated command buffers.");
}
}
void VulkanBuffers::RecordCommandBuffer(FRecordBuffersParams& Params)
{
VkCommandBufferBeginInfo BeginInfo{};
BeginInfo.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO;
BeginInfo.flags = 0;
BeginInfo.pInheritanceInfo = nullptr;
if (vkBeginCommandBuffer(Params.InCommandBuffer, &BeginInfo) != VK_SUCCESS)
{
Log::Error("Failed to begin recording command buffer!");
}
else
{
// Log::Info("Successfully began recording command buffers.");
}
VkRenderPassBeginInfo RenderPassInfo{};
RenderPassInfo.sType = VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO;
RenderPassInfo.renderPass = Config.RenderPass;
RenderPassInfo.framebuffer = Params.SwapChainFramebuffers[Params.ImageIndex];
RenderPassInfo.renderArea.offset = { 0, 0 };
RenderPassInfo.renderArea.extent = { Params.SwapChainExtent };
std::array<VkClearValue, 2> ClearValues{};
ClearValues[0].color = { { 0.0f, 0.0f, 0.0f, 1.0f } };
ClearValues[1].depthStencil = { 1.0f, 0 };
RenderPassInfo.clearValueCount = static_cast<uint32_t>(ClearValues.size());
RenderPassInfo.pClearValues = ClearValues.data();
vkCmdBeginRenderPass(Params.InCommandBuffer, &RenderPassInfo, VK_SUBPASS_CONTENTS_INLINE);
vkCmdBindPipeline(
Params.InCommandBuffer,
VK_PIPELINE_BIND_POINT_GRAPHICS,
Params.GraphicsPipeline
);
VkViewport Viewport{};
Viewport.x = 0.0f;
Viewport.y = 0.0f;
Viewport.width = static_cast<float>(Params.SwapChainExtent.width);
Viewport.height = static_cast<float>(Params.SwapChainExtent.height);
Viewport.minDepth = 0.0f;
Viewport.maxDepth = 1.0f;
vkCmdSetViewport(Params.InCommandBuffer, 0, 1, &Viewport);
VkRect2D Scissor{};
Scissor.offset = { 0, 0 };
Scissor.extent = Params.SwapChainExtent;
vkCmdSetScissor(Params.InCommandBuffer, 0, 1, &Scissor);
VkBuffer VertexBuffers[] = { Params.InVertexBuffer };
VkDeviceSize Offsets[] = { 0 };
vkCmdBindVertexBuffers(Params.InCommandBuffer, 0, 1, VertexBuffers, Offsets);
vkCmdBindIndexBuffer(Params.InCommandBuffer, Params.InIndexBuffer, 0, VK_INDEX_TYPE_UINT32);
vkCmdBindDescriptorSets(
Params.InCommandBuffer,
VK_PIPELINE_BIND_POINT_GRAPHICS,
Params.PipelineLayout,
0,
1,
&Params.DescriptorSet,
0,
nullptr
);
// vkCmdDraw(Params.InCommandBuffer, static_cast<uint32_t>(Params.InVerticesSize), 1, 0, 0);
vkCmdDrawIndexed(Params.InCommandBuffer, static_cast<uint32_t>(Params.InIndexSize), 1, 0, 0, 0);
if (Params.bDrawImGui)
{
ImGui::Render();
ImGui_ImplVulkan_RenderDrawData(ImGui::GetDrawData(), Params.InCommandBuffer);
}
vkCmdEndRenderPass(Params.InCommandBuffer);
if (vkEndCommandBuffer(Params.InCommandBuffer) != VK_SUCCESS)
{
Log::Error("Failed to record command buffer!");
}
else
{
// Log::Info("Successfully recorded command buffer.");
}
}
VkCommandBuffer VulkanBuffers::BeginSingleTimeCommands()
{
VkCommandBufferAllocateInfo AllocateInfo{};
AllocateInfo.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO;
AllocateInfo.level = VK_COMMAND_BUFFER_LEVEL_PRIMARY;
AllocateInfo.commandPool = CommandPool;
AllocateInfo.commandBufferCount = 1;
VkCommandBuffer CommandBuffer;
vkAllocateCommandBuffers(Config.Device, &AllocateInfo, &CommandBuffer);
VkCommandBufferBeginInfo BeginInfo{};
BeginInfo.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO;
BeginInfo.flags = VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT;
vkBeginCommandBuffer(CommandBuffer, &BeginInfo);
return CommandBuffer;
}
void VulkanBuffers::EndSingleTimeCommands(VkCommandBuffer InCommandBuffer, VkQueue GraphicsQueue)
{
vkEndCommandBuffer(InCommandBuffer);
VkSubmitInfo SubmitInfo{};
SubmitInfo.sType = VK_STRUCTURE_TYPE_SUBMIT_INFO;
SubmitInfo.commandBufferCount = 1;
SubmitInfo.pCommandBuffers = &InCommandBuffer;
vkQueueSubmit(GraphicsQueue, 1, &SubmitInfo, VK_NULL_HANDLE);
vkQueueWaitIdle(GraphicsQueue);
vkFreeCommandBuffers(Config.Device, CommandPool, 1, &InCommandBuffer);
}
void VulkanBuffers::TransitionImageLayout(
VkImage Image,
VkFormat Format,
VkImageLayout OldLayout,
VkImageLayout NewLayout,
bool bHasStencilComponent
)
{
VkCommandBuffer CommandBuffer = BeginSingleTimeCommands();
VkImageMemoryBarrier Barrier{};
Barrier.sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER;
Barrier.oldLayout = OldLayout;
Barrier.newLayout = NewLayout;
Barrier.srcQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED;
Barrier.dstQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED;
Barrier.image = Image;
Barrier.subresourceRange.baseMipLevel = 0;
Barrier.subresourceRange.levelCount = 1;
Barrier.subresourceRange.baseArrayLayer = 0;
Barrier.subresourceRange.layerCount = 1;
Barrier.srcAccessMask = 0;
Barrier.dstAccessMask = 0;
VkPipelineStageFlags SourceStage;
VkPipelineStageFlags DestinationStage;
if (NewLayout == VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL)
{
Barrier.subresourceRange.aspectMask = VK_IMAGE_ASPECT_DEPTH_BIT;
if (bHasStencilComponent)
{
Barrier.subresourceRange.aspectMask |= VK_IMAGE_ASPECT_STENCIL_BIT;
}
}
else
{
Barrier.subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT;
}
if (OldLayout == VK_IMAGE_LAYOUT_UNDEFINED && NewLayout == VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL)
{
Barrier.srcAccessMask = 0;
Barrier.dstAccessMask = VK_ACCESS_TRANSFER_WRITE_BIT;
SourceStage = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT;
DestinationStage = VK_PIPELINE_STAGE_TRANSFER_BIT;
}
else if (OldLayout == VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL
&& NewLayout == VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL)
{
Barrier.srcAccessMask = VK_ACCESS_TRANSFER_WRITE_BIT;
Barrier.dstAccessMask = VK_ACCESS_SHADER_READ_BIT;
SourceStage = VK_PIPELINE_STAGE_TRANSFER_BIT;
DestinationStage = VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT;
}
else if (OldLayout == VK_IMAGE_LAYOUT_UNDEFINED
&& NewLayout == VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL)
{
Barrier.srcAccessMask = 0;
Barrier.dstAccessMask = VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT
| VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT;
SourceStage = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT;
DestinationStage = VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT;
}
else
{
Log::Error("Unsupported layout transition!");
}
vkCmdPipelineBarrier(
CommandBuffer,
SourceStage,
DestinationStage,
0,
0,
nullptr,
0,
nullptr,
1,
&Barrier
);
EndSingleTimeCommands(CommandBuffer, Config.GraphicsQueue);
}
void VulkanBuffers::CopyBufferToImage(
VkBuffer Buffer,
VkImage Image,
uint32_t Width,
uint32_t Height
)
{
VkCommandBuffer CommandBuffer = BeginSingleTimeCommands();
VkBufferImageCopy Region{};
Region.bufferOffset = 0;
Region.bufferRowLength = 0;
Region.bufferImageHeight = 0;
Region.imageSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT;
Region.imageSubresource.mipLevel = 0;
Region.imageSubresource.baseArrayLayer = 0;
Region.imageSubresource.layerCount = 1;
Region.imageOffset = { 0, 0, 0 };
Region.imageExtent = { Width, Height, 1 };
vkCmdCopyBufferToImage(
CommandBuffer,
Buffer,
Image,
VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL,
1,
&Region
);
EndSingleTimeCommands(CommandBuffer, Config.GraphicsQueue);
}
void VulkanBuffers::CopyBuffer(
VkQueue GraphicsQueue,
VkBuffer SrcBuffer,
VkBuffer DstBuffer,
VkDeviceSize Size
)
{
VkCommandBuffer CommandBuffer = BeginSingleTimeCommands();
VkBufferCopy CopyRegion{};
CopyRegion.size = Size;
vkCmdCopyBuffer(CommandBuffer, SrcBuffer, DstBuffer, 1, &CopyRegion);
EndSingleTimeCommands(CommandBuffer, GraphicsQueue);
}
void VulkanBuffers::CreateBuffer(
VkDeviceSize Size,
VkBufferUsageFlags Usage,
VkMemoryPropertyFlags Properties,
VkBuffer& Buffer,
VkDeviceMemory& BufferMemory
)
{
VkBufferCreateInfo BufferInfo{};
BufferInfo.sType = VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO;
BufferInfo.size = Size;
BufferInfo.usage = Usage;
BufferInfo.sharingMode = VK_SHARING_MODE_EXCLUSIVE;
if (vkCreateBuffer(Config.Device, &BufferInfo, nullptr, &Buffer) != VK_SUCCESS)
{
throw std::runtime_error("failed to create buffer!");
}
VkMemoryRequirements MemRequirements;
vkGetBufferMemoryRequirements(Config.Device, Buffer, &MemRequirements);
VkMemoryAllocateInfo allocInfo{};
allocInfo.sType = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO;
allocInfo.allocationSize = MemRequirements.size;
allocInfo.memoryTypeIndex = FindMemoryType(MemRequirements.memoryTypeBits, Properties);
if (vkAllocateMemory(Config.Device, &allocInfo, nullptr, &BufferMemory) != VK_SUCCESS)
{
throw std::runtime_error("failed to allocate buffer memory!");
}
vkBindBufferMemory(Config.Device, Buffer, BufferMemory, 0);
}
void VulkanBuffers::CreateVertexBuffer(const std::vector<Vertex>& InVertices)
{
VkDeviceSize BufferSize = sizeof(InVertices[0]) * InVertices.size();
VkBuffer StagingBuffer;
VkDeviceMemory StagingBufferMemory;
CreateBuffer(
BufferSize,
VK_BUFFER_USAGE_TRANSFER_SRC_BIT,
VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT,
StagingBuffer,
StagingBufferMemory
);
Log::Info("Starting buffer copy...");
void* Data;
vkMapMemory(Config.Device, StagingBufferMemory, 0, BufferSize, 0, &Data);
memcpy(Data, InVertices.data(), (size_t)BufferSize);
vkUnmapMemory(Config.Device, StagingBufferMemory);
Log::Info("Finished buffer copy...");
CreateBuffer(
BufferSize,
VK_BUFFER_USAGE_TRANSFER_DST_BIT | VK_BUFFER_USAGE_VERTEX_BUFFER_BIT,
VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT,
VertexBuffer,
VertexBufferMemory
);
CopyBuffer(Config.GraphicsQueue, StagingBuffer, VertexBuffer, BufferSize);
vkDestroyBuffer(Config.Device, StagingBuffer, nullptr);
vkFreeMemory(Config.Device, StagingBufferMemory, nullptr);
}
void VulkanBuffers::CreateIndexBuffer(const std::vector<uint32_t>& InIndices)
{
VkDeviceSize BufferSize = sizeof(InIndices[0]) * InIndices.size();
VkBuffer StagingBuffer;
VkDeviceMemory StagingBufferMemory;
CreateBuffer(
BufferSize,
VK_BUFFER_USAGE_TRANSFER_SRC_BIT,
VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT,
StagingBuffer,
StagingBufferMemory
);
Log::Info("Starting buffer copy...");
void* Data;
vkMapMemory(Config.Device, StagingBufferMemory, 0, BufferSize, 0, &Data);
memcpy(Data, InIndices.data(), (size_t)BufferSize);
vkUnmapMemory(Config.Device, StagingBufferMemory);
Log::Info("Finished buffer copy...");
CreateBuffer(
BufferSize,
VK_BUFFER_USAGE_TRANSFER_DST_BIT | VK_BUFFER_USAGE_INDEX_BUFFER_BIT,
VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT,
IndexBuffer,
IndexBufferMemory
);
CopyBuffer(Config.GraphicsQueue, StagingBuffer, IndexBuffer, BufferSize);
vkDestroyBuffer(Config.Device, StagingBuffer, nullptr);
vkFreeMemory(Config.Device, StagingBufferMemory, nullptr);
}
void VulkanBuffers::CreateUniformBuffers(const uint32_t MAX_FRAMES_IN_FLIGHT)
{
VkDeviceSize BufferSize = sizeof(UniformBufferObject);
UniformBuffers.resize(MAX_FRAMES_IN_FLIGHT);
UniformBuffersMemory.resize(MAX_FRAMES_IN_FLIGHT);
UniformBuffersMapped.resize(MAX_FRAMES_IN_FLIGHT);
for (size_t i = 0; i < MAX_FRAMES_IN_FLIGHT; i++)
{
CreateBuffer(
BufferSize,
VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT,
VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT,
UniformBuffers[i],
UniformBuffersMemory[i]
);
vkMapMemory(
Config.Device,
UniformBuffersMemory[i],
0,
BufferSize,
0,
&UniformBuffersMapped[i]
);
}
}
uint32_t VulkanBuffers::FindMemoryType(uint32_t TypeFilter, VkMemoryPropertyFlags Properties)
{
VkPhysicalDeviceMemoryProperties MemoryProperties;
vkGetPhysicalDeviceMemoryProperties(Config.PhysicalDevice, &MemoryProperties);
for (uint32_t i = 0; i < MemoryProperties.memoryTypeCount; i++)
{
if ((TypeFilter & (1 << i))
&& (MemoryProperties.memoryTypes[i].propertyFlags & Properties) == Properties)
{
return i;
}
}
Log::Error("Failed to find suitable memory type!");
return 0;
}

View File

@@ -1,129 +0,0 @@
#include "VulkanCommandBuffers.h"
#include "imgui.h"
#include "imgui_impl_vulkan.h"
#include "utilities/Logger.h"
#include <cstdint>
#include <vulkan/vulkan_core.h>
void VulkanCommandBuffers::Initialize(
VkDevice InDevice,
VkRenderPass InRenderPass)
{
Device = InDevice;
RenderPass = InRenderPass;
}
void VulkanCommandBuffers::Cleanup()
{
vkDestroyCommandPool(Device, CommandPool, nullptr);
}
void VulkanCommandBuffers::CreateCommandPool(std::optional<uint32_t> GraphicsFamily)
{
VkCommandPoolCreateInfo PoolInfo{};
PoolInfo.sType = VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO;
PoolInfo.flags = VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT;
PoolInfo.queueFamilyIndex = GraphicsFamily.value();
if (vkCreateCommandPool(Device, &PoolInfo, nullptr, &CommandPool) != VK_SUCCESS)
{
Log::Error("Failed to create command pool!");
}
else
{
Log::Info("Successfully created command pool");
}
}
void VulkanCommandBuffers::CreateCommandBuffers(int FramesInFlight)
{
CommandBuffers.resize(FramesInFlight);
VkCommandBufferAllocateInfo AllocateInfo{};
AllocateInfo.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO;
AllocateInfo.commandPool = CommandPool;
AllocateInfo.level = VK_COMMAND_BUFFER_LEVEL_PRIMARY;
AllocateInfo.commandBufferCount = (uint32_t)CommandBuffers.size();
if (vkAllocateCommandBuffers(Device, &AllocateInfo, CommandBuffers.data()) != VK_SUCCESS)
{
Log::Error("Failed to allocate command buffers!");
}
else
{
Log::Info("Successfully allocated command buffers.");
}
}
void VulkanCommandBuffers::RecordCommandBuffer(FRecordCommandBuffersParams& Params)
{
VkCommandBufferBeginInfo BeginInfo{};
BeginInfo.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO;
BeginInfo.flags = 0;
BeginInfo.pInheritanceInfo = nullptr;
if (vkBeginCommandBuffer(Params.InCommandBuffer, &BeginInfo) != VK_SUCCESS)
{
Log::Error("Failed to begin recording command buffer!");
}
else
{
// Log::Info("Successfully began recording command buffers.");
}
VkRenderPassBeginInfo RenderPassInfo{};
RenderPassInfo.sType = VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO;
RenderPassInfo.renderPass = RenderPass;
RenderPassInfo.framebuffer = Params.SwapChainFramebuffers[Params.ImageIndex];
RenderPassInfo.renderArea.offset = { 0, 0 };
RenderPassInfo.renderArea.extent = { Params.SwapChainExtent };
VkClearValue ClearColor = { { { 0.0f, 0.0f, 0.0f, 1.0f } } };
RenderPassInfo.clearValueCount = 1;
RenderPassInfo.pClearValues = &ClearColor;
vkCmdBeginRenderPass(Params.InCommandBuffer, &RenderPassInfo, VK_SUBPASS_CONTENTS_INLINE);
vkCmdBindPipeline(Params.InCommandBuffer, VK_PIPELINE_BIND_POINT_GRAPHICS, Params.GraphicsPipeline);
VkViewport Viewport{};
Viewport.x = 0.0f;
Viewport.y = 0.0f;
Viewport.width = static_cast<float>(Params.SwapChainExtent.width);
Viewport.height = static_cast<float>(Params.SwapChainExtent.height);
Viewport.minDepth = 0.0f;
Viewport.maxDepth = 1.0f;
vkCmdSetViewport(Params.InCommandBuffer, 0, 1, &Viewport);
VkRect2D Scissor{};
Scissor.offset = { 0, 0 };
Scissor.extent = Params.SwapChainExtent;
vkCmdSetScissor(Params.InCommandBuffer, 0, 1, &Scissor);
VkBuffer VertexBuffers[] = { Params.InVertexBuffer };
VkDeviceSize Offsets[] = { 0 };
vkCmdBindVertexBuffers(Params.InCommandBuffer, 0, 1, VertexBuffers, Offsets);
vkCmdBindIndexBuffer(Params.InCommandBuffer, Params.InIndexBuffer, 0, VK_INDEX_TYPE_UINT16);
vkCmdBindDescriptorSets(Params.InCommandBuffer, VK_PIPELINE_BIND_POINT_GRAPHICS, Params.PipelineLayout, 0, 1, &Params.DescriptorSet, 0, nullptr);
// vkCmdDraw(Params.InCommandBuffer, static_cast<uint32_t>(Params.InVerticesSize), 1, 0, 0);
vkCmdDrawIndexed(Params.InCommandBuffer, static_cast<uint32_t>(Params.InIndexSize), 1, 0, 0, 0);
if (Params.bDrawImGui)
{
ImGui::Render();
ImGui_ImplVulkan_RenderDrawData(ImGui::GetDrawData(), Params.InCommandBuffer);
}
vkCmdEndRenderPass(Params.InCommandBuffer);
if (vkEndCommandBuffer(Params.InCommandBuffer) != VK_SUCCESS)
{
Log::Error("Failed to record command buffer!");
}
else
{
// Log::Info("Successfully recorded command buffer.");
}
}

View File

@@ -1,15 +1,24 @@
#include "VulkanContext.h"
#include "VulkanCommandBuffers.h"
#include "VulkanContext.hpp"
#include "VulkanTexture.hpp"
#include "VulkanBuffers.h"
#include "VulkanDebugManager.h"
// #include "VulkanDepthPass.hpp"
#include "VulkanDeviceManager.h"
#include "VulkanFramebuffers.h"
#include "VulkanInstanceManager.hpp"
#include "VulkanPipeline.h"
#include "VulkanRenderPass.h"
#include "VulkanSwapChain.h"
#include "VulkanVertexBuffer.h"
#include "utilities/Logger.h"
#include "stb_image.h"
#include <chrono>
#include <cstdint>
#include <memory>
#include <vector>
#include "imgui_impl_glfw.h"
#include "imgui_impl_vulkan.h"
#include "stb_image.h"
#include <GLFW/glfw3.h>
#include <glm/ext/matrix_clip_space.hpp>
@@ -20,120 +29,151 @@
#define GLM_FORCE_RADIANS
#define GLM_FORCE_DEFAULT_ALIGNED_GENTYPES
#define GLM_FORCE_DEPTH_ZERO_TO_ONE
#include <glm/glm.hpp>
#include <glm/gtc/matrix_transform.hpp>
#include <chrono>
#include <cstdint>
#include <vector>
#include "utilities/Logger.h"
VulkanContext::VulkanContext()
{
}
VulkanContext::VulkanContext() {}
VulkanContext::~VulkanContext()
{
}
VulkanContext::~VulkanContext() {}
void VulkanContext::Initialize(FVulkanConfig& InConfig, const std::vector<Vertex>& InVertices, const std::vector<uint16_t>& InIndices)
void VulkanContext::Initialize(
FVulkanConfig& InConfig,
const std::vector<Vertex>& InVertices,
const std::vector<uint32_t>& InIndices
)
{
Config = InConfig;
InstanceManager = std::make_unique<VulkanInstanceManager>();
DebugManager = std::make_unique<VulkanDebugManager>();
if (Config.bValidationEnabled)
{
InstanceManager.CreateInstance(&DebugManager);
DebugManager.Initialize(InstanceManager.GetInstance());
InstanceManager->CreateInstance(DebugManager.get());
DebugManager->Initialize(InstanceManager->GetInstance());
}
else
{
InstanceManager.CreateInstance();
InstanceManager->CreateInstance();
}
CreateSurface(InConfig.Window);
DeviceManager.Initialize(FDeviceConfig(
InstanceManager.GetInstance(),
Config.bValidationEnabled,
DeviceManager = std::make_unique<VulkanDeviceManager>(
InstanceManager->GetInstance(),
Surface,
InConfig.Window));
DeviceManager.PickPhysicalDevice();
DeviceManager.CreateLogicalDevice();
InConfig.Window,
Config.bValidationEnabled
);
DeviceManager->PickPhysicalDevice();
DeviceManager->CreateLogicalDevice();
auto SwapChainSupport = DeviceManager.QuerySwapChainSupport(DeviceManager.GetPhysicalDevice());
VkDevice Device = DeviceManager->GetDevice();
VkPhysicalDevice PhysicalDevice = DeviceManager->GetPhysicalDevice();
VkQueue GraphicsQueue = DeviceManager->GetGraphicsQueue();
SwapChain.Initialize(FSwapConfig(
DeviceManager.GetDevice(),
RenderPass = std::make_unique<VulkanRenderPass>();
RenderPass->Initialize(Device);
GraphicsPipeline = std::make_unique<VulkanPipeline>();
GraphicsPipeline->Initialize(Device);
auto SwapChainSupport = DeviceManager->QuerySwapChainSupport(PhysicalDevice);
SwapChain = std::make_unique<VulkanSwapChain>(
Device,
Surface,
Config.Window,
DeviceManager.GetPhysicalQueueFamilies().GraphicsFamily,
DeviceManager.GetPhysicalQueueFamilies().PresentFamily,
DeviceManager->GetPhysicalQueueFamilies().GraphicsFamily.value(),
DeviceManager->GetPhysicalQueueFamilies().PresentFamily.value(),
SwapChainSupport.Capabilities,
SwapChainSupport.Formats,
SwapChainSupport.PresentModes));
SwapChainSupport.PresentModes
);
SwapChain->CreateSwapChain();
SwapChain->CreateImageViews();
SwapChain.CreateSwapChain();
SwapChain.CreateImageViews();
Buffers = std::make_unique<VulkanBuffers>();
RenderPass.Initialize(DeviceManager.GetDevice());
RenderPass.CreateRenderPass(SwapChain.GetSwapChainImageFormat());
Textures = std::make_unique<VulkanTexture>(
Device,
PhysicalDevice,
GraphicsQueue,
*Buffers,
*SwapChain
);
uint32_t imageCount = SwapChain->GetSwapChainImagesCount();
MAX_FRAMES_IN_FLIGHT = imageCount;
RenderPass->CreateRenderPass(SwapChain->GetSwapChainImageFormat(), Textures->FindDepthFormat());
CreateDescriptorSetLayout();
GraphicsPipeline.Initialize(DeviceManager.GetDevice());
GraphicsPipeline.CreateGraphicsPipeline(SwapChain.GetSwapChainExtent(), RenderPass.GetRenderPass(), DescriptorSetLayout);
GraphicsPipeline->CreateGraphicsPipeline(
SwapChain->GetSwapChainExtent(),
RenderPass->GetRenderPass(),
DescriptorSetLayout
);
Framebuffers.Initialize(FFramebufferConfig(
DeviceManager.GetDevice(),
RenderPass.GetRenderPass(),
SwapChain.GetSwapChainImageViews(),
SwapChain.GetSwapChainExtent()));
Framebuffers.CreateFramebuffers();
Buffers->Initialize(
FBufferConfig(Device, RenderPass->GetRenderPass(), PhysicalDevice, GraphicsQueue)
);
Buffers->CreateCommandPool(DeviceManager->GetPhysicalQueueFamilies().GraphicsFamily);
CommandBuffers.Initialize(DeviceManager.GetDevice(), RenderPass.GetRenderPass());
CommandBuffers.CreateCommandPool(DeviceManager.GetPhysicalQueueFamilies().GraphicsFamily);
Textures->CreateDepthResources();
CreateTextureImage("textures/texture.jpg");
Framebuffers = std::make_unique<VulkanFramebuffers>();
Framebuffers->Initialize(FFramebufferConfig(
Device,
RenderPass->GetRenderPass(),
SwapChain->GetSwapChainImageViews(),
SwapChain->GetSwapChainExtent()
));
Framebuffers->CreateFramebuffers(Textures->GetDepthImageView());
VertexBuffer.Initialize(FVertexBufferConfig(
DeviceManager.GetDevice(),
DeviceManager.GetPhysicalDevice(),
CommandBuffers.GetCommandPool(),
DeviceManager.GetGraphicsQueue()));
VertexBuffer.CreateVertexBuffer(InVertices);
VertexBuffer.CreateIndexBuffer(InIndices);
VertexBuffer.CreateUniformBuffers(MAX_FRAMES_IN_FLIGHT);
Textures->LoadFromFile(Config.TexturePath.c_str());
Textures->CreateImageView();
Textures->CreateSampler();
Buffers->CreateVertexBuffer(InVertices);
Buffers->CreateIndexBuffer(InIndices);
Buffers->CreateUniformBuffers(MAX_FRAMES_IN_FLIGHT);
CreateDescriptorPool();
CreateDescriptorSets();
CommandBuffers.CreateCommandBuffers(MAX_FRAMES_IN_FLIGHT);
Buffers->CreateCommandBuffers(MAX_FRAMES_IN_FLIGHT);
CreateSyncObjects();
VkDescriptorPoolSize PoolSizes[] = {
{ VK_DESCRIPTOR_TYPE_SAMPLER, 1000 },
{ VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, 1000 },
{ VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, 1000 },
{ VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, 1000 },
{ VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER, 1000 },
{ VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER, 1000 },
{ VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, 1000 },
{ VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, 1000 },
{ VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC, 1000 },
{ VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC, 1000 },
{ VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, 1000 }
};
VkDescriptorPoolSize PoolSizes[] = { { VK_DESCRIPTOR_TYPE_SAMPLER, 1000 },
{ VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, 1000 },
{ VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, 1000 },
{ VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, 1000 },
{ VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER, 1000 },
{ VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER, 1000 },
{ VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, 1000 },
{ VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, 1000 },
{ VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC, 1000 },
{ VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC, 1000 },
{ VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, 1000 } };
VkDescriptorPoolCreateInfo PoolInfo = {};
PoolInfo.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO;
PoolInfo.flags = VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT;
PoolInfo.maxSets = 1000;
PoolInfo.poolSizeCount = (uint32_t)std::size(PoolSizes);
PoolInfo.pPoolSizes = PoolSizes;
vkCreateDescriptorPool(DeviceManager.GetDevice(), &PoolInfo, nullptr, &ImGuiPool);
vkCreateDescriptorPool(DeviceManager->GetDevice(), &PoolInfo, nullptr, &ImGuiPool);
}
void VulkanContext::Cleanup()
{
vkDeviceWaitIdle(DeviceManager->GetDevice());
if (bImGuiVulkanInitialized)
{
ImGui_ImplVulkan_Shutdown();
@@ -144,34 +184,41 @@ void VulkanContext::Cleanup()
ImGui_ImplGlfw_Shutdown();
}
CleanupSwapChain();
Textures->Cleanup();
Framebuffers->Cleanup();
SwapChain->Cleanup();
vkDestroyDescriptorPool(DeviceManager.GetDevice(), DescriptorPool, nullptr);
vkDestroyDescriptorSetLayout(DeviceManager.GetDevice(), DescriptorSetLayout, nullptr);
// vkDestroySampler(DeviceManager->GetDevice(), TextureSampler, nullptr);
// vkDestroyImageView(DeviceManager->GetDevice(), TextureImageView, nullptr);
VertexBuffer.Cleanup(MAX_FRAMES_IN_FLIGHT);
vkDestroyDescriptorPool(DeviceManager->GetDevice(), ImGuiPool, nullptr);
// vkDestroyImage(DeviceManager->GetDevice(), TextureImage, nullptr);
// vkFreeMemory(DeviceManager->GetDevice(), TextureImageMemory, nullptr);
GraphicsPipeline.Cleanup();
RenderPass.Cleanup();
vkDestroyDescriptorPool(DeviceManager->GetDevice(), DescriptorPool, nullptr);
vkDestroyDescriptorSetLayout(DeviceManager->GetDevice(), DescriptorSetLayout, nullptr);
Buffers->Cleanup(MAX_FRAMES_IN_FLIGHT);
GraphicsPipeline->Cleanup();
RenderPass->Cleanup();
for (size_t i = 0; i < MAX_FRAMES_IN_FLIGHT; i++)
{
vkDestroySemaphore(DeviceManager.GetDevice(), ImageAvailableSemaphores[i], nullptr);
vkDestroySemaphore(DeviceManager.GetDevice(), RenderFinishedSemaphores[i], nullptr);
vkDestroyFence(DeviceManager.GetDevice(), InFlightFences[i], nullptr);
vkDestroySemaphore(DeviceManager->GetDevice(), ImageAvailableSemaphores[i], nullptr);
vkDestroySemaphore(DeviceManager->GetDevice(), RenderFinishedSemaphores[i], nullptr);
vkDestroyFence(DeviceManager->GetDevice(), InFlightFences[i], nullptr);
}
CommandBuffers.Cleanup();
DeviceManager.Cleanup();
DeviceManager->Cleanup();
if (Config.bValidationEnabled)
{
DebugManager.Cleanup();
DebugManager->Cleanup();
}
vkDestroySurfaceKHR(InstanceManager.GetInstance(), Surface, nullptr);
InstanceManager.Cleanup();
vkDestroySurfaceKHR(InstanceManager->GetInstance(), Surface, nullptr);
InstanceManager->Cleanup();
}
void VulkanContext::CreateSurface(GLFWwindow* Window)
@@ -181,12 +228,13 @@ void VulkanContext::CreateSurface(GLFWwindow* Window)
Log::Error("Window not initialized.");
}
if (!InstanceManager.GetInstance())
if (!InstanceManager->GetInstance())
{
Log::Error("Instance is null.");
}
VkResult result = glfwCreateWindowSurface(InstanceManager.GetInstance(), Window, nullptr, &Surface);
VkResult result =
glfwCreateWindowSurface(InstanceManager->GetInstance(), Window, nullptr, &Surface);
if (result != VK_SUCCESS)
{
std::string errorMsg;
@@ -223,12 +271,28 @@ void VulkanContext::CreateDescriptorSetLayout()
UboLayoutBinding.stageFlags = VK_SHADER_STAGE_VERTEX_BIT;
UboLayoutBinding.pImmutableSamplers = nullptr;
VkDescriptorSetLayoutBinding SamplerLayoutBinding{};
SamplerLayoutBinding.binding = 1;
SamplerLayoutBinding.descriptorCount = 1;
SamplerLayoutBinding.descriptorType = VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER;
SamplerLayoutBinding.pImmutableSamplers = nullptr;
SamplerLayoutBinding.stageFlags = VK_SHADER_STAGE_FRAGMENT_BIT;
std::array<VkDescriptorSetLayoutBinding, 2> Bindings = { UboLayoutBinding,
SamplerLayoutBinding };
VkDescriptorSetLayoutCreateInfo LayoutInfo{};
LayoutInfo.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO;
LayoutInfo.bindingCount = 1;
LayoutInfo.pBindings = &UboLayoutBinding;
LayoutInfo.bindingCount = static_cast<uint32_t>(Bindings.size());
LayoutInfo.pBindings = Bindings.data();
if (vkCreateDescriptorSetLayout(DeviceManager.GetDevice(), &LayoutInfo, nullptr, &DescriptorSetLayout) != VK_SUCCESS)
if (vkCreateDescriptorSetLayout(
DeviceManager->GetDevice(),
&LayoutInfo,
nullptr,
&DescriptorSetLayout
)
!= VK_SUCCESS)
{
Log::Error("Failed to create descriptor set layout!");
}
@@ -240,17 +304,20 @@ void VulkanContext::CreateDescriptorSetLayout()
void VulkanContext::CreateDescriptorPool()
{
VkDescriptorPoolSize PoolSize{};
PoolSize.type = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER;
PoolSize.descriptorCount = static_cast<uint32_t>(MAX_FRAMES_IN_FLIGHT);
std::array<VkDescriptorPoolSize, 2> PoolSizes{};
PoolSizes[0].type = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER;
PoolSizes[0].descriptorCount = static_cast<uint32_t>(MAX_FRAMES_IN_FLIGHT);
PoolSizes[1].type = VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER;
PoolSizes[1].descriptorCount = static_cast<uint32_t>(MAX_FRAMES_IN_FLIGHT);
VkDescriptorPoolCreateInfo PoolInfo{};
PoolInfo.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO;
PoolInfo.poolSizeCount = 1;
PoolInfo.pPoolSizes = &PoolSize;
PoolInfo.poolSizeCount = static_cast<uint32_t>(PoolSizes.size());
PoolInfo.pPoolSizes = PoolSizes.data();
PoolInfo.maxSets = static_cast<uint32_t>(MAX_FRAMES_IN_FLIGHT);
if (vkCreateDescriptorPool(DeviceManager.GetDevice(), &PoolInfo, nullptr, &DescriptorPool) != VK_SUCCESS)
if (vkCreateDescriptorPool(DeviceManager->GetDevice(), &PoolInfo, nullptr, &DescriptorPool)
!= VK_SUCCESS)
{
Log::Error("Failed to create descriptor pool!");
}
@@ -271,7 +338,8 @@ void VulkanContext::CreateDescriptorSets()
AllocateInfo.pSetLayouts = Layouts.data();
DescriptorSets.resize(MAX_FRAMES_IN_FLIGHT);
if (vkAllocateDescriptorSets(DeviceManager.GetDevice(), &AllocateInfo, DescriptorSets.data()) != VK_SUCCESS)
if (vkAllocateDescriptorSets(DeviceManager->GetDevice(), &AllocateInfo, DescriptorSets.data())
!= VK_SUCCESS)
{
Log::Error("Failed to allocate descriptor sets!");
}
@@ -283,117 +351,247 @@ void VulkanContext::CreateDescriptorSets()
for (size_t i = 0; i < MAX_FRAMES_IN_FLIGHT; i++)
{
VkDescriptorBufferInfo BufferInfo{};
BufferInfo.buffer = VertexBuffer.GetUniformBuffers()[i];
BufferInfo.buffer = Buffers->GetUniformBuffers()[i];
BufferInfo.offset = 0;
BufferInfo.range = sizeof(UniformBufferObject);
VkWriteDescriptorSet DescriptorWrite{};
DescriptorWrite.sType = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET;
DescriptorWrite.dstSet = DescriptorSets[i];
DescriptorWrite.dstBinding = 0;
DescriptorWrite.dstArrayElement = 0;
DescriptorWrite.descriptorType = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER;
DescriptorWrite.descriptorCount = 1;
DescriptorWrite.pBufferInfo = &BufferInfo;
DescriptorWrite.pImageInfo = nullptr;
DescriptorWrite.pTexelBufferView = nullptr;
VkDescriptorImageInfo ImageInfo{};
ImageInfo.imageLayout = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL;
ImageInfo.imageView = Textures->GetImageView();
ImageInfo.sampler = Textures->GetSampler();
vkUpdateDescriptorSets(DeviceManager.GetDevice(), 1, &DescriptorWrite, 0, nullptr);
std::array<VkWriteDescriptorSet, 2> DescriptorWrites{};
DescriptorWrites[0].sType = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET;
DescriptorWrites[0].dstSet = DescriptorSets[i];
DescriptorWrites[0].dstBinding = 0;
DescriptorWrites[0].dstArrayElement = 0;
DescriptorWrites[0].descriptorType = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER;
DescriptorWrites[0].descriptorCount = 1;
DescriptorWrites[0].pBufferInfo = &BufferInfo;
DescriptorWrites[1].sType = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET;
DescriptorWrites[1].dstSet = DescriptorSets[i];
DescriptorWrites[1].dstBinding = 1;
DescriptorWrites[1].dstArrayElement = 0;
DescriptorWrites[1].descriptorType = VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER;
DescriptorWrites[1].descriptorCount = 1;
DescriptorWrites[1].pImageInfo = &ImageInfo;
vkUpdateDescriptorSets(
DeviceManager->GetDevice(),
static_cast<uint32_t>(DescriptorWrites.size()),
DescriptorWrites.data(),
0,
nullptr
);
}
}
void VulkanContext::CreateImage(
uint32_t Width,
uint32_t Height,
VkFormat Format,
VkImageTiling Tiling,
VkImageUsageFlags Usage,
VkMemoryPropertyFlags Properties,
VkImage& Image,
VkDeviceMemory& ImageMemory)
{
// void VulkanContext::CreateImage(
// uint32_t Width,
// uint32_t Height,
// VkFormat Format,
// VkImageTiling Tiling,
// VkImageUsageFlags Usage,
// VkMemoryPropertyFlags Properties,
// VkImage& Image,
// VkDeviceMemory& ImageMemory
// )
// {
//
// VkImageCreateInfo ImageInfo{};
// ImageInfo.sType = VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO;
// ImageInfo.imageType = VK_IMAGE_TYPE_2D;
// ImageInfo.extent.width = Width;
// ImageInfo.extent.height = Height;
// ImageInfo.extent.depth = 1;
// ImageInfo.mipLevels = 1;
// ImageInfo.arrayLayers = 1;
// ImageInfo.format = Format;
// ImageInfo.tiling = Tiling;
// ImageInfo.initialLayout = VK_IMAGE_LAYOUT_UNDEFINED;
// ImageInfo.usage = Usage;
// ImageInfo.samples = VK_SAMPLE_COUNT_1_BIT;
// ImageInfo.sharingMode = VK_SHARING_MODE_EXCLUSIVE;
//
// if (vkCreateImage(DeviceManager->GetDevice(), &ImageInfo, nullptr, &Image) != VK_SUCCESS)
// {
// Log::Error("Failed to create image!");
// }
// else
// {
// Log::Info("Successfully created image.");
// }
//
// VkMemoryRequirements MemoryRequirements;
// vkGetImageMemoryRequirements(DeviceManager->GetDevice(), Image, &MemoryRequirements);
//
// VkMemoryAllocateInfo AllocateInfo{};
// AllocateInfo.sType = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO;
// AllocateInfo.allocationSize = MemoryRequirements.size;
// AllocateInfo.memoryTypeIndex =
// Buffers->FindMemoryType(MemoryRequirements.memoryTypeBits, Properties);
//
// if (vkAllocateMemory(DeviceManager->GetDevice(), &AllocateInfo, nullptr, &ImageMemory)
// != VK_SUCCESS)
// {
// Log::Error("Failed to allocate image memory!");
// }
// else
// {
// Log::Info("Successfully allocated imaged memory.");
// }
//
// vkBindImageMemory(DeviceManager->GetDevice(), Image, ImageMemory, 0);
// }
//
// void VulkanContext::CreateDepthResources()
// {
// if (!DepthPass)
// {
// DepthPass = std::make_unique<VulkanDepthPass>();
// }
// VkFormat DepthFormat = DepthPass->FindDepthFormat();
// VkExtent2D Extents = SwapChain->GetSwapChainExtent();
//
// CreateImage(
// Extents.width,
// Extents.height,
// DepthFormat,
// VK_IMAGE_TILING_OPTIMAL,
// VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT,
// VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT,
// DepthPass->GetDepthImage(),
// DepthPass->GetDepthImageMemory()
// );
//
// DepthPass->SetDepthImageView(SwapChain->CreateImageView(
// DepthPass->GetDepthImage(),
// DepthFormat,
// VK_IMAGE_ASPECT_DEPTH_BIT
// ));
//
// Buffers->TransitionImageLayout(
// DepthPass->GetDepthImage(),
// DepthFormat,
// VK_IMAGE_LAYOUT_UNDEFINED,
// VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL
// );
// }
//
// void VulkanContext::CreateTextureImage(const char* FileName)
// {
// int TextureWidth, TextureHeight, TextureChannels;
// stbi_uc* Pixels =
// stbi_load(FileName, &TextureWidth, &TextureHeight, &TextureChannels, STBI_rgb_alpha);
// VkDeviceSize ImageSize = TextureWidth * TextureHeight * 4;
//
// if (!Pixels)
// {
// Log::Error("Failed to load texture image!");
// }
// else
// {
// Log::Info("Successfully loaded texture image.");
// }
//
// VkBuffer StagingBuffer;
// VkDeviceMemory StagingBufferMemory;
//
// Buffers->CreateBuffer(
// ImageSize,
// VK_BUFFER_USAGE_TRANSFER_SRC_BIT,
// VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT,
// StagingBuffer,
// StagingBufferMemory
// );
//
// void* Data;
// vkMapMemory(DeviceManager->GetDevice(), StagingBufferMemory, 0, ImageSize, 0, &Data);
// memcpy(Data, Pixels, static_cast<size_t>(ImageSize));
// vkUnmapMemory(DeviceManager->GetDevice(), StagingBufferMemory);
//
// stbi_image_free(Pixels);
//
// CreateImage(
// TextureWidth,
// TextureHeight,
// VK_FORMAT_R8G8B8A8_SRGB,
// VK_IMAGE_TILING_OPTIMAL,
// VK_IMAGE_USAGE_TRANSFER_DST_BIT | VK_IMAGE_USAGE_SAMPLED_BIT,
// VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT,
// TextureImage,
// TextureImageMemory
// );
//
// Buffers->TransitionImageLayout(
// TextureImage,
// VK_FORMAT_R8G8B8A8_SRGB,
// VK_IMAGE_LAYOUT_UNDEFINED,
// VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL
// );
//
// Buffers->CopyBufferToImage(
// StagingBuffer,
// TextureImage,
// static_cast<uint32_t>(TextureWidth),
// static_cast<uint32_t>(TextureHeight)
// );
//
// Buffers->TransitionImageLayout(
// TextureImage,
// VK_FORMAT_R8G8B8A8_SRGB,
// VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL,
// VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL
// );
//
// vkDestroyBuffer(DeviceManager->GetDevice(), StagingBuffer, nullptr);
// vkFreeMemory(DeviceManager->GetDevice(), StagingBufferMemory, nullptr);
// }
//
// void VulkanContext::CreateTextureImageView()
// {
// TextureImageView = SwapChain->CreateImageView(
// TextureImage,
// VK_FORMAT_R8G8B8A8_SRGB,
// VK_IMAGE_ASPECT_COLOR_BIT
// );
// }
VkImageCreateInfo ImageInfo{};
ImageInfo.sType = VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO;
ImageInfo.imageType = VK_IMAGE_TYPE_2D;
ImageInfo.extent.width = Width;
ImageInfo.extent.height = Height;
ImageInfo.extent.depth = 1;
ImageInfo.mipLevels = 1;
ImageInfo.arrayLayers = 1;
ImageInfo.format = Format;
ImageInfo.tiling = Tiling;
ImageInfo.initialLayout = VK_IMAGE_LAYOUT_UNDEFINED;
ImageInfo.usage = Usage;
ImageInfo.samples = VK_SAMPLE_COUNT_1_BIT;
ImageInfo.sharingMode = VK_SHARING_MODE_EXCLUSIVE;
if (vkCreateImage(DeviceManager.GetDevice(), &ImageInfo, nullptr, &Image) != VK_SUCCESS)
{
Log::Error("Failed to create image!");
}
else
{
Log::Info("Successfully created image.");
}
VkMemoryRequirements MemoryRequirements;
vkGetImageMemoryRequirements(DeviceManager.GetDevice(), Image, &MemoryRequirements);
VkMemoryAllocateInfo AllocateInfo{};
AllocateInfo.sType = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO;
AllocateInfo.allocationSize = MemoryRequirements.size;
AllocateInfo.memoryTypeIndex = VertexBuffer.FindMemoryType(MemoryRequirements.memoryTypeBits, Properties);
if (vkAllocateMemory(DeviceManager.GetDevice(), &AllocateInfo, nullptr, &ImageMemory) != VK_SUCCESS)
{
Log::Error("Failed to allocate image memory!");
}
else
{
Log::Info("Successfully allocated imaged memory.");
}
vkBindImageMemory(DeviceManager.GetDevice(), Image, ImageMemory, 0);
}
void VulkanContext::CreateTextureImage(const char* FileName)
{
int TextureWidth, TextureHeight, TextureChannels;
stbi_uc* Pixels = stbi_load(FileName, &TextureWidth, &TextureHeight, &TextureChannels, STBI_rgb_alpha);
VkDeviceSize ImageSize = TextureWidth * TextureHeight * 4;
if (!Pixels)
{
Log::Error("Failed to load texture image!");
}
else
{
Log::Info("Successfully loaded texture image.");
}
VkBuffer StagingBuffer;
VkDeviceMemory StagingBufferMemory;
VertexBuffer.CreateBuffer(ImageSize, VK_BUFFER_USAGE_TRANSFER_SRC_BIT, VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT, StagingBuffer, StagingBufferMemory);
void* Data;
vkMapMemory(DeviceManager.GetDevice(), StagingBufferMemory, 0, ImageSize, 0, &Data);
memcpy(Data, Pixels, static_cast<size_t>(ImageSize));
vkUnmapMemory(DeviceManager.GetDevice(), StagingBufferMemory);
stbi_image_free(Pixels);
CreateImage(
TextureWidth,
TextureHeight,
VK_FORMAT_R8G8B8A8_SRGB,
VK_IMAGE_TILING_OPTIMAL,
VK_IMAGE_USAGE_TRANSFER_DST_BIT | VK_IMAGE_USAGE_SAMPLED_BIT,
VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT,
TextureImage,
TextureImageMemory);
}
// void VulkanContext::CreateTextureSampler()
// {
// VkSamplerCreateInfo SamplerInfo{};
// SamplerInfo.sType = VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO;
// SamplerInfo.magFilter = VK_FILTER_LINEAR;
// SamplerInfo.minFilter = VK_FILTER_LINEAR;
// SamplerInfo.addressModeU = VK_SAMPLER_ADDRESS_MODE_REPEAT;
// SamplerInfo.addressModeV = VK_SAMPLER_ADDRESS_MODE_REPEAT;
// SamplerInfo.addressModeW = VK_SAMPLER_ADDRESS_MODE_REPEAT;
// SamplerInfo.anisotropyEnable = VK_TRUE;
//
// VkPhysicalDeviceProperties Properties{};
// vkGetPhysicalDeviceProperties(DeviceManager->GetPhysicalDevice(), &Properties);
//
// SamplerInfo.maxAnisotropy = Properties.limits.maxSamplerAnisotropy;
// SamplerInfo.borderColor = VK_BORDER_COLOR_INT_OPAQUE_BLACK;
// SamplerInfo.unnormalizedCoordinates = VK_FALSE;
// SamplerInfo.compareEnable = VK_FALSE;
// SamplerInfo.compareOp = VK_COMPARE_OP_ALWAYS;
// SamplerInfo.mipmapMode = VK_SAMPLER_MIPMAP_MODE_LINEAR;
// SamplerInfo.mipLodBias = 0.0f;
// SamplerInfo.minLod = 0.0f;
// SamplerInfo.maxLod = 0.0f;
//
// if (vkCreateSampler(DeviceManager->GetDevice(), &SamplerInfo, nullptr, &TextureSampler)
// != VK_SUCCESS)
// {
// Log::Error("Failed to create texture sampler!");
// }
// else
// {
// Log::Info("Successfully created texture sampler.");
// }
// }
void VulkanContext::CreateSyncObjects()
{
@@ -410,9 +608,20 @@ void VulkanContext::CreateSyncObjects()
for (size_t i = 0; i < MAX_FRAMES_IN_FLIGHT; i++)
{
if (vkCreateSemaphore(DeviceManager.GetDevice(), &SemaphoreInfo, nullptr, &ImageAvailableSemaphores[i]) != VK_SUCCESS
|| vkCreateSemaphore(DeviceManager.GetDevice(), &SemaphoreInfo, nullptr, &RenderFinishedSemaphores[i]) != VK_SUCCESS
|| vkCreateFence(DeviceManager.GetDevice(), &FenceInfo, nullptr, &InFlightFences[i]) != VK_SUCCESS)
if (vkCreateSemaphore(
DeviceManager->GetDevice(),
&SemaphoreInfo,
nullptr,
&ImageAvailableSemaphores[i]
) != VK_SUCCESS
|| vkCreateSemaphore(
DeviceManager->GetDevice(),
&SemaphoreInfo,
nullptr,
&RenderFinishedSemaphores[i]
) != VK_SUCCESS
|| vkCreateFence(DeviceManager->GetDevice(), &FenceInfo, nullptr, &InFlightFences[i])
!= VK_SUCCESS)
{
Log::Error("Failed to create semaphores!");
}
@@ -425,16 +634,23 @@ void VulkanContext::CreateSyncObjects()
void VulkanContext::DrawFrame(bool bDrawImGui, uint32_t InVerticesSize, uint32_t InIndexSize)
{
vkWaitForFences(DeviceManager.GetDevice(), 1, &InFlightFences[CurrentFrame], VK_TRUE, UINT64_MAX);
vkWaitForFences(
DeviceManager->GetDevice(),
1,
&InFlightFences[CurrentFrame],
VK_TRUE,
UINT64_MAX
);
uint32_t ImageIndex;
VkResult result = vkAcquireNextImageKHR(
DeviceManager.GetDevice(),
SwapChain.GetSwapChain(),
DeviceManager->GetDevice(),
SwapChain->GetSwapChain(),
UINT64_MAX,
ImageAvailableSemaphores[CurrentFrame],
VK_NULL_HANDLE,
&ImageIndex);
&ImageIndex
);
if (result == VK_ERROR_OUT_OF_DATE_KHR)
{
@@ -446,28 +662,28 @@ void VulkanContext::DrawFrame(bool bDrawImGui, uint32_t InVerticesSize, uint32_t
Log::Error("Failed to acquire swap chain images!");
}
vkResetFences(DeviceManager.GetDevice(), 1, &InFlightFences[CurrentFrame]);
vkResetFences(DeviceManager->GetDevice(), 1, &InFlightFences[CurrentFrame]);
vkResetCommandBuffer(CommandBuffers.GetCommandBuffer(CurrentFrame), 0);
vkResetCommandBuffer(Buffers->GetCommandBuffer(CurrentFrame), 0);
FRecordCommandBuffersParams Params{
CommandBuffers.GetCommandBuffer(CurrentFrame),
FRecordBuffersParams Params{
Buffers->GetCommandBuffer(CurrentFrame),
ImageIndex,
VertexBuffer.GetVertexBuffer(),
Buffers->GetVertexBuffer(),
InVerticesSize,
VertexBuffer.GetIndexBuffer(),
Buffers->GetIndexBuffer(),
InIndexSize,
RenderPass.GetRenderPass(),
SwapChain.GetSwapChainExtent(),
GraphicsPipeline.GetGraphicsPipeline(),
Framebuffers.GetSwapChainFrameBuffers(),
RenderPass->GetRenderPass(),
SwapChain->GetSwapChainExtent(),
GraphicsPipeline->GetGraphicsPipeline(),
Framebuffers->GetSwapChainFrameBuffers(),
DescriptorSets[CurrentFrame],
GraphicsPipeline.GetPipelineLayout(),
GraphicsPipeline->GetPipelineLayout(),
bDrawImGui
// DrawData
};
CommandBuffers.RecordCommandBuffer(Params);
Buffers->RecordCommandBuffer(Params);
UpdateUniformBuffer(CurrentFrame);
@@ -481,14 +697,20 @@ void VulkanContext::DrawFrame(bool bDrawImGui, uint32_t InVerticesSize, uint32_t
SubmitInfo.pWaitDstStageMask = WaitStages;
SubmitInfo.commandBufferCount = 1;
VkCommandBuffer CommandBuffer = CommandBuffers.GetCommandBuffer(CurrentFrame);
VkCommandBuffer CommandBuffer = Buffers->GetCommandBuffer(CurrentFrame);
SubmitInfo.pCommandBuffers = &CommandBuffer;
VkSemaphore SignalSemaphores[] = { RenderFinishedSemaphores[CurrentFrame] };
SubmitInfo.signalSemaphoreCount = 1;
SubmitInfo.pSignalSemaphores = SignalSemaphores;
if (vkQueueSubmit(DeviceManager.GetGraphicsQueue(), 1, &SubmitInfo, InFlightFences[CurrentFrame]) != VK_SUCCESS)
if (vkQueueSubmit(
DeviceManager->GetGraphicsQueue(),
1,
&SubmitInfo,
InFlightFences[CurrentFrame]
)
!= VK_SUCCESS)
{
Log::Error("Failed to submit draw command buffer!");
}
@@ -498,14 +720,14 @@ void VulkanContext::DrawFrame(bool bDrawImGui, uint32_t InVerticesSize, uint32_t
PresentInfo.waitSemaphoreCount = 1;
PresentInfo.pWaitSemaphores = SignalSemaphores;
VkSwapchainKHR SwapChains[] = { SwapChain.GetSwapChain() };
VkSwapchainKHR SwapChains[] = { SwapChain->GetSwapChain() };
PresentInfo.swapchainCount = 1;
PresentInfo.pSwapchains = SwapChains;
PresentInfo.pImageIndices = &ImageIndex;
PresentInfo.pResults = nullptr;
result = vkQueuePresentKHR(DeviceManager.GetPresentQueue(), &PresentInfo);
result = vkQueuePresentKHR(DeviceManager->GetPresentQueue(), &PresentInfo);
if (result == VK_ERROR_OUT_OF_DATE_KHR || result == VK_SUBOPTIMAL_KHR || bFramebufferResized)
{
@@ -526,15 +748,26 @@ void VulkanContext::UpdateUniformBuffer(uint32_t CurrentImage)
auto CurrentTime = std::chrono::high_resolution_clock::now();
float Time = std::chrono::duration<float, std::chrono::seconds::period>(CurrentTime - StartTime).count();
float Time =
std::chrono::duration<float, std::chrono::seconds::period>(CurrentTime - StartTime).count();
UniformBufferObject Ubo{};
Ubo.Model = glm::rotate(glm::mat4(1.0f), Time * glm::radians(90.0f), glm::vec3(0.0f, 0.0f, 1.0f));
Ubo.View = glm::lookAt(glm::vec3(2.0f, 2.0f, 2.0f), glm::vec3(0.0f, 0.0f, 0.0f), glm::vec3(0.0f, 0.0f, 1.0f));
Ubo.Projection = glm::perspective(glm::radians(45.0f), SwapChain.GetSwapChainExtent().width / (float)SwapChain.GetSwapChainExtent().height, 0.1f, 10.0f);
Ubo.Model =
glm::rotate(glm::mat4(1.0f), Time * glm::radians(90.0f), glm::vec3(0.0f, 0.0f, 1.0f));
Ubo.View = glm::lookAt(
glm::vec3(2.0f, 2.0f, 2.0f),
glm::vec3(0.0f, 0.0f, 0.0f),
glm::vec3(0.0f, 0.0f, 1.0f)
);
Ubo.Projection = glm::perspective(
glm::radians(45.0f),
SwapChain->GetSwapChainExtent().width / (float)SwapChain->GetSwapChainExtent().height,
0.1f,
10.0f
);
Ubo.Projection[1][1] *= -1;
memcpy(VertexBuffer.GetUniformBuffersMapped()[CurrentImage], &Ubo, sizeof(Ubo));
memcpy(Buffers->GetUniformBuffersMapped()[CurrentImage], &Ubo, sizeof(Ubo));
}
void VulkanContext::RecreateSwapChain()
@@ -548,30 +781,24 @@ void VulkanContext::RecreateSwapChain()
}
Log::Info("Recreating SwapChain...");
vkDeviceWaitIdle(DeviceManager.GetDevice());
vkDeviceWaitIdle(DeviceManager->GetDevice());
CleanupSwapChain();
auto SwapChainSupport = DeviceManager.QuerySwapChainSupport(DeviceManager.GetPhysicalDevice());
auto SwapChainSupport =
DeviceManager->QuerySwapChainSupport(DeviceManager->GetPhysicalDevice());
SwapChain.Initialize(FSwapConfig(
DeviceManager.GetDevice(),
Surface,
Config.Window,
DeviceManager.GetPhysicalQueueFamilies().GraphicsFamily,
DeviceManager.GetPhysicalQueueFamilies().PresentFamily,
SwapChainSupport.Capabilities,
SwapChainSupport.Formats,
SwapChainSupport.PresentModes));
SwapChain.CreateSwapChain();
SwapChain.CreateImageViews();
SwapChain->CreateSwapChain();
SwapChain->CreateImageViews();
Textures->CreateDepthResources();
Framebuffers.Initialize(FFramebufferConfig(
DeviceManager.GetDevice(),
RenderPass.GetRenderPass(),
SwapChain.GetSwapChainImageViews(),
SwapChain.GetSwapChainExtent()));
Framebuffers.CreateFramebuffers();
Framebuffers->Initialize(FFramebufferConfig(
DeviceManager->GetDevice(),
RenderPass->GetRenderPass(),
SwapChain->GetSwapChainImageViews(),
SwapChain->GetSwapChainExtent()
));
Framebuffers->CreateFramebuffers(Textures->GetDepthImageView());
InitImGui();
}
@@ -595,17 +822,18 @@ void VulkanContext::InitImGui()
}
ImGui_ImplVulkan_InitInfo ImGuiInitInfo = {};
ImGuiInitInfo.Instance = InstanceManager.GetInstance();
ImGuiInitInfo.PhysicalDevice = DeviceManager.GetPhysicalDevice();
ImGuiInitInfo.Device = DeviceManager.GetDevice();
ImGuiInitInfo.QueueFamily = DeviceManager.GetPhysicalQueueFamilies().GraphicsFamily.value_or(0);
ImGuiInitInfo.Queue = DeviceManager.GetGraphicsQueue();
ImGuiInitInfo.Instance = InstanceManager->GetInstance();
ImGuiInitInfo.PhysicalDevice = DeviceManager->GetPhysicalDevice();
ImGuiInitInfo.Device = DeviceManager->GetDevice();
ImGuiInitInfo.QueueFamily =
DeviceManager->GetPhysicalQueueFamilies().GraphicsFamily.value_or(0);
ImGuiInitInfo.Queue = DeviceManager->GetGraphicsQueue();
ImGuiInitInfo.PipelineCache = VK_NULL_HANDLE;
ImGuiInitInfo.DescriptorPool = ImGuiPool;
ImGuiInitInfo.MinImageCount = MAX_FRAMES_IN_FLIGHT;
ImGuiInitInfo.ImageCount = SwapChain.GetSwapChainImageViews().size();
ImGuiInitInfo.ImageCount = SwapChain->GetSwapChainImageViews().size();
ImGuiInitInfo.Allocator = nullptr;
ImGuiInitInfo.PipelineInfoMain.RenderPass = RenderPass.GetRenderPass();
ImGuiInitInfo.PipelineInfoMain.RenderPass = RenderPass->GetRenderPass();
ImGuiInitInfo.PipelineInfoMain.Subpass = 0;
ImGuiInitInfo.PipelineInfoMain.MSAASamples = VK_SAMPLE_COUNT_1_BIT;
ImGuiInitInfo.CheckVkResultFn = nullptr;
@@ -621,6 +849,7 @@ void VulkanContext::InitImGui()
void VulkanContext::CleanupSwapChain()
{
Framebuffers.Cleanup();
SwapChain.Cleanup();
Textures->CleanupDepth();
Framebuffers->Cleanup();
SwapChain->Cleanup();
}

View File

@@ -1,4 +1,5 @@
#include "VulkanDebugManager.h"
#include "utilities/Logger.h"
VulkanDebugManager::VulkanDebugManager()

View File

@@ -6,10 +6,19 @@
#include <set>
#include <vulkan/vulkan_core.h>
#include "VulkanContext.h"
#include "VulkanContext.hpp"
#include "utilities/Logger.h"
VulkanDeviceManager::VulkanDeviceManager()
const std::vector<const char*> DeviceExtensions = {
VK_KHR_SWAPCHAIN_EXTENSION_NAME
};
VulkanDeviceManager::VulkanDeviceManager(
VkInstance Instance,
VkSurfaceKHR Surface,
GLFWwindow* Window,
bool bEnableValidationLayers)
: Instance(Instance), Surface(Surface), Window(Window), bEnableValidationLayers(bEnableValidationLayers)
{
}
@@ -18,19 +27,6 @@ VulkanDeviceManager::~VulkanDeviceManager()
// Cleanup();
}
void VulkanDeviceManager::Initialize(FDeviceConfig InConfig)
// VkInstance Instance,
// bool bEnableValidationLayers,
// VkSurfaceKHR Surface,
// GLFWwindow* Window)
{
DeviceConfig = InConfig;
// this->Instance = Instance;
// this->Surface = Surface;
// this->bEnableValidationLayers = bEnableValidationLayers;
// this->Window = Window;
}
void VulkanDeviceManager::Cleanup()
{
vkDestroyDevice(Device, nullptr);
@@ -39,7 +35,7 @@ void VulkanDeviceManager::Cleanup()
void VulkanDeviceManager::PickPhysicalDevice()
{
uint32_t DeviceCount = 0;
vkEnumeratePhysicalDevices(DeviceConfig.Instance, &DeviceCount, nullptr);
vkEnumeratePhysicalDevices(Instance, &DeviceCount, nullptr);
if (DeviceCount == 0)
{
@@ -47,7 +43,7 @@ void VulkanDeviceManager::PickPhysicalDevice()
}
std::vector<VkPhysicalDevice> Devices(DeviceCount);
vkEnumeratePhysicalDevices(DeviceConfig.Instance, &DeviceCount, Devices.data());
vkEnumeratePhysicalDevices(Instance, &DeviceCount, Devices.data());
std::multimap<int, VkPhysicalDevice> Candidates;
@@ -84,7 +80,10 @@ bool VulkanDeviceManager::IsDeviceSuitable(VkPhysicalDevice Device)
bSwapChainAdequate = !SwapChainSupport.Formats.empty() && !SwapChainSupport.PresentModes.empty();
}
return Indices.IsComplete() && bExtensionsSupported && bSwapChainAdequate;
VkPhysicalDeviceFeatures SupportedFeatures;
vkGetPhysicalDeviceFeatures(Device, &SupportedFeatures);
return Indices.IsComplete() && bExtensionsSupported && bSwapChainAdequate && SupportedFeatures.samplerAnisotropy;
}
int VulkanDeviceManager::RateDeviceSuitability(VkPhysicalDevice Device)
@@ -149,7 +148,7 @@ QueueFamilyIndices VulkanDeviceManager::FindQueueFamilies(VkPhysicalDevice Devic
}
VkBool32 PresentSupport = false;
vkGetPhysicalDeviceSurfaceSupportKHR(Device, i, DeviceConfig.Surface, &PresentSupport);
vkGetPhysicalDeviceSurfaceSupportKHR(Device, i, Surface, &PresentSupport);
if (PresentSupport)
{
@@ -185,6 +184,7 @@ void VulkanDeviceManager::CreateLogicalDevice()
}
VkPhysicalDeviceFeatures DeviceFeatures{};
DeviceFeatures.samplerAnisotropy = VK_TRUE;
VkDeviceCreateInfo CreateInfo{};
CreateInfo.sType = VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO;
@@ -195,7 +195,7 @@ void VulkanDeviceManager::CreateLogicalDevice()
CreateInfo.enabledExtensionCount = static_cast<uint32_t>(DeviceExtensions.size());
CreateInfo.ppEnabledExtensionNames = DeviceExtensions.data();
if (DeviceConfig.bEnableValidationLayers)
if (bEnableValidationLayers)
{
CreateInfo.enabledLayerCount = static_cast<uint32_t>(ValidationLayers.size());
CreateInfo.ppEnabledLayerNames = ValidationLayers.data();
@@ -222,24 +222,24 @@ SwapChainSupportDetails VulkanDeviceManager::QuerySwapChainSupport(VkPhysicalDev
{
SwapChainSupportDetails Details;
vkGetPhysicalDeviceSurfaceCapabilitiesKHR(Device, DeviceConfig.Surface, &Details.Capabilities);
vkGetPhysicalDeviceSurfaceCapabilitiesKHR(Device, Surface, &Details.Capabilities);
uint32_t FormatCount;
vkGetPhysicalDeviceSurfaceFormatsKHR(Device, DeviceConfig.Surface, &FormatCount, nullptr);
vkGetPhysicalDeviceSurfaceFormatsKHR(Device, Surface, &FormatCount, nullptr);
if (FormatCount != 0)
{
Details.Formats.resize(FormatCount);
vkGetPhysicalDeviceSurfaceFormatsKHR(Device, DeviceConfig.Surface, &FormatCount, Details.Formats.data());
vkGetPhysicalDeviceSurfaceFormatsKHR(Device, Surface, &FormatCount, Details.Formats.data());
}
uint32_t PresentModeCount;
vkGetPhysicalDeviceSurfacePresentModesKHR(Device, DeviceConfig.Surface, &PresentModeCount, nullptr);
vkGetPhysicalDeviceSurfacePresentModesKHR(Device, Surface, &PresentModeCount, nullptr);
if (PresentModeCount != 0)
{
Details.PresentModes.resize(PresentModeCount);
vkGetPhysicalDeviceSurfacePresentModesKHR(Device, DeviceConfig.Surface, &PresentModeCount, Details.PresentModes.data());
vkGetPhysicalDeviceSurfacePresentModesKHR(Device, Surface, &PresentModeCount, Details.PresentModes.data());
}
return Details;

View File

@@ -16,33 +16,39 @@ void VulkanFramebuffers::Cleanup()
}
}
// void VulkanFramebuffers::CreateFramebuffers(VkRenderPass RenderPass, std::vector<VkImageView> SwapChainImageViews, VkExtent2D SwapChainExtent)
void VulkanFramebuffers::CreateFramebuffers()
// void VulkanFramebuffers::CreateFramebuffers(VkRenderPass RenderPass, std::vector<VkImageView>
// SwapChainImageViews, VkExtent2D SwapChainExtent)
void VulkanFramebuffers::CreateFramebuffers(VkImageView DepthImageView)
{
SwapChainFramebuffers.resize(FramebufferConfig.SwapChainImageViews.size());
for (size_t i = 0; i < FramebufferConfig.SwapChainImageViews.size(); i++)
{
VkImageView Attachments[] = {
FramebufferConfig.SwapChainImageViews[i]
};
std::array<VkImageView, 2> Attachments = { FramebufferConfig.SwapChainImageViews[i],
DepthImageView };
VkFramebufferCreateInfo FramebufferInfo{};
FramebufferInfo.sType = VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO;
FramebufferInfo.renderPass = FramebufferConfig.RenderPass;
FramebufferInfo.attachmentCount = 1;
FramebufferInfo.pAttachments = Attachments;
FramebufferInfo.attachmentCount = static_cast<uint32_t>(Attachments.size());
FramebufferInfo.pAttachments = Attachments.data();
FramebufferInfo.width = FramebufferConfig.SwapChainExtent.width;
FramebufferInfo.height = FramebufferConfig.SwapChainExtent.height;
FramebufferInfo.layers = 1;
if (vkCreateFramebuffer(FramebufferConfig.Device, &FramebufferInfo, nullptr, &SwapChainFramebuffers[i]) != VK_SUCCESS)
if (vkCreateFramebuffer(
FramebufferConfig.Device,
&FramebufferInfo,
nullptr,
&SwapChainFramebuffers[i]
)
!= VK_SUCCESS)
{
Log::Error("Failed to create frame buffer!");
}
else
{
// Log::Info("Successfully created framebuffers.");
Log::Info("Successfully created framebuffers.");
}
}
}

View File

@@ -1,6 +1,6 @@
#include "VulkanInstanceManager.h"
#include "VulkanInstanceManager.hpp"
#include "VulkanContext.h"
#include "VulkanContext.hpp"
#include "utilities/Logger.h"
#include <cstring>

View File

@@ -22,7 +22,11 @@ void VulkanPipeline::Cleanup()
vkDestroyPipelineLayout(Device, PipelineLayout, nullptr);
}
void VulkanPipeline::CreateGraphicsPipeline(VkExtent2D SwapChainExtent, VkRenderPass RenderPass, VkDescriptorSetLayout& DescriptorSetLayout)
void VulkanPipeline::CreateGraphicsPipeline(
VkExtent2D SwapChainExtent,
VkRenderPass RenderPass,
VkDescriptorSetLayout& DescriptorSetLayout
)
{
auto VertShaderCode = ReadFile("Shaders/vert.spv");
auto FragShaderCode = ReadFile("Shaders/frag.spv");
@@ -55,7 +59,8 @@ void VulkanPipeline::CreateGraphicsPipeline(VkExtent2D SwapChainExtent, VkRender
VertexInputInfo.vertexBindingDescriptionCount = 1;
VertexInputInfo.pVertexBindingDescriptions = &BindingDescription;
VertexInputInfo.vertexAttributeDescriptionCount = static_cast<uint32_t>(AttributeDescriptions.size());
VertexInputInfo.vertexAttributeDescriptionCount =
static_cast<uint32_t>(AttributeDescriptions.size());
VertexInputInfo.pVertexAttributeDescriptions = AttributeDescriptions.data();
VkPipelineInputAssemblyStateCreateInfo InputAssembly{};
@@ -75,10 +80,8 @@ void VulkanPipeline::CreateGraphicsPipeline(VkExtent2D SwapChainExtent, VkRender
Scissor.offset = { 0, 0 };
Scissor.extent = SwapChainExtent;
std::vector<VkDynamicState> DynamicStates = {
VK_DYNAMIC_STATE_VIEWPORT,
VK_DYNAMIC_STATE_SCISSOR
};
std::vector<VkDynamicState> DynamicStates = { VK_DYNAMIC_STATE_VIEWPORT,
VK_DYNAMIC_STATE_SCISSOR };
VkPipelineDynamicStateCreateInfo DynamicState{};
DynamicState.sType = VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO;
@@ -113,7 +116,8 @@ void VulkanPipeline::CreateGraphicsPipeline(VkExtent2D SwapChainExtent, VkRender
Multisampling.alphaToOneEnable = VK_FALSE;
VkPipelineColorBlendAttachmentState ColorBlendAttachement{};
ColorBlendAttachement.colorWriteMask = VK_COLOR_COMPONENT_R_BIT | VK_COLOR_COMPONENT_G_BIT | VK_COLOR_COMPONENT_B_BIT | VK_COLOR_COMPONENT_A_BIT;
ColorBlendAttachement.colorWriteMask = VK_COLOR_COMPONENT_R_BIT | VK_COLOR_COMPONENT_G_BIT
| VK_COLOR_COMPONENT_B_BIT | VK_COLOR_COMPONENT_A_BIT;
ColorBlendAttachement.blendEnable = VK_FALSE;
ColorBlendAttachement.srcColorBlendFactor = VK_BLEND_FACTOR_ONE;
ColorBlendAttachement.dstColorBlendFactor = VK_BLEND_FACTOR_ZERO;
@@ -149,6 +153,18 @@ void VulkanPipeline::CreateGraphicsPipeline(VkExtent2D SwapChainExtent, VkRender
Log::Info("Successfully created pipeline layout");
}
VkPipelineDepthStencilStateCreateInfo DepthStencil{};
DepthStencil.sType = VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO;
DepthStencil.depthTestEnable = VK_TRUE;
DepthStencil.depthWriteEnable = VK_TRUE;
DepthStencil.depthCompareOp = VK_COMPARE_OP_LESS;
DepthStencil.depthBoundsTestEnable = VK_FALSE;
DepthStencil.minDepthBounds = 0.0f;
DepthStencil.maxDepthBounds = 1.0f;
DepthStencil.stencilTestEnable = VK_FALSE;
DepthStencil.front = {};
DepthStencil.back = {};
VkGraphicsPipelineCreateInfo PipelineInfo{};
PipelineInfo.sType = VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO;
PipelineInfo.stageCount = 2;
@@ -158,7 +174,7 @@ void VulkanPipeline::CreateGraphicsPipeline(VkExtent2D SwapChainExtent, VkRender
PipelineInfo.pViewportState = &ViewportState;
PipelineInfo.pRasterizationState = &Rasterizer;
PipelineInfo.pMultisampleState = &Multisampling;
PipelineInfo.pDepthStencilState = nullptr;
PipelineInfo.pDepthStencilState = &DepthStencil;
PipelineInfo.pColorBlendState = &ColorBlending;
PipelineInfo.pDynamicState = &DynamicState;
PipelineInfo.layout = PipelineLayout;
@@ -167,7 +183,15 @@ void VulkanPipeline::CreateGraphicsPipeline(VkExtent2D SwapChainExtent, VkRender
PipelineInfo.basePipelineHandle = VK_NULL_HANDLE;
PipelineInfo.basePipelineIndex = -1;
if (vkCreateGraphicsPipelines(Device, VK_NULL_HANDLE, 1, &PipelineInfo, nullptr, &GraphicsPipeline) != VK_SUCCESS)
if (vkCreateGraphicsPipelines(
Device,
VK_NULL_HANDLE,
1,
&PipelineInfo,
nullptr,
&GraphicsPipeline
)
!= VK_SUCCESS)
{
Log::Error("Failed to create graphics pipeline!");
}
@@ -248,7 +272,8 @@ VkShaderModule VulkanPipeline::CreateShaderModule(const std::vector<char>& Code)
// }
// }
// void VulkanPipeline::CreateFramebuffers(std::vector<VkImageView> SwapChainImageViews, VkExtent2D SwapChainExtent)
// void VulkanPipeline::CreateFramebuffers(std::vector<VkImageView> SwapChainImageViews, VkExtent2D
// SwapChainExtent)
// {
// SwapChainFrameBuffers.resize(SwapChainImageViews.size());
//
@@ -267,7 +292,8 @@ VkShaderModule VulkanPipeline::CreateShaderModule(const std::vector<char>& Code)
// FramebufferInfo.height = SwapChainExtent.height;
// FramebufferInfo.layers = 1;
//
// if (vkCreateFramebuffer(Device, &FramebufferInfo, nullptr, &SwapChainFrameBuffers[i]) != VK_SUCCESS)
// if (vkCreateFramebuffer(Device, &FramebufferInfo, nullptr, &SwapChainFrameBuffers[i]) !=
// VK_SUCCESS)
// {
// Log::Error("Failed to create frame buffer!");
// }

View File

@@ -1,5 +1,6 @@
#include "VulkanRenderPass.h"
#include "utilities/Logger.h"
#include <vulkan/vulkan_core.h>
void VulkanRenderPass::Initialize(VkDevice InDevice)
{
@@ -11,7 +12,7 @@ void VulkanRenderPass::Cleanup()
vkDestroyRenderPass(Device, RenderPass, nullptr);
}
void VulkanRenderPass::CreateRenderPass(VkFormat SwapChainImageFormat)
void VulkanRenderPass::CreateRenderPass(VkFormat SwapChainImageFormat, VkFormat DepthFormat)
{
VkAttachmentDescription ColorAttachment{};
ColorAttachment.format = SwapChainImageFormat;
@@ -27,25 +28,45 @@ void VulkanRenderPass::CreateRenderPass(VkFormat SwapChainImageFormat)
ColorAttachmentRef.attachment = 0;
ColorAttachmentRef.layout = VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL;
VkAttachmentDescription DepthAttachment{};
DepthAttachment.format = DepthFormat;
DepthAttachment.samples = VK_SAMPLE_COUNT_1_BIT;
DepthAttachment.loadOp = VK_ATTACHMENT_LOAD_OP_CLEAR;
DepthAttachment.storeOp = VK_ATTACHMENT_STORE_OP_DONT_CARE;
DepthAttachment.stencilLoadOp = VK_ATTACHMENT_LOAD_OP_DONT_CARE;
DepthAttachment.stencilStoreOp = VK_ATTACHMENT_STORE_OP_DONT_CARE;
DepthAttachment.initialLayout = VK_IMAGE_LAYOUT_UNDEFINED;
DepthAttachment.finalLayout = VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL;
VkAttachmentReference DepthAttachmentRef{};
DepthAttachmentRef.attachment = 1;
DepthAttachmentRef.layout = VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL;
VkSubpassDescription Subpass{};
Subpass.pipelineBindPoint = VK_PIPELINE_BIND_POINT_GRAPHICS;
Subpass.colorAttachmentCount = 1;
Subpass.pColorAttachments = &ColorAttachmentRef;
VkRenderPassCreateInfo RenderPassInfo{};
RenderPassInfo.sType = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO;
RenderPassInfo.attachmentCount = 1;
RenderPassInfo.pAttachments = &ColorAttachment;
RenderPassInfo.subpassCount = 1;
RenderPassInfo.pSubpasses = &Subpass;
Subpass.pDepthStencilAttachment = &DepthAttachmentRef;
VkSubpassDependency Dependency{};
Dependency.srcSubpass = VK_SUBPASS_EXTERNAL;
Dependency.dstSubpass = 0;
Dependency.srcStageMask = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT;
Dependency.srcAccessMask = 0;
Dependency.dstStageMask = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT;
Dependency.dstAccessMask = VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT;
Dependency.srcStageMask =
VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT | VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT;
Dependency.srcAccessMask = VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT;
Dependency.dstStageMask =
VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT | VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT;
Dependency.dstAccessMask =
VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT | VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT;
std::array<VkAttachmentDescription, 2> Attachments = { ColorAttachment, DepthAttachment };
VkRenderPassCreateInfo RenderPassInfo{};
RenderPassInfo.sType = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO;
RenderPassInfo.attachmentCount = static_cast<uint32_t>(Attachments.size());
RenderPassInfo.pAttachments = Attachments.data();
RenderPassInfo.subpassCount = 1;
RenderPassInfo.pSubpasses = &Subpass;
RenderPassInfo.dependencyCount = 1;
RenderPassInfo.pDependencies = &Dependency;

View File

@@ -8,7 +8,24 @@
#include "utilities/Logger.h"
VulkanSwapChain::VulkanSwapChain()
VulkanSwapChain::VulkanSwapChain(
VkDevice Device,
VkSurfaceKHR Surface,
GLFWwindow* Window,
uint32_t GraphicsFamily,
uint32_t PresentFamily,
const VkSurfaceCapabilitiesKHR& Capabilities,
const std::vector<VkSurfaceFormatKHR>& Formats,
const std::vector<VkPresentModeKHR>& PresentModes
)
: Device(Device)
, Surface(Surface)
, Window(Window)
, GraphicsFamily(GraphicsFamily)
, PresentFamily(PresentFamily)
, Capabilities(Capabilities)
, Formats(Formats)
, PresentModes(PresentModes)
{
}
@@ -17,25 +34,27 @@ VulkanSwapChain::~VulkanSwapChain()
// Cleanup();
}
void VulkanSwapChain::Initialize(FSwapConfig InSwapConfig)
{
SwapConfig = InSwapConfig;
}
// void VulkanSwapChain::Initialize(FIn
// {
// = In
// }
void VulkanSwapChain::Cleanup()
{
for (auto ImageView : SwapChainImageViews)
{
vkDestroyImageView(SwapConfig.Device, ImageView, nullptr);
vkDestroyImageView(Device, ImageView, nullptr);
}
vkDestroySwapchainKHR(SwapConfig.Device, SwapChain, nullptr);
vkDestroySwapchainKHR(Device, SwapChain, nullptr);
}
VkSurfaceFormatKHR VulkanSwapChain::ChooseSwapSurfaceFormat(const std::vector<VkSurfaceFormatKHR>& AvailableFormats)
VkSurfaceFormatKHR
VulkanSwapChain::ChooseSwapSurfaceFormat(const std::vector<VkSurfaceFormatKHR>& AvailableFormats)
{
for (const auto& AvailableFormat : AvailableFormats)
{
if (AvailableFormat.format == VK_FORMAT_B8G8R8A8_SRGB && AvailableFormat.colorSpace == VK_COLOR_SPACE_SRGB_NONLINEAR_KHR)
if (AvailableFormat.format == VK_FORMAT_B8G8R8A8_SRGB
&& AvailableFormat.colorSpace == VK_COLOR_SPACE_SRGB_NONLINEAR_KHR)
{
return AvailableFormat;
}
@@ -43,7 +62,8 @@ VkSurfaceFormatKHR VulkanSwapChain::ChooseSwapSurfaceFormat(const std::vector<Vk
return AvailableFormats[0];
}
VkPresentModeKHR VulkanSwapChain::ChooseSwapPresentMode(const std::vector<VkPresentModeKHR>& AvailablePresentModes)
VkPresentModeKHR
VulkanSwapChain::ChooseSwapPresentMode(const std::vector<VkPresentModeKHR>& AvailablePresentModes)
{
for (const auto& AvailablePresentMode : AvailablePresentModes)
{
@@ -63,20 +83,25 @@ VkExtent2D VulkanSwapChain::ChooseSwapExtent(const VkSurfaceCapabilitiesKHR& Cap
}
else
{
if (SwapConfig.Window == nullptr)
if (Window == nullptr)
{
Log::Error("GLFW window is null in CreateSwapChain!");
}
int Width, Height;
glfwGetFramebufferSize(SwapConfig.Window, &Width, &Height);
glfwGetFramebufferSize(Window, &Width, &Height);
VkExtent2D ActualExtent = {
static_cast<uint32_t>(Width),
static_cast<uint32_t>(Height)
};
VkExtent2D ActualExtent = { static_cast<uint32_t>(Width), static_cast<uint32_t>(Height) };
ActualExtent.width = std::clamp(ActualExtent.width, Capabilities.minImageExtent.width, Capabilities.maxImageExtent.width);
ActualExtent.height = std::clamp(ActualExtent.height, Capabilities.minImageExtent.height, Capabilities.maxImageExtent.height);
ActualExtent.width = std::clamp(
ActualExtent.width,
Capabilities.minImageExtent.width,
Capabilities.maxImageExtent.width
);
ActualExtent.height = std::clamp(
ActualExtent.height,
Capabilities.minImageExtent.height,
Capabilities.maxImageExtent.height
);
return ActualExtent;
}
@@ -84,32 +109,34 @@ VkExtent2D VulkanSwapChain::ChooseSwapExtent(const VkSurfaceCapabilitiesKHR& Cap
void VulkanSwapChain::CreateSwapChain()
{
VkSurfaceFormatKHR SurfaceFormat = ChooseSwapSurfaceFormat(SwapConfig.Formats);
VkPresentModeKHR PresentMode = ChooseSwapPresentMode(SwapConfig.PresentModes);
VkExtent2D Extent = ChooseSwapExtent(SwapConfig.Capabilities);
VkSurfaceFormatKHR SurfaceFormat = ChooseSwapSurfaceFormat(Formats);
VkPresentModeKHR PresentMode = ChooseSwapPresentMode(PresentModes);
VkExtent2D Extent = ChooseSwapExtent(Capabilities);
uint32_t ImageCount = SwapConfig.Capabilities.minImageCount + 1;
uint32_t ImageCount = Capabilities.minImageCount + 1;
if (SwapConfig.Capabilities.maxImageCount > 0 && ImageCount > SwapConfig.Capabilities.maxImageCount)
if (Capabilities.maxImageCount > 0 && ImageCount > Capabilities.maxImageCount)
{
ImageCount = SwapConfig.Capabilities.maxImageCount;
ImageCount = Capabilities.maxImageCount;
}
VkSwapchainCreateInfoKHR CreateInfo{};
CreateInfo.sType = VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR;
CreateInfo.surface = SwapConfig.Surface;
CreateInfo.surface = Surface;
CreateInfo.minImageCount = ImageCount;
CreateInfo.imageFormat = SurfaceFormat.format;
CreateInfo.imageColorSpace = SurfaceFormat.colorSpace;
CreateInfo.imageExtent = Extent;
CreateInfo.imageArrayLayers = 1;
CreateInfo.imageUsage = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT; // may need VK_IMAGE_USAGE_TRANSFER_DST_BIT for post processing https://vulkan-tutorial.com/Drawing_a_triangle/Presentation/Swap_chain#:~:text=VK%5FIMAGE%5FUSAGE%5FTRANSFER%5FDST%5FBIT
CreateInfo.imageUsage =
VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT; // may need VK_IMAGE_USAGE_TRANSFER_DST_BIT for post
// processing
// https://vulkan-tutorial.com/Drawing_a_triangle/Presentation/Swap_chain#:~:text=VK%5FIMAGE%5FUSAGE%5FTRANSFER%5FDST%5FBIT
uint32_t QueueFamilyIndices[] = { SwapConfig.GraphicsFamily.value(),
SwapConfig.PresentFamily.value() };
uint32_t QueueFamilyIndices[] = { GraphicsFamily, PresentFamily };
if (SwapConfig.GraphicsFamily != SwapConfig.PresentFamily)
if (GraphicsFamily != PresentFamily)
{
CreateInfo.imageSharingMode = VK_SHARING_MODE_CONCURRENT;
CreateInfo.queueFamilyIndexCount = 2;
@@ -122,13 +149,13 @@ void VulkanSwapChain::CreateSwapChain()
CreateInfo.pQueueFamilyIndices = nullptr;
}
CreateInfo.preTransform = SwapConfig.Capabilities.currentTransform;
CreateInfo.preTransform = Capabilities.currentTransform;
CreateInfo.compositeAlpha = VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR;
CreateInfo.presentMode = PresentMode;
CreateInfo.clipped = VK_TRUE;
CreateInfo.oldSwapchain = VK_NULL_HANDLE;
if (vkCreateSwapchainKHR(SwapConfig.Device, &CreateInfo, nullptr, &SwapChain) != VK_SUCCESS)
if (vkCreateSwapchainKHR(Device, &CreateInfo, nullptr, &SwapChain) != VK_SUCCESS)
{
Log::Error("Failed to create swap chain.");
}
@@ -137,47 +164,49 @@ void VulkanSwapChain::CreateSwapChain()
Log::Info("Successfully created swap chain.");
}
vkGetSwapchainImagesKHR(SwapConfig.Device, SwapChain, &ImageCount, nullptr);
vkGetSwapchainImagesKHR(Device, SwapChain, &ImageCount, nullptr);
SwapChainImages.resize(ImageCount);
vkGetSwapchainImagesKHR(SwapConfig.Device, SwapChain, &ImageCount, SwapChainImages.data());
vkGetSwapchainImagesKHR(Device, SwapChain, &ImageCount, SwapChainImages.data());
SwapChainImageFormat = SurfaceFormat.format;
SwapChainExtent = Extent;
}
VkImageView
VulkanSwapChain::CreateImageView(VkImage Image, VkFormat Format, VkImageAspectFlags AspectFlags)
{
VkImageViewCreateInfo ViewInfo{};
ViewInfo.sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO;
ViewInfo.image = Image;
ViewInfo.viewType = VK_IMAGE_VIEW_TYPE_2D;
ViewInfo.format = Format;
ViewInfo.subresourceRange.aspectMask = AspectFlags;
ViewInfo.subresourceRange.baseMipLevel = 0;
ViewInfo.subresourceRange.levelCount = 1;
ViewInfo.subresourceRange.baseArrayLayer = 0;
ViewInfo.subresourceRange.layerCount = 1;
VkImageView ImageView;
if (vkCreateImageView(Device, &ViewInfo, nullptr, &ImageView) != VK_SUCCESS)
{
Log::Error("Failed to create image view!");
}
else
{
Log::Info("Successfully created image view.");
}
return ImageView;
}
void VulkanSwapChain::CreateImageViews()
{
SwapChainImageViews.resize(SwapChainImages.size());
int CreatedViews = 0;
for (size_t i = 0; i < SwapChainImages.size(); i++)
{
VkImageViewCreateInfo CreateInfo{};
CreateInfo.sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO;
CreateInfo.image = SwapChainImages[i];
CreateInfo.viewType = VK_IMAGE_VIEW_TYPE_2D;
CreateInfo.format = SwapChainImageFormat;
CreateInfo.components.r = VK_COMPONENT_SWIZZLE_IDENTITY;
CreateInfo.components.g = VK_COMPONENT_SWIZZLE_IDENTITY;
CreateInfo.components.b = VK_COMPONENT_SWIZZLE_IDENTITY;
CreateInfo.components.a = VK_COMPONENT_SWIZZLE_IDENTITY;
CreateInfo.subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT;
CreateInfo.subresourceRange.baseMipLevel = 0;
CreateInfo.subresourceRange.levelCount = 1;
CreateInfo.subresourceRange.baseArrayLayer = 0;
CreateInfo.subresourceRange.layerCount = 1;
if (vkCreateImageView(SwapConfig.Device, &CreateInfo, nullptr, &SwapChainImageViews[i]) != VK_SUCCESS)
{
Log::Error("Failed to create image views.");
}
else
{
CreatedViews++;
}
SwapChainImageViews[i] =
CreateImageView(SwapChainImages[i], SwapChainImageFormat, VK_IMAGE_ASPECT_COLOR_BIT);
}
Log::Info("Successfully created " + std::to_string(CreatedViews) + " image views.");
}

View File

@@ -0,0 +1,281 @@
#include "VulkanTexture.hpp"
#include "Logger.h"
#include "VulkanBuffers.h"
#include "VulkanSwapChain.h"
#include <stb_image.h>
VulkanTexture::VulkanTexture(
VkDevice Device,
VkPhysicalDevice PhysicalDevice,
VkQueue GraphicsQueue,
VulkanBuffers& Buffers,
VulkanSwapChain& SwapChain
)
: Device(Device)
, PhysicalDevice(PhysicalDevice)
, GraphicsQueue(GraphicsQueue)
, Buffers(Buffers)
, SwapChain(SwapChain)
{
}
VulkanTexture::~VulkanTexture() {}
void VulkanTexture::Cleanup()
{
CleanupTextures();
CleanupDepth();
}
void VulkanTexture::CleanupTextures()
{
vkDestroySampler(Device, Sampler, nullptr);
vkDestroyImageView(Device, ImageView, nullptr);
vkDestroyImage(Device, Image, nullptr);
vkFreeMemory(Device, ImageMemory, nullptr);
}
void VulkanTexture::CleanupDepth()
{
vkDestroyImageView(Device, DepthImageView, nullptr);
vkDestroyImage(Device, DepthImage, nullptr);
vkFreeMemory(Device, DepthImageMemory, nullptr);
}
void VulkanTexture::LoadFromFile(const char* Filename)
{
int TextureWidth, TextureHeight, TextureChannels;
stbi_uc* Pixels =
stbi_load(Filename, &TextureWidth, &TextureHeight, &TextureChannels, STBI_rgb_alpha);
VkDeviceSize ImageSize = TextureWidth * TextureHeight * 4;
if (!Pixels)
{
Log::Error("Failed to load texture image!");
}
else
{
Log::Info("Successfully loaded texture image.");
}
VkBuffer StagingBuffer;
VkDeviceMemory StagingBufferMemory;
Buffers.CreateBuffer(
ImageSize,
VK_BUFFER_USAGE_TRANSFER_SRC_BIT,
VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT,
StagingBuffer,
StagingBufferMemory
);
void* Data;
vkMapMemory(Device, StagingBufferMemory, 0, ImageSize, 0, &Data);
memcpy(Data, Pixels, static_cast<size_t>(ImageSize));
vkUnmapMemory(Device, StagingBufferMemory);
stbi_image_free(Pixels);
CreateImage(
TextureWidth,
TextureHeight,
VK_FORMAT_R8G8B8A8_SRGB,
VK_IMAGE_TILING_OPTIMAL,
VK_IMAGE_USAGE_TRANSFER_DST_BIT | VK_IMAGE_USAGE_SAMPLED_BIT,
VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT,
Image,
ImageMemory
);
Buffers.TransitionImageLayout(
Image,
VK_FORMAT_R8G8B8A8_SRGB,
VK_IMAGE_LAYOUT_UNDEFINED,
VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL,
HasStencilComponent(VK_FORMAT_R8G8B8A8_SRGB)
);
Buffers.CopyBufferToImage(
StagingBuffer,
Image,
static_cast<uint32_t>(TextureWidth),
static_cast<uint32_t>(TextureHeight)
);
Buffers.TransitionImageLayout(
Image,
VK_FORMAT_R8G8B8A8_SRGB,
VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL,
VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL,
HasStencilComponent(VK_FORMAT_R8G8B8A8_SRGB)
);
vkDestroyBuffer(Device, StagingBuffer, nullptr);
vkFreeMemory(Device, StagingBufferMemory, nullptr);
}
void VulkanTexture::CreateImageView()
{
ImageView =
SwapChain.CreateImageView(Image, VK_FORMAT_R8G8B8A8_SRGB, VK_IMAGE_ASPECT_COLOR_BIT);
}
void VulkanTexture::CreateSampler()
{
VkSamplerCreateInfo SamplerInfo{};
SamplerInfo.sType = VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO;
SamplerInfo.magFilter = VK_FILTER_LINEAR;
SamplerInfo.minFilter = VK_FILTER_LINEAR;
SamplerInfo.addressModeU = VK_SAMPLER_ADDRESS_MODE_REPEAT;
SamplerInfo.addressModeV = VK_SAMPLER_ADDRESS_MODE_REPEAT;
SamplerInfo.addressModeW = VK_SAMPLER_ADDRESS_MODE_REPEAT;
SamplerInfo.anisotropyEnable = VK_TRUE;
VkPhysicalDeviceProperties Properties{};
vkGetPhysicalDeviceProperties(PhysicalDevice, &Properties);
SamplerInfo.maxAnisotropy = Properties.limits.maxSamplerAnisotropy;
SamplerInfo.borderColor = VK_BORDER_COLOR_INT_OPAQUE_BLACK;
SamplerInfo.unnormalizedCoordinates = VK_FALSE;
SamplerInfo.compareEnable = VK_FALSE;
SamplerInfo.compareOp = VK_COMPARE_OP_ALWAYS;
SamplerInfo.mipmapMode = VK_SAMPLER_MIPMAP_MODE_LINEAR;
SamplerInfo.mipLodBias = 0.0f;
SamplerInfo.minLod = 0.0f;
SamplerInfo.maxLod = 0.0f;
if (vkCreateSampler(Device, &SamplerInfo, nullptr, &Sampler) != VK_SUCCESS)
{
Log::Error("Failed to create texture sampler!");
}
else
{
Log::Info("Successfully created texture sampler.");
}
}
void VulkanTexture::CreateDepthResources()
{
VkFormat DepthFormat = FindDepthFormat();
VkExtent2D Extents = SwapChain.GetSwapChainExtent();
CreateImage(
Extents.width,
Extents.height,
DepthFormat,
VK_IMAGE_TILING_OPTIMAL,
VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT,
VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT,
DepthImage,
DepthImageMemory
);
DepthImageView = SwapChain.CreateImageView(DepthImage, DepthFormat, VK_IMAGE_ASPECT_DEPTH_BIT);
Buffers.TransitionImageLayout(
DepthImage,
DepthFormat,
VK_IMAGE_LAYOUT_UNDEFINED,
VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL,
HasStencilComponent(DepthFormat)
);
}
VkFormat VulkanTexture::FindSupportedFormat(
const std::vector<VkFormat>& Candidates,
VkImageTiling Tiling,
VkFormatFeatureFlags Features
)
{
for (VkFormat Format : Candidates)
{
VkFormatProperties Properties;
vkGetPhysicalDeviceFormatProperties(PhysicalDevice, Format, &Properties);
if (Tiling == VK_IMAGE_TILING_LINEAR
&& (Properties.linearTilingFeatures & Features) == Features)
{
return Format;
}
else if (Tiling == VK_IMAGE_TILING_OPTIMAL
&& (Properties.optimalTilingFeatures & Features) == Features)
{
return Format;
}
}
Log::Error("Failed to find supported format!");
}
VkFormat VulkanTexture::FindDepthFormat()
{
return FindSupportedFormat(
{ VK_FORMAT_D32_SFLOAT, VK_FORMAT_D32_SFLOAT_S8_UINT, VK_FORMAT_D24_UNORM_S8_UINT },
VK_IMAGE_TILING_OPTIMAL,
VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT
);
}
bool VulkanTexture::HasStencilComponent(VkFormat Format)
{
return Format == VK_FORMAT_D32_SFLOAT_S8_UINT || Format == VK_FORMAT_D24_UNORM_S8_UINT;
}
void VulkanTexture::CreateImage(
uint32_t Width,
uint32_t Height,
VkFormat Format,
VkImageTiling Tiling,
VkImageUsageFlags Usage,
VkMemoryPropertyFlags Properties,
VkImage& Image,
VkDeviceMemory& ImageMemory
)
{
VkImageCreateInfo ImageInfo{};
ImageInfo.sType = VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO;
ImageInfo.imageType = VK_IMAGE_TYPE_2D;
ImageInfo.extent.width = Width;
ImageInfo.extent.height = Height;
ImageInfo.extent.depth = 1;
ImageInfo.mipLevels = 1;
ImageInfo.arrayLayers = 1;
ImageInfo.format = Format;
ImageInfo.tiling = Tiling;
ImageInfo.initialLayout = VK_IMAGE_LAYOUT_UNDEFINED;
ImageInfo.usage = Usage;
ImageInfo.samples = VK_SAMPLE_COUNT_1_BIT;
ImageInfo.sharingMode = VK_SHARING_MODE_EXCLUSIVE;
if (vkCreateImage(Device, &ImageInfo, nullptr, &Image) != VK_SUCCESS)
{
Log::Error("Failed to create image!");
}
else
{
Log::Info("Successfully created image.");
}
VkMemoryRequirements MemoryRequirements;
vkGetImageMemoryRequirements(Device, Image, &MemoryRequirements);
VkMemoryAllocateInfo AllocateInfo{};
AllocateInfo.sType = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO;
AllocateInfo.allocationSize = MemoryRequirements.size;
AllocateInfo.memoryTypeIndex =
Buffers.FindMemoryType(MemoryRequirements.memoryTypeBits, Properties);
if (vkAllocateMemory(Device, &AllocateInfo, nullptr, &ImageMemory) != VK_SUCCESS)
{
Log::Error("Failed to allocate image memory!");
}
else
{
Log::Info("Successfully allocated imaged memory.");
}
vkBindImageMemory(Device, Image, ImageMemory, 0);
}

View File

@@ -1,176 +0,0 @@
#include "VulkanVertexBuffer.h"
#include "utilities/Logger.h"
#include <cstdint>
#include <vulkan/vulkan_core.h>
#include <cstring>
void VulkanVertexBuffer::Initialize(FVertexBufferConfig InConfig)
{
Config = InConfig;
}
void VulkanVertexBuffer::Cleanup(const uint32_t MAX_FRAMES_IN_FLIGHT)
{
for (size_t i = 0; i < MAX_FRAMES_IN_FLIGHT; i++)
{
vkDestroyBuffer(Config.Device, UniformBuffers[i], nullptr);
vkFreeMemory(Config.Device, UniformBuffersMemory[i], nullptr);
}
vkDestroyBuffer(Config.Device, IndexBuffer, nullptr);
vkFreeMemory(Config.Device, IndexBufferMemory, nullptr);
vkDestroyBuffer(Config.Device, VertexBuffer, nullptr);
vkFreeMemory(Config.Device, VertexBufferMemory, nullptr);
}
void VulkanVertexBuffer::CreateBuffer(VkDeviceSize Size, VkBufferUsageFlags Usage, VkMemoryPropertyFlags Properties, VkBuffer& Buffer, VkDeviceMemory& BufferMemory)
{
VkBufferCreateInfo BufferInfo{};
BufferInfo.sType = VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO;
BufferInfo.size = Size;
BufferInfo.usage = Usage;
BufferInfo.sharingMode = VK_SHARING_MODE_EXCLUSIVE;
if (vkCreateBuffer(Config.Device, &BufferInfo, nullptr, &Buffer) != VK_SUCCESS)
{
Log::Error("Failed to create buffer!");
}
else
{
Log::Info("Successfully created buffer.");
}
VkMemoryRequirements MemoryRequirements;
vkGetBufferMemoryRequirements(Config.Device, Buffer, &MemoryRequirements);
VkMemoryAllocateInfo AllocateInfo{};
AllocateInfo.sType = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO;
AllocateInfo.allocationSize = MemoryRequirements.size;
AllocateInfo.memoryTypeIndex = FindMemoryType(MemoryRequirements.memoryTypeBits, Properties);
if (vkAllocateMemory(Config.Device, &AllocateInfo, nullptr, &BufferMemory) != VK_SUCCESS)
{
Log::Error("Failed to allocate vertex buffer memory!");
}
else
{
Log::Info("Successfully allocated vertex buffer memory.");
}
vkBindBufferMemory(Config.Device, Buffer, BufferMemory, 0);
}
void VulkanVertexBuffer::CopyBuffer(VkBuffer SrcBuffer, VkBuffer DstBuffer, VkDeviceSize Size)
{
VkCommandBufferAllocateInfo AllocateInfo{};
AllocateInfo.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO;
AllocateInfo.level = VK_COMMAND_BUFFER_LEVEL_PRIMARY;
AllocateInfo.commandPool = Config.CommandPool;
AllocateInfo.commandBufferCount = 1;
VkCommandBuffer CommandBuffer;
vkAllocateCommandBuffers(Config.Device, &AllocateInfo, &CommandBuffer);
VkCommandBufferBeginInfo BeginInfo{};
BeginInfo.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO;
BeginInfo.flags = VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT;
vkBeginCommandBuffer(CommandBuffer, &BeginInfo);
VkBufferCopy CopyRegion{};
CopyRegion.srcOffset = 0;
CopyRegion.dstOffset = 0;
CopyRegion.size = Size;
vkCmdCopyBuffer(CommandBuffer, SrcBuffer, DstBuffer, 1, &CopyRegion);
vkEndCommandBuffer(CommandBuffer);
VkSubmitInfo SubmitInfo{};
SubmitInfo.sType = VK_STRUCTURE_TYPE_SUBMIT_INFO;
SubmitInfo.commandBufferCount = 1;
SubmitInfo.pCommandBuffers = &CommandBuffer;
vkQueueSubmit(Config.GraphicsQueue, 1, &SubmitInfo, VK_NULL_HANDLE);
vkQueueWaitIdle(Config.GraphicsQueue);
vkFreeCommandBuffers(Config.Device, Config.CommandPool, 1, &CommandBuffer);
}
void VulkanVertexBuffer::CreateVertexBuffer(const std::vector<Vertex>& InVertices)
{
VkDeviceSize BufferSize = sizeof(InVertices[0]) * InVertices.size();
VkBuffer StagingBuffer;
VkDeviceMemory StagingBufferMemory;
CreateBuffer(BufferSize, VK_BUFFER_USAGE_TRANSFER_SRC_BIT, VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT, StagingBuffer, StagingBufferMemory);
Log::Info("Starting buffer copy...");
void* Data;
vkMapMemory(Config.Device, StagingBufferMemory, 0, BufferSize, 0, &Data);
memcpy(Data, InVertices.data(), (size_t)BufferSize);
vkUnmapMemory(Config.Device, StagingBufferMemory);
Log::Info("Finished buffer copy...");
CreateBuffer(BufferSize, VK_BUFFER_USAGE_TRANSFER_DST_BIT | VK_BUFFER_USAGE_VERTEX_BUFFER_BIT, VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT, VertexBuffer, VertexBufferMemory);
CopyBuffer(StagingBuffer, VertexBuffer, BufferSize);
vkDestroyBuffer(Config.Device, StagingBuffer, nullptr);
vkFreeMemory(Config.Device, StagingBufferMemory, nullptr);
}
void VulkanVertexBuffer::CreateIndexBuffer(const std::vector<uint16_t>& InIndices)
{
VkDeviceSize BufferSize = sizeof(InIndices[0]) * InIndices.size();
VkBuffer StagingBuffer;
VkDeviceMemory StagingBufferMemory;
CreateBuffer(BufferSize, VK_BUFFER_USAGE_TRANSFER_SRC_BIT, VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT, StagingBuffer, StagingBufferMemory);
Log::Info("Starting buffer copy...");
void* Data;
vkMapMemory(Config.Device, StagingBufferMemory, 0, BufferSize, 0, &Data);
memcpy(Data, InIndices.data(), (size_t)BufferSize);
vkUnmapMemory(Config.Device, StagingBufferMemory);
Log::Info("Finished buffer copy...");
CreateBuffer(BufferSize, VK_BUFFER_USAGE_TRANSFER_DST_BIT | VK_BUFFER_USAGE_INDEX_BUFFER_BIT, VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT, IndexBuffer, IndexBufferMemory);
CopyBuffer(StagingBuffer, IndexBuffer, BufferSize);
vkDestroyBuffer(Config.Device, StagingBuffer, nullptr);
vkFreeMemory(Config.Device, StagingBufferMemory, nullptr);
}
void VulkanVertexBuffer::CreateUniformBuffers(const uint32_t MAX_FRAMES_IN_FLIGHT)
{
VkDeviceSize BufferSize = sizeof(UniformBufferObject);
UniformBuffers.resize(MAX_FRAMES_IN_FLIGHT);
UniformBuffersMemory.resize(MAX_FRAMES_IN_FLIGHT);
UniformBuffersMapped.resize(MAX_FRAMES_IN_FLIGHT);
for (size_t i = 0; i < MAX_FRAMES_IN_FLIGHT; i++)
{
CreateBuffer(BufferSize, VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT, VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT, UniformBuffers[i], UniformBuffersMemory[i]);
vkMapMemory(Config.Device, UniformBuffersMemory[i], 0, BufferSize, 0, &UniformBuffersMapped[i]);
}
}
uint32_t VulkanVertexBuffer::FindMemoryType(uint32_t TypeFilter, VkMemoryPropertyFlags Properties)
{
VkPhysicalDeviceMemoryProperties MemoryProperties;
vkGetPhysicalDeviceMemoryProperties(Config.PhysicalDevice, &MemoryProperties);
for (uint32_t i = 0; i < MemoryProperties.memoryTypeCount; i++)
{
if ((TypeFilter & (1 << i)) && (MemoryProperties.memoryTypes[i].propertyFlags & Properties) == Properties)
{
return i;
}
}
Log::Error("Failed to find suitable memory type!");
return 0;
}

109
src/public/VulkanBuffers.h Normal file
View File

@@ -0,0 +1,109 @@
#pragma once
#include <vulkan/vulkan_core.h>
#define GLFW_INCLUDE_VULKAN
#include <GLFW/glfw3.h>
#include <cstdint>
#include <vector>
#include <optional>
#include "Primitives.h"
struct FBufferConfig
{
VkDevice Device;
VkRenderPass RenderPass;
VkPhysicalDevice PhysicalDevice;
VkQueue GraphicsQueue;
};
struct FRecordBuffersParams
{
VkCommandBuffer InCommandBuffer;
uint32_t ImageIndex;
VkBuffer InVertexBuffer;
uint32_t InVerticesSize;
VkBuffer InIndexBuffer;
uint32_t InIndexSize;
VkRenderPass RenderPass;
VkExtent2D SwapChainExtent;
VkPipeline GraphicsPipeline;
std::vector<VkFramebuffer> SwapChainFramebuffers;
VkDescriptorSet DescriptorSet;
VkPipelineLayout PipelineLayout;
bool bDrawImGui = false;
// std::vector<Vertex> InVertices;
// ImDrawData* DrawData = nullptr;
};
class VulkanBuffers
{
public:
void Initialize(FBufferConfig InConfig);
// VkDevice InDevice,
// VkRenderPass InRenderPass);
void Cleanup(size_t MAX_FRAMES_IN_FLIGHT);
void CreateCommandPool(std::optional<uint32_t> GraphicsFamily);
void CreateCommandBuffers(int FramesInFlight);
void RecordCommandBuffer(FRecordBuffersParams& Params);
VkCommandBuffer BeginSingleTimeCommands();
void EndSingleTimeCommands(VkCommandBuffer InCommandBuffer, VkQueue GraphicsQueue);
void TransitionImageLayout(
VkImage Image,
VkFormat Format,
VkImageLayout OldLayout,
VkImageLayout NewLayout,
bool bHasStencilComponent
);
void CopyBufferToImage(VkBuffer Buffer, VkImage Image, uint32_t Width, uint32_t Height);
void
CopyBuffer(VkQueue GraphicsQueue, VkBuffer SrcBuffer, VkBuffer DstBuffer, VkDeviceSize Size);
void CreateBuffer(
VkDeviceSize Size,
VkBufferUsageFlags Usage,
VkMemoryPropertyFlags Properties,
VkBuffer& Buffer,
VkDeviceMemory& BufferMemory
);
void CreateVertexBuffer(const std::vector<Vertex>& InVertices);
void CreateIndexBuffer(const std::vector<uint32_t>& InIndices);
void CreateUniformBuffers(const uint32_t MAX_FRAMES_IN_FLIGHT);
uint32_t FindMemoryType(uint32_t TypeFilter, VkMemoryPropertyFlags Properties);
std::vector<VkCommandBuffer> GetCommandBuffers() { return CommandBuffers; }
VkCommandBuffer GetCommandBuffer(int i) { return CommandBuffers[i]; }
VkCommandPool GetCommandPool() { return CommandPool; }
VkBuffer GetVertexBuffer() { return VertexBuffer; }
VkBuffer GetIndexBuffer() { return IndexBuffer; }
std::vector<VkBuffer> GetUniformBuffers() { return UniformBuffers; }
std::vector<void*> GetUniformBuffersMapped() { return UniformBuffersMapped; }
private:
// VkDevice Device;
// VkRenderPass RenderPass;
// VkQueue GraphicsQueue;
FBufferConfig Config;
std::vector<VkCommandBuffer> CommandBuffers;
VkCommandPool CommandPool;
VkBuffer VertexBuffer;
VkDeviceMemory VertexBufferMemory;
VkBuffer IndexBuffer;
VkDeviceMemory IndexBufferMemory;
std::vector<VkBuffer> UniformBuffers;
std::vector<VkDeviceMemory> UniformBuffersMemory;
std::vector<void*> UniformBuffersMapped;
};

View File

@@ -1,58 +0,0 @@
#pragma once
#include "VulkanVertexBuffer.h"
#include <cstdint>
#include <vulkan/vulkan_core.h>
#define GLFW_INCLUDE_VULKAN
#include <GLFW/glfw3.h>
#include <vector>
#include <optional>
struct FRecordCommandBuffersParams
{
VkCommandBuffer InCommandBuffer;
uint32_t ImageIndex;
VkBuffer InVertexBuffer;
uint32_t InVerticesSize;
VkBuffer InIndexBuffer;
uint32_t InIndexSize;
VkRenderPass RenderPass;
VkExtent2D SwapChainExtent;
VkPipeline GraphicsPipeline;
std::vector<VkFramebuffer> SwapChainFramebuffers;
VkDescriptorSet DescriptorSet;
VkPipelineLayout PipelineLayout;
bool bDrawImGui = false;
// std::vector<Vertex> InVertices;
// ImDrawData* DrawData = nullptr;
};
class VulkanCommandBuffers
{
public:
void Initialize(
VkDevice InDevice,
VkRenderPass InRenderPass);
void Cleanup();
void CreateCommandPool(std::optional<uint32_t> GraphicsFamily);
void CreateCommandBuffers(int FramesInFlight);
void RecordCommandBuffer(FRecordCommandBuffersParams& Params);
std::vector<VkCommandBuffer> GetCommandBuffers() { return CommandBuffers; }
VkCommandBuffer GetCommandBuffer(int i) { return CommandBuffers[i]; }
VkCommandPool GetCommandPool() { return CommandPool; }
private:
VkDevice Device;
VkRenderPass RenderPass;
// VkQueue GraphicsQueue;
std::vector<VkCommandBuffer> CommandBuffers;
VkCommandPool CommandPool;
};

View File

@@ -1,32 +1,34 @@
#pragma once
#include "VulkanCommandBuffers.h"
#include "VulkanFramebuffers.h"
#include "VulkanInstanceManager.h"
#include "VulkanDeviceManager.h"
#include "VulkanDebugManager.h"
#include "VulkanPipeline.h"
#include "VulkanRenderPass.h"
#include "VulkanSwapChain.h"
#include "VulkanVertexBuffer.h"
class VulkanInstanceManager;
class VulkanDebugManager;
class VulkanDeviceManager;
class VulkanSwapChain;
class VulkanPipeline;
class VulkanRenderPass;
class VulkanBuffers;
class VulkanFramebuffers;
class VulkanTexture;
class Vertex;
#include <cstdint>
#include <string>
#include <memory>
#include <vector>
#include <vulkan/vulkan_core.h>
#define GLFW_INCLUDE_VULKAN
#include <GLFW/glfw3.h>
static const std::vector<const char*> ValidationLayers = {
"VK_LAYER_KHRONOS_validation"
};
static const std::vector<const char*> ValidationLayers = { "VK_LAYER_KHRONOS_validation" };
static size_t MAX_FRAMES_IN_FLIGHT = 2;
struct FVulkanConfig
{
bool bValidationEnabled = true;
bool bVerboseLogging = false;
GLFWwindow* Window = nullptr;
std::string ModelPath;
std::string TexturePath;
// std::vector<Vertex> Vertices;
};
@@ -36,17 +38,22 @@ public:
VulkanContext();
~VulkanContext();
VulkanInstanceManager InstanceManager;
VulkanDebugManager DebugManager;
VulkanDeviceManager DeviceManager;
VulkanSwapChain SwapChain;
VulkanPipeline GraphicsPipeline;
VulkanRenderPass RenderPass;
VulkanFramebuffers Framebuffers;
VulkanVertexBuffer VertexBuffer;
VulkanCommandBuffers CommandBuffers;
std::unique_ptr<VulkanInstanceManager> InstanceManager;
std::unique_ptr<VulkanDebugManager> DebugManager;
std::unique_ptr<VulkanDeviceManager> DeviceManager;
std::unique_ptr<VulkanSwapChain> SwapChain;
std::unique_ptr<VulkanPipeline> GraphicsPipeline;
std::unique_ptr<VulkanRenderPass> RenderPass;
std::unique_ptr<VulkanFramebuffers> Framebuffers;
std::unique_ptr<VulkanBuffers> Buffers;
std::unique_ptr<VulkanTexture> Textures;
// std::unique_ptr<VulkanDepthPass> DepthPass;
void Initialize(FVulkanConfig& InConfig, const std::vector<Vertex>& InVertices, const std::vector<uint16_t>& InIndices);
void Initialize(
FVulkanConfig& InConfig,
const std::vector<Vertex>& InVertices,
const std::vector<uint32_t>& InIndices
);
void Cleanup();
void CreateSurface(GLFWwindow* Window);
@@ -55,20 +62,10 @@ public:
void CreateDescriptorPool();
void CreateDescriptorSets();
void CreateImage(
uint32_t Width,
uint32_t Height,
VkFormat Format,
VkImageTiling Tiling,
VkImageUsageFlags Usage,
VkMemoryPropertyFlags Properties,
VkImage& Image,
VkDeviceMemory& ImageMemory);
void CreateTextureImage(const char* FileName);
void CreateSyncObjects();
void DrawFrame(bool bDrawImGui, uint32_t InVerticesSize, uint32_t InIndexSize);
void UpdateUniformBuffer(uint32_t CurrentImage);
void RecreateSwapChain();
@@ -95,13 +92,18 @@ private:
VkDescriptorPool DescriptorPool;
std::vector<VkDescriptorSet> DescriptorSets;
VkImage TextureImage;
VkDeviceMemory TextureImageMemory;
// VkImage TextureImage;
// VkDeviceMemory TextureImageMemory;
// VkImageView TextureImageView;
// VkSampler TextureSampler;
//
// VkImage DepthImage;
// VkDeviceMemory DepthImageMemory;
// VkImageView DepthImageView;
bool bFramebufferResized = false;
bool bImGuiGlfwInitialized = false;
bool bImGuiVulkanInitialized = false;
const size_t MAX_FRAMES_IN_FLIGHT = 2;
uint32_t CurrentFrame = 0;
uint32_t CurrentFrame = 0;
};

View File

@@ -0,0 +1,73 @@
#pragma once
#include "Logger.h"
#include "VulkanContext.hpp"
#include <vector>
#include <vulkan/vulkan_core.h>
struct FDepthConfig
{
VkPhysicalDevice PhysicalDevice;
};
class VulkanDepthPass
{
public:
void Initialize(FDepthConfig& InConfig) { Config = InConfig; }
void CreateDepthResources() { VkFormat DepthFormat = FindDepthFormat(); }
VkFormat FindSupportedFormat(
const std::vector<VkFormat>& Candidates,
VkImageTiling Tiling,
VkFormatFeatureFlags Features
)
{
for (VkFormat Format : Candidates)
{
VkFormatProperties Properties;
vkGetPhysicalDeviceFormatProperties(Config.PhysicalDevice, Format, &Properties);
if (Tiling == VK_IMAGE_TILING_LINEAR
&& (Properties.linearTilingFeatures & Features) == Features)
{
return Format;
}
else if (Tiling == VK_IMAGE_TILING_OPTIMAL
&& (Properties.optimalTilingFeatures & Features) == Features)
{
return Format;
}
}
Log::Error("Failed to find supported format!");
}
VkFormat FindDepthFormat()
{
return FindSupportedFormat(
{ VK_FORMAT_D32_SFLOAT, VK_FORMAT_D32_SFLOAT_S8_UINT, VK_FORMAT_D24_UNORM_S8_UINT },
VK_IMAGE_TILING_OPTIMAL,
VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT
);
}
bool HasStencilComponent(VkFormat Format)
{
return Format == VK_FORMAT_D32_SFLOAT_S8_UINT || Format == VK_FORMAT_D24_UNORM_S8_UINT;
}
VkImage& GetDepthImage() { return DepthImage; }
VkDeviceMemory& GetDepthImageMemory() { return DepthImageMemory; }
VkImageView& GetDepthImageView() { return DepthImageView; }
void SetDepthImageView(VkImageView ImageView) { DepthImageView = ImageView; }
private:
FDepthConfig Config;
VkImage DepthImage;
VkDeviceMemory DepthImageMemory;
VkImageView DepthImageView;
};

View File

@@ -7,14 +7,6 @@
#define GLFW_INCLUDE_VULKAN
#include <GLFW/glfw3.h>
struct FDeviceConfig
{
VkInstance Instance;
bool bEnableValidationLayers;
VkSurfaceKHR Surface;
GLFWwindow* Window;
};
struct QueueFamilyIndices
{
std::optional<uint32_t> GraphicsFamily;
@@ -36,14 +28,13 @@ struct SwapChainSupportDetails
class VulkanDeviceManager
{
public:
VulkanDeviceManager();
~VulkanDeviceManager();
VulkanDeviceManager(
VkInstance Instance,
VkSurfaceKHR Surface,
GLFWwindow* Window,
bool bEnableValidationLayers);
void Initialize(FDeviceConfig InConfig);
// VkInstance Instance,
// bool EnableValidationLayers,
// VkSurfaceKHR Surface,
// GLFWwindow* Window);
~VulkanDeviceManager();
void Cleanup();
@@ -58,7 +49,10 @@ public:
VkQueue GetPresentQueue() { return PresentQueue; }
private:
FDeviceConfig DeviceConfig;
VkInstance Instance;
VkSurfaceKHR Surface;
GLFWwindow* Window;
bool bEnableValidationLayers;
VkDevice Device = VK_NULL_HANDLE;
VkPhysicalDevice PhysicalDevice = VK_NULL_HANDLE;

View File

@@ -21,17 +21,10 @@ public:
void Cleanup();
void CreateFramebuffers();
// void CreateFramebuffers(VkRenderPass RenderPass, std::vector<VkImageView> SwapChainImageViews, VkExtent2D SwapChainExtent);
void CreateFramebuffers(VkImageView DepthImageView);
std::vector<VkFramebuffer> GetSwapChainFrameBuffers() { return SwapChainFramebuffers; }
// void CreateCommandPool(std::optional<uint32_t> GraphicsFamily);
//
// void CreateCommandBuffer();
//
// void RecordCommandBuffer(VkCommandBuffer CommandBuffer, uint32_t imageIndex, VkRenderPass RenderPass, VkExtent2D SwapChainExtent, VkPipeline GraphicsPipeline);
private:
FFramebufferConfig FramebufferConfig;

View File

@@ -15,8 +15,8 @@ public:
void Cleanup();
void CreateInstance(VulkanDebugManager* DebugManager = nullptr);
const VkInstance GetInstance() const { return Instance; }
void CreateInstance(VulkanDebugManager* DebugManager = nullptr);
VkInstance GetInstance() const { return Instance; }
private:
VkInstance Instance = VK_NULL_HANDLE;

View File

@@ -10,7 +10,7 @@ public:
void Cleanup();
void CreateRenderPass(VkFormat SwapChainImageFormat);
void CreateRenderPass(VkFormat SwapChainImageFormat, VkFormat DepthFormat);
VkRenderPass GetRenderPass() { return RenderPass; }

View File

@@ -1,93 +1,64 @@
#pragma once
#include <optional>
#include <cstdint>
#include <vector>
#include <vulkan/vulkan_core.h>
#include <vulkan/vulkan_core.h>
#define GLFW_INCLUDE_VULKAN
#include <GLFW/glfw3.h>
const std::vector<const char*> DeviceExtensions = {
VK_KHR_SWAPCHAIN_EXTENSION_NAME
};
//
// struct SwapChainSupportDetails
// {
// VkSurfaceCapabilitiesKHR Capabilities;
// std::vector<VkSurfaceFormatKHR> Formats;
// std::vector<VkPresentModeKHR> PresentModes;
// };
struct FSwapConfig
{
VkDevice Device;
VkSurfaceKHR Surface;
GLFWwindow* Window;
std::optional<uint32_t> GraphicsFamily;
std::optional<uint32_t> PresentFamily;
VkSurfaceCapabilitiesKHR Capabilities;
std::vector<VkSurfaceFormatKHR> Formats;
std::vector<VkPresentModeKHR> PresentModes;
};
const std::vector<const char*> DeviceExtensions = { VK_KHR_SWAPCHAIN_EXTENSION_NAME };
class VulkanSwapChain
{
public:
VulkanSwapChain();
VulkanSwapChain(
VkDevice Device,
VkSurfaceKHR Surface,
GLFWwindow* Window,
uint32_t GraphicsFamily,
uint32_t PresentFamily,
const VkSurfaceCapabilitiesKHR& Capabilities,
const std::vector<VkSurfaceFormatKHR>& Formats,
const std::vector<VkPresentModeKHR>& PresentModes
);
~VulkanSwapChain();
void Initialize(FSwapConfig InConfig);
VulkanSwapChain(const VulkanSwapChain&) = delete;
VulkanSwapChain& operator=(const VulkanSwapChain&) = delete;
// void Initialize(
// VkDevice InDevice,
// VkSurfaceKHR InSurface,
// GLFWwindow* InWindow);
void CreateSwapChain();
void CreateImageViews();
void Cleanup();
void CreateSwapChain();
// void CreateSwapChain(
// std::optional<uint32_t> GraphicsFamily,
// std::optional<uint32_t> PresentFamily,
// VkSurfaceCapabilitiesKHR Capabilities,
// std::vector<VkSurfaceFormatKHR> Formats,
// std::vector<VkPresentModeKHR> PresentModes);
void CreateImageViews();
// void RecreateSwapChain();
VkSwapchainKHR GetSwapChain() { return SwapChain; }
VkFormat GetSwapChainImageFormat() { return SwapChainImageFormat; }
VkExtent2D GetSwapChainExtent() { return SwapChainExtent; }
std::vector<VkImageView> GetSwapChainImageViews() { return SwapChainImageViews; }
VkImageView CreateImageView(VkImage Image, VkFormat Format, VkImageAspectFlags AspectFlags);
VkSwapchainKHR GetSwapChain() { return SwapChain; }
VkFormat GetSwapChainImageFormat() { return SwapChainImageFormat; }
VkExtent2D GetSwapChainExtent() { return SwapChainExtent; }
std::vector<VkImageView>& GetSwapChainImageViews() { return SwapChainImageViews; }
size_t GetSwapChainImagesCount() { return SwapChainImages.size(); }
private:
FSwapConfig SwapConfig;
// VkPhysicalDevice PhysicalDevice;
// VkDevice Device;
// VkSurfaceKHR Surface;
//
// GLFWwindow* Window = nullptr;
std::vector<VkImage> SwapChainImages;
VkSwapchainKHR SwapChain = VK_NULL_HANDLE;
VkFormat SwapChainImageFormat;
VkExtent2D SwapChainExtent;
VkDevice Device;
VkSurfaceKHR Surface;
GLFWwindow* Window;
uint32_t GraphicsFamily;
uint32_t PresentFamily;
VkSurfaceCapabilitiesKHR Capabilities;
std::vector<VkSurfaceFormatKHR> Formats;
std::vector<VkPresentModeKHR> PresentModes;
std::vector<VkImage> SwapChainImages;
VkSwapchainKHR SwapChain = VK_NULL_HANDLE;
VkFormat SwapChainImageFormat;
VkExtent2D SwapChainExtent;
std::vector<VkImageView> SwapChainImageViews;
// bool IsDeviceSuitable(VkPhysicalDevice Device);
//
// int RateDeviceSuitability(VkPhysicalDevice Device);
//
// bool CheckDeviceExtensionSupport(VkPhysicalDevice Device);
// SwapChainSupportDetails QuerySwapChainSupport(VkPhysicalDevice Device);
VkSurfaceFormatKHR ChooseSwapSurfaceFormat(const std::vector<VkSurfaceFormatKHR>& AvailableFormats);
VkPresentModeKHR ChooseSwapPresentMode(const std::vector<VkPresentModeKHR>& AvailablePresentModes);
VkSurfaceFormatKHR
ChooseSwapSurfaceFormat(const std::vector<VkSurfaceFormatKHR>& AvailableFormats);
VkPresentModeKHR
ChooseSwapPresentMode(const std::vector<VkPresentModeKHR>& AvailablePresentModes);
VkExtent2D ChooseSwapExtent(const VkSurfaceCapabilitiesKHR& Capabilities);
};

View File

@@ -0,0 +1,68 @@
#pragma once
#include <vulkan/vulkan.hpp>
class VulkanBuffers;
class VulkanSwapChain;
class VulkanTexture
{
public:
VulkanTexture(
VkDevice Device,
VkPhysicalDevice PhysicalDevice,
VkQueue GraphicsQueue,
VulkanBuffers& Buffers,
VulkanSwapChain& SwapChain
);
~VulkanTexture();
void Cleanup();
void CleanupTextures();
void CleanupDepth();
void LoadFromFile(const char* Filename);
void CreateImageView();
void CreateSampler();
void CreateDepthResources();
VkFormat FindSupportedFormat(
const std::vector<VkFormat>& Candidates,
VkImageTiling Tiling,
VkFormatFeatureFlags Features
);
VkFormat FindDepthFormat();
bool HasStencilComponent(VkFormat Format);
VkImageView GetImageView() const { return ImageView; }
VkSampler GetSampler() const { return Sampler; }
VkImageView GetDepthImageView() const { return DepthImageView; }
private:
VkDevice Device;
VkPhysicalDevice PhysicalDevice;
VkQueue GraphicsQueue;
VulkanBuffers& Buffers;
VulkanSwapChain& SwapChain;
VkImage Image;
VkDeviceMemory ImageMemory;
VkImageView ImageView;
VkSampler Sampler;
VkImage DepthImage;
VkDeviceMemory DepthImageMemory;
VkImageView DepthImageView;
void CreateImage(
uint32_t Width,
uint32_t Height,
VkFormat Format,
VkImageTiling Tiling,
VkImageUsageFlags Usage,
VkMemoryPropertyFlags Properties,
VkImage& Image,
VkDeviceMemory& ImageMemory
);
};

View File

@@ -1,55 +0,0 @@
#pragma once
#include "Primitives.h"
#include <vector>
#include <vulkan/vulkan_core.h>
#define GLFW_INCLUDE_VULKAN
#include <GLFW/glfw3.h>
struct FVertexBufferConfig
{
VkDevice Device;
VkPhysicalDevice PhysicalDevice;
VkCommandPool CommandPool;
VkQueue GraphicsQueue;
};
class VulkanVertexBuffer
{
public:
void Initialize(FVertexBufferConfig InConfig);
void Cleanup(const uint32_t MAX_FRAMES_IN_FLIGHT);
void CreateBuffer(VkDeviceSize Size, VkBufferUsageFlags Usage, VkMemoryPropertyFlags Properties, VkBuffer& Buffer, VkDeviceMemory& BufferMemory);
void CopyBuffer(VkBuffer SrcBuffer, VkBuffer DstBuffer, VkDeviceSize Size);
void CreateVertexBuffer(const std::vector<Vertex>& InVertices);
void CreateIndexBuffer(const std::vector<uint16_t>& InIndices);
void CreateUniformBuffers(const uint32_t MAX_FRAMES_IN_FLIGHT);
uint32_t FindMemoryType(uint32_t TypeFilter, VkMemoryPropertyFlags Properties);
VkBuffer GetVertexBuffer() { return VertexBuffer; }
VkBuffer GetIndexBuffer() { return IndexBuffer; }
std::vector<VkBuffer> GetUniformBuffers() { return UniformBuffers; }
std::vector<void*> GetUniformBuffersMapped() { return UniformBuffersMapped; }
private:
FVertexBufferConfig Config;
VkBuffer VertexBuffer;
VkDeviceMemory VertexBufferMemory;
VkBuffer IndexBuffer;
VkDeviceMemory IndexBufferMemory;
std::vector<VkBuffer> UniformBuffers;
std::vector<VkDeviceMemory> UniformBuffersMemory;
std::vector<void*> UniformBuffersMapped;
};

View File

@@ -1,12 +1,17 @@
#include <glm/fwd.hpp>
#include <glm/glm.hpp>
#include <vulkan/vulkan_core.h>
#define GLM_ENABLE_EXPERIMENTAL
#include <glm/gtx/hash.hpp>
#include <array>
struct Vertex
{
glm::vec2 Position;
glm::vec3 Position;
glm::vec3 Color;
glm::vec2 TextureCoordinates;
static VkVertexInputBindingDescription GetBindingDescription()
{
@@ -18,12 +23,12 @@ struct Vertex
return BindingDescription;
}
static std::array<VkVertexInputAttributeDescription, 2> GetAttributeDescriptions()
static std::array<VkVertexInputAttributeDescription, 3> GetAttributeDescriptions()
{
std::array<VkVertexInputAttributeDescription, 2> AttributeDescriptions{};
std::array<VkVertexInputAttributeDescription, 3> AttributeDescriptions{};
AttributeDescriptions[0].binding = 0;
AttributeDescriptions[0].location = 0;
AttributeDescriptions[0].format = VK_FORMAT_R32G32_SFLOAT;
AttributeDescriptions[0].format = VK_FORMAT_R32G32B32_SFLOAT;
AttributeDescriptions[0].offset = offsetof(Vertex, Position);
AttributeDescriptions[1].binding = 0;
@@ -31,10 +36,34 @@ struct Vertex
AttributeDescriptions[1].format = VK_FORMAT_R32G32B32_SFLOAT;
AttributeDescriptions[1].offset = offsetof(Vertex, Color);
AttributeDescriptions[2].binding = 0;
AttributeDescriptions[2].location = 2;
AttributeDescriptions[2].format = VK_FORMAT_R32G32_SFLOAT;
AttributeDescriptions[2].offset = offsetof(Vertex, TextureCoordinates);
return AttributeDescriptions;
}
bool operator==(const Vertex& Other) const
{
return Position == Other.Position && Color == Other.Color
&& TextureCoordinates == Other.TextureCoordinates;
}
};
namespace std
{
template <> struct hash<Vertex>
{
size_t operator()(Vertex const& Vertex) const
{
return ((hash<glm::vec3>()(Vertex.Position) ^ (hash<glm::vec3>()(Vertex.Color) << 1))
>> 1)
^ (hash<glm::vec2>()(Vertex.TextureCoordinates) << 1);
}
};
} // namespace std
struct UniformBufferObject
{
alignas(16) glm::mat4 Model;

View File

@@ -0,0 +1,3 @@
// tinyobj_loader_impl.cpp
#define TINYOBJLOADER_IMPLEMENTATION
#include "tiny_obj_loader.h"

BIN
textures/viking_room.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 940 KiB