change pixel-serializer to support reencoding existing data
Trying to evolve this interface so it can
- support rich set of backend-encoders (including ones like ETC1 that can cheaply convert to KXT
- allow for encoding images as well as bitmaps (e.g. for picture serialization)
- perhaps replace SkImageEncoder as an API (assuming we create a factory that returns a serializer given a format)
BUG=skia:
Review URL: https://codereview.chromium.org/1373683003
diff --git a/tests/KtxTest.cpp b/tests/KtxTest.cpp
index e0d9a27..0ad2496 100644
--- a/tests/KtxTest.cpp
+++ b/tests/KtxTest.cpp
@@ -8,6 +8,7 @@
#include "Resources.h"
#include "SkBitmap.h"
#include "SkData.h"
+#include "SkImage.h"
#include "SkImageGenerator.h"
#include "SkForceLinking.h"
#include "SkImageDecoder.h"
@@ -149,14 +150,11 @@
return;
}
- bool installDiscardablePixelRefSuccess =
- SkDEPRECATED_InstallDiscardablePixelRef(fileData, &etcBitmap);
- REPORTER_ASSERT(reporter, installDiscardablePixelRefSuccess);
+ SkAutoTUnref<SkImage> image(SkImage::NewFromEncoded(fileData));
+ REPORTER_ASSERT(reporter, image.get());
- // Write the bitmap out to a KTX file.
- SkData *ktxDataPtr = SkImageEncoder::EncodeData(etcBitmap, SkImageEncoder::kKTX_Type, 0);
- SkAutoDataUnref newKtxData(ktxDataPtr);
- REPORTER_ASSERT(reporter, ktxDataPtr);
+ SkAutoDataUnref newKtxData(image->encode(SkImageEncoder::kKTX_Type, 0));
+ REPORTER_ASSERT(reporter, newKtxData.get());
// See is this data is identical to data in existing ktx file.
SkString ktxFilename = GetResourcePath("mandrill_128.ktx");