program = programCache.acquireProgram(parameters, programCacheKey);
- 获取相同的program 否则创建一个program
- 返回program
function acquireProgram(parameters, cacheKey) {
let program;
for (let p = 0, pl = programs.length; p < pl; p++) {
const preexistingProgram = programs[p];
if (preexistingProgram.cacheKey === cacheKey) {
program = preexistingProgram;
++program.usedTimes;
break;
}
}
if (program === undefined) {
program = new WebGLProgram(renderer, cacheKey, parameters, bindingStates);
programs.push(program);
}
return program;
}