| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2012 Google Inc. | 2 * Copyright 2012 Google Inc. |
| 3 * | 3 * |
| 4 * Use of this source code is governed by a BSD-style license that can be | 4 * Use of this source code is governed by a BSD-style license that can be |
| 5 * found in the LICENSE file. | 5 * found in the LICENSE file. |
| 6 */ | 6 */ |
| 7 | 7 |
| 8 #include "Sk4fLinearGradient.h" | 8 #include "Sk4fLinearGradient.h" |
| 9 #include "SkLinearGradient.h" | 9 #include "SkLinearGradient.h" |
| 10 | 10 |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 71 } | 71 } |
| 72 | 72 |
| 73 SkFlattenable* SkLinearGradient::CreateProc(SkReadBuffer& buffer) { | 73 SkFlattenable* SkLinearGradient::CreateProc(SkReadBuffer& buffer) { |
| 74 DescriptorScope desc; | 74 DescriptorScope desc; |
| 75 if (!desc.unflatten(buffer)) { | 75 if (!desc.unflatten(buffer)) { |
| 76 return nullptr; | 76 return nullptr; |
| 77 } | 77 } |
| 78 SkPoint pts[2]; | 78 SkPoint pts[2]; |
| 79 pts[0] = buffer.readPoint(); | 79 pts[0] = buffer.readPoint(); |
| 80 pts[1] = buffer.readPoint(); | 80 pts[1] = buffer.readPoint(); |
| 81 return SkGradientShader::CreateLinear(pts, desc.fColors, desc.fPos, desc.fCo
unt, | 81 return SkGradientShader::MakeLinear(pts, desc.fColors, desc.fPos, desc.fCoun
t, desc.fTileMode, |
| 82 desc.fTileMode, desc.fGradFlags, desc.
fLocalMatrix); | 82 desc.fGradFlags, desc.fLocalMatrix).rele
ase(); |
| 83 } | 83 } |
| 84 | 84 |
| 85 void SkLinearGradient::flatten(SkWriteBuffer& buffer) const { | 85 void SkLinearGradient::flatten(SkWriteBuffer& buffer) const { |
| 86 this->INHERITED::flatten(buffer); | 86 this->INHERITED::flatten(buffer); |
| 87 buffer.writePoint(fStart); | 87 buffer.writePoint(fStart); |
| 88 buffer.writePoint(fEnd); | 88 buffer.writePoint(fEnd); |
| 89 } | 89 } |
| 90 | 90 |
| 91 size_t SkLinearGradient::onContextSize(const ContextRec& rec) const { | 91 size_t SkLinearGradient::onContextSize(const ContextRec& rec) const { |
| 92 return use_4f_context(rec, fGradFlags) | 92 return use_4f_context(rec, fGradFlags) |
| (...skipping 330 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 423 | 423 |
| 424 const GrFragmentProcessor* GrLinearGradient::TestCreate(GrProcessorTestData* d)
{ | 424 const GrFragmentProcessor* GrLinearGradient::TestCreate(GrProcessorTestData* d)
{ |
| 425 SkPoint points[] = {{d->fRandom->nextUScalar1(), d->fRandom->nextUScalar1()}
, | 425 SkPoint points[] = {{d->fRandom->nextUScalar1(), d->fRandom->nextUScalar1()}
, |
| 426 {d->fRandom->nextUScalar1(), d->fRandom->nextUScalar1()}
}; | 426 {d->fRandom->nextUScalar1(), d->fRandom->nextUScalar1()}
}; |
| 427 | 427 |
| 428 SkColor colors[kMaxRandomGradientColors]; | 428 SkColor colors[kMaxRandomGradientColors]; |
| 429 SkScalar stopsArray[kMaxRandomGradientColors]; | 429 SkScalar stopsArray[kMaxRandomGradientColors]; |
| 430 SkScalar* stops = stopsArray; | 430 SkScalar* stops = stopsArray; |
| 431 SkShader::TileMode tm; | 431 SkShader::TileMode tm; |
| 432 int colorCount = RandomGradientParams(d->fRandom, colors, &stops, &tm); | 432 int colorCount = RandomGradientParams(d->fRandom, colors, &stops, &tm); |
| 433 SkAutoTUnref<SkShader> shader(SkGradientShader::CreateLinear(points, | 433 auto shader = SkGradientShader::MakeLinear(points, colors, stops, colorCount
, tm); |
| 434 colors, stops,
colorCount, | |
| 435 tm)); | |
| 436 const GrFragmentProcessor* fp = shader->asFragmentProcessor(d->fContext, | 434 const GrFragmentProcessor* fp = shader->asFragmentProcessor(d->fContext, |
| 437 GrTest::TestMatrix(d->fRandom), NULL, kNone_SkFilterQuality); | 435 GrTest::TestMatrix(d->fRandom), NULL, kNone_SkFilterQuality); |
| 438 GrAlwaysAssert(fp); | 436 GrAlwaysAssert(fp); |
| 439 return fp; | 437 return fp; |
| 440 } | 438 } |
| 441 | 439 |
| 442 ///////////////////////////////////////////////////////////////////// | 440 ///////////////////////////////////////////////////////////////////// |
| 443 | 441 |
| 444 void GrGLLinearGradient::emitCode(EmitArgs& args) { | 442 void GrGLLinearGradient::emitCode(EmitArgs& args) { |
| 445 const GrLinearGradient& ge = args.fFp.cast<GrLinearGradient>(); | 443 const GrLinearGradient& ge = args.fFp.cast<GrLinearGradient>(); |
| (...skipping 316 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 762 this->shade4_dx_clamp<false, true>(dstC, count, fx, dx, invDx, dithe
r); | 760 this->shade4_dx_clamp<false, true>(dstC, count, fx, dx, invDx, dithe
r); |
| 763 } | 761 } |
| 764 } else { | 762 } else { |
| 765 if (fApplyAlphaAfterInterp) { | 763 if (fApplyAlphaAfterInterp) { |
| 766 this->shade4_dx_clamp<true, false>(dstC, count, fx, dx, invDx, dithe
r); | 764 this->shade4_dx_clamp<true, false>(dstC, count, fx, dx, invDx, dithe
r); |
| 767 } else { | 765 } else { |
| 768 this->shade4_dx_clamp<false, false>(dstC, count, fx, dx, invDx, dith
er); | 766 this->shade4_dx_clamp<false, false>(dstC, count, fx, dx, invDx, dith
er); |
| 769 } | 767 } |
| 770 } | 768 } |
| 771 } | 769 } |
| OLD | NEW |