Changeset 143046 in webkit
- Timestamp:
- Feb 15, 2013 1:43:50 PM (11 years ago)
- Location:
- trunk
- Files:
-
- 10 added
- 23 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r143045 r143046 1 2013-02-15 Rik Cabanier <cabanier@adobe.com> 2 3 Add platform support for -webkit-background-blend-mode to CG context 4 https://bugs.webkit.org/show_bug.cgi?id=108549 5 6 Reviewed by Dean Jackson. 7 8 Added tests for background images. 9 10 * css3/compositing/effect-background-blend-mode-expected.png: Added. 11 * css3/compositing/effect-background-blend-mode-expected.txt: Added. 12 * css3/compositing/effect-background-blend-mode-stacking-expected.png: Added. 13 * css3/compositing/effect-background-blend-mode-stacking-expected.txt: Added. 14 * css3/compositing/effect-background-blend-mode-stacking.html: Added. 15 * css3/compositing/effect-background-blend-mode.html: Added. 16 * css3/compositing/resources/ducky.png: Added. 17 * platform/chromium/TestExpectations: 18 * platform/mac/css3/compositing: Added. 19 * platform/mac/css3/compositing/effect-background-blend-mode-expected.png: Added. 20 * platform/mac/css3/compositing/effect-background-blend-mode-stacking-expected.png: Added. 21 1 22 2013-02-14 Emil A Eklund <eae@chromium.org> 2 23 -
trunk/LayoutTests/platform/chromium/TestExpectations
r143036 r143046 141 141 webkit.org/b/100071 platform/chromium/virtual/gpu/fast/canvas/canvas-blend-image.html [ Skip ] 142 142 webkit.org/b/100071 platform/chromium/virtual/gpu/fast/canvas/canvas-blend-solid.html [ Skip ] 143 webkit.org/b/108550 css3/compositing/effect-background-blend-mode-stacking.html [ Skip ] 144 webkit.org/b/108550 css3/compositing/effect-background-blend-mode.html [ Skip ] 143 145 144 146 # Implement java testing harness. -
trunk/Source/WebCore/ChangeLog
r143045 r143046 1 2013-02-15 Rik Cabanier <cabanier@adobe.com> 2 3 Add platform support for -webkit-background-blend-mode to CG context 4 https://bugs.webkit.org/show_bug.cgi?id=108549 5 6 Reviewed by Dean Jackson. 7 8 Tests: css3/compositing/effect-background-blend-mode-stacking.html 9 css3/compositing/effect-background-blend-mode.html 10 11 This patch adds support for blending on background images to the Core Graphics port of WebKit. 12 13 * platform/graphics/CrossfadeGeneratedImage.cpp: Added interface change for blending. 14 (WebCore::CrossfadeGeneratedImage::drawPattern): 15 * platform/graphics/CrossfadeGeneratedImage.h: Added interface change for blending. 16 (CrossfadeGeneratedImage): 17 * platform/graphics/GeneratedImage.h: Added interface change for blending. 18 (GeneratedImage): 19 * platform/graphics/GeneratorGeneratedImage.cpp: Added interface change for blending. 20 (WebCore::GeneratorGeneratedImage::drawPattern): 21 * platform/graphics/GeneratorGeneratedImage.h: Added interface change for blending. 22 (GeneratorGeneratedImage): 23 * platform/graphics/GraphicsContext.cpp: Added interface change for blending and passes blend mode to image object. 24 (WebCore::GraphicsContext::drawTiledImage): 25 (WebCore::GraphicsContext::blendModeOperation): 26 (WebCore): 27 * platform/graphics/GraphicsContext.h: Added interface change for blending. 28 (GraphicsContext): 29 * platform/graphics/Image.cpp: Added interface change for blending and passed it to graphics layer. 30 (WebCore::Image::drawTiled): 31 * platform/graphics/Image.h: Added interface change for blending. 32 (Image): 33 * platform/graphics/cg/ImageCG.cpp: Added interface change for blending and passed it to OS. 34 (WebCore::Image::drawPattern): 35 * rendering/RenderBoxModelObject.cpp: Passed blend mode when drawing background images. 36 (WebCore::RenderBoxModelObject::paintFillLayerExtended): 37 * platform/graphics/cairo/ImageCairo.cpp: Added interface change for blending. 38 (WebCore::Image::drawPattern): 39 * platform/graphics/qt/ImageQt.cpp: Added interface change for blending. 40 (WebCore::Image::drawPattern): 41 * platform/graphics/skia/ImageSkia.cpp: Added interface change for blending. 42 (WebCore::Image::drawPattern): 43 * rendering/RenderBoxModelObject.cpp: Added interface change for blending. 44 (WebCore::RenderBoxModelObject::paintFillLayerExtended): 45 * svg/graphics/SVGImageForContainer.cpp: Added interface change for blending. 46 (WebCore::SVGImageForContainer::drawPattern): 47 * svg/graphics/SVGImageForContainer.h: Added interface change for blending. 48 1 49 2013-02-14 Emil A Eklund <eae@chromium.org> 2 50 -
trunk/Source/WebCore/platform/graphics/CrossfadeGeneratedImage.cpp
r141570 r143046 95 95 } 96 96 97 void CrossfadeGeneratedImage::drawPattern(GraphicsContext* context, const FloatRect& srcRect, const AffineTransform& patternTransform, const FloatPoint& phase, ColorSpace styleColorSpace, CompositeOperator compositeOp, const FloatRect& dstRect )97 void CrossfadeGeneratedImage::drawPattern(GraphicsContext* context, const FloatRect& srcRect, const AffineTransform& patternTransform, const FloatPoint& phase, ColorSpace styleColorSpace, CompositeOperator compositeOp, const FloatRect& dstRect, BlendMode) 98 98 { 99 99 OwnPtr<ImageBuffer> imageBuffer = ImageBuffer::create(m_size, 1, ColorSpaceDeviceRGB, context->isAcceleratedContext() ? Accelerated : Unaccelerated); -
trunk/Source/WebCore/platform/graphics/CrossfadeGeneratedImage.h
r137011 r143046 55 55 protected: 56 56 virtual void draw(GraphicsContext*, const FloatRect& dstRect, const FloatRect& srcRect, ColorSpace styleColorSpace, CompositeOperator, BlendMode); 57 virtual void drawPattern(GraphicsContext*, const FloatRect& srcRect, const AffineTransform& patternTransform, const FloatPoint& phase, ColorSpace styleColorSpace, CompositeOperator, const FloatRect& dstRect );57 virtual void drawPattern(GraphicsContext*, const FloatRect& srcRect, const AffineTransform& patternTransform, const FloatPoint& phase, ColorSpace styleColorSpace, CompositeOperator, const FloatRect& dstRect, BlendMode); 58 58 59 59 CrossfadeGeneratedImage(Image* fromImage, Image* toImage, float percentage, IntSize crossfadeSize, const IntSize&); -
trunk/Source/WebCore/platform/graphics/GeneratedImage.h
r141637 r143046 56 56 virtual void draw(GraphicsContext*, const FloatRect& dstRect, const FloatRect& srcRect, ColorSpace styleColorSpace, CompositeOperator, BlendMode) = 0; 57 57 virtual void drawPattern(GraphicsContext*, const FloatRect& srcRect, const AffineTransform& patternTransform, 58 const FloatPoint& phase, ColorSpace styleColorSpace, CompositeOperator, const FloatRect& destRect) = 0;58 const FloatPoint& phase, ColorSpace styleColorSpace, CompositeOperator, const FloatRect& destRect, BlendMode) = 0; 59 59 60 60 // FIXME: Implement this to be less conservative. -
trunk/Source/WebCore/platform/graphics/GeneratorGeneratedImage.cpp
r141570 r143046 47 47 48 48 void GeneratorGeneratedImage::drawPattern(GraphicsContext* destContext, const FloatRect& srcRect, const AffineTransform& patternTransform, 49 const FloatPoint& phase, ColorSpace styleColorSpace, CompositeOperator compositeOp, const FloatRect& destRect)49 const FloatPoint& phase, ColorSpace styleColorSpace, CompositeOperator compositeOp, const FloatRect& destRect, BlendMode) 50 50 { 51 51 // Allow the generator to provide visually-equivalent tiling parameters for better performance. -
trunk/Source/WebCore/platform/graphics/GeneratorGeneratedImage.h
r137011 r143046 56 56 virtual void draw(GraphicsContext*, const FloatRect& dstRect, const FloatRect& srcRect, ColorSpace styleColorSpace, CompositeOperator, BlendMode); 57 57 virtual void drawPattern(GraphicsContext*, const FloatRect& srcRect, const AffineTransform& patternTransform, 58 const FloatPoint& phase, ColorSpace styleColorSpace, CompositeOperator, const FloatRect& destRect);58 const FloatPoint& phase, ColorSpace styleColorSpace, CompositeOperator, const FloatRect& destRect, BlendMode); 59 59 60 60 void invalidateCacheTimerFired(DeferrableOneShotTimer<GeneratorGeneratedImage>*); -
trunk/Source/WebCore/platform/graphics/GraphicsContext.cpp
r142123 r143046 500 500 } 501 501 502 void GraphicsContext::drawTiledImage(Image* image, ColorSpace styleColorSpace, const IntRect& destRect, const IntPoint& srcPoint, const IntSize& tileSize, CompositeOperator op, bool useLowQualityScale )502 void GraphicsContext::drawTiledImage(Image* image, ColorSpace styleColorSpace, const IntRect& destRect, const IntPoint& srcPoint, const IntSize& tileSize, CompositeOperator op, bool useLowQualityScale, BlendMode blendMode) 503 503 { 504 504 if (paintingDisabled() || !image) … … 508 508 InterpolationQuality previousInterpolationQuality = imageInterpolationQuality(); 509 509 setImageInterpolationQuality(InterpolationLow); 510 image->drawTiled(this, destRect, srcPoint, tileSize, styleColorSpace, op );510 image->drawTiled(this, destRect, srcPoint, tileSize, styleColorSpace, op, blendMode); 511 511 setImageInterpolationQuality(previousInterpolationQuality); 512 512 } else 513 image->drawTiled(this, destRect, srcPoint, tileSize, styleColorSpace, op );513 image->drawTiled(this, destRect, srcPoint, tileSize, styleColorSpace, op, blendMode); 514 514 } 515 515 … … 716 716 { 717 717 return m_state.compositeOperator; 718 } 719 720 BlendMode GraphicsContext::blendModeOperation() const 721 { 722 return m_state.blendMode; 718 723 } 719 724 -
trunk/Source/WebCore/platform/graphics/GraphicsContext.h
r142123 r143046 327 327 328 328 void drawTiledImage(Image*, ColorSpace styleColorSpace, const IntRect& destRect, const IntPoint& srcPoint, const IntSize& tileSize, 329 CompositeOperator = CompositeSourceOver, bool useLowQualityScale = false);329 CompositeOperator = CompositeSourceOver, bool useLowQualityScale = false, BlendMode = BlendModeNormal); 330 330 void drawTiledImage(Image*, ColorSpace styleColorSpace, const IntRect& destRect, const IntRect& srcRect, 331 331 const FloatSize& tileScaleFactor, Image::TileRule hRule = Image::StretchTile, Image::TileRule vRule = Image::StretchTile, … … 407 407 void setCompositeOperation(CompositeOperator, BlendMode = BlendModeNormal); 408 408 CompositeOperator compositeOperation() const; 409 BlendMode blendModeOperation() const; 409 410 410 411 void clip(const Path&, WindRule = RULE_EVENODD); -
trunk/Source/WebCore/platform/graphics/Image.cpp
r141874 r143046 98 98 } 99 99 100 void Image::drawTiled(GraphicsContext* ctxt, const FloatRect& destRect, const FloatPoint& srcPoint, const FloatSize& scaledTileSize, ColorSpace styleColorSpace, CompositeOperator op )100 void Image::drawTiled(GraphicsContext* ctxt, const FloatRect& destRect, const FloatPoint& srcPoint, const FloatSize& scaledTileSize, ColorSpace styleColorSpace, CompositeOperator op, BlendMode blendMode) 101 101 { 102 102 if (mayFillWithSolidColor()) { … … 131 131 visibleSrcRect.setWidth(destRect.width() / scale.width()); 132 132 visibleSrcRect.setHeight(destRect.height() / scale.height()); 133 draw(ctxt, destRect, visibleSrcRect, styleColorSpace, op, BlendModeNormal);133 draw(ctxt, destRect, visibleSrcRect, styleColorSpace, op, blendMode); 134 134 return; 135 135 } … … 137 137 AffineTransform patternTransform = AffineTransform().scaleNonUniform(scale.width(), scale.height()); 138 138 FloatRect tileRect(FloatPoint(), intrinsicTileSize); 139 drawPattern(ctxt, tileRect, patternTransform, oneTileRect.location(), styleColorSpace, op, destRect );139 drawPattern(ctxt, tileRect, patternTransform, oneTileRect.location(), styleColorSpace, op, destRect, blendMode); 140 140 141 141 startAnimation(); -
trunk/Source/WebCore/platform/graphics/Image.h
r141874 r143046 177 177 178 178 virtual void drawPattern(GraphicsContext*, const FloatRect& srcRect, const AffineTransform& patternTransform, 179 const FloatPoint& phase, ColorSpace styleColorSpace, CompositeOperator, const FloatRect& destRect);179 const FloatPoint& phase, ColorSpace styleColorSpace, CompositeOperator, const FloatRect& destRect, BlendMode = BlendModeNormal); 180 180 181 181 #if ENABLE(IMAGE_DECODER_DOWN_SAMPLING) … … 200 200 virtual void draw(GraphicsContext*, const FloatRect& dstRect, const FloatRect& srcRect, ColorSpace styleColorSpace, CompositeOperator, BlendMode) = 0; 201 201 virtual void draw(GraphicsContext*, const FloatRect& dstRect, const FloatRect& srcRect, ColorSpace styleColorSpace, CompositeOperator, BlendMode, RespectImageOrientationEnum); 202 void drawTiled(GraphicsContext*, const FloatRect& dstRect, const FloatPoint& srcPoint, const FloatSize& tileSize, ColorSpace styleColorSpace, CompositeOperator); 202 void drawTiled(GraphicsContext*, const FloatRect& dstRect, const FloatPoint& srcPoint, const FloatSize& tileSize, ColorSpace styleColorSpace, 203 CompositeOperator , BlendMode); 203 204 void drawTiled(GraphicsContext*, const FloatRect& dstRect, const FloatRect& srcRect, const FloatSize& tileScaleFactor, TileRule hRule, TileRule vRule, ColorSpace styleColorSpace, CompositeOperator); 204 205 -
trunk/Source/WebCore/platform/graphics/cairo/ImageCairo.cpp
r128570 r143046 44 44 45 45 void Image::drawPattern(GraphicsContext* context, const FloatRect& tileRect, const AffineTransform& patternTransform, 46 const FloatPoint& phase, ColorSpace, CompositeOperator op, const FloatRect& destRect)46 const FloatPoint& phase, ColorSpace, CompositeOperator op, const FloatRect& destRect, BlendMode) 47 47 { 48 48 NativeImageCairo* image = nativeImageForCurrentFrame(); -
trunk/Source/WebCore/platform/graphics/cg/ImageCG.cpp
r127170 r143046 75 75 76 76 void Image::drawPattern(GraphicsContext* ctxt, const FloatRect& tileRect, const AffineTransform& patternTransform, 77 const FloatPoint& phase, ColorSpace styleColorSpace, CompositeOperator op, const FloatRect& destRect)77 const FloatPoint& phase, ColorSpace styleColorSpace, CompositeOperator op, const FloatRect& destRect, BlendMode blendMode) 78 78 { 79 79 if (!nativeImageForCurrentFrame()) … … 86 86 GraphicsContextStateSaver stateSaver(*ctxt); 87 87 CGContextClipToRect(context, destRect); 88 ctxt->setCompositeOperation(op );88 ctxt->setCompositeOperation(op, blendMode); 89 89 CGContextTranslateCTM(context, destRect.x(), destRect.y() + destRect.height()); 90 90 CGContextScaleCTM(context, 1, -1); -
trunk/Source/WebCore/platform/graphics/qt/ImageQt.cpp
r137011 r143046 133 133 134 134 void Image::drawPattern(GraphicsContext* ctxt, const FloatRect& tileRect, const AffineTransform& patternTransform, 135 const FloatPoint& phase, ColorSpace, CompositeOperator op, const FloatRect& destRect)135 const FloatPoint& phase, ColorSpace, CompositeOperator op, const FloatRect& destRect, BlendMode) 136 136 { 137 137 QPixmap* framePixmap = nativeImageForCurrentFrame(); -
trunk/Source/WebCore/platform/graphics/skia/ImageSkia.cpp
r137011 r143046 466 466 ColorSpace styleColorSpace, 467 467 CompositeOperator compositeOp, 468 const FloatRect& destRect) 468 const FloatRect& destRect, 469 BlendMode) 469 470 { 470 471 #if PLATFORM(CHROMIUM) -
trunk/Source/WebCore/rendering/RenderBoxModelObject.cpp
r142760 r143046 883 883 bool useLowQualityScaling = shouldPaintAtLowQuality(context, image.get(), bgLayer, geometry.tileSize()); 884 884 context->drawTiledImage(image.get(), style()->colorSpace(), geometry.destRect(), geometry.relativePhase(), geometry.tileSize(), 885 compositeOp, useLowQualityScaling );885 compositeOp, useLowQualityScaling, bgLayer->blendMode()); 886 886 } 887 887 } -
trunk/Source/WebCore/svg/graphics/SVGImageForContainer.cpp
r142765 r143046 44 44 45 45 void SVGImageForContainer::drawPattern(GraphicsContext* context, const FloatRect& srcRect, const AffineTransform& patternTransform, 46 const FloatPoint& phase, ColorSpace colorSpace, CompositeOperator compositeOp, const FloatRect& dstRect )46 const FloatPoint& phase, ColorSpace colorSpace, CompositeOperator compositeOp, const FloatRect& dstRect, BlendMode) 47 47 { 48 48 m_image->drawPatternForContainer(context, m_containerSize, m_pageScale, m_zoom, srcRect, patternTransform, phase, colorSpace, compositeOp, dstRect); -
trunk/Source/WebCore/svg/graphics/SVGImageForContainer.h
r142765 r143046 58 58 virtual void draw(GraphicsContext*, const FloatRect&, const FloatRect&, ColorSpace, CompositeOperator, BlendMode) OVERRIDE; 59 59 60 virtual void drawPattern(GraphicsContext*, const FloatRect&, const AffineTransform&, const FloatPoint&, ColorSpace, CompositeOperator, const FloatRect& ) OVERRIDE;60 virtual void drawPattern(GraphicsContext*, const FloatRect&, const AffineTransform&, const FloatPoint&, ColorSpace, CompositeOperator, const FloatRect&, BlendMode) OVERRIDE; 61 61 62 62 // FIXME: Implement this to be less conservative. -
trunk/Source/WebKit/ChangeLog
r142954 r143046 1 2013-02-15 Rik Cabanier <cabanier@adobe.com> 2 3 Add platform support for -webkit-background-blend-mode to CG context 4 https://bugs.webkit.org/show_bug.cgi?id=108549 5 6 Reviewed by Dean Jackson. 7 8 Fixed build issue. 9 10 * WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in: 11 1 12 2013-02-14 Roger Fong <roger_fong@apple.com> 2 13 -
trunk/Source/WebKit/WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in
r142954 r143046 366 366 ?getHBITMAP@BitmapImage@WebCore@@UAE_NPAUHBITMAP__@@@Z 367 367 ?getHBITMAPOfSize@BitmapImage@WebCore@@UAE_NPAUHBITMAP__@@PAUtagSIZE@@@Z 368 ?drawPattern@Image@WebCore@@UAEXPAVGraphicsContext@2@ABVFloatRect@2@ABVAffineTransform@2@ABVFloatPoint@2@W4ColorSpace@2@W4CompositeOperator@2@1 @Z368 ?drawPattern@Image@WebCore@@UAEXPAVGraphicsContext@2@ABVFloatRect@2@ABVAffineTransform@2@ABVFloatPoint@2@W4ColorSpace@2@W4CompositeOperator@2@1W4BlendMode@2@@Z 369 369 ?reportMemoryUsage@BitmapImage@WebCore@@UBEXPAVMemoryObjectInfo@WTF@@@Z 370 370 ?drawFrameMatchingSourceSize@BitmapImage@WebCore@@MAEXPAVGraphicsContext@2@ABVFloatRect@2@ABVIntSize@2@W4ColorSpace@2@W4CompositeOperator@2@@Z -
trunk/Source/WebKit/win/ChangeLog
r142977 r143046 1 2013-02-15 Rik Cabanier <cabanier@adobe.com> 2 3 Add platform support for -webkit-background-blend-mode to CG context 4 https://bugs.webkit.org/show_bug.cgi?id=108549 5 6 Reviewed by Dean Jackson. 7 8 Fixed build issue. 9 10 * WebKit.vcproj/WebKitExports.def.in: 11 1 12 2013-02-15 Allan Sandfeld Jensen <allan.jensen@digia.com> 2 13 -
trunk/Source/WebKit/win/WebKit.vcproj/WebKitExports.def.in
r142977 r143046 366 366 ?getHBITMAP@BitmapImage@WebCore@@UAE_NPAUHBITMAP__@@@Z 367 367 ?getHBITMAPOfSize@BitmapImage@WebCore@@UAE_NPAUHBITMAP__@@PAUtagSIZE@@@Z 368 ?drawPattern@Image@WebCore@@UAEXPAVGraphicsContext@2@ABVFloatRect@2@ABVAffineTransform@2@ABVFloatPoint@2@W4ColorSpace@2@W4CompositeOperator@2@1 @Z368 ?drawPattern@Image@WebCore@@UAEXPAVGraphicsContext@2@ABVFloatRect@2@ABVAffineTransform@2@ABVFloatPoint@2@W4ColorSpace@2@W4CompositeOperator@2@1W4BlendMode@2@@Z 369 369 ?reportMemoryUsage@BitmapImage@WebCore@@UBEXPAVMemoryObjectInfo@WTF@@@Z 370 370 ?drawFrameMatchingSourceSize@BitmapImage@WebCore@@MAEXPAVGraphicsContext@2@ABVFloatRect@2@ABVIntSize@2@W4ColorSpace@2@W4CompositeOperator@2@@Z
Note: See TracChangeset
for help on using the changeset viewer.