Index: tests/PictureTest.cpp |
diff --git a/tests/PictureTest.cpp b/tests/PictureTest.cpp |
index cc96b916194916ec70bbe4cea67e3be05057112f..16d98b324517d670339181410e8892deb53ea898 100644 |
--- a/tests/PictureTest.cpp |
+++ b/tests/PictureTest.cpp |
@@ -363,10 +363,9 @@ |
// Now test out the SaveLayer extraction |
if (!SkCanvas::Internal_Private_GetIgnoreSaveLayerBounds()) { |
- const SkBigPicture* bp = pict->asSkBigPicture(); |
- REPORTER_ASSERT(reporter, bp); |
- |
- const SkBigPicture::AccelData* data = bp->accelData(); |
+ SkPicture::AccelData::Key key = SkLayerInfo::ComputeKey(); |
+ |
+ const SkPicture::AccelData* data = pict->EXPERIMENTAL_getAccelData(key); |
REPORTER_ASSERT(reporter, data); |
const SkLayerInfo *gpuData = static_cast<const SkLayerInfo*>(data); |
@@ -1106,6 +1105,30 @@ |
// both pictures should have different ids |
REPORTER_ASSERT(reporter, hasData->uniqueID() != empty->uniqueID()); |
+} |
+ |
+static void test_bytes_used(skiatest::Reporter* reporter) { |
+ SkPictureRecorder recorder; |
+ |
+ recorder.beginRecording(0, 0); |
+ SkAutoTUnref<SkPicture> empty(recorder.endRecording()); |
+ |
+ // Sanity check to make sure we aren't under-measuring. |
+ REPORTER_ASSERT(reporter, SkPictureUtils::ApproximateBytesUsed(empty.get()) >= |
+ sizeof(SkPicture) + sizeof(SkRecord)); |
+ |
+ // Protect against any unintentional bloat. |
+ size_t approxUsed = SkPictureUtils::ApproximateBytesUsed(empty.get()); |
+ REPORTER_ASSERT(reporter, approxUsed <= 432); |
+ |
+ // Sanity check of nested SkPictures. |
+ SkPictureRecorder r2; |
+ r2.beginRecording(0, 0); |
+ r2.getRecordingCanvas()->drawPicture(empty.get()); |
+ SkAutoTUnref<SkPicture> nested(r2.endRecording()); |
+ |
+ REPORTER_ASSERT(reporter, SkPictureUtils::ApproximateBytesUsed(nested.get()) >= |
+ SkPictureUtils::ApproximateBytesUsed(empty.get())); |
} |
DEF_TEST(Picture, reporter) { |
@@ -1128,6 +1151,7 @@ |
test_hierarchical(reporter); |
test_gen_id(reporter); |
test_savelayer_extraction(reporter); |
+ test_bytes_used(reporter); |
} |
static void draw_bitmaps(const SkBitmap bitmap, SkCanvas* canvas) { |
@@ -1243,10 +1267,7 @@ |
SpoonFedBBHFactory factory(&bbh); |
SkPictureRecorder recorder; |
- SkCanvas* c = recorder.beginRecording(bound, &factory); |
- // Record a few ops so we don't hit a small- or empty- picture optimization. |
- c->drawRect(bound, SkPaint()); |
- c->drawRect(bound, SkPaint()); |
+ recorder.beginRecording(bound, &factory); |
SkAutoTUnref<const SkPicture> picture(recorder.endRecording()); |
SkCanvas big(640, 480), small(300, 200); |