Lighting filter uses input on raster path
BUG=
R=senorblanco@chromium.org
Author: sugoi@chromium.org
Review URL: https://codereview.chromium.org/35703002
git-svn-id: http://skia.googlecode.com/svn/trunk@11918 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/src/effects/SkLightingImageFilter.cpp b/src/effects/SkLightingImageFilter.cpp
index f81cc1c..4f05d25 100644
--- a/src/effects/SkLightingImageFilter.cpp
+++ b/src/effects/SkLightingImageFilter.cpp
@@ -910,11 +910,17 @@
buffer.writeScalar(fKD);
}
-bool SkDiffuseLightingImageFilter::onFilterImage(Proxy*,
- const SkBitmap& src,
+bool SkDiffuseLightingImageFilter::onFilterImage(Proxy* proxy,
+ const SkBitmap& source,
const SkMatrix& ctm,
SkBitmap* dst,
SkIPoint* offset) {
+ SkImageFilter* input = getInput(0);
+ SkBitmap src = source;
+ if (input && !input->filterImage(proxy, source, ctm, &src, offset)) {
+ return false;
+ }
+
if (src.config() != SkBitmap::kARGB_8888_Config) {
return false;
}
@@ -988,11 +994,17 @@
buffer.writeScalar(fShininess);
}
-bool SkSpecularLightingImageFilter::onFilterImage(Proxy*,
- const SkBitmap& src,
+bool SkSpecularLightingImageFilter::onFilterImage(Proxy* proxy,
+ const SkBitmap& source,
const SkMatrix& ctm,
SkBitmap* dst,
SkIPoint* offset) {
+ SkImageFilter* input = getInput(0);
+ SkBitmap src = source;
+ if (input && !input->filterImage(proxy, source, ctm, &src, offset)) {
+ return false;
+ }
+
if (src.config() != SkBitmap::kARGB_8888_Config) {
return false;
}