Пример #1
0
void GradientGeneratedImage::drawTile(GraphicsContext& context,
                                      const FloatRect& srcRect) {
  SkPaint gradientPaint(context.fillPaint());
  m_gradient->applyToPaint(gradientPaint, SkMatrix::I());

  context.drawRect(srcRect, gradientPaint);
}
Пример #2
0
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);
}
Пример #3
0
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);
}
Пример #4
0
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);
}
Пример #5
0
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);
}