@@ -28,6 +28,10 @@ import {
2828 RGB_ETC2_Format ,
2929 RGB_PVRTC_4BPPV1_Format ,
3030 RGB_S3TC_DXT1_Format ,
31+ SIGNED_RED_GREEN_RGTC2_Format ,
32+ SIGNED_RED_RGTC1_Format ,
33+ RED_GREEN_RGTC2_Format ,
34+ RED_RGTC1_Format ,
3135 RGBFormat ,
3236 RGFormat ,
3337 RedFormat ,
@@ -58,6 +62,8 @@ import {
5862 VK_FORMAT_BC1_RGB_UNORM_BLOCK ,
5963 VK_FORMAT_BC3_SRGB_BLOCK ,
6064 VK_FORMAT_BC3_UNORM_BLOCK ,
65+ VK_FORMAT_BC4_SNORM_BLOCK ,
66+ VK_FORMAT_BC4_UNORM_BLOCK ,
6167 VK_FORMAT_BC5_SNORM_BLOCK ,
6268 VK_FORMAT_BC5_UNORM_BLOCK ,
6369 VK_FORMAT_BC7_SRGB_BLOCK ,
@@ -931,25 +937,25 @@ const UNCOMPRESSED_FORMATS = new Set( [ RGBAFormat, RGBFormat, RGFormat, RedForm
931937const FORMAT_MAP = {
932938
933939 [ VK_FORMAT_R32G32B32A32_SFLOAT ] : RGBAFormat ,
934- [ VK_FORMAT_R16G16B16A16_SFLOAT ] : RGBAFormat ,
935- [ VK_FORMAT_R8G8B8A8_UNORM ] : RGBAFormat ,
936- [ VK_FORMAT_R8G8B8A8_SRGB ] : RGBAFormat ,
937-
938940 [ VK_FORMAT_R32G32_SFLOAT ] : RGFormat ,
939- [ VK_FORMAT_R16G16_SFLOAT ] : RGFormat ,
940- [ VK_FORMAT_R8G8_UNORM ] : RGFormat ,
941- [ VK_FORMAT_R8G8_SRGB ] : RGFormat ,
942-
943941 [ VK_FORMAT_R32_SFLOAT ] : RedFormat ,
942+
943+ [ VK_FORMAT_R16G16B16A16_SFLOAT ] : RGBAFormat ,
944+ [ VK_FORMAT_R16G16_SFLOAT ] : RGFormat ,
944945 [ VK_FORMAT_R16_SFLOAT ] : RedFormat ,
946+
947+ [ VK_FORMAT_R8G8B8A8_SRGB ] : RGBAFormat ,
948+ [ VK_FORMAT_R8G8B8A8_UNORM ] : RGBAFormat ,
949+ [ VK_FORMAT_R8G8_SRGB ] : RGFormat ,
950+ [ VK_FORMAT_R8G8_UNORM ] : RGFormat ,
945951 [ VK_FORMAT_R8_SRGB ] : RedFormat ,
946952 [ VK_FORMAT_R8_UNORM ] : RedFormat ,
947953
948954 [ VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 ] : RGBFormat ,
949955 [ VK_FORMAT_B10G11R11_UFLOAT_PACK32 ] : RGBFormat ,
950956
951- [ VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK ] : RGB_ETC2_Format ,
952957 [ VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK ] : RGBA_ETC2_EAC_Format ,
958+ [ VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK ] : RGB_ETC2_Format ,
953959
954960 [ VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT ] : RGBA_ASTC_4x4_Format ,
955961 [ VK_FORMAT_ASTC_4x4_SRGB_BLOCK ] : RGBA_ASTC_4x4_Format ,
@@ -958,16 +964,19 @@ const FORMAT_MAP = {
958964 [ VK_FORMAT_ASTC_6x6_SRGB_BLOCK ] : RGBA_ASTC_6x6_Format ,
959965 [ VK_FORMAT_ASTC_6x6_UNORM_BLOCK ] : RGBA_ASTC_6x6_Format ,
960966
961- [ VK_FORMAT_BC1_RGBA_UNORM_BLOCK ] : RGBA_S3TC_DXT1_Format ,
962967 [ VK_FORMAT_BC1_RGBA_SRGB_BLOCK ] : RGBA_S3TC_DXT1_Format ,
963- [ VK_FORMAT_BC1_RGB_UNORM_BLOCK ] : RGB_S3TC_DXT1_Format ,
968+ [ VK_FORMAT_BC1_RGBA_UNORM_BLOCK ] : RGBA_S3TC_DXT1_Format ,
964969 [ VK_FORMAT_BC1_RGB_SRGB_BLOCK ] : RGB_S3TC_DXT1_Format ,
970+ [ VK_FORMAT_BC1_RGB_UNORM_BLOCK ] : RGB_S3TC_DXT1_Format ,
965971
966972 [ VK_FORMAT_BC3_SRGB_BLOCK ] : RGBA_S3TC_DXT3_Format ,
967973 [ VK_FORMAT_BC3_UNORM_BLOCK ] : RGBA_S3TC_DXT3_Format ,
968974
969- [ VK_FORMAT_BC5_SNORM_BLOCK ] : RGBA_S3TC_DXT5_Format ,
970- [ VK_FORMAT_BC5_UNORM_BLOCK ] : RGBA_S3TC_DXT5_Format ,
975+ [ VK_FORMAT_BC4_SNORM_BLOCK ] : SIGNED_RED_RGTC1_Format ,
976+ [ VK_FORMAT_BC4_UNORM_BLOCK ] : RED_RGTC1_Format ,
977+
978+ [ VK_FORMAT_BC5_SNORM_BLOCK ] : SIGNED_RED_GREEN_RGTC2_Format ,
979+ [ VK_FORMAT_BC5_UNORM_BLOCK ] : RED_GREEN_RGTC2_Format ,
971980
972981 [ VK_FORMAT_BC7_SRGB_BLOCK ] : RGBA_BPTC_Format ,
973982 [ VK_FORMAT_BC7_UNORM_BLOCK ] : RGBA_BPTC_Format ,
@@ -977,31 +986,50 @@ const FORMAT_MAP = {
977986const TYPE_MAP = {
978987
979988 [ VK_FORMAT_R32G32B32A32_SFLOAT ] : FloatType ,
980- [ VK_FORMAT_R16G16B16A16_SFLOAT ] : HalfFloatType ,
981- [ VK_FORMAT_R8G8B8A8_UNORM ] : UnsignedByteType ,
982- [ VK_FORMAT_R8G8B8A8_SRGB ] : UnsignedByteType ,
983-
984989 [ VK_FORMAT_R32G32_SFLOAT ] : FloatType ,
985- [ VK_FORMAT_R16G16_SFLOAT ] : HalfFloatType ,
986- [ VK_FORMAT_R8G8_UNORM ] : UnsignedByteType ,
987- [ VK_FORMAT_R8G8_SRGB ] : UnsignedByteType ,
988-
989990 [ VK_FORMAT_R32_SFLOAT ] : FloatType ,
991+
992+ [ VK_FORMAT_R16G16B16A16_SFLOAT ] : HalfFloatType ,
993+ [ VK_FORMAT_R16G16_SFLOAT ] : HalfFloatType ,
990994 [ VK_FORMAT_R16_SFLOAT ] : HalfFloatType ,
995+
996+ [ VK_FORMAT_R8G8B8A8_SRGB ] : UnsignedByteType ,
997+ [ VK_FORMAT_R8G8B8A8_UNORM ] : UnsignedByteType ,
998+ [ VK_FORMAT_R8G8_SRGB ] : UnsignedByteType ,
999+ [ VK_FORMAT_R8G8_UNORM ] : UnsignedByteType ,
9911000 [ VK_FORMAT_R8_SRGB ] : UnsignedByteType ,
9921001 [ VK_FORMAT_R8_UNORM ] : UnsignedByteType ,
9931002
9941003 [ VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 ] : UnsignedInt5999Type ,
9951004 [ VK_FORMAT_B10G11R11_UFLOAT_PACK32 ] : UnsignedInt101111Type ,
9961005
997- [ VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK ] : UnsignedByteType ,
9981006 [ VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK ] : UnsignedByteType ,
1007+ [ VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK ] : UnsignedByteType ,
9991008
10001009 [ VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT ] : HalfFloatType ,
1010+ [ VK_FORMAT_ASTC_4x4_SRGB_BLOCK ] : UnsignedByteType ,
1011+ [ VK_FORMAT_ASTC_4x4_UNORM_BLOCK ] : UnsignedByteType ,
10011012 [ VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT ] : HalfFloatType ,
10021013 [ VK_FORMAT_ASTC_6x6_SRGB_BLOCK ] : UnsignedByteType ,
10031014 [ VK_FORMAT_ASTC_6x6_UNORM_BLOCK ] : UnsignedByteType ,
10041015
1016+ [ VK_FORMAT_BC1_RGBA_SRGB_BLOCK ] : UnsignedByteType ,
1017+ [ VK_FORMAT_BC1_RGBA_UNORM_BLOCK ] : UnsignedByteType ,
1018+ [ VK_FORMAT_BC1_RGB_SRGB_BLOCK ] : UnsignedByteType ,
1019+ [ VK_FORMAT_BC1_RGB_UNORM_BLOCK ] : UnsignedByteType ,
1020+
1021+ [ VK_FORMAT_BC3_SRGB_BLOCK ] : UnsignedByteType ,
1022+ [ VK_FORMAT_BC3_UNORM_BLOCK ] : UnsignedByteType ,
1023+
1024+ [ VK_FORMAT_BC4_SNORM_BLOCK ] : UnsignedByteType ,
1025+ [ VK_FORMAT_BC4_UNORM_BLOCK ] : UnsignedByteType ,
1026+
1027+ [ VK_FORMAT_BC5_SNORM_BLOCK ] : UnsignedByteType ,
1028+ [ VK_FORMAT_BC5_UNORM_BLOCK ] : UnsignedByteType ,
1029+
1030+ [ VK_FORMAT_BC7_SRGB_BLOCK ] : UnsignedByteType ,
1031+ [ VK_FORMAT_BC7_UNORM_BLOCK ] : UnsignedByteType ,
1032+
10051033} ;
10061034
10071035async function createRawTexture ( container ) {
@@ -1014,6 +1042,13 @@ async function createRawTexture( container ) {
10141042
10151043 }
10161044
1045+ // TODO: Merge the TYPE_MAP warning into the thrown error above, after r190.
1046+ if ( TYPE_MAP [ vkFormat ] === undefined ) {
1047+
1048+ console . warn ( 'THREE.KTX2Loader: Missing ".type" for vkFormat: ' + vkFormat ) ;
1049+
1050+ }
1051+
10171052 //
10181053
10191054 let zstd ;
0 commit comments