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>
diff --git a/include/android/SkBitmapRegionDecoder.h b/include/android/SkBitmapRegionDecoder.h
index b8922d4..660aa0a 100644
--- a/include/android/SkBitmapRegionDecoder.h
+++ b/include/android/SkBitmapRegionDecoder.h
@@ -10,7 +10,7 @@
#include "SkBitmap.h"
#include "SkBRDAllocator.h"
-#include "SkEncodedFormat.h"
+#include "SkEncodedImageFormat.h"
#include "SkStream.h"
/*
@@ -66,7 +66,7 @@
*/
virtual bool conversionSupported(SkColorType colorType) = 0;
- virtual SkEncodedFormat getEncodedFormat() = 0;
+ virtual SkEncodedImageFormat getEncodedFormat() = 0;
int width() const { return fWidth; }
int height() const { return fHeight; }
diff --git a/include/codec/SkAndroidCodec.h b/include/codec/SkAndroidCodec.h
index ee9d0f3..a4f46f9 100644
--- a/include/codec/SkAndroidCodec.h
+++ b/include/codec/SkAndroidCodec.h
@@ -9,7 +9,7 @@
#define SkAndroidCodec_DEFINED
#include "SkCodec.h"
-#include "SkEncodedFormat.h"
+#include "SkEncodedImageFormat.h"
#include "SkStream.h"
#include "SkTypes.h"
@@ -51,7 +51,7 @@
/**
* Format of the encoded data.
*/
- SkEncodedFormat getEncodedFormat() const { return (SkEncodedFormat)fCodec->getEncodedFormat(); }
+ SkEncodedImageFormat getEncodedFormat() const { return fCodec->getEncodedFormat(); }
/**
* @param requestedColorType Color type requested by the client
diff --git a/include/codec/SkEncodedFormat.h b/include/codec/SkEncodedFormat.h
deleted file mode 100644
index 485bff1..0000000
--- a/include/codec/SkEncodedFormat.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright 2015 Google Inc.
- *
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-#ifndef SkEncodedFormat_DEFINED
-#define SkEncodedFormat_DEFINED
-
-#include "SkEncodedImageFormat.h"
-#include "SkTypes.h"
-
-#ifdef SK_SUPPORT_LEGACY_IMAGE_ENCODER_CLASS
-
-enum SkEncodedFormat {
- kBMP_SkEncodedFormat = (int)SkEncodedImageFormat::kBMP,
- kGIF_SkEncodedFormat = (int)SkEncodedImageFormat::kGIF,
- kICO_SkEncodedFormat = (int)SkEncodedImageFormat::kICO,
- kJPEG_SkEncodedFormat = (int)SkEncodedImageFormat::kJPEG,
- kPNG_SkEncodedFormat = (int)SkEncodedImageFormat::kPNG,
- kWBMP_SkEncodedFormat = (int)SkEncodedImageFormat::kWBMP,
- kWEBP_SkEncodedFormat = (int)SkEncodedImageFormat::kWEBP,
- kPKM_SkEncodedFormat = (int)SkEncodedImageFormat::kPKM,
- kKTX_SkEncodedFormat = (int)SkEncodedImageFormat::kKTX,
- kASTC_SkEncodedFormat = (int)SkEncodedImageFormat::kASTC,
- kDNG_SkEncodedFormat = (int)SkEncodedImageFormat::kDNG,
-};
-
-#else
-
-typedef SkEncodedImageFormat SkEncodedFormat;
-
-#endif // SK_SUPPORT_LEGACY_IMAGE_ENCODER_CLASS
-
-#endif // SkEncodedFormat_DEFINED
diff --git a/include/core/SkImageEncoder.h b/include/core/SkImageEncoder.h
index 41cdb38..17d0603 100644
--- a/include/core/SkImageEncoder.h
+++ b/include/core/SkImageEncoder.h
@@ -10,9 +10,7 @@
#include "SkBitmap.h"
#include "SkEncodedImageFormat.h"
-#include "SkPixelSerializer.h"
#include "SkStream.h"
-#include "SkTRegistry.h"
/**
* Encode SkPixmap in the given binary image format.
@@ -41,10 +39,8 @@
return src.peekPixels(&pixmap) && SkEncodeImage(dst, pixmap, f, q);
}
+//TODO(halcanary): remove this code once all changes land.
#ifdef SK_SUPPORT_LEGACY_IMAGE_ENCODER_CLASS
-
-////////////////////////////////////////////////////////////////////////////////
-
class SkImageEncoder {
public:
enum Type {
@@ -60,65 +56,11 @@
kWEBP_Type = (int)SkEncodedImageFormat::kWEBP,
kKTX_Type = (int)SkEncodedImageFormat::kKTX,
};
- static SkImageEncoder* Create(Type);
-
- virtual ~SkImageEncoder() {}
-
- /* Quality ranges from 0..100 */
- enum {
- kDefaultQuality = 80
- };
-
- /**
- * Encode bitmap 'bm', returning the results in an SkData, at quality level
- * 'quality' (which can be in range 0-100). If the bitmap cannot be
- * encoded, return null. On success, the caller is responsible for
- * calling unref() on the data when they are finished.
- */
- SkData* encodeData(const SkBitmap& bm, int quality) {
- SkDynamicMemoryWStream buffer;
- return this->encodeStream(&buffer, bm, quality)
- ? buffer.detachAsData().release()
- : nullptr;
- }
-
- /**
- * Encode bitmap 'bm' in the desired format, writing results to
- * file 'file', at quality level 'quality' (which can be in range
- * 0-100). Returns false on failure.
- */
- bool encodeFile(const char path[], const SkBitmap& bm, int quality) {
- SkFILEWStream file(path);
- return this->encodeStream(&file, bm, quality);
- }
-
- /**
- * Encode bitmap 'bm' in the desired format, writing results to
- * stream 'stream', at quality level 'quality' (which can be in
- * range 0-100). Returns false on failure.
- */
- bool encodeStream(SkWStream* dst, const SkBitmap& src, int quality) {
- return this->onEncode(dst, src, SkMin32(100, SkMax32(0, quality)));
- }
-
- static SkData* EncodeData(const SkImageInfo& info, const void* pixels, size_t rowBytes,
- Type t, int quality) {
- SkPixmap pixmap(info, pixels, rowBytes, nullptr);
- return SkImageEncoder::EncodeData(pixmap, t, quality);
- }
-
static SkData* EncodeData(const SkBitmap& src, Type t, int quality) {
SkDynamicMemoryWStream buf;
return SkEncodeImage(&buf, src, (SkEncodedImageFormat)t, quality)
? buf.detachAsData().release() : nullptr;
}
-
- static SkData* EncodeData(const SkPixmap& pixmap, Type t, int quality) {
- SkDynamicMemoryWStream buf;
- return SkEncodeImage(&buf, pixmap, (SkEncodedImageFormat)t, quality)
- ? buf.detachAsData().release() : nullptr;
- }
-
static bool EncodeFile(const char path[], const SkBitmap& src, Type t, int quality) {
SkFILEWStream file(path);
return SkEncodeImage(&file, src, (SkEncodedImageFormat)t, quality);
@@ -126,17 +68,7 @@
static bool EncodeStream(SkWStream* dst, const SkBitmap& bm, Type t, int quality) {
return SkEncodeImage(dst, bm, (SkEncodedImageFormat)t, quality);
}
-
-protected:
- /**
- * Encode bitmap 'bm' in the desired format, writing results to
- * stream 'stream', at quality level 'quality' (which can be in
- * range 0-100).
- *
- * This must be overridden by each SkImageEncoder implementation.
- */
- virtual bool onEncode(SkWStream* stream, const SkBitmap& bm, int quality) = 0;
};
-
#endif // SK_SUPPORT_LEGACY_IMAGE_ENCODER_CLASS
+
#endif // SkImageEncoder_DEFINED
diff --git a/include/images/SkForceLinking.h b/include/images/SkForceLinking.h
index 5de8918..ca52eeb 100644
--- a/include/images/SkForceLinking.h
+++ b/include/images/SkForceLinking.h
@@ -4,19 +4,4 @@
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
-
-#include "SkTypes.h"
-
-/**
- * This function's sole purpose is to trick the linker into not discarding
- * SkImageDecoder subclasses just because we do not directly call them.
- * This is necessary in applications that will create image decoders from
- * a stream.
- * Call this function with an expression that evaluates to false to ensure
- * that the linker includes the subclasses.
- * Passing true will result in leaked objects.
- */
-int SkForceLinking(bool doNotPassTrue);
-
-#define __SK_FORCE_IMAGE_DECODER_LINKING \
-SK_UNUSED static int linking_forced = SkForceLinking(false)
+// TODO(halcanary): delete this file.