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 "SkTextToPath.h"
11 #include "SkAnimateMaker.h"
12 #include "SkDrawPaint.h"
13 #include "SkDrawPath.h"
14 #include "SkDrawText.h"
15 #include "SkPaint.h"
16 
17 #if SK_USE_CONDENSED_INFO == 0
18 
19 const SkMemberInfo SkTextToPath::fInfo[] = {
20     SK_MEMBER(paint, Paint),
21     SK_MEMBER(path, Path),
22     SK_MEMBER(text, Text)
23 };
24 
25 #endif
26 
27 DEFINE_GET_MEMBER(SkTextToPath);
28 
SkTextToPath()29 SkTextToPath::SkTextToPath() : paint(NULL), path(NULL), text(NULL) {
30 }
31 
draw(SkAnimateMaker & maker)32 bool SkTextToPath::draw(SkAnimateMaker& maker) {
33     path->draw(maker);
34     return false;
35 }
36 
onEndElement(SkAnimateMaker & maker)37 void SkTextToPath::onEndElement(SkAnimateMaker& maker) {
38     if (paint == NULL || path == NULL || text == NULL) {
39         // !!! add error message here
40         maker.setErrorCode(SkDisplayXMLParserError::kErrorInAttributeValue);
41         return;
42     }
43     SkPaint realPaint;
44     paint->setupPaint(&realPaint);
45     realPaint.getTextPath(text->getText(), text->getSize(), text->x,
46         text->y, &path->getPath());
47 }
48