blob: c9314de2a456479eecd88b92fcd3cec6c41ac9e1 [file] [log] [blame]
reed@google.com7edec142013-05-31 20:17:57 +00001/*
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.h"
9#include "SkCanvas.h"
10#include "SkGradientShader.h"
11#include "../src/fonts/SkGScalerContext.h"
12
13class ColorTypeGM : public skiagm::GM {
14public:
kkinnunenb4a797f2015-05-21 06:15:28 -070015 ColorTypeGM()
halcanary96fcdcc2015-08-27 07:41:13 -070016 : fColorType(nullptr) {
kkinnunenb4a797f2015-05-21 06:15:28 -070017 }
18
19 virtual ~ColorTypeGM() {
20 SkSafeUnref(fColorType);
21 }
22
23protected:
24 void onOnceBeforeDraw() override {
reed@google.com7edec142013-05-31 20:17:57 +000025 const SkColor colors[] = {
26 SK_ColorRED, SK_ColorGREEN, SK_ColorBLUE,
27 SK_ColorMAGENTA, SK_ColorCYAN, SK_ColorYELLOW
28 };
reed@google.com7edec142013-05-31 20:17:57 +000029 SkMatrix local;
30 local.setRotate(180);
reed@google.com7edec142013-05-31 20:17:57 +000031 SkPaint paint;
32 paint.setAntiAlias(true);
reed2ad1aa62016-03-09 09:50:50 -080033 paint.setShader(SkGradientShader::MakeSweep(0, 0, colors, nullptr, SK_ARRAY_COUNT(colors),
34 0, &local));
skia.committer@gmail.com26da7f02013-06-01 07:01:39 +000035
reed2ad1aa62016-03-09 09:50:50 -080036 SkTypeface* orig = sk_tool_utils::create_portable_typeface("serif", SkTypeface::kBold);
halcanary96fcdcc2015-08-27 07:41:13 -070037 if (nullptr == orig) {
reed@google.com13e15402013-06-03 17:45:29 +000038 orig = SkTypeface::RefDefault();
39 }
halcanary385fe4d2015-08-26 13:07:48 -070040 fColorType = new SkGTypeface(orig, paint);
reed@google.com13e15402013-06-03 17:45:29 +000041 orig->unref();
reed@google.com7edec142013-05-31 20:17:57 +000042 }
skia.committer@gmail.com26da7f02013-06-01 07:01:39 +000043
mtklein36352bf2015-03-25 18:17:31 -070044 SkString onShortName() override {
reed@google.com7edec142013-05-31 20:17:57 +000045 return SkString("colortype");
46 }
47
mtklein36352bf2015-03-25 18:17:31 -070048 SkISize onISize() override {
reed@google.com7edec142013-05-31 20:17:57 +000049 return SkISize::Make(640, 480);
50 }
51
mtklein36352bf2015-03-25 18:17:31 -070052 void onDraw(SkCanvas* canvas) override {
reed@google.com7edec142013-05-31 20:17:57 +000053 SkPaint paint;
54 paint.setAntiAlias(true);
55 paint.setTypeface(fColorType);
skia.committer@gmail.com26da7f02013-06-01 07:01:39 +000056
reed@google.come1613d82013-05-31 21:13:36 +000057 for (SkScalar size = 10; size <= 100; size += 10) {
reed@google.com7edec142013-05-31 20:17:57 +000058 paint.setTextSize(size);
halcanary96fcdcc2015-08-27 07:41:13 -070059 canvas->translate(0, paint.getFontMetrics(nullptr));
reed@google.com7edec142013-05-31 20:17:57 +000060 canvas->drawText("Hamburgefons", 12, 10, 10, paint);
61 }
62 }
63
reed@google.com7edec142013-05-31 20:17:57 +000064private:
65 SkTypeface* fColorType;
66
67 typedef skiagm::GM INHERITED;
68};
69
halcanary385fe4d2015-08-26 13:07:48 -070070DEF_GM(return new ColorTypeGM;)