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 |