gfx/skia/trunk/src/animator/SkDisplayXMLParser.h

Thu, 15 Jan 2015 15:55:04 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Thu, 15 Jan 2015 15:55:04 +0100
branch
TOR_BUG_9701
changeset 9
a63d609f5ebe
permissions
-rw-r--r--

Back out 97036ab72558 which inappropriately compared turds to third parties.

michael@0 1
michael@0 2 /*
michael@0 3 * Copyright 2006 The Android Open Source Project
michael@0 4 *
michael@0 5 * Use of this source code is governed by a BSD-style license that can be
michael@0 6 * found in the LICENSE file.
michael@0 7 */
michael@0 8
michael@0 9
michael@0 10 #ifndef SkDisplayXMLParser_DEFINED
michael@0 11 #define SkDisplayXMLParser_DEFINED
michael@0 12
michael@0 13 #include "SkIntArray.h"
michael@0 14 #include "SkTDict.h"
michael@0 15 #include "SkDisplayType.h"
michael@0 16 #include "SkXMLParser.h"
michael@0 17
michael@0 18 class SkAnimateMaker;
michael@0 19 class SkDisplayable;
michael@0 20
michael@0 21 class SkDisplayXMLParserError : public SkXMLParserError {
michael@0 22 public:
michael@0 23 enum ErrorCode {
michael@0 24 kApplyScopesItself = kUnknownError + 1,
michael@0 25 kDisplayTreeTooDeep,
michael@0 26 kElementMissingParent,
michael@0 27 kElementTypeNotAllowedInParent,
michael@0 28 kErrorAddingDataToPost,
michael@0 29 kErrorAddingToMatrix,
michael@0 30 kErrorAddingToPaint,
michael@0 31 kErrorAddingToPath,
michael@0 32 kErrorInAttributeValue,
michael@0 33 kErrorInScript,
michael@0 34 kExpectedMovie,
michael@0 35 kFieldNotInTarget,
michael@0 36 kGradientOffsetsDontMatchColors,
michael@0 37 kGradientOffsetsMustBeNoMoreThanOne,
michael@0 38 kGradientOffsetsMustEndWithOne,
michael@0 39 kGradientOffsetsMustIncrease,
michael@0 40 kGradientOffsetsMustStartWithZero,
michael@0 41 kGradientPointsLengthMustBeFour,
michael@0 42 kInInclude,
michael@0 43 kInMovie,
michael@0 44 kIncludeNameUnknownOrMissing,
michael@0 45 kIndexOutOfRange,
michael@0 46 kMovieNameUnknownOrMissing,
michael@0 47 kNoParentAvailable,
michael@0 48 kParentElementCantContain,
michael@0 49 kSaveLayerNeedsBounds,
michael@0 50 kTargetIDNotFound,
michael@0 51 kUnexpectedType
michael@0 52 };
michael@0 53 virtual ~SkDisplayXMLParserError();
michael@0 54 virtual void getErrorString(SkString* str) const;
michael@0 55 void setCode(ErrorCode code) { INHERITED::setCode((INHERITED::ErrorCode) code); }
michael@0 56 void setInnerError(SkAnimateMaker* maker, const SkString& str);
michael@0 57 typedef SkXMLParserError INHERITED;
michael@0 58 friend class SkDisplayXMLParser;
michael@0 59 };
michael@0 60
michael@0 61 class SkDisplayXMLParser : public SkXMLParser {
michael@0 62 public:
michael@0 63 SkDisplayXMLParser(SkAnimateMaker& maker);
michael@0 64 virtual ~SkDisplayXMLParser();
michael@0 65 protected:
michael@0 66 virtual bool onAddAttribute(const char name[], const char value[]);
michael@0 67 bool onAddAttributeLen(const char name[], const char value[], size_t len);
michael@0 68 virtual bool onEndElement(const char elem[]);
michael@0 69 virtual bool onStartElement(const char elem[]);
michael@0 70 bool onStartElementLen(const char elem[], size_t len);
michael@0 71 private:
michael@0 72 struct Parent {
michael@0 73 SkDisplayable* fDisplayable;
michael@0 74 SkDisplayTypes fType;
michael@0 75 };
michael@0 76 SkTDArray<Parent> fParents;
michael@0 77 SkDisplayXMLParser& operator= (const SkDisplayXMLParser& );
michael@0 78 SkDisplayXMLParserError* getError() { return (SkDisplayXMLParserError*) fError; }
michael@0 79 const SkMemberInfo* searchContainer(const SkMemberInfo* ,
michael@0 80 int infoCount);
michael@0 81 SkAnimateMaker& fMaker;
michael@0 82 SkBool fInInclude;
michael@0 83 SkBool fInSkia;
michael@0 84 // local state between onStartElement and onAddAttribute
michael@0 85 SkDisplayable* fCurrDisplayable;
michael@0 86 SkDisplayTypes fCurrType;
michael@0 87 friend class SkXMLAnimatorWriter;
michael@0 88 typedef SkXMLParser INHERITED;
michael@0 89 };
michael@0 90
michael@0 91 #endif // SkDisplayXMLParser_DEFINED

mercurial