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 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 29SkTextToPath::SkTextToPath() : paint(NULL), path(NULL), text(NULL) { 30} 31 32bool SkTextToPath::draw(SkAnimateMaker& maker) { 33 path->draw(maker); 34 return false; 35} 36 37void 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