diff options
author | Hal Canary <halcanary@google.com> | 2016-11-30 17:07:59 -0500 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2016-11-30 22:48:56 +0000 |
commit | 1fcc40474f1ad1f522d0a61086e25a71ca0a6881 (patch) | |
tree | 298d1a0b66d5d1899133c6252c877931661c5e95 /src/ports/SkImageEncoder_WIC.cpp | |
parent | 3a7492fc04d83ed2729d2ba226d5277459536b74 (diff) |
SkEncodeImage: no more link-time registration
Also, no more SkImageEncoder class.
SK_SUPPORT_LEGACY_IMAGE_ENCODER_CLASS now only guards some
old API shims.
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=5006
Change-Id: I3797f584f3e8e12ade10d31e8733163453725f40
Reviewed-on: https://skia-review.googlesource.com/5006
Commit-Queue: Hal Canary <halcanary@google.com>
Reviewed-by: Leon Scroggins <scroggo@google.com>
Reviewed-by: Mike Reed <reed@google.com>
Diffstat (limited to 'src/ports/SkImageEncoder_WIC.cpp')
-rw-r--r-- | src/ports/SkImageEncoder_WIC.cpp | 47 |
1 files changed, 9 insertions, 38 deletions
diff --git a/src/ports/SkImageEncoder_WIC.cpp b/src/ports/SkImageEncoder_WIC.cpp index 035359e792..52f4599433 100644 --- a/src/ports/SkImageEncoder_WIC.cpp +++ b/src/ports/SkImageEncoder_WIC.cpp @@ -46,23 +46,10 @@ #undef CLSID_WICImagingFactory #endif -class SkImageEncoder_WIC : public SkImageEncoder { -public: - SkImageEncoder_WIC(SkEncodedImageFormat t) : fType(t) {} - -protected: - virtual bool onEncode(SkWStream* stream, const SkBitmap& bm, int quality); - -private: - SkEncodedImageFormat fType; -}; - -bool SkImageEncoder_WIC::onEncode(SkWStream* stream - , const SkBitmap& bitmapOrig - , int quality) -{ +bool SkEncodeImageWithWIC(SkWStream* stream, const SkPixmap& pixmap, + SkEncodedImageFormat format, int quality) { GUID type; - switch (fType) { + switch (format) { case SkEncodedImageFormat::kJPEG: type = GUID_ContainerFormatJpeg; break; @@ -72,6 +59,11 @@ bool SkImageEncoder_WIC::onEncode(SkWStream* stream default: return false; } + SkBitmap bitmapOrig; + if (!bitmapOrig.installPixels(pixmap)) { + return false; + } + bitmapOrig.setImmutable(); // First convert to BGRA if necessary. SkBitmap bitmap; @@ -97,7 +89,7 @@ bool SkImageEncoder_WIC::onEncode(SkWStream* stream size_t rowBytes = bitmap.rowBytes(); SkAutoMalloc pixelStorage; WICPixelFormatGUID formatDesired = GUID_WICPixelFormat32bppBGRA; - if (SkEncodedImageFormat::kJPEG == fType) { + if (SkEncodedImageFormat::kJPEG == format) { formatDesired = GUID_WICPixelFormat24bppBGR; rowBytes = SkAlign4(bitmap.width() * 3); pixelStorage.reset(rowBytes * bitmap.height()); @@ -216,25 +208,4 @@ bool SkImageEncoder_WIC::onEncode(SkWStream* stream return SUCCEEDED(hr); } -/////////////////////////////////////////////////////////////////////////////// - -#ifdef SK_USE_WIC_ENCODER -static SkImageEncoder* sk_imageencoder_wic_factory(SkEncodedImageFormat t) { - switch (t) { - case SkEncodedImageFormat::kPNG: - case SkEncodedImageFormat::kJPEG: - break; - default: - return nullptr; - } - return new SkImageEncoder_WIC(t); -} - -static SkImageEncoder_EncodeReg gEReg(sk_imageencoder_wic_factory); -#endif - -SkImageEncoder* CreateImageEncoder_WIC(SkImageEncoder::Type type) { - return new SkImageEncoder_WIC((SkEncodedImageFormat)type); -} - #endif // defined(SK_BUILD_FOR_WIN32) |