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.h" 9 #include "SkCanvas.h" 10 #include "SkGradientShader.h" 11 #include "../src/fonts/SkGScalerContext.h" 12 13 class ColorTypeGM : public skiagm::GM { 14 public: 15 ColorTypeGM() { 16 const SkColor colors[] = { 17 SK_ColorRED, SK_ColorGREEN, SK_ColorBLUE, 18 SK_ColorMAGENTA, SK_ColorCYAN, SK_ColorYELLOW 19 }; 20 SkMatrix local; 21 local.setRotate(180); 22 SkShader* s = SkGradientShader::CreateSweep(0,0, colors, NULL, 23 SK_ARRAY_COUNT(colors), 0, &local); 24 25 SkPaint paint; 26 paint.setAntiAlias(true); 27 paint.setShader(s)->unref(); 28 29 SkTypeface* orig = sk_tool_utils::create_portable_typeface("Times", 30 SkTypeface::kBold); 31 if (NULL == orig) { 32 orig = SkTypeface::RefDefault(); 33 } 34 fColorType = SkNEW_ARGS(SkGTypeface, (orig, paint)); 35 orig->unref(); 36 } 37 38 virtual ~ColorTypeGM() { 39 fColorType->unref(); 40 } 41 42 protected: 43 SkString onShortName() override { 44 return SkString("colortype"); 45 } 46 47 SkISize onISize() override { 48 return SkISize::Make(640, 480); 49 } 50 51 void onDraw(SkCanvas* canvas) override { 52 SkPaint paint; 53 paint.setAntiAlias(true); 54 paint.setTypeface(fColorType); 55 56 for (SkScalar size = 10; size <= 100; size += 10) { 57 paint.setTextSize(size); 58 canvas->translate(0, paint.getFontMetrics(NULL)); 59 canvas->drawText("Hamburgefons", 12, 10, 10, paint); 60 } 61 } 62 63 private: 64 SkTypeface* fColorType; 65 66 typedef skiagm::GM INHERITED; 67 }; 68 69 DEF_GM( return SkNEW(ColorTypeGM); ) 70