OLD | NEW |
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 124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
135 typedef GrGradientEffect INHERITED; | 135 typedef GrGradientEffect INHERITED; |
136 }; | 136 }; |
137 | 137 |
138 class GLEdge2PtConicalEffect : public GrGLGradientEffect { | 138 class GLEdge2PtConicalEffect : public GrGLGradientEffect { |
139 public: | 139 public: |
140 GLEdge2PtConicalEffect(const GrBackendProcessorFactory& factory, const GrPro
cessor&); | 140 GLEdge2PtConicalEffect(const GrBackendProcessorFactory& factory, const GrPro
cessor&); |
141 virtual ~GLEdge2PtConicalEffect() { } | 141 virtual ~GLEdge2PtConicalEffect() { } |
142 | 142 |
143 virtual void emitCode(GrGLFPBuilder*, | 143 virtual void emitCode(GrGLFPBuilder*, |
144 const GrFragmentProcessor&, | 144 const GrFragmentProcessor&, |
145 const GrProcessorKey&, | |
146 const char* outputColor, | 145 const char* outputColor, |
147 const char* inputColor, | 146 const char* inputColor, |
148 const TransformedCoordsArray&, | 147 const TransformedCoordsArray&, |
149 const TextureSamplerArray&) SK_OVERRIDE; | 148 const TextureSamplerArray&) SK_OVERRIDE; |
150 virtual void setData(const GrGLProgramDataManager&, const GrProcessor&) SK_O
VERRIDE; | 149 virtual void setData(const GrGLProgramDataManager&, const GrProcessor&) SK_O
VERRIDE; |
151 | 150 |
152 static void GenKey(const GrProcessor&, const GrGLCaps& caps, GrProcessorKeyB
uilder* b); | 151 static void GenKey(const GrProcessor&, const GrGLCaps& caps, GrProcessorKeyB
uilder* b); |
153 | 152 |
154 protected: | 153 protected: |
155 UniformHandle fParamUni; | 154 UniformHandle fParamUni; |
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
218 GLEdge2PtConicalEffect::GLEdge2PtConicalEffect(const GrBackendProcessorFactory&
factory, | 217 GLEdge2PtConicalEffect::GLEdge2PtConicalEffect(const GrBackendProcessorFactory&
factory, |
219 const GrProcessor&) | 218 const GrProcessor&) |
220 : INHERITED(factory) | 219 : INHERITED(factory) |
221 , fVSVaryingName(NULL) | 220 , fVSVaryingName(NULL) |
222 , fFSVaryingName(NULL) | 221 , fFSVaryingName(NULL) |
223 , fCachedRadius(-SK_ScalarMax) | 222 , fCachedRadius(-SK_ScalarMax) |
224 , fCachedDiffRadius(-SK_ScalarMax) {} | 223 , fCachedDiffRadius(-SK_ScalarMax) {} |
225 | 224 |
226 void GLEdge2PtConicalEffect::emitCode(GrGLFPBuilder* builder, | 225 void GLEdge2PtConicalEffect::emitCode(GrGLFPBuilder* builder, |
227 const GrFragmentProcessor& fp, | 226 const GrFragmentProcessor& fp, |
228 const GrProcessorKey& key, | |
229 const char* outputColor, | 227 const char* outputColor, |
230 const char* inputColor, | 228 const char* inputColor, |
231 const TransformedCoordsArray& coords, | 229 const TransformedCoordsArray& coords, |
232 const TextureSamplerArray& samplers) { | 230 const TextureSamplerArray& samplers) { |
233 const GrGradientEffect& ge = fp.cast<GrGradientEffect>(); | 231 const GrGradientEffect& ge = fp.cast<GrGradientEffect>(); |
234 this->emitUniforms(builder, ge); | 232 this->emitUniforms(builder, ge); |
235 fParamUni = builder->addUniformArray(GrGLProgramBuilder::kFragment_Visibilit
y, | 233 fParamUni = builder->addUniformArray(GrGLProgramBuilder::kFragment_Visibilit
y, |
236 kFloat_GrSLType, "Conical2FSParams", 3)
; | 234 kFloat_GrSLType, "Conical2FSParams", 3)
; |
237 | 235 |
238 SkString cName("c"); | 236 SkString cName("c"); |
(...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
416 typedef GrGradientEffect INHERITED; | 414 typedef GrGradientEffect INHERITED; |
417 }; | 415 }; |
418 | 416 |
419 class GLFocalOutside2PtConicalEffect : public GrGLGradientEffect { | 417 class GLFocalOutside2PtConicalEffect : public GrGLGradientEffect { |
420 public: | 418 public: |
421 GLFocalOutside2PtConicalEffect(const GrBackendProcessorFactory& factory, con
st GrProcessor&); | 419 GLFocalOutside2PtConicalEffect(const GrBackendProcessorFactory& factory, con
st GrProcessor&); |
422 virtual ~GLFocalOutside2PtConicalEffect() { } | 420 virtual ~GLFocalOutside2PtConicalEffect() { } |
423 | 421 |
424 virtual void emitCode(GrGLFPBuilder*, | 422 virtual void emitCode(GrGLFPBuilder*, |
425 const GrFragmentProcessor&, | 423 const GrFragmentProcessor&, |
426 const GrProcessorKey&, | |
427 const char* outputColor, | 424 const char* outputColor, |
428 const char* inputColor, | 425 const char* inputColor, |
429 const TransformedCoordsArray&, | 426 const TransformedCoordsArray&, |
430 const TextureSamplerArray&) SK_OVERRIDE; | 427 const TextureSamplerArray&) SK_OVERRIDE; |
431 virtual void setData(const GrGLProgramDataManager&, const GrProcessor&) SK_O
VERRIDE; | 428 virtual void setData(const GrGLProgramDataManager&, const GrProcessor&) SK_O
VERRIDE; |
432 | 429 |
433 static void GenKey(const GrProcessor&, const GrGLCaps& caps, GrProcessorKeyB
uilder* b); | 430 static void GenKey(const GrProcessor&, const GrGLCaps& caps, GrProcessorKeyB
uilder* b); |
434 | 431 |
435 protected: | 432 protected: |
436 UniformHandle fParamUni; | 433 UniformHandle fParamUni; |
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
499 : INHERITED(factory) | 496 : INHERITED(factory) |
500 , fVSVaryingName(NULL) | 497 , fVSVaryingName(NULL) |
501 , fFSVaryingName(NULL) | 498 , fFSVaryingName(NULL) |
502 , fCachedFocal(SK_ScalarMax) { | 499 , fCachedFocal(SK_ScalarMax) { |
503 const FocalOutside2PtConicalEffect& data = processor.cast<FocalOutside2PtCon
icalEffect>(); | 500 const FocalOutside2PtConicalEffect& data = processor.cast<FocalOutside2PtCon
icalEffect>(); |
504 fIsFlipped = data.isFlipped(); | 501 fIsFlipped = data.isFlipped(); |
505 } | 502 } |
506 | 503 |
507 void GLFocalOutside2PtConicalEffect::emitCode(GrGLFPBuilder* builder, | 504 void GLFocalOutside2PtConicalEffect::emitCode(GrGLFPBuilder* builder, |
508 const GrFragmentProcessor& fp, | 505 const GrFragmentProcessor& fp, |
509 const GrProcessorKey& key, | |
510 const char* outputColor, | 506 const char* outputColor, |
511 const char* inputColor, | 507 const char* inputColor, |
512 const TransformedCoordsArray& coor
ds, | 508 const TransformedCoordsArray& coor
ds, |
513 const TextureSamplerArray& sampler
s) { | 509 const TextureSamplerArray& sampler
s) { |
514 const GrGradientEffect& ge = fp.cast<GrGradientEffect>(); | 510 const GrGradientEffect& ge = fp.cast<GrGradientEffect>(); |
515 this->emitUniforms(builder, ge); | 511 this->emitUniforms(builder, ge); |
516 fParamUni = builder->addUniformArray(GrGLProgramBuilder::kFragment_Visibilit
y, | 512 fParamUni = builder->addUniformArray(GrGLProgramBuilder::kFragment_Visibilit
y, |
517 kFloat_GrSLType, "Conical2FSParams", 2)
; | 513 kFloat_GrSLType, "Conical2FSParams", 2)
; |
518 SkString tName("t"); | 514 SkString tName("t"); |
519 SkString p0; // focalX | 515 SkString p0; // focalX |
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
625 typedef GrGradientEffect INHERITED; | 621 typedef GrGradientEffect INHERITED; |
626 }; | 622 }; |
627 | 623 |
628 class GLFocalInside2PtConicalEffect : public GrGLGradientEffect { | 624 class GLFocalInside2PtConicalEffect : public GrGLGradientEffect { |
629 public: | 625 public: |
630 GLFocalInside2PtConicalEffect(const GrBackendProcessorFactory& factory, cons
t GrProcessor&); | 626 GLFocalInside2PtConicalEffect(const GrBackendProcessorFactory& factory, cons
t GrProcessor&); |
631 virtual ~GLFocalInside2PtConicalEffect() {} | 627 virtual ~GLFocalInside2PtConicalEffect() {} |
632 | 628 |
633 virtual void emitCode(GrGLFPBuilder*, | 629 virtual void emitCode(GrGLFPBuilder*, |
634 const GrFragmentProcessor&, | 630 const GrFragmentProcessor&, |
635 const GrProcessorKey&, | |
636 const char* outputColor, | 631 const char* outputColor, |
637 const char* inputColor, | 632 const char* inputColor, |
638 const TransformedCoordsArray&, | 633 const TransformedCoordsArray&, |
639 const TextureSamplerArray&) SK_OVERRIDE; | 634 const TextureSamplerArray&) SK_OVERRIDE; |
640 virtual void setData(const GrGLProgramDataManager&, const GrProcessor&) SK_O
VERRIDE; | 635 virtual void setData(const GrGLProgramDataManager&, const GrProcessor&) SK_O
VERRIDE; |
641 | 636 |
642 static void GenKey(const GrProcessor&, const GrGLCaps& caps, GrProcessorKeyB
uilder* b); | 637 static void GenKey(const GrProcessor&, const GrGLCaps& caps, GrProcessorKeyB
uilder* b); |
643 | 638 |
644 protected: | 639 protected: |
645 UniformHandle fFocalUni; | 640 UniformHandle fFocalUni; |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
705 | 700 |
706 GLFocalInside2PtConicalEffect::GLFocalInside2PtConicalEffect(const GrBackendProc
essorFactory& factory, | 701 GLFocalInside2PtConicalEffect::GLFocalInside2PtConicalEffect(const GrBackendProc
essorFactory& factory, |
707 const GrProcessor&) | 702 const GrProcessor&) |
708 : INHERITED(factory) | 703 : INHERITED(factory) |
709 , fVSVaryingName(NULL) | 704 , fVSVaryingName(NULL) |
710 , fFSVaryingName(NULL) | 705 , fFSVaryingName(NULL) |
711 , fCachedFocal(SK_ScalarMax) {} | 706 , fCachedFocal(SK_ScalarMax) {} |
712 | 707 |
713 void GLFocalInside2PtConicalEffect::emitCode(GrGLFPBuilder* builder, | 708 void GLFocalInside2PtConicalEffect::emitCode(GrGLFPBuilder* builder, |
714 const GrFragmentProcessor& fp, | 709 const GrFragmentProcessor& fp, |
715 const GrProcessorKey& key, | |
716 const char* outputColor, | 710 const char* outputColor, |
717 const char* inputColor, | 711 const char* inputColor, |
718 const TransformedCoordsArray& coord
s, | 712 const TransformedCoordsArray& coord
s, |
719 const TextureSamplerArray& samplers
) { | 713 const TextureSamplerArray& samplers
) { |
720 const GrGradientEffect& ge = fp.cast<GrGradientEffect>(); | 714 const GrGradientEffect& ge = fp.cast<GrGradientEffect>(); |
721 this->emitUniforms(builder, ge); | 715 this->emitUniforms(builder, ge); |
722 fFocalUni = builder->addUniform(GrGLProgramBuilder::kFragment_Visibility, | 716 fFocalUni = builder->addUniform(GrGLProgramBuilder::kFragment_Visibility, |
723 kFloat_GrSLType, "Conical2FSParams"); | 717 kFloat_GrSLType, "Conical2FSParams"); |
724 SkString tName("t"); | 718 SkString tName("t"); |
725 | 719 |
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
870 typedef GrGradientEffect INHERITED; | 864 typedef GrGradientEffect INHERITED; |
871 }; | 865 }; |
872 | 866 |
873 class GLCircleInside2PtConicalEffect : public GrGLGradientEffect { | 867 class GLCircleInside2PtConicalEffect : public GrGLGradientEffect { |
874 public: | 868 public: |
875 GLCircleInside2PtConicalEffect(const GrBackendProcessorFactory& factory, con
st GrProcessor&); | 869 GLCircleInside2PtConicalEffect(const GrBackendProcessorFactory& factory, con
st GrProcessor&); |
876 virtual ~GLCircleInside2PtConicalEffect() {} | 870 virtual ~GLCircleInside2PtConicalEffect() {} |
877 | 871 |
878 virtual void emitCode(GrGLFPBuilder*, | 872 virtual void emitCode(GrGLFPBuilder*, |
879 const GrFragmentProcessor&, | 873 const GrFragmentProcessor&, |
880 const GrProcessorKey&, | |
881 const char* outputColor, | 874 const char* outputColor, |
882 const char* inputColor, | 875 const char* inputColor, |
883 const TransformedCoordsArray&, | 876 const TransformedCoordsArray&, |
884 const TextureSamplerArray&) SK_OVERRIDE; | 877 const TextureSamplerArray&) SK_OVERRIDE; |
885 virtual void setData(const GrGLProgramDataManager&, const GrProcessor&) SK_O
VERRIDE; | 878 virtual void setData(const GrGLProgramDataManager&, const GrProcessor&) SK_O
VERRIDE; |
886 | 879 |
887 static void GenKey(const GrProcessor&, const GrGLCaps& caps, GrProcessorKeyB
uilder* b); | 880 static void GenKey(const GrProcessor&, const GrGLCaps& caps, GrProcessorKeyB
uilder* b); |
888 | 881 |
889 protected: | 882 protected: |
890 UniformHandle fCenterUni; | 883 UniformHandle fCenterUni; |
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
958 , fVSVaryingName(NULL) | 951 , fVSVaryingName(NULL) |
959 , fFSVaryingName(NULL) | 952 , fFSVaryingName(NULL) |
960 , fCachedCenterX(SK_ScalarMax) | 953 , fCachedCenterX(SK_ScalarMax) |
961 , fCachedCenterY(SK_ScalarMax) | 954 , fCachedCenterY(SK_ScalarMax) |
962 , fCachedA(SK_ScalarMax) | 955 , fCachedA(SK_ScalarMax) |
963 , fCachedB(SK_ScalarMax) | 956 , fCachedB(SK_ScalarMax) |
964 , fCachedC(SK_ScalarMax) {} | 957 , fCachedC(SK_ScalarMax) {} |
965 | 958 |
966 void GLCircleInside2PtConicalEffect::emitCode(GrGLFPBuilder* builder, | 959 void GLCircleInside2PtConicalEffect::emitCode(GrGLFPBuilder* builder, |
967 const GrFragmentProcessor& fp, | 960 const GrFragmentProcessor& fp, |
968 const GrProcessorKey& key, | |
969 const char* outputColor, | 961 const char* outputColor, |
970 const char* inputColor, | 962 const char* inputColor, |
971 const TransformedCoordsArray& coor
ds, | 963 const TransformedCoordsArray& coor
ds, |
972 const TextureSamplerArray& sampler
s) { | 964 const TextureSamplerArray& sampler
s) { |
973 const GrGradientEffect& ge = fp.cast<GrGradientEffect>(); | 965 const GrGradientEffect& ge = fp.cast<GrGradientEffect>(); |
974 this->emitUniforms(builder, ge); | 966 this->emitUniforms(builder, ge); |
975 fCenterUni = builder->addUniform(GrGLProgramBuilder::kFragment_Visibility, | 967 fCenterUni = builder->addUniform(GrGLProgramBuilder::kFragment_Visibility, |
976 kVec2f_GrSLType, "Conical2FSCenter"); | 968 kVec2f_GrSLType, "Conical2FSCenter"); |
977 fParamUni = builder->addUniform(GrGLProgramBuilder::kFragment_Visibility, | 969 fParamUni = builder->addUniform(GrGLProgramBuilder::kFragment_Visibility, |
978 kVec3f_GrSLType, "Conical2FSParams"); | 970 kVec3f_GrSLType, "Conical2FSParams"); |
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1102 typedef GrGradientEffect INHERITED; | 1094 typedef GrGradientEffect INHERITED; |
1103 }; | 1095 }; |
1104 | 1096 |
1105 class GLCircleOutside2PtConicalEffect : public GrGLGradientEffect { | 1097 class GLCircleOutside2PtConicalEffect : public GrGLGradientEffect { |
1106 public: | 1098 public: |
1107 GLCircleOutside2PtConicalEffect(const GrBackendProcessorFactory&, const GrPr
ocessor&); | 1099 GLCircleOutside2PtConicalEffect(const GrBackendProcessorFactory&, const GrPr
ocessor&); |
1108 virtual ~GLCircleOutside2PtConicalEffect() {} | 1100 virtual ~GLCircleOutside2PtConicalEffect() {} |
1109 | 1101 |
1110 virtual void emitCode(GrGLFPBuilder*, | 1102 virtual void emitCode(GrGLFPBuilder*, |
1111 const GrFragmentProcessor&, | 1103 const GrFragmentProcessor&, |
1112 const GrProcessorKey&, | |
1113 const char* outputColor, | 1104 const char* outputColor, |
1114 const char* inputColor, | 1105 const char* inputColor, |
1115 const TransformedCoordsArray&, | 1106 const TransformedCoordsArray&, |
1116 const TextureSamplerArray&) SK_OVERRIDE; | 1107 const TextureSamplerArray&) SK_OVERRIDE; |
1117 virtual void setData(const GrGLProgramDataManager&, const GrProcessor&) SK_O
VERRIDE; | 1108 virtual void setData(const GrGLProgramDataManager&, const GrProcessor&) SK_O
VERRIDE; |
1118 | 1109 |
1119 static void GenKey(const GrProcessor&, const GrGLCaps& caps, GrProcessorKeyB
uilder* b); | 1110 static void GenKey(const GrProcessor&, const GrGLCaps& caps, GrProcessorKeyB
uilder* b); |
1120 | 1111 |
1121 protected: | 1112 protected: |
1122 UniformHandle fCenterUni; | 1113 UniformHandle fCenterUni; |
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1198 , fCachedA(SK_ScalarMax) | 1189 , fCachedA(SK_ScalarMax) |
1199 , fCachedB(SK_ScalarMax) | 1190 , fCachedB(SK_ScalarMax) |
1200 , fCachedC(SK_ScalarMax) | 1191 , fCachedC(SK_ScalarMax) |
1201 , fCachedTLimit(SK_ScalarMax) { | 1192 , fCachedTLimit(SK_ScalarMax) { |
1202 const CircleOutside2PtConicalEffect& data = processor.cast<CircleOutside2PtC
onicalEffect>(); | 1193 const CircleOutside2PtConicalEffect& data = processor.cast<CircleOutside2PtC
onicalEffect>(); |
1203 fIsFlipped = data.isFlipped(); | 1194 fIsFlipped = data.isFlipped(); |
1204 } | 1195 } |
1205 | 1196 |
1206 void GLCircleOutside2PtConicalEffect::emitCode(GrGLFPBuilder* builder, | 1197 void GLCircleOutside2PtConicalEffect::emitCode(GrGLFPBuilder* builder, |
1207 const GrFragmentProcessor& fp, | 1198 const GrFragmentProcessor& fp, |
1208 const GrProcessorKey& key, | |
1209 const char* outputColor, | 1199 const char* outputColor, |
1210 const char* inputColor, | 1200 const char* inputColor, |
1211 const TransformedCoordsArray& coo
rds, | 1201 const TransformedCoordsArray& coo
rds, |
1212 const TextureSamplerArray& sample
rs) { | 1202 const TextureSamplerArray& sample
rs) { |
1213 const GrGradientEffect& ge = fp.cast<GrGradientEffect>(); | 1203 const GrGradientEffect& ge = fp.cast<GrGradientEffect>(); |
1214 this->emitUniforms(builder, ge); | 1204 this->emitUniforms(builder, ge); |
1215 fCenterUni = builder->addUniform(GrGLProgramBuilder::kFragment_Visibility, | 1205 fCenterUni = builder->addUniform(GrGLProgramBuilder::kFragment_Visibility, |
1216 kVec2f_GrSLType, "Conical2FSCenter"); | 1206 kVec2f_GrSLType, "Conical2FSCenter"); |
1217 fParamUni = builder->addUniform(GrGLProgramBuilder::kFragment_Visibility, | 1207 fParamUni = builder->addUniform(GrGLProgramBuilder::kFragment_Visibility, |
1218 kVec4f_GrSLType, "Conical2FSParams"); | 1208 kVec4f_GrSLType, "Conical2FSParams"); |
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1335 return CircleInside2PtConicalEffect::Create(ctx, shader, matrix, tm, inf
o); | 1325 return CircleInside2PtConicalEffect::Create(ctx, shader, matrix, tm, inf
o); |
1336 } else if (type == kEdge_ConicalType) { | 1326 } else if (type == kEdge_ConicalType) { |
1337 set_matrix_edge_conical(shader, &matrix); | 1327 set_matrix_edge_conical(shader, &matrix); |
1338 return Edge2PtConicalEffect::Create(ctx, shader, matrix, tm); | 1328 return Edge2PtConicalEffect::Create(ctx, shader, matrix, tm); |
1339 } else { | 1329 } else { |
1340 return CircleOutside2PtConicalEffect::Create(ctx, shader, matrix, tm, in
fo); | 1330 return CircleOutside2PtConicalEffect::Create(ctx, shader, matrix, tm, in
fo); |
1341 } | 1331 } |
1342 } | 1332 } |
1343 | 1333 |
1344 #endif | 1334 #endif |
OLD | NEW |