Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(110)

Unified Diff: Source/platform/graphics/GradientGeneratedImage.cpp

Issue 1093673002: Removing the dependency on GraphicsContext for drawing images in 2D canvas (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 5 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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)

Powered by Google App Engine
This is Rietveld 408576698