diff --git a/package.json b/package.json index de301b9..8d6f3b1 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "Chad Engler ", "Richard Davey " ], - "main": "./dist/pixi.js", + "main": "./src/index.js", "homepage": "http://goodboydigital.com/", "bugs": "https://github.com/GoodBoyDigital/pixi.js/issues", "license": "MIT", diff --git a/package.json b/package.json index de301b9..8d6f3b1 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "Chad Engler ", "Richard Davey " ], - "main": "./dist/pixi.js", + "main": "./src/index.js", "homepage": "http://goodboydigital.com/", "bugs": "https://github.com/GoodBoyDigital/pixi.js/issues", "license": "MIT", diff --git a/src/core/display/DisplayObjectContainer.js b/src/core/display/DisplayObjectContainer.js index 47301f8..ce573c5 100644 --- a/src/core/display/DisplayObjectContainer.js +++ b/src/core/display/DisplayObjectContainer.js @@ -1,7 +1,7 @@ var math = require('../math'), DisplayObject = require('./DisplayObject'), RenderTexture = require('../textures/RenderTexture'), - Sprite = require('./Sprite'), + // Sprite = require('./Sprite'), _tempMatrix = new math.Matrix(); /** diff --git a/package.json b/package.json index de301b9..8d6f3b1 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "Chad Engler ", "Richard Davey " ], - "main": "./dist/pixi.js", + "main": "./src/index.js", "homepage": "http://goodboydigital.com/", "bugs": "https://github.com/GoodBoyDigital/pixi.js/issues", "license": "MIT", diff --git a/src/core/display/DisplayObjectContainer.js b/src/core/display/DisplayObjectContainer.js index 47301f8..ce573c5 100644 --- a/src/core/display/DisplayObjectContainer.js +++ b/src/core/display/DisplayObjectContainer.js @@ -1,7 +1,7 @@ var math = require('../math'), DisplayObject = require('./DisplayObject'), RenderTexture = require('../textures/RenderTexture'), - Sprite = require('./Sprite'), + // Sprite = require('./Sprite'), _tempMatrix = new math.Matrix(); /** diff --git a/src/core/display/SpriteBatch.js b/src/core/display/SpriteBatch.js index 67dbfd4..3187777 100644 --- a/src/core/display/SpriteBatch.js +++ b/src/core/display/SpriteBatch.js @@ -31,6 +31,7 @@ SpriteBatch.prototype = Object.create(DisplayObjectContainer.prototype); SpriteBatch.prototype.constructor = SpriteBatch; +module.exports = SpriteBatch; /** * Updates the object transform for rendering diff --git a/package.json b/package.json index de301b9..8d6f3b1 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "Chad Engler ", "Richard Davey " ], - "main": "./dist/pixi.js", + "main": "./src/index.js", "homepage": "http://goodboydigital.com/", "bugs": "https://github.com/GoodBoyDigital/pixi.js/issues", "license": "MIT", diff --git a/src/core/display/DisplayObjectContainer.js b/src/core/display/DisplayObjectContainer.js index 47301f8..ce573c5 100644 --- a/src/core/display/DisplayObjectContainer.js +++ b/src/core/display/DisplayObjectContainer.js @@ -1,7 +1,7 @@ var math = require('../math'), DisplayObject = require('./DisplayObject'), RenderTexture = require('../textures/RenderTexture'), - Sprite = require('./Sprite'), + // Sprite = require('./Sprite'), _tempMatrix = new math.Matrix(); /** diff --git a/src/core/display/SpriteBatch.js b/src/core/display/SpriteBatch.js index 67dbfd4..3187777 100644 --- a/src/core/display/SpriteBatch.js +++ b/src/core/display/SpriteBatch.js @@ -31,6 +31,7 @@ SpriteBatch.prototype = Object.create(DisplayObjectContainer.prototype); SpriteBatch.prototype.constructor = SpriteBatch; +module.exports = SpriteBatch; /** * Updates the object transform for rendering diff --git a/src/core/renderers/canvas/CanvasRenderer.js b/src/core/renderers/canvas/CanvasRenderer.js index fc3d6d0..d1c404b 100644 --- a/src/core/renderers/canvas/CanvasRenderer.js +++ b/src/core/renderers/canvas/CanvasRenderer.js @@ -138,14 +138,6 @@ this.smoothProperty = null; - this.currentBlendMode = CONST.blendModes.NORMAL; - - this.blendModes = null; - - this._mapBlendModes(); - - this.resize(width, height); - if (this.context.imageSmoothingEnabled) { this.smoothProperty = 'imageSmoothingEnabled'; } @@ -161,6 +153,14 @@ else if (this.context.msImageSmoothingEnabled) { this.smoothProperty = 'msImageSmoothingEnabled'; } + + this.currentBlendMode = CONST.blendModes.NORMAL; + + this.blendModes = null; + + this._mapBlendModes(); + + this.resize(width, height); } // constructor diff --git a/package.json b/package.json index de301b9..8d6f3b1 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "Chad Engler ", "Richard Davey " ], - "main": "./dist/pixi.js", + "main": "./src/index.js", "homepage": "http://goodboydigital.com/", "bugs": "https://github.com/GoodBoyDigital/pixi.js/issues", "license": "MIT", diff --git a/src/core/display/DisplayObjectContainer.js b/src/core/display/DisplayObjectContainer.js index 47301f8..ce573c5 100644 --- a/src/core/display/DisplayObjectContainer.js +++ b/src/core/display/DisplayObjectContainer.js @@ -1,7 +1,7 @@ var math = require('../math'), DisplayObject = require('./DisplayObject'), RenderTexture = require('../textures/RenderTexture'), - Sprite = require('./Sprite'), + // Sprite = require('./Sprite'), _tempMatrix = new math.Matrix(); /** diff --git a/src/core/display/SpriteBatch.js b/src/core/display/SpriteBatch.js index 67dbfd4..3187777 100644 --- a/src/core/display/SpriteBatch.js +++ b/src/core/display/SpriteBatch.js @@ -31,6 +31,7 @@ SpriteBatch.prototype = Object.create(DisplayObjectContainer.prototype); SpriteBatch.prototype.constructor = SpriteBatch; +module.exports = SpriteBatch; /** * Updates the object transform for rendering diff --git a/src/core/renderers/canvas/CanvasRenderer.js b/src/core/renderers/canvas/CanvasRenderer.js index fc3d6d0..d1c404b 100644 --- a/src/core/renderers/canvas/CanvasRenderer.js +++ b/src/core/renderers/canvas/CanvasRenderer.js @@ -138,14 +138,6 @@ this.smoothProperty = null; - this.currentBlendMode = CONST.blendModes.NORMAL; - - this.blendModes = null; - - this._mapBlendModes(); - - this.resize(width, height); - if (this.context.imageSmoothingEnabled) { this.smoothProperty = 'imageSmoothingEnabled'; } @@ -161,6 +153,14 @@ else if (this.context.msImageSmoothingEnabled) { this.smoothProperty = 'msImageSmoothingEnabled'; } + + this.currentBlendMode = CONST.blendModes.NORMAL; + + this.blendModes = null; + + this._mapBlendModes(); + + this.resize(width, height); } // constructor diff --git a/src/core/renderers/webgl/WebGLRenderer.js b/src/core/renderers/webgl/WebGLRenderer.js index d32d9bf..a7981c7 100644 --- a/src/core/renderers/webgl/WebGLRenderer.js +++ b/src/core/renderers/webgl/WebGLRenderer.js @@ -1,4 +1,5 @@ var WebGLSpriteBatch = require('./utils/WebGLSpriteBatch'), + WebGLFastSpriteBatch = require('./utils/WebGLFastSpriteBatch'), WebGLShaderManager = require('./managers/WebGLShaderManager'), WebGLMaskManager = require('./managers/WebGLMaskManager'), WebGLFilterManager = require('./managers/WebGLFilterManager'), @@ -523,7 +524,7 @@ * * @private */ -WebGLRenderer.prototype.mapBlendModes = function () { +WebGLRenderer.prototype._mapBlendModes = function () { var gl = this.gl; if (!this.blendModes) { diff --git a/package.json b/package.json index de301b9..8d6f3b1 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "Chad Engler ", "Richard Davey " ], - "main": "./dist/pixi.js", + "main": "./src/index.js", "homepage": "http://goodboydigital.com/", "bugs": "https://github.com/GoodBoyDigital/pixi.js/issues", "license": "MIT", diff --git a/src/core/display/DisplayObjectContainer.js b/src/core/display/DisplayObjectContainer.js index 47301f8..ce573c5 100644 --- a/src/core/display/DisplayObjectContainer.js +++ b/src/core/display/DisplayObjectContainer.js @@ -1,7 +1,7 @@ var math = require('../math'), DisplayObject = require('./DisplayObject'), RenderTexture = require('../textures/RenderTexture'), - Sprite = require('./Sprite'), + // Sprite = require('./Sprite'), _tempMatrix = new math.Matrix(); /** diff --git a/src/core/display/SpriteBatch.js b/src/core/display/SpriteBatch.js index 67dbfd4..3187777 100644 --- a/src/core/display/SpriteBatch.js +++ b/src/core/display/SpriteBatch.js @@ -31,6 +31,7 @@ SpriteBatch.prototype = Object.create(DisplayObjectContainer.prototype); SpriteBatch.prototype.constructor = SpriteBatch; +module.exports = SpriteBatch; /** * Updates the object transform for rendering diff --git a/src/core/renderers/canvas/CanvasRenderer.js b/src/core/renderers/canvas/CanvasRenderer.js index fc3d6d0..d1c404b 100644 --- a/src/core/renderers/canvas/CanvasRenderer.js +++ b/src/core/renderers/canvas/CanvasRenderer.js @@ -138,14 +138,6 @@ this.smoothProperty = null; - this.currentBlendMode = CONST.blendModes.NORMAL; - - this.blendModes = null; - - this._mapBlendModes(); - - this.resize(width, height); - if (this.context.imageSmoothingEnabled) { this.smoothProperty = 'imageSmoothingEnabled'; } @@ -161,6 +153,14 @@ else if (this.context.msImageSmoothingEnabled) { this.smoothProperty = 'msImageSmoothingEnabled'; } + + this.currentBlendMode = CONST.blendModes.NORMAL; + + this.blendModes = null; + + this._mapBlendModes(); + + this.resize(width, height); } // constructor diff --git a/src/core/renderers/webgl/WebGLRenderer.js b/src/core/renderers/webgl/WebGLRenderer.js index d32d9bf..a7981c7 100644 --- a/src/core/renderers/webgl/WebGLRenderer.js +++ b/src/core/renderers/webgl/WebGLRenderer.js @@ -1,4 +1,5 @@ var WebGLSpriteBatch = require('./utils/WebGLSpriteBatch'), + WebGLFastSpriteBatch = require('./utils/WebGLFastSpriteBatch'), WebGLShaderManager = require('./managers/WebGLShaderManager'), WebGLMaskManager = require('./managers/WebGLMaskManager'), WebGLFilterManager = require('./managers/WebGLFilterManager'), @@ -523,7 +524,7 @@ * * @private */ -WebGLRenderer.prototype.mapBlendModes = function () { +WebGLRenderer.prototype._mapBlendModes = function () { var gl = this.gl; if (!this.blendModes) { diff --git a/src/core/renderers/webgl/managers/WebGLShaderManager.js b/src/core/renderers/webgl/managers/WebGLShaderManager.js index 49e95da..fef071c 100644 --- a/src/core/renderers/webgl/managers/WebGLShaderManager.js +++ b/src/core/renderers/webgl/managers/WebGLShaderManager.js @@ -66,7 +66,9 @@ // listen for context and update necessary shaders var self = this; - this.renderer.on('context', function (gl) { + this.renderer.on('context', function (event) { + var gl = event.data; + // this shader is used for rendering primitives self.primitiveShader = new PrimitiveShader(gl); diff --git a/package.json b/package.json index de301b9..8d6f3b1 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "Chad Engler ", "Richard Davey " ], - "main": "./dist/pixi.js", + "main": "./src/index.js", "homepage": "http://goodboydigital.com/", "bugs": "https://github.com/GoodBoyDigital/pixi.js/issues", "license": "MIT", diff --git a/src/core/display/DisplayObjectContainer.js b/src/core/display/DisplayObjectContainer.js index 47301f8..ce573c5 100644 --- a/src/core/display/DisplayObjectContainer.js +++ b/src/core/display/DisplayObjectContainer.js @@ -1,7 +1,7 @@ var math = require('../math'), DisplayObject = require('./DisplayObject'), RenderTexture = require('../textures/RenderTexture'), - Sprite = require('./Sprite'), + // Sprite = require('./Sprite'), _tempMatrix = new math.Matrix(); /** diff --git a/src/core/display/SpriteBatch.js b/src/core/display/SpriteBatch.js index 67dbfd4..3187777 100644 --- a/src/core/display/SpriteBatch.js +++ b/src/core/display/SpriteBatch.js @@ -31,6 +31,7 @@ SpriteBatch.prototype = Object.create(DisplayObjectContainer.prototype); SpriteBatch.prototype.constructor = SpriteBatch; +module.exports = SpriteBatch; /** * Updates the object transform for rendering diff --git a/src/core/renderers/canvas/CanvasRenderer.js b/src/core/renderers/canvas/CanvasRenderer.js index fc3d6d0..d1c404b 100644 --- a/src/core/renderers/canvas/CanvasRenderer.js +++ b/src/core/renderers/canvas/CanvasRenderer.js @@ -138,14 +138,6 @@ this.smoothProperty = null; - this.currentBlendMode = CONST.blendModes.NORMAL; - - this.blendModes = null; - - this._mapBlendModes(); - - this.resize(width, height); - if (this.context.imageSmoothingEnabled) { this.smoothProperty = 'imageSmoothingEnabled'; } @@ -161,6 +153,14 @@ else if (this.context.msImageSmoothingEnabled) { this.smoothProperty = 'msImageSmoothingEnabled'; } + + this.currentBlendMode = CONST.blendModes.NORMAL; + + this.blendModes = null; + + this._mapBlendModes(); + + this.resize(width, height); } // constructor diff --git a/src/core/renderers/webgl/WebGLRenderer.js b/src/core/renderers/webgl/WebGLRenderer.js index d32d9bf..a7981c7 100644 --- a/src/core/renderers/webgl/WebGLRenderer.js +++ b/src/core/renderers/webgl/WebGLRenderer.js @@ -1,4 +1,5 @@ var WebGLSpriteBatch = require('./utils/WebGLSpriteBatch'), + WebGLFastSpriteBatch = require('./utils/WebGLFastSpriteBatch'), WebGLShaderManager = require('./managers/WebGLShaderManager'), WebGLMaskManager = require('./managers/WebGLMaskManager'), WebGLFilterManager = require('./managers/WebGLFilterManager'), @@ -523,7 +524,7 @@ * * @private */ -WebGLRenderer.prototype.mapBlendModes = function () { +WebGLRenderer.prototype._mapBlendModes = function () { var gl = this.gl; if (!this.blendModes) { diff --git a/src/core/renderers/webgl/managers/WebGLShaderManager.js b/src/core/renderers/webgl/managers/WebGLShaderManager.js index 49e95da..fef071c 100644 --- a/src/core/renderers/webgl/managers/WebGLShaderManager.js +++ b/src/core/renderers/webgl/managers/WebGLShaderManager.js @@ -66,7 +66,9 @@ // listen for context and update necessary shaders var self = this; - this.renderer.on('context', function (gl) { + this.renderer.on('context', function (event) { + var gl = event.data; + // this shader is used for rendering primitives self.primitiveShader = new PrimitiveShader(gl); diff --git a/src/core/renderers/webgl/shaders/Shader.js b/src/core/renderers/webgl/shaders/Shader.js index 17ac61e..7324567 100644 --- a/src/core/renderers/webgl/shaders/Shader.js +++ b/src/core/renderers/webgl/shaders/Shader.js @@ -101,8 +101,8 @@ this.gl.useProgram(this.program); - this.cacheUniformLocations(this.builtInUniforms.concat(Object.keys(this.uniforms))); - this.cacheAttributeLocations(this.builtInAttributes.concat(Object.keys(this.attributes))); + this.cacheUniformLocations(Object.keys(this.uniforms)); + this.cacheAttributeLocations(Object.keys(this.attributes)); }; Shader.prototype.cacheUniformLocations = function (keys) { @@ -123,8 +123,8 @@ // maybe its something to do with the current state of the gl context. // I'm convinced this is a bug in the chrome browser as there is NO reason why this should be returning -1 especially as it only manifests on my chrome pixel // If theres any webGL people that know why could happen please help :) - if (this._shader.attributes.aColor === -1) { - this._shader.attributes.aColor = 2; + if (this.attributes.aColor === -1) { + this.attributes.aColor = 2; } // End worst hack eva // diff --git a/package.json b/package.json index de301b9..8d6f3b1 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "Chad Engler ", "Richard Davey " ], - "main": "./dist/pixi.js", + "main": "./src/index.js", "homepage": "http://goodboydigital.com/", "bugs": "https://github.com/GoodBoyDigital/pixi.js/issues", "license": "MIT", diff --git a/src/core/display/DisplayObjectContainer.js b/src/core/display/DisplayObjectContainer.js index 47301f8..ce573c5 100644 --- a/src/core/display/DisplayObjectContainer.js +++ b/src/core/display/DisplayObjectContainer.js @@ -1,7 +1,7 @@ var math = require('../math'), DisplayObject = require('./DisplayObject'), RenderTexture = require('../textures/RenderTexture'), - Sprite = require('./Sprite'), + // Sprite = require('./Sprite'), _tempMatrix = new math.Matrix(); /** diff --git a/src/core/display/SpriteBatch.js b/src/core/display/SpriteBatch.js index 67dbfd4..3187777 100644 --- a/src/core/display/SpriteBatch.js +++ b/src/core/display/SpriteBatch.js @@ -31,6 +31,7 @@ SpriteBatch.prototype = Object.create(DisplayObjectContainer.prototype); SpriteBatch.prototype.constructor = SpriteBatch; +module.exports = SpriteBatch; /** * Updates the object transform for rendering diff --git a/src/core/renderers/canvas/CanvasRenderer.js b/src/core/renderers/canvas/CanvasRenderer.js index fc3d6d0..d1c404b 100644 --- a/src/core/renderers/canvas/CanvasRenderer.js +++ b/src/core/renderers/canvas/CanvasRenderer.js @@ -138,14 +138,6 @@ this.smoothProperty = null; - this.currentBlendMode = CONST.blendModes.NORMAL; - - this.blendModes = null; - - this._mapBlendModes(); - - this.resize(width, height); - if (this.context.imageSmoothingEnabled) { this.smoothProperty = 'imageSmoothingEnabled'; } @@ -161,6 +153,14 @@ else if (this.context.msImageSmoothingEnabled) { this.smoothProperty = 'msImageSmoothingEnabled'; } + + this.currentBlendMode = CONST.blendModes.NORMAL; + + this.blendModes = null; + + this._mapBlendModes(); + + this.resize(width, height); } // constructor diff --git a/src/core/renderers/webgl/WebGLRenderer.js b/src/core/renderers/webgl/WebGLRenderer.js index d32d9bf..a7981c7 100644 --- a/src/core/renderers/webgl/WebGLRenderer.js +++ b/src/core/renderers/webgl/WebGLRenderer.js @@ -1,4 +1,5 @@ var WebGLSpriteBatch = require('./utils/WebGLSpriteBatch'), + WebGLFastSpriteBatch = require('./utils/WebGLFastSpriteBatch'), WebGLShaderManager = require('./managers/WebGLShaderManager'), WebGLMaskManager = require('./managers/WebGLMaskManager'), WebGLFilterManager = require('./managers/WebGLFilterManager'), @@ -523,7 +524,7 @@ * * @private */ -WebGLRenderer.prototype.mapBlendModes = function () { +WebGLRenderer.prototype._mapBlendModes = function () { var gl = this.gl; if (!this.blendModes) { diff --git a/src/core/renderers/webgl/managers/WebGLShaderManager.js b/src/core/renderers/webgl/managers/WebGLShaderManager.js index 49e95da..fef071c 100644 --- a/src/core/renderers/webgl/managers/WebGLShaderManager.js +++ b/src/core/renderers/webgl/managers/WebGLShaderManager.js @@ -66,7 +66,9 @@ // listen for context and update necessary shaders var self = this; - this.renderer.on('context', function (gl) { + this.renderer.on('context', function (event) { + var gl = event.data; + // this shader is used for rendering primitives self.primitiveShader = new PrimitiveShader(gl); diff --git a/src/core/renderers/webgl/shaders/Shader.js b/src/core/renderers/webgl/shaders/Shader.js index 17ac61e..7324567 100644 --- a/src/core/renderers/webgl/shaders/Shader.js +++ b/src/core/renderers/webgl/shaders/Shader.js @@ -101,8 +101,8 @@ this.gl.useProgram(this.program); - this.cacheUniformLocations(this.builtInUniforms.concat(Object.keys(this.uniforms))); - this.cacheAttributeLocations(this.builtInAttributes.concat(Object.keys(this.attributes))); + this.cacheUniformLocations(Object.keys(this.uniforms)); + this.cacheAttributeLocations(Object.keys(this.attributes)); }; Shader.prototype.cacheUniformLocations = function (keys) { @@ -123,8 +123,8 @@ // maybe its something to do with the current state of the gl context. // I'm convinced this is a bug in the chrome browser as there is NO reason why this should be returning -1 especially as it only manifests on my chrome pixel // If theres any webGL people that know why could happen please help :) - if (this._shader.attributes.aColor === -1) { - this._shader.attributes.aColor = 2; + if (this.attributes.aColor === -1) { + this.attributes.aColor = 2; } // End worst hack eva // diff --git a/src/core/renderers/webgl/utils/WebGLFastSpriteBatch.js b/src/core/renderers/webgl/utils/WebGLFastSpriteBatch.js index 0b7e842..7e988a7 100644 --- a/src/core/renderers/webgl/utils/WebGLFastSpriteBatch.js +++ b/src/core/renderers/webgl/utils/WebGLFastSpriteBatch.js @@ -135,7 +135,11 @@ */ this.matrix = null; - this.setupContext(); + // listen for context and update necessary buffers + var self = this; + this.renderer.on('context', function () { + self.setupContext(); + }); } WebGLFastSpriteBatch.prototype.constructor = WebGLFastSpriteBatch; diff --git a/package.json b/package.json index de301b9..8d6f3b1 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "Chad Engler ", "Richard Davey " ], - "main": "./dist/pixi.js", + "main": "./src/index.js", "homepage": "http://goodboydigital.com/", "bugs": "https://github.com/GoodBoyDigital/pixi.js/issues", "license": "MIT", diff --git a/src/core/display/DisplayObjectContainer.js b/src/core/display/DisplayObjectContainer.js index 47301f8..ce573c5 100644 --- a/src/core/display/DisplayObjectContainer.js +++ b/src/core/display/DisplayObjectContainer.js @@ -1,7 +1,7 @@ var math = require('../math'), DisplayObject = require('./DisplayObject'), RenderTexture = require('../textures/RenderTexture'), - Sprite = require('./Sprite'), + // Sprite = require('./Sprite'), _tempMatrix = new math.Matrix(); /** diff --git a/src/core/display/SpriteBatch.js b/src/core/display/SpriteBatch.js index 67dbfd4..3187777 100644 --- a/src/core/display/SpriteBatch.js +++ b/src/core/display/SpriteBatch.js @@ -31,6 +31,7 @@ SpriteBatch.prototype = Object.create(DisplayObjectContainer.prototype); SpriteBatch.prototype.constructor = SpriteBatch; +module.exports = SpriteBatch; /** * Updates the object transform for rendering diff --git a/src/core/renderers/canvas/CanvasRenderer.js b/src/core/renderers/canvas/CanvasRenderer.js index fc3d6d0..d1c404b 100644 --- a/src/core/renderers/canvas/CanvasRenderer.js +++ b/src/core/renderers/canvas/CanvasRenderer.js @@ -138,14 +138,6 @@ this.smoothProperty = null; - this.currentBlendMode = CONST.blendModes.NORMAL; - - this.blendModes = null; - - this._mapBlendModes(); - - this.resize(width, height); - if (this.context.imageSmoothingEnabled) { this.smoothProperty = 'imageSmoothingEnabled'; } @@ -161,6 +153,14 @@ else if (this.context.msImageSmoothingEnabled) { this.smoothProperty = 'msImageSmoothingEnabled'; } + + this.currentBlendMode = CONST.blendModes.NORMAL; + + this.blendModes = null; + + this._mapBlendModes(); + + this.resize(width, height); } // constructor diff --git a/src/core/renderers/webgl/WebGLRenderer.js b/src/core/renderers/webgl/WebGLRenderer.js index d32d9bf..a7981c7 100644 --- a/src/core/renderers/webgl/WebGLRenderer.js +++ b/src/core/renderers/webgl/WebGLRenderer.js @@ -1,4 +1,5 @@ var WebGLSpriteBatch = require('./utils/WebGLSpriteBatch'), + WebGLFastSpriteBatch = require('./utils/WebGLFastSpriteBatch'), WebGLShaderManager = require('./managers/WebGLShaderManager'), WebGLMaskManager = require('./managers/WebGLMaskManager'), WebGLFilterManager = require('./managers/WebGLFilterManager'), @@ -523,7 +524,7 @@ * * @private */ -WebGLRenderer.prototype.mapBlendModes = function () { +WebGLRenderer.prototype._mapBlendModes = function () { var gl = this.gl; if (!this.blendModes) { diff --git a/src/core/renderers/webgl/managers/WebGLShaderManager.js b/src/core/renderers/webgl/managers/WebGLShaderManager.js index 49e95da..fef071c 100644 --- a/src/core/renderers/webgl/managers/WebGLShaderManager.js +++ b/src/core/renderers/webgl/managers/WebGLShaderManager.js @@ -66,7 +66,9 @@ // listen for context and update necessary shaders var self = this; - this.renderer.on('context', function (gl) { + this.renderer.on('context', function (event) { + var gl = event.data; + // this shader is used for rendering primitives self.primitiveShader = new PrimitiveShader(gl); diff --git a/src/core/renderers/webgl/shaders/Shader.js b/src/core/renderers/webgl/shaders/Shader.js index 17ac61e..7324567 100644 --- a/src/core/renderers/webgl/shaders/Shader.js +++ b/src/core/renderers/webgl/shaders/Shader.js @@ -101,8 +101,8 @@ this.gl.useProgram(this.program); - this.cacheUniformLocations(this.builtInUniforms.concat(Object.keys(this.uniforms))); - this.cacheAttributeLocations(this.builtInAttributes.concat(Object.keys(this.attributes))); + this.cacheUniformLocations(Object.keys(this.uniforms)); + this.cacheAttributeLocations(Object.keys(this.attributes)); }; Shader.prototype.cacheUniformLocations = function (keys) { @@ -123,8 +123,8 @@ // maybe its something to do with the current state of the gl context. // I'm convinced this is a bug in the chrome browser as there is NO reason why this should be returning -1 especially as it only manifests on my chrome pixel // If theres any webGL people that know why could happen please help :) - if (this._shader.attributes.aColor === -1) { - this._shader.attributes.aColor = 2; + if (this.attributes.aColor === -1) { + this.attributes.aColor = 2; } // End worst hack eva // diff --git a/src/core/renderers/webgl/utils/WebGLFastSpriteBatch.js b/src/core/renderers/webgl/utils/WebGLFastSpriteBatch.js index 0b7e842..7e988a7 100644 --- a/src/core/renderers/webgl/utils/WebGLFastSpriteBatch.js +++ b/src/core/renderers/webgl/utils/WebGLFastSpriteBatch.js @@ -135,7 +135,11 @@ */ this.matrix = null; - this.setupContext(); + // listen for context and update necessary buffers + var self = this; + this.renderer.on('context', function () { + self.setupContext(); + }); } WebGLFastSpriteBatch.prototype.constructor = WebGLFastSpriteBatch; diff --git a/src/core/renderers/webgl/utils/WebGLSpriteBatch.js b/src/core/renderers/webgl/utils/WebGLSpriteBatch.js index 3f7f1b8..77d04cc 100644 --- a/src/core/renderers/webgl/utils/WebGLSpriteBatch.js +++ b/src/core/renderers/webgl/utils/WebGLSpriteBatch.js @@ -161,13 +161,22 @@ ' gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;', '}' ]); + + // listen for context and update necessary buffers + var self = this; + this.renderer.on('context', function () { + self.setupContext(); + }); } +WebGLSpriteBatch.prototype.constructor = WebGLSpriteBatch; +module.exports = WebGLSpriteBatch; + /** * @param gl {WebGLContext} the current WebGL drawing context */ -WebGLSpriteBatch.prototype.setContext = function (gl) { - this.gl = gl; +WebGLSpriteBatch.prototype.setupContext = function () { + var gl = this.renderer.gl; // create a couple of buffers this.vertexBuffer = gl.createBuffer(); @@ -462,7 +471,7 @@ return; } - var gl = this.gl; + var gl = this.renderer.gl; var shader; if (this.dirty) { @@ -583,7 +592,7 @@ return; } - var gl = this.gl; + var gl = this.renderer.gl; // bind the current texture gl.bindTexture(gl.TEXTURE_2D, texture._glTextures[gl.id]); @@ -615,13 +624,16 @@ * */ WebGLSpriteBatch.prototype.destroy = function () { + this.renderer.gl.deleteBuffer(this.vertexBuffer); + this.renderer.gl.deleteBuffer(this.indexBuffer); + this.vertices = null; this.indices = null; - this.gl.deleteBuffer( this.vertexBuffer ); - this.gl.deleteBuffer( this.indexBuffer ); + this.vertexBuffer = null; + this.indexBuffer = null; this.currentBaseTexture = null; - this.gl = null; + this.renderer = null; }; diff --git a/package.json b/package.json index de301b9..8d6f3b1 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "Chad Engler ", "Richard Davey " ], - "main": "./dist/pixi.js", + "main": "./src/index.js", "homepage": "http://goodboydigital.com/", "bugs": "https://github.com/GoodBoyDigital/pixi.js/issues", "license": "MIT", diff --git a/src/core/display/DisplayObjectContainer.js b/src/core/display/DisplayObjectContainer.js index 47301f8..ce573c5 100644 --- a/src/core/display/DisplayObjectContainer.js +++ b/src/core/display/DisplayObjectContainer.js @@ -1,7 +1,7 @@ var math = require('../math'), DisplayObject = require('./DisplayObject'), RenderTexture = require('../textures/RenderTexture'), - Sprite = require('./Sprite'), + // Sprite = require('./Sprite'), _tempMatrix = new math.Matrix(); /** diff --git a/src/core/display/SpriteBatch.js b/src/core/display/SpriteBatch.js index 67dbfd4..3187777 100644 --- a/src/core/display/SpriteBatch.js +++ b/src/core/display/SpriteBatch.js @@ -31,6 +31,7 @@ SpriteBatch.prototype = Object.create(DisplayObjectContainer.prototype); SpriteBatch.prototype.constructor = SpriteBatch; +module.exports = SpriteBatch; /** * Updates the object transform for rendering diff --git a/src/core/renderers/canvas/CanvasRenderer.js b/src/core/renderers/canvas/CanvasRenderer.js index fc3d6d0..d1c404b 100644 --- a/src/core/renderers/canvas/CanvasRenderer.js +++ b/src/core/renderers/canvas/CanvasRenderer.js @@ -138,14 +138,6 @@ this.smoothProperty = null; - this.currentBlendMode = CONST.blendModes.NORMAL; - - this.blendModes = null; - - this._mapBlendModes(); - - this.resize(width, height); - if (this.context.imageSmoothingEnabled) { this.smoothProperty = 'imageSmoothingEnabled'; } @@ -161,6 +153,14 @@ else if (this.context.msImageSmoothingEnabled) { this.smoothProperty = 'msImageSmoothingEnabled'; } + + this.currentBlendMode = CONST.blendModes.NORMAL; + + this.blendModes = null; + + this._mapBlendModes(); + + this.resize(width, height); } // constructor diff --git a/src/core/renderers/webgl/WebGLRenderer.js b/src/core/renderers/webgl/WebGLRenderer.js index d32d9bf..a7981c7 100644 --- a/src/core/renderers/webgl/WebGLRenderer.js +++ b/src/core/renderers/webgl/WebGLRenderer.js @@ -1,4 +1,5 @@ var WebGLSpriteBatch = require('./utils/WebGLSpriteBatch'), + WebGLFastSpriteBatch = require('./utils/WebGLFastSpriteBatch'), WebGLShaderManager = require('./managers/WebGLShaderManager'), WebGLMaskManager = require('./managers/WebGLMaskManager'), WebGLFilterManager = require('./managers/WebGLFilterManager'), @@ -523,7 +524,7 @@ * * @private */ -WebGLRenderer.prototype.mapBlendModes = function () { +WebGLRenderer.prototype._mapBlendModes = function () { var gl = this.gl; if (!this.blendModes) { diff --git a/src/core/renderers/webgl/managers/WebGLShaderManager.js b/src/core/renderers/webgl/managers/WebGLShaderManager.js index 49e95da..fef071c 100644 --- a/src/core/renderers/webgl/managers/WebGLShaderManager.js +++ b/src/core/renderers/webgl/managers/WebGLShaderManager.js @@ -66,7 +66,9 @@ // listen for context and update necessary shaders var self = this; - this.renderer.on('context', function (gl) { + this.renderer.on('context', function (event) { + var gl = event.data; + // this shader is used for rendering primitives self.primitiveShader = new PrimitiveShader(gl); diff --git a/src/core/renderers/webgl/shaders/Shader.js b/src/core/renderers/webgl/shaders/Shader.js index 17ac61e..7324567 100644 --- a/src/core/renderers/webgl/shaders/Shader.js +++ b/src/core/renderers/webgl/shaders/Shader.js @@ -101,8 +101,8 @@ this.gl.useProgram(this.program); - this.cacheUniformLocations(this.builtInUniforms.concat(Object.keys(this.uniforms))); - this.cacheAttributeLocations(this.builtInAttributes.concat(Object.keys(this.attributes))); + this.cacheUniformLocations(Object.keys(this.uniforms)); + this.cacheAttributeLocations(Object.keys(this.attributes)); }; Shader.prototype.cacheUniformLocations = function (keys) { @@ -123,8 +123,8 @@ // maybe its something to do with the current state of the gl context. // I'm convinced this is a bug in the chrome browser as there is NO reason why this should be returning -1 especially as it only manifests on my chrome pixel // If theres any webGL people that know why could happen please help :) - if (this._shader.attributes.aColor === -1) { - this._shader.attributes.aColor = 2; + if (this.attributes.aColor === -1) { + this.attributes.aColor = 2; } // End worst hack eva // diff --git a/src/core/renderers/webgl/utils/WebGLFastSpriteBatch.js b/src/core/renderers/webgl/utils/WebGLFastSpriteBatch.js index 0b7e842..7e988a7 100644 --- a/src/core/renderers/webgl/utils/WebGLFastSpriteBatch.js +++ b/src/core/renderers/webgl/utils/WebGLFastSpriteBatch.js @@ -135,7 +135,11 @@ */ this.matrix = null; - this.setupContext(); + // listen for context and update necessary buffers + var self = this; + this.renderer.on('context', function () { + self.setupContext(); + }); } WebGLFastSpriteBatch.prototype.constructor = WebGLFastSpriteBatch; diff --git a/src/core/renderers/webgl/utils/WebGLSpriteBatch.js b/src/core/renderers/webgl/utils/WebGLSpriteBatch.js index 3f7f1b8..77d04cc 100644 --- a/src/core/renderers/webgl/utils/WebGLSpriteBatch.js +++ b/src/core/renderers/webgl/utils/WebGLSpriteBatch.js @@ -161,13 +161,22 @@ ' gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;', '}' ]); + + // listen for context and update necessary buffers + var self = this; + this.renderer.on('context', function () { + self.setupContext(); + }); } +WebGLSpriteBatch.prototype.constructor = WebGLSpriteBatch; +module.exports = WebGLSpriteBatch; + /** * @param gl {WebGLContext} the current WebGL drawing context */ -WebGLSpriteBatch.prototype.setContext = function (gl) { - this.gl = gl; +WebGLSpriteBatch.prototype.setupContext = function () { + var gl = this.renderer.gl; // create a couple of buffers this.vertexBuffer = gl.createBuffer(); @@ -462,7 +471,7 @@ return; } - var gl = this.gl; + var gl = this.renderer.gl; var shader; if (this.dirty) { @@ -583,7 +592,7 @@ return; } - var gl = this.gl; + var gl = this.renderer.gl; // bind the current texture gl.bindTexture(gl.TEXTURE_2D, texture._glTextures[gl.id]); @@ -615,13 +624,16 @@ * */ WebGLSpriteBatch.prototype.destroy = function () { + this.renderer.gl.deleteBuffer(this.vertexBuffer); + this.renderer.gl.deleteBuffer(this.indexBuffer); + this.vertices = null; this.indices = null; - this.gl.deleteBuffer( this.vertexBuffer ); - this.gl.deleteBuffer( this.indexBuffer ); + this.vertexBuffer = null; + this.indexBuffer = null; this.currentBaseTexture = null; - this.gl = null; + this.renderer = null; }; diff --git a/src/core/textures/Texture.js b/src/core/textures/Texture.js index 7c47bfe..3c65909 100644 --- a/src/core/textures/Texture.js +++ b/src/core/textures/Texture.js @@ -116,7 +116,7 @@ eventTarget.mixin(Texture.prototype); -Object.defineProperties(BaseTexture.prototype, { +Object.defineProperties(Texture.prototype, { needsUpdate: { get: function () { return this.baseTexture.needsUpdate; diff --git a/package.json b/package.json index de301b9..8d6f3b1 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "Chad Engler ", "Richard Davey " ], - "main": "./dist/pixi.js", + "main": "./src/index.js", "homepage": "http://goodboydigital.com/", "bugs": "https://github.com/GoodBoyDigital/pixi.js/issues", "license": "MIT", diff --git a/src/core/display/DisplayObjectContainer.js b/src/core/display/DisplayObjectContainer.js index 47301f8..ce573c5 100644 --- a/src/core/display/DisplayObjectContainer.js +++ b/src/core/display/DisplayObjectContainer.js @@ -1,7 +1,7 @@ var math = require('../math'), DisplayObject = require('./DisplayObject'), RenderTexture = require('../textures/RenderTexture'), - Sprite = require('./Sprite'), + // Sprite = require('./Sprite'), _tempMatrix = new math.Matrix(); /** diff --git a/src/core/display/SpriteBatch.js b/src/core/display/SpriteBatch.js index 67dbfd4..3187777 100644 --- a/src/core/display/SpriteBatch.js +++ b/src/core/display/SpriteBatch.js @@ -31,6 +31,7 @@ SpriteBatch.prototype = Object.create(DisplayObjectContainer.prototype); SpriteBatch.prototype.constructor = SpriteBatch; +module.exports = SpriteBatch; /** * Updates the object transform for rendering diff --git a/src/core/renderers/canvas/CanvasRenderer.js b/src/core/renderers/canvas/CanvasRenderer.js index fc3d6d0..d1c404b 100644 --- a/src/core/renderers/canvas/CanvasRenderer.js +++ b/src/core/renderers/canvas/CanvasRenderer.js @@ -138,14 +138,6 @@ this.smoothProperty = null; - this.currentBlendMode = CONST.blendModes.NORMAL; - - this.blendModes = null; - - this._mapBlendModes(); - - this.resize(width, height); - if (this.context.imageSmoothingEnabled) { this.smoothProperty = 'imageSmoothingEnabled'; } @@ -161,6 +153,14 @@ else if (this.context.msImageSmoothingEnabled) { this.smoothProperty = 'msImageSmoothingEnabled'; } + + this.currentBlendMode = CONST.blendModes.NORMAL; + + this.blendModes = null; + + this._mapBlendModes(); + + this.resize(width, height); } // constructor diff --git a/src/core/renderers/webgl/WebGLRenderer.js b/src/core/renderers/webgl/WebGLRenderer.js index d32d9bf..a7981c7 100644 --- a/src/core/renderers/webgl/WebGLRenderer.js +++ b/src/core/renderers/webgl/WebGLRenderer.js @@ -1,4 +1,5 @@ var WebGLSpriteBatch = require('./utils/WebGLSpriteBatch'), + WebGLFastSpriteBatch = require('./utils/WebGLFastSpriteBatch'), WebGLShaderManager = require('./managers/WebGLShaderManager'), WebGLMaskManager = require('./managers/WebGLMaskManager'), WebGLFilterManager = require('./managers/WebGLFilterManager'), @@ -523,7 +524,7 @@ * * @private */ -WebGLRenderer.prototype.mapBlendModes = function () { +WebGLRenderer.prototype._mapBlendModes = function () { var gl = this.gl; if (!this.blendModes) { diff --git a/src/core/renderers/webgl/managers/WebGLShaderManager.js b/src/core/renderers/webgl/managers/WebGLShaderManager.js index 49e95da..fef071c 100644 --- a/src/core/renderers/webgl/managers/WebGLShaderManager.js +++ b/src/core/renderers/webgl/managers/WebGLShaderManager.js @@ -66,7 +66,9 @@ // listen for context and update necessary shaders var self = this; - this.renderer.on('context', function (gl) { + this.renderer.on('context', function (event) { + var gl = event.data; + // this shader is used for rendering primitives self.primitiveShader = new PrimitiveShader(gl); diff --git a/src/core/renderers/webgl/shaders/Shader.js b/src/core/renderers/webgl/shaders/Shader.js index 17ac61e..7324567 100644 --- a/src/core/renderers/webgl/shaders/Shader.js +++ b/src/core/renderers/webgl/shaders/Shader.js @@ -101,8 +101,8 @@ this.gl.useProgram(this.program); - this.cacheUniformLocations(this.builtInUniforms.concat(Object.keys(this.uniforms))); - this.cacheAttributeLocations(this.builtInAttributes.concat(Object.keys(this.attributes))); + this.cacheUniformLocations(Object.keys(this.uniforms)); + this.cacheAttributeLocations(Object.keys(this.attributes)); }; Shader.prototype.cacheUniformLocations = function (keys) { @@ -123,8 +123,8 @@ // maybe its something to do with the current state of the gl context. // I'm convinced this is a bug in the chrome browser as there is NO reason why this should be returning -1 especially as it only manifests on my chrome pixel // If theres any webGL people that know why could happen please help :) - if (this._shader.attributes.aColor === -1) { - this._shader.attributes.aColor = 2; + if (this.attributes.aColor === -1) { + this.attributes.aColor = 2; } // End worst hack eva // diff --git a/src/core/renderers/webgl/utils/WebGLFastSpriteBatch.js b/src/core/renderers/webgl/utils/WebGLFastSpriteBatch.js index 0b7e842..7e988a7 100644 --- a/src/core/renderers/webgl/utils/WebGLFastSpriteBatch.js +++ b/src/core/renderers/webgl/utils/WebGLFastSpriteBatch.js @@ -135,7 +135,11 @@ */ this.matrix = null; - this.setupContext(); + // listen for context and update necessary buffers + var self = this; + this.renderer.on('context', function () { + self.setupContext(); + }); } WebGLFastSpriteBatch.prototype.constructor = WebGLFastSpriteBatch; diff --git a/src/core/renderers/webgl/utils/WebGLSpriteBatch.js b/src/core/renderers/webgl/utils/WebGLSpriteBatch.js index 3f7f1b8..77d04cc 100644 --- a/src/core/renderers/webgl/utils/WebGLSpriteBatch.js +++ b/src/core/renderers/webgl/utils/WebGLSpriteBatch.js @@ -161,13 +161,22 @@ ' gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;', '}' ]); + + // listen for context and update necessary buffers + var self = this; + this.renderer.on('context', function () { + self.setupContext(); + }); } +WebGLSpriteBatch.prototype.constructor = WebGLSpriteBatch; +module.exports = WebGLSpriteBatch; + /** * @param gl {WebGLContext} the current WebGL drawing context */ -WebGLSpriteBatch.prototype.setContext = function (gl) { - this.gl = gl; +WebGLSpriteBatch.prototype.setupContext = function () { + var gl = this.renderer.gl; // create a couple of buffers this.vertexBuffer = gl.createBuffer(); @@ -462,7 +471,7 @@ return; } - var gl = this.gl; + var gl = this.renderer.gl; var shader; if (this.dirty) { @@ -583,7 +592,7 @@ return; } - var gl = this.gl; + var gl = this.renderer.gl; // bind the current texture gl.bindTexture(gl.TEXTURE_2D, texture._glTextures[gl.id]); @@ -615,13 +624,16 @@ * */ WebGLSpriteBatch.prototype.destroy = function () { + this.renderer.gl.deleteBuffer(this.vertexBuffer); + this.renderer.gl.deleteBuffer(this.indexBuffer); + this.vertices = null; this.indices = null; - this.gl.deleteBuffer( this.vertexBuffer ); - this.gl.deleteBuffer( this.indexBuffer ); + this.vertexBuffer = null; + this.indexBuffer = null; this.currentBaseTexture = null; - this.gl = null; + this.renderer = null; }; diff --git a/src/core/textures/Texture.js b/src/core/textures/Texture.js index 7c47bfe..3c65909 100644 --- a/src/core/textures/Texture.js +++ b/src/core/textures/Texture.js @@ -116,7 +116,7 @@ eventTarget.mixin(Texture.prototype); -Object.defineProperties(BaseTexture.prototype, { +Object.defineProperties(Texture.prototype, { needsUpdate: { get: function () { return this.baseTexture.needsUpdate; diff --git a/src/core/utils/EventData.js b/src/core/utils/EventData.js index dd0059a..5d55a22 100644 --- a/src/core/utils/EventData.js +++ b/src/core/utils/EventData.js @@ -64,6 +64,9 @@ this.timeStamp = Date.now(); } +EventData.prototype.constructor = EventData; +module.exports = EventData; + /** * Stops the propagation of events up the scene graph (prevents bubbling). * diff --git a/package.json b/package.json index de301b9..8d6f3b1 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "Chad Engler ", "Richard Davey " ], - "main": "./dist/pixi.js", + "main": "./src/index.js", "homepage": "http://goodboydigital.com/", "bugs": "https://github.com/GoodBoyDigital/pixi.js/issues", "license": "MIT", diff --git a/src/core/display/DisplayObjectContainer.js b/src/core/display/DisplayObjectContainer.js index 47301f8..ce573c5 100644 --- a/src/core/display/DisplayObjectContainer.js +++ b/src/core/display/DisplayObjectContainer.js @@ -1,7 +1,7 @@ var math = require('../math'), DisplayObject = require('./DisplayObject'), RenderTexture = require('../textures/RenderTexture'), - Sprite = require('./Sprite'), + // Sprite = require('./Sprite'), _tempMatrix = new math.Matrix(); /** diff --git a/src/core/display/SpriteBatch.js b/src/core/display/SpriteBatch.js index 67dbfd4..3187777 100644 --- a/src/core/display/SpriteBatch.js +++ b/src/core/display/SpriteBatch.js @@ -31,6 +31,7 @@ SpriteBatch.prototype = Object.create(DisplayObjectContainer.prototype); SpriteBatch.prototype.constructor = SpriteBatch; +module.exports = SpriteBatch; /** * Updates the object transform for rendering diff --git a/src/core/renderers/canvas/CanvasRenderer.js b/src/core/renderers/canvas/CanvasRenderer.js index fc3d6d0..d1c404b 100644 --- a/src/core/renderers/canvas/CanvasRenderer.js +++ b/src/core/renderers/canvas/CanvasRenderer.js @@ -138,14 +138,6 @@ this.smoothProperty = null; - this.currentBlendMode = CONST.blendModes.NORMAL; - - this.blendModes = null; - - this._mapBlendModes(); - - this.resize(width, height); - if (this.context.imageSmoothingEnabled) { this.smoothProperty = 'imageSmoothingEnabled'; } @@ -161,6 +153,14 @@ else if (this.context.msImageSmoothingEnabled) { this.smoothProperty = 'msImageSmoothingEnabled'; } + + this.currentBlendMode = CONST.blendModes.NORMAL; + + this.blendModes = null; + + this._mapBlendModes(); + + this.resize(width, height); } // constructor diff --git a/src/core/renderers/webgl/WebGLRenderer.js b/src/core/renderers/webgl/WebGLRenderer.js index d32d9bf..a7981c7 100644 --- a/src/core/renderers/webgl/WebGLRenderer.js +++ b/src/core/renderers/webgl/WebGLRenderer.js @@ -1,4 +1,5 @@ var WebGLSpriteBatch = require('./utils/WebGLSpriteBatch'), + WebGLFastSpriteBatch = require('./utils/WebGLFastSpriteBatch'), WebGLShaderManager = require('./managers/WebGLShaderManager'), WebGLMaskManager = require('./managers/WebGLMaskManager'), WebGLFilterManager = require('./managers/WebGLFilterManager'), @@ -523,7 +524,7 @@ * * @private */ -WebGLRenderer.prototype.mapBlendModes = function () { +WebGLRenderer.prototype._mapBlendModes = function () { var gl = this.gl; if (!this.blendModes) { diff --git a/src/core/renderers/webgl/managers/WebGLShaderManager.js b/src/core/renderers/webgl/managers/WebGLShaderManager.js index 49e95da..fef071c 100644 --- a/src/core/renderers/webgl/managers/WebGLShaderManager.js +++ b/src/core/renderers/webgl/managers/WebGLShaderManager.js @@ -66,7 +66,9 @@ // listen for context and update necessary shaders var self = this; - this.renderer.on('context', function (gl) { + this.renderer.on('context', function (event) { + var gl = event.data; + // this shader is used for rendering primitives self.primitiveShader = new PrimitiveShader(gl); diff --git a/src/core/renderers/webgl/shaders/Shader.js b/src/core/renderers/webgl/shaders/Shader.js index 17ac61e..7324567 100644 --- a/src/core/renderers/webgl/shaders/Shader.js +++ b/src/core/renderers/webgl/shaders/Shader.js @@ -101,8 +101,8 @@ this.gl.useProgram(this.program); - this.cacheUniformLocations(this.builtInUniforms.concat(Object.keys(this.uniforms))); - this.cacheAttributeLocations(this.builtInAttributes.concat(Object.keys(this.attributes))); + this.cacheUniformLocations(Object.keys(this.uniforms)); + this.cacheAttributeLocations(Object.keys(this.attributes)); }; Shader.prototype.cacheUniformLocations = function (keys) { @@ -123,8 +123,8 @@ // maybe its something to do with the current state of the gl context. // I'm convinced this is a bug in the chrome browser as there is NO reason why this should be returning -1 especially as it only manifests on my chrome pixel // If theres any webGL people that know why could happen please help :) - if (this._shader.attributes.aColor === -1) { - this._shader.attributes.aColor = 2; + if (this.attributes.aColor === -1) { + this.attributes.aColor = 2; } // End worst hack eva // diff --git a/src/core/renderers/webgl/utils/WebGLFastSpriteBatch.js b/src/core/renderers/webgl/utils/WebGLFastSpriteBatch.js index 0b7e842..7e988a7 100644 --- a/src/core/renderers/webgl/utils/WebGLFastSpriteBatch.js +++ b/src/core/renderers/webgl/utils/WebGLFastSpriteBatch.js @@ -135,7 +135,11 @@ */ this.matrix = null; - this.setupContext(); + // listen for context and update necessary buffers + var self = this; + this.renderer.on('context', function () { + self.setupContext(); + }); } WebGLFastSpriteBatch.prototype.constructor = WebGLFastSpriteBatch; diff --git a/src/core/renderers/webgl/utils/WebGLSpriteBatch.js b/src/core/renderers/webgl/utils/WebGLSpriteBatch.js index 3f7f1b8..77d04cc 100644 --- a/src/core/renderers/webgl/utils/WebGLSpriteBatch.js +++ b/src/core/renderers/webgl/utils/WebGLSpriteBatch.js @@ -161,13 +161,22 @@ ' gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;', '}' ]); + + // listen for context and update necessary buffers + var self = this; + this.renderer.on('context', function () { + self.setupContext(); + }); } +WebGLSpriteBatch.prototype.constructor = WebGLSpriteBatch; +module.exports = WebGLSpriteBatch; + /** * @param gl {WebGLContext} the current WebGL drawing context */ -WebGLSpriteBatch.prototype.setContext = function (gl) { - this.gl = gl; +WebGLSpriteBatch.prototype.setupContext = function () { + var gl = this.renderer.gl; // create a couple of buffers this.vertexBuffer = gl.createBuffer(); @@ -462,7 +471,7 @@ return; } - var gl = this.gl; + var gl = this.renderer.gl; var shader; if (this.dirty) { @@ -583,7 +592,7 @@ return; } - var gl = this.gl; + var gl = this.renderer.gl; // bind the current texture gl.bindTexture(gl.TEXTURE_2D, texture._glTextures[gl.id]); @@ -615,13 +624,16 @@ * */ WebGLSpriteBatch.prototype.destroy = function () { + this.renderer.gl.deleteBuffer(this.vertexBuffer); + this.renderer.gl.deleteBuffer(this.indexBuffer); + this.vertices = null; this.indices = null; - this.gl.deleteBuffer( this.vertexBuffer ); - this.gl.deleteBuffer( this.indexBuffer ); + this.vertexBuffer = null; + this.indexBuffer = null; this.currentBaseTexture = null; - this.gl = null; + this.renderer = null; }; diff --git a/src/core/textures/Texture.js b/src/core/textures/Texture.js index 7c47bfe..3c65909 100644 --- a/src/core/textures/Texture.js +++ b/src/core/textures/Texture.js @@ -116,7 +116,7 @@ eventTarget.mixin(Texture.prototype); -Object.defineProperties(BaseTexture.prototype, { +Object.defineProperties(Texture.prototype, { needsUpdate: { get: function () { return this.baseTexture.needsUpdate; diff --git a/src/core/utils/EventData.js b/src/core/utils/EventData.js index dd0059a..5d55a22 100644 --- a/src/core/utils/EventData.js +++ b/src/core/utils/EventData.js @@ -64,6 +64,9 @@ this.timeStamp = Date.now(); } +EventData.prototype.constructor = EventData; +module.exports = EventData; + /** * Stops the propagation of events up the scene graph (prevents bubbling). * diff --git a/src/core/utils/index.js b/src/core/utils/index.js index 551b1a4..8a515f6 100644 --- a/src/core/utils/index.js +++ b/src/core/utils/index.js @@ -7,6 +7,10 @@ _uid: 0, _saidHello: false, + PolyK: require('./PolyK'), + EventData: require('./EventData'), + eventTarget: require('./eventTarget'), + /** * Gets the next uuid * @@ -171,10 +175,6 @@ } }, - PolyK: require('./PolyK'), - EventData: require('./EventData'), - eventTarget: require('./eventTarget'), - // TODO: refactor out this AnimCache: {}, FrameCache: {}, diff --git a/package.json b/package.json index de301b9..8d6f3b1 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "Chad Engler ", "Richard Davey " ], - "main": "./dist/pixi.js", + "main": "./src/index.js", "homepage": "http://goodboydigital.com/", "bugs": "https://github.com/GoodBoyDigital/pixi.js/issues", "license": "MIT", diff --git a/src/core/display/DisplayObjectContainer.js b/src/core/display/DisplayObjectContainer.js index 47301f8..ce573c5 100644 --- a/src/core/display/DisplayObjectContainer.js +++ b/src/core/display/DisplayObjectContainer.js @@ -1,7 +1,7 @@ var math = require('../math'), DisplayObject = require('./DisplayObject'), RenderTexture = require('../textures/RenderTexture'), - Sprite = require('./Sprite'), + // Sprite = require('./Sprite'), _tempMatrix = new math.Matrix(); /** diff --git a/src/core/display/SpriteBatch.js b/src/core/display/SpriteBatch.js index 67dbfd4..3187777 100644 --- a/src/core/display/SpriteBatch.js +++ b/src/core/display/SpriteBatch.js @@ -31,6 +31,7 @@ SpriteBatch.prototype = Object.create(DisplayObjectContainer.prototype); SpriteBatch.prototype.constructor = SpriteBatch; +module.exports = SpriteBatch; /** * Updates the object transform for rendering diff --git a/src/core/renderers/canvas/CanvasRenderer.js b/src/core/renderers/canvas/CanvasRenderer.js index fc3d6d0..d1c404b 100644 --- a/src/core/renderers/canvas/CanvasRenderer.js +++ b/src/core/renderers/canvas/CanvasRenderer.js @@ -138,14 +138,6 @@ this.smoothProperty = null; - this.currentBlendMode = CONST.blendModes.NORMAL; - - this.blendModes = null; - - this._mapBlendModes(); - - this.resize(width, height); - if (this.context.imageSmoothingEnabled) { this.smoothProperty = 'imageSmoothingEnabled'; } @@ -161,6 +153,14 @@ else if (this.context.msImageSmoothingEnabled) { this.smoothProperty = 'msImageSmoothingEnabled'; } + + this.currentBlendMode = CONST.blendModes.NORMAL; + + this.blendModes = null; + + this._mapBlendModes(); + + this.resize(width, height); } // constructor diff --git a/src/core/renderers/webgl/WebGLRenderer.js b/src/core/renderers/webgl/WebGLRenderer.js index d32d9bf..a7981c7 100644 --- a/src/core/renderers/webgl/WebGLRenderer.js +++ b/src/core/renderers/webgl/WebGLRenderer.js @@ -1,4 +1,5 @@ var WebGLSpriteBatch = require('./utils/WebGLSpriteBatch'), + WebGLFastSpriteBatch = require('./utils/WebGLFastSpriteBatch'), WebGLShaderManager = require('./managers/WebGLShaderManager'), WebGLMaskManager = require('./managers/WebGLMaskManager'), WebGLFilterManager = require('./managers/WebGLFilterManager'), @@ -523,7 +524,7 @@ * * @private */ -WebGLRenderer.prototype.mapBlendModes = function () { +WebGLRenderer.prototype._mapBlendModes = function () { var gl = this.gl; if (!this.blendModes) { diff --git a/src/core/renderers/webgl/managers/WebGLShaderManager.js b/src/core/renderers/webgl/managers/WebGLShaderManager.js index 49e95da..fef071c 100644 --- a/src/core/renderers/webgl/managers/WebGLShaderManager.js +++ b/src/core/renderers/webgl/managers/WebGLShaderManager.js @@ -66,7 +66,9 @@ // listen for context and update necessary shaders var self = this; - this.renderer.on('context', function (gl) { + this.renderer.on('context', function (event) { + var gl = event.data; + // this shader is used for rendering primitives self.primitiveShader = new PrimitiveShader(gl); diff --git a/src/core/renderers/webgl/shaders/Shader.js b/src/core/renderers/webgl/shaders/Shader.js index 17ac61e..7324567 100644 --- a/src/core/renderers/webgl/shaders/Shader.js +++ b/src/core/renderers/webgl/shaders/Shader.js @@ -101,8 +101,8 @@ this.gl.useProgram(this.program); - this.cacheUniformLocations(this.builtInUniforms.concat(Object.keys(this.uniforms))); - this.cacheAttributeLocations(this.builtInAttributes.concat(Object.keys(this.attributes))); + this.cacheUniformLocations(Object.keys(this.uniforms)); + this.cacheAttributeLocations(Object.keys(this.attributes)); }; Shader.prototype.cacheUniformLocations = function (keys) { @@ -123,8 +123,8 @@ // maybe its something to do with the current state of the gl context. // I'm convinced this is a bug in the chrome browser as there is NO reason why this should be returning -1 especially as it only manifests on my chrome pixel // If theres any webGL people that know why could happen please help :) - if (this._shader.attributes.aColor === -1) { - this._shader.attributes.aColor = 2; + if (this.attributes.aColor === -1) { + this.attributes.aColor = 2; } // End worst hack eva // diff --git a/src/core/renderers/webgl/utils/WebGLFastSpriteBatch.js b/src/core/renderers/webgl/utils/WebGLFastSpriteBatch.js index 0b7e842..7e988a7 100644 --- a/src/core/renderers/webgl/utils/WebGLFastSpriteBatch.js +++ b/src/core/renderers/webgl/utils/WebGLFastSpriteBatch.js @@ -135,7 +135,11 @@ */ this.matrix = null; - this.setupContext(); + // listen for context and update necessary buffers + var self = this; + this.renderer.on('context', function () { + self.setupContext(); + }); } WebGLFastSpriteBatch.prototype.constructor = WebGLFastSpriteBatch; diff --git a/src/core/renderers/webgl/utils/WebGLSpriteBatch.js b/src/core/renderers/webgl/utils/WebGLSpriteBatch.js index 3f7f1b8..77d04cc 100644 --- a/src/core/renderers/webgl/utils/WebGLSpriteBatch.js +++ b/src/core/renderers/webgl/utils/WebGLSpriteBatch.js @@ -161,13 +161,22 @@ ' gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;', '}' ]); + + // listen for context and update necessary buffers + var self = this; + this.renderer.on('context', function () { + self.setupContext(); + }); } +WebGLSpriteBatch.prototype.constructor = WebGLSpriteBatch; +module.exports = WebGLSpriteBatch; + /** * @param gl {WebGLContext} the current WebGL drawing context */ -WebGLSpriteBatch.prototype.setContext = function (gl) { - this.gl = gl; +WebGLSpriteBatch.prototype.setupContext = function () { + var gl = this.renderer.gl; // create a couple of buffers this.vertexBuffer = gl.createBuffer(); @@ -462,7 +471,7 @@ return; } - var gl = this.gl; + var gl = this.renderer.gl; var shader; if (this.dirty) { @@ -583,7 +592,7 @@ return; } - var gl = this.gl; + var gl = this.renderer.gl; // bind the current texture gl.bindTexture(gl.TEXTURE_2D, texture._glTextures[gl.id]); @@ -615,13 +624,16 @@ * */ WebGLSpriteBatch.prototype.destroy = function () { + this.renderer.gl.deleteBuffer(this.vertexBuffer); + this.renderer.gl.deleteBuffer(this.indexBuffer); + this.vertices = null; this.indices = null; - this.gl.deleteBuffer( this.vertexBuffer ); - this.gl.deleteBuffer( this.indexBuffer ); + this.vertexBuffer = null; + this.indexBuffer = null; this.currentBaseTexture = null; - this.gl = null; + this.renderer = null; }; diff --git a/src/core/textures/Texture.js b/src/core/textures/Texture.js index 7c47bfe..3c65909 100644 --- a/src/core/textures/Texture.js +++ b/src/core/textures/Texture.js @@ -116,7 +116,7 @@ eventTarget.mixin(Texture.prototype); -Object.defineProperties(BaseTexture.prototype, { +Object.defineProperties(Texture.prototype, { needsUpdate: { get: function () { return this.baseTexture.needsUpdate; diff --git a/src/core/utils/EventData.js b/src/core/utils/EventData.js index dd0059a..5d55a22 100644 --- a/src/core/utils/EventData.js +++ b/src/core/utils/EventData.js @@ -64,6 +64,9 @@ this.timeStamp = Date.now(); } +EventData.prototype.constructor = EventData; +module.exports = EventData; + /** * Stops the propagation of events up the scene graph (prevents bubbling). * diff --git a/src/core/utils/index.js b/src/core/utils/index.js index 551b1a4..8a515f6 100644 --- a/src/core/utils/index.js +++ b/src/core/utils/index.js @@ -7,6 +7,10 @@ _uid: 0, _saidHello: false, + PolyK: require('./PolyK'), + EventData: require('./EventData'), + eventTarget: require('./eventTarget'), + /** * Gets the next uuid * @@ -171,10 +175,6 @@ } }, - PolyK: require('./PolyK'), - EventData: require('./EventData'), - eventTarget: require('./eventTarget'), - // TODO: refactor out this AnimCache: {}, FrameCache: {}, diff --git a/src/loaders/AssetLoader.js b/src/loaders/AssetLoader.js index ddca8b6..20da0cf 100644 --- a/src/loaders/AssetLoader.js +++ b/src/loaders/AssetLoader.js @@ -14,7 +14,7 @@ * * @class * @namespace PIXI - * @mixes EventTarget + * @mixes eventTarget * @param assetURLs {string[]} An array of image/sprite sheet urls that you would like loaded * supported. Supported image formats include 'jpeg', 'jpg', 'png', 'gif'. Supported * sprite sheet data formats only include 'JSON' at this time. Supported bitmap font @@ -59,7 +59,7 @@ AssetLoader.prototype.constructor = AssetLoader; module.exports = AssetLoader; -core.utils.EventTarget.mixin(AssetLoader.prototype); +core.utils.eventTarget.mixin(AssetLoader.prototype); /** * Fired when an item has loaded diff --git a/package.json b/package.json index de301b9..8d6f3b1 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "Chad Engler ", "Richard Davey " ], - "main": "./dist/pixi.js", + "main": "./src/index.js", "homepage": "http://goodboydigital.com/", "bugs": "https://github.com/GoodBoyDigital/pixi.js/issues", "license": "MIT", diff --git a/src/core/display/DisplayObjectContainer.js b/src/core/display/DisplayObjectContainer.js index 47301f8..ce573c5 100644 --- a/src/core/display/DisplayObjectContainer.js +++ b/src/core/display/DisplayObjectContainer.js @@ -1,7 +1,7 @@ var math = require('../math'), DisplayObject = require('./DisplayObject'), RenderTexture = require('../textures/RenderTexture'), - Sprite = require('./Sprite'), + // Sprite = require('./Sprite'), _tempMatrix = new math.Matrix(); /** diff --git a/src/core/display/SpriteBatch.js b/src/core/display/SpriteBatch.js index 67dbfd4..3187777 100644 --- a/src/core/display/SpriteBatch.js +++ b/src/core/display/SpriteBatch.js @@ -31,6 +31,7 @@ SpriteBatch.prototype = Object.create(DisplayObjectContainer.prototype); SpriteBatch.prototype.constructor = SpriteBatch; +module.exports = SpriteBatch; /** * Updates the object transform for rendering diff --git a/src/core/renderers/canvas/CanvasRenderer.js b/src/core/renderers/canvas/CanvasRenderer.js index fc3d6d0..d1c404b 100644 --- a/src/core/renderers/canvas/CanvasRenderer.js +++ b/src/core/renderers/canvas/CanvasRenderer.js @@ -138,14 +138,6 @@ this.smoothProperty = null; - this.currentBlendMode = CONST.blendModes.NORMAL; - - this.blendModes = null; - - this._mapBlendModes(); - - this.resize(width, height); - if (this.context.imageSmoothingEnabled) { this.smoothProperty = 'imageSmoothingEnabled'; } @@ -161,6 +153,14 @@ else if (this.context.msImageSmoothingEnabled) { this.smoothProperty = 'msImageSmoothingEnabled'; } + + this.currentBlendMode = CONST.blendModes.NORMAL; + + this.blendModes = null; + + this._mapBlendModes(); + + this.resize(width, height); } // constructor diff --git a/src/core/renderers/webgl/WebGLRenderer.js b/src/core/renderers/webgl/WebGLRenderer.js index d32d9bf..a7981c7 100644 --- a/src/core/renderers/webgl/WebGLRenderer.js +++ b/src/core/renderers/webgl/WebGLRenderer.js @@ -1,4 +1,5 @@ var WebGLSpriteBatch = require('./utils/WebGLSpriteBatch'), + WebGLFastSpriteBatch = require('./utils/WebGLFastSpriteBatch'), WebGLShaderManager = require('./managers/WebGLShaderManager'), WebGLMaskManager = require('./managers/WebGLMaskManager'), WebGLFilterManager = require('./managers/WebGLFilterManager'), @@ -523,7 +524,7 @@ * * @private */ -WebGLRenderer.prototype.mapBlendModes = function () { +WebGLRenderer.prototype._mapBlendModes = function () { var gl = this.gl; if (!this.blendModes) { diff --git a/src/core/renderers/webgl/managers/WebGLShaderManager.js b/src/core/renderers/webgl/managers/WebGLShaderManager.js index 49e95da..fef071c 100644 --- a/src/core/renderers/webgl/managers/WebGLShaderManager.js +++ b/src/core/renderers/webgl/managers/WebGLShaderManager.js @@ -66,7 +66,9 @@ // listen for context and update necessary shaders var self = this; - this.renderer.on('context', function (gl) { + this.renderer.on('context', function (event) { + var gl = event.data; + // this shader is used for rendering primitives self.primitiveShader = new PrimitiveShader(gl); diff --git a/src/core/renderers/webgl/shaders/Shader.js b/src/core/renderers/webgl/shaders/Shader.js index 17ac61e..7324567 100644 --- a/src/core/renderers/webgl/shaders/Shader.js +++ b/src/core/renderers/webgl/shaders/Shader.js @@ -101,8 +101,8 @@ this.gl.useProgram(this.program); - this.cacheUniformLocations(this.builtInUniforms.concat(Object.keys(this.uniforms))); - this.cacheAttributeLocations(this.builtInAttributes.concat(Object.keys(this.attributes))); + this.cacheUniformLocations(Object.keys(this.uniforms)); + this.cacheAttributeLocations(Object.keys(this.attributes)); }; Shader.prototype.cacheUniformLocations = function (keys) { @@ -123,8 +123,8 @@ // maybe its something to do with the current state of the gl context. // I'm convinced this is a bug in the chrome browser as there is NO reason why this should be returning -1 especially as it only manifests on my chrome pixel // If theres any webGL people that know why could happen please help :) - if (this._shader.attributes.aColor === -1) { - this._shader.attributes.aColor = 2; + if (this.attributes.aColor === -1) { + this.attributes.aColor = 2; } // End worst hack eva // diff --git a/src/core/renderers/webgl/utils/WebGLFastSpriteBatch.js b/src/core/renderers/webgl/utils/WebGLFastSpriteBatch.js index 0b7e842..7e988a7 100644 --- a/src/core/renderers/webgl/utils/WebGLFastSpriteBatch.js +++ b/src/core/renderers/webgl/utils/WebGLFastSpriteBatch.js @@ -135,7 +135,11 @@ */ this.matrix = null; - this.setupContext(); + // listen for context and update necessary buffers + var self = this; + this.renderer.on('context', function () { + self.setupContext(); + }); } WebGLFastSpriteBatch.prototype.constructor = WebGLFastSpriteBatch; diff --git a/src/core/renderers/webgl/utils/WebGLSpriteBatch.js b/src/core/renderers/webgl/utils/WebGLSpriteBatch.js index 3f7f1b8..77d04cc 100644 --- a/src/core/renderers/webgl/utils/WebGLSpriteBatch.js +++ b/src/core/renderers/webgl/utils/WebGLSpriteBatch.js @@ -161,13 +161,22 @@ ' gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;', '}' ]); + + // listen for context and update necessary buffers + var self = this; + this.renderer.on('context', function () { + self.setupContext(); + }); } +WebGLSpriteBatch.prototype.constructor = WebGLSpriteBatch; +module.exports = WebGLSpriteBatch; + /** * @param gl {WebGLContext} the current WebGL drawing context */ -WebGLSpriteBatch.prototype.setContext = function (gl) { - this.gl = gl; +WebGLSpriteBatch.prototype.setupContext = function () { + var gl = this.renderer.gl; // create a couple of buffers this.vertexBuffer = gl.createBuffer(); @@ -462,7 +471,7 @@ return; } - var gl = this.gl; + var gl = this.renderer.gl; var shader; if (this.dirty) { @@ -583,7 +592,7 @@ return; } - var gl = this.gl; + var gl = this.renderer.gl; // bind the current texture gl.bindTexture(gl.TEXTURE_2D, texture._glTextures[gl.id]); @@ -615,13 +624,16 @@ * */ WebGLSpriteBatch.prototype.destroy = function () { + this.renderer.gl.deleteBuffer(this.vertexBuffer); + this.renderer.gl.deleteBuffer(this.indexBuffer); + this.vertices = null; this.indices = null; - this.gl.deleteBuffer( this.vertexBuffer ); - this.gl.deleteBuffer( this.indexBuffer ); + this.vertexBuffer = null; + this.indexBuffer = null; this.currentBaseTexture = null; - this.gl = null; + this.renderer = null; }; diff --git a/src/core/textures/Texture.js b/src/core/textures/Texture.js index 7c47bfe..3c65909 100644 --- a/src/core/textures/Texture.js +++ b/src/core/textures/Texture.js @@ -116,7 +116,7 @@ eventTarget.mixin(Texture.prototype); -Object.defineProperties(BaseTexture.prototype, { +Object.defineProperties(Texture.prototype, { needsUpdate: { get: function () { return this.baseTexture.needsUpdate; diff --git a/src/core/utils/EventData.js b/src/core/utils/EventData.js index dd0059a..5d55a22 100644 --- a/src/core/utils/EventData.js +++ b/src/core/utils/EventData.js @@ -64,6 +64,9 @@ this.timeStamp = Date.now(); } +EventData.prototype.constructor = EventData; +module.exports = EventData; + /** * Stops the propagation of events up the scene graph (prevents bubbling). * diff --git a/src/core/utils/index.js b/src/core/utils/index.js index 551b1a4..8a515f6 100644 --- a/src/core/utils/index.js +++ b/src/core/utils/index.js @@ -7,6 +7,10 @@ _uid: 0, _saidHello: false, + PolyK: require('./PolyK'), + EventData: require('./EventData'), + eventTarget: require('./eventTarget'), + /** * Gets the next uuid * @@ -171,10 +175,6 @@ } }, - PolyK: require('./PolyK'), - EventData: require('./EventData'), - eventTarget: require('./eventTarget'), - // TODO: refactor out this AnimCache: {}, FrameCache: {}, diff --git a/src/loaders/AssetLoader.js b/src/loaders/AssetLoader.js index ddca8b6..20da0cf 100644 --- a/src/loaders/AssetLoader.js +++ b/src/loaders/AssetLoader.js @@ -14,7 +14,7 @@ * * @class * @namespace PIXI - * @mixes EventTarget + * @mixes eventTarget * @param assetURLs {string[]} An array of image/sprite sheet urls that you would like loaded * supported. Supported image formats include 'jpeg', 'jpg', 'png', 'gif'. Supported * sprite sheet data formats only include 'JSON' at this time. Supported bitmap font @@ -59,7 +59,7 @@ AssetLoader.prototype.constructor = AssetLoader; module.exports = AssetLoader; -core.utils.EventTarget.mixin(AssetLoader.prototype); +core.utils.eventTarget.mixin(AssetLoader.prototype); /** * Fired when an item has loaded diff --git a/src/loaders/AtlasLoader.js b/src/loaders/AtlasLoader.js index 770ea2d..5eda286 100644 --- a/src/loaders/AtlasLoader.js +++ b/src/loaders/AtlasLoader.js @@ -10,7 +10,7 @@ * Once the data has been loaded the frames are stored in the PIXI texture cache and can be accessed though Texture.fromFrameId() and Sprite.fromFrameId() * * @class - * @mixes EventTarget + * @mixes eventTarget * @namespace PIXI * @param url {String} The url of the JSON file * @param crossorigin {boolean} Whether requests should be treated as crossorigin @@ -25,7 +25,7 @@ AtlasLoader.prototype.constructor = AtlasLoader; module.exports = AtlasLoader; -core.utils.EventTarget.mixin(AtlasLoader.prototype); +core.utils.eventTarget.mixin(AtlasLoader.prototype); /** * Starts loading the JSON file diff --git a/package.json b/package.json index de301b9..8d6f3b1 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "Chad Engler ", "Richard Davey " ], - "main": "./dist/pixi.js", + "main": "./src/index.js", "homepage": "http://goodboydigital.com/", "bugs": "https://github.com/GoodBoyDigital/pixi.js/issues", "license": "MIT", diff --git a/src/core/display/DisplayObjectContainer.js b/src/core/display/DisplayObjectContainer.js index 47301f8..ce573c5 100644 --- a/src/core/display/DisplayObjectContainer.js +++ b/src/core/display/DisplayObjectContainer.js @@ -1,7 +1,7 @@ var math = require('../math'), DisplayObject = require('./DisplayObject'), RenderTexture = require('../textures/RenderTexture'), - Sprite = require('./Sprite'), + // Sprite = require('./Sprite'), _tempMatrix = new math.Matrix(); /** diff --git a/src/core/display/SpriteBatch.js b/src/core/display/SpriteBatch.js index 67dbfd4..3187777 100644 --- a/src/core/display/SpriteBatch.js +++ b/src/core/display/SpriteBatch.js @@ -31,6 +31,7 @@ SpriteBatch.prototype = Object.create(DisplayObjectContainer.prototype); SpriteBatch.prototype.constructor = SpriteBatch; +module.exports = SpriteBatch; /** * Updates the object transform for rendering diff --git a/src/core/renderers/canvas/CanvasRenderer.js b/src/core/renderers/canvas/CanvasRenderer.js index fc3d6d0..d1c404b 100644 --- a/src/core/renderers/canvas/CanvasRenderer.js +++ b/src/core/renderers/canvas/CanvasRenderer.js @@ -138,14 +138,6 @@ this.smoothProperty = null; - this.currentBlendMode = CONST.blendModes.NORMAL; - - this.blendModes = null; - - this._mapBlendModes(); - - this.resize(width, height); - if (this.context.imageSmoothingEnabled) { this.smoothProperty = 'imageSmoothingEnabled'; } @@ -161,6 +153,14 @@ else if (this.context.msImageSmoothingEnabled) { this.smoothProperty = 'msImageSmoothingEnabled'; } + + this.currentBlendMode = CONST.blendModes.NORMAL; + + this.blendModes = null; + + this._mapBlendModes(); + + this.resize(width, height); } // constructor diff --git a/src/core/renderers/webgl/WebGLRenderer.js b/src/core/renderers/webgl/WebGLRenderer.js index d32d9bf..a7981c7 100644 --- a/src/core/renderers/webgl/WebGLRenderer.js +++ b/src/core/renderers/webgl/WebGLRenderer.js @@ -1,4 +1,5 @@ var WebGLSpriteBatch = require('./utils/WebGLSpriteBatch'), + WebGLFastSpriteBatch = require('./utils/WebGLFastSpriteBatch'), WebGLShaderManager = require('./managers/WebGLShaderManager'), WebGLMaskManager = require('./managers/WebGLMaskManager'), WebGLFilterManager = require('./managers/WebGLFilterManager'), @@ -523,7 +524,7 @@ * * @private */ -WebGLRenderer.prototype.mapBlendModes = function () { +WebGLRenderer.prototype._mapBlendModes = function () { var gl = this.gl; if (!this.blendModes) { diff --git a/src/core/renderers/webgl/managers/WebGLShaderManager.js b/src/core/renderers/webgl/managers/WebGLShaderManager.js index 49e95da..fef071c 100644 --- a/src/core/renderers/webgl/managers/WebGLShaderManager.js +++ b/src/core/renderers/webgl/managers/WebGLShaderManager.js @@ -66,7 +66,9 @@ // listen for context and update necessary shaders var self = this; - this.renderer.on('context', function (gl) { + this.renderer.on('context', function (event) { + var gl = event.data; + // this shader is used for rendering primitives self.primitiveShader = new PrimitiveShader(gl); diff --git a/src/core/renderers/webgl/shaders/Shader.js b/src/core/renderers/webgl/shaders/Shader.js index 17ac61e..7324567 100644 --- a/src/core/renderers/webgl/shaders/Shader.js +++ b/src/core/renderers/webgl/shaders/Shader.js @@ -101,8 +101,8 @@ this.gl.useProgram(this.program); - this.cacheUniformLocations(this.builtInUniforms.concat(Object.keys(this.uniforms))); - this.cacheAttributeLocations(this.builtInAttributes.concat(Object.keys(this.attributes))); + this.cacheUniformLocations(Object.keys(this.uniforms)); + this.cacheAttributeLocations(Object.keys(this.attributes)); }; Shader.prototype.cacheUniformLocations = function (keys) { @@ -123,8 +123,8 @@ // maybe its something to do with the current state of the gl context. // I'm convinced this is a bug in the chrome browser as there is NO reason why this should be returning -1 especially as it only manifests on my chrome pixel // If theres any webGL people that know why could happen please help :) - if (this._shader.attributes.aColor === -1) { - this._shader.attributes.aColor = 2; + if (this.attributes.aColor === -1) { + this.attributes.aColor = 2; } // End worst hack eva // diff --git a/src/core/renderers/webgl/utils/WebGLFastSpriteBatch.js b/src/core/renderers/webgl/utils/WebGLFastSpriteBatch.js index 0b7e842..7e988a7 100644 --- a/src/core/renderers/webgl/utils/WebGLFastSpriteBatch.js +++ b/src/core/renderers/webgl/utils/WebGLFastSpriteBatch.js @@ -135,7 +135,11 @@ */ this.matrix = null; - this.setupContext(); + // listen for context and update necessary buffers + var self = this; + this.renderer.on('context', function () { + self.setupContext(); + }); } WebGLFastSpriteBatch.prototype.constructor = WebGLFastSpriteBatch; diff --git a/src/core/renderers/webgl/utils/WebGLSpriteBatch.js b/src/core/renderers/webgl/utils/WebGLSpriteBatch.js index 3f7f1b8..77d04cc 100644 --- a/src/core/renderers/webgl/utils/WebGLSpriteBatch.js +++ b/src/core/renderers/webgl/utils/WebGLSpriteBatch.js @@ -161,13 +161,22 @@ ' gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;', '}' ]); + + // listen for context and update necessary buffers + var self = this; + this.renderer.on('context', function () { + self.setupContext(); + }); } +WebGLSpriteBatch.prototype.constructor = WebGLSpriteBatch; +module.exports = WebGLSpriteBatch; + /** * @param gl {WebGLContext} the current WebGL drawing context */ -WebGLSpriteBatch.prototype.setContext = function (gl) { - this.gl = gl; +WebGLSpriteBatch.prototype.setupContext = function () { + var gl = this.renderer.gl; // create a couple of buffers this.vertexBuffer = gl.createBuffer(); @@ -462,7 +471,7 @@ return; } - var gl = this.gl; + var gl = this.renderer.gl; var shader; if (this.dirty) { @@ -583,7 +592,7 @@ return; } - var gl = this.gl; + var gl = this.renderer.gl; // bind the current texture gl.bindTexture(gl.TEXTURE_2D, texture._glTextures[gl.id]); @@ -615,13 +624,16 @@ * */ WebGLSpriteBatch.prototype.destroy = function () { + this.renderer.gl.deleteBuffer(this.vertexBuffer); + this.renderer.gl.deleteBuffer(this.indexBuffer); + this.vertices = null; this.indices = null; - this.gl.deleteBuffer( this.vertexBuffer ); - this.gl.deleteBuffer( this.indexBuffer ); + this.vertexBuffer = null; + this.indexBuffer = null; this.currentBaseTexture = null; - this.gl = null; + this.renderer = null; }; diff --git a/src/core/textures/Texture.js b/src/core/textures/Texture.js index 7c47bfe..3c65909 100644 --- a/src/core/textures/Texture.js +++ b/src/core/textures/Texture.js @@ -116,7 +116,7 @@ eventTarget.mixin(Texture.prototype); -Object.defineProperties(BaseTexture.prototype, { +Object.defineProperties(Texture.prototype, { needsUpdate: { get: function () { return this.baseTexture.needsUpdate; diff --git a/src/core/utils/EventData.js b/src/core/utils/EventData.js index dd0059a..5d55a22 100644 --- a/src/core/utils/EventData.js +++ b/src/core/utils/EventData.js @@ -64,6 +64,9 @@ this.timeStamp = Date.now(); } +EventData.prototype.constructor = EventData; +module.exports = EventData; + /** * Stops the propagation of events up the scene graph (prevents bubbling). * diff --git a/src/core/utils/index.js b/src/core/utils/index.js index 551b1a4..8a515f6 100644 --- a/src/core/utils/index.js +++ b/src/core/utils/index.js @@ -7,6 +7,10 @@ _uid: 0, _saidHello: false, + PolyK: require('./PolyK'), + EventData: require('./EventData'), + eventTarget: require('./eventTarget'), + /** * Gets the next uuid * @@ -171,10 +175,6 @@ } }, - PolyK: require('./PolyK'), - EventData: require('./EventData'), - eventTarget: require('./eventTarget'), - // TODO: refactor out this AnimCache: {}, FrameCache: {}, diff --git a/src/loaders/AssetLoader.js b/src/loaders/AssetLoader.js index ddca8b6..20da0cf 100644 --- a/src/loaders/AssetLoader.js +++ b/src/loaders/AssetLoader.js @@ -14,7 +14,7 @@ * * @class * @namespace PIXI - * @mixes EventTarget + * @mixes eventTarget * @param assetURLs {string[]} An array of image/sprite sheet urls that you would like loaded * supported. Supported image formats include 'jpeg', 'jpg', 'png', 'gif'. Supported * sprite sheet data formats only include 'JSON' at this time. Supported bitmap font @@ -59,7 +59,7 @@ AssetLoader.prototype.constructor = AssetLoader; module.exports = AssetLoader; -core.utils.EventTarget.mixin(AssetLoader.prototype); +core.utils.eventTarget.mixin(AssetLoader.prototype); /** * Fired when an item has loaded diff --git a/src/loaders/AtlasLoader.js b/src/loaders/AtlasLoader.js index 770ea2d..5eda286 100644 --- a/src/loaders/AtlasLoader.js +++ b/src/loaders/AtlasLoader.js @@ -10,7 +10,7 @@ * Once the data has been loaded the frames are stored in the PIXI texture cache and can be accessed though Texture.fromFrameId() and Sprite.fromFrameId() * * @class - * @mixes EventTarget + * @mixes eventTarget * @namespace PIXI * @param url {String} The url of the JSON file * @param crossorigin {boolean} Whether requests should be treated as crossorigin @@ -25,7 +25,7 @@ AtlasLoader.prototype.constructor = AtlasLoader; module.exports = AtlasLoader; -core.utils.EventTarget.mixin(AtlasLoader.prototype); +core.utils.eventTarget.mixin(AtlasLoader.prototype); /** * Starts loading the JSON file diff --git a/src/loaders/BitmapFontLoader.js b/src/loaders/BitmapFontLoader.js index 9cbfa2a..8641760 100644 --- a/src/loaders/BitmapFontLoader.js +++ b/src/loaders/BitmapFontLoader.js @@ -8,7 +8,7 @@ * When loaded this class will dispatch a 'loaded' event * * @class - * @mixes EventTarget + * @mixes eventTarget * @namespace PIXI * @param url {String} The url of the sprite sheet JSON file * @param crossorigin {boolean} Whether requests should be treated as crossorigin @@ -48,7 +48,7 @@ BitmapFontLoader.prototype.constructor = BitmapFontLoader; module.exports = BitmapFontLoader; -core.utils.EventTarget.mixin(BitmapFontLoader.prototype); +core.utils.eventTarget.mixin(BitmapFontLoader.prototype); /** * Loads the XML font data diff --git a/package.json b/package.json index de301b9..8d6f3b1 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "Chad Engler ", "Richard Davey " ], - "main": "./dist/pixi.js", + "main": "./src/index.js", "homepage": "http://goodboydigital.com/", "bugs": "https://github.com/GoodBoyDigital/pixi.js/issues", "license": "MIT", diff --git a/src/core/display/DisplayObjectContainer.js b/src/core/display/DisplayObjectContainer.js index 47301f8..ce573c5 100644 --- a/src/core/display/DisplayObjectContainer.js +++ b/src/core/display/DisplayObjectContainer.js @@ -1,7 +1,7 @@ var math = require('../math'), DisplayObject = require('./DisplayObject'), RenderTexture = require('../textures/RenderTexture'), - Sprite = require('./Sprite'), + // Sprite = require('./Sprite'), _tempMatrix = new math.Matrix(); /** diff --git a/src/core/display/SpriteBatch.js b/src/core/display/SpriteBatch.js index 67dbfd4..3187777 100644 --- a/src/core/display/SpriteBatch.js +++ b/src/core/display/SpriteBatch.js @@ -31,6 +31,7 @@ SpriteBatch.prototype = Object.create(DisplayObjectContainer.prototype); SpriteBatch.prototype.constructor = SpriteBatch; +module.exports = SpriteBatch; /** * Updates the object transform for rendering diff --git a/src/core/renderers/canvas/CanvasRenderer.js b/src/core/renderers/canvas/CanvasRenderer.js index fc3d6d0..d1c404b 100644 --- a/src/core/renderers/canvas/CanvasRenderer.js +++ b/src/core/renderers/canvas/CanvasRenderer.js @@ -138,14 +138,6 @@ this.smoothProperty = null; - this.currentBlendMode = CONST.blendModes.NORMAL; - - this.blendModes = null; - - this._mapBlendModes(); - - this.resize(width, height); - if (this.context.imageSmoothingEnabled) { this.smoothProperty = 'imageSmoothingEnabled'; } @@ -161,6 +153,14 @@ else if (this.context.msImageSmoothingEnabled) { this.smoothProperty = 'msImageSmoothingEnabled'; } + + this.currentBlendMode = CONST.blendModes.NORMAL; + + this.blendModes = null; + + this._mapBlendModes(); + + this.resize(width, height); } // constructor diff --git a/src/core/renderers/webgl/WebGLRenderer.js b/src/core/renderers/webgl/WebGLRenderer.js index d32d9bf..a7981c7 100644 --- a/src/core/renderers/webgl/WebGLRenderer.js +++ b/src/core/renderers/webgl/WebGLRenderer.js @@ -1,4 +1,5 @@ var WebGLSpriteBatch = require('./utils/WebGLSpriteBatch'), + WebGLFastSpriteBatch = require('./utils/WebGLFastSpriteBatch'), WebGLShaderManager = require('./managers/WebGLShaderManager'), WebGLMaskManager = require('./managers/WebGLMaskManager'), WebGLFilterManager = require('./managers/WebGLFilterManager'), @@ -523,7 +524,7 @@ * * @private */ -WebGLRenderer.prototype.mapBlendModes = function () { +WebGLRenderer.prototype._mapBlendModes = function () { var gl = this.gl; if (!this.blendModes) { diff --git a/src/core/renderers/webgl/managers/WebGLShaderManager.js b/src/core/renderers/webgl/managers/WebGLShaderManager.js index 49e95da..fef071c 100644 --- a/src/core/renderers/webgl/managers/WebGLShaderManager.js +++ b/src/core/renderers/webgl/managers/WebGLShaderManager.js @@ -66,7 +66,9 @@ // listen for context and update necessary shaders var self = this; - this.renderer.on('context', function (gl) { + this.renderer.on('context', function (event) { + var gl = event.data; + // this shader is used for rendering primitives self.primitiveShader = new PrimitiveShader(gl); diff --git a/src/core/renderers/webgl/shaders/Shader.js b/src/core/renderers/webgl/shaders/Shader.js index 17ac61e..7324567 100644 --- a/src/core/renderers/webgl/shaders/Shader.js +++ b/src/core/renderers/webgl/shaders/Shader.js @@ -101,8 +101,8 @@ this.gl.useProgram(this.program); - this.cacheUniformLocations(this.builtInUniforms.concat(Object.keys(this.uniforms))); - this.cacheAttributeLocations(this.builtInAttributes.concat(Object.keys(this.attributes))); + this.cacheUniformLocations(Object.keys(this.uniforms)); + this.cacheAttributeLocations(Object.keys(this.attributes)); }; Shader.prototype.cacheUniformLocations = function (keys) { @@ -123,8 +123,8 @@ // maybe its something to do with the current state of the gl context. // I'm convinced this is a bug in the chrome browser as there is NO reason why this should be returning -1 especially as it only manifests on my chrome pixel // If theres any webGL people that know why could happen please help :) - if (this._shader.attributes.aColor === -1) { - this._shader.attributes.aColor = 2; + if (this.attributes.aColor === -1) { + this.attributes.aColor = 2; } // End worst hack eva // diff --git a/src/core/renderers/webgl/utils/WebGLFastSpriteBatch.js b/src/core/renderers/webgl/utils/WebGLFastSpriteBatch.js index 0b7e842..7e988a7 100644 --- a/src/core/renderers/webgl/utils/WebGLFastSpriteBatch.js +++ b/src/core/renderers/webgl/utils/WebGLFastSpriteBatch.js @@ -135,7 +135,11 @@ */ this.matrix = null; - this.setupContext(); + // listen for context and update necessary buffers + var self = this; + this.renderer.on('context', function () { + self.setupContext(); + }); } WebGLFastSpriteBatch.prototype.constructor = WebGLFastSpriteBatch; diff --git a/src/core/renderers/webgl/utils/WebGLSpriteBatch.js b/src/core/renderers/webgl/utils/WebGLSpriteBatch.js index 3f7f1b8..77d04cc 100644 --- a/src/core/renderers/webgl/utils/WebGLSpriteBatch.js +++ b/src/core/renderers/webgl/utils/WebGLSpriteBatch.js @@ -161,13 +161,22 @@ ' gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;', '}' ]); + + // listen for context and update necessary buffers + var self = this; + this.renderer.on('context', function () { + self.setupContext(); + }); } +WebGLSpriteBatch.prototype.constructor = WebGLSpriteBatch; +module.exports = WebGLSpriteBatch; + /** * @param gl {WebGLContext} the current WebGL drawing context */ -WebGLSpriteBatch.prototype.setContext = function (gl) { - this.gl = gl; +WebGLSpriteBatch.prototype.setupContext = function () { + var gl = this.renderer.gl; // create a couple of buffers this.vertexBuffer = gl.createBuffer(); @@ -462,7 +471,7 @@ return; } - var gl = this.gl; + var gl = this.renderer.gl; var shader; if (this.dirty) { @@ -583,7 +592,7 @@ return; } - var gl = this.gl; + var gl = this.renderer.gl; // bind the current texture gl.bindTexture(gl.TEXTURE_2D, texture._glTextures[gl.id]); @@ -615,13 +624,16 @@ * */ WebGLSpriteBatch.prototype.destroy = function () { + this.renderer.gl.deleteBuffer(this.vertexBuffer); + this.renderer.gl.deleteBuffer(this.indexBuffer); + this.vertices = null; this.indices = null; - this.gl.deleteBuffer( this.vertexBuffer ); - this.gl.deleteBuffer( this.indexBuffer ); + this.vertexBuffer = null; + this.indexBuffer = null; this.currentBaseTexture = null; - this.gl = null; + this.renderer = null; }; diff --git a/src/core/textures/Texture.js b/src/core/textures/Texture.js index 7c47bfe..3c65909 100644 --- a/src/core/textures/Texture.js +++ b/src/core/textures/Texture.js @@ -116,7 +116,7 @@ eventTarget.mixin(Texture.prototype); -Object.defineProperties(BaseTexture.prototype, { +Object.defineProperties(Texture.prototype, { needsUpdate: { get: function () { return this.baseTexture.needsUpdate; diff --git a/src/core/utils/EventData.js b/src/core/utils/EventData.js index dd0059a..5d55a22 100644 --- a/src/core/utils/EventData.js +++ b/src/core/utils/EventData.js @@ -64,6 +64,9 @@ this.timeStamp = Date.now(); } +EventData.prototype.constructor = EventData; +module.exports = EventData; + /** * Stops the propagation of events up the scene graph (prevents bubbling). * diff --git a/src/core/utils/index.js b/src/core/utils/index.js index 551b1a4..8a515f6 100644 --- a/src/core/utils/index.js +++ b/src/core/utils/index.js @@ -7,6 +7,10 @@ _uid: 0, _saidHello: false, + PolyK: require('./PolyK'), + EventData: require('./EventData'), + eventTarget: require('./eventTarget'), + /** * Gets the next uuid * @@ -171,10 +175,6 @@ } }, - PolyK: require('./PolyK'), - EventData: require('./EventData'), - eventTarget: require('./eventTarget'), - // TODO: refactor out this AnimCache: {}, FrameCache: {}, diff --git a/src/loaders/AssetLoader.js b/src/loaders/AssetLoader.js index ddca8b6..20da0cf 100644 --- a/src/loaders/AssetLoader.js +++ b/src/loaders/AssetLoader.js @@ -14,7 +14,7 @@ * * @class * @namespace PIXI - * @mixes EventTarget + * @mixes eventTarget * @param assetURLs {string[]} An array of image/sprite sheet urls that you would like loaded * supported. Supported image formats include 'jpeg', 'jpg', 'png', 'gif'. Supported * sprite sheet data formats only include 'JSON' at this time. Supported bitmap font @@ -59,7 +59,7 @@ AssetLoader.prototype.constructor = AssetLoader; module.exports = AssetLoader; -core.utils.EventTarget.mixin(AssetLoader.prototype); +core.utils.eventTarget.mixin(AssetLoader.prototype); /** * Fired when an item has loaded diff --git a/src/loaders/AtlasLoader.js b/src/loaders/AtlasLoader.js index 770ea2d..5eda286 100644 --- a/src/loaders/AtlasLoader.js +++ b/src/loaders/AtlasLoader.js @@ -10,7 +10,7 @@ * Once the data has been loaded the frames are stored in the PIXI texture cache and can be accessed though Texture.fromFrameId() and Sprite.fromFrameId() * * @class - * @mixes EventTarget + * @mixes eventTarget * @namespace PIXI * @param url {String} The url of the JSON file * @param crossorigin {boolean} Whether requests should be treated as crossorigin @@ -25,7 +25,7 @@ AtlasLoader.prototype.constructor = AtlasLoader; module.exports = AtlasLoader; -core.utils.EventTarget.mixin(AtlasLoader.prototype); +core.utils.eventTarget.mixin(AtlasLoader.prototype); /** * Starts loading the JSON file diff --git a/src/loaders/BitmapFontLoader.js b/src/loaders/BitmapFontLoader.js index 9cbfa2a..8641760 100644 --- a/src/loaders/BitmapFontLoader.js +++ b/src/loaders/BitmapFontLoader.js @@ -8,7 +8,7 @@ * When loaded this class will dispatch a 'loaded' event * * @class - * @mixes EventTarget + * @mixes eventTarget * @namespace PIXI * @param url {String} The url of the sprite sheet JSON file * @param crossorigin {boolean} Whether requests should be treated as crossorigin @@ -48,7 +48,7 @@ BitmapFontLoader.prototype.constructor = BitmapFontLoader; module.exports = BitmapFontLoader; -core.utils.EventTarget.mixin(BitmapFontLoader.prototype); +core.utils.eventTarget.mixin(BitmapFontLoader.prototype); /** * Loads the XML font data diff --git a/src/loaders/ImageLoader.js b/src/loaders/ImageLoader.js index 040517d..e3ff493 100644 --- a/src/loaders/ImageLoader.js +++ b/src/loaders/ImageLoader.js @@ -6,7 +6,7 @@ * When loaded this class will dispatch a 'loaded' event * * @class - * @mixes EventTarget + * @mixes eventTarget * @namespace PIXI * @param url {String} The url of the image * @param crossorigin {boolean} Whether requests should be treated as crossorigin @@ -33,7 +33,7 @@ ImageLoader.prototype.constructor = ImageLoader; module.exports = ImageLoader; -core.utils.EventTarget.mixin(ImageLoader.prototype); +core.utils.eventTarget.mixin(ImageLoader.prototype); /** * Loads image or takes it from cache diff --git a/package.json b/package.json index de301b9..8d6f3b1 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "Chad Engler ", "Richard Davey " ], - "main": "./dist/pixi.js", + "main": "./src/index.js", "homepage": "http://goodboydigital.com/", "bugs": "https://github.com/GoodBoyDigital/pixi.js/issues", "license": "MIT", diff --git a/src/core/display/DisplayObjectContainer.js b/src/core/display/DisplayObjectContainer.js index 47301f8..ce573c5 100644 --- a/src/core/display/DisplayObjectContainer.js +++ b/src/core/display/DisplayObjectContainer.js @@ -1,7 +1,7 @@ var math = require('../math'), DisplayObject = require('./DisplayObject'), RenderTexture = require('../textures/RenderTexture'), - Sprite = require('./Sprite'), + // Sprite = require('./Sprite'), _tempMatrix = new math.Matrix(); /** diff --git a/src/core/display/SpriteBatch.js b/src/core/display/SpriteBatch.js index 67dbfd4..3187777 100644 --- a/src/core/display/SpriteBatch.js +++ b/src/core/display/SpriteBatch.js @@ -31,6 +31,7 @@ SpriteBatch.prototype = Object.create(DisplayObjectContainer.prototype); SpriteBatch.prototype.constructor = SpriteBatch; +module.exports = SpriteBatch; /** * Updates the object transform for rendering diff --git a/src/core/renderers/canvas/CanvasRenderer.js b/src/core/renderers/canvas/CanvasRenderer.js index fc3d6d0..d1c404b 100644 --- a/src/core/renderers/canvas/CanvasRenderer.js +++ b/src/core/renderers/canvas/CanvasRenderer.js @@ -138,14 +138,6 @@ this.smoothProperty = null; - this.currentBlendMode = CONST.blendModes.NORMAL; - - this.blendModes = null; - - this._mapBlendModes(); - - this.resize(width, height); - if (this.context.imageSmoothingEnabled) { this.smoothProperty = 'imageSmoothingEnabled'; } @@ -161,6 +153,14 @@ else if (this.context.msImageSmoothingEnabled) { this.smoothProperty = 'msImageSmoothingEnabled'; } + + this.currentBlendMode = CONST.blendModes.NORMAL; + + this.blendModes = null; + + this._mapBlendModes(); + + this.resize(width, height); } // constructor diff --git a/src/core/renderers/webgl/WebGLRenderer.js b/src/core/renderers/webgl/WebGLRenderer.js index d32d9bf..a7981c7 100644 --- a/src/core/renderers/webgl/WebGLRenderer.js +++ b/src/core/renderers/webgl/WebGLRenderer.js @@ -1,4 +1,5 @@ var WebGLSpriteBatch = require('./utils/WebGLSpriteBatch'), + WebGLFastSpriteBatch = require('./utils/WebGLFastSpriteBatch'), WebGLShaderManager = require('./managers/WebGLShaderManager'), WebGLMaskManager = require('./managers/WebGLMaskManager'), WebGLFilterManager = require('./managers/WebGLFilterManager'), @@ -523,7 +524,7 @@ * * @private */ -WebGLRenderer.prototype.mapBlendModes = function () { +WebGLRenderer.prototype._mapBlendModes = function () { var gl = this.gl; if (!this.blendModes) { diff --git a/src/core/renderers/webgl/managers/WebGLShaderManager.js b/src/core/renderers/webgl/managers/WebGLShaderManager.js index 49e95da..fef071c 100644 --- a/src/core/renderers/webgl/managers/WebGLShaderManager.js +++ b/src/core/renderers/webgl/managers/WebGLShaderManager.js @@ -66,7 +66,9 @@ // listen for context and update necessary shaders var self = this; - this.renderer.on('context', function (gl) { + this.renderer.on('context', function (event) { + var gl = event.data; + // this shader is used for rendering primitives self.primitiveShader = new PrimitiveShader(gl); diff --git a/src/core/renderers/webgl/shaders/Shader.js b/src/core/renderers/webgl/shaders/Shader.js index 17ac61e..7324567 100644 --- a/src/core/renderers/webgl/shaders/Shader.js +++ b/src/core/renderers/webgl/shaders/Shader.js @@ -101,8 +101,8 @@ this.gl.useProgram(this.program); - this.cacheUniformLocations(this.builtInUniforms.concat(Object.keys(this.uniforms))); - this.cacheAttributeLocations(this.builtInAttributes.concat(Object.keys(this.attributes))); + this.cacheUniformLocations(Object.keys(this.uniforms)); + this.cacheAttributeLocations(Object.keys(this.attributes)); }; Shader.prototype.cacheUniformLocations = function (keys) { @@ -123,8 +123,8 @@ // maybe its something to do with the current state of the gl context. // I'm convinced this is a bug in the chrome browser as there is NO reason why this should be returning -1 especially as it only manifests on my chrome pixel // If theres any webGL people that know why could happen please help :) - if (this._shader.attributes.aColor === -1) { - this._shader.attributes.aColor = 2; + if (this.attributes.aColor === -1) { + this.attributes.aColor = 2; } // End worst hack eva // diff --git a/src/core/renderers/webgl/utils/WebGLFastSpriteBatch.js b/src/core/renderers/webgl/utils/WebGLFastSpriteBatch.js index 0b7e842..7e988a7 100644 --- a/src/core/renderers/webgl/utils/WebGLFastSpriteBatch.js +++ b/src/core/renderers/webgl/utils/WebGLFastSpriteBatch.js @@ -135,7 +135,11 @@ */ this.matrix = null; - this.setupContext(); + // listen for context and update necessary buffers + var self = this; + this.renderer.on('context', function () { + self.setupContext(); + }); } WebGLFastSpriteBatch.prototype.constructor = WebGLFastSpriteBatch; diff --git a/src/core/renderers/webgl/utils/WebGLSpriteBatch.js b/src/core/renderers/webgl/utils/WebGLSpriteBatch.js index 3f7f1b8..77d04cc 100644 --- a/src/core/renderers/webgl/utils/WebGLSpriteBatch.js +++ b/src/core/renderers/webgl/utils/WebGLSpriteBatch.js @@ -161,13 +161,22 @@ ' gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;', '}' ]); + + // listen for context and update necessary buffers + var self = this; + this.renderer.on('context', function () { + self.setupContext(); + }); } +WebGLSpriteBatch.prototype.constructor = WebGLSpriteBatch; +module.exports = WebGLSpriteBatch; + /** * @param gl {WebGLContext} the current WebGL drawing context */ -WebGLSpriteBatch.prototype.setContext = function (gl) { - this.gl = gl; +WebGLSpriteBatch.prototype.setupContext = function () { + var gl = this.renderer.gl; // create a couple of buffers this.vertexBuffer = gl.createBuffer(); @@ -462,7 +471,7 @@ return; } - var gl = this.gl; + var gl = this.renderer.gl; var shader; if (this.dirty) { @@ -583,7 +592,7 @@ return; } - var gl = this.gl; + var gl = this.renderer.gl; // bind the current texture gl.bindTexture(gl.TEXTURE_2D, texture._glTextures[gl.id]); @@ -615,13 +624,16 @@ * */ WebGLSpriteBatch.prototype.destroy = function () { + this.renderer.gl.deleteBuffer(this.vertexBuffer); + this.renderer.gl.deleteBuffer(this.indexBuffer); + this.vertices = null; this.indices = null; - this.gl.deleteBuffer( this.vertexBuffer ); - this.gl.deleteBuffer( this.indexBuffer ); + this.vertexBuffer = null; + this.indexBuffer = null; this.currentBaseTexture = null; - this.gl = null; + this.renderer = null; }; diff --git a/src/core/textures/Texture.js b/src/core/textures/Texture.js index 7c47bfe..3c65909 100644 --- a/src/core/textures/Texture.js +++ b/src/core/textures/Texture.js @@ -116,7 +116,7 @@ eventTarget.mixin(Texture.prototype); -Object.defineProperties(BaseTexture.prototype, { +Object.defineProperties(Texture.prototype, { needsUpdate: { get: function () { return this.baseTexture.needsUpdate; diff --git a/src/core/utils/EventData.js b/src/core/utils/EventData.js index dd0059a..5d55a22 100644 --- a/src/core/utils/EventData.js +++ b/src/core/utils/EventData.js @@ -64,6 +64,9 @@ this.timeStamp = Date.now(); } +EventData.prototype.constructor = EventData; +module.exports = EventData; + /** * Stops the propagation of events up the scene graph (prevents bubbling). * diff --git a/src/core/utils/index.js b/src/core/utils/index.js index 551b1a4..8a515f6 100644 --- a/src/core/utils/index.js +++ b/src/core/utils/index.js @@ -7,6 +7,10 @@ _uid: 0, _saidHello: false, + PolyK: require('./PolyK'), + EventData: require('./EventData'), + eventTarget: require('./eventTarget'), + /** * Gets the next uuid * @@ -171,10 +175,6 @@ } }, - PolyK: require('./PolyK'), - EventData: require('./EventData'), - eventTarget: require('./eventTarget'), - // TODO: refactor out this AnimCache: {}, FrameCache: {}, diff --git a/src/loaders/AssetLoader.js b/src/loaders/AssetLoader.js index ddca8b6..20da0cf 100644 --- a/src/loaders/AssetLoader.js +++ b/src/loaders/AssetLoader.js @@ -14,7 +14,7 @@ * * @class * @namespace PIXI - * @mixes EventTarget + * @mixes eventTarget * @param assetURLs {string[]} An array of image/sprite sheet urls that you would like loaded * supported. Supported image formats include 'jpeg', 'jpg', 'png', 'gif'. Supported * sprite sheet data formats only include 'JSON' at this time. Supported bitmap font @@ -59,7 +59,7 @@ AssetLoader.prototype.constructor = AssetLoader; module.exports = AssetLoader; -core.utils.EventTarget.mixin(AssetLoader.prototype); +core.utils.eventTarget.mixin(AssetLoader.prototype); /** * Fired when an item has loaded diff --git a/src/loaders/AtlasLoader.js b/src/loaders/AtlasLoader.js index 770ea2d..5eda286 100644 --- a/src/loaders/AtlasLoader.js +++ b/src/loaders/AtlasLoader.js @@ -10,7 +10,7 @@ * Once the data has been loaded the frames are stored in the PIXI texture cache and can be accessed though Texture.fromFrameId() and Sprite.fromFrameId() * * @class - * @mixes EventTarget + * @mixes eventTarget * @namespace PIXI * @param url {String} The url of the JSON file * @param crossorigin {boolean} Whether requests should be treated as crossorigin @@ -25,7 +25,7 @@ AtlasLoader.prototype.constructor = AtlasLoader; module.exports = AtlasLoader; -core.utils.EventTarget.mixin(AtlasLoader.prototype); +core.utils.eventTarget.mixin(AtlasLoader.prototype); /** * Starts loading the JSON file diff --git a/src/loaders/BitmapFontLoader.js b/src/loaders/BitmapFontLoader.js index 9cbfa2a..8641760 100644 --- a/src/loaders/BitmapFontLoader.js +++ b/src/loaders/BitmapFontLoader.js @@ -8,7 +8,7 @@ * When loaded this class will dispatch a 'loaded' event * * @class - * @mixes EventTarget + * @mixes eventTarget * @namespace PIXI * @param url {String} The url of the sprite sheet JSON file * @param crossorigin {boolean} Whether requests should be treated as crossorigin @@ -48,7 +48,7 @@ BitmapFontLoader.prototype.constructor = BitmapFontLoader; module.exports = BitmapFontLoader; -core.utils.EventTarget.mixin(BitmapFontLoader.prototype); +core.utils.eventTarget.mixin(BitmapFontLoader.prototype); /** * Loads the XML font data diff --git a/src/loaders/ImageLoader.js b/src/loaders/ImageLoader.js index 040517d..e3ff493 100644 --- a/src/loaders/ImageLoader.js +++ b/src/loaders/ImageLoader.js @@ -6,7 +6,7 @@ * When loaded this class will dispatch a 'loaded' event * * @class - * @mixes EventTarget + * @mixes eventTarget * @namespace PIXI * @param url {String} The url of the image * @param crossorigin {boolean} Whether requests should be treated as crossorigin @@ -33,7 +33,7 @@ ImageLoader.prototype.constructor = ImageLoader; module.exports = ImageLoader; -core.utils.EventTarget.mixin(ImageLoader.prototype); +core.utils.eventTarget.mixin(ImageLoader.prototype); /** * Loads image or takes it from cache diff --git a/src/loaders/JsonLoader.js b/src/loaders/JsonLoader.js index 6464946..3279f40 100644 --- a/src/loaders/JsonLoader.js +++ b/src/loaders/JsonLoader.js @@ -9,7 +9,7 @@ * If loading fails this class will dispatch an 'error' event * * @class - * @mixes EventTarget + * @mixes eventTarget * @namespace PIXI * @param url {String} The url of the JSON file * @param crossorigin {boolean} Whether requests should be treated as crossorigin @@ -50,7 +50,7 @@ JsonLoader.prototype.constructor = JsonLoader; module.exports = JsonLoader; -core.utils.EventTarget.mixin(JsonLoader.prototype); +core.utils.eventTarget.mixin(JsonLoader.prototype); /** * Loads the JSON data diff --git a/package.json b/package.json index de301b9..8d6f3b1 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "Chad Engler ", "Richard Davey " ], - "main": "./dist/pixi.js", + "main": "./src/index.js", "homepage": "http://goodboydigital.com/", "bugs": "https://github.com/GoodBoyDigital/pixi.js/issues", "license": "MIT", diff --git a/src/core/display/DisplayObjectContainer.js b/src/core/display/DisplayObjectContainer.js index 47301f8..ce573c5 100644 --- a/src/core/display/DisplayObjectContainer.js +++ b/src/core/display/DisplayObjectContainer.js @@ -1,7 +1,7 @@ var math = require('../math'), DisplayObject = require('./DisplayObject'), RenderTexture = require('../textures/RenderTexture'), - Sprite = require('./Sprite'), + // Sprite = require('./Sprite'), _tempMatrix = new math.Matrix(); /** diff --git a/src/core/display/SpriteBatch.js b/src/core/display/SpriteBatch.js index 67dbfd4..3187777 100644 --- a/src/core/display/SpriteBatch.js +++ b/src/core/display/SpriteBatch.js @@ -31,6 +31,7 @@ SpriteBatch.prototype = Object.create(DisplayObjectContainer.prototype); SpriteBatch.prototype.constructor = SpriteBatch; +module.exports = SpriteBatch; /** * Updates the object transform for rendering diff --git a/src/core/renderers/canvas/CanvasRenderer.js b/src/core/renderers/canvas/CanvasRenderer.js index fc3d6d0..d1c404b 100644 --- a/src/core/renderers/canvas/CanvasRenderer.js +++ b/src/core/renderers/canvas/CanvasRenderer.js @@ -138,14 +138,6 @@ this.smoothProperty = null; - this.currentBlendMode = CONST.blendModes.NORMAL; - - this.blendModes = null; - - this._mapBlendModes(); - - this.resize(width, height); - if (this.context.imageSmoothingEnabled) { this.smoothProperty = 'imageSmoothingEnabled'; } @@ -161,6 +153,14 @@ else if (this.context.msImageSmoothingEnabled) { this.smoothProperty = 'msImageSmoothingEnabled'; } + + this.currentBlendMode = CONST.blendModes.NORMAL; + + this.blendModes = null; + + this._mapBlendModes(); + + this.resize(width, height); } // constructor diff --git a/src/core/renderers/webgl/WebGLRenderer.js b/src/core/renderers/webgl/WebGLRenderer.js index d32d9bf..a7981c7 100644 --- a/src/core/renderers/webgl/WebGLRenderer.js +++ b/src/core/renderers/webgl/WebGLRenderer.js @@ -1,4 +1,5 @@ var WebGLSpriteBatch = require('./utils/WebGLSpriteBatch'), + WebGLFastSpriteBatch = require('./utils/WebGLFastSpriteBatch'), WebGLShaderManager = require('./managers/WebGLShaderManager'), WebGLMaskManager = require('./managers/WebGLMaskManager'), WebGLFilterManager = require('./managers/WebGLFilterManager'), @@ -523,7 +524,7 @@ * * @private */ -WebGLRenderer.prototype.mapBlendModes = function () { +WebGLRenderer.prototype._mapBlendModes = function () { var gl = this.gl; if (!this.blendModes) { diff --git a/src/core/renderers/webgl/managers/WebGLShaderManager.js b/src/core/renderers/webgl/managers/WebGLShaderManager.js index 49e95da..fef071c 100644 --- a/src/core/renderers/webgl/managers/WebGLShaderManager.js +++ b/src/core/renderers/webgl/managers/WebGLShaderManager.js @@ -66,7 +66,9 @@ // listen for context and update necessary shaders var self = this; - this.renderer.on('context', function (gl) { + this.renderer.on('context', function (event) { + var gl = event.data; + // this shader is used for rendering primitives self.primitiveShader = new PrimitiveShader(gl); diff --git a/src/core/renderers/webgl/shaders/Shader.js b/src/core/renderers/webgl/shaders/Shader.js index 17ac61e..7324567 100644 --- a/src/core/renderers/webgl/shaders/Shader.js +++ b/src/core/renderers/webgl/shaders/Shader.js @@ -101,8 +101,8 @@ this.gl.useProgram(this.program); - this.cacheUniformLocations(this.builtInUniforms.concat(Object.keys(this.uniforms))); - this.cacheAttributeLocations(this.builtInAttributes.concat(Object.keys(this.attributes))); + this.cacheUniformLocations(Object.keys(this.uniforms)); + this.cacheAttributeLocations(Object.keys(this.attributes)); }; Shader.prototype.cacheUniformLocations = function (keys) { @@ -123,8 +123,8 @@ // maybe its something to do with the current state of the gl context. // I'm convinced this is a bug in the chrome browser as there is NO reason why this should be returning -1 especially as it only manifests on my chrome pixel // If theres any webGL people that know why could happen please help :) - if (this._shader.attributes.aColor === -1) { - this._shader.attributes.aColor = 2; + if (this.attributes.aColor === -1) { + this.attributes.aColor = 2; } // End worst hack eva // diff --git a/src/core/renderers/webgl/utils/WebGLFastSpriteBatch.js b/src/core/renderers/webgl/utils/WebGLFastSpriteBatch.js index 0b7e842..7e988a7 100644 --- a/src/core/renderers/webgl/utils/WebGLFastSpriteBatch.js +++ b/src/core/renderers/webgl/utils/WebGLFastSpriteBatch.js @@ -135,7 +135,11 @@ */ this.matrix = null; - this.setupContext(); + // listen for context and update necessary buffers + var self = this; + this.renderer.on('context', function () { + self.setupContext(); + }); } WebGLFastSpriteBatch.prototype.constructor = WebGLFastSpriteBatch; diff --git a/src/core/renderers/webgl/utils/WebGLSpriteBatch.js b/src/core/renderers/webgl/utils/WebGLSpriteBatch.js index 3f7f1b8..77d04cc 100644 --- a/src/core/renderers/webgl/utils/WebGLSpriteBatch.js +++ b/src/core/renderers/webgl/utils/WebGLSpriteBatch.js @@ -161,13 +161,22 @@ ' gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;', '}' ]); + + // listen for context and update necessary buffers + var self = this; + this.renderer.on('context', function () { + self.setupContext(); + }); } +WebGLSpriteBatch.prototype.constructor = WebGLSpriteBatch; +module.exports = WebGLSpriteBatch; + /** * @param gl {WebGLContext} the current WebGL drawing context */ -WebGLSpriteBatch.prototype.setContext = function (gl) { - this.gl = gl; +WebGLSpriteBatch.prototype.setupContext = function () { + var gl = this.renderer.gl; // create a couple of buffers this.vertexBuffer = gl.createBuffer(); @@ -462,7 +471,7 @@ return; } - var gl = this.gl; + var gl = this.renderer.gl; var shader; if (this.dirty) { @@ -583,7 +592,7 @@ return; } - var gl = this.gl; + var gl = this.renderer.gl; // bind the current texture gl.bindTexture(gl.TEXTURE_2D, texture._glTextures[gl.id]); @@ -615,13 +624,16 @@ * */ WebGLSpriteBatch.prototype.destroy = function () { + this.renderer.gl.deleteBuffer(this.vertexBuffer); + this.renderer.gl.deleteBuffer(this.indexBuffer); + this.vertices = null; this.indices = null; - this.gl.deleteBuffer( this.vertexBuffer ); - this.gl.deleteBuffer( this.indexBuffer ); + this.vertexBuffer = null; + this.indexBuffer = null; this.currentBaseTexture = null; - this.gl = null; + this.renderer = null; }; diff --git a/src/core/textures/Texture.js b/src/core/textures/Texture.js index 7c47bfe..3c65909 100644 --- a/src/core/textures/Texture.js +++ b/src/core/textures/Texture.js @@ -116,7 +116,7 @@ eventTarget.mixin(Texture.prototype); -Object.defineProperties(BaseTexture.prototype, { +Object.defineProperties(Texture.prototype, { needsUpdate: { get: function () { return this.baseTexture.needsUpdate; diff --git a/src/core/utils/EventData.js b/src/core/utils/EventData.js index dd0059a..5d55a22 100644 --- a/src/core/utils/EventData.js +++ b/src/core/utils/EventData.js @@ -64,6 +64,9 @@ this.timeStamp = Date.now(); } +EventData.prototype.constructor = EventData; +module.exports = EventData; + /** * Stops the propagation of events up the scene graph (prevents bubbling). * diff --git a/src/core/utils/index.js b/src/core/utils/index.js index 551b1a4..8a515f6 100644 --- a/src/core/utils/index.js +++ b/src/core/utils/index.js @@ -7,6 +7,10 @@ _uid: 0, _saidHello: false, + PolyK: require('./PolyK'), + EventData: require('./EventData'), + eventTarget: require('./eventTarget'), + /** * Gets the next uuid * @@ -171,10 +175,6 @@ } }, - PolyK: require('./PolyK'), - EventData: require('./EventData'), - eventTarget: require('./eventTarget'), - // TODO: refactor out this AnimCache: {}, FrameCache: {}, diff --git a/src/loaders/AssetLoader.js b/src/loaders/AssetLoader.js index ddca8b6..20da0cf 100644 --- a/src/loaders/AssetLoader.js +++ b/src/loaders/AssetLoader.js @@ -14,7 +14,7 @@ * * @class * @namespace PIXI - * @mixes EventTarget + * @mixes eventTarget * @param assetURLs {string[]} An array of image/sprite sheet urls that you would like loaded * supported. Supported image formats include 'jpeg', 'jpg', 'png', 'gif'. Supported * sprite sheet data formats only include 'JSON' at this time. Supported bitmap font @@ -59,7 +59,7 @@ AssetLoader.prototype.constructor = AssetLoader; module.exports = AssetLoader; -core.utils.EventTarget.mixin(AssetLoader.prototype); +core.utils.eventTarget.mixin(AssetLoader.prototype); /** * Fired when an item has loaded diff --git a/src/loaders/AtlasLoader.js b/src/loaders/AtlasLoader.js index 770ea2d..5eda286 100644 --- a/src/loaders/AtlasLoader.js +++ b/src/loaders/AtlasLoader.js @@ -10,7 +10,7 @@ * Once the data has been loaded the frames are stored in the PIXI texture cache and can be accessed though Texture.fromFrameId() and Sprite.fromFrameId() * * @class - * @mixes EventTarget + * @mixes eventTarget * @namespace PIXI * @param url {String} The url of the JSON file * @param crossorigin {boolean} Whether requests should be treated as crossorigin @@ -25,7 +25,7 @@ AtlasLoader.prototype.constructor = AtlasLoader; module.exports = AtlasLoader; -core.utils.EventTarget.mixin(AtlasLoader.prototype); +core.utils.eventTarget.mixin(AtlasLoader.prototype); /** * Starts loading the JSON file diff --git a/src/loaders/BitmapFontLoader.js b/src/loaders/BitmapFontLoader.js index 9cbfa2a..8641760 100644 --- a/src/loaders/BitmapFontLoader.js +++ b/src/loaders/BitmapFontLoader.js @@ -8,7 +8,7 @@ * When loaded this class will dispatch a 'loaded' event * * @class - * @mixes EventTarget + * @mixes eventTarget * @namespace PIXI * @param url {String} The url of the sprite sheet JSON file * @param crossorigin {boolean} Whether requests should be treated as crossorigin @@ -48,7 +48,7 @@ BitmapFontLoader.prototype.constructor = BitmapFontLoader; module.exports = BitmapFontLoader; -core.utils.EventTarget.mixin(BitmapFontLoader.prototype); +core.utils.eventTarget.mixin(BitmapFontLoader.prototype); /** * Loads the XML font data diff --git a/src/loaders/ImageLoader.js b/src/loaders/ImageLoader.js index 040517d..e3ff493 100644 --- a/src/loaders/ImageLoader.js +++ b/src/loaders/ImageLoader.js @@ -6,7 +6,7 @@ * When loaded this class will dispatch a 'loaded' event * * @class - * @mixes EventTarget + * @mixes eventTarget * @namespace PIXI * @param url {String} The url of the image * @param crossorigin {boolean} Whether requests should be treated as crossorigin @@ -33,7 +33,7 @@ ImageLoader.prototype.constructor = ImageLoader; module.exports = ImageLoader; -core.utils.EventTarget.mixin(ImageLoader.prototype); +core.utils.eventTarget.mixin(ImageLoader.prototype); /** * Loads image or takes it from cache diff --git a/src/loaders/JsonLoader.js b/src/loaders/JsonLoader.js index 6464946..3279f40 100644 --- a/src/loaders/JsonLoader.js +++ b/src/loaders/JsonLoader.js @@ -9,7 +9,7 @@ * If loading fails this class will dispatch an 'error' event * * @class - * @mixes EventTarget + * @mixes eventTarget * @namespace PIXI * @param url {String} The url of the JSON file * @param crossorigin {boolean} Whether requests should be treated as crossorigin @@ -50,7 +50,7 @@ JsonLoader.prototype.constructor = JsonLoader; module.exports = JsonLoader; -core.utils.EventTarget.mixin(JsonLoader.prototype); +core.utils.eventTarget.mixin(JsonLoader.prototype); /** * Loads the JSON data diff --git a/src/loaders/SpineLoader.js b/src/loaders/SpineLoader.js index 28685df..51aaddb 100644 --- a/src/loaders/SpineLoader.js +++ b/src/loaders/SpineLoader.js @@ -19,7 +19,7 @@ * When loaded this class will dispatch a "loaded" event * * @class - * @mixes EventTarget + * @mixes eventTarget * @namespace PIXI * @param url {String} The url of the JSON file * @param crossorigin {boolean} Whether requests should be treated as crossorigin @@ -51,7 +51,7 @@ SpineLoader.prototype.constructor = SpineLoader; module.exports = SpineLoader; -core.utils.EventTarget.mixin(SpineLoader.prototype); +core.utils.eventTarget.mixin(SpineLoader.prototype); /** * Loads the JSON data diff --git a/package.json b/package.json index de301b9..8d6f3b1 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "Chad Engler ", "Richard Davey " ], - "main": "./dist/pixi.js", + "main": "./src/index.js", "homepage": "http://goodboydigital.com/", "bugs": "https://github.com/GoodBoyDigital/pixi.js/issues", "license": "MIT", diff --git a/src/core/display/DisplayObjectContainer.js b/src/core/display/DisplayObjectContainer.js index 47301f8..ce573c5 100644 --- a/src/core/display/DisplayObjectContainer.js +++ b/src/core/display/DisplayObjectContainer.js @@ -1,7 +1,7 @@ var math = require('../math'), DisplayObject = require('./DisplayObject'), RenderTexture = require('../textures/RenderTexture'), - Sprite = require('./Sprite'), + // Sprite = require('./Sprite'), _tempMatrix = new math.Matrix(); /** diff --git a/src/core/display/SpriteBatch.js b/src/core/display/SpriteBatch.js index 67dbfd4..3187777 100644 --- a/src/core/display/SpriteBatch.js +++ b/src/core/display/SpriteBatch.js @@ -31,6 +31,7 @@ SpriteBatch.prototype = Object.create(DisplayObjectContainer.prototype); SpriteBatch.prototype.constructor = SpriteBatch; +module.exports = SpriteBatch; /** * Updates the object transform for rendering diff --git a/src/core/renderers/canvas/CanvasRenderer.js b/src/core/renderers/canvas/CanvasRenderer.js index fc3d6d0..d1c404b 100644 --- a/src/core/renderers/canvas/CanvasRenderer.js +++ b/src/core/renderers/canvas/CanvasRenderer.js @@ -138,14 +138,6 @@ this.smoothProperty = null; - this.currentBlendMode = CONST.blendModes.NORMAL; - - this.blendModes = null; - - this._mapBlendModes(); - - this.resize(width, height); - if (this.context.imageSmoothingEnabled) { this.smoothProperty = 'imageSmoothingEnabled'; } @@ -161,6 +153,14 @@ else if (this.context.msImageSmoothingEnabled) { this.smoothProperty = 'msImageSmoothingEnabled'; } + + this.currentBlendMode = CONST.blendModes.NORMAL; + + this.blendModes = null; + + this._mapBlendModes(); + + this.resize(width, height); } // constructor diff --git a/src/core/renderers/webgl/WebGLRenderer.js b/src/core/renderers/webgl/WebGLRenderer.js index d32d9bf..a7981c7 100644 --- a/src/core/renderers/webgl/WebGLRenderer.js +++ b/src/core/renderers/webgl/WebGLRenderer.js @@ -1,4 +1,5 @@ var WebGLSpriteBatch = require('./utils/WebGLSpriteBatch'), + WebGLFastSpriteBatch = require('./utils/WebGLFastSpriteBatch'), WebGLShaderManager = require('./managers/WebGLShaderManager'), WebGLMaskManager = require('./managers/WebGLMaskManager'), WebGLFilterManager = require('./managers/WebGLFilterManager'), @@ -523,7 +524,7 @@ * * @private */ -WebGLRenderer.prototype.mapBlendModes = function () { +WebGLRenderer.prototype._mapBlendModes = function () { var gl = this.gl; if (!this.blendModes) { diff --git a/src/core/renderers/webgl/managers/WebGLShaderManager.js b/src/core/renderers/webgl/managers/WebGLShaderManager.js index 49e95da..fef071c 100644 --- a/src/core/renderers/webgl/managers/WebGLShaderManager.js +++ b/src/core/renderers/webgl/managers/WebGLShaderManager.js @@ -66,7 +66,9 @@ // listen for context and update necessary shaders var self = this; - this.renderer.on('context', function (gl) { + this.renderer.on('context', function (event) { + var gl = event.data; + // this shader is used for rendering primitives self.primitiveShader = new PrimitiveShader(gl); diff --git a/src/core/renderers/webgl/shaders/Shader.js b/src/core/renderers/webgl/shaders/Shader.js index 17ac61e..7324567 100644 --- a/src/core/renderers/webgl/shaders/Shader.js +++ b/src/core/renderers/webgl/shaders/Shader.js @@ -101,8 +101,8 @@ this.gl.useProgram(this.program); - this.cacheUniformLocations(this.builtInUniforms.concat(Object.keys(this.uniforms))); - this.cacheAttributeLocations(this.builtInAttributes.concat(Object.keys(this.attributes))); + this.cacheUniformLocations(Object.keys(this.uniforms)); + this.cacheAttributeLocations(Object.keys(this.attributes)); }; Shader.prototype.cacheUniformLocations = function (keys) { @@ -123,8 +123,8 @@ // maybe its something to do with the current state of the gl context. // I'm convinced this is a bug in the chrome browser as there is NO reason why this should be returning -1 especially as it only manifests on my chrome pixel // If theres any webGL people that know why could happen please help :) - if (this._shader.attributes.aColor === -1) { - this._shader.attributes.aColor = 2; + if (this.attributes.aColor === -1) { + this.attributes.aColor = 2; } // End worst hack eva // diff --git a/src/core/renderers/webgl/utils/WebGLFastSpriteBatch.js b/src/core/renderers/webgl/utils/WebGLFastSpriteBatch.js index 0b7e842..7e988a7 100644 --- a/src/core/renderers/webgl/utils/WebGLFastSpriteBatch.js +++ b/src/core/renderers/webgl/utils/WebGLFastSpriteBatch.js @@ -135,7 +135,11 @@ */ this.matrix = null; - this.setupContext(); + // listen for context and update necessary buffers + var self = this; + this.renderer.on('context', function () { + self.setupContext(); + }); } WebGLFastSpriteBatch.prototype.constructor = WebGLFastSpriteBatch; diff --git a/src/core/renderers/webgl/utils/WebGLSpriteBatch.js b/src/core/renderers/webgl/utils/WebGLSpriteBatch.js index 3f7f1b8..77d04cc 100644 --- a/src/core/renderers/webgl/utils/WebGLSpriteBatch.js +++ b/src/core/renderers/webgl/utils/WebGLSpriteBatch.js @@ -161,13 +161,22 @@ ' gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;', '}' ]); + + // listen for context and update necessary buffers + var self = this; + this.renderer.on('context', function () { + self.setupContext(); + }); } +WebGLSpriteBatch.prototype.constructor = WebGLSpriteBatch; +module.exports = WebGLSpriteBatch; + /** * @param gl {WebGLContext} the current WebGL drawing context */ -WebGLSpriteBatch.prototype.setContext = function (gl) { - this.gl = gl; +WebGLSpriteBatch.prototype.setupContext = function () { + var gl = this.renderer.gl; // create a couple of buffers this.vertexBuffer = gl.createBuffer(); @@ -462,7 +471,7 @@ return; } - var gl = this.gl; + var gl = this.renderer.gl; var shader; if (this.dirty) { @@ -583,7 +592,7 @@ return; } - var gl = this.gl; + var gl = this.renderer.gl; // bind the current texture gl.bindTexture(gl.TEXTURE_2D, texture._glTextures[gl.id]); @@ -615,13 +624,16 @@ * */ WebGLSpriteBatch.prototype.destroy = function () { + this.renderer.gl.deleteBuffer(this.vertexBuffer); + this.renderer.gl.deleteBuffer(this.indexBuffer); + this.vertices = null; this.indices = null; - this.gl.deleteBuffer( this.vertexBuffer ); - this.gl.deleteBuffer( this.indexBuffer ); + this.vertexBuffer = null; + this.indexBuffer = null; this.currentBaseTexture = null; - this.gl = null; + this.renderer = null; }; diff --git a/src/core/textures/Texture.js b/src/core/textures/Texture.js index 7c47bfe..3c65909 100644 --- a/src/core/textures/Texture.js +++ b/src/core/textures/Texture.js @@ -116,7 +116,7 @@ eventTarget.mixin(Texture.prototype); -Object.defineProperties(BaseTexture.prototype, { +Object.defineProperties(Texture.prototype, { needsUpdate: { get: function () { return this.baseTexture.needsUpdate; diff --git a/src/core/utils/EventData.js b/src/core/utils/EventData.js index dd0059a..5d55a22 100644 --- a/src/core/utils/EventData.js +++ b/src/core/utils/EventData.js @@ -64,6 +64,9 @@ this.timeStamp = Date.now(); } +EventData.prototype.constructor = EventData; +module.exports = EventData; + /** * Stops the propagation of events up the scene graph (prevents bubbling). * diff --git a/src/core/utils/index.js b/src/core/utils/index.js index 551b1a4..8a515f6 100644 --- a/src/core/utils/index.js +++ b/src/core/utils/index.js @@ -7,6 +7,10 @@ _uid: 0, _saidHello: false, + PolyK: require('./PolyK'), + EventData: require('./EventData'), + eventTarget: require('./eventTarget'), + /** * Gets the next uuid * @@ -171,10 +175,6 @@ } }, - PolyK: require('./PolyK'), - EventData: require('./EventData'), - eventTarget: require('./eventTarget'), - // TODO: refactor out this AnimCache: {}, FrameCache: {}, diff --git a/src/loaders/AssetLoader.js b/src/loaders/AssetLoader.js index ddca8b6..20da0cf 100644 --- a/src/loaders/AssetLoader.js +++ b/src/loaders/AssetLoader.js @@ -14,7 +14,7 @@ * * @class * @namespace PIXI - * @mixes EventTarget + * @mixes eventTarget * @param assetURLs {string[]} An array of image/sprite sheet urls that you would like loaded * supported. Supported image formats include 'jpeg', 'jpg', 'png', 'gif'. Supported * sprite sheet data formats only include 'JSON' at this time. Supported bitmap font @@ -59,7 +59,7 @@ AssetLoader.prototype.constructor = AssetLoader; module.exports = AssetLoader; -core.utils.EventTarget.mixin(AssetLoader.prototype); +core.utils.eventTarget.mixin(AssetLoader.prototype); /** * Fired when an item has loaded diff --git a/src/loaders/AtlasLoader.js b/src/loaders/AtlasLoader.js index 770ea2d..5eda286 100644 --- a/src/loaders/AtlasLoader.js +++ b/src/loaders/AtlasLoader.js @@ -10,7 +10,7 @@ * Once the data has been loaded the frames are stored in the PIXI texture cache and can be accessed though Texture.fromFrameId() and Sprite.fromFrameId() * * @class - * @mixes EventTarget + * @mixes eventTarget * @namespace PIXI * @param url {String} The url of the JSON file * @param crossorigin {boolean} Whether requests should be treated as crossorigin @@ -25,7 +25,7 @@ AtlasLoader.prototype.constructor = AtlasLoader; module.exports = AtlasLoader; -core.utils.EventTarget.mixin(AtlasLoader.prototype); +core.utils.eventTarget.mixin(AtlasLoader.prototype); /** * Starts loading the JSON file diff --git a/src/loaders/BitmapFontLoader.js b/src/loaders/BitmapFontLoader.js index 9cbfa2a..8641760 100644 --- a/src/loaders/BitmapFontLoader.js +++ b/src/loaders/BitmapFontLoader.js @@ -8,7 +8,7 @@ * When loaded this class will dispatch a 'loaded' event * * @class - * @mixes EventTarget + * @mixes eventTarget * @namespace PIXI * @param url {String} The url of the sprite sheet JSON file * @param crossorigin {boolean} Whether requests should be treated as crossorigin @@ -48,7 +48,7 @@ BitmapFontLoader.prototype.constructor = BitmapFontLoader; module.exports = BitmapFontLoader; -core.utils.EventTarget.mixin(BitmapFontLoader.prototype); +core.utils.eventTarget.mixin(BitmapFontLoader.prototype); /** * Loads the XML font data diff --git a/src/loaders/ImageLoader.js b/src/loaders/ImageLoader.js index 040517d..e3ff493 100644 --- a/src/loaders/ImageLoader.js +++ b/src/loaders/ImageLoader.js @@ -6,7 +6,7 @@ * When loaded this class will dispatch a 'loaded' event * * @class - * @mixes EventTarget + * @mixes eventTarget * @namespace PIXI * @param url {String} The url of the image * @param crossorigin {boolean} Whether requests should be treated as crossorigin @@ -33,7 +33,7 @@ ImageLoader.prototype.constructor = ImageLoader; module.exports = ImageLoader; -core.utils.EventTarget.mixin(ImageLoader.prototype); +core.utils.eventTarget.mixin(ImageLoader.prototype); /** * Loads image or takes it from cache diff --git a/src/loaders/JsonLoader.js b/src/loaders/JsonLoader.js index 6464946..3279f40 100644 --- a/src/loaders/JsonLoader.js +++ b/src/loaders/JsonLoader.js @@ -9,7 +9,7 @@ * If loading fails this class will dispatch an 'error' event * * @class - * @mixes EventTarget + * @mixes eventTarget * @namespace PIXI * @param url {String} The url of the JSON file * @param crossorigin {boolean} Whether requests should be treated as crossorigin @@ -50,7 +50,7 @@ JsonLoader.prototype.constructor = JsonLoader; module.exports = JsonLoader; -core.utils.EventTarget.mixin(JsonLoader.prototype); +core.utils.eventTarget.mixin(JsonLoader.prototype); /** * Loads the JSON data diff --git a/src/loaders/SpineLoader.js b/src/loaders/SpineLoader.js index 28685df..51aaddb 100644 --- a/src/loaders/SpineLoader.js +++ b/src/loaders/SpineLoader.js @@ -19,7 +19,7 @@ * When loaded this class will dispatch a "loaded" event * * @class - * @mixes EventTarget + * @mixes eventTarget * @namespace PIXI * @param url {String} The url of the JSON file * @param crossorigin {boolean} Whether requests should be treated as crossorigin @@ -51,7 +51,7 @@ SpineLoader.prototype.constructor = SpineLoader; module.exports = SpineLoader; -core.utils.EventTarget.mixin(SpineLoader.prototype); +core.utils.eventTarget.mixin(SpineLoader.prototype); /** * Loads the JSON data diff --git a/src/loaders/SpineTextureLoader.js b/src/loaders/SpineTextureLoader.js index 297ca18..61c51c0 100644 --- a/src/loaders/SpineTextureLoader.js +++ b/src/loaders/SpineTextureLoader.js @@ -4,7 +4,7 @@ * Supporting class to load images from spine atlases as per spine spec. * * @class - * @mixes EventTarget + * @mixes eventTarget * @namespace PIXI * @param basePath {string} Tha base path where to look for the images to be loaded * @param crossorigin {boolean} Whether requests should be treated as crossorigin @@ -18,7 +18,7 @@ SpineTextureLoader.prototype.constructor = SpineTextureLoader; module.exports = SpineTextureLoader; -core.utils.EventTarget.mixin(SpineTextureLoader.prototype); +core.utils.eventTarget.mixin(SpineTextureLoader.prototype); /** * Starts loading a base texture as per spine specification diff --git a/package.json b/package.json index de301b9..8d6f3b1 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "Chad Engler ", "Richard Davey " ], - "main": "./dist/pixi.js", + "main": "./src/index.js", "homepage": "http://goodboydigital.com/", "bugs": "https://github.com/GoodBoyDigital/pixi.js/issues", "license": "MIT", diff --git a/src/core/display/DisplayObjectContainer.js b/src/core/display/DisplayObjectContainer.js index 47301f8..ce573c5 100644 --- a/src/core/display/DisplayObjectContainer.js +++ b/src/core/display/DisplayObjectContainer.js @@ -1,7 +1,7 @@ var math = require('../math'), DisplayObject = require('./DisplayObject'), RenderTexture = require('../textures/RenderTexture'), - Sprite = require('./Sprite'), + // Sprite = require('./Sprite'), _tempMatrix = new math.Matrix(); /** diff --git a/src/core/display/SpriteBatch.js b/src/core/display/SpriteBatch.js index 67dbfd4..3187777 100644 --- a/src/core/display/SpriteBatch.js +++ b/src/core/display/SpriteBatch.js @@ -31,6 +31,7 @@ SpriteBatch.prototype = Object.create(DisplayObjectContainer.prototype); SpriteBatch.prototype.constructor = SpriteBatch; +module.exports = SpriteBatch; /** * Updates the object transform for rendering diff --git a/src/core/renderers/canvas/CanvasRenderer.js b/src/core/renderers/canvas/CanvasRenderer.js index fc3d6d0..d1c404b 100644 --- a/src/core/renderers/canvas/CanvasRenderer.js +++ b/src/core/renderers/canvas/CanvasRenderer.js @@ -138,14 +138,6 @@ this.smoothProperty = null; - this.currentBlendMode = CONST.blendModes.NORMAL; - - this.blendModes = null; - - this._mapBlendModes(); - - this.resize(width, height); - if (this.context.imageSmoothingEnabled) { this.smoothProperty = 'imageSmoothingEnabled'; } @@ -161,6 +153,14 @@ else if (this.context.msImageSmoothingEnabled) { this.smoothProperty = 'msImageSmoothingEnabled'; } + + this.currentBlendMode = CONST.blendModes.NORMAL; + + this.blendModes = null; + + this._mapBlendModes(); + + this.resize(width, height); } // constructor diff --git a/src/core/renderers/webgl/WebGLRenderer.js b/src/core/renderers/webgl/WebGLRenderer.js index d32d9bf..a7981c7 100644 --- a/src/core/renderers/webgl/WebGLRenderer.js +++ b/src/core/renderers/webgl/WebGLRenderer.js @@ -1,4 +1,5 @@ var WebGLSpriteBatch = require('./utils/WebGLSpriteBatch'), + WebGLFastSpriteBatch = require('./utils/WebGLFastSpriteBatch'), WebGLShaderManager = require('./managers/WebGLShaderManager'), WebGLMaskManager = require('./managers/WebGLMaskManager'), WebGLFilterManager = require('./managers/WebGLFilterManager'), @@ -523,7 +524,7 @@ * * @private */ -WebGLRenderer.prototype.mapBlendModes = function () { +WebGLRenderer.prototype._mapBlendModes = function () { var gl = this.gl; if (!this.blendModes) { diff --git a/src/core/renderers/webgl/managers/WebGLShaderManager.js b/src/core/renderers/webgl/managers/WebGLShaderManager.js index 49e95da..fef071c 100644 --- a/src/core/renderers/webgl/managers/WebGLShaderManager.js +++ b/src/core/renderers/webgl/managers/WebGLShaderManager.js @@ -66,7 +66,9 @@ // listen for context and update necessary shaders var self = this; - this.renderer.on('context', function (gl) { + this.renderer.on('context', function (event) { + var gl = event.data; + // this shader is used for rendering primitives self.primitiveShader = new PrimitiveShader(gl); diff --git a/src/core/renderers/webgl/shaders/Shader.js b/src/core/renderers/webgl/shaders/Shader.js index 17ac61e..7324567 100644 --- a/src/core/renderers/webgl/shaders/Shader.js +++ b/src/core/renderers/webgl/shaders/Shader.js @@ -101,8 +101,8 @@ this.gl.useProgram(this.program); - this.cacheUniformLocations(this.builtInUniforms.concat(Object.keys(this.uniforms))); - this.cacheAttributeLocations(this.builtInAttributes.concat(Object.keys(this.attributes))); + this.cacheUniformLocations(Object.keys(this.uniforms)); + this.cacheAttributeLocations(Object.keys(this.attributes)); }; Shader.prototype.cacheUniformLocations = function (keys) { @@ -123,8 +123,8 @@ // maybe its something to do with the current state of the gl context. // I'm convinced this is a bug in the chrome browser as there is NO reason why this should be returning -1 especially as it only manifests on my chrome pixel // If theres any webGL people that know why could happen please help :) - if (this._shader.attributes.aColor === -1) { - this._shader.attributes.aColor = 2; + if (this.attributes.aColor === -1) { + this.attributes.aColor = 2; } // End worst hack eva // diff --git a/src/core/renderers/webgl/utils/WebGLFastSpriteBatch.js b/src/core/renderers/webgl/utils/WebGLFastSpriteBatch.js index 0b7e842..7e988a7 100644 --- a/src/core/renderers/webgl/utils/WebGLFastSpriteBatch.js +++ b/src/core/renderers/webgl/utils/WebGLFastSpriteBatch.js @@ -135,7 +135,11 @@ */ this.matrix = null; - this.setupContext(); + // listen for context and update necessary buffers + var self = this; + this.renderer.on('context', function () { + self.setupContext(); + }); } WebGLFastSpriteBatch.prototype.constructor = WebGLFastSpriteBatch; diff --git a/src/core/renderers/webgl/utils/WebGLSpriteBatch.js b/src/core/renderers/webgl/utils/WebGLSpriteBatch.js index 3f7f1b8..77d04cc 100644 --- a/src/core/renderers/webgl/utils/WebGLSpriteBatch.js +++ b/src/core/renderers/webgl/utils/WebGLSpriteBatch.js @@ -161,13 +161,22 @@ ' gl_FragColor = texture2D(uSampler, vTextureCoord) * vColor ;', '}' ]); + + // listen for context and update necessary buffers + var self = this; + this.renderer.on('context', function () { + self.setupContext(); + }); } +WebGLSpriteBatch.prototype.constructor = WebGLSpriteBatch; +module.exports = WebGLSpriteBatch; + /** * @param gl {WebGLContext} the current WebGL drawing context */ -WebGLSpriteBatch.prototype.setContext = function (gl) { - this.gl = gl; +WebGLSpriteBatch.prototype.setupContext = function () { + var gl = this.renderer.gl; // create a couple of buffers this.vertexBuffer = gl.createBuffer(); @@ -462,7 +471,7 @@ return; } - var gl = this.gl; + var gl = this.renderer.gl; var shader; if (this.dirty) { @@ -583,7 +592,7 @@ return; } - var gl = this.gl; + var gl = this.renderer.gl; // bind the current texture gl.bindTexture(gl.TEXTURE_2D, texture._glTextures[gl.id]); @@ -615,13 +624,16 @@ * */ WebGLSpriteBatch.prototype.destroy = function () { + this.renderer.gl.deleteBuffer(this.vertexBuffer); + this.renderer.gl.deleteBuffer(this.indexBuffer); + this.vertices = null; this.indices = null; - this.gl.deleteBuffer( this.vertexBuffer ); - this.gl.deleteBuffer( this.indexBuffer ); + this.vertexBuffer = null; + this.indexBuffer = null; this.currentBaseTexture = null; - this.gl = null; + this.renderer = null; }; diff --git a/src/core/textures/Texture.js b/src/core/textures/Texture.js index 7c47bfe..3c65909 100644 --- a/src/core/textures/Texture.js +++ b/src/core/textures/Texture.js @@ -116,7 +116,7 @@ eventTarget.mixin(Texture.prototype); -Object.defineProperties(BaseTexture.prototype, { +Object.defineProperties(Texture.prototype, { needsUpdate: { get: function () { return this.baseTexture.needsUpdate; diff --git a/src/core/utils/EventData.js b/src/core/utils/EventData.js index dd0059a..5d55a22 100644 --- a/src/core/utils/EventData.js +++ b/src/core/utils/EventData.js @@ -64,6 +64,9 @@ this.timeStamp = Date.now(); } +EventData.prototype.constructor = EventData; +module.exports = EventData; + /** * Stops the propagation of events up the scene graph (prevents bubbling). * diff --git a/src/core/utils/index.js b/src/core/utils/index.js index 551b1a4..8a515f6 100644 --- a/src/core/utils/index.js +++ b/src/core/utils/index.js @@ -7,6 +7,10 @@ _uid: 0, _saidHello: false, + PolyK: require('./PolyK'), + EventData: require('./EventData'), + eventTarget: require('./eventTarget'), + /** * Gets the next uuid * @@ -171,10 +175,6 @@ } }, - PolyK: require('./PolyK'), - EventData: require('./EventData'), - eventTarget: require('./eventTarget'), - // TODO: refactor out this AnimCache: {}, FrameCache: {}, diff --git a/src/loaders/AssetLoader.js b/src/loaders/AssetLoader.js index ddca8b6..20da0cf 100644 --- a/src/loaders/AssetLoader.js +++ b/src/loaders/AssetLoader.js @@ -14,7 +14,7 @@ * * @class * @namespace PIXI - * @mixes EventTarget + * @mixes eventTarget * @param assetURLs {string[]} An array of image/sprite sheet urls that you would like loaded * supported. Supported image formats include 'jpeg', 'jpg', 'png', 'gif'. Supported * sprite sheet data formats only include 'JSON' at this time. Supported bitmap font @@ -59,7 +59,7 @@ AssetLoader.prototype.constructor = AssetLoader; module.exports = AssetLoader; -core.utils.EventTarget.mixin(AssetLoader.prototype); +core.utils.eventTarget.mixin(AssetLoader.prototype); /** * Fired when an item has loaded diff --git a/src/loaders/AtlasLoader.js b/src/loaders/AtlasLoader.js index 770ea2d..5eda286 100644 --- a/src/loaders/AtlasLoader.js +++ b/src/loaders/AtlasLoader.js @@ -10,7 +10,7 @@ * Once the data has been loaded the frames are stored in the PIXI texture cache and can be accessed though Texture.fromFrameId() and Sprite.fromFrameId() * * @class - * @mixes EventTarget + * @mixes eventTarget * @namespace PIXI * @param url {String} The url of the JSON file * @param crossorigin {boolean} Whether requests should be treated as crossorigin @@ -25,7 +25,7 @@ AtlasLoader.prototype.constructor = AtlasLoader; module.exports = AtlasLoader; -core.utils.EventTarget.mixin(AtlasLoader.prototype); +core.utils.eventTarget.mixin(AtlasLoader.prototype); /** * Starts loading the JSON file diff --git a/src/loaders/BitmapFontLoader.js b/src/loaders/BitmapFontLoader.js index 9cbfa2a..8641760 100644 --- a/src/loaders/BitmapFontLoader.js +++ b/src/loaders/BitmapFontLoader.js @@ -8,7 +8,7 @@ * When loaded this class will dispatch a 'loaded' event * * @class - * @mixes EventTarget + * @mixes eventTarget * @namespace PIXI * @param url {String} The url of the sprite sheet JSON file * @param crossorigin {boolean} Whether requests should be treated as crossorigin @@ -48,7 +48,7 @@ BitmapFontLoader.prototype.constructor = BitmapFontLoader; module.exports = BitmapFontLoader; -core.utils.EventTarget.mixin(BitmapFontLoader.prototype); +core.utils.eventTarget.mixin(BitmapFontLoader.prototype); /** * Loads the XML font data diff --git a/src/loaders/ImageLoader.js b/src/loaders/ImageLoader.js index 040517d..e3ff493 100644 --- a/src/loaders/ImageLoader.js +++ b/src/loaders/ImageLoader.js @@ -6,7 +6,7 @@ * When loaded this class will dispatch a 'loaded' event * * @class - * @mixes EventTarget + * @mixes eventTarget * @namespace PIXI * @param url {String} The url of the image * @param crossorigin {boolean} Whether requests should be treated as crossorigin @@ -33,7 +33,7 @@ ImageLoader.prototype.constructor = ImageLoader; module.exports = ImageLoader; -core.utils.EventTarget.mixin(ImageLoader.prototype); +core.utils.eventTarget.mixin(ImageLoader.prototype); /** * Loads image or takes it from cache diff --git a/src/loaders/JsonLoader.js b/src/loaders/JsonLoader.js index 6464946..3279f40 100644 --- a/src/loaders/JsonLoader.js +++ b/src/loaders/JsonLoader.js @@ -9,7 +9,7 @@ * If loading fails this class will dispatch an 'error' event * * @class - * @mixes EventTarget + * @mixes eventTarget * @namespace PIXI * @param url {String} The url of the JSON file * @param crossorigin {boolean} Whether requests should be treated as crossorigin @@ -50,7 +50,7 @@ JsonLoader.prototype.constructor = JsonLoader; module.exports = JsonLoader; -core.utils.EventTarget.mixin(JsonLoader.prototype); +core.utils.eventTarget.mixin(JsonLoader.prototype); /** * Loads the JSON data diff --git a/src/loaders/SpineLoader.js b/src/loaders/SpineLoader.js index 28685df..51aaddb 100644 --- a/src/loaders/SpineLoader.js +++ b/src/loaders/SpineLoader.js @@ -19,7 +19,7 @@ * When loaded this class will dispatch a "loaded" event * * @class - * @mixes EventTarget + * @mixes eventTarget * @namespace PIXI * @param url {String} The url of the JSON file * @param crossorigin {boolean} Whether requests should be treated as crossorigin @@ -51,7 +51,7 @@ SpineLoader.prototype.constructor = SpineLoader; module.exports = SpineLoader; -core.utils.EventTarget.mixin(SpineLoader.prototype); +core.utils.eventTarget.mixin(SpineLoader.prototype); /** * Loads the JSON data diff --git a/src/loaders/SpineTextureLoader.js b/src/loaders/SpineTextureLoader.js index 297ca18..61c51c0 100644 --- a/src/loaders/SpineTextureLoader.js +++ b/src/loaders/SpineTextureLoader.js @@ -4,7 +4,7 @@ * Supporting class to load images from spine atlases as per spine spec. * * @class - * @mixes EventTarget + * @mixes eventTarget * @namespace PIXI * @param basePath {string} Tha base path where to look for the images to be loaded * @param crossorigin {boolean} Whether requests should be treated as crossorigin @@ -18,7 +18,7 @@ SpineTextureLoader.prototype.constructor = SpineTextureLoader; module.exports = SpineTextureLoader; -core.utils.EventTarget.mixin(SpineTextureLoader.prototype); +core.utils.eventTarget.mixin(SpineTextureLoader.prototype); /** * Starts loading a base texture as per spine specification diff --git a/src/loaders/SpriteSheetLoader.js b/src/loaders/SpriteSheetLoader.js index 67094ca..5ee79df 100644 --- a/src/loaders/SpriteSheetLoader.js +++ b/src/loaders/SpriteSheetLoader.js @@ -11,7 +11,7 @@ * When loaded this class will dispatch a 'loaded' event * * @class - * @mixes EventTarget + * @mixes eventTarget * @namespace PIXI * @param url {String} The url of the sprite sheet JSON file * @param crossorigin {boolean} Whether requests should be treated as crossorigin @@ -59,7 +59,7 @@ SpriteSheetLoader.prototype.constructor = SpriteSheetLoader; module.exports = SpriteSheetLoader; -core.utils.EventTarget.mixin(SpriteSheetLoader.prototype); +core.utils.eventTarget.mixin(SpriteSheetLoader.prototype); /** * This will begin loading the JSON file