blob: 516bb75b4acadc9e39fbcf2401f764f83405c43e [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:
bungeman13b9c952016-05-12 10:09:30 -070015 ColorTypeGM() {}
kkinnunenb4a797f2015-05-21 06:15:28 -070016
17protected:
18 void onOnceBeforeDraw() override {
reed@google.com7edec142013-05-31 20:17:57 +000019 const SkColor colors[] = {
20 SK_ColorRED, SK_ColorGREEN, SK_ColorBLUE,
21 SK_ColorMAGENTA, SK_ColorCYAN, SK_ColorYELLOW
22 };
reed@google.com7edec142013-05-31 20:17:57 +000023 SkMatrix local;
24 local.setRotate(180);
reed@google.com7edec142013-05-31 20:17:57 +000025 SkPaint paint;
26 paint.setAntiAlias(true);
reed2ad1aa62016-03-09 09:50:50 -080027 paint.setShader(SkGradientShader::MakeSweep(0, 0, colors, nullptr, SK_ARRAY_COUNT(colors),
28 0, &local));
skia.committer@gmail.com26da7f02013-06-01 07:01:39 +000029
mbocee6a9912016-05-31 11:42:36 -070030 sk_sp<SkTypeface> orig(sk_tool_utils::create_portable_typeface(
31 "serif", SkFontStyle::FromOldStyle(SkTypeface::kBold)));
halcanary96fcdcc2015-08-27 07:41:13 -070032 if (nullptr == orig) {
bungeman13b9c952016-05-12 10:09:30 -070033 orig = SkTypeface::MakeDefault();
reed@google.com13e15402013-06-03 17:45:29 +000034 }
bungeman13b9c952016-05-12 10:09:30 -070035 fColorType = sk_make_sp<SkGTypeface>(std::move(orig), paint);
reed@google.com7edec142013-05-31 20:17:57 +000036 }
skia.committer@gmail.com26da7f02013-06-01 07:01:39 +000037
mtklein36352bf2015-03-25 18:17:31 -070038 SkString onShortName() override {
reed@google.com7edec142013-05-31 20:17:57 +000039 return SkString("colortype");
40 }
41
mtklein36352bf2015-03-25 18:17:31 -070042 SkISize onISize() override {
reed@google.com7edec142013-05-31 20:17:57 +000043 return SkISize::Make(640, 480);
44 }
45
mtklein36352bf2015-03-25 18:17:31 -070046 void onDraw(SkCanvas* canvas) override {
reed@google.com7edec142013-05-31 20:17:57 +000047 SkPaint paint;
48 paint.setAntiAlias(true);
49 paint.setTypeface(fColorType);
skia.committer@gmail.com26da7f02013-06-01 07:01:39 +000050
reed@google.come1613d82013-05-31 21:13:36 +000051 for (SkScalar size = 10; size <= 100; size += 10) {
reed@google.com7edec142013-05-31 20:17:57 +000052 paint.setTextSize(size);
halcanary96fcdcc2015-08-27 07:41:13 -070053 canvas->translate(0, paint.getFontMetrics(nullptr));
reed@google.com7edec142013-05-31 20:17:57 +000054 canvas->drawText("Hamburgefons", 12, 10, 10, paint);
55 }
56 }
57
reed@google.com7edec142013-05-31 20:17:57 +000058private:
bungeman13b9c952016-05-12 10:09:30 -070059 sk_sp<SkTypeface> fColorType;
reed@google.com7edec142013-05-31 20:17:57 +000060
61 typedef skiagm::GM INHERITED;
62};
63
halcanary385fe4d2015-08-26 13:07:48 -070064DEF_GM(return new ColorTypeGM;)