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

Side by Side Diff: ui/views/painter.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 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "ui/views/painter.h" 5 #include "ui/views/painter.h"
6 6
7 #include "base/logging.h" 7 #include "base/logging.h"
8 #include "base/memory/scoped_ptr.h" 8 #include "base/memory/scoped_ptr.h"
9 #include "third_party/skia/include/effects/SkGradientShader.h" 9 #include "third_party/skia/include/effects/SkGradientShader.h"
10 #include "ui/base/resource/resource_bundle.h" 10 #include "ui/base/resource/resource_bundle.h"
(...skipping 30 matching lines...) Expand all
41 // Overridden from Painter: 41 // Overridden from Painter:
42 virtual void Paint(gfx::Canvas* canvas, const gfx::Size& size) OVERRIDE { 42 virtual void Paint(gfx::Canvas* canvas, const gfx::Size& size) OVERRIDE {
43 SkPaint paint; 43 SkPaint paint;
44 SkPoint p[2]; 44 SkPoint p[2];
45 p[0].iset(0, 0); 45 p[0].iset(0, 0);
46 if (horizontal_) 46 if (horizontal_)
47 p[1].iset(size.width(), 0); 47 p[1].iset(size.width(), 0);
48 else 48 else
49 p[1].iset(0, size.height()); 49 p[1].iset(0, size.height());
50 50
51 SkShader* s = SkGradientShader::CreateLinear(p, colors_.get(), pos_.get(), 51 skia::RefPtr<SkShader> s = SkGradientShader::CreateLinear(
52 count_, SkShader::kClamp_TileMode, NULL); 52 p, colors_.get(), pos_.get(), count_, SkShader::kClamp_TileMode, NULL);
53 paint.setStyle(SkPaint::kFill_Style); 53 paint.setStyle(SkPaint::kFill_Style);
54 paint.setShader(s); 54 paint.setShader(s.get());
55 // Need to unref shader, otherwise never deleted. 55 // Need to unref shader, otherwise never deleted.
56 s->unref();
57 56
58 canvas->sk_canvas()->drawRectCoords(SkIntToScalar(0), SkIntToScalar(0), 57 canvas->sk_canvas()->drawRectCoords(SkIntToScalar(0), SkIntToScalar(0),
59 SkIntToScalar(size.width()), 58 SkIntToScalar(size.width()),
60 SkIntToScalar(size.height()), paint); 59 SkIntToScalar(size.height()), paint);
61 } 60 }
62 61
63 private: 62 private:
64 // If |horizontal_| is true then the gradiant is painted horizontally. 63 // If |horizontal_| is true then the gradiant is painted horizontally.
65 bool horizontal_; 64 bool horizontal_;
66 // The gradient colors. 65 // The gradient colors.
(...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after
224 return; 223 return;
225 } 224 }
226 canvas->DrawImageInt(*images_[LEFT], 0, 0); 225 canvas->DrawImageInt(*images_[LEFT], 0, 0);
227 canvas->DrawImageInt(*images_[RIGHT], 226 canvas->DrawImageInt(*images_[RIGHT],
228 size.width() - images_[RIGHT]->width(), 0); 227 size.width() - images_[RIGHT]->width(), 0);
229 canvas->TileImageInt(*images_[CENTER], images_[LEFT]->width(), 0, 228 canvas->TileImageInt(*images_[CENTER], images_[LEFT]->width(), 0,
230 size.width() - images_[LEFT]->width() - images_[RIGHT]->width(), height_); 229 size.width() - images_[LEFT]->width() - images_[RIGHT]->width(), height_);
231 } 230 }
232 231
233 } // namespace views 232 } // namespace views
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698