KTX_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR = 0x93DC,
KTX_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR = 0x93DD,
+ // Uncompressed Alpha format
+ KTX_UNCOMPRESSED_ALPHA8 = 0x1906,
+
KTX_SENTINEL = ~0u
};
KTX_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR,
KTX_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR,
+ // Uncompressed Alpha format
+ KTX_UNCOMPRESSED_ALPHA8,
+
KTX_SENTINEL
};
break;
}
+ // Uncompressed Alpha format
+ case KTX_UNCOMPRESSED_ALPHA8:
+ {
+ format = A8;
+ break;
+ }
+
default:
{
return false;
const bool textureHasNoMipmapLevels = fileHeader.numberOfMipmapLevels == 0 || fileHeader.numberOfMipmapLevels == 1;
const bool keyValueDataNotTooLarge = fileHeader.bytesOfKeyValueData <= MAX_BYTES_OF_KEYVALUE_DATA;
- const bool headerIsValid = signatureGood && fileEndiannessMatchesSystemEndianness && glTypeIsCompressed &&
- glTypeSizeCompatibleWithCompressedTex && glFormatCompatibleWithCompressedTex &&
- textureIsNot3D && textureIsNotAnArray && textureIsNotACubemap && textureHasNoMipmapLevels &&
- glInternalFormatIsSupportedCompressedTex & keyValueDataNotTooLarge;
+ bool headerIsValid = signatureGood && fileEndiannessMatchesSystemEndianness &&
+ glTypeSizeCompatibleWithCompressedTex && textureIsNot3D && textureIsNotAnArray &&
+ textureIsNotACubemap && textureHasNoMipmapLevels && keyValueDataNotTooLarge;
+
+ if( !glTypeIsCompressed ) // check for uncompressed Alpha
+ {
+ const bool isAlpha = ( ( fileHeader.glBaseInternalFormat == KTX_UNCOMPRESSED_ALPHA8 ) && ( fileHeader.glFormat == KTX_UNCOMPRESSED_ALPHA8 ) &&
+ ( fileHeader.glInternalFormat == KTX_UNCOMPRESSED_ALPHA8 ) );
+ headerIsValid = headerIsValid && isAlpha;
+ }
+ else
+ {
+ headerIsValid = headerIsValid && glFormatCompatibleWithCompressedTex && glInternalFormatIsSupportedCompressedTex;
+ }
+
if( !headerIsValid )
{
DALI_LOG_ERROR( "KTX file invalid or using unsupported features. Header tests: sig: %d, endian: %d, gl_type: %d, gl_type_size: %d, gl_format: %d, internal_format: %d, depth: %d, array: %d, faces: %d, mipmap: %d, vey-vals: %d.\n", 0+signatureGood, 0+fileEndiannessMatchesSystemEndianness, 0+glTypeIsCompressed, 0+glTypeSizeCompatibleWithCompressedTex, 0+glFormatCompatibleWithCompressedTex, 0+glInternalFormatIsSupportedCompressedTex, 0+textureIsNot3D, 0+textureIsNotAnArray, 0+textureIsNotACubemap, 0+textureHasNoMipmapLevels, 0+keyValueDataNotTooLarge);