Index: src/effects/SkLightingImageFilter.cpp |
diff --git a/src/effects/SkLightingImageFilter.cpp b/src/effects/SkLightingImageFilter.cpp |
index c3834c697710c203851e60847f51bdbc2c664246..bf2298c9d4145140be18235dd55768521ed375c6 100644 |
--- a/src/effects/SkLightingImageFilter.cpp |
+++ b/src/effects/SkLightingImageFilter.cpp |
@@ -265,14 +265,15 @@ void writePoint3(const SkPoint3& point, SkWriteBuffer& buffer) { |
class SkDiffuseLightingImageFilter : public SkLightingImageFilter { |
public: |
static SkImageFilter* Create(SkLight* light, SkScalar surfaceScale, SkScalar kd, SkImageFilter*, |
- const CropRect*); |
+ const CropRect*, uint32_t uniqueID = 0); |
SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkDiffuseLightingImageFilter) |
SkScalar kd() const { return fKD; } |
protected: |
SkDiffuseLightingImageFilter(SkLight* light, SkScalar surfaceScale, |
- SkScalar kd, SkImageFilter* input, const CropRect* cropRect); |
+ SkScalar kd, SkImageFilter* input, const CropRect* cropRect, |
+ uint32_t uniqueID); |
#ifdef SK_SUPPORT_LEGACY_DEEPFLATTENING |
explicit SkDiffuseLightingImageFilter(SkReadBuffer& buffer); |
#endif |
@@ -293,7 +294,7 @@ private: |
class SkSpecularLightingImageFilter : public SkLightingImageFilter { |
public: |
static SkImageFilter* Create(SkLight* light, SkScalar surfaceScale, |
- SkScalar ks, SkScalar shininess, SkImageFilter*, const CropRect*); |
+ SkScalar ks, SkScalar shininess, SkImageFilter*, const CropRect*, uint32_t uniqueID = 0); |
SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkSpecularLightingImageFilter) |
@@ -302,7 +303,8 @@ public: |
protected: |
SkSpecularLightingImageFilter(SkLight* light, SkScalar surfaceScale, SkScalar ks, |
- SkScalar shininess, SkImageFilter* input, const CropRect*); |
+ SkScalar shininess, SkImageFilter* input, const CropRect*, |
+ uint32_t uniqueID); |
#ifdef SK_SUPPORT_LEGACY_DEEPFLATTENING |
explicit SkSpecularLightingImageFilter(SkReadBuffer& buffer); |
#endif |
@@ -844,8 +846,9 @@ void SkLight::flattenLight(SkWriteBuffer& buffer) const { |
/////////////////////////////////////////////////////////////////////////////// |
SkLightingImageFilter::SkLightingImageFilter(SkLight* light, SkScalar surfaceScale, |
- SkImageFilter* input, const CropRect* cropRect) |
- : INHERITED(1, &input, cropRect) |
+ SkImageFilter* input, const CropRect* cropRect, |
+ uint32_t uniqueID) |
+ : INHERITED(1, &input, cropRect, uniqueID) |
, fLight(SkRef(light)) |
, fSurfaceScale(surfaceScale / 255) |
{} |
@@ -941,7 +944,7 @@ void SkLightingImageFilter::flatten(SkWriteBuffer& buffer) const { |
/////////////////////////////////////////////////////////////////////////////// |
SkImageFilter* SkDiffuseLightingImageFilter::Create(SkLight* light, SkScalar surfaceScale, |
- SkScalar kd, SkImageFilter* input, const CropRect* cropRect) { |
+ SkScalar kd, SkImageFilter* input, const CropRect* cropRect, uint32_t uniqueID) { |
if (NULL == light) { |
return NULL; |
} |
@@ -953,11 +956,11 @@ SkImageFilter* SkDiffuseLightingImageFilter::Create(SkLight* light, SkScalar sur |
if (kd < 0) { |
return NULL; |
} |
- return SkNEW_ARGS(SkDiffuseLightingImageFilter, (light, surfaceScale, kd, input, cropRect)); |
+ return SkNEW_ARGS(SkDiffuseLightingImageFilter, (light, surfaceScale, kd, input, cropRect, uniqueID)); |
} |
-SkDiffuseLightingImageFilter::SkDiffuseLightingImageFilter(SkLight* light, SkScalar surfaceScale, SkScalar kd, SkImageFilter* input, const CropRect* cropRect = NULL) |
- : SkLightingImageFilter(light, surfaceScale, input, cropRect), |
+SkDiffuseLightingImageFilter::SkDiffuseLightingImageFilter(SkLight* light, SkScalar surfaceScale, SkScalar kd, SkImageFilter* input, const CropRect* cropRect, uint32_t uniqueID) |
+ : SkLightingImageFilter(light, surfaceScale, input, cropRect, uniqueID), |
fKD(kd) |
{ |
} |
@@ -976,7 +979,7 @@ SkFlattenable* SkDiffuseLightingImageFilter::CreateProc(SkReadBuffer& buffer) { |
SkAutoTUnref<SkLight> light(SkLight::UnflattenLight(buffer)); |
SkScalar surfaceScale = buffer.readScalar(); |
SkScalar kd = buffer.readScalar(); |
- return Create(light, surfaceScale, kd, common.getInput(0), &common.cropRect()); |
+ return Create(light, surfaceScale, kd, common.getInput(0), &common.cropRect(), common.uniqueID()); |
} |
void SkDiffuseLightingImageFilter::flatten(SkWriteBuffer& buffer) const { |
@@ -1052,7 +1055,7 @@ bool SkDiffuseLightingImageFilter::asNewEffect(GrEffect** effect, GrTexture* tex |
/////////////////////////////////////////////////////////////////////////////// |
SkImageFilter* SkSpecularLightingImageFilter::Create(SkLight* light, SkScalar surfaceScale, |
- SkScalar ks, SkScalar shininess, SkImageFilter* input, const CropRect* cropRect) { |
+ SkScalar ks, SkScalar shininess, SkImageFilter* input, const CropRect* cropRect, uint32_t uniqueID) { |
if (NULL == light) { |
return NULL; |
} |
@@ -1065,11 +1068,11 @@ SkImageFilter* SkSpecularLightingImageFilter::Create(SkLight* light, SkScalar su |
return NULL; |
} |
return SkNEW_ARGS(SkSpecularLightingImageFilter, |
- (light, surfaceScale, ks, shininess, input, cropRect)); |
+ (light, surfaceScale, ks, shininess, input, cropRect, uniqueID)); |
} |
-SkSpecularLightingImageFilter::SkSpecularLightingImageFilter(SkLight* light, SkScalar surfaceScale, SkScalar ks, SkScalar shininess, SkImageFilter* input, const CropRect* cropRect) |
- : SkLightingImageFilter(light, surfaceScale, input, cropRect), |
+SkSpecularLightingImageFilter::SkSpecularLightingImageFilter(SkLight* light, SkScalar surfaceScale, SkScalar ks, SkScalar shininess, SkImageFilter* input, const CropRect* cropRect, uint32_t uniqueID) |
+ : SkLightingImageFilter(light, surfaceScale, input, cropRect, uniqueID), |
fKS(ks), |
fShininess(shininess) |
{ |
@@ -1092,7 +1095,7 @@ SkFlattenable* SkSpecularLightingImageFilter::CreateProc(SkReadBuffer& buffer) { |
SkScalar surfaceScale = buffer.readScalar(); |
SkScalar ks = buffer.readScalar(); |
SkScalar shine = buffer.readScalar(); |
- return Create(light, surfaceScale, ks, shine, common.getInput(0), &common.cropRect()); |
+ return Create(light, surfaceScale, ks, shine, common.getInput(0), &common.cropRect(), common.uniqueID()); |
} |
void SkSpecularLightingImageFilter::flatten(SkWriteBuffer& buffer) const { |