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

Unified Diff: ui/gfx/canvas.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/canvas.cc
diff --git a/ui/gfx/canvas.cc b/ui/gfx/canvas.cc
index 831f4fc4bf47e9e23a22de519336c43beb1871f7..31934f493f7ba166f9af3142d8d101a08d51f07d 100644
--- a/ui/gfx/canvas.cc
+++ b/ui/gfx/canvas.cc
@@ -140,14 +140,13 @@ void Canvas::DrawDashedRect(const gfx::Rect& rect, SkColor color) {
// Make a shader for the bitmap with an origin of the box we'll draw. This
// shader is refcounted and will have an initial refcount of 1.
- SkShader* shader = SkShader::CreateBitmapShader(
+ skia::RefPtr<SkShader> shader = SkShader::CreateBitmapShader(
*dots, SkShader::kRepeat_TileMode, SkShader::kRepeat_TileMode);
// Assign the shader to the paint & release our reference. The paint will
// now own the shader and the shader will be destroyed when the paint goes
// out of scope.
SkPaint paint;
- paint.setShader(shader);
- shader->unref();
+ paint.setShader(shader.get());
DrawRect(gfx::Rect(rect.x(), rect.y(), rect.width(), 1), paint);
DrawRect(gfx::Rect(rect.x(), rect.y() + rect.height() - 1, rect.width(), 1),
@@ -373,16 +372,16 @@ void Canvas::DrawImageInt(const gfx::ImageSkia& image,
shader_scale.preTranslate(SkIntToScalar(-src_x), SkIntToScalar(-src_y));
shader_scale.postTranslate(SkIntToScalar(dest_x), SkIntToScalar(dest_y));
- SkShader* shader = gfx::CreateImageRepShader(image_rep,
- SkShader::kRepeat_TileMode,
- shader_scale);
+ skia::RefPtr<SkShader> shader = gfx::CreateImageRepShader(
+ image_rep,
+ SkShader::kRepeat_TileMode,
+ shader_scale);
// Set up our paint to use the shader & release our reference (now just owned
// by the paint).
SkPaint p(paint);
p.setFilterBitmap(filter);
- p.setShader(shader);
- shader->unref();
+ p.setShader(shader.get());
// The rect will be filled by the bitmap.
canvas_->drawRect(dest_rect, p);
@@ -399,12 +398,13 @@ void Canvas::DrawImageInPath(const gfx::ImageSkia& image,
SkMatrix matrix;
matrix.setTranslate(SkIntToScalar(x), SkIntToScalar(y));
- SkShader* shader = gfx::CreateImageRepShader(image_rep,
- SkShader::kRepeat_TileMode, matrix);
+ skia::RefPtr<SkShader> shader = gfx::CreateImageRepShader(
+ image_rep,
+ SkShader::kRepeat_TileMode,
+ matrix);
SkPaint p(paint);
- p.setShader(shader);
- shader->unref();
+ p.setShader(shader.get());
canvas_->drawPath(path, p);
}
@@ -465,14 +465,14 @@ void Canvas::TileImageInt(const gfx::ImageSkia& image,
shader_scale.preTranslate(SkIntToScalar(-src_x), SkIntToScalar(-src_y));
shader_scale.postTranslate(SkIntToScalar(dest_x), SkIntToScalar(dest_y));
- SkShader* shader = gfx::CreateImageRepShader(image_rep,
- SkShader::kRepeat_TileMode,
- shader_scale);
+ skia::RefPtr<SkShader> shader = gfx::CreateImageRepShader(
+ image_rep,
+ SkShader::kRepeat_TileMode,
+ shader_scale);
SkPaint paint;
- paint.setShader(shader);
+ paint.setShader(shader.get());
paint.setXfermodeMode(SkXfermode::kSrcOver_Mode);
- shader->unref();
SkRect dest_rect = { SkIntToScalar(dest_x),
SkIntToScalar(dest_y),
« skia/ext/refptr_unittest.cc ('K') | « skia/skia.gyp ('k') | ui/gfx/canvas_mac.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698