1
2/*
3 * Copyright 2006 The Android Open Source Project
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
9
10#include "SkPaintParts.h"
11#include "SkDrawPaint.h"
12#ifdef SK_DUMP_ENABLED
13#include "SkDisplayList.h"
14#include "SkDump.h"
15#endif
16
17SkPaintPart::SkPaintPart() : fPaint(NULL) {
18}
19
20SkDisplayable* SkPaintPart::getParent() const {
21    return fPaint;
22}
23
24bool SkPaintPart::setParent(SkDisplayable* parent) {
25    SkASSERT(parent != NULL);
26    if (parent->isPaint() == false)
27        return true;
28    fPaint = (SkDrawPaint*) parent;
29    return false;
30}
31
32
33// SkDrawMaskFilter
34bool SkDrawMaskFilter::add() {
35    if (fPaint->maskFilter != (SkDrawMaskFilter*) -1)
36        return true;
37    fPaint->maskFilter = this;
38    fPaint->fOwnsMaskFilter = true;
39    return false;
40}
41
42SkMaskFilter* SkDrawMaskFilter::getMaskFilter() {
43    return NULL;
44}
45
46
47// SkDrawPathEffect
48bool SkDrawPathEffect::add() {
49    if (fPaint->isPaint()) {
50        if (fPaint->pathEffect != (SkDrawPathEffect*) -1)
51            return true;
52        fPaint->pathEffect = this;
53        fPaint->fOwnsPathEffect = true;
54        return false;
55    }
56    fPaint->add(NULL, this);
57    return false;
58}
59
60SkPathEffect* SkDrawPathEffect::getPathEffect() {
61    return NULL;
62}
63
64
65// SkDrawShader
66SkShader* SkDrawShader::getShader() {
67    return NULL;
68}
69
70
71// Typeface
72#if SK_USE_CONDENSED_INFO == 0
73
74const SkMemberInfo SkDrawTypeface::fInfo[] = {
75    SK_MEMBER(fontName, String),
76    SK_MEMBER(style, FontStyle)
77};
78
79#endif
80
81DEFINE_GET_MEMBER(SkDrawTypeface);
82
83SkDrawTypeface::SkDrawTypeface() : style (SkTypeface::kNormal){
84}
85
86bool SkDrawTypeface::add() {
87    if (fPaint->typeface != (SkDrawTypeface*) -1)
88        return true;
89    fPaint->typeface = this;
90    fPaint->fOwnsTypeface = true;
91    return false;
92}
93
94#ifdef SK_DUMP_ENABLED
95void SkDrawTypeface::dump(SkAnimateMaker* maker) {
96    SkDebugf("%*s<typeface fontName=\"%s\" ", SkDisplayList::fIndent, "", fontName.c_str());
97    SkString string;
98    SkDump::GetEnumString(SkType_FontStyle, style, &string);
99    SkDebugf("style=\"%s\" />\n", string.c_str());
100}
101#endif
102