aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--include/private/SkImageInfoPriv.h51
-rw-r--r--src/image/SkImage_Gpu.cpp4
-rw-r--r--src/image/SkImage_Raster.cpp2
-rw-r--r--src/image/SkSurface_Raster.cpp5
-rw-r--r--src/images/SkImageEncoderPriv.h14
-rw-r--r--src/images/SkJpegEncoder.cpp2
-rw-r--r--src/images/SkPngEncoder.cpp2
-rw-r--r--src/images/SkWebpEncoder.cpp2
-rw-r--r--tests/ReadPixelsTest.cpp2
9 files changed, 14 insertions, 70 deletions
diff --git a/include/private/SkImageInfoPriv.h b/include/private/SkImageInfoPriv.h
index 56ed16fb9d..144ad0a062 100644
--- a/include/private/SkImageInfoPriv.h
+++ b/include/private/SkImageInfoPriv.h
@@ -88,10 +88,9 @@ static inline size_t SkColorTypeComputeOffset(SkColorType ct, int x, int y, size
}
/**
- * This contains shared checks on SkImageInfo. Depending on the desired color space behavior,
- * the caller should choose one of the two versions below.
+ * Returns true if |info| contains a valid combination of width, height, colorType, and alphaType.
*/
-static inline bool SkImageInfoIsValidCommon(const SkImageInfo& info) {
+static inline bool SkImageInfoIsValid(const SkImageInfo& info) {
if (info.width() <= 0 || info.height() <= 0) {
return false;
}
@@ -114,52 +113,8 @@ static inline bool SkImageInfoIsValidCommon(const SkImageInfo& info) {
}
/**
- * Returns true if |info| contains a valid combination of width, height, colorType, alphaType,
- * colorSpace. Allows numerical color spaces. Returns false otherwise.
- */
-static inline bool SkImageInfoIsValidAllowNumericalCS(const SkImageInfo& info) {
- if (!SkImageInfoIsValidCommon(info)) {
- return false;
- }
-
- SkColorSpaceTransferFn fn;
- if (info.colorSpace() && !info.colorSpace()->isNumericalTransferFn(&fn)) {
- return false;
- }
-
- return true;
-}
-
-/**
- * Returns true if |info| contains a valid combination of width, height, colorType, alphaType,
- * colorSpace. Only supports rendering color spaces. Returns false otherwise.
- */
-static inline bool SkImageInfoIsValidRenderingCS(const SkImageInfo& info) {
- if (!SkImageInfoIsValidCommon(info)) {
- return false;
- }
-
- if (info.colorSpace() &&
- (!info.colorSpace()->gammaCloseToSRGB() && !info.colorSpace()->gammaIsLinear())) {
- return false;
- }
-
- return true;
-}
-
-/**
- * Returns true if |info| contains a valid combination of width, height, colorType, alphaType,
- * colorSpace.
- */
-static inline bool SkImageInfoIsValid(const SkImageInfo& info) {
- return SkImageInfoIsValidAllowNumericalCS(info);
-}
-
-/**
* Returns true if Skia has defined a pixel conversion from the |src| to the |dst|.
* Returns false otherwise. Some discussion of false cases:
- * We will not convert to kIndex8 unless it exactly matches the src, since color tables
- * are immutable.
* We do not convert to kGray8 when the |src| is not kGray8 in the same color space.
* We may add this feature - it just requires some work to convert to luminance while
* handling color spaces correctly. Currently no one is asking for this.
@@ -174,7 +129,7 @@ static inline bool SkImageInfoIsValid(const SkImageInfo& info) {
* conversion is not well-defined.
*/
static inline bool SkImageInfoValidConversion(const SkImageInfo& dst, const SkImageInfo& src) {
- if (!SkImageInfoIsValidAllowNumericalCS(dst) || !SkImageInfoIsValidAllowNumericalCS(src)) {
+ if (!SkImageInfoIsValid(dst) || !SkImageInfoIsValid(src)) {
return false;
}
diff --git a/src/image/SkImage_Gpu.cpp b/src/image/SkImage_Gpu.cpp
index ed9021c301..4759f4efeb 100644
--- a/src/image/SkImage_Gpu.cpp
+++ b/src/image/SkImage_Gpu.cpp
@@ -329,7 +329,7 @@ bool validate_backend_texture(GrContext* ctx, const GrBackendTexture& tex, GrPix
// TODO: Create a SkImageColorInfo struct for color, alpha, and color space so we don't need to
// create a fake image info here.
SkImageInfo info = SkImageInfo::Make(1, 1, ct, at, cs);
- if (!SkImageInfoIsValidAllowNumericalCS(info)) {
+ if (!SkImageInfoIsValid(info)) {
return false;
}
@@ -697,7 +697,7 @@ sk_sp<SkImage> SkImage_Gpu::MakePromiseTexture(GrContext* context,
}
SkImageInfo info = SkImageInfo::Make(width, height, colorType, alphaType, colorSpace);
- if (!SkImageInfoIsValidAllowNumericalCS(info)) {
+ if (!SkImageInfoIsValid(info)) {
return nullptr;
}
GrPixelConfig config = kUnknown_GrPixelConfig;
diff --git a/src/image/SkImage_Raster.cpp b/src/image/SkImage_Raster.cpp
index f392a83b35..ca01780d36 100644
--- a/src/image/SkImage_Raster.cpp
+++ b/src/image/SkImage_Raster.cpp
@@ -315,7 +315,7 @@ sk_sp<SkImage> SkMakeImageFromRasterBitmapPriv(const SkBitmap& bm, SkCopyPixelsM
}
sk_sp<SkImage> SkMakeImageFromRasterBitmap(const SkBitmap& bm, SkCopyPixelsMode cpm) {
- if (!SkImageInfoIsValidAllowNumericalCS(bm.info()) || bm.rowBytes() < bm.info().minRowBytes()) {
+ if (!SkImageInfoIsValid(bm.info()) || bm.rowBytes() < bm.info().minRowBytes()) {
return nullptr;
}
diff --git a/src/image/SkSurface_Raster.cpp b/src/image/SkSurface_Raster.cpp
index a3f69c244f..73ff4bab22 100644
--- a/src/image/SkSurface_Raster.cpp
+++ b/src/image/SkSurface_Raster.cpp
@@ -38,10 +38,7 @@ private:
///////////////////////////////////////////////////////////////////////////////
bool SkSurfaceValidateRasterInfo(const SkImageInfo& info, size_t rowBytes) {
- if (!SkImageInfoIsValidCommon(info)) {
- return false;
- }
- if (info.isEmpty()) {
+ if (!SkImageInfoIsValid(info)) {
return false;
}
diff --git a/src/images/SkImageEncoderPriv.h b/src/images/SkImageEncoderPriv.h
index e6903bc5e8..a7707fec52 100644
--- a/src/images/SkImageEncoderPriv.h
+++ b/src/images/SkImageEncoderPriv.h
@@ -11,17 +11,9 @@
#include "SkImageEncoder.h"
#include "SkImageInfoPriv.h"
-static inline bool SkPixmapIsValid(const SkPixmap& src,
- SkTransferFunctionBehavior unpremulBehavior)
-{
- if (SkTransferFunctionBehavior::kRespect == unpremulBehavior) {
- if (!SkImageInfoIsValidRenderingCS(src.info())) {
- return false;
- }
- } else {
- if (!SkImageInfoIsValidAllowNumericalCS(src.info())) {
- return false;
- }
+static inline bool SkPixmapIsValid(const SkPixmap& src) {
+ if (!SkImageInfoIsValid(src.info())) {
+ return false;
}
if (!src.addr() || src.rowBytes() < src.info().minRowBytes()) {
diff --git a/src/images/SkJpegEncoder.cpp b/src/images/SkJpegEncoder.cpp
index 606b553537..9c139f707b 100644
--- a/src/images/SkJpegEncoder.cpp
+++ b/src/images/SkJpegEncoder.cpp
@@ -181,7 +181,7 @@ bool SkJpegEncoderMgr::setParams(const SkImageInfo& srcInfo, const SkJpegEncoder
std::unique_ptr<SkEncoder> SkJpegEncoder::Make(SkWStream* dst, const SkPixmap& src,
const Options& options) {
- if (!SkPixmapIsValid(src, options.fBlendBehavior)) {
+ if (!SkPixmapIsValid(src)) {
return nullptr;
}
diff --git a/src/images/SkPngEncoder.cpp b/src/images/SkPngEncoder.cpp
index 19fc27e4a6..fffda73fd0 100644
--- a/src/images/SkPngEncoder.cpp
+++ b/src/images/SkPngEncoder.cpp
@@ -364,7 +364,7 @@ void SkPngEncoderMgr::chooseProc(const SkImageInfo& srcInfo,
std::unique_ptr<SkEncoder> SkPngEncoder::Make(SkWStream* dst, const SkPixmap& src,
const Options& options) {
- if (!SkPixmapIsValid(src, options.fUnpremulBehavior)) {
+ if (!SkPixmapIsValid(src)) {
return nullptr;
}
diff --git a/src/images/SkWebpEncoder.cpp b/src/images/SkWebpEncoder.cpp
index ee13563ea7..2cb55d2f04 100644
--- a/src/images/SkWebpEncoder.cpp
+++ b/src/images/SkWebpEncoder.cpp
@@ -109,7 +109,7 @@ static int stream_writer(const uint8_t* data, size_t data_size,
}
bool SkWebpEncoder::Encode(SkWStream* stream, const SkPixmap& pixmap, const Options& opts) {
- if (!SkPixmapIsValid(pixmap, opts.fUnpremulBehavior)) {
+ if (!SkPixmapIsValid(pixmap)) {
return false;
}
diff --git a/tests/ReadPixelsTest.cpp b/tests/ReadPixelsTest.cpp
index 12a567fd8a..7bd1fe5914 100644
--- a/tests/ReadPixelsTest.cpp
+++ b/tests/ReadPixelsTest.cpp
@@ -610,7 +610,7 @@ static const void* five_reference_pixels(SkColorType colorType) {
static void test_conversion(skiatest::Reporter* r, const SkImageInfo& dstInfo,
const SkImageInfo& srcInfo) {
- if (!SkImageInfoIsValidRenderingCS(srcInfo)) {
+ if (!SkImageInfoIsValid(srcInfo)) {
return;
}