Merge SkFooAdapterCodec impls into one impl

Bug: skia:
Change-Id: I5071e45979c1bbfc56ad994367a039390e2519f9
Reviewed-on: https://skia-review.googlesource.com/c/169920
Reviewed-by: Leon Scroggins <scroggo@google.com>
Commit-Queue: Leon Scroggins <scroggo@google.com>
diff --git a/src/codec/SkAndroidCodec.cpp b/src/codec/SkAndroidCodec.cpp
index 10d19f3..581640f 100644
--- a/src/codec/SkAndroidCodec.cpp
+++ b/src/codec/SkAndroidCodec.cpp
@@ -6,14 +6,13 @@
  */
 
 #include "SkAndroidCodec.h"
+#include "SkAndroidCodecAdapter.h"
 #include "SkCodec.h"
 #include "SkCodecPriv.h"
 #include "SkMakeUnique.h"
 #include "SkPixmap.h"
 #include "SkPixmapPriv.h"
-#include "SkRawAdapterCodec.h"
 #include "SkSampledCodec.h"
-#include "SkWebpAdapterCodec.h"
 
 static bool is_valid_sample_size(int sampleSize) {
     // FIXME: As Leon has mentioned elsewhere, surely there is also a maximum sampleSize?
@@ -97,16 +96,17 @@
         case SkEncodedImageFormat::kWBMP:
         case SkEncodedImageFormat::kHEIF:
             return skstd::make_unique<SkSampledCodec>(codec.release(), orientationBehavior);
+
 #ifdef SK_HAS_WEBP_LIBRARY
         case SkEncodedImageFormat::kWEBP:
-            return skstd::make_unique<SkWebpAdapterCodec>((SkWebpCodec*) codec.release(),
-                    orientationBehavior);
 #endif
 #ifdef SK_CODEC_DECODES_RAW
         case SkEncodedImageFormat::kDNG:
-            return skstd::make_unique<SkRawAdapterCodec>((SkRawCodec*)codec.release(),
-                    orientationBehavior);
 #endif
+#if defined(SK_HAS_WEBP_LIBRARY) || defined(SK_CODEC_DECODES_RAW)
+            return skstd::make_unique<SkAndroidCodecAdapter>(codec.release(), orientationBehavior);
+#endif
+
         default:
             return nullptr;
     }
diff --git a/src/codec/SkWebpAdapterCodec.cpp b/src/codec/SkAndroidCodecAdapter.cpp
similarity index 62%
rename from src/codec/SkWebpAdapterCodec.cpp
rename to src/codec/SkAndroidCodecAdapter.cpp
index 79a99a7..7f882e1 100644
--- a/src/codec/SkWebpAdapterCodec.cpp
+++ b/src/codec/SkAndroidCodecAdapter.cpp
@@ -5,24 +5,23 @@
  * found in the LICENSE file.
  */
 
-#include "SkCodec.h"
+#include "SkAndroidCodecAdapter.h"
 #include "SkCodecPriv.h"
-#include "SkWebpAdapterCodec.h"
 
-SkWebpAdapterCodec::SkWebpAdapterCodec(SkWebpCodec* codec, ExifOrientationBehavior behavior)
+SkAndroidCodecAdapter::SkAndroidCodecAdapter(SkCodec* codec, ExifOrientationBehavior behavior)
     : INHERITED(codec, behavior)
 {}
 
-SkISize SkWebpAdapterCodec::onGetSampledDimensions(int sampleSize) const {
+SkISize SkAndroidCodecAdapter::onGetSampledDimensions(int sampleSize) const {
     float scale = get_scale_from_sample_size(sampleSize);
     return this->codec()->getScaledDimensions(scale);
 }
 
-bool SkWebpAdapterCodec::onGetSupportedSubset(SkIRect* desiredSubset) const {
+bool SkAndroidCodecAdapter::onGetSupportedSubset(SkIRect* desiredSubset) const {
     return this->codec()->getValidSubset(desiredSubset);
 }
 
-SkCodec::Result SkWebpAdapterCodec::onGetAndroidPixels(const SkImageInfo& info, void* pixels,
+SkCodec::Result SkAndroidCodecAdapter::onGetAndroidPixels(const SkImageInfo& info, void* pixels,
         size_t rowBytes, const AndroidOptions& options) {
     SkCodec::Options codecOptions;
     codecOptions.fZeroInitialized = options.fZeroInitialized;
diff --git a/src/codec/SkAndroidCodecAdapter.h b/src/codec/SkAndroidCodecAdapter.h
new file mode 100644
index 0000000..ac494c9
--- /dev/null
+++ b/src/codec/SkAndroidCodecAdapter.h
@@ -0,0 +1,37 @@
+/*
+ * 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 SkAndroidCodecAdapter_DEFINED
+#define SkAndroidCodecAdapter_DEFINED
+
+#include "SkAndroidCodec.h"
+
+/**
+ *  This class wraps SkCodec to implement the functionality of SkAndroidCodec.
+ *  The underlying SkCodec implements sampled decodes.  SkCodec's that do not
+ *  implement that are wrapped with SkSampledCodec instead.
+ */
+class SkAndroidCodecAdapter : public SkAndroidCodec {
+public:
+
+    explicit SkAndroidCodecAdapter(SkCodec*, ExifOrientationBehavior);
+
+    ~SkAndroidCodecAdapter() override {}
+
+protected:
+
+    SkISize onGetSampledDimensions(int sampleSize) const override;
+
+    bool onGetSupportedSubset(SkIRect* desiredSubset) const override;
+
+    SkCodec::Result onGetAndroidPixels(const SkImageInfo& info, void* pixels, size_t rowBytes,
+            const AndroidOptions& options) override;
+
+private:
+
+    typedef SkAndroidCodec INHERITED;
+};
+#endif // SkAndroidCodecAdapter_DEFINED
diff --git a/src/codec/SkRawAdapterCodec.cpp b/src/codec/SkRawAdapterCodec.cpp
deleted file mode 100644
index d4b3149..0000000
--- a/src/codec/SkRawAdapterCodec.cpp
+++ /dev/null
@@ -1,28 +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 "SkCodec.h"
-#include "SkCodecPriv.h"
-#include "SkRawAdapterCodec.h"
-
-SkRawAdapterCodec::SkRawAdapterCodec(SkRawCodec* codec, ExifOrientationBehavior behavior)
-    : INHERITED(codec, behavior)
-{}
-
-SkISize SkRawAdapterCodec::onGetSampledDimensions(int sampleSize) const {
-    float scale = 1.f / static_cast<float>(sampleSize);
-    return this->codec()->getScaledDimensions(scale);
-}
-
-SkCodec::Result SkRawAdapterCodec::onGetAndroidPixels(
-        const SkImageInfo& info, void* pixels, size_t rowBytes,
-        const AndroidOptions& options) {
-    SkCodec::Options codecOptions;
-    codecOptions.fZeroInitialized = options.fZeroInitialized;
-    codecOptions.fSubset = options.fSubset;
-    return this->codec()->getPixels(info, pixels, rowBytes, &codecOptions);
-}
diff --git a/src/codec/SkRawAdapterCodec.h b/src/codec/SkRawAdapterCodec.h
deleted file mode 100644
index d4828ce..0000000
--- a/src/codec/SkRawAdapterCodec.h
+++ /dev/null
@@ -1,41 +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.
- */
-
-#ifndef SkRawAdapterCodec_DEFINED
-#define SkRawAdapterCodec_DEFINED
-
-#include "SkAndroidCodec.h"
-#include "SkCodec.h"
-#include "SkEncodedImageFormat.h"
-#include "SkRawCodec.h"
-#include "SkStream.h"
-#include "SkTypes.h"
-
-/**
- *  This class implements the functionality of SkAndroidCodec. It uses an
- *  SkRawCodec.
- */
-class SkRawAdapterCodec : public SkAndroidCodec {
-public:
-    explicit SkRawAdapterCodec(SkRawCodec*, ExifOrientationBehavior);
-
-    ~SkRawAdapterCodec() override {}
-
-protected:
-
-    SkISize onGetSampledDimensions(int sampleSize) const override;
-
-    bool onGetSupportedSubset(SkIRect* /*desiredSubset*/) const override { return false; }
-
-    SkCodec::Result onGetAndroidPixels(const SkImageInfo& info, void* pixels, size_t rowBytes,
-            const AndroidOptions& options) override;
-
-private:
-
-    typedef SkAndroidCodec INHERITED;
-};
-#endif // SkRawAdapterCodec_DEFINED
diff --git a/src/codec/SkWebpAdapterCodec.h b/src/codec/SkWebpAdapterCodec.h
deleted file mode 100644
index fc8328c..0000000
--- a/src/codec/SkWebpAdapterCodec.h
+++ /dev/null
@@ -1,37 +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 SkWebpAdapterCodec_DEFINED
-#define SkWebpAdapterCodec_DEFINED
-
-#include "SkAndroidCodec.h"
-#include "SkWebpCodec.h"
-
-/**
- *  This class implements the functionality of SkAndroidCodec.  It uses an
- *  SkWebpCodec.
- */
-class SkWebpAdapterCodec : public SkAndroidCodec {
-public:
-
-    explicit SkWebpAdapterCodec(SkWebpCodec*, ExifOrientationBehavior);
-
-    ~SkWebpAdapterCodec() override {}
-
-protected:
-
-    SkISize onGetSampledDimensions(int sampleSize) const override;
-
-    bool onGetSupportedSubset(SkIRect* desiredSubset) const override;
-
-    SkCodec::Result onGetAndroidPixels(const SkImageInfo& info, void* pixels, size_t rowBytes,
-            const AndroidOptions& options) override;
-
-private:
-
-    typedef SkAndroidCodec INHERITED;
-};
-#endif // SkWebpAdapterCodec_DEFINED