aboutsummaryrefslogtreecommitdiffhomepage
path: root/gm/typeface.cpp
diff options
context:
space:
mode:
authorGravatar bungeman <bungeman@google.com>2016-07-12 15:01:19 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2016-07-12 15:01:19 -0700
commit7438bfc0804d021aa92cdd5ea644994a4248f3db (patch)
tree0b801d131d01d45e83160a6d0d877949590908de /gm/typeface.cpp
parent2edf0c6a719b8dff4365628cf3b4481c5035f07a (diff)
Factor code to rotate a canvas about a point.
SkMatrix::scale and ::rotate take a point around which to scale or rotate. Canvas lacks these helpers, so the code to rotate a canvas around a point has been duplicated many times. Factor all of these implementations into SkCanvas::rotate. GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2142033002 Review-Url: https://codereview.chromium.org/2142033002
Diffstat (limited to 'gm/typeface.cpp')
-rw-r--r--gm/typeface.cpp15
1 files changed, 2 insertions, 13 deletions
diff --git a/gm/typeface.cpp b/gm/typeface.cpp
index 34420dbee1..d579a156a6 100644
--- a/gm/typeface.cpp
+++ b/gm/typeface.cpp
@@ -154,20 +154,9 @@ private:
typedef skiagm::GM INHERITED;
};
-static void rotate_about(SkCanvas* canvas,
- SkScalar degrees,
- SkScalar px, SkScalar py) {
- canvas->translate(px, py);
- canvas->rotate(degrees);
- canvas->translate(-px, -py);
-}
-
class TypefaceRenderingGM : public skiagm::GM {
sk_sp<SkTypeface> fFace;
-public:
- TypefaceRenderingGM() { }
-
protected:
void onOnceBeforeDraw() override {
fFace = MakeResourceAsTypeface("/fonts/hintgasp.ttf");
@@ -256,8 +245,8 @@ protected:
for (const bool& rotateABit : rotateABitTypes) {
SkAutoCanvasRestore acr(canvas, true);
if (rotateABit) {
- rotate_about(canvas, 2, x + subpixel.offset.x(),
- y + subpixel.offset.y());
+ canvas->rotate(2, x + subpixel.offset.x(),
+ y + subpixel.offset.y());
}
canvas->drawText("A", 1, x + subpixel.offset.x(),
y + subpixel.offset.y(), paint);