Home | History | Annotate | Download | only in animator
      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 
     29 SkTextToPath::SkTextToPath() : paint(nullptr), path(nullptr), text(nullptr) {
     30 }
     31 
     32 bool SkTextToPath::draw(SkAnimateMaker& maker) {
     33     path->draw(maker);
     34     return false;
     35 }
     36 
     37 void SkTextToPath::onEndElement(SkAnimateMaker& maker) {
     38     if (paint == nullptr || path == nullptr || text == nullptr) {
     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