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

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

Issue 788733003: Make addUniform take a precision (Closed) Base URL: https://skia.googlesource.com/skia.git@move_prec
Patch Set: rebase Created 6 years 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
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 217 matching lines...) Expand 10 before | Expand all | Expand 10 after
228 228
229 void GLEdge2PtConicalEffect::emitCode(GrGLFPBuilder* builder, 229 void GLEdge2PtConicalEffect::emitCode(GrGLFPBuilder* builder,
230 const GrFragmentProcessor& fp, 230 const GrFragmentProcessor& fp,
231 const char* outputColor, 231 const char* outputColor,
232 const char* inputColor, 232 const char* inputColor,
233 const TransformedCoordsArray& coords, 233 const TransformedCoordsArray& coords,
234 const TextureSamplerArray& samplers) { 234 const TextureSamplerArray& samplers) {
235 const Edge2PtConicalEffect& ge = fp.cast<Edge2PtConicalEffect>(); 235 const Edge2PtConicalEffect& ge = fp.cast<Edge2PtConicalEffect>();
236 this->emitUniforms(builder, ge); 236 this->emitUniforms(builder, ge);
237 fParamUni = builder->addUniformArray(GrGLProgramBuilder::kFragment_Visibilit y, 237 fParamUni = builder->addUniformArray(GrGLProgramBuilder::kFragment_Visibilit y,
238 kFloat_GrSLType, "Conical2FSParams", 3) ; 238 kFloat_GrSLType, kDefault_GrSLPrecision ,
239 "Conical2FSParams", 3);
239 240
240 SkString cName("c"); 241 SkString cName("c");
241 SkString tName("t"); 242 SkString tName("t");
242 SkString p0; // start radius 243 SkString p0; // start radius
243 SkString p1; // start radius squared 244 SkString p1; // start radius squared
244 SkString p2; // difference in radii (r1 - r0) 245 SkString p2; // difference in radii (r1 - r0)
245 246
246 builder->getUniformVariable(fParamUni).appendArrayAccess(0, &p0); 247 builder->getUniformVariable(fParamUni).appendArrayAccess(0, &p0);
247 builder->getUniformVariable(fParamUni).appendArrayAccess(1, &p1); 248 builder->getUniformVariable(fParamUni).appendArrayAccess(1, &p1);
248 builder->getUniformVariable(fParamUni).appendArrayAccess(2, &p2); 249 builder->getUniformVariable(fParamUni).appendArrayAccess(2, &p2);
(...skipping 264 matching lines...) Expand 10 before | Expand all | Expand 10 after
513 514
514 void GLFocalOutside2PtConicalEffect::emitCode(GrGLFPBuilder* builder, 515 void GLFocalOutside2PtConicalEffect::emitCode(GrGLFPBuilder* builder,
515 const GrFragmentProcessor& fp, 516 const GrFragmentProcessor& fp,
516 const char* outputColor, 517 const char* outputColor,
517 const char* inputColor, 518 const char* inputColor,
518 const TransformedCoordsArray& coor ds, 519 const TransformedCoordsArray& coor ds,
519 const TextureSamplerArray& sampler s) { 520 const TextureSamplerArray& sampler s) {
520 const FocalOutside2PtConicalEffect& ge = fp.cast<FocalOutside2PtConicalEffec t>(); 521 const FocalOutside2PtConicalEffect& ge = fp.cast<FocalOutside2PtConicalEffec t>();
521 this->emitUniforms(builder, ge); 522 this->emitUniforms(builder, ge);
522 fParamUni = builder->addUniformArray(GrGLProgramBuilder::kFragment_Visibilit y, 523 fParamUni = builder->addUniformArray(GrGLProgramBuilder::kFragment_Visibilit y,
523 kFloat_GrSLType, "Conical2FSParams", 2) ; 524 kFloat_GrSLType, kDefault_GrSLPrecision ,
525 "Conical2FSParams", 2);
524 SkString tName("t"); 526 SkString tName("t");
525 SkString p0; // focalX 527 SkString p0; // focalX
526 SkString p1; // 1 - focalX * focalX 528 SkString p1; // 1 - focalX * focalX
527 529
528 builder->getUniformVariable(fParamUni).appendArrayAccess(0, &p0); 530 builder->getUniformVariable(fParamUni).appendArrayAccess(0, &p0);
529 builder->getUniformVariable(fParamUni).appendArrayAccess(1, &p1); 531 builder->getUniformVariable(fParamUni).appendArrayAccess(1, &p1);
530 532
531 // if we have a vec3 from being in perspective, convert it to a vec2 first 533 // if we have a vec3 from being in perspective, convert it to a vec2 first
532 GrGLFPFragmentBuilder* fsBuilder = builder->getFragmentShaderBuilder(); 534 GrGLFPFragmentBuilder* fsBuilder = builder->getFragmentShaderBuilder();
533 SkString coords2DString = fsBuilder->ensureFSCoords2D(coords, 0); 535 SkString coords2DString = fsBuilder->ensureFSCoords2D(coords, 0);
(...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after
727 729
728 void GLFocalInside2PtConicalEffect::emitCode(GrGLFPBuilder* builder, 730 void GLFocalInside2PtConicalEffect::emitCode(GrGLFPBuilder* builder,
729 const GrFragmentProcessor& fp, 731 const GrFragmentProcessor& fp,
730 const char* outputColor, 732 const char* outputColor,
731 const char* inputColor, 733 const char* inputColor,
732 const TransformedCoordsArray& coord s, 734 const TransformedCoordsArray& coord s,
733 const TextureSamplerArray& samplers ) { 735 const TextureSamplerArray& samplers ) {
734 const FocalInside2PtConicalEffect& ge = fp.cast<FocalInside2PtConicalEffect> (); 736 const FocalInside2PtConicalEffect& ge = fp.cast<FocalInside2PtConicalEffect> ();
735 this->emitUniforms(builder, ge); 737 this->emitUniforms(builder, ge);
736 fFocalUni = builder->addUniform(GrGLProgramBuilder::kFragment_Visibility, 738 fFocalUni = builder->addUniform(GrGLProgramBuilder::kFragment_Visibility,
737 kFloat_GrSLType, "Conical2FSParams"); 739 kFloat_GrSLType, kDefault_GrSLPrecision,
740 "Conical2FSParams");
738 SkString tName("t"); 741 SkString tName("t");
739 742
740 // this is the distance along x-axis from the end center to focal point in 743 // this is the distance along x-axis from the end center to focal point in
741 // transformed coordinates 744 // transformed coordinates
742 GrGLShaderVar focal = builder->getUniformVariable(fFocalUni); 745 GrGLShaderVar focal = builder->getUniformVariable(fFocalUni);
743 746
744 // if we have a vec3 from being in perspective, convert it to a vec2 first 747 // if we have a vec3 from being in perspective, convert it to a vec2 first
745 GrGLFPFragmentBuilder* fsBuilder = builder->getFragmentShaderBuilder(); 748 GrGLFPFragmentBuilder* fsBuilder = builder->getFragmentShaderBuilder();
746 SkString coords2DString = fsBuilder->ensureFSCoords2D(coords, 0); 749 SkString coords2DString = fsBuilder->ensureFSCoords2D(coords, 0);
747 const char* coords2D = coords2DString.c_str(); 750 const char* coords2D = coords2DString.c_str();
(...skipping 235 matching lines...) Expand 10 before | Expand all | Expand 10 after
983 986
984 void GLCircleInside2PtConicalEffect::emitCode(GrGLFPBuilder* builder, 987 void GLCircleInside2PtConicalEffect::emitCode(GrGLFPBuilder* builder,
985 const GrFragmentProcessor& fp, 988 const GrFragmentProcessor& fp,
986 const char* outputColor, 989 const char* outputColor,
987 const char* inputColor, 990 const char* inputColor,
988 const TransformedCoordsArray& coor ds, 991 const TransformedCoordsArray& coor ds,
989 const TextureSamplerArray& sampler s) { 992 const TextureSamplerArray& sampler s) {
990 const CircleInside2PtConicalEffect& ge = fp.cast<CircleInside2PtConicalEffec t>(); 993 const CircleInside2PtConicalEffect& ge = fp.cast<CircleInside2PtConicalEffec t>();
991 this->emitUniforms(builder, ge); 994 this->emitUniforms(builder, ge);
992 fCenterUni = builder->addUniform(GrGLProgramBuilder::kFragment_Visibility, 995 fCenterUni = builder->addUniform(GrGLProgramBuilder::kFragment_Visibility,
993 kVec2f_GrSLType, "Conical2FSCenter"); 996 kVec2f_GrSLType, kDefault_GrSLPrecision,
997 "Conical2FSCenter");
994 fParamUni = builder->addUniform(GrGLProgramBuilder::kFragment_Visibility, 998 fParamUni = builder->addUniform(GrGLProgramBuilder::kFragment_Visibility,
995 kVec3f_GrSLType, "Conical2FSParams"); 999 kVec3f_GrSLType, kDefault_GrSLPrecision,
1000 "Conical2FSParams");
996 SkString tName("t"); 1001 SkString tName("t");
997 1002
998 GrGLShaderVar center = builder->getUniformVariable(fCenterUni); 1003 GrGLShaderVar center = builder->getUniformVariable(fCenterUni);
999 // params.x = A 1004 // params.x = A
1000 // params.y = B 1005 // params.y = B
1001 // params.z = C 1006 // params.z = C
1002 GrGLShaderVar params = builder->getUniformVariable(fParamUni); 1007 GrGLShaderVar params = builder->getUniformVariable(fParamUni);
1003 1008
1004 // if we have a vec3 from being in perspective, convert it to a vec2 first 1009 // if we have a vec3 from being in perspective, convert it to a vec2 first
1005 GrGLFPFragmentBuilder* fsBuilder = builder->getFragmentShaderBuilder(); 1010 GrGLFPFragmentBuilder* fsBuilder = builder->getFragmentShaderBuilder();
(...skipping 218 matching lines...) Expand 10 before | Expand all | Expand 10 after
1224 1229
1225 void GLCircleOutside2PtConicalEffect::emitCode(GrGLFPBuilder* builder, 1230 void GLCircleOutside2PtConicalEffect::emitCode(GrGLFPBuilder* builder,
1226 const GrFragmentProcessor& fp, 1231 const GrFragmentProcessor& fp,
1227 const char* outputColor, 1232 const char* outputColor,
1228 const char* inputColor, 1233 const char* inputColor,
1229 const TransformedCoordsArray& coo rds, 1234 const TransformedCoordsArray& coo rds,
1230 const TextureSamplerArray& sample rs) { 1235 const TextureSamplerArray& sample rs) {
1231 const CircleOutside2PtConicalEffect& ge = fp.cast<CircleOutside2PtConicalEff ect>(); 1236 const CircleOutside2PtConicalEffect& ge = fp.cast<CircleOutside2PtConicalEff ect>();
1232 this->emitUniforms(builder, ge); 1237 this->emitUniforms(builder, ge);
1233 fCenterUni = builder->addUniform(GrGLProgramBuilder::kFragment_Visibility, 1238 fCenterUni = builder->addUniform(GrGLProgramBuilder::kFragment_Visibility,
1234 kVec2f_GrSLType, "Conical2FSCenter"); 1239 kVec2f_GrSLType, kDefault_GrSLPrecision,
1240 "Conical2FSCenter");
1235 fParamUni = builder->addUniform(GrGLProgramBuilder::kFragment_Visibility, 1241 fParamUni = builder->addUniform(GrGLProgramBuilder::kFragment_Visibility,
1236 kVec4f_GrSLType, "Conical2FSParams"); 1242 kVec4f_GrSLType, kDefault_GrSLPrecision,
1243 "Conical2FSParams");
1237 SkString tName("t"); 1244 SkString tName("t");
1238 1245
1239 GrGLShaderVar center = builder->getUniformVariable(fCenterUni); 1246 GrGLShaderVar center = builder->getUniformVariable(fCenterUni);
1240 // params.x = A 1247 // params.x = A
1241 // params.y = B 1248 // params.y = B
1242 // params.z = C 1249 // params.z = C
1243 GrGLShaderVar params = builder->getUniformVariable(fParamUni); 1250 GrGLShaderVar params = builder->getUniformVariable(fParamUni);
1244 1251
1245 // if we have a vec3 from being in perspective, convert it to a vec2 first 1252 // if we have a vec3 from being in perspective, convert it to a vec2 first
1246 GrGLFPFragmentBuilder* fsBuilder = builder->getFragmentShaderBuilder(); 1253 GrGLFPFragmentBuilder* fsBuilder = builder->getFragmentShaderBuilder();
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
1353 return CircleInside2PtConicalEffect::Create(ctx, shader, matrix, tm, inf o); 1360 return CircleInside2PtConicalEffect::Create(ctx, shader, matrix, tm, inf o);
1354 } else if (type == kEdge_ConicalType) { 1361 } else if (type == kEdge_ConicalType) {
1355 set_matrix_edge_conical(shader, &matrix); 1362 set_matrix_edge_conical(shader, &matrix);
1356 return Edge2PtConicalEffect::Create(ctx, shader, matrix, tm); 1363 return Edge2PtConicalEffect::Create(ctx, shader, matrix, tm);
1357 } else { 1364 } else {
1358 return CircleOutside2PtConicalEffect::Create(ctx, shader, matrix, tm, in fo); 1365 return CircleOutside2PtConicalEffect::Create(ctx, shader, matrix, tm, in fo);
1359 } 1366 }
1360 } 1367 }
1361 1368
1362 #endif 1369 #endif
OLDNEW
« no previous file with comments | « src/effects/gradients/SkGradientShader.cpp ('k') | src/effects/gradients/SkTwoPointRadialGradient.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698