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

Unified Diff: skia/animator/SkDrawExtraPathEffect.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/SkDrawEmboss.cpp ('k') | skia/animator/SkDrawFull.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: skia/animator/SkDrawExtraPathEffect.cpp
===================================================================
--- skia/animator/SkDrawExtraPathEffect.cpp (revision 16859)
+++ skia/animator/SkDrawExtraPathEffect.cpp (working copy)
@@ -1,519 +0,0 @@
-/* libs/graphics/animator/SkDrawExtraPathEffect.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 "SkDrawExtraPathEffect.h"
-#include "SkDrawPath.h"
-#include "Sk1DPathEffect.h"
-#include "Sk2DPathEffect.h"
-#include "SkMemberInfo.h"
-#include "SkPaintParts.h"
-#include "SkPathEffect.h"
-#include "SkCornerPathEffect.h"
-
-#include "SkDashPathEffect.h"
-
-class SkDrawShapePathEffect : public SkDrawPathEffect {
- DECLARE_PRIVATE_MEMBER_INFO(DrawShapePathEffect);
- SkDrawShapePathEffect();
- virtual ~SkDrawShapePathEffect();
- virtual bool add(SkAnimateMaker& , SkDisplayable* );
- virtual SkPathEffect* getPathEffect();
-protected:
- SkDrawable* addPath;
- SkDrawable* addMatrix;
- SkDrawPath* path;
- SkPathEffect* fPathEffect;
- friend class SkShape1DPathEffect;
- friend class SkShape2DPathEffect;
-};
-
-class SkDrawShape1DPathEffect : public SkDrawShapePathEffect {
- DECLARE_EXTRAS_MEMBER_INFO(SkDrawShape1DPathEffect);
- SkDrawShape1DPathEffect(SkDisplayTypes );
- virtual ~SkDrawShape1DPathEffect();
- virtual void onEndElement(SkAnimateMaker& );
-private:
- SkString phase;
- SkString spacing;
- friend class SkShape1DPathEffect;
- typedef SkDrawShapePathEffect INHERITED;
-};
-
-class SkDrawShape2DPathEffect : public SkDrawShapePathEffect {
- DECLARE_EXTRAS_MEMBER_INFO(SkDrawShape2DPathEffect);
- SkDrawShape2DPathEffect(SkDisplayTypes );
- virtual ~SkDrawShape2DPathEffect();
- virtual void onEndElement(SkAnimateMaker& );
-private:
- SkDrawMatrix* matrix;
- friend class SkShape2DPathEffect;
- typedef SkDrawShapePathEffect INHERITED;
-};
-
-class SkDrawComposePathEffect : public SkDrawPathEffect {
- DECLARE_EXTRAS_MEMBER_INFO(SkDrawComposePathEffect);
- SkDrawComposePathEffect(SkDisplayTypes );
- virtual ~SkDrawComposePathEffect();
- virtual bool add(SkAnimateMaker& , SkDisplayable* );
- virtual SkPathEffect* getPathEffect();
- virtual bool isPaint() const;
-private:
- SkDrawPathEffect* effect1;
- SkDrawPathEffect* effect2;
-};
-
-class SkDrawCornerPathEffect : public SkDrawPathEffect {
- DECLARE_EXTRAS_MEMBER_INFO(SkDrawCornerPathEffect);
- SkDrawCornerPathEffect(SkDisplayTypes );
- virtual ~SkDrawCornerPathEffect();
- virtual SkPathEffect* getPathEffect();
-private:
- SkScalar radius;
-};
-
-//////////// SkShape1DPathEffect
-
-#include "SkAnimateMaker.h"
-#include "SkAnimatorScript.h"
-#include "SkDisplayApply.h"
-#include "SkDrawMatrix.h"
-#include "SkPaint.h"
-
-class SkShape1DPathEffect : public Sk1DPathEffect {
-public:
- SkShape1DPathEffect(SkDrawShape1DPathEffect* draw, SkAnimateMaker* maker) :
- fDraw(draw), fMaker(maker) {
- }
-
-protected:
- virtual SkScalar begin(SkScalar contourLength)
- {
- SkScriptValue value;
- SkAnimatorScript engine(*fMaker, NULL, SkType_Float);
- engine.propertyCallBack(GetContourLength, &contourLength);
- value.fOperand.fScalar = 0;
- engine.evaluate(fDraw->phase.c_str(), &value, SkType_Float);
- return value.fOperand.fScalar;
- }
-
- virtual SkScalar next(SkPath* dst, SkScalar distance, SkPathMeasure& )
- {
- fMaker->setExtraPropertyCallBack(fDraw->fType, GetDistance, &distance);
- SkDrawPath* drawPath = NULL;
- if (fDraw->addPath->isPath()) {
- drawPath = (SkDrawPath*) fDraw->addPath;
- } else {
- SkApply* apply = (SkApply*) fDraw->addPath;
- apply->refresh(*fMaker);
- apply->activate(*fMaker);
- apply->interpolate(*fMaker, SkScalarMulRound(distance, 1000));
- drawPath = (SkDrawPath*) apply->getScope();
- }
- SkMatrix m;
- m.reset();
- if (fDraw->addMatrix) {
- SkDrawMatrix* matrix;
- if (fDraw->addMatrix->getType() == SkType_Matrix)
- matrix = (SkDrawMatrix*) fDraw->addMatrix;
- else {
- SkApply* apply = (SkApply*) fDraw->addMatrix;
- apply->refresh(*fMaker);
- apply->activate(*fMaker);
- apply->interpolate(*fMaker, SkScalarMulRound(distance, 1000));
- matrix = (SkDrawMatrix*) apply->getScope();
- }
- }
- SkScalar result = 0;
- SkAnimatorScript::EvaluateFloat(*fMaker, NULL, fDraw->spacing.c_str(), &result);
- if (drawPath)
- dst->addPath(drawPath->getPath(), m);
- fMaker->clearExtraPropertyCallBack(fDraw->fType);
- return result;
- }
-
-private:
- virtual void flatten(SkFlattenableWriteBuffer& ) {}
- virtual Factory getFactory() { return NULL; }
-
- static bool GetContourLength(const char* token, size_t len, void* clen, SkScriptValue* value) {
- if (SK_LITERAL_STR_EQUAL("contourLength", token, len)) {
- value->fOperand.fScalar = *(SkScalar*) clen;
- value->fType = SkType_Float;
- return true;
- }
- return false;
- }
-
- static bool GetDistance(const char* token, size_t len, void* dist, SkScriptValue* value) {
- if (SK_LITERAL_STR_EQUAL("distance", token, len)) {
- value->fOperand.fScalar = *(SkScalar*) dist;
- value->fType = SkType_Float;
- return true;
- }
- return false;
- }
-
- SkDrawShape1DPathEffect* fDraw;
- SkAnimateMaker* fMaker;
-};
-
-//////////// SkDrawShapePathEffect
-
-#if SK_USE_CONDENSED_INFO == 0
-
-const SkMemberInfo SkDrawShapePathEffect::fInfo[] = {
- SK_MEMBER(addMatrix, Drawable), // either matrix or apply
- SK_MEMBER(addPath, Drawable), // either path or apply
- SK_MEMBER(path, Path),
-};
-
-#endif
-
-DEFINE_GET_MEMBER(SkDrawShapePathEffect);
-
-SkDrawShapePathEffect::SkDrawShapePathEffect() :
- addPath(NULL), addMatrix(NULL), path(NULL), fPathEffect(NULL) {
-}
-
-SkDrawShapePathEffect::~SkDrawShapePathEffect() {
- fPathEffect->safeUnref();
-}
-
-bool SkDrawShapePathEffect::add(SkAnimateMaker& , SkDisplayable* child) {
- path = (SkDrawPath*) child;
- return true;
-}
-
-SkPathEffect* SkDrawShapePathEffect::getPathEffect() {
- fPathEffect->ref();
- return fPathEffect;
-}
-
-//////////// SkDrawShape1DPathEffect
-
-#if SK_USE_CONDENSED_INFO == 0
-
-const SkMemberInfo SkDrawShape1DPathEffect::fInfo[] = {
- SK_MEMBER_INHERITED,
- SK_MEMBER(phase, String),
- SK_MEMBER(spacing, String),
-};
-
-#endif
-
-DEFINE_GET_MEMBER(SkDrawShape1DPathEffect);
-
-SkDrawShape1DPathEffect::SkDrawShape1DPathEffect(SkDisplayTypes type) : fType(type) {
-}
-
-SkDrawShape1DPathEffect::~SkDrawShape1DPathEffect() {
-}
-
-void SkDrawShape1DPathEffect::onEndElement(SkAnimateMaker& maker) {
- if (addPath == NULL || (addPath->isPath() == false && addPath->isApply() == false))
- maker.setErrorCode(SkDisplayXMLParserError::kUnknownError); // !!! add error
- else
- fPathEffect = new SkShape1DPathEffect(this, &maker);
-}
-
-////////// SkShape2DPathEffect
-
-class SkShape2DPathEffect : public Sk2DPathEffect {
-public:
- SkShape2DPathEffect(SkDrawShape2DPathEffect* draw, SkAnimateMaker* maker,
- const SkMatrix& matrix) : Sk2DPathEffect(matrix), fDraw(draw), fMaker(maker) {
- }
-
-protected:
- virtual void begin(const SkIRect& uvBounds, SkPath* )
- {
- fUVBounds.set(SkIntToScalar(uvBounds.fLeft), SkIntToScalar(uvBounds.fTop),
- SkIntToScalar(uvBounds.fRight), SkIntToScalar(uvBounds.fBottom));
- }
-
- virtual void next(const SkPoint& loc, int u, int v, SkPath* dst)
- {
- fLoc = loc;
- fU = u;
- fV = v;
- SkDrawPath* drawPath;
- fMaker->setExtraPropertyCallBack(fDraw->fType, Get2D, this);
- if (fDraw->addPath->isPath()) {
- drawPath = (SkDrawPath*) fDraw->addPath;
- } else {
- SkApply* apply = (SkApply*) fDraw->addPath;
- apply->refresh(*fMaker);
- apply->activate(*fMaker);
- apply->interpolate(*fMaker, v);
- drawPath = (SkDrawPath*) apply->getScope();
- }
- if (drawPath == NULL)
- goto clearCallBack;
- if (fDraw->matrix) {
- SkDrawMatrix* matrix;
- if (fDraw->matrix->getType() == SkType_Matrix)
- matrix = (SkDrawMatrix*) fDraw->matrix;
- else {
- SkApply* apply = (SkApply*) fDraw->matrix;
- apply->activate(*fMaker);
- apply->interpolate(*fMaker, v);
- matrix = (SkDrawMatrix*) apply->getScope();
- }
- if (matrix) {
- dst->addPath(drawPath->getPath(), matrix->getMatrix());
- goto clearCallBack;
- }
- }
- dst->addPath(drawPath->getPath());
-clearCallBack:
- fMaker->clearExtraPropertyCallBack(fDraw->fType);
- }
-
-private:
-
- static bool Get2D(const char* token, size_t len, void* s2D, SkScriptValue* value) {
- static const char match[] = "locX|locY|left|top|right|bottom|u|v" ;
- SkShape2DPathEffect* shape2D = (SkShape2DPathEffect*) s2D;
- int index;
- if (SkAnimatorScript::MapEnums(match, token, len, &index) == false)
- return false;
- SkASSERT((sizeof(SkPoint) + sizeof(SkRect)) / sizeof(SkScalar) == 6);
- if (index < 6) {
- value->fType = SkType_Float;
- value->fOperand.fScalar = (&shape2D->fLoc.fX)[index];
- } else {
- value->fType = SkType_Int;
- value->fOperand.fS32 = (&shape2D->fU)[index - 6];
- }
- return true;
- }
-
- SkPoint fLoc;
- SkRect fUVBounds;
- int32_t fU;
- int32_t fV;
- SkDrawShape2DPathEffect* fDraw;
- SkAnimateMaker* fMaker;
-
- // illegal
- SkShape2DPathEffect(const SkShape2DPathEffect&);
- SkShape2DPathEffect& operator=(const SkShape2DPathEffect&);
-};
-
-////////// SkDrawShape2DPathEffect
-
-#if SK_USE_CONDENSED_INFO == 0
-
-const SkMemberInfo SkDrawShape2DPathEffect::fInfo[] = {
- SK_MEMBER_INHERITED,
- SK_MEMBER(matrix, Matrix)
-};
-
-#endif
-
-DEFINE_GET_MEMBER(SkDrawShape2DPathEffect);
-
-SkDrawShape2DPathEffect::SkDrawShape2DPathEffect(SkDisplayTypes type) : fType(type) {
-}
-
-SkDrawShape2DPathEffect::~SkDrawShape2DPathEffect() {
-}
-
-void SkDrawShape2DPathEffect::onEndElement(SkAnimateMaker& maker) {
- if (addPath == NULL || (addPath->isPath() == false && addPath->isApply() == false) ||
- matrix == NULL)
- maker.setErrorCode(SkDisplayXMLParserError::kUnknownError); // !!! add error
- else
- fPathEffect = new SkShape2DPathEffect(this, &maker, matrix->getMatrix());
-}
-
-////////// SkDrawComposePathEffect
-
-#if SK_USE_CONDENSED_INFO == 0
-
-const SkMemberInfo SkDrawComposePathEffect::fInfo[] = {
- SK_MEMBER(effect1, PathEffect),
- SK_MEMBER(effect2, PathEffect)
-};
-
-#endif
-
-DEFINE_GET_MEMBER(SkDrawComposePathEffect);
-
-SkDrawComposePathEffect::SkDrawComposePathEffect(SkDisplayTypes type) : fType(type),
- effect1(NULL), effect2(NULL) {
-}
-
-SkDrawComposePathEffect::~SkDrawComposePathEffect() {
- delete effect1;
- delete effect2;
-}
-
-bool SkDrawComposePathEffect::add(SkAnimateMaker& , SkDisplayable* child) {
- if (effect1 == NULL)
- effect1 = (SkDrawPathEffect*) child;
- else
- effect2 = (SkDrawPathEffect*) child;
- return true;
-}
-
-SkPathEffect* SkDrawComposePathEffect::getPathEffect() {
- SkPathEffect* e1 = effect1->getPathEffect();
- SkPathEffect* e2 = effect2->getPathEffect();
- SkPathEffect* composite = new SkComposePathEffect(e1, e2);
- e1->unref();
- e2->unref();
- return composite;
-}
-
-bool SkDrawComposePathEffect::isPaint() const {
- return true;
-}
-
-//////////// SkDrawCornerPathEffect
-
-#if SK_USE_CONDENSED_INFO == 0
-
-const SkMemberInfo SkDrawCornerPathEffect::fInfo[] = {
- SK_MEMBER(radius, Float)
-};
-
-#endif
-
-DEFINE_GET_MEMBER(SkDrawCornerPathEffect);
-
-SkDrawCornerPathEffect::SkDrawCornerPathEffect(SkDisplayTypes type):
- fType(type), radius(0) {
-}
-
-SkDrawCornerPathEffect::~SkDrawCornerPathEffect() {
-}
-
-SkPathEffect* SkDrawCornerPathEffect::getPathEffect() {
- return new SkCornerPathEffect(radius);
-}
-
-/////////
-
-#include "SkExtras.h"
-
-const char kDrawShape1DPathEffectName[] = "pathEffect:shape1D";
-const char kDrawShape2DPathEffectName[] = "pathEffect:shape2D";
-const char kDrawComposePathEffectName[] = "pathEffect:compose";
-const char kDrawCornerPathEffectName[] = "pathEffect:corner";
-
-class SkExtraPathEffects : public SkExtras {
-public:
- SkExtraPathEffects(SkAnimator* animator) :
- skDrawShape1DPathEffectType(SkType_Unknown),
- skDrawShape2DPathEffectType(SkType_Unknown),
- skDrawComposePathEffectType(SkType_Unknown),
- skDrawCornerPathEffectType(SkType_Unknown) {
- }
-
- virtual SkDisplayable* createInstance(SkDisplayTypes type) {
- SkDisplayable* result = NULL;
- if (skDrawShape1DPathEffectType == type)
- result = new SkDrawShape1DPathEffect(type);
- else if (skDrawShape2DPathEffectType == type)
- result = new SkDrawShape2DPathEffect(type);
- else if (skDrawComposePathEffectType == type)
- result = new SkDrawComposePathEffect(type);
- else if (skDrawCornerPathEffectType == type)
- result = new SkDrawCornerPathEffect(type);
- return result;
- }
-
- virtual bool definesType(SkDisplayTypes type) {
- return type == skDrawShape1DPathEffectType ||
- type == skDrawShape2DPathEffectType ||
- type == skDrawComposePathEffectType ||
- type == skDrawCornerPathEffectType;
- }
-
-#if SK_USE_CONDENSED_INFO == 0
- virtual const SkMemberInfo* getMembers(SkDisplayTypes type, int* infoCountPtr) {
- const SkMemberInfo* info = NULL;
- int infoCount = 0;
- if (skDrawShape1DPathEffectType == type) {
- info = SkDrawShape1DPathEffect::fInfo;
- infoCount = SkDrawShape1DPathEffect::fInfoCount;
- } else if (skDrawShape2DPathEffectType == type) {
- info = SkDrawShape2DPathEffect::fInfo;
- infoCount = SkDrawShape2DPathEffect::fInfoCount;
- } else if (skDrawComposePathEffectType == type) {
- info = SkDrawComposePathEffect::fInfo;
- infoCount = SkDrawShape1DPathEffect::fInfoCount;
- } else if (skDrawCornerPathEffectType == type) {
- info = SkDrawCornerPathEffect::fInfo;
- infoCount = SkDrawCornerPathEffect::fInfoCount;
- }
- if (infoCountPtr)
- *infoCountPtr = infoCount;
- return info;
- }
-#endif
-
-#ifdef SK_DEBUG
- virtual const char* getName(SkDisplayTypes type) {
- if (skDrawShape1DPathEffectType == type)
- return kDrawShape1DPathEffectName;
- else if (skDrawShape2DPathEffectType == type)
- return kDrawShape2DPathEffectName;
- else if (skDrawComposePathEffectType == type)
- return kDrawComposePathEffectName;
- else if (skDrawCornerPathEffectType == type)
- return kDrawCornerPathEffectName;
- return NULL;
- }
-#endif
-
- virtual SkDisplayTypes getType(const char name[], size_t len ) {
- SkDisplayTypes* type = NULL;
- if (SK_LITERAL_STR_EQUAL(kDrawShape1DPathEffectName, name, len))
- type = &skDrawShape1DPathEffectType;
- else if (SK_LITERAL_STR_EQUAL(kDrawShape2DPathEffectName, name, len))
- type = &skDrawShape2DPathEffectType;
- else if (SK_LITERAL_STR_EQUAL(kDrawComposePathEffectName, name, len))
- type = &skDrawComposePathEffectType;
- else if (SK_LITERAL_STR_EQUAL(kDrawCornerPathEffectName, name, len))
- type = &skDrawCornerPathEffectType;
- if (type) {
- if (*type == SkType_Unknown)
- *type = SkDisplayType::RegisterNewType();
- return *type;
- }
- return SkType_Unknown;
- }
-
-private:
- SkDisplayTypes skDrawShape1DPathEffectType;
- SkDisplayTypes skDrawShape2DPathEffectType;
- SkDisplayTypes skDrawComposePathEffectType;
- SkDisplayTypes skDrawCornerPathEffectType;
-};
-
-
-void InitializeSkExtraPathEffects(SkAnimator* animator) {
- animator->addExtras(new SkExtraPathEffects(animator));
-}
-
-////////////////
-
-
-SkExtras::SkExtras() : fExtraCallBack(NULL), fExtraStorage(NULL) {
-}
« no previous file with comments | « skia/animator/SkDrawEmboss.cpp ('k') | skia/animator/SkDrawFull.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698