int main() { int Error = 0; for(int FormatIndex = gli::FORMAT_FIRST, FormatCount = gli::FORMAT_LAST; FormatIndex < FormatCount; ++FormatIndex) { gli::target const Target = gli::TARGET_CUBE; gli::format Format = static_cast<gli::format>(FormatIndex); gli::size_t const Layers = gli::is_target_array(Target) ? 2 : 1; gli::size_t const Faces = gli::is_target_cube(Target) ? 6 : 1; gli::ivec3 const BlockDimensions = gli::block_dimensions(Format); gli::texture Texture(Target, Format, BlockDimensions * gli::ivec3(BlockDimensions.y, BlockDimensions.x, 1), Layers, Faces, 2); Texture.clear(); gli::save(Texture, "test_cube.dds"); gli::texture TextureDDS(gli::load("test_cube.dds")); Error += Texture == TextureDDS ? 0 : 1; gli::save(Texture, "test_cube.ktx"); gli::texture TextureKTX(gli::load("test_cube.ktx")); Error += Texture == TextureKTX ? 0 : 1; gli::save(Texture, "test_cube.kmg"); gli::texture TextureKMG(gli::load("test_cube.kmg")); Error += Texture == TextureKMG ? 0 : 1; assert(!Error); } return Error; }
int test(params const & Params) { int Error(0); gli::texture TextureDDS(gli::load(path(Params.Filename, ".dds"))); Error += TextureDDS.format() == Params.Format ? 0 : 1; gli::save(TextureDDS, Params.Filename + ".kmg"); gli::texture TextureSavedKMG(gli::load(Params.Filename + ".kmg")); Error += TextureSavedKMG.format() == Params.Format ? 0 : 1; Error += TextureSavedKMG == TextureDDS ? 0 : 1; gli::save(TextureDDS, Params.Filename + ".dds"); gli::texture TextureSavedDDS(gli::load(Params.Filename + ".dds")); Error += TextureSavedDDS.format() == Params.Format ? 0 : 1; Error += TextureSavedDDS == TextureDDS ? 0 : 1; return Error; }
int test() { int Error(0); gli::texture2d TextureA(gli::load(path("kueken7_rgba16_sfloat.ktx"))); GLI_ASSERT(!TextureA.empty()); gli::texture2d Convert = gli::convert(TextureA, gli::FORMAT_RG11B10_UFLOAT_PACK32); gli::save(Convert, "kueken7_rg11b10_ufloat.dds"); gli::save(Convert, "kueken7_rg11b10_ufloat.ktx"); gli::texture2d TextureDDS(gli::load("kueken7_rg11b10_ufloat.dds")); GLI_ASSERT(!TextureDDS.empty()); gli::texture2d TextureKTX(gli::load("kueken7_rg11b10_ufloat.ktx")); GLI_ASSERT(!TextureKTX.empty()); Error += TextureDDS == TextureKTX ? 0 : 1; Error += TextureDDS == Convert ? 0 : 1; GLI_ASSERT(!Error); return Error; }