aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/SkImageCacherator.h
diff options
context:
space:
mode:
authorGravatar fmalita <fmalita@chromium.org>2016-10-27 08:15:44 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2016-10-27 08:15:44 -0700
commit7929e3ae76719f65111e4fe7a2f2444d53228c2b (patch)
treea090efc76a66edf79515cf86cbdf07e99501a4a9 /src/core/SkImageCacherator.h
parent74d8cc99929fffa9be8b5cfc8d8616aa79322c60 (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.h15
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