aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/ports/SkImageEncoder_WIC.cpp
diff options
context:
space:
mode:
authorGravatar Hal Canary <halcanary@google.com>2016-11-30 17:07:59 -0500
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2016-11-30 22:48:56 +0000
commit1fcc40474f1ad1f522d0a61086e25a71ca0a6881 (patch)
tree298d1a0b66d5d1899133c6252c877931661c5e95 /src/ports/SkImageEncoder_WIC.cpp
parent3a7492fc04d83ed2729d2ba226d5277459536b74 (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.cpp47
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)