diff options
author | reed <reed@google.com> | 2015-09-15 14:46:27 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-09-15 14:46:27 -0700 |
commit | 013e9e3bb0495ab0b5aff011429a6ac983464d34 (patch) | |
tree | e017fb97e23904294b840075bc10a57ec1ff2213 /src/core/SkBitmapProvider.h | |
parent | 0d705a487318d41c95be9849e355f7383e67dc96 (diff) |
move SkBitmapProvider to its own file
BUG=skia:
Review URL: https://codereview.chromium.org/1346713002
Diffstat (limited to 'src/core/SkBitmapProvider.h')
-rw-r--r-- | src/core/SkBitmapProvider.h | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/src/core/SkBitmapProvider.h b/src/core/SkBitmapProvider.h new file mode 100644 index 0000000000..72964e4484 --- /dev/null +++ b/src/core/SkBitmapProvider.h @@ -0,0 +1,44 @@ +/* + * Copyright 2015 Google Inc. + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#ifndef SkBitmapProvider_DEFINED +#define SkBitmapProvider_DEFINED + +#include "SkBitmap.h" +#include "SkImage.h" +#include "SkBitmapCache.h" + +class SkBitmapProvider { +public: + explicit SkBitmapProvider(const SkBitmap& bm) : fBitmap(bm) {} + explicit SkBitmapProvider(const SkImage* img) : fImage(SkSafeRef(img)) {} + SkBitmapProvider(const SkBitmapProvider& other) + : fBitmap(other.fBitmap) + , fImage(SkSafeRef(other.fImage.get())) + {} + + int width() const; + int height() const; + uint32_t getID() const; + + bool validForDrawing() const; + SkImageInfo info() const; + + SkBitmapCacheDesc makeCacheDesc(int w, int h) const; + SkBitmapCacheDesc makeCacheDesc() const; + void notifyAddedToCache() const; + + // Only call this if you're sure you need the bits, since it maybe expensive + // ... cause a decode and cache, or gpu-readback + bool asBitmap(SkBitmap*) const; + +private: + SkBitmap fBitmap; + SkAutoTUnref<const SkImage> fImage; +}; + +#endif |