From 6fbf43d716d33c56aeb778180b1c6cdc4eb1b79d Mon Sep 17 00:00:00 2001
From: matthew <matthew@owens.tech>
Date: Tue, 21 Aug 2018 20:53:58 +0100
Subject: [PATCH] implemented texture and shader structures

---
 gl/main.c                            |   53 +-
 gl/shader.c                          |   16 +-
 gl/shader.h                          |   14 +-
 gl/shaders/tri/tri.frag              |    8 -
 gl/stb_image.c                       |    2 +
 gl/stb_image.h                       | 7462 ++++++++++++++++++++++++++
 gl/texture.c                         |   65 +
 gl/texture.h                         |    8 +
 shaders/tri/tri.frag                 |   13 +
 {gl/shaders => shaders}/tri/tri.vert |    3 +
 textures/awesomeface.png             |  Bin 0 -> 42447 bytes
 textures/wall.jpg                    |  Bin 0 -> 256989 bytes
 12 files changed, 7613 insertions(+), 31 deletions(-)
 delete mode 100644 gl/shaders/tri/tri.frag
 create mode 100644 gl/stb_image.c
 create mode 100644 gl/stb_image.h
 create mode 100644 gl/texture.c
 create mode 100644 gl/texture.h
 create mode 100644 shaders/tri/tri.frag
 rename {gl/shaders => shaders}/tri/tri.vert (72%)
 create mode 100644 textures/awesomeface.png
 create mode 100644 textures/wall.jpg

diff --git a/gl/main.c b/gl/main.c
index 611307e..d627dbc 100644
--- a/gl/main.c
+++ b/gl/main.c
@@ -4,7 +4,9 @@
 #include <GL/glew.h>
 #include <math.h>
 #include "shader.h"
+#include "texture.h"
 #include "err.h"
+#include <stb/stb_image.h>
 
 static SDL_Window *window = NULL;
 static SDL_GLContext *context = NULL;
@@ -14,11 +16,11 @@ static bool quit = false;
 static Uint32 itime;
 
 static float vertices[] = {
-	// positions		// colors
-	0.5f, 0.5f, 0.0f,	1.0f, 0.0f, 0.0f,	// top right
-	0.5f, -0.5f, 0.0f,	0.0f, 0.0f, 1.0f,	// bottom right
-	-0.5f, -0.5f, 0.0f,	0.0f, 0.0f, 1.0f,	// bottom left
-	-0.5f, 0.5f, 0.0f,	1.0f, 0.0f, 0.0f	// top left
+	// positions		// colours		 	// texture coords
+	0.5f, 0.5f, 0.0f,	1.0f, 0.0f, 0.0f,	1.0f, 1.0f, // top right
+	0.5f, -0.5f, 0.0f,	0.0f, 1.0f, 0.0f,	1.0f, 0.0f, // bottom right
+	-0.5f, -0.5f, 0.0f,	0.0f, 1.0f, 0.0f,	0.0f, 0.0f, // bottom left
+	-0.5f, 0.5f, 0.0f,	1.0f, 0.0f, 0.0f,	0.0f, 1.0f  // top left
 };
 
 static unsigned int indices[] = {
@@ -28,7 +30,9 @@ static unsigned int indices[] = {
 
 static unsigned int ebo;
 static unsigned int vbo, vao;
-Shader *shader = NULL;
+static float blendVal = 0.2f;
+static crpgShader *shader = NULL;
+crpgTexture *tex[2];
 
 static void initShapes()
 {
@@ -40,15 +44,31 @@ static void initShapes()
 	glBindVertexArray(vao);
 	glBindBuffer(GL_ARRAY_BUFFER, vbo);
 	glBufferData(GL_ARRAY_BUFFER, sizeof(vertices), vertices, GL_STATIC_DRAW);
-	glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 6*sizeof(float), (void*)0);
+	// position attribute
+	glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 8*sizeof(float), (void*)0);
 	glEnableVertexAttribArray(0); // param is the location of the attrib to enable.
-	glVertexAttribPointer(1, 3, GL_FLOAT, GL_FALSE, 6*sizeof(float), (void*)(3*sizeof(float)));
+	// colour attribute
+	glVertexAttribPointer(1, 3, GL_FLOAT, GL_FALSE, 8*sizeof(float), (void*)(3*sizeof(float)));
 	glEnableVertexAttribArray(1);
+	// texture attribute
+	glVertexAttribPointer(2, 2, GL_FLOAT, GL_FALSE, 8*sizeof(float), (void*)(6*sizeof(float)));
+	glEnableVertexAttribArray(2);
+
 	glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, ebo);
 	glBufferData(GL_ELEMENT_ARRAY_BUFFER, sizeof(indices), indices, GL_STATIC_DRAW);
 
 	glBindVertexArray(0);	// unbinding vao, since we're done
+
+	// loading our textures
+	stbi_set_flip_vertically_on_load(true);
+	tex[0] = crpgTextureNew("textures/wall.jpg");
+	tex[1] = crpgTextureNew("textures/awesomeface.png");
+
 	shader = crpgShaderNew("tri");
+	crpgShaderUse(shader);
+	crpgShaderSetInt(shader, "texture1", 0);
+	crpgShaderSetInt(shader, "texture2", 1);
+	crpgShaderSetFloat(shader, "blendVal", blendVal);
 }
 
 static bool init()
@@ -97,6 +117,16 @@ static void update()
 		if(e.type == SDL_QUIT){
 			quit = true;
 		}
+		if(e.type == SDL_KEYDOWN){
+			if(e.key.keysym.sym == SDLK_k){
+				blendVal += .2f;
+				crpgShaderSetFloat(shader, "blendVal", blendVal);
+			}
+			if(e.key.keysym.sym == SDLK_j){
+				blendVal -= .2f;
+				crpgShaderSetFloat(shader, "blendVal", blendVal);
+			}
+		}
 	}
 }
 
@@ -106,8 +136,15 @@ static void render()
 	glClear(GL_COLOR_BUFFER_BIT);
 
 	crpgShaderUse(shader);
+
+	glActiveTexture(GL_TEXTURE0);
+	glBindTexture(GL_TEXTURE_2D, crpgTextureGetID(tex[0]));
+	glActiveTexture(GL_TEXTURE1);
+	glBindTexture(GL_TEXTURE_2D, crpgTextureGetID(tex[1]));
+
 	glBindVertexArray(vao);
 	glDrawElements(GL_TRIANGLES, 6, GL_UNSIGNED_INT, 0);
+
 	SDL_GL_SwapWindow(window);
 }
 
diff --git a/gl/shader.c b/gl/shader.c
index cdc1825..cfcf4ce 100644
--- a/gl/shader.c
+++ b/gl/shader.c
@@ -17,7 +17,7 @@ static char *fileEnds[] = {
 	".tese"
 };
 
-static char *dirPath = "gl/shaders/";
+static char *dirPath = "shaders/";
 
 char *shaderLoadSrc(const char *name, enum ShaderType type)
 {
@@ -90,7 +90,7 @@ int getGlMacro(enum ShaderType st){
 	return 0;
 }
 
-Shader *crpgShaderNew(const char *shaderName){
+crpgShader *crpgShaderNew(const char *shaderName){
 	Shader_t *s = malloc(sizeof(Shader_t));
 	GLchar *src;
 	unsigned int shader;
@@ -117,32 +117,32 @@ Shader *crpgShaderNew(const char *shaderName){
 	}
 
 	glLinkProgram(s->id);
-	return (Shader *)s;
+	return (crpgShader *)s;
 }
 
-void crpgShaderFree(Shader *s)
+void crpgShaderFree(crpgShader *s)
 {
 	Shader_t *st = (Shader_t *)s;
 	glDeleteProgram(st->id);
 }
 
-void crpgShaderUse(Shader *s)
+void crpgShaderUse(crpgShader *s)
 {
 	Shader_t *st = (Shader_t *)s;
 	glUseProgram(st->id);
 }
 
-void crpgShaderSetBool(Shader *s, const char *name, bool val)
+void crpgShaderSetBool(crpgShader *s, const char *name, bool val)
 {
 	Shader_t *st = (Shader_t *)s;
 	glUniform1i(glGetUniformLocation(st->id, name), (int)val);
 }
-void crpgShaderSetInt(Shader *s, const char *name, int val)
+void crpgShaderSetInt(crpgShader *s, const char *name, int val)
 {
 	Shader_t *st = (Shader_t *)s;
 	glUniform1i(glGetUniformLocation(st->id, name), val);
 }
-void crpgShaderSetFloat(Shader *s, const char *name, float val)
+void crpgShaderSetFloat(crpgShader *s, const char *name, float val)
 {
 	Shader_t *st = (Shader_t *)s;
 	glUniform1f(glGetUniformLocation(st->id, name), val);
diff --git a/gl/shader.h b/gl/shader.h
index 7dad063..e98573b 100644
--- a/gl/shader.h
+++ b/gl/shader.h
@@ -12,12 +12,12 @@ enum ShaderType
 	CRPG_SHADER_LAST
 };
 
-typedef struct {} Shader;
+typedef struct {} crpgShader;
 
-Shader *crpgShaderNew(const char *shaderName);
-void crpgShaderUse(Shader *s);
-void crpgShaderSetBool(Shader *s, const char *name, bool val);
-void crpgShaderSetInt(Shader *s, const char *name, int val);
-void crpgShaderSetFloat(Shader *s, const char *name, float val);
-void crpgShaderFree(Shader *s);
+crpgShader *crpgShaderNew(const char *shaderName);
+void crpgShaderUse(crpgShader *s);
+void crpgShaderSetBool(crpgShader *s, const char *name, bool val);
+void crpgShaderSetInt(crpgShader *s, const char *name, int val);
+void crpgShaderSetFloat(crpgShader *s, const char *name, float val);
+void crpgShaderFree(crpgShader *s);
 #endif//SHADER_H
diff --git a/gl/shaders/tri/tri.frag b/gl/shaders/tri/tri.frag
deleted file mode 100644
index 567411c..0000000
--- a/gl/shaders/tri/tri.frag
+++ /dev/null
@@ -1,8 +0,0 @@
-#version 330 core
-out vec4 fragColor;
-in vec3 vCol;
-
-void main()
-{
-	fragColor = vec4(vCol, 1.0);
-}
diff --git a/gl/stb_image.c b/gl/stb_image.c
new file mode 100644
index 0000000..8ddfd1f
--- /dev/null
+++ b/gl/stb_image.c
@@ -0,0 +1,2 @@
+#define STB_IMAGE_IMPLEMENTATION
+#include "stb_image.h"
diff --git a/gl/stb_image.h b/gl/stb_image.h
new file mode 100644
index 0000000..d9c21bc
--- /dev/null
+++ b/gl/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 <stdio.h>
+#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 <stdarg.h>
+#include <stddef.h> // ptrdiff_t on osx
+#include <stdlib.h>
+#include <string.h>
+#include <limits.h>
+
+#if !defined(STBI_NO_LINEAR) || !defined(STBI_NO_HDR)
+#include <math.h>  // ldexp, pow
+#endif
+
+#ifndef STBI_NO_STDIO
+#include <stdio.h>
+#endif
+
+#ifndef STBI_ASSERT
+#include <assert.h>
+#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 <stdint.h>
+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 <emmintrin.h>
+
+#ifdef _MSC_VER
+
+#if _MSC_VER >= 1400  // not VC6
+#include <intrin.h> // __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 <arm_neon.h>
+// 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<<n) + 1
+static const int stbi__jbias[16] = {0,-1,-3,-7,-15,-31,-63,-127,-255,-511,-1023,-2047,-4095,-8191,-16383,-32767};
+
+// combined JPEG 'receive' and JPEG 'extend', since baseline
+// always extends everything it receives.
+stbi_inline static int stbi__extend_receive(stbi__jpeg *j, int n)
+{
+   unsigned int k;
+   int sgn;
+   if (j->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; y<height; ++y) {
+      int packet_idx;
+
+      for(packet_idx=0; packet_idx < num_packets; ++packet_idx) {
+         stbi__pic_packet *packet = &packets[packet_idx];
+         stbi_uc *dest = result+y*width*4;
+
+         switch (packet->type) {
+            default:
+               return stbi__errpuc("bad format","packet has bad compression type");
+
+            case 0: {//uncompressed
+               int x;
+
+               for(x=0;x<width;++x, dest+=4)
+                  if (!stbi__readval(s,packet->channel,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; i<count; ++i,dest+=4)
+                        stbi__copyval(packet->channel,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;i<count;++i, dest += 4)
+                        stbi__copyval(packet->channel,dest,value);
+                  } else { // Raw
+                     ++count;
+                     if (count>left) return stbi__errpuc("bad file","scanline overrun");
+
+                     for(i=0;i<count;++i, dest+=4)
+                        if (!stbi__readval(s,packet->channel,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/gl/texture.c b/gl/texture.c
new file mode 100644
index 0000000..69ed0d4
--- /dev/null
+++ b/gl/texture.c
@@ -0,0 +1,65 @@
+#include "texture.h"
+#include <stb/stb_image.h>
+#include <GL/glew.h>
+#include "err.h"
+#include <stdlib.h>
+
+typedef struct{
+	unsigned int ID;
+} Texture_t;
+
+crpgTexture *crpgTextureNew(const char *filename){
+	Texture_t *t = malloc(sizeof(Texture_t));
+	unsigned char *data = NULL;
+	int w, h, chan;
+
+	data = stbi_load(filename, &w, &h, &chan, 0);
+	if(data)
+	{
+		glGenTextures(1, &t->ID);
+		glBindTexture(GL_TEXTURE_2D, t->ID);
+		if(chan == 3){
+			glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, w, h, 0, GL_RGB, GL_UNSIGNED_BYTE, data);
+		} else if (chan == 4) {
+			glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, w, h, 0, GL_RGBA, GL_UNSIGNED_BYTE, data);
+		} else {
+			err_output("Error loading texture, images that are not formatted as\
+					RGB or RGBA are unsupported!");
+			err_output(stbi_failure_reason());
+
+			glBindTexture(GL_TEXTURE_2D, 0);
+			glDeleteTextures(1, &t->ID);
+			free(t);
+			return NULL;
+		}
+
+		glGenerateMipmap(GL_TEXTURE_2D);
+		stbi_image_free(data);
+
+	} else {
+		char out[128];
+		snprintf(out, sizeof(out), "failed to load %s texture!\n%s\n",
+				filename, stbi_failure_reason());
+		err_output(out);
+		free(t);
+		return NULL;
+	}
+	crpgTexture *tex = (crpgTexture *)t;
+	return tex;
+}
+
+unsigned int crpgTextureGetID(crpgTexture *t)
+{
+	Texture_t *tex = (Texture_t *)t;
+	if(t)
+		return tex->ID;
+	else return 0;
+}
+
+void crpgTextureFree(crpgTexture *t)
+{
+	Texture_t *tex = (Texture_t *)t;
+	glBindTexture(GL_TEXTURE_2D, 0);
+	glDeleteTextures(1, &tex->ID);
+	free(tex);
+}
diff --git a/gl/texture.h b/gl/texture.h
new file mode 100644
index 0000000..2cc5aa7
--- /dev/null
+++ b/gl/texture.h
@@ -0,0 +1,8 @@
+#ifndef TEXTURE_H
+#define TEXTURE_H
+
+typedef struct {} crpgTexture;
+crpgTexture *crpgTextureNew(const char *filename);
+unsigned int crpgTextureGetID(crpgTexture *t);
+void crpgTextureFree(crpgTexture *t);
+#endif//TEXTURE_H
diff --git a/shaders/tri/tri.frag b/shaders/tri/tri.frag
new file mode 100644
index 0000000..33744b0
--- /dev/null
+++ b/shaders/tri/tri.frag
@@ -0,0 +1,13 @@
+#version 330 core
+out vec4 fragColor;
+in vec3 vCol;
+in vec2 vTex;
+
+uniform sampler2D texture1;
+uniform sampler2D texture2;
+uniform float blendVal;
+
+void main()
+{
+	fragColor = mix(texture(texture1, vTex), texture(texture2, vTex), blendVal);
+}
diff --git a/gl/shaders/tri/tri.vert b/shaders/tri/tri.vert
similarity index 72%
rename from gl/shaders/tri/tri.vert
rename to shaders/tri/tri.vert
index f90acd7..7cd2afb 100644
--- a/gl/shaders/tri/tri.vert
+++ b/shaders/tri/tri.vert
@@ -1,11 +1,14 @@
 #version 330 core
 layout (location = 0) in vec3 aPos;
 layout (location = 1) in vec3 aCol;
+layout (location = 2) in vec2 aTex;
 
 out vec3 vCol;
+out vec2 vTex;
 
 void main()
 {
 	gl_Position = vec4(aPos, 1.0);
 	vCol = aCol;
+	vTex = aTex;
 }
diff --git a/textures/awesomeface.png b/textures/awesomeface.png
new file mode 100644
index 0000000000000000000000000000000000000000..abb680cb2510bbc4f4711d6ac6c5bf11c0dfffb9
GIT binary patch
literal 42447
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%0AGfbjfbac^B#0
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
Wg%y-U^C4t|;oZ2duTiRI9r}L`iWl1e

literal 0
HcmV?d00001

diff --git a/textures/wall.jpg b/textures/wall.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..49631987d967c1201286664f2d6032525f9fe1e8
GIT binary patch
literal 256989
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
KK#2GC*Z<k70+~|)

literal 0
HcmV?d00001

-- 
2.20.1