From 023a06c0cd53b2729151498697f4a857ca02ac5a Mon Sep 17 00:00:00 2001 From: Jordan Arch Date: Thu, 19 Feb 2026 11:03:22 -0500 Subject: [PATCH] https://vulkan-tutorial.com/en/Texture_mapping/Images --- .clangd => .clangd_dead | 0 .gitignore | 3 +- CMakeLists.txt | 27 +- Shaders/shader.vert | 9 +- Shaders/vert.spv | Bin 1080 -> 1676 bytes build/CMakeFiles/CMakeConfigureLog.yaml | 160 +- .../LearningVulkan.dir/DependInfo.cmake | 1 + .../CMakeFiles/LearningVulkan.dir/build.make | 32 +- .../LearningVulkan.dir/cmake_clean.cmake | 2 + .../compiler_depend.internal | 184 + .../LearningVulkan.dir/compiler_depend.make | 265 +- .../CMakeFiles/LearningVulkan.dir/flags.make | 2 +- build/CMakeFiles/LearningVulkan.dir/link.d | 3 + build/CMakeFiles/LearningVulkan.dir/link.txt | 2 +- .../LearningVulkan.dir/progress.make | 1 + .../LearningVulkan.dir/src/main.cpp.o | Bin 191048 -> 192288 bytes .../src/private/VulkanCommandBuffers.cpp.o | Bin 191136 -> 191072 bytes .../src/private/VulkanCommandBuffers.cpp.o.d | 6 +- .../src/private/VulkanContext.cpp.o | Bin 205144 -> 220072 bytes .../src/private/VulkanContext.cpp.o.d | 54 +- .../src/private/VulkanPipeline.cpp.o | Bin 193608 -> 193664 bytes .../src/private/VulkanVertexBuffer.cpp.o | Bin 185936 -> 189440 bytes .../src/private/VulkanVertexBuffer.cpp.o.d | 11 +- build/CMakeFiles/Makefile2 | 6 +- build/CMakeFiles/progress.marks | 2 +- build/LearningVulkan | Bin 1692592 -> 1820552 bytes build/Makefile | 27 + build/compile_commands.json | 50 +- compile_commands.json | 18 - imgui.ini | 2 +- lib/stb/stb_image.h | 8581 +++++++++++++++++ src/main.cpp | 25 +- src/private/VulkanCommandBuffers.cpp | 6 +- src/private/VulkanContext.cpp | 249 +- src/private/VulkanPipeline.cpp | 8 +- src/private/VulkanVertexBuffer.cpp | 130 +- src/public/VulkanCommandBuffers.h | 7 +- src/public/VulkanContext.h | 44 +- src/public/VulkanPipeline.h | 5 +- src/public/VulkanVertexBuffer.h | 30 +- src/{public => utilities}/Primitives.h | 7 + src/utilities/stb_image_impl.cpp | 3 + textures/texture.jpg | Bin 0 -> 77120 bytes 43 files changed, 9736 insertions(+), 226 deletions(-) rename .clangd => .clangd_dead (100%) delete mode 100644 compile_commands.json create mode 100644 lib/stb/stb_image.h rename src/{public => utilities}/Primitives.h (89%) create mode 100644 src/utilities/stb_image_impl.cpp create mode 100644 textures/texture.jpg diff --git a/.clangd b/.clangd_dead similarity index 100% rename from .clangd rename to .clangd_dead diff --git a/.gitignore b/.gitignore index 9491a2f..82cfed7 100644 --- a/.gitignore +++ b/.gitignore @@ -32,6 +32,7 @@ bld/ [Oo]ut/ [Ll]og/ [Ll]ogs/ +[Bb]uild/ # Visual Studio 2015/2017 cache/options directory .vs/ @@ -360,4 +361,4 @@ MigrationBackup/ .ionide/ # Fody - auto-generated XML schema -FodyWeavers.xsd \ No newline at end of file +FodyWeavers.xsd diff --git a/CMakeLists.txt b/CMakeLists.txt index 805af45..295348f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,8 @@ cmake_minimum_required(VERSION 3.10) project(LearningVulkan) +set(CMAKE_EXPORT_COMPILE_COMMANDS ON) + set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_CXX_EXTENSIONS OFF) @@ -9,15 +11,6 @@ add_compile_options(-Wall -Wextra -O2) set(IMGUI_DIR ${CMAKE_CURRENT_SOURCE_DIR}/lib/imgui) -include_directories( - ${IMGUI_DIR} - ${IMGUI_DIR}/backends - include - src - src/private - src/public -) - # Recursively find all .cpp files under src/ file(GLOB_RECURSE SOURCES "src/*.cpp") @@ -34,7 +27,20 @@ list(APPEND SOURCES add_executable(${PROJECT_NAME} ${SOURCES}) -target_link_libraries(${PROJECT_NAME} PRIVATE +target_include_directories(${PROJECT_NAME} + PRIVATE + lib + lib/stb + ${IMGUI_DIR} + ${IMGUI_DIR}/backends + src + src/utilities + src/private + src/public +) + +target_link_libraries(${PROJECT_NAME} + PRIVATE glfw vulkan dl @@ -43,5 +49,4 @@ target_link_libraries(${PROJECT_NAME} PRIVATE Xxf86vm Xrandr Xi - ) diff --git a/Shaders/shader.vert b/Shaders/shader.vert index fa977f6..7ce15ef 100644 --- a/Shaders/shader.vert +++ b/Shaders/shader.vert @@ -1,12 +1,17 @@ #version 450 +layout(binding = 0) uniform UniformBufferObject { + mat4 model; + mat4 view; + mat4 proj; +} ubo; + layout(location = 0) in vec2 inPosition; layout(location = 1) in vec3 inColor; layout(location = 0) out vec3 fragColor; void main() { - gl_Position = vec4(inPosition, 0.0, 1.0); + gl_Position = ubo.proj * ubo.view * ubo.model * vec4(inPosition, 0.0, 1.0); fragColor = inColor; } - diff --git a/Shaders/vert.spv b/Shaders/vert.spv index a8ec1a662f0a28d4e450f2e4d7681faee98ff26a..00c2804a31e015b61eb14e95b5849cb649d018d1 100644 GIT binary patch literal 1676 zcmZ9L+fEZv6o$8L2M`2AtCn6{ymgSThqo|FmqUt;1Ghl=K?Up6`&c zV9IGCIg93EYFG3-=-3cvUQ(AlmOPP^^;eSqqk@W=HO*GLxxe3ReQI}y!}cio5%}%E zhJL$eW51i&Q=hzFKU>nsFSo5B&J6A1D5Ixk57>n^-imiH$;` z(`i0Cq__=}L;F*csmWs8S+U)~4nNva(h0l%BnAV-#z8QNdD@fRIi7kfNq-4#KZ*w* z#{Iq@?;o9LKlSj^7|3=JV++!F=Ct%E2mL4BPvb~gN8&1|rF?jFC zo#Wjoh~l)SlD>ltGo+~=a7EueRbX?Rb{Ka7LpzKbF!pyCHW=?gZ}!f5S0;OU!pJAa z(MM-4ON!VQ0i8W{B9FPnI{fo>VAQ>nxH@JR>+sLlfl+rRX=)yv)+HS0Z)R@l6RQ?{ zI4=5p=lI-bS=-aUE-v5(dsWtybWO6RdE5sd&Q|n0BVChlwsW8VEc$K8pOq#btSSq> zT@PYNO?j83nMwRr?(W=;KLu7 z>v=Wz$zREBdbs$yZ0-OTx1`yPdh%=1#K7r~UzdPUPcCoAasKVpJ9|t01KI4$9`xUq zrUs1oqud6kKR)m2;tko^tSpYt`+~g?C)^W$IMn{x?Ao<#6Bpe!|%L^PW_Q}dkT-^;nVf#Wi%!( zq8(-Zl|5JOu;BpsZqTj$&&&EY|D5#6tdUs&Eiizu^JhT)tl>^mJAqrf0eo}bo3YnR z`?ra6zyaa>U4DDi%Lr;1@SP8+QNz diff --git a/build/CMakeFiles/CMakeConfigureLog.yaml b/build/CMakeFiles/CMakeConfigureLog.yaml index 33c97ab..a69fbfc 100644 --- a/build/CMakeFiles/CMakeConfigureLog.yaml +++ b/build/CMakeFiles/CMakeConfigureLog.yaml @@ -1196,8 +1196,8 @@ events: checks: - "Detecting C compiler ABI info" directories: - source: "/home/Jordan/Projects/CPP/LearningVulkan/build/CMakeFiles/CMakeScratch/TryCompile-txMYOt" - binary: "/home/Jordan/Projects/CPP/LearningVulkan/build/CMakeFiles/CMakeScratch/TryCompile-txMYOt" + source: "/home/Jordan/Projects/CPP/LearningVulkan/build/CMakeFiles/CMakeScratch/TryCompile-cavOgA" + binary: "/home/Jordan/Projects/CPP/LearningVulkan/build/CMakeFiles/CMakeScratch/TryCompile-cavOgA" 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-txMYOt' + Change Dir: '/home/Jordan/Projects/CPP/LearningVulkan/build/CMakeFiles/CMakeScratch/TryCompile-cavOgA' - Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/make -f Makefile cmTC_c3c9f/fast - /usr/bin/make -f CMakeFiles/cmTC_c3c9f.dir/build.make CMakeFiles/cmTC_c3c9f.dir/build - make[1]: Entering directory '/home/Jordan/Projects/CPP/LearningVulkan/build/CMakeFiles/CMakeScratch/TryCompile-txMYOt' - Building C object CMakeFiles/cmTC_c3c9f.dir/CMakeCCompilerABI.c.o - /usr/bin/cc -v -o CMakeFiles/cmTC_c3c9f.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_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 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_c3c9f.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_c3c9f.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_c3c9f.dir/ -dumpbase CMakeCCompilerABI.c.c -dumpbase-ext .c -mtune=generic -march=x86-64 -version -o /tmp/cctXmx2g.s + 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 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_c3c9f.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_c3c9f.dir/' - as -v --64 -o CMakeFiles/cmTC_c3c9f.dir/CMakeCCompilerABI.c.o /tmp/cctXmx2g.s + 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 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_c3c9f.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_c3c9f.dir/CMakeCCompilerABI.c.' - Linking C executable cmTC_c3c9f - /usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_c3c9f.dir/link.txt --verbose=1 + 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 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_c3c9f' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_c3c9f.' - /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/cc8b1r4W.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_c3c9f /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_c3c9f.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_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 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/cc8b1r4W.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_c3c9f /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_c3c9f.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/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 GNU ld (GNU Binutils) 2.46 - COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_c3c9f' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_c3c9f.' - /usr/bin/cc -v -Wl,-v CMakeFiles/cmTC_c3c9f.dir/CMakeCCompilerABI.c.o -o cmTC_c3c9f - make[1]: Leaving directory '/home/Jordan/Projects/CPP/LearningVulkan/build/CMakeFiles/CMakeScratch/TryCompile-txMYOt' + 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' 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-txMYOt'] + ignore line: [Change Dir: '/home/Jordan/Projects/CPP/LearningVulkan/build/CMakeFiles/CMakeScratch/TryCompile-cavOgA'] ignore line: [] - ignore line: [Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/make -f Makefile cmTC_c3c9f/fast] - ignore line: [/usr/bin/make -f CMakeFiles/cmTC_c3c9f.dir/build.make CMakeFiles/cmTC_c3c9f.dir/build] - ignore line: [make[1]: Entering directory '/home/Jordan/Projects/CPP/LearningVulkan/build/CMakeFiles/CMakeScratch/TryCompile-txMYOt'] - ignore line: [Building C object CMakeFiles/cmTC_c3c9f.dir/CMakeCCompilerABI.c.o] - ignore line: [/usr/bin/cc -v -o CMakeFiles/cmTC_c3c9f.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_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: [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_c3c9f.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_c3c9f.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_c3c9f.dir/ -dumpbase CMakeCCompilerABI.c.c -dumpbase-ext .c -mtune=generic -march=x86-64 -version -o /tmp/cctXmx2g.s] + 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: [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_c3c9f.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_c3c9f.dir/'] - ignore line: [ as -v --64 -o CMakeFiles/cmTC_c3c9f.dir/CMakeCCompilerABI.c.o /tmp/cctXmx2g.s] + 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: [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_c3c9f.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_c3c9f.dir/CMakeCCompilerABI.c.'] - ignore line: [Linking C executable cmTC_c3c9f] - ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_c3c9f.dir/link.txt --verbose=1] + 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: [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_c3c9f' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_c3c9f.'] - 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/cc8b1r4W.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_c3c9f /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_c3c9f.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_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] 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/cc8b1r4W.res] ==> ignore + arg [-plugin-opt=-fresolution=/tmp/cciDPlOs.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_c3c9f] ==> ignore + arg [cmTC_f22b1] ==> 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_c3c9f.dir/CMakeCCompilerABI.c.o] ==> ignore + arg [CMakeFiles/cmTC_f22b1.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/cc8b1r4W.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_c3c9f /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_c3c9f.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/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] 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-an30g8" - binary: "/home/Jordan/Projects/CPP/LearningVulkan/build/CMakeFiles/CMakeScratch/TryCompile-an30g8" + source: "/home/Jordan/Projects/CPP/LearningVulkan/build/CMakeFiles/CMakeScratch/TryCompile-Z1OehA" + binary: "/home/Jordan/Projects/CPP/LearningVulkan/build/CMakeFiles/CMakeScratch/TryCompile-Z1OehA" 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-an30g8' + Change Dir: '/home/Jordan/Projects/CPP/LearningVulkan/build/CMakeFiles/CMakeScratch/TryCompile-Z1OehA' - Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/make -f Makefile cmTC_f5e17/fast - /usr/bin/make -f CMakeFiles/cmTC_f5e17.dir/build.make CMakeFiles/cmTC_f5e17.dir/build - make[1]: Entering directory '/home/Jordan/Projects/CPP/LearningVulkan/build/CMakeFiles/CMakeScratch/TryCompile-an30g8' - Building CXX object CMakeFiles/cmTC_f5e17.dir/CMakeCXXCompilerABI.cpp.o - /usr/bin/c++ -v -o CMakeFiles/cmTC_f5e17.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_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 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_f5e17.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_f5e17.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_f5e17.dir/ -dumpbase CMakeCXXCompilerABI.cpp.cpp -dumpbase-ext .cpp -mtune=generic -march=x86-64 -version -o /tmp/ccqAcBOb.s + 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 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_f5e17.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_f5e17.dir/' - as -v --64 -o CMakeFiles/cmTC_f5e17.dir/CMakeCXXCompilerABI.cpp.o /tmp/ccqAcBOb.s + 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 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_f5e17.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_f5e17.dir/CMakeCXXCompilerABI.cpp.' - Linking CXX executable cmTC_f5e17 - /usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_f5e17.dir/link.txt --verbose=1 + 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 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_f5e17' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_f5e17.' - /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/ccPDYSAC.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_f5e17 /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_f5e17.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_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 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/ccPDYSAC.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_f5e17 /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_f5e17.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/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 GNU ld (GNU Binutils) 2.46 - COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_f5e17' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_f5e17.' - /usr/bin/c++ -v -Wl,-v CMakeFiles/cmTC_f5e17.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_f5e17 - make[1]: Leaving directory '/home/Jordan/Projects/CPP/LearningVulkan/build/CMakeFiles/CMakeScratch/TryCompile-an30g8' + 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' 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-an30g8'] + ignore line: [Change Dir: '/home/Jordan/Projects/CPP/LearningVulkan/build/CMakeFiles/CMakeScratch/TryCompile-Z1OehA'] ignore line: [] - ignore line: [Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/make -f Makefile cmTC_f5e17/fast] - ignore line: [/usr/bin/make -f CMakeFiles/cmTC_f5e17.dir/build.make CMakeFiles/cmTC_f5e17.dir/build] - ignore line: [make[1]: Entering directory '/home/Jordan/Projects/CPP/LearningVulkan/build/CMakeFiles/CMakeScratch/TryCompile-an30g8'] - ignore line: [Building CXX object CMakeFiles/cmTC_f5e17.dir/CMakeCXXCompilerABI.cpp.o] - ignore line: [/usr/bin/c++ -v -o CMakeFiles/cmTC_f5e17.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_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: [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_f5e17.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_f5e17.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_f5e17.dir/ -dumpbase CMakeCXXCompilerABI.cpp.cpp -dumpbase-ext .cpp -mtune=generic -march=x86-64 -version -o /tmp/ccqAcBOb.s] + 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: [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_f5e17.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_f5e17.dir/'] - ignore line: [ as -v --64 -o CMakeFiles/cmTC_f5e17.dir/CMakeCXXCompilerABI.cpp.o /tmp/ccqAcBOb.s] + 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: [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_f5e17.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_f5e17.dir/CMakeCXXCompilerABI.cpp.'] - ignore line: [Linking CXX executable cmTC_f5e17] - ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_f5e17.dir/link.txt --verbose=1] + 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: [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_f5e17' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_f5e17.'] - 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/ccPDYSAC.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_f5e17 /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_f5e17.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_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] 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/ccPDYSAC.res] ==> ignore + arg [-plugin-opt=-fresolution=/tmp/cc9yM9j7.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_f5e17] ==> ignore + arg [cmTC_62d97] ==> 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_f5e17.dir/CMakeCXXCompilerABI.cpp.o] ==> ignore + arg [CMakeFiles/cmTC_62d97.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/ccPDYSAC.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_f5e17 /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_f5e17.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/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] 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] diff --git a/build/CMakeFiles/LearningVulkan.dir/DependInfo.cmake b/build/CMakeFiles/LearningVulkan.dir/DependInfo.cmake index 779b3c4..59b2aa9 100644 --- a/build/CMakeFiles/LearningVulkan.dir/DependInfo.cmake +++ b/build/CMakeFiles/LearningVulkan.dir/DependInfo.cmake @@ -28,6 +28,7 @@ set(CMAKE_DEPENDS_DEPENDENCY_FILES "/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/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" "" "LearningVulkan" "gcc" "CMakeFiles/LearningVulkan.dir/link.d" ) diff --git a/build/CMakeFiles/LearningVulkan.dir/build.make b/build/CMakeFiles/LearningVulkan.dir/build.make index a7173ff..e0f6456 100644 --- a/build/CMakeFiles/LearningVulkan.dir/build.make +++ b/build/CMakeFiles/LearningVulkan.dir/build.make @@ -254,10 +254,24 @@ CMakeFiles/LearningVulkan.dir/src/utilities/Logger.cpp.s: cmake_force @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Compiling CXX source to assembly CMakeFiles/LearningVulkan.dir/src/utilities/Logger.cpp.s" /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/Jordan/Projects/CPP/LearningVulkan/src/utilities/Logger.cpp -o CMakeFiles/LearningVulkan.dir/src/utilities/Logger.cpp.s +CMakeFiles/LearningVulkan.dir/src/utilities/stb_image_impl.cpp.o: CMakeFiles/LearningVulkan.dir/flags.make +CMakeFiles/LearningVulkan.dir/src/utilities/stb_image_impl.cpp.o: /home/Jordan/Projects/CPP/LearningVulkan/src/utilities/stb_image_impl.cpp +CMakeFiles/LearningVulkan.dir/src/utilities/stb_image_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_14) "Building CXX object CMakeFiles/LearningVulkan.dir/src/utilities/stb_image_impl.cpp.o" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT CMakeFiles/LearningVulkan.dir/src/utilities/stb_image_impl.cpp.o -MF CMakeFiles/LearningVulkan.dir/src/utilities/stb_image_impl.cpp.o.d -o CMakeFiles/LearningVulkan.dir/src/utilities/stb_image_impl.cpp.o -c /home/Jordan/Projects/CPP/LearningVulkan/src/utilities/stb_image_impl.cpp + +CMakeFiles/LearningVulkan.dir/src/utilities/stb_image_impl.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Preprocessing CXX source to CMakeFiles/LearningVulkan.dir/src/utilities/stb_image_impl.cpp.i" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/Jordan/Projects/CPP/LearningVulkan/src/utilities/stb_image_impl.cpp > CMakeFiles/LearningVulkan.dir/src/utilities/stb_image_impl.cpp.i + +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/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_14) "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_15) "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 @@ -271,7 +285,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_15) "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_16) "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 @@ -285,7 +299,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_16) "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_17) "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 @@ -299,7 +313,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_17) "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_18) "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 @@ -313,7 +327,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_18) "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_19) "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 @@ -327,7 +341,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_19) "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_20) "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 @@ -341,7 +355,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_20) "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_21) "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 @@ -367,6 +381,7 @@ LearningVulkan_OBJECTS = \ "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" \ @@ -391,6 +406,7 @@ 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/utilities/Logger.cpp.o +LearningVulkan: CMakeFiles/LearningVulkan.dir/src/utilities/stb_image_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 @@ -401,7 +417,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_21) "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_22) "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. diff --git a/build/CMakeFiles/LearningVulkan.dir/cmake_clean.cmake b/build/CMakeFiles/LearningVulkan.dir/cmake_clean.cmake index 80070e5..615776a 100644 --- a/build/CMakeFiles/LearningVulkan.dir/cmake_clean.cmake +++ b/build/CMakeFiles/LearningVulkan.dir/cmake_clean.cmake @@ -40,6 +40,8 @@ file(REMOVE_RECURSE "CMakeFiles/LearningVulkan.dir/src/private/VulkanVertexBuffer.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" "LearningVulkan" "LearningVulkan.pdb" ) diff --git a/build/CMakeFiles/LearningVulkan.dir/compiler_depend.internal b/build/CMakeFiles/LearningVulkan.dir/compiler_depend.internal index 6ae74fe..ade10e7 100644 --- a/build/CMakeFiles/LearningVulkan.dir/compiler_depend.internal +++ b/build/CMakeFiles/LearningVulkan.dir/compiler_depend.internal @@ -2540,6 +2540,7 @@ CMakeFiles/LearningVulkan.dir/src/private/VulkanContext.cpp.o /home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/backends/imgui_impl_vulkan.h /home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/imconfig.h /home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/imgui.h + /home/Jordan/Projects/CPP/LearningVulkan/lib/stb/stb_image.h /home/Jordan/Projects/CPP/LearningVulkan/src/public/Primitives.h /home/Jordan/Projects/CPP/LearningVulkan/src/public/VulkanCommandBuffers.h /home/Jordan/Projects/CPP/LearningVulkan/src/public/VulkanContext.h @@ -2651,12 +2652,18 @@ CMakeFiles/LearningVulkan.dir/src/private/VulkanContext.cpp.o /usr/include/c++/15.2.1/backward/binders.h /usr/include/c++/15.2.1/bit /usr/include/c++/15.2.1/bits/algorithmfwd.h + /usr/include/c++/15.2.1/bits/align.h /usr/include/c++/15.2.1/bits/alloc_traits.h + /usr/include/c++/15.2.1/bits/allocated_ptr.h /usr/include/c++/15.2.1/bits/allocator.h + /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/bits/basic_string.h /usr/include/c++/15.2.1/bits/basic_string.tcc /usr/include/c++/15.2.1/bits/char_traits.h /usr/include/c++/15.2.1/bits/charconv.h + /usr/include/c++/15.2.1/bits/chrono.h + /usr/include/c++/15.2.1/bits/chrono_io.h /usr/include/c++/15.2.1/bits/codecvt.h /usr/include/c++/15.2.1/bits/concept_check.h /usr/include/c++/15.2.1/bits/cpp_type_traits.h @@ -2675,6 +2682,7 @@ CMakeFiles/LearningVulkan.dir/src/private/VulkanContext.cpp.o /usr/include/c++/15.2.1/bits/hashtable_policy.h /usr/include/c++/15.2.1/bits/invoke.h /usr/include/c++/15.2.1/bits/ios_base.h + /usr/include/c++/15.2.1/bits/istream.tcc /usr/include/c++/15.2.1/bits/iterator_concepts.h /usr/include/c++/15.2.1/bits/locale_classes.h /usr/include/c++/15.2.1/bits/locale_classes.tcc @@ -2692,10 +2700,14 @@ CMakeFiles/LearningVulkan.dir/src/private/VulkanContext.cpp.o /usr/include/c++/15.2.1/bits/nested_exception.h /usr/include/c++/15.2.1/bits/new_allocator.h /usr/include/c++/15.2.1/bits/node_handle.h + /usr/include/c++/15.2.1/bits/ostream.h + /usr/include/c++/15.2.1/bits/ostream.tcc /usr/include/c++/15.2.1/bits/ostream_insert.h + /usr/include/c++/15.2.1/bits/parse_numbers.h /usr/include/c++/15.2.1/bits/postypes.h /usr/include/c++/15.2.1/bits/predefined_ops.h /usr/include/c++/15.2.1/bits/ptr_traits.h + /usr/include/c++/15.2.1/bits/quoted_string.h /usr/include/c++/15.2.1/bits/range_access.h /usr/include/c++/15.2.1/bits/ranges_algobase.h /usr/include/c++/15.2.1/bits/ranges_base.h @@ -2703,7 +2715,10 @@ CMakeFiles/LearningVulkan.dir/src/private/VulkanContext.cpp.o /usr/include/c++/15.2.1/bits/ranges_util.h /usr/include/c++/15.2.1/bits/refwrap.h /usr/include/c++/15.2.1/bits/requires_hosted.h + /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/specfun.h + /usr/include/c++/15.2.1/bits/sstream.tcc /usr/include/c++/15.2.1/bits/std_abs.h /usr/include/c++/15.2.1/bits/std_function.h /usr/include/c++/15.2.1/bits/stl_algo.h @@ -2726,6 +2741,7 @@ CMakeFiles/LearningVulkan.dir/src/private/VulkanContext.cpp.o /usr/include/c++/15.2.1/bits/unicode-data.h /usr/include/c++/15.2.1/bits/unicode.h /usr/include/c++/15.2.1/bits/uniform_int_dist.h + /usr/include/c++/15.2.1/bits/unique_ptr.h /usr/include/c++/15.2.1/bits/unordered_map.h /usr/include/c++/15.2.1/bits/uses_allocator.h /usr/include/c++/15.2.1/bits/uses_allocator_args.h @@ -2737,6 +2753,7 @@ CMakeFiles/LearningVulkan.dir/src/private/VulkanContext.cpp.o /usr/include/c++/15.2.1/cerrno /usr/include/c++/15.2.1/cfloat /usr/include/c++/15.2.1/charconv + /usr/include/c++/15.2.1/chrono /usr/include/c++/15.2.1/climits /usr/include/c++/15.2.1/clocale /usr/include/c++/15.2.1/cmath @@ -2755,22 +2772,30 @@ CMakeFiles/LearningVulkan.dir/src/private/VulkanContext.cpp.o /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/ext/atomicity.h + /usr/include/c++/15.2.1/ext/concurrence.h /usr/include/c++/15.2.1/ext/numeric_traits.h /usr/include/c++/15.2.1/ext/string_conversions.h /usr/include/c++/15.2.1/ext/type_traits.h /usr/include/c++/15.2.1/format /usr/include/c++/15.2.1/functional /usr/include/c++/15.2.1/initializer_list + /usr/include/c++/15.2.1/iomanip + /usr/include/c++/15.2.1/ios /usr/include/c++/15.2.1/iosfwd + /usr/include/c++/15.2.1/istream /usr/include/c++/15.2.1/limits /usr/include/c++/15.2.1/locale /usr/include/c++/15.2.1/new /usr/include/c++/15.2.1/numbers /usr/include/c++/15.2.1/optional + /usr/include/c++/15.2.1/ostream /usr/include/c++/15.2.1/pstl/pstl_config.h + /usr/include/c++/15.2.1/ratio /usr/include/c++/15.2.1/source_location /usr/include/c++/15.2.1/span + /usr/include/c++/15.2.1/sstream /usr/include/c++/15.2.1/stdexcept + /usr/include/c++/15.2.1/stdlib.h /usr/include/c++/15.2.1/streambuf /usr/include/c++/15.2.1/string /usr/include/c++/15.2.1/string_view @@ -2855,6 +2880,8 @@ CMakeFiles/LearningVulkan.dir/src/private/VulkanContext.cpp.o /usr/include/glm/detail/type_vec4.hpp /usr/include/glm/detail/type_vec4.inl /usr/include/glm/exponential.hpp + /usr/include/glm/ext/matrix_clip_space.hpp + /usr/include/glm/ext/matrix_clip_space.inl /usr/include/glm/ext/matrix_double2x2.hpp /usr/include/glm/ext/matrix_double2x2_precision.hpp /usr/include/glm/ext/matrix_double2x3.hpp @@ -2891,6 +2918,12 @@ CMakeFiles/LearningVulkan.dir/src/private/VulkanContext.cpp.o /usr/include/glm/ext/matrix_float4x3_precision.hpp /usr/include/glm/ext/matrix_float4x4.hpp /usr/include/glm/ext/matrix_float4x4_precision.hpp + /usr/include/glm/ext/matrix_projection.hpp + /usr/include/glm/ext/matrix_projection.inl + /usr/include/glm/ext/matrix_transform.hpp + /usr/include/glm/ext/matrix_transform.inl + /usr/include/glm/ext/scalar_constants.hpp + /usr/include/glm/ext/scalar_constants.inl /usr/include/glm/ext/scalar_int_sized.hpp /usr/include/glm/ext/scalar_uint_sized.hpp /usr/include/glm/ext/vector_bool2.hpp @@ -2926,6 +2959,10 @@ CMakeFiles/LearningVulkan.dir/src/private/VulkanContext.cpp.o /usr/include/glm/fwd.hpp /usr/include/glm/geometric.hpp /usr/include/glm/glm.hpp + /usr/include/glm/gtc/constants.hpp + /usr/include/glm/gtc/constants.inl + /usr/include/glm/gtc/matrix_transform.hpp + /usr/include/glm/gtc/matrix_transform.inl /usr/include/glm/integer.hpp /usr/include/glm/mat2x2.hpp /usr/include/glm/mat2x3.hpp @@ -6096,6 +6133,152 @@ CMakeFiles/LearningVulkan.dir/src/utilities/Logger.cpp.o /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 +CMakeFiles/LearningVulkan.dir/src/utilities/stb_image_impl.cpp.o + /home/Jordan/Projects/CPP/LearningVulkan/src/utilities/stb_image_impl.cpp + /home/Jordan/Projects/CPP/LearningVulkan/lib/stb/stb_image.h + /usr/include/alloca.h + /usr/include/assert.h + /usr/include/bits/atomic_wide_counter.h + /usr/include/bits/byteswap.h + /usr/include/bits/endian.h + /usr/include/bits/endianness.h + /usr/include/bits/floatn-common.h + /usr/include/bits/floatn.h + /usr/include/bits/flt-eval-method.h + /usr/include/bits/fp-fast.h + /usr/include/bits/fp-logb.h + /usr/include/bits/iscanonical.h + /usr/include/bits/libc-header-start.h + /usr/include/bits/libm-simd-decl-stubs.h + /usr/include/bits/local_lim.h + /usr/include/bits/long-double.h + /usr/include/bits/math-vector.h + /usr/include/bits/mathcalls-helper-functions.h + /usr/include/bits/mathcalls-macros.h + /usr/include/bits/mathcalls-narrow.h + /usr/include/bits/mathcalls.h + /usr/include/bits/posix1_lim.h + /usr/include/bits/posix2_lim.h + /usr/include/bits/pthread_stack_min-dynamic.h + /usr/include/bits/pthreadtypes-arch.h + /usr/include/bits/pthreadtypes.h + /usr/include/bits/select.h + /usr/include/bits/stdint-intn.h + /usr/include/bits/stdint-least.h + /usr/include/bits/stdint-uintn.h + /usr/include/bits/stdio.h + /usr/include/bits/stdio_lim.h + /usr/include/bits/stdlib-bsearch.h + /usr/include/bits/stdlib-float.h + /usr/include/bits/struct_mutex.h + /usr/include/bits/struct_rwlock.h + /usr/include/bits/thread-shared-types.h + /usr/include/bits/time64.h + /usr/include/bits/timesize.h + /usr/include/bits/types.h + /usr/include/bits/types/FILE.h + /usr/include/bits/types/__FILE.h + /usr/include/bits/types/__fpos64_t.h + /usr/include/bits/types/__fpos_t.h + /usr/include/bits/types/__locale_t.h + /usr/include/bits/types/__mbstate_t.h + /usr/include/bits/types/__sigset_t.h + /usr/include/bits/types/clock_t.h + /usr/include/bits/types/clockid_t.h + /usr/include/bits/types/cookie_io_functions_t.h + /usr/include/bits/types/locale_t.h + /usr/include/bits/types/sigset_t.h + /usr/include/bits/types/struct_FILE.h + /usr/include/bits/types/struct_timespec.h + /usr/include/bits/types/struct_timeval.h + /usr/include/bits/types/time_t.h + /usr/include/bits/types/timer_t.h + /usr/include/bits/typesizes.h + /usr/include/bits/uintn-identity.h + /usr/include/bits/uio_lim.h + /usr/include/bits/waitflags.h + /usr/include/bits/waitstatus.h + /usr/include/bits/wchar.h + /usr/include/bits/wordsize.h + /usr/include/bits/xopen_lim.h + /usr/include/c++/15.2.1/bit + /usr/include/c++/15.2.1/bits/concept_check.h + /usr/include/c++/15.2.1/bits/cpp_type_traits.h + /usr/include/c++/15.2.1/bits/exception.h + /usr/include/c++/15.2.1/bits/exception_defines.h + /usr/include/c++/15.2.1/bits/functexcept.h + /usr/include/c++/15.2.1/bits/iterator_concepts.h + /usr/include/c++/15.2.1/bits/move.h + /usr/include/c++/15.2.1/bits/predefined_ops.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/requires_hosted.h + /usr/include/c++/15.2.1/bits/specfun.h + /usr/include/c++/15.2.1/bits/std_abs.h + /usr/include/c++/15.2.1/bits/stl_algobase.h + /usr/include/c++/15.2.1/bits/stl_construct.h + /usr/include/c++/15.2.1/bits/stl_iterator.h + /usr/include/c++/15.2.1/bits/stl_iterator_base_funcs.h + /usr/include/c++/15.2.1/bits/stl_iterator_base_types.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/bits/version.h + /usr/include/c++/15.2.1/cmath + /usr/include/c++/15.2.1/compare + /usr/include/c++/15.2.1/concepts + /usr/include/c++/15.2.1/cstdlib + /usr/include/c++/15.2.1/debug/assertions.h + /usr/include/c++/15.2.1/debug/debug.h + /usr/include/c++/15.2.1/ext/numeric_traits.h + /usr/include/c++/15.2.1/ext/type_traits.h + /usr/include/c++/15.2.1/limits + /usr/include/c++/15.2.1/math.h + /usr/include/c++/15.2.1/new + /usr/include/c++/15.2.1/pstl/pstl_config.h + /usr/include/c++/15.2.1/stdlib.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/gamma.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/c++/15.2.1/tr1/special_function_util.h + /usr/include/c++/15.2.1/type_traits + /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/cpu_defines.h + /usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/os_defines.h + /usr/include/endian.h + /usr/include/features-time64.h + /usr/include/features.h + /usr/include/gnu/stubs-64.h + /usr/include/gnu/stubs.h + /usr/include/limits.h + /usr/include/linux/limits.h + /usr/include/math.h + /usr/include/stdc-predef.h + /usr/include/stdint.h + /usr/include/stdio.h + /usr/include/stdlib.h + /usr/include/string.h + /usr/include/strings.h + /usr/include/sys/cdefs.h + /usr/include/sys/select.h + /usr/include/sys/types.h + /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/emmintrin.h + /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/mm_malloc.h + /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/mmintrin.h + /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdarg.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/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/syslimits.h + /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/xmmintrin.h + LearningVulkan /usr/lib/Scrt1.o /usr/lib/crti.o @@ -6146,4 +6329,5 @@ LearningVulkan /home/Jordan/Projects/CPP/LearningVulkan/build/CMakeFiles/LearningVulkan.dir/src/private/VulkanSwapChain.cpp.o /home/Jordan/Projects/CPP/LearningVulkan/build/CMakeFiles/LearningVulkan.dir/src/private/VulkanVertexBuffer.cpp.o /home/Jordan/Projects/CPP/LearningVulkan/build/CMakeFiles/LearningVulkan.dir/src/utilities/Logger.cpp.o + /home/Jordan/Projects/CPP/LearningVulkan/build/CMakeFiles/LearningVulkan.dir/src/utilities/stb_image_impl.cpp.o diff --git a/build/CMakeFiles/LearningVulkan.dir/compiler_depend.make b/build/CMakeFiles/LearningVulkan.dir/compiler_depend.make index cf68681..10e21ff 100644 --- a/build/CMakeFiles/LearningVulkan.dir/compiler_depend.make +++ b/build/CMakeFiles/LearningVulkan.dir/compiler_depend.make @@ -2529,6 +2529,7 @@ CMakeFiles/LearningVulkan.dir/src/private/VulkanContext.cpp.o: /home/Jordan/Proj /home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/backends/imgui_impl_vulkan.h \ /home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/imconfig.h \ /home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/imgui.h \ + /home/Jordan/Projects/CPP/LearningVulkan/lib/stb/stb_image.h \ /home/Jordan/Projects/CPP/LearningVulkan/src/public/Primitives.h \ /home/Jordan/Projects/CPP/LearningVulkan/src/public/VulkanCommandBuffers.h \ /home/Jordan/Projects/CPP/LearningVulkan/src/public/VulkanContext.h \ @@ -2640,12 +2641,18 @@ CMakeFiles/LearningVulkan.dir/src/private/VulkanContext.cpp.o: /home/Jordan/Proj /usr/include/c++/15.2.1/backward/binders.h \ /usr/include/c++/15.2.1/bit \ /usr/include/c++/15.2.1/bits/algorithmfwd.h \ + /usr/include/c++/15.2.1/bits/align.h \ /usr/include/c++/15.2.1/bits/alloc_traits.h \ + /usr/include/c++/15.2.1/bits/allocated_ptr.h \ /usr/include/c++/15.2.1/bits/allocator.h \ + /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/bits/basic_string.h \ /usr/include/c++/15.2.1/bits/basic_string.tcc \ /usr/include/c++/15.2.1/bits/char_traits.h \ /usr/include/c++/15.2.1/bits/charconv.h \ + /usr/include/c++/15.2.1/bits/chrono.h \ + /usr/include/c++/15.2.1/bits/chrono_io.h \ /usr/include/c++/15.2.1/bits/codecvt.h \ /usr/include/c++/15.2.1/bits/concept_check.h \ /usr/include/c++/15.2.1/bits/cpp_type_traits.h \ @@ -2664,6 +2671,7 @@ CMakeFiles/LearningVulkan.dir/src/private/VulkanContext.cpp.o: /home/Jordan/Proj /usr/include/c++/15.2.1/bits/hashtable_policy.h \ /usr/include/c++/15.2.1/bits/invoke.h \ /usr/include/c++/15.2.1/bits/ios_base.h \ + /usr/include/c++/15.2.1/bits/istream.tcc \ /usr/include/c++/15.2.1/bits/iterator_concepts.h \ /usr/include/c++/15.2.1/bits/locale_classes.h \ /usr/include/c++/15.2.1/bits/locale_classes.tcc \ @@ -2681,10 +2689,14 @@ CMakeFiles/LearningVulkan.dir/src/private/VulkanContext.cpp.o: /home/Jordan/Proj /usr/include/c++/15.2.1/bits/nested_exception.h \ /usr/include/c++/15.2.1/bits/new_allocator.h \ /usr/include/c++/15.2.1/bits/node_handle.h \ + /usr/include/c++/15.2.1/bits/ostream.h \ + /usr/include/c++/15.2.1/bits/ostream.tcc \ /usr/include/c++/15.2.1/bits/ostream_insert.h \ + /usr/include/c++/15.2.1/bits/parse_numbers.h \ /usr/include/c++/15.2.1/bits/postypes.h \ /usr/include/c++/15.2.1/bits/predefined_ops.h \ /usr/include/c++/15.2.1/bits/ptr_traits.h \ + /usr/include/c++/15.2.1/bits/quoted_string.h \ /usr/include/c++/15.2.1/bits/range_access.h \ /usr/include/c++/15.2.1/bits/ranges_algobase.h \ /usr/include/c++/15.2.1/bits/ranges_base.h \ @@ -2692,7 +2704,10 @@ CMakeFiles/LearningVulkan.dir/src/private/VulkanContext.cpp.o: /home/Jordan/Proj /usr/include/c++/15.2.1/bits/ranges_util.h \ /usr/include/c++/15.2.1/bits/refwrap.h \ /usr/include/c++/15.2.1/bits/requires_hosted.h \ + /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/specfun.h \ + /usr/include/c++/15.2.1/bits/sstream.tcc \ /usr/include/c++/15.2.1/bits/std_abs.h \ /usr/include/c++/15.2.1/bits/std_function.h \ /usr/include/c++/15.2.1/bits/stl_algo.h \ @@ -2715,6 +2730,7 @@ CMakeFiles/LearningVulkan.dir/src/private/VulkanContext.cpp.o: /home/Jordan/Proj /usr/include/c++/15.2.1/bits/unicode-data.h \ /usr/include/c++/15.2.1/bits/unicode.h \ /usr/include/c++/15.2.1/bits/uniform_int_dist.h \ + /usr/include/c++/15.2.1/bits/unique_ptr.h \ /usr/include/c++/15.2.1/bits/unordered_map.h \ /usr/include/c++/15.2.1/bits/uses_allocator.h \ /usr/include/c++/15.2.1/bits/uses_allocator_args.h \ @@ -2726,6 +2742,7 @@ CMakeFiles/LearningVulkan.dir/src/private/VulkanContext.cpp.o: /home/Jordan/Proj /usr/include/c++/15.2.1/cerrno \ /usr/include/c++/15.2.1/cfloat \ /usr/include/c++/15.2.1/charconv \ + /usr/include/c++/15.2.1/chrono \ /usr/include/c++/15.2.1/climits \ /usr/include/c++/15.2.1/clocale \ /usr/include/c++/15.2.1/cmath \ @@ -2744,22 +2761,30 @@ CMakeFiles/LearningVulkan.dir/src/private/VulkanContext.cpp.o: /home/Jordan/Proj /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/ext/atomicity.h \ + /usr/include/c++/15.2.1/ext/concurrence.h \ /usr/include/c++/15.2.1/ext/numeric_traits.h \ /usr/include/c++/15.2.1/ext/string_conversions.h \ /usr/include/c++/15.2.1/ext/type_traits.h \ /usr/include/c++/15.2.1/format \ /usr/include/c++/15.2.1/functional \ /usr/include/c++/15.2.1/initializer_list \ + /usr/include/c++/15.2.1/iomanip \ + /usr/include/c++/15.2.1/ios \ /usr/include/c++/15.2.1/iosfwd \ + /usr/include/c++/15.2.1/istream \ /usr/include/c++/15.2.1/limits \ /usr/include/c++/15.2.1/locale \ /usr/include/c++/15.2.1/new \ /usr/include/c++/15.2.1/numbers \ /usr/include/c++/15.2.1/optional \ + /usr/include/c++/15.2.1/ostream \ /usr/include/c++/15.2.1/pstl/pstl_config.h \ + /usr/include/c++/15.2.1/ratio \ /usr/include/c++/15.2.1/source_location \ /usr/include/c++/15.2.1/span \ + /usr/include/c++/15.2.1/sstream \ /usr/include/c++/15.2.1/stdexcept \ + /usr/include/c++/15.2.1/stdlib.h \ /usr/include/c++/15.2.1/streambuf \ /usr/include/c++/15.2.1/string \ /usr/include/c++/15.2.1/string_view \ @@ -2844,6 +2869,8 @@ CMakeFiles/LearningVulkan.dir/src/private/VulkanContext.cpp.o: /home/Jordan/Proj /usr/include/glm/detail/type_vec4.hpp \ /usr/include/glm/detail/type_vec4.inl \ /usr/include/glm/exponential.hpp \ + /usr/include/glm/ext/matrix_clip_space.hpp \ + /usr/include/glm/ext/matrix_clip_space.inl \ /usr/include/glm/ext/matrix_double2x2.hpp \ /usr/include/glm/ext/matrix_double2x2_precision.hpp \ /usr/include/glm/ext/matrix_double2x3.hpp \ @@ -2880,6 +2907,12 @@ CMakeFiles/LearningVulkan.dir/src/private/VulkanContext.cpp.o: /home/Jordan/Proj /usr/include/glm/ext/matrix_float4x3_precision.hpp \ /usr/include/glm/ext/matrix_float4x4.hpp \ /usr/include/glm/ext/matrix_float4x4_precision.hpp \ + /usr/include/glm/ext/matrix_projection.hpp \ + /usr/include/glm/ext/matrix_projection.inl \ + /usr/include/glm/ext/matrix_transform.hpp \ + /usr/include/glm/ext/matrix_transform.inl \ + /usr/include/glm/ext/scalar_constants.hpp \ + /usr/include/glm/ext/scalar_constants.inl \ /usr/include/glm/ext/scalar_int_sized.hpp \ /usr/include/glm/ext/scalar_uint_sized.hpp \ /usr/include/glm/ext/vector_bool2.hpp \ @@ -2915,6 +2948,10 @@ CMakeFiles/LearningVulkan.dir/src/private/VulkanContext.cpp.o: /home/Jordan/Proj /usr/include/glm/fwd.hpp \ /usr/include/glm/geometric.hpp \ /usr/include/glm/glm.hpp \ + /usr/include/glm/gtc/constants.hpp \ + /usr/include/glm/gtc/constants.inl \ + /usr/include/glm/gtc/matrix_transform.hpp \ + /usr/include/glm/gtc/matrix_transform.inl \ /usr/include/glm/integer.hpp \ /usr/include/glm/mat2x2.hpp \ /usr/include/glm/mat2x3.hpp \ @@ -6076,6 +6113,151 @@ CMakeFiles/LearningVulkan.dir/src/utilities/Logger.cpp.o: /home/Jordan/Projects/ /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 +CMakeFiles/LearningVulkan.dir/src/utilities/stb_image_impl.cpp.o: /home/Jordan/Projects/CPP/LearningVulkan/src/utilities/stb_image_impl.cpp \ + /home/Jordan/Projects/CPP/LearningVulkan/lib/stb/stb_image.h \ + /usr/include/alloca.h \ + /usr/include/assert.h \ + /usr/include/bits/atomic_wide_counter.h \ + /usr/include/bits/byteswap.h \ + /usr/include/bits/endian.h \ + /usr/include/bits/endianness.h \ + /usr/include/bits/floatn-common.h \ + /usr/include/bits/floatn.h \ + /usr/include/bits/flt-eval-method.h \ + /usr/include/bits/fp-fast.h \ + /usr/include/bits/fp-logb.h \ + /usr/include/bits/iscanonical.h \ + /usr/include/bits/libc-header-start.h \ + /usr/include/bits/libm-simd-decl-stubs.h \ + /usr/include/bits/local_lim.h \ + /usr/include/bits/long-double.h \ + /usr/include/bits/math-vector.h \ + /usr/include/bits/mathcalls-helper-functions.h \ + /usr/include/bits/mathcalls-macros.h \ + /usr/include/bits/mathcalls-narrow.h \ + /usr/include/bits/mathcalls.h \ + /usr/include/bits/posix1_lim.h \ + /usr/include/bits/posix2_lim.h \ + /usr/include/bits/pthread_stack_min-dynamic.h \ + /usr/include/bits/pthreadtypes-arch.h \ + /usr/include/bits/pthreadtypes.h \ + /usr/include/bits/select.h \ + /usr/include/bits/stdint-intn.h \ + /usr/include/bits/stdint-least.h \ + /usr/include/bits/stdint-uintn.h \ + /usr/include/bits/stdio.h \ + /usr/include/bits/stdio_lim.h \ + /usr/include/bits/stdlib-bsearch.h \ + /usr/include/bits/stdlib-float.h \ + /usr/include/bits/struct_mutex.h \ + /usr/include/bits/struct_rwlock.h \ + /usr/include/bits/thread-shared-types.h \ + /usr/include/bits/time64.h \ + /usr/include/bits/timesize.h \ + /usr/include/bits/types.h \ + /usr/include/bits/types/FILE.h \ + /usr/include/bits/types/__FILE.h \ + /usr/include/bits/types/__fpos64_t.h \ + /usr/include/bits/types/__fpos_t.h \ + /usr/include/bits/types/__locale_t.h \ + /usr/include/bits/types/__mbstate_t.h \ + /usr/include/bits/types/__sigset_t.h \ + /usr/include/bits/types/clock_t.h \ + /usr/include/bits/types/clockid_t.h \ + /usr/include/bits/types/cookie_io_functions_t.h \ + /usr/include/bits/types/locale_t.h \ + /usr/include/bits/types/sigset_t.h \ + /usr/include/bits/types/struct_FILE.h \ + /usr/include/bits/types/struct_timespec.h \ + /usr/include/bits/types/struct_timeval.h \ + /usr/include/bits/types/time_t.h \ + /usr/include/bits/types/timer_t.h \ + /usr/include/bits/typesizes.h \ + /usr/include/bits/uintn-identity.h \ + /usr/include/bits/uio_lim.h \ + /usr/include/bits/waitflags.h \ + /usr/include/bits/waitstatus.h \ + /usr/include/bits/wchar.h \ + /usr/include/bits/wordsize.h \ + /usr/include/bits/xopen_lim.h \ + /usr/include/c++/15.2.1/bit \ + /usr/include/c++/15.2.1/bits/concept_check.h \ + /usr/include/c++/15.2.1/bits/cpp_type_traits.h \ + /usr/include/c++/15.2.1/bits/exception.h \ + /usr/include/c++/15.2.1/bits/exception_defines.h \ + /usr/include/c++/15.2.1/bits/functexcept.h \ + /usr/include/c++/15.2.1/bits/iterator_concepts.h \ + /usr/include/c++/15.2.1/bits/move.h \ + /usr/include/c++/15.2.1/bits/predefined_ops.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/requires_hosted.h \ + /usr/include/c++/15.2.1/bits/specfun.h \ + /usr/include/c++/15.2.1/bits/std_abs.h \ + /usr/include/c++/15.2.1/bits/stl_algobase.h \ + /usr/include/c++/15.2.1/bits/stl_construct.h \ + /usr/include/c++/15.2.1/bits/stl_iterator.h \ + /usr/include/c++/15.2.1/bits/stl_iterator_base_funcs.h \ + /usr/include/c++/15.2.1/bits/stl_iterator_base_types.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/bits/version.h \ + /usr/include/c++/15.2.1/cmath \ + /usr/include/c++/15.2.1/compare \ + /usr/include/c++/15.2.1/concepts \ + /usr/include/c++/15.2.1/cstdlib \ + /usr/include/c++/15.2.1/debug/assertions.h \ + /usr/include/c++/15.2.1/debug/debug.h \ + /usr/include/c++/15.2.1/ext/numeric_traits.h \ + /usr/include/c++/15.2.1/ext/type_traits.h \ + /usr/include/c++/15.2.1/limits \ + /usr/include/c++/15.2.1/math.h \ + /usr/include/c++/15.2.1/new \ + /usr/include/c++/15.2.1/pstl/pstl_config.h \ + /usr/include/c++/15.2.1/stdlib.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/gamma.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/c++/15.2.1/tr1/special_function_util.h \ + /usr/include/c++/15.2.1/type_traits \ + /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/cpu_defines.h \ + /usr/include/c++/15.2.1/x86_64-pc-linux-gnu/bits/os_defines.h \ + /usr/include/endian.h \ + /usr/include/features-time64.h \ + /usr/include/features.h \ + /usr/include/gnu/stubs-64.h \ + /usr/include/gnu/stubs.h \ + /usr/include/limits.h \ + /usr/include/linux/limits.h \ + /usr/include/math.h \ + /usr/include/stdc-predef.h \ + /usr/include/stdint.h \ + /usr/include/stdio.h \ + /usr/include/stdlib.h \ + /usr/include/string.h \ + /usr/include/strings.h \ + /usr/include/sys/cdefs.h \ + /usr/include/sys/select.h \ + /usr/include/sys/types.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/emmintrin.h \ + /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/mm_malloc.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/mmintrin.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/stdarg.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/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/syslimits.h \ + /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/xmmintrin.h + LearningVulkan: /usr/lib/Scrt1.o \ /usr/lib/crti.o \ /usr/lib/crtn.o \ @@ -6124,7 +6306,8 @@ LearningVulkan: /usr/lib/Scrt1.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/Logger.cpp.o \ + CMakeFiles/LearningVulkan.dir/src/utilities/stb_image_impl.cpp.o CMakeFiles/LearningVulkan.dir/src/private/VulkanPipeline.cpp.o: @@ -6177,6 +6360,8 @@ CMakeFiles/LearningVulkan.dir/src/private/VulkanVertexBuffer.cpp.o: /usr/lib/Scrt1.o: +/home/Jordan/Projects/CPP/LearningVulkan/src/utilities/stb_image_impl.cpp: + /home/Jordan/Projects/CPP/LearningVulkan/src/private/VulkanVertexBuffer.cpp: /usr/include/c++/15.2.1/pstl/glue_algorithm_defs.h: @@ -6191,18 +6376,8 @@ CMakeFiles/LearningVulkan.dir/src/private/VulkanVertexBuffer.cpp.o: /home/Jordan/Projects/CPP/LearningVulkan/src/private/VulkanRenderPass.cpp: -/usr/include/c++/15.2.1/ostream: - -/usr/include/c++/15.2.1/istream: - -/usr/include/c++/15.2.1/ios: - /usr/include/c++/15.2.1/fstream: -/usr/include/c++/15.2.1/bits/istream.tcc: - -/usr/include/c++/15.2.1/bits/basic_ios.tcc: - /home/Jordan/Projects/CPP/LearningVulkan/src/utilities/FileReader.h: /home/Jordan/Projects/CPP/LearningVulkan/src/private/VulkanPipeline.cpp: @@ -6225,6 +6400,52 @@ CMakeFiles/LearningVulkan.dir/src/main.cpp.o: /home/Jordan/Projects/CPP/LearningVulkan/src/private/VulkanDebugManager.cpp: +/usr/include/glm/gtc/matrix_transform.inl: + +/usr/include/glm/gtc/matrix_transform.hpp: + +/usr/include/glm/gtc/constants.inl: + +/usr/include/glm/ext/scalar_constants.hpp: + +/usr/include/glm/ext/matrix_transform.inl: + +/usr/include/glm/ext/matrix_transform.hpp: + +/usr/include/glm/ext/matrix_projection.inl: + +/usr/include/glm/ext/matrix_projection.hpp: + +/usr/include/glm/ext/matrix_clip_space.inl: + +/usr/include/c++/15.2.1/sstream: + +/usr/include/c++/15.2.1/ostream: + +/usr/include/c++/15.2.1/istream: + +/usr/include/c++/15.2.1/ios: + +/usr/include/c++/15.2.1/bits/unique_ptr.h: + +/usr/include/c++/15.2.1/bits/shared_ptr_base.h: + +/usr/include/c++/15.2.1/bits/shared_ptr.h: + +/usr/include/c++/15.2.1/bits/parse_numbers.h: + +/usr/include/c++/15.2.1/bits/istream.tcc: + +/usr/include/c++/15.2.1/bits/chrono_io.h: + +/usr/include/c++/15.2.1/bits/basic_ios.tcc: + +/usr/include/c++/15.2.1/bits/allocated_ptr.h: + +/usr/include/c++/15.2.1/bits/align.h: + +/home/Jordan/Projects/CPP/LearningVulkan/lib/stb/stb_image.h: + /usr/lib/libXdmcp.so.6: /home/Jordan/Projects/CPP/LearningVulkan/src/private/VulkanContext.cpp: @@ -6269,6 +6490,8 @@ CMakeFiles/LearningVulkan.dir/src/private/VulkanFramebuffers.cpp.o: /usr/include/glm/mat2x3.hpp: +/usr/include/c++/15.2.1/ratio: + /usr/include/glm/mat2x2.hpp: /usr/include/pthread.h: @@ -6335,6 +6558,8 @@ CMakeFiles/LearningVulkan.dir/src/private/VulkanFramebuffers.cpp.o: /usr/include/glm/ext/matrix_float3x2.hpp: +/usr/include/c++/15.2.1/bits/quoted_string.h: + /usr/include/glm/ext/matrix_float2x4.hpp: /usr/include/glm/ext/matrix_float2x3_precision.hpp: @@ -6351,6 +6576,8 @@ CMakeFiles/LearningVulkan.dir/src/private/VulkanFramebuffers.cpp.o: /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/avx512vp2intersectvlintrin.h: +CMakeFiles/LearningVulkan.dir/src/utilities/stb_image_impl.cpp.o: + /usr/include/stdc-predef.h: /usr/include/c++/15.2.1/bits/stl_tempbuf.h: @@ -6691,6 +6918,8 @@ CMakeFiles/LearningVulkan.dir/src/private/VulkanContext.cpp.o: /usr/include/bits/types/__FILE.h: +/usr/include/c++/15.2.1/chrono: + /usr/include/features.h: /usr/include/bits/types/__mbstate_t.h: @@ -6739,6 +6968,8 @@ CMakeFiles/LearningVulkan.dir/src/private/VulkanContext.cpp.o: /home/Jordan/Projects/CPP/LearningVulkan/src/main.cpp: +/usr/include/glm/ext/scalar_constants.inl: + /usr/include/glm/ext/vector_uint3_sized.hpp: /usr/include/X11/keysym.h: @@ -6871,6 +7102,8 @@ CMakeFiles/LearningVulkan.dir/lib/imgui/imgui_widgets.cpp.o: /usr/include/bits/posix2_lim.h: +/usr/include/glm/ext/matrix_clip_space.hpp: + /usr/include/X11/X.h: /usr/include/bits/types/FILE.h: @@ -6977,6 +7210,8 @@ CMakeFiles/LearningVulkan.dir/src/private/VulkanRenderPass.cpp.o: /usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/avx10_2copyintrin.h: +/usr/include/c++/15.2.1/iomanip: + /usr/include/bits/locale.h: /usr/include/bits/types/clock_t.h: @@ -7207,6 +7442,8 @@ CMakeFiles/LearningVulkan.dir/src/private/VulkanRenderPass.cpp.o: /usr/include/c++/15.2.1/functional: +/usr/include/glm/gtc/constants.hpp: + /usr/include/c++/15.2.1/bits/exception.h: /home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/imgui_tables.cpp: @@ -7289,6 +7526,8 @@ CMakeFiles/LearningVulkan.dir/src/private/VulkanRenderPass.cpp.o: /usr/include/c++/15.2.1/backward/binders.h: +/usr/include/c++/15.2.1/ext/concurrence.h: + /usr/include/c++/15.2.1/cctype: /usr/lib/libc.so: @@ -7415,10 +7654,14 @@ CMakeFiles/LearningVulkan.dir/src/private/VulkanSwapChain.cpp.o: /usr/include/c++/15.2.1/bits/stl_bvector.h: +/usr/include/c++/15.2.1/bits/chrono.h: + /usr/include/sys/select.h: /usr/include/c++/15.2.1/bits/stl_function.h: +/usr/include/c++/15.2.1/bits/sstream.tcc: + /usr/include/glm/ext/matrix_float3x3.hpp: /usr/include/c++/15.2.1/bits/streambuf_iterator.h: diff --git a/build/CMakeFiles/LearningVulkan.dir/flags.make b/build/CMakeFiles/LearningVulkan.dir/flags.make index aff383f..e5a0b15 100644 --- a/build/CMakeFiles/LearningVulkan.dir/flags.make +++ b/build/CMakeFiles/LearningVulkan.dir/flags.make @@ -4,7 +4,7 @@ # compile CXX with /usr/bin/c++ CXX_DEFINES = -CXX_INCLUDES = -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/backends -I/home/Jordan/Projects/CPP/LearningVulkan/include -I/home/Jordan/Projects/CPP/LearningVulkan/src -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/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 diff --git a/build/CMakeFiles/LearningVulkan.dir/link.d b/build/CMakeFiles/LearningVulkan.dir/link.d index f343302..feb1b0c 100644 --- a/build/CMakeFiles/LearningVulkan.dir/link.d +++ b/build/CMakeFiles/LearningVulkan.dir/link.d @@ -15,6 +15,7 @@ LearningVulkan: \ 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 \ @@ -95,6 +96,8 @@ 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: diff --git a/build/CMakeFiles/LearningVulkan.dir/link.txt b/build/CMakeFiles/LearningVulkan.dir/link.txt index bb81f10..2a82490 100644 --- a/build/CMakeFiles/LearningVulkan.dir/link.txt +++ b/build/CMakeFiles/LearningVulkan.dir/link.txt @@ -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/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/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 diff --git a/build/CMakeFiles/LearningVulkan.dir/progress.make b/build/CMakeFiles/LearningVulkan.dir/progress.make index 12eb6c7..cb545c5 100644 --- a/build/CMakeFiles/LearningVulkan.dir/progress.make +++ b/build/CMakeFiles/LearningVulkan.dir/progress.make @@ -19,4 +19,5 @@ CMAKE_PROGRESS_18 = 18 CMAKE_PROGRESS_19 = 19 CMAKE_PROGRESS_20 = 20 CMAKE_PROGRESS_21 = 21 +CMAKE_PROGRESS_22 = 22 diff --git a/build/CMakeFiles/LearningVulkan.dir/src/main.cpp.o b/build/CMakeFiles/LearningVulkan.dir/src/main.cpp.o index 2739d02c66b184b08eb282d08426e7c3ee23e60e..7697d189b1b26ada1d4df779f721f6635b3c92c1 100644 GIT binary patch delta 51211 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 delta 50521 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 diff --git a/build/CMakeFiles/LearningVulkan.dir/src/private/VulkanCommandBuffers.cpp.o b/build/CMakeFiles/LearningVulkan.dir/src/private/VulkanCommandBuffers.cpp.o index 5f6eb94ae3ef1a7f14a004eb1e2479a8278047c6..527acaf133940304e53937f74a09f66e65785a41 100644 GIT binary patch delta 9258 zcmaJ_3s_XwwLa${_yW!lL5BE39Te0m7?UuBD1#6WaVBDu?+a~g8jMnH6Gg>ahM3E1 zFpM}Aa?&hw)n08{OKwb}^?^_ysL^PniH|fP4;535jy4GVOKYfQuBZ2b+>B(Tq##>dz_F3WD#PY8W$DJ0dD{3sDXDl->kjgw)o)9Xf8r;$Ifv8{dHS#7hRMzPmbenR zZTq0RK3tsr;Eu@1Qxm1V{Ubk~D18(g>HC57UOZD?OIV2a>q$pc46ddr7#tn9fjMpI zk&^UodgQ6?V`?g8(}z*g$I2~5k~T#}o{N%>>pN>7(@m~-?uzLvN$!K~S0idaSF3vZ zsV{i+ZM%k47Q&tqb#Why=GkL81sm<|uY{wuJu_9;t0oxzPM*aS#n!tI9m%t#O87Tz zzTN$drO@u#BIc;6@s>Pw*YlEEc(A#jTK6hU%5!(uc1CCSQC%DQOFSoC%8piD+? zg`IZyH~S`HzTN$GXtrzAKoHWd6u1v+wcUQzbr+94nw;sdURP@m55RK!$}H0`ccy1W z4CdM`Irg+aYwkQtk+SAO zv@|SrRn}@(SWMXd8L+HG9pPfnU@KHS9s#+A6_)aup6Dn?onNin8;c+}Fev{#mX0HeSEEa!REp9DwzO zcJ~}hx*au?YD5F-iZpfx+iB;;>KWXV}$zwW9DEs8zIbr6`Fgs@Ko4{sA9t$*7IsjbUbX^9rW3r*3FTs zd3g}1@TRm4A(LihcqU}pt(}^h|B|7^dR48t7p#Xp*=9%D`Ld}6wSHN3trd=bZ+G|T z3+t!I)Airf-=7dK6y+Z2W1d(tF}P)VXZ@7;AEH>8nG9ddRprUp{yII?Z5tnfz0?}^ zSQ^FFoL61bk*B;@TS2g+vf3G~-Ky(l{U!Gg@o*tkbGld3!lw zs^4A!JMHdn?lZQZ*q*fg^pNdHzCT%%XhH3la!DiCqwHPOgXdrhARF1K!yZUOL1lTQAWh<)s!dZP! z!<6Jdz&mwBj#Sm7Agwue++#S4t9sBd_Uf^#hYf^Pc6Zmc*I?g^^Ua9`wFhKTtXtsw z^ePl-df7GaX8rNi(<}Gif*+0f8K9# zfpxvxeQZu|qqFTp{3Mu^j=eG3ooIZh8WU19o!cJwP2N~;nGcBuipFVo`;92L4~h1< z4)aB$bhvNjyU?E^y8ZqF>si&+^S`{mUt!gfP>$)dJm!M;zz{nUYP+J{=4aesdk`wN zCsp=7iD2C+mv5MU?Mz9dUb@*lW13-Ez}_}QE@X7LxnUh%*u4RE3y-~Kv5fBDH}t7# z*VZ9VgQ9FzU^O<317^%vhrJEC)EiSc;9VrPy$Yhebk;K;%xkTB?XN~wK7ou>TPmZt z>!Hff6aoRoKB>F%W$!3#wK_uR2nGbRg%)FdKj(so4CnlKPIr;_;3DITZm|C6`w0C) zb%DFxd;T8*n?qeK3s*?XAlC)6Tr`#B2e z_vwmScb=U@p_mM+=Bc-%MRDnrYSlirUtM_>Y3i_cs;)$w&EcKBCKDSVIA7w}5FFjy z7=8C3EHKkkmg+C?l*{=p92tC6a!Tq`8%N7g`rO9xmBcoOj1ob~&+v1wc>9G-nn&yB zO~KZ3(XkJ!|g+5@#yj5Wl0=5T)-IMV9MzeC!-a{v<%f=_TRdP_kOK@J|9q0=^p z&$cU2(tF%G)VvS9KSPYU=0yg<5XqYh9muHOUT(dj)(r2j&u$to@6exb%Box{5(bSR zG$~ZU-ar1`@2~AF5BimDQe8I@49W*e2p;qsi@>^?+JCp&#C@2i4m3dhv^y%GgMK-HVS`#v&UX?r*%S z&|{NbvVbf z<6Dlfh*depyw&;&U9GG_LO47NWNvolLb102<`{=BZU?2oqgGr(#==e35;D42&j(n|Jdvw7>v!`>ivu5rtjkg*-ogG2T2z7cmg*W0r=YNGVx@7^b|U+5&Wg5k z+l>UudXIiP4xDlvzSB?uXH?fMJ{`mzs_gk*o49<-wX`nn0qzSmuZb$*(&82^t^hdw z?Vjum823o<3ecn0bg?#1cDm4rbM!YbioYsM`_kC~1jD!`@g)TJd}s`slL>RqsWmZC zdgn_cl_QaQ#IHvtBy*Y8-6$K*ItyyQhsNy@y7kw?CM*_v!BK(!;010DuO5DZd-fZ@ z-#bgM{rtgQvbQ2+7S^ikky>of;NF|8TeuYwiQy`N)n2`-s5F#%U+cjDM~Mi*9>)(85A{ z+9!7TYt4O5M2at!=>a)}%l-hil{cVpdA}nO6K8tn43m3f8@Nse!&_!a^`^o5e|blG zRR7b*M%He6mAtwW_j-Jfh1wOq zIglBAf(9+X8&^1JM$ekVpBhSeE8%*bR4qZj`x~_5Ys#rN`d=*@c|>u;vW%GIVQ&UP#`c& zLre$vPq#zg&&1HKRx&b)9Y0s?^L?cEsRcz(l9p3YlEHpWj4%x zsg+C5I~BJ-MBJp-rGRJK&k0=Msg%9>@Z|B{EJmMQhELUZyc0oZGm0>~_ooEcSo8d&no+qWFTcDIk08Yqp(OKIC?Igz$*mZNCpX8Ep`qnqUg{rVT04VhY+{g#~AQuvnK zFH$a{AMKFel84jv9de?4p8+!r_^|=c8c=1xD+YW?)jQ?Hq`OiiX{6)}Ego1xx}UZ& z`zgWhgS0UoQvjc%3t-D6q~vCb+lA3yV|0dWJo-wEGUCVZ0#P9iLjoG^5%j(xdT`+% z(k9GK`ki18xPyIzPJvwzKbEz|gxEp5CJVY6qFV#2Ef#cBh#p*ROG`$J{NGVA8PY`i z^eL0Y|MZr#d*!BKnYjxW%_~?mZ+?01@{*GIOQrw##q?+AF)?rcvZt3WEG=8S^wIfc z%M5zn(&AqV;ra7gmVPR)jA;4$IeAW`{0+^%2zN|@EaD6r2P@Et#50bnnVlKNo)E^) zp>1FnED2*z3}ZXP=##?eE5qpgMHO64rwhE=Z^PKfU{H{~gW@j9iFY3hu=(<^AdEdK zwk7wHyi&;+hM$-CVP{^)UvU1o0G%hs;ja-(^E0`{cUe9^KIs)>DCYeQ@44C#G)Gj}_8~iz4 zfRd!UnI2#t1qSWfL~#jV?+dVb4gUKqVCPY?fi1sEn;2fFB`mx%5)ycL&X@QL>N+T- zsN)GGI_9e|dI~jlqF8bac$ehCP||^GC_lGH;tR?ETfQZvcFMkiI^qk|tNUB_Q=Vj7K1gx*>By@Q{i+d=mK&}^{f zn^b)hhFj?ZAn6NqG=5lD_|~qcZLI4X{JzK!v%~i%kuETMa#%u!C)7@gGh?Z{X$eCf z*#JpP{!R9MVo2?zj8PEQXcNylM#VhZOQ(4BEj96IG|5STvvhz*11N(>GX!M3j*n}8 z*wR1ZFX;7T{94El)8EBkkiMOYd3FIE03^al-GDs0J`wN;EwNzE zg2AlUh;ubCsClViXS^83UK7S%7e;RkqyL_4to2YByC#f%!dUcL7`rKq{heUTL+An< znnJSyRBA=ihAVLhx{O1BrRu~e0&iXc!P!utC# zubJdw2xEMp2!iJeJICyklmWKVX8=7sOqrN8G@vCJEPjGw8a1(&1pzIo1~X!$kTh8<|>NKtn5H+X9&DHg$_au(eKsg}-3$}<6Wku}J!M@ks%jaFqss(cTf zD8@n=1yiWg7m9JXp>W8pzI!)K}za zNIw6xGKqdSS1|`?eHNTWH|GV#0`sCngn%hFHYJhf%!i<`CwrdK966nPH=Qb02FX+D z);#5>^jQgfTrgiLljXdYvn9&-Ncm^f{~2Wx!eeE)Mhl-&K9YYxwr7>E%-7@Tx~p^mOIcxdEe!0R-dVLMeboT6=jjE@6n$2|Vc0}m$(AC)f!=+B1Hr-0tw z5?87`kd44PwkXrc{-!d4c5hK0qt$QVE%Ob$MGG3gt>(APH*lxB{FeC^-j4HIIlo13WjTJc^IJFGWE;h7Ri??gEsm|qJrTHAR&Q7C@4x$;VW>t2 zFjQ9Fg`4zXGVM@OgYSiSmsgT=2PSW%RtAZD49#TSsZ3MMgQ#MsGF3?)L~TGhoqQn6 zX0q-Ak+^o$jPvqS{b^?$8eOa?*N`6Cj(Ywm_+^2M}r;6in5m7%bwEGy+$$A3*Ydfjp1R~g-LT!wV zJE;fA+5R4+`jL|X5dbKKC#dH=Fc*;ZeGHo~QpNiimQyPayDm}>4^zo{62n!Osp2Fw zHeaSTAcq!Y7;ZfUKxP7z-Pfq?6fgTF^#ED(X^_j1o2M}>qE;R@UZ)-ml`A&NIs@_) za-I>YS{a(j$B<0c4K#nkzJEAG;FCZ7jPzB@38PvwO1JwlNI{Xk~ zU4yCOLt|kKxwsi5vVJ5+PJq%io7z6Y)SF|dhwto>Baa6(BT|{k+$J40?h~2h+BFuL(U|$&|@-bkOJ_R888Ng#OlaIkf*3Sgd$$-rT zD1}q0=QAijT1;7If#p-Fg0XQbwEm$Ev+%p_+ghV|2^jfV&o4>wMutP8Ap8dU%}H!gsDavJsU5JrCv zRn6pNK%@Xl*VEMVIp!4RP}W}|R7lRhf?S?MZ9LpcJ|1oa_o7hYyog~txI8Q(9}mls z8keA>JeMjMujEl15YhEr0=sB7WqpBRIyt|$uVALu|S9Tf0V`Rfn=~zq^SCujU2PN%QF8}}l delta 9842 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 z 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 CHk`Wv literal 205144 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�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�ijNOzB%uohX9)R$c7 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 diff --git a/build/CMakeFiles/LearningVulkan.dir/src/private/VulkanVertexBuffer.cpp.o b/build/CMakeFiles/LearningVulkan.dir/src/private/VulkanVertexBuffer.cpp.o index 747180b4701b5ddf1f64d6e85a121e46d181d4eb..3f9c606061c264d9807ce45cab2690a57aa094d5 100644 GIT binary patch delta 68468 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 G&Hn=0SJ3bP delta 66374 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 V1e?^hc8qol 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

mMd7UWx0vvc9#2D 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

kr^Q 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
  • ZmYlHeJI3%1#g%8m)Ge=Y-48j%|h8@CL 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 EKYnkwvH$=8 diff --git a/build/Makefile b/build/Makefile index 70b9ef0..827b69e 100644 --- a/build/Makefile +++ b/build/Makefile @@ -609,6 +609,30 @@ src/utilities/Logger.cpp.s: $(MAKE) $(MAKESILENT) -f CMakeFiles/LearningVulkan.dir/build.make CMakeFiles/LearningVulkan.dir/src/utilities/Logger.cpp.s .PHONY : src/utilities/Logger.cpp.s +src/utilities/stb_image_impl.o: src/utilities/stb_image_impl.cpp.o +.PHONY : src/utilities/stb_image_impl.o + +# target to build an object file +src/utilities/stb_image_impl.cpp.o: + $(MAKE) $(MAKESILENT) -f CMakeFiles/LearningVulkan.dir/build.make CMakeFiles/LearningVulkan.dir/src/utilities/stb_image_impl.cpp.o +.PHONY : src/utilities/stb_image_impl.cpp.o + +src/utilities/stb_image_impl.i: src/utilities/stb_image_impl.cpp.i +.PHONY : src/utilities/stb_image_impl.i + +# target to preprocess a source file +src/utilities/stb_image_impl.cpp.i: + $(MAKE) $(MAKESILENT) -f CMakeFiles/LearningVulkan.dir/build.make CMakeFiles/LearningVulkan.dir/src/utilities/stb_image_impl.cpp.i +.PHONY : src/utilities/stb_image_impl.cpp.i + +src/utilities/stb_image_impl.s: src/utilities/stb_image_impl.cpp.s +.PHONY : src/utilities/stb_image_impl.s + +# target to generate assembly for a file +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 + # Help Target help: @echo "The following are some of the valid targets for this Makefile:" @@ -678,6 +702,9 @@ help: @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" .PHONY : help diff --git a/build/compile_commands.json b/build/compile_commands.json index 53856b7..c63b4b8 100644 --- a/build/compile_commands.json +++ b/build/compile_commands.json @@ -1,115 +1,127 @@ [ { "directory": "/home/Jordan/Projects/CPP/LearningVulkan/build", - "command": "/usr/bin/c++ -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/backends -I/home/Jordan/Projects/CPP/LearningVulkan/include -I/home/Jordan/Projects/CPP/LearningVulkan/src -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/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/imgui -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/backends -I/home/Jordan/Projects/CPP/LearningVulkan/include -I/home/Jordan/Projects/CPP/LearningVulkan/src -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/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/imgui -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/backends -I/home/Jordan/Projects/CPP/LearningVulkan/include -I/home/Jordan/Projects/CPP/LearningVulkan/src -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", + "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" }, { "directory": "/home/Jordan/Projects/CPP/LearningVulkan/build", - "command": "/usr/bin/c++ -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/backends -I/home/Jordan/Projects/CPP/LearningVulkan/include -I/home/Jordan/Projects/CPP/LearningVulkan/src -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/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/imgui -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/backends -I/home/Jordan/Projects/CPP/LearningVulkan/include -I/home/Jordan/Projects/CPP/LearningVulkan/src -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/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/imgui -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/backends -I/home/Jordan/Projects/CPP/LearningVulkan/include -I/home/Jordan/Projects/CPP/LearningVulkan/src -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/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/imgui -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/backends -I/home/Jordan/Projects/CPP/LearningVulkan/include -I/home/Jordan/Projects/CPP/LearningVulkan/src -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/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/imgui -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/backends -I/home/Jordan/Projects/CPP/LearningVulkan/include -I/home/Jordan/Projects/CPP/LearningVulkan/src -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/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/imgui -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/backends -I/home/Jordan/Projects/CPP/LearningVulkan/include -I/home/Jordan/Projects/CPP/LearningVulkan/src -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/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/imgui -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/backends -I/home/Jordan/Projects/CPP/LearningVulkan/include -I/home/Jordan/Projects/CPP/LearningVulkan/src -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/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/imgui -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/backends -I/home/Jordan/Projects/CPP/LearningVulkan/include -I/home/Jordan/Projects/CPP/LearningVulkan/src -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/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/imgui -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/backends -I/home/Jordan/Projects/CPP/LearningVulkan/include -I/home/Jordan/Projects/CPP/LearningVulkan/src -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", + "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" }, { "directory": "/home/Jordan/Projects/CPP/LearningVulkan/build", - "command": "/usr/bin/c++ -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/backends -I/home/Jordan/Projects/CPP/LearningVulkan/include -I/home/Jordan/Projects/CPP/LearningVulkan/src -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/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/imgui -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/backends -I/home/Jordan/Projects/CPP/LearningVulkan/include -I/home/Jordan/Projects/CPP/LearningVulkan/src -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/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", "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/imgui -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/backends -I/home/Jordan/Projects/CPP/LearningVulkan/include -I/home/Jordan/Projects/CPP/LearningVulkan/src -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/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", "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/imgui -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/backends -I/home/Jordan/Projects/CPP/LearningVulkan/include -I/home/Jordan/Projects/CPP/LearningVulkan/src -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/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/imgui -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/backends -I/home/Jordan/Projects/CPP/LearningVulkan/include -I/home/Jordan/Projects/CPP/LearningVulkan/src -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/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/imgui -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/backends -I/home/Jordan/Projects/CPP/LearningVulkan/include -I/home/Jordan/Projects/CPP/LearningVulkan/src -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/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/imgui -I/home/Jordan/Projects/CPP/LearningVulkan/lib/imgui/backends -I/home/Jordan/Projects/CPP/LearningVulkan/include -I/home/Jordan/Projects/CPP/LearningVulkan/src -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/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" } diff --git a/compile_commands.json b/compile_commands.json deleted file mode 100644 index 70aaf13..0000000 --- a/compile_commands.json +++ /dev/null @@ -1,18 +0,0 @@ -[ - { - "file": "./src/main.cpp", - "arguments": [ - "g++", - "-std=c++17", - "-O2", - "-Wall", - "-Wextra", - "-I./include", - "-o", - "LearningVulkan", - "./src/main.cpp" - ], - "directory": "/home/Jordan/Projects/CPP/LearningVulkan", - "output": "LearningVulkan" - } -] \ No newline at end of file diff --git a/imgui.ini b/imgui.ini index 02a82c4..8715dba 100644 --- a/imgui.ini +++ b/imgui.ini @@ -19,7 +19,7 @@ Pos=60,60 Size=212,48 [Window][NVIDIA GeForce RTX 4070] -Pos=60,60 +Pos=7,18 Size=212,48 [Table][0xB6880529,2] diff --git a/lib/stb/stb_image.h b/lib/stb/stb_image.h new file mode 100644 index 0000000..26a41e0 --- /dev/null +++ b/lib/stb/stb_image.h @@ -0,0 +1,8581 @@ +/* stb_image - v2.30 - public domain image loader - http://nothings.org/stb + no warranty implied; use at your own risk + + Do this: + #define STB_IMAGE_IMPLEMENTATION + before you include this file in *one* C or C++ file to create the implementation. + + // i.e. it should look like this: + #include ... + #include ... + #include ... + #define STB_IMAGE_IMPLEMENTATION + #include "stb_image.h" + + You can #define STBI_ASSERT(x) before the #include to avoid using assert.h. + And #define STBI_MALLOC, STBI_REALLOC, and STBI_FREE to avoid using malloc,realloc,free + + + QUICK NOTES: + Primarily of interest to game developers and other people who can + avoid problematic images and only need the trivial interface + + JPEG baseline & progressive (12 bpc/arithmetic not supported, same as stock IJG lib) + PNG 1/2/4/8/16-bit-per-channel + + TGA (not sure what subset, if a subset) + BMP non-1bpp, non-RLE + PSD (composited view only, no extra channels, 8/16 bit-per-channel) + + GIF (*comp always reports as 4-channel) + HDR (radiance rgbE format) + PIC (Softimage PIC) + PNM (PPM and PGM binary only) + + Animated GIF still needs a proper API, but here's one way to do it: + http://gist.github.com/urraka/685d9a6340b26b830d49 + + - decode from memory or through FILE (define STBI_NO_STDIO to remove code) + - decode from arbitrary I/O callbacks + - SIMD acceleration on x86/x64 (SSE2) and ARM (NEON) + + Full documentation under "DOCUMENTATION" below. + + +LICENSE + + See end of file for license information. + +RECENT REVISION HISTORY: + + 2.30 (2024-05-31) avoid erroneous gcc warning + 2.29 (2023-05-xx) optimizations + 2.28 (2023-01-29) many error fixes, security errors, just tons of stuff + 2.27 (2021-07-11) document stbi_info better, 16-bit PNM support, bug fixes + 2.26 (2020-07-13) many minor fixes + 2.25 (2020-02-02) fix warnings + 2.24 (2020-02-02) fix warnings; thread-local failure_reason and flip_vertically + 2.23 (2019-08-11) fix clang static analysis warning + 2.22 (2019-03-04) gif fixes, fix warnings + 2.21 (2019-02-25) fix typo in comment + 2.20 (2019-02-07) support utf8 filenames in Windows; fix warnings and platform ifdefs + 2.19 (2018-02-11) fix warning + 2.18 (2018-01-30) fix warnings + 2.17 (2018-01-29) bugfix, 1-bit BMP, 16-bitness query, fix warnings + 2.16 (2017-07-23) all functions have 16-bit variants; optimizations; bugfixes + 2.15 (2017-03-18) fix png-1,2,4; all Imagenet JPGs; no runtime SSE detection on GCC + 2.14 (2017-03-03) remove deprecated STBI_JPEG_OLD; fixes for Imagenet JPGs + 2.13 (2016-12-04) experimental 16-bit API, only for PNG so far; fixes + 2.12 (2016-04-02) fix typo in 2.11 PSD fix that caused crashes + 2.11 (2016-04-02) 16-bit PNGS; enable SSE2 in non-gcc x64 + RGB-format JPEG; remove white matting in PSD; + allocate large structures on the stack; + correct channel count for PNG & BMP + 2.10 (2016-01-22) avoid warning introduced in 2.09 + 2.09 (2016-01-16) 16-bit TGA; comments in PNM files; STBI_REALLOC_SIZED + + See end of file for full revision history. + + + ============================ Contributors ========================= + + Image formats Extensions, features + Sean Barrett (jpeg, png, bmp) Jetro Lauha (stbi_info) + Nicolas Schulz (hdr, psd) Martin "SpartanJ" Golini (stbi_info) + Jonathan Dummer (tga) James "moose2000" Brown (iPhone PNG) + Jean-Marc Lienher (gif) Ben "Disch" Wenger (io callbacks) + Tom Seddon (pic) Omar Cornut (1/2/4-bit PNG) + Thatcher Ulrich (psd) Nicolas Guillemot (vertical flip) + Ken Miller (pgm, ppm) Richard Mitton (16-bit PSD) + github:urraka (animated gif) Junggon Kim (PNM comments) + Christopher Forseth (animated gif) Daniel Gibson (16-bit TGA) + socks-the-fox (16-bit PNG) + Jeremy Sawicki (handle all ImageNet JPGs) + Optimizations & bugfixes Mikhail Morozov (1-bit BMP) + Fabian "ryg" Giesen Anael Seghezzi (is-16-bit query) + Arseny Kapoulkine Simon Breuss (16-bit PNM) + John-Mark Allen + Carmelo J Fdez-Aguera + + Bug & warning fixes + Marc LeBlanc David Woo Guillaume George Martins Mozeiko + Christpher Lloyd Jerry Jansson Joseph Thomson Blazej Dariusz Roszkowski + Phil Jordan Dave Moore Roy Eltham + Hayaki Saito Nathan Reed Won Chun + Luke Graham Johan Duparc Nick Verigakis the Horde3D community + Thomas Ruf Ronny Chevalier github:rlyeh + Janez Zemva John Bartholomew Michal Cichon github:romigrou + Jonathan Blow Ken Hamada Tero Hanninen github:svdijk + Eugene Golushkov Laurent Gomila Cort Stratton github:snagar + Aruelien Pocheville Sergio Gonzalez Thibault Reuille github:Zelex + Cass Everitt Ryamond Barbiero github:grim210 + Paul Du Bois Engin Manap Aldo Culquicondor github:sammyhw + Philipp Wiesemann Dale Weiler Oriol Ferrer Mesia github:phprus + Josh Tobin Neil Bickford Matthew Gregan github:poppolopoppo + Julian Raschke Gregory Mullen Christian Floisand github:darealshinji + Baldur Karlsson Kevin Schmidt JR Smith github:Michaelangel007 + Brad Weinberger Matvey Cherevko github:mosra + Luca Sas Alexander Veselov Zack Middleton [reserved] + Ryan C. Gordon [reserved] [reserved] + DO NOT ADD YOUR NAME HERE + + Jacko Dirks + + To add your name to the credits, pick a random blank space in the middle and fill it. + 80% of merge conflicts on stb PRs are due to people adding their name at the end + of the credits. +*/ + +#ifndef STBI_INCLUDE_STB_IMAGE_H +#define STBI_INCLUDE_STB_IMAGE_H + +// DOCUMENTATION +// +// Limitations: +// - no 12-bit-per-channel JPEG +// - no JPEGs with arithmetic coding +// - GIF always returns *comp=4 +// +// Basic usage (see HDR discussion below for HDR usage): +// int x,y,n; +// unsigned char *data = stbi_load(filename, &x, &y, &n, 0); +// // ... process data if not NULL ... +// // ... x = width, y = height, n = # 8-bit components per pixel ... +// // ... replace '0' with '1'..'4' to force that many components per pixel +// // ... but 'n' will always be the number that it would have been if you said 0 +// stbi_image_free(data); +// +// Standard parameters: +// int *x -- outputs image width in pixels +// int *y -- outputs image height in pixels +// int *channels_in_file -- outputs # of image components in image file +// int desired_channels -- if non-zero, # of image components requested in result +// +// The return value from an image loader is an 'unsigned char *' which points +// to the pixel data, or NULL on an allocation failure or if the image is +// corrupt or invalid. The pixel data consists of *y scanlines of *x pixels, +// with each pixel consisting of N interleaved 8-bit components; the first +// pixel pointed to is top-left-most in the image. There is no padding between +// image scanlines or between pixels, regardless of format. The number of +// components N is 'desired_channels' if desired_channels is non-zero, or +// *channels_in_file otherwise. If desired_channels is non-zero, +// *channels_in_file has the number of components that _would_ have been +// output otherwise. E.g. if you set desired_channels to 4, you will always +// get RGBA output, but you can check *channels_in_file to see if it's trivially +// opaque because e.g. there were only 3 channels in the source image. +// +// An output image with N components has the following components interleaved +// in this order in each pixel: +// +// N=#comp components +// 1 grey +// 2 grey, alpha +// 3 red, green, blue +// 4 red, green, blue, alpha +// +// If image loading fails for any reason, the return value will be NULL, +// and *x, *y, *channels_in_file will be unchanged. The function +// stbi_failure_reason() can be queried for an extremely brief, end-user +// unfriendly explanation of why the load failed. Define STBI_NO_FAILURE_STRINGS +// to avoid compiling these strings at all, and STBI_FAILURE_USERMSG to get slightly +// more user-friendly ones. +// +// Paletted PNG, BMP, GIF, and PIC images are automatically depalettized. +// +// To query the width, height and component count of an image without having to +// decode the full file, you can use the stbi_info family of functions: +// +// int x,y,n,ok; +// ok = stbi_info(filename, &x, &y, &n); +// // returns ok=1 and sets x, y, n if image is a supported format, +// // 0 otherwise. +// +// Note that stb_image pervasively uses ints in its public API for sizes, +// including sizes of memory buffers. This is now part of the API and thus +// hard to change without causing breakage. As a result, the various image +// loaders all have certain limits on image size; these differ somewhat +// by format but generally boil down to either just under 2GB or just under +// 1GB. When the decoded image would be larger than this, stb_image decoding +// will fail. +// +// Additionally, stb_image will reject image files that have any of their +// dimensions set to a larger value than the configurable STBI_MAX_DIMENSIONS, +// which defaults to 2**24 = 16777216 pixels. Due to the above memory limit, +// the only way to have an image with such dimensions load correctly +// is for it to have a rather extreme aspect ratio. Either way, the +// assumption here is that such larger images are likely to be malformed +// or malicious. If you do need to load an image with individual dimensions +// larger than that, and it still fits in the overall size limit, you can +// #define STBI_MAX_DIMENSIONS on your own to be something larger. +// +// =========================================================================== +// +// UNICODE: +// +// If compiling for Windows and you wish to use Unicode filenames, compile +// with +// #define STBI_WINDOWS_UTF8 +// and pass utf8-encoded filenames. Call stbi_convert_wchar_to_utf8 to convert +// Windows wchar_t filenames to utf8. +// +// =========================================================================== +// +// Philosophy +// +// stb libraries are designed with the following priorities: +// +// 1. easy to use +// 2. easy to maintain +// 3. good performance +// +// Sometimes I let "good performance" creep up in priority over "easy to maintain", +// and for best performance I may provide less-easy-to-use APIs that give higher +// performance, in addition to the easy-to-use ones. Nevertheless, it's important +// to keep in mind that from the standpoint of you, a client of this library, +// all you care about is #1 and #3, and stb libraries DO NOT emphasize #3 above all. +// +// Some secondary priorities arise directly from the first two, some of which +// provide more explicit reasons why performance can't be emphasized. +// +// - Portable ("ease of use") +// - Small source code footprint ("easy to maintain") +// - No dependencies ("ease of use") +// +// =========================================================================== +// +// I/O callbacks +// +// I/O callbacks allow you to read from arbitrary sources, like packaged +// files or some other source. Data read from callbacks are processed +// through a small internal buffer (currently 128 bytes) to try to reduce +// overhead. +// +// The three functions you must define are "read" (reads some bytes of data), +// "skip" (skips some bytes of data), "eof" (reports if the stream is at the end). +// +// =========================================================================== +// +// SIMD support +// +// The JPEG decoder will try to automatically use SIMD kernels on x86 when +// supported by the compiler. For ARM Neon support, you must explicitly +// request it. +// +// (The old do-it-yourself SIMD API is no longer supported in the current +// code.) +// +// On x86, SSE2 will automatically be used when available based on a run-time +// test; if not, the generic C versions are used as a fall-back. On ARM targets, +// the typical path is to have separate builds for NEON and non-NEON devices +// (at least this is true for iOS and Android). Therefore, the NEON support is +// toggled by a build flag: define STBI_NEON to get NEON loops. +// +// If for some reason you do not want to use any of SIMD code, or if +// you have issues compiling it, you can disable it entirely by +// defining STBI_NO_SIMD. +// +// =========================================================================== +// +// HDR image support (disable by defining STBI_NO_HDR) +// +// stb_image supports loading HDR images in general, and currently the Radiance +// .HDR file format specifically. You can still load any file through the existing +// interface; if you attempt to load an HDR file, it will be automatically remapped +// to LDR, assuming gamma 2.2 and an arbitrary scale factor defaulting to 1; +// both of these constants can be reconfigured through this interface: +// +// stbi_hdr_to_ldr_gamma(2.2f); +// stbi_hdr_to_ldr_scale(1.0f); +// +// (note, do not use _inverse_ constants; stbi_image will invert them +// appropriately). +// +// Additionally, there is a new, parallel interface for loading files as +// (linear) floats to preserve the full dynamic range: +// +// float *data = stbi_loadf(filename, &x, &y, &n, 0); +// +// If you load LDR images through this interface, those images will +// be promoted to floating point values, run through the inverse of +// constants corresponding to the above: +// +// stbi_ldr_to_hdr_scale(1.0f); +// stbi_ldr_to_hdr_gamma(2.2f); +// +// Finally, given a filename (or an open file or memory block--see header +// file for details) containing image data, you can query for the "most +// appropriate" interface to use (that is, whether the image is HDR or +// not), using: +// +// stbi_is_hdr(char *filename); +// +// =========================================================================== +// +// iPhone PNG support: +// +// We optionally support converting iPhone-formatted PNGs (which store +// premultiplied BGRA) back to RGB, even though they're internally encoded +// differently. To enable this conversion, call +// stbi_convert_iphone_png_to_rgb(1). +// +// Call stbi_set_unpremultiply_on_load(1) as well to force a divide per +// pixel to remove any premultiplied alpha *only* if the image file explicitly +// says there's premultiplied data (currently only happens in iPhone images, +// and only if iPhone convert-to-rgb processing is on). +// +// =========================================================================== +// +// ADDITIONAL CONFIGURATION +// +// - You can suppress implementation of any of the decoders to reduce +// your code footprint by #defining one or more of the following +// symbols before creating the implementation. +// +// STBI_NO_JPEG +// STBI_NO_PNG +// STBI_NO_BMP +// STBI_NO_PSD +// STBI_NO_TGA +// STBI_NO_GIF +// STBI_NO_HDR +// STBI_NO_PIC +// STBI_NO_PNM (.ppm and .pgm) +// +// - You can request *only* certain decoders and suppress all other ones +// (this will be more forward-compatible, as addition of new decoders +// doesn't require you to disable them explicitly): +// +// STBI_ONLY_JPEG +// STBI_ONLY_PNG +// STBI_ONLY_BMP +// STBI_ONLY_PSD +// STBI_ONLY_TGA +// STBI_ONLY_GIF +// STBI_ONLY_HDR +// STBI_ONLY_PIC +// STBI_ONLY_PNM (.ppm and .pgm) +// +// - If you use STBI_NO_PNG (or _ONLY_ without PNG), and you still +// want the zlib decoder to be available, #define STBI_SUPPORT_ZLIB +// +// - If you define STBI_MAX_DIMENSIONS, stb_image will reject images greater +// than that size (in either width or height) without further processing. +// This is to let programs in the wild set an upper bound to prevent +// denial-of-service attacks on untrusted data, as one could generate a +// valid image of gigantic dimensions and force stb_image to allocate a +// huge block of memory and spend disproportionate time decoding it. By +// default this is set to (1 << 24), which is 16777216, but that's still +// very big. + +#ifndef STBI_NO_STDIO +#include +#endif // STBI_NO_STDIO + +#define STBI_VERSION 1 + +enum +{ + STBI_default = 0, // only used for desired_channels + + STBI_grey = 1, + STBI_grey_alpha = 2, + STBI_rgb = 3, + STBI_rgb_alpha = 4 +}; + +#include +typedef unsigned char stbi_uc; +typedef unsigned short stbi_us; + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef STBIDEF +#ifdef STB_IMAGE_STATIC +#define STBIDEF static +#else +#define STBIDEF extern +#endif +#endif + +////////////////////////////////////////////////////////////////////////////// +// +// PRIMARY API - works on images of any type +// + +// +// load image by filename, open file, or memory buffer +// + +typedef struct +{ + int (*read) (void *user,char *data,int size); // fill 'data' with 'size' bytes. return number of bytes actually read + void (*skip) (void *user,int n); // skip the next 'n' bytes, or 'unget' the last -n bytes if negative + int (*eof) (void *user); // returns nonzero if we are at end of file/data +} stbi_io_callbacks; + +//////////////////////////////////// +// +// 8-bits-per-channel interface +// + +STBIDEF stbi_uc *stbi_load_from_memory (stbi_uc const *buffer, int len , int *x, int *y, int *channels_in_file, int desired_channels); +STBIDEF stbi_uc *stbi_load_from_callbacks(stbi_io_callbacks const *clbk , void *user, int *x, int *y, int *channels_in_file, int desired_channels); + +#ifndef STBI_NO_STDIO +STBIDEF stbi_uc *stbi_load (char const *filename, int *x, int *y, int *channels_in_file, int desired_channels); +STBIDEF stbi_uc *stbi_load_from_file (FILE *f, int *x, int *y, int *channels_in_file, int desired_channels); +// for stbi_load_from_file, file pointer is left pointing immediately after image +#endif + +#ifndef STBI_NO_GIF +STBIDEF stbi_uc *stbi_load_gif_from_memory(stbi_uc const *buffer, int len, int **delays, int *x, int *y, int *z, int *comp, int req_comp); +#endif + +#ifdef STBI_WINDOWS_UTF8 +STBIDEF int stbi_convert_wchar_to_utf8(char *buffer, size_t bufferlen, const wchar_t* input); +#endif + +//////////////////////////////////// +// +// 16-bits-per-channel interface +// + +STBIDEF stbi_us *stbi_load_16_from_memory (stbi_uc const *buffer, int len, int *x, int *y, int *channels_in_file, int desired_channels); +STBIDEF stbi_us *stbi_load_16_from_callbacks(stbi_io_callbacks const *clbk, void *user, int *x, int *y, int *channels_in_file, int desired_channels); + +#ifndef STBI_NO_STDIO +STBIDEF stbi_us *stbi_load_16 (char const *filename, int *x, int *y, int *channels_in_file, int desired_channels); +STBIDEF stbi_us *stbi_load_from_file_16(FILE *f, int *x, int *y, int *channels_in_file, int desired_channels); +#endif + +//////////////////////////////////// +// +// float-per-channel interface +// +#ifndef STBI_NO_LINEAR + STBIDEF float *stbi_loadf_from_memory (stbi_uc const *buffer, int len, int *x, int *y, int *channels_in_file, int desired_channels); + STBIDEF float *stbi_loadf_from_callbacks (stbi_io_callbacks const *clbk, void *user, int *x, int *y, int *channels_in_file, int desired_channels); + + #ifndef STBI_NO_STDIO + STBIDEF float *stbi_loadf (char const *filename, int *x, int *y, int *channels_in_file, int desired_channels); + STBIDEF float *stbi_loadf_from_file (FILE *f, int *x, int *y, int *channels_in_file, int desired_channels); + #endif +#endif + +#ifndef STBI_NO_HDR + STBIDEF void stbi_hdr_to_ldr_gamma(float gamma); + STBIDEF void stbi_hdr_to_ldr_scale(float scale); +#endif // STBI_NO_HDR + +#ifndef STBI_NO_LINEAR + STBIDEF void stbi_ldr_to_hdr_gamma(float gamma); + STBIDEF void stbi_ldr_to_hdr_scale(float scale); +#endif // STBI_NO_LINEAR + +// stbi_is_hdr is always defined, but always returns false if STBI_NO_HDR +STBIDEF int stbi_is_hdr_from_callbacks(stbi_io_callbacks const *clbk, void *user); +STBIDEF int stbi_is_hdr_from_memory(stbi_uc const *buffer, int len); +#ifndef STBI_NO_STDIO +STBIDEF int stbi_is_hdr (char const *filename); +STBIDEF int stbi_is_hdr_from_file(FILE *f); +#endif // STBI_NO_STDIO + + +// get a VERY brief reason for failure +// on most compilers (and ALL modern mainstream compilers) this is threadsafe +STBIDEF const char *stbi_failure_reason (void); + +// free the loaded image -- this is just free() +STBIDEF void stbi_image_free (void *retval_from_stbi_load); + +// get image dimensions & components without fully decoding +STBIDEF int stbi_info_from_memory(stbi_uc const *buffer, int len, int *x, int *y, int *comp); +STBIDEF int stbi_info_from_callbacks(stbi_io_callbacks const *clbk, void *user, int *x, int *y, int *comp); +STBIDEF int stbi_is_16_bit_from_memory(stbi_uc const *buffer, int len); +STBIDEF int stbi_is_16_bit_from_callbacks(stbi_io_callbacks const *clbk, void *user); + +#ifndef STBI_NO_STDIO +STBIDEF int stbi_info (char const *filename, int *x, int *y, int *comp); +STBIDEF int stbi_info_from_file (FILE *f, int *x, int *y, int *comp); +STBIDEF int stbi_is_16_bit (char const *filename); +STBIDEF int stbi_is_16_bit_from_file(FILE *f); +#endif + + + +// for image formats that explicitly notate that they have premultiplied alpha, +// we just return the colors as stored in the file. set this flag to force +// unpremultiplication. results are undefined if the unpremultiply overflow. +STBIDEF void stbi_set_unpremultiply_on_load(int flag_true_if_should_unpremultiply); + +// indicate whether we should process iphone images back to canonical format, +// or just pass them through "as-is" +STBIDEF void stbi_convert_iphone_png_to_rgb(int flag_true_if_should_convert); + +// flip the image vertically, so the first pixel in the output array is the bottom left +STBIDEF void stbi_set_flip_vertically_on_load(int flag_true_if_should_flip); + +// as above, but only applies to images loaded on the thread that calls the function +// this function is only available if your compiler supports thread-local variables; +// calling it will fail to link if your compiler doesn't +STBIDEF void stbi_set_unpremultiply_on_load_thread(int flag_true_if_should_unpremultiply); +STBIDEF void stbi_convert_iphone_png_to_rgb_thread(int flag_true_if_should_convert); +STBIDEF void stbi_set_flip_vertically_on_load_thread(int flag_true_if_should_flip); + +// ZLIB client - used by PNG, available for other purposes + +STBIDEF char *stbi_zlib_decode_malloc_guesssize(const char *buffer, int len, int initial_size, int *outlen); +STBIDEF char *stbi_zlib_decode_malloc_guesssize_headerflag(const char *buffer, int len, int initial_size, int *outlen, int parse_header); +STBIDEF char *stbi_zlib_decode_malloc(const char *buffer, int len, int *outlen); +STBIDEF int stbi_zlib_decode_buffer(char *obuffer, int olen, const char *ibuffer, int ilen); + +STBIDEF char *stbi_zlib_decode_noheader_malloc(const char *buffer, int len, int *outlen); +STBIDEF int stbi_zlib_decode_noheader_buffer(char *obuffer, int olen, const char *ibuffer, int ilen); + + +#ifdef __cplusplus +} +#endif + +// +// +//// end header file ///////////////////////////////////////////////////// +#endif // STBI_INCLUDE_STB_IMAGE_H + +#ifdef STB_IMAGE_IMPLEMENTATION + +#if defined(STBI_ONLY_JPEG) || defined(STBI_ONLY_PNG) || defined(STBI_ONLY_BMP) \ + || defined(STBI_ONLY_TGA) || defined(STBI_ONLY_GIF) || defined(STBI_ONLY_PSD) \ + || defined(STBI_ONLY_HDR) || defined(STBI_ONLY_PIC) || defined(STBI_ONLY_PNM) \ + || defined(STBI_ONLY_ZLIB) + #ifndef STBI_ONLY_JPEG + #define STBI_NO_JPEG + #endif + #ifndef STBI_ONLY_PNG + #define STBI_NO_PNG + #endif + #ifndef STBI_ONLY_BMP + #define STBI_NO_BMP + #endif + #ifndef STBI_ONLY_PSD + #define STBI_NO_PSD + #endif + #ifndef STBI_ONLY_TGA + #define STBI_NO_TGA + #endif + #ifndef STBI_ONLY_GIF + #define STBI_NO_GIF + #endif + #ifndef STBI_ONLY_HDR + #define STBI_NO_HDR + #endif + #ifndef STBI_ONLY_PIC + #define STBI_NO_PIC + #endif + #ifndef STBI_ONLY_PNM + #define STBI_NO_PNM + #endif +#endif + +#if defined(STBI_NO_PNG) && !defined(STBI_SUPPORT_ZLIB) && !defined(STBI_NO_ZLIB) +#define STBI_NO_ZLIB +#endif + + +#include +#include // ptrdiff_t on osx +#include +#include +#include + +#if !defined(STBI_NO_LINEAR) || !defined(STBI_NO_HDR) +#include // ldexp, pow +#endif + +#ifndef STBI_NO_STDIO +#include +#endif + +#ifndef STBI_ASSERT +#include +#define STBI_ASSERT(x) assert(x) +#endif + +#ifdef __cplusplus +#define STBI_EXTERN extern "C" +#else +#define STBI_EXTERN extern +#endif + + +#ifndef _MSC_VER + #ifdef __cplusplus + #define stbi_inline inline + #else + #define stbi_inline + #endif +#else + #define stbi_inline __forceinline +#endif + +#ifndef STBI_NO_THREAD_LOCALS + #if defined(__cplusplus) && __cplusplus >= 201103L + #define STBI_THREAD_LOCAL thread_local + #elif defined(__GNUC__) && __GNUC__ < 5 + #define STBI_THREAD_LOCAL __thread + #elif defined(_MSC_VER) + #define STBI_THREAD_LOCAL __declspec(thread) + #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 201112L && !defined(__STDC_NO_THREADS__) + #define STBI_THREAD_LOCAL _Thread_local + #endif + + #ifndef STBI_THREAD_LOCAL + #if defined(__GNUC__) + #define STBI_THREAD_LOCAL __thread + #endif + #endif +#endif + +#if defined(_MSC_VER) || defined(__SYMBIAN32__) +typedef unsigned short stbi__uint16; +typedef signed short stbi__int16; +typedef unsigned int stbi__uint32; +typedef signed int stbi__int32; +#else +#include +typedef uint16_t stbi__uint16; +typedef int16_t stbi__int16; +typedef uint32_t stbi__uint32; +typedef int32_t stbi__int32; +#endif + +// should produce compiler error if size is wrong +typedef unsigned char validate_uint32[sizeof(stbi__uint32)==4 ? 1 : -1]; + +#ifdef _MSC_VER +#define STBI_NOTUSED(v) (void)(v) +#else +#define STBI_NOTUSED(v) (void)sizeof(v) +#endif + +#ifdef _MSC_VER +#define STBI_HAS_LROTL +#endif + +#ifdef STBI_HAS_LROTL + #define stbi_lrot(x,y) _lrotl(x,y) +#else + #define stbi_lrot(x,y) (((x) << (y)) | ((x) >> (-(y) & 31))) +#endif + +#if defined(STBI_MALLOC) && defined(STBI_FREE) && (defined(STBI_REALLOC) || defined(STBI_REALLOC_SIZED)) +// ok +#elif !defined(STBI_MALLOC) && !defined(STBI_FREE) && !defined(STBI_REALLOC) && !defined(STBI_REALLOC_SIZED) +// ok +#else +#error "Must define all or none of STBI_MALLOC, STBI_FREE, and STBI_REALLOC (or STBI_REALLOC_SIZED)." +#endif + +#ifndef STBI_MALLOC +#define STBI_MALLOC(sz) malloc(sz) +#define STBI_REALLOC(p,newsz) realloc(p,newsz) +#define STBI_FREE(p) free(p) +#endif + +#ifndef STBI_REALLOC_SIZED +#define STBI_REALLOC_SIZED(p,oldsz,newsz) STBI_REALLOC(p,newsz) +#endif + +// x86/x64 detection +#if defined(__x86_64__) || defined(_M_X64) +#define STBI__X64_TARGET +#elif defined(__i386) || defined(_M_IX86) +#define STBI__X86_TARGET +#endif + +#if defined(__GNUC__) && defined(STBI__X86_TARGET) && !defined(__SSE2__) && !defined(STBI_NO_SIMD) +// gcc doesn't support sse2 intrinsics unless you compile with -msse2, +// which in turn means it gets to use SSE2 everywhere. This is unfortunate, +// but previous attempts to provide the SSE2 functions with runtime +// detection caused numerous issues. The way architecture extensions are +// exposed in GCC/Clang is, sadly, not really suited for one-file libs. +// New behavior: if compiled with -msse2, we use SSE2 without any +// detection; if not, we don't use it at all. +#define STBI_NO_SIMD +#endif + +#if defined(__MINGW32__) && defined(STBI__X86_TARGET) && !defined(STBI_MINGW_ENABLE_SSE2) && !defined(STBI_NO_SIMD) +// Note that __MINGW32__ doesn't actually mean 32-bit, so we have to avoid STBI__X64_TARGET +// +// 32-bit MinGW wants ESP to be 16-byte aligned, but this is not in the +// Windows ABI and VC++ as well as Windows DLLs don't maintain that invariant. +// As a result, enabling SSE2 on 32-bit MinGW is dangerous when not +// simultaneously enabling "-mstackrealign". +// +// See https://github.com/nothings/stb/issues/81 for more information. +// +// So default to no SSE2 on 32-bit MinGW. If you've read this far and added +// -mstackrealign to your build settings, feel free to #define STBI_MINGW_ENABLE_SSE2. +#define STBI_NO_SIMD +#endif + +#if !defined(STBI_NO_SIMD) && (defined(STBI__X86_TARGET) || defined(STBI__X64_TARGET)) +#define STBI_SSE2 +#include + +#ifdef _MSC_VER + +#if _MSC_VER >= 1400 // not VC6 +#include // __cpuid +static int stbi__cpuid3(void) +{ + int info[4]; + __cpuid(info,1); + return info[3]; +} +#else +static int stbi__cpuid3(void) +{ + int res; + __asm { + mov eax,1 + cpuid + mov res,edx + } + return res; +} +#endif + +#define STBI_SIMD_ALIGN(type, name) __declspec(align(16)) type name + +#if !defined(STBI_NO_JPEG) && defined(STBI_SSE2) +static int stbi__sse2_available(void) +{ + int info3 = stbi__cpuid3(); + return ((info3 >> 26) & 1) != 0; +} +#endif + +#else // assume GCC-style if not VC++ +#define STBI_SIMD_ALIGN(type, name) type name __attribute__((aligned(16))) + +#if !defined(STBI_NO_JPEG) && defined(STBI_SSE2) +static int stbi__sse2_available(void) +{ + // If we're even attempting to compile this on GCC/Clang, that means + // -msse2 is on, which means the compiler is allowed to use SSE2 + // instructions at will, and so are we. + return 1; +} +#endif + +#endif +#endif + +// ARM NEON +#if defined(STBI_NO_SIMD) && defined(STBI_NEON) +#undef STBI_NEON +#endif + +#ifdef STBI_NEON +#include +#ifdef _MSC_VER +#define STBI_SIMD_ALIGN(type, name) __declspec(align(16)) type name +#else +#define STBI_SIMD_ALIGN(type, name) type name __attribute__((aligned(16))) +#endif +#endif + +#ifndef STBI_SIMD_ALIGN +#define STBI_SIMD_ALIGN(type, name) type name +#endif + +#ifndef STBI_MAX_DIMENSIONS +#define STBI_MAX_DIMENSIONS (1 << 24) +#endif + +/////////////////////////////////////////////// +// +// stbi__context struct and start_xxx functions + +// stbi__context structure is our basic context used by all images, so it +// contains all the IO context, plus some basic image information +typedef struct +{ + stbi__uint32 img_x, img_y; + int img_n, img_out_n; + + stbi_io_callbacks io; + void *io_user_data; + + int read_from_callbacks; + int buflen; + stbi_uc buffer_start[128]; + int callback_already_read; + + stbi_uc *img_buffer, *img_buffer_end; + stbi_uc *img_buffer_original, *img_buffer_original_end; +} stbi__context; + + +static void stbi__refill_buffer(stbi__context *s); + +// initialize a memory-decode context +static void stbi__start_mem(stbi__context *s, stbi_uc const *buffer, int len) +{ + s->io.read = NULL; + s->read_from_callbacks = 0; + s->callback_already_read = 0; + s->img_buffer = s->img_buffer_original = (stbi_uc *) buffer; + s->img_buffer_end = s->img_buffer_original_end = (stbi_uc *) buffer+len; +} + +// initialize a callback-based context +static void stbi__start_callbacks(stbi__context *s, stbi_io_callbacks *c, void *user) +{ + s->io = *c; + s->io_user_data = user; + s->buflen = sizeof(s->buffer_start); + s->read_from_callbacks = 1; + s->callback_already_read = 0; + s->img_buffer = s->img_buffer_original = s->buffer_start; + stbi__refill_buffer(s); + s->img_buffer_original_end = s->img_buffer_end; +} + +#ifndef STBI_NO_STDIO + +static int stbi__stdio_read(void *user, char *data, int size) +{ + return (int) fread(data,1,size,(FILE*) user); +} + +static void stbi__stdio_skip(void *user, int n) +{ + int ch; + fseek((FILE*) user, n, SEEK_CUR); + ch = fgetc((FILE*) user); /* have to read a byte to reset feof()'s flag */ + if (ch != EOF) { + ungetc(ch, (FILE *) user); /* push byte back onto stream if valid. */ + } +} + +static int stbi__stdio_eof(void *user) +{ + return feof((FILE*) user) || ferror((FILE *) user); +} + +static stbi_io_callbacks stbi__stdio_callbacks = +{ + stbi__stdio_read, + stbi__stdio_skip, + stbi__stdio_eof, +}; + +static void stbi__start_file(stbi__context *s, FILE *f) +{ + stbi__start_callbacks(s, &stbi__stdio_callbacks, (void *) f); +} + +//static void stop_file(stbi__context *s) { } + +#endif // !STBI_NO_STDIO + +static void stbi__rewind(stbi__context *s) +{ + // conceptually rewind SHOULD rewind to the beginning of the stream, + // but we just rewind to the beginning of the initial buffer, because + // we only use it after doing 'test', which only ever looks at at most 92 bytes + s->img_buffer = s->img_buffer_original; + s->img_buffer_end = s->img_buffer_original_end; +} + +enum +{ + STBI_ORDER_RGB, + STBI_ORDER_BGR +}; + +typedef struct +{ + int bits_per_channel; + int num_channels; + int channel_order; +} stbi__result_info; + +#ifndef STBI_NO_JPEG +static int stbi__jpeg_test(stbi__context *s); +static void *stbi__jpeg_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri); +static int stbi__jpeg_info(stbi__context *s, int *x, int *y, int *comp); +#endif + +#ifndef STBI_NO_PNG +static int stbi__png_test(stbi__context *s); +static void *stbi__png_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri); +static int stbi__png_info(stbi__context *s, int *x, int *y, int *comp); +static int stbi__png_is16(stbi__context *s); +#endif + +#ifndef STBI_NO_BMP +static int stbi__bmp_test(stbi__context *s); +static void *stbi__bmp_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri); +static int stbi__bmp_info(stbi__context *s, int *x, int *y, int *comp); +#endif + +#ifndef STBI_NO_TGA +static int stbi__tga_test(stbi__context *s); +static void *stbi__tga_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri); +static int stbi__tga_info(stbi__context *s, int *x, int *y, int *comp); +#endif + +#ifndef STBI_NO_PSD +static int stbi__psd_test(stbi__context *s); +static void *stbi__psd_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri, int bpc); +static int stbi__psd_info(stbi__context *s, int *x, int *y, int *comp); +static int stbi__psd_is16(stbi__context *s); +#endif + +#ifndef STBI_NO_HDR +static int stbi__hdr_test(stbi__context *s); +static float *stbi__hdr_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri); +static int stbi__hdr_info(stbi__context *s, int *x, int *y, int *comp); +#endif + +#ifndef STBI_NO_PIC +static int stbi__pic_test(stbi__context *s); +static void *stbi__pic_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri); +static int stbi__pic_info(stbi__context *s, int *x, int *y, int *comp); +#endif + +#ifndef STBI_NO_GIF +static int stbi__gif_test(stbi__context *s); +static void *stbi__gif_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri); +static void *stbi__load_gif_main(stbi__context *s, int **delays, int *x, int *y, int *z, int *comp, int req_comp); +static int stbi__gif_info(stbi__context *s, int *x, int *y, int *comp); +#endif + +#ifndef STBI_NO_PNM +static int stbi__pnm_test(stbi__context *s); +static void *stbi__pnm_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri); +static int stbi__pnm_info(stbi__context *s, int *x, int *y, int *comp); +static int stbi__pnm_is16(stbi__context *s); +#endif + +static +#ifdef STBI_THREAD_LOCAL +STBI_THREAD_LOCAL +#endif +const char *stbi__g_failure_reason; + +STBIDEF const char *stbi_failure_reason(void) +{ + return stbi__g_failure_reason; +} + +#ifndef STBI_NO_FAILURE_STRINGS +static int stbi__err(const char *str) +{ + stbi__g_failure_reason = str; + return 0; +} +#endif + +static void *stbi__malloc(size_t size) +{ + return STBI_MALLOC(size); +} + +// stb_image uses ints pervasively, including for offset calculations. +// therefore the largest decoded image size we can support with the +// current code, even on 64-bit targets, is INT_MAX. this is not a +// significant limitation for the intended use case. +// +// we do, however, need to make sure our size calculations don't +// overflow. hence a few helper functions for size calculations that +// multiply integers together, making sure that they're non-negative +// and no overflow occurs. + +// return 1 if the sum is valid, 0 on overflow. +// negative terms are considered invalid. +static int stbi__addsizes_valid(int a, int b) +{ + if (b < 0){ return 0; +} + // now 0 <= b <= INT_MAX, hence also + // 0 <= INT_MAX - b <= INTMAX. + // And "a + b <= INT_MAX" (which might overflow) is the + // same as a <= INT_MAX - b (no overflow) + return a <= INT_MAX - b; +} + +// returns 1 if the product is valid, 0 on overflow. +// negative factors are considered invalid. +static int stbi__mul2sizes_valid(int a, int b) +{ + if (a < 0 || b < 0){ return 0; +} + if (b == 0){ return 1; // mul-by-0 is always safe +} + // portable way to check for no overflows in a*b + return a <= INT_MAX/b; +} + +#if !defined(STBI_NO_JPEG) || !defined(STBI_NO_PNG) || !defined(STBI_NO_TGA) || !defined(STBI_NO_HDR) +// returns 1 if "a*b + add" has no negative terms/factors and doesn't overflow +static int stbi__mad2sizes_valid(int a, int b, int add) +{ + return stbi__mul2sizes_valid(a, b) && stbi__addsizes_valid(a*b, add); +} +#endif + +// returns 1 if "a*b*c + add" has no negative terms/factors and doesn't overflow +static int stbi__mad3sizes_valid(int a, int b, int c, int add) +{ + return stbi__mul2sizes_valid(a, b) && stbi__mul2sizes_valid(a*b, c) && + stbi__addsizes_valid(a*b*c, add); +} + +// returns 1 if "a*b*c*d + add" has no negative terms/factors and doesn't overflow +#if !defined(STBI_NO_LINEAR) || !defined(STBI_NO_HDR) || !defined(STBI_NO_PNM) +static int stbi__mad4sizes_valid(int a, int b, int c, int d, int add) +{ + return stbi__mul2sizes_valid(a, b) && stbi__mul2sizes_valid(a*b, c) && + stbi__mul2sizes_valid(a*b*c, d) && stbi__addsizes_valid(a*b*c*d, add); +} +#endif + +#if !defined(STBI_NO_JPEG) || !defined(STBI_NO_PNG) || !defined(STBI_NO_TGA) || !defined(STBI_NO_HDR) +// mallocs with size overflow checking +static void *stbi__malloc_mad2(int a, int b, int add) +{ + if (!stbi__mad2sizes_valid(a, b, add)){ return NULL; +} + return stbi__malloc(a*b + add); +} +#endif + +static void *stbi__malloc_mad3(int a, int b, int c, int add) +{ + if (!stbi__mad3sizes_valid(a, b, c, add)){ return NULL; +} + return stbi__malloc(a*b*c + add); +} + +#if !defined(STBI_NO_LINEAR) || !defined(STBI_NO_HDR) || !defined(STBI_NO_PNM) +static void *stbi__malloc_mad4(int a, int b, int c, int d, int add) +{ + if (!stbi__mad4sizes_valid(a, b, c, d, add)){ return NULL; +} + return stbi__malloc(a*b*c*d + add); +} +#endif + +// returns 1 if the sum of two signed ints is valid (between -2^31 and 2^31-1 inclusive), 0 on overflow. +static int stbi__addints_valid(int a, int b) +{ + if ((a >= 0) != (b >= 0)){ return 1; // a and b have different signs, so no overflow +} + if (a < 0 && b < 0){ return a >= INT_MIN - b; // same as a + b >= INT_MIN; INT_MIN - b cannot overflow since b < 0. +} + return a <= INT_MAX - b; +} + +// returns 1 if the product of two ints fits in a signed short, 0 on overflow. +static int stbi__mul2shorts_valid(int a, int b) +{ + if (b == 0 || b == -1){ return 1; // multiplication by 0 is always 0; check for -1 so SHRT_MIN/b doesn't overflow +} + if ((a >= 0) == (b >= 0)){ return a <= SHRT_MAX/b; // product is positive, so similar to mul2sizes_valid +} + if (b < 0){ return a <= SHRT_MIN / b; // same as a * b >= SHRT_MIN +} + return a >= SHRT_MIN / b; +} + +// stbi__err - error +// stbi__errpf - error returning pointer to float +// stbi__errpuc - error returning pointer to unsigned char + +#ifdef STBI_NO_FAILURE_STRINGS + #define stbi__err(x,y) 0 +#elif defined(STBI_FAILURE_USERMSG) + #define stbi__err(x,y) stbi__err(y) +#else + #define stbi__err(x,y) stbi__err(x) +#endif + +#define stbi__errpf(x,y) ((float *)(size_t) (stbi__err(x,y)?NULL:NULL)) +#define stbi__errpuc(x,y) ((unsigned char *)(size_t) (stbi__err(x,y)?NULL:NULL)) + +STBIDEF void stbi_image_free(void *retval_from_stbi_load) +{ + STBI_FREE(retval_from_stbi_load); +} + +#ifndef STBI_NO_LINEAR +static float *stbi__ldr_to_hdr(stbi_uc *data, int x, int y, int comp); +#endif + +#ifndef STBI_NO_HDR +static stbi_uc *stbi__hdr_to_ldr(float *data, int x, int y, int comp); +#endif + +static int stbi__vertically_flip_on_load_global = 0; + +STBIDEF void stbi_set_flip_vertically_on_load(int flag_true_if_should_flip) +{ + stbi__vertically_flip_on_load_global = flag_true_if_should_flip; +} + +#ifndef STBI_THREAD_LOCAL +#define stbi__vertically_flip_on_load stbi__vertically_flip_on_load_global +#else +static STBI_THREAD_LOCAL int stbi__vertically_flip_on_load_local, stbi__vertically_flip_on_load_set; + +STBIDEF void stbi_set_flip_vertically_on_load_thread(int flag_true_if_should_flip) +{ + stbi__vertically_flip_on_load_local = flag_true_if_should_flip; + stbi__vertically_flip_on_load_set = 1; +} + +#define stbi__vertically_flip_on_load (stbi__vertically_flip_on_load_set \ + ? stbi__vertically_flip_on_load_local \ + : stbi__vertically_flip_on_load_global) +#endif // STBI_THREAD_LOCAL + +static void *stbi__load_main(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri, int bpc) +{ + memset(ri, 0, sizeof(*ri)); // make sure it's initialized if we add new fields + ri->bits_per_channel = 8; // default is 8 so most paths don't have to be changed + ri->channel_order = STBI_ORDER_RGB; // all current input & output are this, but this is here so we can add BGR order + ri->num_channels = 0; + + // test the formats with a very explicit header first (at least a FOURCC + // or distinctive magic number first) + #ifndef STBI_NO_PNG + if (stbi__png_test(s)){ return stbi__png_load(s,x,y,comp,req_comp, ri); +} + #endif + #ifndef STBI_NO_BMP + if (stbi__bmp_test(s)){ return stbi__bmp_load(s,x,y,comp,req_comp, ri); +} + #endif + #ifndef STBI_NO_GIF + if (stbi__gif_test(s)){ return stbi__gif_load(s,x,y,comp,req_comp, ri); +} + #endif + #ifndef STBI_NO_PSD + if (stbi__psd_test(s)){ return stbi__psd_load(s,x,y,comp,req_comp, ri, bpc); +} + #else + STBI_NOTUSED(bpc); + #endif + #ifndef STBI_NO_PIC + if (stbi__pic_test(s)){ return stbi__pic_load(s,x,y,comp,req_comp, ri); +} + #endif + + // then the formats that can end up attempting to load with just 1 or 2 + // bytes matching expectations; these are prone to false positives, so + // try them later + #ifndef STBI_NO_JPEG + if (stbi__jpeg_test(s)){ return stbi__jpeg_load(s,x,y,comp,req_comp, ri); +} + #endif + #ifndef STBI_NO_PNM + if (stbi__pnm_test(s)){ return stbi__pnm_load(s,x,y,comp,req_comp, ri); +} + #endif + + #ifndef STBI_NO_HDR + if (stbi__hdr_test(s)) { + float *hdr = stbi__hdr_load(s, x,y,comp,req_comp, ri); + return stbi__hdr_to_ldr(hdr, *x, *y, req_comp ? req_comp : *comp); + } + #endif + + #ifndef STBI_NO_TGA + // test tga last because it's a crappy test! + if (stbi__tga_test(s)){ + return stbi__tga_load(s,x,y,comp,req_comp, ri); +} + #endif + + return stbi__errpuc("unknown image type", "Image not of any known type, or corrupt"); +} + +static stbi_uc *stbi__convert_16_to_8(stbi__uint16 *orig, int w, int h, int channels) +{ + int i; + int img_len = w * h * channels; + stbi_uc *reduced; + + reduced = (stbi_uc *) stbi__malloc(img_len); + if (reduced == NULL){ return stbi__errpuc("outofmem", "Out of memory"); +} + + for (i = 0; i < img_len; ++i){ + reduced[i] = (stbi_uc)((orig[i] >> 8) & 0xFF); // top half of each byte is sufficient approx of 16->8 bit scaling +} + + STBI_FREE(orig); + return reduced; +} + +static stbi__uint16 *stbi__convert_8_to_16(stbi_uc *orig, int w, int h, int channels) +{ + int i; + int img_len = w * h * channels; + stbi__uint16 *enlarged; + + enlarged = (stbi__uint16 *) stbi__malloc(img_len*2); + if (enlarged == NULL){ return (stbi__uint16 *) stbi__errpuc("outofmem", "Out of memory"); +} + + for (i = 0; i < img_len; ++i){ + enlarged[i] = (stbi__uint16)((orig[i] << 8) + orig[i]); // replicate to high and low byte, maps 0->0, 255->0xffff +} + + STBI_FREE(orig); + return enlarged; +} + +static void stbi__vertical_flip(void *image, int w, int h, int bytes_per_pixel) +{ + int row; + size_t bytes_per_row = (size_t)w * bytes_per_pixel; + stbi_uc temp[2048]; + stbi_uc *bytes = (stbi_uc *)image; + + for (row = 0; row < (h>>1); row++) { + stbi_uc *row0 = bytes + row*bytes_per_row; + stbi_uc *row1 = bytes + (h - row - 1)*bytes_per_row; + // swap row0 with row1 + size_t bytes_left = bytes_per_row; + while (bytes_left) { + size_t bytes_copy = (bytes_left < sizeof(temp)) ? bytes_left : sizeof(temp); + memcpy(temp, row0, bytes_copy); + memcpy(row0, row1, bytes_copy); + memcpy(row1, temp, bytes_copy); + row0 += bytes_copy; + row1 += bytes_copy; + bytes_left -= bytes_copy; + } + } +} + +#ifndef STBI_NO_GIF +static void stbi__vertical_flip_slices(void *image, int w, int h, int z, int bytes_per_pixel) +{ + int slice; + int slice_size = w * h * bytes_per_pixel; + + stbi_uc *bytes = (stbi_uc *)image; + for (slice = 0; slice < z; ++slice) { + stbi__vertical_flip(bytes, w, h, bytes_per_pixel); + bytes += slice_size; + } +} +#endif + +static unsigned char *stbi__load_and_postprocess_8bit(stbi__context *s, int *x, int *y, int *comp, int req_comp) +{ + stbi__result_info ri; + void *result = stbi__load_main(s, x, y, comp, req_comp, &ri, 8); + + if (result == NULL){ + return NULL; +} + + // it is the responsibility of the loaders to make sure we get either 8 or 16 bit. + STBI_ASSERT(ri.bits_per_channel == 8 || ri.bits_per_channel == 16); + + if (ri.bits_per_channel != 8) { + result = stbi__convert_16_to_8((stbi__uint16 *) result, *x, *y, req_comp == 0 ? *comp : req_comp); + ri.bits_per_channel = 8; + } + + // @TODO: move stbi__convert_format to here + + if (stbi__vertically_flip_on_load) { + int channels = req_comp ? req_comp : *comp; + stbi__vertical_flip(result, *x, *y, channels * sizeof(stbi_uc)); + } + + return (unsigned char *) result; +} + +static stbi__uint16 *stbi__load_and_postprocess_16bit(stbi__context *s, int *x, int *y, int *comp, int req_comp) +{ + stbi__result_info ri; + void *result = stbi__load_main(s, x, y, comp, req_comp, &ri, 16); + + if (result == NULL){ + return NULL; +} + + // it is the responsibility of the loaders to make sure we get either 8 or 16 bit. + STBI_ASSERT(ri.bits_per_channel == 8 || ri.bits_per_channel == 16); + + if (ri.bits_per_channel != 16) { + result = stbi__convert_8_to_16((stbi_uc *) result, *x, *y, req_comp == 0 ? *comp : req_comp); + ri.bits_per_channel = 16; + } + + // @TODO: move stbi__convert_format16 to here + // @TODO: special case RGB-to-Y (and RGBA-to-YA) for 8-bit-to-16-bit case to keep more precision + + if (stbi__vertically_flip_on_load) { + int channels = req_comp ? req_comp : *comp; + stbi__vertical_flip(result, *x, *y, channels * sizeof(stbi__uint16)); + } + + return (stbi__uint16 *) result; +} + +#if !defined(STBI_NO_HDR) && !defined(STBI_NO_LINEAR) +static void stbi__float_postprocess(float *result, int *x, int *y, int *comp, int req_comp) +{ + if (stbi__vertically_flip_on_load && result != NULL) { + int channels = req_comp ? req_comp : *comp; + stbi__vertical_flip(result, *x, *y, channels * sizeof(float)); + } +} +#endif + +#ifndef STBI_NO_STDIO + +#if defined(_WIN32) && defined(STBI_WINDOWS_UTF8) +STBI_EXTERN __declspec(dllimport) int __stdcall MultiByteToWideChar(unsigned int cp, unsigned long flags, const char *str, int cbmb, wchar_t *widestr, int cchwide); +STBI_EXTERN __declspec(dllimport) int __stdcall WideCharToMultiByte(unsigned int cp, unsigned long flags, const wchar_t *widestr, int cchwide, char *str, int cbmb, const char *defchar, int *used_default); +#endif + +#if defined(_WIN32) && defined(STBI_WINDOWS_UTF8) +STBIDEF int stbi_convert_wchar_to_utf8(char *buffer, size_t bufferlen, const wchar_t* input) +{ + return WideCharToMultiByte(65001 /* UTF8 */, 0, input, -1, buffer, (int) bufferlen, NULL, NULL); +} +#endif + +static FILE *stbi__fopen(char const *filename, char const *mode) +{ + FILE *f; +#if defined(_WIN32) && defined(STBI_WINDOWS_UTF8) + wchar_t wMode[64]; + wchar_t wFilename[1024]; + if (0 == MultiByteToWideChar(65001 /* UTF8 */, 0, filename, -1, wFilename, sizeof(wFilename)/sizeof(*wFilename))){ + return 0; +} + + if (0 == MultiByteToWideChar(65001 /* UTF8 */, 0, mode, -1, wMode, sizeof(wMode)/sizeof(*wMode))){ + return 0; +} + +#if defined(_MSC_VER) && _MSC_VER >= 1400 + if (0 != _wfopen_s(&f, wFilename, wMode)){ + f = 0; +} +#else + f = _wfopen(wFilename, wMode); +#endif + +#elif defined(_MSC_VER) && _MSC_VER >= 1400 + if (0 != fopen_s(&f, filename, mode)){ + f=0; +} +#else + f = fopen(filename, mode); +#endif + return f; +} + + +STBIDEF stbi_uc *stbi_load(char const *filename, int *x, int *y, int *comp, int req_comp) +{ + FILE *f = stbi__fopen(filename, "rb"); + unsigned char *result; + if (!f){ return stbi__errpuc("can't fopen", "Unable to open file"); +} + result = stbi_load_from_file(f,x,y,comp,req_comp); + fclose(f); + return result; +} + +STBIDEF stbi_uc *stbi_load_from_file(FILE *f, int *x, int *y, int *comp, int req_comp) +{ + unsigned char *result; + stbi__context s; + stbi__start_file(&s,f); + result = stbi__load_and_postprocess_8bit(&s,x,y,comp,req_comp); + if (result) { + // need to 'unget' all the characters in the IO buffer + fseek(f, - (int) (s.img_buffer_end - s.img_buffer), SEEK_CUR); + } + return result; +} + +STBIDEF stbi__uint16 *stbi_load_from_file_16(FILE *f, int *x, int *y, int *comp, int req_comp) +{ + stbi__uint16 *result; + stbi__context s; + stbi__start_file(&s,f); + result = stbi__load_and_postprocess_16bit(&s,x,y,comp,req_comp); + if (result) { + // need to 'unget' all the characters in the IO buffer + fseek(f, - (int) (s.img_buffer_end - s.img_buffer), SEEK_CUR); + } + return result; +} + +STBIDEF stbi_us *stbi_load_16(char const *filename, int *x, int *y, int *comp, int req_comp) +{ + FILE *f = stbi__fopen(filename, "rb"); + stbi__uint16 *result; + if (!f){ return (stbi_us *) stbi__errpuc("can't fopen", "Unable to open file"); +} + result = stbi_load_from_file_16(f,x,y,comp,req_comp); + fclose(f); + return result; +} + + +#endif //!STBI_NO_STDIO + +STBIDEF stbi_us *stbi_load_16_from_memory(stbi_uc const *buffer, int len, int *x, int *y, int *channels_in_file, int desired_channels) +{ + stbi__context s; + stbi__start_mem(&s,buffer,len); + return stbi__load_and_postprocess_16bit(&s,x,y,channels_in_file,desired_channels); +} + +STBIDEF stbi_us *stbi_load_16_from_callbacks(stbi_io_callbacks const *clbk, void *user, int *x, int *y, int *channels_in_file, int desired_channels) +{ + stbi__context s; + stbi__start_callbacks(&s, (stbi_io_callbacks *)clbk, user); + return stbi__load_and_postprocess_16bit(&s,x,y,channels_in_file,desired_channels); +} + +STBIDEF stbi_uc *stbi_load_from_memory(stbi_uc const *buffer, int len, int *x, int *y, int *comp, int req_comp) +{ + stbi__context s; + stbi__start_mem(&s,buffer,len); + return stbi__load_and_postprocess_8bit(&s,x,y,comp,req_comp); +} + +STBIDEF stbi_uc *stbi_load_from_callbacks(stbi_io_callbacks const *clbk, void *user, int *x, int *y, int *comp, int req_comp) +{ + stbi__context s; + stbi__start_callbacks(&s, (stbi_io_callbacks *) clbk, user); + return stbi__load_and_postprocess_8bit(&s,x,y,comp,req_comp); +} + +#ifndef STBI_NO_GIF +STBIDEF stbi_uc *stbi_load_gif_from_memory(stbi_uc const *buffer, int len, int **delays, int *x, int *y, int *z, int *comp, int req_comp) +{ + unsigned char *result; + stbi__context s; + stbi__start_mem(&s,buffer,len); + + result = (unsigned char*) stbi__load_gif_main(&s, delays, x, y, z, comp, req_comp); + if (stbi__vertically_flip_on_load) { + stbi__vertical_flip_slices( result, *x, *y, *z, *comp ); + } + + return result; +} +#endif + +#ifndef STBI_NO_LINEAR +static float *stbi__loadf_main(stbi__context *s, int *x, int *y, int *comp, int req_comp) +{ + unsigned char *data; + #ifndef STBI_NO_HDR + if (stbi__hdr_test(s)) { + stbi__result_info ri; + float *hdr_data = stbi__hdr_load(s,x,y,comp,req_comp, &ri); + if (hdr_data){ + stbi__float_postprocess(hdr_data,x,y,comp,req_comp); +} + return hdr_data; + } + #endif + data = stbi__load_and_postprocess_8bit(s, x, y, comp, req_comp); + if (data){ + return stbi__ldr_to_hdr(data, *x, *y, req_comp ? req_comp : *comp); +} + return stbi__errpf("unknown image type", "Image not of any known type, or corrupt"); +} + +STBIDEF float *stbi_loadf_from_memory(stbi_uc const *buffer, int len, int *x, int *y, int *comp, int req_comp) +{ + stbi__context s; + stbi__start_mem(&s,buffer,len); + return stbi__loadf_main(&s,x,y,comp,req_comp); +} + +STBIDEF float *stbi_loadf_from_callbacks(stbi_io_callbacks const *clbk, void *user, int *x, int *y, int *comp, int req_comp) +{ + stbi__context s; + stbi__start_callbacks(&s, (stbi_io_callbacks *) clbk, user); + return stbi__loadf_main(&s,x,y,comp,req_comp); +} + +#ifndef STBI_NO_STDIO +STBIDEF float *stbi_loadf(char const *filename, int *x, int *y, int *comp, int req_comp) +{ + float *result; + FILE *f = stbi__fopen(filename, "rb"); + if (!f){ return stbi__errpf("can't fopen", "Unable to open file"); +} + result = stbi_loadf_from_file(f,x,y,comp,req_comp); + fclose(f); + return result; +} + +STBIDEF float *stbi_loadf_from_file(FILE *f, int *x, int *y, int *comp, int req_comp) +{ + stbi__context s; + stbi__start_file(&s,f); + return stbi__loadf_main(&s,x,y,comp,req_comp); +} +#endif // !STBI_NO_STDIO + +#endif // !STBI_NO_LINEAR + +// these is-hdr-or-not is defined independent of whether STBI_NO_LINEAR is +// defined, for API simplicity; if STBI_NO_LINEAR is defined, it always +// reports false! + +STBIDEF int stbi_is_hdr_from_memory(stbi_uc const *buffer, int len) +{ + #ifndef STBI_NO_HDR + stbi__context s; + stbi__start_mem(&s,buffer,len); + return stbi__hdr_test(&s); + #else + STBI_NOTUSED(buffer); + STBI_NOTUSED(len); + return 0; + #endif +} + +#ifndef STBI_NO_STDIO +STBIDEF int stbi_is_hdr (char const *filename) +{ + FILE *f = stbi__fopen(filename, "rb"); + int result=0; + if (f) { + result = stbi_is_hdr_from_file(f); + fclose(f); + } + return result; +} + +STBIDEF int stbi_is_hdr_from_file(FILE *f) +{ + #ifndef STBI_NO_HDR + long pos = ftell(f); + int res; + stbi__context s; + stbi__start_file(&s,f); + res = stbi__hdr_test(&s); + fseek(f, pos, SEEK_SET); + return res; + #else + STBI_NOTUSED(f); + return 0; + #endif +} +#endif // !STBI_NO_STDIO + +STBIDEF int stbi_is_hdr_from_callbacks(stbi_io_callbacks const *clbk, void *user) +{ + #ifndef STBI_NO_HDR + stbi__context s; + stbi__start_callbacks(&s, (stbi_io_callbacks *) clbk, user); + return stbi__hdr_test(&s); + #else + STBI_NOTUSED(clbk); + STBI_NOTUSED(user); + return 0; + #endif +} + +#ifndef STBI_NO_LINEAR +static float stbi__l2h_gamma=2.2f, stbi__l2h_scale=1.0f; + +STBIDEF void stbi_ldr_to_hdr_gamma(float gamma) { stbi__l2h_gamma = gamma; } +STBIDEF void stbi_ldr_to_hdr_scale(float scale) { stbi__l2h_scale = scale; } +#endif + +static float stbi__h2l_gamma_i=1.0f/2.2f, stbi__h2l_scale_i=1.0f; + +STBIDEF void stbi_hdr_to_ldr_gamma(float gamma) { stbi__h2l_gamma_i = 1/gamma; } +STBIDEF void stbi_hdr_to_ldr_scale(float scale) { stbi__h2l_scale_i = 1/scale; } + + +////////////////////////////////////////////////////////////////////////////// +// +// Common code used by all image loaders +// + +enum +{ + STBI__SCAN_load=0, + STBI__SCAN_type, + STBI__SCAN_header +}; + +static void stbi__refill_buffer(stbi__context *s) +{ + int n = (s->io.read)(s->io_user_data,(char*)s->buffer_start,s->buflen); + s->callback_already_read += (int) (s->img_buffer - s->img_buffer_original); + if (n == 0) { + // at end of file, treat same as if from memory, but need to handle case + // where s->img_buffer isn't pointing to safe memory, e.g. 0-byte file + s->read_from_callbacks = 0; + s->img_buffer = s->buffer_start; + s->img_buffer_end = s->buffer_start+1; + *s->img_buffer = 0; + } else { + s->img_buffer = s->buffer_start; + s->img_buffer_end = s->buffer_start + n; + } +} + +stbi_inline static stbi_uc stbi__get8(stbi__context *s) +{ + if (s->img_buffer < s->img_buffer_end){ + return *s->img_buffer++; +} + if (s->read_from_callbacks) { + stbi__refill_buffer(s); + return *s->img_buffer++; + } + return 0; +} + +#if defined(STBI_NO_JPEG) && defined(STBI_NO_HDR) && defined(STBI_NO_PIC) && defined(STBI_NO_PNM) +// nothing +#else +stbi_inline static int stbi__at_eof(stbi__context *s) +{ + if (s->io.read) { + if (!(s->io.eof)(s->io_user_data)){ return 0; +} + // if feof() is true, check if buffer = end + // special case: we've only got the special 0 character at the end + if (s->read_from_callbacks == 0){ return 1; +} + } + + return s->img_buffer >= s->img_buffer_end; +} +#endif + +#if defined(STBI_NO_JPEG) && defined(STBI_NO_PNG) && defined(STBI_NO_BMP) && defined(STBI_NO_PSD) && defined(STBI_NO_TGA) && defined(STBI_NO_GIF) && defined(STBI_NO_PIC) +// nothing +#else +static void stbi__skip(stbi__context *s, int n) +{ + if (n == 0){ return; // already there! +} + if (n < 0) { + s->img_buffer = s->img_buffer_end; + return; + } + if (s->io.read) { + int blen = (int) (s->img_buffer_end - s->img_buffer); + if (blen < n) { + s->img_buffer = s->img_buffer_end; + (s->io.skip)(s->io_user_data, n - blen); + return; + } + } + s->img_buffer += n; +} +#endif + +#if defined(STBI_NO_PNG) && defined(STBI_NO_TGA) && defined(STBI_NO_HDR) && defined(STBI_NO_PNM) +// nothing +#else +static int stbi__getn(stbi__context *s, stbi_uc *buffer, int n) +{ + if (s->io.read) { + int blen = (int) (s->img_buffer_end - s->img_buffer); + if (blen < n) { + int res, count; + + memcpy(buffer, s->img_buffer, blen); + + count = (s->io.read)(s->io_user_data, (char*) buffer + blen, n - blen); + res = (count == (n-blen)); + s->img_buffer = s->img_buffer_end; + return res; + } + } + + if (s->img_buffer+n <= s->img_buffer_end) { + memcpy(buffer, s->img_buffer, n); + s->img_buffer += n; + return 1; + } else{ + return 0; +} +} +#endif + +#if defined(STBI_NO_JPEG) && defined(STBI_NO_PNG) && defined(STBI_NO_PSD) && defined(STBI_NO_PIC) +// nothing +#else +static int stbi__get16be(stbi__context *s) +{ + int z = stbi__get8(s); + return (z << 8) + stbi__get8(s); +} +#endif + +#if defined(STBI_NO_PNG) && defined(STBI_NO_PSD) && defined(STBI_NO_PIC) +// nothing +#else +static stbi__uint32 stbi__get32be(stbi__context *s) +{ + stbi__uint32 z = stbi__get16be(s); + return (z << 16) + stbi__get16be(s); +} +#endif + +#if defined(STBI_NO_BMP) && defined(STBI_NO_TGA) && defined(STBI_NO_GIF) +// nothing +#else +static int stbi__get16le(stbi__context *s) +{ + int z = stbi__get8(s); + return z + (stbi__get8(s) << 8); +} +#endif + +#ifndef STBI_NO_BMP +static stbi__uint32 stbi__get32le(stbi__context *s) +{ + stbi__uint32 z = stbi__get16le(s); + z += (stbi__uint32)stbi__get16le(s) << 16; + return z; +} +#endif + +#define STBI__BYTECAST(x) ((stbi_uc) ((x) & 255)) // truncate int to byte without warnings + +#if defined(STBI_NO_JPEG) && defined(STBI_NO_PNG) && defined(STBI_NO_BMP) && defined(STBI_NO_PSD) && defined(STBI_NO_TGA) && defined(STBI_NO_GIF) && defined(STBI_NO_PIC) && defined(STBI_NO_PNM) +// nothing +#else +////////////////////////////////////////////////////////////////////////////// +// +// generic converter from built-in img_n to req_comp +// individual types do this automatically as much as possible (e.g. jpeg +// does all cases internally since it needs to colorspace convert anyway, +// and it never has alpha, so very few cases ). png can automatically +// interleave an alpha=255 channel, but falls back to this for other cases +// +// assume data buffer is malloced, so malloc a new one and free that one +// only failure mode is malloc failing + +static stbi_uc stbi__compute_y(int r, int g, int b) +{ + return (stbi_uc) (((r*77) + (g*150) + (29*b)) >> 8); +} +#endif + +#if defined(STBI_NO_PNG) && defined(STBI_NO_BMP) && defined(STBI_NO_PSD) && defined(STBI_NO_TGA) && defined(STBI_NO_GIF) && defined(STBI_NO_PIC) && defined(STBI_NO_PNM) +// nothing +#else +static unsigned char *stbi__convert_format(unsigned char *data, int img_n, int req_comp, unsigned int x, unsigned int y) +{ + int i,j; + unsigned char *good; + + if (req_comp == img_n){ return data; +} + STBI_ASSERT(req_comp >= 1 && req_comp <= 4); + + good = (unsigned char *) stbi__malloc_mad3(req_comp, x, y, 0); + if (good == NULL) { + STBI_FREE(data); + return stbi__errpuc("outofmem", "Out of memory"); + } + + for (j=0; j < (int) y; ++j) { + unsigned char *src = data + j * x * img_n ; + unsigned char *dest = good + j * x * req_comp; + + #define STBI__COMBO(a,b) ((a)*8+(b)) + #define STBI__CASE(a,b) case STBI__COMBO(a,b): for(i=x-1; i >= 0; --i, src += a, dest += b) + // convert source image with img_n components to one with req_comp components; + // avoid switch per pixel, so use switch per scanline and massive macros + switch (STBI__COMBO(img_n, req_comp)) { + STBI__CASE(1,2) { dest[0]=src[0]; dest[1]=255; } break; + STBI__CASE(1,3) { dest[0]=dest[1]=dest[2]=src[0]; } break; + STBI__CASE(1,4) { dest[0]=dest[1]=dest[2]=src[0]; dest[3]=255; } break; + STBI__CASE(2,1) { dest[0]=src[0]; } break; + STBI__CASE(2,3) { dest[0]=dest[1]=dest[2]=src[0]; } break; + STBI__CASE(2,4) { dest[0]=dest[1]=dest[2]=src[0]; dest[3]=src[1]; } break; + STBI__CASE(3,4) { dest[0]=src[0];dest[1]=src[1];dest[2]=src[2];dest[3]=255; } break; + STBI__CASE(3,1) { dest[0]=stbi__compute_y(src[0],src[1],src[2]); } break; + STBI__CASE(3,2) { dest[0]=stbi__compute_y(src[0],src[1],src[2]); dest[1] = 255; } break; + STBI__CASE(4,1) { dest[0]=stbi__compute_y(src[0],src[1],src[2]); } break; + STBI__CASE(4,2) { dest[0]=stbi__compute_y(src[0],src[1],src[2]); dest[1] = src[3]; } break; + STBI__CASE(4,3) { dest[0]=src[0];dest[1]=src[1];dest[2]=src[2]; } break; + default: STBI_ASSERT(0); STBI_FREE(data); STBI_FREE(good); return stbi__errpuc("unsupported", "Unsupported format conversion"); + } + #undef STBI__CASE + } + + STBI_FREE(data); + return good; +} +#endif + +#if defined(STBI_NO_PNG) && defined(STBI_NO_PSD) +// nothing +#else +static stbi__uint16 stbi__compute_y_16(int r, int g, int b) +{ + return (stbi__uint16) (((r*77) + (g*150) + (29*b)) >> 8); +} +#endif + +#if defined(STBI_NO_PNG) && defined(STBI_NO_PSD) +// nothing +#else +static stbi__uint16 *stbi__convert_format16(stbi__uint16 *data, int img_n, int req_comp, unsigned int x, unsigned int y) +{ + int i,j; + stbi__uint16 *good; + + if (req_comp == img_n){ return data; +} + STBI_ASSERT(req_comp >= 1 && req_comp <= 4); + + good = (stbi__uint16 *) stbi__malloc(req_comp * x * y * 2); + if (good == NULL) { + STBI_FREE(data); + return (stbi__uint16 *) stbi__errpuc("outofmem", "Out of memory"); + } + + for (j=0; j < (int) y; ++j) { + stbi__uint16 *src = data + j * x * img_n ; + stbi__uint16 *dest = good + j * x * req_comp; + + #define STBI__COMBO(a,b) ((a)*8+(b)) + #define STBI__CASE(a,b) case STBI__COMBO(a,b): for(i=x-1; i >= 0; --i, src += a, dest += b) + // convert source image with img_n components to one with req_comp components; + // avoid switch per pixel, so use switch per scanline and massive macros + switch (STBI__COMBO(img_n, req_comp)) { + STBI__CASE(1,2) { dest[0]=src[0]; dest[1]=0xffff; } break; + STBI__CASE(1,3) { dest[0]=dest[1]=dest[2]=src[0]; } break; + STBI__CASE(1,4) { dest[0]=dest[1]=dest[2]=src[0]; dest[3]=0xffff; } break; + STBI__CASE(2,1) { dest[0]=src[0]; } break; + STBI__CASE(2,3) { dest[0]=dest[1]=dest[2]=src[0]; } break; + STBI__CASE(2,4) { dest[0]=dest[1]=dest[2]=src[0]; dest[3]=src[1]; } break; + STBI__CASE(3,4) { dest[0]=src[0];dest[1]=src[1];dest[2]=src[2];dest[3]=0xffff; } break; + STBI__CASE(3,1) { dest[0]=stbi__compute_y_16(src[0],src[1],src[2]); } break; + STBI__CASE(3,2) { dest[0]=stbi__compute_y_16(src[0],src[1],src[2]); dest[1] = 0xffff; } break; + STBI__CASE(4,1) { dest[0]=stbi__compute_y_16(src[0],src[1],src[2]); } break; + STBI__CASE(4,2) { dest[0]=stbi__compute_y_16(src[0],src[1],src[2]); dest[1] = src[3]; } break; + STBI__CASE(4,3) { dest[0]=src[0];dest[1]=src[1];dest[2]=src[2]; } break; + default: STBI_ASSERT(0); STBI_FREE(data); STBI_FREE(good); return (stbi__uint16*) stbi__errpuc("unsupported", "Unsupported format conversion"); + } + #undef STBI__CASE + } + + STBI_FREE(data); + return good; +} +#endif + +#ifndef STBI_NO_LINEAR +static float *stbi__ldr_to_hdr(stbi_uc *data, int x, int y, int comp) +{ + int i,k,n; + float *output; + if (!data){ return NULL; +} + output = (float *) stbi__malloc_mad4(x, y, comp, sizeof(float), 0); + if (output == NULL) { STBI_FREE(data); return stbi__errpf("outofmem", "Out of memory"); } + // compute number of non-alpha components + if (comp & 1){ n = comp; +} else{ n = comp-1; +} + for (i=0; i < x*y; ++i) { + for (k=0; k < n; ++k) { + output[i*comp + k] = (float) (pow(data[i*comp+k]/255.0f, stbi__l2h_gamma) * stbi__l2h_scale); + } + } + if (n < comp) { + for (i=0; i < x*y; ++i) { + output[i*comp + n] = data[i*comp + n]/255.0f; + } + } + STBI_FREE(data); + return output; +} +#endif + +#ifndef STBI_NO_HDR +#define stbi__float2int(x) ((int) (x)) +static stbi_uc *stbi__hdr_to_ldr(float *data, int x, int y, int comp) +{ + int i,k,n; + stbi_uc *output; + if (!data){ return NULL; +} + output = (stbi_uc *) stbi__malloc_mad3(x, y, comp, 0); + if (output == NULL) { STBI_FREE(data); return stbi__errpuc("outofmem", "Out of memory"); } + // compute number of non-alpha components + if (comp & 1){ n = comp; +} else{ n = comp-1; +} + for (i=0; i < x*y; ++i) { + for (k=0; k < n; ++k) { + float z = (float) pow(data[i*comp+k]*stbi__h2l_scale_i, stbi__h2l_gamma_i) * 255 + 0.5f; + if (z < 0){ z = 0; +} + if (z > 255){ z = 255; +} + output[i*comp + k] = (stbi_uc) stbi__float2int(z); + } + if (k < comp) { + float z = data[i*comp+k] * 255 + 0.5f; + if (z < 0){ z = 0; +} + if (z > 255){ z = 255; +} + output[i*comp + k] = (stbi_uc) stbi__float2int(z); + } + } + STBI_FREE(data); + return output; +} +#endif + +////////////////////////////////////////////////////////////////////////////// +// +// "baseline" JPEG/JFIF decoder +// +// simple implementation +// - doesn't support delayed output of y-dimension +// - simple interface (only one output format: 8-bit interleaved RGB) +// - doesn't try to recover corrupt jpegs +// - doesn't allow partial loading, loading multiple at once +// - still fast on x86 (copying globals into locals doesn't help x86) +// - allocates lots of intermediate memory (full size of all components) +// - non-interleaved case requires this anyway +// - allows good upsampling (see next) +// high-quality +// - upsampled channels are bilinearly interpolated, even across blocks +// - quality integer IDCT derived from IJG's 'slow' +// performance +// - fast huffman; reasonable integer IDCT +// - some SIMD kernels for common paths on targets with SSE2/NEON +// - uses a lot of intermediate memory, could cache poorly + +#ifndef STBI_NO_JPEG + +// huffman decoding acceleration +#define FAST_BITS 9 // larger handles more cases; smaller stomps less cache + +typedef struct +{ + stbi_uc fast[1 << FAST_BITS]; + // weirdly, repacking this into AoS is a 10% speed loss, instead of a win + stbi__uint16 code[256]; + stbi_uc values[256]; + stbi_uc size[257]; + unsigned int maxcode[18]; + int delta[17]; // old 'firstsymbol' - old 'firstcode' +} stbi__huffman; + +typedef struct +{ + stbi__context *s; + stbi__huffman huff_dc[4]; + stbi__huffman huff_ac[4]; + stbi__uint16 dequant[4][64]; + stbi__int16 fast_ac[4][1 << FAST_BITS]; + +// sizes for components, interleaved MCUs + int img_h_max, img_v_max; + int img_mcu_x, img_mcu_y; + int img_mcu_w, img_mcu_h; + +// definition of jpeg image component + struct + { + int id; + int h,v; + int tq; + int hd,ha; + int dc_pred; + + int x,y,w2,h2; + stbi_uc *data; + void *raw_data, *raw_coeff; + stbi_uc *linebuf; + short *coeff; // progressive only + int coeff_w, coeff_h; // number of 8x8 coefficient blocks + } img_comp[4]; + + stbi__uint32 code_buffer; // jpeg entropy-coded buffer + int code_bits; // number of valid bits + unsigned char marker; // marker seen while filling entropy buffer + int nomore; // flag if we saw a marker so must stop + + int progressive; + int spec_start; + int spec_end; + int succ_high; + int succ_low; + int eob_run; + int jfif; + int app14_color_transform; // Adobe APP14 tag + int rgb; + + int scan_n, order[4]; + int restart_interval, todo; + +// kernels + void (*idct_block_kernel)(stbi_uc *out, int out_stride, short data[64]); + void (*YCbCr_to_RGB_kernel)(stbi_uc *out, const stbi_uc *y, const stbi_uc *pcb, const stbi_uc *pcr, int count, int step); + stbi_uc *(*resample_row_hv_2_kernel)(stbi_uc *out, stbi_uc *in_near, stbi_uc *in_far, int w, int hs); +} stbi__jpeg; + +static int stbi__build_huffman(stbi__huffman *h, int *count) +{ + int i,j,k=0; + unsigned int code; + // build size list for each symbol (from JPEG spec) + for (i=0; i < 16; ++i) { + for (j=0; j < count[i]; ++j) { + h->size[k++] = (stbi_uc) (i+1); + if(k >= 257){ return stbi__err("bad size list","Corrupt JPEG"); +} + } + } + h->size[k] = 0; + + // compute actual symbols (from jpeg spec) + code = 0; + k = 0; + for(j=1; j <= 16; ++j) { + // compute delta to add to code to compute symbol id + h->delta[j] = k - code; + if (h->size[k] == j) { + while (h->size[k] == j){ + h->code[k++] = (stbi__uint16) (code++); +} + if (code-1 >= (1u << j)){ return stbi__err("bad code lengths","Corrupt JPEG"); +} + } + // compute largest code + 1 for this size, preshifted as needed later + h->maxcode[j] = code << (16-j); + code <<= 1; + } + h->maxcode[j] = 0xffffffff; + + // build non-spec acceleration table; 255 is flag for not-accelerated + memset(h->fast, 255, 1 << FAST_BITS); + for (i=0; i < k; ++i) { + int s = h->size[i]; + if (s <= FAST_BITS) { + int c = h->code[i] << (FAST_BITS-s); + int m = 1 << (FAST_BITS-s); + for (j=0; j < m; ++j) { + h->fast[c+j] = (stbi_uc) i; + } + } + } + return 1; +} + +// build a table that decodes both magnitude and value of small ACs in +// one go. +static void stbi__build_fast_ac(stbi__int16 *fast_ac, stbi__huffman *h) +{ + int i; + for (i=0; i < (1 << FAST_BITS); ++i) { + stbi_uc fast = h->fast[i]; + fast_ac[i] = 0; + if (fast < 255) { + int rs = h->values[fast]; + int run = (rs >> 4) & 15; + int magbits = rs & 15; + int len = h->size[fast]; + + if (magbits && len + magbits <= FAST_BITS) { + // magnitude code followed by receive_extend code + int k = ((i << len) & ((1 << FAST_BITS) - 1)) >> (FAST_BITS - magbits); + int m = 1 << (magbits - 1); + if (k < m){ k += (~0U << magbits) + 1; +} + // if the result is small enough, we can fit it in fast_ac table + if (k >= -128 && k <= 127){ + fast_ac[i] = (stbi__int16) ((k * 256) + (run * 16) + (len + magbits)); +} + } + } + } +} + +static void stbi__grow_buffer_unsafe(stbi__jpeg *j) +{ + do { + unsigned int b = j->nomore ? 0 : stbi__get8(j->s); + if (b == 0xff) { + int c = stbi__get8(j->s); + while (c == 0xff){ c = stbi__get8(j->s); // consume fill bytes +} + if (c != 0) { + j->marker = (unsigned char) c; + j->nomore = 1; + return; + } + } + j->code_buffer |= b << (24 - j->code_bits); + j->code_bits += 8; + } while (j->code_bits <= 24); +} + +// (1 << n) - 1 +static const stbi__uint32 stbi__bmask[17]={0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535}; + +// decode a jpeg huffman value from the bitstream +stbi_inline static int stbi__jpeg_huff_decode(stbi__jpeg *j, stbi__huffman *h) +{ + unsigned int temp; + int c,k; + + if (j->code_bits < 16){ stbi__grow_buffer_unsafe(j); +} + + // look at the top FAST_BITS and determine what symbol ID it is, + // if the code is <= FAST_BITS + c = (j->code_buffer >> (32 - FAST_BITS)) & ((1 << FAST_BITS)-1); + k = h->fast[c]; + if (k < 255) { + int s = h->size[k]; + if (s > j->code_bits){ + return -1; +} + j->code_buffer <<= s; + j->code_bits -= s; + return h->values[k]; + } + + // naive test is to shift the code_buffer down so k bits are + // valid, then test against maxcode. To speed this up, we've + // preshifted maxcode left so that it has (16-k) 0s at the + // end; in other words, regardless of the number of bits, it + // wants to be compared against something shifted to have 16; + // that way we don't need to shift inside the loop. + temp = j->code_buffer >> 16; + for (k=FAST_BITS+1 ; ; ++k){ + if (temp < h->maxcode[k]){ + break; +}} + if (k == 17) { + // error! code not found + j->code_bits -= 16; + return -1; + } + + if (k > j->code_bits){ + return -1; +} + + // convert the huffman code to the symbol id + c = ((j->code_buffer >> (32 - k)) & stbi__bmask[k]) + h->delta[k]; + if(c < 0 || c >= 256) // symbol id out of bounds! +{ + return -1; +} + STBI_ASSERT((((j->code_buffer) >> (32 - h->size[c])) & stbi__bmask[h->size[c]]) == h->code[c]); + + // convert the id to a symbol + j->code_bits -= k; + j->code_buffer <<= k; + return h->values[c]; +} + +// bias[n] = (-1<code_bits < n){ stbi__grow_buffer_unsafe(j); +} + if (j->code_bits < n){ return 0; // ran out of bits from stream, return 0s intead of continuing +} + + sgn = j->code_buffer >> 31; // sign bit always in MSB; 0 if MSB clear (positive), 1 if MSB set (negative) + k = stbi_lrot(j->code_buffer, n); + j->code_buffer = k & ~stbi__bmask[n]; + k &= stbi__bmask[n]; + j->code_bits -= n; + return k + (stbi__jbias[n] & (sgn - 1)); +} + +// get some unsigned bits +stbi_inline static int stbi__jpeg_get_bits(stbi__jpeg *j, int n) +{ + unsigned int k; + if (j->code_bits < n){ stbi__grow_buffer_unsafe(j); +} + if (j->code_bits < n){ return 0; // ran out of bits from stream, return 0s intead of continuing +} + k = stbi_lrot(j->code_buffer, n); + j->code_buffer = k & ~stbi__bmask[n]; + k &= stbi__bmask[n]; + j->code_bits -= n; + return k; +} + +stbi_inline static int stbi__jpeg_get_bit(stbi__jpeg *j) +{ + unsigned int k; + if (j->code_bits < 1){ stbi__grow_buffer_unsafe(j); +} + if (j->code_bits < 1){ return 0; // ran out of bits from stream, return 0s intead of continuing +} + k = j->code_buffer; + j->code_buffer <<= 1; + --j->code_bits; + return k & 0x80000000; +} + +// given a value that's at position X in the zigzag stream, +// where does it appear in the 8x8 matrix coded as row-major? +static const stbi_uc stbi__jpeg_dezigzag[64+15] = +{ + 0, 1, 8, 16, 9, 2, 3, 10, + 17, 24, 32, 25, 18, 11, 4, 5, + 12, 19, 26, 33, 40, 48, 41, 34, + 27, 20, 13, 6, 7, 14, 21, 28, + 35, 42, 49, 56, 57, 50, 43, 36, + 29, 22, 15, 23, 30, 37, 44, 51, + 58, 59, 52, 45, 38, 31, 39, 46, + 53, 60, 61, 54, 47, 55, 62, 63, + // let corrupt input sample past end + 63, 63, 63, 63, 63, 63, 63, 63, + 63, 63, 63, 63, 63, 63, 63 +}; + +// decode one 64-entry block-- +static int stbi__jpeg_decode_block(stbi__jpeg *j, short data[64], stbi__huffman *hdc, stbi__huffman *hac, stbi__int16 *fac, int b, stbi__uint16 *dequant) +{ + int diff,dc,k; + int t; + + if (j->code_bits < 16){ stbi__grow_buffer_unsafe(j); +} + t = stbi__jpeg_huff_decode(j, hdc); + if (t < 0 || t > 15){ return stbi__err("bad huffman code","Corrupt JPEG"); +} + + // 0 all the ac values now so we can do it 32-bits at a time + memset(data,0,64*sizeof(data[0])); + + diff = t ? stbi__extend_receive(j, t) : 0; + if (!stbi__addints_valid(j->img_comp[b].dc_pred, diff)){ return stbi__err("bad delta","Corrupt JPEG"); +} + dc = j->img_comp[b].dc_pred + diff; + j->img_comp[b].dc_pred = dc; + if (!stbi__mul2shorts_valid(dc, dequant[0])){ return stbi__err("can't merge dc and ac", "Corrupt JPEG"); +} + data[0] = (short) (dc * dequant[0]); + + // decode AC components, see JPEG spec + k = 1; + do { + unsigned int zig; + int c,r,s; + if (j->code_bits < 16){ stbi__grow_buffer_unsafe(j); +} + c = (j->code_buffer >> (32 - FAST_BITS)) & ((1 << FAST_BITS)-1); + r = fac[c]; + if (r) { // fast-AC path + k += (r >> 4) & 15; // run + s = r & 15; // combined length + if (s > j->code_bits){ return stbi__err("bad huffman code", "Combined length longer than code bits available"); +} + j->code_buffer <<= s; + j->code_bits -= s; + // decode into unzigzag'd location + zig = stbi__jpeg_dezigzag[k++]; + data[zig] = (short) ((r >> 8) * dequant[zig]); + } else { + int rs = stbi__jpeg_huff_decode(j, hac); + if (rs < 0){ return stbi__err("bad huffman code","Corrupt JPEG"); +} + s = rs & 15; + r = rs >> 4; + if (s == 0) { + if (rs != 0xf0){ break; // end block +} + k += 16; + } else { + k += r; + // decode into unzigzag'd location + zig = stbi__jpeg_dezigzag[k++]; + data[zig] = (short) (stbi__extend_receive(j,s) * dequant[zig]); + } + } + } while (k < 64); + return 1; +} + +static int stbi__jpeg_decode_block_prog_dc(stbi__jpeg *j, short data[64], stbi__huffman *hdc, int b) +{ + int diff,dc; + int t; + if (j->spec_end != 0){ return stbi__err("can't merge dc and ac", "Corrupt JPEG"); +} + + if (j->code_bits < 16){ stbi__grow_buffer_unsafe(j); +} + + if (j->succ_high == 0) { + // first scan for DC coefficient, must be first + memset(data,0,64*sizeof(data[0])); // 0 all the ac values now + t = stbi__jpeg_huff_decode(j, hdc); + if (t < 0 || t > 15){ return stbi__err("can't merge dc and ac", "Corrupt JPEG"); +} + diff = t ? stbi__extend_receive(j, t) : 0; + + if (!stbi__addints_valid(j->img_comp[b].dc_pred, diff)){ return stbi__err("bad delta", "Corrupt JPEG"); +} + dc = j->img_comp[b].dc_pred + diff; + j->img_comp[b].dc_pred = dc; + if (!stbi__mul2shorts_valid(dc, 1 << j->succ_low)){ return stbi__err("can't merge dc and ac", "Corrupt JPEG"); +} + data[0] = (short) (dc * (1 << j->succ_low)); + } else { + // refinement scan for DC coefficient + if (stbi__jpeg_get_bit(j)){ + data[0] += (short) (1 << j->succ_low); +} + } + return 1; +} + +// @OPTIMIZE: store non-zigzagged during the decode passes, +// and only de-zigzag when dequantizing +static int stbi__jpeg_decode_block_prog_ac(stbi__jpeg *j, short data[64], stbi__huffman *hac, stbi__int16 *fac) +{ + int k; + if (j->spec_start == 0){ return stbi__err("can't merge dc and ac", "Corrupt JPEG"); +} + + if (j->succ_high == 0) { + int shift = j->succ_low; + + if (j->eob_run) { + --j->eob_run; + return 1; + } + + k = j->spec_start; + do { + unsigned int zig; + int c,r,s; + if (j->code_bits < 16){ stbi__grow_buffer_unsafe(j); +} + c = (j->code_buffer >> (32 - FAST_BITS)) & ((1 << FAST_BITS)-1); + r = fac[c]; + if (r) { // fast-AC path + k += (r >> 4) & 15; // run + s = r & 15; // combined length + if (s > j->code_bits){ return stbi__err("bad huffman code", "Combined length longer than code bits available"); +} + j->code_buffer <<= s; + j->code_bits -= s; + zig = stbi__jpeg_dezigzag[k++]; + data[zig] = (short) ((r >> 8) * (1 << shift)); + } else { + int rs = stbi__jpeg_huff_decode(j, hac); + if (rs < 0){ return stbi__err("bad huffman code","Corrupt JPEG"); +} + s = rs & 15; + r = rs >> 4; + if (s == 0) { + if (r < 15) { + j->eob_run = (1 << r); + if (r){ + j->eob_run += stbi__jpeg_get_bits(j, r); +} + --j->eob_run; + break; + } + k += 16; + } else { + k += r; + zig = stbi__jpeg_dezigzag[k++]; + data[zig] = (short) (stbi__extend_receive(j,s) * (1 << shift)); + } + } + } while (k <= j->spec_end); + } else { + // refinement scan for these AC coefficients + + short bit = (short) (1 << j->succ_low); + + if (j->eob_run) { + --j->eob_run; + for (k = j->spec_start; k <= j->spec_end; ++k) { + short *p = &data[stbi__jpeg_dezigzag[k]]; + if (*p != 0){ + if (stbi__jpeg_get_bit(j)){ + if ((*p & bit)==0) { + if (*p > 0){ + *p += bit; +} + else{ + *p -= bit; +} + } +}} + } + } else { + k = j->spec_start; + do { + int r,s; + int rs = stbi__jpeg_huff_decode(j, hac); // @OPTIMIZE see if we can use the fast path here, advance-by-r is so slow, eh + if (rs < 0){ return stbi__err("bad huffman code","Corrupt JPEG"); +} + s = rs & 15; + r = rs >> 4; + if (s == 0) { + if (r < 15) { + j->eob_run = (1 << r) - 1; + if (r){ + j->eob_run += stbi__jpeg_get_bits(j, r); +} + r = 64; // force end of block + } else { + // r=15 s=0 should write 16 0s, so we just do + // a run of 15 0s and then write s (which is 0), + // so we don't have to do anything special here + } + } else { + if (s != 1){ return stbi__err("bad huffman code", "Corrupt JPEG"); +} + // sign bit + if (stbi__jpeg_get_bit(j)){ + s = bit; +} + else{ + s = -bit; +} + } + + // advance by r + while (k <= j->spec_end) { + short *p = &data[stbi__jpeg_dezigzag[k++]]; + if (*p != 0) { + if (stbi__jpeg_get_bit(j)){ + if ((*p & bit)==0) { + if (*p > 0){ + *p += bit; +} + else{ + *p -= bit; +} + } +} + } else { + if (r == 0) { + *p = (short) s; + break; + } + --r; + } + } + } while (k <= j->spec_end); + } + } + return 1; +} + +// take a -128..127 value and stbi__clamp it and convert to 0..255 +stbi_inline static stbi_uc stbi__clamp(int x) +{ + // trick to use a single test to catch both cases + if ((unsigned int) x > 255) { + if (x < 0){ return 0; +} + if (x > 255){ return 255; +} + } + return (stbi_uc) x; +} + +#define stbi__f2f(x) ((int) (((x) * 4096 + 0.5))) +#define stbi__fsh(x) ((x) * 4096) + +// derived from jidctint -- DCT_ISLOW +#define STBI__IDCT_1D(s0,s1,s2,s3,s4,s5,s6,s7) \ + int t0,t1,t2,t3,p1,p2,p3,p4,p5,x0,x1,x2,x3; \ + p2 = s2; \ + p3 = s6; \ + p1 = (p2+p3) * stbi__f2f(0.5411961f); \ + t2 = p1 + p3*stbi__f2f(-1.847759065f); \ + t3 = p1 + p2*stbi__f2f( 0.765366865f); \ + p2 = s0; \ + p3 = s4; \ + t0 = stbi__fsh(p2+p3); \ + t1 = stbi__fsh(p2-p3); \ + x0 = t0+t3; \ + x3 = t0-t3; \ + x1 = t1+t2; \ + x2 = t1-t2; \ + t0 = s7; \ + t1 = s5; \ + t2 = s3; \ + t3 = s1; \ + p3 = t0+t2; \ + p4 = t1+t3; \ + p1 = t0+t3; \ + p2 = t1+t2; \ + p5 = (p3+p4)*stbi__f2f( 1.175875602f); \ + t0 = t0*stbi__f2f( 0.298631336f); \ + t1 = t1*stbi__f2f( 2.053119869f); \ + t2 = t2*stbi__f2f( 3.072711026f); \ + t3 = t3*stbi__f2f( 1.501321110f); \ + p1 = p5 + p1*stbi__f2f(-0.899976223f); \ + p2 = p5 + p2*stbi__f2f(-2.562915447f); \ + p3 = p3*stbi__f2f(-1.961570560f); \ + p4 = p4*stbi__f2f(-0.390180644f); \ + t3 += p1+p4; \ + t2 += p2+p3; \ + t1 += p2+p4; \ + t0 += p1+p3; + +static void stbi__idct_block(stbi_uc *out, int out_stride, short data[64]) +{ + int i,val[64],*v=val; + stbi_uc *o; + short *d = data; + + // columns + for (i=0; i < 8; ++i,++d, ++v) { + // if all zeroes, shortcut -- this avoids dequantizing 0s and IDCTing + if (d[ 8]==0 && d[16]==0 && d[24]==0 && d[32]==0 + && d[40]==0 && d[48]==0 && d[56]==0) { + // no shortcut 0 seconds + // (1|2|3|4|5|6|7)==0 0 seconds + // all separate -0.047 seconds + // 1 && 2|3 && 4|5 && 6|7: -0.047 seconds + int dcterm = d[0]*4; + v[0] = v[8] = v[16] = v[24] = v[32] = v[40] = v[48] = v[56] = dcterm; + } else { + STBI__IDCT_1D(d[ 0],d[ 8],d[16],d[24],d[32],d[40],d[48],d[56]) + // constants scaled things up by 1<<12; let's bring them back + // down, but keep 2 extra bits of precision + x0 += 512; x1 += 512; x2 += 512; x3 += 512; + v[ 0] = (x0+t3) >> 10; + v[56] = (x0-t3) >> 10; + v[ 8] = (x1+t2) >> 10; + v[48] = (x1-t2) >> 10; + v[16] = (x2+t1) >> 10; + v[40] = (x2-t1) >> 10; + v[24] = (x3+t0) >> 10; + v[32] = (x3-t0) >> 10; + } + } + + for (i=0, v=val, o=out; i < 8; ++i,v+=8,o+=out_stride) { + // no fast case since the first 1D IDCT spread components out + STBI__IDCT_1D(v[0],v[1],v[2],v[3],v[4],v[5],v[6],v[7]) + // constants scaled things up by 1<<12, plus we had 1<<2 from first + // loop, plus horizontal and vertical each scale by sqrt(8) so together + // we've got an extra 1<<3, so 1<<17 total we need to remove. + // so we want to round that, which means adding 0.5 * 1<<17, + // aka 65536. Also, we'll end up with -128 to 127 that we want + // to encode as 0..255 by adding 128, so we'll add that before the shift + x0 += 65536 + (128<<17); + x1 += 65536 + (128<<17); + x2 += 65536 + (128<<17); + x3 += 65536 + (128<<17); + // tried computing the shifts into temps, or'ing the temps to see + // if any were out of range, but that was slower + o[0] = stbi__clamp((x0+t3) >> 17); + o[7] = stbi__clamp((x0-t3) >> 17); + o[1] = stbi__clamp((x1+t2) >> 17); + o[6] = stbi__clamp((x1-t2) >> 17); + o[2] = stbi__clamp((x2+t1) >> 17); + o[5] = stbi__clamp((x2-t1) >> 17); + o[3] = stbi__clamp((x3+t0) >> 17); + o[4] = stbi__clamp((x3-t0) >> 17); + } +} + +#ifdef STBI_SSE2 +// sse2 integer IDCT. not the fastest possible implementation but it +// produces bit-identical results to the generic C version so it's +// fully "transparent". +static void stbi__idct_simd(stbi_uc *out, int out_stride, short data[64]) +{ + // This is constructed to match our regular (generic) integer IDCT exactly. + __m128i row0, row1, row2, row3, row4, row5, row6, row7; + __m128i tmp; + + // dot product constant: even elems=x, odd elems=y + #define dct_const(x,y) _mm_setr_epi16((x),(y),(x),(y),(x),(y),(x),(y)) + + // out(0) = c0[even]*x + c0[odd]*y (c0, x, y 16-bit, out 32-bit) + // out(1) = c1[even]*x + c1[odd]*y + #define dct_rot(out0,out1, x,y,c0,c1) \ + __m128i c0##lo = _mm_unpacklo_epi16((x),(y)); \ + __m128i c0##hi = _mm_unpackhi_epi16((x),(y)); \ + __m128i out0##_l = _mm_madd_epi16(c0##lo, c0); \ + __m128i out0##_h = _mm_madd_epi16(c0##hi, c0); \ + __m128i out1##_l = _mm_madd_epi16(c0##lo, c1); \ + __m128i out1##_h = _mm_madd_epi16(c0##hi, c1) + + // out = in << 12 (in 16-bit, out 32-bit) + #define dct_widen(out, in) \ + __m128i out##_l = _mm_srai_epi32(_mm_unpacklo_epi16(_mm_setzero_si128(), (in)), 4); \ + __m128i out##_h = _mm_srai_epi32(_mm_unpackhi_epi16(_mm_setzero_si128(), (in)), 4) + + // wide add + #define dct_wadd(out, a, b) \ + __m128i out##_l = _mm_add_epi32(a##_l, b##_l); \ + __m128i out##_h = _mm_add_epi32(a##_h, b##_h) + + // wide sub + #define dct_wsub(out, a, b) \ + __m128i out##_l = _mm_sub_epi32(a##_l, b##_l); \ + __m128i out##_h = _mm_sub_epi32(a##_h, b##_h) + + // butterfly a/b, add bias, then shift by "s" and pack + #define dct_bfly32o(out0, out1, a,b,bias,s) \ + { \ + __m128i abiased_l = _mm_add_epi32(a##_l, bias); \ + __m128i abiased_h = _mm_add_epi32(a##_h, bias); \ + dct_wadd(sum, abiased, b); \ + dct_wsub(dif, abiased, b); \ + out0 = _mm_packs_epi32(_mm_srai_epi32(sum_l, s), _mm_srai_epi32(sum_h, s)); \ + out1 = _mm_packs_epi32(_mm_srai_epi32(dif_l, s), _mm_srai_epi32(dif_h, s)); \ + } + + // 8-bit interleave step (for transposes) + #define dct_interleave8(a, b) \ + tmp = a; \ + a = _mm_unpacklo_epi8(a, b); \ + b = _mm_unpackhi_epi8(tmp, b) + + // 16-bit interleave step (for transposes) + #define dct_interleave16(a, b) \ + tmp = a; \ + a = _mm_unpacklo_epi16(a, b); \ + b = _mm_unpackhi_epi16(tmp, b) + + #define dct_pass(bias,shift) \ + { \ + /* even part */ \ + dct_rot(t2e,t3e, row2,row6, rot0_0,rot0_1); \ + __m128i sum04 = _mm_add_epi16(row0, row4); \ + __m128i dif04 = _mm_sub_epi16(row0, row4); \ + dct_widen(t0e, sum04); \ + dct_widen(t1e, dif04); \ + dct_wadd(x0, t0e, t3e); \ + dct_wsub(x3, t0e, t3e); \ + dct_wadd(x1, t1e, t2e); \ + dct_wsub(x2, t1e, t2e); \ + /* odd part */ \ + dct_rot(y0o,y2o, row7,row3, rot2_0,rot2_1); \ + dct_rot(y1o,y3o, row5,row1, rot3_0,rot3_1); \ + __m128i sum17 = _mm_add_epi16(row1, row7); \ + __m128i sum35 = _mm_add_epi16(row3, row5); \ + dct_rot(y4o,y5o, sum17,sum35, rot1_0,rot1_1); \ + dct_wadd(x4, y0o, y4o); \ + dct_wadd(x5, y1o, y5o); \ + dct_wadd(x6, y2o, y5o); \ + dct_wadd(x7, y3o, y4o); \ + dct_bfly32o(row0,row7, x0,x7,bias,shift); \ + dct_bfly32o(row1,row6, x1,x6,bias,shift); \ + dct_bfly32o(row2,row5, x2,x5,bias,shift); \ + dct_bfly32o(row3,row4, x3,x4,bias,shift); \ + } + + __m128i rot0_0 = dct_const(stbi__f2f(0.5411961f), stbi__f2f(0.5411961f) + stbi__f2f(-1.847759065f)); + __m128i rot0_1 = dct_const(stbi__f2f(0.5411961f) + stbi__f2f( 0.765366865f), stbi__f2f(0.5411961f)); + __m128i rot1_0 = dct_const(stbi__f2f(1.175875602f) + stbi__f2f(-0.899976223f), stbi__f2f(1.175875602f)); + __m128i rot1_1 = dct_const(stbi__f2f(1.175875602f), stbi__f2f(1.175875602f) + stbi__f2f(-2.562915447f)); + __m128i rot2_0 = dct_const(stbi__f2f(-1.961570560f) + stbi__f2f( 0.298631336f), stbi__f2f(-1.961570560f)); + __m128i rot2_1 = dct_const(stbi__f2f(-1.961570560f), stbi__f2f(-1.961570560f) + stbi__f2f( 3.072711026f)); + __m128i rot3_0 = dct_const(stbi__f2f(-0.390180644f) + stbi__f2f( 2.053119869f), stbi__f2f(-0.390180644f)); + __m128i rot3_1 = dct_const(stbi__f2f(-0.390180644f), stbi__f2f(-0.390180644f) + stbi__f2f( 1.501321110f)); + + // rounding biases in column/row passes, see stbi__idct_block for explanation. + __m128i bias_0 = _mm_set1_epi32(512); + __m128i bias_1 = _mm_set1_epi32(65536 + (128<<17)); + + // load + row0 = _mm_load_si128((const __m128i *) (data + 0*8)); + row1 = _mm_load_si128((const __m128i *) (data + 1*8)); + row2 = _mm_load_si128((const __m128i *) (data + 2*8)); + row3 = _mm_load_si128((const __m128i *) (data + 3*8)); + row4 = _mm_load_si128((const __m128i *) (data + 4*8)); + row5 = _mm_load_si128((const __m128i *) (data + 5*8)); + row6 = _mm_load_si128((const __m128i *) (data + 6*8)); + row7 = _mm_load_si128((const __m128i *) (data + 7*8)); + + // column pass + dct_pass(bias_0, 10); + + { + // 16bit 8x8 transpose pass 1 + dct_interleave16(row0, row4); + dct_interleave16(row1, row5); + dct_interleave16(row2, row6); + dct_interleave16(row3, row7); + + // transpose pass 2 + dct_interleave16(row0, row2); + dct_interleave16(row1, row3); + dct_interleave16(row4, row6); + dct_interleave16(row5, row7); + + // transpose pass 3 + dct_interleave16(row0, row1); + dct_interleave16(row2, row3); + dct_interleave16(row4, row5); + dct_interleave16(row6, row7); + } + + // row pass + dct_pass(bias_1, 17); + + { + // pack + __m128i p0 = _mm_packus_epi16(row0, row1); // a0a1a2a3...a7b0b1b2b3...b7 + __m128i p1 = _mm_packus_epi16(row2, row3); + __m128i p2 = _mm_packus_epi16(row4, row5); + __m128i p3 = _mm_packus_epi16(row6, row7); + + // 8bit 8x8 transpose pass 1 + dct_interleave8(p0, p2); // a0e0a1e1... + dct_interleave8(p1, p3); // c0g0c1g1... + + // transpose pass 2 + dct_interleave8(p0, p1); // a0c0e0g0... + dct_interleave8(p2, p3); // b0d0f0h0... + + // transpose pass 3 + dct_interleave8(p0, p2); // a0b0c0d0... + dct_interleave8(p1, p3); // a4b4c4d4... + + // store + _mm_storel_epi64((__m128i *) out, p0); out += out_stride; + _mm_storel_epi64((__m128i *) out, _mm_shuffle_epi32(p0, 0x4e)); out += out_stride; + _mm_storel_epi64((__m128i *) out, p2); out += out_stride; + _mm_storel_epi64((__m128i *) out, _mm_shuffle_epi32(p2, 0x4e)); out += out_stride; + _mm_storel_epi64((__m128i *) out, p1); out += out_stride; + _mm_storel_epi64((__m128i *) out, _mm_shuffle_epi32(p1, 0x4e)); out += out_stride; + _mm_storel_epi64((__m128i *) out, p3); out += out_stride; + _mm_storel_epi64((__m128i *) out, _mm_shuffle_epi32(p3, 0x4e)); + } + +#undef dct_const +#undef dct_rot +#undef dct_widen +#undef dct_wadd +#undef dct_wsub +#undef dct_bfly32o +#undef dct_interleave8 +#undef dct_interleave16 +#undef dct_pass +} + +#endif // STBI_SSE2 + +#ifdef STBI_NEON + +// NEON integer IDCT. should produce bit-identical +// results to the generic C version. +static void stbi__idct_simd(stbi_uc *out, int out_stride, short data[64]) +{ + int16x8_t row0, row1, row2, row3, row4, row5, row6, row7; + + int16x4_t rot0_0 = vdup_n_s16(stbi__f2f(0.5411961f)); + int16x4_t rot0_1 = vdup_n_s16(stbi__f2f(-1.847759065f)); + int16x4_t rot0_2 = vdup_n_s16(stbi__f2f( 0.765366865f)); + int16x4_t rot1_0 = vdup_n_s16(stbi__f2f( 1.175875602f)); + int16x4_t rot1_1 = vdup_n_s16(stbi__f2f(-0.899976223f)); + int16x4_t rot1_2 = vdup_n_s16(stbi__f2f(-2.562915447f)); + int16x4_t rot2_0 = vdup_n_s16(stbi__f2f(-1.961570560f)); + int16x4_t rot2_1 = vdup_n_s16(stbi__f2f(-0.390180644f)); + int16x4_t rot3_0 = vdup_n_s16(stbi__f2f( 0.298631336f)); + int16x4_t rot3_1 = vdup_n_s16(stbi__f2f( 2.053119869f)); + int16x4_t rot3_2 = vdup_n_s16(stbi__f2f( 3.072711026f)); + int16x4_t rot3_3 = vdup_n_s16(stbi__f2f( 1.501321110f)); + +#define dct_long_mul(out, inq, coeff) \ + int32x4_t out##_l = vmull_s16(vget_low_s16(inq), coeff); \ + int32x4_t out##_h = vmull_s16(vget_high_s16(inq), coeff) + +#define dct_long_mac(out, acc, inq, coeff) \ + int32x4_t out##_l = vmlal_s16(acc##_l, vget_low_s16(inq), coeff); \ + int32x4_t out##_h = vmlal_s16(acc##_h, vget_high_s16(inq), coeff) + +#define dct_widen(out, inq) \ + int32x4_t out##_l = vshll_n_s16(vget_low_s16(inq), 12); \ + int32x4_t out##_h = vshll_n_s16(vget_high_s16(inq), 12) + +// wide add +#define dct_wadd(out, a, b) \ + int32x4_t out##_l = vaddq_s32(a##_l, b##_l); \ + int32x4_t out##_h = vaddq_s32(a##_h, b##_h) + +// wide sub +#define dct_wsub(out, a, b) \ + int32x4_t out##_l = vsubq_s32(a##_l, b##_l); \ + int32x4_t out##_h = vsubq_s32(a##_h, b##_h) + +// butterfly a/b, then shift using "shiftop" by "s" and pack +#define dct_bfly32o(out0,out1, a,b,shiftop,s) \ + { \ + dct_wadd(sum, a, b); \ + dct_wsub(dif, a, b); \ + out0 = vcombine_s16(shiftop(sum_l, s), shiftop(sum_h, s)); \ + out1 = vcombine_s16(shiftop(dif_l, s), shiftop(dif_h, s)); \ + } + +#define dct_pass(shiftop, shift) \ + { \ + /* even part */ \ + int16x8_t sum26 = vaddq_s16(row2, row6); \ + dct_long_mul(p1e, sum26, rot0_0); \ + dct_long_mac(t2e, p1e, row6, rot0_1); \ + dct_long_mac(t3e, p1e, row2, rot0_2); \ + int16x8_t sum04 = vaddq_s16(row0, row4); \ + int16x8_t dif04 = vsubq_s16(row0, row4); \ + dct_widen(t0e, sum04); \ + dct_widen(t1e, dif04); \ + dct_wadd(x0, t0e, t3e); \ + dct_wsub(x3, t0e, t3e); \ + dct_wadd(x1, t1e, t2e); \ + dct_wsub(x2, t1e, t2e); \ + /* odd part */ \ + int16x8_t sum15 = vaddq_s16(row1, row5); \ + int16x8_t sum17 = vaddq_s16(row1, row7); \ + int16x8_t sum35 = vaddq_s16(row3, row5); \ + int16x8_t sum37 = vaddq_s16(row3, row7); \ + int16x8_t sumodd = vaddq_s16(sum17, sum35); \ + dct_long_mul(p5o, sumodd, rot1_0); \ + dct_long_mac(p1o, p5o, sum17, rot1_1); \ + dct_long_mac(p2o, p5o, sum35, rot1_2); \ + dct_long_mul(p3o, sum37, rot2_0); \ + dct_long_mul(p4o, sum15, rot2_1); \ + dct_wadd(sump13o, p1o, p3o); \ + dct_wadd(sump24o, p2o, p4o); \ + dct_wadd(sump23o, p2o, p3o); \ + dct_wadd(sump14o, p1o, p4o); \ + dct_long_mac(x4, sump13o, row7, rot3_0); \ + dct_long_mac(x5, sump24o, row5, rot3_1); \ + dct_long_mac(x6, sump23o, row3, rot3_2); \ + dct_long_mac(x7, sump14o, row1, rot3_3); \ + dct_bfly32o(row0,row7, x0,x7,shiftop,shift); \ + dct_bfly32o(row1,row6, x1,x6,shiftop,shift); \ + dct_bfly32o(row2,row5, x2,x5,shiftop,shift); \ + dct_bfly32o(row3,row4, x3,x4,shiftop,shift); \ + } + + // load + row0 = vld1q_s16(data + 0*8); + row1 = vld1q_s16(data + 1*8); + row2 = vld1q_s16(data + 2*8); + row3 = vld1q_s16(data + 3*8); + row4 = vld1q_s16(data + 4*8); + row5 = vld1q_s16(data + 5*8); + row6 = vld1q_s16(data + 6*8); + row7 = vld1q_s16(data + 7*8); + + // add DC bias + row0 = vaddq_s16(row0, vsetq_lane_s16(1024, vdupq_n_s16(0), 0)); + + // column pass + dct_pass(vrshrn_n_s32, 10); + + // 16bit 8x8 transpose + { +// these three map to a single VTRN.16, VTRN.32, and VSWP, respectively. +// whether compilers actually get this is another story, sadly. +#define dct_trn16(x, y) { int16x8x2_t t = vtrnq_s16(x, y); x = t.val[0]; y = t.val[1]; } +#define dct_trn32(x, y) { int32x4x2_t t = vtrnq_s32(vreinterpretq_s32_s16(x), vreinterpretq_s32_s16(y)); x = vreinterpretq_s16_s32(t.val[0]); y = vreinterpretq_s16_s32(t.val[1]); } +#define dct_trn64(x, y) { int16x8_t x0 = x; int16x8_t y0 = y; x = vcombine_s16(vget_low_s16(x0), vget_low_s16(y0)); y = vcombine_s16(vget_high_s16(x0), vget_high_s16(y0)); } + + // pass 1 + dct_trn16(row0, row1); // a0b0a2b2a4b4a6b6 + dct_trn16(row2, row3); + dct_trn16(row4, row5); + dct_trn16(row6, row7); + + // pass 2 + dct_trn32(row0, row2); // a0b0c0d0a4b4c4d4 + dct_trn32(row1, row3); + dct_trn32(row4, row6); + dct_trn32(row5, row7); + + // pass 3 + dct_trn64(row0, row4); // a0b0c0d0e0f0g0h0 + dct_trn64(row1, row5); + dct_trn64(row2, row6); + dct_trn64(row3, row7); + +#undef dct_trn16 +#undef dct_trn32 +#undef dct_trn64 + } + + // row pass + // vrshrn_n_s32 only supports shifts up to 16, we need + // 17. so do a non-rounding shift of 16 first then follow + // up with a rounding shift by 1. + dct_pass(vshrn_n_s32, 16); + + { + // pack and round + uint8x8_t p0 = vqrshrun_n_s16(row0, 1); + uint8x8_t p1 = vqrshrun_n_s16(row1, 1); + uint8x8_t p2 = vqrshrun_n_s16(row2, 1); + uint8x8_t p3 = vqrshrun_n_s16(row3, 1); + uint8x8_t p4 = vqrshrun_n_s16(row4, 1); + uint8x8_t p5 = vqrshrun_n_s16(row5, 1); + uint8x8_t p6 = vqrshrun_n_s16(row6, 1); + uint8x8_t p7 = vqrshrun_n_s16(row7, 1); + + // again, these can translate into one instruction, but often don't. +#define dct_trn8_8(x, y) { uint8x8x2_t t = vtrn_u8(x, y); x = t.val[0]; y = t.val[1]; } +#define dct_trn8_16(x, y) { uint16x4x2_t t = vtrn_u16(vreinterpret_u16_u8(x), vreinterpret_u16_u8(y)); x = vreinterpret_u8_u16(t.val[0]); y = vreinterpret_u8_u16(t.val[1]); } +#define dct_trn8_32(x, y) { uint32x2x2_t t = vtrn_u32(vreinterpret_u32_u8(x), vreinterpret_u32_u8(y)); x = vreinterpret_u8_u32(t.val[0]); y = vreinterpret_u8_u32(t.val[1]); } + + // sadly can't use interleaved stores here since we only write + // 8 bytes to each scan line! + + // 8x8 8-bit transpose pass 1 + dct_trn8_8(p0, p1); + dct_trn8_8(p2, p3); + dct_trn8_8(p4, p5); + dct_trn8_8(p6, p7); + + // pass 2 + dct_trn8_16(p0, p2); + dct_trn8_16(p1, p3); + dct_trn8_16(p4, p6); + dct_trn8_16(p5, p7); + + // pass 3 + dct_trn8_32(p0, p4); + dct_trn8_32(p1, p5); + dct_trn8_32(p2, p6); + dct_trn8_32(p3, p7); + + // store + vst1_u8(out, p0); out += out_stride; + vst1_u8(out, p1); out += out_stride; + vst1_u8(out, p2); out += out_stride; + vst1_u8(out, p3); out += out_stride; + vst1_u8(out, p4); out += out_stride; + vst1_u8(out, p5); out += out_stride; + vst1_u8(out, p6); out += out_stride; + vst1_u8(out, p7); + +#undef dct_trn8_8 +#undef dct_trn8_16 +#undef dct_trn8_32 + } + +#undef dct_long_mul +#undef dct_long_mac +#undef dct_widen +#undef dct_wadd +#undef dct_wsub +#undef dct_bfly32o +#undef dct_pass +} + +#endif // STBI_NEON + +#define STBI__MARKER_none 0xff +// if there's a pending marker from the entropy stream, return that +// otherwise, fetch from the stream and get a marker. if there's no +// marker, return 0xff, which is never a valid marker value +static stbi_uc stbi__get_marker(stbi__jpeg *j) +{ + stbi_uc x; + if (j->marker != STBI__MARKER_none) { x = j->marker; j->marker = STBI__MARKER_none; return x; } + x = stbi__get8(j->s); + if (x != 0xff){ return STBI__MARKER_none; +} + while (x == 0xff){ + x = stbi__get8(j->s); // consume repeated 0xff fill bytes +} + return x; +} + +// in each scan, we'll have scan_n components, and the order +// of the components is specified by order[] +#define STBI__RESTART(x) ((x) >= 0xd0 && (x) <= 0xd7) + +// after a restart interval, stbi__jpeg_reset the entropy decoder and +// the dc prediction +static void stbi__jpeg_reset(stbi__jpeg *j) +{ + j->code_bits = 0; + j->code_buffer = 0; + j->nomore = 0; + j->img_comp[0].dc_pred = j->img_comp[1].dc_pred = j->img_comp[2].dc_pred = j->img_comp[3].dc_pred = 0; + j->marker = STBI__MARKER_none; + j->todo = j->restart_interval ? j->restart_interval : 0x7fffffff; + j->eob_run = 0; + // no more than 1<<31 MCUs if no restart_interal? that's plenty safe, + // since we don't even allow 1<<30 pixels +} + +static int stbi__parse_entropy_coded_data(stbi__jpeg *z) +{ + stbi__jpeg_reset(z); + if (!z->progressive) { + if (z->scan_n == 1) { + int i,j; + STBI_SIMD_ALIGN(short, data[64]); + int n = z->order[0]; + // non-interleaved data, we just need to process one block at a time, + // in trivial scanline order + // number of blocks to do just depends on how many actual "pixels" this + // component has, independent of interleaved MCU blocking and such + int w = (z->img_comp[n].x+7) >> 3; + int h = (z->img_comp[n].y+7) >> 3; + for (j=0; j < h; ++j) { + for (i=0; i < w; ++i) { + int ha = z->img_comp[n].ha; + if (!stbi__jpeg_decode_block(z, data, z->huff_dc+z->img_comp[n].hd, z->huff_ac+ha, z->fast_ac[ha], n, z->dequant[z->img_comp[n].tq])){ return 0; +} + z->idct_block_kernel(z->img_comp[n].data+z->img_comp[n].w2*j*8+i*8, z->img_comp[n].w2, data); + // every data block is an MCU, so countdown the restart interval + if (--z->todo <= 0) { + if (z->code_bits < 24){ stbi__grow_buffer_unsafe(z); +} + // if it's NOT a restart, then just bail, so we get corrupt data + // rather than no data + if (!STBI__RESTART(z->marker)){ return 1; +} + stbi__jpeg_reset(z); + } + } + } + return 1; + } else { // interleaved + int i,j,k,x,y; + STBI_SIMD_ALIGN(short, data[64]); + for (j=0; j < z->img_mcu_y; ++j) { + for (i=0; i < z->img_mcu_x; ++i) { + // scan an interleaved mcu... process scan_n components in order + for (k=0; k < z->scan_n; ++k) { + int n = z->order[k]; + // scan out an mcu's worth of this component; that's just determined + // by the basic H and V specified for the component + for (y=0; y < z->img_comp[n].v; ++y) { + for (x=0; x < z->img_comp[n].h; ++x) { + int x2 = (i*z->img_comp[n].h + x)*8; + int y2 = (j*z->img_comp[n].v + y)*8; + int ha = z->img_comp[n].ha; + if (!stbi__jpeg_decode_block(z, data, z->huff_dc+z->img_comp[n].hd, z->huff_ac+ha, z->fast_ac[ha], n, z->dequant[z->img_comp[n].tq])){ return 0; +} + z->idct_block_kernel(z->img_comp[n].data+z->img_comp[n].w2*y2+x2, z->img_comp[n].w2, data); + } + } + } + // after all interleaved components, that's an interleaved MCU, + // so now count down the restart interval + if (--z->todo <= 0) { + if (z->code_bits < 24){ stbi__grow_buffer_unsafe(z); +} + if (!STBI__RESTART(z->marker)){ return 1; +} + stbi__jpeg_reset(z); + } + } + } + return 1; + } + } else { + if (z->scan_n == 1) { + int i,j; + int n = z->order[0]; + // non-interleaved data, we just need to process one block at a time, + // in trivial scanline order + // number of blocks to do just depends on how many actual "pixels" this + // component has, independent of interleaved MCU blocking and such + int w = (z->img_comp[n].x+7) >> 3; + int h = (z->img_comp[n].y+7) >> 3; + for (j=0; j < h; ++j) { + for (i=0; i < w; ++i) { + short *data = z->img_comp[n].coeff + 64 * (i + j * z->img_comp[n].coeff_w); + if (z->spec_start == 0) { + if (!stbi__jpeg_decode_block_prog_dc(z, data, &z->huff_dc[z->img_comp[n].hd], n)){ + return 0; +} + } else { + int ha = z->img_comp[n].ha; + if (!stbi__jpeg_decode_block_prog_ac(z, data, &z->huff_ac[ha], z->fast_ac[ha])){ + return 0; +} + } + // every data block is an MCU, so countdown the restart interval + if (--z->todo <= 0) { + if (z->code_bits < 24){ stbi__grow_buffer_unsafe(z); +} + if (!STBI__RESTART(z->marker)){ return 1; +} + stbi__jpeg_reset(z); + } + } + } + return 1; + } else { // interleaved + int i,j,k,x,y; + for (j=0; j < z->img_mcu_y; ++j) { + for (i=0; i < z->img_mcu_x; ++i) { + // scan an interleaved mcu... process scan_n components in order + for (k=0; k < z->scan_n; ++k) { + int n = z->order[k]; + // scan out an mcu's worth of this component; that's just determined + // by the basic H and V specified for the component + for (y=0; y < z->img_comp[n].v; ++y) { + for (x=0; x < z->img_comp[n].h; ++x) { + int x2 = (i*z->img_comp[n].h + x); + int y2 = (j*z->img_comp[n].v + y); + short *data = z->img_comp[n].coeff + 64 * (x2 + y2 * z->img_comp[n].coeff_w); + if (!stbi__jpeg_decode_block_prog_dc(z, data, &z->huff_dc[z->img_comp[n].hd], n)){ + return 0; +} + } + } + } + // after all interleaved components, that's an interleaved MCU, + // so now count down the restart interval + if (--z->todo <= 0) { + if (z->code_bits < 24){ stbi__grow_buffer_unsafe(z); +} + if (!STBI__RESTART(z->marker)){ return 1; +} + stbi__jpeg_reset(z); + } + } + } + return 1; + } + } +} + +static void stbi__jpeg_dequantize(short *data, stbi__uint16 *dequant) +{ + int i; + for (i=0; i < 64; ++i){ + data[i] *= dequant[i]; +} +} + +static void stbi__jpeg_finish(stbi__jpeg *z) +{ + if (z->progressive) { + // dequantize and idct the data + int i,j,n; + for (n=0; n < z->s->img_n; ++n) { + int w = (z->img_comp[n].x+7) >> 3; + int h = (z->img_comp[n].y+7) >> 3; + for (j=0; j < h; ++j) { + for (i=0; i < w; ++i) { + short *data = z->img_comp[n].coeff + 64 * (i + j * z->img_comp[n].coeff_w); + stbi__jpeg_dequantize(data, z->dequant[z->img_comp[n].tq]); + z->idct_block_kernel(z->img_comp[n].data+z->img_comp[n].w2*j*8+i*8, z->img_comp[n].w2, data); + } + } + } + } +} + +static int stbi__process_marker(stbi__jpeg *z, int m) +{ + int L; + switch (m) { + case STBI__MARKER_none: // no marker found + return stbi__err("expected marker","Corrupt JPEG"); + + case 0xDD: // DRI - specify restart interval + if (stbi__get16be(z->s) != 4){ return stbi__err("bad DRI len","Corrupt JPEG"); +} + z->restart_interval = stbi__get16be(z->s); + return 1; + + case 0xDB: // DQT - define quantization table + L = stbi__get16be(z->s)-2; + while (L > 0) { + int q = stbi__get8(z->s); + int p = q >> 4, sixteen = (p != 0); + int t = q & 15,i; + if (p != 0 && p != 1){ return stbi__err("bad DQT type","Corrupt JPEG"); +} + if (t > 3){ return stbi__err("bad DQT table","Corrupt JPEG"); +} + + for (i=0; i < 64; ++i){ + z->dequant[t][stbi__jpeg_dezigzag[i]] = (stbi__uint16)(sixteen ? stbi__get16be(z->s) : stbi__get8(z->s)); +} + L -= (sixteen ? 129 : 65); + } + return L==0; + + case 0xC4: // DHT - define huffman table + L = stbi__get16be(z->s)-2; + while (L > 0) { + stbi_uc *v; + int sizes[16],i,n=0; + int q = stbi__get8(z->s); + int tc = q >> 4; + int th = q & 15; + if (tc > 1 || th > 3){ return stbi__err("bad DHT header","Corrupt JPEG"); +} + for (i=0; i < 16; ++i) { + sizes[i] = stbi__get8(z->s); + n += sizes[i]; + } + if(n > 256){ return stbi__err("bad DHT header","Corrupt JPEG"); // Loop over i < n would write past end of values! +} + L -= 17; + if (tc == 0) { + if (!stbi__build_huffman(z->huff_dc+th, sizes)){ return 0; +} + v = z->huff_dc[th].values; + } else { + if (!stbi__build_huffman(z->huff_ac+th, sizes)){ return 0; +} + v = z->huff_ac[th].values; + } + for (i=0; i < n; ++i){ + v[i] = stbi__get8(z->s); +} + if (tc != 0){ + stbi__build_fast_ac(z->fast_ac[th], z->huff_ac + th); +} + L -= n; + } + return L==0; + } + + // check for comment block or APP blocks + if ((m >= 0xE0 && m <= 0xEF) || m == 0xFE) { + L = stbi__get16be(z->s); + if (L < 2) { + if (m == 0xFE){ + return stbi__err("bad COM len","Corrupt JPEG"); +} + else{ + return stbi__err("bad APP len","Corrupt JPEG"); +} + } + L -= 2; + + if (m == 0xE0 && L >= 5) { // JFIF APP0 segment + static const unsigned char tag[5] = {'J','F','I','F','\0'}; + int ok = 1; + int i; + for (i=0; i < 5; ++i){ + if (stbi__get8(z->s) != tag[i]){ + ok = 0; +}} + L -= 5; + if (ok){ + z->jfif = 1; +} + } else if (m == 0xEE && L >= 12) { // Adobe APP14 segment + static const unsigned char tag[6] = {'A','d','o','b','e','\0'}; + int ok = 1; + int i; + for (i=0; i < 6; ++i){ + if (stbi__get8(z->s) != tag[i]){ + ok = 0; +}} + L -= 6; + if (ok) { + stbi__get8(z->s); // version + stbi__get16be(z->s); // flags0 + stbi__get16be(z->s); // flags1 + z->app14_color_transform = stbi__get8(z->s); // color transform + L -= 6; + } + } + + stbi__skip(z->s, L); + return 1; + } + + return stbi__err("unknown marker","Corrupt JPEG"); +} + +// after we see SOS +static int stbi__process_scan_header(stbi__jpeg *z) +{ + int i; + int Ls = stbi__get16be(z->s); + z->scan_n = stbi__get8(z->s); + if (z->scan_n < 1 || z->scan_n > 4 || z->scan_n > (int) z->s->img_n){ return stbi__err("bad SOS component count","Corrupt JPEG"); +} + if (Ls != 6+2*z->scan_n){ return stbi__err("bad SOS len","Corrupt JPEG"); +} + for (i=0; i < z->scan_n; ++i) { + int id = stbi__get8(z->s), which; + int q = stbi__get8(z->s); + for (which = 0; which < z->s->img_n; ++which){ + if (z->img_comp[which].id == id){ + break; +}} + if (which == z->s->img_n){ return 0; // no match +} + z->img_comp[which].hd = q >> 4; if (z->img_comp[which].hd > 3){ return stbi__err("bad DC huff","Corrupt JPEG"); +} + z->img_comp[which].ha = q & 15; if (z->img_comp[which].ha > 3){ return stbi__err("bad AC huff","Corrupt JPEG"); +} + z->order[i] = which; + } + + { + int aa; + z->spec_start = stbi__get8(z->s); + z->spec_end = stbi__get8(z->s); // should be 63, but might be 0 + aa = stbi__get8(z->s); + z->succ_high = (aa >> 4); + z->succ_low = (aa & 15); + if (z->progressive) { + if (z->spec_start > 63 || z->spec_end > 63 || z->spec_start > z->spec_end || z->succ_high > 13 || z->succ_low > 13){ + return stbi__err("bad SOS", "Corrupt JPEG"); +} + } else { + if (z->spec_start != 0){ return stbi__err("bad SOS","Corrupt JPEG"); +} + if (z->succ_high != 0 || z->succ_low != 0){ return stbi__err("bad SOS","Corrupt JPEG"); +} + z->spec_end = 63; + } + } + + return 1; +} + +static int stbi__free_jpeg_components(stbi__jpeg *z, int ncomp, int why) +{ + int i; + for (i=0; i < ncomp; ++i) { + if (z->img_comp[i].raw_data) { + STBI_FREE(z->img_comp[i].raw_data); + z->img_comp[i].raw_data = NULL; + z->img_comp[i].data = NULL; + } + if (z->img_comp[i].raw_coeff) { + STBI_FREE(z->img_comp[i].raw_coeff); + z->img_comp[i].raw_coeff = 0; + z->img_comp[i].coeff = 0; + } + if (z->img_comp[i].linebuf) { + STBI_FREE(z->img_comp[i].linebuf); + z->img_comp[i].linebuf = NULL; + } + } + return why; +} + +static int stbi__process_frame_header(stbi__jpeg *z, int scan) +{ + stbi__context *s = z->s; + int Lf,p,i,q, h_max=1,v_max=1,c; + Lf = stbi__get16be(s); if (Lf < 11){ return stbi__err("bad SOF len","Corrupt JPEG"); // JPEG +} + p = stbi__get8(s); if (p != 8){ return stbi__err("only 8-bit","JPEG format not supported: 8-bit only"); // JPEG baseline +} + s->img_y = stbi__get16be(s); if (s->img_y == 0){ return stbi__err("no header height", "JPEG format not supported: delayed height"); // Legal, but we don't handle it--but neither does IJG +} + s->img_x = stbi__get16be(s); if (s->img_x == 0){ return stbi__err("0 width","Corrupt JPEG"); // JPEG requires +} + if (s->img_y > STBI_MAX_DIMENSIONS){ return stbi__err("too large","Very large image (corrupt?)"); +} + if (s->img_x > STBI_MAX_DIMENSIONS){ return stbi__err("too large","Very large image (corrupt?)"); +} + c = stbi__get8(s); + if (c != 3 && c != 1 && c != 4){ return stbi__err("bad component count","Corrupt JPEG"); +} + s->img_n = c; + for (i=0; i < c; ++i) { + z->img_comp[i].data = NULL; + z->img_comp[i].linebuf = NULL; + } + + if (Lf != 8+3*s->img_n){ return stbi__err("bad SOF len","Corrupt JPEG"); +} + + z->rgb = 0; + for (i=0; i < s->img_n; ++i) { + static const unsigned char rgb[3] = { 'R', 'G', 'B' }; + z->img_comp[i].id = stbi__get8(s); + if (s->img_n == 3 && z->img_comp[i].id == rgb[i]){ + ++z->rgb; +} + q = stbi__get8(s); + z->img_comp[i].h = (q >> 4); if (!z->img_comp[i].h || z->img_comp[i].h > 4){ return stbi__err("bad H","Corrupt JPEG"); +} + z->img_comp[i].v = q & 15; if (!z->img_comp[i].v || z->img_comp[i].v > 4){ return stbi__err("bad V","Corrupt JPEG"); +} + z->img_comp[i].tq = stbi__get8(s); if (z->img_comp[i].tq > 3){ return stbi__err("bad TQ","Corrupt JPEG"); +} + } + + if (scan != STBI__SCAN_load){ return 1; +} + + if (!stbi__mad3sizes_valid(s->img_x, s->img_y, s->img_n, 0)){ return stbi__err("too large", "Image too large to decode"); +} + + for (i=0; i < s->img_n; ++i) { + if (z->img_comp[i].h > h_max){ h_max = z->img_comp[i].h; +} + if (z->img_comp[i].v > v_max){ v_max = z->img_comp[i].v; +} + } + + // check that plane subsampling factors are integer ratios; our resamplers can't deal with fractional ratios + // and I've never seen a non-corrupted JPEG file actually use them + for (i=0; i < s->img_n; ++i) { + if (h_max % z->img_comp[i].h != 0){ return stbi__err("bad H","Corrupt JPEG"); +} + if (v_max % z->img_comp[i].v != 0){ return stbi__err("bad V","Corrupt JPEG"); +} + } + + // compute interleaved mcu info + z->img_h_max = h_max; + z->img_v_max = v_max; + z->img_mcu_w = h_max * 8; + z->img_mcu_h = v_max * 8; + // these sizes can't be more than 17 bits + z->img_mcu_x = (s->img_x + z->img_mcu_w-1) / z->img_mcu_w; + z->img_mcu_y = (s->img_y + z->img_mcu_h-1) / z->img_mcu_h; + + for (i=0; i < s->img_n; ++i) { + // number of effective pixels (e.g. for non-interleaved MCU) + z->img_comp[i].x = (s->img_x * z->img_comp[i].h + h_max-1) / h_max; + z->img_comp[i].y = (s->img_y * z->img_comp[i].v + v_max-1) / v_max; + // to simplify generation, we'll allocate enough memory to decode + // the bogus oversized data from using interleaved MCUs and their + // big blocks (e.g. a 16x16 iMCU on an image of width 33); we won't + // discard the extra data until colorspace conversion + // + // img_mcu_x, img_mcu_y: <=17 bits; comp[i].h and .v are <=4 (checked earlier) + // so these muls can't overflow with 32-bit ints (which we require) + z->img_comp[i].w2 = z->img_mcu_x * z->img_comp[i].h * 8; + z->img_comp[i].h2 = z->img_mcu_y * z->img_comp[i].v * 8; + z->img_comp[i].coeff = 0; + z->img_comp[i].raw_coeff = 0; + z->img_comp[i].linebuf = NULL; + z->img_comp[i].raw_data = stbi__malloc_mad2(z->img_comp[i].w2, z->img_comp[i].h2, 15); + if (z->img_comp[i].raw_data == NULL){ + return stbi__free_jpeg_components(z, i+1, stbi__err("outofmem", "Out of memory")); +} + // align blocks for idct using mmx/sse + z->img_comp[i].data = (stbi_uc*) (((size_t) z->img_comp[i].raw_data + 15) & ~15); + if (z->progressive) { + // w2, h2 are multiples of 8 (see above) + z->img_comp[i].coeff_w = z->img_comp[i].w2 / 8; + z->img_comp[i].coeff_h = z->img_comp[i].h2 / 8; + z->img_comp[i].raw_coeff = stbi__malloc_mad3(z->img_comp[i].w2, z->img_comp[i].h2, sizeof(short), 15); + if (z->img_comp[i].raw_coeff == NULL){ + return stbi__free_jpeg_components(z, i+1, stbi__err("outofmem", "Out of memory")); +} + z->img_comp[i].coeff = (short*) (((size_t) z->img_comp[i].raw_coeff + 15) & ~15); + } + } + + return 1; +} + +// use comparisons since in some cases we handle more than one case (e.g. SOF) +#define stbi__DNL(x) ((x) == 0xdc) +#define stbi__SOI(x) ((x) == 0xd8) +#define stbi__EOI(x) ((x) == 0xd9) +#define stbi__SOF(x) ((x) == 0xc0 || (x) == 0xc1 || (x) == 0xc2) +#define stbi__SOS(x) ((x) == 0xda) + +#define stbi__SOF_progressive(x) ((x) == 0xc2) + +static int stbi__decode_jpeg_header(stbi__jpeg *z, int scan) +{ + int m; + z->jfif = 0; + z->app14_color_transform = -1; // valid values are 0,1,2 + z->marker = STBI__MARKER_none; // initialize cached marker to empty + m = stbi__get_marker(z); + if (!stbi__SOI(m)){ return stbi__err("no SOI","Corrupt JPEG"); +} + if (scan == STBI__SCAN_type){ return 1; +} + m = stbi__get_marker(z); + while (!stbi__SOF(m)) { + if (!stbi__process_marker(z,m)){ return 0; +} + m = stbi__get_marker(z); + while (m == STBI__MARKER_none) { + // some files have extra padding after their blocks, so ok, we'll scan + if (stbi__at_eof(z->s)){ return stbi__err("no SOF", "Corrupt JPEG"); +} + m = stbi__get_marker(z); + } + } + z->progressive = stbi__SOF_progressive(m); + if (!stbi__process_frame_header(z, scan)){ return 0; +} + return 1; +} + +static stbi_uc stbi__skip_jpeg_junk_at_end(stbi__jpeg *j) +{ + // some JPEGs have junk at end, skip over it but if we find what looks + // like a valid marker, resume there + while (!stbi__at_eof(j->s)) { + stbi_uc x = stbi__get8(j->s); + while (x == 0xff) { // might be a marker + if (stbi__at_eof(j->s)){ return STBI__MARKER_none; +} + x = stbi__get8(j->s); + if (x != 0x00 && x != 0xff) { + // not a stuffed zero or lead-in to another marker, looks + // like an actual marker, return it + return x; + } + // stuffed zero has x=0 now which ends the loop, meaning we go + // back to regular scan loop. + // repeated 0xff keeps trying to read the next byte of the marker. + } + } + return STBI__MARKER_none; +} + +// decode image to YCbCr format +static int stbi__decode_jpeg_image(stbi__jpeg *j) +{ + int m; + for (m = 0; m < 4; m++) { + j->img_comp[m].raw_data = NULL; + j->img_comp[m].raw_coeff = NULL; + } + j->restart_interval = 0; + if (!stbi__decode_jpeg_header(j, STBI__SCAN_load)){ return 0; +} + m = stbi__get_marker(j); + while (!stbi__EOI(m)) { + if (stbi__SOS(m)) { + if (!stbi__process_scan_header(j)){ return 0; +} + if (!stbi__parse_entropy_coded_data(j)){ return 0; +} + if (j->marker == STBI__MARKER_none ) { + j->marker = stbi__skip_jpeg_junk_at_end(j); + // if we reach eof without hitting a marker, stbi__get_marker() below will fail and we'll eventually return 0 + } + m = stbi__get_marker(j); + if (STBI__RESTART(m)){ + m = stbi__get_marker(j); +} + } else if (stbi__DNL(m)) { + int Ld = stbi__get16be(j->s); + stbi__uint32 NL = stbi__get16be(j->s); + if (Ld != 4){ return stbi__err("bad DNL len", "Corrupt JPEG"); +} + if (NL != j->s->img_y){ return stbi__err("bad DNL height", "Corrupt JPEG"); +} + m = stbi__get_marker(j); + } else { + if (!stbi__process_marker(j, m)){ return 1; +} + m = stbi__get_marker(j); + } + } + if (j->progressive){ + stbi__jpeg_finish(j); +} + return 1; +} + +// static jfif-centered resampling (across block boundaries) + +typedef stbi_uc *(*resample_row_func)(stbi_uc *out, stbi_uc *in0, stbi_uc *in1, + int w, int hs); + +#define stbi__div4(x) ((stbi_uc) ((x) >> 2)) + +static stbi_uc *resample_row_1(stbi_uc *out, stbi_uc *in_near, stbi_uc *in_far, int w, int hs) +{ + STBI_NOTUSED(out); + STBI_NOTUSED(in_far); + STBI_NOTUSED(w); + STBI_NOTUSED(hs); + return in_near; +} + +static stbi_uc* stbi__resample_row_v_2(stbi_uc *out, stbi_uc *in_near, stbi_uc *in_far, int w, int hs) +{ + // need to generate two samples vertically for every one in input + int i; + STBI_NOTUSED(hs); + for (i=0; i < w; ++i){ + out[i] = stbi__div4(3*in_near[i] + in_far[i] + 2); +} + return out; +} + +static stbi_uc* stbi__resample_row_h_2(stbi_uc *out, stbi_uc *in_near, stbi_uc *in_far, int w, int hs) +{ + // need to generate two samples horizontally for every one in input + int i; + stbi_uc *input = in_near; + + if (w == 1) { + // if only one sample, can't do any interpolation + out[0] = out[1] = input[0]; + return out; + } + + out[0] = input[0]; + out[1] = stbi__div4(input[0]*3 + input[1] + 2); + for (i=1; i < w-1; ++i) { + int n = 3*input[i]+2; + out[i*2+0] = stbi__div4(n+input[i-1]); + out[i*2+1] = stbi__div4(n+input[i+1]); + } + out[i*2+0] = stbi__div4(input[w-2]*3 + input[w-1] + 2); + out[i*2+1] = input[w-1]; + + STBI_NOTUSED(in_far); + STBI_NOTUSED(hs); + + return out; +} + +#define stbi__div16(x) ((stbi_uc) ((x) >> 4)) + +static stbi_uc *stbi__resample_row_hv_2(stbi_uc *out, stbi_uc *in_near, stbi_uc *in_far, int w, int hs) +{ + // need to generate 2x2 samples for every one in input + int i,t0,t1; + if (w == 1) { + out[0] = out[1] = stbi__div4(3*in_near[0] + in_far[0] + 2); + return out; + } + + t1 = 3*in_near[0] + in_far[0]; + out[0] = stbi__div4(t1+2); + for (i=1; i < w; ++i) { + t0 = t1; + t1 = 3*in_near[i]+in_far[i]; + out[i*2-1] = stbi__div16(3*t0 + t1 + 8); + out[i*2 ] = stbi__div16(3*t1 + t0 + 8); + } + out[w*2-1] = stbi__div4(t1+2); + + STBI_NOTUSED(hs); + + return out; +} + +#if defined(STBI_SSE2) || defined(STBI_NEON) +static stbi_uc *stbi__resample_row_hv_2_simd(stbi_uc *out, stbi_uc *in_near, stbi_uc *in_far, int w, int hs) +{ + // need to generate 2x2 samples for every one in input + int i=0,t0,t1; + + if (w == 1) { + out[0] = out[1] = stbi__div4(3*in_near[0] + in_far[0] + 2); + return out; + } + + t1 = 3*in_near[0] + in_far[0]; + // process groups of 8 pixels for as long as we can. + // note we can't handle the last pixel in a row in this loop + // because we need to handle the filter boundary conditions. + for (; i < ((w-1) & ~7); i += 8) { +#if defined(STBI_SSE2) + // load and perform the vertical filtering pass + // this uses 3*x + y = 4*x + (y - x) + __m128i zero = _mm_setzero_si128(); + __m128i farb = _mm_loadl_epi64((__m128i *) (in_far + i)); + __m128i nearb = _mm_loadl_epi64((__m128i *) (in_near + i)); + __m128i farw = _mm_unpacklo_epi8(farb, zero); + __m128i nearw = _mm_unpacklo_epi8(nearb, zero); + __m128i diff = _mm_sub_epi16(farw, nearw); + __m128i nears = _mm_slli_epi16(nearw, 2); + __m128i curr = _mm_add_epi16(nears, diff); // current row + + // horizontal filter works the same based on shifted vers of current + // row. "prev" is current row shifted right by 1 pixel; we need to + // insert the previous pixel value (from t1). + // "next" is current row shifted left by 1 pixel, with first pixel + // of next block of 8 pixels added in. + __m128i prv0 = _mm_slli_si128(curr, 2); + __m128i nxt0 = _mm_srli_si128(curr, 2); + __m128i prev = _mm_insert_epi16(prv0, t1, 0); + __m128i next = _mm_insert_epi16(nxt0, 3*in_near[i+8] + in_far[i+8], 7); + + // horizontal filter, polyphase implementation since it's convenient: + // even pixels = 3*cur + prev = cur*4 + (prev - cur) + // odd pixels = 3*cur + next = cur*4 + (next - cur) + // note the shared term. + __m128i bias = _mm_set1_epi16(8); + __m128i curs = _mm_slli_epi16(curr, 2); + __m128i prvd = _mm_sub_epi16(prev, curr); + __m128i nxtd = _mm_sub_epi16(next, curr); + __m128i curb = _mm_add_epi16(curs, bias); + __m128i even = _mm_add_epi16(prvd, curb); + __m128i odd = _mm_add_epi16(nxtd, curb); + + // interleave even and odd pixels, then undo scaling. + __m128i int0 = _mm_unpacklo_epi16(even, odd); + __m128i int1 = _mm_unpackhi_epi16(even, odd); + __m128i de0 = _mm_srli_epi16(int0, 4); + __m128i de1 = _mm_srli_epi16(int1, 4); + + // pack and write output + __m128i outv = _mm_packus_epi16(de0, de1); + _mm_storeu_si128((__m128i *) (out + i*2), outv); +#elif defined(STBI_NEON) + // load and perform the vertical filtering pass + // this uses 3*x + y = 4*x + (y - x) + uint8x8_t farb = vld1_u8(in_far + i); + uint8x8_t nearb = vld1_u8(in_near + i); + int16x8_t diff = vreinterpretq_s16_u16(vsubl_u8(farb, nearb)); + int16x8_t nears = vreinterpretq_s16_u16(vshll_n_u8(nearb, 2)); + int16x8_t curr = vaddq_s16(nears, diff); // current row + + // horizontal filter works the same based on shifted vers of current + // row. "prev" is current row shifted right by 1 pixel; we need to + // insert the previous pixel value (from t1). + // "next" is current row shifted left by 1 pixel, with first pixel + // of next block of 8 pixels added in. + int16x8_t prv0 = vextq_s16(curr, curr, 7); + int16x8_t nxt0 = vextq_s16(curr, curr, 1); + int16x8_t prev = vsetq_lane_s16(t1, prv0, 0); + int16x8_t next = vsetq_lane_s16(3*in_near[i+8] + in_far[i+8], nxt0, 7); + + // horizontal filter, polyphase implementation since it's convenient: + // even pixels = 3*cur + prev = cur*4 + (prev - cur) + // odd pixels = 3*cur + next = cur*4 + (next - cur) + // note the shared term. + int16x8_t curs = vshlq_n_s16(curr, 2); + int16x8_t prvd = vsubq_s16(prev, curr); + int16x8_t nxtd = vsubq_s16(next, curr); + int16x8_t even = vaddq_s16(curs, prvd); + int16x8_t odd = vaddq_s16(curs, nxtd); + + // undo scaling and round, then store with even/odd phases interleaved + uint8x8x2_t o; + o.val[0] = vqrshrun_n_s16(even, 4); + o.val[1] = vqrshrun_n_s16(odd, 4); + vst2_u8(out + i*2, o); +#endif + + // "previous" value for next iter + t1 = 3*in_near[i+7] + in_far[i+7]; + } + + t0 = t1; + t1 = 3*in_near[i] + in_far[i]; + out[i*2] = stbi__div16(3*t1 + t0 + 8); + + for (++i; i < w; ++i) { + t0 = t1; + t1 = 3*in_near[i]+in_far[i]; + out[i*2-1] = stbi__div16(3*t0 + t1 + 8); + out[i*2 ] = stbi__div16(3*t1 + t0 + 8); + } + out[w*2-1] = stbi__div4(t1+2); + + STBI_NOTUSED(hs); + + return out; +} +#endif + +static stbi_uc *stbi__resample_row_generic(stbi_uc *out, stbi_uc *in_near, stbi_uc *in_far, int w, int hs) +{ + // resample with nearest-neighbor + int i,j; + STBI_NOTUSED(in_far); + for (i=0; i < w; ++i){ + for (j=0; j < hs; ++j){ + out[i*hs+j] = in_near[i]; +}} + return out; +} + +// this is a reduced-precision calculation of YCbCr-to-RGB introduced +// to make sure the code produces the same results in both SIMD and scalar +#define stbi__float2fixed(x) (((int) ((x) * 4096.0f + 0.5f)) << 8) +static void stbi__YCbCr_to_RGB_row(stbi_uc *out, const stbi_uc *y, const stbi_uc *pcb, const stbi_uc *pcr, int count, int step) +{ + int i; + for (i=0; i < count; ++i) { + int y_fixed = (y[i] << 20) + (1<<19); // rounding + int r,g,b; + int cr = pcr[i] - 128; + int cb = pcb[i] - 128; + r = y_fixed + cr* stbi__float2fixed(1.40200f); + g = y_fixed + (cr*-stbi__float2fixed(0.71414f)) + ((cb*-stbi__float2fixed(0.34414f)) & 0xffff0000); + b = y_fixed + cb* stbi__float2fixed(1.77200f); + r >>= 20; + g >>= 20; + b >>= 20; + if ((unsigned) r > 255) { if (r < 0){ r = 0; +} else{ r = 255; +} } + if ((unsigned) g > 255) { if (g < 0){ g = 0; +} else{ g = 255; +} } + if ((unsigned) b > 255) { if (b < 0){ b = 0; +} else{ b = 255; +} } + out[0] = (stbi_uc)r; + out[1] = (stbi_uc)g; + out[2] = (stbi_uc)b; + out[3] = 255; + out += step; + } +} + +#if defined(STBI_SSE2) || defined(STBI_NEON) +static void stbi__YCbCr_to_RGB_simd(stbi_uc *out, stbi_uc const *y, stbi_uc const *pcb, stbi_uc const *pcr, int count, int step) +{ + int i = 0; + +#ifdef STBI_SSE2 + // step == 3 is pretty ugly on the final interleave, and i'm not convinced + // it's useful in practice (you wouldn't use it for textures, for example). + // so just accelerate step == 4 case. + if (step == 4) { + // this is a fairly straightforward implementation and not super-optimized. + __m128i signflip = _mm_set1_epi8(-0x80); + __m128i cr_const0 = _mm_set1_epi16( (short) ( 1.40200f*4096.0f+0.5f)); + __m128i cr_const1 = _mm_set1_epi16( - (short) ( 0.71414f*4096.0f+0.5f)); + __m128i cb_const0 = _mm_set1_epi16( - (short) ( 0.34414f*4096.0f+0.5f)); + __m128i cb_const1 = _mm_set1_epi16( (short) ( 1.77200f*4096.0f+0.5f)); + __m128i y_bias = _mm_set1_epi8((char) (unsigned char) 128); + __m128i xw = _mm_set1_epi16(255); // alpha channel + + for (; i+7 < count; i += 8) { + // load + __m128i y_bytes = _mm_loadl_epi64((__m128i *) (y+i)); + __m128i cr_bytes = _mm_loadl_epi64((__m128i *) (pcr+i)); + __m128i cb_bytes = _mm_loadl_epi64((__m128i *) (pcb+i)); + __m128i cr_biased = _mm_xor_si128(cr_bytes, signflip); // -128 + __m128i cb_biased = _mm_xor_si128(cb_bytes, signflip); // -128 + + // unpack to short (and left-shift cr, cb by 8) + __m128i yw = _mm_unpacklo_epi8(y_bias, y_bytes); + __m128i crw = _mm_unpacklo_epi8(_mm_setzero_si128(), cr_biased); + __m128i cbw = _mm_unpacklo_epi8(_mm_setzero_si128(), cb_biased); + + // color transform + __m128i yws = _mm_srli_epi16(yw, 4); + __m128i cr0 = _mm_mulhi_epi16(cr_const0, crw); + __m128i cb0 = _mm_mulhi_epi16(cb_const0, cbw); + __m128i cb1 = _mm_mulhi_epi16(cbw, cb_const1); + __m128i cr1 = _mm_mulhi_epi16(crw, cr_const1); + __m128i rws = _mm_add_epi16(cr0, yws); + __m128i gwt = _mm_add_epi16(cb0, yws); + __m128i bws = _mm_add_epi16(yws, cb1); + __m128i gws = _mm_add_epi16(gwt, cr1); + + // descale + __m128i rw = _mm_srai_epi16(rws, 4); + __m128i bw = _mm_srai_epi16(bws, 4); + __m128i gw = _mm_srai_epi16(gws, 4); + + // back to byte, set up for transpose + __m128i brb = _mm_packus_epi16(rw, bw); + __m128i gxb = _mm_packus_epi16(gw, xw); + + // transpose to interleave channels + __m128i t0 = _mm_unpacklo_epi8(brb, gxb); + __m128i t1 = _mm_unpackhi_epi8(brb, gxb); + __m128i o0 = _mm_unpacklo_epi16(t0, t1); + __m128i o1 = _mm_unpackhi_epi16(t0, t1); + + // store + _mm_storeu_si128((__m128i *) (out + 0), o0); + _mm_storeu_si128((__m128i *) (out + 16), o1); + out += 32; + } + } +#endif + +#ifdef STBI_NEON + // in this version, step=3 support would be easy to add. but is there demand? + if (step == 4) { + // this is a fairly straightforward implementation and not super-optimized. + uint8x8_t signflip = vdup_n_u8(0x80); + int16x8_t cr_const0 = vdupq_n_s16( (short) ( 1.40200f*4096.0f+0.5f)); + int16x8_t cr_const1 = vdupq_n_s16( - (short) ( 0.71414f*4096.0f+0.5f)); + int16x8_t cb_const0 = vdupq_n_s16( - (short) ( 0.34414f*4096.0f+0.5f)); + int16x8_t cb_const1 = vdupq_n_s16( (short) ( 1.77200f*4096.0f+0.5f)); + + for (; i+7 < count; i += 8) { + // load + uint8x8_t y_bytes = vld1_u8(y + i); + uint8x8_t cr_bytes = vld1_u8(pcr + i); + uint8x8_t cb_bytes = vld1_u8(pcb + i); + int8x8_t cr_biased = vreinterpret_s8_u8(vsub_u8(cr_bytes, signflip)); + int8x8_t cb_biased = vreinterpret_s8_u8(vsub_u8(cb_bytes, signflip)); + + // expand to s16 + int16x8_t yws = vreinterpretq_s16_u16(vshll_n_u8(y_bytes, 4)); + int16x8_t crw = vshll_n_s8(cr_biased, 7); + int16x8_t cbw = vshll_n_s8(cb_biased, 7); + + // color transform + int16x8_t cr0 = vqdmulhq_s16(crw, cr_const0); + int16x8_t cb0 = vqdmulhq_s16(cbw, cb_const0); + int16x8_t cr1 = vqdmulhq_s16(crw, cr_const1); + int16x8_t cb1 = vqdmulhq_s16(cbw, cb_const1); + int16x8_t rws = vaddq_s16(yws, cr0); + int16x8_t gws = vaddq_s16(vaddq_s16(yws, cb0), cr1); + int16x8_t bws = vaddq_s16(yws, cb1); + + // undo scaling, round, convert to byte + uint8x8x4_t o; + o.val[0] = vqrshrun_n_s16(rws, 4); + o.val[1] = vqrshrun_n_s16(gws, 4); + o.val[2] = vqrshrun_n_s16(bws, 4); + o.val[3] = vdup_n_u8(255); + + // store, interleaving r/g/b/a + vst4_u8(out, o); + out += 8*4; + } + } +#endif + + for (; i < count; ++i) { + int y_fixed = (y[i] << 20) + (1<<19); // rounding + int r,g,b; + int cr = pcr[i] - 128; + int cb = pcb[i] - 128; + r = y_fixed + cr* stbi__float2fixed(1.40200f); + g = y_fixed + cr*-stbi__float2fixed(0.71414f) + ((cb*-stbi__float2fixed(0.34414f)) & 0xffff0000); + b = y_fixed + cb* stbi__float2fixed(1.77200f); + r >>= 20; + g >>= 20; + b >>= 20; + if ((unsigned) r > 255) { if (r < 0){ r = 0; +} else{ r = 255; +} } + if ((unsigned) g > 255) { if (g < 0){ g = 0; +} else{ g = 255; +} } + if ((unsigned) b > 255) { if (b < 0){ b = 0; +} else{ b = 255; +} } + out[0] = (stbi_uc)r; + out[1] = (stbi_uc)g; + out[2] = (stbi_uc)b; + out[3] = 255; + out += step; + } +} +#endif + +// set up the kernels +static void stbi__setup_jpeg(stbi__jpeg *j) +{ + j->idct_block_kernel = stbi__idct_block; + j->YCbCr_to_RGB_kernel = stbi__YCbCr_to_RGB_row; + j->resample_row_hv_2_kernel = stbi__resample_row_hv_2; + +#ifdef STBI_SSE2 + if (stbi__sse2_available()) { + j->idct_block_kernel = stbi__idct_simd; + j->YCbCr_to_RGB_kernel = stbi__YCbCr_to_RGB_simd; + j->resample_row_hv_2_kernel = stbi__resample_row_hv_2_simd; + } +#endif + +#ifdef STBI_NEON + j->idct_block_kernel = stbi__idct_simd; + j->YCbCr_to_RGB_kernel = stbi__YCbCr_to_RGB_simd; + j->resample_row_hv_2_kernel = stbi__resample_row_hv_2_simd; +#endif +} + +// clean up the temporary component buffers +static void stbi__cleanup_jpeg(stbi__jpeg *j) +{ + stbi__free_jpeg_components(j, j->s->img_n, 0); +} + +typedef struct +{ + resample_row_func resample; + stbi_uc *line0,*line1; + int hs,vs; // expansion factor in each axis + int w_lores; // horizontal pixels pre-expansion + int ystep; // how far through vertical expansion we are + int ypos; // which pre-expansion row we're on +} stbi__resample; + +// fast 0..255 * 0..255 => 0..255 rounded multiplication +static stbi_uc stbi__blinn_8x8(stbi_uc x, stbi_uc y) +{ + unsigned int t = x*y + 128; + return (stbi_uc) ((t + (t >>8)) >> 8); +} + +static stbi_uc *load_jpeg_image(stbi__jpeg *z, int *out_x, int *out_y, int *comp, int req_comp) +{ + int n, decode_n, is_rgb; + z->s->img_n = 0; // make stbi__cleanup_jpeg safe + + // validate req_comp + if (req_comp < 0 || req_comp > 4){ return stbi__errpuc("bad req_comp", "Internal error"); +} + + // load a jpeg image from whichever source, but leave in YCbCr format + if (!stbi__decode_jpeg_image(z)) { stbi__cleanup_jpeg(z); return NULL; } + + // determine actual number of components to generate + n = req_comp ? req_comp : z->s->img_n >= 3 ? 3 : 1; + + is_rgb = z->s->img_n == 3 && (z->rgb == 3 || (z->app14_color_transform == 0 && !z->jfif)); + + if (z->s->img_n == 3 && n < 3 && !is_rgb){ + decode_n = 1; +} + else{ + decode_n = z->s->img_n; +} + + // nothing to do if no components requested; check this now to avoid + // accessing uninitialized coutput[0] later + if (decode_n <= 0) { stbi__cleanup_jpeg(z); return NULL; } + + // resample and color-convert + { + int k; + unsigned int i,j; + stbi_uc *output; + stbi_uc *coutput[4] = { NULL, NULL, NULL, NULL }; + + stbi__resample res_comp[4]; + + for (k=0; k < decode_n; ++k) { + stbi__resample *r = &res_comp[k]; + + // allocate line buffer big enough for upsampling off the edges + // with upsample factor of 4 + z->img_comp[k].linebuf = (stbi_uc *) stbi__malloc(z->s->img_x + 3); + if (!z->img_comp[k].linebuf) { stbi__cleanup_jpeg(z); return stbi__errpuc("outofmem", "Out of memory"); } + + r->hs = z->img_h_max / z->img_comp[k].h; + r->vs = z->img_v_max / z->img_comp[k].v; + r->ystep = r->vs >> 1; + r->w_lores = (z->s->img_x + r->hs-1) / r->hs; + r->ypos = 0; + r->line0 = r->line1 = z->img_comp[k].data; + + if (r->hs == 1 && r->vs == 1){ r->resample = resample_row_1; +} + else if (r->hs == 1 && r->vs == 2){ r->resample = stbi__resample_row_v_2; +} + else if (r->hs == 2 && r->vs == 1){ r->resample = stbi__resample_row_h_2; +} + else if (r->hs == 2 && r->vs == 2){ r->resample = z->resample_row_hv_2_kernel; +} + else{ r->resample = stbi__resample_row_generic; +} + } + + // can't error after this so, this is safe + output = (stbi_uc *) stbi__malloc_mad3(n, z->s->img_x, z->s->img_y, 1); + if (!output) { stbi__cleanup_jpeg(z); return stbi__errpuc("outofmem", "Out of memory"); } + + // now go ahead and resample + for (j=0; j < z->s->img_y; ++j) { + stbi_uc *out = output + n * z->s->img_x * j; + for (k=0; k < decode_n; ++k) { + stbi__resample *r = &res_comp[k]; + int y_bot = r->ystep >= (r->vs >> 1); + coutput[k] = r->resample(z->img_comp[k].linebuf, + y_bot ? r->line1 : r->line0, + y_bot ? r->line0 : r->line1, + r->w_lores, r->hs); + if (++r->ystep >= r->vs) { + r->ystep = 0; + r->line0 = r->line1; + if (++r->ypos < z->img_comp[k].y){ + r->line1 += z->img_comp[k].w2; +} + } + } + if (n >= 3) { + stbi_uc *y = coutput[0]; + if (z->s->img_n == 3) { + if (is_rgb) { + for (i=0; i < z->s->img_x; ++i) { + out[0] = y[i]; + out[1] = coutput[1][i]; + out[2] = coutput[2][i]; + out[3] = 255; + out += n; + } + } else { + z->YCbCr_to_RGB_kernel(out, y, coutput[1], coutput[2], z->s->img_x, n); + } + } else if (z->s->img_n == 4) { + if (z->app14_color_transform == 0) { // CMYK + for (i=0; i < z->s->img_x; ++i) { + stbi_uc m = coutput[3][i]; + out[0] = stbi__blinn_8x8(coutput[0][i], m); + out[1] = stbi__blinn_8x8(coutput[1][i], m); + out[2] = stbi__blinn_8x8(coutput[2][i], m); + out[3] = 255; + out += n; + } + } else if (z->app14_color_transform == 2) { // YCCK + z->YCbCr_to_RGB_kernel(out, y, coutput[1], coutput[2], z->s->img_x, n); + for (i=0; i < z->s->img_x; ++i) { + stbi_uc m = coutput[3][i]; + out[0] = stbi__blinn_8x8(255 - out[0], m); + out[1] = stbi__blinn_8x8(255 - out[1], m); + out[2] = stbi__blinn_8x8(255 - out[2], m); + out += n; + } + } else { // YCbCr + alpha? Ignore the fourth channel for now + z->YCbCr_to_RGB_kernel(out, y, coutput[1], coutput[2], z->s->img_x, n); + } + } else{ + for (i=0; i < z->s->img_x; ++i) { + out[0] = out[1] = out[2] = y[i]; + out[3] = 255; // not used if n==3 + out += n; + } +} + } else { + if (is_rgb) { + if (n == 1){ + for (i=0; i < z->s->img_x; ++i){ + *out++ = stbi__compute_y(coutput[0][i], coutput[1][i], coutput[2][i]); +}} + else { + for (i=0; i < z->s->img_x; ++i, out += 2) { + out[0] = stbi__compute_y(coutput[0][i], coutput[1][i], coutput[2][i]); + out[1] = 255; + } + } + } else if (z->s->img_n == 4 && z->app14_color_transform == 0) { + for (i=0; i < z->s->img_x; ++i) { + stbi_uc m = coutput[3][i]; + stbi_uc r = stbi__blinn_8x8(coutput[0][i], m); + stbi_uc g = stbi__blinn_8x8(coutput[1][i], m); + stbi_uc b = stbi__blinn_8x8(coutput[2][i], m); + out[0] = stbi__compute_y(r, g, b); + out[1] = 255; + out += n; + } + } else if (z->s->img_n == 4 && z->app14_color_transform == 2) { + for (i=0; i < z->s->img_x; ++i) { + out[0] = stbi__blinn_8x8(255 - coutput[0][i], coutput[3][i]); + out[1] = 255; + out += n; + } + } else { + stbi_uc *y = coutput[0]; + if (n == 1){ + for (i=0; i < z->s->img_x; ++i){ out[i] = y[i]; +}} + else{ + for (i=0; i < z->s->img_x; ++i) { *out++ = y[i]; *out++ = 255; } +} + } + } + } + stbi__cleanup_jpeg(z); + *out_x = z->s->img_x; + *out_y = z->s->img_y; + if (comp){ *comp = z->s->img_n >= 3 ? 3 : 1; // report original components, not output +} + return output; + } +} + +static void *stbi__jpeg_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri) +{ + unsigned char* result; + stbi__jpeg* j = (stbi__jpeg*) stbi__malloc(sizeof(stbi__jpeg)); + if (!j){ return stbi__errpuc("outofmem", "Out of memory"); +} + memset(j, 0, sizeof(stbi__jpeg)); + STBI_NOTUSED(ri); + j->s = s; + stbi__setup_jpeg(j); + result = load_jpeg_image(j, x,y,comp,req_comp); + STBI_FREE(j); + return result; +} + +static int stbi__jpeg_test(stbi__context *s) +{ + int r; + stbi__jpeg* j = (stbi__jpeg*)stbi__malloc(sizeof(stbi__jpeg)); + if (!j){ return stbi__err("outofmem", "Out of memory"); +} + memset(j, 0, sizeof(stbi__jpeg)); + j->s = s; + stbi__setup_jpeg(j); + r = stbi__decode_jpeg_header(j, STBI__SCAN_type); + stbi__rewind(s); + STBI_FREE(j); + return r; +} + +static int stbi__jpeg_info_raw(stbi__jpeg *j, int *x, int *y, int *comp) +{ + if (!stbi__decode_jpeg_header(j, STBI__SCAN_header)) { + stbi__rewind( j->s ); + return 0; + } + if (x){ *x = j->s->img_x; +} + if (y){ *y = j->s->img_y; +} + if (comp){ *comp = j->s->img_n >= 3 ? 3 : 1; +} + return 1; +} + +static int stbi__jpeg_info(stbi__context *s, int *x, int *y, int *comp) +{ + int result; + stbi__jpeg* j = (stbi__jpeg*) (stbi__malloc(sizeof(stbi__jpeg))); + if (!j){ return stbi__err("outofmem", "Out of memory"); +} + memset(j, 0, sizeof(stbi__jpeg)); + j->s = s; + result = stbi__jpeg_info_raw(j, x, y, comp); + STBI_FREE(j); + return result; +} +#endif + +// public domain zlib decode v0.2 Sean Barrett 2006-11-18 +// simple implementation +// - all input must be provided in an upfront buffer +// - all output is written to a single output buffer (can malloc/realloc) +// performance +// - fast huffman + +#ifndef STBI_NO_ZLIB + +// fast-way is faster to check than jpeg huffman, but slow way is slower +#define STBI__ZFAST_BITS 9 // accelerate all cases in default tables +#define STBI__ZFAST_MASK ((1 << STBI__ZFAST_BITS) - 1) +#define STBI__ZNSYMS 288 // number of symbols in literal/length alphabet + +// zlib-style huffman encoding +// (jpegs packs from left, zlib from right, so can't share code) +typedef struct +{ + stbi__uint16 fast[1 << STBI__ZFAST_BITS]; + stbi__uint16 firstcode[16]; + int maxcode[17]; + stbi__uint16 firstsymbol[16]; + stbi_uc size[STBI__ZNSYMS]; + stbi__uint16 value[STBI__ZNSYMS]; +} stbi__zhuffman; + +stbi_inline static int stbi__bitreverse16(int n) +{ + n = ((n & 0xAAAA) >> 1) | ((n & 0x5555) << 1); + n = ((n & 0xCCCC) >> 2) | ((n & 0x3333) << 2); + n = ((n & 0xF0F0) >> 4) | ((n & 0x0F0F) << 4); + n = ((n & 0xFF00) >> 8) | ((n & 0x00FF) << 8); + return n; +} + +stbi_inline static int stbi__bit_reverse(int v, int bits) +{ + STBI_ASSERT(bits <= 16); + // to bit reverse n bits, reverse 16 and shift + // e.g. 11 bits, bit reverse and shift away 5 + return stbi__bitreverse16(v) >> (16-bits); +} + +static int stbi__zbuild_huffman(stbi__zhuffman *z, const stbi_uc *sizelist, int num) +{ + int i,k=0; + int code, next_code[16], sizes[17]; + + // DEFLATE spec for generating codes + memset(sizes, 0, sizeof(sizes)); + memset(z->fast, 0, sizeof(z->fast)); + for (i=0; i < num; ++i){ + ++sizes[sizelist[i]]; +} + sizes[0] = 0; + for (i=1; i < 16; ++i){ + if (sizes[i] > (1 << i)){ + return stbi__err("bad sizes", "Corrupt PNG"); +}} + code = 0; + for (i=1; i < 16; ++i) { + next_code[i] = code; + z->firstcode[i] = (stbi__uint16) code; + z->firstsymbol[i] = (stbi__uint16) k; + code = (code + sizes[i]); + if (sizes[i]){ + if (code-1 >= (1 << i)){ return stbi__err("bad codelengths","Corrupt PNG"); +}} + z->maxcode[i] = code << (16-i); // preshift for inner loop + code <<= 1; + k += sizes[i]; + } + z->maxcode[16] = 0x10000; // sentinel + for (i=0; i < num; ++i) { + int s = sizelist[i]; + if (s) { + int c = next_code[s] - z->firstcode[s] + z->firstsymbol[s]; + stbi__uint16 fastv = (stbi__uint16) ((s << 9) | i); + z->size [c] = (stbi_uc ) s; + z->value[c] = (stbi__uint16) i; + if (s <= STBI__ZFAST_BITS) { + int j = stbi__bit_reverse(next_code[s],s); + while (j < (1 << STBI__ZFAST_BITS)) { + z->fast[j] = fastv; + j += (1 << s); + } + } + ++next_code[s]; + } + } + return 1; +} + +// zlib-from-memory implementation for PNG reading +// because PNG allows splitting the zlib stream arbitrarily, +// and it's annoying structurally to have PNG call ZLIB call PNG, +// we require PNG read all the IDATs and combine them into a single +// memory buffer + +typedef struct +{ + stbi_uc *zbuffer, *zbuffer_end; + int num_bits; + int hit_zeof_once; + stbi__uint32 code_buffer; + + char *zout; + char *zout_start; + char *zout_end; + int z_expandable; + + stbi__zhuffman z_length, z_distance; +} stbi__zbuf; + +stbi_inline static int stbi__zeof(stbi__zbuf *z) +{ + return (z->zbuffer >= z->zbuffer_end); +} + +stbi_inline static stbi_uc stbi__zget8(stbi__zbuf *z) +{ + return stbi__zeof(z) ? 0 : *z->zbuffer++; +} + +static void stbi__fill_bits(stbi__zbuf *z) +{ + do { + if (z->code_buffer >= (1U << z->num_bits)) { + z->zbuffer = z->zbuffer_end; /* treat this as EOF so we fail. */ + return; + } + z->code_buffer |= (unsigned int) stbi__zget8(z) << z->num_bits; + z->num_bits += 8; + } while (z->num_bits <= 24); +} + +stbi_inline static unsigned int stbi__zreceive(stbi__zbuf *z, int n) +{ + unsigned int k; + if (z->num_bits < n){ stbi__fill_bits(z); +} + k = z->code_buffer & ((1 << n) - 1); + z->code_buffer >>= n; + z->num_bits -= n; + return k; +} + +static int stbi__zhuffman_decode_slowpath(stbi__zbuf *a, stbi__zhuffman *z) +{ + int b,s,k; + // not resolved by fast table, so compute it the slow way + // use jpeg approach, which requires MSbits at top + k = stbi__bit_reverse(a->code_buffer, 16); + for (s=STBI__ZFAST_BITS+1; ; ++s){ + if (k < z->maxcode[s]){ + break; +}} + if (s >= 16){ return -1; // invalid code! +} + // code size is s, so: + b = (k >> (16-s)) - z->firstcode[s] + z->firstsymbol[s]; + if (b >= STBI__ZNSYMS){ return -1; // some data was corrupt somewhere! +} + if (z->size[b] != s){ return -1; // was originally an assert, but report failure instead. +} + a->code_buffer >>= s; + a->num_bits -= s; + return z->value[b]; +} + +stbi_inline static int stbi__zhuffman_decode(stbi__zbuf *a, stbi__zhuffman *z) +{ + int b,s; + if (a->num_bits < 16) { + if (stbi__zeof(a)) { + if (!a->hit_zeof_once) { + // This is the first time we hit eof, insert 16 extra padding btis + // to allow us to keep going; if we actually consume any of them + // though, that is invalid data. This is caught later. + a->hit_zeof_once = 1; + a->num_bits += 16; // add 16 implicit zero bits + } else { + // We already inserted our extra 16 padding bits and are again + // out, this stream is actually prematurely terminated. + return -1; + } + } else { + stbi__fill_bits(a); + } + } + b = z->fast[a->code_buffer & STBI__ZFAST_MASK]; + if (b) { + s = b >> 9; + a->code_buffer >>= s; + a->num_bits -= s; + return b & 511; + } + return stbi__zhuffman_decode_slowpath(a, z); +} + +static int stbi__zexpand(stbi__zbuf *z, char *zout, int n) // need to make room for n bytes +{ + char *q; + unsigned int cur, limit, old_limit; + z->zout = zout; + if (!z->z_expandable){ return stbi__err("output buffer limit","Corrupt PNG"); +} + cur = (unsigned int) (z->zout - z->zout_start); + limit = old_limit = (unsigned) (z->zout_end - z->zout_start); + if (UINT_MAX - cur < (unsigned) n){ return stbi__err("outofmem", "Out of memory"); +} + while (cur + n > limit) { + if(limit > UINT_MAX / 2){ return stbi__err("outofmem", "Out of memory"); +} + limit *= 2; + } + q = (char *) STBI_REALLOC_SIZED(z->zout_start, old_limit, limit); + STBI_NOTUSED(old_limit); + if (q == NULL){ return stbi__err("outofmem", "Out of memory"); +} + z->zout_start = q; + z->zout = q + cur; + z->zout_end = q + limit; + return 1; +} + +static const int stbi__zlength_base[31] = { + 3,4,5,6,7,8,9,10,11,13, + 15,17,19,23,27,31,35,43,51,59, + 67,83,99,115,131,163,195,227,258,0,0 }; + +static const int stbi__zlength_extra[31]= +{ 0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0 }; + +static const int stbi__zdist_base[32] = { 1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193, +257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0}; + +static const int stbi__zdist_extra[32] = +{ 0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13}; + +static int stbi__parse_huffman_block(stbi__zbuf *a) +{ + char *zout = a->zout; + for(;;) { + int z = stbi__zhuffman_decode(a, &a->z_length); + if (z < 256) { + if (z < 0){ return stbi__err("bad huffman code","Corrupt PNG"); // error in huffman codes +} + if (zout >= a->zout_end) { + if (!stbi__zexpand(a, zout, 1)){ return 0; +} + zout = a->zout; + } + *zout++ = (char) z; + } else { + stbi_uc *p; + int len,dist; + if (z == 256) { + a->zout = zout; + if (a->hit_zeof_once && a->num_bits < 16) { + // The first time we hit zeof, we inserted 16 extra zero bits into our bit + // buffer so the decoder can just do its speculative decoding. But if we + // actually consumed any of those bits (which is the case when num_bits < 16), + // the stream actually read past the end so it is malformed. + return stbi__err("unexpected end","Corrupt PNG"); + } + return 1; + } + if (z >= 286){ return stbi__err("bad huffman code","Corrupt PNG"); // per DEFLATE, length codes 286 and 287 must not appear in compressed data +} + z -= 257; + len = stbi__zlength_base[z]; + if (stbi__zlength_extra[z]){ len += stbi__zreceive(a, stbi__zlength_extra[z]); +} + z = stbi__zhuffman_decode(a, &a->z_distance); + if (z < 0 || z >= 30){ return stbi__err("bad huffman code","Corrupt PNG"); // per DEFLATE, distance codes 30 and 31 must not appear in compressed data +} + dist = stbi__zdist_base[z]; + if (stbi__zdist_extra[z]){ dist += stbi__zreceive(a, stbi__zdist_extra[z]); +} + if (zout - a->zout_start < dist){ return stbi__err("bad dist","Corrupt PNG"); +} + if (len > a->zout_end - zout) { + if (!stbi__zexpand(a, zout, len)){ return 0; +} + zout = a->zout; + } + p = (stbi_uc *) (zout - dist); + if (dist == 1) { // run of one byte; common in images. + stbi_uc v = *p; + if (len) { do{ *zout++ = v; +} while (--len); } + } else { + if (len) { do{ *zout++ = *p++; +} while (--len); } + } + } + } +} + +static int stbi__compute_huffman_codes(stbi__zbuf *a) +{ + static const stbi_uc length_dezigzag[19] = { 16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15 }; + stbi__zhuffman z_codelength; + stbi_uc lencodes[286+32+137];//padding for maximum single op + stbi_uc codelength_sizes[19]; + int i,n; + + int hlit = stbi__zreceive(a,5) + 257; + int hdist = stbi__zreceive(a,5) + 1; + int hclen = stbi__zreceive(a,4) + 4; + int ntot = hlit + hdist; + + memset(codelength_sizes, 0, sizeof(codelength_sizes)); + for (i=0; i < hclen; ++i) { + int s = stbi__zreceive(a,3); + codelength_sizes[length_dezigzag[i]] = (stbi_uc) s; + } + if (!stbi__zbuild_huffman(&z_codelength, codelength_sizes, 19)){ return 0; +} + + n = 0; + while (n < ntot) { + int c = stbi__zhuffman_decode(a, &z_codelength); + if (c < 0 || c >= 19){ return stbi__err("bad codelengths", "Corrupt PNG"); +} + if (c < 16){ + lencodes[n++] = (stbi_uc) c; +} + else { + stbi_uc fill = 0; + if (c == 16) { + c = stbi__zreceive(a,2)+3; + if (n == 0){ return stbi__err("bad codelengths", "Corrupt PNG"); +} + fill = lencodes[n-1]; + } else if (c == 17) { + c = stbi__zreceive(a,3)+3; + } else if (c == 18) { + c = stbi__zreceive(a,7)+11; + } else { + return stbi__err("bad codelengths", "Corrupt PNG"); + } + if (ntot - n < c){ return stbi__err("bad codelengths", "Corrupt PNG"); +} + memset(lencodes+n, fill, c); + n += c; + } + } + if (n != ntot){ return stbi__err("bad codelengths","Corrupt PNG"); +} + if (!stbi__zbuild_huffman(&a->z_length, lencodes, hlit)){ return 0; +} + if (!stbi__zbuild_huffman(&a->z_distance, lencodes+hlit, hdist)){ return 0; +} + return 1; +} + +static int stbi__parse_uncompressed_block(stbi__zbuf *a) +{ + stbi_uc header[4]; + int len,nlen,k; + if (a->num_bits & 7){ + stbi__zreceive(a, a->num_bits & 7); // discard +} + // drain the bit-packed data into header + k = 0; + while (a->num_bits > 0) { + header[k++] = (stbi_uc) (a->code_buffer & 255); // suppress MSVC run-time check + a->code_buffer >>= 8; + a->num_bits -= 8; + } + if (a->num_bits < 0){ return stbi__err("zlib corrupt","Corrupt PNG"); +} + // now fill header the normal way + while (k < 4){ + header[k++] = stbi__zget8(a); +} + len = header[1] * 256 + header[0]; + nlen = header[3] * 256 + header[2]; + if (nlen != (len ^ 0xffff)){ return stbi__err("zlib corrupt","Corrupt PNG"); +} + if (a->zbuffer + len > a->zbuffer_end){ return stbi__err("read past buffer","Corrupt PNG"); +} + if (a->zout + len > a->zout_end){ + if (!stbi__zexpand(a, a->zout, len)){ return 0; +}} + memcpy(a->zout, a->zbuffer, len); + a->zbuffer += len; + a->zout += len; + return 1; +} + +static int stbi__parse_zlib_header(stbi__zbuf *a) +{ + int cmf = stbi__zget8(a); + int cm = cmf & 15; + /* int cinfo = cmf >> 4; */ + int flg = stbi__zget8(a); + if (stbi__zeof(a)){ return stbi__err("bad zlib header","Corrupt PNG"); // zlib spec +} + if ((cmf*256+flg) % 31 != 0){ return stbi__err("bad zlib header","Corrupt PNG"); // zlib spec +} + if (flg & 32){ return stbi__err("no preset dict","Corrupt PNG"); // preset dictionary not allowed in png +} + if (cm != 8){ return stbi__err("bad compression","Corrupt PNG"); // DEFLATE required for png +} + // window = 1 << (8 + cinfo)... but who cares, we fully buffer output + return 1; +} + +static const stbi_uc stbi__zdefault_length[STBI__ZNSYMS] = +{ + 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, + 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, + 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, + 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, + 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9, + 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9, 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9, + 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9, 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9, + 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9, 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9, + 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, 7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8 +}; +static const stbi_uc stbi__zdefault_distance[32] = +{ + 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5 +}; +/* +Init algorithm: +{ + int i; // use <= to match clearly with spec + for (i=0; i <= 143; ++i) stbi__zdefault_length[i] = 8; + for ( ; i <= 255; ++i) stbi__zdefault_length[i] = 9; + for ( ; i <= 279; ++i) stbi__zdefault_length[i] = 7; + for ( ; i <= 287; ++i) stbi__zdefault_length[i] = 8; + + for (i=0; i <= 31; ++i) stbi__zdefault_distance[i] = 5; +} +*/ + +static int stbi__parse_zlib(stbi__zbuf *a, int parse_header) +{ + int final, type; + if (parse_header){ + if (!stbi__parse_zlib_header(a)){ return 0; +}} + a->num_bits = 0; + a->code_buffer = 0; + a->hit_zeof_once = 0; + do { + final = stbi__zreceive(a,1); + type = stbi__zreceive(a,2); + if (type == 0) { + if (!stbi__parse_uncompressed_block(a)){ return 0; +} + } else if (type == 3) { + return 0; + } else { + if (type == 1) { + // use fixed code lengths + if (!stbi__zbuild_huffman(&a->z_length , stbi__zdefault_length , STBI__ZNSYMS)){ return 0; +} + if (!stbi__zbuild_huffman(&a->z_distance, stbi__zdefault_distance, 32)){ return 0; +} + } else { + if (!stbi__compute_huffman_codes(a)){ return 0; +} + } + if (!stbi__parse_huffman_block(a)){ return 0; +} + } + } while (!final); + return 1; +} + +static int stbi__do_zlib(stbi__zbuf *a, char *obuf, int olen, int exp, int parse_header) +{ + a->zout_start = obuf; + a->zout = obuf; + a->zout_end = obuf + olen; + a->z_expandable = exp; + + return stbi__parse_zlib(a, parse_header); +} + +STBIDEF char *stbi_zlib_decode_malloc_guesssize(const char *buffer, int len, int initial_size, int *outlen) +{ + stbi__zbuf a; + char *p = (char *) stbi__malloc(initial_size); + if (p == NULL){ return NULL; +} + a.zbuffer = (stbi_uc *) buffer; + a.zbuffer_end = (stbi_uc *) buffer + len; + if (stbi__do_zlib(&a, p, initial_size, 1, 1)) { + if (outlen){ *outlen = (int) (a.zout - a.zout_start); +} + return a.zout_start; + } else { + STBI_FREE(a.zout_start); + return NULL; + } +} + +STBIDEF char *stbi_zlib_decode_malloc(char const *buffer, int len, int *outlen) +{ + return stbi_zlib_decode_malloc_guesssize(buffer, len, 16384, outlen); +} + +STBIDEF char *stbi_zlib_decode_malloc_guesssize_headerflag(const char *buffer, int len, int initial_size, int *outlen, int parse_header) +{ + stbi__zbuf a; + char *p = (char *) stbi__malloc(initial_size); + if (p == NULL){ return NULL; +} + a.zbuffer = (stbi_uc *) buffer; + a.zbuffer_end = (stbi_uc *) buffer + len; + if (stbi__do_zlib(&a, p, initial_size, 1, parse_header)) { + if (outlen){ *outlen = (int) (a.zout - a.zout_start); +} + return a.zout_start; + } else { + STBI_FREE(a.zout_start); + return NULL; + } +} + +STBIDEF int stbi_zlib_decode_buffer(char *obuffer, int olen, char const *ibuffer, int ilen) +{ + stbi__zbuf a; + a.zbuffer = (stbi_uc *) ibuffer; + a.zbuffer_end = (stbi_uc *) ibuffer + ilen; + if (stbi__do_zlib(&a, obuffer, olen, 0, 1)){ + return (int) (a.zout - a.zout_start); +} + else{ + return -1; +} +} + +STBIDEF char *stbi_zlib_decode_noheader_malloc(char const *buffer, int len, int *outlen) +{ + stbi__zbuf a; + char *p = (char *) stbi__malloc(16384); + if (p == NULL){ return NULL; +} + a.zbuffer = (stbi_uc *) buffer; + a.zbuffer_end = (stbi_uc *) buffer+len; + if (stbi__do_zlib(&a, p, 16384, 1, 0)) { + if (outlen){ *outlen = (int) (a.zout - a.zout_start); +} + return a.zout_start; + } else { + STBI_FREE(a.zout_start); + return NULL; + } +} + +STBIDEF int stbi_zlib_decode_noheader_buffer(char *obuffer, int olen, const char *ibuffer, int ilen) +{ + stbi__zbuf a; + a.zbuffer = (stbi_uc *) ibuffer; + a.zbuffer_end = (stbi_uc *) ibuffer + ilen; + if (stbi__do_zlib(&a, obuffer, olen, 0, 0)){ + return (int) (a.zout - a.zout_start); +} + else{ + return -1; +} +} +#endif + +// public domain "baseline" PNG decoder v0.10 Sean Barrett 2006-11-18 +// simple implementation +// - only 8-bit samples +// - no CRC checking +// - allocates lots of intermediate memory +// - avoids problem of streaming data between subsystems +// - avoids explicit window management +// performance +// - uses stb_zlib, a PD zlib implementation with fast huffman decoding + +#ifndef STBI_NO_PNG +typedef struct +{ + stbi__uint32 length; + stbi__uint32 type; +} stbi__pngchunk; + +static stbi__pngchunk stbi__get_chunk_header(stbi__context *s) +{ + stbi__pngchunk c; + c.length = stbi__get32be(s); + c.type = stbi__get32be(s); + return c; +} + +static int stbi__check_png_header(stbi__context *s) +{ + static const stbi_uc png_sig[8] = { 137,80,78,71,13,10,26,10 }; + int i; + for (i=0; i < 8; ++i){ + if (stbi__get8(s) != png_sig[i]){ return stbi__err("bad png sig","Not a PNG"); +}} + return 1; +} + +typedef struct +{ + stbi__context *s; + stbi_uc *idata, *expanded, *out; + int depth; +} stbi__png; + + +enum { + STBI__F_none=0, + STBI__F_sub=1, + STBI__F_up=2, + STBI__F_avg=3, + STBI__F_paeth=4, + // synthetic filter used for first scanline to avoid needing a dummy row of 0s + STBI__F_avg_first +}; + +static stbi_uc first_row_filter[5] = +{ + STBI__F_none, + STBI__F_sub, + STBI__F_none, + STBI__F_avg_first, + STBI__F_sub // Paeth with b=c=0 turns out to be equivalent to sub +}; + +static int stbi__paeth(int a, int b, int c) +{ + // This formulation looks very different from the reference in the PNG spec, but is + // actually equivalent and has favorable data dependencies and admits straightforward + // generation of branch-free code, which helps performance significantly. + int thresh = c*3 - (a + b); + int lo = a < b ? a : b; + int hi = a < b ? b : a; + int t0 = (hi <= thresh) ? lo : c; + int t1 = (thresh <= lo) ? hi : t0; + return t1; +} + +static const stbi_uc stbi__depth_scale_table[9] = { 0, 0xff, 0x55, 0, 0x11, 0,0,0, 0x01 }; + +// adds an extra all-255 alpha channel +// dest == src is legal +// img_n must be 1 or 3 +static void stbi__create_png_alpha_expand8(stbi_uc *dest, stbi_uc *src, stbi__uint32 x, int img_n) +{ + int i; + // must process data backwards since we allow dest==src + if (img_n == 1) { + for (i=x-1; i >= 0; --i) { + dest[i*2+1] = 255; + dest[i*2+0] = src[i]; + } + } else { + STBI_ASSERT(img_n == 3); + for (i=x-1; i >= 0; --i) { + dest[i*4+3] = 255; + dest[i*4+2] = src[i*3+2]; + dest[i*4+1] = src[i*3+1]; + dest[i*4+0] = src[i*3+0]; + } + } +} + +// create the png data from post-deflated data +static int stbi__create_png_image_raw(stbi__png *a, stbi_uc *raw, stbi__uint32 raw_len, int out_n, stbi__uint32 x, stbi__uint32 y, int depth, int color) +{ + int bytes = (depth == 16 ? 2 : 1); + stbi__context *s = a->s; + stbi__uint32 i,j,stride = x*out_n*bytes; + stbi__uint32 img_len, img_width_bytes; + stbi_uc *filter_buf; + int all_ok = 1; + int k; + int img_n = s->img_n; // copy it into a local for later + + int output_bytes = out_n*bytes; + int filter_bytes = img_n*bytes; + int width = x; + + STBI_ASSERT(out_n == s->img_n || out_n == s->img_n+1); + a->out = (stbi_uc *) stbi__malloc_mad3(x, y, output_bytes, 0); // extra bytes to write off the end into + if (!a->out){ return stbi__err("outofmem", "Out of memory"); +} + + // note: error exits here don't need to clean up a->out individually, + // stbi__do_png always does on error. + if (!stbi__mad3sizes_valid(img_n, x, depth, 7)){ return stbi__err("too large", "Corrupt PNG"); +} + img_width_bytes = (((img_n * x * depth) + 7) >> 3); + if (!stbi__mad2sizes_valid(img_width_bytes, y, img_width_bytes)){ return stbi__err("too large", "Corrupt PNG"); +} + img_len = (img_width_bytes + 1) * y; + + // we used to check for exact match between raw_len and img_len on non-interlaced PNGs, + // but issue #276 reported a PNG in the wild that had extra data at the end (all zeros), + // so just check for raw_len < img_len always. + if (raw_len < img_len){ return stbi__err("not enough pixels","Corrupt PNG"); +} + + // Allocate two scan lines worth of filter workspace buffer. + filter_buf = (stbi_uc *) stbi__malloc_mad2(img_width_bytes, 2, 0); + if (!filter_buf){ return stbi__err("outofmem", "Out of memory"); +} + + // Filtering for low-bit-depth images + if (depth < 8) { + filter_bytes = 1; + width = img_width_bytes; + } + + for (j=0; j < y; ++j) { + // cur/prior filter buffers alternate + stbi_uc *cur = filter_buf + (j & 1)*img_width_bytes; + stbi_uc *prior = filter_buf + (~j & 1)*img_width_bytes; + stbi_uc *dest = a->out + stride*j; + int nk = width * filter_bytes; + int filter = *raw++; + + // check filter type + if (filter > 4) { + all_ok = stbi__err("invalid filter","Corrupt PNG"); + break; + } + + // if first row, use special filter that doesn't sample previous row + if (j == 0){ filter = first_row_filter[filter]; +} + + // perform actual filtering + switch (filter) { + case STBI__F_none: + memcpy(cur, raw, nk); + break; + case STBI__F_sub: + memcpy(cur, raw, filter_bytes); + for (k = filter_bytes; k < nk; ++k){ + cur[k] = STBI__BYTECAST(raw[k] + cur[k-filter_bytes]); +} + break; + case STBI__F_up: + for (k = 0; k < nk; ++k){ + cur[k] = STBI__BYTECAST(raw[k] + prior[k]); +} + break; + case STBI__F_avg: + for (k = 0; k < filter_bytes; ++k){ + cur[k] = STBI__BYTECAST(raw[k] + (prior[k]>>1)); +} + for (k = filter_bytes; k < nk; ++k){ + cur[k] = STBI__BYTECAST(raw[k] + ((prior[k] + cur[k-filter_bytes])>>1)); +} + break; + case STBI__F_paeth: + for (k = 0; k < filter_bytes; ++k){ + cur[k] = STBI__BYTECAST(raw[k] + prior[k]); // prior[k] == stbi__paeth(0,prior[k],0) +} + for (k = filter_bytes; k < nk; ++k){ + cur[k] = STBI__BYTECAST(raw[k] + stbi__paeth(cur[k-filter_bytes], prior[k], prior[k-filter_bytes])); +} + break; + case STBI__F_avg_first: + memcpy(cur, raw, filter_bytes); + for (k = filter_bytes; k < nk; ++k){ + cur[k] = STBI__BYTECAST(raw[k] + (cur[k-filter_bytes] >> 1)); +} + break; + } + + raw += nk; + + // expand decoded bits in cur to dest, also adding an extra alpha channel if desired + if (depth < 8) { + stbi_uc scale = (color == 0) ? stbi__depth_scale_table[depth] : 1; // scale grayscale values to 0..255 range + stbi_uc *in = cur; + stbi_uc *out = dest; + stbi_uc inb = 0; + stbi__uint32 nsmp = x*img_n; + + // expand bits to bytes first + if (depth == 4) { + for (i=0; i < nsmp; ++i) { + if ((i & 1) == 0){ inb = *in++; +} + *out++ = scale * (inb >> 4); + inb <<= 4; + } + } else if (depth == 2) { + for (i=0; i < nsmp; ++i) { + if ((i & 3) == 0){ inb = *in++; +} + *out++ = scale * (inb >> 6); + inb <<= 2; + } + } else { + STBI_ASSERT(depth == 1); + for (i=0; i < nsmp; ++i) { + if ((i & 7) == 0){ inb = *in++; +} + *out++ = scale * (inb >> 7); + inb <<= 1; + } + } + + // insert alpha=255 values if desired + if (img_n != out_n){ + stbi__create_png_alpha_expand8(dest, dest, x, img_n); +} + } else if (depth == 8) { + if (img_n == out_n){ + memcpy(dest, cur, x*img_n); +} + else{ + stbi__create_png_alpha_expand8(dest, cur, x, img_n); +} + } else if (depth == 16) { + // convert the image data from big-endian to platform-native + stbi__uint16 *dest16 = (stbi__uint16*)dest; + stbi__uint32 nsmp = x*img_n; + + if (img_n == out_n) { + for (i = 0; i < nsmp; ++i, ++dest16, cur += 2){ + *dest16 = (cur[0] << 8) | cur[1]; +} + } else { + STBI_ASSERT(img_n+1 == out_n); + if (img_n == 1) { + for (i = 0; i < x; ++i, dest16 += 2, cur += 2) { + dest16[0] = (cur[0] << 8) | cur[1]; + dest16[1] = 0xffff; + } + } else { + STBI_ASSERT(img_n == 3); + for (i = 0; i < x; ++i, dest16 += 4, cur += 6) { + dest16[0] = (cur[0] << 8) | cur[1]; + dest16[1] = (cur[2] << 8) | cur[3]; + dest16[2] = (cur[4] << 8) | cur[5]; + dest16[3] = 0xffff; + } + } + } + } + } + + STBI_FREE(filter_buf); + if (!all_ok){ return 0; +} + + return 1; +} + +static int stbi__create_png_image(stbi__png *a, stbi_uc *image_data, stbi__uint32 image_data_len, int out_n, int depth, int color, int interlaced) +{ + int bytes = (depth == 16 ? 2 : 1); + int out_bytes = out_n * bytes; + stbi_uc *final; + int p; + if (!interlaced){ + return stbi__create_png_image_raw(a, image_data, image_data_len, out_n, a->s->img_x, a->s->img_y, depth, color); +} + + // de-interlacing + final = (stbi_uc *) stbi__malloc_mad3(a->s->img_x, a->s->img_y, out_bytes, 0); + if (!final){ return stbi__err("outofmem", "Out of memory"); +} + for (p=0; p < 7; ++p) { + int xorig[] = { 0,4,0,2,0,1,0 }; + int yorig[] = { 0,0,4,0,2,0,1 }; + int xspc[] = { 8,8,4,4,2,2,1 }; + int yspc[] = { 8,8,8,4,4,2,2 }; + int i,j,x,y; + // pass1_x[4] = 0, pass1_x[5] = 1, pass1_x[12] = 1 + x = (a->s->img_x - xorig[p] + xspc[p]-1) / xspc[p]; + y = (a->s->img_y - yorig[p] + yspc[p]-1) / yspc[p]; + if (x && y) { + stbi__uint32 img_len = ((((a->s->img_n * x * depth) + 7) >> 3) + 1) * y; + if (!stbi__create_png_image_raw(a, image_data, image_data_len, out_n, x, y, depth, color)) { + STBI_FREE(final); + return 0; + } + for (j=0; j < y; ++j) { + for (i=0; i < x; ++i) { + int out_y = j*yspc[p]+yorig[p]; + int out_x = i*xspc[p]+xorig[p]; + memcpy(final + out_y*a->s->img_x*out_bytes + out_x*out_bytes, + a->out + (j*x+i)*out_bytes, out_bytes); + } + } + STBI_FREE(a->out); + image_data += img_len; + image_data_len -= img_len; + } + } + a->out = final; + + return 1; +} + +static int stbi__compute_transparency(stbi__png *z, stbi_uc tc[3], int out_n) +{ + stbi__context *s = z->s; + stbi__uint32 i, pixel_count = s->img_x * s->img_y; + stbi_uc *p = z->out; + + // compute color-based transparency, assuming we've + // already got 255 as the alpha value in the output + STBI_ASSERT(out_n == 2 || out_n == 4); + + if (out_n == 2) { + for (i=0; i < pixel_count; ++i) { + p[1] = (p[0] == tc[0] ? 0 : 255); + p += 2; + } + } else { + for (i=0; i < pixel_count; ++i) { + if (p[0] == tc[0] && p[1] == tc[1] && p[2] == tc[2]){ + p[3] = 0; +} + p += 4; + } + } + return 1; +} + +static int stbi__compute_transparency16(stbi__png *z, stbi__uint16 tc[3], int out_n) +{ + stbi__context *s = z->s; + stbi__uint32 i, pixel_count = s->img_x * s->img_y; + stbi__uint16 *p = (stbi__uint16*) z->out; + + // compute color-based transparency, assuming we've + // already got 65535 as the alpha value in the output + STBI_ASSERT(out_n == 2 || out_n == 4); + + if (out_n == 2) { + for (i = 0; i < pixel_count; ++i) { + p[1] = (p[0] == tc[0] ? 0 : 65535); + p += 2; + } + } else { + for (i = 0; i < pixel_count; ++i) { + if (p[0] == tc[0] && p[1] == tc[1] && p[2] == tc[2]){ + p[3] = 0; +} + p += 4; + } + } + return 1; +} + +static int stbi__expand_png_palette(stbi__png *a, stbi_uc *palette, int len, int pal_img_n) +{ + stbi__uint32 i, pixel_count = a->s->img_x * a->s->img_y; + stbi_uc *p, *temp_out, *orig = a->out; + + p = (stbi_uc *) stbi__malloc_mad2(pixel_count, pal_img_n, 0); + if (p == NULL){ return stbi__err("outofmem", "Out of memory"); +} + + // between here and free(out) below, exitting would leak + temp_out = p; + + if (pal_img_n == 3) { + for (i=0; i < pixel_count; ++i) { + int n = orig[i]*4; + p[0] = palette[n ]; + p[1] = palette[n+1]; + p[2] = palette[n+2]; + p += 3; + } + } else { + for (i=0; i < pixel_count; ++i) { + int n = orig[i]*4; + p[0] = palette[n ]; + p[1] = palette[n+1]; + p[2] = palette[n+2]; + p[3] = palette[n+3]; + p += 4; + } + } + STBI_FREE(a->out); + a->out = temp_out; + + STBI_NOTUSED(len); + + return 1; +} + +static int stbi__unpremultiply_on_load_global = 0; +static int stbi__de_iphone_flag_global = 0; + +STBIDEF void stbi_set_unpremultiply_on_load(int flag_true_if_should_unpremultiply) +{ + stbi__unpremultiply_on_load_global = flag_true_if_should_unpremultiply; +} + +STBIDEF void stbi_convert_iphone_png_to_rgb(int flag_true_if_should_convert) +{ + stbi__de_iphone_flag_global = flag_true_if_should_convert; +} + +#ifndef STBI_THREAD_LOCAL +#define stbi__unpremultiply_on_load stbi__unpremultiply_on_load_global +#define stbi__de_iphone_flag stbi__de_iphone_flag_global +#else +static STBI_THREAD_LOCAL int stbi__unpremultiply_on_load_local, stbi__unpremultiply_on_load_set; +static STBI_THREAD_LOCAL int stbi__de_iphone_flag_local, stbi__de_iphone_flag_set; + +STBIDEF void stbi_set_unpremultiply_on_load_thread(int flag_true_if_should_unpremultiply) +{ + stbi__unpremultiply_on_load_local = flag_true_if_should_unpremultiply; + stbi__unpremultiply_on_load_set = 1; +} + +STBIDEF void stbi_convert_iphone_png_to_rgb_thread(int flag_true_if_should_convert) +{ + stbi__de_iphone_flag_local = flag_true_if_should_convert; + stbi__de_iphone_flag_set = 1; +} + +#define stbi__unpremultiply_on_load (stbi__unpremultiply_on_load_set \ + ? stbi__unpremultiply_on_load_local \ + : stbi__unpremultiply_on_load_global) +#define stbi__de_iphone_flag (stbi__de_iphone_flag_set \ + ? stbi__de_iphone_flag_local \ + : stbi__de_iphone_flag_global) +#endif // STBI_THREAD_LOCAL + +static void stbi__de_iphone(stbi__png *z) +{ + stbi__context *s = z->s; + stbi__uint32 i, pixel_count = s->img_x * s->img_y; + stbi_uc *p = z->out; + + if (s->img_out_n == 3) { // convert bgr to rgb + for (i=0; i < pixel_count; ++i) { + stbi_uc t = p[0]; + p[0] = p[2]; + p[2] = t; + p += 3; + } + } else { + STBI_ASSERT(s->img_out_n == 4); + if (stbi__unpremultiply_on_load) { + // convert bgr to rgb and unpremultiply + for (i=0; i < pixel_count; ++i) { + stbi_uc a = p[3]; + stbi_uc t = p[0]; + if (a) { + stbi_uc half = a / 2; + p[0] = (p[2] * 255 + half) / a; + p[1] = (p[1] * 255 + half) / a; + p[2] = ( t * 255 + half) / a; + } else { + p[0] = p[2]; + p[2] = t; + } + p += 4; + } + } else { + // convert bgr to rgb + for (i=0; i < pixel_count; ++i) { + stbi_uc t = p[0]; + p[0] = p[2]; + p[2] = t; + p += 4; + } + } + } +} + +#define STBI__PNG_TYPE(a,b,c,d) (((unsigned) (a) << 24) + ((unsigned) (b) << 16) + ((unsigned) (c) << 8) + (unsigned) (d)) + +static int stbi__parse_png_file(stbi__png *z, int scan, int req_comp) +{ + stbi_uc palette[1024], pal_img_n=0; + stbi_uc has_trans=0, tc[3]={0}; + stbi__uint16 tc16[3]; + stbi__uint32 ioff=0, idata_limit=0, i, pal_len=0; + int first=1,k,interlace=0, color=0, is_iphone=0; + stbi__context *s = z->s; + + z->expanded = NULL; + z->idata = NULL; + z->out = NULL; + + if (!stbi__check_png_header(s)){ return 0; +} + + if (scan == STBI__SCAN_type){ return 1; +} + + for (;;) { + stbi__pngchunk c = stbi__get_chunk_header(s); + switch (c.type) { + case STBI__PNG_TYPE('C','g','B','I'): + is_iphone = 1; + stbi__skip(s, c.length); + break; + case STBI__PNG_TYPE('I','H','D','R'): { + int comp,filter; + if (!first){ return stbi__err("multiple IHDR","Corrupt PNG"); +} + first = 0; + if (c.length != 13){ return stbi__err("bad IHDR len","Corrupt PNG"); +} + s->img_x = stbi__get32be(s); + s->img_y = stbi__get32be(s); + if (s->img_y > STBI_MAX_DIMENSIONS){ return stbi__err("too large","Very large image (corrupt?)"); +} + if (s->img_x > STBI_MAX_DIMENSIONS){ return stbi__err("too large","Very large image (corrupt?)"); +} + z->depth = stbi__get8(s); if (z->depth != 1 && z->depth != 2 && z->depth != 4 && z->depth != 8 && z->depth != 16){ return stbi__err("1/2/4/8/16-bit only","PNG not supported: 1/2/4/8/16-bit only"); +} + color = stbi__get8(s); if (color > 6){ return stbi__err("bad ctype","Corrupt PNG"); +} + if (color == 3 && z->depth == 16){ return stbi__err("bad ctype","Corrupt PNG"); +} + if (color == 3){ pal_img_n = 3; +} else if (color & 1){ return stbi__err("bad ctype","Corrupt PNG"); +} + comp = stbi__get8(s); if (comp){ return stbi__err("bad comp method","Corrupt PNG"); +} + filter= stbi__get8(s); if (filter){ return stbi__err("bad filter method","Corrupt PNG"); +} + interlace = stbi__get8(s); if (interlace>1){ return stbi__err("bad interlace method","Corrupt PNG"); +} + if (!s->img_x || !s->img_y){ return stbi__err("0-pixel image","Corrupt PNG"); +} + if (!pal_img_n) { + s->img_n = (color & 2 ? 3 : 1) + (color & 4 ? 1 : 0); + if ((1 << 30) / s->img_x / s->img_n < s->img_y){ return stbi__err("too large", "Image too large to decode"); +} + } else { + // if paletted, then pal_n is our final components, and + // img_n is # components to decompress/filter. + s->img_n = 1; + if ((1 << 30) / s->img_x / 4 < s->img_y){ return stbi__err("too large","Corrupt PNG"); +} + } + // even with SCAN_header, have to scan to see if we have a tRNS + break; + } + + case STBI__PNG_TYPE('P','L','T','E'): { + if (first){ return stbi__err("first not IHDR", "Corrupt PNG"); +} + if (c.length > 256*3){ return stbi__err("invalid PLTE","Corrupt PNG"); +} + pal_len = c.length / 3; + if (pal_len * 3 != c.length){ return stbi__err("invalid PLTE","Corrupt PNG"); +} + for (i=0; i < pal_len; ++i) { + palette[i*4+0] = stbi__get8(s); + palette[i*4+1] = stbi__get8(s); + palette[i*4+2] = stbi__get8(s); + palette[i*4+3] = 255; + } + break; + } + + case STBI__PNG_TYPE('t','R','N','S'): { + if (first){ return stbi__err("first not IHDR", "Corrupt PNG"); +} + if (z->idata){ return stbi__err("tRNS after IDAT","Corrupt PNG"); +} + if (pal_img_n) { + if (scan == STBI__SCAN_header) { s->img_n = 4; return 1; } + if (pal_len == 0){ return stbi__err("tRNS before PLTE","Corrupt PNG"); +} + if (c.length > pal_len){ return stbi__err("bad tRNS len","Corrupt PNG"); +} + pal_img_n = 4; + for (i=0; i < c.length; ++i){ + palette[i*4+3] = stbi__get8(s); +} + } else { + if (!(s->img_n & 1)){ return stbi__err("tRNS with alpha","Corrupt PNG"); +} + if (c.length != (stbi__uint32) s->img_n*2){ return stbi__err("bad tRNS len","Corrupt PNG"); +} + has_trans = 1; + // non-paletted with tRNS = constant alpha. if header-scanning, we can stop now. + if (scan == STBI__SCAN_header) { ++s->img_n; return 1; } + if (z->depth == 16) { + for (k = 0; k < s->img_n && k < 3; ++k) // extra loop test to suppress false GCC warning +{ + tc16[k] = (stbi__uint16)stbi__get16be(s); // copy the values as-is +} + } else { + for (k = 0; k < s->img_n && k < 3; ++k){ + tc[k] = (stbi_uc)(stbi__get16be(s) & 255) * stbi__depth_scale_table[z->depth]; // non 8-bit images will be larger +} + } + } + break; + } + + case STBI__PNG_TYPE('I','D','A','T'): { + if (first){ return stbi__err("first not IHDR", "Corrupt PNG"); +} + if (pal_img_n && !pal_len){ return stbi__err("no PLTE","Corrupt PNG"); +} + if (scan == STBI__SCAN_header) { + // header scan definitely stops at first IDAT + if (pal_img_n){ + s->img_n = pal_img_n; +} + return 1; + } + if (c.length > (1u << 30)){ return stbi__err("IDAT size limit", "IDAT section larger than 2^30 bytes"); +} + if ((int)(ioff + c.length) < (int)ioff){ return 0; +} + if (ioff + c.length > idata_limit) { + stbi__uint32 idata_limit_old = idata_limit; + stbi_uc *p; + if (idata_limit == 0){ idata_limit = c.length > 4096 ? c.length : 4096; +} + while (ioff + c.length > idata_limit){ + idata_limit *= 2; +} + STBI_NOTUSED(idata_limit_old); + p = (stbi_uc *) STBI_REALLOC_SIZED(z->idata, idata_limit_old, idata_limit); if (p == NULL){ return stbi__err("outofmem", "Out of memory"); +} + z->idata = p; + } + if (!stbi__getn(s, z->idata+ioff,c.length)){ return stbi__err("outofdata","Corrupt PNG"); +} + ioff += c.length; + break; + } + + case STBI__PNG_TYPE('I','E','N','D'): { + stbi__uint32 raw_len, bpl; + if (first){ return stbi__err("first not IHDR", "Corrupt PNG"); +} + if (scan != STBI__SCAN_load){ return 1; +} + if (z->idata == NULL){ return stbi__err("no IDAT","Corrupt PNG"); +} + // initial guess for decoded data size to avoid unnecessary reallocs + bpl = (s->img_x * z->depth + 7) / 8; // bytes per line, per component + raw_len = bpl * s->img_y * s->img_n /* pixels */ + s->img_y /* filter mode per row */; + z->expanded = (stbi_uc *) stbi_zlib_decode_malloc_guesssize_headerflag((char *) z->idata, ioff, raw_len, (int *) &raw_len, !is_iphone); + if (z->expanded == NULL){ return 0; // zlib should set error +} + STBI_FREE(z->idata); z->idata = NULL; + if ((req_comp == s->img_n+1 && req_comp != 3 && !pal_img_n) || has_trans){ + s->img_out_n = s->img_n+1; +} + else{ + s->img_out_n = s->img_n; +} + if (!stbi__create_png_image(z, z->expanded, raw_len, s->img_out_n, z->depth, color, interlace)){ return 0; +} + if (has_trans) { + if (z->depth == 16) { + if (!stbi__compute_transparency16(z, tc16, s->img_out_n)){ return 0; +} + } else { + if (!stbi__compute_transparency(z, tc, s->img_out_n)){ return 0; +} + } + } + if (is_iphone && stbi__de_iphone_flag && s->img_out_n > 2){ + stbi__de_iphone(z); +} + if (pal_img_n) { + // pal_img_n == 3 or 4 + s->img_n = pal_img_n; // record the actual colors we had + s->img_out_n = pal_img_n; + if (req_comp >= 3){ s->img_out_n = req_comp; +} + if (!stbi__expand_png_palette(z, palette, pal_len, s->img_out_n)){ + return 0; +} + } else if (has_trans) { + // non-paletted image with tRNS -> source image has (constant) alpha + ++s->img_n; + } + STBI_FREE(z->expanded); z->expanded = NULL; + // end of PNG chunk, read and skip CRC + stbi__get32be(s); + return 1; + } + + default: + // if critical, fail + if (first){ return stbi__err("first not IHDR", "Corrupt PNG"); +} + if ((c.type & (1 << 29)) == 0) { + #ifndef STBI_NO_FAILURE_STRINGS + // not threadsafe + static char invalid_chunk[] = "XXXX PNG chunk not known"; + invalid_chunk[0] = STBI__BYTECAST(c.type >> 24); + invalid_chunk[1] = STBI__BYTECAST(c.type >> 16); + invalid_chunk[2] = STBI__BYTECAST(c.type >> 8); + invalid_chunk[3] = STBI__BYTECAST(c.type >> 0); + #endif + return stbi__err(invalid_chunk, "PNG not supported: unknown PNG chunk type"); + } + stbi__skip(s, c.length); + break; + } + // end of PNG chunk, read and skip CRC + stbi__get32be(s); + } +} + +static void *stbi__do_png(stbi__png *p, int *x, int *y, int *n, int req_comp, stbi__result_info *ri) +{ + void *result=NULL; + if (req_comp < 0 || req_comp > 4){ return stbi__errpuc("bad req_comp", "Internal error"); +} + if (stbi__parse_png_file(p, STBI__SCAN_load, req_comp)) { + if (p->depth <= 8){ + ri->bits_per_channel = 8; +} + else if (p->depth == 16){ + ri->bits_per_channel = 16; +} + else{ + return stbi__errpuc("bad bits_per_channel", "PNG not supported: unsupported color depth"); +} + result = p->out; + p->out = NULL; + if (req_comp && req_comp != p->s->img_out_n) { + if (ri->bits_per_channel == 8){ + result = stbi__convert_format((unsigned char *) result, p->s->img_out_n, req_comp, p->s->img_x, p->s->img_y); +} + else{ + result = stbi__convert_format16((stbi__uint16 *) result, p->s->img_out_n, req_comp, p->s->img_x, p->s->img_y); +} + p->s->img_out_n = req_comp; + if (result == NULL){ return result; +} + } + *x = p->s->img_x; + *y = p->s->img_y; + if (n){ *n = p->s->img_n; +} + } + STBI_FREE(p->out); p->out = NULL; + STBI_FREE(p->expanded); p->expanded = NULL; + STBI_FREE(p->idata); p->idata = NULL; + + return result; +} + +static void *stbi__png_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri) +{ + stbi__png p; + p.s = s; + return stbi__do_png(&p, x,y,comp,req_comp, ri); +} + +static int stbi__png_test(stbi__context *s) +{ + int r; + r = stbi__check_png_header(s); + stbi__rewind(s); + return r; +} + +static int stbi__png_info_raw(stbi__png *p, int *x, int *y, int *comp) +{ + if (!stbi__parse_png_file(p, STBI__SCAN_header, 0)) { + stbi__rewind( p->s ); + return 0; + } + if (x){ *x = p->s->img_x; +} + if (y){ *y = p->s->img_y; +} + if (comp){ *comp = p->s->img_n; +} + return 1; +} + +static int stbi__png_info(stbi__context *s, int *x, int *y, int *comp) +{ + stbi__png p; + p.s = s; + return stbi__png_info_raw(&p, x, y, comp); +} + +static int stbi__png_is16(stbi__context *s) +{ + stbi__png p; + p.s = s; + if (!stbi__png_info_raw(&p, NULL, NULL, NULL)){ + return 0; +} + if (p.depth != 16) { + stbi__rewind(p.s); + return 0; + } + return 1; +} +#endif + +// Microsoft/Windows BMP image + +#ifndef STBI_NO_BMP +static int stbi__bmp_test_raw(stbi__context *s) +{ + int r; + int sz; + if (stbi__get8(s) != 'B'){ return 0; +} + if (stbi__get8(s) != 'M'){ return 0; +} + stbi__get32le(s); // discard filesize + stbi__get16le(s); // discard reserved + stbi__get16le(s); // discard reserved + stbi__get32le(s); // discard data offset + sz = stbi__get32le(s); + r = (sz == 12 || sz == 40 || sz == 56 || sz == 108 || sz == 124); + return r; +} + +static int stbi__bmp_test(stbi__context *s) +{ + int r = stbi__bmp_test_raw(s); + stbi__rewind(s); + return r; +} + + +// returns 0..31 for the highest set bit +static int stbi__high_bit(unsigned int z) +{ + int n=0; + if (z == 0){ return -1; +} + if (z >= 0x10000) { n += 16; z >>= 16; } + if (z >= 0x00100) { n += 8; z >>= 8; } + if (z >= 0x00010) { n += 4; z >>= 4; } + if (z >= 0x00004) { n += 2; z >>= 2; } + if (z >= 0x00002) { n += 1;/* >>= 1;*/ } + return n; +} + +static int stbi__bitcount(unsigned int a) +{ + a = (a & 0x55555555) + ((a >> 1) & 0x55555555); // max 2 + a = (a & 0x33333333) + ((a >> 2) & 0x33333333); // max 4 + a = (a + (a >> 4)) & 0x0f0f0f0f; // max 8 per 4, now 8 bits + a = (a + (a >> 8)); // max 16 per 8 bits + a = (a + (a >> 16)); // max 32 per 8 bits + return a & 0xff; +} + +// extract an arbitrarily-aligned N-bit value (N=bits) +// from v, and then make it 8-bits long and fractionally +// extend it to full full range. +static int stbi__shiftsigned(unsigned int v, int shift, int bits) +{ + static unsigned int mul_table[9] = { + 0, + 0xff/*0b11111111*/, 0x55/*0b01010101*/, 0x49/*0b01001001*/, 0x11/*0b00010001*/, + 0x21/*0b00100001*/, 0x41/*0b01000001*/, 0x81/*0b10000001*/, 0x01/*0b00000001*/, + }; + static unsigned int shift_table[9] = { + 0, 0,0,1,0,2,4,6,0, + }; + if (shift < 0){ + v <<= -shift; +} + else{ + v >>= shift; +} + STBI_ASSERT(v < 256); + v >>= (8-bits); + STBI_ASSERT(bits >= 0 && bits <= 8); + return (int) ((unsigned) v * mul_table[bits]) >> shift_table[bits]; +} + +typedef struct +{ + int bpp, offset, hsz; + unsigned int mr,mg,mb,ma, all_a; + int extra_read; +} stbi__bmp_data; + +static int stbi__bmp_set_mask_defaults(stbi__bmp_data *info, int compress) +{ + // BI_BITFIELDS specifies masks explicitly, don't override + if (compress == 3){ + return 1; +} + + if (compress == 0) { + if (info->bpp == 16) { + info->mr = 31u << 10; + info->mg = 31u << 5; + info->mb = 31u << 0; + } else if (info->bpp == 32) { + info->mr = 0xffu << 16; + info->mg = 0xffu << 8; + info->mb = 0xffu << 0; + info->ma = 0xffu << 24; + info->all_a = 0; // if all_a is 0 at end, then we loaded alpha channel but it was all 0 + } else { + // otherwise, use defaults, which is all-0 + info->mr = info->mg = info->mb = info->ma = 0; + } + return 1; + } + return 0; // error +} + +static void *stbi__bmp_parse_header(stbi__context *s, stbi__bmp_data *info) +{ + int hsz; + if (stbi__get8(s) != 'B' || stbi__get8(s) != 'M'){ return stbi__errpuc("not BMP", "Corrupt BMP"); +} + stbi__get32le(s); // discard filesize + stbi__get16le(s); // discard reserved + stbi__get16le(s); // discard reserved + info->offset = stbi__get32le(s); + info->hsz = hsz = stbi__get32le(s); + info->mr = info->mg = info->mb = info->ma = 0; + info->extra_read = 14; + + if (info->offset < 0){ return stbi__errpuc("bad BMP", "bad BMP"); +} + + if (hsz != 12 && hsz != 40 && hsz != 56 && hsz != 108 && hsz != 124){ return stbi__errpuc("unknown BMP", "BMP type not supported: unknown"); +} + if (hsz == 12) { + s->img_x = stbi__get16le(s); + s->img_y = stbi__get16le(s); + } else { + s->img_x = stbi__get32le(s); + s->img_y = stbi__get32le(s); + } + if (stbi__get16le(s) != 1){ return stbi__errpuc("bad BMP", "bad BMP"); +} + info->bpp = stbi__get16le(s); + if (hsz != 12) { + int compress = stbi__get32le(s); + if (compress == 1 || compress == 2){ return stbi__errpuc("BMP RLE", "BMP type not supported: RLE"); +} + if (compress >= 4){ return stbi__errpuc("BMP JPEG/PNG", "BMP type not supported: unsupported compression"); // this includes PNG/JPEG modes +} + if (compress == 3 && info->bpp != 16 && info->bpp != 32){ return stbi__errpuc("bad BMP", "bad BMP"); // bitfields requires 16 or 32 bits/pixel +} + stbi__get32le(s); // discard sizeof + stbi__get32le(s); // discard hres + stbi__get32le(s); // discard vres + stbi__get32le(s); // discard colorsused + stbi__get32le(s); // discard max important + if (hsz == 40 || hsz == 56) { + if (hsz == 56) { + stbi__get32le(s); + stbi__get32le(s); + stbi__get32le(s); + stbi__get32le(s); + } + if (info->bpp == 16 || info->bpp == 32) { + if (compress == 0) { + stbi__bmp_set_mask_defaults(info, compress); + } else if (compress == 3) { + info->mr = stbi__get32le(s); + info->mg = stbi__get32le(s); + info->mb = stbi__get32le(s); + info->extra_read += 12; + // not documented, but generated by photoshop and handled by mspaint + if (info->mr == info->mg && info->mg == info->mb) { + // ?!?!? + return stbi__errpuc("bad BMP", "bad BMP"); + } + } else{ + return stbi__errpuc("bad BMP", "bad BMP"); +} + } + } else { + // V4/V5 header + int i; + if (hsz != 108 && hsz != 124){ + return stbi__errpuc("bad BMP", "bad BMP"); +} + info->mr = stbi__get32le(s); + info->mg = stbi__get32le(s); + info->mb = stbi__get32le(s); + info->ma = stbi__get32le(s); + if (compress != 3) // override mr/mg/mb unless in BI_BITFIELDS mode, as per docs +{ + stbi__bmp_set_mask_defaults(info, compress); +} + stbi__get32le(s); // discard color space + for (i=0; i < 12; ++i){ + stbi__get32le(s); // discard color space parameters +} + if (hsz == 124) { + stbi__get32le(s); // discard rendering intent + stbi__get32le(s); // discard offset of profile data + stbi__get32le(s); // discard size of profile data + stbi__get32le(s); // discard reserved + } + } + } + return (void *) 1; +} + + +static void *stbi__bmp_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri) +{ + stbi_uc *out; + unsigned int mr=0,mg=0,mb=0,ma=0, all_a; + stbi_uc pal[256][4]; + int psize=0,i,j,width; + int flip_vertically, pad, target; + stbi__bmp_data info; + STBI_NOTUSED(ri); + + info.all_a = 255; + if (stbi__bmp_parse_header(s, &info) == NULL){ + return NULL; // error code already set +} + + flip_vertically = ((int) s->img_y) > 0; + s->img_y = abs((int) s->img_y); + + if (s->img_y > STBI_MAX_DIMENSIONS){ return stbi__errpuc("too large","Very large image (corrupt?)"); +} + if (s->img_x > STBI_MAX_DIMENSIONS){ return stbi__errpuc("too large","Very large image (corrupt?)"); +} + + mr = info.mr; + mg = info.mg; + mb = info.mb; + ma = info.ma; + all_a = info.all_a; + + if (info.hsz == 12) { + if (info.bpp < 24){ + psize = (info.offset - info.extra_read - 24) / 3; +} + } else { + if (info.bpp < 16){ + psize = (info.offset - info.extra_read - info.hsz) >> 2; +} + } + if (psize == 0) { + // accept some number of extra bytes after the header, but if the offset points either to before + // the header ends or implies a large amount of extra data, reject the file as malformed + int bytes_read_so_far = s->callback_already_read + (int)(s->img_buffer - s->img_buffer_original); + int header_limit = 1024; // max we actually read is below 256 bytes currently. + int extra_data_limit = 256*4; // what ordinarily goes here is a palette; 256 entries*4 bytes is its max size. + if (bytes_read_so_far <= 0 || bytes_read_so_far > header_limit) { + return stbi__errpuc("bad header", "Corrupt BMP"); + } + // we established that bytes_read_so_far is positive and sensible. + // the first half of this test rejects offsets that are either too small positives, or + // negative, and guarantees that info.offset >= bytes_read_so_far > 0. this in turn + // ensures the number computed in the second half of the test can't overflow. + if (info.offset < bytes_read_so_far || info.offset - bytes_read_so_far > extra_data_limit) { + return stbi__errpuc("bad offset", "Corrupt BMP"); + } else { + stbi__skip(s, info.offset - bytes_read_so_far); + } + } + + if (info.bpp == 24 && ma == 0xff000000){ + s->img_n = 3; +} + else{ + s->img_n = ma ? 4 : 3; +} + if (req_comp && req_comp >= 3) // we can directly decode 3 or 4 +{ + target = req_comp; +} + else{ + target = s->img_n; // if they want monochrome, we'll post-convert +} + + // sanity-check size + if (!stbi__mad3sizes_valid(target, s->img_x, s->img_y, 0)){ + return stbi__errpuc("too large", "Corrupt BMP"); +} + + out = (stbi_uc *) stbi__malloc_mad3(target, s->img_x, s->img_y, 0); + if (!out){ return stbi__errpuc("outofmem", "Out of memory"); +} + if (info.bpp < 16) { + int z=0; + if (psize == 0 || psize > 256) { STBI_FREE(out); return stbi__errpuc("invalid", "Corrupt BMP"); } + for (i=0; i < psize; ++i) { + pal[i][2] = stbi__get8(s); + pal[i][1] = stbi__get8(s); + pal[i][0] = stbi__get8(s); + if (info.hsz != 12){ stbi__get8(s); +} + pal[i][3] = 255; + } + stbi__skip(s, info.offset - info.extra_read - info.hsz - psize * (info.hsz == 12 ? 3 : 4)); + if (info.bpp == 1){ width = (s->img_x + 7) >> 3; +} + else if (info.bpp == 4){ width = (s->img_x + 1) >> 1; +} + else if (info.bpp == 8){ width = s->img_x; +} + else { STBI_FREE(out); return stbi__errpuc("bad bpp", "Corrupt BMP"); } + pad = (-width)&3; + if (info.bpp == 1) { + for (j=0; j < (int) s->img_y; ++j) { + int bit_offset = 7, v = stbi__get8(s); + for (i=0; i < (int) s->img_x; ++i) { + int color = (v>>bit_offset)&0x1; + out[z++] = pal[color][0]; + out[z++] = pal[color][1]; + out[z++] = pal[color][2]; + if (target == 4){ out[z++] = 255; +} + if (i+1 == (int) s->img_x){ break; +} + if((--bit_offset) < 0) { + bit_offset = 7; + v = stbi__get8(s); + } + } + stbi__skip(s, pad); + } + } else { + for (j=0; j < (int) s->img_y; ++j) { + for (i=0; i < (int) s->img_x; i += 2) { + int v=stbi__get8(s),v2=0; + if (info.bpp == 4) { + v2 = v & 15; + v >>= 4; + } + out[z++] = pal[v][0]; + out[z++] = pal[v][1]; + out[z++] = pal[v][2]; + if (target == 4){ out[z++] = 255; +} + if (i+1 == (int) s->img_x){ break; +} + v = (info.bpp == 8) ? stbi__get8(s) : v2; + out[z++] = pal[v][0]; + out[z++] = pal[v][1]; + out[z++] = pal[v][2]; + if (target == 4){ out[z++] = 255; +} + } + stbi__skip(s, pad); + } + } + } else { + int rshift=0,gshift=0,bshift=0,ashift=0,rcount=0,gcount=0,bcount=0,acount=0; + int z = 0; + int easy=0; + stbi__skip(s, info.offset - info.extra_read - info.hsz); + if (info.bpp == 24){ width = 3 * s->img_x; +} + else if (info.bpp == 16){ width = 2*s->img_x; +} + else /* bpp = 32 and pad = 0 */ +{ width=0; +} + pad = (-width) & 3; + if (info.bpp == 24) { + easy = 1; + } else if (info.bpp == 32) { + if (mb == 0xff && mg == 0xff00 && mr == 0x00ff0000 && ma == 0xff000000){ + easy = 2; +} + } + if (!easy) { + if (!mr || !mg || !mb) { STBI_FREE(out); return stbi__errpuc("bad masks", "Corrupt BMP"); } + // right shift amt to put high bit in position #7 + rshift = stbi__high_bit(mr)-7; rcount = stbi__bitcount(mr); + gshift = stbi__high_bit(mg)-7; gcount = stbi__bitcount(mg); + bshift = stbi__high_bit(mb)-7; bcount = stbi__bitcount(mb); + ashift = stbi__high_bit(ma)-7; acount = stbi__bitcount(ma); + if (rcount > 8 || gcount > 8 || bcount > 8 || acount > 8) { STBI_FREE(out); return stbi__errpuc("bad masks", "Corrupt BMP"); } + } + for (j=0; j < (int) s->img_y; ++j) { + if (easy) { + for (i=0; i < (int) s->img_x; ++i) { + unsigned char a; + out[z+2] = stbi__get8(s); + out[z+1] = stbi__get8(s); + out[z+0] = stbi__get8(s); + z += 3; + a = (easy == 2 ? stbi__get8(s) : 255); + all_a |= a; + if (target == 4){ out[z++] = a; +} + } + } else { + int bpp = info.bpp; + for (i=0; i < (int) s->img_x; ++i) { + stbi__uint32 v = (bpp == 16 ? (stbi__uint32) stbi__get16le(s) : stbi__get32le(s)); + unsigned int a; + out[z++] = STBI__BYTECAST(stbi__shiftsigned(v & mr, rshift, rcount)); + out[z++] = STBI__BYTECAST(stbi__shiftsigned(v & mg, gshift, gcount)); + out[z++] = STBI__BYTECAST(stbi__shiftsigned(v & mb, bshift, bcount)); + a = (ma ? stbi__shiftsigned(v & ma, ashift, acount) : 255); + all_a |= a; + if (target == 4){ out[z++] = STBI__BYTECAST(a); +} + } + } + stbi__skip(s, pad); + } + } + + // if alpha channel is all 0s, replace with all 255s + if (target == 4 && all_a == 0){ + for (i=4*s->img_x*s->img_y-1; i >= 0; i -= 4){ + out[i] = 255; +}} + + if (flip_vertically) { + stbi_uc t; + for (j=0; j < (int) s->img_y>>1; ++j) { + stbi_uc *p1 = out + j *s->img_x*target; + stbi_uc *p2 = out + (s->img_y-1-j)*s->img_x*target; + for (i=0; i < (int) s->img_x*target; ++i) { + t = p1[i]; p1[i] = p2[i]; p2[i] = t; + } + } + } + + if (req_comp && req_comp != target) { + out = stbi__convert_format(out, target, req_comp, s->img_x, s->img_y); + if (out == NULL){ return out; // stbi__convert_format frees input on failure +} + } + + *x = s->img_x; + *y = s->img_y; + if (comp){ *comp = s->img_n; +} + return out; +} +#endif + +// Targa Truevision - TGA +// by Jonathan Dummer +#ifndef STBI_NO_TGA +// returns STBI_rgb or whatever, 0 on error +static int stbi__tga_get_comp(int bits_per_pixel, int is_grey, int* is_rgb16) +{ + // only RGB or RGBA (incl. 16bit) or grey allowed + if (is_rgb16){ *is_rgb16 = 0; +} + switch(bits_per_pixel) { + case 8: return STBI_grey; + case 16: if(is_grey){ return STBI_grey_alpha; +} + // fallthrough + case 15: if(is_rgb16){ *is_rgb16 = 1; +} + return STBI_rgb; + case 24: // fallthrough + case 32: return bits_per_pixel/8; + default: return 0; + } +} + +static int stbi__tga_info(stbi__context *s, int *x, int *y, int *comp) +{ + int tga_w, tga_h, tga_comp, tga_image_type, tga_bits_per_pixel, tga_colormap_bpp; + int sz, tga_colormap_type; + stbi__get8(s); // discard Offset + tga_colormap_type = stbi__get8(s); // colormap type + if( tga_colormap_type > 1 ) { + stbi__rewind(s); + return 0; // only RGB or indexed allowed + } + tga_image_type = stbi__get8(s); // image type + if ( tga_colormap_type == 1 ) { // colormapped (paletted) image + if (tga_image_type != 1 && tga_image_type != 9) { + stbi__rewind(s); + return 0; + } + stbi__skip(s,4); // skip index of first colormap entry and number of entries + sz = stbi__get8(s); // check bits per palette color entry + if ( (sz != 8) && (sz != 15) && (sz != 16) && (sz != 24) && (sz != 32) ) { + stbi__rewind(s); + return 0; + } + stbi__skip(s,4); // skip image x and y origin + tga_colormap_bpp = sz; + } else { // "normal" image w/o colormap - only RGB or grey allowed, +/- RLE + if ( (tga_image_type != 2) && (tga_image_type != 3) && (tga_image_type != 10) && (tga_image_type != 11) ) { + stbi__rewind(s); + return 0; // only RGB or grey allowed, +/- RLE + } + stbi__skip(s,9); // skip colormap specification and image x/y origin + tga_colormap_bpp = 0; + } + tga_w = stbi__get16le(s); + if( tga_w < 1 ) { + stbi__rewind(s); + return 0; // test width + } + tga_h = stbi__get16le(s); + if( tga_h < 1 ) { + stbi__rewind(s); + return 0; // test height + } + tga_bits_per_pixel = stbi__get8(s); // bits per pixel + stbi__get8(s); // ignore alpha bits + if (tga_colormap_bpp != 0) { + if((tga_bits_per_pixel != 8) && (tga_bits_per_pixel != 16)) { + // when using a colormap, tga_bits_per_pixel is the size of the indexes + // I don't think anything but 8 or 16bit indexes makes sense + stbi__rewind(s); + return 0; + } + tga_comp = stbi__tga_get_comp(tga_colormap_bpp, 0, NULL); + } else { + tga_comp = stbi__tga_get_comp(tga_bits_per_pixel, (tga_image_type == 3) || (tga_image_type == 11), NULL); + } + if(!tga_comp) { + stbi__rewind(s); + return 0; + } + if (x){ *x = tga_w; +} + if (y){ *y = tga_h; +} + if (comp){ *comp = tga_comp; +} + return 1; // seems to have passed everything +} + +static int stbi__tga_test(stbi__context *s) +{ + int res = 0; + int sz, tga_color_type; + stbi__get8(s); // discard Offset + tga_color_type = stbi__get8(s); // color type + if ( tga_color_type > 1 ){ goto errorEnd; // only RGB or indexed allowed +} + sz = stbi__get8(s); // image type + if ( tga_color_type == 1 ) { // colormapped (paletted) image + if (sz != 1 && sz != 9){ goto errorEnd; // colortype 1 demands image type 1 or 9 +} + stbi__skip(s,4); // skip index of first colormap entry and number of entries + sz = stbi__get8(s); // check bits per palette color entry + if ( (sz != 8) && (sz != 15) && (sz != 16) && (sz != 24) && (sz != 32) ){ goto errorEnd; +} + stbi__skip(s,4); // skip image x and y origin + } else { // "normal" image w/o colormap + if ( (sz != 2) && (sz != 3) && (sz != 10) && (sz != 11) ){ goto errorEnd; // only RGB or grey allowed, +/- RLE +} + stbi__skip(s,9); // skip colormap specification and image x/y origin + } + if ( stbi__get16le(s) < 1 ){ goto errorEnd; // test width +} + if ( stbi__get16le(s) < 1 ){ goto errorEnd; // test height +} + sz = stbi__get8(s); // bits per pixel + if ( (tga_color_type == 1) && (sz != 8) && (sz != 16) ){ goto errorEnd; // for colormapped images, bpp is size of an index +} + if ( (sz != 8) && (sz != 15) && (sz != 16) && (sz != 24) && (sz != 32) ){ goto errorEnd; +} + + res = 1; // if we got this far, everything's good and we can return 1 instead of 0 + +errorEnd: + stbi__rewind(s); + return res; +} + +// read 16bit value and convert to 24bit RGB +static void stbi__tga_read_rgb16(stbi__context *s, stbi_uc* out) +{ + stbi__uint16 px = (stbi__uint16)stbi__get16le(s); + stbi__uint16 fiveBitMask = 31; + // we have 3 channels with 5bits each + int r = (px >> 10) & fiveBitMask; + int g = (px >> 5) & fiveBitMask; + int b = px & fiveBitMask; + // Note that this saves the data in RGB(A) order, so it doesn't need to be swapped later + out[0] = (stbi_uc)((r * 255)/31); + out[1] = (stbi_uc)((g * 255)/31); + out[2] = (stbi_uc)((b * 255)/31); + + // some people claim that the most significant bit might be used for alpha + // (possibly if an alpha-bit is set in the "image descriptor byte") + // but that only made 16bit test images completely translucent.. + // so let's treat all 15 and 16bit TGAs as RGB with no alpha. +} + +static void *stbi__tga_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri) +{ + // read in the TGA header stuff + int tga_offset = stbi__get8(s); + int tga_indexed = stbi__get8(s); + int tga_image_type = stbi__get8(s); + int tga_is_RLE = 0; + int tga_palette_start = stbi__get16le(s); + int tga_palette_len = stbi__get16le(s); + int tga_palette_bits = stbi__get8(s); + int tga_x_origin = stbi__get16le(s); + int tga_y_origin = stbi__get16le(s); + int tga_width = stbi__get16le(s); + int tga_height = stbi__get16le(s); + int tga_bits_per_pixel = stbi__get8(s); + int tga_comp, tga_rgb16=0; + int tga_inverted = stbi__get8(s); + // int tga_alpha_bits = tga_inverted & 15; // the 4 lowest bits - unused (useless?) + // image data + unsigned char *tga_data; + unsigned char *tga_palette = NULL; + int i, j; + unsigned char raw_data[4] = {0}; + int RLE_count = 0; + int RLE_repeating = 0; + int read_next_pixel = 1; + STBI_NOTUSED(ri); + STBI_NOTUSED(tga_x_origin); // @TODO + STBI_NOTUSED(tga_y_origin); // @TODO + + if (tga_height > STBI_MAX_DIMENSIONS){ return stbi__errpuc("too large","Very large image (corrupt?)"); +} + if (tga_width > STBI_MAX_DIMENSIONS){ return stbi__errpuc("too large","Very large image (corrupt?)"); +} + + // do a tiny bit of precessing + if ( tga_image_type >= 8 ) + { + tga_image_type -= 8; + tga_is_RLE = 1; + } + tga_inverted = 1 - ((tga_inverted >> 5) & 1); + + // If I'm paletted, then I'll use the number of bits from the palette + if ( tga_indexed ){ tga_comp = stbi__tga_get_comp(tga_palette_bits, 0, &tga_rgb16); +} + else{ tga_comp = stbi__tga_get_comp(tga_bits_per_pixel, (tga_image_type == 3), &tga_rgb16); +} + + if(!tga_comp) // shouldn't really happen, stbi__tga_test() should have ensured basic consistency +{ + return stbi__errpuc("bad format", "Can't find out TGA pixelformat"); +} + + // tga info + *x = tga_width; + *y = tga_height; + if (comp){ *comp = tga_comp; +} + + if (!stbi__mad3sizes_valid(tga_width, tga_height, tga_comp, 0)){ + return stbi__errpuc("too large", "Corrupt TGA"); +} + + tga_data = (unsigned char*)stbi__malloc_mad3(tga_width, tga_height, tga_comp, 0); + if (!tga_data){ return stbi__errpuc("outofmem", "Out of memory"); +} + + // skip to the data's starting position (offset usually = 0) + stbi__skip(s, tga_offset ); + + if ( !tga_indexed && !tga_is_RLE && !tga_rgb16 ) { + for (i=0; i < tga_height; ++i) { + int row = tga_inverted ? tga_height -i - 1 : i; + stbi_uc *tga_row = tga_data + row*tga_width*tga_comp; + stbi__getn(s, tga_row, tga_width * tga_comp); + } + } else { + // do I need to load a palette? + if ( tga_indexed) + { + if (tga_palette_len == 0) { /* you have to have at least one entry! */ + STBI_FREE(tga_data); + return stbi__errpuc("bad palette", "Corrupt TGA"); + } + + // any data to skip? (offset usually = 0) + stbi__skip(s, tga_palette_start ); + // load the palette + tga_palette = (unsigned char*)stbi__malloc_mad2(tga_palette_len, tga_comp, 0); + if (!tga_palette) { + STBI_FREE(tga_data); + return stbi__errpuc("outofmem", "Out of memory"); + } + if (tga_rgb16) { + stbi_uc *pal_entry = tga_palette; + STBI_ASSERT(tga_comp == STBI_rgb); + for (i=0; i < tga_palette_len; ++i) { + stbi__tga_read_rgb16(s, pal_entry); + pal_entry += tga_comp; + } + } else if (!stbi__getn(s, tga_palette, tga_palette_len * tga_comp)) { + STBI_FREE(tga_data); + STBI_FREE(tga_palette); + return stbi__errpuc("bad palette", "Corrupt TGA"); + } + } + // load the data + for (i=0; i < tga_width * tga_height; ++i) + { + // if I'm in RLE mode, do I need to get a RLE stbi__pngchunk? + if ( tga_is_RLE ) + { + if ( RLE_count == 0 ) + { + // yep, get the next byte as a RLE command + int RLE_cmd = stbi__get8(s); + RLE_count = 1 + (RLE_cmd & 127); + RLE_repeating = RLE_cmd >> 7; + read_next_pixel = 1; + } else if ( !RLE_repeating ) + { + read_next_pixel = 1; + } + } else + { + read_next_pixel = 1; + } + // OK, if I need to read a pixel, do it now + if ( read_next_pixel ) + { + // load however much data we did have + if ( tga_indexed ) + { + // read in index, then perform the lookup + int pal_idx = (tga_bits_per_pixel == 8) ? stbi__get8(s) : stbi__get16le(s); + if ( pal_idx >= tga_palette_len ) { + // invalid index + pal_idx = 0; + } + pal_idx *= tga_comp; + for (j = 0; j < tga_comp; ++j) { + raw_data[j] = tga_palette[pal_idx+j]; + } + } else if(tga_rgb16) { + STBI_ASSERT(tga_comp == STBI_rgb); + stbi__tga_read_rgb16(s, raw_data); + } else { + // read in the data raw + for (j = 0; j < tga_comp; ++j) { + raw_data[j] = stbi__get8(s); + } + } + // clear the reading flag for the next pixel + read_next_pixel = 0; + } // end of reading a pixel + + // copy data + for (j = 0; j < tga_comp; ++j){ + tga_data[i*tga_comp+j] = raw_data[j]; +} + + // in case we're in RLE mode, keep counting down + --RLE_count; + } + // do I need to invert the image? + if ( tga_inverted ) + { + for (j = 0; j*2 < tga_height; ++j) + { + int index1 = j * tga_width * tga_comp; + int index2 = (tga_height - 1 - j) * tga_width * tga_comp; + for (i = tga_width * tga_comp; i > 0; --i) + { + unsigned char temp = tga_data[index1]; + tga_data[index1] = tga_data[index2]; + tga_data[index2] = temp; + ++index1; + ++index2; + } + } + } + // clear my palette, if I had one + if ( tga_palette != NULL ) + { + STBI_FREE( tga_palette ); + } + } + + // swap RGB - if the source data was RGB16, it already is in the right order + if (tga_comp >= 3 && !tga_rgb16) + { + unsigned char* tga_pixel = tga_data; + for (i=0; i < tga_width * tga_height; ++i) + { + unsigned char temp = tga_pixel[0]; + tga_pixel[0] = tga_pixel[2]; + tga_pixel[2] = temp; + tga_pixel += tga_comp; + } + } + + // convert to target component count + if (req_comp && req_comp != tga_comp){ + tga_data = stbi__convert_format(tga_data, tga_comp, req_comp, tga_width, tga_height); +} + + // the things I do to get rid of an error message, and yet keep + // Microsoft's C compilers happy... [8^( + tga_palette_start = tga_palette_len = tga_palette_bits = + tga_x_origin = tga_y_origin = 0; + STBI_NOTUSED(tga_palette_start); + // OK, done + return tga_data; +} +#endif + +// ************************************************************************************************* +// Photoshop PSD loader -- PD by Thatcher Ulrich, integration by Nicolas Schulz, tweaked by STB + +#ifndef STBI_NO_PSD +static int stbi__psd_test(stbi__context *s) +{ + int r = (stbi__get32be(s) == 0x38425053); + stbi__rewind(s); + return r; +} + +static int stbi__psd_decode_rle(stbi__context *s, stbi_uc *p, int pixelCount) +{ + int count, nleft, len; + + count = 0; + while ((nleft = pixelCount - count) > 0) { + len = stbi__get8(s); + if (len == 128) { + // No-op. + } else if (len < 128) { + // Copy next len+1 bytes literally. + len++; + if (len > nleft){ return 0; // corrupt data +} + count += len; + while (len) { + *p = stbi__get8(s); + p += 4; + len--; + } + } else if (len > 128) { + stbi_uc val; + // Next -len+1 bytes in the dest are replicated from next source byte. + // (Interpret len as a negative 8-bit int.) + len = 257 - len; + if (len > nleft){ return 0; // corrupt data +} + val = stbi__get8(s); + count += len; + while (len) { + *p = val; + p += 4; + len--; + } + } + } + + return 1; +} + +static void *stbi__psd_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri, int bpc) +{ + int pixelCount; + int channelCount, compression; + int channel, i; + int bitdepth; + int w,h; + stbi_uc *out; + STBI_NOTUSED(ri); + + // Check identifier + if (stbi__get32be(s) != 0x38425053) // "8BPS" +{ + return stbi__errpuc("not PSD", "Corrupt PSD image"); +} + + // Check file type version. + if (stbi__get16be(s) != 1){ + return stbi__errpuc("wrong version", "Unsupported version of PSD image"); +} + + // Skip 6 reserved bytes. + stbi__skip(s, 6 ); + + // Read the number of channels (R, G, B, A, etc). + channelCount = stbi__get16be(s); + if (channelCount < 0 || channelCount > 16){ + return stbi__errpuc("wrong channel count", "Unsupported number of channels in PSD image"); +} + + // Read the rows and columns of the image. + h = stbi__get32be(s); + w = stbi__get32be(s); + + if (h > STBI_MAX_DIMENSIONS){ return stbi__errpuc("too large","Very large image (corrupt?)"); +} + if (w > STBI_MAX_DIMENSIONS){ return stbi__errpuc("too large","Very large image (corrupt?)"); +} + + // Make sure the depth is 8 bits. + bitdepth = stbi__get16be(s); + if (bitdepth != 8 && bitdepth != 16){ + return stbi__errpuc("unsupported bit depth", "PSD bit depth is not 8 or 16 bit"); +} + + // Make sure the color mode is RGB. + // Valid options are: + // 0: Bitmap + // 1: Grayscale + // 2: Indexed color + // 3: RGB color + // 4: CMYK color + // 7: Multichannel + // 8: Duotone + // 9: Lab color + if (stbi__get16be(s) != 3){ + return stbi__errpuc("wrong color format", "PSD is not in RGB color format"); +} + + // Skip the Mode Data. (It's the palette for indexed color; other info for other modes.) + stbi__skip(s,stbi__get32be(s) ); + + // Skip the image resources. (resolution, pen tool paths, etc) + stbi__skip(s, stbi__get32be(s) ); + + // Skip the reserved data. + stbi__skip(s, stbi__get32be(s) ); + + // Find out if the data is compressed. + // Known values: + // 0: no compression + // 1: RLE compressed + compression = stbi__get16be(s); + if (compression > 1){ + return stbi__errpuc("bad compression", "PSD has an unknown compression format"); +} + + // Check size + if (!stbi__mad3sizes_valid(4, w, h, 0)){ + return stbi__errpuc("too large", "Corrupt PSD"); +} + + // Create the destination image. + + if (!compression && bitdepth == 16 && bpc == 16) { + out = (stbi_uc *) stbi__malloc_mad3(8, w, h, 0); + ri->bits_per_channel = 16; + } else{ + out = (stbi_uc *) stbi__malloc(4 * w*h); +} + + if (!out){ return stbi__errpuc("outofmem", "Out of memory"); +} + pixelCount = w*h; + + // Initialize the data to zero. + //memset( out, 0, pixelCount * 4 ); + + // Finally, the image data. + if (compression) { + // RLE as used by .PSD and .TIFF + // Loop until you get the number of unpacked bytes you are expecting: + // Read the next source byte into n. + // If n is between 0 and 127 inclusive, copy the next n+1 bytes literally. + // Else if n is between -127 and -1 inclusive, copy the next byte -n+1 times. + // Else if n is 128, noop. + // Endloop + + // The RLE-compressed data is preceded by a 2-byte data count for each row in the data, + // which we're going to just skip. + stbi__skip(s, h * channelCount * 2 ); + + // Read the RLE data by channel. + for (channel = 0; channel < 4; channel++) { + stbi_uc *p; + + p = out+channel; + if (channel >= channelCount) { + // Fill this channel with default data. + for (i = 0; i < pixelCount; i++, p += 4){ + *p = (channel == 3 ? 255 : 0); +} + } else { + // Read the RLE data. + if (!stbi__psd_decode_rle(s, p, pixelCount)) { + STBI_FREE(out); + return stbi__errpuc("corrupt", "bad RLE data"); + } + } + } + + } else { + // We're at the raw image data. It's each channel in order (Red, Green, Blue, Alpha, ...) + // where each channel consists of an 8-bit (or 16-bit) value for each pixel in the image. + + // Read the data by channel. + for (channel = 0; channel < 4; channel++) { + if (channel >= channelCount) { + // Fill this channel with default data. + if (bitdepth == 16 && bpc == 16) { + stbi__uint16 *q = ((stbi__uint16 *) out) + channel; + stbi__uint16 val = channel == 3 ? 65535 : 0; + for (i = 0; i < pixelCount; i++, q += 4){ + *q = val; +} + } else { + stbi_uc *p = out+channel; + stbi_uc val = channel == 3 ? 255 : 0; + for (i = 0; i < pixelCount; i++, p += 4){ + *p = val; +} + } + } else { + if (ri->bits_per_channel == 16) { // output bpc + stbi__uint16 *q = ((stbi__uint16 *) out) + channel; + for (i = 0; i < pixelCount; i++, q += 4){ + *q = (stbi__uint16) stbi__get16be(s); +} + } else { + stbi_uc *p = out+channel; + if (bitdepth == 16) { // input bpc + for (i = 0; i < pixelCount; i++, p += 4){ + *p = (stbi_uc) (stbi__get16be(s) >> 8); +} + } else { + for (i = 0; i < pixelCount; i++, p += 4){ + *p = stbi__get8(s); +} + } + } + } + } + } + + // remove weird white matte from PSD + if (channelCount >= 4) { + if (ri->bits_per_channel == 16) { + for (i=0; i < w*h; ++i) { + stbi__uint16 *pixel = (stbi__uint16 *) out + 4*i; + if (pixel[3] != 0 && pixel[3] != 65535) { + float a = pixel[3] / 65535.0f; + float ra = 1.0f / a; + float inv_a = 65535.0f * (1 - ra); + pixel[0] = (stbi__uint16) (pixel[0]*ra + inv_a); + pixel[1] = (stbi__uint16) (pixel[1]*ra + inv_a); + pixel[2] = (stbi__uint16) (pixel[2]*ra + inv_a); + } + } + } else { + for (i=0; i < w*h; ++i) { + unsigned char *pixel = out + 4*i; + if (pixel[3] != 0 && pixel[3] != 255) { + float a = pixel[3] / 255.0f; + float ra = 1.0f / a; + float inv_a = 255.0f * (1 - ra); + pixel[0] = (unsigned char) (pixel[0]*ra + inv_a); + pixel[1] = (unsigned char) (pixel[1]*ra + inv_a); + pixel[2] = (unsigned char) (pixel[2]*ra + inv_a); + } + } + } + } + + // convert to desired output format + if (req_comp && req_comp != 4) { + if (ri->bits_per_channel == 16){ + out = (stbi_uc *) stbi__convert_format16((stbi__uint16 *) out, 4, req_comp, w, h); +} + else{ + out = stbi__convert_format(out, 4, req_comp, w, h); +} + if (out == NULL){ return out; // stbi__convert_format frees input on failure +} + } + + if (comp){ *comp = 4; +} + *y = h; + *x = w; + + return out; +} +#endif + +// ************************************************************************************************* +// Softimage PIC loader +// by Tom Seddon +// +// See http://softimage.wiki.softimage.com/index.php/INFO:_PIC_file_format +// See http://ozviz.wasp.uwa.edu.au/~pbourke/dataformats/softimagepic/ + +#ifndef STBI_NO_PIC +static int stbi__pic_is4(stbi__context *s,const char *str) +{ + int i; + for (i=0; i<4; ++i){ + if (stbi__get8(s) != (stbi_uc)str[i]){ + return 0; +}} + + return 1; +} + +static int stbi__pic_test_core(stbi__context *s) +{ + int i; + + if (!stbi__pic_is4(s,"\x53\x80\xF6\x34")){ + return 0; +} + + for(i=0;i<84;++i){ + stbi__get8(s); +} + + if (!stbi__pic_is4(s,"PICT")){ + return 0; +} + + return 1; +} + +typedef struct +{ + stbi_uc size,type,channel; +} stbi__pic_packet; + +static stbi_uc *stbi__readval(stbi__context *s, int channel, stbi_uc *dest) +{ + int mask=0x80, i; + + for (i=0; i<4; ++i, mask>>=1) { + if (channel & mask) { + if (stbi__at_eof(s)){ return stbi__errpuc("bad file","PIC file too short"); +} + dest[i]=stbi__get8(s); + } + } + + return dest; +} + +static void stbi__copyval(int channel,stbi_uc *dest,const stbi_uc *src) +{ + int mask=0x80,i; + + for (i=0;i<4; ++i, mask>>=1){ + if (channel&mask){ + dest[i]=src[i]; +}} +} + +static stbi_uc *stbi__pic_load_core(stbi__context *s,int width,int height,int *comp, stbi_uc *result) +{ + int act_comp=0,num_packets=0,y,chained; + stbi__pic_packet packets[10]; + + // this will (should...) cater for even some bizarre stuff like having data + // for the same channel in multiple packets. + do { + stbi__pic_packet *packet; + + if (num_packets==sizeof(packets)/sizeof(packets[0])){ + return stbi__errpuc("bad format","too many packets"); +} + + packet = &packets[num_packets++]; + + chained = stbi__get8(s); + packet->size = stbi__get8(s); + packet->type = stbi__get8(s); + packet->channel = stbi__get8(s); + + act_comp |= packet->channel; + + if (stbi__at_eof(s)){ return stbi__errpuc("bad file","file too short (reading packets)"); +} + if (packet->size != 8){ return stbi__errpuc("bad format","packet isn't 8bpp"); +} + } while (chained); + + *comp = (act_comp & 0x10 ? 4 : 3); // has alpha channel? + + for(y=0; ytype) { + default: + return stbi__errpuc("bad format","packet has bad compression type"); + + case 0: {//uncompressed + int x; + + for(x=0;xchannel,dest)){ + return 0; +}} + break; + } + + case 1://Pure RLE + { + int left=width, i; + + while (left>0) { + stbi_uc count,value[4]; + + count=stbi__get8(s); + if (stbi__at_eof(s)){ return stbi__errpuc("bad file","file too short (pure read count)"); +} + + if (count > left){ + count = (stbi_uc) left; +} + + if (!stbi__readval(s,packet->channel,value)){ return 0; +} + + for(i=0; ichannel,dest,value); +} + left -= count; + } + } + break; + + case 2: {//Mixed RLE + int left=width; + while (left>0) { + int count = stbi__get8(s), i; + if (stbi__at_eof(s)){ return stbi__errpuc("bad file","file too short (mixed read count)"); +} + + if (count >= 128) { // Repeated + stbi_uc value[4]; + + if (count==128){ + count = stbi__get16be(s); +} + else{ + count -= 127; +} + if (count > left){ + return stbi__errpuc("bad file","scanline overrun"); +} + + if (!stbi__readval(s,packet->channel,value)){ + return 0; +} + + for(i=0;ichannel,dest,value); +} + } else { // Raw + ++count; + if (count>left){ return stbi__errpuc("bad file","scanline overrun"); +} + + for(i=0;ichannel,dest)){ + return 0; +}} + } + left-=count; + } + break; + } + } + } + } + + return result; +} + +static void *stbi__pic_load(stbi__context *s,int *px,int *py,int *comp,int req_comp, stbi__result_info *ri) +{ + stbi_uc *result; + int i, x,y, internal_comp; + STBI_NOTUSED(ri); + + if (!comp){ comp = &internal_comp; +} + + for (i=0; i<92; ++i){ + stbi__get8(s); +} + + x = stbi__get16be(s); + y = stbi__get16be(s); + + if (y > STBI_MAX_DIMENSIONS){ return stbi__errpuc("too large","Very large image (corrupt?)"); +} + if (x > STBI_MAX_DIMENSIONS){ return stbi__errpuc("too large","Very large image (corrupt?)"); +} + + if (stbi__at_eof(s)){ return stbi__errpuc("bad file","file too short (pic header)"); +} + if (!stbi__mad3sizes_valid(x, y, 4, 0)){ return stbi__errpuc("too large", "PIC image too large to decode"); +} + + stbi__get32be(s); //skip `ratio' + stbi__get16be(s); //skip `fields' + stbi__get16be(s); //skip `pad' + + // intermediate buffer is RGBA + result = (stbi_uc *) stbi__malloc_mad3(x, y, 4, 0); + if (!result){ return stbi__errpuc("outofmem", "Out of memory"); +} + memset(result, 0xff, x*y*4); + + if (!stbi__pic_load_core(s,x,y,comp, result)) { + STBI_FREE(result); + result=0; + } + *px = x; + *py = y; + if (req_comp == 0){ req_comp = *comp; +} + result=stbi__convert_format(result,4,req_comp,x,y); + + return result; +} + +static int stbi__pic_test(stbi__context *s) +{ + int r = stbi__pic_test_core(s); + stbi__rewind(s); + return r; +} +#endif + +// ************************************************************************************************* +// GIF loader -- public domain by Jean-Marc Lienher -- simplified/shrunk by stb + +#ifndef STBI_NO_GIF +typedef struct +{ + stbi__int16 prefix; + stbi_uc first; + stbi_uc suffix; +} stbi__gif_lzw; + +typedef struct +{ + int w,h; + stbi_uc *out; // output buffer (always 4 components) + stbi_uc *background; // The current "background" as far as a gif is concerned + stbi_uc *history; + int flags, bgindex, ratio, transparent, eflags; + stbi_uc pal[256][4]; + stbi_uc lpal[256][4]; + stbi__gif_lzw codes[8192]; + stbi_uc *color_table; + int parse, step; + int lflags; + int start_x, start_y; + int max_x, max_y; + int cur_x, cur_y; + int line_size; + int delay; +} stbi__gif; + +static int stbi__gif_test_raw(stbi__context *s) +{ + int sz; + if (stbi__get8(s) != 'G' || stbi__get8(s) != 'I' || stbi__get8(s) != 'F' || stbi__get8(s) != '8'){ return 0; +} + sz = stbi__get8(s); + if (sz != '9' && sz != '7'){ return 0; +} + if (stbi__get8(s) != 'a'){ return 0; +} + return 1; +} + +static int stbi__gif_test(stbi__context *s) +{ + int r = stbi__gif_test_raw(s); + stbi__rewind(s); + return r; +} + +static void stbi__gif_parse_colortable(stbi__context *s, stbi_uc pal[256][4], int num_entries, int transp) +{ + int i; + for (i=0; i < num_entries; ++i) { + pal[i][2] = stbi__get8(s); + pal[i][1] = stbi__get8(s); + pal[i][0] = stbi__get8(s); + pal[i][3] = transp == i ? 0 : 255; + } +} + +static int stbi__gif_header(stbi__context *s, stbi__gif *g, int *comp, int is_info) +{ + stbi_uc version; + if (stbi__get8(s) != 'G' || stbi__get8(s) != 'I' || stbi__get8(s) != 'F' || stbi__get8(s) != '8'){ + return stbi__err("not GIF", "Corrupt GIF"); +} + + version = stbi__get8(s); + if (version != '7' && version != '9'){ return stbi__err("not GIF", "Corrupt GIF"); +} + if (stbi__get8(s) != 'a'){ return stbi__err("not GIF", "Corrupt GIF"); +} + + stbi__g_failure_reason = ""; + g->w = stbi__get16le(s); + g->h = stbi__get16le(s); + g->flags = stbi__get8(s); + g->bgindex = stbi__get8(s); + g->ratio = stbi__get8(s); + g->transparent = -1; + + if (g->w > STBI_MAX_DIMENSIONS){ return stbi__err("too large","Very large image (corrupt?)"); +} + if (g->h > STBI_MAX_DIMENSIONS){ return stbi__err("too large","Very large image (corrupt?)"); +} + + if (comp != 0){ *comp = 4; // can't actually tell whether it's 3 or 4 until we parse the comments +} + + if (is_info){ return 1; +} + + if (g->flags & 0x80){ + stbi__gif_parse_colortable(s,g->pal, 2 << (g->flags & 7), -1); +} + + return 1; +} + +static int stbi__gif_info_raw(stbi__context *s, int *x, int *y, int *comp) +{ + stbi__gif* g = (stbi__gif*) stbi__malloc(sizeof(stbi__gif)); + if (!g){ return stbi__err("outofmem", "Out of memory"); +} + if (!stbi__gif_header(s, g, comp, 1)) { + STBI_FREE(g); + stbi__rewind( s ); + return 0; + } + if (x){ *x = g->w; +} + if (y){ *y = g->h; +} + STBI_FREE(g); + return 1; +} + +static void stbi__out_gif_code(stbi__gif *g, stbi__uint16 code) +{ + stbi_uc *p, *c; + int idx; + + // recurse to decode the prefixes, since the linked-list is backwards, + // and working backwards through an interleaved image would be nasty + if (g->codes[code].prefix >= 0){ + stbi__out_gif_code(g, g->codes[code].prefix); +} + + if (g->cur_y >= g->max_y){ return; +} + + idx = g->cur_x + g->cur_y; + p = &g->out[idx]; + g->history[idx / 4] = 1; + + c = &g->color_table[g->codes[code].suffix * 4]; + if (c[3] > 128) { // don't render transparent pixels; + p[0] = c[2]; + p[1] = c[1]; + p[2] = c[0]; + p[3] = c[3]; + } + g->cur_x += 4; + + if (g->cur_x >= g->max_x) { + g->cur_x = g->start_x; + g->cur_y += g->step; + + while (g->cur_y >= g->max_y && g->parse > 0) { + g->step = (1 << g->parse) * g->line_size; + g->cur_y = g->start_y + (g->step >> 1); + --g->parse; + } + } +} + +static stbi_uc *stbi__process_gif_raster(stbi__context *s, stbi__gif *g) +{ + stbi_uc lzw_cs; + stbi__int32 len, init_code; + stbi__uint32 first; + stbi__int32 codesize, codemask, avail, oldcode, bits, valid_bits, clear; + stbi__gif_lzw *p; + + lzw_cs = stbi__get8(s); + if (lzw_cs > 12){ return NULL; +} + clear = 1 << lzw_cs; + first = 1; + codesize = lzw_cs + 1; + codemask = (1 << codesize) - 1; + bits = 0; + valid_bits = 0; + for (init_code = 0; init_code < clear; init_code++) { + g->codes[init_code].prefix = -1; + g->codes[init_code].first = (stbi_uc) init_code; + g->codes[init_code].suffix = (stbi_uc) init_code; + } + + // support no starting clear code + avail = clear+2; + oldcode = -1; + + len = 0; + for(;;) { + if (valid_bits < codesize) { + if (len == 0) { + len = stbi__get8(s); // start new block + if (len == 0){ + return g->out; +} + } + --len; + bits |= (stbi__int32) stbi__get8(s) << valid_bits; + valid_bits += 8; + } else { + stbi__int32 code = bits & codemask; + bits >>= codesize; + valid_bits -= codesize; + // @OPTIMIZE: is there some way we can accelerate the non-clear path? + if (code == clear) { // clear code + codesize = lzw_cs + 1; + codemask = (1 << codesize) - 1; + avail = clear + 2; + oldcode = -1; + first = 0; + } else if (code == clear + 1) { // end of stream code + stbi__skip(s, len); + while ((len = stbi__get8(s)) > 0){ + stbi__skip(s,len); +} + return g->out; + } else if (code <= avail) { + if (first) { + return stbi__errpuc("no clear code", "Corrupt GIF"); + } + + if (oldcode >= 0) { + p = &g->codes[avail++]; + if (avail > 8192) { + return stbi__errpuc("too many codes", "Corrupt GIF"); + } + + p->prefix = (stbi__int16) oldcode; + p->first = g->codes[oldcode].first; + p->suffix = (code == avail) ? p->first : g->codes[code].first; + } else if (code == avail){ + return stbi__errpuc("illegal code in raster", "Corrupt GIF"); +} + + stbi__out_gif_code(g, (stbi__uint16) code); + + if ((avail & codemask) == 0 && avail <= 0x0FFF) { + codesize++; + codemask = (1 << codesize) - 1; + } + + oldcode = code; + } else { + return stbi__errpuc("illegal code in raster", "Corrupt GIF"); + } + } + } +} + +// this function is designed to support animated gifs, although stb_image doesn't support it +// two back is the image from two frames ago, used for a very specific disposal format +static stbi_uc *stbi__gif_load_next(stbi__context *s, stbi__gif *g, int *comp, int req_comp, stbi_uc *two_back) +{ + int dispose; + int first_frame; + int pi; + int pcount; + STBI_NOTUSED(req_comp); + + // on first frame, any non-written pixels get the background colour (non-transparent) + first_frame = 0; + if (g->out == 0) { + if (!stbi__gif_header(s, g, comp,0)){ return 0; // stbi__g_failure_reason set by stbi__gif_header +} + if (!stbi__mad3sizes_valid(4, g->w, g->h, 0)){ + return stbi__errpuc("too large", "GIF image is too large"); +} + pcount = g->w * g->h; + g->out = (stbi_uc *) stbi__malloc(4 * pcount); + g->background = (stbi_uc *) stbi__malloc(4 * pcount); + g->history = (stbi_uc *) stbi__malloc(pcount); + if (!g->out || !g->background || !g->history){ + return stbi__errpuc("outofmem", "Out of memory"); +} + + // image is treated as "transparent" at the start - ie, nothing overwrites the current background; + // background colour is only used for pixels that are not rendered first frame, after that "background" + // color refers to the color that was there the previous frame. + memset(g->out, 0x00, 4 * pcount); + memset(g->background, 0x00, 4 * pcount); // state of the background (starts transparent) + memset(g->history, 0x00, pcount); // pixels that were affected previous frame + first_frame = 1; + } else { + // second frame - how do we dispose of the previous one? + dispose = (g->eflags & 0x1C) >> 2; + pcount = g->w * g->h; + + if ((dispose == 3) && (two_back == 0)) { + dispose = 2; // if I don't have an image to revert back to, default to the old background + } + + if (dispose == 3) { // use previous graphic + for (pi = 0; pi < pcount; ++pi) { + if (g->history[pi]) { + memcpy( &g->out[pi * 4], &two_back[pi * 4], 4 ); + } + } + } else if (dispose == 2) { + // restore what was changed last frame to background before that frame; + for (pi = 0; pi < pcount; ++pi) { + if (g->history[pi]) { + memcpy( &g->out[pi * 4], &g->background[pi * 4], 4 ); + } + } + } else { + // This is a non-disposal case eithe way, so just + // leave the pixels as is, and they will become the new background + // 1: do not dispose + // 0: not specified. + } + + // background is what out is after the undoing of the previou frame; + memcpy( g->background, g->out, 4 * g->w * g->h ); + } + + // clear my history; + memset( g->history, 0x00, g->w * g->h ); // pixels that were affected previous frame + + for (;;) { + int tag = stbi__get8(s); + switch (tag) { + case 0x2C: /* Image Descriptor */ + { + stbi__int32 x, y, w, h; + stbi_uc *o; + + x = stbi__get16le(s); + y = stbi__get16le(s); + w = stbi__get16le(s); + h = stbi__get16le(s); + if (((x + w) > (g->w)) || ((y + h) > (g->h))){ + return stbi__errpuc("bad Image Descriptor", "Corrupt GIF"); +} + + g->line_size = g->w * 4; + g->start_x = x * 4; + g->start_y = y * g->line_size; + g->max_x = g->start_x + w * 4; + g->max_y = g->start_y + h * g->line_size; + g->cur_x = g->start_x; + g->cur_y = g->start_y; + + // if the width of the specified rectangle is 0, that means + // we may not see *any* pixels or the image is malformed; + // to make sure this is caught, move the current y down to + // max_y (which is what out_gif_code checks). + if (w == 0){ + g->cur_y = g->max_y; +} + + g->lflags = stbi__get8(s); + + if (g->lflags & 0x40) { + g->step = 8 * g->line_size; // first interlaced spacing + g->parse = 3; + } else { + g->step = g->line_size; + g->parse = 0; + } + + if (g->lflags & 0x80) { + stbi__gif_parse_colortable(s,g->lpal, 2 << (g->lflags & 7), g->eflags & 0x01 ? g->transparent : -1); + g->color_table = (stbi_uc *) g->lpal; + } else if (g->flags & 0x80) { + g->color_table = (stbi_uc *) g->pal; + } else{ + return stbi__errpuc("missing color table", "Corrupt GIF"); +} + + o = stbi__process_gif_raster(s, g); + if (!o){ return NULL; +} + + // if this was the first frame, + pcount = g->w * g->h; + if (first_frame && (g->bgindex > 0)) { + // if first frame, any pixel not drawn to gets the background color + for (pi = 0; pi < pcount; ++pi) { + if (g->history[pi] == 0) { + g->pal[g->bgindex][3] = 255; // just in case it was made transparent, undo that; It will be reset next frame if need be; + memcpy( &g->out[pi * 4], &g->pal[g->bgindex], 4 ); + } + } + } + + return o; + } + + case 0x21: // Comment Extension. + { + int len; + int ext = stbi__get8(s); + if (ext == 0xF9) { // Graphic Control Extension. + len = stbi__get8(s); + if (len == 4) { + g->eflags = stbi__get8(s); + g->delay = 10 * stbi__get16le(s); // delay - 1/100th of a second, saving as 1/1000ths. + + // unset old transparent + if (g->transparent >= 0) { + g->pal[g->transparent][3] = 255; + } + if (g->eflags & 0x01) { + g->transparent = stbi__get8(s); + if (g->transparent >= 0) { + g->pal[g->transparent][3] = 0; + } + } else { + // don't need transparent + stbi__skip(s, 1); + g->transparent = -1; + } + } else { + stbi__skip(s, len); + break; + } + } + while ((len = stbi__get8(s)) != 0) { + stbi__skip(s, len); + } + break; + } + + case 0x3B: // gif stream termination code + return (stbi_uc *) s; // using '1' causes warning on some compilers + + default: + return stbi__errpuc("unknown code", "Corrupt GIF"); + } + } +} + +static void *stbi__load_gif_main_outofmem(stbi__gif *g, stbi_uc *out, int **delays) +{ + STBI_FREE(g->out); + STBI_FREE(g->history); + STBI_FREE(g->background); + + if (out){ STBI_FREE(out); +} + if (delays && *delays){ STBI_FREE(*delays); +} + return stbi__errpuc("outofmem", "Out of memory"); +} + +static void *stbi__load_gif_main(stbi__context *s, int **delays, int *x, int *y, int *z, int *comp, int req_comp) +{ + if (stbi__gif_test(s)) { + int layers = 0; + stbi_uc *u = 0; + stbi_uc *out = 0; + stbi_uc *two_back = 0; + stbi__gif g; + int stride; + int out_size = 0; + int delays_size = 0; + + STBI_NOTUSED(out_size); + STBI_NOTUSED(delays_size); + + memset(&g, 0, sizeof(g)); + if (delays) { + *delays = 0; + } + + do { + u = stbi__gif_load_next(s, &g, comp, req_comp, two_back); + if (u == (stbi_uc *) s){ u = 0; // end of animated gif marker +} + + if (u) { + *x = g.w; + *y = g.h; + ++layers; + stride = g.w * g.h * 4; + + if (out) { + void *tmp = (stbi_uc*) STBI_REALLOC_SIZED( out, out_size, layers * stride ); + if (!tmp){ + return stbi__load_gif_main_outofmem(&g, out, delays); +} + else { + out = (stbi_uc*) tmp; + out_size = layers * stride; + } + + if (delays) { + int *new_delays = (int*) STBI_REALLOC_SIZED( *delays, delays_size, sizeof(int) * layers ); + if (!new_delays){ + return stbi__load_gif_main_outofmem(&g, out, delays); +} + *delays = new_delays; + delays_size = layers * sizeof(int); + } + } else { + out = (stbi_uc*)stbi__malloc( layers * stride ); + if (!out){ + return stbi__load_gif_main_outofmem(&g, out, delays); +} + out_size = layers * stride; + if (delays) { + *delays = (int*) stbi__malloc( layers * sizeof(int) ); + if (!*delays){ + return stbi__load_gif_main_outofmem(&g, out, delays); +} + delays_size = layers * sizeof(int); + } + } + memcpy( out + ((layers - 1) * stride), u, stride ); + if (layers >= 2) { + two_back = out - 2 * stride; + } + + if (delays) { + (*delays)[layers - 1U] = g.delay; + } + } + } while (u != 0); + + // free temp buffer; + STBI_FREE(g.out); + STBI_FREE(g.history); + STBI_FREE(g.background); + + // do the final conversion after loading everything; + if (req_comp && req_comp != 4){ + out = stbi__convert_format(out, 4, req_comp, layers * g.w, g.h); +} + + *z = layers; + return out; + } else { + return stbi__errpuc("not GIF", "Image was not as a gif type."); + } +} + +static void *stbi__gif_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri) +{ + stbi_uc *u = 0; + stbi__gif g; + memset(&g, 0, sizeof(g)); + STBI_NOTUSED(ri); + + u = stbi__gif_load_next(s, &g, comp, req_comp, 0); + if (u == (stbi_uc *) s){ u = 0; // end of animated gif marker +} + if (u) { + *x = g.w; + *y = g.h; + + // moved conversion to after successful load so that the same + // can be done for multiple frames. + if (req_comp && req_comp != 4){ + u = stbi__convert_format(u, 4, req_comp, g.w, g.h); +} + } else if (g.out) { + // if there was an error and we allocated an image buffer, free it! + STBI_FREE(g.out); + } + + // free buffers needed for multiple frame loading; + STBI_FREE(g.history); + STBI_FREE(g.background); + + return u; +} + +static int stbi__gif_info(stbi__context *s, int *x, int *y, int *comp) +{ + return stbi__gif_info_raw(s,x,y,comp); +} +#endif + +// ************************************************************************************************* +// Radiance RGBE HDR loader +// originally by Nicolas Schulz +#ifndef STBI_NO_HDR +static int stbi__hdr_test_core(stbi__context *s, const char *signature) +{ + int i; + for (i=0; signature[i]; ++i){ + if (stbi__get8(s) != signature[i]){ + return 0; +}} + stbi__rewind(s); + return 1; +} + +static int stbi__hdr_test(stbi__context* s) +{ + int r = stbi__hdr_test_core(s, "#?RADIANCE\n"); + stbi__rewind(s); + if(!r) { + r = stbi__hdr_test_core(s, "#?RGBE\n"); + stbi__rewind(s); + } + return r; +} + +#define STBI__HDR_BUFLEN 1024 +static char *stbi__hdr_gettoken(stbi__context *z, char *buffer) +{ + int len=0; + char c = '\0'; + + c = (char) stbi__get8(z); + + while (!stbi__at_eof(z) && c != '\n') { + buffer[len++] = c; + if (len == STBI__HDR_BUFLEN-1) { + // flush to end of line + while (!stbi__at_eof(z) && stbi__get8(z) != '\n') + ; + break; + } + c = (char) stbi__get8(z); + } + + buffer[len] = 0; + return buffer; +} + +static void stbi__hdr_convert(float *output, stbi_uc *input, int req_comp) +{ + if ( input[3] != 0 ) { + float f1; + // Exponent + f1 = (float) ldexp(1.0f, input[3] - (int)(128 + 8)); + if (req_comp <= 2){ + output[0] = (input[0] + input[1] + input[2]) * f1 / 3; +} + else { + output[0] = input[0] * f1; + output[1] = input[1] * f1; + output[2] = input[2] * f1; + } + if (req_comp == 2){ output[1] = 1; +} + if (req_comp == 4){ output[3] = 1; +} + } else { + switch (req_comp) { + case 4: output[3] = 1; /* fallthrough */ + case 3: output[0] = output[1] = output[2] = 0; + break; + case 2: output[1] = 1; /* fallthrough */ + case 1: output[0] = 0; + break; + } + } +} + +static float *stbi__hdr_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri) +{ + char buffer[STBI__HDR_BUFLEN]; + char *token; + int valid = 0; + int width, height; + stbi_uc *scanline; + float *hdr_data; + int len; + unsigned char count, value; + int i, j, k, c1,c2, z; + const char *headerToken; + STBI_NOTUSED(ri); + + // Check identifier + headerToken = stbi__hdr_gettoken(s,buffer); + if (strcmp(headerToken, "#?RADIANCE") != 0 && strcmp(headerToken, "#?RGBE") != 0){ + return stbi__errpf("not HDR", "Corrupt HDR image"); +} + + // Parse header + for(;;) { + token = stbi__hdr_gettoken(s,buffer); + if (token[0] == 0){ break; +} + if (strcmp(token, "FORMAT=32-bit_rle_rgbe") == 0){ valid = 1; +} + } + + if (!valid){ return stbi__errpf("unsupported format", "Unsupported HDR format"); +} + + // Parse width and height + // can't use sscanf() if we're not using stdio! + token = stbi__hdr_gettoken(s,buffer); + if (strncmp(token, "-Y ", 3)){ return stbi__errpf("unsupported data layout", "Unsupported HDR format"); +} + token += 3; + height = (int) strtol(token, &token, 10); + while (*token == ' '){ ++token; +} + if (strncmp(token, "+X ", 3)){ return stbi__errpf("unsupported data layout", "Unsupported HDR format"); +} + token += 3; + width = (int) strtol(token, NULL, 10); + + if (height > STBI_MAX_DIMENSIONS){ return stbi__errpf("too large","Very large image (corrupt?)"); +} + if (width > STBI_MAX_DIMENSIONS){ return stbi__errpf("too large","Very large image (corrupt?)"); +} + + *x = width; + *y = height; + + if (comp){ *comp = 3; +} + if (req_comp == 0){ req_comp = 3; +} + + if (!stbi__mad4sizes_valid(width, height, req_comp, sizeof(float), 0)){ + return stbi__errpf("too large", "HDR image is too large"); +} + + // Read data + hdr_data = (float *) stbi__malloc_mad4(width, height, req_comp, sizeof(float), 0); + if (!hdr_data){ + return stbi__errpf("outofmem", "Out of memory"); +} + + // Load image data + // image data is stored as some number of sca + if ( width < 8 || width >= 32768) { + // Read flat data + for (j=0; j < height; ++j) { + for (i=0; i < width; ++i) { + stbi_uc rgbe[4]; + main_decode_loop: + stbi__getn(s, rgbe, 4); + stbi__hdr_convert(hdr_data + j * width * req_comp + i * req_comp, rgbe, req_comp); + } + } + } else { + // Read RLE-encoded data + scanline = NULL; + + for (j = 0; j < height; ++j) { + c1 = stbi__get8(s); + c2 = stbi__get8(s); + len = stbi__get8(s); + if (c1 != 2 || c2 != 2 || (len & 0x80)) { + // not run-length encoded, so we have to actually use THIS data as a decoded + // pixel (note this can't be a valid pixel--one of RGB must be >= 128) + stbi_uc rgbe[4]; + rgbe[0] = (stbi_uc) c1; + rgbe[1] = (stbi_uc) c2; + rgbe[2] = (stbi_uc) len; + rgbe[3] = (stbi_uc) stbi__get8(s); + stbi__hdr_convert(hdr_data, rgbe, req_comp); + i = 1; + j = 0; + STBI_FREE(scanline); + goto main_decode_loop; // yes, this makes no sense + } + len <<= 8; + len |= stbi__get8(s); + if (len != width) { STBI_FREE(hdr_data); STBI_FREE(scanline); return stbi__errpf("invalid decoded scanline length", "corrupt HDR"); } + if (scanline == NULL) { + scanline = (stbi_uc *) stbi__malloc_mad2(width, 4, 0); + if (!scanline) { + STBI_FREE(hdr_data); + return stbi__errpf("outofmem", "Out of memory"); + } + } + + for (k = 0; k < 4; ++k) { + int nleft; + i = 0; + while ((nleft = width - i) > 0) { + count = stbi__get8(s); + if (count > 128) { + // Run + value = stbi__get8(s); + count -= 128; + if ((count == 0) || (count > nleft)) { STBI_FREE(hdr_data); STBI_FREE(scanline); return stbi__errpf("corrupt", "bad RLE data in HDR"); } + for (z = 0; z < count; ++z){ + scanline[i++ * 4 + k] = value; +} + } else { + // Dump + if ((count == 0) || (count > nleft)) { STBI_FREE(hdr_data); STBI_FREE(scanline); return stbi__errpf("corrupt", "bad RLE data in HDR"); } + for (z = 0; z < count; ++z){ + scanline[i++ * 4 + k] = stbi__get8(s); +} + } + } + } + for (i=0; i < width; ++i){ + stbi__hdr_convert(hdr_data+(j*width + i)*req_comp, scanline + i*4, req_comp); +} + } + if (scanline){ + STBI_FREE(scanline); +} + } + + return hdr_data; +} + +static int stbi__hdr_info(stbi__context *s, int *x, int *y, int *comp) +{ + char buffer[STBI__HDR_BUFLEN]; + char *token; + int valid = 0; + int dummy; + + if (!x){ x = &dummy; +} + if (!y){ y = &dummy; +} + if (!comp){ comp = &dummy; +} + + if (stbi__hdr_test(s) == 0) { + stbi__rewind( s ); + return 0; + } + + for(;;) { + token = stbi__hdr_gettoken(s,buffer); + if (token[0] == 0){ break; +} + if (strcmp(token, "FORMAT=32-bit_rle_rgbe") == 0){ valid = 1; +} + } + + if (!valid) { + stbi__rewind( s ); + return 0; + } + token = stbi__hdr_gettoken(s,buffer); + if (strncmp(token, "-Y ", 3)) { + stbi__rewind( s ); + return 0; + } + token += 3; + *y = (int) strtol(token, &token, 10); + while (*token == ' '){ ++token; +} + if (strncmp(token, "+X ", 3)) { + stbi__rewind( s ); + return 0; + } + token += 3; + *x = (int) strtol(token, NULL, 10); + *comp = 3; + return 1; +} +#endif // STBI_NO_HDR + +#ifndef STBI_NO_BMP +static int stbi__bmp_info(stbi__context *s, int *x, int *y, int *comp) +{ + void *p; + stbi__bmp_data info; + + info.all_a = 255; + p = stbi__bmp_parse_header(s, &info); + if (p == NULL) { + stbi__rewind( s ); + return 0; + } + if (x){ *x = s->img_x; +} + if (y){ *y = s->img_y; +} + if (comp) { + if (info.bpp == 24 && info.ma == 0xff000000){ + *comp = 3; +} + else{ + *comp = info.ma ? 4 : 3; +} + } + return 1; +} +#endif + +#ifndef STBI_NO_PSD +static int stbi__psd_info(stbi__context *s, int *x, int *y, int *comp) +{ + int channelCount, dummy, depth; + if (!x){ x = &dummy; +} + if (!y){ y = &dummy; +} + if (!comp){ comp = &dummy; +} + if (stbi__get32be(s) != 0x38425053) { + stbi__rewind( s ); + return 0; + } + if (stbi__get16be(s) != 1) { + stbi__rewind( s ); + return 0; + } + stbi__skip(s, 6); + channelCount = stbi__get16be(s); + if (channelCount < 0 || channelCount > 16) { + stbi__rewind( s ); + return 0; + } + *y = stbi__get32be(s); + *x = stbi__get32be(s); + depth = stbi__get16be(s); + if (depth != 8 && depth != 16) { + stbi__rewind( s ); + return 0; + } + if (stbi__get16be(s) != 3) { + stbi__rewind( s ); + return 0; + } + *comp = 4; + return 1; +} + +static int stbi__psd_is16(stbi__context *s) +{ + int channelCount, depth; + if (stbi__get32be(s) != 0x38425053) { + stbi__rewind( s ); + return 0; + } + if (stbi__get16be(s) != 1) { + stbi__rewind( s ); + return 0; + } + stbi__skip(s, 6); + channelCount = stbi__get16be(s); + if (channelCount < 0 || channelCount > 16) { + stbi__rewind( s ); + return 0; + } + STBI_NOTUSED(stbi__get32be(s)); + STBI_NOTUSED(stbi__get32be(s)); + depth = stbi__get16be(s); + if (depth != 16) { + stbi__rewind( s ); + return 0; + } + return 1; +} +#endif + +#ifndef STBI_NO_PIC +static int stbi__pic_info(stbi__context *s, int *x, int *y, int *comp) +{ + int act_comp=0,num_packets=0,chained,dummy; + stbi__pic_packet packets[10]; + + if (!x){ x = &dummy; +} + if (!y){ y = &dummy; +} + if (!comp){ comp = &dummy; +} + + if (!stbi__pic_is4(s,"\x53\x80\xF6\x34")) { + stbi__rewind(s); + return 0; + } + + stbi__skip(s, 88); + + *x = stbi__get16be(s); + *y = stbi__get16be(s); + if (stbi__at_eof(s)) { + stbi__rewind( s); + return 0; + } + if ( (*x) != 0 && (1 << 28) / (*x) < (*y)) { + stbi__rewind( s ); + return 0; + } + + stbi__skip(s, 8); + + do { + stbi__pic_packet *packet; + + if (num_packets==sizeof(packets)/sizeof(packets[0])){ + return 0; +} + + packet = &packets[num_packets++]; + chained = stbi__get8(s); + packet->size = stbi__get8(s); + packet->type = stbi__get8(s); + packet->channel = stbi__get8(s); + act_comp |= packet->channel; + + if (stbi__at_eof(s)) { + stbi__rewind( s ); + return 0; + } + if (packet->size != 8) { + stbi__rewind( s ); + return 0; + } + } while (chained); + + *comp = (act_comp & 0x10 ? 4 : 3); + + return 1; +} +#endif + +// ************************************************************************************************* +// Portable Gray Map and Portable Pixel Map loader +// by Ken Miller +// +// PGM: http://netpbm.sourceforge.net/doc/pgm.html +// PPM: http://netpbm.sourceforge.net/doc/ppm.html +// +// Known limitations: +// Does not support comments in the header section +// Does not support ASCII image data (formats P2 and P3) + +#ifndef STBI_NO_PNM + +static int stbi__pnm_test(stbi__context *s) +{ + char p, t; + p = (char) stbi__get8(s); + t = (char) stbi__get8(s); + if (p != 'P' || (t != '5' && t != '6')) { + stbi__rewind( s ); + return 0; + } + return 1; +} + +static void *stbi__pnm_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri) +{ + stbi_uc *out; + STBI_NOTUSED(ri); + + ri->bits_per_channel = stbi__pnm_info(s, (int *)&s->img_x, (int *)&s->img_y, (int *)&s->img_n); + if (ri->bits_per_channel == 0){ + return 0; +} + + if (s->img_y > STBI_MAX_DIMENSIONS){ return stbi__errpuc("too large","Very large image (corrupt?)"); +} + if (s->img_x > STBI_MAX_DIMENSIONS){ return stbi__errpuc("too large","Very large image (corrupt?)"); +} + + *x = s->img_x; + *y = s->img_y; + if (comp){ *comp = s->img_n; +} + + if (!stbi__mad4sizes_valid(s->img_n, s->img_x, s->img_y, ri->bits_per_channel / 8, 0)){ + return stbi__errpuc("too large", "PNM too large"); +} + + out = (stbi_uc *) stbi__malloc_mad4(s->img_n, s->img_x, s->img_y, ri->bits_per_channel / 8, 0); + if (!out){ return stbi__errpuc("outofmem", "Out of memory"); +} + if (!stbi__getn(s, out, s->img_n * s->img_x * s->img_y * (ri->bits_per_channel / 8))) { + STBI_FREE(out); + return stbi__errpuc("bad PNM", "PNM file truncated"); + } + + if (req_comp && req_comp != s->img_n) { + if (ri->bits_per_channel == 16) { + out = (stbi_uc *) stbi__convert_format16((stbi__uint16 *) out, s->img_n, req_comp, s->img_x, s->img_y); + } else { + out = stbi__convert_format(out, s->img_n, req_comp, s->img_x, s->img_y); + } + if (out == NULL){ return out; // stbi__convert_format frees input on failure +} + } + return out; +} + +static int stbi__pnm_isspace(char c) +{ + return c == ' ' || c == '\t' || c == '\n' || c == '\v' || c == '\f' || c == '\r'; +} + +static void stbi__pnm_skip_whitespace(stbi__context *s, char *c) +{ + for (;;) { + while (!stbi__at_eof(s) && stbi__pnm_isspace(*c)){ + *c = (char) stbi__get8(s); +} + + if (stbi__at_eof(s) || *c != '#'){ + break; +} + + while (!stbi__at_eof(s) && *c != '\n' && *c != '\r' ){ + *c = (char) stbi__get8(s); +} + } +} + +static int stbi__pnm_isdigit(char c) +{ + return c >= '0' && c <= '9'; +} + +static int stbi__pnm_getinteger(stbi__context *s, char *c) +{ + int value = 0; + + while (!stbi__at_eof(s) && stbi__pnm_isdigit(*c)) { + value = value*10 + (*c - '0'); + *c = (char) stbi__get8(s); + if((value > 214748364) || (value == 214748364 && *c > '7')){ + return stbi__err("integer parse overflow", "Parsing an integer in the PPM header overflowed a 32-bit int"); +} + } + + return value; +} + +static int stbi__pnm_info(stbi__context *s, int *x, int *y, int *comp) +{ + int maxv, dummy; + char c, p, t; + + if (!x){ x = &dummy; +} + if (!y){ y = &dummy; +} + if (!comp){ comp = &dummy; +} + + stbi__rewind(s); + + // Get identifier + p = (char) stbi__get8(s); + t = (char) stbi__get8(s); + if (p != 'P' || (t != '5' && t != '6')) { + stbi__rewind(s); + return 0; + } + + *comp = (t == '6') ? 3 : 1; // '5' is 1-component .pgm; '6' is 3-component .ppm + + c = (char) stbi__get8(s); + stbi__pnm_skip_whitespace(s, &c); + + *x = stbi__pnm_getinteger(s, &c); // read width + if(*x == 0){ + return stbi__err("invalid width", "PPM image header had zero or overflowing width"); +} + stbi__pnm_skip_whitespace(s, &c); + + *y = stbi__pnm_getinteger(s, &c); // read height + if (*y == 0){ + return stbi__err("invalid width", "PPM image header had zero or overflowing width"); +} + stbi__pnm_skip_whitespace(s, &c); + + maxv = stbi__pnm_getinteger(s, &c); // read max value + if (maxv > 65535){ + return stbi__err("max value > 65535", "PPM image supports only 8-bit and 16-bit images"); +} + else if (maxv > 255){ + return 16; +} + else{ + return 8; +} +} + +static int stbi__pnm_is16(stbi__context *s) +{ + if (stbi__pnm_info(s, NULL, NULL, NULL) == 16){ + return 1; +} + return 0; +} +#endif + +static int stbi__info_main(stbi__context *s, int *x, int *y, int *comp) +{ + #ifndef STBI_NO_JPEG + if (stbi__jpeg_info(s, x, y, comp)){ return 1; +} + #endif + + #ifndef STBI_NO_PNG + if (stbi__png_info(s, x, y, comp)){ return 1; +} + #endif + + #ifndef STBI_NO_GIF + if (stbi__gif_info(s, x, y, comp)){ return 1; +} + #endif + + #ifndef STBI_NO_BMP + if (stbi__bmp_info(s, x, y, comp)){ return 1; +} + #endif + + #ifndef STBI_NO_PSD + if (stbi__psd_info(s, x, y, comp)){ return 1; +} + #endif + + #ifndef STBI_NO_PIC + if (stbi__pic_info(s, x, y, comp)){ return 1; +} + #endif + + #ifndef STBI_NO_PNM + if (stbi__pnm_info(s, x, y, comp)){ return 1; +} + #endif + + #ifndef STBI_NO_HDR + if (stbi__hdr_info(s, x, y, comp)){ return 1; +} + #endif + + // test tga last because it's a crappy test! + #ifndef STBI_NO_TGA + if (stbi__tga_info(s, x, y, comp)){ + return 1; +} + #endif + return stbi__err("unknown image type", "Image not of any known type, or corrupt"); +} + +static int stbi__is_16_main(stbi__context *s) +{ + #ifndef STBI_NO_PNG + if (stbi__png_is16(s)){ return 1; +} + #endif + + #ifndef STBI_NO_PSD + if (stbi__psd_is16(s)){ return 1; +} + #endif + + #ifndef STBI_NO_PNM + if (stbi__pnm_is16(s)){ return 1; +} + #endif + return 0; +} + +#ifndef STBI_NO_STDIO +STBIDEF int stbi_info(char const *filename, int *x, int *y, int *comp) +{ + FILE *f = stbi__fopen(filename, "rb"); + int result; + if (!f){ return stbi__err("can't fopen", "Unable to open file"); +} + result = stbi_info_from_file(f, x, y, comp); + fclose(f); + return result; +} + +STBIDEF int stbi_info_from_file(FILE *f, int *x, int *y, int *comp) +{ + int r; + stbi__context s; + long pos = ftell(f); + stbi__start_file(&s, f); + r = stbi__info_main(&s,x,y,comp); + fseek(f,pos,SEEK_SET); + return r; +} + +STBIDEF int stbi_is_16_bit(char const *filename) +{ + FILE *f = stbi__fopen(filename, "rb"); + int result; + if (!f){ return stbi__err("can't fopen", "Unable to open file"); +} + result = stbi_is_16_bit_from_file(f); + fclose(f); + return result; +} + +STBIDEF int stbi_is_16_bit_from_file(FILE *f) +{ + int r; + stbi__context s; + long pos = ftell(f); + stbi__start_file(&s, f); + r = stbi__is_16_main(&s); + fseek(f,pos,SEEK_SET); + return r; +} +#endif // !STBI_NO_STDIO + +STBIDEF int stbi_info_from_memory(stbi_uc const *buffer, int len, int *x, int *y, int *comp) +{ + stbi__context s; + stbi__start_mem(&s,buffer,len); + return stbi__info_main(&s,x,y,comp); +} + +STBIDEF int stbi_info_from_callbacks(stbi_io_callbacks const *c, void *user, int *x, int *y, int *comp) +{ + stbi__context s; + stbi__start_callbacks(&s, (stbi_io_callbacks *) c, user); + return stbi__info_main(&s,x,y,comp); +} + +STBIDEF int stbi_is_16_bit_from_memory(stbi_uc const *buffer, int len) +{ + stbi__context s; + stbi__start_mem(&s,buffer,len); + return stbi__is_16_main(&s); +} + +STBIDEF int stbi_is_16_bit_from_callbacks(stbi_io_callbacks const *c, void *user) +{ + stbi__context s; + stbi__start_callbacks(&s, (stbi_io_callbacks *) c, user); + return stbi__is_16_main(&s); +} + +#endif // STB_IMAGE_IMPLEMENTATION + +/* + revision history: + 2.20 (2019-02-07) support utf8 filenames in Windows; fix warnings and platform ifdefs + 2.19 (2018-02-11) fix warning + 2.18 (2018-01-30) fix warnings + 2.17 (2018-01-29) change sbti__shiftsigned to avoid clang -O2 bug + 1-bit BMP + *_is_16_bit api + avoid warnings + 2.16 (2017-07-23) all functions have 16-bit variants; + STBI_NO_STDIO works again; + compilation fixes; + fix rounding in unpremultiply; + optimize vertical flip; + disable raw_len validation; + documentation fixes + 2.15 (2017-03-18) fix png-1,2,4 bug; now all Imagenet JPGs decode; + warning fixes; disable run-time SSE detection on gcc; + uniform handling of optional "return" values; + thread-safe initialization of zlib tables + 2.14 (2017-03-03) remove deprecated STBI_JPEG_OLD; fixes for Imagenet JPGs + 2.13 (2016-11-29) add 16-bit API, only supported for PNG right now + 2.12 (2016-04-02) fix typo in 2.11 PSD fix that caused crashes + 2.11 (2016-04-02) allocate large structures on the stack + remove white matting for transparent PSD + fix reported channel count for PNG & BMP + re-enable SSE2 in non-gcc 64-bit + support RGB-formatted JPEG + read 16-bit PNGs (only as 8-bit) + 2.10 (2016-01-22) avoid warning introduced in 2.09 by STBI_REALLOC_SIZED + 2.09 (2016-01-16) allow comments in PNM files + 16-bit-per-pixel TGA (not bit-per-component) + info() for TGA could break due to .hdr handling + info() for BMP to shares code instead of sloppy parse + can use STBI_REALLOC_SIZED if allocator doesn't support realloc + code cleanup + 2.08 (2015-09-13) fix to 2.07 cleanup, reading RGB PSD as RGBA + 2.07 (2015-09-13) fix compiler warnings + partial animated GIF support + limited 16-bpc PSD support + #ifdef unused functions + bug with < 92 byte PIC,PNM,HDR,TGA + 2.06 (2015-04-19) fix bug where PSD returns wrong '*comp' value + 2.05 (2015-04-19) fix bug in progressive JPEG handling, fix warning + 2.04 (2015-04-15) try to re-enable SIMD on MinGW 64-bit + 2.03 (2015-04-12) extra corruption checking (mmozeiko) + stbi_set_flip_vertically_on_load (nguillemot) + fix NEON support; fix mingw support + 2.02 (2015-01-19) fix incorrect assert, fix warning + 2.01 (2015-01-17) fix various warnings; suppress SIMD on gcc 32-bit without -msse2 + 2.00b (2014-12-25) fix STBI_MALLOC in progressive JPEG + 2.00 (2014-12-25) optimize JPG, including x86 SSE2 & NEON SIMD (ryg) + progressive JPEG (stb) + PGM/PPM support (Ken Miller) + STBI_MALLOC,STBI_REALLOC,STBI_FREE + GIF bugfix -- seemingly never worked + STBI_NO_*, STBI_ONLY_* + 1.48 (2014-12-14) fix incorrectly-named assert() + 1.47 (2014-12-14) 1/2/4-bit PNG support, both direct and paletted (Omar Cornut & stb) + optimize PNG (ryg) + fix bug in interlaced PNG with user-specified channel count (stb) + 1.46 (2014-08-26) + fix broken tRNS chunk (colorkey-style transparency) in non-paletted PNG + 1.45 (2014-08-16) + fix MSVC-ARM internal compiler error by wrapping malloc + 1.44 (2014-08-07) + various warning fixes from Ronny Chevalier + 1.43 (2014-07-15) + fix MSVC-only compiler problem in code changed in 1.42 + 1.42 (2014-07-09) + don't define _CRT_SECURE_NO_WARNINGS (affects user code) + fixes to stbi__cleanup_jpeg path + added STBI_ASSERT to avoid requiring assert.h + 1.41 (2014-06-25) + fix search&replace from 1.36 that messed up comments/error messages + 1.40 (2014-06-22) + fix gcc struct-initialization warning + 1.39 (2014-06-15) + fix to TGA optimization when req_comp != number of components in TGA; + fix to GIF loading because BMP wasn't rewinding (whoops, no GIFs in my test suite) + add support for BMP version 5 (more ignored fields) + 1.38 (2014-06-06) + suppress MSVC warnings on integer casts truncating values + fix accidental rename of 'skip' field of I/O + 1.37 (2014-06-04) + remove duplicate typedef + 1.36 (2014-06-03) + convert to header file single-file library + if de-iphone isn't set, load iphone images color-swapped instead of returning NULL + 1.35 (2014-05-27) + various warnings + fix broken STBI_SIMD path + fix bug where stbi_load_from_file no longer left file pointer in correct place + fix broken non-easy path for 32-bit BMP (possibly never used) + TGA optimization by Arseny Kapoulkine + 1.34 (unknown) + use STBI_NOTUSED in stbi__resample_row_generic(), fix one more leak in tga failure case + 1.33 (2011-07-14) + make stbi_is_hdr work in STBI_NO_HDR (as specified), minor compiler-friendly improvements + 1.32 (2011-07-13) + support for "info" function for all supported filetypes (SpartanJ) + 1.31 (2011-06-20) + a few more leak fixes, bug in PNG handling (SpartanJ) + 1.30 (2011-06-11) + added ability to load files via callbacks to accomidate custom input streams (Ben Wenger) + removed deprecated format-specific test/load functions + removed support for installable file formats (stbi_loader) -- would have been broken for IO callbacks anyway + error cases in bmp and tga give messages and don't leak (Raymond Barbiero, grisha) + fix inefficiency in decoding 32-bit BMP (David Woo) + 1.29 (2010-08-16) + various warning fixes from Aurelien Pocheville + 1.28 (2010-08-01) + fix bug in GIF palette transparency (SpartanJ) + 1.27 (2010-08-01) + cast-to-stbi_uc to fix warnings + 1.26 (2010-07-24) + fix bug in file buffering for PNG reported by SpartanJ + 1.25 (2010-07-17) + refix trans_data warning (Won Chun) + 1.24 (2010-07-12) + perf improvements reading from files on platforms with lock-heavy fgetc() + minor perf improvements for jpeg + deprecated type-specific functions so we'll get feedback if they're needed + attempt to fix trans_data warning (Won Chun) + 1.23 fixed bug in iPhone support + 1.22 (2010-07-10) + removed image *writing* support + stbi_info support from Jetro Lauha + GIF support from Jean-Marc Lienher + iPhone PNG-extensions from James Brown + warning-fixes from Nicolas Schulz and Janez Zemva (i.stbi__err. Janez (U+017D)emva) + 1.21 fix use of 'stbi_uc' in header (reported by jon blow) + 1.20 added support for Softimage PIC, by Tom Seddon + 1.19 bug in interlaced PNG corruption check (found by ryg) + 1.18 (2008-08-02) + fix a threading bug (local mutable static) + 1.17 support interlaced PNG + 1.16 major bugfix - stbi__convert_format converted one too many pixels + 1.15 initialize some fields for thread safety + 1.14 fix threadsafe conversion bug + header-file-only version (#define STBI_HEADER_FILE_ONLY before including) + 1.13 threadsafe + 1.12 const qualifiers in the API + 1.11 Support installable IDCT, colorspace conversion routines + 1.10 Fixes for 64-bit (don't use "unsigned long") + optimized upsampling by Fabian "ryg" Giesen + 1.09 Fix format-conversion for PSD code (bad global variables!) + 1.08 Thatcher Ulrich's PSD code integrated by Nicolas Schulz + 1.07 attempt to fix C++ warning/errors again + 1.06 attempt to fix C++ warning/errors again + 1.05 fix TGA loading to return correct *comp and use good luminance calc + 1.04 default float alpha is 1, not 255; use 'void *' for stbi_image_free + 1.03 bugfixes to STBI_NO_STDIO, STBI_NO_HDR + 1.02 support for (subset of) HDR files, float interface for preferred access to them + 1.01 fix bug: possible bug in handling right-side up bmps... not sure + fix bug: the stbi__bmp_load() and stbi__tga_load() functions didn't work at all + 1.00 interface to zlib that skips zlib header + 0.99 correct handling of alpha in palette + 0.98 TGA loader by lonesock; dynamically add loaders (untested) + 0.97 jpeg errors on too large a file; also catch another malloc failure + 0.96 fix detection of invalid v value - particleman@mollyrocket forum + 0.95 during header scan, seek to markers in case of padding + 0.94 STBI_NO_STDIO to disable stdio usage; rename all #defines the same + 0.93 handle jpegtran output; verbose errors + 0.92 read 4,8,16,24,32-bit BMP files of several formats + 0.91 output 24-bit Windows 3.0 BMP files + 0.90 fix a few more warnings; bump version number to approach 1.0 + 0.61 bugfixes due to Marc LeBlanc, Christopher Lloyd + 0.60 fix compiling as c++ + 0.59 fix warnings: merge Dave Moore's -Wall fixes + 0.58 fix bug: zlib uncompressed mode len/nlen was wrong endian + 0.57 fix bug: jpg last huffman symbol before marker was >9 bits but less than 16 available + 0.56 fix bug: zlib uncompressed mode len vs. nlen + 0.55 fix bug: restart_interval not initialized to 0 + 0.54 allow NULL for 'int *comp' + 0.53 fix bug in png 3->4; speedup png decoding + 0.52 png handles req_comp=3,4 directly; minor cleanup; jpeg comments + 0.51 obey req_comp requests, 1-component jpegs return as 1-component, + on 'test' only check type, not whether we support this variant + 0.50 (2006-11-19) + first released version +*/ + + +/* +------------------------------------------------------------------------------ +This software is available under 2 licenses -- choose whichever you prefer. +------------------------------------------------------------------------------ +ALTERNATIVE A - MIT License +Copyright (c) 2017 Sean Barrett +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +------------------------------------------------------------------------------ +ALTERNATIVE B - Public Domain (www.unlicense.org) +This is free and unencumbered software released into the public domain. +Anyone is free to copy, modify, publish, use, compile, sell, or distribute this +software, either in source code form or as a compiled binary, for any purpose, +commercial or non-commercial, and by any means. +In jurisdictions that recognize copyright laws, the author or authors of this +software dedicate any and all copyright interest in the software to the public +domain. We make this dedication for the benefit of the public at large and to +the detriment of our heirs and successors. We intend this dedication to be an +overt act of relinquishment in perpetuity of all present and future rights to +this software under copyright law. +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN +ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +------------------------------------------------------------------------------ +*/ diff --git a/src/main.cpp b/src/main.cpp index cd9687d..a16a572 100755 --- a/src/main.cpp +++ b/src/main.cpp @@ -21,10 +21,21 @@ struct AppConfig bool bVerboseLogging = false; }; -const std::vector TriangleVertices = { - { { 0.0f, -0.5f }, { 1.0f, 1.0f, 1.0f } }, - { { 0.5f, 0.5f }, { 0.0f, 1.0f, 0.0f } }, - { { -0.5f, 0.5f }, { 0.0f, 0.0f, 1.0f } } +// const std::vector TriangleVertices = { +// { { 0.0f, -0.5f }, { 1.0f, 1.0f, 1.0f } }, +// { { 0.5f, 0.5f }, { 0.0f, 1.0f, 0.0f } }, +// { { -0.5f, 0.5f }, { 0.0f, 0.0f, 1.0f } } +// }; + +const std::vector 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 SquareIndices = { + 0, 1, 2, 2, 3, 0 }; class HelloTriangleApplication @@ -44,7 +55,7 @@ private: GlfwWindowManager WindowManager; VulkanContext VkContext; - bool bShowImGui = true; + bool bShowImGui = false; bool bShowDemo = false; static void KeyCallback(GLFWwindow* Window, int Key, int Scancode, int Action, int Mods) @@ -89,7 +100,7 @@ private: Settings.bVerboseLogging, WindowManager.GetWindow(), }; - VkContext.Initialize(Config, TriangleVertices); + VkContext.Initialize(Config, SquareVertices, SquareIndices); } void InitGlfw() @@ -141,7 +152,7 @@ private: } } - VkContext.DrawFrame(bShowImGui, TriangleVertices.size()); + VkContext.DrawFrame(bShowImGui, SquareVertices.size(), SquareIndices.size()); } } diff --git a/src/private/VulkanCommandBuffers.cpp b/src/private/VulkanCommandBuffers.cpp index e843d49..fd23235 100644 --- a/src/private/VulkanCommandBuffers.cpp +++ b/src/private/VulkanCommandBuffers.cpp @@ -103,8 +103,12 @@ void VulkanCommandBuffers::RecordCommandBuffer(FRecordCommandBuffersParams& Para VkBuffer VertexBuffers[] = { Params.InVertexBuffer }; VkDeviceSize Offsets[] = { 0 }; vkCmdBindVertexBuffers(Params.InCommandBuffer, 0, 1, VertexBuffers, Offsets); + vkCmdBindIndexBuffer(Params.InCommandBuffer, Params.InIndexBuffer, 0, VK_INDEX_TYPE_UINT16); - vkCmdDraw(Params.InCommandBuffer, static_cast(Params.InVerticesSize), 1, 0, 0); + vkCmdBindDescriptorSets(Params.InCommandBuffer, VK_PIPELINE_BIND_POINT_GRAPHICS, Params.PipelineLayout, 0, 1, &Params.DescriptorSet, 0, nullptr); + + // vkCmdDraw(Params.InCommandBuffer, static_cast(Params.InVerticesSize), 1, 0, 0); + vkCmdDrawIndexed(Params.InCommandBuffer, static_cast(Params.InIndexSize), 1, 0, 0, 0); if (Params.bDrawImGui) { diff --git a/src/private/VulkanContext.cpp b/src/private/VulkanContext.cpp index 78cb1a9..b73473e 100755 --- a/src/private/VulkanContext.cpp +++ b/src/private/VulkanContext.cpp @@ -4,13 +4,28 @@ #include "VulkanFramebuffers.h" #include "VulkanSwapChain.h" #include "VulkanVertexBuffer.h" + +#include "utilities/Logger.h" +#include "stb_image.h" + #include "imgui_impl_glfw.h" #include "imgui_impl_vulkan.h" -#include "utilities/Logger.h" + #include +#include +#include +#include +#include +#include + +#define GLM_FORCE_RADIANS +#define GLM_FORCE_DEFAULT_ALIGNED_GENTYPES +#include +#include + +#include #include #include -#include VulkanContext::VulkanContext() { @@ -20,7 +35,7 @@ VulkanContext::~VulkanContext() { } -void VulkanContext::Initialize(FVulkanConfig& InConfig, const std::vector& InVertices) +void VulkanContext::Initialize(FVulkanConfig& InConfig, const std::vector& InVertices, const std::vector& InIndices) { Config = InConfig; @@ -62,8 +77,10 @@ void VulkanContext::Initialize(FVulkanConfig& InConfig, const std::vector(MAX_FRAMES_IN_FLIGHT); + + VkDescriptorPoolCreateInfo PoolInfo{}; + PoolInfo.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO; + PoolInfo.poolSizeCount = 1; + PoolInfo.pPoolSizes = &PoolSize; + PoolInfo.maxSets = static_cast(MAX_FRAMES_IN_FLIGHT); + + if (vkCreateDescriptorPool(DeviceManager.GetDevice(), &PoolInfo, nullptr, &DescriptorPool) != VK_SUCCESS) + { + Log::Error("Failed to create descriptor pool!"); + } + else + { + Log::Info("Successfully created descriptor pool."); + } +} + +void VulkanContext::CreateDescriptorSets() +{ + std::vector Layouts(MAX_FRAMES_IN_FLIGHT, DescriptorSetLayout); + + VkDescriptorSetAllocateInfo AllocateInfo{}; + AllocateInfo.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO; + AllocateInfo.descriptorPool = DescriptorPool; + AllocateInfo.descriptorSetCount = static_cast(MAX_FRAMES_IN_FLIGHT); + AllocateInfo.pSetLayouts = Layouts.data(); + + DescriptorSets.resize(MAX_FRAMES_IN_FLIGHT); + if (vkAllocateDescriptorSets(DeviceManager.GetDevice(), &AllocateInfo, DescriptorSets.data()) != VK_SUCCESS) + { + Log::Error("Failed to allocate descriptor sets!"); + } + else + { + Log::Info("Successfully allocated descriptor sets."); + } + + for (size_t i = 0; i < MAX_FRAMES_IN_FLIGHT; i++) + { + VkDescriptorBufferInfo BufferInfo{}; + BufferInfo.buffer = VertexBuffer.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; + + vkUpdateDescriptorSets(DeviceManager.GetDevice(), 1, &DescriptorWrite, 0, nullptr); + } +} + +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 = 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(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::CreateSyncObjects() { ImageAvailableSemaphores.resize(MAX_FRAMES_IN_FLIGHT); @@ -211,7 +423,7 @@ void VulkanContext::CreateSyncObjects() } } -void VulkanContext::DrawFrame(bool bDrawImGui, uint32_t InVerticesSize) +void VulkanContext::DrawFrame(bool bDrawImGui, uint32_t InVerticesSize, uint32_t InIndexSize) { vkWaitForFences(DeviceManager.GetDevice(), 1, &InFlightFences[CurrentFrame], VK_TRUE, UINT64_MAX); @@ -243,16 +455,22 @@ void VulkanContext::DrawFrame(bool bDrawImGui, uint32_t InVerticesSize) ImageIndex, VertexBuffer.GetVertexBuffer(), InVerticesSize, + VertexBuffer.GetIndexBuffer(), + InIndexSize, RenderPass.GetRenderPass(), SwapChain.GetSwapChainExtent(), GraphicsPipeline.GetGraphicsPipeline(), Framebuffers.GetSwapChainFrameBuffers(), + DescriptorSets[CurrentFrame], + GraphicsPipeline.GetPipelineLayout(), bDrawImGui // DrawData }; CommandBuffers.RecordCommandBuffer(Params); + UpdateUniformBuffer(CurrentFrame); + VkSubmitInfo SubmitInfo{}; SubmitInfo.sType = VK_STRUCTURE_TYPE_SUBMIT_INFO; @@ -302,6 +520,23 @@ void VulkanContext::DrawFrame(bool bDrawImGui, uint32_t InVerticesSize) CurrentFrame = (CurrentFrame + 1) % MAX_FRAMES_IN_FLIGHT; } +void VulkanContext::UpdateUniformBuffer(uint32_t CurrentImage) +{ + static auto StartTime = std::chrono::high_resolution_clock::now(); + + auto CurrentTime = std::chrono::high_resolution_clock::now(); + + float Time = std::chrono::duration(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.Projection[1][1] *= -1; + + memcpy(VertexBuffer.GetUniformBuffersMapped()[CurrentImage], &Ubo, sizeof(Ubo)); +} + void VulkanContext::RecreateSwapChain() { int Width = 0, Height = 0; diff --git a/src/private/VulkanPipeline.cpp b/src/private/VulkanPipeline.cpp index a957711..ef3701b 100755 --- a/src/private/VulkanPipeline.cpp +++ b/src/private/VulkanPipeline.cpp @@ -22,7 +22,7 @@ void VulkanPipeline::Cleanup() vkDestroyPipelineLayout(Device, PipelineLayout, nullptr); } -void VulkanPipeline::CreateGraphicsPipeline(VkExtent2D SwapChainExtent, VkRenderPass RenderPass) +void VulkanPipeline::CreateGraphicsPipeline(VkExtent2D SwapChainExtent, VkRenderPass RenderPass, VkDescriptorSetLayout& DescriptorSetLayout) { auto VertShaderCode = ReadFile("Shaders/vert.spv"); auto FragShaderCode = ReadFile("Shaders/frag.spv"); @@ -97,7 +97,7 @@ void VulkanPipeline::CreateGraphicsPipeline(VkExtent2D SwapChainExtent, VkRender Rasterizer.polygonMode = VK_POLYGON_MODE_FILL; Rasterizer.lineWidth = 1.0f; Rasterizer.cullMode = VK_CULL_MODE_BACK_BIT; - Rasterizer.frontFace = VK_FRONT_FACE_CLOCKWISE; + Rasterizer.frontFace = VK_FRONT_FACE_COUNTER_CLOCKWISE; Rasterizer.depthBiasEnable = VK_FALSE; Rasterizer.depthBiasConstantFactor = 0.0f; Rasterizer.depthBiasClamp = 0.0f; @@ -135,8 +135,8 @@ void VulkanPipeline::CreateGraphicsPipeline(VkExtent2D SwapChainExtent, VkRender VkPipelineLayoutCreateInfo PipelineLayoutInfo{}; PipelineLayoutInfo.sType = VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO; - PipelineLayoutInfo.setLayoutCount = 0; - PipelineLayoutInfo.pSetLayouts = nullptr; + PipelineLayoutInfo.setLayoutCount = 1; + PipelineLayoutInfo.pSetLayouts = &DescriptorSetLayout; PipelineLayoutInfo.pushConstantRangeCount = 0; PipelineLayoutInfo.pPushConstantRanges = nullptr; diff --git a/src/private/VulkanVertexBuffer.cpp b/src/private/VulkanVertexBuffer.cpp index 7d10852..31328dc 100644 --- a/src/private/VulkanVertexBuffer.cpp +++ b/src/private/VulkanVertexBuffer.cpp @@ -9,38 +9,47 @@ void VulkanVertexBuffer::Initialize(FVertexBufferConfig InConfig) Config = InConfig; } -void VulkanVertexBuffer::Cleanup() +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::CreateVertexBuffer(const std::vector& InVertices) +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 = sizeof(InVertices[0]) * InVertices.size(); - BufferInfo.usage = VK_BUFFER_USAGE_VERTEX_BUFFER_BIT; + BufferInfo.size = Size; + BufferInfo.usage = Usage; BufferInfo.sharingMode = VK_SHARING_MODE_EXCLUSIVE; - if (vkCreateBuffer(Config.Device, &BufferInfo, nullptr, &VertexBuffer) != VK_SUCCESS) + if (vkCreateBuffer(Config.Device, &BufferInfo, nullptr, &Buffer) != VK_SUCCESS) { - Log::Error("Failed to create vertex buffer!"); + Log::Error("Failed to create buffer!"); } else { - Log::Info("Successfully created vertex buffer."); + Log::Info("Successfully created buffer."); } VkMemoryRequirements MemoryRequirements; - vkGetBufferMemoryRequirements(Config.Device, VertexBuffer, &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, VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT); + AllocateInfo.memoryTypeIndex = FindMemoryType(MemoryRequirements.memoryTypeBits, Properties); - if (vkAllocateMemory(Config.Device, &AllocateInfo, nullptr, &VertexBufferMemory) != VK_SUCCESS) + if (vkAllocateMemory(Config.Device, &AllocateInfo, nullptr, &BufferMemory) != VK_SUCCESS) { Log::Error("Failed to allocate vertex buffer memory!"); } @@ -49,12 +58,104 @@ void VulkanVertexBuffer::CreateVertexBuffer(const std::vector& InVertice Log::Info("Successfully allocated vertex buffer memory."); } - vkBindBufferMemory(Config.Device, VertexBuffer, VertexBufferMemory, 0); + 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& 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, VertexBufferMemory, 0, BufferInfo.size, 0, &Data); - memcpy(Data, InVertices.data(), (size_t)BufferInfo.size); - vkUnmapMemory(Config.Device, VertexBufferMemory); + 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& 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) @@ -71,4 +172,5 @@ uint32_t VulkanVertexBuffer::FindMemoryType(uint32_t TypeFilter, VkMemoryPropert } Log::Error("Failed to find suitable memory type!"); + return 0; } diff --git a/src/public/VulkanCommandBuffers.h b/src/public/VulkanCommandBuffers.h index 4e8ca01..499bca6 100644 --- a/src/public/VulkanCommandBuffers.h +++ b/src/public/VulkanCommandBuffers.h @@ -16,10 +16,14 @@ struct FRecordCommandBuffersParams uint32_t ImageIndex; VkBuffer InVertexBuffer; uint32_t InVerticesSize; + VkBuffer InIndexBuffer; + uint32_t InIndexSize; VkRenderPass RenderPass; VkExtent2D SwapChainExtent; VkPipeline GraphicsPipeline; std::vector SwapChainFramebuffers; + VkDescriptorSet DescriptorSet; + VkPipelineLayout PipelineLayout; bool bDrawImGui = false; // std::vector InVertices; // ImDrawData* DrawData = nullptr; @@ -42,11 +46,12 @@ public: std::vector GetCommandBuffers() { return CommandBuffers; } VkCommandBuffer GetCommandBuffer(int i) { return CommandBuffers[i]; } + VkCommandPool GetCommandPool() { return CommandPool; } private: VkDevice Device; VkRenderPass RenderPass; - VkQueue GraphicsQueue; + // VkQueue GraphicsQueue; std::vector CommandBuffers; VkCommandPool CommandPool; diff --git a/src/public/VulkanContext.h b/src/public/VulkanContext.h index 6f0dcd2..64b771c 100755 --- a/src/public/VulkanContext.h +++ b/src/public/VulkanContext.h @@ -11,6 +11,7 @@ #include "VulkanVertexBuffer.h" #include +#include #include #include @@ -29,8 +30,6 @@ struct FVulkanConfig // std::vector Vertices; }; -static FVulkanConfig Config = {}; - class VulkanContext { public: @@ -46,15 +45,34 @@ public: VulkanFramebuffers Framebuffers; VulkanVertexBuffer VertexBuffer; VulkanCommandBuffers CommandBuffers; - VkDescriptorPool ImGuiPool; - void Initialize(FVulkanConfig& InConfig, const std::vector& InVertices); + void Initialize(FVulkanConfig& InConfig, const std::vector& InVertices, const std::vector& InIndices); void Cleanup(); void CreateSurface(GLFWwindow* Window); + + void CreateDescriptorSetLayout(); + 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 = false, uint32_t InVerticesSize = 0); + + void DrawFrame(bool bDrawImGui, uint32_t InVerticesSize, uint32_t InIndexSize); + void UpdateUniformBuffer(uint32_t CurrentImage); + void RecreateSwapChain(); + void InitImGui(); void CleanupSwapChain(); // void DrawFrame(ImDrawData* DrawData = nullptr); @@ -64,16 +82,26 @@ public: void SetFramebufferResized(bool bResized) { bFramebufferResized = bResized; } private: - VkSurfaceKHR Surface = VK_NULL_HANDLE; + FVulkanConfig Config = {}; + VkSurfaceKHR Surface = VK_NULL_HANDLE; std::vector ImageAvailableSemaphores; std::vector RenderFinishedSemaphores; std::vector InFlightFences; + VkDescriptorPool ImGuiPool; + + VkDescriptorSetLayout DescriptorSetLayout; + VkDescriptorPool DescriptorPool; + std::vector DescriptorSets; + + VkImage TextureImage; + VkDeviceMemory TextureImageMemory; + bool bFramebufferResized = false; bool bImGuiGlfwInitialized = false; bool bImGuiVulkanInitialized = false; - const int MAX_FRAMES_IN_FLIGHT = 2; - uint32_t CurrentFrame = 0; + const size_t MAX_FRAMES_IN_FLIGHT = 2; + uint32_t CurrentFrame = 0; }; diff --git a/src/public/VulkanPipeline.h b/src/public/VulkanPipeline.h index 3f2401d..c2130e7 100755 --- a/src/public/VulkanPipeline.h +++ b/src/public/VulkanPipeline.h @@ -14,9 +14,10 @@ public: VkShaderModule CreateShaderModule(const std::vector& Code); - void CreateGraphicsPipeline(VkExtent2D SwapChainExtent, VkRenderPass RenderPass); + void CreateGraphicsPipeline(VkExtent2D SwapChainExtent, VkRenderPass RenderPass, VkDescriptorSetLayout& DescriptorSetLayout); - VkPipeline GetGraphicsPipeline() { return GraphicsPipeline; } + VkPipeline GetGraphicsPipeline() { return GraphicsPipeline; } + VkPipelineLayout GetPipelineLayout() { return PipelineLayout; } private: VkDevice Device; diff --git a/src/public/VulkanVertexBuffer.h b/src/public/VulkanVertexBuffer.h index 4be5d6f..822cda6 100644 --- a/src/public/VulkanVertexBuffer.h +++ b/src/public/VulkanVertexBuffer.h @@ -2,7 +2,6 @@ #include "Primitives.h" -#include #include #include @@ -13,6 +12,8 @@ struct FVertexBufferConfig { VkDevice Device; VkPhysicalDevice PhysicalDevice; + VkCommandPool CommandPool; + VkQueue GraphicsQueue; }; class VulkanVertexBuffer @@ -20,16 +21,35 @@ class VulkanVertexBuffer public: void Initialize(FVertexBufferConfig InConfig); - void Cleanup(); + 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& InVertices); + void CreateIndexBuffer(const std::vector& InIndices); + + void CreateUniformBuffers(const uint32_t MAX_FRAMES_IN_FLIGHT); + uint32_t FindMemoryType(uint32_t TypeFilter, VkMemoryPropertyFlags Properties); - VkBuffer GetVertexBuffer() { return VertexBuffer; } + VkBuffer GetVertexBuffer() { return VertexBuffer; } + VkBuffer GetIndexBuffer() { return IndexBuffer; } + std::vector GetUniformBuffers() { return UniformBuffers; } + std::vector GetUniformBuffersMapped() { return UniformBuffersMapped; } private: FVertexBufferConfig Config; - VkBuffer VertexBuffer; - VkDeviceMemory VertexBufferMemory; + + VkBuffer VertexBuffer; + VkDeviceMemory VertexBufferMemory; + + VkBuffer IndexBuffer; + VkDeviceMemory IndexBufferMemory; + + std::vector UniformBuffers; + std::vector UniformBuffersMemory; + std::vector UniformBuffersMapped; }; diff --git a/src/public/Primitives.h b/src/utilities/Primitives.h similarity index 89% rename from src/public/Primitives.h rename to src/utilities/Primitives.h index 7398001..4135fac 100644 --- a/src/public/Primitives.h +++ b/src/utilities/Primitives.h @@ -34,3 +34,10 @@ struct Vertex return AttributeDescriptions; } }; + +struct UniformBufferObject +{ + alignas(16) glm::mat4 Model; + alignas(16) glm::mat4 View; + alignas(16) glm::mat4 Projection; +}; diff --git a/src/utilities/stb_image_impl.cpp b/src/utilities/stb_image_impl.cpp new file mode 100644 index 0000000..0375a5a --- /dev/null +++ b/src/utilities/stb_image_impl.cpp @@ -0,0 +1,3 @@ + +#define STB_IMAGE_IMPLEMENTATION +#include "stb_image.h" diff --git a/textures/texture.jpg b/textures/texture.jpg new file mode 100644 index 0000000000000000000000000000000000000000..975e3380e5a5068c05cb7dd1f168667bd9b69c0a GIT binary patch literal 77120 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

    4a`?w~g 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

  • R7@p>)?(GE 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�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⪙?9AX2tpxzTCQBsCJ8K8&+O?Gd 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�QgmVyT7F^3mQfJTCorIn=N6bS_$w7iTRB+K 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