diff options
author | 2015-08-28 17:16:50 -0700 | |
---|---|---|
committer | 2015-08-28 17:16:50 -0700 | |
commit | a511e6ad1042093bea5b015c22a920313fc57c0b (patch) | |
tree | 1ca21761acf027f31f3b02da6cfb3a700fe8d5e8 /src/effects/gradients/SkSweepGradient.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/effects/gradients/SkSweepGradient.cpp')
-rw-r--r-- | src/effects/gradients/SkSweepGradient.cpp | 42 |
1 files changed, 27 insertions, 15 deletions
diff --git a/src/effects/gradients/SkSweepGradient.cpp b/src/effects/gradients/SkSweepGradient.cpp index ae88c8a311..c6699e87e0 100644 --- a/src/effects/gradients/SkSweepGradient.cpp +++ b/src/effects/gradients/SkSweepGradient.cpp @@ -167,7 +167,6 @@ void SkSweepGradient::SweepGradientContext::shadeSpan16(int x, int y, uint16_t* #if SK_SUPPORT_GPU #include "SkGr.h" -#include "effects/GrExtractAlphaFragmentProcessor.h" #include "gl/builders/GrGLProgramBuilder.h" class GrGLSweepGradient : public GrGLGradientEffect { @@ -227,7 +226,7 @@ private: GR_DEFINE_FRAGMENT_PROCESSOR_TEST(GrSweepGradient); -const GrFragmentProcessor* GrSweepGradient::TestCreate(GrProcessorTestData* d) { +GrFragmentProcessor* GrSweepGradient::TestCreate(GrProcessorTestData* d) { SkPoint center = {d->fRandom->nextUScalar1(), d->fRandom->nextUScalar1()}; SkColor colors[kMaxRandomGradientColors]; @@ -237,11 +236,12 @@ const GrFragmentProcessor* GrSweepGradient::TestCreate(GrProcessorTestData* d) { int colorCount = RandomGradientParams(d->fRandom, colors, &stops, &tmIgnored); SkAutoTUnref<SkShader> shader(SkGradientShader::CreateSweep(center.fX, center.fY, colors, stops, colorCount)); - const GrFragmentProcessor* fp = shader->asFragmentProcessor(d->fContext, - GrTest::TestMatrix(d->fRandom), - NULL, kNone_SkFilterQuality, - d->fProcDataManager); - GrAlwaysAssert(fp); + SkPaint paint; + GrFragmentProcessor* fp; + GrColor paintColor; + SkAssertResult(shader->asFragmentProcessor(d->fContext, paint, + GrTest::TestMatrix(d->fRandom), nullptr, + &paintColor, d->fProcDataManager, &fp)); return fp; } @@ -270,26 +270,38 @@ void GrGLSweepGradient::emitCode(EmitArgs& args) { ///////////////////////////////////////////////////////////////////// -const GrFragmentProcessor* SkSweepGradient::asFragmentProcessor(GrContext* context, - const SkMatrix& viewM, const SkMatrix* localMatrix, SkFilterQuality, - GrProcessorDataManager* procDataManager) const { +bool SkSweepGradient::asFragmentProcessor(GrContext* context, const SkPaint& paint, + const SkMatrix& viewM, + const SkMatrix* localMatrix, GrColor* paintColor, + GrProcessorDataManager* procDataManager, + GrFragmentProcessor** effect) const { SkMatrix matrix; if (!this->getLocalMatrix().invert(&matrix)) { - return nullptr; + return false; } if (localMatrix) { SkMatrix inv; if (!localMatrix->invert(&inv)) { - return nullptr; + return false; } matrix.postConcat(inv); } matrix.postConcat(fPtsToUnit); - SkAutoTUnref<const GrFragmentProcessor> inner( - GrSweepGradient::Create(context, procDataManager, *this, matrix)); - return GrExtractAlphaFragmentProcessor::Create(inner); + *effect = GrSweepGradient::Create(context, procDataManager, *this, matrix); + *paintColor = SkColor2GrColorJustAlpha(paint.getColor()); + + return true; +} + +#else + +bool SkSweepGradient::asFragmentProcessor(GrContext*, const SkPaint&, const SkMatrix&, + const SkMatrix*, GrColor*, GrProcessorDataManager*, + GrFragmentProcessor**) const { + SkDEBUGFAIL("Should not call in GPU-less build"); + return false; } #endif |