Index: src/effects/gradients/SkTwoPointConicalGradient_gpu.cpp |
diff --git a/src/effects/gradients/SkTwoPointConicalGradient_gpu.cpp b/src/effects/gradients/SkTwoPointConicalGradient_gpu.cpp |
index 83d5af86145294f54b93a6823267da020b1f6a2c..5b0855ab7c71e0ee0c48299d2b7801e4ac66d8f1 100644 |
--- a/src/effects/gradients/SkTwoPointConicalGradient_gpu.cpp |
+++ b/src/effects/gradients/SkTwoPointConicalGradient_gpu.cpp |
@@ -227,9 +227,9 @@ void GLEdge2PtConicalEffect::emitCode(EmitArgs& args) { |
const Edge2PtConicalEffect& ge = args.fFp.cast<Edge2PtConicalEffect>(); |
GrGLSLUniformHandler* uniformHandler = args.fUniformHandler; |
this->emitUniforms(uniformHandler, ge); |
- fParamUni = uniformHandler->addUniformArray(kFragment_GrShaderFlag, |
- kFloat_GrSLType, kDefault_GrSLPrecision, |
- "Conical2FSParams", 3); |
+ fParamUni = uniformHandler->addUniform(kFragment_GrShaderFlag, |
+ kVec3f_GrSLType, kDefault_GrSLPrecision, |
+ "Conical2FSParams"); |
SkString cName("c"); |
SkString tName("t"); |
@@ -237,9 +237,10 @@ void GLEdge2PtConicalEffect::emitCode(EmitArgs& args) { |
SkString p1; // start radius squared |
SkString p2; // difference in radii (r1 - r0) |
- uniformHandler->getUniformVariable(fParamUni).appendArrayAccess(0, &p0); |
- uniformHandler->getUniformVariable(fParamUni).appendArrayAccess(1, &p1); |
- uniformHandler->getUniformVariable(fParamUni).appendArrayAccess(2, &p2); |
+ |
+ p0.appendf("%s.x", uniformHandler->getUniformVariable(fParamUni).getName().c_str()); |
+ p1.appendf("%s.y", uniformHandler->getUniformVariable(fParamUni).getName().c_str()); |
+ p2.appendf("%s.z", uniformHandler->getUniformVariable(fParamUni).getName().c_str()); |
// We interpolate the linear component in coords[1]. |
SkASSERT(args.fCoords[0].getType() == args.fCoords[1].getType()); |
@@ -294,13 +295,8 @@ void GLEdge2PtConicalEffect::onSetData(const GrGLSLProgramDataManager& pdman, |
if (fCachedRadius != radius0 || |
fCachedDiffRadius != diffRadius) { |
- float values[3] = { |
- SkScalarToFloat(radius0), |
- SkScalarToFloat(SkScalarMul(radius0, radius0)), |
- SkScalarToFloat(diffRadius) |
- }; |
- |
- pdman.set1fv(fParamUni, 3, values); |
+ pdman.set3f(fParamUni, SkScalarToFloat(radius0), |
+ SkScalarToFloat(SkScalarMul(radius0, radius0)), SkScalarToFloat(diffRadius)); |
fCachedRadius = radius0; |
fCachedDiffRadius = diffRadius; |
} |
@@ -510,15 +506,15 @@ void GLFocalOutside2PtConicalEffect::emitCode(EmitArgs& args) { |
const FocalOutside2PtConicalEffect& ge = args.fFp.cast<FocalOutside2PtConicalEffect>(); |
GrGLSLUniformHandler* uniformHandler = args.fUniformHandler; |
this->emitUniforms(uniformHandler, ge); |
- fParamUni = uniformHandler->addUniformArray(kFragment_GrShaderFlag, |
- kFloat_GrSLType, kDefault_GrSLPrecision, |
- "Conical2FSParams", 2); |
+ fParamUni = uniformHandler->addUniform(kFragment_GrShaderFlag, |
+ kVec2f_GrSLType, kDefault_GrSLPrecision, |
+ "Conical2FSParams"); |
SkString tName("t"); |
SkString p0; // focalX |
SkString p1; // 1 - focalX * focalX |
- uniformHandler->getUniformVariable(fParamUni).appendArrayAccess(0, &p0); |
- uniformHandler->getUniformVariable(fParamUni).appendArrayAccess(1, &p1); |
+ p0.appendf("%s.x", uniformHandler->getUniformVariable(fParamUni).getName().c_str()); |
+ p1.appendf("%s.y", uniformHandler->getUniformVariable(fParamUni).getName().c_str()); |
// if we have a vec3 from being in perspective, convert it to a vec2 first |
GrGLSLFPFragmentBuilder* fragBuilder = args.fFragBuilder; |
@@ -568,12 +564,7 @@ void GLFocalOutside2PtConicalEffect::onSetData(const GrGLSLProgramDataManager& p |
if (fCachedFocal != focal) { |
SkScalar oneMinus2F = 1.f - SkScalarMul(focal, focal); |
- float values[2] = { |
- SkScalarToFloat(focal), |
- SkScalarToFloat(oneMinus2F), |
- }; |
- |
- pdman.set1fv(fParamUni, 2, values); |
+ pdman.set2f(fParamUni, SkScalarToFloat(focal), SkScalarToFloat(oneMinus2F)); |
fCachedFocal = focal; |
} |
} |