aboutsummaryrefslogtreecommitdiff
path: root/src/codec
diff options
context:
space:
mode:
authorNigel Tao <nigeltao@google.com>2018-11-09 10:10:31 +1100
committerSkia Commit-Bot <skia-commit-bot@chromium.org>2018-11-09 14:48:44 +0000
commit612a65dd8b27761f2f9e4e68b3a861beb12ea2ed (patch)
treeff4c4303527452129dcbea5ea1feff7f3df61962 /src/codec
parentc244c2fbbbf85c58a43c977c7c28109a5cdb9cd9 (diff)
downloadskqp-612a65dd8b27761f2f9e4e68b3a861beb12ea2ed.tar.gz
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>
Diffstat (limited to 'src/codec')
-rw-r--r--src/codec/SkAndroidCodec.cpp12
-rw-r--r--src/codec/SkAndroidCodecAdapter.cpp (renamed from src/codec/SkWebpAdapterCodec.cpp)11
-rw-r--r--src/codec/SkAndroidCodecAdapter.h (renamed from src/codec/SkWebpAdapterCodec.h)18
-rw-r--r--src/codec/SkRawAdapterCodec.cpp28
-rw-r--r--src/codec/SkRawAdapterCodec.h41
5 files changed, 20 insertions, 90 deletions
diff --git a/src/codec/SkAndroidCodec.cpp b/src/codec/SkAndroidCodec.cpp
index 10d19f34ee..581640f411 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 @@ std::unique_ptr<SkAndroidCodec> SkAndroidCodec::MakeFromCodec(std::unique_ptr<Sk
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
index 79a99a72f0..7f882e1f83 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/SkWebpAdapterCodec.h b/src/codec/SkAndroidCodecAdapter.h
index fc8328cf56..ac494c970c 100644
--- a/src/codec/SkWebpAdapterCodec.h
+++ b/src/codec/SkAndroidCodecAdapter.h
@@ -4,22 +4,22 @@
* 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
+#ifndef SkAndroidCodecAdapter_DEFINED
+#define SkAndroidCodecAdapter_DEFINED
#include "SkAndroidCodec.h"
-#include "SkWebpCodec.h"
/**
- * This class implements the functionality of SkAndroidCodec. It uses an
- * SkWebpCodec.
+ * 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 SkWebpAdapterCodec : public SkAndroidCodec {
+class SkAndroidCodecAdapter : public SkAndroidCodec {
public:
- explicit SkWebpAdapterCodec(SkWebpCodec*, ExifOrientationBehavior);
+ explicit SkAndroidCodecAdapter(SkCodec*, ExifOrientationBehavior);
- ~SkWebpAdapterCodec() override {}
+ ~SkAndroidCodecAdapter() override {}
protected:
@@ -34,4 +34,4 @@ private:
typedef SkAndroidCodec INHERITED;
};
-#endif // SkWebpAdapterCodec_DEFINED
+#endif // SkAndroidCodecAdapter_DEFINED
diff --git a/src/codec/SkRawAdapterCodec.cpp b/src/codec/SkRawAdapterCodec.cpp
deleted file mode 100644
index d4b3149987..0000000000
--- 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 d4828ce2f7..0000000000
--- 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