| Index: tests/RecordTest.cpp
|
| diff --git a/tests/RecordTest.cpp b/tests/RecordTest.cpp
|
| index 2fcc1e9c53cc6a6020fa4aab979e6bb6ec91a015..1e713c33ccb8dd7cb637bd5fe57ead5d44c58bca 100644
|
| --- a/tests/RecordTest.cpp
|
| +++ b/tests/RecordTest.cpp
|
| @@ -8,6 +8,7 @@
|
| #include "Test.h"
|
|
|
| #include "SkBitmap.h"
|
| +#include "SkDashPathEffect.h"
|
| #include "SkImageInfo.h"
|
| #include "SkShader.h"
|
| #include "SkRecord.h"
|
| @@ -80,18 +81,25 @@ DEF_TEST(Record, r) {
|
| DEF_TEST(RecordAnalysis, r) {
|
| SkRecord record;
|
|
|
| + // Test WillPlaybackBitmaps
|
| SkRect rect = SkRect::MakeWH(10, 10);
|
| SkPaint paint;
|
| APPEND(record, SkRecords::DrawRect, paint, rect);
|
| - REPORTER_ASSERT(r, !SkRecordWillPlaybackBitmaps(record));
|
| + SkRecordAnalysis analysis = AnalyzeSkRecord(record);
|
| + REPORTER_ASSERT(r, !analysis.fWillPlaybackBitmaps);
|
| + REPORTER_ASSERT(r, analysis.fSuitableForGpuRasterization);
|
|
|
| SkBitmap bitmap;
|
| APPEND(record, SkRecords::DrawBitmap, &paint, bitmap, 0.0f, 0.0f);
|
| - REPORTER_ASSERT(r, SkRecordWillPlaybackBitmaps(record));
|
| + analysis = AnalyzeSkRecord(record);
|
| + REPORTER_ASSERT(r, analysis.fWillPlaybackBitmaps);
|
| + REPORTER_ASSERT(r, analysis.fSuitableForGpuRasterization);
|
|
|
| SkNEW_PLACEMENT_ARGS(record.replace<SkRecords::DrawRect>(1),
|
| SkRecords::DrawRect, (paint, rect));
|
| - REPORTER_ASSERT(r, !SkRecordWillPlaybackBitmaps(record));
|
| + analysis = AnalyzeSkRecord(record);
|
| + REPORTER_ASSERT(r, !analysis.fWillPlaybackBitmaps);
|
| + REPORTER_ASSERT(r, analysis.fSuitableForGpuRasterization);
|
|
|
| SkPaint paint2;
|
| // CreateBitmapShader is too smart for us; an empty (or 1x1) bitmap shader
|
| @@ -106,7 +114,27 @@ DEF_TEST(RecordAnalysis, r) {
|
| REPORTER_ASSERT(r, shader->asABitmap(NULL, NULL, NULL) == SkShader::kDefault_BitmapType);
|
|
|
| APPEND(record, SkRecords::DrawRect, paint2, rect);
|
| - REPORTER_ASSERT(r, SkRecordWillPlaybackBitmaps(record));
|
| + analysis = AnalyzeSkRecord(record);
|
| + REPORTER_ASSERT(r, analysis.fWillPlaybackBitmaps);
|
| + REPORTER_ASSERT(r, analysis.fSuitableForGpuRasterization);
|
| +
|
| + // Test SuitableForGpuRasterization
|
| + // Fast-path dashed effects preserve GPU rasterizability of DrawPoints
|
| + SkPaint paint3;
|
| + SkScalar intervals [] = {10, 20};
|
| + SkPathEffect* pe = SkDashPathEffect::Create(intervals, 2, 25);
|
| + paint3.setPathEffect(pe)->unref();
|
| + SkPoint points [2] = { { 0.0f, 0.0f }, { 100.0f, 0.0f } };
|
| + APPEND(record, SkRecords::DrawPoints, paint3, SkCanvas::kLines_PointMode, 2, points);
|
| + analysis = AnalyzeSkRecord(record);
|
| + REPORTER_ASSERT(r, analysis.fSuitableForGpuRasterization);
|
| +
|
| + // ... but not of other primitives
|
| + APPEND(record, SkRecords::DrawRect, paint3, rect);
|
| + analysis = AnalyzeSkRecord(record);
|
| + REPORTER_ASSERT(r, !analysis.fSuitableForGpuRasterization);
|
| +
|
| +
|
| }
|
|
|
| #undef APPEND
|
|
|