diff --git a/src/core/renderers/webgl/filters/Filter.js b/src/core/renderers/webgl/filters/Filter.js index 36560a9..16b2cec 100644 --- a/src/core/renderers/webgl/filters/Filter.js +++ b/src/core/renderers/webgl/filters/Filter.js @@ -1,4 +1,7 @@ -var extractUniformsFromSrc = require('./extractUniformsFromSrc'); +var extractUniformsFromSrc = require('./extractUniformsFromSrc'), + utils = require('../../../utils'), + SOURCE_KEY_MAP = {}; + // var math = require('../../../math'); /** * @class @@ -38,20 +41,24 @@ this.uniforms[i] = this.uniformData[i].value; } - // this.uniforms = // this is where we store shader references.. // TODO we could cache this! this.glShaders = []; - // used for cacheing.. - this.glShaderKey = null; + // used for cacheing.. sure there is a better way! + if(!SOURCE_KEY_MAP[this.vertexSrc + this.fragmentSrc]) + { + SOURCE_KEY_MAP[this.vertexSrc + this.fragmentSrc] = utils.uid(); + } + + this.glShaderKey = SOURCE_KEY_MAP[this.vertexSrc + this.fragmentSrc]; this.padding = 4; this.resolution = 1; } // constructor -Filter.prototype.constructor = Filter; +//Filter.prototype.constructor = Filter; module.exports = Filter; // var tempMatrix = new math.Matrix();