blob: 09b3acdbdbea03debfcb43710603450d16545585 [file] [log] [blame]
reed@android.comed8dbf72010-02-11 13:56:04 +00001#include "SkTextLayout.h"
2
3SkTextStyle::SkTextStyle() {
4 fPaint.setAntiAlias(true);
5}
6
7SkTextStyle::SkTextStyle(const SkTextStyle& src) : fPaint(src.fPaint) {}
8
9SkTextStyle::SkTextStyle(const SkPaint& paint) : fPaint(paint) {}
10
11SkTextStyle::~SkTextStyle() {}
12
13///////////////////////////////////////////////////////////////////////////////
14
15SkTextLayout::SkTextLayout() {
16 fBounds.setEmpty();
17 fDefaultStyle = new SkTextStyle;
18}
19
20SkTextLayout::~SkTextLayout() {
21 fDefaultStyle->unref();
22 fLines.deleteAll();
23}
24
25void SkTextLayout::setText(const char text[], size_t length) {
26 fText.setCount(length);
27 memcpy(fText.begin(), text, length);
28}
29
30void SkTextLayout::setBounds(const SkRect& bounds) {
31 fBounds = bounds;
32 // if width changed, inval cache
33}
34
35SkTextStyle* SkTextLayout::setDefaultStyle(SkTextStyle* style) {
36 SkRefCnt_SafeAssign(fDefaultStyle, style);
37 return style;
38}
39
40///////////////////////////////////////////////////////////////////////////////
41
42struct SkTextLayout::GlyphRun {
43 GlyphRun();
44 ~GlyphRun();
45
46 SkPoint* fLocs;
47 uint16_t* fGlyphIDs;
48 int fCount;
49};
50
51SkTextLayout::GlyphRun::GlyphRun() : fLocs(NULL), fGlyphIDs(NULL), fCount(0) {}
52
53SkTextLayout::GlyphRun::~GlyphRun() {
54 delete[] fLocs;
55 delete[] fGlyphIDs;
56}
57
58struct SkTextLayout::Line {
59 Line() {}
60 ~Line();
61
62 SkScalar fBaselineY;
63 SkTDArray<GlyphRun*> fRuns;
64};
65
66SkTextLayout::Line::~Line() {
67 fRuns.deleteAll();
68}
69
70void SkTextLayout::draw(SkCanvas* canvas) {
71}
72