From 21e42e98c8bcb699099a655a6bef37c70e99736f Mon Sep 17 00:00:00 2001 From: Sandy Carter Date: Wed, 24 Aug 2022 09:55:31 -0400 Subject: [PATCH] pixelformats: Add BGRA4 --- include/bimg/bimg.h | 1 + src/image.cpp | 11 ++++++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/include/bimg/bimg.h b/include/bimg/bimg.h index 5b03cfc..a46a29a 100644 --- a/include/bimg/bimg.h +++ b/include/bimg/bimg.h @@ -122,6 +122,7 @@ namespace bimg RGBA32U, RGBA32F, R5G6B5, + BGRA4, RGBA4, RGB5A1, RGB10A2, diff --git a/src/image.cpp b/src/image.cpp index bfb6e38..8dbe5d3 100644 --- a/src/image.cpp +++ b/src/image.cpp @@ -97,6 +97,7 @@ namespace bimg { 128, 1, 1, 16, 1, 1, 0, 0, 32, 32, 32, 32, uint8_t(bx::EncodingType::Uint ) }, // RGBA32U { 128, 1, 1, 16, 1, 1, 0, 0, 32, 32, 32, 32, uint8_t(bx::EncodingType::Float) }, // RGBA32F { 16, 1, 1, 2, 1, 1, 0, 0, 5, 6, 5, 0, uint8_t(bx::EncodingType::Unorm) }, // R5G6B5 + { 16, 1, 1, 2, 1, 1, 0, 0, 4, 4, 4, 4, uint8_t(bx::EncodingType::Unorm) }, // BGRA4 { 16, 1, 1, 2, 1, 1, 0, 0, 4, 4, 4, 4, uint8_t(bx::EncodingType::Unorm) }, // RGBA4 { 16, 1, 1, 2, 1, 1, 0, 0, 5, 5, 5, 1, uint8_t(bx::EncodingType::Unorm) }, // RGB5A1 { 32, 1, 1, 4, 1, 1, 0, 0, 10, 10, 10, 2, uint8_t(bx::EncodingType::Unorm) }, // RGB10A2 @@ -187,10 +188,11 @@ namespace bimg "RGBA32U", // RGBA32U "RGBA32F", // RGBA32F "R5G6B5", // R5G6B5 + "BGRA4", // BGRA4 "RGBA4", // RGBA4 "RGB5A1", // RGB5A1 "RGB10A2", // RGB10A2 - "RG11B10F", // RG11B10F + "RG11B10F", // RG11B10F "", // UnknownDepth "D16", // D16 "D24", // D24 @@ -1109,6 +1111,7 @@ namespace bimg { bx::packRgba32U, bx::unpackRgba32U }, // RGBA32U { bx::packRgba32F, bx::unpackRgba32F }, // RGBA32F { bx::packR5G6B5, bx::unpackR5G6B5 }, // R5G6B5 + { bx::packBgra4, bx::unpackBgra4 }, // BGRA4 { bx::packRgba4, bx::unpackRgba4 }, // RGBA4 { bx::packRgb5a1, bx::unpackRgb5a1 }, // RGB5A1 { bx::packRgb10A2, bx::unpackRgb10A2 }, // RGB10A2 @@ -3480,6 +3483,7 @@ namespace bimg { DDS_A16B16G16R16F, TextureFormat::RGBA16F, false }, { DDS_A32B32G32R32F, TextureFormat::RGBA32F, false }, { DDS_R5G6B5, TextureFormat::R5G6B5, false }, + { DDS_A4R4G4B4, TextureFormat::BGRA4, false }, { DDS_A4R4G4B4, TextureFormat::RGBA4, false }, { DDS_A1R5G5B5, TextureFormat::RGB5A1, false }, { DDS_A2B10G10R10, TextureFormat::RGB10A2, false }, @@ -3520,6 +3524,7 @@ namespace bimg { DDS_FORMAT_R32G32B32A32_UINT, TextureFormat::RGBA32U, false }, { DDS_FORMAT_R32G32B32A32_FLOAT, TextureFormat::RGBA32F, false }, { DDS_FORMAT_B5G6R5_UNORM, TextureFormat::R5G6B5, false }, + { DDS_FORMAT_B4G4R4A4_UNORM, TextureFormat::BGRA4, false }, { DDS_FORMAT_B4G4R4A4_UNORM, TextureFormat::RGBA4, false }, { DDS_FORMAT_B5G5R5A1_UNORM, TextureFormat::RGB5A1, false }, { DDS_FORMAT_R10G10B10A2_UNORM, TextureFormat::RGB10A2, false }, @@ -3539,6 +3544,7 @@ namespace bimg { 8, DDPF_LUMINANCE, { 0x000000ff, 0x00000000, 0x00000000, 0x00000000 }, TextureFormat::R8 }, { 16, DDPF_BUMPDUDV, { 0x000000ff, 0x0000ff00, 0x00000000, 0x00000000 }, TextureFormat::RG8S }, { 16, DDPF_RGB, { 0x0000ffff, 0x00000000, 0x00000000, 0x00000000 }, TextureFormat::R16U }, + { 16, DDPF_RGB|DDPF_ALPHAPIXELS, { 0x0000000f, 0x000000f0, 0x00000f00, 0x0000f000 }, TextureFormat::BGRA4 }, { 16, DDPF_RGB|DDPF_ALPHAPIXELS, { 0x00000f00, 0x000000f0, 0x0000000f, 0x0000f000 }, TextureFormat::RGBA4 }, { 16, DDPF_RGB, { 0x0000f800, 0x000007e0, 0x0000001f, 0x00000000 }, TextureFormat::R5G6B5 }, { 16, DDPF_RGB, { 0x00007c00, 0x000003e0, 0x0000001f, 0x00008000 }, TextureFormat::RGB5A1 }, @@ -3967,6 +3973,7 @@ namespace bimg { KTX_RGBA32UI, KTX_ZERO, KTX_RGBA, KTX_UNSIGNED_INT, }, // RGBA32U { KTX_RGBA32F, KTX_ZERO, KTX_RGBA, KTX_FLOAT, }, // RGBA32F { KTX_RGB565, KTX_ZERO, KTX_RGB, KTX_UNSIGNED_SHORT_5_6_5, }, // R5G6B5 + { KTX_RGBA4, KTX_ZERO, KTX_BGRA, KTX_UNSIGNED_SHORT_4_4_4_4, }, // BGRA4 { KTX_RGBA4, KTX_ZERO, KTX_RGBA, KTX_UNSIGNED_SHORT_4_4_4_4, }, // RGBA4 { KTX_RGB5_A1, KTX_ZERO, KTX_RGBA, KTX_UNSIGNED_SHORT_5_5_5_1, }, // RGB5A1 { KTX_RGB10_A2, KTX_ZERO, KTX_RGBA, KTX_UNSIGNED_INT_2_10_10_10_REV, }, // RGB10A2 @@ -4147,6 +4154,7 @@ namespace bimg #define PVR3_RGBA16 PVR3_MAKE8CC('r', 'g', 'b', 'a', 16, 16, 16, 16) #define PVR3_RGBA32 PVR3_MAKE8CC('r', 'g', 'b', 'a', 32, 32, 32, 32) #define PVR3_RGB565 PVR3_MAKE8CC('r', 'g', 'b', 0, 5, 6, 5, 0) +#define PVR3_BGRA4 PVR3_MAKE8CC('b', 'g', 'r', 'a', 4, 4, 4, 4) #define PVR3_RGBA4 PVR3_MAKE8CC('r', 'g', 'b', 'a', 4, 4, 4, 4) #define PVR3_RGBA51 PVR3_MAKE8CC('r', 'g', 'b', 'a', 5, 5, 5, 1) #define PVR3_RGB10A2 PVR3_MAKE8CC('r', 'g', 'b', 'a', 10, 10, 10, 2) @@ -4193,6 +4201,7 @@ namespace bimg { PVR3_RGBA32, PVR3_CHANNEL_TYPE_ANY, TextureFormat::RGBA32U }, { PVR3_RGBA32, PVR3_CHANNEL_TYPE_FLOAT, TextureFormat::RGBA32F }, { PVR3_RGB565, PVR3_CHANNEL_TYPE_ANY, TextureFormat::R5G6B5 }, + { PVR3_BGRA4, PVR3_CHANNEL_TYPE_ANY, TextureFormat::BGRA4 }, { PVR3_RGBA4, PVR3_CHANNEL_TYPE_ANY, TextureFormat::RGBA4 }, { PVR3_RGBA51, PVR3_CHANNEL_TYPE_ANY, TextureFormat::RGB5A1 }, { PVR3_RGB10A2, PVR3_CHANNEL_TYPE_ANY, TextureFormat::RGB10A2 },