summaryrefslogtreecommitdiffstats
path: root/skia/animator/SkDisplayable.cpp
diff options
context:
space:
mode:
authorsenorblanco@chromium.org <senorblanco@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-05-26 20:03:03 +0000
committersenorblanco@chromium.org <senorblanco@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-05-26 20:03:03 +0000
commita4fc8d30896e63e7074ac06dbd7b13b00732f3c0 (patch)
treedafaca3fb8892930dce03ee8a6a7d266b46be18f /skia/animator/SkDisplayable.cpp
parent6131db47e71532f62aae3badcd34a82a64cb9f2a (diff)
downloadchromium_src-a4fc8d30896e63e7074ac06dbd7b13b00732f3c0.zip
chromium_src-a4fc8d30896e63e7074ac06dbd7b13b00732f3c0.tar.gz
chromium_src-a4fc8d30896e63e7074ac06dbd7b13b00732f3c0.tar.bz2
Remove the remainder of the skia source code from the Chromium repo. It now lives over in third_party/skia (I only removed the headers in the first CL, since it was too unwieldy with all these deletes).
BUG=none TEST=If it builds, you're happy. R=dglazkov Review URL: http://codereview.chromium.org/113827 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@16893 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'skia/animator/SkDisplayable.cpp')
-rw-r--r--skia/animator/SkDisplayable.cpp566
1 files changed, 0 insertions, 566 deletions
diff --git a/skia/animator/SkDisplayable.cpp b/skia/animator/SkDisplayable.cpp
deleted file mode 100644
index e50e1ab..0000000
--- a/skia/animator/SkDisplayable.cpp
+++ /dev/null
@@ -1,566 +0,0 @@
-/* libs/graphics/animator/SkDisplayable.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 "SkDisplayable.h"
-#include "SkDisplayApply.h"
-#include "SkParse.h"
-#ifdef SK_DEBUG
-#include "SkDisplayList.h"
-#endif
-#include "SkDisplayTypes.h"
-
-#ifdef SK_FIND_LEAKS
-// int SkDisplayable::fAllocationCount;
-SkTDDisplayableArray SkDisplayable::fAllocations;
-#endif
-
-#ifdef SK_DEBUG
-SkDisplayable::SkDisplayable() {
- id = _id.c_str();
-#ifdef SK_FIND_LEAKS
- // fAllocationCount++;
- *fAllocations.append() = this;
-#endif
-}
-#endif
-
-SkDisplayable::~SkDisplayable() {
-#ifdef SK_FIND_LEAKS
- // fAllocationCount--;
- int index = fAllocations.find(this);
- SkASSERT(index >= 0);
- fAllocations.remove(index);
-#endif
-}
-
-bool SkDisplayable::add(SkAnimateMaker& , SkDisplayable* child) {
- return false;
-}
-
-//void SkDisplayable::apply(SkAnimateMaker& , const SkMemberInfo* ,
-// SkDisplayable* , SkScalar [], int count) {
-// SkASSERT(0);
-//}
-
-bool SkDisplayable::canContainDependents() const {
- return false;
-}
-
-bool SkDisplayable::childrenNeedDisposing() const {
- return false;
-}
-
-void SkDisplayable::clearBounder() {
-}
-
-bool SkDisplayable::contains(SkDisplayable* ) {
- return false;
-}
-
-SkDisplayable* SkDisplayable::contains(const SkString& ) {
- return NULL;
-}
-
-SkDisplayable* SkDisplayable::deepCopy(SkAnimateMaker* maker) {
- SkDisplayTypes type = getType();
- if (type == SkType_Unknown) {
- SkASSERT(0);
- return NULL;
- }
- SkDisplayable* copy = SkDisplayType::CreateInstance(maker, type);
- int index = -1;
- int propIndex = 0;
- const SkMemberInfo* info;
- do {
- info = copy->getMember(++index);
- if (info == NULL)
- break;
- if (info->fType == SkType_MemberProperty) {
- SkScriptValue value;
- if (getProperty(propIndex, &value))
- copy->setProperty(propIndex, value);
- propIndex++;
- continue;
- }
- if (info->fType == SkType_MemberFunction)
- continue;
- if (info->fType == SkType_Array) {
- SkTDOperandArray* array = (SkTDOperandArray*) info->memberData(this);
- int arrayCount;
- if (array == NULL || (arrayCount = array->count()) == 0)
- continue;
- SkTDOperandArray* copyArray = (SkTDOperandArray*) info->memberData(copy);
- copyArray->setCount(arrayCount);
- SkDisplayTypes elementType;
- if (type == SkType_Array) {
- SkDisplayArray* dispArray = (SkDisplayArray*) this;
- elementType = dispArray->values.getType();
- } else
- elementType = info->arrayType();
- size_t elementSize = SkMemberInfo::GetSize(elementType);
- size_t byteSize = elementSize * arrayCount;
- memcpy(copyArray->begin(), array->begin(), byteSize);
- continue;
- }
- if (SkDisplayType::IsDisplayable(maker, info->fType)) {
- SkDisplayable** displayable = (SkDisplayable**) info->memberData(this);
- if (*displayable == NULL || *displayable == (SkDisplayable*) -1)
- continue;
- SkDisplayable* deeper = (*displayable)->deepCopy(maker);
- info->setMemberData(copy, deeper, sizeof(deeper));
- continue;
- }
- if (info->fType == SkType_String || info->fType == SkType_DynamicString) {
- SkString* string;
- info->getString(this, &string);
- info->setString(copy, string);
- continue;
- }
- void* data = info->memberData(this);
- size_t size = SkMemberInfo::GetSize(info->fType);
- info->setMemberData(copy, data, size);
- } while (true);
- copy->dirty();
- return copy;
-}
-
-void SkDisplayable::dirty() {
-}
-
-#ifdef SK_DUMP_ENABLED
-void SkDisplayable::dump(SkAnimateMaker* maker) {
- dumpBase(maker);
-#if SK_USE_CONDENSED_INFO == 0
- this->dumpAttrs(maker);
- this->dumpChildren(maker);
-#endif
-}
-
-void SkDisplayable::dumpAttrs(SkAnimateMaker* maker) {
- SkDisplayTypes type = getType();
- if (type == SkType_Unknown) {
- //SkDebugf("/>\n");
- return;
- }
- SkDisplayable* blankCopy = SkDisplayType::CreateInstance(maker, type);
-
- int index = -1;
- int propIndex = 0;
- const SkMemberInfo* info;
- const SkMemberInfo* blankInfo;
- SkScriptValue value;
- SkScriptValue blankValue;
- SkOperand values[2];
- SkOperand blankValues[2];
- do {
- info = this->getMember(++index);
- if (NULL == info) {
- //SkDebugf("\n");
- break;
- }
- if (SkType_MemberProperty == info->fType) {
- if (getProperty(propIndex, &value)) {
- blankCopy->getProperty(propIndex, &blankValue);
- //last two are dummies
- dumpValues(info, value.fType, value.fOperand, blankValue.fOperand, value.fOperand, blankValue.fOperand);
- }
-
- propIndex++;
- continue;
- }
- if (SkDisplayType::IsDisplayable(maker, info->fType)) {
- continue;
- }
-
- if (info->fType == SkType_MemberFunction)
- continue;
-
-
- if (info->fType == SkType_Array) {
- SkTDOperandArray* array = (SkTDOperandArray*) info->memberData(this);
- int arrayCount;
- if (array == NULL || (arrayCount = array->count()) == 0)
- continue;
- SkDisplayTypes elementType;
- if (type == SkType_Array) {
- SkDisplayArray* dispArray = (SkDisplayArray*) this;
- elementType = dispArray->values.getType();
- } else
- elementType = info->arrayType();
- bool firstElem = true;
- SkDebugf("%s=\"[", info->fName);
- for (SkOperand* op = array->begin(); op < array->end(); op++) {
- if (!firstElem) SkDebugf(",");
- switch (elementType) {
- case SkType_Displayable:
- SkDebugf("%s", op->fDisplayable->id);
- break;
- case SkType_Int:
- SkDebugf("%d", op->fS32);
- break;
- case SkType_Float:
-#ifdef SK_CAN_USE_FLOAT
- SkDebugf("%g", SkScalarToFloat(op->fScalar));
-#else
- SkDebugf("%x", op->fScalar);
-#endif
- break;
- case SkType_String:
- case SkType_DynamicString:
- SkDebugf("%s", op->fString->c_str());
- break;
- default:
- break;
- }
- firstElem = false;
- }
- SkDebugf("]\" ");
- continue;
- }
-
- if (info->fType == SkType_String || info->fType == SkType_DynamicString) {
- SkString* string;
- info->getString(this, &string);
- if (string->isEmpty() == false)
- SkDebugf("%s=\"%s\"\t", info->fName, string->c_str());
- continue;
- }
-
-
- blankInfo = blankCopy->getMember(index);
- int i = info->fCount;
- info->getValue(this, values, i);
- blankInfo->getValue(blankCopy, blankValues, i);
- dumpValues(info, info->fType, values[0], blankValues[0], values[1], blankValues[1]);
- } while (true);
- delete blankCopy;
-}
-
-void SkDisplayable::dumpBase(SkAnimateMaker* maker) {
- SkDisplayTypes type = getType();
- const char* elementName = "(unknown)";
- if (type != SkType_Unknown && type != SkType_Screenplay)
- elementName = SkDisplayType::GetName(maker, type);
- SkDebugf("%*s", SkDisplayList::fIndent, "");
- if (SkDisplayList::fDumpIndex != 0 && SkDisplayList::fIndent == 0)
- SkDebugf("%d: ", SkDisplayList::fDumpIndex);
- SkDebugf("<%s ", elementName);
- if (strcmp(id,"") != 0)
- SkDebugf("id=\"%s\" ", id);
-}
-
-void SkDisplayable::dumpChildren(SkAnimateMaker* maker, bool closedAngle) {
-
- int index = -1;
- const SkMemberInfo* info;
- index = -1;
- SkDisplayList::fIndent += 4;
- do {
- info = this->getMember(++index);
- if (NULL == info) {
- break;
- }
- if (SkDisplayType::IsDisplayable(maker, info->fType)) {
- SkDisplayable** displayable = (SkDisplayable**) info->memberData(this);
- if (*displayable == NULL || *displayable == (SkDisplayable*) -1)
- continue;
- if (closedAngle == false) {
- SkDebugf(">\n");
- closedAngle = true;
- }
- (*displayable)->dump(maker);
- }
- } while (true);
- SkDisplayList::fIndent -= 4;
- if (closedAngle)
- dumpEnd(maker);
- else
- SkDebugf("/>\n");
-}
-
-void SkDisplayable::dumpEnd(SkAnimateMaker* maker) {
- SkDisplayTypes type = getType();
- const char* elementName = "(unknown)";
- if (type != SkType_Unknown && type != SkType_Screenplay)
- elementName = SkDisplayType::GetName(maker, type);
- SkDebugf("%*s", SkDisplayList::fIndent, "");
- SkDebugf("</%s>\n", elementName);
-}
-
-void SkDisplayable::dumpEvents() {
-}
-
-void SkDisplayable::dumpValues(const SkMemberInfo* info, SkDisplayTypes type, SkOperand op, SkOperand blankOp,
- SkOperand op2, SkOperand blankOp2) {
- switch (type) {
- case SkType_BitmapEncoding:
- switch (op.fS32) {
- case 0 : SkDebugf("type=\"jpeg\" ");
- break;
- case 1 : SkDebugf("type=\"png\" ");
- break;
- default: SkDebugf("type=\"UNDEFINED\" ");
- }
- break;
- //should make this a separate case in dump attrs, rather than make dump values have a larger signature
- case SkType_Point:
- if (op.fScalar != blankOp.fScalar || op2.fScalar != blankOp.fScalar) {
-#ifdef SK_CAN_USE_FLOAT
- SkDebugf("%s=\"[%g,%g]\" ", info->fName, SkScalarToFloat(op.fScalar), SkScalarToFloat(op2.fScalar));
-#else
- SkDebugf("%s=\"[%x,%x]\" ", info->fName, op.fScalar, op2.fScalar);
-#endif
- }
- break;
- case SkType_FromPathMode:
- switch (op.fS32) {
- case 0:
- //don't want to print anything for 0, just adding it to remove it from default:
- break;
- case 1:
- SkDebugf("%s=\"%s\" ", info->fName, "angle");
- break;
- case 2:
- SkDebugf("%s=\"%s\" ", info->fName, "position");
- break;
- default:
- SkDebugf("%s=\"INVALID\" ", info->fName);
- }
- break;
- case SkType_MaskFilterBlurStyle:
- switch (op.fS32) {
- case 0:
- break;
- case 1:
- SkDebugf("%s=\"%s\" ", info->fName, "solid");
- break;
- case 2:
- SkDebugf("%s=\"%s\" ", info->fName, "outer");
- break;
- case 3:
- SkDebugf("%s=\"%s\" ", info->fName, "inner");
- break;
- default:
- SkDebugf("%s=\"INVALID\" ", info->fName);
- }
- break;
- case SkType_FilterType:
- if (op.fS32 == 1)
- SkDebugf("%s=\"%s\" ", info->fName, "bilinear");
- break;
- case SkType_PathDirection:
- SkDebugf("%s=\"%s\" ", info->fName, op.fS32 == 0 ? "cw" : "ccw");
- break;
- case SkType_FillType:
- SkDebugf("%s=\"%s\" ", info->fName, op.fS32 == 0 ? "winding" : "evenOdd");
- break;
- case SkType_TileMode:
- //correct to look at the S32?
- if (op.fS32 != blankOp.fS32)
- SkDebugf("%s=\"%s\" ", info->fName, op.fS32 == 0 ? "clamp" : op.fS32 == 1 ? "repeat" : "mirror");
- break;
- case SkType_Boolean:
- if (op.fS32 != blankOp.fS32)
- SkDebugf("%s=\"%s\" ", info->fName, op.fS32 == 0 ? "false" : "true");
- break;
- case SkType_Int:
- if (op.fS32 != blankOp.fS32)
- SkDebugf(" %s=\"%d\" ", info->fName, op.fS32);
- break;
- case SkType_Float:
- if (op.fScalar != blankOp.fScalar) { //or /65536?
-#ifdef SK_CAN_USE_FLOAT
- SkDebugf("%s=\"%g\" ", info->fName, SkScalarToFloat(op.fScalar));
-#else
- SkDebugf("%s=\"%x\" ", info->fName, op.fScalar);
-#endif
- }
- break;
- case SkType_String:
- case SkType_DynamicString:
- if (op.fString->size() > 0)
- SkDebugf("%s=\"%s\" ", info->fName, op.fString->c_str());
- break;
- case SkType_MSec:
- if (op.fS32 != blankOp.fS32) {
-#ifdef SK_CAN_USE_FLOAT
- SkDebugf(" %s=\"%g\" ", info->fName, SkScalarToFloat(SkScalarDiv(op.fS32, 1000)));
-#else
- SkDebugf(" %s=\"%x\" ", info->fName, SkScalarDiv(op.fS32, 1000));
-#endif
- }
- default:
- SkDebugf("");
- }
-}
-
-#endif
-
-bool SkDisplayable::enable( SkAnimateMaker& ) {
- return false;
-}
-
-void SkDisplayable::enableBounder() {
-}
-
-void SkDisplayable::executeFunction(SkDisplayable* , int index,
- SkTDArray<SkScriptValue>& , SkDisplayTypes, SkScriptValue* ) {
- SkASSERT(0);
-}
-
-void SkDisplayable::executeFunction(SkDisplayable* target,
- const SkMemberInfo* info, SkTypedArray* values, SkScriptValue* value) {
- SkTDArray<SkScriptValue> typedValues;
- for (SkOperand* op = values->begin(); op < values->end(); op++) {
- SkScriptValue temp;
- temp.fType = values->getType();
- temp.fOperand = *op;
- *typedValues.append() = temp;
- }
- executeFunction(target, info->functionIndex(), typedValues, info->getType(), value);
-}
-
-void SkDisplayable::executeFunction2(SkDisplayable* , int index,
- SkOpArray* params, SkDisplayTypes, SkOperand2* ) {
- SkASSERT(0);
-}
-
-void SkDisplayable::getBounds(SkRect* rect) {
- SkASSERT(rect);
- rect->fLeft = rect->fTop = SK_ScalarMax;
- rect->fRight= rect->fBottom = -SK_ScalarMax;
-}
-
-const SkFunctionParamType* SkDisplayable::getFunctionsParameters() {
- return NULL;
-}
-
-const SkMemberInfo* SkDisplayable::getMember(int index) {
- return NULL;
-}
-
-const SkMemberInfo* SkDisplayable::getMember(const char name[]) {
- return NULL;
-}
-
-const SkFunctionParamType* SkDisplayable::getParameters(const SkMemberInfo* info,
- int* paramCount) {
- const SkFunctionParamType* params = getFunctionsParameters();
- SkASSERT(params != NULL);
- int funcIndex = info->functionIndex();
- // !!! eventually break traversing params into an external function (maybe this whole function)
- int index = funcIndex;
- int offset = 0;
- while (--index >= 0) {
- while (params[offset] != 0)
- offset++;
- offset++;
- }
- int count = 0;
- while (params[offset] != 0) {
- count++;
- offset++;
- }
- *paramCount = count;
- return &params[offset - count];
-}
-
-SkDisplayable* SkDisplayable::getParent() const {
- return NULL;
-}
-
-bool SkDisplayable::getProperty(int index, SkScriptValue* ) const {
-// SkASSERT(0);
- return false;
-}
-
-bool SkDisplayable::getProperty2(int index, SkOperand2* value) const {
- SkASSERT(0);
- return false;
-}
-
-SkDisplayTypes SkDisplayable::getType() const {
- return SkType_Unknown;
-}
-
-bool SkDisplayable::hasEnable() const {
- return false;
-}
-
-bool SkDisplayable::isDrawable() const {
- return false;
-}
-
-void SkDisplayable::onEndElement(SkAnimateMaker& ) {}
-
-const SkMemberInfo* SkDisplayable::preferredChild(SkDisplayTypes type) {
- return NULL;
-}
-
-bool SkDisplayable::resolveIDs(SkAnimateMaker& maker, SkDisplayable* original, SkApply* apply) {
- return false;
-}
-
-//SkDisplayable* SkDisplayable::resolveTarget(SkAnimateMaker& ) {
-// return this;
-//}
-
-void SkDisplayable::setChildHasID() {
-}
-
-bool SkDisplayable::setParent(SkDisplayable* ) {
- return false;
-}
-
-bool SkDisplayable::setProperty(int index, SkScriptValue& ) {
- //SkASSERT(0);
- return false;
-}
-
-void SkDisplayable::setReference(const SkMemberInfo* info, SkDisplayable* displayable) {
- if (info->fType == SkType_MemberProperty) {
- SkScriptValue scriptValue;
- scriptValue.fOperand.fDisplayable = displayable;
- scriptValue.fType = displayable->getType();
- setProperty(info->propertyIndex(), scriptValue);
- } else if (info->fType == SkType_Array) {
- SkASSERT(displayable->getType() == SkType_Array);
- SkDisplayArray* dispArray = (SkDisplayArray*) displayable;
- SkTDScalarArray* array = (SkTDScalarArray* ) info->memberData(this);
- array->setCount(dispArray->values.count());
- memcpy(array->begin(), dispArray->values.begin(), dispArray->values.count() * sizeof(int));
- //
-
- // !!! need a way for interpreter engine to own array
- // !!! probably need to replace all scriptable arrays with single bigger array
- // that has operand and type on every element -- or
- // when array is dirtied, need to get parent to reparse to local array
- } else {
- void* storage = info->memberData(this);
- memcpy(storage, &displayable, sizeof(SkDisplayable*));
- }
-// !!! unclear why displayable is dirtied here
-// if this is called, this breaks fromPath.xml
-// displayable->dirty();
-}
-
-#ifdef SK_DEBUG
-void SkDisplayable::validate() {
-}
-#endif
-
-