| Index: src/gpu/gl/GrGLProgramDataManager.cpp
|
| diff --git a/src/gpu/gl/GrGLProgramDataManager.cpp b/src/gpu/gl/GrGLProgramDataManager.cpp
|
| index 9513a3fd57b086c60b95b8f1b4df61bcac9a7e5a..6b2e1118cb2ea05f98912142172219322471d62c 100644
|
| --- a/src/gpu/gl/GrGLProgramDataManager.cpp
|
| +++ b/src/gpu/gl/GrGLProgramDataManager.cpp
|
| @@ -61,31 +61,19 @@
|
| }
|
| }
|
|
|
| -void GrGLProgramDataManager::setSamplers(const SkTArray<GrGLSampler>& samplers) const {
|
| - for (int i = 0; i < samplers.count(); ++i) {
|
| - GrGLint vsLocation;
|
| - GrGLint fsLocation;
|
| - const GrGLSampler& sampler = samplers[i];
|
| - if (kVertex_GrShaderFlag & sampler.visibility()) {
|
| - vsLocation = sampler.location();
|
| - } else {
|
| - vsLocation = kUnusedUniform;
|
| - }
|
| - if (kFragment_GrShaderFlag & sampler.visibility()) {
|
| - fsLocation = sampler.location();
|
| - } else {
|
| - fsLocation = kUnusedUniform;
|
| - }
|
| - // FIXME: We still insert a single sampler uniform for every stage. If the shader does not
|
| - // reference the sampler then the compiler may have optimized it out. Uncomment this assert
|
| - // once stages insert their own samplers.
|
| - // this->printUnused(uni);
|
| - if (kUnusedUniform != fsLocation) {
|
| - GR_GL_CALL(fGpu->glInterface(), Uniform1i(fsLocation, i));
|
| - }
|
| - if (kUnusedUniform != vsLocation && vsLocation != fsLocation) {
|
| - GR_GL_CALL(fGpu->glInterface(), Uniform1i(vsLocation, i));
|
| - }
|
| +void GrGLProgramDataManager::setSampler(UniformHandle u, int texUnit) const {
|
| + const Uniform& uni = fUniforms[u.toIndex()];
|
| + SkASSERT(GrSLTypeIsSamplerType(uni.fType));
|
| + SkASSERT(GrGLSLShaderVar::kNonArray == uni.fArrayCount);
|
| + // FIXME: We still insert a single sampler uniform for every stage. If the shader does not
|
| + // reference the sampler then the compiler may have optimized it out. Uncomment this assert
|
| + // once stages insert their own samplers.
|
| + // this->printUnused(uni);
|
| + if (kUnusedUniform != uni.fFSLocation) {
|
| + GR_GL_CALL(fGpu->glInterface(), Uniform1i(uni.fFSLocation, texUnit));
|
| + }
|
| + if (kUnusedUniform != uni.fVSLocation && uni.fVSLocation != uni.fFSLocation) {
|
| + GR_GL_CALL(fGpu->glInterface(), Uniform1i(uni.fVSLocation, texUnit));
|
| }
|
| }
|
|
|
|
|