diff --git a/src/core/display/SpriteBatch.js b/src/core/display/SpriteBatch.js index 299c981..67dbfd4 100644 --- a/src/core/display/SpriteBatch.js +++ b/src/core/display/SpriteBatch.js @@ -27,25 +27,12 @@ //TODO RENAME to PARTICLE CONTAINER? function SpriteBatch() { DisplayObjectContainer.call(this); - - this.ready = false; } SpriteBatch.prototype = Object.create(DisplayObjectContainer.prototype); SpriteBatch.prototype.constructor = SpriteBatch; /** - * Initialises the spriteBatch for WebGL - * - * @param gl {WebGLContext} the current WebGL drawing context - */ -SpriteBatch.prototype.initWebGL = function (renderer) { - this.fastSpriteBatch = new WebGLFastSpriteBatch(renderer); - - this.ready = true; -}; - -/** * Updates the object transform for rendering * * @private @@ -67,16 +54,12 @@ return; } - if (!this.ready) { - this.initWebGL(renderer); - } - renderer.spriteBatch.stop(); renderer.shaderManager.setShader(renderer.shaderManager.fastShader); - this.fastSpriteBatch.begin(this); - this.fastSpriteBatch.render(this); + renderer.fastSpriteBatch.begin(this); + renderer.fastSpriteBatch.render(this); renderer.spriteBatch.start(); }; diff --git a/src/core/display/SpriteBatch.js b/src/core/display/SpriteBatch.js index 299c981..67dbfd4 100644 --- a/src/core/display/SpriteBatch.js +++ b/src/core/display/SpriteBatch.js @@ -27,25 +27,12 @@ //TODO RENAME to PARTICLE CONTAINER? function SpriteBatch() { DisplayObjectContainer.call(this); - - this.ready = false; } SpriteBatch.prototype = Object.create(DisplayObjectContainer.prototype); SpriteBatch.prototype.constructor = SpriteBatch; /** - * Initialises the spriteBatch for WebGL - * - * @param gl {WebGLContext} the current WebGL drawing context - */ -SpriteBatch.prototype.initWebGL = function (renderer) { - this.fastSpriteBatch = new WebGLFastSpriteBatch(renderer); - - this.ready = true; -}; - -/** * Updates the object transform for rendering * * @private @@ -67,16 +54,12 @@ return; } - if (!this.ready) { - this.initWebGL(renderer); - } - renderer.spriteBatch.stop(); renderer.shaderManager.setShader(renderer.shaderManager.fastShader); - this.fastSpriteBatch.begin(this); - this.fastSpriteBatch.render(this); + renderer.fastSpriteBatch.begin(this); + renderer.fastSpriteBatch.render(this); renderer.spriteBatch.start(); }; diff --git a/src/core/renderers/webgl/WebGLRenderer.js b/src/core/renderers/webgl/WebGLRenderer.js index a8b7c7f..d32d9bf 100644 --- a/src/core/renderers/webgl/WebGLRenderer.js +++ b/src/core/renderers/webgl/WebGLRenderer.js @@ -189,6 +189,12 @@ this.spriteBatch = new WebGLSpriteBatch(this); /** + * Manages the rendering of sprites + * @member {WebGLFastSpriteBatch} + */ + this.fastSpriteBatch = new WebGLFastSpriteBatch(this); + + /** * Manages the masks using the stencil buffer * @member {WebGLMaskManager} */ diff --git a/src/core/display/SpriteBatch.js b/src/core/display/SpriteBatch.js index 299c981..67dbfd4 100644 --- a/src/core/display/SpriteBatch.js +++ b/src/core/display/SpriteBatch.js @@ -27,25 +27,12 @@ //TODO RENAME to PARTICLE CONTAINER? function SpriteBatch() { DisplayObjectContainer.call(this); - - this.ready = false; } SpriteBatch.prototype = Object.create(DisplayObjectContainer.prototype); SpriteBatch.prototype.constructor = SpriteBatch; /** - * Initialises the spriteBatch for WebGL - * - * @param gl {WebGLContext} the current WebGL drawing context - */ -SpriteBatch.prototype.initWebGL = function (renderer) { - this.fastSpriteBatch = new WebGLFastSpriteBatch(renderer); - - this.ready = true; -}; - -/** * Updates the object transform for rendering * * @private @@ -67,16 +54,12 @@ return; } - if (!this.ready) { - this.initWebGL(renderer); - } - renderer.spriteBatch.stop(); renderer.shaderManager.setShader(renderer.shaderManager.fastShader); - this.fastSpriteBatch.begin(this); - this.fastSpriteBatch.render(this); + renderer.fastSpriteBatch.begin(this); + renderer.fastSpriteBatch.render(this); renderer.spriteBatch.start(); }; diff --git a/src/core/renderers/webgl/WebGLRenderer.js b/src/core/renderers/webgl/WebGLRenderer.js index a8b7c7f..d32d9bf 100644 --- a/src/core/renderers/webgl/WebGLRenderer.js +++ b/src/core/renderers/webgl/WebGLRenderer.js @@ -189,6 +189,12 @@ this.spriteBatch = new WebGLSpriteBatch(this); /** + * Manages the rendering of sprites + * @member {WebGLFastSpriteBatch} + */ + this.fastSpriteBatch = new WebGLFastSpriteBatch(this); + + /** * Manages the masks using the stencil buffer * @member {WebGLMaskManager} */ diff --git a/src/core/renderers/webgl/utils/WebGLFastSpriteBatch.js b/src/core/renderers/webgl/utils/WebGLFastSpriteBatch.js index 01aa070..0b7e842 100644 --- a/src/core/renderers/webgl/utils/WebGLFastSpriteBatch.js +++ b/src/core/renderers/webgl/utils/WebGLFastSpriteBatch.js @@ -16,21 +16,29 @@ */ function WebGLFastSpriteBatch(renderer) { /** + * The renderer instance this sprite batch operates on. + * * @member {WebGLRenderer} */ this.renderer = renderer; /** + * + * * @member {number} */ this.vertSize = 10; /** + * + * * @member {number} */ this.maxSize = 6000;//Math.pow(2, 16) / this.vertSize; /** + * + * * @member {number} */ this.size = this.maxSize; @@ -43,27 +51,35 @@ /** * Vertex data + * * @member {Float32Array} */ this.vertices = new Float32Array(numVerts); /** * Index data + * * @member {Uint16Array} */ this.indices = new Uint16Array(numIndices); /** + * + * * @member {object} */ this.vertexBuffer = null; /** + * + * * @member {object} */ this.indexBuffer = null; /** + * + * * @member {number} */ this.lastIndexCount = 0; @@ -78,31 +94,43 @@ } /** + * + * * @member {boolean} */ this.drawing = false; /** + * + * * @member {number} */ this.currentBatchSize = 0; /** + * + * * @member {BaseTexture} */ this.currentBaseTexture = null; /** + * + * * @member {number} */ this.currentBlendMode = 0; /** + * + * * @member {object} */ this.shader = null; /** + * + * * @member {Matrix} */ this.matrix = null; @@ -136,8 +164,7 @@ }; /** - * @param spriteBatch {WebGLSpriteBatch} - * @param renderer {WebGLRenderer|CanvasRenderer} The renderer + * @param spriteBatch {SpriteBatch} The SpriteBatch container to prepare for. */ WebGLFastSpriteBatch.prototype.begin = function (spriteBatch) { this.shader = this.renderer.shaderManager.fastShader; @@ -154,7 +181,7 @@ }; /** - * @param spriteBatch {WebGLSpriteBatch} + * @param spriteBatch {SpriteBatch} The SpriteBatch container to render. */ WebGLFastSpriteBatch.prototype.render = function (spriteBatch) { var children = spriteBatch.children; @@ -183,7 +210,7 @@ }; /** - * @param sprite {Sprite} + * @param sprite {Sprite} The Sprite to render. */ WebGLFastSpriteBatch.prototype.renderSprite = function (sprite) { //sprite = children[i]; @@ -363,6 +390,7 @@ /** + * Ends the batch and flushes * */ WebGLFastSpriteBatch.prototype.stop = function () { diff --git a/src/core/display/SpriteBatch.js b/src/core/display/SpriteBatch.js index 299c981..67dbfd4 100644 --- a/src/core/display/SpriteBatch.js +++ b/src/core/display/SpriteBatch.js @@ -27,25 +27,12 @@ //TODO RENAME to PARTICLE CONTAINER? function SpriteBatch() { DisplayObjectContainer.call(this); - - this.ready = false; } SpriteBatch.prototype = Object.create(DisplayObjectContainer.prototype); SpriteBatch.prototype.constructor = SpriteBatch; /** - * Initialises the spriteBatch for WebGL - * - * @param gl {WebGLContext} the current WebGL drawing context - */ -SpriteBatch.prototype.initWebGL = function (renderer) { - this.fastSpriteBatch = new WebGLFastSpriteBatch(renderer); - - this.ready = true; -}; - -/** * Updates the object transform for rendering * * @private @@ -67,16 +54,12 @@ return; } - if (!this.ready) { - this.initWebGL(renderer); - } - renderer.spriteBatch.stop(); renderer.shaderManager.setShader(renderer.shaderManager.fastShader); - this.fastSpriteBatch.begin(this); - this.fastSpriteBatch.render(this); + renderer.fastSpriteBatch.begin(this); + renderer.fastSpriteBatch.render(this); renderer.spriteBatch.start(); }; diff --git a/src/core/renderers/webgl/WebGLRenderer.js b/src/core/renderers/webgl/WebGLRenderer.js index a8b7c7f..d32d9bf 100644 --- a/src/core/renderers/webgl/WebGLRenderer.js +++ b/src/core/renderers/webgl/WebGLRenderer.js @@ -189,6 +189,12 @@ this.spriteBatch = new WebGLSpriteBatch(this); /** + * Manages the rendering of sprites + * @member {WebGLFastSpriteBatch} + */ + this.fastSpriteBatch = new WebGLFastSpriteBatch(this); + + /** * Manages the masks using the stencil buffer * @member {WebGLMaskManager} */ diff --git a/src/core/renderers/webgl/utils/WebGLFastSpriteBatch.js b/src/core/renderers/webgl/utils/WebGLFastSpriteBatch.js index 01aa070..0b7e842 100644 --- a/src/core/renderers/webgl/utils/WebGLFastSpriteBatch.js +++ b/src/core/renderers/webgl/utils/WebGLFastSpriteBatch.js @@ -16,21 +16,29 @@ */ function WebGLFastSpriteBatch(renderer) { /** + * The renderer instance this sprite batch operates on. + * * @member {WebGLRenderer} */ this.renderer = renderer; /** + * + * * @member {number} */ this.vertSize = 10; /** + * + * * @member {number} */ this.maxSize = 6000;//Math.pow(2, 16) / this.vertSize; /** + * + * * @member {number} */ this.size = this.maxSize; @@ -43,27 +51,35 @@ /** * Vertex data + * * @member {Float32Array} */ this.vertices = new Float32Array(numVerts); /** * Index data + * * @member {Uint16Array} */ this.indices = new Uint16Array(numIndices); /** + * + * * @member {object} */ this.vertexBuffer = null; /** + * + * * @member {object} */ this.indexBuffer = null; /** + * + * * @member {number} */ this.lastIndexCount = 0; @@ -78,31 +94,43 @@ } /** + * + * * @member {boolean} */ this.drawing = false; /** + * + * * @member {number} */ this.currentBatchSize = 0; /** + * + * * @member {BaseTexture} */ this.currentBaseTexture = null; /** + * + * * @member {number} */ this.currentBlendMode = 0; /** + * + * * @member {object} */ this.shader = null; /** + * + * * @member {Matrix} */ this.matrix = null; @@ -136,8 +164,7 @@ }; /** - * @param spriteBatch {WebGLSpriteBatch} - * @param renderer {WebGLRenderer|CanvasRenderer} The renderer + * @param spriteBatch {SpriteBatch} The SpriteBatch container to prepare for. */ WebGLFastSpriteBatch.prototype.begin = function (spriteBatch) { this.shader = this.renderer.shaderManager.fastShader; @@ -154,7 +181,7 @@ }; /** - * @param spriteBatch {WebGLSpriteBatch} + * @param spriteBatch {SpriteBatch} The SpriteBatch container to render. */ WebGLFastSpriteBatch.prototype.render = function (spriteBatch) { var children = spriteBatch.children; @@ -183,7 +210,7 @@ }; /** - * @param sprite {Sprite} + * @param sprite {Sprite} The Sprite to render. */ WebGLFastSpriteBatch.prototype.renderSprite = function (sprite) { //sprite = children[i]; @@ -363,6 +390,7 @@ /** + * Ends the batch and flushes * */ WebGLFastSpriteBatch.prototype.stop = function () { diff --git a/src/core/renderers/webgl/utils/WebGLSpriteBatch.js b/src/core/renderers/webgl/utils/WebGLSpriteBatch.js index 34b1063..3f7f1b8 100644 --- a/src/core/renderers/webgl/utils/WebGLSpriteBatch.js +++ b/src/core/renderers/webgl/utils/WebGLSpriteBatch.js @@ -22,17 +22,22 @@ */ function WebGLSpriteBatch(renderer) { /** + * + * * @member {WebGLRenderer} */ this.renderer = renderer; /** + * + * * @member {number} */ this.vertSize = 5; /** - * The number of images in the SpriteBatch before it flushes + * The number of images in the SpriteBatch before it flushes. + * * @member {number} */ this.size = 2000;//Math.pow(2, 16) / this.vertSize; @@ -71,6 +76,8 @@ this.indices = new Uint16Array(numIndices); /** + * + * * @member {number} */ this.lastIndexCount = 0; @@ -85,46 +92,64 @@ } /** + * + * * @member {boolean} */ this.drawing = false; /** + * + * * @member {number} */ this.currentBatchSize = 0; /** + * + * * @member {BaseTexture} */ this.currentBaseTexture = null; /** + * + * * @member {boolean} */ this.dirty = true; /** + * + * * @member {Array} */ this.textures = []; /** + * + * * @member {Array} */ this.blendModes = []; /** + * + * * @member {Array} */ this.shaders = []; /** + * + * * @member {Array} */ this.sprites = []; /** + * TODO - Shouldn't this be a Shader, not an AbstractFilter? + * * @member {AbstractFilter} */ this.defaultShader = new AbstractFilter([