diff options
Diffstat (limited to 'chromium/cc/paint/paint_filter.h')
-rw-r--r-- | chromium/cc/paint/paint_filter.h | 38 |
1 files changed, 34 insertions, 4 deletions
diff --git a/chromium/cc/paint/paint_filter.h b/chromium/cc/paint/paint_filter.h index 716a153834e..107289bf0af 100644 --- a/chromium/cc/paint/paint_filter.h +++ b/chromium/cc/paint/paint_filter.h @@ -29,7 +29,7 @@ namespace cc { class CC_PAINT_EXPORT PaintFilter : public SkRefCnt { public: - enum class Type : uint8_t { + enum class Type : uint32_t { // For serialization purposes, we reserve one enum to indicate that there // was no PaintFilter, ie the filter is "null". kNullFilter, @@ -58,7 +58,7 @@ class CC_PAINT_EXPORT PaintFilter : public SkRefCnt { // Update the following if kLightingSpot is not the max anymore. kMaxFilterType = kLightingSpot }; - enum class LightingType : uint8_t { + enum class LightingType : uint32_t { kDiffuse, kSpecular, // Update the following if kSpecular is not the max anymore. @@ -72,6 +72,10 @@ class CC_PAINT_EXPORT PaintFilter : public SkRefCnt { static std::string TypeToString(Type type); + // Returns the size required to serialize the |filter|. Note that |filter| can + // be nullptr. + static size_t GetFilterSize(const PaintFilter* filter); + Type type() const { return type_; } SkIRect filter_bounds(const SkIRect& src, const SkMatrix& ctm, @@ -88,6 +92,8 @@ class CC_PAINT_EXPORT PaintFilter : public SkRefCnt { return crop_rect_ ? &*crop_rect_ : nullptr; } + virtual size_t SerializedSize() const = 0; + // Note that this operation is potentially slow. It also only compares things // that are easy to compare. As an example, it doesn't compare equality of // images, rather only its existence. This is meant to be used only by tests @@ -107,6 +113,8 @@ class CC_PAINT_EXPORT PaintFilter : public SkRefCnt { return cached_sk_filter_; } + size_t BaseSerializedSize() const; + // This should be created by each sub-class at construction time, to ensure // that subsequent access to the filter is thread-safe. sk_sp<SkImageFilter> cached_sk_filter_; @@ -135,6 +143,7 @@ class CC_PAINT_EXPORT ColorFilterPaintFilter final : public PaintFilter { const sk_sp<SkColorFilter>& color_filter() const { return color_filter_; } const sk_sp<PaintFilter>& input() const { return input_; } + size_t SerializedSize() const override; bool operator==(const ColorFilterPaintFilter& other) const; private: @@ -159,6 +168,7 @@ class CC_PAINT_EXPORT BlurPaintFilter final : public PaintFilter { SkScalar sigma_y() const { return sigma_y_; } TileMode tile_mode() const { return tile_mode_; } + size_t SerializedSize() const override; bool operator==(const BlurPaintFilter& other) const; private: @@ -190,6 +200,7 @@ class CC_PAINT_EXPORT DropShadowPaintFilter final : public PaintFilter { ShadowMode shadow_mode() const { return shadow_mode_; } const sk_sp<PaintFilter>& input() const { return input_; } + size_t SerializedSize() const override; bool operator==(const DropShadowPaintFilter& other) const; private: @@ -215,6 +226,7 @@ class CC_PAINT_EXPORT MagnifierPaintFilter final : public PaintFilter { SkScalar inset() const { return inset_; } const sk_sp<PaintFilter>& input() const { return input_; } + size_t SerializedSize() const override; bool operator==(const MagnifierPaintFilter& other) const; private: @@ -232,6 +244,7 @@ class CC_PAINT_EXPORT ComposePaintFilter final : public PaintFilter { const sk_sp<PaintFilter>& outer() const { return outer_; } const sk_sp<PaintFilter>& inner() const { return inner_; } + size_t SerializedSize() const override; bool operator==(const ComposePaintFilter& other) const; private: @@ -254,6 +267,7 @@ class CC_PAINT_EXPORT AlphaThresholdPaintFilter final : public PaintFilter { SkScalar outer_max() const { return outer_max_; } const sk_sp<PaintFilter>& input() const { return input_; } + size_t SerializedSize() const override; bool operator==(const AlphaThresholdPaintFilter& other) const; private: @@ -276,6 +290,7 @@ class CC_PAINT_EXPORT XfermodePaintFilter final : public PaintFilter { const sk_sp<PaintFilter>& background() const { return background_; } const sk_sp<PaintFilter>& foreground() const { return foreground_; } + size_t SerializedSize() const override; bool operator==(const XfermodePaintFilter& other) const; private: @@ -305,6 +320,7 @@ class CC_PAINT_EXPORT ArithmeticPaintFilter final : public PaintFilter { const sk_sp<PaintFilter>& background() const { return background_; } const sk_sp<PaintFilter>& foreground() const { return foreground_; } + size_t SerializedSize() const override; bool operator==(const ArithmeticPaintFilter& other) const; private: @@ -341,6 +357,7 @@ class CC_PAINT_EXPORT MatrixConvolutionPaintFilter final : public PaintFilter { bool convolve_alpha() const { return convolve_alpha_; } const sk_sp<PaintFilter>& input() const { return input_; } + size_t SerializedSize() const override; bool operator==(const MatrixConvolutionPaintFilter& other) const; private: @@ -373,6 +390,7 @@ class CC_PAINT_EXPORT DisplacementMapEffectPaintFilter final const sk_sp<PaintFilter>& displacement() const { return displacement_; } const sk_sp<PaintFilter>& color() const { return color_; } + size_t SerializedSize() const override; bool operator==(const DisplacementMapEffectPaintFilter& other) const; private: @@ -397,6 +415,7 @@ class CC_PAINT_EXPORT ImagePaintFilter final : public PaintFilter { const SkRect& dst_rect() const { return dst_rect_; } SkFilterQuality filter_quality() const { return filter_quality_; } + size_t SerializedSize() const override; bool operator==(const ImagePaintFilter& other) const; private: @@ -415,6 +434,7 @@ class CC_PAINT_EXPORT RecordPaintFilter final : public PaintFilter { const sk_sp<PaintRecord>& record() const { return record_; } SkRect record_bounds() const { return record_bounds_; } + size_t SerializedSize() const override; bool operator==(const RecordPaintFilter& other) const; private: @@ -436,6 +456,7 @@ class CC_PAINT_EXPORT MergePaintFilter final : public PaintFilter { return inputs_[i].get(); } + size_t SerializedSize() const override; bool operator==(const MergePaintFilter& other) const; private: @@ -444,7 +465,7 @@ class CC_PAINT_EXPORT MergePaintFilter final : public PaintFilter { class CC_PAINT_EXPORT MorphologyPaintFilter final : public PaintFilter { public: - enum class MorphType : uint8_t { kDilate, kErode, kMaxMorphType = kErode }; + enum class MorphType : uint32_t { kDilate, kErode, kMaxMorphType = kErode }; static constexpr Type kType = Type::kMorphology; MorphologyPaintFilter(MorphType morph_type, int radius_x, @@ -458,6 +479,7 @@ class CC_PAINT_EXPORT MorphologyPaintFilter final : public PaintFilter { int radius_y() const { return radius_y_; } const sk_sp<PaintFilter>& input() const { return input_; } + size_t SerializedSize() const override; bool operator==(const MorphologyPaintFilter& other) const; private: @@ -480,6 +502,7 @@ class CC_PAINT_EXPORT OffsetPaintFilter final : public PaintFilter { SkScalar dy() const { return dy_; } const sk_sp<PaintFilter>& input() const { return input_; } + size_t SerializedSize() const override; bool operator==(const OffsetPaintFilter& other) const; private: @@ -500,6 +523,7 @@ class CC_PAINT_EXPORT TilePaintFilter final : public PaintFilter { const SkRect& dst() const { return dst_; } const sk_sp<PaintFilter>& input() const { return input_; } + size_t SerializedSize() const override; bool operator==(const TilePaintFilter& other) const; private: @@ -511,7 +535,7 @@ class CC_PAINT_EXPORT TilePaintFilter final : public PaintFilter { class CC_PAINT_EXPORT TurbulencePaintFilter final : public PaintFilter { public: static constexpr Type kType = Type::kTurbulence; - enum class TurbulenceType : uint8_t { + enum class TurbulenceType : uint32_t { kTurbulence, kFractalNoise, kMaxTurbulenceType = kFractalNoise @@ -532,6 +556,7 @@ class CC_PAINT_EXPORT TurbulencePaintFilter final : public PaintFilter { SkScalar seed() const { return seed_; } SkISize tile_size() const { return tile_size_; } + size_t SerializedSize() const override; bool operator==(const TurbulencePaintFilter& other) const; private: @@ -552,6 +577,7 @@ class CC_PAINT_EXPORT PaintFlagsPaintFilter final : public PaintFilter { const PaintFlags& flags() const { return flags_; } + size_t SerializedSize() const override; bool operator==(const PaintFlagsPaintFilter& other) const; private: @@ -570,6 +596,7 @@ class CC_PAINT_EXPORT MatrixPaintFilter final : public PaintFilter { SkFilterQuality filter_quality() const { return filter_quality_; } const sk_sp<PaintFilter>& input() const { return input_; } + size_t SerializedSize() const override; bool operator==(const MatrixPaintFilter& other) const; private: @@ -602,6 +629,7 @@ class CC_PAINT_EXPORT LightingDistantPaintFilter final : public PaintFilter { SkScalar shininess() const { return shininess_; } const sk_sp<PaintFilter>& input() const { return input_; } + size_t SerializedSize() const override; bool operator==(const LightingDistantPaintFilter& other) const; private: @@ -638,6 +666,7 @@ class CC_PAINT_EXPORT LightingPointPaintFilter final : public PaintFilter { SkScalar shininess() const { return shininess_; } const sk_sp<PaintFilter>& input() const { return input_; } + size_t SerializedSize() const override; bool operator==(const LightingPointPaintFilter& other) const; private: @@ -680,6 +709,7 @@ class CC_PAINT_EXPORT LightingSpotPaintFilter final : public PaintFilter { SkScalar shininess() const { return shininess_; } const sk_sp<PaintFilter>& input() const { return input_; } + size_t SerializedSize() const override; bool operator==(const LightingSpotPaintFilter& other) const; private: |