diff options
author | initial.commit <initial.commit@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-07-27 00:09:42 +0000 |
---|---|---|
committer | initial.commit <initial.commit@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-07-27 00:09:42 +0000 |
commit | ae2c20f398933a9e86c387dcc465ec0f71065ffc (patch) | |
tree | de668b1411e2ee0b4e49b6d8f8b68183134ac990 /skia/animator/SkPathParts.cpp | |
parent | 09911bf300f1a419907a9412154760efd0b7abc3 (diff) | |
download | chromium_src-ae2c20f398933a9e86c387dcc465ec0f71065ffc.zip chromium_src-ae2c20f398933a9e86c387dcc465ec0f71065ffc.tar.gz chromium_src-ae2c20f398933a9e86c387dcc465ec0f71065ffc.tar.bz2 |
Add skia to the repository.
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@16 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'skia/animator/SkPathParts.cpp')
-rw-r--r-- | skia/animator/SkPathParts.cpp | 328 |
1 files changed, 328 insertions, 0 deletions
diff --git a/skia/animator/SkPathParts.cpp b/skia/animator/SkPathParts.cpp new file mode 100644 index 0000000..e015d66 --- /dev/null +++ b/skia/animator/SkPathParts.cpp @@ -0,0 +1,328 @@ +/* libs/graphics/animator/SkPathParts.cpp +** +** Copyright 2006, Google Inc. +** +** 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 "SkPathParts.h" +#include "SkAnimateMaker.h" +#include "SkDrawMatrix.h" +#include "SkDrawRectangle.h" +#include "SkDrawPath.h" + +SkPathPart::SkPathPart() : fPath(NULL) { +} + +void SkPathPart::dirty() { + fPath->dirty(); +} + +SkDisplayable* SkPathPart::getParent() const { + return fPath; +} + +bool SkPathPart::setParent(SkDisplayable* parent) { + SkASSERT(parent != NULL); + if (parent->isPath() == false) + return true; + fPath = (SkDrawPath*) parent; + return false; +} + +// MoveTo +#if SK_USE_CONDENSED_INFO == 0 + +const SkMemberInfo SkMoveTo::fInfo[] = { + SK_MEMBER(x, Float), + SK_MEMBER(y, Float) +}; + +#endif + +DEFINE_GET_MEMBER(SkMoveTo); + +SkMoveTo::SkMoveTo() : x(0), y(0) { +} + +bool SkMoveTo::add() { + fPath->fPath.moveTo(x, y); + return false; +} + + +// RMoveTo +#if SK_USE_CONDENSED_INFO == 0 + +const SkMemberInfo SkRMoveTo::fInfo[] = { + SK_MEMBER_INHERITED +}; + +#endif + +DEFINE_GET_MEMBER(SkRMoveTo); + +bool SkRMoveTo::add() { + fPath->fPath.rMoveTo(x, y); + return false; +} + + +// LineTo +#if SK_USE_CONDENSED_INFO == 0 + +const SkMemberInfo SkLineTo::fInfo[] = { + SK_MEMBER(x, Float), + SK_MEMBER(y, Float) +}; + +#endif + +DEFINE_GET_MEMBER(SkLineTo); + +SkLineTo::SkLineTo() : x(0), y(0) { +} + +bool SkLineTo::add() { + fPath->fPath.lineTo(x, y); + return false; +} + + +// RLineTo +#if SK_USE_CONDENSED_INFO == 0 + +const SkMemberInfo SkRLineTo::fInfo[] = { + SK_MEMBER_INHERITED +}; + +#endif + +DEFINE_GET_MEMBER(SkRLineTo); + +bool SkRLineTo::add() { + fPath->fPath.rLineTo(x, y); + return false; +} + + +// QuadTo +#if SK_USE_CONDENSED_INFO == 0 + +const SkMemberInfo SkQuadTo::fInfo[] = { + SK_MEMBER(x1, Float), + SK_MEMBER(x2, Float), + SK_MEMBER(y1, Float), + SK_MEMBER(y2, Float) +}; + +#endif + +DEFINE_GET_MEMBER(SkQuadTo); + +SkQuadTo::SkQuadTo() : x1(0), y1(0), x2(0), y2(0) { +} + +bool SkQuadTo::add() { + fPath->fPath.quadTo(x1, y1, x2, y2); + return false; +} + + +// RQuadTo +#if SK_USE_CONDENSED_INFO == 0 + +const SkMemberInfo SkRQuadTo::fInfo[] = { + SK_MEMBER_INHERITED +}; + +#endif + +DEFINE_GET_MEMBER(SkRQuadTo); + +bool SkRQuadTo::add() { + fPath->fPath.rQuadTo(x1, y1, x2, y2); + return false; +} + + +// CubicTo +#if SK_USE_CONDENSED_INFO == 0 + +const SkMemberInfo SkCubicTo::fInfo[] = { + SK_MEMBER(x1, Float), + SK_MEMBER(x2, Float), + SK_MEMBER(x3, Float), + SK_MEMBER(y1, Float), + SK_MEMBER(y2, Float), + SK_MEMBER(y3, Float) +}; + +#endif + +DEFINE_GET_MEMBER(SkCubicTo); + +SkCubicTo::SkCubicTo() : x1(0), y1(0), x2(0), y2(0), x3(0), y3(0) { +} + +bool SkCubicTo::add() { + fPath->fPath.cubicTo(x1, y1, x2, y2, x3, y3); + return false; +} + + +// RCubicTo +#if SK_USE_CONDENSED_INFO == 0 + +const SkMemberInfo SkRCubicTo::fInfo[] = { + SK_MEMBER_INHERITED +}; + +#endif + +DEFINE_GET_MEMBER(SkRCubicTo); + +bool SkRCubicTo::add() { + fPath->fPath.rCubicTo(x1, y1, x2, y2, x3, y3); + return false; +} + + +// SkClose +bool SkClose::add() { + fPath->fPath.close(); + return false; +} + + +// SkAddGeom +#if SK_USE_CONDENSED_INFO == 0 + +const SkMemberInfo SkAddGeom::fInfo[] = { + SK_MEMBER(direction, PathDirection) +}; + +#endif + +DEFINE_GET_MEMBER(SkAddGeom); + +SkAddGeom::SkAddGeom() : direction(SkPath::kCCW_Direction) { +} + +#if SK_USE_CONDENSED_INFO == 0 + +const SkMemberInfo SkAddRect::fInfo[] = { + SK_MEMBER_INHERITED, + SK_MEMBER_ALIAS(bottom, fRect.fBottom, Float), + SK_MEMBER_ALIAS(left, fRect.fLeft, Float), + SK_MEMBER_ALIAS(right, fRect.fRight, Float), + SK_MEMBER_ALIAS(top, fRect.fTop, Float) +}; + +#endif + +DEFINE_GET_MEMBER(SkAddRect); + +SkAddRect::SkAddRect() { + fRect.setEmpty(); +} + +bool SkAddRect::add() { + fPath->fPath.addRect(fRect, (SkPath::Direction) direction); + return false; +} + + +#if SK_USE_CONDENSED_INFO == 0 + +const SkMemberInfo SkAddOval::fInfo[] = { + SK_MEMBER_INHERITED +}; + +#endif + +DEFINE_GET_MEMBER(SkAddOval); + +bool SkAddOval::add() { + fPath->fPath.addOval(fRect, (SkPath::Direction) direction); + return false; +} + + +#if SK_USE_CONDENSED_INFO == 0 + +const SkMemberInfo SkAddCircle::fInfo[] = { + SK_MEMBER_INHERITED, + SK_MEMBER(radius, Float), + SK_MEMBER(x, Float), + SK_MEMBER(y, Float) +}; + +#endif + +DEFINE_GET_MEMBER(SkAddCircle); + +SkAddCircle::SkAddCircle() : radius(0), x(0), y(0) { +} + +bool SkAddCircle::add() { + fPath->fPath.addCircle(x, y, radius, (SkPath::Direction) direction); + return false; +} + + +#if SK_USE_CONDENSED_INFO == 0 + +const SkMemberInfo SkAddRoundRect::fInfo[] = { + SK_MEMBER_INHERITED, + SK_MEMBER(rx, Float), + SK_MEMBER(ry, Float) +}; + +#endif + +DEFINE_GET_MEMBER(SkAddRoundRect); + +SkAddRoundRect::SkAddRoundRect() : rx(0), ry(0) { +} + +bool SkAddRoundRect::add() { + fPath->fPath.addRoundRect(fRect, rx, ry, (SkPath::Direction) direction); + return false; +} + + +#if SK_USE_CONDENSED_INFO == 0 + +const SkMemberInfo SkAddPath::fInfo[] = { + SK_MEMBER(matrix, Matrix), + SK_MEMBER(path, Path) +}; + +#endif + +DEFINE_GET_MEMBER(SkAddPath); + +SkAddPath::SkAddPath() : matrix(NULL), path(NULL) { +} + +bool SkAddPath::add() { + SkASSERT (path != NULL); + if (matrix) + fPath->fPath.addPath(path->fPath, matrix->getMatrix()); + else + fPath->fPath.addPath(path->fPath); + return false; +} + + |