aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core
diff options
context:
space:
mode:
Diffstat (limited to 'src/core')
-rw-r--r--src/core/SkBlitter_Sprite.cpp2
-rw-r--r--src/core/SkColorFilter.cpp2
-rw-r--r--src/core/SkColorSpaceXform.cpp4
-rw-r--r--src/core/SkColorSpaceXform_A2B.cpp3
-rw-r--r--src/core/SkColorSpace_New.cpp20
-rw-r--r--src/core/SkColorSpace_New.h6
-rw-r--r--src/core/SkConvertPixels.cpp2
-rw-r--r--src/core/SkRasterPipeline.cpp10
-rw-r--r--src/core/SkRasterPipeline.h5
-rw-r--r--src/core/SkRasterPipelineBlitter.cpp2
10 files changed, 19 insertions, 37 deletions
diff --git a/src/core/SkBlitter_Sprite.cpp b/src/core/SkBlitter_Sprite.cpp
index eddb42b25b..3537beaea8 100644
--- a/src/core/SkBlitter_Sprite.cpp
+++ b/src/core/SkBlitter_Sprite.cpp
@@ -125,7 +125,7 @@ public:
}
if (fDst.colorSpace() &&
(!fSource.colorSpace() || fSource.colorSpace()->gammaCloseToSRGB())) {
- p.append_from_srgb(fSource.alphaType());
+ p.append(SkRasterPipeline::from_srgb);
}
if (fSource.colorType() == kAlpha_8_SkColorType) {
p.append(SkRasterPipeline::set_rgb, &fPaintColor);
diff --git a/src/core/SkColorFilter.cpp b/src/core/SkColorFilter.cpp
index 9a8b399b9e..3c6beea794 100644
--- a/src/core/SkColorFilter.cpp
+++ b/src/core/SkColorFilter.cpp
@@ -244,7 +244,7 @@ public:
p->append(SkRasterPipeline::to_srgb);
break;
case Direction::kSRGBToLinear:
- p->append_from_srgb(shaderIsOpaque ? kOpaque_SkAlphaType : kUnpremul_SkAlphaType);
+ p->append(SkRasterPipeline::from_srgb);
break;
}
if (!shaderIsOpaque) {
diff --git a/src/core/SkColorSpaceXform.cpp b/src/core/SkColorSpaceXform.cpp
index 0792ec894e..9494e249c1 100644
--- a/src/core/SkColorSpaceXform.cpp
+++ b/src/core/SkColorSpaceXform.cpp
@@ -485,7 +485,7 @@ bool SkColorSpaceXform_XYZ::onApply(ColorFormat dstColorFormat, void* dst,
break;
case kSRGB_SrcGamma:
pipeline.append(SkRasterPipeline::load_u16_be, &src_ctx);
- pipeline.append_from_srgb(kUnpremul_SkAlphaType);
+ pipeline.append(SkRasterPipeline::from_srgb);
break;
case kTable_SrcGamma:
loadTables.fSrc = src;
@@ -503,7 +503,7 @@ bool SkColorSpaceXform_XYZ::onApply(ColorFormat dstColorFormat, void* dst,
break;
case kSRGB_SrcGamma:
pipeline.append(SkRasterPipeline::load_rgb_u16_be, &src_ctx);
- pipeline.append_from_srgb(kUnpremul_SkAlphaType);
+ pipeline.append(SkRasterPipeline::from_srgb);
break;
case kTable_SrcGamma:
loadTables.fSrc = src;
diff --git a/src/core/SkColorSpaceXform_A2B.cpp b/src/core/SkColorSpaceXform_A2B.cpp
index 3543ba40a3..9470247a8d 100644
--- a/src/core/SkColorSpaceXform_A2B.cpp
+++ b/src/core/SkColorSpaceXform_A2B.cpp
@@ -140,8 +140,7 @@ SkColorSpaceXform_A2B::SkColorSpaceXform_A2B(SkColorSpace_A2B* srcSpace,
// Take the fast path for ordinary sRGB.
if (3 == currentChannels && kSRGB_SkGammaNamed == e.gammaNamed()) {
SkCSXformPrintf("fast path from sRGB\n");
- // Images should always start the pipeline as unpremul
- fElementsPipeline.append_from_srgb(kUnpremul_SkAlphaType);
+ fElementsPipeline.append(SkRasterPipeline::from_srgb);
break;
}
diff --git a/src/core/SkColorSpace_New.cpp b/src/core/SkColorSpace_New.cpp
index 0d020c51ed..5db388d07a 100644
--- a/src/core/SkColorSpace_New.cpp
+++ b/src/core/SkColorSpace_New.cpp
@@ -18,9 +18,9 @@ namespace {
return { 1,1, 0,0,0,0,0 };
}
- void linearizeDst(SkRasterPipeline*, SkAlphaType) const override {}
- void linearizeSrc(SkRasterPipeline*, SkAlphaType) const override {}
- void encodeSrc(SkRasterPipeline* ) const override {}
+ void linearizeDst(SkRasterPipeline*) const override {}
+ void linearizeSrc(SkRasterPipeline*) const override {}
+ void encodeSrc(SkRasterPipeline*) const override {}
};
struct SRGBTransferFn : public SkColorSpace_New::TransferFn {
@@ -28,11 +28,11 @@ namespace {
return { 2.4f, 1/1.055f, 0.055f/1.055f, 1/12.92f, 0.04045f, 0, 0 };
}
- void linearizeDst(SkRasterPipeline* p, SkAlphaType at) const override {
- p->append_from_srgb_dst(at);
+ void linearizeDst(SkRasterPipeline* p) const override {
+ p->append(SkRasterPipeline::from_srgb_dst);
}
- void linearizeSrc(SkRasterPipeline* p, SkAlphaType at) const override {
- p->append_from_srgb(at);
+ void linearizeSrc(SkRasterPipeline* p) const override {
+ p->append(SkRasterPipeline::from_srgb);
}
void encodeSrc(SkRasterPipeline* p) const override {
p->append(SkRasterPipeline::to_srgb);
@@ -49,13 +49,11 @@ namespace {
return { fGamma, 1, 0,0,0,0,0 };
}
- void linearizeDst(SkRasterPipeline* p, SkAlphaType) const override {
+ void linearizeDst(SkRasterPipeline* p) const override {
p->append(SkRasterPipeline::gamma_dst, &fGamma);
- // TODO: use SkAlphaType to clamp like SRGBTransferFn does?
}
- void linearizeSrc(SkRasterPipeline* p, SkAlphaType) const override {
+ void linearizeSrc(SkRasterPipeline* p) const override {
p->append(SkRasterPipeline::gamma, &fGamma);
- // TODO: use SkAlphaType to clamp like SRGBTransferFn does?
}
void encodeSrc(SkRasterPipeline* p) const override {
p->append(SkRasterPipeline::gamma, &fInv);
diff --git a/src/core/SkColorSpace_New.h b/src/core/SkColorSpace_New.h
index 42d5a9e55f..6f26c3bf4b 100644
--- a/src/core/SkColorSpace_New.h
+++ b/src/core/SkColorSpace_New.h
@@ -26,9 +26,9 @@ public:
virtual SkColorSpaceTransferFn parameterize() const = 0;
// Append stages to use this transfer function with SkRasterPipeline-based rendering.
- virtual void linearizeDst(SkRasterPipeline*, SkAlphaType) const = 0;
- virtual void linearizeSrc(SkRasterPipeline*, SkAlphaType) const = 0;
- virtual void encodeSrc(SkRasterPipeline* ) const = 0;
+ virtual void linearizeDst(SkRasterPipeline*) const = 0;
+ virtual void linearizeSrc(SkRasterPipeline*) const = 0;
+ virtual void encodeSrc(SkRasterPipeline*) const = 0;
// TODO: Ganesh hooks.
diff --git a/src/core/SkConvertPixels.cpp b/src/core/SkConvertPixels.cpp
index 2175c8bb8e..725730a1e4 100644
--- a/src/core/SkConvertPixels.cpp
+++ b/src/core/SkConvertPixels.cpp
@@ -253,7 +253,7 @@ static void convert_with_pipeline(const SkImageInfo& dstInfo, void* dstRow, size
SkColorSpaceTransferFn srcFn;
if (isColorAware && srcInfo.gammaCloseToSRGB()) {
- pipeline.append_from_srgb(premulState);
+ pipeline.append(SkRasterPipeline::from_srgb);
} else if (isColorAware && !srcInfo.colorSpace()->gammaIsLinear()) {
SkAssertResult(srcInfo.colorSpace()->isNumericalTransferFn(&srcFn));
if (is_just_gamma(srcFn)) {
diff --git a/src/core/SkRasterPipeline.cpp b/src/core/SkRasterPipeline.cpp
index 1134bd2acd..c7a0427b1f 100644
--- a/src/core/SkRasterPipeline.cpp
+++ b/src/core/SkRasterPipeline.cpp
@@ -21,7 +21,6 @@ void SkRasterPipeline::reset() {
}
void SkRasterPipeline::append(StockStage stage, void* ctx) {
- SkASSERT(stage != from_srgb); // Please use append_from_srgb().
SkASSERT(stage != uniform_color); // Please use append_constant_color().
SkASSERT(stage != seed_shader); // Please use append_seed_shader().
this->unchecked_append(stage, ctx);
@@ -123,15 +122,6 @@ void SkRasterPipeline::append_constant_color(SkArenaAlloc* alloc, const float rg
#undef INC_WHITE
#undef INC_COLOR
-// TODO: we used to clamp to [0,a]] here if at == kPremul, but don't anymore.
-// These should no longer need to be special append() methods.
-void SkRasterPipeline::append_from_srgb(SkAlphaType) {
- this->unchecked_append(from_srgb, nullptr);
-}
-void SkRasterPipeline::append_from_srgb_dst(SkAlphaType) {
- this->unchecked_append(from_srgb_dst, nullptr);
-}
-
//static int gCounts[5] = { 0, 0, 0, 0, 0 };
void SkRasterPipeline::append_matrix(SkArenaAlloc* alloc, const SkMatrix& matrix) {
diff --git a/src/core/SkRasterPipeline.h b/src/core/SkRasterPipeline.h
index 005c3dd7ab..ad9fd77a84 100644
--- a/src/core/SkRasterPipeline.h
+++ b/src/core/SkRasterPipeline.h
@@ -125,11 +125,6 @@ public:
void dump() const;
- // Conversion from sRGB can be subtly tricky when premultiplication is involved.
- // Use these helpers to keep things sane.
- void append_from_srgb(SkAlphaType);
- void append_from_srgb_dst(SkAlphaType);
-
// Appends a stage for the specified matrix.
// Tries to optimize the stage by analyzing the type of matrix.
void append_matrix(SkArenaAlloc*, const SkMatrix&);
diff --git a/src/core/SkRasterPipelineBlitter.cpp b/src/core/SkRasterPipelineBlitter.cpp
index 098dab8b09..ac8cdd99ad 100644
--- a/src/core/SkRasterPipelineBlitter.cpp
+++ b/src/core/SkRasterPipelineBlitter.cpp
@@ -238,7 +238,7 @@ void SkRasterPipelineBlitter::append_load_dst(SkRasterPipeline* p) const {
default: break;
}
if (fDst.info().gammaCloseToSRGB()) {
- p->append_from_srgb_dst(fDst.info().alphaType());
+ p->append(SkRasterPipeline::from_srgb_dst);
}
if (fDst.info().alphaType() == kUnpremul_SkAlphaType) {
p->append(SkRasterPipeline::premul_dst);