xref: /third_party/skia/gm/bigtext.cpp (revision cb93a386)
1/*
2 * Copyright 2013 Google Inc.
3 *
4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file.
6 */
7
8#include "gm/gm.h"
9#include "include/core/SkCanvas.h"
10#include "include/core/SkColor.h"
11#include "include/core/SkFont.h"
12#include "include/core/SkFontTypes.h"
13#include "include/core/SkPaint.h"
14#include "include/core/SkPoint.h"
15#include "include/core/SkRect.h"
16#include "include/core/SkSize.h"
17#include "include/core/SkString.h"
18#include "include/core/SkTypeface.h"
19#include "tools/ToolUtils.h"
20
21/**
22 *  Skia may draw from outlines when the size is very large, so we exercise that
23 *  here.
24*/
25
26class BigTextGM : public skiagm::GM {
27public:
28    BigTextGM() {}
29
30protected:
31
32    SkString onShortName() override {
33        return SkString("bigtext");
34    }
35
36    SkISize onISize() override {
37        return SkISize::Make(640, 480);
38    }
39
40    void onDraw(SkCanvas* canvas) override {
41        SkPaint paint;
42        paint.setAntiAlias(true);
43        SkFont font(ToolUtils::create_portable_typeface(), 1500);
44
45        SkRect r;
46        (void)font.measureText("/", 1, SkTextEncoding::kUTF8, &r);
47        SkPoint pos = {
48            this->width()/2 - r.centerX(),
49            this->height()/2 - r.centerY()
50        };
51
52        paint.setColor(SK_ColorRED);
53        canvas->drawSimpleText("/", 1, SkTextEncoding::kUTF8, pos.fX, pos.fY, font, paint);
54
55        paint.setColor(SK_ColorBLUE);
56        canvas->drawSimpleText("\\", 1, SkTextEncoding::kUTF8, pos.fX, pos.fY, font, paint);
57    }
58
59private:
60    using INHERITED = skiagm::GM;
61};
62
63DEF_GM(return new BigTextGM;)
64