From 64d20ccab8a0c80150681d0a1e37b90375796434 Mon Sep 17 00:00:00 2001 From: Nils Dagsson Moskopp Date: Wed, 18 Oct 2023 00:27:04 +0200 Subject: [PATCH] Generate TGA type 2 and type 10 test textures using loops --- tools/generate_test_textures.lua | 110 +++++++++++++++---------------- 1 file changed, 55 insertions(+), 55 deletions(-) diff --git a/tools/generate_test_textures.lua b/tools/generate_test_textures.lua index e442769..54fb36f 100755 --- a/tools/generate_test_textures.lua +++ b/tools/generate_test_textures.lua @@ -66,7 +66,7 @@ local pixels_grayscale_by_scanline_order = { } local colormap_32bpp = { - { 0, 0, 0, 128 }, + { 0, 0, 0, 127 }, { 255, 0, 0, 255 }, { 0, 255, 0, 255 }, { 0, 0, 255, 255 }, @@ -131,7 +131,7 @@ for _, color_format in ipairs( end end -local _ = { 0, 0, 0, 128 } +local _ = { 0, 0, 0, 127 } local R = { 255, 0, 0, 255 } local G = { 0, 255, 0, 255 } local B = { 0, 0, 255, 255 } @@ -158,25 +158,10 @@ local pixels_rgba_tb = { { _, _, _, _, _, B, _, B, }, } -image_rgba_bt = tga_encoder.image(pixels_rgba_bt) -image_rgba_tb = tga_encoder.image(pixels_rgba_tb) - -image_rgba_bt:save( - "type2_32bpp_bt.tga", - { color_format="B8G8R8A8", compression="RAW", scanline_order = "bottom-top" } -) -image_rgba_tb:save( - "type2_32bpp_tb.tga", - { color_format="B8G8R8A8", compression="RAW", scanline_order = "top-bottom" } -) -image_rgba_bt:save( - "type10_32bpp_bt.tga", - { color_format="B8G8R8A8", compression="RLE", scanline_order = "bottom-top" } -) -image_rgba_tb:save( - "type10_32bpp_tb.tga", - { color_format="B8G8R8A8", compression="RLE", scanline_order = "top-bottom" } -) +local pixels_rgba_by_scanline_order = { + ["bottom-top"] = pixels_rgba_bt, + ["top-bottom"] = pixels_rgba_tb, +} local _ = { 0, 0, 0 } local R = { 255, 0, 0 } @@ -205,38 +190,53 @@ local pixels_rgb_tb = { { _, _, _, _, _, B, _, B, }, } -image_rgb_bt = tga_encoder.image(pixels_rgb_bt) -image_rgb_tb = tga_encoder.image(pixels_rgb_tb) +local pixels_rgb_by_scanline_order = { + ["bottom-top"] = pixels_rgb_bt, + ["top-bottom"] = pixels_rgb_tb, +} -image_rgb_bt:save( - "type2_24bpp_bt.tga", - { color_format="B8G8R8", compression="RAW", scanline_order = "bottom-top" } -) -image_rgb_tb:save( - "type2_24bpp_tb.tga", - { color_format="B8G8R8", compression="RAW", scanline_order = "top-bottom" } -) -image_rgb_bt:save( - "type10_24bpp_bt.tga", - { color_format="B8G8R8", compression="RLE", scanline_order = "bottom-top" } -) -image_rgb_tb:save( - "type10_24bpp_tb.tga", - { color_format="B8G8R8", compression="RLE", scanline_order = "top-bottom" } -) -image_rgb_bt:save( - "type2_16bpp_bt.tga", - { color_format="A1R5G5B5", compression="RAW", scanline_order = "bottom-top" } -) -image_rgb_tb:save( - "type2_16bpp_tb.tga", - { color_format="A1R5G5B5", compression="RAW", scanline_order = "top-bottom" } -) -image_rgb_bt:save( - "type10_16bpp_bt.tga", - { color_format="A1R5G5B5", compression="RLE", scanline_order = "bottom-top" } -) -image_rgb_tb:save( - "type10_16bpp_tb.tga", - { color_format="A1R5G5B5", compression="RLE", scanline_order = "top-bottom" } -) +local tga_type_by_compression = { + ["RAW"] = "2", + ["RLE"] = "10", +} + +local pixels_by_scanline_order_by_color_format = { + ["A1R5G5B5"] = pixels_rgba_by_scanline_order, + ["B8G8R8"] = pixels_rgb_by_scanline_order, + ["B8G8R8A8"] = pixels_rgba_by_scanline_order, +} + +for _, color_format in ipairs( + tga_encoder.features.color_format +) do + for _, compression in ipairs( + tga_encoder.features.compression + ) do + for _, scanline_order in ipairs( + tga_encoder.features.scanline_order + ) do + if ("Y8" ~= color_format) then + local tga_type = tga_type_by_compression[ + compression + ] + local filename = "type" .. tga_type .. + '_' .. color_format .. + '_' .. scanline_order .. + '.tga' + local pixels = pixels_by_scanline_order_by_color_format[ + color_format + ][ + scanline_order + ] + local properties = { + color_format = color_format, + compression = compression, + scanline_order = scanline_order, + } + print(filename) + local image = tga_encoder.image(pixels) + image:save(filename, properties) + end + end + end +end