Create macro for registering classes for deserialization
Review URL: https://codereview.appspot.com/5909063
git-svn-id: http://skia.googlecode.com/svn/trunk@3494 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/src/effects/SkGradientShader.cpp b/src/effects/SkGradientShader.cpp
index c9929b4..0fcb514 100644
--- a/src/effects/SkGradientShader.cpp
+++ b/src/effects/SkGradientShader.cpp
@@ -849,10 +849,6 @@
SkScalar* twoPointRadialParams) const SK_OVERRIDE;
virtual GradientType asAGradient(GradientInfo* info) const SK_OVERRIDE;
- static SkFlattenable* CreateProc(SkFlattenableReadBuffer& buffer) {
- return SkNEW_ARGS(Linear_Gradient, (buffer));
- }
-
virtual void flatten(SkFlattenableWriteBuffer& buffer) SK_OVERRIDE {
this->INHERITED::flatten(buffer);
buffer.writeScalar(fStart.fX);
@@ -861,13 +857,14 @@
buffer.writeScalar(fEnd.fY);
}
+ SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(Linear_Gradient)
+
protected:
Linear_Gradient(SkFlattenableReadBuffer& buffer)
: Gradient_Shader(buffer),
fStart(unflatten_point(buffer)),
fEnd(unflatten_point(buffer)) {
}
- virtual Factory getFactory() SK_OVERRIDE { return CreateProc; }
private:
typedef Gradient_Shader INHERITED;
@@ -1510,10 +1507,6 @@
return kRadial_GradientType;
}
- static SkFlattenable* CreateProc(SkFlattenableReadBuffer& buffer) {
- return SkNEW_ARGS(Radial_Gradient, (buffer));
- }
-
virtual void flatten(SkFlattenableWriteBuffer& buffer) SK_OVERRIDE {
this->INHERITED::flatten(buffer);
buffer.writeScalar(fCenter.fX);
@@ -1521,13 +1514,14 @@
buffer.writeScalar(fRadius);
}
+ SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(Radial_Gradient)
+
protected:
Radial_Gradient(SkFlattenableReadBuffer& buffer)
: Gradient_Shader(buffer),
fCenter(unflatten_point(buffer)),
fRadius(buffer.readScalar()) {
}
- virtual Factory getFactory() SK_OVERRIDE { return CreateProc; }
private:
typedef Gradient_Shader INHERITED;
@@ -2045,10 +2039,6 @@
return true;
}
- static SkFlattenable* CreateProc(SkFlattenableReadBuffer& buffer) {
- return SkNEW_ARGS(Two_Point_Radial_Gradient, (buffer));
- }
-
virtual void flatten(SkFlattenableWriteBuffer& buffer) SK_OVERRIDE {
this->INHERITED::flatten(buffer);
buffer.writeScalar(fCenter1.fX);
@@ -2059,6 +2049,8 @@
buffer.writeScalar(fRadius2);
}
+ SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(Two_Point_Radial_Gradient)
+
protected:
Two_Point_Radial_Gradient(SkFlattenableReadBuffer& buffer)
: Gradient_Shader(buffer),
@@ -2068,7 +2060,6 @@
fRadius2(buffer.readScalar()) {
init();
};
- virtual Factory getFactory() SK_OVERRIDE { return CreateProc; }
private:
typedef Gradient_Shader INHERITED;
@@ -2134,24 +2125,20 @@
return kSweep_GradientType;
}
- static SkFlattenable* CreateProc(SkFlattenableReadBuffer& buffer) {
- return SkNEW_ARGS(Sweep_Gradient, (buffer));
- }
-
virtual void flatten(SkFlattenableWriteBuffer& buffer) SK_OVERRIDE {
this->INHERITED::flatten(buffer);
buffer.writeScalar(fCenter.fX);
buffer.writeScalar(fCenter.fY);
}
+ SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(Sweep_Gradient)
+
protected:
Sweep_Gradient(SkFlattenableReadBuffer& buffer)
: Gradient_Shader(buffer),
fCenter(unflatten_point(buffer)) {
}
- virtual Factory getFactory() SK_OVERRIDE { return CreateProc; }
-
private:
typedef Gradient_Shader INHERITED;
const SkPoint fCenter;