aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/effects
diff options
context:
space:
mode:
authorGravatar Mike Reed <reed@google.com>2017-05-31 15:03:02 -0400
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2017-05-31 19:54:05 +0000
commit25f3805efa465bc3f804f192fe1ee64450f01d7c (patch)
treefd32acec7e98cc4793d7488bbb89f582b5770de6 /src/effects
parentd696df74d4b2d70fb7b9078c6092d5eb1858d03d (diff)
slant colorfilter away from filterSpan4f
rename to make it easy to delete any impl that also had onAppendStages... i.e. rename to make it clear that it is just an impl trick for rasterpipeline. Bug: skia: Change-Id: If3c3b2811eff12d399cdf7a77552c01e72c06996 Reviewed-on: https://skia-review.googlesource.com/18234 Reviewed-by: Mike Klein <mtklein@chromium.org> Commit-Queue: Mike Reed <reed@google.com>
Diffstat (limited to 'src/effects')
-rw-r--r--src/effects/SkColorMatrixFilter.cpp3
-rw-r--r--src/effects/SkHighContrastFilter.cpp7
-rw-r--r--src/effects/SkLumaColorFilter.cpp19
-rw-r--r--src/effects/SkOverdrawColorFilter.cpp2
-rw-r--r--src/effects/SkOverdrawColorFilter.h3
-rw-r--r--src/effects/SkTableColorFilter.cpp36
6 files changed, 3 insertions, 67 deletions
diff --git a/src/effects/SkColorMatrixFilter.cpp b/src/effects/SkColorMatrixFilter.cpp
index 6326590721..12cfbb36b9 100644
--- a/src/effects/SkColorMatrixFilter.cpp
+++ b/src/effects/SkColorMatrixFilter.cpp
@@ -47,9 +47,6 @@ public:
void filterSpan(const SkPMColor src[], int count, SkPMColor dst[]) const override {
fMatrixFilter->filterSpan(src, count, dst);
}
- void filterSpan4f(const SkPM4f src[], int count, SkPM4f dst[]) const override {
- fMatrixFilter->filterSpan4f(src, count, dst);
- }
uint32_t getFlags() const override {
return fMatrixFilter->getFlags();
}
diff --git a/src/effects/SkHighContrastFilter.cpp b/src/effects/SkHighContrastFilter.cpp
index b8efabf98a..c6f132842e 100644
--- a/src/effects/SkHighContrastFilter.cpp
+++ b/src/effects/SkHighContrastFilter.cpp
@@ -144,7 +144,6 @@ public:
#endif
void filterSpan(const SkPMColor src[], int count, SkPMColor dst[]) const override;
- void filterSpan4f(const SkPM4f src[], int count, SkPM4f result[]) const override;
void onAppendStages(SkRasterPipeline* p,
SkColorSpace* dst,
SkArenaAlloc* scratch,
@@ -179,12 +178,6 @@ void SkHighContrast_Filter::filterSpan(const SkPMColor src[], int count, SkPMCol
}
}
-void SkHighContrast_Filter::filterSpan4f(const SkPM4f src[], int count, SkPM4f dst[]) const {
- for (int i = 0; i < count; ++i) {
- dst[i] = ApplyHighContrastFilter(fConfig, dst[i].unpremul()).premul();
- }
-}
-
void SkHighContrast_Filter::onAppendStages(SkRasterPipeline* p,
SkColorSpace* dstCS,
SkArenaAlloc* alloc,
diff --git a/src/effects/SkLumaColorFilter.cpp b/src/effects/SkLumaColorFilter.cpp
index f0e58c06f8..efe44a4258 100644
--- a/src/effects/SkLumaColorFilter.cpp
+++ b/src/effects/SkLumaColorFilter.cpp
@@ -36,25 +36,6 @@ void SkLumaColorFilter::filterSpan(const SkPMColor src[], int count, SkPMColor d
}
}
-void SkLumaColorFilter::filterSpan4f(const SkPM4f src[], int count, SkPM4f dst[]) const {
- for (int i = 0; i < count; ++i) {
- /*
- * While LuminanceToAlpha is defined to operate on un-premultiplied
- * inputs, due to the final alpha scaling it can be computed based on
- * premultipled components:
- *
- * LumA = (k1 * r / a + k2 * g / a + k3 * b / a) * a
- * LumA = (k1 * r + k2 * g + k3 * b)
- */
- dst[i].fVec[SkPM4f::R] = 0;
- dst[i].fVec[SkPM4f::G] = 0;
- dst[i].fVec[SkPM4f::B] = 0;
- dst[i].fVec[SkPM4f::A] = src[i].r() * SK_LUM_COEFF_R +
- src[i].g() * SK_LUM_COEFF_G +
- src[i].b() * SK_LUM_COEFF_B;
- }
-}
-
void SkLumaColorFilter::onAppendStages(SkRasterPipeline* p,
SkColorSpace* dst,
SkArenaAlloc* scratch,
diff --git a/src/effects/SkOverdrawColorFilter.cpp b/src/effects/SkOverdrawColorFilter.cpp
index 73aaafa2ac..bbeb028144 100644
--- a/src/effects/SkOverdrawColorFilter.cpp
+++ b/src/effects/SkOverdrawColorFilter.cpp
@@ -20,7 +20,7 @@ void SkOverdrawColorFilter::filterSpan(const SkPMColor src[], int count, SkPMCol
}
}
-void SkOverdrawColorFilter::filterSpan4f(const SkPM4f src[], int count, SkPM4f dst[]) const {
+void SkOverdrawColorFilter::onFilterStage(const SkPM4f src[], int count, SkPM4f dst[]) const {
for (int i = 0; i < count; ++i) {
uint8_t alpha = (int)(src[i].a() * 255);
if (alpha >= kNumColors) {
diff --git a/src/effects/SkOverdrawColorFilter.h b/src/effects/SkOverdrawColorFilter.h
index fd56372dc4..09c5173bf6 100644
--- a/src/effects/SkOverdrawColorFilter.h
+++ b/src/effects/SkOverdrawColorFilter.h
@@ -32,7 +32,6 @@ public:
#endif
void filterSpan(const SkPMColor src[], int count, SkPMColor dst[]) const override;
- void filterSpan4f(const SkPM4f src[], int count, SkPM4f result[]) const override;
void toString(SkString* str) const override;
static sk_sp<SkFlattenable> CreateProc(SkReadBuffer& buffer);
@@ -47,6 +46,8 @@ private:
memcpy(fColors, colors, kNumColors * sizeof(SkPMColor));
}
+ void onFilterStage(const SkPM4f src[], int count, SkPM4f result[]) const override;
+
SkPMColor fColors[kNumColors];
typedef SkColorFilter INHERITED;
diff --git a/src/effects/SkTableColorFilter.cpp b/src/effects/SkTableColorFilter.cpp
index b5156ae5bf..93d784fe60 100644
--- a/src/effects/SkTableColorFilter.cpp
+++ b/src/effects/SkTableColorFilter.cpp
@@ -90,7 +90,6 @@ public:
#endif
void filterSpan(const SkPMColor src[], int count, SkPMColor dst[]) const override;
- void filterSpan4f(const SkPM4f src[], int count, SkPM4f result[]) const override;
SK_TO_STRING_OVERRIDE()
@@ -185,41 +184,6 @@ void SkTable_ColorFilter::filterSpan(const SkPMColor src[], int count, SkPMColor
}
}
-void SkTable_ColorFilter::filterSpan4f(const SkPM4f src[], int count, SkPM4f dst[]) const {
- const uint8_t* table = fStorage;
- const uint8_t* tableA = gIdentityTable;
- const uint8_t* tableR = gIdentityTable;
- const uint8_t* tableG = gIdentityTable;
- const uint8_t* tableB = gIdentityTable;
- if (fFlags & kA_Flag) {
- tableA = table; table += 256;
- }
- if (fFlags & kR_Flag) {
- tableR = table; table += 256;
- }
- if (fFlags & kG_Flag) {
- tableG = table; table += 256;
- }
- if (fFlags & kB_Flag) {
- tableB = table;
- }
-
- const float oneOver255 = 1.0f / 255;
- for (int i = 0; i < count; ++i) {
- SkColor4f c = src[i].unpremul();
- int r = (int)(c.fR * 255.999) & 0xFF;
- int g = (int)(c.fG * 255.999) & 0xFF;
- int b = (int)(c.fB * 255.999) & 0xFF;
- int a = (int)(c.fA * 255.999) & 0xFF;
-
- SkColor4f d {
- tableR[r] * oneOver255, tableG[g] * oneOver255,
- tableB[b] * oneOver255, tableA[a] * oneOver255,
- };
- dst[i] = d.premul();
- }
-}
-
#ifndef SK_IGNORE_TO_STRING
void SkTable_ColorFilter::toString(SkString* str) const {
const uint8_t* table = fStorage;