From 27dc17c2972421ce9c6331662fee6389b1e795a7 Mon Sep 17 00:00:00 2001 From: Mike Klein Date: Mon, 18 Aug 2014 18:35:16 -0400 Subject: Revert "Move the code over using the same template type approach previously used for willPlayBackBitmaps in http://skbug.com/2702." This reverts commit 60c2a79cfa8ceebcbafc243407564dc71f5e3b4f. BUG=skia: Review URL: https://codereview.chromium.org/481173003 --- tests/RecordTest.cpp | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) (limited to 'tests/RecordTest.cpp') diff --git a/tests/RecordTest.cpp b/tests/RecordTest.cpp index 2240ae9858..2fcc1e9c53 100644 --- a/tests/RecordTest.cpp +++ b/tests/RecordTest.cpp @@ -11,6 +11,7 @@ #include "SkImageInfo.h" #include "SkShader.h" #include "SkRecord.h" +#include "SkRecordAnalysis.h" #include "SkRecords.h" // Sums the area of any DrawRect command it sees. @@ -76,5 +77,37 @@ DEF_TEST(Record, r) { REPORTER_ASSERT(r, summer.area() == 500); } +DEF_TEST(RecordAnalysis, r) { + SkRecord record; + + SkRect rect = SkRect::MakeWH(10, 10); + SkPaint paint; + APPEND(record, SkRecords::DrawRect, paint, rect); + REPORTER_ASSERT(r, !SkRecordWillPlaybackBitmaps(record)); + + SkBitmap bitmap; + APPEND(record, SkRecords::DrawBitmap, &paint, bitmap, 0.0f, 0.0f); + REPORTER_ASSERT(r, SkRecordWillPlaybackBitmaps(record)); + + SkNEW_PLACEMENT_ARGS(record.replace(1), + SkRecords::DrawRect, (paint, rect)); + REPORTER_ASSERT(r, !SkRecordWillPlaybackBitmaps(record)); + + SkPaint paint2; + // CreateBitmapShader is too smart for us; an empty (or 1x1) bitmap shader + // gets optimized into a non-bitmap form, so we create a 2x2 bitmap here. + SkBitmap bitmap2; + bitmap2.allocPixels(SkImageInfo::MakeN32Premul(2, 2)); + bitmap2.eraseColor(SK_ColorBLUE); + *(bitmap2.getAddr32(0, 0)) = SK_ColorGREEN; + SkShader* shader = SkShader::CreateBitmapShader(bitmap2, SkShader::kClamp_TileMode, + SkShader::kClamp_TileMode); + paint2.setShader(shader)->unref(); + REPORTER_ASSERT(r, shader->asABitmap(NULL, NULL, NULL) == SkShader::kDefault_BitmapType); + + APPEND(record, SkRecords::DrawRect, paint2, rect); + REPORTER_ASSERT(r, SkRecordWillPlaybackBitmaps(record)); +} + #undef APPEND -- cgit v1.2.3