diff options
author | djsollen@google.com <djsollen@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2012-04-12 13:24:04 +0000 |
---|---|---|
committer | djsollen@google.com <djsollen@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2012-04-12 13:24:04 +0000 |
commit | 2b2ede3e713065e1bac461787b0aafb03eaf871f (patch) | |
tree | 180a113560b219569ef06556982ec99fcac5ca36 /src/effects/SkGradientShader.cpp | |
parent | 7463f190972f45157242d2f1f4368de78e5863d7 (diff) |
Decouple the SkFlattenable from SkReader32/SkWriter32.
The current impl for SkFlattenable read/write buffers is
that they extend from SkReader32 and SkWriter32, but that
dependency must be abstract if we are to add any other
serialization format.
Review URL: https://codereview.appspot.com/5999045
git-svn-id: http://skia.googlecode.com/svn/trunk@3654 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'src/effects/SkGradientShader.cpp')
-rw-r--r-- | src/effects/SkGradientShader.cpp | 45 |
1 files changed, 14 insertions, 31 deletions
diff --git a/src/effects/SkGradientShader.cpp b/src/effects/SkGradientShader.cpp index 6e8d2fe0f1..8b78984d78 100644 --- a/src/effects/SkGradientShader.cpp +++ b/src/effects/SkGradientShader.cpp @@ -38,17 +38,6 @@ static void sk_memset32_dither(uint32_t dst[], uint32_t v0, uint32_t v1, } } -/////////////////////////////////////////////////////////////////////////////// -// Can't use a two-argument function with side effects like this in a -// constructor's initializer's argument list because the order of -// evaluations in that context is undefined (and backwards on linux/gcc). -static SkPoint unflatten_point(SkReader32& buffer) { - SkPoint retval; - retval.fX = buffer.readScalar(); - retval.fY = buffer.readScalar(); - return retval; -} - // Clamp static SkFixed clamp_tileproc(SkFixed x) { @@ -371,7 +360,7 @@ Gradient_Shader::Gradient_Shader(SkFlattenableReadBuffer& buffer) : recs[i].fScale = buffer.readU32(); } } - SkReadMatrix(&buffer, &fPtsToUnit); + buffer.readMatrix(&fPtsToUnit); this->initCommon(); } @@ -408,7 +397,7 @@ void Gradient_Shader::flatten(SkFlattenableWriteBuffer& buffer) const { buffer.write32(recs[i].fScale); } } - SkWriteMatrix(&buffer, fPtsToUnit); + buffer.writeMatrix(fPtsToUnit); } bool Gradient_Shader::isOpaque() const { @@ -813,15 +802,13 @@ public: protected: Linear_Gradient(SkFlattenableReadBuffer& buffer) : INHERITED(buffer), - fStart(unflatten_point(buffer)), - fEnd(unflatten_point(buffer)) { + fStart(buffer.readPoint()), + fEnd(buffer.readPoint()) { } virtual void flatten(SkFlattenableWriteBuffer& buffer) const SK_OVERRIDE { this->INHERITED::flatten(buffer); - buffer.writeScalar(fStart.fX); - buffer.writeScalar(fStart.fY); - buffer.writeScalar(fEnd.fX); - buffer.writeScalar(fEnd.fY); + buffer.writePoint(fStart); + buffer.writePoint(fEnd); } private: @@ -1470,13 +1457,12 @@ public: protected: Radial_Gradient(SkFlattenableReadBuffer& buffer) : INHERITED(buffer), - fCenter(unflatten_point(buffer)), + fCenter(buffer.readPoint()), fRadius(buffer.readScalar()) { } virtual void flatten(SkFlattenableWriteBuffer& buffer) const SK_OVERRIDE { this->INHERITED::flatten(buffer); - buffer.writeScalar(fCenter.fX); - buffer.writeScalar(fCenter.fY); + buffer.writePoint(fCenter); buffer.writeScalar(fRadius); } @@ -2001,8 +1987,8 @@ public: protected: Two_Point_Radial_Gradient(SkFlattenableReadBuffer& buffer) : INHERITED(buffer), - fCenter1(unflatten_point(buffer)), - fCenter2(unflatten_point(buffer)), + fCenter1(buffer.readPoint()), + fCenter2(buffer.readPoint()), fRadius1(buffer.readScalar()), fRadius2(buffer.readScalar()) { init(); @@ -2010,10 +1996,8 @@ protected: virtual void flatten(SkFlattenableWriteBuffer& buffer) const SK_OVERRIDE { this->INHERITED::flatten(buffer); - buffer.writeScalar(fCenter1.fX); - buffer.writeScalar(fCenter1.fY); - buffer.writeScalar(fCenter2.fX); - buffer.writeScalar(fCenter2.fY); + buffer.writePoint(fCenter1); + buffer.writePoint(fCenter2); buffer.writeScalar(fRadius1); buffer.writeScalar(fRadius2); } @@ -2087,12 +2071,11 @@ public: protected: Sweep_Gradient(SkFlattenableReadBuffer& buffer) : INHERITED(buffer), - fCenter(unflatten_point(buffer)) { + fCenter(buffer.readPoint()) { } virtual void flatten(SkFlattenableWriteBuffer& buffer) const SK_OVERRIDE { this->INHERITED::flatten(buffer); - buffer.writeScalar(fCenter.fX); - buffer.writeScalar(fCenter.fY); + buffer.writePoint(fCenter); } private: |