diff options
author | Leon Scroggins III <scroggo@google.com> | 2017-08-15 12:24:02 -0400 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2017-08-17 16:09:31 +0000 |
commit | 0741818e7ab4e9ea8505b8a8687412f0e3804c65 (patch) | |
tree | ac183b3107e97b0717319fd403f6d552fdbd840f /src/codec/SkWbmpCodec.cpp | |
parent | de44c2df9469e70f57f05d262cd1a245b2ff5e90 (diff) |
Move calls to conversion_possible to SkCodec
Move common code into the base class, so subclasses need not call
conversion_possible.
Use SkEncodedInfo rather than SkImageInfo, and use the proper frame.
API Changes:
- SkAndroidCodec:
- Add getEncodedInfo(), for SkBitmapRegionCodec
- SkEncodedInfo:
- Add opaque() helper
- SkBitmapRegionDecoder:
- Remove unused conversionSupported
(Split off from skia-review.googlesource.com/c/25746)
Bug: skia:5601
Change-Id: If4a40d4b98a3dd0afde2b6058f92315a393a5baf
Reviewed-on: https://skia-review.googlesource.com/34361
Reviewed-by: Mike Klein <mtklein@google.com>
Reviewed-by: Derek Sollenberger <djsollen@google.com>
Commit-Queue: Leon Scroggins <scroggo@google.com>
Diffstat (limited to 'src/codec/SkWbmpCodec.cpp')
-rw-r--r-- | src/codec/SkWbmpCodec.cpp | 15 |
1 files changed, 5 insertions, 10 deletions
diff --git a/src/codec/SkWbmpCodec.cpp b/src/codec/SkWbmpCodec.cpp index 934d7d5b9a..bc796c4fcc 100644 --- a/src/codec/SkWbmpCodec.cpp +++ b/src/codec/SkWbmpCodec.cpp @@ -108,6 +108,11 @@ SkEncodedImageFormat SkWbmpCodec::onGetEncodedFormat() const { return SkEncodedImageFormat::kWBMP; } +bool SkWbmpCodec::conversionSupported(const SkImageInfo& dst, SkEncodedInfo::Color srcColor, + bool srcIsOpaque, const SkColorSpace* srcCS) const { + return valid_color_type(dst) && valid_alpha(dst.alphaType(), srcIsOpaque); +} + SkCodec::Result SkWbmpCodec::onGetPixels(const SkImageInfo& info, void* dst, size_t rowBytes, @@ -118,10 +123,6 @@ SkCodec::Result SkWbmpCodec::onGetPixels(const SkImageInfo& info, return kUnimplemented; } - if (!valid_color_type(info) || !valid_alpha(info.alphaType(), this->getInfo().alphaType())) { - return kInvalidConversion; - } - // Initialize the swizzler std::unique_ptr<SkSwizzler> swizzler(this->initializeSwizzler(info, options)); SkASSERT(swizzler); @@ -186,12 +187,6 @@ SkCodec::Result SkWbmpCodec::onStartScanlineDecode(const SkImageInfo& dstInfo, return kUnimplemented; } - if (!valid_color_type(dstInfo) || - !valid_alpha(dstInfo.alphaType(), this->getInfo().alphaType())) - { - return kInvalidConversion; - } - // Initialize the swizzler fSwizzler.reset(this->initializeSwizzler(dstInfo, options)); SkASSERT(fSwizzler); |