| OLD | NEW |
| (Empty) |
| 1 /* libs/graphics/animator/SkAnimateSet.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 "SkAnimateSet.h" | |
| 19 #include "SkAnimateMaker.h" | |
| 20 #include "SkAnimateProperties.h" | |
| 21 #include "SkParse.h" | |
| 22 | |
| 23 #if SK_USE_CONDENSED_INFO == 0 | |
| 24 | |
| 25 const SkMemberInfo SkSet::fInfo[] = { | |
| 26 SK_MEMBER(begin, MSec), | |
| 27 SK_MEMBER(dur, MSec), | |
| 28 SK_MEMBER_PROPERTY(dynamic, Boolean), | |
| 29 SK_MEMBER(field, String), | |
| 30 // SK_MEMBER(formula, DynamicString), | |
| 31 SK_MEMBER(lval, DynamicString), | |
| 32 // SK_MEMBER_PROPERTY(reset, Boolean), | |
| 33 SK_MEMBER_PROPERTY(step, Int), | |
| 34 SK_MEMBER(target, DynamicString), | |
| 35 SK_MEMBER(to, DynamicString) | |
| 36 }; | |
| 37 | |
| 38 #endif | |
| 39 | |
| 40 DEFINE_GET_MEMBER(SkSet); | |
| 41 | |
| 42 SkSet::SkSet() { | |
| 43 dur = 1; | |
| 44 } | |
| 45 | |
| 46 #ifdef SK_DUMP_ENABLED | |
| 47 void SkSet::dump(SkAnimateMaker* maker) { | |
| 48 INHERITED::dump(maker); | |
| 49 if (dur != 1) { | |
| 50 #ifdef SK_CAN_USE_FLOAT | |
| 51 SkDebugf("dur=\"%g\" ", SkScalarToFloat(SkScalarDiv(dur,1000))); | |
| 52 #else | |
| 53 SkDebugf("dur=\"%x\" ", SkScalarDiv(dur,1000)); | |
| 54 #endif | |
| 55 } | |
| 56 //don't want double />\n's | |
| 57 SkDebugf("/>\n"); | |
| 58 | |
| 59 } | |
| 60 #endif | |
| 61 | |
| 62 void SkSet::refresh(SkAnimateMaker& maker) { | |
| 63 fFieldInfo->setValue(maker, &fValues, 0, fFieldInfo->fCount, NULL, | |
| 64 fFieldInfo->getType(), to); | |
| 65 } | |
| 66 | |
| 67 void SkSet::onEndElement(SkAnimateMaker& maker) { | |
| 68 if (resolveCommon(maker) == false) | |
| 69 return; | |
| 70 if (fFieldInfo == NULL) { | |
| 71 maker.setErrorCode(SkDisplayXMLParserError::kFieldNotInTarget); | |
| 72 return; | |
| 73 } | |
| 74 fReset = dur != 1; | |
| 75 SkDisplayTypes outType = fFieldInfo->getType(); | |
| 76 int comps = outType == SkType_String || outType == SkType_DynamicString ? 1
: | |
| 77 fFieldInfo->getSize((const SkDisplayable*) fTarget) / sizeof(int); | |
| 78 if (fValues.getType() == SkType_Unknown) { | |
| 79 fValues.setType(outType); | |
| 80 fValues.setCount(comps); | |
| 81 if (outType == SkType_String || outType == SkType_DynamicString) | |
| 82 fValues[0].fString = SkNEW(SkString); | |
| 83 else | |
| 84 memset(fValues.begin(), 0, fValues.count() * sizeof(fValues.begin()[
0])); | |
| 85 } else { | |
| 86 SkASSERT(fValues.getType() == outType); | |
| 87 if (fFieldInfo->fType == SkType_Array) | |
| 88 comps = fValues.count(); | |
| 89 else | |
| 90 SkASSERT(fValues.count() == comps); | |
| 91 } | |
| 92 if (formula.size() > 0) { | |
| 93 comps = 1; | |
| 94 outType = SkType_MSec; | |
| 95 } | |
| 96 fFieldInfo->setValue(maker, &fValues, fFieldOffset, comps, this, outType, fo
rmula.size() > 0 ? formula : to); | |
| 97 fComponents = fValues.count(); | |
| 98 } | |
| OLD | NEW |