1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/gfx/skia/trunk/src/animator/SkXMLAnimatorWriter.cpp Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,82 @@ 1.4 + 1.5 +/* 1.6 + * Copyright 2006 The Android Open Source Project 1.7 + * 1.8 + * Use of this source code is governed by a BSD-style license that can be 1.9 + * found in the LICENSE file. 1.10 + */ 1.11 + 1.12 + 1.13 +#include "SkXMLAnimatorWriter.h" 1.14 +#include "SkAnimator.h" 1.15 +#include "SkAnimateMaker.h" 1.16 +#include "SkDisplayXMLParser.h" 1.17 + 1.18 +SkXMLAnimatorWriter::SkXMLAnimatorWriter(SkAnimator* animator) : fAnimator(animator) 1.19 +{ 1.20 + fParser = new SkDisplayXMLParser(*fAnimator->fMaker); 1.21 +} 1.22 + 1.23 +SkXMLAnimatorWriter::~SkXMLAnimatorWriter() { 1.24 + delete fParser; 1.25 +} 1.26 + 1.27 +void SkXMLAnimatorWriter::onAddAttributeLen(const char name[], const char value[], size_t length) 1.28 +{ 1.29 + fParser->onAddAttributeLen(name, value, length); 1.30 +} 1.31 + 1.32 +void SkXMLAnimatorWriter::onEndElement() 1.33 +{ 1.34 + Elem* elem = getEnd(); 1.35 + fParser->onEndElement(elem->fName.c_str()); 1.36 + doEnd(elem); 1.37 +} 1.38 + 1.39 +void SkXMLAnimatorWriter::onStartElementLen(const char name[], size_t length) 1.40 +{ 1.41 + doStart(name, length); 1.42 + fParser->onStartElementLen(name, length); 1.43 +} 1.44 + 1.45 +void SkXMLAnimatorWriter::writeHeader() 1.46 +{ 1.47 +} 1.48 + 1.49 +#ifdef SK_DEBUG 1.50 +#include "SkCanvas.h" 1.51 +#include "SkPaint.h" 1.52 + 1.53 +void SkXMLAnimatorWriter::UnitTest(SkCanvas* canvas) 1.54 +{ 1.55 + SkAnimator s; 1.56 + SkXMLAnimatorWriter w(&s); 1.57 + w.startElement("screenplay"); 1.58 + w.startElement("animateField"); 1.59 + w.addAttribute("field", "x1"); 1.60 + w.addAttribute("id", "to100"); 1.61 + w.addAttribute("from", "0"); 1.62 + w.addAttribute("to", "100"); 1.63 + w.addAttribute("dur", "1"); 1.64 + w.endElement(); 1.65 + w.startElement("event"); 1.66 + w.addAttribute("kind", "onLoad"); 1.67 + w.startElement("line"); 1.68 + w.addAttribute("id", "line"); 1.69 + w.addAttribute("x1", "-1"); 1.70 + w.addAttribute("y1", "20"); 1.71 + w.addAttribute("x2", "150"); 1.72 + w.addAttribute("y2", "40"); 1.73 + w.endElement(); 1.74 + w.startElement("apply"); 1.75 + w.addAttribute("animator", "to100"); 1.76 + w.addAttribute("scope", "line"); 1.77 + w.endElement(); 1.78 + w.endElement(); 1.79 + w.endElement(); 1.80 + SkPaint paint; 1.81 + canvas->drawColor(SK_ColorWHITE); 1.82 + s.draw(canvas, &paint, 0); 1.83 +} 1.84 + 1.85 +#endif