Index: ui/gfx/skia_util.cc |
diff --git a/ui/gfx/skia_util.cc b/ui/gfx/skia_util.cc |
index caa35e78c408046eca3effeed56276db17cfd341..9158635adde9da6672891d1d80c39e6c80cb7467 100644 |
--- a/ui/gfx/skia_util.cc |
+++ b/ui/gfx/skia_util.cc |
@@ -47,11 +47,11 @@ RectF SkRectToRectF(const SkRect& rect) { |
} |
-SkShader* CreateImageRepShader(const gfx::ImageSkiaRep& image_rep, |
- SkShader::TileMode tile_mode, |
- const SkMatrix& local_matrix) { |
- SkShader* shader = SkShader::CreateBitmapShader(image_rep.sk_bitmap(), |
- tile_mode, tile_mode); |
+skia::RefPtr<SkShader> CreateImageRepShader(const gfx::ImageSkiaRep& image_rep, |
+ SkShader::TileMode tile_mode, |
+ const SkMatrix& local_matrix) { |
+ skia::RefPtr<SkShader> shader = SkShader::CreateBitmapShader( |
+ image_rep.sk_bitmap(), tile_mode, tile_mode); |
SkScalar scale_x = local_matrix.getScaleX(); |
SkScalar scale_y = local_matrix.getScaleY(); |
SkScalar bitmap_scale = SkFloatToScalar(image_rep.GetScale()); |
@@ -72,24 +72,25 @@ SkShader* CreateImageRepShader(const gfx::ImageSkiaRep& image_rep, |
return shader; |
} |
-SkShader* CreateGradientShader(int start_point, |
- int end_point, |
- SkColor start_color, |
- SkColor end_color) { |
+skia::RefPtr<SkShader> CreateGradientShader(int start_point, |
+ int end_point, |
+ SkColor start_color, |
+ SkColor end_color) { |
SkColor grad_colors[2] = { start_color, end_color}; |
SkPoint grad_points[2]; |
grad_points[0].iset(0, start_point); |
grad_points[1].iset(0, end_point); |
- return SkGradientShader::CreateLinear( |
- grad_points, grad_colors, NULL, 2, SkShader::kRepeat_TileMode); |
+ return skia::RefPtr<SkShader>(SkGradientShader::CreateLinear( |
+ grad_points, grad_colors, NULL, 2, SkShader::kRepeat_TileMode)); |
} |
-SkDrawLooper* CreateShadowDrawLooper(const std::vector<ShadowValue>& shadows) { |
+skia::RefPtr<SkDrawLooper> CreateShadowDrawLooper( |
+ const std::vector<ShadowValue>& shadows) { |
if (shadows.empty()) |
return NULL; |
- SkLayerDrawLooper* looper = new SkLayerDrawLooper; |
+ skia::RefPtr<SkLayerDrawLooper> looper = new SkLayerDrawLooper; |
looper->addLayer(); // top layer of the original. |
@@ -106,20 +107,20 @@ SkDrawLooper* CreateShadowDrawLooper(const std::vector<ShadowValue>& shadows) { |
// SkBlurMaskFilter's blur radius defines the range to extend the blur from |
// original mask, which is half of blur amount as defined in ShadowValue. |
- SkMaskFilter* blur_mask = SkBlurMaskFilter::Create( |
+ skia::RefPtr<SkMaskFilter> blur_mask = SkBlurMaskFilter::Create( |
SkDoubleToScalar(shadow.blur() / 2), |
SkBlurMaskFilter::kNormal_BlurStyle, |
SkBlurMaskFilter::kHighQuality_BlurFlag); |
- SkColorFilter* color_filter = SkColorFilter::CreateModeFilter( |
+ skia::RefPtr<SkColorFilter> color_filter = SkColorFilter::CreateModeFilter( |
shadow.color(), |
SkXfermode::kSrcIn_Mode); |
SkPaint* paint = looper->addLayer(layer_info); |
- SkSafeUnref(paint->setMaskFilter(blur_mask)); |
- SkSafeUnref(paint->setColorFilter(color_filter)); |
+ paint->setMaskFilter(blur_mask.get()); |
+ paint->setColorFilter(color_filter.get()); |
} |
- return looper; |
+ return looper.PassAs<SkDrawLooper>(); |
} |
bool BitmapsAreEqual(const SkBitmap& bitmap1, const SkBitmap& bitmap2) { |