MCPcopy Create free account
hub / github.com/KhronosGroup/KTX-Software / validateCreateAndTranscode

Method validateCreateAndTranscode

tools/ktx/validate.cpp:1738–1780  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1736}
1737
1738void 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

Callers

nothing calls this directly

Calls 9

warningFunction · 0.85
errorFunction · 0.85
ktxErrorStringFunction · 0.85
fatalClass · 0.85
toStringFunction · 0.70
ktxSupercmpSchemeEnum · 0.50
pHandleMethod · 0.45
handleMethod · 0.45

Tested by

no test coverage detected