diff --git a/src/pixi/display/DisplayObjectContainer.js b/src/pixi/display/DisplayObjectContainer.js index d6293ef..99b4fda 100644 --- a/src/pixi/display/DisplayObjectContainer.js +++ b/src/pixi/display/DisplayObjectContainer.js @@ -48,7 +48,7 @@ if(width !== 0) { - this.scale.x = value / ( width/this.scale.x ); + this.scale.x = value / width; } else { @@ -76,7 +76,7 @@ if(height !== 0) { - this.scale.y = value / ( height/this.scale.y ); + this.scale.y = value / height ; } else { diff --git a/src/pixi/display/DisplayObjectContainer.js b/src/pixi/display/DisplayObjectContainer.js index d6293ef..99b4fda 100644 --- a/src/pixi/display/DisplayObjectContainer.js +++ b/src/pixi/display/DisplayObjectContainer.js @@ -48,7 +48,7 @@ if(width !== 0) { - this.scale.x = value / ( width/this.scale.x ); + this.scale.x = value / width; } else { @@ -76,7 +76,7 @@ if(height !== 0) { - this.scale.y = value / ( height/this.scale.y ); + this.scale.y = value / height ; } else { diff --git a/src/pixi/extras/Strip.js b/src/pixi/extras/Strip.js index 07f381e..60339fe 100644 --- a/src/pixi/extras/Strip.js +++ b/src/pixi/extras/Strip.js @@ -119,7 +119,8 @@ // gl.uniformMatrix4fv(shaderProgram.mvMatrixUniform, false, mat4Real); - gl.blendFunc(gl.ONE, gl.ONE_MINUS_SRC_ALPHA); + renderSession.blendModeManager.setBlendMode(this.blendMode); + // set uniforms gl.uniformMatrix3fv(shader.translationMatrix, false, this.worldTransform.toArray(true)); diff --git a/src/pixi/display/DisplayObjectContainer.js b/src/pixi/display/DisplayObjectContainer.js index d6293ef..99b4fda 100644 --- a/src/pixi/display/DisplayObjectContainer.js +++ b/src/pixi/display/DisplayObjectContainer.js @@ -48,7 +48,7 @@ if(width !== 0) { - this.scale.x = value / ( width/this.scale.x ); + this.scale.x = value / width; } else { @@ -76,7 +76,7 @@ if(height !== 0) { - this.scale.y = value / ( height/this.scale.y ); + this.scale.y = value / height ; } else { diff --git a/src/pixi/extras/Strip.js b/src/pixi/extras/Strip.js index 07f381e..60339fe 100644 --- a/src/pixi/extras/Strip.js +++ b/src/pixi/extras/Strip.js @@ -119,7 +119,8 @@ // gl.uniformMatrix4fv(shaderProgram.mvMatrixUniform, false, mat4Real); - gl.blendFunc(gl.ONE, gl.ONE_MINUS_SRC_ALPHA); + renderSession.blendModeManager.setBlendMode(this.blendMode); + // set uniforms gl.uniformMatrix3fv(shader.translationMatrix, false, this.worldTransform.toArray(true)); diff --git a/src/pixi/renderers/webgl/utils/WebGLGraphics.js b/src/pixi/renderers/webgl/utils/WebGLGraphics.js index 5f8909e..6e4d8b3 100644 --- a/src/pixi/renderers/webgl/utils/WebGLGraphics.js +++ b/src/pixi/renderers/webgl/utils/WebGLGraphics.js @@ -147,15 +147,25 @@ { if(data.points.length >= 6) { - if(data.points.length > 5 * 2) + if(data.points.length < 6 * 2) { - webGLData = PIXI.WebGLGraphics.switchMode(webGL, 1); - PIXI.WebGLGraphics.buildComplexPoly(data, webGLData); + webGLData = PIXI.WebGLGraphics.switchMode(webGL, 0); + + var canDrawUsingSimple = PIXI.WebGLGraphics.buildPoly(data, webGLData); + // console.log(canDrawUsingSimple); + + if(!canDrawUsingSimple) + { + // console.log("<>>>") + webGLData = PIXI.WebGLGraphics.switchMode(webGL, 1); + PIXI.WebGLGraphics.buildComplexPoly(data, webGLData); + } + } else { - webGLData = PIXI.WebGLGraphics.switchMode(webGL, 0); - PIXI.WebGLGraphics.buildPoly(data, webGLData); + webGLData = PIXI.WebGLGraphics.switchMode(webGL, 1); + PIXI.WebGLGraphics.buildComplexPoly(data, webGLData); } } } @@ -803,6 +813,9 @@ var b = color[2] * alpha; var triangles = PIXI.PolyK.Triangulate(points); + + if(!triangles)return false; + var vertPos = verts.length / 6; var i = 0; @@ -822,6 +835,7 @@ r, g, b, alpha); } + return true; }; PIXI.WebGLGraphics.graphicsDataPool = []; diff --git a/src/pixi/display/DisplayObjectContainer.js b/src/pixi/display/DisplayObjectContainer.js index d6293ef..99b4fda 100644 --- a/src/pixi/display/DisplayObjectContainer.js +++ b/src/pixi/display/DisplayObjectContainer.js @@ -48,7 +48,7 @@ if(width !== 0) { - this.scale.x = value / ( width/this.scale.x ); + this.scale.x = value / width; } else { @@ -76,7 +76,7 @@ if(height !== 0) { - this.scale.y = value / ( height/this.scale.y ); + this.scale.y = value / height ; } else { diff --git a/src/pixi/extras/Strip.js b/src/pixi/extras/Strip.js index 07f381e..60339fe 100644 --- a/src/pixi/extras/Strip.js +++ b/src/pixi/extras/Strip.js @@ -119,7 +119,8 @@ // gl.uniformMatrix4fv(shaderProgram.mvMatrixUniform, false, mat4Real); - gl.blendFunc(gl.ONE, gl.ONE_MINUS_SRC_ALPHA); + renderSession.blendModeManager.setBlendMode(this.blendMode); + // set uniforms gl.uniformMatrix3fv(shader.translationMatrix, false, this.worldTransform.toArray(true)); diff --git a/src/pixi/renderers/webgl/utils/WebGLGraphics.js b/src/pixi/renderers/webgl/utils/WebGLGraphics.js index 5f8909e..6e4d8b3 100644 --- a/src/pixi/renderers/webgl/utils/WebGLGraphics.js +++ b/src/pixi/renderers/webgl/utils/WebGLGraphics.js @@ -147,15 +147,25 @@ { if(data.points.length >= 6) { - if(data.points.length > 5 * 2) + if(data.points.length < 6 * 2) { - webGLData = PIXI.WebGLGraphics.switchMode(webGL, 1); - PIXI.WebGLGraphics.buildComplexPoly(data, webGLData); + webGLData = PIXI.WebGLGraphics.switchMode(webGL, 0); + + var canDrawUsingSimple = PIXI.WebGLGraphics.buildPoly(data, webGLData); + // console.log(canDrawUsingSimple); + + if(!canDrawUsingSimple) + { + // console.log("<>>>") + webGLData = PIXI.WebGLGraphics.switchMode(webGL, 1); + PIXI.WebGLGraphics.buildComplexPoly(data, webGLData); + } + } else { - webGLData = PIXI.WebGLGraphics.switchMode(webGL, 0); - PIXI.WebGLGraphics.buildPoly(data, webGLData); + webGLData = PIXI.WebGLGraphics.switchMode(webGL, 1); + PIXI.WebGLGraphics.buildComplexPoly(data, webGLData); } } } @@ -803,6 +813,9 @@ var b = color[2] * alpha; var triangles = PIXI.PolyK.Triangulate(points); + + if(!triangles)return false; + var vertPos = verts.length / 6; var i = 0; @@ -822,6 +835,7 @@ r, g, b, alpha); } + return true; }; PIXI.WebGLGraphics.graphicsDataPool = []; diff --git a/src/pixi/utils/Polyk.js b/src/pixi/utils/Polyk.js index 0e150b2..838e6a2 100644 --- a/src/pixi/utils/Polyk.js +++ b/src/pixi/utils/Polyk.js @@ -107,8 +107,8 @@ } else { - window.console.log("PIXI Warning: shape too complex to fill"); - return []; + // window.console.log("PIXI Warning: shape too complex to fill"); + return null; } } }