diff options
author | robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2013-12-13 15:24:37 +0000 |
---|---|---|
committer | robertphillips@google.com <robertphillips@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2013-12-13 15:24:37 +0000 |
commit | 0daa1adb03b4b1fc11d854cb7754416ac05a31e8 (patch) | |
tree | 65250ae1cb608dbebfa25e96c3c31335379ccd3a /tests | |
parent | 3c5f29a8a5f8113a831f132f1bb3d839d9fb285a (diff) |
Reverting r12665 & r12666 (Remove duplicate impl for SkImageInfo flattening) due to Chromium/Blink compilation errors
https://codereview.chromium.org/112603003/
git-svn-id: http://skia.googlecode.com/svn/trunk@12667 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'tests')
-rw-r--r-- | tests/PictureTest.cpp | 35 | ||||
-rw-r--r-- | tests/PixelRefTest.cpp | 24 | ||||
-rw-r--r-- | tests/SerializationTest.cpp | 19 |
3 files changed, 46 insertions, 32 deletions
diff --git a/tests/PictureTest.cpp b/tests/PictureTest.cpp index 447ce4eb4d..49717972d4 100644 --- a/tests/PictureTest.cpp +++ b/tests/PictureTest.cpp @@ -11,7 +11,6 @@ #include "SkCanvas.h" #include "SkColorPriv.h" #include "SkData.h" -#include "SkDecodingImageGenerator.h" #include "SkError.h" #include "SkPaint.h" #include "SkPicture.h" @@ -338,6 +337,32 @@ static void test_bad_bitmap() { } #endif +#include "SkData.h" +#include "SkImageRef_GlobalPool.h" +// Class to test SkPixelRef::onRefEncodedData, since there are currently no implementations in skia. +class SkDataImageRef : public SkImageRef_GlobalPool { + +public: + SkDataImageRef(SkMemoryStream* stream) + : SkImageRef_GlobalPool(stream, SkBitmap::kNo_Config) { + SkASSERT(stream != NULL); + fData = stream->copyToData(); + this->setImmutable(); + } + + ~SkDataImageRef() { + fData->unref(); + } + + virtual SkData* onRefEncodedData() SK_OVERRIDE { + fData->ref(); + return fData; + } + +private: + SkData* fData; +}; + #include "SkImageEncoder.h" static SkData* encode_bitmap_to_data(size_t* offset, const SkBitmap& bm) { @@ -379,10 +404,14 @@ static void test_bitmap_with_encoded_data(skiatest::Reporter* reporter) { return; } SkAutoDataUnref data(wStream.copyToData()); + SkMemoryStream memStream; + memStream.setData(data); + // Use the encoded bitmap as the data for an image ref. SkBitmap bm; - bool installSuccess = SkDecodingImageGenerator::Install(data, &bm); - REPORTER_ASSERT(reporter, installSuccess); + SkAutoTUnref<SkDataImageRef> imageRef(SkNEW_ARGS(SkDataImageRef, (&memStream))); + imageRef->getInfo(&bm); + bm.setPixelRef(imageRef); // Write both bitmaps to pictures, and ensure that the resulting data streams are the same. // Flattening original will follow the old path of performing an encode, while flattening bm diff --git a/tests/PixelRefTest.cpp b/tests/PixelRefTest.cpp index e0ffd7a601..470221c0fe 100644 --- a/tests/PixelRefTest.cpp +++ b/tests/PixelRefTest.cpp @@ -51,37 +51,35 @@ private: } // namespace DEF_TEST(PixelRef_GenIDChange, r) { - SkImageInfo info = { 10, 10, kPMColor_SkColorType, kPremul_SkAlphaType }; - - SkAutoTUnref<SkPixelRef> pixelRef(SkMallocPixelRef::NewAllocate(info, 0, NULL)); + SkMallocPixelRef pixelRef(NULL, 0, NULL); // We don't really care about the pixels here. // Register a listener. int count = 0; - pixelRef->addGenIDChangeListener(SkNEW_ARGS(TestListener, (&count))); + pixelRef.addGenIDChangeListener(SkNEW_ARGS(TestListener, (&count))); REPORTER_ASSERT(r, 0 == count); // No one has looked at our pixelRef's generation ID, so invalidating it doesn't make sense. // (An SkPixelRef tree falls in the forest but there's nobody around to hear it. Do we care?) - pixelRef->notifyPixelsChanged(); + pixelRef.notifyPixelsChanged(); REPORTER_ASSERT(r, 0 == count); // Force the generation ID to be calculated. - REPORTER_ASSERT(r, 0 != pixelRef->getGenerationID()); + REPORTER_ASSERT(r, 0 != pixelRef.getGenerationID()); // Our listener was dropped in the first call to notifyPixelsChanged(). This is a no-op. - pixelRef->notifyPixelsChanged(); + pixelRef.notifyPixelsChanged(); REPORTER_ASSERT(r, 0 == count); // Force the generation ID to be recalculated, then add a listener. - REPORTER_ASSERT(r, 0 != pixelRef->getGenerationID()); - pixelRef->addGenIDChangeListener(SkNEW_ARGS(TestListener, (&count))); - pixelRef->notifyPixelsChanged(); + REPORTER_ASSERT(r, 0 != pixelRef.getGenerationID()); + pixelRef.addGenIDChangeListener(SkNEW_ARGS(TestListener, (&count))); + pixelRef.notifyPixelsChanged(); REPORTER_ASSERT(r, 1 == count); // Quick check that NULL is safe. - REPORTER_ASSERT(r, 0 != pixelRef->getGenerationID()); - pixelRef->addGenIDChangeListener(NULL); - pixelRef->notifyPixelsChanged(); + REPORTER_ASSERT(r, 0 != pixelRef.getGenerationID()); + pixelRef.addGenIDChangeListener(NULL); + pixelRef.notifyPixelsChanged(); test_info(r); } diff --git a/tests/SerializationTest.cpp b/tests/SerializationTest.cpp index 448c18f4b1..bb05432427 100644 --- a/tests/SerializationTest.cpp +++ b/tests/SerializationTest.cpp @@ -149,7 +149,6 @@ static T* TestFlattenableSerialization(T* testObj, bool shouldSucceed, REPORTER_ASSERT(reporter, SkAlign4(bytesWritten) == bytesWritten); unsigned char dataWritten[1024]; - SkASSERT(bytesWritten <= sizeof(dataWritten)); writer.writeToMemory(dataWritten); // Make sure this fails when it should (test with smaller size, but still multiple of 4) @@ -309,22 +308,10 @@ DEF_TEST(Serialization, reporter) { TestBitmapSerialization(validBitmap, invalidBitmap, true, reporter); // Create a bitmap with a pixel ref too small - SkImageInfo info; - info.fWidth = 256; - info.fHeight = 256; - info.fColorType = kPMColor_SkColorType; - info.fAlphaType = kPremul_SkAlphaType; - SkBitmap invalidBitmap2; - invalidBitmap2.setConfig(info); - - // Hack to force invalid, by making the pixelref smaller than its - // owning bitmap. - info.fWidth = 32; - info.fHeight = 1; - - invalidBitmap2.setPixelRef(SkMallocPixelRef::NewAllocate( - info, invalidBitmap2.rowBytes(), NULL))->unref(); + invalidBitmap2.setConfig(SkBitmap::kARGB_8888_Config, 256, 256); + invalidBitmap2.setPixelRef(SkNEW_ARGS(SkMallocPixelRef, + (NULL, 256, NULL)))->unref(); // The deserialization should detect the pixel ref being too small and fail TestBitmapSerialization(validBitmap, invalidBitmap2, false, reporter); |