Index: tests/BitmapCopyTest.cpp |
diff --git a/tests/BitmapCopyTest.cpp b/tests/BitmapCopyTest.cpp |
index 4a49a6b487b1030b53bf56fd1f5a6ca0e5d6b1e1..40cfbe0d54232969c0873a395a10db84849c4071 100644 |
--- a/tests/BitmapCopyTest.cpp |
+++ b/tests/BitmapCopyTest.cpp |
@@ -185,7 +185,7 @@ |
static const Pair gPairs[] = { |
{ kUnknown_SkColorType, "000000" }, |
{ kAlpha_8_SkColorType, "010101" }, |
- { kIndex_8_SkColorType, "011111" }, |
+ { kIndex_8_SkColorType, "011101" }, |
{ kRGB_565_SkColorType, "010101" }, |
{ kARGB_4444_SkColorType, "010111" }, |
{ kN32_SkColorType, "010111" }, |
@@ -542,96 +542,3 @@ |
} // for (size_t copyCase ... |
} |
} |
- |
-#include "SkColorPriv.h" |
-#include "SkUtils.h" |
- |
-/** |
- * Construct 4x4 pixels where we can look at a color and determine where it should be in the grid. |
- * alpha = 0xFF, blue = 0x80, red = x, green = y |
- */ |
-static void fill_4x4_pixels(SkPMColor colors[16]) { |
- for (int y = 0; y < 4; ++y) { |
- for (int x = 0; x < 4; ++x) { |
- colors[y*4+x] = SkPackARGB32(0xFF, x, y, 0x80); |
- } |
- } |
-} |
- |
-static bool check_4x4_pixel(SkPMColor color, unsigned x, unsigned y) { |
- SkASSERT(x < 4 && y < 4); |
- return 0xFF == SkGetPackedA32(color) && |
- x == SkGetPackedR32(color) && |
- y == SkGetPackedG32(color) && |
- 0x80 == SkGetPackedB32(color); |
-} |
- |
-/** |
- * Fill with all zeros, which will never match any value from fill_4x4_pixels |
- */ |
-static void clear_4x4_pixels(SkPMColor colors[16]) { |
- sk_memset32(colors, 0, 16); |
-} |
- |
-// Much of readPixels is exercised by copyTo testing, since readPixels is the backend for that |
-// method. Here we explicitly test subset copies. |
-// |
-DEF_TEST(BitmapReadPixels, reporter) { |
- const int W = 4; |
- const int H = 4; |
- const size_t rowBytes = W * sizeof(SkPMColor); |
- const SkImageInfo srcInfo = SkImageInfo::MakeN32Premul(W, H); |
- SkPMColor srcPixels[16]; |
- fill_4x4_pixels(srcPixels); |
- SkBitmap srcBM; |
- srcBM.installPixels(srcInfo, srcPixels, rowBytes); |
- |
- SkImageInfo dstInfo = SkImageInfo::MakeN32Premul(W, H); |
- SkPMColor dstPixels[16]; |
- |
- const struct { |
- bool fExpectedSuccess; |
- SkIPoint fRequestedSrcLoc; |
- SkISize fRequestedDstSize; |
- // If fExpectedSuccess, check these, otherwise ignore |
- SkIPoint fExpectedDstLoc; |
- SkIRect fExpectedSrcR; |
- } gRec[] = { |
- { true, { 0, 0 }, { 4, 4 }, { 0, 0 }, { 0, 0, 4, 4 } }, |
- { true, { 1, 1 }, { 2, 2 }, { 0, 0 }, { 1, 1, 3, 3 } }, |
- { true, { 2, 2 }, { 4, 4 }, { 0, 0 }, { 2, 2, 4, 4 } }, |
- { true, {-1,-1 }, { 2, 2 }, { 1, 1 }, { 0, 0, 1, 1 } }, |
- { false, {-1,-1 }, { 1, 1 }, { 0, 0 }, { 0, 0, 0, 0 } }, |
- }; |
- |
- for (size_t i = 0; i < SK_ARRAY_COUNT(gRec); ++i) { |
- clear_4x4_pixels(dstPixels); |
- |
- dstInfo.fWidth = gRec[i].fRequestedDstSize.width(); |
- dstInfo.fHeight = gRec[i].fRequestedDstSize.height(); |
- bool success = srcBM.readPixels(dstInfo, dstPixels, rowBytes, |
- gRec[i].fRequestedSrcLoc.x(), gRec[i].fRequestedSrcLoc.y()); |
- |
- REPORTER_ASSERT(reporter, gRec[i].fExpectedSuccess == success); |
- if (success) { |
- const SkIRect srcR = gRec[i].fExpectedSrcR; |
- const int dstX = gRec[i].fExpectedDstLoc.x(); |
- const int dstY = gRec[i].fExpectedDstLoc.y(); |
- // Walk the dst pixels, and check if we got what we expected |
- for (int y = 0; y < H; ++y) { |
- for (int x = 0; x < W; ++x) { |
- SkPMColor dstC = dstPixels[y*4+x]; |
- // get into src coordinates |
- int sx = x - dstX + srcR.x(); |
- int sy = y - dstY + srcR.y(); |
- if (srcR.contains(sx, sy)) { |
- REPORTER_ASSERT(reporter, check_4x4_pixel(dstC, sx, sy)); |
- } else { |
- REPORTER_ASSERT(reporter, 0 == dstC); |
- } |
- } |
- } |
- } |
- } |
-} |
- |