From 3ef71e343bf075888fb50892350390b4dd47de24 Mon Sep 17 00:00:00 2001 From: reed Date: Thu, 19 Mar 2015 08:31:14 -0700 Subject: guarded change to SkImageGenerator to make getInfo() const BUG=skia: Review URL: https://codereview.chromium.org/1017293002 --- include/codec/SkCodec.h | 4 ++++ include/core/SkImageGenerator.h | 31 ++++++++++++++++++++++--------- 2 files changed, 26 insertions(+), 9 deletions(-) (limited to 'include') diff --git a/include/codec/SkCodec.h b/include/codec/SkCodec.h index 6d0557cb28..3550bb1831 100644 --- a/include/codec/SkCodec.h +++ b/include/codec/SkCodec.h @@ -58,10 +58,12 @@ protected: * initially returns a non-opaque answer, but completing the decode * reveals that the image is actually opaque. */ +#ifdef SK_SUPPORT_LEGACY_BOOL_ONGETINFO bool onGetInfo(SkImageInfo* info) SK_OVERRIDE { *info = fInfo; return true; } +#endif // Helper for subclasses. const SkImageInfo& getOriginalInfo() { return fInfo; } @@ -99,5 +101,7 @@ private: const SkImageInfo fInfo; SkAutoTDelete fStream; bool fNeedsRewind; + + typedef SkImageGenerator INHERITED; }; #endif // SkCodec_DEFINED diff --git a/include/core/SkImageGenerator.h b/include/core/SkImageGenerator.h index a5440bd3b4..5f8f5ba8fb 100644 --- a/include/core/SkImageGenerator.h +++ b/include/core/SkImageGenerator.h @@ -65,15 +65,19 @@ public: SkData* refEncodedData() { return this->onRefEncodedData(); } /** - * Return some information about the image, allowing the owner of - * this object to allocate pixels. - * - * Repeated calls to this function should give the same results, - * allowing the PixelRef to be immutable. - * - * @return false if anything goes wrong. + * Return the ImageInfo associated with this generator. */ - bool getInfo(SkImageInfo* info); +#ifdef SK_SUPPORT_LEGACY_BOOL_ONGETINFO + SkImageInfo getInfo(); + bool getInfo(SkImageInfo* info) { + if (info) { + *info = this->getInfo(); + } + return true; + } +#else + const SkImageInfo& getInfo() const { return fInfo; } +#endif /** * Used to describe the result of a call to getPixels(). @@ -206,8 +210,14 @@ public: static SkImageGenerator* NewFromData(SkData*); protected: - virtual SkData* onRefEncodedData(); +#ifdef SK_SUPPORT_LEGACY_BOOL_ONGETINFO + SkImageGenerator() : fInfo(SkImageInfo::MakeUnknown(0, 0) ) {} virtual bool onGetInfo(SkImageInfo* info); +#endif + SkImageGenerator(const SkImageInfo& info) : fInfo(info) {} + + virtual SkData* onRefEncodedData(); + #ifdef SK_SUPPORT_LEGACY_OPTIONLESS_GET_PIXELS virtual Result onGetPixels(const SkImageInfo& info, void* pixels, size_t rowBytes, @@ -219,6 +229,9 @@ protected: virtual bool onGetYUV8Planes(SkISize sizes[3], void* planes[3], size_t rowBytes[3]); virtual bool onGetYUV8Planes(SkISize sizes[3], void* planes[3], size_t rowBytes[3], SkYUVColorSpace* colorSpace); + +private: + const SkImageInfo fInfo; }; #endif // SkImageGenerator_DEFINED -- cgit v1.2.3