diff options
author | halcanary <halcanary@google.com> | 2015-06-04 07:26:54 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-06-04 07:26:54 -0700 |
commit | 74015ed78edbc1db8c85af2f943063bf4def72e9 (patch) | |
tree | 42703f46aff02462612687f552e6c519132733c9 /gm/annotated_text.cpp | |
parent | 0be685755f942baea26c66a87226b569fc17e960 (diff) |
Add GM that tests clipping annotations
TBR=reed@google.com
BUG=skia:3880
Review URL: https://codereview.chromium.org/1159273003
Diffstat (limited to 'gm/annotated_text.cpp')
-rw-r--r-- | gm/annotated_text.cpp | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/gm/annotated_text.cpp b/gm/annotated_text.cpp new file mode 100644 index 0000000000..ab7e816126 --- /dev/null +++ b/gm/annotated_text.cpp @@ -0,0 +1,40 @@ +/* + * Copyright 2015 Google Inc. + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#include "SkAnnotation.h" +#include "SkData.h" +#include "gm.h" + +static void draw_url_annotated_text_with_box( + SkCanvas* canvas, const void* text, + SkScalar x, SkScalar y, const SkPaint& paint, const char* url) { + size_t byteLength = strlen(static_cast<const char*>(text)); + SkRect bounds; + (void)paint.measureText(text, byteLength, &bounds); + bounds.offset(x, y); + SkAutoTUnref<SkData> urlData(SkData::NewWithCString(url)); + SkAnnotateRectWithURL(canvas, bounds, urlData); + SkPaint shade; + shade.setColor(0x80346180); + canvas->drawRect(bounds, shade); + canvas->drawText(text, byteLength, x, y, paint); +} + +DEF_SIMPLE_GM(annotated_text, canvas, 512, 512) { + SkAutoCanvasRestore autoCanvasRestore(canvas, true); + canvas->clear(SK_ColorWHITE); + canvas->clipRect(SkRect::MakeXYWH(64, 64, 384, 384)); + canvas->clear(0xFFEEEEEE); + SkPaint p; + p.setTextSize(40); + const char text[] = "Click this link!"; + const char url[] = "https://www.google.com/"; + draw_url_annotated_text_with_box(canvas, text, 200.0f, 80.0f, p, url); + SkAutoCanvasRestore autoCanvasRestore2(canvas, true); + canvas->rotate(90); + draw_url_annotated_text_with_box(canvas, text, 150.0f, -55.0f, p, url); +} |