Index: Source/platform/graphics/GradientGeneratedImage.cpp |
diff --git a/Source/platform/graphics/GradientGeneratedImage.cpp b/Source/platform/graphics/GradientGeneratedImage.cpp |
index 645664f142a8d70c84d758c594b21be1ac9beabf..42cdfd3fc15767c3a418c12d69926901ca49aacb 100644 |
--- a/Source/platform/graphics/GradientGeneratedImage.cpp |
+++ b/Source/platform/graphics/GradientGeneratedImage.cpp |
@@ -31,16 +31,18 @@ |
namespace blink { |
-void GradientGeneratedImage::draw(GraphicsContext* destContext, const FloatRect& destRect, const FloatRect& srcRect, SkXfermode::Mode compositeOp, RespectImageOrientationEnum) |
+void GradientGeneratedImage::draw(SkCanvas* canvas, const SkPaint& paint, const FloatRect& destRect, const FloatRect& srcRect, RespectImageOrientationEnum) |
{ |
- GraphicsContextStateSaver stateSaver(*destContext); |
- destContext->clip(destRect); |
- destContext->translate(destRect.x(), destRect.y()); |
+ canvas->save(); |
+ canvas->clipRect(destRect); |
+ canvas->translate(destRect.x(), destRect.y()); |
if (destRect.size() != srcRect.size()) |
- destContext->scale(destRect.width() / srcRect.width(), destRect.height() / srcRect.height()); |
- destContext->translate(-srcRect.x(), -srcRect.y()); |
- destContext->setFillGradient(m_gradient); |
- destContext->fillRect(FloatRect(FloatPoint(), m_size), destContext->fillColor(), compositeOp); |
+ canvas->scale(destRect.width() / srcRect.width(), destRect.height() / srcRect.height()); |
+ canvas->translate(-srcRect.x(), -srcRect.y()); |
+ SkPaint gradientPaint(paint); |
+ gradientPaint.setShader(m_gradient->shader()); |
+ canvas->drawRect(SkRect::MakeWH(m_size.width(), m_size.height()), gradientPaint); |
+ canvas->restore(); |
} |
void GradientGeneratedImage::drawTile(GraphicsContext* context, const FloatRect& srcRect) |