remove obsolete file
git-svn-id: http://skia.googlecode.com/svn/trunk@2986 2bbb7eff-a529-9590-31e7-b0007b416f81
This commit is contained in:
parent
c52b1927c2
commit
25634e08bb
@ -1,159 +0,0 @@
|
|||||||
|
|
||||||
/*
|
|
||||||
* Copyright 2011 Google Inc.
|
|
||||||
*
|
|
||||||
* Use of this source code is governed by a BSD-style license that can be
|
|
||||||
* found in the LICENSE file.
|
|
||||||
*/
|
|
||||||
#include "SkDrawing.h"
|
|
||||||
#include "SkCanvas.h"
|
|
||||||
|
|
||||||
SkDrawing::SkDrawing() {
|
|
||||||
fMatrix.reset();
|
|
||||||
fParent = fFirstChild = fNextSibling = fPrevSibling = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
SkDrawing::~SkDrawing() {
|
|
||||||
this->detachAllChildren();
|
|
||||||
}
|
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
void SkDrawing::resetMatrix() {
|
|
||||||
fMatrix.reset();
|
|
||||||
}
|
|
||||||
|
|
||||||
void SkDrawing::getMatrix(SkMatrix* matrix) const {
|
|
||||||
if (matrix) {
|
|
||||||
*matrix = fMatrix;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void SkDrawing::setMatrix(const SkMatrix& matrix) {
|
|
||||||
if (fMatrix != matrix) {
|
|
||||||
this->inval();
|
|
||||||
fMatrix = matrix;
|
|
||||||
this->inval();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void SkDrawing::draw(SkCanvas* canvas) {
|
|
||||||
SkAutoCanvasRestore ar(canvas, false);
|
|
||||||
canvas->save(SkCanvas::kMatrix_SaveFlag);
|
|
||||||
canvas->concat(fMatrix);
|
|
||||||
|
|
||||||
this->onDraw(canvas);
|
|
||||||
|
|
||||||
B2FIter iter(this);
|
|
||||||
SkDrawing* child;
|
|
||||||
while ((child = iter.next()) != NULL) {
|
|
||||||
child->draw(canvas);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
void SkDrawing::detachFromParent() {
|
|
||||||
SkDrawing* parent = fParent;
|
|
||||||
|
|
||||||
if (NULL == parent) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
this->inval();
|
|
||||||
|
|
||||||
SkDrawing* next = NULL;
|
|
||||||
|
|
||||||
if (fNextSibling != this) { // do we have any siblings
|
|
||||||
fNextSibling->fPrevSibling = fPrevSibling;
|
|
||||||
fPrevSibling->fNextSibling = fNextSibling;
|
|
||||||
next = fNextSibling;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (fParent->fFirstChild == this) {
|
|
||||||
fParent->fFirstChild = next;
|
|
||||||
}
|
|
||||||
|
|
||||||
fParent = fNextSibling = fPrevSibling = NULL;
|
|
||||||
this->unref();
|
|
||||||
}
|
|
||||||
|
|
||||||
SkDrawing* SkDrawing::attachChildToBack(SkDrawing* child) {
|
|
||||||
SkASSERT(child != this);
|
|
||||||
|
|
||||||
if (child == NULL || fFirstChild == child) {
|
|
||||||
return child;
|
|
||||||
}
|
|
||||||
|
|
||||||
child->ref();
|
|
||||||
child->detachFromParent();
|
|
||||||
|
|
||||||
if (fFirstChild == NULL) {
|
|
||||||
child->fNextSibling = child;
|
|
||||||
child->fPrevSibling = child;
|
|
||||||
} else {
|
|
||||||
child->fNextSibling = fFirstChild;
|
|
||||||
child->fPrevSibling = fFirstChild->fPrevSibling;
|
|
||||||
fFirstChild->fPrevSibling->fNextSibling = child;
|
|
||||||
fFirstChild->fPrevSibling = child;
|
|
||||||
}
|
|
||||||
|
|
||||||
fFirstChild = child;
|
|
||||||
child->fParent = this;
|
|
||||||
child->inval();
|
|
||||||
return child;
|
|
||||||
}
|
|
||||||
|
|
||||||
SkDrawing* SkDrawing::attachChildToFront(SkDrawing* child) {
|
|
||||||
SkASSERT(child != this);
|
|
||||||
|
|
||||||
if (child == NULL || fFirstChild && fFirstChild->fPrevSibling == child) {
|
|
||||||
return child;
|
|
||||||
}
|
|
||||||
|
|
||||||
child->ref();
|
|
||||||
child->detachFromParent();
|
|
||||||
|
|
||||||
if (fFirstChild == NULL) {
|
|
||||||
fFirstChild = child;
|
|
||||||
child->fNextSibling = child;
|
|
||||||
child->fPrevSibling = child;
|
|
||||||
} else {
|
|
||||||
child->fNextSibling = fFirstChild;
|
|
||||||
child->fPrevSibling = fFirstChild->fPrevSibling;
|
|
||||||
fFirstChild->fPrevSibling->fNextSibling = child;
|
|
||||||
fFirstChild->fPrevSibling = child;
|
|
||||||
}
|
|
||||||
|
|
||||||
child->fParent = this;
|
|
||||||
child->inval();
|
|
||||||
return child;
|
|
||||||
}
|
|
||||||
|
|
||||||
void SkDrawing::detachAllChildren() {
|
|
||||||
while (fFirstChild) {
|
|
||||||
fFirstChild->detachFromParent();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
SkDrawing::B2FIter::B2FIter(const SkDrawing* parent) {
|
|
||||||
fFirstChild = parent ? parent->fFirstChild : NULL;
|
|
||||||
fChild = fFirstChild;
|
|
||||||
}
|
|
||||||
|
|
||||||
SkDrawing* SkDrawing::B2FIter::next() {
|
|
||||||
SkDrawing* curr = fChild;
|
|
||||||
|
|
||||||
if (fChild) {
|
|
||||||
SkDrawing* next = fChild->fNextSibling;
|
|
||||||
if (next == fFirstChild) {
|
|
||||||
next = NULL;
|
|
||||||
}
|
|
||||||
fChild = next;
|
|
||||||
}
|
|
||||||
return curr;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user