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

Method compareLevelIndex

tools/ktx/command_compare.cpp:1498–1529  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1496}
1497
1498void CommandCompare::compareLevelIndex(PrintDiff& diff, InputStreams& streams) {
1499 if (options.ignoreIndex != IgnoreIndex::none) return;
1500
1501 diff.setContext("Level Index\n\n");
1502
1503 const uint32_t numLevels[] = {
1504 std::max(1u, headers[0].levelCount),
1505 std::max(1u, headers[1].levelCount)
1506 };
1507 const uint32_t maxNumLevels = std::max(numLevels[0], numLevels[1]);
1508
1509 for (uint32_t level = 0; level < maxNumLevels; ++level) {
1510 const auto levelIndexEntryOffset = sizeof(KTX_header2) + level * sizeof(ktxLevelIndexEntry);
1511 std::optional<ktxLevelIndexEntry> levelIndexEntry[2];
1512 for (std::size_t i = 0; i < streams.size(); ++i)
1513 if (level < numLevels[i]) {
1514 ktxLevelIndexEntry entry;
1515 read(streams[i], levelIndexEntryOffset, &entry, sizeof(entry), "the level index");
1516 levelIndexEntry[i] = entry;
1517 }
1518
1519 diff << DiffHex(fmt::format("Level{}.byteOffset", level),
1520 fmt::format("/index/levels/{}/byteOffset", level),
1521 OPT_FIELDS(levelIndexEntry, byteOffset));
1522 diff << Diff(fmt::format("Level{}.byteLength", level),
1523 fmt::format("/index/levels/{}/byteLength", level),
1524 OPT_FIELDS(levelIndexEntry, byteLength));
1525 diff << Diff(fmt::format("Level{}.uncompressedByteLength", level),
1526 fmt::format("/index/levels/{}/uncompressedByteLength", level),
1527 OPT_FIELDS(levelIndexEntry, uncompressedByteLength));
1528 }
1529}
1530
1531void CommandCompare::compareDFD(PrintDiff& diff, InputStreams& streams) {
1532 if (options.ignoreDFD == IgnoreDFD::all) return;

Callers

nothing calls this directly

Calls 7

DiffHexClass · 0.85
DiffClass · 0.85
setContextMethod · 0.80
maxFunction · 0.50
readFunction · 0.50
formatFunction · 0.50
sizeMethod · 0.45

Tested by

no test coverage detected