diff options
author | 2016-10-27 08:15:44 -0700 | |
---|---|---|
committer | 2016-10-27 08:15:44 -0700 | |
commit | 7929e3ae76719f65111e4fe7a2f2444d53228c2b (patch) | |
tree | a090efc76a66edf79515cf86cbdf07e99501a4a9 /src/core/SkImageCacherator.h | |
parent | 74d8cc99929fffa9be8b5cfc8d8616aa79322c60 (diff) |
Avoid separate allocation of SkImageCacherator
Embed directly in SkImage_Generator, and add a helper to handle param
validation.
R=reed@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2453473004
Review-Url: https://codereview.chromium.org/2453473004
Diffstat (limited to 'src/core/SkImageCacherator.h')
-rw-r--r-- | src/core/SkImageCacherator.h | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/src/core/SkImageCacherator.h b/src/core/SkImageCacherator.h index 3be69a5785..2d9e94cc4d 100644 --- a/src/core/SkImageCacherator.h +++ b/src/core/SkImageCacherator.h @@ -68,7 +68,18 @@ public: int srcX, int srcY); private: - SkImageCacherator(SkImageGenerator*, const SkImageInfo&, const SkIPoint&, uint32_t uniqueID); + struct Validator { + Validator(SkImageGenerator*, const SkIRect* subset); + + operator bool() const { return fGenerator.get(); } + + std::unique_ptr<SkImageGenerator> fGenerator; + SkImageInfo fInfo; + SkIPoint fOrigin; + uint32_t fUniqueID; + }; + + SkImageCacherator(Validator*); bool generateBitmap(SkBitmap*); bool tryLockAsBitmap(SkBitmap*, const SkImage*, SkImage::CachingHint); @@ -100,6 +111,8 @@ private: const uint32_t fUniqueID; friend class GrImageTextureMaker; + friend class SkImage; + friend class SkImage_Generator; }; #endif |