Index: tests/PictureTest.cpp |
diff --git a/tests/PictureTest.cpp b/tests/PictureTest.cpp |
index eb85c94a69fccd0c1911339d598f111bbef040c8..abbdd0567579f92e3cdd168e9242f4edac7e00bd 100644 |
--- a/tests/PictureTest.cpp |
+++ b/tests/PictureTest.cpp |
@@ -914,7 +914,7 @@ static void test_gpu_picture_optimization(skiatest::Reporter* reporter, |
{ |
SkPictureRecorder recorder; |
- SkCanvas* c = recorder.beginRecording(SkIntToScalar(kWidth), |
+ SkCanvas* c = recorder.beginRecording(SkIntToScalar(kWidth), |
SkIntToScalar(kHeight)); |
// 1) |
c->saveLayer(NULL, NULL); // layer #0 |
@@ -990,7 +990,7 @@ static void test_gpu_picture_optimization(skiatest::Reporter* reporter, |
REPORTER_ASSERT(reporter, info0.fValid); |
REPORTER_ASSERT(reporter, pict->uniqueID() == info0.fPictureID); |
- REPORTER_ASSERT(reporter, kWidth == info0.fSize.fWidth && |
+ REPORTER_ASSERT(reporter, kWidth == info0.fSize.fWidth && |
kHeight == info0.fSize.fHeight); |
REPORTER_ASSERT(reporter, info0.fOriginXform.isIdentity()); |
REPORTER_ASSERT(reporter, 0 == info0.fOffset.fX && 0 == info0.fOffset.fY); |
@@ -999,12 +999,12 @@ static void test_gpu_picture_optimization(skiatest::Reporter* reporter, |
REPORTER_ASSERT(reporter, info1.fValid); |
REPORTER_ASSERT(reporter, pict->uniqueID() == info1.fPictureID); |
- REPORTER_ASSERT(reporter, kWidth == info1.fSize.fWidth && |
+ REPORTER_ASSERT(reporter, kWidth == info1.fSize.fWidth && |
kHeight == info1.fSize.fHeight); |
REPORTER_ASSERT(reporter, info1.fOriginXform.isIdentity()); |
REPORTER_ASSERT(reporter, 0 == info1.fOffset.fX && 0 == info1.fOffset.fY); |
REPORTER_ASSERT(reporter, NULL == info1.fPaint); |
- REPORTER_ASSERT(reporter, !info1.fIsNested && |
+ REPORTER_ASSERT(reporter, !info1.fIsNested && |
info1.fHasNestedLayers); // has a nested SL |
REPORTER_ASSERT(reporter, info2.fValid); |
@@ -1013,13 +1013,13 @@ static void test_gpu_picture_optimization(skiatest::Reporter* reporter, |
kHeight/2 == info2.fSize.fHeight); // bound reduces size |
REPORTER_ASSERT(reporter, info2.fOriginXform.isIdentity()); |
REPORTER_ASSERT(reporter, kWidth/2 == info2.fOffset.fX && // translated |
- kHeight/2 == info2.fOffset.fY); |
+ kHeight/2 == info2.fOffset.fY); |
REPORTER_ASSERT(reporter, NULL == info1.fPaint); |
REPORTER_ASSERT(reporter, info2.fIsNested && !info2.fHasNestedLayers); // is nested |
REPORTER_ASSERT(reporter, info3.fValid); |
REPORTER_ASSERT(reporter, pict->uniqueID() == info3.fPictureID); |
- REPORTER_ASSERT(reporter, kWidth == info3.fSize.fWidth && |
+ REPORTER_ASSERT(reporter, kWidth == info3.fSize.fWidth && |
kHeight == info3.fSize.fHeight); |
REPORTER_ASSERT(reporter, info3.fOriginXform.isIdentity()); |
REPORTER_ASSERT(reporter, 0 == info3.fOffset.fX && 0 == info3.fOffset.fY); |
@@ -1028,17 +1028,17 @@ static void test_gpu_picture_optimization(skiatest::Reporter* reporter, |
REPORTER_ASSERT(reporter, info4.fValid); |
REPORTER_ASSERT(reporter, pict->uniqueID() == info4.fPictureID); |
- REPORTER_ASSERT(reporter, kWidth == info4.fSize.fWidth && |
+ REPORTER_ASSERT(reporter, kWidth == info4.fSize.fWidth && |
kHeight == info4.fSize.fHeight); |
REPORTER_ASSERT(reporter, 0 == info4.fOffset.fX && 0 == info4.fOffset.fY); |
REPORTER_ASSERT(reporter, info4.fOriginXform.isIdentity()); |
REPORTER_ASSERT(reporter, NULL == info4.fPaint); |
- REPORTER_ASSERT(reporter, !info4.fIsNested && |
+ REPORTER_ASSERT(reporter, !info4.fIsNested && |
info4.fHasNestedLayers); // has a nested SL |
REPORTER_ASSERT(reporter, info5.fValid); |
REPORTER_ASSERT(reporter, child->uniqueID() == info5.fPictureID); // in a child picture |
- REPORTER_ASSERT(reporter, kWidth == info5.fSize.fWidth && |
+ REPORTER_ASSERT(reporter, kWidth == info5.fSize.fWidth && |
kHeight == info5.fSize.fHeight); |
REPORTER_ASSERT(reporter, 0 == info5.fOffset.fX && 0 == info5.fOffset.fY); |
REPORTER_ASSERT(reporter, info5.fOriginXform.isIdentity()); |
@@ -1047,17 +1047,17 @@ static void test_gpu_picture_optimization(skiatest::Reporter* reporter, |
REPORTER_ASSERT(reporter, info6.fValid); |
REPORTER_ASSERT(reporter, pict->uniqueID() == info6.fPictureID); |
- REPORTER_ASSERT(reporter, kWidth == info6.fSize.fWidth && |
+ REPORTER_ASSERT(reporter, kWidth == info6.fSize.fWidth && |
kHeight == info6.fSize.fHeight); |
REPORTER_ASSERT(reporter, 0 == info6.fOffset.fX && 0 == info6.fOffset.fY); |
REPORTER_ASSERT(reporter, info6.fOriginXform.isIdentity()); |
REPORTER_ASSERT(reporter, NULL == info6.fPaint); |
- REPORTER_ASSERT(reporter, !info6.fIsNested && |
+ REPORTER_ASSERT(reporter, !info6.fIsNested && |
info6.fHasNestedLayers); // has a nested SL |
REPORTER_ASSERT(reporter, info7.fValid); |
REPORTER_ASSERT(reporter, child->uniqueID() == info7.fPictureID); // in a child picture |
- REPORTER_ASSERT(reporter, kWidth == info7.fSize.fWidth && |
+ REPORTER_ASSERT(reporter, kWidth == info7.fSize.fWidth && |
kHeight == info7.fSize.fHeight); |
REPORTER_ASSERT(reporter, 0 == info7.fOffset.fX && 0 == info7.fOffset.fY); |
REPORTER_ASSERT(reporter, info7.fOriginXform.isIdentity()); |
@@ -1188,14 +1188,16 @@ private: |
void check_save_state(skiatest::Reporter* reporter, SkPicture* picture, |
unsigned int numSaves, unsigned int numSaveLayers, |
unsigned int numRestores) { |
- SaveCountingCanvas canvas(SkScalarCeilToInt(picture->cullRect().width()), |
+ SaveCountingCanvas canvas(SkScalarCeilToInt(picture->cullRect().width()), |
SkScalarCeilToInt(picture->cullRect().height())); |
picture->playback(&canvas); |
- REPORTER_ASSERT(reporter, numSaves == canvas.getSaveCount()); |
- REPORTER_ASSERT(reporter, numSaveLayers == canvas.getSaveLayerCount()); |
- REPORTER_ASSERT(reporter, numRestores == canvas.getRestoreCount()); |
+ // Optimizations may have removed these, |
+ // so expect to have seen no more than num{Saves,SaveLayers,Restores}. |
+ REPORTER_ASSERT(reporter, numSaves >= canvas.getSaveCount()); |
+ REPORTER_ASSERT(reporter, numSaveLayers >= canvas.getSaveLayerCount()); |
+ REPORTER_ASSERT(reporter, numRestores >= canvas.getRestoreCount()); |
} |
// This class exists so SkPicture can friend it and give it access to |
@@ -1445,7 +1447,7 @@ static SkData* encode_bitmap_to_data(size_t*, const SkBitmap& bm) { |
static SkData* serialized_picture_from_bitmap(const SkBitmap& bitmap) { |
SkPictureRecorder recorder; |
- SkCanvas* canvas = recorder.beginRecording(SkIntToScalar(bitmap.width()), |
+ SkCanvas* canvas = recorder.beginRecording(SkIntToScalar(bitmap.width()), |
SkIntToScalar(bitmap.height())); |
canvas->drawBitmap(bitmap, 0, 0); |
SkAutoTUnref<SkPicture> picture(recorder.endRecording()); |