Implement SkPicture::hasText() for SkRecord backend.
Plus, some small tweaks to the existing code surrounding it. Just proposals,
will undo whatever you don't like.
BUG=skia:
R=mtklein@google.com, tomhudson@google.com, reed@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/494683003
diff --git a/tests/PictureTest.cpp b/tests/PictureTest.cpp
index e9b38d2..6a93a9d 100644
--- a/tests/PictureTest.cpp
+++ b/tests/PictureTest.cpp
@@ -988,61 +988,62 @@
#endif
-static void test_has_text(skiatest::Reporter* reporter) {
+static void test_has_text(skiatest::Reporter* reporter, bool useNewPath) {
SkPictureRecorder recorder;
- SkPaint paint;
- paint.setColor(SK_ColorBLUE);
- SkPoint point = SkPoint::Make(10, 10);
+#define BEGIN_RECORDING useNewPath ? recorder.EXPERIMENTAL_beginRecording(100, 100) \
+ : recorder. beginRecording(100, 100)
- SkCanvas* canvas = recorder.beginRecording(100, 100);
+ SkCanvas* canvas = BEGIN_RECORDING;
{
- canvas->drawRect(SkRect::MakeWH(20, 20), paint);
+ canvas->drawRect(SkRect::MakeWH(20, 20), SkPaint());
}
SkAutoTUnref<SkPicture> picture(recorder.endRecording());
REPORTER_ASSERT(reporter, !picture->hasText());
- canvas = recorder.beginRecording(100, 100);
+ SkPoint point = SkPoint::Make(10, 10);
+ canvas = BEGIN_RECORDING;
{
- canvas->drawText("Q", 1, point.fX, point.fY, paint);
+ canvas->drawText("Q", 1, point.fX, point.fY, SkPaint());
}
picture.reset(recorder.endRecording());
REPORTER_ASSERT(reporter, picture->hasText());
- canvas = recorder.beginRecording(100, 100);
+ canvas = BEGIN_RECORDING;
{
- canvas->drawPosText("Q", 1, &point, paint);
+ canvas->drawPosText("Q", 1, &point, SkPaint());
}
picture.reset(recorder.endRecording());
REPORTER_ASSERT(reporter, picture->hasText());
- canvas = recorder.beginRecording(100, 100);
+ canvas = BEGIN_RECORDING;
{
- canvas->drawPosTextH("Q", 1, &point.fX, point.fY, paint);
+ canvas->drawPosTextH("Q", 1, &point.fX, point.fY, SkPaint());
}
picture.reset(recorder.endRecording());
REPORTER_ASSERT(reporter, picture->hasText());
- canvas = recorder.beginRecording(100, 100);
+ canvas = BEGIN_RECORDING;
{
SkPath path;
path.moveTo(0, 0);
path.lineTo(50, 50);
- canvas->drawTextOnPathHV("Q", 1, path, point.fX, point.fY, paint);
+ canvas->drawTextOnPathHV("Q", 1, path, point.fX, point.fY, SkPaint());
}
picture.reset(recorder.endRecording());
REPORTER_ASSERT(reporter, picture->hasText());
- canvas = recorder.beginRecording(100, 100);
+ canvas = BEGIN_RECORDING;
{
SkPath path;
path.moveTo(0, 0);
path.lineTo(50, 50);
- canvas->drawTextOnPath("Q", 1, path, NULL, paint);
+ canvas->drawTextOnPath("Q", 1, path, NULL, SkPaint());
}
picture.reset(recorder.endRecording());
REPORTER_ASSERT(reporter, picture->hasText());
+#undef BEGIN_RECORDING
}
static void set_canvas_to_save_count_4(SkCanvas* canvas) {
@@ -1688,7 +1689,8 @@
test_gpu_veto(reporter, false);
test_gpu_veto(reporter, true);
#endif
- test_has_text(reporter);
+ test_has_text(reporter, false);
+ test_has_text(reporter, true);
test_analysis(reporter, false);
test_analysis(reporter, true);
test_gatherpixelrefs(reporter);