| // Copyright 2018 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef UI_GFX_IMAGE_IMAGE_SKIA_REP_IOS_H_ |
| #define UI_GFX_IMAGE_IMAGE_SKIA_REP_IOS_H_ |
| |
| #include "build/build_config.h" |
| #include "third_party/skia/include/core/SkBitmap.h" |
| #include "ui/gfx/geometry/size.h" |
| #include "ui/gfx/gfx_export.h" |
| |
| namespace gfx { |
| |
| // An ImageSkiaRep represents an image and the scale factor it is intended for. |
| // 0.0f scale is used to indicate that this ImageSkiaRep is used for unscaled |
| // image (ImageSkia does not automatically scale the image). |
| // iOS does not support cc's PaintOpBuffer and instead uses cocoa frameworks |
| // image formats. |
| class GFX_EXPORT ImageSkiaRep { |
| public: |
| // Create null bitmap. |
| ImageSkiaRep(); |
| |
| // Note: This is for testing purpose only. |
| // Creates a bitmap with kARGB_8888_Config config with given |size| in DIP. |
| // This allocates pixels in the bitmap. It is guaranteed that the data in the |
| // bitmap are initialized but the actual values are undefined. |
| // Specifying 0 scale means the image is for unscaled image. (unscaled() |
| // returns truen, and scale() returns 1.0f;) |
| ImageSkiaRep(const gfx::Size& size, float scale); |
| |
| // Creates a bitmap with given scale. |
| // Adds ref to |src|. |
| ImageSkiaRep(const SkBitmap& src, float scale); |
| ImageSkiaRep(const ImageSkiaRep& other); |
| |
| ~ImageSkiaRep(); |
| |
| // Get width and height of the image in pixels. |
| int pixel_width() const { return bitmap_.width(); } |
| int pixel_height() const { return bitmap_.height(); } |
| Size pixel_size() const { return gfx::Size(pixel_width(), pixel_height()); } |
| |
| // Get width and height of the image in DIP. |
| int GetWidth() const; |
| int GetHeight() const; |
| |
| // Retrieves the scale for which this image is a representation of. |
| float scale() const { return unscaled() ? 1.0f : scale_; } |
| bool unscaled() const { return scale_ == 0.0f; } |
| |
| bool is_null() const { return bitmap_.isNull(); } |
| |
| // Returns the backing bitmap when the image representation is sourced from a |
| // bitmap. |
| const SkBitmap& GetBitmap() const; |
| |
| private: |
| Size pixel_size_; |
| SkBitmap bitmap_; |
| float scale_; |
| }; |
| |
| } // namespace gfx |
| |
| #endif // UI_GFX_IMAGE_IMAGE_SKIA_REP_IOS_H_ |