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