Index: src/core/SkBitmapProcShader.cpp |
diff --git a/src/core/SkBitmapProcShader.cpp b/src/core/SkBitmapProcShader.cpp |
index 5f5eb1866e4282ba2a6e6b12237d5ea5a13deb08..dd695180f8726adaf21d93782d618d5c431ab15f 100644 |
--- a/src/core/SkBitmapProcShader.cpp |
+++ b/src/core/SkBitmapProcShader.cpp |
@@ -31,8 +31,9 @@ bool SkBitmapProcShader::CanDo(const SkBitmap& bm, TileMode tx, TileMode ty) { |
return false; |
} |
-SkBitmapProcShader::SkBitmapProcShader(const SkBitmap& src, |
- TileMode tmx, TileMode tmy) { |
+SkBitmapProcShader::SkBitmapProcShader(const SkBitmap& src, TileMode tmx, TileMode tmy, |
+ const SkMatrix* localMatrix) |
+ : INHERITED(localMatrix) { |
fRawBitmap = src; |
fTileModeX = (uint8_t)tmx; |
fTileModeY = (uint8_t)tmy; |
@@ -347,7 +348,7 @@ static bool bitmapIsTooBig(const SkBitmap& bm) { |
} |
SkShader* CreateBitmapShader(const SkBitmap& src, SkShader::TileMode tmx, |
- SkShader::TileMode tmy, SkTBlitterAllocator* allocator) { |
+ SkShader::TileMode tmy, const SkMatrix* localMatrix, SkTBlitterAllocator* allocator) { |
SkShader* shader; |
SkColor color; |
if (src.isNull() || bitmapIsTooBig(src)) { |
@@ -359,15 +360,15 @@ SkShader* CreateBitmapShader(const SkBitmap& src, SkShader::TileMode tmx, |
} |
else if (canUseColorShader(src, &color)) { |
if (NULL == allocator) { |
- shader = SkNEW_ARGS(SkColorShader, (color)); |
+ shader = SkNEW_ARGS(SkColorShader, (color, localMatrix)); |
} else { |
- shader = allocator->createT<SkColorShader>(color); |
+ shader = allocator->createT<SkColorShader>(color, localMatrix); |
} |
} else { |
if (NULL == allocator) { |
- shader = SkNEW_ARGS(SkBitmapProcShader, (src, tmx, tmy)); |
+ shader = SkNEW_ARGS(SkBitmapProcShader, (src, tmx, tmy, localMatrix)); |
} else { |
- shader = allocator->createT<SkBitmapProcShader>(src, tmx, tmy); |
+ shader = allocator->createT<SkBitmapProcShader>(src, tmx, tmy, localMatrix); |
} |
} |
return shader; |