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

Side by Side Diff: ui/gfx/canvas_direct2d.cc

Issue 6825055: Include base/win/scoped_comptr.h instead of base/scoped_comptr_win.h. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: revert bad indentation, rebase Created 9 years, 8 months 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
« no previous file with comments | « ui/gfx/canvas_direct2d.h ('k') | ui/gfx/canvas_direct2d_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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/gfx/canvas_direct2d.h" 5 #include "ui/gfx/canvas_direct2d.h"
6 6
7 #include "base/memory/scoped_ptr.h" 7 #include "base/memory/scoped_ptr.h"
8 #include "ui/gfx/brush.h" 8 #include "ui/gfx/brush.h"
9 #include "ui/gfx/rect.h" 9 #include "ui/gfx/rect.h"
10 10
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
56 bitmap.unlockPixels(); 56 bitmap.unlockPixels();
57 return d2d1_bitmap; 57 return d2d1_bitmap;
58 } 58 }
59 59
60 // Creates a Direct2D bitmap brush from the contents of a SkBitmap. The caller 60 // Creates a Direct2D bitmap brush from the contents of a SkBitmap. The caller
61 // is responsible for releasing this object. 61 // is responsible for releasing this object.
62 ID2D1Brush* CreateD2D1BrushFromSkBitmap(ID2D1RenderTarget* render_target, 62 ID2D1Brush* CreateD2D1BrushFromSkBitmap(ID2D1RenderTarget* render_target,
63 const SkBitmap& bitmap, 63 const SkBitmap& bitmap,
64 D2D1_EXTEND_MODE extend_mode_x, 64 D2D1_EXTEND_MODE extend_mode_x,
65 D2D1_EXTEND_MODE extend_mode_y) { 65 D2D1_EXTEND_MODE extend_mode_y) {
66 ScopedComPtr<ID2D1Bitmap> d2d1_bitmap( 66 base::win::ScopedComPtr<ID2D1Bitmap> d2d1_bitmap(
67 CreateD2D1BitmapFromSkBitmap(render_target, bitmap)); 67 CreateD2D1BitmapFromSkBitmap(render_target, bitmap));
68 68
69 ID2D1BitmapBrush* brush = NULL; 69 ID2D1BitmapBrush* brush = NULL;
70 render_target->CreateBitmapBrush( 70 render_target->CreateBitmapBrush(
71 d2d1_bitmap, 71 d2d1_bitmap,
72 D2D1::BitmapBrushProperties(extend_mode_x, extend_mode_y), 72 D2D1::BitmapBrushProperties(extend_mode_x, extend_mode_y),
73 D2D1::BrushProperties(), 73 D2D1::BrushProperties(),
74 &brush); 74 &brush);
75 return brush; 75 return brush;
76 } 76 }
77 77
78 // A platform wrapper for a Direct2D brush that makes sure the underlying 78 // A platform wrapper for a Direct2D brush that makes sure the underlying
79 // ID2D1Brush COM object is released when this object is destroyed. 79 // ID2D1Brush COM object is released when this object is destroyed.
80 class Direct2DBrush : public gfx::Brush { 80 class Direct2DBrush : public gfx::Brush {
81 public: 81 public:
82 explicit Direct2DBrush(ID2D1Brush* brush) : brush_(brush) { 82 explicit Direct2DBrush(ID2D1Brush* brush) : brush_(brush) {
83 } 83 }
84 84
85 ID2D1Brush* brush() const { return brush_.get(); } 85 ID2D1Brush* brush() const { return brush_.get(); }
86 86
87 private: 87 private:
88 ScopedComPtr<ID2D1Brush> brush_; 88 base::win::ScopedComPtr<ID2D1Brush> brush_;
89 89
90 DISALLOW_COPY_AND_ASSIGN(Direct2DBrush); 90 DISALLOW_COPY_AND_ASSIGN(Direct2DBrush);
91 }; 91 };
92 92
93 93
94 } // namespace 94 } // namespace
95 95
96 namespace gfx { 96 namespace gfx {
97 97
98 // static 98 // static
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after
197 rt_->GetTransform(&raw); 197 rt_->GetTransform(&raw);
198 D2D1::Matrix3x2F transform(raw._11, raw._12, raw._21, raw._22, raw._31, 198 D2D1::Matrix3x2F transform(raw._11, raw._12, raw._21, raw._22, raw._31,
199 raw._32); 199 raw._32);
200 transform = D2D1::Matrix3x2F::Scale(static_cast<float>(x), 200 transform = D2D1::Matrix3x2F::Scale(static_cast<float>(x),
201 static_cast<float>(y)) * transform; 201 static_cast<float>(y)) * transform;
202 rt_->SetTransform(transform); 202 rt_->SetTransform(transform);
203 } 203 }
204 204
205 void CanvasDirect2D::FillRectInt(const SkColor& color, 205 void CanvasDirect2D::FillRectInt(const SkColor& color,
206 int x, int y, int w, int h) { 206 int x, int y, int w, int h) {
207 ScopedComPtr<ID2D1SolidColorBrush> solid_brush; 207 base::win::ScopedComPtr<ID2D1SolidColorBrush> solid_brush;
208 rt_->CreateSolidColorBrush(SkColorToColorF(color), solid_brush.Receive()); 208 rt_->CreateSolidColorBrush(SkColorToColorF(color), solid_brush.Receive());
209 rt_->FillRectangle(RectToRectF(x, y, w, h), solid_brush); 209 rt_->FillRectangle(RectToRectF(x, y, w, h), solid_brush);
210 } 210 }
211 211
212 void CanvasDirect2D::FillRectInt(const SkColor& color, 212 void CanvasDirect2D::FillRectInt(const SkColor& color,
213 int x, int y, int w, int h, 213 int x, int y, int w, int h,
214 SkXfermode::Mode mode) { 214 SkXfermode::Mode mode) {
215 NOTIMPLEMENTED(); 215 NOTIMPLEMENTED();
216 } 216 }
217 217
218 void CanvasDirect2D::FillRectInt(const gfx::Brush* brush, 218 void CanvasDirect2D::FillRectInt(const gfx::Brush* brush,
219 int x, int y, int w, int h) { 219 int x, int y, int w, int h) {
220 const Direct2DBrush* d2d_brush = static_cast<const Direct2DBrush*>(brush); 220 const Direct2DBrush* d2d_brush = static_cast<const Direct2DBrush*>(brush);
221 rt_->FillRectangle(RectToRectF(x, y, w, h), d2d_brush->brush()); 221 rt_->FillRectangle(RectToRectF(x, y, w, h), d2d_brush->brush());
222 } 222 }
223 223
224 void CanvasDirect2D::DrawRectInt(const SkColor& color, 224 void CanvasDirect2D::DrawRectInt(const SkColor& color,
225 int x, int y, int w, int h) { 225 int x, int y, int w, int h) {
226 ScopedComPtr<ID2D1SolidColorBrush> solid_brush; 226 base::win::ScopedComPtr<ID2D1SolidColorBrush> solid_brush;
227 rt_->CreateSolidColorBrush(SkColorToColorF(color), solid_brush.Receive()); 227 rt_->CreateSolidColorBrush(SkColorToColorF(color), solid_brush.Receive());
228 rt_->DrawRectangle(RectToRectF(x, y, w, h), solid_brush); 228 rt_->DrawRectangle(RectToRectF(x, y, w, h), solid_brush);
229 } 229 }
230 230
231 void CanvasDirect2D::DrawRectInt(const SkColor& color, 231 void CanvasDirect2D::DrawRectInt(const SkColor& color,
232 int x, int y, int w, int h, 232 int x, int y, int w, int h,
233 SkXfermode::Mode mode) { 233 SkXfermode::Mode mode) {
234 NOTIMPLEMENTED(); 234 NOTIMPLEMENTED();
235 } 235 }
236 236
237 void CanvasDirect2D::DrawRectInt(int x, int y, int w, int h, 237 void CanvasDirect2D::DrawRectInt(int x, int y, int w, int h,
238 const SkPaint& paint) { 238 const SkPaint& paint) {
239 NOTIMPLEMENTED(); 239 NOTIMPLEMENTED();
240 } 240 }
241 241
242 void CanvasDirect2D::DrawLineInt(const SkColor& color, 242 void CanvasDirect2D::DrawLineInt(const SkColor& color,
243 int x1, int y1, 243 int x1, int y1,
244 int x2, int y2) { 244 int x2, int y2) {
245 ScopedComPtr<ID2D1SolidColorBrush> solid_brush; 245 base::win::ScopedComPtr<ID2D1SolidColorBrush> solid_brush;
246 rt_->CreateSolidColorBrush(SkColorToColorF(color), solid_brush.Receive()); 246 rt_->CreateSolidColorBrush(SkColorToColorF(color), solid_brush.Receive());
247 rt_->DrawLine(PointToPoint2F(x1, y1), PointToPoint2F(x2, y2), solid_brush); 247 rt_->DrawLine(PointToPoint2F(x1, y1), PointToPoint2F(x2, y2), solid_brush);
248 } 248 }
249 249
250 void CanvasDirect2D::DrawBitmapInt(const SkBitmap& bitmap, int x, int y) { 250 void CanvasDirect2D::DrawBitmapInt(const SkBitmap& bitmap, int x, int y) {
251 ScopedComPtr<ID2D1Bitmap> d2d1_bitmap( 251 base::win::ScopedComPtr<ID2D1Bitmap> d2d1_bitmap(
252 CreateD2D1BitmapFromSkBitmap(rt_, bitmap)); 252 CreateD2D1BitmapFromSkBitmap(rt_, bitmap));
253 rt_->DrawBitmap(d2d1_bitmap, 253 rt_->DrawBitmap(d2d1_bitmap,
254 RectToRectF(x, y, bitmap.width(), bitmap.height()), 254 RectToRectF(x, y, bitmap.width(), bitmap.height()),
255 1.0f, 255 1.0f,
256 D2D1_BITMAP_INTERPOLATION_MODE_NEAREST_NEIGHBOR, 256 D2D1_BITMAP_INTERPOLATION_MODE_NEAREST_NEIGHBOR,
257 RectToRectF(0, 0, bitmap.width(), bitmap.height())); 257 RectToRectF(0, 0, bitmap.width(), bitmap.height()));
258 } 258 }
259 259
260 void CanvasDirect2D::DrawBitmapInt(const SkBitmap& bitmap, 260 void CanvasDirect2D::DrawBitmapInt(const SkBitmap& bitmap,
261 int x, int y, 261 int x, int y,
262 const SkPaint& paint) { 262 const SkPaint& paint) {
263 NOTIMPLEMENTED(); 263 NOTIMPLEMENTED();
264 } 264 }
265 265
266 void CanvasDirect2D::DrawBitmapInt(const SkBitmap& bitmap, 266 void CanvasDirect2D::DrawBitmapInt(const SkBitmap& bitmap,
267 int src_x, int src_y, int src_w, int src_h, 267 int src_x, int src_y, int src_w, int src_h,
268 int dest_x, int dest_y, 268 int dest_x, int dest_y,
269 int dest_w, int dest_h, 269 int dest_w, int dest_h,
270 bool filter) { 270 bool filter) {
271 ScopedComPtr<ID2D1Bitmap> d2d1_bitmap( 271 base::win::ScopedComPtr<ID2D1Bitmap> d2d1_bitmap(
272 CreateD2D1BitmapFromSkBitmap(rt_, bitmap)); 272 CreateD2D1BitmapFromSkBitmap(rt_, bitmap));
273 rt_->DrawBitmap(d2d1_bitmap, 273 rt_->DrawBitmap(d2d1_bitmap,
274 RectToRectF(dest_x, dest_y, dest_w, dest_h), 274 RectToRectF(dest_x, dest_y, dest_w, dest_h),
275 1.0f, 275 1.0f,
276 FilterToInterpolationMode(filter), 276 FilterToInterpolationMode(filter),
277 RectToRectF(src_x, src_y, src_w, src_h)); 277 RectToRectF(src_x, src_y, src_w, src_h));
278 } 278 }
279 279
280 void CanvasDirect2D::DrawBitmapInt(const SkBitmap& bitmap, 280 void CanvasDirect2D::DrawBitmapInt(const SkBitmap& bitmap,
281 int src_x, int src_y, int src_w, int src_h, 281 int src_x, int src_y, int src_w, int src_h,
(...skipping 25 matching lines...) Expand all
307 int flags) { 307 int flags) {
308 NOTIMPLEMENTED(); 308 NOTIMPLEMENTED();
309 } 309 }
310 310
311 void CanvasDirect2D::DrawFocusRect(int x, int y, int width, int height) { 311 void CanvasDirect2D::DrawFocusRect(int x, int y, int width, int height) {
312 NOTIMPLEMENTED(); 312 NOTIMPLEMENTED();
313 } 313 }
314 314
315 void CanvasDirect2D::TileImageInt(const SkBitmap& bitmap, 315 void CanvasDirect2D::TileImageInt(const SkBitmap& bitmap,
316 int x, int y, int w, int h) { 316 int x, int y, int w, int h) {
317 ScopedComPtr<ID2D1Brush> brush( 317 base::win::ScopedComPtr<ID2D1Brush> brush(
318 CreateD2D1BrushFromSkBitmap(rt_, bitmap, D2D1_EXTEND_MODE_WRAP, 318 CreateD2D1BrushFromSkBitmap(rt_, bitmap, D2D1_EXTEND_MODE_WRAP,
319 D2D1_EXTEND_MODE_WRAP)); 319 D2D1_EXTEND_MODE_WRAP));
320 rt_->FillRectangle(RectToRectF(x, y, w, h), brush); 320 rt_->FillRectangle(RectToRectF(x, y, w, h), brush);
321 } 321 }
322 322
323 void CanvasDirect2D::TileImageInt(const SkBitmap& bitmap, 323 void CanvasDirect2D::TileImageInt(const SkBitmap& bitmap,
324 int src_x, int src_y, 324 int src_x, int src_y,
325 int dest_x, int dest_y, int w, int h) { 325 int dest_x, int dest_y, int w, int h) {
326 NOTIMPLEMENTED(); 326 NOTIMPLEMENTED();
327 } 327 }
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
362 // CanvasDirect2D, private: 362 // CanvasDirect2D, private:
363 363
364 void CanvasDirect2D::SaveInternal(ID2D1Layer* layer) { 364 void CanvasDirect2D::SaveInternal(ID2D1Layer* layer) {
365 if (!drawing_state_block_) 365 if (!drawing_state_block_)
366 GetD2D1Factory()->CreateDrawingStateBlock(drawing_state_block_.Receive()); 366 GetD2D1Factory()->CreateDrawingStateBlock(drawing_state_block_.Receive());
367 rt_->SaveDrawingState(drawing_state_block_.get()); 367 rt_->SaveDrawingState(drawing_state_block_.get());
368 state_.push(RenderState(layer)); 368 state_.push(RenderState(layer));
369 } 369 }
370 370
371 } // namespace gfx 371 } // namespace gfx
OLDNEW
« no previous file with comments | « ui/gfx/canvas_direct2d.h ('k') | ui/gfx/canvas_direct2d_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698