diff options
author | Matt Sarett <msarett@google.com> | 2017-05-12 11:41:27 -0400 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2017-05-12 16:48:17 +0000 |
commit | ebb1b5c297e394ab19f99d807095672b7f5d8aef (patch) | |
tree | 5f2fcd7f15da445df1efd5861b708df8f35c5ba0 /src/codec/SkCodecImageGenerator.cpp | |
parent | 7c8460e10135c05a42d0744b84838bbc24398ac2 (diff) |
Add new SkImageGenerator::getPixels() API, deprecate the old
This is fairly aggressive in that it will break any client
that is currently using SkImageGenerator with kIndex8.
I'm guessing that we don't have any clients doing that.
Bug: skia:6620
Change-Id: Ifd16f5232bb3a9f759c225315c57492d917ed9ca
Reviewed-on: https://skia-review.googlesource.com/16601
Commit-Queue: Matt Sarett <msarett@google.com>
Reviewed-by: Mike Reed <reed@google.com>
Diffstat (limited to 'src/codec/SkCodecImageGenerator.cpp')
-rw-r--r-- | src/codec/SkCodecImageGenerator.cpp | 26 |
1 files changed, 11 insertions, 15 deletions
diff --git a/src/codec/SkCodecImageGenerator.cpp b/src/codec/SkCodecImageGenerator.cpp index d778bc7ea1..bf794d60d3 100644 --- a/src/codec/SkCodecImageGenerator.cpp +++ b/src/codec/SkCodecImageGenerator.cpp @@ -17,16 +17,21 @@ std::unique_ptr<SkImageGenerator> SkCodecImageGenerator::MakeFromEncodedCodec(sk return std::unique_ptr<SkImageGenerator>(new SkCodecImageGenerator(codec, data)); } -static SkImageInfo make_premul(const SkImageInfo& info) { +static SkImageInfo adjust_info(const SkImageInfo& info) { + SkImageInfo newInfo = info; if (kUnpremul_SkAlphaType == info.alphaType()) { - return info.makeAlphaType(kPremul_SkAlphaType); + newInfo = newInfo.makeAlphaType(kPremul_SkAlphaType); } - return info; + if (kIndex_8_SkColorType == info.colorType()) { + newInfo = newInfo.makeColorType(kN32_SkColorType); + } + + return newInfo; } SkCodecImageGenerator::SkCodecImageGenerator(SkCodec* codec, sk_sp<SkData> data) - : INHERITED(make_premul(codec->getInfo())) + : INHERITED(adjust_info(codec->getInfo())) , fCodec(codec) , fData(std::move(data)) {} @@ -36,20 +41,11 @@ SkData* SkCodecImageGenerator::onRefEncodedData() { } bool SkCodecImageGenerator::onGetPixels(const SkImageInfo& info, void* pixels, size_t rowBytes, - SkPMColor ctable[], int* ctableCount) { - Options opts; - opts.fColorTable = ctable; - opts.fColorTableCount = ctableCount; - opts.fBehavior = SkTransferFunctionBehavior::kRespect; - return this->onGetPixels(info, pixels, rowBytes, opts); -} - -bool SkCodecImageGenerator::onGetPixels(const SkImageInfo& info, void* pixels, size_t rowBytes, const Options& opts) { SkCodec::Options codecOpts; codecOpts.fPremulBehavior = opts.fBehavior; - SkCodec::Result result = fCodec->getPixels(info, pixels, rowBytes, &codecOpts, opts.fColorTable, - opts.fColorTableCount); + SkCodec::Result result = fCodec->getPixels(info, pixels, rowBytes, &codecOpts, nullptr, + nullptr); switch (result) { case SkCodec::kSuccess: case SkCodec::kIncompleteInput: |