bool preserveAlpha() const;
bool setPreserveAlpha(bool);
- virtual PassRefPtr<SkImageFilter> createImageFilter(SkiaImageFilterBuilder*) OVERRIDE;
+ virtual PassRefPtr<SkImageFilter> createImageFilter(SkiaImageFilterBuilder*) override;
- virtual FloatRect mapPaintRect(const FloatRect&, bool forward = true) OVERRIDE FINAL;
+ virtual FloatRect mapPaintRect(const FloatRect&, bool forward = true) override final;
- virtual TextStream& externalRepresentation(TextStream&, int indention) const OVERRIDE;
+ virtual TextStream& externalRepresentation(TextStream&, int indention) const override;
private:
- struct PaintingData {
- Uint8ClampedArray* srcPixelArray;
- Uint8ClampedArray* dstPixelArray;
- int width;
- int height;
- float bias;
- };
-
FEConvolveMatrix(Filter*, const IntSize&, float, float,
const IntPoint&, EdgeModeType, const FloatPoint&, bool, const Vector<float>&);
- virtual void applySoftware() OVERRIDE;
-
- template<bool preserveAlphaValues>
- ALWAYS_INLINE void fastSetInteriorPixels(PaintingData&, int clipRight, int clipBottom, int yStart, int yEnd);
-
- ALWAYS_INLINE int getPixelValue(PaintingData&, int x, int y);
-
- template<bool preserveAlphaValues>
- void fastSetOuterPixels(PaintingData&, int x1, int y1, int x2, int y2);
-
- // Wrapper functions
- ALWAYS_INLINE void setInteriorPixels(PaintingData&, int clipRight, int clipBottom, int yStart, int yEnd);
- ALWAYS_INLINE void setOuterPixels(PaintingData&, int x1, int y1, int x2, int y2);
-
- // Parallelization parts
- static const int s_minimalRectDimension = (100 * 100); // Empirical data limit for parallel jobs
-
- template<typename Type>
- friend class ParallelJobs;
-
- struct InteriorPixelParameters {
- FEConvolveMatrix* filter;
- PaintingData* paintingData;
- int clipBottom;
- int clipRight;
- int yStart;
- int yEnd;
- };
-
- static void setInteriorPixelsWorker(InteriorPixelParameters*);
-
IntSize m_kernelSize;
float m_divisor;
float m_bias;