ThreeJS acquireProgram

174 阅读1分钟
program = programCache.acquireProgram(parameters, programCacheKey);
  • 获取相同的program 否则创建一个program
  • 返回program
function acquireProgram(parameters, cacheKey) {
        let program;

        // Check if code has been already compiled
        for (let p = 0, pl = programs.length; p < pl; p++) {
                const preexistingProgram = programs[p];

                if (preexistingProgram.cacheKey === cacheKey) { //这个cacheKey好像是
                        program = preexistingProgram;
                        ++program.usedTimes;

                        break;
                }
        }

        if (program === undefined) {
                program = new WebGLProgram(renderer, cacheKey, parameters, bindingStates);
                programs.push(program);
        }

        return program;
}