Modified: releases/WebKitGTK/webkit-2.10/Source/WebCore/ChangeLog (190934 => 190935)
--- releases/WebKitGTK/webkit-2.10/Source/WebCore/ChangeLog 2015-10-13 09:03:58 UTC (rev 190934)
+++ releases/WebKitGTK/webkit-2.10/Source/WebCore/ChangeLog 2015-10-13 09:14:30 UTC (rev 190935)
@@ -1,3 +1,20 @@
+2015-09-21 Tim Horton <[email protected]>
+
+ svg/custom/hidpi-masking-clipping.svg fails with accelerated drawing on
+ https://bugs.webkit.org/show_bug.cgi?id=149413
+ <rdar://problem/22787058>
+
+ Reviewed by Dean Jackson.
+
+ No new tests, this is covered by existing tests.
+
+ * rendering/svg/RenderSVGResourcePattern.cpp:
+ (WebCore::RenderSVGResourcePattern::buildPattern):
+ (WebCore::RenderSVGResourcePattern::applyResource):
+ (WebCore::RenderSVGResourcePattern::createTileImage):
+ * rendering/svg/RenderSVGResourcePattern.h:
+ Make pattern images respect the accelerated bit of the parent GraphicsContext.
+
2015-09-21 ChangSeok Oh <[email protected]>
[GTK] media controls does not show up when playing video finishes.
Modified: releases/WebKitGTK/webkit-2.10/Source/WebCore/rendering/svg/RenderSVGResourcePattern.cpp (190934 => 190935)
--- releases/WebKitGTK/webkit-2.10/Source/WebCore/rendering/svg/RenderSVGResourcePattern.cpp 2015-10-13 09:03:58 UTC (rev 190934)
+++ releases/WebKitGTK/webkit-2.10/Source/WebCore/rendering/svg/RenderSVGResourcePattern.cpp 2015-10-13 09:14:30 UTC (rev 190935)
@@ -54,7 +54,7 @@
markClientForInvalidation(client, markForInvalidation ? RepaintInvalidation : ParentOnlyInvalidation);
}
-PatternData* RenderSVGResourcePattern::buildPattern(RenderElement& renderer, unsigned short resourceMode)
+PatternData* RenderSVGResourcePattern::buildPattern(RenderElement& renderer, unsigned short resourceMode, GraphicsContext& context)
{
PatternData* currentData = m_patternMap.get(&renderer);
if (currentData && currentData->pattern)
@@ -94,7 +94,7 @@
static_cast<float>(m_attributes.patternTransform().yScale()));
// Build tile image.
- auto tileImage = createTileImage(m_attributes, tileBoundaries, absoluteTileBoundaries, tileImageTransform, clampedAbsoluteTileBoundaries);
+ auto tileImage = createTileImage(m_attributes, tileBoundaries, absoluteTileBoundaries, tileImageTransform, clampedAbsoluteTileBoundaries, context.isAcceleratedContext() ? Accelerated : Unaccelerated);
if (!tileImage)
return nullptr;
@@ -140,7 +140,7 @@
if (m_attributes.patternUnits() == SVGUnitTypes::SVG_UNIT_TYPE_OBJECTBOUNDINGBOX && objectBoundingBox.isEmpty())
return false;
- PatternData* patternData = buildPattern(renderer, resourceMode);
+ PatternData* patternData = buildPattern(renderer, resourceMode, *context);
if (!patternData)
return false;
@@ -230,10 +230,10 @@
return true;
}
-std::unique_ptr<ImageBuffer> RenderSVGResourcePattern::createTileImage(const PatternAttributes& attributes, const FloatRect& tileBoundaries, const FloatRect& absoluteTileBoundaries, const AffineTransform& tileImageTransform, FloatRect& clampedAbsoluteTileBoundaries) const
+std::unique_ptr<ImageBuffer> RenderSVGResourcePattern::createTileImage(const PatternAttributes& attributes, const FloatRect& tileBoundaries, const FloatRect& absoluteTileBoundaries, const AffineTransform& tileImageTransform, FloatRect& clampedAbsoluteTileBoundaries, RenderingMode renderingMode) const
{
clampedAbsoluteTileBoundaries = ImageBuffer::clampedRect(absoluteTileBoundaries);
- auto tileImage = SVGRenderingContext::createImageBuffer(absoluteTileBoundaries, clampedAbsoluteTileBoundaries, ColorSpaceDeviceRGB, Unaccelerated);
+ auto tileImage = SVGRenderingContext::createImageBuffer(absoluteTileBoundaries, clampedAbsoluteTileBoundaries, ColorSpaceDeviceRGB, renderingMode);
if (!tileImage)
return nullptr;
Modified: releases/WebKitGTK/webkit-2.10/Source/WebCore/rendering/svg/RenderSVGResourcePattern.h (190934 => 190935)
--- releases/WebKitGTK/webkit-2.10/Source/WebCore/rendering/svg/RenderSVGResourcePattern.h 2015-10-13 09:03:58 UTC (rev 190934)
+++ releases/WebKitGTK/webkit-2.10/Source/WebCore/rendering/svg/RenderSVGResourcePattern.h 2015-10-13 09:14:30 UTC (rev 190935)
@@ -59,9 +59,9 @@
bool buildTileImageTransform(RenderElement&, const PatternAttributes&, const SVGPatternElement&, FloatRect& patternBoundaries, AffineTransform& tileImageTransform) const;
- std::unique_ptr<ImageBuffer> createTileImage(const PatternAttributes&, const FloatRect& tileBoundaries, const FloatRect& absoluteTileBoundaries, const AffineTransform& tileImageTransform, FloatRect& clampedAbsoluteTileBoundaries) const;
+ std::unique_ptr<ImageBuffer> createTileImage(const PatternAttributes&, const FloatRect& tileBoundaries, const FloatRect& absoluteTileBoundaries, const AffineTransform& tileImageTransform, FloatRect& clampedAbsoluteTileBoundaries, RenderingMode) const;
- PatternData* buildPattern(RenderElement&, unsigned short resourceMode);
+ PatternData* buildPattern(RenderElement&, unsigned short resourceMode, GraphicsContext&);
bool m_shouldCollectPatternAttributes : 1;
PatternAttributes m_attributes;