diff options
author | 2016-05-30 22:30:24 -0700 | |
---|---|---|
committer | 2016-05-30 22:30:24 -0700 | |
commit | 3eb7d76b9c3072c33ca8a158bc78ba864521e0f0 (patch) | |
tree | 540dd1b78c19ca02b48a7bf0ac2daf9aa95a6d39 /src/gpu/gl/GrGLUniformHandler.cpp | |
parent | abfd028c26ae065631c0a3865609be85e96cc324 (diff) |
Fix incorrect sampler locations when using CHROMIUM_bind_uniform_location
Fix incorrect sampler locations when using
CHROMIUM_bind_uniform_location.
The extension is not used at the moment, though.
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2023783002
Review-Url: https://codereview.chromium.org/2023783002
Diffstat (limited to 'src/gpu/gl/GrGLUniformHandler.cpp')
-rw-r--r-- | src/gpu/gl/GrGLUniformHandler.cpp | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/gpu/gl/GrGLUniformHandler.cpp b/src/gpu/gl/GrGLUniformHandler.cpp index c4189267f1..c388e4621b 100644 --- a/src/gpu/gl/GrGLUniformHandler.cpp +++ b/src/gpu/gl/GrGLUniformHandler.cpp @@ -85,14 +85,15 @@ void GrGLUniformHandler::appendUniformDecls(GrShaderFlags visibility, SkString* void GrGLUniformHandler::bindUniformLocations(GrGLuint programID, const GrGLCaps& caps) { if (caps.bindUniformLocationSupport()) { - int count = fUniforms.count(); - for (int i = 0; i < count; ++i) { + int uniformCnt = fUniforms.count(); + for (int i = 0; i < uniformCnt; ++i) { GL_CALL(BindUniformLocation(programID, i, fUniforms[i].fVariable.c_str())); fUniforms[i].fLocation = i; } for (int i = 0; i < fSamplers.count(); ++i) { - GL_CALL(BindUniformLocation(programID, i, fSamplers[i].fShaderVar.c_str())); - fSamplers[i].fLocation = i; + GrGLint location = i + uniformCnt; + GL_CALL(BindUniformLocation(programID, location, fSamplers[i].fShaderVar.c_str())); + fSamplers[i].fLocation = location; } } } |