Home | History | Annotate | Download | only in image
      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