OLD | NEW |
| (Empty) |
1 /* libs/graphics/animator/SkXMLAnimatorWriter.cpp | |
2 ** | |
3 ** Copyright 2006, The Android Open Source Project | |
4 ** | |
5 ** Licensed under the Apache License, Version 2.0 (the "License"); | |
6 ** you may not use this file except in compliance with the License. | |
7 ** You may obtain a copy of the License at | |
8 ** | |
9 ** http://www.apache.org/licenses/LICENSE-2.0 | |
10 ** | |
11 ** Unless required by applicable law or agreed to in writing, software | |
12 ** distributed under the License is distributed on an "AS IS" BASIS, | |
13 ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
14 ** See the License for the specific language governing permissions and | |
15 ** limitations under the License. | |
16 */ | |
17 | |
18 #include "SkXMLAnimatorWriter.h" | |
19 #include "SkAnimator.h" | |
20 #include "SkAnimateMaker.h" | |
21 #include "SkDisplayXMLParser.h" | |
22 | |
23 SkXMLAnimatorWriter::SkXMLAnimatorWriter(SkAnimator* animator) : fAnimator(anima
tor) | |
24 { | |
25 fParser = new SkDisplayXMLParser(*fAnimator->fMaker); | |
26 } | |
27 | |
28 SkXMLAnimatorWriter::~SkXMLAnimatorWriter() { | |
29 delete fParser; | |
30 } | |
31 | |
32 void SkXMLAnimatorWriter::onAddAttributeLen(const char name[], const char value[
], size_t length) | |
33 { | |
34 fParser->onAddAttributeLen(name, value, length); | |
35 } | |
36 | |
37 void SkXMLAnimatorWriter::onEndElement() | |
38 { | |
39 Elem* elem = getEnd(); | |
40 fParser->onEndElement(elem->fName.c_str()); | |
41 doEnd(elem); | |
42 } | |
43 | |
44 void SkXMLAnimatorWriter::onStartElementLen(const char name[], size_t length) | |
45 { | |
46 doStart(name, length); | |
47 fParser->onStartElementLen(name, length); | |
48 } | |
49 | |
50 void SkXMLAnimatorWriter::writeHeader() | |
51 { | |
52 } | |
53 | |
54 #ifdef SK_DEBUG | |
55 #include "SkCanvas.h" | |
56 #include "SkPaint.h" | |
57 | |
58 void SkXMLAnimatorWriter::UnitTest(SkCanvas* canvas) | |
59 { | |
60 SkAnimator s; | |
61 SkXMLAnimatorWriter w(&s); | |
62 w.startElement("screenplay"); | |
63 w.startElement("animateField"); | |
64 w.addAttribute("field", "x1"); | |
65 w.addAttribute("id", "to100"); | |
66 w.addAttribute("from", "0"); | |
67 w.addAttribute("to", "100"); | |
68 w.addAttribute("dur", "1"); | |
69 w.endElement(); | |
70 w.startElement("event"); | |
71 w.addAttribute("kind", "onLoad"); | |
72 w.startElement("line"); | |
73 w.addAttribute("id", "line"); | |
74 w.addAttribute("x1", "-1"); | |
75 w.addAttribute("y1", "20"); | |
76 w.addAttribute("x2", "150"); | |
77 w.addAttribute("y2", "40"); | |
78 w.endElement(); | |
79 w.startElement("apply"); | |
80 w.addAttribute("animator", "to100"); | |
81 w.addAttribute("scope", "line"); | |
82 w.endElement(); | |
83 w.endElement(); | |
84 w.endElement(); | |
85 SkPaint paint; | |
86 canvas->drawColor(SK_ColorWHITE); | |
87 s.draw(canvas, &paint, 0); | |
88 } | |
89 | |
90 #endif | |
91 | |
OLD | NEW |