Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(502)

Side by Side Diff: src/effects/gradients/SkTwoPointConicalGradient_gpu.cpp

Issue 1316513002: Change SkShader;asFragmentProcessor signature to no longer take skpaint\grcolor* (Closed) Base URL: https://skia.googlesource.com/skia.git@things
Patch Set: Address comments, fix roll(?) Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/effects/gradients/SkTwoPointConicalGradient.cpp ('k') | src/gpu/GrAAConvexPathRenderer.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 1
2 /* 2 /*
3 * Copyright 2014 Google Inc. 3 * Copyright 2014 Google Inc.
4 * 4 *
5 * Use of this source code is governed by a BSD-style license that can be 5 * Use of this source code is governed by a BSD-style license that can be
6 * found in the LICENSE file. 6 * found in the LICENSE file.
7 */ 7 */
8 8
9 #include "SkTwoPointConicalGradient_gpu.h" 9 #include "SkTwoPointConicalGradient_gpu.h"
10 10
(...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after
176 176
177 GrGLFragmentProcessor* Edge2PtConicalEffect::onCreateGLInstance() const { 177 GrGLFragmentProcessor* Edge2PtConicalEffect::onCreateGLInstance() const {
178 return new GLEdge2PtConicalEffect(*this); 178 return new GLEdge2PtConicalEffect(*this);
179 } 179 }
180 180
181 GR_DEFINE_FRAGMENT_PROCESSOR_TEST(Edge2PtConicalEffect); 181 GR_DEFINE_FRAGMENT_PROCESSOR_TEST(Edge2PtConicalEffect);
182 182
183 /* 183 /*
184 * All Two point conical gradient test create functions may occasionally create edge case shaders 184 * All Two point conical gradient test create functions may occasionally create edge case shaders
185 */ 185 */
186 GrFragmentProcessor* Edge2PtConicalEffect::TestCreate(GrProcessorTestData* d) { 186 const GrFragmentProcessor* Edge2PtConicalEffect::TestCreate(GrProcessorTestData* d) {
187 SkPoint center1 = {d->fRandom->nextUScalar1(), d->fRandom->nextUScalar1()}; 187 SkPoint center1 = {d->fRandom->nextUScalar1(), d->fRandom->nextUScalar1()};
188 SkScalar radius1 = d->fRandom->nextUScalar1(); 188 SkScalar radius1 = d->fRandom->nextUScalar1();
189 SkPoint center2; 189 SkPoint center2;
190 SkScalar radius2; 190 SkScalar radius2;
191 do { 191 do {
192 center2.set(d->fRandom->nextUScalar1(), d->fRandom->nextUScalar1()); 192 center2.set(d->fRandom->nextUScalar1(), d->fRandom->nextUScalar1());
193 // If the circles are identical the factory will give us an empty shader . 193 // If the circles are identical the factory will give us an empty shader .
194 // This will happen if we pick identical centers 194 // This will happen if we pick identical centers
195 } while (center1 == center2); 195 } while (center1 == center2);
196 196
197 // Below makes sure that circle one is contained within circle two 197 // Below makes sure that circle one is contained within circle two
198 // and both circles are touching on an edge 198 // and both circles are touching on an edge
199 SkPoint diff = center2 - center1; 199 SkPoint diff = center2 - center1;
200 SkScalar diffLen = diff.length(); 200 SkScalar diffLen = diff.length();
201 radius2 = radius1 + diffLen; 201 radius2 = radius1 + diffLen;
202 202
203 SkColor colors[kMaxRandomGradientColors]; 203 SkColor colors[kMaxRandomGradientColors];
204 SkScalar stopsArray[kMaxRandomGradientColors]; 204 SkScalar stopsArray[kMaxRandomGradientColors];
205 SkScalar* stops = stopsArray; 205 SkScalar* stops = stopsArray;
206 SkShader::TileMode tm; 206 SkShader::TileMode tm;
207 int colorCount = RandomGradientParams(d->fRandom, colors, &stops, &tm); 207 int colorCount = RandomGradientParams(d->fRandom, colors, &stops, &tm);
208 SkAutoTUnref<SkShader> shader(SkGradientShader::CreateTwoPointConical(center 1, radius1, 208 SkAutoTUnref<SkShader> shader(SkGradientShader::CreateTwoPointConical(center 1, radius1,
209 center 2, radius2, 209 center 2, radius2,
210 colors , stops, colorCount, 210 colors , stops, colorCount,
211 tm)); 211 tm));
212 SkPaint paint; 212 const GrFragmentProcessor* fp = shader->asFragmentProcessor(d->fContext,
213 GrFragmentProcessor* fp; 213 GrTest::TestMatrix(d->fRandom), NULL, kNone_SkFilterQuality, d->fProcDat aManager);
214 GrColor paintColor; 214 GrAlwaysAssert(fp);
215 SkAssertResult(shader->asFragmentProcessor(d->fContext, paint,
216 GrTest::TestMatrix(d->fRandom), n ullptr,
217 &paintColor, d->fProcDataManager, &fp));
218 return fp; 215 return fp;
219 } 216 }
220 217
221 GLEdge2PtConicalEffect::GLEdge2PtConicalEffect(const GrProcessor&) 218 GLEdge2PtConicalEffect::GLEdge2PtConicalEffect(const GrProcessor&)
222 : fVSVaryingName(nullptr) 219 : fVSVaryingName(nullptr)
223 , fFSVaryingName(nullptr) 220 , fFSVaryingName(nullptr)
224 , fCachedRadius(-SK_ScalarMax) 221 , fCachedRadius(-SK_ScalarMax)
225 , fCachedDiffRadius(-SK_ScalarMax) {} 222 , fCachedDiffRadius(-SK_ScalarMax) {}
226 223
227 void GLEdge2PtConicalEffect::emitCode(EmitArgs& args) { 224 void GLEdge2PtConicalEffect::emitCode(EmitArgs& args) {
(...skipping 230 matching lines...) Expand 10 before | Expand all | Expand 10 after
458 455
459 GrGLFragmentProcessor* FocalOutside2PtConicalEffect::onCreateGLInstance() const { 456 GrGLFragmentProcessor* FocalOutside2PtConicalEffect::onCreateGLInstance() const {
460 return new GLFocalOutside2PtConicalEffect(*this); 457 return new GLFocalOutside2PtConicalEffect(*this);
461 } 458 }
462 459
463 GR_DEFINE_FRAGMENT_PROCESSOR_TEST(FocalOutside2PtConicalEffect); 460 GR_DEFINE_FRAGMENT_PROCESSOR_TEST(FocalOutside2PtConicalEffect);
464 461
465 /* 462 /*
466 * All Two point conical gradient test create functions may occasionally create edge case shaders 463 * All Two point conical gradient test create functions may occasionally create edge case shaders
467 */ 464 */
468 GrFragmentProcessor* FocalOutside2PtConicalEffect::TestCreate(GrProcessorTestDat a* d) { 465 const GrFragmentProcessor* FocalOutside2PtConicalEffect::TestCreate(GrProcessorT estData* d) {
469 SkPoint center1 = {d->fRandom->nextUScalar1(), d->fRandom->nextUScalar1()}; 466 SkPoint center1 = {d->fRandom->nextUScalar1(), d->fRandom->nextUScalar1()};
470 SkScalar radius1 = 0.f; 467 SkScalar radius1 = 0.f;
471 SkPoint center2; 468 SkPoint center2;
472 SkScalar radius2; 469 SkScalar radius2;
473 do { 470 do {
474 center2.set(d->fRandom->nextUScalar1(), d->fRandom->nextUScalar1()); 471 center2.set(d->fRandom->nextUScalar1(), d->fRandom->nextUScalar1());
475 // Need to make sure the centers are not the same or else focal point wi ll be inside 472 // Need to make sure the centers are not the same or else focal point wi ll be inside
476 } while (center1 == center2); 473 } while (center1 == center2);
477 SkPoint diff = center2 - center1; 474 SkPoint diff = center2 - center1;
478 SkScalar diffLen = diff.length(); 475 SkScalar diffLen = diff.length();
479 // Below makes sure that the focal point is not contained within circle two 476 // Below makes sure that the focal point is not contained within circle two
480 radius2 = d->fRandom->nextRangeF(0.f, diffLen); 477 radius2 = d->fRandom->nextRangeF(0.f, diffLen);
481 478
482 SkColor colors[kMaxRandomGradientColors]; 479 SkColor colors[kMaxRandomGradientColors];
483 SkScalar stopsArray[kMaxRandomGradientColors]; 480 SkScalar stopsArray[kMaxRandomGradientColors];
484 SkScalar* stops = stopsArray; 481 SkScalar* stops = stopsArray;
485 SkShader::TileMode tm; 482 SkShader::TileMode tm;
486 int colorCount = RandomGradientParams(d->fRandom, colors, &stops, &tm); 483 int colorCount = RandomGradientParams(d->fRandom, colors, &stops, &tm);
487 SkAutoTUnref<SkShader> shader(SkGradientShader::CreateTwoPointConical(center 1, radius1, 484 SkAutoTUnref<SkShader> shader(SkGradientShader::CreateTwoPointConical(center 1, radius1,
488 center 2, radius2, 485 center 2, radius2,
489 colors , stops, colorCount, 486 colors , stops, colorCount,
490 tm)); 487 tm));
491 SkPaint paint; 488 const GrFragmentProcessor* fp = shader->asFragmentProcessor(d->fContext,
492 GrFragmentProcessor* effect; 489 GrTest::TestMatrix(d->fRandom), NULL, kNone_SkFilterQuality, d->fProcDat aManager);
493 GrColor paintColor; 490 GrAlwaysAssert(fp);
494 GrPaint grPaint; 491 return fp;
495 SkAssertResult(shader->asFragmentProcessor(d->fContext, paint,
496 GrTest::TestMatrix(d->fRandom), n ullptr,
497 &paintColor, d->fProcDataManager,
498 &effect));
499 return effect;
500 } 492 }
501 493
502 GLFocalOutside2PtConicalEffect::GLFocalOutside2PtConicalEffect(const GrProcessor & processor) 494 GLFocalOutside2PtConicalEffect::GLFocalOutside2PtConicalEffect(const GrProcessor & processor)
503 : fVSVaryingName(nullptr) 495 : fVSVaryingName(nullptr)
504 , fFSVaryingName(nullptr) 496 , fFSVaryingName(nullptr)
505 , fCachedFocal(SK_ScalarMax) { 497 , fCachedFocal(SK_ScalarMax) {
506 const FocalOutside2PtConicalEffect& data = processor.cast<FocalOutside2PtCon icalEffect>(); 498 const FocalOutside2PtConicalEffect& data = processor.cast<FocalOutside2PtCon icalEffect>();
507 fIsFlipped = data.isFlipped(); 499 fIsFlipped = data.isFlipped();
508 } 500 }
509 501
(...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after
669 661
670 GrGLFragmentProcessor* FocalInside2PtConicalEffect::onCreateGLInstance() const { 662 GrGLFragmentProcessor* FocalInside2PtConicalEffect::onCreateGLInstance() const {
671 return new GLFocalInside2PtConicalEffect(*this); 663 return new GLFocalInside2PtConicalEffect(*this);
672 } 664 }
673 665
674 GR_DEFINE_FRAGMENT_PROCESSOR_TEST(FocalInside2PtConicalEffect); 666 GR_DEFINE_FRAGMENT_PROCESSOR_TEST(FocalInside2PtConicalEffect);
675 667
676 /* 668 /*
677 * All Two point conical gradient test create functions may occasionally create edge case shaders 669 * All Two point conical gradient test create functions may occasionally create edge case shaders
678 */ 670 */
679 GrFragmentProcessor* FocalInside2PtConicalEffect::TestCreate(GrProcessorTestData * d) { 671 const GrFragmentProcessor* FocalInside2PtConicalEffect::TestCreate(GrProcessorTe stData* d) {
680 SkPoint center1 = {d->fRandom->nextUScalar1(), d->fRandom->nextUScalar1()}; 672 SkPoint center1 = {d->fRandom->nextUScalar1(), d->fRandom->nextUScalar1()};
681 SkScalar radius1 = 0.f; 673 SkScalar radius1 = 0.f;
682 SkPoint center2; 674 SkPoint center2;
683 SkScalar radius2; 675 SkScalar radius2;
684 do { 676 do {
685 center2.set(d->fRandom->nextUScalar1(), d->fRandom->nextUScalar1()); 677 center2.set(d->fRandom->nextUScalar1(), d->fRandom->nextUScalar1());
686 // Below makes sure radius2 is larger enouch such that the focal point 678 // Below makes sure radius2 is larger enouch such that the focal point
687 // is inside the end circle 679 // is inside the end circle
688 SkScalar increase = d->fRandom->nextUScalar1(); 680 SkScalar increase = d->fRandom->nextUScalar1();
689 SkPoint diff = center2 - center1; 681 SkPoint diff = center2 - center1;
690 SkScalar diffLen = diff.length(); 682 SkScalar diffLen = diff.length();
691 radius2 = diffLen + increase; 683 radius2 = diffLen + increase;
692 // If the circles are identical the factory will give us an empty shader . 684 // If the circles are identical the factory will give us an empty shader .
693 } while (radius1 == radius2 && center1 == center2); 685 } while (radius1 == radius2 && center1 == center2);
694 686
695 SkColor colors[kMaxRandomGradientColors]; 687 SkColor colors[kMaxRandomGradientColors];
696 SkScalar stopsArray[kMaxRandomGradientColors]; 688 SkScalar stopsArray[kMaxRandomGradientColors];
697 SkScalar* stops = stopsArray; 689 SkScalar* stops = stopsArray;
698 SkShader::TileMode tm; 690 SkShader::TileMode tm;
699 int colorCount = RandomGradientParams(d->fRandom, colors, &stops, &tm); 691 int colorCount = RandomGradientParams(d->fRandom, colors, &stops, &tm);
700 SkAutoTUnref<SkShader> shader(SkGradientShader::CreateTwoPointConical(center 1, radius1, 692 SkAutoTUnref<SkShader> shader(SkGradientShader::CreateTwoPointConical(center 1, radius1,
701 center 2, radius2, 693 center 2, radius2,
702 colors , stops, colorCount, 694 colors , stops, colorCount,
703 tm)); 695 tm));
704 SkPaint paint; 696 const GrFragmentProcessor* fp = shader->asFragmentProcessor(d->fContext,
705 GrColor paintColor; 697 GrTest::TestMatrix(d->fRandom), NULL, kNone_SkFilterQuality, d->fProcDat aManager);
706 GrFragmentProcessor* fp; 698 GrAlwaysAssert(fp);
707 SkAssertResult(shader->asFragmentProcessor(d->fContext, paint,
708 GrTest::TestMatrix(d->fRandom), n ullptr,
709 &paintColor, d->fProcDataManager, &fp));
710 return fp; 699 return fp;
711 } 700 }
712 701
713 GLFocalInside2PtConicalEffect::GLFocalInside2PtConicalEffect(const GrProcessor&) 702 GLFocalInside2PtConicalEffect::GLFocalInside2PtConicalEffect(const GrProcessor&)
714 : fVSVaryingName(nullptr) 703 : fVSVaryingName(nullptr)
715 , fFSVaryingName(nullptr) 704 , fFSVaryingName(nullptr)
716 , fCachedFocal(SK_ScalarMax) {} 705 , fCachedFocal(SK_ScalarMax) {}
717 706
718 void GLFocalInside2PtConicalEffect::emitCode(EmitArgs& args) { 707 void GLFocalInside2PtConicalEffect::emitCode(EmitArgs& args) {
719 const FocalInside2PtConicalEffect& ge = args.fFp.cast<FocalInside2PtConicalE ffect>(); 708 const FocalInside2PtConicalEffect& ge = args.fFp.cast<FocalInside2PtConicalE ffect>();
(...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after
916 905
917 GrGLFragmentProcessor* CircleInside2PtConicalEffect::onCreateGLInstance() const { 906 GrGLFragmentProcessor* CircleInside2PtConicalEffect::onCreateGLInstance() const {
918 return new GLCircleInside2PtConicalEffect(*this); 907 return new GLCircleInside2PtConicalEffect(*this);
919 } 908 }
920 909
921 GR_DEFINE_FRAGMENT_PROCESSOR_TEST(CircleInside2PtConicalEffect); 910 GR_DEFINE_FRAGMENT_PROCESSOR_TEST(CircleInside2PtConicalEffect);
922 911
923 /* 912 /*
924 * All Two point conical gradient test create functions may occasionally create edge case shaders 913 * All Two point conical gradient test create functions may occasionally create edge case shaders
925 */ 914 */
926 GrFragmentProcessor* 915 const GrFragmentProcessor* CircleInside2PtConicalEffect::TestCreate(GrProcessorT estData* d) {
927 CircleInside2PtConicalEffect::TestCreate(GrProcessorTestData* d) {
928 SkPoint center1 = {d->fRandom->nextUScalar1(), d->fRandom->nextUScalar1()}; 916 SkPoint center1 = {d->fRandom->nextUScalar1(), d->fRandom->nextUScalar1()};
929 SkScalar radius1 = d->fRandom->nextUScalar1() + 0.0001f; // make sure radius 1 != 0 917 SkScalar radius1 = d->fRandom->nextUScalar1() + 0.0001f; // make sure radius 1 != 0
930 SkPoint center2; 918 SkPoint center2;
931 SkScalar radius2; 919 SkScalar radius2;
932 do { 920 do {
933 center2.set(d->fRandom->nextUScalar1(), d->fRandom->nextUScalar1()); 921 center2.set(d->fRandom->nextUScalar1(), d->fRandom->nextUScalar1());
934 // Below makes sure that circle one is contained within circle two 922 // Below makes sure that circle one is contained within circle two
935 SkScalar increase = d->fRandom->nextUScalar1(); 923 SkScalar increase = d->fRandom->nextUScalar1();
936 SkPoint diff = center2 - center1; 924 SkPoint diff = center2 - center1;
937 SkScalar diffLen = diff.length(); 925 SkScalar diffLen = diff.length();
938 radius2 = radius1 + diffLen + increase; 926 radius2 = radius1 + diffLen + increase;
939 // If the circles are identical the factory will give us an empty shader . 927 // If the circles are identical the factory will give us an empty shader .
940 } while (radius1 == radius2 && center1 == center2); 928 } while (radius1 == radius2 && center1 == center2);
941 929
942 SkColor colors[kMaxRandomGradientColors]; 930 SkColor colors[kMaxRandomGradientColors];
943 SkScalar stopsArray[kMaxRandomGradientColors]; 931 SkScalar stopsArray[kMaxRandomGradientColors];
944 SkScalar* stops = stopsArray; 932 SkScalar* stops = stopsArray;
945 SkShader::TileMode tm; 933 SkShader::TileMode tm;
946 int colorCount = RandomGradientParams(d->fRandom, colors, &stops, &tm); 934 int colorCount = RandomGradientParams(d->fRandom, colors, &stops, &tm);
947 SkAutoTUnref<SkShader> shader(SkGradientShader::CreateTwoPointConical(center 1, radius1, 935 SkAutoTUnref<SkShader> shader(SkGradientShader::CreateTwoPointConical(center 1, radius1,
948 center 2, radius2, 936 center 2, radius2,
949 colors , stops, colorCount, 937 colors , stops, colorCount,
950 tm)); 938 tm));
951 SkPaint paint; 939 const GrFragmentProcessor* fp = shader->asFragmentProcessor(d->fContext,
952 GrColor paintColor; 940 GrTest::TestMatrix(d->fRandom), NULL, kNone_SkFilterQuality, d->fProcDat aManager);
953 GrFragmentProcessor* fp; 941 GrAlwaysAssert(fp);
954 SkAssertResult(shader->asFragmentProcessor(d->fContext, paint,
955 GrTest::TestMatrix(d->fRandom), n ullptr,
956 &paintColor, d->fProcDataManager, &fp));
957 return fp; 942 return fp;
958 } 943 }
959 944
960 GLCircleInside2PtConicalEffect::GLCircleInside2PtConicalEffect(const GrProcessor & processor) 945 GLCircleInside2PtConicalEffect::GLCircleInside2PtConicalEffect(const GrProcessor & processor)
961 : fVSVaryingName(nullptr) 946 : fVSVaryingName(nullptr)
962 , fFSVaryingName(nullptr) 947 , fFSVaryingName(nullptr)
963 , fCachedCenterX(SK_ScalarMax) 948 , fCachedCenterX(SK_ScalarMax)
964 , fCachedCenterY(SK_ScalarMax) 949 , fCachedCenterY(SK_ScalarMax)
965 , fCachedA(SK_ScalarMax) 950 , fCachedA(SK_ScalarMax)
966 , fCachedB(SK_ScalarMax) 951 , fCachedB(SK_ScalarMax)
(...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after
1147 1132
1148 GrGLFragmentProcessor* CircleOutside2PtConicalEffect::onCreateGLInstance() const { 1133 GrGLFragmentProcessor* CircleOutside2PtConicalEffect::onCreateGLInstance() const {
1149 return new GLCircleOutside2PtConicalEffect(*this); 1134 return new GLCircleOutside2PtConicalEffect(*this);
1150 } 1135 }
1151 1136
1152 GR_DEFINE_FRAGMENT_PROCESSOR_TEST(CircleOutside2PtConicalEffect); 1137 GR_DEFINE_FRAGMENT_PROCESSOR_TEST(CircleOutside2PtConicalEffect);
1153 1138
1154 /* 1139 /*
1155 * All Two point conical gradient test create functions may occasionally create edge case shaders 1140 * All Two point conical gradient test create functions may occasionally create edge case shaders
1156 */ 1141 */
1157 GrFragmentProcessor* CircleOutside2PtConicalEffect::TestCreate(GrProcessorTestDa ta* d) { 1142 const GrFragmentProcessor* CircleOutside2PtConicalEffect::TestCreate(GrProcessor TestData* d) {
1158 SkPoint center1 = {d->fRandom->nextUScalar1(), d->fRandom->nextUScalar1()}; 1143 SkPoint center1 = {d->fRandom->nextUScalar1(), d->fRandom->nextUScalar1()};
1159 SkScalar radius1 = d->fRandom->nextUScalar1() + 0.0001f; // make sure radius 1 != 0 1144 SkScalar radius1 = d->fRandom->nextUScalar1() + 0.0001f; // make sure radius 1 != 0
1160 SkPoint center2; 1145 SkPoint center2;
1161 SkScalar radius2; 1146 SkScalar radius2;
1162 SkScalar diffLen; 1147 SkScalar diffLen;
1163 do { 1148 do {
1164 center2.set(d->fRandom->nextUScalar1(), d->fRandom->nextUScalar1()); 1149 center2.set(d->fRandom->nextUScalar1(), d->fRandom->nextUScalar1());
1165 // If the circles share a center than we can't be in the outside case 1150 // If the circles share a center than we can't be in the outside case
1166 } while (center1 == center2); 1151 } while (center1 == center2);
1167 SkPoint diff = center2 - center1; 1152 SkPoint diff = center2 - center1;
1168 diffLen = diff.length(); 1153 diffLen = diff.length();
1169 // Below makes sure that circle one is not contained within circle two 1154 // Below makes sure that circle one is not contained within circle two
1170 // and have radius2 >= radius to match sorting on cpu side 1155 // and have radius2 >= radius to match sorting on cpu side
1171 radius2 = radius1 + d->fRandom->nextRangeF(0.f, diffLen); 1156 radius2 = radius1 + d->fRandom->nextRangeF(0.f, diffLen);
1172 1157
1173 SkColor colors[kMaxRandomGradientColors]; 1158 SkColor colors[kMaxRandomGradientColors];
1174 SkScalar stopsArray[kMaxRandomGradientColors]; 1159 SkScalar stopsArray[kMaxRandomGradientColors];
1175 SkScalar* stops = stopsArray; 1160 SkScalar* stops = stopsArray;
1176 SkShader::TileMode tm; 1161 SkShader::TileMode tm;
1177 int colorCount = RandomGradientParams(d->fRandom, colors, &stops, &tm); 1162 int colorCount = RandomGradientParams(d->fRandom, colors, &stops, &tm);
1178 SkAutoTUnref<SkShader> shader(SkGradientShader::CreateTwoPointConical(center 1, radius1, 1163 SkAutoTUnref<SkShader> shader(SkGradientShader::CreateTwoPointConical(center 1, radius1,
1179 center 2, radius2, 1164 center 2, radius2,
1180 colors , stops, colorCount, 1165 colors , stops, colorCount,
1181 tm)); 1166 tm));
1182 SkPaint paint; 1167 const GrFragmentProcessor* fp = shader->asFragmentProcessor(
1183 GrColor paintColor; 1168 d->fContext,GrTest::TestMatrix(d->fRandom), NULL, kNone_SkFilterQuality,
1184 GrFragmentProcessor* fp; 1169 d->fProcDataManager);
1185 SkAssertResult(shader->asFragmentProcessor(d->fContext, paint, 1170 GrAlwaysAssert(fp);
1186 GrTest::TestMatrix(d->fRandom), n ullptr,
1187 &paintColor, d->fProcDataManager, &fp));
1188 return fp; 1171 return fp;
1189 } 1172 }
1190 1173
1191 GLCircleOutside2PtConicalEffect::GLCircleOutside2PtConicalEffect(const GrProcess or& processor) 1174 GLCircleOutside2PtConicalEffect::GLCircleOutside2PtConicalEffect(const GrProcess or& processor)
1192 : fVSVaryingName(nullptr) 1175 : fVSVaryingName(nullptr)
1193 , fFSVaryingName(nullptr) 1176 , fFSVaryingName(nullptr)
1194 , fCachedCenterX(SK_ScalarMax) 1177 , fCachedCenterX(SK_ScalarMax)
1195 , fCachedCenterY(SK_ScalarMax) 1178 , fCachedCenterY(SK_ScalarMax)
1196 , fCachedA(SK_ScalarMax) 1179 , fCachedA(SK_ScalarMax)
1197 , fCachedB(SK_ScalarMax) 1180 , fCachedB(SK_ScalarMax)
(...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after
1335 } else if (type == kEdge_ConicalType) { 1318 } else if (type == kEdge_ConicalType) {
1336 set_matrix_edge_conical(shader, &matrix); 1319 set_matrix_edge_conical(shader, &matrix);
1337 return Edge2PtConicalEffect::Create(ctx, procDataManager, shader, matrix , tm); 1320 return Edge2PtConicalEffect::Create(ctx, procDataManager, shader, matrix , tm);
1338 } else { 1321 } else {
1339 return CircleOutside2PtConicalEffect::Create(ctx, procDataManager, shade r, matrix, tm, 1322 return CircleOutside2PtConicalEffect::Create(ctx, procDataManager, shade r, matrix, tm,
1340 info); 1323 info);
1341 } 1324 }
1342 } 1325 }
1343 1326
1344 #endif 1327 #endif
OLDNEW
« no previous file with comments | « src/effects/gradients/SkTwoPointConicalGradient.cpp ('k') | src/gpu/GrAAConvexPathRenderer.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698