| 1736 | } |
| 1737 | |
| 1738 | void ValidationContext::validateCreateAndTranscode() { |
| 1739 | KTXTexture2 texture{nullptr}; |
| 1740 | ktxTextureCreateFlags flags = KTX_TEXTURE_CREATE_LOAD_IMAGE_DATA_BIT; |
| 1741 | |
| 1742 | if (checkGLTFBasisU) |
| 1743 | flags |= KTX_TEXTURE_CREATE_CHECK_GLTF_BASISU_BIT; |
| 1744 | |
| 1745 | ktx_error_code_e result = createKTXTexture(flags, texture.pHandle()); |
| 1746 | |
| 1747 | if (numError == 0 && numWarning == 0) { |
| 1748 | switch (result) { |
| 1749 | case KTX_UNSUPPORTED_FEATURE: |
| 1750 | warning(Validator::UnsupportedFeature); |
| 1751 | break; |
| 1752 | |
| 1753 | case KTX_DECOMPRESS_LENGTH_ERROR: |
| 1754 | error(LevelIndex::UncompressedByteLengthMismatch, |
| 1755 | toString(ktxSupercmpScheme(header.supercompressionScheme))); |
| 1756 | break; |
| 1757 | |
| 1758 | case KTX_DECOMPRESS_CHECKSUM_ERROR: |
| 1759 | error(Validator::DecompressChecksumError, |
| 1760 | toString(ktxSupercmpScheme(header.supercompressionScheme))); |
| 1761 | break; |
| 1762 | |
| 1763 | case KTX_SUCCESS: |
| 1764 | if (parsedColorModel == KHR_DF_MODEL_ETC1S) |
| 1765 | result = ktxTexture2_TranscodeBasis(texture.handle(), KTX_TTF_ETC2_RGBA, 0); |
| 1766 | else if (parsedColorModel == KHR_DF_MODEL_UASTC) |
| 1767 | result = ktxTexture2_TranscodeBasis(texture.handle(), KTX_TTF_ASTC_4x4_RGBA, 0); |
| 1768 | |
| 1769 | if (result != KTX_SUCCESS) |
| 1770 | error(Validator::TranscodeFailure, toString(*parsedColorModel), ktxErrorString(result)); |
| 1771 | break; |
| 1772 | |
| 1773 | default: |
| 1774 | fatal(Validator::CreateFailure, ktxErrorString(result)); |
| 1775 | break; |
| 1776 | } |
| 1777 | } else if (result == KTX_SUCCESS && numError != 0) { |
| 1778 | warning(Validator::SupportedNonConformantFile); |
| 1779 | } |
| 1780 | } |
| 1781 | |
| 1782 | } // namespace ktx |
nothing calls this directly
no test coverage detected