| 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 209 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 220 GLEdge2PtConicalEffect::GLEdge2PtConicalEffect(const GrProcessor&) | 220 GLEdge2PtConicalEffect::GLEdge2PtConicalEffect(const GrProcessor&) |
| 221 : fVSVaryingName(nullptr) | 221 : fVSVaryingName(nullptr) |
| 222 , fFSVaryingName(nullptr) | 222 , fFSVaryingName(nullptr) |
| 223 , fCachedRadius(-SK_ScalarMax) | 223 , fCachedRadius(-SK_ScalarMax) |
| 224 , fCachedDiffRadius(-SK_ScalarMax) {} | 224 , fCachedDiffRadius(-SK_ScalarMax) {} |
| 225 | 225 |
| 226 void GLEdge2PtConicalEffect::emitCode(EmitArgs& args) { | 226 void GLEdge2PtConicalEffect::emitCode(EmitArgs& args) { |
| 227 const Edge2PtConicalEffect& ge = args.fFp.cast<Edge2PtConicalEffect>(); | 227 const Edge2PtConicalEffect& ge = args.fFp.cast<Edge2PtConicalEffect>(); |
| 228 GrGLSLUniformHandler* uniformHandler = args.fUniformHandler; | 228 GrGLSLUniformHandler* uniformHandler = args.fUniformHandler; |
| 229 this->emitUniforms(uniformHandler, ge); | 229 this->emitUniforms(uniformHandler, ge); |
| 230 fParamUni = uniformHandler->addUniformArray(GrGLSLUniformHandler::kFragment_
Visibility, | 230 fParamUni = uniformHandler->addUniformArray(kFragment_GrShaderFlag, |
| 231 kFloat_GrSLType, kDefault_GrSLPr
ecision, | 231 kFloat_GrSLType, kDefault_GrSLPr
ecision, |
| 232 "Conical2FSParams", 3); | 232 "Conical2FSParams", 3); |
| 233 | 233 |
| 234 SkString cName("c"); | 234 SkString cName("c"); |
| 235 SkString tName("t"); | 235 SkString tName("t"); |
| 236 SkString p0; // start radius | 236 SkString p0; // start radius |
| 237 SkString p1; // start radius squared | 237 SkString p1; // start radius squared |
| 238 SkString p2; // difference in radii (r1 - r0) | 238 SkString p2; // difference in radii (r1 - r0) |
| 239 | 239 |
| 240 uniformHandler->getUniformVariable(fParamUni).appendArrayAccess(0, &p0); | 240 uniformHandler->getUniformVariable(fParamUni).appendArrayAccess(0, &p0); |
| (...skipping 262 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 503 , fFSVaryingName(nullptr) | 503 , fFSVaryingName(nullptr) |
| 504 , fCachedFocal(SK_ScalarMax) { | 504 , fCachedFocal(SK_ScalarMax) { |
| 505 const FocalOutside2PtConicalEffect& data = processor.cast<FocalOutside2PtCon
icalEffect>(); | 505 const FocalOutside2PtConicalEffect& data = processor.cast<FocalOutside2PtCon
icalEffect>(); |
| 506 fIsFlipped = data.isFlipped(); | 506 fIsFlipped = data.isFlipped(); |
| 507 } | 507 } |
| 508 | 508 |
| 509 void GLFocalOutside2PtConicalEffect::emitCode(EmitArgs& args) { | 509 void GLFocalOutside2PtConicalEffect::emitCode(EmitArgs& args) { |
| 510 const FocalOutside2PtConicalEffect& ge = args.fFp.cast<FocalOutside2PtConica
lEffect>(); | 510 const FocalOutside2PtConicalEffect& ge = args.fFp.cast<FocalOutside2PtConica
lEffect>(); |
| 511 GrGLSLUniformHandler* uniformHandler = args.fUniformHandler; | 511 GrGLSLUniformHandler* uniformHandler = args.fUniformHandler; |
| 512 this->emitUniforms(uniformHandler, ge); | 512 this->emitUniforms(uniformHandler, ge); |
| 513 fParamUni = uniformHandler->addUniformArray(GrGLSLUniformHandler::kFragment_
Visibility, | 513 fParamUni = uniformHandler->addUniformArray(kFragment_GrShaderFlag, |
| 514 kFloat_GrSLType, kDefault_GrSLPr
ecision, | 514 kFloat_GrSLType, kDefault_GrSLPr
ecision, |
| 515 "Conical2FSParams", 2); | 515 "Conical2FSParams", 2); |
| 516 SkString tName("t"); | 516 SkString tName("t"); |
| 517 SkString p0; // focalX | 517 SkString p0; // focalX |
| 518 SkString p1; // 1 - focalX * focalX | 518 SkString p1; // 1 - focalX * focalX |
| 519 | 519 |
| 520 uniformHandler->getUniformVariable(fParamUni).appendArrayAccess(0, &p0); | 520 uniformHandler->getUniformVariable(fParamUni).appendArrayAccess(0, &p0); |
| 521 uniformHandler->getUniformVariable(fParamUni).appendArrayAccess(1, &p1); | 521 uniformHandler->getUniformVariable(fParamUni).appendArrayAccess(1, &p1); |
| 522 | 522 |
| 523 // if we have a vec3 from being in perspective, convert it to a vec2 first | 523 // if we have a vec3 from being in perspective, convert it to a vec2 first |
| (...skipping 189 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 713 | 713 |
| 714 GLFocalInside2PtConicalEffect::GLFocalInside2PtConicalEffect(const GrProcessor&) | 714 GLFocalInside2PtConicalEffect::GLFocalInside2PtConicalEffect(const GrProcessor&) |
| 715 : fVSVaryingName(nullptr) | 715 : fVSVaryingName(nullptr) |
| 716 , fFSVaryingName(nullptr) | 716 , fFSVaryingName(nullptr) |
| 717 , fCachedFocal(SK_ScalarMax) {} | 717 , fCachedFocal(SK_ScalarMax) {} |
| 718 | 718 |
| 719 void GLFocalInside2PtConicalEffect::emitCode(EmitArgs& args) { | 719 void GLFocalInside2PtConicalEffect::emitCode(EmitArgs& args) { |
| 720 const FocalInside2PtConicalEffect& ge = args.fFp.cast<FocalInside2PtConicalE
ffect>(); | 720 const FocalInside2PtConicalEffect& ge = args.fFp.cast<FocalInside2PtConicalE
ffect>(); |
| 721 GrGLSLUniformHandler* uniformHandler = args.fUniformHandler; | 721 GrGLSLUniformHandler* uniformHandler = args.fUniformHandler; |
| 722 this->emitUniforms(uniformHandler, ge); | 722 this->emitUniforms(uniformHandler, ge); |
| 723 fFocalUni = uniformHandler->addUniform(GrGLSLUniformHandler::kFragment_Visib
ility, | 723 fFocalUni = uniformHandler->addUniform(kFragment_GrShaderFlag, |
| 724 kFloat_GrSLType, kDefault_GrSLPrecisi
on, | 724 kFloat_GrSLType, kDefault_GrSLPrecisi
on, |
| 725 "Conical2FSParams"); | 725 "Conical2FSParams"); |
| 726 SkString tName("t"); | 726 SkString tName("t"); |
| 727 | 727 |
| 728 // this is the distance along x-axis from the end center to focal point in | 728 // this is the distance along x-axis from the end center to focal point in |
| 729 // transformed coordinates | 729 // transformed coordinates |
| 730 GrGLSLShaderVar focal = uniformHandler->getUniformVariable(fFocalUni); | 730 GrGLSLShaderVar focal = uniformHandler->getUniformVariable(fFocalUni); |
| 731 | 731 |
| 732 // if we have a vec3 from being in perspective, convert it to a vec2 first | 732 // if we have a vec3 from being in perspective, convert it to a vec2 first |
| 733 GrGLSLFragmentBuilder* fragBuilder = args.fFragBuilder; | 733 GrGLSLFragmentBuilder* fragBuilder = args.fFragBuilder; |
| (...skipping 231 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 965 , fCachedCenterX(SK_ScalarMax) | 965 , fCachedCenterX(SK_ScalarMax) |
| 966 , fCachedCenterY(SK_ScalarMax) | 966 , fCachedCenterY(SK_ScalarMax) |
| 967 , fCachedA(SK_ScalarMax) | 967 , fCachedA(SK_ScalarMax) |
| 968 , fCachedB(SK_ScalarMax) | 968 , fCachedB(SK_ScalarMax) |
| 969 , fCachedC(SK_ScalarMax) {} | 969 , fCachedC(SK_ScalarMax) {} |
| 970 | 970 |
| 971 void GLCircleInside2PtConicalEffect::emitCode(EmitArgs& args) { | 971 void GLCircleInside2PtConicalEffect::emitCode(EmitArgs& args) { |
| 972 const CircleInside2PtConicalEffect& ge = args.fFp.cast<CircleInside2PtConica
lEffect>(); | 972 const CircleInside2PtConicalEffect& ge = args.fFp.cast<CircleInside2PtConica
lEffect>(); |
| 973 GrGLSLUniformHandler* uniformHandler = args.fUniformHandler; | 973 GrGLSLUniformHandler* uniformHandler = args.fUniformHandler; |
| 974 this->emitUniforms(uniformHandler, ge); | 974 this->emitUniforms(uniformHandler, ge); |
| 975 fCenterUni = uniformHandler->addUniform(GrGLSLUniformHandler::kFragment_Visi
bility, | 975 fCenterUni = uniformHandler->addUniform(kFragment_GrShaderFlag, |
| 976 kVec2f_GrSLType, kDefault_GrSLPrecis
ion, | 976 kVec2f_GrSLType, kDefault_GrSLPrecis
ion, |
| 977 "Conical2FSCenter"); | 977 "Conical2FSCenter"); |
| 978 fParamUni = uniformHandler->addUniform(GrGLSLUniformHandler::kFragment_Visib
ility, | 978 fParamUni = uniformHandler->addUniform(kFragment_GrShaderFlag, |
| 979 kVec3f_GrSLType, kDefault_GrSLPrecisi
on, | 979 kVec3f_GrSLType, kDefault_GrSLPrecisi
on, |
| 980 "Conical2FSParams"); | 980 "Conical2FSParams"); |
| 981 SkString tName("t"); | 981 SkString tName("t"); |
| 982 | 982 |
| 983 GrGLSLShaderVar center = uniformHandler->getUniformVariable(fCenterUni); | 983 GrGLSLShaderVar center = uniformHandler->getUniformVariable(fCenterUni); |
| 984 // params.x = A | 984 // params.x = A |
| 985 // params.y = B | 985 // params.y = B |
| 986 // params.z = C | 986 // params.z = C |
| 987 GrGLSLShaderVar params = uniformHandler->getUniformVariable(fParamUni); | 987 GrGLSLShaderVar params = uniformHandler->getUniformVariable(fParamUni); |
| 988 | 988 |
| (...skipping 213 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1202 , fCachedC(SK_ScalarMax) | 1202 , fCachedC(SK_ScalarMax) |
| 1203 , fCachedTLimit(SK_ScalarMax) { | 1203 , fCachedTLimit(SK_ScalarMax) { |
| 1204 const CircleOutside2PtConicalEffect& data = processor.cast<CircleOutside2PtC
onicalEffect>(); | 1204 const CircleOutside2PtConicalEffect& data = processor.cast<CircleOutside2PtC
onicalEffect>(); |
| 1205 fIsFlipped = data.isFlipped(); | 1205 fIsFlipped = data.isFlipped(); |
| 1206 } | 1206 } |
| 1207 | 1207 |
| 1208 void GLCircleOutside2PtConicalEffect::emitCode(EmitArgs& args) { | 1208 void GLCircleOutside2PtConicalEffect::emitCode(EmitArgs& args) { |
| 1209 const CircleOutside2PtConicalEffect& ge = args.fFp.cast<CircleOutside2PtConi
calEffect>(); | 1209 const CircleOutside2PtConicalEffect& ge = args.fFp.cast<CircleOutside2PtConi
calEffect>(); |
| 1210 GrGLSLUniformHandler* uniformHandler = args.fUniformHandler; | 1210 GrGLSLUniformHandler* uniformHandler = args.fUniformHandler; |
| 1211 this->emitUniforms(uniformHandler, ge); | 1211 this->emitUniforms(uniformHandler, ge); |
| 1212 fCenterUni = uniformHandler->addUniform(GrGLSLUniformHandler::kFragment_Visi
bility, | 1212 fCenterUni = uniformHandler->addUniform(kFragment_GrShaderFlag, |
| 1213 kVec2f_GrSLType, kDefault_GrSLPrecis
ion, | 1213 kVec2f_GrSLType, kDefault_GrSLPrecis
ion, |
| 1214 "Conical2FSCenter"); | 1214 "Conical2FSCenter"); |
| 1215 fParamUni = uniformHandler->addUniform(GrGLSLUniformHandler::kFragment_Visib
ility, | 1215 fParamUni = uniformHandler->addUniform(kFragment_GrShaderFlag, |
| 1216 kVec4f_GrSLType, kDefault_GrSLPrecisi
on, | 1216 kVec4f_GrSLType, kDefault_GrSLPrecisi
on, |
| 1217 "Conical2FSParams"); | 1217 "Conical2FSParams"); |
| 1218 SkString tName("t"); | 1218 SkString tName("t"); |
| 1219 | 1219 |
| 1220 GrGLSLShaderVar center = uniformHandler->getUniformVariable(fCenterUni); | 1220 GrGLSLShaderVar center = uniformHandler->getUniformVariable(fCenterUni); |
| 1221 // params.x = A | 1221 // params.x = A |
| 1222 // params.y = B | 1222 // params.y = B |
| 1223 // params.z = C | 1223 // params.z = C |
| 1224 GrGLSLShaderVar params = uniformHandler->getUniformVariable(fParamUni); | 1224 GrGLSLShaderVar params = uniformHandler->getUniformVariable(fParamUni); |
| 1225 | 1225 |
| (...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1342 return CircleInside2PtConicalEffect::Create(ctx, shader, matrix, tm, inf
o); | 1342 return CircleInside2PtConicalEffect::Create(ctx, shader, matrix, tm, inf
o); |
| 1343 } else if (type == kEdge_ConicalType) { | 1343 } else if (type == kEdge_ConicalType) { |
| 1344 set_matrix_edge_conical(shader, &matrix); | 1344 set_matrix_edge_conical(shader, &matrix); |
| 1345 return Edge2PtConicalEffect::Create(ctx, shader, matrix, tm); | 1345 return Edge2PtConicalEffect::Create(ctx, shader, matrix, tm); |
| 1346 } else { | 1346 } else { |
| 1347 return CircleOutside2PtConicalEffect::Create(ctx, shader, matrix, tm, in
fo); | 1347 return CircleOutside2PtConicalEffect::Create(ctx, shader, matrix, tm, in
fo); |
| 1348 } | 1348 } |
| 1349 } | 1349 } |
| 1350 | 1350 |
| 1351 #endif | 1351 #endif |
| OLD | NEW |