Index: src/gpu/gl/GrGpuGL_program.cpp |
diff --git a/src/gpu/gl/GrGpuGL_program.cpp b/src/gpu/gl/GrGpuGL_program.cpp |
index 2e6bfc4f925651d8235fa4c14ab27530e16a1e61..363d87fbfbf1089ccfe2f0007209d6b086c1e9f4 100644 |
--- a/src/gpu/gl/GrGpuGL_program.cpp |
+++ b/src/gpu/gl/GrGpuGL_program.cpp |
@@ -90,7 +90,8 @@ int GrGpuGL::ProgramCache::search(const GrGLProgramDesc& desc) const { |
return SkTSearch(fEntries, fCount, desc, sizeof(Entry*), less); |
} |
-GrGLProgram* GrGpuGL::ProgramCache::getProgram(const GrGLProgramDesc& desc, |
+GrGLProgram* GrGpuGL::ProgramCache::getProgram(const GrOptDrawState& optState, |
+ const GrGLProgramDesc& desc, |
const GrGeometryStage* geometryProcessor, |
const GrFragmentStage* colorStages[], |
const GrFragmentStage* coverageStages[]) { |
@@ -128,8 +129,8 @@ GrGLProgram* GrGpuGL::ProgramCache::getProgram(const GrGLProgramDesc& desc, |
#ifdef PROGRAM_CACHE_STATS |
++fCacheMisses; |
#endif |
- GrGLProgram* program = GrGLProgram::Create(fGpu, desc, geometryProcessor, |
- colorStages, coverageStages); |
+ GrGLProgram* program = GrGLProgram::Create(fGpu, optState, desc, geometryProcessor, |
+ colorStages, coverageStages); |
if (NULL == program) { |
return NULL; |
} |
@@ -245,7 +246,8 @@ bool GrGpuGL::flushGraphicsState(DrawType type, const GrDeviceCoordTexture* dstC |
return false; |
} |
- fCurrentProgram.reset(fProgramCache->getProgram(desc, |
+ fCurrentProgram.reset(fProgramCache->getProgram(*optState.get(), |
+ desc, |
geometryProcessor, |
colorStages.begin(), |
coverageStages.begin())); |