diff options
Diffstat (limited to 'src/gpu/gl/GrGpuGL_program.cpp')
-rw-r--r-- | src/gpu/gl/GrGpuGL_program.cpp | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/gpu/gl/GrGpuGL_program.cpp b/src/gpu/gl/GrGpuGL_program.cpp index 2e6bfc4f92..363d87fbfb 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())); |