diff options
Diffstat (limited to 'src/ports')
-rw-r--r-- | src/ports/SkImageGeneratorCG.cpp | 6 | ||||
-rw-r--r-- | src/ports/SkImageGeneratorCG.h | 49 | ||||
-rw-r--r-- | src/ports/SkImageGeneratorWIC.cpp | 12 | ||||
-rw-r--r-- | src/ports/SkImageGeneratorWIC.h | 63 |
4 files changed, 7 insertions, 123 deletions
diff --git a/src/ports/SkImageGeneratorCG.cpp b/src/ports/SkImageGeneratorCG.cpp index 743b218254..b1058c6c9d 100644 --- a/src/ports/SkImageGeneratorCG.cpp +++ b/src/ports/SkImageGeneratorCG.cpp @@ -29,12 +29,6 @@ static CGImageSourceRef data_to_CGImageSrc(SkData* data) { return imageSrc; } -#ifdef SK_LEGACY_NEW_FROM_ENCODED_CG -SkImageGenerator* SkImageGeneratorCG::NewFromEncodedCG(SkData* data) { - return MakeFromEncodedCG(sk_ref_sp(data)).release(); -} -#endif - std::unique_ptr<SkImageGenerator> SkImageGeneratorCG::MakeFromEncodedCG(sk_sp<SkData> data) { CGImageSourceRef imageSrc = data_to_CGImageSrc(data.get()); if (!imageSrc) { diff --git a/src/ports/SkImageGeneratorCG.h b/src/ports/SkImageGeneratorCG.h deleted file mode 100644 index ee91c845fc..0000000000 --- a/src/ports/SkImageGeneratorCG.h +++ /dev/null @@ -1,49 +0,0 @@ -/* - * Copyright 2016 Google Inc. - * - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ - -#include "SkTypes.h" -#if defined(SK_BUILD_FOR_MAC) || defined(SK_BUILD_FOR_IOS) - -#include "SkCGUtils.h" -#include "SkData.h" -#include "SkEncodedOrigin.h" -#include "SkImageGenerator.h" -#include "SkTemplates.h" - -class SkImageGeneratorCG : public SkImageGenerator { -public: -#ifdef SK_LEGACY_NEW_FROM_ENCODED_CG - /* - * Refs the data if an image generator can be returned. Otherwise does - * not affect the data. - */ - static SkImageGenerator* NewFromEncodedCG(SkData* data); -#endif - - static std::unique_ptr<SkImageGenerator> MakeFromEncodedCG(sk_sp<SkData>); - -protected: - sk_sp<SkData> onRefEncodedData() override; - - bool onGetPixels(const SkImageInfo& info, void* pixels, size_t rowBytes, const Options&) - override; - -private: - /* - * Takes ownership of the imageSrc - */ - SkImageGeneratorCG(const SkImageInfo& info, const void* imageSrc, sk_sp<SkData> data, - SkEncodedOrigin origin); - - SkAutoTCallVProc<const void, CFRelease> fImageSrc; - sk_sp<SkData> fData; - const SkEncodedOrigin fOrigin; - - typedef SkImageGenerator INHERITED; -}; - -#endif //defined(SK_BUILD_FOR_MAC) || defined(SK_BUILD_FOR_IOS) 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() { diff --git a/src/ports/SkImageGeneratorWIC.h b/src/ports/SkImageGeneratorWIC.h deleted file mode 100644 index 5da68f2ea7..0000000000 --- a/src/ports/SkImageGeneratorWIC.h +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright 2016 Google Inc. - * - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ - -#include "SkTypes.h" - -#if defined(SK_BUILD_FOR_WIN) - -#include "SkData.h" -#include "SkImageGenerator.h" -#include "SkTemplates.h" -#include "SkTScopedComPtr.h" - -#include <wincodec.h> - -/* - * Any Windows program that uses COM must initialize the COM library by calling - * the CoInitializeEx function. In addition, each thread that uses a COM - * interface must make a separate call to this function. - * - * For every successful call to CoInitializeEx, the thread must call - * CoUninitialize before it exits. - * - * SkImageGeneratorWIC requires the COM library and leaves it to the client to - * initialize COM for their application. - * - * For more information on initializing COM, please see: - * https://msdn.microsoft.com/en-us/library/windows/desktop/ff485844.aspx - */ -class SkImageGeneratorWIC : public SkImageGenerator { -public: - /* - * Refs the data if an image generator can be returned. Otherwise does - * not affect the data. - */ - static SkImageGenerator* NewFromEncodedWIC(SkData* data); - -protected: - sk_sp<SkData> onRefEncodedData() override; - - bool onGetPixels(const SkImageInfo& info, void* pixels, size_t rowBytes, const Options&) - override; - -private: - /* - * Takes ownership of the imagingFactory - * Takes ownership of the imageSource - * Refs the data - */ - SkImageGeneratorWIC(const SkImageInfo& info, IWICImagingFactory* imagingFactory, - IWICBitmapSource* imageSource, SkData* data); - - SkTScopedComPtr<IWICImagingFactory> fImagingFactory; - SkTScopedComPtr<IWICBitmapSource> fImageSource; - sk_sp<SkData> fData; - - typedef SkImageGenerator INHERITED; -}; - -#endif // SK_BUILD_FOR_WIN |