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

Unified Diff: skia/animator/SkDrawGroup.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/SkDrawGroup.h ('k') | skia/animator/SkDrawLine.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: skia/animator/SkDrawGroup.cpp
===================================================================
--- skia/animator/SkDrawGroup.cpp (revision 16859)
+++ skia/animator/SkDrawGroup.cpp (working copy)
@@ -1,331 +0,0 @@
-/* libs/graphics/animator/SkDrawGroup.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 "SkDrawGroup.h"
-#include "SkAnimateMaker.h"
-#include "SkAnimatorScript.h"
-#include "SkCanvas.h"
-#include "SkDisplayApply.h"
-#include "SkPaint.h"
-#ifdef SK_DEBUG
-#include "SkDisplayList.h"
-#endif
-
-#if SK_USE_CONDENSED_INFO == 0
-
-const SkMemberInfo SkGroup::fInfo[] = {
- SK_MEMBER(condition, String),
- SK_MEMBER(enableCondition, String)
-};
-
-#endif
-
-DEFINE_GET_MEMBER(SkGroup);
-
-SkGroup::SkGroup() : fParentList(NULL), fOriginal(NULL) {
-}
-
-SkGroup::~SkGroup() {
- if (fOriginal) // has been copied
- return;
- int index = 0;
- int max = fCopies.count() << 5;
- for (SkDrawable** ptr = fChildren.begin(); ptr < fChildren.end(); ptr++) {
- if (index >= max || markedForDelete(index))
- delete *ptr;
-// else {
-// SkApply* apply = (SkApply*) *ptr;
-// SkASSERT(apply->isApply());
-// SkASSERT(apply->getScope());
-// delete apply->getScope();
-// }
- index++;
- }
-}
-
-bool SkGroup::add(SkAnimateMaker& , SkDisplayable* child) {
- SkASSERT(child);
-// SkASSERT(child->isDrawable());
- *fChildren.append() = (SkDrawable*) child;
- if (child->isGroup()) {
- SkGroup* groupie = (SkGroup*) child;
- SkASSERT(groupie->fParentList == NULL);
- groupie->fParentList = &fChildren;
- }
- return true;
-}
-
-bool SkGroup::contains(SkDisplayable* match) {
- for (SkDrawable** ptr = fChildren.begin(); ptr < fChildren.end(); ptr++) {
- SkDrawable* drawable = *ptr;
- if (drawable == match || drawable->contains(match))
- return true;
- }
- return false;
-}
-
-SkGroup* SkGroup::copy() {
- SkGroup* result = new SkGroup();
- result->fOriginal = this;
- result->fChildren = fChildren;
- return result;
-}
-
-SkBool SkGroup::copySet(int index) {
- return (fCopies[index >> 5] & 1 << (index & 0x1f)) != 0;
-}
-
-SkDisplayable* SkGroup::deepCopy(SkAnimateMaker* maker) {
- SkDisplayable* copy = INHERITED::deepCopy(maker);
- for (SkDrawable** ptr = fChildren.begin(); ptr < fChildren.end(); ptr++) {
- SkDisplayable* displayable = (SkDisplayable*)*ptr;
- SkDisplayable* deeperCopy = displayable->deepCopy(maker);
- ((SkGroup*)copy)->add(*maker, deeperCopy);
- }
- return copy;
-}
-
-bool SkGroup::doEvent(SkDisplayEvent::Kind kind, SkEventState* state) {
- bool handled = false;
- for (SkDrawable** ptr = fChildren.begin(); ptr < fChildren.end(); ptr++) {
- SkDrawable* drawable = *ptr;
- if (drawable->isDrawable() == false)
- continue;
- handled |= drawable->doEvent(kind, state);
- }
- return handled;
-}
-
-bool SkGroup::draw(SkAnimateMaker& maker) {
- bool conditionTrue = ifCondition(maker, this, condition);
- bool result = false;
- for (SkDrawable** ptr = fChildren.begin(); ptr < fChildren.end(); ptr++) {
- SkDrawable* drawable = *ptr;
- if (drawable->isDrawable() == false)
- continue;
- if (conditionTrue == false) {
- if (drawable->isApply())
- ((SkApply*) drawable)->disable();
- continue;
- }
- maker.validate();
- result |= drawable->draw(maker);
- maker.validate();
- }
- return result;
-}
-
-#ifdef SK_DUMP_ENABLED
-void SkGroup::dump(SkAnimateMaker* maker) {
- dumpBase(maker);
- if (condition.size() > 0)
- SkDebugf("condition=\"%s\" ", condition.c_str());
- if (enableCondition.size() > 0)
- SkDebugf("enableCondition=\"%s\" ", enableCondition.c_str());
- dumpDrawables(maker);
-}
-
-void SkGroup::dumpDrawables(SkAnimateMaker* maker) {
- SkDisplayList::fIndent += 4;
- int save = SkDisplayList::fDumpIndex;
- SkDisplayList::fDumpIndex = 0;
- bool closedYet = false;
- for (SkDrawable** ptr = fChildren.begin(); ptr < fChildren.end(); ptr++) {
- if (closedYet == false) {
- closedYet = true;
- SkDebugf(">\n");
- }
- SkDrawable* drawable = *ptr;
- drawable->dump(maker);
- SkDisplayList::fDumpIndex++;
- }
- SkDisplayList::fIndent -= 4;
- SkDisplayList::fDumpIndex = save;
- if (closedYet) //we had children, now it's time to close the group
- dumpEnd(maker);
- else //no children
- SkDebugf("/>\n");
-}
-
-void SkGroup::dumpEvents() {
- for (SkDrawable** ptr = fChildren.begin(); ptr < fChildren.end(); ptr++) {
- SkDrawable* drawable = *ptr;
- drawable->dumpEvents();
- }
-}
-#endif
-
-bool SkGroup::enable(SkAnimateMaker& maker ) {
- reset();
- for (SkDrawable** ptr = fChildren.begin(); ptr < fChildren.end(); ptr++) {
- SkDrawable* drawable = *ptr;
- if (ifCondition(maker, drawable, enableCondition) == false)
- continue;
- drawable->enable(maker);
- }
- return true; // skip add; already added so that scope is findable by children
-}
-
-int SkGroup::findGroup(SkDrawable* match, SkTDDrawableArray** list,
- SkGroup** parent, SkGroup** found, SkTDDrawableArray** grandList) {
- *list = &fChildren;
- for (SkDrawable** ptr = fChildren.begin(); ptr < fChildren.end(); ptr++) {
- SkDrawable* drawable = *ptr;
- if (drawable->isGroup()) {
- SkGroup* childGroup = (SkGroup*) drawable;
- if (childGroup->fOriginal == match)
- goto foundMatch;
- }
- if (drawable == match) {
-foundMatch:
- *parent = this;
- return (int) (ptr - fChildren.begin());
- }
- }
- *grandList = &fChildren;
- return SkDisplayList::SearchForMatch(match, list, parent, found, grandList);
-}
-
-bool SkGroup::hasEnable() const {
- return true;
-}
-
-bool SkGroup::ifCondition(SkAnimateMaker& maker, SkDrawable* drawable,
- SkString& conditionString) {
- if (conditionString.size() == 0)
- return true;
- int32_t result;
- bool success = SkAnimatorScript::EvaluateInt(maker, this, conditionString.c_str(), &result);
-#ifdef SK_DUMP_ENABLED
- if (maker.fDumpGConditions) {
- SkDebugf("group: ");
- dumpBase(&maker);
- SkDebugf("condition=%s ", conditionString.c_str());
- if (success == false)
- SkDebugf("(script failed)\n");
- else
- SkDebugf("success=%s\n", result != 0 ? "true" : "false");
- }
-#endif
- return success && result != 0;
-}
-
-void SkGroup::initialize() {
- for (SkDrawable** ptr = fChildren.begin(); ptr < fChildren.end(); ptr++) {
- SkDrawable* drawable = *ptr;
- if (drawable->isDrawable() == false)
- continue;
- drawable->initialize();
- }
-}
-
-void SkGroup::markCopyClear(int index) {
- if (index < 0)
- index = fChildren.count();
- fCopies[index >> 5] &= ~(1 << (index & 0x1f));
-}
-
-void SkGroup::markCopySet(int index) {
- if (index < 0)
- index = fChildren.count();
- fCopies[index >> 5] |= 1 << (index & 0x1f);
-}
-
-void SkGroup::markCopySize(int index) {
- if (index < 0)
- index = fChildren.count() + 1;
- int oldLongs = fCopies.count();
- int newLongs = (index >> 5) + 1;
- if (oldLongs < newLongs) {
- fCopies.setCount(newLongs);
- memset(&fCopies[oldLongs], 0, (newLongs - oldLongs) << 2);
- }
-}
-
-void SkGroup::reset() {
- if (fOriginal) // has been copied
- return;
- int index = 0;
- int max = fCopies.count() << 5;
- for (SkDrawable** ptr = fChildren.begin(); ptr < fChildren.end(); ptr++) {
- if (index >= max || copySet(index) == false)
- continue;
- SkApply* apply = (SkApply*) *ptr;
- SkASSERT(apply->isApply());
- SkASSERT(apply->getScope());
- *ptr = apply->getScope();
- markCopyClear(index);
- index++;
- }
-}
-
-bool SkGroup::resolveIDs(SkAnimateMaker& maker, SkDisplayable* orig, SkApply* apply) {
- SkGroup* original = (SkGroup*) orig;
- SkTDDrawableArray& originalChildren = original->fChildren;
- SkDrawable** originalPtr = originalChildren.begin();
- SkDrawable** ptr = fChildren.begin();
- SkDrawable** end = fChildren.end();
- SkDrawable** origChild = ((SkGroup*) orig)->fChildren.begin();
- while (ptr < end) {
- SkDrawable* drawable = *ptr++;
- maker.resolveID(drawable, *origChild++);
- if (drawable->resolveIDs(maker, *originalPtr++, apply) == true)
- return true; // failed
- }
- return false;
-}
-
-void SkGroup::setSteps(int steps) {
- for (SkDrawable** ptr = fChildren.begin(); ptr < fChildren.end(); ptr++) {
- SkDrawable* drawable = *ptr;
- if (drawable->isDrawable() == false)
- continue;
- drawable->setSteps(steps);
- }
-}
-
-#ifdef SK_DEBUG
-void SkGroup::validate() {
- for (SkDrawable** ptr = fChildren.begin(); ptr < fChildren.end(); ptr++) {
- SkDrawable* drawable = *ptr;
- drawable->validate();
- }
-}
-#endif
-
-#if SK_USE_CONDENSED_INFO == 0
-
-const SkMemberInfo SkSave::fInfo[] = {
- SK_MEMBER_INHERITED
-};
-
-#endif
-
-DEFINE_GET_MEMBER(SkSave);
-
-bool SkSave::draw(SkAnimateMaker& maker) {
- maker.fCanvas->save();
- SkPaint* save = maker.fPaint;
- SkPaint local = SkPaint(*maker.fPaint);
- maker.fPaint = &local;
- bool result = INHERITED::draw(maker);
- maker.fPaint = save;
- maker.fCanvas->restore();
- return result;
-}
-
-
« no previous file with comments | « skia/animator/SkDrawGroup.h ('k') | skia/animator/SkDrawLine.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698