1 2/* 3 * Copyright 2011 Google Inc. 4 * 5 * Use of this source code is governed by a BSD-style license that can be 6 * found in the LICENSE file. 7 */ 8 9 10/* Tests text rendering with LCD and subpixel rendering turned on and off. 11 */ 12 13#include "gm.h" 14#include "SkCanvas.h" 15 16namespace skiagm { 17 18class LcdTextGM : public GM { 19public: 20 LcdTextGM() { 21 const int pointSize = 36; 22 textHeight = SkIntToScalar(pointSize); 23 } 24 25protected: 26 27 SkString onShortName() { 28 return SkString("lcdtext"); 29 } 30 31 SkISize onISize() { return make_isize(640, 480); } 32 33 virtual void onDraw(SkCanvas* canvas) { 34 35 y = textHeight; 36 drawText(canvas, SkString("TEXT: SubpixelTrue LCDRenderTrue"), 37 true, true); 38 drawText(canvas, SkString("TEXT: SubpixelTrue LCDRenderFalse"), 39 true, false); 40 drawText(canvas, SkString("TEXT: SubpixelFalse LCDRenderTrue"), 41 false, true); 42 drawText(canvas, SkString("TEXT: SubpixelFalse LCDRenderFalse"), 43 false, false); 44 } 45 46 void drawText(SkCanvas* canvas, const SkString& string, 47 bool subpixelTextEnabled, bool lcdRenderTextEnabled) { 48 SkPaint paint; 49 paint.setColor(SK_ColorBLACK); 50 paint.setDither(true); 51 paint.setAntiAlias(true); 52 paint.setSubpixelText(subpixelTextEnabled); 53 paint.setLCDRenderText(lcdRenderTextEnabled); 54 paint.setTextSize(textHeight); 55 56 canvas->drawText(string.c_str(), string.size(), 0, y, paint); 57 y += textHeight; 58 } 59 60private: 61 typedef GM INHERITED; 62 SkScalar y, textHeight; 63}; 64 65/////////////////////////////////////////////////////////////////////////////// 66 67static GM* MyFactory(void*) { return new LcdTextGM; } 68static GMRegistry reg(MyFactory); 69 70} 71