| Differences between
and this patch
- a/Source/WebCore/platform/graphics/filters/FEColorMatrix.cpp -1 / +1 lines
Lines 285-291 void FEColorMatrix::platformApplySoftware() a/Source/WebCore/platform/graphics/filters/FEColorMatrix.cpp_sec1
285
    if (inBuffer)
285
    if (inBuffer)
286
        resultImage->context().drawImageBuffer(*inBuffer, drawingRegionOfInputImage(in->absolutePaintRect()));
286
        resultImage->context().drawImageBuffer(*inBuffer, drawingRegionOfInputImage(in->absolutePaintRect()));
287
287
288
    PixelBufferFormat format { AlphaPremultiplication::Unpremultiplied, PixelFormat::RGBA8, DestinationColorSpace::SRGB };
288
    PixelBufferFormat format { AlphaPremultiplication::Unpremultiplied, PixelFormat::RGBA8, resultColorSpace() };
289
    IntRect imageRect(IntPoint(), resultImage->logicalSize());
289
    IntRect imageRect(IntPoint(), resultImage->logicalSize());
290
    auto pixelBuffer = resultImage->getPixelBuffer(format, imageRect);
290
    auto pixelBuffer = resultImage->getPixelBuffer(format, imageRect);
291
    if (!pixelBuffer)
291
    if (!pixelBuffer)
- a/Source/WebCore/platform/graphics/filters/FEDisplacementMap.cpp -7 lines
Lines 78-90 void FEDisplacementMap::setResultColorSpace(DestinationColorSpace) a/Source/WebCore/platform/graphics/filters/FEDisplacementMap.cpp_sec1
78
    FilterEffect::setResultColorSpace(inputEffect(0)->resultColorSpace());
78
    FilterEffect::setResultColorSpace(inputEffect(0)->resultColorSpace());
79
}
79
}
80
80
81
void FEDisplacementMap::transformResultColorSpace(FilterEffect* in, const int index)
82
{
83
    // Do not transform the first primitive input, as per the spec.
84
    if (index)
85
        in->transformResultColorSpace(operatingColorSpace());
86
}
87
88
static inline unsigned byteOffsetOfPixel(unsigned x, unsigned y, unsigned rowBytes)
81
static inline unsigned byteOffsetOfPixel(unsigned x, unsigned y, unsigned rowBytes)
89
{
82
{
90
    const unsigned bytesPerPixel = 4;
83
    const unsigned bytesPerPixel = 4;
- a/Source/WebCore/platform/graphics/filters/FEDisplacementMap.h -1 lines
Lines 49-55 public: a/Source/WebCore/platform/graphics/filters/FEDisplacementMap.h_sec1
49
    bool setScale(float);
49
    bool setScale(float);
50
50
51
    void setResultColorSpace(DestinationColorSpace) override;
51
    void setResultColorSpace(DestinationColorSpace) override;
52
    void transformResultColorSpace(FilterEffect*, const int) override;
53
52
54
private:
53
private:
55
    FEDisplacementMap(Filter&, ChannelSelectorType xChannelSelector, ChannelSelectorType yChannelSelector, float);
54
    FEDisplacementMap(Filter&, ChannelSelectorType xChannelSelector, ChannelSelectorType yChannelSelector, float);
- a/Source/WebCore/platform/graphics/filters/FilterEffect.cpp -3 lines
Lines 173-181 void FilterEffect::apply() a/Source/WebCore/platform/graphics/filters/FilterEffect.cpp_sec1
173
        in->apply();
173
        in->apply();
174
        if (!in->hasResult())
174
        if (!in->hasResult())
175
            return;
175
            return;
176
177
        // Convert input results to the current effect's color space.
178
        transformResultColorSpace(in, i);
179
    }
176
    }
180
177
181
    determineAbsolutePaintRect();
178
    determineAbsolutePaintRect();
- a/Source/WebCore/platform/graphics/filters/FilterEffect.h -1 lines
Lines 170-176 public: a/Source/WebCore/platform/graphics/filters/FilterEffect.h_sec1
170
    DestinationColorSpace resultColorSpace() const { return m_resultColorSpace; }
170
    DestinationColorSpace resultColorSpace() const { return m_resultColorSpace; }
171
    virtual void setResultColorSpace(DestinationColorSpace colorSpace) { m_resultColorSpace = colorSpace; }
171
    virtual void setResultColorSpace(DestinationColorSpace colorSpace) { m_resultColorSpace = colorSpace; }
172
172
173
    virtual void transformResultColorSpace(FilterEffect* in, const int) { in->transformResultColorSpace(m_operatingColorSpace); }
174
    void transformResultColorSpace(DestinationColorSpace);
173
    void transformResultColorSpace(DestinationColorSpace);
175
    
174
    
176
    static Vector<float> normalizedFloats(const Vector<float>& values)
175
    static Vector<float> normalizedFloats(const Vector<float>& values)

Return to Bug 225907