| Index: third_party/WebKit/Source/platform/graphics/ImagePattern.cpp
|
| diff --git a/third_party/WebKit/Source/platform/graphics/ImagePattern.cpp b/third_party/WebKit/Source/platform/graphics/ImagePattern.cpp
|
| index 5e108265c50fb8b64586e9ccb0af093213b203d7..21c2963f1566646bd2a8253c85f2ef760e9e98a1 100644
|
| --- a/third_party/WebKit/Source/platform/graphics/ImagePattern.cpp
|
| +++ b/third_party/WebKit/Source/platform/graphics/ImagePattern.cpp
|
| @@ -6,6 +6,7 @@
|
|
|
| #include "platform/graphics/Image.h"
|
| #include "platform/graphics/skia/SkiaUtils.h"
|
| +#include "skia/ext/cdl_shader.h"
|
| #include "third_party/skia/include/core/SkCanvas.h"
|
| #include "third_party/skia/include/core/SkImage.h"
|
| #include "third_party/skia/include/core/SkShader.h"
|
| @@ -37,14 +38,14 @@ bool ImagePattern::isLocalMatrixChanged(const SkMatrix& localMatrix) const {
|
| return localMatrix != m_previousLocalMatrix;
|
| }
|
|
|
| -sk_sp<SkShader> ImagePattern::createShader(const SkMatrix& localMatrix) {
|
| +sk_sp<CdlShader> ImagePattern::createShader(const SkMatrix& localMatrix) {
|
| if (!m_tileImage)
|
| - return SkShader::MakeColorShader(SK_ColorTRANSPARENT);
|
| + return WrapSkShader(SkShader::MakeColorShader(SK_ColorTRANSPARENT));
|
|
|
| if (isRepeatXY()) {
|
| // Fast path: for repeatXY we just return a shader from the original image.
|
| - return m_tileImage->makeShader(SkShader::kRepeat_TileMode,
|
| - SkShader::kRepeat_TileMode, &localMatrix);
|
| + return MakeCdlImageShader(m_tileImage, SkShader::kRepeat_TileMode,
|
| + SkShader::kRepeat_TileMode, &localMatrix);
|
| }
|
|
|
| // Skia does not have a "draw the tile only once" option. Clamp_TileMode
|
| @@ -66,7 +67,7 @@ sk_sp<SkShader> ImagePattern::createShader(const SkMatrix& localMatrix) {
|
| SkSurface::MakeRasterN32Premul(m_tileImage->width() + 2 * borderPixelX,
|
| m_tileImage->height() + 2 * borderPixelY);
|
| if (!surface)
|
| - return SkShader::MakeColorShader(SK_ColorTRANSPARENT);
|
| + return WrapSkShader(SkShader::MakeColorShader(SK_ColorTRANSPARENT));
|
|
|
| SkPaint paint;
|
| paint.setBlendMode(SkBlendMode::kSrc);
|
| @@ -77,8 +78,8 @@ sk_sp<SkShader> ImagePattern::createShader(const SkMatrix& localMatrix) {
|
| SkMatrix adjustedMatrix(localMatrix);
|
| adjustedMatrix.postTranslate(-borderPixelX, -borderPixelY);
|
|
|
| - return surface->makeImageSnapshot()->makeShader(tileModeX, tileModeY,
|
| - &adjustedMatrix);
|
| + return MakeCdlImageShader(surface->makeImageSnapshot(), tileModeX, tileModeY,
|
| + &adjustedMatrix);
|
| }
|
|
|
| bool ImagePattern::isTextureBacked() const {
|
|
|