From b8b82944bcda4a794440ce28dd0c75ee80e44dab Mon Sep 17 00:00:00 2001 From: Thomas Debesse Date: Wed, 5 Aug 2026 02:21:15 +0200 Subject: [PATCH 01/16] test: add reusable format lists and some helper functions --- test/test.py | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/test/test.py b/test/test.py index b038cacb..5f1c9b26 100755 --- a/test/test.py +++ b/test/test.py @@ -5,6 +5,7 @@ import subprocess import sys from collections import OrderedDict +from itertools import chain try: from colorama import Fore, Style @@ -264,9 +265,56 @@ def print_end_results(clones_verification, clones_verified, files_verification, crunch(None, None, options=["--help"]) +def merge_list(*lists): + return list(dict.fromkeys(chain.from_iterable(lists))) + +def start_from(items, value): + i = items.index(value) + return items[i:] + items[:i] + if simple_test == "true": exit(0) +lossless_format_list = [ + "tga", + "bmp", + "png", +] + +lossy_format_list = [ + "crn", + "dds", + "ktx", + "jpg", +] + +dxt_format_list = [ + "crn", + "dds", + "ktx", +] + +transparent_format_list = [ + "tga", + "bmp", + "png", + "crn", + "dds", + "ktx", +] + +opaque_format_list = [ + "jpg", +] + +all_format_list = merge_list( + lossless_format_list, + dxt_format_list, + transparent_format_list, + opaque_format_list, + lossy_format_list, +) + mkdir("build/test/png-to-all") crunch("test/unvanquished_64.png", "build/test/png-to-all/unvanquished_64.tga", clone="tga") crunch("test/unvanquished_64.png", "build/test/png-to-all/unvanquished_64.bmp", clone="bmp") From 21f448bac92cfbf09513ad8d83222231e66380bf Mon Sep 17 00:00:00 2001 From: Thomas Debesse Date: Mon, 10 Aug 2026 05:52:32 +0200 Subject: [PATCH 02/16] test: enforce -noNormalDetection --- test/test.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/test.py b/test/test.py index 5f1c9b26..545b1c45 100755 --- a/test/test.py +++ b/test/test.py @@ -106,7 +106,7 @@ def crunch(input_path, output_path, clone=None, options=[]): if input_path: converted_input_path = convert_path(input_path) - command_list += ["-noTitle", "-helperThreads", "3", "-nostats", "-noprogress", "-file", converted_input_path] + command_list += ["-noTitle", "-helperThreads", "3", "-nostats", "-noprogress", "-noNormalDetection", "-file", converted_input_path] if output_path: converted_output_path = convert_path(output_path) From 5327157068543cc05027c63597f7ff8c5f47e4c3 Mon Sep 17 00:00:00 2001 From: Thomas Debesse Date: Wed, 5 Aug 2026 04:32:34 +0200 Subject: [PATCH 03/16] test: rework the sample testing MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Most of tests are loopable: - converting from one format to all others, - converting multiple files from a single test collection to a single directory, - whole collection of clones… - rename all the samples (but the icon) using a similar pattern. This actually tests more combination. This reorganize the out directories to make it easier to review the files, and give the out directories better names. --- test/checksums.tsv | 276 ++++++++++++------ test/{black.jpg => sample-black.jpg} | Bin ...alpha1.png => sample-colormap1-alpha1.png} | Bin ...alpha1.png => sample-colormap2-alpha1.png} | Bin ...alpha1.png => sample-colormap4-alpha1.png} | Bin ...alpha1.png => sample-colormap8-alpha1.png} | Bin ...m-left.tga => sample-flat-bottom-left.tga} | Bin ...right.tga => sample-flat-bottom-right.tga} | Bin ...-top-left.tga => sample-flat-top-left.tga} | Bin ...op-right.tga => sample-flat-top-right.tga} | Bin ...lpha1.png => sample-grayscale1-alpha1.png} | Bin ...lpha8.png => sample-grayscale1-alpha8.png} | Bin ...lpha1.png => sample-grayscale8-alpha1.png} | Bin ...rgb8-alpha8.png => sample-rgb8-alpha8.png} | Bin ...om-left.tga => sample-rle-bottom-left.tga} | Bin ...-right.tga => sample-rle-bottom-right.tga} | Bin ...e-top-left.tga => sample-rle-top-left.tga} | Bin ...top-right.tga => sample-rle-top-right.tga} | Bin test/test.py | 232 +++++++-------- 19 files changed, 300 insertions(+), 208 deletions(-) rename test/{black.jpg => sample-black.jpg} (100%) rename test/{test-colormap1-alpha1.png => sample-colormap1-alpha1.png} (100%) rename test/{test-colormap2-alpha1.png => sample-colormap2-alpha1.png} (100%) rename test/{test-colormap4-alpha1.png => sample-colormap4-alpha1.png} (100%) rename test/{test-colormap8-alpha1.png => sample-colormap8-alpha1.png} (100%) rename test/{raw-bottom-left.tga => sample-flat-bottom-left.tga} (100%) rename test/{raw-bottom-right.tga => sample-flat-bottom-right.tga} (100%) rename test/{raw-top-left.tga => sample-flat-top-left.tga} (100%) rename test/{raw-top-right.tga => sample-flat-top-right.tga} (100%) rename test/{test-grayscale1-alpha1.png => sample-grayscale1-alpha1.png} (100%) rename test/{test-grayscale1-alpha8.png => sample-grayscale1-alpha8.png} (100%) rename test/{test-grayscale8-alpha1.png => sample-grayscale8-alpha1.png} (100%) rename test/{test-rgb8-alpha8.png => sample-rgb8-alpha8.png} (100%) rename test/{rle-bottom-left.tga => sample-rle-bottom-left.tga} (100%) rename test/{rle-bottom-right.tga => sample-rle-bottom-right.tga} (100%) rename test/{rle-top-left.tga => sample-rle-top-left.tga} (100%) rename test/{rle-top-right.tga => sample-rle-top-right.tga} (100%) diff --git a/test/checksums.tsv b/test/checksums.tsv index bc225bc8..ffe3399c 100644 --- a/test/checksums.tsv +++ b/test/checksums.tsv @@ -1,89 +1,187 @@ -build/test/png-to-all/unvanquished_64.tga 34434170b06843b2d4fb5964a4b8751ec3a151a7d03e351e45a5967508f6a21f6e40ffc214bb46640105c4058bc35e196ecb5dd3261528a64acfeff52034fb40 -build/test/png-to-all/unvanquished_64.bmp 1c5f28be8151a8125346e9cf17b1bf6e3f9fe27f6947b164b7eefa8fd3732a2e4dff173c354a0cd4ed599cd604d4b8f916c0575b0a4b4b508acc68dc9b4067ae -build/test/png-to-all/unvanquished_64.png 71bb28da97cd778b99f131acaeb1c28ea37bae295a9e9934bed339508d8428587120c0da8f5bbc7963cdb77741ef789414f9d0d2c1e0da46026336efde147cc5 -build/test/png-to-all/unvanquished_64.crn a3b526e95f44b6a4c919bc8eb79f4debf592f0bccc163c900cd1b6f9add0ce58c3db9fc8dac1828d350bbcd915823d7743a0c114a533fbc08c163fcb4846d2f5 -build/test/png-to-all/unvanquished_64.dds ce98b21c574b4883e4aff4a0b92fd0f533f22e00ab753686f353111fa7503287c2c4dba25f2c2670508630d79b59464578e094461bad81ad803e1d58ed5e69f8 -build/test/png-to-all/unvanquished_64.ktx d82eab591163d802231722ef325571735971b6a9b0703ed8ea59b4a4144189825d96d3455605426453fb3ad8d7cc61f931c52b3e73df2bb6787f7408baeb4ac7 -build/test/png-to-all/unvanquished_64.jpg 6cd22de7e2e5baced5ef16e84f816dde3049f822459d552ced4dcd4e3f9a16be82ee0747ed1479fe8339991176004b4ccc90380b7ef51292c7d9b518503a348d -build/test/tga-to-all/unvanquished_64.tga 34434170b06843b2d4fb5964a4b8751ec3a151a7d03e351e45a5967508f6a21f6e40ffc214bb46640105c4058bc35e196ecb5dd3261528a64acfeff52034fb40 -build/test/tga-to-all/unvanquished_64.bmp 1c5f28be8151a8125346e9cf17b1bf6e3f9fe27f6947b164b7eefa8fd3732a2e4dff173c354a0cd4ed599cd604d4b8f916c0575b0a4b4b508acc68dc9b4067ae -build/test/tga-to-all/unvanquished_64.png 71bb28da97cd778b99f131acaeb1c28ea37bae295a9e9934bed339508d8428587120c0da8f5bbc7963cdb77741ef789414f9d0d2c1e0da46026336efde147cc5 -build/test/tga-to-all/unvanquished_64.crn a3b526e95f44b6a4c919bc8eb79f4debf592f0bccc163c900cd1b6f9add0ce58c3db9fc8dac1828d350bbcd915823d7743a0c114a533fbc08c163fcb4846d2f5 -build/test/tga-to-all/unvanquished_64.dds ce98b21c574b4883e4aff4a0b92fd0f533f22e00ab753686f353111fa7503287c2c4dba25f2c2670508630d79b59464578e094461bad81ad803e1d58ed5e69f8 -build/test/tga-to-all/unvanquished_64.ktx d82eab591163d802231722ef325571735971b6a9b0703ed8ea59b4a4144189825d96d3455605426453fb3ad8d7cc61f931c52b3e73df2bb6787f7408baeb4ac7 -build/test/tga-to-all/unvanquished_64.jpg 6cd22de7e2e5baced5ef16e84f816dde3049f822459d552ced4dcd4e3f9a16be82ee0747ed1479fe8339991176004b4ccc90380b7ef51292c7d9b518503a348d -build/test/bmp-to-all/unvanquished_64.tga 34434170b06843b2d4fb5964a4b8751ec3a151a7d03e351e45a5967508f6a21f6e40ffc214bb46640105c4058bc35e196ecb5dd3261528a64acfeff52034fb40 -build/test/bmp-to-all/unvanquished_64.bmp 1c5f28be8151a8125346e9cf17b1bf6e3f9fe27f6947b164b7eefa8fd3732a2e4dff173c354a0cd4ed599cd604d4b8f916c0575b0a4b4b508acc68dc9b4067ae -build/test/bmp-to-all/unvanquished_64.png 71bb28da97cd778b99f131acaeb1c28ea37bae295a9e9934bed339508d8428587120c0da8f5bbc7963cdb77741ef789414f9d0d2c1e0da46026336efde147cc5 -build/test/bmp-to-all/unvanquished_64.crn a3b526e95f44b6a4c919bc8eb79f4debf592f0bccc163c900cd1b6f9add0ce58c3db9fc8dac1828d350bbcd915823d7743a0c114a533fbc08c163fcb4846d2f5 -build/test/bmp-to-all/unvanquished_64.dds ce98b21c574b4883e4aff4a0b92fd0f533f22e00ab753686f353111fa7503287c2c4dba25f2c2670508630d79b59464578e094461bad81ad803e1d58ed5e69f8 -build/test/bmp-to-all/unvanquished_64.ktx d82eab591163d802231722ef325571735971b6a9b0703ed8ea59b4a4144189825d96d3455605426453fb3ad8d7cc61f931c52b3e73df2bb6787f7408baeb4ac7 -build/test/bmp-to-all/unvanquished_64.jpg 6cd22de7e2e5baced5ef16e84f816dde3049f822459d552ced4dcd4e3f9a16be82ee0747ed1479fe8339991176004b4ccc90380b7ef51292c7d9b518503a348d -build/test/crn-to-all/unvanquished_64.tga 71014682514ec9d2baa19444fd026ceb65aa06e86d32f34b326f336e47cf4ea351aa7c2eee6a1f0fbf290658fae72c24a86c4e167272143012d384dd6d6b1ce9 -build/test/crn-to-all/unvanquished_64.bmp a6d6886879f9aade027ecb4d55f2092c3af98c297aaf2f689d77a11870156099853a41993575a9a313a23e399b3bcb06dcc0eac46b877639f3875972af7933d7 -build/test/crn-to-all/unvanquished_64.png dd9d45459bd5a3ed74d494838a3d61ed4baea9960300cb3f1d54ecc923f742c9036fe13a338da6db2efc98049a2e206cb7c0e1cba6d79ea0e3ad86473af13e83 -build/test/crn-to-all/unvanquished_64.crn 1596d312526073fd8923faefbed879fb1299ee53eeb54787f2b66754768d9a8160d9921b13aa9b7c781eb088be41cec0f3b703713aede43116a2b62f284f39f9 -build/test/crn-to-all/unvanquished_64.dds 2aae5c5bd8c6a82d1cf3fc9d9da12fe3fc5be8651261ff1cb359e754308fd81e93bf304aeb55ada0bad50794d6e97d3e48084e5a4f48fa7caec4ed954152bae9 -build/test/crn-to-all/unvanquished_64.ktx 10a45e43609c49b4929b91293e203557d8f5c1b146aa8162d946248e8fa24709e1645ed1fc40c2c1a541567b3d1287c7885cb0185230b660386825c4d03db22f -build/test/crn-to-all/unvanquished_64.jpg f68e74b3c8a404fc867345411c8778228728897e5d0870e071d6ec67fd1fccb45b3b97993575c3ed66d80cd6a7d60845e8fe68780ac322fe1d46adc57014fa8b -build/test/dds-to-all/unvanquished_64.tga 46e0c1796f7b1a998829919e14f69cb43d83b895585aca69ad17e0f6cd9839d20b383a6eca161320b87bb7161cbedc116466ec27319078a011b59fe16dc6ce26 -build/test/dds-to-all/unvanquished_64.bmp 9d1b7c76f345332fa53e9b517ee47ba142d0c9def2b27b908af67b3c19edec0882f183f83eb9022cc2e726082193d7c82394a92b068137a4698a505d8bab0080 -build/test/dds-to-all/unvanquished_64.png cd5b04f9c081f91a2d3a3fbf4484153feec5f0c027608f48a51209596ff604680ab93de70fbb616dc3fecea3fa6d240ac7a2e294bb0fc8244766375ffae54230 -build/test/dds-to-all/unvanquished_64.crn 0db1f3bcf6240389be389dc2a94fdabf97aab439d12aabc6cca2ccb69559759fc414d2bc7735d0d4812b895ffb4085172f6a48439a104d79e0b5d65124b1f002 -build/test/dds-to-all/unvanquished_64.dds ce98b21c574b4883e4aff4a0b92fd0f533f22e00ab753686f353111fa7503287c2c4dba25f2c2670508630d79b59464578e094461bad81ad803e1d58ed5e69f8 -build/test/dds-to-all/unvanquished_64.ktx dbbea021367254587000704d11b5cf7982d3ac4a42edd9489b7b2ec49da796d4346c68c6ee1a163e6880f0efaeafc0235b739c2a4acbd1ed27750657af36e3df -build/test/dds-to-all/unvanquished_64.jpg 3a2bfcc1f2ecb18371163bb16812096b019fec176731f015a301384d605910702d168f8762076fa5d912760947c8df8d4026fd9b038c0d94360d1bf744f592a2 -build/test/ktx-to-all/unvanquished_64.tga 516bc1db1bfcda9c7f466cbb6f45b7608d9803391ae6d32e8de30d8e8102ef2de623cf6adfc74d471202ab14930dc4babe93a41b6c35b90e250a0de6b690fe7e -build/test/ktx-to-all/unvanquished_64.bmp 0493fc75c26629d3a532e68e3778bb25ed6de4d81f3a39eb34a65a1990aa4072aa6b0948dc1ed3122b7ecf45e6be139d05b008ad7277649fc244d039404503fd -build/test/ktx-to-all/unvanquished_64.png 7b5da6fea08f73d0e06791d000780820574d08e14c00c06ba2ef208296ebcfbc427175d72d6f2797e7240930782c70bf717a1e966fdd9aaada4a8b826ff9a2df -build/test/ktx-to-all/unvanquished_64.crn 7cb43bf1f8fa87735d7643c3590b52bf918b6e202095787f2305c7469db957185871434b101fb2e2fb7d57e55fc0dc635994b8ed2765edb6b453f10931508f6b -build/test/ktx-to-all/unvanquished_64.dds b2cecbf2870835ec04a8ed69012d294402017fa565393f8266a6dcc868f9c5b472b8b568c98250b5beb5b0d43ee9d9dc06d04cca4f35073541ba8331d55a6b46 -build/test/ktx-to-all/unvanquished_64.ktx d82eab591163d802231722ef325571735971b6a9b0703ed8ea59b4a4144189825d96d3455605426453fb3ad8d7cc61f931c52b3e73df2bb6787f7408baeb4ac7 -build/test/ktx-to-all/unvanquished_64.jpg c350e1e0d90b8d519a0cfdbad85c972a6f6c077988b8e96f5daef415f816b3ace2bb87c79772c6d25954caeb598ef3af7700f0bc10914349161fe1a4cc1f2d73 -build/test/jpg-to-all/unvanquished_64.tga 4ea9e7b358a01fe1b09e9c16845a0249daddc87010403f33c525cfca69af85cb561019221adc8beae4172908d48a951df2d8bf65d63ae2ee183ee5c6df424c99 -build/test/jpg-to-all/unvanquished_64.bmp 20636873950cde44336751526644ea6e979b5bdf1f45a166a40b583977a6f6cce6db32ab9b14d66eba1777ab8447fbc926a91b095c27cb4487e04d1f36ed3b0b -build/test/jpg-to-all/unvanquished_64.png 24124a42c01f243ec2864cc70d399b685183acb04216a0b21133b454f4d69d7606b3190119ff8c869c5dd4a28f77fbc352f3717747e32099f507cc7b790c39e2 -build/test/jpg-to-all/unvanquished_64.crn f7bf97cafc570eb16335006623b887de1b05591035a20f9399edc2386c59ab43832d4741a3763210c022cb65ee7a0facb29138bb7daf0b71f6b9059c1852c445 -build/test/jpg-to-all/unvanquished_64.dds c1b3b785d107ba2f18097fb1cf009f598dbda9e797741ed66bd6cf9b1c376447f0990bb3890af12e3c73c4e02410adc0b5be6f386867d8ffc6aded53adb5f309 -build/test/jpg-to-all/unvanquished_64.ktx 233e5d029b08cc45f8b3e9853edc6dc5dd5cab49cb0f95e870b9b6db917b2ddceaa2756d55aec1785c147375bc7a37030e3a8cde77d364f73d86043e99a7969a -build/test/jpg-to-all/unvanquished_64.jpg abe6f8c6820c4d0762a00b6ce0789834601d764b1a9a330eeb3b49d5209ee9ca2968e154d53e74912e05a4b99467df1710c12d62354cdfc8d49c9cd315de2b65 -build/test/tga-to-png/raw-bottom-left.png 6238f9678cd9fa774e6d50ee6638f316d0b1148ade344c06b4ddebac4738ea90e93c19d5cca405fccdabfdb37898bc7f9bccce1f0d974f9cbd18ab54b66adaa3 -build/test/tga-to-png/raw-bottom-right.png 6238f9678cd9fa774e6d50ee6638f316d0b1148ade344c06b4ddebac4738ea90e93c19d5cca405fccdabfdb37898bc7f9bccce1f0d974f9cbd18ab54b66adaa3 -build/test/tga-to-png/raw-top-left.png 6238f9678cd9fa774e6d50ee6638f316d0b1148ade344c06b4ddebac4738ea90e93c19d5cca405fccdabfdb37898bc7f9bccce1f0d974f9cbd18ab54b66adaa3 -build/test/tga-to-png/raw-top-right.png 6238f9678cd9fa774e6d50ee6638f316d0b1148ade344c06b4ddebac4738ea90e93c19d5cca405fccdabfdb37898bc7f9bccce1f0d974f9cbd18ab54b66adaa3 -build/test/tga-to-png/rle-bottom-left.png 6238f9678cd9fa774e6d50ee6638f316d0b1148ade344c06b4ddebac4738ea90e93c19d5cca405fccdabfdb37898bc7f9bccce1f0d974f9cbd18ab54b66adaa3 -build/test/tga-to-png/rle-bottom-right.png 6238f9678cd9fa774e6d50ee6638f316d0b1148ade344c06b4ddebac4738ea90e93c19d5cca405fccdabfdb37898bc7f9bccce1f0d974f9cbd18ab54b66adaa3 -build/test/tga-to-png/rle-top-left.png 6238f9678cd9fa774e6d50ee6638f316d0b1148ade344c06b4ddebac4738ea90e93c19d5cca405fccdabfdb37898bc7f9bccce1f0d974f9cbd18ab54b66adaa3 -build/test/tga-to-png/rle-top-right.png 6238f9678cd9fa774e6d50ee6638f316d0b1148ade344c06b4ddebac4738ea90e93c19d5cca405fccdabfdb37898bc7f9bccce1f0d974f9cbd18ab54b66adaa3 -build/test/tga-to-crn/raw-bottom-left.crn fcf1da3fc69f6b05935deafacb1c637f44983b9992a7452f8f26a7787d5577c6548986366fae5fd6d300366de4acade853464e7656224b04673a7d129e006854 -build/test/tga-to-crn/raw-bottom-right.crn fcf1da3fc69f6b05935deafacb1c637f44983b9992a7452f8f26a7787d5577c6548986366fae5fd6d300366de4acade853464e7656224b04673a7d129e006854 -build/test/tga-to-crn/raw-top-left.crn fcf1da3fc69f6b05935deafacb1c637f44983b9992a7452f8f26a7787d5577c6548986366fae5fd6d300366de4acade853464e7656224b04673a7d129e006854 -build/test/tga-to-crn/raw-top-right.crn fcf1da3fc69f6b05935deafacb1c637f44983b9992a7452f8f26a7787d5577c6548986366fae5fd6d300366de4acade853464e7656224b04673a7d129e006854 -build/test/tga-to-crn/rle-bottom-left.crn fcf1da3fc69f6b05935deafacb1c637f44983b9992a7452f8f26a7787d5577c6548986366fae5fd6d300366de4acade853464e7656224b04673a7d129e006854 -build/test/tga-to-crn/rle-bottom-right.crn fcf1da3fc69f6b05935deafacb1c637f44983b9992a7452f8f26a7787d5577c6548986366fae5fd6d300366de4acade853464e7656224b04673a7d129e006854 -build/test/tga-to-crn/rle-top-left.crn fcf1da3fc69f6b05935deafacb1c637f44983b9992a7452f8f26a7787d5577c6548986366fae5fd6d300366de4acade853464e7656224b04673a7d129e006854 -build/test/tga-to-crn/rle-top-right.crn fcf1da3fc69f6b05935deafacb1c637f44983b9992a7452f8f26a7787d5577c6548986366fae5fd6d300366de4acade853464e7656224b04673a7d129e006854 -build/test/png-to-png/test-colormap1-alpha1.png f596534970da37597230ae60112a4fe4d08d950e03b99754a633d9d285f4683624b1f710727d6b3e556b80b9d44428bfa297dc898beaf6fecad29fe98bbc98cb -build/test/png-to-png/test-colormap2-alpha1.png 2ffd5907e77157dfaac01c786b5150dcf822699254bebdd51ef1797568208ae924a572d90bc3ed3a06cc5e524c4c0d5a3de7aa75ae99febc4638533e41a6dda0 -build/test/png-to-png/test-colormap4-alpha1.png f8cd5a9b1ae040baee41a7f378e18bba426f79532555e22fe2f8c605a8347d79e7b98bb8284130536512b187f9d8435d58665eddb8d36596296f84f05ee904ae -build/test/png-to-png/test-colormap8-alpha1.png 3561be7b7958d37913708664413c149942f302907bf5f928782c7cf6cc4b312082f51fea6d8a3271b93bd37ace03ec22af65c224d6e7617ed8644fbe2f95dc35 -build/test/png-to-png/test-grayscale1-alpha1.png 57876e1d84ada2604c5e2dbbfd08c19286c87c8f1843cf47a9b77b4f6561c3b414a269f924c2be74bba4662503ede0fd9d94cb0a084c35a9f63a3cce07dcb876 -build/test/png-to-png/test-grayscale1-alpha8.png 62ba2ca3669febcb88959224732c295d891f10942dcddf2494c052886c4f502b0e30c1238d05196ce8113c2c150fa4d96fc81436af5ad6a28f7b8a64a77bbe7f -build/test/png-to-png/test-grayscale8-alpha1.png 62ba2ca3669febcb88959224732c295d891f10942dcddf2494c052886c4f502b0e30c1238d05196ce8113c2c150fa4d96fc81436af5ad6a28f7b8a64a77bbe7f -build/test/png-to-png/test-rgb8-alpha8.png 21630317b2ed9957241f4982c4e8207f7a00af23e0dd5df863965dbca9dcefd9a3c4f77b15ea91141c6c35181e44801ff1b5d0a7ed62f0c11eddfdaf7122b1a9 -build/test/png-to-crn/test-colormap1-alpha1.crn f223d84528a0470cedeaf014c85f78ed16e1cc0f8990324fdbc087b190b6f972d1db6d829881c1414c5bd37b04c26794e7aa59b0d5b6eb535dae766a0c1d4ee9 -build/test/png-to-crn/test-colormap2-alpha1.crn 91b8372d3f16a0d198ac557b15cbafff4c3d456108dd4bee66902a20593a3ea2735ca2f052d3f6ca62cc31335e5a24f6f995116802ab46e3ded534168ba4fea3 -build/test/png-to-crn/test-colormap4-alpha1.crn 75c03a7c9181aa74a32040f9bea4e13317b342f1ce8c41e3a52ff8784f6cc28de08b4c002e089470873bbdd555d87a9c09c8a649c5ab4cda6614cf2f0cbf73e9 -build/test/png-to-crn/test-colormap8-alpha1.crn b9ca0def9743aa4790d12de2faa9ce0bc355c916af8c0c4440e9a87a20c482feb563222b364a20ee7f70abff97e7d6312d679700b64704c2783d03b8cd9a757b -build/test/png-to-crn/test-grayscale1-alpha1.crn 3a9175379f9512c74675a6d573bccdb0426d70e0ff9d63dacaa83e2c1f857dda14df93732a5776ef3625bdcf17d3ec51788623bb85e46c70a56bb306fd563b05 -build/test/png-to-crn/test-grayscale1-alpha8.crn 2660ab64afdb6eb70fdb131ef9927fc0b21bca021694bb4b8220451a9e0d5195306ef08d022ec7fb3b6535eed56efbe093e1108a116fdca81c5ce5a0c6e1da01 -build/test/png-to-crn/test-grayscale8-alpha1.crn 0e0dd5cf4f613eae1a5638060e6fbdcc1b8438e1c22ab27785a30efa8f0b20458e9b28b3da09b87d6bb9cab16f101908c64d74ab8247bef032de09449b380a77 -build/test/png-to-crn/test-rgb8-alpha8.crn 70aa2d510a77ef971cbc91c8eea5cc1c0d571722f3cd7eb5cf9e3b825987b87eb7653b0bfceee733f2a54d5fa9ce452df64ab441e64f327b78b492fd57c461a9 -build/test/bmp-to-crn/sample-default.crn 119f0f756811e56ba688c402ea317923d9665017aed19022ad19fc8396e45d3ca3bb7b5383f3edc00e859e31558a0865de88af71110529b16b89ded731070925 -build/test/bmp-to-crn/sample-vertical-flip.crn 119f0f756811e56ba688c402ea317923d9665017aed19022ad19fc8396e45d3ca3bb7b5383f3edc00e859e31558a0865de88af71110529b16b89ded731070925 -build/test/jpg-to-crn/black.crn 19fb840c8dbb7da96400af5af1c45fe48c7c7e19340d03fbe5a2af28ceecfb9efba26fe6c1bf46bd76164ecb0efe91cc9237917e8e431cd8365f80e9ffacc906 -build/test/example1-dds/unvanquished_64.dds ce98b21c574b4883e4aff4a0b92fd0f533f22e00ab753686f353111fa7503287c2c4dba25f2c2670508630d79b59464578e094461bad81ad803e1d58ed5e69f8 -build/test/example1-crn/unvanquished_64.crn a3b526e95f44b6a4c919bc8eb79f4debf592f0bccc163c900cd1b6f9add0ce58c3db9fc8dac1828d350bbcd915823d7743a0c114a533fbc08c163fcb4846d2f5 -build/test/example1-crn/unvanquished_64.dds 2aae5c5bd8c6a82d1cf3fc9d9da12fe3fc5be8651261ff1cb359e754308fd81e93bf304aeb55ada0bad50794d6e97d3e48084e5a4f48fa7caec4ed954152bae9 -build/test/example2-dds/unvanquished_64.dds 2aae5c5bd8c6a82d1cf3fc9d9da12fe3fc5be8651261ff1cb359e754308fd81e93bf304aeb55ada0bad50794d6e97d3e48084e5a4f48fa7caec4ed954152bae9 -build/test/example3-dds/unvanquished_64.dds a719dd943bc4e30be0c124e6bafb1d8ba4002b9233e6208104f93046edd4ddd7aea7815430ae2c0b7efe259943f6a8fe109f56ea457e43cde79295ae7ac85b43 +build/test/crunch-icon-png-to-all/unvanquished_64.tga 34434170b06843b2d4fb5964a4b8751ec3a151a7d03e351e45a5967508f6a21f6e40ffc214bb46640105c4058bc35e196ecb5dd3261528a64acfeff52034fb40 +build/test/crunch-icon-png-to-all/unvanquished_64.bmp 1c5f28be8151a8125346e9cf17b1bf6e3f9fe27f6947b164b7eefa8fd3732a2e4dff173c354a0cd4ed599cd604d4b8f916c0575b0a4b4b508acc68dc9b4067ae +build/test/crunch-icon-png-to-all/unvanquished_64.png 71bb28da97cd778b99f131acaeb1c28ea37bae295a9e9934bed339508d8428587120c0da8f5bbc7963cdb77741ef789414f9d0d2c1e0da46026336efde147cc5 +build/test/crunch-icon-png-to-all/unvanquished_64.crn a3b526e95f44b6a4c919bc8eb79f4debf592f0bccc163c900cd1b6f9add0ce58c3db9fc8dac1828d350bbcd915823d7743a0c114a533fbc08c163fcb4846d2f5 +build/test/crunch-icon-png-to-all/unvanquished_64.dds ce98b21c574b4883e4aff4a0b92fd0f533f22e00ab753686f353111fa7503287c2c4dba25f2c2670508630d79b59464578e094461bad81ad803e1d58ed5e69f8 +build/test/crunch-icon-png-to-all/unvanquished_64.ktx d82eab591163d802231722ef325571735971b6a9b0703ed8ea59b4a4144189825d96d3455605426453fb3ad8d7cc61f931c52b3e73df2bb6787f7408baeb4ac7 +build/test/crunch-icon-png-to-all/unvanquished_64.jpg 6cd22de7e2e5baced5ef16e84f816dde3049f822459d552ced4dcd4e3f9a16be82ee0747ed1479fe8339991176004b4ccc90380b7ef51292c7d9b518503a348d +build/test/crunch-icon-crn-to-all/unvanquished_64.tga 71014682514ec9d2baa19444fd026ceb65aa06e86d32f34b326f336e47cf4ea351aa7c2eee6a1f0fbf290658fae72c24a86c4e167272143012d384dd6d6b1ce9 +build/test/crunch-icon-crn-to-all/unvanquished_64.bmp a6d6886879f9aade027ecb4d55f2092c3af98c297aaf2f689d77a11870156099853a41993575a9a313a23e399b3bcb06dcc0eac46b877639f3875972af7933d7 +build/test/crunch-icon-crn-to-all/unvanquished_64.png dd9d45459bd5a3ed74d494838a3d61ed4baea9960300cb3f1d54ecc923f742c9036fe13a338da6db2efc98049a2e206cb7c0e1cba6d79ea0e3ad86473af13e83 +build/test/crunch-icon-crn-to-all/unvanquished_64.crn 1596d312526073fd8923faefbed879fb1299ee53eeb54787f2b66754768d9a8160d9921b13aa9b7c781eb088be41cec0f3b703713aede43116a2b62f284f39f9 +build/test/crunch-icon-crn-to-all/unvanquished_64.dds 2aae5c5bd8c6a82d1cf3fc9d9da12fe3fc5be8651261ff1cb359e754308fd81e93bf304aeb55ada0bad50794d6e97d3e48084e5a4f48fa7caec4ed954152bae9 +build/test/crunch-icon-crn-to-all/unvanquished_64.ktx 10a45e43609c49b4929b91293e203557d8f5c1b146aa8162d946248e8fa24709e1645ed1fc40c2c1a541567b3d1287c7885cb0185230b660386825c4d03db22f +build/test/crunch-icon-crn-to-all/unvanquished_64.jpg f68e74b3c8a404fc867345411c8778228728897e5d0870e071d6ec67fd1fccb45b3b97993575c3ed66d80cd6a7d60845e8fe68780ac322fe1d46adc57014fa8b +build/test/crunch-icon-dds-to-all/unvanquished_64.tga 46e0c1796f7b1a998829919e14f69cb43d83b895585aca69ad17e0f6cd9839d20b383a6eca161320b87bb7161cbedc116466ec27319078a011b59fe16dc6ce26 +build/test/crunch-icon-dds-to-all/unvanquished_64.bmp 9d1b7c76f345332fa53e9b517ee47ba142d0c9def2b27b908af67b3c19edec0882f183f83eb9022cc2e726082193d7c82394a92b068137a4698a505d8bab0080 +build/test/crunch-icon-dds-to-all/unvanquished_64.png cd5b04f9c081f91a2d3a3fbf4484153feec5f0c027608f48a51209596ff604680ab93de70fbb616dc3fecea3fa6d240ac7a2e294bb0fc8244766375ffae54230 +build/test/crunch-icon-dds-to-all/unvanquished_64.crn 0db1f3bcf6240389be389dc2a94fdabf97aab439d12aabc6cca2ccb69559759fc414d2bc7735d0d4812b895ffb4085172f6a48439a104d79e0b5d65124b1f002 +build/test/crunch-icon-dds-to-all/unvanquished_64.dds ce98b21c574b4883e4aff4a0b92fd0f533f22e00ab753686f353111fa7503287c2c4dba25f2c2670508630d79b59464578e094461bad81ad803e1d58ed5e69f8 +build/test/crunch-icon-dds-to-all/unvanquished_64.ktx dbbea021367254587000704d11b5cf7982d3ac4a42edd9489b7b2ec49da796d4346c68c6ee1a163e6880f0efaeafc0235b739c2a4acbd1ed27750657af36e3df +build/test/crunch-icon-dds-to-all/unvanquished_64.jpg 3a2bfcc1f2ecb18371163bb16812096b019fec176731f015a301384d605910702d168f8762076fa5d912760947c8df8d4026fd9b038c0d94360d1bf744f592a2 +build/test/crunch-icon-ktx-to-all/unvanquished_64.tga 516bc1db1bfcda9c7f466cbb6f45b7608d9803391ae6d32e8de30d8e8102ef2de623cf6adfc74d471202ab14930dc4babe93a41b6c35b90e250a0de6b690fe7e +build/test/crunch-icon-ktx-to-all/unvanquished_64.bmp 0493fc75c26629d3a532e68e3778bb25ed6de4d81f3a39eb34a65a1990aa4072aa6b0948dc1ed3122b7ecf45e6be139d05b008ad7277649fc244d039404503fd +build/test/crunch-icon-ktx-to-all/unvanquished_64.png 7b5da6fea08f73d0e06791d000780820574d08e14c00c06ba2ef208296ebcfbc427175d72d6f2797e7240930782c70bf717a1e966fdd9aaada4a8b826ff9a2df +build/test/crunch-icon-ktx-to-all/unvanquished_64.crn 7cb43bf1f8fa87735d7643c3590b52bf918b6e202095787f2305c7469db957185871434b101fb2e2fb7d57e55fc0dc635994b8ed2765edb6b453f10931508f6b +build/test/crunch-icon-ktx-to-all/unvanquished_64.dds b2cecbf2870835ec04a8ed69012d294402017fa565393f8266a6dcc868f9c5b472b8b568c98250b5beb5b0d43ee9d9dc06d04cca4f35073541ba8331d55a6b46 +build/test/crunch-icon-ktx-to-all/unvanquished_64.ktx d82eab591163d802231722ef325571735971b6a9b0703ed8ea59b4a4144189825d96d3455605426453fb3ad8d7cc61f931c52b3e73df2bb6787f7408baeb4ac7 +build/test/crunch-icon-ktx-to-all/unvanquished_64.jpg c350e1e0d90b8d519a0cfdbad85c972a6f6c077988b8e96f5daef415f816b3ace2bb87c79772c6d25954caeb598ef3af7700f0bc10914349161fe1a4cc1f2d73 +build/test/crunch-icon-jpg-to-all/unvanquished_64.tga 4ea9e7b358a01fe1b09e9c16845a0249daddc87010403f33c525cfca69af85cb561019221adc8beae4172908d48a951df2d8bf65d63ae2ee183ee5c6df424c99 +build/test/crunch-icon-jpg-to-all/unvanquished_64.bmp 20636873950cde44336751526644ea6e979b5bdf1f45a166a40b583977a6f6cce6db32ab9b14d66eba1777ab8447fbc926a91b095c27cb4487e04d1f36ed3b0b +build/test/crunch-icon-jpg-to-all/unvanquished_64.png 24124a42c01f243ec2864cc70d399b685183acb04216a0b21133b454f4d69d7606b3190119ff8c869c5dd4a28f77fbc352f3717747e32099f507cc7b790c39e2 +build/test/crunch-icon-jpg-to-all/unvanquished_64.crn f7bf97cafc570eb16335006623b887de1b05591035a20f9399edc2386c59ab43832d4741a3763210c022cb65ee7a0facb29138bb7daf0b71f6b9059c1852c445 +build/test/crunch-icon-jpg-to-all/unvanquished_64.dds c1b3b785d107ba2f18097fb1cf009f598dbda9e797741ed66bd6cf9b1c376447f0990bb3890af12e3c73c4e02410adc0b5be6f386867d8ffc6aded53adb5f309 +build/test/crunch-icon-jpg-to-all/unvanquished_64.ktx 233e5d029b08cc45f8b3e9853edc6dc5dd5cab49cb0f95e870b9b6db917b2ddceaa2756d55aec1785c147375bc7a37030e3a8cde77d364f73d86043e99a7969a +build/test/crunch-icon-jpg-to-all/unvanquished_64.jpg abe6f8c6820c4d0762a00b6ce0789834601d764b1a9a330eeb3b49d5209ee9ca2968e154d53e74912e05a4b99467df1710c12d62354cdfc8d49c9cd315de2b65 +build/test/crunch-icon-tga-to-all/unvanquished_64.tga 34434170b06843b2d4fb5964a4b8751ec3a151a7d03e351e45a5967508f6a21f6e40ffc214bb46640105c4058bc35e196ecb5dd3261528a64acfeff52034fb40 +build/test/crunch-icon-tga-to-all/unvanquished_64.bmp 1c5f28be8151a8125346e9cf17b1bf6e3f9fe27f6947b164b7eefa8fd3732a2e4dff173c354a0cd4ed599cd604d4b8f916c0575b0a4b4b508acc68dc9b4067ae +build/test/crunch-icon-tga-to-all/unvanquished_64.png 71bb28da97cd778b99f131acaeb1c28ea37bae295a9e9934bed339508d8428587120c0da8f5bbc7963cdb77741ef789414f9d0d2c1e0da46026336efde147cc5 +build/test/crunch-icon-tga-to-all/unvanquished_64.crn a3b526e95f44b6a4c919bc8eb79f4debf592f0bccc163c900cd1b6f9add0ce58c3db9fc8dac1828d350bbcd915823d7743a0c114a533fbc08c163fcb4846d2f5 +build/test/crunch-icon-tga-to-all/unvanquished_64.dds ce98b21c574b4883e4aff4a0b92fd0f533f22e00ab753686f353111fa7503287c2c4dba25f2c2670508630d79b59464578e094461bad81ad803e1d58ed5e69f8 +build/test/crunch-icon-tga-to-all/unvanquished_64.ktx d82eab591163d802231722ef325571735971b6a9b0703ed8ea59b4a4144189825d96d3455605426453fb3ad8d7cc61f931c52b3e73df2bb6787f7408baeb4ac7 +build/test/crunch-icon-tga-to-all/unvanquished_64.jpg 6cd22de7e2e5baced5ef16e84f816dde3049f822459d552ced4dcd4e3f9a16be82ee0747ed1479fe8339991176004b4ccc90380b7ef51292c7d9b518503a348d +build/test/crunch-icon-bmp-to-all/unvanquished_64.tga 34434170b06843b2d4fb5964a4b8751ec3a151a7d03e351e45a5967508f6a21f6e40ffc214bb46640105c4058bc35e196ecb5dd3261528a64acfeff52034fb40 +build/test/crunch-icon-bmp-to-all/unvanquished_64.bmp 1c5f28be8151a8125346e9cf17b1bf6e3f9fe27f6947b164b7eefa8fd3732a2e4dff173c354a0cd4ed599cd604d4b8f916c0575b0a4b4b508acc68dc9b4067ae +build/test/crunch-icon-bmp-to-all/unvanquished_64.png 71bb28da97cd778b99f131acaeb1c28ea37bae295a9e9934bed339508d8428587120c0da8f5bbc7963cdb77741ef789414f9d0d2c1e0da46026336efde147cc5 +build/test/crunch-icon-bmp-to-all/unvanquished_64.crn a3b526e95f44b6a4c919bc8eb79f4debf592f0bccc163c900cd1b6f9add0ce58c3db9fc8dac1828d350bbcd915823d7743a0c114a533fbc08c163fcb4846d2f5 +build/test/crunch-icon-bmp-to-all/unvanquished_64.dds ce98b21c574b4883e4aff4a0b92fd0f533f22e00ab753686f353111fa7503287c2c4dba25f2c2670508630d79b59464578e094461bad81ad803e1d58ed5e69f8 +build/test/crunch-icon-bmp-to-all/unvanquished_64.ktx d82eab591163d802231722ef325571735971b6a9b0703ed8ea59b4a4144189825d96d3455605426453fb3ad8d7cc61f931c52b3e73df2bb6787f7408baeb4ac7 +build/test/crunch-icon-bmp-to-all/unvanquished_64.jpg 6cd22de7e2e5baced5ef16e84f816dde3049f822459d552ced4dcd4e3f9a16be82ee0747ed1479fe8339991176004b4ccc90380b7ef51292c7d9b518503a348d +build/test/crunch-orientation-tga-to-all/sample-flat-bottom-left.tga e66a30ce22d193a2ecfec0fdcccde9579f01b547ea446c0542d155450c63df7bf443e7daf73253b22369af3195987c25336f1505fba86b82ca34f7042c025801 +build/test/crunch-orientation-tga-to-all/sample-flat-bottom-left.bmp de14bb8dd4543d885bf674958753c3b0855bc8143c9e1a22e69404b81118d3fa8c2c24dc46b4ff786f1565f85ef1ae2b49e83000361d8571fcee754069bfd384 +build/test/crunch-orientation-tga-to-all/sample-flat-bottom-left.png 6238f9678cd9fa774e6d50ee6638f316d0b1148ade344c06b4ddebac4738ea90e93c19d5cca405fccdabfdb37898bc7f9bccce1f0d974f9cbd18ab54b66adaa3 +build/test/crunch-orientation-tga-to-all/sample-flat-bottom-left.crn fcf1da3fc69f6b05935deafacb1c637f44983b9992a7452f8f26a7787d5577c6548986366fae5fd6d300366de4acade853464e7656224b04673a7d129e006854 +build/test/crunch-orientation-tga-to-all/sample-flat-bottom-left.dds 6ca6241445e994cd09c5188789a60d3feff3e9ccb8482e1db2101aca3970675d0dae4049872199cfd2682face71cb38d75d879875408be0afd05f06f5c53f4cb +build/test/crunch-orientation-tga-to-all/sample-flat-bottom-left.ktx 35407f5802cec781737c0ca90600cbf69234e2026cc3efabf4da6dbf2d98f3e7a707e2c02c7fa4858eb79fb4212ac067dad9f30098c9d21c030e7f8e3a4d71be +build/test/crunch-orientation-tga-to-all/sample-flat-bottom-left.jpg 9d28259e5dac8c885737aafa0f29f07cec917698676643c59c8657dc901c338a30fb27385ce70957aeb60178340d19f1b31bdfa9519f0812164f275f89ab4e16 +build/test/crunch-orientation-tga-to-all/sample-flat-bottom-right.tga e66a30ce22d193a2ecfec0fdcccde9579f01b547ea446c0542d155450c63df7bf443e7daf73253b22369af3195987c25336f1505fba86b82ca34f7042c025801 +build/test/crunch-orientation-tga-to-all/sample-flat-bottom-right.bmp de14bb8dd4543d885bf674958753c3b0855bc8143c9e1a22e69404b81118d3fa8c2c24dc46b4ff786f1565f85ef1ae2b49e83000361d8571fcee754069bfd384 +build/test/crunch-orientation-tga-to-all/sample-flat-bottom-right.png 6238f9678cd9fa774e6d50ee6638f316d0b1148ade344c06b4ddebac4738ea90e93c19d5cca405fccdabfdb37898bc7f9bccce1f0d974f9cbd18ab54b66adaa3 +build/test/crunch-orientation-tga-to-all/sample-flat-bottom-right.crn fcf1da3fc69f6b05935deafacb1c637f44983b9992a7452f8f26a7787d5577c6548986366fae5fd6d300366de4acade853464e7656224b04673a7d129e006854 +build/test/crunch-orientation-tga-to-all/sample-flat-bottom-right.dds 6ca6241445e994cd09c5188789a60d3feff3e9ccb8482e1db2101aca3970675d0dae4049872199cfd2682face71cb38d75d879875408be0afd05f06f5c53f4cb +build/test/crunch-orientation-tga-to-all/sample-flat-bottom-right.ktx 35407f5802cec781737c0ca90600cbf69234e2026cc3efabf4da6dbf2d98f3e7a707e2c02c7fa4858eb79fb4212ac067dad9f30098c9d21c030e7f8e3a4d71be +build/test/crunch-orientation-tga-to-all/sample-flat-bottom-right.jpg 9d28259e5dac8c885737aafa0f29f07cec917698676643c59c8657dc901c338a30fb27385ce70957aeb60178340d19f1b31bdfa9519f0812164f275f89ab4e16 +build/test/crunch-orientation-tga-to-all/sample-flat-top-left.tga e66a30ce22d193a2ecfec0fdcccde9579f01b547ea446c0542d155450c63df7bf443e7daf73253b22369af3195987c25336f1505fba86b82ca34f7042c025801 +build/test/crunch-orientation-tga-to-all/sample-flat-top-left.bmp de14bb8dd4543d885bf674958753c3b0855bc8143c9e1a22e69404b81118d3fa8c2c24dc46b4ff786f1565f85ef1ae2b49e83000361d8571fcee754069bfd384 +build/test/crunch-orientation-tga-to-all/sample-flat-top-left.png 6238f9678cd9fa774e6d50ee6638f316d0b1148ade344c06b4ddebac4738ea90e93c19d5cca405fccdabfdb37898bc7f9bccce1f0d974f9cbd18ab54b66adaa3 +build/test/crunch-orientation-tga-to-all/sample-flat-top-left.crn fcf1da3fc69f6b05935deafacb1c637f44983b9992a7452f8f26a7787d5577c6548986366fae5fd6d300366de4acade853464e7656224b04673a7d129e006854 +build/test/crunch-orientation-tga-to-all/sample-flat-top-left.dds 6ca6241445e994cd09c5188789a60d3feff3e9ccb8482e1db2101aca3970675d0dae4049872199cfd2682face71cb38d75d879875408be0afd05f06f5c53f4cb +build/test/crunch-orientation-tga-to-all/sample-flat-top-left.ktx 35407f5802cec781737c0ca90600cbf69234e2026cc3efabf4da6dbf2d98f3e7a707e2c02c7fa4858eb79fb4212ac067dad9f30098c9d21c030e7f8e3a4d71be +build/test/crunch-orientation-tga-to-all/sample-flat-top-left.jpg 9d28259e5dac8c885737aafa0f29f07cec917698676643c59c8657dc901c338a30fb27385ce70957aeb60178340d19f1b31bdfa9519f0812164f275f89ab4e16 +build/test/crunch-orientation-tga-to-all/sample-flat-top-right.tga e66a30ce22d193a2ecfec0fdcccde9579f01b547ea446c0542d155450c63df7bf443e7daf73253b22369af3195987c25336f1505fba86b82ca34f7042c025801 +build/test/crunch-orientation-tga-to-all/sample-flat-top-right.bmp de14bb8dd4543d885bf674958753c3b0855bc8143c9e1a22e69404b81118d3fa8c2c24dc46b4ff786f1565f85ef1ae2b49e83000361d8571fcee754069bfd384 +build/test/crunch-orientation-tga-to-all/sample-flat-top-right.png 6238f9678cd9fa774e6d50ee6638f316d0b1148ade344c06b4ddebac4738ea90e93c19d5cca405fccdabfdb37898bc7f9bccce1f0d974f9cbd18ab54b66adaa3 +build/test/crunch-orientation-tga-to-all/sample-flat-top-right.crn fcf1da3fc69f6b05935deafacb1c637f44983b9992a7452f8f26a7787d5577c6548986366fae5fd6d300366de4acade853464e7656224b04673a7d129e006854 +build/test/crunch-orientation-tga-to-all/sample-flat-top-right.dds 6ca6241445e994cd09c5188789a60d3feff3e9ccb8482e1db2101aca3970675d0dae4049872199cfd2682face71cb38d75d879875408be0afd05f06f5c53f4cb +build/test/crunch-orientation-tga-to-all/sample-flat-top-right.ktx 35407f5802cec781737c0ca90600cbf69234e2026cc3efabf4da6dbf2d98f3e7a707e2c02c7fa4858eb79fb4212ac067dad9f30098c9d21c030e7f8e3a4d71be +build/test/crunch-orientation-tga-to-all/sample-flat-top-right.jpg 9d28259e5dac8c885737aafa0f29f07cec917698676643c59c8657dc901c338a30fb27385ce70957aeb60178340d19f1b31bdfa9519f0812164f275f89ab4e16 +build/test/crunch-orientation-tga-to-all/sample-rle-bottom-left.tga e66a30ce22d193a2ecfec0fdcccde9579f01b547ea446c0542d155450c63df7bf443e7daf73253b22369af3195987c25336f1505fba86b82ca34f7042c025801 +build/test/crunch-orientation-tga-to-all/sample-rle-bottom-left.bmp de14bb8dd4543d885bf674958753c3b0855bc8143c9e1a22e69404b81118d3fa8c2c24dc46b4ff786f1565f85ef1ae2b49e83000361d8571fcee754069bfd384 +build/test/crunch-orientation-tga-to-all/sample-rle-bottom-left.png 6238f9678cd9fa774e6d50ee6638f316d0b1148ade344c06b4ddebac4738ea90e93c19d5cca405fccdabfdb37898bc7f9bccce1f0d974f9cbd18ab54b66adaa3 +build/test/crunch-orientation-tga-to-all/sample-rle-bottom-left.crn fcf1da3fc69f6b05935deafacb1c637f44983b9992a7452f8f26a7787d5577c6548986366fae5fd6d300366de4acade853464e7656224b04673a7d129e006854 +build/test/crunch-orientation-tga-to-all/sample-rle-bottom-left.dds 6ca6241445e994cd09c5188789a60d3feff3e9ccb8482e1db2101aca3970675d0dae4049872199cfd2682face71cb38d75d879875408be0afd05f06f5c53f4cb +build/test/crunch-orientation-tga-to-all/sample-rle-bottom-left.ktx 35407f5802cec781737c0ca90600cbf69234e2026cc3efabf4da6dbf2d98f3e7a707e2c02c7fa4858eb79fb4212ac067dad9f30098c9d21c030e7f8e3a4d71be +build/test/crunch-orientation-tga-to-all/sample-rle-bottom-left.jpg 9d28259e5dac8c885737aafa0f29f07cec917698676643c59c8657dc901c338a30fb27385ce70957aeb60178340d19f1b31bdfa9519f0812164f275f89ab4e16 +build/test/crunch-orientation-tga-to-all/sample-rle-bottom-right.tga e66a30ce22d193a2ecfec0fdcccde9579f01b547ea446c0542d155450c63df7bf443e7daf73253b22369af3195987c25336f1505fba86b82ca34f7042c025801 +build/test/crunch-orientation-tga-to-all/sample-rle-bottom-right.bmp de14bb8dd4543d885bf674958753c3b0855bc8143c9e1a22e69404b81118d3fa8c2c24dc46b4ff786f1565f85ef1ae2b49e83000361d8571fcee754069bfd384 +build/test/crunch-orientation-tga-to-all/sample-rle-bottom-right.png 6238f9678cd9fa774e6d50ee6638f316d0b1148ade344c06b4ddebac4738ea90e93c19d5cca405fccdabfdb37898bc7f9bccce1f0d974f9cbd18ab54b66adaa3 +build/test/crunch-orientation-tga-to-all/sample-rle-bottom-right.crn fcf1da3fc69f6b05935deafacb1c637f44983b9992a7452f8f26a7787d5577c6548986366fae5fd6d300366de4acade853464e7656224b04673a7d129e006854 +build/test/crunch-orientation-tga-to-all/sample-rle-bottom-right.dds 6ca6241445e994cd09c5188789a60d3feff3e9ccb8482e1db2101aca3970675d0dae4049872199cfd2682face71cb38d75d879875408be0afd05f06f5c53f4cb +build/test/crunch-orientation-tga-to-all/sample-rle-bottom-right.ktx 35407f5802cec781737c0ca90600cbf69234e2026cc3efabf4da6dbf2d98f3e7a707e2c02c7fa4858eb79fb4212ac067dad9f30098c9d21c030e7f8e3a4d71be +build/test/crunch-orientation-tga-to-all/sample-rle-bottom-right.jpg 9d28259e5dac8c885737aafa0f29f07cec917698676643c59c8657dc901c338a30fb27385ce70957aeb60178340d19f1b31bdfa9519f0812164f275f89ab4e16 +build/test/crunch-orientation-tga-to-all/sample-rle-top-left.tga e66a30ce22d193a2ecfec0fdcccde9579f01b547ea446c0542d155450c63df7bf443e7daf73253b22369af3195987c25336f1505fba86b82ca34f7042c025801 +build/test/crunch-orientation-tga-to-all/sample-rle-top-left.bmp de14bb8dd4543d885bf674958753c3b0855bc8143c9e1a22e69404b81118d3fa8c2c24dc46b4ff786f1565f85ef1ae2b49e83000361d8571fcee754069bfd384 +build/test/crunch-orientation-tga-to-all/sample-rle-top-left.png 6238f9678cd9fa774e6d50ee6638f316d0b1148ade344c06b4ddebac4738ea90e93c19d5cca405fccdabfdb37898bc7f9bccce1f0d974f9cbd18ab54b66adaa3 +build/test/crunch-orientation-tga-to-all/sample-rle-top-left.crn fcf1da3fc69f6b05935deafacb1c637f44983b9992a7452f8f26a7787d5577c6548986366fae5fd6d300366de4acade853464e7656224b04673a7d129e006854 +build/test/crunch-orientation-tga-to-all/sample-rle-top-left.dds 6ca6241445e994cd09c5188789a60d3feff3e9ccb8482e1db2101aca3970675d0dae4049872199cfd2682face71cb38d75d879875408be0afd05f06f5c53f4cb +build/test/crunch-orientation-tga-to-all/sample-rle-top-left.ktx 35407f5802cec781737c0ca90600cbf69234e2026cc3efabf4da6dbf2d98f3e7a707e2c02c7fa4858eb79fb4212ac067dad9f30098c9d21c030e7f8e3a4d71be +build/test/crunch-orientation-tga-to-all/sample-rle-top-left.jpg 9d28259e5dac8c885737aafa0f29f07cec917698676643c59c8657dc901c338a30fb27385ce70957aeb60178340d19f1b31bdfa9519f0812164f275f89ab4e16 +build/test/crunch-orientation-tga-to-all/sample-rle-top-right.tga e66a30ce22d193a2ecfec0fdcccde9579f01b547ea446c0542d155450c63df7bf443e7daf73253b22369af3195987c25336f1505fba86b82ca34f7042c025801 +build/test/crunch-orientation-tga-to-all/sample-rle-top-right.bmp de14bb8dd4543d885bf674958753c3b0855bc8143c9e1a22e69404b81118d3fa8c2c24dc46b4ff786f1565f85ef1ae2b49e83000361d8571fcee754069bfd384 +build/test/crunch-orientation-tga-to-all/sample-rle-top-right.png 6238f9678cd9fa774e6d50ee6638f316d0b1148ade344c06b4ddebac4738ea90e93c19d5cca405fccdabfdb37898bc7f9bccce1f0d974f9cbd18ab54b66adaa3 +build/test/crunch-orientation-tga-to-all/sample-rle-top-right.crn fcf1da3fc69f6b05935deafacb1c637f44983b9992a7452f8f26a7787d5577c6548986366fae5fd6d300366de4acade853464e7656224b04673a7d129e006854 +build/test/crunch-orientation-tga-to-all/sample-rle-top-right.dds 6ca6241445e994cd09c5188789a60d3feff3e9ccb8482e1db2101aca3970675d0dae4049872199cfd2682face71cb38d75d879875408be0afd05f06f5c53f4cb +build/test/crunch-orientation-tga-to-all/sample-rle-top-right.ktx 35407f5802cec781737c0ca90600cbf69234e2026cc3efabf4da6dbf2d98f3e7a707e2c02c7fa4858eb79fb4212ac067dad9f30098c9d21c030e7f8e3a4d71be +build/test/crunch-orientation-tga-to-all/sample-rle-top-right.jpg 9d28259e5dac8c885737aafa0f29f07cec917698676643c59c8657dc901c338a30fb27385ce70957aeb60178340d19f1b31bdfa9519f0812164f275f89ab4e16 +build/test/crunch-orientation-bmp-to-all/sample-default.tga b5fd079dc5df3cfa1daee7747c684e096c9f06e6034066840c59f9576ec70773b3d56b86b98bb21e289fe04e98f3182f61b26bc71045ff779fe8dab6c20d336c +build/test/crunch-orientation-bmp-to-all/sample-default.bmp 71417ab4e02059f222780f64572aa3b84c3f9b7b10451a9178c2ef8e32598e6923a4213ce7f67a320ace55b7eaf264cd6f56f54f4ac3ea6cc49608614a7b7155 +build/test/crunch-orientation-bmp-to-all/sample-default.png f93441d7abf885f128eb32df172768138a0ff3b6aa295da9e1e5dd7b1bf6e651fa03cb115d856dc2e4998990f6d7355727b4e2ab8ecaf4019d72a38cffaa9d38 +build/test/crunch-orientation-bmp-to-all/sample-default.crn 119f0f756811e56ba688c402ea317923d9665017aed19022ad19fc8396e45d3ca3bb7b5383f3edc00e859e31558a0865de88af71110529b16b89ded731070925 +build/test/crunch-orientation-bmp-to-all/sample-default.dds 6d8963bd2cac90d0064ec0a392bb5f2223dc9c0e47c47c550ce517eca5115e86b1b7e39b1afd892f16581f6bd3d552bbfb8d55b7077008d7f1c4b102b88f6cb4 +build/test/crunch-orientation-bmp-to-all/sample-default.ktx f4c0b5e52886d982ba8602798d809333c3d80db0df605ea4b65dfaf90ed899cf979dc6f9a25b6e6aa8ae524f36e8dadc8826954906a874c6aa7800596961b19a +build/test/crunch-orientation-bmp-to-all/sample-default.jpg 58da38d118e4d987f0a829e536073095aeef56f8e6e3908793c09496bd9e209e46eea43166ecddd39ff0d479913b0f5d2e481c1c051ad5a53dfd21643e278789 +build/test/crunch-orientation-bmp-to-all/sample-vertical-flip.tga b5fd079dc5df3cfa1daee7747c684e096c9f06e6034066840c59f9576ec70773b3d56b86b98bb21e289fe04e98f3182f61b26bc71045ff779fe8dab6c20d336c +build/test/crunch-orientation-bmp-to-all/sample-vertical-flip.bmp 71417ab4e02059f222780f64572aa3b84c3f9b7b10451a9178c2ef8e32598e6923a4213ce7f67a320ace55b7eaf264cd6f56f54f4ac3ea6cc49608614a7b7155 +build/test/crunch-orientation-bmp-to-all/sample-vertical-flip.png f93441d7abf885f128eb32df172768138a0ff3b6aa295da9e1e5dd7b1bf6e651fa03cb115d856dc2e4998990f6d7355727b4e2ab8ecaf4019d72a38cffaa9d38 +build/test/crunch-orientation-bmp-to-all/sample-vertical-flip.crn 119f0f756811e56ba688c402ea317923d9665017aed19022ad19fc8396e45d3ca3bb7b5383f3edc00e859e31558a0865de88af71110529b16b89ded731070925 +build/test/crunch-orientation-bmp-to-all/sample-vertical-flip.dds 6d8963bd2cac90d0064ec0a392bb5f2223dc9c0e47c47c550ce517eca5115e86b1b7e39b1afd892f16581f6bd3d552bbfb8d55b7077008d7f1c4b102b88f6cb4 +build/test/crunch-orientation-bmp-to-all/sample-vertical-flip.ktx f4c0b5e52886d982ba8602798d809333c3d80db0df605ea4b65dfaf90ed899cf979dc6f9a25b6e6aa8ae524f36e8dadc8826954906a874c6aa7800596961b19a +build/test/crunch-orientation-bmp-to-all/sample-vertical-flip.jpg 58da38d118e4d987f0a829e536073095aeef56f8e6e3908793c09496bd9e209e46eea43166ecddd39ff0d479913b0f5d2e481c1c051ad5a53dfd21643e278789 +build/test/crunch-transparency-png-to-all/sample-colormap1-alpha1.tga 932155fd73b34968f542818c4c679d321fa0764764b79672c1338bb8b7a16a480ed7af63441684aaab3262898458dfd28bae196122c3ea1c4a9fa69ecafb39ab +build/test/crunch-transparency-png-to-all/sample-colormap1-alpha1.bmp 7db050cc460a231e20b75f59b78955a440774ddab23e087b7a89d92e069b1e71581afa417b9718d92c52fd26d93a3fad924cfbea6856465d0ae762f720cc2778 +build/test/crunch-transparency-png-to-all/sample-colormap1-alpha1.png f596534970da37597230ae60112a4fe4d08d950e03b99754a633d9d285f4683624b1f710727d6b3e556b80b9d44428bfa297dc898beaf6fecad29fe98bbc98cb +build/test/crunch-transparency-png-to-all/sample-colormap1-alpha1.crn f223d84528a0470cedeaf014c85f78ed16e1cc0f8990324fdbc087b190b6f972d1db6d829881c1414c5bd37b04c26794e7aa59b0d5b6eb535dae766a0c1d4ee9 +build/test/crunch-transparency-png-to-all/sample-colormap1-alpha1.dds d2d7c95ea07f121086c19476732a96ef4b586a953640b69216abfa38001b7e5e224186f4f69c054501f9050d3bb4ee9eb0a82af833f93b67d200eb33bea52747 +build/test/crunch-transparency-png-to-all/sample-colormap1-alpha1.ktx a3b1337e5594160aa37697343fb9790e18ec484473bfc98d7f08de261f80add3387e6b5e6823637c6d57d7470653a689596b4b2df30584b38df31f48e8f8f6ad +build/test/crunch-transparency-png-to-all/sample-colormap1-alpha1.jpg 1ba300cc42e403c0e4cdd592f519e42ee9ddb923d74085901e20c2d922dfff4f434f7d1ddc279710368d7b2eecfbb48e34f277031a069b2cdabf621582fe3e47 +build/test/crunch-transparency-png-to-all/sample-colormap2-alpha1.tga 4c1bdcb94e0d1ebe01eb36816f9480b5b69be10aec5d7705a70f8b336b1cc7341fb4050df5a09b642247df37c0ac6262c60e4812ab308cb3c908301ed9d53423 +build/test/crunch-transparency-png-to-all/sample-colormap2-alpha1.bmp a0960fe49de42e991aad3145dfcffdb3f1b57435e373b2bb130101418c690b43dd0cb69e75ec6cf34efa09a88b002cb38eba6cef9652911bdd64ab94f7da9f93 +build/test/crunch-transparency-png-to-all/sample-colormap2-alpha1.png 2ffd5907e77157dfaac01c786b5150dcf822699254bebdd51ef1797568208ae924a572d90bc3ed3a06cc5e524c4c0d5a3de7aa75ae99febc4638533e41a6dda0 +build/test/crunch-transparency-png-to-all/sample-colormap2-alpha1.crn 91b8372d3f16a0d198ac557b15cbafff4c3d456108dd4bee66902a20593a3ea2735ca2f052d3f6ca62cc31335e5a24f6f995116802ab46e3ded534168ba4fea3 +build/test/crunch-transparency-png-to-all/sample-colormap2-alpha1.dds 7c991556ed3f6941f01b89b9f12c8f1c43f3b5d5b3db63d4fb65f073a69171b1eb45fd234d0393c8e89d5079526a1d7f0193a83d0ed12acaf2a6cb94a5c484a2 +build/test/crunch-transparency-png-to-all/sample-colormap2-alpha1.ktx 34ace365deb46c60f1d79fff10df61d0d2dbd4b5037fdda588e8b97d473e8ce51bda4cb25c97f1fb3cf496fa880a7d248ab0e5e9cff36b4127a5c1931b336dca +build/test/crunch-transparency-png-to-all/sample-colormap2-alpha1.jpg aa024ee706ec98f1bf7719e7481e23469b9fa610ff5f4ebdd5f45aabc78a45622e1ae16dfedc99fbc4d3963bb0f7118e4db9a6846a6e42e48af9e66502712d73 +build/test/crunch-transparency-png-to-all/sample-colormap4-alpha1.tga a3ab8e60f42750b8c061178f0846eeafd0af96880eb83250d7bf947dbd276dd8df75a0650ca2fc059f61467c0e0e06ba81e8afa6311dba2fb0ce680e169b4a83 +build/test/crunch-transparency-png-to-all/sample-colormap4-alpha1.bmp 80099312bd118e993972857acf32c32e2c055df5dfbec1965497a949b4e2401cce6a280d852298a7c38c6fbf9061b69d324bed5fc9da40679982e06f34859bdb +build/test/crunch-transparency-png-to-all/sample-colormap4-alpha1.png f8cd5a9b1ae040baee41a7f378e18bba426f79532555e22fe2f8c605a8347d79e7b98bb8284130536512b187f9d8435d58665eddb8d36596296f84f05ee904ae +build/test/crunch-transparency-png-to-all/sample-colormap4-alpha1.crn 75c03a7c9181aa74a32040f9bea4e13317b342f1ce8c41e3a52ff8784f6cc28de08b4c002e089470873bbdd555d87a9c09c8a649c5ab4cda6614cf2f0cbf73e9 +build/test/crunch-transparency-png-to-all/sample-colormap4-alpha1.dds b9ae2d55da6825fd0002dfb61ee934222f0005eeeafd9d892eb3a1ddd9599efd47925e3643f300b4ed0e62d33c8b2aa1606b0535e5bca9f7b76499447c93ccf9 +build/test/crunch-transparency-png-to-all/sample-colormap4-alpha1.ktx bed25de7c316379b28f1f41a47fc24c9d0f4c94e249f81b6345bc9c88a7b1d17b6fbd35b137d9efd3b2d34a2f66ff618c1c6a2e5b6bb4109fedd2b6d592ae1b3 +build/test/crunch-transparency-png-to-all/sample-colormap4-alpha1.jpg 6380138a3cd469971ceb00929d1cd1e5900c329c2da1d29d803633b6fcaa51258a9c8e7bc03b83590900f815678f4492a7f164ebf4c1aefa9f19e1b520d37b94 +build/test/crunch-transparency-png-to-all/sample-colormap8-alpha1.tga c1b890279c82014698326f69217d8b8a4510004aa606c6a22e5771f7a69356df922d1cc9149051bb165a6105245f3188e1dcf8e33f0abd7f47873a9fb2cbb4c8 +build/test/crunch-transparency-png-to-all/sample-colormap8-alpha1.bmp 3db394014ea38ca015f87cadfd6158ce801645cd4dcecb76f3662e8334ae47824ff8d53bf8d887d225bc8ebb7d25311eb7607964270fd1867cdfc955e51bcef1 +build/test/crunch-transparency-png-to-all/sample-colormap8-alpha1.png 3561be7b7958d37913708664413c149942f302907bf5f928782c7cf6cc4b312082f51fea6d8a3271b93bd37ace03ec22af65c224d6e7617ed8644fbe2f95dc35 +build/test/crunch-transparency-png-to-all/sample-colormap8-alpha1.crn b9ca0def9743aa4790d12de2faa9ce0bc355c916af8c0c4440e9a87a20c482feb563222b364a20ee7f70abff97e7d6312d679700b64704c2783d03b8cd9a757b +build/test/crunch-transparency-png-to-all/sample-colormap8-alpha1.dds 7c519e4978e76c8857cb707d245cf9414581a772a6fb94b48c7b4374557a0ec568aa88a1e8a3b4e60d0a17023d1c51d94b84d0927185f44c049630a21fae6061 +build/test/crunch-transparency-png-to-all/sample-colormap8-alpha1.ktx ddc05a0f9819fd24c9da214bc2685b93c7750e833554dbadf8e9a60b45a305fa3c1d9b27bbeab1d5fa8ad0e9cf2bf36d1ea21ae1678bfea1b7511f59398c2107 +build/test/crunch-transparency-png-to-all/sample-colormap8-alpha1.jpg eb96d34274e3759ac89dcce8258447e45edeea8fd041774fb459cad1e0849bdaa666b7af7e9275c7e78d75d06fc79ba151b1d34e4058c3c07f3d901a05c6764d +build/test/crunch-transparency-png-to-all/sample-grayscale1-alpha1.tga 6dbaf3445af50095fcf2a0eb13dfff5fe9803b019d627b718258e286316784318e0c915ac4494b6beb0feacb3c80c66bbb589b0f8e0893406cef0fdd2ab9c95d +build/test/crunch-transparency-png-to-all/sample-grayscale1-alpha1.bmp a79d1e3b85544669f1fa787bfd2d54e073efbece9d310027c958b922be3bc98f8b6d2561d722456a98af594e63d318cf18368d2421863f658941b4f38bc2fc59 +build/test/crunch-transparency-png-to-all/sample-grayscale1-alpha1.png 57876e1d84ada2604c5e2dbbfd08c19286c87c8f1843cf47a9b77b4f6561c3b414a269f924c2be74bba4662503ede0fd9d94cb0a084c35a9f63a3cce07dcb876 +build/test/crunch-transparency-png-to-all/sample-grayscale1-alpha1.crn 3a9175379f9512c74675a6d573bccdb0426d70e0ff9d63dacaa83e2c1f857dda14df93732a5776ef3625bdcf17d3ec51788623bb85e46c70a56bb306fd563b05 +build/test/crunch-transparency-png-to-all/sample-grayscale1-alpha1.dds 0b63952accdbbd548aa7acb558b3536edcd5f59c2e5e4364fa1d8d6c72679e83c214f4e44632226404bf757c0710da62829398d20b6b424987c7def7a7bbffc4 +build/test/crunch-transparency-png-to-all/sample-grayscale1-alpha1.ktx b4f70222f8e66afaa556c6069baec99a67ff45aa3e61d02a2c1500dbca8dee92dcb0676b06c826d6675960074f56befc7d76d95626bf8bb53eb05ba62847d728 +build/test/crunch-transparency-png-to-all/sample-grayscale1-alpha1.jpg c3f6c63fd91f7980aa61c3917da4c4163ebc904ae498ecb97d1d86637e59678ab5ed82a1ca453a436cce12d0ae9422e1a6f138aef81682646e7dede8474e50b0 +build/test/crunch-transparency-png-to-all/sample-grayscale1-alpha8.tga db24937111005b5940cf37eab680dc06f999f8e6384524978b16305f5800be59f70293c55f2f742f3e0f6e5f9d175e395b9099f1e9ae7472d802a5ef413a36f0 +build/test/crunch-transparency-png-to-all/sample-grayscale1-alpha8.bmp 8b6fac1bdd631d260d5081d546ce5ed2debf04e7539c13389e30fccf8240ea67783a63304adcec9ce0fa1cab7e820072a1f0ea71733d45ded2b14284fda166e5 +build/test/crunch-transparency-png-to-all/sample-grayscale1-alpha8.png 62ba2ca3669febcb88959224732c295d891f10942dcddf2494c052886c4f502b0e30c1238d05196ce8113c2c150fa4d96fc81436af5ad6a28f7b8a64a77bbe7f +build/test/crunch-transparency-png-to-all/sample-grayscale1-alpha8.crn 2660ab64afdb6eb70fdb131ef9927fc0b21bca021694bb4b8220451a9e0d5195306ef08d022ec7fb3b6535eed56efbe093e1108a116fdca81c5ce5a0c6e1da01 +build/test/crunch-transparency-png-to-all/sample-grayscale1-alpha8.dds d1f95a45c08f56e13d5be3b74c490a812e581511f91451e5ff35ba194c65689f966d271a215b9d79ca9a2d1693f6573697e11c689fcf1aced3ba891d6f039845 +build/test/crunch-transparency-png-to-all/sample-grayscale1-alpha8.ktx 18782f062b0a14658d46b00db7aae70972ed25095de6361b097b6a7632c54ebb722e9409fe40f7474627ef81b0cada7b8df529903b8d4139902287bfd75b6449 +build/test/crunch-transparency-png-to-all/sample-grayscale1-alpha8.jpg 11271dc24620d0cb27cc68ec2a79c293b426666de2d29cb6c590ccd4839ed72d5e39cb40aed77cc8b9bc8dac8157cb61877620a34975ee0f4eccac9215f5e795 +build/test/crunch-transparency-png-to-all/sample-grayscale8-alpha1.tga db24937111005b5940cf37eab680dc06f999f8e6384524978b16305f5800be59f70293c55f2f742f3e0f6e5f9d175e395b9099f1e9ae7472d802a5ef413a36f0 +build/test/crunch-transparency-png-to-all/sample-grayscale8-alpha1.bmp 8b6fac1bdd631d260d5081d546ce5ed2debf04e7539c13389e30fccf8240ea67783a63304adcec9ce0fa1cab7e820072a1f0ea71733d45ded2b14284fda166e5 +build/test/crunch-transparency-png-to-all/sample-grayscale8-alpha1.png 62ba2ca3669febcb88959224732c295d891f10942dcddf2494c052886c4f502b0e30c1238d05196ce8113c2c150fa4d96fc81436af5ad6a28f7b8a64a77bbe7f +build/test/crunch-transparency-png-to-all/sample-grayscale8-alpha1.crn 0e0dd5cf4f613eae1a5638060e6fbdcc1b8438e1c22ab27785a30efa8f0b20458e9b28b3da09b87d6bb9cab16f101908c64d74ab8247bef032de09449b380a77 +build/test/crunch-transparency-png-to-all/sample-grayscale8-alpha1.dds fd987ac10046b6385ffd64e414409056fa2653f4132db6df915d17132b50cac0282754a77583ac8e66c4ad304faf5d1bce926338f3d7af1e77f0320054b871be +build/test/crunch-transparency-png-to-all/sample-grayscale8-alpha1.ktx c9cc0f13cdb1a4328fcbdd6661e209341f670af197a2832a4e84fdca86ce915f1fe67ebaf094a132e81e53af6c63e9d3a160aca704cea884b55a3d8e58592b8f +build/test/crunch-transparency-png-to-all/sample-grayscale8-alpha1.jpg 11271dc24620d0cb27cc68ec2a79c293b426666de2d29cb6c590ccd4839ed72d5e39cb40aed77cc8b9bc8dac8157cb61877620a34975ee0f4eccac9215f5e795 +build/test/crunch-transparency-png-to-all/sample-rgb8-alpha8.tga ea1e362af5aad35a7a174882d3bb76394c53d71e0727c583a04e5e0661d70258e5eff6599926644242c6013d9edf7e91c0183c6c04dcf895f5cce559ad502dbc +build/test/crunch-transparency-png-to-all/sample-rgb8-alpha8.bmp 0526421d70ff175ebaa7f3dd20a833c6b51de6418749e0a6948d72e5812210d15d4a1e704bcc91006254d93d58e873042cdb9f886fa0506566dd81753db8e434 +build/test/crunch-transparency-png-to-all/sample-rgb8-alpha8.png 21630317b2ed9957241f4982c4e8207f7a00af23e0dd5df863965dbca9dcefd9a3c4f77b15ea91141c6c35181e44801ff1b5d0a7ed62f0c11eddfdaf7122b1a9 +build/test/crunch-transparency-png-to-all/sample-rgb8-alpha8.crn 70aa2d510a77ef971cbc91c8eea5cc1c0d571722f3cd7eb5cf9e3b825987b87eb7653b0bfceee733f2a54d5fa9ce452df64ab441e64f327b78b492fd57c461a9 +build/test/crunch-transparency-png-to-all/sample-rgb8-alpha8.dds 7ece974283299125d0578318fd9851286a731d7bd1fe8c33bfa5e40c17f8b7d23b0b445ca676a30a438dc38be53491b52dea60711fb4a260b1b9180447c96e3f +build/test/crunch-transparency-png-to-all/sample-rgb8-alpha8.ktx 3e560a2f4ae02ccb133b36ccecd3c6fe4f55c6374efbe8e14e58feda68939b880619f99320b4d793a0b4b025d60e3ab48d7a178e014e2909d23ef25102135294 +build/test/crunch-transparency-png-to-all/sample-rgb8-alpha8.jpg 5aa5fcb7124b2ff68169876350c7eba0b0e7e5d3a08b20cae775a2659c6f43ca35ae51121d14ab1cda9c2f1e77bfdd4694617e39e503a08239e0bc28e6b269f0 +build/test/crunch-format-jpg-to-all/sample-black.tga b316dd329ec0f0b80871a48f0eea486170671a9185bdf29da24745d46a3f08b9924e8ac306249e11f0e5ab4ffa973042f43d8d8890d8b394a77e2f88db61aa15 +build/test/crunch-format-jpg-to-all/sample-black.bmp 90fee6aca288530f2687facdbcf6392c40cc44515ab1eb41bb1076df7fc1564223e61af361d8d874ab677fa8fbfa8533be67b27737b2407d963bdb6b79aadca4 +build/test/crunch-format-jpg-to-all/sample-black.png 6bafef5b5826471257e36159fa27d812c9c12c76e1fa57d06b3549250c7b3bbac5138441c81b75d6ecb81f57780a3bf1545aa9ef255a13a1ec08be7f92182de7 +build/test/crunch-format-jpg-to-all/sample-black.crn 19fb840c8dbb7da96400af5af1c45fe48c7c7e19340d03fbe5a2af28ceecfb9efba26fe6c1bf46bd76164ecb0efe91cc9237917e8e431cd8365f80e9ffacc906 +build/test/crunch-format-jpg-to-all/sample-black.dds cadaf30985bb62b98cd601793d6440c70fa32e24459b780e043576d70817e2d4131f8902c703aa48cb7014b6e07f729e33ed9d989b0db0535261a2c6808805c2 +build/test/crunch-format-jpg-to-all/sample-black.ktx 00e261c23642594e12152e7a0f8ad56a3ed87526bb18ee2e5e0f65f1ce21bfc288bd4e6043807a7fa642f7130645025d3e621e8731bc4304e665c46a975f1c6a +build/test/crunch-format-jpg-to-all/sample-black.jpg 4e080976a21bf93553425038f152934dbb292937e8fefaa7f9bd876b551e03d4778b54c41e64f470acabea03ff8e7ad3325daf790df1b7b9042930f48a00591a +build/test/example1-icon-png-to-dds/unvanquished_64.dds ce98b21c574b4883e4aff4a0b92fd0f533f22e00ab753686f353111fa7503287c2c4dba25f2c2670508630d79b59464578e094461bad81ad803e1d58ed5e69f8 +build/test/example1-icon-png-to-crn/unvanquished_64.crn a3b526e95f44b6a4c919bc8eb79f4debf592f0bccc163c900cd1b6f9add0ce58c3db9fc8dac1828d350bbcd915823d7743a0c114a533fbc08c163fcb4846d2f5 +build/test/example1-icon-crn-to-dds/unvanquished_64.dds 2aae5c5bd8c6a82d1cf3fc9d9da12fe3fc5be8651261ff1cb359e754308fd81e93bf304aeb55ada0bad50794d6e97d3e48084e5a4f48fa7caec4ed954152bae9 +build/test/example2-icon-crn-to-dds/unvanquished_64.dds 2aae5c5bd8c6a82d1cf3fc9d9da12fe3fc5be8651261ff1cb359e754308fd81e93bf304aeb55ada0bad50794d6e97d3e48084e5a4f48fa7caec4ed954152bae9 +build/test/example3-icon-png-to-dds/unvanquished_64.dds a719dd943bc4e30be0c124e6bafb1d8ba4002b9233e6208104f93046edd4ddd7aea7815430ae2c0b7efe259943f6a8fe109f56ea457e43cde79295ae7ac85b43 diff --git a/test/black.jpg b/test/sample-black.jpg similarity index 100% rename from test/black.jpg rename to test/sample-black.jpg diff --git a/test/test-colormap1-alpha1.png b/test/sample-colormap1-alpha1.png similarity index 100% rename from test/test-colormap1-alpha1.png rename to test/sample-colormap1-alpha1.png diff --git a/test/test-colormap2-alpha1.png b/test/sample-colormap2-alpha1.png similarity index 100% rename from test/test-colormap2-alpha1.png rename to test/sample-colormap2-alpha1.png diff --git a/test/test-colormap4-alpha1.png b/test/sample-colormap4-alpha1.png similarity index 100% rename from test/test-colormap4-alpha1.png rename to test/sample-colormap4-alpha1.png diff --git a/test/test-colormap8-alpha1.png b/test/sample-colormap8-alpha1.png similarity index 100% rename from test/test-colormap8-alpha1.png rename to test/sample-colormap8-alpha1.png diff --git a/test/raw-bottom-left.tga b/test/sample-flat-bottom-left.tga similarity index 100% rename from test/raw-bottom-left.tga rename to test/sample-flat-bottom-left.tga diff --git a/test/raw-bottom-right.tga b/test/sample-flat-bottom-right.tga similarity index 100% rename from test/raw-bottom-right.tga rename to test/sample-flat-bottom-right.tga diff --git a/test/raw-top-left.tga b/test/sample-flat-top-left.tga similarity index 100% rename from test/raw-top-left.tga rename to test/sample-flat-top-left.tga diff --git a/test/raw-top-right.tga b/test/sample-flat-top-right.tga similarity index 100% rename from test/raw-top-right.tga rename to test/sample-flat-top-right.tga diff --git a/test/test-grayscale1-alpha1.png b/test/sample-grayscale1-alpha1.png similarity index 100% rename from test/test-grayscale1-alpha1.png rename to test/sample-grayscale1-alpha1.png diff --git a/test/test-grayscale1-alpha8.png b/test/sample-grayscale1-alpha8.png similarity index 100% rename from test/test-grayscale1-alpha8.png rename to test/sample-grayscale1-alpha8.png diff --git a/test/test-grayscale8-alpha1.png b/test/sample-grayscale8-alpha1.png similarity index 100% rename from test/test-grayscale8-alpha1.png rename to test/sample-grayscale8-alpha1.png diff --git a/test/test-rgb8-alpha8.png b/test/sample-rgb8-alpha8.png similarity index 100% rename from test/test-rgb8-alpha8.png rename to test/sample-rgb8-alpha8.png diff --git a/test/rle-bottom-left.tga b/test/sample-rle-bottom-left.tga similarity index 100% rename from test/rle-bottom-left.tga rename to test/sample-rle-bottom-left.tga diff --git a/test/rle-bottom-right.tga b/test/sample-rle-bottom-right.tga similarity index 100% rename from test/rle-bottom-right.tga rename to test/sample-rle-bottom-right.tga diff --git a/test/rle-top-left.tga b/test/sample-rle-top-left.tga similarity index 100% rename from test/rle-top-left.tga rename to test/sample-rle-top-left.tga diff --git a/test/rle-top-right.tga b/test/sample-rle-top-right.tga similarity index 100% rename from test/rle-top-right.tga rename to test/sample-rle-top-right.tga diff --git a/test/test.py b/test/test.py index 545b1c45..ef4a1b12 100755 --- a/test/test.py +++ b/test/test.py @@ -315,129 +315,123 @@ def start_from(items, value): lossy_format_list, ) -mkdir("build/test/png-to-all") -crunch("test/unvanquished_64.png", "build/test/png-to-all/unvanquished_64.tga", clone="tga") -crunch("test/unvanquished_64.png", "build/test/png-to-all/unvanquished_64.bmp", clone="bmp") -crunch("test/unvanquished_64.png", "build/test/png-to-all/unvanquished_64.png", clone="png") -crunch("test/unvanquished_64.png", "build/test/png-to-all/unvanquished_64.crn", clone="crn") -crunch("test/unvanquished_64.png", "build/test/png-to-all/unvanquished_64.dds", clone="dds") -crunch("test/unvanquished_64.png", "build/test/png-to-all/unvanquished_64.ktx", clone="ktx") -crunch("test/unvanquished_64.png", "build/test/png-to-all/unvanquished_64.jpg", clone="jpg") - -mkdir("build/test/tga-to-all") -crunch("build/test/png-to-all/unvanquished_64.tga", "build/test/tga-to-all/unvanquished_64.tga", clone="tga") -crunch("build/test/png-to-all/unvanquished_64.tga", "build/test/tga-to-all/unvanquished_64.bmp", clone="bmp") -crunch("build/test/png-to-all/unvanquished_64.tga", "build/test/tga-to-all/unvanquished_64.png", clone="png") -crunch("build/test/png-to-all/unvanquished_64.tga", "build/test/tga-to-all/unvanquished_64.crn", clone="crn") -crunch("build/test/png-to-all/unvanquished_64.tga", "build/test/tga-to-all/unvanquished_64.dds", clone="dds") -crunch("build/test/png-to-all/unvanquished_64.tga", "build/test/tga-to-all/unvanquished_64.ktx", clone="ktx") -crunch("build/test/png-to-all/unvanquished_64.tga", "build/test/tga-to-all/unvanquished_64.jpg", clone="jpg") - -mkdir("build/test/bmp-to-all") -crunch("build/test/png-to-all/unvanquished_64.bmp", "build/test/bmp-to-all/unvanquished_64.tga", clone="tga") -crunch("build/test/png-to-all/unvanquished_64.bmp", "build/test/bmp-to-all/unvanquished_64.bmp", clone="bmp") -crunch("build/test/png-to-all/unvanquished_64.bmp", "build/test/bmp-to-all/unvanquished_64.png", clone="png") -crunch("build/test/png-to-all/unvanquished_64.bmp", "build/test/bmp-to-all/unvanquished_64.crn", clone="crn") -crunch("build/test/png-to-all/unvanquished_64.bmp", "build/test/bmp-to-all/unvanquished_64.dds", clone="dds") -crunch("build/test/png-to-all/unvanquished_64.bmp", "build/test/bmp-to-all/unvanquished_64.ktx", clone="ktx") -crunch("build/test/png-to-all/unvanquished_64.bmp", "build/test/bmp-to-all/unvanquished_64.jpg", clone="jpg") - -mkdir("build/test/crn-to-all") -crunch("build/test/png-to-all/unvanquished_64.crn", "build/test/crn-to-all/unvanquished_64.tga") -crunch("build/test/png-to-all/unvanquished_64.crn", "build/test/crn-to-all/unvanquished_64.bmp") -crunch("build/test/png-to-all/unvanquished_64.crn", "build/test/crn-to-all/unvanquished_64.png") -crunch("build/test/png-to-all/unvanquished_64.crn", "build/test/crn-to-all/unvanquished_64.crn") -crunch("build/test/png-to-all/unvanquished_64.crn", "build/test/crn-to-all/unvanquished_64.dds", clone="crn_dds") -crunch("build/test/png-to-all/unvanquished_64.crn", "build/test/crn-to-all/unvanquished_64.ktx") -crunch("build/test/png-to-all/unvanquished_64.crn", "build/test/crn-to-all/unvanquished_64.jpg") - -mkdir("build/test/dds-to-all") -crunch("build/test/png-to-all/unvanquished_64.dds", "build/test/dds-to-all/unvanquished_64.tga") -crunch("build/test/png-to-all/unvanquished_64.dds", "build/test/dds-to-all/unvanquished_64.bmp") -crunch("build/test/png-to-all/unvanquished_64.dds", "build/test/dds-to-all/unvanquished_64.png") -crunch("build/test/png-to-all/unvanquished_64.dds", "build/test/dds-to-all/unvanquished_64.crn") -crunch("build/test/png-to-all/unvanquished_64.dds", "build/test/dds-to-all/unvanquished_64.dds", clone="dds") -crunch("build/test/png-to-all/unvanquished_64.dds", "build/test/dds-to-all/unvanquished_64.ktx") -crunch("build/test/png-to-all/unvanquished_64.dds", "build/test/dds-to-all/unvanquished_64.jpg") - -mkdir("build/test/ktx-to-all") -crunch("build/test/png-to-all/unvanquished_64.ktx", "build/test/ktx-to-all/unvanquished_64.tga") -crunch("build/test/png-to-all/unvanquished_64.ktx", "build/test/ktx-to-all/unvanquished_64.bmp") -crunch("build/test/png-to-all/unvanquished_64.ktx", "build/test/ktx-to-all/unvanquished_64.png") -crunch("build/test/png-to-all/unvanquished_64.ktx", "build/test/ktx-to-all/unvanquished_64.crn") -crunch("build/test/png-to-all/unvanquished_64.ktx", "build/test/ktx-to-all/unvanquished_64.dds") -crunch("build/test/png-to-all/unvanquished_64.ktx", "build/test/ktx-to-all/unvanquished_64.ktx") -crunch("build/test/png-to-all/unvanquished_64.ktx", "build/test/ktx-to-all/unvanquished_64.jpg") - -mkdir("build/test/jpg-to-all") -crunch("build/test/png-to-all/unvanquished_64.jpg", "build/test/jpg-to-all/unvanquished_64.tga") -crunch("build/test/png-to-all/unvanquished_64.jpg", "build/test/jpg-to-all/unvanquished_64.bmp") -crunch("build/test/png-to-all/unvanquished_64.jpg", "build/test/jpg-to-all/unvanquished_64.png") -crunch("build/test/png-to-all/unvanquished_64.jpg", "build/test/jpg-to-all/unvanquished_64.crn") -crunch("build/test/png-to-all/unvanquished_64.jpg", "build/test/jpg-to-all/unvanquished_64.dds") -crunch("build/test/png-to-all/unvanquished_64.jpg", "build/test/jpg-to-all/unvanquished_64.ktx") -crunch("build/test/png-to-all/unvanquished_64.jpg", "build/test/jpg-to-all/unvanquished_64.jpg") - -mkdir("build/test/tga-to-png") -crunch("test/raw-bottom-left.tga", "build/test/tga-to-png/raw-bottom-left.png", clone="tga_png") -crunch("test/raw-bottom-right.tga", "build/test/tga-to-png/raw-bottom-right.png", clone="tga_png") -crunch("test/raw-top-left.tga", "build/test/tga-to-png/raw-top-left.png", clone="tga_png") -crunch("test/raw-top-right.tga", "build/test/tga-to-png/raw-top-right.png", clone="tga_png") -crunch("test/rle-bottom-left.tga", "build/test/tga-to-png/rle-bottom-left.png", clone="tga_png") -crunch("test/rle-bottom-right.tga", "build/test/tga-to-png/rle-bottom-right.png", clone="tga_png") -crunch("test/rle-top-left.tga", "build/test/tga-to-png/rle-top-left.png", clone="tga_png") -crunch("test/rle-top-right.tga", "build/test/tga-to-png/rle-top-right.png", clone="tga_png") - -mkdir("build/test/tga-to-crn") -crunch("test/raw-bottom-left.tga", "build/test/tga-to-crn/raw-bottom-left.crn", clone="tga_crn") -crunch("test/raw-bottom-right.tga", "build/test/tga-to-crn/raw-bottom-right.crn", clone="tga_crn") -crunch("test/raw-top-left.tga", "build/test/tga-to-crn/raw-top-left.crn", clone="tga_crn") -crunch("test/raw-top-right.tga", "build/test/tga-to-crn/raw-top-right.crn", clone="tga_crn") -crunch("test/rle-bottom-left.tga", "build/test/tga-to-crn/rle-bottom-left.crn", clone="tga_crn") -crunch("test/rle-bottom-right.tga", "build/test/tga-to-crn/rle-bottom-right.crn", clone="tga_crn") -crunch("test/rle-top-left.tga", "build/test/tga-to-crn/rle-top-left.crn", clone="tga_crn") -crunch("test/rle-top-right.tga", "build/test/tga-to-crn/rle-top-right.crn", clone="tga_crn") - -mkdir("build/test/png-to-png") -crunch("test/test-colormap1-alpha1.png", "build/test/png-to-png/test-colormap1-alpha1.png") -crunch("test/test-colormap2-alpha1.png", "build/test/png-to-png/test-colormap2-alpha1.png") -crunch("test/test-colormap4-alpha1.png", "build/test/png-to-png/test-colormap4-alpha1.png") -crunch("test/test-colormap8-alpha1.png", "build/test/png-to-png/test-colormap8-alpha1.png") -crunch("test/test-grayscale1-alpha1.png", "build/test/png-to-png/test-grayscale1-alpha1.png") -crunch("test/test-grayscale1-alpha8.png", "build/test/png-to-png/test-grayscale1-alpha8.png") -crunch("test/test-grayscale8-alpha1.png", "build/test/png-to-png/test-grayscale8-alpha1.png") -crunch("test/test-rgb8-alpha8.png", "build/test/png-to-png/test-rgb8-alpha8.png") - -mkdir("build/test/png-to-crn") -crunch("test/test-colormap1-alpha1.png", "build/test/png-to-crn/test-colormap1-alpha1.crn") -crunch("test/test-colormap2-alpha1.png", "build/test/png-to-crn/test-colormap2-alpha1.crn") -crunch("test/test-colormap4-alpha1.png", "build/test/png-to-crn/test-colormap4-alpha1.crn") -crunch("test/test-colormap8-alpha1.png", "build/test/png-to-crn/test-colormap8-alpha1.crn") -crunch("test/test-grayscale1-alpha1.png", "build/test/png-to-crn/test-grayscale1-alpha1.crn") -crunch("test/test-grayscale1-alpha8.png", "build/test/png-to-crn/test-grayscale1-alpha8.crn") -crunch("test/test-grayscale8-alpha1.png", "build/test/png-to-crn/test-grayscale8-alpha1.crn") -crunch("test/test-rgb8-alpha8.png", "build/test/png-to-crn/test-rgb8-alpha8.crn") - -mkdir("build/test/bmp-to-crn") -crunch("test/sample-default.bmp", "build/test/bmp-to-crn/sample-default.crn", "bmp_crn") -crunch("test/sample-vertical-flip.bmp", "build/test/bmp-to-crn/sample-vertical-flip.crn", "bmp_crn") - -mkdir("build/test/jpg-to-crn") -crunch("test/black.jpg", "build/test/jpg-to-crn/black.crn") - -mkdir("build/test/example1-dds") +for in_format in start_from(all_format_list, "png"): + if in_format == "png": + in_dir = "test" + else: + in_dir = "build/test/crunch-icon-png-to-all" + + out_dir = f"build/test/crunch-icon-{in_format}-to-all" + + mkdir(out_dir) + + for out_format in all_format_list: + sample_name = "unvanquished_64" + + in_path = f"{in_dir}/{sample_name}.{in_format}" + + out_path = f"{out_dir}/{sample_name}.{out_format}" + + if in_format in lossless_format_list: + clone_name = f"icon-png-to-{out_format}" + elif in_format == out_format and out_format in ["dds", "ktx"]: + clone_name = f"icon-png-to-{out_format}" + elif in_format == "crn" and out_format == "dds": + clone_name = f"icon-{in_format}-to-{out_format}" + else: + clone_name = None + + crunch(in_path, out_path, clone=clone_name) + +collection_dict_list = [ + { + "name": "orientation", + "format": "tga", + "clone": True, + "samples": [ + "sample-flat-bottom-left", + "sample-flat-bottom-right", + "sample-flat-top-left", + "sample-flat-top-right", + "sample-rle-bottom-left", + "sample-rle-bottom-right", + "sample-rle-top-left", + "sample-rle-top-right", + ], + }, + { + "name": "orientation", + "format": "bmp", + "clone": True, + "samples": [ + "sample-default", + "sample-vertical-flip", + ], + }, + { + "name": "transparency", + "format": "png", + "clone": False, + "samples": [ + "sample-colormap1-alpha1", + "sample-colormap2-alpha1", + "sample-colormap4-alpha1", + "sample-colormap8-alpha1", + "sample-grayscale1-alpha1", + "sample-grayscale1-alpha8", + "sample-grayscale8-alpha1", + "sample-rgb8-alpha8", + ], + }, + { + "name": "format", + "clone": False, + "format": "jpg", + "samples": [ + "sample-black", + ], + }, +] + +for collection in collection_dict_list: + collection_name = collection["name"] + in_format = collection["format"] + is_clone = collection["clone"] + sample_name_list = collection["samples"] + + out_dir = f"build/test/crunch-{collection_name}-{in_format}-to-all" + + mkdir(out_dir) + + for sample_name in sample_name_list: + for out_format in all_format_list: + in_path = f"test/{sample_name}.{in_format}" + + out_path = f"{out_dir}/{sample_name}.{out_format}" + + if is_clone: + clone_name = f"{collection_name}-{in_format}-to-{out_format}" + else: + clone_name = None + + crunch(in_path, out_path, clone=clone_name) + example(1, "test/unvanquished_64.png", None, options=["i"]) -example(1, "test/unvanquished_64.png", "build/test/example1-dds/unvanquished_64.dds", clone="dds", options=["c"]) -mkdir("build/test/example1-crn") -example(1, "test/unvanquished_64.png", "build/test/example1-crn/unvanquished_64.crn", clone="crn", options=["c", "-crn"]) -example(1, "build/test/example1-crn/unvanquished_64.crn", "build/test/example1-crn/unvanquished_64.dds", clone="crn_dds", options=["d"]) +mkdir("build/test/example1-icon-png-to-dds") +example(1, "test/unvanquished_64.png", "build/test/example1-icon-png-to-dds/unvanquished_64.dds", clone="icon-png-to-dds", options=["c"]) + +mkdir("build/test/example1-icon-png-to-crn") +example(1, "test/unvanquished_64.png", "build/test/example1-icon-png-to-crn/unvanquished_64.crn", clone="icon-png-to-crn", options=["c", "-crn"]) + +mkdir("build/test/example1-icon-crn-to-dds") +example(1, "build/test/example1-icon-png-to-crn/unvanquished_64.crn", "build/test/example1-icon-crn-to-dds/unvanquished_64.dds", clone="icon-crn-to-dds", options=["d"]) -mkdir("build/test/example2-dds") -example(2, "build/test/example1-crn/unvanquished_64.crn", "build/test/example2-dds/unvanquished_64.dds", clone="crn_dds") +mkdir("build/test/example2-icon-crn-to-dds") +example(2, "build/test/example1-icon-png-to-crn/unvanquished_64.crn", "build/test/example2-icon-crn-to-dds/unvanquished_64.dds", clone="icon-crn-to-dds") -mkdir("build/test/example3-dds") -example(3, "test/unvanquished_64.png", "build/test/example3-dds/unvanquished_64.dds") +mkdir("build/test/example3-icon-png-to-dds") +example(3, "test/unvanquished_64.png", "build/test/example3-icon-png-to-dds/unvanquished_64.dds") print_success("All tests executed") From d4726b705a3e571f555f2a7a23b5949362b08e9b Mon Sep 17 00:00:00 2001 From: Thomas Debesse Date: Mon, 10 Aug 2026 01:35:06 +0200 Subject: [PATCH 04/16] test: make possible to do partial checking when everything isn't recorded --- test/test.py | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/test/test.py b/test/test.py index ef4a1b12..38c993f3 100755 --- a/test/test.py +++ b/test/test.py @@ -97,7 +97,6 @@ def add_clone(clone, file_path): clone_knowledge[clone] = {} clone_knowledge[clone]["files"] = OrderedDict() - clone_knowledge[clone]["files"][file_path] = False def crunch(input_path, output_path, clone=None, options=[]): @@ -163,6 +162,9 @@ def verify_clones(verification): if verification: for file_clone in clone_knowledge.keys(): for file_path in clone_knowledge[file_clone]["files"].keys(): + if file_path not in file_knowledge.keys(): + continue + file_sum = file_knowledge[file_path]["file_sum"] if "known_sum" in clone_knowledge[file_clone].keys(): @@ -189,6 +191,7 @@ def verify_files(verification): for line in database_file.readlines(): file_path, known_sum = line.split("\t") + file_knowledge[file_path]["known_sum"] = known_sum.split("\n")[0] database_file.close() @@ -196,6 +199,12 @@ def verify_files(verification): for file_path in file_knowledge.keys(): print_status("Checking file {}".format(file_path)) file_sum = file_knowledge[file_path]["file_sum"] + + if "known_sum" not in file_knowledge[file_path].keys(): + print_warning(f"Missing recorded sum for {file_path}") + all_verified = False + continue + known_sum = file_knowledge[file_path]["known_sum"] verified = file_sum == known_sum file_knowledge[file_path]["verified"] = verified @@ -237,6 +246,10 @@ def print_files_results(verification): for file_path in file_knowledge.keys(): if verification: + if "verified" not in file_knowledge[file_path].keys(): + print_warning(f"Missing verified status for {file_path}") + continue + verified = file_knowledge[file_path]["verified"] verified_string = ["No", "Yes"][verified] else: From ff30d9a2447a7dc9be60585c3705caaffa796026 Mon Sep 17 00:00:00 2001 From: Thomas Debesse Date: Mon, 10 Aug 2026 05:43:58 +0200 Subject: [PATCH 05/16] test: set clone explicitly --- test/test.py | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/test/test.py b/test/test.py index 38c993f3..eb1d0c5d 100755 --- a/test/test.py +++ b/test/test.py @@ -276,7 +276,7 @@ def print_end_results(clones_verification, clones_verified, files_verification, else: print_error("Some tests failed") -crunch(None, None, options=["--help"]) +crunch(None, None, None, options=["--help"]) def merge_list(*lists): return list(dict.fromkeys(chain.from_iterable(lists))) @@ -354,7 +354,7 @@ def start_from(items, value): else: clone_name = None - crunch(in_path, out_path, clone=clone_name) + crunch(in_path, out_path, clone_name) collection_dict_list = [ { @@ -427,24 +427,24 @@ def start_from(items, value): else: clone_name = None - crunch(in_path, out_path, clone=clone_name) + crunch(in_path, out_path, clone_name) -example(1, "test/unvanquished_64.png", None, options=["i"]) +example(1, "test/unvanquished_64.png", None, None, options=["i"]) mkdir("build/test/example1-icon-png-to-dds") -example(1, "test/unvanquished_64.png", "build/test/example1-icon-png-to-dds/unvanquished_64.dds", clone="icon-png-to-dds", options=["c"]) +example(1, "test/unvanquished_64.png", "build/test/example1-icon-png-to-dds/unvanquished_64.dds", "icon-png-to-dds", options=["c"]) mkdir("build/test/example1-icon-png-to-crn") -example(1, "test/unvanquished_64.png", "build/test/example1-icon-png-to-crn/unvanquished_64.crn", clone="icon-png-to-crn", options=["c", "-crn"]) +example(1, "test/unvanquished_64.png", "build/test/example1-icon-png-to-crn/unvanquished_64.crn", "icon-png-to-crn", options=["c", "-crn"]) mkdir("build/test/example1-icon-crn-to-dds") -example(1, "build/test/example1-icon-png-to-crn/unvanquished_64.crn", "build/test/example1-icon-crn-to-dds/unvanquished_64.dds", clone="icon-crn-to-dds", options=["d"]) +example(1, "build/test/example1-icon-png-to-crn/unvanquished_64.crn", "build/test/example1-icon-crn-to-dds/unvanquished_64.dds", "icon-crn-to-dds", options=["d"]) mkdir("build/test/example2-icon-crn-to-dds") -example(2, "build/test/example1-icon-png-to-crn/unvanquished_64.crn", "build/test/example2-icon-crn-to-dds/unvanquished_64.dds", clone="icon-crn-to-dds") +example(2, "build/test/example1-icon-png-to-crn/unvanquished_64.crn", "build/test/example2-icon-crn-to-dds/unvanquished_64.dds", "icon-crn-to-dds") mkdir("build/test/example3-icon-png-to-dds") -example(3, "test/unvanquished_64.png", "build/test/example3-icon-png-to-dds/unvanquished_64.dds") +example(3, "test/unvanquished_64.png", "build/test/example3-icon-png-to-dds/unvanquished_64.dds", None) print_success("All tests executed") From 037a1d80ff941fa0b87639fa45fe9f80a28a0a50 Mon Sep 17 00:00:00 2001 From: Thomas Debesse Date: Mon, 10 Aug 2026 05:44:34 +0200 Subject: [PATCH 06/16] test: require to set clone explicitly It's now very rare to not pass that argument, so better use None in those rare cases than maintaining the optionality of them. --- test/test.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/test.py b/test/test.py index eb1d0c5d..c16ede6f 100755 --- a/test/test.py +++ b/test/test.py @@ -99,7 +99,7 @@ def add_clone(clone, file_path): clone_knowledge[clone]["files"][file_path] = False -def crunch(input_path, output_path, clone=None, options=[]): +def crunch(input_path, output_path, clone, options=[]): executable_path = get_executable_path("crunch") command_list = [executable_path] + options @@ -115,7 +115,7 @@ def crunch(input_path, output_path, clone=None, options=[]): run(command_list) -def example(num, input_path, output_path, clone=None, options=[]): +def example(num, input_path, output_path, clone, options=[]): executable_path = get_executable_path("example" + str(num)) command_list = [executable_path] From cc3179ca93bd3852a338a8f2af7dc24645dc2f82 Mon Sep 17 00:00:00 2001 From: Thomas Debesse Date: Mon, 10 Aug 2026 05:48:37 +0200 Subject: [PATCH 07/16] test: reword the now non-optional clone_name --- test/test.py | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/test/test.py b/test/test.py index c16ede6f..d62ef9dd 100755 --- a/test/test.py +++ b/test/test.py @@ -89,17 +89,17 @@ def get_executable_path(executable_name): return os.path.join(build_dir, executable_name) -def add_clone(clone, file_path): - if not clone: +def add_clone(clone_name, file_path): + if not clone_name: return - if clone not in clone_knowledge.keys(): - clone_knowledge[clone] = {} - clone_knowledge[clone]["files"] = OrderedDict() + if clone_name not in clone_knowledge.keys(): + clone_knowledge[clone_name] = {} + clone_knowledge[clone_name]["files"] = OrderedDict() - clone_knowledge[clone]["files"][file_path] = False + clone_knowledge[clone_name]["files"][file_path] = False -def crunch(input_path, output_path, clone, options=[]): +def crunch(input_path, output_path, clone_name, options=[]): executable_path = get_executable_path("crunch") command_list = [executable_path] + options @@ -111,11 +111,11 @@ def crunch(input_path, output_path, clone, options=[]): converted_output_path = convert_path(output_path) command_list += ["-out", converted_output_path] file_knowledge[output_path] = {"converted_path": converted_output_path} - add_clone(clone, output_path) + add_clone(clone_name, output_path) run(command_list) -def example(num, input_path, output_path, clone, options=[]): +def example(num, input_path, output_path, clone_name, options=[]): executable_path = get_executable_path("example" + str(num)) command_list = [executable_path] @@ -133,7 +133,7 @@ def example(num, input_path, output_path, clone, options=[]): converted_output_path = convert_path(output_path) command_list += ["-out", converted_output_path] file_knowledge[output_path] = {"converted_path": converted_output_path} - add_clone(clone, output_path) + add_clone(clone_name, output_path) run(command_list) From 85c06f792edabf724e1a384bad6c71f2b965313a Mon Sep 17 00:00:00 2001 From: Thomas Debesse Date: Mon, 10 Aug 2026 09:08:20 +0200 Subject: [PATCH 08/16] test: rename some samples --- test/checksums.tsv | 122 +++++++++--------- ...ample-black.jpg => sample-black-64x64.jpg} | Bin ...png => sample-icon-unvanquished-64x64.png} | Bin test/test.py | 16 +-- 4 files changed, 69 insertions(+), 69 deletions(-) rename test/{sample-black.jpg => sample-black-64x64.jpg} (100%) rename test/{unvanquished_64.png => sample-icon-unvanquished-64x64.png} (100%) diff --git a/test/checksums.tsv b/test/checksums.tsv index ffe3399c..82871e49 100644 --- a/test/checksums.tsv +++ b/test/checksums.tsv @@ -1,52 +1,52 @@ -build/test/crunch-icon-png-to-all/unvanquished_64.tga 34434170b06843b2d4fb5964a4b8751ec3a151a7d03e351e45a5967508f6a21f6e40ffc214bb46640105c4058bc35e196ecb5dd3261528a64acfeff52034fb40 -build/test/crunch-icon-png-to-all/unvanquished_64.bmp 1c5f28be8151a8125346e9cf17b1bf6e3f9fe27f6947b164b7eefa8fd3732a2e4dff173c354a0cd4ed599cd604d4b8f916c0575b0a4b4b508acc68dc9b4067ae -build/test/crunch-icon-png-to-all/unvanquished_64.png 71bb28da97cd778b99f131acaeb1c28ea37bae295a9e9934bed339508d8428587120c0da8f5bbc7963cdb77741ef789414f9d0d2c1e0da46026336efde147cc5 -build/test/crunch-icon-png-to-all/unvanquished_64.crn a3b526e95f44b6a4c919bc8eb79f4debf592f0bccc163c900cd1b6f9add0ce58c3db9fc8dac1828d350bbcd915823d7743a0c114a533fbc08c163fcb4846d2f5 -build/test/crunch-icon-png-to-all/unvanquished_64.dds ce98b21c574b4883e4aff4a0b92fd0f533f22e00ab753686f353111fa7503287c2c4dba25f2c2670508630d79b59464578e094461bad81ad803e1d58ed5e69f8 -build/test/crunch-icon-png-to-all/unvanquished_64.ktx d82eab591163d802231722ef325571735971b6a9b0703ed8ea59b4a4144189825d96d3455605426453fb3ad8d7cc61f931c52b3e73df2bb6787f7408baeb4ac7 -build/test/crunch-icon-png-to-all/unvanquished_64.jpg 6cd22de7e2e5baced5ef16e84f816dde3049f822459d552ced4dcd4e3f9a16be82ee0747ed1479fe8339991176004b4ccc90380b7ef51292c7d9b518503a348d -build/test/crunch-icon-crn-to-all/unvanquished_64.tga 71014682514ec9d2baa19444fd026ceb65aa06e86d32f34b326f336e47cf4ea351aa7c2eee6a1f0fbf290658fae72c24a86c4e167272143012d384dd6d6b1ce9 -build/test/crunch-icon-crn-to-all/unvanquished_64.bmp a6d6886879f9aade027ecb4d55f2092c3af98c297aaf2f689d77a11870156099853a41993575a9a313a23e399b3bcb06dcc0eac46b877639f3875972af7933d7 -build/test/crunch-icon-crn-to-all/unvanquished_64.png dd9d45459bd5a3ed74d494838a3d61ed4baea9960300cb3f1d54ecc923f742c9036fe13a338da6db2efc98049a2e206cb7c0e1cba6d79ea0e3ad86473af13e83 -build/test/crunch-icon-crn-to-all/unvanquished_64.crn 1596d312526073fd8923faefbed879fb1299ee53eeb54787f2b66754768d9a8160d9921b13aa9b7c781eb088be41cec0f3b703713aede43116a2b62f284f39f9 -build/test/crunch-icon-crn-to-all/unvanquished_64.dds 2aae5c5bd8c6a82d1cf3fc9d9da12fe3fc5be8651261ff1cb359e754308fd81e93bf304aeb55ada0bad50794d6e97d3e48084e5a4f48fa7caec4ed954152bae9 -build/test/crunch-icon-crn-to-all/unvanquished_64.ktx 10a45e43609c49b4929b91293e203557d8f5c1b146aa8162d946248e8fa24709e1645ed1fc40c2c1a541567b3d1287c7885cb0185230b660386825c4d03db22f -build/test/crunch-icon-crn-to-all/unvanquished_64.jpg f68e74b3c8a404fc867345411c8778228728897e5d0870e071d6ec67fd1fccb45b3b97993575c3ed66d80cd6a7d60845e8fe68780ac322fe1d46adc57014fa8b -build/test/crunch-icon-dds-to-all/unvanquished_64.tga 46e0c1796f7b1a998829919e14f69cb43d83b895585aca69ad17e0f6cd9839d20b383a6eca161320b87bb7161cbedc116466ec27319078a011b59fe16dc6ce26 -build/test/crunch-icon-dds-to-all/unvanquished_64.bmp 9d1b7c76f345332fa53e9b517ee47ba142d0c9def2b27b908af67b3c19edec0882f183f83eb9022cc2e726082193d7c82394a92b068137a4698a505d8bab0080 -build/test/crunch-icon-dds-to-all/unvanquished_64.png cd5b04f9c081f91a2d3a3fbf4484153feec5f0c027608f48a51209596ff604680ab93de70fbb616dc3fecea3fa6d240ac7a2e294bb0fc8244766375ffae54230 -build/test/crunch-icon-dds-to-all/unvanquished_64.crn 0db1f3bcf6240389be389dc2a94fdabf97aab439d12aabc6cca2ccb69559759fc414d2bc7735d0d4812b895ffb4085172f6a48439a104d79e0b5d65124b1f002 -build/test/crunch-icon-dds-to-all/unvanquished_64.dds ce98b21c574b4883e4aff4a0b92fd0f533f22e00ab753686f353111fa7503287c2c4dba25f2c2670508630d79b59464578e094461bad81ad803e1d58ed5e69f8 -build/test/crunch-icon-dds-to-all/unvanquished_64.ktx dbbea021367254587000704d11b5cf7982d3ac4a42edd9489b7b2ec49da796d4346c68c6ee1a163e6880f0efaeafc0235b739c2a4acbd1ed27750657af36e3df -build/test/crunch-icon-dds-to-all/unvanquished_64.jpg 3a2bfcc1f2ecb18371163bb16812096b019fec176731f015a301384d605910702d168f8762076fa5d912760947c8df8d4026fd9b038c0d94360d1bf744f592a2 -build/test/crunch-icon-ktx-to-all/unvanquished_64.tga 516bc1db1bfcda9c7f466cbb6f45b7608d9803391ae6d32e8de30d8e8102ef2de623cf6adfc74d471202ab14930dc4babe93a41b6c35b90e250a0de6b690fe7e -build/test/crunch-icon-ktx-to-all/unvanquished_64.bmp 0493fc75c26629d3a532e68e3778bb25ed6de4d81f3a39eb34a65a1990aa4072aa6b0948dc1ed3122b7ecf45e6be139d05b008ad7277649fc244d039404503fd -build/test/crunch-icon-ktx-to-all/unvanquished_64.png 7b5da6fea08f73d0e06791d000780820574d08e14c00c06ba2ef208296ebcfbc427175d72d6f2797e7240930782c70bf717a1e966fdd9aaada4a8b826ff9a2df -build/test/crunch-icon-ktx-to-all/unvanquished_64.crn 7cb43bf1f8fa87735d7643c3590b52bf918b6e202095787f2305c7469db957185871434b101fb2e2fb7d57e55fc0dc635994b8ed2765edb6b453f10931508f6b -build/test/crunch-icon-ktx-to-all/unvanquished_64.dds b2cecbf2870835ec04a8ed69012d294402017fa565393f8266a6dcc868f9c5b472b8b568c98250b5beb5b0d43ee9d9dc06d04cca4f35073541ba8331d55a6b46 -build/test/crunch-icon-ktx-to-all/unvanquished_64.ktx d82eab591163d802231722ef325571735971b6a9b0703ed8ea59b4a4144189825d96d3455605426453fb3ad8d7cc61f931c52b3e73df2bb6787f7408baeb4ac7 -build/test/crunch-icon-ktx-to-all/unvanquished_64.jpg c350e1e0d90b8d519a0cfdbad85c972a6f6c077988b8e96f5daef415f816b3ace2bb87c79772c6d25954caeb598ef3af7700f0bc10914349161fe1a4cc1f2d73 -build/test/crunch-icon-jpg-to-all/unvanquished_64.tga 4ea9e7b358a01fe1b09e9c16845a0249daddc87010403f33c525cfca69af85cb561019221adc8beae4172908d48a951df2d8bf65d63ae2ee183ee5c6df424c99 -build/test/crunch-icon-jpg-to-all/unvanquished_64.bmp 20636873950cde44336751526644ea6e979b5bdf1f45a166a40b583977a6f6cce6db32ab9b14d66eba1777ab8447fbc926a91b095c27cb4487e04d1f36ed3b0b -build/test/crunch-icon-jpg-to-all/unvanquished_64.png 24124a42c01f243ec2864cc70d399b685183acb04216a0b21133b454f4d69d7606b3190119ff8c869c5dd4a28f77fbc352f3717747e32099f507cc7b790c39e2 -build/test/crunch-icon-jpg-to-all/unvanquished_64.crn f7bf97cafc570eb16335006623b887de1b05591035a20f9399edc2386c59ab43832d4741a3763210c022cb65ee7a0facb29138bb7daf0b71f6b9059c1852c445 -build/test/crunch-icon-jpg-to-all/unvanquished_64.dds c1b3b785d107ba2f18097fb1cf009f598dbda9e797741ed66bd6cf9b1c376447f0990bb3890af12e3c73c4e02410adc0b5be6f386867d8ffc6aded53adb5f309 -build/test/crunch-icon-jpg-to-all/unvanquished_64.ktx 233e5d029b08cc45f8b3e9853edc6dc5dd5cab49cb0f95e870b9b6db917b2ddceaa2756d55aec1785c147375bc7a37030e3a8cde77d364f73d86043e99a7969a -build/test/crunch-icon-jpg-to-all/unvanquished_64.jpg abe6f8c6820c4d0762a00b6ce0789834601d764b1a9a330eeb3b49d5209ee9ca2968e154d53e74912e05a4b99467df1710c12d62354cdfc8d49c9cd315de2b65 -build/test/crunch-icon-tga-to-all/unvanquished_64.tga 34434170b06843b2d4fb5964a4b8751ec3a151a7d03e351e45a5967508f6a21f6e40ffc214bb46640105c4058bc35e196ecb5dd3261528a64acfeff52034fb40 -build/test/crunch-icon-tga-to-all/unvanquished_64.bmp 1c5f28be8151a8125346e9cf17b1bf6e3f9fe27f6947b164b7eefa8fd3732a2e4dff173c354a0cd4ed599cd604d4b8f916c0575b0a4b4b508acc68dc9b4067ae -build/test/crunch-icon-tga-to-all/unvanquished_64.png 71bb28da97cd778b99f131acaeb1c28ea37bae295a9e9934bed339508d8428587120c0da8f5bbc7963cdb77741ef789414f9d0d2c1e0da46026336efde147cc5 -build/test/crunch-icon-tga-to-all/unvanquished_64.crn a3b526e95f44b6a4c919bc8eb79f4debf592f0bccc163c900cd1b6f9add0ce58c3db9fc8dac1828d350bbcd915823d7743a0c114a533fbc08c163fcb4846d2f5 -build/test/crunch-icon-tga-to-all/unvanquished_64.dds ce98b21c574b4883e4aff4a0b92fd0f533f22e00ab753686f353111fa7503287c2c4dba25f2c2670508630d79b59464578e094461bad81ad803e1d58ed5e69f8 -build/test/crunch-icon-tga-to-all/unvanquished_64.ktx d82eab591163d802231722ef325571735971b6a9b0703ed8ea59b4a4144189825d96d3455605426453fb3ad8d7cc61f931c52b3e73df2bb6787f7408baeb4ac7 -build/test/crunch-icon-tga-to-all/unvanquished_64.jpg 6cd22de7e2e5baced5ef16e84f816dde3049f822459d552ced4dcd4e3f9a16be82ee0747ed1479fe8339991176004b4ccc90380b7ef51292c7d9b518503a348d -build/test/crunch-icon-bmp-to-all/unvanquished_64.tga 34434170b06843b2d4fb5964a4b8751ec3a151a7d03e351e45a5967508f6a21f6e40ffc214bb46640105c4058bc35e196ecb5dd3261528a64acfeff52034fb40 -build/test/crunch-icon-bmp-to-all/unvanquished_64.bmp 1c5f28be8151a8125346e9cf17b1bf6e3f9fe27f6947b164b7eefa8fd3732a2e4dff173c354a0cd4ed599cd604d4b8f916c0575b0a4b4b508acc68dc9b4067ae -build/test/crunch-icon-bmp-to-all/unvanquished_64.png 71bb28da97cd778b99f131acaeb1c28ea37bae295a9e9934bed339508d8428587120c0da8f5bbc7963cdb77741ef789414f9d0d2c1e0da46026336efde147cc5 -build/test/crunch-icon-bmp-to-all/unvanquished_64.crn a3b526e95f44b6a4c919bc8eb79f4debf592f0bccc163c900cd1b6f9add0ce58c3db9fc8dac1828d350bbcd915823d7743a0c114a533fbc08c163fcb4846d2f5 -build/test/crunch-icon-bmp-to-all/unvanquished_64.dds ce98b21c574b4883e4aff4a0b92fd0f533f22e00ab753686f353111fa7503287c2c4dba25f2c2670508630d79b59464578e094461bad81ad803e1d58ed5e69f8 -build/test/crunch-icon-bmp-to-all/unvanquished_64.ktx d82eab591163d802231722ef325571735971b6a9b0703ed8ea59b4a4144189825d96d3455605426453fb3ad8d7cc61f931c52b3e73df2bb6787f7408baeb4ac7 -build/test/crunch-icon-bmp-to-all/unvanquished_64.jpg 6cd22de7e2e5baced5ef16e84f816dde3049f822459d552ced4dcd4e3f9a16be82ee0747ed1479fe8339991176004b4ccc90380b7ef51292c7d9b518503a348d +build/test/crunch-icon-png-to-all/sample-icon-unvanquished-64x64.tga 34434170b06843b2d4fb5964a4b8751ec3a151a7d03e351e45a5967508f6a21f6e40ffc214bb46640105c4058bc35e196ecb5dd3261528a64acfeff52034fb40 +build/test/crunch-icon-png-to-all/sample-icon-unvanquished-64x64.bmp 1c5f28be8151a8125346e9cf17b1bf6e3f9fe27f6947b164b7eefa8fd3732a2e4dff173c354a0cd4ed599cd604d4b8f916c0575b0a4b4b508acc68dc9b4067ae +build/test/crunch-icon-png-to-all/sample-icon-unvanquished-64x64.png 71bb28da97cd778b99f131acaeb1c28ea37bae295a9e9934bed339508d8428587120c0da8f5bbc7963cdb77741ef789414f9d0d2c1e0da46026336efde147cc5 +build/test/crunch-icon-png-to-all/sample-icon-unvanquished-64x64.crn a3b526e95f44b6a4c919bc8eb79f4debf592f0bccc163c900cd1b6f9add0ce58c3db9fc8dac1828d350bbcd915823d7743a0c114a533fbc08c163fcb4846d2f5 +build/test/crunch-icon-png-to-all/sample-icon-unvanquished-64x64.dds ce98b21c574b4883e4aff4a0b92fd0f533f22e00ab753686f353111fa7503287c2c4dba25f2c2670508630d79b59464578e094461bad81ad803e1d58ed5e69f8 +build/test/crunch-icon-png-to-all/sample-icon-unvanquished-64x64.ktx d82eab591163d802231722ef325571735971b6a9b0703ed8ea59b4a4144189825d96d3455605426453fb3ad8d7cc61f931c52b3e73df2bb6787f7408baeb4ac7 +build/test/crunch-icon-png-to-all/sample-icon-unvanquished-64x64.jpg 6cd22de7e2e5baced5ef16e84f816dde3049f822459d552ced4dcd4e3f9a16be82ee0747ed1479fe8339991176004b4ccc90380b7ef51292c7d9b518503a348d +build/test/crunch-icon-crn-to-all/sample-icon-unvanquished-64x64.tga 71014682514ec9d2baa19444fd026ceb65aa06e86d32f34b326f336e47cf4ea351aa7c2eee6a1f0fbf290658fae72c24a86c4e167272143012d384dd6d6b1ce9 +build/test/crunch-icon-crn-to-all/sample-icon-unvanquished-64x64.bmp a6d6886879f9aade027ecb4d55f2092c3af98c297aaf2f689d77a11870156099853a41993575a9a313a23e399b3bcb06dcc0eac46b877639f3875972af7933d7 +build/test/crunch-icon-crn-to-all/sample-icon-unvanquished-64x64.png dd9d45459bd5a3ed74d494838a3d61ed4baea9960300cb3f1d54ecc923f742c9036fe13a338da6db2efc98049a2e206cb7c0e1cba6d79ea0e3ad86473af13e83 +build/test/crunch-icon-crn-to-all/sample-icon-unvanquished-64x64.crn 1596d312526073fd8923faefbed879fb1299ee53eeb54787f2b66754768d9a8160d9921b13aa9b7c781eb088be41cec0f3b703713aede43116a2b62f284f39f9 +build/test/crunch-icon-crn-to-all/sample-icon-unvanquished-64x64.dds 2aae5c5bd8c6a82d1cf3fc9d9da12fe3fc5be8651261ff1cb359e754308fd81e93bf304aeb55ada0bad50794d6e97d3e48084e5a4f48fa7caec4ed954152bae9 +build/test/crunch-icon-crn-to-all/sample-icon-unvanquished-64x64.ktx 10a45e43609c49b4929b91293e203557d8f5c1b146aa8162d946248e8fa24709e1645ed1fc40c2c1a541567b3d1287c7885cb0185230b660386825c4d03db22f +build/test/crunch-icon-crn-to-all/sample-icon-unvanquished-64x64.jpg f68e74b3c8a404fc867345411c8778228728897e5d0870e071d6ec67fd1fccb45b3b97993575c3ed66d80cd6a7d60845e8fe68780ac322fe1d46adc57014fa8b +build/test/crunch-icon-dds-to-all/sample-icon-unvanquished-64x64.tga 46e0c1796f7b1a998829919e14f69cb43d83b895585aca69ad17e0f6cd9839d20b383a6eca161320b87bb7161cbedc116466ec27319078a011b59fe16dc6ce26 +build/test/crunch-icon-dds-to-all/sample-icon-unvanquished-64x64.bmp 9d1b7c76f345332fa53e9b517ee47ba142d0c9def2b27b908af67b3c19edec0882f183f83eb9022cc2e726082193d7c82394a92b068137a4698a505d8bab0080 +build/test/crunch-icon-dds-to-all/sample-icon-unvanquished-64x64.png cd5b04f9c081f91a2d3a3fbf4484153feec5f0c027608f48a51209596ff604680ab93de70fbb616dc3fecea3fa6d240ac7a2e294bb0fc8244766375ffae54230 +build/test/crunch-icon-dds-to-all/sample-icon-unvanquished-64x64.crn 0db1f3bcf6240389be389dc2a94fdabf97aab439d12aabc6cca2ccb69559759fc414d2bc7735d0d4812b895ffb4085172f6a48439a104d79e0b5d65124b1f002 +build/test/crunch-icon-dds-to-all/sample-icon-unvanquished-64x64.dds ce98b21c574b4883e4aff4a0b92fd0f533f22e00ab753686f353111fa7503287c2c4dba25f2c2670508630d79b59464578e094461bad81ad803e1d58ed5e69f8 +build/test/crunch-icon-dds-to-all/sample-icon-unvanquished-64x64.ktx dbbea021367254587000704d11b5cf7982d3ac4a42edd9489b7b2ec49da796d4346c68c6ee1a163e6880f0efaeafc0235b739c2a4acbd1ed27750657af36e3df +build/test/crunch-icon-dds-to-all/sample-icon-unvanquished-64x64.jpg 3a2bfcc1f2ecb18371163bb16812096b019fec176731f015a301384d605910702d168f8762076fa5d912760947c8df8d4026fd9b038c0d94360d1bf744f592a2 +build/test/crunch-icon-ktx-to-all/sample-icon-unvanquished-64x64.tga 516bc1db1bfcda9c7f466cbb6f45b7608d9803391ae6d32e8de30d8e8102ef2de623cf6adfc74d471202ab14930dc4babe93a41b6c35b90e250a0de6b690fe7e +build/test/crunch-icon-ktx-to-all/sample-icon-unvanquished-64x64.bmp 0493fc75c26629d3a532e68e3778bb25ed6de4d81f3a39eb34a65a1990aa4072aa6b0948dc1ed3122b7ecf45e6be139d05b008ad7277649fc244d039404503fd +build/test/crunch-icon-ktx-to-all/sample-icon-unvanquished-64x64.png 7b5da6fea08f73d0e06791d000780820574d08e14c00c06ba2ef208296ebcfbc427175d72d6f2797e7240930782c70bf717a1e966fdd9aaada4a8b826ff9a2df +build/test/crunch-icon-ktx-to-all/sample-icon-unvanquished-64x64.crn 7cb43bf1f8fa87735d7643c3590b52bf918b6e202095787f2305c7469db957185871434b101fb2e2fb7d57e55fc0dc635994b8ed2765edb6b453f10931508f6b +build/test/crunch-icon-ktx-to-all/sample-icon-unvanquished-64x64.dds b2cecbf2870835ec04a8ed69012d294402017fa565393f8266a6dcc868f9c5b472b8b568c98250b5beb5b0d43ee9d9dc06d04cca4f35073541ba8331d55a6b46 +build/test/crunch-icon-ktx-to-all/sample-icon-unvanquished-64x64.ktx d82eab591163d802231722ef325571735971b6a9b0703ed8ea59b4a4144189825d96d3455605426453fb3ad8d7cc61f931c52b3e73df2bb6787f7408baeb4ac7 +build/test/crunch-icon-ktx-to-all/sample-icon-unvanquished-64x64.jpg c350e1e0d90b8d519a0cfdbad85c972a6f6c077988b8e96f5daef415f816b3ace2bb87c79772c6d25954caeb598ef3af7700f0bc10914349161fe1a4cc1f2d73 +build/test/crunch-icon-jpg-to-all/sample-icon-unvanquished-64x64.tga 4ea9e7b358a01fe1b09e9c16845a0249daddc87010403f33c525cfca69af85cb561019221adc8beae4172908d48a951df2d8bf65d63ae2ee183ee5c6df424c99 +build/test/crunch-icon-jpg-to-all/sample-icon-unvanquished-64x64.bmp 20636873950cde44336751526644ea6e979b5bdf1f45a166a40b583977a6f6cce6db32ab9b14d66eba1777ab8447fbc926a91b095c27cb4487e04d1f36ed3b0b +build/test/crunch-icon-jpg-to-all/sample-icon-unvanquished-64x64.png 24124a42c01f243ec2864cc70d399b685183acb04216a0b21133b454f4d69d7606b3190119ff8c869c5dd4a28f77fbc352f3717747e32099f507cc7b790c39e2 +build/test/crunch-icon-jpg-to-all/sample-icon-unvanquished-64x64.crn f7bf97cafc570eb16335006623b887de1b05591035a20f9399edc2386c59ab43832d4741a3763210c022cb65ee7a0facb29138bb7daf0b71f6b9059c1852c445 +build/test/crunch-icon-jpg-to-all/sample-icon-unvanquished-64x64.dds c1b3b785d107ba2f18097fb1cf009f598dbda9e797741ed66bd6cf9b1c376447f0990bb3890af12e3c73c4e02410adc0b5be6f386867d8ffc6aded53adb5f309 +build/test/crunch-icon-jpg-to-all/sample-icon-unvanquished-64x64.ktx 233e5d029b08cc45f8b3e9853edc6dc5dd5cab49cb0f95e870b9b6db917b2ddceaa2756d55aec1785c147375bc7a37030e3a8cde77d364f73d86043e99a7969a +build/test/crunch-icon-jpg-to-all/sample-icon-unvanquished-64x64.jpg abe6f8c6820c4d0762a00b6ce0789834601d764b1a9a330eeb3b49d5209ee9ca2968e154d53e74912e05a4b99467df1710c12d62354cdfc8d49c9cd315de2b65 +build/test/crunch-icon-tga-to-all/sample-icon-unvanquished-64x64.tga 34434170b06843b2d4fb5964a4b8751ec3a151a7d03e351e45a5967508f6a21f6e40ffc214bb46640105c4058bc35e196ecb5dd3261528a64acfeff52034fb40 +build/test/crunch-icon-tga-to-all/sample-icon-unvanquished-64x64.bmp 1c5f28be8151a8125346e9cf17b1bf6e3f9fe27f6947b164b7eefa8fd3732a2e4dff173c354a0cd4ed599cd604d4b8f916c0575b0a4b4b508acc68dc9b4067ae +build/test/crunch-icon-tga-to-all/sample-icon-unvanquished-64x64.png 71bb28da97cd778b99f131acaeb1c28ea37bae295a9e9934bed339508d8428587120c0da8f5bbc7963cdb77741ef789414f9d0d2c1e0da46026336efde147cc5 +build/test/crunch-icon-tga-to-all/sample-icon-unvanquished-64x64.crn a3b526e95f44b6a4c919bc8eb79f4debf592f0bccc163c900cd1b6f9add0ce58c3db9fc8dac1828d350bbcd915823d7743a0c114a533fbc08c163fcb4846d2f5 +build/test/crunch-icon-tga-to-all/sample-icon-unvanquished-64x64.dds ce98b21c574b4883e4aff4a0b92fd0f533f22e00ab753686f353111fa7503287c2c4dba25f2c2670508630d79b59464578e094461bad81ad803e1d58ed5e69f8 +build/test/crunch-icon-tga-to-all/sample-icon-unvanquished-64x64.ktx d82eab591163d802231722ef325571735971b6a9b0703ed8ea59b4a4144189825d96d3455605426453fb3ad8d7cc61f931c52b3e73df2bb6787f7408baeb4ac7 +build/test/crunch-icon-tga-to-all/sample-icon-unvanquished-64x64.jpg 6cd22de7e2e5baced5ef16e84f816dde3049f822459d552ced4dcd4e3f9a16be82ee0747ed1479fe8339991176004b4ccc90380b7ef51292c7d9b518503a348d +build/test/crunch-icon-bmp-to-all/sample-icon-unvanquished-64x64.tga 34434170b06843b2d4fb5964a4b8751ec3a151a7d03e351e45a5967508f6a21f6e40ffc214bb46640105c4058bc35e196ecb5dd3261528a64acfeff52034fb40 +build/test/crunch-icon-bmp-to-all/sample-icon-unvanquished-64x64.bmp 1c5f28be8151a8125346e9cf17b1bf6e3f9fe27f6947b164b7eefa8fd3732a2e4dff173c354a0cd4ed599cd604d4b8f916c0575b0a4b4b508acc68dc9b4067ae +build/test/crunch-icon-bmp-to-all/sample-icon-unvanquished-64x64.png 71bb28da97cd778b99f131acaeb1c28ea37bae295a9e9934bed339508d8428587120c0da8f5bbc7963cdb77741ef789414f9d0d2c1e0da46026336efde147cc5 +build/test/crunch-icon-bmp-to-all/sample-icon-unvanquished-64x64.crn a3b526e95f44b6a4c919bc8eb79f4debf592f0bccc163c900cd1b6f9add0ce58c3db9fc8dac1828d350bbcd915823d7743a0c114a533fbc08c163fcb4846d2f5 +build/test/crunch-icon-bmp-to-all/sample-icon-unvanquished-64x64.dds ce98b21c574b4883e4aff4a0b92fd0f533f22e00ab753686f353111fa7503287c2c4dba25f2c2670508630d79b59464578e094461bad81ad803e1d58ed5e69f8 +build/test/crunch-icon-bmp-to-all/sample-icon-unvanquished-64x64.ktx d82eab591163d802231722ef325571735971b6a9b0703ed8ea59b4a4144189825d96d3455605426453fb3ad8d7cc61f931c52b3e73df2bb6787f7408baeb4ac7 +build/test/crunch-icon-bmp-to-all/sample-icon-unvanquished-64x64.jpg 6cd22de7e2e5baced5ef16e84f816dde3049f822459d552ced4dcd4e3f9a16be82ee0747ed1479fe8339991176004b4ccc90380b7ef51292c7d9b518503a348d build/test/crunch-orientation-tga-to-all/sample-flat-bottom-left.tga e66a30ce22d193a2ecfec0fdcccde9579f01b547ea446c0542d155450c63df7bf443e7daf73253b22369af3195987c25336f1505fba86b82ca34f7042c025801 build/test/crunch-orientation-tga-to-all/sample-flat-bottom-left.bmp de14bb8dd4543d885bf674958753c3b0855bc8143c9e1a22e69404b81118d3fa8c2c24dc46b4ff786f1565f85ef1ae2b49e83000361d8571fcee754069bfd384 build/test/crunch-orientation-tga-to-all/sample-flat-bottom-left.png 6238f9678cd9fa774e6d50ee6638f316d0b1148ade344c06b4ddebac4738ea90e93c19d5cca405fccdabfdb37898bc7f9bccce1f0d974f9cbd18ab54b66adaa3 @@ -173,15 +173,15 @@ build/test/crunch-transparency-png-to-all/sample-rgb8-alpha8.crn 70aa2d510a77ef9 build/test/crunch-transparency-png-to-all/sample-rgb8-alpha8.dds 7ece974283299125d0578318fd9851286a731d7bd1fe8c33bfa5e40c17f8b7d23b0b445ca676a30a438dc38be53491b52dea60711fb4a260b1b9180447c96e3f build/test/crunch-transparency-png-to-all/sample-rgb8-alpha8.ktx 3e560a2f4ae02ccb133b36ccecd3c6fe4f55c6374efbe8e14e58feda68939b880619f99320b4d793a0b4b025d60e3ab48d7a178e014e2909d23ef25102135294 build/test/crunch-transparency-png-to-all/sample-rgb8-alpha8.jpg 5aa5fcb7124b2ff68169876350c7eba0b0e7e5d3a08b20cae775a2659c6f43ca35ae51121d14ab1cda9c2f1e77bfdd4694617e39e503a08239e0bc28e6b269f0 -build/test/crunch-format-jpg-to-all/sample-black.tga b316dd329ec0f0b80871a48f0eea486170671a9185bdf29da24745d46a3f08b9924e8ac306249e11f0e5ab4ffa973042f43d8d8890d8b394a77e2f88db61aa15 -build/test/crunch-format-jpg-to-all/sample-black.bmp 90fee6aca288530f2687facdbcf6392c40cc44515ab1eb41bb1076df7fc1564223e61af361d8d874ab677fa8fbfa8533be67b27737b2407d963bdb6b79aadca4 -build/test/crunch-format-jpg-to-all/sample-black.png 6bafef5b5826471257e36159fa27d812c9c12c76e1fa57d06b3549250c7b3bbac5138441c81b75d6ecb81f57780a3bf1545aa9ef255a13a1ec08be7f92182de7 -build/test/crunch-format-jpg-to-all/sample-black.crn 19fb840c8dbb7da96400af5af1c45fe48c7c7e19340d03fbe5a2af28ceecfb9efba26fe6c1bf46bd76164ecb0efe91cc9237917e8e431cd8365f80e9ffacc906 -build/test/crunch-format-jpg-to-all/sample-black.dds cadaf30985bb62b98cd601793d6440c70fa32e24459b780e043576d70817e2d4131f8902c703aa48cb7014b6e07f729e33ed9d989b0db0535261a2c6808805c2 -build/test/crunch-format-jpg-to-all/sample-black.ktx 00e261c23642594e12152e7a0f8ad56a3ed87526bb18ee2e5e0f65f1ce21bfc288bd4e6043807a7fa642f7130645025d3e621e8731bc4304e665c46a975f1c6a -build/test/crunch-format-jpg-to-all/sample-black.jpg 4e080976a21bf93553425038f152934dbb292937e8fefaa7f9bd876b551e03d4778b54c41e64f470acabea03ff8e7ad3325daf790df1b7b9042930f48a00591a -build/test/example1-icon-png-to-dds/unvanquished_64.dds ce98b21c574b4883e4aff4a0b92fd0f533f22e00ab753686f353111fa7503287c2c4dba25f2c2670508630d79b59464578e094461bad81ad803e1d58ed5e69f8 -build/test/example1-icon-png-to-crn/unvanquished_64.crn a3b526e95f44b6a4c919bc8eb79f4debf592f0bccc163c900cd1b6f9add0ce58c3db9fc8dac1828d350bbcd915823d7743a0c114a533fbc08c163fcb4846d2f5 -build/test/example1-icon-crn-to-dds/unvanquished_64.dds 2aae5c5bd8c6a82d1cf3fc9d9da12fe3fc5be8651261ff1cb359e754308fd81e93bf304aeb55ada0bad50794d6e97d3e48084e5a4f48fa7caec4ed954152bae9 -build/test/example2-icon-crn-to-dds/unvanquished_64.dds 2aae5c5bd8c6a82d1cf3fc9d9da12fe3fc5be8651261ff1cb359e754308fd81e93bf304aeb55ada0bad50794d6e97d3e48084e5a4f48fa7caec4ed954152bae9 -build/test/example3-icon-png-to-dds/unvanquished_64.dds a719dd943bc4e30be0c124e6bafb1d8ba4002b9233e6208104f93046edd4ddd7aea7815430ae2c0b7efe259943f6a8fe109f56ea457e43cde79295ae7ac85b43 +build/test/crunch-format-jpg-to-all/sample-black-64x64.tga b316dd329ec0f0b80871a48f0eea486170671a9185bdf29da24745d46a3f08b9924e8ac306249e11f0e5ab4ffa973042f43d8d8890d8b394a77e2f88db61aa15 +build/test/crunch-format-jpg-to-all/sample-black-64x64.bmp 90fee6aca288530f2687facdbcf6392c40cc44515ab1eb41bb1076df7fc1564223e61af361d8d874ab677fa8fbfa8533be67b27737b2407d963bdb6b79aadca4 +build/test/crunch-format-jpg-to-all/sample-black-64x64.png 6bafef5b5826471257e36159fa27d812c9c12c76e1fa57d06b3549250c7b3bbac5138441c81b75d6ecb81f57780a3bf1545aa9ef255a13a1ec08be7f92182de7 +build/test/crunch-format-jpg-to-all/sample-black-64x64.crn 19fb840c8dbb7da96400af5af1c45fe48c7c7e19340d03fbe5a2af28ceecfb9efba26fe6c1bf46bd76164ecb0efe91cc9237917e8e431cd8365f80e9ffacc906 +build/test/crunch-format-jpg-to-all/sample-black-64x64.dds cadaf30985bb62b98cd601793d6440c70fa32e24459b780e043576d70817e2d4131f8902c703aa48cb7014b6e07f729e33ed9d989b0db0535261a2c6808805c2 +build/test/crunch-format-jpg-to-all/sample-black-64x64.ktx 00e261c23642594e12152e7a0f8ad56a3ed87526bb18ee2e5e0f65f1ce21bfc288bd4e6043807a7fa642f7130645025d3e621e8731bc4304e665c46a975f1c6a +build/test/crunch-format-jpg-to-all/sample-black-64x64.jpg 4e080976a21bf93553425038f152934dbb292937e8fefaa7f9bd876b551e03d4778b54c41e64f470acabea03ff8e7ad3325daf790df1b7b9042930f48a00591a +build/test/example1-icon-png-to-dds/sample-icon-unvanquished-64x64.dds ce98b21c574b4883e4aff4a0b92fd0f533f22e00ab753686f353111fa7503287c2c4dba25f2c2670508630d79b59464578e094461bad81ad803e1d58ed5e69f8 +build/test/example1-icon-png-to-crn/sample-icon-unvanquished-64x64.crn a3b526e95f44b6a4c919bc8eb79f4debf592f0bccc163c900cd1b6f9add0ce58c3db9fc8dac1828d350bbcd915823d7743a0c114a533fbc08c163fcb4846d2f5 +build/test/example1-icon-crn-to-dds/sample-icon-unvanquished-64x64.dds 2aae5c5bd8c6a82d1cf3fc9d9da12fe3fc5be8651261ff1cb359e754308fd81e93bf304aeb55ada0bad50794d6e97d3e48084e5a4f48fa7caec4ed954152bae9 +build/test/example2-icon-crn-to-dds/sample-icon-unvanquished-64x64.dds 2aae5c5bd8c6a82d1cf3fc9d9da12fe3fc5be8651261ff1cb359e754308fd81e93bf304aeb55ada0bad50794d6e97d3e48084e5a4f48fa7caec4ed954152bae9 +build/test/example3-icon-png-to-dds/sample-icon-unvanquished-64x64.dds a719dd943bc4e30be0c124e6bafb1d8ba4002b9233e6208104f93046edd4ddd7aea7815430ae2c0b7efe259943f6a8fe109f56ea457e43cde79295ae7ac85b43 diff --git a/test/sample-black.jpg b/test/sample-black-64x64.jpg similarity index 100% rename from test/sample-black.jpg rename to test/sample-black-64x64.jpg diff --git a/test/unvanquished_64.png b/test/sample-icon-unvanquished-64x64.png similarity index 100% rename from test/unvanquished_64.png rename to test/sample-icon-unvanquished-64x64.png diff --git a/test/test.py b/test/test.py index d62ef9dd..c344708a 100755 --- a/test/test.py +++ b/test/test.py @@ -339,7 +339,7 @@ def start_from(items, value): mkdir(out_dir) for out_format in all_format_list: - sample_name = "unvanquished_64" + sample_name = "sample-icon-unvanquished-64x64" in_path = f"{in_dir}/{sample_name}.{in_format}" @@ -401,7 +401,7 @@ def start_from(items, value): "clone": False, "format": "jpg", "samples": [ - "sample-black", + "sample-black-64x64", ], }, ] @@ -429,22 +429,22 @@ def start_from(items, value): crunch(in_path, out_path, clone_name) -example(1, "test/unvanquished_64.png", None, None, options=["i"]) +example(1, "test/sample-icon-unvanquished-64x64.png", None, None, options=["i"]) mkdir("build/test/example1-icon-png-to-dds") -example(1, "test/unvanquished_64.png", "build/test/example1-icon-png-to-dds/unvanquished_64.dds", "icon-png-to-dds", options=["c"]) +example(1, "test/sample-icon-unvanquished-64x64.png", "build/test/example1-icon-png-to-dds/sample-icon-unvanquished-64x64.dds", "icon-png-to-dds", options=["c"]) mkdir("build/test/example1-icon-png-to-crn") -example(1, "test/unvanquished_64.png", "build/test/example1-icon-png-to-crn/unvanquished_64.crn", "icon-png-to-crn", options=["c", "-crn"]) +example(1, "test/sample-icon-unvanquished-64x64.png", "build/test/example1-icon-png-to-crn/sample-icon-unvanquished-64x64.crn", "icon-png-to-crn", options=["c", "-crn"]) mkdir("build/test/example1-icon-crn-to-dds") -example(1, "build/test/example1-icon-png-to-crn/unvanquished_64.crn", "build/test/example1-icon-crn-to-dds/unvanquished_64.dds", "icon-crn-to-dds", options=["d"]) +example(1, "build/test/example1-icon-png-to-crn/sample-icon-unvanquished-64x64.crn", "build/test/example1-icon-crn-to-dds/sample-icon-unvanquished-64x64.dds", "icon-crn-to-dds", options=["d"]) mkdir("build/test/example2-icon-crn-to-dds") -example(2, "build/test/example1-icon-png-to-crn/unvanquished_64.crn", "build/test/example2-icon-crn-to-dds/unvanquished_64.dds", "icon-crn-to-dds") +example(2, "build/test/example1-icon-png-to-crn/sample-icon-unvanquished-64x64.crn", "build/test/example2-icon-crn-to-dds/sample-icon-unvanquished-64x64.dds", "icon-crn-to-dds") mkdir("build/test/example3-icon-png-to-dds") -example(3, "test/unvanquished_64.png", "build/test/example3-icon-png-to-dds/unvanquished_64.dds", None) +example(3, "test/sample-icon-unvanquished-64x64.png", "build/test/example3-icon-png-to-dds/sample-icon-unvanquished-64x64.dds", None) print_success("All tests executed") From c7fe01fd1dbd166819cd38ed9ec28b3dbbb2e35e Mon Sep 17 00:00:00 2001 From: Thomas Debesse Date: Mon, 10 Aug 2026 06:20:30 +0200 Subject: [PATCH 09/16] test: count the failed and verified tests and display the numbers --- test/test.py | 59 ++++++++++++++++++++++++++++++++++------------------ 1 file changed, 39 insertions(+), 20 deletions(-) diff --git a/test/test.py b/test/test.py index c344708a..af1b6d27 100755 --- a/test/test.py +++ b/test/test.py @@ -157,7 +157,8 @@ def record_sums(): print_success("All test results recorded") def verify_clones(verification): - all_verified = True + clones_verified = 0 + clones_failed = 0 if verification: for file_clone in clone_knowledge.keys(): @@ -174,17 +175,29 @@ def verify_clones(verification): if verified: print_success("Clone {}'s checksum {} matches known one".format(file_path, known_sum)) + clones_verified += 1 + + # Count the first clone as verified once the second one is found and is verified. + if len(clone_knowledge[file_clone]["files"].keys()) == 1: + clones_verified += 1 else: print_warning("Clone {}'s checksum {} doesn't match known one {}".format(file_path, file_sum, known_sum)) - all_verified = False + clones_failed += 1 + + # Count the first clone as failed once the second one is found and is failed. + if len(clone_knowledge[file_clone]["files"].keys()) == 1: + clones_verified += 1 else: clone_knowledge[file_clone]["known_sum"] = file_sum - return all_verified + # Do not count the first clone as verified or failed until a second clone is seen and verified. + + return clones_verified, clones_failed def verify_files(verification): - all_verified = True + files_verified = 0 + files_failed = 0 if verification: database_file = open(database_path, "r") @@ -202,7 +215,7 @@ def verify_files(verification): if "known_sum" not in file_knowledge[file_path].keys(): print_warning(f"Missing recorded sum for {file_path}") - all_verified = False + files_failed += 1 continue known_sum = file_knowledge[file_path]["known_sum"] @@ -211,11 +224,12 @@ def verify_files(verification): if verified: print_success("File {}'s checksum {} matches known one".format(file_path, known_sum)) + files_verified += 1 else: print_warning("File {}'s checksum {} doesn't match known one {}".format(file_path, file_sum, known_sum)) - all_verified = False + files_verified += 1 - return all_verified + return files_verified, files_failed def print_clones_results(verification): if verification: @@ -258,23 +272,28 @@ def print_files_results(verification): short_sum = file_knowledge[file_path]["file_sum"][0:10] print("{:<3} {} {}".format(verified_string, short_sum, file_path)) -def print_end_results(clones_verification, clones_verified, files_verification, files_verified): +def print_end_results(clones_verification, clones_verified, clones_failed, files_verification, files_verified, files_failed): if clones_verification: - if clones_verified: - print_success("All clones verified") + clones_total = clones_verified + clones_failed + if not clones_failed: + print_success(f"All clones verified (total: {clones_total})") else: - print_warning("Some clones were not verified") + print_warning(f"Some clones were not verified (verified: {clones_verified}, failed: {clones_failed}, total: {clones_total})") if files_verification: - if files_verified: - print_success("All files verified") + files_total = files_verified + files_failed + if not files_failed: + print_success(f"All files verified (total: {files_total})") else: - print_warning("Some files were not verified") + print_warning(f"Some files were not verified (verified: {files_verified}, failed: {files_failed}, total: {files_total})") - if clones_verified and files_verified: - print_success("All tests passed") + tests_verified = clones_verified + files_verified + tests_failed = clones_failed + files_failed + tests_total = tests_verified + tests_failed + if not tests_failed: + print_success(f"All tests passed (total: {tests_total})") else: - print_error("Some tests failed") + print_error(f"Some tests failed (verified: {tests_verified}, failed: {tests_failed}, total: {tests_total})") crunch(None, None, None, options=["--help"]) @@ -461,12 +480,12 @@ def start_from(items, value): files_verification = False record_sums() -clones_verified = verify_clones(clones_verification) +clones_verified, clones_failed = verify_clones(clones_verification) -files_verified = verify_files(files_verification) +files_verified, files_failed = verify_files(files_verification) print_clones_results(clones_verification) print_files_results(files_verification) -print_end_results(clones_verification, clones_verified, files_verification, files_verified) +print_end_results(clones_verification, clones_verified, clones_failed, files_verification, files_verified, files_failed) From 062340352d6f19772c83cd27726ad8a3028f3928 Mon Sep 17 00:00:00 2001 From: Thomas Debesse Date: Fri, 7 Aug 2026 06:04:52 +0200 Subject: [PATCH 10/16] test: call wineserver -k before every wine run to avoid random errors Example of errors that would randomly surface in some test runs when running them on wine in the Azure CI: 009c:err:rpc:I_RpcReceive we got fault packet with status 0x1c010003 wine client error:0: recvmsg: Connection reset by peer --- test/test.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/test/test.py b/test/test.py index af1b6d27..84917320 100755 --- a/test/test.py +++ b/test/test.py @@ -56,6 +56,10 @@ def get_file_sum(file_path): return hashlib.blake2b(open(file_path, "rb").read()).hexdigest() def run(command_list): + if executable_runner and executable_runner.endswith("wine"): + wineserver = f"{executable_runner}server" + subprocess.run([wineserver, "-k"], check=False) + if executable_runner: command_list = executable_runner.split(" ") + command_list From a255555cd45af469c473be3a5c28cc429ce6ba65 Mon Sep 17 00:00:00 2001 From: Thomas Debesse Date: Wed, 5 Aug 2026 03:13:25 +0200 Subject: [PATCH 11/16] =?UTF-8?q?crn=5Fjpgd:=20accept=20grayscale=20JPEGs?= =?UTF-8?q?=20with=20non-1=C3=971=20sampling=20factors?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Some grayscale JPEG files contain non-1×1 sampling factors even though they only have a single luminance component. Treat these as grayscale JPEGs with 1×1 sampling instead of rejecting them. This fixes loading and converting flr_tmtl_bump.jpg from Xonotic. --- crnlib/crn_jpgd.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/crnlib/crn_jpgd.cpp b/crnlib/crn_jpgd.cpp index 7594c8ac..cdb2583f 100644 --- a/crnlib/crn_jpgd.cpp +++ b/crnlib/crn_jpgd.cpp @@ -2330,8 +2330,12 @@ void jpeg_decoder::init_frame() { int i; if (m_comps_in_frame == 1) { - if ((m_comp_h_samp[0] != 1) || (m_comp_v_samp[0] != 1)) - stop_decoding(JPGD_UNSUPPORTED_SAMP_FACTORS); + if ((m_comp_h_samp[0] != 1) || (m_comp_v_samp[0] != 1)) { + // Some grayscale JPEGs contain non-1×1 sampling factors. + // There is no chroma plane to subsample, so normalize to the expected layout. + m_comp_h_samp[0] = 1; + m_comp_v_samp[0] = 1; + } m_scan_type = JPGD_GRAYSCALE; m_max_blocks_per_mcu = 1; From aa8b02b6abc8573ac593e783f69a05832bbd3609 Mon Sep 17 00:00:00 2001 From: Thomas Debesse Date: Wed, 5 Aug 2026 04:33:43 +0200 Subject: [PATCH 12/16] =?UTF-8?q?test:=20add=20JPEG=20samples=20with=20gra?= =?UTF-8?q?yscale=20component=20using=201=C3=971=20and=202=C3=972=20sampli?= =?UTF-8?q?ng?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- test/checksums.tsv | 14 ++++++++++++++ test/sample-grayscale-sampling1x1.jpg | Bin 0 -> 159 bytes test/sample-grayscale-sampling2x2.jpg | Bin 0 -> 159 bytes test/test.py | 2 ++ 4 files changed, 16 insertions(+) create mode 100644 test/sample-grayscale-sampling1x1.jpg create mode 100644 test/sample-grayscale-sampling2x2.jpg diff --git a/test/checksums.tsv b/test/checksums.tsv index 82871e49..e5f2a9b6 100644 --- a/test/checksums.tsv +++ b/test/checksums.tsv @@ -180,6 +180,20 @@ build/test/crunch-format-jpg-to-all/sample-black-64x64.crn 19fb840c8dbb7da96400a build/test/crunch-format-jpg-to-all/sample-black-64x64.dds cadaf30985bb62b98cd601793d6440c70fa32e24459b780e043576d70817e2d4131f8902c703aa48cb7014b6e07f729e33ed9d989b0db0535261a2c6808805c2 build/test/crunch-format-jpg-to-all/sample-black-64x64.ktx 00e261c23642594e12152e7a0f8ad56a3ed87526bb18ee2e5e0f65f1ce21bfc288bd4e6043807a7fa642f7130645025d3e621e8731bc4304e665c46a975f1c6a build/test/crunch-format-jpg-to-all/sample-black-64x64.jpg 4e080976a21bf93553425038f152934dbb292937e8fefaa7f9bd876b551e03d4778b54c41e64f470acabea03ff8e7ad3325daf790df1b7b9042930f48a00591a +build/test/crunch-format-jpg-to-all/sample-grayscale-sampling1x1.tga c0c0863c373eae0936868e86e4ff9898714a78d5e1f96b972bffdce4f2e2cb3b0065477ce43f3118f256fe74e461e91c29db58e03c3bd32cac238e6e478f9300 +build/test/crunch-format-jpg-to-all/sample-grayscale-sampling1x1.bmp d6247ea2517362b1f3c98d1542cacd1c0cb429d00a7635169adf24ac253f37217446e6eec6e06820afc99c35534a907c9539c41a5b3dc0de51bc161ebe11e860 +build/test/crunch-format-jpg-to-all/sample-grayscale-sampling1x1.png 59533b55e3302cee1faa5583fe831435110933b0bc8030cf8e70380982f0704cb83abbae3a5fcdec3c20157a793f8a7908c9393373ad213559b0e0358d5471ea +build/test/crunch-format-jpg-to-all/sample-grayscale-sampling1x1.crn 869a12414daecba28f7d4bb1f54467f21c01f356daa59b8e4ffc78ec643fb0f7a5db536c8fa8e62325c7625a718f153c2327f6ce95d6fc05f3fb26a9bac46ceb +build/test/crunch-format-jpg-to-all/sample-grayscale-sampling1x1.dds e9ea76b8a7eaa5a227659d86db3c64703ffe09788e49b9ccf9833c392d39d8ef8626865bebb1a977f5970ba21f3156d1f7741cb5d635804e8f852f2af8b83328 +build/test/crunch-format-jpg-to-all/sample-grayscale-sampling1x1.ktx 44e1df3fa8d784d7e490d8440eba4e049b721af932b7898c317d03474290669531afe85916d3452bc1d0966a9a6d36cf53964e98eb2dfdc1cabf6d7c02afab61 +build/test/crunch-format-jpg-to-all/sample-grayscale-sampling1x1.jpg fe96bbc6e9c37ba66a981d40bd46d05ea0a385499c7feed7839915da665c376cc1257cd82721ee8d454dc2f425c1bfc16490ae4607465b3b9545fc4741ce0a2f +build/test/crunch-format-jpg-to-all/sample-grayscale-sampling2x2.tga c0c0863c373eae0936868e86e4ff9898714a78d5e1f96b972bffdce4f2e2cb3b0065477ce43f3118f256fe74e461e91c29db58e03c3bd32cac238e6e478f9300 +build/test/crunch-format-jpg-to-all/sample-grayscale-sampling2x2.bmp d6247ea2517362b1f3c98d1542cacd1c0cb429d00a7635169adf24ac253f37217446e6eec6e06820afc99c35534a907c9539c41a5b3dc0de51bc161ebe11e860 +build/test/crunch-format-jpg-to-all/sample-grayscale-sampling2x2.png 59533b55e3302cee1faa5583fe831435110933b0bc8030cf8e70380982f0704cb83abbae3a5fcdec3c20157a793f8a7908c9393373ad213559b0e0358d5471ea +build/test/crunch-format-jpg-to-all/sample-grayscale-sampling2x2.crn 869a12414daecba28f7d4bb1f54467f21c01f356daa59b8e4ffc78ec643fb0f7a5db536c8fa8e62325c7625a718f153c2327f6ce95d6fc05f3fb26a9bac46ceb +build/test/crunch-format-jpg-to-all/sample-grayscale-sampling2x2.dds e9ea76b8a7eaa5a227659d86db3c64703ffe09788e49b9ccf9833c392d39d8ef8626865bebb1a977f5970ba21f3156d1f7741cb5d635804e8f852f2af8b83328 +build/test/crunch-format-jpg-to-all/sample-grayscale-sampling2x2.ktx 44e1df3fa8d784d7e490d8440eba4e049b721af932b7898c317d03474290669531afe85916d3452bc1d0966a9a6d36cf53964e98eb2dfdc1cabf6d7c02afab61 +build/test/crunch-format-jpg-to-all/sample-grayscale-sampling2x2.jpg fe96bbc6e9c37ba66a981d40bd46d05ea0a385499c7feed7839915da665c376cc1257cd82721ee8d454dc2f425c1bfc16490ae4607465b3b9545fc4741ce0a2f build/test/example1-icon-png-to-dds/sample-icon-unvanquished-64x64.dds ce98b21c574b4883e4aff4a0b92fd0f533f22e00ab753686f353111fa7503287c2c4dba25f2c2670508630d79b59464578e094461bad81ad803e1d58ed5e69f8 build/test/example1-icon-png-to-crn/sample-icon-unvanquished-64x64.crn a3b526e95f44b6a4c919bc8eb79f4debf592f0bccc163c900cd1b6f9add0ce58c3db9fc8dac1828d350bbcd915823d7743a0c114a533fbc08c163fcb4846d2f5 build/test/example1-icon-crn-to-dds/sample-icon-unvanquished-64x64.dds 2aae5c5bd8c6a82d1cf3fc9d9da12fe3fc5be8651261ff1cb359e754308fd81e93bf304aeb55ada0bad50794d6e97d3e48084e5a4f48fa7caec4ed954152bae9 diff --git a/test/sample-grayscale-sampling1x1.jpg b/test/sample-grayscale-sampling1x1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..216835cc7db6c7fc0726005308768bf8eb90d916 GIT binary patch literal 159 zcmZ9GK@P$o6hsFEOZb$2TByB^3zH^#Y8M`&>c*S=LR{&~EGBO;8QJ6mzOC04O5uyV zalt|BmWrvd&RS!v@4BN4J_PbaeH^)uDH8F_Y09OPFr1b-FJmrQ?jQ$MS5<;MkZb=% QH_QJP@`7tu&KTsm19RsSmjD0& literal 0 HcmV?d00001 diff --git a/test/sample-grayscale-sampling2x2.jpg b/test/sample-grayscale-sampling2x2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..71fb8451cf52405c3f1ef5fe00eac78760d75f3a GIT binary patch literal 159 zcmZ9GI}XAy5JbnuCYIN6Henr7a}f%pNN{Qj4#B74CW|d9c$#ALiqYs@-{8x7USSNr z=nE%otZk{d8XvrO&d09Xh7?nxNYv+v`#feMo_X9!DJ2d2WtL@N)o RUu?7dZ=p|wcIAjcA0Kzp6Q}?H literal 0 HcmV?d00001 diff --git a/test/test.py b/test/test.py index 84917320..2e95da66 100755 --- a/test/test.py +++ b/test/test.py @@ -425,6 +425,8 @@ def start_from(items, value): "format": "jpg", "samples": [ "sample-black-64x64", + "sample-grayscale-sampling1x1", + "sample-grayscale-sampling2x2", ], }, ] From 8faa601ea5ddb36bc69dbc80ac22bb0ce30a13fc Mon Sep 17 00:00:00 2001 From: Thomas Debesse Date: Wed, 5 Aug 2026 02:21:15 +0200 Subject: [PATCH 13/16] crn_mipmapped_texture: ignore fully opaque alpha channels This allows opaque images to use formats without alpha channels when converting to CRN, DDS, or KTX. This matches the existing behavior when converting to PNG or TGA. --- crnlib/crn_mipmapped_texture.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/crnlib/crn_mipmapped_texture.cpp b/crnlib/crn_mipmapped_texture.cpp index 9e9937b2..22b7078f 100644 --- a/crnlib/crn_mipmapped_texture.cpp +++ b/crnlib/crn_mipmapped_texture.cpp @@ -2653,6 +2653,10 @@ bool mipmapped_texture::read_regular_image(data_stream_serializer& serializer) { return false; } + // Ignore alpha channel when it exists but is fully opaque. + const bool has_alpha = image_utils::has_alpha(*pImg); + pImg->set_component_valid(3, has_alpha); + mip_level* pLevel = crnlib_new(); pLevel->assign(pImg); From 7fc908ccca10b2c4a45b6da8fd0281205cbb40e9 Mon Sep 17 00:00:00 2001 From: Thomas Debesse Date: Fri, 7 Aug 2026 02:40:46 +0200 Subject: [PATCH 14/16] crn_image_utils: preserve alpha in grayscale image conversion Images marked as grayscale with a valid alpha component were converted to grayscale-only data when preparing them for output, causing the alpha channel to be discarded. Preserve the alpha channel by keeping grayscale images with alpha as grayscale+alpha data, while continuing to discard alpha for formats such as JPEG that do not support it. --- crnlib/crn_image_utils.cpp | 59 ++++++++++++++++++++++++++------------ 1 file changed, 41 insertions(+), 18 deletions(-) diff --git a/crnlib/crn_image_utils.cpp b/crnlib/crn_image_utils.cpp index c5ca6f35..f045d932 100644 --- a/crnlib/crn_image_utils.cpp +++ b/crnlib/crn_image_utils.cpp @@ -174,27 +174,50 @@ bool write_to_file(const char* pFilename, const image_u8& img, uint write_flags, if (grayscale_comp_index > 3) grayscale_comp_index = 3; - temp.resize(img.get_total_pixels()); + if ((img.get_comp_flags() & pixel_format_helpers::cCompFlagGrayscale) && + img.is_component_valid(3) && + !(write_flags & cWriteFlagIgnoreAlpha)) { + temp.resize(img.get_total_pixels() * 2); + + for (uint y = 0; y < img.get_height(); y++) { + const color_quad_u8* pSrc = img.get_scanline(y); + const color_quad_u8* pSrc_end = pSrc + img.get_width(); + uint8* pDst = &temp[y * img.get_width() * 2]; + + while (pSrc != pSrc_end) { + const color_quad_u8 c(*pSrc++); + + pDst[0] = c[1]; + pDst[1] = c.a; + pDst += 2; + } + } - for (uint y = 0; y < img.get_height(); y++) { - const color_quad_u8* pSrc = img.get_scanline(y); - const color_quad_u8* pSrc_end = pSrc + img.get_width(); - uint8* pDst = &temp[y * img.get_width()]; - - if (img.get_comp_flags() & pixel_format_helpers::cCompFlagGrayscale) { - while (pSrc != pSrc_end) - *pDst++ = (*pSrc++)[1]; - } else if (grayscale_comp_index < 0) { - while (pSrc != pSrc_end) - *pDst++ = static_cast((*pSrc++).get_luma()); - } else { - while (pSrc != pSrc_end) - *pDst++ = (*pSrc++)[grayscale_comp_index]; + pSrc_img = &temp[0]; + num_src_chans = 2; + } else { + temp.resize(img.get_total_pixels()); + + for (uint y = 0; y < img.get_height(); y++) { + const color_quad_u8* pSrc = img.get_scanline(y); + const color_quad_u8* pSrc_end = pSrc + img.get_width(); + uint8* pDst = &temp[y * img.get_width()]; + + if (img.get_comp_flags() & pixel_format_helpers::cCompFlagGrayscale) { + while (pSrc != pSrc_end) + *pDst++ = (*pSrc++)[1]; + } else if (grayscale_comp_index < 0) { + while (pSrc != pSrc_end) + *pDst++ = static_cast((*pSrc++).get_luma()); + } else { + while (pSrc != pSrc_end) + *pDst++ = (*pSrc++)[grayscale_comp_index]; + } } - } - pSrc_img = &temp[0]; - num_src_chans = 1; + pSrc_img = &temp[0]; + num_src_chans = 1; + } } else if ((!img.is_component_valid(3)) || (write_flags & cWriteFlagIgnoreAlpha)) { temp.resize(img.get_total_pixels() * 3); From 3daaf3893144f894d68ab992ff77864b5ad6da40 Mon Sep 17 00:00:00 2001 From: Thomas Debesse Date: Sat, 8 Aug 2026 02:04:01 +0200 Subject: [PATCH 15/16] crn_image_utils: preserve alpha in grayscale BMP output Grayscale images with a valid alpha component are internally represented as A8L8. Expand them to RGBA8 when writing BMP files so the alpha channel is preserved. --- crnlib/crn_image_utils.cpp | 28 ++++++++++++++++++++++------ 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/crnlib/crn_image_utils.cpp b/crnlib/crn_image_utils.cpp index f045d932..09c0ea0d 100644 --- a/crnlib/crn_image_utils.cpp +++ b/crnlib/crn_image_utils.cpp @@ -177,24 +177,40 @@ bool write_to_file(const char* pFilename, const image_u8& img, uint write_flags, if ((img.get_comp_flags() & pixel_format_helpers::cCompFlagGrayscale) && img.is_component_valid(3) && !(write_flags & cWriteFlagIgnoreAlpha)) { - temp.resize(img.get_total_pixels() * 2); + // Preserve grayscale images with alpha. + // + // PNG supports grayscale+alpha directly, while BMP/TGA writers + // expect color channels for alpha output. Expand to RGBA for + // those formats. + const bool expand_to_rgba = (ext == "bmp") || (ext == "tga"); + const uint num_channels = expand_to_rgba ? 4 : 2; + + temp.resize(img.get_total_pixels() * num_channels); for (uint y = 0; y < img.get_height(); y++) { const color_quad_u8* pSrc = img.get_scanline(y); const color_quad_u8* pSrc_end = pSrc + img.get_width(); - uint8* pDst = &temp[y * img.get_width() * 2]; + uint8* pDst = &temp[y * img.get_width() * num_channels]; while (pSrc != pSrc_end) { const color_quad_u8 c(*pSrc++); - pDst[0] = c[1]; - pDst[1] = c.a; - pDst += 2; + if (expand_to_rgba) { + pDst[0] = c[1]; + pDst[1] = c[1]; + pDst[2] = c[1]; + pDst[3] = c.a; + pDst += 4; + } else { + pDst[0] = c[1]; + pDst[1] = c.a; + pDst += 2; + } } } pSrc_img = &temp[0]; - num_src_chans = 2; + num_src_chans = num_channels; } else { temp.resize(img.get_total_pixels()); From fa752b40dc8f0db79dd96e704ad19d0cf6774773 Mon Sep 17 00:00:00 2001 From: Thomas Debesse Date: Fri, 7 Aug 2026 02:44:00 +0200 Subject: [PATCH 16/16] test: add TGA samples with alpha channel variants, with a generator --- test/checksums.tsv | 311 +++++++++++++++++- test/generate-tga-alpha-samples.py | 291 ++++++++++++++++ ...lat-grayscale8-alpha8-white-opaque-1x1.tga | Bin 0 -> 20 bytes ...rayscale8-alpha8-white-transparent-1x1.tga | Bin 0 -> 20 bytes ...at-grayscale8-noalpha-white-opaque-1x1.tga | Bin 0 -> 19 bytes ...lat-grayscale8-other8-white-opaque-1x1.tga | Bin 0 -> 20 bytes ...rayscale8-other8-white-transparent-1x1.tga | Bin 0 -> 20 bytes ...rage-flat-rgb8-alpha8-color-opaque-2x2.tga | Bin 0 -> 34 bytes ...flat-rgb8-alpha8-color-transparent-2x2.tga | Bin 0 -> 34 bytes ...torage-flat-rgb8-alpha8-red-opaque-1x1.tga | Bin 0 -> 22 bytes ...e-flat-rgb8-alpha8-red-transparent-1x1.tga | Bin 0 -> 22 bytes ...rage-flat-rgb8-alpha8-white-opaque-1x1.tga | Bin 0 -> 22 bytes ...flat-rgb8-alpha8-white-transparent-1x1.tga | Bin 0 -> 22 bytes ...age-flat-rgb8-noalpha-color-opaque-2x2.tga | Bin 0 -> 30 bytes ...orage-flat-rgb8-noalpha-red-opaque-1x1.tga | Bin 0 -> 21 bytes ...age-flat-rgb8-noalpha-white-opaque-1x1.tga | Bin 0 -> 21 bytes ...rage-flat-rgb8-other8-color-opaque-2x2.tga | Bin 0 -> 34 bytes ...flat-rgb8-other8-color-transparent-2x2.tga | Bin 0 -> 34 bytes ...torage-flat-rgb8-other8-red-opaque-1x1.tga | Bin 0 -> 22 bytes ...e-flat-rgb8-other8-red-transparent-1x1.tga | Bin 0 -> 22 bytes ...rage-flat-rgb8-other8-white-opaque-1x1.tga | Bin 0 -> 22 bytes ...flat-rgb8-other8-white-transparent-1x1.tga | Bin 0 -> 22 bytes ...rle-grayscale8-alpha8-white-opaque-2x2.tga | Bin 0 -> 21 bytes ...rayscale8-alpha8-white-transparent-2x2.tga | Bin 0 -> 21 bytes ...le-grayscale8-noalpha-white-opaque-2x2.tga | Bin 0 -> 20 bytes ...rle-grayscale8-other8-white-opaque-2x2.tga | Bin 0 -> 21 bytes ...rayscale8-other8-white-transparent-2x2.tga | Bin 0 -> 21 bytes ...orage-rle-rgb8-alpha8-color-opaque-2x2.tga | Bin 0 -> 35 bytes ...orage-rle-rgb8-alpha8-color-opaque-8x8.tga | Bin 0 -> 98 bytes ...-rle-rgb8-alpha8-color-transparent-2x2.tga | Bin 0 -> 35 bytes ...-rle-rgb8-alpha8-color-transparent-8x8.tga | Bin 0 -> 98 bytes ...storage-rle-rgb8-alpha8-red-opaque-2x2.tga | Bin 0 -> 23 bytes ...ge-rle-rgb8-alpha8-red-transparent-2x2.tga | Bin 0 -> 23 bytes ...orage-rle-rgb8-alpha8-white-opaque-2x2.tga | Bin 0 -> 23 bytes ...-rle-rgb8-alpha8-white-transparent-2x2.tga | Bin 0 -> 23 bytes ...rage-rle-rgb8-noalpha-color-opaque-2x2.tga | Bin 0 -> 31 bytes ...rage-rle-rgb8-noalpha-color-opaque-8x8.tga | Bin 0 -> 82 bytes ...torage-rle-rgb8-noalpha-red-opaque-2x2.tga | Bin 0 -> 22 bytes ...rage-rle-rgb8-noalpha-white-opaque-2x2.tga | Bin 0 -> 22 bytes ...orage-rle-rgb8-other8-color-opaque-2x2.tga | Bin 0 -> 35 bytes ...orage-rle-rgb8-other8-color-opaque-8x8.tga | Bin 0 -> 98 bytes ...-rle-rgb8-other8-color-transparent-2x2.tga | Bin 0 -> 35 bytes ...-rle-rgb8-other8-color-transparent-8x8.tga | Bin 0 -> 98 bytes ...storage-rle-rgb8-other8-red-opaque-2x2.tga | Bin 0 -> 23 bytes ...ge-rle-rgb8-other8-red-transparent-2x2.tga | Bin 0 -> 23 bytes ...orage-rle-rgb8-other8-white-opaque-2x2.tga | Bin 0 -> 23 bytes ...-rle-rgb8-other8-white-transparent-2x2.tga | Bin 0 -> 23 bytes test/test.py | 76 +++++ 48 files changed, 660 insertions(+), 18 deletions(-) create mode 100755 test/generate-tga-alpha-samples.py create mode 100644 test/sample-storage-flat-grayscale8-alpha8-white-opaque-1x1.tga create mode 100644 test/sample-storage-flat-grayscale8-alpha8-white-transparent-1x1.tga create mode 100644 test/sample-storage-flat-grayscale8-noalpha-white-opaque-1x1.tga create mode 100644 test/sample-storage-flat-grayscale8-other8-white-opaque-1x1.tga create mode 100644 test/sample-storage-flat-grayscale8-other8-white-transparent-1x1.tga create mode 100644 test/sample-storage-flat-rgb8-alpha8-color-opaque-2x2.tga create mode 100644 test/sample-storage-flat-rgb8-alpha8-color-transparent-2x2.tga create mode 100644 test/sample-storage-flat-rgb8-alpha8-red-opaque-1x1.tga create mode 100644 test/sample-storage-flat-rgb8-alpha8-red-transparent-1x1.tga create mode 100644 test/sample-storage-flat-rgb8-alpha8-white-opaque-1x1.tga create mode 100644 test/sample-storage-flat-rgb8-alpha8-white-transparent-1x1.tga create mode 100644 test/sample-storage-flat-rgb8-noalpha-color-opaque-2x2.tga create mode 100644 test/sample-storage-flat-rgb8-noalpha-red-opaque-1x1.tga create mode 100644 test/sample-storage-flat-rgb8-noalpha-white-opaque-1x1.tga create mode 100644 test/sample-storage-flat-rgb8-other8-color-opaque-2x2.tga create mode 100644 test/sample-storage-flat-rgb8-other8-color-transparent-2x2.tga create mode 100644 test/sample-storage-flat-rgb8-other8-red-opaque-1x1.tga create mode 100644 test/sample-storage-flat-rgb8-other8-red-transparent-1x1.tga create mode 100644 test/sample-storage-flat-rgb8-other8-white-opaque-1x1.tga create mode 100644 test/sample-storage-flat-rgb8-other8-white-transparent-1x1.tga create mode 100644 test/sample-storage-rle-grayscale8-alpha8-white-opaque-2x2.tga create mode 100644 test/sample-storage-rle-grayscale8-alpha8-white-transparent-2x2.tga create mode 100644 test/sample-storage-rle-grayscale8-noalpha-white-opaque-2x2.tga create mode 100644 test/sample-storage-rle-grayscale8-other8-white-opaque-2x2.tga create mode 100644 test/sample-storage-rle-grayscale8-other8-white-transparent-2x2.tga create mode 100644 test/sample-storage-rle-rgb8-alpha8-color-opaque-2x2.tga create mode 100644 test/sample-storage-rle-rgb8-alpha8-color-opaque-8x8.tga create mode 100644 test/sample-storage-rle-rgb8-alpha8-color-transparent-2x2.tga create mode 100644 test/sample-storage-rle-rgb8-alpha8-color-transparent-8x8.tga create mode 100644 test/sample-storage-rle-rgb8-alpha8-red-opaque-2x2.tga create mode 100644 test/sample-storage-rle-rgb8-alpha8-red-transparent-2x2.tga create mode 100644 test/sample-storage-rle-rgb8-alpha8-white-opaque-2x2.tga create mode 100644 test/sample-storage-rle-rgb8-alpha8-white-transparent-2x2.tga create mode 100644 test/sample-storage-rle-rgb8-noalpha-color-opaque-2x2.tga create mode 100644 test/sample-storage-rle-rgb8-noalpha-color-opaque-8x8.tga create mode 100644 test/sample-storage-rle-rgb8-noalpha-red-opaque-2x2.tga create mode 100644 test/sample-storage-rle-rgb8-noalpha-white-opaque-2x2.tga create mode 100644 test/sample-storage-rle-rgb8-other8-color-opaque-2x2.tga create mode 100644 test/sample-storage-rle-rgb8-other8-color-opaque-8x8.tga create mode 100644 test/sample-storage-rle-rgb8-other8-color-transparent-2x2.tga create mode 100644 test/sample-storage-rle-rgb8-other8-color-transparent-8x8.tga create mode 100644 test/sample-storage-rle-rgb8-other8-red-opaque-2x2.tga create mode 100644 test/sample-storage-rle-rgb8-other8-red-transparent-2x2.tga create mode 100644 test/sample-storage-rle-rgb8-other8-white-opaque-2x2.tga create mode 100644 test/sample-storage-rle-rgb8-other8-white-transparent-2x2.tga diff --git a/test/checksums.tsv b/test/checksums.tsv index e5f2a9b6..67f1b627 100644 --- a/test/checksums.tsv +++ b/test/checksums.tsv @@ -117,16 +117,16 @@ build/test/crunch-orientation-bmp-to-all/sample-vertical-flip.crn 119f0f756811e5 build/test/crunch-orientation-bmp-to-all/sample-vertical-flip.dds 6d8963bd2cac90d0064ec0a392bb5f2223dc9c0e47c47c550ce517eca5115e86b1b7e39b1afd892f16581f6bd3d552bbfb8d55b7077008d7f1c4b102b88f6cb4 build/test/crunch-orientation-bmp-to-all/sample-vertical-flip.ktx f4c0b5e52886d982ba8602798d809333c3d80db0df605ea4b65dfaf90ed899cf979dc6f9a25b6e6aa8ae524f36e8dadc8826954906a874c6aa7800596961b19a build/test/crunch-orientation-bmp-to-all/sample-vertical-flip.jpg 58da38d118e4d987f0a829e536073095aeef56f8e6e3908793c09496bd9e209e46eea43166ecddd39ff0d479913b0f5d2e481c1c051ad5a53dfd21643e278789 -build/test/crunch-transparency-png-to-all/sample-colormap1-alpha1.tga 932155fd73b34968f542818c4c679d321fa0764764b79672c1338bb8b7a16a480ed7af63441684aaab3262898458dfd28bae196122c3ea1c4a9fa69ecafb39ab -build/test/crunch-transparency-png-to-all/sample-colormap1-alpha1.bmp 7db050cc460a231e20b75f59b78955a440774ddab23e087b7a89d92e069b1e71581afa417b9718d92c52fd26d93a3fad924cfbea6856465d0ae762f720cc2778 -build/test/crunch-transparency-png-to-all/sample-colormap1-alpha1.png f596534970da37597230ae60112a4fe4d08d950e03b99754a633d9d285f4683624b1f710727d6b3e556b80b9d44428bfa297dc898beaf6fecad29fe98bbc98cb +build/test/crunch-transparency-png-to-all/sample-colormap1-alpha1.tga 598e288f0308495cb4c26ef5875b7133a4e90b1d445b71c59095c1bd1ebbf9afb3dfac2b7990e4e4e7712f90f6e25ee2e65a42cff5059bd71b45bb15a42803db +build/test/crunch-transparency-png-to-all/sample-colormap1-alpha1.bmp 0c3720b0b8c8b048e0fbd526846ebd917a45ad95b18600decd5e17515060488dca7fe3460898f11019805c0c7cadd93bc39fd2df8cd0907f644e0884923576c6 +build/test/crunch-transparency-png-to-all/sample-colormap1-alpha1.png add2d4b7811a2e11a5a08e545738cc63758b7a8220444339345c5b5025c9c351479072ea0293f22ac5f4e85f4e6968c19b6bed2245f6690fe890a2edb0492c8a build/test/crunch-transparency-png-to-all/sample-colormap1-alpha1.crn f223d84528a0470cedeaf014c85f78ed16e1cc0f8990324fdbc087b190b6f972d1db6d829881c1414c5bd37b04c26794e7aa59b0d5b6eb535dae766a0c1d4ee9 build/test/crunch-transparency-png-to-all/sample-colormap1-alpha1.dds d2d7c95ea07f121086c19476732a96ef4b586a953640b69216abfa38001b7e5e224186f4f69c054501f9050d3bb4ee9eb0a82af833f93b67d200eb33bea52747 build/test/crunch-transparency-png-to-all/sample-colormap1-alpha1.ktx a3b1337e5594160aa37697343fb9790e18ec484473bfc98d7f08de261f80add3387e6b5e6823637c6d57d7470653a689596b4b2df30584b38df31f48e8f8f6ad build/test/crunch-transparency-png-to-all/sample-colormap1-alpha1.jpg 1ba300cc42e403c0e4cdd592f519e42ee9ddb923d74085901e20c2d922dfff4f434f7d1ddc279710368d7b2eecfbb48e34f277031a069b2cdabf621582fe3e47 -build/test/crunch-transparency-png-to-all/sample-colormap2-alpha1.tga 4c1bdcb94e0d1ebe01eb36816f9480b5b69be10aec5d7705a70f8b336b1cc7341fb4050df5a09b642247df37c0ac6262c60e4812ab308cb3c908301ed9d53423 -build/test/crunch-transparency-png-to-all/sample-colormap2-alpha1.bmp a0960fe49de42e991aad3145dfcffdb3f1b57435e373b2bb130101418c690b43dd0cb69e75ec6cf34efa09a88b002cb38eba6cef9652911bdd64ab94f7da9f93 -build/test/crunch-transparency-png-to-all/sample-colormap2-alpha1.png 2ffd5907e77157dfaac01c786b5150dcf822699254bebdd51ef1797568208ae924a572d90bc3ed3a06cc5e524c4c0d5a3de7aa75ae99febc4638533e41a6dda0 +build/test/crunch-transparency-png-to-all/sample-colormap2-alpha1.tga 6b4091cf0e87cd9869492dc06e39b3a6a74fc12a59eee8a62cc4ef7df6b060d14370dda2f6727d9e368144ffbfa30854996ad7284b4afbafc32897f14cef3123 +build/test/crunch-transparency-png-to-all/sample-colormap2-alpha1.bmp 534209be9bce89cff3523e1835594db225a60c9fba4e4e0bb5294ff1d383d9618d73240ca0ef413e7e1cc4f847e1121d299b53fccebab574ec3de817f0f4804c +build/test/crunch-transparency-png-to-all/sample-colormap2-alpha1.png 7620be4dc698ae4c04b57400faf84d9fca93a580c7debbd0fbe218fcbe969cdd1bf5ab58b4289e60d0b7576a070e1a07cba23b05b5589572a5c619ee22f6ad9d build/test/crunch-transparency-png-to-all/sample-colormap2-alpha1.crn 91b8372d3f16a0d198ac557b15cbafff4c3d456108dd4bee66902a20593a3ea2735ca2f052d3f6ca62cc31335e5a24f6f995116802ab46e3ded534168ba4fea3 build/test/crunch-transparency-png-to-all/sample-colormap2-alpha1.dds 7c991556ed3f6941f01b89b9f12c8f1c43f3b5d5b3db63d4fb65f073a69171b1eb45fd234d0393c8e89d5079526a1d7f0193a83d0ed12acaf2a6cb94a5c484a2 build/test/crunch-transparency-png-to-all/sample-colormap2-alpha1.ktx 34ace365deb46c60f1d79fff10df61d0d2dbd4b5037fdda588e8b97d473e8ce51bda4cb25c97f1fb3cf496fa880a7d248ab0e5e9cff36b4127a5c1931b336dca @@ -138,30 +138,30 @@ build/test/crunch-transparency-png-to-all/sample-colormap4-alpha1.crn 75c03a7c91 build/test/crunch-transparency-png-to-all/sample-colormap4-alpha1.dds b9ae2d55da6825fd0002dfb61ee934222f0005eeeafd9d892eb3a1ddd9599efd47925e3643f300b4ed0e62d33c8b2aa1606b0535e5bca9f7b76499447c93ccf9 build/test/crunch-transparency-png-to-all/sample-colormap4-alpha1.ktx bed25de7c316379b28f1f41a47fc24c9d0f4c94e249f81b6345bc9c88a7b1d17b6fbd35b137d9efd3b2d34a2f66ff618c1c6a2e5b6bb4109fedd2b6d592ae1b3 build/test/crunch-transparency-png-to-all/sample-colormap4-alpha1.jpg 6380138a3cd469971ceb00929d1cd1e5900c329c2da1d29d803633b6fcaa51258a9c8e7bc03b83590900f815678f4492a7f164ebf4c1aefa9f19e1b520d37b94 -build/test/crunch-transparency-png-to-all/sample-colormap8-alpha1.tga c1b890279c82014698326f69217d8b8a4510004aa606c6a22e5771f7a69356df922d1cc9149051bb165a6105245f3188e1dcf8e33f0abd7f47873a9fb2cbb4c8 -build/test/crunch-transparency-png-to-all/sample-colormap8-alpha1.bmp 3db394014ea38ca015f87cadfd6158ce801645cd4dcecb76f3662e8334ae47824ff8d53bf8d887d225bc8ebb7d25311eb7607964270fd1867cdfc955e51bcef1 -build/test/crunch-transparency-png-to-all/sample-colormap8-alpha1.png 3561be7b7958d37913708664413c149942f302907bf5f928782c7cf6cc4b312082f51fea6d8a3271b93bd37ace03ec22af65c224d6e7617ed8644fbe2f95dc35 +build/test/crunch-transparency-png-to-all/sample-colormap8-alpha1.tga de635685a8193db7d3483f0596aa23f7cee667ac3021784d762079b3483061023b3368afc3a7afe244ac4af87b91bee6a5e3b904437897e62794d81c9e72753b +build/test/crunch-transparency-png-to-all/sample-colormap8-alpha1.bmp e8a6d0f48e38ef7f1638ff7ea797d1ed1674c99a48fbdbf47603e96018e208c8b63ad63b7bd9e4a28d61ef0fcb3b1a4ea04a233d91f509e2c2d97de7acaefe44 +build/test/crunch-transparency-png-to-all/sample-colormap8-alpha1.png a6cd32450af6f21542c79f3b9a66535230a9f56110527af7fd15bd264bd9c0c556ca4cf49efd26ec07a27c6919cc0d4febbe938ea500bc2e2832e0b0d9836393 build/test/crunch-transparency-png-to-all/sample-colormap8-alpha1.crn b9ca0def9743aa4790d12de2faa9ce0bc355c916af8c0c4440e9a87a20c482feb563222b364a20ee7f70abff97e7d6312d679700b64704c2783d03b8cd9a757b build/test/crunch-transparency-png-to-all/sample-colormap8-alpha1.dds 7c519e4978e76c8857cb707d245cf9414581a772a6fb94b48c7b4374557a0ec568aa88a1e8a3b4e60d0a17023d1c51d94b84d0927185f44c049630a21fae6061 build/test/crunch-transparency-png-to-all/sample-colormap8-alpha1.ktx ddc05a0f9819fd24c9da214bc2685b93c7750e833554dbadf8e9a60b45a305fa3c1d9b27bbeab1d5fa8ad0e9cf2bf36d1ea21ae1678bfea1b7511f59398c2107 build/test/crunch-transparency-png-to-all/sample-colormap8-alpha1.jpg eb96d34274e3759ac89dcce8258447e45edeea8fd041774fb459cad1e0849bdaa666b7af7e9275c7e78d75d06fc79ba151b1d34e4058c3c07f3d901a05c6764d -build/test/crunch-transparency-png-to-all/sample-grayscale1-alpha1.tga 6dbaf3445af50095fcf2a0eb13dfff5fe9803b019d627b718258e286316784318e0c915ac4494b6beb0feacb3c80c66bbb589b0f8e0893406cef0fdd2ab9c95d -build/test/crunch-transparency-png-to-all/sample-grayscale1-alpha1.bmp a79d1e3b85544669f1fa787bfd2d54e073efbece9d310027c958b922be3bc98f8b6d2561d722456a98af594e63d318cf18368d2421863f658941b4f38bc2fc59 -build/test/crunch-transparency-png-to-all/sample-grayscale1-alpha1.png 57876e1d84ada2604c5e2dbbfd08c19286c87c8f1843cf47a9b77b4f6561c3b414a269f924c2be74bba4662503ede0fd9d94cb0a084c35a9f63a3cce07dcb876 +build/test/crunch-transparency-png-to-all/sample-grayscale1-alpha1.tga d65cd1b31338e11b8230c976bfb40593dc0a4aceca8c279dbcfee5f2f190ac0c23ecf84c8c61f95b984342b99ad28f446cfaf50e50a7af88f864fc775b7636ce +build/test/crunch-transparency-png-to-all/sample-grayscale1-alpha1.bmp a8d084a03740c85e9fb84f7071ec2d632373fee2cac41f3020ebb53ab9cdd0e572e5eb6cd666b5594060479a774ddf210d5adb6fe0cb882a94fe4ae4ea545aaa +build/test/crunch-transparency-png-to-all/sample-grayscale1-alpha1.png 40711489485515eab8a62d29b874682b5562057af42b99877f530b65987e2d8bf394773eefc8eb7241269f16710fb2c05be3eeeae4eeedc7701f27ce68454202 build/test/crunch-transparency-png-to-all/sample-grayscale1-alpha1.crn 3a9175379f9512c74675a6d573bccdb0426d70e0ff9d63dacaa83e2c1f857dda14df93732a5776ef3625bdcf17d3ec51788623bb85e46c70a56bb306fd563b05 build/test/crunch-transparency-png-to-all/sample-grayscale1-alpha1.dds 0b63952accdbbd548aa7acb558b3536edcd5f59c2e5e4364fa1d8d6c72679e83c214f4e44632226404bf757c0710da62829398d20b6b424987c7def7a7bbffc4 build/test/crunch-transparency-png-to-all/sample-grayscale1-alpha1.ktx b4f70222f8e66afaa556c6069baec99a67ff45aa3e61d02a2c1500dbca8dee92dcb0676b06c826d6675960074f56befc7d76d95626bf8bb53eb05ba62847d728 build/test/crunch-transparency-png-to-all/sample-grayscale1-alpha1.jpg c3f6c63fd91f7980aa61c3917da4c4163ebc904ae498ecb97d1d86637e59678ab5ed82a1ca453a436cce12d0ae9422e1a6f138aef81682646e7dede8474e50b0 -build/test/crunch-transparency-png-to-all/sample-grayscale1-alpha8.tga db24937111005b5940cf37eab680dc06f999f8e6384524978b16305f5800be59f70293c55f2f742f3e0f6e5f9d175e395b9099f1e9ae7472d802a5ef413a36f0 -build/test/crunch-transparency-png-to-all/sample-grayscale1-alpha8.bmp 8b6fac1bdd631d260d5081d546ce5ed2debf04e7539c13389e30fccf8240ea67783a63304adcec9ce0fa1cab7e820072a1f0ea71733d45ded2b14284fda166e5 -build/test/crunch-transparency-png-to-all/sample-grayscale1-alpha8.png 62ba2ca3669febcb88959224732c295d891f10942dcddf2494c052886c4f502b0e30c1238d05196ce8113c2c150fa4d96fc81436af5ad6a28f7b8a64a77bbe7f +build/test/crunch-transparency-png-to-all/sample-grayscale1-alpha8.tga 9dba3534f95c276bcffeea8f5dea248dab35fea2b657e8a0753d5ef216861f5808da7b52ae54cbb70cab22419a863454c06f7c29c0f90fc1efadb3bb8f8edf90 +build/test/crunch-transparency-png-to-all/sample-grayscale1-alpha8.bmp f50f1e6a3974340208cf1d7bdf7d5bdae7424db17034ef89ad09e3bd69d236efabe02b92049e44243ae46556644904dfc9da81bb37a7bf4662b27b8556c5ef6e +build/test/crunch-transparency-png-to-all/sample-grayscale1-alpha8.png d621340c7ad62d36c033381814d6b8d66e7e8943ab25f6f8230d953e131a6b1ce9ede6f21e14b1d3a9c859db67a8c20d3e005bc2e73f4e3249755cfc5be2d8c9 build/test/crunch-transparency-png-to-all/sample-grayscale1-alpha8.crn 2660ab64afdb6eb70fdb131ef9927fc0b21bca021694bb4b8220451a9e0d5195306ef08d022ec7fb3b6535eed56efbe093e1108a116fdca81c5ce5a0c6e1da01 build/test/crunch-transparency-png-to-all/sample-grayscale1-alpha8.dds d1f95a45c08f56e13d5be3b74c490a812e581511f91451e5ff35ba194c65689f966d271a215b9d79ca9a2d1693f6573697e11c689fcf1aced3ba891d6f039845 build/test/crunch-transparency-png-to-all/sample-grayscale1-alpha8.ktx 18782f062b0a14658d46b00db7aae70972ed25095de6361b097b6a7632c54ebb722e9409fe40f7474627ef81b0cada7b8df529903b8d4139902287bfd75b6449 build/test/crunch-transparency-png-to-all/sample-grayscale1-alpha8.jpg 11271dc24620d0cb27cc68ec2a79c293b426666de2d29cb6c590ccd4839ed72d5e39cb40aed77cc8b9bc8dac8157cb61877620a34975ee0f4eccac9215f5e795 -build/test/crunch-transparency-png-to-all/sample-grayscale8-alpha1.tga db24937111005b5940cf37eab680dc06f999f8e6384524978b16305f5800be59f70293c55f2f742f3e0f6e5f9d175e395b9099f1e9ae7472d802a5ef413a36f0 -build/test/crunch-transparency-png-to-all/sample-grayscale8-alpha1.bmp 8b6fac1bdd631d260d5081d546ce5ed2debf04e7539c13389e30fccf8240ea67783a63304adcec9ce0fa1cab7e820072a1f0ea71733d45ded2b14284fda166e5 -build/test/crunch-transparency-png-to-all/sample-grayscale8-alpha1.png 62ba2ca3669febcb88959224732c295d891f10942dcddf2494c052886c4f502b0e30c1238d05196ce8113c2c150fa4d96fc81436af5ad6a28f7b8a64a77bbe7f +build/test/crunch-transparency-png-to-all/sample-grayscale8-alpha1.tga 3c5d0c1fb2f9f5146db0eb66b9677ba0aa92e48697bfaeee6dfa7f8679d9523522f5bf13120f01c7b42ca4835fec182f53d7a2b1e5e1c9f6f9391a130a6d8bf1 +build/test/crunch-transparency-png-to-all/sample-grayscale8-alpha1.bmp dc03559e1539112d9061b244526b414f874bc0b4d6fbd6651f4e37beba8e7bc10f958bdad5c45d5de17d15685562de7c461c30f6b9a02108a2a5bf30e07c3448 +build/test/crunch-transparency-png-to-all/sample-grayscale8-alpha1.png 48a80f6a8d1d83bb0dbea3f851407ac7d9edd9661b071f43b1b5ea6cd2976bcb222a4ae79599cdded3dc2741bc02af8246f6cf8f24bcb811c296fe7f2486db47 build/test/crunch-transparency-png-to-all/sample-grayscale8-alpha1.crn 0e0dd5cf4f613eae1a5638060e6fbdcc1b8438e1c22ab27785a30efa8f0b20458e9b28b3da09b87d6bb9cab16f101908c64d74ab8247bef032de09449b380a77 build/test/crunch-transparency-png-to-all/sample-grayscale8-alpha1.dds fd987ac10046b6385ffd64e414409056fa2653f4132db6df915d17132b50cac0282754a77583ac8e66c4ad304faf5d1bce926338f3d7af1e77f0320054b871be build/test/crunch-transparency-png-to-all/sample-grayscale8-alpha1.ktx c9cc0f13cdb1a4328fcbdd6661e209341f670af197a2832a4e84fdca86ce915f1fe67ebaf094a132e81e53af6c63e9d3a160aca704cea884b55a3d8e58592b8f @@ -194,6 +194,281 @@ build/test/crunch-format-jpg-to-all/sample-grayscale-sampling2x2.crn 869a12414da build/test/crunch-format-jpg-to-all/sample-grayscale-sampling2x2.dds e9ea76b8a7eaa5a227659d86db3c64703ffe09788e49b9ccf9833c392d39d8ef8626865bebb1a977f5970ba21f3156d1f7741cb5d635804e8f852f2af8b83328 build/test/crunch-format-jpg-to-all/sample-grayscale-sampling2x2.ktx 44e1df3fa8d784d7e490d8440eba4e049b721af932b7898c317d03474290669531afe85916d3452bc1d0966a9a6d36cf53964e98eb2dfdc1cabf6d7c02afab61 build/test/crunch-format-jpg-to-all/sample-grayscale-sampling2x2.jpg fe96bbc6e9c37ba66a981d40bd46d05ea0a385499c7feed7839915da665c376cc1257cd82721ee8d454dc2f425c1bfc16490ae4607465b3b9545fc4741ce0a2f +build/test/tga-to-all-opaque/sample-storage-flat-grayscale8-noalpha-white-opaque-1x1.tga 72a187254dfa14c07fd80d85ece2971dceb3f9f155a10910d5347bb56475802b64d95bc8b995d99dced95799f5e989615fdfcea53908c36bd2c7128291bc21e8 +build/test/tga-to-all-opaque/sample-storage-flat-grayscale8-noalpha-white-opaque-1x1.bmp 9e31fdd3f2e6bcd07993f8da9467454946e2cfd448df043932411a123e545a19571e7a8c9d515bf8cda08135ae75598fb708bb49453bf48ad8de067b45a201cb +build/test/tga-to-all-opaque/sample-storage-flat-grayscale8-noalpha-white-opaque-1x1.png e19d216e3a429a8008237cc674e0abdfacbcb25573dfcc3a954312dc357f77720a5b3300e8ca97b4c20f8999c4b7aacc21378c2115a63d0973fe34c02758540a +build/test/tga-to-all-opaque/sample-storage-flat-grayscale8-noalpha-white-opaque-1x1.crn a052c5ecb021f69ede62144fd8f51f36fe615223660ace2831e59481642d0b9684429e6abe20ce21cd598025b63a1c26e9dc8c2bafa402becf19eba664e76b3e +build/test/tga-to-all-opaque/sample-storage-flat-grayscale8-noalpha-white-opaque-1x1.dds 10d5bc21d80095f112be0b03b4e2d30c20b786c1151889e9efe4be23ef08778de2ca37b3372e2ba70ac787e134e841faa2491182d40b9a1539c5fb3a531a541d +build/test/tga-to-all-opaque/sample-storage-flat-grayscale8-noalpha-white-opaque-1x1.ktx 0d6c0ea08231b98cae46f99cae417280ddf3a83bda5b06ed86d6cafa79f542b98510dacf27c61adb701888f2cb1d2d267c3044bcbd4850e486db25d5c8a3ecc2 +build/test/tga-to-all-opaque/sample-storage-flat-grayscale8-noalpha-white-opaque-1x1.jpg 80c1441c7a6c4e85aebb057bb6eb5e3fd1fb9e7b7c620e3683af04962f33d2b04859800c97dd387e4163d6453133af60f29e26c1f5c855e6c1ec0d055d92b9e4 +build/test/tga-to-all-opaque/sample-storage-flat-rgb8-noalpha-white-opaque-1x1.tga 72a187254dfa14c07fd80d85ece2971dceb3f9f155a10910d5347bb56475802b64d95bc8b995d99dced95799f5e989615fdfcea53908c36bd2c7128291bc21e8 +build/test/tga-to-all-opaque/sample-storage-flat-rgb8-noalpha-white-opaque-1x1.bmp 9e31fdd3f2e6bcd07993f8da9467454946e2cfd448df043932411a123e545a19571e7a8c9d515bf8cda08135ae75598fb708bb49453bf48ad8de067b45a201cb +build/test/tga-to-all-opaque/sample-storage-flat-rgb8-noalpha-white-opaque-1x1.png e19d216e3a429a8008237cc674e0abdfacbcb25573dfcc3a954312dc357f77720a5b3300e8ca97b4c20f8999c4b7aacc21378c2115a63d0973fe34c02758540a +build/test/tga-to-all-opaque/sample-storage-flat-rgb8-noalpha-white-opaque-1x1.crn a052c5ecb021f69ede62144fd8f51f36fe615223660ace2831e59481642d0b9684429e6abe20ce21cd598025b63a1c26e9dc8c2bafa402becf19eba664e76b3e +build/test/tga-to-all-opaque/sample-storage-flat-rgb8-noalpha-white-opaque-1x1.dds 10d5bc21d80095f112be0b03b4e2d30c20b786c1151889e9efe4be23ef08778de2ca37b3372e2ba70ac787e134e841faa2491182d40b9a1539c5fb3a531a541d +build/test/tga-to-all-opaque/sample-storage-flat-rgb8-noalpha-white-opaque-1x1.ktx 0d6c0ea08231b98cae46f99cae417280ddf3a83bda5b06ed86d6cafa79f542b98510dacf27c61adb701888f2cb1d2d267c3044bcbd4850e486db25d5c8a3ecc2 +build/test/tga-to-all-opaque/sample-storage-flat-rgb8-noalpha-white-opaque-1x1.jpg 80c1441c7a6c4e85aebb057bb6eb5e3fd1fb9e7b7c620e3683af04962f33d2b04859800c97dd387e4163d6453133af60f29e26c1f5c855e6c1ec0d055d92b9e4 +build/test/tga-to-all-opaque/sample-storage-flat-rgb8-noalpha-red-opaque-1x1.tga a0505d00837822d70d619f7f9b7d8d538e13a82fc32aff1c3bc3feba9bb0409f2959b09f98cabbb03c2f67a470e15d1e8067a758e236ce021341ba0d63f5efc5 +build/test/tga-to-all-opaque/sample-storage-flat-rgb8-noalpha-red-opaque-1x1.bmp 735b243c2b1bf587e201f01dbec6ed2ab55d9102613983cea40beec898c32767b259de3b076137bca206e3f7e95dcdf28d06862cda17746fd2d4e308cbcae7ef +build/test/tga-to-all-opaque/sample-storage-flat-rgb8-noalpha-red-opaque-1x1.png dcf8113e9a169e3c5bac3aee4eac9541576808ee0c6f9704ad1f0a4b89368e4723c516069340df9ec65ddd959c50b22ec5bf6e1d5b2901f439ab07cc43671fc7 +build/test/tga-to-all-opaque/sample-storage-flat-rgb8-noalpha-red-opaque-1x1.crn c7924d48efba150e4db0a78be4f5dc531470629569a41fe777e9e78beb228bd9ed38571f3608157833632ffed3d3b34077d1af443eb0c43805165d3d869c6275 +build/test/tga-to-all-opaque/sample-storage-flat-rgb8-noalpha-red-opaque-1x1.dds fbeb3048f758559f4e6d762ee433b1e91a451d745e42699e958f501a2283ae286bdb2a025b2d5537c8c46d00341f60efac419c0d23e22404c4faa63f8c1cdd6c +build/test/tga-to-all-opaque/sample-storage-flat-rgb8-noalpha-red-opaque-1x1.ktx 5fd0e3ea0c89f3bda482a8f3daa080eb8156e6b446477e1b0642dfe45b741fcb324fb35a810a397ee63a1971a81ec8bce3937292a5f1556b167dd70860ec81a0 +build/test/tga-to-all-opaque/sample-storage-flat-rgb8-noalpha-red-opaque-1x1.jpg 664b4db91a83d9fb851b0d0c890e6a2170c2018438a47e49c4ab5951985cac33bfda28a8170ebe77092c10adbc193d7c0d4fe814c8a5b50dd2bea5ce0a55017c +build/test/tga-to-all-opaque/sample-storage-flat-rgb8-noalpha-color-opaque-2x2.tga 226c775ab7096d8e6d33bafd7c9d3c00b8acbd1417578f8a4f30e0bca4d85c7071314c607b78a50ca63bc781e92594407c672370c825a9d59a3ca0756d5154fc +build/test/tga-to-all-opaque/sample-storage-flat-rgb8-noalpha-color-opaque-2x2.bmp b96413686b40924623b3aa3538f63000d2f3a1efdef13132dd20b9b606a49137fd69db3cc827a458d15c9f0f3c9727aae86addb24e1f3d18eae187b03d49c04e +build/test/tga-to-all-opaque/sample-storage-flat-rgb8-noalpha-color-opaque-2x2.png f837ca204bb2707f2d5aefd15127391379be768601a13468d38797e54092b178a342e290d988d49455ac9074afaaa0310e1d42515be9ba30f309c3c493d9c27d +build/test/tga-to-all-opaque/sample-storage-flat-grayscale8-alpha8-white-opaque-1x1.tga 72a187254dfa14c07fd80d85ece2971dceb3f9f155a10910d5347bb56475802b64d95bc8b995d99dced95799f5e989615fdfcea53908c36bd2c7128291bc21e8 +build/test/tga-to-all-opaque/sample-storage-flat-grayscale8-alpha8-white-opaque-1x1.bmp 9e31fdd3f2e6bcd07993f8da9467454946e2cfd448df043932411a123e545a19571e7a8c9d515bf8cda08135ae75598fb708bb49453bf48ad8de067b45a201cb +build/test/tga-to-all-opaque/sample-storage-flat-grayscale8-alpha8-white-opaque-1x1.png e19d216e3a429a8008237cc674e0abdfacbcb25573dfcc3a954312dc357f77720a5b3300e8ca97b4c20f8999c4b7aacc21378c2115a63d0973fe34c02758540a +build/test/tga-to-all-opaque/sample-storage-flat-grayscale8-alpha8-white-opaque-1x1.crn a052c5ecb021f69ede62144fd8f51f36fe615223660ace2831e59481642d0b9684429e6abe20ce21cd598025b63a1c26e9dc8c2bafa402becf19eba664e76b3e +build/test/tga-to-all-opaque/sample-storage-flat-grayscale8-alpha8-white-opaque-1x1.dds 10d5bc21d80095f112be0b03b4e2d30c20b786c1151889e9efe4be23ef08778de2ca37b3372e2ba70ac787e134e841faa2491182d40b9a1539c5fb3a531a541d +build/test/tga-to-all-opaque/sample-storage-flat-grayscale8-alpha8-white-opaque-1x1.ktx 0d6c0ea08231b98cae46f99cae417280ddf3a83bda5b06ed86d6cafa79f542b98510dacf27c61adb701888f2cb1d2d267c3044bcbd4850e486db25d5c8a3ecc2 +build/test/tga-to-all-opaque/sample-storage-flat-grayscale8-alpha8-white-opaque-1x1.jpg 80c1441c7a6c4e85aebb057bb6eb5e3fd1fb9e7b7c620e3683af04962f33d2b04859800c97dd387e4163d6453133af60f29e26c1f5c855e6c1ec0d055d92b9e4 +build/test/tga-to-all-opaque/sample-storage-flat-rgb8-alpha8-white-opaque-1x1.tga 72a187254dfa14c07fd80d85ece2971dceb3f9f155a10910d5347bb56475802b64d95bc8b995d99dced95799f5e989615fdfcea53908c36bd2c7128291bc21e8 +build/test/tga-to-all-opaque/sample-storage-flat-rgb8-alpha8-white-opaque-1x1.bmp 9e31fdd3f2e6bcd07993f8da9467454946e2cfd448df043932411a123e545a19571e7a8c9d515bf8cda08135ae75598fb708bb49453bf48ad8de067b45a201cb +build/test/tga-to-all-opaque/sample-storage-flat-rgb8-alpha8-white-opaque-1x1.png e19d216e3a429a8008237cc674e0abdfacbcb25573dfcc3a954312dc357f77720a5b3300e8ca97b4c20f8999c4b7aacc21378c2115a63d0973fe34c02758540a +build/test/tga-to-all-opaque/sample-storage-flat-rgb8-alpha8-white-opaque-1x1.crn a052c5ecb021f69ede62144fd8f51f36fe615223660ace2831e59481642d0b9684429e6abe20ce21cd598025b63a1c26e9dc8c2bafa402becf19eba664e76b3e +build/test/tga-to-all-opaque/sample-storage-flat-rgb8-alpha8-white-opaque-1x1.dds 10d5bc21d80095f112be0b03b4e2d30c20b786c1151889e9efe4be23ef08778de2ca37b3372e2ba70ac787e134e841faa2491182d40b9a1539c5fb3a531a541d +build/test/tga-to-all-opaque/sample-storage-flat-rgb8-alpha8-white-opaque-1x1.ktx 0d6c0ea08231b98cae46f99cae417280ddf3a83bda5b06ed86d6cafa79f542b98510dacf27c61adb701888f2cb1d2d267c3044bcbd4850e486db25d5c8a3ecc2 +build/test/tga-to-all-opaque/sample-storage-flat-rgb8-alpha8-white-opaque-1x1.jpg 80c1441c7a6c4e85aebb057bb6eb5e3fd1fb9e7b7c620e3683af04962f33d2b04859800c97dd387e4163d6453133af60f29e26c1f5c855e6c1ec0d055d92b9e4 +build/test/tga-to-all-opaque/sample-storage-flat-rgb8-alpha8-red-opaque-1x1.tga a0505d00837822d70d619f7f9b7d8d538e13a82fc32aff1c3bc3feba9bb0409f2959b09f98cabbb03c2f67a470e15d1e8067a758e236ce021341ba0d63f5efc5 +build/test/tga-to-all-opaque/sample-storage-flat-rgb8-alpha8-red-opaque-1x1.bmp 735b243c2b1bf587e201f01dbec6ed2ab55d9102613983cea40beec898c32767b259de3b076137bca206e3f7e95dcdf28d06862cda17746fd2d4e308cbcae7ef +build/test/tga-to-all-opaque/sample-storage-flat-rgb8-alpha8-red-opaque-1x1.png dcf8113e9a169e3c5bac3aee4eac9541576808ee0c6f9704ad1f0a4b89368e4723c516069340df9ec65ddd959c50b22ec5bf6e1d5b2901f439ab07cc43671fc7 +build/test/tga-to-all-opaque/sample-storage-flat-rgb8-alpha8-red-opaque-1x1.crn c7924d48efba150e4db0a78be4f5dc531470629569a41fe777e9e78beb228bd9ed38571f3608157833632ffed3d3b34077d1af443eb0c43805165d3d869c6275 +build/test/tga-to-all-opaque/sample-storage-flat-rgb8-alpha8-red-opaque-1x1.dds fbeb3048f758559f4e6d762ee433b1e91a451d745e42699e958f501a2283ae286bdb2a025b2d5537c8c46d00341f60efac419c0d23e22404c4faa63f8c1cdd6c +build/test/tga-to-all-opaque/sample-storage-flat-rgb8-alpha8-red-opaque-1x1.ktx 5fd0e3ea0c89f3bda482a8f3daa080eb8156e6b446477e1b0642dfe45b741fcb324fb35a810a397ee63a1971a81ec8bce3937292a5f1556b167dd70860ec81a0 +build/test/tga-to-all-opaque/sample-storage-flat-rgb8-alpha8-red-opaque-1x1.jpg 664b4db91a83d9fb851b0d0c890e6a2170c2018438a47e49c4ab5951985cac33bfda28a8170ebe77092c10adbc193d7c0d4fe814c8a5b50dd2bea5ce0a55017c +build/test/tga-to-all-opaque/sample-storage-flat-rgb8-alpha8-color-opaque-2x2.tga 226c775ab7096d8e6d33bafd7c9d3c00b8acbd1417578f8a4f30e0bca4d85c7071314c607b78a50ca63bc781e92594407c672370c825a9d59a3ca0756d5154fc +build/test/tga-to-all-opaque/sample-storage-flat-rgb8-alpha8-color-opaque-2x2.bmp b96413686b40924623b3aa3538f63000d2f3a1efdef13132dd20b9b606a49137fd69db3cc827a458d15c9f0f3c9727aae86addb24e1f3d18eae187b03d49c04e +build/test/tga-to-all-opaque/sample-storage-flat-rgb8-alpha8-color-opaque-2x2.png f837ca204bb2707f2d5aefd15127391379be768601a13468d38797e54092b178a342e290d988d49455ac9074afaaa0310e1d42515be9ba30f309c3c493d9c27d +build/test/tga-to-all-transparent/sample-storage-flat-grayscale8-alpha8-white-transparent-1x1.tga fc2289fc6617ff723774b28d7522af62482481943b8c6ad889ef42282ee189c19fc2843f1f019a257a92803caff51e294acf3176b65ed7ff5149873d5392835b +build/test/tga-to-all-transparent/sample-storage-flat-grayscale8-alpha8-white-transparent-1x1.bmp e1a74d40546895fec08ce7d30f8c47b9befa9eccae9090432a651e9f97534ecd3d803370a36f7770af3093c05ae8a333f59a4cdaa9a8d8b35fe472d2388f2287 +build/test/tga-to-all-transparent/sample-storage-flat-grayscale8-alpha8-white-transparent-1x1.png fb035489e3f0a473ea01052798ec30465ef2968a5966db88a40e16331c3f794f3b55c891906f33208ca4d74326aaf2506eca8bc4f7f189dad8548af0f76c6236 +build/test/tga-to-all-transparent/sample-storage-flat-grayscale8-alpha8-white-transparent-1x1.crn cd2d59a763eea8d371b8993218042aa8f17ed473c822f94e72ff6d32c0c362b60b8610542a82b8128cb5e3e71c3eff16bf1331a1e67464a2c764c9b161e88d0a +build/test/tga-to-all-transparent/sample-storage-flat-grayscale8-alpha8-white-transparent-1x1.dds 86af197927e8134d757140f9c4deda26f80c06a57c5b9a439c3cd749df5c2967282be3acfad8b4ae9eb8fcbad2f21ea5f3a47c14b1c627cac331194d05297865 +build/test/tga-to-all-transparent/sample-storage-flat-grayscale8-alpha8-white-transparent-1x1.ktx 7c96485b4a42d1681dc148fd5d0a0eee8c09317d5ac283374546a3c9b6a57270aa005ba93b74205f3265d4c7438a65fd7ecc1d066683bc5d277ecb2cb16e9f08 +build/test/tga-to-all-opaque/sample-storage-flat-grayscale8-alpha8-white-transparent-1x1.jpg 80c1441c7a6c4e85aebb057bb6eb5e3fd1fb9e7b7c620e3683af04962f33d2b04859800c97dd387e4163d6453133af60f29e26c1f5c855e6c1ec0d055d92b9e4 +build/test/tga-to-all-transparent/sample-storage-flat-rgb8-alpha8-white-transparent-1x1.tga fc2289fc6617ff723774b28d7522af62482481943b8c6ad889ef42282ee189c19fc2843f1f019a257a92803caff51e294acf3176b65ed7ff5149873d5392835b +build/test/tga-to-all-transparent/sample-storage-flat-rgb8-alpha8-white-transparent-1x1.bmp e1a74d40546895fec08ce7d30f8c47b9befa9eccae9090432a651e9f97534ecd3d803370a36f7770af3093c05ae8a333f59a4cdaa9a8d8b35fe472d2388f2287 +build/test/tga-to-all-transparent/sample-storage-flat-rgb8-alpha8-white-transparent-1x1.png fb035489e3f0a473ea01052798ec30465ef2968a5966db88a40e16331c3f794f3b55c891906f33208ca4d74326aaf2506eca8bc4f7f189dad8548af0f76c6236 +build/test/tga-to-all-transparent/sample-storage-flat-rgb8-alpha8-white-transparent-1x1.crn cd2d59a763eea8d371b8993218042aa8f17ed473c822f94e72ff6d32c0c362b60b8610542a82b8128cb5e3e71c3eff16bf1331a1e67464a2c764c9b161e88d0a +build/test/tga-to-all-transparent/sample-storage-flat-rgb8-alpha8-white-transparent-1x1.dds 86af197927e8134d757140f9c4deda26f80c06a57c5b9a439c3cd749df5c2967282be3acfad8b4ae9eb8fcbad2f21ea5f3a47c14b1c627cac331194d05297865 +build/test/tga-to-all-transparent/sample-storage-flat-rgb8-alpha8-white-transparent-1x1.ktx 7c96485b4a42d1681dc148fd5d0a0eee8c09317d5ac283374546a3c9b6a57270aa005ba93b74205f3265d4c7438a65fd7ecc1d066683bc5d277ecb2cb16e9f08 +build/test/tga-to-all-opaque/sample-storage-flat-rgb8-alpha8-white-transparent-1x1.jpg 80c1441c7a6c4e85aebb057bb6eb5e3fd1fb9e7b7c620e3683af04962f33d2b04859800c97dd387e4163d6453133af60f29e26c1f5c855e6c1ec0d055d92b9e4 +build/test/tga-to-all-transparent/sample-storage-flat-rgb8-alpha8-red-transparent-1x1.tga 56f444a5847fba5df38f0d79bd2a32e52cbf65c4f896aeec7f773e93da30d43a8d24af81789c68ff1407189bcb5f410c0a0c51d12e74a247ead9dadd4e86a055 +build/test/tga-to-all-transparent/sample-storage-flat-rgb8-alpha8-red-transparent-1x1.bmp 701aa359f4ef087156045a6bfd8a2d2b0364b747dc8f5efbd5e976580fda3c02b922a4785baea4997b9ee4cfaafce2977a811cf0fb30e962cd0c80049ce5d5e0 +build/test/tga-to-all-transparent/sample-storage-flat-rgb8-alpha8-red-transparent-1x1.png 9279bf6378f473f1f97391d570fee22239d9f996fa2af12f2eaa11522c252ce8a00aaeb0702e167eab43a960adf5a01dcbd14a0e0551a67f9ffa71e61ad05d85 +build/test/tga-to-all-transparent/sample-storage-flat-rgb8-alpha8-red-transparent-1x1.crn 7717072f578dbcb4b2d0aadfcaf73f79556da43b44454de0f1a94a1148e92c62a00f7c56c9ea76e5982b17ca0bd0f9e24f643ecb753e736935cab469e6414d2b +build/test/tga-to-all-transparent/sample-storage-flat-rgb8-alpha8-red-transparent-1x1.dds 80bbe0616a5be9527a4cea562fbd441c365af85d489eac74bb90f0db1f1f1e5f7799520de260076f75a9baddb296d56eafe9b203716c3714a429219a939b7531 +build/test/tga-to-all-transparent/sample-storage-flat-rgb8-alpha8-red-transparent-1x1.ktx 9a8d9223f5a68c92c2d3fd6a46535050a1f691047a55ad17cbc22d7b61fef9f6ac799f8fe163ec360791e138dc927080dbe3e4ff799bf21cffc47c25cf91a62c +build/test/tga-to-all-opaque/sample-storage-flat-rgb8-alpha8-red-transparent-1x1.jpg 664b4db91a83d9fb851b0d0c890e6a2170c2018438a47e49c4ab5951985cac33bfda28a8170ebe77092c10adbc193d7c0d4fe814c8a5b50dd2bea5ce0a55017c +build/test/tga-to-all-transparent/sample-storage-flat-rgb8-alpha8-color-transparent-2x2.tga d7c88328d8a73b1054d499dead573be88d400ced4142c7575b51507ea8df48b791faf40029d95b0a5bc7efd2d4cfbd09ec0093848af695facb6a9d7fabd5c9f6 +build/test/tga-to-all-transparent/sample-storage-flat-rgb8-alpha8-color-transparent-2x2.bmp 3d3ac8cdfcecc43c0b5a39dc5c5748b6b180e58cece8f629934f7594285db36224d70f712bc48d321261d37dd9fdc84ceff23f88b06614af20bafcdb458408be +build/test/tga-to-all-transparent/sample-storage-flat-rgb8-alpha8-color-transparent-2x2.png 0d0363347062324d88d83571f01727b262e2673740ccfc7713d89e9743b9ac243c9294f09ee7d59de5ab10b2fe898c7b5b9184bec10d676d284c3929c618bb16 +build/test/tga-to-all-opaque/sample-storage-flat-grayscale8-other8-white-opaque-1x1.tga 72a187254dfa14c07fd80d85ece2971dceb3f9f155a10910d5347bb56475802b64d95bc8b995d99dced95799f5e989615fdfcea53908c36bd2c7128291bc21e8 +build/test/tga-to-all-opaque/sample-storage-flat-grayscale8-other8-white-opaque-1x1.bmp 9e31fdd3f2e6bcd07993f8da9467454946e2cfd448df043932411a123e545a19571e7a8c9d515bf8cda08135ae75598fb708bb49453bf48ad8de067b45a201cb +build/test/tga-to-all-opaque/sample-storage-flat-grayscale8-other8-white-opaque-1x1.png e19d216e3a429a8008237cc674e0abdfacbcb25573dfcc3a954312dc357f77720a5b3300e8ca97b4c20f8999c4b7aacc21378c2115a63d0973fe34c02758540a +build/test/tga-to-all-opaque/sample-storage-flat-grayscale8-other8-white-opaque-1x1.crn a052c5ecb021f69ede62144fd8f51f36fe615223660ace2831e59481642d0b9684429e6abe20ce21cd598025b63a1c26e9dc8c2bafa402becf19eba664e76b3e +build/test/tga-to-all-opaque/sample-storage-flat-grayscale8-other8-white-opaque-1x1.dds 10d5bc21d80095f112be0b03b4e2d30c20b786c1151889e9efe4be23ef08778de2ca37b3372e2ba70ac787e134e841faa2491182d40b9a1539c5fb3a531a541d +build/test/tga-to-all-opaque/sample-storage-flat-grayscale8-other8-white-opaque-1x1.ktx 0d6c0ea08231b98cae46f99cae417280ddf3a83bda5b06ed86d6cafa79f542b98510dacf27c61adb701888f2cb1d2d267c3044bcbd4850e486db25d5c8a3ecc2 +build/test/tga-to-all-opaque/sample-storage-flat-grayscale8-other8-white-opaque-1x1.jpg 80c1441c7a6c4e85aebb057bb6eb5e3fd1fb9e7b7c620e3683af04962f33d2b04859800c97dd387e4163d6453133af60f29e26c1f5c855e6c1ec0d055d92b9e4 +build/test/tga-to-all-opaque/sample-storage-flat-rgb8-other8-white-opaque-1x1.tga 72a187254dfa14c07fd80d85ece2971dceb3f9f155a10910d5347bb56475802b64d95bc8b995d99dced95799f5e989615fdfcea53908c36bd2c7128291bc21e8 +build/test/tga-to-all-opaque/sample-storage-flat-rgb8-other8-white-opaque-1x1.bmp 9e31fdd3f2e6bcd07993f8da9467454946e2cfd448df043932411a123e545a19571e7a8c9d515bf8cda08135ae75598fb708bb49453bf48ad8de067b45a201cb +build/test/tga-to-all-opaque/sample-storage-flat-rgb8-other8-white-opaque-1x1.png e19d216e3a429a8008237cc674e0abdfacbcb25573dfcc3a954312dc357f77720a5b3300e8ca97b4c20f8999c4b7aacc21378c2115a63d0973fe34c02758540a +build/test/tga-to-all-opaque/sample-storage-flat-rgb8-other8-white-opaque-1x1.crn a052c5ecb021f69ede62144fd8f51f36fe615223660ace2831e59481642d0b9684429e6abe20ce21cd598025b63a1c26e9dc8c2bafa402becf19eba664e76b3e +build/test/tga-to-all-opaque/sample-storage-flat-rgb8-other8-white-opaque-1x1.dds 10d5bc21d80095f112be0b03b4e2d30c20b786c1151889e9efe4be23ef08778de2ca37b3372e2ba70ac787e134e841faa2491182d40b9a1539c5fb3a531a541d +build/test/tga-to-all-opaque/sample-storage-flat-rgb8-other8-white-opaque-1x1.ktx 0d6c0ea08231b98cae46f99cae417280ddf3a83bda5b06ed86d6cafa79f542b98510dacf27c61adb701888f2cb1d2d267c3044bcbd4850e486db25d5c8a3ecc2 +build/test/tga-to-all-opaque/sample-storage-flat-rgb8-other8-white-opaque-1x1.jpg 80c1441c7a6c4e85aebb057bb6eb5e3fd1fb9e7b7c620e3683af04962f33d2b04859800c97dd387e4163d6453133af60f29e26c1f5c855e6c1ec0d055d92b9e4 +build/test/tga-to-all-opaque/sample-storage-flat-rgb8-other8-red-opaque-1x1.tga a0505d00837822d70d619f7f9b7d8d538e13a82fc32aff1c3bc3feba9bb0409f2959b09f98cabbb03c2f67a470e15d1e8067a758e236ce021341ba0d63f5efc5 +build/test/tga-to-all-opaque/sample-storage-flat-rgb8-other8-red-opaque-1x1.bmp 735b243c2b1bf587e201f01dbec6ed2ab55d9102613983cea40beec898c32767b259de3b076137bca206e3f7e95dcdf28d06862cda17746fd2d4e308cbcae7ef +build/test/tga-to-all-opaque/sample-storage-flat-rgb8-other8-red-opaque-1x1.png dcf8113e9a169e3c5bac3aee4eac9541576808ee0c6f9704ad1f0a4b89368e4723c516069340df9ec65ddd959c50b22ec5bf6e1d5b2901f439ab07cc43671fc7 +build/test/tga-to-all-opaque/sample-storage-flat-rgb8-other8-red-opaque-1x1.crn c7924d48efba150e4db0a78be4f5dc531470629569a41fe777e9e78beb228bd9ed38571f3608157833632ffed3d3b34077d1af443eb0c43805165d3d869c6275 +build/test/tga-to-all-opaque/sample-storage-flat-rgb8-other8-red-opaque-1x1.dds fbeb3048f758559f4e6d762ee433b1e91a451d745e42699e958f501a2283ae286bdb2a025b2d5537c8c46d00341f60efac419c0d23e22404c4faa63f8c1cdd6c +build/test/tga-to-all-opaque/sample-storage-flat-rgb8-other8-red-opaque-1x1.ktx 5fd0e3ea0c89f3bda482a8f3daa080eb8156e6b446477e1b0642dfe45b741fcb324fb35a810a397ee63a1971a81ec8bce3937292a5f1556b167dd70860ec81a0 +build/test/tga-to-all-opaque/sample-storage-flat-rgb8-other8-red-opaque-1x1.jpg 664b4db91a83d9fb851b0d0c890e6a2170c2018438a47e49c4ab5951985cac33bfda28a8170ebe77092c10adbc193d7c0d4fe814c8a5b50dd2bea5ce0a55017c +build/test/tga-to-all-opaque/sample-storage-flat-rgb8-other8-color-opaque-2x2.tga 226c775ab7096d8e6d33bafd7c9d3c00b8acbd1417578f8a4f30e0bca4d85c7071314c607b78a50ca63bc781e92594407c672370c825a9d59a3ca0756d5154fc +build/test/tga-to-all-opaque/sample-storage-flat-rgb8-other8-color-opaque-2x2.bmp b96413686b40924623b3aa3538f63000d2f3a1efdef13132dd20b9b606a49137fd69db3cc827a458d15c9f0f3c9727aae86addb24e1f3d18eae187b03d49c04e +build/test/tga-to-all-opaque/sample-storage-flat-rgb8-other8-color-opaque-2x2.png f837ca204bb2707f2d5aefd15127391379be768601a13468d38797e54092b178a342e290d988d49455ac9074afaaa0310e1d42515be9ba30f309c3c493d9c27d +build/test/tga-to-all-transparent/sample-storage-flat-grayscale8-other8-white-transparent-1x1.tga fc2289fc6617ff723774b28d7522af62482481943b8c6ad889ef42282ee189c19fc2843f1f019a257a92803caff51e294acf3176b65ed7ff5149873d5392835b +build/test/tga-to-all-transparent/sample-storage-flat-grayscale8-other8-white-transparent-1x1.bmp e1a74d40546895fec08ce7d30f8c47b9befa9eccae9090432a651e9f97534ecd3d803370a36f7770af3093c05ae8a333f59a4cdaa9a8d8b35fe472d2388f2287 +build/test/tga-to-all-transparent/sample-storage-flat-grayscale8-other8-white-transparent-1x1.png fb035489e3f0a473ea01052798ec30465ef2968a5966db88a40e16331c3f794f3b55c891906f33208ca4d74326aaf2506eca8bc4f7f189dad8548af0f76c6236 +build/test/tga-to-all-transparent/sample-storage-flat-grayscale8-other8-white-transparent-1x1.crn cd2d59a763eea8d371b8993218042aa8f17ed473c822f94e72ff6d32c0c362b60b8610542a82b8128cb5e3e71c3eff16bf1331a1e67464a2c764c9b161e88d0a +build/test/tga-to-all-transparent/sample-storage-flat-grayscale8-other8-white-transparent-1x1.dds 86af197927e8134d757140f9c4deda26f80c06a57c5b9a439c3cd749df5c2967282be3acfad8b4ae9eb8fcbad2f21ea5f3a47c14b1c627cac331194d05297865 +build/test/tga-to-all-transparent/sample-storage-flat-grayscale8-other8-white-transparent-1x1.ktx 7c96485b4a42d1681dc148fd5d0a0eee8c09317d5ac283374546a3c9b6a57270aa005ba93b74205f3265d4c7438a65fd7ecc1d066683bc5d277ecb2cb16e9f08 +build/test/tga-to-all-opaque/sample-storage-flat-grayscale8-other8-white-transparent-1x1.jpg 80c1441c7a6c4e85aebb057bb6eb5e3fd1fb9e7b7c620e3683af04962f33d2b04859800c97dd387e4163d6453133af60f29e26c1f5c855e6c1ec0d055d92b9e4 +build/test/tga-to-all-transparent/sample-storage-flat-rgb8-other8-white-transparent-1x1.tga fc2289fc6617ff723774b28d7522af62482481943b8c6ad889ef42282ee189c19fc2843f1f019a257a92803caff51e294acf3176b65ed7ff5149873d5392835b +build/test/tga-to-all-transparent/sample-storage-flat-rgb8-other8-white-transparent-1x1.bmp e1a74d40546895fec08ce7d30f8c47b9befa9eccae9090432a651e9f97534ecd3d803370a36f7770af3093c05ae8a333f59a4cdaa9a8d8b35fe472d2388f2287 +build/test/tga-to-all-transparent/sample-storage-flat-rgb8-other8-white-transparent-1x1.png fb035489e3f0a473ea01052798ec30465ef2968a5966db88a40e16331c3f794f3b55c891906f33208ca4d74326aaf2506eca8bc4f7f189dad8548af0f76c6236 +build/test/tga-to-all-transparent/sample-storage-flat-rgb8-other8-white-transparent-1x1.crn cd2d59a763eea8d371b8993218042aa8f17ed473c822f94e72ff6d32c0c362b60b8610542a82b8128cb5e3e71c3eff16bf1331a1e67464a2c764c9b161e88d0a +build/test/tga-to-all-transparent/sample-storage-flat-rgb8-other8-white-transparent-1x1.dds 86af197927e8134d757140f9c4deda26f80c06a57c5b9a439c3cd749df5c2967282be3acfad8b4ae9eb8fcbad2f21ea5f3a47c14b1c627cac331194d05297865 +build/test/tga-to-all-transparent/sample-storage-flat-rgb8-other8-white-transparent-1x1.ktx 7c96485b4a42d1681dc148fd5d0a0eee8c09317d5ac283374546a3c9b6a57270aa005ba93b74205f3265d4c7438a65fd7ecc1d066683bc5d277ecb2cb16e9f08 +build/test/tga-to-all-opaque/sample-storage-flat-rgb8-other8-white-transparent-1x1.jpg 80c1441c7a6c4e85aebb057bb6eb5e3fd1fb9e7b7c620e3683af04962f33d2b04859800c97dd387e4163d6453133af60f29e26c1f5c855e6c1ec0d055d92b9e4 +build/test/tga-to-all-transparent/sample-storage-flat-rgb8-other8-red-transparent-1x1.tga 56f444a5847fba5df38f0d79bd2a32e52cbf65c4f896aeec7f773e93da30d43a8d24af81789c68ff1407189bcb5f410c0a0c51d12e74a247ead9dadd4e86a055 +build/test/tga-to-all-transparent/sample-storage-flat-rgb8-other8-red-transparent-1x1.bmp 701aa359f4ef087156045a6bfd8a2d2b0364b747dc8f5efbd5e976580fda3c02b922a4785baea4997b9ee4cfaafce2977a811cf0fb30e962cd0c80049ce5d5e0 +build/test/tga-to-all-transparent/sample-storage-flat-rgb8-other8-red-transparent-1x1.png 9279bf6378f473f1f97391d570fee22239d9f996fa2af12f2eaa11522c252ce8a00aaeb0702e167eab43a960adf5a01dcbd14a0e0551a67f9ffa71e61ad05d85 +build/test/tga-to-all-transparent/sample-storage-flat-rgb8-other8-red-transparent-1x1.crn 7717072f578dbcb4b2d0aadfcaf73f79556da43b44454de0f1a94a1148e92c62a00f7c56c9ea76e5982b17ca0bd0f9e24f643ecb753e736935cab469e6414d2b +build/test/tga-to-all-transparent/sample-storage-flat-rgb8-other8-red-transparent-1x1.dds 80bbe0616a5be9527a4cea562fbd441c365af85d489eac74bb90f0db1f1f1e5f7799520de260076f75a9baddb296d56eafe9b203716c3714a429219a939b7531 +build/test/tga-to-all-transparent/sample-storage-flat-rgb8-other8-red-transparent-1x1.ktx 9a8d9223f5a68c92c2d3fd6a46535050a1f691047a55ad17cbc22d7b61fef9f6ac799f8fe163ec360791e138dc927080dbe3e4ff799bf21cffc47c25cf91a62c +build/test/tga-to-all-opaque/sample-storage-flat-rgb8-other8-red-transparent-1x1.jpg 664b4db91a83d9fb851b0d0c890e6a2170c2018438a47e49c4ab5951985cac33bfda28a8170ebe77092c10adbc193d7c0d4fe814c8a5b50dd2bea5ce0a55017c +build/test/tga-to-all-transparent/sample-storage-flat-rgb8-other8-color-transparent-2x2.tga d7c88328d8a73b1054d499dead573be88d400ced4142c7575b51507ea8df48b791faf40029d95b0a5bc7efd2d4cfbd09ec0093848af695facb6a9d7fabd5c9f6 +build/test/tga-to-all-transparent/sample-storage-flat-rgb8-other8-color-transparent-2x2.bmp 3d3ac8cdfcecc43c0b5a39dc5c5748b6b180e58cece8f629934f7594285db36224d70f712bc48d321261d37dd9fdc84ceff23f88b06614af20bafcdb458408be +build/test/tga-to-all-transparent/sample-storage-flat-rgb8-other8-color-transparent-2x2.png 0d0363347062324d88d83571f01727b262e2673740ccfc7713d89e9743b9ac243c9294f09ee7d59de5ab10b2fe898c7b5b9184bec10d676d284c3929c618bb16 +build/test/tga-to-all-opaque/sample-storage-rle-grayscale8-noalpha-white-opaque-2x2.tga a13b956e562e7934995f3b523acf72c2eb7c3eb7ea1fd7c88c2ee623fb3397e857d9ae3dfa855de2bf11aff7ddc174317e9a3d351a515d26fc2ebb3906510397 +build/test/tga-to-all-opaque/sample-storage-rle-grayscale8-noalpha-white-opaque-2x2.bmp ac8c7152c12c4521a4ca0cf932db831403c4dc23e27f64f8e12f5dabb50d2b290a1407faf11ef046952bc6462e010eac3eb983f44a7fdbd1b04e58361cb857d5 +build/test/tga-to-all-opaque/sample-storage-rle-grayscale8-noalpha-white-opaque-2x2.png 2eaf9857536e8d4d9b6837afb4962c9528cd019d88a80e7b794af9ff44e1d90cd6177d927c4c17c8aa63952d588230f4952d0549970fb65856b6f5e11ac9dd9d +build/test/tga-to-all-opaque/sample-storage-rle-grayscale8-noalpha-white-opaque-2x2.crn 15759ac9edfb9e518ab284fbda662a82c1b294cf98fa8e0bdc19accf0488fb5adf543a55733a76b164f520426171583639508e90426e109ecb9849e824241990 +build/test/tga-to-all-opaque/sample-storage-rle-grayscale8-noalpha-white-opaque-2x2.dds d2b3dadd039140445b5fd09b65d10f226bab2a5e7e501177d149dcdf9f132b7430271b5ef3e909d767c6085e9656714b9550617a1f81f715048df80f3e2c8924 +build/test/tga-to-all-opaque/sample-storage-rle-grayscale8-noalpha-white-opaque-2x2.ktx d9c4968262c6264a3f99f68bfac6433c20fe09bcb4699343aa7112690b8d2ea4778d45ae5c0adfcd8a85d0be6df470671b1ee415eefe951105c723004796e7a4 +build/test/tga-to-all-opaque/sample-storage-rle-grayscale8-noalpha-white-opaque-2x2.jpg 7297a8b3c171f65c58cad1ee2e80263652574fe51877fddd1b5398733edca65bbd88e5dcbafb8cfa2a82f9a2867b1e3fff84ef5295fb7ad6c2373a07d182390c +build/test/tga-to-all-opaque/sample-storage-rle-rgb8-noalpha-white-opaque-2x2.tga a13b956e562e7934995f3b523acf72c2eb7c3eb7ea1fd7c88c2ee623fb3397e857d9ae3dfa855de2bf11aff7ddc174317e9a3d351a515d26fc2ebb3906510397 +build/test/tga-to-all-opaque/sample-storage-rle-rgb8-noalpha-white-opaque-2x2.bmp ac8c7152c12c4521a4ca0cf932db831403c4dc23e27f64f8e12f5dabb50d2b290a1407faf11ef046952bc6462e010eac3eb983f44a7fdbd1b04e58361cb857d5 +build/test/tga-to-all-opaque/sample-storage-rle-rgb8-noalpha-white-opaque-2x2.png 2eaf9857536e8d4d9b6837afb4962c9528cd019d88a80e7b794af9ff44e1d90cd6177d927c4c17c8aa63952d588230f4952d0549970fb65856b6f5e11ac9dd9d +build/test/tga-to-all-opaque/sample-storage-rle-rgb8-noalpha-white-opaque-2x2.crn 15759ac9edfb9e518ab284fbda662a82c1b294cf98fa8e0bdc19accf0488fb5adf543a55733a76b164f520426171583639508e90426e109ecb9849e824241990 +build/test/tga-to-all-opaque/sample-storage-rle-rgb8-noalpha-white-opaque-2x2.dds d2b3dadd039140445b5fd09b65d10f226bab2a5e7e501177d149dcdf9f132b7430271b5ef3e909d767c6085e9656714b9550617a1f81f715048df80f3e2c8924 +build/test/tga-to-all-opaque/sample-storage-rle-rgb8-noalpha-white-opaque-2x2.ktx d9c4968262c6264a3f99f68bfac6433c20fe09bcb4699343aa7112690b8d2ea4778d45ae5c0adfcd8a85d0be6df470671b1ee415eefe951105c723004796e7a4 +build/test/tga-to-all-opaque/sample-storage-rle-rgb8-noalpha-white-opaque-2x2.jpg 7297a8b3c171f65c58cad1ee2e80263652574fe51877fddd1b5398733edca65bbd88e5dcbafb8cfa2a82f9a2867b1e3fff84ef5295fb7ad6c2373a07d182390c +build/test/tga-to-all-opaque/sample-storage-rle-rgb8-noalpha-red-opaque-2x2.tga c29cbcf56f5c791628b734334c4864e565ebf49c4c6df12dbe037c69752771a50ba2210174319f152e7db96f933f5890c63c3a771c2c731f1b6252a38a9cdb2d +build/test/tga-to-all-opaque/sample-storage-rle-rgb8-noalpha-red-opaque-2x2.bmp 52b83bb03f8e0219c46e70fb3c81323fbbae0d5446e1529ea845a18a67cc2a1fee4754fb997831656d5a185be90239be31d2ce9ff48f705641c189adda5440cd +build/test/tga-to-all-opaque/sample-storage-rle-rgb8-noalpha-red-opaque-2x2.png d2ba822a04b4825a120f1ea3b2cafaabf1da676e717e43d8e7903a6ce819e7584f57f93cfcac5b35a2d88562416542e2dfcc4ed5b9d11e8f4a957e95890062e2 +build/test/tga-to-all-opaque/sample-storage-rle-rgb8-noalpha-red-opaque-2x2.crn 9a41e6bbb335fa157848b57b6450722e37d1bc09284a82a8f16bb9845035a857deebed4faf755d5b69dc4596153d64c9dd5fbb74b155489ee793981403302422 +build/test/tga-to-all-opaque/sample-storage-rle-rgb8-noalpha-red-opaque-2x2.dds 78ae070dec6b5e6ca0535efd064bf1ff2d41ada8bea8914452093f9349caee274e7fa29649e50d6328dd1c7691db38d1d74cc7e17e0bb2d2b0372cf3e5680635 +build/test/tga-to-all-opaque/sample-storage-rle-rgb8-noalpha-red-opaque-2x2.ktx 58fd44fb409a28da3f08edeb8f51df64561b784664bc9d7388ebe1042c9789b2daae5c1216e4380d120e2d18e8a2171a1ae59d9f37f62af472759ab26f7d0863 +build/test/tga-to-all-opaque/sample-storage-rle-rgb8-noalpha-red-opaque-2x2.jpg 6bec83fe47bcfb692c7dc6e948f53e217bc11bc2adb8ec7701e38812407dbaaacd0c99b3009d3604e13767fdeff63ca7f971616fd618cb766a3a62870053e43b +build/test/tga-to-all-opaque/sample-storage-rle-rgb8-noalpha-color-opaque-2x2.tga 226c775ab7096d8e6d33bafd7c9d3c00b8acbd1417578f8a4f30e0bca4d85c7071314c607b78a50ca63bc781e92594407c672370c825a9d59a3ca0756d5154fc +build/test/tga-to-all-opaque/sample-storage-rle-rgb8-noalpha-color-opaque-2x2.bmp b96413686b40924623b3aa3538f63000d2f3a1efdef13132dd20b9b606a49137fd69db3cc827a458d15c9f0f3c9727aae86addb24e1f3d18eae187b03d49c04e +build/test/tga-to-all-opaque/sample-storage-rle-rgb8-noalpha-color-opaque-2x2.png f837ca204bb2707f2d5aefd15127391379be768601a13468d38797e54092b178a342e290d988d49455ac9074afaaa0310e1d42515be9ba30f309c3c493d9c27d +build/test/tga-to-all-opaque/sample-storage-rle-rgb8-noalpha-color-opaque-8x8.tga 1311c5837067be7f0943edbf81951975a40739ddb78c490137a922b6a4a114b0e599579004bb5759967c550a1465134504eed6dc591edf035a28f74481da3137 +build/test/tga-to-all-opaque/sample-storage-rle-rgb8-noalpha-color-opaque-8x8.bmp 4b0108db54b07d4936903ed4a872928c76c5b47dde343c846b7786872fbbc5625ebb4b1a2e1d924e99e9cf918c99e9d7b3e0e3c63d127fc76611b3c854412d0e +build/test/tga-to-all-opaque/sample-storage-rle-rgb8-noalpha-color-opaque-8x8.png 837e0589a0df3d74b4b0846a4ebd90426e5d3fc01abb705a5272ace6589f326bb1105f0f923b449272a8002a181a777cfbd4555eb4b6521fb0d1e1557354570c +build/test/tga-to-all-opaque/sample-storage-rle-rgb8-noalpha-color-opaque-8x8.crn 313fcb12aee7bf6ab58bbd29980baebcc27e8f9c158c937b44772f008f34a954e1df09214fe61bb942f6317a893ed77d2fe1af6a76e9740a2ffa7ec5ae8f2e7e +build/test/tga-to-all-opaque/sample-storage-rle-rgb8-noalpha-color-opaque-8x8.dds d692e03f317381bfe867b63e3ceab3985157015063a73c5683de33acd2d7de21ecc2eae48512d43ca205352586ee43a80d67680f2c7753c5b0e5386be1d6d6d5 +build/test/tga-to-all-opaque/sample-storage-rle-rgb8-noalpha-color-opaque-8x8.ktx 0a4704476cb22f790db615785348645902483ad8dfedb5265799da11298a45bccf2049ba59af20e4ee5f4c82c638c897c1a28e9835804ee4491ba21f2e707256 +build/test/tga-to-all-opaque/sample-storage-rle-rgb8-noalpha-color-opaque-8x8.jpg 39e66d8f5be9f9e35e61b5c229b88d07161e1ea8087f0be61a988490ac39316980d45c0c9db48a7a67080cfd3446820d7389400327664cb4e72de428663ff8da +build/test/tga-to-all-opaque/sample-storage-rle-grayscale8-alpha8-white-opaque-2x2.tga a13b956e562e7934995f3b523acf72c2eb7c3eb7ea1fd7c88c2ee623fb3397e857d9ae3dfa855de2bf11aff7ddc174317e9a3d351a515d26fc2ebb3906510397 +build/test/tga-to-all-opaque/sample-storage-rle-grayscale8-alpha8-white-opaque-2x2.bmp ac8c7152c12c4521a4ca0cf932db831403c4dc23e27f64f8e12f5dabb50d2b290a1407faf11ef046952bc6462e010eac3eb983f44a7fdbd1b04e58361cb857d5 +build/test/tga-to-all-opaque/sample-storage-rle-grayscale8-alpha8-white-opaque-2x2.png 2eaf9857536e8d4d9b6837afb4962c9528cd019d88a80e7b794af9ff44e1d90cd6177d927c4c17c8aa63952d588230f4952d0549970fb65856b6f5e11ac9dd9d +build/test/tga-to-all-opaque/sample-storage-rle-grayscale8-alpha8-white-opaque-2x2.crn 15759ac9edfb9e518ab284fbda662a82c1b294cf98fa8e0bdc19accf0488fb5adf543a55733a76b164f520426171583639508e90426e109ecb9849e824241990 +build/test/tga-to-all-opaque/sample-storage-rle-grayscale8-alpha8-white-opaque-2x2.dds d2b3dadd039140445b5fd09b65d10f226bab2a5e7e501177d149dcdf9f132b7430271b5ef3e909d767c6085e9656714b9550617a1f81f715048df80f3e2c8924 +build/test/tga-to-all-opaque/sample-storage-rle-grayscale8-alpha8-white-opaque-2x2.ktx d9c4968262c6264a3f99f68bfac6433c20fe09bcb4699343aa7112690b8d2ea4778d45ae5c0adfcd8a85d0be6df470671b1ee415eefe951105c723004796e7a4 +build/test/tga-to-all-opaque/sample-storage-rle-grayscale8-alpha8-white-opaque-2x2.jpg 7297a8b3c171f65c58cad1ee2e80263652574fe51877fddd1b5398733edca65bbd88e5dcbafb8cfa2a82f9a2867b1e3fff84ef5295fb7ad6c2373a07d182390c +build/test/tga-to-all-opaque/sample-storage-rle-rgb8-alpha8-white-opaque-2x2.tga a13b956e562e7934995f3b523acf72c2eb7c3eb7ea1fd7c88c2ee623fb3397e857d9ae3dfa855de2bf11aff7ddc174317e9a3d351a515d26fc2ebb3906510397 +build/test/tga-to-all-opaque/sample-storage-rle-rgb8-alpha8-white-opaque-2x2.bmp ac8c7152c12c4521a4ca0cf932db831403c4dc23e27f64f8e12f5dabb50d2b290a1407faf11ef046952bc6462e010eac3eb983f44a7fdbd1b04e58361cb857d5 +build/test/tga-to-all-opaque/sample-storage-rle-rgb8-alpha8-white-opaque-2x2.png 2eaf9857536e8d4d9b6837afb4962c9528cd019d88a80e7b794af9ff44e1d90cd6177d927c4c17c8aa63952d588230f4952d0549970fb65856b6f5e11ac9dd9d +build/test/tga-to-all-opaque/sample-storage-rle-rgb8-alpha8-white-opaque-2x2.crn 15759ac9edfb9e518ab284fbda662a82c1b294cf98fa8e0bdc19accf0488fb5adf543a55733a76b164f520426171583639508e90426e109ecb9849e824241990 +build/test/tga-to-all-opaque/sample-storage-rle-rgb8-alpha8-white-opaque-2x2.dds d2b3dadd039140445b5fd09b65d10f226bab2a5e7e501177d149dcdf9f132b7430271b5ef3e909d767c6085e9656714b9550617a1f81f715048df80f3e2c8924 +build/test/tga-to-all-opaque/sample-storage-rle-rgb8-alpha8-white-opaque-2x2.ktx d9c4968262c6264a3f99f68bfac6433c20fe09bcb4699343aa7112690b8d2ea4778d45ae5c0adfcd8a85d0be6df470671b1ee415eefe951105c723004796e7a4 +build/test/tga-to-all-opaque/sample-storage-rle-rgb8-alpha8-white-opaque-2x2.jpg 7297a8b3c171f65c58cad1ee2e80263652574fe51877fddd1b5398733edca65bbd88e5dcbafb8cfa2a82f9a2867b1e3fff84ef5295fb7ad6c2373a07d182390c +build/test/tga-to-all-opaque/sample-storage-rle-rgb8-alpha8-red-opaque-2x2.tga c29cbcf56f5c791628b734334c4864e565ebf49c4c6df12dbe037c69752771a50ba2210174319f152e7db96f933f5890c63c3a771c2c731f1b6252a38a9cdb2d +build/test/tga-to-all-opaque/sample-storage-rle-rgb8-alpha8-red-opaque-2x2.bmp 52b83bb03f8e0219c46e70fb3c81323fbbae0d5446e1529ea845a18a67cc2a1fee4754fb997831656d5a185be90239be31d2ce9ff48f705641c189adda5440cd +build/test/tga-to-all-opaque/sample-storage-rle-rgb8-alpha8-red-opaque-2x2.png d2ba822a04b4825a120f1ea3b2cafaabf1da676e717e43d8e7903a6ce819e7584f57f93cfcac5b35a2d88562416542e2dfcc4ed5b9d11e8f4a957e95890062e2 +build/test/tga-to-all-opaque/sample-storage-rle-rgb8-alpha8-red-opaque-2x2.crn 9a41e6bbb335fa157848b57b6450722e37d1bc09284a82a8f16bb9845035a857deebed4faf755d5b69dc4596153d64c9dd5fbb74b155489ee793981403302422 +build/test/tga-to-all-opaque/sample-storage-rle-rgb8-alpha8-red-opaque-2x2.dds 78ae070dec6b5e6ca0535efd064bf1ff2d41ada8bea8914452093f9349caee274e7fa29649e50d6328dd1c7691db38d1d74cc7e17e0bb2d2b0372cf3e5680635 +build/test/tga-to-all-opaque/sample-storage-rle-rgb8-alpha8-red-opaque-2x2.ktx 58fd44fb409a28da3f08edeb8f51df64561b784664bc9d7388ebe1042c9789b2daae5c1216e4380d120e2d18e8a2171a1ae59d9f37f62af472759ab26f7d0863 +build/test/tga-to-all-opaque/sample-storage-rle-rgb8-alpha8-red-opaque-2x2.jpg 6bec83fe47bcfb692c7dc6e948f53e217bc11bc2adb8ec7701e38812407dbaaacd0c99b3009d3604e13767fdeff63ca7f971616fd618cb766a3a62870053e43b +build/test/tga-to-all-opaque/sample-storage-rle-rgb8-alpha8-color-opaque-2x2.tga 226c775ab7096d8e6d33bafd7c9d3c00b8acbd1417578f8a4f30e0bca4d85c7071314c607b78a50ca63bc781e92594407c672370c825a9d59a3ca0756d5154fc +build/test/tga-to-all-opaque/sample-storage-rle-rgb8-alpha8-color-opaque-2x2.bmp b96413686b40924623b3aa3538f63000d2f3a1efdef13132dd20b9b606a49137fd69db3cc827a458d15c9f0f3c9727aae86addb24e1f3d18eae187b03d49c04e +build/test/tga-to-all-opaque/sample-storage-rle-rgb8-alpha8-color-opaque-2x2.png f837ca204bb2707f2d5aefd15127391379be768601a13468d38797e54092b178a342e290d988d49455ac9074afaaa0310e1d42515be9ba30f309c3c493d9c27d +build/test/tga-to-all-opaque/sample-storage-rle-rgb8-alpha8-color-opaque-8x8.tga 1311c5837067be7f0943edbf81951975a40739ddb78c490137a922b6a4a114b0e599579004bb5759967c550a1465134504eed6dc591edf035a28f74481da3137 +build/test/tga-to-all-opaque/sample-storage-rle-rgb8-alpha8-color-opaque-8x8.bmp 4b0108db54b07d4936903ed4a872928c76c5b47dde343c846b7786872fbbc5625ebb4b1a2e1d924e99e9cf918c99e9d7b3e0e3c63d127fc76611b3c854412d0e +build/test/tga-to-all-opaque/sample-storage-rle-rgb8-alpha8-color-opaque-8x8.png 837e0589a0df3d74b4b0846a4ebd90426e5d3fc01abb705a5272ace6589f326bb1105f0f923b449272a8002a181a777cfbd4555eb4b6521fb0d1e1557354570c +build/test/tga-to-all-opaque/sample-storage-rle-rgb8-alpha8-color-opaque-8x8.crn 313fcb12aee7bf6ab58bbd29980baebcc27e8f9c158c937b44772f008f34a954e1df09214fe61bb942f6317a893ed77d2fe1af6a76e9740a2ffa7ec5ae8f2e7e +build/test/tga-to-all-opaque/sample-storage-rle-rgb8-alpha8-color-opaque-8x8.dds d692e03f317381bfe867b63e3ceab3985157015063a73c5683de33acd2d7de21ecc2eae48512d43ca205352586ee43a80d67680f2c7753c5b0e5386be1d6d6d5 +build/test/tga-to-all-opaque/sample-storage-rle-rgb8-alpha8-color-opaque-8x8.ktx 0a4704476cb22f790db615785348645902483ad8dfedb5265799da11298a45bccf2049ba59af20e4ee5f4c82c638c897c1a28e9835804ee4491ba21f2e707256 +build/test/tga-to-all-opaque/sample-storage-rle-rgb8-alpha8-color-opaque-8x8.jpg 39e66d8f5be9f9e35e61b5c229b88d07161e1ea8087f0be61a988490ac39316980d45c0c9db48a7a67080cfd3446820d7389400327664cb4e72de428663ff8da +build/test/tga-to-all-transparent/sample-storage-rle-grayscale8-alpha8-white-transparent-2x2.tga 84d3e9b043af13f9e1bf484efc297d4e8b26a37aa93d2453c47597e8b3a43a93b0bf9d21a3b024ae4e1cc8b00e084ded926493b7e4b12946b9bf218a7ba391e7 +build/test/tga-to-all-transparent/sample-storage-rle-grayscale8-alpha8-white-transparent-2x2.bmp ff02d07b4fc2401e03af211ac356c82b67ba82528e58befafb9c299a6327d69be9923491f6ad3f41ad10c43099dd002bfb1a42ccb53e1a90aec8d0a038f7364c +build/test/tga-to-all-transparent/sample-storage-rle-grayscale8-alpha8-white-transparent-2x2.png a5b692edf12f4f89bb2350bae0e46bf02a663528d2d6cdb5379c6fbb7b0cfb16c135d8006128cfcea28ccd900cf220586d1f0e0321505db20854161ce6b06e52 +build/test/tga-to-all-transparent/sample-storage-rle-grayscale8-alpha8-white-transparent-2x2.crn ed50d5816a1bb2956dc2ad13c020e52f892c964ff76c19440c443938013573e70bc18366097197d196c1a9b7543540f9c84980fd0f0643dc147e03fe7b38deca +build/test/tga-to-all-transparent/sample-storage-rle-grayscale8-alpha8-white-transparent-2x2.dds ccf212b63a9c95a4933ec6240c1985d68a9a7643ac0a50a3dedd4f7ef5f966318dcf19316a3a17e3b26ded05b63018ab6a59d36516133cecfefc36cd16651117 +build/test/tga-to-all-transparent/sample-storage-rle-grayscale8-alpha8-white-transparent-2x2.ktx c0b9106448241f7e6624bb826ff894c4842c76a1f9e3ec7006933687d5dc5e5491b1ee22bc6fc06de3f8053846a3897613c4112f2d076c6a9f48397960ae521a +build/test/tga-to-all-opaque/sample-storage-rle-grayscale8-alpha8-white-transparent-2x2.jpg 7297a8b3c171f65c58cad1ee2e80263652574fe51877fddd1b5398733edca65bbd88e5dcbafb8cfa2a82f9a2867b1e3fff84ef5295fb7ad6c2373a07d182390c +build/test/tga-to-all-transparent/sample-storage-rle-rgb8-alpha8-white-transparent-2x2.tga 84d3e9b043af13f9e1bf484efc297d4e8b26a37aa93d2453c47597e8b3a43a93b0bf9d21a3b024ae4e1cc8b00e084ded926493b7e4b12946b9bf218a7ba391e7 +build/test/tga-to-all-transparent/sample-storage-rle-rgb8-alpha8-white-transparent-2x2.bmp ff02d07b4fc2401e03af211ac356c82b67ba82528e58befafb9c299a6327d69be9923491f6ad3f41ad10c43099dd002bfb1a42ccb53e1a90aec8d0a038f7364c +build/test/tga-to-all-transparent/sample-storage-rle-rgb8-alpha8-white-transparent-2x2.png a5b692edf12f4f89bb2350bae0e46bf02a663528d2d6cdb5379c6fbb7b0cfb16c135d8006128cfcea28ccd900cf220586d1f0e0321505db20854161ce6b06e52 +build/test/tga-to-all-transparent/sample-storage-rle-rgb8-alpha8-white-transparent-2x2.crn ed50d5816a1bb2956dc2ad13c020e52f892c964ff76c19440c443938013573e70bc18366097197d196c1a9b7543540f9c84980fd0f0643dc147e03fe7b38deca +build/test/tga-to-all-transparent/sample-storage-rle-rgb8-alpha8-white-transparent-2x2.dds ccf212b63a9c95a4933ec6240c1985d68a9a7643ac0a50a3dedd4f7ef5f966318dcf19316a3a17e3b26ded05b63018ab6a59d36516133cecfefc36cd16651117 +build/test/tga-to-all-transparent/sample-storage-rle-rgb8-alpha8-white-transparent-2x2.ktx c0b9106448241f7e6624bb826ff894c4842c76a1f9e3ec7006933687d5dc5e5491b1ee22bc6fc06de3f8053846a3897613c4112f2d076c6a9f48397960ae521a +build/test/tga-to-all-opaque/sample-storage-rle-rgb8-alpha8-white-transparent-2x2.jpg 7297a8b3c171f65c58cad1ee2e80263652574fe51877fddd1b5398733edca65bbd88e5dcbafb8cfa2a82f9a2867b1e3fff84ef5295fb7ad6c2373a07d182390c +build/test/tga-to-all-transparent/sample-storage-rle-rgb8-alpha8-red-transparent-2x2.tga 6e6026167dae199d8c0c3628dab15e3ff6fbf0a58ddf201369982c3f75166a074d7372e1ce11f8dedc78e59fce1b7deb3ac2429a39fed78add87197b6df20b1a +build/test/tga-to-all-transparent/sample-storage-rle-rgb8-alpha8-red-transparent-2x2.bmp ab7fbabeb4d1de47e0e7be4956650d564173d60c6694f26ab6c999851d6f4b25dd8bdcfc25983fb6f189d40d28eb1550ffbad7c86c1334eb0e8e8604072843cf +build/test/tga-to-all-transparent/sample-storage-rle-rgb8-alpha8-red-transparent-2x2.png c6d0762cd8ce0cf8993cdd479997f454a629dfc50f1af05b4015c99dabd51e5ca2b90852bfde03beeea472d2421483eb03b776f141e32fd5fe8881168686fb8b +build/test/tga-to-all-transparent/sample-storage-rle-rgb8-alpha8-red-transparent-2x2.crn f80bcb09acc480dae253a9894c69038030cf2480457ab04341951e59a95f99c37c9f2b63cddfa40df00e18d782286ba8b71151864dd44fa679db6693d3539aae +build/test/tga-to-all-transparent/sample-storage-rle-rgb8-alpha8-red-transparent-2x2.dds 5e8c289fccb8435ed97553426d3fe089998ffc4b34bced8531477d30fe65e4ed001307ab1144a835f539763bc85c62c48a190744ff3c980c3db3b58e06a0c06c +build/test/tga-to-all-transparent/sample-storage-rle-rgb8-alpha8-red-transparent-2x2.ktx c8e5e67d510b5fdbf78b1e8e3ff7b36616d6219845448c5f92ea84c78cdf3e4c02fc4ccb39835e68449ce9ec7f20854ba3832c19d5bdfd993d4e38161d447330 +build/test/tga-to-all-opaque/sample-storage-rle-rgb8-alpha8-red-transparent-2x2.jpg 6bec83fe47bcfb692c7dc6e948f53e217bc11bc2adb8ec7701e38812407dbaaacd0c99b3009d3604e13767fdeff63ca7f971616fd618cb766a3a62870053e43b +build/test/tga-to-all-transparent/sample-storage-rle-rgb8-alpha8-color-transparent-2x2.tga d7c88328d8a73b1054d499dead573be88d400ced4142c7575b51507ea8df48b791faf40029d95b0a5bc7efd2d4cfbd09ec0093848af695facb6a9d7fabd5c9f6 +build/test/tga-to-all-transparent/sample-storage-rle-rgb8-alpha8-color-transparent-2x2.bmp 3d3ac8cdfcecc43c0b5a39dc5c5748b6b180e58cece8f629934f7594285db36224d70f712bc48d321261d37dd9fdc84ceff23f88b06614af20bafcdb458408be +build/test/tga-to-all-transparent/sample-storage-rle-rgb8-alpha8-color-transparent-2x2.png 0d0363347062324d88d83571f01727b262e2673740ccfc7713d89e9743b9ac243c9294f09ee7d59de5ab10b2fe898c7b5b9184bec10d676d284c3929c618bb16 +build/test/tga-to-all-transparent/sample-storage-rle-rgb8-alpha8-color-transparent-8x8.tga 4546f051cac42fa12f755e11523cccdff28a849835ef53b890fcf1f5c57bb0af1e67976977d2d6df7378f4bb4cc605b68a08a89035232d521ae98b7adb0a1c39 +build/test/tga-to-all-transparent/sample-storage-rle-rgb8-alpha8-color-transparent-8x8.bmp ac2ee4d3373c6c0aef785e55899784ae8ba1c4e934125e37b91cb4900055548184e24f361f49f8326010b2745baf965286a003e29b5684eec0d3515fe73fe657 +build/test/tga-to-all-transparent/sample-storage-rle-rgb8-alpha8-color-transparent-8x8.png 3733cd2c5c28eed31b061cce5781bae27772eff0ac8fb1929fd0a1e7cf09156ac29ff0c3cca8cfb773b5f5b6d09187a41a394b00ced5cc481e862cf807ed4ed1 +build/test/tga-to-all-transparent/sample-storage-rle-rgb8-alpha8-color-transparent-8x8.crn 641292921ae5e392419664d93fd3022ebe7b84bd82b8f991a5d2c9509b90c39c5e5a2b716260ebfbaba1933de65c9e7937f203526f5f9a4d3de7baab3c33225b +build/test/tga-to-all-transparent/sample-storage-rle-rgb8-alpha8-color-transparent-8x8.dds d13b620bd08777f9f958849ed99b96293182e8bc7ff29cad31181b38036e6c4d325cc8bf038b24bf6c17403eac66756f2e1946f3739640414eaa2098ba475db0 +build/test/tga-to-all-transparent/sample-storage-rle-rgb8-alpha8-color-transparent-8x8.ktx db575597abf955bb613d3cf85a74c86ad6d3b341e6b68daba79886598d83f60eb1ef49eca84d0a917f2b1d6f8cc2da65867d535981d92176deca2ad5708ef08b +build/test/tga-to-all-opaque/sample-storage-rle-rgb8-alpha8-color-transparent-8x8.jpg 39e66d8f5be9f9e35e61b5c229b88d07161e1ea8087f0be61a988490ac39316980d45c0c9db48a7a67080cfd3446820d7389400327664cb4e72de428663ff8da +build/test/tga-to-all-opaque/sample-storage-rle-grayscale8-other8-white-opaque-2x2.tga a13b956e562e7934995f3b523acf72c2eb7c3eb7ea1fd7c88c2ee623fb3397e857d9ae3dfa855de2bf11aff7ddc174317e9a3d351a515d26fc2ebb3906510397 +build/test/tga-to-all-opaque/sample-storage-rle-grayscale8-other8-white-opaque-2x2.bmp ac8c7152c12c4521a4ca0cf932db831403c4dc23e27f64f8e12f5dabb50d2b290a1407faf11ef046952bc6462e010eac3eb983f44a7fdbd1b04e58361cb857d5 +build/test/tga-to-all-opaque/sample-storage-rle-grayscale8-other8-white-opaque-2x2.png 2eaf9857536e8d4d9b6837afb4962c9528cd019d88a80e7b794af9ff44e1d90cd6177d927c4c17c8aa63952d588230f4952d0549970fb65856b6f5e11ac9dd9d +build/test/tga-to-all-opaque/sample-storage-rle-grayscale8-other8-white-opaque-2x2.crn 15759ac9edfb9e518ab284fbda662a82c1b294cf98fa8e0bdc19accf0488fb5adf543a55733a76b164f520426171583639508e90426e109ecb9849e824241990 +build/test/tga-to-all-opaque/sample-storage-rle-grayscale8-other8-white-opaque-2x2.dds d2b3dadd039140445b5fd09b65d10f226bab2a5e7e501177d149dcdf9f132b7430271b5ef3e909d767c6085e9656714b9550617a1f81f715048df80f3e2c8924 +build/test/tga-to-all-opaque/sample-storage-rle-grayscale8-other8-white-opaque-2x2.ktx d9c4968262c6264a3f99f68bfac6433c20fe09bcb4699343aa7112690b8d2ea4778d45ae5c0adfcd8a85d0be6df470671b1ee415eefe951105c723004796e7a4 +build/test/tga-to-all-opaque/sample-storage-rle-grayscale8-other8-white-opaque-2x2.jpg 7297a8b3c171f65c58cad1ee2e80263652574fe51877fddd1b5398733edca65bbd88e5dcbafb8cfa2a82f9a2867b1e3fff84ef5295fb7ad6c2373a07d182390c +build/test/tga-to-all-opaque/sample-storage-rle-rgb8-other8-white-opaque-2x2.tga a13b956e562e7934995f3b523acf72c2eb7c3eb7ea1fd7c88c2ee623fb3397e857d9ae3dfa855de2bf11aff7ddc174317e9a3d351a515d26fc2ebb3906510397 +build/test/tga-to-all-opaque/sample-storage-rle-rgb8-other8-white-opaque-2x2.bmp ac8c7152c12c4521a4ca0cf932db831403c4dc23e27f64f8e12f5dabb50d2b290a1407faf11ef046952bc6462e010eac3eb983f44a7fdbd1b04e58361cb857d5 +build/test/tga-to-all-opaque/sample-storage-rle-rgb8-other8-white-opaque-2x2.png 2eaf9857536e8d4d9b6837afb4962c9528cd019d88a80e7b794af9ff44e1d90cd6177d927c4c17c8aa63952d588230f4952d0549970fb65856b6f5e11ac9dd9d +build/test/tga-to-all-opaque/sample-storage-rle-rgb8-other8-white-opaque-2x2.crn 15759ac9edfb9e518ab284fbda662a82c1b294cf98fa8e0bdc19accf0488fb5adf543a55733a76b164f520426171583639508e90426e109ecb9849e824241990 +build/test/tga-to-all-opaque/sample-storage-rle-rgb8-other8-white-opaque-2x2.dds d2b3dadd039140445b5fd09b65d10f226bab2a5e7e501177d149dcdf9f132b7430271b5ef3e909d767c6085e9656714b9550617a1f81f715048df80f3e2c8924 +build/test/tga-to-all-opaque/sample-storage-rle-rgb8-other8-white-opaque-2x2.ktx d9c4968262c6264a3f99f68bfac6433c20fe09bcb4699343aa7112690b8d2ea4778d45ae5c0adfcd8a85d0be6df470671b1ee415eefe951105c723004796e7a4 +build/test/tga-to-all-opaque/sample-storage-rle-rgb8-other8-white-opaque-2x2.jpg 7297a8b3c171f65c58cad1ee2e80263652574fe51877fddd1b5398733edca65bbd88e5dcbafb8cfa2a82f9a2867b1e3fff84ef5295fb7ad6c2373a07d182390c +build/test/tga-to-all-opaque/sample-storage-rle-rgb8-other8-red-opaque-2x2.tga c29cbcf56f5c791628b734334c4864e565ebf49c4c6df12dbe037c69752771a50ba2210174319f152e7db96f933f5890c63c3a771c2c731f1b6252a38a9cdb2d +build/test/tga-to-all-opaque/sample-storage-rle-rgb8-other8-red-opaque-2x2.bmp 52b83bb03f8e0219c46e70fb3c81323fbbae0d5446e1529ea845a18a67cc2a1fee4754fb997831656d5a185be90239be31d2ce9ff48f705641c189adda5440cd +build/test/tga-to-all-opaque/sample-storage-rle-rgb8-other8-red-opaque-2x2.png d2ba822a04b4825a120f1ea3b2cafaabf1da676e717e43d8e7903a6ce819e7584f57f93cfcac5b35a2d88562416542e2dfcc4ed5b9d11e8f4a957e95890062e2 +build/test/tga-to-all-opaque/sample-storage-rle-rgb8-other8-red-opaque-2x2.crn 9a41e6bbb335fa157848b57b6450722e37d1bc09284a82a8f16bb9845035a857deebed4faf755d5b69dc4596153d64c9dd5fbb74b155489ee793981403302422 +build/test/tga-to-all-opaque/sample-storage-rle-rgb8-other8-red-opaque-2x2.dds 78ae070dec6b5e6ca0535efd064bf1ff2d41ada8bea8914452093f9349caee274e7fa29649e50d6328dd1c7691db38d1d74cc7e17e0bb2d2b0372cf3e5680635 +build/test/tga-to-all-opaque/sample-storage-rle-rgb8-other8-red-opaque-2x2.ktx 58fd44fb409a28da3f08edeb8f51df64561b784664bc9d7388ebe1042c9789b2daae5c1216e4380d120e2d18e8a2171a1ae59d9f37f62af472759ab26f7d0863 +build/test/tga-to-all-opaque/sample-storage-rle-rgb8-other8-red-opaque-2x2.jpg 6bec83fe47bcfb692c7dc6e948f53e217bc11bc2adb8ec7701e38812407dbaaacd0c99b3009d3604e13767fdeff63ca7f971616fd618cb766a3a62870053e43b +build/test/tga-to-all-opaque/sample-storage-rle-rgb8-other8-color-opaque-2x2.tga 226c775ab7096d8e6d33bafd7c9d3c00b8acbd1417578f8a4f30e0bca4d85c7071314c607b78a50ca63bc781e92594407c672370c825a9d59a3ca0756d5154fc +build/test/tga-to-all-opaque/sample-storage-rle-rgb8-other8-color-opaque-2x2.bmp b96413686b40924623b3aa3538f63000d2f3a1efdef13132dd20b9b606a49137fd69db3cc827a458d15c9f0f3c9727aae86addb24e1f3d18eae187b03d49c04e +build/test/tga-to-all-opaque/sample-storage-rle-rgb8-other8-color-opaque-2x2.png f837ca204bb2707f2d5aefd15127391379be768601a13468d38797e54092b178a342e290d988d49455ac9074afaaa0310e1d42515be9ba30f309c3c493d9c27d +build/test/tga-to-all-opaque/sample-storage-rle-rgb8-other8-color-opaque-8x8.tga 1311c5837067be7f0943edbf81951975a40739ddb78c490137a922b6a4a114b0e599579004bb5759967c550a1465134504eed6dc591edf035a28f74481da3137 +build/test/tga-to-all-opaque/sample-storage-rle-rgb8-other8-color-opaque-8x8.bmp 4b0108db54b07d4936903ed4a872928c76c5b47dde343c846b7786872fbbc5625ebb4b1a2e1d924e99e9cf918c99e9d7b3e0e3c63d127fc76611b3c854412d0e +build/test/tga-to-all-opaque/sample-storage-rle-rgb8-other8-color-opaque-8x8.png 837e0589a0df3d74b4b0846a4ebd90426e5d3fc01abb705a5272ace6589f326bb1105f0f923b449272a8002a181a777cfbd4555eb4b6521fb0d1e1557354570c +build/test/tga-to-all-opaque/sample-storage-rle-rgb8-other8-color-opaque-8x8.crn 313fcb12aee7bf6ab58bbd29980baebcc27e8f9c158c937b44772f008f34a954e1df09214fe61bb942f6317a893ed77d2fe1af6a76e9740a2ffa7ec5ae8f2e7e +build/test/tga-to-all-opaque/sample-storage-rle-rgb8-other8-color-opaque-8x8.dds d692e03f317381bfe867b63e3ceab3985157015063a73c5683de33acd2d7de21ecc2eae48512d43ca205352586ee43a80d67680f2c7753c5b0e5386be1d6d6d5 +build/test/tga-to-all-opaque/sample-storage-rle-rgb8-other8-color-opaque-8x8.ktx 0a4704476cb22f790db615785348645902483ad8dfedb5265799da11298a45bccf2049ba59af20e4ee5f4c82c638c897c1a28e9835804ee4491ba21f2e707256 +build/test/tga-to-all-opaque/sample-storage-rle-rgb8-other8-color-opaque-8x8.jpg 39e66d8f5be9f9e35e61b5c229b88d07161e1ea8087f0be61a988490ac39316980d45c0c9db48a7a67080cfd3446820d7389400327664cb4e72de428663ff8da +build/test/tga-to-all-transparent/sample-storage-rle-grayscale8-other8-white-transparent-2x2.tga 84d3e9b043af13f9e1bf484efc297d4e8b26a37aa93d2453c47597e8b3a43a93b0bf9d21a3b024ae4e1cc8b00e084ded926493b7e4b12946b9bf218a7ba391e7 +build/test/tga-to-all-transparent/sample-storage-rle-grayscale8-other8-white-transparent-2x2.bmp ff02d07b4fc2401e03af211ac356c82b67ba82528e58befafb9c299a6327d69be9923491f6ad3f41ad10c43099dd002bfb1a42ccb53e1a90aec8d0a038f7364c +build/test/tga-to-all-transparent/sample-storage-rle-grayscale8-other8-white-transparent-2x2.png a5b692edf12f4f89bb2350bae0e46bf02a663528d2d6cdb5379c6fbb7b0cfb16c135d8006128cfcea28ccd900cf220586d1f0e0321505db20854161ce6b06e52 +build/test/tga-to-all-transparent/sample-storage-rle-grayscale8-other8-white-transparent-2x2.crn ed50d5816a1bb2956dc2ad13c020e52f892c964ff76c19440c443938013573e70bc18366097197d196c1a9b7543540f9c84980fd0f0643dc147e03fe7b38deca +build/test/tga-to-all-transparent/sample-storage-rle-grayscale8-other8-white-transparent-2x2.dds ccf212b63a9c95a4933ec6240c1985d68a9a7643ac0a50a3dedd4f7ef5f966318dcf19316a3a17e3b26ded05b63018ab6a59d36516133cecfefc36cd16651117 +build/test/tga-to-all-transparent/sample-storage-rle-grayscale8-other8-white-transparent-2x2.ktx c0b9106448241f7e6624bb826ff894c4842c76a1f9e3ec7006933687d5dc5e5491b1ee22bc6fc06de3f8053846a3897613c4112f2d076c6a9f48397960ae521a +build/test/tga-to-all-opaque/sample-storage-rle-grayscale8-other8-white-transparent-2x2.jpg 7297a8b3c171f65c58cad1ee2e80263652574fe51877fddd1b5398733edca65bbd88e5dcbafb8cfa2a82f9a2867b1e3fff84ef5295fb7ad6c2373a07d182390c +build/test/tga-to-all-transparent/sample-storage-rle-rgb8-other8-white-transparent-2x2.tga 84d3e9b043af13f9e1bf484efc297d4e8b26a37aa93d2453c47597e8b3a43a93b0bf9d21a3b024ae4e1cc8b00e084ded926493b7e4b12946b9bf218a7ba391e7 +build/test/tga-to-all-transparent/sample-storage-rle-rgb8-other8-white-transparent-2x2.bmp ff02d07b4fc2401e03af211ac356c82b67ba82528e58befafb9c299a6327d69be9923491f6ad3f41ad10c43099dd002bfb1a42ccb53e1a90aec8d0a038f7364c +build/test/tga-to-all-transparent/sample-storage-rle-rgb8-other8-white-transparent-2x2.png a5b692edf12f4f89bb2350bae0e46bf02a663528d2d6cdb5379c6fbb7b0cfb16c135d8006128cfcea28ccd900cf220586d1f0e0321505db20854161ce6b06e52 +build/test/tga-to-all-transparent/sample-storage-rle-rgb8-other8-white-transparent-2x2.crn ed50d5816a1bb2956dc2ad13c020e52f892c964ff76c19440c443938013573e70bc18366097197d196c1a9b7543540f9c84980fd0f0643dc147e03fe7b38deca +build/test/tga-to-all-transparent/sample-storage-rle-rgb8-other8-white-transparent-2x2.dds ccf212b63a9c95a4933ec6240c1985d68a9a7643ac0a50a3dedd4f7ef5f966318dcf19316a3a17e3b26ded05b63018ab6a59d36516133cecfefc36cd16651117 +build/test/tga-to-all-transparent/sample-storage-rle-rgb8-other8-white-transparent-2x2.ktx c0b9106448241f7e6624bb826ff894c4842c76a1f9e3ec7006933687d5dc5e5491b1ee22bc6fc06de3f8053846a3897613c4112f2d076c6a9f48397960ae521a +build/test/tga-to-all-opaque/sample-storage-rle-rgb8-other8-white-transparent-2x2.jpg 7297a8b3c171f65c58cad1ee2e80263652574fe51877fddd1b5398733edca65bbd88e5dcbafb8cfa2a82f9a2867b1e3fff84ef5295fb7ad6c2373a07d182390c +build/test/tga-to-all-transparent/sample-storage-rle-rgb8-other8-red-transparent-2x2.tga 6e6026167dae199d8c0c3628dab15e3ff6fbf0a58ddf201369982c3f75166a074d7372e1ce11f8dedc78e59fce1b7deb3ac2429a39fed78add87197b6df20b1a +build/test/tga-to-all-transparent/sample-storage-rle-rgb8-other8-red-transparent-2x2.bmp ab7fbabeb4d1de47e0e7be4956650d564173d60c6694f26ab6c999851d6f4b25dd8bdcfc25983fb6f189d40d28eb1550ffbad7c86c1334eb0e8e8604072843cf +build/test/tga-to-all-transparent/sample-storage-rle-rgb8-other8-red-transparent-2x2.png c6d0762cd8ce0cf8993cdd479997f454a629dfc50f1af05b4015c99dabd51e5ca2b90852bfde03beeea472d2421483eb03b776f141e32fd5fe8881168686fb8b +build/test/tga-to-all-transparent/sample-storage-rle-rgb8-other8-red-transparent-2x2.crn f80bcb09acc480dae253a9894c69038030cf2480457ab04341951e59a95f99c37c9f2b63cddfa40df00e18d782286ba8b71151864dd44fa679db6693d3539aae +build/test/tga-to-all-transparent/sample-storage-rle-rgb8-other8-red-transparent-2x2.dds 5e8c289fccb8435ed97553426d3fe089998ffc4b34bced8531477d30fe65e4ed001307ab1144a835f539763bc85c62c48a190744ff3c980c3db3b58e06a0c06c +build/test/tga-to-all-transparent/sample-storage-rle-rgb8-other8-red-transparent-2x2.ktx c8e5e67d510b5fdbf78b1e8e3ff7b36616d6219845448c5f92ea84c78cdf3e4c02fc4ccb39835e68449ce9ec7f20854ba3832c19d5bdfd993d4e38161d447330 +build/test/tga-to-all-opaque/sample-storage-rle-rgb8-other8-red-transparent-2x2.jpg 6bec83fe47bcfb692c7dc6e948f53e217bc11bc2adb8ec7701e38812407dbaaacd0c99b3009d3604e13767fdeff63ca7f971616fd618cb766a3a62870053e43b +build/test/tga-to-all-transparent/sample-storage-rle-rgb8-other8-color-transparent-2x2.tga d7c88328d8a73b1054d499dead573be88d400ced4142c7575b51507ea8df48b791faf40029d95b0a5bc7efd2d4cfbd09ec0093848af695facb6a9d7fabd5c9f6 +build/test/tga-to-all-transparent/sample-storage-rle-rgb8-other8-color-transparent-2x2.bmp 3d3ac8cdfcecc43c0b5a39dc5c5748b6b180e58cece8f629934f7594285db36224d70f712bc48d321261d37dd9fdc84ceff23f88b06614af20bafcdb458408be +build/test/tga-to-all-transparent/sample-storage-rle-rgb8-other8-color-transparent-2x2.png 0d0363347062324d88d83571f01727b262e2673740ccfc7713d89e9743b9ac243c9294f09ee7d59de5ab10b2fe898c7b5b9184bec10d676d284c3929c618bb16 +build/test/tga-to-all-transparent/sample-storage-rle-rgb8-other8-color-transparent-8x8.tga 4546f051cac42fa12f755e11523cccdff28a849835ef53b890fcf1f5c57bb0af1e67976977d2d6df7378f4bb4cc605b68a08a89035232d521ae98b7adb0a1c39 +build/test/tga-to-all-transparent/sample-storage-rle-rgb8-other8-color-transparent-8x8.bmp ac2ee4d3373c6c0aef785e55899784ae8ba1c4e934125e37b91cb4900055548184e24f361f49f8326010b2745baf965286a003e29b5684eec0d3515fe73fe657 +build/test/tga-to-all-transparent/sample-storage-rle-rgb8-other8-color-transparent-8x8.png 3733cd2c5c28eed31b061cce5781bae27772eff0ac8fb1929fd0a1e7cf09156ac29ff0c3cca8cfb773b5f5b6d09187a41a394b00ced5cc481e862cf807ed4ed1 +build/test/tga-to-all-transparent/sample-storage-rle-rgb8-other8-color-transparent-8x8.crn 641292921ae5e392419664d93fd3022ebe7b84bd82b8f991a5d2c9509b90c39c5e5a2b716260ebfbaba1933de65c9e7937f203526f5f9a4d3de7baab3c33225b +build/test/tga-to-all-transparent/sample-storage-rle-rgb8-other8-color-transparent-8x8.dds d13b620bd08777f9f958849ed99b96293182e8bc7ff29cad31181b38036e6c4d325cc8bf038b24bf6c17403eac66756f2e1946f3739640414eaa2098ba475db0 +build/test/tga-to-all-transparent/sample-storage-rle-rgb8-other8-color-transparent-8x8.ktx db575597abf955bb613d3cf85a74c86ad6d3b341e6b68daba79886598d83f60eb1ef49eca84d0a917f2b1d6f8cc2da65867d535981d92176deca2ad5708ef08b +build/test/tga-to-all-opaque/sample-storage-rle-rgb8-other8-color-transparent-8x8.jpg 39e66d8f5be9f9e35e61b5c229b88d07161e1ea8087f0be61a988490ac39316980d45c0c9db48a7a67080cfd3446820d7389400327664cb4e72de428663ff8da build/test/example1-icon-png-to-dds/sample-icon-unvanquished-64x64.dds ce98b21c574b4883e4aff4a0b92fd0f533f22e00ab753686f353111fa7503287c2c4dba25f2c2670508630d79b59464578e094461bad81ad803e1d58ed5e69f8 build/test/example1-icon-png-to-crn/sample-icon-unvanquished-64x64.crn a3b526e95f44b6a4c919bc8eb79f4debf592f0bccc163c900cd1b6f9add0ce58c3db9fc8dac1828d350bbcd915823d7743a0c114a533fbc08c163fcb4846d2f5 build/test/example1-icon-crn-to-dds/sample-icon-unvanquished-64x64.dds 2aae5c5bd8c6a82d1cf3fc9d9da12fe3fc5be8651261ff1cb359e754308fd81e93bf304aeb55ada0bad50794d6e97d3e48084e5a4f48fa7caec4ed954152bae9 diff --git a/test/generate-tga-alpha-samples.py b/test/generate-tga-alpha-samples.py new file mode 100755 index 00000000..487725e9 --- /dev/null +++ b/test/generate-tga-alpha-samples.py @@ -0,0 +1,291 @@ +#!/usr/bin/env python3 + +# Author: Thomas DEBESSE +# License: CC0 1.0 +# +# This source code is covered by the CC0 1.0 Universal (CC0 1.0) +# “Public Domain Dedication” license, as described on this page: +# - https://creativecommons.org/publicdomain/zero/1.0/legalcode + +import struct + + +def writeRLE(data, pixels): + """ + Write TGA RLE packets. + + pixels: list of complete pixel byte strings. + """ + i = 0 + + while i < len(pixels): + # Check for a run of identical pixels. + run_length = 1 + while ( + i + run_length < len(pixels) + and pixels[i + run_length] == pixels[i] + and run_length < 128 + ): + run_length += 1 + + if run_length >= 2: + # RLE packet: high bit set, count - 1 + data.append(0x80 | (run_length - 1)) + data.extend(pixels[i]) + i += run_length + else: + # Raw packet: high bit clear + raw_start = i + raw_length = 1 + + while ( + raw_start + raw_length < len(pixels) + and raw_length < 128 + ): + # Stop before a run. + if ( + raw_start + raw_length + 1 < len(pixels) + and pixels[raw_start + raw_length] == + pixels[raw_start + raw_length + 1] + ): + break + + raw_length += 1 + + data.append(raw_length - 1) + + for j in range(raw_start, raw_start + raw_length): + data.extend(pixels[j]) + + i += raw_length + + +def writeTGA(filename, width, height, pixels, pixel_depth, has_alpha, grayscale=False, rle=False): + """ + Write an uncompressed TGA. + + pixels: list of (r, g, b, a) tuples, top-left order. + + pixel_depth: + 8 = grayscale + 16 = grayscale + extra 8-bit component + 24 = RGB8 + 32 = RGB8 + extra 8-bit component + + has_alpha: + True = alpha attribute declared + False = no alpha attribute declared + + grayscale: + True = TGA grayscale image type + False = true-color TGA + """ + if pixel_depth not in (8, 16, 24, 32): + raise ValueError("invalid pixel depth") + + if grayscale: + image_type = 11 if rle else 3 + else: + image_type = 10 if rle else 2 + + image_descriptor = 0x08 if has_alpha else 0x00 + + header = struct.pack( + "FHUTUE literal 0 HcmV?d00001 diff --git a/test/sample-storage-flat-rgb8-alpha8-white-opaque-1x1.tga b/test/sample-storage-flat-rgb8-alpha8-white-opaque-1x1.tga new file mode 100644 index 0000000000000000000000000000000000000000..30ec7f78a764ab7697a0d19014fa95510e12adb0 GIT binary patch literal 22 VcmZQzU}As)Mg~R(1&;qf000Xv1StRj literal 0 HcmV?d00001 diff --git a/test/sample-storage-flat-rgb8-alpha8-white-transparent-1x1.tga b/test/sample-storage-flat-rgb8-alpha8-white-transparent-1x1.tga new file mode 100644 index 0000000000000000000000000000000000000000..0a1a235f352f836cc45efc94d8c745f1829bca07 GIT binary patch literal 22 XcmZQzU}As)Mg~R(1&;s!|1$sp3NHgH literal 0 HcmV?d00001 diff --git a/test/sample-storage-flat-rgb8-noalpha-color-opaque-2x2.tga b/test/sample-storage-flat-rgb8-noalpha-color-opaque-2x2.tga new file mode 100644 index 0000000000000000000000000000000000000000..348a188bc9f17972fab565dfe20a832e539e0db3 GIT binary patch literal 30 ZcmZQzU}As)CLmja;Xebz|NkHY2mvd=1{nYV literal 0 HcmV?d00001 diff --git a/test/sample-storage-flat-rgb8-noalpha-red-opaque-1x1.tga b/test/sample-storage-flat-rgb8-noalpha-red-opaque-1x1.tga new file mode 100644 index 0000000000000000000000000000000000000000..aaf749fc6f9af74c14d68fc9505920daccfcb287 GIT binary patch literal 21 UcmZQzU}As)Mg~R(2_WY`00F`Q8~^|S literal 0 HcmV?d00001 diff --git a/test/sample-storage-flat-rgb8-noalpha-white-opaque-1x1.tga b/test/sample-storage-flat-rgb8-noalpha-white-opaque-1x1.tga new file mode 100644 index 0000000000000000000000000000000000000000..bff1fb093866f0195d2534426da3b136255d6475 GIT binary patch literal 21 WcmZQzU}As)Mg~R(35Ngw{{sL9y#pEm literal 0 HcmV?d00001 diff --git a/test/sample-storage-flat-rgb8-other8-color-opaque-2x2.tga b/test/sample-storage-flat-rgb8-other8-color-opaque-2x2.tga new file mode 100644 index 0000000000000000000000000000000000000000..d764094d6cb115a792674533ba0ad4d454605380 GIT binary patch literal 34 bcmZQzU}As)CLmjZ;Xebze-HpsK+b;vSfC0W literal 0 HcmV?d00001 diff --git a/test/sample-storage-flat-rgb8-other8-color-transparent-2x2.tga b/test/sample-storage-flat-rgb8-other8-color-transparent-2x2.tga new file mode 100644 index 0000000000000000000000000000000000000000..af05b738ec84242c806b61d174f6cbf38dfe24dd GIT binary patch literal 34 ccmZQzU}As)CLmjZ;Xebze;@z~0tp}l08gn29smFU literal 0 HcmV?d00001 diff --git a/test/sample-storage-flat-rgb8-other8-red-opaque-1x1.tga b/test/sample-storage-flat-rgb8-other8-red-opaque-1x1.tga new file mode 100644 index 0000000000000000000000000000000000000000..f1769e1959b3abca98f6e06f2fe55dceb0282a5e GIT binary patch literal 22 VcmZQzU}As)Mg~R(1t91De*gpx0wVwb literal 0 HcmV?d00001 diff --git a/test/sample-storage-flat-rgb8-other8-red-transparent-1x1.tga b/test/sample-storage-flat-rgb8-other8-red-transparent-1x1.tga new file mode 100644 index 0000000000000000000000000000000000000000..482043a27be314af64f272aba3dc3e8072aef9f8 GIT binary patch literal 22 VcmZQzU}As)Mg~R(1t8}?0{{aK0VDtb literal 0 HcmV?d00001 diff --git a/test/sample-storage-flat-rgb8-other8-white-opaque-1x1.tga b/test/sample-storage-flat-rgb8-other8-white-opaque-1x1.tga new file mode 100644 index 0000000000000000000000000000000000000000..82b53ffdead9b6d3c4a881e0a9eacab08dd6cec3 GIT binary patch literal 22 VcmZQzU}As)Mg~R(1&04X000XH1R($b literal 0 HcmV?d00001 diff --git a/test/sample-storage-flat-rgb8-other8-white-transparent-1x1.tga b/test/sample-storage-flat-rgb8-other8-white-transparent-1x1.tga new file mode 100644 index 0000000000000000000000000000000000000000..6757bcf52d586f90c6b558ba3c347ceb2295cf7d GIT binary patch literal 22 XcmZQzU}As)Mg~R(1&06s|1$sp3I_us literal 0 HcmV?d00001 diff --git a/test/sample-storage-rle-grayscale8-alpha8-white-opaque-2x2.tga b/test/sample-storage-rle-grayscale8-alpha8-white-opaque-2x2.tga new file mode 100644 index 0000000000000000000000000000000000000000..bc3824950b9fa77575e711824e5de31fc1befdce GIT binary patch literal 21 VcmZQz;AVgUCI%)30gmSX{{aR30;vE1 literal 0 HcmV?d00001 diff --git a/test/sample-storage-rle-grayscale8-alpha8-white-transparent-2x2.tga b/test/sample-storage-rle-grayscale8-alpha8-white-transparent-2x2.tga new file mode 100644 index 0000000000000000000000000000000000000000..99fd402b396e718a15b70a791bc5c9f32f002c9c GIT binary patch literal 21 VcmZQz;AVgUCI%)30gmSX3;+cE0jdB1 literal 0 HcmV?d00001 diff --git a/test/sample-storage-rle-grayscale8-noalpha-white-opaque-2x2.tga b/test/sample-storage-rle-grayscale8-noalpha-white-opaque-2x2.tga new file mode 100644 index 0000000000000000000000000000000000000000..5c17d30388b3e0f16e67d03070f6c0d6d8ddedeb GIT binary patch literal 20 UcmZQz;AVgUCI%)34u3=IGOg9so504(kXBme*a literal 0 HcmV?d00001 diff --git a/test/sample-storage-rle-rgb8-noalpha-color-opaque-8x8.tga b/test/sample-storage-rle-rgb8-noalpha-color-opaque-8x8.tga new file mode 100644 index 0000000000000000000000000000000000000000..ecaa65e88d625bcc5845749373cb56b86d0c78ae GIT binary patch literal 82 lcmZQz;9`IQ4h9Ye35MqX3_$$o literal 0 HcmV?d00001 diff --git a/test/sample-storage-rle-rgb8-other8-color-opaque-8x8.tga b/test/sample-storage-rle-rgb8-other8-color-opaque-8x8.tga new file mode 100644 index 0000000000000000000000000000000000000000..a815da29bd629b1528f10903924fb3837d40af27 GIT binary patch literal 98 ncmZQz;9`IQ4h9Ye1%~GT3=IF9{{sO57Esy$W`_Sj#dui&DPk}~ literal 0 HcmV?d00001 diff --git a/test/sample-storage-rle-rgb8-other8-color-transparent-2x2.tga b/test/sample-storage-rle-rgb8-other8-color-transparent-2x2.tga new file mode 100644 index 0000000000000000000000000000000000000000..40a2d540045ff48f172978947dc02aeb2eff4e09 GIT binary patch literal 35 ecmZQz;9`IQCI%)31qSB-3=IE)04NG1fDiyt3kfLz literal 0 HcmV?d00001 diff --git a/test/sample-storage-rle-rgb8-other8-color-transparent-8x8.tga b/test/sample-storage-rle-rgb8-other8-color-transparent-8x8.tga new file mode 100644 index 0000000000000000000000000000000000000000..cb502ceaad7c5ef8a9834a0d81c0a01f0a565e7a GIT binary patch literal 98 ocmZQz;9`IQ4h9Ye1%~GT3=IF9|Ns9_hy_&kznS4bP%&N>07^3~M*si- literal 0 HcmV?d00001 diff --git a/test/sample-storage-rle-rgb8-other8-red-opaque-2x2.tga b/test/sample-storage-rle-rgb8-other8-red-opaque-2x2.tga new file mode 100644 index 0000000000000000000000000000000000000000..54b6555b525b2e56879eceb311ed4575d34f3648 GIT binary patch literal 23 XcmZQz;9`IQCI%)31%_q@hX4No2Ymvt literal 0 HcmV?d00001 diff --git a/test/sample-storage-rle-rgb8-other8-red-transparent-2x2.tga b/test/sample-storage-rle-rgb8-other8-red-transparent-2x2.tga new file mode 100644 index 0000000000000000000000000000000000000000..98f9a51b53aadc0e419d925adc948d9b0f7d9dae GIT binary patch literal 23 XcmZQz;9`IQCI%)31%_q@hW`uz27Upt literal 0 HcmV?d00001 diff --git a/test/sample-storage-rle-rgb8-other8-white-opaque-2x2.tga b/test/sample-storage-rle-rgb8-other8-white-opaque-2x2.tga new file mode 100644 index 0000000000000000000000000000000000000000..82efde75c7254b04a692dd3a358178e9088f063c GIT binary patch literal 23 WcmZQz;9`IQCI%)31%~GTKmY&^b_A{f literal 0 HcmV?d00001 diff --git a/test/sample-storage-rle-rgb8-other8-white-transparent-2x2.tga b/test/sample-storage-rle-rgb8-other8-white-transparent-2x2.tga new file mode 100644 index 0000000000000000000000000000000000000000..bac65e467e070db58df4ce0fe430feeeb122ccfd GIT binary patch literal 23 YcmZQz;9`IQCI%)31%~GT|Nk=p01bBouK)l5 literal 0 HcmV?d00001 diff --git a/test/test.py b/test/test.py index 2e95da66..4b44c548 100755 --- a/test/test.py +++ b/test/test.py @@ -454,6 +454,82 @@ def start_from(items, value): crunch(in_path, out_path, clone_name) +for encoding in [ + "flat", + "rle", +]: + for alpha_type in [ + "noalpha", + "alpha8", + "other8", + ]: + for alpha_name in [ + "opaque", + "transparent", + ]: + for color_type in [ + "grayscale8", + "rgb8", + ]: + for color_name, base_width in [ + ("white", 1), + ("red", 1), + ("color", 2), + ]: + if encoding == "rle": + if color_name == "color": + width_list = [base_width, base_width * 4] + else: + width_list = [base_width * 2] + else: + width_list = [base_width] + + for width in width_list: + for out_format in all_format_list: + if out_format in lossy_format_list and color_name == "color": + # Lossy or block-compressed formats require a larger color test image to + # preserve clearly distinguishable red/green/blue/white regions. + # Smaller images can introduce unavoidable artifacts from JPEG chroma + # subsampling or block-based texture compression (CRN/DDS/KTX), making + # visual validation unreliable. + # + # A minimum image width of 8 gives each color quadrant at least 4×4 pixels: + # ______________ + # | | | + # | red | green | + # | | | + # |‒‒‒‒‒‒‒‒‒‒‒‒‒‒| + # | | | + # | blue | white | + # | | | + # ‾‾‾‾‾‾‾‾‾‾‾‾‾‾ + if width < 8: + continue + + if color_type == "grayscale8" and not color_name == "white": + continue + + if alpha_type == "noalpha" and alpha_name == "transparent": + continue + + base_name = f"sample-storage-{encoding}-{color_type}-{alpha_type}-{color_name}-{alpha_name}-{width}x{width}" + + in_format = 'tga' + in_path = f"test/{base_name}.{in_format}" + + out_alpha_name = alpha_name + + if out_format in opaque_format_list: + out_alpha_name = "opaque" + + out_dir = f"build/test/{in_format}-to-all-{out_alpha_name}" + out_path = f"{out_dir}/{base_name}.{out_format}" + + clone_name = f"{color_name}_{out_alpha_name}_{width}_{in_format}_{out_format}" + + mkdir(out_dir) + crunch(in_path, out_path, clone_name) + example(1, "test/sample-icon-unvanquished-64x64.png", None, None, options=["i"]) mkdir("build/test/example1-icon-png-to-dds")