aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorGravatar Cary Clark <caryclark@skia.org>2018-05-21 11:56:57 -0400
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2018-05-21 17:33:39 +0000
commit4dc5a454052e64227ecbfadd903f590d9361be08 (patch)
tree7d22319f9e739fdc12490ad124d3e19bed5bb2bd /src
parent435282162ed6f69f86f8ec2c83ea9b4439a7a7d4 (diff)
remove defines and add commas
Preparation for generating bookmaker files for all remaining interfaces Standardize enum and enum classes by including a comma after the last entry. Replace flatten-related #define in public interfaces with their equivalent. The motivation is to give documentation something to refer to. An alternative would be to move part or all of this out of the public interface; something I can work on in a follow-up CL. R=reed@google.com,bsalomon@google.com Bug: skia:6898 Change-Id: I4b865f6ec3d8f5d31e50448fef7d2714510302f0 Reviewed-on: https://skia-review.googlesource.com/129312 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Cary Clark <caryclark@skia.org>
Diffstat (limited to 'src')
-rw-r--r--src/core/SkColorMatrixFilterRowMajor255.h5
-rw-r--r--src/core/SkFlattenablePriv.h69
-rw-r--r--src/core/SkGlobalInitialization_core.cpp2
-rw-r--r--src/core/SkLocalMatrixImageFilter.h6
-rw-r--r--src/core/SkMatrixImageFilter.h7
-rw-r--r--src/core/SkModeColorFilter.h7
-rw-r--r--src/effects/SkColorFilterImageFilter.cpp1
-rw-r--r--src/effects/SkDashImpl.h6
-rw-r--r--src/effects/SkDashPathEffect.cpp1
-rw-r--r--src/effects/SkDisplacementMapEffect.cpp1
-rw-r--r--src/effects/SkDropShadowImageFilter.cpp1
-rw-r--r--src/effects/SkEmbossMaskFilter.h1
-rw-r--r--src/effects/SkLightingImageFilter.cpp1
-rw-r--r--src/effects/SkMagnifierImageFilter.cpp1
-rw-r--r--src/effects/SkMatrixConvolutionImageFilter.cpp1
-rw-r--r--src/effects/SkMergeImageFilter.cpp1
-rw-r--r--src/effects/SkMorphologyImageFilter.cpp1
-rw-r--r--src/effects/SkOffsetImageFilter.cpp1
-rw-r--r--src/effects/SkPictureImageFilter.cpp1
-rw-r--r--src/effects/SkTileImageFilter.cpp1
-rw-r--r--src/effects/SkTrimPE.h1
-rw-r--r--src/effects/SkXfermodeImageFilter.cpp1
-rw-r--r--src/shaders/SkShaderBase.h1
-rw-r--r--src/shaders/gradients/SkGradientShader.cpp1
-rw-r--r--src/utils/SkShadowUtils.cpp1
25 files changed, 114 insertions, 6 deletions
diff --git a/src/core/SkColorMatrixFilterRowMajor255.h b/src/core/SkColorMatrixFilterRowMajor255.h
index 0260379ef9..8c774504e9 100644
--- a/src/core/SkColorMatrixFilterRowMajor255.h
+++ b/src/core/SkColorMatrixFilterRowMajor255.h
@@ -8,6 +8,7 @@
#ifndef SkColorMatrixFilter_DEFINED
#define SkColorMatrixFilter_DEFINED
+#include "SkFlattenable.h"
#include "SkColorFilter.h"
class SkColorMatrixFilterRowMajor255 : public SkColorFilter {
@@ -29,7 +30,7 @@ public:
void toString(SkString* str) const override;
- SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkColorMatrixFilter)
+ Factory getFactory() const override { return CreateProc; }
protected:
void flatten(SkWriteBuffer&) const override;
@@ -37,6 +38,8 @@ protected:
private:
void onAppendStages(SkRasterPipeline*, SkColorSpace*, SkArenaAlloc*,
bool shaderIsOpaque) const override;
+ static sk_sp<SkFlattenable> CreateProc(SkReadBuffer&);
+ friend class SkFlattenable::PrivateInitializer;
SkScalar fMatrix[20];
float fTranspose[20]; // for Sk4s
diff --git a/src/core/SkFlattenablePriv.h b/src/core/SkFlattenablePriv.h
new file mode 100644
index 0000000000..381de93b1e
--- /dev/null
+++ b/src/core/SkFlattenablePriv.h
@@ -0,0 +1,69 @@
+/*
+ * Copyright 2018 The Android Open Source Project
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+#ifndef SkFlattenablePriv_DEFINED
+#define SkFlattenablePriv_DEFINED
+
+#include "SkFlattenable.h"
+
+/*
+ * Flattening is straight-forward:
+ * 1. call getFactory() so we have a function-ptr to recreate the subclass
+ * 2. call flatten(buffer) to write out enough data for the factory to read
+ *
+ * Unflattening is easy for the caller: new_instance = factory(buffer)
+ *
+ * The complexity of supporting this is as follows.
+ *
+ * If your subclass wants to control unflattening, use this macro in your declaration:
+ * SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS
+ * This will provide a getFactory(), and require that the subclass implements CreateProc.
+ *
+ * For older buffers (before the DEEPFLATTENING change, the macros below declare
+ * a thin factory DeepCreateProc. It checks the version of the buffer, and if it is pre-deep,
+ * then it calls through to a (usually protected) constructor, passing the buffer.
+ * If the buffer is newer, then it directly calls the "real" factory: CreateProc.
+ */
+
+#define SK_DECLARE_FLATTENABLE_REGISTRAR_GROUP() static void InitializeFlattenables();
+
+#define SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_START(flattenable) \
+ void flattenable::InitializeFlattenables() {
+
+#define SK_DEFINE_FLATTENABLE_REGISTRAR_GROUP_END \
+ }
+
+#define SK_DEFINE_FLATTENABLE_REGISTRAR_ENTRY(flattenable) \
+ SkFlattenable::Register(#flattenable, flattenable::CreateProc, \
+ flattenable::GetFlattenableType());
+
+#define SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(flattenable) \
+ private: \
+ static sk_sp<SkFlattenable> CreateProc(SkReadBuffer&); \
+ friend class SkFlattenable::PrivateInitializer; \
+ public: \
+ Factory getFactory() const override { return CreateProc; }
+
+/** For SkFlattenable derived objects with a valid type
+ This macro should only be used in base class objects in core
+ */
+#define SK_DEFINE_FLATTENABLE_TYPE(flattenable) \
+ static Type GetFlattenableType() { \
+ return k##flattenable##_Type; \
+ } \
+ Type getFlattenableType() const override { \
+ return k##flattenable##_Type; \
+ } \
+ static sk_sp<flattenable> Deserialize(const void* data, size_t size, \
+ const SkDeserialProcs* procs = nullptr) { \
+ return sk_sp<flattenable>(static_cast<flattenable*>( \
+ SkFlattenable::Deserialize( \
+ k##flattenable##_Type, data, size, procs).release()));\
+ }
+
+
+#endif
diff --git a/src/core/SkGlobalInitialization_core.cpp b/src/core/SkGlobalInitialization_core.cpp
index f4f2ec8cb7..cb4d1d0549 100644
--- a/src/core/SkGlobalInitialization_core.cpp
+++ b/src/core/SkGlobalInitialization_core.cpp
@@ -11,7 +11,7 @@
#include "SkColorShader.h"
#include "SkComposeShader.h"
#include "SkEmptyShader.h"
-#include "SkFlattenable.h"
+#include "SkFlattenablePriv.h"
#include "SkImageShader.h"
#include "SkLocalMatrixShader.h"
#include "SkMatrixImageFilter.h"
diff --git a/src/core/SkLocalMatrixImageFilter.h b/src/core/SkLocalMatrixImageFilter.h
index 89a7e9d145..f4ca73c185 100644
--- a/src/core/SkLocalMatrixImageFilter.h
+++ b/src/core/SkLocalMatrixImageFilter.h
@@ -8,6 +8,7 @@
#ifndef SkLocalMatrixImageFilter_DEFINED
#define SkLocalMatrixImageFilter_DEFINED
+#include "SkFlattenable.h"
#include "SkImageFilter.h"
/**
@@ -19,7 +20,8 @@ public:
static sk_sp<SkImageFilter> Make(const SkMatrix& localM, sk_sp<SkImageFilter> input);
void toString(SkString* str) const override;
- SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkLocalMatrixImageFilter)
+
+ Factory getFactory() const override { return CreateProc; }
protected:
void flatten(SkWriteBuffer&) const override;
@@ -31,6 +33,8 @@ protected:
private:
SkLocalMatrixImageFilter(const SkMatrix& localM, sk_sp<SkImageFilter> input);
+ static sk_sp<SkFlattenable> CreateProc(SkReadBuffer&);
+ friend class SkFlattenable::PrivateInitializer;
SkMatrix fLocalM;
diff --git a/src/core/SkMatrixImageFilter.h b/src/core/SkMatrixImageFilter.h
index b43df9166d..32d4adc448 100644
--- a/src/core/SkMatrixImageFilter.h
+++ b/src/core/SkMatrixImageFilter.h
@@ -8,6 +8,7 @@
#ifndef SkMatrixImageFilter_DEFINED
#define SkMatrixImageFilter_DEFINED
+#include "SkFlattenable.h"
#include "SkImageFilter.h"
#include "SkMatrix.h"
@@ -32,7 +33,8 @@ public:
SkRect computeFastBounds(const SkRect&) const override;
void toString(SkString* str) const override;
- SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkMatrixImageFilter)
+
+ Factory getFactory() const override { return CreateProc; }
protected:
SkMatrixImageFilter(const SkMatrix& transform,
@@ -47,6 +49,9 @@ protected:
MapDirection, const SkIRect* inputRect) const override;
private:
+ static sk_sp<SkFlattenable> CreateProc(SkReadBuffer&);
+ friend class SkFlattenable::PrivateInitializer;
+
SkMatrix fTransform;
SkFilterQuality fFilterQuality;
typedef SkImageFilter INHERITED;
diff --git a/src/core/SkModeColorFilter.h b/src/core/SkModeColorFilter.h
index a2a629f2c1..d2018e5cb9 100644
--- a/src/core/SkModeColorFilter.h
+++ b/src/core/SkModeColorFilter.h
@@ -6,6 +6,7 @@
*/
#include "SkColorFilter.h"
+#include "SkFlattenable.h"
#ifndef SkModeColorFilter_DEFINED
#define SkModeColorFilter_DEFINED
@@ -24,11 +25,12 @@ public:
void toString(SkString* str) const override;
+ Factory getFactory() const override { return CreateProc; }
+
#if SK_SUPPORT_GPU
std::unique_ptr<GrFragmentProcessor> asFragmentProcessor(
GrContext*, const GrColorSpaceInfo&) const override;
#endif
- SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkModeColorFilter)
protected:
SkModeColorFilter(SkColor color, SkBlendMode mode);
@@ -41,6 +43,9 @@ protected:
sk_sp<SkColorFilter> onMakeColorSpace(SkColorSpaceXformer*) const override;
private:
+ static sk_sp<SkFlattenable> CreateProc(SkReadBuffer&);
+ friend class SkFlattenable::PrivateInitializer;
+
SkColor fColor;
SkBlendMode fMode;
// cache
diff --git a/src/effects/SkColorFilterImageFilter.cpp b/src/effects/SkColorFilterImageFilter.cpp
index 514d04622e..845a26ac0f 100644
--- a/src/effects/SkColorFilterImageFilter.cpp
+++ b/src/effects/SkColorFilterImageFilter.cpp
@@ -10,6 +10,7 @@
#include "SkCanvas.h"
#include "SkColorFilter.h"
#include "SkColorSpaceXformer.h"
+#include "SkFlattenablePriv.h"
#include "SkImageFilterPriv.h"
#include "SkReadBuffer.h"
#include "SkSpecialImage.h"
diff --git a/src/effects/SkDashImpl.h b/src/effects/SkDashImpl.h
index f5c4244dc3..13ec155847 100644
--- a/src/effects/SkDashImpl.h
+++ b/src/effects/SkDashImpl.h
@@ -22,7 +22,8 @@ public:
DashType asADash(DashInfo* info) const override;
void toString(SkString* str) const override;
- SK_DECLARE_PUBLIC_FLATTENABLE_DESERIALIZATION_PROCS(SkDashImpl)
+
+ Factory getFactory() const override { return CreateProc; }
#ifdef SK_BUILD_FOR_ANDROID_FRAMEWORK
bool exposedInAndroidJavaAPI() const override { return true; }
@@ -33,6 +34,9 @@ protected:
void flatten(SkWriteBuffer&) const override;
private:
+ static sk_sp<SkFlattenable> CreateProc(SkReadBuffer&);
+ friend class SkFlattenable::PrivateInitializer;
+
SkScalar* fIntervals;
int32_t fCount;
SkScalar fPhase;
diff --git a/src/effects/SkDashPathEffect.cpp b/src/effects/SkDashPathEffect.cpp
index cdadcf907d..1a2c635a7f 100644
--- a/src/effects/SkDashPathEffect.cpp
+++ b/src/effects/SkDashPathEffect.cpp
@@ -8,6 +8,7 @@
#include "SkDashPathEffect.h"
#include "SkDashImpl.h"
#include "SkDashPathPriv.h"
+#include "SkFlattenablePriv.h"
#include "SkReadBuffer.h"
#include "SkWriteBuffer.h"
#include "SkStrokeRec.h"
diff --git a/src/effects/SkDisplacementMapEffect.cpp b/src/effects/SkDisplacementMapEffect.cpp
index d40e521b0a..f1b704e1c8 100644
--- a/src/effects/SkDisplacementMapEffect.cpp
+++ b/src/effects/SkDisplacementMapEffect.cpp
@@ -9,6 +9,7 @@
#include "SkBitmap.h"
#include "SkColorSpaceXformer.h"
+#include "SkFlattenablePriv.h"
#include "SkImageFilterPriv.h"
#include "SkReadBuffer.h"
#include "SkSpecialImage.h"
diff --git a/src/effects/SkDropShadowImageFilter.cpp b/src/effects/SkDropShadowImageFilter.cpp
index 7532894bce..1a0ce2ee6b 100644
--- a/src/effects/SkDropShadowImageFilter.cpp
+++ b/src/effects/SkDropShadowImageFilter.cpp
@@ -10,6 +10,7 @@
#include "SkBlurImageFilter.h"
#include "SkCanvas.h"
#include "SkColorSpaceXformer.h"
+#include "SkFlattenablePriv.h"
#include "SkImageFilterPriv.h"
#include "SkReadBuffer.h"
#include "SkSpecialImage.h"
diff --git a/src/effects/SkEmbossMaskFilter.h b/src/effects/SkEmbossMaskFilter.h
index bc992a09b5..67d068cdb7 100644
--- a/src/effects/SkEmbossMaskFilter.h
+++ b/src/effects/SkEmbossMaskFilter.h
@@ -8,6 +8,7 @@
#ifndef SkEmbossMaskFilter_DEFINED
#define SkEmbossMaskFilter_DEFINED
+#include "SkFlattenablePriv.h"
#include "SkMaskFilterBase.h"
/** \class SkEmbossMaskFilter
diff --git a/src/effects/SkLightingImageFilter.cpp b/src/effects/SkLightingImageFilter.cpp
index 0a1330583a..7c4f9b790d 100644
--- a/src/effects/SkLightingImageFilter.cpp
+++ b/src/effects/SkLightingImageFilter.cpp
@@ -9,6 +9,7 @@
#include "SkBitmap.h"
#include "SkColorData.h"
#include "SkColorSpaceXformer.h"
+#include "SkFlattenablePriv.h"
#include "SkImageFilterPriv.h"
#include "SkPoint3.h"
#include "SkReadBuffer.h"
diff --git a/src/effects/SkMagnifierImageFilter.cpp b/src/effects/SkMagnifierImageFilter.cpp
index 75e9817b8d..3a6679d2e3 100644
--- a/src/effects/SkMagnifierImageFilter.cpp
+++ b/src/effects/SkMagnifierImageFilter.cpp
@@ -10,6 +10,7 @@
#include "SkBitmap.h"
#include "SkColorData.h"
#include "SkColorSpaceXformer.h"
+#include "SkFlattenablePriv.h"
#include "SkImageFilterPriv.h"
#include "SkReadBuffer.h"
#include "SkSpecialImage.h"
diff --git a/src/effects/SkMatrixConvolutionImageFilter.cpp b/src/effects/SkMatrixConvolutionImageFilter.cpp
index 848676afaf..585103a008 100644
--- a/src/effects/SkMatrixConvolutionImageFilter.cpp
+++ b/src/effects/SkMatrixConvolutionImageFilter.cpp
@@ -9,6 +9,7 @@
#include "SkBitmap.h"
#include "SkColorData.h"
#include "SkColorSpaceXformer.h"
+#include "SkFlattenablePriv.h"
#include "SkImageFilterPriv.h"
#include "SkReadBuffer.h"
#include "SkSpecialImage.h"
diff --git a/src/effects/SkMergeImageFilter.cpp b/src/effects/SkMergeImageFilter.cpp
index 41d545e187..debe332e84 100644
--- a/src/effects/SkMergeImageFilter.cpp
+++ b/src/effects/SkMergeImageFilter.cpp
@@ -9,6 +9,7 @@
#include "SkCanvas.h"
#include "SkColorSpaceXformer.h"
+#include "SkFlattenablePriv.h"
#include "SkReadBuffer.h"
#include "SkSpecialImage.h"
#include "SkSpecialSurface.h"
diff --git a/src/effects/SkMorphologyImageFilter.cpp b/src/effects/SkMorphologyImageFilter.cpp
index e421fdd28a..9d87aa033b 100644
--- a/src/effects/SkMorphologyImageFilter.cpp
+++ b/src/effects/SkMorphologyImageFilter.cpp
@@ -10,6 +10,7 @@
#include "SkBitmap.h"
#include "SkColorData.h"
#include "SkColorSpaceXformer.h"
+#include "SkFlattenablePriv.h"
#include "SkImageFilterPriv.h"
#include "SkOpts.h"
#include "SkReadBuffer.h"
diff --git a/src/effects/SkOffsetImageFilter.cpp b/src/effects/SkOffsetImageFilter.cpp
index 5b1533b371..19aa68ec2f 100644
--- a/src/effects/SkOffsetImageFilter.cpp
+++ b/src/effects/SkOffsetImageFilter.cpp
@@ -8,6 +8,7 @@
#include "SkOffsetImageFilter.h"
#include "SkColorSpaceXformer.h"
#include "SkCanvas.h"
+#include "SkFlattenablePriv.h"
#include "SkImageFilterPriv.h"
#include "SkMatrix.h"
#include "SkPaint.h"
diff --git a/src/effects/SkPictureImageFilter.cpp b/src/effects/SkPictureImageFilter.cpp
index 93a494d1e7..66fea1fe3f 100644
--- a/src/effects/SkPictureImageFilter.cpp
+++ b/src/effects/SkPictureImageFilter.cpp
@@ -10,6 +10,7 @@
#include "SkCanvas.h"
#include "SkColorSpaceXformCanvas.h"
#include "SkColorSpaceXformer.h"
+#include "SkFlattenablePriv.h"
#include "SkImageSource.h"
#include "SkReadBuffer.h"
#include "SkSpecialImage.h"
diff --git a/src/effects/SkTileImageFilter.cpp b/src/effects/SkTileImageFilter.cpp
index 1aac5814c5..f96af87a81 100644
--- a/src/effects/SkTileImageFilter.cpp
+++ b/src/effects/SkTileImageFilter.cpp
@@ -8,6 +8,7 @@
#include "SkTileImageFilter.h"
#include "SkColorSpaceXformer.h"
#include "SkCanvas.h"
+#include "SkFlattenablePriv.h"
#include "SkImage.h"
#include "SkImageFilterPriv.h"
#include "SkMatrix.h"
diff --git a/src/effects/SkTrimPE.h b/src/effects/SkTrimPE.h
index 7a05e72074..b7ed0c7c00 100644
--- a/src/effects/SkTrimPE.h
+++ b/src/effects/SkTrimPE.h
@@ -8,6 +8,7 @@
#ifndef SkTrimImpl_DEFINED
#define SkTrimImpl_DEFINED
+#include "SkFlattenablePriv.h"
#include "SkPathEffect.h"
#include "SkTrimPathEffect.h"
diff --git a/src/effects/SkXfermodeImageFilter.cpp b/src/effects/SkXfermodeImageFilter.cpp
index 9123818c84..0aa33d9cc0 100644
--- a/src/effects/SkXfermodeImageFilter.cpp
+++ b/src/effects/SkXfermodeImageFilter.cpp
@@ -10,6 +10,7 @@
#include "SkCanvas.h"
#include "SkColorData.h"
#include "SkColorSpaceXformer.h"
+#include "SkFlattenablePriv.h"
#include "SkImageFilterPriv.h"
#include "SkReadBuffer.h"
#include "SkSpecialImage.h"
diff --git a/src/shaders/SkShaderBase.h b/src/shaders/SkShaderBase.h
index cddc5540ee..53ec0dc853 100644
--- a/src/shaders/SkShaderBase.h
+++ b/src/shaders/SkShaderBase.h
@@ -9,6 +9,7 @@
#define SkShaderBase_DEFINED
#include "SkFilterQuality.h"
+#include "SkFlattenablePriv.h"
#include "SkMask.h"
#include "SkMatrix.h"
#include "SkShader.h"
diff --git a/src/shaders/gradients/SkGradientShader.cpp b/src/shaders/gradients/SkGradientShader.cpp
index 78f514c1c6..a574b7d46d 100644
--- a/src/shaders/gradients/SkGradientShader.cpp
+++ b/src/shaders/gradients/SkGradientShader.cpp
@@ -9,6 +9,7 @@
#include "Sk4fLinearGradient.h"
#include "SkColorSpace_XYZ.h"
#include "SkColorSpaceXformer.h"
+#include "SkFlattenablePriv.h"
#include "SkFloatBits.h"
#include "SkGradientBitmapCache.h"
#include "SkGradientShaderPriv.h"
diff --git a/src/utils/SkShadowUtils.cpp b/src/utils/SkShadowUtils.cpp
index 5049dd6f59..dfd5ba4886 100644
--- a/src/utils/SkShadowUtils.cpp
+++ b/src/utils/SkShadowUtils.cpp
@@ -12,6 +12,7 @@
#include "SkColorData.h"
#include "SkDevice.h"
#include "SkDrawShadowInfo.h"
+#include "SkFlattenablePriv.h"
#include "SkMaskFilter.h"
#include "SkPath.h"
#include "SkPM4f.h"