gfx/skia/trunk/src/text/SkTextLayout.cpp

branch
TOR_BUG_3246
changeset 7
129ffea94266
equal deleted inserted replaced
-1:000000000000 0:94e7286270d9
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 }

mercurial