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