diff --git a/_tools/code_generators/libs/png++/ChangeLog b/_tools/code_generators/libs/png++/ChangeLog
index ca3792187264a18d414072316b15aa153b0eb38d..e4433a94a837ad58cbd49d4a046e735deaba6962 100644
--- a/_tools/code_generators/libs/png++/ChangeLog
+++ b/_tools/code_generators/libs/png++/ChangeLog
@@ -1,3 +1,8 @@
+2009-06-21  Alex Shulgin
+
+	* config.hpp: Added support for FreeBSD (detect endianness).
+	Patch by <c.petrik.sosa@gmail.com>.
+
 png++-0.2.3	19 Oct 2008
 
 	Fixed numerous `already defined' errors due to require_color_space
diff --git a/_tools/code_generators/libs/png++/Doxyfile b/_tools/code_generators/libs/png++/Doxyfile
index 0db262f0470adc22bc3fd1ba4d749b5b8072562d..0692826bf28bd8523bb696ea4ba35a1af62f64f9 100644
--- a/_tools/code_generators/libs/png++/Doxyfile
+++ b/_tools/code_generators/libs/png++/Doxyfile
@@ -29,7 +29,7 @@ PROJECT_NAME = png++
 # number.  This could be handy for archiving the generated
 # documentation or if some version control system is used.
 
-PROJECT_NUMBER = 0.2.1
+PROJECT_NUMBER = $(VERSION)
 
 # The OUTPUT_DIRECTORY tag is used to specify the (relative or
 # absolute) base path where the generated documentation will be put.
diff --git a/_tools/code_generators/libs/png++/Makefile b/_tools/code_generators/libs/png++/Makefile
index 2accfbec969807c465e3dbb455ec7fe8f79a17bd..3cc0a11902d6e66f072070b0cd63be1cc7b6f5ef 100644
--- a/_tools/code_generators/libs/png++/Makefile
+++ b/_tools/code_generators/libs/png++/Makefile
@@ -29,34 +29,18 @@
 # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 #
 
-# don't forget to update version before releasing!
-version := 0.2.3
-
-ifndef PREFIX
-PREFIX := /usr/local
-endif
-
-ifdef MINGW
-bin_suffix := .exe
-endif
+PNGPP := .
 
-make_cflags := -Wall $(CFLAGS) -I$(PREFIX)/include
-make_ldflags := $(LDFLAGS) -L$(PREFIX)/lib
-
-ifndef NDEBUG
-make_cflags := $(make_cflags) -g
-make_ldflags := $(make_ldflags) -g
-endif
-
-ifndef LIBPNG_CONFIG
-LIBPNG_CONFIG := libpng-config
-endif
+# don't forget to update version before releasing!
+version := 0.2.9
 
-build_files := Makefile Doxyfile
+build_files := common.mk Makefile Doxyfile
 doc_files := AUTHORS BUGS ChangeLog COPYING INSTALL NEWS README TODO
-headers := *.hpp
+headers := $(wildcard *.hpp)
 sources :=
 
+include common.mk
+
 dist_dir := png++-$(version)
 dist_package := png++-$(version).tar.gz
 dist_files := $(build_files) $(doc_files) \
@@ -67,9 +51,14 @@ all: examples
 
 install: install-headers install-docs
 
+uninstall: uninstall-headers uninstall-docs
+
 install-headers:
 	mkdir -p $(PREFIX)/include/png++
-	cp *.hpp $(PREFIX)/include/png++
+	cp $(headers) $(PREFIX)/include/png++
+
+uninstall-headers:
+	rm -rf $(PREFIX)/include/png++
 
 dist: dist-mkdir dist-copy-files dist-package
 
@@ -90,27 +79,24 @@ dist-package:
 	rm -rf $(dist_dir)
 
 clean: test-clean examples-clean
-#	rm -f $(targets)
 
 thorough-clean: clean docs-clean
 
 check: test
 
 test:
-	$(MAKE) test -C test $(MAKEFLAGS) PNGPP=`pwd`
+	$(MAKE) test -C test $(MAKEFLAGS)
 
 test-clean:
 	$(MAKE) clean -C test $(MAKEFLAGS)
 
-test-compile-headers: *.hpp
-	for i in *.hpp; do \
-		echo '#include "'$$i'"' >$$i.cpp \
-		&& g++ -c $$i.cpp $(make_cflags) `$(LIBPNG_CONFIG) --cflags`; \
-	done
-	rm -f *.hpp.o *.hpp.cpp
+test-compile-headers: $(headers:%.hpp=%.hpp.o)
+
+%.hpp.o:
+	$(CXX) -c $(@:%.hpp.o=%.hpp) -o /dev/null $(make_cflags)
 
 docs:
-	doxygen
+	VERSION=$(version) doxygen
 
 docs-clean:
 	rm -rf doc
@@ -126,15 +112,18 @@ install-docs:
 		[ -d png++ ] || ln -s $(dist_dir) png++; \
 	fi
 
+uninstall-docs:
+	rm -rf $(PREFIX)/share/doc/$(dist_dir) $(PREFIX)/share/doc/png++
+
 examples:
 	$(MAKE) -C example $(MAKEFLAGS)
 
 examples-clean:
 	$(MAKE) clean -C example $(MAKEFLAGS)
 
-.PHONY: all install \
+.PHONY: install \
   dist dist-mkdir dist-copy-files dist-package \
-  clean thorough-clean \
+  thorough-clean \
   check test test-clean test-compile-headers \
   docs docs-clean \
   examples examples-clean
diff --git a/_tools/code_generators/libs/png++/NEWS b/_tools/code_generators/libs/png++/NEWS
index 74b228b9f04d1fa065e82945aa63f18daa3db075..cc006fbf5eb5ddf9c1c0008b0cdfee38ac812f8e 100644
--- a/_tools/code_generators/libs/png++/NEWS
+++ b/_tools/code_generators/libs/png++/NEWS
@@ -1,3 +1,21 @@
+Version 0.2.7:
+
+  - Added solid_pixel_buffer (patch by Andrey Potapov).
+
+  - Fixed some compilation problems on Win32.
+
+Version 0.2.5:
+
+  - Fixed compatibility with newer libpng versions (>= 1.4)
+
+  - Fixed compilation on FreeBSD.
+
+  - Fixed tRNS handling with transformations.
+
+  - Added IO transformation debugging facility.
+
+  - Better organized test suite.
+
 Version 0.2.3:
 
   - Fixed numerous `already defined' errors due to require_color_space
diff --git a/_tools/code_generators/libs/png++/common.mk b/_tools/code_generators/libs/png++/common.mk
new file mode 100644
index 0000000000000000000000000000000000000000..2886324d80cd629a1ff9686ced0fbf933bc8b700
--- /dev/null
+++ b/_tools/code_generators/libs/png++/common.mk
@@ -0,0 +1,47 @@
+ifndef PREFIX
+PREFIX := /usr/local
+endif
+
+ifdef MINGW
+bin_suffix := .exe
+endif
+
+ifndef CXX
+CXX := g++
+endif
+
+ifndef LIBPNG_CONFIG
+LIBPNG_CONFIG := libpng-config
+endif
+
+make_cflags := -Wall -I$(PNGPP) -I$(PREFIX)/include $(shell $(LIBPNG_CONFIG) --cflags) $(CFLAGS)
+make_ldflags := -L$(PREFIX)/lib $(shell $(LIBPNG_CONFIG) --ldflags) $(LDFLAGS)
+
+ifndef NDEBUG
+make_cflags := $(make_cflags) -g
+make_ldflags := $(make_ldflags) -g
+endif
+
+deps := $(sources:.cpp=.dep)
+objects := $(sources:.cpp=.o)
+bins := $(sources:.cpp=$(bin_suffix))
+
+all: $(deps) $(bins)
+
+%$(bin_suffix): %.o
+	$(CXX) -o $@ $< $(make_ldflags)
+
+%.o: %.cpp
+	$(CXX) -c -o $@ $< $(make_cflags)
+
+%.dep: %.cpp
+	$(CXX) -M $(CPPFLAGS) $(make_cflags) $< -o- | \
+	  sed 's/\($*\)\.o[ :]*/\1.o $@ : /g' > $@
+
+clean: clean-deps
+	rm -f $(bins) $(objects)
+
+clean-deps:
+	rm -f $(deps)
+
+.PHONY: all clean clean-deps
diff --git a/_tools/code_generators/libs/png++/config.hpp b/_tools/code_generators/libs/png++/config.hpp
index 0604e42ca3d4e6f1cd0c1302c562bc2fc322e3ae..4a317b29cfa564356209bd4956648ddcf5415b34 100644
--- a/_tools/code_generators/libs/png++/config.hpp
+++ b/_tools/code_generators/libs/png++/config.hpp
@@ -31,12 +31,14 @@
 #ifndef PNGPP_CONFIG_HPP_INCLUDED
 #define PNGPP_CONFIG_HPP_INCLUDED
 
+#include <stdlib.h>
+
 // Endianness test
 #if defined(__GLIBC__)
 
 #include <endian.h>
 
-#elif defined(__WIN32)
+#elif defined(_WIN32)
 
 #define	__LITTLE_ENDIAN	1234
 #define	__BIG_ENDIAN	4321
@@ -47,10 +49,50 @@
 #include <machine/endian.h>
 #include <sys/_endian.h>
 
+#elif defined(__FreeBSD__)
+
+#include <machine/endian.h>
+#include <sys/endian.h>
+
+#elif defined(__sun)
+
+#include <sys/isa_defs.h>
+
 #else
 
 #error Byte-order could not be detected.
 
 #endif
 
+// Determine C++11 features
+#if defined(__GNUC__) && defined(__GNUC_MINOR__) && defined(__GNUC_PATCHLEVEL__) && defined(__GXX_EXPERIMENTAL_CXX0X__)
+
+#define PNGPP_GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
+// gcc c++11 support list
+// http://gcc.gnu.org/projects/cxx0x.html
+
+// gcc supports static_assert since 4.3
+#if (PNGPP_GCC_VERSION >= 40300)
+#define PNGPP_HAS_STATIC_ASSERT
+#endif
+
+// gcc supports std::move since 4.6
+#if (PNGPP_GCC_VERSION >= 40600)
+#define PNGPP_HAS_STD_MOVE
+#endif
+
+#undef PNGPP_GCC_VERSION
+
+#elif defined(_MSC_VER)
+
+// MS Visual C++ compiler supports static_assert and std::move since VS2010
+// http://blogs.msdn.com/b/vcblog/archive/2011/09/12/10209291.aspx
+#if (_MSC_VER >= 1600)
+#define PNGPP_HAS_STATIC_ASSERT
+#define PNGPP_HAS_STD_MOVE
+#endif
+
+#endif
+
+
 #endif // PNGPP_CONFIG_HPP_INCLUDED
diff --git a/_tools/code_generators/libs/png++/consumer.hpp b/_tools/code_generators/libs/png++/consumer.hpp
index dac63746f8248dfd0ff8c7c0ded73446f864aa16..a3ff9ecc97213f8a7dcd97bc318fb3026a3d40c5 100644
--- a/_tools/code_generators/libs/png++/consumer.hpp
+++ b/_tools/code_generators/libs/png++/consumer.hpp
@@ -68,7 +68,7 @@ namespace png
      * as follows:
      *
      * \code
-     * png::byte* get_next_row(size_t pos);
+     * png::byte* get_next_row(png::uint_32 pos);
      * void reset(size_t pass);
      * \endcode
      *
@@ -167,8 +167,7 @@ namespace png
 #ifdef PNG_READ_SWAP_SUPPORTED
                 rd.set_swap();
 #else
-                throw error("Cannot read 16-bit image:"
-                            " recompile with PNG_READ_SWAP_SUPPORTED.");
+                throw error("Cannot read 16-bit image: recompile with PNG_READ_SWAP_SUPPORTED.");
 #endif
             }
 #endif
@@ -180,8 +179,7 @@ namespace png
 #ifdef PNG_READ_INTERLACING_SUPPORTED
                 pass_count = rd.set_interlace_handling();
 #else
-                throw error("Cannot read interlaced image:"
-                            " interlace handling disabled.");
+                throw error("Cannot read interlaced image: interlace handling disabled.");
 #endif
             }
             else
@@ -244,7 +242,7 @@ namespace png
             {
                 pixel_con->reset(pass);
 
-                for (size_t pos = 0; pos < this->get_info().get_height(); ++pos)
+                for (uint_32 pos = 0; pos < this->get_info().get_height(); ++pos)
                 {
                     rd.read_row(pixel_con->get_next_row(pos));
                 }
diff --git a/_tools/code_generators/libs/png++/convert_color_space.hpp b/_tools/code_generators/libs/png++/convert_color_space.hpp
index 796a903980f1dfca3cf3d018eba411e161b216c0..19b25432f701b997d5bd88911a28d8d540fcd218 100644
--- a/_tools/code_generators/libs/png++/convert_color_space.hpp
+++ b/_tools/code_generators/libs/png++/convert_color_space.hpp
@@ -74,26 +74,34 @@ namespace png
             static void expand_8_to_16(png_struct*, png_row_info* row_info,
                                        byte* row)
             {
-//                dump_row(row, row_info->rowbytes);
-
-                for (size_t i = row_info->rowbytes; i-- > 0; )
+#ifdef DEBUG_EXPAND_8_16
+                printf("row: width=%d, bytes=%d, channels=%d\n",
+                       row_info->width, row_info->rowbytes, row_info->channels);
+                printf("<= ");
+                dump_row(row, row_info->rowbytes);
+#endif
+                for (uint_32 i = row_info->rowbytes; i-- > 0; )
                 {
-                    row[i*2 + 1] = row[i];
-                    row[i*2 + 0] = 0;
+                    row[2*i + 1] = row[i];
+                    row[2*i + 0] = 0;
                 }
-
-//                dump_row(row, 2*row_info->rowbytes);
+#ifdef DEBUG_EXPAND_8_16
+                printf("=> ");
+                dump_row(row, 2*row_info->rowbytes);
+#endif
             }
 
-            static void dump_row(byte const* row, size_t width)
+#ifdef DEBUG_EXPAND_8_16
+            static void dump_row(byte const* row, uint_32 width)
             {
                 printf("{");
-                for (size_t i = 0; i < width; ++i)
+                for (uint_32 i = 0; i < width; ++i)
                 {
                     printf(" %02x,", row[i]);
                 }
                 printf(" }\n");
             }
+#endif
 
             template< class reader >
             static void handle_16(reader& io)
@@ -103,8 +111,7 @@ namespace png
 #ifdef PNG_READ_16_TO_8_SUPPORTED
                     io.set_strip_16();
 #else
-                    throw error("expected 8-bit data but found 16-bit;"
-                                " recompile with PNG_READ_16_TO_8_SUPPORTED");
+                    throw error("expected 8-bit data but found 16-bit; recompile with PNG_READ_16_TO_8_SUPPORTED");
 #endif
                 }
                 if (io.get_bit_depth() != 16 && traits::get_bit_depth() == 16)
@@ -114,9 +121,7 @@ namespace png
                     io.set_user_transform_info(NULL, 16,
                                                traits::get_channels());
 #else
-                    throw error("expected 16-bit data but found 8-bit;"
-                                " recompile with"
-                                " PNG_READ_USER_TRANSFORM_SUPPORTED");
+                    throw error("expected 16-bit data but found 8-bit; recompile with PNG_READ_USER_TRANSFORM_SUPPORTED");
 #endif
                 }
             }
@@ -124,23 +129,21 @@ namespace png
             template< class reader >
             static void handle_alpha(reader& io, uint_32 filler)
             {
-                bool src_alpha = io.get_color_type() & color_mask_alpha;
+                bool src_alpha = (io.get_color_type() & color_mask_alpha);
+                bool src_tRNS = io.has_chunk(chunk_tRNS);
                 bool dst_alpha = traits::get_color_type() & color_mask_alpha;
-                if (src_alpha && !dst_alpha)
+                if ((src_alpha || src_tRNS) && !dst_alpha)
                 {
 #ifdef PNG_READ_STRIP_ALPHA_SUPPORTED
                     io.set_strip_alpha();
 #else
-                    throw error("alpha channel unexpected;"
-                                " recompile with"
-                                " PNG_READ_STRIP_ALPHA_SUPPORTED");
+                    throw error("alpha channel unexpected; recompile with PNG_READ_STRIP_ALPHA_SUPPORTED");
 #endif
                 }
                 if (!src_alpha && dst_alpha)
                 {
 #if defined(PNG_tRNS_SUPPORTED) && defined(PNG_READ_EXPAND_SUPPORTED)
-                    if ((io.get_color_type() & color_mask_palette)
-                        && io.has_chunk(chunk_tRNS))
+                    if (src_tRNS)
                     {
                         io.set_tRNS_to_alpha();
                         return;
@@ -149,9 +152,7 @@ namespace png
 #if defined(PNG_READ_FILLER_SUPPORTED) && !defined(PNG_1_0_X)
                     io.set_add_alpha(filler, filler_after);
 #else
-                    throw error("expected alpha channel but none found;"
-                                " recompile with PNG_READ_FILLER_SUPPORTED"
-                                " and be sure to use libpng > 1.0.x");
+                    throw error("expected alpha channel but none found; recompile with PNG_READ_FILLER_SUPPORTED and be sure to use libpng > 1.0.x");
 #endif
                 }
             }
@@ -159,19 +160,36 @@ namespace png
             template< class reader >
             static void handle_palette(reader& io)
             {
-                if (io.get_color_type() == color_type_palette)
+                bool src_palette =
+                    io.get_color_type() == color_type_palette;
+                bool dst_palette =
+                    traits::get_color_type() == color_type_palette;
+                if (src_palette && !dst_palette)
                 {
 #ifdef PNG_READ_EXPAND_SUPPORTED
                     io.set_palette_to_rgb();
-
-                    if (traits::get_color_type() != color_type_palette)
-                    {
-                        io.get_info().drop_palette();
-                    }
+                    io.get_info().drop_palette();
 #else
-                    throw error("indexed colors unexpected;"
-                                " recompile with PNG_READ_EXPAND_SUPPORTED");
+                    throw error("indexed colors unexpected; recompile with PNG_READ_EXPAND_SUPPORTED");
+#endif
+                }
+                else if (!src_palette && dst_palette)
+                {
+                    throw error("conversion to indexed colors is unsupported (yet)");
+                }
+                else if (src_palette && dst_palette
+                         && io.get_bit_depth() != traits::get_bit_depth())
+                {
+                    if (traits::get_bit_depth() == 8)
+                    {
+#ifdef PNG_READ_PACK_SUPPORTED
+                        io.set_packing();
 #endif
+                    }
+                    else
+                    {
+                        throw error("cannot convert to indexed colors with bit-depth < 8");
+                    }
                 }
             }
 
@@ -186,9 +204,7 @@ namespace png
 #ifdef PNG_READ_RGB_TO_GRAY_SUPPORTED
                     io.set_rgb_to_gray(/*rgb_to_gray_error*/);
 #else
-                    throw error("grayscale data expected;"
-                                " recompile with"
-                                " PNG_READ_RGB_TO_GRAY_SUPPORTED");
+                    throw error("grayscale data expected; recompile with PNG_READ_RGB_TO_GRAY_SUPPORTED");
 #endif
                 }
                 if (!src_rgb && dst_rgb)
@@ -196,9 +212,7 @@ namespace png
 #ifdef PNG_READ_GRAY_TO_RGB_SUPPORTED
                     io.set_gray_to_rgb();
 #else
-                    throw error("expected RGB data;"
-                                " recompile with"
-                                " PNG_READ_GRAY_TO_RGB_SUPPORTED");
+                    throw error("expected RGB data; recompile with PNG_READ_GRAY_TO_RGB_SUPPORTED");
 #endif
                 }
             }
@@ -214,9 +228,7 @@ namespace png
 #ifdef PNG_READ_EXPAND_SUPPORTED
                         io.set_gray_1_2_4_to_8();
 #else
-                        throw error("convert_color_space: expected 8-bit data;"
-                                    " recompile with"
-                                    " PNG_READ_EXPAND_SUPPORTED");
+                        throw error("convert_color_space: expected 8-bit data; recompile with PNG_READ_EXPAND_SUPPORTED");
 #endif
                     }
                 }
@@ -325,6 +337,16 @@ namespace png
     {
     };
 
+    /**
+     * \brief Converts %image %color space.  A specialization for
+     * index_pixel type.
+     */
+    template<>
+    struct convert_color_space< index_pixel >
+        : detail::convert_color_space_impl< index_pixel >
+    {
+    };
+
 } // namespace png
 
 #endif // PNGPP_CONVERT_COLOR_SPACE_HPP_INCLUDED
diff --git a/_tools/code_generators/libs/png++/error.hpp b/_tools/code_generators/libs/png++/error.hpp
index 971032f310454d9fd3bdc9bf308379f6240e7a56..834cf1b3a9e84997b21ec685f7e401cc9810964b 100644
--- a/_tools/code_generators/libs/png++/error.hpp
+++ b/_tools/code_generators/libs/png++/error.hpp
@@ -31,9 +31,21 @@
 #ifndef PNGPP_ERROR_HPP_INCLUDED
 #define PNGPP_ERROR_HPP_INCLUDED
 
+/* check if we have strerror_s or strerror_r, prefer the former which is C11 std */
+#ifdef __STDC_LIB_EXT1__
+#define __STDC_WANT_LIB_EXT1__ 1
+#include <string.h>
+
+#define HAVE_STRERROR_S 1
+#else
+#undef  HAVE_STRERROR_S
+#endif
+
+#include <string>
 #include <stdexcept>
 #include <cerrno>
 #include <cstdlib>
+#include <cstring>
 
 namespace png
 {
@@ -73,10 +85,32 @@ namespace png
          * \param  message  error description
          * \param  error    error number
          */
-        explicit std_error(std::string const& message, int error = errno)
-            : std::runtime_error((message + ": ") + strerror(error))
+        explicit std_error(std::string const& message, int errnum = errno)
+            : std::runtime_error((message + ": ") + thread_safe_strerror(errnum))
         {
         }
+
+    protected:
+        static std::string thread_safe_strerror(int errnum)
+        {
+#define ERRBUF_SIZE 512
+            char buf[ERRBUF_SIZE] = { 0 };
+
+#ifdef HAVE_STRERROR_S
+            strerror_s(buf, ERRBUF_SIZE, errnum);
+            return std::string(buf);
+#else
+#if (_POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600) && !_GNU_SOURCE
+            strerror_r(errnum, buf, ERRBUF_SIZE);
+            return std::string(buf);
+#else
+            /* GNU variant can return a pointer to static buffer instead of buf */
+            return std::string(strerror_r(errnum, buf, ERRBUF_SIZE));
+#endif
+#endif
+
+#undef ERRBUF_SIZE
+        }
     };
 
 } // namespace png
diff --git a/_tools/code_generators/libs/png++/example/Makefile b/_tools/code_generators/libs/png++/example/Makefile
index 1cbb0a2f4f4bc6e63850952dcaa4edd10e1ddaab..3c209dc0c58d7d2f989584ceee8a563d1293ba6d 100644
--- a/_tools/code_generators/libs/png++/example/Makefile
+++ b/_tools/code_generators/libs/png++/example/Makefile
@@ -28,55 +28,18 @@
 # NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 #
-ifndef PREFIX
-PREFIX := /usr/local
-endif
-
 ifndef PNGPP
 PNGPP := ..
 endif
 
-make_cflags := -Wall $(CFLAGS) -I$(PREFIX)/include -I$(PNGPP)
-make_ldflags := $(LDFLAGS) -L$(PREFIX)/lib
-
-ifndef NDEBUG
-make_cflags := $(make_cflags) -g
-make_ldflags := $(make_ldflags) -g
-endif
-
-ifndef LIBPNG_CONFIG
-LIBPNG_CONFIG := libpng-config
-endif
-
 sources := pixel_generator.cpp
 
-deps := $(sources:.cpp=.dep)
-objects := $(sources:.cpp=.o)
-targets := $(sources:.cpp=$(bin_suffix))
-
-all: $(deps) $(targets)
+include ../common.mk
 
 dist-copy-files:
 	mkdir $(dist_dir)/example
 	cp $(sources) Makefile $(dist_dir)/example
 
-clean: clean-deps
-	rm -f $(targets) $(objects)
-
-.PHONY: all dist-copy-files clean clean-deps
-
-%$(bin_suffix): %.o
-	g++ -o $@ $< $(make_ldflags) `$(LIBPNG_CONFIG) --ldflags`
-
-%.o: %.cpp
-	g++ -c -o $@ $< $(make_cflags) `$(LIBPNG_CONFIG) --cflags`
-
-
-%.dep: %.cpp
-	g++ -M $(CPPFLAGS) $(make_cflags) $< -o- | \
-	  sed 's/\($*\)\.o[ :]*/\1.o $@ : /g' > $@
-
-clean-deps:
-	rm -f $(deps)
+.PHONY: dist-copy-files
 
 include $(deps)
diff --git a/_tools/code_generators/libs/png++/generator.hpp b/_tools/code_generators/libs/png++/generator.hpp
index e9cc02be01f5bc5b6b0d4ad7fd7872acb708ef5a..e2f632319e6b77924de0577abdd8db431fe1dc2c 100644
--- a/_tools/code_generators/libs/png++/generator.hpp
+++ b/_tools/code_generators/libs/png++/generator.hpp
@@ -69,7 +69,7 @@ namespace png
      * as follows:
      *
      * \code
-     * png::byte* get_next_row(size_t pos);
+     * png::byte* get_next_row(png::uint_32 pos);
      * void reset(size_t pass);
      * \endcode
      *
@@ -138,8 +138,7 @@ namespace png
 #ifdef PNG_WRITE_SWAP_SUPPORTED
                 wr.set_swap();
 #else
-                throw error("Cannot write 16-bit image:"
-                            " recompile with PNG_WRITE_SWAP_SUPPORTED.");
+                throw error("Cannot write 16-bit image: recompile with PNG_WRITE_SWAP_SUPPORTED.");
 #endif
             }
 #endif
@@ -154,12 +153,10 @@ namespace png
                 }
                 else
                 {
-                    throw std::logic_error("Cannot write interlaced image:"
-                                           " generator does not support it.");
+                    throw std::logic_error("Cannot write interlaced image: generator does not support it.");
                 }
 #else
-                throw error("Cannot write interlaced image:"
-                            " interlace handling disabled.");
+                throw error("Cannot write interlaced image: interlace handling disabled.");
 #endif
             }
             else
@@ -171,7 +168,7 @@ namespace png
             {
                 pixel_gen->reset(pass);
 
-                for (size_t pos = 0; pos < this->get_info().get_height(); ++pos)
+                for (uint_32 pos = 0; pos < this->get_info().get_height(); ++pos)
                 {
                     wr.write_row(pixel_gen->get_next_row(pos));
                 }
diff --git a/_tools/code_generators/libs/png++/gray_pixel.hpp b/_tools/code_generators/libs/png++/gray_pixel.hpp
index c1bdb077b40124cb2a93965ef83417972d254c2f..69978b72a09bdec0c441c808abd6e146090bd15b 100644
--- a/_tools/code_generators/libs/png++/gray_pixel.hpp
+++ b/_tools/code_generators/libs/png++/gray_pixel.hpp
@@ -52,7 +52,7 @@ namespace png
      * \brief The packed gray pixel class template.  The available
      * specializations are for 1-, 2- and 4-bit pixels.
      */
-    template< size_t bits >
+    template< int bits >
     class packed_gray_pixel
         : public packed_pixel< bits >
     {
@@ -99,7 +99,7 @@ namespace png
     /**
      * \brief Pixel traits specialization for packed_gray_pixel.
      */
-    template< size_t bits >
+    template< int bits >
     struct pixel_traits< packed_gray_pixel< bits > >
         : basic_pixel_traits< packed_gray_pixel< bits >, byte,
                               color_type_gray, /* channels = */ 1, bits >
diff --git a/_tools/code_generators/libs/png++/image.hpp b/_tools/code_generators/libs/png++/image.hpp
index 0cbf8e4e4c3bdd21e1fdfc20f62a03f206b780c8..bca475a3649d20b9690be8f15b2a71126de78150 100644
--- a/_tools/code_generators/libs/png++/image.hpp
+++ b/_tools/code_generators/libs/png++/image.hpp
@@ -47,8 +47,18 @@ namespace png
      * %info like interlace type, compression method, palette (for
      * colormap-based images) etc.  Provides methods to read and write
      * images from/to a generic stream and to manipulate %image pixels.
+     * 
+     * The default pixel_buffer stores pixels in a vector of vectors, which
+     * is good for openning, editing or converting an image to any
+     * pixel type.
+     * But for simple and fast image unpacking to one memory chunk this approch
+     * is unacceptable, because it leads to multiple memory allocations, the
+     * unpacked image is spread across the memory and client code needs to
+     * gather it manualy. solid_pixel_buffer solves this problem, but with
+     * restriction: pixels with fractional number of bytes per channel are
+     * not allowed (see solid_pixel_buffer.hpp for details).
      */
-    template< typename pixel >
+    template< typename pixel, typename pixel_buffer_type = pixel_buffer< pixel > >
     class image
     {
     public:
@@ -60,12 +70,14 @@ namespace png
         /**
          * \brief The pixel buffer type for \c pixel.
          */
-        typedef pixel_buffer< pixel > pixbuf;
+        typedef pixel_buffer_type pixbuf;
 
         /**
          * \brief Represents a row of image pixel data.
          */
         typedef typename pixbuf::row_type row_type;
+        typedef typename pixbuf::row_access row_access;
+        typedef typename pixbuf::row_const_access row_const_access;
 
         /**
          * \brief A transformation functor to convert any image to
@@ -92,7 +104,7 @@ namespace png
         /**
          * \brief Constructs an empty image of specified width and height.
          */
-        image(size_t width, size_t height)
+        image(uint_32 width, uint_32 height)
             : m_info(make_image_info< pixel >())
         {
             resize(width, height);
@@ -262,14 +274,6 @@ namespace png
             write_stream(stream);
         }
 
-        /**
-         * \brief Writes an image to a stream.
-         */
-        void write_stream(std::ostream& stream)
-        {
-            write_stream(stream);
-        }
-
         /**
          * \brief Writes an image to a stream.
          */
@@ -306,12 +310,12 @@ namespace png
             m_pixbuf = buffer;
         }
 
-        size_t get_width() const
+        uint_32 get_width() const
         {
             return m_pixbuf.get_width();
         }
 
-        size_t get_height() const
+        uint_32 get_height() const
         {
             return m_pixbuf.get_height();
         }
@@ -319,7 +323,7 @@ namespace png
         /**
          * \brief Resizes the image pixel buffer.
          */
-        void resize(size_t width, size_t height)
+        void resize(uint_32 width, uint_32 height)
         {
             m_pixbuf.resize(width, height);
             m_info.set_width(width);
@@ -332,7 +336,7 @@ namespace png
          *
          * \see pixel_buffer::get_row()
          */
-        row_type& get_row(size_t index)
+        row_access get_row(size_t index)
         {
             return m_pixbuf.get_row(index);
         }
@@ -343,7 +347,7 @@ namespace png
          *
          * \see pixel_buffer::get_row()
          */
-        row_type const& get_row(size_t index) const
+        row_const_access get_row(size_t index) const
         {
             return m_pixbuf.get_row(index);
         }
@@ -351,7 +355,7 @@ namespace png
         /**
          * \brief The non-checking version of get_row() method.
          */
-        row_type& operator[](size_t index)
+        row_access operator[](size_t index)
         {
             return m_pixbuf[index];
         }
@@ -359,7 +363,7 @@ namespace png
         /**
          * \brief The non-checking version of get_row() method.
          */
-        row_type const& operator[](size_t index) const
+        row_const_access operator[](size_t index) const
         {
             return m_pixbuf[index];
         }
@@ -449,6 +453,16 @@ namespace png
             m_info.set_tRNS(trns);
         }
 
+        double get_gamma() const
+        {
+            return m_info.get_gamma();
+        }
+
+        void set_gamma(double gamma)
+        {
+            m_info.set_gamma(gamma);
+        }
+
     protected:
         /**
          * \brief A common base class template for pixel_consumer and
diff --git a/_tools/code_generators/libs/png++/image_info.hpp b/_tools/code_generators/libs/png++/image_info.hpp
index 9b1789039cdbe2e65938070ae89ba1fa5f256d5c..8407bc18b89503a03e494ffb70f616753bce0718 100644
--- a/_tools/code_generators/libs/png++/image_info.hpp
+++ b/_tools/code_generators/libs/png++/image_info.hpp
@@ -59,26 +59,27 @@ namespace png
               m_color_type(color_type_none),
               m_interlace_type(interlace_none),
               m_compression_type(compression_type_default),
-              m_filter_type(filter_type_default)
+              m_filter_type(filter_type_default),
+              m_gamma(0.0)
         {
         }
 
-        size_t get_width() const
+        uint_32 get_width() const
         {
             return m_width;
         }
 
-        void set_width(size_t width)
+        void set_width(uint_32 width)
         {
             m_width = width;
         }
 
-        size_t get_height() const
+        uint_32 get_height() const
         {
             return m_height;
         }
 
-        void set_height(size_t height)
+        void set_height(uint_32 height)
         {
             m_height = height;
         }
@@ -93,12 +94,12 @@ namespace png
             m_color_type = color_space;
         }
 
-        size_t get_bit_depth() const
+        int get_bit_depth() const
         {
             return m_bit_depth;
         }
 
-        void set_bit_depth(size_t bit_depth)
+        void set_bit_depth(int bit_depth)
         {
             m_bit_depth = bit_depth;
         }
@@ -171,16 +172,27 @@ namespace png
             m_tRNS = trns;
         }
 
+        double get_gamma() const
+        {
+            return m_gamma;
+        }
+
+        void set_gamma(double gamma)
+        {
+            m_gamma = gamma;
+        }
+
     protected:
         uint_32 m_width;
         uint_32 m_height;
-        size_t m_bit_depth;
+        int m_bit_depth;
         color_type m_color_type;
         interlace_type m_interlace_type;
         compression_type m_compression_type;
         filter_type m_filter_type;
         palette m_palette;
         tRNS m_tRNS;
+        double m_gamma;
     };
 
     /**
diff --git a/_tools/code_generators/libs/png++/index_pixel.hpp b/_tools/code_generators/libs/png++/index_pixel.hpp
index a28b8060d21fc7fb29137a8fe92396d5bba62221..204a2f890230e44803901e4b8a28d34e412364e3 100644
--- a/_tools/code_generators/libs/png++/index_pixel.hpp
+++ b/_tools/code_generators/libs/png++/index_pixel.hpp
@@ -62,7 +62,7 @@ namespace png
      * \brief The packed indexed pixel class template.  The available
      * specializations are for 1-, 2- and 4-bit pixels.
      */
-    template< size_t bits >
+    template< int bits >
     class packed_index_pixel
         : public packed_pixel< bits >
     {
@@ -100,7 +100,7 @@ namespace png
     /**
      * \brief Pixel traits specialization for packed_index_pixel.
      */
-    template< size_t bits >
+    template< int bits >
     struct pixel_traits< packed_index_pixel< bits > >
         : basic_pixel_traits< packed_index_pixel< bits >, byte,
                               color_type_palette, /* channels = */ 1, bits >
diff --git a/_tools/code_generators/libs/png++/info.hpp b/_tools/code_generators/libs/png++/info.hpp
index a12bf2a84e59b5333b99c8a3223fac6746e821b7..3f3cf09c311dbf084fb6da465c08258835b78e68 100644
--- a/_tools/code_generators/libs/png++/info.hpp
+++ b/_tools/code_generators/libs/png++/info.hpp
@@ -75,6 +75,7 @@ namespace png
                 png_get_PLTE(m_png, m_info, & colors, & count);
                 m_palette.assign(colors, colors + count);
             }
+
 #ifdef PNG_tRNS_SUPPORTED
             if (png_get_valid(m_png, m_info, chunk_tRNS) == chunk_tRNS)
             {
@@ -91,6 +92,25 @@ namespace png
                 }
             }
 #endif
+
+#ifdef PNG_gAMA_SUPPORTED
+            if (png_get_valid(m_png, m_info, chunk_gAMA) == chunk_gAMA)
+            {
+#ifdef PNG_FLOATING_POINT_SUPPORTED
+                if (png_get_gAMA(m_png, m_info, &m_gamma) != PNG_INFO_gAMA)
+                {
+                    throw error("png_get_gAMA() failed");
+                }
+#else
+                png_fixed_point gamma = 0;
+                if (png_get_gAMA_fixed(m_png, m_info, &gamma) != PNG_INFO_gAMA)
+                {
+                    throw error("png_get_gAMA_fixed() failed");
+                }
+                m_gamma = gamma / 100000.0;
+#endif
+            }
+#endif
         }
 
         void write() const
@@ -105,7 +125,7 @@ namespace png
                 {
                     png_set_PLTE(m_png, m_info,
                                  const_cast< color* >(& m_palette[0]),
-                                 m_palette.size());
+                                 (int) m_palette.size());
                 }
                 if (! m_tRNS.empty())
                 {
@@ -115,11 +135,25 @@ namespace png
                                  m_tRNS.size(),
                                  NULL);
 #else
-                    throw error("attempted to write tRNS chunk;"
-                                " recompile with PNG_tRNS_SUPPORTED");
+                    throw error("attempted to write tRNS chunk; recompile with PNG_tRNS_SUPPORTED");
 #endif
                 }
             }
+
+            if (m_gamma > 0)
+            {
+#ifdef PNG_gAMA_SUPPORTED
+#ifdef PNG_FLOATING_POINT_SUPPORTED
+                png_set_gAMA(m_png, m_info, m_gamma);
+#else
+                png_set_gAMA_fixed(m_png, m_info,
+                                   (png_fixed_point)(m_gamma * 100000));
+#endif
+#else
+                throw error("attempted to write gAMA chunk; recompile with PNG_gAMA_SUPPORTED");
+#endif
+            }
+
             png_write_info(m_png, m_info);
         }
 
diff --git a/_tools/code_generators/libs/png++/io_base.hpp b/_tools/code_generators/libs/png++/io_base.hpp
index b089fa9b1ad8b8f6565ce6acea44f10897f1eeee..3c2d830435ef7d5989507305c4c83960b2a7acba 100644
--- a/_tools/code_generators/libs/png++/io_base.hpp
+++ b/_tools/code_generators/libs/png++/io_base.hpp
@@ -33,10 +33,24 @@
 
 #include <cassert>
 #include <cstdio>
+#include <cstdarg>
 #include "error.hpp"
 #include "info.hpp"
 #include "end_info.hpp"
 
+static void
+trace_io_transform(char const* fmt, ...)
+{
+#ifdef DEBUG_IO_TRANSFORM
+    va_list va;
+    va_start(va, fmt);
+    fprintf(stderr, "TRANSFORM_IO: ");
+    vfprintf(stderr, fmt, va);
+    va_end(va);
+#endif
+}
+#define TRACE_IO_TRANSFORM trace_io_transform
+
 namespace png
 {
 
@@ -103,22 +117,22 @@ namespace png
         //////////////////////////////////////////////////////////////////////
         // info accessors
         //
-        size_t get_width() const
+        uint_32 get_width() const
         {
             return m_info.get_width();
         }
 
-        void set_width(size_t width)
+        void set_width(uint_32 width)
         {
             m_info.set_width(width);
         }
 
-        size_t get_height() const
+        uint_32 get_height() const
         {
             return m_info.get_height();
         }
 
-        void set_height(size_t height)
+        void set_height(uint_32 height)
         {
             m_info.set_height(height);
         }
@@ -133,12 +147,12 @@ namespace png
             m_info.set_color_type(color_space);
         }
 
-        size_t get_bit_depth() const
+        int get_bit_depth() const
         {
             return m_info.get_bit_depth();
         }
 
-        void set_bit_depth(size_t bit_depth)
+        void set_bit_depth(int bit_depth)
         {
             m_info.set_bit_depth(bit_depth);
         }
@@ -185,16 +199,19 @@ namespace png
 #if defined(PNG_READ_EXPAND_SUPPORTED)
         void set_gray_1_2_4_to_8() const
         {
-            png_set_gray_1_2_4_to_8(m_png);
+            TRACE_IO_TRANSFORM("png_set_expand_gray_1_2_4_to_8\n");
+            png_set_expand_gray_1_2_4_to_8(m_png);
         }
 
         void set_palette_to_rgb() const
         {
+            TRACE_IO_TRANSFORM("png_set_palette_to_rgb\n");
             png_set_palette_to_rgb(m_png);
         }
 
         void set_tRNS_to_alpha() const
         {
+            TRACE_IO_TRANSFORM("png_set_tRNS_to_alpha\n");
             png_set_tRNS_to_alpha(m_png);
         }
 #endif // defined(PNG_READ_EXPAND_SUPPORTED)
@@ -202,6 +219,7 @@ namespace png
 #if defined(PNG_READ_BGR_SUPPORTED) || defined(PNG_WRITE_BGR_SUPPORTED)
         void set_bgr() const
         {
+            TRACE_IO_TRANSFORM("png_set_bgr\n");
             png_set_bgr(m_png);
         }
 #endif
@@ -209,6 +227,7 @@ namespace png
 #if defined(PNG_READ_GRAY_TO_RGB_SUPPORTED)
         void set_gray_to_rgb() const
         {
+            TRACE_IO_TRANSFORM("png_set_gray_to_rgb\n");
             png_set_gray_to_rgb(m_png);
         }
 #endif
@@ -219,6 +238,10 @@ namespace png
                              double red_weight   = -1.0,
                              double green_weight = -1.0) const
         {
+            TRACE_IO_TRANSFORM("png_set_rgb_to_gray: error_action=%d,"
+                               " red_weight=%lf, green_weight=%lf\n",
+                               error_action, red_weight, green_weight);
+
             png_set_rgb_to_gray(m_png, error_action, red_weight, green_weight);
         }
 #else
@@ -227,6 +250,10 @@ namespace png
                              fixed_point red_weight   = -1,
                              fixed_point green_weight = -1) const
         {
+            TRACE_IO_TRANSFORM("png_set_rgb_to_gray_fixed: error_action=%d,"
+                               " red_weight=%d, green_weight=%d\n",
+                               error_action, red_weight, green_weight);
+
             png_set_rgb_to_gray_fixed(m_png, error_action,
                                       red_weight, green_weight);
         }
@@ -238,6 +265,7 @@ namespace png
 #if defined(PNG_READ_STRIP_ALPHA_SUPPORTED)
         void set_strip_alpha() const
         {
+            TRACE_IO_TRANSFORM("png_set_strip_alpha\n");
             png_set_strip_alpha(m_png);
         }
 #endif
@@ -246,6 +274,7 @@ namespace png
     || defined(PNG_WRITE_SWAP_ALPHA_SUPPORTED)
         void set_swap_alpha() const
         {
+            TRACE_IO_TRANSFORM("png_set_swap_alpha\n");
             png_set_swap_alpha(m_png);
         }
 #endif
@@ -254,6 +283,7 @@ namespace png
     || defined(PNG_WRITE_INVERT_ALPHA_SUPPORTED)
         void set_invert_alpha() const
         {
+            TRACE_IO_TRANSFORM("png_set_invert_alpha\n");
             png_set_invert_alpha(m_png);
         }
 #endif
@@ -261,12 +291,18 @@ namespace png
 #if defined(PNG_READ_FILLER_SUPPORTED) || defined(PNG_WRITE_FILLER_SUPPORTED)
         void set_filler(uint_32 filler, filler_type type) const
         {
+            TRACE_IO_TRANSFORM("png_set_filler: filler=%08x, type=%d\n",
+                               filler, type);
+
             png_set_filler(m_png, filler, type);
         }
 
 #if !defined(PNG_1_0_X)
         void set_add_alpha(uint_32 filler, filler_type type) const
         {
+            TRACE_IO_TRANSFORM("png_set_add_alpha: filler=%08x, type=%d\n",
+                               filler, type);
+
             png_set_add_alpha(m_png, filler, type);
         }
 #endif
@@ -275,6 +311,7 @@ namespace png
 #if defined(PNG_READ_SWAP_SUPPORTED) || defined(PNG_WRITE_SWAP_SUPPORTED)
         void set_swap() const
         {
+            TRACE_IO_TRANSFORM("png_set_swap\n");
             png_set_swap(m_png);
         }
 #endif
@@ -282,6 +319,7 @@ namespace png
 #if defined(PNG_READ_PACK_SUPPORTED) || defined(PNG_WRITE_PACK_SUPPORTED)
         void set_packing() const
         {
+            TRACE_IO_TRANSFORM("png_set_packing\n");
             png_set_packing(m_png);
         }
 #endif
@@ -290,6 +328,7 @@ namespace png
     || defined(PNG_WRITE_PACKSWAP_SUPPORTED)
         void set_packswap() const
         {
+            TRACE_IO_TRANSFORM("png_set_packswap\n");
             png_set_packswap(m_png);
         }
 #endif
@@ -298,6 +337,10 @@ namespace png
         void set_shift(byte red_bits, byte green_bits, byte blue_bits,
                        byte alpha_bits = 0) const
         {
+            TRACE_IO_TRANSFORM("png_set_shift: red_bits=%d, green_bits=%d,"
+                               " blue_bits=%d, alpha_bits=%d\n",
+                               red_bits, green_bits, blue_bits, alpha_bits);
+
             if (get_color_type() != color_type_rgb
                 || get_color_type() != color_type_rgb_alpha)
             {
@@ -313,11 +356,13 @@ namespace png
 
         void set_shift(byte gray_bits, byte alpha_bits = 0) const
         {
+            TRACE_IO_TRANSFORM("png_set_shift: gray_bits=%d, alpha_bits=%d\n",
+                               gray_bits, alpha_bits);
+
             if (get_color_type() != color_type_gray
                 || get_color_type() != color_type_gray_alpha)
             {
-                throw error("set_shift: expected Gray or Gray+Alpha"
-                            " color type");
+                throw error("set_shift: expected Gray or Gray+Alpha color type");
             }
             color_info bits;
             bits.gray = gray_bits;
@@ -330,6 +375,7 @@ namespace png
     || defined(PNG_WRITE_INTERLACING_SUPPORTED)
         int set_interlace_handling() const
         {
+            TRACE_IO_TRANSFORM("png_set_interlace_handling\n");
             return png_set_interlace_handling(m_png);
         }
 #endif
@@ -337,6 +383,7 @@ namespace png
 #if defined(PNG_READ_INVERT_SUPPORTED) || defined(PNG_WRITE_INVERT_SUPPORTED)
         void set_invert_mono() const
         {
+            TRACE_IO_TRANSFORM("png_set_invert_mono\n");
             png_set_invert_mono(m_png);
         }
 #endif
@@ -344,6 +391,7 @@ namespace png
 #if defined(PNG_READ_16_TO_8_SUPPORTED)
         void set_strip_16() const
         {
+            TRACE_IO_TRANSFORM("png_set_strip_16\n");
             png_set_strip_16(m_png);
         }
 #endif
@@ -351,6 +399,7 @@ namespace png
 #if defined(PNG_READ_USER_TRANSFORM_SUPPORTED)
         void set_read_user_transform(png_user_transform_ptr transform_fn)
         {
+            TRACE_IO_TRANSFORM("png_set_read_user_transform_fn\n");
             png_set_read_user_transform_fn(m_png, transform_fn);
         }
 #endif
@@ -359,6 +408,9 @@ namespace png
     || defined(PNG_WRITE_USER_TRANSFORM_SUPPORTED)
         void set_user_transform_info(void* info, int bit_depth, int channels)
         {
+            TRACE_IO_TRANSFORM("png_set_user_transform_info: bit_depth=%d,"
+                               " channels=%d\n", bit_depth, channels);
+
             png_set_user_transform_info(m_png, info, bit_depth, channels);
         }
 #endif
@@ -394,7 +446,7 @@ namespace png
 
         void raise_error()
         {
-            longjmp(m_png->jmpbuf, -1);
+            longjmp(png_jmpbuf(m_png), -1);
         }
 
         static void raise_error(png_struct* png, char const* message)
diff --git a/_tools/code_generators/libs/png++/packed_pixel.hpp b/_tools/code_generators/libs/png++/packed_pixel.hpp
index 7202b4f9838af80b1833b71d8510e1598569f5f1..bf05c47d339a48e8f4ba49f9bde238e0cef1f0d9 100644
--- a/_tools/code_generators/libs/png++/packed_pixel.hpp
+++ b/_tools/code_generators/libs/png++/packed_pixel.hpp
@@ -38,7 +38,7 @@ namespace png
 
     namespace detail
     {
-        template< size_t bits > class allowed_bit_depth;
+        template< int bits > class allowed_bit_depth;
 
         template<> class allowed_bit_depth< 1 > {};
         template<> class allowed_bit_depth< 2 > {};
@@ -50,7 +50,7 @@ namespace png
      *
      * \see packed_gray_pixel, packed_index_pixel
      */
-    template< size_t bits >
+    template< int bits >
     class packed_pixel
         : detail::allowed_bit_depth< bits >
     {
@@ -65,12 +65,12 @@ namespace png
             return m_value;
         }
 
-        static size_t const get_bit_depth()
+        static int get_bit_depth()
         {
             return bits;
         }
 
-        static byte const get_bit_mask()
+        static byte get_bit_mask()
         {
             return (1 << bits) - 1;
         }
diff --git a/_tools/code_generators/libs/png++/pixel_buffer.hpp b/_tools/code_generators/libs/png++/pixel_buffer.hpp
index 4aa16e037a98846b207fd1cfc5385f2b3d989840..07009dfa60931c9bfdd2625aba7cbfc1b21b30a7 100644
--- a/_tools/code_generators/libs/png++/pixel_buffer.hpp
+++ b/_tools/code_generators/libs/png++/pixel_buffer.hpp
@@ -65,6 +65,8 @@ namespace png
          * \brief A row of pixel data.
          */
         typedef row row_type;
+        typedef row_type& row_access;
+        typedef row_type const& row_const_access;
         typedef traits row_traits;
 
         /**
@@ -79,22 +81,22 @@ namespace png
         /**
          * \brief Constructs an empty pixel buffer object.
          */
-        basic_pixel_buffer(size_t width, size_t height)
+        basic_pixel_buffer(uint_32 width, uint_32 height)
             : m_width(0),
               m_height(0)
         {
             resize(width, height);
         }
 
-        size_t get_width() const
+        uint_32 get_width() const
         {
             return m_width;
         }
 
-        size_t get_height() const
-	    {
+        uint_32 get_height() const
+        {
             return m_height;
-	    }
+        }
 
         /**
          * \brief Resizes the pixel buffer.
@@ -102,7 +104,7 @@ namespace png
          * If new width or height is greater than the original,
          * expanded pixels are filled with value of \a pixel().
          */
-        void resize(size_t width, size_t height)
+        void resize(uint_32 width, uint_32 height)
         {
             m_width = width;
             m_height = height;
@@ -123,7 +125,7 @@ namespace png
          * std::out_of_range is thrown if \c index is greater than \c
          * height.
          */
-        row_type& get_row(size_t index)
+        row_access get_row(size_t index)
         {
             return m_rows.at(index);
         }
@@ -134,7 +136,7 @@ namespace png
          *
          * The checking version.
          */
-        row_type const& get_row(size_t index) const
+        row_const_access get_row(size_t index) const
         {
             return m_rows.at(index);
         }
@@ -142,7 +144,7 @@ namespace png
         /**
          * \brief The non-checking version of get_row() method.
          */
-        row_type& operator[](size_t index)
+        row_access operator[](size_t index)
         {
             return m_rows[index];
         }
@@ -150,7 +152,7 @@ namespace png
         /**
          * \brief The non-checking version of get_row() method.
          */
-        row_type const& operator[](size_t index) const
+        row_const_access operator[](size_t index) const
         {
             return m_rows[index];
         }
@@ -181,8 +183,8 @@ namespace png
         }
 
     protected:
-        size_t m_width;
-        size_t m_height;
+        uint_32 m_width;
+        uint_32 m_height;
         typedef std::vector< row_type > row_vec;
         row_vec m_rows;
     };
@@ -216,7 +218,7 @@ namespace png
         {
         }
 
-        pixel_buffer(size_t width, size_t height)
+        pixel_buffer(uint_32 width, uint_32 height)
             : basic_pixel_buffer< pixel, std::vector< pixel > >(width, height)
         {
         }
@@ -255,7 +257,7 @@ namespace png
              */
             static size_t get_shift(size_t index)
             {
-                size_t const bits = pixel::get_bit_depth();
+                int const bits = pixel::get_bit_depth();
                 return (8 - bits) - (index % get_pixels_per_byte()) * bits;
             }
 
@@ -444,7 +446,7 @@ namespace png
      * \brief The pixel buffer class template specialization for the
      * packed_gray_pixel type.
      */
-    template< size_t bits >
+    template< int bits >
     class pixel_buffer< packed_gray_pixel< bits > >
         : public basic_pixel_buffer< packed_gray_pixel< bits >,
                                      packed_pixel_row< packed_gray_pixel
@@ -458,7 +460,7 @@ namespace png
         {
         }
 
-        pixel_buffer(size_t width, size_t height)
+        pixel_buffer(uint_32 width, uint_32 height)
             : basic_pixel_buffer< pixel_type,
                                   pixel_row_type >(width, height)
         {
@@ -469,7 +471,7 @@ namespace png
      * \brief The pixel buffer class template specialization for the
      * packed_index_pixel type.
      */
-    template< size_t bits >
+    template< int bits >
     class pixel_buffer< packed_index_pixel< bits > >
         : public basic_pixel_buffer< packed_index_pixel< bits >,
                                      packed_pixel_row< packed_index_pixel
@@ -483,7 +485,7 @@ namespace png
         {
         }
 
-        pixel_buffer(size_t width, size_t height)
+        pixel_buffer(uint_32 width, uint_32 height)
             : basic_pixel_buffer< pixel_type,
                                   pixel_row_type >(width, height)
         {
diff --git a/_tools/code_generators/libs/png++/pixel_traits.hpp b/_tools/code_generators/libs/png++/pixel_traits.hpp
index 6500691f1d0f092bcf26b891b40d577d0151129e..8ffdfeedb45609fa9de8a6e17a84bedd672572a5 100644
--- a/_tools/code_generators/libs/png++/pixel_traits.hpp
+++ b/_tools/code_generators/libs/png++/pixel_traits.hpp
@@ -56,8 +56,8 @@ namespace png
     template< typename pixel,
               typename component,
               color_type pixel_color_type,
-              size_t channels = sizeof(pixel) / sizeof(component),
-              size_t bit_depth = std::numeric_limits< component >::digits >
+              int channels_value = sizeof(pixel) / sizeof(component),
+              int bit_depth_value = std::numeric_limits< component >::digits >
     struct basic_pixel_traits
     {
         typedef pixel pixel_type;
@@ -67,11 +67,15 @@ namespace png
         {
             return pixel_color_type;
         }
-        static size_t get_channels()
+        
+        static const int channels = channels_value;
+        static int get_channels()
         {
             return channels;
         }
-        static size_t get_bit_depth()
+        
+        static const int bit_depth = bit_depth_value;
+        static int get_bit_depth()
         {
             return bit_depth;
         }
diff --git a/_tools/code_generators/libs/png++/png.hpp b/_tools/code_generators/libs/png++/png.hpp
index 1e82c045215857a9ed3fff3a5ceba0db0778d871..e4f45200510331fccdecd29d1b0d0a323233e179 100644
--- a/_tools/code_generators/libs/png++/png.hpp
+++ b/_tools/code_generators/libs/png++/png.hpp
@@ -54,6 +54,7 @@
 #include "generator.hpp"
 #include "consumer.hpp"
 #include "pixel_buffer.hpp"
+#include "solid_pixel_buffer.hpp"
 #include "require_color_space.hpp"
 #include "convert_color_space.hpp"
 #include "image.hpp"
@@ -158,9 +159,9 @@
  * #include <png++/png.hpp>
  * //...
  * png::image< png::rgb_pixel > image(128, 128);
- * for (size_t y = 0; y < image.get_height(); ++y)
+ * for (png::uint_32 y = 0; y < image.get_height(); ++y)
  * {
- *     for (size_t x = 0; x < image.get_width(); ++x)
+ *     for (png::uint_32 x = 0; x < image.get_width(); ++x)
  *     {
  *         image[y][x] = png::rgb_pixel(x, y, x + y);
  *         // non-checking equivalent of image.set_pixel(x, y, ...);
@@ -262,10 +263,10 @@
  *
  * Also, you can check out sources directly from SVN repository:
  * svn://svn.sv.nongnu.org/pngpp/trunk/ or
- * http://svn.sv.nongnu.org/pngpp/trunk/ (for people w/o outgoing svn).
+ * http://svn.sv.nongnu.org/svn/pngpp/trunk/ (for people w/o outgoing svn).
  *
  * Online version of this documentation can be found here:
- * http://www.nongnu.org/pngpp/doc/0.2.3/index.html
+ * http://www.nongnu.org/pngpp/doc/
  *
  * \section sec_bugs Bugs
  *
diff --git a/_tools/code_generators/libs/png++/reader.hpp b/_tools/code_generators/libs/png++/reader.hpp
index 61dd90cac3335994b8eb0f0a0e34e8aaf8512064..74e2ac17571a2da1d158ab3520b5cdfae75102ff 100644
--- a/_tools/code_generators/libs/png++/reader.hpp
+++ b/_tools/code_generators/libs/png++/reader.hpp
@@ -92,7 +92,7 @@ namespace png
          */
         void read_png()
         {
-            if (setjmp(m_png->jmpbuf))
+            if (setjmp(png_jmpbuf(m_png)))
             {
                 throw error(m_error);
             }
@@ -107,7 +107,7 @@ namespace png
          */
         void read_info()
         {
-            if (setjmp(m_png->jmpbuf))
+            if (setjmp(png_jmpbuf(m_png)))
             {
                 throw error(m_error);
             }
@@ -119,7 +119,7 @@ namespace png
          */
         void read_row(byte* bytes)
         {
-            if (setjmp(m_png->jmpbuf))
+            if (setjmp(png_jmpbuf(m_png)))
             {
                 throw error(m_error);
             }
@@ -131,7 +131,7 @@ namespace png
          */
         void read_end_info()
         {
-            if (setjmp(m_png->jmpbuf))
+            if (setjmp(png_jmpbuf(m_png)))
             {
                 throw error(m_error);
             }
@@ -144,7 +144,7 @@ namespace png
         }
 
     private:
-        static void read_data(png_struct* png, byte* data, size_t length)
+        static void read_data(png_struct* png, byte* data, png_size_t length)
         {
             io_base* io = static_cast< io_base* >(png_get_error_ptr(png));
             reader* rd = static_cast< reader* >(io);
diff --git a/_tools/code_generators/libs/png++/solid_pixel_buffer.hpp b/_tools/code_generators/libs/png++/solid_pixel_buffer.hpp
new file mode 100644
index 0000000000000000000000000000000000000000..9f84245fd2e25f2cb4d4a044a12b03a341f59950
--- /dev/null
+++ b/_tools/code_generators/libs/png++/solid_pixel_buffer.hpp
@@ -0,0 +1,243 @@
+/*
+ * Copyright (C) 2007,2008   Alex Shulgin
+ *
+ * This file is part of png++ the C++ wrapper for libpng.  PNG++ is free
+ * software; the exact copying conditions are as follows:
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * 1. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ *
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * 3. The name of the author may not be used to endorse or promote products
+ * derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
+ * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
+ * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+ * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+#ifndef PNGPP_SOLID_PIXEL_BUFFER_HPP_INCLUDED
+#define PNGPP_SOLID_PIXEL_BUFFER_HPP_INCLUDED
+
+#include <cassert>
+#include <cstddef>
+#include <climits>
+#include <stdexcept>
+#include <vector>
+
+#include "config.hpp"
+#include "packed_pixel.hpp"
+#include "gray_pixel.hpp"
+#include "index_pixel.hpp"
+
+namespace png
+{
+
+    /**
+     * \brief Pixel buffer, that stores pixels as continuous memory chunk.
+     * solid_pixel_buffer is useful when user whats to open png, do some
+     * changes and fetch to buffer to draw (as texture for example).
+     */
+    template< typename pixel >
+    class solid_pixel_buffer
+    {
+    public:
+        typedef pixel_traits< pixel > pixel_traits_t;
+        struct row_traits
+        {
+            typedef pixel* row_access;
+            typedef const pixel* row_const_access;
+
+            static byte* get_data(row_access row)
+            {
+                return reinterpret_cast<byte*>(row);
+            }
+        };
+
+
+        /**
+         * \brief A row of pixel data.
+         */
+        typedef typename row_traits::row_access row_access;
+        typedef typename row_traits::row_const_access row_const_access;
+        typedef row_access row_type;
+
+        /**
+         * \brief Constructs an empty 0x0 pixel buffer object.
+         */
+        solid_pixel_buffer()
+            : m_width(0),
+              m_height(0),
+              m_stride(0)
+        {
+        }
+
+        /**
+         * \brief Constructs an empty pixel buffer object.
+         */
+        solid_pixel_buffer(uint_32 width, uint_32 height)
+            : m_width(0),
+              m_height(0),
+              m_stride(0)
+        {
+            resize(width, height);
+        }
+
+        uint_32 get_width() const
+        {
+            return m_width;
+        }
+
+        uint_32 get_height() const
+        {
+            return m_height;
+        }
+
+        /**
+         * \brief Resizes the pixel buffer.
+         *
+         * If new width or height is greater than the original,
+         * expanded pixels are filled with value of \a pixel().
+         */
+        void resize(uint_32 width, uint_32 height)
+        {
+            m_width = width;
+            m_height = height;
+            m_stride = m_width * bytes_per_pixel;
+            m_bytes.resize(height * m_stride);
+        }
+
+        /**
+         * \brief Returns a reference to the row of image data at
+         * specified index.
+         *
+         * Checks the index before returning a row: an instance of
+         * std::out_of_range is thrown if \c index is greater than \c
+         * height.
+         */
+        row_access get_row(size_t index)
+        {
+            return reinterpret_cast<row_access>(&m_bytes.at(index * m_stride));
+        }
+
+        /**
+         * \brief Returns a const reference to the row of image data at
+         * specified index.
+         *
+         * The checking version.
+         */
+        row_const_access get_row(size_t index) const
+        {
+            return (row_const_access)(&m_bytes.at(index * m_stride));
+        }
+
+        /**
+         * \brief The non-checking version of get_row() method.
+         */
+        row_access operator[](size_t index)
+        {
+            return (row_access)(&m_bytes[index * m_stride]);
+        }
+
+        /**
+         * \brief The non-checking version of get_row() method.
+         */
+        row_const_access operator[](size_t index) const
+        {
+            return (row_const_access)(&m_bytes[index * m_stride]);
+        }
+
+        /**
+         * \brief Replaces the row at specified index.
+         */
+        void put_row(size_t index, row_const_access r)
+        {
+            row_access row = get_row();
+            for (uint_32 i = 0; i < m_width; ++i)
+                *row++ = *r++;
+        }
+
+        /**
+         * \brief Returns a pixel at (x,y) position.
+         */
+        pixel get_pixel(size_t x, size_t y) const
+        {
+            size_t index = (y * m_width + x) * bytes_per_pixel;
+            return *reinterpret_cast< const pixel* >(&m_bytes.at(index));
+        }
+
+        /**
+         * \brief Replaces a pixel at (x,y) position.
+         */
+        void set_pixel(size_t x, size_t y, pixel p)
+        {
+            size_t index = (y * m_width + x) * bytes_per_pixel;
+            *reinterpret_cast< pixel* >(&m_bytes.at(index)) = p;
+        }
+
+        /**
+         * \brief Provides easy constant read access to underlying byte-buffer.
+         */
+        const std::vector< byte >& get_bytes() const
+        {
+            return m_bytes;
+        }
+
+#ifdef PNGPP_HAS_STD_MOVE
+        /**
+         * \brief Moves the buffer to client code (c++11 only) .
+         */
+        std::vector< byte > fetch_bytes()
+        {
+            m_width = 0;
+            m_height = 0;
+            m_stride = 0;
+
+            // the buffer is moved outside without copying and leave m_bytes empty.
+            return std::move(m_bytes);
+        }
+#endif
+
+    protected:
+        static const size_t bytes_per_pixel = pixel_traits_t::channels *
+                pixel_traits_t::bit_depth / CHAR_BIT;
+
+    protected:
+        uint_32 m_width;
+        uint_32 m_height;
+        size_t m_stride;
+        std::vector< byte > m_bytes;
+
+#ifdef PNGPP_HAS_STATIC_ASSERT
+        static_assert(pixel_traits_t::bit_depth % CHAR_BIT == 0,
+            "Bit_depth should consist of integer number of bytes");
+
+        static_assert(sizeof(pixel) * CHAR_BIT ==
+            pixel_traits_t::channels * pixel_traits_t::bit_depth,
+            "pixel type should contain channels data only");
+#endif
+    };
+
+    /**
+     * \brief solid_pixel_buffer for packed_pixel is not implemented now.
+     * Should there be a gap between rows? How to deal with last
+     * useless bits in last byte in buffer?
+     */
+    template< int bits >
+    class solid_pixel_buffer< packed_pixel< bits > >;
+
+} // namespace png
+
+#endif // PNGPP_solid_pixel_buffer_HPP_INCLUDED
diff --git a/_tools/code_generators/libs/png++/streaming_base.hpp b/_tools/code_generators/libs/png++/streaming_base.hpp
index 68a23dd6a967d34134fecc8828c4b5626efa1331..b63a7934dd81d85a734bf9276a32fb8b3c827acd 100644
--- a/_tools/code_generators/libs/png++/streaming_base.hpp
+++ b/_tools/code_generators/libs/png++/streaming_base.hpp
@@ -97,7 +97,7 @@ namespace png
         {
         }
 
-        streaming_base(size_t width, size_t height)
+        streaming_base(uint_32 width, uint_32 height)
             : m_info_holder(make_image_info< pixel >())
         {
             get_info().set_width(width);
diff --git a/_tools/code_generators/libs/png++/test/Makefile b/_tools/code_generators/libs/png++/test/Makefile
deleted file mode 100644
index 5f9f159d43f8b697de654489d1ad85dde1531088..0000000000000000000000000000000000000000
--- a/_tools/code_generators/libs/png++/test/Makefile
+++ /dev/null
@@ -1,101 +0,0 @@
-#
-# Copyright (C) 2007,2008   Alex Shulgin
-#
-# This file is part of png++ the C++ wrapper for libpng.  PNG++ is free
-# software; the exact copying conditions are as follows:
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are met:
-#
-# 1. Redistributions of source code must retain the above copyright notice,
-# this list of conditions and the following disclaimer.
-#
-# 2. Redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in the
-# documentation and/or other materials provided with the distribution.
-#
-# 3. The name of the author may not be used to endorse or promote products
-# derived from this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
-# NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
-# TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
-# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
-# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
-# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-#
-ifndef PREFIX
-PREFIX := /usr/local
-endif
-
-ifndef PNGPP
-PNGPP := ..
-endif
-
-make_cflags := -Wall $(CFLAGS) -I$(PREFIX)/include -I$(PNGPP)
-make_ldflags := $(LDFLAGS) -L$(PREFIX)/lib
-
-ifndef NDEBUG
-make_cflags := $(make_cflags) -g
-make_ldflags := $(make_ldflags) -g
-endif
-
-ifndef LIBPNG_CONFIG
-LIBPNG_CONFIG := libpng-config
-endif
-
-sources := convert_color_space.cpp \
-  generate_gray_packed.cpp \
-  read_write_gray_packed.cpp \
-  generate_palette.cpp \
-  write_gray_16.cpp \
-  read_write_param.cpp \
-  dump.cpp
-
-deps := $(sources:.cpp=.dep)
-objects := $(sources:.cpp=.o)
-targets := $(sources:.cpp=$(bin_suffix))
-
-all: $(deps) $(targets)
-
-dist-copy-files:
-	mkdir $(dist_dir)/test
-	cp $(sources) Makefile test.sh README *.png $(dist_dir)/test
-	mkdir $(dist_dir)/test/cmp
-	cp cmp/*.out $(dist_dir)/test/cmp
-
-clean: clean-targets clean-tests-output clean-deps
-
-clean-targets:
-	rm -f $(targets) $(objects)
-
-test: all
-	./test.sh
-
-clean-tests-output:
-	rm -f *.out
-
-.PHONY: all dist-copy-files \
-  clean clean-targets \
-  test test-convert_color_space \
-  clean-tests-output \
-  clean-deps
-
-%$(bin_suffix): %.o
-	g++ -o $@ $< $(make_ldflags) `$(LIBPNG_CONFIG) --ldflags`
-
-%.o: %.cpp
-	g++ -c -o $@ $< $(make_cflags) `$(LIBPNG_CONFIG) --cflags`
-
-%.dep: %.cpp
-	g++ -M $(CPPFLAGS) $(make_cflags) $< -o- | \
-	  sed 's/\($*\)\.o[ :]*/\1.o $@ : /g' > $@
-
-clean-deps:
-	rm -f $(deps)
-
-include $(deps)
diff --git a/_tools/code_generators/libs/png++/test/README b/_tools/code_generators/libs/png++/test/README
deleted file mode 100644
index 714d12c6449e241e5966fdd3d78dea0f2e14cf49..0000000000000000000000000000000000000000
--- a/_tools/code_generators/libs/png++/test/README
+++ /dev/null
@@ -1,85 +0,0 @@
-
-pngsuite
---------
-(c) Willem van Schaik, 1999
-
-Permission to use, copy, and distribute these images for any purpose and
-without fee is hereby granted.
-
-These 15 images are part of the much larger PngSuite test-set of 
-images, available for developers of PNG supporting software. The 
-complete set, available at http:/www.schaik.com/pngsuite/, contains 
-a variety of images to test interlacing, gamma settings, ancillary
-chunks, etc.
-
-The images in this directory represent the basic PNG color-types:
-grayscale (1-16 bit deep), full color (8 or 16 bit), paletted
-(1-8 bit) and grayscale or color images with alpha channel. You
-can use them to test the proper functioning of PNG software.
-
-    filename      depth type
-    ------------ ------ --------------
-    basn0g01.png  1-bit grayscale
-    basn0g02.png  2-bit grayscale
-    basn0g04.png  4-bit grayscale
-    basn0g08.png  8-bit grayscale
-    basn0g16.png 16-bit grayscale
-    basn2c08.png  8-bit truecolor
-    basn2c16.png 16-bit truecolor
-    basn3p01.png  1-bit paletted
-    basn3p02.png  2-bit paletted
-    basn3p04.png  4-bit paletted
-    basn3p08.png  8-bit paletted
-    basn4a08.png  8-bit gray with alpha
-    basn4a16.png 16-bit gray with alpha
-    basn6a08.png  8-bit RGBA
-    basn6a16.png 16-bit RGBA
-
-Here is the correct result of typing "pngtest -m *.png" in
-this directory:
-
-Testing basn0g01.png: PASS (524 zero samples)
- Filter 0 was used 32 times
-Testing basn0g02.png: PASS (448 zero samples)
- Filter 0 was used 32 times
-Testing basn0g04.png: PASS (520 zero samples)
- Filter 0 was used 32 times
-Testing basn0g08.png: PASS (3 zero samples)
- Filter 1 was used 9 times
- Filter 4 was used 23 times
-Testing basn0g16.png: PASS (1 zero samples)
- Filter 1 was used 1 times
- Filter 2 was used 31 times
-Testing basn2c08.png: PASS (6 zero samples)
- Filter 1 was used 5 times
- Filter 4 was used 27 times
-Testing basn2c16.png: PASS (592 zero samples)
- Filter 1 was used 1 times
- Filter 4 was used 31 times
-Testing basn3p01.png: PASS (512 zero samples)
- Filter 0 was used 32 times
-Testing basn3p02.png: PASS (448 zero samples)
- Filter 0 was used 32 times
-Testing basn3p04.png: PASS (544 zero samples)
- Filter 0 was used 32 times
-Testing basn3p08.png: PASS (4 zero samples)
- Filter 0 was used 32 times
-Testing basn4a08.png: PASS (32 zero samples)
- Filter 1 was used 1 times
- Filter 4 was used 31 times
-Testing basn4a16.png: PASS (64 zero samples)
- Filter 0 was used 1 times
- Filter 1 was used 2 times
- Filter 2 was used 1 times
- Filter 4 was used 28 times
-Testing basn6a08.png: PASS (160 zero samples)
- Filter 1 was used 1 times
- Filter 4 was used 31 times
-Testing basn6a16.png: PASS (1072 zero samples)
- Filter 1 was used 4 times
- Filter 4 was used 28 times
-libpng passes test
-
-Willem van Schaik
-<willem@schaik.com>
-October 1999
diff --git a/_tools/code_generators/libs/png++/test/basn0g01.png b/_tools/code_generators/libs/png++/test/basn0g01.png
deleted file mode 100644
index e31e1c7a635b50e22b6d02ab8ba21f8099b39faa..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/basn0g01.png and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/basn0g02.png b/_tools/code_generators/libs/png++/test/basn0g02.png
deleted file mode 100644
index 68809dd8fc0993ddebce8aa9c7bf9bbecbd36cfc..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/basn0g02.png and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/basn0g04.png b/_tools/code_generators/libs/png++/test/basn0g04.png
deleted file mode 100644
index 6fa089cb8a4ba0e8421ea05d33676856f0cac93c..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/basn0g04.png and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/basn0g08.png b/_tools/code_generators/libs/png++/test/basn0g08.png
deleted file mode 100644
index bf522eef0018ae60539ee1b50e98d97906101f2a..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/basn0g08.png and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/basn0g16.png b/_tools/code_generators/libs/png++/test/basn0g16.png
deleted file mode 100644
index 318ebcadf4fd0b64fb9b824e81c0cc8e3dfd2d82..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/basn0g16.png and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/basn2c08.png b/_tools/code_generators/libs/png++/test/basn2c08.png
deleted file mode 100644
index 21d2f91a868fc637fdae4fba6c87bfd09b158815..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/basn2c08.png and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/basn2c16.png b/_tools/code_generators/libs/png++/test/basn2c16.png
deleted file mode 100644
index 1bd4a4d0e2c2c6dd8a2e63a63b26f166b8ef5353..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/basn2c16.png and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/basn3p01.png b/_tools/code_generators/libs/png++/test/basn3p01.png
deleted file mode 100644
index a21db5977462c4c0985a0ca1ac2d67ec572d3d17..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/basn3p01.png and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/basn3p02.png b/_tools/code_generators/libs/png++/test/basn3p02.png
deleted file mode 100644
index 1d0ab6197cc8c4dd61e4440cbe98b2149eeafafb..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/basn3p02.png and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/basn3p04.png b/_tools/code_generators/libs/png++/test/basn3p04.png
deleted file mode 100644
index 6dc6eac83f3cf984a4d121e27a8e60454117e12c..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/basn3p04.png and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/basn3p08.png b/_tools/code_generators/libs/png++/test/basn3p08.png
deleted file mode 100644
index 0e07f483c0edad13e60e0d475c33a7ca5b8919ba..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/basn3p08.png and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/basn4a08.png b/_tools/code_generators/libs/png++/test/basn4a08.png
deleted file mode 100644
index 3bb0dd06b510cb42855ce91f1600540f4503ea34..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/basn4a08.png and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/basn4a16.png b/_tools/code_generators/libs/png++/test/basn4a16.png
deleted file mode 100644
index 6dbee9fbdb93f3535be23326a52fb4d3ac60711e..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/basn4a16.png and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/basn6a08.png b/_tools/code_generators/libs/png++/test/basn6a08.png
deleted file mode 100644
index 61062308548bc3a5255e3e8dbb7f97932f00eb1c..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/basn6a08.png and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/basn6a16.png b/_tools/code_generators/libs/png++/test/basn6a16.png
deleted file mode 100644
index a9bf3cb461231de29905eaa02f3a8a66f9fc5477..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/basn6a16.png and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn0g01.png.GA.16.out b/_tools/code_generators/libs/png++/test/cmp/basn0g01.png.GA.16.out
deleted file mode 100644
index 87745834c5d94a6321adb31ab21ce7f8fb23abff..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn0g01.png.GA.16.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn0g01.png.GA.8.out b/_tools/code_generators/libs/png++/test/cmp/basn0g01.png.GA.8.out
deleted file mode 100644
index aa0dceeff7648fd389c85db957dbe1fdb1b0ae63..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn0g01.png.GA.8.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn0g01.png.GRAY.16.out b/_tools/code_generators/libs/png++/test/cmp/basn0g01.png.GRAY.16.out
deleted file mode 100644
index b8cfb9ce3d90eb72ebb6360a5d59ee02be09c550..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn0g01.png.GRAY.16.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn0g01.png.GRAY.8.out b/_tools/code_generators/libs/png++/test/cmp/basn0g01.png.GRAY.8.out
deleted file mode 100644
index ce17a58e6d344ce19a24297e1fcd7461e643b788..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn0g01.png.GRAY.8.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn0g01.png.RGB.16.out b/_tools/code_generators/libs/png++/test/cmp/basn0g01.png.RGB.16.out
deleted file mode 100644
index fe8ad377de9459fb9c03ae9f17b7eb3687798b2c..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn0g01.png.RGB.16.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn0g01.png.RGB.8.out b/_tools/code_generators/libs/png++/test/cmp/basn0g01.png.RGB.8.out
deleted file mode 100644
index 7ed6eb8d806c6708b9c7ea2c1ba094a57d5ea125..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn0g01.png.RGB.8.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn0g01.png.RGBA.16.out b/_tools/code_generators/libs/png++/test/cmp/basn0g01.png.RGBA.16.out
deleted file mode 100644
index b6e63e5e9a0974946a9fd443673066c7d7700959..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn0g01.png.RGBA.16.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn0g01.png.RGBA.8.out b/_tools/code_generators/libs/png++/test/cmp/basn0g01.png.RGBA.8.out
deleted file mode 100644
index 1d4b5dd0c4353a715a5e419fff6be9385c079504..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn0g01.png.RGBA.8.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn0g01.png.out b/_tools/code_generators/libs/png++/test/cmp/basn0g01.png.out
deleted file mode 100644
index 2ff2c105f2d6c9217cdbe7034d92ab929f52f622..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn0g01.png.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn0g02.png.GA.16.out b/_tools/code_generators/libs/png++/test/cmp/basn0g02.png.GA.16.out
deleted file mode 100644
index 0bf7b82c894a41dd7c6bbe00e913a018fad1e8aa..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn0g02.png.GA.16.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn0g02.png.GA.8.out b/_tools/code_generators/libs/png++/test/cmp/basn0g02.png.GA.8.out
deleted file mode 100644
index 791b9cd12f2dd2eaa82b6a0405318bae2002d51b..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn0g02.png.GA.8.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn0g02.png.GRAY.16.out b/_tools/code_generators/libs/png++/test/cmp/basn0g02.png.GRAY.16.out
deleted file mode 100644
index 7685bbb4aafb870e90a07a916d5b0ade99cf437b..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn0g02.png.GRAY.16.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn0g02.png.GRAY.8.out b/_tools/code_generators/libs/png++/test/cmp/basn0g02.png.GRAY.8.out
deleted file mode 100644
index 94eede03fb47cb9b424e32d0934a733cc2610953..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn0g02.png.GRAY.8.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn0g02.png.RGB.16.out b/_tools/code_generators/libs/png++/test/cmp/basn0g02.png.RGB.16.out
deleted file mode 100644
index 1a545ad2e7ed6b7f895f910f41e43c782985e9f6..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn0g02.png.RGB.16.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn0g02.png.RGB.8.out b/_tools/code_generators/libs/png++/test/cmp/basn0g02.png.RGB.8.out
deleted file mode 100644
index 6f939ed37ac8dd615a83a338664da2e9c2b222b0..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn0g02.png.RGB.8.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn0g02.png.RGBA.16.out b/_tools/code_generators/libs/png++/test/cmp/basn0g02.png.RGBA.16.out
deleted file mode 100644
index 9f2cb535f0e5c33c94ac11b7cce0e8f9cc967527..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn0g02.png.RGBA.16.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn0g02.png.RGBA.8.out b/_tools/code_generators/libs/png++/test/cmp/basn0g02.png.RGBA.8.out
deleted file mode 100644
index 322ba3d6578293770779b1e220f61a16eb041793..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn0g02.png.RGBA.8.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn0g02.png.out b/_tools/code_generators/libs/png++/test/cmp/basn0g02.png.out
deleted file mode 100644
index 14edf7741f3099255ea1adc5f474ced1ef7b6962..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn0g02.png.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn0g04.png.GA.16.out b/_tools/code_generators/libs/png++/test/cmp/basn0g04.png.GA.16.out
deleted file mode 100644
index cb21875b6b1ab47dae4230bbbbc535b65f48341e..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn0g04.png.GA.16.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn0g04.png.GA.8.out b/_tools/code_generators/libs/png++/test/cmp/basn0g04.png.GA.8.out
deleted file mode 100644
index 5bbae0ed66e7581019aefcfd16c3929678914181..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn0g04.png.GA.8.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn0g04.png.GRAY.16.out b/_tools/code_generators/libs/png++/test/cmp/basn0g04.png.GRAY.16.out
deleted file mode 100644
index a7fe5778260b1d33c210f928c4afd26355bd1a45..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn0g04.png.GRAY.16.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn0g04.png.GRAY.8.out b/_tools/code_generators/libs/png++/test/cmp/basn0g04.png.GRAY.8.out
deleted file mode 100644
index 4a0fc341693f5c2d89f2aefb71e6a94bad082111..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn0g04.png.GRAY.8.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn0g04.png.RGB.16.out b/_tools/code_generators/libs/png++/test/cmp/basn0g04.png.RGB.16.out
deleted file mode 100644
index 44fb62c149ca80473b0f5c490be05d4edd870e15..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn0g04.png.RGB.16.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn0g04.png.RGB.8.out b/_tools/code_generators/libs/png++/test/cmp/basn0g04.png.RGB.8.out
deleted file mode 100644
index 09fd1e157884d6e999307f1a9f148e2996fc000c..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn0g04.png.RGB.8.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn0g04.png.RGBA.16.out b/_tools/code_generators/libs/png++/test/cmp/basn0g04.png.RGBA.16.out
deleted file mode 100644
index 62beb7950f1993612e6f1161fb577ab6b2749ec4..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn0g04.png.RGBA.16.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn0g04.png.RGBA.8.out b/_tools/code_generators/libs/png++/test/cmp/basn0g04.png.RGBA.8.out
deleted file mode 100644
index 7d4a5306175c5745ab0fc28c458fc28854245e75..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn0g04.png.RGBA.8.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn0g04.png.out b/_tools/code_generators/libs/png++/test/cmp/basn0g04.png.out
deleted file mode 100644
index 286cee0178fb2f0cb56f0c149739180a504db93b..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn0g04.png.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn0g08.png.GA.16.out b/_tools/code_generators/libs/png++/test/cmp/basn0g08.png.GA.16.out
deleted file mode 100644
index 7794d585b53528c767c454c113bd4db0be633cea..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn0g08.png.GA.16.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn0g08.png.GA.8.out b/_tools/code_generators/libs/png++/test/cmp/basn0g08.png.GA.8.out
deleted file mode 100644
index f8ed14d936402f0aa8cb09a9b933cd505ee60ce2..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn0g08.png.GA.8.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn0g08.png.GRAY.16.out b/_tools/code_generators/libs/png++/test/cmp/basn0g08.png.GRAY.16.out
deleted file mode 100644
index 775bee7f4845d3ca4171bed0277381058e8e4070..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn0g08.png.GRAY.16.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn0g08.png.GRAY.8.out b/_tools/code_generators/libs/png++/test/cmp/basn0g08.png.GRAY.8.out
deleted file mode 100644
index dc9dfd76049779727342ed6a2869a67029a42c35..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn0g08.png.GRAY.8.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn0g08.png.RGB.16.out b/_tools/code_generators/libs/png++/test/cmp/basn0g08.png.RGB.16.out
deleted file mode 100644
index 460d9e7a97ed27b7c4fa078e61b7e2f05eda0f46..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn0g08.png.RGB.16.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn0g08.png.RGB.8.out b/_tools/code_generators/libs/png++/test/cmp/basn0g08.png.RGB.8.out
deleted file mode 100644
index 9efa9c2ff2940756ec0573c8d0679fb4f7da1998..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn0g08.png.RGB.8.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn0g08.png.RGBA.16.out b/_tools/code_generators/libs/png++/test/cmp/basn0g08.png.RGBA.16.out
deleted file mode 100644
index 1e46f172793d5c815db9b1c51a36428439ed8236..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn0g08.png.RGBA.16.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn0g08.png.RGBA.8.out b/_tools/code_generators/libs/png++/test/cmp/basn0g08.png.RGBA.8.out
deleted file mode 100644
index 5ae1c710852efcac319a4dda96cca960c6ac1805..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn0g08.png.RGBA.8.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn0g16.png.GA.16.out b/_tools/code_generators/libs/png++/test/cmp/basn0g16.png.GA.16.out
deleted file mode 100644
index 1abcb325a9ffa48a7e69564e8ee2adf839974f57..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn0g16.png.GA.16.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn0g16.png.GA.8.out b/_tools/code_generators/libs/png++/test/cmp/basn0g16.png.GA.8.out
deleted file mode 100644
index bed384dc1c76fa1ae8f9b0eaddbdde0f7d165054..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn0g16.png.GA.8.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn0g16.png.GRAY.16.out b/_tools/code_generators/libs/png++/test/cmp/basn0g16.png.GRAY.16.out
deleted file mode 100644
index 991c6e8f09d40a5a69d429f0d529fa8512e68045..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn0g16.png.GRAY.16.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn0g16.png.GRAY.8.out b/_tools/code_generators/libs/png++/test/cmp/basn0g16.png.GRAY.8.out
deleted file mode 100644
index d10ee386f92634f49157090c888ae2661a0e905b..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn0g16.png.GRAY.8.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn0g16.png.RGB.16.out b/_tools/code_generators/libs/png++/test/cmp/basn0g16.png.RGB.16.out
deleted file mode 100644
index a9340b1105a9b034cf3e339c7b54e7d60ae33148..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn0g16.png.RGB.16.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn0g16.png.RGB.8.out b/_tools/code_generators/libs/png++/test/cmp/basn0g16.png.RGB.8.out
deleted file mode 100644
index eae1e7b597c36fa501b8ef888e499fbc4abac46d..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn0g16.png.RGB.8.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn0g16.png.RGBA.16.out b/_tools/code_generators/libs/png++/test/cmp/basn0g16.png.RGBA.16.out
deleted file mode 100644
index 99f20554e22a058e979a4f4ad59451d1e45735a3..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn0g16.png.RGBA.16.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn0g16.png.RGBA.8.out b/_tools/code_generators/libs/png++/test/cmp/basn0g16.png.RGBA.8.out
deleted file mode 100644
index d95f5210962092daacdc68873b50a3e9d6e1f733..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn0g16.png.RGBA.8.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn2c08.png.GA.16.out b/_tools/code_generators/libs/png++/test/cmp/basn2c08.png.GA.16.out
deleted file mode 100644
index 27ae8dff48c71cf5ae3dcc09c3a9d652de637641..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn2c08.png.GA.16.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn2c08.png.GA.8.out b/_tools/code_generators/libs/png++/test/cmp/basn2c08.png.GA.8.out
deleted file mode 100644
index 624bf3a7d824bd47e5bf6a327f2ba6fc6f81e7cf..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn2c08.png.GA.8.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn2c08.png.GRAY.16.out b/_tools/code_generators/libs/png++/test/cmp/basn2c08.png.GRAY.16.out
deleted file mode 100644
index ba23dfe07dc9d521cd63c352eb8e1cef5c406ccf..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn2c08.png.GRAY.16.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn2c08.png.GRAY.8.out b/_tools/code_generators/libs/png++/test/cmp/basn2c08.png.GRAY.8.out
deleted file mode 100644
index d678379313a7d1e34b1510a12d2e9ac5cbc1f331..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn2c08.png.GRAY.8.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn2c08.png.RGB.16.out b/_tools/code_generators/libs/png++/test/cmp/basn2c08.png.RGB.16.out
deleted file mode 100644
index d309464adc1b91382749f0b85ba49ed8b04c975b..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn2c08.png.RGB.16.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn2c08.png.RGB.8.out b/_tools/code_generators/libs/png++/test/cmp/basn2c08.png.RGB.8.out
deleted file mode 100644
index 77caf74462f946aad448d9d308d930f0d1080707..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn2c08.png.RGB.8.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn2c08.png.RGBA.16.out b/_tools/code_generators/libs/png++/test/cmp/basn2c08.png.RGBA.16.out
deleted file mode 100644
index baf0adbbcb1748454e7660744d4c227bfc90d476..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn2c08.png.RGBA.16.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn2c08.png.RGBA.8.out b/_tools/code_generators/libs/png++/test/cmp/basn2c08.png.RGBA.8.out
deleted file mode 100644
index 6a1dbe396145c7341e1d934c38f1e3908ea807a9..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn2c08.png.RGBA.8.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn2c16.png.GA.16.out b/_tools/code_generators/libs/png++/test/cmp/basn2c16.png.GA.16.out
deleted file mode 100644
index bb4b0750bb7e07f71d08d25f5e135fae92dfc3c7..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn2c16.png.GA.16.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn2c16.png.GA.8.out b/_tools/code_generators/libs/png++/test/cmp/basn2c16.png.GA.8.out
deleted file mode 100644
index a151e85b970cecfba8acd22b15c5ff96f1259ebc..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn2c16.png.GA.8.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn2c16.png.GRAY.16.out b/_tools/code_generators/libs/png++/test/cmp/basn2c16.png.GRAY.16.out
deleted file mode 100644
index 980c57dbc48a01801069277779a5239fd9415487..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn2c16.png.GRAY.16.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn2c16.png.GRAY.8.out b/_tools/code_generators/libs/png++/test/cmp/basn2c16.png.GRAY.8.out
deleted file mode 100644
index 8d62e832e500a1ca04395c682e66fd4c2039fe43..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn2c16.png.GRAY.8.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn2c16.png.RGB.16.out b/_tools/code_generators/libs/png++/test/cmp/basn2c16.png.RGB.16.out
deleted file mode 100644
index 5df647ad3b4a7ef78b8fe7da00e5272979006381..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn2c16.png.RGB.16.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn2c16.png.RGB.8.out b/_tools/code_generators/libs/png++/test/cmp/basn2c16.png.RGB.8.out
deleted file mode 100644
index b097f70d4b24b38cdaf3842bd837407a28e2cf6a..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn2c16.png.RGB.8.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn2c16.png.RGBA.16.out b/_tools/code_generators/libs/png++/test/cmp/basn2c16.png.RGBA.16.out
deleted file mode 100644
index c4445dcd2cde938c82a7b6d84c25d284d04badd6..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn2c16.png.RGBA.16.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn2c16.png.RGBA.8.out b/_tools/code_generators/libs/png++/test/cmp/basn2c16.png.RGBA.8.out
deleted file mode 100644
index 80a60428ea1a4f989a15f89e458bff304b4023c6..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn2c16.png.RGBA.8.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn3p01.png.GA.16.out b/_tools/code_generators/libs/png++/test/cmp/basn3p01.png.GA.16.out
deleted file mode 100644
index 3eb65611887a0c5cf3de925153abaa79fff8ab63..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn3p01.png.GA.16.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn3p01.png.GA.8.out b/_tools/code_generators/libs/png++/test/cmp/basn3p01.png.GA.8.out
deleted file mode 100644
index 0c97e0155b6cce97ee6f4f92c04db1ba20cac26b..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn3p01.png.GA.8.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn3p01.png.GRAY.16.out b/_tools/code_generators/libs/png++/test/cmp/basn3p01.png.GRAY.16.out
deleted file mode 100644
index 21100ff612c44d9391f362a7a570af5fabe2ad5e..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn3p01.png.GRAY.16.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn3p01.png.GRAY.8.out b/_tools/code_generators/libs/png++/test/cmp/basn3p01.png.GRAY.8.out
deleted file mode 100644
index c5c08cb8491ef6e468f47fb2efb83826670b1182..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn3p01.png.GRAY.8.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn3p01.png.RGB.16.out b/_tools/code_generators/libs/png++/test/cmp/basn3p01.png.RGB.16.out
deleted file mode 100644
index 6c65197cb79205be6e62512abaf3271c80710f6e..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn3p01.png.RGB.16.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn3p01.png.RGB.8.out b/_tools/code_generators/libs/png++/test/cmp/basn3p01.png.RGB.8.out
deleted file mode 100644
index e834bc528ed144668fbd6bf8b1ab6126a78a653d..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn3p01.png.RGB.8.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn3p01.png.RGBA.16.out b/_tools/code_generators/libs/png++/test/cmp/basn3p01.png.RGBA.16.out
deleted file mode 100644
index bc2028359b9ddb12c1b66768d49c622ce0b19d7a..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn3p01.png.RGBA.16.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn3p01.png.RGBA.8.out b/_tools/code_generators/libs/png++/test/cmp/basn3p01.png.RGBA.8.out
deleted file mode 100644
index 354293b02954922794fc1c28398ab9a6e3d02fdb..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn3p01.png.RGBA.8.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn3p02.png.GA.16.out b/_tools/code_generators/libs/png++/test/cmp/basn3p02.png.GA.16.out
deleted file mode 100644
index d3524e2b4dcac872856cf7808a24403c3c608070..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn3p02.png.GA.16.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn3p02.png.GA.8.out b/_tools/code_generators/libs/png++/test/cmp/basn3p02.png.GA.8.out
deleted file mode 100644
index 73155c403d755cc814d48937bfbab739f2b43292..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn3p02.png.GA.8.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn3p02.png.GRAY.16.out b/_tools/code_generators/libs/png++/test/cmp/basn3p02.png.GRAY.16.out
deleted file mode 100644
index 4318e36d07d3eb46bca18ebb04ea49a40efa8fb6..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn3p02.png.GRAY.16.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn3p02.png.GRAY.8.out b/_tools/code_generators/libs/png++/test/cmp/basn3p02.png.GRAY.8.out
deleted file mode 100644
index 4c4de6132b3894235fd23e3efcb234a22005df32..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn3p02.png.GRAY.8.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn3p02.png.RGB.16.out b/_tools/code_generators/libs/png++/test/cmp/basn3p02.png.RGB.16.out
deleted file mode 100644
index 771d34f87cad1e3b123c88ae819be14bff307faf..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn3p02.png.RGB.16.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn3p02.png.RGB.8.out b/_tools/code_generators/libs/png++/test/cmp/basn3p02.png.RGB.8.out
deleted file mode 100644
index 38f0df85689dbb049dc5aa95e51f29ba03ad63c2..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn3p02.png.RGB.8.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn3p02.png.RGBA.16.out b/_tools/code_generators/libs/png++/test/cmp/basn3p02.png.RGBA.16.out
deleted file mode 100644
index 1e9a2825c624cec89b040866710a336e774e55e1..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn3p02.png.RGBA.16.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn3p02.png.RGBA.8.out b/_tools/code_generators/libs/png++/test/cmp/basn3p02.png.RGBA.8.out
deleted file mode 100644
index 19ea90bd4b27f86dc85914c7f7452edf67d77c2f..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn3p02.png.RGBA.8.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn3p04.png.GA.16.out b/_tools/code_generators/libs/png++/test/cmp/basn3p04.png.GA.16.out
deleted file mode 100644
index ab167c90b486e826e7548f8289d31c316a022113..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn3p04.png.GA.16.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn3p04.png.GA.8.out b/_tools/code_generators/libs/png++/test/cmp/basn3p04.png.GA.8.out
deleted file mode 100644
index 82ffc2ae7d62ac1c09f528c77c41d3c091d4840e..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn3p04.png.GA.8.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn3p04.png.GRAY.16.out b/_tools/code_generators/libs/png++/test/cmp/basn3p04.png.GRAY.16.out
deleted file mode 100644
index c86fb96edd82e749f0dd14d46927a3e0d326d045..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn3p04.png.GRAY.16.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn3p04.png.GRAY.8.out b/_tools/code_generators/libs/png++/test/cmp/basn3p04.png.GRAY.8.out
deleted file mode 100644
index f472ee82940a7ab03b1c81f5cfd9af5727ec4d2b..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn3p04.png.GRAY.8.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn3p04.png.RGB.16.out b/_tools/code_generators/libs/png++/test/cmp/basn3p04.png.RGB.16.out
deleted file mode 100644
index 585adcca4db7f6a604bc480474942e5a20189b7b..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn3p04.png.RGB.16.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn3p04.png.RGB.8.out b/_tools/code_generators/libs/png++/test/cmp/basn3p04.png.RGB.8.out
deleted file mode 100644
index c987d28eaebe89c8722b3ba052a61d7c6a8c29e6..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn3p04.png.RGB.8.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn3p04.png.RGBA.16.out b/_tools/code_generators/libs/png++/test/cmp/basn3p04.png.RGBA.16.out
deleted file mode 100644
index 45d93893bc8fcf3f963f998bb0ec1610f0ac6e71..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn3p04.png.RGBA.16.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn3p04.png.RGBA.8.out b/_tools/code_generators/libs/png++/test/cmp/basn3p04.png.RGBA.8.out
deleted file mode 100644
index fe9ac5656740ccf33d0f244cdfbab743a83a56ca..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn3p04.png.RGBA.8.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn3p08.png.GA.16.out b/_tools/code_generators/libs/png++/test/cmp/basn3p08.png.GA.16.out
deleted file mode 100644
index 0a751b6ee7171bf4ed85d778114b1de2ddd9aaed..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn3p08.png.GA.16.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn3p08.png.GA.8.out b/_tools/code_generators/libs/png++/test/cmp/basn3p08.png.GA.8.out
deleted file mode 100644
index 4dc8f80df0ce44e2ef0cb51caf2d45c88ca44374..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn3p08.png.GA.8.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn3p08.png.GRAY.16.out b/_tools/code_generators/libs/png++/test/cmp/basn3p08.png.GRAY.16.out
deleted file mode 100644
index 68de54d0a19aa4836b906a3899e00690354406e9..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn3p08.png.GRAY.16.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn3p08.png.GRAY.8.out b/_tools/code_generators/libs/png++/test/cmp/basn3p08.png.GRAY.8.out
deleted file mode 100644
index d1e650e00d01749c4b65c2df2335e1550b5d38f9..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn3p08.png.GRAY.8.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn3p08.png.RGB.16.out b/_tools/code_generators/libs/png++/test/cmp/basn3p08.png.RGB.16.out
deleted file mode 100644
index 1fd97fa7fc94b6e59e1afd9a8519fafe72411528..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn3p08.png.RGB.16.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn3p08.png.RGB.8.out b/_tools/code_generators/libs/png++/test/cmp/basn3p08.png.RGB.8.out
deleted file mode 100644
index 86011898fc27646a0a92404e60f3c2418508ff3b..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn3p08.png.RGB.8.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn3p08.png.RGBA.16.out b/_tools/code_generators/libs/png++/test/cmp/basn3p08.png.RGBA.16.out
deleted file mode 100644
index fe00181f6dd31cdfc7849655f939b3e3b7afa4e2..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn3p08.png.RGBA.16.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn3p08.png.RGBA.8.out b/_tools/code_generators/libs/png++/test/cmp/basn3p08.png.RGBA.8.out
deleted file mode 100644
index 5cde524cf52d0c0253504be7b0ad64286136560f..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn3p08.png.RGBA.8.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn4a08.png.GA.16.out b/_tools/code_generators/libs/png++/test/cmp/basn4a08.png.GA.16.out
deleted file mode 100644
index 982a7758ff9282e4357682b27db5081734357013..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn4a08.png.GA.16.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn4a08.png.GA.8.out b/_tools/code_generators/libs/png++/test/cmp/basn4a08.png.GA.8.out
deleted file mode 100644
index b8ef393743d3a9ca47fde6f5c30c67e90d0a8ad5..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn4a08.png.GA.8.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn4a08.png.GRAY.16.out b/_tools/code_generators/libs/png++/test/cmp/basn4a08.png.GRAY.16.out
deleted file mode 100644
index 5a693596ffaba5d59e2f4add03afabb751ba96ab..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn4a08.png.GRAY.16.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn4a08.png.GRAY.8.out b/_tools/code_generators/libs/png++/test/cmp/basn4a08.png.GRAY.8.out
deleted file mode 100644
index 89b58c02f409b3e7518eea4aa57c77de35edcb71..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn4a08.png.GRAY.8.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn4a08.png.RGB.16.out b/_tools/code_generators/libs/png++/test/cmp/basn4a08.png.RGB.16.out
deleted file mode 100644
index 36ef6d2c325a9b8e9b2691072092fe2cf74270d7..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn4a08.png.RGB.16.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn4a08.png.RGB.8.out b/_tools/code_generators/libs/png++/test/cmp/basn4a08.png.RGB.8.out
deleted file mode 100644
index 32dec3a4df27e127d58ef95dce4be13820d4ab43..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn4a08.png.RGB.8.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn4a08.png.RGBA.16.out b/_tools/code_generators/libs/png++/test/cmp/basn4a08.png.RGBA.16.out
deleted file mode 100644
index e65898c2d0772891c83d7a79968e9d587bc23e34..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn4a08.png.RGBA.16.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn4a08.png.RGBA.8.out b/_tools/code_generators/libs/png++/test/cmp/basn4a08.png.RGBA.8.out
deleted file mode 100644
index 8a903f6316ae1cb3b1e81d738223033d01c427b1..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn4a08.png.RGBA.8.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn4a16.png.GA.16.out b/_tools/code_generators/libs/png++/test/cmp/basn4a16.png.GA.16.out
deleted file mode 100644
index 978a585d950eb8a278ce21913aa30bc07cdb61c1..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn4a16.png.GA.16.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn4a16.png.GA.8.out b/_tools/code_generators/libs/png++/test/cmp/basn4a16.png.GA.8.out
deleted file mode 100644
index 34c98079618c714c46ee1d48a9c815fbbff4951b..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn4a16.png.GA.8.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn4a16.png.GRAY.16.out b/_tools/code_generators/libs/png++/test/cmp/basn4a16.png.GRAY.16.out
deleted file mode 100644
index a78fb79903c56e5634cde5c3e197d31582513b28..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn4a16.png.GRAY.16.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn4a16.png.GRAY.8.out b/_tools/code_generators/libs/png++/test/cmp/basn4a16.png.GRAY.8.out
deleted file mode 100644
index 36f86cfe50f0d43f8f5c68f21dd7bbd716466fe9..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn4a16.png.GRAY.8.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn4a16.png.RGB.16.out b/_tools/code_generators/libs/png++/test/cmp/basn4a16.png.RGB.16.out
deleted file mode 100644
index 2a537f0b23ca95c8e80ccad371cce0d6bdea07a5..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn4a16.png.RGB.16.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn4a16.png.RGB.8.out b/_tools/code_generators/libs/png++/test/cmp/basn4a16.png.RGB.8.out
deleted file mode 100644
index a239300b79763d97817c858de784bc544761313f..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn4a16.png.RGB.8.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn4a16.png.RGBA.16.out b/_tools/code_generators/libs/png++/test/cmp/basn4a16.png.RGBA.16.out
deleted file mode 100644
index e83bfd45b19bbde661dce94ecdce1b9a850b3ade..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn4a16.png.RGBA.16.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn4a16.png.RGBA.8.out b/_tools/code_generators/libs/png++/test/cmp/basn4a16.png.RGBA.8.out
deleted file mode 100644
index 1481fb0c92eb4dc4ebfb5d22688755ec2daba4d9..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn4a16.png.RGBA.8.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn6a08.png.GA.16.out b/_tools/code_generators/libs/png++/test/cmp/basn6a08.png.GA.16.out
deleted file mode 100644
index 0c13f717f29fe01dddb3f8777beca7463544c53a..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn6a08.png.GA.16.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn6a08.png.GA.8.out b/_tools/code_generators/libs/png++/test/cmp/basn6a08.png.GA.8.out
deleted file mode 100644
index cf54821fadf8c6ba0342844b86d7fd1e5bbd0e86..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn6a08.png.GA.8.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn6a08.png.GRAY.16.out b/_tools/code_generators/libs/png++/test/cmp/basn6a08.png.GRAY.16.out
deleted file mode 100644
index c846ca3e2de24cd86aad7ff2be20142afd35c546..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn6a08.png.GRAY.16.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn6a08.png.GRAY.8.out b/_tools/code_generators/libs/png++/test/cmp/basn6a08.png.GRAY.8.out
deleted file mode 100644
index 3e7a231593aac14acd5c14efeedb460ad9444c3e..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn6a08.png.GRAY.8.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn6a08.png.RGB.16.out b/_tools/code_generators/libs/png++/test/cmp/basn6a08.png.RGB.16.out
deleted file mode 100644
index 9c12d3a6cb7e10d647e20671b695d80108701cc5..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn6a08.png.RGB.16.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn6a08.png.RGB.8.out b/_tools/code_generators/libs/png++/test/cmp/basn6a08.png.RGB.8.out
deleted file mode 100644
index 31978afa8a91334521215178599f61142bdc4390..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn6a08.png.RGB.8.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn6a08.png.RGBA.16.out b/_tools/code_generators/libs/png++/test/cmp/basn6a08.png.RGBA.16.out
deleted file mode 100644
index 1f354e39b3f0356603216a6cebcb89a2ef0ca11c..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn6a08.png.RGBA.16.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn6a08.png.RGBA.8.out b/_tools/code_generators/libs/png++/test/cmp/basn6a08.png.RGBA.8.out
deleted file mode 100644
index ef0ebe4e27ef70bb1745b0e11feaabc66b8da75e..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn6a08.png.RGBA.8.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn6a16.png.GA.16.out b/_tools/code_generators/libs/png++/test/cmp/basn6a16.png.GA.16.out
deleted file mode 100644
index 5f9c114f3f741233c882ab9069a7dd6c0f1bd38e..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn6a16.png.GA.16.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn6a16.png.GA.8.out b/_tools/code_generators/libs/png++/test/cmp/basn6a16.png.GA.8.out
deleted file mode 100644
index 058d111de30d9035fa0a9a40d406ce52a44c7bb3..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn6a16.png.GA.8.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn6a16.png.GRAY.16.out b/_tools/code_generators/libs/png++/test/cmp/basn6a16.png.GRAY.16.out
deleted file mode 100644
index b874c94c576756ad3a0fdcd722c54a068e64782b..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn6a16.png.GRAY.16.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn6a16.png.GRAY.8.out b/_tools/code_generators/libs/png++/test/cmp/basn6a16.png.GRAY.8.out
deleted file mode 100644
index c3245fb1e5cf2f89c7825916eccc1eea00b6ef1d..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn6a16.png.GRAY.8.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn6a16.png.RGB.16.out b/_tools/code_generators/libs/png++/test/cmp/basn6a16.png.RGB.16.out
deleted file mode 100644
index 8c98fc294128e4b0d68cb363f31913e1aa08defd..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn6a16.png.RGB.16.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn6a16.png.RGB.8.out b/_tools/code_generators/libs/png++/test/cmp/basn6a16.png.RGB.8.out
deleted file mode 100644
index 2c36574281524b3c36a737649505b7d46e494b10..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn6a16.png.RGB.8.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn6a16.png.RGBA.16.out b/_tools/code_generators/libs/png++/test/cmp/basn6a16.png.RGBA.16.out
deleted file mode 100644
index 51ea33fa528d3e15b66720658ca58b32c9ecd8c3..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn6a16.png.RGBA.16.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/basn6a16.png.RGBA.8.out b/_tools/code_generators/libs/png++/test/cmp/basn6a16.png.RGBA.8.out
deleted file mode 100644
index a78219c29b7368cc6908948fc83104b5ec0b62eb..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/basn6a16.png.RGBA.8.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/gray_16.out b/_tools/code_generators/libs/png++/test/cmp/gray_16.out
deleted file mode 100644
index e405f4e1253a266f180645472b751ce0e18a69c8..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/gray_16.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/gray_packed_1.png.out b/_tools/code_generators/libs/png++/test/cmp/gray_packed_1.png.out
deleted file mode 100644
index 238628050db4b5b95143b97049d1782b39be9cc9..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/gray_packed_1.png.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/gray_packed_2.png.out b/_tools/code_generators/libs/png++/test/cmp/gray_packed_2.png.out
deleted file mode 100644
index fb0e9c7c9bcf4edf0c78d00db465d9abdd3d12d3..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/gray_packed_2.png.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/gray_packed_4.png.out b/_tools/code_generators/libs/png++/test/cmp/gray_packed_4.png.out
deleted file mode 100644
index 5d5563ab28e9e2bef551619226bf1b51186cea84..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/gray_packed_4.png.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/interlace.png.GA.16.out b/_tools/code_generators/libs/png++/test/cmp/interlace.png.GA.16.out
deleted file mode 100644
index ca364b29b8a77b77e5c2b922735ab84e4ce878e1..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/interlace.png.GA.16.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/interlace.png.GA.8.out b/_tools/code_generators/libs/png++/test/cmp/interlace.png.GA.8.out
deleted file mode 100644
index 2fb3afaf4051b3dbb820cf2f2275e88390540691..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/interlace.png.GA.8.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/interlace.png.GRAY.16.out b/_tools/code_generators/libs/png++/test/cmp/interlace.png.GRAY.16.out
deleted file mode 100644
index 81139f7173154098c701104e297b8be549dd75ce..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/interlace.png.GRAY.16.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/interlace.png.GRAY.8.out b/_tools/code_generators/libs/png++/test/cmp/interlace.png.GRAY.8.out
deleted file mode 100644
index 9dd1ecdd1f282df6d202c52ae2890c8ea1b7b3e8..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/interlace.png.GRAY.8.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/interlace.png.RGB.16.out b/_tools/code_generators/libs/png++/test/cmp/interlace.png.RGB.16.out
deleted file mode 100644
index 9dfaf8d7f7020d9e0fd2d5e2bb12b1aa41512044..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/interlace.png.RGB.16.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/interlace.png.RGB.8.out b/_tools/code_generators/libs/png++/test/cmp/interlace.png.RGB.8.out
deleted file mode 100644
index ac0d03179b22e92fe52521b5967f9ce1f7546790..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/interlace.png.RGB.8.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/interlace.png.RGBA.16.out b/_tools/code_generators/libs/png++/test/cmp/interlace.png.RGBA.16.out
deleted file mode 100644
index 47cf3ff50ab01fd8f31d400b6331e3cdb4d8d099..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/interlace.png.RGBA.16.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/interlace.png.RGBA.8.out b/_tools/code_generators/libs/png++/test/cmp/interlace.png.RGBA.8.out
deleted file mode 100644
index fe428a3b8ddffa69ca35129b82aec0615fd76aed..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/interlace.png.RGBA.8.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/palette1.png.out b/_tools/code_generators/libs/png++/test/cmp/palette1.png.out
deleted file mode 100644
index ee4323b2fe29283fed6817592868242f40aec608..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/palette1.png.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/palette2.png.out b/_tools/code_generators/libs/png++/test/cmp/palette2.png.out
deleted file mode 100644
index ba7fad816501e85bd3c5fe116053567aedfac430..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/palette2.png.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/palette4.png.out b/_tools/code_generators/libs/png++/test/cmp/palette4.png.out
deleted file mode 100644
index 1b1132bbe7b67dc1563d0e2d032c496601f7d58e..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/palette4.png.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/palette8.png.out b/_tools/code_generators/libs/png++/test/cmp/palette8.png.out
deleted file mode 100644
index 1b5ea446d6037c855034c9cc6b28bfee7e90fe9e..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/palette8.png.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/cmp/palette8_tRNS.png.out b/_tools/code_generators/libs/png++/test/cmp/palette8_tRNS.png.out
deleted file mode 100644
index 0d3da33341fabbf3f16d661c5f6453f1cb4a788b..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/cmp/palette8_tRNS.png.out and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/convert_color_space.cpp b/_tools/code_generators/libs/png++/test/convert_color_space.cpp
deleted file mode 100644
index 2f598ded6def4a8e00399fe112e2606fb424bfa1..0000000000000000000000000000000000000000
--- a/_tools/code_generators/libs/png++/test/convert_color_space.cpp
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
- * Copyright (C) 2007,2008   Alex Shulgin
- *
- * This file is part of png++ the C++ wrapper for libpng.  PNG++ is free
- * software; the exact copying conditions are as follows:
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * 3. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
- * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
- * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-#include <iostream>
-#include <ostream>
-
-#include <png.hpp>
-
-void
-print_usage()
-{
-    std::cerr << "usage: convert_color_space RGB|RGBA|GRAY|GA 8|16"
-              << " INFILE OUTFILE" << std::endl;
-}
-
-int
-main(int argc, char* argv[])
-try
-{
-    if (argc != 5)
-    {
-        print_usage();
-        return EXIT_FAILURE;
-    }
-    char const* space = argv[1];
-    int bits = atoi(argv[2]);
-    char const* infile = argv[3];
-    char const* outfile = argv[4];
-
-    if (bits != 8 && bits != 16)
-    {
-        print_usage();
-        return EXIT_FAILURE;
-    }
-    if (strcmp(space, "RGB") == 0)
-    {
-        if (bits == 16)
-        {
-            png::image< png::rgb_pixel_16 > image(infile);
-            image.write(outfile);
-        }
-        else
-        {
-            png::image< png::rgb_pixel > image(infile);
-            image.write(outfile);
-        }
-    }
-    else if (strcmp(space, "RGBA") == 0)
-    {
-        if (bits == 16)
-        {
-            png::image< png::rgba_pixel_16 > image(infile);
-            image.write(outfile);
-        }
-        else
-        {
-            png::image< png::rgba_pixel > image(infile);
-            image.write(outfile);
-        }
-    }
-    else if (strcmp(space, "GRAY") == 0)
-    {
-        if (bits == 16)
-        {
-            png::image< png::gray_pixel_16 > image(infile);
-            image.write(outfile);
-        }
-        else
-        {
-            png::image< png::gray_pixel > image(infile);
-            image.write(outfile);
-        }
-    }
-    else if (strcmp(space, "GA") == 0)
-    {
-        if (bits == 16)
-        {
-            png::ga_pixel_16 ga(1); // test alpha_pixel_traits
-
-            png::image< png::ga_pixel_16 > image(infile);
-            image.write(outfile);
-        }
-        else
-        {
-            png::ga_pixel ga(1); // test alpha_pixel_traits
-
-            png::image< png::ga_pixel > image(infile);
-            image.write(outfile);
-        }
-    }
-    else
-    {
-        print_usage();
-        return EXIT_FAILURE;
-    }
-}
-catch (std::exception const& error)
-{
-    std::cerr << "convert_color_space: " << error.what() << std::endl;
-    return EXIT_FAILURE;
-}
diff --git a/_tools/code_generators/libs/png++/test/dump.cpp b/_tools/code_generators/libs/png++/test/dump.cpp
deleted file mode 100644
index 038ab6d0a4a3fbcf4227c11e5e017b28930ea750..0000000000000000000000000000000000000000
--- a/_tools/code_generators/libs/png++/test/dump.cpp
+++ /dev/null
@@ -1,39 +0,0 @@
-#include <iostream>
-#include <ostream>
-
-#include <png.hpp>
-
-// inline png::uint_16
-// to_png_order(png::uint_16 x)
-// {
-//     return ((x & 0xff) << 8) | (x >> 8);
-// }
-
-int
-main(int argc, char* argv[])
-try
-{
-    if (argc != 2)
-    {
-        throw std::runtime_error("usage: dump PNG");
-    }
-    char const* file = argv[1];
-    png::image< png::gray_pixel_16 > image(file);
-    for (size_t y = 0; y < image.get_height(); ++y)
-    {
-        for (size_t x = 0; x < image.get_width(); ++x)
-        {
-            if (x)
-            {
-                putchar(' ');
-            }
-            printf("%04x", image[y][x]);
-        }
-        putchar('\n');
-    }
-}
-catch (std::exception const& error)
-{
-    std::cerr << "dump: " << error.what() << std::endl;
-    return EXIT_FAILURE;
-}
diff --git a/_tools/code_generators/libs/png++/test/generate_gray_packed.cpp b/_tools/code_generators/libs/png++/test/generate_gray_packed.cpp
deleted file mode 100644
index d2106e7c385345d87d703157ca1fe044ac161633..0000000000000000000000000000000000000000
--- a/_tools/code_generators/libs/png++/test/generate_gray_packed.cpp
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- * Copyright (C) 2007,2008   Alex Shulgin
- *
- * This file is part of png++ the C++ wrapper for libpng.  PNG++ is free
- * software; the exact copying conditions are as follows:
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * 3. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
- * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
- * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-#include <iostream>
-#include <ostream>
-
-#include <png.hpp>
-
-template< class pixel >
-void
-generate_image(png::image< pixel >& image, char const* filename)
-{
-    for (size_t j = 0; j < image.get_height(); ++j)
-    {
-        for (size_t i = 0; i < image.get_width(); ++i)
-        {
-            image.set_pixel(i, j, pixel(i + j));
-        }
-    }
-    image.write(filename);
-}
-
-int
-main(int argc, char* argv[])
-try
-{
-    size_t const width = 32;
-    size_t const height = 32;
-
-    png::image< png::gray_pixel_1 > image1(width, height);
-    generate_image(image1, "gray_packed_1.png.out");
-
-    png::image< png::gray_pixel_2 > image2(width, height);
-    generate_image(image2, "gray_packed_2.png.out");
-
-    png::image< png::gray_pixel_4 > image4(width, height);
-    generate_image(image4, "gray_packed_4.png.out");
-}
-catch (std::exception const& error)
-{
-    std::cerr << "generate_gray_packed: " << error.what() << std::endl;
-    return EXIT_FAILURE;
-}
diff --git a/_tools/code_generators/libs/png++/test/generate_palette.cpp b/_tools/code_generators/libs/png++/test/generate_palette.cpp
deleted file mode 100644
index 4fb9f97365faf2a581cb5ddd3e7d2ab494dfdc3b..0000000000000000000000000000000000000000
--- a/_tools/code_generators/libs/png++/test/generate_palette.cpp
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * Copyright (C) 2007,2008   Alex Shulgin
- *
- * This file is part of png++ the C++ wrapper for libpng.  PNG++ is free
- * software; the exact copying conditions are as follows:
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * 3. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
- * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
- * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-#include <iostream>
-#include <ostream>
-
-#include <png.hpp>
-
-template< typename pixel >
-void
-generate_image(png::image< pixel >& image)
-{
-    typedef png::pixel_traits< pixel > traits;
-    size_t colors = 1 << traits::get_bit_depth();
-    size_t size = colors / 2; 
-    image.resize(size, size);
-
-    png::palette palette(colors);
-    for (size_t c = 0; c < colors; ++c)
-    {
-        palette[c] = png::color(c * 255 / colors,
-                                (colors - c - 1) * 255 / colors,
-                                c * 255 / colors);
-    }
-    image.set_palette(palette);
-    for (size_t j = 0; j < image.get_height(); ++j)
-    {
-        for (size_t i = 0; i < image.get_width(); ++i)
-        {
-            image.set_pixel(i, j, i + j);
-        }
-    }
-}
-
-int
-main()
-try
-{
-    png::image< png::index_pixel_1 > image1;
-    generate_image(image1);
-    image1.write("palette1.png.out");
-
-    png::image< png::index_pixel_2 > image2;
-    generate_image(image2);
-    image2.write("palette2.png.out");
-
-    png::image< png::index_pixel_4 > image4;
-    generate_image(image4);
-    image4.write("palette4.png.out");
-
-    png::image< png::index_pixel > image8;
-    generate_image(image8);
-    image8.write("palette8.png.out");
-
-    png::image< png::index_pixel > image8_tRNS;
-    generate_image(image8_tRNS);
-    png::tRNS trns(256);
-    for (size_t i = 0; i < trns.size(); ++i)
-    {
-        trns[i] = i;
-    }
-    image8_tRNS.set_tRNS(trns);
-    image8_tRNS.write("palette8_tRNS.png.out");
-}
-catch (std::exception const& error)
-{
-    std::cerr << "generate_palette: " << error.what() << std::endl;
-    return EXIT_FAILURE;
-}
diff --git a/_tools/code_generators/libs/png++/test/interlace.png b/_tools/code_generators/libs/png++/test/interlace.png
deleted file mode 100644
index 8a3f4a9d97036598c0a572b59a1128d7ce668b82..0000000000000000000000000000000000000000
Binary files a/_tools/code_generators/libs/png++/test/interlace.png and /dev/null differ
diff --git a/_tools/code_generators/libs/png++/test/read_write_gray_packed.cpp b/_tools/code_generators/libs/png++/test/read_write_gray_packed.cpp
deleted file mode 100644
index 1f51c54e45ef046d12ea48ba9de3edaf2f8d23e6..0000000000000000000000000000000000000000
--- a/_tools/code_generators/libs/png++/test/read_write_gray_packed.cpp
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * Copyright (C) 2007,2008   Alex Shulgin
- *
- * This file is part of png++ the C++ wrapper for libpng.  PNG++ is free
- * software; the exact copying conditions are as follows:
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * 3. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
- * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
- * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-#include <iostream>
-#include <ostream>
-
-#include <png.hpp>
-
-void
-print_usage()
-{
-    std::cerr << "usage: read_write_gray_packed 1|2|4 INFILE OUTFILE"
-              << std::endl;
-}
-
-template< class pixel >
-void
-test_image(char const* infile, char const* outfile)
-{
-    png::image< pixel > image(infile, png::require_color_space< pixel >());
-    image.write(outfile);
-}
-
-int
-main(int argc, char* argv[])
-try
-{
-    if (argc != 4)
-    {
-        print_usage();
-        return EXIT_FAILURE;
-    }
-    char const* bits = argv[1];
-    char const* infile = argv[2];
-    char const* outfile = argv[3];
-
-    if (strcmp(bits, "1") == 0)
-    {
-        test_image< png::gray_pixel_1 >(infile, outfile);
-    }
-    else if (strcmp(bits, "2") == 0)
-    {
-        test_image< png::gray_pixel_2 >(infile, outfile);
-    }
-    else if (strcmp(bits, "4") == 0)
-    {
-        test_image< png::gray_pixel_4 >(infile, outfile);
-    }
-    else
-    {
-        print_usage();
-        return EXIT_FAILURE;
-    }
-}
-catch (std::exception const& error)
-{
-    std::cerr << "read_write_gray_packed: " << error.what() << std::endl;
-    return EXIT_FAILURE;
-}
diff --git a/_tools/code_generators/libs/png++/test/read_write_param.cpp b/_tools/code_generators/libs/png++/test/read_write_param.cpp
deleted file mode 100644
index c755f4d87b7ec0e571001dd62f5c87fe374eb04d..0000000000000000000000000000000000000000
--- a/_tools/code_generators/libs/png++/test/read_write_param.cpp
+++ /dev/null
@@ -1,24 +0,0 @@
-#include <iostream>
-#include <ostream>
-
-#include <png.hpp>
-
-int
-main()
-{
-    std::cerr << "read_write_param: do not run this test--it's compile-only"
-              << std::endl;
-    exit(1);
-
-    typedef png::image< png::rgb_pixel > image;
-    image image1;               // default contructor
-    image image2("test2.png");  // char const*
-    char test3[] = "test3.png"; // char*
-    image image3(test3); 
-    image image4(std::string("test4.png"));
-
-    image1.write("test4.png");  // char const*
-    char test5[] = "test5.png";
-    image1.write(test5);        // char*
-    image1.write(std::string("test6.png"));
-}
diff --git a/_tools/code_generators/libs/png++/test/test.sh b/_tools/code_generators/libs/png++/test/test.sh
deleted file mode 100644
index 9329b0ab55d4ea4e604f8782ef4621787f28c8b3..0000000000000000000000000000000000000000
--- a/_tools/code_generators/libs/png++/test/test.sh
+++ /dev/null
@@ -1,42 +0,0 @@
-#!/bin/sh
-
-status=0
-
-for i in *.png; do
-    for j in RGB RGBA GRAY GA; do
-	for k in 8 16; do
-	    out=$i.$j.$k.out
-	    echo ./convert_color_space $j $k $i $out
-	    ./convert_color_space $j $k $i $out && cmp $out cmp/$out \
-	    || status=1
-	done;
-    done;
-done
-
-echo ./generate_gray_packed
-./generate_gray_packed || status=1
-for i in 1 2 4; do
-    out=gray_packed_$i.png.out
-    cmp $out cmp/$out || status=1
-done
-
-for i in 1 2 4; do
-    in=basn0g0$i.png
-    out=$in.out
-    echo ./read_write_gray_packed $i $in $out
-    ./read_write_gray_packed $i $in $out && cmp $out cmp/$out || status=1
-done
-
-echo ./generate_palette
-./generate_palette || status=1
-for i in 1 2 4 8; do
-    out=palette$i.png.out
-    cmp $out cmp/$out || status=1
-done
-cmp palette8_tRNS.png.out cmp/palette8_tRNS.png.out || status=1
-
-echo ./write_gray_16
-./write_gray_16 && cmp gray_16.out cmp/gray_16.out || status=1
-
-test $status -eq 0 && echo 'PNG++ PASSES TESTS' || echo 'PNG++ FAILS TESTS'
-exit $status
diff --git a/_tools/code_generators/libs/png++/test/write_gray_16.cpp b/_tools/code_generators/libs/png++/test/write_gray_16.cpp
deleted file mode 100644
index 6c7f922336efbccb22767864836566c781353cd4..0000000000000000000000000000000000000000
--- a/_tools/code_generators/libs/png++/test/write_gray_16.cpp
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Copyright (C) 2007,2008   Alex Shulgin
- *
- * This file is part of png++ the C++ wrapper for libpng.  PNG++ is free
- * software; the exact copying conditions are as follows:
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * 3. The name of the author may not be used to endorse or promote products
- * derived from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
- * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
- * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-#include <iostream>
-#include <ostream>
-
-#include <png.hpp>
-
-int
-main()
-try
-{
-    png::image< png::gray_pixel_16 > image(256, 256);
-    for (size_t y = 0; y < image.get_height(); ++y)
-    {
-        for (size_t x = 0; x < image.get_width(); ++x)
-        {
-            png::gray_pixel_16 pix = x*y;
-            image[y][x] = pix;
-        }
-    }
-    image.write("gray_16.out");
-}
-catch (std::exception const& error)
-{
-    std::cerr << "write_gray_16: " << error.what() << std::endl;
-    return EXIT_FAILURE;
-}
diff --git a/_tools/code_generators/libs/png++/writer.hpp b/_tools/code_generators/libs/png++/writer.hpp
index 05e28e8f3e1a653688523454ec0a0be80b72d30c..448dfd50b1dc841aa2c8ad61bed78aa023ec7592 100644
--- a/_tools/code_generators/libs/png++/writer.hpp
+++ b/_tools/code_generators/libs/png++/writer.hpp
@@ -88,7 +88,7 @@ namespace png
 
         void write_png() const
         {
-            if (setjmp(m_png->jmpbuf))
+            if (setjmp(png_jmpbuf(m_png)))
             {
                 throw error(m_error);
             }
@@ -103,7 +103,7 @@ namespace png
          */
         void write_info() const
         {
-            if (setjmp(m_png->jmpbuf))
+            if (setjmp(png_jmpbuf(m_png)))
             {
                 throw error(m_error);
             }
@@ -115,7 +115,7 @@ namespace png
          */
         void write_row(byte* bytes)
         {
-            if (setjmp(m_png->jmpbuf))
+            if (setjmp(png_jmpbuf(m_png)))
             {
                 throw error(m_error);
             }
@@ -127,7 +127,7 @@ namespace png
          */
         void write_end_info() const
         {
-            if (setjmp(m_png->jmpbuf))
+            if (setjmp(png_jmpbuf(m_png)))
             {
                 throw error(m_error);
             }
@@ -135,7 +135,7 @@ namespace png
         }
 
     private:
-        static void write_data(png_struct* png, byte* data, size_t length)
+        static void write_data(png_struct* png, byte* data, png_size_t length)
         {
             io_base* io = static_cast< io_base* >(png_get_error_ptr(png));
             writer* wr = static_cast< writer* >(io);