blob: 76b13817a945452e369a50075e6a95e7ca2ef8f4 [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);
halcanary96fcdcc2015-08-27 07:41:13 -070031 SkShader* s = SkGradientShader::CreateSweep(0,0, colors, nullptr,
commit-bot@chromium.org83f23d82014-05-22 12:27:41 +000032 SK_ARRAY_COUNT(colors), 0, &local);
skia.committer@gmail.com26da7f02013-06-01 07:01:39 +000033
reed@google.com7edec142013-05-31 20:17:57 +000034 SkPaint paint;
35 paint.setAntiAlias(true);
36 paint.setShader(s)->unref();
skia.committer@gmail.com26da7f02013-06-01 07:01:39 +000037
caryclark1818acb2015-07-24 12:09:25 -070038 SkTypeface* orig = sk_tool_utils::create_portable_typeface("serif",
Cary Clark992c7b02014-07-31 08:58:44 -040039 SkTypeface::kBold);
halcanary96fcdcc2015-08-27 07:41:13 -070040 if (nullptr == orig) {
reed@google.com13e15402013-06-03 17:45:29 +000041 orig = SkTypeface::RefDefault();
42 }
halcanary385fe4d2015-08-26 13:07:48 -070043 fColorType = new SkGTypeface(orig, paint);
reed@google.com13e15402013-06-03 17:45:29 +000044 orig->unref();
reed@google.com7edec142013-05-31 20:17:57 +000045 }
skia.committer@gmail.com26da7f02013-06-01 07:01:39 +000046
mtklein36352bf2015-03-25 18:17:31 -070047 SkString onShortName() override {
reed@google.com7edec142013-05-31 20:17:57 +000048 return SkString("colortype");
49 }
50
mtklein36352bf2015-03-25 18:17:31 -070051 SkISize onISize() override {
reed@google.com7edec142013-05-31 20:17:57 +000052 return SkISize::Make(640, 480);
53 }
54
mtklein36352bf2015-03-25 18:17:31 -070055 void onDraw(SkCanvas* canvas) override {
reed@google.com7edec142013-05-31 20:17:57 +000056 SkPaint paint;
57 paint.setAntiAlias(true);
58 paint.setTypeface(fColorType);
skia.committer@gmail.com26da7f02013-06-01 07:01:39 +000059
reed@google.come1613d82013-05-31 21:13:36 +000060 for (SkScalar size = 10; size <= 100; size += 10) {
reed@google.com7edec142013-05-31 20:17:57 +000061 paint.setTextSize(size);
halcanary96fcdcc2015-08-27 07:41:13 -070062 canvas->translate(0, paint.getFontMetrics(nullptr));
reed@google.com7edec142013-05-31 20:17:57 +000063 canvas->drawText("Hamburgefons", 12, 10, 10, paint);
64 }
65 }
66
reed@google.com7edec142013-05-31 20:17:57 +000067private:
68 SkTypeface* fColorType;
69
70 typedef skiagm::GM INHERITED;
71};
72
halcanary385fe4d2015-08-26 13:07:48 -070073DEF_GM(return new ColorTypeGM;)