Home | History | Annotate | Download | only in gm
      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 "sk_tool_utils.h"
     10 #include "SkCanvas.h"
     11 #include "SkPath.h"
     12 
     13 /**
     14  *  Skia may draw from outlines when the size is very large, so we exercise that
     15  *  here.
     16 */
     17 
     18 class BigTextGM : public skiagm::GM {
     19 public:
     20     BigTextGM() {}
     21 
     22 protected:
     23 
     24     SkString onShortName() override {
     25         return SkString("bigtext");
     26     }
     27 
     28     SkISize onISize() override {
     29         return SkISize::Make(640, 480);
     30     }
     31 
     32     void onDraw(SkCanvas* canvas) override {
     33         SkPaint paint;
     34         paint.setAntiAlias(true);
     35         sk_tool_utils::set_portable_typeface(&paint);
     36         paint.setTextSize(1500);
     37 
     38         SkRect r;
     39         (void)paint.measureText("/", 1, &r);
     40         SkPoint pos = {
     41             this->width()/2 - r.centerX(),
     42             this->height()/2 - r.centerY()
     43         };
     44 
     45         paint.setColor(SK_ColorRED);
     46         canvas->drawString("/", pos.fX, pos.fY, paint);
     47 
     48         paint.setColor(SK_ColorBLUE);
     49         canvas->drawPosText("\\", 1, &pos, paint);
     50     }
     51 
     52 private:
     53     typedef skiagm::GM INHERITED;
     54 };
     55 
     56 DEF_GM(return new BigTextGM;)
     57