From c02061456729c50b1f426d44f2f49dad0b154bcb Mon Sep 17 00:00:00 2001 From: "C. J. Howard" Date: Tue, 28 Jun 2022 20:46:48 +0800 Subject: [PATCH] Add tinyexr module --- CMakeLists.txt | 29 +- README.md | 1 + modules/antkeeper-data | 2 +- modules/antkeeper-source | 2 +- modules/tinyexr/.clang-format | 7 + modules/tinyexr/.drone.yml | 7 + .../tinyexr/.github/ISSUE_TEMPLATE/config.yml | 1 + .../.github/ISSUE_TEMPLATE/issue-report.md | 26 + modules/tinyexr/.gitignore | 2 + modules/tinyexr/.gitmodules | 3 + modules/tinyexr/.lgtm.yml | 12 + modules/tinyexr/.travis.yml | 124 + modules/tinyexr/CMakeLists.txt | 105 + modules/tinyexr/Makefile | 25 + modules/tinyexr/Makefile.gcc-mingw | 18 + modules/tinyexr/Makefile.gcc-mingw-msys | 16 + modules/tinyexr/Makefile.llvm-mingw | 25 + modules/tinyexr/README.md | 575 + modules/tinyexr/appveyor.yml | 13 + modules/tinyexr/asakusa.exr | Bin 0 -> 1127425 bytes modules/tinyexr/asakusa.png | Bin 0 -> 202947 bytes .../tinyexr/cmake/sanitizers/FindASan.cmake | 59 + .../tinyexr/cmake/sanitizers/FindMSan.cmake | 57 + .../cmake/sanitizers/FindSanitizers.cmake | 94 + .../tinyexr/cmake/sanitizers/FindTSan.cmake | 65 + .../tinyexr/cmake/sanitizers/FindUBSan.cmake | 46 + modules/tinyexr/cmake/sanitizers/asan-wrapper | 55 + .../cmake/sanitizers/sanitize-helpers.cmake | 177 + modules/tinyexr/config-msvc.py | 78 + modules/tinyexr/deps/miniz/ChangeLog.md | 196 + modules/tinyexr/deps/miniz/LICENSE | 22 + .../tinyexr/deps/miniz/examples/example1.c | 105 + .../tinyexr/deps/miniz/examples/example2.c | 164 + .../tinyexr/deps/miniz/examples/example3.c | 269 + .../tinyexr/deps/miniz/examples/example4.c | 102 + .../tinyexr/deps/miniz/examples/example5.c | 327 + .../tinyexr/deps/miniz/examples/example6.c | 162 + modules/tinyexr/deps/miniz/miniz.c | 7733 +++++ modules/tinyexr/deps/miniz/miniz.h | 1350 + modules/tinyexr/deps/miniz/readme.md | 34 + modules/tinyexr/examples/common/cxxopts.hpp | 1988 ++ modules/tinyexr/examples/common/stb_image.h | 7462 +++++ .../examples/common/stb_image_resize.h | 2585 ++ .../tinyexr/examples/common/stb_image_write.h | 1048 + .../tinyexr/examples/cube2longlat/Makefile | 28 + .../tinyexr/examples/cube2longlat/README.md | 46 + .../examples/cube2longlat/cube2longlat.cc | 470 + modules/tinyexr/examples/deepview/Makefile | 2 + .../examples/deepview/deepview_screencast.gif | Bin 0 -> 3790199 bytes modules/tinyexr/examples/deepview/main.cc | 277 + .../tinyexr/examples/deepview/trackball.cc | 324 + modules/tinyexr/examples/deepview/trackball.h | 81 + modules/tinyexr/examples/exr2fptiff/Makefile | 32 + modules/tinyexr/examples/exr2fptiff/README.md | 7 + .../tinyexr/examples/exr2fptiff/exr2fptiff.cc | 199 + .../examples/exr2fptiff/tiny_dng_writer.h | 1356 + modules/tinyexr/examples/exr2ldr/Makefile | 3 + modules/tinyexr/examples/exr2ldr/exr2ldr.cc | 111 + modules/tinyexr/examples/exr2rgbe/Makefile | 3 + modules/tinyexr/examples/exr2rgbe/exr2rgbe.cc | 38 + modules/tinyexr/examples/exrfilter/Makefile | 3 + modules/tinyexr/examples/exrfilter/README.md | 5 + .../tinyexr/examples/exrfilter/exrfilter.cc | 150 + .../tinyexr/examples/exrview/DroidSans.ttf | Bin 0 -> 190044 bytes .../OpenGLWindow/CommonWindowInterface.h | 130 + .../exrview/OpenGLWindow/MacOpenGLWindow.h | 118 + .../exrview/OpenGLWindow/MacOpenGLWindow.mm | 1169 + .../exrview/OpenGLWindow/OpenGL2Include.h | 59 + .../exrview/OpenGLWindow/OpenGLInclude.h | 66 + .../OpenGLWindow/Win32InternalWindowData.h | 68 + .../OpenGLWindow/Win32OpenGLWindow.cpp | 200 + .../exrview/OpenGLWindow/Win32OpenGLWindow.h | 64 + .../exrview/OpenGLWindow/Win32Window.cpp | 810 + .../exrview/OpenGLWindow/Win32Window.h | 86 + .../exrview/OpenGLWindow/X11OpenGLWindow.cpp | 1118 + .../exrview/OpenGLWindow/X11OpenGLWindow.h | 78 + modules/tinyexr/examples/exrview/README.md | 56 + .../ThirdPartyLibs/Glew/CustomGL/glew.h | 19093 ++++++++++++ .../ThirdPartyLibs/Glew/CustomGL/glxew.h | 1750 ++ .../ThirdPartyLibs/Glew/CustomGL/wglew.h | 1421 + .../exrview/ThirdPartyLibs/Glew/glew.c | 18897 ++++++++++++ .../ThirdPartyLibs/nativefiledialog/LICENSE | 16 + .../ThirdPartyLibs/nativefiledialog/README.md | 137 + .../nativefiledialog/screens/open_cocoa.png | Bin 0 -> 100007 bytes .../nativefiledialog/screens/open_gtk3.png | Bin 0 -> 63193 bytes .../nativefiledialog/screens/open_win8.png | Bin 0 -> 16188 bytes .../nativefiledialog/src/SConstruct | 99 + .../nativefiledialog/src/common.h | 21 + .../nativefiledialog/src/include/nfd.h | 69 + .../nativefiledialog/src/nfd_cocoa.m | 235 + .../nativefiledialog/src/nfd_common.c | 142 + .../nativefiledialog/src/nfd_common.h | 37 + .../nativefiledialog/src/nfd_gtk.c | 326 + .../nativefiledialog/src/nfd_win.cpp | 619 + .../nativefiledialog/test/SConstruct | 70 + .../nativefiledialog/test/test_opendialog.c | 29 + .../test/test_opendialogmultiple.c | 34 + .../nativefiledialog/test/test_savedialog.c | 28 + modules/tinyexr/examples/exrview/exr-io.cc | 60 + modules/tinyexr/examples/exrview/exr-io.h | 16 + .../examples/exrview/findOpenGLGlewGlut.lua | 90 + modules/tinyexr/examples/exrview/main.cc | 541 + modules/tinyexr/examples/exrview/nuklear.h | 25417 ++++++++++++++++ .../examples/exrview/nuklear_btgui_gl2.h | 386 + modules/tinyexr/examples/exrview/premake4.lua | 87 + .../examples/exrview/screenshots/exrview.png | Bin 0 -> 1044671 bytes modules/tinyexr/examples/exrview/shader.frag | 12 + modules/tinyexr/examples/exrview/shader.vert | 12 + modules/tinyexr/examples/ldr2exr/Makefile | 3 + modules/tinyexr/examples/ldr2exr/ldr2exr.cc | 85 + modules/tinyexr/examples/nornalmap/Makefile | 3 + modules/tinyexr/examples/nornalmap/README.md | 13 + modules/tinyexr/examples/nornalmap/main.cc | 267 + modules/tinyexr/examples/resize/Makefile | 3 + modules/tinyexr/examples/resize/resize.cc | 46 + modules/tinyexr/examples/rgbe2exr/Makefile | 3 + modules/tinyexr/examples/rgbe2exr/rgbe2exr.cc | 81 + modules/tinyexr/examples/testmapgen/Makefile | 3 + modules/tinyexr/examples/testmapgen/README.md | 15 + .../tinyexr/examples/testmapgen/testmapgen.cc | 86 + modules/tinyexr/experimental/js/Makefile | 2 + modules/tinyexr/experimental/js/README.md | 38 + modules/tinyexr/experimental/js/binding.cc | 79 + .../tinyexr/experimental/js/compile_to_js.sh | 9 + modules/tinyexr/experimental/js/index.html | 41 + modules/tinyexr/experimental/js/test.js | 21 + modules/tinyexr/experimental/js/tinyexr.js | 19 + modules/tinyexr/jni/Android.mk | 12 + modules/tinyexr/jni/Application.mk | 2 + modules/tinyexr/jni/Makefile | 8 + modules/tinyexr/jni/README.md | 4 + modules/tinyexr/kuroga.py | 312 + modules/tinyexr/premake4.lua | 55 + modules/tinyexr/test/CMakeLists.txt | 23 + modules/tinyexr/test/c-binding/Makefile | 5 + modules/tinyexr/test/c-binding/test.c | 19 + modules/tinyexr/test/exrcat/exrcat.cpp | 127 + .../tinyexr/test/exrwrite/exrwritetest.cpp | 132 + modules/tinyexr/test/fuzzer/Makefile | 14 + modules/tinyexr/test/fuzzer/README.md | 17 + modules/tinyexr/test/fuzzer/fuzz.cc | 29 + ...sue-62-tinyexr_memcpy_heap-buffer-overflow | Bin 0 -> 64 bytes .../issue-63-tinyexr_signed-integer-overflow | Bin 0 -> 503 bytes .../test/fuzzer/issue-77-heap-buffer-overflow | Bin 0 -> 20829 bytes modules/tinyexr/test/issues/160/README.md | 1 + modules/tinyexr/test/issues/160/main.py | 57 + .../tinyexr/test/issues/160/requirements.txt | 3 + modules/tinyexr/test/unit/Makefile | 21 + modules/tinyexr/test/unit/README.md | 30 + modules/tinyexr/test/unit/catch.hpp | 10445 +++++++ modules/tinyexr/test/unit/config-msvc.py | 52 + modules/tinyexr/test/unit/config-posix.py | 53 + modules/tinyexr/test/unit/kuroga.py | 312 + modules/tinyexr/test/unit/regression/2by2.exr | Bin 0 -> 395 bytes .../tinyexr/test/unit/regression/flaga.exr | Bin 0 -> 4731 bytes .../unit/regression/issue-160-piz-decode.exr | Bin 0 -> 155069 bytes .../unit/regression/piz-bug-issue-100.exr | Bin 0 -> 327 bytes ...dc0508918b537fdf48bbfc6deeffe268822e6f6cd6 | Bin 0 -> 473703 bytes ...779a1a763a48135384909b3d1010bbba1d4c28_min | Bin 0 -> 630 bytes ...182e13739bf687b17d1411e97bb60ad95e7a84_min | Bin 0 -> 832 bytes ...cf8a80959cfeabaa4ec1d310d062fa653a8c6b_min | Bin 0 -> 4738 bytes ...3ec09a56572b3a1e38c9629b6db9e8dead1117_min | Bin 0 -> 4471 bytes ...bc9eab1d4f82c845453464993dfa3eb6c5822a1621 | Bin 0 -> 298 bytes ...0c3b359951738ac47f14878a3346d1c6ea0fe5_min | Bin 0 -> 678 bytes ...3095b94db93985620ac338d037487e0e613047_min | Bin 0 -> 132 bytes ...8272140905c168a336128465a1162ec7af270.mini | Bin 0 -> 15 bytes ...fe68e08f9d38c0989f57da7bcfb510bab67e19ca9f | Bin 0 -> 473695 bytes ...e7c44c0a69f04f10b23e5264f362a4773f4397_min | Bin 0 -> 793 bytes ...9acadb8261ead49cb83f6e91fcdc4dae2e99a3_min | Bin 0 -> 15 bytes .../unit/regression/tiled_half_1x1_alpha.exr | Bin 0 -> 335 bytes .../test/unit/regression/日本語.exr | Bin 0 -> 395 bytes modules/tinyexr/test/unit/tester.cc | 1714 ++ modules/tinyexr/test/unit/vcbuild.bat | 4 + .../test/unit/win32-filelist-utf16le.inc | Bin 0 -> 50 bytes .../tinyexr/test/unit/win32-filelist-utf8.inc | 1 + modules/tinyexr/test_tinyexr.cc | 469 + modules/tinyexr/tinyexr-config.cmake.in | 5 + modules/tinyexr/tinyexr.cc | 8 + modules/tinyexr/tinyexr.h | 8649 ++++++ modules/tinyexr/transparent.exr | Bin 0 -> 13220052 bytes modules/tinyexr/vcbuild.bat | 11 + modules/tinyexr/vcsetup2019.bat | 4 + 182 files changed, 125382 insertions(+), 5 deletions(-) create mode 100644 modules/tinyexr/.clang-format create mode 100644 modules/tinyexr/.drone.yml create mode 100644 modules/tinyexr/.github/ISSUE_TEMPLATE/config.yml create mode 100644 modules/tinyexr/.github/ISSUE_TEMPLATE/issue-report.md create mode 100644 modules/tinyexr/.gitignore create mode 100644 modules/tinyexr/.gitmodules create mode 100644 modules/tinyexr/.lgtm.yml create mode 100644 modules/tinyexr/.travis.yml create mode 100644 modules/tinyexr/CMakeLists.txt create mode 100644 modules/tinyexr/Makefile create mode 100644 modules/tinyexr/Makefile.gcc-mingw create mode 100644 modules/tinyexr/Makefile.gcc-mingw-msys create mode 100644 modules/tinyexr/Makefile.llvm-mingw create mode 100644 modules/tinyexr/README.md create mode 100644 modules/tinyexr/appveyor.yml create mode 100644 modules/tinyexr/asakusa.exr create mode 100644 modules/tinyexr/asakusa.png create mode 100644 modules/tinyexr/cmake/sanitizers/FindASan.cmake create mode 100644 modules/tinyexr/cmake/sanitizers/FindMSan.cmake create mode 100644 modules/tinyexr/cmake/sanitizers/FindSanitizers.cmake create mode 100644 modules/tinyexr/cmake/sanitizers/FindTSan.cmake create mode 100644 modules/tinyexr/cmake/sanitizers/FindUBSan.cmake create mode 100644 modules/tinyexr/cmake/sanitizers/asan-wrapper create mode 100644 modules/tinyexr/cmake/sanitizers/sanitize-helpers.cmake create mode 100644 modules/tinyexr/config-msvc.py create mode 100644 modules/tinyexr/deps/miniz/ChangeLog.md create mode 100644 modules/tinyexr/deps/miniz/LICENSE create mode 100644 modules/tinyexr/deps/miniz/examples/example1.c create mode 100644 modules/tinyexr/deps/miniz/examples/example2.c create mode 100644 modules/tinyexr/deps/miniz/examples/example3.c create mode 100644 modules/tinyexr/deps/miniz/examples/example4.c create mode 100644 modules/tinyexr/deps/miniz/examples/example5.c create mode 100644 modules/tinyexr/deps/miniz/examples/example6.c create mode 100644 modules/tinyexr/deps/miniz/miniz.c create mode 100644 modules/tinyexr/deps/miniz/miniz.h create mode 100644 modules/tinyexr/deps/miniz/readme.md create mode 100644 modules/tinyexr/examples/common/cxxopts.hpp create mode 100644 modules/tinyexr/examples/common/stb_image.h create mode 100644 modules/tinyexr/examples/common/stb_image_resize.h create mode 100644 modules/tinyexr/examples/common/stb_image_write.h create mode 100644 modules/tinyexr/examples/cube2longlat/Makefile create mode 100644 modules/tinyexr/examples/cube2longlat/README.md create mode 100644 modules/tinyexr/examples/cube2longlat/cube2longlat.cc create mode 100644 modules/tinyexr/examples/deepview/Makefile create mode 100644 modules/tinyexr/examples/deepview/deepview_screencast.gif create mode 100644 modules/tinyexr/examples/deepview/main.cc create mode 100644 modules/tinyexr/examples/deepview/trackball.cc create mode 100644 modules/tinyexr/examples/deepview/trackball.h create mode 100644 modules/tinyexr/examples/exr2fptiff/Makefile create mode 100644 modules/tinyexr/examples/exr2fptiff/README.md create mode 100644 modules/tinyexr/examples/exr2fptiff/exr2fptiff.cc create mode 100644 modules/tinyexr/examples/exr2fptiff/tiny_dng_writer.h create mode 100644 modules/tinyexr/examples/exr2ldr/Makefile create mode 100644 modules/tinyexr/examples/exr2ldr/exr2ldr.cc create mode 100644 modules/tinyexr/examples/exr2rgbe/Makefile create mode 100644 modules/tinyexr/examples/exr2rgbe/exr2rgbe.cc create mode 100644 modules/tinyexr/examples/exrfilter/Makefile create mode 100644 modules/tinyexr/examples/exrfilter/README.md create mode 100644 modules/tinyexr/examples/exrfilter/exrfilter.cc create mode 100644 modules/tinyexr/examples/exrview/DroidSans.ttf create mode 100644 modules/tinyexr/examples/exrview/OpenGLWindow/CommonWindowInterface.h create mode 100644 modules/tinyexr/examples/exrview/OpenGLWindow/MacOpenGLWindow.h create mode 100644 modules/tinyexr/examples/exrview/OpenGLWindow/MacOpenGLWindow.mm create mode 100644 modules/tinyexr/examples/exrview/OpenGLWindow/OpenGL2Include.h create mode 100644 modules/tinyexr/examples/exrview/OpenGLWindow/OpenGLInclude.h create mode 100644 modules/tinyexr/examples/exrview/OpenGLWindow/Win32InternalWindowData.h create mode 100644 modules/tinyexr/examples/exrview/OpenGLWindow/Win32OpenGLWindow.cpp create mode 100644 modules/tinyexr/examples/exrview/OpenGLWindow/Win32OpenGLWindow.h create mode 100644 modules/tinyexr/examples/exrview/OpenGLWindow/Win32Window.cpp create mode 100644 modules/tinyexr/examples/exrview/OpenGLWindow/Win32Window.h create mode 100644 modules/tinyexr/examples/exrview/OpenGLWindow/X11OpenGLWindow.cpp create mode 100644 modules/tinyexr/examples/exrview/OpenGLWindow/X11OpenGLWindow.h create mode 100644 modules/tinyexr/examples/exrview/README.md create mode 100644 modules/tinyexr/examples/exrview/ThirdPartyLibs/Glew/CustomGL/glew.h create mode 100644 modules/tinyexr/examples/exrview/ThirdPartyLibs/Glew/CustomGL/glxew.h create mode 100644 modules/tinyexr/examples/exrview/ThirdPartyLibs/Glew/CustomGL/wglew.h create mode 100644 modules/tinyexr/examples/exrview/ThirdPartyLibs/Glew/glew.c create mode 100644 modules/tinyexr/examples/exrview/ThirdPartyLibs/nativefiledialog/LICENSE create mode 100644 modules/tinyexr/examples/exrview/ThirdPartyLibs/nativefiledialog/README.md create mode 100644 modules/tinyexr/examples/exrview/ThirdPartyLibs/nativefiledialog/screens/open_cocoa.png create mode 100644 modules/tinyexr/examples/exrview/ThirdPartyLibs/nativefiledialog/screens/open_gtk3.png create mode 100644 modules/tinyexr/examples/exrview/ThirdPartyLibs/nativefiledialog/screens/open_win8.png create mode 100644 modules/tinyexr/examples/exrview/ThirdPartyLibs/nativefiledialog/src/SConstruct create mode 100644 modules/tinyexr/examples/exrview/ThirdPartyLibs/nativefiledialog/src/common.h create mode 100644 modules/tinyexr/examples/exrview/ThirdPartyLibs/nativefiledialog/src/include/nfd.h create mode 100644 modules/tinyexr/examples/exrview/ThirdPartyLibs/nativefiledialog/src/nfd_cocoa.m create mode 100644 modules/tinyexr/examples/exrview/ThirdPartyLibs/nativefiledialog/src/nfd_common.c create mode 100644 modules/tinyexr/examples/exrview/ThirdPartyLibs/nativefiledialog/src/nfd_common.h create mode 100644 modules/tinyexr/examples/exrview/ThirdPartyLibs/nativefiledialog/src/nfd_gtk.c create mode 100644 modules/tinyexr/examples/exrview/ThirdPartyLibs/nativefiledialog/src/nfd_win.cpp create mode 100644 modules/tinyexr/examples/exrview/ThirdPartyLibs/nativefiledialog/test/SConstruct create mode 100644 modules/tinyexr/examples/exrview/ThirdPartyLibs/nativefiledialog/test/test_opendialog.c create mode 100644 modules/tinyexr/examples/exrview/ThirdPartyLibs/nativefiledialog/test/test_opendialogmultiple.c create mode 100644 modules/tinyexr/examples/exrview/ThirdPartyLibs/nativefiledialog/test/test_savedialog.c create mode 100644 modules/tinyexr/examples/exrview/exr-io.cc create mode 100644 modules/tinyexr/examples/exrview/exr-io.h create mode 100644 modules/tinyexr/examples/exrview/findOpenGLGlewGlut.lua create mode 100644 modules/tinyexr/examples/exrview/main.cc create mode 100644 modules/tinyexr/examples/exrview/nuklear.h create mode 100644 modules/tinyexr/examples/exrview/nuklear_btgui_gl2.h create mode 100644 modules/tinyexr/examples/exrview/premake4.lua create mode 100644 modules/tinyexr/examples/exrview/screenshots/exrview.png create mode 100644 modules/tinyexr/examples/exrview/shader.frag create mode 100644 modules/tinyexr/examples/exrview/shader.vert create mode 100644 modules/tinyexr/examples/ldr2exr/Makefile create mode 100644 modules/tinyexr/examples/ldr2exr/ldr2exr.cc create mode 100644 modules/tinyexr/examples/nornalmap/Makefile create mode 100644 modules/tinyexr/examples/nornalmap/README.md create mode 100644 modules/tinyexr/examples/nornalmap/main.cc create mode 100644 modules/tinyexr/examples/resize/Makefile create mode 100644 modules/tinyexr/examples/resize/resize.cc create mode 100644 modules/tinyexr/examples/rgbe2exr/Makefile create mode 100644 modules/tinyexr/examples/rgbe2exr/rgbe2exr.cc create mode 100644 modules/tinyexr/examples/testmapgen/Makefile create mode 100644 modules/tinyexr/examples/testmapgen/README.md create mode 100644 modules/tinyexr/examples/testmapgen/testmapgen.cc create mode 100644 modules/tinyexr/experimental/js/Makefile create mode 100644 modules/tinyexr/experimental/js/README.md create mode 100644 modules/tinyexr/experimental/js/binding.cc create mode 100644 modules/tinyexr/experimental/js/compile_to_js.sh create mode 100644 modules/tinyexr/experimental/js/index.html create mode 100644 modules/tinyexr/experimental/js/test.js create mode 100644 modules/tinyexr/experimental/js/tinyexr.js create mode 100644 modules/tinyexr/jni/Android.mk create mode 100644 modules/tinyexr/jni/Application.mk create mode 100644 modules/tinyexr/jni/Makefile create mode 100644 modules/tinyexr/jni/README.md create mode 100644 modules/tinyexr/kuroga.py create mode 100644 modules/tinyexr/premake4.lua create mode 100644 modules/tinyexr/test/CMakeLists.txt create mode 100644 modules/tinyexr/test/c-binding/Makefile create mode 100644 modules/tinyexr/test/c-binding/test.c create mode 100644 modules/tinyexr/test/exrcat/exrcat.cpp create mode 100644 modules/tinyexr/test/exrwrite/exrwritetest.cpp create mode 100644 modules/tinyexr/test/fuzzer/Makefile create mode 100644 modules/tinyexr/test/fuzzer/README.md create mode 100644 modules/tinyexr/test/fuzzer/fuzz.cc create mode 100644 modules/tinyexr/test/fuzzer/issue-62-tinyexr_memcpy_heap-buffer-overflow create mode 100644 modules/tinyexr/test/fuzzer/issue-63-tinyexr_signed-integer-overflow create mode 100644 modules/tinyexr/test/fuzzer/issue-77-heap-buffer-overflow create mode 100644 modules/tinyexr/test/issues/160/README.md create mode 100644 modules/tinyexr/test/issues/160/main.py create mode 100644 modules/tinyexr/test/issues/160/requirements.txt create mode 100644 modules/tinyexr/test/unit/Makefile create mode 100644 modules/tinyexr/test/unit/README.md create mode 100644 modules/tinyexr/test/unit/catch.hpp create mode 100644 modules/tinyexr/test/unit/config-msvc.py create mode 100644 modules/tinyexr/test/unit/config-posix.py create mode 100644 modules/tinyexr/test/unit/kuroga.py create mode 100644 modules/tinyexr/test/unit/regression/2by2.exr create mode 100644 modules/tinyexr/test/unit/regression/flaga.exr create mode 100644 modules/tinyexr/test/unit/regression/issue-160-piz-decode.exr create mode 100644 modules/tinyexr/test/unit/regression/piz-bug-issue-100.exr create mode 100644 modules/tinyexr/test/unit/regression/poc-1383755b301e5f505b2198dc0508918b537fdf48bbfc6deeffe268822e6f6cd6 create mode 100644 modules/tinyexr/test/unit/regression/poc-24322747c47e87a10e4407528b779a1a763a48135384909b3d1010bbba1d4c28_min create mode 100644 modules/tinyexr/test/unit/regression/poc-255456016cca60ddb5c5ed6898182e13739bf687b17d1411e97bb60ad95e7a84_min create mode 100644 modules/tinyexr/test/unit/regression/poc-360c3b0555cb979ca108f2d178cf8a80959cfeabaa4ec1d310d062fa653a8c6b_min create mode 100644 modules/tinyexr/test/unit/regression/poc-3f1f642c3356fd8e8d2a0787613ec09a56572b3a1e38c9629b6db9e8dead1117_min create mode 100644 modules/tinyexr/test/unit/regression/poc-5ace655ef080932dcc7e4abc9eab1d4f82c845453464993dfa3eb6c5822a1621 create mode 100644 modules/tinyexr/test/unit/regression/poc-5b66774a7498c635334ad386be0c3b359951738ac47f14878a3346d1c6ea0fe5_min create mode 100644 modules/tinyexr/test/unit/regression/poc-d5c9c893e559277a3320c196523095b94db93985620ac338d037487e0e613047_min create mode 100644 modules/tinyexr/test/unit/regression/poc-df76d1f27adb8927a1446a603028272140905c168a336128465a1162ec7af270.mini create mode 100644 modules/tinyexr/test/unit/regression/poc-e7fa6404daa861369d2172fe68e08f9d38c0989f57da7bcfb510bab67e19ca9f create mode 100644 modules/tinyexr/test/unit/regression/poc-eedff3a9e99eb1c0fd3a3b0989e7c44c0a69f04f10b23e5264f362a4773f4397_min create mode 100644 modules/tinyexr/test/unit/regression/poc-efe9007bfdcbbe8a1569bf01fa9acadb8261ead49cb83f6e91fcdc4dae2e99a3_min create mode 100644 modules/tinyexr/test/unit/regression/tiled_half_1x1_alpha.exr create mode 100644 modules/tinyexr/test/unit/regression/日本語.exr create mode 100644 modules/tinyexr/test/unit/tester.cc create mode 100644 modules/tinyexr/test/unit/vcbuild.bat create mode 100644 modules/tinyexr/test/unit/win32-filelist-utf16le.inc create mode 100644 modules/tinyexr/test/unit/win32-filelist-utf8.inc create mode 100644 modules/tinyexr/test_tinyexr.cc create mode 100644 modules/tinyexr/tinyexr-config.cmake.in create mode 100644 modules/tinyexr/tinyexr.cc create mode 100644 modules/tinyexr/tinyexr.h create mode 100644 modules/tinyexr/transparent.exr create mode 100644 modules/tinyexr/vcbuild.bat create mode 100644 modules/tinyexr/vcsetup2019.bat diff --git a/CMakeLists.txt b/CMakeLists.txt index 515cde8..ddcc42b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -111,8 +111,6 @@ ExternalProject_Add(SDL2 "-DSDL_WASAPI=OFF" "-DSDL_RENDER_D3D=OFF" BUILD_ALWAYS 0) - - # Build OpenAL Soft module ExternalProject_Add(openal-soft @@ -139,6 +137,9 @@ ExternalProject_Add(entt CMAKE_ARGS "-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}" "-DCMAKE_INSTALL_PREFIX=${MODULE_INSTALL_DIR}" + "-DCMAKE_CXX_FLAGS='${CMAKE_CXX_FLAGS}'" + "-DCMAKE_CXX_FLAGS_DEBUG='${CMAKE_CXX_FLAGS_DEBUG}'" + "-DCMAKE_CXX_FLAGS_RELEASE='${CMAKE_CXX_FLAGS_RELEASE}'" BUILD_ALWAYS 0) # Build nlohmann-json module @@ -149,6 +150,9 @@ ExternalProject_Add(nlohmann-json CMAKE_ARGS "-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}" "-DCMAKE_INSTALL_PREFIX=${MODULE_INSTALL_DIR}" + "-DCMAKE_CXX_FLAGS='${CMAKE_CXX_FLAGS}'" + "-DCMAKE_CXX_FLAGS_DEBUG='${CMAKE_CXX_FLAGS_DEBUG}'" + "-DCMAKE_CXX_FLAGS_RELEASE='${CMAKE_CXX_FLAGS_RELEASE}'" BUILD_ALWAYS 0) # Build dr_wav module @@ -177,6 +181,22 @@ ExternalProject_Add(stb "-DCMAKE_C_FLAGS_RELEASE='${CMAKE_C_FLAGS_RELEASE}'" BUILD_ALWAYS 0) +# Build TinyEXR module +ExternalProject_Add(tinyexr + SOURCE_DIR ${MODULE_SOURCE_DIR}/tinyexr + BINARY_DIR ${MODULE_BUILD_DIR}/tinyexr + INSTALL_DIR ${MODULE_INSTALL_DIR} + CMAKE_ARGS + "-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}" + "-DCMAKE_INSTALL_PREFIX=${MODULE_INSTALL_DIR}" + "-DCMAKE_CXX_FLAGS='${CMAKE_CXX_FLAGS}'" + "-DCMAKE_CXX_FLAGS_DEBUG='${CMAKE_CXX_FLAGS_DEBUG}'" + "-DCMAKE_CXX_FLAGS_RELEASE='${CMAKE_CXX_FLAGS_RELEASE}'" + "-DTINYEXR_BUILD_SAMPLE=OFF" + "-DTINYEXR_USE_MINIZ=OFF" + "-DTINYEXR_USE_STB_ZLIB=ON" + BUILD_ALWAYS 0) + # Build glad module ExternalProject_Add(glad SOURCE_DIR ${MODULE_SOURCE_DIR}/glad @@ -198,6 +218,9 @@ ExternalProject_Add(cxxopts CMAKE_ARGS "-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}" "-DCMAKE_INSTALL_PREFIX=${MODULE_INSTALL_DIR}" + "-DCMAKE_CXX_FLAGS='${CMAKE_CXX_FLAGS}'" + "-DCMAKE_CXX_FLAGS_DEBUG='${CMAKE_CXX_FLAGS_DEBUG}'" + "-DCMAKE_CXX_FLAGS_RELEASE='${CMAKE_CXX_FLAGS_RELEASE}'" "-DCXXOPTS_BUILD_EXAMPLES=OFF" "-DCXXOPTS_BUILD_TESTS=OFF" BUILD_ALWAYS 0) @@ -249,7 +272,7 @@ ExternalProject_Add(freetype # Build antkeeper-source module ExternalProject_Add(antkeeper-source - DEPENDS SDL2 openal-soft entt nlohmann-json dr_wav stb glad physfs freetype + DEPENDS SDL2 openal-soft entt nlohmann-json dr_wav stb tinyexr glad physfs freetype SOURCE_DIR ${MODULE_SOURCE_DIR}/antkeeper-source BINARY_DIR ${MODULE_BUILD_DIR}/antkeeper-source INSTALL_DIR ${PACKAGE_INSTALL_DIR} diff --git a/README.md b/README.md index d3040fe..102770f 100644 --- a/README.md +++ b/README.md @@ -78,3 +78,4 @@ Antkeeper superbuild is licensed under the GNU General Public License, version 3 | Simple DirectMedia Layer | Sam Lantinga | Zlib | [SDL2/*](modules/SDL2/) | | stb_image | Sean Barrett | MIT / Public Domain | [stb_image.h](modules/stb/stb_image.h) | | stb_image_write | Sean Barrett | MIT / Public Domain | [stb_image_write.h](modules/stb/stb_image_write.h) | +| TinyEXR | Syoyo Fujita | BSD 3-clause | [tinyexr.h](modules/tinyexr/tinyexr.h) | diff --git a/modules/antkeeper-data b/modules/antkeeper-data index f1764a0..5a11f8e 160000 --- a/modules/antkeeper-data +++ b/modules/antkeeper-data @@ -1 +1 @@ -Subproject commit f1764a0ed33533a45c2da8251dac6b284156082d +Subproject commit 5a11f8e3db0b7b014b99d91be196cea582e1688a diff --git a/modules/antkeeper-source b/modules/antkeeper-source index 3c26a6f..66f114d 160000 --- a/modules/antkeeper-source +++ b/modules/antkeeper-source @@ -1 +1 @@ -Subproject commit 3c26a6fe64a782d7aba0db7ee331e646060cc095 +Subproject commit 66f114dbf78bdbe42a5ea4905b0414c347ae45c5 diff --git a/modules/tinyexr/.clang-format b/modules/tinyexr/.clang-format new file mode 100644 index 0000000..74210b0 --- /dev/null +++ b/modules/tinyexr/.clang-format @@ -0,0 +1,7 @@ +--- +BasedOnStyle: Google +IndentWidth: 2 +TabWidth: 2 +UseTab: Never +BreakBeforeBraces: Attach +Standard: Cpp03 diff --git a/modules/tinyexr/.drone.yml b/modules/tinyexr/.drone.yml new file mode 100644 index 0000000..33e98b2 --- /dev/null +++ b/modules/tinyexr/.drone.yml @@ -0,0 +1,7 @@ +image: bradrydzewski/base +script: + - make +notify: + email: + recipients: + - syoyo@lighttransport.com diff --git a/modules/tinyexr/.github/ISSUE_TEMPLATE/config.yml b/modules/tinyexr/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000..3ba13e0 --- /dev/null +++ b/modules/tinyexr/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1 @@ +blank_issues_enabled: false diff --git a/modules/tinyexr/.github/ISSUE_TEMPLATE/issue-report.md b/modules/tinyexr/.github/ISSUE_TEMPLATE/issue-report.md new file mode 100644 index 0000000..70c3b78 --- /dev/null +++ b/modules/tinyexr/.github/ISSUE_TEMPLATE/issue-report.md @@ -0,0 +1,26 @@ +--- +name: Issue report +about: Create a report to help us improve +title: '' +labels: '' +assignees: '' + +--- + +**Describe the issue** +A clear and concise description of what the issue is. + +**To Reproduce** +Steps to reproduce the behavior: +1. Compile TinyEXR with '...' +2. Load EXR Image '...' +3. See error + +Please attach minimal and reproducible files(source codes, EXR files, etc) + +**Expected behavior** +A clear and concise description of what you expected to happen. + +**Environment** + - OS: [e.g. Linux] + - Compiler [e.g. gcc 7.3] diff --git a/modules/tinyexr/.gitignore b/modules/tinyexr/.gitignore new file mode 100644 index 0000000..70595f4 --- /dev/null +++ b/modules/tinyexr/.gitignore @@ -0,0 +1,2 @@ +output.exr +test_tinyexr diff --git a/modules/tinyexr/.gitmodules b/modules/tinyexr/.gitmodules new file mode 100644 index 0000000..0166cfb --- /dev/null +++ b/modules/tinyexr/.gitmodules @@ -0,0 +1,3 @@ +[submodule "deps/ZFP"] + path = deps/ZFP + url = https://github.com/LLNL/ZFP.git diff --git a/modules/tinyexr/.lgtm.yml b/modules/tinyexr/.lgtm.yml new file mode 100644 index 0000000..557f8bf --- /dev/null +++ b/modules/tinyexr/.lgtm.yml @@ -0,0 +1,12 @@ +# FIXME(syoyo): Following settings does not work well. +path_classifiers: + maintainablity: + - exclude: "deps/*" + - exclude: kuroga.py + useless-code: + - exclude: kuroga.py + +extraction: + python: + index: + exclude: /kuroga.py diff --git a/modules/tinyexr/.travis.yml b/modules/tinyexr/.travis.yml new file mode 100644 index 0000000..6d06c66 --- /dev/null +++ b/modules/tinyexr/.travis.yml @@ -0,0 +1,124 @@ +env: + global: + - secure: "iGrwT5ZeamAmTrJ/u+ewb1YQvUWeOo2wbOiN2XgcHGKvEWOA2AFUY0LnwgSMV1RJbCzV0VCSglh6kvRXePDEdKNmEb8F6pPfc1GyZyFXX7e+gcG6nkq1NwnpSreLP5pIvEboNH1K57+UEre3buGynVTz/dgrGrIsOIJ1nylu3jbznwDS5wy/thyVoOTV+pMdP+6jsGaQKPJIEtdDJ7/zZ4yVqhdvP8HeJrNeoxGlQsLbgrKxMtZpKYaGcrKgP7nBJs50OHPDs04CxRz0rdEbVwYGP6SsWOAO/IYvNtcMBO4lyvaVmAWyjDITd3EH+q+QkJ8sP+6Vwj3VEqFTAFTFsR5rJJVu/CcvP1Wuq+oNpti7EJkCK8xSLfngLu+OBJMrYxR7W6zPaz4dgMAI7tqJLLSnOo0bQ8bS6aU64EnuXHDy6U7XUaYsAEqsTbmerk4KMtNBMWA667ef2XuXYPz+fK7CZQtPuU15+MBpFBaelnVpXW6qUQbDCtyGD5AHZZMF9llkKXhn2Hn/VBs3GjgP7huUDesH27x3+VJ5MHaghVyaCh0BviI9yuXpTQspm3WItzdBoGqJROFv9yTsJxs/JQz4ytqbMdiBnLlQVFdBEpWo+GjySGjlvFvlLIeCtCuULw0kL0zoY5FU2xCT35isIV5A0+aGAL0vhHaVR/CkNOo=" + +language: cpp + +matrix: + include: + # works on Precise and Trusty + - os: linux + addons: + apt: + sources: + - ubuntu-toolchain-r-test + packages: + - g++-4.9 + env: + - MATRIX_EVAL="CC=gcc-4.9 && CXX=g++-4.9" + + # works on Precise and Trusty + - os: linux + addons: + apt: + sources: + - ubuntu-toolchain-r-test + packages: + - g++-5 + env: + - MATRIX_EVAL="CC=gcc-5 && CXX=g++-5" + + # works on Precise and Trusty + - os: linux + addons: + apt: + sources: + - ubuntu-toolchain-r-test + packages: + - g++-6 + env: + - MATRIX_EVAL="CC=gcc-6 && CXX=g++-6" + + # works on Precise and Trusty + - os: linux + addons: + apt: + sources: + - ubuntu-toolchain-r-test + packages: + - g++-7 + env: + - MATRIX_EVAL="CC=gcc-7 && CXX=g++-7" + # works on Precise and Trusty + - os: linux + addons: + apt: + sources: + - ubuntu-toolchain-r-test + - llvm-toolchain-precise-3.6 + packages: + - clang-3.6 + env: + - MATRIX_EVAL="CC=clang-3.6 && CXX=clang++-3.6" + + # works on Precise and Trusty + - os: linux + addons: + apt: + sources: + - ubuntu-toolchain-r-test + - llvm-toolchain-precise-3.8 + packages: + - clang-3.8 + env: + - MATRIX_EVAL="CC=clang-3.8 && CXX=clang++-3.8" + + # works on Trusty + - os: linux + addons: + apt: + sources: + - llvm-toolchain-trusty-3.9 + packages: + - clang-3.9 + env: + - MATRIX_EVAL="CC=clang-3.9 && CXX=clang++-3.9" + + # works on Trusty + - os: linux + addons: + apt: + sources: + - llvm-toolchain-trusty-4.0 + packages: + - clang-4.0 + env: + - MATRIX_EVAL="CC=clang-4.0 && CXX=clang++-4.0" + + # Disable for a while since Travis failed to install clang-5.0 for some reason + # # works on Trusty + # - os: linux + # addons: + # apt: + # sources: + # - llvm-toolchain-trusty-5.0 + # packages: + # - clang-5.0 + # env: + # - MATRIX_EVAL="CC=clang-5.0 && CXX=clang++-5.0" + +before_install: + - eval "${MATRIX_EVAL}" + +script: + - make + - make test + +addons: + coverity_scan: + project: + name: "syoyo/tinyexr" + description: "Build submitted via Travis CI" + notification_email: syoyo@lighttransport.com + build_command: "make" + branch_pattern: master diff --git a/modules/tinyexr/CMakeLists.txt b/modules/tinyexr/CMakeLists.txt new file mode 100644 index 0000000..ba4afc8 --- /dev/null +++ b/modules/tinyexr/CMakeLists.txt @@ -0,0 +1,105 @@ +# this cmake file is for compile tests. +# Not usable for your cmake app. +cmake_minimum_required(VERSION 3.5) + +set(BUILD_TARGET "tinyexr") +set(SAMPLE_TARGET "test_tinyexr") + +project(${BUILD_TARGET} CXX) + +# options +option(TINYEXR_BUILD_SAMPLE "Build a sample" ON) +option(TINYEXR_USE_MINIZ "Use miniz" ON) + +# cmake modules +list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake) +list(APPEND CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake/sanitizers) +find_package(Sanitizers) # Address sanitizer (-DSANITIZE_ADDRESS=ON) + +# Require strict C++11 mode(e.g. `-std=c++11`) +set(CMAKE_CXX_STANDARD 11) +set(CMAKE_CXX_STANDARD_REQUIRED ON) +set(CMAKE_CXX_EXTENSIONS OFF) + +set_property(GLOBAL PROPERTY USE_FOLDERS ON) + +set(TINYEXR_SOURCES + ${PROJECT_SOURCE_DIR}/tinyexr.cc + ) + +if(TINYEXR_USE_MINIZ) + enable_language(C) + add_library(miniz STATIC deps/miniz/miniz.c) + target_include_directories(miniz PUBLIC deps/miniz) + set_target_properties(miniz PROPERTIES FOLDER "deps") + list(APPEND TINYEXR_EXT_LIBRARIES miniz) +endif() + +add_library(${BUILD_TARGET} ${TINYEXR_SOURCES} ${TINYEXR_DEP_SOURCES}) +add_sanitizers(${BUILD_TARGET}) + +target_compile_definitions(${BUILD_TARGET} PUBLIC TINYEXR_USE_MINIZ=0) +target_compile_definitions(${BUILD_TARGET} PUBLIC TINYEXR_USE_STB_ZLIB=1) + +target_include_directories(${BUILD_TARGET} PRIVATE ${PROJECT_SOURCE_DIR}) +target_link_libraries(${BUILD_TARGET} ${TINYEXR_EXT_LIBRARIES} ${CMAKE_DL_LIBS}) + +# Install library +install(TARGETS ${PROJECT_NAME} + EXPORT ${PROJECT_NAME}-targets + ARCHIVE DESTINATION lib + LIBRARY DESTINATION lib + RUNTIME DESTINATION bin) + +# Install headers +install( + FILES + ${PROJECT_SOURCE_DIR}/tinyexr.h + DESTINATION include) + +# Install CMake config file +install(EXPORT ${PROJECT_NAME}-targets + FILE ${PROJECT_NAME}-targets.cmake + DESTINATION lib/cmake/${PROJECT_NAME}) + +include(CMakePackageConfigHelpers) +configure_package_config_file( + ${PROJECT_SOURCE_DIR}/${PROJECT_NAME}-config.cmake.in + ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config.cmake + INSTALL_DESTINATION lib/cmake/${PROJECT_NAME}) + +install( + FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config.cmake + DESTINATION lib/cmake/${PROJECT_NAME}) + +# Increase warning level for clang. +IF (CMAKE_CXX_COMPILER_ID MATCHES "Clang") + set_source_files_properties(${TINYEXR_SOURCES} PROPERTIES COMPILE_FLAGS "-Weverything -Werror -Wno-padded -Wno-c++98-compat-pedantic -Wno-documentation -Wno-unused-member-function") +ENDIF () + +if (TINYEXR_BUILD_SAMPLE) + + set(TINYEXR_SAMPLE_SOURCES + ${PROJECT_SOURCE_DIR}/test_tinyexr.cc + ) + + add_executable(${SAMPLE_TARGET} ${TINYEXR_SAMPLE_SOURCES}) + target_link_libraries(${SAMPLE_TARGET} ${TINYEXR_EXT_LIBRARIES}) + add_sanitizers(${SAMPLE_TARGET}) + if (WIN32) + target_compile_definitions(${SAMPLE_TARGET} PUBLIC UNICODE) + target_compile_definitions(${SAMPLE_TARGET} PUBLIC _UNICODE) + + # Set ${SAMPLE_TARGET} as a startup project for VS IDE + set_property(DIRECTORY PROPERTY VS_STARTUP_PROJECT ${SAMPLE_TARGET}) + + # For easier debugging in VS IDE(cmake 3.8.0 or later required) Set working + # directory to ${BUILD_TARGET} git repo root. + if(CMAKE_VERSION VERSION_GREATER 3.8.0) + set_target_properties(${SAMPLE_TARGET} + PROPERTIES VS_DEBUGGER_WORKING_DIRECTORY + "${CMAKE_CURRENT_SOURCE_DIR}") + endif() + endif(WIN32) + +endif (TINYEXR_BUILD_SAMPLE) diff --git a/modules/tinyexr/Makefile b/modules/tinyexr/Makefile new file mode 100644 index 0000000..8e54d7e --- /dev/null +++ b/modules/tinyexr/Makefile @@ -0,0 +1,25 @@ +#CXX ?= clang++ +#CXXFLAGS ?= -fsanitize=address -Werror -Wall -Wextra -g -O0 -DTINYEXR_USE_MINIZ=0 -DTINYEXR_USE_PIZ=0 +#LDFLAGS ?= -lz + +# ZFP +#CXXFLAGS += -DTINYEXR_USE_ZFP=1 -I./deps/ZFP/inc +#LDFLAGS += -L./deps/ZFP/lib -lzfp + +CFLAGS += -I./deps/miniz +CXXFLAGS += -I./deps/miniz + +.PHONY: test clean + +all: miniz.o + $(CXX) $(CXXFLAGS) -o test_tinyexr test_tinyexr.cc miniz.o $(LDFLAGS) + +miniz.o: + $(CC) $(CFLAGS) -c ./deps/miniz/miniz.c + +test: + ./test_tinyexr asakusa.exr + +clean: + rm -rf test_tinyexr miniz.o + diff --git a/modules/tinyexr/Makefile.gcc-mingw b/modules/tinyexr/Makefile.gcc-mingw new file mode 100644 index 0000000..44e86ed --- /dev/null +++ b/modules/tinyexr/Makefile.gcc-mingw @@ -0,0 +1,18 @@ +#CXX ?= clang++ +#CXXFLAGS ?= -fsanitize=address -Werror -Wall -Wextra -g -O0 -DTINYEXR_USE_MINIZ=0 -DTINYEXR_USE_PIZ=0 +#LDFLAGS ?= -lz + +CXX=x86_64-w64-mingw32-g++ + +# ZFP +#CXXFLAGS += -DTINYEXR_USE_ZFP=1 -I./deps/ZFP/inc +#LDFLAGS += -L./deps/ZFP/lib -lzfp + +all: + $(CC) $(CFLAGS) -c ./deps/miniz/miniz.c + $(CXX) $(CXXFLAGS) -I./deps/miniz -o test_tinyexr test_tinyexr.cc miniz.o $(LDFLAGS) + +test: + ./test_tinyexr asakusa.exr + +.PHONY: test diff --git a/modules/tinyexr/Makefile.gcc-mingw-msys b/modules/tinyexr/Makefile.gcc-mingw-msys new file mode 100644 index 0000000..28af0e8 --- /dev/null +++ b/modules/tinyexr/Makefile.gcc-mingw-msys @@ -0,0 +1,16 @@ +#CXX ?= clang++ +#CXXFLAGS ?= -fsanitize=address -Werror -Wall -Wextra -g -O0 -DTINYEXR_USE_MINIZ=0 -DTINYEXR_USE_PIZ=0 +#LDFLAGS ?= -lz + +CXX=g++ +# -municode is not yet implemented +CXXFLAGS=-DUNICODE -D_UNICODE -mwindows + +all: + $(CC) $(CFLAGS) -I./deps/miniz ./deps/miniz.c + $(CXX) $(CXXFLAGS) -I./deps/miniz -o test_tinyexr test_tinyexr.cc miniz.o $(LDFLAGS) + +test: + ./test_tinyexr asakusa.exr + +.PHONY: test diff --git a/modules/tinyexr/Makefile.llvm-mingw b/modules/tinyexr/Makefile.llvm-mingw new file mode 100644 index 0000000..aff5444 --- /dev/null +++ b/modules/tinyexr/Makefile.llvm-mingw @@ -0,0 +1,25 @@ +#CXX ?= clang++ +#CXXFLAGS ?= -fsanitize=address -Werror -Wall -Wextra -g -O0 -DTINYEXR_USE_MINIZ=0 -DTINYEXR_USE_PIZ=0 +#LDFLAGS ?= -lz + +CC=clang +CXX=clang++ + +# ZFP +#CXXFLAGS += -DTINYEXR_USE_ZFP=1 -I./deps/ZFP/inc +#LDFLAGS += -L./deps/ZFP/lib -lzfp + +CXXFLAGS += -DTINYEXR_USE_MINIZ=1 -I./deps/miniz +CFLAGS += -DTINYEXR_USE_MINIZ=1 -I./deps/miniz + +# miniz +miniz.o: + $(CC) $(CFLAGS) -c ./deps/miniz.c +# +all: miniz.o + $(CXX) $(CXXFLAGS) -o test_tinyexr test_tinyexr.cc miniz.o $(LDFLAGS) + +test: + ./test_tinyexr asakusa.exr + +.PHONY: test diff --git a/modules/tinyexr/README.md b/modules/tinyexr/README.md new file mode 100644 index 0000000..b3059f0 --- /dev/null +++ b/modules/tinyexr/README.md @@ -0,0 +1,575 @@ +# Tiny OpenEXR image library. + +[![Total alerts](https://img.shields.io/lgtm/alerts/g/syoyo/tinyexr.svg?logo=lgtm&logoWidth=18)](https://lgtm.com/projects/g/syoyo/tinyexr/alerts/) + +![Example](https://github.com/syoyo/tinyexr/blob/master/asakusa.png?raw=true) + +[![AppVeyor build status](https://ci.appveyor.com/api/projects/status/k07ftfe4ph057qau/branch/master?svg=true)](https://ci.appveyor.com/project/syoyo/tinyexr/branch/master) + +[![Travis build Status](https://travis-ci.org/syoyo/tinyexr.svg)](https://travis-ci.org/syoyo/tinyexr) + +[![Coverity Scan Build Status](https://scan.coverity.com/projects/5827/badge.svg)](https://scan.coverity.com/projects/5827) + +`tinyexr` is a small, single header-only library to load and save OpenEXR (.exr) images. +`tinyexr` is written in portable C++ (no library dependency except for STL), thus `tinyexr` is good to embed into your application. +To use `tinyexr`, simply copy `tinyexr.h`, `miniz.c` and `miniz.h`(for zlib. You can use system-installed zlib instead of miniz, or the zlib implementation included in `stb_image[_write].h`. Controlled with `TINYEXR_USE_MINIZ` and `TINYEXR_USE_STB_ZLIB` compile flags) into your project. + +# Features + +Current status of `tinyexr` is: + +- OpenEXR v1 image + - [x] Scanline format + - [x] Tiled format + - [x] Tile format with no LoD (load). + - [x] Tile format with LoD (load). + - [x] Tile format with no LoD (save). + - [x] Tile format with LoD (save). + - [x] Custom attributes +- OpenEXR v2 image + - [ ] Multipart format + - [x] Load multi-part image + - [x] Save multi-part image + - [ ] Load multi-part deep image + - [ ] Save multi-part deep image +- OpenEXR v2 deep image + - [x] Loading scanline + ZIPS + HALF or FLOAT pixel type. +- Compression + - [x] NONE + - [x] RLE + - [x] ZIP + - [x] ZIPS + - [x] PIZ + - [x] ZFP (tinyexr extension) + - [ ] B44? + - [ ] B44A? + - [ ] PIX24? + - [ ] DWA (not planned, patent encumbered) +- Line order. + - [x] Increasing, decreasing (load) + - [ ] Random? + - [x] Increasing (save) + - [ ] decreasing (save) +- Pixel format (UINT, FLOAT). + - [x] UINT, FLOAT (load) + - [x] UINT, FLOAT (deep load) + - [x] UINT, FLOAT (save) + - [ ] UINT, FLOAT (deep save) +- Support for big endian machine. + - [x] Loading scanline image + - [x] Saving scanline image + - [x] Loading multi-part channel EXR (not tested) + - [x] Saving multi-part channel EXR (not tested) + - [ ] Loading deep image + - [ ] Saving deep image +- Optimization + - [x] C++11 thread loading + - [ ] C++11 thread saving + - [ ] ISPC? + - [x] OpenMP multi-threading in EXR loading. + - [x] OpenMP multi-threading in EXR saving. + - [ ] OpenMP multi-threading in deep image loading. + - [ ] OpenMP multi-threading in deep image saving. +* C interface. + * You can easily write language bindings (e.g. golang) + +# Supported platform + +* [x] x86-64 + * [x] Windows 7 or later + * [x] Linux(posix) system + * [x] macOS +* [x] AARCH64 + * [x] aarch64 linux(e.g. Raspberry Pi) + * [x] Android + * [x] iOS + * [x] macOS +* [ ] RISC-V(Should work) +* [x] Big endian machine(not maintained, but should work) + * SPARC, PowerPC, ... +* [x] WebAssembly(JavaScript) + * Loader only(See ![js](experimental/js/)) +* [x] Python binding + * Loader only https://pypi.org/project/pytinyexr/ + +# Requirements + +* C++ compiler(C++11 recommended. C++03 may work) + +# Use case + +## New TinyEXR (v0.9.5+) + +* Godot. Multi-platform 2D and 3D game engine https://godotengine.org/ +* Filament. PBR engine(used in a converter tool). https://github.com/google/filament +* PyEXR. Loading OpenEXR (.exr) images using Python. https://github.com/ialhashim/PyEXR +* The-Forge. The Forge Cross-Platform Rendering Framework PC, Linux, Ray Tracing, macOS / iOS, Android, XBOX, PS4 https://github.com/ConfettiFX/The-Forge +* psdr-cuda. Path-space differentiable renderer. https://github.com/uci-rendering/psdr-cuda +* Studying Microfacets BSDFs https://virtualgonio.pages.xlim.fr/ +* Your project here! + +## Older TinyEXR (v0.9.0) + +* mallie https://github.com/lighttransport/mallie +* Cinder 0.9.0 https://libcinder.org/notes/v0.9.0 +* Piccante (develop branch) http://piccantelib.net/ +* Your project here! + +## Examples + +* [examples/deepview/](examples/deepview) Deep image view +* [examples/rgbe2exr/](examples/rgbe2exr) .hdr to EXR converter +* [examples/exr2rgbe/](examples/exr2rgbe) EXR to .hdr converter +* [examples/ldr2exr/](examples/exr2rgbe) LDR to EXR converter +* [examples/exr2ldr/](examples/exr2ldr) EXR to LDR converter +* [examples/exr2fptiff/](examples/exr2fptiff) EXR to 32bit floating point TIFF converter + * for 32bit floating point TIFF to EXR convert, see https://github.com/syoyo/tinydngloader/tree/master/examples/fptiff2exr +* [examples/cube2longlat/](examples/cube2longlat) Cubemap to longlat (equirectangler) converter + +## Experimental + +* [experimental/js/](experimental/js) JavaScript port using Emscripten + +## Usage + +NOTE: **API is still subject to change**. See the source code for details. + +Include `tinyexr.h` with `TINYEXR_IMPLEMENTATION` flag (do this only for **one** .cc file). + +```cpp +//Please include your own zlib-compatible API header before +//including `tinyexr.h` when you disable `TINYEXR_USE_MINIZ` +//#define TINYEXR_USE_MINIZ 0 +//#include "zlib.h" +//Or, if your project uses `stb_image[_write].h`, use their +//zlib implementation: +//#define TINYEXR_USE_STB_ZLIB 1 +#define TINYEXR_IMPLEMENTATION +#include "tinyexr.h" +``` + +### Compile flags + +* `TINYEXR_USE_MINIZ` Use miniz (default = 1). Please include `zlib.h` header before `tinyexr.h` if you disable miniz support(e.g. use system's zlib). +* `TINYEXR_USE_STB_ZLIB` Use zlib from `stb_image[_write].h` instead of miniz or the system's zlib (default = 0). +* `TINYEXR_USE_PIZ` Enable PIZ compression support (default = 1) +* `TINYEXR_USE_ZFP` Enable ZFP compression supoort (TinyEXR extension, default = 0) +* `TINYEXR_USE_THREAD` Enable threaded loading using C++11 thread (Requires C++11 compiler, default = 0) +* `TINYEXR_USE_OPENMP` Enable OpenMP threading support (default = 1 if `_OPENMP` is defined) + * Use `TINYEXR_USE_OPENMP=0` to force disable OpenMP code path even if OpenMP is available/enabled in the compiler. + +### Quickly reading RGB(A) EXR file. + +```cpp + const char* input = "asakusa.exr"; + float* out; // width * height * RGBA + int width; + int height; + const char* err = NULL; // or nullptr in C++11 + + int ret = LoadEXR(&out, &width, &height, input, &err); + + if (ret != TINYEXR_SUCCESS) { + if (err) { + fprintf(stderr, "ERR : %s\n", err); + FreeEXRErrorMessage(err); // release memory of error message. + } + } else { + ... + free(out); // release memory of image data + } + +``` + +### Reading layered RGB(A) EXR file. + +If you want to read EXR image with layer info (channel has a name with delimiter `.`), please use `LoadEXRWithLayer` API. + +You need to know layer name in advance (e.g. through `EXRLayers` API). + +```cpp + const char* input = ...; + const char* layer_name = "diffuse"; // or use EXRLayers to get list of layer names in .exr + float* out; // width * height * RGBA + int width; + int height; + const char* err = NULL; // or nullptr in C++11 + + // will read `diffuse.R`, `diffuse.G`, `diffuse.B`, (`diffuse.A`) channels + int ret = LoadEXRWithLayer(&out, &width, &height, input, layer_name, &err); + + if (ret != TINYEXR_SUCCESS) { + if (err) { + fprintf(stderr, "ERR : %s\n", err); + FreeEXRErrorMessage(err); // release memory of error message. + } + } else { + ... + free(out); // release memory of image data + } + +``` + +### Loading Singlepart EXR from a file. + +Scanline and tiled format are supported. + +```cpp + // 1. Read EXR version. + EXRVersion exr_version; + + int ret = ParseEXRVersionFromFile(&exr_version, argv[1]); + if (ret != 0) { + fprintf(stderr, "Invalid EXR file: %s\n", argv[1]); + return -1; + } + + if (exr_version.multipart) { + // must be multipart flag is false. + return -1; + } + + // 2. Read EXR header + EXRHeader exr_header; + InitEXRHeader(&exr_header); + + const char* err = NULL; // or `nullptr` in C++11 or later. + ret = ParseEXRHeaderFromFile(&exr_header, &exr_version, argv[1], &err); + if (ret != 0) { + fprintf(stderr, "Parse EXR err: %s\n", err); + FreeEXRErrorMessage(err); // free's buffer for an error message + return ret; + } + + // // Read HALF channel as FLOAT. + // for (int i = 0; i < exr_header.num_channels; i++) { + // if (exr_header.pixel_types[i] == TINYEXR_PIXELTYPE_HALF) { + // exr_header.requested_pixel_types[i] = TINYEXR_PIXELTYPE_FLOAT; + // } + // } + + EXRImage exr_image; + InitEXRImage(&exr_image); + + ret = LoadEXRImageFromFile(&exr_image, &exr_header, argv[1], &err); + if (ret != 0) { + fprintf(stderr, "Load EXR err: %s\n", err); + FreeEXRHeader(&exr_header); + FreeEXRErrorMessage(err); // free's buffer for an error message + return ret; + } + + // 3. Access image data + // `exr_image.images` will be filled when EXR is scanline format. + // `exr_image.tiled` will be filled when EXR is tiled format. + + // 4. Free image data + FreeEXRImage(&exr_image); + FreeEXRHeader(&exr_header); +``` + +### Loading Multipart EXR from a file. + +Scanline and tiled format are supported. + +```cpp + // 1. Read EXR version. + EXRVersion exr_version; + + int ret = ParseEXRVersionFromFile(&exr_version, argv[1]); + if (ret != 0) { + fprintf(stderr, "Invalid EXR file: %s\n", argv[1]); + return -1; + } + + if (!exr_version.multipart) { + // must be multipart flag is true. + return -1; + } + + // 2. Read EXR headers in the EXR. + EXRHeader **exr_headers; // list of EXRHeader pointers. + int num_exr_headers; + const char *err = NULL; // or nullptr in C++11 or later + + // Memory for EXRHeader is allocated inside of ParseEXRMultipartHeaderFromFile, + ret = ParseEXRMultipartHeaderFromFile(&exr_headers, &num_exr_headers, &exr_version, argv[1], &err); + if (ret != 0) { + fprintf(stderr, "Parse EXR err: %s\n", err); + FreeEXRErrorMessage(err); // free's buffer for an error message + return ret; + } + + printf("num parts = %d\n", num_exr_headers); + + + // 3. Load images. + + // Prepare array of EXRImage. + std::vector images(num_exr_headers); + for (int i =0; i < num_exr_headers; i++) { + InitEXRImage(&images[i]); + } + + ret = LoadEXRMultipartImageFromFile(&images.at(0), const_cast(exr_headers), num_exr_headers, argv[1], &err); + if (ret != 0) { + fprintf(stderr, "Parse EXR err: %s\n", err); + FreeEXRErrorMessage(err); // free's buffer for an error message + return ret; + } + + printf("Loaded %d part images\n", num_exr_headers); + + // 4. Access image data + // `exr_image.images` will be filled when EXR is scanline format. + // `exr_image.tiled` will be filled when EXR is tiled format. + + // 5. Free images + for (int i =0; i < num_exr_headers; i++) { + FreeEXRImage(&images.at(i)); + } + + // 6. Free headers. + for (int i =0; i < num_exr_headers; i++) { + FreeEXRHeader(exr_headers[i]); + free(exr_headers[i]); + } + free(exr_headers); +``` + + +Saving Scanline EXR file. + +```cpp + // See `examples/rgbe2exr/` for more details. + bool SaveEXR(const float* rgb, int width, int height, const char* outfilename) { + + EXRHeader header; + InitEXRHeader(&header); + + EXRImage image; + InitEXRImage(&image); + + image.num_channels = 3; + + std::vector images[3]; + images[0].resize(width * height); + images[1].resize(width * height); + images[2].resize(width * height); + + // Split RGBRGBRGB... into R, G and B layer + for (int i = 0; i < width * height; i++) { + images[0][i] = rgb[3*i+0]; + images[1][i] = rgb[3*i+1]; + images[2][i] = rgb[3*i+2]; + } + + float* image_ptr[3]; + image_ptr[0] = &(images[2].at(0)); // B + image_ptr[1] = &(images[1].at(0)); // G + image_ptr[2] = &(images[0].at(0)); // R + + image.images = (unsigned char**)image_ptr; + image.width = width; + image.height = height; + + header.num_channels = 3; + header.channels = (EXRChannelInfo *)malloc(sizeof(EXRChannelInfo) * header.num_channels); + // Must be (A)BGR order, since most of EXR viewers expect this channel order. + strncpy(header.channels[0].name, "B", 255); header.channels[0].name[strlen("B")] = '\0'; + strncpy(header.channels[1].name, "G", 255); header.channels[1].name[strlen("G")] = '\0'; + strncpy(header.channels[2].name, "R", 255); header.channels[2].name[strlen("R")] = '\0'; + + header.pixel_types = (int *)malloc(sizeof(int) * header.num_channels); + header.requested_pixel_types = (int *)malloc(sizeof(int) * header.num_channels); + for (int i = 0; i < header.num_channels; i++) { + header.pixel_types[i] = TINYEXR_PIXELTYPE_FLOAT; // pixel type of input image + header.requested_pixel_types[i] = TINYEXR_PIXELTYPE_HALF; // pixel type of output image to be stored in .EXR + } + + const char* err = NULL; // or nullptr in C++11 or later. + int ret = SaveEXRImageToFile(&image, &header, outfilename, &err); + if (ret != TINYEXR_SUCCESS) { + fprintf(stderr, "Save EXR err: %s\n", err); + FreeEXRErrorMessage(err); // free's buffer for an error message + return ret; + } + printf("Saved exr file. [ %s ] \n", outfilename); + + free(rgb); + + free(header.channels); + free(header.pixel_types); + free(header.requested_pixel_types); + + } +``` + + +Reading deep image EXR file. +See `example/deepview` for actual usage. + +```cpp + const char* input = "deepimage.exr"; + const char* err = NULL; // or nullptr + DeepImage deepImage; + + int ret = LoadDeepEXR(&deepImage, input, &err); + + // access to each sample in the deep pixel. + for (int y = 0; y < deepImage.height; y++) { + int sampleNum = deepImage.offset_table[y][deepImage.width-1]; + for (int x = 0; x < deepImage.width-1; x++) { + int s_start = deepImage.offset_table[y][x]; + int s_end = deepImage.offset_table[y][x+1]; + if (s_start >= sampleNum) { + continue; + } + s_end = (s_end < sampleNum) ? s_end : sampleNum; + for (int s = s_start; s < s_end; s++) { + float val = deepImage.image[depthChan][y][s]; + ... + } + } + } + +``` + +### deepview + +`examples/deepview` is simple deep image viewer in OpenGL. + +![DeepViewExample](https://github.com/syoyo/tinyexr/blob/master/examples/deepview/deepview_screencast.gif?raw=true) + +## TinyEXR extension + +### ZFP + +#### NOTE + +TinyEXR adds ZFP compression as an experimemtal support (Linux and MacOSX only). + +ZFP only supports FLOAT format pixel, and its image width and height must be the multiple of 4, since ZFP compresses pixels with 4x4 pixel block. + +#### Setup + +Checkout zfp repo as an submodule. + + $ git submodule update --init + +#### Build + +Then build ZFP + + $ cd deps/ZFP + $ mkdir -p lib # Create `lib` directory if not exist + $ make + +Set `1` to `TINYEXT_USE_ZFP` define in `tinyexr.h` + +Build your app with linking `deps/ZFP/lib/libzfp.a` + +#### ZFP attribute + +For ZFP EXR image, the following attribute must exist in its EXR image. + +* `zfpCompressionType` (uchar). + * 0 = fixed rate compression + * 1 = precision based variable rate compression + * 2 = accuracy based variable rate compression + +And the one of following attributes must exist in EXR, depending on the `zfpCompressionType` value. + +* `zfpCompressionRate` (double) + * Specifies compression rate for fixed rate compression. +* `zfpCompressionPrecision` (int32) + * Specifies the number of bits for precision based variable rate compression. +* `zfpCompressionTolerance` (double) + * Specifies the tolerance value for accuracy based variable rate compression. + +#### Note on ZFP compression. + +At least ZFP code itself works well on big endian machine. + +## Unit tests + +See `test/unit` directory. + +## TODO + +Contribution is welcome! + +- [ ] Compression + - [ ] B44? + - [ ] B44A? + - [ ] PIX24? +- [ ] Custom attributes + - [x] Normal image (EXR 1.x) + - [ ] Deep image (EXR 2.x) +- [ ] JavaScript library (experimental, using Emscripten) + - [x] LoadEXRFromMemory + - [ ] SaveMultiChannelEXR + - [ ] Deep image save/load +- [ ] Write from/to memory buffer. + - [ ] Deep image save/load +- [ ] Tile format. + - [x] Tile format with no LoD (load). + - [ ] Tile format with LoD (load). + - [ ] Tile format with no LoD (save). + - [ ] Tile format with LoD (save). +- [ ] Support for custom compression type. + - [x] zfp compression (Not in OpenEXR spec, though) + - [ ] zstd? +- [x] Multi-channel. +- [ ] Multi-part (EXR2.0) + - [x] Load multi-part image + - [ ] Load multi-part deep image +- [ ] Line order. + - [x] Increasing, decreasing (load) + - [ ] Random? + - [ ] Increasing, decreasing (save) +- [ ] Pixel format (UINT, FLOAT). + - [x] UINT, FLOAT (load) + - [x] UINT, FLOAT (deep load) + - [x] UINT, FLOAT (save) + - [ ] UINT, FLOAT (deep save) +- [ ] Support for big endian machine. + - [ ] Loading multi-part channel EXR + - [ ] Saving multi-part channel EXR + - [ ] Loading deep image + - [ ] Saving deep image +- [ ] Optimization + - [ ] ISPC? + - [x] OpenMP multi-threading in EXR loading. + - [x] OpenMP multi-threading in EXR saving. + - [ ] OpenMP multi-threading in deep image loading. + - [ ] OpenMP multi-threading in deep image saving. + +## Python bindings + +`pytinyexr` is available: https://pypi.org/project/pytinyexr/ (loading only as of 0.9.1) + +## Similar or related projects + +* miniexr: https://github.com/aras-p/miniexr (Write OpenEXR) +* stb_image_resize.h: https://github.com/nothings/stb (Good for HDR image resizing) + +## License + +3-clause BSD + +`tinyexr` uses miniz, which is developed by Rich Geldreich , and licensed under public domain. + +`tinyexr` tools uses stb, which is licensed under public domain: https://github.com/nothings/stb +`tinyexr` uses some code from OpenEXR, which is licensed under 3-clause BSD license. + +## Author(s) + +Syoyo Fujita (syoyo@lighttransport.com) + +## Contributor(s) + +* Matt Ebb (http://mattebb.com): deep image example. Thanks! +* Matt Pharr (http://pharr.org/matt/): Testing tinyexr with OpenEXR(IlmImf). Thanks! +* Andrew Bell (https://github.com/andrewfb) & Richard Eakin (https://github.com/richardeakin): Improving TinyEXR API. Thanks! +* Mike Wong (https://github.com/mwkm): ZIPS compression support in loading. Thanks! diff --git a/modules/tinyexr/appveyor.yml b/modules/tinyexr/appveyor.yml new file mode 100644 index 0000000..c63267f --- /dev/null +++ b/modules/tinyexr/appveyor.yml @@ -0,0 +1,13 @@ +version: 0.9.{build} + +platform: x64 +configuration: Release + +before_build: + - echo running cmake... + - cd test + - cmake -G "Visual Studio 12 Win64" -Bbuild -H.. + +build: + parallel: true + project: C:\projects\tinyexr\test\build\tinyexr.sln diff --git a/modules/tinyexr/asakusa.exr b/modules/tinyexr/asakusa.exr new file mode 100644 index 0000000000000000000000000000000000000000..ae7f38ad34d4cc31ce01af4acd49c7934cbb7471 GIT binary patch literal 1127425 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%0D5# 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%0A9}q6IdoQ))hKmgV8;Hs1q}@+lNm*fy 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�#gj<9JFMNf%c zXI@rr7=II+b-3yIqGa zBJ(V`#3AdJazC``kS%8a>JKi#D7Lf-rwy6=dbfrd`1z=?C)G3)X+RCFJi-Z!H45TL z3u?|cIxvjZq{>Y~uyi@f0=(z34=BwnwYX!6(q+=sAL6H?j#c@dt(IcL z)7o9$^^z7OIa=#i+4v0rB_y@iR*oapx3Yv_f?!Usm-Hi1w-*BBJf%42S#ZmOjV6*V zau+v!?k`({Y;kq$L@H&}5aGMj)FnXMmHLx1Z6r4HJENVLoLOhxz-+U5#YV6+79+2G z#$=AL^1TT-`5BWA%ALn>ij5;rj$o>NH@lGr7)5webVJG(oR-zFqU$Qz*D-0=Xg2vg zjw(5W7FD*&W7s98TN5!^BTjyaN&O^ZQgX41j*pmB%G@!j$Mqv7&4s8!o9)X3dC*S8 zWc`du@q2RJLeCiY;AY9om`$v;^ZE{lJntsk;k}D1JtTt5#vl8>?I%LFXy42!CRk~? z{}z*?IrWs{ou!K0@$jy%HS`OhmXQ}kHo~!NmpYF9X#Z45FZ4bUi5um1Vlr72KQT!y zp)*|tQ|PcoP#Alkpr(c0oC5$B z*;O9!jZ0B{liTq`*7`w|#X5QL-RHl?yAHn?C6Rp%lv(@27ngX0!q{gFiRHUJA{H!1 zp9+IY-sWysSj`OLFzoUJ5wgcA!(g#pT%MTpeT5T*oG^$Fk1@-HYsU5wlPPYQZ;&pb zim>6(RZLp%o?n_n3B4dprc_s@VF1~+*0c z4Vxy?$bxP-A%e@(W*JvzVSms%Ue`!1BssjJJT|q3O{t!HS9=t7rH2=%wc}CUfi`RW zR&|)!Xb>gS4)r{3L_y1e82!eR-><*j>koUa(C7yBS~)&pQ!~S!YD8sg(By7CP%qRL zL8@jGOI4T4u*DnOQ93fttZ1PuJd%s;o}bQK_J$nQ(e>Q&(wQ?lkys{JkHUkv?rI%H zZmLS|7BI@i{VUVziI%ke7z#bfZeQBFU8GMxq$6}Vj9EP+yA*WA>?_es2LUIip5&_p z2pvc;)R`!)Qf-6ajLZ6^wHTDt(2v3=S6F}Rg29+}9YOU>>_pP~I5eGg8fNUYmeWL{ zONIZj)_vk*?Z3$~q?D(14!^m&k;INQuanY2YZwqIbT<%P;!r?;6S=Ij{)tB3SE}$o z6YKZ1p{`SA*a_LKd!@0ma^~2m*KHvbCM~2vfvCL{8c-@W_7c5xN1G5MJPrGPpu6nD&+s-QWe zhDPU3tH|e1Od>7Uh{^1P`ottX4?8C14poxC$~gj0l7-8_bFUJqzBfvnwFHa(5tA6Z zAVbLApw7>jls{iF34|HtA7Ti1I<6bWH6Nr+*_)8^r!0CZV@$=&dIv%WzD#fVn(K{C`nQR=lJyPH;kG zx;ioYStBMhA-3P6n6%TaoI`Agt8_}ylt&Hv#AM?*GXn3R154mm_cQsRO>=VzquZ&Q zek^804JtY@Iphb)CINE`pJ(7Wu0uOiU~N5M1#52bVkcN0BpLtlO$}S7U64FFImkvo z#l^bNIL#()SQIed<_;+{x`r&s+$E|BtU%GYRr?A4=4#MAamCKq?lJ;V+m)`WaO_ch zvOOQRESZu&F`0bv#xV`>2{XRclmu7FNOqQU?yW}KOh8l<*h>kqA=Voi#Zl-f4wdL*f#Wftt# zLQ%uDt90Ov4t52vK22pqGLm#S-r*D~(Kr=9{;Ov{s7Pw#{AC4?CNm#v!_HsOB-Ocl zzwMSPVzg(Q9g6gH}>dXnECpq=elP?x$IE0B0rC z`mm1by9QEVF1K(Kf^Gue)M1cq?0{D*@Z?u7?fAt#FFzcvux|6+{?iK#8L-pppanw> z4{$U^CdKg5&~2Ui5+o~}J@$kVL@3=Wh|>jcq8pF2UW-!gCRM8aok|nkKEjG)U2f5_ zPi|k6G{wm_8()X7PNrE%$qGfjm2r?r ziEp1V*`u8qMwMq&42(Z|G`HxQKP?irOUE5%wJ@k88{;A-X+#)4I50H&rauAvXLnvm zoFig#|7VqbP4akR@~jBzyCWtkl1#5*aa;0O+&Zq6lQKPxeKk%4&P!#7jv;u_OTu)% zA||ONz=QM!otTs}^cKg(c}MGwyHLh+#@XU#rM~EZJnDyJaDhmIyYz#F4y9g)PNPK) z@Y6!Pd1T&pxYG&cR^az63C=mA%xcG_i zt)b?N+{V>n6l+ddODG)wzFD%&qS4pm7>)ziy#e+Y^R!mX+>n2KTP=D31DP9n)8NkY zIOVj@!|!%0k*hS*y8#G$d}%0d8*pNqDNL2<`NX2X0v|3YIUKu6k15}7jVfkEx_i|s zfr{cS_9ORi|K#`U@AmpbxCYd?8T3_^YIVv^2umr=*ewxz1-V!m5<2frz%R_* z!_$(chBj}!p z$y`=q(2QUNF$v%~G1J>S#$wS=e)x?=$m8ObFT

m?Ms@j(k2F91+mSp++=mK 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⋙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%0DvLmWK^JxdYVFFm04x>kUD}guCUZ|cSE=YNRx{Ys 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

|wpyIESlRounL13F4R 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%0ATDVa06O;3; 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

jZwm)S$#|c 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≤x)a$VIOs`4$_-8!b1{7#ObRA zkA)12Q6wrK7&HsAZG2AE203eS%FE zmgMji-?OC%)Yq_1f5oRwCa@o1I<`&DN$mjXi<7u~uqM1L}j5oV(*46ZO?Hf^$z z62eOul{IXWKDd#%ZE~GxX6&{WaA5-4B=Dk&`MvlBkO_vRuA75RUb4w{5kwCNRi8E~ zO-GZGYhA?~HrYipF)Yq7E!!yRB)OX_C!_y*6tKya06lEdX1k7MlYQCbKjtOVkM;nR zMeivnXSGeD5`;6uQ?ZiY{Q-IQca!af|z{m#Aw1PGVO_E8?s(=n%AT&F*)}B zL=j=`z7$qc#^wW*0YZ>Nelo^_=o6eBM8bnUZ5b+)oYnGfAERcvK#xbQ0D?yUYmbZBAu+V){KW<@52I|p^{qL$%$Yy(!zd= z03vHJ)o@!mbf}b*HmO$!H-K`HYh-m;r@L*kTiyC|{2YJRk;OBwRDw$>BUiLt4iTOdz6W^hEY8S!Qf9)G0|n$a zByy}`ku_~aoMe0y$poMg8%LHjPD*9R1{6YO9iC-AcO2DQDGvzL%)MUY4CD$ z@iYBg0rb*;DcZ;n(7TiqEL`n?DH58o6a<>pVHQE)Tz_^+j&`8_%x)ziGLQ*h5b^MA zB+%9eUuXLsFO{6u6@tDSOodyo_I=m91BObWa#LUM!hMz_+HX+-MO{nla$fAuh=YYr zovz&kBUDvjbomgc9VH^`*aXWk_n>zZ59DVLuL7eBZ9~PHh^+*48Hi6l0b+z@i2_Xj z9v0Sni~aeqP4aIkz^IZxstSBvF0!F=$BROn4Kf?rBvru>Ug#wwGlCOWSJ%QzGgQzg zJ0-yA@?yWiB={bvO=Xkinv}YQc|rj;+9ZSve4R82&@i@1n;!1uz*V4!Y-D*15v9sB z@JL~kt!8?cPYxm0HYpa^`p{sxA1|$pdSzP~y4eb7*5nP>rJ!)|mQB9OWt*&u`s=^G zM%pCMu57Zu$5FjPn*$r)F_%!I%rwiHYR%x=?BxqgD{Qj$-?laOnBaYX32hzU#PK5@ zu^W;R*(7qbLb{BBybjqU+lIOXZ1xw`RFZC0X^7LQrXqy&ypc_JUhQ-PJ^LSMlNP)* zi}o^;(hXF-k54=q7EoFh+{BJe3JsKl$tH&qZ~IB|tLulw^>S;lhh%wprZBWA5TETn zb9|sV=}86{U3`vO;P$jviWtzv1P}+uU8!AJko>0$k(+883j1d zFXY{8$sYFwaPVUc^V{$4hSV_A@vP#KccIN@D9$U4VSF2k0 ziY2(@NJRo{5*l0DBw7z*+a$6dyyz-|V}h4p(4b8kF^7t%4)e$a#0CvbJb2h77R3cE z2ehTbHaQq7M*px$6w~;+X_N15lRgi)R~3n8f}V|BZIjWZT41y(iFdksH2B{8228Zc z`U|{03+zvu?2R^ACqnUx-2<78-sA}Y!qly$O_uljVUs92)OABT4dJ%ThrE&@AhiOv z$-Kud79V8loF}+m-G3Rbb@W5p&$P)*lAbn+r^f*ivdMKjZ?&@og^GI^gX@s3r+`gA zlJ%=V4Ulz-J$EJGp@&xG)K?Jg?p^<|Nqt$(-}sBVi_!FkNnM&WyJR4&=A=!+xYkOi zO;WGk*y2mqF(@LEYA9@(wuWwctk1g=-Ar5KmgGf8ml#^bX6jXhdN@_X%Gg0X8S$Ox z*tx)An|wT3^OLSg0C0|UANfpp33*YE#6o`37U;wbkMAVxw4bc(tBQgA3+WmDfL-c0 z)5_qW3w2xA#PpB4@uFQ?f3DQ9nzLmYxut6URf)Z-%z8Dc+ZSleI)VXgGAkX>nM*%3!8ZnQ|QiKoaO zK=M1|!Cf&`TbHt8_dtogm-j&Wj&-W3KLkwZh&fllddsO1$d>7^?9>wC=ZC8>JtML5 z&epPATv!~Yj84=m$GI?Ojb^9+@RRV$D^yldt|ViSyJK8NLBAdx9=QlGqilO$iG7fu zL~4!aFiy}GNP)*6F|@(!&8y`qgFkgZy3niaPBB)pV31_VwH2 zDoPa;F7#ByY~Wu};T`L#!ui*Uq7@n+Ft5cL*FJVlR$nGqZ#>!DyO0_{3(wVs)l^Mv zo+#q{I-jLJ*UQ6E-dd<~>Yu6urA?-btqSw%|3cRhZne<w2L z^U-xzx7B!6)T^&h`oRUsCeiH7LezS_XkUU&!c2^_woS6r0FVtayj` zko4Z~mGQRbB$@7MG-%5WRW)03K_51Gaun9XCQpj^q5WF$x3G?YgoQE-+T;-3!+P&1 zYq7O&wZsPh3b{->3kN6&^4KQXwcxCvE1@GF6rv6fDgzLO?lK|htHhIe3WbC#b zXWMINh|_x5@w7>_BuAZ;(+1PyJpmw0Cen}Ko^rzi8 zIXy?!ipu0bfYK_V^mbzGAPgFUzKyCwmO7{A^5}EJk4*M2z2JyFg=X|SVYWFfh2u7-RZPsY;C zTDMJ}&OKW`8z5gOWAXN3lTu*>{p2!Ewh$>hi_lx25 z*Xl+@0lt``(@Za4>Bf%dI3GfXeV^vrTTP%|l+2RbcgtNqjN4B}YE$-ET6@@}h)&9= zB_Y^9`NK~tJqb4xw9TCMpMIR5<8M0>Po5`vBPPWvHAp8+!lfy*<>bNj;cJlAIcp~K zAulx5fRQPoOUt_)x|Nj5t_HXwkaWTymC-x-g|1Q`#)6H>{zi6>pIz;T*2ouiro?>f zv@cv{q-14#mkR&McARSubqMz@$|oUq)JR@TD|l2EFd_W!EpERch&C{DV!6dsZOw7A zCPnPSLL?m}yeS;zadM;@CkIMXj=R3zKIQtGSI2`b%grC69w+-v3VoT{lKk~=Uj^|; zH%-{+II%sAvow}j4XCLIjkSC+Y?$fFh)c; z=`Tz9A}79R{tx~+Y?GqBha|sZj*3u!R}R~6`^o>eb-faxXq{kOD<@&Zwn<#cuu9w# zgpb_H_u^};R91GhiW7L#R6lZ@NDs{Us>J3)jqg&0y0Xt-;DX+Ki_2A@6J_R?bv;1f zNw|R7Jas~Vu1ihIH><&`e*#Lk-mpu=MW*gYK(P^t?UXY1vuL{0I_=fex0ej zAe0m78mL|IH&yYSlVg5rk>jUVYW@G1+6dS=YkhRrD#Uez0$u!=D*B)Tk;+2?a6*Q5fcWpTvNC80n_OXU20 zQg>cBuCb63U{N()uhKzidOUb2DKf2lcfXcG-#nmX!+Fm#X4dPgO6uX*ji}hJXY3wU z-Seo&g@jpGADevW@)FYs`|%`*c68+&ZOvK+f+Qh_26rHh4$b8}sfNo&CS3s9VjHgk zO-U=bzP{&4hS2ev?wAjb>ai|{5loM`lm|3i?)<9(N`jOlkJ zDGo>ws&*a5+K~m|ZIfIAczu_Cez4^r6QF&*1+_Sq9gVCBB#c-R7QrTqhM{agsV5em z@L%(O@*;8jXWKSOK-y1DW>`-`3P~`kU{=qQ&|%spt02sG69WQK+p@{8-?MO31EpKj zBCdyRDX&R6NJwRAkW{|N;4FMI+x2*m%{JM$O(wZ1P0N@c?U~W(tAhyQ9ASSj=>ZOO*WZIU!=EW;YFrHm+vh5AT#ERxvEB79hKHzqfTD8dmBe$tPh{`9QAAm2cEUNrS|H1VJh8zeBSZv{G#wkJ?p zbQGoNkziD|L6;(%bdHQ-Q-l@xBmXGhBspo%$#_gjLyA&mlNt$zNqnb5jMNEwY@{}( z6CSFRL)~yS--59EzuM37bNpRLcDg2>?5;RTYGnG!t5Lgi!0Op!jJU+iZAf)Jy89Et zQPX%booTq(ZSpcSY8OKqdUmai9XZuJH>6dsLXvd&BoCag7Ua6nRyuZ(>;2$S%N3f5wYK-w_H;2>}=VBIlPQco{v~&6B=D$o76=EP5oasc~(_xbw^pG zUDhLd2uQ(}9UC|k+09zU={nt3^rcO9Y~hi5RX-zk`LHvZgYw3;ZIa}jY!XE{b%b!3 zK-@NYUW6kKj_Xr(+a$jh3;%*i%;Fa$HX22XYqY%byuaSW7FX?V5SL?k%i)W#qSv@> z(t#StwyKN!KiT9wIsC6DstW6Ks$>%VVUqxFk0-<__GFtO#n;cv9$lUe=Pc}Pf zrCF_K4^eYYArmj^sT=ZtE5`vtmxOxqx}CblN|it@~$iMhW5ix{v3bXp@kjG#i$Z#^uo5BniGGp?9V+3 zqhp%Gz#fvCJ*C!WeFM!Px*iwlnbCyZz7xzyAFn{MQ(}}Lk`5Wr&FSt+mbO4I$ zR5Z~z5#9>=ySpVjHz5LMs=hI|4i#%m3|=RB^KQ`DL4pUH*ttlY*N3Tz5K>9{Emgyy z>JN1}5mVC-G+NfB`$I$}lu&nEVHoXuf5FgnNe(9&+E~bW1D|zO9Pw~bU0Bcgha6;d z$La3S&C_xQ{wWEkYH=82g^iKKl%!31Q_7)k&}bIKnSOK=RyTpvK5a5zPu~cZtveVG zSZ|vQPIv0Ylf4}HUM$gM8tD3Yti^=1Lh?{HCq+jQF z7>l)S65w|TTxBg-gP{yIv2?D<$m7oIA%(&pc+$k>o%q_kPE0}`73}!nu!dmSin|X; z${1Zk#?qT<)z|8MJ9H~eGGOfWnB-_SD#<1ve$t67>B-G%lh}0H%k*b*WI1{`Js+xZ z-#L>qCr5&ovsp`x-KGAk{Tx5X-*uQq5}s_%=T#Naf@Z+rUIQa}oyKiP;1vM*CV*1o zyl9Du8w=U44tJ^?b9(}n4+K6{e52kB$#+PHKf2TX=98CrkOAJdk`1M z$N3)I|B4_dd@^pqA@zMi6*_0mePCyAV>doh(VWQz?a+os6;#u_i(K&p5gN_Nf*~I+@@_g=fvJ67!k(7&F$8(s zjLa?`d+)L-8P~GlG`p@RJHDv^o!E6->Mk~lbqhKpGZoVqlvWkl zf@aW!PPTCOkip@T&&|_0frq6wjJhI!&*q%lCdXy+360lPHi^#g6Z_*}{hYJkI%w4k zP)@xr4Z6vnHnE@hDsHTfEm0~rS+aBlXcL(7nE%||s|v=n$#z`AX#g^#%&H`5$M{3ZP)XUSk=*re+FR`U8w)TJt84vNjdi|gEZYGjl9`+uV%XDOD*6Z*j z(C*<7W}szhEL*6By%02UuUwo$Sc}6TRVt^<8!1g_ggsC3IW~O16~M(ueL+7hD6CJl z-9syNft0-zlsdZ}v1RY?I|^vkuM0XmNdQ~cs7?!{hgHqJ<)FHzz8QRc-ssy|Mb2by zZcz;8NXz1&n;+ad%^Owj=SBjT^}kY+^I7-y-|gr4IsUH0ZU`%t-n3>yw_6su1sw=J zBukogtp?G`y5IP2$Eg9e>i8!8y?RP)_eH52xKHiC zEjlyQNxCAF!U;x@Bbi1NWDoWF;Jban86g-3zo49Boac9(nx!$5z;IhH1@pkDlQVri zHa$yWNM(aq;mVc}d5kW%2%cl1O7w`dcV|lzkP;xBifAC`1}=v)15aHzc(u~MhYC%M z-KZi$IC#Q`UYKBuHui|)YN@nRzPdueJ06v8d2SAi1*7`Ljy0UEKNKEe zlSlbosi}>P!wf4qYI>PUSw@3NS4P`SpQ+65Fu;!%{_%KlAh*LV;~cd4)Nwri_CHP*IMX3bIMc>XJL`GAJ_Rvz^YG zIyZo<@;qTxZdaYX<<{)7N##`kh9|T8OQ&O%5+lJIQNy4U)PR{cjc(hdCK$GsN=}PD z^cAWQ(I#=mOAkggw|nRJU5Y|I4JNyPz>(s@j}aQs&sP4PezG2e?S7QROz!(PjtbZh z=$jLRGRNVrP-W6j*0j{^f4m}*z|N>A0+QMlzHes5 z!={BO1q+;_=rrqco81#Ra?^Qjv-x3Mg#sp7IReicn#uR1Xk)qqa4nlh7R%ItRgkg? zU3wDRB-vc@5!pk;eLb6l)>G75oAEf)UcTIg6AKG!c)q%YI&yZxhTl{KG;d_exv$i@ z{%`v^evZHE5CPxI;c<%MY2+g#ON`)?DybkS<5^I|4mhIou8RUI9^pA9P2NRS*;3V& z$bGd~SY|;yM2B$ihBgH#bA@VP3h^ZWUGx$4G^42;LML7@PVY?x7$=64Jz4P`o6~a3 z7eI`2l=6*H!Q~np;Ecm@n7Sxz7qPt0YxyZsSHw=-B|6I6`pKk>__vY&PYvdHP%9R5 zm<#yPvy72ERC71V{B?1AKmHVi$a^M=pg^7q9K3@Uo^iuYCm7~lC&yyYIS&l8EXVx* zEaA}coSgl_&5m)WorAj}7myo5aEB7}>eg224gmVFM+Nt^LzqJ%&if=Ud@VdQF7M#e zH1XXWqI~5Y)*@*b{~E}y%1`Db=HRT8a&y260{RaNcJ*fdrL(MfDx_K;_bPZ;ZIhgG zc>(qi^Gwq;u*s4yiKtUHDe)egbu_;)%!P9&KTiXi+;zFKy(~wG2+WZ^165(0yfFxE z(kq}q9(zfZ2>4G`SVxJib0f_IUvPBTB!)ZBsgGDYYMTrWzJJFT##46nV)!z!Tg};J zljV~ql1*yPI|YOfn>=&At6)46jW5))Ws}qie9zmm%1L5VHi?7}5f~c`)IDpEvc6?K z3m)4hL-;`!fh|ziw_-#-ZL)J7)l`2t$5+A=gl%#=BrF9M7-^HF#HTn_3JEX;Y-%!f zrQ1lAfOVEWnH<-{BzZRMbqX+@;}S^PDG4zg;cHN#`L4$_<~UL@TjTh^lSV#5ao(zE z+E4QIvg`%Ma@X)ybC#C|klMD|rouHyYXNr&ha{81o13>t)Onl}eV zrS4;Ts=~p29oC(!Y~wYsRc574z7}TTjxoo@5v6{~!qG72itdq>U-bS+W5T6+u=(q) zQlz@qw#d%znO-uP(LMcZMDhpDaVu>S3-Ovgs}XbDZTr|nqKUTaxj8mXscmLGzGFw;}Rw3dr|4GjE0xo^>_!SA^%eEykdh`Qp&8JO&pgiVI}0F)b~P3}Er zZxt5}Qu$|Wp)73j(CCBixl-FE{oosE3yB~`h^aA2`akXG_&NTrqbOc3m|~4#&5i}L zL7Wh$nhGKmE8o?f9t_vx;*PK&2pL<)b6typ3K5jr8b$mHk=L8>iA`lP39PX8UyxE0^R)bEm>0ANRqcI&>#TF<6#24x) za(+V$)&gPQ+;3#s3!0nMzsXS(okZ8RyWD`~T3L3<`Wp)61JVF^jbYca{LR~bUrN1$ zg8t>J7e3~1fU+l91Ny2ej+T{9>`!;so9y;hlt0;raS`%>t*e@C*2@aV+%*>)2aUGf z6mA+bGl!T2N(c(YY()Yy@NPK*p5u_)_LJ?o0b}DB4R;tk9A$Bc-%*s!ROOlbZ<+jk zGo5{l#0$r;cI!4L)xbO|#9>Hk3??vHeYZ_^O-^a*zu#Zhl_XJKRs|?)j+p`(4ZiZA zP3CIIET^f~C5AQ4;N8!&|7V*lc>g#7IXduSR}k2h%AA8XIkeYI+N2&n;uUPNdc!4k zW(zqiGa1m3O(X3+eS}rr|HCHZ+BQi!27AFT_XBgL3~e$se2m?+NkGku1HZY)P}k0X zyHcvXM&Hdp>-#q-vL1s|v^kiHHVFe@>aubG4n+TMF+N_gZIXaxsy2!=pqR^^nxMl6 zO{%rTr%l?9NZChw+9aa%VFyub;>qsa1|O+nKFyYIeEs8J2B6hFeh>O8EEf6r@w81o zri)%pDvL_}ZMKJLRS3j}^gcdc&DR>*s7br!Jf`&|aBk6ZQ|&AqOr#ZUWM>;oB9n4G z2zM!@!B!0@_O`N8X*iXGOdXQb1uOg0CI`z(_LJ>=mgJU2g8T5S?ijRHNSN8d*|l#FI^%|JIg`>=9!(gSE#2v-^aTWaBF+^G?ML zr%6n9mvKw&Ws{X8@#PM%<^+kNter$9$C7>$$wSYL!1TfL^pjnFGMc*u+dVkbfYJ#? zZ21c3S3RtWxrBzJ+Zn)R)&CDmW!E>L0RRBwq5uGRob0<{d=uB5_d6qd7ia-VCfkq} zduC)>oHQWG$rjRJ%^8~(vm4L|(&DtSX2$L&rd{yJJZ+TZ+H=PKG!gBB#-?qYw)TwV zY+~AiB*+GnV9$(A3$%$PLAD{=SemiD3A6!84lQICJXh)NeeRp*x%b_(`y#&=(hKQ) zbY{-~{QlqHXa<2F>tp@*lKsXx-HNOpv_wBhn;C$0X(;!)=IMnZt}?1J0yT2jrHTl3 zyK<505vQ|8tg%KTC#z9I!(~)sCpnqHH(VdekG52Zw~WSMzvA)Wibo-0V9`SXi7`g7 z?pb1Z_vw|w9L&!&3N}F(SPK~e>Y|X%7L&cu>H*rUF;k%@qR_dIfTE%)K@!YvNMT!4 zCKp2>Kr{&Fa%plG+JmL9@EuYML%)8tx5k9_slRf*H?RSfF|UhblEq)%I^+lOuSTAI zHQ6|%-1#%vWb%`0p?}VoE>wP{nO?f&N@iIMzRTWY5AEqt87mdK^kQ$_k6a9vR9{}> zOryo;4rF4eq2_8u6H5}o10thA7)DAb9+uDFrHsK!GGrg>4G7U zXr37$J(Lv>Mg1zEm7s0%!!r~El#4jLjd=f2Uv zV^SPfT|L|)J6|(>+(KDJGoXqh`{>GGAz`xc3ATfsuZ{;PWqQ8adE?)w%|!=WZ<56~ zKE2L%jM};H?avL6sSOV-@fIkE8yJlStH@`+KJ);vUSIy6oHeqC1nh!1@zT6)_Zq7PtWG2n046 zycGVA(R7PF5*Zx4{M#-90&TlQ(sQ&a@30Qb#L(Jwch<3MF`H7p{q?B3Ccqjd=jM3t zz5EH9g<1;wq3Uog`r2?TVOpg)63rU2%@>?R=-+yXj_p$=vpO0Y^}%LS#~93=|_xw@b<7O~N9!dz)r7BZdlj z78o3dsZc}oAk?*(fU}s=goxctjL{8ERE#{!=2-;{q{FAS(h;VDv?*yR#qgS6f_#ch zcE+$`dkvDu6@a@KUwbP7`%Y6aR3!<*Qh;V#Ln-CbR3J*IGS!&xo`h8Qyr7~DHbw!2 zW?-&dc`KHZQUXtZV|hF)+6}=X?`MNl&y+ge2uPr^Y}reFRE&gLFWh^-^d>sm%tuBG zxBMtufSn$Tr*%fR;w!sIPN`NTxPQn-nuxfg_Dx=b;fFzD+QaGS?fd?yMSq6aW(stb zAsg@A)BHSlwdvW>b%Tle9f8Xm30IFnO#n|oO?7RUz4v}qrHHk&;cM*9x=maML;iZh zp0SDerbm*UyRClOyRv6$!cr)A7|hhGt2Oty~ii#`m$wrke7$ zig7}41Z@D!{G*^;-f&(;*UaCl+}zjQ2Z!1;6+typ(jVl^H34mI0>;L*c%nBdt zWBvb0-sBk#?>1h_m)+VpWJcv$fxwAhJUl_hsJu`{J^>;=+-$r(i6M&GBpk}RYHY*0 zMNW!CM!psfDU?i19=wPy@9NpPV=}1O+O`9!2!TH)diP$h$!L;{AI=?0rED*JpI0yB z6eLEeq>4*g3e!}von-0Q-2KKvFIqw`4mdU)rvJ0KBHoDm8R{zS7Y#*x|3My$bb(yr)e{91>>9-a|$`Ydf7jvyfTGluhm)@ zPK;AtiVmV~pjJW0CB+OQ)pA z`4;@WpQyb-ODmfot`U@_B4t#Jp{;EeKoPT=lRn59H8Cb`unH8bM=%vAWyj>=`8*p0 zYgKAZOoLD}Ovti|!jQW1Dp+?!f*T1BylU|AY(67c246~o{fl~apO7b&CfH2?bhvS% zm%ubi7`6?!xrT`zXdCAYp%0-pa{@6rG=D2oe{E|0+&FA({ChE#mVlMy>W^0XvA5uuq#(ie%Ce%y^)z%5M1lV#%h_-frRLR{u`MFLCi|1Q=nH7{R&_gFM`x2#?;avSCOvRcwY_5sok*wET4%_OOvGI!pfd)W9~`Y-uoT}tm|C*rMmBZ6aFU= zhCkxUA0<%g_Wxk=$If)49x9|%Zi|}e@T{82G9_=rVSgGRh{r(l-ejUk3}0OKp9zPr zTi3xW9mP-8cT(=EV2uq6WY-7K0qwR)4n8tDgqrJ>H+v}7H}^33on#Q>kR6F?#5;G8 zfX`&zeD+YFM`=UIyh@{zA$oI4z$5E=b;X9F&R{>N25d6moxarn(n}@$cXr3hKH;-} zBT*}f;Zv&@sxOwVpTDe)LKgQ}wJWQJ%LP}iNrgfT3^7zzv~jm(QA3H=IMzGN3R%0Z zF)`TN<0{uA7K0Gf=7R>wj*#L^8HHn7IW4dVt60E@-397Km5!}{$nk{c0AIS-Dq2a9 zgtU=YB*%%IT>ct}85&d3+NL3zz8Gwra3M_Dv_v0=DA?N58le&>r|8Oxh2eZV6j0zZ z@jQX3`9_lKq|3u`_jR%%6$r5jUDhWw5FcVIdff2(guo&OQNxLVG>G_Owpvm?94(th zm|yFFlAXq7QnyMBfVyE2#@)rB)KJlOFt9*mOSED=XlIXo_n0Z8}g&wq8Z zxbf8Br+YkHw5>DkB?Be5v)JiXf!6>@YQAJ&lkdJL8yVZ86!`8Z{27XM$oh9g>E>Ja ze)Twv48rm<3VtUONneQNCvVMCSWW1IVAtA? zJ1mb9Boez+4b50AOT!EcwBc2xA@t7BtOMaSXNG|UW)wpqK~O`xep*?L2Z~a1c6q2c z_YWr$9y;YN^rsBg`Pwy=h zpJnxG2DZ6oCL6ZA!%{K9!u!f5qt@v8DblB+P@^nL6;X@Q$}p*s2-*15e-$)*tdI4- zk&nK#ts|T`%PIy6^*8tz1WPmV?GKZ~3JMv-Qt&2f4Xexvlhry)qFPU^_MKVLS0NyJ zD=Sn8dXGV_J=ite{yveEVcRgOx4n*r?6}2eAiDE5T`MOUwN{x~psK?^G3>``f#x%{ z$w$RW9Luw^*;uv&qe%ed(;B%+meoLt;@ahM* z^!ClYC~1&VVdMs5-_wz4zH&}B#%3wwPXh|pDGp1o$(I+Am>O88-Q%N)2uU!=^AtF6s&A z1d&gQ-f1UPP0BSdmV@2eyKMx9f`~b4=4W`54CF0wivBeSe z_9|>5^z1pH-L-Ue;_Jb#ainZaj#$Ar+ZjadFSC2b|@+yhtqe zGX03hUJ{r->Kc*MG6g;1onT#WygdD!!H4io2a4~uIk6SzcvnlheE1J~1b4=Wb>CIY z3`ROy>TWzZ?XS;+@@zDMR4A=%b}U7rx%OcVC3TOKUJy3)dZq^ui;c^4?gu#m*9>mD zG?K&e1ZyeKgaEJ*D3C3`DR`viN=Gbmrx!sq(^&735X`aVbjC@i<3NXus=;#a)NrMp zoN(bfsmoNZNxLnQ<(lj^S*=e1HAKz)(F?;2ET*P@+K4u^HNH=U+#bU!_G?aG`0J|1 z2qSRVG`|F2L%^X0R+(wjZ=lC7%ZvZF@0*-K8 zwPKT5LorwGGBC_G1mlzAV&~cOPdv|f)?(VB{C?7k?E{DRUaZjtx%uhR+A&YuJs5uJ zcZq!ZRs81I_ZX0v;0QT$oR~1&64So!%h!k4OLb`G>}C2Cx9nGA(%rk0ogKE9oPx-8 zyZ$uRbqMD{=PKu3Owy{{X`{E)|6PfD;xaOrIT^vFWs&y=HTFZ=pYmMky7$S;@0}0e z)5b*+tD!_VVQPfl4FC`|{pbP`bQYS1#b7)3spTXobRG^i8pjB0lQJ0jaO`eek7)l9 zbbcG1dnbA1k)ZfNx4q(@jTn}Mzu_<;Xv__BJGC0xQ{XaX{7WmvBEgYIs6P+lag60# z&PFdqq;>r%A=_!8{qbwo9>!=MMV2AzuAaaK9_Tt8x?}v}zMvBlCLI4D1HFc&V+tRW zrK`ui!@`_TJk~{u2JSaycN6u|bxaMLZLM#05fkn%G70-HZ#-4{jtfTsD(zd6x!IBU zW>Rw(9mo5(e3+4>4p29@Xsv3+0R~y!fB-l1<(Zk9CQ>;_b?WI<=cIaU(xLlsmZ@OX zLx=MMrf|ecZ$*!c5v*Fa90lr{!U9agjdD?*+O6-2MAp^1%W%VI49Nj7md&Kxjs&fN z_6c0Wa78l|HgD<%0mPi^wynSS;Ia@PdjUYM;JFiE*3&tg_jtF+`L#;9~j%#+fVU6n4|r=1P_X zfX-Wx%Wye_z%`8+*EKiYUOqA0-V5WivoDl!Y&izf_C$NIDVjQ+R9+5J+Ob(bPazIW zW=F>s{OOmDJ8ju0r>h3ZyTF7gbNIE8H=$N8U(kRdA-J7GEn;P{|1lcwsU!PK)2B>J$Iao5 zf57z(J^Be~Z5KnFw=&6hJe*Eg3q9CW*(ZSxG_Z!~JG}*vNHw8Wh-)fV;13HuYGdw9 z>j+%K+V;^?!M3u^4Vi7Ewm8=_34AD09tt&4C{GJmWJS-v{~xD?kM*(szxAn%wDiDx zy9-GI8mRVB_9>_F$%i~6j9}<_RxuIR=3dy-BtXsAH{OU2w@*N=v6b?T48a%)VV{1h z5Blr_BIsUAPBh&j+RXP;j!-DaIE%O;#AW!TKgikzOkx7>0N){u#6Jrn2HH{BkZOq_e-g* zAgn~-)OL2QuXnlPT&M{s)2Z5q6YG}(>+37K3|X`~9`HuOtoxbbH5SUE!!M3~7iXy8S3&)5@@Xyj5yU=zDEY}_45j%__Bqr;8YJhdwpxZHi!=Q1Zp z%}+DAk@bfUI-4GIl|uLf<#l5{Zklh-AG*kdc5rWfCT(`+Lqb3m zYmm4>0**>p@N-{FbV@d@;DuC*zlv(;qK+BalJ}i(^81|vBTXRzVLd0uuy$X);bx{3 zdatOqZLbLAaNJN)!xHzsoxKrz^0D(G`=cd+Pv*q$I6=|+T{o%sI}MqRZ&{WZg<%?4 z6%)0?X!2~$9D*P^ToX6h*53H$$~Ezraa23r_9)%N$O$Q1Top6~oYof_l*YY3 zm|(ODL-ibY48*YdAJICYc;Hq>Z!HXV(bzT%0!Q(sygUR~%qCiR;BjcpW^ zS~}H1$8UF%jDC1#=~gfs$VbD**;C}?o-arrrk{U+8M_&+zxzwsvr}L8=HjB((5qN} z3Fhf|u&r1##U9E~_%u*Try}e+#reP?3vBu8-7)+mZ;qWjcmC`*e)##$oQLX>`lqhh z6}+w5CB$L%3-WEQVlzEpyHz_=3$^a4ZmLn3m{gEOPF#XM`O;P;8qRLrv#llF@u6qX z)ZEI-g~r^A;ifnAP`duhO6KWXnfs!0+e$l8T(#WQsU^gzeLRWqc5gq=>)XmT*m_7wEx0+M1A3*LL?!K-h!o1gI(JB&f-X)(%_aSR8PcK&ov} zM7wc~8=kw(npm5=ACR=L6WKwff+*A1P1QD7&=}E&I3~YE9a?)!iIFC3V`Z}TSS(v9 z8K%;5C(SOG*klwl?7UbMbDXPnM76|&uwOc1wa%4MSZ`P*c}PAPgZUj4iRfh7X|FPg zt5olq2an#xcI^JmFeE%nMxWxOFns)E%aW#}yYL{He!=d^)lWoQMn_8Y8wWb22hxvh zdoPSFd9c`^j| z`K&MU51pS4Ke8>nQ7Sp~vE)W1zcBv5uO}vv9Tyv1e|+0MqF;Y-1sz)Ob7({H2GHup zh#L`_jcoa;)*L>u%_H$GOC0Mu=o@Xrbl}AhtFlROD@i9el>VvoJ-Y`|ERK+q*VHIH z?f?j@dD)5Cphj%SLOoSX;>k|6I6HkJM@2nGZdS`V2NJ~`b=>N?h|Ruk^T-|}W4R3I zGuH(QqXFUV*v6e1aYb)#;FV1$)E&SO8>{g=A$sZRQ9k@|LAH+fsQ8xCeGna2+N}wQ z&6B!?jyDOQA?_~YsEvRl&dr5%gCn4Sd0`-dmB+60zVEm8pTRq1$RpVr)9SqrW_I}W=25qE@ibG19 zZD>{%yXSl#ys0Qs3*Y>C2RTe&p0zXbWK!zvBmb@h_T1bk4s0HI77hL95q1oQqfgxF z<)3-JbT$ll>$uEz3_gD4)jOArjy>i4!qO12@&W6H_%-I2noYDA?jsr-HU@Dv*}RFyZ@^^Tm{Up2B?4rO(X7}l&~coEA*+DeT7_Z!b1W>F3g?JFV{=Ao9n_&i)tw z;M=%!4EJB48M2K4hs5-czHZkuAgQfXz0_l~eWnOKk>sP@MekIU`%8K%XL56=a!9Ke|%h6NjKj;&v{wI%0N9Xz#c*l8>h6Z)uf` z%;LU)+Fx$%$2w;XggdAm?h%9Y4S3_q-qH)Bqs<+E??#LsT=i65P0SSnf9d}D-`&+5 zT8)W|nKt?N{nG!l@4|`Bf)gGSlQ;S1LF=A(_k>5?nYop8Y3t4h#_6oIH1ONHJwNt+ zV%QMZD46T+dBN#tTsh66vuOU^BkVTZI?}vpqni%Dy&INBm-m1aVlAv86M%54{!-Ba1FU}a!Ty$l zhK&}VOZP>=kNVNGale}S&L^3b-(>5e0~iB)QB39R^_{$e;2HA`%Ul0f7tW{I{M5Jy zMY2|+ONzp5Pau&k!$rJj7Rfn|XUL-Qsb*VSt1XwU`M@uDfDJCr{&h&f9g(fvsmqaO zxGflBi9d1~;jRI3e1SHsz`@M z4pYRjf#Bo>&_q+;Y*Ml6Y}>I=O=ZtOP%URbpdyS8!Q4A@Ig5pgH!{ki@BKRI*I^kZ zd0vu$8*01<*ozo`m|-ayFhB%?6=T>ocA`>6%1(*u%u2piD90+zG7Pnyl$7aSLV<|f zrfS`W$!acH7BLoWyy_v(^pw9B+Ys3K&yn6_4^UVNKpVJiljSWyYd~a0@euWb&m{(o z7sg6j2e=b#!OC_}%mZ4I%Ve!$A@vThoG|!&g@}=+F_fy$@XlX6?D0o^C_-@4tN!t= z+Tooo@TY>gB5q*I6NNb6&aNf`-LKJr#*6(mclUyO{)Tgr!Dr3>EMc3YibQ>RC%=Wo0-%e5_C;f61 z?OdfWjS2CcO-7{YpF*qa5ao)z{d}o{Aj}U^InOr3@?C>4d$vM<_?BwQJZj z-MYTdTaNya&8s4(Yx+Cw z)J*N^StZ}g;{_5i`=WiyiTx!8ul(&ml{NS=C?RuYTdCSY& zcTV(op1HP|b#>Q!$3GyMq%mqAET4#-Z8@kFy7JoOnMqp`!uNJRfks*Ove>-!`Nsi1 zNLiO(^>qPNo|T{ZNv<(@i0fSXvy}l=;o>uB6wM}&&2D!VXq1#B{rHMq69<0$*2%X# z_`leZg`sVkC+dCC5a5gcs>m19nA0t4KQvBV%(wOd+`}u|(frg<6`?OAMegeu{_AvKE(HO*5@99CgIruK8oyF&ovL6%x~C5T4-4HxOetE?{)!@%+Yk?ye13X>G$sXsi5X?;W>rM39B<$5uWUdRimG1fztj(caiwVX^H}cVc;)fUHNLTG(Sc{BQtO#Du>I&A zEBo2)50i`X|4v1(Mz_RE?qW8BfGPbjoRMv)?K^nzUbDOsl`r;F>P;(9cnG;EaWFW9%^fz?DiHx?dsfcc*kQRdo#X|V-VNA zfVgiVqa2Ewh=)diCh64CzLl}m*mH$VnFaY8mYo=m!{l)J|)FXKtYZY5u~ zckeI%GM)U=WpMpy$<+7h2Pt3acDtuv^grdkk z2WlvI3e@22g4X)Ni)WDzdDGfg9{H5#iO8#*Orjg+hP{tH8Ao>LSqYto(vd;FW8dEb4M|~ItULuZ#6S%qgzKQ4e`*P|OdFyc6Kn9P zA)Qqe1sNG4do3$QdLwrYZk0+JPdOYQsjz_d^R$*FGo(?dlw}TJIzyV8g>W*MYCv#| z7heR!2<)dt)}TwFu!~!6IW11uw(@#=eyO$USA%!(BAdv;rs-Eh=t;WYlR8- z#e=#ri&{*+{kBb8oZ8H>f-*l8!^PGIGckh)zacuDU!E#wD zVF;VgZo1^(y>3^la{nRMqnqwMJ$fM1QKx)u^lXcVQEb7R`nG6)2}=?$k45;mx3V2! z_My{vf6HfjXVTKzL&rLtOx?rV4@8*01oUnohAJ(fcsDx(Ex-T4L)QXBgP#%Y0>e;w zcGf}*HuKFCKXzE!aA?z~IhGVCuLs$el5tz{2`>TZ==2lbH2XiUQ)~-_br|$oo=^7d zZ@^==){(+QCiJPhrFEa&fT-~(S9HwIk7k$9qY57$ts5K-U%8ZSlJ`W_v8|q`NF`O( zjXUHI94JGx)1|yC4TCNqQRekOXd#tlwIokfdvH%6OK+%J(Wi=eB=1=OBt~FawdK>t zvhZ4!)l_a>?GH`%Ru8B+>)u)JPjWxrNv7(-8;!Zu=;M7J{Ke2l_XqqjdpT~|dfJAX zYEYcY1r)@oDM_Utb0ne*vQSRg7G7R`sI%CJ3Pm+uqc-aAC>(ca|4cjj4mW%7gPBSw zz!}1%EM)h;NU|C96nhOsC4mkQ67>2+RkI-~eD%K)96r{^`d{d`N@{SUUq%6Easq}L zEJB(JxXKm!G)4tXTe;omRaC*-*J!8)C`h(l+n>`(R(j=Y*SucDrXF=Eveui#Ywo+X zrKeXN7E&29ASpI-$laXHibh*VGsuuWeY@H8lnibdAa2 zy0}mG_ID57>bdrTtRX(dbalsORf|IzlSNcS(KhU=nY9*8cl+MHz{`@BwVxi()G}J| z?7f2DxD4N$n(uhzE;~xY;%MeA7ClfZ^JMaWKC{~KimHuW?%*%Az|l?4*u+xk{q&~l zy44*QzG|BKKSJ-<5;;0P%?ulrLG(*du)YYkyqT@9)gLwr2~=3ZZ6{J z`zd#>$iMcLo5{yJE_OqS^I~n=U5lVUld_26wTxhw7UVpy2&_T5#%HB|yC{d8W1B4O z2EKH#1AQ;q{Nc12dyF%9>BNezo{H}Lo@dQao@@x*iDO?4?RoZh`|xOj?N^LUXK#PdTHtoj7eD*iRg*zDxS7jiajdLZF%w+Odi zXC_x}oqX@@rOfjWY+aWv6kJ9CvsjcUFti}LaBhA4*tr%KDq*I1euKN0YHeRL@B8Sf z1gHUd#F~g*E0GGvYB5{~n93qLC2O%^$U;bo+?rVx+5J5=R)qLKPrm82VIm5yaE-10 z6AXi=l#~+AU%DWGW5oh(CVAkNBu{{|)a#gF0b){6@w|rSRmH?js6cCOD6xv0kR5ma zIFEaaUtY7<%L=Rs<1@7yTvYpJWHWSCqtK0`w5ce(?BFe;n9#Ad zVL~NFhH-#m9HLRJrovKhgkoBtTk%w^jIM(I`aE(c52S*c>7WqA=~qgF#pm3gKCm=ahHypt^Zj69$UbvYJ%vP? z4Hk~p-IaO~)?K;h&fj)=JGM=~{cjr2IC%f6Ut~hMR74d!lK>_6VVr>zle+BCi+@}* zzv;>6@A`s-!SJBM9%#AwH~J4Vj<9R|L*;3xewQEIvn)Eh63u6_p89m)Uz^qTG|-b| z(iH3^Bbb~@O8LNZkKCQHFD-L8o@7x~Yc4(YC28Z6OPR<&w6^7`Zv4pOL?BO(%t%FB zFl8Byxi)nDaf#o@)MtiaE$e3tuV=@Wf8v@D`+%3K$Mv3#$&;yyJWrEvJfx>Uz%&12Bv$Y6vV`Q=|aK4~3M* znfSoH3(^3;{MFshy{;zAf`pb6l0!<63&8DhINttQ#ya<_x0>(11hu77*l7In*sgC| z>|o!%xxaTbt>}1d+J>(@{6mHO{Eh$jsrn26H~(|4C2M zW3R6c)#dB9*a3|oSYbhC<#oSz=8VSer?$=uDxa2*??9c>M_a;}{EJU8HVrAarF~oo z?+G}FKc=ETgTNlrWU}%qUT``~6NyZ~+_8}EY|n9tD3{qkzH9H?)zzPQ1IK4qwBoPro0SVX64~1^lDu`z5@P&Xm&=k)xo%D&+iW1=jXhjg7-FPnCU9F%c-U zTW-P0S#`X&9D=|&rJ25VV%l$0P#`pnzzJZRKq-g}aU68{1oUH`{8<0p^ruJ)!gZ({ zGYwHwaRcfY3K`>=$jbK#vO>g$Dts(QAVCBXIV|6MTMCt!Dzqn?Y?zJDcpd15i_D@L zQz-kcd%+z-4QSkN6EU+q7 zVIl?_Z@+Ncwb+}K)*Bsl#}_6bndjm)Q%6G+1To2g^_g015$$bg11c2E!=wYlCufdR z33sWxX;^$F`MMqNIPlz#PmH4-9fN#F@*FCi^_=r|95^CLgM`nByE(aJlgWMu<=M<=s4*ad~iC0Kk+nE5PD-Izc_zY1B5z^7oP~Deb6*A6zy)k@W4{0T<41oJwgy*jxjfy|`No%Oj4Vc*mBF8oj)fdg} z7g*C5r;8hiYz@?OP^^1N-yOJ&p*!L%Dn0}jFa_X^L2TLYhgPXn+J2MX=7E)DfawJgtK_Rz>|~HZ=1> z-;9pyq(U7+$-^@F$l$3+M0(6VuPN1vn@&o+B=x(L4IG^~jLBu^?QUX7)I@_S0Ypr- zRVPD~JO#&hddjJ!#_)2T*H-0ZQ5~7C+Rok~FCy_80~C{zCynxKGO0}d@RLD1%hFTC z5Q=s389JcdXF;4&1np>BtOv1I;&7s77MsdJ?v47Aq~AK%(fqd?4zn@?4u#}^mU#6%Mf>3KmsXrue?{`gcJun+>d|vc zMu{hnX#J9sgoA&s$>#KpJNHCJJxcQ2TlnnB)oJv@$KI=d_Q9`wPg(iuk!i3YWhJ>l z(VOV>78L|nX&3B%b2Htpva`aU>efkmb}0tcyDged2KLlRpF6x`Q2ScBx+Xzg)(86+Q$`&7d^4@ z(dU=?eiln63|z`jtx37Lf+xE$Q;RGjwh4v3P$*?;K*3wC$%K+|G-^HjhcQ=oeGwQd zySxskCm1g}ZUydJG)Y~}*qNpwSJAmaho#(cN%470D^scolJeNHU;Ruw-r%$lLVV-R znKE9#&`{ie|JMSfpgVSy?3?&USvSZ8J1>$2I56~$VUi_dih|8A+HRo=A-3v9xgr&o z)u3YT@VfFc&QK5-MC1CYgJbW-lQs2uL(5k{>K3N~MBIVeXJr-~Q6gdZxd92r48`G3 z@euNz8tpKE>PW0oS=X(0Ri#9;htY8gvt~tRxN{dWP8pg@HE)+P4(70c<*B)=@`=_d z1ozpHZrFq_Y9gT2Ze0gLf6&`5l=nuDh(Hyhi!oC!Get~Msn%?1Vg#$_lYO>j6o$CONK{TDH(R`vwQlr2&+Xls$TtOvh&K7 zy=QJe_dPK<>-!?Kp7Lk;%=IIKW1F^?bDx{u?8yV^FMiEww|o1MzkWYKEI;qW{Qt1# zBA_$hrRtjR@$9?t6DC!9y*7cC7NetA7S`}FXOg%!$q#X>*Ig%hIy1xHK>}!B89@4& z25r^V_pWEl_#D4qMeoyyOBSR5uDZ& z6LSI!w^+J50d0DBlco9~oYHS8wHj(s;~Y0pK>`3pKu(yh;gTX_t8x=-)$S%=uMh2g zN1L~XMa-sBAO6>2!^iqq|4aP|J`W#X{m2AiK#jmH$N?24Wj2Js1R2yaOz#?YZqe%XQN`|p%CM+VcPitBf!Q}A3T381&J7;Sk!$KIJq0M5v z6>VEI%h4RH-#;@yF2lL?edhZn4tlRPYUZJsJe&U%z31dp)=kGIPh+)?@#dYcSu}2c zq@!>d^i$>3J$mHa=zkn8o(V5G!ZfEhE)y-oGaFgA^u65_a^c(0_p(9SH)Ux1YP;Q3 zq6Cv#zf-S1UfrhXY%BWGw|+}MUab6FXs>x`)0m@WG)$usa&~Mrev=+8BKs>pk4(>6 z={BE#f3YA=8#}A#_r(fe=N%8736CBb={C7T4!i>XGbrk#*p)jo5#%zANMpt$c%sFB zsz15MR|+Nbv|r4}3_1Rc_pRrCa%=%WpD0c=auZbR{`KF$hON+Xz*-g|g;qRI@w=CN z#tqc^JR>PCIWO@n?n&3PZucGCJJ*k}$Gi&`&8Dq>gnEN`@6##oP=WADxNXLxW$9V% zoyzHBN{Cpj3r|hp93u1e+IIAKKDl9vzZN@&9zG^SldQM#nT>5PJ=?h817(mUW5B`y zi{Q3n$1~HWf^;4p@37Z>0~8#Vkl2O5eOeWaI}{E zhYhh>OIn8o9L8#ryL_n6y&plK5kz#7OB*zTqB8?d8AqnY5~j@M83T(WBt`smszz;V z>~`q>GEZj9+yD!FqgKoyQ9zJ5nioz${GiU0a{vzU8mm)S6t)Y58nf@v4N<3-FSOl~ zJpbd(-?VzRs0L(e0(L1dwHZ}QRf0hbW!{`Y#KpDD)jp#%1gy!)W12Z!lIMo6-SOR% zjT^35SLnc(OY1t`cE6dU9XI-0(kH3dwn!wRXxZfGpMy@}3jf|13tp*P9bcCzmf)sh zdUpT`Tn+u^abIj0dZY^j2k$(P@kqR$G7gFYWtNG^SKN<%VN>ne*S{UwP|A2TE3EH+ zwP*h*rDZiNkEDR857fbEoxb_>=g$qwyp-~apm=nEvVY`uEk z=lwmu=l48{&5)l4nNvNTikMVz;47dQeqeup6cWaRN|_CX>)D4n?7mlElg-ML;M{VeB#m_32_UDQe3hN!tMG zARK|Y3<+zb$Qkb&V-!*H*#UyeP}Pd7eB3ScU=8&oII%3{srI7ktGV}k{X|5(d-LuFcTk{0^G4m5{Q*T*K~tp`%df+=PsX2+nN;s zl7wR|{pwdwuDZGO(dU*#Vv+bsImyQ(BB0)aBby>5UVr({7l_3N^ZvQ-y-vEJJp6Y* z+4PkSbc&9D0vc!%0`Y(j%54WfHK?LuSC67I!{N*SkiZY$`}8GnJ~htU-gt^{x_ofc zZ*IH@;>-3q(6%GLJ(nv?4^9YpTq`4f_8@w*=?t}91}|U%dQsQpn|mFq+ggq6KN4Mc zN7FCpOILWh+IIEcRpV<3@UfGz!G5QVJJ-k3UdcK@r zR&D*!KQ#6SQDA)HXt-H>NrM@7S<9HHM~AY((SXV0I0m7|5e-xD22ikL$Z<%PV2P0$ zl1Z(=7RqPJWxb35@Dq47CsJ5FR;~rZxD4NF8Ab?dB?z&Y8?NK9 zk3KKxqw)XS_?4&vN>eLjUy@A9xMY;>K%*2lt7l$Jmp2XDJ$iV^;(4B0G=iWlnVcs> zuN|>F^2=J_3^+VtX)8a^FRa(ow_TPdd)^2rLMX&2sUOazcu$JtG8=d2KLMP>;m+qYBB*3cF<>%=91Djm$+ukbl zC|w@v-wHrTQL1kQ-t=tCBw>knACVW>%Ic$>YQ^^gHdl>e>w&ZC-|JLZTf$EBI7vihMT7uOVU&cj zzNF^6-Ytn`(aAh=W6+9Nk@(JfR900i1B_1%(h-E04eN@tL6cAlSBy8yh?LA`6FHuD zs0h$SDGsqarqhSi-cRi!$r6>B6!*LhHyX*wLxc5qLfcoqTtuAi7In_cxq5+^! zgX&lURiY?2+?O~b!SeS~3Ep#HQY>rqwlR<3BOtC;ZKgD(Q0?$s0yE1=CR3(kvP$$# zEpxjFkRA5|G*0Xj>txU!7vdeUdO4H1BnrOC{D_lIl}%zQ1bVF3+ooD1mH~ZYvg|5l z@3=7V3)03=J=dl%)wis&F~(S?jYh4eBrwwH!&Ovj7%N-TQ;BSip+3e-rbEY(k?{7s z+e7ni7!tj2oP2HF7o(V$EC1T*dn5EfpqCnYfWGUij}zwxdI8w<{Oba=2~GVRQ112ANd0O@+i|rtT;AxbCq{TnMPIj(Pe1YdY*W!^1<)F6%WA9 zm8V4X?0a`@S~qx=qJRJC6%q94cX~JXU95qXHYF$f(2ngZKaE~12lI8s;17sPE23V^ zo2<8npSbJo_|8RkXbDcQ%wK*k06&1=d#5e>KgV-p2>s;>J%2+<*MHj_ZC|VcL_A$B zpO(uUZKLu9kaxCc$0^ENS=aliz~IY0gKjs}Tn2q*o|EZ*cRyibvK_bRwOM;k5a7)l zf0Iq%V~M;s^Rq9K@>iaV!tF@eu$>|%n%!m8c$S;&K77xsKOe+=zOIzo$}k!m+PGJq z81a#*+GPjerEh+2Ao-(6p4-a6B4w8mloAEG6(4r1H<@Qbk>1+k+S%z#F%J&+It)Jr1)gqx28^Qx8W!;R3ID3d*AweKE{}BqG6sY7# zES$kHhC;2#LQ#U;Bbcr=6-baWqjrd?DhGv8u=D`Vl-0v*9nyj|^Z^xa#u@hphSE@x zgrf33kfg{e9EuIHQXaxHD1KlDwza!O>iqj>dsnTCVRZW61&bJqr)q46ty3|1&9}uh z?kGhJUfjAtgT{Ki!_(DEeUvpGmwHH{Ve_Or9unx3+D*iLzSZYQbgA|z99ahsZ6XF} zzIW*Pp}V~It~xc;3kc82=LfUp<@q#-TshgxKz@_f>jT_1U|lM{C8Hzqw_7^SMOYWP+9M9XyenL`RGG1m59J&78DSl*ay>qpnj=~D2co@Nh7_e&|CZQ0`0i%y*Z$LO=0aPV(0?V|qc zPV0I!^NYH8@8`b}aAj3)&BD`*BuRApmSJJFzTT^#8I|=_5HWl*KAm%_3}PQ$0MW9O zot$%BnHcVFj|=1xj0I1bO}bPDKrv)7(Eu>aCA zamBHXGh%D9;9i!Djln%JaDFO!1d^i}6nj;o>h)S1xEVxkNX~4;ARMdb%J3Nu%TULI zCjclwZh#j?W8f+{T36ZXk5OIpsE*cxtcOcX_9^gu=M=K*uc{nA8Xt|n z9CM%S76(?oBlOv08C+2_3WigZEaJM_^TqIbICfs8JZTINX~^nm?c*jb9pfD`Du~Um zg8g1W1L5nnq2ssaFm)$}Rkgn1^bvG~cgY};l_`oMGVx>^uEuGLnups22f-gj8{0E{ zcW(0&%W?M;=yOXN`jmbQ$GAxqX0PS=9Au{sZ@JczX>Ue-biW7g^I_F;J&@gP&giQb zTEK9FZ%uySu>yk0+r!Px8PoJ->eaQ<9xd^wPbN0QebuF4`H=i>8f2lJ`e!|}4VzA}M2T66t4e9Ru!bv~XEp|4y4Ne>0Z)X(~$ z_qE!+3oZI~iPw|1zPwDQWZ&jOCI>pktW3u^!B+LUk$>P!!WurzoNbD#N14BxMvAMcnv!7)n&xH7-%K zZrO_JuaSYG#ujv!-9I$-aHZsiaKViNs`^69_92?*0=M9FJ|-%}CUS`iADws^w&;VbZM@T83F) zh<7VA52XkkI5pWu>ag{+g`0(B*`RKi)kbrgs8KJuMawPR3=q)Tgi+4pis z;#3yKfkm>lR8^A<>O9g`S+626Xr@q=^bL-)oYXhvTd;Za`7NSdI_#Z1LXs27@gFrU zw8pO2?ogXsk*#YjU!1RWBa}Upag9&?-LL+v@SeC@$2NbGEaInWkNt{`u6#R~FS!o}3q&jI$m5 zb}>({{3^*69@cZiCSDJwB=d!kq9K;VmHPxcfZNbJjj?^AHxkSy`tg%qr&bDS) zh(GoZq>~q|ih~02<&-vE&&MTiCN^>7!ME?sGz?!va6R)*R$4=@6b(DNKlf{k%(v{d zZyC#w)MlZhE$T~DHEf*#$iiE~k)G3)X_{D5c9^@)d7zxCvEt!{b#{y@Q#AX6ee5s` zHKs0}Uhz-lUF*I?jf}ukNJfNpJ&7Y_h&UC(W0)67WH9^k=og5uMIi~YY{4jmb!!Ta zp~joN5Q@5p*U8Dz5eCMR3QERgQ3NonE|Y=fOb7uY4g&!Bs;{-w5BxK)qnt%apMtxW z)&A)12>k*bh$Mz+&mX0vg3~~DA{0+h6hNGSasq9O=muA5Lui&?mGQMgfrLkEEORtG z12vGj$%%}h>N21Y?mHm%X>M38RNI%fup=zw#z zaax``0jcC@&cc(@gNH@t*^~u=GRBGIs zZN=r_#k$&V$m9y*%QsXJLQ^`jpUc268iRe*BwQu~kBzHtZIi?4Fd zT_|WVU)@s=D(|DG;(;b+hjo)WFYc0u=-xnN)1l{7nEIP_bCftNo{-PY8(1}O@k5kI ztOj#PHnics16}?6qc7%M=MVa{KaQ&er069ed2N6fmm=fJ>o2zbeg+frQATKYPK_xL z-JbYH-ZO8a@=f6PKO{KYtob%>b)JQ$Jf9u9bSUue$9f}|EPOWcvy&8f=l#3pwt1ra zNT_Pj)mm?TimGHP*B(STGClF|r~-ZB#qBtFaPB65FBrhT{Ou=j$&s>o{8;znYy*L2H9c{wjR!q-3@&b4U5Q|nF7%f^!h00 zWOe}+O$y&r?|D0UPPHB_JwyIsq~w2d=VD-1AAYmh+MNND5IOF+Yeqi)&w1T;2= zQi7JmSs>#O4nNV)UF+a$lu=o}MYX!mufUf@`&|I#PyMyU!$;$z@n-`QDSBY;ANS`O zHkko-pc4)Wpri(=BO5a+bx4+{vmPif<#;)cYZv=692;y!lDgL~HYk>YK-|LPD47I^3dHQ9hgD}bXQ5Y!*V4@|4d*GQqcFNm-S==j z`)(o=a?MruE8oU+wbXVN%Bg9YeufgumKF3>Hzw?f3D^MFM@H=qF$%gc!j$`A< z^r7~@eq@;+zK>8gX%g)oXUsA8edA$m5XKC81 zI79O`bx*#!^j$n&m+x_t>Qb~vw)q&}d{7B+e6*R6n=gW2zTo4X)T)z`?E3MS+MFWN ztX#SKiG@7w9j~v2iM?~>gx_&RIY~tVcmBBl&=Kx*hu5(+j8z{hbANAbqf5O8O*2r1 zS77n@c=yCIiiIc^H9k+Ay+)l0!Vf+W`1P&jl;{p-JAm=2kO(>&{oL0>2}P~9X7YkK z+V}vh{n{Zp&xjh3?T6y!j9~OIf$`rcw%`KDv9SH*72kfBWko^50i@R& z0D{%3{+iy8Z=b@BFW53Eq9{4_Kh!|L|GQp4Jw!Zn$Jn=5rya)I0>n2N02D}wH9Ahr zY^-yFhAft{kLTzVY_U!^3)RW}t$i)R!e7svMBtxnLg%b8?mFRY7 z$&`w0VUo?*9IB=RAzQ}oxrGC9!`|^SA=5x|=-yW+fAzOeomZadiZwPM$(CsLe)`wr zvJGWZALCEiQe8)c#h;E%`dnad^*4z-npUPN(|Z?xO|Y{6^prIn$+y4A(@3V561?aXWUVxnK6>mN?$0gO{ zSk9TUTfK=~LCed!Aa(oJ9Kdq77RL9sKOR`J?Ox?A(fj(ZMVvu9Zm3_}_&Y$b+0XrB z0{hj?p`_oDK6|#QX~6z`&w`%*;UhM!D$~(@dZ8K(;2|F?OeLgf=S0wQWM>9 z^4M{b#32aaa;99%7n-^5i~9ojUP7iH%!(s50;hzjIFDlQ6{{+hul z7=rhva+w=QU-kZtGnW>)CpR-rnQeTRY{u6g~E74k-*W7ypKcFiA<)_qt&1=8`p5xO9jf&1( z%@J9wcO?ZeHs-{s=VxYy0xL+3rU_zvPEdn=HFwR8tlwba>3Aaf$`+e^!=J7_i%2K6 z6@$k6`K~tzM2d)?J!k#Qm32R_qFwf>F0U_Z6Waw`Cy|6{EO(0a1F#stnl_^vHb3T5RMfC!CN|@9!NnX;R zzHC{1a!O(w<{w?QVrI0^W0wj?84bepLcymhP$r}EVYu#il7T`vr^(z>RSU~W8DH88 zVEH_7vu;6SxFoFFvp&``oE|e|Zvd7Q+R}cM_wZli_qw(iso&K-) zWiYlu!|fWR*Zl4(4YR{ZM(B47?qCjz_qz&Aiq26fS0?*r2-9g=20j(T@MLw>NIwgb z$Ka%tq2TavrUMsufT zne-$GZ)|c$xx9#`pSxpmFYXgx6YhVp{+xfP>E$f_w`60?VxPP8JH58Z(93rZ(j!uO zl^9U4iT(;*1U_{#@~` zs^iZ0T)&Mkj`+@|Ei{u~uUKO1pL~w$ZPGTC)0g6DPb85f`+a?b^iB<>hnxNtl?f~z z_gaxew!SBs5rn7bJvoo!b7$|~)86*4V-)o%1zS?_zU<33(CUIDzvefl^mNAvNl)*{|={&N#(8FO7b!rGB4>80RBlFx|K8Wo-1 z%IA?JgzE_{5V)nPYejR# zhK#Op6}xXn<&PqoTc=GZiJ%}ED$7(Cs&(q5WL!@Jlq||_F_{#RdPQV`22qMAvd!Fo zh=1g<*hsh3lYF?NJ8iLPcuvn&19RCvF+5}Q;9?xuqDLqd+Pe?we`TM0drA>|5}x{Q zQKRE-YbH~xA;3rJm=q9{b<1@eNU~2PV-iY18-m&yhrL-FZM3DtL>zG`Z4@}BVr6x!DZVKkS1|jq3Ihl@OX+}h%f7g z#JEr`^&i%b2r+kswohcSsxpT%Q73a4M6|`)5=5%{dL@!vOHEOT#niS zhSiF<{0*1Y>n;3Ljn`IzwPq%@Eg;KRqM2-sowg~gf685=4 z6@Vp5p>SLRY~jRr9=N#1>aE=|9Rd)C?KmECEYILLqQ)+ylJv!9q`w*03mPqkcURVB z8W=k&;iya%JLftk0V`q%8KYE9K~zzW?da*E+X=0@Wj|BRwpCpLSmH7NJANLB_)jdv zctVeAkf3r|h#FOj>S?=Pfey;6Mdfe8MD1b+j1d!5TKZsK2@ z%!wnd?xnE@X82{_Vm8SjCK~Vkrs9DBpAF4va}l<04@4+FenkmDHwWh9d<7kgGCnO{ z+t!G`NBu-Od-;IJGkx{cT>q~v)zAFobC#dnf8Q%>+c2ljO1Z>pw@*8Ms6oR2&OU?> zP?=5qB22}3kg@gEpFrxz!JmG#eC>SDX5BG;|EDtT6kK83_Hv7B#ZzeiB;L_pu$1lS zapus&{nsARy0CUI{qW|oS9KDJi?3dRmS~_izml4tp`#;U#R9VT++w2X%S8EnM2PmJ zCaW1hsrKkE|F(i~O9_Rc6{R~41n5ZCDMqa}nPjQHd;VkS$YkE7G}@rHg;i2Dl_5|W znXYmRIM2MvAc71*b_K(My)Zhy^Nk*LYYc?}NvavUPITIG_b}&)Igkwk-h7~$lh2n` z)oN!#jHY6gimE!GAtvLKF3S7u#-}f{)mVcxB5iFc zBzU5~zJVYpoDGfYvQnAqrkpd2kO%*|(&3}=(fEtu;5YRK?tgZQ!dN$jW^|s`P+V5* zBm(=;no1~3!(DvGIFEM=3MD#`c0qRbgjARuw}J86mPv*ihBrv)^@(~FS-zDle*@+{ zY&tIIvV1$u(4w7J00~c@`23)qzm5Sm#n`>R?ux-23&x1DdWfP#870#MrXIiwIoLPSo`kl$gd1C9$*7yDxa)477J1Q6 z(SX9%FBz9o2Oq-+?xMht=QQ>-4sQD$A=NHG-?q~?p_P6*eopz)%s*VY0-XMBbi{wK z7w~|Oe)7p*^np+*8A&*q%V5b#{1l2*dK~?+#{Mp%ee03f_Lk|N`Mp*B*_Laq=;^hj50Due zpn$pVg( zD4x0G2)0*4Av=WHF%hARU!fGCegsZtG8u|;E1I6q?e^GyZg_d4MX%deV9gy#8lzG; zx}JB4iI?fIjmR39ryR6u*@q%Y5h5kv6U%nEyO7aB?p*}Pd6MDziAjY?<^}<1!7~sz z;OXmOMq>8s`_vJKvuu*-={xbzG!R^I#nzT3;ADkU^x5N}O8u?;wWvET>8a3rJ>Q=A zuTNLy+{qfk9ZFVH?!8=Nc;-L|&k%Xwp(zRgeyxOe^$e!3$82(iv-JYR$_f)JRD$}6 zD&PaKuiyrd6u-Ij;e<;1q{Hb}JqPo>6#ZDB314q{PkQ?WPt%aSDKP%0wwQ2u$yf(6?^T0UevhA~26_P<8QA7{c_)H4a(EPgOe~l0AD3N+`_ec? zr(=7G9$ErV0=QcKCVtcX@8{D`<_DK{^*+!F*8ViLCi1nehuU4gegSL(348&%|9&7OLTQhJ0Xb)T3hdvN`~!nsW;$ z?Vfr-A>W6f-siLF79LVBxNH;`^nl3)6i<0_;Z?xX6pl*$UM3F-EQVmC;{$@l67!KnS zswe!@EccC{OAd*vFR~A^yy#suIui-$w^61TGyct9uPPIa2i-3M8wyw&I@0D zSQQ=FghfGldMz$hDO&k?aA1VRNqiKp4_#s=ld+5}lX#2)ZrPcl0H(!Iv04UNbG3$@ z*ou`8tB8V?BOt@cTQ%9PvfFnGq)!wKKFo|Z^J_;)pQVM4CoX{}`2X`|oTm^c<(_}h zB2#v=i>p~-|NTM&3iU; z2k#F=Aevv2*(68ad3_M9Sah#*D8A|SrCFMe=fUK}i1$=L+vEg*8sHg7BLyLiO-;Sd#k$b)cNJPCv)GbpuCdR+dXNo z_dW9^0`mr^8lEUWtvDHWFmHKtFPm^gEytw-4+~)?dC2W~Jo6&K=QU@=W@;=?`JTDc zGnm%SCSsP8c3r}ea!bexO ze~zNbtj}Yo2=`dJd%>J#$(})lvHj|ulx8E{y1!`vMq@RA)+rlR?23~fiEkcb(|UaY z9d@^mQSwB~>URZ*@Px0raUZDJ&{sVo9lwy28!*yMWtU%Vr)3m@MK^L$a?gl5leKP@ z;nBVr-!=!krtB*)qRJh1OjQ}}bXBjrDM&*lVG6m3&ulEfnL(#w55Z+YQH13UIEG_M z2pYEIid&nb!IJx!LID*`;*F{cnW7*Gp(y@Ljv~Z3YI*#xtQ|fYAB{gB4nPIANq?-T zlm?*KGlDE?D8!Q3aS(*j17qzqls&(7r@+%}u7-$v$)q&OL?taJDgCry%{6i-{-Ha%kzKiBR9ti9yr}RS`XVpJ@ICE zVlqc%_eoXdRfsJU6zOXiw3tZ9|vXFAdXsJe=iS) z0508J1onv4=KzR+CLD?MCVD}jMi^MdB+3dDL(m&Fit3sZ9~qQfIPMm4cR@{g1e+*7 z9>X5vozKIAyu2#!#BVmGm2CO9-9O3EUtp=Gn^*ZNi!)ujdJcV!0v$V&qoC%oUfaGt zChduS5-zDF>yy)1Kn|CEwcd`Lf#LhCbq`taeSw`3?@F=jj!4k8{o5P zUIrPS=L6{nPEqR;Cwcs`vPxcmQLVt@gB@6R`Wy4g7_v3g(^h`~VC}zpwqx8$PBp`+ zyf1d&C2&5s1-(Tljw6{tXy3BsRj6Hqp{>j13zra)QA7&h?(6x6SAQ)i>A`)?D1hto zl?1r2u?z$#e_nP>xmtQU=qV11s40SPgPi< z*!OR4i7SuJcUV%>QE0LslIt!iTf+>wVP;VcldM_)&jS3FV~AaX)`<6bFY)h;x0fyL zhystYS%PcV{xd`nJ0h>GyW{Ma8m}+^*mELO+gQCn+22=)oOp?9@I-|iDoNP`t_oE?J@xuI;5h^ECnf+vC(uk)a7L*vRL z;O)gPtecndKjA@>jAMLp;7nWl7k=>tx#@=XjUO^ZnMI;=ijE7w2N2P+l>W~lb-EXT zK$8QCM0(?Xe(vk9v-0SL4l4s_3Ztp1(Rd%~m|`p)j9Z?B!Me}imx#ac+T4HYwLK5F ziZeIv^KQyCojrB=hw3-}HAnmQQ}pGlAX0-h^OW@|=T!x%lB1PmyZf6fYq3mgALq%FaI|}p?8wmA)F2ek_gsa?K?>f9 zFQCL6*0L@V8@b2;8R!K;ee%`;NR%X9CF<(JR{838`)n}NKth_k;lAU|5Kv&Zx<*m> zR3)hZJ5Ugmk;=%GU$bc=ijK+azOhlwC~n{2A}$h6L>H8L)hyv2=L%|mH;jNJ;U07Xt4M1U0M>?P zN`cFy3;i%d#wHI;`naVV^n!eUSo0O;>{l>uB<8DUMJSe(Q6*Tu6>33|KI+nNENe## z?aMWQ@AtVmCIr;JIR#lxG8vXl)>FRR#2fS@uToEZFYb@M}_SUPPGUZCtT#U3;T< zlmC%L#Oh=D$8i6OOUXO@>&Z>l*TWG1v9G@WT{!{*E3KC!2jjgo_${+&+?H{zrKmuF z1_2=70WzE3^*G(3jx}^X#vkr)_b#Bnx^n0Ezx=Mf3YOd0&uzPB+-7G6bE6OE0sG4t z%z-LQnOHaK)F_pZ5$^tO|KEKJOFT$o0b~3$6MDVwSLsmIBK1CbSbQyb~4?RE%iMhrmoC=?Xm8NV>LA{ee)Ocx>Hh$ z{mggcPAf*aM7aBr7i1iZfTeFnB9TSZn}JB2kZHVk=r!`y`74eE=BLOi5WT0yn&^MH z+XA>lv6Nn-2;H8YSp-0qyrSl=gO@H)6iT+b&)XXyUlckFOG$REv8lZMc6egAl{TLPkvDhdO`B&n-FOUZV{9`oL6j*vo&9n?gxv_UG`;R#K zq5Y4{cVD~@Uw-XIu)S(SZik(>ka~{ghzisd4D52GDxKE{Z2or00 zrNeunb#Lpq!v6k;BAy+^9BP$XQ%l7wF+?SyhO1{kRi;rHA<3f%?*=vRYO#7;mlO@k zu$=*!YRgM6>Xwx&ZX4MOJ77k`+3Ui0d>@dHlna-I5xPvPK9m9?iOEf zudz8n@(X_=h+zES**mc%@_;{*Xure!2tfbh_j0e17v#vt_ayj} za|y5YQ?Ap#G>)!Z^7>i&?Ep0-=bGYfOYacA#F7l04fr=bw(9M~dNlsHwf?7Lz*XpI zxmqR=UfI)v)4ctVbM)Gr@htjormA~f^*y`@5Ze=E+|^jF2~*lYtm1ia=9m60%NEY` z^toFs3Y@8K-cjc47I+1wFlEq6F0c3OBQ$)F)3W2B{F=j{jB$eKrTbtM+Ca_li_XW_UQjZrvJu4=oxt_lSd}vcITI#P5oMI>1#YXF zS$=GDE>jIjl<}D+2yS;T@F{6st7Xn;fU+Y%h7hs8?YFz~SV5+sh8=8M%OntzzF6I8 zLdMyp_nwRM*2Dw+Yr6EsMZZin4fF=GAU_az`B{x>`T@<;yl~K&MD52?J^&Pq*dPYW zM@Y;r!pdA;1ikUz2rUAhru}|ESMpWc?h{a3sdqMf3Mbig>Tpj#DjAm*={+|{xKiyT;hOU zehXX)5GQj(o+L4EKx~43_a>hX_{mjg9_4-OhaSJ_`1Egy2gjxw~u$mfUY zo{DJ+@m0KeD;bB3H@cj7^o7Bpf2b$%@GcA+8IGsA;9)S+Ot1&n%BDh|= zOf6`Kd4Q!_M+7B_qY98m&(CQa6=-2n72WPoe?c_=`=7Kw=d zb*}|d2px+DZuY9Zbmn!Opsmz^-w(YbQSt7!wDF6V7-0p9Q^??t2$Z8=Jn_Vd_zRH$ zXp1z_5twT>Ss=6Mq8pB>3 zR+%}6-KjB`zAhYPeNcUPn1d9iignuy{`uiD7|`;w^WnV|64>9TgMUgR`ZMm%01TPk7PDvE;J>Jd{h5hAiNe!-=J*O|$= zUB?FcL2h!_{*5o4Jm`2_90GwD|JFFT|Sz^kM}mM&t}zurvJzev=X>$g-Fu_ z0QU!a2Zo6CZ@(zT>RaSni99q_WuvUkzUO}&_!5y+I18 zt|N3eCd0}ORCPJLxGd7RNax6Zn(y)0yb>7q(N-kI71D+Ago~_Q(?BNkB*Nm?rx8VR zy_LEfi{l8zL#P~gj@Bb8D&TUge+2M0$sH?@GA^qMpj45B$^cw|-~u{|KYX;F4aqGS zs@EDM3PAY`tM)4Z;7mOOlGRmcI0(u>^I(VP9&n4>58Rwvy7dykM)1+Pgg2)pynBXX za;_I2h`$gg9*b?eBil6eTGQMiH4@1}SX0x$UspPOG(H-CF+%27rn8d`GqVR+*7(LU zjDCdC|8N`=WLQpr$gyGbr(J;M01M1BIQ@nCA$B+Dd|E$~DT1KY=|kI3qm1tZo?A&rTSI%ufUu#6b|dx=5~im)-$1} zbwju?r$6;HV0N>{0iQt3F^iH5Y!*)Gwf#dEAKW90_GYSMqdM~8xb-daLm&o z5H>6}o(;21Fl5-f2XyYy*Q9&Hyr8jG;}!Z}rZ~|qW;fSqt`UGR7t)Q_*Sfn?zpU<< zkYT&NbYm)g65Wol=?48AbDrX4Ahb(AxF^VjLD0Civ9O^2lkr->0fw1ft+6qz?y2Gf zux_ z8XnWHW_ZxFz%bn06T=R+=mT>q!-Jus6ZL7#OB=JW!C=uK-TkJ&ie3*D4QEY{GNpBZ z52n*y@~xtE!Cfp@T6oFzz&O2lN!GxmZkyq4&Rj*O0ngGtnV4jaZS34-ESWQLVLnq@ zf-z?alg6?_oc@<9!ridlz$C-%F)w6ZI8+3N>6)McTrOAy1PJNw)_wkAOmfC9am9TN z8;dY34TkiC1}2RIK^^1aU}!fN3hoXwCJI^8JGujlA!9t?z|$rGjK#A$9CSbH(=)pn z6O&8{2Znv7_t;rXc7}?WG@QwWKZME7uo2ZC!laIrkO?Rqs>XJIKn%go+n6+h$(T79 zEV@h&laRSl#VZnJNi`8Fo?i93rMTg2pU#$0AFs9(~!lHv7E!0Lfe48{**(!gA} zxQ+S?g9b0mVsejhlrtO>D$X7<-DA3syKTHlBE>B;xTpAozOTk6u*MAfle3X!dc71C zToGMnpn=&~F-`jxQ`+2FA2A<%Ga+OygDG7}x5a#6r*UwWCyN2BTdA*5cYP6(#tLsE zrxaPnY(-3(o+w6+zWqUcPHs2L+}@^=O^g}1=CVL>4-Hob*<$dT^D;&(aXP~FO=Lr1 z(^P#I^anZv8}QYE(b*Z|cI%jAgC;%Q#-vFaX5k)I4O~X!HW9E&L)LfOqzZy z!BpoyHZ;2!jw#VWi2#gEGBQrc$OOfBF=MpIleaHr^5kxv#?2iwFBUT6xCFHSJ;E&W z!GltAGicCUm`)lY!|{fNohByr>5TBw(Y~9#ZCi;eLPhX$Y%zV9;N#2);PlPhWB7+P zBH%VALnVW5?`;t#LF1WHjxtsrGPb0%7(+##EMm22uo+Wkn3+&!Lnf|_#TuXwJ=Oac zOa5qlH2%7yC{~zGgKu=+HmT8Mdjq#co-`=V$hPb*T@LACsPlrM_*j-Lz1ECeJwiiI zhqzMiHYPPQaZ!>Q{9qE4k&1)*;qV^wXM+mNaAnP5aEY1TO*y1X6f^3J`ppbLJxq1F zV{hkf!;T;@Qa8surJo%(#SGv&%{VsFmnmm->kSGq!k-Bjle6)+#I~%lR-Gqzg^ZM= zKVc|^u>ROEJPdYm`l^dMg=N5PVOb2;>QG}3=@0k`vsNvcon z+WidMX>5R*x`MjY);Y3skABRQM4dVvncC&Uxm)Kq{n!VI!%(FrdxdpG>^Am?D{APX zel|#-Gk9&*3Fh?;JsFyv(<~xPZ-)&2Gc=w)U)W?zGm|hy(a3TpD>AdhJBvsCUrA4P zb{Y#Q=GW3f&5X@}k}M8}4Kmi1o1rI7Oq#|rCe+NG{9l-4nORI0rSU8#O_65QDtpZI zWLjpHBt_xEnF(T62kUB%H9T1qN`_^|Wp%*)B_^5hhcKxlpoB@?Y(vfjjr?jNkPYoN zVa49Yq^Y8G2ZouaO&JtoO<(Dl>@*Td7(5;3!nbRj*^JGaGZ-g-7?WnEHe{jk6KAO8 z&{I01O-vd^fQd-}K8#7Gl)Hn5?K&n+iE9*QonhUX`sK|^>9(FUupXWj4!5@|XxQ`g zE;gd$Pu~a=lcC^KoQ}y|&#*zWbYwb%MN9(re`9hFcf05-I&T(}T-e-^qFynhQD2WC z9YRHveo&W$jO1MmnW8i@iOk$ZV@nM^&zcluDD%)PW0|owt0%#S7F5!cp^{8uK3M2% zO;R*BWavfRR0EUd{3a%6iuGKe8#E-fu^&3ob_Vxw?9|H8eOFL$?CxQ&~0pEp+ zzBMufDDk|>nkGhP3mLQA2^DGbb}Pf&;!qFxXnZvO{~ASdF!Ura`L0BaMkldUznc}k z(K|G%?LCITD>eX)=gq?mvxf_r@zq((-M3p{W=oDWYBH|a3o>XNl*A}&a-2cxtQjsw z3$vK+i}Y^P@Mi8dbpQy5%#z(`S?cMqXuPSUc7=`X!|F5u!n@6A4RS?FHF-K{<}oAV zbUtfL8|F%^U{afIMG)-PleZyAO-AI5Hh_`Eb&A%7f$`k#+kLMO3SPEUx*D3b(`=-G zputcfgBiJSr_uCdJM~EnjtqyxyY%IRb-}osE6!A+)#7BK&R}r&9;1P!C;noWMK{aL z-9^EDyGS>#wCBTpAZE6AXf|>=L)4a5r?V#;)a7K@NK3j^oyCS-vFtU^=R%z!Lmq^U zCP2_ECP28js*qlH8~Qk0?4XzliJi5#r~|p#c9vNX1ZUeQrRJa6xZsL=U^Zuqs#n(o zp`!dX7RKCGp&x4a0ya{-P-n2z{JP!6)ZtcIuz6kGJ8Y-1qd}(F24!bkd;0SCgo`rV zSVs|)r8bdC@*nD%n~j&C0r#RzF??X^%OWHJSDch7VUjKOiA;;a=GkV~faP}Ic7~p_ zcNa0K=Y|p{jhtaDJZ!+(NKcHB%NY}sW}A=&v+35TQFKh|;L!ysQ|u9k%*B}fYXcXZ zdStN0jr?#E#`I&T*ap-Uq$xx7s0f!-v&g%RNmCV>m@H*pQwE!qQS9y&MW6w<(Cv7g-F!pn7b(EtH(eT;nA|;!Nf0hM z`Y%TblcC$y9idXId{&m5iZFD$ zv07pvw#1^PLe}(2vFp#2oKw2e>=YrRD&MW6DjY1{i!e1W`SYW!Xcd}jdra8Y@-k`JX1oniM)_W7sg$0IPl+`r zGV~);y!B#)E^Cry*i77|R)JB*h0N|GFgt0*y9LJWIPi>~Ld^aFW8RNtnBpCs5AH1n zJN3BQv)jBE7iPIq>%eGg?lD>-ta<0i=ph30-nyPZjJ$t4EQ^f>Lqh5o2?Px`4;OFX zm^ayt{I7fHSzu-@z}&v~TxwJnZ$)sRIDN>>;f8oJ?t+BbFc&gAxuvWS+`W63u8@n( z!lHLTsiDFcJh_JnaL?!&GhFP=FuOwLEzPib7lt*}k(r#>J+o~Srl`%$Zjq@u*-2C?ekoz z#tDMkd4ie!&4eNwnDnB>eYHZWO~(RzKM*C2aLDa-xe_O5M7cHBmOw@*nVK&pD| z*ofU=MCVUNe%T~!hV0*OQd+%>XBDwvF`7#$kTkWEgln?op~*0Q^{ zaL+%QN~DZWL6p+D2fxDfnc#884J`5Y!OU&hOUCD zaLK!0w_9z-w4!r)L2!;uoZ^0W{q;v>nxJx4a#!C)6Iu8_-|Zjc-I&$zbGi4w;Ylvo z+#Eo+pDeFwo9vqar+eWyfgb1MFwqOUL*B=%6bU5X>hc^u=tRhKHH>N=`$@<>Xq?Is zHlB2yB(??!#RJAi7^D3p9vumR3z~=Jyj{0ws<9{`%^y7Z^ZMOh^nm?j3Gd$KVb>{A zA9X!q8mH%LOTDLDG51@aUqKIuDmiO}VaZZZ{zA%#fbwkCeuVc8JYKsLuQQdVS@_gc z2|6M4;f{x|XG~h*t%$wzwLajQjP6tUJX9)=KjHpGu2;D_i;TFkU{UBKWW)P@9pX)u z&fREidAG&iQ57MNr6UEEW>_q(ikp&VOaUkSbfpz!;#kmb;}6xPwMa%R5*v8!#E8=-DY8&$UIH$v z$b7Z5Nv1zG!vzsQ--r(-97P`DlG`%B*SZnfBpFOIj>u5*u2rhe?hprE!_y|0QPUU4E4n31dnEdHAOjz9@Mr*Sl*|y2#7l@Kc6?ac4Gl(f)2@OURo~&=8*6jR(5p*D1 zg-TW}C{m$Yu!XHp`x@qN@f&J{arw(8p=;eX8HF!SlEVvlH^>z_gJ##~J#F%}Qn|Bj zn+$-Wch%VW#f`!VR7S*T?FH`TMt0z4Zgv2x0-rWGiJ_-YCEkMQ>xXblvPrK8tQVj6 zFK_ej{&UmT-G-?r=oCrNRq7pJ|I5&mw!=TwHICx%geXxr@Lh~7Y3A~CRS>W2!ATBx z260a~#S-oiZ6=}6ky2haF_@&xQMS4LWG$MD)}20V<+Q|r>sfIpuip}I-*)W60i0~Q zJk9?$r^?%?WRtug{Z8a^J)dqyQ}1RCSt<0>PvQb0#KlhMb#@9N#`B8mR&th2YTH_~ z!|RYuW|mDx2!XR))k2JTFKZ=`1u-l_!P&@g0fdT_)TYD5A9A?MZcZb~x;8Ga)=UUp zgfi1k`shCc?)_$5jZaDtvdb(ICN< ziyqfI#k`%&RxeOP6eTHD3%|*tZoZcU!l^yo*!{3J9EgvD#cz}ixDQ1vh>}7voVp)W zk0!;^-MtQct=Rp}*SzF%8)HjaK2%vP|IU>qe)kr_i0v8%BkLy=#n!5-2F@R zWN*8{qMIUdA+>@}6zwH?;Uh6T0b_J2c#t! zEa8(cR^dL_&mx-~e_@j-6RJtUbd}dEzu9CrlM}ArwuPKVgVgqA5;oFA)RZb>t)P_& zs_#=O|ST>2$v}_VdPqMVH zSf6IjkOsU(CQ$)aHi_$jO){;>Z#D_)&Nex6!X_!)JM%x-B(xb=iplk$9&OUJPSVZW zC>gtRmqGTMUumFqN`%AG1;aY{$wPe+X9*rlY6*Ta$sigqZ8xB;SpTl4TD)8*o9d27 z*<^ArD=z{-9!ep|`x`tdkyYZ-*^%R3H;c@j#+8Iq{~%sWwQh}GB$(U{f4^`vXz&|x zYtP7G`X}B{&Yh^x$bx;qS?jhYv#Hy$dQ&NFCEH$pl8ZE?zsH_bhg{2h6IXGcnoN0s zQxg6;M@69c6nr*y1jy4IK_>L!&nr)G;%qOb|!oIVkiPP-c>YK{u16`Q3$vjw6 zA96`+KTiJ1pxTi+>}3%zVKkl(LMUqIq`a9%_wnFPspR?)sIb62R{F^L$xx;)aZ8uv zcuw^hQh8~W){rQy#}A(TdHrrLdA64v=?0X;>{smKY~L9rF~GcLlP3Bk;zLo51k{*S z<%(T1&^O5yD~%_Ap=3S#;T=c1NYSXNUc`L5v8Row0N>pDb@@Ajm7y8v9qsWJNm$=y zLh|AH+-u}lirj1T>h#?�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 U0Di&bCp&qelP4ek50|w%h_X~I;Q#;t literal 0 HcmV?d00001 diff --git a/modules/tinyexr/asakusa.png b/modules/tinyexr/asakusa.png new file mode 100644 index 0000000000000000000000000000000000000000..7183d5f01cf37abb6adfcc8d9cafc043092cf46d GIT binary patch literal 202947 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

E~oN= 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%0D@embI$fZ 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 JPDHLkV1nY*+-v{< literal 0 HcmV?d00001 diff --git a/modules/tinyexr/cmake/sanitizers/FindASan.cmake b/modules/tinyexr/cmake/sanitizers/FindASan.cmake new file mode 100644 index 0000000..98ea7cb --- /dev/null +++ b/modules/tinyexr/cmake/sanitizers/FindASan.cmake @@ -0,0 +1,59 @@ +# The MIT License (MIT) +# +# Copyright (c) +# 2013 Matthew Arsenault +# 2015-2016 RWTH Aachen University, Federal Republic of Germany +# +# 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. + +option(SANITIZE_ADDRESS "Enable AddressSanitizer for sanitized targets." Off) + +set(FLAG_CANDIDATES + # Clang 3.2+ use this version. The no-omit-frame-pointer option is optional. + "-g -fsanitize=address -fno-omit-frame-pointer" + "-g -fsanitize=address" + + # Older deprecated flag for ASan + "-g -faddress-sanitizer" +) + + +if (SANITIZE_ADDRESS AND (SANITIZE_THREAD OR SANITIZE_MEMORY)) + message(FATAL_ERROR "AddressSanitizer is not compatible with " + "ThreadSanitizer or MemorySanitizer.") +endif () + + +include(sanitize-helpers) + +if (SANITIZE_ADDRESS) + sanitizer_check_compiler_flags("${FLAG_CANDIDATES}" "AddressSanitizer" + "ASan") + + find_program(ASan_WRAPPER "asan-wrapper" PATHS ${CMAKE_MODULE_PATH}) + mark_as_advanced(ASan_WRAPPER) +endif () + +function (add_sanitize_address TARGET) + if (NOT SANITIZE_ADDRESS) + return() + endif () + + sanitizer_add_flags(${TARGET} "AddressSanitizer" "ASan") +endfunction () diff --git a/modules/tinyexr/cmake/sanitizers/FindMSan.cmake b/modules/tinyexr/cmake/sanitizers/FindMSan.cmake new file mode 100644 index 0000000..22d0050 --- /dev/null +++ b/modules/tinyexr/cmake/sanitizers/FindMSan.cmake @@ -0,0 +1,57 @@ +# The MIT License (MIT) +# +# Copyright (c) +# 2013 Matthew Arsenault +# 2015-2016 RWTH Aachen University, Federal Republic of Germany +# +# 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. + +option(SANITIZE_MEMORY "Enable MemorySanitizer for sanitized targets." Off) + +set(FLAG_CANDIDATES + "-g -fsanitize=memory" +) + + +include(sanitize-helpers) + +if (SANITIZE_MEMORY) + if (NOT ${CMAKE_SYSTEM_NAME} STREQUAL "Linux") + message(WARNING "MemorySanitizer disabled for target ${TARGET} because " + "MemorySanitizer is supported for Linux systems only.") + set(SANITIZE_MEMORY Off CACHE BOOL + "Enable MemorySanitizer for sanitized targets." FORCE) + elseif (NOT ${CMAKE_SIZEOF_VOID_P} EQUAL 8) + message(WARNING "MemorySanitizer disabled for target ${TARGET} because " + "MemorySanitizer is supported for 64bit systems only.") + set(SANITIZE_MEMORY Off CACHE BOOL + "Enable MemorySanitizer for sanitized targets." FORCE) + else () + sanitizer_check_compiler_flags("${FLAG_CANDIDATES}" "MemorySanitizer" + "MSan") + endif () +endif () + +function (add_sanitize_memory TARGET) + if (NOT SANITIZE_MEMORY) + return() + endif () + + sanitizer_add_flags(${TARGET} "MemorySanitizer" "MSan") +endfunction () diff --git a/modules/tinyexr/cmake/sanitizers/FindSanitizers.cmake b/modules/tinyexr/cmake/sanitizers/FindSanitizers.cmake new file mode 100644 index 0000000..101bab8 --- /dev/null +++ b/modules/tinyexr/cmake/sanitizers/FindSanitizers.cmake @@ -0,0 +1,94 @@ +# The MIT License (MIT) +# +# Copyright (c) +# 2013 Matthew Arsenault +# 2015-2016 RWTH Aachen University, Federal Republic of Germany +# +# 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. + +# If any of the used compiler is a GNU compiler, add a second option to static +# link against the sanitizers. +option(SANITIZE_LINK_STATIC "Try to link static against sanitizers." Off) + + + + +set(FIND_QUIETLY_FLAG "") +if (DEFINED Sanitizers_FIND_QUIETLY) + set(FIND_QUIETLY_FLAG "QUIET") +endif () + +find_package(ASan ${FIND_QUIETLY_FLAG}) +find_package(TSan ${FIND_QUIETLY_FLAG}) +find_package(MSan ${FIND_QUIETLY_FLAG}) +find_package(UBSan ${FIND_QUIETLY_FLAG}) + + + + +function(sanitizer_add_blacklist_file FILE) + if(NOT IS_ABSOLUTE ${FILE}) + set(FILE "${CMAKE_CURRENT_SOURCE_DIR}/${FILE}") + endif() + get_filename_component(FILE "${FILE}" REALPATH) + + sanitizer_check_compiler_flags("-fsanitize-blacklist=${FILE}" + "SanitizerBlacklist" "SanBlist") +endfunction() + +function(add_sanitizers ...) + # If no sanitizer is enabled, return immediately. + if (NOT (SANITIZE_ADDRESS OR SANITIZE_MEMORY OR SANITIZE_THREAD OR + SANITIZE_UNDEFINED)) + return() + endif () + + foreach (TARGET ${ARGV}) + # Check if this target will be compiled by exactly one compiler. Other- + # wise sanitizers can't be used and a warning should be printed once. + get_target_property(TARGET_TYPE ${TARGET} TYPE) + if (TARGET_TYPE STREQUAL "INTERFACE_LIBRARY") + message(WARNING "Can't use any sanitizers for target ${TARGET}, " + "because it is an interface library and cannot be " + "compiled directly.") + return() + endif () + sanitizer_target_compilers(${TARGET} TARGET_COMPILER) + list(LENGTH TARGET_COMPILER NUM_COMPILERS) + if (NUM_COMPILERS GREATER 1) + message(WARNING "Can't use any sanitizers for target ${TARGET}, " + "because it will be compiled by incompatible compilers. " + "Target will be compiled without sanitizers.") + return() + + # If the target is compiled by no or no known compiler, give a warning. + elseif (NUM_COMPILERS EQUAL 0) + message(WARNING "Sanitizers for target ${TARGET} may not be" + " usable, because it uses no or an unknown compiler. " + "This is a false warning for targets using only " + "object lib(s) as input.") + endif () + + # Add sanitizers for target. + add_sanitize_address(${TARGET}) + add_sanitize_thread(${TARGET}) + add_sanitize_memory(${TARGET}) + add_sanitize_undefined(${TARGET}) + endforeach () +endfunction(add_sanitizers) diff --git a/modules/tinyexr/cmake/sanitizers/FindTSan.cmake b/modules/tinyexr/cmake/sanitizers/FindTSan.cmake new file mode 100644 index 0000000..3cba3c0 --- /dev/null +++ b/modules/tinyexr/cmake/sanitizers/FindTSan.cmake @@ -0,0 +1,65 @@ +# The MIT License (MIT) +# +# Copyright (c) +# 2013 Matthew Arsenault +# 2015-2016 RWTH Aachen University, Federal Republic of Germany +# +# 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. + +option(SANITIZE_THREAD "Enable ThreadSanitizer for sanitized targets." Off) + +set(FLAG_CANDIDATES + "-g -fsanitize=thread" +) + + +# ThreadSanitizer is not compatible with MemorySanitizer. +if (SANITIZE_THREAD AND SANITIZE_MEMORY) + message(FATAL_ERROR "ThreadSanitizer is not compatible with " + "MemorySanitizer.") +endif () + + +include(sanitize-helpers) + +if (SANITIZE_THREAD) + if (NOT ${CMAKE_SYSTEM_NAME} STREQUAL "Linux" AND + NOT ${CMAKE_SYSTEM_NAME} STREQUAL "Darwin") + message(WARNING "ThreadSanitizer disabled for target ${TARGET} because " + "ThreadSanitizer is supported for Linux systems and macOS only.") + set(SANITIZE_THREAD Off CACHE BOOL + "Enable ThreadSanitizer for sanitized targets." FORCE) + elseif (NOT ${CMAKE_SIZEOF_VOID_P} EQUAL 8) + message(WARNING "ThreadSanitizer disabled for target ${TARGET} because " + "ThreadSanitizer is supported for 64bit systems only.") + set(SANITIZE_THREAD Off CACHE BOOL + "Enable ThreadSanitizer for sanitized targets." FORCE) + else () + sanitizer_check_compiler_flags("${FLAG_CANDIDATES}" "ThreadSanitizer" + "TSan") + endif () +endif () + +function (add_sanitize_thread TARGET) + if (NOT SANITIZE_THREAD) + return() + endif () + + sanitizer_add_flags(${TARGET} "ThreadSanitizer" "TSan") +endfunction () diff --git a/modules/tinyexr/cmake/sanitizers/FindUBSan.cmake b/modules/tinyexr/cmake/sanitizers/FindUBSan.cmake new file mode 100644 index 0000000..ae103f7 --- /dev/null +++ b/modules/tinyexr/cmake/sanitizers/FindUBSan.cmake @@ -0,0 +1,46 @@ +# The MIT License (MIT) +# +# Copyright (c) +# 2013 Matthew Arsenault +# 2015-2016 RWTH Aachen University, Federal Republic of Germany +# +# 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. + +option(SANITIZE_UNDEFINED + "Enable UndefinedBehaviorSanitizer for sanitized targets." Off) + +set(FLAG_CANDIDATES + "-g -fsanitize=undefined" +) + + +include(sanitize-helpers) + +if (SANITIZE_UNDEFINED) + sanitizer_check_compiler_flags("${FLAG_CANDIDATES}" + "UndefinedBehaviorSanitizer" "UBSan") +endif () + +function (add_sanitize_undefined TARGET) + if (NOT SANITIZE_UNDEFINED) + return() + endif () + + sanitizer_add_flags(${TARGET} "UndefinedBehaviorSanitizer" "UBSan") +endfunction () diff --git a/modules/tinyexr/cmake/sanitizers/asan-wrapper b/modules/tinyexr/cmake/sanitizers/asan-wrapper new file mode 100644 index 0000000..5d54103 --- /dev/null +++ b/modules/tinyexr/cmake/sanitizers/asan-wrapper @@ -0,0 +1,55 @@ +#!/bin/sh + +# The MIT License (MIT) +# +# Copyright (c) +# 2013 Matthew Arsenault +# 2015-2016 RWTH Aachen University, Federal Republic of Germany +# +# 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. + +# This script is a wrapper for AddressSanitizer. In some special cases you need +# to preload AddressSanitizer to avoid error messages - e.g. if you're +# preloading another library to your application. At the moment this script will +# only do something, if we're running on a Linux platform. OSX might not be +# affected. + + +# Exit immediately, if platform is not Linux. +if [ "$(uname)" != "Linux" ] +then + exec $@ +fi + + +# Get the used libasan of the application ($1). If a libasan was found, it will +# be prepended to LD_PRELOAD. +libasan=$(ldd $1 | grep libasan | sed "s/^[[:space:]]//" | cut -d' ' -f1) +if [ -n "$libasan" ] +then + if [ -n "$LD_PRELOAD" ] + then + export LD_PRELOAD="$libasan:$LD_PRELOAD" + else + export LD_PRELOAD="$libasan" + fi +fi + +# Execute the application. +exec $@ diff --git a/modules/tinyexr/cmake/sanitizers/sanitize-helpers.cmake b/modules/tinyexr/cmake/sanitizers/sanitize-helpers.cmake new file mode 100644 index 0000000..3649b07 --- /dev/null +++ b/modules/tinyexr/cmake/sanitizers/sanitize-helpers.cmake @@ -0,0 +1,177 @@ +# The MIT License (MIT) +# +# Copyright (c) +# 2013 Matthew Arsenault +# 2015-2016 RWTH Aachen University, Federal Republic of Germany +# +# 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. + +# Helper function to get the language of a source file. +function (sanitizer_lang_of_source FILE RETURN_VAR) + get_filename_component(LONGEST_EXT "${FILE}" EXT) + # If extension is empty return. This can happen for extensionless headers + if("${LONGEST_EXT}" STREQUAL "") + set(${RETURN_VAR} "" PARENT_SCOPE) + return() + endif() + # Get shortest extension as some files can have dot in their names + string(REGEX REPLACE "^.*(\\.[^.]+)$" "\\1" FILE_EXT ${LONGEST_EXT}) + string(TOLOWER "${FILE_EXT}" FILE_EXT) + string(SUBSTRING "${FILE_EXT}" 1 -1 FILE_EXT) + + get_property(ENABLED_LANGUAGES GLOBAL PROPERTY ENABLED_LANGUAGES) + foreach (LANG ${ENABLED_LANGUAGES}) + list(FIND CMAKE_${LANG}_SOURCE_FILE_EXTENSIONS "${FILE_EXT}" TEMP) + if (NOT ${TEMP} EQUAL -1) + set(${RETURN_VAR} "${LANG}" PARENT_SCOPE) + return() + endif () + endforeach() + + set(${RETURN_VAR} "" PARENT_SCOPE) +endfunction () + + +# Helper function to get compilers used by a target. +function (sanitizer_target_compilers TARGET RETURN_VAR) + # Check if all sources for target use the same compiler. If a target uses + # e.g. C and Fortran mixed and uses different compilers (e.g. clang and + # gfortran) this can trigger huge problems, because different compilers may + # use different implementations for sanitizers. + set(BUFFER "") + get_target_property(TSOURCES ${TARGET} SOURCES) + foreach (FILE ${TSOURCES}) + # If expression was found, FILE is a generator-expression for an object + # library. Object libraries will be ignored. + string(REGEX MATCH "TARGET_OBJECTS:([^ >]+)" _file ${FILE}) + if ("${_file}" STREQUAL "") + sanitizer_lang_of_source(${FILE} LANG) + if (LANG) + list(APPEND BUFFER ${CMAKE_${LANG}_COMPILER_ID}) + endif () + endif () + endforeach () + + list(REMOVE_DUPLICATES BUFFER) + set(${RETURN_VAR} "${BUFFER}" PARENT_SCOPE) +endfunction () + + +# Helper function to check compiler flags for language compiler. +function (sanitizer_check_compiler_flag FLAG LANG VARIABLE) + if (${LANG} STREQUAL "C") + include(CheckCCompilerFlag) + check_c_compiler_flag("${FLAG}" ${VARIABLE}) + + elseif (${LANG} STREQUAL "CXX") + include(CheckCXXCompilerFlag) + check_cxx_compiler_flag("${FLAG}" ${VARIABLE}) + + elseif (${LANG} STREQUAL "Fortran") + # CheckFortranCompilerFlag was introduced in CMake 3.x. To be compatible + # with older Cmake versions, we will check if this module is present + # before we use it. Otherwise we will define Fortran coverage support as + # not available. + include(CheckFortranCompilerFlag OPTIONAL RESULT_VARIABLE INCLUDED) + if (INCLUDED) + check_fortran_compiler_flag("${FLAG}" ${VARIABLE}) + elseif (NOT CMAKE_REQUIRED_QUIET) + message(STATUS "Performing Test ${VARIABLE}") + message(STATUS "Performing Test ${VARIABLE}" + " - Failed (Check not supported)") + endif () + endif() +endfunction () + + +# Helper function to test compiler flags. +function (sanitizer_check_compiler_flags FLAG_CANDIDATES NAME PREFIX) + set(CMAKE_REQUIRED_QUIET ${${PREFIX}_FIND_QUIETLY}) + + get_property(ENABLED_LANGUAGES GLOBAL PROPERTY ENABLED_LANGUAGES) + foreach (LANG ${ENABLED_LANGUAGES}) + # Sanitizer flags are not dependend on language, but the used compiler. + # So instead of searching flags foreach language, search flags foreach + # compiler used. + set(COMPILER ${CMAKE_${LANG}_COMPILER_ID}) + if (NOT DEFINED ${PREFIX}_${COMPILER}_FLAGS) + foreach (FLAG ${FLAG_CANDIDATES}) + if(NOT CMAKE_REQUIRED_QUIET) + message(STATUS "Try ${COMPILER} ${NAME} flag = [${FLAG}]") + endif() + + set(CMAKE_REQUIRED_FLAGS "${FLAG}") + unset(${PREFIX}_FLAG_DETECTED CACHE) + sanitizer_check_compiler_flag("${FLAG}" ${LANG} + ${PREFIX}_FLAG_DETECTED) + + if (${PREFIX}_FLAG_DETECTED) + # If compiler is a GNU compiler, search for static flag, if + # SANITIZE_LINK_STATIC is enabled. + if (SANITIZE_LINK_STATIC AND (${COMPILER} STREQUAL "GNU")) + string(TOLOWER ${PREFIX} PREFIX_lower) + sanitizer_check_compiler_flag( + "-static-lib${PREFIX_lower}" ${LANG} + ${PREFIX}_STATIC_FLAG_DETECTED) + + if (${PREFIX}_STATIC_FLAG_DETECTED) + set(FLAG "-static-lib${PREFIX_lower} ${FLAG}") + endif () + endif () + + set(${PREFIX}_${COMPILER}_FLAGS "${FLAG}" CACHE STRING + "${NAME} flags for ${COMPILER} compiler.") + mark_as_advanced(${PREFIX}_${COMPILER}_FLAGS) + break() + endif () + endforeach () + + if (NOT ${PREFIX}_FLAG_DETECTED) + set(${PREFIX}_${COMPILER}_FLAGS "" CACHE STRING + "${NAME} flags for ${COMPILER} compiler.") + mark_as_advanced(${PREFIX}_${COMPILER}_FLAGS) + + message(WARNING "${NAME} is not available for ${COMPILER} " + "compiler. Targets using this compiler will be " + "compiled without ${NAME}.") + endif () + endif () + endforeach () +endfunction () + + +# Helper to assign sanitizer flags for TARGET. +function (sanitizer_add_flags TARGET NAME PREFIX) + # Get list of compilers used by target and check, if sanitizer is available + # for this target. Other compiler checks like check for conflicting + # compilers will be done in add_sanitizers function. + sanitizer_target_compilers(${TARGET} TARGET_COMPILER) + list(LENGTH TARGET_COMPILER NUM_COMPILERS) + if ("${${PREFIX}_${TARGET_COMPILER}_FLAGS}" STREQUAL "") + return() + endif() + + # Set compile- and link-flags for target. + set_property(TARGET ${TARGET} APPEND_STRING + PROPERTY COMPILE_FLAGS " ${${PREFIX}_${TARGET_COMPILER}_FLAGS}") + set_property(TARGET ${TARGET} APPEND_STRING + PROPERTY COMPILE_FLAGS " ${SanBlist_${TARGET_COMPILER}_FLAGS}") + set_property(TARGET ${TARGET} APPEND_STRING + PROPERTY LINK_FLAGS " ${${PREFIX}_${TARGET_COMPILER}_FLAGS}") +endfunction () diff --git a/modules/tinyexr/config-msvc.py b/modules/tinyexr/config-msvc.py new file mode 100644 index 0000000..1b3a48c --- /dev/null +++ b/modules/tinyexr/config-msvc.py @@ -0,0 +1,78 @@ +exe = "test_tinyexr.exe" + +# "gnu" or "msvc" are provided as predefined toolchain +toolchain = "msvc" + +# optional +link_pool_depth = 1 + +# optional +builddir = { + "gnu" : "build" + , "msvc" : "build" + , "clang" : "build" + } + +# required +includes = { + "gnu" : [ "-I." ] + , "msvc" : [ "/I." ] + , "clang" : [ "-I." ] + } + +# required +defines = { + "gnu" : [ "-DEXAMPLE=1" ] + , "msvc" : [ "/DEXAMPLE=1" ] + , "clang" : [ "-DEXAMPLE=1" ] + } + +# required +cflags = { + "gnu" : [ "-O2", "-g" ] + , "msvc" : [ "/O2" ] + , "clang" : [ "-O2", "-g" ] + } + +# required +cxxflags = { + "gnu" : [ "-O2", "-g" ] + , "msvc" : [ "/O2", "/W4" ] + , "clang" : [ "-O2", "-g", "-fsanitize=address" ] + } + +# required +ldflags = { + "gnu" : [ ] + , "msvc" : [ ] + , "clang" : [ "-fsanitize=address" ] + } + +# optionsl +cxx_files = [ "test_tinyexr.cc" ] +c_files = [ ] + +# You can register your own toolchain through register_toolchain function +def register_toolchain(ninja): + pass + + #ninja.rule('clangcxx', description='CXX $out', + # command='$clangcxx -MMD -MF $out.d $clangdefines $clangincludes $clangcxxflags -c $in -o $out', + # depfile='$out.d', deps='gcc') + #ninja.rule('clangcc', description='CC $out', + # command='$clangcc -MMD -MF $out.d $clangdefines $clangincludes $clangcflags -c $in -o $out', + # depfile='$out.d', deps='gcc') + #ninja.rule('clanglink', description='LINK $out', pool='link_pool', + # command='$clangld $clangldflags -o $out $in $libs') + #ninja.rule('clangar', description='AR $out', pool='link_pool', + # command='$clangar rsc $out $in') + #ninja.rule('clangstamp', description='STAMP $out', command='touch $out') + #ninja.newline() + + #ninja.variable('clangcxx', 'clang++') + #ninja.variable('clangcc', 'clang') + #ninja.variable('clangld', 'clang++') + #ninja.variable('clangar', 'ar') + #ninja.newline() + + diff --git a/modules/tinyexr/deps/miniz/ChangeLog.md b/modules/tinyexr/deps/miniz/ChangeLog.md new file mode 100644 index 0000000..4ae15a8 --- /dev/null +++ b/modules/tinyexr/deps/miniz/ChangeLog.md @@ -0,0 +1,196 @@ +## Changelog + +### 2.2.0 + + - Fix examples with amalgamation + - Modified cmake script to support shared library mode and find_package + - Fix for misleading doc comment on `mz_zip_reader_init_cfile` function + - Add include location tolerance and stop forcing `_GNU_SOURCE` + - Fix: mz_zip_reader_locate_file_v2 returns an mz_bool + - Fix large file system checks + - Add #elif to enable an external mz_crc32() to be linked in + - Write with dynamic size (size of file/data to be added not known before adding) + - Added uncompress2 for zlib compatibility + - Add support for building as a Meson subproject + - Added OSSFuzz support; Integrate with CIFuzz + - Add pkg-config file + - Fixed use-of-uninitialized value msan error when copying dist bytes with no output bytes written. + - mz_zip_validate_file(): fix memory leak on errors + - Fixed MSAN use-of-uninitialized in tinfl_decompress when invalid dist is decoded. In this instance dist was 31 which s_dist_base translates as 0 + - Add flag to set (compressed) size in local file header + - avoid use of uninitialized value in tdefl_record_literal + +### 2.1.0 + + - More instances of memcpy instead of cast and use memcpy per default + - Remove inline for c90 support + - New function to read files via callback functions when adding them + - Fix out of bounds read while reading Zip64 extended information + - guard memcpy when n == 0 because buffer may be NULL + - Implement inflateReset() function + - Move comp/decomp alloc/free prototypes under guarding #ifndef MZ_NO_MALLOC + - Fix large file support under Windows + - Don't warn if _LARGEFILE64_SOURCE is not defined to 1 + - Fixes for MSVC warnings + - Remove check that path of file added to archive contains ':' or '\' + - Add !defined check on MINIZ_USE_ALIGNED_LOADS_AND_STORES + +### 2.0.8 + + - Remove unimplemented functions (mz_zip_locate_file and mz_zip_locate_file_v2) + - Add license, changelog, readme and example files to release zip + - Fix heap overflow to user buffer in tinfl_status tinfl_decompress + - Fix corrupt archive if uncompressed file smaller than 4 byte and the file is added by mz_zip_writer_add_mem* + +### 2.0.7 + + - Removed need in C++ compiler in cmake build + - Fixed a lot of uninitialized value errors found with Valgrind by memsetting m_dict to 0 in tdefl_init + - Fix resource leak in mz_zip_reader_init_file_v2 + - Fix assert with mz_zip_writer_add_mem* w/MZ_DEFAULT_COMPRESSION + - cmake build: install library and headers + - Remove _LARGEFILE64_SOURCE requirement from apple defines for large files + +### 2.0.6 + + - Improve MZ_ZIP_FLAG_WRITE_ZIP64 documentation + - Remove check for cur_archive_file_ofs > UINT_MAX because cur_archive_file_ofs is not used after this point + - Add cmake debug configuration + - Fix PNG height when creating png files + - Add "iterative" file extraction method based on mz_zip_reader_extract_to_callback. + - Option to use memcpy for unaligned data access + - Define processor/arch macros as zero if not set to one + +### 2.0.4/2.0.5 + + - Fix compilation with the various omission compile definitions + +### 2.0.3 + +- Fix GCC/clang compile warnings +- Added callback for periodic flushes (for ZIP file streaming) +- Use UTF-8 for file names in ZIP files per default + +### 2.0.2 + +- Fix source backwards compatibility with 1.x +- Fix a ZIP bit not being set correctly + +### 2.0.1 + +- Added some tests +- Added CI +- Make source code ANSI C compatible + +### 2.0.0 beta + +- Matthew Sitton merged miniz 1.x to Rich Geldreich's vogl ZIP64 changes. Miniz is now licensed as MIT since the vogl code base is MIT licensed +- Miniz is now split into several files +- Miniz does now not seek backwards when creating ZIP files. That is the ZIP files can be streamed +- Miniz automatically switches to the ZIP64 format when the created ZIP files goes over ZIP file limits +- Similar to [SQLite](https://www.sqlite.org/amalgamation.html) the Miniz source code is amalgamated into one miniz.c/miniz.h pair in a build step (amalgamate.sh). Please use miniz.c/miniz.h in your projects +- Miniz 2 is only source back-compatible with miniz 1.x. It breaks binary compatibility because structures changed + +### v1.16 BETA Oct 19, 2013 + +Still testing, this release is downloadable from [here](http://www.tenacioussoftware.com/miniz_v116_beta_r1.7z). Two key inflator-only robustness and streaming related changes. Also merged in tdefl_compressor_alloc(), tdefl_compressor_free() helpers to make script bindings easier for rustyzip. I would greatly appreciate any help with testing or any feedback. + +The inflator in raw (non-zlib) mode is now usable on gzip or similar streams that have a bunch of bytes following the raw deflate data (problem discovered by rustyzip author williamw520). This version should never read beyond the last byte of the raw deflate data independent of how many bytes you pass into the input buffer. + +The inflator now has a new failure status TINFL_STATUS_FAILED_CANNOT_MAKE_PROGRESS (-4). Previously, if the inflator was starved of bytes and could not make progress (because the input buffer was empty and the caller did not set the TINFL_FLAG_HAS_MORE_INPUT flag - say on truncated or corrupted compressed data stream) it would append all 0's to the input and try to soldier on. This is scary behavior if the caller didn't know when to stop accepting output (because it didn't know how much uncompressed data was expected, or didn't enforce a sane maximum). v1.16 will instead return TINFL_STATUS_FAILED_CANNOT_MAKE_PROGRESS immediately if it needs 1 or more bytes to make progress, the input buf is empty, and the caller has indicated that no more input is available. This is a "soft" failure, so you can call the inflator again with more input and it will try to continue, or you can give up and fail. This could be very useful in network streaming scenarios. + +- The inflator coroutine func. is subtle and complex so I'm being cautious about this release. I would greatly appreciate any help with testing or any feedback. + I feel good about these changes, and they've been through several hours of automated testing, but they will probably not fix anything for the majority of prev. users so I'm + going to mark this release as beta for a few weeks and continue testing it at work/home on various things. +- The inflator in raw (non-zlib) mode is now usable on gzip or similar data streams that have a bunch of bytes following the raw deflate data (problem discovered by rustyzip author williamw520). + This version should *never* read beyond the last byte of the raw deflate data independent of how many bytes you pass into the input buffer. This issue was caused by the various Huffman bitbuffer lookahead optimizations, and + would not be an issue if the caller knew and enforced the precise size of the raw compressed data *or* if the compressed data was in zlib format (i.e. always followed by the byte aligned zlib adler32). + So in other words, you can now call the inflator on deflate streams that are followed by arbitrary amounts of data and it's guaranteed that decompression will stop exactly on the last byte. +- The inflator now has a new failure status: TINFL_STATUS_FAILED_CANNOT_MAKE_PROGRESS (-4). Previously, if the inflator was starved of bytes and could not make progress (because the input buffer was empty and the + caller did not set the TINFL_FLAG_HAS_MORE_INPUT flag - say on truncated or corrupted compressed data stream) it would append all 0's to the input and try to soldier on. + This is scary, because in the worst case, I believe it was possible for the prev. inflator to start outputting large amounts of literal data. If the caller didn't know when to stop accepting output + (because it didn't know how much uncompressed data was expected, or didn't enforce a sane maximum) it could continue forever. v1.16 cannot fall into this failure mode, instead it'll return + TINFL_STATUS_FAILED_CANNOT_MAKE_PROGRESS immediately if it needs 1 or more bytes to make progress, the input buf is empty, and the caller has indicated that no more input is available. This is a "soft" + failure, so you can call the inflator again with more input and it will try to continue, or you can give up and fail. This could be very useful in network streaming scenarios. +- Added documentation to all the tinfl return status codes, fixed miniz_tester so it accepts double minus params for Linux, tweaked example1.c, added a simple "follower bytes" test to miniz_tester.cpp. +### v1.15 r4 STABLE - Oct 13, 2013 + +Merged over a few very minor bug fixes that I fixed in the zip64 branch. This is downloadable from [here](http://code.google.com/p/miniz/downloads/list) and also in SVN head (as of 10/19/13). + + +### v1.15 - Oct. 13, 2013 + +Interim bugfix release while I work on the next major release with zip64 and streaming compression/decompression support. Fixed the MZ_ZIP_FLAG_DO_NOT_SORT_CENTRAL_DIRECTORY bug (thanks kahmyong.moon@hp.com), which could cause the locate files func to not find files when this flag was specified. Also fixed a bug in mz_zip_reader_extract_to_mem_no_alloc() with user provided read buffers (thanks kymoon). I also merged lots of compiler fixes from various github repo branches and Google Code issue reports. I finally added cmake support (only tested under for Linux so far), compiled and tested with clang v3.3 and gcc 4.6 (under Linux), added defl_write_image_to_png_file_in_memory_ex() (supports Y flipping for OpenGL use, real-time compression), added a new PNG example (example6.c - Mandelbrot), and I added 64-bit file I/O support (stat64(), etc.) for glibc. + +- Critical fix for the MZ_ZIP_FLAG_DO_NOT_SORT_CENTRAL_DIRECTORY bug (thanks kahmyong.moon@hp.com) which could cause locate files to not find files. This bug + would only have occured in earlier versions if you explicitly used this flag, OR if you used mz_zip_extract_archive_file_to_heap() or mz_zip_add_mem_to_archive_file_in_place() + (which used this flag). If you can't switch to v1.15 but want to fix this bug, just remove the uses of this flag from both helper funcs (and of course don't use the flag). +- Bugfix in mz_zip_reader_extract_to_mem_no_alloc() from kymoon when pUser_read_buf is not NULL and compressed size is > uncompressed size +- Fixing mz_zip_reader_extract_*() funcs so they don't try to extract compressed data from directory entries, to account for weird zipfiles which contain zero-size compressed data on dir entries. + Hopefully this fix won't cause any issues on weird zip archives, because it assumes the low 16-bits of zip external attributes are DOS attributes (which I believe they always are in practice). +- Fixing mz_zip_reader_is_file_a_directory() so it doesn't check the internal attributes, just the filename and external attributes +- mz_zip_reader_init_file() - missing MZ_FCLOSE() call if the seek failed +- Added cmake support for Linux builds which builds all the examples, tested with clang v3.3 and gcc v4.6. +- Clang fix for tdefl_write_image_to_png_file_in_memory() from toffaletti +- Merged MZ_FORCEINLINE fix from hdeanclark +- Fix include before config #ifdef, thanks emil.brink +- Added tdefl_write_image_to_png_file_in_memory_ex(): supports Y flipping (super useful for OpenGL apps), and explicit control over the compression level (so you can + set it to 1 for real-time compression). +- Merged in some compiler fixes from paulharris's github repro. +- Retested this build under Windows (VS 2010, including static analysis), tcc 0.9.26, gcc v4.6 and clang v3.3. +- Added example6.c, which dumps an image of the mandelbrot set to a PNG file. +- Modified example2 to help test the MZ_ZIP_FLAG_DO_NOT_SORT_CENTRAL_DIRECTORY flag more. +- In r3: Bugfix to mz_zip_writer_add_file() found during merge: Fix possible src file fclose() leak if alignment bytes+local header file write faiiled +- In r4: Minor bugfix to mz_zip_writer_add_from_zip_reader(): Was pushing the wrong central dir header offset, appears harmless in this release, but it became a problem in the zip64 branch + +### v1.14 - May 20, 2012 + +(SVN Only) Minor tweaks to get miniz.c compiling with the Tiny C Compiler, added #ifndef MINIZ_NO_TIME guards around utime.h includes. Adding mz_free() function, so the caller can free heap blocks returned by miniz using whatever heap functions it has been configured to use, MSVC specific fixes to use "safe" variants of several functions (localtime_s, fopen_s, freopen_s). + +MinGW32/64 GCC 4.6.1 compiler fixes: added MZ_FORCEINLINE, #include (thanks fermtect). + +Compiler specific fixes, some from fermtect. I upgraded to TDM GCC 4.6.1 and now static __forceinline is giving it fits, so I'm changing all usage of __forceinline to MZ_FORCEINLINE and forcing gcc to use __attribute__((__always_inline__)) (and MSVC to use __forceinline). Also various fixes from fermtect for MinGW32: added #include , 64-bit ftell/fseek fixes. + +### v1.13 - May 19, 2012 + +From jason@cornsyrup.org and kelwert@mtu.edu - Most importantly, fixed mz_crc32() so it doesn't compute the wrong CRC-32's when mz_ulong is 64-bits. Temporarily/locally slammed in "typedef unsigned long mz_ulong" and re-ran a randomized regression test on ~500k files. Other stuff: + +Eliminated a bunch of warnings when compiling with GCC 32-bit/64. Ran all examples, miniz.c, and tinfl.c through MSVC 2008's /analyze (static analysis) option and fixed all warnings (except for the silly "Use of the comma-operator in a tested expression.." analysis warning, which I purposely use to work around a MSVC compiler warning). + +Created 32-bit and 64-bit Codeblocks projects/workspace. Built and tested Linux executables. The codeblocks workspace is compatible with Linux+Win32/x64. Added miniz_tester solution/project, which is a useful little app derived from LZHAM's tester app that I use as part of the regression test. Ran miniz.c and tinfl.c through another series of regression testing on ~500,000 files and archives. Modified example5.c so it purposely disables a bunch of high-level functionality (MINIZ_NO_STDIO, etc.). (Thanks to corysama for the MINIZ_NO_STDIO bug report.) + +Fix ftell() usage in a few of the examples so they exit with an error on files which are too large (a limitation of the examples, not miniz itself). Fix fail logic handling in mz_zip_add_mem_to_archive_file_in_place() so it always calls mz_zip_writer_finalize_archive() and mz_zip_writer_end(), even if the file add fails. + +- From jason@cornsyrup.org and kelwert@mtu.edu - Fix mz_crc32() so it doesn't compute the wrong CRC-32's when mz_ulong is 64-bit. +- Temporarily/locally slammed in "typedef unsigned long mz_ulong" and re-ran a randomized regression test on ~500k files. +- Eliminated a bunch of warnings when compiling with GCC 32-bit/64. +- Ran all examples, miniz.c, and tinfl.c through MSVC 2008's /analyze (static analysis) option and fixed all warnings (except for the silly +"Use of the comma-operator in a tested expression.." analysis warning, which I purposely use to work around a MSVC compiler warning). +- Created 32-bit and 64-bit Codeblocks projects/workspace. Built and tested Linux executables. The codeblocks workspace is compatible with Linux+Win32/x64. +- Added miniz_tester solution/project, which is a useful little app derived from LZHAM's tester app that I use as part of the regression test. +- Ran miniz.c and tinfl.c through another series of regression testing on ~500,000 files and archives. +- Modified example5.c so it purposely disables a bunch of high-level functionality (MINIZ_NO_STDIO, etc.). (Thanks to corysama for the MINIZ_NO_STDIO bug report.) +- Fix ftell() usage in examples so they exit with an error on files which are too large (a limitation of the examples, not miniz itself). + +### v1.12 - 4/12/12 + +More comments, added low-level example5.c, fixed a couple minor level_and_flags issues in the archive API's. +level_and_flags can now be set to MZ_DEFAULT_COMPRESSION. Thanks to Bruce Dawson for the feedback/bug report. + +### v1.11 - 5/28/11 + +Added statement from unlicense.org + +### v1.10 - 5/27/11 + +- Substantial compressor optimizations: +- Level 1 is now ~4x faster than before. The L1 compressor's throughput now varies between 70-110MB/sec. on a Core i7 (actual throughput varies depending on the type of data, and x64 vs. x86). +- Improved baseline L2-L9 compression perf. Also, greatly improved compression perf. issues on some file types. +- Refactored the compression code for better readability and maintainability. +- Added level 10 compression level (L10 has slightly better ratio than level 9, but could have a potentially large drop in throughput on some files). + +### v1.09 - 5/15/11 + +Initial stable release. + + diff --git a/modules/tinyexr/deps/miniz/LICENSE b/modules/tinyexr/deps/miniz/LICENSE new file mode 100644 index 0000000..b6ff45a --- /dev/null +++ b/modules/tinyexr/deps/miniz/LICENSE @@ -0,0 +1,22 @@ +Copyright 2013-2014 RAD Game Tools and Valve Software +Copyright 2010-2014 Rich Geldreich and Tenacious Software LLC + +All Rights Reserved. + +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. diff --git a/modules/tinyexr/deps/miniz/examples/example1.c b/modules/tinyexr/deps/miniz/examples/example1.c new file mode 100644 index 0000000..d6e33fa --- /dev/null +++ b/modules/tinyexr/deps/miniz/examples/example1.c @@ -0,0 +1,105 @@ +// example1.c - Demonstrates miniz.c's compress() and uncompress() functions (same as zlib's). +// Public domain, May 15 2011, Rich Geldreich, richgel99@gmail.com. See "unlicense" statement at the end of tinfl.c. +#include +#include "miniz.h" +typedef unsigned char uint8; +typedef unsigned short uint16; +typedef unsigned int uint; + +// The string to compress. +static const char *s_pStr = "Good morning Dr. Chandra. This is Hal. I am ready for my first lesson." \ + "Good morning Dr. Chandra. This is Hal. I am ready for my first lesson." \ + "Good morning Dr. Chandra. This is Hal. I am ready for my first lesson." \ + "Good morning Dr. Chandra. This is Hal. I am ready for my first lesson." \ + "Good morning Dr. Chandra. This is Hal. I am ready for my first lesson." \ + "Good morning Dr. Chandra. This is Hal. I am ready for my first lesson." \ + "Good morning Dr. Chandra. This is Hal. I am ready for my first lesson."; + +int main(int argc, char *argv[]) +{ + uint step = 0; + int cmp_status; + uLong src_len = (uLong)strlen(s_pStr); + uLong cmp_len = compressBound(src_len); + uLong uncomp_len = src_len; + uint8 *pCmp, *pUncomp; + uint total_succeeded = 0; + (void)argc, (void)argv; + + printf("miniz.c version: %s\n", MZ_VERSION); + + do + { + // Allocate buffers to hold compressed and uncompressed data. + pCmp = (mz_uint8 *)malloc((size_t)cmp_len); + pUncomp = (mz_uint8 *)malloc((size_t)src_len); + if ((!pCmp) || (!pUncomp)) + { + printf("Out of memory!\n"); + return EXIT_FAILURE; + } + + // Compress the string. + cmp_status = compress(pCmp, &cmp_len, (const unsigned char *)s_pStr, src_len); + if (cmp_status != Z_OK) + { + printf("compress() failed!\n"); + free(pCmp); + free(pUncomp); + return EXIT_FAILURE; + } + + printf("Compressed from %u to %u bytes\n", (mz_uint32)src_len, (mz_uint32)cmp_len); + + if (step) + { + // Purposely corrupt the compressed data if fuzzy testing (this is a very crude fuzzy test). + uint n = 1 + (rand() % 3); + while (n--) + { + uint i = rand() % cmp_len; + pCmp[i] ^= (rand() & 0xFF); + } + } + + // Decompress. + cmp_status = uncompress(pUncomp, &uncomp_len, pCmp, cmp_len); + total_succeeded += (cmp_status == Z_OK); + + if (step) + { + printf("Simple fuzzy test: step %u total_succeeded: %u\n", step, total_succeeded); + } + else + { + if (cmp_status != Z_OK) + { + printf("uncompress failed!\n"); + free(pCmp); + free(pUncomp); + return EXIT_FAILURE; + } + + printf("Decompressed from %u to %u bytes\n", (mz_uint32)cmp_len, (mz_uint32)uncomp_len); + + // Ensure uncompress() returned the expected data. + if ((uncomp_len != src_len) || (memcmp(pUncomp, s_pStr, (size_t)src_len))) + { + printf("Decompression failed!\n"); + free(pCmp); + free(pUncomp); + return EXIT_FAILURE; + } + } + + free(pCmp); + free(pUncomp); + + step++; + + // Keep on fuzzy testing if there's a non-empty command line. + } while (argc >= 2); + + printf("Success.\n"); + return EXIT_SUCCESS; +} diff --git a/modules/tinyexr/deps/miniz/examples/example2.c b/modules/tinyexr/deps/miniz/examples/example2.c new file mode 100644 index 0000000..03d2409 --- /dev/null +++ b/modules/tinyexr/deps/miniz/examples/example2.c @@ -0,0 +1,164 @@ +// example2.c - Simple demonstration of miniz.c's ZIP archive API's. +// Note this test deletes the test archive file "__mz_example2_test__.zip" in the current directory, then creates a new one with test data. +// Public domain, May 15 2011, Rich Geldreich, richgel99@gmail.com. See "unlicense" statement at the end of tinfl.c. + +#if defined(__GNUC__) + // Ensure we get the 64-bit variants of the CRT's file I/O calls + #ifndef _FILE_OFFSET_BITS + #define _FILE_OFFSET_BITS 64 + #endif + #ifndef _LARGEFILE64_SOURCE + #define _LARGEFILE64_SOURCE 1 + #endif +#endif + +#include +#include "miniz.h" + +typedef unsigned char uint8; +typedef unsigned short uint16; +typedef unsigned int uint; + +// The string to compress. +static const char *s_pTest_str = + "MISSION CONTROL I wouldn't worry too much about the computer. First of all, there is still a chance that he is right, despite your tests, and" \ + "if it should happen again, we suggest eliminating this possibility by allowing the unit to remain in place and seeing whether or not it" \ + "actually fails. If the computer should turn out to be wrong, the situation is still not alarming. The type of obsessional error he may be" \ + "guilty of is not unknown among the latest generation of HAL 9000 computers. It has almost always revolved around a single detail, such as" \ + "the one you have described, and it has never interfered with the integrity or reliability of the computer's performance in other areas." \ + "No one is certain of the cause of this kind of malfunctioning. It may be over-programming, but it could also be any number of reasons. In any" \ + "event, it is somewhat analogous to human neurotic behavior. Does this answer your query? Zero-five-three-Zero, MC, transmission concluded."; + +static const char *s_pComment = "This is a comment"; + +int main(int argc, char *argv[]) +{ + int i, sort_iter; + mz_bool status; + size_t uncomp_size; + mz_zip_archive zip_archive; + void *p; + const int N = 50; + char data[2048]; + char archive_filename[64]; + static const char *s_Test_archive_filename = "__mz_example2_test__.zip"; + + assert((strlen(s_pTest_str) + 64) < sizeof(data)); + + printf("miniz.c version: %s\n", MZ_VERSION); + + (void)argc, (void)argv; + + // Delete the test archive, so it doesn't keep growing as we run this test + remove(s_Test_archive_filename); + + // Append a bunch of text files to the test archive + for (i = (N - 1); i >= 0; --i) + { + sprintf(archive_filename, "%u.txt", i); + sprintf(data, "%u %s %u", (N - 1) - i, s_pTest_str, i); + + // Add a new file to the archive. Note this is an IN-PLACE operation, so if it fails your archive is probably hosed (its central directory may not be complete) but it should be recoverable using zip -F or -FF. So use caution with this guy. + // A more robust way to add a file to an archive would be to read it into memory, perform the operation, then write a new archive out to a temp file and then delete/rename the files. + // Or, write a new archive to disk to a temp file, then delete/rename the files. For this test this API is fine. + status = mz_zip_add_mem_to_archive_file_in_place(s_Test_archive_filename, archive_filename, data, strlen(data) + 1, s_pComment, (uint16)strlen(s_pComment), MZ_BEST_COMPRESSION); + if (!status) + { + printf("mz_zip_add_mem_to_archive_file_in_place failed!\n"); + return EXIT_FAILURE; + } + } + + // Add a directory entry for testing + status = mz_zip_add_mem_to_archive_file_in_place(s_Test_archive_filename, "directory/", NULL, 0, "no comment", (uint16)strlen("no comment"), MZ_BEST_COMPRESSION); + if (!status) + { + printf("mz_zip_add_mem_to_archive_file_in_place failed!\n"); + return EXIT_FAILURE; + } + + // Now try to open the archive. + memset(&zip_archive, 0, sizeof(zip_archive)); + + status = mz_zip_reader_init_file(&zip_archive, s_Test_archive_filename, 0); + if (!status) + { + printf("mz_zip_reader_init_file() failed!\n"); + return EXIT_FAILURE; + } + + // Get and print information about each file in the archive. + for (i = 0; i < (int)mz_zip_reader_get_num_files(&zip_archive); i++) + { + mz_zip_archive_file_stat file_stat; + if (!mz_zip_reader_file_stat(&zip_archive, i, &file_stat)) + { + printf("mz_zip_reader_file_stat() failed!\n"); + mz_zip_reader_end(&zip_archive); + return EXIT_FAILURE; + } + + printf("Filename: \"%s\", Comment: \"%s\", Uncompressed size: %u, Compressed size: %u, Is Dir: %u\n", file_stat.m_filename, file_stat.m_comment, (uint)file_stat.m_uncomp_size, (uint)file_stat.m_comp_size, mz_zip_reader_is_file_a_directory(&zip_archive, i)); + + if (!strcmp(file_stat.m_filename, "directory/")) + { + if (!mz_zip_reader_is_file_a_directory(&zip_archive, i)) + { + printf("mz_zip_reader_is_file_a_directory() didn't return the expected results!\n"); + mz_zip_reader_end(&zip_archive); + return EXIT_FAILURE; + } + } + } + + // Close the archive, freeing any resources it was using + mz_zip_reader_end(&zip_archive); + + // Now verify the compressed data + for (sort_iter = 0; sort_iter < 2; sort_iter++) + { + memset(&zip_archive, 0, sizeof(zip_archive)); + status = mz_zip_reader_init_file(&zip_archive, s_Test_archive_filename, sort_iter ? MZ_ZIP_FLAG_DO_NOT_SORT_CENTRAL_DIRECTORY : 0); + if (!status) + { + printf("mz_zip_reader_init_file() failed!\n"); + return EXIT_FAILURE; + } + + for (i = 0; i < N; i++) + { + sprintf(archive_filename, "%u.txt", i); + sprintf(data, "%u %s %u", (N - 1) - i, s_pTest_str, i); + + // Try to extract all the files to the heap. + p = mz_zip_reader_extract_file_to_heap(&zip_archive, archive_filename, &uncomp_size, 0); + if (!p) + { + printf("mz_zip_reader_extract_file_to_heap() failed!\n"); + mz_zip_reader_end(&zip_archive); + return EXIT_FAILURE; + } + + // Make sure the extraction really succeeded. + if ((uncomp_size != (strlen(data) + 1)) || (memcmp(p, data, strlen(data)))) + { + printf("mz_zip_reader_extract_file_to_heap() failed to extract the proper data\n"); + mz_free(p); + mz_zip_reader_end(&zip_archive); + return EXIT_FAILURE; + } + + printf("Successfully extracted file \"%s\", size %u\n", archive_filename, (uint)uncomp_size); + printf("File data: \"%s\"\n", (const char *)p); + + // We're done. + mz_free(p); + } + + // Close the archive, freeing any resources it was using + mz_zip_reader_end(&zip_archive); + } + + printf("Success.\n"); + return EXIT_SUCCESS; +} diff --git a/modules/tinyexr/deps/miniz/examples/example3.c b/modules/tinyexr/deps/miniz/examples/example3.c new file mode 100644 index 0000000..a97ba84 --- /dev/null +++ b/modules/tinyexr/deps/miniz/examples/example3.c @@ -0,0 +1,269 @@ +// example3.c - Demonstrates how to use miniz.c's deflate() and inflate() functions for simple file compression. +// Public domain, May 15 2011, Rich Geldreich, richgel99@gmail.com. See "unlicense" statement at the end of tinfl.c. +// For simplicity, this example is limited to files smaller than 4GB, but this is not a limitation of miniz.c. +#include +#include +#include "miniz.h" + +typedef unsigned char uint8; +typedef unsigned short uint16; +typedef unsigned int uint; + +#define my_max(a,b) (((a) > (b)) ? (a) : (b)) +#define my_min(a,b) (((a) < (b)) ? (a) : (b)) + +#define BUF_SIZE (1024 * 1024) +static uint8 s_inbuf[BUF_SIZE]; +static uint8 s_outbuf[BUF_SIZE]; + +int main(int argc, char *argv[]) +{ + const char *pMode; + FILE *pInfile, *pOutfile; + uint infile_size; + int level = Z_BEST_COMPRESSION; + z_stream stream; + int p = 1; + const char *pSrc_filename; + const char *pDst_filename; + long file_loc; + + printf("miniz.c version: %s\n", MZ_VERSION); + + if (argc < 4) + { + printf("Usage: example3 [options] [mode:c or d] infile outfile\n"); + printf("\nModes:\n"); + printf("c - Compresses file infile to a zlib stream in file outfile\n"); + printf("d - Decompress zlib stream in file infile to file outfile\n"); + printf("\nOptions:\n"); + printf("-l[0-10] - Compression level, higher values are slower.\n"); + return EXIT_FAILURE; + } + + while ((p < argc) && (argv[p][0] == '-')) + { + switch (argv[p][1]) + { + case 'l': + { + level = atoi(&argv[1][2]); + if ((level < 0) || (level > 10)) + { + printf("Invalid level!\n"); + return EXIT_FAILURE; + } + break; + } + default: + { + printf("Invalid option: %s\n", argv[p]); + return EXIT_FAILURE; + } + } + p++; + } + + if ((argc - p) < 3) + { + printf("Must specify mode, input filename, and output filename after options!\n"); + return EXIT_FAILURE; + } + else if ((argc - p) > 3) + { + printf("Too many filenames!\n"); + return EXIT_FAILURE; + } + + pMode = argv[p++]; + if (!strchr("cCdD", pMode[0])) + { + printf("Invalid mode!\n"); + return EXIT_FAILURE; + } + + pSrc_filename = argv[p++]; + pDst_filename = argv[p++]; + + printf("Mode: %c, Level: %u\nInput File: \"%s\"\nOutput File: \"%s\"\n", pMode[0], level, pSrc_filename, pDst_filename); + + // Open input file. + pInfile = fopen(pSrc_filename, "rb"); + if (!pInfile) + { + printf("Failed opening input file!\n"); + return EXIT_FAILURE; + } + + // Determine input file's size. + fseek(pInfile, 0, SEEK_END); + file_loc = ftell(pInfile); + fseek(pInfile, 0, SEEK_SET); + + if ((file_loc < 0) || (file_loc > INT_MAX)) + { + // This is not a limitation of miniz or tinfl, but this example. + printf("File is too large to be processed by this example.\n"); + return EXIT_FAILURE; + } + + infile_size = (uint)file_loc; + + // Open output file. + pOutfile = fopen(pDst_filename, "wb"); + if (!pOutfile) + { + printf("Failed opening output file!\n"); + return EXIT_FAILURE; + } + + printf("Input file size: %u\n", infile_size); + + // Init the z_stream + memset(&stream, 0, sizeof(stream)); + stream.next_in = s_inbuf; + stream.avail_in = 0; + stream.next_out = s_outbuf; + stream.avail_out = BUF_SIZE; + + if ((pMode[0] == 'c') || (pMode[0] == 'C')) + { + // Compression. + uint infile_remaining = infile_size; + + if (deflateInit(&stream, level) != Z_OK) + { + printf("deflateInit() failed!\n"); + return EXIT_FAILURE; + } + + for ( ; ; ) + { + int status; + if (!stream.avail_in) + { + // Input buffer is empty, so read more bytes from input file. + uint n = my_min(BUF_SIZE, infile_remaining); + + if (fread(s_inbuf, 1, n, pInfile) != n) + { + printf("Failed reading from input file!\n"); + return EXIT_FAILURE; + } + + stream.next_in = s_inbuf; + stream.avail_in = n; + + infile_remaining -= n; + //printf("Input bytes remaining: %u\n", infile_remaining); + } + + status = deflate(&stream, infile_remaining ? Z_NO_FLUSH : Z_FINISH); + + if ((status == Z_STREAM_END) || (!stream.avail_out)) + { + // Output buffer is full, or compression is done, so write buffer to output file. + uint n = BUF_SIZE - stream.avail_out; + if (fwrite(s_outbuf, 1, n, pOutfile) != n) + { + printf("Failed writing to output file!\n"); + return EXIT_FAILURE; + } + stream.next_out = s_outbuf; + stream.avail_out = BUF_SIZE; + } + + if (status == Z_STREAM_END) + break; + else if (status != Z_OK) + { + printf("deflate() failed with status %i!\n", status); + return EXIT_FAILURE; + } + } + + if (deflateEnd(&stream) != Z_OK) + { + printf("deflateEnd() failed!\n"); + return EXIT_FAILURE; + } + } + else if ((pMode[0] == 'd') || (pMode[0] == 'D')) + { + // Decompression. + uint infile_remaining = infile_size; + + if (inflateInit(&stream)) + { + printf("inflateInit() failed!\n"); + return EXIT_FAILURE; + } + + for ( ; ; ) + { + int status; + if (!stream.avail_in) + { + // Input buffer is empty, so read more bytes from input file. + uint n = my_min(BUF_SIZE, infile_remaining); + + if (fread(s_inbuf, 1, n, pInfile) != n) + { + printf("Failed reading from input file!\n"); + return EXIT_FAILURE; + } + + stream.next_in = s_inbuf; + stream.avail_in = n; + + infile_remaining -= n; + } + + status = inflate(&stream, Z_SYNC_FLUSH); + + if ((status == Z_STREAM_END) || (!stream.avail_out)) + { + // Output buffer is full, or decompression is done, so write buffer to output file. + uint n = BUF_SIZE - stream.avail_out; + if (fwrite(s_outbuf, 1, n, pOutfile) != n) + { + printf("Failed writing to output file!\n"); + return EXIT_FAILURE; + } + stream.next_out = s_outbuf; + stream.avail_out = BUF_SIZE; + } + + if (status == Z_STREAM_END) + break; + else if (status != Z_OK) + { + printf("inflate() failed with status %i!\n", status); + return EXIT_FAILURE; + } + } + + if (inflateEnd(&stream) != Z_OK) + { + printf("inflateEnd() failed!\n"); + return EXIT_FAILURE; + } + } + else + { + printf("Invalid mode!\n"); + return EXIT_FAILURE; + } + + fclose(pInfile); + if (EOF == fclose(pOutfile)) + { + printf("Failed writing to output file!\n"); + return EXIT_FAILURE; + } + + printf("Total input bytes: %u\n", (mz_uint32)stream.total_in); + printf("Total output bytes: %u\n", (mz_uint32)stream.total_out); + printf("Success.\n"); + return EXIT_SUCCESS; +} diff --git a/modules/tinyexr/deps/miniz/examples/example4.c b/modules/tinyexr/deps/miniz/examples/example4.c new file mode 100644 index 0000000..3f2d7cf --- /dev/null +++ b/modules/tinyexr/deps/miniz/examples/example4.c @@ -0,0 +1,102 @@ +// example4.c - Uses tinfl.c to decompress a zlib stream in memory to an output file +// Public domain, May 15 2011, Rich Geldreich, richgel99@gmail.com. See "unlicense" statement at the end of tinfl.c. +#include "miniz.h" +#include +#include + +typedef unsigned char uint8; +typedef unsigned short uint16; +typedef unsigned int uint; + +#define my_max(a,b) (((a) > (b)) ? (a) : (b)) +#define my_min(a,b) (((a) < (b)) ? (a) : (b)) + +static int tinfl_put_buf_func(const void* pBuf, int len, void *pUser) +{ + return len == (int)fwrite(pBuf, 1, len, (FILE*)pUser); +} + +int main(int argc, char *argv[]) +{ + int status; + FILE *pInfile, *pOutfile; + uint infile_size, outfile_size; + size_t in_buf_size; + uint8 *pCmp_data; + long file_loc; + + if (argc != 3) + { + printf("Usage: example4 infile outfile\n"); + printf("Decompresses zlib stream in file infile to file outfile.\n"); + printf("Input file must be able to fit entirely in memory.\n"); + printf("example3 can be used to create compressed zlib streams.\n"); + return EXIT_FAILURE; + } + + // Open input file. + pInfile = fopen(argv[1], "rb"); + if (!pInfile) + { + printf("Failed opening input file!\n"); + return EXIT_FAILURE; + } + + // Determine input file's size. + fseek(pInfile, 0, SEEK_END); + file_loc = ftell(pInfile); + fseek(pInfile, 0, SEEK_SET); + + if ((file_loc < 0) || (file_loc > INT_MAX)) + { + // This is not a limitation of miniz or tinfl, but this example. + printf("File is too large to be processed by this example.\n"); + return EXIT_FAILURE; + } + + infile_size = (uint)file_loc; + + pCmp_data = (uint8 *)malloc(infile_size); + if (!pCmp_data) + { + printf("Out of memory!\n"); + return EXIT_FAILURE; + } + if (fread(pCmp_data, 1, infile_size, pInfile) != infile_size) + { + printf("Failed reading input file!\n"); + return EXIT_FAILURE; + } + + // Open output file. + pOutfile = fopen(argv[2], "wb"); + if (!pOutfile) + { + printf("Failed opening output file!\n"); + return EXIT_FAILURE; + } + + printf("Input file size: %u\n", infile_size); + + in_buf_size = infile_size; + status = tinfl_decompress_mem_to_callback(pCmp_data, &in_buf_size, tinfl_put_buf_func, pOutfile, TINFL_FLAG_PARSE_ZLIB_HEADER); + if (!status) + { + printf("tinfl_decompress_mem_to_callback() failed with status %i!\n", status); + return EXIT_FAILURE; + } + + outfile_size = ftell(pOutfile); + + fclose(pInfile); + if (EOF == fclose(pOutfile)) + { + printf("Failed writing to output file!\n"); + return EXIT_FAILURE; + } + + printf("Total input bytes: %u\n", (uint)in_buf_size); + printf("Total output bytes: %u\n", outfile_size); + printf("Success.\n"); + return EXIT_SUCCESS; +} diff --git a/modules/tinyexr/deps/miniz/examples/example5.c b/modules/tinyexr/deps/miniz/examples/example5.c new file mode 100644 index 0000000..a190357 --- /dev/null +++ b/modules/tinyexr/deps/miniz/examples/example5.c @@ -0,0 +1,327 @@ +// example5.c - Demonstrates how to use miniz.c's low-level tdefl_compress() and tinfl_inflate() API's for simple file to file compression/decompression. +// The low-level API's are the fastest, make no use of dynamic memory allocation, and are the most flexible functions exposed by miniz.c. +// Public domain, April 11 2012, Rich Geldreich, richgel99@gmail.com. See "unlicense" statement at the end of tinfl.c. +// For simplicity, this example is limited to files smaller than 4GB, but this is not a limitation of miniz.c. + +// Purposely disable a whole bunch of stuff this low-level example doesn't use. +#define MINIZ_NO_STDIO +#define MINIZ_NO_ARCHIVE_APIS +#define MINIZ_NO_TIME +#define MINIZ_NO_ZLIB_APIS +#define MINIZ_NO_MALLOC +#include "miniz.h" + +// Now include stdio.h because this test uses fopen(), etc. (but we still don't want miniz.c's stdio stuff, for testing). +#include +#include + +typedef unsigned char uint8; +typedef unsigned short uint16; +typedef unsigned int uint; + +#define my_max(a,b) (((a) > (b)) ? (a) : (b)) +#define my_min(a,b) (((a) < (b)) ? (a) : (b)) + +// IN_BUF_SIZE is the size of the file read buffer. +// IN_BUF_SIZE must be >= 1 +#define IN_BUF_SIZE (1024*512) +static uint8 s_inbuf[IN_BUF_SIZE]; + +// COMP_OUT_BUF_SIZE is the size of the output buffer used during compression. +// COMP_OUT_BUF_SIZE must be >= 1 and <= OUT_BUF_SIZE +#define COMP_OUT_BUF_SIZE (1024*512) + +// OUT_BUF_SIZE is the size of the output buffer used during decompression. +// OUT_BUF_SIZE must be a power of 2 >= TINFL_LZ_DICT_SIZE (because the low-level decompressor not only writes, but reads from the output buffer as it decompresses) +//#define OUT_BUF_SIZE (TINFL_LZ_DICT_SIZE) +#define OUT_BUF_SIZE (1024*512) +static uint8 s_outbuf[OUT_BUF_SIZE]; + +// tdefl_compressor contains all the state needed by the low-level compressor so it's a pretty big struct (~300k). +// This example makes it a global vs. putting it on the stack, of course in real-world usage you'll probably malloc() or new it. +tdefl_compressor g_deflator; + +int main(int argc, char *argv[]) +{ + const char *pMode; + FILE *pInfile, *pOutfile; + uint infile_size; + int level = 9; + int p = 1; + const char *pSrc_filename; + const char *pDst_filename; + const void *next_in = s_inbuf; + size_t avail_in = 0; + void *next_out = s_outbuf; + size_t avail_out = OUT_BUF_SIZE; + size_t total_in = 0, total_out = 0; + long file_loc; + + assert(COMP_OUT_BUF_SIZE <= OUT_BUF_SIZE); + + printf("miniz.c example5 (demonstrates tinfl/tdefl)\n"); + + if (argc < 4) + { + printf("File to file compression/decompression using the low-level tinfl/tdefl API's.\n"); + printf("Usage: example5 [options] [mode:c or d] infile outfile\n"); + printf("\nModes:\n"); + printf("c - Compresses file infile to a zlib stream in file outfile\n"); + printf("d - Decompress zlib stream in file infile to file outfile\n"); + printf("\nOptions:\n"); + printf("-l[0-10] - Compression level, higher values are slower, 0 is none.\n"); + return EXIT_FAILURE; + } + + while ((p < argc) && (argv[p][0] == '-')) + { + switch (argv[p][1]) + { + case 'l': + { + level = atoi(&argv[1][2]); + if ((level < 0) || (level > 10)) + { + printf("Invalid level!\n"); + return EXIT_FAILURE; + } + break; + } + default: + { + printf("Invalid option: %s\n", argv[p]); + return EXIT_FAILURE; + } + } + p++; + } + + if ((argc - p) < 3) + { + printf("Must specify mode, input filename, and output filename after options!\n"); + return EXIT_FAILURE; + } + else if ((argc - p) > 3) + { + printf("Too many filenames!\n"); + return EXIT_FAILURE; + } + + pMode = argv[p++]; + if (!strchr("cCdD", pMode[0])) + { + printf("Invalid mode!\n"); + return EXIT_FAILURE; + } + + pSrc_filename = argv[p++]; + pDst_filename = argv[p++]; + + printf("Mode: %c, Level: %u\nInput File: \"%s\"\nOutput File: \"%s\"\n", pMode[0], level, pSrc_filename, pDst_filename); + + // Open input file. + pInfile = fopen(pSrc_filename, "rb"); + if (!pInfile) + { + printf("Failed opening input file!\n"); + return EXIT_FAILURE; + } + + // Determine input file's size. + fseek(pInfile, 0, SEEK_END); + file_loc = ftell(pInfile); + fseek(pInfile, 0, SEEK_SET); + + if ((file_loc < 0) || (file_loc > INT_MAX)) + { + // This is not a limitation of miniz or tinfl, but this example. + printf("File is too large to be processed by this example.\n"); + return EXIT_FAILURE; + } + + infile_size = (uint)file_loc; + + // Open output file. + pOutfile = fopen(pDst_filename, "wb"); + if (!pOutfile) + { + printf("Failed opening output file!\n"); + return EXIT_FAILURE; + } + + printf("Input file size: %u\n", infile_size); + + if ((pMode[0] == 'c') || (pMode[0] == 'C')) + { + // The number of dictionary probes to use at each compression level (0-10). 0=implies fastest/minimal possible probing. + static const mz_uint s_tdefl_num_probes[11] = { 0, 1, 6, 32, 16, 32, 128, 256, 512, 768, 1500 }; + + tdefl_status status; + uint infile_remaining = infile_size; + + // create tdefl() compatible flags (we have to compose the low-level flags ourselves, or use tdefl_create_comp_flags_from_zip_params() but that means MINIZ_NO_ZLIB_APIS can't be defined). + mz_uint comp_flags = TDEFL_WRITE_ZLIB_HEADER | s_tdefl_num_probes[MZ_MIN(10, level)] | ((level <= 3) ? TDEFL_GREEDY_PARSING_FLAG : 0); + if (!level) + comp_flags |= TDEFL_FORCE_ALL_RAW_BLOCKS; + + // Initialize the low-level compressor. + status = tdefl_init(&g_deflator, NULL, NULL, comp_flags); + if (status != TDEFL_STATUS_OKAY) + { + printf("tdefl_init() failed!\n"); + return EXIT_FAILURE; + } + + avail_out = COMP_OUT_BUF_SIZE; + + // Compression. + for ( ; ; ) + { + size_t in_bytes, out_bytes; + + if (!avail_in) + { + // Input buffer is empty, so read more bytes from input file. + uint n = my_min(IN_BUF_SIZE, infile_remaining); + + if (fread(s_inbuf, 1, n, pInfile) != n) + { + printf("Failed reading from input file!\n"); + return EXIT_FAILURE; + } + + next_in = s_inbuf; + avail_in = n; + + infile_remaining -= n; + //printf("Input bytes remaining: %u\n", infile_remaining); + } + + in_bytes = avail_in; + out_bytes = avail_out; + // Compress as much of the input as possible (or all of it) to the output buffer. + status = tdefl_compress(&g_deflator, next_in, &in_bytes, next_out, &out_bytes, infile_remaining ? TDEFL_NO_FLUSH : TDEFL_FINISH); + + next_in = (const char *)next_in + in_bytes; + avail_in -= in_bytes; + total_in += in_bytes; + + next_out = (char *)next_out + out_bytes; + avail_out -= out_bytes; + total_out += out_bytes; + + if ((status != TDEFL_STATUS_OKAY) || (!avail_out)) + { + // Output buffer is full, or compression is done or failed, so write buffer to output file. + uint n = COMP_OUT_BUF_SIZE - (uint)avail_out; + if (fwrite(s_outbuf, 1, n, pOutfile) != n) + { + printf("Failed writing to output file!\n"); + return EXIT_FAILURE; + } + next_out = s_outbuf; + avail_out = COMP_OUT_BUF_SIZE; + } + + if (status == TDEFL_STATUS_DONE) + { + // Compression completed successfully. + break; + } + else if (status != TDEFL_STATUS_OKAY) + { + // Compression somehow failed. + printf("tdefl_compress() failed with status %i!\n", status); + return EXIT_FAILURE; + } + } + } + else if ((pMode[0] == 'd') || (pMode[0] == 'D')) + { + // Decompression. + uint infile_remaining = infile_size; + + tinfl_decompressor inflator; + tinfl_init(&inflator); + + for ( ; ; ) + { + size_t in_bytes, out_bytes; + tinfl_status status; + if (!avail_in) + { + // Input buffer is empty, so read more bytes from input file. + uint n = my_min(IN_BUF_SIZE, infile_remaining); + + if (fread(s_inbuf, 1, n, pInfile) != n) + { + printf("Failed reading from input file!\n"); + return EXIT_FAILURE; + } + + next_in = s_inbuf; + avail_in = n; + + infile_remaining -= n; + } + + in_bytes = avail_in; + out_bytes = avail_out; + status = tinfl_decompress(&inflator, (const mz_uint8 *)next_in, &in_bytes, s_outbuf, (mz_uint8 *)next_out, &out_bytes, (infile_remaining ? TINFL_FLAG_HAS_MORE_INPUT : 0) | TINFL_FLAG_PARSE_ZLIB_HEADER); + + avail_in -= in_bytes; + next_in = (const mz_uint8 *)next_in + in_bytes; + total_in += in_bytes; + + avail_out -= out_bytes; + next_out = (mz_uint8 *)next_out + out_bytes; + total_out += out_bytes; + + if ((status <= TINFL_STATUS_DONE) || (!avail_out)) + { + // Output buffer is full, or decompression is done, so write buffer to output file. + uint n = OUT_BUF_SIZE - (uint)avail_out; + if (fwrite(s_outbuf, 1, n, pOutfile) != n) + { + printf("Failed writing to output file!\n"); + return EXIT_FAILURE; + } + next_out = s_outbuf; + avail_out = OUT_BUF_SIZE; + } + + // If status is <= TINFL_STATUS_DONE then either decompression is done or something went wrong. + if (status <= TINFL_STATUS_DONE) + { + if (status == TINFL_STATUS_DONE) + { + // Decompression completed successfully. + break; + } + else + { + // Decompression failed. + printf("tinfl_decompress() failed with status %i!\n", status); + return EXIT_FAILURE; + } + } + } + } + else + { + printf("Invalid mode!\n"); + return EXIT_FAILURE; + } + + fclose(pInfile); + if (EOF == fclose(pOutfile)) + { + printf("Failed writing to output file!\n"); + return EXIT_FAILURE; + } + + printf("Total input bytes: %u\n", (mz_uint32)total_in); + printf("Total output bytes: %u\n", (mz_uint32)total_out); + printf("Success.\n"); + return EXIT_SUCCESS; +} diff --git a/modules/tinyexr/deps/miniz/examples/example6.c b/modules/tinyexr/deps/miniz/examples/example6.c new file mode 100644 index 0000000..abbb64f --- /dev/null +++ b/modules/tinyexr/deps/miniz/examples/example6.c @@ -0,0 +1,162 @@ +// example6.c - Demonstrates how to miniz's PNG writer func +// Public domain, April 11 2012, Rich Geldreich, richgel99@gmail.com. See "unlicense" statement at the end of tinfl.c. +// Mandlebrot set code from http://rosettacode.org/wiki/Mandelbrot_set#C +// Must link this example against libm on Linux. + +// Purposely disable a whole bunch of stuff this low-level example doesn't use. +#define MINIZ_NO_STDIO +#define MINIZ_NO_TIME +#define MINIZ_NO_ZLIB_APIS +#include "miniz.h" + +// Now include stdio.h because this test uses fopen(), etc. (but we still don't want miniz.c's stdio stuff, for testing). +#include +#include +#include + +typedef unsigned char uint8; +typedef unsigned short uint16; +typedef unsigned int uint; + +typedef struct +{ + uint8 r, g, b; +} rgb_t; + +static void hsv_to_rgb(int hue, int min, int max, rgb_t *p) +{ + const int invert = 0; + const int saturation = 1; + const int color_rotate = 0; + + if (min == max) max = min + 1; + if (invert) hue = max - (hue - min); + if (!saturation) { + p->r = p->g = p->b = 255 * (max - hue) / (max - min); + return; + } + double h = fmod(color_rotate + 1e-4 + 4.0 * (hue - min) / (max - min), 6); + double c = 255.0f * saturation; + double X = c * (1 - fabs(fmod(h, 2) - 1)); + + p->r = p->g = p->b = 0; + + switch((int)h) { + case 0: p->r = c; p->g = X; return; + case 1: p->r = X; p->g = c; return; + case 2: p->g = c; p->b = X; return; + case 3: p->g = X; p->b = c; return; + case 4: p->r = X; p->b = c; return; + default:p->r = c; p->b = X; + } +} + +int main(int argc, char *argv[]) +{ + (void)argc, (void)argv; + + // Image resolution + const int iXmax = 4096; + const int iYmax = 4096; + + // Output filename + static const char *pFilename = "mandelbrot.png"; + + int iX, iY; + const double CxMin = -2.5; + const double CxMax = 1.5; + const double CyMin = -2.0; + const double CyMax = 2.0; + + double PixelWidth = (CxMax - CxMin) / iXmax; + double PixelHeight = (CyMax - CyMin) / iYmax; + + // Z=Zx+Zy*i ; Z0 = 0 + double Zx, Zy; + double Zx2, Zy2; // Zx2=Zx*Zx; Zy2=Zy*Zy + + int Iteration; + const int IterationMax = 200; + + // bail-out value , radius of circle + const double EscapeRadius = 2; + double ER2=EscapeRadius * EscapeRadius; + + uint8 *pImage = (uint8 *)malloc(iXmax * 3 * iYmax); + + // world ( double) coordinate = parameter plane + double Cx,Cy; + + int MinIter = 9999, MaxIter = 0; + + for(iY = 0; iY < iYmax; iY++) + { + Cy = CyMin + iY * PixelHeight; + if (fabs(Cy) < PixelHeight/2) + Cy = 0.0; // Main antenna + + for(iX = 0; iX < iXmax; iX++) + { + uint8 *color = pImage + (iX * 3) + (iY * iXmax * 3); + + Cx = CxMin + iX * PixelWidth; + + // initial value of orbit = critical point Z= 0 + Zx = 0.0; + Zy = 0.0; + Zx2 = Zx * Zx; + Zy2 = Zy * Zy; + + for (Iteration=0;Iteration> 8; + color[2] = 0; + + if (Iteration < MinIter) + MinIter = Iteration; + if (Iteration > MaxIter) + MaxIter = Iteration; + } + } + + for(iY = 0; iY < iYmax; iY++) + { + for(iX = 0; iX < iXmax; iX++) + { + uint8 *color = (uint8 *)(pImage + (iX * 3) + (iY * iXmax * 3)); + + uint Iterations = color[0] | (color[1] << 8U); + + hsv_to_rgb(Iterations, MinIter, MaxIter, (rgb_t *)color); + } + } + + // Now write the PNG image. + { + size_t png_data_size = 0; + void *pPNG_data = tdefl_write_image_to_png_file_in_memory_ex(pImage, iXmax, iYmax, 3, &png_data_size, 6, MZ_FALSE); + if (!pPNG_data) + fprintf(stderr, "tdefl_write_image_to_png_file_in_memory_ex() failed!\n"); + else + { + FILE *pFile = fopen(pFilename, "wb"); + fwrite(pPNG_data, 1, png_data_size, pFile); + fclose(pFile); + printf("Wrote %s\n", pFilename); + } + + // mz_free() is by default just an alias to free() internally, but if you've overridden miniz's allocation funcs you'll probably need to call mz_free(). + mz_free(pPNG_data); + } + + free(pImage); + + return EXIT_SUCCESS; +} diff --git a/modules/tinyexr/deps/miniz/miniz.c b/modules/tinyexr/deps/miniz/miniz.c new file mode 100644 index 0000000..87bdedb --- /dev/null +++ b/modules/tinyexr/deps/miniz/miniz.c @@ -0,0 +1,7733 @@ +#include "miniz.h" +/************************************************************************** + * + * Copyright 2013-2014 RAD Game Tools and Valve Software + * Copyright 2010-2014 Rich Geldreich and Tenacious Software LLC + * All Rights Reserved. + * + * 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. + * + **************************************************************************/ + + + +typedef unsigned char mz_validate_uint16[sizeof(mz_uint16) == 2 ? 1 : -1]; +typedef unsigned char mz_validate_uint32[sizeof(mz_uint32) == 4 ? 1 : -1]; +typedef unsigned char mz_validate_uint64[sizeof(mz_uint64) == 8 ? 1 : -1]; + +#ifdef __cplusplus +extern "C" { +#endif + +/* ------------------- zlib-style API's */ + +mz_ulong mz_adler32(mz_ulong adler, const unsigned char *ptr, size_t buf_len) +{ + mz_uint32 i, s1 = (mz_uint32)(adler & 0xffff), s2 = (mz_uint32)(adler >> 16); + size_t block_len = buf_len % 5552; + if (!ptr) + return MZ_ADLER32_INIT; + while (buf_len) + { + for (i = 0; i + 7 < block_len; i += 8, ptr += 8) + { + s1 += ptr[0], s2 += s1; + s1 += ptr[1], s2 += s1; + s1 += ptr[2], s2 += s1; + s1 += ptr[3], s2 += s1; + s1 += ptr[4], s2 += s1; + s1 += ptr[5], s2 += s1; + s1 += ptr[6], s2 += s1; + s1 += ptr[7], s2 += s1; + } + for (; i < block_len; ++i) + s1 += *ptr++, s2 += s1; + s1 %= 65521U, s2 %= 65521U; + buf_len -= block_len; + block_len = 5552; + } + return (s2 << 16) + s1; +} + +/* Karl Malbrain's compact CRC-32. See "A compact CCITT crc16 and crc32 C implementation that balances processor cache usage against speed": http://www.geocities.com/malbrain/ */ +#if 0 + mz_ulong mz_crc32(mz_ulong crc, const mz_uint8 *ptr, size_t buf_len) + { + static const mz_uint32 s_crc32[16] = { 0, 0x1db71064, 0x3b6e20c8, 0x26d930ac, 0x76dc4190, 0x6b6b51f4, 0x4db26158, 0x5005713c, + 0xedb88320, 0xf00f9344, 0xd6d6a3e8, 0xcb61b38c, 0x9b64c2b0, 0x86d3d2d4, 0xa00ae278, 0xbdbdf21c }; + mz_uint32 crcu32 = (mz_uint32)crc; + if (!ptr) + return MZ_CRC32_INIT; + crcu32 = ~crcu32; + while (buf_len--) + { + mz_uint8 b = *ptr++; + crcu32 = (crcu32 >> 4) ^ s_crc32[(crcu32 & 0xF) ^ (b & 0xF)]; + crcu32 = (crcu32 >> 4) ^ s_crc32[(crcu32 & 0xF) ^ (b >> 4)]; + } + return ~crcu32; + } +#elif defined(USE_EXTERNAL_MZCRC) +/* If USE_EXTERNAL_CRC is defined, an external module will export the + * mz_crc32() symbol for us to use, e.g. an SSE-accelerated version. + * Depending on the impl, it may be necessary to ~ the input/output crc values. + */ +mz_ulong mz_crc32(mz_ulong crc, const mz_uint8 *ptr, size_t buf_len); +#else +/* Faster, but larger CPU cache footprint. + */ +mz_ulong mz_crc32(mz_ulong crc, const mz_uint8 *ptr, size_t buf_len) +{ + static const mz_uint32 s_crc_table[256] = + { + 0x00000000, 0x77073096, 0xEE0E612C, 0x990951BA, 0x076DC419, 0x706AF48F, 0xE963A535, + 0x9E6495A3, 0x0EDB8832, 0x79DCB8A4, 0xE0D5E91E, 0x97D2D988, 0x09B64C2B, 0x7EB17CBD, + 0xE7B82D07, 0x90BF1D91, 0x1DB71064, 0x6AB020F2, 0xF3B97148, 0x84BE41DE, 0x1ADAD47D, + 0x6DDDE4EB, 0xF4D4B551, 0x83D385C7, 0x136C9856, 0x646BA8C0, 0xFD62F97A, 0x8A65C9EC, + 0x14015C4F, 0x63066CD9, 0xFA0F3D63, 0x8D080DF5, 0x3B6E20C8, 0x4C69105E, 0xD56041E4, + 0xA2677172, 0x3C03E4D1, 0x4B04D447, 0xD20D85FD, 0xA50AB56B, 0x35B5A8FA, 0x42B2986C, + 0xDBBBC9D6, 0xACBCF940, 0x32D86CE3, 0x45DF5C75, 0xDCD60DCF, 0xABD13D59, 0x26D930AC, + 0x51DE003A, 0xC8D75180, 0xBFD06116, 0x21B4F4B5, 0x56B3C423, 0xCFBA9599, 0xB8BDA50F, + 0x2802B89E, 0x5F058808, 0xC60CD9B2, 0xB10BE924, 0x2F6F7C87, 0x58684C11, 0xC1611DAB, + 0xB6662D3D, 0x76DC4190, 0x01DB7106, 0x98D220BC, 0xEFD5102A, 0x71B18589, 0x06B6B51F, + 0x9FBFE4A5, 0xE8B8D433, 0x7807C9A2, 0x0F00F934, 0x9609A88E, 0xE10E9818, 0x7F6A0DBB, + 0x086D3D2D, 0x91646C97, 0xE6635C01, 0x6B6B51F4, 0x1C6C6162, 0x856530D8, 0xF262004E, + 0x6C0695ED, 0x1B01A57B, 0x8208F4C1, 0xF50FC457, 0x65B0D9C6, 0x12B7E950, 0x8BBEB8EA, + 0xFCB9887C, 0x62DD1DDF, 0x15DA2D49, 0x8CD37CF3, 0xFBD44C65, 0x4DB26158, 0x3AB551CE, + 0xA3BC0074, 0xD4BB30E2, 0x4ADFA541, 0x3DD895D7, 0xA4D1C46D, 0xD3D6F4FB, 0x4369E96A, + 0x346ED9FC, 0xAD678846, 0xDA60B8D0, 0x44042D73, 0x33031DE5, 0xAA0A4C5F, 0xDD0D7CC9, + 0x5005713C, 0x270241AA, 0xBE0B1010, 0xC90C2086, 0x5768B525, 0x206F85B3, 0xB966D409, + 0xCE61E49F, 0x5EDEF90E, 0x29D9C998, 0xB0D09822, 0xC7D7A8B4, 0x59B33D17, 0x2EB40D81, + 0xB7BD5C3B, 0xC0BA6CAD, 0xEDB88320, 0x9ABFB3B6, 0x03B6E20C, 0x74B1D29A, 0xEAD54739, + 0x9DD277AF, 0x04DB2615, 0x73DC1683, 0xE3630B12, 0x94643B84, 0x0D6D6A3E, 0x7A6A5AA8, + 0xE40ECF0B, 0x9309FF9D, 0x0A00AE27, 0x7D079EB1, 0xF00F9344, 0x8708A3D2, 0x1E01F268, + 0x6906C2FE, 0xF762575D, 0x806567CB, 0x196C3671, 0x6E6B06E7, 0xFED41B76, 0x89D32BE0, + 0x10DA7A5A, 0x67DD4ACC, 0xF9B9DF6F, 0x8EBEEFF9, 0x17B7BE43, 0x60B08ED5, 0xD6D6A3E8, + 0xA1D1937E, 0x38D8C2C4, 0x4FDFF252, 0xD1BB67F1, 0xA6BC5767, 0x3FB506DD, 0x48B2364B, + 0xD80D2BDA, 0xAF0A1B4C, 0x36034AF6, 0x41047A60, 0xDF60EFC3, 0xA867DF55, 0x316E8EEF, + 0x4669BE79, 0xCB61B38C, 0xBC66831A, 0x256FD2A0, 0x5268E236, 0xCC0C7795, 0xBB0B4703, + 0x220216B9, 0x5505262F, 0xC5BA3BBE, 0xB2BD0B28, 0x2BB45A92, 0x5CB36A04, 0xC2D7FFA7, + 0xB5D0CF31, 0x2CD99E8B, 0x5BDEAE1D, 0x9B64C2B0, 0xEC63F226, 0x756AA39C, 0x026D930A, + 0x9C0906A9, 0xEB0E363F, 0x72076785, 0x05005713, 0x95BF4A82, 0xE2B87A14, 0x7BB12BAE, + 0x0CB61B38, 0x92D28E9B, 0xE5D5BE0D, 0x7CDCEFB7, 0x0BDBDF21, 0x86D3D2D4, 0xF1D4E242, + 0x68DDB3F8, 0x1FDA836E, 0x81BE16CD, 0xF6B9265B, 0x6FB077E1, 0x18B74777, 0x88085AE6, + 0xFF0F6A70, 0x66063BCA, 0x11010B5C, 0x8F659EFF, 0xF862AE69, 0x616BFFD3, 0x166CCF45, + 0xA00AE278, 0xD70DD2EE, 0x4E048354, 0x3903B3C2, 0xA7672661, 0xD06016F7, 0x4969474D, + 0x3E6E77DB, 0xAED16A4A, 0xD9D65ADC, 0x40DF0B66, 0x37D83BF0, 0xA9BCAE53, 0xDEBB9EC5, + 0x47B2CF7F, 0x30B5FFE9, 0xBDBDF21C, 0xCABAC28A, 0x53B39330, 0x24B4A3A6, 0xBAD03605, + 0xCDD70693, 0x54DE5729, 0x23D967BF, 0xB3667A2E, 0xC4614AB8, 0x5D681B02, 0x2A6F2B94, + 0xB40BBE37, 0xC30C8EA1, 0x5A05DF1B, 0x2D02EF8D + }; + + mz_uint32 crc32 = (mz_uint32)crc ^ 0xFFFFFFFF; + const mz_uint8 *pByte_buf = (const mz_uint8 *)ptr; + + while (buf_len >= 4) + { + crc32 = (crc32 >> 8) ^ s_crc_table[(crc32 ^ pByte_buf[0]) & 0xFF]; + crc32 = (crc32 >> 8) ^ s_crc_table[(crc32 ^ pByte_buf[1]) & 0xFF]; + crc32 = (crc32 >> 8) ^ s_crc_table[(crc32 ^ pByte_buf[2]) & 0xFF]; + crc32 = (crc32 >> 8) ^ s_crc_table[(crc32 ^ pByte_buf[3]) & 0xFF]; + pByte_buf += 4; + buf_len -= 4; + } + + while (buf_len) + { + crc32 = (crc32 >> 8) ^ s_crc_table[(crc32 ^ pByte_buf[0]) & 0xFF]; + ++pByte_buf; + --buf_len; + } + + return ~crc32; +} +#endif + +void mz_free(void *p) +{ + MZ_FREE(p); +} + +MINIZ_EXPORT void *miniz_def_alloc_func(void *opaque, size_t items, size_t size) +{ + (void)opaque, (void)items, (void)size; + return MZ_MALLOC(items * size); +} +MINIZ_EXPORT void miniz_def_free_func(void *opaque, void *address) +{ + (void)opaque, (void)address; + MZ_FREE(address); +} +MINIZ_EXPORT void *miniz_def_realloc_func(void *opaque, void *address, size_t items, size_t size) +{ + (void)opaque, (void)address, (void)items, (void)size; + return MZ_REALLOC(address, items * size); +} + +const char *mz_version(void) +{ + return MZ_VERSION; +} + +#ifndef MINIZ_NO_ZLIB_APIS + +int mz_deflateInit(mz_streamp pStream, int level) +{ + return mz_deflateInit2(pStream, level, MZ_DEFLATED, MZ_DEFAULT_WINDOW_BITS, 9, MZ_DEFAULT_STRATEGY); +} + +int mz_deflateInit2(mz_streamp pStream, int level, int method, int window_bits, int mem_level, int strategy) +{ + tdefl_compressor *pComp; + mz_uint comp_flags = TDEFL_COMPUTE_ADLER32 | tdefl_create_comp_flags_from_zip_params(level, window_bits, strategy); + + if (!pStream) + return MZ_STREAM_ERROR; + if ((method != MZ_DEFLATED) || ((mem_level < 1) || (mem_level > 9)) || ((window_bits != MZ_DEFAULT_WINDOW_BITS) && (-window_bits != MZ_DEFAULT_WINDOW_BITS))) + return MZ_PARAM_ERROR; + + pStream->data_type = 0; + pStream->adler = MZ_ADLER32_INIT; + pStream->msg = NULL; + pStream->reserved = 0; + pStream->total_in = 0; + pStream->total_out = 0; + if (!pStream->zalloc) + pStream->zalloc = miniz_def_alloc_func; + if (!pStream->zfree) + pStream->zfree = miniz_def_free_func; + + pComp = (tdefl_compressor *)pStream->zalloc(pStream->opaque, 1, sizeof(tdefl_compressor)); + if (!pComp) + return MZ_MEM_ERROR; + + pStream->state = (struct mz_internal_state *)pComp; + + if (tdefl_init(pComp, NULL, NULL, comp_flags) != TDEFL_STATUS_OKAY) + { + mz_deflateEnd(pStream); + return MZ_PARAM_ERROR; + } + + return MZ_OK; +} + +int mz_deflateReset(mz_streamp pStream) +{ + if ((!pStream) || (!pStream->state) || (!pStream->zalloc) || (!pStream->zfree)) + return MZ_STREAM_ERROR; + pStream->total_in = pStream->total_out = 0; + tdefl_init((tdefl_compressor *)pStream->state, NULL, NULL, ((tdefl_compressor *)pStream->state)->m_flags); + return MZ_OK; +} + +int mz_deflate(mz_streamp pStream, int flush) +{ + size_t in_bytes, out_bytes; + mz_ulong orig_total_in, orig_total_out; + int mz_status = MZ_OK; + + if ((!pStream) || (!pStream->state) || (flush < 0) || (flush > MZ_FINISH) || (!pStream->next_out)) + return MZ_STREAM_ERROR; + if (!pStream->avail_out) + return MZ_BUF_ERROR; + + if (flush == MZ_PARTIAL_FLUSH) + flush = MZ_SYNC_FLUSH; + + if (((tdefl_compressor *)pStream->state)->m_prev_return_status == TDEFL_STATUS_DONE) + return (flush == MZ_FINISH) ? MZ_STREAM_END : MZ_BUF_ERROR; + + orig_total_in = pStream->total_in; + orig_total_out = pStream->total_out; + for (;;) + { + tdefl_status defl_status; + in_bytes = pStream->avail_in; + out_bytes = pStream->avail_out; + + defl_status = tdefl_compress((tdefl_compressor *)pStream->state, pStream->next_in, &in_bytes, pStream->next_out, &out_bytes, (tdefl_flush)flush); + pStream->next_in += (mz_uint)in_bytes; + pStream->avail_in -= (mz_uint)in_bytes; + pStream->total_in += (mz_uint)in_bytes; + pStream->adler = tdefl_get_adler32((tdefl_compressor *)pStream->state); + + pStream->next_out += (mz_uint)out_bytes; + pStream->avail_out -= (mz_uint)out_bytes; + pStream->total_out += (mz_uint)out_bytes; + + if (defl_status < 0) + { + mz_status = MZ_STREAM_ERROR; + break; + } + else if (defl_status == TDEFL_STATUS_DONE) + { + mz_status = MZ_STREAM_END; + break; + } + else if (!pStream->avail_out) + break; + else if ((!pStream->avail_in) && (flush != MZ_FINISH)) + { + if ((flush) || (pStream->total_in != orig_total_in) || (pStream->total_out != orig_total_out)) + break; + return MZ_BUF_ERROR; /* Can't make forward progress without some input. + */ + } + } + return mz_status; +} + +int mz_deflateEnd(mz_streamp pStream) +{ + if (!pStream) + return MZ_STREAM_ERROR; + if (pStream->state) + { + pStream->zfree(pStream->opaque, pStream->state); + pStream->state = NULL; + } + return MZ_OK; +} + +mz_ulong mz_deflateBound(mz_streamp pStream, mz_ulong source_len) +{ + (void)pStream; + /* This is really over conservative. (And lame, but it's actually pretty tricky to compute a true upper bound given the way tdefl's blocking works.) */ + return MZ_MAX(128 + (source_len * 110) / 100, 128 + source_len + ((source_len / (31 * 1024)) + 1) * 5); +} + +int mz_compress2(unsigned char *pDest, mz_ulong *pDest_len, const unsigned char *pSource, mz_ulong source_len, int level) +{ + int status; + mz_stream stream; + memset(&stream, 0, sizeof(stream)); + + /* In case mz_ulong is 64-bits (argh I hate longs). */ + if ((source_len | *pDest_len) > 0xFFFFFFFFU) + return MZ_PARAM_ERROR; + + stream.next_in = pSource; + stream.avail_in = (mz_uint32)source_len; + stream.next_out = pDest; + stream.avail_out = (mz_uint32)*pDest_len; + + status = mz_deflateInit(&stream, level); + if (status != MZ_OK) + return status; + + status = mz_deflate(&stream, MZ_FINISH); + if (status != MZ_STREAM_END) + { + mz_deflateEnd(&stream); + return (status == MZ_OK) ? MZ_BUF_ERROR : status; + } + + *pDest_len = stream.total_out; + return mz_deflateEnd(&stream); +} + +int mz_compress(unsigned char *pDest, mz_ulong *pDest_len, const unsigned char *pSource, mz_ulong source_len) +{ + return mz_compress2(pDest, pDest_len, pSource, source_len, MZ_DEFAULT_COMPRESSION); +} + +mz_ulong mz_compressBound(mz_ulong source_len) +{ + return mz_deflateBound(NULL, source_len); +} + +typedef struct +{ + tinfl_decompressor m_decomp; + mz_uint m_dict_ofs, m_dict_avail, m_first_call, m_has_flushed; + int m_window_bits; + mz_uint8 m_dict[TINFL_LZ_DICT_SIZE]; + tinfl_status m_last_status; +} inflate_state; + +int mz_inflateInit2(mz_streamp pStream, int window_bits) +{ + inflate_state *pDecomp; + if (!pStream) + return MZ_STREAM_ERROR; + if ((window_bits != MZ_DEFAULT_WINDOW_BITS) && (-window_bits != MZ_DEFAULT_WINDOW_BITS)) + return MZ_PARAM_ERROR; + + pStream->data_type = 0; + pStream->adler = 0; + pStream->msg = NULL; + pStream->total_in = 0; + pStream->total_out = 0; + pStream->reserved = 0; + if (!pStream->zalloc) + pStream->zalloc = miniz_def_alloc_func; + if (!pStream->zfree) + pStream->zfree = miniz_def_free_func; + + pDecomp = (inflate_state *)pStream->zalloc(pStream->opaque, 1, sizeof(inflate_state)); + if (!pDecomp) + return MZ_MEM_ERROR; + + pStream->state = (struct mz_internal_state *)pDecomp; + + tinfl_init(&pDecomp->m_decomp); + pDecomp->m_dict_ofs = 0; + pDecomp->m_dict_avail = 0; + pDecomp->m_last_status = TINFL_STATUS_NEEDS_MORE_INPUT; + pDecomp->m_first_call = 1; + pDecomp->m_has_flushed = 0; + pDecomp->m_window_bits = window_bits; + + return MZ_OK; +} + +int mz_inflateInit(mz_streamp pStream) +{ + return mz_inflateInit2(pStream, MZ_DEFAULT_WINDOW_BITS); +} + +int mz_inflateReset(mz_streamp pStream) +{ + inflate_state *pDecomp; + if (!pStream) + return MZ_STREAM_ERROR; + + pStream->data_type = 0; + pStream->adler = 0; + pStream->msg = NULL; + pStream->total_in = 0; + pStream->total_out = 0; + pStream->reserved = 0; + + pDecomp = (inflate_state *)pStream->state; + + tinfl_init(&pDecomp->m_decomp); + pDecomp->m_dict_ofs = 0; + pDecomp->m_dict_avail = 0; + pDecomp->m_last_status = TINFL_STATUS_NEEDS_MORE_INPUT; + pDecomp->m_first_call = 1; + pDecomp->m_has_flushed = 0; + /* pDecomp->m_window_bits = window_bits */; + + return MZ_OK; +} + +int mz_inflate(mz_streamp pStream, int flush) +{ + inflate_state *pState; + mz_uint n, first_call, decomp_flags = TINFL_FLAG_COMPUTE_ADLER32; + size_t in_bytes, out_bytes, orig_avail_in; + tinfl_status status; + + if ((!pStream) || (!pStream->state)) + return MZ_STREAM_ERROR; + if (flush == MZ_PARTIAL_FLUSH) + flush = MZ_SYNC_FLUSH; + if ((flush) && (flush != MZ_SYNC_FLUSH) && (flush != MZ_FINISH)) + return MZ_STREAM_ERROR; + + pState = (inflate_state *)pStream->state; + if (pState->m_window_bits > 0) + decomp_flags |= TINFL_FLAG_PARSE_ZLIB_HEADER; + orig_avail_in = pStream->avail_in; + + first_call = pState->m_first_call; + pState->m_first_call = 0; + if (pState->m_last_status < 0) + return MZ_DATA_ERROR; + + if (pState->m_has_flushed && (flush != MZ_FINISH)) + return MZ_STREAM_ERROR; + pState->m_has_flushed |= (flush == MZ_FINISH); + + if ((flush == MZ_FINISH) && (first_call)) + { + /* MZ_FINISH on the first call implies that the input and output buffers are large enough to hold the entire compressed/decompressed file. */ + decomp_flags |= TINFL_FLAG_USING_NON_WRAPPING_OUTPUT_BUF; + in_bytes = pStream->avail_in; + out_bytes = pStream->avail_out; + status = tinfl_decompress(&pState->m_decomp, pStream->next_in, &in_bytes, pStream->next_out, pStream->next_out, &out_bytes, decomp_flags); + pState->m_last_status = status; + pStream->next_in += (mz_uint)in_bytes; + pStream->avail_in -= (mz_uint)in_bytes; + pStream->total_in += (mz_uint)in_bytes; + pStream->adler = tinfl_get_adler32(&pState->m_decomp); + pStream->next_out += (mz_uint)out_bytes; + pStream->avail_out -= (mz_uint)out_bytes; + pStream->total_out += (mz_uint)out_bytes; + + if (status < 0) + return MZ_DATA_ERROR; + else if (status != TINFL_STATUS_DONE) + { + pState->m_last_status = TINFL_STATUS_FAILED; + return MZ_BUF_ERROR; + } + return MZ_STREAM_END; + } + /* flush != MZ_FINISH then we must assume there's more input. */ + if (flush != MZ_FINISH) + decomp_flags |= TINFL_FLAG_HAS_MORE_INPUT; + + if (pState->m_dict_avail) + { + n = MZ_MIN(pState->m_dict_avail, pStream->avail_out); + memcpy(pStream->next_out, pState->m_dict + pState->m_dict_ofs, n); + pStream->next_out += n; + pStream->avail_out -= n; + pStream->total_out += n; + pState->m_dict_avail -= n; + pState->m_dict_ofs = (pState->m_dict_ofs + n) & (TINFL_LZ_DICT_SIZE - 1); + return ((pState->m_last_status == TINFL_STATUS_DONE) && (!pState->m_dict_avail)) ? MZ_STREAM_END : MZ_OK; + } + + for (;;) + { + in_bytes = pStream->avail_in; + out_bytes = TINFL_LZ_DICT_SIZE - pState->m_dict_ofs; + + status = tinfl_decompress(&pState->m_decomp, pStream->next_in, &in_bytes, pState->m_dict, pState->m_dict + pState->m_dict_ofs, &out_bytes, decomp_flags); + pState->m_last_status = status; + + pStream->next_in += (mz_uint)in_bytes; + pStream->avail_in -= (mz_uint)in_bytes; + pStream->total_in += (mz_uint)in_bytes; + pStream->adler = tinfl_get_adler32(&pState->m_decomp); + + pState->m_dict_avail = (mz_uint)out_bytes; + + n = MZ_MIN(pState->m_dict_avail, pStream->avail_out); + memcpy(pStream->next_out, pState->m_dict + pState->m_dict_ofs, n); + pStream->next_out += n; + pStream->avail_out -= n; + pStream->total_out += n; + pState->m_dict_avail -= n; + pState->m_dict_ofs = (pState->m_dict_ofs + n) & (TINFL_LZ_DICT_SIZE - 1); + + if (status < 0) + return MZ_DATA_ERROR; /* Stream is corrupted (there could be some uncompressed data left in the output dictionary - oh well). */ + else if ((status == TINFL_STATUS_NEEDS_MORE_INPUT) && (!orig_avail_in)) + return MZ_BUF_ERROR; /* Signal caller that we can't make forward progress without supplying more input or by setting flush to MZ_FINISH. */ + else if (flush == MZ_FINISH) + { + /* The output buffer MUST be large to hold the remaining uncompressed data when flush==MZ_FINISH. */ + if (status == TINFL_STATUS_DONE) + return pState->m_dict_avail ? MZ_BUF_ERROR : MZ_STREAM_END; + /* status here must be TINFL_STATUS_HAS_MORE_OUTPUT, which means there's at least 1 more byte on the way. If there's no more room left in the output buffer then something is wrong. */ + else if (!pStream->avail_out) + return MZ_BUF_ERROR; + } + else if ((status == TINFL_STATUS_DONE) || (!pStream->avail_in) || (!pStream->avail_out) || (pState->m_dict_avail)) + break; + } + + return ((status == TINFL_STATUS_DONE) && (!pState->m_dict_avail)) ? MZ_STREAM_END : MZ_OK; +} + +int mz_inflateEnd(mz_streamp pStream) +{ + if (!pStream) + return MZ_STREAM_ERROR; + if (pStream->state) + { + pStream->zfree(pStream->opaque, pStream->state); + pStream->state = NULL; + } + return MZ_OK; +} +int mz_uncompress2(unsigned char *pDest, mz_ulong *pDest_len, const unsigned char *pSource, mz_ulong *pSource_len) +{ + mz_stream stream; + int status; + memset(&stream, 0, sizeof(stream)); + + /* In case mz_ulong is 64-bits (argh I hate longs). */ + if ((*pSource_len | *pDest_len) > 0xFFFFFFFFU) + return MZ_PARAM_ERROR; + + stream.next_in = pSource; + stream.avail_in = (mz_uint32)*pSource_len; + stream.next_out = pDest; + stream.avail_out = (mz_uint32)*pDest_len; + + status = mz_inflateInit(&stream); + if (status != MZ_OK) + return status; + + status = mz_inflate(&stream, MZ_FINISH); + *pSource_len = *pSource_len - stream.avail_in; + if (status != MZ_STREAM_END) + { + mz_inflateEnd(&stream); + return ((status == MZ_BUF_ERROR) && (!stream.avail_in)) ? MZ_DATA_ERROR : status; + } + *pDest_len = stream.total_out; + + return mz_inflateEnd(&stream); +} + +int mz_uncompress(unsigned char *pDest, mz_ulong *pDest_len, const unsigned char *pSource, mz_ulong source_len) +{ + return mz_uncompress2(pDest, pDest_len, pSource, &source_len); +} + +const char *mz_error(int err) +{ + static struct + { + int m_err; + const char *m_pDesc; + } s_error_descs[] = + { + { MZ_OK, "" }, { MZ_STREAM_END, "stream end" }, { MZ_NEED_DICT, "need dictionary" }, { MZ_ERRNO, "file error" }, { MZ_STREAM_ERROR, "stream error" }, { MZ_DATA_ERROR, "data error" }, { MZ_MEM_ERROR, "out of memory" }, { MZ_BUF_ERROR, "buf error" }, { MZ_VERSION_ERROR, "version error" }, { MZ_PARAM_ERROR, "parameter error" } + }; + mz_uint i; + for (i = 0; i < sizeof(s_error_descs) / sizeof(s_error_descs[0]); ++i) + if (s_error_descs[i].m_err == err) + return s_error_descs[i].m_pDesc; + return NULL; +} + +#endif /*MINIZ_NO_ZLIB_APIS */ + +#ifdef __cplusplus +} +#endif + +/* + 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. + + For more information, please refer to +*/ +/************************************************************************** + * + * Copyright 2013-2014 RAD Game Tools and Valve Software + * Copyright 2010-2014 Rich Geldreich and Tenacious Software LLC + * All Rights Reserved. + * + * 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. + * + **************************************************************************/ + + + +#ifdef __cplusplus +extern "C" { +#endif + +/* ------------------- Low-level Compression (independent from all decompression API's) */ + +/* Purposely making these tables static for faster init and thread safety. */ +static const mz_uint16 s_tdefl_len_sym[256] = + { + 257, 258, 259, 260, 261, 262, 263, 264, 265, 265, 266, 266, 267, 267, 268, 268, 269, 269, 269, 269, 270, 270, 270, 270, 271, 271, 271, 271, 272, 272, 272, 272, + 273, 273, 273, 273, 273, 273, 273, 273, 274, 274, 274, 274, 274, 274, 274, 274, 275, 275, 275, 275, 275, 275, 275, 275, 276, 276, 276, 276, 276, 276, 276, 276, + 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, 278, + 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 279, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, + 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, 281, + 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, 282, + 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, 283, + 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 284, 285 + }; + +static const mz_uint8 s_tdefl_len_extra[256] = + { + 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 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, 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, + 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, 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, 0 + }; + +static const mz_uint8 s_tdefl_small_dist_sym[512] = + { + 0, 1, 2, 3, 4, 4, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, + 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, + 14, 14, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, + 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, + 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, + 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, + 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, + 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17 + }; + +static const mz_uint8 s_tdefl_small_dist_extra[512] = + { + 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 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, 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, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7 + }; + +static const mz_uint8 s_tdefl_large_dist_sym[128] = + { + 0, 0, 18, 19, 20, 20, 21, 21, 22, 22, 22, 22, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 25, 25, 25, 25, 25, 25, 25, 25, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, + 26, 26, 26, 26, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, + 28, 28, 28, 28, 28, 28, 28, 28, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29, 29 + }; + +static const mz_uint8 s_tdefl_large_dist_extra[128] = + { + 0, 0, 8, 8, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, + 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, + 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13 + }; + +/* Radix sorts tdefl_sym_freq[] array by 16-bit key m_key. Returns ptr to sorted values. */ +typedef struct +{ + mz_uint16 m_key, m_sym_index; +} tdefl_sym_freq; +static tdefl_sym_freq *tdefl_radix_sort_syms(mz_uint num_syms, tdefl_sym_freq *pSyms0, tdefl_sym_freq *pSyms1) +{ + mz_uint32 total_passes = 2, pass_shift, pass, i, hist[256 * 2]; + tdefl_sym_freq *pCur_syms = pSyms0, *pNew_syms = pSyms1; + MZ_CLEAR_OBJ(hist); + for (i = 0; i < num_syms; i++) + { + mz_uint freq = pSyms0[i].m_key; + hist[freq & 0xFF]++; + hist[256 + ((freq >> 8) & 0xFF)]++; + } + while ((total_passes > 1) && (num_syms == hist[(total_passes - 1) * 256])) + total_passes--; + for (pass_shift = 0, pass = 0; pass < total_passes; pass++, pass_shift += 8) + { + const mz_uint32 *pHist = &hist[pass << 8]; + mz_uint offsets[256], cur_ofs = 0; + for (i = 0; i < 256; i++) + { + offsets[i] = cur_ofs; + cur_ofs += pHist[i]; + } + for (i = 0; i < num_syms; i++) + pNew_syms[offsets[(pCur_syms[i].m_key >> pass_shift) & 0xFF]++] = pCur_syms[i]; + { + tdefl_sym_freq *t = pCur_syms; + pCur_syms = pNew_syms; + pNew_syms = t; + } + } + return pCur_syms; +} + +/* tdefl_calculate_minimum_redundancy() originally written by: Alistair Moffat, alistair@cs.mu.oz.au, Jyrki Katajainen, jyrki@diku.dk, November 1996. */ +static void tdefl_calculate_minimum_redundancy(tdefl_sym_freq *A, int n) +{ + int root, leaf, next, avbl, used, dpth; + if (n == 0) + return; + else if (n == 1) + { + A[0].m_key = 1; + return; + } + A[0].m_key += A[1].m_key; + root = 0; + leaf = 2; + for (next = 1; next < n - 1; next++) + { + if (leaf >= n || A[root].m_key < A[leaf].m_key) + { + A[next].m_key = A[root].m_key; + A[root++].m_key = (mz_uint16)next; + } + else + A[next].m_key = A[leaf++].m_key; + if (leaf >= n || (root < next && A[root].m_key < A[leaf].m_key)) + { + A[next].m_key = (mz_uint16)(A[next].m_key + A[root].m_key); + A[root++].m_key = (mz_uint16)next; + } + else + A[next].m_key = (mz_uint16)(A[next].m_key + A[leaf++].m_key); + } + A[n - 2].m_key = 0; + for (next = n - 3; next >= 0; next--) + A[next].m_key = A[A[next].m_key].m_key + 1; + avbl = 1; + used = dpth = 0; + root = n - 2; + next = n - 1; + while (avbl > 0) + { + while (root >= 0 && (int)A[root].m_key == dpth) + { + used++; + root--; + } + while (avbl > used) + { + A[next--].m_key = (mz_uint16)(dpth); + avbl--; + } + avbl = 2 * used; + dpth++; + used = 0; + } +} + +/* Limits canonical Huffman code table's max code size. */ +enum +{ + TDEFL_MAX_SUPPORTED_HUFF_CODESIZE = 32 +}; +static void tdefl_huffman_enforce_max_code_size(int *pNum_codes, int code_list_len, int max_code_size) +{ + int i; + mz_uint32 total = 0; + if (code_list_len <= 1) + return; + for (i = max_code_size + 1; i <= TDEFL_MAX_SUPPORTED_HUFF_CODESIZE; i++) + pNum_codes[max_code_size] += pNum_codes[i]; + for (i = max_code_size; i > 0; i--) + total += (((mz_uint32)pNum_codes[i]) << (max_code_size - i)); + while (total != (1UL << max_code_size)) + { + pNum_codes[max_code_size]--; + for (i = max_code_size - 1; i > 0; i--) + if (pNum_codes[i]) + { + pNum_codes[i]--; + pNum_codes[i + 1] += 2; + break; + } + total--; + } +} + +static void tdefl_optimize_huffman_table(tdefl_compressor *d, int table_num, int table_len, int code_size_limit, int static_table) +{ + int i, j, l, num_codes[1 + TDEFL_MAX_SUPPORTED_HUFF_CODESIZE]; + mz_uint next_code[TDEFL_MAX_SUPPORTED_HUFF_CODESIZE + 1]; + MZ_CLEAR_OBJ(num_codes); + if (static_table) + { + for (i = 0; i < table_len; i++) + num_codes[d->m_huff_code_sizes[table_num][i]]++; + } + else + { + tdefl_sym_freq syms0[TDEFL_MAX_HUFF_SYMBOLS], syms1[TDEFL_MAX_HUFF_SYMBOLS], *pSyms; + int num_used_syms = 0; + const mz_uint16 *pSym_count = &d->m_huff_count[table_num][0]; + for (i = 0; i < table_len; i++) + if (pSym_count[i]) + { + syms0[num_used_syms].m_key = (mz_uint16)pSym_count[i]; + syms0[num_used_syms++].m_sym_index = (mz_uint16)i; + } + + pSyms = tdefl_radix_sort_syms(num_used_syms, syms0, syms1); + tdefl_calculate_minimum_redundancy(pSyms, num_used_syms); + + for (i = 0; i < num_used_syms; i++) + num_codes[pSyms[i].m_key]++; + + tdefl_huffman_enforce_max_code_size(num_codes, num_used_syms, code_size_limit); + + MZ_CLEAR_OBJ(d->m_huff_code_sizes[table_num]); + MZ_CLEAR_OBJ(d->m_huff_codes[table_num]); + for (i = 1, j = num_used_syms; i <= code_size_limit; i++) + for (l = num_codes[i]; l > 0; l--) + d->m_huff_code_sizes[table_num][pSyms[--j].m_sym_index] = (mz_uint8)(i); + } + + next_code[1] = 0; + for (j = 0, i = 2; i <= code_size_limit; i++) + next_code[i] = j = ((j + num_codes[i - 1]) << 1); + + for (i = 0; i < table_len; i++) + { + mz_uint rev_code = 0, code, code_size; + if ((code_size = d->m_huff_code_sizes[table_num][i]) == 0) + continue; + code = next_code[code_size]++; + for (l = code_size; l > 0; l--, code >>= 1) + rev_code = (rev_code << 1) | (code & 1); + d->m_huff_codes[table_num][i] = (mz_uint16)rev_code; + } +} + +#define TDEFL_PUT_BITS(b, l) \ + do \ + { \ + mz_uint bits = b; \ + mz_uint len = l; \ + MZ_ASSERT(bits <= ((1U << len) - 1U)); \ + d->m_bit_buffer |= (bits << d->m_bits_in); \ + d->m_bits_in += len; \ + while (d->m_bits_in >= 8) \ + { \ + if (d->m_pOutput_buf < d->m_pOutput_buf_end) \ + *d->m_pOutput_buf++ = (mz_uint8)(d->m_bit_buffer); \ + d->m_bit_buffer >>= 8; \ + d->m_bits_in -= 8; \ + } \ + } \ + MZ_MACRO_END + +#define TDEFL_RLE_PREV_CODE_SIZE() \ + { \ + if (rle_repeat_count) \ + { \ + if (rle_repeat_count < 3) \ + { \ + d->m_huff_count[2][prev_code_size] = (mz_uint16)(d->m_huff_count[2][prev_code_size] + rle_repeat_count); \ + while (rle_repeat_count--) \ + packed_code_sizes[num_packed_code_sizes++] = prev_code_size; \ + } \ + else \ + { \ + d->m_huff_count[2][16] = (mz_uint16)(d->m_huff_count[2][16] + 1); \ + packed_code_sizes[num_packed_code_sizes++] = 16; \ + packed_code_sizes[num_packed_code_sizes++] = (mz_uint8)(rle_repeat_count - 3); \ + } \ + rle_repeat_count = 0; \ + } \ + } + +#define TDEFL_RLE_ZERO_CODE_SIZE() \ + { \ + if (rle_z_count) \ + { \ + if (rle_z_count < 3) \ + { \ + d->m_huff_count[2][0] = (mz_uint16)(d->m_huff_count[2][0] + rle_z_count); \ + while (rle_z_count--) \ + packed_code_sizes[num_packed_code_sizes++] = 0; \ + } \ + else if (rle_z_count <= 10) \ + { \ + d->m_huff_count[2][17] = (mz_uint16)(d->m_huff_count[2][17] + 1); \ + packed_code_sizes[num_packed_code_sizes++] = 17; \ + packed_code_sizes[num_packed_code_sizes++] = (mz_uint8)(rle_z_count - 3); \ + } \ + else \ + { \ + d->m_huff_count[2][18] = (mz_uint16)(d->m_huff_count[2][18] + 1); \ + packed_code_sizes[num_packed_code_sizes++] = 18; \ + packed_code_sizes[num_packed_code_sizes++] = (mz_uint8)(rle_z_count - 11); \ + } \ + rle_z_count = 0; \ + } \ + } + +static mz_uint8 s_tdefl_packed_code_size_syms_swizzle[] = { 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 }; + +static void tdefl_start_dynamic_block(tdefl_compressor *d) +{ + int num_lit_codes, num_dist_codes, num_bit_lengths; + mz_uint i, total_code_sizes_to_pack, num_packed_code_sizes, rle_z_count, rle_repeat_count, packed_code_sizes_index; + mz_uint8 code_sizes_to_pack[TDEFL_MAX_HUFF_SYMBOLS_0 + TDEFL_MAX_HUFF_SYMBOLS_1], packed_code_sizes[TDEFL_MAX_HUFF_SYMBOLS_0 + TDEFL_MAX_HUFF_SYMBOLS_1], prev_code_size = 0xFF; + + d->m_huff_count[0][256] = 1; + + tdefl_optimize_huffman_table(d, 0, TDEFL_MAX_HUFF_SYMBOLS_0, 15, MZ_FALSE); + tdefl_optimize_huffman_table(d, 1, TDEFL_MAX_HUFF_SYMBOLS_1, 15, MZ_FALSE); + + for (num_lit_codes = 286; num_lit_codes > 257; num_lit_codes--) + if (d->m_huff_code_sizes[0][num_lit_codes - 1]) + break; + for (num_dist_codes = 30; num_dist_codes > 1; num_dist_codes--) + if (d->m_huff_code_sizes[1][num_dist_codes - 1]) + break; + + memcpy(code_sizes_to_pack, &d->m_huff_code_sizes[0][0], num_lit_codes); + memcpy(code_sizes_to_pack + num_lit_codes, &d->m_huff_code_sizes[1][0], num_dist_codes); + total_code_sizes_to_pack = num_lit_codes + num_dist_codes; + num_packed_code_sizes = 0; + rle_z_count = 0; + rle_repeat_count = 0; + + memset(&d->m_huff_count[2][0], 0, sizeof(d->m_huff_count[2][0]) * TDEFL_MAX_HUFF_SYMBOLS_2); + for (i = 0; i < total_code_sizes_to_pack; i++) + { + mz_uint8 code_size = code_sizes_to_pack[i]; + if (!code_size) + { + TDEFL_RLE_PREV_CODE_SIZE(); + if (++rle_z_count == 138) + { + TDEFL_RLE_ZERO_CODE_SIZE(); + } + } + else + { + TDEFL_RLE_ZERO_CODE_SIZE(); + if (code_size != prev_code_size) + { + TDEFL_RLE_PREV_CODE_SIZE(); + d->m_huff_count[2][code_size] = (mz_uint16)(d->m_huff_count[2][code_size] + 1); + packed_code_sizes[num_packed_code_sizes++] = code_size; + } + else if (++rle_repeat_count == 6) + { + TDEFL_RLE_PREV_CODE_SIZE(); + } + } + prev_code_size = code_size; + } + if (rle_repeat_count) + { + TDEFL_RLE_PREV_CODE_SIZE(); + } + else + { + TDEFL_RLE_ZERO_CODE_SIZE(); + } + + tdefl_optimize_huffman_table(d, 2, TDEFL_MAX_HUFF_SYMBOLS_2, 7, MZ_FALSE); + + TDEFL_PUT_BITS(2, 2); + + TDEFL_PUT_BITS(num_lit_codes - 257, 5); + TDEFL_PUT_BITS(num_dist_codes - 1, 5); + + for (num_bit_lengths = 18; num_bit_lengths >= 0; num_bit_lengths--) + if (d->m_huff_code_sizes[2][s_tdefl_packed_code_size_syms_swizzle[num_bit_lengths]]) + break; + num_bit_lengths = MZ_MAX(4, (num_bit_lengths + 1)); + TDEFL_PUT_BITS(num_bit_lengths - 4, 4); + for (i = 0; (int)i < num_bit_lengths; i++) + TDEFL_PUT_BITS(d->m_huff_code_sizes[2][s_tdefl_packed_code_size_syms_swizzle[i]], 3); + + for (packed_code_sizes_index = 0; packed_code_sizes_index < num_packed_code_sizes;) + { + mz_uint code = packed_code_sizes[packed_code_sizes_index++]; + MZ_ASSERT(code < TDEFL_MAX_HUFF_SYMBOLS_2); + TDEFL_PUT_BITS(d->m_huff_codes[2][code], d->m_huff_code_sizes[2][code]); + if (code >= 16) + TDEFL_PUT_BITS(packed_code_sizes[packed_code_sizes_index++], "\02\03\07"[code - 16]); + } +} + +static void tdefl_start_static_block(tdefl_compressor *d) +{ + mz_uint i; + mz_uint8 *p = &d->m_huff_code_sizes[0][0]; + + for (i = 0; i <= 143; ++i) + *p++ = 8; + for (; i <= 255; ++i) + *p++ = 9; + for (; i <= 279; ++i) + *p++ = 7; + for (; i <= 287; ++i) + *p++ = 8; + + memset(d->m_huff_code_sizes[1], 5, 32); + + tdefl_optimize_huffman_table(d, 0, 288, 15, MZ_TRUE); + tdefl_optimize_huffman_table(d, 1, 32, 15, MZ_TRUE); + + TDEFL_PUT_BITS(1, 2); +} + +static const mz_uint mz_bitmasks[17] = { 0x0000, 0x0001, 0x0003, 0x0007, 0x000F, 0x001F, 0x003F, 0x007F, 0x00FF, 0x01FF, 0x03FF, 0x07FF, 0x0FFF, 0x1FFF, 0x3FFF, 0x7FFF, 0xFFFF }; + +#if MINIZ_USE_UNALIGNED_LOADS_AND_STORES && MINIZ_LITTLE_ENDIAN && MINIZ_HAS_64BIT_REGISTERS +static mz_bool tdefl_compress_lz_codes(tdefl_compressor *d) +{ + mz_uint flags; + mz_uint8 *pLZ_codes; + mz_uint8 *pOutput_buf = d->m_pOutput_buf; + mz_uint8 *pLZ_code_buf_end = d->m_pLZ_code_buf; + mz_uint64 bit_buffer = d->m_bit_buffer; + mz_uint bits_in = d->m_bits_in; + +#define TDEFL_PUT_BITS_FAST(b, l) \ + { \ + bit_buffer |= (((mz_uint64)(b)) << bits_in); \ + bits_in += (l); \ + } + + flags = 1; + for (pLZ_codes = d->m_lz_code_buf; pLZ_codes < pLZ_code_buf_end; flags >>= 1) + { + if (flags == 1) + flags = *pLZ_codes++ | 0x100; + + if (flags & 1) + { + mz_uint s0, s1, n0, n1, sym, num_extra_bits; + mz_uint match_len = pLZ_codes[0], match_dist = *(const mz_uint16 *)(pLZ_codes + 1); + pLZ_codes += 3; + + MZ_ASSERT(d->m_huff_code_sizes[0][s_tdefl_len_sym[match_len]]); + TDEFL_PUT_BITS_FAST(d->m_huff_codes[0][s_tdefl_len_sym[match_len]], d->m_huff_code_sizes[0][s_tdefl_len_sym[match_len]]); + TDEFL_PUT_BITS_FAST(match_len & mz_bitmasks[s_tdefl_len_extra[match_len]], s_tdefl_len_extra[match_len]); + + /* This sequence coaxes MSVC into using cmov's vs. jmp's. */ + s0 = s_tdefl_small_dist_sym[match_dist & 511]; + n0 = s_tdefl_small_dist_extra[match_dist & 511]; + s1 = s_tdefl_large_dist_sym[match_dist >> 8]; + n1 = s_tdefl_large_dist_extra[match_dist >> 8]; + sym = (match_dist < 512) ? s0 : s1; + num_extra_bits = (match_dist < 512) ? n0 : n1; + + MZ_ASSERT(d->m_huff_code_sizes[1][sym]); + TDEFL_PUT_BITS_FAST(d->m_huff_codes[1][sym], d->m_huff_code_sizes[1][sym]); + TDEFL_PUT_BITS_FAST(match_dist & mz_bitmasks[num_extra_bits], num_extra_bits); + } + else + { + mz_uint lit = *pLZ_codes++; + MZ_ASSERT(d->m_huff_code_sizes[0][lit]); + TDEFL_PUT_BITS_FAST(d->m_huff_codes[0][lit], d->m_huff_code_sizes[0][lit]); + + if (((flags & 2) == 0) && (pLZ_codes < pLZ_code_buf_end)) + { + flags >>= 1; + lit = *pLZ_codes++; + MZ_ASSERT(d->m_huff_code_sizes[0][lit]); + TDEFL_PUT_BITS_FAST(d->m_huff_codes[0][lit], d->m_huff_code_sizes[0][lit]); + + if (((flags & 2) == 0) && (pLZ_codes < pLZ_code_buf_end)) + { + flags >>= 1; + lit = *pLZ_codes++; + MZ_ASSERT(d->m_huff_code_sizes[0][lit]); + TDEFL_PUT_BITS_FAST(d->m_huff_codes[0][lit], d->m_huff_code_sizes[0][lit]); + } + } + } + + if (pOutput_buf >= d->m_pOutput_buf_end) + return MZ_FALSE; + + *(mz_uint64 *)pOutput_buf = bit_buffer; + pOutput_buf += (bits_in >> 3); + bit_buffer >>= (bits_in & ~7); + bits_in &= 7; + } + +#undef TDEFL_PUT_BITS_FAST + + d->m_pOutput_buf = pOutput_buf; + d->m_bits_in = 0; + d->m_bit_buffer = 0; + + while (bits_in) + { + mz_uint32 n = MZ_MIN(bits_in, 16); + TDEFL_PUT_BITS((mz_uint)bit_buffer & mz_bitmasks[n], n); + bit_buffer >>= n; + bits_in -= n; + } + + TDEFL_PUT_BITS(d->m_huff_codes[0][256], d->m_huff_code_sizes[0][256]); + + return (d->m_pOutput_buf < d->m_pOutput_buf_end); +} +#else +static mz_bool tdefl_compress_lz_codes(tdefl_compressor *d) +{ + mz_uint flags; + mz_uint8 *pLZ_codes; + + flags = 1; + for (pLZ_codes = d->m_lz_code_buf; pLZ_codes < d->m_pLZ_code_buf; flags >>= 1) + { + if (flags == 1) + flags = *pLZ_codes++ | 0x100; + if (flags & 1) + { + mz_uint sym, num_extra_bits; + mz_uint match_len = pLZ_codes[0], match_dist = (pLZ_codes[1] | (pLZ_codes[2] << 8)); + pLZ_codes += 3; + + MZ_ASSERT(d->m_huff_code_sizes[0][s_tdefl_len_sym[match_len]]); + TDEFL_PUT_BITS(d->m_huff_codes[0][s_tdefl_len_sym[match_len]], d->m_huff_code_sizes[0][s_tdefl_len_sym[match_len]]); + TDEFL_PUT_BITS(match_len & mz_bitmasks[s_tdefl_len_extra[match_len]], s_tdefl_len_extra[match_len]); + + if (match_dist < 512) + { + sym = s_tdefl_small_dist_sym[match_dist]; + num_extra_bits = s_tdefl_small_dist_extra[match_dist]; + } + else + { + sym = s_tdefl_large_dist_sym[match_dist >> 8]; + num_extra_bits = s_tdefl_large_dist_extra[match_dist >> 8]; + } + MZ_ASSERT(d->m_huff_code_sizes[1][sym]); + TDEFL_PUT_BITS(d->m_huff_codes[1][sym], d->m_huff_code_sizes[1][sym]); + TDEFL_PUT_BITS(match_dist & mz_bitmasks[num_extra_bits], num_extra_bits); + } + else + { + mz_uint lit = *pLZ_codes++; + MZ_ASSERT(d->m_huff_code_sizes[0][lit]); + TDEFL_PUT_BITS(d->m_huff_codes[0][lit], d->m_huff_code_sizes[0][lit]); + } + } + + TDEFL_PUT_BITS(d->m_huff_codes[0][256], d->m_huff_code_sizes[0][256]); + + return (d->m_pOutput_buf < d->m_pOutput_buf_end); +} +#endif /* MINIZ_USE_UNALIGNED_LOADS_AND_STORES && MINIZ_LITTLE_ENDIAN && MINIZ_HAS_64BIT_REGISTERS */ + +static mz_bool tdefl_compress_block(tdefl_compressor *d, mz_bool static_block) +{ + if (static_block) + tdefl_start_static_block(d); + else + tdefl_start_dynamic_block(d); + return tdefl_compress_lz_codes(d); +} + +static int tdefl_flush_block(tdefl_compressor *d, int flush) +{ + mz_uint saved_bit_buf, saved_bits_in; + mz_uint8 *pSaved_output_buf; + mz_bool comp_block_succeeded = MZ_FALSE; + int n, use_raw_block = ((d->m_flags & TDEFL_FORCE_ALL_RAW_BLOCKS) != 0) && (d->m_lookahead_pos - d->m_lz_code_buf_dict_pos) <= d->m_dict_size; + mz_uint8 *pOutput_buf_start = ((d->m_pPut_buf_func == NULL) && ((*d->m_pOut_buf_size - d->m_out_buf_ofs) >= TDEFL_OUT_BUF_SIZE)) ? ((mz_uint8 *)d->m_pOut_buf + d->m_out_buf_ofs) : d->m_output_buf; + + d->m_pOutput_buf = pOutput_buf_start; + d->m_pOutput_buf_end = d->m_pOutput_buf + TDEFL_OUT_BUF_SIZE - 16; + + MZ_ASSERT(!d->m_output_flush_remaining); + d->m_output_flush_ofs = 0; + d->m_output_flush_remaining = 0; + + *d->m_pLZ_flags = (mz_uint8)(*d->m_pLZ_flags >> d->m_num_flags_left); + d->m_pLZ_code_buf -= (d->m_num_flags_left == 8); + + if ((d->m_flags & TDEFL_WRITE_ZLIB_HEADER) && (!d->m_block_index)) + { + TDEFL_PUT_BITS(0x78, 8); + TDEFL_PUT_BITS(0x01, 8); + } + + TDEFL_PUT_BITS(flush == TDEFL_FINISH, 1); + + pSaved_output_buf = d->m_pOutput_buf; + saved_bit_buf = d->m_bit_buffer; + saved_bits_in = d->m_bits_in; + + if (!use_raw_block) + comp_block_succeeded = tdefl_compress_block(d, (d->m_flags & TDEFL_FORCE_ALL_STATIC_BLOCKS) || (d->m_total_lz_bytes < 48)); + + /* If the block gets expanded, forget the current contents of the output buffer and send a raw block instead. */ + if (((use_raw_block) || ((d->m_total_lz_bytes) && ((d->m_pOutput_buf - pSaved_output_buf + 1U) >= d->m_total_lz_bytes))) && + ((d->m_lookahead_pos - d->m_lz_code_buf_dict_pos) <= d->m_dict_size)) + { + mz_uint i; + d->m_pOutput_buf = pSaved_output_buf; + d->m_bit_buffer = saved_bit_buf, d->m_bits_in = saved_bits_in; + TDEFL_PUT_BITS(0, 2); + if (d->m_bits_in) + { + TDEFL_PUT_BITS(0, 8 - d->m_bits_in); + } + for (i = 2; i; --i, d->m_total_lz_bytes ^= 0xFFFF) + { + TDEFL_PUT_BITS(d->m_total_lz_bytes & 0xFFFF, 16); + } + for (i = 0; i < d->m_total_lz_bytes; ++i) + { + TDEFL_PUT_BITS(d->m_dict[(d->m_lz_code_buf_dict_pos + i) & TDEFL_LZ_DICT_SIZE_MASK], 8); + } + } + /* Check for the extremely unlikely (if not impossible) case of the compressed block not fitting into the output buffer when using dynamic codes. */ + else if (!comp_block_succeeded) + { + d->m_pOutput_buf = pSaved_output_buf; + d->m_bit_buffer = saved_bit_buf, d->m_bits_in = saved_bits_in; + tdefl_compress_block(d, MZ_TRUE); + } + + if (flush) + { + if (flush == TDEFL_FINISH) + { + if (d->m_bits_in) + { + TDEFL_PUT_BITS(0, 8 - d->m_bits_in); + } + if (d->m_flags & TDEFL_WRITE_ZLIB_HEADER) + { + mz_uint i, a = d->m_adler32; + for (i = 0; i < 4; i++) + { + TDEFL_PUT_BITS((a >> 24) & 0xFF, 8); + a <<= 8; + } + } + } + else + { + mz_uint i, z = 0; + TDEFL_PUT_BITS(0, 3); + if (d->m_bits_in) + { + TDEFL_PUT_BITS(0, 8 - d->m_bits_in); + } + for (i = 2; i; --i, z ^= 0xFFFF) + { + TDEFL_PUT_BITS(z & 0xFFFF, 16); + } + } + } + + MZ_ASSERT(d->m_pOutput_buf < d->m_pOutput_buf_end); + + memset(&d->m_huff_count[0][0], 0, sizeof(d->m_huff_count[0][0]) * TDEFL_MAX_HUFF_SYMBOLS_0); + memset(&d->m_huff_count[1][0], 0, sizeof(d->m_huff_count[1][0]) * TDEFL_MAX_HUFF_SYMBOLS_1); + + d->m_pLZ_code_buf = d->m_lz_code_buf + 1; + d->m_pLZ_flags = d->m_lz_code_buf; + d->m_num_flags_left = 8; + d->m_lz_code_buf_dict_pos += d->m_total_lz_bytes; + d->m_total_lz_bytes = 0; + d->m_block_index++; + + if ((n = (int)(d->m_pOutput_buf - pOutput_buf_start)) != 0) + { + if (d->m_pPut_buf_func) + { + *d->m_pIn_buf_size = d->m_pSrc - (const mz_uint8 *)d->m_pIn_buf; + if (!(*d->m_pPut_buf_func)(d->m_output_buf, n, d->m_pPut_buf_user)) + return (d->m_prev_return_status = TDEFL_STATUS_PUT_BUF_FAILED); + } + else if (pOutput_buf_start == d->m_output_buf) + { + int bytes_to_copy = (int)MZ_MIN((size_t)n, (size_t)(*d->m_pOut_buf_size - d->m_out_buf_ofs)); + memcpy((mz_uint8 *)d->m_pOut_buf + d->m_out_buf_ofs, d->m_output_buf, bytes_to_copy); + d->m_out_buf_ofs += bytes_to_copy; + if ((n -= bytes_to_copy) != 0) + { + d->m_output_flush_ofs = bytes_to_copy; + d->m_output_flush_remaining = n; + } + } + else + { + d->m_out_buf_ofs += n; + } + } + + return d->m_output_flush_remaining; +} + +#if MINIZ_USE_UNALIGNED_LOADS_AND_STORES +#ifdef MINIZ_UNALIGNED_USE_MEMCPY +static mz_uint16 TDEFL_READ_UNALIGNED_WORD(const mz_uint8* p) +{ + mz_uint16 ret; + memcpy(&ret, p, sizeof(mz_uint16)); + return ret; +} +static mz_uint16 TDEFL_READ_UNALIGNED_WORD2(const mz_uint16* p) +{ + mz_uint16 ret; + memcpy(&ret, p, sizeof(mz_uint16)); + return ret; +} +#else +#define TDEFL_READ_UNALIGNED_WORD(p) *(const mz_uint16 *)(p) +#define TDEFL_READ_UNALIGNED_WORD2(p) *(const mz_uint16 *)(p) +#endif +static MZ_FORCEINLINE void tdefl_find_match(tdefl_compressor *d, mz_uint lookahead_pos, mz_uint max_dist, mz_uint max_match_len, mz_uint *pMatch_dist, mz_uint *pMatch_len) +{ + mz_uint dist, pos = lookahead_pos & TDEFL_LZ_DICT_SIZE_MASK, match_len = *pMatch_len, probe_pos = pos, next_probe_pos, probe_len; + mz_uint num_probes_left = d->m_max_probes[match_len >= 32]; + const mz_uint16 *s = (const mz_uint16 *)(d->m_dict + pos), *p, *q; + mz_uint16 c01 = TDEFL_READ_UNALIGNED_WORD(&d->m_dict[pos + match_len - 1]), s01 = TDEFL_READ_UNALIGNED_WORD2(s); + MZ_ASSERT(max_match_len <= TDEFL_MAX_MATCH_LEN); + if (max_match_len <= match_len) + return; + for (;;) + { + for (;;) + { + if (--num_probes_left == 0) + return; +#define TDEFL_PROBE \ + next_probe_pos = d->m_next[probe_pos]; \ + if ((!next_probe_pos) || ((dist = (mz_uint16)(lookahead_pos - next_probe_pos)) > max_dist)) \ + return; \ + probe_pos = next_probe_pos & TDEFL_LZ_DICT_SIZE_MASK; \ + if (TDEFL_READ_UNALIGNED_WORD(&d->m_dict[probe_pos + match_len - 1]) == c01) \ + break; + TDEFL_PROBE; + TDEFL_PROBE; + TDEFL_PROBE; + } + if (!dist) + break; + q = (const mz_uint16 *)(d->m_dict + probe_pos); + if (TDEFL_READ_UNALIGNED_WORD2(q) != s01) + continue; + p = s; + probe_len = 32; + do + { + } while ((TDEFL_READ_UNALIGNED_WORD2(++p) == TDEFL_READ_UNALIGNED_WORD2(++q)) && (TDEFL_READ_UNALIGNED_WORD2(++p) == TDEFL_READ_UNALIGNED_WORD2(++q)) && + (TDEFL_READ_UNALIGNED_WORD2(++p) == TDEFL_READ_UNALIGNED_WORD2(++q)) && (TDEFL_READ_UNALIGNED_WORD2(++p) == TDEFL_READ_UNALIGNED_WORD2(++q)) && (--probe_len > 0)); + if (!probe_len) + { + *pMatch_dist = dist; + *pMatch_len = MZ_MIN(max_match_len, (mz_uint)TDEFL_MAX_MATCH_LEN); + break; + } + else if ((probe_len = ((mz_uint)(p - s) * 2) + (mz_uint)(*(const mz_uint8 *)p == *(const mz_uint8 *)q)) > match_len) + { + *pMatch_dist = dist; + if ((*pMatch_len = match_len = MZ_MIN(max_match_len, probe_len)) == max_match_len) + break; + c01 = TDEFL_READ_UNALIGNED_WORD(&d->m_dict[pos + match_len - 1]); + } + } +} +#else +static MZ_FORCEINLINE void tdefl_find_match(tdefl_compressor *d, mz_uint lookahead_pos, mz_uint max_dist, mz_uint max_match_len, mz_uint *pMatch_dist, mz_uint *pMatch_len) +{ + mz_uint dist, pos = lookahead_pos & TDEFL_LZ_DICT_SIZE_MASK, match_len = *pMatch_len, probe_pos = pos, next_probe_pos, probe_len; + mz_uint num_probes_left = d->m_max_probes[match_len >= 32]; + const mz_uint8 *s = d->m_dict + pos, *p, *q; + mz_uint8 c0 = d->m_dict[pos + match_len], c1 = d->m_dict[pos + match_len - 1]; + MZ_ASSERT(max_match_len <= TDEFL_MAX_MATCH_LEN); + if (max_match_len <= match_len) + return; + for (;;) + { + for (;;) + { + if (--num_probes_left == 0) + return; +#define TDEFL_PROBE \ + next_probe_pos = d->m_next[probe_pos]; \ + if ((!next_probe_pos) || ((dist = (mz_uint16)(lookahead_pos - next_probe_pos)) > max_dist)) \ + return; \ + probe_pos = next_probe_pos & TDEFL_LZ_DICT_SIZE_MASK; \ + if ((d->m_dict[probe_pos + match_len] == c0) && (d->m_dict[probe_pos + match_len - 1] == c1)) \ + break; + TDEFL_PROBE; + TDEFL_PROBE; + TDEFL_PROBE; + } + if (!dist) + break; + p = s; + q = d->m_dict + probe_pos; + for (probe_len = 0; probe_len < max_match_len; probe_len++) + if (*p++ != *q++) + break; + if (probe_len > match_len) + { + *pMatch_dist = dist; + if ((*pMatch_len = match_len = probe_len) == max_match_len) + return; + c0 = d->m_dict[pos + match_len]; + c1 = d->m_dict[pos + match_len - 1]; + } + } +} +#endif /* #if MINIZ_USE_UNALIGNED_LOADS_AND_STORES */ + +#if MINIZ_USE_UNALIGNED_LOADS_AND_STORES && MINIZ_LITTLE_ENDIAN +#ifdef MINIZ_UNALIGNED_USE_MEMCPY +static mz_uint32 TDEFL_READ_UNALIGNED_WORD32(const mz_uint8* p) +{ + mz_uint32 ret; + memcpy(&ret, p, sizeof(mz_uint32)); + return ret; +} +#else +#define TDEFL_READ_UNALIGNED_WORD32(p) *(const mz_uint32 *)(p) +#endif +static mz_bool tdefl_compress_fast(tdefl_compressor *d) +{ + /* Faster, minimally featured LZRW1-style match+parse loop with better register utilization. Intended for applications where raw throughput is valued more highly than ratio. */ + mz_uint lookahead_pos = d->m_lookahead_pos, lookahead_size = d->m_lookahead_size, dict_size = d->m_dict_size, total_lz_bytes = d->m_total_lz_bytes, num_flags_left = d->m_num_flags_left; + mz_uint8 *pLZ_code_buf = d->m_pLZ_code_buf, *pLZ_flags = d->m_pLZ_flags; + mz_uint cur_pos = lookahead_pos & TDEFL_LZ_DICT_SIZE_MASK; + + while ((d->m_src_buf_left) || ((d->m_flush) && (lookahead_size))) + { + const mz_uint TDEFL_COMP_FAST_LOOKAHEAD_SIZE = 4096; + mz_uint dst_pos = (lookahead_pos + lookahead_size) & TDEFL_LZ_DICT_SIZE_MASK; + mz_uint num_bytes_to_process = (mz_uint)MZ_MIN(d->m_src_buf_left, TDEFL_COMP_FAST_LOOKAHEAD_SIZE - lookahead_size); + d->m_src_buf_left -= num_bytes_to_process; + lookahead_size += num_bytes_to_process; + + while (num_bytes_to_process) + { + mz_uint32 n = MZ_MIN(TDEFL_LZ_DICT_SIZE - dst_pos, num_bytes_to_process); + memcpy(d->m_dict + dst_pos, d->m_pSrc, n); + if (dst_pos < (TDEFL_MAX_MATCH_LEN - 1)) + memcpy(d->m_dict + TDEFL_LZ_DICT_SIZE + dst_pos, d->m_pSrc, MZ_MIN(n, (TDEFL_MAX_MATCH_LEN - 1) - dst_pos)); + d->m_pSrc += n; + dst_pos = (dst_pos + n) & TDEFL_LZ_DICT_SIZE_MASK; + num_bytes_to_process -= n; + } + + dict_size = MZ_MIN(TDEFL_LZ_DICT_SIZE - lookahead_size, dict_size); + if ((!d->m_flush) && (lookahead_size < TDEFL_COMP_FAST_LOOKAHEAD_SIZE)) + break; + + while (lookahead_size >= 4) + { + mz_uint cur_match_dist, cur_match_len = 1; + mz_uint8 *pCur_dict = d->m_dict + cur_pos; + mz_uint first_trigram = TDEFL_READ_UNALIGNED_WORD32(pCur_dict) & 0xFFFFFF; + mz_uint hash = (first_trigram ^ (first_trigram >> (24 - (TDEFL_LZ_HASH_BITS - 8)))) & TDEFL_LEVEL1_HASH_SIZE_MASK; + mz_uint probe_pos = d->m_hash[hash]; + d->m_hash[hash] = (mz_uint16)lookahead_pos; + + if (((cur_match_dist = (mz_uint16)(lookahead_pos - probe_pos)) <= dict_size) && ((TDEFL_READ_UNALIGNED_WORD32(d->m_dict + (probe_pos &= TDEFL_LZ_DICT_SIZE_MASK)) & 0xFFFFFF) == first_trigram)) + { + const mz_uint16 *p = (const mz_uint16 *)pCur_dict; + const mz_uint16 *q = (const mz_uint16 *)(d->m_dict + probe_pos); + mz_uint32 probe_len = 32; + do + { + } while ((TDEFL_READ_UNALIGNED_WORD2(++p) == TDEFL_READ_UNALIGNED_WORD2(++q)) && (TDEFL_READ_UNALIGNED_WORD2(++p) == TDEFL_READ_UNALIGNED_WORD2(++q)) && + (TDEFL_READ_UNALIGNED_WORD2(++p) == TDEFL_READ_UNALIGNED_WORD2(++q)) && (TDEFL_READ_UNALIGNED_WORD2(++p) == TDEFL_READ_UNALIGNED_WORD2(++q)) && (--probe_len > 0)); + cur_match_len = ((mz_uint)(p - (const mz_uint16 *)pCur_dict) * 2) + (mz_uint)(*(const mz_uint8 *)p == *(const mz_uint8 *)q); + if (!probe_len) + cur_match_len = cur_match_dist ? TDEFL_MAX_MATCH_LEN : 0; + + if ((cur_match_len < TDEFL_MIN_MATCH_LEN) || ((cur_match_len == TDEFL_MIN_MATCH_LEN) && (cur_match_dist >= 8U * 1024U))) + { + cur_match_len = 1; + *pLZ_code_buf++ = (mz_uint8)first_trigram; + *pLZ_flags = (mz_uint8)(*pLZ_flags >> 1); + d->m_huff_count[0][(mz_uint8)first_trigram]++; + } + else + { + mz_uint32 s0, s1; + cur_match_len = MZ_MIN(cur_match_len, lookahead_size); + + MZ_ASSERT((cur_match_len >= TDEFL_MIN_MATCH_LEN) && (cur_match_dist >= 1) && (cur_match_dist <= TDEFL_LZ_DICT_SIZE)); + + cur_match_dist--; + + pLZ_code_buf[0] = (mz_uint8)(cur_match_len - TDEFL_MIN_MATCH_LEN); +#ifdef MINIZ_UNALIGNED_USE_MEMCPY + memcpy(&pLZ_code_buf[1], &cur_match_dist, sizeof(cur_match_dist)); +#else + *(mz_uint16 *)(&pLZ_code_buf[1]) = (mz_uint16)cur_match_dist; +#endif + pLZ_code_buf += 3; + *pLZ_flags = (mz_uint8)((*pLZ_flags >> 1) | 0x80); + + s0 = s_tdefl_small_dist_sym[cur_match_dist & 511]; + s1 = s_tdefl_large_dist_sym[cur_match_dist >> 8]; + d->m_huff_count[1][(cur_match_dist < 512) ? s0 : s1]++; + + d->m_huff_count[0][s_tdefl_len_sym[cur_match_len - TDEFL_MIN_MATCH_LEN]]++; + } + } + else + { + *pLZ_code_buf++ = (mz_uint8)first_trigram; + *pLZ_flags = (mz_uint8)(*pLZ_flags >> 1); + d->m_huff_count[0][(mz_uint8)first_trigram]++; + } + + if (--num_flags_left == 0) + { + num_flags_left = 8; + pLZ_flags = pLZ_code_buf++; + } + + total_lz_bytes += cur_match_len; + lookahead_pos += cur_match_len; + dict_size = MZ_MIN(dict_size + cur_match_len, (mz_uint)TDEFL_LZ_DICT_SIZE); + cur_pos = (cur_pos + cur_match_len) & TDEFL_LZ_DICT_SIZE_MASK; + MZ_ASSERT(lookahead_size >= cur_match_len); + lookahead_size -= cur_match_len; + + if (pLZ_code_buf > &d->m_lz_code_buf[TDEFL_LZ_CODE_BUF_SIZE - 8]) + { + int n; + d->m_lookahead_pos = lookahead_pos; + d->m_lookahead_size = lookahead_size; + d->m_dict_size = dict_size; + d->m_total_lz_bytes = total_lz_bytes; + d->m_pLZ_code_buf = pLZ_code_buf; + d->m_pLZ_flags = pLZ_flags; + d->m_num_flags_left = num_flags_left; + if ((n = tdefl_flush_block(d, 0)) != 0) + return (n < 0) ? MZ_FALSE : MZ_TRUE; + total_lz_bytes = d->m_total_lz_bytes; + pLZ_code_buf = d->m_pLZ_code_buf; + pLZ_flags = d->m_pLZ_flags; + num_flags_left = d->m_num_flags_left; + } + } + + while (lookahead_size) + { + mz_uint8 lit = d->m_dict[cur_pos]; + + total_lz_bytes++; + *pLZ_code_buf++ = lit; + *pLZ_flags = (mz_uint8)(*pLZ_flags >> 1); + if (--num_flags_left == 0) + { + num_flags_left = 8; + pLZ_flags = pLZ_code_buf++; + } + + d->m_huff_count[0][lit]++; + + lookahead_pos++; + dict_size = MZ_MIN(dict_size + 1, (mz_uint)TDEFL_LZ_DICT_SIZE); + cur_pos = (cur_pos + 1) & TDEFL_LZ_DICT_SIZE_MASK; + lookahead_size--; + + if (pLZ_code_buf > &d->m_lz_code_buf[TDEFL_LZ_CODE_BUF_SIZE - 8]) + { + int n; + d->m_lookahead_pos = lookahead_pos; + d->m_lookahead_size = lookahead_size; + d->m_dict_size = dict_size; + d->m_total_lz_bytes = total_lz_bytes; + d->m_pLZ_code_buf = pLZ_code_buf; + d->m_pLZ_flags = pLZ_flags; + d->m_num_flags_left = num_flags_left; + if ((n = tdefl_flush_block(d, 0)) != 0) + return (n < 0) ? MZ_FALSE : MZ_TRUE; + total_lz_bytes = d->m_total_lz_bytes; + pLZ_code_buf = d->m_pLZ_code_buf; + pLZ_flags = d->m_pLZ_flags; + num_flags_left = d->m_num_flags_left; + } + } + } + + d->m_lookahead_pos = lookahead_pos; + d->m_lookahead_size = lookahead_size; + d->m_dict_size = dict_size; + d->m_total_lz_bytes = total_lz_bytes; + d->m_pLZ_code_buf = pLZ_code_buf; + d->m_pLZ_flags = pLZ_flags; + d->m_num_flags_left = num_flags_left; + return MZ_TRUE; +} +#endif /* MINIZ_USE_UNALIGNED_LOADS_AND_STORES && MINIZ_LITTLE_ENDIAN */ + +static MZ_FORCEINLINE void tdefl_record_literal(tdefl_compressor *d, mz_uint8 lit) +{ + d->m_total_lz_bytes++; + *d->m_pLZ_code_buf++ = lit; + *d->m_pLZ_flags = (mz_uint8)(*d->m_pLZ_flags >> 1); + if (--d->m_num_flags_left == 0) + { + d->m_num_flags_left = 8; + d->m_pLZ_flags = d->m_pLZ_code_buf++; + } + d->m_huff_count[0][lit]++; +} + +static MZ_FORCEINLINE void tdefl_record_match(tdefl_compressor *d, mz_uint match_len, mz_uint match_dist) +{ + mz_uint32 s0, s1; + + MZ_ASSERT((match_len >= TDEFL_MIN_MATCH_LEN) && (match_dist >= 1) && (match_dist <= TDEFL_LZ_DICT_SIZE)); + + d->m_total_lz_bytes += match_len; + + d->m_pLZ_code_buf[0] = (mz_uint8)(match_len - TDEFL_MIN_MATCH_LEN); + + match_dist -= 1; + d->m_pLZ_code_buf[1] = (mz_uint8)(match_dist & 0xFF); + d->m_pLZ_code_buf[2] = (mz_uint8)(match_dist >> 8); + d->m_pLZ_code_buf += 3; + + *d->m_pLZ_flags = (mz_uint8)((*d->m_pLZ_flags >> 1) | 0x80); + if (--d->m_num_flags_left == 0) + { + d->m_num_flags_left = 8; + d->m_pLZ_flags = d->m_pLZ_code_buf++; + } + + s0 = s_tdefl_small_dist_sym[match_dist & 511]; + s1 = s_tdefl_large_dist_sym[(match_dist >> 8) & 127]; + d->m_huff_count[1][(match_dist < 512) ? s0 : s1]++; + d->m_huff_count[0][s_tdefl_len_sym[match_len - TDEFL_MIN_MATCH_LEN]]++; +} + +static mz_bool tdefl_compress_normal(tdefl_compressor *d) +{ + const mz_uint8 *pSrc = d->m_pSrc; + size_t src_buf_left = d->m_src_buf_left; + tdefl_flush flush = d->m_flush; + + while ((src_buf_left) || ((flush) && (d->m_lookahead_size))) + { + mz_uint len_to_move, cur_match_dist, cur_match_len, cur_pos; + /* Update dictionary and hash chains. Keeps the lookahead size equal to TDEFL_MAX_MATCH_LEN. */ + if ((d->m_lookahead_size + d->m_dict_size) >= (TDEFL_MIN_MATCH_LEN - 1)) + { + mz_uint dst_pos = (d->m_lookahead_pos + d->m_lookahead_size) & TDEFL_LZ_DICT_SIZE_MASK, ins_pos = d->m_lookahead_pos + d->m_lookahead_size - 2; + mz_uint hash = (d->m_dict[ins_pos & TDEFL_LZ_DICT_SIZE_MASK] << TDEFL_LZ_HASH_SHIFT) ^ d->m_dict[(ins_pos + 1) & TDEFL_LZ_DICT_SIZE_MASK]; + mz_uint num_bytes_to_process = (mz_uint)MZ_MIN(src_buf_left, TDEFL_MAX_MATCH_LEN - d->m_lookahead_size); + const mz_uint8 *pSrc_end = pSrc + num_bytes_to_process; + src_buf_left -= num_bytes_to_process; + d->m_lookahead_size += num_bytes_to_process; + while (pSrc != pSrc_end) + { + mz_uint8 c = *pSrc++; + d->m_dict[dst_pos] = c; + if (dst_pos < (TDEFL_MAX_MATCH_LEN - 1)) + d->m_dict[TDEFL_LZ_DICT_SIZE + dst_pos] = c; + hash = ((hash << TDEFL_LZ_HASH_SHIFT) ^ c) & (TDEFL_LZ_HASH_SIZE - 1); + d->m_next[ins_pos & TDEFL_LZ_DICT_SIZE_MASK] = d->m_hash[hash]; + d->m_hash[hash] = (mz_uint16)(ins_pos); + dst_pos = (dst_pos + 1) & TDEFL_LZ_DICT_SIZE_MASK; + ins_pos++; + } + } + else + { + while ((src_buf_left) && (d->m_lookahead_size < TDEFL_MAX_MATCH_LEN)) + { + mz_uint8 c = *pSrc++; + mz_uint dst_pos = (d->m_lookahead_pos + d->m_lookahead_size) & TDEFL_LZ_DICT_SIZE_MASK; + src_buf_left--; + d->m_dict[dst_pos] = c; + if (dst_pos < (TDEFL_MAX_MATCH_LEN - 1)) + d->m_dict[TDEFL_LZ_DICT_SIZE + dst_pos] = c; + if ((++d->m_lookahead_size + d->m_dict_size) >= TDEFL_MIN_MATCH_LEN) + { + mz_uint ins_pos = d->m_lookahead_pos + (d->m_lookahead_size - 1) - 2; + mz_uint hash = ((d->m_dict[ins_pos & TDEFL_LZ_DICT_SIZE_MASK] << (TDEFL_LZ_HASH_SHIFT * 2)) ^ (d->m_dict[(ins_pos + 1) & TDEFL_LZ_DICT_SIZE_MASK] << TDEFL_LZ_HASH_SHIFT) ^ c) & (TDEFL_LZ_HASH_SIZE - 1); + d->m_next[ins_pos & TDEFL_LZ_DICT_SIZE_MASK] = d->m_hash[hash]; + d->m_hash[hash] = (mz_uint16)(ins_pos); + } + } + } + d->m_dict_size = MZ_MIN(TDEFL_LZ_DICT_SIZE - d->m_lookahead_size, d->m_dict_size); + if ((!flush) && (d->m_lookahead_size < TDEFL_MAX_MATCH_LEN)) + break; + + /* Simple lazy/greedy parsing state machine. */ + len_to_move = 1; + cur_match_dist = 0; + cur_match_len = d->m_saved_match_len ? d->m_saved_match_len : (TDEFL_MIN_MATCH_LEN - 1); + cur_pos = d->m_lookahead_pos & TDEFL_LZ_DICT_SIZE_MASK; + if (d->m_flags & (TDEFL_RLE_MATCHES | TDEFL_FORCE_ALL_RAW_BLOCKS)) + { + if ((d->m_dict_size) && (!(d->m_flags & TDEFL_FORCE_ALL_RAW_BLOCKS))) + { + mz_uint8 c = d->m_dict[(cur_pos - 1) & TDEFL_LZ_DICT_SIZE_MASK]; + cur_match_len = 0; + while (cur_match_len < d->m_lookahead_size) + { + if (d->m_dict[cur_pos + cur_match_len] != c) + break; + cur_match_len++; + } + if (cur_match_len < TDEFL_MIN_MATCH_LEN) + cur_match_len = 0; + else + cur_match_dist = 1; + } + } + else + { + tdefl_find_match(d, d->m_lookahead_pos, d->m_dict_size, d->m_lookahead_size, &cur_match_dist, &cur_match_len); + } + if (((cur_match_len == TDEFL_MIN_MATCH_LEN) && (cur_match_dist >= 8U * 1024U)) || (cur_pos == cur_match_dist) || ((d->m_flags & TDEFL_FILTER_MATCHES) && (cur_match_len <= 5))) + { + cur_match_dist = cur_match_len = 0; + } + if (d->m_saved_match_len) + { + if (cur_match_len > d->m_saved_match_len) + { + tdefl_record_literal(d, (mz_uint8)d->m_saved_lit); + if (cur_match_len >= 128) + { + tdefl_record_match(d, cur_match_len, cur_match_dist); + d->m_saved_match_len = 0; + len_to_move = cur_match_len; + } + else + { + d->m_saved_lit = d->m_dict[cur_pos]; + d->m_saved_match_dist = cur_match_dist; + d->m_saved_match_len = cur_match_len; + } + } + else + { + tdefl_record_match(d, d->m_saved_match_len, d->m_saved_match_dist); + len_to_move = d->m_saved_match_len - 1; + d->m_saved_match_len = 0; + } + } + else if (!cur_match_dist) + tdefl_record_literal(d, d->m_dict[MZ_MIN(cur_pos, sizeof(d->m_dict) - 1)]); + else if ((d->m_greedy_parsing) || (d->m_flags & TDEFL_RLE_MATCHES) || (cur_match_len >= 128)) + { + tdefl_record_match(d, cur_match_len, cur_match_dist); + len_to_move = cur_match_len; + } + else + { + d->m_saved_lit = d->m_dict[MZ_MIN(cur_pos, sizeof(d->m_dict) - 1)]; + d->m_saved_match_dist = cur_match_dist; + d->m_saved_match_len = cur_match_len; + } + /* Move the lookahead forward by len_to_move bytes. */ + d->m_lookahead_pos += len_to_move; + MZ_ASSERT(d->m_lookahead_size >= len_to_move); + d->m_lookahead_size -= len_to_move; + d->m_dict_size = MZ_MIN(d->m_dict_size + len_to_move, (mz_uint)TDEFL_LZ_DICT_SIZE); + /* Check if it's time to flush the current LZ codes to the internal output buffer. */ + if ((d->m_pLZ_code_buf > &d->m_lz_code_buf[TDEFL_LZ_CODE_BUF_SIZE - 8]) || + ((d->m_total_lz_bytes > 31 * 1024) && (((((mz_uint)(d->m_pLZ_code_buf - d->m_lz_code_buf) * 115) >> 7) >= d->m_total_lz_bytes) || (d->m_flags & TDEFL_FORCE_ALL_RAW_BLOCKS)))) + { + int n; + d->m_pSrc = pSrc; + d->m_src_buf_left = src_buf_left; + if ((n = tdefl_flush_block(d, 0)) != 0) + return (n < 0) ? MZ_FALSE : MZ_TRUE; + } + } + + d->m_pSrc = pSrc; + d->m_src_buf_left = src_buf_left; + return MZ_TRUE; +} + +static tdefl_status tdefl_flush_output_buffer(tdefl_compressor *d) +{ + if (d->m_pIn_buf_size) + { + *d->m_pIn_buf_size = d->m_pSrc - (const mz_uint8 *)d->m_pIn_buf; + } + + if (d->m_pOut_buf_size) + { + size_t n = MZ_MIN(*d->m_pOut_buf_size - d->m_out_buf_ofs, d->m_output_flush_remaining); + memcpy((mz_uint8 *)d->m_pOut_buf + d->m_out_buf_ofs, d->m_output_buf + d->m_output_flush_ofs, n); + d->m_output_flush_ofs += (mz_uint)n; + d->m_output_flush_remaining -= (mz_uint)n; + d->m_out_buf_ofs += n; + + *d->m_pOut_buf_size = d->m_out_buf_ofs; + } + + return (d->m_finished && !d->m_output_flush_remaining) ? TDEFL_STATUS_DONE : TDEFL_STATUS_OKAY; +} + +tdefl_status tdefl_compress(tdefl_compressor *d, const void *pIn_buf, size_t *pIn_buf_size, void *pOut_buf, size_t *pOut_buf_size, tdefl_flush flush) +{ + if (!d) + { + if (pIn_buf_size) + *pIn_buf_size = 0; + if (pOut_buf_size) + *pOut_buf_size = 0; + return TDEFL_STATUS_BAD_PARAM; + } + + d->m_pIn_buf = pIn_buf; + d->m_pIn_buf_size = pIn_buf_size; + d->m_pOut_buf = pOut_buf; + d->m_pOut_buf_size = pOut_buf_size; + d->m_pSrc = (const mz_uint8 *)(pIn_buf); + d->m_src_buf_left = pIn_buf_size ? *pIn_buf_size : 0; + d->m_out_buf_ofs = 0; + d->m_flush = flush; + + if (((d->m_pPut_buf_func != NULL) == ((pOut_buf != NULL) || (pOut_buf_size != NULL))) || (d->m_prev_return_status != TDEFL_STATUS_OKAY) || + (d->m_wants_to_finish && (flush != TDEFL_FINISH)) || (pIn_buf_size && *pIn_buf_size && !pIn_buf) || (pOut_buf_size && *pOut_buf_size && !pOut_buf)) + { + if (pIn_buf_size) + *pIn_buf_size = 0; + if (pOut_buf_size) + *pOut_buf_size = 0; + return (d->m_prev_return_status = TDEFL_STATUS_BAD_PARAM); + } + d->m_wants_to_finish |= (flush == TDEFL_FINISH); + + if ((d->m_output_flush_remaining) || (d->m_finished)) + return (d->m_prev_return_status = tdefl_flush_output_buffer(d)); + +#if MINIZ_USE_UNALIGNED_LOADS_AND_STORES && MINIZ_LITTLE_ENDIAN + if (((d->m_flags & TDEFL_MAX_PROBES_MASK) == 1) && + ((d->m_flags & TDEFL_GREEDY_PARSING_FLAG) != 0) && + ((d->m_flags & (TDEFL_FILTER_MATCHES | TDEFL_FORCE_ALL_RAW_BLOCKS | TDEFL_RLE_MATCHES)) == 0)) + { + if (!tdefl_compress_fast(d)) + return d->m_prev_return_status; + } + else +#endif /* #if MINIZ_USE_UNALIGNED_LOADS_AND_STORES && MINIZ_LITTLE_ENDIAN */ + { + if (!tdefl_compress_normal(d)) + return d->m_prev_return_status; + } + + if ((d->m_flags & (TDEFL_WRITE_ZLIB_HEADER | TDEFL_COMPUTE_ADLER32)) && (pIn_buf)) + d->m_adler32 = (mz_uint32)mz_adler32(d->m_adler32, (const mz_uint8 *)pIn_buf, d->m_pSrc - (const mz_uint8 *)pIn_buf); + + if ((flush) && (!d->m_lookahead_size) && (!d->m_src_buf_left) && (!d->m_output_flush_remaining)) + { + if (tdefl_flush_block(d, flush) < 0) + return d->m_prev_return_status; + d->m_finished = (flush == TDEFL_FINISH); + if (flush == TDEFL_FULL_FLUSH) + { + MZ_CLEAR_OBJ(d->m_hash); + MZ_CLEAR_OBJ(d->m_next); + d->m_dict_size = 0; + } + } + + return (d->m_prev_return_status = tdefl_flush_output_buffer(d)); +} + +tdefl_status tdefl_compress_buffer(tdefl_compressor *d, const void *pIn_buf, size_t in_buf_size, tdefl_flush flush) +{ + MZ_ASSERT(d->m_pPut_buf_func); + return tdefl_compress(d, pIn_buf, &in_buf_size, NULL, NULL, flush); +} + +tdefl_status tdefl_init(tdefl_compressor *d, tdefl_put_buf_func_ptr pPut_buf_func, void *pPut_buf_user, int flags) +{ + d->m_pPut_buf_func = pPut_buf_func; + d->m_pPut_buf_user = pPut_buf_user; + d->m_flags = (mz_uint)(flags); + d->m_max_probes[0] = 1 + ((flags & 0xFFF) + 2) / 3; + d->m_greedy_parsing = (flags & TDEFL_GREEDY_PARSING_FLAG) != 0; + d->m_max_probes[1] = 1 + (((flags & 0xFFF) >> 2) + 2) / 3; + if (!(flags & TDEFL_NONDETERMINISTIC_PARSING_FLAG)) + MZ_CLEAR_OBJ(d->m_hash); + d->m_lookahead_pos = d->m_lookahead_size = d->m_dict_size = d->m_total_lz_bytes = d->m_lz_code_buf_dict_pos = d->m_bits_in = 0; + d->m_output_flush_ofs = d->m_output_flush_remaining = d->m_finished = d->m_block_index = d->m_bit_buffer = d->m_wants_to_finish = 0; + d->m_pLZ_code_buf = d->m_lz_code_buf + 1; + d->m_pLZ_flags = d->m_lz_code_buf; + *d->m_pLZ_flags = 0; + d->m_num_flags_left = 8; + d->m_pOutput_buf = d->m_output_buf; + d->m_pOutput_buf_end = d->m_output_buf; + d->m_prev_return_status = TDEFL_STATUS_OKAY; + d->m_saved_match_dist = d->m_saved_match_len = d->m_saved_lit = 0; + d->m_adler32 = 1; + d->m_pIn_buf = NULL; + d->m_pOut_buf = NULL; + d->m_pIn_buf_size = NULL; + d->m_pOut_buf_size = NULL; + d->m_flush = TDEFL_NO_FLUSH; + d->m_pSrc = NULL; + d->m_src_buf_left = 0; + d->m_out_buf_ofs = 0; + if (!(flags & TDEFL_NONDETERMINISTIC_PARSING_FLAG)) + MZ_CLEAR_OBJ(d->m_dict); + memset(&d->m_huff_count[0][0], 0, sizeof(d->m_huff_count[0][0]) * TDEFL_MAX_HUFF_SYMBOLS_0); + memset(&d->m_huff_count[1][0], 0, sizeof(d->m_huff_count[1][0]) * TDEFL_MAX_HUFF_SYMBOLS_1); + return TDEFL_STATUS_OKAY; +} + +tdefl_status tdefl_get_prev_return_status(tdefl_compressor *d) +{ + return d->m_prev_return_status; +} + +mz_uint32 tdefl_get_adler32(tdefl_compressor *d) +{ + return d->m_adler32; +} + +mz_bool tdefl_compress_mem_to_output(const void *pBuf, size_t buf_len, tdefl_put_buf_func_ptr pPut_buf_func, void *pPut_buf_user, int flags) +{ + tdefl_compressor *pComp; + mz_bool succeeded; + if (((buf_len) && (!pBuf)) || (!pPut_buf_func)) + return MZ_FALSE; + pComp = (tdefl_compressor *)MZ_MALLOC(sizeof(tdefl_compressor)); + if (!pComp) + return MZ_FALSE; + succeeded = (tdefl_init(pComp, pPut_buf_func, pPut_buf_user, flags) == TDEFL_STATUS_OKAY); + succeeded = succeeded && (tdefl_compress_buffer(pComp, pBuf, buf_len, TDEFL_FINISH) == TDEFL_STATUS_DONE); + MZ_FREE(pComp); + return succeeded; +} + +typedef struct +{ + size_t m_size, m_capacity; + mz_uint8 *m_pBuf; + mz_bool m_expandable; +} tdefl_output_buffer; + +static mz_bool tdefl_output_buffer_putter(const void *pBuf, int len, void *pUser) +{ + tdefl_output_buffer *p = (tdefl_output_buffer *)pUser; + size_t new_size = p->m_size + len; + if (new_size > p->m_capacity) + { + size_t new_capacity = p->m_capacity; + mz_uint8 *pNew_buf; + if (!p->m_expandable) + return MZ_FALSE; + do + { + new_capacity = MZ_MAX(128U, new_capacity << 1U); + } while (new_size > new_capacity); + pNew_buf = (mz_uint8 *)MZ_REALLOC(p->m_pBuf, new_capacity); + if (!pNew_buf) + return MZ_FALSE; + p->m_pBuf = pNew_buf; + p->m_capacity = new_capacity; + } + memcpy((mz_uint8 *)p->m_pBuf + p->m_size, pBuf, len); + p->m_size = new_size; + return MZ_TRUE; +} + +void *tdefl_compress_mem_to_heap(const void *pSrc_buf, size_t src_buf_len, size_t *pOut_len, int flags) +{ + tdefl_output_buffer out_buf; + MZ_CLEAR_OBJ(out_buf); + if (!pOut_len) + return MZ_FALSE; + else + *pOut_len = 0; + out_buf.m_expandable = MZ_TRUE; + if (!tdefl_compress_mem_to_output(pSrc_buf, src_buf_len, tdefl_output_buffer_putter, &out_buf, flags)) + return NULL; + *pOut_len = out_buf.m_size; + return out_buf.m_pBuf; +} + +size_t tdefl_compress_mem_to_mem(void *pOut_buf, size_t out_buf_len, const void *pSrc_buf, size_t src_buf_len, int flags) +{ + tdefl_output_buffer out_buf; + MZ_CLEAR_OBJ(out_buf); + if (!pOut_buf) + return 0; + out_buf.m_pBuf = (mz_uint8 *)pOut_buf; + out_buf.m_capacity = out_buf_len; + if (!tdefl_compress_mem_to_output(pSrc_buf, src_buf_len, tdefl_output_buffer_putter, &out_buf, flags)) + return 0; + return out_buf.m_size; +} + +static const mz_uint s_tdefl_num_probes[11] = { 0, 1, 6, 32, 16, 32, 128, 256, 512, 768, 1500 }; + +/* level may actually range from [0,10] (10 is a "hidden" max level, where we want a bit more compression and it's fine if throughput to fall off a cliff on some files). */ +mz_uint tdefl_create_comp_flags_from_zip_params(int level, int window_bits, int strategy) +{ + mz_uint comp_flags = s_tdefl_num_probes[(level >= 0) ? MZ_MIN(10, level) : MZ_DEFAULT_LEVEL] | ((level <= 3) ? TDEFL_GREEDY_PARSING_FLAG : 0); + if (window_bits > 0) + comp_flags |= TDEFL_WRITE_ZLIB_HEADER; + + if (!level) + comp_flags |= TDEFL_FORCE_ALL_RAW_BLOCKS; + else if (strategy == MZ_FILTERED) + comp_flags |= TDEFL_FILTER_MATCHES; + else if (strategy == MZ_HUFFMAN_ONLY) + comp_flags &= ~TDEFL_MAX_PROBES_MASK; + else if (strategy == MZ_FIXED) + comp_flags |= TDEFL_FORCE_ALL_STATIC_BLOCKS; + else if (strategy == MZ_RLE) + comp_flags |= TDEFL_RLE_MATCHES; + + return comp_flags; +} + +#ifdef _MSC_VER +#pragma warning(push) +#pragma warning(disable : 4204) /* nonstandard extension used : non-constant aggregate initializer (also supported by GNU C and C99, so no big deal) */ +#endif + +/* Simple PNG writer function by Alex Evans, 2011. Released into the public domain: https://gist.github.com/908299, more context at + http://altdevblogaday.org/2011/04/06/a-smaller-jpg-encoder/. + This is actually a modification of Alex's original code so PNG files generated by this function pass pngcheck. */ +void *tdefl_write_image_to_png_file_in_memory_ex(const void *pImage, int w, int h, int num_chans, size_t *pLen_out, mz_uint level, mz_bool flip) +{ + /* Using a local copy of this array here in case MINIZ_NO_ZLIB_APIS was defined. */ + static const mz_uint s_tdefl_png_num_probes[11] = { 0, 1, 6, 32, 16, 32, 128, 256, 512, 768, 1500 }; + tdefl_compressor *pComp = (tdefl_compressor *)MZ_MALLOC(sizeof(tdefl_compressor)); + tdefl_output_buffer out_buf; + int i, bpl = w * num_chans, y, z; + mz_uint32 c; + *pLen_out = 0; + if (!pComp) + return NULL; + MZ_CLEAR_OBJ(out_buf); + out_buf.m_expandable = MZ_TRUE; + out_buf.m_capacity = 57 + MZ_MAX(64, (1 + bpl) * h); + if (NULL == (out_buf.m_pBuf = (mz_uint8 *)MZ_MALLOC(out_buf.m_capacity))) + { + MZ_FREE(pComp); + return NULL; + } + /* write dummy header */ + for (z = 41; z; --z) + tdefl_output_buffer_putter(&z, 1, &out_buf); + /* compress image data */ + tdefl_init(pComp, tdefl_output_buffer_putter, &out_buf, s_tdefl_png_num_probes[MZ_MIN(10, level)] | TDEFL_WRITE_ZLIB_HEADER); + for (y = 0; y < h; ++y) + { + tdefl_compress_buffer(pComp, &z, 1, TDEFL_NO_FLUSH); + tdefl_compress_buffer(pComp, (mz_uint8 *)pImage + (flip ? (h - 1 - y) : y) * bpl, bpl, TDEFL_NO_FLUSH); + } + if (tdefl_compress_buffer(pComp, NULL, 0, TDEFL_FINISH) != TDEFL_STATUS_DONE) + { + MZ_FREE(pComp); + MZ_FREE(out_buf.m_pBuf); + return NULL; + } + /* write real header */ + *pLen_out = out_buf.m_size - 41; + { + static const mz_uint8 chans[] = { 0x00, 0x00, 0x04, 0x02, 0x06 }; + mz_uint8 pnghdr[41] = { 0x89, 0x50, 0x4e, 0x47, 0x0d, + 0x0a, 0x1a, 0x0a, 0x00, 0x00, + 0x00, 0x0d, 0x49, 0x48, 0x44, + 0x52, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x08, + 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x49, 0x44, 0x41, + 0x54 }; + pnghdr[18] = (mz_uint8)(w >> 8); + pnghdr[19] = (mz_uint8)w; + pnghdr[22] = (mz_uint8)(h >> 8); + pnghdr[23] = (mz_uint8)h; + pnghdr[25] = chans[num_chans]; + pnghdr[33] = (mz_uint8)(*pLen_out >> 24); + pnghdr[34] = (mz_uint8)(*pLen_out >> 16); + pnghdr[35] = (mz_uint8)(*pLen_out >> 8); + pnghdr[36] = (mz_uint8)*pLen_out; + c = (mz_uint32)mz_crc32(MZ_CRC32_INIT, pnghdr + 12, 17); + for (i = 0; i < 4; ++i, c <<= 8) + ((mz_uint8 *)(pnghdr + 29))[i] = (mz_uint8)(c >> 24); + memcpy(out_buf.m_pBuf, pnghdr, 41); + } + /* write footer (IDAT CRC-32, followed by IEND chunk) */ + if (!tdefl_output_buffer_putter("\0\0\0\0\0\0\0\0\x49\x45\x4e\x44\xae\x42\x60\x82", 16, &out_buf)) + { + *pLen_out = 0; + MZ_FREE(pComp); + MZ_FREE(out_buf.m_pBuf); + return NULL; + } + c = (mz_uint32)mz_crc32(MZ_CRC32_INIT, out_buf.m_pBuf + 41 - 4, *pLen_out + 4); + for (i = 0; i < 4; ++i, c <<= 8) + (out_buf.m_pBuf + out_buf.m_size - 16)[i] = (mz_uint8)(c >> 24); + /* compute final size of file, grab compressed data buffer and return */ + *pLen_out += 57; + MZ_FREE(pComp); + return out_buf.m_pBuf; +} +void *tdefl_write_image_to_png_file_in_memory(const void *pImage, int w, int h, int num_chans, size_t *pLen_out) +{ + /* Level 6 corresponds to TDEFL_DEFAULT_MAX_PROBES or MZ_DEFAULT_LEVEL (but we can't depend on MZ_DEFAULT_LEVEL being available in case the zlib API's where #defined out) */ + return tdefl_write_image_to_png_file_in_memory_ex(pImage, w, h, num_chans, pLen_out, 6, MZ_FALSE); +} + +#ifndef MINIZ_NO_MALLOC +/* Allocate the tdefl_compressor and tinfl_decompressor structures in C so that */ +/* non-C language bindings to tdefL_ and tinfl_ API don't need to worry about */ +/* structure size and allocation mechanism. */ +tdefl_compressor *tdefl_compressor_alloc() +{ + return (tdefl_compressor *)MZ_MALLOC(sizeof(tdefl_compressor)); +} + +void tdefl_compressor_free(tdefl_compressor *pComp) +{ + MZ_FREE(pComp); +} +#endif + +#ifdef _MSC_VER +#pragma warning(pop) +#endif + +#ifdef __cplusplus +} +#endif + /************************************************************************** + * + * Copyright 2013-2014 RAD Game Tools and Valve Software + * Copyright 2010-2014 Rich Geldreich and Tenacious Software LLC + * All Rights Reserved. + * + * 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. + * + **************************************************************************/ + + + +#ifdef __cplusplus +extern "C" { +#endif + +/* ------------------- Low-level Decompression (completely independent from all compression API's) */ + +#define TINFL_MEMCPY(d, s, l) memcpy(d, s, l) +#define TINFL_MEMSET(p, c, l) memset(p, c, l) + +#define TINFL_CR_BEGIN \ + switch (r->m_state) \ + { \ + case 0: +#define TINFL_CR_RETURN(state_index, result) \ + do \ + { \ + status = result; \ + r->m_state = state_index; \ + goto common_exit; \ + case state_index:; \ + } \ + MZ_MACRO_END +#define TINFL_CR_RETURN_FOREVER(state_index, result) \ + do \ + { \ + for (;;) \ + { \ + TINFL_CR_RETURN(state_index, result); \ + } \ + } \ + MZ_MACRO_END +#define TINFL_CR_FINISH } + +#define TINFL_GET_BYTE(state_index, c) \ + do \ + { \ + while (pIn_buf_cur >= pIn_buf_end) \ + { \ + TINFL_CR_RETURN(state_index, (decomp_flags & TINFL_FLAG_HAS_MORE_INPUT) ? TINFL_STATUS_NEEDS_MORE_INPUT : TINFL_STATUS_FAILED_CANNOT_MAKE_PROGRESS); \ + } \ + c = *pIn_buf_cur++; \ + } \ + MZ_MACRO_END + +#define TINFL_NEED_BITS(state_index, n) \ + do \ + { \ + mz_uint c; \ + TINFL_GET_BYTE(state_index, c); \ + bit_buf |= (((tinfl_bit_buf_t)c) << num_bits); \ + num_bits += 8; \ + } while (num_bits < (mz_uint)(n)) +#define TINFL_SKIP_BITS(state_index, n) \ + do \ + { \ + if (num_bits < (mz_uint)(n)) \ + { \ + TINFL_NEED_BITS(state_index, n); \ + } \ + bit_buf >>= (n); \ + num_bits -= (n); \ + } \ + MZ_MACRO_END +#define TINFL_GET_BITS(state_index, b, n) \ + do \ + { \ + if (num_bits < (mz_uint)(n)) \ + { \ + TINFL_NEED_BITS(state_index, n); \ + } \ + b = bit_buf & ((1 << (n)) - 1); \ + bit_buf >>= (n); \ + num_bits -= (n); \ + } \ + MZ_MACRO_END + +/* TINFL_HUFF_BITBUF_FILL() is only used rarely, when the number of bytes remaining in the input buffer falls below 2. */ +/* It reads just enough bytes from the input stream that are needed to decode the next Huffman code (and absolutely no more). It works by trying to fully decode a */ +/* Huffman code by using whatever bits are currently present in the bit buffer. If this fails, it reads another byte, and tries again until it succeeds or until the */ +/* bit buffer contains >=15 bits (deflate's max. Huffman code size). */ +#define TINFL_HUFF_BITBUF_FILL(state_index, pHuff) \ + do \ + { \ + temp = (pHuff)->m_look_up[bit_buf & (TINFL_FAST_LOOKUP_SIZE - 1)]; \ + if (temp >= 0) \ + { \ + code_len = temp >> 9; \ + if ((code_len) && (num_bits >= code_len)) \ + break; \ + } \ + else if (num_bits > TINFL_FAST_LOOKUP_BITS) \ + { \ + code_len = TINFL_FAST_LOOKUP_BITS; \ + do \ + { \ + temp = (pHuff)->m_tree[~temp + ((bit_buf >> code_len++) & 1)]; \ + } while ((temp < 0) && (num_bits >= (code_len + 1))); \ + if (temp >= 0) \ + break; \ + } \ + TINFL_GET_BYTE(state_index, c); \ + bit_buf |= (((tinfl_bit_buf_t)c) << num_bits); \ + num_bits += 8; \ + } while (num_bits < 15); + +/* TINFL_HUFF_DECODE() decodes the next Huffman coded symbol. It's more complex than you would initially expect because the zlib API expects the decompressor to never read */ +/* beyond the final byte of the deflate stream. (In other words, when this macro wants to read another byte from the input, it REALLY needs another byte in order to fully */ +/* decode the next Huffman code.) Handling this properly is particularly important on raw deflate (non-zlib) streams, which aren't followed by a byte aligned adler-32. */ +/* The slow path is only executed at the very end of the input buffer. */ +/* v1.16: The original macro handled the case at the very end of the passed-in input buffer, but we also need to handle the case where the user passes in 1+zillion bytes */ +/* following the deflate data and our non-conservative read-ahead path won't kick in here on this code. This is much trickier. */ +#define TINFL_HUFF_DECODE(state_index, sym, pHuff) \ + do \ + { \ + int temp; \ + mz_uint code_len, c; \ + if (num_bits < 15) \ + { \ + if ((pIn_buf_end - pIn_buf_cur) < 2) \ + { \ + TINFL_HUFF_BITBUF_FILL(state_index, pHuff); \ + } \ + else \ + { \ + bit_buf |= (((tinfl_bit_buf_t)pIn_buf_cur[0]) << num_bits) | (((tinfl_bit_buf_t)pIn_buf_cur[1]) << (num_bits + 8)); \ + pIn_buf_cur += 2; \ + num_bits += 16; \ + } \ + } \ + if ((temp = (pHuff)->m_look_up[bit_buf & (TINFL_FAST_LOOKUP_SIZE - 1)]) >= 0) \ + code_len = temp >> 9, temp &= 511; \ + else \ + { \ + code_len = TINFL_FAST_LOOKUP_BITS; \ + do \ + { \ + temp = (pHuff)->m_tree[~temp + ((bit_buf >> code_len++) & 1)]; \ + } while (temp < 0); \ + } \ + sym = temp; \ + bit_buf >>= code_len; \ + num_bits -= code_len; \ + } \ + MZ_MACRO_END + +tinfl_status tinfl_decompress(tinfl_decompressor *r, const mz_uint8 *pIn_buf_next, size_t *pIn_buf_size, mz_uint8 *pOut_buf_start, mz_uint8 *pOut_buf_next, size_t *pOut_buf_size, const mz_uint32 decomp_flags) +{ + static const int s_length_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 s_length_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 s_dist_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 s_dist_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 const mz_uint8 s_length_dezigzag[19] = { 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 }; + static const int s_min_table_sizes[3] = { 257, 1, 4 }; + + tinfl_status status = TINFL_STATUS_FAILED; + mz_uint32 num_bits, dist, counter, num_extra; + tinfl_bit_buf_t bit_buf; + const mz_uint8 *pIn_buf_cur = pIn_buf_next, *const pIn_buf_end = pIn_buf_next + *pIn_buf_size; + mz_uint8 *pOut_buf_cur = pOut_buf_next, *const pOut_buf_end = pOut_buf_next + *pOut_buf_size; + size_t out_buf_size_mask = (decomp_flags & TINFL_FLAG_USING_NON_WRAPPING_OUTPUT_BUF) ? (size_t)-1 : ((pOut_buf_next - pOut_buf_start) + *pOut_buf_size) - 1, dist_from_out_buf_start; + + /* Ensure the output buffer's size is a power of 2, unless the output buffer is large enough to hold the entire output file (in which case it doesn't matter). */ + if (((out_buf_size_mask + 1) & out_buf_size_mask) || (pOut_buf_next < pOut_buf_start)) + { + *pIn_buf_size = *pOut_buf_size = 0; + return TINFL_STATUS_BAD_PARAM; + } + + num_bits = r->m_num_bits; + bit_buf = r->m_bit_buf; + dist = r->m_dist; + counter = r->m_counter; + num_extra = r->m_num_extra; + dist_from_out_buf_start = r->m_dist_from_out_buf_start; + TINFL_CR_BEGIN + + bit_buf = num_bits = dist = counter = num_extra = r->m_zhdr0 = r->m_zhdr1 = 0; + r->m_z_adler32 = r->m_check_adler32 = 1; + if (decomp_flags & TINFL_FLAG_PARSE_ZLIB_HEADER) + { + TINFL_GET_BYTE(1, r->m_zhdr0); + TINFL_GET_BYTE(2, r->m_zhdr1); + counter = (((r->m_zhdr0 * 256 + r->m_zhdr1) % 31 != 0) || (r->m_zhdr1 & 32) || ((r->m_zhdr0 & 15) != 8)); + if (!(decomp_flags & TINFL_FLAG_USING_NON_WRAPPING_OUTPUT_BUF)) + counter |= (((1U << (8U + (r->m_zhdr0 >> 4))) > 32768U) || ((out_buf_size_mask + 1) < (size_t)(1U << (8U + (r->m_zhdr0 >> 4))))); + if (counter) + { + TINFL_CR_RETURN_FOREVER(36, TINFL_STATUS_FAILED); + } + } + + do + { + TINFL_GET_BITS(3, r->m_final, 3); + r->m_type = r->m_final >> 1; + if (r->m_type == 0) + { + TINFL_SKIP_BITS(5, num_bits & 7); + for (counter = 0; counter < 4; ++counter) + { + if (num_bits) + TINFL_GET_BITS(6, r->m_raw_header[counter], 8); + else + TINFL_GET_BYTE(7, r->m_raw_header[counter]); + } + if ((counter = (r->m_raw_header[0] | (r->m_raw_header[1] << 8))) != (mz_uint)(0xFFFF ^ (r->m_raw_header[2] | (r->m_raw_header[3] << 8)))) + { + TINFL_CR_RETURN_FOREVER(39, TINFL_STATUS_FAILED); + } + while ((counter) && (num_bits)) + { + TINFL_GET_BITS(51, dist, 8); + while (pOut_buf_cur >= pOut_buf_end) + { + TINFL_CR_RETURN(52, TINFL_STATUS_HAS_MORE_OUTPUT); + } + *pOut_buf_cur++ = (mz_uint8)dist; + counter--; + } + while (counter) + { + size_t n; + while (pOut_buf_cur >= pOut_buf_end) + { + TINFL_CR_RETURN(9, TINFL_STATUS_HAS_MORE_OUTPUT); + } + while (pIn_buf_cur >= pIn_buf_end) + { + TINFL_CR_RETURN(38, (decomp_flags & TINFL_FLAG_HAS_MORE_INPUT) ? TINFL_STATUS_NEEDS_MORE_INPUT : TINFL_STATUS_FAILED_CANNOT_MAKE_PROGRESS); + } + n = MZ_MIN(MZ_MIN((size_t)(pOut_buf_end - pOut_buf_cur), (size_t)(pIn_buf_end - pIn_buf_cur)), counter); + TINFL_MEMCPY(pOut_buf_cur, pIn_buf_cur, n); + pIn_buf_cur += n; + pOut_buf_cur += n; + counter -= (mz_uint)n; + } + } + else if (r->m_type == 3) + { + TINFL_CR_RETURN_FOREVER(10, TINFL_STATUS_FAILED); + } + else + { + if (r->m_type == 1) + { + mz_uint8 *p = r->m_tables[0].m_code_size; + mz_uint i; + r->m_table_sizes[0] = 288; + r->m_table_sizes[1] = 32; + TINFL_MEMSET(r->m_tables[1].m_code_size, 5, 32); + for (i = 0; i <= 143; ++i) + *p++ = 8; + for (; i <= 255; ++i) + *p++ = 9; + for (; i <= 279; ++i) + *p++ = 7; + for (; i <= 287; ++i) + *p++ = 8; + } + else + { + for (counter = 0; counter < 3; counter++) + { + TINFL_GET_BITS(11, r->m_table_sizes[counter], "\05\05\04"[counter]); + r->m_table_sizes[counter] += s_min_table_sizes[counter]; + } + MZ_CLEAR_OBJ(r->m_tables[2].m_code_size); + for (counter = 0; counter < r->m_table_sizes[2]; counter++) + { + mz_uint s; + TINFL_GET_BITS(14, s, 3); + r->m_tables[2].m_code_size[s_length_dezigzag[counter]] = (mz_uint8)s; + } + r->m_table_sizes[2] = 19; + } + for (; (int)r->m_type >= 0; r->m_type--) + { + int tree_next, tree_cur; + tinfl_huff_table *pTable; + mz_uint i, j, used_syms, total, sym_index, next_code[17], total_syms[16]; + pTable = &r->m_tables[r->m_type]; + MZ_CLEAR_OBJ(total_syms); + MZ_CLEAR_OBJ(pTable->m_look_up); + MZ_CLEAR_OBJ(pTable->m_tree); + for (i = 0; i < r->m_table_sizes[r->m_type]; ++i) + total_syms[pTable->m_code_size[i]]++; + used_syms = 0, total = 0; + next_code[0] = next_code[1] = 0; + for (i = 1; i <= 15; ++i) + { + used_syms += total_syms[i]; + next_code[i + 1] = (total = ((total + total_syms[i]) << 1)); + } + if ((65536 != total) && (used_syms > 1)) + { + TINFL_CR_RETURN_FOREVER(35, TINFL_STATUS_FAILED); + } + for (tree_next = -1, sym_index = 0; sym_index < r->m_table_sizes[r->m_type]; ++sym_index) + { + mz_uint rev_code = 0, l, cur_code, code_size = pTable->m_code_size[sym_index]; + if (!code_size) + continue; + cur_code = next_code[code_size]++; + for (l = code_size; l > 0; l--, cur_code >>= 1) + rev_code = (rev_code << 1) | (cur_code & 1); + if (code_size <= TINFL_FAST_LOOKUP_BITS) + { + mz_int16 k = (mz_int16)((code_size << 9) | sym_index); + while (rev_code < TINFL_FAST_LOOKUP_SIZE) + { + pTable->m_look_up[rev_code] = k; + rev_code += (1 << code_size); + } + continue; + } + if (0 == (tree_cur = pTable->m_look_up[rev_code & (TINFL_FAST_LOOKUP_SIZE - 1)])) + { + pTable->m_look_up[rev_code & (TINFL_FAST_LOOKUP_SIZE - 1)] = (mz_int16)tree_next; + tree_cur = tree_next; + tree_next -= 2; + } + rev_code >>= (TINFL_FAST_LOOKUP_BITS - 1); + for (j = code_size; j > (TINFL_FAST_LOOKUP_BITS + 1); j--) + { + tree_cur -= ((rev_code >>= 1) & 1); + if (!pTable->m_tree[-tree_cur - 1]) + { + pTable->m_tree[-tree_cur - 1] = (mz_int16)tree_next; + tree_cur = tree_next; + tree_next -= 2; + } + else + tree_cur = pTable->m_tree[-tree_cur - 1]; + } + tree_cur -= ((rev_code >>= 1) & 1); + pTable->m_tree[-tree_cur - 1] = (mz_int16)sym_index; + } + if (r->m_type == 2) + { + for (counter = 0; counter < (r->m_table_sizes[0] + r->m_table_sizes[1]);) + { + mz_uint s; + TINFL_HUFF_DECODE(16, dist, &r->m_tables[2]); + if (dist < 16) + { + r->m_len_codes[counter++] = (mz_uint8)dist; + continue; + } + if ((dist == 16) && (!counter)) + { + TINFL_CR_RETURN_FOREVER(17, TINFL_STATUS_FAILED); + } + num_extra = "\02\03\07"[dist - 16]; + TINFL_GET_BITS(18, s, num_extra); + s += "\03\03\013"[dist - 16]; + TINFL_MEMSET(r->m_len_codes + counter, (dist == 16) ? r->m_len_codes[counter - 1] : 0, s); + counter += s; + } + if ((r->m_table_sizes[0] + r->m_table_sizes[1]) != counter) + { + TINFL_CR_RETURN_FOREVER(21, TINFL_STATUS_FAILED); + } + TINFL_MEMCPY(r->m_tables[0].m_code_size, r->m_len_codes, r->m_table_sizes[0]); + TINFL_MEMCPY(r->m_tables[1].m_code_size, r->m_len_codes + r->m_table_sizes[0], r->m_table_sizes[1]); + } + } + for (;;) + { + mz_uint8 *pSrc; + for (;;) + { + if (((pIn_buf_end - pIn_buf_cur) < 4) || ((pOut_buf_end - pOut_buf_cur) < 2)) + { + TINFL_HUFF_DECODE(23, counter, &r->m_tables[0]); + if (counter >= 256) + break; + while (pOut_buf_cur >= pOut_buf_end) + { + TINFL_CR_RETURN(24, TINFL_STATUS_HAS_MORE_OUTPUT); + } + *pOut_buf_cur++ = (mz_uint8)counter; + } + else + { + int sym2; + mz_uint code_len; +#if TINFL_USE_64BIT_BITBUF + if (num_bits < 30) + { + bit_buf |= (((tinfl_bit_buf_t)MZ_READ_LE32(pIn_buf_cur)) << num_bits); + pIn_buf_cur += 4; + num_bits += 32; + } +#else + if (num_bits < 15) + { + bit_buf |= (((tinfl_bit_buf_t)MZ_READ_LE16(pIn_buf_cur)) << num_bits); + pIn_buf_cur += 2; + num_bits += 16; + } +#endif + if ((sym2 = r->m_tables[0].m_look_up[bit_buf & (TINFL_FAST_LOOKUP_SIZE - 1)]) >= 0) + code_len = sym2 >> 9; + else + { + code_len = TINFL_FAST_LOOKUP_BITS; + do + { + sym2 = r->m_tables[0].m_tree[~sym2 + ((bit_buf >> code_len++) & 1)]; + } while (sym2 < 0); + } + counter = sym2; + bit_buf >>= code_len; + num_bits -= code_len; + if (counter & 256) + break; + +#if !TINFL_USE_64BIT_BITBUF + if (num_bits < 15) + { + bit_buf |= (((tinfl_bit_buf_t)MZ_READ_LE16(pIn_buf_cur)) << num_bits); + pIn_buf_cur += 2; + num_bits += 16; + } +#endif + if ((sym2 = r->m_tables[0].m_look_up[bit_buf & (TINFL_FAST_LOOKUP_SIZE - 1)]) >= 0) + code_len = sym2 >> 9; + else + { + code_len = TINFL_FAST_LOOKUP_BITS; + do + { + sym2 = r->m_tables[0].m_tree[~sym2 + ((bit_buf >> code_len++) & 1)]; + } while (sym2 < 0); + } + bit_buf >>= code_len; + num_bits -= code_len; + + pOut_buf_cur[0] = (mz_uint8)counter; + if (sym2 & 256) + { + pOut_buf_cur++; + counter = sym2; + break; + } + pOut_buf_cur[1] = (mz_uint8)sym2; + pOut_buf_cur += 2; + } + } + if ((counter &= 511) == 256) + break; + + num_extra = s_length_extra[counter - 257]; + counter = s_length_base[counter - 257]; + if (num_extra) + { + mz_uint extra_bits; + TINFL_GET_BITS(25, extra_bits, num_extra); + counter += extra_bits; + } + + TINFL_HUFF_DECODE(26, dist, &r->m_tables[1]); + num_extra = s_dist_extra[dist]; + dist = s_dist_base[dist]; + if (num_extra) + { + mz_uint extra_bits; + TINFL_GET_BITS(27, extra_bits, num_extra); + dist += extra_bits; + } + + dist_from_out_buf_start = pOut_buf_cur - pOut_buf_start; + if ((dist == 0 || dist > dist_from_out_buf_start || dist_from_out_buf_start == 0) && (decomp_flags & TINFL_FLAG_USING_NON_WRAPPING_OUTPUT_BUF)) + { + TINFL_CR_RETURN_FOREVER(37, TINFL_STATUS_FAILED); + } + + pSrc = pOut_buf_start + ((dist_from_out_buf_start - dist) & out_buf_size_mask); + + if ((MZ_MAX(pOut_buf_cur, pSrc) + counter) > pOut_buf_end) + { + while (counter--) + { + while (pOut_buf_cur >= pOut_buf_end) + { + TINFL_CR_RETURN(53, TINFL_STATUS_HAS_MORE_OUTPUT); + } + *pOut_buf_cur++ = pOut_buf_start[(dist_from_out_buf_start++ - dist) & out_buf_size_mask]; + } + continue; + } +#if MINIZ_USE_UNALIGNED_LOADS_AND_STORES + else if ((counter >= 9) && (counter <= dist)) + { + const mz_uint8 *pSrc_end = pSrc + (counter & ~7); + do + { +#ifdef MINIZ_UNALIGNED_USE_MEMCPY + memcpy(pOut_buf_cur, pSrc, sizeof(mz_uint32)*2); +#else + ((mz_uint32 *)pOut_buf_cur)[0] = ((const mz_uint32 *)pSrc)[0]; + ((mz_uint32 *)pOut_buf_cur)[1] = ((const mz_uint32 *)pSrc)[1]; +#endif + pOut_buf_cur += 8; + } while ((pSrc += 8) < pSrc_end); + if ((counter &= 7) < 3) + { + if (counter) + { + pOut_buf_cur[0] = pSrc[0]; + if (counter > 1) + pOut_buf_cur[1] = pSrc[1]; + pOut_buf_cur += counter; + } + continue; + } + } +#endif + while(counter>2) + { + pOut_buf_cur[0] = pSrc[0]; + pOut_buf_cur[1] = pSrc[1]; + pOut_buf_cur[2] = pSrc[2]; + pOut_buf_cur += 3; + pSrc += 3; + counter -= 3; + } + if (counter > 0) + { + pOut_buf_cur[0] = pSrc[0]; + if (counter > 1) + pOut_buf_cur[1] = pSrc[1]; + pOut_buf_cur += counter; + } + } + } + } while (!(r->m_final & 1)); + + /* Ensure byte alignment and put back any bytes from the bitbuf if we've looked ahead too far on gzip, or other Deflate streams followed by arbitrary data. */ + /* I'm being super conservative here. A number of simplifications can be made to the byte alignment part, and the Adler32 check shouldn't ever need to worry about reading from the bitbuf now. */ + TINFL_SKIP_BITS(32, num_bits & 7); + while ((pIn_buf_cur > pIn_buf_next) && (num_bits >= 8)) + { + --pIn_buf_cur; + num_bits -= 8; + } + bit_buf &= (tinfl_bit_buf_t)((((mz_uint64)1) << num_bits) - (mz_uint64)1); + MZ_ASSERT(!num_bits); /* if this assert fires then we've read beyond the end of non-deflate/zlib streams with following data (such as gzip streams). */ + + if (decomp_flags & TINFL_FLAG_PARSE_ZLIB_HEADER) + { + for (counter = 0; counter < 4; ++counter) + { + mz_uint s; + if (num_bits) + TINFL_GET_BITS(41, s, 8); + else + TINFL_GET_BYTE(42, s); + r->m_z_adler32 = (r->m_z_adler32 << 8) | s; + } + } + TINFL_CR_RETURN_FOREVER(34, TINFL_STATUS_DONE); + + TINFL_CR_FINISH + +common_exit: + /* As long as we aren't telling the caller that we NEED more input to make forward progress: */ + /* Put back any bytes from the bitbuf in case we've looked ahead too far on gzip, or other Deflate streams followed by arbitrary data. */ + /* We need to be very careful here to NOT push back any bytes we definitely know we need to make forward progress, though, or we'll lock the caller up into an inf loop. */ + if ((status != TINFL_STATUS_NEEDS_MORE_INPUT) && (status != TINFL_STATUS_FAILED_CANNOT_MAKE_PROGRESS)) + { + while ((pIn_buf_cur > pIn_buf_next) && (num_bits >= 8)) + { + --pIn_buf_cur; + num_bits -= 8; + } + } + r->m_num_bits = num_bits; + r->m_bit_buf = bit_buf & (tinfl_bit_buf_t)((((mz_uint64)1) << num_bits) - (mz_uint64)1); + r->m_dist = dist; + r->m_counter = counter; + r->m_num_extra = num_extra; + r->m_dist_from_out_buf_start = dist_from_out_buf_start; + *pIn_buf_size = pIn_buf_cur - pIn_buf_next; + *pOut_buf_size = pOut_buf_cur - pOut_buf_next; + if ((decomp_flags & (TINFL_FLAG_PARSE_ZLIB_HEADER | TINFL_FLAG_COMPUTE_ADLER32)) && (status >= 0)) + { + const mz_uint8 *ptr = pOut_buf_next; + size_t buf_len = *pOut_buf_size; + mz_uint32 i, s1 = r->m_check_adler32 & 0xffff, s2 = r->m_check_adler32 >> 16; + size_t block_len = buf_len % 5552; + while (buf_len) + { + for (i = 0; i + 7 < block_len; i += 8, ptr += 8) + { + s1 += ptr[0], s2 += s1; + s1 += ptr[1], s2 += s1; + s1 += ptr[2], s2 += s1; + s1 += ptr[3], s2 += s1; + s1 += ptr[4], s2 += s1; + s1 += ptr[5], s2 += s1; + s1 += ptr[6], s2 += s1; + s1 += ptr[7], s2 += s1; + } + for (; i < block_len; ++i) + s1 += *ptr++, s2 += s1; + s1 %= 65521U, s2 %= 65521U; + buf_len -= block_len; + block_len = 5552; + } + r->m_check_adler32 = (s2 << 16) + s1; + if ((status == TINFL_STATUS_DONE) && (decomp_flags & TINFL_FLAG_PARSE_ZLIB_HEADER) && (r->m_check_adler32 != r->m_z_adler32)) + status = TINFL_STATUS_ADLER32_MISMATCH; + } + return status; +} + +/* Higher level helper functions. */ +void *tinfl_decompress_mem_to_heap(const void *pSrc_buf, size_t src_buf_len, size_t *pOut_len, int flags) +{ + tinfl_decompressor decomp; + void *pBuf = NULL, *pNew_buf; + size_t src_buf_ofs = 0, out_buf_capacity = 0; + *pOut_len = 0; + tinfl_init(&decomp); + for (;;) + { + size_t src_buf_size = src_buf_len - src_buf_ofs, dst_buf_size = out_buf_capacity - *pOut_len, new_out_buf_capacity; + tinfl_status status = tinfl_decompress(&decomp, (const mz_uint8 *)pSrc_buf + src_buf_ofs, &src_buf_size, (mz_uint8 *)pBuf, pBuf ? (mz_uint8 *)pBuf + *pOut_len : NULL, &dst_buf_size, + (flags & ~TINFL_FLAG_HAS_MORE_INPUT) | TINFL_FLAG_USING_NON_WRAPPING_OUTPUT_BUF); + if ((status < 0) || (status == TINFL_STATUS_NEEDS_MORE_INPUT)) + { + MZ_FREE(pBuf); + *pOut_len = 0; + return NULL; + } + src_buf_ofs += src_buf_size; + *pOut_len += dst_buf_size; + if (status == TINFL_STATUS_DONE) + break; + new_out_buf_capacity = out_buf_capacity * 2; + if (new_out_buf_capacity < 128) + new_out_buf_capacity = 128; + pNew_buf = MZ_REALLOC(pBuf, new_out_buf_capacity); + if (!pNew_buf) + { + MZ_FREE(pBuf); + *pOut_len = 0; + return NULL; + } + pBuf = pNew_buf; + out_buf_capacity = new_out_buf_capacity; + } + return pBuf; +} + +size_t tinfl_decompress_mem_to_mem(void *pOut_buf, size_t out_buf_len, const void *pSrc_buf, size_t src_buf_len, int flags) +{ + tinfl_decompressor decomp; + tinfl_status status; + tinfl_init(&decomp); + status = tinfl_decompress(&decomp, (const mz_uint8 *)pSrc_buf, &src_buf_len, (mz_uint8 *)pOut_buf, (mz_uint8 *)pOut_buf, &out_buf_len, (flags & ~TINFL_FLAG_HAS_MORE_INPUT) | TINFL_FLAG_USING_NON_WRAPPING_OUTPUT_BUF); + return (status != TINFL_STATUS_DONE) ? TINFL_DECOMPRESS_MEM_TO_MEM_FAILED : out_buf_len; +} + +int tinfl_decompress_mem_to_callback(const void *pIn_buf, size_t *pIn_buf_size, tinfl_put_buf_func_ptr pPut_buf_func, void *pPut_buf_user, int flags) +{ + int result = 0; + tinfl_decompressor decomp; + mz_uint8 *pDict = (mz_uint8 *)MZ_MALLOC(TINFL_LZ_DICT_SIZE); + size_t in_buf_ofs = 0, dict_ofs = 0; + if (!pDict) + return TINFL_STATUS_FAILED; + tinfl_init(&decomp); + for (;;) + { + size_t in_buf_size = *pIn_buf_size - in_buf_ofs, dst_buf_size = TINFL_LZ_DICT_SIZE - dict_ofs; + tinfl_status status = tinfl_decompress(&decomp, (const mz_uint8 *)pIn_buf + in_buf_ofs, &in_buf_size, pDict, pDict + dict_ofs, &dst_buf_size, + (flags & ~(TINFL_FLAG_HAS_MORE_INPUT | TINFL_FLAG_USING_NON_WRAPPING_OUTPUT_BUF))); + in_buf_ofs += in_buf_size; + if ((dst_buf_size) && (!(*pPut_buf_func)(pDict + dict_ofs, (int)dst_buf_size, pPut_buf_user))) + break; + if (status != TINFL_STATUS_HAS_MORE_OUTPUT) + { + result = (status == TINFL_STATUS_DONE); + break; + } + dict_ofs = (dict_ofs + dst_buf_size) & (TINFL_LZ_DICT_SIZE - 1); + } + MZ_FREE(pDict); + *pIn_buf_size = in_buf_ofs; + return result; +} + +#ifndef MINIZ_NO_MALLOC +tinfl_decompressor *tinfl_decompressor_alloc() +{ + tinfl_decompressor *pDecomp = (tinfl_decompressor *)MZ_MALLOC(sizeof(tinfl_decompressor)); + if (pDecomp) + tinfl_init(pDecomp); + return pDecomp; +} + +void tinfl_decompressor_free(tinfl_decompressor *pDecomp) +{ + MZ_FREE(pDecomp); +} +#endif + +#ifdef __cplusplus +} +#endif + /************************************************************************** + * + * Copyright 2013-2014 RAD Game Tools and Valve Software + * Copyright 2010-2014 Rich Geldreich and Tenacious Software LLC + * Copyright 2016 Martin Raiber + * All Rights Reserved. + * + * 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. + * + **************************************************************************/ + + +#ifndef MINIZ_NO_ARCHIVE_APIS + +#ifdef __cplusplus +extern "C" { +#endif + +/* ------------------- .ZIP archive reading */ + +#ifdef MINIZ_NO_STDIO +#define MZ_FILE void * +#else +#include + +#if defined(_MSC_VER) || defined(__MINGW64__) +static FILE *mz_fopen(const char *pFilename, const char *pMode) +{ + FILE *pFile = NULL; + fopen_s(&pFile, pFilename, pMode); + return pFile; +} +static FILE *mz_freopen(const char *pPath, const char *pMode, FILE *pStream) +{ + FILE *pFile = NULL; + if (freopen_s(&pFile, pPath, pMode, pStream)) + return NULL; + return pFile; +} +#ifndef MINIZ_NO_TIME +#include +#endif +#define MZ_FOPEN mz_fopen +#define MZ_FCLOSE fclose +#define MZ_FREAD fread +#define MZ_FWRITE fwrite +#define MZ_FTELL64 _ftelli64 +#define MZ_FSEEK64 _fseeki64 +#define MZ_FILE_STAT_STRUCT _stat64 +#define MZ_FILE_STAT _stat64 +#define MZ_FFLUSH fflush +#define MZ_FREOPEN mz_freopen +#define MZ_DELETE_FILE remove +#elif defined(__MINGW32__) +#ifndef MINIZ_NO_TIME +#include +#endif +#define MZ_FOPEN(f, m) fopen(f, m) +#define MZ_FCLOSE fclose +#define MZ_FREAD fread +#define MZ_FWRITE fwrite +#define MZ_FTELL64 ftello64 +#define MZ_FSEEK64 fseeko64 +#define MZ_FILE_STAT_STRUCT _stat +#define MZ_FILE_STAT _stat +#define MZ_FFLUSH fflush +#define MZ_FREOPEN(f, m, s) freopen(f, m, s) +#define MZ_DELETE_FILE remove +#elif defined(__TINYC__) +#ifndef MINIZ_NO_TIME +#include +#endif +#define MZ_FOPEN(f, m) fopen(f, m) +#define MZ_FCLOSE fclose +#define MZ_FREAD fread +#define MZ_FWRITE fwrite +#define MZ_FTELL64 ftell +#define MZ_FSEEK64 fseek +#define MZ_FILE_STAT_STRUCT stat +#define MZ_FILE_STAT stat +#define MZ_FFLUSH fflush +#define MZ_FREOPEN(f, m, s) freopen(f, m, s) +#define MZ_DELETE_FILE remove +#elif defined(__USE_LARGEFILE64) /* gcc, clang */ +#ifndef MINIZ_NO_TIME +#include +#endif +#define MZ_FOPEN(f, m) fopen64(f, m) +#define MZ_FCLOSE fclose +#define MZ_FREAD fread +#define MZ_FWRITE fwrite +#define MZ_FTELL64 ftello64 +#define MZ_FSEEK64 fseeko64 +#define MZ_FILE_STAT_STRUCT stat64 +#define MZ_FILE_STAT stat64 +#define MZ_FFLUSH fflush +#define MZ_FREOPEN(p, m, s) freopen64(p, m, s) +#define MZ_DELETE_FILE remove +#elif defined(__APPLE__) +#ifndef MINIZ_NO_TIME +#include +#endif +#define MZ_FOPEN(f, m) fopen(f, m) +#define MZ_FCLOSE fclose +#define MZ_FREAD fread +#define MZ_FWRITE fwrite +#define MZ_FTELL64 ftello +#define MZ_FSEEK64 fseeko +#define MZ_FILE_STAT_STRUCT stat +#define MZ_FILE_STAT stat +#define MZ_FFLUSH fflush +#define MZ_FREOPEN(p, m, s) freopen(p, m, s) +#define MZ_DELETE_FILE remove + +#else +#pragma message("Using fopen, ftello, fseeko, stat() etc. path for file I/O - this path may not support large files.") +#ifndef MINIZ_NO_TIME +#include +#endif +#define MZ_FOPEN(f, m) fopen(f, m) +#define MZ_FCLOSE fclose +#define MZ_FREAD fread +#define MZ_FWRITE fwrite +#ifdef __STRICT_ANSI__ +#define MZ_FTELL64 ftell +#define MZ_FSEEK64 fseek +#else +#define MZ_FTELL64 ftello +#define MZ_FSEEK64 fseeko +#endif +#define MZ_FILE_STAT_STRUCT stat +#define MZ_FILE_STAT stat +#define MZ_FFLUSH fflush +#define MZ_FREOPEN(f, m, s) freopen(f, m, s) +#define MZ_DELETE_FILE remove +#endif /* #ifdef _MSC_VER */ +#endif /* #ifdef MINIZ_NO_STDIO */ + +#define MZ_TOLOWER(c) ((((c) >= 'A') && ((c) <= 'Z')) ? ((c) - 'A' + 'a') : (c)) + +/* Various ZIP archive enums. To completely avoid cross platform compiler alignment and platform endian issues, miniz.c doesn't use structs for any of this stuff. */ +enum +{ + /* ZIP archive identifiers and record sizes */ + MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIG = 0x06054b50, + MZ_ZIP_CENTRAL_DIR_HEADER_SIG = 0x02014b50, + MZ_ZIP_LOCAL_DIR_HEADER_SIG = 0x04034b50, + MZ_ZIP_LOCAL_DIR_HEADER_SIZE = 30, + MZ_ZIP_CENTRAL_DIR_HEADER_SIZE = 46, + MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIZE = 22, + + /* ZIP64 archive identifier and record sizes */ + MZ_ZIP64_END_OF_CENTRAL_DIR_HEADER_SIG = 0x06064b50, + MZ_ZIP64_END_OF_CENTRAL_DIR_LOCATOR_SIG = 0x07064b50, + MZ_ZIP64_END_OF_CENTRAL_DIR_HEADER_SIZE = 56, + MZ_ZIP64_END_OF_CENTRAL_DIR_LOCATOR_SIZE = 20, + MZ_ZIP64_EXTENDED_INFORMATION_FIELD_HEADER_ID = 0x0001, + MZ_ZIP_DATA_DESCRIPTOR_ID = 0x08074b50, + MZ_ZIP_DATA_DESCRIPTER_SIZE64 = 24, + MZ_ZIP_DATA_DESCRIPTER_SIZE32 = 16, + + /* Central directory header record offsets */ + MZ_ZIP_CDH_SIG_OFS = 0, + MZ_ZIP_CDH_VERSION_MADE_BY_OFS = 4, + MZ_ZIP_CDH_VERSION_NEEDED_OFS = 6, + MZ_ZIP_CDH_BIT_FLAG_OFS = 8, + MZ_ZIP_CDH_METHOD_OFS = 10, + MZ_ZIP_CDH_FILE_TIME_OFS = 12, + MZ_ZIP_CDH_FILE_DATE_OFS = 14, + MZ_ZIP_CDH_CRC32_OFS = 16, + MZ_ZIP_CDH_COMPRESSED_SIZE_OFS = 20, + MZ_ZIP_CDH_DECOMPRESSED_SIZE_OFS = 24, + MZ_ZIP_CDH_FILENAME_LEN_OFS = 28, + MZ_ZIP_CDH_EXTRA_LEN_OFS = 30, + MZ_ZIP_CDH_COMMENT_LEN_OFS = 32, + MZ_ZIP_CDH_DISK_START_OFS = 34, + MZ_ZIP_CDH_INTERNAL_ATTR_OFS = 36, + MZ_ZIP_CDH_EXTERNAL_ATTR_OFS = 38, + MZ_ZIP_CDH_LOCAL_HEADER_OFS = 42, + + /* Local directory header offsets */ + MZ_ZIP_LDH_SIG_OFS = 0, + MZ_ZIP_LDH_VERSION_NEEDED_OFS = 4, + MZ_ZIP_LDH_BIT_FLAG_OFS = 6, + MZ_ZIP_LDH_METHOD_OFS = 8, + MZ_ZIP_LDH_FILE_TIME_OFS = 10, + MZ_ZIP_LDH_FILE_DATE_OFS = 12, + MZ_ZIP_LDH_CRC32_OFS = 14, + MZ_ZIP_LDH_COMPRESSED_SIZE_OFS = 18, + MZ_ZIP_LDH_DECOMPRESSED_SIZE_OFS = 22, + MZ_ZIP_LDH_FILENAME_LEN_OFS = 26, + MZ_ZIP_LDH_EXTRA_LEN_OFS = 28, + MZ_ZIP_LDH_BIT_FLAG_HAS_LOCATOR = 1 << 3, + + /* End of central directory offsets */ + MZ_ZIP_ECDH_SIG_OFS = 0, + MZ_ZIP_ECDH_NUM_THIS_DISK_OFS = 4, + MZ_ZIP_ECDH_NUM_DISK_CDIR_OFS = 6, + MZ_ZIP_ECDH_CDIR_NUM_ENTRIES_ON_DISK_OFS = 8, + MZ_ZIP_ECDH_CDIR_TOTAL_ENTRIES_OFS = 10, + MZ_ZIP_ECDH_CDIR_SIZE_OFS = 12, + MZ_ZIP_ECDH_CDIR_OFS_OFS = 16, + MZ_ZIP_ECDH_COMMENT_SIZE_OFS = 20, + + /* ZIP64 End of central directory locator offsets */ + MZ_ZIP64_ECDL_SIG_OFS = 0, /* 4 bytes */ + MZ_ZIP64_ECDL_NUM_DISK_CDIR_OFS = 4, /* 4 bytes */ + MZ_ZIP64_ECDL_REL_OFS_TO_ZIP64_ECDR_OFS = 8, /* 8 bytes */ + MZ_ZIP64_ECDL_TOTAL_NUMBER_OF_DISKS_OFS = 16, /* 4 bytes */ + + /* ZIP64 End of central directory header offsets */ + MZ_ZIP64_ECDH_SIG_OFS = 0, /* 4 bytes */ + MZ_ZIP64_ECDH_SIZE_OF_RECORD_OFS = 4, /* 8 bytes */ + MZ_ZIP64_ECDH_VERSION_MADE_BY_OFS = 12, /* 2 bytes */ + MZ_ZIP64_ECDH_VERSION_NEEDED_OFS = 14, /* 2 bytes */ + MZ_ZIP64_ECDH_NUM_THIS_DISK_OFS = 16, /* 4 bytes */ + MZ_ZIP64_ECDH_NUM_DISK_CDIR_OFS = 20, /* 4 bytes */ + MZ_ZIP64_ECDH_CDIR_NUM_ENTRIES_ON_DISK_OFS = 24, /* 8 bytes */ + MZ_ZIP64_ECDH_CDIR_TOTAL_ENTRIES_OFS = 32, /* 8 bytes */ + MZ_ZIP64_ECDH_CDIR_SIZE_OFS = 40, /* 8 bytes */ + MZ_ZIP64_ECDH_CDIR_OFS_OFS = 48, /* 8 bytes */ + MZ_ZIP_VERSION_MADE_BY_DOS_FILESYSTEM_ID = 0, + MZ_ZIP_DOS_DIR_ATTRIBUTE_BITFLAG = 0x10, + MZ_ZIP_GENERAL_PURPOSE_BIT_FLAG_IS_ENCRYPTED = 1, + MZ_ZIP_GENERAL_PURPOSE_BIT_FLAG_COMPRESSED_PATCH_FLAG = 32, + MZ_ZIP_GENERAL_PURPOSE_BIT_FLAG_USES_STRONG_ENCRYPTION = 64, + MZ_ZIP_GENERAL_PURPOSE_BIT_FLAG_LOCAL_DIR_IS_MASKED = 8192, + MZ_ZIP_GENERAL_PURPOSE_BIT_FLAG_UTF8 = 1 << 11 +}; + +typedef struct +{ + void *m_p; + size_t m_size, m_capacity; + mz_uint m_element_size; +} mz_zip_array; + +struct mz_zip_internal_state_tag +{ + mz_zip_array m_central_dir; + mz_zip_array m_central_dir_offsets; + mz_zip_array m_sorted_central_dir_offsets; + + /* The flags passed in when the archive is initially opened. */ + uint32_t m_init_flags; + + /* MZ_TRUE if the archive has a zip64 end of central directory headers, etc. */ + mz_bool m_zip64; + + /* MZ_TRUE if we found zip64 extended info in the central directory (m_zip64 will also be slammed to true too, even if we didn't find a zip64 end of central dir header, etc.) */ + mz_bool m_zip64_has_extended_info_fields; + + /* These fields are used by the file, FILE, memory, and memory/heap read/write helpers. */ + MZ_FILE *m_pFile; + mz_uint64 m_file_archive_start_ofs; + + void *m_pMem; + size_t m_mem_size; + size_t m_mem_capacity; +}; + +#define MZ_ZIP_ARRAY_SET_ELEMENT_SIZE(array_ptr, element_size) (array_ptr)->m_element_size = element_size + +#if defined(DEBUG) || defined(_DEBUG) +static MZ_FORCEINLINE mz_uint mz_zip_array_range_check(const mz_zip_array *pArray, mz_uint index) +{ + MZ_ASSERT(index < pArray->m_size); + return index; +} +#define MZ_ZIP_ARRAY_ELEMENT(array_ptr, element_type, index) ((element_type *)((array_ptr)->m_p))[mz_zip_array_range_check(array_ptr, index)] +#else +#define MZ_ZIP_ARRAY_ELEMENT(array_ptr, element_type, index) ((element_type *)((array_ptr)->m_p))[index] +#endif + +static MZ_FORCEINLINE void mz_zip_array_init(mz_zip_array *pArray, mz_uint32 element_size) +{ + memset(pArray, 0, sizeof(mz_zip_array)); + pArray->m_element_size = element_size; +} + +static MZ_FORCEINLINE void mz_zip_array_clear(mz_zip_archive *pZip, mz_zip_array *pArray) +{ + pZip->m_pFree(pZip->m_pAlloc_opaque, pArray->m_p); + memset(pArray, 0, sizeof(mz_zip_array)); +} + +static mz_bool mz_zip_array_ensure_capacity(mz_zip_archive *pZip, mz_zip_array *pArray, size_t min_new_capacity, mz_uint growing) +{ + void *pNew_p; + size_t new_capacity = min_new_capacity; + MZ_ASSERT(pArray->m_element_size); + if (pArray->m_capacity >= min_new_capacity) + return MZ_TRUE; + if (growing) + { + new_capacity = MZ_MAX(1, pArray->m_capacity); + while (new_capacity < min_new_capacity) + new_capacity *= 2; + } + if (NULL == (pNew_p = pZip->m_pRealloc(pZip->m_pAlloc_opaque, pArray->m_p, pArray->m_element_size, new_capacity))) + return MZ_FALSE; + pArray->m_p = pNew_p; + pArray->m_capacity = new_capacity; + return MZ_TRUE; +} + +static MZ_FORCEINLINE mz_bool mz_zip_array_reserve(mz_zip_archive *pZip, mz_zip_array *pArray, size_t new_capacity, mz_uint growing) +{ + if (new_capacity > pArray->m_capacity) + { + if (!mz_zip_array_ensure_capacity(pZip, pArray, new_capacity, growing)) + return MZ_FALSE; + } + return MZ_TRUE; +} + +static MZ_FORCEINLINE mz_bool mz_zip_array_resize(mz_zip_archive *pZip, mz_zip_array *pArray, size_t new_size, mz_uint growing) +{ + if (new_size > pArray->m_capacity) + { + if (!mz_zip_array_ensure_capacity(pZip, pArray, new_size, growing)) + return MZ_FALSE; + } + pArray->m_size = new_size; + return MZ_TRUE; +} + +static MZ_FORCEINLINE mz_bool mz_zip_array_ensure_room(mz_zip_archive *pZip, mz_zip_array *pArray, size_t n) +{ + return mz_zip_array_reserve(pZip, pArray, pArray->m_size + n, MZ_TRUE); +} + +static MZ_FORCEINLINE mz_bool mz_zip_array_push_back(mz_zip_archive *pZip, mz_zip_array *pArray, const void *pElements, size_t n) +{ + size_t orig_size = pArray->m_size; + if (!mz_zip_array_resize(pZip, pArray, orig_size + n, MZ_TRUE)) + return MZ_FALSE; + if (n > 0) + memcpy((mz_uint8 *)pArray->m_p + orig_size * pArray->m_element_size, pElements, n * pArray->m_element_size); + return MZ_TRUE; +} + +#ifndef MINIZ_NO_TIME +static MZ_TIME_T mz_zip_dos_to_time_t(int dos_time, int dos_date) +{ + struct tm tm; + memset(&tm, 0, sizeof(tm)); + tm.tm_isdst = -1; + tm.tm_year = ((dos_date >> 9) & 127) + 1980 - 1900; + tm.tm_mon = ((dos_date >> 5) & 15) - 1; + tm.tm_mday = dos_date & 31; + tm.tm_hour = (dos_time >> 11) & 31; + tm.tm_min = (dos_time >> 5) & 63; + tm.tm_sec = (dos_time << 1) & 62; + return mktime(&tm); +} + +#ifndef MINIZ_NO_ARCHIVE_WRITING_APIS +static void mz_zip_time_t_to_dos_time(MZ_TIME_T time, mz_uint16 *pDOS_time, mz_uint16 *pDOS_date) +{ +#ifdef _MSC_VER + struct tm tm_struct; + struct tm *tm = &tm_struct; + errno_t err = localtime_s(tm, &time); + if (err) + { + *pDOS_date = 0; + *pDOS_time = 0; + return; + } +#else + struct tm *tm = localtime(&time); +#endif /* #ifdef _MSC_VER */ + + *pDOS_time = (mz_uint16)(((tm->tm_hour) << 11) + ((tm->tm_min) << 5) + ((tm->tm_sec) >> 1)); + *pDOS_date = (mz_uint16)(((tm->tm_year + 1900 - 1980) << 9) + ((tm->tm_mon + 1) << 5) + tm->tm_mday); +} +#endif /* MINIZ_NO_ARCHIVE_WRITING_APIS */ + +#ifndef MINIZ_NO_STDIO +#ifndef MINIZ_NO_ARCHIVE_WRITING_APIS +static mz_bool mz_zip_get_file_modified_time(const char *pFilename, MZ_TIME_T *pTime) +{ + struct MZ_FILE_STAT_STRUCT file_stat; + + /* On Linux with x86 glibc, this call will fail on large files (I think >= 0x80000000 bytes) unless you compiled with _LARGEFILE64_SOURCE. Argh. */ + if (MZ_FILE_STAT(pFilename, &file_stat) != 0) + return MZ_FALSE; + + *pTime = file_stat.st_mtime; + + return MZ_TRUE; +} +#endif /* #ifndef MINIZ_NO_ARCHIVE_WRITING_APIS*/ + +static mz_bool mz_zip_set_file_times(const char *pFilename, MZ_TIME_T access_time, MZ_TIME_T modified_time) +{ + struct utimbuf t; + + memset(&t, 0, sizeof(t)); + t.actime = access_time; + t.modtime = modified_time; + + return !utime(pFilename, &t); +} +#endif /* #ifndef MINIZ_NO_STDIO */ +#endif /* #ifndef MINIZ_NO_TIME */ + +static MZ_FORCEINLINE mz_bool mz_zip_set_error(mz_zip_archive *pZip, mz_zip_error err_num) +{ + if (pZip) + pZip->m_last_error = err_num; + return MZ_FALSE; +} + +static mz_bool mz_zip_reader_init_internal(mz_zip_archive *pZip, mz_uint flags) +{ + (void)flags; + if ((!pZip) || (pZip->m_pState) || (pZip->m_zip_mode != MZ_ZIP_MODE_INVALID)) + return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); + + if (!pZip->m_pAlloc) + pZip->m_pAlloc = miniz_def_alloc_func; + if (!pZip->m_pFree) + pZip->m_pFree = miniz_def_free_func; + if (!pZip->m_pRealloc) + pZip->m_pRealloc = miniz_def_realloc_func; + + pZip->m_archive_size = 0; + pZip->m_central_directory_file_ofs = 0; + pZip->m_total_files = 0; + pZip->m_last_error = MZ_ZIP_NO_ERROR; + + if (NULL == (pZip->m_pState = (mz_zip_internal_state *)pZip->m_pAlloc(pZip->m_pAlloc_opaque, 1, sizeof(mz_zip_internal_state)))) + return mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); + + memset(pZip->m_pState, 0, sizeof(mz_zip_internal_state)); + MZ_ZIP_ARRAY_SET_ELEMENT_SIZE(&pZip->m_pState->m_central_dir, sizeof(mz_uint8)); + MZ_ZIP_ARRAY_SET_ELEMENT_SIZE(&pZip->m_pState->m_central_dir_offsets, sizeof(mz_uint32)); + MZ_ZIP_ARRAY_SET_ELEMENT_SIZE(&pZip->m_pState->m_sorted_central_dir_offsets, sizeof(mz_uint32)); + pZip->m_pState->m_init_flags = flags; + pZip->m_pState->m_zip64 = MZ_FALSE; + pZip->m_pState->m_zip64_has_extended_info_fields = MZ_FALSE; + + pZip->m_zip_mode = MZ_ZIP_MODE_READING; + + return MZ_TRUE; +} + +static MZ_FORCEINLINE mz_bool mz_zip_reader_filename_less(const mz_zip_array *pCentral_dir_array, const mz_zip_array *pCentral_dir_offsets, mz_uint l_index, mz_uint r_index) +{ + const mz_uint8 *pL = &MZ_ZIP_ARRAY_ELEMENT(pCentral_dir_array, mz_uint8, MZ_ZIP_ARRAY_ELEMENT(pCentral_dir_offsets, mz_uint32, l_index)), *pE; + const mz_uint8 *pR = &MZ_ZIP_ARRAY_ELEMENT(pCentral_dir_array, mz_uint8, MZ_ZIP_ARRAY_ELEMENT(pCentral_dir_offsets, mz_uint32, r_index)); + mz_uint l_len = MZ_READ_LE16(pL + MZ_ZIP_CDH_FILENAME_LEN_OFS), r_len = MZ_READ_LE16(pR + MZ_ZIP_CDH_FILENAME_LEN_OFS); + mz_uint8 l = 0, r = 0; + pL += MZ_ZIP_CENTRAL_DIR_HEADER_SIZE; + pR += MZ_ZIP_CENTRAL_DIR_HEADER_SIZE; + pE = pL + MZ_MIN(l_len, r_len); + while (pL < pE) + { + if ((l = MZ_TOLOWER(*pL)) != (r = MZ_TOLOWER(*pR))) + break; + pL++; + pR++; + } + return (pL == pE) ? (l_len < r_len) : (l < r); +} + +#define MZ_SWAP_UINT32(a, b) \ + do \ + { \ + mz_uint32 t = a; \ + a = b; \ + b = t; \ + } \ + MZ_MACRO_END + +/* Heap sort of lowercased filenames, used to help accelerate plain central directory searches by mz_zip_reader_locate_file(). (Could also use qsort(), but it could allocate memory.) */ +static void mz_zip_reader_sort_central_dir_offsets_by_filename(mz_zip_archive *pZip) +{ + mz_zip_internal_state *pState = pZip->m_pState; + const mz_zip_array *pCentral_dir_offsets = &pState->m_central_dir_offsets; + const mz_zip_array *pCentral_dir = &pState->m_central_dir; + mz_uint32 *pIndices; + mz_uint32 start, end; + const mz_uint32 size = pZip->m_total_files; + + if (size <= 1U) + return; + + pIndices = &MZ_ZIP_ARRAY_ELEMENT(&pState->m_sorted_central_dir_offsets, mz_uint32, 0); + + start = (size - 2U) >> 1U; + for (;;) + { + mz_uint64 child, root = start; + for (;;) + { + if ((child = (root << 1U) + 1U) >= size) + break; + child += (((child + 1U) < size) && (mz_zip_reader_filename_less(pCentral_dir, pCentral_dir_offsets, pIndices[child], pIndices[child + 1U]))); + if (!mz_zip_reader_filename_less(pCentral_dir, pCentral_dir_offsets, pIndices[root], pIndices[child])) + break; + MZ_SWAP_UINT32(pIndices[root], pIndices[child]); + root = child; + } + if (!start) + break; + start--; + } + + end = size - 1; + while (end > 0) + { + mz_uint64 child, root = 0; + MZ_SWAP_UINT32(pIndices[end], pIndices[0]); + for (;;) + { + if ((child = (root << 1U) + 1U) >= end) + break; + child += (((child + 1U) < end) && mz_zip_reader_filename_less(pCentral_dir, pCentral_dir_offsets, pIndices[child], pIndices[child + 1U])); + if (!mz_zip_reader_filename_less(pCentral_dir, pCentral_dir_offsets, pIndices[root], pIndices[child])) + break; + MZ_SWAP_UINT32(pIndices[root], pIndices[child]); + root = child; + } + end--; + } +} + +static mz_bool mz_zip_reader_locate_header_sig(mz_zip_archive *pZip, mz_uint32 record_sig, mz_uint32 record_size, mz_int64 *pOfs) +{ + mz_int64 cur_file_ofs; + mz_uint32 buf_u32[4096 / sizeof(mz_uint32)]; + mz_uint8 *pBuf = (mz_uint8 *)buf_u32; + + /* Basic sanity checks - reject files which are too small */ + if (pZip->m_archive_size < record_size) + return MZ_FALSE; + + /* Find the record by scanning the file from the end towards the beginning. */ + cur_file_ofs = MZ_MAX((mz_int64)pZip->m_archive_size - (mz_int64)sizeof(buf_u32), 0); + for (;;) + { + int i, n = (int)MZ_MIN(sizeof(buf_u32), pZip->m_archive_size - cur_file_ofs); + + if (pZip->m_pRead(pZip->m_pIO_opaque, cur_file_ofs, pBuf, n) != (mz_uint)n) + return MZ_FALSE; + + for (i = n - 4; i >= 0; --i) + { + mz_uint s = MZ_READ_LE32(pBuf + i); + if (s == record_sig) + { + if ((pZip->m_archive_size - (cur_file_ofs + i)) >= record_size) + break; + } + } + + if (i >= 0) + { + cur_file_ofs += i; + break; + } + + /* Give up if we've searched the entire file, or we've gone back "too far" (~64kb) */ + if ((!cur_file_ofs) || ((pZip->m_archive_size - cur_file_ofs) >= (MZ_UINT16_MAX + record_size))) + return MZ_FALSE; + + cur_file_ofs = MZ_MAX(cur_file_ofs - (sizeof(buf_u32) - 3), 0); + } + + *pOfs = cur_file_ofs; + return MZ_TRUE; +} + +static mz_bool mz_zip_reader_read_central_dir(mz_zip_archive *pZip, mz_uint flags) +{ + mz_uint cdir_size = 0, cdir_entries_on_this_disk = 0, num_this_disk = 0, cdir_disk_index = 0; + mz_uint64 cdir_ofs = 0; + mz_int64 cur_file_ofs = 0; + const mz_uint8 *p; + + mz_uint32 buf_u32[4096 / sizeof(mz_uint32)]; + mz_uint8 *pBuf = (mz_uint8 *)buf_u32; + mz_bool sort_central_dir = ((flags & MZ_ZIP_FLAG_DO_NOT_SORT_CENTRAL_DIRECTORY) == 0); + mz_uint32 zip64_end_of_central_dir_locator_u32[(MZ_ZIP64_END_OF_CENTRAL_DIR_LOCATOR_SIZE + sizeof(mz_uint32) - 1) / sizeof(mz_uint32)]; + mz_uint8 *pZip64_locator = (mz_uint8 *)zip64_end_of_central_dir_locator_u32; + + mz_uint32 zip64_end_of_central_dir_header_u32[(MZ_ZIP64_END_OF_CENTRAL_DIR_HEADER_SIZE + sizeof(mz_uint32) - 1) / sizeof(mz_uint32)]; + mz_uint8 *pZip64_end_of_central_dir = (mz_uint8 *)zip64_end_of_central_dir_header_u32; + + mz_uint64 zip64_end_of_central_dir_ofs = 0; + + /* Basic sanity checks - reject files which are too small, and check the first 4 bytes of the file to make sure a local header is there. */ + if (pZip->m_archive_size < MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIZE) + return mz_zip_set_error(pZip, MZ_ZIP_NOT_AN_ARCHIVE); + + if (!mz_zip_reader_locate_header_sig(pZip, MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIG, MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIZE, &cur_file_ofs)) + return mz_zip_set_error(pZip, MZ_ZIP_FAILED_FINDING_CENTRAL_DIR); + + /* Read and verify the end of central directory record. */ + if (pZip->m_pRead(pZip->m_pIO_opaque, cur_file_ofs, pBuf, MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIZE) != MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIZE) + return mz_zip_set_error(pZip, MZ_ZIP_FILE_READ_FAILED); + + if (MZ_READ_LE32(pBuf + MZ_ZIP_ECDH_SIG_OFS) != MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIG) + return mz_zip_set_error(pZip, MZ_ZIP_NOT_AN_ARCHIVE); + + if (cur_file_ofs >= (MZ_ZIP64_END_OF_CENTRAL_DIR_LOCATOR_SIZE + MZ_ZIP64_END_OF_CENTRAL_DIR_HEADER_SIZE)) + { + if (pZip->m_pRead(pZip->m_pIO_opaque, cur_file_ofs - MZ_ZIP64_END_OF_CENTRAL_DIR_LOCATOR_SIZE, pZip64_locator, MZ_ZIP64_END_OF_CENTRAL_DIR_LOCATOR_SIZE) == MZ_ZIP64_END_OF_CENTRAL_DIR_LOCATOR_SIZE) + { + if (MZ_READ_LE32(pZip64_locator + MZ_ZIP64_ECDL_SIG_OFS) == MZ_ZIP64_END_OF_CENTRAL_DIR_LOCATOR_SIG) + { + zip64_end_of_central_dir_ofs = MZ_READ_LE64(pZip64_locator + MZ_ZIP64_ECDL_REL_OFS_TO_ZIP64_ECDR_OFS); + if (zip64_end_of_central_dir_ofs > (pZip->m_archive_size - MZ_ZIP64_END_OF_CENTRAL_DIR_HEADER_SIZE)) + return mz_zip_set_error(pZip, MZ_ZIP_NOT_AN_ARCHIVE); + + if (pZip->m_pRead(pZip->m_pIO_opaque, zip64_end_of_central_dir_ofs, pZip64_end_of_central_dir, MZ_ZIP64_END_OF_CENTRAL_DIR_HEADER_SIZE) == MZ_ZIP64_END_OF_CENTRAL_DIR_HEADER_SIZE) + { + if (MZ_READ_LE32(pZip64_end_of_central_dir + MZ_ZIP64_ECDH_SIG_OFS) == MZ_ZIP64_END_OF_CENTRAL_DIR_HEADER_SIG) + { + pZip->m_pState->m_zip64 = MZ_TRUE; + } + } + } + } + } + + pZip->m_total_files = MZ_READ_LE16(pBuf + MZ_ZIP_ECDH_CDIR_TOTAL_ENTRIES_OFS); + cdir_entries_on_this_disk = MZ_READ_LE16(pBuf + MZ_ZIP_ECDH_CDIR_NUM_ENTRIES_ON_DISK_OFS); + num_this_disk = MZ_READ_LE16(pBuf + MZ_ZIP_ECDH_NUM_THIS_DISK_OFS); + cdir_disk_index = MZ_READ_LE16(pBuf + MZ_ZIP_ECDH_NUM_DISK_CDIR_OFS); + cdir_size = MZ_READ_LE32(pBuf + MZ_ZIP_ECDH_CDIR_SIZE_OFS); + cdir_ofs = MZ_READ_LE32(pBuf + MZ_ZIP_ECDH_CDIR_OFS_OFS); + + if (pZip->m_pState->m_zip64) + { + mz_uint32 zip64_total_num_of_disks = MZ_READ_LE32(pZip64_locator + MZ_ZIP64_ECDL_TOTAL_NUMBER_OF_DISKS_OFS); + mz_uint64 zip64_cdir_total_entries = MZ_READ_LE64(pZip64_end_of_central_dir + MZ_ZIP64_ECDH_CDIR_TOTAL_ENTRIES_OFS); + mz_uint64 zip64_cdir_total_entries_on_this_disk = MZ_READ_LE64(pZip64_end_of_central_dir + MZ_ZIP64_ECDH_CDIR_NUM_ENTRIES_ON_DISK_OFS); + mz_uint64 zip64_size_of_end_of_central_dir_record = MZ_READ_LE64(pZip64_end_of_central_dir + MZ_ZIP64_ECDH_SIZE_OF_RECORD_OFS); + mz_uint64 zip64_size_of_central_directory = MZ_READ_LE64(pZip64_end_of_central_dir + MZ_ZIP64_ECDH_CDIR_SIZE_OFS); + + if (zip64_size_of_end_of_central_dir_record < (MZ_ZIP64_END_OF_CENTRAL_DIR_HEADER_SIZE - 12)) + return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); + + if (zip64_total_num_of_disks != 1U) + return mz_zip_set_error(pZip, MZ_ZIP_UNSUPPORTED_MULTIDISK); + + /* Check for miniz's practical limits */ + if (zip64_cdir_total_entries > MZ_UINT32_MAX) + return mz_zip_set_error(pZip, MZ_ZIP_TOO_MANY_FILES); + + pZip->m_total_files = (mz_uint32)zip64_cdir_total_entries; + + if (zip64_cdir_total_entries_on_this_disk > MZ_UINT32_MAX) + return mz_zip_set_error(pZip, MZ_ZIP_TOO_MANY_FILES); + + cdir_entries_on_this_disk = (mz_uint32)zip64_cdir_total_entries_on_this_disk; + + /* Check for miniz's current practical limits (sorry, this should be enough for millions of files) */ + if (zip64_size_of_central_directory > MZ_UINT32_MAX) + return mz_zip_set_error(pZip, MZ_ZIP_UNSUPPORTED_CDIR_SIZE); + + cdir_size = (mz_uint32)zip64_size_of_central_directory; + + num_this_disk = MZ_READ_LE32(pZip64_end_of_central_dir + MZ_ZIP64_ECDH_NUM_THIS_DISK_OFS); + + cdir_disk_index = MZ_READ_LE32(pZip64_end_of_central_dir + MZ_ZIP64_ECDH_NUM_DISK_CDIR_OFS); + + cdir_ofs = MZ_READ_LE64(pZip64_end_of_central_dir + MZ_ZIP64_ECDH_CDIR_OFS_OFS); + } + + if (pZip->m_total_files != cdir_entries_on_this_disk) + return mz_zip_set_error(pZip, MZ_ZIP_UNSUPPORTED_MULTIDISK); + + if (((num_this_disk | cdir_disk_index) != 0) && ((num_this_disk != 1) || (cdir_disk_index != 1))) + return mz_zip_set_error(pZip, MZ_ZIP_UNSUPPORTED_MULTIDISK); + + if (cdir_size < pZip->m_total_files * MZ_ZIP_CENTRAL_DIR_HEADER_SIZE) + return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); + + if ((cdir_ofs + (mz_uint64)cdir_size) > pZip->m_archive_size) + return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); + + pZip->m_central_directory_file_ofs = cdir_ofs; + + if (pZip->m_total_files) + { + mz_uint i, n; + /* Read the entire central directory into a heap block, and allocate another heap block to hold the unsorted central dir file record offsets, and possibly another to hold the sorted indices. */ + if ((!mz_zip_array_resize(pZip, &pZip->m_pState->m_central_dir, cdir_size, MZ_FALSE)) || + (!mz_zip_array_resize(pZip, &pZip->m_pState->m_central_dir_offsets, pZip->m_total_files, MZ_FALSE))) + return mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); + + if (sort_central_dir) + { + if (!mz_zip_array_resize(pZip, &pZip->m_pState->m_sorted_central_dir_offsets, pZip->m_total_files, MZ_FALSE)) + return mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); + } + + if (pZip->m_pRead(pZip->m_pIO_opaque, cdir_ofs, pZip->m_pState->m_central_dir.m_p, cdir_size) != cdir_size) + return mz_zip_set_error(pZip, MZ_ZIP_FILE_READ_FAILED); + + /* Now create an index into the central directory file records, do some basic sanity checking on each record */ + p = (const mz_uint8 *)pZip->m_pState->m_central_dir.m_p; + for (n = cdir_size, i = 0; i < pZip->m_total_files; ++i) + { + mz_uint total_header_size, disk_index, bit_flags, filename_size, ext_data_size; + mz_uint64 comp_size, decomp_size, local_header_ofs; + + if ((n < MZ_ZIP_CENTRAL_DIR_HEADER_SIZE) || (MZ_READ_LE32(p) != MZ_ZIP_CENTRAL_DIR_HEADER_SIG)) + return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); + + MZ_ZIP_ARRAY_ELEMENT(&pZip->m_pState->m_central_dir_offsets, mz_uint32, i) = (mz_uint32)(p - (const mz_uint8 *)pZip->m_pState->m_central_dir.m_p); + + if (sort_central_dir) + MZ_ZIP_ARRAY_ELEMENT(&pZip->m_pState->m_sorted_central_dir_offsets, mz_uint32, i) = i; + + comp_size = MZ_READ_LE32(p + MZ_ZIP_CDH_COMPRESSED_SIZE_OFS); + decomp_size = MZ_READ_LE32(p + MZ_ZIP_CDH_DECOMPRESSED_SIZE_OFS); + local_header_ofs = MZ_READ_LE32(p + MZ_ZIP_CDH_LOCAL_HEADER_OFS); + filename_size = MZ_READ_LE16(p + MZ_ZIP_CDH_FILENAME_LEN_OFS); + ext_data_size = MZ_READ_LE16(p + MZ_ZIP_CDH_EXTRA_LEN_OFS); + + if ((!pZip->m_pState->m_zip64_has_extended_info_fields) && + (ext_data_size) && + (MZ_MAX(MZ_MAX(comp_size, decomp_size), local_header_ofs) == MZ_UINT32_MAX)) + { + /* Attempt to find zip64 extended information field in the entry's extra data */ + mz_uint32 extra_size_remaining = ext_data_size; + + if (extra_size_remaining) + { + const mz_uint8 *pExtra_data; + void* buf = NULL; + + if (MZ_ZIP_CENTRAL_DIR_HEADER_SIZE + filename_size + ext_data_size > n) + { + buf = MZ_MALLOC(ext_data_size); + if(buf==NULL) + return mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); + + if (pZip->m_pRead(pZip->m_pIO_opaque, cdir_ofs + MZ_ZIP_CENTRAL_DIR_HEADER_SIZE + filename_size, buf, ext_data_size) != ext_data_size) + { + MZ_FREE(buf); + return mz_zip_set_error(pZip, MZ_ZIP_FILE_READ_FAILED); + } + + pExtra_data = (mz_uint8*)buf; + } + else + { + pExtra_data = p + MZ_ZIP_CENTRAL_DIR_HEADER_SIZE + filename_size; + } + + do + { + mz_uint32 field_id; + mz_uint32 field_data_size; + + if (extra_size_remaining < (sizeof(mz_uint16) * 2)) + { + MZ_FREE(buf); + return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); + } + + field_id = MZ_READ_LE16(pExtra_data); + field_data_size = MZ_READ_LE16(pExtra_data + sizeof(mz_uint16)); + + if ((field_data_size + sizeof(mz_uint16) * 2) > extra_size_remaining) + { + MZ_FREE(buf); + return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); + } + + if (field_id == MZ_ZIP64_EXTENDED_INFORMATION_FIELD_HEADER_ID) + { + /* Ok, the archive didn't have any zip64 headers but it uses a zip64 extended information field so mark it as zip64 anyway (this can occur with infozip's zip util when it reads compresses files from stdin). */ + pZip->m_pState->m_zip64 = MZ_TRUE; + pZip->m_pState->m_zip64_has_extended_info_fields = MZ_TRUE; + break; + } + + pExtra_data += sizeof(mz_uint16) * 2 + field_data_size; + extra_size_remaining = extra_size_remaining - sizeof(mz_uint16) * 2 - field_data_size; + } while (extra_size_remaining); + + MZ_FREE(buf); + } + } + + /* I've seen archives that aren't marked as zip64 that uses zip64 ext data, argh */ + if ((comp_size != MZ_UINT32_MAX) && (decomp_size != MZ_UINT32_MAX)) + { + if (((!MZ_READ_LE32(p + MZ_ZIP_CDH_METHOD_OFS)) && (decomp_size != comp_size)) || (decomp_size && !comp_size)) + return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); + } + + disk_index = MZ_READ_LE16(p + MZ_ZIP_CDH_DISK_START_OFS); + if ((disk_index == MZ_UINT16_MAX) || ((disk_index != num_this_disk) && (disk_index != 1))) + return mz_zip_set_error(pZip, MZ_ZIP_UNSUPPORTED_MULTIDISK); + + if (comp_size != MZ_UINT32_MAX) + { + if (((mz_uint64)MZ_READ_LE32(p + MZ_ZIP_CDH_LOCAL_HEADER_OFS) + MZ_ZIP_LOCAL_DIR_HEADER_SIZE + comp_size) > pZip->m_archive_size) + return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); + } + + bit_flags = MZ_READ_LE16(p + MZ_ZIP_CDH_BIT_FLAG_OFS); + if (bit_flags & MZ_ZIP_GENERAL_PURPOSE_BIT_FLAG_LOCAL_DIR_IS_MASKED) + return mz_zip_set_error(pZip, MZ_ZIP_UNSUPPORTED_ENCRYPTION); + + if ((total_header_size = MZ_ZIP_CENTRAL_DIR_HEADER_SIZE + MZ_READ_LE16(p + MZ_ZIP_CDH_FILENAME_LEN_OFS) + MZ_READ_LE16(p + MZ_ZIP_CDH_EXTRA_LEN_OFS) + MZ_READ_LE16(p + MZ_ZIP_CDH_COMMENT_LEN_OFS)) > n) + return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); + + n -= total_header_size; + p += total_header_size; + } + } + + if (sort_central_dir) + mz_zip_reader_sort_central_dir_offsets_by_filename(pZip); + + return MZ_TRUE; +} + +void mz_zip_zero_struct(mz_zip_archive *pZip) +{ + if (pZip) + MZ_CLEAR_OBJ(*pZip); +} + +static mz_bool mz_zip_reader_end_internal(mz_zip_archive *pZip, mz_bool set_last_error) +{ + mz_bool status = MZ_TRUE; + + if (!pZip) + return MZ_FALSE; + + if ((!pZip->m_pState) || (!pZip->m_pAlloc) || (!pZip->m_pFree) || (pZip->m_zip_mode != MZ_ZIP_MODE_READING)) + { + if (set_last_error) + pZip->m_last_error = MZ_ZIP_INVALID_PARAMETER; + + return MZ_FALSE; + } + + if (pZip->m_pState) + { + mz_zip_internal_state *pState = pZip->m_pState; + pZip->m_pState = NULL; + + mz_zip_array_clear(pZip, &pState->m_central_dir); + mz_zip_array_clear(pZip, &pState->m_central_dir_offsets); + mz_zip_array_clear(pZip, &pState->m_sorted_central_dir_offsets); + +#ifndef MINIZ_NO_STDIO + if (pState->m_pFile) + { + if (pZip->m_zip_type == MZ_ZIP_TYPE_FILE) + { + if (MZ_FCLOSE(pState->m_pFile) == EOF) + { + if (set_last_error) + pZip->m_last_error = MZ_ZIP_FILE_CLOSE_FAILED; + status = MZ_FALSE; + } + } + pState->m_pFile = NULL; + } +#endif /* #ifndef MINIZ_NO_STDIO */ + + pZip->m_pFree(pZip->m_pAlloc_opaque, pState); + } + pZip->m_zip_mode = MZ_ZIP_MODE_INVALID; + + return status; +} + +mz_bool mz_zip_reader_end(mz_zip_archive *pZip) +{ + return mz_zip_reader_end_internal(pZip, MZ_TRUE); +} +mz_bool mz_zip_reader_init(mz_zip_archive *pZip, mz_uint64 size, mz_uint flags) +{ + if ((!pZip) || (!pZip->m_pRead)) + return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); + + if (!mz_zip_reader_init_internal(pZip, flags)) + return MZ_FALSE; + + pZip->m_zip_type = MZ_ZIP_TYPE_USER; + pZip->m_archive_size = size; + + if (!mz_zip_reader_read_central_dir(pZip, flags)) + { + mz_zip_reader_end_internal(pZip, MZ_FALSE); + return MZ_FALSE; + } + + return MZ_TRUE; +} + +static size_t mz_zip_mem_read_func(void *pOpaque, mz_uint64 file_ofs, void *pBuf, size_t n) +{ + mz_zip_archive *pZip = (mz_zip_archive *)pOpaque; + size_t s = (file_ofs >= pZip->m_archive_size) ? 0 : (size_t)MZ_MIN(pZip->m_archive_size - file_ofs, n); + memcpy(pBuf, (const mz_uint8 *)pZip->m_pState->m_pMem + file_ofs, s); + return s; +} + +mz_bool mz_zip_reader_init_mem(mz_zip_archive *pZip, const void *pMem, size_t size, mz_uint flags) +{ + if (!pMem) + return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); + + if (size < MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIZE) + return mz_zip_set_error(pZip, MZ_ZIP_NOT_AN_ARCHIVE); + + if (!mz_zip_reader_init_internal(pZip, flags)) + return MZ_FALSE; + + pZip->m_zip_type = MZ_ZIP_TYPE_MEMORY; + pZip->m_archive_size = size; + pZip->m_pRead = mz_zip_mem_read_func; + pZip->m_pIO_opaque = pZip; + pZip->m_pNeeds_keepalive = NULL; + +#ifdef __cplusplus + pZip->m_pState->m_pMem = const_cast(pMem); +#else + pZip->m_pState->m_pMem = (void *)pMem; +#endif + + pZip->m_pState->m_mem_size = size; + + if (!mz_zip_reader_read_central_dir(pZip, flags)) + { + mz_zip_reader_end_internal(pZip, MZ_FALSE); + return MZ_FALSE; + } + + return MZ_TRUE; +} + +#ifndef MINIZ_NO_STDIO +static size_t mz_zip_file_read_func(void *pOpaque, mz_uint64 file_ofs, void *pBuf, size_t n) +{ + mz_zip_archive *pZip = (mz_zip_archive *)pOpaque; + mz_int64 cur_ofs = MZ_FTELL64(pZip->m_pState->m_pFile); + + file_ofs += pZip->m_pState->m_file_archive_start_ofs; + + if (((mz_int64)file_ofs < 0) || (((cur_ofs != (mz_int64)file_ofs)) && (MZ_FSEEK64(pZip->m_pState->m_pFile, (mz_int64)file_ofs, SEEK_SET)))) + return 0; + + return MZ_FREAD(pBuf, 1, n, pZip->m_pState->m_pFile); +} + +mz_bool mz_zip_reader_init_file(mz_zip_archive *pZip, const char *pFilename, mz_uint32 flags) +{ + return mz_zip_reader_init_file_v2(pZip, pFilename, flags, 0, 0); +} + +mz_bool mz_zip_reader_init_file_v2(mz_zip_archive *pZip, const char *pFilename, mz_uint flags, mz_uint64 file_start_ofs, mz_uint64 archive_size) +{ + mz_uint64 file_size; + MZ_FILE *pFile; + + if ((!pZip) || (!pFilename) || ((archive_size) && (archive_size < MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIZE))) + return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); + + pFile = MZ_FOPEN(pFilename, "rb"); + if (!pFile) + return mz_zip_set_error(pZip, MZ_ZIP_FILE_OPEN_FAILED); + + file_size = archive_size; + if (!file_size) + { + if (MZ_FSEEK64(pFile, 0, SEEK_END)) + { + MZ_FCLOSE(pFile); + return mz_zip_set_error(pZip, MZ_ZIP_FILE_SEEK_FAILED); + } + + file_size = MZ_FTELL64(pFile); + } + + /* TODO: Better sanity check archive_size and the # of actual remaining bytes */ + + if (file_size < MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIZE) + { + MZ_FCLOSE(pFile); + return mz_zip_set_error(pZip, MZ_ZIP_NOT_AN_ARCHIVE); + } + + if (!mz_zip_reader_init_internal(pZip, flags)) + { + MZ_FCLOSE(pFile); + return MZ_FALSE; + } + + pZip->m_zip_type = MZ_ZIP_TYPE_FILE; + pZip->m_pRead = mz_zip_file_read_func; + pZip->m_pIO_opaque = pZip; + pZip->m_pState->m_pFile = pFile; + pZip->m_archive_size = file_size; + pZip->m_pState->m_file_archive_start_ofs = file_start_ofs; + + if (!mz_zip_reader_read_central_dir(pZip, flags)) + { + mz_zip_reader_end_internal(pZip, MZ_FALSE); + return MZ_FALSE; + } + + return MZ_TRUE; +} + +mz_bool mz_zip_reader_init_cfile(mz_zip_archive *pZip, MZ_FILE *pFile, mz_uint64 archive_size, mz_uint flags) +{ + mz_uint64 cur_file_ofs; + + if ((!pZip) || (!pFile)) + return mz_zip_set_error(pZip, MZ_ZIP_FILE_OPEN_FAILED); + + cur_file_ofs = MZ_FTELL64(pFile); + + if (!archive_size) + { + if (MZ_FSEEK64(pFile, 0, SEEK_END)) + return mz_zip_set_error(pZip, MZ_ZIP_FILE_SEEK_FAILED); + + archive_size = MZ_FTELL64(pFile) - cur_file_ofs; + + if (archive_size < MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIZE) + return mz_zip_set_error(pZip, MZ_ZIP_NOT_AN_ARCHIVE); + } + + if (!mz_zip_reader_init_internal(pZip, flags)) + return MZ_FALSE; + + pZip->m_zip_type = MZ_ZIP_TYPE_CFILE; + pZip->m_pRead = mz_zip_file_read_func; + + pZip->m_pIO_opaque = pZip; + pZip->m_pState->m_pFile = pFile; + pZip->m_archive_size = archive_size; + pZip->m_pState->m_file_archive_start_ofs = cur_file_ofs; + + if (!mz_zip_reader_read_central_dir(pZip, flags)) + { + mz_zip_reader_end_internal(pZip, MZ_FALSE); + return MZ_FALSE; + } + + return MZ_TRUE; +} + +#endif /* #ifndef MINIZ_NO_STDIO */ + +static MZ_FORCEINLINE const mz_uint8 *mz_zip_get_cdh(mz_zip_archive *pZip, mz_uint file_index) +{ + if ((!pZip) || (!pZip->m_pState) || (file_index >= pZip->m_total_files)) + return NULL; + return &MZ_ZIP_ARRAY_ELEMENT(&pZip->m_pState->m_central_dir, mz_uint8, MZ_ZIP_ARRAY_ELEMENT(&pZip->m_pState->m_central_dir_offsets, mz_uint32, file_index)); +} + +mz_bool mz_zip_reader_is_file_encrypted(mz_zip_archive *pZip, mz_uint file_index) +{ + mz_uint m_bit_flag; + const mz_uint8 *p = mz_zip_get_cdh(pZip, file_index); + if (!p) + { + mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); + return MZ_FALSE; + } + + m_bit_flag = MZ_READ_LE16(p + MZ_ZIP_CDH_BIT_FLAG_OFS); + return (m_bit_flag & (MZ_ZIP_GENERAL_PURPOSE_BIT_FLAG_IS_ENCRYPTED | MZ_ZIP_GENERAL_PURPOSE_BIT_FLAG_USES_STRONG_ENCRYPTION)) != 0; +} + +mz_bool mz_zip_reader_is_file_supported(mz_zip_archive *pZip, mz_uint file_index) +{ + mz_uint bit_flag; + mz_uint method; + + const mz_uint8 *p = mz_zip_get_cdh(pZip, file_index); + if (!p) + { + mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); + return MZ_FALSE; + } + + method = MZ_READ_LE16(p + MZ_ZIP_CDH_METHOD_OFS); + bit_flag = MZ_READ_LE16(p + MZ_ZIP_CDH_BIT_FLAG_OFS); + + if ((method != 0) && (method != MZ_DEFLATED)) + { + mz_zip_set_error(pZip, MZ_ZIP_UNSUPPORTED_METHOD); + return MZ_FALSE; + } + + if (bit_flag & (MZ_ZIP_GENERAL_PURPOSE_BIT_FLAG_IS_ENCRYPTED | MZ_ZIP_GENERAL_PURPOSE_BIT_FLAG_USES_STRONG_ENCRYPTION)) + { + mz_zip_set_error(pZip, MZ_ZIP_UNSUPPORTED_ENCRYPTION); + return MZ_FALSE; + } + + if (bit_flag & MZ_ZIP_GENERAL_PURPOSE_BIT_FLAG_COMPRESSED_PATCH_FLAG) + { + mz_zip_set_error(pZip, MZ_ZIP_UNSUPPORTED_FEATURE); + return MZ_FALSE; + } + + return MZ_TRUE; +} + +mz_bool mz_zip_reader_is_file_a_directory(mz_zip_archive *pZip, mz_uint file_index) +{ + mz_uint filename_len, attribute_mapping_id, external_attr; + const mz_uint8 *p = mz_zip_get_cdh(pZip, file_index); + if (!p) + { + mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); + return MZ_FALSE; + } + + filename_len = MZ_READ_LE16(p + MZ_ZIP_CDH_FILENAME_LEN_OFS); + if (filename_len) + { + if (*(p + MZ_ZIP_CENTRAL_DIR_HEADER_SIZE + filename_len - 1) == '/') + return MZ_TRUE; + } + + /* Bugfix: This code was also checking if the internal attribute was non-zero, which wasn't correct. */ + /* Most/all zip writers (hopefully) set DOS file/directory attributes in the low 16-bits, so check for the DOS directory flag and ignore the source OS ID in the created by field. */ + /* FIXME: Remove this check? Is it necessary - we already check the filename. */ + attribute_mapping_id = MZ_READ_LE16(p + MZ_ZIP_CDH_VERSION_MADE_BY_OFS) >> 8; + (void)attribute_mapping_id; + + external_attr = MZ_READ_LE32(p + MZ_ZIP_CDH_EXTERNAL_ATTR_OFS); + if ((external_attr & MZ_ZIP_DOS_DIR_ATTRIBUTE_BITFLAG) != 0) + { + return MZ_TRUE; + } + + return MZ_FALSE; +} + +static mz_bool mz_zip_file_stat_internal(mz_zip_archive *pZip, mz_uint file_index, const mz_uint8 *pCentral_dir_header, mz_zip_archive_file_stat *pStat, mz_bool *pFound_zip64_extra_data) +{ + mz_uint n; + const mz_uint8 *p = pCentral_dir_header; + + if (pFound_zip64_extra_data) + *pFound_zip64_extra_data = MZ_FALSE; + + if ((!p) || (!pStat)) + return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); + + /* Extract fields from the central directory record. */ + pStat->m_file_index = file_index; + pStat->m_central_dir_ofs = MZ_ZIP_ARRAY_ELEMENT(&pZip->m_pState->m_central_dir_offsets, mz_uint32, file_index); + pStat->m_version_made_by = MZ_READ_LE16(p + MZ_ZIP_CDH_VERSION_MADE_BY_OFS); + pStat->m_version_needed = MZ_READ_LE16(p + MZ_ZIP_CDH_VERSION_NEEDED_OFS); + pStat->m_bit_flag = MZ_READ_LE16(p + MZ_ZIP_CDH_BIT_FLAG_OFS); + pStat->m_method = MZ_READ_LE16(p + MZ_ZIP_CDH_METHOD_OFS); +#ifndef MINIZ_NO_TIME + pStat->m_time = mz_zip_dos_to_time_t(MZ_READ_LE16(p + MZ_ZIP_CDH_FILE_TIME_OFS), MZ_READ_LE16(p + MZ_ZIP_CDH_FILE_DATE_OFS)); +#endif + pStat->m_crc32 = MZ_READ_LE32(p + MZ_ZIP_CDH_CRC32_OFS); + pStat->m_comp_size = MZ_READ_LE32(p + MZ_ZIP_CDH_COMPRESSED_SIZE_OFS); + pStat->m_uncomp_size = MZ_READ_LE32(p + MZ_ZIP_CDH_DECOMPRESSED_SIZE_OFS); + pStat->m_internal_attr = MZ_READ_LE16(p + MZ_ZIP_CDH_INTERNAL_ATTR_OFS); + pStat->m_external_attr = MZ_READ_LE32(p + MZ_ZIP_CDH_EXTERNAL_ATTR_OFS); + pStat->m_local_header_ofs = MZ_READ_LE32(p + MZ_ZIP_CDH_LOCAL_HEADER_OFS); + + /* Copy as much of the filename and comment as possible. */ + n = MZ_READ_LE16(p + MZ_ZIP_CDH_FILENAME_LEN_OFS); + n = MZ_MIN(n, MZ_ZIP_MAX_ARCHIVE_FILENAME_SIZE - 1); + memcpy(pStat->m_filename, p + MZ_ZIP_CENTRAL_DIR_HEADER_SIZE, n); + pStat->m_filename[n] = '\0'; + + n = MZ_READ_LE16(p + MZ_ZIP_CDH_COMMENT_LEN_OFS); + n = MZ_MIN(n, MZ_ZIP_MAX_ARCHIVE_FILE_COMMENT_SIZE - 1); + pStat->m_comment_size = n; + memcpy(pStat->m_comment, p + MZ_ZIP_CENTRAL_DIR_HEADER_SIZE + MZ_READ_LE16(p + MZ_ZIP_CDH_FILENAME_LEN_OFS) + MZ_READ_LE16(p + MZ_ZIP_CDH_EXTRA_LEN_OFS), n); + pStat->m_comment[n] = '\0'; + + /* Set some flags for convienance */ + pStat->m_is_directory = mz_zip_reader_is_file_a_directory(pZip, file_index); + pStat->m_is_encrypted = mz_zip_reader_is_file_encrypted(pZip, file_index); + pStat->m_is_supported = mz_zip_reader_is_file_supported(pZip, file_index); + + /* See if we need to read any zip64 extended information fields. */ + /* Confusingly, these zip64 fields can be present even on non-zip64 archives (Debian zip on a huge files from stdin piped to stdout creates them). */ + if (MZ_MAX(MZ_MAX(pStat->m_comp_size, pStat->m_uncomp_size), pStat->m_local_header_ofs) == MZ_UINT32_MAX) + { + /* Attempt to find zip64 extended information field in the entry's extra data */ + mz_uint32 extra_size_remaining = MZ_READ_LE16(p + MZ_ZIP_CDH_EXTRA_LEN_OFS); + + if (extra_size_remaining) + { + const mz_uint8 *pExtra_data = p + MZ_ZIP_CENTRAL_DIR_HEADER_SIZE + MZ_READ_LE16(p + MZ_ZIP_CDH_FILENAME_LEN_OFS); + + do + { + mz_uint32 field_id; + mz_uint32 field_data_size; + + if (extra_size_remaining < (sizeof(mz_uint16) * 2)) + return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); + + field_id = MZ_READ_LE16(pExtra_data); + field_data_size = MZ_READ_LE16(pExtra_data + sizeof(mz_uint16)); + + if ((field_data_size + sizeof(mz_uint16) * 2) > extra_size_remaining) + return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); + + if (field_id == MZ_ZIP64_EXTENDED_INFORMATION_FIELD_HEADER_ID) + { + const mz_uint8 *pField_data = pExtra_data + sizeof(mz_uint16) * 2; + mz_uint32 field_data_remaining = field_data_size; + + if (pFound_zip64_extra_data) + *pFound_zip64_extra_data = MZ_TRUE; + + if (pStat->m_uncomp_size == MZ_UINT32_MAX) + { + if (field_data_remaining < sizeof(mz_uint64)) + return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); + + pStat->m_uncomp_size = MZ_READ_LE64(pField_data); + pField_data += sizeof(mz_uint64); + field_data_remaining -= sizeof(mz_uint64); + } + + if (pStat->m_comp_size == MZ_UINT32_MAX) + { + if (field_data_remaining < sizeof(mz_uint64)) + return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); + + pStat->m_comp_size = MZ_READ_LE64(pField_data); + pField_data += sizeof(mz_uint64); + field_data_remaining -= sizeof(mz_uint64); + } + + if (pStat->m_local_header_ofs == MZ_UINT32_MAX) + { + if (field_data_remaining < sizeof(mz_uint64)) + return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); + + pStat->m_local_header_ofs = MZ_READ_LE64(pField_data); + pField_data += sizeof(mz_uint64); + field_data_remaining -= sizeof(mz_uint64); + } + + break; + } + + pExtra_data += sizeof(mz_uint16) * 2 + field_data_size; + extra_size_remaining = extra_size_remaining - sizeof(mz_uint16) * 2 - field_data_size; + } while (extra_size_remaining); + } + } + + return MZ_TRUE; +} + +static MZ_FORCEINLINE mz_bool mz_zip_string_equal(const char *pA, const char *pB, mz_uint len, mz_uint flags) +{ + mz_uint i; + if (flags & MZ_ZIP_FLAG_CASE_SENSITIVE) + return 0 == memcmp(pA, pB, len); + for (i = 0; i < len; ++i) + if (MZ_TOLOWER(pA[i]) != MZ_TOLOWER(pB[i])) + return MZ_FALSE; + return MZ_TRUE; +} + +static MZ_FORCEINLINE int mz_zip_filename_compare(const mz_zip_array *pCentral_dir_array, const mz_zip_array *pCentral_dir_offsets, mz_uint l_index, const char *pR, mz_uint r_len) +{ + const mz_uint8 *pL = &MZ_ZIP_ARRAY_ELEMENT(pCentral_dir_array, mz_uint8, MZ_ZIP_ARRAY_ELEMENT(pCentral_dir_offsets, mz_uint32, l_index)), *pE; + mz_uint l_len = MZ_READ_LE16(pL + MZ_ZIP_CDH_FILENAME_LEN_OFS); + mz_uint8 l = 0, r = 0; + pL += MZ_ZIP_CENTRAL_DIR_HEADER_SIZE; + pE = pL + MZ_MIN(l_len, r_len); + while (pL < pE) + { + if ((l = MZ_TOLOWER(*pL)) != (r = MZ_TOLOWER(*pR))) + break; + pL++; + pR++; + } + return (pL == pE) ? (int)(l_len - r_len) : (l - r); +} + +static mz_bool mz_zip_locate_file_binary_search(mz_zip_archive *pZip, const char *pFilename, mz_uint32 *pIndex) +{ + mz_zip_internal_state *pState = pZip->m_pState; + const mz_zip_array *pCentral_dir_offsets = &pState->m_central_dir_offsets; + const mz_zip_array *pCentral_dir = &pState->m_central_dir; + mz_uint32 *pIndices = &MZ_ZIP_ARRAY_ELEMENT(&pState->m_sorted_central_dir_offsets, mz_uint32, 0); + const uint32_t size = pZip->m_total_files; + const mz_uint filename_len = (mz_uint)strlen(pFilename); + + if (pIndex) + *pIndex = 0; + + if (size) + { + /* yes I could use uint32_t's, but then we would have to add some special case checks in the loop, argh, and */ + /* honestly the major expense here on 32-bit CPU's will still be the filename compare */ + mz_int64 l = 0, h = (mz_int64)size - 1; + + while (l <= h) + { + mz_int64 m = l + ((h - l) >> 1); + uint32_t file_index = pIndices[(uint32_t)m]; + + int comp = mz_zip_filename_compare(pCentral_dir, pCentral_dir_offsets, file_index, pFilename, filename_len); + if (!comp) + { + if (pIndex) + *pIndex = file_index; + return MZ_TRUE; + } + else if (comp < 0) + l = m + 1; + else + h = m - 1; + } + } + + return mz_zip_set_error(pZip, MZ_ZIP_FILE_NOT_FOUND); +} + +int mz_zip_reader_locate_file(mz_zip_archive *pZip, const char *pName, const char *pComment, mz_uint flags) +{ + mz_uint32 index; + if (!mz_zip_reader_locate_file_v2(pZip, pName, pComment, flags, &index)) + return -1; + else + return (int)index; +} + +mz_bool mz_zip_reader_locate_file_v2(mz_zip_archive *pZip, const char *pName, const char *pComment, mz_uint flags, mz_uint32 *pIndex) +{ + mz_uint file_index; + size_t name_len, comment_len; + + if (pIndex) + *pIndex = 0; + + if ((!pZip) || (!pZip->m_pState) || (!pName)) + return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); + + /* See if we can use a binary search */ + if (((pZip->m_pState->m_init_flags & MZ_ZIP_FLAG_DO_NOT_SORT_CENTRAL_DIRECTORY) == 0) && + (pZip->m_zip_mode == MZ_ZIP_MODE_READING) && + ((flags & (MZ_ZIP_FLAG_IGNORE_PATH | MZ_ZIP_FLAG_CASE_SENSITIVE)) == 0) && (!pComment) && (pZip->m_pState->m_sorted_central_dir_offsets.m_size)) + { + return mz_zip_locate_file_binary_search(pZip, pName, pIndex); + } + + /* Locate the entry by scanning the entire central directory */ + name_len = strlen(pName); + if (name_len > MZ_UINT16_MAX) + return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); + + comment_len = pComment ? strlen(pComment) : 0; + if (comment_len > MZ_UINT16_MAX) + return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); + + for (file_index = 0; file_index < pZip->m_total_files; file_index++) + { + const mz_uint8 *pHeader = &MZ_ZIP_ARRAY_ELEMENT(&pZip->m_pState->m_central_dir, mz_uint8, MZ_ZIP_ARRAY_ELEMENT(&pZip->m_pState->m_central_dir_offsets, mz_uint32, file_index)); + mz_uint filename_len = MZ_READ_LE16(pHeader + MZ_ZIP_CDH_FILENAME_LEN_OFS); + const char *pFilename = (const char *)pHeader + MZ_ZIP_CENTRAL_DIR_HEADER_SIZE; + if (filename_len < name_len) + continue; + if (comment_len) + { + mz_uint file_extra_len = MZ_READ_LE16(pHeader + MZ_ZIP_CDH_EXTRA_LEN_OFS), file_comment_len = MZ_READ_LE16(pHeader + MZ_ZIP_CDH_COMMENT_LEN_OFS); + const char *pFile_comment = pFilename + filename_len + file_extra_len; + if ((file_comment_len != comment_len) || (!mz_zip_string_equal(pComment, pFile_comment, file_comment_len, flags))) + continue; + } + if ((flags & MZ_ZIP_FLAG_IGNORE_PATH) && (filename_len)) + { + int ofs = filename_len - 1; + do + { + if ((pFilename[ofs] == '/') || (pFilename[ofs] == '\\') || (pFilename[ofs] == ':')) + break; + } while (--ofs >= 0); + ofs++; + pFilename += ofs; + filename_len -= ofs; + } + if ((filename_len == name_len) && (mz_zip_string_equal(pName, pFilename, filename_len, flags))) + { + if (pIndex) + *pIndex = file_index; + return MZ_TRUE; + } + } + + return mz_zip_set_error(pZip, MZ_ZIP_FILE_NOT_FOUND); +} + +mz_bool mz_zip_reader_extract_to_mem_no_alloc(mz_zip_archive *pZip, mz_uint file_index, void *pBuf, size_t buf_size, mz_uint flags, void *pUser_read_buf, size_t user_read_buf_size) +{ + int status = TINFL_STATUS_DONE; + mz_uint64 needed_size, cur_file_ofs, comp_remaining, out_buf_ofs = 0, read_buf_size, read_buf_ofs = 0, read_buf_avail; + mz_zip_archive_file_stat file_stat; + void *pRead_buf; + mz_uint32 local_header_u32[(MZ_ZIP_LOCAL_DIR_HEADER_SIZE + sizeof(mz_uint32) - 1) / sizeof(mz_uint32)]; + mz_uint8 *pLocal_header = (mz_uint8 *)local_header_u32; + tinfl_decompressor inflator; + + if ((!pZip) || (!pZip->m_pState) || ((buf_size) && (!pBuf)) || ((user_read_buf_size) && (!pUser_read_buf)) || (!pZip->m_pRead)) + return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); + + if (!mz_zip_reader_file_stat(pZip, file_index, &file_stat)) + return MZ_FALSE; + + /* A directory or zero length file */ + if ((file_stat.m_is_directory) || (!file_stat.m_comp_size)) + return MZ_TRUE; + + /* Encryption and patch files are not supported. */ + if (file_stat.m_bit_flag & (MZ_ZIP_GENERAL_PURPOSE_BIT_FLAG_IS_ENCRYPTED | MZ_ZIP_GENERAL_PURPOSE_BIT_FLAG_USES_STRONG_ENCRYPTION | MZ_ZIP_GENERAL_PURPOSE_BIT_FLAG_COMPRESSED_PATCH_FLAG)) + return mz_zip_set_error(pZip, MZ_ZIP_UNSUPPORTED_ENCRYPTION); + + /* This function only supports decompressing stored and deflate. */ + if ((!(flags & MZ_ZIP_FLAG_COMPRESSED_DATA)) && (file_stat.m_method != 0) && (file_stat.m_method != MZ_DEFLATED)) + return mz_zip_set_error(pZip, MZ_ZIP_UNSUPPORTED_METHOD); + + /* Ensure supplied output buffer is large enough. */ + needed_size = (flags & MZ_ZIP_FLAG_COMPRESSED_DATA) ? file_stat.m_comp_size : file_stat.m_uncomp_size; + if (buf_size < needed_size) + return mz_zip_set_error(pZip, MZ_ZIP_BUF_TOO_SMALL); + + /* Read and parse the local directory entry. */ + cur_file_ofs = file_stat.m_local_header_ofs; + if (pZip->m_pRead(pZip->m_pIO_opaque, cur_file_ofs, pLocal_header, MZ_ZIP_LOCAL_DIR_HEADER_SIZE) != MZ_ZIP_LOCAL_DIR_HEADER_SIZE) + return mz_zip_set_error(pZip, MZ_ZIP_FILE_READ_FAILED); + + if (MZ_READ_LE32(pLocal_header) != MZ_ZIP_LOCAL_DIR_HEADER_SIG) + return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); + + cur_file_ofs += MZ_ZIP_LOCAL_DIR_HEADER_SIZE + MZ_READ_LE16(pLocal_header + MZ_ZIP_LDH_FILENAME_LEN_OFS) + MZ_READ_LE16(pLocal_header + MZ_ZIP_LDH_EXTRA_LEN_OFS); + if ((cur_file_ofs + file_stat.m_comp_size) > pZip->m_archive_size) + return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); + + if ((flags & MZ_ZIP_FLAG_COMPRESSED_DATA) || (!file_stat.m_method)) + { + /* The file is stored or the caller has requested the compressed data. */ + if (pZip->m_pRead(pZip->m_pIO_opaque, cur_file_ofs, pBuf, (size_t)needed_size) != needed_size) + return mz_zip_set_error(pZip, MZ_ZIP_FILE_READ_FAILED); + +#ifndef MINIZ_DISABLE_ZIP_READER_CRC32_CHECKS + if ((flags & MZ_ZIP_FLAG_COMPRESSED_DATA) == 0) + { + if (mz_crc32(MZ_CRC32_INIT, (const mz_uint8 *)pBuf, (size_t)file_stat.m_uncomp_size) != file_stat.m_crc32) + return mz_zip_set_error(pZip, MZ_ZIP_CRC_CHECK_FAILED); + } +#endif + + return MZ_TRUE; + } + + /* Decompress the file either directly from memory or from a file input buffer. */ + tinfl_init(&inflator); + + if (pZip->m_pState->m_pMem) + { + /* Read directly from the archive in memory. */ + pRead_buf = (mz_uint8 *)pZip->m_pState->m_pMem + cur_file_ofs; + read_buf_size = read_buf_avail = file_stat.m_comp_size; + comp_remaining = 0; + } + else if (pUser_read_buf) + { + /* Use a user provided read buffer. */ + if (!user_read_buf_size) + return MZ_FALSE; + pRead_buf = (mz_uint8 *)pUser_read_buf; + read_buf_size = user_read_buf_size; + read_buf_avail = 0; + comp_remaining = file_stat.m_comp_size; + } + else + { + /* Temporarily allocate a read buffer. */ + read_buf_size = MZ_MIN(file_stat.m_comp_size, (mz_uint64)MZ_ZIP_MAX_IO_BUF_SIZE); + if (((sizeof(size_t) == sizeof(mz_uint32))) && (read_buf_size > 0x7FFFFFFF)) + return mz_zip_set_error(pZip, MZ_ZIP_INTERNAL_ERROR); + + if (NULL == (pRead_buf = pZip->m_pAlloc(pZip->m_pAlloc_opaque, 1, (size_t)read_buf_size))) + return mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); + + read_buf_avail = 0; + comp_remaining = file_stat.m_comp_size; + } + + do + { + /* The size_t cast here should be OK because we've verified that the output buffer is >= file_stat.m_uncomp_size above */ + size_t in_buf_size, out_buf_size = (size_t)(file_stat.m_uncomp_size - out_buf_ofs); + if ((!read_buf_avail) && (!pZip->m_pState->m_pMem)) + { + read_buf_avail = MZ_MIN(read_buf_size, comp_remaining); + if (pZip->m_pRead(pZip->m_pIO_opaque, cur_file_ofs, pRead_buf, (size_t)read_buf_avail) != read_buf_avail) + { + status = TINFL_STATUS_FAILED; + mz_zip_set_error(pZip, MZ_ZIP_DECOMPRESSION_FAILED); + break; + } + cur_file_ofs += read_buf_avail; + comp_remaining -= read_buf_avail; + read_buf_ofs = 0; + } + in_buf_size = (size_t)read_buf_avail; + status = tinfl_decompress(&inflator, (mz_uint8 *)pRead_buf + read_buf_ofs, &in_buf_size, (mz_uint8 *)pBuf, (mz_uint8 *)pBuf + out_buf_ofs, &out_buf_size, TINFL_FLAG_USING_NON_WRAPPING_OUTPUT_BUF | (comp_remaining ? TINFL_FLAG_HAS_MORE_INPUT : 0)); + read_buf_avail -= in_buf_size; + read_buf_ofs += in_buf_size; + out_buf_ofs += out_buf_size; + } while (status == TINFL_STATUS_NEEDS_MORE_INPUT); + + if (status == TINFL_STATUS_DONE) + { + /* Make sure the entire file was decompressed, and check its CRC. */ + if (out_buf_ofs != file_stat.m_uncomp_size) + { + mz_zip_set_error(pZip, MZ_ZIP_UNEXPECTED_DECOMPRESSED_SIZE); + status = TINFL_STATUS_FAILED; + } +#ifndef MINIZ_DISABLE_ZIP_READER_CRC32_CHECKS + else if (mz_crc32(MZ_CRC32_INIT, (const mz_uint8 *)pBuf, (size_t)file_stat.m_uncomp_size) != file_stat.m_crc32) + { + mz_zip_set_error(pZip, MZ_ZIP_CRC_CHECK_FAILED); + status = TINFL_STATUS_FAILED; + } +#endif + } + + if ((!pZip->m_pState->m_pMem) && (!pUser_read_buf)) + pZip->m_pFree(pZip->m_pAlloc_opaque, pRead_buf); + + return status == TINFL_STATUS_DONE; +} + +mz_bool mz_zip_reader_extract_file_to_mem_no_alloc(mz_zip_archive *pZip, const char *pFilename, void *pBuf, size_t buf_size, mz_uint flags, void *pUser_read_buf, size_t user_read_buf_size) +{ + mz_uint32 file_index; + if (!mz_zip_reader_locate_file_v2(pZip, pFilename, NULL, flags, &file_index)) + return MZ_FALSE; + return mz_zip_reader_extract_to_mem_no_alloc(pZip, file_index, pBuf, buf_size, flags, pUser_read_buf, user_read_buf_size); +} + +mz_bool mz_zip_reader_extract_to_mem(mz_zip_archive *pZip, mz_uint file_index, void *pBuf, size_t buf_size, mz_uint flags) +{ + return mz_zip_reader_extract_to_mem_no_alloc(pZip, file_index, pBuf, buf_size, flags, NULL, 0); +} + +mz_bool mz_zip_reader_extract_file_to_mem(mz_zip_archive *pZip, const char *pFilename, void *pBuf, size_t buf_size, mz_uint flags) +{ + return mz_zip_reader_extract_file_to_mem_no_alloc(pZip, pFilename, pBuf, buf_size, flags, NULL, 0); +} + +void *mz_zip_reader_extract_to_heap(mz_zip_archive *pZip, mz_uint file_index, size_t *pSize, mz_uint flags) +{ + mz_uint64 comp_size, uncomp_size, alloc_size; + const mz_uint8 *p = mz_zip_get_cdh(pZip, file_index); + void *pBuf; + + if (pSize) + *pSize = 0; + + if (!p) + { + mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); + return NULL; + } + + comp_size = MZ_READ_LE32(p + MZ_ZIP_CDH_COMPRESSED_SIZE_OFS); + uncomp_size = MZ_READ_LE32(p + MZ_ZIP_CDH_DECOMPRESSED_SIZE_OFS); + + alloc_size = (flags & MZ_ZIP_FLAG_COMPRESSED_DATA) ? comp_size : uncomp_size; + if (((sizeof(size_t) == sizeof(mz_uint32))) && (alloc_size > 0x7FFFFFFF)) + { + mz_zip_set_error(pZip, MZ_ZIP_INTERNAL_ERROR); + return NULL; + } + + if (NULL == (pBuf = pZip->m_pAlloc(pZip->m_pAlloc_opaque, 1, (size_t)alloc_size))) + { + mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); + return NULL; + } + + if (!mz_zip_reader_extract_to_mem(pZip, file_index, pBuf, (size_t)alloc_size, flags)) + { + pZip->m_pFree(pZip->m_pAlloc_opaque, pBuf); + return NULL; + } + + if (pSize) + *pSize = (size_t)alloc_size; + return pBuf; +} + +void *mz_zip_reader_extract_file_to_heap(mz_zip_archive *pZip, const char *pFilename, size_t *pSize, mz_uint flags) +{ + mz_uint32 file_index; + if (!mz_zip_reader_locate_file_v2(pZip, pFilename, NULL, flags, &file_index)) + { + if (pSize) + *pSize = 0; + return MZ_FALSE; + } + return mz_zip_reader_extract_to_heap(pZip, file_index, pSize, flags); +} + +mz_bool mz_zip_reader_extract_to_callback(mz_zip_archive *pZip, mz_uint file_index, mz_file_write_func pCallback, void *pOpaque, mz_uint flags) +{ + int status = TINFL_STATUS_DONE; +#ifndef MINIZ_DISABLE_ZIP_READER_CRC32_CHECKS + mz_uint file_crc32 = MZ_CRC32_INIT; +#endif + mz_uint64 read_buf_size, read_buf_ofs = 0, read_buf_avail, comp_remaining, out_buf_ofs = 0, cur_file_ofs; + mz_zip_archive_file_stat file_stat; + void *pRead_buf = NULL; + void *pWrite_buf = NULL; + mz_uint32 local_header_u32[(MZ_ZIP_LOCAL_DIR_HEADER_SIZE + sizeof(mz_uint32) - 1) / sizeof(mz_uint32)]; + mz_uint8 *pLocal_header = (mz_uint8 *)local_header_u32; + + if ((!pZip) || (!pZip->m_pState) || (!pCallback) || (!pZip->m_pRead)) + return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); + + if (!mz_zip_reader_file_stat(pZip, file_index, &file_stat)) + return MZ_FALSE; + + /* A directory or zero length file */ + if ((file_stat.m_is_directory) || (!file_stat.m_comp_size)) + return MZ_TRUE; + + /* Encryption and patch files are not supported. */ + if (file_stat.m_bit_flag & (MZ_ZIP_GENERAL_PURPOSE_BIT_FLAG_IS_ENCRYPTED | MZ_ZIP_GENERAL_PURPOSE_BIT_FLAG_USES_STRONG_ENCRYPTION | MZ_ZIP_GENERAL_PURPOSE_BIT_FLAG_COMPRESSED_PATCH_FLAG)) + return mz_zip_set_error(pZip, MZ_ZIP_UNSUPPORTED_ENCRYPTION); + + /* This function only supports decompressing stored and deflate. */ + if ((!(flags & MZ_ZIP_FLAG_COMPRESSED_DATA)) && (file_stat.m_method != 0) && (file_stat.m_method != MZ_DEFLATED)) + return mz_zip_set_error(pZip, MZ_ZIP_UNSUPPORTED_METHOD); + + /* Read and do some minimal validation of the local directory entry (this doesn't crack the zip64 stuff, which we already have from the central dir) */ + cur_file_ofs = file_stat.m_local_header_ofs; + if (pZip->m_pRead(pZip->m_pIO_opaque, cur_file_ofs, pLocal_header, MZ_ZIP_LOCAL_DIR_HEADER_SIZE) != MZ_ZIP_LOCAL_DIR_HEADER_SIZE) + return mz_zip_set_error(pZip, MZ_ZIP_FILE_READ_FAILED); + + if (MZ_READ_LE32(pLocal_header) != MZ_ZIP_LOCAL_DIR_HEADER_SIG) + return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); + + cur_file_ofs += MZ_ZIP_LOCAL_DIR_HEADER_SIZE + MZ_READ_LE16(pLocal_header + MZ_ZIP_LDH_FILENAME_LEN_OFS) + MZ_READ_LE16(pLocal_header + MZ_ZIP_LDH_EXTRA_LEN_OFS); + if ((cur_file_ofs + file_stat.m_comp_size) > pZip->m_archive_size) + return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); + + /* Decompress the file either directly from memory or from a file input buffer. */ + if (pZip->m_pState->m_pMem) + { + pRead_buf = (mz_uint8 *)pZip->m_pState->m_pMem + cur_file_ofs; + read_buf_size = read_buf_avail = file_stat.m_comp_size; + comp_remaining = 0; + } + else + { + read_buf_size = MZ_MIN(file_stat.m_comp_size, (mz_uint64)MZ_ZIP_MAX_IO_BUF_SIZE); + if (NULL == (pRead_buf = pZip->m_pAlloc(pZip->m_pAlloc_opaque, 1, (size_t)read_buf_size))) + return mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); + + read_buf_avail = 0; + comp_remaining = file_stat.m_comp_size; + } + + if ((flags & MZ_ZIP_FLAG_COMPRESSED_DATA) || (!file_stat.m_method)) + { + /* The file is stored or the caller has requested the compressed data. */ + if (pZip->m_pState->m_pMem) + { + if (((sizeof(size_t) == sizeof(mz_uint32))) && (file_stat.m_comp_size > MZ_UINT32_MAX)) + return mz_zip_set_error(pZip, MZ_ZIP_INTERNAL_ERROR); + + if (pCallback(pOpaque, out_buf_ofs, pRead_buf, (size_t)file_stat.m_comp_size) != file_stat.m_comp_size) + { + mz_zip_set_error(pZip, MZ_ZIP_WRITE_CALLBACK_FAILED); + status = TINFL_STATUS_FAILED; + } + else if (!(flags & MZ_ZIP_FLAG_COMPRESSED_DATA)) + { +#ifndef MINIZ_DISABLE_ZIP_READER_CRC32_CHECKS + file_crc32 = (mz_uint32)mz_crc32(file_crc32, (const mz_uint8 *)pRead_buf, (size_t)file_stat.m_comp_size); +#endif + } + + cur_file_ofs += file_stat.m_comp_size; + out_buf_ofs += file_stat.m_comp_size; + comp_remaining = 0; + } + else + { + while (comp_remaining) + { + read_buf_avail = MZ_MIN(read_buf_size, comp_remaining); + if (pZip->m_pRead(pZip->m_pIO_opaque, cur_file_ofs, pRead_buf, (size_t)read_buf_avail) != read_buf_avail) + { + mz_zip_set_error(pZip, MZ_ZIP_FILE_READ_FAILED); + status = TINFL_STATUS_FAILED; + break; + } + +#ifndef MINIZ_DISABLE_ZIP_READER_CRC32_CHECKS + if (!(flags & MZ_ZIP_FLAG_COMPRESSED_DATA)) + { + file_crc32 = (mz_uint32)mz_crc32(file_crc32, (const mz_uint8 *)pRead_buf, (size_t)read_buf_avail); + } +#endif + + if (pCallback(pOpaque, out_buf_ofs, pRead_buf, (size_t)read_buf_avail) != read_buf_avail) + { + mz_zip_set_error(pZip, MZ_ZIP_WRITE_CALLBACK_FAILED); + status = TINFL_STATUS_FAILED; + break; + } + + cur_file_ofs += read_buf_avail; + out_buf_ofs += read_buf_avail; + comp_remaining -= read_buf_avail; + } + } + } + else + { + tinfl_decompressor inflator; + tinfl_init(&inflator); + + if (NULL == (pWrite_buf = pZip->m_pAlloc(pZip->m_pAlloc_opaque, 1, TINFL_LZ_DICT_SIZE))) + { + mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); + status = TINFL_STATUS_FAILED; + } + else + { + do + { + mz_uint8 *pWrite_buf_cur = (mz_uint8 *)pWrite_buf + (out_buf_ofs & (TINFL_LZ_DICT_SIZE - 1)); + size_t in_buf_size, out_buf_size = TINFL_LZ_DICT_SIZE - (out_buf_ofs & (TINFL_LZ_DICT_SIZE - 1)); + if ((!read_buf_avail) && (!pZip->m_pState->m_pMem)) + { + read_buf_avail = MZ_MIN(read_buf_size, comp_remaining); + if (pZip->m_pRead(pZip->m_pIO_opaque, cur_file_ofs, pRead_buf, (size_t)read_buf_avail) != read_buf_avail) + { + mz_zip_set_error(pZip, MZ_ZIP_FILE_READ_FAILED); + status = TINFL_STATUS_FAILED; + break; + } + cur_file_ofs += read_buf_avail; + comp_remaining -= read_buf_avail; + read_buf_ofs = 0; + } + + in_buf_size = (size_t)read_buf_avail; + status = tinfl_decompress(&inflator, (const mz_uint8 *)pRead_buf + read_buf_ofs, &in_buf_size, (mz_uint8 *)pWrite_buf, pWrite_buf_cur, &out_buf_size, comp_remaining ? TINFL_FLAG_HAS_MORE_INPUT : 0); + read_buf_avail -= in_buf_size; + read_buf_ofs += in_buf_size; + + if (out_buf_size) + { + if (pCallback(pOpaque, out_buf_ofs, pWrite_buf_cur, out_buf_size) != out_buf_size) + { + mz_zip_set_error(pZip, MZ_ZIP_WRITE_CALLBACK_FAILED); + status = TINFL_STATUS_FAILED; + break; + } + +#ifndef MINIZ_DISABLE_ZIP_READER_CRC32_CHECKS + file_crc32 = (mz_uint32)mz_crc32(file_crc32, pWrite_buf_cur, out_buf_size); +#endif + if ((out_buf_ofs += out_buf_size) > file_stat.m_uncomp_size) + { + mz_zip_set_error(pZip, MZ_ZIP_DECOMPRESSION_FAILED); + status = TINFL_STATUS_FAILED; + break; + } + } + } while ((status == TINFL_STATUS_NEEDS_MORE_INPUT) || (status == TINFL_STATUS_HAS_MORE_OUTPUT)); + } + } + + if ((status == TINFL_STATUS_DONE) && (!(flags & MZ_ZIP_FLAG_COMPRESSED_DATA))) + { + /* Make sure the entire file was decompressed, and check its CRC. */ + if (out_buf_ofs != file_stat.m_uncomp_size) + { + mz_zip_set_error(pZip, MZ_ZIP_UNEXPECTED_DECOMPRESSED_SIZE); + status = TINFL_STATUS_FAILED; + } +#ifndef MINIZ_DISABLE_ZIP_READER_CRC32_CHECKS + else if (file_crc32 != file_stat.m_crc32) + { + mz_zip_set_error(pZip, MZ_ZIP_DECOMPRESSION_FAILED); + status = TINFL_STATUS_FAILED; + } +#endif + } + + if (!pZip->m_pState->m_pMem) + pZip->m_pFree(pZip->m_pAlloc_opaque, pRead_buf); + + if (pWrite_buf) + pZip->m_pFree(pZip->m_pAlloc_opaque, pWrite_buf); + + return status == TINFL_STATUS_DONE; +} + +mz_bool mz_zip_reader_extract_file_to_callback(mz_zip_archive *pZip, const char *pFilename, mz_file_write_func pCallback, void *pOpaque, mz_uint flags) +{ + mz_uint32 file_index; + if (!mz_zip_reader_locate_file_v2(pZip, pFilename, NULL, flags, &file_index)) + return MZ_FALSE; + + return mz_zip_reader_extract_to_callback(pZip, file_index, pCallback, pOpaque, flags); +} + +mz_zip_reader_extract_iter_state* mz_zip_reader_extract_iter_new(mz_zip_archive *pZip, mz_uint file_index, mz_uint flags) +{ + mz_zip_reader_extract_iter_state *pState; + mz_uint32 local_header_u32[(MZ_ZIP_LOCAL_DIR_HEADER_SIZE + sizeof(mz_uint32) - 1) / sizeof(mz_uint32)]; + mz_uint8 *pLocal_header = (mz_uint8 *)local_header_u32; + + /* Argument sanity check */ + if ((!pZip) || (!pZip->m_pState)) + return NULL; + + /* Allocate an iterator status structure */ + pState = (mz_zip_reader_extract_iter_state*)pZip->m_pAlloc(pZip->m_pAlloc_opaque, 1, sizeof(mz_zip_reader_extract_iter_state)); + if (!pState) + { + mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); + return NULL; + } + + /* Fetch file details */ + if (!mz_zip_reader_file_stat(pZip, file_index, &pState->file_stat)) + { + pZip->m_pFree(pZip->m_pAlloc_opaque, pState); + return NULL; + } + + /* Encryption and patch files are not supported. */ + if (pState->file_stat.m_bit_flag & (MZ_ZIP_GENERAL_PURPOSE_BIT_FLAG_IS_ENCRYPTED | MZ_ZIP_GENERAL_PURPOSE_BIT_FLAG_USES_STRONG_ENCRYPTION | MZ_ZIP_GENERAL_PURPOSE_BIT_FLAG_COMPRESSED_PATCH_FLAG)) + { + mz_zip_set_error(pZip, MZ_ZIP_UNSUPPORTED_ENCRYPTION); + pZip->m_pFree(pZip->m_pAlloc_opaque, pState); + return NULL; + } + + /* This function only supports decompressing stored and deflate. */ + if ((!(flags & MZ_ZIP_FLAG_COMPRESSED_DATA)) && (pState->file_stat.m_method != 0) && (pState->file_stat.m_method != MZ_DEFLATED)) + { + mz_zip_set_error(pZip, MZ_ZIP_UNSUPPORTED_METHOD); + pZip->m_pFree(pZip->m_pAlloc_opaque, pState); + return NULL; + } + + /* Init state - save args */ + pState->pZip = pZip; + pState->flags = flags; + + /* Init state - reset variables to defaults */ + pState->status = TINFL_STATUS_DONE; +#ifndef MINIZ_DISABLE_ZIP_READER_CRC32_CHECKS + pState->file_crc32 = MZ_CRC32_INIT; +#endif + pState->read_buf_ofs = 0; + pState->out_buf_ofs = 0; + pState->pRead_buf = NULL; + pState->pWrite_buf = NULL; + pState->out_blk_remain = 0; + + /* Read and parse the local directory entry. */ + pState->cur_file_ofs = pState->file_stat.m_local_header_ofs; + if (pZip->m_pRead(pZip->m_pIO_opaque, pState->cur_file_ofs, pLocal_header, MZ_ZIP_LOCAL_DIR_HEADER_SIZE) != MZ_ZIP_LOCAL_DIR_HEADER_SIZE) + { + mz_zip_set_error(pZip, MZ_ZIP_FILE_READ_FAILED); + pZip->m_pFree(pZip->m_pAlloc_opaque, pState); + return NULL; + } + + if (MZ_READ_LE32(pLocal_header) != MZ_ZIP_LOCAL_DIR_HEADER_SIG) + { + mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); + pZip->m_pFree(pZip->m_pAlloc_opaque, pState); + return NULL; + } + + pState->cur_file_ofs += MZ_ZIP_LOCAL_DIR_HEADER_SIZE + MZ_READ_LE16(pLocal_header + MZ_ZIP_LDH_FILENAME_LEN_OFS) + MZ_READ_LE16(pLocal_header + MZ_ZIP_LDH_EXTRA_LEN_OFS); + if ((pState->cur_file_ofs + pState->file_stat.m_comp_size) > pZip->m_archive_size) + { + mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); + pZip->m_pFree(pZip->m_pAlloc_opaque, pState); + return NULL; + } + + /* Decompress the file either directly from memory or from a file input buffer. */ + if (pZip->m_pState->m_pMem) + { + pState->pRead_buf = (mz_uint8 *)pZip->m_pState->m_pMem + pState->cur_file_ofs; + pState->read_buf_size = pState->read_buf_avail = pState->file_stat.m_comp_size; + pState->comp_remaining = pState->file_stat.m_comp_size; + } + else + { + if (!((flags & MZ_ZIP_FLAG_COMPRESSED_DATA) || (!pState->file_stat.m_method))) + { + /* Decompression required, therefore intermediate read buffer required */ + pState->read_buf_size = MZ_MIN(pState->file_stat.m_comp_size, (mz_uint64)MZ_ZIP_MAX_IO_BUF_SIZE); + if (NULL == (pState->pRead_buf = pZip->m_pAlloc(pZip->m_pAlloc_opaque, 1, (size_t)pState->read_buf_size))) + { + mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); + pZip->m_pFree(pZip->m_pAlloc_opaque, pState); + return NULL; + } + } + else + { + /* Decompression not required - we will be reading directly into user buffer, no temp buf required */ + pState->read_buf_size = 0; + } + pState->read_buf_avail = 0; + pState->comp_remaining = pState->file_stat.m_comp_size; + } + + if (!((flags & MZ_ZIP_FLAG_COMPRESSED_DATA) || (!pState->file_stat.m_method))) + { + /* Decompression required, init decompressor */ + tinfl_init( &pState->inflator ); + + /* Allocate write buffer */ + if (NULL == (pState->pWrite_buf = pZip->m_pAlloc(pZip->m_pAlloc_opaque, 1, TINFL_LZ_DICT_SIZE))) + { + mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); + if (pState->pRead_buf) + pZip->m_pFree(pZip->m_pAlloc_opaque, pState->pRead_buf); + pZip->m_pFree(pZip->m_pAlloc_opaque, pState); + return NULL; + } + } + + return pState; +} + +mz_zip_reader_extract_iter_state* mz_zip_reader_extract_file_iter_new(mz_zip_archive *pZip, const char *pFilename, mz_uint flags) +{ + mz_uint32 file_index; + + /* Locate file index by name */ + if (!mz_zip_reader_locate_file_v2(pZip, pFilename, NULL, flags, &file_index)) + return NULL; + + /* Construct iterator */ + return mz_zip_reader_extract_iter_new(pZip, file_index, flags); +} + +size_t mz_zip_reader_extract_iter_read(mz_zip_reader_extract_iter_state* pState, void* pvBuf, size_t buf_size) +{ + size_t copied_to_caller = 0; + + /* Argument sanity check */ + if ((!pState) || (!pState->pZip) || (!pState->pZip->m_pState) || (!pvBuf)) + return 0; + + if ((pState->flags & MZ_ZIP_FLAG_COMPRESSED_DATA) || (!pState->file_stat.m_method)) + { + /* The file is stored or the caller has requested the compressed data, calc amount to return. */ + copied_to_caller = (size_t)MZ_MIN( buf_size, pState->comp_remaining ); + + /* Zip is in memory....or requires reading from a file? */ + if (pState->pZip->m_pState->m_pMem) + { + /* Copy data to caller's buffer */ + memcpy( pvBuf, pState->pRead_buf, copied_to_caller ); + pState->pRead_buf = ((mz_uint8*)pState->pRead_buf) + copied_to_caller; + } + else + { + /* Read directly into caller's buffer */ + if (pState->pZip->m_pRead(pState->pZip->m_pIO_opaque, pState->cur_file_ofs, pvBuf, copied_to_caller) != copied_to_caller) + { + /* Failed to read all that was asked for, flag failure and alert user */ + mz_zip_set_error(pState->pZip, MZ_ZIP_FILE_READ_FAILED); + pState->status = TINFL_STATUS_FAILED; + copied_to_caller = 0; + } + } + +#ifndef MINIZ_DISABLE_ZIP_READER_CRC32_CHECKS + /* Compute CRC if not returning compressed data only */ + if (!(pState->flags & MZ_ZIP_FLAG_COMPRESSED_DATA)) + pState->file_crc32 = (mz_uint32)mz_crc32(pState->file_crc32, (const mz_uint8 *)pvBuf, copied_to_caller); +#endif + + /* Advance offsets, dec counters */ + pState->cur_file_ofs += copied_to_caller; + pState->out_buf_ofs += copied_to_caller; + pState->comp_remaining -= copied_to_caller; + } + else + { + do + { + /* Calc ptr to write buffer - given current output pos and block size */ + mz_uint8 *pWrite_buf_cur = (mz_uint8 *)pState->pWrite_buf + (pState->out_buf_ofs & (TINFL_LZ_DICT_SIZE - 1)); + + /* Calc max output size - given current output pos and block size */ + size_t in_buf_size, out_buf_size = TINFL_LZ_DICT_SIZE - (pState->out_buf_ofs & (TINFL_LZ_DICT_SIZE - 1)); + + if (!pState->out_blk_remain) + { + /* Read more data from file if none available (and reading from file) */ + if ((!pState->read_buf_avail) && (!pState->pZip->m_pState->m_pMem)) + { + /* Calc read size */ + pState->read_buf_avail = MZ_MIN(pState->read_buf_size, pState->comp_remaining); + if (pState->pZip->m_pRead(pState->pZip->m_pIO_opaque, pState->cur_file_ofs, pState->pRead_buf, (size_t)pState->read_buf_avail) != pState->read_buf_avail) + { + mz_zip_set_error(pState->pZip, MZ_ZIP_FILE_READ_FAILED); + pState->status = TINFL_STATUS_FAILED; + break; + } + + /* Advance offsets, dec counters */ + pState->cur_file_ofs += pState->read_buf_avail; + pState->comp_remaining -= pState->read_buf_avail; + pState->read_buf_ofs = 0; + } + + /* Perform decompression */ + in_buf_size = (size_t)pState->read_buf_avail; + pState->status = tinfl_decompress(&pState->inflator, (const mz_uint8 *)pState->pRead_buf + pState->read_buf_ofs, &in_buf_size, (mz_uint8 *)pState->pWrite_buf, pWrite_buf_cur, &out_buf_size, pState->comp_remaining ? TINFL_FLAG_HAS_MORE_INPUT : 0); + pState->read_buf_avail -= in_buf_size; + pState->read_buf_ofs += in_buf_size; + + /* Update current output block size remaining */ + pState->out_blk_remain = out_buf_size; + } + + if (pState->out_blk_remain) + { + /* Calc amount to return. */ + size_t to_copy = MZ_MIN( (buf_size - copied_to_caller), pState->out_blk_remain ); + + /* Copy data to caller's buffer */ + memcpy( (uint8_t*)pvBuf + copied_to_caller, pWrite_buf_cur, to_copy ); + +#ifndef MINIZ_DISABLE_ZIP_READER_CRC32_CHECKS + /* Perform CRC */ + pState->file_crc32 = (mz_uint32)mz_crc32(pState->file_crc32, pWrite_buf_cur, to_copy); +#endif + + /* Decrement data consumed from block */ + pState->out_blk_remain -= to_copy; + + /* Inc output offset, while performing sanity check */ + if ((pState->out_buf_ofs += to_copy) > pState->file_stat.m_uncomp_size) + { + mz_zip_set_error(pState->pZip, MZ_ZIP_DECOMPRESSION_FAILED); + pState->status = TINFL_STATUS_FAILED; + break; + } + + /* Increment counter of data copied to caller */ + copied_to_caller += to_copy; + } + } while ( (copied_to_caller < buf_size) && ((pState->status == TINFL_STATUS_NEEDS_MORE_INPUT) || (pState->status == TINFL_STATUS_HAS_MORE_OUTPUT)) ); + } + + /* Return how many bytes were copied into user buffer */ + return copied_to_caller; +} + +mz_bool mz_zip_reader_extract_iter_free(mz_zip_reader_extract_iter_state* pState) +{ + int status; + + /* Argument sanity check */ + if ((!pState) || (!pState->pZip) || (!pState->pZip->m_pState)) + return MZ_FALSE; + + /* Was decompression completed and requested? */ + if ((pState->status == TINFL_STATUS_DONE) && (!(pState->flags & MZ_ZIP_FLAG_COMPRESSED_DATA))) + { + /* Make sure the entire file was decompressed, and check its CRC. */ + if (pState->out_buf_ofs != pState->file_stat.m_uncomp_size) + { + mz_zip_set_error(pState->pZip, MZ_ZIP_UNEXPECTED_DECOMPRESSED_SIZE); + pState->status = TINFL_STATUS_FAILED; + } +#ifndef MINIZ_DISABLE_ZIP_READER_CRC32_CHECKS + else if (pState->file_crc32 != pState->file_stat.m_crc32) + { + mz_zip_set_error(pState->pZip, MZ_ZIP_DECOMPRESSION_FAILED); + pState->status = TINFL_STATUS_FAILED; + } +#endif + } + + /* Free buffers */ + if (!pState->pZip->m_pState->m_pMem) + pState->pZip->m_pFree(pState->pZip->m_pAlloc_opaque, pState->pRead_buf); + if (pState->pWrite_buf) + pState->pZip->m_pFree(pState->pZip->m_pAlloc_opaque, pState->pWrite_buf); + + /* Save status */ + status = pState->status; + + /* Free context */ + pState->pZip->m_pFree(pState->pZip->m_pAlloc_opaque, pState); + + return status == TINFL_STATUS_DONE; +} + +#ifndef MINIZ_NO_STDIO +static size_t mz_zip_file_write_callback(void *pOpaque, mz_uint64 ofs, const void *pBuf, size_t n) +{ + (void)ofs; + + return MZ_FWRITE(pBuf, 1, n, (MZ_FILE *)pOpaque); +} + +mz_bool mz_zip_reader_extract_to_file(mz_zip_archive *pZip, mz_uint file_index, const char *pDst_filename, mz_uint flags) +{ + mz_bool status; + mz_zip_archive_file_stat file_stat; + MZ_FILE *pFile; + + if (!mz_zip_reader_file_stat(pZip, file_index, &file_stat)) + return MZ_FALSE; + + if ((file_stat.m_is_directory) || (!file_stat.m_is_supported)) + return mz_zip_set_error(pZip, MZ_ZIP_UNSUPPORTED_FEATURE); + + pFile = MZ_FOPEN(pDst_filename, "wb"); + if (!pFile) + return mz_zip_set_error(pZip, MZ_ZIP_FILE_OPEN_FAILED); + + status = mz_zip_reader_extract_to_callback(pZip, file_index, mz_zip_file_write_callback, pFile, flags); + + if (MZ_FCLOSE(pFile) == EOF) + { + if (status) + mz_zip_set_error(pZip, MZ_ZIP_FILE_CLOSE_FAILED); + + status = MZ_FALSE; + } + +#if !defined(MINIZ_NO_TIME) && !defined(MINIZ_NO_STDIO) + if (status) + mz_zip_set_file_times(pDst_filename, file_stat.m_time, file_stat.m_time); +#endif + + return status; +} + +mz_bool mz_zip_reader_extract_file_to_file(mz_zip_archive *pZip, const char *pArchive_filename, const char *pDst_filename, mz_uint flags) +{ + mz_uint32 file_index; + if (!mz_zip_reader_locate_file_v2(pZip, pArchive_filename, NULL, flags, &file_index)) + return MZ_FALSE; + + return mz_zip_reader_extract_to_file(pZip, file_index, pDst_filename, flags); +} + +mz_bool mz_zip_reader_extract_to_cfile(mz_zip_archive *pZip, mz_uint file_index, MZ_FILE *pFile, mz_uint flags) +{ + mz_zip_archive_file_stat file_stat; + + if (!mz_zip_reader_file_stat(pZip, file_index, &file_stat)) + return MZ_FALSE; + + if ((file_stat.m_is_directory) || (!file_stat.m_is_supported)) + return mz_zip_set_error(pZip, MZ_ZIP_UNSUPPORTED_FEATURE); + + return mz_zip_reader_extract_to_callback(pZip, file_index, mz_zip_file_write_callback, pFile, flags); +} + +mz_bool mz_zip_reader_extract_file_to_cfile(mz_zip_archive *pZip, const char *pArchive_filename, MZ_FILE *pFile, mz_uint flags) +{ + mz_uint32 file_index; + if (!mz_zip_reader_locate_file_v2(pZip, pArchive_filename, NULL, flags, &file_index)) + return MZ_FALSE; + + return mz_zip_reader_extract_to_cfile(pZip, file_index, pFile, flags); +} +#endif /* #ifndef MINIZ_NO_STDIO */ + +static size_t mz_zip_compute_crc32_callback(void *pOpaque, mz_uint64 file_ofs, const void *pBuf, size_t n) +{ + mz_uint32 *p = (mz_uint32 *)pOpaque; + (void)file_ofs; + *p = (mz_uint32)mz_crc32(*p, (const mz_uint8 *)pBuf, n); + return n; +} + +mz_bool mz_zip_validate_file(mz_zip_archive *pZip, mz_uint file_index, mz_uint flags) +{ + mz_zip_archive_file_stat file_stat; + mz_zip_internal_state *pState; + const mz_uint8 *pCentral_dir_header; + mz_bool found_zip64_ext_data_in_cdir = MZ_FALSE; + mz_bool found_zip64_ext_data_in_ldir = MZ_FALSE; + mz_uint32 local_header_u32[(MZ_ZIP_LOCAL_DIR_HEADER_SIZE + sizeof(mz_uint32) - 1) / sizeof(mz_uint32)]; + mz_uint8 *pLocal_header = (mz_uint8 *)local_header_u32; + mz_uint64 local_header_ofs = 0; + mz_uint32 local_header_filename_len, local_header_extra_len, local_header_crc32; + mz_uint64 local_header_comp_size, local_header_uncomp_size; + mz_uint32 uncomp_crc32 = MZ_CRC32_INIT; + mz_bool has_data_descriptor; + mz_uint32 local_header_bit_flags; + + mz_zip_array file_data_array; + mz_zip_array_init(&file_data_array, 1); + + if ((!pZip) || (!pZip->m_pState) || (!pZip->m_pAlloc) || (!pZip->m_pFree) || (!pZip->m_pRead)) + return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); + + if (file_index > pZip->m_total_files) + return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); + + pState = pZip->m_pState; + + pCentral_dir_header = mz_zip_get_cdh(pZip, file_index); + + if (!mz_zip_file_stat_internal(pZip, file_index, pCentral_dir_header, &file_stat, &found_zip64_ext_data_in_cdir)) + return MZ_FALSE; + + /* A directory or zero length file */ + if ((file_stat.m_is_directory) || (!file_stat.m_uncomp_size)) + return MZ_TRUE; + + /* Encryption and patch files are not supported. */ + if (file_stat.m_is_encrypted) + return mz_zip_set_error(pZip, MZ_ZIP_UNSUPPORTED_ENCRYPTION); + + /* This function only supports stored and deflate. */ + if ((file_stat.m_method != 0) && (file_stat.m_method != MZ_DEFLATED)) + return mz_zip_set_error(pZip, MZ_ZIP_UNSUPPORTED_METHOD); + + if (!file_stat.m_is_supported) + return mz_zip_set_error(pZip, MZ_ZIP_UNSUPPORTED_FEATURE); + + /* Read and parse the local directory entry. */ + local_header_ofs = file_stat.m_local_header_ofs; + if (pZip->m_pRead(pZip->m_pIO_opaque, local_header_ofs, pLocal_header, MZ_ZIP_LOCAL_DIR_HEADER_SIZE) != MZ_ZIP_LOCAL_DIR_HEADER_SIZE) + return mz_zip_set_error(pZip, MZ_ZIP_FILE_READ_FAILED); + + if (MZ_READ_LE32(pLocal_header) != MZ_ZIP_LOCAL_DIR_HEADER_SIG) + return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); + + local_header_filename_len = MZ_READ_LE16(pLocal_header + MZ_ZIP_LDH_FILENAME_LEN_OFS); + local_header_extra_len = MZ_READ_LE16(pLocal_header + MZ_ZIP_LDH_EXTRA_LEN_OFS); + local_header_comp_size = MZ_READ_LE32(pLocal_header + MZ_ZIP_LDH_COMPRESSED_SIZE_OFS); + local_header_uncomp_size = MZ_READ_LE32(pLocal_header + MZ_ZIP_LDH_DECOMPRESSED_SIZE_OFS); + local_header_crc32 = MZ_READ_LE32(pLocal_header + MZ_ZIP_LDH_CRC32_OFS); + local_header_bit_flags = MZ_READ_LE16(pLocal_header + MZ_ZIP_LDH_BIT_FLAG_OFS); + has_data_descriptor = (local_header_bit_flags & 8) != 0; + + if (local_header_filename_len != strlen(file_stat.m_filename)) + return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); + + if ((local_header_ofs + MZ_ZIP_LOCAL_DIR_HEADER_SIZE + local_header_filename_len + local_header_extra_len + file_stat.m_comp_size) > pZip->m_archive_size) + return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); + + if (!mz_zip_array_resize(pZip, &file_data_array, MZ_MAX(local_header_filename_len, local_header_extra_len), MZ_FALSE)) + { + mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); + goto handle_failure; + } + + if (local_header_filename_len) + { + if (pZip->m_pRead(pZip->m_pIO_opaque, local_header_ofs + MZ_ZIP_LOCAL_DIR_HEADER_SIZE, file_data_array.m_p, local_header_filename_len) != local_header_filename_len) + { + mz_zip_set_error(pZip, MZ_ZIP_FILE_READ_FAILED); + goto handle_failure; + } + + /* I've seen 1 archive that had the same pathname, but used backslashes in the local dir and forward slashes in the central dir. Do we care about this? For now, this case will fail validation. */ + if (memcmp(file_stat.m_filename, file_data_array.m_p, local_header_filename_len) != 0) + { + mz_zip_set_error(pZip, MZ_ZIP_VALIDATION_FAILED); + goto handle_failure; + } + } + + if ((local_header_extra_len) && ((local_header_comp_size == MZ_UINT32_MAX) || (local_header_uncomp_size == MZ_UINT32_MAX))) + { + mz_uint32 extra_size_remaining = local_header_extra_len; + const mz_uint8 *pExtra_data = (const mz_uint8 *)file_data_array.m_p; + + if (pZip->m_pRead(pZip->m_pIO_opaque, local_header_ofs + MZ_ZIP_LOCAL_DIR_HEADER_SIZE + local_header_filename_len, file_data_array.m_p, local_header_extra_len) != local_header_extra_len) + { + mz_zip_set_error(pZip, MZ_ZIP_FILE_READ_FAILED); + goto handle_failure; + } + + do + { + mz_uint32 field_id, field_data_size, field_total_size; + + if (extra_size_remaining < (sizeof(mz_uint16) * 2)) + { + mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); + goto handle_failure; + } + + field_id = MZ_READ_LE16(pExtra_data); + field_data_size = MZ_READ_LE16(pExtra_data + sizeof(mz_uint16)); + field_total_size = field_data_size + sizeof(mz_uint16) * 2; + + if (field_total_size > extra_size_remaining) + { + mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); + goto handle_failure; + } + + if (field_id == MZ_ZIP64_EXTENDED_INFORMATION_FIELD_HEADER_ID) + { + const mz_uint8 *pSrc_field_data = pExtra_data + sizeof(mz_uint32); + + if (field_data_size < sizeof(mz_uint64) * 2) + { + mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); + goto handle_failure; + } + + local_header_uncomp_size = MZ_READ_LE64(pSrc_field_data); + local_header_comp_size = MZ_READ_LE64(pSrc_field_data + sizeof(mz_uint64)); + + found_zip64_ext_data_in_ldir = MZ_TRUE; + break; + } + + pExtra_data += field_total_size; + extra_size_remaining -= field_total_size; + } while (extra_size_remaining); + } + + /* TODO: parse local header extra data when local_header_comp_size is 0xFFFFFFFF! (big_descriptor.zip) */ + /* I've seen zips in the wild with the data descriptor bit set, but proper local header values and bogus data descriptors */ + if ((has_data_descriptor) && (!local_header_comp_size) && (!local_header_crc32)) + { + mz_uint8 descriptor_buf[32]; + mz_bool has_id; + const mz_uint8 *pSrc; + mz_uint32 file_crc32; + mz_uint64 comp_size = 0, uncomp_size = 0; + + mz_uint32 num_descriptor_uint32s = ((pState->m_zip64) || (found_zip64_ext_data_in_ldir)) ? 6 : 4; + + if (pZip->m_pRead(pZip->m_pIO_opaque, local_header_ofs + MZ_ZIP_LOCAL_DIR_HEADER_SIZE + local_header_filename_len + local_header_extra_len + file_stat.m_comp_size, descriptor_buf, sizeof(mz_uint32) * num_descriptor_uint32s) != (sizeof(mz_uint32) * num_descriptor_uint32s)) + { + mz_zip_set_error(pZip, MZ_ZIP_FILE_READ_FAILED); + goto handle_failure; + } + + has_id = (MZ_READ_LE32(descriptor_buf) == MZ_ZIP_DATA_DESCRIPTOR_ID); + pSrc = has_id ? (descriptor_buf + sizeof(mz_uint32)) : descriptor_buf; + + file_crc32 = MZ_READ_LE32(pSrc); + + if ((pState->m_zip64) || (found_zip64_ext_data_in_ldir)) + { + comp_size = MZ_READ_LE64(pSrc + sizeof(mz_uint32)); + uncomp_size = MZ_READ_LE64(pSrc + sizeof(mz_uint32) + sizeof(mz_uint64)); + } + else + { + comp_size = MZ_READ_LE32(pSrc + sizeof(mz_uint32)); + uncomp_size = MZ_READ_LE32(pSrc + sizeof(mz_uint32) + sizeof(mz_uint32)); + } + + if ((file_crc32 != file_stat.m_crc32) || (comp_size != file_stat.m_comp_size) || (uncomp_size != file_stat.m_uncomp_size)) + { + mz_zip_set_error(pZip, MZ_ZIP_VALIDATION_FAILED); + goto handle_failure; + } + } + else + { + if ((local_header_crc32 != file_stat.m_crc32) || (local_header_comp_size != file_stat.m_comp_size) || (local_header_uncomp_size != file_stat.m_uncomp_size)) + { + mz_zip_set_error(pZip, MZ_ZIP_VALIDATION_FAILED); + goto handle_failure; + } + } + + mz_zip_array_clear(pZip, &file_data_array); + + if ((flags & MZ_ZIP_FLAG_VALIDATE_HEADERS_ONLY) == 0) + { + if (!mz_zip_reader_extract_to_callback(pZip, file_index, mz_zip_compute_crc32_callback, &uncomp_crc32, 0)) + return MZ_FALSE; + + /* 1 more check to be sure, although the extract checks too. */ + if (uncomp_crc32 != file_stat.m_crc32) + { + mz_zip_set_error(pZip, MZ_ZIP_VALIDATION_FAILED); + return MZ_FALSE; + } + } + + return MZ_TRUE; + +handle_failure: + mz_zip_array_clear(pZip, &file_data_array); + return MZ_FALSE; +} + +mz_bool mz_zip_validate_archive(mz_zip_archive *pZip, mz_uint flags) +{ + mz_zip_internal_state *pState; + uint32_t i; + + if ((!pZip) || (!pZip->m_pState) || (!pZip->m_pAlloc) || (!pZip->m_pFree) || (!pZip->m_pRead)) + return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); + + pState = pZip->m_pState; + + /* Basic sanity checks */ + if (!pState->m_zip64) + { + if (pZip->m_total_files > MZ_UINT16_MAX) + return mz_zip_set_error(pZip, MZ_ZIP_ARCHIVE_TOO_LARGE); + + if (pZip->m_archive_size > MZ_UINT32_MAX) + return mz_zip_set_error(pZip, MZ_ZIP_ARCHIVE_TOO_LARGE); + } + else + { + if (pZip->m_total_files >= MZ_UINT32_MAX) + return mz_zip_set_error(pZip, MZ_ZIP_ARCHIVE_TOO_LARGE); + + if (pState->m_central_dir.m_size >= MZ_UINT32_MAX) + return mz_zip_set_error(pZip, MZ_ZIP_ARCHIVE_TOO_LARGE); + } + + for (i = 0; i < pZip->m_total_files; i++) + { + if (MZ_ZIP_FLAG_VALIDATE_LOCATE_FILE_FLAG & flags) + { + mz_uint32 found_index; + mz_zip_archive_file_stat stat; + + if (!mz_zip_reader_file_stat(pZip, i, &stat)) + return MZ_FALSE; + + if (!mz_zip_reader_locate_file_v2(pZip, stat.m_filename, NULL, 0, &found_index)) + return MZ_FALSE; + + /* This check can fail if there are duplicate filenames in the archive (which we don't check for when writing - that's up to the user) */ + if (found_index != i) + return mz_zip_set_error(pZip, MZ_ZIP_VALIDATION_FAILED); + } + + if (!mz_zip_validate_file(pZip, i, flags)) + return MZ_FALSE; + } + + return MZ_TRUE; +} + +mz_bool mz_zip_validate_mem_archive(const void *pMem, size_t size, mz_uint flags, mz_zip_error *pErr) +{ + mz_bool success = MZ_TRUE; + mz_zip_archive zip; + mz_zip_error actual_err = MZ_ZIP_NO_ERROR; + + if ((!pMem) || (!size)) + { + if (pErr) + *pErr = MZ_ZIP_INVALID_PARAMETER; + return MZ_FALSE; + } + + mz_zip_zero_struct(&zip); + + if (!mz_zip_reader_init_mem(&zip, pMem, size, flags)) + { + if (pErr) + *pErr = zip.m_last_error; + return MZ_FALSE; + } + + if (!mz_zip_validate_archive(&zip, flags)) + { + actual_err = zip.m_last_error; + success = MZ_FALSE; + } + + if (!mz_zip_reader_end_internal(&zip, success)) + { + if (!actual_err) + actual_err = zip.m_last_error; + success = MZ_FALSE; + } + + if (pErr) + *pErr = actual_err; + + return success; +} + +#ifndef MINIZ_NO_STDIO +mz_bool mz_zip_validate_file_archive(const char *pFilename, mz_uint flags, mz_zip_error *pErr) +{ + mz_bool success = MZ_TRUE; + mz_zip_archive zip; + mz_zip_error actual_err = MZ_ZIP_NO_ERROR; + + if (!pFilename) + { + if (pErr) + *pErr = MZ_ZIP_INVALID_PARAMETER; + return MZ_FALSE; + } + + mz_zip_zero_struct(&zip); + + if (!mz_zip_reader_init_file_v2(&zip, pFilename, flags, 0, 0)) + { + if (pErr) + *pErr = zip.m_last_error; + return MZ_FALSE; + } + + if (!mz_zip_validate_archive(&zip, flags)) + { + actual_err = zip.m_last_error; + success = MZ_FALSE; + } + + if (!mz_zip_reader_end_internal(&zip, success)) + { + if (!actual_err) + actual_err = zip.m_last_error; + success = MZ_FALSE; + } + + if (pErr) + *pErr = actual_err; + + return success; +} +#endif /* #ifndef MINIZ_NO_STDIO */ + +/* ------------------- .ZIP archive writing */ + +#ifndef MINIZ_NO_ARCHIVE_WRITING_APIS + +static MZ_FORCEINLINE void mz_write_le16(mz_uint8 *p, mz_uint16 v) +{ + p[0] = (mz_uint8)v; + p[1] = (mz_uint8)(v >> 8); +} +static MZ_FORCEINLINE void mz_write_le32(mz_uint8 *p, mz_uint32 v) +{ + p[0] = (mz_uint8)v; + p[1] = (mz_uint8)(v >> 8); + p[2] = (mz_uint8)(v >> 16); + p[3] = (mz_uint8)(v >> 24); +} +static MZ_FORCEINLINE void mz_write_le64(mz_uint8 *p, mz_uint64 v) +{ + mz_write_le32(p, (mz_uint32)v); + mz_write_le32(p + sizeof(mz_uint32), (mz_uint32)(v >> 32)); +} + +#define MZ_WRITE_LE16(p, v) mz_write_le16((mz_uint8 *)(p), (mz_uint16)(v)) +#define MZ_WRITE_LE32(p, v) mz_write_le32((mz_uint8 *)(p), (mz_uint32)(v)) +#define MZ_WRITE_LE64(p, v) mz_write_le64((mz_uint8 *)(p), (mz_uint64)(v)) + +static size_t mz_zip_heap_write_func(void *pOpaque, mz_uint64 file_ofs, const void *pBuf, size_t n) +{ + mz_zip_archive *pZip = (mz_zip_archive *)pOpaque; + mz_zip_internal_state *pState = pZip->m_pState; + mz_uint64 new_size = MZ_MAX(file_ofs + n, pState->m_mem_size); + + if (!n) + return 0; + + /* An allocation this big is likely to just fail on 32-bit systems, so don't even go there. */ + if ((sizeof(size_t) == sizeof(mz_uint32)) && (new_size > 0x7FFFFFFF)) + { + mz_zip_set_error(pZip, MZ_ZIP_FILE_TOO_LARGE); + return 0; + } + + if (new_size > pState->m_mem_capacity) + { + void *pNew_block; + size_t new_capacity = MZ_MAX(64, pState->m_mem_capacity); + + while (new_capacity < new_size) + new_capacity *= 2; + + if (NULL == (pNew_block = pZip->m_pRealloc(pZip->m_pAlloc_opaque, pState->m_pMem, 1, new_capacity))) + { + mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); + return 0; + } + + pState->m_pMem = pNew_block; + pState->m_mem_capacity = new_capacity; + } + memcpy((mz_uint8 *)pState->m_pMem + file_ofs, pBuf, n); + pState->m_mem_size = (size_t)new_size; + return n; +} + +static mz_bool mz_zip_writer_end_internal(mz_zip_archive *pZip, mz_bool set_last_error) +{ + mz_zip_internal_state *pState; + mz_bool status = MZ_TRUE; + + if ((!pZip) || (!pZip->m_pState) || (!pZip->m_pAlloc) || (!pZip->m_pFree) || ((pZip->m_zip_mode != MZ_ZIP_MODE_WRITING) && (pZip->m_zip_mode != MZ_ZIP_MODE_WRITING_HAS_BEEN_FINALIZED))) + { + if (set_last_error) + mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); + return MZ_FALSE; + } + + pState = pZip->m_pState; + pZip->m_pState = NULL; + mz_zip_array_clear(pZip, &pState->m_central_dir); + mz_zip_array_clear(pZip, &pState->m_central_dir_offsets); + mz_zip_array_clear(pZip, &pState->m_sorted_central_dir_offsets); + +#ifndef MINIZ_NO_STDIO + if (pState->m_pFile) + { + if (pZip->m_zip_type == MZ_ZIP_TYPE_FILE) + { + if (MZ_FCLOSE(pState->m_pFile) == EOF) + { + if (set_last_error) + mz_zip_set_error(pZip, MZ_ZIP_FILE_CLOSE_FAILED); + status = MZ_FALSE; + } + } + + pState->m_pFile = NULL; + } +#endif /* #ifndef MINIZ_NO_STDIO */ + + if ((pZip->m_pWrite == mz_zip_heap_write_func) && (pState->m_pMem)) + { + pZip->m_pFree(pZip->m_pAlloc_opaque, pState->m_pMem); + pState->m_pMem = NULL; + } + + pZip->m_pFree(pZip->m_pAlloc_opaque, pState); + pZip->m_zip_mode = MZ_ZIP_MODE_INVALID; + return status; +} + +mz_bool mz_zip_writer_init_v2(mz_zip_archive *pZip, mz_uint64 existing_size, mz_uint flags) +{ + mz_bool zip64 = (flags & MZ_ZIP_FLAG_WRITE_ZIP64) != 0; + + if ((!pZip) || (pZip->m_pState) || (!pZip->m_pWrite) || (pZip->m_zip_mode != MZ_ZIP_MODE_INVALID)) + return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); + + if (flags & MZ_ZIP_FLAG_WRITE_ALLOW_READING) + { + if (!pZip->m_pRead) + return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); + } + + if (pZip->m_file_offset_alignment) + { + /* Ensure user specified file offset alignment is a power of 2. */ + if (pZip->m_file_offset_alignment & (pZip->m_file_offset_alignment - 1)) + return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); + } + + if (!pZip->m_pAlloc) + pZip->m_pAlloc = miniz_def_alloc_func; + if (!pZip->m_pFree) + pZip->m_pFree = miniz_def_free_func; + if (!pZip->m_pRealloc) + pZip->m_pRealloc = miniz_def_realloc_func; + + pZip->m_archive_size = existing_size; + pZip->m_central_directory_file_ofs = 0; + pZip->m_total_files = 0; + + if (NULL == (pZip->m_pState = (mz_zip_internal_state *)pZip->m_pAlloc(pZip->m_pAlloc_opaque, 1, sizeof(mz_zip_internal_state)))) + return mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); + + memset(pZip->m_pState, 0, sizeof(mz_zip_internal_state)); + + MZ_ZIP_ARRAY_SET_ELEMENT_SIZE(&pZip->m_pState->m_central_dir, sizeof(mz_uint8)); + MZ_ZIP_ARRAY_SET_ELEMENT_SIZE(&pZip->m_pState->m_central_dir_offsets, sizeof(mz_uint32)); + MZ_ZIP_ARRAY_SET_ELEMENT_SIZE(&pZip->m_pState->m_sorted_central_dir_offsets, sizeof(mz_uint32)); + + pZip->m_pState->m_zip64 = zip64; + pZip->m_pState->m_zip64_has_extended_info_fields = zip64; + + pZip->m_zip_type = MZ_ZIP_TYPE_USER; + pZip->m_zip_mode = MZ_ZIP_MODE_WRITING; + + return MZ_TRUE; +} + +mz_bool mz_zip_writer_init(mz_zip_archive *pZip, mz_uint64 existing_size) +{ + return mz_zip_writer_init_v2(pZip, existing_size, 0); +} + +mz_bool mz_zip_writer_init_heap_v2(mz_zip_archive *pZip, size_t size_to_reserve_at_beginning, size_t initial_allocation_size, mz_uint flags) +{ + pZip->m_pWrite = mz_zip_heap_write_func; + pZip->m_pNeeds_keepalive = NULL; + + if (flags & MZ_ZIP_FLAG_WRITE_ALLOW_READING) + pZip->m_pRead = mz_zip_mem_read_func; + + pZip->m_pIO_opaque = pZip; + + if (!mz_zip_writer_init_v2(pZip, size_to_reserve_at_beginning, flags)) + return MZ_FALSE; + + pZip->m_zip_type = MZ_ZIP_TYPE_HEAP; + + if (0 != (initial_allocation_size = MZ_MAX(initial_allocation_size, size_to_reserve_at_beginning))) + { + if (NULL == (pZip->m_pState->m_pMem = pZip->m_pAlloc(pZip->m_pAlloc_opaque, 1, initial_allocation_size))) + { + mz_zip_writer_end_internal(pZip, MZ_FALSE); + return mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); + } + pZip->m_pState->m_mem_capacity = initial_allocation_size; + } + + return MZ_TRUE; +} + +mz_bool mz_zip_writer_init_heap(mz_zip_archive *pZip, size_t size_to_reserve_at_beginning, size_t initial_allocation_size) +{ + return mz_zip_writer_init_heap_v2(pZip, size_to_reserve_at_beginning, initial_allocation_size, 0); +} + +#ifndef MINIZ_NO_STDIO +static size_t mz_zip_file_write_func(void *pOpaque, mz_uint64 file_ofs, const void *pBuf, size_t n) +{ + mz_zip_archive *pZip = (mz_zip_archive *)pOpaque; + mz_int64 cur_ofs = MZ_FTELL64(pZip->m_pState->m_pFile); + + file_ofs += pZip->m_pState->m_file_archive_start_ofs; + + if (((mz_int64)file_ofs < 0) || (((cur_ofs != (mz_int64)file_ofs)) && (MZ_FSEEK64(pZip->m_pState->m_pFile, (mz_int64)file_ofs, SEEK_SET)))) + { + mz_zip_set_error(pZip, MZ_ZIP_FILE_SEEK_FAILED); + return 0; + } + + return MZ_FWRITE(pBuf, 1, n, pZip->m_pState->m_pFile); +} + +mz_bool mz_zip_writer_init_file(mz_zip_archive *pZip, const char *pFilename, mz_uint64 size_to_reserve_at_beginning) +{ + return mz_zip_writer_init_file_v2(pZip, pFilename, size_to_reserve_at_beginning, 0); +} + +mz_bool mz_zip_writer_init_file_v2(mz_zip_archive *pZip, const char *pFilename, mz_uint64 size_to_reserve_at_beginning, mz_uint flags) +{ + MZ_FILE *pFile; + + pZip->m_pWrite = mz_zip_file_write_func; + pZip->m_pNeeds_keepalive = NULL; + + if (flags & MZ_ZIP_FLAG_WRITE_ALLOW_READING) + pZip->m_pRead = mz_zip_file_read_func; + + pZip->m_pIO_opaque = pZip; + + if (!mz_zip_writer_init_v2(pZip, size_to_reserve_at_beginning, flags)) + return MZ_FALSE; + + if (NULL == (pFile = MZ_FOPEN(pFilename, (flags & MZ_ZIP_FLAG_WRITE_ALLOW_READING) ? "w+b" : "wb"))) + { + mz_zip_writer_end(pZip); + return mz_zip_set_error(pZip, MZ_ZIP_FILE_OPEN_FAILED); + } + + pZip->m_pState->m_pFile = pFile; + pZip->m_zip_type = MZ_ZIP_TYPE_FILE; + + if (size_to_reserve_at_beginning) + { + mz_uint64 cur_ofs = 0; + char buf[4096]; + + MZ_CLEAR_OBJ(buf); + + do + { + size_t n = (size_t)MZ_MIN(sizeof(buf), size_to_reserve_at_beginning); + if (pZip->m_pWrite(pZip->m_pIO_opaque, cur_ofs, buf, n) != n) + { + mz_zip_writer_end(pZip); + return mz_zip_set_error(pZip, MZ_ZIP_FILE_WRITE_FAILED); + } + cur_ofs += n; + size_to_reserve_at_beginning -= n; + } while (size_to_reserve_at_beginning); + } + + return MZ_TRUE; +} + +mz_bool mz_zip_writer_init_cfile(mz_zip_archive *pZip, MZ_FILE *pFile, mz_uint flags) +{ + pZip->m_pWrite = mz_zip_file_write_func; + pZip->m_pNeeds_keepalive = NULL; + + if (flags & MZ_ZIP_FLAG_WRITE_ALLOW_READING) + pZip->m_pRead = mz_zip_file_read_func; + + pZip->m_pIO_opaque = pZip; + + if (!mz_zip_writer_init_v2(pZip, 0, flags)) + return MZ_FALSE; + + pZip->m_pState->m_pFile = pFile; + pZip->m_pState->m_file_archive_start_ofs = MZ_FTELL64(pZip->m_pState->m_pFile); + pZip->m_zip_type = MZ_ZIP_TYPE_CFILE; + + return MZ_TRUE; +} +#endif /* #ifndef MINIZ_NO_STDIO */ + +mz_bool mz_zip_writer_init_from_reader_v2(mz_zip_archive *pZip, const char *pFilename, mz_uint flags) +{ + mz_zip_internal_state *pState; + + if ((!pZip) || (!pZip->m_pState) || (pZip->m_zip_mode != MZ_ZIP_MODE_READING)) + return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); + + if (flags & MZ_ZIP_FLAG_WRITE_ZIP64) + { + /* We don't support converting a non-zip64 file to zip64 - this seems like more trouble than it's worth. (What about the existing 32-bit data descriptors that could follow the compressed data?) */ + if (!pZip->m_pState->m_zip64) + return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); + } + + /* No sense in trying to write to an archive that's already at the support max size */ + if (pZip->m_pState->m_zip64) + { + if (pZip->m_total_files == MZ_UINT32_MAX) + return mz_zip_set_error(pZip, MZ_ZIP_TOO_MANY_FILES); + } + else + { + if (pZip->m_total_files == MZ_UINT16_MAX) + return mz_zip_set_error(pZip, MZ_ZIP_TOO_MANY_FILES); + + if ((pZip->m_archive_size + MZ_ZIP_CENTRAL_DIR_HEADER_SIZE + MZ_ZIP_LOCAL_DIR_HEADER_SIZE) > MZ_UINT32_MAX) + return mz_zip_set_error(pZip, MZ_ZIP_FILE_TOO_LARGE); + } + + pState = pZip->m_pState; + + if (pState->m_pFile) + { +#ifdef MINIZ_NO_STDIO + (void)pFilename; + return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); +#else + if (pZip->m_pIO_opaque != pZip) + return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); + + if (pZip->m_zip_type == MZ_ZIP_TYPE_FILE) + { + if (!pFilename) + return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); + + /* Archive is being read from stdio and was originally opened only for reading. Try to reopen as writable. */ + if (NULL == (pState->m_pFile = MZ_FREOPEN(pFilename, "r+b", pState->m_pFile))) + { + /* The mz_zip_archive is now in a bogus state because pState->m_pFile is NULL, so just close it. */ + mz_zip_reader_end_internal(pZip, MZ_FALSE); + return mz_zip_set_error(pZip, MZ_ZIP_FILE_OPEN_FAILED); + } + } + + pZip->m_pWrite = mz_zip_file_write_func; + pZip->m_pNeeds_keepalive = NULL; +#endif /* #ifdef MINIZ_NO_STDIO */ + } + else if (pState->m_pMem) + { + /* Archive lives in a memory block. Assume it's from the heap that we can resize using the realloc callback. */ + if (pZip->m_pIO_opaque != pZip) + return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); + + pState->m_mem_capacity = pState->m_mem_size; + pZip->m_pWrite = mz_zip_heap_write_func; + pZip->m_pNeeds_keepalive = NULL; + } + /* Archive is being read via a user provided read function - make sure the user has specified a write function too. */ + else if (!pZip->m_pWrite) + return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); + + /* Start writing new files at the archive's current central directory location. */ + /* TODO: We could add a flag that lets the user start writing immediately AFTER the existing central dir - this would be safer. */ + pZip->m_archive_size = pZip->m_central_directory_file_ofs; + pZip->m_central_directory_file_ofs = 0; + + /* Clear the sorted central dir offsets, they aren't useful or maintained now. */ + /* Even though we're now in write mode, files can still be extracted and verified, but file locates will be slow. */ + /* TODO: We could easily maintain the sorted central directory offsets. */ + mz_zip_array_clear(pZip, &pZip->m_pState->m_sorted_central_dir_offsets); + + pZip->m_zip_mode = MZ_ZIP_MODE_WRITING; + + return MZ_TRUE; +} + +mz_bool mz_zip_writer_init_from_reader(mz_zip_archive *pZip, const char *pFilename) +{ + return mz_zip_writer_init_from_reader_v2(pZip, pFilename, 0); +} + +/* TODO: pArchive_name is a terrible name here! */ +mz_bool mz_zip_writer_add_mem(mz_zip_archive *pZip, const char *pArchive_name, const void *pBuf, size_t buf_size, mz_uint level_and_flags) +{ + return mz_zip_writer_add_mem_ex(pZip, pArchive_name, pBuf, buf_size, NULL, 0, level_and_flags, 0, 0); +} + +typedef struct +{ + mz_zip_archive *m_pZip; + mz_uint64 m_cur_archive_file_ofs; + mz_uint64 m_comp_size; +} mz_zip_writer_add_state; + +static mz_bool mz_zip_writer_add_put_buf_callback(const void *pBuf, int len, void *pUser) +{ + mz_zip_writer_add_state *pState = (mz_zip_writer_add_state *)pUser; + if ((int)pState->m_pZip->m_pWrite(pState->m_pZip->m_pIO_opaque, pState->m_cur_archive_file_ofs, pBuf, len) != len) + return MZ_FALSE; + + pState->m_cur_archive_file_ofs += len; + pState->m_comp_size += len; + return MZ_TRUE; +} + +#define MZ_ZIP64_MAX_LOCAL_EXTRA_FIELD_SIZE (sizeof(mz_uint16) * 2 + sizeof(mz_uint64) * 2) +#define MZ_ZIP64_MAX_CENTRAL_EXTRA_FIELD_SIZE (sizeof(mz_uint16) * 2 + sizeof(mz_uint64) * 3) +static mz_uint32 mz_zip_writer_create_zip64_extra_data(mz_uint8 *pBuf, mz_uint64 *pUncomp_size, mz_uint64 *pComp_size, mz_uint64 *pLocal_header_ofs) +{ + mz_uint8 *pDst = pBuf; + mz_uint32 field_size = 0; + + MZ_WRITE_LE16(pDst + 0, MZ_ZIP64_EXTENDED_INFORMATION_FIELD_HEADER_ID); + MZ_WRITE_LE16(pDst + 2, 0); + pDst += sizeof(mz_uint16) * 2; + + if (pUncomp_size) + { + MZ_WRITE_LE64(pDst, *pUncomp_size); + pDst += sizeof(mz_uint64); + field_size += sizeof(mz_uint64); + } + + if (pComp_size) + { + MZ_WRITE_LE64(pDst, *pComp_size); + pDst += sizeof(mz_uint64); + field_size += sizeof(mz_uint64); + } + + if (pLocal_header_ofs) + { + MZ_WRITE_LE64(pDst, *pLocal_header_ofs); + pDst += sizeof(mz_uint64); + field_size += sizeof(mz_uint64); + } + + MZ_WRITE_LE16(pBuf + 2, field_size); + + return (mz_uint32)(pDst - pBuf); +} + +static mz_bool mz_zip_writer_create_local_dir_header(mz_zip_archive *pZip, mz_uint8 *pDst, mz_uint16 filename_size, mz_uint16 extra_size, mz_uint64 uncomp_size, mz_uint64 comp_size, mz_uint32 uncomp_crc32, mz_uint16 method, mz_uint16 bit_flags, mz_uint16 dos_time, mz_uint16 dos_date) +{ + (void)pZip; + memset(pDst, 0, MZ_ZIP_LOCAL_DIR_HEADER_SIZE); + MZ_WRITE_LE32(pDst + MZ_ZIP_LDH_SIG_OFS, MZ_ZIP_LOCAL_DIR_HEADER_SIG); + MZ_WRITE_LE16(pDst + MZ_ZIP_LDH_VERSION_NEEDED_OFS, method ? 20 : 0); + MZ_WRITE_LE16(pDst + MZ_ZIP_LDH_BIT_FLAG_OFS, bit_flags); + MZ_WRITE_LE16(pDst + MZ_ZIP_LDH_METHOD_OFS, method); + MZ_WRITE_LE16(pDst + MZ_ZIP_LDH_FILE_TIME_OFS, dos_time); + MZ_WRITE_LE16(pDst + MZ_ZIP_LDH_FILE_DATE_OFS, dos_date); + MZ_WRITE_LE32(pDst + MZ_ZIP_LDH_CRC32_OFS, uncomp_crc32); + MZ_WRITE_LE32(pDst + MZ_ZIP_LDH_COMPRESSED_SIZE_OFS, MZ_MIN(comp_size, MZ_UINT32_MAX)); + MZ_WRITE_LE32(pDst + MZ_ZIP_LDH_DECOMPRESSED_SIZE_OFS, MZ_MIN(uncomp_size, MZ_UINT32_MAX)); + MZ_WRITE_LE16(pDst + MZ_ZIP_LDH_FILENAME_LEN_OFS, filename_size); + MZ_WRITE_LE16(pDst + MZ_ZIP_LDH_EXTRA_LEN_OFS, extra_size); + return MZ_TRUE; +} + +static mz_bool mz_zip_writer_create_central_dir_header(mz_zip_archive *pZip, mz_uint8 *pDst, + mz_uint16 filename_size, mz_uint16 extra_size, mz_uint16 comment_size, + mz_uint64 uncomp_size, mz_uint64 comp_size, mz_uint32 uncomp_crc32, + mz_uint16 method, mz_uint16 bit_flags, mz_uint16 dos_time, mz_uint16 dos_date, + mz_uint64 local_header_ofs, mz_uint32 ext_attributes) +{ + (void)pZip; + memset(pDst, 0, MZ_ZIP_CENTRAL_DIR_HEADER_SIZE); + MZ_WRITE_LE32(pDst + MZ_ZIP_CDH_SIG_OFS, MZ_ZIP_CENTRAL_DIR_HEADER_SIG); + MZ_WRITE_LE16(pDst + MZ_ZIP_CDH_VERSION_NEEDED_OFS, method ? 20 : 0); + MZ_WRITE_LE16(pDst + MZ_ZIP_CDH_BIT_FLAG_OFS, bit_flags); + MZ_WRITE_LE16(pDst + MZ_ZIP_CDH_METHOD_OFS, method); + MZ_WRITE_LE16(pDst + MZ_ZIP_CDH_FILE_TIME_OFS, dos_time); + MZ_WRITE_LE16(pDst + MZ_ZIP_CDH_FILE_DATE_OFS, dos_date); + MZ_WRITE_LE32(pDst + MZ_ZIP_CDH_CRC32_OFS, uncomp_crc32); + MZ_WRITE_LE32(pDst + MZ_ZIP_CDH_COMPRESSED_SIZE_OFS, MZ_MIN(comp_size, MZ_UINT32_MAX)); + MZ_WRITE_LE32(pDst + MZ_ZIP_CDH_DECOMPRESSED_SIZE_OFS, MZ_MIN(uncomp_size, MZ_UINT32_MAX)); + MZ_WRITE_LE16(pDst + MZ_ZIP_CDH_FILENAME_LEN_OFS, filename_size); + MZ_WRITE_LE16(pDst + MZ_ZIP_CDH_EXTRA_LEN_OFS, extra_size); + MZ_WRITE_LE16(pDst + MZ_ZIP_CDH_COMMENT_LEN_OFS, comment_size); + MZ_WRITE_LE32(pDst + MZ_ZIP_CDH_EXTERNAL_ATTR_OFS, ext_attributes); + MZ_WRITE_LE32(pDst + MZ_ZIP_CDH_LOCAL_HEADER_OFS, MZ_MIN(local_header_ofs, MZ_UINT32_MAX)); + return MZ_TRUE; +} + +static mz_bool mz_zip_writer_add_to_central_dir(mz_zip_archive *pZip, const char *pFilename, mz_uint16 filename_size, + const void *pExtra, mz_uint16 extra_size, const void *pComment, mz_uint16 comment_size, + mz_uint64 uncomp_size, mz_uint64 comp_size, mz_uint32 uncomp_crc32, + mz_uint16 method, mz_uint16 bit_flags, mz_uint16 dos_time, mz_uint16 dos_date, + mz_uint64 local_header_ofs, mz_uint32 ext_attributes, + const char *user_extra_data, mz_uint user_extra_data_len) +{ + mz_zip_internal_state *pState = pZip->m_pState; + mz_uint32 central_dir_ofs = (mz_uint32)pState->m_central_dir.m_size; + size_t orig_central_dir_size = pState->m_central_dir.m_size; + mz_uint8 central_dir_header[MZ_ZIP_CENTRAL_DIR_HEADER_SIZE]; + + if (!pZip->m_pState->m_zip64) + { + if (local_header_ofs > 0xFFFFFFFF) + return mz_zip_set_error(pZip, MZ_ZIP_FILE_TOO_LARGE); + } + + /* miniz doesn't support central dirs >= MZ_UINT32_MAX bytes yet */ + if (((mz_uint64)pState->m_central_dir.m_size + MZ_ZIP_CENTRAL_DIR_HEADER_SIZE + filename_size + extra_size + user_extra_data_len + comment_size) >= MZ_UINT32_MAX) + return mz_zip_set_error(pZip, MZ_ZIP_UNSUPPORTED_CDIR_SIZE); + + if (!mz_zip_writer_create_central_dir_header(pZip, central_dir_header, filename_size, (mz_uint16)(extra_size + user_extra_data_len), comment_size, uncomp_size, comp_size, uncomp_crc32, method, bit_flags, dos_time, dos_date, local_header_ofs, ext_attributes)) + return mz_zip_set_error(pZip, MZ_ZIP_INTERNAL_ERROR); + + if ((!mz_zip_array_push_back(pZip, &pState->m_central_dir, central_dir_header, MZ_ZIP_CENTRAL_DIR_HEADER_SIZE)) || + (!mz_zip_array_push_back(pZip, &pState->m_central_dir, pFilename, filename_size)) || + (!mz_zip_array_push_back(pZip, &pState->m_central_dir, pExtra, extra_size)) || + (!mz_zip_array_push_back(pZip, &pState->m_central_dir, user_extra_data, user_extra_data_len)) || + (!mz_zip_array_push_back(pZip, &pState->m_central_dir, pComment, comment_size)) || + (!mz_zip_array_push_back(pZip, &pState->m_central_dir_offsets, ¢ral_dir_ofs, 1))) + { + /* Try to resize the central directory array back into its original state. */ + mz_zip_array_resize(pZip, &pState->m_central_dir, orig_central_dir_size, MZ_FALSE); + return mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); + } + + return MZ_TRUE; +} + +static mz_bool mz_zip_writer_validate_archive_name(const char *pArchive_name) +{ + /* Basic ZIP archive filename validity checks: Valid filenames cannot start with a forward slash, cannot contain a drive letter, and cannot use DOS-style backward slashes. */ + if (*pArchive_name == '/') + return MZ_FALSE; + + /* Making sure the name does not contain drive letters or DOS style backward slashes is the responsibility of the program using miniz*/ + + return MZ_TRUE; +} + +static mz_uint mz_zip_writer_compute_padding_needed_for_file_alignment(mz_zip_archive *pZip) +{ + mz_uint32 n; + if (!pZip->m_file_offset_alignment) + return 0; + n = (mz_uint32)(pZip->m_archive_size & (pZip->m_file_offset_alignment - 1)); + return (mz_uint)((pZip->m_file_offset_alignment - n) & (pZip->m_file_offset_alignment - 1)); +} + +static mz_bool mz_zip_writer_write_zeros(mz_zip_archive *pZip, mz_uint64 cur_file_ofs, mz_uint32 n) +{ + char buf[4096]; + memset(buf, 0, MZ_MIN(sizeof(buf), n)); + while (n) + { + mz_uint32 s = MZ_MIN(sizeof(buf), n); + if (pZip->m_pWrite(pZip->m_pIO_opaque, cur_file_ofs, buf, s) != s) + return mz_zip_set_error(pZip, MZ_ZIP_FILE_WRITE_FAILED); + + cur_file_ofs += s; + n -= s; + } + return MZ_TRUE; +} + +mz_bool mz_zip_writer_add_mem_ex(mz_zip_archive *pZip, const char *pArchive_name, const void *pBuf, size_t buf_size, const void *pComment, mz_uint16 comment_size, mz_uint level_and_flags, + mz_uint64 uncomp_size, mz_uint32 uncomp_crc32) +{ + return mz_zip_writer_add_mem_ex_v2(pZip, pArchive_name, pBuf, buf_size, pComment, comment_size, level_and_flags, uncomp_size, uncomp_crc32, NULL, NULL, 0, NULL, 0); +} + +mz_bool mz_zip_writer_add_mem_ex_v2(mz_zip_archive *pZip, const char *pArchive_name, const void *pBuf, size_t buf_size, const void *pComment, mz_uint16 comment_size, + mz_uint level_and_flags, mz_uint64 uncomp_size, mz_uint32 uncomp_crc32, MZ_TIME_T *last_modified, + const char *user_extra_data, mz_uint user_extra_data_len, const char *user_extra_data_central, mz_uint user_extra_data_central_len) +{ + mz_uint16 method = 0, dos_time = 0, dos_date = 0; + mz_uint level, ext_attributes = 0, num_alignment_padding_bytes; + mz_uint64 local_dir_header_ofs = pZip->m_archive_size, cur_archive_file_ofs = pZip->m_archive_size, comp_size = 0; + size_t archive_name_size; + mz_uint8 local_dir_header[MZ_ZIP_LOCAL_DIR_HEADER_SIZE]; + tdefl_compressor *pComp = NULL; + mz_bool store_data_uncompressed; + mz_zip_internal_state *pState; + mz_uint8 *pExtra_data = NULL; + mz_uint32 extra_size = 0; + mz_uint8 extra_data[MZ_ZIP64_MAX_CENTRAL_EXTRA_FIELD_SIZE]; + mz_uint16 bit_flags = 0; + + if ((int)level_and_flags < 0) + level_and_flags = MZ_DEFAULT_LEVEL; + + if (uncomp_size || (buf_size && !(level_and_flags & MZ_ZIP_FLAG_COMPRESSED_DATA))) + bit_flags |= MZ_ZIP_LDH_BIT_FLAG_HAS_LOCATOR; + + if (!(level_and_flags & MZ_ZIP_FLAG_ASCII_FILENAME)) + bit_flags |= MZ_ZIP_GENERAL_PURPOSE_BIT_FLAG_UTF8; + + level = level_and_flags & 0xF; + store_data_uncompressed = ((!level) || (level_and_flags & MZ_ZIP_FLAG_COMPRESSED_DATA)); + + if ((!pZip) || (!pZip->m_pState) || (pZip->m_zip_mode != MZ_ZIP_MODE_WRITING) || ((buf_size) && (!pBuf)) || (!pArchive_name) || ((comment_size) && (!pComment)) || (level > MZ_UBER_COMPRESSION)) + return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); + + pState = pZip->m_pState; + + if (pState->m_zip64) + { + if (pZip->m_total_files == MZ_UINT32_MAX) + return mz_zip_set_error(pZip, MZ_ZIP_TOO_MANY_FILES); + } + else + { + if (pZip->m_total_files == MZ_UINT16_MAX) + { + pState->m_zip64 = MZ_TRUE; + /*return mz_zip_set_error(pZip, MZ_ZIP_TOO_MANY_FILES); */ + } + if ((buf_size > 0xFFFFFFFF) || (uncomp_size > 0xFFFFFFFF)) + { + pState->m_zip64 = MZ_TRUE; + /*return mz_zip_set_error(pZip, MZ_ZIP_ARCHIVE_TOO_LARGE); */ + } + } + + if ((!(level_and_flags & MZ_ZIP_FLAG_COMPRESSED_DATA)) && (uncomp_size)) + return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); + + if (!mz_zip_writer_validate_archive_name(pArchive_name)) + return mz_zip_set_error(pZip, MZ_ZIP_INVALID_FILENAME); + +#ifndef MINIZ_NO_TIME + if (last_modified != NULL) + { + mz_zip_time_t_to_dos_time(*last_modified, &dos_time, &dos_date); + } + else + { + MZ_TIME_T cur_time; + time(&cur_time); + mz_zip_time_t_to_dos_time(cur_time, &dos_time, &dos_date); + } +#endif /* #ifndef MINIZ_NO_TIME */ + + if (!(level_and_flags & MZ_ZIP_FLAG_COMPRESSED_DATA)) + { + uncomp_crc32 = (mz_uint32)mz_crc32(MZ_CRC32_INIT, (const mz_uint8 *)pBuf, buf_size); + uncomp_size = buf_size; + if (uncomp_size <= 3) + { + level = 0; + store_data_uncompressed = MZ_TRUE; + } + } + + archive_name_size = strlen(pArchive_name); + if (archive_name_size > MZ_UINT16_MAX) + return mz_zip_set_error(pZip, MZ_ZIP_INVALID_FILENAME); + + num_alignment_padding_bytes = mz_zip_writer_compute_padding_needed_for_file_alignment(pZip); + + /* miniz doesn't support central dirs >= MZ_UINT32_MAX bytes yet */ + if (((mz_uint64)pState->m_central_dir.m_size + MZ_ZIP_CENTRAL_DIR_HEADER_SIZE + archive_name_size + MZ_ZIP64_MAX_CENTRAL_EXTRA_FIELD_SIZE + comment_size) >= MZ_UINT32_MAX) + return mz_zip_set_error(pZip, MZ_ZIP_UNSUPPORTED_CDIR_SIZE); + + if (!pState->m_zip64) + { + /* Bail early if the archive would obviously become too large */ + if ((pZip->m_archive_size + num_alignment_padding_bytes + MZ_ZIP_LOCAL_DIR_HEADER_SIZE + archive_name_size + + MZ_ZIP_CENTRAL_DIR_HEADER_SIZE + archive_name_size + comment_size + user_extra_data_len + + pState->m_central_dir.m_size + MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIZE + user_extra_data_central_len + + MZ_ZIP_DATA_DESCRIPTER_SIZE32) > 0xFFFFFFFF) + { + pState->m_zip64 = MZ_TRUE; + /*return mz_zip_set_error(pZip, MZ_ZIP_ARCHIVE_TOO_LARGE); */ + } + } + + if ((archive_name_size) && (pArchive_name[archive_name_size - 1] == '/')) + { + /* Set DOS Subdirectory attribute bit. */ + ext_attributes |= MZ_ZIP_DOS_DIR_ATTRIBUTE_BITFLAG; + + /* Subdirectories cannot contain data. */ + if ((buf_size) || (uncomp_size)) + return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); + } + + /* Try to do any allocations before writing to the archive, so if an allocation fails the file remains unmodified. (A good idea if we're doing an in-place modification.) */ + if ((!mz_zip_array_ensure_room(pZip, &pState->m_central_dir, MZ_ZIP_CENTRAL_DIR_HEADER_SIZE + archive_name_size + comment_size + (pState->m_zip64 ? MZ_ZIP64_MAX_CENTRAL_EXTRA_FIELD_SIZE : 0))) || (!mz_zip_array_ensure_room(pZip, &pState->m_central_dir_offsets, 1))) + return mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); + + if ((!store_data_uncompressed) && (buf_size)) + { + if (NULL == (pComp = (tdefl_compressor *)pZip->m_pAlloc(pZip->m_pAlloc_opaque, 1, sizeof(tdefl_compressor)))) + return mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); + } + + if (!mz_zip_writer_write_zeros(pZip, cur_archive_file_ofs, num_alignment_padding_bytes)) + { + pZip->m_pFree(pZip->m_pAlloc_opaque, pComp); + return MZ_FALSE; + } + + local_dir_header_ofs += num_alignment_padding_bytes; + if (pZip->m_file_offset_alignment) + { + MZ_ASSERT((local_dir_header_ofs & (pZip->m_file_offset_alignment - 1)) == 0); + } + cur_archive_file_ofs += num_alignment_padding_bytes; + + MZ_CLEAR_OBJ(local_dir_header); + + if (!store_data_uncompressed || (level_and_flags & MZ_ZIP_FLAG_COMPRESSED_DATA)) + { + method = MZ_DEFLATED; + } + + if (pState->m_zip64) + { + if (uncomp_size >= MZ_UINT32_MAX || local_dir_header_ofs >= MZ_UINT32_MAX) + { + pExtra_data = extra_data; + extra_size = mz_zip_writer_create_zip64_extra_data(extra_data, (uncomp_size >= MZ_UINT32_MAX) ? &uncomp_size : NULL, + (uncomp_size >= MZ_UINT32_MAX) ? &comp_size : NULL, (local_dir_header_ofs >= MZ_UINT32_MAX) ? &local_dir_header_ofs : NULL); + } + + if (!mz_zip_writer_create_local_dir_header(pZip, local_dir_header, (mz_uint16)archive_name_size, (mz_uint16)(extra_size + user_extra_data_len), 0, 0, 0, method, bit_flags, dos_time, dos_date)) + return mz_zip_set_error(pZip, MZ_ZIP_INTERNAL_ERROR); + + if (pZip->m_pWrite(pZip->m_pIO_opaque, local_dir_header_ofs, local_dir_header, sizeof(local_dir_header)) != sizeof(local_dir_header)) + return mz_zip_set_error(pZip, MZ_ZIP_FILE_WRITE_FAILED); + + cur_archive_file_ofs += sizeof(local_dir_header); + + if (pZip->m_pWrite(pZip->m_pIO_opaque, cur_archive_file_ofs, pArchive_name, archive_name_size) != archive_name_size) + { + pZip->m_pFree(pZip->m_pAlloc_opaque, pComp); + return mz_zip_set_error(pZip, MZ_ZIP_FILE_WRITE_FAILED); + } + cur_archive_file_ofs += archive_name_size; + + if (pExtra_data != NULL) + { + if (pZip->m_pWrite(pZip->m_pIO_opaque, cur_archive_file_ofs, extra_data, extra_size) != extra_size) + return mz_zip_set_error(pZip, MZ_ZIP_FILE_WRITE_FAILED); + + cur_archive_file_ofs += extra_size; + } + } + else + { + if ((comp_size > MZ_UINT32_MAX) || (cur_archive_file_ofs > MZ_UINT32_MAX)) + return mz_zip_set_error(pZip, MZ_ZIP_ARCHIVE_TOO_LARGE); + if (!mz_zip_writer_create_local_dir_header(pZip, local_dir_header, (mz_uint16)archive_name_size, (mz_uint16)user_extra_data_len, 0, 0, 0, method, bit_flags, dos_time, dos_date)) + return mz_zip_set_error(pZip, MZ_ZIP_INTERNAL_ERROR); + + if (pZip->m_pWrite(pZip->m_pIO_opaque, local_dir_header_ofs, local_dir_header, sizeof(local_dir_header)) != sizeof(local_dir_header)) + return mz_zip_set_error(pZip, MZ_ZIP_FILE_WRITE_FAILED); + + cur_archive_file_ofs += sizeof(local_dir_header); + + if (pZip->m_pWrite(pZip->m_pIO_opaque, cur_archive_file_ofs, pArchive_name, archive_name_size) != archive_name_size) + { + pZip->m_pFree(pZip->m_pAlloc_opaque, pComp); + return mz_zip_set_error(pZip, MZ_ZIP_FILE_WRITE_FAILED); + } + cur_archive_file_ofs += archive_name_size; + } + + if (user_extra_data_len > 0) + { + if (pZip->m_pWrite(pZip->m_pIO_opaque, cur_archive_file_ofs, user_extra_data, user_extra_data_len) != user_extra_data_len) + return mz_zip_set_error(pZip, MZ_ZIP_FILE_WRITE_FAILED); + + cur_archive_file_ofs += user_extra_data_len; + } + + if (store_data_uncompressed) + { + if (pZip->m_pWrite(pZip->m_pIO_opaque, cur_archive_file_ofs, pBuf, buf_size) != buf_size) + { + pZip->m_pFree(pZip->m_pAlloc_opaque, pComp); + return mz_zip_set_error(pZip, MZ_ZIP_FILE_WRITE_FAILED); + } + + cur_archive_file_ofs += buf_size; + comp_size = buf_size; + } + else if (buf_size) + { + mz_zip_writer_add_state state; + + state.m_pZip = pZip; + state.m_cur_archive_file_ofs = cur_archive_file_ofs; + state.m_comp_size = 0; + + if ((tdefl_init(pComp, mz_zip_writer_add_put_buf_callback, &state, tdefl_create_comp_flags_from_zip_params(level, -15, MZ_DEFAULT_STRATEGY)) != TDEFL_STATUS_OKAY) || + (tdefl_compress_buffer(pComp, pBuf, buf_size, TDEFL_FINISH) != TDEFL_STATUS_DONE)) + { + pZip->m_pFree(pZip->m_pAlloc_opaque, pComp); + return mz_zip_set_error(pZip, MZ_ZIP_COMPRESSION_FAILED); + } + + comp_size = state.m_comp_size; + cur_archive_file_ofs = state.m_cur_archive_file_ofs; + } + + pZip->m_pFree(pZip->m_pAlloc_opaque, pComp); + pComp = NULL; + + if (uncomp_size) + { + mz_uint8 local_dir_footer[MZ_ZIP_DATA_DESCRIPTER_SIZE64]; + mz_uint32 local_dir_footer_size = MZ_ZIP_DATA_DESCRIPTER_SIZE32; + + MZ_ASSERT(bit_flags & MZ_ZIP_LDH_BIT_FLAG_HAS_LOCATOR); + + MZ_WRITE_LE32(local_dir_footer + 0, MZ_ZIP_DATA_DESCRIPTOR_ID); + MZ_WRITE_LE32(local_dir_footer + 4, uncomp_crc32); + if (pExtra_data == NULL) + { + if (comp_size > MZ_UINT32_MAX) + return mz_zip_set_error(pZip, MZ_ZIP_ARCHIVE_TOO_LARGE); + + MZ_WRITE_LE32(local_dir_footer + 8, comp_size); + MZ_WRITE_LE32(local_dir_footer + 12, uncomp_size); + } + else + { + MZ_WRITE_LE64(local_dir_footer + 8, comp_size); + MZ_WRITE_LE64(local_dir_footer + 16, uncomp_size); + local_dir_footer_size = MZ_ZIP_DATA_DESCRIPTER_SIZE64; + } + + if (pZip->m_pWrite(pZip->m_pIO_opaque, cur_archive_file_ofs, local_dir_footer, local_dir_footer_size) != local_dir_footer_size) + return MZ_FALSE; + + cur_archive_file_ofs += local_dir_footer_size; + } + + if (pExtra_data != NULL) + { + extra_size = mz_zip_writer_create_zip64_extra_data(extra_data, (uncomp_size >= MZ_UINT32_MAX) ? &uncomp_size : NULL, + (uncomp_size >= MZ_UINT32_MAX) ? &comp_size : NULL, (local_dir_header_ofs >= MZ_UINT32_MAX) ? &local_dir_header_ofs : NULL); + } + + if (!mz_zip_writer_add_to_central_dir(pZip, pArchive_name, (mz_uint16)archive_name_size, pExtra_data, (mz_uint16)extra_size, pComment, + comment_size, uncomp_size, comp_size, uncomp_crc32, method, bit_flags, dos_time, dos_date, local_dir_header_ofs, ext_attributes, + user_extra_data_central, user_extra_data_central_len)) + return MZ_FALSE; + + pZip->m_total_files++; + pZip->m_archive_size = cur_archive_file_ofs; + + return MZ_TRUE; +} + +mz_bool mz_zip_writer_add_read_buf_callback(mz_zip_archive *pZip, const char *pArchive_name, mz_file_read_func read_callback, void* callback_opaque, mz_uint64 max_size, const MZ_TIME_T *pFile_time, const void *pComment, mz_uint16 comment_size, mz_uint level_and_flags, + const char *user_extra_data, mz_uint user_extra_data_len, const char *user_extra_data_central, mz_uint user_extra_data_central_len) +{ + mz_uint16 gen_flags = (level_and_flags & MZ_ZIP_FLAG_WRITE_HEADER_SET_SIZE) ? 0 : MZ_ZIP_LDH_BIT_FLAG_HAS_LOCATOR; + mz_uint uncomp_crc32 = MZ_CRC32_INIT, level, num_alignment_padding_bytes; + mz_uint16 method = 0, dos_time = 0, dos_date = 0, ext_attributes = 0; + mz_uint64 local_dir_header_ofs, cur_archive_file_ofs = pZip->m_archive_size, uncomp_size = 0, comp_size = 0; + size_t archive_name_size; + mz_uint8 local_dir_header[MZ_ZIP_LOCAL_DIR_HEADER_SIZE]; + mz_uint8 *pExtra_data = NULL; + mz_uint32 extra_size = 0; + mz_uint8 extra_data[MZ_ZIP64_MAX_CENTRAL_EXTRA_FIELD_SIZE]; + mz_zip_internal_state *pState; + mz_uint64 file_ofs = 0, cur_archive_header_file_ofs; + + if (!(level_and_flags & MZ_ZIP_FLAG_ASCII_FILENAME)) + gen_flags |= MZ_ZIP_GENERAL_PURPOSE_BIT_FLAG_UTF8; + + if ((int)level_and_flags < 0) + level_and_flags = MZ_DEFAULT_LEVEL; + level = level_and_flags & 0xF; + + /* Sanity checks */ + if ((!pZip) || (!pZip->m_pState) || (pZip->m_zip_mode != MZ_ZIP_MODE_WRITING) || (!pArchive_name) || ((comment_size) && (!pComment)) || (level > MZ_UBER_COMPRESSION)) + return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); + + pState = pZip->m_pState; + + if ((!pState->m_zip64) && (max_size > MZ_UINT32_MAX)) + { + /* Source file is too large for non-zip64 */ + /*return mz_zip_set_error(pZip, MZ_ZIP_ARCHIVE_TOO_LARGE); */ + pState->m_zip64 = MZ_TRUE; + } + + /* We could support this, but why? */ + if (level_and_flags & MZ_ZIP_FLAG_COMPRESSED_DATA) + return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); + + if (!mz_zip_writer_validate_archive_name(pArchive_name)) + return mz_zip_set_error(pZip, MZ_ZIP_INVALID_FILENAME); + + if (pState->m_zip64) + { + if (pZip->m_total_files == MZ_UINT32_MAX) + return mz_zip_set_error(pZip, MZ_ZIP_TOO_MANY_FILES); + } + else + { + if (pZip->m_total_files == MZ_UINT16_MAX) + { + pState->m_zip64 = MZ_TRUE; + /*return mz_zip_set_error(pZip, MZ_ZIP_TOO_MANY_FILES); */ + } + } + + archive_name_size = strlen(pArchive_name); + if (archive_name_size > MZ_UINT16_MAX) + return mz_zip_set_error(pZip, MZ_ZIP_INVALID_FILENAME); + + num_alignment_padding_bytes = mz_zip_writer_compute_padding_needed_for_file_alignment(pZip); + + /* miniz doesn't support central dirs >= MZ_UINT32_MAX bytes yet */ + if (((mz_uint64)pState->m_central_dir.m_size + MZ_ZIP_CENTRAL_DIR_HEADER_SIZE + archive_name_size + MZ_ZIP64_MAX_CENTRAL_EXTRA_FIELD_SIZE + comment_size) >= MZ_UINT32_MAX) + return mz_zip_set_error(pZip, MZ_ZIP_UNSUPPORTED_CDIR_SIZE); + + if (!pState->m_zip64) + { + /* Bail early if the archive would obviously become too large */ + if ((pZip->m_archive_size + num_alignment_padding_bytes + MZ_ZIP_LOCAL_DIR_HEADER_SIZE + archive_name_size + MZ_ZIP_CENTRAL_DIR_HEADER_SIZE + + archive_name_size + comment_size + user_extra_data_len + pState->m_central_dir.m_size + MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIZE + 1024 + + MZ_ZIP_DATA_DESCRIPTER_SIZE32 + user_extra_data_central_len) > 0xFFFFFFFF) + { + pState->m_zip64 = MZ_TRUE; + /*return mz_zip_set_error(pZip, MZ_ZIP_ARCHIVE_TOO_LARGE); */ + } + } + +#ifndef MINIZ_NO_TIME + if (pFile_time) + { + mz_zip_time_t_to_dos_time(*pFile_time, &dos_time, &dos_date); + } +#endif + + if (max_size <= 3) + level = 0; + + if (!mz_zip_writer_write_zeros(pZip, cur_archive_file_ofs, num_alignment_padding_bytes)) + { + return mz_zip_set_error(pZip, MZ_ZIP_FILE_WRITE_FAILED); + } + + cur_archive_file_ofs += num_alignment_padding_bytes; + local_dir_header_ofs = cur_archive_file_ofs; + + if (pZip->m_file_offset_alignment) + { + MZ_ASSERT((cur_archive_file_ofs & (pZip->m_file_offset_alignment - 1)) == 0); + } + + if (max_size && level) + { + method = MZ_DEFLATED; + } + + MZ_CLEAR_OBJ(local_dir_header); + if (pState->m_zip64) + { + if (max_size >= MZ_UINT32_MAX || local_dir_header_ofs >= MZ_UINT32_MAX) + { + pExtra_data = extra_data; + if (level_and_flags & MZ_ZIP_FLAG_WRITE_HEADER_SET_SIZE) + extra_size = mz_zip_writer_create_zip64_extra_data(extra_data, (max_size >= MZ_UINT32_MAX) ? &uncomp_size : NULL, + (max_size >= MZ_UINT32_MAX) ? &comp_size : NULL, + (local_dir_header_ofs >= MZ_UINT32_MAX) ? &local_dir_header_ofs : NULL); + else + extra_size = mz_zip_writer_create_zip64_extra_data(extra_data, NULL, + NULL, + (local_dir_header_ofs >= MZ_UINT32_MAX) ? &local_dir_header_ofs : NULL); + } + + if (!mz_zip_writer_create_local_dir_header(pZip, local_dir_header, (mz_uint16)archive_name_size, (mz_uint16)(extra_size + user_extra_data_len), 0, 0, 0, method, gen_flags, dos_time, dos_date)) + return mz_zip_set_error(pZip, MZ_ZIP_INTERNAL_ERROR); + + if (pZip->m_pWrite(pZip->m_pIO_opaque, cur_archive_file_ofs, local_dir_header, sizeof(local_dir_header)) != sizeof(local_dir_header)) + return mz_zip_set_error(pZip, MZ_ZIP_FILE_WRITE_FAILED); + + cur_archive_file_ofs += sizeof(local_dir_header); + + if (pZip->m_pWrite(pZip->m_pIO_opaque, cur_archive_file_ofs, pArchive_name, archive_name_size) != archive_name_size) + { + return mz_zip_set_error(pZip, MZ_ZIP_FILE_WRITE_FAILED); + } + + cur_archive_file_ofs += archive_name_size; + + if (pZip->m_pWrite(pZip->m_pIO_opaque, cur_archive_file_ofs, extra_data, extra_size) != extra_size) + return mz_zip_set_error(pZip, MZ_ZIP_FILE_WRITE_FAILED); + + cur_archive_file_ofs += extra_size; + } + else + { + if ((comp_size > MZ_UINT32_MAX) || (cur_archive_file_ofs > MZ_UINT32_MAX)) + return mz_zip_set_error(pZip, MZ_ZIP_ARCHIVE_TOO_LARGE); + if (!mz_zip_writer_create_local_dir_header(pZip, local_dir_header, (mz_uint16)archive_name_size, (mz_uint16)user_extra_data_len, 0, 0, 0, method, gen_flags, dos_time, dos_date)) + return mz_zip_set_error(pZip, MZ_ZIP_INTERNAL_ERROR); + + if (pZip->m_pWrite(pZip->m_pIO_opaque, cur_archive_file_ofs, local_dir_header, sizeof(local_dir_header)) != sizeof(local_dir_header)) + return mz_zip_set_error(pZip, MZ_ZIP_FILE_WRITE_FAILED); + + cur_archive_file_ofs += sizeof(local_dir_header); + + if (pZip->m_pWrite(pZip->m_pIO_opaque, cur_archive_file_ofs, pArchive_name, archive_name_size) != archive_name_size) + { + return mz_zip_set_error(pZip, MZ_ZIP_FILE_WRITE_FAILED); + } + + cur_archive_file_ofs += archive_name_size; + } + + if (user_extra_data_len > 0) + { + if (pZip->m_pWrite(pZip->m_pIO_opaque, cur_archive_file_ofs, user_extra_data, user_extra_data_len) != user_extra_data_len) + return mz_zip_set_error(pZip, MZ_ZIP_FILE_WRITE_FAILED); + + cur_archive_file_ofs += user_extra_data_len; + } + + if (max_size) + { + void *pRead_buf = pZip->m_pAlloc(pZip->m_pAlloc_opaque, 1, MZ_ZIP_MAX_IO_BUF_SIZE); + if (!pRead_buf) + { + return mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); + } + + if (!level) + { + while (1) + { + size_t n = read_callback(callback_opaque, file_ofs, pRead_buf, MZ_ZIP_MAX_IO_BUF_SIZE); + if (n == 0) + break; + + if ((n > MZ_ZIP_MAX_IO_BUF_SIZE) || (file_ofs + n > max_size)) + { + pZip->m_pFree(pZip->m_pAlloc_opaque, pRead_buf); + return mz_zip_set_error(pZip, MZ_ZIP_FILE_READ_FAILED); + } + if (pZip->m_pWrite(pZip->m_pIO_opaque, cur_archive_file_ofs, pRead_buf, n) != n) + { + pZip->m_pFree(pZip->m_pAlloc_opaque, pRead_buf); + return mz_zip_set_error(pZip, MZ_ZIP_FILE_WRITE_FAILED); + } + file_ofs += n; + uncomp_crc32 = (mz_uint32)mz_crc32(uncomp_crc32, (const mz_uint8 *)pRead_buf, n); + cur_archive_file_ofs += n; + } + uncomp_size = file_ofs; + comp_size = uncomp_size; + } + else + { + mz_bool result = MZ_FALSE; + mz_zip_writer_add_state state; + tdefl_compressor *pComp = (tdefl_compressor *)pZip->m_pAlloc(pZip->m_pAlloc_opaque, 1, sizeof(tdefl_compressor)); + if (!pComp) + { + pZip->m_pFree(pZip->m_pAlloc_opaque, pRead_buf); + return mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); + } + + state.m_pZip = pZip; + state.m_cur_archive_file_ofs = cur_archive_file_ofs; + state.m_comp_size = 0; + + if (tdefl_init(pComp, mz_zip_writer_add_put_buf_callback, &state, tdefl_create_comp_flags_from_zip_params(level, -15, MZ_DEFAULT_STRATEGY)) != TDEFL_STATUS_OKAY) + { + pZip->m_pFree(pZip->m_pAlloc_opaque, pComp); + pZip->m_pFree(pZip->m_pAlloc_opaque, pRead_buf); + return mz_zip_set_error(pZip, MZ_ZIP_INTERNAL_ERROR); + } + + for (;;) + { + tdefl_status status; + tdefl_flush flush = TDEFL_NO_FLUSH; + + size_t n = read_callback(callback_opaque, file_ofs, pRead_buf, MZ_ZIP_MAX_IO_BUF_SIZE); + if ((n > MZ_ZIP_MAX_IO_BUF_SIZE) || (file_ofs + n > max_size)) + { + mz_zip_set_error(pZip, MZ_ZIP_FILE_READ_FAILED); + break; + } + + file_ofs += n; + uncomp_crc32 = (mz_uint32)mz_crc32(uncomp_crc32, (const mz_uint8 *)pRead_buf, n); + + if (pZip->m_pNeeds_keepalive != NULL && pZip->m_pNeeds_keepalive(pZip->m_pIO_opaque)) + flush = TDEFL_FULL_FLUSH; + + if (n == 0) + flush = TDEFL_FINISH; + + status = tdefl_compress_buffer(pComp, pRead_buf, n, flush); + if (status == TDEFL_STATUS_DONE) + { + result = MZ_TRUE; + break; + } + else if (status != TDEFL_STATUS_OKAY) + { + mz_zip_set_error(pZip, MZ_ZIP_COMPRESSION_FAILED); + break; + } + } + + pZip->m_pFree(pZip->m_pAlloc_opaque, pComp); + + if (!result) + { + pZip->m_pFree(pZip->m_pAlloc_opaque, pRead_buf); + return MZ_FALSE; + } + + uncomp_size = file_ofs; + comp_size = state.m_comp_size; + cur_archive_file_ofs = state.m_cur_archive_file_ofs; + } + + pZip->m_pFree(pZip->m_pAlloc_opaque, pRead_buf); + } + + if (!(level_and_flags & MZ_ZIP_FLAG_WRITE_HEADER_SET_SIZE)) + { + mz_uint8 local_dir_footer[MZ_ZIP_DATA_DESCRIPTER_SIZE64]; + mz_uint32 local_dir_footer_size = MZ_ZIP_DATA_DESCRIPTER_SIZE32; + + MZ_WRITE_LE32(local_dir_footer + 0, MZ_ZIP_DATA_DESCRIPTOR_ID); + MZ_WRITE_LE32(local_dir_footer + 4, uncomp_crc32); + if (pExtra_data == NULL) + { + if (comp_size > MZ_UINT32_MAX) + return mz_zip_set_error(pZip, MZ_ZIP_ARCHIVE_TOO_LARGE); + + MZ_WRITE_LE32(local_dir_footer + 8, comp_size); + MZ_WRITE_LE32(local_dir_footer + 12, uncomp_size); + } + else + { + MZ_WRITE_LE64(local_dir_footer + 8, comp_size); + MZ_WRITE_LE64(local_dir_footer + 16, uncomp_size); + local_dir_footer_size = MZ_ZIP_DATA_DESCRIPTER_SIZE64; + } + + if (pZip->m_pWrite(pZip->m_pIO_opaque, cur_archive_file_ofs, local_dir_footer, local_dir_footer_size) != local_dir_footer_size) + return MZ_FALSE; + + cur_archive_file_ofs += local_dir_footer_size; + } + + if (level_and_flags & MZ_ZIP_FLAG_WRITE_HEADER_SET_SIZE) + { + if (pExtra_data != NULL) + { + extra_size = mz_zip_writer_create_zip64_extra_data(extra_data, (max_size >= MZ_UINT32_MAX) ? &uncomp_size : NULL, + (max_size >= MZ_UINT32_MAX) ? &comp_size : NULL, (local_dir_header_ofs >= MZ_UINT32_MAX) ? &local_dir_header_ofs : NULL); + } + + if (!mz_zip_writer_create_local_dir_header(pZip, local_dir_header, + (mz_uint16)archive_name_size, (mz_uint16)(extra_size + user_extra_data_len), + (max_size >= MZ_UINT32_MAX) ? MZ_UINT32_MAX : uncomp_size, + (max_size >= MZ_UINT32_MAX) ? MZ_UINT32_MAX : comp_size, + uncomp_crc32, method, gen_flags, dos_time, dos_date)) + return mz_zip_set_error(pZip, MZ_ZIP_INTERNAL_ERROR); + + cur_archive_header_file_ofs = local_dir_header_ofs; + + if (pZip->m_pWrite(pZip->m_pIO_opaque, cur_archive_header_file_ofs, local_dir_header, sizeof(local_dir_header)) != sizeof(local_dir_header)) + return mz_zip_set_error(pZip, MZ_ZIP_FILE_WRITE_FAILED); + + if (pExtra_data != NULL) + { + cur_archive_header_file_ofs += sizeof(local_dir_header); + + if (pZip->m_pWrite(pZip->m_pIO_opaque, cur_archive_header_file_ofs, pArchive_name, archive_name_size) != archive_name_size) + { + return mz_zip_set_error(pZip, MZ_ZIP_FILE_WRITE_FAILED); + } + + cur_archive_header_file_ofs += archive_name_size; + + if (pZip->m_pWrite(pZip->m_pIO_opaque, cur_archive_header_file_ofs, extra_data, extra_size) != extra_size) + return mz_zip_set_error(pZip, MZ_ZIP_FILE_WRITE_FAILED); + + cur_archive_header_file_ofs += extra_size; + } + } + + if (pExtra_data != NULL) + { + extra_size = mz_zip_writer_create_zip64_extra_data(extra_data, (uncomp_size >= MZ_UINT32_MAX) ? &uncomp_size : NULL, + (uncomp_size >= MZ_UINT32_MAX) ? &comp_size : NULL, (local_dir_header_ofs >= MZ_UINT32_MAX) ? &local_dir_header_ofs : NULL); + } + + if (!mz_zip_writer_add_to_central_dir(pZip, pArchive_name, (mz_uint16)archive_name_size, pExtra_data, (mz_uint16)extra_size, pComment, comment_size, + uncomp_size, comp_size, uncomp_crc32, method, gen_flags, dos_time, dos_date, local_dir_header_ofs, ext_attributes, + user_extra_data_central, user_extra_data_central_len)) + return MZ_FALSE; + + pZip->m_total_files++; + pZip->m_archive_size = cur_archive_file_ofs; + + return MZ_TRUE; +} + +#ifndef MINIZ_NO_STDIO + +static size_t mz_file_read_func_stdio(void *pOpaque, mz_uint64 file_ofs, void *pBuf, size_t n) +{ + MZ_FILE *pSrc_file = (MZ_FILE *)pOpaque; + mz_int64 cur_ofs = MZ_FTELL64(pSrc_file); + + if (((mz_int64)file_ofs < 0) || (((cur_ofs != (mz_int64)file_ofs)) && (MZ_FSEEK64(pSrc_file, (mz_int64)file_ofs, SEEK_SET)))) + return 0; + + return MZ_FREAD(pBuf, 1, n, pSrc_file); +} + +mz_bool mz_zip_writer_add_cfile(mz_zip_archive *pZip, const char *pArchive_name, MZ_FILE *pSrc_file, mz_uint64 max_size, const MZ_TIME_T *pFile_time, const void *pComment, mz_uint16 comment_size, mz_uint level_and_flags, + const char *user_extra_data, mz_uint user_extra_data_len, const char *user_extra_data_central, mz_uint user_extra_data_central_len) +{ + return mz_zip_writer_add_read_buf_callback(pZip, pArchive_name, mz_file_read_func_stdio, pSrc_file, max_size, pFile_time, pComment, comment_size, level_and_flags, + user_extra_data, user_extra_data_len, user_extra_data_central, user_extra_data_central_len); +} + +mz_bool mz_zip_writer_add_file(mz_zip_archive *pZip, const char *pArchive_name, const char *pSrc_filename, const void *pComment, mz_uint16 comment_size, mz_uint level_and_flags) +{ + MZ_FILE *pSrc_file = NULL; + mz_uint64 uncomp_size = 0; + MZ_TIME_T file_modified_time; + MZ_TIME_T *pFile_time = NULL; + mz_bool status; + + memset(&file_modified_time, 0, sizeof(file_modified_time)); + +#if !defined(MINIZ_NO_TIME) && !defined(MINIZ_NO_STDIO) + pFile_time = &file_modified_time; + if (!mz_zip_get_file_modified_time(pSrc_filename, &file_modified_time)) + return mz_zip_set_error(pZip, MZ_ZIP_FILE_STAT_FAILED); +#endif + + pSrc_file = MZ_FOPEN(pSrc_filename, "rb"); + if (!pSrc_file) + return mz_zip_set_error(pZip, MZ_ZIP_FILE_OPEN_FAILED); + + MZ_FSEEK64(pSrc_file, 0, SEEK_END); + uncomp_size = MZ_FTELL64(pSrc_file); + MZ_FSEEK64(pSrc_file, 0, SEEK_SET); + + status = mz_zip_writer_add_cfile(pZip, pArchive_name, pSrc_file, uncomp_size, pFile_time, pComment, comment_size, level_and_flags, NULL, 0, NULL, 0); + + MZ_FCLOSE(pSrc_file); + + return status; +} +#endif /* #ifndef MINIZ_NO_STDIO */ + +static mz_bool mz_zip_writer_update_zip64_extension_block(mz_zip_array *pNew_ext, mz_zip_archive *pZip, const mz_uint8 *pExt, uint32_t ext_len, mz_uint64 *pComp_size, mz_uint64 *pUncomp_size, mz_uint64 *pLocal_header_ofs, mz_uint32 *pDisk_start) +{ + /* + 64 should be enough for any new zip64 data */ + if (!mz_zip_array_reserve(pZip, pNew_ext, ext_len + 64, MZ_FALSE)) + return mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); + + mz_zip_array_resize(pZip, pNew_ext, 0, MZ_FALSE); + + if ((pUncomp_size) || (pComp_size) || (pLocal_header_ofs) || (pDisk_start)) + { + mz_uint8 new_ext_block[64]; + mz_uint8 *pDst = new_ext_block; + mz_write_le16(pDst, MZ_ZIP64_EXTENDED_INFORMATION_FIELD_HEADER_ID); + mz_write_le16(pDst + sizeof(mz_uint16), 0); + pDst += sizeof(mz_uint16) * 2; + + if (pUncomp_size) + { + mz_write_le64(pDst, *pUncomp_size); + pDst += sizeof(mz_uint64); + } + + if (pComp_size) + { + mz_write_le64(pDst, *pComp_size); + pDst += sizeof(mz_uint64); + } + + if (pLocal_header_ofs) + { + mz_write_le64(pDst, *pLocal_header_ofs); + pDst += sizeof(mz_uint64); + } + + if (pDisk_start) + { + mz_write_le32(pDst, *pDisk_start); + pDst += sizeof(mz_uint32); + } + + mz_write_le16(new_ext_block + sizeof(mz_uint16), (mz_uint16)((pDst - new_ext_block) - sizeof(mz_uint16) * 2)); + + if (!mz_zip_array_push_back(pZip, pNew_ext, new_ext_block, pDst - new_ext_block)) + return mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); + } + + if ((pExt) && (ext_len)) + { + mz_uint32 extra_size_remaining = ext_len; + const mz_uint8 *pExtra_data = pExt; + + do + { + mz_uint32 field_id, field_data_size, field_total_size; + + if (extra_size_remaining < (sizeof(mz_uint16) * 2)) + return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); + + field_id = MZ_READ_LE16(pExtra_data); + field_data_size = MZ_READ_LE16(pExtra_data + sizeof(mz_uint16)); + field_total_size = field_data_size + sizeof(mz_uint16) * 2; + + if (field_total_size > extra_size_remaining) + return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); + + if (field_id != MZ_ZIP64_EXTENDED_INFORMATION_FIELD_HEADER_ID) + { + if (!mz_zip_array_push_back(pZip, pNew_ext, pExtra_data, field_total_size)) + return mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); + } + + pExtra_data += field_total_size; + extra_size_remaining -= field_total_size; + } while (extra_size_remaining); + } + + return MZ_TRUE; +} + +/* TODO: This func is now pretty freakin complex due to zip64, split it up? */ +mz_bool mz_zip_writer_add_from_zip_reader(mz_zip_archive *pZip, mz_zip_archive *pSource_zip, mz_uint src_file_index) +{ + mz_uint n, bit_flags, num_alignment_padding_bytes, src_central_dir_following_data_size; + mz_uint64 src_archive_bytes_remaining, local_dir_header_ofs; + mz_uint64 cur_src_file_ofs, cur_dst_file_ofs; + mz_uint32 local_header_u32[(MZ_ZIP_LOCAL_DIR_HEADER_SIZE + sizeof(mz_uint32) - 1) / sizeof(mz_uint32)]; + mz_uint8 *pLocal_header = (mz_uint8 *)local_header_u32; + mz_uint8 new_central_header[MZ_ZIP_CENTRAL_DIR_HEADER_SIZE]; + size_t orig_central_dir_size; + mz_zip_internal_state *pState; + void *pBuf; + const mz_uint8 *pSrc_central_header; + mz_zip_archive_file_stat src_file_stat; + mz_uint32 src_filename_len, src_comment_len, src_ext_len; + mz_uint32 local_header_filename_size, local_header_extra_len; + mz_uint64 local_header_comp_size, local_header_uncomp_size; + mz_bool found_zip64_ext_data_in_ldir = MZ_FALSE; + + /* Sanity checks */ + if ((!pZip) || (!pZip->m_pState) || (pZip->m_zip_mode != MZ_ZIP_MODE_WRITING) || (!pSource_zip->m_pRead)) + return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); + + pState = pZip->m_pState; + + /* Don't support copying files from zip64 archives to non-zip64, even though in some cases this is possible */ + if ((pSource_zip->m_pState->m_zip64) && (!pZip->m_pState->m_zip64)) + return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); + + /* Get pointer to the source central dir header and crack it */ + if (NULL == (pSrc_central_header = mz_zip_get_cdh(pSource_zip, src_file_index))) + return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); + + if (MZ_READ_LE32(pSrc_central_header + MZ_ZIP_CDH_SIG_OFS) != MZ_ZIP_CENTRAL_DIR_HEADER_SIG) + return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); + + src_filename_len = MZ_READ_LE16(pSrc_central_header + MZ_ZIP_CDH_FILENAME_LEN_OFS); + src_comment_len = MZ_READ_LE16(pSrc_central_header + MZ_ZIP_CDH_COMMENT_LEN_OFS); + src_ext_len = MZ_READ_LE16(pSrc_central_header + MZ_ZIP_CDH_EXTRA_LEN_OFS); + src_central_dir_following_data_size = src_filename_len + src_ext_len + src_comment_len; + + /* TODO: We don't support central dir's >= MZ_UINT32_MAX bytes right now (+32 fudge factor in case we need to add more extra data) */ + if ((pState->m_central_dir.m_size + MZ_ZIP_CENTRAL_DIR_HEADER_SIZE + src_central_dir_following_data_size + 32) >= MZ_UINT32_MAX) + return mz_zip_set_error(pZip, MZ_ZIP_UNSUPPORTED_CDIR_SIZE); + + num_alignment_padding_bytes = mz_zip_writer_compute_padding_needed_for_file_alignment(pZip); + + if (!pState->m_zip64) + { + if (pZip->m_total_files == MZ_UINT16_MAX) + return mz_zip_set_error(pZip, MZ_ZIP_TOO_MANY_FILES); + } + else + { + /* TODO: Our zip64 support still has some 32-bit limits that may not be worth fixing. */ + if (pZip->m_total_files == MZ_UINT32_MAX) + return mz_zip_set_error(pZip, MZ_ZIP_TOO_MANY_FILES); + } + + if (!mz_zip_file_stat_internal(pSource_zip, src_file_index, pSrc_central_header, &src_file_stat, NULL)) + return MZ_FALSE; + + cur_src_file_ofs = src_file_stat.m_local_header_ofs; + cur_dst_file_ofs = pZip->m_archive_size; + + /* Read the source archive's local dir header */ + if (pSource_zip->m_pRead(pSource_zip->m_pIO_opaque, cur_src_file_ofs, pLocal_header, MZ_ZIP_LOCAL_DIR_HEADER_SIZE) != MZ_ZIP_LOCAL_DIR_HEADER_SIZE) + return mz_zip_set_error(pZip, MZ_ZIP_FILE_READ_FAILED); + + if (MZ_READ_LE32(pLocal_header) != MZ_ZIP_LOCAL_DIR_HEADER_SIG) + return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); + + cur_src_file_ofs += MZ_ZIP_LOCAL_DIR_HEADER_SIZE; + + /* Compute the total size we need to copy (filename+extra data+compressed data) */ + local_header_filename_size = MZ_READ_LE16(pLocal_header + MZ_ZIP_LDH_FILENAME_LEN_OFS); + local_header_extra_len = MZ_READ_LE16(pLocal_header + MZ_ZIP_LDH_EXTRA_LEN_OFS); + local_header_comp_size = MZ_READ_LE32(pLocal_header + MZ_ZIP_LDH_COMPRESSED_SIZE_OFS); + local_header_uncomp_size = MZ_READ_LE32(pLocal_header + MZ_ZIP_LDH_DECOMPRESSED_SIZE_OFS); + src_archive_bytes_remaining = local_header_filename_size + local_header_extra_len + src_file_stat.m_comp_size; + + /* Try to find a zip64 extended information field */ + if ((local_header_extra_len) && ((local_header_comp_size == MZ_UINT32_MAX) || (local_header_uncomp_size == MZ_UINT32_MAX))) + { + mz_zip_array file_data_array; + const mz_uint8 *pExtra_data; + mz_uint32 extra_size_remaining = local_header_extra_len; + + mz_zip_array_init(&file_data_array, 1); + if (!mz_zip_array_resize(pZip, &file_data_array, local_header_extra_len, MZ_FALSE)) + { + return mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); + } + + if (pSource_zip->m_pRead(pSource_zip->m_pIO_opaque, src_file_stat.m_local_header_ofs + MZ_ZIP_LOCAL_DIR_HEADER_SIZE + local_header_filename_size, file_data_array.m_p, local_header_extra_len) != local_header_extra_len) + { + mz_zip_array_clear(pZip, &file_data_array); + return mz_zip_set_error(pZip, MZ_ZIP_FILE_READ_FAILED); + } + + pExtra_data = (const mz_uint8 *)file_data_array.m_p; + + do + { + mz_uint32 field_id, field_data_size, field_total_size; + + if (extra_size_remaining < (sizeof(mz_uint16) * 2)) + { + mz_zip_array_clear(pZip, &file_data_array); + return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); + } + + field_id = MZ_READ_LE16(pExtra_data); + field_data_size = MZ_READ_LE16(pExtra_data + sizeof(mz_uint16)); + field_total_size = field_data_size + sizeof(mz_uint16) * 2; + + if (field_total_size > extra_size_remaining) + { + mz_zip_array_clear(pZip, &file_data_array); + return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); + } + + if (field_id == MZ_ZIP64_EXTENDED_INFORMATION_FIELD_HEADER_ID) + { + const mz_uint8 *pSrc_field_data = pExtra_data + sizeof(mz_uint32); + + if (field_data_size < sizeof(mz_uint64) * 2) + { + mz_zip_array_clear(pZip, &file_data_array); + return mz_zip_set_error(pZip, MZ_ZIP_INVALID_HEADER_OR_CORRUPTED); + } + + local_header_uncomp_size = MZ_READ_LE64(pSrc_field_data); + local_header_comp_size = MZ_READ_LE64(pSrc_field_data + sizeof(mz_uint64)); /* may be 0 if there's a descriptor */ + + found_zip64_ext_data_in_ldir = MZ_TRUE; + break; + } + + pExtra_data += field_total_size; + extra_size_remaining -= field_total_size; + } while (extra_size_remaining); + + mz_zip_array_clear(pZip, &file_data_array); + } + + if (!pState->m_zip64) + { + /* Try to detect if the new archive will most likely wind up too big and bail early (+(sizeof(mz_uint32) * 4) is for the optional descriptor which could be present, +64 is a fudge factor). */ + /* We also check when the archive is finalized so this doesn't need to be perfect. */ + mz_uint64 approx_new_archive_size = cur_dst_file_ofs + num_alignment_padding_bytes + MZ_ZIP_LOCAL_DIR_HEADER_SIZE + src_archive_bytes_remaining + (sizeof(mz_uint32) * 4) + + pState->m_central_dir.m_size + MZ_ZIP_CENTRAL_DIR_HEADER_SIZE + src_central_dir_following_data_size + MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIZE + 64; + + if (approx_new_archive_size >= MZ_UINT32_MAX) + return mz_zip_set_error(pZip, MZ_ZIP_ARCHIVE_TOO_LARGE); + } + + /* Write dest archive padding */ + if (!mz_zip_writer_write_zeros(pZip, cur_dst_file_ofs, num_alignment_padding_bytes)) + return MZ_FALSE; + + cur_dst_file_ofs += num_alignment_padding_bytes; + + local_dir_header_ofs = cur_dst_file_ofs; + if (pZip->m_file_offset_alignment) + { + MZ_ASSERT((local_dir_header_ofs & (pZip->m_file_offset_alignment - 1)) == 0); + } + + /* The original zip's local header+ext block doesn't change, even with zip64, so we can just copy it over to the dest zip */ + if (pZip->m_pWrite(pZip->m_pIO_opaque, cur_dst_file_ofs, pLocal_header, MZ_ZIP_LOCAL_DIR_HEADER_SIZE) != MZ_ZIP_LOCAL_DIR_HEADER_SIZE) + return mz_zip_set_error(pZip, MZ_ZIP_FILE_WRITE_FAILED); + + cur_dst_file_ofs += MZ_ZIP_LOCAL_DIR_HEADER_SIZE; + + /* Copy over the source archive bytes to the dest archive, also ensure we have enough buf space to handle optional data descriptor */ + if (NULL == (pBuf = pZip->m_pAlloc(pZip->m_pAlloc_opaque, 1, (size_t)MZ_MAX(32U, MZ_MIN((mz_uint64)MZ_ZIP_MAX_IO_BUF_SIZE, src_archive_bytes_remaining))))) + return mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); + + while (src_archive_bytes_remaining) + { + n = (mz_uint)MZ_MIN((mz_uint64)MZ_ZIP_MAX_IO_BUF_SIZE, src_archive_bytes_remaining); + if (pSource_zip->m_pRead(pSource_zip->m_pIO_opaque, cur_src_file_ofs, pBuf, n) != n) + { + pZip->m_pFree(pZip->m_pAlloc_opaque, pBuf); + return mz_zip_set_error(pZip, MZ_ZIP_FILE_READ_FAILED); + } + cur_src_file_ofs += n; + + if (pZip->m_pWrite(pZip->m_pIO_opaque, cur_dst_file_ofs, pBuf, n) != n) + { + pZip->m_pFree(pZip->m_pAlloc_opaque, pBuf); + return mz_zip_set_error(pZip, MZ_ZIP_FILE_WRITE_FAILED); + } + cur_dst_file_ofs += n; + + src_archive_bytes_remaining -= n; + } + + /* Now deal with the optional data descriptor */ + bit_flags = MZ_READ_LE16(pLocal_header + MZ_ZIP_LDH_BIT_FLAG_OFS); + if (bit_flags & 8) + { + /* Copy data descriptor */ + if ((pSource_zip->m_pState->m_zip64) || (found_zip64_ext_data_in_ldir)) + { + /* src is zip64, dest must be zip64 */ + + /* name uint32_t's */ + /* id 1 (optional in zip64?) */ + /* crc 1 */ + /* comp_size 2 */ + /* uncomp_size 2 */ + if (pSource_zip->m_pRead(pSource_zip->m_pIO_opaque, cur_src_file_ofs, pBuf, (sizeof(mz_uint32) * 6)) != (sizeof(mz_uint32) * 6)) + { + pZip->m_pFree(pZip->m_pAlloc_opaque, pBuf); + return mz_zip_set_error(pZip, MZ_ZIP_FILE_READ_FAILED); + } + + n = sizeof(mz_uint32) * ((MZ_READ_LE32(pBuf) == MZ_ZIP_DATA_DESCRIPTOR_ID) ? 6 : 5); + } + else + { + /* src is NOT zip64 */ + mz_bool has_id; + + if (pSource_zip->m_pRead(pSource_zip->m_pIO_opaque, cur_src_file_ofs, pBuf, sizeof(mz_uint32) * 4) != sizeof(mz_uint32) * 4) + { + pZip->m_pFree(pZip->m_pAlloc_opaque, pBuf); + return mz_zip_set_error(pZip, MZ_ZIP_FILE_READ_FAILED); + } + + has_id = (MZ_READ_LE32(pBuf) == MZ_ZIP_DATA_DESCRIPTOR_ID); + + if (pZip->m_pState->m_zip64) + { + /* dest is zip64, so upgrade the data descriptor */ + const mz_uint32 *pSrc_descriptor = (const mz_uint32 *)((const mz_uint8 *)pBuf + (has_id ? sizeof(mz_uint32) : 0)); + const mz_uint32 src_crc32 = pSrc_descriptor[0]; + const mz_uint64 src_comp_size = pSrc_descriptor[1]; + const mz_uint64 src_uncomp_size = pSrc_descriptor[2]; + + mz_write_le32((mz_uint8 *)pBuf, MZ_ZIP_DATA_DESCRIPTOR_ID); + mz_write_le32((mz_uint8 *)pBuf + sizeof(mz_uint32) * 1, src_crc32); + mz_write_le64((mz_uint8 *)pBuf + sizeof(mz_uint32) * 2, src_comp_size); + mz_write_le64((mz_uint8 *)pBuf + sizeof(mz_uint32) * 4, src_uncomp_size); + + n = sizeof(mz_uint32) * 6; + } + else + { + /* dest is NOT zip64, just copy it as-is */ + n = sizeof(mz_uint32) * (has_id ? 4 : 3); + } + } + + if (pZip->m_pWrite(pZip->m_pIO_opaque, cur_dst_file_ofs, pBuf, n) != n) + { + pZip->m_pFree(pZip->m_pAlloc_opaque, pBuf); + return mz_zip_set_error(pZip, MZ_ZIP_FILE_WRITE_FAILED); + } + + cur_src_file_ofs += n; + cur_dst_file_ofs += n; + } + pZip->m_pFree(pZip->m_pAlloc_opaque, pBuf); + + /* Finally, add the new central dir header */ + orig_central_dir_size = pState->m_central_dir.m_size; + + memcpy(new_central_header, pSrc_central_header, MZ_ZIP_CENTRAL_DIR_HEADER_SIZE); + + if (pState->m_zip64) + { + /* This is the painful part: We need to write a new central dir header + ext block with updated zip64 fields, and ensure the old fields (if any) are not included. */ + const mz_uint8 *pSrc_ext = pSrc_central_header + MZ_ZIP_CENTRAL_DIR_HEADER_SIZE + src_filename_len; + mz_zip_array new_ext_block; + + mz_zip_array_init(&new_ext_block, sizeof(mz_uint8)); + + MZ_WRITE_LE32(new_central_header + MZ_ZIP_CDH_COMPRESSED_SIZE_OFS, MZ_UINT32_MAX); + MZ_WRITE_LE32(new_central_header + MZ_ZIP_CDH_DECOMPRESSED_SIZE_OFS, MZ_UINT32_MAX); + MZ_WRITE_LE32(new_central_header + MZ_ZIP_CDH_LOCAL_HEADER_OFS, MZ_UINT32_MAX); + + if (!mz_zip_writer_update_zip64_extension_block(&new_ext_block, pZip, pSrc_ext, src_ext_len, &src_file_stat.m_comp_size, &src_file_stat.m_uncomp_size, &local_dir_header_ofs, NULL)) + { + mz_zip_array_clear(pZip, &new_ext_block); + return MZ_FALSE; + } + + MZ_WRITE_LE16(new_central_header + MZ_ZIP_CDH_EXTRA_LEN_OFS, new_ext_block.m_size); + + if (!mz_zip_array_push_back(pZip, &pState->m_central_dir, new_central_header, MZ_ZIP_CENTRAL_DIR_HEADER_SIZE)) + { + mz_zip_array_clear(pZip, &new_ext_block); + return mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); + } + + if (!mz_zip_array_push_back(pZip, &pState->m_central_dir, pSrc_central_header + MZ_ZIP_CENTRAL_DIR_HEADER_SIZE, src_filename_len)) + { + mz_zip_array_clear(pZip, &new_ext_block); + mz_zip_array_resize(pZip, &pState->m_central_dir, orig_central_dir_size, MZ_FALSE); + return mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); + } + + if (!mz_zip_array_push_back(pZip, &pState->m_central_dir, new_ext_block.m_p, new_ext_block.m_size)) + { + mz_zip_array_clear(pZip, &new_ext_block); + mz_zip_array_resize(pZip, &pState->m_central_dir, orig_central_dir_size, MZ_FALSE); + return mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); + } + + if (!mz_zip_array_push_back(pZip, &pState->m_central_dir, pSrc_central_header + MZ_ZIP_CENTRAL_DIR_HEADER_SIZE + src_filename_len + src_ext_len, src_comment_len)) + { + mz_zip_array_clear(pZip, &new_ext_block); + mz_zip_array_resize(pZip, &pState->m_central_dir, orig_central_dir_size, MZ_FALSE); + return mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); + } + + mz_zip_array_clear(pZip, &new_ext_block); + } + else + { + /* sanity checks */ + if (cur_dst_file_ofs > MZ_UINT32_MAX) + return mz_zip_set_error(pZip, MZ_ZIP_ARCHIVE_TOO_LARGE); + + if (local_dir_header_ofs >= MZ_UINT32_MAX) + return mz_zip_set_error(pZip, MZ_ZIP_ARCHIVE_TOO_LARGE); + + MZ_WRITE_LE32(new_central_header + MZ_ZIP_CDH_LOCAL_HEADER_OFS, local_dir_header_ofs); + + if (!mz_zip_array_push_back(pZip, &pState->m_central_dir, new_central_header, MZ_ZIP_CENTRAL_DIR_HEADER_SIZE)) + return mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); + + if (!mz_zip_array_push_back(pZip, &pState->m_central_dir, pSrc_central_header + MZ_ZIP_CENTRAL_DIR_HEADER_SIZE, src_central_dir_following_data_size)) + { + mz_zip_array_resize(pZip, &pState->m_central_dir, orig_central_dir_size, MZ_FALSE); + return mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); + } + } + + /* This shouldn't trigger unless we screwed up during the initial sanity checks */ + if (pState->m_central_dir.m_size >= MZ_UINT32_MAX) + { + /* TODO: Support central dirs >= 32-bits in size */ + mz_zip_array_resize(pZip, &pState->m_central_dir, orig_central_dir_size, MZ_FALSE); + return mz_zip_set_error(pZip, MZ_ZIP_UNSUPPORTED_CDIR_SIZE); + } + + n = (mz_uint32)orig_central_dir_size; + if (!mz_zip_array_push_back(pZip, &pState->m_central_dir_offsets, &n, 1)) + { + mz_zip_array_resize(pZip, &pState->m_central_dir, orig_central_dir_size, MZ_FALSE); + return mz_zip_set_error(pZip, MZ_ZIP_ALLOC_FAILED); + } + + pZip->m_total_files++; + pZip->m_archive_size = cur_dst_file_ofs; + + return MZ_TRUE; +} + +mz_bool mz_zip_writer_finalize_archive(mz_zip_archive *pZip) +{ + mz_zip_internal_state *pState; + mz_uint64 central_dir_ofs, central_dir_size; + mz_uint8 hdr[256]; + + if ((!pZip) || (!pZip->m_pState) || (pZip->m_zip_mode != MZ_ZIP_MODE_WRITING)) + return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); + + pState = pZip->m_pState; + + if (pState->m_zip64) + { + if ((pZip->m_total_files > MZ_UINT32_MAX) || (pState->m_central_dir.m_size >= MZ_UINT32_MAX)) + return mz_zip_set_error(pZip, MZ_ZIP_TOO_MANY_FILES); + } + else + { + if ((pZip->m_total_files > MZ_UINT16_MAX) || ((pZip->m_archive_size + pState->m_central_dir.m_size + MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIZE) > MZ_UINT32_MAX)) + return mz_zip_set_error(pZip, MZ_ZIP_TOO_MANY_FILES); + } + + central_dir_ofs = 0; + central_dir_size = 0; + if (pZip->m_total_files) + { + /* Write central directory */ + central_dir_ofs = pZip->m_archive_size; + central_dir_size = pState->m_central_dir.m_size; + pZip->m_central_directory_file_ofs = central_dir_ofs; + if (pZip->m_pWrite(pZip->m_pIO_opaque, central_dir_ofs, pState->m_central_dir.m_p, (size_t)central_dir_size) != central_dir_size) + return mz_zip_set_error(pZip, MZ_ZIP_FILE_WRITE_FAILED); + + pZip->m_archive_size += central_dir_size; + } + + if (pState->m_zip64) + { + /* Write zip64 end of central directory header */ + mz_uint64 rel_ofs_to_zip64_ecdr = pZip->m_archive_size; + + MZ_CLEAR_OBJ(hdr); + MZ_WRITE_LE32(hdr + MZ_ZIP64_ECDH_SIG_OFS, MZ_ZIP64_END_OF_CENTRAL_DIR_HEADER_SIG); + MZ_WRITE_LE64(hdr + MZ_ZIP64_ECDH_SIZE_OF_RECORD_OFS, MZ_ZIP64_END_OF_CENTRAL_DIR_HEADER_SIZE - sizeof(mz_uint32) - sizeof(mz_uint64)); + MZ_WRITE_LE16(hdr + MZ_ZIP64_ECDH_VERSION_MADE_BY_OFS, 0x031E); /* TODO: always Unix */ + MZ_WRITE_LE16(hdr + MZ_ZIP64_ECDH_VERSION_NEEDED_OFS, 0x002D); + MZ_WRITE_LE64(hdr + MZ_ZIP64_ECDH_CDIR_NUM_ENTRIES_ON_DISK_OFS, pZip->m_total_files); + MZ_WRITE_LE64(hdr + MZ_ZIP64_ECDH_CDIR_TOTAL_ENTRIES_OFS, pZip->m_total_files); + MZ_WRITE_LE64(hdr + MZ_ZIP64_ECDH_CDIR_SIZE_OFS, central_dir_size); + MZ_WRITE_LE64(hdr + MZ_ZIP64_ECDH_CDIR_OFS_OFS, central_dir_ofs); + if (pZip->m_pWrite(pZip->m_pIO_opaque, pZip->m_archive_size, hdr, MZ_ZIP64_END_OF_CENTRAL_DIR_HEADER_SIZE) != MZ_ZIP64_END_OF_CENTRAL_DIR_HEADER_SIZE) + return mz_zip_set_error(pZip, MZ_ZIP_FILE_WRITE_FAILED); + + pZip->m_archive_size += MZ_ZIP64_END_OF_CENTRAL_DIR_HEADER_SIZE; + + /* Write zip64 end of central directory locator */ + MZ_CLEAR_OBJ(hdr); + MZ_WRITE_LE32(hdr + MZ_ZIP64_ECDL_SIG_OFS, MZ_ZIP64_END_OF_CENTRAL_DIR_LOCATOR_SIG); + MZ_WRITE_LE64(hdr + MZ_ZIP64_ECDL_REL_OFS_TO_ZIP64_ECDR_OFS, rel_ofs_to_zip64_ecdr); + MZ_WRITE_LE32(hdr + MZ_ZIP64_ECDL_TOTAL_NUMBER_OF_DISKS_OFS, 1); + if (pZip->m_pWrite(pZip->m_pIO_opaque, pZip->m_archive_size, hdr, MZ_ZIP64_END_OF_CENTRAL_DIR_LOCATOR_SIZE) != MZ_ZIP64_END_OF_CENTRAL_DIR_LOCATOR_SIZE) + return mz_zip_set_error(pZip, MZ_ZIP_FILE_WRITE_FAILED); + + pZip->m_archive_size += MZ_ZIP64_END_OF_CENTRAL_DIR_LOCATOR_SIZE; + } + + /* Write end of central directory record */ + MZ_CLEAR_OBJ(hdr); + MZ_WRITE_LE32(hdr + MZ_ZIP_ECDH_SIG_OFS, MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIG); + MZ_WRITE_LE16(hdr + MZ_ZIP_ECDH_CDIR_NUM_ENTRIES_ON_DISK_OFS, MZ_MIN(MZ_UINT16_MAX, pZip->m_total_files)); + MZ_WRITE_LE16(hdr + MZ_ZIP_ECDH_CDIR_TOTAL_ENTRIES_OFS, MZ_MIN(MZ_UINT16_MAX, pZip->m_total_files)); + MZ_WRITE_LE32(hdr + MZ_ZIP_ECDH_CDIR_SIZE_OFS, MZ_MIN(MZ_UINT32_MAX, central_dir_size)); + MZ_WRITE_LE32(hdr + MZ_ZIP_ECDH_CDIR_OFS_OFS, MZ_MIN(MZ_UINT32_MAX, central_dir_ofs)); + + if (pZip->m_pWrite(pZip->m_pIO_opaque, pZip->m_archive_size, hdr, MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIZE) != MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIZE) + return mz_zip_set_error(pZip, MZ_ZIP_FILE_WRITE_FAILED); + +#ifndef MINIZ_NO_STDIO + if ((pState->m_pFile) && (MZ_FFLUSH(pState->m_pFile) == EOF)) + return mz_zip_set_error(pZip, MZ_ZIP_FILE_CLOSE_FAILED); +#endif /* #ifndef MINIZ_NO_STDIO */ + + pZip->m_archive_size += MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIZE; + + pZip->m_zip_mode = MZ_ZIP_MODE_WRITING_HAS_BEEN_FINALIZED; + return MZ_TRUE; +} + +mz_bool mz_zip_writer_finalize_heap_archive(mz_zip_archive *pZip, void **ppBuf, size_t *pSize) +{ + if ((!ppBuf) || (!pSize)) + return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); + + *ppBuf = NULL; + *pSize = 0; + + if ((!pZip) || (!pZip->m_pState)) + return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); + + if (pZip->m_pWrite != mz_zip_heap_write_func) + return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); + + if (!mz_zip_writer_finalize_archive(pZip)) + return MZ_FALSE; + + *ppBuf = pZip->m_pState->m_pMem; + *pSize = pZip->m_pState->m_mem_size; + pZip->m_pState->m_pMem = NULL; + pZip->m_pState->m_mem_size = pZip->m_pState->m_mem_capacity = 0; + + return MZ_TRUE; +} + +mz_bool mz_zip_writer_end(mz_zip_archive *pZip) +{ + return mz_zip_writer_end_internal(pZip, MZ_TRUE); +} + +#ifndef MINIZ_NO_STDIO +mz_bool mz_zip_add_mem_to_archive_file_in_place(const char *pZip_filename, const char *pArchive_name, const void *pBuf, size_t buf_size, const void *pComment, mz_uint16 comment_size, mz_uint level_and_flags) +{ + return mz_zip_add_mem_to_archive_file_in_place_v2(pZip_filename, pArchive_name, pBuf, buf_size, pComment, comment_size, level_and_flags, NULL); +} + +mz_bool mz_zip_add_mem_to_archive_file_in_place_v2(const char *pZip_filename, const char *pArchive_name, const void *pBuf, size_t buf_size, const void *pComment, mz_uint16 comment_size, mz_uint level_and_flags, mz_zip_error *pErr) +{ + mz_bool status, created_new_archive = MZ_FALSE; + mz_zip_archive zip_archive; + struct MZ_FILE_STAT_STRUCT file_stat; + mz_zip_error actual_err = MZ_ZIP_NO_ERROR; + + mz_zip_zero_struct(&zip_archive); + if ((int)level_and_flags < 0) + level_and_flags = MZ_DEFAULT_LEVEL; + + if ((!pZip_filename) || (!pArchive_name) || ((buf_size) && (!pBuf)) || ((comment_size) && (!pComment)) || ((level_and_flags & 0xF) > MZ_UBER_COMPRESSION)) + { + if (pErr) + *pErr = MZ_ZIP_INVALID_PARAMETER; + return MZ_FALSE; + } + + if (!mz_zip_writer_validate_archive_name(pArchive_name)) + { + if (pErr) + *pErr = MZ_ZIP_INVALID_FILENAME; + return MZ_FALSE; + } + + /* Important: The regular non-64 bit version of stat() can fail here if the file is very large, which could cause the archive to be overwritten. */ + /* So be sure to compile with _LARGEFILE64_SOURCE 1 */ + if (MZ_FILE_STAT(pZip_filename, &file_stat) != 0) + { + /* Create a new archive. */ + if (!mz_zip_writer_init_file_v2(&zip_archive, pZip_filename, 0, level_and_flags)) + { + if (pErr) + *pErr = zip_archive.m_last_error; + return MZ_FALSE; + } + + created_new_archive = MZ_TRUE; + } + else + { + /* Append to an existing archive. */ + if (!mz_zip_reader_init_file_v2(&zip_archive, pZip_filename, level_and_flags | MZ_ZIP_FLAG_DO_NOT_SORT_CENTRAL_DIRECTORY, 0, 0)) + { + if (pErr) + *pErr = zip_archive.m_last_error; + return MZ_FALSE; + } + + if (!mz_zip_writer_init_from_reader_v2(&zip_archive, pZip_filename, level_and_flags)) + { + if (pErr) + *pErr = zip_archive.m_last_error; + + mz_zip_reader_end_internal(&zip_archive, MZ_FALSE); + + return MZ_FALSE; + } + } + + status = mz_zip_writer_add_mem_ex(&zip_archive, pArchive_name, pBuf, buf_size, pComment, comment_size, level_and_flags, 0, 0); + actual_err = zip_archive.m_last_error; + + /* Always finalize, even if adding failed for some reason, so we have a valid central directory. (This may not always succeed, but we can try.) */ + if (!mz_zip_writer_finalize_archive(&zip_archive)) + { + if (!actual_err) + actual_err = zip_archive.m_last_error; + + status = MZ_FALSE; + } + + if (!mz_zip_writer_end_internal(&zip_archive, status)) + { + if (!actual_err) + actual_err = zip_archive.m_last_error; + + status = MZ_FALSE; + } + + if ((!status) && (created_new_archive)) + { + /* It's a new archive and something went wrong, so just delete it. */ + int ignoredStatus = MZ_DELETE_FILE(pZip_filename); + (void)ignoredStatus; + } + + if (pErr) + *pErr = actual_err; + + return status; +} + +void *mz_zip_extract_archive_file_to_heap_v2(const char *pZip_filename, const char *pArchive_name, const char *pComment, size_t *pSize, mz_uint flags, mz_zip_error *pErr) +{ + mz_uint32 file_index; + mz_zip_archive zip_archive; + void *p = NULL; + + if (pSize) + *pSize = 0; + + if ((!pZip_filename) || (!pArchive_name)) + { + if (pErr) + *pErr = MZ_ZIP_INVALID_PARAMETER; + + return NULL; + } + + mz_zip_zero_struct(&zip_archive); + if (!mz_zip_reader_init_file_v2(&zip_archive, pZip_filename, flags | MZ_ZIP_FLAG_DO_NOT_SORT_CENTRAL_DIRECTORY, 0, 0)) + { + if (pErr) + *pErr = zip_archive.m_last_error; + + return NULL; + } + + if (mz_zip_reader_locate_file_v2(&zip_archive, pArchive_name, pComment, flags, &file_index)) + { + p = mz_zip_reader_extract_to_heap(&zip_archive, file_index, pSize, flags); + } + + mz_zip_reader_end_internal(&zip_archive, p != NULL); + + if (pErr) + *pErr = zip_archive.m_last_error; + + return p; +} + +void *mz_zip_extract_archive_file_to_heap(const char *pZip_filename, const char *pArchive_name, size_t *pSize, mz_uint flags) +{ + return mz_zip_extract_archive_file_to_heap_v2(pZip_filename, pArchive_name, NULL, pSize, flags, NULL); +} + +#endif /* #ifndef MINIZ_NO_STDIO */ + +#endif /* #ifndef MINIZ_NO_ARCHIVE_WRITING_APIS */ + +/* ------------------- Misc utils */ + +mz_zip_mode mz_zip_get_mode(mz_zip_archive *pZip) +{ + return pZip ? pZip->m_zip_mode : MZ_ZIP_MODE_INVALID; +} + +mz_zip_type mz_zip_get_type(mz_zip_archive *pZip) +{ + return pZip ? pZip->m_zip_type : MZ_ZIP_TYPE_INVALID; +} + +mz_zip_error mz_zip_set_last_error(mz_zip_archive *pZip, mz_zip_error err_num) +{ + mz_zip_error prev_err; + + if (!pZip) + return MZ_ZIP_INVALID_PARAMETER; + + prev_err = pZip->m_last_error; + + pZip->m_last_error = err_num; + return prev_err; +} + +mz_zip_error mz_zip_peek_last_error(mz_zip_archive *pZip) +{ + if (!pZip) + return MZ_ZIP_INVALID_PARAMETER; + + return pZip->m_last_error; +} + +mz_zip_error mz_zip_clear_last_error(mz_zip_archive *pZip) +{ + return mz_zip_set_last_error(pZip, MZ_ZIP_NO_ERROR); +} + +mz_zip_error mz_zip_get_last_error(mz_zip_archive *pZip) +{ + mz_zip_error prev_err; + + if (!pZip) + return MZ_ZIP_INVALID_PARAMETER; + + prev_err = pZip->m_last_error; + + pZip->m_last_error = MZ_ZIP_NO_ERROR; + return prev_err; +} + +const char *mz_zip_get_error_string(mz_zip_error mz_err) +{ + switch (mz_err) + { + case MZ_ZIP_NO_ERROR: + return "no error"; + case MZ_ZIP_UNDEFINED_ERROR: + return "undefined error"; + case MZ_ZIP_TOO_MANY_FILES: + return "too many files"; + case MZ_ZIP_FILE_TOO_LARGE: + return "file too large"; + case MZ_ZIP_UNSUPPORTED_METHOD: + return "unsupported method"; + case MZ_ZIP_UNSUPPORTED_ENCRYPTION: + return "unsupported encryption"; + case MZ_ZIP_UNSUPPORTED_FEATURE: + return "unsupported feature"; + case MZ_ZIP_FAILED_FINDING_CENTRAL_DIR: + return "failed finding central directory"; + case MZ_ZIP_NOT_AN_ARCHIVE: + return "not a ZIP archive"; + case MZ_ZIP_INVALID_HEADER_OR_CORRUPTED: + return "invalid header or archive is corrupted"; + case MZ_ZIP_UNSUPPORTED_MULTIDISK: + return "unsupported multidisk archive"; + case MZ_ZIP_DECOMPRESSION_FAILED: + return "decompression failed or archive is corrupted"; + case MZ_ZIP_COMPRESSION_FAILED: + return "compression failed"; + case MZ_ZIP_UNEXPECTED_DECOMPRESSED_SIZE: + return "unexpected decompressed size"; + case MZ_ZIP_CRC_CHECK_FAILED: + return "CRC-32 check failed"; + case MZ_ZIP_UNSUPPORTED_CDIR_SIZE: + return "unsupported central directory size"; + case MZ_ZIP_ALLOC_FAILED: + return "allocation failed"; + case MZ_ZIP_FILE_OPEN_FAILED: + return "file open failed"; + case MZ_ZIP_FILE_CREATE_FAILED: + return "file create failed"; + case MZ_ZIP_FILE_WRITE_FAILED: + return "file write failed"; + case MZ_ZIP_FILE_READ_FAILED: + return "file read failed"; + case MZ_ZIP_FILE_CLOSE_FAILED: + return "file close failed"; + case MZ_ZIP_FILE_SEEK_FAILED: + return "file seek failed"; + case MZ_ZIP_FILE_STAT_FAILED: + return "file stat failed"; + case MZ_ZIP_INVALID_PARAMETER: + return "invalid parameter"; + case MZ_ZIP_INVALID_FILENAME: + return "invalid filename"; + case MZ_ZIP_BUF_TOO_SMALL: + return "buffer too small"; + case MZ_ZIP_INTERNAL_ERROR: + return "internal error"; + case MZ_ZIP_FILE_NOT_FOUND: + return "file not found"; + case MZ_ZIP_ARCHIVE_TOO_LARGE: + return "archive is too large"; + case MZ_ZIP_VALIDATION_FAILED: + return "validation failed"; + case MZ_ZIP_WRITE_CALLBACK_FAILED: + return "write calledback failed"; + default: + break; + } + + return "unknown error"; +} + +/* Note: Just because the archive is not zip64 doesn't necessarily mean it doesn't have Zip64 extended information extra field, argh. */ +mz_bool mz_zip_is_zip64(mz_zip_archive *pZip) +{ + if ((!pZip) || (!pZip->m_pState)) + return MZ_FALSE; + + return pZip->m_pState->m_zip64; +} + +size_t mz_zip_get_central_dir_size(mz_zip_archive *pZip) +{ + if ((!pZip) || (!pZip->m_pState)) + return 0; + + return pZip->m_pState->m_central_dir.m_size; +} + +mz_uint mz_zip_reader_get_num_files(mz_zip_archive *pZip) +{ + return pZip ? pZip->m_total_files : 0; +} + +mz_uint64 mz_zip_get_archive_size(mz_zip_archive *pZip) +{ + if (!pZip) + return 0; + return pZip->m_archive_size; +} + +mz_uint64 mz_zip_get_archive_file_start_offset(mz_zip_archive *pZip) +{ + if ((!pZip) || (!pZip->m_pState)) + return 0; + return pZip->m_pState->m_file_archive_start_ofs; +} + +MZ_FILE *mz_zip_get_cfile(mz_zip_archive *pZip) +{ + if ((!pZip) || (!pZip->m_pState)) + return 0; + return pZip->m_pState->m_pFile; +} + +size_t mz_zip_read_archive_data(mz_zip_archive *pZip, mz_uint64 file_ofs, void *pBuf, size_t n) +{ + if ((!pZip) || (!pZip->m_pState) || (!pBuf) || (!pZip->m_pRead)) + return mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); + + return pZip->m_pRead(pZip->m_pIO_opaque, file_ofs, pBuf, n); +} + +mz_uint mz_zip_reader_get_filename(mz_zip_archive *pZip, mz_uint file_index, char *pFilename, mz_uint filename_buf_size) +{ + mz_uint n; + const mz_uint8 *p = mz_zip_get_cdh(pZip, file_index); + if (!p) + { + if (filename_buf_size) + pFilename[0] = '\0'; + mz_zip_set_error(pZip, MZ_ZIP_INVALID_PARAMETER); + return 0; + } + n = MZ_READ_LE16(p + MZ_ZIP_CDH_FILENAME_LEN_OFS); + if (filename_buf_size) + { + n = MZ_MIN(n, filename_buf_size - 1); + memcpy(pFilename, p + MZ_ZIP_CENTRAL_DIR_HEADER_SIZE, n); + pFilename[n] = '\0'; + } + return n + 1; +} + +mz_bool mz_zip_reader_file_stat(mz_zip_archive *pZip, mz_uint file_index, mz_zip_archive_file_stat *pStat) +{ + return mz_zip_file_stat_internal(pZip, file_index, mz_zip_get_cdh(pZip, file_index), pStat, NULL); +} + +mz_bool mz_zip_end(mz_zip_archive *pZip) +{ + if (!pZip) + return MZ_FALSE; + + if (pZip->m_zip_mode == MZ_ZIP_MODE_READING) + return mz_zip_reader_end(pZip); +#ifndef MINIZ_NO_ARCHIVE_WRITING_APIS + else if ((pZip->m_zip_mode == MZ_ZIP_MODE_WRITING) || (pZip->m_zip_mode == MZ_ZIP_MODE_WRITING_HAS_BEEN_FINALIZED)) + return mz_zip_writer_end(pZip); +#endif + + return MZ_FALSE; +} + +#ifdef __cplusplus +} +#endif + +#endif /*#ifndef MINIZ_NO_ARCHIVE_APIS*/ diff --git a/modules/tinyexr/deps/miniz/miniz.h b/modules/tinyexr/deps/miniz/miniz.h new file mode 100644 index 0000000..6cc398c --- /dev/null +++ b/modules/tinyexr/deps/miniz/miniz.h @@ -0,0 +1,1350 @@ +#define MINIZ_EXPORT +/* miniz.c 2.2.0 - public domain deflate/inflate, zlib-subset, ZIP reading/writing/appending, PNG writing + See "unlicense" statement at the end of this file. + Rich Geldreich , last updated Oct. 13, 2013 + Implements RFC 1950: http://www.ietf.org/rfc/rfc1950.txt and RFC 1951: http://www.ietf.org/rfc/rfc1951.txt + + Most API's defined in miniz.c are optional. For example, to disable the archive related functions just define + MINIZ_NO_ARCHIVE_APIS, or to get rid of all stdio usage define MINIZ_NO_STDIO (see the list below for more macros). + + * Low-level Deflate/Inflate implementation notes: + + Compression: Use the "tdefl" API's. The compressor supports raw, static, and dynamic blocks, lazy or + greedy parsing, match length filtering, RLE-only, and Huffman-only streams. It performs and compresses + approximately as well as zlib. + + Decompression: Use the "tinfl" API's. The entire decompressor is implemented as a single function + coroutine: see tinfl_decompress(). It supports decompression into a 32KB (or larger power of 2) wrapping buffer, or into a memory + block large enough to hold the entire file. + + The low-level tdefl/tinfl API's do not make any use of dynamic memory allocation. + + * zlib-style API notes: + + miniz.c implements a fairly large subset of zlib. There's enough functionality present for it to be a drop-in + zlib replacement in many apps: + The z_stream struct, optional memory allocation callbacks + deflateInit/deflateInit2/deflate/deflateReset/deflateEnd/deflateBound + inflateInit/inflateInit2/inflate/inflateReset/inflateEnd + compress, compress2, compressBound, uncompress + CRC-32, Adler-32 - Using modern, minimal code size, CPU cache friendly routines. + Supports raw deflate streams or standard zlib streams with adler-32 checking. + + Limitations: + The callback API's are not implemented yet. No support for gzip headers or zlib static dictionaries. + I've tried to closely emulate zlib's various flavors of stream flushing and return status codes, but + there are no guarantees that miniz.c pulls this off perfectly. + + * PNG writing: See the tdefl_write_image_to_png_file_in_memory() function, originally written by + Alex Evans. Supports 1-4 bytes/pixel images. + + * ZIP archive API notes: + + The ZIP archive API's where designed with simplicity and efficiency in mind, with just enough abstraction to + get the job done with minimal fuss. There are simple API's to retrieve file information, read files from + existing archives, create new archives, append new files to existing archives, or clone archive data from + one archive to another. It supports archives located in memory or the heap, on disk (using stdio.h), + or you can specify custom file read/write callbacks. + + - Archive reading: Just call this function to read a single file from a disk archive: + + void *mz_zip_extract_archive_file_to_heap(const char *pZip_filename, const char *pArchive_name, + size_t *pSize, mz_uint zip_flags); + + For more complex cases, use the "mz_zip_reader" functions. Upon opening an archive, the entire central + directory is located and read as-is into memory, and subsequent file access only occurs when reading individual files. + + - Archives file scanning: The simple way is to use this function to scan a loaded archive for a specific file: + + int mz_zip_reader_locate_file(mz_zip_archive *pZip, const char *pName, const char *pComment, mz_uint flags); + + The locate operation can optionally check file comments too, which (as one example) can be used to identify + multiple versions of the same file in an archive. This function uses a simple linear search through the central + directory, so it's not very fast. + + Alternately, you can iterate through all the files in an archive (using mz_zip_reader_get_num_files()) and + retrieve detailed info on each file by calling mz_zip_reader_file_stat(). + + - Archive creation: Use the "mz_zip_writer" functions. The ZIP writer immediately writes compressed file data + to disk and builds an exact image of the central directory in memory. The central directory image is written + all at once at the end of the archive file when the archive is finalized. + + The archive writer can optionally align each file's local header and file data to any power of 2 alignment, + which can be useful when the archive will be read from optical media. Also, the writer supports placing + arbitrary data blobs at the very beginning of ZIP archives. Archives written using either feature are still + readable by any ZIP tool. + + - Archive appending: The simple way to add a single file to an archive is to call this function: + + mz_bool mz_zip_add_mem_to_archive_file_in_place(const char *pZip_filename, const char *pArchive_name, + const void *pBuf, size_t buf_size, const void *pComment, mz_uint16 comment_size, mz_uint level_and_flags); + + The archive will be created if it doesn't already exist, otherwise it'll be appended to. + Note the appending is done in-place and is not an atomic operation, so if something goes wrong + during the operation it's possible the archive could be left without a central directory (although the local + file headers and file data will be fine, so the archive will be recoverable). + + For more complex archive modification scenarios: + 1. The safest way is to use a mz_zip_reader to read the existing archive, cloning only those bits you want to + preserve into a new archive using using the mz_zip_writer_add_from_zip_reader() function (which compiles the + compressed file data as-is). When you're done, delete the old archive and rename the newly written archive, and + you're done. This is safe but requires a bunch of temporary disk space or heap memory. + + 2. Or, you can convert an mz_zip_reader in-place to an mz_zip_writer using mz_zip_writer_init_from_reader(), + append new files as needed, then finalize the archive which will write an updated central directory to the + original archive. (This is basically what mz_zip_add_mem_to_archive_file_in_place() does.) There's a + possibility that the archive's central directory could be lost with this method if anything goes wrong, though. + + - ZIP archive support limitations: + No spanning support. Extraction functions can only handle unencrypted, stored or deflated files. + Requires streams capable of seeking. + + * This is a header file library, like stb_image.c. To get only a header file, either cut and paste the + below header, or create miniz.h, #define MINIZ_HEADER_FILE_ONLY, and then include miniz.c from it. + + * Important: For best perf. be sure to customize the below macros for your target platform: + #define MINIZ_USE_UNALIGNED_LOADS_AND_STORES 1 + #define MINIZ_LITTLE_ENDIAN 1 + #define MINIZ_HAS_64BIT_REGISTERS 1 + + * On platforms using glibc, Be sure to "#define _LARGEFILE64_SOURCE 1" before including miniz.c to ensure miniz + uses the 64-bit variants: fopen64(), stat64(), etc. Otherwise you won't be able to process large files + (i.e. 32-bit stat() fails for me on files > 0x7FFFFFFF bytes). +*/ +#pragma once + + + +/* Defines to completely disable specific portions of miniz.c: + If all macros here are defined the only functionality remaining will be CRC-32, adler-32, tinfl, and tdefl. */ + +/* Define MINIZ_NO_STDIO to disable all usage and any functions which rely on stdio for file I/O. */ +/*#define MINIZ_NO_STDIO */ + +/* If MINIZ_NO_TIME is specified then the ZIP archive functions will not be able to get the current time, or */ +/* get/set file times, and the C run-time funcs that get/set times won't be called. */ +/* The current downside is the times written to your archives will be from 1979. */ +/*#define MINIZ_NO_TIME */ + +/* Define MINIZ_NO_ARCHIVE_APIS to disable all ZIP archive API's. */ +/*#define MINIZ_NO_ARCHIVE_APIS */ + +/* Define MINIZ_NO_ARCHIVE_WRITING_APIS to disable all writing related ZIP archive API's. */ +/*#define MINIZ_NO_ARCHIVE_WRITING_APIS */ + +/* Define MINIZ_NO_ZLIB_APIS to remove all ZLIB-style compression/decompression API's. */ +/*#define MINIZ_NO_ZLIB_APIS */ + +/* Define MINIZ_NO_ZLIB_COMPATIBLE_NAME to disable zlib names, to prevent conflicts against stock zlib. */ +/*#define MINIZ_NO_ZLIB_COMPATIBLE_NAMES */ + +/* Define MINIZ_NO_MALLOC to disable all calls to malloc, free, and realloc. + Note if MINIZ_NO_MALLOC is defined then the user must always provide custom user alloc/free/realloc + callbacks to the zlib and archive API's, and a few stand-alone helper API's which don't provide custom user + functions (such as tdefl_compress_mem_to_heap() and tinfl_decompress_mem_to_heap()) won't work. */ +/*#define MINIZ_NO_MALLOC */ + +#if defined(__TINYC__) && (defined(__linux) || defined(__linux__)) +/* TODO: Work around "error: include file 'sys\utime.h' when compiling with tcc on Linux */ +#define MINIZ_NO_TIME +#endif + +#include + +#if !defined(MINIZ_NO_TIME) && !defined(MINIZ_NO_ARCHIVE_APIS) +#include +#endif + +#if defined(_M_IX86) || defined(_M_X64) || defined(__i386__) || defined(__i386) || defined(__i486__) || defined(__i486) || defined(i386) || defined(__ia64__) || defined(__x86_64__) +/* MINIZ_X86_OR_X64_CPU is only used to help set the below macros. */ +#define MINIZ_X86_OR_X64_CPU 1 +#else +#define MINIZ_X86_OR_X64_CPU 0 +#endif + +#if (__BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__) || MINIZ_X86_OR_X64_CPU +/* Set MINIZ_LITTLE_ENDIAN to 1 if the processor is little endian. */ +#define MINIZ_LITTLE_ENDIAN 1 +#else +#define MINIZ_LITTLE_ENDIAN 0 +#endif + +/* Set MINIZ_USE_UNALIGNED_LOADS_AND_STORES only if not set */ +#if !defined(MINIZ_USE_UNALIGNED_LOADS_AND_STORES) +#if MINIZ_X86_OR_X64_CPU +/* Set MINIZ_USE_UNALIGNED_LOADS_AND_STORES to 1 on CPU's that permit efficient integer loads and stores from unaligned addresses. */ +#define MINIZ_USE_UNALIGNED_LOADS_AND_STORES 1 +#define MINIZ_UNALIGNED_USE_MEMCPY +#else +#define MINIZ_USE_UNALIGNED_LOADS_AND_STORES 0 +#endif +#endif + +#if defined(_M_X64) || defined(_WIN64) || defined(__MINGW64__) || defined(_LP64) || defined(__LP64__) || defined(__ia64__) || defined(__x86_64__) +/* Set MINIZ_HAS_64BIT_REGISTERS to 1 if operations on 64-bit integers are reasonably fast (and don't involve compiler generated calls to helper functions). */ +#define MINIZ_HAS_64BIT_REGISTERS 1 +#else +#define MINIZ_HAS_64BIT_REGISTERS 0 +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +/* ------------------- zlib-style API Definitions. */ + +/* For more compatibility with zlib, miniz.c uses unsigned long for some parameters/struct members. Beware: mz_ulong can be either 32 or 64-bits! */ +typedef unsigned long mz_ulong; + +/* mz_free() internally uses the MZ_FREE() macro (which by default calls free() unless you've modified the MZ_MALLOC macro) to release a block allocated from the heap. */ +MINIZ_EXPORT void mz_free(void *p); + +#define MZ_ADLER32_INIT (1) +/* mz_adler32() returns the initial adler-32 value to use when called with ptr==NULL. */ +MINIZ_EXPORT mz_ulong mz_adler32(mz_ulong adler, const unsigned char *ptr, size_t buf_len); + +#define MZ_CRC32_INIT (0) +/* mz_crc32() returns the initial CRC-32 value to use when called with ptr==NULL. */ +MINIZ_EXPORT mz_ulong mz_crc32(mz_ulong crc, const unsigned char *ptr, size_t buf_len); + +/* Compression strategies. */ +enum +{ + MZ_DEFAULT_STRATEGY = 0, + MZ_FILTERED = 1, + MZ_HUFFMAN_ONLY = 2, + MZ_RLE = 3, + MZ_FIXED = 4 +}; + +/* Method */ +#define MZ_DEFLATED 8 + +/* Heap allocation callbacks. +Note that mz_alloc_func parameter types purposely differ from zlib's: items/size is size_t, not unsigned long. */ +typedef void *(*mz_alloc_func)(void *opaque, size_t items, size_t size); +typedef void (*mz_free_func)(void *opaque, void *address); +typedef void *(*mz_realloc_func)(void *opaque, void *address, size_t items, size_t size); + +/* Compression levels: 0-9 are the standard zlib-style levels, 10 is best possible compression (not zlib compatible, and may be very slow), MZ_DEFAULT_COMPRESSION=MZ_DEFAULT_LEVEL. */ +enum +{ + MZ_NO_COMPRESSION = 0, + MZ_BEST_SPEED = 1, + MZ_BEST_COMPRESSION = 9, + MZ_UBER_COMPRESSION = 10, + MZ_DEFAULT_LEVEL = 6, + MZ_DEFAULT_COMPRESSION = -1 +}; + +#define MZ_VERSION "10.2.0" +#define MZ_VERNUM 0xA100 +#define MZ_VER_MAJOR 10 +#define MZ_VER_MINOR 2 +#define MZ_VER_REVISION 0 +#define MZ_VER_SUBREVISION 0 + +#ifndef MINIZ_NO_ZLIB_APIS + +/* Flush values. For typical usage you only need MZ_NO_FLUSH and MZ_FINISH. The other values are for advanced use (refer to the zlib docs). */ +enum +{ + MZ_NO_FLUSH = 0, + MZ_PARTIAL_FLUSH = 1, + MZ_SYNC_FLUSH = 2, + MZ_FULL_FLUSH = 3, + MZ_FINISH = 4, + MZ_BLOCK = 5 +}; + +/* Return status codes. MZ_PARAM_ERROR is non-standard. */ +enum +{ + MZ_OK = 0, + MZ_STREAM_END = 1, + MZ_NEED_DICT = 2, + MZ_ERRNO = -1, + MZ_STREAM_ERROR = -2, + MZ_DATA_ERROR = -3, + MZ_MEM_ERROR = -4, + MZ_BUF_ERROR = -5, + MZ_VERSION_ERROR = -6, + MZ_PARAM_ERROR = -10000 +}; + +/* Window bits */ +#define MZ_DEFAULT_WINDOW_BITS 15 + +struct mz_internal_state; + +/* Compression/decompression stream struct. */ +typedef struct mz_stream_s +{ + const unsigned char *next_in; /* pointer to next byte to read */ + unsigned int avail_in; /* number of bytes available at next_in */ + mz_ulong total_in; /* total number of bytes consumed so far */ + + unsigned char *next_out; /* pointer to next byte to write */ + unsigned int avail_out; /* number of bytes that can be written to next_out */ + mz_ulong total_out; /* total number of bytes produced so far */ + + char *msg; /* error msg (unused) */ + struct mz_internal_state *state; /* internal state, allocated by zalloc/zfree */ + + mz_alloc_func zalloc; /* optional heap allocation function (defaults to malloc) */ + mz_free_func zfree; /* optional heap free function (defaults to free) */ + void *opaque; /* heap alloc function user pointer */ + + int data_type; /* data_type (unused) */ + mz_ulong adler; /* adler32 of the source or uncompressed data */ + mz_ulong reserved; /* not used */ +} mz_stream; + +typedef mz_stream *mz_streamp; + +/* Returns the version string of miniz.c. */ +MINIZ_EXPORT const char *mz_version(void); + +/* mz_deflateInit() initializes a compressor with default options: */ +/* Parameters: */ +/* pStream must point to an initialized mz_stream struct. */ +/* level must be between [MZ_NO_COMPRESSION, MZ_BEST_COMPRESSION]. */ +/* level 1 enables a specially optimized compression function that's been optimized purely for performance, not ratio. */ +/* (This special func. is currently only enabled when MINIZ_USE_UNALIGNED_LOADS_AND_STORES and MINIZ_LITTLE_ENDIAN are defined.) */ +/* Return values: */ +/* MZ_OK on success. */ +/* MZ_STREAM_ERROR if the stream is bogus. */ +/* MZ_PARAM_ERROR if the input parameters are bogus. */ +/* MZ_MEM_ERROR on out of memory. */ +MINIZ_EXPORT int mz_deflateInit(mz_streamp pStream, int level); + +/* mz_deflateInit2() is like mz_deflate(), except with more control: */ +/* Additional parameters: */ +/* method must be MZ_DEFLATED */ +/* window_bits must be MZ_DEFAULT_WINDOW_BITS (to wrap the deflate stream with zlib header/adler-32 footer) or -MZ_DEFAULT_WINDOW_BITS (raw deflate/no header or footer) */ +/* mem_level must be between [1, 9] (it's checked but ignored by miniz.c) */ +MINIZ_EXPORT int mz_deflateInit2(mz_streamp pStream, int level, int method, int window_bits, int mem_level, int strategy); + +/* Quickly resets a compressor without having to reallocate anything. Same as calling mz_deflateEnd() followed by mz_deflateInit()/mz_deflateInit2(). */ +MINIZ_EXPORT int mz_deflateReset(mz_streamp pStream); + +/* mz_deflate() compresses the input to output, consuming as much of the input and producing as much output as possible. */ +/* Parameters: */ +/* pStream is the stream to read from and write to. You must initialize/update the next_in, avail_in, next_out, and avail_out members. */ +/* flush may be MZ_NO_FLUSH, MZ_PARTIAL_FLUSH/MZ_SYNC_FLUSH, MZ_FULL_FLUSH, or MZ_FINISH. */ +/* Return values: */ +/* MZ_OK on success (when flushing, or if more input is needed but not available, and/or there's more output to be written but the output buffer is full). */ +/* MZ_STREAM_END if all input has been consumed and all output bytes have been written. Don't call mz_deflate() on the stream anymore. */ +/* MZ_STREAM_ERROR if the stream is bogus. */ +/* MZ_PARAM_ERROR if one of the parameters is invalid. */ +/* MZ_BUF_ERROR if no forward progress is possible because the input and/or output buffers are empty. (Fill up the input buffer or free up some output space and try again.) */ +MINIZ_EXPORT int mz_deflate(mz_streamp pStream, int flush); + +/* mz_deflateEnd() deinitializes a compressor: */ +/* Return values: */ +/* MZ_OK on success. */ +/* MZ_STREAM_ERROR if the stream is bogus. */ +MINIZ_EXPORT int mz_deflateEnd(mz_streamp pStream); + +/* mz_deflateBound() returns a (very) conservative upper bound on the amount of data that could be generated by deflate(), assuming flush is set to only MZ_NO_FLUSH or MZ_FINISH. */ +MINIZ_EXPORT mz_ulong mz_deflateBound(mz_streamp pStream, mz_ulong source_len); + +/* Single-call compression functions mz_compress() and mz_compress2(): */ +/* Returns MZ_OK on success, or one of the error codes from mz_deflate() on failure. */ +MINIZ_EXPORT int mz_compress(unsigned char *pDest, mz_ulong *pDest_len, const unsigned char *pSource, mz_ulong source_len); +MINIZ_EXPORT int mz_compress2(unsigned char *pDest, mz_ulong *pDest_len, const unsigned char *pSource, mz_ulong source_len, int level); + +/* mz_compressBound() returns a (very) conservative upper bound on the amount of data that could be generated by calling mz_compress(). */ +MINIZ_EXPORT mz_ulong mz_compressBound(mz_ulong source_len); + +/* Initializes a decompressor. */ +MINIZ_EXPORT int mz_inflateInit(mz_streamp pStream); + +/* mz_inflateInit2() is like mz_inflateInit() with an additional option that controls the window size and whether or not the stream has been wrapped with a zlib header/footer: */ +/* window_bits must be MZ_DEFAULT_WINDOW_BITS (to parse zlib header/footer) or -MZ_DEFAULT_WINDOW_BITS (raw deflate). */ +MINIZ_EXPORT int mz_inflateInit2(mz_streamp pStream, int window_bits); + +/* Quickly resets a compressor without having to reallocate anything. Same as calling mz_inflateEnd() followed by mz_inflateInit()/mz_inflateInit2(). */ +MINIZ_EXPORT int mz_inflateReset(mz_streamp pStream); + +/* Decompresses the input stream to the output, consuming only as much of the input as needed, and writing as much to the output as possible. */ +/* Parameters: */ +/* pStream is the stream to read from and write to. You must initialize/update the next_in, avail_in, next_out, and avail_out members. */ +/* flush may be MZ_NO_FLUSH, MZ_SYNC_FLUSH, or MZ_FINISH. */ +/* On the first call, if flush is MZ_FINISH it's assumed the input and output buffers are both sized large enough to decompress the entire stream in a single call (this is slightly faster). */ +/* MZ_FINISH implies that there are no more source bytes available beside what's already in the input buffer, and that the output buffer is large enough to hold the rest of the decompressed data. */ +/* Return values: */ +/* MZ_OK on success. Either more input is needed but not available, and/or there's more output to be written but the output buffer is full. */ +/* MZ_STREAM_END if all needed input has been consumed and all output bytes have been written. For zlib streams, the adler-32 of the decompressed data has also been verified. */ +/* MZ_STREAM_ERROR if the stream is bogus. */ +/* MZ_DATA_ERROR if the deflate stream is invalid. */ +/* MZ_PARAM_ERROR if one of the parameters is invalid. */ +/* MZ_BUF_ERROR if no forward progress is possible because the input buffer is empty but the inflater needs more input to continue, or if the output buffer is not large enough. Call mz_inflate() again */ +/* with more input data, or with more room in the output buffer (except when using single call decompression, described above). */ +MINIZ_EXPORT int mz_inflate(mz_streamp pStream, int flush); + +/* Deinitializes a decompressor. */ +MINIZ_EXPORT int mz_inflateEnd(mz_streamp pStream); + +/* Single-call decompression. */ +/* Returns MZ_OK on success, or one of the error codes from mz_inflate() on failure. */ +MINIZ_EXPORT int mz_uncompress(unsigned char *pDest, mz_ulong *pDest_len, const unsigned char *pSource, mz_ulong source_len); +MINIZ_EXPORT int mz_uncompress2(unsigned char *pDest, mz_ulong *pDest_len, const unsigned char *pSource, mz_ulong *pSource_len); + +/* Returns a string description of the specified error code, or NULL if the error code is invalid. */ +MINIZ_EXPORT const char *mz_error(int err); + +/* Redefine zlib-compatible names to miniz equivalents, so miniz.c can be used as a drop-in replacement for the subset of zlib that miniz.c supports. */ +/* Define MINIZ_NO_ZLIB_COMPATIBLE_NAMES to disable zlib-compatibility if you use zlib in the same project. */ +#ifndef MINIZ_NO_ZLIB_COMPATIBLE_NAMES +typedef unsigned char Byte; +typedef unsigned int uInt; +typedef mz_ulong uLong; +typedef Byte Bytef; +typedef uInt uIntf; +typedef char charf; +typedef int intf; +typedef void *voidpf; +typedef uLong uLongf; +typedef void *voidp; +typedef void *const voidpc; +#define Z_NULL 0 +#define Z_NO_FLUSH MZ_NO_FLUSH +#define Z_PARTIAL_FLUSH MZ_PARTIAL_FLUSH +#define Z_SYNC_FLUSH MZ_SYNC_FLUSH +#define Z_FULL_FLUSH MZ_FULL_FLUSH +#define Z_FINISH MZ_FINISH +#define Z_BLOCK MZ_BLOCK +#define Z_OK MZ_OK +#define Z_STREAM_END MZ_STREAM_END +#define Z_NEED_DICT MZ_NEED_DICT +#define Z_ERRNO MZ_ERRNO +#define Z_STREAM_ERROR MZ_STREAM_ERROR +#define Z_DATA_ERROR MZ_DATA_ERROR +#define Z_MEM_ERROR MZ_MEM_ERROR +#define Z_BUF_ERROR MZ_BUF_ERROR +#define Z_VERSION_ERROR MZ_VERSION_ERROR +#define Z_PARAM_ERROR MZ_PARAM_ERROR +#define Z_NO_COMPRESSION MZ_NO_COMPRESSION +#define Z_BEST_SPEED MZ_BEST_SPEED +#define Z_BEST_COMPRESSION MZ_BEST_COMPRESSION +#define Z_DEFAULT_COMPRESSION MZ_DEFAULT_COMPRESSION +#define Z_DEFAULT_STRATEGY MZ_DEFAULT_STRATEGY +#define Z_FILTERED MZ_FILTERED +#define Z_HUFFMAN_ONLY MZ_HUFFMAN_ONLY +#define Z_RLE MZ_RLE +#define Z_FIXED MZ_FIXED +#define Z_DEFLATED MZ_DEFLATED +#define Z_DEFAULT_WINDOW_BITS MZ_DEFAULT_WINDOW_BITS +#define alloc_func mz_alloc_func +#define free_func mz_free_func +#define internal_state mz_internal_state +#define z_stream mz_stream +#define deflateInit mz_deflateInit +#define deflateInit2 mz_deflateInit2 +#define deflateReset mz_deflateReset +#define deflate mz_deflate +#define deflateEnd mz_deflateEnd +#define deflateBound mz_deflateBound +#define compress mz_compress +#define compress2 mz_compress2 +#define compressBound mz_compressBound +#define inflateInit mz_inflateInit +#define inflateInit2 mz_inflateInit2 +#define inflateReset mz_inflateReset +#define inflate mz_inflate +#define inflateEnd mz_inflateEnd +#define uncompress mz_uncompress +#define uncompress2 mz_uncompress2 +#define crc32 mz_crc32 +#define adler32 mz_adler32 +#define MAX_WBITS 15 +#define MAX_MEM_LEVEL 9 +#define zError mz_error +#define ZLIB_VERSION MZ_VERSION +#define ZLIB_VERNUM MZ_VERNUM +#define ZLIB_VER_MAJOR MZ_VER_MAJOR +#define ZLIB_VER_MINOR MZ_VER_MINOR +#define ZLIB_VER_REVISION MZ_VER_REVISION +#define ZLIB_VER_SUBREVISION MZ_VER_SUBREVISION +#define zlibVersion mz_version +#define zlib_version mz_version() +#endif /* #ifndef MINIZ_NO_ZLIB_COMPATIBLE_NAMES */ + +#endif /* MINIZ_NO_ZLIB_APIS */ + +#ifdef __cplusplus +} +#endif + + + + + +#pragma once +#include +#include +#include +#include + + + +/* ------------------- Types and macros */ +typedef unsigned char mz_uint8; +typedef signed short mz_int16; +typedef unsigned short mz_uint16; +typedef unsigned int mz_uint32; +typedef unsigned int mz_uint; +typedef int64_t mz_int64; +typedef uint64_t mz_uint64; +typedef int mz_bool; + +#define MZ_FALSE (0) +#define MZ_TRUE (1) + +/* Works around MSVC's spammy "warning C4127: conditional expression is constant" message. */ +#ifdef _MSC_VER +#define MZ_MACRO_END while (0, 0) +#else +#define MZ_MACRO_END while (0) +#endif + +#ifdef MINIZ_NO_STDIO +#define MZ_FILE void * +#else +#include +#define MZ_FILE FILE +#endif /* #ifdef MINIZ_NO_STDIO */ + +#ifdef MINIZ_NO_TIME +typedef struct mz_dummy_time_t_tag +{ + int m_dummy; +} mz_dummy_time_t; +#define MZ_TIME_T mz_dummy_time_t +#else +#define MZ_TIME_T time_t +#endif + +#define MZ_ASSERT(x) assert(x) + +#ifdef MINIZ_NO_MALLOC +#define MZ_MALLOC(x) NULL +#define MZ_FREE(x) (void)x, ((void)0) +#define MZ_REALLOC(p, x) NULL +#else +#define MZ_MALLOC(x) malloc(x) +#define MZ_FREE(x) free(x) +#define MZ_REALLOC(p, x) realloc(p, x) +#endif + +#define MZ_MAX(a, b) (((a) > (b)) ? (a) : (b)) +#define MZ_MIN(a, b) (((a) < (b)) ? (a) : (b)) +#define MZ_CLEAR_OBJ(obj) memset(&(obj), 0, sizeof(obj)) + +#if MINIZ_USE_UNALIGNED_LOADS_AND_STORES && MINIZ_LITTLE_ENDIAN +#define MZ_READ_LE16(p) *((const mz_uint16 *)(p)) +#define MZ_READ_LE32(p) *((const mz_uint32 *)(p)) +#else +#define MZ_READ_LE16(p) ((mz_uint32)(((const mz_uint8 *)(p))[0]) | ((mz_uint32)(((const mz_uint8 *)(p))[1]) << 8U)) +#define MZ_READ_LE32(p) ((mz_uint32)(((const mz_uint8 *)(p))[0]) | ((mz_uint32)(((const mz_uint8 *)(p))[1]) << 8U) | ((mz_uint32)(((const mz_uint8 *)(p))[2]) << 16U) | ((mz_uint32)(((const mz_uint8 *)(p))[3]) << 24U)) +#endif + +#define MZ_READ_LE64(p) (((mz_uint64)MZ_READ_LE32(p)) | (((mz_uint64)MZ_READ_LE32((const mz_uint8 *)(p) + sizeof(mz_uint32))) << 32U)) + +#ifdef _MSC_VER +#define MZ_FORCEINLINE __forceinline +#elif defined(__GNUC__) +#define MZ_FORCEINLINE __inline__ __attribute__((__always_inline__)) +#else +#define MZ_FORCEINLINE inline +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +extern MINIZ_EXPORT void *miniz_def_alloc_func(void *opaque, size_t items, size_t size); +extern MINIZ_EXPORT void miniz_def_free_func(void *opaque, void *address); +extern MINIZ_EXPORT void *miniz_def_realloc_func(void *opaque, void *address, size_t items, size_t size); + +#define MZ_UINT16_MAX (0xFFFFU) +#define MZ_UINT32_MAX (0xFFFFFFFFU) + +#ifdef __cplusplus +} +#endif + #pragma once + + +#ifdef __cplusplus +extern "C" { +#endif +/* ------------------- Low-level Compression API Definitions */ + +/* Set TDEFL_LESS_MEMORY to 1 to use less memory (compression will be slightly slower, and raw/dynamic blocks will be output more frequently). */ +#define TDEFL_LESS_MEMORY 0 + +/* tdefl_init() compression flags logically OR'd together (low 12 bits contain the max. number of probes per dictionary search): */ +/* TDEFL_DEFAULT_MAX_PROBES: The compressor defaults to 128 dictionary probes per dictionary search. 0=Huffman only, 1=Huffman+LZ (fastest/crap compression), 4095=Huffman+LZ (slowest/best compression). */ +enum +{ + TDEFL_HUFFMAN_ONLY = 0, + TDEFL_DEFAULT_MAX_PROBES = 128, + TDEFL_MAX_PROBES_MASK = 0xFFF +}; + +/* TDEFL_WRITE_ZLIB_HEADER: If set, the compressor outputs a zlib header before the deflate data, and the Adler-32 of the source data at the end. Otherwise, you'll get raw deflate data. */ +/* TDEFL_COMPUTE_ADLER32: Always compute the adler-32 of the input data (even when not writing zlib headers). */ +/* TDEFL_GREEDY_PARSING_FLAG: Set to use faster greedy parsing, instead of more efficient lazy parsing. */ +/* TDEFL_NONDETERMINISTIC_PARSING_FLAG: Enable to decrease the compressor's initialization time to the minimum, but the output may vary from run to run given the same input (depending on the contents of memory). */ +/* TDEFL_RLE_MATCHES: Only look for RLE matches (matches with a distance of 1) */ +/* TDEFL_FILTER_MATCHES: Discards matches <= 5 chars if enabled. */ +/* TDEFL_FORCE_ALL_STATIC_BLOCKS: Disable usage of optimized Huffman tables. */ +/* TDEFL_FORCE_ALL_RAW_BLOCKS: Only use raw (uncompressed) deflate blocks. */ +/* The low 12 bits are reserved to control the max # of hash probes per dictionary lookup (see TDEFL_MAX_PROBES_MASK). */ +enum +{ + TDEFL_WRITE_ZLIB_HEADER = 0x01000, + TDEFL_COMPUTE_ADLER32 = 0x02000, + TDEFL_GREEDY_PARSING_FLAG = 0x04000, + TDEFL_NONDETERMINISTIC_PARSING_FLAG = 0x08000, + TDEFL_RLE_MATCHES = 0x10000, + TDEFL_FILTER_MATCHES = 0x20000, + TDEFL_FORCE_ALL_STATIC_BLOCKS = 0x40000, + TDEFL_FORCE_ALL_RAW_BLOCKS = 0x80000 +}; + +/* High level compression functions: */ +/* tdefl_compress_mem_to_heap() compresses a block in memory to a heap block allocated via malloc(). */ +/* On entry: */ +/* pSrc_buf, src_buf_len: Pointer and size of source block to compress. */ +/* flags: The max match finder probes (default is 128) logically OR'd against the above flags. Higher probes are slower but improve compression. */ +/* On return: */ +/* Function returns a pointer to the compressed data, or NULL on failure. */ +/* *pOut_len will be set to the compressed data's size, which could be larger than src_buf_len on uncompressible data. */ +/* The caller must free() the returned block when it's no longer needed. */ +MINIZ_EXPORT void *tdefl_compress_mem_to_heap(const void *pSrc_buf, size_t src_buf_len, size_t *pOut_len, int flags); + +/* tdefl_compress_mem_to_mem() compresses a block in memory to another block in memory. */ +/* Returns 0 on failure. */ +MINIZ_EXPORT size_t tdefl_compress_mem_to_mem(void *pOut_buf, size_t out_buf_len, const void *pSrc_buf, size_t src_buf_len, int flags); + +/* Compresses an image to a compressed PNG file in memory. */ +/* On entry: */ +/* pImage, w, h, and num_chans describe the image to compress. num_chans may be 1, 2, 3, or 4. */ +/* The image pitch in bytes per scanline will be w*num_chans. The leftmost pixel on the top scanline is stored first in memory. */ +/* level may range from [0,10], use MZ_NO_COMPRESSION, MZ_BEST_SPEED, MZ_BEST_COMPRESSION, etc. or a decent default is MZ_DEFAULT_LEVEL */ +/* If flip is true, the image will be flipped on the Y axis (useful for OpenGL apps). */ +/* On return: */ +/* Function returns a pointer to the compressed data, or NULL on failure. */ +/* *pLen_out will be set to the size of the PNG image file. */ +/* The caller must mz_free() the returned heap block (which will typically be larger than *pLen_out) when it's no longer needed. */ +MINIZ_EXPORT void *tdefl_write_image_to_png_file_in_memory_ex(const void *pImage, int w, int h, int num_chans, size_t *pLen_out, mz_uint level, mz_bool flip); +MINIZ_EXPORT void *tdefl_write_image_to_png_file_in_memory(const void *pImage, int w, int h, int num_chans, size_t *pLen_out); + +/* Output stream interface. The compressor uses this interface to write compressed data. It'll typically be called TDEFL_OUT_BUF_SIZE at a time. */ +typedef mz_bool (*tdefl_put_buf_func_ptr)(const void *pBuf, int len, void *pUser); + +/* tdefl_compress_mem_to_output() compresses a block to an output stream. The above helpers use this function internally. */ +MINIZ_EXPORT mz_bool tdefl_compress_mem_to_output(const void *pBuf, size_t buf_len, tdefl_put_buf_func_ptr pPut_buf_func, void *pPut_buf_user, int flags); + +enum +{ + TDEFL_MAX_HUFF_TABLES = 3, + TDEFL_MAX_HUFF_SYMBOLS_0 = 288, + TDEFL_MAX_HUFF_SYMBOLS_1 = 32, + TDEFL_MAX_HUFF_SYMBOLS_2 = 19, + TDEFL_LZ_DICT_SIZE = 32768, + TDEFL_LZ_DICT_SIZE_MASK = TDEFL_LZ_DICT_SIZE - 1, + TDEFL_MIN_MATCH_LEN = 3, + TDEFL_MAX_MATCH_LEN = 258 +}; + +/* TDEFL_OUT_BUF_SIZE MUST be large enough to hold a single entire compressed output block (using static/fixed Huffman codes). */ +#if TDEFL_LESS_MEMORY +enum +{ + TDEFL_LZ_CODE_BUF_SIZE = 24 * 1024, + TDEFL_OUT_BUF_SIZE = (TDEFL_LZ_CODE_BUF_SIZE * 13) / 10, + TDEFL_MAX_HUFF_SYMBOLS = 288, + TDEFL_LZ_HASH_BITS = 12, + TDEFL_LEVEL1_HASH_SIZE_MASK = 4095, + TDEFL_LZ_HASH_SHIFT = (TDEFL_LZ_HASH_BITS + 2) / 3, + TDEFL_LZ_HASH_SIZE = 1 << TDEFL_LZ_HASH_BITS +}; +#else +enum +{ + TDEFL_LZ_CODE_BUF_SIZE = 64 * 1024, + TDEFL_OUT_BUF_SIZE = (TDEFL_LZ_CODE_BUF_SIZE * 13) / 10, + TDEFL_MAX_HUFF_SYMBOLS = 288, + TDEFL_LZ_HASH_BITS = 15, + TDEFL_LEVEL1_HASH_SIZE_MASK = 4095, + TDEFL_LZ_HASH_SHIFT = (TDEFL_LZ_HASH_BITS + 2) / 3, + TDEFL_LZ_HASH_SIZE = 1 << TDEFL_LZ_HASH_BITS +}; +#endif + +/* The low-level tdefl functions below may be used directly if the above helper functions aren't flexible enough. The low-level functions don't make any heap allocations, unlike the above helper functions. */ +typedef enum { + TDEFL_STATUS_BAD_PARAM = -2, + TDEFL_STATUS_PUT_BUF_FAILED = -1, + TDEFL_STATUS_OKAY = 0, + TDEFL_STATUS_DONE = 1 +} tdefl_status; + +/* Must map to MZ_NO_FLUSH, MZ_SYNC_FLUSH, etc. enums */ +typedef enum { + TDEFL_NO_FLUSH = 0, + TDEFL_SYNC_FLUSH = 2, + TDEFL_FULL_FLUSH = 3, + TDEFL_FINISH = 4 +} tdefl_flush; + +/* tdefl's compression state structure. */ +typedef struct +{ + tdefl_put_buf_func_ptr m_pPut_buf_func; + void *m_pPut_buf_user; + mz_uint m_flags, m_max_probes[2]; + int m_greedy_parsing; + mz_uint m_adler32, m_lookahead_pos, m_lookahead_size, m_dict_size; + mz_uint8 *m_pLZ_code_buf, *m_pLZ_flags, *m_pOutput_buf, *m_pOutput_buf_end; + mz_uint m_num_flags_left, m_total_lz_bytes, m_lz_code_buf_dict_pos, m_bits_in, m_bit_buffer; + mz_uint m_saved_match_dist, m_saved_match_len, m_saved_lit, m_output_flush_ofs, m_output_flush_remaining, m_finished, m_block_index, m_wants_to_finish; + tdefl_status m_prev_return_status; + const void *m_pIn_buf; + void *m_pOut_buf; + size_t *m_pIn_buf_size, *m_pOut_buf_size; + tdefl_flush m_flush; + const mz_uint8 *m_pSrc; + size_t m_src_buf_left, m_out_buf_ofs; + mz_uint8 m_dict[TDEFL_LZ_DICT_SIZE + TDEFL_MAX_MATCH_LEN - 1]; + mz_uint16 m_huff_count[TDEFL_MAX_HUFF_TABLES][TDEFL_MAX_HUFF_SYMBOLS]; + mz_uint16 m_huff_codes[TDEFL_MAX_HUFF_TABLES][TDEFL_MAX_HUFF_SYMBOLS]; + mz_uint8 m_huff_code_sizes[TDEFL_MAX_HUFF_TABLES][TDEFL_MAX_HUFF_SYMBOLS]; + mz_uint8 m_lz_code_buf[TDEFL_LZ_CODE_BUF_SIZE]; + mz_uint16 m_next[TDEFL_LZ_DICT_SIZE]; + mz_uint16 m_hash[TDEFL_LZ_HASH_SIZE]; + mz_uint8 m_output_buf[TDEFL_OUT_BUF_SIZE]; +} tdefl_compressor; + +/* Initializes the compressor. */ +/* There is no corresponding deinit() function because the tdefl API's do not dynamically allocate memory. */ +/* pBut_buf_func: If NULL, output data will be supplied to the specified callback. In this case, the user should call the tdefl_compress_buffer() API for compression. */ +/* If pBut_buf_func is NULL the user should always call the tdefl_compress() API. */ +/* flags: See the above enums (TDEFL_HUFFMAN_ONLY, TDEFL_WRITE_ZLIB_HEADER, etc.) */ +MINIZ_EXPORT tdefl_status tdefl_init(tdefl_compressor *d, tdefl_put_buf_func_ptr pPut_buf_func, void *pPut_buf_user, int flags); + +/* Compresses a block of data, consuming as much of the specified input buffer as possible, and writing as much compressed data to the specified output buffer as possible. */ +MINIZ_EXPORT tdefl_status tdefl_compress(tdefl_compressor *d, const void *pIn_buf, size_t *pIn_buf_size, void *pOut_buf, size_t *pOut_buf_size, tdefl_flush flush); + +/* tdefl_compress_buffer() is only usable when the tdefl_init() is called with a non-NULL tdefl_put_buf_func_ptr. */ +/* tdefl_compress_buffer() always consumes the entire input buffer. */ +MINIZ_EXPORT tdefl_status tdefl_compress_buffer(tdefl_compressor *d, const void *pIn_buf, size_t in_buf_size, tdefl_flush flush); + +MINIZ_EXPORT tdefl_status tdefl_get_prev_return_status(tdefl_compressor *d); +MINIZ_EXPORT mz_uint32 tdefl_get_adler32(tdefl_compressor *d); + +/* Create tdefl_compress() flags given zlib-style compression parameters. */ +/* level may range from [0,10] (where 10 is absolute max compression, but may be much slower on some files) */ +/* window_bits may be -15 (raw deflate) or 15 (zlib) */ +/* strategy may be either MZ_DEFAULT_STRATEGY, MZ_FILTERED, MZ_HUFFMAN_ONLY, MZ_RLE, or MZ_FIXED */ +MINIZ_EXPORT mz_uint tdefl_create_comp_flags_from_zip_params(int level, int window_bits, int strategy); + +#ifndef MINIZ_NO_MALLOC +/* Allocate the tdefl_compressor structure in C so that */ +/* non-C language bindings to tdefl_ API don't need to worry about */ +/* structure size and allocation mechanism. */ +MINIZ_EXPORT tdefl_compressor *tdefl_compressor_alloc(void); +MINIZ_EXPORT void tdefl_compressor_free(tdefl_compressor *pComp); +#endif + +#ifdef __cplusplus +} +#endif + #pragma once + +/* ------------------- Low-level Decompression API Definitions */ + +#ifdef __cplusplus +extern "C" { +#endif +/* Decompression flags used by tinfl_decompress(). */ +/* TINFL_FLAG_PARSE_ZLIB_HEADER: If set, the input has a valid zlib header and ends with an adler32 checksum (it's a valid zlib stream). Otherwise, the input is a raw deflate stream. */ +/* TINFL_FLAG_HAS_MORE_INPUT: If set, there are more input bytes available beyond the end of the supplied input buffer. If clear, the input buffer contains all remaining input. */ +/* TINFL_FLAG_USING_NON_WRAPPING_OUTPUT_BUF: If set, the output buffer is large enough to hold the entire decompressed stream. If clear, the output buffer is at least the size of the dictionary (typically 32KB). */ +/* TINFL_FLAG_COMPUTE_ADLER32: Force adler-32 checksum computation of the decompressed bytes. */ +enum +{ + TINFL_FLAG_PARSE_ZLIB_HEADER = 1, + TINFL_FLAG_HAS_MORE_INPUT = 2, + TINFL_FLAG_USING_NON_WRAPPING_OUTPUT_BUF = 4, + TINFL_FLAG_COMPUTE_ADLER32 = 8 +}; + +/* High level decompression functions: */ +/* tinfl_decompress_mem_to_heap() decompresses a block in memory to a heap block allocated via malloc(). */ +/* On entry: */ +/* pSrc_buf, src_buf_len: Pointer and size of the Deflate or zlib source data to decompress. */ +/* On return: */ +/* Function returns a pointer to the decompressed data, or NULL on failure. */ +/* *pOut_len will be set to the decompressed data's size, which could be larger than src_buf_len on uncompressible data. */ +/* The caller must call mz_free() on the returned block when it's no longer needed. */ +MINIZ_EXPORT void *tinfl_decompress_mem_to_heap(const void *pSrc_buf, size_t src_buf_len, size_t *pOut_len, int flags); + +/* tinfl_decompress_mem_to_mem() decompresses a block in memory to another block in memory. */ +/* Returns TINFL_DECOMPRESS_MEM_TO_MEM_FAILED on failure, or the number of bytes written on success. */ +#define TINFL_DECOMPRESS_MEM_TO_MEM_FAILED ((size_t)(-1)) +MINIZ_EXPORT size_t tinfl_decompress_mem_to_mem(void *pOut_buf, size_t out_buf_len, const void *pSrc_buf, size_t src_buf_len, int flags); + +/* tinfl_decompress_mem_to_callback() decompresses a block in memory to an internal 32KB buffer, and a user provided callback function will be called to flush the buffer. */ +/* Returns 1 on success or 0 on failure. */ +typedef int (*tinfl_put_buf_func_ptr)(const void *pBuf, int len, void *pUser); +MINIZ_EXPORT int tinfl_decompress_mem_to_callback(const void *pIn_buf, size_t *pIn_buf_size, tinfl_put_buf_func_ptr pPut_buf_func, void *pPut_buf_user, int flags); + +struct tinfl_decompressor_tag; +typedef struct tinfl_decompressor_tag tinfl_decompressor; + +#ifndef MINIZ_NO_MALLOC +/* Allocate the tinfl_decompressor structure in C so that */ +/* non-C language bindings to tinfl_ API don't need to worry about */ +/* structure size and allocation mechanism. */ +MINIZ_EXPORT tinfl_decompressor *tinfl_decompressor_alloc(void); +MINIZ_EXPORT void tinfl_decompressor_free(tinfl_decompressor *pDecomp); +#endif + +/* Max size of LZ dictionary. */ +#define TINFL_LZ_DICT_SIZE 32768 + +/* Return status. */ +typedef enum { + /* This flags indicates the inflator needs 1 or more input bytes to make forward progress, but the caller is indicating that no more are available. The compressed data */ + /* is probably corrupted. If you call the inflator again with more bytes it'll try to continue processing the input but this is a BAD sign (either the data is corrupted or you called it incorrectly). */ + /* If you call it again with no input you'll just get TINFL_STATUS_FAILED_CANNOT_MAKE_PROGRESS again. */ + TINFL_STATUS_FAILED_CANNOT_MAKE_PROGRESS = -4, + + /* This flag indicates that one or more of the input parameters was obviously bogus. (You can try calling it again, but if you get this error the calling code is wrong.) */ + TINFL_STATUS_BAD_PARAM = -3, + + /* This flags indicate the inflator is finished but the adler32 check of the uncompressed data didn't match. If you call it again it'll return TINFL_STATUS_DONE. */ + TINFL_STATUS_ADLER32_MISMATCH = -2, + + /* This flags indicate the inflator has somehow failed (bad code, corrupted input, etc.). If you call it again without resetting via tinfl_init() it it'll just keep on returning the same status failure code. */ + TINFL_STATUS_FAILED = -1, + + /* Any status code less than TINFL_STATUS_DONE must indicate a failure. */ + + /* This flag indicates the inflator has returned every byte of uncompressed data that it can, has consumed every byte that it needed, has successfully reached the end of the deflate stream, and */ + /* if zlib headers and adler32 checking enabled that it has successfully checked the uncompressed data's adler32. If you call it again you'll just get TINFL_STATUS_DONE over and over again. */ + TINFL_STATUS_DONE = 0, + + /* This flag indicates the inflator MUST have more input data (even 1 byte) before it can make any more forward progress, or you need to clear the TINFL_FLAG_HAS_MORE_INPUT */ + /* flag on the next call if you don't have any more source data. If the source data was somehow corrupted it's also possible (but unlikely) for the inflator to keep on demanding input to */ + /* proceed, so be sure to properly set the TINFL_FLAG_HAS_MORE_INPUT flag. */ + TINFL_STATUS_NEEDS_MORE_INPUT = 1, + + /* This flag indicates the inflator definitely has 1 or more bytes of uncompressed data available, but it cannot write this data into the output buffer. */ + /* Note if the source compressed data was corrupted it's possible for the inflator to return a lot of uncompressed data to the caller. I've been assuming you know how much uncompressed data to expect */ + /* (either exact or worst case) and will stop calling the inflator and fail after receiving too much. In pure streaming scenarios where you have no idea how many bytes to expect this may not be possible */ + /* so I may need to add some code to address this. */ + TINFL_STATUS_HAS_MORE_OUTPUT = 2 +} tinfl_status; + +/* Initializes the decompressor to its initial state. */ +#define tinfl_init(r) \ + do \ + { \ + (r)->m_state = 0; \ + } \ + MZ_MACRO_END +#define tinfl_get_adler32(r) (r)->m_check_adler32 + +/* Main low-level decompressor coroutine function. This is the only function actually needed for decompression. All the other functions are just high-level helpers for improved usability. */ +/* This is a universal API, i.e. it can be used as a building block to build any desired higher level decompression API. In the limit case, it can be called once per every byte input or output. */ +MINIZ_EXPORT tinfl_status tinfl_decompress(tinfl_decompressor *r, const mz_uint8 *pIn_buf_next, size_t *pIn_buf_size, mz_uint8 *pOut_buf_start, mz_uint8 *pOut_buf_next, size_t *pOut_buf_size, const mz_uint32 decomp_flags); + +/* Internal/private bits follow. */ +enum +{ + TINFL_MAX_HUFF_TABLES = 3, + TINFL_MAX_HUFF_SYMBOLS_0 = 288, + TINFL_MAX_HUFF_SYMBOLS_1 = 32, + TINFL_MAX_HUFF_SYMBOLS_2 = 19, + TINFL_FAST_LOOKUP_BITS = 10, + TINFL_FAST_LOOKUP_SIZE = 1 << TINFL_FAST_LOOKUP_BITS +}; + +typedef struct +{ + mz_uint8 m_code_size[TINFL_MAX_HUFF_SYMBOLS_0]; + mz_int16 m_look_up[TINFL_FAST_LOOKUP_SIZE], m_tree[TINFL_MAX_HUFF_SYMBOLS_0 * 2]; +} tinfl_huff_table; + +#if MINIZ_HAS_64BIT_REGISTERS +#define TINFL_USE_64BIT_BITBUF 1 +#else +#define TINFL_USE_64BIT_BITBUF 0 +#endif + +#if TINFL_USE_64BIT_BITBUF +typedef mz_uint64 tinfl_bit_buf_t; +#define TINFL_BITBUF_SIZE (64) +#else +typedef mz_uint32 tinfl_bit_buf_t; +#define TINFL_BITBUF_SIZE (32) +#endif + +struct tinfl_decompressor_tag +{ + mz_uint32 m_state, m_num_bits, m_zhdr0, m_zhdr1, m_z_adler32, m_final, m_type, m_check_adler32, m_dist, m_counter, m_num_extra, m_table_sizes[TINFL_MAX_HUFF_TABLES]; + tinfl_bit_buf_t m_bit_buf; + size_t m_dist_from_out_buf_start; + tinfl_huff_table m_tables[TINFL_MAX_HUFF_TABLES]; + mz_uint8 m_raw_header[4], m_len_codes[TINFL_MAX_HUFF_SYMBOLS_0 + TINFL_MAX_HUFF_SYMBOLS_1 + 137]; +}; + +#ifdef __cplusplus +} +#endif + +#pragma once + + +/* ------------------- ZIP archive reading/writing */ + +#ifndef MINIZ_NO_ARCHIVE_APIS + +#ifdef __cplusplus +extern "C" { +#endif + +enum +{ + /* Note: These enums can be reduced as needed to save memory or stack space - they are pretty conservative. */ + MZ_ZIP_MAX_IO_BUF_SIZE = 64 * 1024, + MZ_ZIP_MAX_ARCHIVE_FILENAME_SIZE = 512, + MZ_ZIP_MAX_ARCHIVE_FILE_COMMENT_SIZE = 512 +}; + +typedef struct +{ + /* Central directory file index. */ + mz_uint32 m_file_index; + + /* Byte offset of this entry in the archive's central directory. Note we currently only support up to UINT_MAX or less bytes in the central dir. */ + mz_uint64 m_central_dir_ofs; + + /* These fields are copied directly from the zip's central dir. */ + mz_uint16 m_version_made_by; + mz_uint16 m_version_needed; + mz_uint16 m_bit_flag; + mz_uint16 m_method; + +#ifndef MINIZ_NO_TIME + MZ_TIME_T m_time; +#endif + + /* CRC-32 of uncompressed data. */ + mz_uint32 m_crc32; + + /* File's compressed size. */ + mz_uint64 m_comp_size; + + /* File's uncompressed size. Note, I've seen some old archives where directory entries had 512 bytes for their uncompressed sizes, but when you try to unpack them you actually get 0 bytes. */ + mz_uint64 m_uncomp_size; + + /* Zip internal and external file attributes. */ + mz_uint16 m_internal_attr; + mz_uint32 m_external_attr; + + /* Entry's local header file offset in bytes. */ + mz_uint64 m_local_header_ofs; + + /* Size of comment in bytes. */ + mz_uint32 m_comment_size; + + /* MZ_TRUE if the entry appears to be a directory. */ + mz_bool m_is_directory; + + /* MZ_TRUE if the entry uses encryption/strong encryption (which miniz_zip doesn't support) */ + mz_bool m_is_encrypted; + + /* MZ_TRUE if the file is not encrypted, a patch file, and if it uses a compression method we support. */ + mz_bool m_is_supported; + + /* Filename. If string ends in '/' it's a subdirectory entry. */ + /* Guaranteed to be zero terminated, may be truncated to fit. */ + char m_filename[MZ_ZIP_MAX_ARCHIVE_FILENAME_SIZE]; + + /* Comment field. */ + /* Guaranteed to be zero terminated, may be truncated to fit. */ + char m_comment[MZ_ZIP_MAX_ARCHIVE_FILE_COMMENT_SIZE]; + +} mz_zip_archive_file_stat; + +typedef size_t (*mz_file_read_func)(void *pOpaque, mz_uint64 file_ofs, void *pBuf, size_t n); +typedef size_t (*mz_file_write_func)(void *pOpaque, mz_uint64 file_ofs, const void *pBuf, size_t n); +typedef mz_bool (*mz_file_needs_keepalive)(void *pOpaque); + +struct mz_zip_internal_state_tag; +typedef struct mz_zip_internal_state_tag mz_zip_internal_state; + +typedef enum { + MZ_ZIP_MODE_INVALID = 0, + MZ_ZIP_MODE_READING = 1, + MZ_ZIP_MODE_WRITING = 2, + MZ_ZIP_MODE_WRITING_HAS_BEEN_FINALIZED = 3 +} mz_zip_mode; + +typedef enum { + MZ_ZIP_FLAG_CASE_SENSITIVE = 0x0100, + MZ_ZIP_FLAG_IGNORE_PATH = 0x0200, + MZ_ZIP_FLAG_COMPRESSED_DATA = 0x0400, + MZ_ZIP_FLAG_DO_NOT_SORT_CENTRAL_DIRECTORY = 0x0800, + MZ_ZIP_FLAG_VALIDATE_LOCATE_FILE_FLAG = 0x1000, /* if enabled, mz_zip_reader_locate_file() will be called on each file as its validated to ensure the func finds the file in the central dir (intended for testing) */ + MZ_ZIP_FLAG_VALIDATE_HEADERS_ONLY = 0x2000, /* validate the local headers, but don't decompress the entire file and check the crc32 */ + MZ_ZIP_FLAG_WRITE_ZIP64 = 0x4000, /* always use the zip64 file format, instead of the original zip file format with automatic switch to zip64. Use as flags parameter with mz_zip_writer_init*_v2 */ + MZ_ZIP_FLAG_WRITE_ALLOW_READING = 0x8000, + MZ_ZIP_FLAG_ASCII_FILENAME = 0x10000, + /*After adding a compressed file, seek back + to local file header and set the correct sizes*/ + MZ_ZIP_FLAG_WRITE_HEADER_SET_SIZE = 0x20000 +} mz_zip_flags; + +typedef enum { + MZ_ZIP_TYPE_INVALID = 0, + MZ_ZIP_TYPE_USER, + MZ_ZIP_TYPE_MEMORY, + MZ_ZIP_TYPE_HEAP, + MZ_ZIP_TYPE_FILE, + MZ_ZIP_TYPE_CFILE, + MZ_ZIP_TOTAL_TYPES +} mz_zip_type; + +/* miniz error codes. Be sure to update mz_zip_get_error_string() if you add or modify this enum. */ +typedef enum { + MZ_ZIP_NO_ERROR = 0, + MZ_ZIP_UNDEFINED_ERROR, + MZ_ZIP_TOO_MANY_FILES, + MZ_ZIP_FILE_TOO_LARGE, + MZ_ZIP_UNSUPPORTED_METHOD, + MZ_ZIP_UNSUPPORTED_ENCRYPTION, + MZ_ZIP_UNSUPPORTED_FEATURE, + MZ_ZIP_FAILED_FINDING_CENTRAL_DIR, + MZ_ZIP_NOT_AN_ARCHIVE, + MZ_ZIP_INVALID_HEADER_OR_CORRUPTED, + MZ_ZIP_UNSUPPORTED_MULTIDISK, + MZ_ZIP_DECOMPRESSION_FAILED, + MZ_ZIP_COMPRESSION_FAILED, + MZ_ZIP_UNEXPECTED_DECOMPRESSED_SIZE, + MZ_ZIP_CRC_CHECK_FAILED, + MZ_ZIP_UNSUPPORTED_CDIR_SIZE, + MZ_ZIP_ALLOC_FAILED, + MZ_ZIP_FILE_OPEN_FAILED, + MZ_ZIP_FILE_CREATE_FAILED, + MZ_ZIP_FILE_WRITE_FAILED, + MZ_ZIP_FILE_READ_FAILED, + MZ_ZIP_FILE_CLOSE_FAILED, + MZ_ZIP_FILE_SEEK_FAILED, + MZ_ZIP_FILE_STAT_FAILED, + MZ_ZIP_INVALID_PARAMETER, + MZ_ZIP_INVALID_FILENAME, + MZ_ZIP_BUF_TOO_SMALL, + MZ_ZIP_INTERNAL_ERROR, + MZ_ZIP_FILE_NOT_FOUND, + MZ_ZIP_ARCHIVE_TOO_LARGE, + MZ_ZIP_VALIDATION_FAILED, + MZ_ZIP_WRITE_CALLBACK_FAILED, + MZ_ZIP_TOTAL_ERRORS +} mz_zip_error; + +typedef struct +{ + mz_uint64 m_archive_size; + mz_uint64 m_central_directory_file_ofs; + + /* We only support up to UINT32_MAX files in zip64 mode. */ + mz_uint32 m_total_files; + mz_zip_mode m_zip_mode; + mz_zip_type m_zip_type; + mz_zip_error m_last_error; + + mz_uint64 m_file_offset_alignment; + + mz_alloc_func m_pAlloc; + mz_free_func m_pFree; + mz_realloc_func m_pRealloc; + void *m_pAlloc_opaque; + + mz_file_read_func m_pRead; + mz_file_write_func m_pWrite; + mz_file_needs_keepalive m_pNeeds_keepalive; + void *m_pIO_opaque; + + mz_zip_internal_state *m_pState; + +} mz_zip_archive; + +typedef struct +{ + mz_zip_archive *pZip; + mz_uint flags; + + int status; +#ifndef MINIZ_DISABLE_ZIP_READER_CRC32_CHECKS + mz_uint file_crc32; +#endif + mz_uint64 read_buf_size, read_buf_ofs, read_buf_avail, comp_remaining, out_buf_ofs, cur_file_ofs; + mz_zip_archive_file_stat file_stat; + void *pRead_buf; + void *pWrite_buf; + + size_t out_blk_remain; + + tinfl_decompressor inflator; + +} mz_zip_reader_extract_iter_state; + +/* -------- ZIP reading */ + +/* Inits a ZIP archive reader. */ +/* These functions read and validate the archive's central directory. */ +MINIZ_EXPORT mz_bool mz_zip_reader_init(mz_zip_archive *pZip, mz_uint64 size, mz_uint flags); + +MINIZ_EXPORT mz_bool mz_zip_reader_init_mem(mz_zip_archive *pZip, const void *pMem, size_t size, mz_uint flags); + +#ifndef MINIZ_NO_STDIO +/* Read a archive from a disk file. */ +/* file_start_ofs is the file offset where the archive actually begins, or 0. */ +/* actual_archive_size is the true total size of the archive, which may be smaller than the file's actual size on disk. If zero the entire file is treated as the archive. */ +MINIZ_EXPORT mz_bool mz_zip_reader_init_file(mz_zip_archive *pZip, const char *pFilename, mz_uint32 flags); +MINIZ_EXPORT mz_bool mz_zip_reader_init_file_v2(mz_zip_archive *pZip, const char *pFilename, mz_uint flags, mz_uint64 file_start_ofs, mz_uint64 archive_size); + +/* Read an archive from an already opened FILE, beginning at the current file position. */ +/* The archive is assumed to be archive_size bytes long. If archive_size is 0, then the entire rest of the file is assumed to contain the archive. */ +/* The FILE will NOT be closed when mz_zip_reader_end() is called. */ +MINIZ_EXPORT mz_bool mz_zip_reader_init_cfile(mz_zip_archive *pZip, MZ_FILE *pFile, mz_uint64 archive_size, mz_uint flags); +#endif + +/* Ends archive reading, freeing all allocations, and closing the input archive file if mz_zip_reader_init_file() was used. */ +MINIZ_EXPORT mz_bool mz_zip_reader_end(mz_zip_archive *pZip); + +/* -------- ZIP reading or writing */ + +/* Clears a mz_zip_archive struct to all zeros. */ +/* Important: This must be done before passing the struct to any mz_zip functions. */ +MINIZ_EXPORT void mz_zip_zero_struct(mz_zip_archive *pZip); + +MINIZ_EXPORT mz_zip_mode mz_zip_get_mode(mz_zip_archive *pZip); +MINIZ_EXPORT mz_zip_type mz_zip_get_type(mz_zip_archive *pZip); + +/* Returns the total number of files in the archive. */ +MINIZ_EXPORT mz_uint mz_zip_reader_get_num_files(mz_zip_archive *pZip); + +MINIZ_EXPORT mz_uint64 mz_zip_get_archive_size(mz_zip_archive *pZip); +MINIZ_EXPORT mz_uint64 mz_zip_get_archive_file_start_offset(mz_zip_archive *pZip); +MINIZ_EXPORT MZ_FILE *mz_zip_get_cfile(mz_zip_archive *pZip); + +/* Reads n bytes of raw archive data, starting at file offset file_ofs, to pBuf. */ +MINIZ_EXPORT size_t mz_zip_read_archive_data(mz_zip_archive *pZip, mz_uint64 file_ofs, void *pBuf, size_t n); + +/* All mz_zip funcs set the m_last_error field in the mz_zip_archive struct. These functions retrieve/manipulate this field. */ +/* Note that the m_last_error functionality is not thread safe. */ +MINIZ_EXPORT mz_zip_error mz_zip_set_last_error(mz_zip_archive *pZip, mz_zip_error err_num); +MINIZ_EXPORT mz_zip_error mz_zip_peek_last_error(mz_zip_archive *pZip); +MINIZ_EXPORT mz_zip_error mz_zip_clear_last_error(mz_zip_archive *pZip); +MINIZ_EXPORT mz_zip_error mz_zip_get_last_error(mz_zip_archive *pZip); +MINIZ_EXPORT const char *mz_zip_get_error_string(mz_zip_error mz_err); + +/* MZ_TRUE if the archive file entry is a directory entry. */ +MINIZ_EXPORT mz_bool mz_zip_reader_is_file_a_directory(mz_zip_archive *pZip, mz_uint file_index); + +/* MZ_TRUE if the file is encrypted/strong encrypted. */ +MINIZ_EXPORT mz_bool mz_zip_reader_is_file_encrypted(mz_zip_archive *pZip, mz_uint file_index); + +/* MZ_TRUE if the compression method is supported, and the file is not encrypted, and the file is not a compressed patch file. */ +MINIZ_EXPORT mz_bool mz_zip_reader_is_file_supported(mz_zip_archive *pZip, mz_uint file_index); + +/* Retrieves the filename of an archive file entry. */ +/* Returns the number of bytes written to pFilename, or if filename_buf_size is 0 this function returns the number of bytes needed to fully store the filename. */ +MINIZ_EXPORT mz_uint mz_zip_reader_get_filename(mz_zip_archive *pZip, mz_uint file_index, char *pFilename, mz_uint filename_buf_size); + +/* Attempts to locates a file in the archive's central directory. */ +/* Valid flags: MZ_ZIP_FLAG_CASE_SENSITIVE, MZ_ZIP_FLAG_IGNORE_PATH */ +/* Returns -1 if the file cannot be found. */ +MINIZ_EXPORT int mz_zip_reader_locate_file(mz_zip_archive *pZip, const char *pName, const char *pComment, mz_uint flags); +MINIZ_EXPORT mz_bool mz_zip_reader_locate_file_v2(mz_zip_archive *pZip, const char *pName, const char *pComment, mz_uint flags, mz_uint32 *file_index); + +/* Returns detailed information about an archive file entry. */ +MINIZ_EXPORT mz_bool mz_zip_reader_file_stat(mz_zip_archive *pZip, mz_uint file_index, mz_zip_archive_file_stat *pStat); + +/* MZ_TRUE if the file is in zip64 format. */ +/* A file is considered zip64 if it contained a zip64 end of central directory marker, or if it contained any zip64 extended file information fields in the central directory. */ +MINIZ_EXPORT mz_bool mz_zip_is_zip64(mz_zip_archive *pZip); + +/* Returns the total central directory size in bytes. */ +/* The current max supported size is <= MZ_UINT32_MAX. */ +MINIZ_EXPORT size_t mz_zip_get_central_dir_size(mz_zip_archive *pZip); + +/* Extracts a archive file to a memory buffer using no memory allocation. */ +/* There must be at least enough room on the stack to store the inflator's state (~34KB or so). */ +MINIZ_EXPORT mz_bool mz_zip_reader_extract_to_mem_no_alloc(mz_zip_archive *pZip, mz_uint file_index, void *pBuf, size_t buf_size, mz_uint flags, void *pUser_read_buf, size_t user_read_buf_size); +MINIZ_EXPORT mz_bool mz_zip_reader_extract_file_to_mem_no_alloc(mz_zip_archive *pZip, const char *pFilename, void *pBuf, size_t buf_size, mz_uint flags, void *pUser_read_buf, size_t user_read_buf_size); + +/* Extracts a archive file to a memory buffer. */ +MINIZ_EXPORT mz_bool mz_zip_reader_extract_to_mem(mz_zip_archive *pZip, mz_uint file_index, void *pBuf, size_t buf_size, mz_uint flags); +MINIZ_EXPORT mz_bool mz_zip_reader_extract_file_to_mem(mz_zip_archive *pZip, const char *pFilename, void *pBuf, size_t buf_size, mz_uint flags); + +/* Extracts a archive file to a dynamically allocated heap buffer. */ +/* The memory will be allocated via the mz_zip_archive's alloc/realloc functions. */ +/* Returns NULL and sets the last error on failure. */ +MINIZ_EXPORT void *mz_zip_reader_extract_to_heap(mz_zip_archive *pZip, mz_uint file_index, size_t *pSize, mz_uint flags); +MINIZ_EXPORT void *mz_zip_reader_extract_file_to_heap(mz_zip_archive *pZip, const char *pFilename, size_t *pSize, mz_uint flags); + +/* Extracts a archive file using a callback function to output the file's data. */ +MINIZ_EXPORT mz_bool mz_zip_reader_extract_to_callback(mz_zip_archive *pZip, mz_uint file_index, mz_file_write_func pCallback, void *pOpaque, mz_uint flags); +MINIZ_EXPORT mz_bool mz_zip_reader_extract_file_to_callback(mz_zip_archive *pZip, const char *pFilename, mz_file_write_func pCallback, void *pOpaque, mz_uint flags); + +/* Extract a file iteratively */ +MINIZ_EXPORT mz_zip_reader_extract_iter_state* mz_zip_reader_extract_iter_new(mz_zip_archive *pZip, mz_uint file_index, mz_uint flags); +MINIZ_EXPORT mz_zip_reader_extract_iter_state* mz_zip_reader_extract_file_iter_new(mz_zip_archive *pZip, const char *pFilename, mz_uint flags); +MINIZ_EXPORT size_t mz_zip_reader_extract_iter_read(mz_zip_reader_extract_iter_state* pState, void* pvBuf, size_t buf_size); +MINIZ_EXPORT mz_bool mz_zip_reader_extract_iter_free(mz_zip_reader_extract_iter_state* pState); + +#ifndef MINIZ_NO_STDIO +/* Extracts a archive file to a disk file and sets its last accessed and modified times. */ +/* This function only extracts files, not archive directory records. */ +MINIZ_EXPORT mz_bool mz_zip_reader_extract_to_file(mz_zip_archive *pZip, mz_uint file_index, const char *pDst_filename, mz_uint flags); +MINIZ_EXPORT mz_bool mz_zip_reader_extract_file_to_file(mz_zip_archive *pZip, const char *pArchive_filename, const char *pDst_filename, mz_uint flags); + +/* Extracts a archive file starting at the current position in the destination FILE stream. */ +MINIZ_EXPORT mz_bool mz_zip_reader_extract_to_cfile(mz_zip_archive *pZip, mz_uint file_index, MZ_FILE *File, mz_uint flags); +MINIZ_EXPORT mz_bool mz_zip_reader_extract_file_to_cfile(mz_zip_archive *pZip, const char *pArchive_filename, MZ_FILE *pFile, mz_uint flags); +#endif + +#if 0 +/* TODO */ + typedef void *mz_zip_streaming_extract_state_ptr; + mz_zip_streaming_extract_state_ptr mz_zip_streaming_extract_begin(mz_zip_archive *pZip, mz_uint file_index, mz_uint flags); + uint64_t mz_zip_streaming_extract_get_size(mz_zip_archive *pZip, mz_zip_streaming_extract_state_ptr pState); + uint64_t mz_zip_streaming_extract_get_cur_ofs(mz_zip_archive *pZip, mz_zip_streaming_extract_state_ptr pState); + mz_bool mz_zip_streaming_extract_seek(mz_zip_archive *pZip, mz_zip_streaming_extract_state_ptr pState, uint64_t new_ofs); + size_t mz_zip_streaming_extract_read(mz_zip_archive *pZip, mz_zip_streaming_extract_state_ptr pState, void *pBuf, size_t buf_size); + mz_bool mz_zip_streaming_extract_end(mz_zip_archive *pZip, mz_zip_streaming_extract_state_ptr pState); +#endif + +/* This function compares the archive's local headers, the optional local zip64 extended information block, and the optional descriptor following the compressed data vs. the data in the central directory. */ +/* It also validates that each file can be successfully uncompressed unless the MZ_ZIP_FLAG_VALIDATE_HEADERS_ONLY is specified. */ +MINIZ_EXPORT mz_bool mz_zip_validate_file(mz_zip_archive *pZip, mz_uint file_index, mz_uint flags); + +/* Validates an entire archive by calling mz_zip_validate_file() on each file. */ +MINIZ_EXPORT mz_bool mz_zip_validate_archive(mz_zip_archive *pZip, mz_uint flags); + +/* Misc utils/helpers, valid for ZIP reading or writing */ +MINIZ_EXPORT mz_bool mz_zip_validate_mem_archive(const void *pMem, size_t size, mz_uint flags, mz_zip_error *pErr); +MINIZ_EXPORT mz_bool mz_zip_validate_file_archive(const char *pFilename, mz_uint flags, mz_zip_error *pErr); + +/* Universal end function - calls either mz_zip_reader_end() or mz_zip_writer_end(). */ +MINIZ_EXPORT mz_bool mz_zip_end(mz_zip_archive *pZip); + +/* -------- ZIP writing */ + +#ifndef MINIZ_NO_ARCHIVE_WRITING_APIS + +/* Inits a ZIP archive writer. */ +/*Set pZip->m_pWrite (and pZip->m_pIO_opaque) before calling mz_zip_writer_init or mz_zip_writer_init_v2*/ +/*The output is streamable, i.e. file_ofs in mz_file_write_func always increases only by n*/ +MINIZ_EXPORT mz_bool mz_zip_writer_init(mz_zip_archive *pZip, mz_uint64 existing_size); +MINIZ_EXPORT mz_bool mz_zip_writer_init_v2(mz_zip_archive *pZip, mz_uint64 existing_size, mz_uint flags); + +MINIZ_EXPORT mz_bool mz_zip_writer_init_heap(mz_zip_archive *pZip, size_t size_to_reserve_at_beginning, size_t initial_allocation_size); +MINIZ_EXPORT mz_bool mz_zip_writer_init_heap_v2(mz_zip_archive *pZip, size_t size_to_reserve_at_beginning, size_t initial_allocation_size, mz_uint flags); + +#ifndef MINIZ_NO_STDIO +MINIZ_EXPORT mz_bool mz_zip_writer_init_file(mz_zip_archive *pZip, const char *pFilename, mz_uint64 size_to_reserve_at_beginning); +MINIZ_EXPORT mz_bool mz_zip_writer_init_file_v2(mz_zip_archive *pZip, const char *pFilename, mz_uint64 size_to_reserve_at_beginning, mz_uint flags); +MINIZ_EXPORT mz_bool mz_zip_writer_init_cfile(mz_zip_archive *pZip, MZ_FILE *pFile, mz_uint flags); +#endif + +/* Converts a ZIP archive reader object into a writer object, to allow efficient in-place file appends to occur on an existing archive. */ +/* For archives opened using mz_zip_reader_init_file, pFilename must be the archive's filename so it can be reopened for writing. If the file can't be reopened, mz_zip_reader_end() will be called. */ +/* For archives opened using mz_zip_reader_init_mem, the memory block must be growable using the realloc callback (which defaults to realloc unless you've overridden it). */ +/* Finally, for archives opened using mz_zip_reader_init, the mz_zip_archive's user provided m_pWrite function cannot be NULL. */ +/* Note: In-place archive modification is not recommended unless you know what you're doing, because if execution stops or something goes wrong before */ +/* the archive is finalized the file's central directory will be hosed. */ +MINIZ_EXPORT mz_bool mz_zip_writer_init_from_reader(mz_zip_archive *pZip, const char *pFilename); +MINIZ_EXPORT mz_bool mz_zip_writer_init_from_reader_v2(mz_zip_archive *pZip, const char *pFilename, mz_uint flags); + +/* Adds the contents of a memory buffer to an archive. These functions record the current local time into the archive. */ +/* To add a directory entry, call this method with an archive name ending in a forwardslash with an empty buffer. */ +/* level_and_flags - compression level (0-10, see MZ_BEST_SPEED, MZ_BEST_COMPRESSION, etc.) logically OR'd with zero or more mz_zip_flags, or just set to MZ_DEFAULT_COMPRESSION. */ +MINIZ_EXPORT mz_bool mz_zip_writer_add_mem(mz_zip_archive *pZip, const char *pArchive_name, const void *pBuf, size_t buf_size, mz_uint level_and_flags); + +/* Like mz_zip_writer_add_mem(), except you can specify a file comment field, and optionally supply the function with already compressed data. */ +/* uncomp_size/uncomp_crc32 are only used if the MZ_ZIP_FLAG_COMPRESSED_DATA flag is specified. */ +MINIZ_EXPORT mz_bool mz_zip_writer_add_mem_ex(mz_zip_archive *pZip, const char *pArchive_name, const void *pBuf, size_t buf_size, const void *pComment, mz_uint16 comment_size, mz_uint level_and_flags, + mz_uint64 uncomp_size, mz_uint32 uncomp_crc32); + +MINIZ_EXPORT mz_bool mz_zip_writer_add_mem_ex_v2(mz_zip_archive *pZip, const char *pArchive_name, const void *pBuf, size_t buf_size, const void *pComment, mz_uint16 comment_size, mz_uint level_and_flags, + mz_uint64 uncomp_size, mz_uint32 uncomp_crc32, MZ_TIME_T *last_modified, const char *user_extra_data_local, mz_uint user_extra_data_local_len, + const char *user_extra_data_central, mz_uint user_extra_data_central_len); + +/* Adds the contents of a file to an archive. This function also records the disk file's modified time into the archive. */ +/* File data is supplied via a read callback function. User mz_zip_writer_add_(c)file to add a file directly.*/ +MINIZ_EXPORT mz_bool mz_zip_writer_add_read_buf_callback(mz_zip_archive *pZip, const char *pArchive_name, mz_file_read_func read_callback, void* callback_opaque, mz_uint64 max_size, + const MZ_TIME_T *pFile_time, const void *pComment, mz_uint16 comment_size, mz_uint level_and_flags, const char *user_extra_data_local, mz_uint user_extra_data_local_len, + const char *user_extra_data_central, mz_uint user_extra_data_central_len); + + +#ifndef MINIZ_NO_STDIO +/* Adds the contents of a disk file to an archive. This function also records the disk file's modified time into the archive. */ +/* level_and_flags - compression level (0-10, see MZ_BEST_SPEED, MZ_BEST_COMPRESSION, etc.) logically OR'd with zero or more mz_zip_flags, or just set to MZ_DEFAULT_COMPRESSION. */ +MINIZ_EXPORT mz_bool mz_zip_writer_add_file(mz_zip_archive *pZip, const char *pArchive_name, const char *pSrc_filename, const void *pComment, mz_uint16 comment_size, mz_uint level_and_flags); + +/* Like mz_zip_writer_add_file(), except the file data is read from the specified FILE stream. */ +MINIZ_EXPORT mz_bool mz_zip_writer_add_cfile(mz_zip_archive *pZip, const char *pArchive_name, MZ_FILE *pSrc_file, mz_uint64 max_size, + const MZ_TIME_T *pFile_time, const void *pComment, mz_uint16 comment_size, mz_uint level_and_flags, const char *user_extra_data_local, mz_uint user_extra_data_local_len, + const char *user_extra_data_central, mz_uint user_extra_data_central_len); +#endif + +/* Adds a file to an archive by fully cloning the data from another archive. */ +/* This function fully clones the source file's compressed data (no recompression), along with its full filename, extra data (it may add or modify the zip64 local header extra data field), and the optional descriptor following the compressed data. */ +MINIZ_EXPORT mz_bool mz_zip_writer_add_from_zip_reader(mz_zip_archive *pZip, mz_zip_archive *pSource_zip, mz_uint src_file_index); + +/* Finalizes the archive by writing the central directory records followed by the end of central directory record. */ +/* After an archive is finalized, the only valid call on the mz_zip_archive struct is mz_zip_writer_end(). */ +/* An archive must be manually finalized by calling this function for it to be valid. */ +MINIZ_EXPORT mz_bool mz_zip_writer_finalize_archive(mz_zip_archive *pZip); + +/* Finalizes a heap archive, returning a poiner to the heap block and its size. */ +/* The heap block will be allocated using the mz_zip_archive's alloc/realloc callbacks. */ +MINIZ_EXPORT mz_bool mz_zip_writer_finalize_heap_archive(mz_zip_archive *pZip, void **ppBuf, size_t *pSize); + +/* Ends archive writing, freeing all allocations, and closing the output file if mz_zip_writer_init_file() was used. */ +/* Note for the archive to be valid, it *must* have been finalized before ending (this function will not do it for you). */ +MINIZ_EXPORT mz_bool mz_zip_writer_end(mz_zip_archive *pZip); + +/* -------- Misc. high-level helper functions: */ + +/* mz_zip_add_mem_to_archive_file_in_place() efficiently (but not atomically) appends a memory blob to a ZIP archive. */ +/* Note this is NOT a fully safe operation. If it crashes or dies in some way your archive can be left in a screwed up state (without a central directory). */ +/* level_and_flags - compression level (0-10, see MZ_BEST_SPEED, MZ_BEST_COMPRESSION, etc.) logically OR'd with zero or more mz_zip_flags, or just set to MZ_DEFAULT_COMPRESSION. */ +/* TODO: Perhaps add an option to leave the existing central dir in place in case the add dies? We could then truncate the file (so the old central dir would be at the end) if something goes wrong. */ +MINIZ_EXPORT mz_bool mz_zip_add_mem_to_archive_file_in_place(const char *pZip_filename, const char *pArchive_name, const void *pBuf, size_t buf_size, const void *pComment, mz_uint16 comment_size, mz_uint level_and_flags); +MINIZ_EXPORT mz_bool mz_zip_add_mem_to_archive_file_in_place_v2(const char *pZip_filename, const char *pArchive_name, const void *pBuf, size_t buf_size, const void *pComment, mz_uint16 comment_size, mz_uint level_and_flags, mz_zip_error *pErr); + +/* Reads a single file from an archive into a heap block. */ +/* If pComment is not NULL, only the file with the specified comment will be extracted. */ +/* Returns NULL on failure. */ +MINIZ_EXPORT void *mz_zip_extract_archive_file_to_heap(const char *pZip_filename, const char *pArchive_name, size_t *pSize, mz_uint flags); +MINIZ_EXPORT void *mz_zip_extract_archive_file_to_heap_v2(const char *pZip_filename, const char *pArchive_name, const char *pComment, size_t *pSize, mz_uint flags, mz_zip_error *pErr); + +#endif /* #ifndef MINIZ_NO_ARCHIVE_WRITING_APIS */ + +#ifdef __cplusplus +} +#endif + +#endif /* MINIZ_NO_ARCHIVE_APIS */ diff --git a/modules/tinyexr/deps/miniz/readme.md b/modules/tinyexr/deps/miniz/readme.md new file mode 100644 index 0000000..3f8fd73 --- /dev/null +++ b/modules/tinyexr/deps/miniz/readme.md @@ -0,0 +1,34 @@ +## Miniz + +Miniz is a lossless, high performance data compression library in a single source file that implements the zlib (RFC 1950) and Deflate (RFC 1951) compressed data format specification standards. It supports the most commonly used functions exported by the zlib library, but is a completely independent implementation so zlib's licensing requirements do not apply. Miniz also contains simple to use functions for writing .PNG format image files and reading/writing/appending .ZIP format archives. Miniz's compression speed has been tuned to be comparable to zlib's, and it also has a specialized real-time compressor function designed to compare well against fastlz/minilzo. + +## Usage + +Please use the files from the [releases page](https://github.com/richgel999/miniz/releases) in your projects. Do not use the git checkout directly! The different source and header files are [amalgamated](https://www.sqlite.org/amalgamation.html) into one `miniz.c`/`miniz.h` pair in a build step (`amalgamate.sh`). Include `miniz.c` and `miniz.h` in your project to use Miniz. + +## Features + +* MIT licensed +* A portable, single source and header file library written in plain C. Tested with GCC, clang and Visual Studio. +* Easily tuned and trimmed down by defines +* A drop-in replacement for zlib's most used API's (tested in several open source projects that use zlib, such as libpng and libzip). +* Fills a single threaded performance vs. compression ratio gap between several popular real-time compressors and zlib. For example, at level 1, miniz.c compresses around 5-9% better than minilzo, but is approx. 35% slower. At levels 2-9, miniz.c is designed to compare favorably against zlib's ratio and speed. See the miniz performance comparison page for example timings. +* Not a block based compressor: miniz.c fully supports stream based processing using a coroutine-style implementation. The zlib-style API functions can be called a single byte at a time if that's all you've got. +* Easy to use. The low-level compressor (tdefl) and decompressor (tinfl) have simple state structs which can be saved/restored as needed with simple memcpy's. The low-level codec API's don't use the heap in any way. +* Entire inflater (including optional zlib header parsing and Adler-32 checking) is implemented in a single function as a coroutine, which is separately available in a small (~550 line) source file: miniz_tinfl.c +* A fairly complete (but totally optional) set of .ZIP archive manipulation and extraction API's. The archive functionality is intended to solve common problems encountered in embedded, mobile, or game development situations. (The archive API's are purposely just powerful enough to write an entire archiver given a bit of additional higher-level logic.) + +## Known Problems + +* No support for encrypted archives. Not sure how useful this stuff is in practice. +* Minimal documentation. The assumption is that the user is already familiar with the basic zlib API. I need to write an API wiki - for now I've tried to place key comments before each enum/API, and I've included 6 examples that demonstrate how to use the module's major features. + +## Special Thanks + +Thanks to Alex Evans for the PNG writer function. Also, thanks to Paul Holden and Thorsten Scheuermann for feedback and testing, Matt Pritchard for all his encouragement, and Sean Barrett's various public domain libraries for inspiration (and encouraging me to write miniz.c in C, which was much more enjoyable and less painful than I thought it would be considering I've been programming in C++ for so long). + +Thanks to Bruce Dawson for reporting a problem with the level_and_flags archive API parameter (which is fixed in v1.12) and general feedback, and Janez Zemva for indirectly encouraging me into writing more examples. + +## Patents + +I was recently asked if miniz avoids patent issues. miniz purposely uses the same core algorithms as the ones used by zlib. The compressor uses vanilla hash chaining as described [here](https://datatracker.ietf.org/doc/html/rfc1951#section-4). Also see the [gzip FAQ](https://web.archive.org/web/20160308045258/http://www.gzip.org/#faq11). In my opinion, if miniz falls prey to a patent attack then zlib/gzip are likely to be at serious risk too. diff --git a/modules/tinyexr/examples/common/cxxopts.hpp b/modules/tinyexr/examples/common/cxxopts.hpp new file mode 100644 index 0000000..6a6a85f --- /dev/null +++ b/modules/tinyexr/examples/common/cxxopts.hpp @@ -0,0 +1,1988 @@ +/* + +Copyright (c) 2014, 2015, 2016, 2017 Jarryd Beck + +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. + +*/ + +#ifndef CXXOPTS_HPP_INCLUDED +#define CXXOPTS_HPP_INCLUDED + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace cxxopts +{ + static constexpr struct { + uint8_t major, minor, patch; + } version = {2, 1, 0}; +} + +//when we ask cxxopts to use Unicode, help strings are processed using ICU, +//which results in the correct lengths being computed for strings when they +//are formatted for the help output +//it is necessary to make sure that can be found by the +//compiler, and that icu-uc is linked in to the binary. + +#ifdef CXXOPTS_USE_UNICODE +#include + +namespace cxxopts +{ + typedef icu::UnicodeString String; + + inline + String + toLocalString(std::string s) + { + return icu::UnicodeString::fromUTF8(std::move(s)); + } + + class UnicodeStringIterator : public + std::iterator + { + public: + + UnicodeStringIterator(const icu::UnicodeString* string, int32_t pos) + : s(string) + , i(pos) + { + } + + value_type + operator*() const + { + return s->char32At(i); + } + + bool + operator==(const UnicodeStringIterator& rhs) const + { + return s == rhs.s && i == rhs.i; + } + + bool + operator!=(const UnicodeStringIterator& rhs) const + { + return !(*this == rhs); + } + + UnicodeStringIterator& + operator++() + { + ++i; + return *this; + } + + UnicodeStringIterator + operator+(int32_t v) + { + return UnicodeStringIterator(s, i + v); + } + + private: + const icu::UnicodeString* s; + int32_t i; + }; + + inline + String& + stringAppend(String&s, String a) + { + return s.append(std::move(a)); + } + + inline + String& + stringAppend(String& s, int n, UChar32 c) + { + for (int i = 0; i != n; ++i) + { + s.append(c); + } + + return s; + } + + template + String& + stringAppend(String& s, Iterator begin, Iterator end) + { + while (begin != end) + { + s.append(*begin); + ++begin; + } + + return s; + } + + inline + size_t + stringLength(const String& s) + { + return s.length(); + } + + inline + std::string + toUTF8String(const String& s) + { + std::string result; + s.toUTF8String(result); + + return result; + } + + inline + bool + empty(const String& s) + { + return s.isEmpty(); + } +} + +namespace std +{ + inline + cxxopts::UnicodeStringIterator + begin(const icu::UnicodeString& s) + { + return cxxopts::UnicodeStringIterator(&s, 0); + } + + inline + cxxopts::UnicodeStringIterator + end(const icu::UnicodeString& s) + { + return cxxopts::UnicodeStringIterator(&s, s.length()); + } +} + +//ifdef CXXOPTS_USE_UNICODE +#else + +namespace cxxopts +{ + typedef std::string String; + + template + T + toLocalString(T&& t) + { + return t; + } + + inline + size_t + stringLength(const String& s) + { + return s.length(); + } + + inline + String& + stringAppend(String&s, String a) + { + return s.append(std::move(a)); + } + + inline + String& + stringAppend(String& s, size_t n, char c) + { + return s.append(n, c); + } + + template + String& + stringAppend(String& s, Iterator begin, Iterator end) + { + return s.append(begin, end); + } + + template + std::string + toUTF8String(T&& t) + { + return std::forward(t); + } + + inline + bool + empty(const std::string& s) + { + return s.empty(); + } +} + +//ifdef CXXOPTS_USE_UNICODE +#endif + +namespace cxxopts +{ + namespace + { +#ifdef _WIN32 + const std::string LQUOTE("\'"); + const std::string RQUOTE("\'"); +#else + const std::string LQUOTE("‘"); + const std::string RQUOTE("’"); +#endif + } + + class Value : public std::enable_shared_from_this + { + public: + + virtual ~Value() = default; + + virtual + std::shared_ptr + clone() const = 0; + + virtual void + parse(const std::string& text) const = 0; + + virtual void + parse() const = 0; + + virtual bool + has_default() const = 0; + + virtual bool + is_container() const = 0; + + virtual bool + has_implicit() const = 0; + + virtual std::string + get_default_value() const = 0; + + virtual std::string + get_implicit_value() const = 0; + + virtual std::shared_ptr + default_value(const std::string& value) = 0; + + virtual std::shared_ptr + implicit_value(const std::string& value) = 0; + + virtual bool + is_boolean() const = 0; + }; + + class OptionException : public std::exception + { + public: + OptionException(const std::string& message) + : m_message(message) + { + } + + virtual const char* + what() const noexcept + { + return m_message.c_str(); + } + + private: + std::string m_message; + }; + + class OptionSpecException : public OptionException + { + public: + + OptionSpecException(const std::string& message) + : OptionException(message) + { + } + }; + + class OptionParseException : public OptionException + { + public: + OptionParseException(const std::string& message) + : OptionException(message) + { + } + }; + + class option_exists_error : public OptionSpecException + { + public: + option_exists_error(const std::string& option) + : OptionSpecException(u8"Option " + LQUOTE + option + RQUOTE + u8" already exists") + { + } + }; + + class invalid_option_format_error : public OptionSpecException + { + public: + invalid_option_format_error(const std::string& format) + : OptionSpecException(u8"Invalid option format " + LQUOTE + format + RQUOTE) + { + } + }; + + class option_not_exists_exception : public OptionParseException + { + public: + option_not_exists_exception(const std::string& option) + : OptionParseException(u8"Option " + LQUOTE + option + RQUOTE + u8" does not exist") + { + } + }; + + class missing_argument_exception : public OptionParseException + { + public: + missing_argument_exception(const std::string& option) + : OptionParseException( + u8"Option " + LQUOTE + option + RQUOTE + u8" is missing an argument" + ) + { + } + }; + + class option_requires_argument_exception : public OptionParseException + { + public: + option_requires_argument_exception(const std::string& option) + : OptionParseException( + u8"Option " + LQUOTE + option + RQUOTE + u8" requires an argument" + ) + { + } + }; + + class option_not_has_argument_exception : public OptionParseException + { + public: + option_not_has_argument_exception + ( + const std::string& option, + const std::string& arg + ) + : OptionParseException( + u8"Option " + LQUOTE + option + RQUOTE + + u8" does not take an argument, but argument " + + LQUOTE + arg + RQUOTE + " given" + ) + { + } + }; + + class option_not_present_exception : public OptionParseException + { + public: + option_not_present_exception(const std::string& option) + : OptionParseException(u8"Option " + LQUOTE + option + RQUOTE + u8" not present") + { + } + }; + + class argument_incorrect_type : public OptionParseException + { + public: + argument_incorrect_type + ( + const std::string& arg + ) + : OptionParseException( + u8"Argument " + LQUOTE + arg + RQUOTE + u8" failed to parse" + ) + { + } + }; + + class option_required_exception : public OptionParseException + { + public: + option_required_exception(const std::string& option) + : OptionParseException( + u8"Option " + LQUOTE + option + RQUOTE + u8" is required but not present" + ) + { + } + }; + + namespace values + { + namespace + { + std::basic_regex integer_pattern + ("(-)?(0x)?([1-9a-zA-Z][0-9a-zA-Z]*)|((0x)?0)"); + std::basic_regex truthy_pattern + ("(t|T)(rue)?"); + std::basic_regex falsy_pattern + ("((f|F)(alse)?)?"); + } + + namespace detail + { + template + struct SignedCheck; + + template + struct SignedCheck + { + template + void + operator()(bool negative, U u, const std::string& text) + { + if (negative) + { + if (u > static_cast(-std::numeric_limits::min())) + { + throw argument_incorrect_type(text); + } + } + else + { + if (u > static_cast(std::numeric_limits::max())) + { + throw argument_incorrect_type(text); + } + } + } + }; + + template + struct SignedCheck + { + template + void + operator()(bool, U, const std::string&) {} + }; + + template + void + check_signed_range(bool negative, U value, const std::string& text) + { + SignedCheck::is_signed>()(negative, value, text); + } + } + + template + R + checked_negate(T&& t, const std::string&, std::true_type) + { + // if we got to here, then `t` is a positive number that fits into + // `R`. So to avoid MSVC C4146, we first cast it to `R`. + // See https://github.com/jarro2783/cxxopts/issues/62 for more details. + return -static_cast(t); + } + + template + T + checked_negate(T&&, const std::string& text, std::false_type) + { + throw argument_incorrect_type(text); + } + + template + void + integer_parser(const std::string& text, T& value) + { + std::smatch match; + std::regex_match(text, match, integer_pattern); + + if (match.length() == 0) + { + throw argument_incorrect_type(text); + } + + if (match.length(4) > 0) + { + value = 0; + return; + } + + using US = typename std::make_unsigned::type; + + constexpr auto umax = std::numeric_limits::max(); + constexpr bool is_signed = std::numeric_limits::is_signed; + const bool negative = match.length(1) > 0; + const uint8_t base = match.length(2) > 0 ? 16 : 10; + + auto value_match = match[3]; + + US result = 0; + + for (auto iter = value_match.first; iter != value_match.second; ++iter) + { + size_t digit = 0; + + if (*iter >= '0' && *iter <= '9') + { + digit = *iter - '0'; + } + else if (base == 16 && *iter >= 'a' && *iter <= 'f') + { + digit = *iter - 'a' + 10; + } + else if (base == 16 && *iter >= 'A' && *iter <= 'F') + { + digit = *iter - 'A' + 10; + } + else + { + throw argument_incorrect_type(text); + } + + if (umax - digit < result * base) + { + throw argument_incorrect_type(text); + } + + result = result * base + digit; + } + + detail::check_signed_range(negative, result, text); + + if (negative) + { + value = checked_negate(result, + text, + std::integral_constant()); + } + else + { + value = result; + } + } + + template + void stringstream_parser(const std::string& text, T& value) + { + std::stringstream in(text); + in >> value; + if (!in) { + throw argument_incorrect_type(text); + } + } + + inline + void + parse_value(const std::string& text, uint8_t& value) + { + integer_parser(text, value); + } + + inline + void + parse_value(const std::string& text, int8_t& value) + { + integer_parser(text, value); + } + + inline + void + parse_value(const std::string& text, uint16_t& value) + { + integer_parser(text, value); + } + + inline + void + parse_value(const std::string& text, int16_t& value) + { + integer_parser(text, value); + } + + inline + void + parse_value(const std::string& text, uint32_t& value) + { + integer_parser(text, value); + } + + inline + void + parse_value(const std::string& text, int32_t& value) + { + integer_parser(text, value); + } + + inline + void + parse_value(const std::string& text, uint64_t& value) + { + integer_parser(text, value); + } + + inline + void + parse_value(const std::string& text, int64_t& value) + { + integer_parser(text, value); + } + + inline + void + parse_value(const std::string& text, bool& value) + { + std::smatch result; + std::regex_match(text, result, truthy_pattern); + + if (!result.empty()) + { + value = true; + return; + } + + std::regex_match(text, result, falsy_pattern); + if (!result.empty()) + { + value = false; + return; + } + + throw argument_incorrect_type(text); + } + + inline + void + parse_value(const std::string& text, std::string& value) + { + value = text; + } + + // The fallback parser. It uses the stringstream parser to parse all types + // that have not been overloaded explicitly. It has to be placed in the + // source code before all other more specialized templates. + template + void + parse_value(const std::string& text, T& value) { + stringstream_parser(text, value); + } + + template + void + parse_value(const std::string& text, std::vector& value) + { + T v; + parse_value(text, v); + value.push_back(v); + } + + template + struct type_is_container + { + static constexpr bool value = false; + }; + + template + struct type_is_container> + { + static constexpr bool value = true; + }; + + template + class abstract_value : public Value + { + using Self = abstract_value; + + public: + abstract_value() + : m_result(std::make_shared()) + , m_store(m_result.get()) + { + } + + abstract_value(T* t) + : m_store(t) + { + } + + virtual ~abstract_value() = default; + + abstract_value(const abstract_value& rhs) + { + if (rhs.m_result) + { + m_result = std::make_shared(); + m_store = m_result.get(); + } + else + { + m_store = rhs.m_store; + } + + m_default = rhs.m_default; + m_implicit = rhs.m_implicit; + m_default_value = rhs.m_default_value; + m_implicit_value = rhs.m_implicit_value; + } + + void + parse(const std::string& text) const + { + parse_value(text, *m_store); + } + + bool + is_container() const + { + return type_is_container::value; + } + + void + parse() const + { + parse_value(m_default_value, *m_store); + } + + bool + has_default() const + { + return m_default; + } + + bool + has_implicit() const + { + return m_implicit; + } + + std::shared_ptr + default_value(const std::string& value) + { + m_default = true; + m_default_value = value; + return shared_from_this(); + } + + std::shared_ptr + implicit_value(const std::string& value) + { + m_implicit = true; + m_implicit_value = value; + return shared_from_this(); + } + + std::string + get_default_value() const + { + return m_default_value; + } + + std::string + get_implicit_value() const + { + return m_implicit_value; + } + + bool + is_boolean() const + { + return std::is_same::value; + } + + const T& + get() const + { + if (m_store == nullptr) + { + return *m_result; + } + else + { + return *m_store; + } + } + + protected: + std::shared_ptr m_result; + T* m_store; + + bool m_default = false; + bool m_implicit = false; + + std::string m_default_value; + std::string m_implicit_value; + }; + + template + class standard_value : public abstract_value + { + public: + using abstract_value::abstract_value; + + std::shared_ptr + clone() const + { + return std::make_shared>(*this); + } + }; + + template <> + class standard_value : public abstract_value + { + public: + ~standard_value() = default; + + standard_value() + { + set_implicit(); + } + + standard_value(bool* b) + : abstract_value(b) + { + set_implicit(); + } + + std::shared_ptr + clone() const + { + return std::make_shared>(*this); + } + + private: + + void + set_implicit() + { + m_implicit = true; + m_implicit_value = "true"; + } + }; + } + + template + std::shared_ptr + value() + { + return std::make_shared>(); + } + + template + std::shared_ptr + value(T& t) + { + return std::make_shared>(&t); + } + + class OptionAdder; + + class OptionDetails + { + public: + OptionDetails + ( + const std::string& short_, + const std::string& long_, + const String& desc, + std::shared_ptr val + ) + : m_short(short_) + , m_long(long_) + , m_desc(desc) + , m_value(val) + , m_count(0) + { + } + + OptionDetails(const OptionDetails& rhs) + : m_desc(rhs.m_desc) + , m_count(rhs.m_count) + { + m_value = rhs.m_value->clone(); + } + + OptionDetails(OptionDetails&& rhs) = default; + + const String& + description() const + { + return m_desc; + } + + const Value& value() const { + return *m_value; + } + + std::shared_ptr + make_storage() const + { + return m_value->clone(); + } + + const std::string& + short_name() const + { + return m_short; + } + + const std::string& + long_name() const + { + return m_long; + } + + private: + std::string m_short; + std::string m_long; + String m_desc; + std::shared_ptr m_value; + int m_count; + }; + + struct HelpOptionDetails + { + std::string s; + std::string l; + String desc; + bool has_default; + std::string default_value; + bool has_implicit; + std::string implicit_value; + std::string arg_help; + bool is_container; + bool is_boolean; + }; + + struct HelpGroupDetails + { + std::string name; + std::string description; + std::vector options; + }; + + class OptionValue + { + public: + void + parse + ( + std::shared_ptr details, + const std::string& text + ) + { + ensure_value(details); + ++m_count; + m_value->parse(text); + } + + void + parse_default(std::shared_ptr details) + { + ensure_value(details); + m_value->parse(); + m_count++; + } + + size_t + count() const + { + return m_count; + } + + template + const T& + as() const + { +#ifdef CXXOPTS_NO_RTTI + return static_cast&>(*m_value).get(); +#else + return dynamic_cast&>(*m_value).get(); +#endif + } + + private: + void + ensure_value(std::shared_ptr details) + { + if (m_value == nullptr) + { + m_value = details->make_storage(); + } + } + + std::shared_ptr m_value; + size_t m_count = 0; + }; + + class KeyValue + { + public: + KeyValue(std::string key_, std::string value_) + : m_key(std::move(key_)) + , m_value(std::move(value_)) + { + } + + const + std::string& + key() const + { + return m_key; + } + + const std::string + value() const + { + return m_value; + } + + template + T + as() const + { + T result; + values::parse_value(m_value, result); + return result; + } + + private: + std::string m_key; + std::string m_value; + }; + + class ParseResult + { + public: + + ParseResult( + const std::unordered_map>&, + std::vector, + int&, char**&); + + size_t + count(const std::string& o) const + { + auto iter = m_options.find(o); + if (iter == m_options.end()) + { + return 0; + } + + auto riter = m_results.find(iter->second); + + return riter->second.count(); + } + + const OptionValue& + operator[](const std::string& option) const + { + auto iter = m_options.find(option); + + if (iter == m_options.end()) + { + throw option_not_present_exception(option); + } + + auto riter = m_results.find(iter->second); + + return riter->second; + } + + const std::vector& + arguments() const + { + return m_sequential; + } + + private: + + OptionValue& + get_option(std::shared_ptr); + + void + parse(int& argc, char**& argv); + + void + add_to_option(const std::string& option, const std::string& arg); + + bool + consume_positional(std::string a); + + void + parse_option + ( + std::shared_ptr value, + const std::string& name, + const std::string& arg = "" + ); + + void + parse_default(std::shared_ptr details); + + void + checked_parse_arg + ( + int argc, + char* argv[], + int& current, + std::shared_ptr value, + const std::string& name + ); + + const std::unordered_map> + &m_options; + std::vector m_positional; + std::vector::iterator m_next_positional; + std::unordered_set m_positional_set; + std::unordered_map, OptionValue> m_results; + + std::vector m_sequential; + }; + + class Options + { + public: + + Options(std::string program, std::string help_string = "") + : m_program(std::move(program)) + , m_help_string(toLocalString(std::move(help_string))) + , m_custom_help("[OPTION...]") + , m_positional_help("positional parameters") + , m_show_positional(false) + , m_next_positional(m_positional.end()) + { + } + + Options& + positional_help(std::string help_text) + { + m_positional_help = std::move(help_text); + return *this; + } + + Options& + custom_help(std::string help_text) + { + m_custom_help = std::move(help_text); + return *this; + } + + Options& + show_positional_help() + { + m_show_positional = true; + return *this; + } + + ParseResult + parse(int& argc, char**& argv); + + OptionAdder + add_options(std::string group = ""); + + void + add_option + ( + const std::string& group, + const std::string& s, + const std::string& l, + std::string desc, + std::shared_ptr value, + std::string arg_help + ); + + //parse positional arguments into the given option + void + parse_positional(std::string option); + + void + parse_positional(std::vector options); + + void + parse_positional(std::initializer_list options); + + std::string + help(const std::vector& groups = {""}) const; + + const std::vector + groups() const; + + const HelpGroupDetails& + group_help(const std::string& group) const; + + private: + + void + add_one_option + ( + const std::string& option, + std::shared_ptr details + ); + + String + help_one_group(const std::string& group) const; + + void + generate_group_help + ( + String& result, + const std::vector& groups + ) const; + + void + generate_all_groups_help(String& result) const; + + std::string m_program; + String m_help_string; + std::string m_custom_help; + std::string m_positional_help; + bool m_show_positional; + + std::unordered_map> m_options; + std::vector m_positional; + std::vector::iterator m_next_positional; + std::unordered_set m_positional_set; + + //mapping from groups to help options + std::map m_help; + }; + + class OptionAdder + { + public: + + OptionAdder(Options& options, std::string group) + : m_options(options), m_group(std::move(group)) + { + } + + OptionAdder& + operator() + ( + const std::string& opts, + const std::string& desc, + std::shared_ptr value + = ::cxxopts::value(), + std::string arg_help = "" + ); + + private: + Options& m_options; + std::string m_group; + }; + + namespace + { + constexpr int OPTION_LONGEST = 30; + constexpr int OPTION_DESC_GAP = 2; + + std::basic_regex option_matcher + ("--([[:alnum:]][-_[:alnum:]]+)(=(.*))?|-([[:alnum:]]+)"); + + std::basic_regex option_specifier + ("(([[:alnum:]]),)?[ ]*([[:alnum:]][-_[:alnum:]]*)?"); + + String + format_option + ( + const HelpOptionDetails& o + ) + { + auto& s = o.s; + auto& l = o.l; + + String result = " "; + + if (s.size() > 0) + { + result += "-" + toLocalString(s) + ","; + } + else + { + result += " "; + } + + if (l.size() > 0) + { + result += " --" + toLocalString(l); + } + + auto arg = o.arg_help.size() > 0 ? toLocalString(o.arg_help) : "arg"; + + if (!o.is_boolean) + { + if (o.has_implicit) + { + result += " [=" + arg + "(=" + toLocalString(o.implicit_value) + ")]"; + } + else + { + result += " " + arg; + } + } + + return result; + } + + String + format_description + ( + const HelpOptionDetails& o, + size_t start, + size_t width + ) + { + auto desc = o.desc; + + if (o.has_default) + { + desc += toLocalString(" (default: " + o.default_value + ")"); + } + + String result; + + auto current = std::begin(desc); + auto startLine = current; + auto lastSpace = current; + + auto size = size_t{}; + + while (current != std::end(desc)) + { + if (*current == ' ') + { + lastSpace = current; + } + + if (size > width) + { + if (lastSpace == startLine) + { + stringAppend(result, startLine, current + 1); + stringAppend(result, "\n"); + stringAppend(result, start, ' '); + startLine = current + 1; + lastSpace = startLine; + } + else + { + stringAppend(result, startLine, lastSpace); + stringAppend(result, "\n"); + stringAppend(result, start, ' '); + startLine = lastSpace + 1; + } + size = 0; + } + else + { + ++size; + } + + ++current; + } + + //append whatever is left + stringAppend(result, startLine, current); + + return result; + } + } + +inline +ParseResult::ParseResult +( + const std::unordered_map>& options, + std::vector positional, + int& argc, char**& argv +) +: m_options(options) +, m_positional(std::move(positional)) +, m_next_positional(m_positional.begin()) +{ + parse(argc, argv); +} + +inline +OptionAdder +Options::add_options(std::string group) +{ + return OptionAdder(*this, std::move(group)); +} + +inline +OptionAdder& +OptionAdder::operator() +( + const std::string& opts, + const std::string& desc, + std::shared_ptr value, + std::string arg_help +) +{ + std::match_results result; + std::regex_match(opts.c_str(), result, option_specifier); + + if (result.empty()) + { + throw invalid_option_format_error(opts); + } + + const auto& short_match = result[2]; + const auto& long_match = result[3]; + + if (!short_match.length() && !long_match.length()) + { + throw invalid_option_format_error(opts); + } else if (long_match.length() == 1 && short_match.length()) + { + throw invalid_option_format_error(opts); + } + + auto option_names = [] + ( + const std::sub_match& short_, + const std::sub_match& long_ + ) + { + if (long_.length() == 1) + { + return std::make_tuple(long_.str(), short_.str()); + } + else + { + return std::make_tuple(short_.str(), long_.str()); + } + }(short_match, long_match); + + m_options.add_option + ( + m_group, + std::get<0>(option_names), + std::get<1>(option_names), + desc, + value, + std::move(arg_help) + ); + + return *this; +} + +inline +void +ParseResult::parse_default(std::shared_ptr details) +{ + m_results[details].parse_default(details); +} + +inline +void +ParseResult::parse_option +( + std::shared_ptr value, + const std::string& /*name*/, + const std::string& arg +) +{ + auto& result = m_results[value]; + result.parse(value, arg); + + m_sequential.emplace_back(value->long_name(), arg); +} + +inline +void +ParseResult::checked_parse_arg +( + int argc, + char* argv[], + int& current, + std::shared_ptr value, + const std::string& name +) +{ + if (current + 1 >= argc) + { + if (value->value().has_implicit()) + { + parse_option(value, name, value->value().get_implicit_value()); + } + else + { + throw missing_argument_exception(name); + } + } + else + { + if (value->value().has_implicit()) + { + parse_option(value, name, value->value().get_implicit_value()); + } + else + { + parse_option(value, name, argv[current + 1]); + ++current; + } + } +} + +inline +void +ParseResult::add_to_option(const std::string& option, const std::string& arg) +{ + auto iter = m_options.find(option); + + if (iter == m_options.end()) + { + throw option_not_exists_exception(option); + } + + parse_option(iter->second, option, arg); +} + +inline +bool +ParseResult::consume_positional(std::string a) +{ + while (m_next_positional != m_positional.end()) + { + auto iter = m_options.find(*m_next_positional); + if (iter != m_options.end()) + { + auto& result = m_results[iter->second]; + if (!iter->second->value().is_container()) + { + if (result.count() == 0) + { + add_to_option(*m_next_positional, a); + ++m_next_positional; + return true; + } + else + { + ++m_next_positional; + continue; + } + } + else + { + add_to_option(*m_next_positional, a); + return true; + } + } + ++m_next_positional; + } + + return false; +} + +inline +void +Options::parse_positional(std::string option) +{ + parse_positional(std::vector{std::move(option)}); +} + +inline +void +Options::parse_positional(std::vector options) +{ + m_positional = std::move(options); + m_next_positional = m_positional.begin(); + + m_positional_set.insert(m_positional.begin(), m_positional.end()); +} + +inline +void +Options::parse_positional(std::initializer_list options) +{ + parse_positional(std::vector(std::move(options))); +} + +inline +ParseResult +Options::parse(int& argc, char**& argv) +{ + ParseResult result(m_options, m_positional, argc, argv); + return result; +} + +inline +void +ParseResult::parse(int& argc, char**& argv) +{ + int current = 1; + + int nextKeep = 1; + + bool consume_remaining = false; + + while (current != argc) + { + if (strcmp(argv[current], "--") == 0) + { + consume_remaining = true; + ++current; + break; + } + + std::match_results result; + std::regex_match(argv[current], result, option_matcher); + + if (result.empty()) + { + //not a flag + + //if true is returned here then it was consumed, otherwise it is + //ignored + if (consume_positional(argv[current])) + { + } + else + { + argv[nextKeep] = argv[current]; + ++nextKeep; + } + //if we return from here then it was parsed successfully, so continue + } + else + { + //short or long option? + if (result[4].length() != 0) + { + const std::string& s = result[4]; + + for (std::size_t i = 0; i != s.size(); ++i) + { + std::string name(1, s[i]); + auto iter = m_options.find(name); + + if (iter == m_options.end()) + { + throw option_not_exists_exception(name); + } + + auto value = iter->second; + + if (i + 1 == s.size()) + { + //it must be the last argument + checked_parse_arg(argc, argv, current, value, name); + } + else if (value->value().has_implicit()) + { + parse_option(value, name, value->value().get_implicit_value()); + } + else + { + //error + throw option_requires_argument_exception(name); + } + } + } + else if (result[1].length() != 0) + { + const std::string& name = result[1]; + + auto iter = m_options.find(name); + + if (iter == m_options.end()) + { + throw option_not_exists_exception(name); + } + + auto opt = iter->second; + + //equals provided for long option? + if (result[2].length() != 0) + { + //parse the option given + + parse_option(opt, name, result[3]); + } + else + { + //parse the next argument + checked_parse_arg(argc, argv, current, opt, name); + } + } + + } + + ++current; + } + + for (auto& opt : m_options) + { + auto& detail = opt.second; + auto& value = detail->value(); + + auto& store = m_results[detail]; + + if(!store.count() && value.has_default()){ + parse_default(detail); + } + } + + if (consume_remaining) + { + while (current < argc) + { + if (!consume_positional(argv[current])) { + break; + } + ++current; + } + + //adjust argv for any that couldn't be swallowed + while (current != argc) { + argv[nextKeep] = argv[current]; + ++nextKeep; + ++current; + } + } + + argc = nextKeep; + +} + +inline +void +Options::add_option +( + const std::string& group, + const std::string& s, + const std::string& l, + std::string desc, + std::shared_ptr value, + std::string arg_help +) +{ + auto stringDesc = toLocalString(std::move(desc)); + auto option = std::make_shared(s, l, stringDesc, value); + + if (s.size() > 0) + { + add_one_option(s, option); + } + + if (l.size() > 0) + { + add_one_option(l, option); + } + + //add the help details + auto& options = m_help[group]; + + options.options.emplace_back(HelpOptionDetails{s, l, stringDesc, + value->has_default(), value->get_default_value(), + value->has_implicit(), value->get_implicit_value(), + std::move(arg_help), + value->is_container(), + value->is_boolean()}); +} + +inline +void +Options::add_one_option +( + const std::string& option, + std::shared_ptr details +) +{ + auto in = m_options.emplace(option, details); + + if (!in.second) + { + throw option_exists_error(option); + } +} + +inline +String +Options::help_one_group(const std::string& g) const +{ + typedef std::vector> OptionHelp; + + auto group = m_help.find(g); + if (group == m_help.end()) + { + return ""; + } + + OptionHelp format; + + size_t longest = 0; + + String result; + + if (!g.empty()) + { + result += toLocalString(" " + g + " options:\n"); + } + + for (const auto& o : group->second.options) + { + if (o.is_container && + m_positional_set.find(o.l) != m_positional_set.end() && + !m_show_positional) + { + continue; + } + + auto s = format_option(o); + longest = std::max(longest, stringLength(s)); + format.push_back(std::make_pair(s, String())); + } + + longest = std::min(longest, static_cast(OPTION_LONGEST)); + + //widest allowed description + auto allowed = size_t{76} - longest - OPTION_DESC_GAP; + + auto fiter = format.begin(); + for (const auto& o : group->second.options) + { + if (o.is_container && + m_positional_set.find(o.l) != m_positional_set.end() && + !m_show_positional) + { + continue; + } + + auto d = format_description(o, longest + OPTION_DESC_GAP, allowed); + + result += fiter->first; + if (stringLength(fiter->first) > longest) + { + result += '\n'; + result += toLocalString(std::string(longest + OPTION_DESC_GAP, ' ')); + } + else + { + result += toLocalString(std::string(longest + OPTION_DESC_GAP - + stringLength(fiter->first), + ' ')); + } + result += d; + result += '\n'; + + ++fiter; + } + + return result; +} + +inline +void +Options::generate_group_help +( + String& result, + const std::vector& print_groups +) const +{ + for (size_t i = 0; i != print_groups.size(); ++i) + { + const String& group_help_text = help_one_group(print_groups[i]); + if (empty(group_help_text)) + { + continue; + } + result += group_help_text; + if (i < print_groups.size() - 1) + { + result += '\n'; + } + } +} + +inline +void +Options::generate_all_groups_help(String& result) const +{ + std::vector all_groups; + all_groups.reserve(m_help.size()); + + for (auto& group : m_help) + { + all_groups.push_back(group.first); + } + + generate_group_help(result, all_groups); +} + +inline +std::string +Options::help(const std::vector& help_groups) const +{ + String result = m_help_string + "\nUsage:\n " + + toLocalString(m_program) + " " + toLocalString(m_custom_help); + + if (m_positional.size() > 0 && m_positional_help.size() > 0) { + result += " " + toLocalString(m_positional_help); + } + + result += "\n\n"; + + if (help_groups.size() == 0) + { + generate_all_groups_help(result); + } + else + { + generate_group_help(result, help_groups); + } + + return toUTF8String(result); +} + +inline +const std::vector +Options::groups() const +{ + std::vector g; + + std::transform( + m_help.begin(), + m_help.end(), + std::back_inserter(g), + [] (const std::map::value_type& pair) + { + return pair.first; + } + ); + + return g; +} + +inline +const HelpGroupDetails& +Options::group_help(const std::string& group) const +{ + return m_help.at(group); +} + +} + +#endif //CXXOPTS_HPP_INCLUDED diff --git a/modules/tinyexr/examples/common/stb_image.h b/modules/tinyexr/examples/common/stb_image.h new file mode 100644 index 0000000..d9c21bc --- /dev/null +++ b/modules/tinyexr/examples/common/stb_image.h @@ -0,0 +1,7462 @@ +/* stb_image - v2.19 - 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.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 + John-Mark Allen + + Bug & warning fixes + Marc LeBlanc David Woo Guillaume George Martins Mozeiko + Christpher Lloyd Jerry Jansson Joseph Thomson 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 + Laurent Gomila Cort Stratton Sergio Gonzalez github:snagar + Aruelien Pocheville Thibault Reuille Cass Everitt github:Zelex + Ryamond Barbiero Paul Du Bois Engin Manap github:grim210 + Aldo Culquicondor Philipp Wiesemann Dale Weiler github:sammyhw + Oriol Ferrer Mesia Josh Tobin Matthew Gregan github:phprus + Julian Raschke Gregory Mullen Baldur Karlsson github:poppolopoppo + Christian Floisand Kevin Schmidt github:darealshinji + Blazej Dariusz Roszkowski github:Michaelangel007 +*/ + +#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. +// +// =========================================================================== +// +// 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 +// make 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 now supports loading HDR images in general, and currently +// the Radiance .HDR file format, although the support is provided +// generically. 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: +// +// By default we convert iphone-formatted PNGs back to RGB, even though +// they are internally encoded differently. You can disable this conversion +// by by calling stbi_convert_iphone_png_to_rgb(0), in which case +// you will always just get the native iphone "format" through (which +// is BGR stored in RGB). +// +// 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 +// + + +#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 +}; + +typedef unsigned char stbi_uc; +typedef unsigned short stbi_us; + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef STB_IMAGE_STATIC +#define STBIDEF static +#else +#define STBIDEF extern +#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_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 + + +#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 + +//////////////////////////////////// +// +// 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 +// NOT 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); + +// 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 + + +#ifndef _MSC_VER + #ifdef __cplusplus + #define stbi_inline inline + #else + #define stbi_inline + #endif +#else + #define stbi_inline __forceinline +#endif + + +#ifdef _MSC_VER +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) >> (32 - (y)))) +#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 + +static int stbi__sse2_available(void) +{ + int info3 = stbi__cpuid3(); + return ((info3 >> 26) & 1) != 0; +} +#else // assume GCC-style if not VC++ +#define STBI_SIMD_ALIGN(type, name) type name __attribute__((aligned(16))) + +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 + +// ARM NEON +#if defined(STBI_NO_SIMD) && defined(STBI_NEON) +#undef STBI_NEON +#endif + +#ifdef STBI_NEON +#include +// assume GCC or Clang on ARM targets +#define STBI_SIMD_ALIGN(type, name) type name __attribute__((aligned(16))) +#endif + +#ifndef STBI_SIMD_ALIGN +#define STBI_SIMD_ALIGN(type, name) type name +#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]; + + 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->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->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) +{ + fseek((FILE*) user, n, SEEK_CUR); +} + +static int stbi__stdio_eof(void *user) +{ + return feof((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); +#endif + +// this is not threadsafe +static const char *stbi__g_failure_reason; + +STBIDEF const char *stbi_failure_reason(void) +{ + return stbi__g_failure_reason; +} + +static int stbi__err(const char *str) +{ + stbi__g_failure_reason = str; + return 0; +} + +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; +} + +// 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); +} + +// 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) +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 + +// 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); +} + +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) +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 + +// 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 = 0; + +STBIDEF void stbi_set_flip_vertically_on_load(int flag_true_if_should_flip) +{ + stbi__vertically_flip_on_load = flag_true_if_should_flip; +} + +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; + + #ifndef STBI_NO_JPEG + if (stbi__jpeg_test(s)) return stbi__jpeg_load(s,x,y,comp,req_comp, ri); + #endif + #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); + #endif + #ifndef STBI_NO_PIC + if (stbi__pic_test(s)) return stbi__pic_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; + } + } +} + +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; + } +} + +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; + + if (ri.bits_per_channel != 8) { + STBI_ASSERT(ri.bits_per_channel == 16); + 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; + + if (ri.bits_per_channel != 16) { + STBI_ASSERT(ri.bits_per_channel == 8); + 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 + +static FILE *stbi__fopen(char const *filename, char const *mode) +{ + FILE *f; +#if 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); + 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; +} + +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; +} + +static void stbi__skip(stbi__context *s, int n) +{ + 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; +} + +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; +} + +static int stbi__get16be(stbi__context *s) +{ + int z = stbi__get8(s); + return (z << 8) + stbi__get8(s); +} + +static stbi__uint32 stbi__get32be(stbi__context *s) +{ + stbi__uint32 z = stbi__get16be(s); + return (z << 16) + stbi__get16be(s); +} + +#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); + return z + (stbi__get16le(s) << 16); +} +#endif + +#define STBI__BYTECAST(x) ((stbi_uc) ((x) & 255)) // truncate int to byte without warnings + + +////////////////////////////////////////////////////////////////////////////// +// +// 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); +} + +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); + } + #undef STBI__CASE + } + + STBI_FREE(data); + return good; +} + +static stbi__uint16 stbi__compute_y_16(int r, int g, int b) +{ + return (stbi__uint16) (((r*77) + (g*150) + (29*b)) >> 8); +} + +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); + } + #undef STBI__CASE + } + + STBI_FREE(data); + return good; +} + +#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 (k < comp) output[i*comp + k] = data[i*comp+k]/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); + 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]; + 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); + + sgn = (stbi__int32)j->code_buffer >> 31; // sign bit is always in MSB + k = stbi_lrot(j->code_buffer, n); + STBI_ASSERT(n >= 0 && n < (int) (sizeof(stbi__bmask)/sizeof(*stbi__bmask))); + j->code_buffer = k & ~stbi__bmask[n]; + k &= stbi__bmask[n]; + j->code_bits -= n; + return k + (stbi__jbias[n] & ~sgn); +} + +// 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); + 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); + 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) 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; + dc = j->img_comp[b].dc_pred + diff; + j->img_comp[b].dc_pred = dc; + 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 + 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); + diff = t ? stbi__extend_receive(j, t) : 0; + + dc = j->img_comp[b].dc_pred + diff; + j->img_comp[b].dc_pred = dc; + data[0] = (short) (dc << 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 + j->code_buffer <<= s; + j->code_bits -= s; + zig = stbi__jpeg_dezigzag[k++]; + data[zig] = (short) ((r >> 8) << 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) << 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]; + } + 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 + 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; + } + + // 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; +} + +// 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 ) { + // handle 0s at the end of image data from IP Kamera 9060 + while (!stbi__at_eof(j->s)) { + int x = stbi__get8(j->s); + if (x == 255) { + j->marker = stbi__get8(j->s); + break; + } + } + // if we reach eof without hitting a marker, stbi__get_marker() below will fail and we'll eventually return 0 + } + } 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"); + } else { + if (!stbi__process_marker(j, m)) return 0; + } + 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; + + // resample and color-convert + { + int k; + unsigned int i,j; + stbi_uc *output; + stbi_uc *coutput[4]; + + 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)); + 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)); + 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))); + 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) + +// 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[288]; + stbi__uint16 value[288]; +} 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; + 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 stbi_uc stbi__zget8(stbi__zbuf *z) +{ + if (z->zbuffer >= z->zbuffer_end) return 0; + return *z->zbuffer++; +} + +static void stbi__fill_bits(stbi__zbuf *z) +{ + do { + STBI_ASSERT(z->code_buffer < (1U << z->num_bits)); + 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]; + STBI_ASSERT(z->size[b] == s); + 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) 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; + int cur, limit, old_limit; + z->zout = zout; + if (!z->z_expandable) return stbi__err("output buffer limit","Corrupt PNG"); + cur = (int) (z->zout - z->zout_start); + limit = old_limit = (int) (z->zout_end - z->zout_start); + while (cur + n > limit) + 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; + return 1; + } + 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) return stbi__err("bad huffman code","Corrupt PNG"); + 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 (zout + len > a->zout_end) { + 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 { + STBI_ASSERT(c == 18); + c = stbi__zreceive(a,7)+11; + } + 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; + } + STBI_ASSERT(a->num_bits == 0); + // 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 ((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[288] = +{ + 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; + 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 , 288)) 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 filters used for first scanline to avoid needing a dummy row of 0s + STBI__F_avg_first, + STBI__F_paeth_first +}; + +static stbi_uc first_row_filter[5] = +{ + STBI__F_none, + STBI__F_sub, + STBI__F_none, + STBI__F_avg_first, + STBI__F_paeth_first +}; + +static int stbi__paeth(int a, int b, int c) +{ + int p = a + b - c; + int pa = abs(p-a); + int pb = abs(p-b); + int pc = abs(p-c); + if (pa <= pb && pa <= pc) return a; + if (pb <= pc) return b; + return c; +} + +static const stbi_uc stbi__depth_scale_table[9] = { 0, 0xff, 0x55, 0, 0x11, 0,0,0, 0x01 }; + +// 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; + 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"); + + 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); + 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"); + + for (j=0; j < y; ++j) { + stbi_uc *cur = a->out + stride*j; + stbi_uc *prior; + int filter = *raw++; + + if (filter > 4) + return stbi__err("invalid filter","Corrupt PNG"); + + if (depth < 8) { + STBI_ASSERT(img_width_bytes <= x); + cur += x*out_n - img_width_bytes; // store output to the rightmost img_len bytes, so we can decode in place + filter_bytes = 1; + width = img_width_bytes; + } + prior = cur - stride; // bugfix: need to compute this after 'cur +=' computation above + + // if first row, use special filter that doesn't sample previous row + if (j == 0) filter = first_row_filter[filter]; + + // handle first byte explicitly + for (k=0; k < filter_bytes; ++k) { + switch (filter) { + case STBI__F_none : cur[k] = raw[k]; break; + case STBI__F_sub : cur[k] = raw[k]; break; + case STBI__F_up : cur[k] = STBI__BYTECAST(raw[k] + prior[k]); break; + case STBI__F_avg : cur[k] = STBI__BYTECAST(raw[k] + (prior[k]>>1)); break; + case STBI__F_paeth : cur[k] = STBI__BYTECAST(raw[k] + stbi__paeth(0,prior[k],0)); break; + case STBI__F_avg_first : cur[k] = raw[k]; break; + case STBI__F_paeth_first: cur[k] = raw[k]; break; + } + } + + if (depth == 8) { + if (img_n != out_n) + cur[img_n] = 255; // first pixel + raw += img_n; + cur += out_n; + prior += out_n; + } else if (depth == 16) { + if (img_n != out_n) { + cur[filter_bytes] = 255; // first pixel top byte + cur[filter_bytes+1] = 255; // first pixel bottom byte + } + raw += filter_bytes; + cur += output_bytes; + prior += output_bytes; + } else { + raw += 1; + cur += 1; + prior += 1; + } + + // this is a little gross, so that we don't switch per-pixel or per-component + if (depth < 8 || img_n == out_n) { + int nk = (width - 1)*filter_bytes; + #define STBI__CASE(f) \ + case f: \ + for (k=0; k < nk; ++k) + switch (filter) { + // "none" filter turns into a memcpy here; make that explicit. + case STBI__F_none: memcpy(cur, raw, nk); break; + STBI__CASE(STBI__F_sub) { cur[k] = STBI__BYTECAST(raw[k] + cur[k-filter_bytes]); } break; + STBI__CASE(STBI__F_up) { cur[k] = STBI__BYTECAST(raw[k] + prior[k]); } break; + STBI__CASE(STBI__F_avg) { cur[k] = STBI__BYTECAST(raw[k] + ((prior[k] + cur[k-filter_bytes])>>1)); } break; + STBI__CASE(STBI__F_paeth) { cur[k] = STBI__BYTECAST(raw[k] + stbi__paeth(cur[k-filter_bytes],prior[k],prior[k-filter_bytes])); } break; + STBI__CASE(STBI__F_avg_first) { cur[k] = STBI__BYTECAST(raw[k] + (cur[k-filter_bytes] >> 1)); } break; + STBI__CASE(STBI__F_paeth_first) { cur[k] = STBI__BYTECAST(raw[k] + stbi__paeth(cur[k-filter_bytes],0,0)); } break; + } + #undef STBI__CASE + raw += nk; + } else { + STBI_ASSERT(img_n+1 == out_n); + #define STBI__CASE(f) \ + case f: \ + for (i=x-1; i >= 1; --i, cur[filter_bytes]=255,raw+=filter_bytes,cur+=output_bytes,prior+=output_bytes) \ + for (k=0; k < filter_bytes; ++k) + switch (filter) { + STBI__CASE(STBI__F_none) { cur[k] = raw[k]; } break; + STBI__CASE(STBI__F_sub) { cur[k] = STBI__BYTECAST(raw[k] + cur[k- output_bytes]); } break; + STBI__CASE(STBI__F_up) { cur[k] = STBI__BYTECAST(raw[k] + prior[k]); } break; + STBI__CASE(STBI__F_avg) { cur[k] = STBI__BYTECAST(raw[k] + ((prior[k] + cur[k- output_bytes])>>1)); } break; + STBI__CASE(STBI__F_paeth) { cur[k] = STBI__BYTECAST(raw[k] + stbi__paeth(cur[k- output_bytes],prior[k],prior[k- output_bytes])); } break; + STBI__CASE(STBI__F_avg_first) { cur[k] = STBI__BYTECAST(raw[k] + (cur[k- output_bytes] >> 1)); } break; + STBI__CASE(STBI__F_paeth_first) { cur[k] = STBI__BYTECAST(raw[k] + stbi__paeth(cur[k- output_bytes],0,0)); } break; + } + #undef STBI__CASE + + // the loop above sets the high byte of the pixels' alpha, but for + // 16 bit png files we also need the low byte set. we'll do that here. + if (depth == 16) { + cur = a->out + stride*j; // start at the beginning of the row again + for (i=0; i < x; ++i,cur+=output_bytes) { + cur[filter_bytes+1] = 255; + } + } + } + } + + // we make a separate pass to expand bits to pixels; for performance, + // this could run two scanlines behind the above code, so it won't + // intefere with filtering but will still be in the cache. + if (depth < 8) { + for (j=0; j < y; ++j) { + stbi_uc *cur = a->out + stride*j; + stbi_uc *in = a->out + stride*j + x*out_n - img_width_bytes; + // unpack 1/2/4-bit into a 8-bit buffer. allows us to keep the common 8-bit path optimal at minimal cost for 1/2/4-bit + // png guarante byte alignment, if width is not multiple of 8/4/2 we'll decode dummy trailing data that will be skipped in the later loop + stbi_uc scale = (color == 0) ? stbi__depth_scale_table[depth] : 1; // scale grayscale values to 0..255 range + + // note that the final byte might overshoot and write more data than desired. + // we can allocate enough data that this never writes out of memory, but it + // could also overwrite the next scanline. can it overwrite non-empty data + // on the next scanline? yes, consider 1-pixel-wide scanlines with 1-bit-per-pixel. + // so we need to explicitly clamp the final ones + + if (depth == 4) { + for (k=x*img_n; k >= 2; k-=2, ++in) { + *cur++ = scale * ((*in >> 4) ); + *cur++ = scale * ((*in ) & 0x0f); + } + if (k > 0) *cur++ = scale * ((*in >> 4) ); + } else if (depth == 2) { + for (k=x*img_n; k >= 4; k-=4, ++in) { + *cur++ = scale * ((*in >> 6) ); + *cur++ = scale * ((*in >> 4) & 0x03); + *cur++ = scale * ((*in >> 2) & 0x03); + *cur++ = scale * ((*in ) & 0x03); + } + if (k > 0) *cur++ = scale * ((*in >> 6) ); + if (k > 1) *cur++ = scale * ((*in >> 4) & 0x03); + if (k > 2) *cur++ = scale * ((*in >> 2) & 0x03); + } else if (depth == 1) { + for (k=x*img_n; k >= 8; k-=8, ++in) { + *cur++ = scale * ((*in >> 7) ); + *cur++ = scale * ((*in >> 6) & 0x01); + *cur++ = scale * ((*in >> 5) & 0x01); + *cur++ = scale * ((*in >> 4) & 0x01); + *cur++ = scale * ((*in >> 3) & 0x01); + *cur++ = scale * ((*in >> 2) & 0x01); + *cur++ = scale * ((*in >> 1) & 0x01); + *cur++ = scale * ((*in ) & 0x01); + } + if (k > 0) *cur++ = scale * ((*in >> 7) ); + if (k > 1) *cur++ = scale * ((*in >> 6) & 0x01); + if (k > 2) *cur++ = scale * ((*in >> 5) & 0x01); + if (k > 3) *cur++ = scale * ((*in >> 4) & 0x01); + if (k > 4) *cur++ = scale * ((*in >> 3) & 0x01); + if (k > 5) *cur++ = scale * ((*in >> 2) & 0x01); + if (k > 6) *cur++ = scale * ((*in >> 1) & 0x01); + } + if (img_n != out_n) { + int q; + // insert alpha = 255 + cur = a->out + stride*j; + if (img_n == 1) { + for (q=x-1; q >= 0; --q) { + cur[q*2+1] = 255; + cur[q*2+0] = cur[q]; + } + } else { + STBI_ASSERT(img_n == 3); + for (q=x-1; q >= 0; --q) { + cur[q*4+3] = 255; + cur[q*4+2] = cur[q*3+2]; + cur[q*4+1] = cur[q*3+1]; + cur[q*4+0] = cur[q*3+0]; + } + } + } + } + } else if (depth == 16) { + // force the image data from big-endian to platform-native. + // this is done in a separate pass due to the decoding relying + // on the data being untouched, but could probably be done + // per-line during decode if care is taken. + stbi_uc *cur = a->out; + stbi__uint16 *cur16 = (stbi__uint16*)cur; + + for(i=0; i < x*y*out_n; ++i,cur16++,cur+=2) { + *cur16 = (cur[0] << 8) | cur[1]; + } + } + + 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); + 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 = 0; +static int stbi__de_iphone_flag = 0; + +STBIDEF void stbi_set_unpremultiply_on_load(int flag_true_if_should_unpremultiply) +{ + stbi__unpremultiply_on_load = flag_true_if_should_unpremultiply; +} + +STBIDEF void stbi_convert_iphone_png_to_rgb(int flag_true_if_should_convert) +{ + stbi__de_iphone_flag = flag_true_if_should_convert; +} + +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]; + 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); if (s->img_x > (1 << 24)) return stbi__err("too large","Very large image (corrupt?)"); + s->img_y = stbi__get32be(s); if (s->img_y > (1 << 24)) 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"); + if (scan == STBI__SCAN_header) return 1; + } 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"); + // if 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; + if (z->depth == 16) { + for (k = 0; k < s->img_n; ++k) tc16[k] = (stbi__uint16)stbi__get16be(s); // copy the values as-is + } else { + for (k = 0; k < s->img_n; ++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) { s->img_n = pal_img_n; return 1; } + 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; + 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 + ri->bits_per_channel = p->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, z >>= 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(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 >= 0 && 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; +} stbi__bmp_data; + +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; + + 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"); + 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) { + 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 { + info->mr = 31u << 10; + info->mg = 31u << 5; + info->mb = 31u << 0; + } + } else if (compress == 3) { + info->mr = stbi__get32le(s); + info->mg = stbi__get32le(s); + info->mb = stbi__get32le(s); + // 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 { + 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); + 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); + + 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 - 14 - 24) / 3; + } else { + if (info.bpp < 16) + psize = (info.offset - 14 - info.hsz) >> 2; + } + + 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 - 14 - 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((--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 - 14 - 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); + } + 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); + + // 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) + { + // 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; + // 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); + + // 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 preceeded 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 (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); + 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 (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 (!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; + + // 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 + g->out = (stbi_uc *) stbi__malloc(4 * g->w * g->h); + g->background = (stbi_uc *) stbi__malloc(4 * g->w * g->h); + g->history = (stbi_uc *) stbi__malloc(g->w * g->h); + if (g->out == 0) return stbi__errpuc("outofmem", "Out of memory"); + + // image is treated as "tranparent" 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 teh color that was there the previous frame. + memset( g->out, 0x00, 4 * g->w * g->h ); + memset( g->background, 0x00, 4 * g->w * g->h ); // state of the background (starts transparent) + memset( g->history, 0x00, g->w * g->h ); // pixels that were affected previous frame + first_frame = 1; + } else { + // second frame - how do we dispoase 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; + + 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 == NULL) 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(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; + 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) { + out = (stbi_uc*) STBI_REALLOC( out, layers * stride ); + if (delays) { + *delays = (int*) STBI_REALLOC( *delays, sizeof(int) * layers ); + } + } else { + out = (stbi_uc*)stbi__malloc( layers * stride ); + if (delays) { + *delays = (int*) stbi__malloc( 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)); + + 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); + } + + // 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); + + *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 > 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 > 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); + stbi__rewind( s ); + if (p == NULL) + return 0; + if (x) *x = s->img_x; + if (y) *y = s->img_y; + if (comp) *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; + } + (void) stbi__get32be(s); + (void) 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) +// Does not support 16-bit-per-channel + +#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); + + if (!stbi__pnm_info(s, (int *)&s->img_x, (int *)&s->img_y, (int *)&s->img_n)) + return 0; + + *x = s->img_x; + *y = s->img_y; + if (comp) *comp = s->img_n; + + if (!stbi__mad3sizes_valid(s->img_n, s->img_x, s->img_y, 0)) + return stbi__errpuc("too large", "PNM too large"); + + out = (stbi_uc *) stbi__malloc_mad3(s->img_n, s->img_x, s->img_y, 0); + if (!out) return stbi__errpuc("outofmem", "Out of memory"); + stbi__getn(s, out, s->img_n * s->img_x * s->img_y); + + if (req_comp && req_comp != s->img_n) { + 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); + } + + 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 + stbi__pnm_skip_whitespace(s, &c); + + *y = stbi__pnm_getinteger(s, &c); // read height + stbi__pnm_skip_whitespace(s, &c); + + maxv = stbi__pnm_getinteger(s, &c); // read max value + + if (maxv > 255) + return stbi__err("max value > 255", "PPM image not 8-bit"); + else + return 1; +} +#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 + + 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.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/modules/tinyexr/examples/common/stb_image_resize.h b/modules/tinyexr/examples/common/stb_image_resize.h new file mode 100644 index 0000000..bcca92c --- /dev/null +++ b/modules/tinyexr/examples/common/stb_image_resize.h @@ -0,0 +1,2585 @@ +/* stb_image_resize - v0.90 - public domain image resizing + by Jorge L Rodriguez (@VinoBS) - 2014 + http://github.com/nothings/stb + + Written with emphasis on usability, portability, and efficiency. (No + SIMD or threads, so it be easily outperformed by libs that use those.) + Only scaling and translation is supported, no rotations or shears. + Easy API downsamples w/Mitchell filter, upsamples w/cubic interpolation. + + COMPILING & LINKING + In one C/C++ file that #includes this file, do this: + #define STB_IMAGE_RESIZE_IMPLEMENTATION + before the #include. That will create the implementation in that file. + + QUICKSTART + stbir_resize_uint8( input_pixels , in_w , in_h , 0, + output_pixels, out_w, out_h, 0, num_channels) + stbir_resize_float(...) + stbir_resize_uint8_srgb( input_pixels , in_w , in_h , 0, + output_pixels, out_w, out_h, 0, + num_channels , alpha_chan , 0) + stbir_resize_uint8_srgb_edgemode( + input_pixels , in_w , in_h , 0, + output_pixels, out_w, out_h, 0, + num_channels , alpha_chan , 0, STBIR_EDGE_CLAMP) + // WRAP/REFLECT/ZERO + + FULL API + See the "header file" section of the source for API documentation. + + ADDITIONAL DOCUMENTATION + + SRGB & FLOATING POINT REPRESENTATION + The sRGB functions presume IEEE floating point. If you do not have + IEEE floating point, define STBIR_NON_IEEE_FLOAT. This will use + a slower implementation. + + MEMORY ALLOCATION + The resize functions here perform a single memory allocation using + malloc. To control the memory allocation, before the #include that + triggers the implementation, do: + + #define STBIR_MALLOC(size,context) ... + #define STBIR_FREE(ptr,context) ... + + Each resize function makes exactly one call to malloc/free, so to use + temp memory, store the temp memory in the context and return that. + + ASSERT + Define STBIR_ASSERT(boolval) to override assert() and not use assert.h + + OPTIMIZATION + Define STBIR_SATURATE_INT to compute clamp values in-range using + integer operations instead of float operations. This may be faster + on some platforms. + + DEFAULT FILTERS + For functions which don't provide explicit control over what filters + to use, you can change the compile-time defaults with + + #define STBIR_DEFAULT_FILTER_UPSAMPLE STBIR_FILTER_something + #define STBIR_DEFAULT_FILTER_DOWNSAMPLE STBIR_FILTER_something + + See stbir_filter in the header-file section for the list of filters. + + NEW FILTERS + A number of 1D filter kernels are used. For a list of + supported filters see the stbir_filter enum. To add a new filter, + write a filter function and add it to stbir__filter_info_table. + + PROGRESS + For interactive use with slow resize operations, you can install + a progress-report callback: + + #define STBIR_PROGRESS_REPORT(val) some_func(val) + + The parameter val is a float which goes from 0 to 1 as progress is made. + + For example: + + static void my_progress_report(float progress); + #define STBIR_PROGRESS_REPORT(val) my_progress_report(val) + + #define STB_IMAGE_RESIZE_IMPLEMENTATION + #include "stb_image_resize.h" + + static void my_progress_report(float progress) + { + printf("Progress: %f%%\n", progress*100); + } + + MAX CHANNELS + If your image has more than 64 channels, define STBIR_MAX_CHANNELS + to the max you'll have. + + ALPHA CHANNEL + Most of the resizing functions provide the ability to control how + the alpha channel of an image is processed. The important things + to know about this: + + 1. The best mathematically-behaved version of alpha to use is + called "premultiplied alpha", in which the other color channels + have had the alpha value multiplied in. If you use premultiplied + alpha, linear filtering (such as image resampling done by this + library, or performed in texture units on GPUs) does the "right + thing". While premultiplied alpha is standard in the movie CGI + industry, it is still uncommon in the videogame/real-time world. + + If you linearly filter non-premultiplied alpha, strange effects + occur. (For example, the average of 1% opaque bright green + and 99% opaque black produces 50% transparent dark green when + non-premultiplied, whereas premultiplied it produces 50% + transparent near-black. The former introduces green energy + that doesn't exist in the source image.) + + 2. Artists should not edit premultiplied-alpha images; artists + want non-premultiplied alpha images. Thus, art tools generally output + non-premultiplied alpha images. + + 3. You will get best results in most cases by converting images + to premultiplied alpha before processing them mathematically. + + 4. If you pass the flag STBIR_FLAG_ALPHA_PREMULTIPLIED, the + resizer does not do anything special for the alpha channel; + it is resampled identically to other channels. This produces + the correct results for premultiplied-alpha images, but produces + less-than-ideal results for non-premultiplied-alpha images. + + 5. If you do not pass the flag STBIR_FLAG_ALPHA_PREMULTIPLIED, + then the resizer weights the contribution of input pixels + based on their alpha values, or, equivalently, it multiplies + the alpha value into the color channels, resamples, then divides + by the resultant alpha value. Input pixels which have alpha=0 do + not contribute at all to output pixels unless _all_ of the input + pixels affecting that output pixel have alpha=0, in which case + the result for that pixel is the same as it would be without + STBIR_FLAG_ALPHA_PREMULTIPLIED. However, this is only true for + input images in integer formats. For input images in float format, + input pixels with alpha=0 have no effect, and output pixels + which have alpha=0 will be 0 in all channels. (For float images, + you can manually achieve the same result by adding a tiny epsilon + value to the alpha channel of every image, and then subtracting + or clamping it at the end.) + + 6. You can suppress the behavior described in #5 and make + all-0-alpha pixels have 0 in all channels by #defining + STBIR_NO_ALPHA_EPSILON. + + 7. You can separately control whether the alpha channel is + interpreted as linear or affected by the colorspace. By default + it is linear; you almost never want to apply the colorspace. + (For example, graphics hardware does not apply sRGB conversion + to the alpha channel.) + + ADDITIONAL CONTRIBUTORS + Sean Barrett: API design, optimizations + + REVISIONS + 0.90 (2014-09-17) first released version + + LICENSE + This software is in the public domain. Where that dedication is not + recognized, you are granted a perpetual, irrevocable license to copy + and modify this file as you see fit. + + TODO + Don't decode all of the image data when only processing a partial tile + Don't use full-width decode buffers when only processing a partial tile + When processing wide images, break processing into tiles so data fits in L1 cache + Installable filters? + Resize that respects alpha test coverage + (Reference code: FloatImage::alphaTestCoverage and FloatImage::scaleAlphaToCoverage: + https://code.google.com/p/nvidia-texture-tools/source/browse/trunk/src/nvimage/FloatImage.cpp ) +*/ + +#ifndef STBIR_INCLUDE_STB_IMAGE_RESIZE_H +#define STBIR_INCLUDE_STB_IMAGE_RESIZE_H + +#ifdef _MSC_VER +typedef unsigned char stbir_uint8; +typedef unsigned short stbir_uint16; +typedef unsigned int stbir_uint32; +#else +#include +typedef uint8_t stbir_uint8; +typedef uint16_t stbir_uint16; +typedef uint32_t stbir_uint32; +#endif + +#ifdef STB_IMAGE_RESIZE_STATIC +#define STBIRDEF static +#else +#ifdef __cplusplus +#define STBIRDEF extern "C" +#else +#define STBIRDEF extern +#endif +#endif + + +////////////////////////////////////////////////////////////////////////////// +// +// Easy-to-use API: +// +// * "input pixels" points to an array of image data with 'num_channels' channels (e.g. RGB=3, RGBA=4) +// * input_w is input image width (x-axis), input_h is input image height (y-axis) +// * stride is the offset between successive rows of image data in memory, in bytes. you can +// specify 0 to mean packed continuously in memory +// * alpha channel is treated identically to other channels. +// * colorspace is linear or sRGB as specified by function name +// * returned result is 1 for success or 0 in case of an error. +// #define STBIR_ASSERT() to trigger an assert on parameter validation errors. +// * Memory required grows approximately linearly with input and output size, but with +// discontinuities at input_w == output_w and input_h == output_h. +// * These functions use a "default" resampling filter defined at compile time. To change the filter, +// you can change the compile-time defaults by #defining STBIR_DEFAULT_FILTER_UPSAMPLE +// and STBIR_DEFAULT_FILTER_DOWNSAMPLE, or you can use the medium-complexity API. + +STBIRDEF int stbir_resize_uint8( const unsigned char *input_pixels , int input_w , int input_h , int input_stride_in_bytes, + unsigned char *output_pixels, int output_w, int output_h, int output_stride_in_bytes, + int num_channels); + +STBIRDEF int stbir_resize_float( const float *input_pixels , int input_w , int input_h , int input_stride_in_bytes, + float *output_pixels, int output_w, int output_h, int output_stride_in_bytes, + int num_channels); + + +// The following functions interpret image data as gamma-corrected sRGB. +// Specify STBIR_ALPHA_CHANNEL_NONE if you have no alpha channel, +// or otherwise provide the index of the alpha channel. Flags value +// of 0 will probably do the right thing if you're not sure what +// the flags mean. + +#define STBIR_ALPHA_CHANNEL_NONE -1 + +// Set this flag if your texture has premultiplied alpha. Otherwise, stbir will +// use alpha-weighted resampling (effectively premultiplying, resampling, +// then unpremultiplying). +#define STBIR_FLAG_ALPHA_PREMULTIPLIED (1 << 0) +// The specified alpha channel should be handled as gamma-corrected value even +// when doing sRGB operations. +#define STBIR_FLAG_ALPHA_USES_COLORSPACE (1 << 1) + +STBIRDEF int stbir_resize_uint8_srgb(const unsigned char *input_pixels , int input_w , int input_h , int input_stride_in_bytes, + unsigned char *output_pixels, int output_w, int output_h, int output_stride_in_bytes, + int num_channels, int alpha_channel, int flags); + + +typedef enum +{ + STBIR_EDGE_CLAMP = 1, + STBIR_EDGE_REFLECT = 2, + STBIR_EDGE_WRAP = 3, + STBIR_EDGE_ZERO = 4, +} stbir_edge; + +// This function adds the ability to specify how requests to sample off the edge of the image are handled. +STBIRDEF int stbir_resize_uint8_srgb_edgemode(const unsigned char *input_pixels , int input_w , int input_h , int input_stride_in_bytes, + unsigned char *output_pixels, int output_w, int output_h, int output_stride_in_bytes, + int num_channels, int alpha_channel, int flags, + stbir_edge edge_wrap_mode); + +////////////////////////////////////////////////////////////////////////////// +// +// Medium-complexity API +// +// This extends the easy-to-use API as follows: +// +// * Alpha-channel can be processed separately +// * If alpha_channel is not STBIR_ALPHA_CHANNEL_NONE +// * Alpha channel will not be gamma corrected (unless flags&STBIR_FLAG_GAMMA_CORRECT) +// * Filters will be weighted by alpha channel (unless flags&STBIR_FLAG_ALPHA_PREMULTIPLIED) +// * Filter can be selected explicitly +// * uint16 image type +// * sRGB colorspace available for all types +// * context parameter for passing to STBIR_MALLOC + +typedef enum +{ + STBIR_FILTER_DEFAULT = 0, // use same filter type that easy-to-use API chooses + STBIR_FILTER_BOX = 1, // A trapezoid w/1-pixel wide ramps, same result as box for integer scale ratios + STBIR_FILTER_TRIANGLE = 2, // On upsampling, produces same results as bilinear texture filtering + STBIR_FILTER_CUBICBSPLINE = 3, // The cubic b-spline (aka Mitchell-Netrevalli with B=1,C=0), gaussian-esque + STBIR_FILTER_CATMULLROM = 4, // An interpolating cubic spline + STBIR_FILTER_MITCHELL = 5, // Mitchell-Netrevalli filter with B=1/3, C=1/3 +} stbir_filter; + +typedef enum +{ + STBIR_COLORSPACE_LINEAR, + STBIR_COLORSPACE_SRGB, + + STBIR_MAX_COLORSPACES, +} stbir_colorspace; + +// The following functions are all identical except for the type of the image data + +STBIRDEF int stbir_resize_uint8_generic( const unsigned char *input_pixels , int input_w , int input_h , int input_stride_in_bytes, + unsigned char *output_pixels, int output_w, int output_h, int output_stride_in_bytes, + int num_channels, int alpha_channel, int flags, + stbir_edge edge_wrap_mode, stbir_filter filter, stbir_colorspace space, + void *alloc_context); + +STBIRDEF int stbir_resize_uint16_generic(const stbir_uint16 *input_pixels , int input_w , int input_h , int input_stride_in_bytes, + stbir_uint16 *output_pixels , int output_w, int output_h, int output_stride_in_bytes, + int num_channels, int alpha_channel, int flags, + stbir_edge edge_wrap_mode, stbir_filter filter, stbir_colorspace space, + void *alloc_context); + +STBIRDEF int stbir_resize_float_generic( const float *input_pixels , int input_w , int input_h , int input_stride_in_bytes, + float *output_pixels , int output_w, int output_h, int output_stride_in_bytes, + int num_channels, int alpha_channel, int flags, + stbir_edge edge_wrap_mode, stbir_filter filter, stbir_colorspace space, + void *alloc_context); + + + +////////////////////////////////////////////////////////////////////////////// +// +// Full-complexity API +// +// This extends the medium API as follows: +// +// * uint32 image type +// * not typesafe +// * separate filter types for each axis +// * separate edge modes for each axis +// * can specify scale explicitly for subpixel correctness +// * can specify image source tile using texture coordinates + +typedef enum +{ + STBIR_TYPE_UINT8 , + STBIR_TYPE_UINT16, + STBIR_TYPE_UINT32, + STBIR_TYPE_FLOAT , + + STBIR_MAX_TYPES +} stbir_datatype; + +STBIRDEF int stbir_resize( const void *input_pixels , int input_w , int input_h , int input_stride_in_bytes, + void *output_pixels, int output_w, int output_h, int output_stride_in_bytes, + stbir_datatype datatype, + int num_channels, int alpha_channel, int flags, + stbir_edge edge_mode_horizontal, stbir_edge edge_mode_vertical, + stbir_filter filter_horizontal, stbir_filter filter_vertical, + stbir_colorspace space, void *alloc_context); + +STBIRDEF int stbir_resize_subpixel(const void *input_pixels , int input_w , int input_h , int input_stride_in_bytes, + void *output_pixels, int output_w, int output_h, int output_stride_in_bytes, + stbir_datatype datatype, + int num_channels, int alpha_channel, int flags, + stbir_edge edge_mode_horizontal, stbir_edge edge_mode_vertical, + stbir_filter filter_horizontal, stbir_filter filter_vertical, + stbir_colorspace space, void *alloc_context, + float x_scale, float y_scale, + float x_offset, float y_offset); + +STBIRDEF int stbir_resize_region( const void *input_pixels , int input_w , int input_h , int input_stride_in_bytes, + void *output_pixels, int output_w, int output_h, int output_stride_in_bytes, + stbir_datatype datatype, + int num_channels, int alpha_channel, int flags, + stbir_edge edge_mode_horizontal, stbir_edge edge_mode_vertical, + stbir_filter filter_horizontal, stbir_filter filter_vertical, + stbir_colorspace space, void *alloc_context, + float s0, float t0, float s1, float t1); +// (s0, t0) & (s1, t1) are the top-left and bottom right corner (uv addressing style: [0, 1]x[0, 1]) of a region of the input image to use. + +// +// +//// end header file ///////////////////////////////////////////////////// +#endif // STBIR_INCLUDE_STB_IMAGE_RESIZE_H + + + + + +#ifdef STB_IMAGE_RESIZE_IMPLEMENTATION + +#ifndef STBIR_ASSERT +#include +#define STBIR_ASSERT(x) assert(x) +#endif + +#ifdef STBIR_DEBUG +#define STBIR__DEBUG_ASSERT STBIR_ASSERT +#else +#define STBIR__DEBUG_ASSERT +#endif + +// If you hit this it means I haven't done it yet. +#define STBIR__UNIMPLEMENTED(x) STBIR_ASSERT(!(x)) + +// For memset +#include + +#include + +#ifndef STBIR_MALLOC +#include +#define STBIR_MALLOC(size,c) malloc(size) +#define STBIR_FREE(ptr,c) free(ptr) +#endif + +#ifndef _MSC_VER +#ifdef __cplusplus +#define stbir__inline inline +#else +#define stbir__inline +#endif +#else +#define stbir__inline __forceinline +#endif + + +// should produce compiler error if size is wrong +typedef unsigned char stbir__validate_uint32[sizeof(stbir_uint32) == 4 ? 1 : -1]; + +#ifdef _MSC_VER +#define STBIR__NOTUSED(v) (void)(v) +#else +#define STBIR__NOTUSED(v) (void)sizeof(v) +#endif + +#define STBIR__ARRAY_SIZE(a) (sizeof((a))/sizeof((a)[0])) + +#ifndef STBIR_DEFAULT_FILTER_UPSAMPLE +#define STBIR_DEFAULT_FILTER_UPSAMPLE STBIR_FILTER_CATMULLROM +#endif + +#ifndef STBIR_DEFAULT_FILTER_DOWNSAMPLE +#define STBIR_DEFAULT_FILTER_DOWNSAMPLE STBIR_FILTER_MITCHELL +#endif + +#ifndef STBIR_PROGRESS_REPORT +#define STBIR_PROGRESS_REPORT(float_0_to_1) +#endif + +#ifndef STBIR_MAX_CHANNELS +#define STBIR_MAX_CHANNELS 64 +#endif + +#if STBIR_MAX_CHANNELS > 65536 +#error "Too many channels; STBIR_MAX_CHANNELS must be no more than 65536." +// because we store the indices in 16-bit variables +#endif + +// This value is added to alpha just before premultiplication to avoid +// zeroing out color values. It is equivalent to 2^-80. If you don't want +// that behavior (it may interfere if you have floating point images with +// very small alpha values) then you can define STBIR_NO_ALPHA_EPSILON to +// disable it. +#ifndef STBIR_ALPHA_EPSILON +#define STBIR_ALPHA_EPSILON ((float)1 / (1 << 20) / (1 << 20) / (1 << 20) / (1 << 20)) +#endif + + + +#ifdef _MSC_VER +#define STBIR__UNUSED_PARAM(v) (void)(v) +#else +#define STBIR__UNUSED_PARAM(v) (void)sizeof(v) +#endif + +// must match stbir_datatype +static unsigned char stbir__type_size[] = { + 1, // STBIR_TYPE_UINT8 + 2, // STBIR_TYPE_UINT16 + 4, // STBIR_TYPE_UINT32 + 4, // STBIR_TYPE_FLOAT +}; + +// Kernel function centered at 0 +typedef float (stbir__kernel_fn)(float x, float scale); +typedef float (stbir__support_fn)(float scale); + +typedef struct +{ + stbir__kernel_fn* kernel; + stbir__support_fn* support; +} stbir__filter_info; + +// When upsampling, the contributors are which source pixels contribute. +// When downsampling, the contributors are which destination pixels are contributed to. +typedef struct +{ + int n0; // First contributing pixel + int n1; // Last contributing pixel +} stbir__contributors; + +typedef struct +{ + const void* input_data; + int input_w; + int input_h; + int input_stride_bytes; + + void* output_data; + int output_w; + int output_h; + int output_stride_bytes; + + float s0, t0, s1, t1; + + float horizontal_shift; // Units: output pixels + float vertical_shift; // Units: output pixels + float horizontal_scale; + float vertical_scale; + + int channels; + int alpha_channel; + stbir_uint32 flags; + stbir_datatype type; + stbir_filter horizontal_filter; + stbir_filter vertical_filter; + stbir_edge edge_horizontal; + stbir_edge edge_vertical; + stbir_colorspace colorspace; + + stbir__contributors* horizontal_contributors; + float* horizontal_coefficients; + + stbir__contributors* vertical_contributors; + float* vertical_coefficients; + + int decode_buffer_pixels; + float* decode_buffer; + + float* horizontal_buffer; + + // cache these because ceil/floor are inexplicably showing up in profile + int horizontal_coefficient_width; + int vertical_coefficient_width; + int horizontal_filter_pixel_width; + int vertical_filter_pixel_width; + int horizontal_filter_pixel_margin; + int vertical_filter_pixel_margin; + int horizontal_num_contributors; + int vertical_num_contributors; + + int ring_buffer_length_bytes; // The length of an individual entry in the ring buffer. The total number of ring buffers is stbir__get_filter_pixel_width(filter) + int ring_buffer_first_scanline; + int ring_buffer_last_scanline; + int ring_buffer_begin_index; + float* ring_buffer; + + float* encode_buffer; // A temporary buffer to store floats so we don't lose precision while we do multiply-adds. + + int horizontal_contributors_size; + int horizontal_coefficients_size; + int vertical_contributors_size; + int vertical_coefficients_size; + int decode_buffer_size; + int horizontal_buffer_size; + int ring_buffer_size; + int encode_buffer_size; +} stbir__info; + +static stbir__inline int stbir__min(int a, int b) +{ + return a < b ? a : b; +} + +static stbir__inline int stbir__max(int a, int b) +{ + return a > b ? a : b; +} + +static stbir__inline float stbir__saturate(float x) +{ + if (x < 0) + return 0; + + if (x > 1) + return 1; + + return x; +} + +#ifdef STBIR_SATURATE_INT +static stbir__inline stbir_uint8 stbir__saturate8(int x) +{ + if ((unsigned int) x <= 255) + return x; + + if (x < 0) + return 0; + + return 255; +} + +static stbir__inline stbir_uint16 stbir__saturate16(int x) +{ + if ((unsigned int) x <= 65535) + return x; + + if (x < 0) + return 0; + + return 65535; +} +#endif + +static float stbir__srgb_uchar_to_linear_float[256] = { + 0.000000f, 0.000304f, 0.000607f, 0.000911f, 0.001214f, 0.001518f, 0.001821f, 0.002125f, 0.002428f, 0.002732f, 0.003035f, + 0.003347f, 0.003677f, 0.004025f, 0.004391f, 0.004777f, 0.005182f, 0.005605f, 0.006049f, 0.006512f, 0.006995f, 0.007499f, + 0.008023f, 0.008568f, 0.009134f, 0.009721f, 0.010330f, 0.010960f, 0.011612f, 0.012286f, 0.012983f, 0.013702f, 0.014444f, + 0.015209f, 0.015996f, 0.016807f, 0.017642f, 0.018500f, 0.019382f, 0.020289f, 0.021219f, 0.022174f, 0.023153f, 0.024158f, + 0.025187f, 0.026241f, 0.027321f, 0.028426f, 0.029557f, 0.030713f, 0.031896f, 0.033105f, 0.034340f, 0.035601f, 0.036889f, + 0.038204f, 0.039546f, 0.040915f, 0.042311f, 0.043735f, 0.045186f, 0.046665f, 0.048172f, 0.049707f, 0.051269f, 0.052861f, + 0.054480f, 0.056128f, 0.057805f, 0.059511f, 0.061246f, 0.063010f, 0.064803f, 0.066626f, 0.068478f, 0.070360f, 0.072272f, + 0.074214f, 0.076185f, 0.078187f, 0.080220f, 0.082283f, 0.084376f, 0.086500f, 0.088656f, 0.090842f, 0.093059f, 0.095307f, + 0.097587f, 0.099899f, 0.102242f, 0.104616f, 0.107023f, 0.109462f, 0.111932f, 0.114435f, 0.116971f, 0.119538f, 0.122139f, + 0.124772f, 0.127438f, 0.130136f, 0.132868f, 0.135633f, 0.138432f, 0.141263f, 0.144128f, 0.147027f, 0.149960f, 0.152926f, + 0.155926f, 0.158961f, 0.162029f, 0.165132f, 0.168269f, 0.171441f, 0.174647f, 0.177888f, 0.181164f, 0.184475f, 0.187821f, + 0.191202f, 0.194618f, 0.198069f, 0.201556f, 0.205079f, 0.208637f, 0.212231f, 0.215861f, 0.219526f, 0.223228f, 0.226966f, + 0.230740f, 0.234551f, 0.238398f, 0.242281f, 0.246201f, 0.250158f, 0.254152f, 0.258183f, 0.262251f, 0.266356f, 0.270498f, + 0.274677f, 0.278894f, 0.283149f, 0.287441f, 0.291771f, 0.296138f, 0.300544f, 0.304987f, 0.309469f, 0.313989f, 0.318547f, + 0.323143f, 0.327778f, 0.332452f, 0.337164f, 0.341914f, 0.346704f, 0.351533f, 0.356400f, 0.361307f, 0.366253f, 0.371238f, + 0.376262f, 0.381326f, 0.386430f, 0.391573f, 0.396755f, 0.401978f, 0.407240f, 0.412543f, 0.417885f, 0.423268f, 0.428691f, + 0.434154f, 0.439657f, 0.445201f, 0.450786f, 0.456411f, 0.462077f, 0.467784f, 0.473532f, 0.479320f, 0.485150f, 0.491021f, + 0.496933f, 0.502887f, 0.508881f, 0.514918f, 0.520996f, 0.527115f, 0.533276f, 0.539480f, 0.545725f, 0.552011f, 0.558340f, + 0.564712f, 0.571125f, 0.577581f, 0.584078f, 0.590619f, 0.597202f, 0.603827f, 0.610496f, 0.617207f, 0.623960f, 0.630757f, + 0.637597f, 0.644480f, 0.651406f, 0.658375f, 0.665387f, 0.672443f, 0.679543f, 0.686685f, 0.693872f, 0.701102f, 0.708376f, + 0.715694f, 0.723055f, 0.730461f, 0.737911f, 0.745404f, 0.752942f, 0.760525f, 0.768151f, 0.775822f, 0.783538f, 0.791298f, + 0.799103f, 0.806952f, 0.814847f, 0.822786f, 0.830770f, 0.838799f, 0.846873f, 0.854993f, 0.863157f, 0.871367f, 0.879622f, + 0.887923f, 0.896269f, 0.904661f, 0.913099f, 0.921582f, 0.930111f, 0.938686f, 0.947307f, 0.955974f, 0.964686f, 0.973445f, + 0.982251f, 0.991102f, 1.0f +}; + +static float stbir__srgb_to_linear(float f) +{ + if (f <= 0.04045f) + return f / 12.92f; + else + return (float)pow((f + 0.055f) / 1.055f, 2.4f); +} + +static float stbir__linear_to_srgb(float f) +{ + if (f <= 0.0031308f) + return f * 12.92f; + else + return 1.055f * (float)pow(f, 1 / 2.4f) - 0.055f; +} + +#ifndef STBIR_NON_IEEE_FLOAT +// From https://gist.github.com/rygorous/2203834 + +typedef union +{ + stbir_uint32 u; + float f; +} stbir__FP32; + +static const stbir_uint32 fp32_to_srgb8_tab4[104] = { + 0x0073000d, 0x007a000d, 0x0080000d, 0x0087000d, 0x008d000d, 0x0094000d, 0x009a000d, 0x00a1000d, + 0x00a7001a, 0x00b4001a, 0x00c1001a, 0x00ce001a, 0x00da001a, 0x00e7001a, 0x00f4001a, 0x0101001a, + 0x010e0033, 0x01280033, 0x01410033, 0x015b0033, 0x01750033, 0x018f0033, 0x01a80033, 0x01c20033, + 0x01dc0067, 0x020f0067, 0x02430067, 0x02760067, 0x02aa0067, 0x02dd0067, 0x03110067, 0x03440067, + 0x037800ce, 0x03df00ce, 0x044600ce, 0x04ad00ce, 0x051400ce, 0x057b00c5, 0x05dd00bc, 0x063b00b5, + 0x06970158, 0x07420142, 0x07e30130, 0x087b0120, 0x090b0112, 0x09940106, 0x0a1700fc, 0x0a9500f2, + 0x0b0f01cb, 0x0bf401ae, 0x0ccb0195, 0x0d950180, 0x0e56016e, 0x0f0d015e, 0x0fbc0150, 0x10630143, + 0x11070264, 0x1238023e, 0x1357021d, 0x14660201, 0x156601e9, 0x165a01d3, 0x174401c0, 0x182401af, + 0x18fe0331, 0x1a9602fe, 0x1c1502d2, 0x1d7e02ad, 0x1ed4028d, 0x201a0270, 0x21520256, 0x227d0240, + 0x239f0443, 0x25c003fe, 0x27bf03c4, 0x29a10392, 0x2b6a0367, 0x2d1d0341, 0x2ebe031f, 0x304d0300, + 0x31d105b0, 0x34a80555, 0x37520507, 0x39d504c5, 0x3c37048b, 0x3e7c0458, 0x40a8042a, 0x42bd0401, + 0x44c20798, 0x488e071e, 0x4c1c06b6, 0x4f76065d, 0x52a50610, 0x55ac05cc, 0x5892058f, 0x5b590559, + 0x5e0c0a23, 0x631c0980, 0x67db08f6, 0x6c55087f, 0x70940818, 0x74a007bd, 0x787d076c, 0x7c330723, +}; + +static stbir_uint8 stbir__linear_to_srgb_uchar(float in) +{ + static const stbir__FP32 almostone = { 0x3f7fffff }; // 1-eps + static const stbir__FP32 minval = { (127-13) << 23 }; + stbir_uint32 tab,bias,scale,t; + stbir__FP32 f; + + // Clamp to [2^(-13), 1-eps]; these two values map to 0 and 1, respectively. + // The tests are carefully written so that NaNs map to 0, same as in the reference + // implementation. + if (!(in > minval.f)) // written this way to catch NaNs + in = minval.f; + if (in > almostone.f) + in = almostone.f; + + // Do the table lookup and unpack bias, scale + f.f = in; + tab = fp32_to_srgb8_tab4[(f.u - minval.u) >> 20]; + bias = (tab >> 16) << 9; + scale = tab & 0xffff; + + // Grab next-highest mantissa bits and perform linear interpolation + t = (f.u >> 12) & 0xff; + return (unsigned char) ((bias + scale*t) >> 16); +} + +#else +// sRGB transition values, scaled by 1<<28 +static int stbir__srgb_offset_to_linear_scaled[256] = +{ + 0, 40738, 122216, 203693, 285170, 366648, 448125, 529603, + 611080, 692557, 774035, 855852, 942009, 1033024, 1128971, 1229926, + 1335959, 1447142, 1563542, 1685229, 1812268, 1944725, 2082664, 2226148, + 2375238, 2529996, 2690481, 2856753, 3028870, 3206888, 3390865, 3580856, + 3776916, 3979100, 4187460, 4402049, 4622919, 4850123, 5083710, 5323731, + 5570236, 5823273, 6082892, 6349140, 6622065, 6901714, 7188133, 7481369, + 7781466, 8088471, 8402427, 8723380, 9051372, 9386448, 9728650, 10078021, + 10434603, 10798439, 11169569, 11548036, 11933879, 12327139, 12727857, 13136073, + 13551826, 13975156, 14406100, 14844697, 15290987, 15745007, 16206795, 16676389, + 17153826, 17639142, 18132374, 18633560, 19142734, 19659934, 20185196, 20718552, + 21260042, 21809696, 22367554, 22933648, 23508010, 24090680, 24681686, 25281066, + 25888850, 26505076, 27129772, 27762974, 28404716, 29055026, 29713942, 30381490, + 31057708, 31742624, 32436272, 33138682, 33849884, 34569912, 35298800, 36036568, + 36783260, 37538896, 38303512, 39077136, 39859796, 40651528, 41452360, 42262316, + 43081432, 43909732, 44747252, 45594016, 46450052, 47315392, 48190064, 49074096, + 49967516, 50870356, 51782636, 52704392, 53635648, 54576432, 55526772, 56486700, + 57456236, 58435408, 59424248, 60422780, 61431036, 62449032, 63476804, 64514376, + 65561776, 66619028, 67686160, 68763192, 69850160, 70947088, 72053992, 73170912, + 74297864, 75434880, 76581976, 77739184, 78906536, 80084040, 81271736, 82469648, + 83677792, 84896192, 86124888, 87363888, 88613232, 89872928, 91143016, 92423512, + 93714432, 95015816, 96327688, 97650056, 98982952, 100326408, 101680440, 103045072, + 104420320, 105806224, 107202800, 108610064, 110028048, 111456776, 112896264, 114346544, + 115807632, 117279552, 118762328, 120255976, 121760536, 123276016, 124802440, 126339832, + 127888216, 129447616, 131018048, 132599544, 134192112, 135795792, 137410592, 139036528, + 140673648, 142321952, 143981456, 145652208, 147334208, 149027488, 150732064, 152447968, + 154175200, 155913792, 157663776, 159425168, 161197984, 162982240, 164777968, 166585184, + 168403904, 170234160, 172075968, 173929344, 175794320, 177670896, 179559120, 181458992, + 183370528, 185293776, 187228736, 189175424, 191133888, 193104112, 195086128, 197079968, + 199085648, 201103184, 203132592, 205173888, 207227120, 209292272, 211369392, 213458480, + 215559568, 217672656, 219797792, 221934976, 224084240, 226245600, 228419056, 230604656, + 232802400, 235012320, 237234432, 239468736, 241715280, 243974080, 246245120, 248528464, + 250824112, 253132064, 255452368, 257785040, 260130080, 262487520, 264857376, 267239664, +}; + +static stbir_uint8 stbir__linear_to_srgb_uchar(float f) +{ + int x = (int) (f * (1 << 28)); // has headroom so you don't need to clamp + int v = 0; + int i; + + // Refine the guess with a short binary search. + i = v + 128; if (x >= stbir__srgb_offset_to_linear_scaled[i]) v = i; + i = v + 64; if (x >= stbir__srgb_offset_to_linear_scaled[i]) v = i; + i = v + 32; if (x >= stbir__srgb_offset_to_linear_scaled[i]) v = i; + i = v + 16; if (x >= stbir__srgb_offset_to_linear_scaled[i]) v = i; + i = v + 8; if (x >= stbir__srgb_offset_to_linear_scaled[i]) v = i; + i = v + 4; if (x >= stbir__srgb_offset_to_linear_scaled[i]) v = i; + i = v + 2; if (x >= stbir__srgb_offset_to_linear_scaled[i]) v = i; + i = v + 1; if (x >= stbir__srgb_offset_to_linear_scaled[i]) v = i; + + return (stbir_uint8) v; +} +#endif + +static float stbir__filter_trapezoid(float x, float scale) +{ + float halfscale = scale / 2; + float t = 0.5f + halfscale; + STBIR__DEBUG_ASSERT(scale <= 1); + + x = (float)fabs(x); + + if (x >= t) + return 0; + else + { + float r = 0.5f - halfscale; + if (x <= r) + return 1; + else + return (t - x) / scale; + } +} + +static float stbir__support_trapezoid(float scale) +{ + STBIR__DEBUG_ASSERT(scale <= 1); + return 0.5f + scale / 2; +} + +static float stbir__filter_triangle(float x, float s) +{ + STBIR__UNUSED_PARAM(s); + + x = (float)fabs(x); + + if (x <= 1.0f) + return 1 - x; + else + return 0; +} + +static float stbir__filter_cubic(float x, float s) +{ + STBIR__UNUSED_PARAM(s); + + x = (float)fabs(x); + + if (x < 1.0f) + return (4 + x*x*(3*x - 6))/6; + else if (x < 2.0f) + return (8 + x*(-12 + x*(6 - x)))/6; + + return (0.0f); +} + +static float stbir__filter_catmullrom(float x, float s) +{ + STBIR__UNUSED_PARAM(s); + + x = (float)fabs(x); + + if (x < 1.0f) + return 1 - x*x*(2.5f - 1.5f*x); + else if (x < 2.0f) + return 2 - x*(4 + x*(0.5f*x - 2.5f)); + + return (0.0f); +} + +static float stbir__filter_mitchell(float x, float s) +{ + STBIR__UNUSED_PARAM(s); + + x = (float)fabs(x); + + if (x < 1.0f) + return (16 + x*x*(21 * x - 36))/18; + else if (x < 2.0f) + return (32 + x*(-60 + x*(36 - 7*x)))/18; + + return (0.0f); +} + +static float stbir__support_zero(float s) +{ + STBIR__UNUSED_PARAM(s); + return 0; +} + +static float stbir__support_one(float s) +{ + STBIR__UNUSED_PARAM(s); + return 1; +} + +static float stbir__support_two(float s) +{ + STBIR__UNUSED_PARAM(s); + return 2; +} + +static stbir__filter_info stbir__filter_info_table[] = { + { NULL, stbir__support_zero }, + { stbir__filter_trapezoid, stbir__support_trapezoid }, + { stbir__filter_triangle, stbir__support_one }, + { stbir__filter_cubic, stbir__support_two }, + { stbir__filter_catmullrom, stbir__support_two }, + { stbir__filter_mitchell, stbir__support_two }, +}; + +stbir__inline static int stbir__use_upsampling(float ratio) +{ + return ratio > 1; +} + +stbir__inline static int stbir__use_width_upsampling(stbir__info* stbir_info) +{ + return stbir__use_upsampling(stbir_info->horizontal_scale); +} + +stbir__inline static int stbir__use_height_upsampling(stbir__info* stbir_info) +{ + return stbir__use_upsampling(stbir_info->vertical_scale); +} + +// This is the maximum number of input samples that can affect an output sample +// with the given filter +static int stbir__get_filter_pixel_width(stbir_filter filter, float scale) +{ + STBIR_ASSERT(filter != 0); + STBIR_ASSERT(filter < STBIR__ARRAY_SIZE(stbir__filter_info_table)); + + if (stbir__use_upsampling(scale)) + return (int)ceil(stbir__filter_info_table[filter].support(1/scale) * 2); + else + return (int)ceil(stbir__filter_info_table[filter].support(scale) * 2 / scale); +} + +// This is how much to expand buffers to account for filters seeking outside +// the image boundaries. +static int stbir__get_filter_pixel_margin(stbir_filter filter, float scale) +{ + return stbir__get_filter_pixel_width(filter, scale) / 2; +} + +static int stbir__get_coefficient_width(stbir_filter filter, float scale) +{ + if (stbir__use_upsampling(scale)) + return (int)ceil(stbir__filter_info_table[filter].support(1 / scale) * 2); + else + return (int)ceil(stbir__filter_info_table[filter].support(scale) * 2); +} + +static int stbir__get_contributors(float scale, stbir_filter filter, int input_size, int output_size) +{ + if (stbir__use_upsampling(scale)) + return output_size; + else + return (input_size + stbir__get_filter_pixel_margin(filter, scale) * 2); +} + +static int stbir__get_total_horizontal_coefficients(stbir__info* info) +{ + return info->horizontal_num_contributors + * stbir__get_coefficient_width (info->horizontal_filter, info->horizontal_scale); +} + +static int stbir__get_total_vertical_coefficients(stbir__info* info) +{ + return info->vertical_num_contributors + * stbir__get_coefficient_width (info->vertical_filter, info->vertical_scale); +} + +static stbir__contributors* stbir__get_contributor(stbir__contributors* contributors, int n) +{ + return &contributors[n]; +} + +// For perf reasons this code is duplicated in stbir__resample_horizontal_upsample/downsample, +// if you change it here change it there too. +static float* stbir__get_coefficient(float* coefficients, stbir_filter filter, float scale, int n, int c) +{ + int width = stbir__get_coefficient_width(filter, scale); + return &coefficients[width*n + c]; +} + +static int stbir__edge_wrap_slow(stbir_edge edge, int n, int max) +{ + switch (edge) + { + case STBIR_EDGE_ZERO: + return 0; // we'll decode the wrong pixel here, and then overwrite with 0s later + + case STBIR_EDGE_CLAMP: + if (n < 0) + return 0; + + if (n >= max) + return max - 1; + + return n; // NOTREACHED + + case STBIR_EDGE_REFLECT: + { + if (n < 0) + { + if (n < max) + return -n; + else + return max - 1; + } + + if (n >= max) + { + int max2 = max * 2; + if (n >= max2) + return 0; + else + return max2 - n - 1; + } + + return n; // NOTREACHED + } + + case STBIR_EDGE_WRAP: + if (n >= 0) + return (n % max); + else + { + int m = (-n) % max; + + if (m != 0) + m = max - m; + + return (m); + } + return n; // NOTREACHED + + default: + STBIR__UNIMPLEMENTED("Unimplemented edge type"); + return 0; + } +} + +stbir__inline static int stbir__edge_wrap(stbir_edge edge, int n, int max) +{ + // avoid per-pixel switch + if (n >= 0 && n < max) + return n; + return stbir__edge_wrap_slow(edge, n, max); +} + +// What input pixels contribute to this output pixel? +static void stbir__calculate_sample_range_upsample(int n, float out_filter_radius, float scale_ratio, float out_shift, int* in_first_pixel, int* in_last_pixel, float* in_center_of_out) +{ + float out_pixel_center = (float)n + 0.5f; + float out_pixel_influence_lowerbound = out_pixel_center - out_filter_radius; + float out_pixel_influence_upperbound = out_pixel_center + out_filter_radius; + + float in_pixel_influence_lowerbound = (out_pixel_influence_lowerbound + out_shift) / scale_ratio; + float in_pixel_influence_upperbound = (out_pixel_influence_upperbound + out_shift) / scale_ratio; + + *in_center_of_out = (out_pixel_center + out_shift) / scale_ratio; + *in_first_pixel = (int)(floor(in_pixel_influence_lowerbound + 0.5)); + *in_last_pixel = (int)(floor(in_pixel_influence_upperbound - 0.5)); +} + +// What output pixels does this input pixel contribute to? +static void stbir__calculate_sample_range_downsample(int n, float in_pixels_radius, float scale_ratio, float out_shift, int* out_first_pixel, int* out_last_pixel, float* out_center_of_in) +{ + float in_pixel_center = (float)n + 0.5f; + float in_pixel_influence_lowerbound = in_pixel_center - in_pixels_radius; + float in_pixel_influence_upperbound = in_pixel_center + in_pixels_radius; + + float out_pixel_influence_lowerbound = in_pixel_influence_lowerbound * scale_ratio - out_shift; + float out_pixel_influence_upperbound = in_pixel_influence_upperbound * scale_ratio - out_shift; + + *out_center_of_in = in_pixel_center * scale_ratio - out_shift; + *out_first_pixel = (int)(floor(out_pixel_influence_lowerbound + 0.5)); + *out_last_pixel = (int)(floor(out_pixel_influence_upperbound - 0.5)); +} + +static void stbir__calculate_coefficients_upsample(stbir__info* stbir_info, stbir_filter filter, float scale, int in_first_pixel, int in_last_pixel, float in_center_of_out, stbir__contributors* contributor, float* coefficient_group) +{ + int i; + float total_filter = 0; + float filter_scale; + + STBIR__DEBUG_ASSERT(in_last_pixel - in_first_pixel <= (int)ceil(stbir__filter_info_table[filter].support(1/scale) * 2)); // Taken directly from stbir__get_coefficient_width() which we can't call because we don't know if we're horizontal or vertical. + + contributor->n0 = in_first_pixel; + contributor->n1 = in_last_pixel; + + STBIR__DEBUG_ASSERT(contributor->n1 >= contributor->n0); + + for (i = 0; i <= in_last_pixel - in_first_pixel; i++) + { + float in_pixel_center = (float)(i + in_first_pixel) + 0.5f; + coefficient_group[i] = stbir__filter_info_table[filter].kernel(in_center_of_out - in_pixel_center, 1 / scale); + + // If the coefficient is zero, skip it. (Don't do the <0 check here, we want the influence of those outside pixels.) + if (i == 0 && !coefficient_group[i]) + { + contributor->n0 = ++in_first_pixel; + i--; + continue; + } + + total_filter += coefficient_group[i]; + } + + STBIR__DEBUG_ASSERT(stbir__filter_info_table[filter].kernel((float)(in_last_pixel + 1) + 0.5f - in_center_of_out, 1/scale) == 0); + + STBIR__DEBUG_ASSERT(total_filter > 0.9); + STBIR__DEBUG_ASSERT(total_filter < 1.1f); // Make sure it's not way off. + + // Make sure the sum of all coefficients is 1. + filter_scale = 1 / total_filter; + + for (i = 0; i <= in_last_pixel - in_first_pixel; i++) + coefficient_group[i] *= filter_scale; + + for (i = in_last_pixel - in_first_pixel; i >= 0; i--) + { + if (coefficient_group[i]) + break; + + // This line has no weight. We can skip it. + contributor->n1 = contributor->n0 + i - 1; + } +} + +static void stbir__calculate_coefficients_downsample(stbir__info* stbir_info, stbir_filter filter, float scale_ratio, int out_first_pixel, int out_last_pixel, float out_center_of_in, stbir__contributors* contributor, float* coefficient_group) +{ + int i; + + STBIR__DEBUG_ASSERT(out_last_pixel - out_first_pixel <= (int)ceil(stbir__filter_info_table[filter].support(scale_ratio) * 2)); // Taken directly from stbir__get_coefficient_width() which we can't call because we don't know if we're horizontal or vertical. + + contributor->n0 = out_first_pixel; + contributor->n1 = out_last_pixel; + + STBIR__DEBUG_ASSERT(contributor->n1 >= contributor->n0); + + for (i = 0; i <= out_last_pixel - out_first_pixel; i++) + { + float out_pixel_center = (float)(i + out_first_pixel) + 0.5f; + float x = out_pixel_center - out_center_of_in; + coefficient_group[i] = stbir__filter_info_table[filter].kernel(x, scale_ratio) * scale_ratio; + } + + STBIR__DEBUG_ASSERT(stbir__filter_info_table[filter].kernel((float)(out_last_pixel + 1) + 0.5f - out_center_of_in, scale_ratio) == 0); + + for (i = out_last_pixel - out_first_pixel; i >= 0; i--) + { + if (coefficient_group[i]) + break; + + // This line has no weight. We can skip it. + contributor->n1 = contributor->n0 + i - 1; + } +} + +static void stbir__normalize_downsample_coefficients(stbir__info* stbir_info, stbir__contributors* contributors, float* coefficients, stbir_filter filter, float scale_ratio, float shift, int input_size, int output_size) +{ + int num_contributors = stbir__get_contributors(scale_ratio, filter, input_size, output_size); + int num_coefficients = stbir__get_coefficient_width(filter, scale_ratio); + int i, j; + int skip; + + for (i = 0; i < output_size; i++) + { + float scale; + float total = 0; + + for (j = 0; j < num_contributors; j++) + { + if (i >= contributors[j].n0 && i <= contributors[j].n1) + { + float coefficient = *stbir__get_coefficient(coefficients, filter, scale_ratio, j, i - contributors[j].n0); + total += coefficient; + } + else if (i < contributors[j].n0) + break; + } + + STBIR__DEBUG_ASSERT(total > 0.9f); + STBIR__DEBUG_ASSERT(total < 1.1f); + + scale = 1 / total; + + for (j = 0; j < num_contributors; j++) + { + if (i >= contributors[j].n0 && i <= contributors[j].n1) + *stbir__get_coefficient(coefficients, filter, scale_ratio, j, i - contributors[j].n0) *= scale; + else if (i < contributors[j].n0) + break; + } + } + + // Optimize: Skip zero coefficients and contributions outside of image bounds. + // Do this after normalizing because normalization depends on the n0/n1 values. + for (j = 0; j < num_contributors; j++) + { + int range, max, width; + + skip = 0; + while (*stbir__get_coefficient(coefficients, filter, scale_ratio, j, skip) == 0) + skip++; + + contributors[j].n0 += skip; + + while (contributors[j].n0 < 0) + { + contributors[j].n0++; + skip++; + } + + range = contributors[j].n1 - contributors[j].n0 + 1; + max = stbir__min(num_coefficients, range); + + width = stbir__get_coefficient_width(filter, scale_ratio); + for (i = 0; i < max; i++) + { + if (i + skip >= width) + break; + + *stbir__get_coefficient(coefficients, filter, scale_ratio, j, i) = *stbir__get_coefficient(coefficients, filter, scale_ratio, j, i + skip); + } + + continue; + } + + // Using min to avoid writing into invalid pixels. + for (i = 0; i < num_contributors; i++) + contributors[i].n1 = stbir__min(contributors[i].n1, output_size - 1); +} + +// Each scan line uses the same kernel values so we should calculate the kernel +// values once and then we can use them for every scan line. +static void stbir__calculate_filters(stbir__info* stbir_info, stbir__contributors* contributors, float* coefficients, stbir_filter filter, float scale_ratio, float shift, int input_size, int output_size) +{ + int n; + int total_contributors = stbir__get_contributors(scale_ratio, filter, input_size, output_size); + + if (stbir__use_upsampling(scale_ratio)) + { + float out_pixels_radius = stbir__filter_info_table[filter].support(1 / scale_ratio) * scale_ratio; + + // Looping through out pixels + for (n = 0; n < total_contributors; n++) + { + float in_center_of_out; // Center of the current out pixel in the in pixel space + int in_first_pixel, in_last_pixel; + + stbir__calculate_sample_range_upsample(n, out_pixels_radius, scale_ratio, shift, &in_first_pixel, &in_last_pixel, &in_center_of_out); + + stbir__calculate_coefficients_upsample(stbir_info, filter, scale_ratio, in_first_pixel, in_last_pixel, in_center_of_out, stbir__get_contributor(contributors, n), stbir__get_coefficient(coefficients, filter, scale_ratio, n, 0)); + } + } + else + { + float in_pixels_radius = stbir__filter_info_table[filter].support(scale_ratio) / scale_ratio; + + // Looping through in pixels + for (n = 0; n < total_contributors; n++) + { + float out_center_of_in; // Center of the current out pixel in the in pixel space + int out_first_pixel, out_last_pixel; + int n_adjusted = n - stbir__get_filter_pixel_margin(filter, scale_ratio); + + stbir__calculate_sample_range_downsample(n_adjusted, in_pixels_radius, scale_ratio, shift, &out_first_pixel, &out_last_pixel, &out_center_of_in); + + stbir__calculate_coefficients_downsample(stbir_info, filter, scale_ratio, out_first_pixel, out_last_pixel, out_center_of_in, stbir__get_contributor(contributors, n), stbir__get_coefficient(coefficients, filter, scale_ratio, n, 0)); + } + + stbir__normalize_downsample_coefficients(stbir_info, contributors, coefficients, filter, scale_ratio, shift, input_size, output_size); + } +} + +static float* stbir__get_decode_buffer(stbir__info* stbir_info) +{ + // The 0 index of the decode buffer starts after the margin. This makes + // it okay to use negative indexes on the decode buffer. + return &stbir_info->decode_buffer[stbir_info->horizontal_filter_pixel_margin * stbir_info->channels]; +} + +#define STBIR__DECODE(type, colorspace) ((type) * (STBIR_MAX_COLORSPACES) + (colorspace)) + +static void stbir__decode_scanline(stbir__info* stbir_info, int n) +{ + int c; + int channels = stbir_info->channels; + int alpha_channel = stbir_info->alpha_channel; + int type = stbir_info->type; + int colorspace = stbir_info->colorspace; + int input_w = stbir_info->input_w; + int input_stride_bytes = stbir_info->input_stride_bytes; + float* decode_buffer = stbir__get_decode_buffer(stbir_info); + stbir_edge edge_horizontal = stbir_info->edge_horizontal; + stbir_edge edge_vertical = stbir_info->edge_vertical; + int in_buffer_row_offset = stbir__edge_wrap(edge_vertical, n, stbir_info->input_h) * input_stride_bytes; + const void* input_data = (char *) stbir_info->input_data + in_buffer_row_offset; + int max_x = input_w + stbir_info->horizontal_filter_pixel_margin; + int decode = STBIR__DECODE(type, colorspace); + + int x = -stbir_info->horizontal_filter_pixel_margin; + + // special handling for STBIR_EDGE_ZERO because it needs to return an item that doesn't appear in the input, + // and we want to avoid paying overhead on every pixel if not STBIR_EDGE_ZERO + if (edge_vertical == STBIR_EDGE_ZERO && (n < 0 || n >= stbir_info->input_h)) + { + for (; x < max_x; x++) + for (c = 0; c < channels; c++) + decode_buffer[x*channels + c] = 0; + return; + } + + switch (decode) + { + case STBIR__DECODE(STBIR_TYPE_UINT8, STBIR_COLORSPACE_LINEAR): + for (; x < max_x; x++) + { + int decode_pixel_index = x * channels; + int input_pixel_index = stbir__edge_wrap(edge_horizontal, x, input_w) * channels; + for (c = 0; c < channels; c++) + decode_buffer[decode_pixel_index + c] = ((float)((const unsigned char*)input_data)[input_pixel_index + c]) / 255; + } + break; + + case STBIR__DECODE(STBIR_TYPE_UINT8, STBIR_COLORSPACE_SRGB): + for (; x < max_x; x++) + { + int decode_pixel_index = x * channels; + int input_pixel_index = stbir__edge_wrap(edge_horizontal, x, input_w) * channels; + for (c = 0; c < channels; c++) + decode_buffer[decode_pixel_index + c] = stbir__srgb_uchar_to_linear_float[((const unsigned char*)input_data)[input_pixel_index + c]]; + + if (!(stbir_info->flags&STBIR_FLAG_ALPHA_USES_COLORSPACE)) + decode_buffer[decode_pixel_index + alpha_channel] = ((float)((const unsigned char*)input_data)[input_pixel_index + alpha_channel]) / 255; + } + break; + + case STBIR__DECODE(STBIR_TYPE_UINT16, STBIR_COLORSPACE_LINEAR): + for (; x < max_x; x++) + { + int decode_pixel_index = x * channels; + int input_pixel_index = stbir__edge_wrap(edge_horizontal, x, input_w) * channels; + for (c = 0; c < channels; c++) + decode_buffer[decode_pixel_index + c] = ((float)((const unsigned short*)input_data)[input_pixel_index + c]) / 65535; + } + break; + + case STBIR__DECODE(STBIR_TYPE_UINT16, STBIR_COLORSPACE_SRGB): + for (; x < max_x; x++) + { + int decode_pixel_index = x * channels; + int input_pixel_index = stbir__edge_wrap(edge_horizontal, x, input_w) * channels; + for (c = 0; c < channels; c++) + decode_buffer[decode_pixel_index + c] = stbir__srgb_to_linear(((float)((const unsigned short*)input_data)[input_pixel_index + c]) / 65535); + + if (!(stbir_info->flags&STBIR_FLAG_ALPHA_USES_COLORSPACE)) + decode_buffer[decode_pixel_index + alpha_channel] = ((float)((const unsigned short*)input_data)[input_pixel_index + alpha_channel]) / 65535; + } + break; + + case STBIR__DECODE(STBIR_TYPE_UINT32, STBIR_COLORSPACE_LINEAR): + for (; x < max_x; x++) + { + int decode_pixel_index = x * channels; + int input_pixel_index = stbir__edge_wrap(edge_horizontal, x, input_w) * channels; + for (c = 0; c < channels; c++) + decode_buffer[decode_pixel_index + c] = (float)(((double)((const unsigned int*)input_data)[input_pixel_index + c]) / 4294967295); + } + break; + + case STBIR__DECODE(STBIR_TYPE_UINT32, STBIR_COLORSPACE_SRGB): + for (; x < max_x; x++) + { + int decode_pixel_index = x * channels; + int input_pixel_index = stbir__edge_wrap(edge_horizontal, x, input_w) * channels; + for (c = 0; c < channels; c++) + decode_buffer[decode_pixel_index + c] = stbir__srgb_to_linear((float)(((double)((const unsigned int*)input_data)[input_pixel_index + c]) / 4294967295)); + + if (!(stbir_info->flags&STBIR_FLAG_ALPHA_USES_COLORSPACE)) + decode_buffer[decode_pixel_index + alpha_channel] = (float)(((double)((const unsigned int*)input_data)[input_pixel_index + alpha_channel]) / 4294967295); + } + break; + + case STBIR__DECODE(STBIR_TYPE_FLOAT, STBIR_COLORSPACE_LINEAR): + for (; x < max_x; x++) + { + int decode_pixel_index = x * channels; + int input_pixel_index = stbir__edge_wrap(edge_horizontal, x, input_w) * channels; + for (c = 0; c < channels; c++) + decode_buffer[decode_pixel_index + c] = ((const float*)input_data)[input_pixel_index + c]; + } + break; + + case STBIR__DECODE(STBIR_TYPE_FLOAT, STBIR_COLORSPACE_SRGB): + for (; x < max_x; x++) + { + int decode_pixel_index = x * channels; + int input_pixel_index = stbir__edge_wrap(edge_horizontal, x, input_w) * channels; + for (c = 0; c < channels; c++) + decode_buffer[decode_pixel_index + c] = stbir__srgb_to_linear(((const float*)input_data)[input_pixel_index + c]); + + if (!(stbir_info->flags&STBIR_FLAG_ALPHA_USES_COLORSPACE)) + decode_buffer[decode_pixel_index + alpha_channel] = ((const float*)input_data)[input_pixel_index + alpha_channel]; + } + + break; + + default: + STBIR__UNIMPLEMENTED("Unknown type/colorspace/channels combination."); + break; + } + + if (!(stbir_info->flags & STBIR_FLAG_ALPHA_PREMULTIPLIED)) + { + for (x = -stbir_info->horizontal_filter_pixel_margin; x < max_x; x++) + { + int decode_pixel_index = x * channels; + + // If the alpha value is 0 it will clobber the color values. Make sure it's not. + float alpha = decode_buffer[decode_pixel_index + alpha_channel]; +#ifndef STBIR_NO_ALPHA_EPSILON + if (stbir_info->type != STBIR_TYPE_FLOAT) { + alpha += STBIR_ALPHA_EPSILON; + decode_buffer[decode_pixel_index + alpha_channel] = alpha; + } +#endif + for (c = 0; c < channels; c++) + { + if (c == alpha_channel) + continue; + + decode_buffer[decode_pixel_index + c] *= alpha; + } + } + } + + if (edge_horizontal == STBIR_EDGE_ZERO) + { + for (x = -stbir_info->horizontal_filter_pixel_margin; x < 0; x++) + { + for (c = 0; c < channels; c++) + decode_buffer[x*channels + c] = 0; + } + for (x = input_w; x < max_x; x++) + { + for (c = 0; c < channels; c++) + decode_buffer[x*channels + c] = 0; + } + } +} + +static float* stbir__get_ring_buffer_entry(float* ring_buffer, int index, int ring_buffer_length) +{ + return &ring_buffer[index * ring_buffer_length]; +} + +static float* stbir__add_empty_ring_buffer_entry(stbir__info* stbir_info, int n) +{ + int ring_buffer_index; + float* ring_buffer; + + if (stbir_info->ring_buffer_begin_index < 0) + { + ring_buffer_index = stbir_info->ring_buffer_begin_index = 0; + stbir_info->ring_buffer_first_scanline = n; + } + else + { + ring_buffer_index = (stbir_info->ring_buffer_begin_index + (stbir_info->ring_buffer_last_scanline - stbir_info->ring_buffer_first_scanline) + 1) % stbir_info->vertical_filter_pixel_width; + STBIR__DEBUG_ASSERT(ring_buffer_index != stbir_info->ring_buffer_begin_index); + } + + ring_buffer = stbir__get_ring_buffer_entry(stbir_info->ring_buffer, ring_buffer_index, stbir_info->ring_buffer_length_bytes / sizeof(float)); + memset(ring_buffer, 0, stbir_info->ring_buffer_length_bytes); + + stbir_info->ring_buffer_last_scanline = n; + + return ring_buffer; +} + + +static void stbir__resample_horizontal_upsample(stbir__info* stbir_info, int n, float* output_buffer) +{ + int x, k; + int output_w = stbir_info->output_w; + int kernel_pixel_width = stbir_info->horizontal_filter_pixel_width; + int channels = stbir_info->channels; + float* decode_buffer = stbir__get_decode_buffer(stbir_info); + stbir__contributors* horizontal_contributors = stbir_info->horizontal_contributors; + float* horizontal_coefficients = stbir_info->horizontal_coefficients; + int coefficient_width = stbir_info->horizontal_coefficient_width; + + for (x = 0; x < output_w; x++) + { + int n0 = horizontal_contributors[x].n0; + int n1 = horizontal_contributors[x].n1; + + int out_pixel_index = x * channels; + int coefficient_group = coefficient_width * x; + int coefficient_counter = 0; + + STBIR__DEBUG_ASSERT(n1 >= n0); + STBIR__DEBUG_ASSERT(n0 >= -stbir_info->horizontal_filter_pixel_margin); + STBIR__DEBUG_ASSERT(n1 >= -stbir_info->horizontal_filter_pixel_margin); + STBIR__DEBUG_ASSERT(n0 < stbir_info->input_w + stbir_info->horizontal_filter_pixel_margin); + STBIR__DEBUG_ASSERT(n1 < stbir_info->input_w + stbir_info->horizontal_filter_pixel_margin); + + switch (channels) { + case 1: + for (k = n0; k <= n1; k++) + { + int in_pixel_index = k * 1; + float coefficient = horizontal_coefficients[coefficient_group + coefficient_counter++]; + STBIR__DEBUG_ASSERT(coefficient != 0); + output_buffer[out_pixel_index + 0] += decode_buffer[in_pixel_index + 0] * coefficient; + } + break; + case 2: + for (k = n0; k <= n1; k++) + { + int in_pixel_index = k * 2; + float coefficient = horizontal_coefficients[coefficient_group + coefficient_counter++]; + STBIR__DEBUG_ASSERT(coefficient != 0); + output_buffer[out_pixel_index + 0] += decode_buffer[in_pixel_index + 0] * coefficient; + output_buffer[out_pixel_index + 1] += decode_buffer[in_pixel_index + 1] * coefficient; + } + break; + case 3: + for (k = n0; k <= n1; k++) + { + int in_pixel_index = k * 3; + float coefficient = horizontal_coefficients[coefficient_group + coefficient_counter++]; + STBIR__DEBUG_ASSERT(coefficient != 0); + output_buffer[out_pixel_index + 0] += decode_buffer[in_pixel_index + 0] * coefficient; + output_buffer[out_pixel_index + 1] += decode_buffer[in_pixel_index + 1] * coefficient; + output_buffer[out_pixel_index + 2] += decode_buffer[in_pixel_index + 2] * coefficient; + } + break; + case 4: + for (k = n0; k <= n1; k++) + { + int in_pixel_index = k * 4; + float coefficient = horizontal_coefficients[coefficient_group + coefficient_counter++]; + STBIR__DEBUG_ASSERT(coefficient != 0); + output_buffer[out_pixel_index + 0] += decode_buffer[in_pixel_index + 0] * coefficient; + output_buffer[out_pixel_index + 1] += decode_buffer[in_pixel_index + 1] * coefficient; + output_buffer[out_pixel_index + 2] += decode_buffer[in_pixel_index + 2] * coefficient; + output_buffer[out_pixel_index + 3] += decode_buffer[in_pixel_index + 3] * coefficient; + } + break; + default: + for (k = n0; k <= n1; k++) + { + int in_pixel_index = k * channels; + float coefficient = horizontal_coefficients[coefficient_group + coefficient_counter++]; + int c; + STBIR__DEBUG_ASSERT(coefficient != 0); + for (c = 0; c < channels; c++) + output_buffer[out_pixel_index + c] += decode_buffer[in_pixel_index + c] * coefficient; + } + break; + } + } +} + +static void stbir__resample_horizontal_downsample(stbir__info* stbir_info, int n, float* output_buffer) +{ + int x, k; + int input_w = stbir_info->input_w; + int output_w = stbir_info->output_w; + int kernel_pixel_width = stbir_info->horizontal_filter_pixel_width; + int channels = stbir_info->channels; + float* decode_buffer = stbir__get_decode_buffer(stbir_info); + stbir__contributors* horizontal_contributors = stbir_info->horizontal_contributors; + float* horizontal_coefficients = stbir_info->horizontal_coefficients; + int coefficient_width = stbir_info->horizontal_coefficient_width; + int filter_pixel_margin = stbir_info->horizontal_filter_pixel_margin; + int max_x = input_w + filter_pixel_margin * 2; + + STBIR__DEBUG_ASSERT(!stbir__use_width_upsampling(stbir_info)); + + switch (channels) { + case 1: + for (x = 0; x < max_x; x++) + { + int n0 = horizontal_contributors[x].n0; + int n1 = horizontal_contributors[x].n1; + + int in_x = x - filter_pixel_margin; + int in_pixel_index = in_x * 1; + int max_n = n1; + int coefficient_group = coefficient_width * x; + + for (k = n0; k <= max_n; k++) + { + int out_pixel_index = k * 1; + float coefficient = horizontal_coefficients[coefficient_group + k - n0]; + STBIR__DEBUG_ASSERT(coefficient != 0); + output_buffer[out_pixel_index + 0] += decode_buffer[in_pixel_index + 0] * coefficient; + } + } + break; + + case 2: + for (x = 0; x < max_x; x++) + { + int n0 = horizontal_contributors[x].n0; + int n1 = horizontal_contributors[x].n1; + + int in_x = x - filter_pixel_margin; + int in_pixel_index = in_x * 2; + int max_n = n1; + int coefficient_group = coefficient_width * x; + + for (k = n0; k <= max_n; k++) + { + int out_pixel_index = k * 2; + float coefficient = horizontal_coefficients[coefficient_group + k - n0]; + STBIR__DEBUG_ASSERT(coefficient != 0); + output_buffer[out_pixel_index + 0] += decode_buffer[in_pixel_index + 0] * coefficient; + output_buffer[out_pixel_index + 1] += decode_buffer[in_pixel_index + 1] * coefficient; + } + } + break; + + case 3: + for (x = 0; x < max_x; x++) + { + int n0 = horizontal_contributors[x].n0; + int n1 = horizontal_contributors[x].n1; + + int in_x = x - filter_pixel_margin; + int in_pixel_index = in_x * 3; + int max_n = n1; + int coefficient_group = coefficient_width * x; + + for (k = n0; k <= max_n; k++) + { + int out_pixel_index = k * 3; + float coefficient = horizontal_coefficients[coefficient_group + k - n0]; + STBIR__DEBUG_ASSERT(coefficient != 0); + output_buffer[out_pixel_index + 0] += decode_buffer[in_pixel_index + 0] * coefficient; + output_buffer[out_pixel_index + 1] += decode_buffer[in_pixel_index + 1] * coefficient; + output_buffer[out_pixel_index + 2] += decode_buffer[in_pixel_index + 2] * coefficient; + } + } + break; + + case 4: + for (x = 0; x < max_x; x++) + { + int n0 = horizontal_contributors[x].n0; + int n1 = horizontal_contributors[x].n1; + + int in_x = x - filter_pixel_margin; + int in_pixel_index = in_x * 4; + int max_n = n1; + int coefficient_group = coefficient_width * x; + + for (k = n0; k <= max_n; k++) + { + int out_pixel_index = k * 4; + float coefficient = horizontal_coefficients[coefficient_group + k - n0]; + STBIR__DEBUG_ASSERT(coefficient != 0); + output_buffer[out_pixel_index + 0] += decode_buffer[in_pixel_index + 0] * coefficient; + output_buffer[out_pixel_index + 1] += decode_buffer[in_pixel_index + 1] * coefficient; + output_buffer[out_pixel_index + 2] += decode_buffer[in_pixel_index + 2] * coefficient; + output_buffer[out_pixel_index + 3] += decode_buffer[in_pixel_index + 3] * coefficient; + } + } + break; + + default: + for (x = 0; x < max_x; x++) + { + int n0 = horizontal_contributors[x].n0; + int n1 = horizontal_contributors[x].n1; + + int in_x = x - filter_pixel_margin; + int in_pixel_index = in_x * channels; + int max_n = n1; + int coefficient_group = coefficient_width * x; + + for (k = n0; k <= max_n; k++) + { + int c; + int out_pixel_index = k * channels; + float coefficient = horizontal_coefficients[coefficient_group + k - n0]; + STBIR__DEBUG_ASSERT(coefficient != 0); + for (c = 0; c < channels; c++) + output_buffer[out_pixel_index + c] += decode_buffer[in_pixel_index + c] * coefficient; + } + } + break; + } +} + +static void stbir__decode_and_resample_upsample(stbir__info* stbir_info, int n) +{ + // Decode the nth scanline from the source image into the decode buffer. + stbir__decode_scanline(stbir_info, n); + + // Now resample it into the ring buffer. + if (stbir__use_width_upsampling(stbir_info)) + stbir__resample_horizontal_upsample(stbir_info, n, stbir__add_empty_ring_buffer_entry(stbir_info, n)); + else + stbir__resample_horizontal_downsample(stbir_info, n, stbir__add_empty_ring_buffer_entry(stbir_info, n)); + + // Now it's sitting in the ring buffer ready to be used as source for the vertical sampling. +} + +static void stbir__decode_and_resample_downsample(stbir__info* stbir_info, int n) +{ + // Decode the nth scanline from the source image into the decode buffer. + stbir__decode_scanline(stbir_info, n); + + memset(stbir_info->horizontal_buffer, 0, stbir_info->output_w * stbir_info->channels * sizeof(float)); + + // Now resample it into the horizontal buffer. + if (stbir__use_width_upsampling(stbir_info)) + stbir__resample_horizontal_upsample(stbir_info, n, stbir_info->horizontal_buffer); + else + stbir__resample_horizontal_downsample(stbir_info, n, stbir_info->horizontal_buffer); + + // Now it's sitting in the horizontal buffer ready to be distributed into the ring buffers. +} + +// Get the specified scan line from the ring buffer. +static float* stbir__get_ring_buffer_scanline(int get_scanline, float* ring_buffer, int begin_index, int first_scanline, int ring_buffer_size, int ring_buffer_length) +{ + int ring_buffer_index = (begin_index + (get_scanline - first_scanline)) % ring_buffer_size; + return stbir__get_ring_buffer_entry(ring_buffer, ring_buffer_index, ring_buffer_length); +} + + +static void stbir__encode_scanline(stbir__info* stbir_info, int num_pixels, void *output_buffer, float *encode_buffer, int channels, int alpha_channel, int decode) +{ + int x; + int n; + int num_nonalpha; + stbir_uint16 nonalpha[STBIR_MAX_CHANNELS]; + + if (!(stbir_info->flags&STBIR_FLAG_ALPHA_PREMULTIPLIED)) + { + for (x=0; x < num_pixels; ++x) + { + int pixel_index = x*channels; + + float alpha = encode_buffer[pixel_index + alpha_channel]; + float reciprocal_alpha = alpha ? 1.0f / alpha : 0; + + // unrolling this produced a 1% slowdown upscaling a large RGBA linear-space image on my machine - stb + for (n = 0; n < channels; n++) + if (n != alpha_channel) + encode_buffer[pixel_index + n] *= reciprocal_alpha; + + // We added in a small epsilon to prevent the color channel from being deleted with zero alpha. + // Because we only add it for integer types, it will automatically be discarded on integer + // conversion, so we don't need to subtract it back out (which would be problematic for + // numeric precision reasons). + } + } + + // build a table of all channels that need colorspace correction, so + // we don't perform colorspace correction on channels that don't need it. + for (x=0, num_nonalpha=0; x < channels; ++x) + if (x != alpha_channel || (stbir_info->flags & STBIR_FLAG_ALPHA_USES_COLORSPACE)) + nonalpha[num_nonalpha++] = x; + + #define STBIR__ROUND_INT(f) ((int) ((f)+0.5)) + #define STBIR__ROUND_UINT(f) ((stbir_uint32) ((f)+0.5)) + + #ifdef STBIR__SATURATE_INT + #define STBIR__ENCODE_LINEAR8(f) stbir__saturate8 (STBIR__ROUND_INT((f) * 255 )) + #define STBIR__ENCODE_LINEAR16(f) stbir__saturate16(STBIR__ROUND_INT((f) * 65535)) + #else + #define STBIR__ENCODE_LINEAR8(f) (unsigned char ) STBIR__ROUND_INT(stbir__saturate(f) * 255 ) + #define STBIR__ENCODE_LINEAR16(f) (unsigned short) STBIR__ROUND_INT(stbir__saturate(f) * 65535) + #endif + + switch (decode) + { + case STBIR__DECODE(STBIR_TYPE_UINT8, STBIR_COLORSPACE_LINEAR): + for (x=0; x < num_pixels; ++x) + { + int pixel_index = x*channels; + + for (n = 0; n < channels; n++) + { + int index = pixel_index + n; + ((unsigned char*)output_buffer)[index] = STBIR__ENCODE_LINEAR8(encode_buffer[index]); + } + } + break; + + case STBIR__DECODE(STBIR_TYPE_UINT8, STBIR_COLORSPACE_SRGB): + for (x=0; x < num_pixels; ++x) + { + int pixel_index = x*channels; + + for (n = 0; n < num_nonalpha; n++) + { + int index = pixel_index + nonalpha[n]; + ((unsigned char*)output_buffer)[index] = stbir__linear_to_srgb_uchar(encode_buffer[index]); + } + + if (!(stbir_info->flags & STBIR_FLAG_ALPHA_USES_COLORSPACE)) + ((unsigned char *)output_buffer)[pixel_index + alpha_channel] = STBIR__ENCODE_LINEAR8(encode_buffer[pixel_index+alpha_channel]); + } + break; + + case STBIR__DECODE(STBIR_TYPE_UINT16, STBIR_COLORSPACE_LINEAR): + for (x=0; x < num_pixels; ++x) + { + int pixel_index = x*channels; + + for (n = 0; n < channels; n++) + { + int index = pixel_index + n; + ((unsigned short*)output_buffer)[index] = STBIR__ENCODE_LINEAR16(encode_buffer[index]); + } + } + break; + + case STBIR__DECODE(STBIR_TYPE_UINT16, STBIR_COLORSPACE_SRGB): + for (x=0; x < num_pixels; ++x) + { + int pixel_index = x*channels; + + for (n = 0; n < num_nonalpha; n++) + { + int index = pixel_index + nonalpha[n]; + ((unsigned short*)output_buffer)[index] = (unsigned short)STBIR__ROUND_INT(stbir__linear_to_srgb(stbir__saturate(encode_buffer[index])) * 65535); + } + + if (!(stbir_info->flags&STBIR_FLAG_ALPHA_USES_COLORSPACE)) + ((unsigned short*)output_buffer)[pixel_index + alpha_channel] = STBIR__ENCODE_LINEAR16(encode_buffer[pixel_index + alpha_channel]); + } + + break; + + case STBIR__DECODE(STBIR_TYPE_UINT32, STBIR_COLORSPACE_LINEAR): + for (x=0; x < num_pixels; ++x) + { + int pixel_index = x*channels; + + for (n = 0; n < channels; n++) + { + int index = pixel_index + n; + ((unsigned int*)output_buffer)[index] = (unsigned int)STBIR__ROUND_UINT(((double)stbir__saturate(encode_buffer[index])) * 4294967295); + } + } + break; + + case STBIR__DECODE(STBIR_TYPE_UINT32, STBIR_COLORSPACE_SRGB): + for (x=0; x < num_pixels; ++x) + { + int pixel_index = x*channels; + + for (n = 0; n < num_nonalpha; n++) + { + int index = pixel_index + nonalpha[n]; + ((unsigned int*)output_buffer)[index] = (unsigned int)STBIR__ROUND_UINT(((double)stbir__linear_to_srgb(stbir__saturate(encode_buffer[index]))) * 4294967295); + } + + if (!(stbir_info->flags&STBIR_FLAG_ALPHA_USES_COLORSPACE)) + ((unsigned int*)output_buffer)[pixel_index + alpha_channel] = (unsigned int)STBIR__ROUND_INT(((double)stbir__saturate(encode_buffer[pixel_index + alpha_channel])) * 4294967295); + } + break; + + case STBIR__DECODE(STBIR_TYPE_FLOAT, STBIR_COLORSPACE_LINEAR): + for (x=0; x < num_pixels; ++x) + { + int pixel_index = x*channels; + + for (n = 0; n < channels; n++) + { + int index = pixel_index + n; + ((float*)output_buffer)[index] = encode_buffer[index]; + } + } + break; + + case STBIR__DECODE(STBIR_TYPE_FLOAT, STBIR_COLORSPACE_SRGB): + for (x=0; x < num_pixels; ++x) + { + int pixel_index = x*channels; + + for (n = 0; n < num_nonalpha; n++) + { + int index = pixel_index + nonalpha[n]; + ((float*)output_buffer)[index] = stbir__linear_to_srgb(encode_buffer[index]); + } + + if (!(stbir_info->flags&STBIR_FLAG_ALPHA_USES_COLORSPACE)) + ((float*)output_buffer)[pixel_index + alpha_channel] = encode_buffer[pixel_index + alpha_channel]; + } + break; + + default: + STBIR__UNIMPLEMENTED("Unknown type/colorspace/channels combination."); + break; + } +} + +static void stbir__resample_vertical_upsample(stbir__info* stbir_info, int n, int in_first_scanline, int in_last_scanline, float in_center_of_out) +{ + int x, k; + int output_w = stbir_info->output_w; + stbir__contributors* vertical_contributors = stbir_info->vertical_contributors; + float* vertical_coefficients = stbir_info->vertical_coefficients; + int channels = stbir_info->channels; + int alpha_channel = stbir_info->alpha_channel; + int type = stbir_info->type; + int colorspace = stbir_info->colorspace; + int kernel_pixel_width = stbir_info->vertical_filter_pixel_width; + void* output_data = stbir_info->output_data; + float* encode_buffer = stbir_info->encode_buffer; + int decode = STBIR__DECODE(type, colorspace); + int coefficient_width = stbir_info->vertical_coefficient_width; + int coefficient_counter; + int contributor = n; + + float* ring_buffer = stbir_info->ring_buffer; + int ring_buffer_begin_index = stbir_info->ring_buffer_begin_index; + int ring_buffer_first_scanline = stbir_info->ring_buffer_first_scanline; + int ring_buffer_last_scanline = stbir_info->ring_buffer_last_scanline; + int ring_buffer_length = stbir_info->ring_buffer_length_bytes/sizeof(float); + + int n0,n1, output_row_start; + int coefficient_group = coefficient_width * contributor; + + n0 = vertical_contributors[contributor].n0; + n1 = vertical_contributors[contributor].n1; + + output_row_start = n * stbir_info->output_stride_bytes; + + STBIR__DEBUG_ASSERT(stbir__use_height_upsampling(stbir_info)); + + memset(encode_buffer, 0, output_w * sizeof(float) * channels); + + // I tried reblocking this for better cache usage of encode_buffer + // (using x_outer, k, x_inner), but it lost speed. -- stb + + coefficient_counter = 0; + switch (channels) { + case 1: + for (k = n0; k <= n1; k++) + { + int coefficient_index = coefficient_counter++; + float* ring_buffer_entry = stbir__get_ring_buffer_scanline(k, ring_buffer, ring_buffer_begin_index, ring_buffer_first_scanline, kernel_pixel_width, ring_buffer_length); + float coefficient = vertical_coefficients[coefficient_group + coefficient_index]; + for (x = 0; x < output_w; ++x) + { + int in_pixel_index = x * 1; + encode_buffer[in_pixel_index + 0] += ring_buffer_entry[in_pixel_index + 0] * coefficient; + } + } + break; + case 2: + for (k = n0; k <= n1; k++) + { + int coefficient_index = coefficient_counter++; + float* ring_buffer_entry = stbir__get_ring_buffer_scanline(k, ring_buffer, ring_buffer_begin_index, ring_buffer_first_scanline, kernel_pixel_width, ring_buffer_length); + float coefficient = vertical_coefficients[coefficient_group + coefficient_index]; + for (x = 0; x < output_w; ++x) + { + int in_pixel_index = x * 2; + encode_buffer[in_pixel_index + 0] += ring_buffer_entry[in_pixel_index + 0] * coefficient; + encode_buffer[in_pixel_index + 1] += ring_buffer_entry[in_pixel_index + 1] * coefficient; + } + } + break; + case 3: + for (k = n0; k <= n1; k++) + { + int coefficient_index = coefficient_counter++; + float* ring_buffer_entry = stbir__get_ring_buffer_scanline(k, ring_buffer, ring_buffer_begin_index, ring_buffer_first_scanline, kernel_pixel_width, ring_buffer_length); + float coefficient = vertical_coefficients[coefficient_group + coefficient_index]; + for (x = 0; x < output_w; ++x) + { + int in_pixel_index = x * 3; + encode_buffer[in_pixel_index + 0] += ring_buffer_entry[in_pixel_index + 0] * coefficient; + encode_buffer[in_pixel_index + 1] += ring_buffer_entry[in_pixel_index + 1] * coefficient; + encode_buffer[in_pixel_index + 2] += ring_buffer_entry[in_pixel_index + 2] * coefficient; + } + } + break; + case 4: + for (k = n0; k <= n1; k++) + { + int coefficient_index = coefficient_counter++; + float* ring_buffer_entry = stbir__get_ring_buffer_scanline(k, ring_buffer, ring_buffer_begin_index, ring_buffer_first_scanline, kernel_pixel_width, ring_buffer_length); + float coefficient = vertical_coefficients[coefficient_group + coefficient_index]; + for (x = 0; x < output_w; ++x) + { + int in_pixel_index = x * 4; + encode_buffer[in_pixel_index + 0] += ring_buffer_entry[in_pixel_index + 0] * coefficient; + encode_buffer[in_pixel_index + 1] += ring_buffer_entry[in_pixel_index + 1] * coefficient; + encode_buffer[in_pixel_index + 2] += ring_buffer_entry[in_pixel_index + 2] * coefficient; + encode_buffer[in_pixel_index + 3] += ring_buffer_entry[in_pixel_index + 3] * coefficient; + } + } + break; + default: + for (k = n0; k <= n1; k++) + { + int coefficient_index = coefficient_counter++; + float* ring_buffer_entry = stbir__get_ring_buffer_scanline(k, ring_buffer, ring_buffer_begin_index, ring_buffer_first_scanline, kernel_pixel_width, ring_buffer_length); + float coefficient = vertical_coefficients[coefficient_group + coefficient_index]; + for (x = 0; x < output_w; ++x) + { + int in_pixel_index = x * channels; + int c; + for (c = 0; c < channels; c++) + encode_buffer[in_pixel_index + c] += ring_buffer_entry[in_pixel_index + c] * coefficient; + } + } + break; + } + stbir__encode_scanline(stbir_info, output_w, (char *) output_data + output_row_start, encode_buffer, channels, alpha_channel, decode); +} + +static void stbir__resample_vertical_downsample(stbir__info* stbir_info, int n, int in_first_scanline, int in_last_scanline, float in_center_of_out) +{ + int x, k; + int output_w = stbir_info->output_w; + int output_h = stbir_info->output_h; + stbir__contributors* vertical_contributors = stbir_info->vertical_contributors; + float* vertical_coefficients = stbir_info->vertical_coefficients; + int channels = stbir_info->channels; + int kernel_pixel_width = stbir_info->vertical_filter_pixel_width; + void* output_data = stbir_info->output_data; + float* horizontal_buffer = stbir_info->horizontal_buffer; + int coefficient_width = stbir_info->vertical_coefficient_width; + int contributor = n + stbir_info->vertical_filter_pixel_margin; + + float* ring_buffer = stbir_info->ring_buffer; + int ring_buffer_begin_index = stbir_info->ring_buffer_begin_index; + int ring_buffer_first_scanline = stbir_info->ring_buffer_first_scanline; + int ring_buffer_last_scanline = stbir_info->ring_buffer_last_scanline; + int ring_buffer_length = stbir_info->ring_buffer_length_bytes/sizeof(float); + int n0,n1; + + n0 = vertical_contributors[contributor].n0; + n1 = vertical_contributors[contributor].n1; + + STBIR__DEBUG_ASSERT(!stbir__use_height_upsampling(stbir_info)); + + for (k = n0; k <= n1; k++) + { + int coefficient_index = k - n0; + int coefficient_group = coefficient_width * contributor; + float coefficient = vertical_coefficients[coefficient_group + coefficient_index]; + + float* ring_buffer_entry = stbir__get_ring_buffer_scanline(k, ring_buffer, ring_buffer_begin_index, ring_buffer_first_scanline, kernel_pixel_width, ring_buffer_length); + + switch (channels) { + case 1: + for (x = 0; x < output_w; x++) + { + int in_pixel_index = x * 1; + ring_buffer_entry[in_pixel_index + 0] += horizontal_buffer[in_pixel_index + 0] * coefficient; + } + break; + case 2: + for (x = 0; x < output_w; x++) + { + int in_pixel_index = x * 2; + ring_buffer_entry[in_pixel_index + 0] += horizontal_buffer[in_pixel_index + 0] * coefficient; + ring_buffer_entry[in_pixel_index + 1] += horizontal_buffer[in_pixel_index + 1] * coefficient; + } + break; + case 3: + for (x = 0; x < output_w; x++) + { + int in_pixel_index = x * 3; + ring_buffer_entry[in_pixel_index + 0] += horizontal_buffer[in_pixel_index + 0] * coefficient; + ring_buffer_entry[in_pixel_index + 1] += horizontal_buffer[in_pixel_index + 1] * coefficient; + ring_buffer_entry[in_pixel_index + 2] += horizontal_buffer[in_pixel_index + 2] * coefficient; + } + break; + case 4: + for (x = 0; x < output_w; x++) + { + int in_pixel_index = x * 4; + ring_buffer_entry[in_pixel_index + 0] += horizontal_buffer[in_pixel_index + 0] * coefficient; + ring_buffer_entry[in_pixel_index + 1] += horizontal_buffer[in_pixel_index + 1] * coefficient; + ring_buffer_entry[in_pixel_index + 2] += horizontal_buffer[in_pixel_index + 2] * coefficient; + ring_buffer_entry[in_pixel_index + 3] += horizontal_buffer[in_pixel_index + 3] * coefficient; + } + break; + default: + for (x = 0; x < output_w; x++) + { + int in_pixel_index = x * channels; + + int c; + for (c = 0; c < channels; c++) + ring_buffer_entry[in_pixel_index + c] += horizontal_buffer[in_pixel_index + c] * coefficient; + } + break; + } + } +} + +static void stbir__buffer_loop_upsample(stbir__info* stbir_info) +{ + int y; + float scale_ratio = stbir_info->vertical_scale; + float out_scanlines_radius = stbir__filter_info_table[stbir_info->vertical_filter].support(1/scale_ratio) * scale_ratio; + + STBIR__DEBUG_ASSERT(stbir__use_height_upsampling(stbir_info)); + + for (y = 0; y < stbir_info->output_h; y++) + { + float in_center_of_out = 0; // Center of the current out scanline in the in scanline space + int in_first_scanline = 0, in_last_scanline = 0; + + stbir__calculate_sample_range_upsample(y, out_scanlines_radius, scale_ratio, stbir_info->vertical_shift, &in_first_scanline, &in_last_scanline, &in_center_of_out); + + STBIR__DEBUG_ASSERT(in_last_scanline - in_first_scanline <= stbir_info->vertical_filter_pixel_width); + + if (stbir_info->ring_buffer_begin_index >= 0) + { + // Get rid of whatever we don't need anymore. + while (in_first_scanline > stbir_info->ring_buffer_first_scanline) + { + if (stbir_info->ring_buffer_first_scanline == stbir_info->ring_buffer_last_scanline) + { + // We just popped the last scanline off the ring buffer. + // Reset it to the empty state. + stbir_info->ring_buffer_begin_index = -1; + stbir_info->ring_buffer_first_scanline = 0; + stbir_info->ring_buffer_last_scanline = 0; + break; + } + else + { + stbir_info->ring_buffer_first_scanline++; + stbir_info->ring_buffer_begin_index = (stbir_info->ring_buffer_begin_index + 1) % stbir_info->vertical_filter_pixel_width; + } + } + } + + // Load in new ones. + if (stbir_info->ring_buffer_begin_index < 0) + stbir__decode_and_resample_upsample(stbir_info, in_first_scanline); + + while (in_last_scanline > stbir_info->ring_buffer_last_scanline) + stbir__decode_and_resample_upsample(stbir_info, stbir_info->ring_buffer_last_scanline + 1); + + // Now all buffers should be ready to write a row of vertical sampling. + stbir__resample_vertical_upsample(stbir_info, y, in_first_scanline, in_last_scanline, in_center_of_out); + + STBIR_PROGRESS_REPORT((float)y / stbir_info->output_h); + } +} + +static void stbir__empty_ring_buffer(stbir__info* stbir_info, int first_necessary_scanline) +{ + int output_stride_bytes = stbir_info->output_stride_bytes; + int channels = stbir_info->channels; + int alpha_channel = stbir_info->alpha_channel; + int type = stbir_info->type; + int colorspace = stbir_info->colorspace; + int output_w = stbir_info->output_w; + void* output_data = stbir_info->output_data; + int decode = STBIR__DECODE(type, colorspace); + + float* ring_buffer = stbir_info->ring_buffer; + int ring_buffer_length = stbir_info->ring_buffer_length_bytes/sizeof(float); + + if (stbir_info->ring_buffer_begin_index >= 0) + { + // Get rid of whatever we don't need anymore. + while (first_necessary_scanline > stbir_info->ring_buffer_first_scanline) + { + if (stbir_info->ring_buffer_first_scanline >= 0 && stbir_info->ring_buffer_first_scanline < stbir_info->output_h) + { + int output_row_start = stbir_info->ring_buffer_first_scanline * output_stride_bytes; + float* ring_buffer_entry = stbir__get_ring_buffer_entry(ring_buffer, stbir_info->ring_buffer_begin_index, ring_buffer_length); + stbir__encode_scanline(stbir_info, output_w, (char *) output_data + output_row_start, ring_buffer_entry, channels, alpha_channel, decode); + STBIR_PROGRESS_REPORT((float)stbir_info->ring_buffer_first_scanline / stbir_info->output_h); + } + + if (stbir_info->ring_buffer_first_scanline == stbir_info->ring_buffer_last_scanline) + { + // We just popped the last scanline off the ring buffer. + // Reset it to the empty state. + stbir_info->ring_buffer_begin_index = -1; + stbir_info->ring_buffer_first_scanline = 0; + stbir_info->ring_buffer_last_scanline = 0; + break; + } + else + { + stbir_info->ring_buffer_first_scanline++; + stbir_info->ring_buffer_begin_index = (stbir_info->ring_buffer_begin_index + 1) % stbir_info->vertical_filter_pixel_width; + } + } + } +} + +static void stbir__buffer_loop_downsample(stbir__info* stbir_info) +{ + int y; + float scale_ratio = stbir_info->vertical_scale; + int output_h = stbir_info->output_h; + float in_pixels_radius = stbir__filter_info_table[stbir_info->vertical_filter].support(scale_ratio) / scale_ratio; + int pixel_margin = stbir_info->vertical_filter_pixel_margin; + int max_y = stbir_info->input_h + pixel_margin; + + STBIR__DEBUG_ASSERT(!stbir__use_height_upsampling(stbir_info)); + + for (y = -pixel_margin; y < max_y; y++) + { + float out_center_of_in; // Center of the current out scanline in the in scanline space + int out_first_scanline, out_last_scanline; + + stbir__calculate_sample_range_downsample(y, in_pixels_radius, scale_ratio, stbir_info->vertical_shift, &out_first_scanline, &out_last_scanline, &out_center_of_in); + + STBIR__DEBUG_ASSERT(out_last_scanline - out_first_scanline <= stbir_info->vertical_filter_pixel_width); + + if (out_last_scanline < 0 || out_first_scanline >= output_h) + continue; + + stbir__empty_ring_buffer(stbir_info, out_first_scanline); + + stbir__decode_and_resample_downsample(stbir_info, y); + + // Load in new ones. + if (stbir_info->ring_buffer_begin_index < 0) + stbir__add_empty_ring_buffer_entry(stbir_info, out_first_scanline); + + while (out_last_scanline > stbir_info->ring_buffer_last_scanline) + stbir__add_empty_ring_buffer_entry(stbir_info, stbir_info->ring_buffer_last_scanline + 1); + + // Now the horizontal buffer is ready to write to all ring buffer rows. + stbir__resample_vertical_downsample(stbir_info, y, out_first_scanline, out_last_scanline, out_center_of_in); + } + + stbir__empty_ring_buffer(stbir_info, stbir_info->output_h); +} + +static void stbir__setup(stbir__info *info, int input_w, int input_h, int output_w, int output_h, int channels) +{ + info->input_w = input_w; + info->input_h = input_h; + info->output_w = output_w; + info->output_h = output_h; + info->channels = channels; +} + +static void stbir__calculate_transform(stbir__info *info, float s0, float t0, float s1, float t1, float *transform) +{ + info->s0 = s0; + info->t0 = t0; + info->s1 = s1; + info->t1 = t1; + + if (transform) + { + info->horizontal_scale = transform[0]; + info->vertical_scale = transform[1]; + info->horizontal_shift = transform[2]; + info->vertical_shift = transform[3]; + } + else + { + info->horizontal_scale = ((float)info->output_w / info->input_w) / (s1 - s0); + info->vertical_scale = ((float)info->output_h / info->input_h) / (t1 - t0); + + info->horizontal_shift = s0 * info->input_w / (s1 - s0); + info->vertical_shift = t0 * info->input_h / (t1 - t0); + } +} + +static void stbir__choose_filter(stbir__info *info, stbir_filter h_filter, stbir_filter v_filter) +{ + if (h_filter == 0) + h_filter = stbir__use_upsampling(info->horizontal_scale) ? STBIR_DEFAULT_FILTER_UPSAMPLE : STBIR_DEFAULT_FILTER_DOWNSAMPLE; + if (v_filter == 0) + v_filter = stbir__use_upsampling(info->vertical_scale) ? STBIR_DEFAULT_FILTER_UPSAMPLE : STBIR_DEFAULT_FILTER_DOWNSAMPLE; + info->horizontal_filter = h_filter; + info->vertical_filter = v_filter; +} + +static stbir_uint32 stbir__calculate_memory(stbir__info *info) +{ + int pixel_margin = stbir__get_filter_pixel_margin(info->horizontal_filter, info->horizontal_scale); + int filter_height = stbir__get_filter_pixel_width(info->vertical_filter, info->vertical_scale); + + info->horizontal_num_contributors = stbir__get_contributors(info->horizontal_scale, info->horizontal_filter, info->input_w, info->output_w); + info->vertical_num_contributors = stbir__get_contributors(info->vertical_scale , info->vertical_filter , info->input_h, info->output_h); + + info->horizontal_contributors_size = info->horizontal_num_contributors * sizeof(stbir__contributors); + info->horizontal_coefficients_size = stbir__get_total_horizontal_coefficients(info) * sizeof(float); + info->vertical_contributors_size = info->vertical_num_contributors * sizeof(stbir__contributors); + info->vertical_coefficients_size = stbir__get_total_vertical_coefficients(info) * sizeof(float); + info->decode_buffer_size = (info->input_w + pixel_margin * 2) * info->channels * sizeof(float); + info->horizontal_buffer_size = info->output_w * info->channels * sizeof(float); + info->ring_buffer_size = info->output_w * info->channels * filter_height * sizeof(float); + info->encode_buffer_size = info->output_w * info->channels * sizeof(float); + + STBIR_ASSERT(info->horizontal_filter != 0); + STBIR_ASSERT(info->horizontal_filter < STBIR__ARRAY_SIZE(stbir__filter_info_table)); // this now happens too late + STBIR_ASSERT(info->vertical_filter != 0); + STBIR_ASSERT(info->vertical_filter < STBIR__ARRAY_SIZE(stbir__filter_info_table)); // this now happens too late + + if (stbir__use_height_upsampling(info)) + // The horizontal buffer is for when we're downsampling the height and we + // can't output the result of sampling the decode buffer directly into the + // ring buffers. + info->horizontal_buffer_size = 0; + else + // The encode buffer is to retain precision in the height upsampling method + // and isn't used when height downsampling. + info->encode_buffer_size = 0; + + return info->horizontal_contributors_size + info->horizontal_coefficients_size + + info->vertical_contributors_size + info->vertical_coefficients_size + + info->decode_buffer_size + info->horizontal_buffer_size + + info->ring_buffer_size + info->encode_buffer_size; +} + +static int stbir__resize_allocated(stbir__info *info, + const void* input_data, int input_stride_in_bytes, + void* output_data, int output_stride_in_bytes, + int alpha_channel, stbir_uint32 flags, stbir_datatype type, + stbir_edge edge_horizontal, stbir_edge edge_vertical, stbir_colorspace colorspace, + void* tempmem, size_t tempmem_size_in_bytes) +{ + size_t memory_required = stbir__calculate_memory(info); + + int width_stride_input = input_stride_in_bytes ? input_stride_in_bytes : info->channels * info->input_w * stbir__type_size[type]; + int width_stride_output = output_stride_in_bytes ? output_stride_in_bytes : info->channels * info->output_w * stbir__type_size[type]; + +#ifdef STBIR_DEBUG_OVERWRITE_TEST +#define OVERWRITE_ARRAY_SIZE 8 + unsigned char overwrite_output_before_pre[OVERWRITE_ARRAY_SIZE]; + unsigned char overwrite_tempmem_before_pre[OVERWRITE_ARRAY_SIZE]; + unsigned char overwrite_output_after_pre[OVERWRITE_ARRAY_SIZE]; + unsigned char overwrite_tempmem_after_pre[OVERWRITE_ARRAY_SIZE]; + + size_t begin_forbidden = width_stride_output * (info->output_h - 1) + info->output_w * info->channels * stbir__type_size[type]; + memcpy(overwrite_output_before_pre, &((unsigned char*)output_data)[-OVERWRITE_ARRAY_SIZE], OVERWRITE_ARRAY_SIZE); + memcpy(overwrite_output_after_pre, &((unsigned char*)output_data)[begin_forbidden], OVERWRITE_ARRAY_SIZE); + memcpy(overwrite_tempmem_before_pre, &((unsigned char*)tempmem)[-OVERWRITE_ARRAY_SIZE], OVERWRITE_ARRAY_SIZE); + memcpy(overwrite_tempmem_after_pre, &((unsigned char*)tempmem)[tempmem_size_in_bytes], OVERWRITE_ARRAY_SIZE); +#endif + + STBIR_ASSERT(info->channels >= 0); + STBIR_ASSERT(info->channels <= STBIR_MAX_CHANNELS); + + if (info->channels < 0 || info->channels > STBIR_MAX_CHANNELS) + return 0; + + STBIR_ASSERT(info->horizontal_filter < STBIR__ARRAY_SIZE(stbir__filter_info_table)); + STBIR_ASSERT(info->vertical_filter < STBIR__ARRAY_SIZE(stbir__filter_info_table)); + + if (info->horizontal_filter >= STBIR__ARRAY_SIZE(stbir__filter_info_table)) + return 0; + if (info->vertical_filter >= STBIR__ARRAY_SIZE(stbir__filter_info_table)) + return 0; + + if (alpha_channel < 0) + flags |= STBIR_FLAG_ALPHA_USES_COLORSPACE | STBIR_FLAG_ALPHA_PREMULTIPLIED; + + if (!(flags&STBIR_FLAG_ALPHA_USES_COLORSPACE) || !(flags&STBIR_FLAG_ALPHA_PREMULTIPLIED)) + STBIR_ASSERT(alpha_channel >= 0 && alpha_channel < info->channels); + + if (alpha_channel >= info->channels) + return 0; + + STBIR_ASSERT(tempmem); + + if (!tempmem) + return 0; + + STBIR_ASSERT(tempmem_size_in_bytes >= memory_required); + + if (tempmem_size_in_bytes < memory_required) + return 0; + + memset(tempmem, 0, tempmem_size_in_bytes); + + info->input_data = input_data; + info->input_stride_bytes = width_stride_input; + + info->output_data = output_data; + info->output_stride_bytes = width_stride_output; + + info->alpha_channel = alpha_channel; + info->flags = flags; + info->type = type; + info->edge_horizontal = edge_horizontal; + info->edge_vertical = edge_vertical; + info->colorspace = colorspace; + + info->horizontal_coefficient_width = stbir__get_coefficient_width (info->horizontal_filter, info->horizontal_scale); + info->vertical_coefficient_width = stbir__get_coefficient_width (info->vertical_filter , info->vertical_scale ); + info->horizontal_filter_pixel_width = stbir__get_filter_pixel_width (info->horizontal_filter, info->horizontal_scale); + info->vertical_filter_pixel_width = stbir__get_filter_pixel_width (info->vertical_filter , info->vertical_scale ); + info->horizontal_filter_pixel_margin = stbir__get_filter_pixel_margin(info->horizontal_filter, info->horizontal_scale); + info->vertical_filter_pixel_margin = stbir__get_filter_pixel_margin(info->vertical_filter , info->vertical_scale ); + + info->ring_buffer_length_bytes = info->output_w * info->channels * sizeof(float); + info->decode_buffer_pixels = info->input_w + info->horizontal_filter_pixel_margin * 2; + +#define STBIR__NEXT_MEMPTR(current, newtype) (newtype*)(((unsigned char*)current) + current##_size) + + info->horizontal_contributors = (stbir__contributors *) tempmem; + info->horizontal_coefficients = STBIR__NEXT_MEMPTR(info->horizontal_contributors, float); + info->vertical_contributors = STBIR__NEXT_MEMPTR(info->horizontal_coefficients, stbir__contributors); + info->vertical_coefficients = STBIR__NEXT_MEMPTR(info->vertical_contributors, float); + info->decode_buffer = STBIR__NEXT_MEMPTR(info->vertical_coefficients, float); + + if (stbir__use_height_upsampling(info)) + { + info->horizontal_buffer = NULL; + info->ring_buffer = STBIR__NEXT_MEMPTR(info->decode_buffer, float); + info->encode_buffer = STBIR__NEXT_MEMPTR(info->ring_buffer, float); + + STBIR__DEBUG_ASSERT((size_t)STBIR__NEXT_MEMPTR(info->encode_buffer, unsigned char) == (size_t)tempmem + tempmem_size_in_bytes); + } + else + { + info->horizontal_buffer = STBIR__NEXT_MEMPTR(info->decode_buffer, float); + info->ring_buffer = STBIR__NEXT_MEMPTR(info->horizontal_buffer, float); + info->encode_buffer = NULL; + + STBIR__DEBUG_ASSERT((size_t)STBIR__NEXT_MEMPTR(info->ring_buffer, unsigned char) == (size_t)tempmem + tempmem_size_in_bytes); + } + +#undef STBIR__NEXT_MEMPTR + + // This signals that the ring buffer is empty + info->ring_buffer_begin_index = -1; + + stbir__calculate_filters(info, info->horizontal_contributors, info->horizontal_coefficients, info->horizontal_filter, info->horizontal_scale, info->horizontal_shift, info->input_w, info->output_w); + stbir__calculate_filters(info, info->vertical_contributors, info->vertical_coefficients, info->vertical_filter, info->vertical_scale, info->vertical_shift, info->input_h, info->output_h); + + STBIR_PROGRESS_REPORT(0); + + if (stbir__use_height_upsampling(info)) + stbir__buffer_loop_upsample(info); + else + stbir__buffer_loop_downsample(info); + + STBIR_PROGRESS_REPORT(1); + +#ifdef STBIR_DEBUG_OVERWRITE_TEST + STBIR__DEBUG_ASSERT(memcmp(overwrite_output_before_pre, &((unsigned char*)output_data)[-OVERWRITE_ARRAY_SIZE], OVERWRITE_ARRAY_SIZE) == 0); + STBIR__DEBUG_ASSERT(memcmp(overwrite_output_after_pre, &((unsigned char*)output_data)[begin_forbidden], OVERWRITE_ARRAY_SIZE) == 0); + STBIR__DEBUG_ASSERT(memcmp(overwrite_tempmem_before_pre, &((unsigned char*)tempmem)[-OVERWRITE_ARRAY_SIZE], OVERWRITE_ARRAY_SIZE) == 0); + STBIR__DEBUG_ASSERT(memcmp(overwrite_tempmem_after_pre, &((unsigned char*)tempmem)[tempmem_size_in_bytes], OVERWRITE_ARRAY_SIZE) == 0); +#endif + + return 1; +} + + +static int stbir__resize_arbitrary( + void *alloc_context, + const void* input_data, int input_w, int input_h, int input_stride_in_bytes, + void* output_data, int output_w, int output_h, int output_stride_in_bytes, + float s0, float t0, float s1, float t1, float *transform, + int channels, int alpha_channel, stbir_uint32 flags, stbir_datatype type, + stbir_filter h_filter, stbir_filter v_filter, + stbir_edge edge_horizontal, stbir_edge edge_vertical, stbir_colorspace colorspace) +{ + stbir__info info; + int result; + size_t memory_required; + void* extra_memory; + + stbir__setup(&info, input_w, input_h, output_w, output_h, channels); + stbir__calculate_transform(&info, s0,t0,s1,t1,transform); + stbir__choose_filter(&info, h_filter, v_filter); + memory_required = stbir__calculate_memory(&info); + extra_memory = STBIR_MALLOC(memory_required, alloc_context); + + if (!extra_memory) + return 0; + + result = stbir__resize_allocated(&info, input_data, input_stride_in_bytes, + output_data, output_stride_in_bytes, + alpha_channel, flags, type, + edge_horizontal, edge_vertical, + colorspace, extra_memory, memory_required); + + STBIR_FREE(extra_memory, alloc_context); + + return result; +} + +STBIRDEF int stbir_resize_uint8( const unsigned char *input_pixels , int input_w , int input_h , int input_stride_in_bytes, + unsigned char *output_pixels, int output_w, int output_h, int output_stride_in_bytes, + int num_channels) +{ + return stbir__resize_arbitrary(NULL, input_pixels, input_w, input_h, input_stride_in_bytes, + output_pixels, output_w, output_h, output_stride_in_bytes, + 0,0,1,1,NULL,num_channels,-1,0, STBIR_TYPE_UINT8, STBIR_FILTER_DEFAULT, STBIR_FILTER_DEFAULT, + STBIR_EDGE_CLAMP, STBIR_EDGE_CLAMP, STBIR_COLORSPACE_LINEAR); +} + +STBIRDEF int stbir_resize_float( const float *input_pixels , int input_w , int input_h , int input_stride_in_bytes, + float *output_pixels, int output_w, int output_h, int output_stride_in_bytes, + int num_channels) +{ + return stbir__resize_arbitrary(NULL, input_pixels, input_w, input_h, input_stride_in_bytes, + output_pixels, output_w, output_h, output_stride_in_bytes, + 0,0,1,1,NULL,num_channels,-1,0, STBIR_TYPE_FLOAT, STBIR_FILTER_DEFAULT, STBIR_FILTER_DEFAULT, + STBIR_EDGE_CLAMP, STBIR_EDGE_CLAMP, STBIR_COLORSPACE_LINEAR); +} + +STBIRDEF int stbir_resize_uint8_srgb(const unsigned char *input_pixels , int input_w , int input_h , int input_stride_in_bytes, + unsigned char *output_pixels, int output_w, int output_h, int output_stride_in_bytes, + int num_channels, int alpha_channel, int flags) +{ + return stbir__resize_arbitrary(NULL, input_pixels, input_w, input_h, input_stride_in_bytes, + output_pixels, output_w, output_h, output_stride_in_bytes, + 0,0,1,1,NULL,num_channels,alpha_channel,flags, STBIR_TYPE_UINT8, STBIR_FILTER_DEFAULT, STBIR_FILTER_DEFAULT, + STBIR_EDGE_CLAMP, STBIR_EDGE_CLAMP, STBIR_COLORSPACE_SRGB); +} + +STBIRDEF int stbir_resize_uint8_srgb_edgemode(const unsigned char *input_pixels , int input_w , int input_h , int input_stride_in_bytes, + unsigned char *output_pixels, int output_w, int output_h, int output_stride_in_bytes, + int num_channels, int alpha_channel, int flags, + stbir_edge edge_wrap_mode) +{ + return stbir__resize_arbitrary(NULL, input_pixels, input_w, input_h, input_stride_in_bytes, + output_pixels, output_w, output_h, output_stride_in_bytes, + 0,0,1,1,NULL,num_channels,alpha_channel,flags, STBIR_TYPE_UINT8, STBIR_FILTER_DEFAULT, STBIR_FILTER_DEFAULT, + edge_wrap_mode, edge_wrap_mode, STBIR_COLORSPACE_SRGB); +} + +STBIRDEF int stbir_resize_uint8_generic( const unsigned char *input_pixels , int input_w , int input_h , int input_stride_in_bytes, + unsigned char *output_pixels, int output_w, int output_h, int output_stride_in_bytes, + int num_channels, int alpha_channel, int flags, + stbir_edge edge_wrap_mode, stbir_filter filter, stbir_colorspace space, + void *alloc_context) +{ + return stbir__resize_arbitrary(alloc_context, input_pixels, input_w, input_h, input_stride_in_bytes, + output_pixels, output_w, output_h, output_stride_in_bytes, + 0,0,1,1,NULL,num_channels,alpha_channel,flags, STBIR_TYPE_UINT8, filter, filter, + edge_wrap_mode, edge_wrap_mode, space); +} + +STBIRDEF int stbir_resize_uint16_generic(const stbir_uint16 *input_pixels , int input_w , int input_h , int input_stride_in_bytes, + stbir_uint16 *output_pixels , int output_w, int output_h, int output_stride_in_bytes, + int num_channels, int alpha_channel, int flags, + stbir_edge edge_wrap_mode, stbir_filter filter, stbir_colorspace space, + void *alloc_context) +{ + return stbir__resize_arbitrary(alloc_context, input_pixels, input_w, input_h, input_stride_in_bytes, + output_pixels, output_w, output_h, output_stride_in_bytes, + 0,0,1,1,NULL,num_channels,alpha_channel,flags, STBIR_TYPE_UINT16, filter, filter, + edge_wrap_mode, edge_wrap_mode, space); +} + + +STBIRDEF int stbir_resize_float_generic( const float *input_pixels , int input_w , int input_h , int input_stride_in_bytes, + float *output_pixels , int output_w, int output_h, int output_stride_in_bytes, + int num_channels, int alpha_channel, int flags, + stbir_edge edge_wrap_mode, stbir_filter filter, stbir_colorspace space, + void *alloc_context) +{ + return stbir__resize_arbitrary(alloc_context, input_pixels, input_w, input_h, input_stride_in_bytes, + output_pixels, output_w, output_h, output_stride_in_bytes, + 0,0,1,1,NULL,num_channels,alpha_channel,flags, STBIR_TYPE_FLOAT, filter, filter, + edge_wrap_mode, edge_wrap_mode, space); +} + + +STBIRDEF int stbir_resize( const void *input_pixels , int input_w , int input_h , int input_stride_in_bytes, + void *output_pixels, int output_w, int output_h, int output_stride_in_bytes, + stbir_datatype datatype, + int num_channels, int alpha_channel, int flags, + stbir_edge edge_mode_horizontal, stbir_edge edge_mode_vertical, + stbir_filter filter_horizontal, stbir_filter filter_vertical, + stbir_colorspace space, void *alloc_context) +{ + return stbir__resize_arbitrary(alloc_context, input_pixels, input_w, input_h, input_stride_in_bytes, + output_pixels, output_w, output_h, output_stride_in_bytes, + 0,0,1,1,NULL,num_channels,alpha_channel,flags, datatype, filter_horizontal, filter_vertical, + edge_mode_horizontal, edge_mode_vertical, space); +} + + +STBIRDEF int stbir_resize_subpixel(const void *input_pixels , int input_w , int input_h , int input_stride_in_bytes, + void *output_pixels, int output_w, int output_h, int output_stride_in_bytes, + stbir_datatype datatype, + int num_channels, int alpha_channel, int flags, + stbir_edge edge_mode_horizontal, stbir_edge edge_mode_vertical, + stbir_filter filter_horizontal, stbir_filter filter_vertical, + stbir_colorspace space, void *alloc_context, + float x_scale, float y_scale, + float x_offset, float y_offset) +{ + float transform[4]; + transform[0] = x_scale; + transform[1] = y_scale; + transform[2] = x_offset; + transform[3] = y_offset; + return stbir__resize_arbitrary(alloc_context, input_pixels, input_w, input_h, input_stride_in_bytes, + output_pixels, output_w, output_h, output_stride_in_bytes, + 0,0,1,1,transform,num_channels,alpha_channel,flags, datatype, filter_horizontal, filter_vertical, + edge_mode_horizontal, edge_mode_vertical, space); +} + +STBIRDEF int stbir_resize_region( const void *input_pixels , int input_w , int input_h , int input_stride_in_bytes, + void *output_pixels, int output_w, int output_h, int output_stride_in_bytes, + stbir_datatype datatype, + int num_channels, int alpha_channel, int flags, + stbir_edge edge_mode_horizontal, stbir_edge edge_mode_vertical, + stbir_filter filter_horizontal, stbir_filter filter_vertical, + stbir_colorspace space, void *alloc_context, + float s0, float t0, float s1, float t1) +{ + return stbir__resize_arbitrary(alloc_context, input_pixels, input_w, input_h, input_stride_in_bytes, + output_pixels, output_w, output_h, output_stride_in_bytes, + s0,t0,s1,t1,NULL,num_channels,alpha_channel,flags, datatype, filter_horizontal, filter_vertical, + edge_mode_horizontal, edge_mode_vertical, space); +} + +#endif // STB_IMAGE_RESIZE_IMPLEMENTATION diff --git a/modules/tinyexr/examples/common/stb_image_write.h b/modules/tinyexr/examples/common/stb_image_write.h new file mode 100644 index 0000000..4319c0d --- /dev/null +++ b/modules/tinyexr/examples/common/stb_image_write.h @@ -0,0 +1,1048 @@ +/* stb_image_write - v1.02 - public domain - http://nothings.org/stb/stb_image_write.h + writes out PNG/BMP/TGA images to C stdio - Sean Barrett 2010-2015 + no warranty implied; use at your own risk + + Before #including, + + #define STB_IMAGE_WRITE_IMPLEMENTATION + + in the file that you want to have the implementation. + + Will probably not work correctly with strict-aliasing optimizations. + +ABOUT: + + This header file is a library for writing images to C stdio. It could be + adapted to write to memory or a general streaming interface; let me know. + + The PNG output is not optimal; it is 20-50% larger than the file + written by a decent optimizing implementation. This library is designed + for source code compactness and simplicity, not optimal image file size + or run-time performance. + +BUILDING: + + You can #define STBIW_ASSERT(x) before the #include to avoid using assert.h. + You can #define STBIW_MALLOC(), STBIW_REALLOC(), and STBIW_FREE() to replace + malloc,realloc,free. + You can define STBIW_MEMMOVE() to replace memmove() + +USAGE: + + There are four functions, one for each image file format: + + int stbi_write_png(char const *filename, int w, int h, int comp, const void *data, int stride_in_bytes); + int stbi_write_bmp(char const *filename, int w, int h, int comp, const void *data); + int stbi_write_tga(char const *filename, int w, int h, int comp, const void *data); + int stbi_write_hdr(char const *filename, int w, int h, int comp, const float *data); + + There are also four equivalent functions that use an arbitrary write function. You are + expected to open/close your file-equivalent before and after calling these: + + int stbi_write_png_to_func(stbi_write_func *func, void *context, int w, int h, int comp, const void *data, int stride_in_bytes); + int stbi_write_bmp_to_func(stbi_write_func *func, void *context, int w, int h, int comp, const void *data); + int stbi_write_tga_to_func(stbi_write_func *func, void *context, int w, int h, int comp, const void *data); + int stbi_write_hdr_to_func(stbi_write_func *func, void *context, int w, int h, int comp, const float *data); + + where the callback is: + void stbi_write_func(void *context, void *data, int size); + + You can define STBI_WRITE_NO_STDIO to disable the file variant of these + functions, so the library will not use stdio.h at all. However, this will + also disable HDR writing, because it requires stdio for formatted output. + + Each function returns 0 on failure and non-0 on success. + + The functions create an image file defined by the parameters. The image + is a rectangle of pixels stored from left-to-right, top-to-bottom. + Each pixel contains 'comp' channels of data stored interleaved with 8-bits + per channel, in the following order: 1=Y, 2=YA, 3=RGB, 4=RGBA. (Y is + monochrome color.) The rectangle is 'w' pixels wide and 'h' pixels tall. + The *data pointer points to the first byte of the top-left-most pixel. + For PNG, "stride_in_bytes" is the distance in bytes from the first byte of + a row of pixels to the first byte of the next row of pixels. + + PNG creates output files with the same number of components as the input. + The BMP format expands Y to RGB in the file format and does not + output alpha. + + PNG supports writing rectangles of data even when the bytes storing rows of + data are not consecutive in memory (e.g. sub-rectangles of a larger image), + by supplying the stride between the beginning of adjacent rows. The other + formats do not. (Thus you cannot write a native-format BMP through the BMP + writer, both because it is in BGR order and because it may have padding + at the end of the line.) + + HDR expects linear float data. Since the format is always 32-bit rgb(e) + data, alpha (if provided) is discarded, and for monochrome data it is + replicated across all three channels. + + TGA supports RLE or non-RLE compressed data. To use non-RLE-compressed + data, set the global variable 'stbi_write_tga_with_rle' to 0. + +CREDITS: + + PNG/BMP/TGA + Sean Barrett + HDR + Baldur Karlsson + TGA monochrome: + Jean-Sebastien Guay + misc enhancements: + Tim Kelsey + TGA RLE + Alan Hickman + initial file IO callback implementation + Emmanuel Julien + bugfixes: + github:Chribba + Guillaume Chereau + github:jry2 + github:romigrou + Sergio Gonzalez + Jonas Karlsson + Filip Wasil + Thatcher Ulrich + +LICENSE + +This software is dual-licensed to the public domain and under the following +license: you are granted a perpetual, irrevocable license to copy, modify, +publish, and distribute this file as you see fit. + +*/ + +#ifndef INCLUDE_STB_IMAGE_WRITE_H +#define INCLUDE_STB_IMAGE_WRITE_H + +#ifdef __cplusplus +extern "C" { +#endif + +#ifdef STB_IMAGE_WRITE_STATIC +#define STBIWDEF static +#else +#define STBIWDEF extern +extern int stbi_write_tga_with_rle; +#endif + +#ifndef STBI_WRITE_NO_STDIO +STBIWDEF int stbi_write_png(char const *filename, int w, int h, int comp, const void *data, int stride_in_bytes); +STBIWDEF int stbi_write_bmp(char const *filename, int w, int h, int comp, const void *data); +STBIWDEF int stbi_write_tga(char const *filename, int w, int h, int comp, const void *data); +STBIWDEF int stbi_write_hdr(char const *filename, int w, int h, int comp, const float *data); +#endif + +typedef void stbi_write_func(void *context, void *data, int size); + +STBIWDEF int stbi_write_png_to_func(stbi_write_func *func, void *context, int w, int h, int comp, const void *data, int stride_in_bytes); +STBIWDEF int stbi_write_bmp_to_func(stbi_write_func *func, void *context, int w, int h, int comp, const void *data); +STBIWDEF int stbi_write_tga_to_func(stbi_write_func *func, void *context, int w, int h, int comp, const void *data); +STBIWDEF int stbi_write_hdr_to_func(stbi_write_func *func, void *context, int w, int h, int comp, const float *data); + +#ifdef __cplusplus +} +#endif + +#endif//INCLUDE_STB_IMAGE_WRITE_H + +#ifdef STB_IMAGE_WRITE_IMPLEMENTATION + +#ifdef _WIN32 + #ifndef _CRT_SECURE_NO_WARNINGS + #define _CRT_SECURE_NO_WARNINGS + #endif + #ifndef _CRT_NONSTDC_NO_DEPRECATE + #define _CRT_NONSTDC_NO_DEPRECATE + #endif +#endif + +#ifndef STBI_WRITE_NO_STDIO +#include +#endif // STBI_WRITE_NO_STDIO + +#include +#include +#include +#include + +#if defined(STBIW_MALLOC) && defined(STBIW_FREE) && (defined(STBIW_REALLOC) || defined(STBIW_REALLOC_SIZED)) +// ok +#elif !defined(STBIW_MALLOC) && !defined(STBIW_FREE) && !defined(STBIW_REALLOC) && !defined(STBIW_REALLOC_SIZED) +// ok +#else +#error "Must define all or none of STBIW_MALLOC, STBIW_FREE, and STBIW_REALLOC (or STBIW_REALLOC_SIZED)." +#endif + +#ifndef STBIW_MALLOC +#define STBIW_MALLOC(sz) malloc(sz) +#define STBIW_REALLOC(p,newsz) realloc(p,newsz) +#define STBIW_FREE(p) free(p) +#endif + +#ifndef STBIW_REALLOC_SIZED +#define STBIW_REALLOC_SIZED(p,oldsz,newsz) STBIW_REALLOC(p,newsz) +#endif + + +#ifndef STBIW_MEMMOVE +#define STBIW_MEMMOVE(a,b,sz) memmove(a,b,sz) +#endif + + +#ifndef STBIW_ASSERT +#include +#define STBIW_ASSERT(x) assert(x) +#endif + +#define STBIW_UCHAR(x) (unsigned char) ((x) & 0xff) + +typedef struct +{ + stbi_write_func *func; + void *context; +} stbi__write_context; + +// initialize a callback-based context +static void stbi__start_write_callbacks(stbi__write_context *s, stbi_write_func *c, void *context) +{ + s->func = c; + s->context = context; +} + +#ifndef STBI_WRITE_NO_STDIO + +static void stbi__stdio_write(void *context, void *data, int size) +{ + fwrite(data,1,size,(FILE*) context); +} + +static int stbi__start_write_file(stbi__write_context *s, const char *filename) +{ + FILE *f = fopen(filename, "wb"); + stbi__start_write_callbacks(s, stbi__stdio_write, (void *) f); + return f != NULL; +} + +static void stbi__end_write_file(stbi__write_context *s) +{ + fclose((FILE *)s->context); +} + +#endif // !STBI_WRITE_NO_STDIO + +typedef unsigned int stbiw_uint32; +typedef int stb_image_write_test[sizeof(stbiw_uint32)==4 ? 1 : -1]; + +#ifdef STB_IMAGE_WRITE_STATIC +static int stbi_write_tga_with_rle = 1; +#else +int stbi_write_tga_with_rle = 1; +#endif + +static void stbiw__writefv(stbi__write_context *s, const char *fmt, va_list v) +{ + while (*fmt) { + switch (*fmt++) { + case ' ': break; + case '1': { unsigned char x = STBIW_UCHAR(va_arg(v, int)); + s->func(s->context,&x,1); + break; } + case '2': { int x = va_arg(v,int); + unsigned char b[2]; + b[0] = STBIW_UCHAR(x); + b[1] = STBIW_UCHAR(x>>8); + s->func(s->context,b,2); + break; } + case '4': { stbiw_uint32 x = va_arg(v,int); + unsigned char b[4]; + b[0]=STBIW_UCHAR(x); + b[1]=STBIW_UCHAR(x>>8); + b[2]=STBIW_UCHAR(x>>16); + b[3]=STBIW_UCHAR(x>>24); + s->func(s->context,b,4); + break; } + default: + STBIW_ASSERT(0); + return; + } + } +} + +static void stbiw__writef(stbi__write_context *s, const char *fmt, ...) +{ + va_list v; + va_start(v, fmt); + stbiw__writefv(s, fmt, v); + va_end(v); +} + +static void stbiw__write3(stbi__write_context *s, unsigned char a, unsigned char b, unsigned char c) +{ + unsigned char arr[3]; + arr[0] = a, arr[1] = b, arr[2] = c; + s->func(s->context, arr, 3); +} + +static void stbiw__write_pixel(stbi__write_context *s, int rgb_dir, int comp, int write_alpha, int expand_mono, unsigned char *d) +{ + unsigned char bg[3] = { 255, 0, 255}, px[3]; + int k; + + if (write_alpha < 0) + s->func(s->context, &d[comp - 1], 1); + + switch (comp) { + case 1: + s->func(s->context,d,1); + break; + case 2: + if (expand_mono) + stbiw__write3(s, d[0], d[0], d[0]); // monochrome bmp + else + s->func(s->context, d, 1); // monochrome TGA + break; + case 4: + if (!write_alpha) { + // composite against pink background + for (k = 0; k < 3; ++k) + px[k] = bg[k] + ((d[k] - bg[k]) * d[3]) / 255; + stbiw__write3(s, px[1 - rgb_dir], px[1], px[1 + rgb_dir]); + break; + } + /* FALLTHROUGH */ + case 3: + stbiw__write3(s, d[1 - rgb_dir], d[1], d[1 + rgb_dir]); + break; + } + if (write_alpha > 0) + s->func(s->context, &d[comp - 1], 1); +} + +static void stbiw__write_pixels(stbi__write_context *s, int rgb_dir, int vdir, int x, int y, int comp, void *data, int write_alpha, int scanline_pad, int expand_mono) +{ + stbiw_uint32 zero = 0; + int i,j, j_end; + + if (y <= 0) + return; + + if (vdir < 0) + j_end = -1, j = y-1; + else + j_end = y, j = 0; + + for (; j != j_end; j += vdir) { + for (i=0; i < x; ++i) { + unsigned char *d = (unsigned char *) data + (j*x+i)*comp; + stbiw__write_pixel(s, rgb_dir, comp, write_alpha, expand_mono, d); + } + s->func(s->context, &zero, scanline_pad); + } +} + +static int stbiw__outfile(stbi__write_context *s, int rgb_dir, int vdir, int x, int y, int comp, int expand_mono, void *data, int alpha, int pad, const char *fmt, ...) +{ + if (y < 0 || x < 0) { + return 0; + } else { + va_list v; + va_start(v, fmt); + stbiw__writefv(s, fmt, v); + va_end(v); + stbiw__write_pixels(s,rgb_dir,vdir,x,y,comp,data,alpha,pad, expand_mono); + return 1; + } +} + +static int stbi_write_bmp_core(stbi__write_context *s, int x, int y, int comp, const void *data) +{ + int pad = (-x*3) & 3; + return stbiw__outfile(s,-1,-1,x,y,comp,1,(void *) data,0,pad, + "11 4 22 4" "4 44 22 444444", + 'B', 'M', 14+40+(x*3+pad)*y, 0,0, 14+40, // file header + 40, x,y, 1,24, 0,0,0,0,0,0); // bitmap header +} + +STBIWDEF int stbi_write_bmp_to_func(stbi_write_func *func, void *context, int x, int y, int comp, const void *data) +{ + stbi__write_context s; + stbi__start_write_callbacks(&s, func, context); + return stbi_write_bmp_core(&s, x, y, comp, data); +} + +#ifndef STBI_WRITE_NO_STDIO +STBIWDEF int stbi_write_bmp(char const *filename, int x, int y, int comp, const void *data) +{ + stbi__write_context s; + if (stbi__start_write_file(&s,filename)) { + int r = stbi_write_bmp_core(&s, x, y, comp, data); + stbi__end_write_file(&s); + return r; + } else + return 0; +} +#endif //!STBI_WRITE_NO_STDIO + +static int stbi_write_tga_core(stbi__write_context *s, int x, int y, int comp, void *data) +{ + int has_alpha = (comp == 2 || comp == 4); + int colorbytes = has_alpha ? comp-1 : comp; + int format = colorbytes < 2 ? 3 : 2; // 3 color channels (RGB/RGBA) = 2, 1 color channel (Y/YA) = 3 + + if (y < 0 || x < 0) + return 0; + + if (!stbi_write_tga_with_rle) { + return stbiw__outfile(s, -1, -1, x, y, comp, 0, (void *) data, has_alpha, 0, + "111 221 2222 11", 0, 0, format, 0, 0, 0, 0, 0, x, y, (colorbytes + has_alpha) * 8, has_alpha * 8); + } else { + int i,j,k; + + stbiw__writef(s, "111 221 2222 11", 0,0,format+8, 0,0,0, 0,0,x,y, (colorbytes + has_alpha) * 8, has_alpha * 8); + + for (j = y - 1; j >= 0; --j) { + unsigned char *row = (unsigned char *) data + j * x * comp; + int len; + + for (i = 0; i < x; i += len) { + unsigned char *begin = row + i * comp; + int diff = 1; + len = 1; + + if (i < x - 1) { + ++len; + diff = memcmp(begin, row + (i + 1) * comp, comp); + if (diff) { + const unsigned char *prev = begin; + for (k = i + 2; k < x && len < 128; ++k) { + if (memcmp(prev, row + k * comp, comp)) { + prev += comp; + ++len; + } else { + --len; + break; + } + } + } else { + for (k = i + 2; k < x && len < 128; ++k) { + if (!memcmp(begin, row + k * comp, comp)) { + ++len; + } else { + break; + } + } + } + } + + if (diff) { + unsigned char header = STBIW_UCHAR(len - 1); + s->func(s->context, &header, 1); + for (k = 0; k < len; ++k) { + stbiw__write_pixel(s, -1, comp, has_alpha, 0, begin + k * comp); + } + } else { + unsigned char header = STBIW_UCHAR(len - 129); + s->func(s->context, &header, 1); + stbiw__write_pixel(s, -1, comp, has_alpha, 0, begin); + } + } + } + } + return 1; +} + +int stbi_write_tga_to_func(stbi_write_func *func, void *context, int x, int y, int comp, const void *data) +{ + stbi__write_context s; + stbi__start_write_callbacks(&s, func, context); + return stbi_write_tga_core(&s, x, y, comp, (void *) data); +} + +#ifndef STBI_WRITE_NO_STDIO +int stbi_write_tga(char const *filename, int x, int y, int comp, const void *data) +{ + stbi__write_context s; + if (stbi__start_write_file(&s,filename)) { + int r = stbi_write_tga_core(&s, x, y, comp, (void *) data); + stbi__end_write_file(&s); + return r; + } else + return 0; +} +#endif + +// ************************************************************************************************* +// Radiance RGBE HDR writer +// by Baldur Karlsson +#ifndef STBI_WRITE_NO_STDIO + +#define stbiw__max(a, b) ((a) > (b) ? (a) : (b)) + +void stbiw__linear_to_rgbe(unsigned char *rgbe, float *linear) +{ + int exponent; + float maxcomp = stbiw__max(linear[0], stbiw__max(linear[1], linear[2])); + + if (maxcomp < 1e-32f) { + rgbe[0] = rgbe[1] = rgbe[2] = rgbe[3] = 0; + } else { + float normalize = (float) frexp(maxcomp, &exponent) * 256.0f/maxcomp; + + rgbe[0] = (unsigned char)(linear[0] * normalize); + rgbe[1] = (unsigned char)(linear[1] * normalize); + rgbe[2] = (unsigned char)(linear[2] * normalize); + rgbe[3] = (unsigned char)(exponent + 128); + } +} + +void stbiw__write_run_data(stbi__write_context *s, int length, unsigned char databyte) +{ + unsigned char lengthbyte = STBIW_UCHAR(length+128); + STBIW_ASSERT(length+128 <= 255); + s->func(s->context, &lengthbyte, 1); + s->func(s->context, &databyte, 1); +} + +void stbiw__write_dump_data(stbi__write_context *s, int length, unsigned char *data) +{ + unsigned char lengthbyte = STBIW_UCHAR(length); + STBIW_ASSERT(length <= 128); // inconsistent with spec but consistent with official code + s->func(s->context, &lengthbyte, 1); + s->func(s->context, data, length); +} + +void stbiw__write_hdr_scanline(stbi__write_context *s, int width, int ncomp, unsigned char *scratch, float *scanline) +{ + unsigned char scanlineheader[4] = { 2, 2, 0, 0 }; + unsigned char rgbe[4]; + float linear[3]; + int x; + + scanlineheader[2] = (width&0xff00)>>8; + scanlineheader[3] = (width&0x00ff); + + /* skip RLE for images too small or large */ + if (width < 8 || width >= 32768) { + for (x=0; x < width; x++) { + switch (ncomp) { + case 4: /* fallthrough */ + case 3: linear[2] = scanline[x*ncomp + 2]; + linear[1] = scanline[x*ncomp + 1]; + linear[0] = scanline[x*ncomp + 0]; + break; + default: + linear[0] = linear[1] = linear[2] = scanline[x*ncomp + 0]; + break; + } + stbiw__linear_to_rgbe(rgbe, linear); + s->func(s->context, rgbe, 4); + } + } else { + int c,r; + /* encode into scratch buffer */ + for (x=0; x < width; x++) { + switch(ncomp) { + case 4: /* fallthrough */ + case 3: linear[2] = scanline[x*ncomp + 2]; + linear[1] = scanline[x*ncomp + 1]; + linear[0] = scanline[x*ncomp + 0]; + break; + default: + linear[0] = linear[1] = linear[2] = scanline[x*ncomp + 0]; + break; + } + stbiw__linear_to_rgbe(rgbe, linear); + scratch[x + width*0] = rgbe[0]; + scratch[x + width*1] = rgbe[1]; + scratch[x + width*2] = rgbe[2]; + scratch[x + width*3] = rgbe[3]; + } + + s->func(s->context, scanlineheader, 4); + + /* RLE each component separately */ + for (c=0; c < 4; c++) { + unsigned char *comp = &scratch[width*c]; + + x = 0; + while (x < width) { + // find first run + r = x; + while (r+2 < width) { + if (comp[r] == comp[r+1] && comp[r] == comp[r+2]) + break; + ++r; + } + if (r+2 >= width) + r = width; + // dump up to first run + while (x < r) { + int len = r-x; + if (len > 128) len = 128; + stbiw__write_dump_data(s, len, &comp[x]); + x += len; + } + // if there's a run, output it + if (r+2 < width) { // same test as what we break out of in search loop, so only true if we break'd + // find next byte after run + while (r < width && comp[r] == comp[x]) + ++r; + // output run up to r + while (x < r) { + int len = r-x; + if (len > 127) len = 127; + stbiw__write_run_data(s, len, comp[x]); + x += len; + } + } + } + } + } +} + +static int stbi_write_hdr_core(stbi__write_context *s, int x, int y, int comp, float *data) +{ + if (y <= 0 || x <= 0 || data == NULL) + return 0; + else { + // Each component is stored separately. Allocate scratch space for full output scanline. + unsigned char *scratch = (unsigned char *) STBIW_MALLOC(x*4); + int i, len; + char buffer[128]; + char header[] = "#?RADIANCE\n# Written by stb_image_write.h\nFORMAT=32-bit_rle_rgbe\n"; + s->func(s->context, header, sizeof(header)-1); + + len = sprintf(buffer, "EXPOSURE= 1.0000000000000\n\n-Y %d +X %d\n", y, x); + s->func(s->context, buffer, len); + + for(i=0; i < y; i++) + stbiw__write_hdr_scanline(s, x, comp, scratch, data + comp*i*x); + STBIW_FREE(scratch); + return 1; + } +} + +int stbi_write_hdr_to_func(stbi_write_func *func, void *context, int x, int y, int comp, const float *data) +{ + stbi__write_context s; + stbi__start_write_callbacks(&s, func, context); + return stbi_write_hdr_core(&s, x, y, comp, (float *) data); +} + +int stbi_write_hdr(char const *filename, int x, int y, int comp, const float *data) +{ + stbi__write_context s; + if (stbi__start_write_file(&s,filename)) { + int r = stbi_write_hdr_core(&s, x, y, comp, (float *) data); + stbi__end_write_file(&s); + return r; + } else + return 0; +} +#endif // STBI_WRITE_NO_STDIO + + +////////////////////////////////////////////////////////////////////////////// +// +// PNG writer +// + +// stretchy buffer; stbiw__sbpush() == vector<>::push_back() -- stbiw__sbcount() == vector<>::size() +#define stbiw__sbraw(a) ((int *) (a) - 2) +#define stbiw__sbm(a) stbiw__sbraw(a)[0] +#define stbiw__sbn(a) stbiw__sbraw(a)[1] + +#define stbiw__sbneedgrow(a,n) ((a)==0 || stbiw__sbn(a)+n >= stbiw__sbm(a)) +#define stbiw__sbmaybegrow(a,n) (stbiw__sbneedgrow(a,(n)) ? stbiw__sbgrow(a,n) : 0) +#define stbiw__sbgrow(a,n) stbiw__sbgrowf((void **) &(a), (n), sizeof(*(a))) + +#define stbiw__sbpush(a, v) (stbiw__sbmaybegrow(a,1), (a)[stbiw__sbn(a)++] = (v)) +#define stbiw__sbcount(a) ((a) ? stbiw__sbn(a) : 0) +#define stbiw__sbfree(a) ((a) ? STBIW_FREE(stbiw__sbraw(a)),0 : 0) + +static void *stbiw__sbgrowf(void **arr, int increment, int itemsize) +{ + int m = *arr ? 2*stbiw__sbm(*arr)+increment : increment+1; + void *p = STBIW_REALLOC_SIZED(*arr ? stbiw__sbraw(*arr) : 0, *arr ? (stbiw__sbm(*arr)*itemsize + sizeof(int)*2) : 0, itemsize * m + sizeof(int)*2); + STBIW_ASSERT(p); + if (p) { + if (!*arr) ((int *) p)[1] = 0; + *arr = (void *) ((int *) p + 2); + stbiw__sbm(*arr) = m; + } + return *arr; +} + +static unsigned char *stbiw__zlib_flushf(unsigned char *data, unsigned int *bitbuffer, int *bitcount) +{ + while (*bitcount >= 8) { + stbiw__sbpush(data, STBIW_UCHAR(*bitbuffer)); + *bitbuffer >>= 8; + *bitcount -= 8; + } + return data; +} + +static int stbiw__zlib_bitrev(int code, int codebits) +{ + int res=0; + while (codebits--) { + res = (res << 1) | (code & 1); + code >>= 1; + } + return res; +} + +static unsigned int stbiw__zlib_countm(unsigned char *a, unsigned char *b, int limit) +{ + int i; + for (i=0; i < limit && i < 258; ++i) + if (a[i] != b[i]) break; + return i; +} + +static unsigned int stbiw__zhash(unsigned char *data) +{ + stbiw_uint32 hash = data[0] + (data[1] << 8) + (data[2] << 16); + hash ^= hash << 3; + hash += hash >> 5; + hash ^= hash << 4; + hash += hash >> 17; + hash ^= hash << 25; + hash += hash >> 6; + return hash; +} + +#define stbiw__zlib_flush() (out = stbiw__zlib_flushf(out, &bitbuf, &bitcount)) +#define stbiw__zlib_add(code,codebits) \ + (bitbuf |= (code) << bitcount, bitcount += (codebits), stbiw__zlib_flush()) +#define stbiw__zlib_huffa(b,c) stbiw__zlib_add(stbiw__zlib_bitrev(b,c),c) +// default huffman tables +#define stbiw__zlib_huff1(n) stbiw__zlib_huffa(0x30 + (n), 8) +#define stbiw__zlib_huff2(n) stbiw__zlib_huffa(0x190 + (n)-144, 9) +#define stbiw__zlib_huff3(n) stbiw__zlib_huffa(0 + (n)-256,7) +#define stbiw__zlib_huff4(n) stbiw__zlib_huffa(0xc0 + (n)-280,8) +#define stbiw__zlib_huff(n) ((n) <= 143 ? stbiw__zlib_huff1(n) : (n) <= 255 ? stbiw__zlib_huff2(n) : (n) <= 279 ? stbiw__zlib_huff3(n) : stbiw__zlib_huff4(n)) +#define stbiw__zlib_huffb(n) ((n) <= 143 ? stbiw__zlib_huff1(n) : stbiw__zlib_huff2(n)) + +#define stbiw__ZHASH 16384 + +unsigned char * stbi_zlib_compress(unsigned char *data, int data_len, int *out_len, int quality) +{ + static unsigned short lengthc[] = { 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, 259 }; + static unsigned char lengtheb[]= { 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 }; + static unsigned short distc[] = { 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, 32768 }; + static unsigned char disteb[] = { 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 }; + unsigned int bitbuf=0; + int i,j, bitcount=0; + unsigned char *out = NULL; + unsigned char ***hash_table = (unsigned char***) STBIW_MALLOC(stbiw__ZHASH * sizeof(char**)); + if (quality < 5) quality = 5; + + stbiw__sbpush(out, 0x78); // DEFLATE 32K window + stbiw__sbpush(out, 0x5e); // FLEVEL = 1 + stbiw__zlib_add(1,1); // BFINAL = 1 + stbiw__zlib_add(1,2); // BTYPE = 1 -- fixed huffman + + for (i=0; i < stbiw__ZHASH; ++i) + hash_table[i] = NULL; + + i=0; + while (i < data_len-3) { + // hash next 3 bytes of data to be compressed + int h = stbiw__zhash(data+i)&(stbiw__ZHASH-1), best=3; + unsigned char *bestloc = 0; + unsigned char **hlist = hash_table[h]; + int n = stbiw__sbcount(hlist); + for (j=0; j < n; ++j) { + if (hlist[j]-data > i-32768) { // if entry lies within window + int d = stbiw__zlib_countm(hlist[j], data+i, data_len-i); + if (d >= best) best=d,bestloc=hlist[j]; + } + } + // when hash table entry is too long, delete half the entries + if (hash_table[h] && stbiw__sbn(hash_table[h]) == 2*quality) { + STBIW_MEMMOVE(hash_table[h], hash_table[h]+quality, sizeof(hash_table[h][0])*quality); + stbiw__sbn(hash_table[h]) = quality; + } + stbiw__sbpush(hash_table[h],data+i); + + if (bestloc) { + // "lazy matching" - check match at *next* byte, and if it's better, do cur byte as literal + h = stbiw__zhash(data+i+1)&(stbiw__ZHASH-1); + hlist = hash_table[h]; + n = stbiw__sbcount(hlist); + for (j=0; j < n; ++j) { + if (hlist[j]-data > i-32767) { + int e = stbiw__zlib_countm(hlist[j], data+i+1, data_len-i-1); + if (e > best) { // if next match is better, bail on current match + bestloc = NULL; + break; + } + } + } + } + + if (bestloc) { + int d = (int) (data+i - bestloc); // distance back + STBIW_ASSERT(d <= 32767 && best <= 258); + for (j=0; best > lengthc[j+1]-1; ++j); + stbiw__zlib_huff(j+257); + if (lengtheb[j]) stbiw__zlib_add(best - lengthc[j], lengtheb[j]); + for (j=0; d > distc[j+1]-1; ++j); + stbiw__zlib_add(stbiw__zlib_bitrev(j,5),5); + if (disteb[j]) stbiw__zlib_add(d - distc[j], disteb[j]); + i += best; + } else { + stbiw__zlib_huffb(data[i]); + ++i; + } + } + // write out final bytes + for (;i < data_len; ++i) + stbiw__zlib_huffb(data[i]); + stbiw__zlib_huff(256); // end of block + // pad with 0 bits to byte boundary + while (bitcount) + stbiw__zlib_add(0,1); + + for (i=0; i < stbiw__ZHASH; ++i) + (void) stbiw__sbfree(hash_table[i]); + STBIW_FREE(hash_table); + + { + // compute adler32 on input + unsigned int s1=1, s2=0; + int blocklen = (int) (data_len % 5552); + j=0; + while (j < data_len) { + for (i=0; i < blocklen; ++i) s1 += data[j+i], s2 += s1; + s1 %= 65521, s2 %= 65521; + j += blocklen; + blocklen = 5552; + } + stbiw__sbpush(out, STBIW_UCHAR(s2 >> 8)); + stbiw__sbpush(out, STBIW_UCHAR(s2)); + stbiw__sbpush(out, STBIW_UCHAR(s1 >> 8)); + stbiw__sbpush(out, STBIW_UCHAR(s1)); + } + *out_len = stbiw__sbn(out); + // make returned pointer freeable + STBIW_MEMMOVE(stbiw__sbraw(out), out, *out_len); + return (unsigned char *) stbiw__sbraw(out); +} + +static unsigned int stbiw__crc32(unsigned char *buffer, int len) +{ + static unsigned int crc_table[256] = + { + 0x00000000, 0x77073096, 0xEE0E612C, 0x990951BA, 0x076DC419, 0x706AF48F, 0xE963A535, 0x9E6495A3, + 0x0eDB8832, 0x79DCB8A4, 0xE0D5E91E, 0x97D2D988, 0x09B64C2B, 0x7EB17CBD, 0xE7B82D07, 0x90BF1D91, + 0x1DB71064, 0x6AB020F2, 0xF3B97148, 0x84BE41DE, 0x1ADAD47D, 0x6DDDE4EB, 0xF4D4B551, 0x83D385C7, + 0x136C9856, 0x646BA8C0, 0xFD62F97A, 0x8A65C9EC, 0x14015C4F, 0x63066CD9, 0xFA0F3D63, 0x8D080DF5, + 0x3B6E20C8, 0x4C69105E, 0xD56041E4, 0xA2677172, 0x3C03E4D1, 0x4B04D447, 0xD20D85FD, 0xA50AB56B, + 0x35B5A8FA, 0x42B2986C, 0xDBBBC9D6, 0xACBCF940, 0x32D86CE3, 0x45DF5C75, 0xDCD60DCF, 0xABD13D59, + 0x26D930AC, 0x51DE003A, 0xC8D75180, 0xBFD06116, 0x21B4F4B5, 0x56B3C423, 0xCFBA9599, 0xB8BDA50F, + 0x2802B89E, 0x5F058808, 0xC60CD9B2, 0xB10BE924, 0x2F6F7C87, 0x58684C11, 0xC1611DAB, 0xB6662D3D, + 0x76DC4190, 0x01DB7106, 0x98D220BC, 0xEFD5102A, 0x71B18589, 0x06B6B51F, 0x9FBFE4A5, 0xE8B8D433, + 0x7807C9A2, 0x0F00F934, 0x9609A88E, 0xE10E9818, 0x7F6A0DBB, 0x086D3D2D, 0x91646C97, 0xE6635C01, + 0x6B6B51F4, 0x1C6C6162, 0x856530D8, 0xF262004E, 0x6C0695ED, 0x1B01A57B, 0x8208F4C1, 0xF50FC457, + 0x65B0D9C6, 0x12B7E950, 0x8BBEB8EA, 0xFCB9887C, 0x62DD1DDF, 0x15DA2D49, 0x8CD37CF3, 0xFBD44C65, + 0x4DB26158, 0x3AB551CE, 0xA3BC0074, 0xD4BB30E2, 0x4ADFA541, 0x3DD895D7, 0xA4D1C46D, 0xD3D6F4FB, + 0x4369E96A, 0x346ED9FC, 0xAD678846, 0xDA60B8D0, 0x44042D73, 0x33031DE5, 0xAA0A4C5F, 0xDD0D7CC9, + 0x5005713C, 0x270241AA, 0xBE0B1010, 0xC90C2086, 0x5768B525, 0x206F85B3, 0xB966D409, 0xCE61E49F, + 0x5EDEF90E, 0x29D9C998, 0xB0D09822, 0xC7D7A8B4, 0x59B33D17, 0x2EB40D81, 0xB7BD5C3B, 0xC0BA6CAD, + 0xEDB88320, 0x9ABFB3B6, 0x03B6E20C, 0x74B1D29A, 0xEAD54739, 0x9DD277AF, 0x04DB2615, 0x73DC1683, + 0xE3630B12, 0x94643B84, 0x0D6D6A3E, 0x7A6A5AA8, 0xE40ECF0B, 0x9309FF9D, 0x0A00AE27, 0x7D079EB1, + 0xF00F9344, 0x8708A3D2, 0x1E01F268, 0x6906C2FE, 0xF762575D, 0x806567CB, 0x196C3671, 0x6E6B06E7, + 0xFED41B76, 0x89D32BE0, 0x10DA7A5A, 0x67DD4ACC, 0xF9B9DF6F, 0x8EBEEFF9, 0x17B7BE43, 0x60B08ED5, + 0xD6D6A3E8, 0xA1D1937E, 0x38D8C2C4, 0x4FDFF252, 0xD1BB67F1, 0xA6BC5767, 0x3FB506DD, 0x48B2364B, + 0xD80D2BDA, 0xAF0A1B4C, 0x36034AF6, 0x41047A60, 0xDF60EFC3, 0xA867DF55, 0x316E8EEF, 0x4669BE79, + 0xCB61B38C, 0xBC66831A, 0x256FD2A0, 0x5268E236, 0xCC0C7795, 0xBB0B4703, 0x220216B9, 0x5505262F, + 0xC5BA3BBE, 0xB2BD0B28, 0x2BB45A92, 0x5CB36A04, 0xC2D7FFA7, 0xB5D0CF31, 0x2CD99E8B, 0x5BDEAE1D, + 0x9B64C2B0, 0xEC63F226, 0x756AA39C, 0x026D930A, 0x9C0906A9, 0xEB0E363F, 0x72076785, 0x05005713, + 0x95BF4A82, 0xE2B87A14, 0x7BB12BAE, 0x0CB61B38, 0x92D28E9B, 0xE5D5BE0D, 0x7CDCEFB7, 0x0BDBDF21, + 0x86D3D2D4, 0xF1D4E242, 0x68DDB3F8, 0x1FDA836E, 0x81BE16CD, 0xF6B9265B, 0x6FB077E1, 0x18B74777, + 0x88085AE6, 0xFF0F6A70, 0x66063BCA, 0x11010B5C, 0x8F659EFF, 0xF862AE69, 0x616BFFD3, 0x166CCF45, + 0xA00AE278, 0xD70DD2EE, 0x4E048354, 0x3903B3C2, 0xA7672661, 0xD06016F7, 0x4969474D, 0x3E6E77DB, + 0xAED16A4A, 0xD9D65ADC, 0x40DF0B66, 0x37D83BF0, 0xA9BCAE53, 0xDEBB9EC5, 0x47B2CF7F, 0x30B5FFE9, + 0xBDBDF21C, 0xCABAC28A, 0x53B39330, 0x24B4A3A6, 0xBAD03605, 0xCDD70693, 0x54DE5729, 0x23D967BF, + 0xB3667A2E, 0xC4614AB8, 0x5D681B02, 0x2A6F2B94, 0xB40BBE37, 0xC30C8EA1, 0x5A05DF1B, 0x2D02EF8D + }; + + unsigned int crc = ~0u; + int i; + for (i=0; i < len; ++i) + crc = (crc >> 8) ^ crc_table[buffer[i] ^ (crc & 0xff)]; + return ~crc; +} + +#define stbiw__wpng4(o,a,b,c,d) ((o)[0]=STBIW_UCHAR(a),(o)[1]=STBIW_UCHAR(b),(o)[2]=STBIW_UCHAR(c),(o)[3]=STBIW_UCHAR(d),(o)+=4) +#define stbiw__wp32(data,v) stbiw__wpng4(data, (v)>>24,(v)>>16,(v)>>8,(v)); +#define stbiw__wptag(data,s) stbiw__wpng4(data, s[0],s[1],s[2],s[3]) + +static void stbiw__wpcrc(unsigned char **data, int len) +{ + unsigned int crc = stbiw__crc32(*data - len - 4, len+4); + stbiw__wp32(*data, crc); +} + +static unsigned char stbiw__paeth(int a, int b, int c) +{ + int p = a + b - c, pa = abs(p-a), pb = abs(p-b), pc = abs(p-c); + if (pa <= pb && pa <= pc) return STBIW_UCHAR(a); + if (pb <= pc) return STBIW_UCHAR(b); + return STBIW_UCHAR(c); +} + +unsigned char *stbi_write_png_to_mem(unsigned char *pixels, int stride_bytes, int x, int y, int n, int *out_len) +{ + int ctype[5] = { -1, 0, 4, 2, 6 }; + unsigned char sig[8] = { 137,80,78,71,13,10,26,10 }; + unsigned char *out,*o, *filt, *zlib; + signed char *line_buffer; + int i,j,k,p,zlen; + + if (stride_bytes == 0) + stride_bytes = x * n; + + filt = (unsigned char *) STBIW_MALLOC((x*n+1) * y); if (!filt) return 0; + line_buffer = (signed char *) STBIW_MALLOC(x * n); if (!line_buffer) { STBIW_FREE(filt); return 0; } + for (j=0; j < y; ++j) { + static int mapping[] = { 0,1,2,3,4 }; + static int firstmap[] = { 0,1,0,5,6 }; + int *mymap = j ? mapping : firstmap; + int best = 0, bestval = 0x7fffffff; + for (p=0; p < 2; ++p) { + for (k= p?best:0; k < 5; ++k) { + int type = mymap[k],est=0; + unsigned char *z = pixels + stride_bytes*j; + for (i=0; i < n; ++i) + switch (type) { + case 0: line_buffer[i] = z[i]; break; + case 1: line_buffer[i] = z[i]; break; + case 2: line_buffer[i] = z[i] - z[i-stride_bytes]; break; + case 3: line_buffer[i] = z[i] - (z[i-stride_bytes]>>1); break; + case 4: line_buffer[i] = (signed char) (z[i] - stbiw__paeth(0,z[i-stride_bytes],0)); break; + case 5: line_buffer[i] = z[i]; break; + case 6: line_buffer[i] = z[i]; break; + } + for (i=n; i < x*n; ++i) { + switch (type) { + case 0: line_buffer[i] = z[i]; break; + case 1: line_buffer[i] = z[i] - z[i-n]; break; + case 2: line_buffer[i] = z[i] - z[i-stride_bytes]; break; + case 3: line_buffer[i] = z[i] - ((z[i-n] + z[i-stride_bytes])>>1); break; + case 4: line_buffer[i] = z[i] - stbiw__paeth(z[i-n], z[i-stride_bytes], z[i-stride_bytes-n]); break; + case 5: line_buffer[i] = z[i] - (z[i-n]>>1); break; + case 6: line_buffer[i] = z[i] - stbiw__paeth(z[i-n], 0,0); break; + } + } + if (p) break; + for (i=0; i < x*n; ++i) + est += abs((signed char) line_buffer[i]); + if (est < bestval) { bestval = est; best = k; } + } + } + // when we get here, best contains the filter type, and line_buffer contains the data + filt[j*(x*n+1)] = (unsigned char) best; + STBIW_MEMMOVE(filt+j*(x*n+1)+1, line_buffer, x*n); + } + STBIW_FREE(line_buffer); + zlib = stbi_zlib_compress(filt, y*( x*n+1), &zlen, 8); // increase 8 to get smaller but use more memory + STBIW_FREE(filt); + if (!zlib) return 0; + + // each tag requires 12 bytes of overhead + out = (unsigned char *) STBIW_MALLOC(8 + 12+13 + 12+zlen + 12); + if (!out) return 0; + *out_len = 8 + 12+13 + 12+zlen + 12; + + o=out; + STBIW_MEMMOVE(o,sig,8); o+= 8; + stbiw__wp32(o, 13); // header length + stbiw__wptag(o, "IHDR"); + stbiw__wp32(o, x); + stbiw__wp32(o, y); + *o++ = 8; + *o++ = STBIW_UCHAR(ctype[n]); + *o++ = 0; + *o++ = 0; + *o++ = 0; + stbiw__wpcrc(&o,13); + + stbiw__wp32(o, zlen); + stbiw__wptag(o, "IDAT"); + STBIW_MEMMOVE(o, zlib, zlen); + o += zlen; + STBIW_FREE(zlib); + stbiw__wpcrc(&o, zlen); + + stbiw__wp32(o,0); + stbiw__wptag(o, "IEND"); + stbiw__wpcrc(&o,0); + + STBIW_ASSERT(o == out + *out_len); + + return out; +} + +#ifndef STBI_WRITE_NO_STDIO +STBIWDEF int stbi_write_png(char const *filename, int x, int y, int comp, const void *data, int stride_bytes) +{ + FILE *f; + int len; + unsigned char *png = stbi_write_png_to_mem((unsigned char *) data, stride_bytes, x, y, comp, &len); + if (png == NULL) return 0; + f = fopen(filename, "wb"); + if (!f) { STBIW_FREE(png); return 0; } + fwrite(png, 1, len, f); + fclose(f); + STBIW_FREE(png); + return 1; +} +#endif + +STBIWDEF int stbi_write_png_to_func(stbi_write_func *func, void *context, int x, int y, int comp, const void *data, int stride_bytes) +{ + int len; + unsigned char *png = stbi_write_png_to_mem((unsigned char *) data, stride_bytes, x, y, comp, &len); + if (png == NULL) return 0; + func(context, png, len); + STBIW_FREE(png); + return 1; +} + +#endif // STB_IMAGE_WRITE_IMPLEMENTATION + +/* Revision history + 1.02 (2016-04-02) + avoid allocating large structures on the stack + 1.01 (2016-01-16) + STBIW_REALLOC_SIZED: support allocators with no realloc support + avoid race-condition in crc initialization + minor compile issues + 1.00 (2015-09-14) + installable file IO function + 0.99 (2015-09-13) + warning fixes; TGA rle support + 0.98 (2015-04-08) + added STBIW_MALLOC, STBIW_ASSERT etc + 0.97 (2015-01-18) + fixed HDR asserts, rewrote HDR rle logic + 0.96 (2015-01-17) + add HDR output + fix monochrome BMP + 0.95 (2014-08-17) + add monochrome TGA output + 0.94 (2014-05-31) + rename private functions to avoid conflicts with stb_image.h + 0.93 (2014-05-27) + warning fixes + 0.92 (2010-08-01) + casts to unsigned char to fix warnings + 0.91 (2010-07-17) + first public release + 0.90 first internal release +*/ diff --git a/modules/tinyexr/examples/cube2longlat/Makefile b/modules/tinyexr/examples/cube2longlat/Makefile new file mode 100644 index 0000000..6868dd9 --- /dev/null +++ b/modules/tinyexr/examples/cube2longlat/Makefile @@ -0,0 +1,28 @@ +INC_DIR = -I../../ -I../common -I ../../deps/miniz + +INCLUDES := ../../tinyexr.h +OBJS := miniz.o tinyexr.o cube2longlat.o + +CFLAGS := -fsanitize=address -O2 +CXXFLAGS := $(CFLAGS) -std=c++11 +LDFLAGS := -fsanitize=address + +TARGET=cube2longlat + +all: $(TARGET) + +$(TARGET): $(OBJS) + $(CXX) -o $(TARGET) $(LDFLAGS) $(OBJS) + +miniz.o: ../../deps/miniz/miniz.c + $(CC) $(CFLAGS) -c $(INC_DIR) $< + +tinyexr.o: ../../tinyexr.cc + $(CXX) $(CXXFLAGS) -c $(INC_DIR) $< + +cube2longlat.o: cube2longlat.cc + $(CXX) $(CXXFLAGS) -c $(INC_DIR) $< + +.PHONY: clean +clean: + rm -rf $(TARGET) $(OBJS) diff --git a/modules/tinyexr/examples/cube2longlat/README.md b/modules/tinyexr/examples/cube2longlat/README.md new file mode 100644 index 0000000..06a9e3c --- /dev/null +++ b/modules/tinyexr/examples/cube2longlat/README.md @@ -0,0 +1,46 @@ +# Simple HDR cubemap to longlat(longitude latitude. or known as equirectangular) converter. + +## Requirements + +* C++11 compiler + +## Coordinate definition. + +* Y-up +* Right-handed +* Center is -z + +## Usage + +Assume cubemap image is given by 6 images(6 faces). + +``` +$ ./cube2longlat px.exr nx.exr py.exr ny.exr pz.exr nz.exr 512 longlat.exr (phi_offset) +``` + +Optional `phi_offset` is used to add offset(by angle) to phi to rotate X and Z faces. + + +## Supported input image format + +* [ ] RGBM(Filament's RGBM encoding. Multiplier is 16, and gamma corrected) Implemented but not tested. +* [x] EXR + +## Supported output image format + +* [ ] RGBM(Filament's RGBM encoding. Multiplier is 16, and gamma corrected) Implemented but not tested. +* [x] EXR +* [x] RGBE + +## Note + +When you create cubemap using Filament's cmgen https://github.com/google/filament/tree/master/tools/cmgen , its generated cubemap images are mirrored by X direction. +Use `--mirror` when invoking `cmgen` if required. + +## TODO + +* Single cubemap image(cross layout) +* Better antialiasing +* theta offset +* Mirroring. + diff --git a/modules/tinyexr/examples/cube2longlat/cube2longlat.cc b/modules/tinyexr/examples/cube2longlat/cube2longlat.cc new file mode 100644 index 0000000..5a389c1 --- /dev/null +++ b/modules/tinyexr/examples/cube2longlat/cube2longlat.cc @@ -0,0 +1,470 @@ +#include "tinyexr.h" + +#define STB_IMAGE_IMPLEMENTATION +#include "stb_image.h" + +#define STB_IMAGE_WRITE_IMPLEMENTATION +#include "stb_image_write.h" + +#include +#include +#include +#include +#include + +// From Filament. +static inline void RGBMtoLinear(const float rgbm[4], float linear[3]) { + linear[0] = rgbm[0] * rgbm[3] * 16.0f; + linear[1] = rgbm[1] * rgbm[3] * 16.0f; + linear[2] = rgbm[2] * rgbm[3] * 16.0f; + + // Gamma to linear space + linear[0] = linear[0] * linear[0]; + linear[1] = linear[1] * linear[1]; + linear[2] = linear[2] * linear[2]; +} + +static inline void LinearToRGBM(const float linear[3], float rgbm[4]) { + rgbm[0] = linear[0]; + rgbm[1] = linear[1]; + rgbm[2] = linear[2]; + rgbm[3] = 1.0f; + + // Linear to gamma space + rgbm[0] = rgbm[0] * rgbm[0]; + rgbm[1] = rgbm[1] * rgbm[1]; + rgbm[2] = rgbm[2] * rgbm[2]; + + // Set the range + rgbm[0] /= 16.0f; + rgbm[1] /= 16.0f; + rgbm[2] /= 16.0f; + + float maxComponent = + std::max(std::max(rgbm[0], rgbm[1]), std::max(rgbm[2], 1e-6f)); + // Don't let M go below 1 in the [0..16] range + rgbm[3] = std::max(1.0f / 16.0f, std::min(maxComponent, 1.0f)); + rgbm[3] = std::ceil(rgbm[3] * 255.0f) / 255.0f; + + // saturate([0.0, 1.0]) + rgbm[0] = std::max(0.0f, std::min(1.0f, rgbm[0] / rgbm[3])); + rgbm[1] = std::max(0.0f, std::min(1.0f, rgbm[1] / rgbm[3])); + rgbm[2] = std::max(0.0f, std::min(1.0f, rgbm[2] / rgbm[3])); +} + +static std::string GetFileExtension(const std::string& filename) { + if (filename.find_last_of(".") != std::string::npos) + return filename.substr(filename.find_last_of(".") + 1); + return ""; +} + +struct Image { + int width; + int height; + std::vector data; +}; + +static bool LoadCubemaps(const std::array face_filenames, + std::array* output) { + for (size_t i = 0; i < 6; i++) { + std::string ext = GetFileExtension(face_filenames[i]); + + Image image; + + if ((ext.compare("exr") == 0) || (ext.compare("EXR") == 0)) { + int width, height; + float* rgba; + const char* err; + + int ret = + LoadEXR(&rgba, &width, &height, face_filenames[i].c_str(), &err); + if (ret != 0) { + if (err) { + std::cerr << "EXR load error: " << err << std::endl; + } else { + std::cerr << "EXR load error: code " << ret << std::endl; + } + return false; + } + + image.width = width; + image.height = height; + image.data.resize(width * height * 3); + + // RGBA -> RGB + for (size_t j = 0; j < size_t(width * height); j++) { + image.data[3 * j + 0] = rgba[4 * j + 0]; + image.data[3 * j + 1] = rgba[4 * j + 1]; + image.data[3 * j + 2] = rgba[4 * j + 2]; + } + + free(rgba); + + (*output)[i] = std::move(image); + + } else if ((ext.compare("rgbm") == 0) || (ext.compare("RGBM") == 0)) { + int width, height; + int n; + + unsigned char* data = stbi_load(face_filenames[i].c_str(), &width, + &height, &n, STBI_default); + + if (!data) { + std::cerr << "Failed to load file: " << face_filenames[i] << std::endl; + return false; + } + + if ((n != 4)) { + std::cerr << "Not a RGBM encoded image: " << face_filenames[i] + << std::endl; + return false; + } + + image.width = width; + image.height = height; + image.data.resize(size_t(width * height)); + + for (size_t i = 0; i < size_t(width * height); i++) { + float rgbm[4]; + // [0, 1.0] + rgbm[0] = data[4 * i + 0] / 255.0f; + rgbm[1] = data[4 * i + 1] / 255.0f; + rgbm[2] = data[4 * i + 2] / 255.0f; + rgbm[3] = data[4 * i + 3] / 255.0f; + + float linear[3]; + RGBMtoLinear(rgbm, linear); + + image.data[3 * i + 0] = linear[0]; + image.data[3 * i + 1] = linear[1]; + image.data[3 * i + 2] = linear[2]; + } + + (*output)[i] = std::move(image); + + } else { + std::cerr << "Unknown file extension : " << ext << std::endl; + return false; + } + std::cout << "Loaded " << face_filenames[i] << std::endl; + } + + return true; +} + +void convert_xyz_to_cube_uv(float x, float y, float z, int* index, float* u, + float* v) { + float absX = fabs(x); + float absY = fabs(y); + float absZ = fabs(z); + + int isXPositive = x > 0.0f ? 1 : 0; + int isYPositive = y > 0.0f ? 1 : 0; + int isZPositive = z > 0.0f ? 1 : 0; + + float maxAxis, uc, vc; + + // POSITIVE X + if (isXPositive && absX >= absY && absX >= absZ) { + // u (0 to 1) goes from +z to -z + // v (0 to 1) goes from -y to +y + maxAxis = absX; + uc = -z; + vc = y; + *index = 0; + } + // NEGATIVE X + if (!isXPositive && absX >= absY && absX >= absZ) { + // u (0 to 1) goes from -z to +z + // v (0 to 1) goes from -y to +y + maxAxis = absX; + uc = z; + vc = y; + *index = 1; + } + // POSITIVE Y + if (isYPositive && absY >= absX && absY >= absZ) { + // u (0 to 1) goes from -x to +x + // v (0 to 1) goes from +z to -z + maxAxis = absY; + uc = x; + vc = -z; + *index = 2; + } + // NEGATIVE Y + if (!isYPositive && absY >= absX && absY >= absZ) { + // u (0 to 1) goes from -x to +x + // v (0 to 1) goes from -z to +z + maxAxis = absY; + uc = x; + vc = z; + *index = 3; + } + // POSITIVE Z + if (isZPositive && (absZ >= absX) && (absZ >= absY)) { + // u (0 to 1) goes from -x to +x + // v (0 to 1) goes from -y to +y + maxAxis = absZ; + uc = x; + vc = y; + *index = 4; + } + // NEGATIVE Z + if (!isZPositive && (absZ >= absX) && (absZ >= absY)) { + // u (0 to 1) goes from +x to -x + // v (0 to 1) goes from -y to +y + maxAxis = absZ; + uc = -x; + vc = y; + *index = 5; + } + + // Convert range from -1 to 1 to 0 to 1 + *u = 0.5f * (uc / maxAxis + 1.0f); + *v = 0.5f * (vc / maxAxis + 1.0f); +} + +// +// Simple bilinear texture filtering. +// +static void SampleTexture(float* rgba, float u, float v, int width, int height, + int channels, const float* texels) { + float sx = std::floor(u); + float sy = std::floor(v); + + // Wrap mode = repeat + float uu = u - sx; + float vv = v - sy; + + // clamp + uu = std::max(uu, 0.0f); + uu = std::min(uu, 1.0f); + vv = std::max(vv, 0.0f); + vv = std::min(vv, 1.0f); + + float px = (width - 1) * uu; + float py = (height - 1) * vv; + + int x0 = std::max(0, std::min((int)px, (width - 1))); + int y0 = std::max(0, std::min((int)py, (height - 1))); + int x1 = std::max(0, std::min((x0 + 1), (width - 1))); + int y1 = std::max(0, std::min((y0 + 1), (height - 1))); + + float dx = px - (float)x0; + float dy = py - (float)y0; + + float w[4]; + + w[0] = (1.0f - dx) * (1.0 - dy); + w[1] = (1.0f - dx) * (dy); + w[2] = (dx) * (1.0 - dy); + w[3] = (dx) * (dy); + + int i00 = channels * (y0 * width + x0); + int i01 = channels * (y0 * width + x1); + int i10 = channels * (y1 * width + x0); + int i11 = channels * (y1 * width + x1); + + for (int i = 0; i < channels; i++) { + rgba[i] = w[0] * texels[i00 + i] + w[1] * texels[i10 + i] + + w[2] * texels[i01 + i] + w[3] * texels[i11 + i]; + } +} + +static void SampleCubemap(const std::array& cubemap_faces, + const float n[3], float col[3]) { + int face; + float u, v; + convert_xyz_to_cube_uv(n[0], n[1], n[2], &face, &u, &v); + + v = 1.0f - v; + + // std::cout << "face = " << face << std::endl; + + // TODO(syoyo): Do we better consider seams on the cubemap face border? + const Image& tex = cubemap_faces[face]; + + // std::cout << "n = " << n[0] << ", " << n[1] << ", " << n[2] << ", uv = " << + // u << ", " << v << std::endl; + + SampleTexture(col, u, v, tex.width, tex.height, /* RGB */ 3, tex.data.data()); + +// col[0] = u; +// col[1] = v; +// col[2] = 0.0f; +#if 0 + if (face == 0) { + col[0] = 1.0f; + col[1] = 0.0f; + col[2] = 0.0f; + } else if (face == 1) { + col[0] = 0.0f; + col[1] = 1.0f; + col[2] = 0.0f; + } else if (face == 2) { + col[0] = 0.0f; + col[1] = 0.0f; + col[2] = 1.0f; + } else if (face == 3) { + col[0] = 1.0f; + col[1] = 0.0f; + col[2] = 1.0f; + } else if (face == 4) { + col[0] = 0.0f; + col[1] = 1.0f; + col[2] = 1.0f; + } else if (face == 5) { + col[0] = 1.0f; + col[1] = 1.0f; + col[2] = 1.0f; + } +#endif +} + +static void CubemapToLonglat(const std::array& cubemap_faces, + const float phi_offset, /* in angle */ + const int width, Image* longlat) { + int height = width / 2; + + longlat->width = width; + longlat->height = height; + longlat->data.resize(size_t(width * height * 3)); // RGB + + const float kPI = 3.141592f; + + for (size_t y = 0; y < size_t(height); y++) { + float theta = ((y + 0.5f) / float(height)) * kPI; // [0, pi] + for (size_t x = 0; x < size_t(width); x++) { + float phi = ((x + 0.5f) / float(width)) * 2.0f * kPI; // [0, 2 pi] + + phi += (phi_offset) * kPI / 180.0f; + + float n[3]; + + // Y-up + n[0] = std::sin(theta) * std::cos(phi); + n[1] = std::cos(theta); + n[2] = -std::sin(theta) * std::sin(phi); + + float col[3]; + SampleCubemap(cubemap_faces, n, col); + + longlat->data[3 * size_t(y * width + x) + 0] = col[0]; + longlat->data[3 * size_t(y * width + x) + 1] = col[1]; + longlat->data[3 * size_t(y * width + x) + 2] = col[2]; + } + } +} + +static unsigned char ftouc(const float f) { + int i(f * 255.0f); + i = std::max(0, std::min(255, i)); + return static_cast(i); +} + +int main(int argc, char** argv) { + float phi_offset = 0.0f; + + if (argc < 9) { + printf( + "Usage: cube2longlat px.exr nx.exr py.exr ny.exr pz.exr nz.exr " + "output_width output.exr\n"); + exit(-1); + } + + std::array face_filenames; + + face_filenames[0] = argv[1]; + face_filenames[1] = argv[2]; + face_filenames[2] = argv[3]; + face_filenames[3] = argv[4]; + face_filenames[4] = argv[5]; + face_filenames[5] = argv[6]; + + int output_width = atoi(argv[7]); + + std::string output_filename = argv[8]; + + if (argc > 9) { + phi_offset = atof(argv[9]); + } + + std::array cubemaps; + + if (!LoadCubemaps(face_filenames, &cubemaps)) { + std::cerr << "Failed to load cubemap faces." << std::endl; + return EXIT_FAILURE; + } + + Image longlat; + + CubemapToLonglat(cubemaps, phi_offset, output_width, &longlat); + + { + std::string ext = GetFileExtension(output_filename); + if ((ext.compare("exr") == 0) || (ext.compare("EXR") == 0)) { + const char *err; + int ret = SaveEXR(longlat.data.data(), longlat.width, longlat.height, + /* RGB */ 3, /* fp16 */ 0, output_filename.c_str(), &err); + if (ret != TINYEXR_SUCCESS) { + if (err) { + std::cout << "Failed to save image as EXR. msg = " << err << ", code = " << ret << std::endl; + FreeEXRErrorMessage(err); + } else { + std::cout << "Failed to save image as EXR. code = " << ret << std::endl; + } + return EXIT_FAILURE; + } + } else if ((ext.compare("rgbm") == 0) || (ext.compare("RGBM") == 0)) { + std::vector rgbm_image; + + for (size_t j = 0; j < size_t(longlat.width * longlat.height); j++) { + float linear[3]; + linear[0] = longlat.data[3 * j + 0]; + linear[1] = longlat.data[3 * j + 1]; + linear[2] = longlat.data[3 * j + 2]; + + float rgbm[4]; + + LinearToRGBM(linear, rgbm); + + rgbm_image[4 * j + 0] = ftouc(rgbm[0]); + rgbm_image[4 * j + 1] = ftouc(rgbm[1]); + rgbm_image[4 * j + 2] = ftouc(rgbm[2]); + rgbm_image[4 * j + 3] = ftouc(rgbm[2]); + } + + // Save as PNG. + int ret = + stbi_write_png(output_filename.c_str(), longlat.width, longlat.height, + 4, rgbm_image.data(), longlat.width * 4); + + if (ret == 0) { + std::cerr << "Failed to save image as RGBM file : " << output_filename + << std::endl; + return EXIT_FAILURE; + } + + } else { + if ((ext.compare("hdr") == 0) || (ext.compare("HDR") == 0)) { + // ok + } else { + std::cout << "Unknown file extension. Interpret it as RGBE format : " + << ext << std::endl; + } + + int ret = stbi_write_hdr(output_filename.c_str(), longlat.width, + longlat.height, 3, longlat.data.data()); + + if (ret == 0) { + std::cerr << "Failed to save image as HDR file : " << output_filename + << std::endl; + return EXIT_FAILURE; + } + } + } + + std::cout << "Write " << output_filename << std::endl; + + return 0; +} diff --git a/modules/tinyexr/examples/deepview/Makefile b/modules/tinyexr/examples/deepview/Makefile new file mode 100644 index 0000000..b3dafd7 --- /dev/null +++ b/modules/tinyexr/examples/deepview/Makefile @@ -0,0 +1,2 @@ +all: + g++ -I ../../deps/miniz -o deepview -g -O2 main.cc trackball.cc ../../tinyexr.cc ../../deps/miniz/miniz.c -framework OpenGL -framework GLUT diff --git a/modules/tinyexr/examples/deepview/deepview_screencast.gif b/modules/tinyexr/examples/deepview/deepview_screencast.gif new file mode 100644 index 0000000000000000000000000000000000000000..6a9560efbf28025674b4f4ca482c7a64728c3c79 GIT binary patch literal 3790199 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

A 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

Fyohqr~HPi$)M@PoRJqO` z-(6QRq#5)HtQ~~N=V*?(xxVW5igsF38Soq%o$W?j9ieHVL-80nby}4Gst2?C7 z^Wgj$uLVt@WuBcde8RXEj2lC2NiFCt3HEODJ?X`-EW-UEXB(#PAvXIW7|0ACK$=y{ zUSQ;72&ZqCmHd2y-oPlntO;z_f~5i>U8uZ5Gd#P@=1*FZ;Ho*51pi4d$T`^0f~KypQUg zUYuCpo4mx4w@K%qaL!@Q`yXB>yskzpCgpC2&GHXv_&fZ+@zc3Y5dNNs`-faf7sC!zxQ zO$a6c@qMQ`aUVQmth(~fr(!ag7jNiYO&44~i`ee!>l7Aztj!0YZ)iSvpf==Q!1k-W zOiC2HrMbWKe8TYyuD|`Pv@jso! zioI90RsiC$7P|w;W%U;%e6e?Fqv^{seEJ?)l2rgdN0+gzNrp(!UcD=O{ZS^byH|EVPI^JlSlrP7Z zGh)`POsy(C|IN8Qqv`x}=j%Pn`l|ZXliu-_CZN6&eOrlM%mC}p03`)Llrjtva^lKq z#l^F?h9+-mS^(~hoAdSOZ-l|+37GC#{G<~84zJuCI8<^OwZSxGBVXk$~a8GypM7N#u?L6O$tNgBu`D#52gzK=Ex}|gdT0+O)Zz{FX(bk?F zhVwfF6`MgOlDFgL<`?ynS&aJ)?}QJ{Y<^31r+1-8*!it0KV~(I|3)uXKr0e&XlSh& zxqoQZ_x7$Omvb9#S1ilWA;>ZW&3m;_O$L2ix@wb0G z)lEWH2x9jtp(DYuYyLj4C|`9@^?`d_U%I^BIMge=5am$o2(#y^a#$Yf&!T|qYr+;Q zyyjCMzC>JR@qB!FR|2lzT&kUN*2@i^`H!rN)lz_(H-UfI9hpIj@fUE&OKDK));oOX zgAekPT1rGvO1K;yE&vIPM<9%}Hv#a5Lv4Wx+8T7LciodW-_@C@soU6+gi8_WfMf~+ zMz#}D(jS{WQB{J=&I2oQJ8b@XU?@-+K{=A4IDvp=^r;*bCZvEyb!0aR7oPJ#1asE0rbf{BHiqX*4TjEA(g<9d%PfS z*^Uw#1;yPS9LYr3GgEej$^X}j({wmlsgX)i3D1QhHhE$w@i4}3#)q^RFociRB(xH` z{LZj)Ak{Wpb#Y=Sk7NlwEQaiVV7}RNc=XIgLkC5~T-&K{MEp%Xp&7 zgAQ`8mHm6>n|bi%!l4(vCEya6`+lafN{PsRf3Z#1GYA9mn^f9lh*%0DRsbat5ENKl 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%0DI^8Ib&di$KTH&hhT?iLC?q*7N`;_cnfB9tS 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�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�RAk$}#r{LTg3lIToH-G%!@Mcf;t} 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%0AmiZL%xSv{DlCSVNSui0?ICKC9aTkt?R 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

;3a6^2r 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 z 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%0DD9?+ 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 `OW*Dl&r{t2|QAnd1Hl|v5-P#swn(=!DI)&=) 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%0AfTXSp%wE>gn@=!OJjWn8pjH$xKrqQiUX@(BA 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%0DEYIL5*J=ol<6O}#^NvFv{VdYlw!A-V?e_& zT5Ue>nS8LVMJjL<;KslKHq~x%J?=hZ7zVH7Zk`kNVAza|3gBZ3A`;K0=*U(xzMN1@ z+SQrsmO}4UR{#-!e5O4>2?^;jnNn-a z8PdrO!9coMIshFx2F#vp)^P2MjtkZ3c#-k|iI0wCpIIw4%Fjjwc*0awYyigq`0fjS zxCJ08zJB9=?)1?@wSB+^fc^DY;*~cb0j7C?JjQUV&7(j3e z0x4k;a#Om8n=zk#0hY5tN<-R=aIprt!5(?U7%scVvCFXflIy1S?>ghbqDmzJOvH`S zmz}XKGg6;SarYQoyJYF5NKm)*n5&T*oFfu%6%JPZa0*faEQR(JsvEOMCpV?aO!xEz zQ~&qYGiNvotuS-Grf^)t3Ym)Mdp^^eH}`4N)gk%Ji+Q-Q`r9cD4|@V4Lq~b!%q&x9|LtyWU$bYRkbVlBO{9C0wDK7@*_v;<%Ugw+YQfPqs8;LCeRxa^{mBd zx}uFagix#^s01*|OCyGgh}E0?*&tq!(w;jb=&F%}f&3pG$ zQEQ;e0kt-&h{ltenGEqmj~pT_s;IaL*ka_rlPUw39?T}{iX!-KslGegi-!rcLXoJ$ zp)r1b4q5QjnR%?Lmw3d-u9#EQ0+}Qq$c^}bpJ$l1aKyz6Kdl;8haZn}y`P*pji&(5 zG!eD?|qaQJAD0V^XFclHC-`=LpYaO zstYYN!PZ7poi_>ocuhZE~JHI z^F2^a>e5YP;avk=sQA<vsLPD_#iz0&d6+`PA^&gE-zdN#zJ zYXh~5#7~!3U`G9@cd){c)Au+({pjfOnQMC^a1U!G%~Wy8|sS3+zwM;??N%Yf88P`)BEkge0hF z+*&(%FzU#R?KgdUKzBD_gQBP1|vT!Ibpy6aBt( z|D;S!`#T<#m$LG;K^7AN!;c@nx_7aksI&a&q76D$0e07>8g~ym_e|KAqCZ#m{OwrK zQ#yYF4>&pgi$5aCeEFiYaT}VtBZDe8Ox}uo$t+~8hW>`MUg2$$Hha zkV?%4K%*Wwe<@8XMRVHkyO|;*-G&!52QWkZRC^D*mJ8@j+=oL|({Vs_TtzL#G*VQW z1Au;8g;9g5k117kSKsg)t+7 z7_49jU)^gkpv?#{{5^Cq8B=V$%MbzRcGUH6;h;Ba(12|(Du9H*0(vM8;XBSKg2e-c zdgbGG(ZZB+PNc^qim}?J(HlA~YNyP{8kXs$YP}Z%gcRUcSTwQJluV7m-Qr|Mf4hf@ zS^ex{N``kce5FCSK)>H4GTht@dsW}6bM={XB*xkP%)UQ5uI~leD$U`DN<(fsF9MNWzO%MIXS^6T9=R%X~tD) zL76IX_c66gY;D)G*qSPhQp})7g-ohUxlt5rv*SdSSziY$#w(?=-3YmKwZrmaQZY7qKC?=!k?~dg4)M z*o}eC!;Kli_J`hj07w;RJSvImz%#D^#aIWD0UPBbIUve7gCU9$suat%I<{`p8~(_> zJO+VHb4w{|JKZSEMnN;>%$=5e&Ntt+;-_42xzii|>TmO<2kL~Ld&P^rQ$%*W~j`vnrJ;3L%1dRGMJAdbB)_R`d0yyA0CzGrm zo}O)ZYVR1|bwaYQ5}+#ZjwwHv8n4Sokt!6C{+C_VYB@BcVFaO8Bxz4Ub9cGTn+(`q zoWZIuo@9ZX5UZV@AcqB-#X}E^ijH=dpkbY+?2NU{9xoP(#DLTm(6kGrsG2KA__h z5@7!5FnFj9q^i>JGs;^1*MZ@1o%+6Z)0Da9aG*)j5oHoUc1*Bi62#wZ!f1qjJSd5j zMn?&pm~^KQtJ?{!Q0B8Rm_}f#2n>us!xmFy01wb%sL*{00r4<|fV$jfhT}}61vPe= z38j|JF+&-)8qVxO&&9U7z1WNi)w(^$?iFijaQSxM-rv+0)Iq0{Ml5$qZY`EVoEV6+ ztGal7?G?I;V2oAJP+b~UotYR%Lv@inWu9^QfT${5fk;sc%778zu`Fcw2>V<(xf zZTo{aDN)TlR7;8eU6`Sj+)S#Umdk_sH zh(2uT)&?D>R9jBOr_=bl%w}CinvQfVv*AOSY__J3#K1m{W(!Q)XmgPWxV(Jhe6=jJ zKk;7xXak!j`5gf25 z2_FNi*zc);PDHc0OY^((@C_a(%np&+{I0UD%yl%2{bOsH(r8ju8uiS_IXMNDbpZK8 z(sp@BgB-JINIOX-*s)IMouP028$oAD9An&02>9pY6F7elPSa_{SxSNnhR>_O)N|F^ zK-~DbgsywOv(jdM$P83`lGsYD)H(eTkIbw65A8D;Ju(BqfV7&#fKHS-93MT;a|oF- zb+A$~{O;75to!M>Ata`&D1L2L!rJV_evdA4F3QKV+IHGS1SWq(qC|3)PZlpNC1OwQ z=YSy+)?jfu6*RA6^fM*%tf;!m4B>C3$p?`7c+{zG-IR9k#>V#zp6y955l4%(^TKSG zE!8`r=HWfw_!1G$#j^}`LQ>A*_&7mc*P1_$epF8DzV}=!4Q;ABqxR6!yJb#$IPV!v zcX;|o`xVIOdHi!h<;E_oOx7jq-92=tz|Y2RUCqw*Yc0if{*fS31#LXBc3~u{FM2?T zXeK7l`I*lHsYMecaQ(q>?aQR6QEjDYp1C7ohD}!~&4N^oF{`m7Pp0Nvzqd~Rr{d@L z9@cZ;NXA#*#WkGxTf?7vVmSaq3NkxD+hKvNB5hza#E_}inyGA^uWH?K?nBOoYVD9} zvy6sSa0b57A0cUp31*+^e%QHu*3Uj?Ei+hZ*gby;Wqhq)#WNGZ=GUir41^etN@fqc z%~lBvu{4Wq;YLDGZ~J-tvr2H}gEZ`eG-j2sHJnR zpElduSupZ#-it_JW?7+gB;T?2HE+e|`t|qxN@R9xpu;g!L8LCp9+Tx3O@$E;Z>!0V ze@1<1fB30HB4w3%M;^_dxA2xQU3ace(DI{&UW?Dn*}KYoTRg|z`&7*B4J+#GK92^( zg0sF6=7iGoFCq0xzD*)uW9J;QX_(KSP13%ch}{pw_j}za&5PzLlFWl&^uI0;eU6RZ z%HiB93XRhjbE2cMH9yl0hv|%-cXM*eq4*^0Q$H4wnj>}}NTlAHJn8uy8t_ANB^#cn zdEG5?A7@m2XI#l(K`P6z3&wa@yIR1E;Uh}nij;N~q`h3U)F;auM?p(v@3ZgLb`LsG z^W7i&SsjdstC6KiUNI19vvG$c>xB`X-mFMY@%ovg@P6mHVO~S-&o^k%y)YT~xV)^R z-&dCVVdoVO-)PiO0U>8DRisU@vKkytoSQJ|$vKu%mR(q$^|K&XS^(>Lz1Bmo2z#{5 zy_~o1d4w#J?Pp`2V3|Qf8RABYyB*UP!s$agt@4_bU zyR_$lPe#97XlW^3lw~rjf9~D1*()y9XE*4TtWaKU*tqRNFLTA>E6T;Y53+o>HKk2y z2kdIt`0BFMeEH(>)UU&{Iupb9Ic>KIaK89-Ag0hV%D$#)+EhsQSh9cb|CFwMw)nra zUHN@az}_3XCpzB0etL9j&(z<4d%ad{cz;RYxfMPz)HZ8d!$VIi@`XU(8JBQkaxe0k zgi9y|?QH&xguc}>R=#W?hU@e6j%7^ZAZ6RYfuJ_aDy8E}n-zX>>X_rBTYL4(58TS! zr}oxZmG7nfbFjc<{(piEW1IDq^1xvcWpO0NWWB!wbxrfJM94xJ`q|AG`XxqS6Bky7T9Y#}~3l0?h znBl0NMOo!IxYsEE=g^L)O%1QNOrtCq-WD9NV5Vfnz0@~{-u_K}d(`I0!qIXgvg-du zPjK$fr^cV3b^!GR*X!dqrtfwB+(y7$KHZ)9&*ayh|L4;6;<4^2lgWwy|MUdNA{IhJ z$jNNY2U!4qIK?l0Rzi<88WB!p)?BFxG$o$6ZKiFPd0!KwJF%qz+?)-{2Y=8oTw4l4 zA|Q%Zm?h<+Y|YhDh;a?M{TAetiOln-bA-BQEoWV*XE)+!N zh4@9$4DArm#SVFiqvZBFBwI&1BveIzrejiDu^D3*m8dVLbt32zP!Rw69k$JD%mSc< zt8lLY=!wYp?x>Qzy0L2!K%sQ!c-7`4~JkmKU=ha zBtIvV*6v#Td;gy5^g{1_sK=vrd<8&K^ zbc~j>{o8TVMs>T()-W%wuy;3#3M{|y!&6%bGa|Hz^Q#f!MwZT&juzFTy7Bvmr#vrj zJ?O5n_Pfrsm$x8_&5WV%5qGXN2|(T7nAhSW&1orObKOdhTh=FkFKK_G1B5pweYDJ_ zq^Jp|4XXA{7e!v2U0Z7hkDJZh|7YdHOi1Uw3zrj`<^Q#R+4U>AkY!Ms_HNm9lL?yn zOpm&p_igL5kaMd-7iP;AZJn-%(lQ(c?CXs~)3>PyHsFF|?GTKBzk6C2kEE(iE!8d0 z_N|(Z^X{%@W|~_1?M@)}Qgi0CvQRW5jGsmpA*BV;DY5SZY|~(&m|!GF4+MW`RGOL5 zv*yjTJQ>mVr~H0fLomm*8KjuHK?S!KB|}w8(7qn%^p5+o&wxsFuQH!H))T*(o{$$i z``qIr(bRJv5^6A5-mJfu1(M~vqTU5=JR$Cux(uZu%CW2W9^3pg=eDu4g|C8fbHYoL zba+I+wxn5zF91H&8E|@N@UYeBSjgu1$fp)S=Zbi|pcI)tceCPtqm8M>a>EQ#y6%lb z)U%E^pN{GIe12T(D=6?*W&9@$n9p=Lcen(uo8Q-(G*XqEdv(crQ=?v=*>lN>K$1}r z{_YTAU$<)A+xpY#koe=Ot&z+pJElKxJO5Ik>4RT+qtA(lM~<0<4UCeeA8H#QKs2B- z*>H{v8ABZ}nD30@6taL>6V225RcV4Ho0^kezIOWAHzMSKl`T`>S2pRH+-Bb^dt=|Y z?X#@p3!J|l^16I`TGhvm2hU$ozhPX>)j7RL<{U9dS>yQ7B7f|WRanoAe>NZOJ#>BL zpYYN5F&mFu(U7@|gZso<&V3d6PUbcXUj&z+^t`97>)av_k2%b|%;v9s53=dvm5y|# zwyY_4#-P8K-PYBI0d?Ttt-~qKW>3_u-)7LfQ!mVK0}=OcO@muZ z-(+OZ1nsMzZ&$a>Uo>(+D?4iF^wTHMmGdRvL^C0SR<=5>>MsIY7D=$c< z=gZ>b&5f@7bRIGP_vY=l`6G{SPmRAhlAZj4Fk@7%9d1E!{O*-%v5Rtf8(wsN)`NAZ zx6@?E%>}MO;=SuVoOMTctFwZiVU#bxw3B+6j>R^{!Q_t%LZ1OzSKe;NFzRL!8bbpg zw4<7yyGCi#?&wXcRt1d51_a6%{g(P;O6=JA(t{hO1h&7bZ_@iye6? z-dIewh+kwlp56lE_IAW;blXJ@G>J!=+u<^CF^HX|^$ydf5w#~ZR@;YcuGb|70V{e+ zoGLS<^y)o-b-^tP(4Zx5uT)EoX`TPMV{pMDww!1%g@d9T8P=Ziaz1JQK(M_NP%!2L3Co)m~u5X<7T3z#1IA*&BPj-nIEeext3ZO4tdVR8gS#&c;b zlHdo53kW2oK%g8z)ZUs^aTOinav;ZXp68wpXG8(sjnAQBAXBArb0Y9}A&gh0apQnt zaulN2svp1YAps8Kt&UE0x>y>*UY>jw@8rmd0|+Em?z5w5bd@gh;VvSh`K_UOeHj3U zMf^GHoFdCSwb>_ei)e=|zEVMH&J<}abe_k6m@Ft#L1F<=JOJH5_+(ywTYR35NbcWo zplz=FQt)aKja;Vob)NdZ8l^6 zmUZxs<3YRa@#|(5Dhcq0r(Tt+gZCG#RuThnM*_AzginSxVvt2PXcAUD8J%ZN1I@)H zwj#nX{`ALf3zL(FJyxAMP8@iO=au)WX_Vj*-+xk^0>we3xJ5eRoPmaYO{2NRWv@n7?!R4^vlILCRM}}4eJrBer-7$>hq>PAUM;z79;Csubf!uaik^T zpT`N)vRz-D!tXRgTX;~S;>cnVVS8uE-0e=8xG4b(+563}grOZa>Rh8i8RSg^e($>K zxOnJs1yBSSsGvmLM=-9jc$_e=htP(Ubm{_R7OZdpYO;tQ9!Gx|_GonraMYtrqRT(( zd)t<;Q|g^yRDn?_J*HTfIRXT4(uzm1wIE} zXgJ@j2BXy)d(|7}mzS-WsQPSxCvISO5$s7j+3j5#QB3|Q&DeDgQS0~C~6sR~xZ zlt1!mpH;D?YTx~1F60DfvZml>s9Y!cY#y7bxMIxVZq&nk&zzPmP@q1;pz+ye^SlAr-v7Wy$++XM(zh znOm2kI%~KBiAp)#79Mb|Z?WMu7fojYw`83_1!s;Ue-aSPx>`{V2l1-%4J$sSi(Rb! z_k{aia;U#RfIW61b}JBXJc5NHl?h0jD5+U*|NGbO9=?D(t-*~4_=jBbauT@pz`x4R z-}sGqt%KXfsW}RG<>QMVf>R+LAoc+cIRgX~rm8R3>t4%BzLqs!Gri(U8!B`l<$enG zmD)6TXkH6I;VNfm0SfQ4xe~Dg{#ky$Et%@DQ^f6qAnwu+TMe_of;=gMc0oxWDl8N7tpQ|c?}AiYi{!EJ1v1G--|aA5Q$Tx zo0|MqO>Rp@j_Y%qve1175+)*(yKn@7Vhda&TTHo)=lh7ZRZ2`a#I9Jc`wVLzDIbJ;vE z*5mrM13Qrb5dr}&+!c#1aT*AXH^kxfg6k?}@GWiID_*o}#qXQ0XPl${965I!=<)?B zoZBE;{ge316DJx4D4_C%C3nwe8ZCBzLK@wgT2*!St}}4g`PN-7WPsl453i5(fiXik zw$W)tqtp2*OQMG*=;D(q`RO#tIQn?S*1Ms3b4QPvu}Eet*WV?ss*BAT&TwYTji-e% zpAy#koCJcFr%p%86>H^Xzrs&PpPkFouo-V3J=kKD(r!?zdNMZ-ISCjkfa18AcciYm zLbp481@;qNPr2vMqyub}fJ+hfr&b0vI(skk#hm~gloZ<|)uko##g$jb4)@rm-z)|3 z5L0bB5dA+w1T*aH`N9;f_PcI2U=p@cmlwZvTr-x|<9NyiR1sIOz`N!5AgfU5P04*iVB#MzG=Koej?RZ0fFYbBS9X;i=yfBVT)t*5g&YK1MA)|EP;t zmQQ2h+5)J5LiWBf&jvekDWPUD`Zy;qCF)9crNxQohv4A$3G!+0+pT+gX^Ka~qq#b2nSq*++E1_noLxiwrY+d}C-Kg`@~AV7_;dpd=7Fv) zDo_zKi>5o*IzHvEhQ|+|nnztFXA1B}m6ZZ2TAQQ8dSKtsYol(r6+KCmFY#EkhOf-Z z2B_I`so3J7s9a!oD(i98Qw9%YphR8O9Uu8)@_*#MhJAwOn#c14W=YQeQJ;77K}{4S+yJ1(FHSAr z+TsUQTwbegifOOULs$Yspt&^YiZQhMZ!aFoK7SZA6KTxD+B{~s(Wa9>J>6cJ zfpqw9eKVR%qmhiy<>8Ai3>4IpzrI-iEGzLv?V%WoI;fENAc_VhC<)HVFX!?I>3@4J z9VV`7f_5k0y_$H4Ihr8@w90wfd)^LBx;RIEay`+P%alW*SPr7VfAL?>P`$?Uf#h?K z(=`UezjbO~@5Ox_?4GwS<8Mu04l{vl1GLQW#@n4!;`@4k+bbx+SX%u(TaI2i z=b=p;D23L_ix8H2;VRHXgxmeWZ7T51*Cf4S_)6LS>Hqd`9)Igh8#O)x=FEcDDIsR^ z%T@lT!WK&((8wLiZGO{F-7Otq$)SxjLc0lxrW(Qh0&(M{o+N0F>du`+XWBl{1~*Z> z9Im@ZFug}`NPe{PFu3~$6!7WrjSlE+LstLH#PvI$3k)=P@(*0qAfA7=94GZBLAok% z25-2g7#?|{!1LmB6~jLNzWwG$Fq;iA#h(oKJnB!~SHK++zP;jqCC^Y%k)YJv1P~Si z5RXP;(SV*8pas4ji-MHo*W^{sN2em58(@RXBjee2Y} zk${Uy^!E%$%o`U${<_u2_o#nN&wph0axi1}XW=YoxeUA}C&bI4O{_9IjKr0bI5nhDQEJjU zmrb3+_6lgT;wx_4C|Z4d+n9!fs#kyg=+w$S^u6bbL`q@1OvqY!Tj03tnG^mGY0Es6YN#v zE~+1{@-iKf=9F3k;Cs1~blCQ2hnx*b5rh>3(*AEf!T(vhey78~P2-{p?=&{dfZ4My z4{+Hnc{7~j#?=qZPwh8N;^gIhx%+gEp-qUTdq?uHu*CoH;ta#3wL(P16E|aQ0;yEw zC3}ZQLl}CSw+??eF#qE;Bb@rea;uoH%EguUWj8!39t@p_*yHMx?C1m%8Lx;Fhj;igPqRq zH#B%cO>Ag=Wx9H7xvb&nf}fvqyN(O~)v5&;i1?a}%AnzXcq&IWh9MA5LuXQUvz^2c zV^n;;?FKqA002&M8$Fj6A{6F!nfU;aj(eg1Wkb)>ND>~NynSTvy~sY7pk&lRE>2!mv!-;z|hKU%X9mX?C=3=X|5Y8oSQ%E zjm>z^e9Ff&6+m=L2J_t)w zF1tyls?A^Q6|akd1f5ps-RkDZTiI^U9vPc10Dljb^ z@h46RRE8){5LcmEOjIbiX3+7X`L3_81Eyn$xtqC=ts(g#TJiGiouzKHBA(Ygdn;

UyS1bf_%* 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 z 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 O|LqjfHpf=^=-wR@K8M`JQ&Tsc@>Q% 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