diff options
author | 2015-08-28 17:16:50 -0700 | |
---|---|---|
committer | 2015-08-28 17:16:50 -0700 | |
commit | a511e6ad1042093bea5b015c22a920313fc57c0b (patch) | |
tree | 1ca21761acf027f31f3b02da6cfb3a700fe8d5e8 /src/core/SkShader.cpp | |
parent | ecfdc251be71f3d634e76afdd6375bf55fc061aa (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.cpp | 32 |
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 |