diff options
author | 2009-11-10 16:19:39 +0000 | |
---|---|---|
committer | 2009-11-10 16:19:39 +0000 | |
commit | bcfc73321db47bde7638a1077992301ee56117b1 (patch) | |
tree | 859b2a1dfaefc43b32fcaa5311c38f2ea3674e53 /src/effects/SkGradientShader.cpp | |
parent | c6ddc110c0f4bd16b5ce61cad6c6ac4213c026a0 (diff) |
flatten/unflatten custom fields for 2-point gradient
git-svn-id: http://skia.googlecode.com/svn/trunk@423 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'src/effects/SkGradientShader.cpp')
-rw-r--r-- | src/effects/SkGradientShader.cpp | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/src/effects/SkGradientShader.cpp b/src/effects/SkGradientShader.cpp index a30de6a937..780ad18977 100644 --- a/src/effects/SkGradientShader.cpp +++ b/src/effects/SkGradientShader.cpp @@ -1330,8 +1330,28 @@ public: return SkNEW_ARGS(Two_Point_Radial_Gradient, (buffer)); } + virtual void flatten(SkFlattenableWriteBuffer& buffer) { + this->INHERITED::flatten(buffer); + buffer.writeScalar(fDiff.fX); + buffer.writeScalar(fDiff.fY); + buffer.writeScalar(fStartRadius); + buffer.writeScalar(fDiffRadius); + buffer.writeScalar(fSr2D2); + buffer.writeScalar(fA); + buffer.writeScalar(fOneOverTwoA); + } + protected: - Two_Point_Radial_Gradient(SkFlattenableReadBuffer& buffer) : Gradient_Shader(buffer) {}; + Two_Point_Radial_Gradient(SkFlattenableReadBuffer& buffer) + : Gradient_Shader(buffer) { + fDiff.fX = buffer.readScalar(); + fDiff.fY = buffer.readScalar(); + fStartRadius = buffer.readScalar(); + fDiffRadius = buffer.readScalar(); + fSr2D2 = buffer.readScalar(); + fA = buffer.readScalar(); + fOneOverTwoA = buffer.readScalar(); + }; virtual Factory getFactory() { return CreateProc; } virtual void onCacheReset() {} |