Cleanup code related to SkFlattenable::flatten()
The following changes were made by this CL:
1. Make flatten() a protected method as callers should use
SkFlattenableWriteBuffer to flatten an object
2. Make flatten a const method (including subclasses)
3. Mark subclass implementation of flatten with SK_OVERRIDE
4. Ensure overridden flatten impls call their parent
5. Remove no-op implementations of flatten from subclasses
Additionally, if necessary the unflattening constructor was
also moved to the protected section of the subclasses
header if it was not already there.
git-svn-id: http://skia.googlecode.com/svn/trunk@3540 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/include/core/SkColorFilter.h b/include/core/SkColorFilter.h
index 2a886bc..f875ab4 100644
--- a/include/core/SkColorFilter.h
+++ b/include/core/SkColorFilter.h
@@ -147,7 +147,7 @@
protected:
SkFilterShader(SkFlattenableReadBuffer& );
- virtual void flatten(SkFlattenableWriteBuffer& ) SK_OVERRIDE;
+ virtual void flatten(SkFlattenableWriteBuffer&) const SK_OVERRIDE;
private:
SkShader* fShader;
diff --git a/include/core/SkColorShader.h b/include/core/SkColorShader.h
index 356e87a..e64a183 100644
--- a/include/core/SkColorShader.h
+++ b/include/core/SkColorShader.h
@@ -53,7 +53,7 @@
protected:
SkColorShader(SkFlattenableReadBuffer&);
- virtual void flatten(SkFlattenableWriteBuffer&) SK_OVERRIDE;
+ virtual void flatten(SkFlattenableWriteBuffer&) const SK_OVERRIDE;
private:
diff --git a/include/core/SkComposeShader.h b/include/core/SkComposeShader.h
index 2fc1239..77729d9 100644
--- a/include/core/SkComposeShader.h
+++ b/include/core/SkComposeShader.h
@@ -44,7 +44,7 @@
protected:
SkComposeShader(SkFlattenableReadBuffer& );
- virtual void flatten(SkFlattenableWriteBuffer& );
+ virtual void flatten(SkFlattenableWriteBuffer&) const SK_OVERRIDE;
private:
diff --git a/include/core/SkEmptyShader.h b/include/core/SkEmptyShader.h
index 53e3d2b..13da457 100644
--- a/include/core/SkEmptyShader.h
+++ b/include/core/SkEmptyShader.h
@@ -33,8 +33,7 @@
SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkEmptyShader)
protected:
- SkEmptyShader(SkFlattenableReadBuffer&);
- virtual void flatten(SkFlattenableWriteBuffer&) SK_OVERRIDE;
+ SkEmptyShader(SkFlattenableReadBuffer& buffer) : INHERITED(buffer) {}
private:
typedef SkShader INHERITED;
diff --git a/include/core/SkFlattenable.h b/include/core/SkFlattenable.h
index 554ffc0..ba1495f 100644
--- a/include/core/SkFlattenable.h
+++ b/include/core/SkFlattenable.h
@@ -75,11 +75,6 @@
override of flatten().
*/
virtual Factory getFactory() = 0;
- /** Override this to write data specific to your subclass into the buffer,
- being sure to call your super-class' version first. This data will later
- be passed to your Factory function, returned by getFactory().
- */
- virtual void flatten(SkFlattenableWriteBuffer&);
static Factory NameToFactory(const char name[]);
static const char* FactoryToName(Factory);
@@ -94,6 +89,11 @@
protected:
SkFlattenable(SkFlattenableReadBuffer&) {}
+ /** Override this to write data specific to your subclass into the buffer,
+ being sure to call your super-class' version first. This data will later
+ be passed to your Factory function, returned by getFactory().
+ */
+ virtual void flatten(SkFlattenableWriteBuffer&) const;
private:
#if !SK_ALLOW_STATIC_GLOBAL_INITIALIZERS
@@ -101,6 +101,7 @@
#endif
friend class SkGraphics;
+ friend class SkFlattenableWriteBuffer;
};
// helpers for matrix and region
diff --git a/include/core/SkMallocPixelRef.h b/include/core/SkMallocPixelRef.h
index cdfec75..802e2b2 100644
--- a/include/core/SkMallocPixelRef.h
+++ b/include/core/SkMallocPixelRef.h
@@ -28,8 +28,6 @@
size_t getSize() const { return fSize; }
void* getAddr() const { return fStorage; }
- // overrides from SkPixelRef
- virtual void flatten(SkFlattenableWriteBuffer&);
SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkMallocPixelRef)
protected:
@@ -38,6 +36,7 @@
virtual void onUnlockPixels();
SkMallocPixelRef(SkFlattenableReadBuffer& buffer);
+ virtual void flatten(SkFlattenableWriteBuffer&) const SK_OVERRIDE;
private:
void* fStorage;
diff --git a/include/core/SkMaskFilter.h b/include/core/SkMaskFilter.h
index 2808de7..12de01b 100644
--- a/include/core/SkMaskFilter.h
+++ b/include/core/SkMaskFilter.h
@@ -55,8 +55,6 @@
virtual bool filterMask(SkMask* dst, const SkMask& src, const SkMatrix&,
SkIPoint* margin);
- virtual void flatten(SkFlattenableWriteBuffer& ) {}
-
enum BlurType {
kNone_BlurType, //!< this maskfilter is not a blur
kNormal_BlurType, //!< fuzzy inside and outside
@@ -94,7 +92,7 @@
protected:
// empty for now, but lets get our subclass to remember to init us for the future
- SkMaskFilter(SkFlattenableReadBuffer&) {}
+ SkMaskFilter(SkFlattenableReadBuffer& buffer) : INHERITED(buffer) {}
private:
friend class SkDraw;
@@ -106,6 +104,8 @@
*/
bool filterPath(const SkPath& devPath, const SkMatrix& devMatrix,
const SkRasterClip&, SkBounder*, SkBlitter* blitter);
+
+ typedef SkFlattenable INHERITED;
};
#endif
diff --git a/include/core/SkPaint.h b/include/core/SkPaint.h
index 4d4fbc6..d660ff3 100644
--- a/include/core/SkPaint.h
+++ b/include/core/SkPaint.h
@@ -941,16 +941,16 @@
// overrides
virtual bool filterPath(SkPath* dst, const SkPath& src, SkScalar* width);
- // overrides for SkFlattenable
- virtual void flatten(SkFlattenableWriteBuffer&);
SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkStrokePathEffect)
+protected:
+ SkStrokePathEffect(SkFlattenableReadBuffer&);
+ virtual void flatten(SkFlattenableWriteBuffer&) const SK_OVERRIDE;
+
private:
SkScalar fWidth, fMiter;
uint8_t fStyle, fJoin, fCap;
- SkStrokePathEffect(SkFlattenableReadBuffer&);
-
typedef SkPathEffect INHERITED;
// illegal
diff --git a/include/core/SkPathEffect.h b/include/core/SkPathEffect.h
index 48181ee..b160f8f 100644
--- a/include/core/SkPathEffect.h
+++ b/include/core/SkPathEffect.h
@@ -58,7 +58,8 @@
protected:
SkPairPathEffect(SkFlattenableReadBuffer&);
- virtual void flatten(SkFlattenableWriteBuffer&) SK_OVERRIDE;
+ virtual void flatten(SkFlattenableWriteBuffer&) const SK_OVERRIDE;
+
// these are visible to our subclasses
SkPathEffect* fPE0, *fPE1;
@@ -87,9 +88,10 @@
SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkComposePathEffect)
-private:
+protected:
SkComposePathEffect(SkFlattenableReadBuffer& buffer) : INHERITED(buffer) {}
+private:
// illegal
SkComposePathEffect(const SkComposePathEffect&);
SkComposePathEffect& operator=(const SkComposePathEffect&);
@@ -117,9 +119,10 @@
SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkSumPathEffect)
-private:
+protected:
SkSumPathEffect(SkFlattenableReadBuffer& buffer) : INHERITED(buffer) {}
+private:
// illegal
SkSumPathEffect(const SkSumPathEffect&);
SkSumPathEffect& operator=(const SkSumPathEffect&);
diff --git a/include/core/SkPixelRef.h b/include/core/SkPixelRef.h
index d84c285..c902765 100644
--- a/include/core/SkPixelRef.h
+++ b/include/core/SkPixelRef.h
@@ -122,9 +122,6 @@
support deep copies. */
virtual SkPixelRef* deepCopy(SkBitmap::Config config) { return NULL; }
- // serialization
- virtual void flatten(SkFlattenableWriteBuffer&);
-
#ifdef SK_BUILD_FOR_ANDROID
/**
* Acquire a "global" ref on this object.
@@ -168,7 +165,9 @@
*/
SkBaseMutex* mutex() const { return fMutex; }
+ // serialization
SkPixelRef(SkFlattenableReadBuffer&, SkBaseMutex*);
+ virtual void flatten(SkFlattenableWriteBuffer&) const SK_OVERRIDE;
private:
diff --git a/include/core/SkRasterizer.h b/include/core/SkRasterizer.h
index d249898..923028f 100644
--- a/include/core/SkRasterizer.h
+++ b/include/core/SkRasterizer.h
@@ -28,9 +28,8 @@
const SkIRect* clipBounds, SkMaskFilter* filter,
SkMask* mask, SkMask::CreateMode mode);
- virtual void flatten(SkFlattenableWriteBuffer& ) SK_OVERRIDE {}
protected:
- SkRasterizer(SkFlattenableReadBuffer&);
+ SkRasterizer(SkFlattenableReadBuffer& buffer) : INHERITED(buffer) {}
virtual bool onRasterize(const SkPath& path, const SkMatrix& matrix,
const SkIRect* clipBounds,
diff --git a/include/core/SkShader.h b/include/core/SkShader.h
index 331799a..72bd784 100644
--- a/include/core/SkShader.h
+++ b/include/core/SkShader.h
@@ -293,7 +293,6 @@
static SkShader* CreateBitmapShader(const SkBitmap& src,
TileMode tmx, TileMode tmy);
- virtual void flatten(SkFlattenableWriteBuffer& ) SK_OVERRIDE;
protected:
enum MatrixClass {
kLinear_MatrixClass, // no perspective
@@ -309,6 +308,7 @@
MatrixClass getInverseClass() const { return (MatrixClass)fTotalInverseClass; }
SkShader(SkFlattenableReadBuffer& );
+ virtual void flatten(SkFlattenableWriteBuffer&) const SK_OVERRIDE;
private:
SkMatrix* fLocalMatrix;
SkMatrix fTotalInverse;
diff --git a/include/core/SkShape.h b/include/core/SkShape.h
index 3968fce..0196156 100644
--- a/include/core/SkShape.h
+++ b/include/core/SkShape.h
@@ -31,8 +31,6 @@
*/
void drawMatrix(SkCanvas*, const SkMatrix&);
- // overrides
- virtual void flatten(SkFlattenableWriteBuffer&);
SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkShape)
protected:
diff --git a/include/core/SkXfermode.h b/include/core/SkXfermode.h
index 65e0f0d..86bafea 100644
--- a/include/core/SkXfermode.h
+++ b/include/core/SkXfermode.h
@@ -214,12 +214,11 @@
virtual void xferA8(SkAlpha dst[], const SkPMColor src[], int count,
const SkAlpha aa[]) SK_OVERRIDE;
- // overrides from SkFlattenable
- virtual void flatten(SkFlattenableWriteBuffer&) SK_OVERRIDE;
SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkProcXfermode)
protected:
SkProcXfermode(SkFlattenableReadBuffer&);
+ virtual void flatten(SkFlattenableWriteBuffer&) const SK_OVERRIDE;
// allow subclasses to update this after we unflatten
void setProc(SkXfermodeProc proc) {
diff --git a/include/effects/Sk1DPathEffect.h b/include/effects/Sk1DPathEffect.h
index 53126f2..25b6ff3 100644
--- a/include/effects/Sk1DPathEffect.h
+++ b/include/effects/Sk1DPathEffect.h
@@ -63,12 +63,11 @@
protected:
SkPath1DPathEffect(SkFlattenableReadBuffer& buffer);
+ virtual void flatten(SkFlattenableWriteBuffer&) const SK_OVERRIDE;
// overrides from Sk1DPathEffect
virtual SkScalar begin(SkScalar contourLength) SK_OVERRIDE;
virtual SkScalar next(SkPath*, SkScalar distance, SkPathMeasure&) SK_OVERRIDE;
- // overrides from SkFlattenable
- virtual void flatten(SkFlattenableWriteBuffer&) SK_OVERRIDE;
private:
SkPath fPath; // copied from constructor
diff --git a/include/effects/Sk2DPathEffect.h b/include/effects/Sk2DPathEffect.h
index 28c5aea..67e7857 100644
--- a/include/effects/Sk2DPathEffect.h
+++ b/include/effects/Sk2DPathEffect.h
@@ -21,8 +21,6 @@
// overrides
virtual bool filterPath(SkPath*, const SkPath&, SkScalar* width) SK_OVERRIDE;
- // overrides from SkFlattenable
- virtual void flatten(SkFlattenableWriteBuffer&) SK_OVERRIDE;
SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(Sk2DPathEffect)
protected:
@@ -46,6 +44,7 @@
// protected so that subclasses can call this during unflattening
Sk2DPathEffect(SkFlattenableReadBuffer&);
+ virtual void flatten(SkFlattenableWriteBuffer&) const SK_OVERRIDE;
private:
SkMatrix fMatrix, fInverse;
@@ -69,8 +68,8 @@
protected:
SkPath2DPathEffect(SkFlattenableReadBuffer& buffer);
+ virtual void flatten(SkFlattenableWriteBuffer&) const SK_OVERRIDE;
- virtual void flatten(SkFlattenableWriteBuffer&) SK_OVERRIDE;
virtual void next(const SkPoint&, int u, int v, SkPath* dst) SK_OVERRIDE;
private:
diff --git a/include/effects/SkAvoidXfermode.h b/include/effects/SkAvoidXfermode.h
index db14f25..298ce5b 100644
--- a/include/effects/SkAvoidXfermode.h
+++ b/include/effects/SkAvoidXfermode.h
@@ -51,12 +51,11 @@
virtual void xferA8(SkAlpha dst[], const SkPMColor src[], int count,
const SkAlpha aa[]) SK_OVERRIDE;
- // overrides from SkFlattenable
- virtual void flatten(SkFlattenableWriteBuffer&) SK_OVERRIDE;
SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkAvoidXfermode)
protected:
SkAvoidXfermode(SkFlattenableReadBuffer&);
+ virtual void flatten(SkFlattenableWriteBuffer&) const SK_OVERRIDE;
private:
SkColor fOpColor;
diff --git a/include/effects/SkBlurDrawLooper.h b/include/effects/SkBlurDrawLooper.h
index 453a618..2aff2f3 100644
--- a/include/effects/SkBlurDrawLooper.h
+++ b/include/effects/SkBlurDrawLooper.h
@@ -48,8 +48,7 @@
protected:
SkBlurDrawLooper(SkFlattenableReadBuffer&);
- // overrides from SkFlattenable
- virtual void flatten(SkFlattenableWriteBuffer& );
+ virtual void flatten(SkFlattenableWriteBuffer&) const SK_OVERRIDE;
private:
SkMaskFilter* fBlur;
diff --git a/include/effects/SkBlurImageFilter.h b/include/effects/SkBlurImageFilter.h
index 846b900..bf5173d 100644
--- a/include/effects/SkBlurImageFilter.h
+++ b/include/effects/SkBlurImageFilter.h
@@ -21,10 +21,10 @@
protected:
explicit SkBlurImageFilter(SkFlattenableReadBuffer& buffer);
+ virtual void flatten(SkFlattenableWriteBuffer&) const SK_OVERRIDE;
virtual bool onFilterImage(Proxy*, const SkBitmap& src, const SkMatrix&,
SkBitmap* result, SkIPoint* offset) SK_OVERRIDE;
- virtual void flatten(SkFlattenableWriteBuffer& buffer) SK_OVERRIDE;
private:
SkSize fSigma;
diff --git a/include/effects/SkColorMatrixFilter.h b/include/effects/SkColorMatrixFilter.h
index abfd95d..1ac6fbf 100644
--- a/include/effects/SkColorMatrixFilter.h
+++ b/include/effects/SkColorMatrixFilter.h
@@ -28,9 +28,6 @@
virtual uint32_t getFlags() SK_OVERRIDE;
virtual bool asColorMatrix(SkScalar matrix[20]) SK_OVERRIDE;
- // overrides for SkFlattenable
- virtual void flatten(SkFlattenableWriteBuffer& buffer) SK_OVERRIDE;
-
struct State {
int32_t fArray[20];
int fShift;
@@ -41,6 +38,7 @@
protected:
SkColorMatrixFilter(SkFlattenableReadBuffer& buffer);
+ virtual void flatten(SkFlattenableWriteBuffer&) const SK_OVERRIDE;
private:
diff --git a/include/effects/SkCornerPathEffect.h b/include/effects/SkCornerPathEffect.h
index 8c58476..01dae7e 100644
--- a/include/effects/SkCornerPathEffect.h
+++ b/include/effects/SkCornerPathEffect.h
@@ -29,13 +29,11 @@
// This method is not exported to java.
virtual bool filterPath(SkPath* dst, const SkPath& src, SkScalar* width);
- // overrides for SkFlattenable
- // This method is not exported to java.
- virtual void flatten(SkFlattenableWriteBuffer&);
SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkCornerPathEffect)
protected:
SkCornerPathEffect(SkFlattenableReadBuffer&);
+ virtual void flatten(SkFlattenableWriteBuffer&) const SK_OVERRIDE;
private:
SkScalar fRadius;
diff --git a/include/effects/SkDashPathEffect.h b/include/effects/SkDashPathEffect.h
index 29a6d1b..300edcd 100644
--- a/include/effects/SkDashPathEffect.h
+++ b/include/effects/SkDashPathEffect.h
@@ -34,13 +34,11 @@
// overrides for SkFlattenable
// This method is not exported to java.
virtual Factory getFactory();
- // This method is not exported to java.
- virtual void flatten(SkFlattenableWriteBuffer&);
-
static SkFlattenable* CreateProc(SkFlattenableReadBuffer&);
protected:
SkDashPathEffect(SkFlattenableReadBuffer&);
+ virtual void flatten(SkFlattenableWriteBuffer&) const SK_OVERRIDE;
private:
SkScalar* fIntervals;
diff --git a/include/effects/SkDiscretePathEffect.h b/include/effects/SkDiscretePathEffect.h
index 76a3523..30d07d3 100644
--- a/include/effects/SkDiscretePathEffect.h
+++ b/include/effects/SkDiscretePathEffect.h
@@ -28,13 +28,11 @@
// This method is not exported to java.
virtual bool filterPath(SkPath* dst, const SkPath& src, SkScalar* width);
- // overrides for SkFlattenable
- // This method is not exported to java.
- virtual void flatten(SkFlattenableWriteBuffer&);
SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkDiscretePathEffect)
protected:
SkDiscretePathEffect(SkFlattenableReadBuffer&);
+ virtual void flatten(SkFlattenableWriteBuffer&) const SK_OVERRIDE;
private:
SkScalar fSegLength, fPerterb;
diff --git a/include/effects/SkEmbossMaskFilter.h b/include/effects/SkEmbossMaskFilter.h
index a03a283..24815a5 100644
--- a/include/effects/SkEmbossMaskFilter.h
+++ b/include/effects/SkEmbossMaskFilter.h
@@ -34,14 +34,11 @@
virtual bool filterMask(SkMask* dst, const SkMask& src, const SkMatrix&,
SkIPoint* margin);
- // overrides from SkFlattenable
- // This method is not exported to java.
- virtual void flatten(SkFlattenableWriteBuffer&);
SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkEmbossMaskFilter)
-
protected:
SkEmbossMaskFilter(SkFlattenableReadBuffer&);
+ virtual void flatten(SkFlattenableWriteBuffer&) const SK_OVERRIDE;
private:
Light fLight;
diff --git a/include/effects/SkGroupShape.h b/include/effects/SkGroupShape.h
index 56e9d32..ac0d994 100644
--- a/include/effects/SkGroupShape.h
+++ b/include/effects/SkGroupShape.h
@@ -131,9 +131,6 @@
*/
void removeAllShapes();
- // overrides
- virtual void flatten(SkFlattenableWriteBuffer&);
-
SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkGroupShape)
protected:
@@ -141,6 +138,7 @@
virtual void onDraw(SkCanvas*);
SkGroupShape(SkFlattenableReadBuffer&);
+ virtual void flatten(SkFlattenableWriteBuffer&) const SK_OVERRIDE;
private:
struct Rec {
diff --git a/include/effects/SkKernel33MaskFilter.h b/include/effects/SkKernel33MaskFilter.h
index 9c43629..bd47320 100644
--- a/include/effects/SkKernel33MaskFilter.h
+++ b/include/effects/SkKernel33MaskFilter.h
@@ -23,11 +23,9 @@
virtual SkMask::Format getFormat();
virtual bool filterMask(SkMask*, const SkMask&, const SkMatrix&, SkIPoint*);
- // overrides from SkFlattenable
- virtual void flatten(SkFlattenableWriteBuffer& wb);
-
protected:
SkKernel33ProcMaskFilter(SkFlattenableReadBuffer& rb);
+ virtual void flatten(SkFlattenableWriteBuffer&) const SK_OVERRIDE;
private:
int fPercent256;
@@ -48,8 +46,6 @@
// override from SkKernel33ProcMaskFilter
virtual uint8_t computeValue(uint8_t* const* srcRows);
- // overrides from SkFlattenable
- virtual void flatten(SkFlattenableWriteBuffer& wb);
SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkKernel33MaskFilter)
private:
@@ -57,6 +53,7 @@
int fShift;
SkKernel33MaskFilter(SkFlattenableReadBuffer& rb);
+ virtual void flatten(SkFlattenableWriteBuffer&) const SK_OVERRIDE;
typedef SkKernel33ProcMaskFilter INHERITED;
};
diff --git a/include/effects/SkLayerDrawLooper.h b/include/effects/SkLayerDrawLooper.h
index 3e7306f..0bc4af2 100644
--- a/include/effects/SkLayerDrawLooper.h
+++ b/include/effects/SkLayerDrawLooper.h
@@ -105,9 +105,7 @@
protected:
SkLayerDrawLooper(SkFlattenableReadBuffer&);
-
- // overrides from SkFlattenable
- virtual void flatten(SkFlattenableWriteBuffer& );
+ virtual void flatten(SkFlattenableWriteBuffer&) const SK_OVERRIDE;
private:
struct Rec {
diff --git a/include/effects/SkLayerRasterizer.h b/include/effects/SkLayerRasterizer.h
index e31ed33..c51b174 100644
--- a/include/effects/SkLayerRasterizer.h
+++ b/include/effects/SkLayerRasterizer.h
@@ -32,13 +32,11 @@
*/
void addLayer(const SkPaint& paint, SkScalar dx, SkScalar dy);
- // overrides from SkFlattenable
- virtual void flatten(SkFlattenableWriteBuffer&);
-
SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkLayerRasterizer)
protected:
SkLayerRasterizer(SkFlattenableReadBuffer&);
+ virtual void flatten(SkFlattenableWriteBuffer&) const SK_OVERRIDE;
// override from SkRasterizer
virtual bool onRasterize(const SkPath& path, const SkMatrix& matrix,
diff --git a/include/effects/SkMorphologyImageFilter.h b/include/effects/SkMorphologyImageFilter.h
index 368d17b..5450576 100644
--- a/include/effects/SkMorphologyImageFilter.h
+++ b/include/effects/SkMorphologyImageFilter.h
@@ -13,11 +13,12 @@
class SK_API SkMorphologyImageFilter : public SkImageFilter {
public:
- explicit SkMorphologyImageFilter(SkFlattenableReadBuffer& buffer);
SkMorphologyImageFilter(int radiusX, int radiusY);
protected:
- virtual void flatten(SkFlattenableWriteBuffer& buffer) SK_OVERRIDE;
+ SkMorphologyImageFilter(SkFlattenableReadBuffer& buffer);
+ virtual void flatten(SkFlattenableWriteBuffer&) const SK_OVERRIDE;
+
SkISize radius() const { return fRadius; }
private:
@@ -28,7 +29,6 @@
class SK_API SkDilateImageFilter : public SkMorphologyImageFilter {
public:
SkDilateImageFilter(int radiusX, int radiusY) : INHERITED(radiusX, radiusY) {}
- explicit SkDilateImageFilter(SkFlattenableReadBuffer& buffer) : INHERITED(buffer) {}
virtual bool asADilate(SkISize* radius) const SK_OVERRIDE;
virtual bool onFilterImage(Proxy*, const SkBitmap& src, const SkMatrix&,
@@ -36,13 +36,16 @@
SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkDilateImageFilter)
+protected:
+ SkDilateImageFilter(SkFlattenableReadBuffer& buffer) : INHERITED(buffer) {}
+
+private:
typedef SkMorphologyImageFilter INHERITED;
};
class SK_API SkErodeImageFilter : public SkMorphologyImageFilter {
public:
SkErodeImageFilter(int radiusX, int radiusY) : INHERITED(radiusX, radiusY) {}
- explicit SkErodeImageFilter(SkFlattenableReadBuffer& buffer) : INHERITED(buffer) {}
virtual bool asAnErode(SkISize* radius) const SK_OVERRIDE;
virtual bool onFilterImage(Proxy*, const SkBitmap& src, const SkMatrix&,
@@ -50,6 +53,9 @@
SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkErodeImageFilter)
+protected:
+ SkErodeImageFilter(SkFlattenableReadBuffer& buffer) : INHERITED(buffer) {}
+
private:
typedef SkMorphologyImageFilter INHERITED;
};
diff --git a/include/effects/SkPixelXorXfermode.h b/include/effects/SkPixelXorXfermode.h
index fe0536d..e991108 100644
--- a/include/effects/SkPixelXorXfermode.h
+++ b/include/effects/SkPixelXorXfermode.h
@@ -21,20 +21,18 @@
public:
SkPixelXorXfermode(SkColor opColor) : fOpColor(opColor) {}
- // override from SkFlattenable
- virtual void flatten(SkFlattenableWriteBuffer&);
-
SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkPixelXorXfermode)
protected:
+ SkPixelXorXfermode(SkFlattenableReadBuffer& rb);
+ virtual void flatten(SkFlattenableWriteBuffer&) const SK_OVERRIDE;
+
// override from SkXfermode
virtual SkPMColor xferColor(SkPMColor src, SkPMColor dst);
private:
SkColor fOpColor;
- SkPixelXorXfermode(SkFlattenableReadBuffer& rb);
-
typedef SkXfermode INHERITED;
};
diff --git a/include/effects/SkRectShape.h b/include/effects/SkRectShape.h
index b0efc28..a06adfc 100644
--- a/include/effects/SkRectShape.h
+++ b/include/effects/SkRectShape.h
@@ -19,11 +19,9 @@
SkPaint& paint() { return fPaint; }
const SkPaint& paint() const { return fPaint; }
- // overrides
- virtual void flatten(SkFlattenableWriteBuffer&);
-
protected:
SkPaintShape(SkFlattenableReadBuffer& buffer);
+ virtual void flatten(SkFlattenableWriteBuffer&) const SK_OVERRIDE;
private:
SkPaint fPaint;
@@ -40,13 +38,11 @@
void setCircle(SkScalar x, SkScalar y, SkScalar radius);
void setRRect(const SkRect&, SkScalar rx, SkScalar ry);
- // overrides
- virtual void flatten(SkFlattenableWriteBuffer&);
-
SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkRectShape)
protected:
SkRectShape(SkFlattenableReadBuffer&);
+ virtual void flatten(SkFlattenableWriteBuffer&) const SK_OVERRIDE;
// overrides
virtual void onDraw(SkCanvas*);
diff --git a/include/effects/SkTableMaskFilter.h b/include/effects/SkTableMaskFilter.h
index 15bb930..e2472d7 100644
--- a/include/effects/SkTableMaskFilter.h
+++ b/include/effects/SkTableMaskFilter.h
@@ -51,12 +51,11 @@
virtual SkMask::Format getFormat();
virtual bool filterMask(SkMask*, const SkMask&, const SkMatrix&, SkIPoint*);
- // overrides from SkFlattenable
- virtual void flatten(SkFlattenableWriteBuffer& wb);
SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkTableMaskFilter)
protected:
SkTableMaskFilter(SkFlattenableReadBuffer& rb);
+ virtual void flatten(SkFlattenableWriteBuffer&) const SK_OVERRIDE;
private:
uint8_t fTable[256];
diff --git a/include/effects/SkTestImageFilters.h b/include/effects/SkTestImageFilters.h
index e2c9cf4..a28ed8b 100755
--- a/include/effects/SkTestImageFilters.h
+++ b/include/effects/SkTestImageFilters.h
@@ -15,12 +15,11 @@
protected:
SkOffsetImageFilter(SkFlattenableReadBuffer& buffer);
+ virtual void flatten(SkFlattenableWriteBuffer&) const SK_OVERRIDE;
virtual bool onFilterImage(Proxy*, const SkBitmap& src, const SkMatrix&,
SkBitmap* result, SkIPoint* loc) SK_OVERRIDE;
virtual bool onFilterBounds(const SkIRect&, const SkMatrix&, SkIRect*) SK_OVERRIDE;
- // overrides from SkFlattenable
- virtual void flatten(SkFlattenableWriteBuffer&) SK_OVERRIDE;
private:
SkVector fOffset;
@@ -42,12 +41,11 @@
protected:
SkComposeImageFilter(SkFlattenableReadBuffer& buffer);
+ virtual void flatten(SkFlattenableWriteBuffer&) const SK_OVERRIDE;
virtual bool onFilterImage(Proxy*, const SkBitmap& src, const SkMatrix&,
SkBitmap* result, SkIPoint* loc) SK_OVERRIDE;
virtual bool onFilterBounds(const SkIRect&, const SkMatrix&, SkIRect*) SK_OVERRIDE;
- // overrides from SkFlattenable
- virtual void flatten(SkFlattenableWriteBuffer&) SK_OVERRIDE;
private:
SkImageFilter* fOuter;
@@ -70,12 +68,11 @@
protected:
SkMergeImageFilter(SkFlattenableReadBuffer& buffer);
+ virtual void flatten(SkFlattenableWriteBuffer&) const SK_OVERRIDE;
virtual bool onFilterImage(Proxy*, const SkBitmap& src, const SkMatrix&,
SkBitmap* result, SkIPoint* loc) SK_OVERRIDE;
virtual bool onFilterBounds(const SkIRect&, const SkMatrix&, SkIRect*) SK_OVERRIDE;
- // overrides from SkFlattenable
- virtual void flatten(SkFlattenableWriteBuffer&) SK_OVERRIDE;
private:
SkImageFilter** fFilters;
@@ -103,11 +100,10 @@
protected:
SkColorFilterImageFilter(SkFlattenableReadBuffer& buffer);
+ virtual void flatten(SkFlattenableWriteBuffer&) const SK_OVERRIDE;
virtual bool onFilterImage(Proxy*, const SkBitmap& src, const SkMatrix&,
SkBitmap* result, SkIPoint* loc) SK_OVERRIDE;
- // overrides from SkFlattenable
- virtual void flatten(SkFlattenableWriteBuffer&) SK_OVERRIDE;
private:
SkColorFilter* fColorFilter;
@@ -126,11 +122,10 @@
protected:
SkDownSampleImageFilter(SkFlattenableReadBuffer& buffer);
+ virtual void flatten(SkFlattenableWriteBuffer&) const SK_OVERRIDE;
virtual bool onFilterImage(Proxy*, const SkBitmap& src, const SkMatrix&,
SkBitmap* result, SkIPoint* loc) SK_OVERRIDE;
- // overrides from SkFlattenable
- virtual void flatten(SkFlattenableWriteBuffer&) SK_OVERRIDE;
private:
SkScalar fScale;
diff --git a/include/effects/SkTransparentShader.h b/include/effects/SkTransparentShader.h
index 0aa9192..531da74 100644
--- a/include/effects/SkTransparentShader.h
+++ b/include/effects/SkTransparentShader.h
@@ -23,8 +23,6 @@
virtual void shadeSpan(int x, int y, SkPMColor[], int count) SK_OVERRIDE;
virtual void shadeSpan16(int x, int y, uint16_t span[], int count) SK_OVERRIDE;
- // overrides for SkFlattenable
- virtual void flatten(SkFlattenableWriteBuffer&) SK_OVERRIDE;
SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkTransparentShader)
private:
diff --git a/include/images/SkFlipPixelRef.h b/include/images/SkFlipPixelRef.h
index c9ba026..3d5c097 100644
--- a/include/images/SkFlipPixelRef.h
+++ b/include/images/SkFlipPixelRef.h
@@ -33,7 +33,6 @@
const SkRegion& beginUpdate(SkBitmap* device);
void endUpdate();
- virtual void flatten(SkFlattenableWriteBuffer&);
SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkFlipPixelRef)
protected:
@@ -41,6 +40,7 @@
virtual void onUnlockPixels();
SkFlipPixelRef(SkFlattenableReadBuffer&);
+ virtual void flatten(SkFlattenableWriteBuffer&) const SK_OVERRIDE;
private:
void getFrontBack(const void** front, void** back) const {
diff --git a/include/images/SkImageRef.h b/include/images/SkImageRef.h
index 8fc4754..bec3527 100644
--- a/include/images/SkImageRef.h
+++ b/include/images/SkImageRef.h
@@ -60,9 +60,6 @@
// returns the factory parameter
SkImageDecoderFactory* setDecoderFactory(SkImageDecoderFactory*);
- // overrides
- virtual void flatten(SkFlattenableWriteBuffer&);
-
protected:
/** Override if you want to install a custom allocator.
When this is called we will have already acquired the mutex!
@@ -79,6 +76,7 @@
virtual void onUnlockPixels();
SkImageRef(SkFlattenableReadBuffer&);
+ virtual void flatten(SkFlattenableWriteBuffer&) const SK_OVERRIDE;
SkBitmap fBitmap;
diff --git a/include/utils/SkUnitMappers.h b/include/utils/SkUnitMappers.h
index d8856ae..901650d 100644
--- a/include/utils/SkUnitMappers.h
+++ b/include/utils/SkUnitMappers.h
@@ -24,8 +24,7 @@
protected:
SkDiscreteMapper(SkFlattenableReadBuffer& );
- // overrides from SkFlattenable
- virtual void flatten(SkFlattenableWriteBuffer& );
+ virtual void flatten(SkFlattenableWriteBuffer&) const SK_OVERRIDE;
private:
int fSegments;