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.