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