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

Unified Diff: tests/SurfaceTest.cpp

Issue 1208993017: Add image->bitmap (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: add check for immutable Created 5 years, 5 months 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/image/SkImage_Raster.cpp ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tests/SurfaceTest.cpp
diff --git a/tests/SurfaceTest.cpp b/tests/SurfaceTest.cpp
index d78498f6b9142e01f7608327bb6ce7f36d742f55..1b57b778f6d1d2631e2f8ea1824609973b32c073 100644
--- a/tests/SurfaceTest.cpp
+++ b/tests/SurfaceTest.cpp
@@ -407,6 +407,33 @@ static void test_image_readpixels(skiatest::Reporter* reporter, SkImage* image,
REPORTER_ASSERT(reporter, has_pixels(&pixels[1], w*h - 1, notExpected));
}
+static void test_legacy_bitmap(skiatest::Reporter* reporter, const SkImage* image) {
+ const SkImage::LegacyBitmapMode modes[] = {
+ SkImage::kRO_LegacyBitmapMode,
+ SkImage::kRW_LegacyBitmapMode,
+ };
+ for (size_t i = 0; i < SK_ARRAY_COUNT(modes); ++i) {
+ SkBitmap bitmap;
+ REPORTER_ASSERT(reporter, image->asLegacyBitmap(&bitmap, modes[i]));
+
+ REPORTER_ASSERT(reporter, image->width() == bitmap.width());
+ REPORTER_ASSERT(reporter, image->height() == bitmap.height());
+ REPORTER_ASSERT(reporter, image->isOpaque() == bitmap.isOpaque());
+
+ bitmap.lockPixels();
+ REPORTER_ASSERT(reporter, bitmap.getPixels());
+
+ const SkImageInfo info = SkImageInfo::MakeN32(1, 1, bitmap.alphaType());
+ SkPMColor imageColor;
+ REPORTER_ASSERT(reporter, image->readPixels(info, &imageColor, sizeof(SkPMColor), 0, 0));
+ REPORTER_ASSERT(reporter, imageColor == *bitmap.getAddr32(0, 0));
+
+ if (SkImage::kRO_LegacyBitmapMode == modes[i]) {
+ REPORTER_ASSERT(reporter, bitmap.isImmutable());
+ }
+ }
+}
+
static void test_imagepeek(skiatest::Reporter* reporter, GrContextFactory* factory) {
static const struct {
ImageType fType;
@@ -450,6 +477,8 @@ static void test_imagepeek(skiatest::Reporter* reporter, GrContextFactory* facto
REPORTER_ASSERT(reporter, NULL == releaseCtx.fData); // we ignored the context
}
+ test_legacy_bitmap(reporter, image);
+
const void* addr = image->peekPixels(&info, &rowBytes);
bool success = SkToBool(addr);
REPORTER_ASSERT(reporter, gRec[i].fPeekShouldSucceed == success);
« no previous file with comments | « src/image/SkImage_Raster.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698