| Index: Source/core/rendering/svg/RenderSVGResourcePaintServer.cpp
|
| diff --git a/Source/core/rendering/svg/RenderSVGResourcePaintServer.cpp b/Source/core/rendering/svg/RenderSVGResourcePaintServer.cpp
|
| index 34319d3fa639c94cb4ca1c74fce29d87e7301357..e2a267162235416b34330844e05d0576c240186a 100644
|
| --- a/Source/core/rendering/svg/RenderSVGResourcePaintServer.cpp
|
| +++ b/Source/core/rendering/svg/RenderSVGResourcePaintServer.cpp
|
| @@ -48,26 +48,27 @@ SVGPaintServer::SVGPaintServer(PassRefPtr<Pattern> pattern)
|
| {
|
| }
|
|
|
| -void SVGPaintServer::apply(GraphicsContext& context, RenderSVGResourceMode resourceMode, GraphicsContextStateSaver* stateSaver)
|
| +void SVGPaintServer::apply(GraphicsContext& context, RenderSVGResourceMode resourceMode, float paintAlpha, GraphicsContextStateSaver& stateSaver)
|
| {
|
| ASSERT(resourceMode == ApplyToFillMode || resourceMode == ApplyToStrokeMode);
|
| - if (stateSaver && (m_gradient || m_pattern))
|
| - stateSaver->saveIfNeeded();
|
| +
|
| + if (m_gradient || m_pattern)
|
| + stateSaver.saveIfNeeded();
|
|
|
| if (resourceMode == ApplyToFillMode) {
|
| if (m_pattern)
|
| - context.setFillPattern(m_pattern);
|
| + context.setFillPattern(m_pattern, paintAlpha);
|
| else if (m_gradient)
|
| - context.setFillGradient(m_gradient);
|
| + context.setFillGradient(m_gradient, paintAlpha);
|
| else
|
| - context.setFillColor(m_color);
|
| + context.setFillColor(multiplyAlpha(m_color.rgb(), paintAlpha));
|
| } else {
|
| if (m_pattern)
|
| - context.setStrokePattern(m_pattern);
|
| + context.setStrokePattern(m_pattern, paintAlpha);
|
| else if (m_gradient)
|
| - context.setStrokeGradient(m_gradient);
|
| + context.setStrokeGradient(m_gradient, paintAlpha);
|
| else
|
| - context.setStrokeColor(m_color);
|
| + context.setStrokeColor(multiplyAlpha(m_color.rgb(), paintAlpha));
|
| }
|
| }
|
|
|
|
|