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_IMAGE_IMAGE_SKIA_REP_H_ | 5 #ifndef UI_GFX_IMAGE_IMAGE_SKIA_REP_H_ |
6 #define UI_GFX_IMAGE_IMAGE_SKIA_REP_H_ | 6 #define UI_GFX_IMAGE_IMAGE_SKIA_REP_H_ |
7 | 7 |
8 #include "third_party/skia/include/core/SkBitmap.h" | 8 #include "third_party/skia/include/core/SkBitmap.h" |
9 #include "ui/gfx/gfx_export.h" | 9 #include "ui/gfx/gfx_export.h" |
10 #include "ui/gfx/size.h" | 10 #include "ui/gfx/size.h" |
11 | 11 |
12 namespace gfx { | 12 namespace gfx { |
13 | 13 |
14 // An ImageSkiaRep represents a bitmap and the scale factor it is intended for. | 14 // An ImageSkiaRep represents a bitmap and the scale factor it is intended for. |
| 15 // 0.0f scale is used to indicate that this ImageSkiaRep is used for unscaled |
| 16 // image (the image that only returns 1.0f scale image). |
15 class GFX_EXPORT ImageSkiaRep { | 17 class GFX_EXPORT ImageSkiaRep { |
16 public: | 18 public: |
17 // Create null bitmap. | 19 // Create null bitmap. |
18 ImageSkiaRep(); | 20 ImageSkiaRep(); |
19 ~ImageSkiaRep(); | 21 ~ImageSkiaRep(); |
20 | 22 |
21 // Creates a bitmap with kARGB_8888_Config config with given |size| in DIP. | 23 // Creates a bitmap with kARGB_8888_Config config with given |size| in DIP. |
22 // This allocates pixels in the bitmap. | 24 // This allocates pixels in the bitmap. Specifying 0 scale means the image |
| 25 // is for unscaled image. (unscaled() returns truen, and scale() returns |
| 26 // 1.0f;) |
23 ImageSkiaRep(const gfx::Size& size, float scale); | 27 ImageSkiaRep(const gfx::Size& size, float scale); |
24 | 28 |
25 // Creates a bitmap with given scale. | 29 // Creates a bitmap with given scale. |
26 // Adds ref to |src|. | 30 // Adds ref to |src|. |
27 ImageSkiaRep(const SkBitmap& src, float scale); | 31 ImageSkiaRep(const SkBitmap& src, float scale); |
28 | 32 |
29 // Returns true if the backing bitmap is null. | 33 // Returns true if the backing bitmap is null. |
30 bool is_null() const { return bitmap_.isNull(); } | 34 bool is_null() const { return bitmap_.isNull(); } |
31 | 35 |
32 // Get width and height of bitmap in DIP. | 36 // Get width and height of bitmap in DIP. |
33 int GetWidth() const; | 37 int GetWidth() const; |
34 int GetHeight() const; | 38 int GetHeight() const; |
35 | 39 |
36 // Get width and height of bitmap in pixels. | 40 // Get width and height of bitmap in pixels. |
37 int pixel_width() const { return bitmap_.width(); } | 41 int pixel_width() const { return bitmap_.width(); } |
38 int pixel_height() const { return bitmap_.height(); } | 42 int pixel_height() const { return bitmap_.height(); } |
39 Size pixel_size() const { | 43 Size pixel_size() const { |
40 return Size(pixel_width(), pixel_height()); | 44 return Size(pixel_width(), pixel_height()); |
41 } | 45 } |
42 | 46 |
43 // Retrieves the scale that the bitmap will be painted at. | 47 // Retrieves the scale that the bitmap will be painted at. |
44 float scale() const { return scale_; } | 48 float scale() const { return unscaled() ? 1.0f : scale_; } |
| 49 |
| 50 bool unscaled() const { return scale_ == 0.0f; } |
| 51 |
| 52 // Mark the image to be used as scaled image. |
| 53 void SetScaled(); |
45 | 54 |
46 // Returns backing bitmap. | 55 // Returns backing bitmap. |
47 const SkBitmap& sk_bitmap() const { return bitmap_; } | 56 const SkBitmap& sk_bitmap() const { return bitmap_; } |
48 | 57 |
49 private: | 58 private: |
50 friend class ImageSkia; | 59 friend class ImageSkia; |
51 SkBitmap& mutable_sk_bitmap() { return bitmap_; } | 60 SkBitmap& mutable_sk_bitmap() { return bitmap_; } |
52 | 61 |
53 SkBitmap bitmap_; | 62 SkBitmap bitmap_; |
| 63 |
54 float scale_; | 64 float scale_; |
55 }; | 65 }; |
56 | 66 |
57 } // namespace gfx | 67 } // namespace gfx |
58 | 68 |
59 #endif // UI_GFX_IMAGE_IMAGE_SKIA_REP_H_ | 69 #endif // UI_GFX_IMAGE_IMAGE_SKIA_REP_H_ |
OLD | NEW |