blob: 47bc8a9ab78d9af33a4336690d5a8550e8c0d0ed [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:
15 ColorTypeGM() {
16 const SkColor colors[] = {
17 SK_ColorRED, SK_ColorGREEN, SK_ColorBLUE,
18 SK_ColorMAGENTA, SK_ColorCYAN, SK_ColorYELLOW
19 };
reed@google.com7edec142013-05-31 20:17:57 +000020 SkMatrix local;
21 local.setRotate(180);
commit-bot@chromium.org9c9005a2014-04-28 14:55:39 +000022 SkShader* s = SkGradientShader::CreateSweep(0,0, colors, NULL,
commit-bot@chromium.org3339ac52014-05-22 02:55:59 +000023 SK_ARRAY_COUNT(colors), NULL, 0, &local);
skia.committer@gmail.com26da7f02013-06-01 07:01:39 +000024
reed@google.com7edec142013-05-31 20:17:57 +000025 SkPaint paint;
26 paint.setAntiAlias(true);
27 paint.setShader(s)->unref();
skia.committer@gmail.com26da7f02013-06-01 07:01:39 +000028
reed@google.com13e15402013-06-03 17:45:29 +000029 SkTypeface* orig = SkTypeface::CreateFromName("Times",
30 SkTypeface::kBold);
31 if (NULL == orig) {
32 orig = SkTypeface::RefDefault();
33 }
reed@google.com7edec142013-05-31 20:17:57 +000034 fColorType = SkNEW_ARGS(SkGTypeface, (orig, paint));
reed@google.com13e15402013-06-03 17:45:29 +000035 orig->unref();
reed@google.com7edec142013-05-31 20:17:57 +000036 }
skia.committer@gmail.com26da7f02013-06-01 07:01:39 +000037
reed@google.com7edec142013-05-31 20:17:57 +000038 virtual ~ColorTypeGM() {
39 fColorType->unref();
40 }
41
42protected:
43 virtual SkString onShortName() SK_OVERRIDE {
44 return SkString("colortype");
45 }
46
47 virtual SkISize onISize() SK_OVERRIDE {
48 return SkISize::Make(640, 480);
49 }
50
51 virtual void onDraw(SkCanvas* canvas) SK_OVERRIDE {
52 SkPaint paint;
53 paint.setAntiAlias(true);
54 paint.setTypeface(fColorType);
skia.committer@gmail.com26da7f02013-06-01 07:01:39 +000055
reed@google.come1613d82013-05-31 21:13:36 +000056 for (SkScalar size = 10; size <= 100; size += 10) {
reed@google.com7edec142013-05-31 20:17:57 +000057 paint.setTextSize(size);
58 canvas->translate(0, paint.getFontMetrics(NULL));
59 canvas->drawText("Hamburgefons", 12, 10, 10, paint);
60 }
61 }
62
reed@google.com42e2cf72013-05-31 21:09:06 +000063 virtual uint32_t onGetFlags() const {
64 return kSkipPipe_Flag | kSkipPicture_Flag;
65 }
reed@google.com7edec142013-05-31 20:17:57 +000066
67private:
68 SkTypeface* fColorType;
69
70 typedef skiagm::GM INHERITED;
71};
72
73DEF_GM( return SkNEW(ColorTypeGM); )