diff --git a/src/core/renderers/webgl/managers/_ShaderManager.js b/src/core/renderers/webgl/managers/_ShaderManager.js deleted file mode 100644 index 3a967af..0000000 --- a/src/core/renderers/webgl/managers/_ShaderManager.js +++ /dev/null @@ -1,168 +0,0 @@ -var WebGLManager = require('./WebGLManager'), - TextureShader = require('../shaders/TextureShader'), - ComplexPrimitiveShader = require('../shaders/ComplexPrimitiveShader'), - PrimitiveShader = require('../shaders/PrimitiveShader'), - utils = require('../../../utils'); - -/** - * @class - * @memberof PIXI - * @extends PIXI.WebGLManager - * @param renderer {PIXI.WebGLRenderer} The renderer this manager works for. - */ -function ShaderManager(renderer) -{ - WebGLManager.call(this, renderer); - - /** - * @member {number} - */ - this.maxAttibs = 10; - - /** - * @member {any[]} - */ - this.attribState = []; - - /** - * @member {any[]} - */ - this.tempAttribState = []; - - for (var i = 0; i < this.maxAttibs; i++) - { - this.attribState[i] = false; - } - - /** - * @member {any[]} - */ - this.stack = []; - - /** - * @member {number} - * @private - */ - this._currentId = -1; - - /** - * @member {PIXI.Shader} - * @private - */ - this.currentShader = null; - -// this.initPlugins(); -} - -ShaderManager.prototype = Object.create(WebGLManager.prototype); -ShaderManager.prototype.constructor = ShaderManager; -utils.pluginTarget.mixin(ShaderManager); - -module.exports = ShaderManager; - -/** - * Called when there is a WebGL context change. - * - */ -ShaderManager.prototype.onContextChange = function () -{ - this.initPlugins(); - - var gl = this.renderer.gl; - - // get the maximum number of attribute correctly as this tends to vary - this.maxAttibs = gl.getParameter(gl.MAX_VERTEX_ATTRIBS); - - this.attribState = []; - - for (var i = 0; i < this.maxAttibs; i++) - { - this.attribState[i] = false; - } - - // TODO - Why are these not plugins? We can't decouple primitives unless they are.... - this.defaultShader = new TextureShader(this); - this.primitiveShader = new PrimitiveShader(this); - this.complexPrimitiveShader = new ComplexPrimitiveShader(this); -}; - -/** - * Takes the attributes given in parameters and uploads them. - * - * @param attribs {any[]} attribs - */ -ShaderManager.prototype.setAttribs = function (attribs) -{ - // reset temp state - var i; - - for (i = 0; i < this.tempAttribState.length; i++) - { - this.tempAttribState[i] = false; - } - - // set the new attribs - for (var a in attribs) - { - this.tempAttribState[attribs[a]] = true; - } - - var gl = this.renderer.gl; - - for (i = 0; i < this.attribState.length; i++) - { - if (this.attribState[i] !== this.tempAttribState[i]) - { - this.attribState[i] = this.tempAttribState[i]; - - if (this.attribState[i]) - { - gl.enableVertexAttribArray(i); - } - else - { - gl.disableVertexAttribArray(i); - } - } - } -}; - -/** - * Sets the current shader. - * - * @param shader {PIXI.Shader} the shader to upload - */ -ShaderManager.prototype.setShader = function (shader) -{ - return; - if (this._currentId === shader.uid) - { - return false; - } - - this._currentId = shader.uid; - - this.currentShader = shader; - - this.renderer.gl.useProgram(shader.program); - this.setAttribs(shader.attributes); - - return true; -}; - -/** - * Destroys this object. - * - */ -ShaderManager.prototype.destroy = function () -{ - this.primitiveShader.destroy(); - this.complexPrimitiveShader.destroy(); - WebGLManager.prototype.destroy.call(this); - - this.destroyPlugins(); - - this.attribState = null; - - this.tempAttribState = null; -};