blob: 842dbc97526b7d62d85fa8bfbaabe9c9d78ad3ac [file] [log] [blame]
epoger@google.comec3ed6a2011-07-28 14:26:00 +00001/*
2 * Copyright 2006 The Android Open Source Project
3 *
4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file.
6 */
7
reed@google.com8d4dc712014-04-18 15:14:25 +00008#include "SkPaintPart.h"
reed@android.com8a1c16f2008-12-17 15:59:43 +00009#include "SkDrawPaint.h"
10#ifdef SK_DUMP_ENABLED
11#include "SkDisplayList.h"
12#include "SkDump.h"
13#endif
14
halcanary96fcdcc2015-08-27 07:41:13 -070015SkPaintPart::SkPaintPart() : fPaint(nullptr) {
reed@android.com8a1c16f2008-12-17 15:59:43 +000016}
17
18SkDisplayable* SkPaintPart::getParent() const {
19 return fPaint;
20}
21
22bool SkPaintPart::setParent(SkDisplayable* parent) {
halcanary96fcdcc2015-08-27 07:41:13 -070023 SkASSERT(parent != nullptr);
reed@android.com8a1c16f2008-12-17 15:59:43 +000024 if (parent->isPaint() == false)
25 return true;
26 fPaint = (SkDrawPaint*) parent;
27 return false;
28}
29
30
31// SkDrawMaskFilter
32bool SkDrawMaskFilter::add() {
33 if (fPaint->maskFilter != (SkDrawMaskFilter*) -1)
34 return true;
35 fPaint->maskFilter = this;
36 fPaint->fOwnsMaskFilter = true;
37 return false;
38}
39
40SkMaskFilter* SkDrawMaskFilter::getMaskFilter() {
halcanary96fcdcc2015-08-27 07:41:13 -070041 return nullptr;
reed@android.com8a1c16f2008-12-17 15:59:43 +000042}
43
44
45// SkDrawPathEffect
46bool SkDrawPathEffect::add() {
47 if (fPaint->isPaint()) {
48 if (fPaint->pathEffect != (SkDrawPathEffect*) -1)
49 return true;
50 fPaint->pathEffect = this;
51 fPaint->fOwnsPathEffect = true;
52 return false;
53 }
halcanary96fcdcc2015-08-27 07:41:13 -070054 fPaint->add(nullptr, this);
reed@android.com8a1c16f2008-12-17 15:59:43 +000055 return false;
56}
57
58SkPathEffect* SkDrawPathEffect::getPathEffect() {
halcanary96fcdcc2015-08-27 07:41:13 -070059 return nullptr;
reed@android.com8a1c16f2008-12-17 15:59:43 +000060}
61
62
63// SkDrawShader
64SkShader* SkDrawShader::getShader() {
halcanary96fcdcc2015-08-27 07:41:13 -070065 return nullptr;
reed@android.com8a1c16f2008-12-17 15:59:43 +000066}
67
68
69// Typeface
70#if SK_USE_CONDENSED_INFO == 0
71
72const SkMemberInfo SkDrawTypeface::fInfo[] = {
73 SK_MEMBER(fontName, String),
74 SK_MEMBER(style, FontStyle)
75};
76
77#endif
78
79DEFINE_GET_MEMBER(SkDrawTypeface);
80
81SkDrawTypeface::SkDrawTypeface() : style (SkTypeface::kNormal){
82}
83
84bool SkDrawTypeface::add() {
85 if (fPaint->typeface != (SkDrawTypeface*) -1)
86 return true;
87 fPaint->typeface = this;
88 fPaint->fOwnsTypeface = true;
89 return false;
90}
91
92#ifdef SK_DUMP_ENABLED
sugoi@google.com93c7ee32013-03-12 14:36:57 +000093void SkDrawTypeface::dump(SkAnimateMaker*) {
reed@android.com8a1c16f2008-12-17 15:59:43 +000094 SkDebugf("%*s<typeface fontName=\"%s\" ", SkDisplayList::fIndent, "", fontName.c_str());
95 SkString string;
96 SkDump::GetEnumString(SkType_FontStyle, style, &string);
97 SkDebugf("style=\"%s\" />\n", string.c_str());
98}
99#endif