| 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 |