aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/core/SkShader.cpp
diff options
context:
space:
mode:
authorGravatar rmistry <rmistry@google.com>2015-08-28 17:16:50 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2015-08-28 17:16:50 -0700
commita511e6ad1042093bea5b015c22a920313fc57c0b (patch)
tree1ca21761acf027f31f3b02da6cfb3a700fe8d5e8 /src/core/SkShader.cpp
parentecfdc251be71f3d634e76afdd6375bf55fc061aa (diff)
Revert of Change SkShader;asFragmentProcessor signature to no longer take skpaint\grcolor* (patchset #8 id:140001 of https://codereview.chromium.org/1316513002/ )
Reason for revert: Primary suspect in failing DEPS rolls: * https://codereview.chromium.org/1315753006 * https://codereview.chromium.org/1308323006 * https://codereview.chromium.org/1320903004 Primary suspect because the failing win bots did not fail in https://codereview.chromium.org/1315753005 Original issue's description: > Change SkShader;asFragmentProcessor signature to no longer take skpaint\grcolor* > > Committed: https://skia.googlesource.com/skia/+/ecfdc251be71f3d634e76afdd6375bf55fc061aa TBR=joshualitt@google.com,wangyix@google.com,robertphillips@google.com,bsalomon@google.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/1313573005
Diffstat (limited to 'src/core/SkShader.cpp')
-rw-r--r--src/core/SkShader.cpp32
1 files changed, 22 insertions, 10 deletions
diff --git a/src/core/SkShader.cpp b/src/core/SkShader.cpp
index b3edf47dfd..51a8017b5e 100644
--- a/src/core/SkShader.cpp
+++ b/src/core/SkShader.cpp
@@ -214,10 +214,10 @@ SkShader::GradientType SkShader::asAGradient(GradientInfo* info) const {
return kNone_GradientType;
}
-const GrFragmentProcessor* SkShader::asFragmentProcessor(GrContext*, const SkMatrix&,
- const SkMatrix*, SkFilterQuality,
- GrProcessorDataManager*) const {
- return nullptr;
+bool SkShader::asFragmentProcessor(GrContext*, const SkPaint&, const SkMatrix&, const SkMatrix*,
+ GrColor*, GrProcessorDataManager*,
+ GrFragmentProcessor**) const {
+ return false;
}
SkShader* SkShader::refAsALocalMatrixShader(SkMatrix*) const {
@@ -335,12 +335,24 @@ SkShader::GradientType SkColorShader::asAGradient(GradientInfo* info) const {
#if SK_SUPPORT_GPU
#include "SkGr.h"
-#include "effects/GrConstColorProcessor.h"
-const GrFragmentProcessor* SkColorShader::asFragmentProcessor(GrContext*, const SkMatrix&,
- const SkMatrix*, SkFilterQuality,
- GrProcessorDataManager*) const {
- GrColor color = SkColor2GrColor(fColor);
- return GrConstColorProcessor::Create(color, GrConstColorProcessor::kModulateA_InputMode);
+
+bool SkColorShader::asFragmentProcessor(GrContext*, const SkPaint& paint, const SkMatrix&,
+ const SkMatrix*, GrColor* paintColor,
+ GrProcessorDataManager*, GrFragmentProcessor** fp) const {
+ *fp = nullptr;
+ SkColor skColor = fColor;
+ U8CPU newA = SkMulDiv255Round(SkColorGetA(fColor), paint.getAlpha());
+ *paintColor = SkColor2GrColor(SkColorSetA(skColor, newA));
+ return true;
+}
+
+#else
+
+bool SkColorShader::asFragmentProcessor(GrContext*, const SkPaint&, const SkMatrix&,
+ const SkMatrix*, GrColor*, GrProcessorDataManager*,
+ GrFragmentProcessor**) const {
+ SkDEBUGFAIL("Should not call in GPU-less build");
+ return false;
}
#endif