diff options
Diffstat (limited to 'src/gpu/gl/GrGLProgram.cpp')
-rw-r--r-- | src/gpu/gl/GrGLProgram.cpp | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/gpu/gl/GrGLProgram.cpp b/src/gpu/gl/GrGLProgram.cpp index c270858ec3..6a433e17c5 100644 --- a/src/gpu/gl/GrGLProgram.cpp +++ b/src/gpu/gl/GrGLProgram.cpp @@ -31,11 +31,11 @@ GrGLProgram::GrGLProgram(GrGLGpu* gpu, const BuiltinUniformHandles& builtinUniforms, GrGLuint programID, const UniformInfoArray& uniforms, - const SkTArray<GrGLSampler>& samplers, const VaryingInfoArray& pathProcVaryings, GrGLSLPrimitiveProcessor* geometryProcessor, GrGLSLXferProcessor* xferProcessor, - const GrGLSLFragProcs& fragmentProcessors) + const GrGLSLFragProcs& fragmentProcessors, + SkTArray<UniformHandle>* passSamplerUniforms) : fBuiltinUniformHandles(builtinUniforms) , fProgramID(programID) , fGeometryProcessor(geometryProcessor) @@ -44,9 +44,12 @@ GrGLProgram::GrGLProgram(GrGLGpu* gpu, , fDesc(desc) , fGpu(gpu) , fProgramDataManager(gpu, programID, uniforms, pathProcVaryings) { + fSamplerUniforms.swap(passSamplerUniforms); // Assign texture units to sampler uniforms one time up front. GL_CALL(UseProgram(fProgramID)); - fProgramDataManager.setSamplers(samplers); + for (int i = 0; i < fSamplerUniforms.count(); i++) { + fProgramDataManager.setSampler(fSamplerUniforms[i], i); + } } GrGLProgram::~GrGLProgram() { |