158190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger/* 258190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger * Copyright 2013 Google Inc. 358190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger * 458190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger * Use of this source code is governed by a BSD-style license that can be 558190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger * found in the LICENSE file. 658190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger */ 758190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger 858190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger#include "gm.h" 958190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger#include "SkCanvas.h" 1058190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger#include "SkPath.h" 1158190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger 1258190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger/** 1358190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger * Skia may draw from outlines when the size is very large, so we exercise that 1458190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger * here. 1558190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger*/ 1658190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger 1758190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenbergerclass BigTextGM : public skiagm::GM { 1858190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenbergerpublic: 1958190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger BigTextGM() {} 2058190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger 2158190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenbergerprotected: 2258190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger virtual SkString onShortName() SK_OVERRIDE { 2358190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger return SkString("bigtext"); 2458190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger } 2558190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger 2658190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger virtual SkISize onISize() SK_OVERRIDE { 2758190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger return SkISize::Make(640, 480); 2858190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger } 2958190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger 3058190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger virtual void onDraw(SkCanvas* canvas) SK_OVERRIDE { 3158190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger SkPaint paint; 3258190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger paint.setAntiAlias(true); 3358190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger paint.setTextSize(1500); 3458190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger 3558190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger SkRect r; 3658190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger (void)paint.measureText("/", 1, &r); 3758190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger SkPoint pos = { 3858190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger this->width()/2 - r.centerX(), 3958190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger this->height()/2 - r.centerY() 4058190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger }; 4158190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger 4258190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger paint.setColor(SK_ColorRED); 4358190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger canvas->drawText("/", 1, pos.fX, pos.fY, paint); 4458190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger 4558190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger paint.setColor(SK_ColorBLUE); 4658190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger canvas->drawPosText("\\", 1, &pos, paint); 4758190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger } 4858190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger 4958190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenbergerprivate: 5058190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger typedef skiagm::GM INHERITED; 5158190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger}; 5258190644c30e1c4aa8e527f3503c58f841e0fcf3Derek Sollenberger 5358190644c30e1c4aa8e527f3503c58f841e0fcf3Derek SollenbergerDEF_GM( return SkNEW(BigTextGM); ) 54