Save a src image data to a ktx file.
Instance a ktxBasisParams. etc1s: unlosslessly compressed, host memory << device memory. uastc: losslessly compressed, host memory == device memory.
Set other BasisLZ / ETC1S or UASTC params to change default quality settings.
Write to disk.
Instance a ktxBasisParams. etc1s: unlosslessly compressed, host memory << device memory. uastc: losslessly compressed, host memory == device memory.
Set other BasisLZ / ETC1S or UASTC params to change default quality settings.
Write to disk.
78 {
80
86 ktxBasisParams params{0};
87 params.structSize = sizeof(params);
88 params.uastc = KTX_TRUE;
89 params.verbose = KTX_FALSE;
90 params.noSSE = KTX_TRUE;
91
92
93 params.threadCount = std::thread::hardware_concurrency();
94 params.compressionLevel = 0;
95 params.qualityLevel = 128;
96
97
98 params.uastcFlags = KTX_PACK_UASTC_LEVEL_FASTEST;
99 params.uastcRDO = KTX_TRUE;
100 params.uastcRDONoMultithreading = KTX_TRUE;
101
105 KTX_CHECK(ktxTexture2_CompressBasisEx(texture, ¶ms))
106
107
110 std::filesystem::create_directories(std::filesystem::path(filePath).parent_path());
111 ktxTexture_WriteToNamedFile(ktxTexture(texture), filePath.c_str());
112 ktxTexture_Destroy(ktxTexture(texture));
113
114#if 0
115
119 KTX_CHECK(ktxTexture2_CreateFromNamedFile(filePath.c_str(), KTX_TEXTURE_CREATE_LOAD_IMAGE_DATA_BIT, &texture))
120 texture->generateMipmaps = KTX_TRUE;
121
125 ktxTexture_WriteToNamedFile(ktxTexture(texture), filePath.c_str());
126 ktxTexture_Destroy(ktxTexture(texture));
127
128#endif
129
130 return true;
131 }
#define SPICES_PROFILE_ZONE