15a64902ee92847f53dfc5b211da19d074179be64reed@google.com/*
25a64902ee92847f53dfc5b211da19d074179be64reed@google.com * Copyright 2013 Google Inc.
35a64902ee92847f53dfc5b211da19d074179be64reed@google.com *
45a64902ee92847f53dfc5b211da19d074179be64reed@google.com * Use of this source code is governed by a BSD-style license that can be
55a64902ee92847f53dfc5b211da19d074179be64reed@google.com * found in the LICENSE file.
65a64902ee92847f53dfc5b211da19d074179be64reed@google.com */
75a64902ee92847f53dfc5b211da19d074179be64reed@google.com
85a64902ee92847f53dfc5b211da19d074179be64reed@google.com#include "gm.h"
95a64902ee92847f53dfc5b211da19d074179be64reed@google.com#include "SkCanvas.h"
105a64902ee92847f53dfc5b211da19d074179be64reed@google.com#include "SkPath.h"
115a64902ee92847f53dfc5b211da19d074179be64reed@google.com
125a64902ee92847f53dfc5b211da19d074179be64reed@google.com/**
135a64902ee92847f53dfc5b211da19d074179be64reed@google.com *  Skia may draw from outlines when the size is very large, so we exercise that
145a64902ee92847f53dfc5b211da19d074179be64reed@google.com *  here.
155a64902ee92847f53dfc5b211da19d074179be64reed@google.com*/
165a64902ee92847f53dfc5b211da19d074179be64reed@google.com
175a64902ee92847f53dfc5b211da19d074179be64reed@google.comclass BigTextGM : public skiagm::GM {
185a64902ee92847f53dfc5b211da19d074179be64reed@google.compublic:
195a64902ee92847f53dfc5b211da19d074179be64reed@google.com    BigTextGM() {}
205a64902ee92847f53dfc5b211da19d074179be64reed@google.com
215a64902ee92847f53dfc5b211da19d074179be64reed@google.comprotected:
22a90c6803865766d28e92091f56f718f5e41fe80fcommit-bot@chromium.org    virtual uint32_t onGetFlags() const SK_OVERRIDE {
23a90c6803865766d28e92091f56f718f5e41fe80fcommit-bot@chromium.org        return kSkipTiled_Flag;
24a90c6803865766d28e92091f56f718f5e41fe80fcommit-bot@chromium.org    }
25a90c6803865766d28e92091f56f718f5e41fe80fcommit-bot@chromium.org
265a64902ee92847f53dfc5b211da19d074179be64reed@google.com    virtual SkString onShortName() SK_OVERRIDE {
275a64902ee92847f53dfc5b211da19d074179be64reed@google.com        return SkString("bigtext");
285a64902ee92847f53dfc5b211da19d074179be64reed@google.com    }
295a64902ee92847f53dfc5b211da19d074179be64reed@google.com
305a64902ee92847f53dfc5b211da19d074179be64reed@google.com    virtual SkISize onISize() SK_OVERRIDE {
315a64902ee92847f53dfc5b211da19d074179be64reed@google.com        return SkISize::Make(640, 480);
325a64902ee92847f53dfc5b211da19d074179be64reed@google.com    }
335a64902ee92847f53dfc5b211da19d074179be64reed@google.com
345a64902ee92847f53dfc5b211da19d074179be64reed@google.com    virtual void onDraw(SkCanvas* canvas) SK_OVERRIDE {
355a64902ee92847f53dfc5b211da19d074179be64reed@google.com        SkPaint paint;
365a64902ee92847f53dfc5b211da19d074179be64reed@google.com        paint.setAntiAlias(true);
375a64902ee92847f53dfc5b211da19d074179be64reed@google.com        paint.setTextSize(1500);
385a64902ee92847f53dfc5b211da19d074179be64reed@google.com
395a64902ee92847f53dfc5b211da19d074179be64reed@google.com        SkRect r;
405a64902ee92847f53dfc5b211da19d074179be64reed@google.com        (void)paint.measureText("/", 1, &r);
415a64902ee92847f53dfc5b211da19d074179be64reed@google.com        SkPoint pos = {
425a64902ee92847f53dfc5b211da19d074179be64reed@google.com            this->width()/2 - r.centerX(),
435a64902ee92847f53dfc5b211da19d074179be64reed@google.com            this->height()/2 - r.centerY()
445a64902ee92847f53dfc5b211da19d074179be64reed@google.com        };
455a64902ee92847f53dfc5b211da19d074179be64reed@google.com
465a64902ee92847f53dfc5b211da19d074179be64reed@google.com        paint.setColor(SK_ColorRED);
475a64902ee92847f53dfc5b211da19d074179be64reed@google.com        canvas->drawText("/", 1, pos.fX, pos.fY, paint);
48c5fd093ae27247d0b5a28e5c741a2c1b6ff8b870skia.committer@gmail.com
495a64902ee92847f53dfc5b211da19d074179be64reed@google.com        paint.setColor(SK_ColorBLUE);
505a64902ee92847f53dfc5b211da19d074179be64reed@google.com        canvas->drawPosText("\\", 1, &pos, paint);
515a64902ee92847f53dfc5b211da19d074179be64reed@google.com    }
525a64902ee92847f53dfc5b211da19d074179be64reed@google.com
535a64902ee92847f53dfc5b211da19d074179be64reed@google.comprivate:
545a64902ee92847f53dfc5b211da19d074179be64reed@google.com    typedef skiagm::GM INHERITED;
555a64902ee92847f53dfc5b211da19d074179be64reed@google.com};
565a64902ee92847f53dfc5b211da19d074179be64reed@google.com
575a64902ee92847f53dfc5b211da19d074179be64reed@google.comDEF_GM( return SkNEW(BigTextGM); )
58