Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(684)

Unified Diff: skia/animator/SkAnimateMaker.cpp

Issue 113827: Remove the remainder of the skia source code from the Chromium repo.... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 11 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « skia/animator/SkAnimateMaker.h ('k') | skia/animator/SkAnimateProperties.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: skia/animator/SkAnimateMaker.cpp
===================================================================
--- skia/animator/SkAnimateMaker.cpp (revision 16859)
+++ skia/animator/SkAnimateMaker.cpp (working copy)
@@ -1,376 +0,0 @@
-/* libs/graphics/animator/SkAnimateMaker.cpp
-**
-** Copyright 2006, The Android Open Source Project
-**
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-** http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
-*/
-
-#include "SkAnimateMaker.h"
-#include "SkAnimator.h"
-#include "SkAnimatorScript.h"
-#include "SkDisplayable.h"
-#include "SkDisplayApply.h"
-#include "SkDisplayList.h"
-#include "SkDisplayMovie.h"
-#include "SkDisplayType.h"
-#include "SkExtras.h"
-#include "SkMemberInfo.h"
-#include "SkStream.h"
-#include "SkSystemEventTypes.h"
-#include "SkTime.h"
-
-class DefaultTimeline : public SkAnimator::Timeline {
- virtual SkMSec getMSecs() const {
- return SkTime::GetMSecs();
- }
-} gDefaultTimeline;
-
-SkAnimateMaker::SkAnimateMaker(SkAnimator* animator, SkCanvas* canvas, SkPaint* paint)
- : fActiveEvent(NULL), fAdjustedStart(0), fCanvas(canvas), fEnableTime(0),
- fHostEventSinkID(0), fMinimumInterval((SkMSec) -1), fPaint(paint), fParentMaker(NULL),
- fTimeline(&gDefaultTimeline), fInInclude(false), fInMovie(false),
- fFirstScriptError(false), fLoaded(false), fIDs(256), fAnimator(animator)
-{
- fScreenplay.time = 0;
-#if defined SK_DEBUG && defined SK_DEBUG_ANIMATION_TIMING
- fDebugTimeBase = (SkMSec) -1;
-#endif
-#ifdef SK_DUMP_ENABLED
- fDumpEvents = fDumpGConditions = fDumpPosts = false;
-#endif
-}
-
-SkAnimateMaker::~SkAnimateMaker() {
- deleteMembers();
-}
-
-#if 0
-SkMSec SkAnimateMaker::adjustDelay(SkMSec expectedBase, SkMSec delay) {
- SkMSec appTime = (*fTimeCallBack)();
- if (appTime)
- delay -= appTime - expectedBase;
- if (delay < 0)
- delay = 0;
- return delay;
-}
-#endif
-
-void SkAnimateMaker::appendActive(SkActive* active) {
- fDisplayList.append(active);
-}
-
-void SkAnimateMaker::clearExtraPropertyCallBack(SkDisplayTypes type) {
- SkExtras** end = fExtras.end();
- for (SkExtras** extraPtr = fExtras.begin(); extraPtr < end; extraPtr++) {
- SkExtras* extra = *extraPtr;
- if (extra->definesType(type)) {
- extra->fExtraCallBack = NULL;
- extra->fExtraStorage = NULL;
- break;
- }
- }
-}
-
-bool SkAnimateMaker::computeID(SkDisplayable* displayable, SkDisplayable* parent, SkString* newID) {
- const char* script;
- if (findKey(displayable, &script) == false)
- return true;
- return SkAnimatorScript::EvaluateString(*this, displayable, parent, script, newID);
-}
-
-SkDisplayable* SkAnimateMaker::createInstance(const char name[], size_t len) {
- SkDisplayTypes type = SkDisplayType::GetType(this, name, len );
- if ((int)type >= 0)
- return SkDisplayType::CreateInstance(this, type);
- return NULL;
-}
-
-// differs from SkAnimator::decodeStream in that it does not reset error state
-bool SkAnimateMaker::decodeStream(SkStream* stream)
-{
- SkDisplayXMLParser parser(*this);
- return parser.parse(*stream);
-}
-
-// differs from SkAnimator::decodeURI in that it does not set URI base
-bool SkAnimateMaker::decodeURI(const char uri[]) {
-// SkDebugf("animator decode %s\n", uri);
-
-// SkStream* stream = SkStream::GetURIStream(fPrefix.c_str(), uri);
- SkStream* stream = new SkFILEStream(uri);
-
- SkAutoTDelete<SkStream> autoDel(stream);
- bool success = decodeStream(stream);
- if (hasError() && fError.hasNoun() == false)
- fError.setNoun(uri);
- return success;
-}
-
-#if defined SK_DEBUG && 0
-//used for the if'd out section of deleteMembers
-#include "SkTSearch.h"
-
-extern "C" {
- int compare_disp(const void* a, const void* b) {
- return *(const SkDisplayable**)a - *(const SkDisplayable**)b;
- }
-}
-#endif
-
-void SkAnimateMaker::delayEnable(SkApply* apply, SkMSec time) {
- int index = fDelayed.find(apply);
- if (index < 0)
- *fDelayed.append() = apply;
- (new SkEvent(SK_EventType_Delay))->postTime(fAnimator->getSinkID(), time);
-}
-
-void SkAnimateMaker::deleteMembers() {
- int index;
-#if defined SK_DEBUG && 0
- //this code checks to see if helpers are among the children, but it is not complete -
- //it should check the children of the children
- int result;
- SkTDArray<SkDisplayable*> children(fChildren.begin(), fChildren.count());
- SkQSort(children.begin(), children.count(), sizeof(SkDisplayable*),compare_disp);
- for (index = 0; index < fHelpers.count(); index++) {
- SkDisplayable* helper = fHelpers[index];
- result = SkTSearch(children.begin(), children.count(), helper, sizeof(SkDisplayable*));
- SkASSERT(result < 0);
- }
-#endif
- for (index = 0; index < fChildren.count(); index++) {
- SkDisplayable* child = fChildren[index];
- delete child;
- }
- for (index = 0; index < fHelpers.count(); index++) {
- SkDisplayable* helper = fHelpers[index];
- delete helper;
- }
- for (index = 0; index < fExtras.count(); index++) {
- SkExtras* extras = fExtras[index];
- delete extras;
- }
-}
-
-void SkAnimateMaker::doDelayedEvent() {
- fEnableTime = getAppTime();
- for (int index = 0; index < fDelayed.count(); ) {
- SkDisplayable* child = fDelayed[index];
- SkASSERT(child->isApply());
- SkApply* apply = (SkApply*) child;
- apply->interpolate(*this, fEnableTime);
- if (apply->hasDelayedAnimator())
- index++;
- else
- fDelayed.remove(index);
- }
-}
-
-bool SkAnimateMaker::doEvent(const SkEvent& event) {
- return (!fInMovie || fLoaded) && fAnimator->doEvent(event);
-}
-
-#ifdef SK_DUMP_ENABLED
-void SkAnimateMaker::dump(const char* match) {
- SkTDict<SkDisplayable*>::Iter iter(fIDs);
- const char* name;
- SkDisplayable* result;
- while ((name = iter.next(&result)) != NULL) {
- if (strcmp(match,name) == 0)
- result->dump(this);
- }
-}
-#endif
-
-int SkAnimateMaker::dynamicProperty(SkString& nameStr, SkDisplayable** displayablePtr ) {
- const char* name = nameStr.c_str();
- const char* dot = strchr(name, '.');
- SkASSERT(dot);
- SkDisplayable* displayable;
- if (find(name, dot - name, &displayable) == false) {
- SkASSERT(0);
- return 0;
- }
- const char* fieldName = dot + 1;
- const SkMemberInfo* memberInfo = displayable->getMember(fieldName);
- *displayablePtr = displayable;
- return (int) memberInfo->fOffset;
-}
-
-SkMSec SkAnimateMaker::getAppTime() const {
- return fTimeline->getMSecs();
-}
-
-#ifdef SK_DEBUG
-SkAnimator* SkAnimateMaker::getRoot()
-{
- SkAnimateMaker* maker = this;
- while (maker->fParentMaker)
- maker = maker->fParentMaker;
- return maker == this ? NULL : maker->fAnimator;
-}
-#endif
-
-void SkAnimateMaker::helperAdd(SkDisplayable* trackMe) {
- SkASSERT(fHelpers.find(trackMe) < 0);
- *fHelpers.append() = trackMe;
-}
-
-void SkAnimateMaker::helperRemove(SkDisplayable* alreadyTracked) {
- int helperIndex = fHelpers.find(alreadyTracked);
- if (helperIndex >= 0)
- fHelpers.remove(helperIndex);
-}
-
-#if 0
-void SkAnimateMaker::loadMovies() {
- for (SkDisplayable** dispPtr = fMovies.begin(); dispPtr < fMovies.end(); dispPtr++) {
- SkDisplayable* displayable = *dispPtr;
- SkASSERT(displayable->getType() == SkType_Movie);
- SkDisplayMovie* movie = (SkDisplayMovie*) displayable;
- SkAnimateMaker* movieMaker = movie->fMovie.fMaker;
- movieMaker->fEvents.doEvent(*movieMaker, SkDisplayEvent::kOnload, NULL);
- movieMaker->fEvents.removeEvent(SkDisplayEvent::kOnload, NULL);
- movieMaker->loadMovies();
- }
-}
-#endif
-
-void SkAnimateMaker::notifyInval() {
- if (fHostEventSinkID)
- fAnimator->onEventPost(new SkEvent(SK_EventType_Inval), fHostEventSinkID);
-}
-
-void SkAnimateMaker::notifyInvalTime(SkMSec time) {
- if (fHostEventSinkID)
- fAnimator->onEventPostTime(new SkEvent(SK_EventType_Inval), fHostEventSinkID, time);
-}
-
-void SkAnimateMaker::postOnEnd(SkAnimateBase* animate, SkMSec end) {
- SkEvent evt;
- evt.setS32("time", animate->getStart() + end);
- evt.setPtr("anim", animate);
- evt.setType(SK_EventType_OnEnd);
- SkEventSinkID sinkID = fAnimator->getSinkID();
- fAnimator->onEventPost(new SkEvent(evt), sinkID);
-}
-
-void SkAnimateMaker::reset() {
- deleteMembers();
- fChildren.reset();
- fHelpers.reset();
- fIDs.reset();
- fEvents.reset();
- fDisplayList.hardReset();
-}
-
-void SkAnimateMaker::removeActive(SkActive* active) {
- if (active == NULL)
- return;
- fDisplayList.remove(active);
-}
-
-bool SkAnimateMaker::resolveID(SkDisplayable* displayable, SkDisplayable* original) {
- SkString newID;
- bool success = computeID(original, NULL, &newID);
- if (success)
- setID(displayable, newID);
- return success;
-}
-
-void SkAnimateMaker::setErrorString() {
- fErrorString.reset();
- if (fError.hasError()) {
- SkString err;
- if (fFileName.size() > 0)
- fErrorString.set(fFileName.c_str());
- else
- fErrorString.set("screenplay error");
- int line = fError.getLineNumber();
- if (line >= 0) {
- fErrorString.append(", ");
- fErrorString.append("line ");
- fErrorString.appendS32(line);
- }
- fErrorString.append(": ");
- fError.getErrorString(&err);
- fErrorString.append(err);
-#if defined SK_DEBUG
- SkDebugf("%s\n", fErrorString.c_str());
-#endif
- }
-}
-
-void SkAnimateMaker::setEnableTime(SkMSec appTime, SkMSec expectedTime) {
-#if defined SK_DEBUG && defined SK_DEBUG_ANIMATION_TIMING
- SkString debugOut;
- SkMSec time = getAppTime();
- debugOut.appendS32(time - fDebugTimeBase);
- debugOut.append(" set enable old enable=");
- debugOut.appendS32(fEnableTime - fDebugTimeBase);
- debugOut.append(" old adjust=");
- debugOut.appendS32(fAdjustedStart);
- debugOut.append(" new enable=");
- debugOut.appendS32(expectedTime - fDebugTimeBase);
- debugOut.append(" new adjust=");
- debugOut.appendS32(appTime - expectedTime);
- SkDebugf("%s\n", debugOut.c_str());
-#endif
- fAdjustedStart = appTime - expectedTime;
- fEnableTime = expectedTime;
- SkDisplayable** firstMovie = fMovies.begin();
- SkDisplayable** endMovie = fMovies.end();
- for (SkDisplayable** ptr = firstMovie; ptr < endMovie; ptr++) {
- SkDisplayMovie* movie = (SkDisplayMovie*) *ptr;
- movie->fMovie.fMaker->setEnableTime(appTime, expectedTime);
- }
-}
-
-void SkAnimateMaker::setExtraPropertyCallBack(SkDisplayTypes type,
- SkScriptEngine::_propertyCallBack callBack, void* userStorage) {
- SkExtras** end = fExtras.end();
- for (SkExtras** extraPtr = fExtras.begin(); extraPtr < end; extraPtr++) {
- SkExtras* extra = *extraPtr;
- if (extra->definesType(type)) {
- extra->fExtraCallBack = callBack;
- extra->fExtraStorage = userStorage;
- break;
- }
- }
-}
-
-void SkAnimateMaker::setID(SkDisplayable* displayable, const SkString& newID) {
- fIDs.set(newID.c_str(), displayable);
-#ifdef SK_DEBUG
- displayable->_id.set(newID);
- displayable->id = displayable->_id.c_str();
-#endif
-}
-
-void SkAnimateMaker::setScriptError(const SkScriptEngine& engine) {
- SkString errorString;
-#ifdef SK_DEBUG
- engine.getErrorString(&errorString);
-#endif
- setErrorNoun(errorString);
- setErrorCode(SkDisplayXMLParserError::kErrorInScript);
-}
-
-bool SkAnimateMaker::GetStep(const char* token, size_t len, void* stepPtr, SkScriptValue* value) {
- if (SK_LITERAL_STR_EQUAL("step", token, len)) {
- value->fOperand.fS32 = *(int32_t*) stepPtr;
- value->fType = SkType_Int;
- return true;
- }
- return false;
-}
« no previous file with comments | « skia/animator/SkAnimateMaker.h ('k') | skia/animator/SkAnimateProperties.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698