From: =?utf-8?q?Timo_R=C3=B6hling?= <timo@gaussglocke.de>
Date: Mon, 16 Nov 2020 19:13:34 +0100
Subject: Use zlib instead of embedded miniz

---
 tinyexr.h | 22 ++++++++++++++++++++--
 1 file changed, 20 insertions(+), 2 deletions(-)

diff --git a/tinyexr.h b/tinyexr.h
index a3e7b23..7f11587 100644
--- a/tinyexr.h
+++ b/tinyexr.h
@@ -91,7 +91,7 @@ extern "C" {
 // Use embedded miniz or not to decode ZIP format pixel. Linking with zlib
 // required if this flas is 0.
 #ifndef TINYEXR_USE_MINIZ
-#define TINYEXR_USE_MINIZ (1)
+#define TINYEXR_USE_MINIZ (0)
 #endif
 
 // Disable PIZ comporession when applying cpplint.
@@ -550,7 +550,25 @@ extern int LoadEXRFromMemory(float **out_rgba, int *width, int *height,
 #else
 //  Issue #46. Please include your own zlib-compatible API header before
 //  including `tinyexr.h`
-//#include "zlib.h"
+#include <zlib.h>
+
+// The MINIZ_LITTLE_ENDIAN macro is used below, so we replicate it here
+#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
+#endif
+
+#if defined(__sparcv9)
+// Big endian
+#else
+#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
+#endif
+#endif
+
 #endif
 
 #if TINYEXR_USE_ZFP
