void GradientGeneratedImage::drawTile(GraphicsContext& context, const FloatRect& srcRect) { SkPaint gradientPaint(context.fillPaint()); m_gradient->applyToPaint(gradientPaint, SkMatrix::I()); context.drawRect(srcRect, gradientPaint); }
void GradientGeneratedImage::drawTile(GraphicsContext& context, const FloatRect& srcRect) { // TODO(ccameron): This function should not ignore |context|'s color behavior. // https://crbug.com/672306 SkPaint gradientPaint(context.fillPaint()); m_gradient->applyToPaint(gradientPaint, SkMatrix::I()); context.drawRect(srcRect, gradientPaint); }
void GradientGeneratedImage::draw(SkCanvas* canvas, const SkPaint& paint, const FloatRect& destRect, const FloatRect& srcRect, RespectImageOrientationEnum, ImageClampingMode) { SkAutoCanvasRestore ar(canvas, true); canvas->clipRect(destRect); canvas->translate(destRect.x(), destRect.y()); if (destRect.size() != srcRect.size()) 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); }
void GradientGeneratedImage::draw(SkCanvas* canvas, const SkPaint& paint, const FloatRect& destRect, const FloatRect& srcRect, RespectImageOrientationEnum, ImageClampingMode) { SkRect visibleSrcRect = srcRect; if (!visibleSrcRect.intersect( SkRect::MakeIWH(m_size.width(), m_size.height()))) return; const SkMatrix transform = SkMatrix::MakeRectToRect(srcRect, destRect, SkMatrix::kFill_ScaleToFit); SkRect visibleDestRect; transform.mapRect(&visibleDestRect, visibleSrcRect); SkPaint gradientPaint(paint); m_gradient->applyToPaint(gradientPaint, transform); canvas->drawRect(visibleDestRect, gradientPaint); }
void GradientGeneratedImage::draw(SkCanvas* canvas, const SkPaint& paint, const FloatRect& destRect, const FloatRect& srcRect, RespectImageOrientationEnum, ImageClampingMode, const ColorBehavior& colorBehavior) { // TODO(ccameron): This function should not ignore |colorBehavior|. // https://crbug.com/672306 SkRect visibleSrcRect = srcRect; if (!visibleSrcRect.intersect( SkRect::MakeIWH(m_size.width(), m_size.height()))) return; const SkMatrix transform = SkMatrix::MakeRectToRect(srcRect, destRect, SkMatrix::kFill_ScaleToFit); SkRect visibleDestRect; transform.mapRect(&visibleDestRect, visibleSrcRect); SkPaint gradientPaint(paint); m_gradient->applyToPaint(gradientPaint, transform); canvas->drawRect(visibleDestRect, gradientPaint); }