aboutsummaryrefslogtreecommitdiffhomepage
path: root/gm/textblobgeometrychange.cpp
diff options
context:
space:
mode:
authorGravatar mtklein <mtklein@chromium.org>2016-04-06 13:57:38 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2016-04-06 13:57:38 -0700
commit9e65f9399ea9d50dca723ca23c10ec4145b54abe (patch)
treefaf95a6c7e1534cd4a66227a13037545ef0ec7f5 /gm/textblobgeometrychange.cpp
parentb4aa36211ca66ef127ac2954108742af1ead5082 (diff)
alternate textblobgeometrychange fix... just make our own surface if needed
This should decopple fixing the replay modes from revising the API. BUG=skia: GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1868553005 Review URL: https://codereview.chromium.org/1868553005
Diffstat (limited to 'gm/textblobgeometrychange.cpp')
-rw-r--r--gm/textblobgeometrychange.cpp38
1 files changed, 17 insertions, 21 deletions
diff --git a/gm/textblobgeometrychange.cpp b/gm/textblobgeometrychange.cpp
index b1c5b17988..b02bc07bf0 100644
--- a/gm/textblobgeometrychange.cpp
+++ b/gm/textblobgeometrychange.cpp
@@ -47,28 +47,24 @@ protected:
uint32_t allowSRGBInputs = canvas->getProps(&canvasProps)
? canvasProps.flags() & SkSurfaceProps::kAllowSRGBInputs_Flag : 0;
SkSurfaceProps props(allowSRGBInputs, kUnknown_SkPixelGeometry);
- auto surface(canvas->makeSurface(info, &props));
- if (surface) {
- SkCanvas* c = surface->getCanvas();
-
- // LCD text on white background
- SkRect rect = SkRect::MakeLTRB(0.f, 0.f, SkIntToScalar(kWidth), kHeight / 2.f);
- SkPaint rectPaint;
- rectPaint.setColor(0xffffffff);
- canvas->drawRect(rect, rectPaint);
- canvas->drawTextBlob(blob.get(), 10, 50, paint);
-
- // This should not look garbled since we should disable LCD text in this case
- // (i.e., unknown pixel geometry)
- c->clear(0x00ffffff);
- c->drawTextBlob(blob.get(), 10, 150, paint);
- surface->draw(canvas, 0, 0, nullptr);
- } else {
- const char* text = "This test requires a surface";
- size_t len = strlen(text);
- SkPaint paint;
- canvas->drawText(text, len, 10, 100, paint);
+ auto surface = canvas->makeSurface(info, &props);
+ if (!surface) {
+ surface = SkSurface::MakeRaster(info, &props);
}
+ SkCanvas* c = surface->getCanvas();
+
+ // LCD text on white background
+ SkRect rect = SkRect::MakeLTRB(0.f, 0.f, SkIntToScalar(kWidth), kHeight / 2.f);
+ SkPaint rectPaint;
+ rectPaint.setColor(0xffffffff);
+ canvas->drawRect(rect, rectPaint);
+ canvas->drawTextBlob(blob.get(), 10, 50, paint);
+
+ // This should not look garbled since we should disable LCD text in this case
+ // (i.e., unknown pixel geometry)
+ c->clear(0x00ffffff);
+ c->drawTextBlob(blob.get(), 10, 150, paint);
+ surface->draw(canvas, 0, 0, nullptr);
}
private: