/** * Finally, make sure that if we get ETC1 data from a PKM file that we can then * accurately write it out into a KTX file (i.e. transferring the ETC1 data from * the PKM to the KTX should produce an identical KTX to the one we have on file) */ DEF_TEST(KtxReexportPKM, reporter) { SkString pkmFilename = GetResourcePath("mandrill_128.pkm"); // Load PKM file into a bitmap SkBitmap etcBitmap; SkAutoTUnref<SkData> fileData(SkData::NewFromFileName(pkmFilename.c_str())); if (nullptr == fileData) { SkDebugf("KtxReexportPKM: can't load test file %s\n", pkmFilename.c_str()); return; } bool installDiscardablePixelRefSuccess = SkDEPRECATED_InstallDiscardablePixelRef(fileData, &etcBitmap); if (!installDiscardablePixelRefSuccess) { ERRORF(reporter, "failed to create discardable pixelRef from KTX file"); return; } // Write the bitmap out to a KTX file. SkData *ktxDataPtr = SkImageEncoder::EncodeData(etcBitmap, SkImageEncoder::kKTX_Type, 0); SkAutoDataUnref newKtxData(ktxDataPtr); REPORTER_ASSERT(reporter, ktxDataPtr); // See is this data is identical to data in existing ktx file. SkString ktxFilename = GetResourcePath("mandrill_128.ktx"); SkAutoDataUnref oldKtxData(SkData::NewFromFileName(ktxFilename.c_str())); REPORTER_ASSERT(reporter, oldKtxData->equals(newKtxData)); }
/** * Finally, make sure that if we get ETC1 data from a PKM file that we can then * accurately write it out into a KTX file (i.e. transferring the ETC1 data from * the PKM to the KTX should produce an identical KTX to the one we have on file) */ DEF_TEST(KtxReexportPKM, reporter) { SkString resourcePath = GetResourcePath(); SkString filename = SkOSPath::SkPathJoin(resourcePath.c_str(), "mandrill_128.pkm"); // Load PKM file into a bitmap SkBitmap etcBitmap; SkAutoTUnref<SkData> fileData(SkData::NewFromFileName(filename.c_str())); REPORTER_ASSERT(reporter, NULL != fileData); bool installDiscardablePixelRefSuccess = SkInstallDiscardablePixelRef( SkDecodingImageGenerator::Create( fileData, SkDecodingImageGenerator::Options()), &etcBitmap); REPORTER_ASSERT(reporter, installDiscardablePixelRefSuccess); // Write the bitmap out to a KTX file. SkData *ktxDataPtr = SkImageEncoder::EncodeData(etcBitmap, SkImageEncoder::kKTX_Type, 0); SkAutoDataUnref newKtxData(ktxDataPtr); REPORTER_ASSERT(reporter, NULL != ktxDataPtr); // See is this data is identical to data in existing ktx file. SkString ktxFilename = SkOSPath::SkPathJoin(resourcePath.c_str(), "mandrill_128.ktx"); SkAutoDataUnref oldKtxData(SkData::NewFromFileName(ktxFilename.c_str())); REPORTER_ASSERT(reporter, oldKtxData->equals(newKtxData)); }