Skip to content
  • commit-queue@webkit.org's avatar
    Add platform support for -webkit-background-blend-mode to CG context · 1bbfa110
    commit-queue@webkit.org authored
    https://bugs.webkit.org/show_bug.cgi?id=108549
    
    Patch by Rik Cabanier <cabanier@adobe.com> on 2013-02-15
    Reviewed by Dean Jackson.
    
    Source/WebCore:
    
    Tests: css3/compositing/effect-background-blend-mode-stacking.html
           css3/compositing/effect-background-blend-mode.html
    
    This patch adds support for blending on background images to the Core Graphics port of WebKit.
    
    * platform/graphics/CrossfadeGeneratedImage.cpp: Added interface change for blending.
    (WebCore::CrossfadeGeneratedImage::drawPattern):
    * platform/graphics/CrossfadeGeneratedImage.h: Added interface change for blending.
    (CrossfadeGeneratedImage):
    * platform/graphics/GeneratedImage.h: Added interface change for blending.
    (GeneratedImage):
    * platform/graphics/GeneratorGeneratedImage.cpp: Added interface change for blending.
    (WebCore::GeneratorGeneratedImage::drawPattern):
    * platform/graphics/GeneratorGeneratedImage.h: Added interface change for blending.
    (GeneratorGeneratedImage):
    * platform/graphics/GraphicsContext.cpp: Added interface change for blending and passes blend mode to image object.
    (WebCore::GraphicsContext::drawTiledImage):
    (WebCore::GraphicsContext::blendModeOperation):
    (WebCore):
    * platform/graphics/GraphicsContext.h: Added interface change for blending.
    (GraphicsContext):
    * platform/graphics/Image.cpp: Added interface change for blending and passed it to graphics layer.
    (WebCore::Image::drawTiled):
    * platform/graphics/Image.h: Added interface change for blending.
    (Image):
    * platform/graphics/cg/ImageCG.cpp: Added interface change for blending and passed it to OS.
    (WebCore::Image::drawPattern):
    * rendering/RenderBoxModelObject.cpp: Passed blend mode when drawing background images.
    (WebCore::RenderBoxModelObject::paintFillLayerExtended):
    * platform/graphics/cairo/ImageCairo.cpp: Added interface change for blending.
    (WebCore::Image::drawPattern):
    * platform/graphics/qt/ImageQt.cpp: Added interface change for blending.
    (WebCore::Image::drawPattern):
    * platform/graphics/skia/ImageSkia.cpp: Added interface change for blending.
    (WebCore::Image::drawPattern):
    * rendering/RenderBoxModelObject.cpp: Added interface change for blending.
    (WebCore::RenderBoxModelObject::paintFillLayerExtended):
    * svg/graphics/SVGImageForContainer.cpp: Added interface change for blending.
    (WebCore::SVGImageForContainer::drawPattern):
    * svg/graphics/SVGImageForContainer.h: Added interface change for blending.
    
    Source/WebKit:
    
    Fixed build issue.
    
    * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:
    
    Source/WebKit/win:
    
    Fixed build issue.
    
    * WebKit.vcproj/WebKitExports.def.in:
    
    LayoutTests:
    
    Added tests for background images.
    
    * css3/compositing/effect-background-blend-mode-expected.png: Added.
    * css3/compositing/effect-background-blend-mode-expected.txt: Added.
    * css3/compositing/effect-background-blend-mode-stacking-expected.png: Added.
    * css3/compositing/effect-background-blend-mode-stacking-expected.txt: Added.
    * css3/compositing/effect-background-blend-mode-stacking.html: Added.
    * css3/compositing/effect-background-blend-mode.html: Added.
    * css3/compositing/resources/ducky.png: Added.
    * platform/chromium/TestExpectations:
    * platform/mac/css3/compositing: Added.
    * platform/mac/css3/compositing/effect-background-blend-mode-expected.png: Added.
    * platform/mac/css3/compositing/effect-background-blend-mode-stacking-expected.png: Added.
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@143046 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    1bbfa110