UNPKG

glam

Version:

Experimental WebGL Engine

38 lines (26 loc) 839 B
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = createShaderOrGetCached; var _glShader = require('gl-shader'); var _glShader2 = _interopRequireDefault(_glShader); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function createShaderOrGetCached(cache, gl, mesh, defines) { var material = mesh.material; var key = defines + material.vertSource + material.fragSource; var cachedEntry = cache[key]; var shader = undefined; if (cachedEntry) { shader = cachedEntry.shader; cachedEntry.meshes.push(mesh); } else { // Create and cache the shader shader = (0, _glShader2.default)(gl, defines + material.vertSource, defines + material.fragSource); cache[key] = { shader: shader, meshes: [mesh] }; } return shader; }