blob: d4b525b9afc85cf99fe1a5133f83a30f5ff6b0e1 [file] [log] [blame]
epoger@google.comec3ed6a2011-07-28 14:26:00 +00001
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
reed@android.com8a1c16f2008-12-17 15:59:43 +00009
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
19const SkMemberInfo SkTextToPath::fInfo[] = {
20 SK_MEMBER(paint, Paint),
21 SK_MEMBER(path, Path),
22 SK_MEMBER(text, Text)
23};
24
25#endif
26
27DEFINE_GET_MEMBER(SkTextToPath);
28
halcanary96fcdcc2015-08-27 07:41:13 -070029SkTextToPath::SkTextToPath() : paint(nullptr), path(nullptr), text(nullptr) {
reed@android.com8a1c16f2008-12-17 15:59:43 +000030}
31
32bool SkTextToPath::draw(SkAnimateMaker& maker) {
33 path->draw(maker);
34 return false;
35}
36
37void SkTextToPath::onEndElement(SkAnimateMaker& maker) {
halcanary96fcdcc2015-08-27 07:41:13 -070038 if (paint == nullptr || path == nullptr || text == nullptr) {
reed@android.com8a1c16f2008-12-17 15:59:43 +000039 // !!! add error message here
40 maker.setErrorCode(SkDisplayXMLParserError::kErrorInAttributeValue);
41 return;
42 }
43 SkPaint realPaint;
44 paint->setupPaint(&realPaint);
rmistry@google.comd6176b02012-08-23 18:14:13 +000045 realPaint.getTextPath(text->getText(), text->getSize(), text->x,
reed@android.com8a1c16f2008-12-17 15:59:43 +000046 text->y, &path->getPath());
47}