Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(70)

Unified Diff: tests/CachedDecodingPixelRefTest.cpp

Issue 84083002: SkCachingPixelRef to use SkImageGenerator (Closed) Base URL: https://skia.googlecode.com/svn/trunk
Patch Set: final rebase Created 7 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/lazy/SkLazyCachingPixelRef.cpp ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tests/CachedDecodingPixelRefTest.cpp
diff --git a/tests/CachedDecodingPixelRefTest.cpp b/tests/CachedDecodingPixelRefTest.cpp
index 2d8a0e70737a66c376987caf9c2adb055026f054..af1df1093c3469dc082195a1cd60a5a1ffd54a3f 100644
--- a/tests/CachedDecodingPixelRefTest.cpp
+++ b/tests/CachedDecodingPixelRefTest.cpp
@@ -12,8 +12,8 @@
#include "SkForceLinking.h"
#include "SkImageDecoder.h"
#include "SkImagePriv.h"
-#include "SkLazyCachingPixelRef.h"
#include "SkLazyPixelRef.h"
+#include "SkCachingPixelRef.h"
#include "SkScaledImageCache.h"
#include "SkStream.h"
@@ -109,15 +109,13 @@ static void compare_bitmaps(skiatest::Reporter* reporter,
}
-typedef void(*CompareEncodedToOriginal)(skiatest::Reporter* reporter,
- SkData* encoded,
- const SkBitmap& original,
- bool pixelPerfect);
+typedef bool (*InstallEncoded)(SkData* encoded, SkBitmap* dst);
+
/**
- this function tests three differently encoded images against the
- original bitmap */
+ This function tests three differently encoded images against the
+ original bitmap */
static void test_three_encodings(skiatest::Reporter* reporter,
- CompareEncodedToOriginal comp) {
+ InstallEncoded install) {
SkBitmap original;
make_test_image(&original);
REPORTER_ASSERT(reporter, !original.empty());
@@ -134,146 +132,67 @@ static void test_three_encodings(skiatest::Reporter* reporter,
SkImageEncoder::Type type = types[i];
SkAutoDataUnref encoded(create_data_from_bitmap(original, type));
REPORTER_ASSERT(reporter, encoded.get() != NULL);
- if (NULL != encoded.get()) {
- bool comparePixels = (SkImageEncoder::kPNG_Type == type);
- comp(reporter, encoded, original, comparePixels);
+ if (NULL == encoded.get()) {
+ continue;
+ }
+ SkBitmap lazy;
+ bool installSuccess = install(encoded.get(), &lazy);
+ REPORTER_ASSERT(reporter, installSuccess);
+ if (!installSuccess) {
+ continue;
}
+ REPORTER_ASSERT(reporter, NULL == lazy.getPixels());
+ {
+ SkAutoLockPixels autoLockPixels(lazy); // now pixels are good.
+ REPORTER_ASSERT(reporter, NULL != lazy.getPixels());
+ if (NULL == lazy.getPixels()) {
+ continue;
+ }
+ }
+ // pixels should be gone!
+ REPORTER_ASSERT(reporter, NULL == lazy.getPixels());
+ {
+ SkAutoLockPixels autoLockPixels(lazy); // now pixels are good.
+ REPORTER_ASSERT(reporter, NULL != lazy.getPixels());
+ if (NULL == lazy.getPixels()) {
+ continue;
+ }
+ }
+ bool comparePixels = (SkImageEncoder::kPNG_Type == type);
+ compare_bitmaps(reporter, original, lazy, comparePixels);
}
}
+
+////////////////////////////////////////////////////////////////////////////////
/**
* This checks to see that a SkLazyPixelRef works as advertised.
*/
-static void compare_with_skLazyPixelRef(skiatest::Reporter* reporter,
- SkData* encoded,
- const SkBitmap& original,
- bool comparePixels) {
- SkBitmap lazy;
+bool install_skLazyPixelRef(SkData* encoded, SkBitmap* dst) {
static const SkBitmapFactory::DecodeProc decoder =
&(SkImageDecoder::DecodeMemoryToTarget);
- bool success = simple_bitmap_factory(decoder, encoded, &lazy);
- REPORTER_ASSERT(reporter, success);
-
- REPORTER_ASSERT(reporter, NULL == lazy.getPixels());
- {
- SkAutoLockPixels autoLockPixels(lazy); // now pixels are good.
- REPORTER_ASSERT(reporter, NULL != lazy.getPixels());
- }
- // pixels should be gone!
- REPORTER_ASSERT(reporter, NULL == lazy.getPixels());
- {
- SkAutoLockPixels autoLockPixels(lazy); // now pixels are good.
- REPORTER_ASSERT(reporter, NULL != lazy.getPixels());
- }
- compare_bitmaps(reporter, original, lazy, comparePixels);
+ return simple_bitmap_factory(decoder, encoded, dst);
}
DEF_TEST(LazyPixelRef, reporter) {
- test_three_encodings(reporter, compare_with_skLazyPixelRef);
+ test_three_encodings(reporter, install_skLazyPixelRef);
}
-
-
+////////////////////////////////////////////////////////////////////////////////
/**
- * This checks to see that a SkLazyCachedPixelRef works as advertised.
+ * This checks to see that a SkCachingPixelRef works as advertised.
*/
-
-static void compare_with_skLazyCachedPixelRef(skiatest::Reporter* reporter,
- SkData* encoded,
- const SkBitmap& original,
- bool comparePixels) {
- SkBitmap lazy;
- static const SkBitmapFactory::DecodeProc decoder =
- &(SkImageDecoder::DecodeMemoryToTarget);
- bool success = SkLazyCachingPixelRef::Install(decoder, encoded, &lazy);
- REPORTER_ASSERT(reporter, success);
-
- REPORTER_ASSERT(reporter, NULL == lazy.getPixels());
- {
- SkAutoLockPixels autoLockPixels(lazy); // now pixels are good.
- REPORTER_ASSERT(reporter, NULL != lazy.getPixels());
- }
- // pixels should be gone!
- REPORTER_ASSERT(reporter, NULL == lazy.getPixels());
- {
- SkAutoLockPixels autoLockPixels(lazy); // now pixels are good.
- REPORTER_ASSERT(reporter, NULL != lazy.getPixels());
- }
- compare_bitmaps(reporter, original, lazy, comparePixels);
+bool install_skCachingPixelRef(SkData* encoded, SkBitmap* dst) {
+ return SkCachingPixelRef::Install(
+ SkNEW_ARGS(SkDecodingImageGenerator, (encoded)), dst);
}
-DEF_TEST(LazyCachedPixelRef, reporter) {
- test_three_encodings(reporter, compare_with_skLazyCachedPixelRef);
-}
-
-class TestPixelRef : public SkCachingPixelRef {
-public:
- TestPixelRef(int x) : fX(x) { }
- virtual ~TestPixelRef() { }
- static bool Install(SkBitmap* destination, int x) {
- SkAutoTUnref<TestPixelRef> ref(SkNEW_ARGS(TestPixelRef, (x)));
- return ref->configure(destination) && destination->setPixelRef(ref);
- }
- SK_DECLARE_UNFLATTENABLE_OBJECT()
-protected:
- virtual bool onDecodeInfo(SkImageInfo* info) SK_OVERRIDE {
- if (fX == 0) {
- return false;
- }
- SkASSERT(info);
- info->fWidth = 10;
- info->fHeight = 10;
- info->fColorType = kRGBA_8888_SkColorType;
- info->fAlphaType = kOpaque_SkAlphaType;
- return true;
- }
- virtual bool onDecodePixels(const SkImageInfo& info,
- void* pixels,
- size_t rowBytes) SK_OVERRIDE {
- return false;
- }
-private:
- int fX; // controls where the failure happens
- typedef SkCachingPixelRef INHERITED;
-};
-
DEF_TEST(CachingPixelRef, reporter) {
- SkBitmap lazy;
- // test the error handling
- REPORTER_ASSERT(reporter, !TestPixelRef::Install(&lazy, 0));
- // onDecodeInfo should succeed, allowing installation
- REPORTER_ASSERT(reporter, TestPixelRef::Install(&lazy, 1));
- SkAutoLockPixels autoLockPixels(lazy); // now pixels are good.
- // onDecodePixels should fail, so getting pixels will fail.
- REPORTER_ASSERT(reporter, NULL == lazy.getPixels());
+ test_three_encodings(reporter, install_skCachingPixelRef);
}
-static void compare_with_SkDecodingImageGenerator(skiatest::Reporter* reporter,
- SkData* encoded,
- const SkBitmap& original,
- bool comparePixels) {
-
- SkBitmap lazy;
- bool success = SkDecodingImageGenerator::Install(encoded, &lazy);
- REPORTER_ASSERT(reporter, success);
- if (!success) {
- return;
- }
-
- REPORTER_ASSERT(reporter, NULL == lazy.getPixels());
- {
- SkAutoLockPixels autoLockPixels(lazy); // now pixels are good.
- REPORTER_ASSERT(reporter, NULL != lazy.getPixels());
- if (NULL == lazy.getPixels()) {
- return;
- }
- }
- // pixels should be gone!
- REPORTER_ASSERT(reporter, NULL == lazy.getPixels());
- {
- SkAutoLockPixels autoLockPixels(lazy); // now pixels are good.
- REPORTER_ASSERT(reporter, NULL != lazy.getPixels());
- }
- compare_bitmaps(reporter, original, lazy, comparePixels);
-}
+////////////////////////////////////////////////////////////////////////////////
+/**
+ * This checks to see that a SkDecodingImageGenerator works as advertised.
+ */
DEF_TEST(DecodingImageGenerator, reporter) {
- test_three_encodings(reporter, compare_with_SkDecodingImageGenerator);
+ test_three_encodings(reporter, SkDecodingImageGenerator::Install);
}
« no previous file with comments | « src/lazy/SkLazyCachingPixelRef.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698