| OLD | NEW |
| 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 #ifndef UI_GFX_CANVAS_H_ | 5 #ifndef UI_GFX_CANVAS_H_ |
| 6 #define UI_GFX_CANVAS_H_ | 6 #define UI_GFX_CANVAS_H_ |
| 7 | 7 |
| 8 #include <stdint.h> | 8 #include <stdint.h> |
| 9 | 9 |
| 10 #include <memory> | 10 #include <memory> |
| (...skipping 20 matching lines...) Expand all Loading... |
| 31 | 31 |
| 32 // Canvas is a SkCanvas wrapper that provides a number of methods for | 32 // Canvas is a SkCanvas wrapper that provides a number of methods for |
| 33 // common operations used throughout an application built using ui/gfx. | 33 // common operations used throughout an application built using ui/gfx. |
| 34 // | 34 // |
| 35 // All methods that take integer arguments (as is used throughout views) | 35 // All methods that take integer arguments (as is used throughout views) |
| 36 // end with Int. If you need to use methods provided by SkCanvas, you'll | 36 // end with Int. If you need to use methods provided by SkCanvas, you'll |
| 37 // need to do a conversion. In particular you'll need to use |SkIntToScalar()|, | 37 // need to do a conversion. In particular you'll need to use |SkIntToScalar()|, |
| 38 // or if converting from a scalar to an integer |SkScalarRound()|. | 38 // or if converting from a scalar to an integer |SkScalarRound()|. |
| 39 // | 39 // |
| 40 // A handful of methods in this class are overloaded providing an additional | 40 // A handful of methods in this class are overloaded providing an additional |
| 41 // argument of type SkXfermode::Mode. SkXfermode::Mode specifies how the | 41 // argument of type SkBlendMode. SkBlendMode specifies how the |
| 42 // source and destination colors are combined. Unless otherwise specified, | 42 // source and destination colors are combined. Unless otherwise specified, |
| 43 // the variant that does not take a SkXfermode::Mode uses a transfer mode | 43 // the variant that does not take a SkBlendMode uses a transfer mode |
| 44 // of kSrcOver_Mode. | 44 // of kSrcOver_Mode. |
| 45 class GFX_EXPORT Canvas { | 45 class GFX_EXPORT Canvas { |
| 46 public: | 46 public: |
| 47 enum { | 47 enum { |
| 48 // Specifies the alignment for text rendered with the DrawStringRect method. | 48 // Specifies the alignment for text rendered with the DrawStringRect method. |
| 49 TEXT_ALIGN_LEFT = 1 << 0, | 49 TEXT_ALIGN_LEFT = 1 << 0, |
| 50 TEXT_ALIGN_CENTER = 1 << 1, | 50 TEXT_ALIGN_CENTER = 1 << 1, |
| 51 TEXT_ALIGN_RIGHT = 1 << 2, | 51 TEXT_ALIGN_RIGHT = 1 << 2, |
| 52 TEXT_ALIGN_TO_HEAD = 1 << 3, | 52 TEXT_ALIGN_TO_HEAD = 1 << 3, |
| 53 | 53 |
| (...skipping 154 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 208 | 208 |
| 209 // Returns the bounds of the current clip (in local coordinates) in the | 209 // Returns the bounds of the current clip (in local coordinates) in the |
| 210 // |bounds| parameter, and returns true if it is non empty. | 210 // |bounds| parameter, and returns true if it is non empty. |
| 211 bool GetClipBounds(Rect* bounds); | 211 bool GetClipBounds(Rect* bounds); |
| 212 | 212 |
| 213 void Translate(const Vector2d& offset); | 213 void Translate(const Vector2d& offset); |
| 214 | 214 |
| 215 void Scale(int x_scale, int y_scale); | 215 void Scale(int x_scale, int y_scale); |
| 216 | 216 |
| 217 // Fills the entire canvas' bitmap (restricted to current clip) with | 217 // Fills the entire canvas' bitmap (restricted to current clip) with |
| 218 // specified |color| using a transfer mode of SkXfermode::kSrcOver_Mode. | 218 // specified |color| using a transfer mode of SkBlendMode::kSrcOver. |
| 219 void DrawColor(SkColor color); | 219 void DrawColor(SkColor color); |
| 220 | 220 |
| 221 // Fills the entire canvas' bitmap (restricted to current clip) with | 221 // Fills the entire canvas' bitmap (restricted to current clip) with |
| 222 // specified |color| and |mode|. | 222 // specified |color| and |mode|. |
| 223 void DrawColor(SkColor color, SkXfermode::Mode mode); | 223 void DrawColor(SkColor color, SkBlendMode mode); |
| 224 | 224 |
| 225 // Fills |rect| with |color| using a transfer mode of | 225 // Fills |rect| with |color| using a transfer mode of |
| 226 // SkXfermode::kSrcOver_Mode. | 226 // SkBlendMode::kSrcOver. |
| 227 void FillRect(const Rect& rect, SkColor color); | 227 void FillRect(const Rect& rect, SkColor color); |
| 228 | 228 |
| 229 // Fills |rect| with the specified |color| and |mode|. | 229 // Fills |rect| with the specified |color| and |mode|. |
| 230 void FillRect(const Rect& rect, SkColor color, SkXfermode::Mode mode); | 230 void FillRect(const Rect& rect, SkColor color, SkBlendMode mode); |
| 231 | 231 |
| 232 // Draws a single pixel rect in the specified region with the specified | 232 // Draws a single pixel rect in the specified region with the specified |
| 233 // color, using a transfer mode of SkXfermode::kSrcOver_Mode. | 233 // color, using a transfer mode of SkBlendMode::kSrcOver. |
| 234 // | 234 // |
| 235 // NOTE: if you need a single pixel line, use DrawLine. | 235 // NOTE: if you need a single pixel line, use DrawLine. |
| 236 // DEPRECATED in favor of the RectF version below. | 236 // DEPRECATED in favor of the RectF version below. |
| 237 // TODO(funkysidd): Remove this (http://crbug.com/553726) | 237 // TODO(funkysidd): Remove this (http://crbug.com/553726) |
| 238 void DrawRect(const Rect& rect, SkColor color); | 238 void DrawRect(const Rect& rect, SkColor color); |
| 239 | 239 |
| 240 // Draws a single pixel rect in the specified region with the specified | 240 // Draws a single pixel rect in the specified region with the specified |
| 241 // color, using a transfer mode of SkXfermode::kSrcOver_Mode. | 241 // color, using a transfer mode of SkBlendMode::kSrcOver. |
| 242 // | 242 // |
| 243 // NOTE: if you need a single pixel line, use DrawLine. | 243 // NOTE: if you need a single pixel line, use DrawLine. |
| 244 void DrawRect(const RectF& rect, SkColor color); | 244 void DrawRect(const RectF& rect, SkColor color); |
| 245 | 245 |
| 246 // Draws a single pixel rect in the specified region with the specified | 246 // Draws a single pixel rect in the specified region with the specified |
| 247 // color and transfer mode. | 247 // color and transfer mode. |
| 248 // | 248 // |
| 249 // NOTE: if you need a single pixel line, use DrawLine. | 249 // NOTE: if you need a single pixel line, use DrawLine. |
| 250 // DEPRECATED in favor of the RectF version below. | 250 // DEPRECATED in favor of the RectF version below. |
| 251 // TODO(funkysidd): Remove this (http://crbug.com/553726) | 251 // TODO(funkysidd): Remove this (http://crbug.com/553726) |
| 252 void DrawRect(const Rect& rect, SkColor color, SkXfermode::Mode mode); | 252 void DrawRect(const Rect& rect, SkColor color, SkBlendMode mode); |
| 253 | 253 |
| 254 // Draws a single pixel rect in the specified region with the specified | 254 // Draws a single pixel rect in the specified region with the specified |
| 255 // color and transfer mode. | 255 // color and transfer mode. |
| 256 // | 256 // |
| 257 // NOTE: if you need a single pixel line, use DrawLine. | 257 // NOTE: if you need a single pixel line, use DrawLine. |
| 258 void DrawRect(const RectF& rect, SkColor color, SkXfermode::Mode mode); | 258 void DrawRect(const RectF& rect, SkColor color, SkBlendMode mode); |
| 259 | 259 |
| 260 // Draws the given rectangle with the given |paint| parameters. | 260 // Draws the given rectangle with the given |paint| parameters. |
| 261 // DEPRECATED in favor of the RectF version below. | 261 // DEPRECATED in favor of the RectF version below. |
| 262 // TODO(funkysidd): Remove this (http://crbug.com/553726) | 262 // TODO(funkysidd): Remove this (http://crbug.com/553726) |
| 263 void DrawRect(const Rect& rect, const SkPaint& paint); | 263 void DrawRect(const Rect& rect, const SkPaint& paint); |
| 264 | 264 |
| 265 // Draws the given rectangle with the given |paint| parameters. | 265 // Draws the given rectangle with the given |paint| parameters. |
| 266 void DrawRect(const RectF& rect, const SkPaint& paint); | 266 void DrawRect(const RectF& rect, const SkPaint& paint); |
| 267 | 267 |
| 268 // Draw the given point with the given |paint| parameters. | 268 // Draw the given point with the given |paint| parameters. |
| (...skipping 248 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 517 // but canvas_owner_ will be null. | 517 // but canvas_owner_ will be null. |
| 518 std::unique_ptr<SkCanvas> canvas_owner_; | 518 std::unique_ptr<SkCanvas> canvas_owner_; |
| 519 SkCanvas* canvas_; | 519 SkCanvas* canvas_; |
| 520 | 520 |
| 521 DISALLOW_COPY_AND_ASSIGN(Canvas); | 521 DISALLOW_COPY_AND_ASSIGN(Canvas); |
| 522 }; | 522 }; |
| 523 | 523 |
| 524 } // namespace gfx | 524 } // namespace gfx |
| 525 | 525 |
| 526 #endif // UI_GFX_CANVAS_H_ | 526 #endif // UI_GFX_CANVAS_H_ |
| OLD | NEW |