diff --git a/examples/example 14 - Masking/index double mask.html b/examples/example 14 - Masking/index double mask.html new file mode 100644 index 0000000..f7ae8df --- /dev/null +++ b/examples/example 14 - Masking/index double mask.html @@ -0,0 +1,121 @@ + + + + pixi.js example 14 - Masking + + + + + + + + + diff --git a/examples/example 14 - Masking/index double mask.html b/examples/example 14 - Masking/index double mask.html new file mode 100644 index 0000000..f7ae8df --- /dev/null +++ b/examples/example 14 - Masking/index double mask.html @@ -0,0 +1,121 @@ + + + + pixi.js example 14 - Masking + + + + + + + + + diff --git a/src/pixi/InteractionManager.js b/src/pixi/InteractionManager.js index 4f30464..c150102 100644 --- a/src/pixi/InteractionManager.js +++ b/src/pixi/InteractionManager.js @@ -433,7 +433,6 @@ for (var i=0; i < changedTouches.length; i++) { - var touchEvent = changedTouches[i]; var touchData = this.touchs[touchEvent.identifier]; var up = false; diff --git a/examples/example 14 - Masking/index double mask.html b/examples/example 14 - Masking/index double mask.html new file mode 100644 index 0000000..f7ae8df --- /dev/null +++ b/examples/example 14 - Masking/index double mask.html @@ -0,0 +1,121 @@ + + + + pixi.js example 14 - Masking + + + + + + + + + diff --git a/src/pixi/InteractionManager.js b/src/pixi/InteractionManager.js index 4f30464..c150102 100644 --- a/src/pixi/InteractionManager.js +++ b/src/pixi/InteractionManager.js @@ -433,7 +433,6 @@ for (var i=0; i < changedTouches.length; i++) { - var touchEvent = changedTouches[i]; var touchData = this.touchs[touchEvent.identifier]; var up = false; diff --git a/src/pixi/core/Matrix.js b/src/pixi/core/Matrix.js index 63b8347..780fcd6 100644 --- a/src/pixi/core/Matrix.js +++ b/src/pixi/core/Matrix.js @@ -31,6 +31,23 @@ return matrix; } + +PIXI.mat3.identity = function(matrix) +{ + matrix[0] = 1; + matrix[1] = 0; + matrix[2] = 0; + matrix[3] = 0; + matrix[4] = 1; + matrix[5] = 0; + matrix[6] = 0; + matrix[7] = 0; + matrix[8] = 1; + + return matrix; +} + + PIXI.mat4 = {}; PIXI.mat4.create = function() diff --git a/examples/example 14 - Masking/index double mask.html b/examples/example 14 - Masking/index double mask.html new file mode 100644 index 0000000..f7ae8df --- /dev/null +++ b/examples/example 14 - Masking/index double mask.html @@ -0,0 +1,121 @@ + + + + pixi.js example 14 - Masking + + + + + + + + + diff --git a/src/pixi/InteractionManager.js b/src/pixi/InteractionManager.js index 4f30464..c150102 100644 --- a/src/pixi/InteractionManager.js +++ b/src/pixi/InteractionManager.js @@ -433,7 +433,6 @@ for (var i=0; i < changedTouches.length; i++) { - var touchEvent = changedTouches[i]; var touchData = this.touchs[touchEvent.identifier]; var up = false; diff --git a/src/pixi/core/Matrix.js b/src/pixi/core/Matrix.js index 63b8347..780fcd6 100644 --- a/src/pixi/core/Matrix.js +++ b/src/pixi/core/Matrix.js @@ -31,6 +31,23 @@ return matrix; } + +PIXI.mat3.identity = function(matrix) +{ + matrix[0] = 1; + matrix[1] = 0; + matrix[2] = 0; + matrix[3] = 0; + matrix[4] = 1; + matrix[5] = 0; + matrix[6] = 0; + matrix[7] = 0; + matrix[8] = 1; + + return matrix; +} + + PIXI.mat4 = {}; PIXI.mat4.create = function() diff --git a/src/pixi/display/DisplayObjectContainer.js b/src/pixi/display/DisplayObjectContainer.js index 1a879f9..bfb5369 100644 --- a/src/pixi/display/DisplayObjectContainer.js +++ b/src/pixi/display/DisplayObjectContainer.js @@ -216,7 +216,6 @@ this.__renderGroup.addDisplayObjectAndChildren(child); } - console.log(this.children) } else { diff --git a/examples/example 14 - Masking/index double mask.html b/examples/example 14 - Masking/index double mask.html new file mode 100644 index 0000000..f7ae8df --- /dev/null +++ b/examples/example 14 - Masking/index double mask.html @@ -0,0 +1,121 @@ + + + + pixi.js example 14 - Masking + + + + + + + + + diff --git a/src/pixi/InteractionManager.js b/src/pixi/InteractionManager.js index 4f30464..c150102 100644 --- a/src/pixi/InteractionManager.js +++ b/src/pixi/InteractionManager.js @@ -433,7 +433,6 @@ for (var i=0; i < changedTouches.length; i++) { - var touchEvent = changedTouches[i]; var touchData = this.touchs[touchEvent.identifier]; var up = false; diff --git a/src/pixi/core/Matrix.js b/src/pixi/core/Matrix.js index 63b8347..780fcd6 100644 --- a/src/pixi/core/Matrix.js +++ b/src/pixi/core/Matrix.js @@ -31,6 +31,23 @@ return matrix; } + +PIXI.mat3.identity = function(matrix) +{ + matrix[0] = 1; + matrix[1] = 0; + matrix[2] = 0; + matrix[3] = 0; + matrix[4] = 1; + matrix[5] = 0; + matrix[6] = 0; + matrix[7] = 0; + matrix[8] = 1; + + return matrix; +} + + PIXI.mat4 = {}; PIXI.mat4.create = function() diff --git a/src/pixi/display/DisplayObjectContainer.js b/src/pixi/display/DisplayObjectContainer.js index 1a879f9..bfb5369 100644 --- a/src/pixi/display/DisplayObjectContainer.js +++ b/src/pixi/display/DisplayObjectContainer.js @@ -216,7 +216,6 @@ this.__renderGroup.addDisplayObjectAndChildren(child); } - console.log(this.children) } else { diff --git a/src/pixi/renderers/canvas/CanvasRenderer.js b/src/pixi/renderers/canvas/CanvasRenderer.js index 15044ee..5bdffc5 100644 --- a/src/pixi/renderers/canvas/CanvasRenderer.js +++ b/src/pixi/renderers/canvas/CanvasRenderer.js @@ -105,6 +105,8 @@ { PIXI.Texture.frameUpdates = []; } + + } /** @@ -229,6 +231,8 @@ } while(displayObject != testObject) + + } diff --git a/examples/example 14 - Masking/index double mask.html b/examples/example 14 - Masking/index double mask.html new file mode 100644 index 0000000..f7ae8df --- /dev/null +++ b/examples/example 14 - Masking/index double mask.html @@ -0,0 +1,121 @@ + + + + pixi.js example 14 - Masking + + + + + + + + + diff --git a/src/pixi/InteractionManager.js b/src/pixi/InteractionManager.js index 4f30464..c150102 100644 --- a/src/pixi/InteractionManager.js +++ b/src/pixi/InteractionManager.js @@ -433,7 +433,6 @@ for (var i=0; i < changedTouches.length; i++) { - var touchEvent = changedTouches[i]; var touchData = this.touchs[touchEvent.identifier]; var up = false; diff --git a/src/pixi/core/Matrix.js b/src/pixi/core/Matrix.js index 63b8347..780fcd6 100644 --- a/src/pixi/core/Matrix.js +++ b/src/pixi/core/Matrix.js @@ -31,6 +31,23 @@ return matrix; } + +PIXI.mat3.identity = function(matrix) +{ + matrix[0] = 1; + matrix[1] = 0; + matrix[2] = 0; + matrix[3] = 0; + matrix[4] = 1; + matrix[5] = 0; + matrix[6] = 0; + matrix[7] = 0; + matrix[8] = 1; + + return matrix; +} + + PIXI.mat4 = {}; PIXI.mat4.create = function() diff --git a/src/pixi/display/DisplayObjectContainer.js b/src/pixi/display/DisplayObjectContainer.js index 1a879f9..bfb5369 100644 --- a/src/pixi/display/DisplayObjectContainer.js +++ b/src/pixi/display/DisplayObjectContainer.js @@ -216,7 +216,6 @@ this.__renderGroup.addDisplayObjectAndChildren(child); } - console.log(this.children) } else { diff --git a/src/pixi/renderers/canvas/CanvasRenderer.js b/src/pixi/renderers/canvas/CanvasRenderer.js index 15044ee..5bdffc5 100644 --- a/src/pixi/renderers/canvas/CanvasRenderer.js +++ b/src/pixi/renderers/canvas/CanvasRenderer.js @@ -105,6 +105,8 @@ { PIXI.Texture.frameUpdates = []; } + + } /** @@ -229,6 +231,8 @@ } while(displayObject != testObject) + + } diff --git a/src/pixi/renderers/webgl/WebGLRenderGroup.js b/src/pixi/renderers/webgl/WebGLRenderGroup.js index 6094829..2b58500 100644 --- a/src/pixi/renderers/webgl/WebGLRenderGroup.js +++ b/src/pixi/renderers/webgl/WebGLRenderGroup.js @@ -284,6 +284,9 @@ /* * for now only masks are supported.. */ + + var gl = PIXI.gl; + if(renderable.open) { gl.enable(gl.STENCIL_TEST); @@ -293,8 +296,9 @@ gl.stencilOp(gl.KEEP,gl.KEEP,gl.REPLACE); PIXI.WebGLGraphics.renderGraphics(renderable.mask, projection); - - gl.colorMask(true, true, true, false); + + // we know this is a render texture so enable alpha too.. + gl.colorMask(true, true, true, true); gl.stencilFunc(gl.NOTEQUAL,0,0xff); gl.stencilOp(gl.KEEP,gl.KEEP,gl.KEEP); } diff --git a/examples/example 14 - Masking/index double mask.html b/examples/example 14 - Masking/index double mask.html new file mode 100644 index 0000000..f7ae8df --- /dev/null +++ b/examples/example 14 - Masking/index double mask.html @@ -0,0 +1,121 @@ + + + + pixi.js example 14 - Masking + + + + + + + + + diff --git a/src/pixi/InteractionManager.js b/src/pixi/InteractionManager.js index 4f30464..c150102 100644 --- a/src/pixi/InteractionManager.js +++ b/src/pixi/InteractionManager.js @@ -433,7 +433,6 @@ for (var i=0; i < changedTouches.length; i++) { - var touchEvent = changedTouches[i]; var touchData = this.touchs[touchEvent.identifier]; var up = false; diff --git a/src/pixi/core/Matrix.js b/src/pixi/core/Matrix.js index 63b8347..780fcd6 100644 --- a/src/pixi/core/Matrix.js +++ b/src/pixi/core/Matrix.js @@ -31,6 +31,23 @@ return matrix; } + +PIXI.mat3.identity = function(matrix) +{ + matrix[0] = 1; + matrix[1] = 0; + matrix[2] = 0; + matrix[3] = 0; + matrix[4] = 1; + matrix[5] = 0; + matrix[6] = 0; + matrix[7] = 0; + matrix[8] = 1; + + return matrix; +} + + PIXI.mat4 = {}; PIXI.mat4.create = function() diff --git a/src/pixi/display/DisplayObjectContainer.js b/src/pixi/display/DisplayObjectContainer.js index 1a879f9..bfb5369 100644 --- a/src/pixi/display/DisplayObjectContainer.js +++ b/src/pixi/display/DisplayObjectContainer.js @@ -216,7 +216,6 @@ this.__renderGroup.addDisplayObjectAndChildren(child); } - console.log(this.children) } else { diff --git a/src/pixi/renderers/canvas/CanvasRenderer.js b/src/pixi/renderers/canvas/CanvasRenderer.js index 15044ee..5bdffc5 100644 --- a/src/pixi/renderers/canvas/CanvasRenderer.js +++ b/src/pixi/renderers/canvas/CanvasRenderer.js @@ -105,6 +105,8 @@ { PIXI.Texture.frameUpdates = []; } + + } /** @@ -229,6 +231,8 @@ } while(displayObject != testObject) + + } diff --git a/src/pixi/renderers/webgl/WebGLRenderGroup.js b/src/pixi/renderers/webgl/WebGLRenderGroup.js index 6094829..2b58500 100644 --- a/src/pixi/renderers/webgl/WebGLRenderGroup.js +++ b/src/pixi/renderers/webgl/WebGLRenderGroup.js @@ -284,6 +284,9 @@ /* * for now only masks are supported.. */ + + var gl = PIXI.gl; + if(renderable.open) { gl.enable(gl.STENCIL_TEST); @@ -293,8 +296,9 @@ gl.stencilOp(gl.KEEP,gl.KEEP,gl.REPLACE); PIXI.WebGLGraphics.renderGraphics(renderable.mask, projection); - - gl.colorMask(true, true, true, false); + + // we know this is a render texture so enable alpha too.. + gl.colorMask(true, true, true, true); gl.stencilFunc(gl.NOTEQUAL,0,0xff); gl.stencilOp(gl.KEEP,gl.KEEP,gl.KEEP); } diff --git a/src/pixi/textures/RenderTexture.js b/src/pixi/textures/RenderTexture.js index f20f2a9..69ddf24 100644 --- a/src/pixi/textures/RenderTexture.js +++ b/src/pixi/textures/RenderTexture.js @@ -97,6 +97,30 @@ // set the correct render function.. this.render = this.renderWebGL; + + +} + + +PIXI.RenderTexture.prototype.resize = function(width, height) +{ + this.width = width; + this.height = height; + + this.projection = new PIXI.Point(this.width/2 , this.height/2); + + if(PIXI.gl) + { + var gl = PIXI.gl; + gl.bindTexture(gl.TEXTURE_2D, this.baseTexture._glTexture); + gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, this.width, this.height, 0, gl.RGBA, gl.UNSIGNED_BYTE, null); + } + else + { + this.frame.width = this.width + this.frame.height = this.height; + this.renderer.resize(this.width, this.height); + } } PIXI.RenderTexture.prototype.initCanvas = function() @@ -115,7 +139,7 @@ * @param displayObject {DisplayObject} * @param clear {Boolean} If true the texture will be cleared before the displayObject is drawn */ -PIXI.RenderTexture.prototype.renderWebGL = function(displayObject, clear) +PIXI.RenderTexture.prototype.renderWebGL = function(displayObject, position, clear) { var gl = PIXI.gl; @@ -141,6 +165,12 @@ displayObject.worldTransform[4] = -1; displayObject.worldTransform[5] = this.projection.y * 2; + if(position) + { + displayObject.worldTransform[2] = position.x; + displayObject.worldTransform[5] -= position.y; + } + for(var i=0,j=children.length; i