colortype.cpp revision 42e2cf71d5a867cbc442b8571cf91f8a7c07ead4
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 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 }; 20 SkShader* s = SkGradientShader::CreateSweep(0,0, colors, NULL, 21 SK_ARRAY_COUNT(colors)); 22 SkMatrix local; 23 local.setRotate(180); 24 s->setLocalMatrix(local); 25 26 SkPaint paint; 27 paint.setAntiAlias(true); 28 paint.setShader(s)->unref(); 29 30 SkAutoTUnref<SkTypeface> orig(SkTypeface::CreateFromName("Times", 31 SkTypeface::kBold)); 32 fColorType = SkNEW_ARGS(SkGTypeface, (orig, paint)); 33 } 34 35 virtual ~ColorTypeGM() { 36 fColorType->unref(); 37 } 38 39protected: 40 virtual SkString onShortName() SK_OVERRIDE { 41 return SkString("colortype"); 42 } 43 44 virtual SkISize onISize() SK_OVERRIDE { 45 return SkISize::Make(640, 480); 46 } 47 48 virtual void onDraw(SkCanvas* canvas) SK_OVERRIDE { 49 SkPaint paint; 50 paint.setAntiAlias(true); 51 paint.setTypeface(fColorType); 52 53 for (int size = 10; size <= 100; size += 10) { 54 paint.setTextSize(size); 55 canvas->translate(0, paint.getFontMetrics(NULL)); 56 canvas->drawText("Hamburgefons", 12, 10, 10, paint); 57 } 58 } 59 60 virtual uint32_t onGetFlags() const { 61 return kSkipPipe_Flag | kSkipPicture_Flag; 62 } 63 64private: 65 SkTypeface* fColorType; 66 67 typedef skiagm::GM INHERITED; 68}; 69 70DEF_GM( return SkNEW(ColorTypeGM); ) 71