diff options
author | Leon Scroggins III <scroggo@google.com> | 2018-06-25 14:01:29 -0400 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2018-06-26 17:30:52 +0000 |
commit | a57488a1f5c14c2114c57880b85c1bbc90024973 (patch) | |
tree | 7e811b7928e098560b8a8ebab12c3da960b5efc6 /src/ports/SkImageGeneratorWIC.cpp | |
parent | 6a284b771632f547b8a2d31115d3df4601c53228 (diff) |
Expose public factories for platform decoders
Bug: skia:8076
Move SkImageGeneratorCG and SkImageGeneratorWIC to include/ports/,
and make them SK_API.
Remove SkImageGeneratorCG::NewFromEncodedCG. No known clients are using
it, and it was a private API in src/. There is already a
MakeFromEncodedCG to replace it.
Similarly, switch WIC from New to Make.
Add a compile test for using them with
SetImageGeneratorFromEncodedDataFactory.
Change-Id: I897eb7a887b3736a6c614a68e38f38b6a1942cf1
Reviewed-on: https://skia-review.googlesource.com/137387
Reviewed-by: Mike Reed <reed@google.com>
Reviewed-by: Mike Klein <mtklein@google.com>
Commit-Queue: Leon Scroggins <scroggo@google.com>
Diffstat (limited to 'src/ports/SkImageGeneratorWIC.cpp')
-rw-r--r-- | src/ports/SkImageGeneratorWIC.cpp | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/src/ports/SkImageGeneratorWIC.cpp b/src/ports/SkImageGeneratorWIC.cpp index 9aa89733d8..2726f886a2 100644 --- a/src/ports/SkImageGeneratorWIC.cpp +++ b/src/ports/SkImageGeneratorWIC.cpp @@ -18,7 +18,7 @@ #undef CLSID_WICImagingFactory #endif -SkImageGenerator* SkImageGeneratorWIC::NewFromEncodedWIC(SkData* data) { +std::unique_ptr<SkImageGenerator> SkImageGeneratorWIC::MakeFromEncodedWIC(sk_sp<SkData> data) { // Create Windows Imaging Component ImagingFactory. SkTScopedComPtr<IWICImagingFactory> imagingFactory; HRESULT hr = CoCreateInstance(CLSID_WICImagingFactory, nullptr, CLSCTX_INPROC_SERVER, @@ -31,7 +31,7 @@ SkImageGenerator* SkImageGeneratorWIC::NewFromEncodedWIC(SkData* data) { SkTScopedComPtr<IStream> iStream; // Note that iStream will take ownership of the new memory stream because // we set |deleteOnRelease| to true. - hr = SkIStream::CreateFromSkStream(new SkMemoryStream(sk_ref_sp(data)), true, &iStream); + hr = SkIStream::CreateFromSkStream(new SkMemoryStream(data), true, &iStream); if (FAILED(hr)) { return nullptr; } @@ -121,15 +121,17 @@ SkImageGenerator* SkImageGeneratorWIC::NewFromEncodedWIC(SkData* data) { // FIXME: If we change the implementation to handle swizzling ourselves, // we can support more output formats. SkImageInfo info = SkImageInfo::MakeS32(width, height, alphaType); - return new SkImageGeneratorWIC(info, imagingFactory.release(), imageSource.release(), data); + return std::unique_ptr<SkImageGenerator>( + new SkImageGeneratorWIC(info, imagingFactory.release(), imageSource.release(), + std::move(data))); } SkImageGeneratorWIC::SkImageGeneratorWIC(const SkImageInfo& info, - IWICImagingFactory* imagingFactory, IWICBitmapSource* imageSource, SkData* data) + IWICImagingFactory* imagingFactory, IWICBitmapSource* imageSource, sk_sp<SkData> data) : INHERITED(info) , fImagingFactory(imagingFactory) , fImageSource(imageSource) - , fData(SkRef(data)) + , fData(std::move(data)) {} sk_sp<SkData> SkImageGeneratorWIC::onRefEncodedData() { |