Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(30)

Unified Diff: ui/gfx/skia_util.cc

Issue 11418217: Add skia::RefPtr class to wrap ref counted classes from Skia. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Drop TNoRef Created 8 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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) {

Powered by Google App Engine
This is Rietveld 408576698