Home | History | Annotate | Download | only in text
      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 #include "SkTextLayout.h"
      9 
     10 SkTextStyle::SkTextStyle() {
     11     fPaint.setAntiAlias(true);
     12 }
     13 
     14 SkTextStyle::SkTextStyle(const SkTextStyle& src) : fPaint(src.fPaint) {}
     15 
     16 SkTextStyle::SkTextStyle(const SkPaint& paint) : fPaint(paint) {}
     17 
     18 SkTextStyle::~SkTextStyle() {}
     19 
     20 ///////////////////////////////////////////////////////////////////////////////
     21 
     22 SkTextLayout::SkTextLayout() {
     23     fBounds.setEmpty();
     24     fDefaultStyle = new SkTextStyle;
     25 }
     26 
     27 SkTextLayout::~SkTextLayout() {
     28     fDefaultStyle->unref();
     29     fLines.deleteAll();
     30 }
     31 
     32 void SkTextLayout::setText(const char text[], size_t length) {
     33     fText.setCount(length);
     34     memcpy(fText.begin(), text, length);
     35 }
     36 
     37 void SkTextLayout::setBounds(const SkRect& bounds) {
     38     fBounds = bounds;
     39     // if width changed, inval cache
     40 }
     41 
     42 SkTextStyle* SkTextLayout::setDefaultStyle(SkTextStyle* style) {
     43     SkRefCnt_SafeAssign(fDefaultStyle, style);
     44     return style;
     45 }
     46 
     47 ///////////////////////////////////////////////////////////////////////////////
     48 
     49 struct SkTextLayout::GlyphRun {
     50     GlyphRun();
     51     ~GlyphRun();
     52 
     53     SkPoint*    fLocs;
     54     uint16_t*   fGlyphIDs;
     55     int         fCount;
     56 };
     57 
     58 SkTextLayout::GlyphRun::GlyphRun() : fLocs(NULL), fGlyphIDs(NULL), fCount(0) {}
     59 
     60 SkTextLayout::GlyphRun::~GlyphRun() {
     61     delete[] fLocs;
     62     delete[] fGlyphIDs;
     63 }
     64 
     65 struct SkTextLayout::Line {
     66     Line() {}
     67     ~Line();
     68 
     69     SkScalar                fBaselineY;
     70     SkTDArray<GlyphRun*>    fRuns;
     71 };
     72 
     73 SkTextLayout::Line::~Line() {
     74     fRuns.deleteAll();
     75 }
     76 
     77 void SkTextLayout::draw(SkCanvas* canvas) {
     78 }
     79 
     80