diff --git a/bin/pixi.dev.js b/bin/pixi.dev.js index f29080a..3478cf4 100644 --- a/bin/pixi.dev.js +++ b/bin/pixi.dev.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/bin/pixi.dev.js b/bin/pixi.dev.js index f29080a..3478cf4 100644 --- a/bin/pixi.dev.js +++ b/bin/pixi.dev.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/bin/pixi.js b/bin/pixi.js index 5f2a13c..a6d54d1 100644 --- a/bin/pixi.js +++ b/bin/pixi.js @@ -4,10 +4,10 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php */ -(function(){function HEXtoRGB(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}function determineMatrixArrayType(){return PIXI.Matrix="undefined"!=typeof Float32Array?Float32Array:Array,PIXI.Matrix}var root=this,PIXI=PIXI||{};PIXI.Point=function(t,e){this.x=t||0,this.y=e||0},PIXI.Point.prototype.clone=function(){return new PIXI.Point(this.x,this.y)},PIXI.Point.constructor=PIXI.Point,PIXI.Rectangle=function(t,e,i,r){this.x=t||0,this.y=e||0,this.width=i||0,this.height=r||0},PIXI.Rectangle.prototype.clone=function(){return new PIXI.Rectangle(this.x,this.y,this.width,this.height)},PIXI.Rectangle.constructor=PIXI.Rectangle,PIXI.DisplayObject=function(){this.position=new PIXI.Point,this.scale=new PIXI.Point(1,1),this.pivot=new PIXI.Point(0,0),this.rotation=0,this.alpha=1,this.visible=!0,this.worldVisible=!1,this.parent=null,this.stage=null,this.hitArea=null,this.worldAlpha=1,this.color=[],this.worldTransform=PIXI.mat3.create(),this.localTransform=PIXI.mat3.create(),this.dynamic=!0,this._sr=0,this._cr=1,this.childIndex=0,this.renderable=!1,this.interactive=!1,this.buttonMode=!1},PIXI.DisplayObject.constructor=PIXI.DisplayObject,PIXI.DisplayObject.prototype.setInteractive=function(t){this.interactive=t,this.stage&&(this.stage.dirty=!0)},PIXI.DisplayObject.prototype.updateTransform=function(){this.rotation!=this.rotationCache&&(this.rotationCache=this.rotation,this._sr=Math.sin(this.rotation),this._cr=Math.cos(this.rotation));var t=this.localTransform,e=this.parent.worldTransform,i=this.worldTransform;t[0]=this._cr*this.scale.x,t[1]=-this._sr*this.scale.y,t[3]=this._sr*this.scale.x,t[4]=this._cr*this.scale.y;var r=this.pivot.x,s=this.pivot.y;t[2]=this.position.x-t[0]*r-s*t[1],t[5]=this.position.y-t[4]*s-r*t[3];var n=t[0],a=t[1],o=t[2],h=t[3],u=t[4],c=t[5],d=e[0],l=e[1],I=e[2],p=e[3],f=e[4],x=e[5];i[0]=d*n+l*h,i[1]=d*a+l*u,i[2]=d*o+l*c+I,i[3]=p*n+f*h,i[4]=p*a+f*u,i[5]=p*o+f*c+x,this.worldAlpha=this.alpha*this.parent.worldAlpha},PIXI.DisplayObjectContainer=function(){PIXI.DisplayObject.call(this),this.children=[],this.renderable=!1},PIXI.DisplayObjectContainer.constructor=PIXI.DisplayObjectContainer,PIXI.DisplayObjectContainer.prototype=Object.create(PIXI.DisplayObject.prototype),PIXI.DisplayObjectContainer.prototype.addChild=function(t){void 0!=t.parent&&t.parent.removeChild(t),t.parent=this,t.childIndex=this.children.length,this.children.push(t),this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},PIXI.DisplayObjectContainer.prototype.addChildAt=function(t,e){if(!(e>=0&&this.children.length>=e))throw Error(t+" The index "+e+" supplied is out of bounds "+this.children.length);void 0!=t.parent&&t.parent.removeChild(t),e==this.children.length?this.children.push(t):this.children.splice(e,0,t),t.parent=this,t.childIndex=e;for(var i=this.children.length,r=e;i>r;r++)this.children[r].childIndex=r;this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},PIXI.DisplayObjectContainer.prototype.swapChildren=function(t,e){var i=this.children.indexOf(t),r=this.children.indexOf(e);if(-1===i||-1===r)throw Error(t+" Both the supplied DisplayObjects must be a child of the caller "+this);this.stage&&(this.stage.__removeChild(t),this.stage.__removeChild(e),this.stage.__addChild(t),this.stage.__addChild(e)),t.childIndex=r,e.childIndex=i,this.children[i]=e,this.children[r]=t},PIXI.DisplayObjectContainer.prototype.getChildAt=function(t){if(t>=0&&this.children.length>t)return this.children[t];throw Error(child+" Both the supplied DisplayObjects must be a child of the caller "+this)},PIXI.DisplayObjectContainer.prototype.removeChild=function(t){var e=this.children.indexOf(t);if(-1===e)throw Error(t+" The supplied DisplayObject must be a child of the caller "+this);this.stage&&this.stage.__removeChild(t),t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.parent=void 0,this.children.splice(e,1);for(var i=e,r=this.children.length;r>i;i++)this.children[i].childIndex-=1},PIXI.DisplayObjectContainer.prototype.updateTransform=function(){if(this.visible){PIXI.DisplayObject.prototype.updateTransform.call(this);for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform()}},PIXI.blendModes={},PIXI.blendModes.NORMAL=0,PIXI.blendModes.SCREEN=1,PIXI.Sprite=function(t){PIXI.DisplayObjectContainer.call(this),this.anchor=new PIXI.Point,this.texture=t,this.blendMode=PIXI.blendModes.NORMAL,this._width=0,this._height=0,t.baseTexture.hasLoaded?this.updateFrame=!0:(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},PIXI.Sprite.constructor=PIXI.Sprite,PIXI.Sprite.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),Object.defineProperty(PIXI.Sprite.prototype,"width",{get:function(){return this.scale.x*this.texture.frame.width},set:function(t){this.scale.x=t/this.texture.frame.width,this._width=t}}),Object.defineProperty(PIXI.Sprite.prototype,"height",{get:function(){return this.scale.y*this.texture.frame.height},set:function(t){this.scale.y=t/this.texture.frame.height,this._height=t}}),PIXI.Sprite.prototype.setTexture=function(t){this.texture.baseTexture!=t.baseTexture&&(this.textureChange=!0),this.texture=t,this.updateFrame=!0},PIXI.Sprite.prototype.onTextureUpdate=function(){this._width&&(this.scale.x=this._width/this.texture.frame.width),this._height&&(this.scale.y=this._height/this.texture.frame.height),this.updateFrame=!0},PIXI.Sprite.fromFrame=function(t){var e=PIXI.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache"+this);return new PIXI.Sprite(e)},PIXI.Sprite.fromImage=function(t){var e=PIXI.Texture.fromImage(t);return new PIXI.Sprite(e)},PIXI.MovieClip=function(t){PIXI.Sprite.call(this,t[0]),this.textures=t,this.currentFrame=0,this.animationSpeed=1,this.loop=!0,this.onComplete=null,this.playing},PIXI.MovieClip.constructor=PIXI.MovieClip,PIXI.MovieClip.prototype=Object.create(PIXI.Sprite.prototype),PIXI.MovieClip.prototype.stop=function(){this.playing=!1},PIXI.MovieClip.prototype.play=function(){this.playing=!0},PIXI.MovieClip.prototype.gotoAndStop=function(t){this.playing=!1,this.currentFrame=t;var e=0|this.currentFrame+.5;this.setTexture(this.textures[e%this.textures.length])},PIXI.MovieClip.prototype.gotoAndPlay=function(t){this.currentFrame=t,this.playing=!0},PIXI.MovieClip.prototype.updateTransform=function(){if(PIXI.Sprite.prototype.updateTransform.call(this),this.playing){this.currentFrame+=this.animationSpeed;var t=0|this.currentFrame+.5;this.loop||this.textures.length>t?this.setTexture(this.textures[t%this.textures.length]):t>=this.textures.length&&(this.gotoAndStop(this.textures.length-1),this.onComplete&&this.onComplete())}},PIXI.Text=function(t,e){this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"),PIXI.Sprite.call(this,PIXI.Texture.fromCanvas(this.canvas)),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},PIXI.Text.constructor=PIXI.Text,PIXI.Text.prototype=Object.create(PIXI.Sprite.prototype),PIXI.Text.prototype.setStyle=function(t){t=t||{},t.font=t.font||"bold 20pt Arial",t.fill=t.fill||"black",t.align=t.align||"left",t.strokeThickness=t.strokeThickness||0,this.style=t,this.dirty=!0},PIXI.Sprite.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},PIXI.Text.prototype.updateText=function(){this.context.font=this.style.font;for(var t=this.text.split(/(?:\r\n|\r|\n)/),e=[],i=0,r=0;t.length>r;r++){var s=this.context.measureText(t[r]).width;e[r]=s,i=Math.max(i,s)}this.canvas.width=i+this.style.strokeThickness;var n=this.determineFontHeight("font: "+this.style.font+";")+this.style.strokeThickness;for(this.canvas.height=n*t.length,this.context.fillStyle=this.style.fill,this.context.font=this.style.font,this.context.strokeStyle=this.style.stroke,this.context.lineWidth=this.style.strokeThickness,this.context.textBaseline="top",r=0;t.length>r;r++){var a=new PIXI.Point(this.style.strokeThickness/2,this.style.strokeThickness/2+r*n);"right"==this.style.align?a.x+=i-e[r]:"center"==this.style.align&&(a.x+=(i-e[r])/2),this.style.stroke&&this.style.strokeThickness&&this.context.strokeText(t[r],a.x,a.y),this.style.fill&&this.context.fillText(t[r],a.x,a.y)}this.updateTexture()},PIXI.Text.prototype.updateTexture=function(){this.texture.baseTexture.width=this.canvas.width,this.texture.baseTexture.height=this.canvas.height,this.texture.frame.width=this.canvas.width,this.texture.frame.height=this.canvas.height,this._width=this.canvas.width,this._height=this.canvas.height,PIXI.texturesToUpdate.push(this.texture.baseTexture)},PIXI.Text.prototype.updateTransform=function(){this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype.updateTransform.call(this)},PIXI.Text.prototype.determineFontHeight=function(t){var e=PIXI.Text.heightCache[t];if(!e){var i=document.getElementsByTagName("body")[0],r=document.createElement("div"),s=document.createTextNode("M");r.appendChild(s),r.setAttribute("style",t),i.appendChild(r),e=r.offsetHeight,PIXI.Text.heightCache[t]=e,i.removeChild(r)}return e},PIXI.Text.prototype.destroy=function(t){t&&this.texture.destroy()},PIXI.Text.heightCache={},PIXI.BitmapText=function(t,e){PIXI.DisplayObjectContainer.call(this),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},PIXI.BitmapText.constructor=PIXI.BitmapText,PIXI.BitmapText.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.BitmapText.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},PIXI.BitmapText.prototype.setStyle=function(t){t=t||{},t.align=t.align||"left",this.style=t;var e=t.font.split(" ");this.fontName=e[e.length-1],this.fontSize=e.length>=2?parseInt(e[e.length-2],10):PIXI.BitmapText.fonts[this.fontName].size,this.dirty=!0},PIXI.BitmapText.prototype.updateText=function(){for(var t=PIXI.BitmapText.fonts[this.fontName],e=new PIXI.Point,i=null,r=[],s=0,n=[],a=0,o=this.fontSize/t.size,h=0;this.text.length>h;h++){var u=this.text.charCodeAt(h);if(/(?:\r\n|\r|\n)/.test(this.text.charAt(h)))n.push(e.x),s=Math.max(s,e.x),a++,e.x=0,e.y+=t.lineHeight,i=null;else{var c=t.chars[u];c&&(i&&c[i]&&(e.x+=c.kerning[i]),r.push({line:a,charCode:u,position:new PIXI.Point(e.x+c.xOffset,e.y+c.yOffset)}),e.x+=c.xAdvance,i=u)}}n.push(e.x),s=Math.max(s,e.x);var d=[];for(h=0;a>=h;h++){var l=0;"right"==this.style.align?l=s-n[h]:"center"==this.style.align&&(l=(s-n[h])/2),d.push(l)}for(h=0;r.length>h;h++){var I=PIXI.Sprite.fromFrame(r[h].charCode);I.position.x=(r[h].position.x+d[r[h].line])*o,I.position.y=r[h].position.y*o,I.scale.x=I.scale.y=o,this.addChild(I)}this.width=e.x*o,this.height=(e.y+t.lineHeight)*o},PIXI.BitmapText.prototype.updateTransform=function(){if(this.dirty){for(;this.children.length>0;)this.removeChild(this.getChildAt(0));this.updateText(),this.dirty=!1}PIXI.DisplayObjectContainer.prototype.updateTransform.call(this)},PIXI.BitmapText.fonts={},PIXI.InteractionManager=function(t){this.stage=t,this.tempPoint=new PIXI.Point,this.mouseoverEnabled=!0,this.mouse=new PIXI.InteractionData,this.touchs={},this.pool=[],this.interactiveItems=[],this.last=0},PIXI.InteractionManager.constructor=PIXI.InteractionManager,PIXI.InteractionManager.prototype.collectInteractiveSprite=function(t,e){for(var i=t.children,r=i.length,s=r-1;s>=0;s--){var n=i[s];n.interactive?(e.interactiveChildren=!0,this.interactiveItems.push(n),n.children.length>0&&this.collectInteractiveSprite(n,n)):(n.__iParent=null,n.children.length>0&&this.collectInteractiveSprite(n,e))}},PIXI.InteractionManager.prototype.setTarget=function(t){window.navigator.msPointerEnabled&&(t.view.style["-ms-content-zooming"]="none",t.view.style["-ms-touch-action"]="none"),this.target=t,t.view.addEventListener("mousemove",this.onMouseMove.bind(this),!0),t.view.addEventListener("mousedown",this.onMouseDown.bind(this),!0),document.body.addEventListener("mouseup",this.onMouseUp.bind(this),!0),t.view.addEventListener("mouseout",this.onMouseUp.bind(this),!0),t.view.addEventListener("touchstart",this.onTouchStart.bind(this),!0),t.view.addEventListener("touchend",this.onTouchEnd.bind(this),!0),t.view.addEventListener("touchmove",this.onTouchMove.bind(this),!0)},PIXI.InteractionManager.prototype.update=function(){if(this.target){var t=Date.now(),e=t-this.last;if(e=30*e/1e3,!(1>e)){if(this.last=t,this.dirty){this.dirty=!1,this.interactiveItems.length;for(var i=0;this.interactiveItems.length>i;i++)this.interactiveItems[i].interactiveChildren=!1;this.interactiveItems=[],this.stage.interactive&&this.interactiveItems.push(this.stage),this.collectInteractiveSprite(this.stage,this.stage)}var r=this.interactiveItems.length;this.target.view.style.cursor="default";for(var i=0;r>i;i++){var s=this.interactiveItems[i];s.visible&&(s.mouseover||s.mouseout||s.buttonMode)&&(s.__hit=this.hitTest(s,this.mouse),s.__hit?(s.buttonMode&&(this.target.view.style.cursor="pointer"),s.__isOver||(s.mouseover&&s.mouseover(this.mouse),s.__isOver=!0)):s.__isOver&&(s.mouseout&&s.mouseout(this.mouse),s.__isOver=!1))}}}},PIXI.InteractionManager.prototype.onMouseMove=function(t){t.preventDefault();var e=this.target.view.getBoundingClientRect();this.mouse.global.x=(t.clientX-e.left)*(this.target.width/e.width),this.mouse.global.y=(t.clientY-e.top)*(this.target.height/e.height);var i=this.interactiveItems.length;this.mouse.global;for(var r=0;i>r;r++){var s=this.interactiveItems[r];s.mousemove&&s.mousemove(this.mouse)}},PIXI.InteractionManager.prototype.onMouseDown=function(t){t.preventDefault();var e=this.interactiveItems.length;this.mouse.global,this.stage;for(var i=0;e>i;i++){var r=this.interactiveItems[i];if((r.mousedown||r.click)&&(r.__mouseIsDown=!0,r.__hit=this.hitTest(r,this.mouse),r.__hit&&(r.mousedown&&r.mousedown(this.mouse),r.__isDown=!0,!r.interactiveChildren)))break}},PIXI.InteractionManager.prototype.onMouseUp=function(t){t.preventDefault(),this.mouse.global;for(var e=this.interactiveItems.length,i=!1,r=0;e>r;r++){var s=this.interactiveItems[r];(s.mouseup||s.mouseupoutside||s.click)&&(s.__hit=this.hitTest(s,this.mouse),s.__hit&&!i?(s.mouseup&&s.mouseup(this.mouse),s.__isDown&&s.click&&s.click(this.mouse),s.interactiveChildren||(i=!0)):s.__isDown&&s.mouseupoutside&&s.mouseupoutside(this.mouse),s.__isDown=!1)}},PIXI.InteractionManager.prototype.hitTest=function(t,e){var i=e.global;if(!t.visible)return!1;if(t instanceof PIXI.Sprite){var r=t.worldTransform,s=r[0],n=r[1],a=r[2],o=r[3],h=r[4],u=r[5],c=1/(s*h+n*-o),d=h*c*i.x+-n*c*i.y+(u*n-a*h)*c,l=s*c*i.y+-o*c*i.x+(-u*s+a*o)*c,I=t.texture.frame.width,p=t.texture.frame.height,f=-I*t.anchor.x;if(d>f&&f+I>d){var x=-p*t.anchor.y;if(l>x&&x+p>l)return e.target=t,!0}}else if(t.hitArea){var r=t.worldTransform,v=t.hitArea,s=r[0],n=r[1],a=r[2],o=r[3],h=r[4],u=r[5],c=1/(s*h+n*-o),d=h*c*i.x+-n*c*i.y+(u*n-a*h)*c,l=s*c*i.y+-o*c*i.x+(-u*s+a*o)*c,f=v.x;if(d>f&&f+v.width>d){var x=v.y;if(l>x&&x+v.height>l)return!0}}for(var P=t.children.length,g=0;P>g;g++){var b=t.children[g],X=this.hitTest(b,e);if(X)return!0}return!1},PIXI.InteractionManager.prototype.onTouchMove=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.touchs[s.identifier];n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height)}for(var a=this.interactiveItems.length,r=0;a>r;r++){var o=this.interactiveItems[r];o.touchmove&&o.touchmove(n)}},PIXI.InteractionManager.prototype.onTouchStart=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.pool.pop();n||(n=new PIXI.InteractionData),this.touchs[s.identifier]=n,n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height);for(var a=this.interactiveItems.length,o=0;a>o;o++){var h=this.interactiveItems[o];if((h.touchstart||h.tap)&&(h.__hit=this.hitTest(h,n),h.__hit&&(h.touchstart&&h.touchstart(n),h.__isDown=!0,h.__touchData=n,!h.interactiveChildren)))break}}},PIXI.InteractionManager.prototype.onTouchEnd=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.touchs[s.identifier],a=!1;n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var u=this.interactiveItems[h],c=u.__touchData;u.__hit=this.hitTest(u,n),c==n&&((u.touchend||u.tap)&&(u.__hit&&!a?(u.touchend&&u.touchend(n),u.__isDown&&u.tap&&u.tap(n),u.interactiveChildren||(a=!0)):u.__isDown&&u.touchendoutside&&u.touchendoutside(n),u.__isDown=!1),u.__touchData=null)}this.pool.push(n),this.touchs[s.identifier]=null}},PIXI.InteractionData=function(){this.global=new PIXI.Point,this.local=new PIXI.Point,this.target},PIXI.InteractionData.prototype.getLocalPosition=function(t){var e=t.worldTransform,i=this.global,r=e[0],s=e[1],n=e[2],a=e[3],o=e[4],h=e[5],u=1/(r*o+s*-a);return new PIXI.Point(o*u*i.x+-s*u*i.y+(h*s-n*o)*u,r*u*i.y+-a*u*i.x+(-h*r+n*a)*u)},PIXI.InteractionData.constructor=PIXI.InteractionData,PIXI.Stage=function(t,e){PIXI.DisplayObjectContainer.call(this),this.worldTransform=PIXI.mat3.create(),this.__childrenAdded=[],this.__childrenRemoved=[],this.childIndex=0,this.stage=this,this.stage.hitArea=new PIXI.Rectangle(0,0,1e5,1e5),this.interactive=!!e,this.interactionManager=new PIXI.InteractionManager(this),this.setBackgroundColor(t),this.worldVisible=!0},PIXI.Stage.constructor=PIXI.Stage,PIXI.Stage.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Stage.prototype.updateTransform=function(){this.worldAlpha=1;for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform();this.dirty&&(this.dirty=!1,this.interactionManager.dirty=!0),this.interactive&&this.interactionManager.update()},PIXI.Stage.prototype.setBackgroundColor=function(t){this.backgroundColor=t||0,this.backgroundColorSplit=HEXtoRGB(this.backgroundColor),this.backgroundColorString="#"+this.backgroundColor.toString(16)},PIXI.Stage.prototype.getMousePosition=function(){return this.interactionManager.mouse.global},PIXI.Stage.prototype.__addChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=this,t.children)for(var e=0;t.children.length>e;e++)this.__addChild(t.children[e])},PIXI.Stage.prototype.__removeChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=void 0,t.children)for(var e=0,i=t.children.length;i>e;e++)this.__removeChild(t.children[e])},window.requestAnimFrame=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(t){window.setTimeout(t,1e3/60)}}(),"function"!=typeof Function.prototype.bind&&(Function.prototype.bind=function(){var t=Array.prototype.slice;return function(e){function i(){var n=s.concat(t.call(arguments));r.apply(this instanceof i?this:e,n)}var r=this,s=t.call(arguments,1);if("function"!=typeof r)throw new TypeError;return i.prototype=function n(t){return t&&(n.prototype=t),this instanceof n?void 0:new n}(r.prototype),i}}());var AjaxRequest=function(){var t=["Msxml2.XMLHTTP","Microsoft.XMLHTTP"];if(!window.ActiveXObject)return window.XMLHttpRequest?new XMLHttpRequest:!1;for(var e=0;t.length>e;e++)try{return new ActiveXObject(t[e])}catch(i){}};PIXI.EventTarget=function(){var t={};this.addEventListener=this.on=function(e,i){void 0===t[e]&&(t[e]=[]),-1===t[e].indexOf(i)&&t[e].push(i)},this.dispatchEvent=this.emit=function(e){for(var i in t[e.type])t[e.type][i](e)},this.removeEventListener=this.off=function(e,i){var r=t[e].indexOf(i);-1!==r&&t[e].splice(r,1)}},determineMatrixArrayType(),PIXI.mat3={},PIXI.mat3.create=function(){var t=new PIXI.Matrix(9);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},PIXI.mat4={},PIXI.mat4.create=function(){var t=new PIXI.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},PIXI.mat3.multiply=function(t,e,i){i||(i=t);var r=t[0],s=t[1],n=t[2],a=t[3],o=t[4],h=t[5],u=t[6],c=t[7],d=t[8],l=e[0],I=e[1],p=e[2],f=e[3],x=e[4],v=e[5],P=e[6],g=e[7],b=e[8];return i[0]=l*r+I*a+p*u,i[1]=l*s+I*o+p*c,i[2]=l*n+I*h+p*d,i[3]=f*r+x*a+v*u,i[4]=f*s+x*o+v*c,i[5]=f*n+x*h+v*d,i[6]=P*r+g*a+b*u,i[7]=P*s+g*o+b*c,i[8]=P*n+g*h+b*d,i},PIXI.mat3.toMat4=function(t,e){return e||(e=PIXI.mat4.create()),e[15]=1,e[14]=0,e[13]=0,e[12]=0,e[11]=0,e[10]=t[8],e[9]=t[7],e[8]=t[6],e[7]=0,e[6]=t[5],e[5]=t[4],e[4]=t[3],e[3]=0,e[2]=t[2],e[1]=t[1],e[0]=t[0],e},PIXI.mat4.create=function(){var t=new PIXI.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},PIXI.mat4.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],s=t[3],n=t[6],a=t[7],o=t[11];return t[1]=t[4],t[2]=t[8],t[3]=t[12],t[4]=i,t[6]=t[9],t[7]=t[13],t[8]=r,t[9]=n,t[11]=t[14],t[12]=s,t[13]=a,t[14]=o,t}return e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=t[1],e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=t[2],e[9]=t[6],e[10]=t[10],e[11]=t[14],e[12]=t[3],e[13]=t[7],e[14]=t[11],e[15]=t[15],e},PIXI.mat4.multiply=function(t,e,i){i||(i=t);var r=t[0],s=t[1],n=t[2],a=t[3],o=t[4],h=t[5],u=t[6],c=t[7],d=t[8],l=t[9],I=t[10],p=t[11],f=t[12],x=t[13],v=t[14],P=t[15],g=e[0],b=e[1],X=e[2],m=e[3];return i[0]=g*r+b*o+X*d+m*f,i[1]=g*s+b*h+X*l+m*x,i[2]=g*n+b*u+X*I+m*v,i[3]=g*a+b*c+X*p+m*P,g=e[4],b=e[5],X=e[6],m=e[7],i[4]=g*r+b*o+X*d+m*f,i[5]=g*s+b*h+X*l+m*x,i[6]=g*n+b*u+X*I+m*v,i[7]=g*a+b*c+X*p+m*P,g=e[8],b=e[9],X=e[10],m=e[11],i[8]=g*r+b*o+X*d+m*f,i[9]=g*s+b*h+X*l+m*x,i[10]=g*n+b*u+X*I+m*v,i[11]=g*a+b*c+X*p+m*P,g=e[12],b=e[13],X=e[14],m=e[15],i[12]=g*r+b*o+X*d+m*f,i[13]=g*s+b*h+X*l+m*x,i[14]=g*n+b*u+X*I+m*v,i[15]=g*a+b*c+X*p+m*P,i},PIXI.autoDetectRenderer=function(t,e,i,r){t||(t=800),e||(e=600);var s=function(){try{return!!window.WebGLRenderingContext&&!!document.createElement("canvas").getContext("experimental-webgl")}catch(t){return!1}}();return s?new PIXI.WebGLRenderer(t,e,i,r):new PIXI.CanvasRenderer(t,e,i,r)},PIXI.shaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * vColor;","}"],PIXI.shaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform mat4 uMVMatrix;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","gl_Position = uMVMatrix * vec4(aVertexPosition, 1.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],PIXI.CompileVertexShader=function(t,e){return PIXI._CompileShader(t,e,t.VERTEX_SHADER)},PIXI.CompileFragmentShader=function(t,e){return PIXI._CompileShader(t,e,t.FRAGMENT_SHADER)},PIXI._CompileShader=function(t,e,i){var r=e.join("\n"),s=t.createShader(i);return t.shaderSource(s,r),t.compileShader(s),t.getShaderParameter(s,t.COMPILE_STATUS)?s:(alert(t.getShaderInfoLog(s)),null)},PIXI._defaultFrame=new PIXI.Rectangle(0,0,1,1),PIXI.gl,PIXI.WebGLRenderer=function(t,e,i,r){this.transparent=!!r,this.width=t||800,this.height=e||600,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height;var s=this;this.view.addEventListener("webglcontextlost",function(t){s.handleContextLost(t)},!1),this.view.addEventListener("webglcontextrestored",function(t){s.handleContextRestored(t)},!1),this.batchs=[];try{PIXI.gl=this.gl=this.view.getContext("experimental-webgl",{alpha:this.transparent,antialias:!1,premultipliedAlpha:!0})}catch(n){throw Error(" This browser does not support webGL. Try using the canvas renderer"+this)}this.initShaders();var a=this.gl;PIXI.WebGLRenderer.gl=a,this.batch=new PIXI.WebGLBatch(a),a.disable(a.DEPTH_TEST),a.disable(a.CULL_FACE),a.enable(a.BLEND),a.colorMask(!0,!0,!0,this.transparent),this.projectionMatrix=PIXI.mat4.create(),this.resize(this.width,this.height),this.contextLost=!1,this.stageRenderGroup=new PIXI.WebGLRenderGroup(this.gl)},PIXI.WebGLRenderer.constructor=PIXI.WebGLRenderer,PIXI.WebGLRenderer.getBatch=function(){return 0==PIXI._batchs.length?new PIXI.WebGLBatch(PIXI.WebGLRenderer.gl):PIXI._batchs.pop()},PIXI.WebGLRenderer.returnBatch=function(t){t.clean(),PIXI._batchs.push(t)},PIXI.WebGLRenderer.prototype.initShaders=function(){var t=this.gl,e=PIXI.CompileFragmentShader(t,PIXI.shaderFragmentSrc),i=PIXI.CompileVertexShader(t,PIXI.shaderVertexSrc);PIXI.shaderProgram=t.createProgram();var r=PIXI.shaderProgram;t.attachShader(r,i),t.attachShader(r,e),t.linkProgram(r),t.getProgramParameter(r,t.LINK_STATUS)||alert("Could not initialise shaders"),t.useProgram(r),r.vertexPositionAttribute=t.getAttribLocation(r,"aVertexPosition"),t.enableVertexAttribArray(r.vertexPositionAttribute),r.textureCoordAttribute=t.getAttribLocation(r,"aTextureCoord"),t.enableVertexAttribArray(r.textureCoordAttribute),r.colorAttribute=t.getAttribLocation(r,"aColor"),t.enableVertexAttribArray(r.colorAttribute),r.mvMatrixUniform=t.getUniformLocation(r,"uMVMatrix"),r.samplerUniform=t.getUniformLocation(r,"uSampler")},PIXI.WebGLRenderer.prototype.render=function(t){if(!this.contextLost){this.__stage!==t&&(this.__stage=t,this.stageRenderGroup.setRenderable(t));for(var e=0;PIXI.texturesToUpdate.length>e;e++)this.updateTexture(PIXI.texturesToUpdate[e]);for(var e=0;PIXI.texturesToDestroy.length>e;e++)this.destroyTexture(PIXI.texturesToDestroy[e]);PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[],t.updateTransform();var i=this.gl;if(i.colorMask(!0,!0,!0,this.transparent),i.viewport(0,0,this.width,this.height),i.bindFramebuffer(i.FRAMEBUFFER,null),i.clearColor(t.backgroundColorSplit[0],t.backgroundColorSplit[1],t.backgroundColorSplit[2],this.transparent),i.clear(i.COLOR_BUFFER_BIT),this.stageRenderGroup.backgroundColor=t.backgroundColorSplit,this.stageRenderGroup.render(this.projectionMatrix),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),PIXI.Texture.frameUpdates.length>0){for(var e=0;PIXI.Texture.frameUpdates.length>e;e++)PIXI.Texture.frameUpdates[e].updateFrame=!1;PIXI.Texture.frameUpdates=[]}}},PIXI.WebGLRenderer.prototype.updateTexture=function(t){var e=this.gl;t._glTexture||(t._glTexture=e.createTexture()),t.hasLoaded&&(e.bindTexture(e.TEXTURE_2D,t._glTexture),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t.source),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),t._powerOf2?(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT)):(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)),e.bindTexture(e.TEXTURE_2D,null)),this.refreshBatchs=!0},PIXI.WebGLRenderer.prototype.destroyTexture=function(t){var e=this.gl;t._glTexture&&(t._glTexture=e.createTexture(),e.deleteTexture(e.TEXTURE_2D,t._glTexture))},PIXI.WebGLRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e,this.gl.viewport(0,0,this.width,this.height);var i=this.projectionMatrix;i[0]=2/this.width,i[5]=-2/this.height,i[12]=-1,i[13]=1},PIXI.WebGLRenderer.prototype.handleContextLost=function(t){t.preventDefault(),this.contextLost=!0},PIXI.WebGLRenderer.prototype.handleContextRestored=function(){this.gl=this.view.getContext("experimental-webgl",{alpha:!0}),this.initShaders();for(var t=0;PIXI.TextureCache.length>t;t++)this.updateTexture(PIXI.TextureCache[t]);for(var t=0;this.batchs.length>t;t++)this.batchs[t].restoreLostContext(this.gl),this.batchs[t].dirty=!0;PIXI._restoreBatchs(this.gl),this.contextLost=!1},PIXI._batchs=[],PIXI._getBatch=function(t){return 0==PIXI._batchs.length?new PIXI.WebGLBatch(t):PIXI._batchs.pop()},PIXI._returnBatch=function(t){t.clean(),PIXI._batchs.push(t)},PIXI._restoreBatchs=function(t){for(var e=0;PIXI._batchs.length>e;e++)PIXI._batchs[e].restoreLostContext(t)},PIXI.WebGLBatch=function(t){this.gl=t,this.size=0,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer(),this.blendMode=PIXI.blendModes.NORMAL,this.dynamicSize=1},PIXI.WebGLBatch.constructor=PIXI.WebGLBatch,PIXI.WebGLBatch.prototype.clean=function(){this.verticies=[],this.uvs=[],this.indices=[],this.colors=[],this.dynamicSize=1,this.texture=null,this.last=null,this.size=0,this.head,this.tail},PIXI.WebGLBatch.prototype.restoreLostContext=function(t){this.gl=t,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer()},PIXI.WebGLBatch.prototype.init=function(t){t.batch=this,this.dirty=!0,this.blendMode=t.blendMode,this.texture=t.texture.baseTexture,this.head=t,this.tail=t,this.size=1,this.growBatch()},PIXI.WebGLBatch.prototype.insertBefore=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__prev;e.__prev=t,t.__next=e,i?(t.__prev=i,i.__next=t):this.head=t},PIXI.WebGLBatch.prototype.insertAfter=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__next;e.__next=t,t.__prev=e,i?(t.__next=i,i.__prev=t):this.tail=t},PIXI.WebGLBatch.prototype.remove=function(t){return this.size--,0==this.size?(t.batch=null,t.__prev=null,t.__next=null,void 0):(t.__prev?t.__prev.__next=t.__next:(this.head=t.__next,this.head.__prev=null),t.__next?t.__next.__prev=t.__prev:(this.tail=t.__prev,this.tail.__next=null),t.batch=null,t.__next=null,t.__prev=null,this.dirty=!0,void 0)},PIXI.WebGLBatch.prototype.split=function(t){this.dirty=!0;var e=new PIXI.WebGLBatch(this.gl);e.init(t),e.tail=this.tail,this.tail=t.__prev,this.tail.__next=null,t.__prev=null;for(var i=0;t;)i++,t.batch=e,t=t.__next;return e.size=i,this.size-=i,e},PIXI.WebGLBatch.prototype.merge=function(t){this.dirty=!0,this.tail.__next=t.head,t.head.__prev=this.tail,this.size+=t.size,this.tail=t.tail;for(var e=t.head;e;)e.batch=this,e=e.__next},PIXI.WebGLBatch.prototype.growBatch=function(){var t=this.gl;this.dynamicSize=1==this.size?1:1.5*this.size,this.verticies=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.vertexBuffer),t.bufferData(t.ARRAY_BUFFER,this.verticies,t.DYNAMIC_DRAW),this.uvs=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.uvBuffer),t.bufferData(t.ARRAY_BUFFER,this.uvs,t.DYNAMIC_DRAW),this.dirtyUVS=!0,this.colors=new Float32Array(4*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.colorBuffer),t.bufferData(t.ARRAY_BUFFER,this.colors,t.DYNAMIC_DRAW),this.dirtyColors=!0,this.indices=new Uint16Array(6*this.dynamicSize);for(var e=this.indices.length/6,i=0;e>i;i++){var r=6*i,s=4*i;this.indices[r+0]=s+0,this.indices[r+1]=s+1,this.indices[r+2]=s+2,this.indices[r+3]=s+0,this.indices[r+4]=s+2,this.indices[r+5]=s+3}t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,this.indexBuffer),t.bufferData(t.ELEMENT_ARRAY_BUFFER,this.indices,t.STATIC_DRAW)},PIXI.WebGLBatch.prototype.refresh=function(){this.gl,this.dynamicSizei;i++)this.removeDisplayObjectAndChildren(this.toRemove[i]);this.toRemove=[],this.checkVisibility(this.root,this.root.visible);for(var r,i=0;this.batchs.length>i;i++)r=this.batchs[i],r instanceof PIXI.WebGLBatch?this.batchs[i].render():r instanceof PIXI.TilingSprite?r.visible&&this.renderTilingSprite(r,t):r instanceof PIXI.Strip&&r.visible&&this.renderStrip(r,t)},PIXI.WebGLRenderGroup.prototype.renderSpecific=function(t,e){var i=this.gl;this.checkVisibility(t,t.visible),i.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform,!1,e);var r,s,n,a,o=t.renderable?t:this.getNextRenderable(t),h=o.batch;if(o instanceof PIXI.Sprite){h=o.batch;var u=h.head;if(u==o)r=0;else for(r=1;u.__next!=o;)r++,u=u.__next}else h=o;for(var c,d=t,l=t;l.children.length>0;)l=l.children[l.children.length-1],l.renderable&&(d=l);if(d instanceof PIXI.Sprite){c=d.batch;var u=c.head;if(u==d)n=0;else for(n=1;u.__next!=d;)n++,u=u.__next}else c=d;if(h==c)return h instanceof PIXI.WebGLBatch?h.render(r,n+1):h instanceof PIXI.TilingSprite?h.visible&&this.renderTilingSprite(h,e):h instanceof PIXI.Strip?h.visible&&this.renderStrip(h,e):h instanceof PIXI.CustomRenderable&&h.visible&&h.renderWebGL(this,e),void 0;s=this.batchs.indexOf(h),a=this.batchs.indexOf(c),h instanceof PIXI.WebGLBatch?h.render(r):h instanceof PIXI.TilingSprite?h.visible&&this.renderTilingSprite(h,e):h instanceof PIXI.Strip?h.visible&&this.renderStrip(h,e):h instanceof PIXI.CustomRenderable&&h.visible&&h.renderWebGL(this,e);for(var I=s+1;a>I;I++)renderable=this.batchs[I],renderable instanceof PIXI.WebGLBatch?this.batchs[I].render():renderable instanceof PIXI.TilingSprite?renderable.visible&&this.renderTilingSprite(renderable,e):renderable instanceof PIXI.Strip?renderable.visible&&this.renderStrip(renderable,e):renderable instanceof PIXI.CustomRenderable&&renderable.visible&&renderable.renderWebGL(this,e);c instanceof PIXI.WebGLBatch?c.render(0,n+1):c instanceof PIXI.TilingSprite?c.visible&&this.renderTilingSprite(c):c instanceof PIXI.Strip?c.visible&&this.renderStrip(c):c instanceof PIXI.CustomRenderable&&c.visible&&c.renderWebGL(this,e)},PIXI.WebGLRenderGroup.prototype.checkVisibility=function(t,e){for(var i=t.children,r=0;i.length>r;r++){var s=i[r];s.worldVisible=s.visible&&e,s.textureChange&&(s.textureChange=!1,s.worldVisible&&(this.removeDisplayObject(s),this.addDisplayObject(s))),s.children.length>0&&this.checkVisibility(s,s.worldVisible)}},PIXI.WebGLRenderGroup.prototype.addDisplayObject=function(t){if(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.__renderGroup=this,t.renderable){var e=this.getPreviousRenderable(t),i=this.getNextRenderable(t);if(t instanceof PIXI.Sprite){var r,s;if(e instanceof PIXI.Sprite){if(r=e.batch,r&&r.texture==t.texture.baseTexture&&r.blendMode==t.blendMode)return r.insertAfter(t,e),void 0}else r=e;if(i)if(i instanceof PIXI.Sprite){if(s=i.batch){if(s.texture==t.texture.baseTexture&&s.blendMode==t.blendMode)return s.insertBefore(t,i),void 0;if(s==r){var n=r.split(i),a=PIXI.WebGLRenderer.getBatch(),o=this.batchs.indexOf(r);return a.init(t),this.batchs.splice(o+1,0,a,n),void 0}}}else s=i;var a=PIXI.WebGLRenderer.getBatch();if(a.init(t),r){var o=this.batchs.indexOf(r);this.batchs.splice(o+1,0,a)}else this.batchs.push(a)}else t instanceof PIXI.TilingSprite?(this.initTilingSprite(t),this.batchs.push(t)):t instanceof PIXI.Strip&&(this.initStrip(t),this.batchs.push(t));this.batchUpdate=!0}},PIXI.WebGLRenderGroup.prototype.addDisplayObjectAndChildren=function(t){this.addDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.addDisplayObjectAndChildren(e[i])},PIXI.WebGLRenderGroup.prototype.removeDisplayObject=function(t){if(t.__renderGroup=null,t.renderable){var e;if(t instanceof PIXI.Sprite){var i=t.batch;if(!i)return;i.remove(t),0==i.size&&(e=i)}else e=t;if(e){var r=this.batchs.indexOf(e);if(-1==r)return;if(0==r||r==this.batchs.length-1)return this.batchs.splice(r,1),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e),void 0;if(this.batchs[r-1]instanceof PIXI.WebGLBatch&&this.batchs[r+1]instanceof PIXI.WebGLBatch&&this.batchs[r-1].texture==this.batchs[r+1].texture&&this.batchs[r-1].blendMode==this.batchs[r+1].blendMode)return this.batchs[r-1].merge(this.batchs[r+1]),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e),PIXI.WebGLRenderer.returnBatch(this.batchs[r+1]),this.batchs.splice(r,2),void 0;this.batchs.splice(r,1),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e)}}},PIXI.WebGLRenderGroup.prototype.removeDisplayObjectAndChildren=function(t){if(t.__renderGroup==this){this.removeDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.removeDisplayObjectAndChildren(e[i])}},PIXI.WebGLRenderGroup.prototype.getNextRenderable=function(t){var e=t;do{if(0==e.children.length){if(!e.parent)return null;for(;e.childIndex==e.parent.children.length-1;)if(e=e.parent,e==this.root){e=null;break}e&&(e=e.parent.children[e.childIndex+1])}else e=e.children[0];if(!e)break}while(!e.renderable||!e.__renderGroup);return e},PIXI.WebGLRenderGroup.prototype.getPreviousRenderable=function(t){var e=t;do{if(0==e.childIndex){if(e=e.parent,!e)return null}else for(e=e.parent.children[e.childIndex-1];0!=e.children.length;)e=e.children[e.children.length-1];if(e==this.root)break}while(!e.renderable||!e.__renderGroup);return e},PIXI.WebGLRenderGroup.prototype.initTilingSprite=function(t){var e=this.gl;t.verticies=new Float32Array([0,0,t.width,0,t.width,t.height,0,t.height]),t.uvs=new Float32Array([0,0,1,0,1,1,0,1]),t.colors=new Float32Array([1,1,1,1]),t.indices=new Uint16Array([0,1,3,2]),t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW),t.texture.baseTexture._glTexture?(e.bindTexture(e.TEXTURE_2D,t.texture.baseTexture._glTexture),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT),t.texture.baseTexture._powerOf2=!0):t.texture.baseTexture._powerOf2=!0},PIXI.WebGLRenderGroup.prototype.renderStrip=function(t,e){var i=this.gl,r=PIXI.shaderProgram,s=PIXI.mat3.toMat4(t.worldTransform);PIXI.mat4.transpose(s),PIXI.mat4.multiply(e,s,s),i.uniformMatrix4fv(r.mvMatrixUniform,!1,s),t.blendMode==PIXI.blendModes.NORMAL?i.blendFunc(i.ONE,i.ONE_MINUS_SRC_ALPHA):i.blendFunc(i.ONE,i.ONE_MINUS_SRC_COLOR),t.dirty?(t.dirty=!1,i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferData(i.ARRAY_BUFFER,t.verticies,i.STATIC_DRAW),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferData(i.ARRAY_BUFFER,t.uvs,i.STATIC_DRAW),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.bufferData(i.ARRAY_BUFFER,t.colors,i.STATIC_DRAW),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer),i.bufferData(i.ELEMENT_ARRAY_BUFFER,t.indices,i.STATIC_DRAW)):(i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.verticies),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer)),i.drawElements(i.TRIANGLE_STRIP,t.indices.length,i.UNSIGNED_SHORT,0),i.uniformMatrix4fv(r.mvMatrixUniform,!1,e)},PIXI.WebGLRenderGroup.prototype.renderTilingSprite=function(t,e){var i=this.gl;PIXI.shaderProgram;var r=t.tilePosition,s=t.tileScale,n=r.x/t.texture.baseTexture.width,a=r.y/t.texture.baseTexture.height,o=t.width/t.texture.baseTexture.width/s.x,h=t.height/t.texture.baseTexture.height/s.y;t.uvs[0]=0-n,t.uvs[1]=0-a,t.uvs[2]=1*o-n,t.uvs[3]=0-a,t.uvs[4]=1*o-n,t.uvs[5]=1*h-a,t.uvs[6]=0-n,t.uvs[7]=1*h-a,i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.uvs),this.renderStrip(t,e)},PIXI.WebGLRenderer.prototype.initStrip=function(t){var e=this.gl;this.shaderProgram,t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW)},PIXI.CanvasRenderer=function(t,e,i,r){this.transparent=r,this.width=t||800,this.height=e||600,this.refresh=!0,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height,this.count=0,this.context=this.view.getContext("2d")},PIXI.CanvasRenderer.constructor=PIXI.CanvasRenderer,PIXI.CanvasRenderer.prototype.render=function(t){PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[],t.updateTransform(),this.view.style.backgroundColor==t.backgroundColorString||this.transparent||(this.view.style.backgroundColor=t.backgroundColorString),this.context.setTransform(1,0,0,1,0,0),this.context.clearRect(0,0,this.width,this.height),this.renderDisplayObject(t),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),PIXI.Texture.frameUpdates.length>0&&(PIXI.Texture.frameUpdates=[])},PIXI.CanvasRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e},PIXI.CanvasRenderer.prototype.renderDisplayObject=function(t){var e=t.worldTransform,i=this.context;if(t.visible){if(t instanceof PIXI.Sprite){var r=t.texture.frame;r&&(i.globalAlpha=t.worldAlpha,i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),i.drawImage(t.texture.baseTexture.source,r.x,r.y,r.width,r.height,t.anchor.x*-r.width,t.anchor.y*-r.height,r.width,r.height))}else t instanceof PIXI.Strip?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderStrip(t)):t instanceof PIXI.TilingSprite?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderTilingSprite(t)):t instanceof PIXI.CustomRenderable&&t.renderCanvas(this);for(var s=0;t.children.length>s;s++)this.renderDisplayObject(t.children[s]);this.context.setTransform(1,0,0,1,0,0)}},PIXI.CanvasRenderer.prototype.renderStripFlat=function(t){var e=this.context,i=t.verticies;t.uvs;var r=i.length/2;this.count++,e.beginPath();for(var s=1;r-2>s;s++){var n=2*s,a=i[n],o=i[n+2],h=i[n+4],u=i[n+1],c=i[n+3],d=i[n+5];e.moveTo(a,u),e.lineTo(o,c),e.lineTo(h,d)}e.fillStyle="#FF0000",e.fill(),e.closePath()},PIXI.CanvasRenderer.prototype.renderTilingSprite=function(t){var e=this.context;t.__tilePattern||(t.__tilePattern=e.createPattern(t.texture.baseTexture.source,"repeat")),e.beginPath();var i=t.tilePosition,r=t.tileScale;e.scale(r.x,r.y),e.translate(i.x,i.y),e.fillStyle=t.__tilePattern,e.fillRect(-i.x,-i.y,t.width/r.x,t.height/r.y),e.scale(1/r.x,1/r.y),e.translate(-i.x,-i.y),e.closePath()},PIXI.CanvasRenderer.prototype.renderStrip=function(t){var e=this.context,i=t.verticies,r=t.uvs,s=i.length/2;this.count++;for(var n=1;s-2>n;n++){var a=2*n,o=i[a],h=i[a+2],u=i[a+4],c=i[a+1],d=i[a+3],l=i[a+5],I=r[a]*t.texture.width,p=r[a+2]*t.texture.width,f=r[a+4]*t.texture.width,x=r[a+1]*t.texture.height,v=r[a+3]*t.texture.height,P=r[a+5]*t.texture.height;e.save(),e.beginPath(),e.moveTo(o,c),e.lineTo(h,d),e.lineTo(u,l),e.closePath(),e.clip();var g=I*v+x*f+p*P-v*f-x*p-I*P,b=o*v+x*u+h*P-v*u-x*h-o*P,X=I*h+o*f+p*u-h*f-o*p-I*u,m=I*v*u+x*h*f+o*p*P-o*v*f-x*p*u-I*h*P,T=c*v+x*l+d*P-v*l-x*d-c*P,y=I*d+c*f+p*l-d*f-c*p-I*l,_=I*v*l+x*d*f+c*p*P-c*v*f-x*p*l-I*d*P;e.transform(b/g,T/g,X/g,y/g,m/g,_/g),e.drawImage(t.texture.baseTexture.source,0,0),e.restore()}},PIXI.Strip=function(t,e,i){PIXI.DisplayObjectContainer.call(this),this.texture=t,this.blendMode=PIXI.blendModes.NORMAL;try{this.uvs=new Float32Array([0,1,1,1,1,0,0,1]),this.verticies=new Float32Array([0,0,0,0,0,0,0,0,0]),this.colors=new Float32Array([1,1,1,1]),this.indices=new Uint16Array([0,1,2,3])}catch(r){this.uvs=[0,1,1,1,1,0,0,1],this.verticies=[0,0,0,0,0,0,0,0,0],this.colors=[1,1,1,1],this.indices=[0,1,2,3]}this.width=e,this.height=i,t.baseTexture.hasLoaded?(this.width=this.texture.frame.width,this.height=this.texture.frame.height,this.updateFrame=!0):(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},PIXI.Strip.constructor=PIXI.Strip,PIXI.Strip.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Strip.prototype.setTexture=function(t){this.texture=t,this.width=t.frame.width,this.height=t.frame.height,this.updateFrame=!0},PIXI.Strip.prototype.onTextureUpdate=function(){this.updateFrame=!0},PIXI.Rope=function(t,e){PIXI.Strip.call(this,t),this.points=e;try{this.verticies=new Float32Array(4*e.length),this.uvs=new Float32Array(4*e.length),this.colors=new Float32Array(2*e.length),this.indices=new Uint16Array(2*e.length)}catch(i){this.verticies=verticies,this.uvs=uvs,this.colors=colors,this.indices=indices}this.refresh()},PIXI.Rope.constructor=PIXI.Rope,PIXI.Rope.prototype=Object.create(PIXI.Strip.prototype),PIXI.Rope.prototype.refresh=function(){var t=this.points;if(!(1>t.length)){var e=this.uvs,i=this.indices,r=this.colors,s=t[0],n=t[0];this.count-=.2,e[0]=0,e[1]=1,e[2]=0,e[3]=1,r[0]=1,r[1]=1,i[0]=0,i[1]=1;for(var a=t.length,o=1;a>o;o++){var n=t[o],h=4*o,u=o/(a-1);o%2?(e[h]=u,e[h+1]=0,e[h+2]=u,e[h+3]=1):(e[h]=u,e[h+1]=0,e[h+2]=u,e[h+3]=1),h=2*o,r[h]=1,r[h+1]=1,h=2*o,i[h]=h,i[h+1]=h+1,s=n}}},PIXI.Rope.prototype.updateTransform=function(){var t=this.points;if(!(1>t.length)){var e,i=this.verticies,r=t[0],s={x:0,y:0},n=t[0];this.count-=.2,i[0]=n.x+s.x,i[1]=n.y+s.y,i[2]=n.x-s.x,i[3]=n.y-s.y;for(var a=t.length,o=1;a>o;o++){var n=t[o],h=4*o;e=t.length-1>o?t[o+1]:n,s.y=-(e.x-r.x),s.x=e.y-r.y;var u=10*(1-o/(a-1));u>1&&(u=1);var c=Math.sqrt(s.x*s.x+s.y*s.y),d=this.texture.height/2;s.x/=c,s.y/=c,s.x*=d,s.y*=d,i[h]=n.x+s.x,i[h+1]=n.y+s.y,i[h+2]=n.x-s.x,i[h+3]=n.y-s.y,r=n}PIXI.DisplayObjectContainer.prototype.updateTransform.call(this)}},PIXI.Rope.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0},PIXI.TilingSprite=function(t,e,i){PIXI.DisplayObjectContainer.call(this),this.texture=t,this.width=e,this.height=i,this.renderable=!0,this.tileScale=new PIXI.Point(1,1),this.tilePosition=new PIXI.Point(0,0),this.blendMode=PIXI.blendModes.NORMAL},PIXI.TilingSprite.constructor=PIXI.TilingSprite,PIXI.TilingSprite.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.TilingSprite.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0},PIXI.TilingSprite.prototype.onTextureUpdate=function(){this.updateFrame=!0},PIXI.CustomRenderable=function(){PIXI.DisplayObject.call(this)},PIXI.CustomRenderable.constructor=PIXI.CustomRenderable,PIXI.CustomRenderable.prototype=Object.create(PIXI.DisplayObject.prototype),PIXI.CustomRenderable.prototype.renderCanvas=function(){},PIXI.CustomRenderable.prototype.initWebGL=function(){},PIXI.CustomRenderable.prototype.renderWebGL=function(){},PIXI.BaseTextureCache={},PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[],PIXI.BaseTexture=function(t){if(PIXI.EventTarget.call(this),this.width=100,this.height=100,this.source=t,t){if(this.source instanceof Image)if(this.source.complete)this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,PIXI.texturesToUpdate.push(this);else{var e=this;this.source.onload=function(){e.hasLoaded=!0,e.width=e.source.width,e.height=e.source.height,PIXI.texturesToUpdate.push(e),e.dispatchEvent({type:"loaded",content:e})}}else this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,PIXI.texturesToUpdate.push(this);this._powerOf2=!1}},PIXI.BaseTexture.constructor=PIXI.BaseTexture,PIXI.BaseTexture.prototype.destroy=function(){this.source instanceof Image&&(this.source.src=null),this.source=null,PIXI.texturesToDestroy.push(this)},PIXI.BaseTexture.fromImage=function(t,e){var i=PIXI.BaseTextureCache[t];if(!i){var r=new Image;e&&(r.crossOrigin=""),r.src=t,i=new PIXI.BaseTexture(r),PIXI.BaseTextureCache[t]=i}return i},PIXI.TextureCache={},PIXI.FrameCache={},PIXI.Texture=function(t,e){if(PIXI.EventTarget.call(this),e||(this.noFrame=!0,e=new PIXI.Rectangle(0,0,1,1)),this.trim=new PIXI.Point,t instanceof PIXI.Texture&&(t=t.baseTexture),this.baseTexture=t,this.frame=e,this.scope=this,t.hasLoaded)this.noFrame&&(e=new PIXI.Rectangle(0,0,t.width,t.height)),this.setFrame(e);else{var i=this;t.addEventListener("loaded",function(){i.onBaseTextureLoaded()})}},PIXI.Texture.constructor=PIXI.Texture,PIXI.Texture.prototype.onBaseTextureLoaded=function(){var t=this.baseTexture;t.removeEventListener("loaded",this.onLoaded),this.noFrame&&(this.frame=new PIXI.Rectangle(0,0,t.width,t.height)),this.noFrame=!1,this.width=this.frame.width,this.height=this.frame.height,this.scope.dispatchEvent({type:"update",content:this})},PIXI.Texture.prototype.destroy=function(t){t&&this.baseTexture.destroy()},PIXI.Texture.prototype.setFrame=function(t){if(this.frame=t,this.width=t.width,this.height=t.height,t.x+t.width>this.baseTexture.width||t.y+t.height>this.baseTexture.height)throw Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);this.updateFrame=!0,PIXI.Texture.frameUpdates.push(this)},PIXI.Texture.fromImage=function(t,e){var i=PIXI.TextureCache[t];return i||(i=new PIXI.Texture(PIXI.BaseTexture.fromImage(t,e)),PIXI.TextureCache[t]=i),i},PIXI.Texture.fromFrame=function(t){var e=PIXI.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache "+this);return e},PIXI.Texture.fromCanvas=function(t){var e=new PIXI.BaseTexture(t);return new PIXI.Texture(e)},PIXI.Texture.addTextureToCache=function(t,e){PIXI.TextureCache[e]=t},PIXI.Texture.removeTextureFromCache=function(t){var e=PIXI.TextureCache[t];return PIXI.TextureCache[t]=null,e},PIXI.Texture.frameUpdates=[],PIXI.RenderTexture=function(t,e){PIXI.EventTarget.call(this),this.width=t||100,this.height=e||100,this.indetityMatrix=PIXI.mat3.create(),this.frame=new PIXI.Rectangle(0,0,this.width,this.height),PIXI.gl?this.initWebGL():this.initCanvas()},PIXI.RenderTexture.constructor=PIXI.RenderTexture,PIXI.RenderTexture.prototype=Object.create(PIXI.Texture.prototype),PIXI.RenderTexture.prototype.initWebGL=function(){var t=PIXI.gl;this.glFramebuffer=t.createFramebuffer(),t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),this.glFramebuffer.width=this.width,this.glFramebuffer.height=this.height,this.baseTexture=new PIXI.BaseTexture,this.baseTexture.width=this.width,this.baseTexture.height=this.height,this.baseTexture._glTexture=t.createTexture(),t.bindTexture(t.TEXTURE_2D,this.baseTexture._glTexture),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,this.width,this.height,0,t.RGBA,t.UNSIGNED_BYTE,null),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),this.baseTexture.isRender=!0,t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,this.baseTexture._glTexture,0),this.projectionMatrix=PIXI.mat4.create(),this.projectionMatrix[5]=2/this.height,this.projectionMatrix[13]=-1,this.projectionMatrix[0]=2/this.width,this.projectionMatrix[12]=-1,this.render=this.renderWebGL},PIXI.RenderTexture.prototype.initCanvas=function(){this.renderer=new PIXI.CanvasRenderer(this.width,this.height,null,0),this.baseTexture=new PIXI.BaseTexture(this.renderer.view),this.frame=new PIXI.Rectangle(0,0,this.width,this.height),this.render=this.renderCanvas},PIXI.RenderTexture.prototype.renderWebGL=function(t,e){var i=PIXI.gl;i.colorMask(!0,!0,!0,!0),i.viewport(0,0,this.width,this.height),i.bindFramebuffer(i.FRAMEBUFFER,this.glFramebuffer),e&&(i.clearColor(0,0,0,0),i.clear(i.COLOR_BUFFER_BIT));var r=t.children;t.worldTransform=PIXI.mat3.create();for(var s=0,n=r.length;n>s;s++)r[s].updateTransform();var a=t.__renderGroup;a?t==a.root?a.render(this.projectionMatrix):a.renderSpecific(t,this.projectionMatrix):(this.renderGroup||(this.renderGroup=new PIXI.WebGLRenderGroup(i)),this.renderGroup.setRenderable(t),this.renderGroup.render(this.projectionMatrix))},PIXI.RenderTexture.prototype.renderCanvas=function(t,e){var i=t.children;t.worldTransform=PIXI.mat3.create();for(var r=0,s=i.length;s>r;r++)i[r].updateTransform();e&&this.renderer.context.clearRect(0,0,this.width,this.height),this.renderer.renderDisplayObject(t),PIXI.texturesToUpdate.push(this.baseTexture)},PIXI.AssetLoader=function(t){PIXI.EventTarget.call(this),this.assetURLs=t,this.crossorigin=!1,this.loadersByType={jpg:PIXI.ImageLoader,jpeg:PIXI.ImageLoader,png:PIXI.ImageLoader,gif:PIXI.ImageLoader,json:PIXI.SpriteSheetLoader,xml:PIXI.BitmapFontLoader,fnt:PIXI.BitmapFontLoader}},PIXI.AssetLoader.constructor=PIXI.AssetLoader,PIXI.AssetLoader.prototype.load=function(){var t=this;this.loadCount=this.assetURLs.length;for(var e=0;this.assetURLs.length>e;e++){var i=this.assetURLs[e],r=i.split(".").pop().toLowerCase(),s=this.loadersByType[r];if(!s)throw Error(r+" is an unsupported file type");var n=new s(i,this.crossorigin);n.addEventListener("loaded",function(){t.onAssetLoaded()}),n.load()}},PIXI.AssetLoader.prototype.onAssetLoaded=function(){this.loadCount--,this.dispatchEvent({type:"onProgress",content:this}),this.onProgress&&this.onProgress(),0==this.loadCount&&(this.dispatchEvent({type:"onComplete",content:this}),this.onComplete&&this.onComplete())},PIXI.SpriteSheetLoader=function(t,e){PIXI.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.frames={},this.crossorigin=e},PIXI.SpriteSheetLoader.constructor=PIXI.SpriteSheetLoader,PIXI.SpriteSheetLoader.prototype.load=function(){this.ajaxRequest=new AjaxRequest;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onJSONLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/json"),this.ajaxRequest.send(null)},PIXI.SpriteSheetLoader.prototype.onJSONLoaded=function(){if(4==this.ajaxRequest.readyState&&(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))){var jsonData=eval("("+this.ajaxRequest.responseText+")"),textureUrl=this.baseUrl+jsonData.meta.image,image=new PIXI.ImageLoader(textureUrl,this.crossorigin);this.texture=image.texture.baseTexture;var scope=this;image.addEventListener("loaded",function(){scope.onLoaded()});var frameData=jsonData.frames;for(var i in frameData){var rect=frameData[i].frame;rect&&(PIXI.TextureCache[i]=new PIXI.Texture(this.texture,{x:rect.x,y:rect.y,width:rect.w,height:rect.h}),frameData[i].trimmed&&(PIXI.TextureCache[i].realSize=frameData[i].spriteSourceSize,PIXI.TextureCache[i].trim.x=0))}image.load()}},PIXI.SpriteSheetLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},PIXI.ImageLoader=function(t,e){PIXI.EventTarget.call(this),this.texture=PIXI.Texture.fromImage(t,e)},PIXI.ImageLoader.constructor=PIXI.ImageLoader,PIXI.ImageLoader.prototype.load=function(){if(this.texture.baseTexture.hasLoaded)this.onLoaded();else{var t=this;this.texture.baseTexture.addEventListener("loaded",function(){t.onLoaded()})}},PIXI.ImageLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},PIXI.BitmapFontLoader=function(t,e){PIXI.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.crossorigin=e},PIXI.BitmapFontLoader.constructor=PIXI.BitmapFontLoader,PIXI.BitmapFontLoader.prototype.load=function(){this.ajaxRequest=new XMLHttpRequest;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onXMLLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/xml"),this.ajaxRequest.send(null)},PIXI.BitmapFontLoader.prototype.onXMLLoaded=function(){if(4==this.ajaxRequest.readyState&&(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))){var t=this.baseUrl+this.ajaxRequest.responseXML.getElementsByTagName("page")[0].attributes.getNamedItem("file").nodeValue,e=new PIXI.ImageLoader(t,this.crossorigin);this.texture=e.texture.baseTexture;var i={},r=this.ajaxRequest.responseXML.getElementsByTagName("info")[0],s=this.ajaxRequest.responseXML.getElementsByTagName("common")[0];i.font=r.attributes.getNamedItem("face").nodeValue,i.size=parseInt(r.attributes.getNamedItem("size").nodeValue,10),i.lineHeight=parseInt(s.attributes.getNamedItem("lineHeight").nodeValue,10),i.chars={};for(var n=this.ajaxRequest.responseXML.getElementsByTagName("char"),a=0;n.length>a;a++){var o=parseInt(n[a].attributes.getNamedItem("id").nodeValue,10),h={x:parseInt(n[a].attributes.getNamedItem("x").nodeValue,10),y:parseInt(n[a].attributes.getNamedItem("y").nodeValue,10),width:parseInt(n[a].attributes.getNamedItem("width").nodeValue,10),height:parseInt(n[a].attributes.getNamedItem("height").nodeValue,10)};PIXI.TextureCache[o]=new PIXI.Texture(this.texture,h),i.chars[o]={xOffset:parseInt(n[a].attributes.getNamedItem("xoffset").nodeValue,10),yOffset:parseInt(n[a].attributes.getNamedItem("yoffset").nodeValue,10),xAdvance:parseInt(n[a].attributes.getNamedItem("xadvance").nodeValue,10),kerning:{}}}var u=this.ajaxRequest.responseXML.getElementsByTagName("kerning");for(a=0;u.length>a;a++){var c=parseInt(u[a].attributes.getNamedItem("first").nodeValue,10),d=parseInt(u[a].attributes.getNamedItem("second").nodeValue,10),l=parseInt(u[a].attributes.getNamedItem("amount").nodeValue,10);i.chars[d].kerning[c]=l}PIXI.BitmapText.fonts[i.font]=i;var I=this;e.addEventListener("loaded",function(){I.onLoaded()}),e.load()}},PIXI.BitmapFontLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=PIXI),exports.PIXI=PIXI):root.PIXI=PIXI}).call(this); \ No newline at end of file +(function(){function HEXtoRGB(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}function determineMatrixArrayType(){return PIXI.Matrix="undefined"!=typeof Float32Array?Float32Array:Array,PIXI.Matrix}var root=this,PIXI=PIXI||{};PIXI.Point=function(t,e){this.x=t||0,this.y=e||0},PIXI.Point.prototype.clone=function(){return new PIXI.Point(this.x,this.y)},PIXI.Point.constructor=PIXI.Point,PIXI.Rectangle=function(t,e,i,r){this.x=t||0,this.y=e||0,this.width=i||0,this.height=r||0},PIXI.Rectangle.prototype.clone=function(){return new PIXI.Rectangle(this.x,this.y,this.width,this.height)},PIXI.Rectangle.constructor=PIXI.Rectangle,PIXI.DisplayObject=function(){this.position=new PIXI.Point,this.scale=new PIXI.Point(1,1),this.pivot=new PIXI.Point(0,0),this.rotation=0,this.alpha=1,this.visible=!0,this.worldVisible=!1,this.parent=null,this.stage=null,this.hitArea=null,this.worldAlpha=1,this.color=[],this.worldTransform=PIXI.mat3.create(),this.localTransform=PIXI.mat3.create(),this.dynamic=!0,this._sr=0,this._cr=1,this.childIndex=0,this.renderable=!1,this.interactive=!1,this.buttonMode=!1},PIXI.DisplayObject.constructor=PIXI.DisplayObject,PIXI.DisplayObject.prototype.setInteractive=function(t){this.interactive=t,this.stage&&(this.stage.dirty=!0)},PIXI.DisplayObject.prototype.updateTransform=function(){this.rotation!=this.rotationCache&&(this.rotationCache=this.rotation,this._sr=Math.sin(this.rotation),this._cr=Math.cos(this.rotation));var t=this.localTransform,e=this.parent.worldTransform,i=this.worldTransform;t[0]=this._cr*this.scale.x,t[1]=-this._sr*this.scale.y,t[3]=this._sr*this.scale.x,t[4]=this._cr*this.scale.y;var r=this.pivot.x,s=this.pivot.y;t[2]=this.position.x-t[0]*r-s*t[1],t[5]=this.position.y-t[4]*s-r*t[3];var n=t[0],a=t[1],o=t[2],h=t[3],u=t[4],d=t[5],c=e[0],l=e[1],I=e[2],p=e[3],f=e[4],x=e[5];i[0]=c*n+l*h,i[1]=c*a+l*u,i[2]=c*o+l*d+I,i[3]=p*n+f*h,i[4]=p*a+f*u,i[5]=p*o+f*d+x,this.worldAlpha=this.alpha*this.parent.worldAlpha},PIXI.DisplayObjectContainer=function(){PIXI.DisplayObject.call(this),this.children=[],this.renderable=!1},PIXI.DisplayObjectContainer.constructor=PIXI.DisplayObjectContainer,PIXI.DisplayObjectContainer.prototype=Object.create(PIXI.DisplayObject.prototype),PIXI.DisplayObjectContainer.prototype.addChild=function(t){void 0!=t.parent&&t.parent.removeChild(t),t.parent=this,t.childIndex=this.children.length,this.children.push(t),this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},PIXI.DisplayObjectContainer.prototype.addChildAt=function(t,e){if(!(e>=0&&this.children.length>=e))throw Error(t+" The index "+e+" supplied is out of bounds "+this.children.length);void 0!=t.parent&&t.parent.removeChild(t),e==this.children.length?this.children.push(t):this.children.splice(e,0,t),t.parent=this,t.childIndex=e;for(var i=this.children.length,r=e;i>r;r++)this.children[r].childIndex=r;this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},PIXI.DisplayObjectContainer.prototype.swapChildren=function(t,e){var i=this.children.indexOf(t),r=this.children.indexOf(e);if(-1===i||-1===r)throw Error(t+" Both the supplied DisplayObjects must be a child of the caller "+this);this.stage&&(this.stage.__removeChild(t),this.stage.__removeChild(e),this.stage.__addChild(t),this.stage.__addChild(e)),t.childIndex=r,e.childIndex=i,this.children[i]=e,this.children[r]=t},PIXI.DisplayObjectContainer.prototype.getChildAt=function(t){if(t>=0&&this.children.length>t)return this.children[t];throw Error(child+" Both the supplied DisplayObjects must be a child of the caller "+this)},PIXI.DisplayObjectContainer.prototype.removeChild=function(t){var e=this.children.indexOf(t);if(-1===e)throw Error(t+" The supplied DisplayObject must be a child of the caller "+this);this.stage&&this.stage.__removeChild(t),t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.parent=void 0,this.children.splice(e,1);for(var i=e,r=this.children.length;r>i;i++)this.children[i].childIndex-=1},PIXI.DisplayObjectContainer.prototype.updateTransform=function(){if(this.visible){PIXI.DisplayObject.prototype.updateTransform.call(this);for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform()}},PIXI.blendModes={},PIXI.blendModes.NORMAL=0,PIXI.blendModes.SCREEN=1,PIXI.Sprite=function(t){PIXI.DisplayObjectContainer.call(this),this.anchor=new PIXI.Point,this.texture=t,this.blendMode=PIXI.blendModes.NORMAL,this._width=0,this._height=0,t.baseTexture.hasLoaded?this.updateFrame=!0:(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},PIXI.Sprite.constructor=PIXI.Sprite,PIXI.Sprite.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),Object.defineProperty(PIXI.Sprite.prototype,"width",{get:function(){return this.scale.x*this.texture.frame.width},set:function(t){this.scale.x=t/this.texture.frame.width,this._width=t}}),Object.defineProperty(PIXI.Sprite.prototype,"height",{get:function(){return this.scale.y*this.texture.frame.height},set:function(t){this.scale.y=t/this.texture.frame.height,this._height=t}}),PIXI.Sprite.prototype.setTexture=function(t){this.texture.baseTexture!=t.baseTexture&&(this.textureChange=!0),this.texture=t,this.updateFrame=!0},PIXI.Sprite.prototype.onTextureUpdate=function(){this._width&&(this.scale.x=this._width/this.texture.frame.width),this._height&&(this.scale.y=this._height/this.texture.frame.height),this.updateFrame=!0},PIXI.Sprite.fromFrame=function(t){var e=PIXI.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache"+this);return new PIXI.Sprite(e)},PIXI.Sprite.fromImage=function(t){var e=PIXI.Texture.fromImage(t);return new PIXI.Sprite(e)},PIXI.MovieClip=function(t){PIXI.Sprite.call(this,t[0]),this.textures=t,this.currentFrame=0,this.animationSpeed=1,this.loop=!0,this.onComplete=null,this.playing},PIXI.MovieClip.constructor=PIXI.MovieClip,PIXI.MovieClip.prototype=Object.create(PIXI.Sprite.prototype),PIXI.MovieClip.prototype.stop=function(){this.playing=!1},PIXI.MovieClip.prototype.play=function(){this.playing=!0},PIXI.MovieClip.prototype.gotoAndStop=function(t){this.playing=!1,this.currentFrame=t;var e=0|this.currentFrame+.5;this.setTexture(this.textures[e%this.textures.length])},PIXI.MovieClip.prototype.gotoAndPlay=function(t){this.currentFrame=t,this.playing=!0},PIXI.MovieClip.prototype.updateTransform=function(){if(PIXI.Sprite.prototype.updateTransform.call(this),this.playing){this.currentFrame+=this.animationSpeed;var t=0|this.currentFrame+.5;this.loop||this.textures.length>t?this.setTexture(this.textures[t%this.textures.length]):t>=this.textures.length&&(this.gotoAndStop(this.textures.length-1),this.onComplete&&this.onComplete())}},PIXI.Text=function(t,e){this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"),PIXI.Sprite.call(this,PIXI.Texture.fromCanvas(this.canvas)),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},PIXI.Text.constructor=PIXI.Text,PIXI.Text.prototype=Object.create(PIXI.Sprite.prototype),PIXI.Text.prototype.setStyle=function(t){t=t||{},t.font=t.font||"bold 20pt Arial",t.fill=t.fill||"black",t.align=t.align||"left",t.strokeThickness=t.strokeThickness||0,this.style=t,this.dirty=!0},PIXI.Sprite.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},PIXI.Text.prototype.updateText=function(){this.context.font=this.style.font;for(var t=this.text.split(/(?:\r\n|\r|\n)/),e=[],i=0,r=0;t.length>r;r++){var s=this.context.measureText(t[r]).width;e[r]=s,i=Math.max(i,s)}this.canvas.width=i+this.style.strokeThickness;var n=this.determineFontHeight("font: "+this.style.font+";")+this.style.strokeThickness;for(this.canvas.height=n*t.length,this.context.fillStyle=this.style.fill,this.context.font=this.style.font,this.context.strokeStyle=this.style.stroke,this.context.lineWidth=this.style.strokeThickness,this.context.textBaseline="top",r=0;t.length>r;r++){var a=new PIXI.Point(this.style.strokeThickness/2,this.style.strokeThickness/2+r*n);"right"==this.style.align?a.x+=i-e[r]:"center"==this.style.align&&(a.x+=(i-e[r])/2),this.style.stroke&&this.style.strokeThickness&&this.context.strokeText(t[r],a.x,a.y),this.style.fill&&this.context.fillText(t[r],a.x,a.y)}this.updateTexture()},PIXI.Text.prototype.updateTexture=function(){this.texture.baseTexture.width=this.canvas.width,this.texture.baseTexture.height=this.canvas.height,this.texture.frame.width=this.canvas.width,this.texture.frame.height=this.canvas.height,this._width=this.canvas.width,this._height=this.canvas.height,PIXI.texturesToUpdate.push(this.texture.baseTexture)},PIXI.Text.prototype.updateTransform=function(){this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype.updateTransform.call(this)},PIXI.Text.prototype.determineFontHeight=function(t){var e=PIXI.Text.heightCache[t];if(!e){var i=document.getElementsByTagName("body")[0],r=document.createElement("div"),s=document.createTextNode("M");r.appendChild(s),r.setAttribute("style",t),i.appendChild(r),e=r.offsetHeight,PIXI.Text.heightCache[t]=e,i.removeChild(r)}return e},PIXI.Text.prototype.destroy=function(t){t&&this.texture.destroy()},PIXI.Text.heightCache={},PIXI.BitmapText=function(t,e){PIXI.DisplayObjectContainer.call(this),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},PIXI.BitmapText.constructor=PIXI.BitmapText,PIXI.BitmapText.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.BitmapText.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},PIXI.BitmapText.prototype.setStyle=function(t){t=t||{},t.align=t.align||"left",this.style=t;var e=t.font.split(" ");this.fontName=e[e.length-1],this.fontSize=e.length>=2?parseInt(e[e.length-2],10):PIXI.BitmapText.fonts[this.fontName].size,this.dirty=!0},PIXI.BitmapText.prototype.updateText=function(){for(var t=PIXI.BitmapText.fonts[this.fontName],e=new PIXI.Point,i=null,r=[],s=0,n=[],a=0,o=this.fontSize/t.size,h=0;this.text.length>h;h++){var u=this.text.charCodeAt(h);if(/(?:\r\n|\r|\n)/.test(this.text.charAt(h)))n.push(e.x),s=Math.max(s,e.x),a++,e.x=0,e.y+=t.lineHeight,i=null;else{var d=t.chars[u];d&&(i&&d[i]&&(e.x+=d.kerning[i]),r.push({line:a,charCode:u,position:new PIXI.Point(e.x+d.xOffset,e.y+d.yOffset)}),e.x+=d.xAdvance,i=u)}}n.push(e.x),s=Math.max(s,e.x);var c=[];for(h=0;a>=h;h++){var l=0;"right"==this.style.align?l=s-n[h]:"center"==this.style.align&&(l=(s-n[h])/2),c.push(l)}for(h=0;r.length>h;h++){var I=PIXI.Sprite.fromFrame(r[h].charCode);I.position.x=(r[h].position.x+c[r[h].line])*o,I.position.y=r[h].position.y*o,I.scale.x=I.scale.y=o,this.addChild(I)}this.width=e.x*o,this.height=(e.y+t.lineHeight)*o},PIXI.BitmapText.prototype.updateTransform=function(){if(this.dirty){for(;this.children.length>0;)this.removeChild(this.getChildAt(0));this.updateText(),this.dirty=!1}PIXI.DisplayObjectContainer.prototype.updateTransform.call(this)},PIXI.BitmapText.fonts={},PIXI.InteractionManager=function(t){this.stage=t,this.tempPoint=new PIXI.Point,this.mouseoverEnabled=!0,this.mouse=new PIXI.InteractionData,this.touchs={},this.pool=[],this.interactiveItems=[],this.last=0},PIXI.InteractionManager.constructor=PIXI.InteractionManager,PIXI.InteractionManager.prototype.collectInteractiveSprite=function(t,e){for(var i=t.children,r=i.length,s=r-1;s>=0;s--){var n=i[s];n.interactive?(e.interactiveChildren=!0,this.interactiveItems.push(n),n.children.length>0&&this.collectInteractiveSprite(n,n)):(n.__iParent=null,n.children.length>0&&this.collectInteractiveSprite(n,e))}},PIXI.InteractionManager.prototype.setTarget=function(t){window.navigator.msPointerEnabled&&(t.view.style["-ms-content-zooming"]="none",t.view.style["-ms-touch-action"]="none"),this.target=t,t.view.addEventListener("mousemove",this.onMouseMove.bind(this),!0),t.view.addEventListener("mousedown",this.onMouseDown.bind(this),!0),document.body.addEventListener("mouseup",this.onMouseUp.bind(this),!0),t.view.addEventListener("mouseout",this.onMouseUp.bind(this),!0),t.view.addEventListener("touchstart",this.onTouchStart.bind(this),!0),t.view.addEventListener("touchend",this.onTouchEnd.bind(this),!0),t.view.addEventListener("touchmove",this.onTouchMove.bind(this),!0)},PIXI.InteractionManager.prototype.update=function(){if(this.target){var t=Date.now(),e=t-this.last;if(e=30*e/1e3,!(1>e)){if(this.last=t,this.dirty){this.dirty=!1,this.interactiveItems.length;for(var i=0;this.interactiveItems.length>i;i++)this.interactiveItems[i].interactiveChildren=!1;this.interactiveItems=[],this.stage.interactive&&this.interactiveItems.push(this.stage),this.collectInteractiveSprite(this.stage,this.stage)}var r=this.interactiveItems.length;this.target.view.style.cursor="default";for(var i=0;r>i;i++){var s=this.interactiveItems[i];s.visible&&(s.mouseover||s.mouseout||s.buttonMode)&&(s.__hit=this.hitTest(s,this.mouse),s.__hit?(s.buttonMode&&(this.target.view.style.cursor="pointer"),s.__isOver||(s.mouseover&&s.mouseover(this.mouse),s.__isOver=!0)):s.__isOver&&(s.mouseout&&s.mouseout(this.mouse),s.__isOver=!1))}}}},PIXI.InteractionManager.prototype.onMouseMove=function(t){t.preventDefault();var e=this.target.view.getBoundingClientRect();this.mouse.global.x=(t.clientX-e.left)*(this.target.width/e.width),this.mouse.global.y=(t.clientY-e.top)*(this.target.height/e.height);var i=this.interactiveItems.length;this.mouse.global;for(var r=0;i>r;r++){var s=this.interactiveItems[r];s.mousemove&&s.mousemove(this.mouse)}},PIXI.InteractionManager.prototype.onMouseDown=function(t){t.preventDefault();var e=this.interactiveItems.length;this.mouse.global,this.stage;for(var i=0;e>i;i++){var r=this.interactiveItems[i];if((r.mousedown||r.click)&&(r.__mouseIsDown=!0,r.__hit=this.hitTest(r,this.mouse),r.__hit&&(r.mousedown&&r.mousedown(this.mouse),r.__isDown=!0,!r.interactiveChildren)))break}},PIXI.InteractionManager.prototype.onMouseUp=function(t){t.preventDefault(),this.mouse.global;for(var e=this.interactiveItems.length,i=!1,r=0;e>r;r++){var s=this.interactiveItems[r];(s.mouseup||s.mouseupoutside||s.click)&&(s.__hit=this.hitTest(s,this.mouse),s.__hit&&!i?(s.mouseup&&s.mouseup(this.mouse),s.__isDown&&s.click&&s.click(this.mouse),s.interactiveChildren||(i=!0)):s.__isDown&&s.mouseupoutside&&s.mouseupoutside(this.mouse),s.__isDown=!1)}},PIXI.InteractionManager.prototype.hitTest=function(t,e){var i=e.global;if(!t.visible)return!1;if(t instanceof PIXI.Sprite){var r=t.worldTransform,s=r[0],n=r[1],a=r[2],o=r[3],h=r[4],u=r[5],d=1/(s*h+n*-o),c=h*d*i.x+-n*d*i.y+(u*n-a*h)*d,l=s*d*i.y+-o*d*i.x+(-u*s+a*o)*d,I=t.texture.frame.width,p=t.texture.frame.height,f=-I*t.anchor.x;if(c>f&&f+I>c){var x=-p*t.anchor.y;if(l>x&&x+p>l)return e.target=t,!0}}else if(t.hitArea){var r=t.worldTransform,v=t.hitArea,s=r[0],n=r[1],a=r[2],o=r[3],h=r[4],u=r[5],d=1/(s*h+n*-o),c=h*d*i.x+-n*d*i.y+(u*n-a*h)*d,l=s*d*i.y+-o*d*i.x+(-u*s+a*o)*d,f=v.x;if(c>f&&f+v.width>c){var x=v.y;if(l>x&&x+v.height>l)return!0}}for(var P=t.children.length,g=0;P>g;g++){var b=t.children[g],X=this.hitTest(b,e);if(X)return!0}return!1},PIXI.InteractionManager.prototype.onTouchMove=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.touchs[s.identifier];n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height)}for(var a=this.interactiveItems.length,r=0;a>r;r++){var o=this.interactiveItems[r];o.touchmove&&o.touchmove(n)}},PIXI.InteractionManager.prototype.onTouchStart=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.pool.pop();n||(n=new PIXI.InteractionData),this.touchs[s.identifier]=n,n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height);for(var a=this.interactiveItems.length,o=0;a>o;o++){var h=this.interactiveItems[o];if((h.touchstart||h.tap)&&(h.__hit=this.hitTest(h,n),h.__hit&&(h.touchstart&&h.touchstart(n),h.__isDown=!0,h.__touchData=n,!h.interactiveChildren)))break}}},PIXI.InteractionManager.prototype.onTouchEnd=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.touchs[s.identifier],a=!1;n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var u=this.interactiveItems[h],d=u.__touchData;u.__hit=this.hitTest(u,n),d==n&&((u.touchend||u.tap)&&(u.__hit&&!a?(u.touchend&&u.touchend(n),u.__isDown&&u.tap&&u.tap(n),u.interactiveChildren||(a=!0)):u.__isDown&&u.touchendoutside&&u.touchendoutside(n),u.__isDown=!1),u.__touchData=null)}this.pool.push(n),this.touchs[s.identifier]=null}},PIXI.InteractionData=function(){this.global=new PIXI.Point,this.local=new PIXI.Point,this.target},PIXI.InteractionData.prototype.getLocalPosition=function(t){var e=t.worldTransform,i=this.global,r=e[0],s=e[1],n=e[2],a=e[3],o=e[4],h=e[5],u=1/(r*o+s*-a);return new PIXI.Point(o*u*i.x+-s*u*i.y+(h*s-n*o)*u,r*u*i.y+-a*u*i.x+(-h*r+n*a)*u)},PIXI.InteractionData.constructor=PIXI.InteractionData,PIXI.Stage=function(t,e){PIXI.DisplayObjectContainer.call(this),this.worldTransform=PIXI.mat3.create(),this.__childrenAdded=[],this.__childrenRemoved=[],this.childIndex=0,this.stage=this,this.stage.hitArea=new PIXI.Rectangle(0,0,1e5,1e5),this.interactive=!!e,this.interactionManager=new PIXI.InteractionManager(this),this.setBackgroundColor(t),this.worldVisible=!0},PIXI.Stage.constructor=PIXI.Stage,PIXI.Stage.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Stage.prototype.updateTransform=function(){this.worldAlpha=1;for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform();this.dirty&&(this.dirty=!1,this.interactionManager.dirty=!0),this.interactive&&this.interactionManager.update()},PIXI.Stage.prototype.setBackgroundColor=function(t){this.backgroundColor=t||0,this.backgroundColorSplit=HEXtoRGB(this.backgroundColor),this.backgroundColorString="#"+this.backgroundColor.toString(16)},PIXI.Stage.prototype.getMousePosition=function(){return this.interactionManager.mouse.global},PIXI.Stage.prototype.__addChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=this,t.children)for(var e=0;t.children.length>e;e++)this.__addChild(t.children[e])},PIXI.Stage.prototype.__removeChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=void 0,t.children)for(var e=0,i=t.children.length;i>e;e++)this.__removeChild(t.children[e])},window.requestAnimFrame=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(t){window.setTimeout(t,1e3/60)}}(),"function"!=typeof Function.prototype.bind&&(Function.prototype.bind=function(){var t=Array.prototype.slice;return function(e){function i(){var n=s.concat(t.call(arguments));r.apply(this instanceof i?this:e,n)}var r=this,s=t.call(arguments,1);if("function"!=typeof r)throw new TypeError;return i.prototype=function n(t){return t&&(n.prototype=t),this instanceof n?void 0:new n}(r.prototype),i}}());var AjaxRequest=function(){var t=["Msxml2.XMLHTTP","Microsoft.XMLHTTP"];if(!window.ActiveXObject)return window.XMLHttpRequest?new XMLHttpRequest:!1;for(var e=0;t.length>e;e++)try{return new ActiveXObject(t[e])}catch(i){}};PIXI.EventTarget=function(){var t={};this.addEventListener=this.on=function(e,i){void 0===t[e]&&(t[e]=[]),-1===t[e].indexOf(i)&&t[e].push(i)},this.dispatchEvent=this.emit=function(e){for(var i in t[e.type])t[e.type][i](e)},this.removeEventListener=this.off=function(e,i){var r=t[e].indexOf(i);-1!==r&&t[e].splice(r,1)}},determineMatrixArrayType(),PIXI.mat3={},PIXI.mat3.create=function(){var t=new PIXI.Matrix(9);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},PIXI.mat4={},PIXI.mat4.create=function(){var t=new PIXI.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},PIXI.mat3.multiply=function(t,e,i){i||(i=t);var r=t[0],s=t[1],n=t[2],a=t[3],o=t[4],h=t[5],u=t[6],d=t[7],c=t[8],l=e[0],I=e[1],p=e[2],f=e[3],x=e[4],v=e[5],P=e[6],g=e[7],b=e[8];return i[0]=l*r+I*a+p*u,i[1]=l*s+I*o+p*d,i[2]=l*n+I*h+p*c,i[3]=f*r+x*a+v*u,i[4]=f*s+x*o+v*d,i[5]=f*n+x*h+v*c,i[6]=P*r+g*a+b*u,i[7]=P*s+g*o+b*d,i[8]=P*n+g*h+b*c,i},PIXI.mat3.toMat4=function(t,e){return e||(e=PIXI.mat4.create()),e[15]=1,e[14]=0,e[13]=0,e[12]=0,e[11]=0,e[10]=t[8],e[9]=t[7],e[8]=t[6],e[7]=0,e[6]=t[5],e[5]=t[4],e[4]=t[3],e[3]=0,e[2]=t[2],e[1]=t[1],e[0]=t[0],e},PIXI.mat4.create=function(){var t=new PIXI.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},PIXI.mat4.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],s=t[3],n=t[6],a=t[7],o=t[11];return t[1]=t[4],t[2]=t[8],t[3]=t[12],t[4]=i,t[6]=t[9],t[7]=t[13],t[8]=r,t[9]=n,t[11]=t[14],t[12]=s,t[13]=a,t[14]=o,t}return e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=t[1],e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=t[2],e[9]=t[6],e[10]=t[10],e[11]=t[14],e[12]=t[3],e[13]=t[7],e[14]=t[11],e[15]=t[15],e},PIXI.mat4.multiply=function(t,e,i){i||(i=t);var r=t[0],s=t[1],n=t[2],a=t[3],o=t[4],h=t[5],u=t[6],d=t[7],c=t[8],l=t[9],I=t[10],p=t[11],f=t[12],x=t[13],v=t[14],P=t[15],g=e[0],b=e[1],X=e[2],m=e[3];return i[0]=g*r+b*o+X*c+m*f,i[1]=g*s+b*h+X*l+m*x,i[2]=g*n+b*u+X*I+m*v,i[3]=g*a+b*d+X*p+m*P,g=e[4],b=e[5],X=e[6],m=e[7],i[4]=g*r+b*o+X*c+m*f,i[5]=g*s+b*h+X*l+m*x,i[6]=g*n+b*u+X*I+m*v,i[7]=g*a+b*d+X*p+m*P,g=e[8],b=e[9],X=e[10],m=e[11],i[8]=g*r+b*o+X*c+m*f,i[9]=g*s+b*h+X*l+m*x,i[10]=g*n+b*u+X*I+m*v,i[11]=g*a+b*d+X*p+m*P,g=e[12],b=e[13],X=e[14],m=e[15],i[12]=g*r+b*o+X*c+m*f,i[13]=g*s+b*h+X*l+m*x,i[14]=g*n+b*u+X*I+m*v,i[15]=g*a+b*d+X*p+m*P,i},PIXI.autoDetectRenderer=function(t,e,i,r){t||(t=800),e||(e=600);var s=function(){try{return!!window.WebGLRenderingContext&&!!document.createElement("canvas").getContext("experimental-webgl")}catch(t){return!1}}();return s?new PIXI.WebGLRenderer(t,e,i,r):new PIXI.CanvasRenderer(t,e,i,r)},PIXI.shaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * vColor;","}"],PIXI.shaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform mat4 uMVMatrix;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","gl_Position = uMVMatrix * vec4(aVertexPosition, 1.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],PIXI.CompileVertexShader=function(t,e){return PIXI._CompileShader(t,e,t.VERTEX_SHADER)},PIXI.CompileFragmentShader=function(t,e){return PIXI._CompileShader(t,e,t.FRAGMENT_SHADER)},PIXI._CompileShader=function(t,e,i){var r=e.join("\n"),s=t.createShader(i);return t.shaderSource(s,r),t.compileShader(s),t.getShaderParameter(s,t.COMPILE_STATUS)?s:(alert(t.getShaderInfoLog(s)),null)},PIXI._defaultFrame=new PIXI.Rectangle(0,0,1,1),PIXI.gl,PIXI.WebGLRenderer=function(t,e,i,r){this.transparent=!!r,this.width=t||800,this.height=e||600,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height;var s=this;this.view.addEventListener("webglcontextlost",function(t){s.handleContextLost(t)},!1),this.view.addEventListener("webglcontextrestored",function(t){s.handleContextRestored(t)},!1),this.batchs=[];try{PIXI.gl=this.gl=this.view.getContext("experimental-webgl",{alpha:this.transparent,antialias:!1,premultipliedAlpha:!0})}catch(n){throw Error(" This browser does not support webGL. Try using the canvas renderer"+this)}this.initShaders();var a=this.gl;PIXI.WebGLRenderer.gl=a,this.batch=new PIXI.WebGLBatch(a),a.disable(a.DEPTH_TEST),a.disable(a.CULL_FACE),a.enable(a.BLEND),a.colorMask(!0,!0,!0,this.transparent),this.projectionMatrix=PIXI.mat4.create(),this.resize(this.width,this.height),this.contextLost=!1,this.stageRenderGroup=new PIXI.WebGLRenderGroup(this.gl)},PIXI.WebGLRenderer.constructor=PIXI.WebGLRenderer,PIXI.WebGLRenderer.getBatch=function(){return 0==PIXI._batchs.length?new PIXI.WebGLBatch(PIXI.WebGLRenderer.gl):PIXI._batchs.pop()},PIXI.WebGLRenderer.returnBatch=function(t){t.clean(),PIXI._batchs.push(t)},PIXI.WebGLRenderer.prototype.initShaders=function(){var t=this.gl,e=PIXI.CompileFragmentShader(t,PIXI.shaderFragmentSrc),i=PIXI.CompileVertexShader(t,PIXI.shaderVertexSrc);PIXI.shaderProgram=t.createProgram();var r=PIXI.shaderProgram;t.attachShader(r,i),t.attachShader(r,e),t.linkProgram(r),t.getProgramParameter(r,t.LINK_STATUS)||alert("Could not initialise shaders"),t.useProgram(r),r.vertexPositionAttribute=t.getAttribLocation(r,"aVertexPosition"),t.enableVertexAttribArray(r.vertexPositionAttribute),r.textureCoordAttribute=t.getAttribLocation(r,"aTextureCoord"),t.enableVertexAttribArray(r.textureCoordAttribute),r.colorAttribute=t.getAttribLocation(r,"aColor"),t.enableVertexAttribArray(r.colorAttribute),r.mvMatrixUniform=t.getUniformLocation(r,"uMVMatrix"),r.samplerUniform=t.getUniformLocation(r,"uSampler")},PIXI.WebGLRenderer.prototype.render=function(t){if(!this.contextLost){this.__stage!==t&&(this.__stage=t,this.stageRenderGroup.setRenderable(t)),PIXI.WebGLRenderer.updateTextures(),t.updateTransform();var e=this.gl;if(e.colorMask(!0,!0,!0,this.transparent),e.viewport(0,0,this.width,this.height),e.bindFramebuffer(e.FRAMEBUFFER,null),e.clearColor(t.backgroundColorSplit[0],t.backgroundColorSplit[1],t.backgroundColorSplit[2],this.transparent),e.clear(e.COLOR_BUFFER_BIT),this.stageRenderGroup.backgroundColor=t.backgroundColorSplit,this.stageRenderGroup.render(this.projectionMatrix),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),PIXI.Texture.frameUpdates.length>0){for(var i=0;PIXI.Texture.frameUpdates.length>i;i++)PIXI.Texture.frameUpdates[i].updateFrame=!1;PIXI.Texture.frameUpdates=[]}}},PIXI.WebGLRenderer.updateTextures=function(){for(var t=0;PIXI.texturesToUpdate.length>t;t++)this.updateTexture(PIXI.texturesToUpdate[t]);for(var t=0;PIXI.texturesToDestroy.length>t;t++)this.destroyTexture(PIXI.texturesToDestroy[t]);PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[]},PIXI.WebGLRenderer.updateTexture=function(t){var e=PIXI.gl;t._glTexture||(t._glTexture=e.createTexture()),t.hasLoaded&&(e.bindTexture(e.TEXTURE_2D,t._glTexture),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t.source),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),t._powerOf2?(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT)):(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)),e.bindTexture(e.TEXTURE_2D,null))},PIXI.WebGLRenderer.prototype.destroyTexture=function(t){var e=this.gl;t._glTexture&&(t._glTexture=e.createTexture(),e.deleteTexture(e.TEXTURE_2D,t._glTexture))},PIXI.WebGLRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e,this.gl.viewport(0,0,this.width,this.height);var i=this.projectionMatrix;i[0]=2/this.width,i[5]=-2/this.height,i[12]=-1,i[13]=1},PIXI.WebGLRenderer.prototype.handleContextLost=function(t){t.preventDefault(),this.contextLost=!0},PIXI.WebGLRenderer.prototype.handleContextRestored=function(){this.gl=this.view.getContext("experimental-webgl",{alpha:!0}),this.initShaders();for(var t=0;PIXI.TextureCache.length>t;t++)this.updateTexture(PIXI.TextureCache[t]);for(var t=0;this.batchs.length>t;t++)this.batchs[t].restoreLostContext(this.gl),this.batchs[t].dirty=!0;PIXI._restoreBatchs(this.gl),this.contextLost=!1},PIXI._batchs=[],PIXI._getBatch=function(t){return 0==PIXI._batchs.length?new PIXI.WebGLBatch(t):PIXI._batchs.pop()},PIXI._returnBatch=function(t){t.clean(),PIXI._batchs.push(t)},PIXI._restoreBatchs=function(t){for(var e=0;PIXI._batchs.length>e;e++)PIXI._batchs[e].restoreLostContext(t)},PIXI.WebGLBatch=function(t){this.gl=t,this.size=0,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer(),this.blendMode=PIXI.blendModes.NORMAL,this.dynamicSize=1},PIXI.WebGLBatch.constructor=PIXI.WebGLBatch,PIXI.WebGLBatch.prototype.clean=function(){this.verticies=[],this.uvs=[],this.indices=[],this.colors=[],this.dynamicSize=1,this.texture=null,this.last=null,this.size=0,this.head,this.tail},PIXI.WebGLBatch.prototype.restoreLostContext=function(t){this.gl=t,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer()},PIXI.WebGLBatch.prototype.init=function(t){t.batch=this,this.dirty=!0,this.blendMode=t.blendMode,this.texture=t.texture.baseTexture,this.head=t,this.tail=t,this.size=1,this.growBatch()},PIXI.WebGLBatch.prototype.insertBefore=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__prev;e.__prev=t,t.__next=e,i?(t.__prev=i,i.__next=t):this.head=t},PIXI.WebGLBatch.prototype.insertAfter=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__next;e.__next=t,t.__prev=e,i?(t.__next=i,i.__prev=t):this.tail=t},PIXI.WebGLBatch.prototype.remove=function(t){return this.size--,0==this.size?(t.batch=null,t.__prev=null,t.__next=null,void 0):(t.__prev?t.__prev.__next=t.__next:(this.head=t.__next,this.head.__prev=null),t.__next?t.__next.__prev=t.__prev:(this.tail=t.__prev,this.tail.__next=null),t.batch=null,t.__next=null,t.__prev=null,this.dirty=!0,void 0)},PIXI.WebGLBatch.prototype.split=function(t){this.dirty=!0;var e=new PIXI.WebGLBatch(this.gl);e.init(t),e.tail=this.tail,this.tail=t.__prev,this.tail.__next=null,t.__prev=null;for(var i=0;t;)i++,t.batch=e,t=t.__next;return e.size=i,this.size-=i,e},PIXI.WebGLBatch.prototype.merge=function(t){this.dirty=!0,this.tail.__next=t.head,t.head.__prev=this.tail,this.size+=t.size,this.tail=t.tail;for(var e=t.head;e;)e.batch=this,e=e.__next},PIXI.WebGLBatch.prototype.growBatch=function(){var t=this.gl;this.dynamicSize=1==this.size?1:1.5*this.size,this.verticies=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.vertexBuffer),t.bufferData(t.ARRAY_BUFFER,this.verticies,t.DYNAMIC_DRAW),this.uvs=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.uvBuffer),t.bufferData(t.ARRAY_BUFFER,this.uvs,t.DYNAMIC_DRAW),this.dirtyUVS=!0,this.colors=new Float32Array(4*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.colorBuffer),t.bufferData(t.ARRAY_BUFFER,this.colors,t.DYNAMIC_DRAW),this.dirtyColors=!0,this.indices=new Uint16Array(6*this.dynamicSize);for(var e=this.indices.length/6,i=0;e>i;i++){var r=6*i,s=4*i;this.indices[r+0]=s+0,this.indices[r+1]=s+1,this.indices[r+2]=s+2,this.indices[r+3]=s+0,this.indices[r+4]=s+2,this.indices[r+5]=s+3}t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,this.indexBuffer),t.bufferData(t.ELEMENT_ARRAY_BUFFER,this.indices,t.STATIC_DRAW)},PIXI.WebGLBatch.prototype.refresh=function(){this.gl,this.dynamicSizer;r++)i=this.batchs[r],i instanceof PIXI.WebGLBatch?this.batchs[r].render():i instanceof PIXI.TilingSprite?i.visible&&this.renderTilingSprite(i,t):i instanceof PIXI.Strip&&i.visible&&this.renderStrip(i,t)},PIXI.WebGLRenderGroup.prototype.renderSpecific=function(t,e){PIXI.WebGLRenderer.updateTextures();var i=this.gl;this.checkVisibility(t,t.visible),i.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform,!1,e);var r,s,n,a,o=t.renderable?t:this.getNextRenderable(t),h=o.batch;if(o instanceof PIXI.Sprite){h=o.batch;var u=h.head;if(u==o)r=0;else for(r=1;u.__next!=o;)r++,u=u.__next}else h=o;for(var d,c=t,l=t;l.children.length>0;)l=l.children[l.children.length-1],l.renderable&&(c=l);if(c instanceof PIXI.Sprite){d=c.batch;var u=d.head;if(u==c)n=0;else for(n=1;u.__next!=c;)n++,u=u.__next}else d=c;if(h==d)return h instanceof PIXI.WebGLBatch?h.render(r,n+1):h instanceof PIXI.TilingSprite?h.visible&&this.renderTilingSprite(h,e):h instanceof PIXI.Strip?h.visible&&this.renderStrip(h,e):h instanceof PIXI.CustomRenderable&&h.visible&&h.renderWebGL(this,e),void 0;s=this.batchs.indexOf(h),a=this.batchs.indexOf(d),h instanceof PIXI.WebGLBatch?h.render(r):h instanceof PIXI.TilingSprite?h.visible&&this.renderTilingSprite(h,e):h instanceof PIXI.Strip?h.visible&&this.renderStrip(h,e):h instanceof PIXI.CustomRenderable&&h.visible&&h.renderWebGL(this,e);for(var I=s+1;a>I;I++)renderable=this.batchs[I],renderable instanceof PIXI.WebGLBatch?this.batchs[I].render():renderable instanceof PIXI.TilingSprite?renderable.visible&&this.renderTilingSprite(renderable,e):renderable instanceof PIXI.Strip?renderable.visible&&this.renderStrip(renderable,e):renderable instanceof PIXI.CustomRenderable&&renderable.visible&&renderable.renderWebGL(this,e);d instanceof PIXI.WebGLBatch?d.render(0,n+1):d instanceof PIXI.TilingSprite?d.visible&&this.renderTilingSprite(d):d instanceof PIXI.Strip?d.visible&&this.renderStrip(d):d instanceof PIXI.CustomRenderable&&d.visible&&d.renderWebGL(this,e)},PIXI.WebGLRenderGroup.prototype.checkVisibility=function(t,e){for(var i=t.children,r=0;i.length>r;r++){var s=i[r];s.worldVisible=s.visible&&e,s.textureChange&&(s.textureChange=!1,s.worldVisible&&(this.removeDisplayObject(s),this.addDisplayObject(s))),s.children.length>0&&this.checkVisibility(s,s.worldVisible)}},PIXI.WebGLRenderGroup.prototype.addDisplayObject=function(t){if(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.__renderGroup=this,t.renderable){var e=this.getPreviousRenderable(t),i=this.getNextRenderable(t);if(t instanceof PIXI.Sprite){var r,s;if(e instanceof PIXI.Sprite){if(r=e.batch,r&&r.texture==t.texture.baseTexture&&r.blendMode==t.blendMode)return r.insertAfter(t,e),void 0}else r=e;if(i)if(i instanceof PIXI.Sprite){if(s=i.batch){if(s.texture==t.texture.baseTexture&&s.blendMode==t.blendMode)return s.insertBefore(t,i),void 0;if(s==r){var n=r.split(i),a=PIXI.WebGLRenderer.getBatch(),o=this.batchs.indexOf(r);return a.init(t),this.batchs.splice(o+1,0,a,n),void 0}}}else s=i;var a=PIXI.WebGLRenderer.getBatch();if(a.init(t),r){var o=this.batchs.indexOf(r);this.batchs.splice(o+1,0,a)}else this.batchs.push(a)}else t instanceof PIXI.TilingSprite?(this.initTilingSprite(t),this.batchs.push(t)):t instanceof PIXI.Strip&&(this.initStrip(t),this.batchs.push(t));this.batchUpdate=!0}},PIXI.WebGLRenderGroup.prototype.addDisplayObjectAndChildren=function(t){this.addDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.addDisplayObjectAndChildren(e[i])},PIXI.WebGLRenderGroup.prototype.removeDisplayObject=function(t){if(t.__renderGroup=null,t.renderable){var e;if(t instanceof PIXI.Sprite){var i=t.batch;if(!i)return;i.remove(t),0==i.size&&(e=i)}else e=t;if(e){var r=this.batchs.indexOf(e);if(-1==r)return;if(0==r||r==this.batchs.length-1)return this.batchs.splice(r,1),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e),void 0;if(this.batchs[r-1]instanceof PIXI.WebGLBatch&&this.batchs[r+1]instanceof PIXI.WebGLBatch&&this.batchs[r-1].texture==this.batchs[r+1].texture&&this.batchs[r-1].blendMode==this.batchs[r+1].blendMode)return this.batchs[r-1].merge(this.batchs[r+1]),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e),PIXI.WebGLRenderer.returnBatch(this.batchs[r+1]),this.batchs.splice(r,2),void 0;this.batchs.splice(r,1),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e)}}},PIXI.WebGLRenderGroup.prototype.removeDisplayObjectAndChildren=function(t){if(t.__renderGroup==this){this.removeDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.removeDisplayObjectAndChildren(e[i])}},PIXI.WebGLRenderGroup.prototype.getNextRenderable=function(t){var e=t;do{if(0==e.children.length){if(!e.parent)return null;for(;e.childIndex==e.parent.children.length-1;)if(e=e.parent,e==this.root||!e.parent){e=null;break}e&&(e=e.parent.children[e.childIndex+1])}else e=e.children[0];if(!e)break}while(!e.renderable||!e.__renderGroup);return e},PIXI.WebGLRenderGroup.prototype.getPreviousRenderable=function(t){var e=t;do{if(0==e.childIndex){if(e=e.parent,!e)return null}else for(e=e.parent.children[e.childIndex-1];0!=e.children.length;)e=e.children[e.children.length-1];if(e==this.root)break}while(!e.renderable||!e.__renderGroup);return e},PIXI.WebGLRenderGroup.prototype.initTilingSprite=function(t){var e=this.gl;t.verticies=new Float32Array([0,0,t.width,0,t.width,t.height,0,t.height]),t.uvs=new Float32Array([0,0,1,0,1,1,0,1]),t.colors=new Float32Array([1,1,1,1]),t.indices=new Uint16Array([0,1,3,2]),t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW),t.texture.baseTexture._glTexture?(e.bindTexture(e.TEXTURE_2D,t.texture.baseTexture._glTexture),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT),t.texture.baseTexture._powerOf2=!0):t.texture.baseTexture._powerOf2=!0},PIXI.WebGLRenderGroup.prototype.renderStrip=function(t,e){var i=this.gl,r=PIXI.shaderProgram,s=PIXI.mat3.toMat4(t.worldTransform);PIXI.mat4.transpose(s),PIXI.mat4.multiply(e,s,s),i.uniformMatrix4fv(r.mvMatrixUniform,!1,s),t.blendMode==PIXI.blendModes.NORMAL?i.blendFunc(i.ONE,i.ONE_MINUS_SRC_ALPHA):i.blendFunc(i.ONE,i.ONE_MINUS_SRC_COLOR),t.dirty?(t.dirty=!1,i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferData(i.ARRAY_BUFFER,t.verticies,i.STATIC_DRAW),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferData(i.ARRAY_BUFFER,t.uvs,i.STATIC_DRAW),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.bufferData(i.ARRAY_BUFFER,t.colors,i.STATIC_DRAW),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer),i.bufferData(i.ELEMENT_ARRAY_BUFFER,t.indices,i.STATIC_DRAW)):(i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.verticies),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer)),i.drawElements(i.TRIANGLE_STRIP,t.indices.length,i.UNSIGNED_SHORT,0),i.uniformMatrix4fv(r.mvMatrixUniform,!1,e)},PIXI.WebGLRenderGroup.prototype.renderTilingSprite=function(t,e){var i=this.gl;PIXI.shaderProgram;var r=t.tilePosition,s=t.tileScale,n=r.x/t.texture.baseTexture.width,a=r.y/t.texture.baseTexture.height,o=t.width/t.texture.baseTexture.width/s.x,h=t.height/t.texture.baseTexture.height/s.y;t.uvs[0]=0-n,t.uvs[1]=0-a,t.uvs[2]=1*o-n,t.uvs[3]=0-a,t.uvs[4]=1*o-n,t.uvs[5]=1*h-a,t.uvs[6]=0-n,t.uvs[7]=1*h-a,i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.uvs),this.renderStrip(t,e)},PIXI.WebGLRenderer.prototype.initStrip=function(t){var e=this.gl;this.shaderProgram,t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW)},PIXI.CanvasRenderer=function(t,e,i,r){this.transparent=r,this.width=t||800,this.height=e||600,this.refresh=!0,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height,this.count=0,this.context=this.view.getContext("2d")},PIXI.CanvasRenderer.constructor=PIXI.CanvasRenderer,PIXI.CanvasRenderer.prototype.render=function(t){PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[],t.updateTransform(),this.view.style.backgroundColor==t.backgroundColorString||this.transparent||(this.view.style.backgroundColor=t.backgroundColorString),this.context.setTransform(1,0,0,1,0,0),this.context.clearRect(0,0,this.width,this.height),this.renderDisplayObject(t),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),PIXI.Texture.frameUpdates.length>0&&(PIXI.Texture.frameUpdates=[])},PIXI.CanvasRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e},PIXI.CanvasRenderer.prototype.renderDisplayObject=function(t){var e=t.worldTransform,i=this.context;if(t.visible){if(t instanceof PIXI.Sprite){var r=t.texture.frame;r&&(i.globalAlpha=t.worldAlpha,i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),i.drawImage(t.texture.baseTexture.source,r.x,r.y,r.width,r.height,t.anchor.x*-r.width,t.anchor.y*-r.height,r.width,r.height))}else t instanceof PIXI.Strip?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderStrip(t)):t instanceof PIXI.TilingSprite?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderTilingSprite(t)):t instanceof PIXI.CustomRenderable&&t.renderCanvas(this);for(var s=0;t.children.length>s;s++)this.renderDisplayObject(t.children[s]);this.context.setTransform(1,0,0,1,0,0)}},PIXI.CanvasRenderer.prototype.renderStripFlat=function(t){var e=this.context,i=t.verticies;t.uvs;var r=i.length/2;this.count++,e.beginPath();for(var s=1;r-2>s;s++){var n=2*s,a=i[n],o=i[n+2],h=i[n+4],u=i[n+1],d=i[n+3],c=i[n+5];e.moveTo(a,u),e.lineTo(o,d),e.lineTo(h,c)}e.fillStyle="#FF0000",e.fill(),e.closePath()},PIXI.CanvasRenderer.prototype.renderTilingSprite=function(t){var e=this.context;t.__tilePattern||(t.__tilePattern=e.createPattern(t.texture.baseTexture.source,"repeat")),e.beginPath();var i=t.tilePosition,r=t.tileScale;e.scale(r.x,r.y),e.translate(i.x,i.y),e.fillStyle=t.__tilePattern,e.fillRect(-i.x,-i.y,t.width/r.x,t.height/r.y),e.scale(1/r.x,1/r.y),e.translate(-i.x,-i.y),e.closePath()},PIXI.CanvasRenderer.prototype.renderStrip=function(t){var e=this.context,i=t.verticies,r=t.uvs,s=i.length/2;this.count++;for(var n=1;s-2>n;n++){var a=2*n,o=i[a],h=i[a+2],u=i[a+4],d=i[a+1],c=i[a+3],l=i[a+5],I=r[a]*t.texture.width,p=r[a+2]*t.texture.width,f=r[a+4]*t.texture.width,x=r[a+1]*t.texture.height,v=r[a+3]*t.texture.height,P=r[a+5]*t.texture.height;e.save(),e.beginPath(),e.moveTo(o,d),e.lineTo(h,c),e.lineTo(u,l),e.closePath(),e.clip();var g=I*v+x*f+p*P-v*f-x*p-I*P,b=o*v+x*u+h*P-v*u-x*h-o*P,X=I*h+o*f+p*u-h*f-o*p-I*u,m=I*v*u+x*h*f+o*p*P-o*v*f-x*p*u-I*h*P,T=d*v+x*l+c*P-v*l-x*c-d*P,y=I*c+d*f+p*l-c*f-d*p-I*l,_=I*v*l+x*c*f+d*p*P-d*v*f-x*p*l-I*c*P;e.transform(b/g,T/g,X/g,y/g,m/g,_/g),e.drawImage(t.texture.baseTexture.source,0,0),e.restore()}},PIXI.Strip=function(t,e,i){PIXI.DisplayObjectContainer.call(this),this.texture=t,this.blendMode=PIXI.blendModes.NORMAL;try{this.uvs=new Float32Array([0,1,1,1,1,0,0,1]),this.verticies=new Float32Array([0,0,0,0,0,0,0,0,0]),this.colors=new Float32Array([1,1,1,1]),this.indices=new Uint16Array([0,1,2,3])}catch(r){this.uvs=[0,1,1,1,1,0,0,1],this.verticies=[0,0,0,0,0,0,0,0,0],this.colors=[1,1,1,1],this.indices=[0,1,2,3]}this.width=e,this.height=i,t.baseTexture.hasLoaded?(this.width=this.texture.frame.width,this.height=this.texture.frame.height,this.updateFrame=!0):(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},PIXI.Strip.constructor=PIXI.Strip,PIXI.Strip.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Strip.prototype.setTexture=function(t){this.texture=t,this.width=t.frame.width,this.height=t.frame.height,this.updateFrame=!0},PIXI.Strip.prototype.onTextureUpdate=function(){this.updateFrame=!0},PIXI.Rope=function(t,e){PIXI.Strip.call(this,t),this.points=e;try{this.verticies=new Float32Array(4*e.length),this.uvs=new Float32Array(4*e.length),this.colors=new Float32Array(2*e.length),this.indices=new Uint16Array(2*e.length)}catch(i){this.verticies=verticies,this.uvs=uvs,this.colors=colors,this.indices=indices}this.refresh()},PIXI.Rope.constructor=PIXI.Rope,PIXI.Rope.prototype=Object.create(PIXI.Strip.prototype),PIXI.Rope.prototype.refresh=function(){var t=this.points;if(!(1>t.length)){var e=this.uvs,i=this.indices,r=this.colors,s=t[0],n=t[0];this.count-=.2,e[0]=0,e[1]=1,e[2]=0,e[3]=1,r[0]=1,r[1]=1,i[0]=0,i[1]=1;for(var a=t.length,o=1;a>o;o++){var n=t[o],h=4*o,u=o/(a-1);o%2?(e[h]=u,e[h+1]=0,e[h+2]=u,e[h+3]=1):(e[h]=u,e[h+1]=0,e[h+2]=u,e[h+3]=1),h=2*o,r[h]=1,r[h+1]=1,h=2*o,i[h]=h,i[h+1]=h+1,s=n}}},PIXI.Rope.prototype.updateTransform=function(){var t=this.points;if(!(1>t.length)){var e,i=this.verticies,r=t[0],s={x:0,y:0},n=t[0];this.count-=.2,i[0]=n.x+s.x,i[1]=n.y+s.y,i[2]=n.x-s.x,i[3]=n.y-s.y;for(var a=t.length,o=1;a>o;o++){var n=t[o],h=4*o;e=t.length-1>o?t[o+1]:n,s.y=-(e.x-r.x),s.x=e.y-r.y;var u=10*(1-o/(a-1));u>1&&(u=1);var d=Math.sqrt(s.x*s.x+s.y*s.y),c=this.texture.height/2;s.x/=d,s.y/=d,s.x*=c,s.y*=c,i[h]=n.x+s.x,i[h+1]=n.y+s.y,i[h+2]=n.x-s.x,i[h+3]=n.y-s.y,r=n}PIXI.DisplayObjectContainer.prototype.updateTransform.call(this)}},PIXI.Rope.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0},PIXI.TilingSprite=function(t,e,i){PIXI.DisplayObjectContainer.call(this),this.texture=t,this.width=e,this.height=i,this.renderable=!0,this.tileScale=new PIXI.Point(1,1),this.tilePosition=new PIXI.Point(0,0),this.blendMode=PIXI.blendModes.NORMAL},PIXI.TilingSprite.constructor=PIXI.TilingSprite,PIXI.TilingSprite.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.TilingSprite.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0},PIXI.TilingSprite.prototype.onTextureUpdate=function(){this.updateFrame=!0},PIXI.CustomRenderable=function(){PIXI.DisplayObject.call(this)},PIXI.CustomRenderable.constructor=PIXI.CustomRenderable,PIXI.CustomRenderable.prototype=Object.create(PIXI.DisplayObject.prototype),PIXI.CustomRenderable.prototype.renderCanvas=function(){},PIXI.CustomRenderable.prototype.initWebGL=function(){},PIXI.CustomRenderable.prototype.renderWebGL=function(){},PIXI.BaseTextureCache={},PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[],PIXI.BaseTexture=function(t){if(PIXI.EventTarget.call(this),this.width=100,this.height=100,this.source=t,t){if(this.source instanceof Image)if(this.source.complete)this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,PIXI.texturesToUpdate.push(this);else{var e=this;this.source.onload=function(){e.hasLoaded=!0,e.width=e.source.width,e.height=e.source.height,PIXI.texturesToUpdate.push(e),e.dispatchEvent({type:"loaded",content:e})}}else this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,PIXI.texturesToUpdate.push(this);this._powerOf2=!1}},PIXI.BaseTexture.constructor=PIXI.BaseTexture,PIXI.BaseTexture.prototype.destroy=function(){this.source instanceof Image&&(this.source.src=null),this.source=null,PIXI.texturesToDestroy.push(this)},PIXI.BaseTexture.fromImage=function(t,e){var i=PIXI.BaseTextureCache[t];if(!i){var r=new Image;e&&(r.crossOrigin=""),r.src=t,i=new PIXI.BaseTexture(r),PIXI.BaseTextureCache[t]=i}return i},PIXI.TextureCache={},PIXI.FrameCache={},PIXI.Texture=function(t,e){if(PIXI.EventTarget.call(this),e||(this.noFrame=!0,e=new PIXI.Rectangle(0,0,1,1)),this.trim=new PIXI.Point,t instanceof PIXI.Texture&&(t=t.baseTexture),this.baseTexture=t,this.frame=e,this.scope=this,t.hasLoaded)this.noFrame&&(e=new PIXI.Rectangle(0,0,t.width,t.height)),this.setFrame(e);else{var i=this;t.addEventListener("loaded",function(){i.onBaseTextureLoaded()})}},PIXI.Texture.constructor=PIXI.Texture,PIXI.Texture.prototype.onBaseTextureLoaded=function(){var t=this.baseTexture;t.removeEventListener("loaded",this.onLoaded),this.noFrame&&(this.frame=new PIXI.Rectangle(0,0,t.width,t.height)),this.noFrame=!1,this.width=this.frame.width,this.height=this.frame.height,this.scope.dispatchEvent({type:"update",content:this})},PIXI.Texture.prototype.destroy=function(t){t&&this.baseTexture.destroy()},PIXI.Texture.prototype.setFrame=function(t){if(this.frame=t,this.width=t.width,this.height=t.height,t.x+t.width>this.baseTexture.width||t.y+t.height>this.baseTexture.height)throw Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);this.updateFrame=!0,PIXI.Texture.frameUpdates.push(this)},PIXI.Texture.fromImage=function(t,e){var i=PIXI.TextureCache[t];return i||(i=new PIXI.Texture(PIXI.BaseTexture.fromImage(t,e)),PIXI.TextureCache[t]=i),i},PIXI.Texture.fromFrame=function(t){var e=PIXI.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache "+this);return e},PIXI.Texture.fromCanvas=function(t){var e=new PIXI.BaseTexture(t);return new PIXI.Texture(e)},PIXI.Texture.addTextureToCache=function(t,e){PIXI.TextureCache[e]=t},PIXI.Texture.removeTextureFromCache=function(t){var e=PIXI.TextureCache[t];return PIXI.TextureCache[t]=null,e},PIXI.Texture.frameUpdates=[],PIXI.RenderTexture=function(t,e){PIXI.EventTarget.call(this),this.width=t||100,this.height=e||100,this.indetityMatrix=PIXI.mat3.create(),this.frame=new PIXI.Rectangle(0,0,this.width,this.height),PIXI.gl?this.initWebGL():this.initCanvas()},PIXI.RenderTexture.constructor=PIXI.RenderTexture,PIXI.RenderTexture.prototype=Object.create(PIXI.Texture.prototype),PIXI.RenderTexture.prototype.initWebGL=function(){var t=PIXI.gl;this.glFramebuffer=t.createFramebuffer(),t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),this.glFramebuffer.width=this.width,this.glFramebuffer.height=this.height,this.baseTexture=new PIXI.BaseTexture,this.baseTexture.width=this.width,this.baseTexture.height=this.height,this.baseTexture._glTexture=t.createTexture(),t.bindTexture(t.TEXTURE_2D,this.baseTexture._glTexture),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,this.width,this.height,0,t.RGBA,t.UNSIGNED_BYTE,null),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),this.baseTexture.isRender=!0,t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,this.baseTexture._glTexture,0),this.projectionMatrix=PIXI.mat4.create(),this.projectionMatrix[5]=2/this.height,this.projectionMatrix[13]=-1,this.projectionMatrix[0]=2/this.width,this.projectionMatrix[12]=-1,this.render=this.renderWebGL},PIXI.RenderTexture.prototype.initCanvas=function(){this.renderer=new PIXI.CanvasRenderer(this.width,this.height,null,0),this.baseTexture=new PIXI.BaseTexture(this.renderer.view),this.frame=new PIXI.Rectangle(0,0,this.width,this.height),this.render=this.renderCanvas},PIXI.RenderTexture.prototype.renderWebGL=function(t,e){var i=PIXI.gl;i.colorMask(!0,!0,!0,!0),i.viewport(0,0,this.width,this.height),i.bindFramebuffer(i.FRAMEBUFFER,this.glFramebuffer),e&&(i.clearColor(0,0,0,0),i.clear(i.COLOR_BUFFER_BIT));var r=t.children;t.worldTransform=PIXI.mat3.create();for(var s=0,n=r.length;n>s;s++)r[s].updateTransform();var a=t.__renderGroup;a?t==a.root?a.render(this.projectionMatrix):a.renderSpecific(t,this.projectionMatrix):(this.renderGroup||(this.renderGroup=new PIXI.WebGLRenderGroup(i)),this.renderGroup.setRenderable(t),this.renderGroup.render(this.projectionMatrix))},PIXI.RenderTexture.prototype.renderCanvas=function(t,e){var i=t.children;t.worldTransform=PIXI.mat3.create();for(var r=0,s=i.length;s>r;r++)i[r].updateTransform();e&&this.renderer.context.clearRect(0,0,this.width,this.height),this.renderer.renderDisplayObject(t),PIXI.texturesToUpdate.push(this.baseTexture)},PIXI.AssetLoader=function(t){PIXI.EventTarget.call(this),this.assetURLs=t,this.crossorigin=!1,this.loadersByType={jpg:PIXI.ImageLoader,jpeg:PIXI.ImageLoader,png:PIXI.ImageLoader,gif:PIXI.ImageLoader,json:PIXI.SpriteSheetLoader,xml:PIXI.BitmapFontLoader,fnt:PIXI.BitmapFontLoader}},PIXI.AssetLoader.constructor=PIXI.AssetLoader,PIXI.AssetLoader.prototype.load=function(){var t=this;this.loadCount=this.assetURLs.length;for(var e=0;this.assetURLs.length>e;e++){var i=this.assetURLs[e],r=i.split(".").pop().toLowerCase(),s=this.loadersByType[r];if(!s)throw Error(r+" is an unsupported file type");var n=new s(i,this.crossorigin);n.addEventListener("loaded",function(){t.onAssetLoaded()}),n.load()}},PIXI.AssetLoader.prototype.onAssetLoaded=function(){this.loadCount--,this.dispatchEvent({type:"onProgress",content:this}),this.onProgress&&this.onProgress(),0==this.loadCount&&(this.dispatchEvent({type:"onComplete",content:this}),this.onComplete&&this.onComplete())},PIXI.SpriteSheetLoader=function(t,e){PIXI.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.frames={},this.crossorigin=e},PIXI.SpriteSheetLoader.constructor=PIXI.SpriteSheetLoader,PIXI.SpriteSheetLoader.prototype.load=function(){this.ajaxRequest=new AjaxRequest;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onJSONLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/json"),this.ajaxRequest.send(null)},PIXI.SpriteSheetLoader.prototype.onJSONLoaded=function(){if(4==this.ajaxRequest.readyState&&(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))){var jsonData=eval("("+this.ajaxRequest.responseText+")"),textureUrl=this.baseUrl+jsonData.meta.image,image=new PIXI.ImageLoader(textureUrl,this.crossorigin);this.texture=image.texture.baseTexture;var scope=this;image.addEventListener("loaded",function(){scope.onLoaded()});var frameData=jsonData.frames;for(var i in frameData){var rect=frameData[i].frame;rect&&(PIXI.TextureCache[i]=new PIXI.Texture(this.texture,{x:rect.x,y:rect.y,width:rect.w,height:rect.h}),frameData[i].trimmed&&(PIXI.TextureCache[i].realSize=frameData[i].spriteSourceSize,PIXI.TextureCache[i].trim.x=0))}image.load()}},PIXI.SpriteSheetLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},PIXI.ImageLoader=function(t,e){PIXI.EventTarget.call(this),this.texture=PIXI.Texture.fromImage(t,e)},PIXI.ImageLoader.constructor=PIXI.ImageLoader,PIXI.ImageLoader.prototype.load=function(){if(this.texture.baseTexture.hasLoaded)this.onLoaded();else{var t=this;this.texture.baseTexture.addEventListener("loaded",function(){t.onLoaded()})}},PIXI.ImageLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},PIXI.BitmapFontLoader=function(t,e){PIXI.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.crossorigin=e},PIXI.BitmapFontLoader.constructor=PIXI.BitmapFontLoader,PIXI.BitmapFontLoader.prototype.load=function(){this.ajaxRequest=new XMLHttpRequest;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onXMLLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/xml"),this.ajaxRequest.send(null)},PIXI.BitmapFontLoader.prototype.onXMLLoaded=function(){if(4==this.ajaxRequest.readyState&&(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))){var t=this.baseUrl+this.ajaxRequest.responseXML.getElementsByTagName("page")[0].attributes.getNamedItem("file").nodeValue,e=new PIXI.ImageLoader(t,this.crossorigin);this.texture=e.texture.baseTexture;var i={},r=this.ajaxRequest.responseXML.getElementsByTagName("info")[0],s=this.ajaxRequest.responseXML.getElementsByTagName("common")[0];i.font=r.attributes.getNamedItem("face").nodeValue,i.size=parseInt(r.attributes.getNamedItem("size").nodeValue,10),i.lineHeight=parseInt(s.attributes.getNamedItem("lineHeight").nodeValue,10),i.chars={};for(var n=this.ajaxRequest.responseXML.getElementsByTagName("char"),a=0;n.length>a;a++){var o=parseInt(n[a].attributes.getNamedItem("id").nodeValue,10),h={x:parseInt(n[a].attributes.getNamedItem("x").nodeValue,10),y:parseInt(n[a].attributes.getNamedItem("y").nodeValue,10),width:parseInt(n[a].attributes.getNamedItem("width").nodeValue,10),height:parseInt(n[a].attributes.getNamedItem("height").nodeValue,10)};PIXI.TextureCache[o]=new PIXI.Texture(this.texture,h),i.chars[o]={xOffset:parseInt(n[a].attributes.getNamedItem("xoffset").nodeValue,10),yOffset:parseInt(n[a].attributes.getNamedItem("yoffset").nodeValue,10),xAdvance:parseInt(n[a].attributes.getNamedItem("xadvance").nodeValue,10),kerning:{}}}var u=this.ajaxRequest.responseXML.getElementsByTagName("kerning");for(a=0;u.length>a;a++){var d=parseInt(u[a].attributes.getNamedItem("first").nodeValue,10),c=parseInt(u[a].attributes.getNamedItem("second").nodeValue,10),l=parseInt(u[a].attributes.getNamedItem("amount").nodeValue,10);i.chars[c].kerning[d]=l}PIXI.BitmapText.fonts[i.font]=i;var I=this;e.addEventListener("loaded",function(){I.onLoaded()}),e.load()}},PIXI.BitmapFontLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=PIXI),exports.PIXI=PIXI):root.PIXI=PIXI}).call(this); \ No newline at end of file diff --git a/bin/pixi.dev.js b/bin/pixi.dev.js index f29080a..3478cf4 100644 --- a/bin/pixi.dev.js +++ b/bin/pixi.dev.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/bin/pixi.js b/bin/pixi.js index 5f2a13c..a6d54d1 100644 --- a/bin/pixi.js +++ b/bin/pixi.js @@ -4,10 +4,10 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php */ -(function(){function HEXtoRGB(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}function determineMatrixArrayType(){return PIXI.Matrix="undefined"!=typeof Float32Array?Float32Array:Array,PIXI.Matrix}var root=this,PIXI=PIXI||{};PIXI.Point=function(t,e){this.x=t||0,this.y=e||0},PIXI.Point.prototype.clone=function(){return new PIXI.Point(this.x,this.y)},PIXI.Point.constructor=PIXI.Point,PIXI.Rectangle=function(t,e,i,r){this.x=t||0,this.y=e||0,this.width=i||0,this.height=r||0},PIXI.Rectangle.prototype.clone=function(){return new PIXI.Rectangle(this.x,this.y,this.width,this.height)},PIXI.Rectangle.constructor=PIXI.Rectangle,PIXI.DisplayObject=function(){this.position=new PIXI.Point,this.scale=new PIXI.Point(1,1),this.pivot=new PIXI.Point(0,0),this.rotation=0,this.alpha=1,this.visible=!0,this.worldVisible=!1,this.parent=null,this.stage=null,this.hitArea=null,this.worldAlpha=1,this.color=[],this.worldTransform=PIXI.mat3.create(),this.localTransform=PIXI.mat3.create(),this.dynamic=!0,this._sr=0,this._cr=1,this.childIndex=0,this.renderable=!1,this.interactive=!1,this.buttonMode=!1},PIXI.DisplayObject.constructor=PIXI.DisplayObject,PIXI.DisplayObject.prototype.setInteractive=function(t){this.interactive=t,this.stage&&(this.stage.dirty=!0)},PIXI.DisplayObject.prototype.updateTransform=function(){this.rotation!=this.rotationCache&&(this.rotationCache=this.rotation,this._sr=Math.sin(this.rotation),this._cr=Math.cos(this.rotation));var t=this.localTransform,e=this.parent.worldTransform,i=this.worldTransform;t[0]=this._cr*this.scale.x,t[1]=-this._sr*this.scale.y,t[3]=this._sr*this.scale.x,t[4]=this._cr*this.scale.y;var r=this.pivot.x,s=this.pivot.y;t[2]=this.position.x-t[0]*r-s*t[1],t[5]=this.position.y-t[4]*s-r*t[3];var n=t[0],a=t[1],o=t[2],h=t[3],u=t[4],c=t[5],d=e[0],l=e[1],I=e[2],p=e[3],f=e[4],x=e[5];i[0]=d*n+l*h,i[1]=d*a+l*u,i[2]=d*o+l*c+I,i[3]=p*n+f*h,i[4]=p*a+f*u,i[5]=p*o+f*c+x,this.worldAlpha=this.alpha*this.parent.worldAlpha},PIXI.DisplayObjectContainer=function(){PIXI.DisplayObject.call(this),this.children=[],this.renderable=!1},PIXI.DisplayObjectContainer.constructor=PIXI.DisplayObjectContainer,PIXI.DisplayObjectContainer.prototype=Object.create(PIXI.DisplayObject.prototype),PIXI.DisplayObjectContainer.prototype.addChild=function(t){void 0!=t.parent&&t.parent.removeChild(t),t.parent=this,t.childIndex=this.children.length,this.children.push(t),this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},PIXI.DisplayObjectContainer.prototype.addChildAt=function(t,e){if(!(e>=0&&this.children.length>=e))throw Error(t+" The index "+e+" supplied is out of bounds "+this.children.length);void 0!=t.parent&&t.parent.removeChild(t),e==this.children.length?this.children.push(t):this.children.splice(e,0,t),t.parent=this,t.childIndex=e;for(var i=this.children.length,r=e;i>r;r++)this.children[r].childIndex=r;this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},PIXI.DisplayObjectContainer.prototype.swapChildren=function(t,e){var i=this.children.indexOf(t),r=this.children.indexOf(e);if(-1===i||-1===r)throw Error(t+" Both the supplied DisplayObjects must be a child of the caller "+this);this.stage&&(this.stage.__removeChild(t),this.stage.__removeChild(e),this.stage.__addChild(t),this.stage.__addChild(e)),t.childIndex=r,e.childIndex=i,this.children[i]=e,this.children[r]=t},PIXI.DisplayObjectContainer.prototype.getChildAt=function(t){if(t>=0&&this.children.length>t)return this.children[t];throw Error(child+" Both the supplied DisplayObjects must be a child of the caller "+this)},PIXI.DisplayObjectContainer.prototype.removeChild=function(t){var e=this.children.indexOf(t);if(-1===e)throw Error(t+" The supplied DisplayObject must be a child of the caller "+this);this.stage&&this.stage.__removeChild(t),t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.parent=void 0,this.children.splice(e,1);for(var i=e,r=this.children.length;r>i;i++)this.children[i].childIndex-=1},PIXI.DisplayObjectContainer.prototype.updateTransform=function(){if(this.visible){PIXI.DisplayObject.prototype.updateTransform.call(this);for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform()}},PIXI.blendModes={},PIXI.blendModes.NORMAL=0,PIXI.blendModes.SCREEN=1,PIXI.Sprite=function(t){PIXI.DisplayObjectContainer.call(this),this.anchor=new PIXI.Point,this.texture=t,this.blendMode=PIXI.blendModes.NORMAL,this._width=0,this._height=0,t.baseTexture.hasLoaded?this.updateFrame=!0:(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},PIXI.Sprite.constructor=PIXI.Sprite,PIXI.Sprite.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),Object.defineProperty(PIXI.Sprite.prototype,"width",{get:function(){return this.scale.x*this.texture.frame.width},set:function(t){this.scale.x=t/this.texture.frame.width,this._width=t}}),Object.defineProperty(PIXI.Sprite.prototype,"height",{get:function(){return this.scale.y*this.texture.frame.height},set:function(t){this.scale.y=t/this.texture.frame.height,this._height=t}}),PIXI.Sprite.prototype.setTexture=function(t){this.texture.baseTexture!=t.baseTexture&&(this.textureChange=!0),this.texture=t,this.updateFrame=!0},PIXI.Sprite.prototype.onTextureUpdate=function(){this._width&&(this.scale.x=this._width/this.texture.frame.width),this._height&&(this.scale.y=this._height/this.texture.frame.height),this.updateFrame=!0},PIXI.Sprite.fromFrame=function(t){var e=PIXI.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache"+this);return new PIXI.Sprite(e)},PIXI.Sprite.fromImage=function(t){var e=PIXI.Texture.fromImage(t);return new PIXI.Sprite(e)},PIXI.MovieClip=function(t){PIXI.Sprite.call(this,t[0]),this.textures=t,this.currentFrame=0,this.animationSpeed=1,this.loop=!0,this.onComplete=null,this.playing},PIXI.MovieClip.constructor=PIXI.MovieClip,PIXI.MovieClip.prototype=Object.create(PIXI.Sprite.prototype),PIXI.MovieClip.prototype.stop=function(){this.playing=!1},PIXI.MovieClip.prototype.play=function(){this.playing=!0},PIXI.MovieClip.prototype.gotoAndStop=function(t){this.playing=!1,this.currentFrame=t;var e=0|this.currentFrame+.5;this.setTexture(this.textures[e%this.textures.length])},PIXI.MovieClip.prototype.gotoAndPlay=function(t){this.currentFrame=t,this.playing=!0},PIXI.MovieClip.prototype.updateTransform=function(){if(PIXI.Sprite.prototype.updateTransform.call(this),this.playing){this.currentFrame+=this.animationSpeed;var t=0|this.currentFrame+.5;this.loop||this.textures.length>t?this.setTexture(this.textures[t%this.textures.length]):t>=this.textures.length&&(this.gotoAndStop(this.textures.length-1),this.onComplete&&this.onComplete())}},PIXI.Text=function(t,e){this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"),PIXI.Sprite.call(this,PIXI.Texture.fromCanvas(this.canvas)),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},PIXI.Text.constructor=PIXI.Text,PIXI.Text.prototype=Object.create(PIXI.Sprite.prototype),PIXI.Text.prototype.setStyle=function(t){t=t||{},t.font=t.font||"bold 20pt Arial",t.fill=t.fill||"black",t.align=t.align||"left",t.strokeThickness=t.strokeThickness||0,this.style=t,this.dirty=!0},PIXI.Sprite.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},PIXI.Text.prototype.updateText=function(){this.context.font=this.style.font;for(var t=this.text.split(/(?:\r\n|\r|\n)/),e=[],i=0,r=0;t.length>r;r++){var s=this.context.measureText(t[r]).width;e[r]=s,i=Math.max(i,s)}this.canvas.width=i+this.style.strokeThickness;var n=this.determineFontHeight("font: "+this.style.font+";")+this.style.strokeThickness;for(this.canvas.height=n*t.length,this.context.fillStyle=this.style.fill,this.context.font=this.style.font,this.context.strokeStyle=this.style.stroke,this.context.lineWidth=this.style.strokeThickness,this.context.textBaseline="top",r=0;t.length>r;r++){var a=new PIXI.Point(this.style.strokeThickness/2,this.style.strokeThickness/2+r*n);"right"==this.style.align?a.x+=i-e[r]:"center"==this.style.align&&(a.x+=(i-e[r])/2),this.style.stroke&&this.style.strokeThickness&&this.context.strokeText(t[r],a.x,a.y),this.style.fill&&this.context.fillText(t[r],a.x,a.y)}this.updateTexture()},PIXI.Text.prototype.updateTexture=function(){this.texture.baseTexture.width=this.canvas.width,this.texture.baseTexture.height=this.canvas.height,this.texture.frame.width=this.canvas.width,this.texture.frame.height=this.canvas.height,this._width=this.canvas.width,this._height=this.canvas.height,PIXI.texturesToUpdate.push(this.texture.baseTexture)},PIXI.Text.prototype.updateTransform=function(){this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype.updateTransform.call(this)},PIXI.Text.prototype.determineFontHeight=function(t){var e=PIXI.Text.heightCache[t];if(!e){var i=document.getElementsByTagName("body")[0],r=document.createElement("div"),s=document.createTextNode("M");r.appendChild(s),r.setAttribute("style",t),i.appendChild(r),e=r.offsetHeight,PIXI.Text.heightCache[t]=e,i.removeChild(r)}return e},PIXI.Text.prototype.destroy=function(t){t&&this.texture.destroy()},PIXI.Text.heightCache={},PIXI.BitmapText=function(t,e){PIXI.DisplayObjectContainer.call(this),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},PIXI.BitmapText.constructor=PIXI.BitmapText,PIXI.BitmapText.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.BitmapText.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},PIXI.BitmapText.prototype.setStyle=function(t){t=t||{},t.align=t.align||"left",this.style=t;var e=t.font.split(" ");this.fontName=e[e.length-1],this.fontSize=e.length>=2?parseInt(e[e.length-2],10):PIXI.BitmapText.fonts[this.fontName].size,this.dirty=!0},PIXI.BitmapText.prototype.updateText=function(){for(var t=PIXI.BitmapText.fonts[this.fontName],e=new PIXI.Point,i=null,r=[],s=0,n=[],a=0,o=this.fontSize/t.size,h=0;this.text.length>h;h++){var u=this.text.charCodeAt(h);if(/(?:\r\n|\r|\n)/.test(this.text.charAt(h)))n.push(e.x),s=Math.max(s,e.x),a++,e.x=0,e.y+=t.lineHeight,i=null;else{var c=t.chars[u];c&&(i&&c[i]&&(e.x+=c.kerning[i]),r.push({line:a,charCode:u,position:new PIXI.Point(e.x+c.xOffset,e.y+c.yOffset)}),e.x+=c.xAdvance,i=u)}}n.push(e.x),s=Math.max(s,e.x);var d=[];for(h=0;a>=h;h++){var l=0;"right"==this.style.align?l=s-n[h]:"center"==this.style.align&&(l=(s-n[h])/2),d.push(l)}for(h=0;r.length>h;h++){var I=PIXI.Sprite.fromFrame(r[h].charCode);I.position.x=(r[h].position.x+d[r[h].line])*o,I.position.y=r[h].position.y*o,I.scale.x=I.scale.y=o,this.addChild(I)}this.width=e.x*o,this.height=(e.y+t.lineHeight)*o},PIXI.BitmapText.prototype.updateTransform=function(){if(this.dirty){for(;this.children.length>0;)this.removeChild(this.getChildAt(0));this.updateText(),this.dirty=!1}PIXI.DisplayObjectContainer.prototype.updateTransform.call(this)},PIXI.BitmapText.fonts={},PIXI.InteractionManager=function(t){this.stage=t,this.tempPoint=new PIXI.Point,this.mouseoverEnabled=!0,this.mouse=new PIXI.InteractionData,this.touchs={},this.pool=[],this.interactiveItems=[],this.last=0},PIXI.InteractionManager.constructor=PIXI.InteractionManager,PIXI.InteractionManager.prototype.collectInteractiveSprite=function(t,e){for(var i=t.children,r=i.length,s=r-1;s>=0;s--){var n=i[s];n.interactive?(e.interactiveChildren=!0,this.interactiveItems.push(n),n.children.length>0&&this.collectInteractiveSprite(n,n)):(n.__iParent=null,n.children.length>0&&this.collectInteractiveSprite(n,e))}},PIXI.InteractionManager.prototype.setTarget=function(t){window.navigator.msPointerEnabled&&(t.view.style["-ms-content-zooming"]="none",t.view.style["-ms-touch-action"]="none"),this.target=t,t.view.addEventListener("mousemove",this.onMouseMove.bind(this),!0),t.view.addEventListener("mousedown",this.onMouseDown.bind(this),!0),document.body.addEventListener("mouseup",this.onMouseUp.bind(this),!0),t.view.addEventListener("mouseout",this.onMouseUp.bind(this),!0),t.view.addEventListener("touchstart",this.onTouchStart.bind(this),!0),t.view.addEventListener("touchend",this.onTouchEnd.bind(this),!0),t.view.addEventListener("touchmove",this.onTouchMove.bind(this),!0)},PIXI.InteractionManager.prototype.update=function(){if(this.target){var t=Date.now(),e=t-this.last;if(e=30*e/1e3,!(1>e)){if(this.last=t,this.dirty){this.dirty=!1,this.interactiveItems.length;for(var i=0;this.interactiveItems.length>i;i++)this.interactiveItems[i].interactiveChildren=!1;this.interactiveItems=[],this.stage.interactive&&this.interactiveItems.push(this.stage),this.collectInteractiveSprite(this.stage,this.stage)}var r=this.interactiveItems.length;this.target.view.style.cursor="default";for(var i=0;r>i;i++){var s=this.interactiveItems[i];s.visible&&(s.mouseover||s.mouseout||s.buttonMode)&&(s.__hit=this.hitTest(s,this.mouse),s.__hit?(s.buttonMode&&(this.target.view.style.cursor="pointer"),s.__isOver||(s.mouseover&&s.mouseover(this.mouse),s.__isOver=!0)):s.__isOver&&(s.mouseout&&s.mouseout(this.mouse),s.__isOver=!1))}}}},PIXI.InteractionManager.prototype.onMouseMove=function(t){t.preventDefault();var e=this.target.view.getBoundingClientRect();this.mouse.global.x=(t.clientX-e.left)*(this.target.width/e.width),this.mouse.global.y=(t.clientY-e.top)*(this.target.height/e.height);var i=this.interactiveItems.length;this.mouse.global;for(var r=0;i>r;r++){var s=this.interactiveItems[r];s.mousemove&&s.mousemove(this.mouse)}},PIXI.InteractionManager.prototype.onMouseDown=function(t){t.preventDefault();var e=this.interactiveItems.length;this.mouse.global,this.stage;for(var i=0;e>i;i++){var r=this.interactiveItems[i];if((r.mousedown||r.click)&&(r.__mouseIsDown=!0,r.__hit=this.hitTest(r,this.mouse),r.__hit&&(r.mousedown&&r.mousedown(this.mouse),r.__isDown=!0,!r.interactiveChildren)))break}},PIXI.InteractionManager.prototype.onMouseUp=function(t){t.preventDefault(),this.mouse.global;for(var e=this.interactiveItems.length,i=!1,r=0;e>r;r++){var s=this.interactiveItems[r];(s.mouseup||s.mouseupoutside||s.click)&&(s.__hit=this.hitTest(s,this.mouse),s.__hit&&!i?(s.mouseup&&s.mouseup(this.mouse),s.__isDown&&s.click&&s.click(this.mouse),s.interactiveChildren||(i=!0)):s.__isDown&&s.mouseupoutside&&s.mouseupoutside(this.mouse),s.__isDown=!1)}},PIXI.InteractionManager.prototype.hitTest=function(t,e){var i=e.global;if(!t.visible)return!1;if(t instanceof PIXI.Sprite){var r=t.worldTransform,s=r[0],n=r[1],a=r[2],o=r[3],h=r[4],u=r[5],c=1/(s*h+n*-o),d=h*c*i.x+-n*c*i.y+(u*n-a*h)*c,l=s*c*i.y+-o*c*i.x+(-u*s+a*o)*c,I=t.texture.frame.width,p=t.texture.frame.height,f=-I*t.anchor.x;if(d>f&&f+I>d){var x=-p*t.anchor.y;if(l>x&&x+p>l)return e.target=t,!0}}else if(t.hitArea){var r=t.worldTransform,v=t.hitArea,s=r[0],n=r[1],a=r[2],o=r[3],h=r[4],u=r[5],c=1/(s*h+n*-o),d=h*c*i.x+-n*c*i.y+(u*n-a*h)*c,l=s*c*i.y+-o*c*i.x+(-u*s+a*o)*c,f=v.x;if(d>f&&f+v.width>d){var x=v.y;if(l>x&&x+v.height>l)return!0}}for(var P=t.children.length,g=0;P>g;g++){var b=t.children[g],X=this.hitTest(b,e);if(X)return!0}return!1},PIXI.InteractionManager.prototype.onTouchMove=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.touchs[s.identifier];n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height)}for(var a=this.interactiveItems.length,r=0;a>r;r++){var o=this.interactiveItems[r];o.touchmove&&o.touchmove(n)}},PIXI.InteractionManager.prototype.onTouchStart=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.pool.pop();n||(n=new PIXI.InteractionData),this.touchs[s.identifier]=n,n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height);for(var a=this.interactiveItems.length,o=0;a>o;o++){var h=this.interactiveItems[o];if((h.touchstart||h.tap)&&(h.__hit=this.hitTest(h,n),h.__hit&&(h.touchstart&&h.touchstart(n),h.__isDown=!0,h.__touchData=n,!h.interactiveChildren)))break}}},PIXI.InteractionManager.prototype.onTouchEnd=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.touchs[s.identifier],a=!1;n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var u=this.interactiveItems[h],c=u.__touchData;u.__hit=this.hitTest(u,n),c==n&&((u.touchend||u.tap)&&(u.__hit&&!a?(u.touchend&&u.touchend(n),u.__isDown&&u.tap&&u.tap(n),u.interactiveChildren||(a=!0)):u.__isDown&&u.touchendoutside&&u.touchendoutside(n),u.__isDown=!1),u.__touchData=null)}this.pool.push(n),this.touchs[s.identifier]=null}},PIXI.InteractionData=function(){this.global=new PIXI.Point,this.local=new PIXI.Point,this.target},PIXI.InteractionData.prototype.getLocalPosition=function(t){var e=t.worldTransform,i=this.global,r=e[0],s=e[1],n=e[2],a=e[3],o=e[4],h=e[5],u=1/(r*o+s*-a);return new PIXI.Point(o*u*i.x+-s*u*i.y+(h*s-n*o)*u,r*u*i.y+-a*u*i.x+(-h*r+n*a)*u)},PIXI.InteractionData.constructor=PIXI.InteractionData,PIXI.Stage=function(t,e){PIXI.DisplayObjectContainer.call(this),this.worldTransform=PIXI.mat3.create(),this.__childrenAdded=[],this.__childrenRemoved=[],this.childIndex=0,this.stage=this,this.stage.hitArea=new PIXI.Rectangle(0,0,1e5,1e5),this.interactive=!!e,this.interactionManager=new PIXI.InteractionManager(this),this.setBackgroundColor(t),this.worldVisible=!0},PIXI.Stage.constructor=PIXI.Stage,PIXI.Stage.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Stage.prototype.updateTransform=function(){this.worldAlpha=1;for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform();this.dirty&&(this.dirty=!1,this.interactionManager.dirty=!0),this.interactive&&this.interactionManager.update()},PIXI.Stage.prototype.setBackgroundColor=function(t){this.backgroundColor=t||0,this.backgroundColorSplit=HEXtoRGB(this.backgroundColor),this.backgroundColorString="#"+this.backgroundColor.toString(16)},PIXI.Stage.prototype.getMousePosition=function(){return this.interactionManager.mouse.global},PIXI.Stage.prototype.__addChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=this,t.children)for(var e=0;t.children.length>e;e++)this.__addChild(t.children[e])},PIXI.Stage.prototype.__removeChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=void 0,t.children)for(var e=0,i=t.children.length;i>e;e++)this.__removeChild(t.children[e])},window.requestAnimFrame=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(t){window.setTimeout(t,1e3/60)}}(),"function"!=typeof Function.prototype.bind&&(Function.prototype.bind=function(){var t=Array.prototype.slice;return function(e){function i(){var n=s.concat(t.call(arguments));r.apply(this instanceof i?this:e,n)}var r=this,s=t.call(arguments,1);if("function"!=typeof r)throw new TypeError;return i.prototype=function n(t){return t&&(n.prototype=t),this instanceof n?void 0:new n}(r.prototype),i}}());var AjaxRequest=function(){var t=["Msxml2.XMLHTTP","Microsoft.XMLHTTP"];if(!window.ActiveXObject)return window.XMLHttpRequest?new XMLHttpRequest:!1;for(var e=0;t.length>e;e++)try{return new ActiveXObject(t[e])}catch(i){}};PIXI.EventTarget=function(){var t={};this.addEventListener=this.on=function(e,i){void 0===t[e]&&(t[e]=[]),-1===t[e].indexOf(i)&&t[e].push(i)},this.dispatchEvent=this.emit=function(e){for(var i in t[e.type])t[e.type][i](e)},this.removeEventListener=this.off=function(e,i){var r=t[e].indexOf(i);-1!==r&&t[e].splice(r,1)}},determineMatrixArrayType(),PIXI.mat3={},PIXI.mat3.create=function(){var t=new PIXI.Matrix(9);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},PIXI.mat4={},PIXI.mat4.create=function(){var t=new PIXI.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},PIXI.mat3.multiply=function(t,e,i){i||(i=t);var r=t[0],s=t[1],n=t[2],a=t[3],o=t[4],h=t[5],u=t[6],c=t[7],d=t[8],l=e[0],I=e[1],p=e[2],f=e[3],x=e[4],v=e[5],P=e[6],g=e[7],b=e[8];return i[0]=l*r+I*a+p*u,i[1]=l*s+I*o+p*c,i[2]=l*n+I*h+p*d,i[3]=f*r+x*a+v*u,i[4]=f*s+x*o+v*c,i[5]=f*n+x*h+v*d,i[6]=P*r+g*a+b*u,i[7]=P*s+g*o+b*c,i[8]=P*n+g*h+b*d,i},PIXI.mat3.toMat4=function(t,e){return e||(e=PIXI.mat4.create()),e[15]=1,e[14]=0,e[13]=0,e[12]=0,e[11]=0,e[10]=t[8],e[9]=t[7],e[8]=t[6],e[7]=0,e[6]=t[5],e[5]=t[4],e[4]=t[3],e[3]=0,e[2]=t[2],e[1]=t[1],e[0]=t[0],e},PIXI.mat4.create=function(){var t=new PIXI.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},PIXI.mat4.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],s=t[3],n=t[6],a=t[7],o=t[11];return t[1]=t[4],t[2]=t[8],t[3]=t[12],t[4]=i,t[6]=t[9],t[7]=t[13],t[8]=r,t[9]=n,t[11]=t[14],t[12]=s,t[13]=a,t[14]=o,t}return e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=t[1],e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=t[2],e[9]=t[6],e[10]=t[10],e[11]=t[14],e[12]=t[3],e[13]=t[7],e[14]=t[11],e[15]=t[15],e},PIXI.mat4.multiply=function(t,e,i){i||(i=t);var r=t[0],s=t[1],n=t[2],a=t[3],o=t[4],h=t[5],u=t[6],c=t[7],d=t[8],l=t[9],I=t[10],p=t[11],f=t[12],x=t[13],v=t[14],P=t[15],g=e[0],b=e[1],X=e[2],m=e[3];return i[0]=g*r+b*o+X*d+m*f,i[1]=g*s+b*h+X*l+m*x,i[2]=g*n+b*u+X*I+m*v,i[3]=g*a+b*c+X*p+m*P,g=e[4],b=e[5],X=e[6],m=e[7],i[4]=g*r+b*o+X*d+m*f,i[5]=g*s+b*h+X*l+m*x,i[6]=g*n+b*u+X*I+m*v,i[7]=g*a+b*c+X*p+m*P,g=e[8],b=e[9],X=e[10],m=e[11],i[8]=g*r+b*o+X*d+m*f,i[9]=g*s+b*h+X*l+m*x,i[10]=g*n+b*u+X*I+m*v,i[11]=g*a+b*c+X*p+m*P,g=e[12],b=e[13],X=e[14],m=e[15],i[12]=g*r+b*o+X*d+m*f,i[13]=g*s+b*h+X*l+m*x,i[14]=g*n+b*u+X*I+m*v,i[15]=g*a+b*c+X*p+m*P,i},PIXI.autoDetectRenderer=function(t,e,i,r){t||(t=800),e||(e=600);var s=function(){try{return!!window.WebGLRenderingContext&&!!document.createElement("canvas").getContext("experimental-webgl")}catch(t){return!1}}();return s?new PIXI.WebGLRenderer(t,e,i,r):new PIXI.CanvasRenderer(t,e,i,r)},PIXI.shaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * vColor;","}"],PIXI.shaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform mat4 uMVMatrix;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","gl_Position = uMVMatrix * vec4(aVertexPosition, 1.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],PIXI.CompileVertexShader=function(t,e){return PIXI._CompileShader(t,e,t.VERTEX_SHADER)},PIXI.CompileFragmentShader=function(t,e){return PIXI._CompileShader(t,e,t.FRAGMENT_SHADER)},PIXI._CompileShader=function(t,e,i){var r=e.join("\n"),s=t.createShader(i);return t.shaderSource(s,r),t.compileShader(s),t.getShaderParameter(s,t.COMPILE_STATUS)?s:(alert(t.getShaderInfoLog(s)),null)},PIXI._defaultFrame=new PIXI.Rectangle(0,0,1,1),PIXI.gl,PIXI.WebGLRenderer=function(t,e,i,r){this.transparent=!!r,this.width=t||800,this.height=e||600,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height;var s=this;this.view.addEventListener("webglcontextlost",function(t){s.handleContextLost(t)},!1),this.view.addEventListener("webglcontextrestored",function(t){s.handleContextRestored(t)},!1),this.batchs=[];try{PIXI.gl=this.gl=this.view.getContext("experimental-webgl",{alpha:this.transparent,antialias:!1,premultipliedAlpha:!0})}catch(n){throw Error(" This browser does not support webGL. Try using the canvas renderer"+this)}this.initShaders();var a=this.gl;PIXI.WebGLRenderer.gl=a,this.batch=new PIXI.WebGLBatch(a),a.disable(a.DEPTH_TEST),a.disable(a.CULL_FACE),a.enable(a.BLEND),a.colorMask(!0,!0,!0,this.transparent),this.projectionMatrix=PIXI.mat4.create(),this.resize(this.width,this.height),this.contextLost=!1,this.stageRenderGroup=new PIXI.WebGLRenderGroup(this.gl)},PIXI.WebGLRenderer.constructor=PIXI.WebGLRenderer,PIXI.WebGLRenderer.getBatch=function(){return 0==PIXI._batchs.length?new PIXI.WebGLBatch(PIXI.WebGLRenderer.gl):PIXI._batchs.pop()},PIXI.WebGLRenderer.returnBatch=function(t){t.clean(),PIXI._batchs.push(t)},PIXI.WebGLRenderer.prototype.initShaders=function(){var t=this.gl,e=PIXI.CompileFragmentShader(t,PIXI.shaderFragmentSrc),i=PIXI.CompileVertexShader(t,PIXI.shaderVertexSrc);PIXI.shaderProgram=t.createProgram();var r=PIXI.shaderProgram;t.attachShader(r,i),t.attachShader(r,e),t.linkProgram(r),t.getProgramParameter(r,t.LINK_STATUS)||alert("Could not initialise shaders"),t.useProgram(r),r.vertexPositionAttribute=t.getAttribLocation(r,"aVertexPosition"),t.enableVertexAttribArray(r.vertexPositionAttribute),r.textureCoordAttribute=t.getAttribLocation(r,"aTextureCoord"),t.enableVertexAttribArray(r.textureCoordAttribute),r.colorAttribute=t.getAttribLocation(r,"aColor"),t.enableVertexAttribArray(r.colorAttribute),r.mvMatrixUniform=t.getUniformLocation(r,"uMVMatrix"),r.samplerUniform=t.getUniformLocation(r,"uSampler")},PIXI.WebGLRenderer.prototype.render=function(t){if(!this.contextLost){this.__stage!==t&&(this.__stage=t,this.stageRenderGroup.setRenderable(t));for(var e=0;PIXI.texturesToUpdate.length>e;e++)this.updateTexture(PIXI.texturesToUpdate[e]);for(var e=0;PIXI.texturesToDestroy.length>e;e++)this.destroyTexture(PIXI.texturesToDestroy[e]);PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[],t.updateTransform();var i=this.gl;if(i.colorMask(!0,!0,!0,this.transparent),i.viewport(0,0,this.width,this.height),i.bindFramebuffer(i.FRAMEBUFFER,null),i.clearColor(t.backgroundColorSplit[0],t.backgroundColorSplit[1],t.backgroundColorSplit[2],this.transparent),i.clear(i.COLOR_BUFFER_BIT),this.stageRenderGroup.backgroundColor=t.backgroundColorSplit,this.stageRenderGroup.render(this.projectionMatrix),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),PIXI.Texture.frameUpdates.length>0){for(var e=0;PIXI.Texture.frameUpdates.length>e;e++)PIXI.Texture.frameUpdates[e].updateFrame=!1;PIXI.Texture.frameUpdates=[]}}},PIXI.WebGLRenderer.prototype.updateTexture=function(t){var e=this.gl;t._glTexture||(t._glTexture=e.createTexture()),t.hasLoaded&&(e.bindTexture(e.TEXTURE_2D,t._glTexture),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t.source),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),t._powerOf2?(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT)):(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)),e.bindTexture(e.TEXTURE_2D,null)),this.refreshBatchs=!0},PIXI.WebGLRenderer.prototype.destroyTexture=function(t){var e=this.gl;t._glTexture&&(t._glTexture=e.createTexture(),e.deleteTexture(e.TEXTURE_2D,t._glTexture))},PIXI.WebGLRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e,this.gl.viewport(0,0,this.width,this.height);var i=this.projectionMatrix;i[0]=2/this.width,i[5]=-2/this.height,i[12]=-1,i[13]=1},PIXI.WebGLRenderer.prototype.handleContextLost=function(t){t.preventDefault(),this.contextLost=!0},PIXI.WebGLRenderer.prototype.handleContextRestored=function(){this.gl=this.view.getContext("experimental-webgl",{alpha:!0}),this.initShaders();for(var t=0;PIXI.TextureCache.length>t;t++)this.updateTexture(PIXI.TextureCache[t]);for(var t=0;this.batchs.length>t;t++)this.batchs[t].restoreLostContext(this.gl),this.batchs[t].dirty=!0;PIXI._restoreBatchs(this.gl),this.contextLost=!1},PIXI._batchs=[],PIXI._getBatch=function(t){return 0==PIXI._batchs.length?new PIXI.WebGLBatch(t):PIXI._batchs.pop()},PIXI._returnBatch=function(t){t.clean(),PIXI._batchs.push(t)},PIXI._restoreBatchs=function(t){for(var e=0;PIXI._batchs.length>e;e++)PIXI._batchs[e].restoreLostContext(t)},PIXI.WebGLBatch=function(t){this.gl=t,this.size=0,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer(),this.blendMode=PIXI.blendModes.NORMAL,this.dynamicSize=1},PIXI.WebGLBatch.constructor=PIXI.WebGLBatch,PIXI.WebGLBatch.prototype.clean=function(){this.verticies=[],this.uvs=[],this.indices=[],this.colors=[],this.dynamicSize=1,this.texture=null,this.last=null,this.size=0,this.head,this.tail},PIXI.WebGLBatch.prototype.restoreLostContext=function(t){this.gl=t,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer()},PIXI.WebGLBatch.prototype.init=function(t){t.batch=this,this.dirty=!0,this.blendMode=t.blendMode,this.texture=t.texture.baseTexture,this.head=t,this.tail=t,this.size=1,this.growBatch()},PIXI.WebGLBatch.prototype.insertBefore=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__prev;e.__prev=t,t.__next=e,i?(t.__prev=i,i.__next=t):this.head=t},PIXI.WebGLBatch.prototype.insertAfter=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__next;e.__next=t,t.__prev=e,i?(t.__next=i,i.__prev=t):this.tail=t},PIXI.WebGLBatch.prototype.remove=function(t){return this.size--,0==this.size?(t.batch=null,t.__prev=null,t.__next=null,void 0):(t.__prev?t.__prev.__next=t.__next:(this.head=t.__next,this.head.__prev=null),t.__next?t.__next.__prev=t.__prev:(this.tail=t.__prev,this.tail.__next=null),t.batch=null,t.__next=null,t.__prev=null,this.dirty=!0,void 0)},PIXI.WebGLBatch.prototype.split=function(t){this.dirty=!0;var e=new PIXI.WebGLBatch(this.gl);e.init(t),e.tail=this.tail,this.tail=t.__prev,this.tail.__next=null,t.__prev=null;for(var i=0;t;)i++,t.batch=e,t=t.__next;return e.size=i,this.size-=i,e},PIXI.WebGLBatch.prototype.merge=function(t){this.dirty=!0,this.tail.__next=t.head,t.head.__prev=this.tail,this.size+=t.size,this.tail=t.tail;for(var e=t.head;e;)e.batch=this,e=e.__next},PIXI.WebGLBatch.prototype.growBatch=function(){var t=this.gl;this.dynamicSize=1==this.size?1:1.5*this.size,this.verticies=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.vertexBuffer),t.bufferData(t.ARRAY_BUFFER,this.verticies,t.DYNAMIC_DRAW),this.uvs=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.uvBuffer),t.bufferData(t.ARRAY_BUFFER,this.uvs,t.DYNAMIC_DRAW),this.dirtyUVS=!0,this.colors=new Float32Array(4*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.colorBuffer),t.bufferData(t.ARRAY_BUFFER,this.colors,t.DYNAMIC_DRAW),this.dirtyColors=!0,this.indices=new Uint16Array(6*this.dynamicSize);for(var e=this.indices.length/6,i=0;e>i;i++){var r=6*i,s=4*i;this.indices[r+0]=s+0,this.indices[r+1]=s+1,this.indices[r+2]=s+2,this.indices[r+3]=s+0,this.indices[r+4]=s+2,this.indices[r+5]=s+3}t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,this.indexBuffer),t.bufferData(t.ELEMENT_ARRAY_BUFFER,this.indices,t.STATIC_DRAW)},PIXI.WebGLBatch.prototype.refresh=function(){this.gl,this.dynamicSizei;i++)this.removeDisplayObjectAndChildren(this.toRemove[i]);this.toRemove=[],this.checkVisibility(this.root,this.root.visible);for(var r,i=0;this.batchs.length>i;i++)r=this.batchs[i],r instanceof PIXI.WebGLBatch?this.batchs[i].render():r instanceof PIXI.TilingSprite?r.visible&&this.renderTilingSprite(r,t):r instanceof PIXI.Strip&&r.visible&&this.renderStrip(r,t)},PIXI.WebGLRenderGroup.prototype.renderSpecific=function(t,e){var i=this.gl;this.checkVisibility(t,t.visible),i.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform,!1,e);var r,s,n,a,o=t.renderable?t:this.getNextRenderable(t),h=o.batch;if(o instanceof PIXI.Sprite){h=o.batch;var u=h.head;if(u==o)r=0;else for(r=1;u.__next!=o;)r++,u=u.__next}else h=o;for(var c,d=t,l=t;l.children.length>0;)l=l.children[l.children.length-1],l.renderable&&(d=l);if(d instanceof PIXI.Sprite){c=d.batch;var u=c.head;if(u==d)n=0;else for(n=1;u.__next!=d;)n++,u=u.__next}else c=d;if(h==c)return h instanceof PIXI.WebGLBatch?h.render(r,n+1):h instanceof PIXI.TilingSprite?h.visible&&this.renderTilingSprite(h,e):h instanceof PIXI.Strip?h.visible&&this.renderStrip(h,e):h instanceof PIXI.CustomRenderable&&h.visible&&h.renderWebGL(this,e),void 0;s=this.batchs.indexOf(h),a=this.batchs.indexOf(c),h instanceof PIXI.WebGLBatch?h.render(r):h instanceof PIXI.TilingSprite?h.visible&&this.renderTilingSprite(h,e):h instanceof PIXI.Strip?h.visible&&this.renderStrip(h,e):h instanceof PIXI.CustomRenderable&&h.visible&&h.renderWebGL(this,e);for(var I=s+1;a>I;I++)renderable=this.batchs[I],renderable instanceof PIXI.WebGLBatch?this.batchs[I].render():renderable instanceof PIXI.TilingSprite?renderable.visible&&this.renderTilingSprite(renderable,e):renderable instanceof PIXI.Strip?renderable.visible&&this.renderStrip(renderable,e):renderable instanceof PIXI.CustomRenderable&&renderable.visible&&renderable.renderWebGL(this,e);c instanceof PIXI.WebGLBatch?c.render(0,n+1):c instanceof PIXI.TilingSprite?c.visible&&this.renderTilingSprite(c):c instanceof PIXI.Strip?c.visible&&this.renderStrip(c):c instanceof PIXI.CustomRenderable&&c.visible&&c.renderWebGL(this,e)},PIXI.WebGLRenderGroup.prototype.checkVisibility=function(t,e){for(var i=t.children,r=0;i.length>r;r++){var s=i[r];s.worldVisible=s.visible&&e,s.textureChange&&(s.textureChange=!1,s.worldVisible&&(this.removeDisplayObject(s),this.addDisplayObject(s))),s.children.length>0&&this.checkVisibility(s,s.worldVisible)}},PIXI.WebGLRenderGroup.prototype.addDisplayObject=function(t){if(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.__renderGroup=this,t.renderable){var e=this.getPreviousRenderable(t),i=this.getNextRenderable(t);if(t instanceof PIXI.Sprite){var r,s;if(e instanceof PIXI.Sprite){if(r=e.batch,r&&r.texture==t.texture.baseTexture&&r.blendMode==t.blendMode)return r.insertAfter(t,e),void 0}else r=e;if(i)if(i instanceof PIXI.Sprite){if(s=i.batch){if(s.texture==t.texture.baseTexture&&s.blendMode==t.blendMode)return s.insertBefore(t,i),void 0;if(s==r){var n=r.split(i),a=PIXI.WebGLRenderer.getBatch(),o=this.batchs.indexOf(r);return a.init(t),this.batchs.splice(o+1,0,a,n),void 0}}}else s=i;var a=PIXI.WebGLRenderer.getBatch();if(a.init(t),r){var o=this.batchs.indexOf(r);this.batchs.splice(o+1,0,a)}else this.batchs.push(a)}else t instanceof PIXI.TilingSprite?(this.initTilingSprite(t),this.batchs.push(t)):t instanceof PIXI.Strip&&(this.initStrip(t),this.batchs.push(t));this.batchUpdate=!0}},PIXI.WebGLRenderGroup.prototype.addDisplayObjectAndChildren=function(t){this.addDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.addDisplayObjectAndChildren(e[i])},PIXI.WebGLRenderGroup.prototype.removeDisplayObject=function(t){if(t.__renderGroup=null,t.renderable){var e;if(t instanceof PIXI.Sprite){var i=t.batch;if(!i)return;i.remove(t),0==i.size&&(e=i)}else e=t;if(e){var r=this.batchs.indexOf(e);if(-1==r)return;if(0==r||r==this.batchs.length-1)return this.batchs.splice(r,1),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e),void 0;if(this.batchs[r-1]instanceof PIXI.WebGLBatch&&this.batchs[r+1]instanceof PIXI.WebGLBatch&&this.batchs[r-1].texture==this.batchs[r+1].texture&&this.batchs[r-1].blendMode==this.batchs[r+1].blendMode)return this.batchs[r-1].merge(this.batchs[r+1]),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e),PIXI.WebGLRenderer.returnBatch(this.batchs[r+1]),this.batchs.splice(r,2),void 0;this.batchs.splice(r,1),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e)}}},PIXI.WebGLRenderGroup.prototype.removeDisplayObjectAndChildren=function(t){if(t.__renderGroup==this){this.removeDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.removeDisplayObjectAndChildren(e[i])}},PIXI.WebGLRenderGroup.prototype.getNextRenderable=function(t){var e=t;do{if(0==e.children.length){if(!e.parent)return null;for(;e.childIndex==e.parent.children.length-1;)if(e=e.parent,e==this.root){e=null;break}e&&(e=e.parent.children[e.childIndex+1])}else e=e.children[0];if(!e)break}while(!e.renderable||!e.__renderGroup);return e},PIXI.WebGLRenderGroup.prototype.getPreviousRenderable=function(t){var e=t;do{if(0==e.childIndex){if(e=e.parent,!e)return null}else for(e=e.parent.children[e.childIndex-1];0!=e.children.length;)e=e.children[e.children.length-1];if(e==this.root)break}while(!e.renderable||!e.__renderGroup);return e},PIXI.WebGLRenderGroup.prototype.initTilingSprite=function(t){var e=this.gl;t.verticies=new Float32Array([0,0,t.width,0,t.width,t.height,0,t.height]),t.uvs=new Float32Array([0,0,1,0,1,1,0,1]),t.colors=new Float32Array([1,1,1,1]),t.indices=new Uint16Array([0,1,3,2]),t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW),t.texture.baseTexture._glTexture?(e.bindTexture(e.TEXTURE_2D,t.texture.baseTexture._glTexture),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT),t.texture.baseTexture._powerOf2=!0):t.texture.baseTexture._powerOf2=!0},PIXI.WebGLRenderGroup.prototype.renderStrip=function(t,e){var i=this.gl,r=PIXI.shaderProgram,s=PIXI.mat3.toMat4(t.worldTransform);PIXI.mat4.transpose(s),PIXI.mat4.multiply(e,s,s),i.uniformMatrix4fv(r.mvMatrixUniform,!1,s),t.blendMode==PIXI.blendModes.NORMAL?i.blendFunc(i.ONE,i.ONE_MINUS_SRC_ALPHA):i.blendFunc(i.ONE,i.ONE_MINUS_SRC_COLOR),t.dirty?(t.dirty=!1,i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferData(i.ARRAY_BUFFER,t.verticies,i.STATIC_DRAW),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferData(i.ARRAY_BUFFER,t.uvs,i.STATIC_DRAW),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.bufferData(i.ARRAY_BUFFER,t.colors,i.STATIC_DRAW),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer),i.bufferData(i.ELEMENT_ARRAY_BUFFER,t.indices,i.STATIC_DRAW)):(i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.verticies),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer)),i.drawElements(i.TRIANGLE_STRIP,t.indices.length,i.UNSIGNED_SHORT,0),i.uniformMatrix4fv(r.mvMatrixUniform,!1,e)},PIXI.WebGLRenderGroup.prototype.renderTilingSprite=function(t,e){var i=this.gl;PIXI.shaderProgram;var r=t.tilePosition,s=t.tileScale,n=r.x/t.texture.baseTexture.width,a=r.y/t.texture.baseTexture.height,o=t.width/t.texture.baseTexture.width/s.x,h=t.height/t.texture.baseTexture.height/s.y;t.uvs[0]=0-n,t.uvs[1]=0-a,t.uvs[2]=1*o-n,t.uvs[3]=0-a,t.uvs[4]=1*o-n,t.uvs[5]=1*h-a,t.uvs[6]=0-n,t.uvs[7]=1*h-a,i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.uvs),this.renderStrip(t,e)},PIXI.WebGLRenderer.prototype.initStrip=function(t){var e=this.gl;this.shaderProgram,t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW)},PIXI.CanvasRenderer=function(t,e,i,r){this.transparent=r,this.width=t||800,this.height=e||600,this.refresh=!0,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height,this.count=0,this.context=this.view.getContext("2d")},PIXI.CanvasRenderer.constructor=PIXI.CanvasRenderer,PIXI.CanvasRenderer.prototype.render=function(t){PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[],t.updateTransform(),this.view.style.backgroundColor==t.backgroundColorString||this.transparent||(this.view.style.backgroundColor=t.backgroundColorString),this.context.setTransform(1,0,0,1,0,0),this.context.clearRect(0,0,this.width,this.height),this.renderDisplayObject(t),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),PIXI.Texture.frameUpdates.length>0&&(PIXI.Texture.frameUpdates=[])},PIXI.CanvasRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e},PIXI.CanvasRenderer.prototype.renderDisplayObject=function(t){var e=t.worldTransform,i=this.context;if(t.visible){if(t instanceof PIXI.Sprite){var r=t.texture.frame;r&&(i.globalAlpha=t.worldAlpha,i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),i.drawImage(t.texture.baseTexture.source,r.x,r.y,r.width,r.height,t.anchor.x*-r.width,t.anchor.y*-r.height,r.width,r.height))}else t instanceof PIXI.Strip?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderStrip(t)):t instanceof PIXI.TilingSprite?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderTilingSprite(t)):t instanceof PIXI.CustomRenderable&&t.renderCanvas(this);for(var s=0;t.children.length>s;s++)this.renderDisplayObject(t.children[s]);this.context.setTransform(1,0,0,1,0,0)}},PIXI.CanvasRenderer.prototype.renderStripFlat=function(t){var e=this.context,i=t.verticies;t.uvs;var r=i.length/2;this.count++,e.beginPath();for(var s=1;r-2>s;s++){var n=2*s,a=i[n],o=i[n+2],h=i[n+4],u=i[n+1],c=i[n+3],d=i[n+5];e.moveTo(a,u),e.lineTo(o,c),e.lineTo(h,d)}e.fillStyle="#FF0000",e.fill(),e.closePath()},PIXI.CanvasRenderer.prototype.renderTilingSprite=function(t){var e=this.context;t.__tilePattern||(t.__tilePattern=e.createPattern(t.texture.baseTexture.source,"repeat")),e.beginPath();var i=t.tilePosition,r=t.tileScale;e.scale(r.x,r.y),e.translate(i.x,i.y),e.fillStyle=t.__tilePattern,e.fillRect(-i.x,-i.y,t.width/r.x,t.height/r.y),e.scale(1/r.x,1/r.y),e.translate(-i.x,-i.y),e.closePath()},PIXI.CanvasRenderer.prototype.renderStrip=function(t){var e=this.context,i=t.verticies,r=t.uvs,s=i.length/2;this.count++;for(var n=1;s-2>n;n++){var a=2*n,o=i[a],h=i[a+2],u=i[a+4],c=i[a+1],d=i[a+3],l=i[a+5],I=r[a]*t.texture.width,p=r[a+2]*t.texture.width,f=r[a+4]*t.texture.width,x=r[a+1]*t.texture.height,v=r[a+3]*t.texture.height,P=r[a+5]*t.texture.height;e.save(),e.beginPath(),e.moveTo(o,c),e.lineTo(h,d),e.lineTo(u,l),e.closePath(),e.clip();var g=I*v+x*f+p*P-v*f-x*p-I*P,b=o*v+x*u+h*P-v*u-x*h-o*P,X=I*h+o*f+p*u-h*f-o*p-I*u,m=I*v*u+x*h*f+o*p*P-o*v*f-x*p*u-I*h*P,T=c*v+x*l+d*P-v*l-x*d-c*P,y=I*d+c*f+p*l-d*f-c*p-I*l,_=I*v*l+x*d*f+c*p*P-c*v*f-x*p*l-I*d*P;e.transform(b/g,T/g,X/g,y/g,m/g,_/g),e.drawImage(t.texture.baseTexture.source,0,0),e.restore()}},PIXI.Strip=function(t,e,i){PIXI.DisplayObjectContainer.call(this),this.texture=t,this.blendMode=PIXI.blendModes.NORMAL;try{this.uvs=new Float32Array([0,1,1,1,1,0,0,1]),this.verticies=new Float32Array([0,0,0,0,0,0,0,0,0]),this.colors=new Float32Array([1,1,1,1]),this.indices=new Uint16Array([0,1,2,3])}catch(r){this.uvs=[0,1,1,1,1,0,0,1],this.verticies=[0,0,0,0,0,0,0,0,0],this.colors=[1,1,1,1],this.indices=[0,1,2,3]}this.width=e,this.height=i,t.baseTexture.hasLoaded?(this.width=this.texture.frame.width,this.height=this.texture.frame.height,this.updateFrame=!0):(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},PIXI.Strip.constructor=PIXI.Strip,PIXI.Strip.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Strip.prototype.setTexture=function(t){this.texture=t,this.width=t.frame.width,this.height=t.frame.height,this.updateFrame=!0},PIXI.Strip.prototype.onTextureUpdate=function(){this.updateFrame=!0},PIXI.Rope=function(t,e){PIXI.Strip.call(this,t),this.points=e;try{this.verticies=new Float32Array(4*e.length),this.uvs=new Float32Array(4*e.length),this.colors=new Float32Array(2*e.length),this.indices=new Uint16Array(2*e.length)}catch(i){this.verticies=verticies,this.uvs=uvs,this.colors=colors,this.indices=indices}this.refresh()},PIXI.Rope.constructor=PIXI.Rope,PIXI.Rope.prototype=Object.create(PIXI.Strip.prototype),PIXI.Rope.prototype.refresh=function(){var t=this.points;if(!(1>t.length)){var e=this.uvs,i=this.indices,r=this.colors,s=t[0],n=t[0];this.count-=.2,e[0]=0,e[1]=1,e[2]=0,e[3]=1,r[0]=1,r[1]=1,i[0]=0,i[1]=1;for(var a=t.length,o=1;a>o;o++){var n=t[o],h=4*o,u=o/(a-1);o%2?(e[h]=u,e[h+1]=0,e[h+2]=u,e[h+3]=1):(e[h]=u,e[h+1]=0,e[h+2]=u,e[h+3]=1),h=2*o,r[h]=1,r[h+1]=1,h=2*o,i[h]=h,i[h+1]=h+1,s=n}}},PIXI.Rope.prototype.updateTransform=function(){var t=this.points;if(!(1>t.length)){var e,i=this.verticies,r=t[0],s={x:0,y:0},n=t[0];this.count-=.2,i[0]=n.x+s.x,i[1]=n.y+s.y,i[2]=n.x-s.x,i[3]=n.y-s.y;for(var a=t.length,o=1;a>o;o++){var n=t[o],h=4*o;e=t.length-1>o?t[o+1]:n,s.y=-(e.x-r.x),s.x=e.y-r.y;var u=10*(1-o/(a-1));u>1&&(u=1);var c=Math.sqrt(s.x*s.x+s.y*s.y),d=this.texture.height/2;s.x/=c,s.y/=c,s.x*=d,s.y*=d,i[h]=n.x+s.x,i[h+1]=n.y+s.y,i[h+2]=n.x-s.x,i[h+3]=n.y-s.y,r=n}PIXI.DisplayObjectContainer.prototype.updateTransform.call(this)}},PIXI.Rope.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0},PIXI.TilingSprite=function(t,e,i){PIXI.DisplayObjectContainer.call(this),this.texture=t,this.width=e,this.height=i,this.renderable=!0,this.tileScale=new PIXI.Point(1,1),this.tilePosition=new PIXI.Point(0,0),this.blendMode=PIXI.blendModes.NORMAL},PIXI.TilingSprite.constructor=PIXI.TilingSprite,PIXI.TilingSprite.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.TilingSprite.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0},PIXI.TilingSprite.prototype.onTextureUpdate=function(){this.updateFrame=!0},PIXI.CustomRenderable=function(){PIXI.DisplayObject.call(this)},PIXI.CustomRenderable.constructor=PIXI.CustomRenderable,PIXI.CustomRenderable.prototype=Object.create(PIXI.DisplayObject.prototype),PIXI.CustomRenderable.prototype.renderCanvas=function(){},PIXI.CustomRenderable.prototype.initWebGL=function(){},PIXI.CustomRenderable.prototype.renderWebGL=function(){},PIXI.BaseTextureCache={},PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[],PIXI.BaseTexture=function(t){if(PIXI.EventTarget.call(this),this.width=100,this.height=100,this.source=t,t){if(this.source instanceof Image)if(this.source.complete)this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,PIXI.texturesToUpdate.push(this);else{var e=this;this.source.onload=function(){e.hasLoaded=!0,e.width=e.source.width,e.height=e.source.height,PIXI.texturesToUpdate.push(e),e.dispatchEvent({type:"loaded",content:e})}}else this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,PIXI.texturesToUpdate.push(this);this._powerOf2=!1}},PIXI.BaseTexture.constructor=PIXI.BaseTexture,PIXI.BaseTexture.prototype.destroy=function(){this.source instanceof Image&&(this.source.src=null),this.source=null,PIXI.texturesToDestroy.push(this)},PIXI.BaseTexture.fromImage=function(t,e){var i=PIXI.BaseTextureCache[t];if(!i){var r=new Image;e&&(r.crossOrigin=""),r.src=t,i=new PIXI.BaseTexture(r),PIXI.BaseTextureCache[t]=i}return i},PIXI.TextureCache={},PIXI.FrameCache={},PIXI.Texture=function(t,e){if(PIXI.EventTarget.call(this),e||(this.noFrame=!0,e=new PIXI.Rectangle(0,0,1,1)),this.trim=new PIXI.Point,t instanceof PIXI.Texture&&(t=t.baseTexture),this.baseTexture=t,this.frame=e,this.scope=this,t.hasLoaded)this.noFrame&&(e=new PIXI.Rectangle(0,0,t.width,t.height)),this.setFrame(e);else{var i=this;t.addEventListener("loaded",function(){i.onBaseTextureLoaded()})}},PIXI.Texture.constructor=PIXI.Texture,PIXI.Texture.prototype.onBaseTextureLoaded=function(){var t=this.baseTexture;t.removeEventListener("loaded",this.onLoaded),this.noFrame&&(this.frame=new PIXI.Rectangle(0,0,t.width,t.height)),this.noFrame=!1,this.width=this.frame.width,this.height=this.frame.height,this.scope.dispatchEvent({type:"update",content:this})},PIXI.Texture.prototype.destroy=function(t){t&&this.baseTexture.destroy()},PIXI.Texture.prototype.setFrame=function(t){if(this.frame=t,this.width=t.width,this.height=t.height,t.x+t.width>this.baseTexture.width||t.y+t.height>this.baseTexture.height)throw Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);this.updateFrame=!0,PIXI.Texture.frameUpdates.push(this)},PIXI.Texture.fromImage=function(t,e){var i=PIXI.TextureCache[t];return i||(i=new PIXI.Texture(PIXI.BaseTexture.fromImage(t,e)),PIXI.TextureCache[t]=i),i},PIXI.Texture.fromFrame=function(t){var e=PIXI.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache "+this);return e},PIXI.Texture.fromCanvas=function(t){var e=new PIXI.BaseTexture(t);return new PIXI.Texture(e)},PIXI.Texture.addTextureToCache=function(t,e){PIXI.TextureCache[e]=t},PIXI.Texture.removeTextureFromCache=function(t){var e=PIXI.TextureCache[t];return PIXI.TextureCache[t]=null,e},PIXI.Texture.frameUpdates=[],PIXI.RenderTexture=function(t,e){PIXI.EventTarget.call(this),this.width=t||100,this.height=e||100,this.indetityMatrix=PIXI.mat3.create(),this.frame=new PIXI.Rectangle(0,0,this.width,this.height),PIXI.gl?this.initWebGL():this.initCanvas()},PIXI.RenderTexture.constructor=PIXI.RenderTexture,PIXI.RenderTexture.prototype=Object.create(PIXI.Texture.prototype),PIXI.RenderTexture.prototype.initWebGL=function(){var t=PIXI.gl;this.glFramebuffer=t.createFramebuffer(),t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),this.glFramebuffer.width=this.width,this.glFramebuffer.height=this.height,this.baseTexture=new PIXI.BaseTexture,this.baseTexture.width=this.width,this.baseTexture.height=this.height,this.baseTexture._glTexture=t.createTexture(),t.bindTexture(t.TEXTURE_2D,this.baseTexture._glTexture),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,this.width,this.height,0,t.RGBA,t.UNSIGNED_BYTE,null),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),this.baseTexture.isRender=!0,t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,this.baseTexture._glTexture,0),this.projectionMatrix=PIXI.mat4.create(),this.projectionMatrix[5]=2/this.height,this.projectionMatrix[13]=-1,this.projectionMatrix[0]=2/this.width,this.projectionMatrix[12]=-1,this.render=this.renderWebGL},PIXI.RenderTexture.prototype.initCanvas=function(){this.renderer=new PIXI.CanvasRenderer(this.width,this.height,null,0),this.baseTexture=new PIXI.BaseTexture(this.renderer.view),this.frame=new PIXI.Rectangle(0,0,this.width,this.height),this.render=this.renderCanvas},PIXI.RenderTexture.prototype.renderWebGL=function(t,e){var i=PIXI.gl;i.colorMask(!0,!0,!0,!0),i.viewport(0,0,this.width,this.height),i.bindFramebuffer(i.FRAMEBUFFER,this.glFramebuffer),e&&(i.clearColor(0,0,0,0),i.clear(i.COLOR_BUFFER_BIT));var r=t.children;t.worldTransform=PIXI.mat3.create();for(var s=0,n=r.length;n>s;s++)r[s].updateTransform();var a=t.__renderGroup;a?t==a.root?a.render(this.projectionMatrix):a.renderSpecific(t,this.projectionMatrix):(this.renderGroup||(this.renderGroup=new PIXI.WebGLRenderGroup(i)),this.renderGroup.setRenderable(t),this.renderGroup.render(this.projectionMatrix))},PIXI.RenderTexture.prototype.renderCanvas=function(t,e){var i=t.children;t.worldTransform=PIXI.mat3.create();for(var r=0,s=i.length;s>r;r++)i[r].updateTransform();e&&this.renderer.context.clearRect(0,0,this.width,this.height),this.renderer.renderDisplayObject(t),PIXI.texturesToUpdate.push(this.baseTexture)},PIXI.AssetLoader=function(t){PIXI.EventTarget.call(this),this.assetURLs=t,this.crossorigin=!1,this.loadersByType={jpg:PIXI.ImageLoader,jpeg:PIXI.ImageLoader,png:PIXI.ImageLoader,gif:PIXI.ImageLoader,json:PIXI.SpriteSheetLoader,xml:PIXI.BitmapFontLoader,fnt:PIXI.BitmapFontLoader}},PIXI.AssetLoader.constructor=PIXI.AssetLoader,PIXI.AssetLoader.prototype.load=function(){var t=this;this.loadCount=this.assetURLs.length;for(var e=0;this.assetURLs.length>e;e++){var i=this.assetURLs[e],r=i.split(".").pop().toLowerCase(),s=this.loadersByType[r];if(!s)throw Error(r+" is an unsupported file type");var n=new s(i,this.crossorigin);n.addEventListener("loaded",function(){t.onAssetLoaded()}),n.load()}},PIXI.AssetLoader.prototype.onAssetLoaded=function(){this.loadCount--,this.dispatchEvent({type:"onProgress",content:this}),this.onProgress&&this.onProgress(),0==this.loadCount&&(this.dispatchEvent({type:"onComplete",content:this}),this.onComplete&&this.onComplete())},PIXI.SpriteSheetLoader=function(t,e){PIXI.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.frames={},this.crossorigin=e},PIXI.SpriteSheetLoader.constructor=PIXI.SpriteSheetLoader,PIXI.SpriteSheetLoader.prototype.load=function(){this.ajaxRequest=new AjaxRequest;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onJSONLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/json"),this.ajaxRequest.send(null)},PIXI.SpriteSheetLoader.prototype.onJSONLoaded=function(){if(4==this.ajaxRequest.readyState&&(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))){var jsonData=eval("("+this.ajaxRequest.responseText+")"),textureUrl=this.baseUrl+jsonData.meta.image,image=new PIXI.ImageLoader(textureUrl,this.crossorigin);this.texture=image.texture.baseTexture;var scope=this;image.addEventListener("loaded",function(){scope.onLoaded()});var frameData=jsonData.frames;for(var i in frameData){var rect=frameData[i].frame;rect&&(PIXI.TextureCache[i]=new PIXI.Texture(this.texture,{x:rect.x,y:rect.y,width:rect.w,height:rect.h}),frameData[i].trimmed&&(PIXI.TextureCache[i].realSize=frameData[i].spriteSourceSize,PIXI.TextureCache[i].trim.x=0))}image.load()}},PIXI.SpriteSheetLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},PIXI.ImageLoader=function(t,e){PIXI.EventTarget.call(this),this.texture=PIXI.Texture.fromImage(t,e)},PIXI.ImageLoader.constructor=PIXI.ImageLoader,PIXI.ImageLoader.prototype.load=function(){if(this.texture.baseTexture.hasLoaded)this.onLoaded();else{var t=this;this.texture.baseTexture.addEventListener("loaded",function(){t.onLoaded()})}},PIXI.ImageLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},PIXI.BitmapFontLoader=function(t,e){PIXI.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.crossorigin=e},PIXI.BitmapFontLoader.constructor=PIXI.BitmapFontLoader,PIXI.BitmapFontLoader.prototype.load=function(){this.ajaxRequest=new XMLHttpRequest;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onXMLLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/xml"),this.ajaxRequest.send(null)},PIXI.BitmapFontLoader.prototype.onXMLLoaded=function(){if(4==this.ajaxRequest.readyState&&(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))){var t=this.baseUrl+this.ajaxRequest.responseXML.getElementsByTagName("page")[0].attributes.getNamedItem("file").nodeValue,e=new PIXI.ImageLoader(t,this.crossorigin);this.texture=e.texture.baseTexture;var i={},r=this.ajaxRequest.responseXML.getElementsByTagName("info")[0],s=this.ajaxRequest.responseXML.getElementsByTagName("common")[0];i.font=r.attributes.getNamedItem("face").nodeValue,i.size=parseInt(r.attributes.getNamedItem("size").nodeValue,10),i.lineHeight=parseInt(s.attributes.getNamedItem("lineHeight").nodeValue,10),i.chars={};for(var n=this.ajaxRequest.responseXML.getElementsByTagName("char"),a=0;n.length>a;a++){var o=parseInt(n[a].attributes.getNamedItem("id").nodeValue,10),h={x:parseInt(n[a].attributes.getNamedItem("x").nodeValue,10),y:parseInt(n[a].attributes.getNamedItem("y").nodeValue,10),width:parseInt(n[a].attributes.getNamedItem("width").nodeValue,10),height:parseInt(n[a].attributes.getNamedItem("height").nodeValue,10)};PIXI.TextureCache[o]=new PIXI.Texture(this.texture,h),i.chars[o]={xOffset:parseInt(n[a].attributes.getNamedItem("xoffset").nodeValue,10),yOffset:parseInt(n[a].attributes.getNamedItem("yoffset").nodeValue,10),xAdvance:parseInt(n[a].attributes.getNamedItem("xadvance").nodeValue,10),kerning:{}}}var u=this.ajaxRequest.responseXML.getElementsByTagName("kerning");for(a=0;u.length>a;a++){var c=parseInt(u[a].attributes.getNamedItem("first").nodeValue,10),d=parseInt(u[a].attributes.getNamedItem("second").nodeValue,10),l=parseInt(u[a].attributes.getNamedItem("amount").nodeValue,10);i.chars[d].kerning[c]=l}PIXI.BitmapText.fonts[i.font]=i;var I=this;e.addEventListener("loaded",function(){I.onLoaded()}),e.load()}},PIXI.BitmapFontLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=PIXI),exports.PIXI=PIXI):root.PIXI=PIXI}).call(this); \ No newline at end of file +(function(){function HEXtoRGB(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}function determineMatrixArrayType(){return PIXI.Matrix="undefined"!=typeof Float32Array?Float32Array:Array,PIXI.Matrix}var root=this,PIXI=PIXI||{};PIXI.Point=function(t,e){this.x=t||0,this.y=e||0},PIXI.Point.prototype.clone=function(){return new PIXI.Point(this.x,this.y)},PIXI.Point.constructor=PIXI.Point,PIXI.Rectangle=function(t,e,i,r){this.x=t||0,this.y=e||0,this.width=i||0,this.height=r||0},PIXI.Rectangle.prototype.clone=function(){return new PIXI.Rectangle(this.x,this.y,this.width,this.height)},PIXI.Rectangle.constructor=PIXI.Rectangle,PIXI.DisplayObject=function(){this.position=new PIXI.Point,this.scale=new PIXI.Point(1,1),this.pivot=new PIXI.Point(0,0),this.rotation=0,this.alpha=1,this.visible=!0,this.worldVisible=!1,this.parent=null,this.stage=null,this.hitArea=null,this.worldAlpha=1,this.color=[],this.worldTransform=PIXI.mat3.create(),this.localTransform=PIXI.mat3.create(),this.dynamic=!0,this._sr=0,this._cr=1,this.childIndex=0,this.renderable=!1,this.interactive=!1,this.buttonMode=!1},PIXI.DisplayObject.constructor=PIXI.DisplayObject,PIXI.DisplayObject.prototype.setInteractive=function(t){this.interactive=t,this.stage&&(this.stage.dirty=!0)},PIXI.DisplayObject.prototype.updateTransform=function(){this.rotation!=this.rotationCache&&(this.rotationCache=this.rotation,this._sr=Math.sin(this.rotation),this._cr=Math.cos(this.rotation));var t=this.localTransform,e=this.parent.worldTransform,i=this.worldTransform;t[0]=this._cr*this.scale.x,t[1]=-this._sr*this.scale.y,t[3]=this._sr*this.scale.x,t[4]=this._cr*this.scale.y;var r=this.pivot.x,s=this.pivot.y;t[2]=this.position.x-t[0]*r-s*t[1],t[5]=this.position.y-t[4]*s-r*t[3];var n=t[0],a=t[1],o=t[2],h=t[3],u=t[4],d=t[5],c=e[0],l=e[1],I=e[2],p=e[3],f=e[4],x=e[5];i[0]=c*n+l*h,i[1]=c*a+l*u,i[2]=c*o+l*d+I,i[3]=p*n+f*h,i[4]=p*a+f*u,i[5]=p*o+f*d+x,this.worldAlpha=this.alpha*this.parent.worldAlpha},PIXI.DisplayObjectContainer=function(){PIXI.DisplayObject.call(this),this.children=[],this.renderable=!1},PIXI.DisplayObjectContainer.constructor=PIXI.DisplayObjectContainer,PIXI.DisplayObjectContainer.prototype=Object.create(PIXI.DisplayObject.prototype),PIXI.DisplayObjectContainer.prototype.addChild=function(t){void 0!=t.parent&&t.parent.removeChild(t),t.parent=this,t.childIndex=this.children.length,this.children.push(t),this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},PIXI.DisplayObjectContainer.prototype.addChildAt=function(t,e){if(!(e>=0&&this.children.length>=e))throw Error(t+" The index "+e+" supplied is out of bounds "+this.children.length);void 0!=t.parent&&t.parent.removeChild(t),e==this.children.length?this.children.push(t):this.children.splice(e,0,t),t.parent=this,t.childIndex=e;for(var i=this.children.length,r=e;i>r;r++)this.children[r].childIndex=r;this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},PIXI.DisplayObjectContainer.prototype.swapChildren=function(t,e){var i=this.children.indexOf(t),r=this.children.indexOf(e);if(-1===i||-1===r)throw Error(t+" Both the supplied DisplayObjects must be a child of the caller "+this);this.stage&&(this.stage.__removeChild(t),this.stage.__removeChild(e),this.stage.__addChild(t),this.stage.__addChild(e)),t.childIndex=r,e.childIndex=i,this.children[i]=e,this.children[r]=t},PIXI.DisplayObjectContainer.prototype.getChildAt=function(t){if(t>=0&&this.children.length>t)return this.children[t];throw Error(child+" Both the supplied DisplayObjects must be a child of the caller "+this)},PIXI.DisplayObjectContainer.prototype.removeChild=function(t){var e=this.children.indexOf(t);if(-1===e)throw Error(t+" The supplied DisplayObject must be a child of the caller "+this);this.stage&&this.stage.__removeChild(t),t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.parent=void 0,this.children.splice(e,1);for(var i=e,r=this.children.length;r>i;i++)this.children[i].childIndex-=1},PIXI.DisplayObjectContainer.prototype.updateTransform=function(){if(this.visible){PIXI.DisplayObject.prototype.updateTransform.call(this);for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform()}},PIXI.blendModes={},PIXI.blendModes.NORMAL=0,PIXI.blendModes.SCREEN=1,PIXI.Sprite=function(t){PIXI.DisplayObjectContainer.call(this),this.anchor=new PIXI.Point,this.texture=t,this.blendMode=PIXI.blendModes.NORMAL,this._width=0,this._height=0,t.baseTexture.hasLoaded?this.updateFrame=!0:(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},PIXI.Sprite.constructor=PIXI.Sprite,PIXI.Sprite.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),Object.defineProperty(PIXI.Sprite.prototype,"width",{get:function(){return this.scale.x*this.texture.frame.width},set:function(t){this.scale.x=t/this.texture.frame.width,this._width=t}}),Object.defineProperty(PIXI.Sprite.prototype,"height",{get:function(){return this.scale.y*this.texture.frame.height},set:function(t){this.scale.y=t/this.texture.frame.height,this._height=t}}),PIXI.Sprite.prototype.setTexture=function(t){this.texture.baseTexture!=t.baseTexture&&(this.textureChange=!0),this.texture=t,this.updateFrame=!0},PIXI.Sprite.prototype.onTextureUpdate=function(){this._width&&(this.scale.x=this._width/this.texture.frame.width),this._height&&(this.scale.y=this._height/this.texture.frame.height),this.updateFrame=!0},PIXI.Sprite.fromFrame=function(t){var e=PIXI.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache"+this);return new PIXI.Sprite(e)},PIXI.Sprite.fromImage=function(t){var e=PIXI.Texture.fromImage(t);return new PIXI.Sprite(e)},PIXI.MovieClip=function(t){PIXI.Sprite.call(this,t[0]),this.textures=t,this.currentFrame=0,this.animationSpeed=1,this.loop=!0,this.onComplete=null,this.playing},PIXI.MovieClip.constructor=PIXI.MovieClip,PIXI.MovieClip.prototype=Object.create(PIXI.Sprite.prototype),PIXI.MovieClip.prototype.stop=function(){this.playing=!1},PIXI.MovieClip.prototype.play=function(){this.playing=!0},PIXI.MovieClip.prototype.gotoAndStop=function(t){this.playing=!1,this.currentFrame=t;var e=0|this.currentFrame+.5;this.setTexture(this.textures[e%this.textures.length])},PIXI.MovieClip.prototype.gotoAndPlay=function(t){this.currentFrame=t,this.playing=!0},PIXI.MovieClip.prototype.updateTransform=function(){if(PIXI.Sprite.prototype.updateTransform.call(this),this.playing){this.currentFrame+=this.animationSpeed;var t=0|this.currentFrame+.5;this.loop||this.textures.length>t?this.setTexture(this.textures[t%this.textures.length]):t>=this.textures.length&&(this.gotoAndStop(this.textures.length-1),this.onComplete&&this.onComplete())}},PIXI.Text=function(t,e){this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"),PIXI.Sprite.call(this,PIXI.Texture.fromCanvas(this.canvas)),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},PIXI.Text.constructor=PIXI.Text,PIXI.Text.prototype=Object.create(PIXI.Sprite.prototype),PIXI.Text.prototype.setStyle=function(t){t=t||{},t.font=t.font||"bold 20pt Arial",t.fill=t.fill||"black",t.align=t.align||"left",t.strokeThickness=t.strokeThickness||0,this.style=t,this.dirty=!0},PIXI.Sprite.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},PIXI.Text.prototype.updateText=function(){this.context.font=this.style.font;for(var t=this.text.split(/(?:\r\n|\r|\n)/),e=[],i=0,r=0;t.length>r;r++){var s=this.context.measureText(t[r]).width;e[r]=s,i=Math.max(i,s)}this.canvas.width=i+this.style.strokeThickness;var n=this.determineFontHeight("font: "+this.style.font+";")+this.style.strokeThickness;for(this.canvas.height=n*t.length,this.context.fillStyle=this.style.fill,this.context.font=this.style.font,this.context.strokeStyle=this.style.stroke,this.context.lineWidth=this.style.strokeThickness,this.context.textBaseline="top",r=0;t.length>r;r++){var a=new PIXI.Point(this.style.strokeThickness/2,this.style.strokeThickness/2+r*n);"right"==this.style.align?a.x+=i-e[r]:"center"==this.style.align&&(a.x+=(i-e[r])/2),this.style.stroke&&this.style.strokeThickness&&this.context.strokeText(t[r],a.x,a.y),this.style.fill&&this.context.fillText(t[r],a.x,a.y)}this.updateTexture()},PIXI.Text.prototype.updateTexture=function(){this.texture.baseTexture.width=this.canvas.width,this.texture.baseTexture.height=this.canvas.height,this.texture.frame.width=this.canvas.width,this.texture.frame.height=this.canvas.height,this._width=this.canvas.width,this._height=this.canvas.height,PIXI.texturesToUpdate.push(this.texture.baseTexture)},PIXI.Text.prototype.updateTransform=function(){this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype.updateTransform.call(this)},PIXI.Text.prototype.determineFontHeight=function(t){var e=PIXI.Text.heightCache[t];if(!e){var i=document.getElementsByTagName("body")[0],r=document.createElement("div"),s=document.createTextNode("M");r.appendChild(s),r.setAttribute("style",t),i.appendChild(r),e=r.offsetHeight,PIXI.Text.heightCache[t]=e,i.removeChild(r)}return e},PIXI.Text.prototype.destroy=function(t){t&&this.texture.destroy()},PIXI.Text.heightCache={},PIXI.BitmapText=function(t,e){PIXI.DisplayObjectContainer.call(this),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},PIXI.BitmapText.constructor=PIXI.BitmapText,PIXI.BitmapText.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.BitmapText.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},PIXI.BitmapText.prototype.setStyle=function(t){t=t||{},t.align=t.align||"left",this.style=t;var e=t.font.split(" ");this.fontName=e[e.length-1],this.fontSize=e.length>=2?parseInt(e[e.length-2],10):PIXI.BitmapText.fonts[this.fontName].size,this.dirty=!0},PIXI.BitmapText.prototype.updateText=function(){for(var t=PIXI.BitmapText.fonts[this.fontName],e=new PIXI.Point,i=null,r=[],s=0,n=[],a=0,o=this.fontSize/t.size,h=0;this.text.length>h;h++){var u=this.text.charCodeAt(h);if(/(?:\r\n|\r|\n)/.test(this.text.charAt(h)))n.push(e.x),s=Math.max(s,e.x),a++,e.x=0,e.y+=t.lineHeight,i=null;else{var d=t.chars[u];d&&(i&&d[i]&&(e.x+=d.kerning[i]),r.push({line:a,charCode:u,position:new PIXI.Point(e.x+d.xOffset,e.y+d.yOffset)}),e.x+=d.xAdvance,i=u)}}n.push(e.x),s=Math.max(s,e.x);var c=[];for(h=0;a>=h;h++){var l=0;"right"==this.style.align?l=s-n[h]:"center"==this.style.align&&(l=(s-n[h])/2),c.push(l)}for(h=0;r.length>h;h++){var I=PIXI.Sprite.fromFrame(r[h].charCode);I.position.x=(r[h].position.x+c[r[h].line])*o,I.position.y=r[h].position.y*o,I.scale.x=I.scale.y=o,this.addChild(I)}this.width=e.x*o,this.height=(e.y+t.lineHeight)*o},PIXI.BitmapText.prototype.updateTransform=function(){if(this.dirty){for(;this.children.length>0;)this.removeChild(this.getChildAt(0));this.updateText(),this.dirty=!1}PIXI.DisplayObjectContainer.prototype.updateTransform.call(this)},PIXI.BitmapText.fonts={},PIXI.InteractionManager=function(t){this.stage=t,this.tempPoint=new PIXI.Point,this.mouseoverEnabled=!0,this.mouse=new PIXI.InteractionData,this.touchs={},this.pool=[],this.interactiveItems=[],this.last=0},PIXI.InteractionManager.constructor=PIXI.InteractionManager,PIXI.InteractionManager.prototype.collectInteractiveSprite=function(t,e){for(var i=t.children,r=i.length,s=r-1;s>=0;s--){var n=i[s];n.interactive?(e.interactiveChildren=!0,this.interactiveItems.push(n),n.children.length>0&&this.collectInteractiveSprite(n,n)):(n.__iParent=null,n.children.length>0&&this.collectInteractiveSprite(n,e))}},PIXI.InteractionManager.prototype.setTarget=function(t){window.navigator.msPointerEnabled&&(t.view.style["-ms-content-zooming"]="none",t.view.style["-ms-touch-action"]="none"),this.target=t,t.view.addEventListener("mousemove",this.onMouseMove.bind(this),!0),t.view.addEventListener("mousedown",this.onMouseDown.bind(this),!0),document.body.addEventListener("mouseup",this.onMouseUp.bind(this),!0),t.view.addEventListener("mouseout",this.onMouseUp.bind(this),!0),t.view.addEventListener("touchstart",this.onTouchStart.bind(this),!0),t.view.addEventListener("touchend",this.onTouchEnd.bind(this),!0),t.view.addEventListener("touchmove",this.onTouchMove.bind(this),!0)},PIXI.InteractionManager.prototype.update=function(){if(this.target){var t=Date.now(),e=t-this.last;if(e=30*e/1e3,!(1>e)){if(this.last=t,this.dirty){this.dirty=!1,this.interactiveItems.length;for(var i=0;this.interactiveItems.length>i;i++)this.interactiveItems[i].interactiveChildren=!1;this.interactiveItems=[],this.stage.interactive&&this.interactiveItems.push(this.stage),this.collectInteractiveSprite(this.stage,this.stage)}var r=this.interactiveItems.length;this.target.view.style.cursor="default";for(var i=0;r>i;i++){var s=this.interactiveItems[i];s.visible&&(s.mouseover||s.mouseout||s.buttonMode)&&(s.__hit=this.hitTest(s,this.mouse),s.__hit?(s.buttonMode&&(this.target.view.style.cursor="pointer"),s.__isOver||(s.mouseover&&s.mouseover(this.mouse),s.__isOver=!0)):s.__isOver&&(s.mouseout&&s.mouseout(this.mouse),s.__isOver=!1))}}}},PIXI.InteractionManager.prototype.onMouseMove=function(t){t.preventDefault();var e=this.target.view.getBoundingClientRect();this.mouse.global.x=(t.clientX-e.left)*(this.target.width/e.width),this.mouse.global.y=(t.clientY-e.top)*(this.target.height/e.height);var i=this.interactiveItems.length;this.mouse.global;for(var r=0;i>r;r++){var s=this.interactiveItems[r];s.mousemove&&s.mousemove(this.mouse)}},PIXI.InteractionManager.prototype.onMouseDown=function(t){t.preventDefault();var e=this.interactiveItems.length;this.mouse.global,this.stage;for(var i=0;e>i;i++){var r=this.interactiveItems[i];if((r.mousedown||r.click)&&(r.__mouseIsDown=!0,r.__hit=this.hitTest(r,this.mouse),r.__hit&&(r.mousedown&&r.mousedown(this.mouse),r.__isDown=!0,!r.interactiveChildren)))break}},PIXI.InteractionManager.prototype.onMouseUp=function(t){t.preventDefault(),this.mouse.global;for(var e=this.interactiveItems.length,i=!1,r=0;e>r;r++){var s=this.interactiveItems[r];(s.mouseup||s.mouseupoutside||s.click)&&(s.__hit=this.hitTest(s,this.mouse),s.__hit&&!i?(s.mouseup&&s.mouseup(this.mouse),s.__isDown&&s.click&&s.click(this.mouse),s.interactiveChildren||(i=!0)):s.__isDown&&s.mouseupoutside&&s.mouseupoutside(this.mouse),s.__isDown=!1)}},PIXI.InteractionManager.prototype.hitTest=function(t,e){var i=e.global;if(!t.visible)return!1;if(t instanceof PIXI.Sprite){var r=t.worldTransform,s=r[0],n=r[1],a=r[2],o=r[3],h=r[4],u=r[5],d=1/(s*h+n*-o),c=h*d*i.x+-n*d*i.y+(u*n-a*h)*d,l=s*d*i.y+-o*d*i.x+(-u*s+a*o)*d,I=t.texture.frame.width,p=t.texture.frame.height,f=-I*t.anchor.x;if(c>f&&f+I>c){var x=-p*t.anchor.y;if(l>x&&x+p>l)return e.target=t,!0}}else if(t.hitArea){var r=t.worldTransform,v=t.hitArea,s=r[0],n=r[1],a=r[2],o=r[3],h=r[4],u=r[5],d=1/(s*h+n*-o),c=h*d*i.x+-n*d*i.y+(u*n-a*h)*d,l=s*d*i.y+-o*d*i.x+(-u*s+a*o)*d,f=v.x;if(c>f&&f+v.width>c){var x=v.y;if(l>x&&x+v.height>l)return!0}}for(var P=t.children.length,g=0;P>g;g++){var b=t.children[g],X=this.hitTest(b,e);if(X)return!0}return!1},PIXI.InteractionManager.prototype.onTouchMove=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.touchs[s.identifier];n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height)}for(var a=this.interactiveItems.length,r=0;a>r;r++){var o=this.interactiveItems[r];o.touchmove&&o.touchmove(n)}},PIXI.InteractionManager.prototype.onTouchStart=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.pool.pop();n||(n=new PIXI.InteractionData),this.touchs[s.identifier]=n,n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height);for(var a=this.interactiveItems.length,o=0;a>o;o++){var h=this.interactiveItems[o];if((h.touchstart||h.tap)&&(h.__hit=this.hitTest(h,n),h.__hit&&(h.touchstart&&h.touchstart(n),h.__isDown=!0,h.__touchData=n,!h.interactiveChildren)))break}}},PIXI.InteractionManager.prototype.onTouchEnd=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.touchs[s.identifier],a=!1;n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var u=this.interactiveItems[h],d=u.__touchData;u.__hit=this.hitTest(u,n),d==n&&((u.touchend||u.tap)&&(u.__hit&&!a?(u.touchend&&u.touchend(n),u.__isDown&&u.tap&&u.tap(n),u.interactiveChildren||(a=!0)):u.__isDown&&u.touchendoutside&&u.touchendoutside(n),u.__isDown=!1),u.__touchData=null)}this.pool.push(n),this.touchs[s.identifier]=null}},PIXI.InteractionData=function(){this.global=new PIXI.Point,this.local=new PIXI.Point,this.target},PIXI.InteractionData.prototype.getLocalPosition=function(t){var e=t.worldTransform,i=this.global,r=e[0],s=e[1],n=e[2],a=e[3],o=e[4],h=e[5],u=1/(r*o+s*-a);return new PIXI.Point(o*u*i.x+-s*u*i.y+(h*s-n*o)*u,r*u*i.y+-a*u*i.x+(-h*r+n*a)*u)},PIXI.InteractionData.constructor=PIXI.InteractionData,PIXI.Stage=function(t,e){PIXI.DisplayObjectContainer.call(this),this.worldTransform=PIXI.mat3.create(),this.__childrenAdded=[],this.__childrenRemoved=[],this.childIndex=0,this.stage=this,this.stage.hitArea=new PIXI.Rectangle(0,0,1e5,1e5),this.interactive=!!e,this.interactionManager=new PIXI.InteractionManager(this),this.setBackgroundColor(t),this.worldVisible=!0},PIXI.Stage.constructor=PIXI.Stage,PIXI.Stage.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Stage.prototype.updateTransform=function(){this.worldAlpha=1;for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform();this.dirty&&(this.dirty=!1,this.interactionManager.dirty=!0),this.interactive&&this.interactionManager.update()},PIXI.Stage.prototype.setBackgroundColor=function(t){this.backgroundColor=t||0,this.backgroundColorSplit=HEXtoRGB(this.backgroundColor),this.backgroundColorString="#"+this.backgroundColor.toString(16)},PIXI.Stage.prototype.getMousePosition=function(){return this.interactionManager.mouse.global},PIXI.Stage.prototype.__addChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=this,t.children)for(var e=0;t.children.length>e;e++)this.__addChild(t.children[e])},PIXI.Stage.prototype.__removeChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=void 0,t.children)for(var e=0,i=t.children.length;i>e;e++)this.__removeChild(t.children[e])},window.requestAnimFrame=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(t){window.setTimeout(t,1e3/60)}}(),"function"!=typeof Function.prototype.bind&&(Function.prototype.bind=function(){var t=Array.prototype.slice;return function(e){function i(){var n=s.concat(t.call(arguments));r.apply(this instanceof i?this:e,n)}var r=this,s=t.call(arguments,1);if("function"!=typeof r)throw new TypeError;return i.prototype=function n(t){return t&&(n.prototype=t),this instanceof n?void 0:new n}(r.prototype),i}}());var AjaxRequest=function(){var t=["Msxml2.XMLHTTP","Microsoft.XMLHTTP"];if(!window.ActiveXObject)return window.XMLHttpRequest?new XMLHttpRequest:!1;for(var e=0;t.length>e;e++)try{return new ActiveXObject(t[e])}catch(i){}};PIXI.EventTarget=function(){var t={};this.addEventListener=this.on=function(e,i){void 0===t[e]&&(t[e]=[]),-1===t[e].indexOf(i)&&t[e].push(i)},this.dispatchEvent=this.emit=function(e){for(var i in t[e.type])t[e.type][i](e)},this.removeEventListener=this.off=function(e,i){var r=t[e].indexOf(i);-1!==r&&t[e].splice(r,1)}},determineMatrixArrayType(),PIXI.mat3={},PIXI.mat3.create=function(){var t=new PIXI.Matrix(9);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},PIXI.mat4={},PIXI.mat4.create=function(){var t=new PIXI.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},PIXI.mat3.multiply=function(t,e,i){i||(i=t);var r=t[0],s=t[1],n=t[2],a=t[3],o=t[4],h=t[5],u=t[6],d=t[7],c=t[8],l=e[0],I=e[1],p=e[2],f=e[3],x=e[4],v=e[5],P=e[6],g=e[7],b=e[8];return i[0]=l*r+I*a+p*u,i[1]=l*s+I*o+p*d,i[2]=l*n+I*h+p*c,i[3]=f*r+x*a+v*u,i[4]=f*s+x*o+v*d,i[5]=f*n+x*h+v*c,i[6]=P*r+g*a+b*u,i[7]=P*s+g*o+b*d,i[8]=P*n+g*h+b*c,i},PIXI.mat3.toMat4=function(t,e){return e||(e=PIXI.mat4.create()),e[15]=1,e[14]=0,e[13]=0,e[12]=0,e[11]=0,e[10]=t[8],e[9]=t[7],e[8]=t[6],e[7]=0,e[6]=t[5],e[5]=t[4],e[4]=t[3],e[3]=0,e[2]=t[2],e[1]=t[1],e[0]=t[0],e},PIXI.mat4.create=function(){var t=new PIXI.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},PIXI.mat4.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],s=t[3],n=t[6],a=t[7],o=t[11];return t[1]=t[4],t[2]=t[8],t[3]=t[12],t[4]=i,t[6]=t[9],t[7]=t[13],t[8]=r,t[9]=n,t[11]=t[14],t[12]=s,t[13]=a,t[14]=o,t}return e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=t[1],e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=t[2],e[9]=t[6],e[10]=t[10],e[11]=t[14],e[12]=t[3],e[13]=t[7],e[14]=t[11],e[15]=t[15],e},PIXI.mat4.multiply=function(t,e,i){i||(i=t);var r=t[0],s=t[1],n=t[2],a=t[3],o=t[4],h=t[5],u=t[6],d=t[7],c=t[8],l=t[9],I=t[10],p=t[11],f=t[12],x=t[13],v=t[14],P=t[15],g=e[0],b=e[1],X=e[2],m=e[3];return i[0]=g*r+b*o+X*c+m*f,i[1]=g*s+b*h+X*l+m*x,i[2]=g*n+b*u+X*I+m*v,i[3]=g*a+b*d+X*p+m*P,g=e[4],b=e[5],X=e[6],m=e[7],i[4]=g*r+b*o+X*c+m*f,i[5]=g*s+b*h+X*l+m*x,i[6]=g*n+b*u+X*I+m*v,i[7]=g*a+b*d+X*p+m*P,g=e[8],b=e[9],X=e[10],m=e[11],i[8]=g*r+b*o+X*c+m*f,i[9]=g*s+b*h+X*l+m*x,i[10]=g*n+b*u+X*I+m*v,i[11]=g*a+b*d+X*p+m*P,g=e[12],b=e[13],X=e[14],m=e[15],i[12]=g*r+b*o+X*c+m*f,i[13]=g*s+b*h+X*l+m*x,i[14]=g*n+b*u+X*I+m*v,i[15]=g*a+b*d+X*p+m*P,i},PIXI.autoDetectRenderer=function(t,e,i,r){t||(t=800),e||(e=600);var s=function(){try{return!!window.WebGLRenderingContext&&!!document.createElement("canvas").getContext("experimental-webgl")}catch(t){return!1}}();return s?new PIXI.WebGLRenderer(t,e,i,r):new PIXI.CanvasRenderer(t,e,i,r)},PIXI.shaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * vColor;","}"],PIXI.shaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform mat4 uMVMatrix;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","gl_Position = uMVMatrix * vec4(aVertexPosition, 1.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],PIXI.CompileVertexShader=function(t,e){return PIXI._CompileShader(t,e,t.VERTEX_SHADER)},PIXI.CompileFragmentShader=function(t,e){return PIXI._CompileShader(t,e,t.FRAGMENT_SHADER)},PIXI._CompileShader=function(t,e,i){var r=e.join("\n"),s=t.createShader(i);return t.shaderSource(s,r),t.compileShader(s),t.getShaderParameter(s,t.COMPILE_STATUS)?s:(alert(t.getShaderInfoLog(s)),null)},PIXI._defaultFrame=new PIXI.Rectangle(0,0,1,1),PIXI.gl,PIXI.WebGLRenderer=function(t,e,i,r){this.transparent=!!r,this.width=t||800,this.height=e||600,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height;var s=this;this.view.addEventListener("webglcontextlost",function(t){s.handleContextLost(t)},!1),this.view.addEventListener("webglcontextrestored",function(t){s.handleContextRestored(t)},!1),this.batchs=[];try{PIXI.gl=this.gl=this.view.getContext("experimental-webgl",{alpha:this.transparent,antialias:!1,premultipliedAlpha:!0})}catch(n){throw Error(" This browser does not support webGL. Try using the canvas renderer"+this)}this.initShaders();var a=this.gl;PIXI.WebGLRenderer.gl=a,this.batch=new PIXI.WebGLBatch(a),a.disable(a.DEPTH_TEST),a.disable(a.CULL_FACE),a.enable(a.BLEND),a.colorMask(!0,!0,!0,this.transparent),this.projectionMatrix=PIXI.mat4.create(),this.resize(this.width,this.height),this.contextLost=!1,this.stageRenderGroup=new PIXI.WebGLRenderGroup(this.gl)},PIXI.WebGLRenderer.constructor=PIXI.WebGLRenderer,PIXI.WebGLRenderer.getBatch=function(){return 0==PIXI._batchs.length?new PIXI.WebGLBatch(PIXI.WebGLRenderer.gl):PIXI._batchs.pop()},PIXI.WebGLRenderer.returnBatch=function(t){t.clean(),PIXI._batchs.push(t)},PIXI.WebGLRenderer.prototype.initShaders=function(){var t=this.gl,e=PIXI.CompileFragmentShader(t,PIXI.shaderFragmentSrc),i=PIXI.CompileVertexShader(t,PIXI.shaderVertexSrc);PIXI.shaderProgram=t.createProgram();var r=PIXI.shaderProgram;t.attachShader(r,i),t.attachShader(r,e),t.linkProgram(r),t.getProgramParameter(r,t.LINK_STATUS)||alert("Could not initialise shaders"),t.useProgram(r),r.vertexPositionAttribute=t.getAttribLocation(r,"aVertexPosition"),t.enableVertexAttribArray(r.vertexPositionAttribute),r.textureCoordAttribute=t.getAttribLocation(r,"aTextureCoord"),t.enableVertexAttribArray(r.textureCoordAttribute),r.colorAttribute=t.getAttribLocation(r,"aColor"),t.enableVertexAttribArray(r.colorAttribute),r.mvMatrixUniform=t.getUniformLocation(r,"uMVMatrix"),r.samplerUniform=t.getUniformLocation(r,"uSampler")},PIXI.WebGLRenderer.prototype.render=function(t){if(!this.contextLost){this.__stage!==t&&(this.__stage=t,this.stageRenderGroup.setRenderable(t)),PIXI.WebGLRenderer.updateTextures(),t.updateTransform();var e=this.gl;if(e.colorMask(!0,!0,!0,this.transparent),e.viewport(0,0,this.width,this.height),e.bindFramebuffer(e.FRAMEBUFFER,null),e.clearColor(t.backgroundColorSplit[0],t.backgroundColorSplit[1],t.backgroundColorSplit[2],this.transparent),e.clear(e.COLOR_BUFFER_BIT),this.stageRenderGroup.backgroundColor=t.backgroundColorSplit,this.stageRenderGroup.render(this.projectionMatrix),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),PIXI.Texture.frameUpdates.length>0){for(var i=0;PIXI.Texture.frameUpdates.length>i;i++)PIXI.Texture.frameUpdates[i].updateFrame=!1;PIXI.Texture.frameUpdates=[]}}},PIXI.WebGLRenderer.updateTextures=function(){for(var t=0;PIXI.texturesToUpdate.length>t;t++)this.updateTexture(PIXI.texturesToUpdate[t]);for(var t=0;PIXI.texturesToDestroy.length>t;t++)this.destroyTexture(PIXI.texturesToDestroy[t]);PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[]},PIXI.WebGLRenderer.updateTexture=function(t){var e=PIXI.gl;t._glTexture||(t._glTexture=e.createTexture()),t.hasLoaded&&(e.bindTexture(e.TEXTURE_2D,t._glTexture),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t.source),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),t._powerOf2?(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT)):(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)),e.bindTexture(e.TEXTURE_2D,null))},PIXI.WebGLRenderer.prototype.destroyTexture=function(t){var e=this.gl;t._glTexture&&(t._glTexture=e.createTexture(),e.deleteTexture(e.TEXTURE_2D,t._glTexture))},PIXI.WebGLRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e,this.gl.viewport(0,0,this.width,this.height);var i=this.projectionMatrix;i[0]=2/this.width,i[5]=-2/this.height,i[12]=-1,i[13]=1},PIXI.WebGLRenderer.prototype.handleContextLost=function(t){t.preventDefault(),this.contextLost=!0},PIXI.WebGLRenderer.prototype.handleContextRestored=function(){this.gl=this.view.getContext("experimental-webgl",{alpha:!0}),this.initShaders();for(var t=0;PIXI.TextureCache.length>t;t++)this.updateTexture(PIXI.TextureCache[t]);for(var t=0;this.batchs.length>t;t++)this.batchs[t].restoreLostContext(this.gl),this.batchs[t].dirty=!0;PIXI._restoreBatchs(this.gl),this.contextLost=!1},PIXI._batchs=[],PIXI._getBatch=function(t){return 0==PIXI._batchs.length?new PIXI.WebGLBatch(t):PIXI._batchs.pop()},PIXI._returnBatch=function(t){t.clean(),PIXI._batchs.push(t)},PIXI._restoreBatchs=function(t){for(var e=0;PIXI._batchs.length>e;e++)PIXI._batchs[e].restoreLostContext(t)},PIXI.WebGLBatch=function(t){this.gl=t,this.size=0,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer(),this.blendMode=PIXI.blendModes.NORMAL,this.dynamicSize=1},PIXI.WebGLBatch.constructor=PIXI.WebGLBatch,PIXI.WebGLBatch.prototype.clean=function(){this.verticies=[],this.uvs=[],this.indices=[],this.colors=[],this.dynamicSize=1,this.texture=null,this.last=null,this.size=0,this.head,this.tail},PIXI.WebGLBatch.prototype.restoreLostContext=function(t){this.gl=t,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer()},PIXI.WebGLBatch.prototype.init=function(t){t.batch=this,this.dirty=!0,this.blendMode=t.blendMode,this.texture=t.texture.baseTexture,this.head=t,this.tail=t,this.size=1,this.growBatch()},PIXI.WebGLBatch.prototype.insertBefore=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__prev;e.__prev=t,t.__next=e,i?(t.__prev=i,i.__next=t):this.head=t},PIXI.WebGLBatch.prototype.insertAfter=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__next;e.__next=t,t.__prev=e,i?(t.__next=i,i.__prev=t):this.tail=t},PIXI.WebGLBatch.prototype.remove=function(t){return this.size--,0==this.size?(t.batch=null,t.__prev=null,t.__next=null,void 0):(t.__prev?t.__prev.__next=t.__next:(this.head=t.__next,this.head.__prev=null),t.__next?t.__next.__prev=t.__prev:(this.tail=t.__prev,this.tail.__next=null),t.batch=null,t.__next=null,t.__prev=null,this.dirty=!0,void 0)},PIXI.WebGLBatch.prototype.split=function(t){this.dirty=!0;var e=new PIXI.WebGLBatch(this.gl);e.init(t),e.tail=this.tail,this.tail=t.__prev,this.tail.__next=null,t.__prev=null;for(var i=0;t;)i++,t.batch=e,t=t.__next;return e.size=i,this.size-=i,e},PIXI.WebGLBatch.prototype.merge=function(t){this.dirty=!0,this.tail.__next=t.head,t.head.__prev=this.tail,this.size+=t.size,this.tail=t.tail;for(var e=t.head;e;)e.batch=this,e=e.__next},PIXI.WebGLBatch.prototype.growBatch=function(){var t=this.gl;this.dynamicSize=1==this.size?1:1.5*this.size,this.verticies=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.vertexBuffer),t.bufferData(t.ARRAY_BUFFER,this.verticies,t.DYNAMIC_DRAW),this.uvs=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.uvBuffer),t.bufferData(t.ARRAY_BUFFER,this.uvs,t.DYNAMIC_DRAW),this.dirtyUVS=!0,this.colors=new Float32Array(4*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.colorBuffer),t.bufferData(t.ARRAY_BUFFER,this.colors,t.DYNAMIC_DRAW),this.dirtyColors=!0,this.indices=new Uint16Array(6*this.dynamicSize);for(var e=this.indices.length/6,i=0;e>i;i++){var r=6*i,s=4*i;this.indices[r+0]=s+0,this.indices[r+1]=s+1,this.indices[r+2]=s+2,this.indices[r+3]=s+0,this.indices[r+4]=s+2,this.indices[r+5]=s+3}t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,this.indexBuffer),t.bufferData(t.ELEMENT_ARRAY_BUFFER,this.indices,t.STATIC_DRAW)},PIXI.WebGLBatch.prototype.refresh=function(){this.gl,this.dynamicSizer;r++)i=this.batchs[r],i instanceof PIXI.WebGLBatch?this.batchs[r].render():i instanceof PIXI.TilingSprite?i.visible&&this.renderTilingSprite(i,t):i instanceof PIXI.Strip&&i.visible&&this.renderStrip(i,t)},PIXI.WebGLRenderGroup.prototype.renderSpecific=function(t,e){PIXI.WebGLRenderer.updateTextures();var i=this.gl;this.checkVisibility(t,t.visible),i.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform,!1,e);var r,s,n,a,o=t.renderable?t:this.getNextRenderable(t),h=o.batch;if(o instanceof PIXI.Sprite){h=o.batch;var u=h.head;if(u==o)r=0;else for(r=1;u.__next!=o;)r++,u=u.__next}else h=o;for(var d,c=t,l=t;l.children.length>0;)l=l.children[l.children.length-1],l.renderable&&(c=l);if(c instanceof PIXI.Sprite){d=c.batch;var u=d.head;if(u==c)n=0;else for(n=1;u.__next!=c;)n++,u=u.__next}else d=c;if(h==d)return h instanceof PIXI.WebGLBatch?h.render(r,n+1):h instanceof PIXI.TilingSprite?h.visible&&this.renderTilingSprite(h,e):h instanceof PIXI.Strip?h.visible&&this.renderStrip(h,e):h instanceof PIXI.CustomRenderable&&h.visible&&h.renderWebGL(this,e),void 0;s=this.batchs.indexOf(h),a=this.batchs.indexOf(d),h instanceof PIXI.WebGLBatch?h.render(r):h instanceof PIXI.TilingSprite?h.visible&&this.renderTilingSprite(h,e):h instanceof PIXI.Strip?h.visible&&this.renderStrip(h,e):h instanceof PIXI.CustomRenderable&&h.visible&&h.renderWebGL(this,e);for(var I=s+1;a>I;I++)renderable=this.batchs[I],renderable instanceof PIXI.WebGLBatch?this.batchs[I].render():renderable instanceof PIXI.TilingSprite?renderable.visible&&this.renderTilingSprite(renderable,e):renderable instanceof PIXI.Strip?renderable.visible&&this.renderStrip(renderable,e):renderable instanceof PIXI.CustomRenderable&&renderable.visible&&renderable.renderWebGL(this,e);d instanceof PIXI.WebGLBatch?d.render(0,n+1):d instanceof PIXI.TilingSprite?d.visible&&this.renderTilingSprite(d):d instanceof PIXI.Strip?d.visible&&this.renderStrip(d):d instanceof PIXI.CustomRenderable&&d.visible&&d.renderWebGL(this,e)},PIXI.WebGLRenderGroup.prototype.checkVisibility=function(t,e){for(var i=t.children,r=0;i.length>r;r++){var s=i[r];s.worldVisible=s.visible&&e,s.textureChange&&(s.textureChange=!1,s.worldVisible&&(this.removeDisplayObject(s),this.addDisplayObject(s))),s.children.length>0&&this.checkVisibility(s,s.worldVisible)}},PIXI.WebGLRenderGroup.prototype.addDisplayObject=function(t){if(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.__renderGroup=this,t.renderable){var e=this.getPreviousRenderable(t),i=this.getNextRenderable(t);if(t instanceof PIXI.Sprite){var r,s;if(e instanceof PIXI.Sprite){if(r=e.batch,r&&r.texture==t.texture.baseTexture&&r.blendMode==t.blendMode)return r.insertAfter(t,e),void 0}else r=e;if(i)if(i instanceof PIXI.Sprite){if(s=i.batch){if(s.texture==t.texture.baseTexture&&s.blendMode==t.blendMode)return s.insertBefore(t,i),void 0;if(s==r){var n=r.split(i),a=PIXI.WebGLRenderer.getBatch(),o=this.batchs.indexOf(r);return a.init(t),this.batchs.splice(o+1,0,a,n),void 0}}}else s=i;var a=PIXI.WebGLRenderer.getBatch();if(a.init(t),r){var o=this.batchs.indexOf(r);this.batchs.splice(o+1,0,a)}else this.batchs.push(a)}else t instanceof PIXI.TilingSprite?(this.initTilingSprite(t),this.batchs.push(t)):t instanceof PIXI.Strip&&(this.initStrip(t),this.batchs.push(t));this.batchUpdate=!0}},PIXI.WebGLRenderGroup.prototype.addDisplayObjectAndChildren=function(t){this.addDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.addDisplayObjectAndChildren(e[i])},PIXI.WebGLRenderGroup.prototype.removeDisplayObject=function(t){if(t.__renderGroup=null,t.renderable){var e;if(t instanceof PIXI.Sprite){var i=t.batch;if(!i)return;i.remove(t),0==i.size&&(e=i)}else e=t;if(e){var r=this.batchs.indexOf(e);if(-1==r)return;if(0==r||r==this.batchs.length-1)return this.batchs.splice(r,1),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e),void 0;if(this.batchs[r-1]instanceof PIXI.WebGLBatch&&this.batchs[r+1]instanceof PIXI.WebGLBatch&&this.batchs[r-1].texture==this.batchs[r+1].texture&&this.batchs[r-1].blendMode==this.batchs[r+1].blendMode)return this.batchs[r-1].merge(this.batchs[r+1]),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e),PIXI.WebGLRenderer.returnBatch(this.batchs[r+1]),this.batchs.splice(r,2),void 0;this.batchs.splice(r,1),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e)}}},PIXI.WebGLRenderGroup.prototype.removeDisplayObjectAndChildren=function(t){if(t.__renderGroup==this){this.removeDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.removeDisplayObjectAndChildren(e[i])}},PIXI.WebGLRenderGroup.prototype.getNextRenderable=function(t){var e=t;do{if(0==e.children.length){if(!e.parent)return null;for(;e.childIndex==e.parent.children.length-1;)if(e=e.parent,e==this.root||!e.parent){e=null;break}e&&(e=e.parent.children[e.childIndex+1])}else e=e.children[0];if(!e)break}while(!e.renderable||!e.__renderGroup);return e},PIXI.WebGLRenderGroup.prototype.getPreviousRenderable=function(t){var e=t;do{if(0==e.childIndex){if(e=e.parent,!e)return null}else for(e=e.parent.children[e.childIndex-1];0!=e.children.length;)e=e.children[e.children.length-1];if(e==this.root)break}while(!e.renderable||!e.__renderGroup);return e},PIXI.WebGLRenderGroup.prototype.initTilingSprite=function(t){var e=this.gl;t.verticies=new Float32Array([0,0,t.width,0,t.width,t.height,0,t.height]),t.uvs=new Float32Array([0,0,1,0,1,1,0,1]),t.colors=new Float32Array([1,1,1,1]),t.indices=new Uint16Array([0,1,3,2]),t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW),t.texture.baseTexture._glTexture?(e.bindTexture(e.TEXTURE_2D,t.texture.baseTexture._glTexture),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT),t.texture.baseTexture._powerOf2=!0):t.texture.baseTexture._powerOf2=!0},PIXI.WebGLRenderGroup.prototype.renderStrip=function(t,e){var i=this.gl,r=PIXI.shaderProgram,s=PIXI.mat3.toMat4(t.worldTransform);PIXI.mat4.transpose(s),PIXI.mat4.multiply(e,s,s),i.uniformMatrix4fv(r.mvMatrixUniform,!1,s),t.blendMode==PIXI.blendModes.NORMAL?i.blendFunc(i.ONE,i.ONE_MINUS_SRC_ALPHA):i.blendFunc(i.ONE,i.ONE_MINUS_SRC_COLOR),t.dirty?(t.dirty=!1,i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferData(i.ARRAY_BUFFER,t.verticies,i.STATIC_DRAW),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferData(i.ARRAY_BUFFER,t.uvs,i.STATIC_DRAW),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.bufferData(i.ARRAY_BUFFER,t.colors,i.STATIC_DRAW),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer),i.bufferData(i.ELEMENT_ARRAY_BUFFER,t.indices,i.STATIC_DRAW)):(i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.verticies),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer)),i.drawElements(i.TRIANGLE_STRIP,t.indices.length,i.UNSIGNED_SHORT,0),i.uniformMatrix4fv(r.mvMatrixUniform,!1,e)},PIXI.WebGLRenderGroup.prototype.renderTilingSprite=function(t,e){var i=this.gl;PIXI.shaderProgram;var r=t.tilePosition,s=t.tileScale,n=r.x/t.texture.baseTexture.width,a=r.y/t.texture.baseTexture.height,o=t.width/t.texture.baseTexture.width/s.x,h=t.height/t.texture.baseTexture.height/s.y;t.uvs[0]=0-n,t.uvs[1]=0-a,t.uvs[2]=1*o-n,t.uvs[3]=0-a,t.uvs[4]=1*o-n,t.uvs[5]=1*h-a,t.uvs[6]=0-n,t.uvs[7]=1*h-a,i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.uvs),this.renderStrip(t,e)},PIXI.WebGLRenderer.prototype.initStrip=function(t){var e=this.gl;this.shaderProgram,t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW)},PIXI.CanvasRenderer=function(t,e,i,r){this.transparent=r,this.width=t||800,this.height=e||600,this.refresh=!0,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height,this.count=0,this.context=this.view.getContext("2d")},PIXI.CanvasRenderer.constructor=PIXI.CanvasRenderer,PIXI.CanvasRenderer.prototype.render=function(t){PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[],t.updateTransform(),this.view.style.backgroundColor==t.backgroundColorString||this.transparent||(this.view.style.backgroundColor=t.backgroundColorString),this.context.setTransform(1,0,0,1,0,0),this.context.clearRect(0,0,this.width,this.height),this.renderDisplayObject(t),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),PIXI.Texture.frameUpdates.length>0&&(PIXI.Texture.frameUpdates=[])},PIXI.CanvasRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e},PIXI.CanvasRenderer.prototype.renderDisplayObject=function(t){var e=t.worldTransform,i=this.context;if(t.visible){if(t instanceof PIXI.Sprite){var r=t.texture.frame;r&&(i.globalAlpha=t.worldAlpha,i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),i.drawImage(t.texture.baseTexture.source,r.x,r.y,r.width,r.height,t.anchor.x*-r.width,t.anchor.y*-r.height,r.width,r.height))}else t instanceof PIXI.Strip?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderStrip(t)):t instanceof PIXI.TilingSprite?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderTilingSprite(t)):t instanceof PIXI.CustomRenderable&&t.renderCanvas(this);for(var s=0;t.children.length>s;s++)this.renderDisplayObject(t.children[s]);this.context.setTransform(1,0,0,1,0,0)}},PIXI.CanvasRenderer.prototype.renderStripFlat=function(t){var e=this.context,i=t.verticies;t.uvs;var r=i.length/2;this.count++,e.beginPath();for(var s=1;r-2>s;s++){var n=2*s,a=i[n],o=i[n+2],h=i[n+4],u=i[n+1],d=i[n+3],c=i[n+5];e.moveTo(a,u),e.lineTo(o,d),e.lineTo(h,c)}e.fillStyle="#FF0000",e.fill(),e.closePath()},PIXI.CanvasRenderer.prototype.renderTilingSprite=function(t){var e=this.context;t.__tilePattern||(t.__tilePattern=e.createPattern(t.texture.baseTexture.source,"repeat")),e.beginPath();var i=t.tilePosition,r=t.tileScale;e.scale(r.x,r.y),e.translate(i.x,i.y),e.fillStyle=t.__tilePattern,e.fillRect(-i.x,-i.y,t.width/r.x,t.height/r.y),e.scale(1/r.x,1/r.y),e.translate(-i.x,-i.y),e.closePath()},PIXI.CanvasRenderer.prototype.renderStrip=function(t){var e=this.context,i=t.verticies,r=t.uvs,s=i.length/2;this.count++;for(var n=1;s-2>n;n++){var a=2*n,o=i[a],h=i[a+2],u=i[a+4],d=i[a+1],c=i[a+3],l=i[a+5],I=r[a]*t.texture.width,p=r[a+2]*t.texture.width,f=r[a+4]*t.texture.width,x=r[a+1]*t.texture.height,v=r[a+3]*t.texture.height,P=r[a+5]*t.texture.height;e.save(),e.beginPath(),e.moveTo(o,d),e.lineTo(h,c),e.lineTo(u,l),e.closePath(),e.clip();var g=I*v+x*f+p*P-v*f-x*p-I*P,b=o*v+x*u+h*P-v*u-x*h-o*P,X=I*h+o*f+p*u-h*f-o*p-I*u,m=I*v*u+x*h*f+o*p*P-o*v*f-x*p*u-I*h*P,T=d*v+x*l+c*P-v*l-x*c-d*P,y=I*c+d*f+p*l-c*f-d*p-I*l,_=I*v*l+x*c*f+d*p*P-d*v*f-x*p*l-I*c*P;e.transform(b/g,T/g,X/g,y/g,m/g,_/g),e.drawImage(t.texture.baseTexture.source,0,0),e.restore()}},PIXI.Strip=function(t,e,i){PIXI.DisplayObjectContainer.call(this),this.texture=t,this.blendMode=PIXI.blendModes.NORMAL;try{this.uvs=new Float32Array([0,1,1,1,1,0,0,1]),this.verticies=new Float32Array([0,0,0,0,0,0,0,0,0]),this.colors=new Float32Array([1,1,1,1]),this.indices=new Uint16Array([0,1,2,3])}catch(r){this.uvs=[0,1,1,1,1,0,0,1],this.verticies=[0,0,0,0,0,0,0,0,0],this.colors=[1,1,1,1],this.indices=[0,1,2,3]}this.width=e,this.height=i,t.baseTexture.hasLoaded?(this.width=this.texture.frame.width,this.height=this.texture.frame.height,this.updateFrame=!0):(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},PIXI.Strip.constructor=PIXI.Strip,PIXI.Strip.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Strip.prototype.setTexture=function(t){this.texture=t,this.width=t.frame.width,this.height=t.frame.height,this.updateFrame=!0},PIXI.Strip.prototype.onTextureUpdate=function(){this.updateFrame=!0},PIXI.Rope=function(t,e){PIXI.Strip.call(this,t),this.points=e;try{this.verticies=new Float32Array(4*e.length),this.uvs=new Float32Array(4*e.length),this.colors=new Float32Array(2*e.length),this.indices=new Uint16Array(2*e.length)}catch(i){this.verticies=verticies,this.uvs=uvs,this.colors=colors,this.indices=indices}this.refresh()},PIXI.Rope.constructor=PIXI.Rope,PIXI.Rope.prototype=Object.create(PIXI.Strip.prototype),PIXI.Rope.prototype.refresh=function(){var t=this.points;if(!(1>t.length)){var e=this.uvs,i=this.indices,r=this.colors,s=t[0],n=t[0];this.count-=.2,e[0]=0,e[1]=1,e[2]=0,e[3]=1,r[0]=1,r[1]=1,i[0]=0,i[1]=1;for(var a=t.length,o=1;a>o;o++){var n=t[o],h=4*o,u=o/(a-1);o%2?(e[h]=u,e[h+1]=0,e[h+2]=u,e[h+3]=1):(e[h]=u,e[h+1]=0,e[h+2]=u,e[h+3]=1),h=2*o,r[h]=1,r[h+1]=1,h=2*o,i[h]=h,i[h+1]=h+1,s=n}}},PIXI.Rope.prototype.updateTransform=function(){var t=this.points;if(!(1>t.length)){var e,i=this.verticies,r=t[0],s={x:0,y:0},n=t[0];this.count-=.2,i[0]=n.x+s.x,i[1]=n.y+s.y,i[2]=n.x-s.x,i[3]=n.y-s.y;for(var a=t.length,o=1;a>o;o++){var n=t[o],h=4*o;e=t.length-1>o?t[o+1]:n,s.y=-(e.x-r.x),s.x=e.y-r.y;var u=10*(1-o/(a-1));u>1&&(u=1);var d=Math.sqrt(s.x*s.x+s.y*s.y),c=this.texture.height/2;s.x/=d,s.y/=d,s.x*=c,s.y*=c,i[h]=n.x+s.x,i[h+1]=n.y+s.y,i[h+2]=n.x-s.x,i[h+3]=n.y-s.y,r=n}PIXI.DisplayObjectContainer.prototype.updateTransform.call(this)}},PIXI.Rope.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0},PIXI.TilingSprite=function(t,e,i){PIXI.DisplayObjectContainer.call(this),this.texture=t,this.width=e,this.height=i,this.renderable=!0,this.tileScale=new PIXI.Point(1,1),this.tilePosition=new PIXI.Point(0,0),this.blendMode=PIXI.blendModes.NORMAL},PIXI.TilingSprite.constructor=PIXI.TilingSprite,PIXI.TilingSprite.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.TilingSprite.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0},PIXI.TilingSprite.prototype.onTextureUpdate=function(){this.updateFrame=!0},PIXI.CustomRenderable=function(){PIXI.DisplayObject.call(this)},PIXI.CustomRenderable.constructor=PIXI.CustomRenderable,PIXI.CustomRenderable.prototype=Object.create(PIXI.DisplayObject.prototype),PIXI.CustomRenderable.prototype.renderCanvas=function(){},PIXI.CustomRenderable.prototype.initWebGL=function(){},PIXI.CustomRenderable.prototype.renderWebGL=function(){},PIXI.BaseTextureCache={},PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[],PIXI.BaseTexture=function(t){if(PIXI.EventTarget.call(this),this.width=100,this.height=100,this.source=t,t){if(this.source instanceof Image)if(this.source.complete)this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,PIXI.texturesToUpdate.push(this);else{var e=this;this.source.onload=function(){e.hasLoaded=!0,e.width=e.source.width,e.height=e.source.height,PIXI.texturesToUpdate.push(e),e.dispatchEvent({type:"loaded",content:e})}}else this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,PIXI.texturesToUpdate.push(this);this._powerOf2=!1}},PIXI.BaseTexture.constructor=PIXI.BaseTexture,PIXI.BaseTexture.prototype.destroy=function(){this.source instanceof Image&&(this.source.src=null),this.source=null,PIXI.texturesToDestroy.push(this)},PIXI.BaseTexture.fromImage=function(t,e){var i=PIXI.BaseTextureCache[t];if(!i){var r=new Image;e&&(r.crossOrigin=""),r.src=t,i=new PIXI.BaseTexture(r),PIXI.BaseTextureCache[t]=i}return i},PIXI.TextureCache={},PIXI.FrameCache={},PIXI.Texture=function(t,e){if(PIXI.EventTarget.call(this),e||(this.noFrame=!0,e=new PIXI.Rectangle(0,0,1,1)),this.trim=new PIXI.Point,t instanceof PIXI.Texture&&(t=t.baseTexture),this.baseTexture=t,this.frame=e,this.scope=this,t.hasLoaded)this.noFrame&&(e=new PIXI.Rectangle(0,0,t.width,t.height)),this.setFrame(e);else{var i=this;t.addEventListener("loaded",function(){i.onBaseTextureLoaded()})}},PIXI.Texture.constructor=PIXI.Texture,PIXI.Texture.prototype.onBaseTextureLoaded=function(){var t=this.baseTexture;t.removeEventListener("loaded",this.onLoaded),this.noFrame&&(this.frame=new PIXI.Rectangle(0,0,t.width,t.height)),this.noFrame=!1,this.width=this.frame.width,this.height=this.frame.height,this.scope.dispatchEvent({type:"update",content:this})},PIXI.Texture.prototype.destroy=function(t){t&&this.baseTexture.destroy()},PIXI.Texture.prototype.setFrame=function(t){if(this.frame=t,this.width=t.width,this.height=t.height,t.x+t.width>this.baseTexture.width||t.y+t.height>this.baseTexture.height)throw Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);this.updateFrame=!0,PIXI.Texture.frameUpdates.push(this)},PIXI.Texture.fromImage=function(t,e){var i=PIXI.TextureCache[t];return i||(i=new PIXI.Texture(PIXI.BaseTexture.fromImage(t,e)),PIXI.TextureCache[t]=i),i},PIXI.Texture.fromFrame=function(t){var e=PIXI.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache "+this);return e},PIXI.Texture.fromCanvas=function(t){var e=new PIXI.BaseTexture(t);return new PIXI.Texture(e)},PIXI.Texture.addTextureToCache=function(t,e){PIXI.TextureCache[e]=t},PIXI.Texture.removeTextureFromCache=function(t){var e=PIXI.TextureCache[t];return PIXI.TextureCache[t]=null,e},PIXI.Texture.frameUpdates=[],PIXI.RenderTexture=function(t,e){PIXI.EventTarget.call(this),this.width=t||100,this.height=e||100,this.indetityMatrix=PIXI.mat3.create(),this.frame=new PIXI.Rectangle(0,0,this.width,this.height),PIXI.gl?this.initWebGL():this.initCanvas()},PIXI.RenderTexture.constructor=PIXI.RenderTexture,PIXI.RenderTexture.prototype=Object.create(PIXI.Texture.prototype),PIXI.RenderTexture.prototype.initWebGL=function(){var t=PIXI.gl;this.glFramebuffer=t.createFramebuffer(),t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),this.glFramebuffer.width=this.width,this.glFramebuffer.height=this.height,this.baseTexture=new PIXI.BaseTexture,this.baseTexture.width=this.width,this.baseTexture.height=this.height,this.baseTexture._glTexture=t.createTexture(),t.bindTexture(t.TEXTURE_2D,this.baseTexture._glTexture),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,this.width,this.height,0,t.RGBA,t.UNSIGNED_BYTE,null),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),this.baseTexture.isRender=!0,t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,this.baseTexture._glTexture,0),this.projectionMatrix=PIXI.mat4.create(),this.projectionMatrix[5]=2/this.height,this.projectionMatrix[13]=-1,this.projectionMatrix[0]=2/this.width,this.projectionMatrix[12]=-1,this.render=this.renderWebGL},PIXI.RenderTexture.prototype.initCanvas=function(){this.renderer=new PIXI.CanvasRenderer(this.width,this.height,null,0),this.baseTexture=new PIXI.BaseTexture(this.renderer.view),this.frame=new PIXI.Rectangle(0,0,this.width,this.height),this.render=this.renderCanvas},PIXI.RenderTexture.prototype.renderWebGL=function(t,e){var i=PIXI.gl;i.colorMask(!0,!0,!0,!0),i.viewport(0,0,this.width,this.height),i.bindFramebuffer(i.FRAMEBUFFER,this.glFramebuffer),e&&(i.clearColor(0,0,0,0),i.clear(i.COLOR_BUFFER_BIT));var r=t.children;t.worldTransform=PIXI.mat3.create();for(var s=0,n=r.length;n>s;s++)r[s].updateTransform();var a=t.__renderGroup;a?t==a.root?a.render(this.projectionMatrix):a.renderSpecific(t,this.projectionMatrix):(this.renderGroup||(this.renderGroup=new PIXI.WebGLRenderGroup(i)),this.renderGroup.setRenderable(t),this.renderGroup.render(this.projectionMatrix))},PIXI.RenderTexture.prototype.renderCanvas=function(t,e){var i=t.children;t.worldTransform=PIXI.mat3.create();for(var r=0,s=i.length;s>r;r++)i[r].updateTransform();e&&this.renderer.context.clearRect(0,0,this.width,this.height),this.renderer.renderDisplayObject(t),PIXI.texturesToUpdate.push(this.baseTexture)},PIXI.AssetLoader=function(t){PIXI.EventTarget.call(this),this.assetURLs=t,this.crossorigin=!1,this.loadersByType={jpg:PIXI.ImageLoader,jpeg:PIXI.ImageLoader,png:PIXI.ImageLoader,gif:PIXI.ImageLoader,json:PIXI.SpriteSheetLoader,xml:PIXI.BitmapFontLoader,fnt:PIXI.BitmapFontLoader}},PIXI.AssetLoader.constructor=PIXI.AssetLoader,PIXI.AssetLoader.prototype.load=function(){var t=this;this.loadCount=this.assetURLs.length;for(var e=0;this.assetURLs.length>e;e++){var i=this.assetURLs[e],r=i.split(".").pop().toLowerCase(),s=this.loadersByType[r];if(!s)throw Error(r+" is an unsupported file type");var n=new s(i,this.crossorigin);n.addEventListener("loaded",function(){t.onAssetLoaded()}),n.load()}},PIXI.AssetLoader.prototype.onAssetLoaded=function(){this.loadCount--,this.dispatchEvent({type:"onProgress",content:this}),this.onProgress&&this.onProgress(),0==this.loadCount&&(this.dispatchEvent({type:"onComplete",content:this}),this.onComplete&&this.onComplete())},PIXI.SpriteSheetLoader=function(t,e){PIXI.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.frames={},this.crossorigin=e},PIXI.SpriteSheetLoader.constructor=PIXI.SpriteSheetLoader,PIXI.SpriteSheetLoader.prototype.load=function(){this.ajaxRequest=new AjaxRequest;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onJSONLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/json"),this.ajaxRequest.send(null)},PIXI.SpriteSheetLoader.prototype.onJSONLoaded=function(){if(4==this.ajaxRequest.readyState&&(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))){var jsonData=eval("("+this.ajaxRequest.responseText+")"),textureUrl=this.baseUrl+jsonData.meta.image,image=new PIXI.ImageLoader(textureUrl,this.crossorigin);this.texture=image.texture.baseTexture;var scope=this;image.addEventListener("loaded",function(){scope.onLoaded()});var frameData=jsonData.frames;for(var i in frameData){var rect=frameData[i].frame;rect&&(PIXI.TextureCache[i]=new PIXI.Texture(this.texture,{x:rect.x,y:rect.y,width:rect.w,height:rect.h}),frameData[i].trimmed&&(PIXI.TextureCache[i].realSize=frameData[i].spriteSourceSize,PIXI.TextureCache[i].trim.x=0))}image.load()}},PIXI.SpriteSheetLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},PIXI.ImageLoader=function(t,e){PIXI.EventTarget.call(this),this.texture=PIXI.Texture.fromImage(t,e)},PIXI.ImageLoader.constructor=PIXI.ImageLoader,PIXI.ImageLoader.prototype.load=function(){if(this.texture.baseTexture.hasLoaded)this.onLoaded();else{var t=this;this.texture.baseTexture.addEventListener("loaded",function(){t.onLoaded()})}},PIXI.ImageLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},PIXI.BitmapFontLoader=function(t,e){PIXI.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.crossorigin=e},PIXI.BitmapFontLoader.constructor=PIXI.BitmapFontLoader,PIXI.BitmapFontLoader.prototype.load=function(){this.ajaxRequest=new XMLHttpRequest;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onXMLLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/xml"),this.ajaxRequest.send(null)},PIXI.BitmapFontLoader.prototype.onXMLLoaded=function(){if(4==this.ajaxRequest.readyState&&(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))){var t=this.baseUrl+this.ajaxRequest.responseXML.getElementsByTagName("page")[0].attributes.getNamedItem("file").nodeValue,e=new PIXI.ImageLoader(t,this.crossorigin);this.texture=e.texture.baseTexture;var i={},r=this.ajaxRequest.responseXML.getElementsByTagName("info")[0],s=this.ajaxRequest.responseXML.getElementsByTagName("common")[0];i.font=r.attributes.getNamedItem("face").nodeValue,i.size=parseInt(r.attributes.getNamedItem("size").nodeValue,10),i.lineHeight=parseInt(s.attributes.getNamedItem("lineHeight").nodeValue,10),i.chars={};for(var n=this.ajaxRequest.responseXML.getElementsByTagName("char"),a=0;n.length>a;a++){var o=parseInt(n[a].attributes.getNamedItem("id").nodeValue,10),h={x:parseInt(n[a].attributes.getNamedItem("x").nodeValue,10),y:parseInt(n[a].attributes.getNamedItem("y").nodeValue,10),width:parseInt(n[a].attributes.getNamedItem("width").nodeValue,10),height:parseInt(n[a].attributes.getNamedItem("height").nodeValue,10)};PIXI.TextureCache[o]=new PIXI.Texture(this.texture,h),i.chars[o]={xOffset:parseInt(n[a].attributes.getNamedItem("xoffset").nodeValue,10),yOffset:parseInt(n[a].attributes.getNamedItem("yoffset").nodeValue,10),xAdvance:parseInt(n[a].attributes.getNamedItem("xadvance").nodeValue,10),kerning:{}}}var u=this.ajaxRequest.responseXML.getElementsByTagName("kerning");for(a=0;u.length>a;a++){var d=parseInt(u[a].attributes.getNamedItem("first").nodeValue,10),c=parseInt(u[a].attributes.getNamedItem("second").nodeValue,10),l=parseInt(u[a].attributes.getNamedItem("amount").nodeValue,10);i.chars[c].kerning[d]=l}PIXI.BitmapText.fonts[i.font]=i;var I=this;e.addEventListener("loaded",function(){I.onLoaded()}),e.load()}},PIXI.BitmapFontLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=PIXI),exports.PIXI=PIXI):root.PIXI=PIXI}).call(this); \ No newline at end of file diff --git a/docs/classes/WebGLRenderer.html b/docs/classes/WebGLRenderer.html index 581cb5a..fcef6b6 100644 --- a/docs/classes/WebGLRenderer.html +++ b/docs/classes/WebGLRenderer.html @@ -498,7 +498,7 @@ - src/pixi/renderers/WebGLRenderer.js:283 + src/pixi/renderers/WebGLRenderer.js:284

diff --git a/bin/pixi.dev.js b/bin/pixi.dev.js index f29080a..3478cf4 100644 --- a/bin/pixi.dev.js +++ b/bin/pixi.dev.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/bin/pixi.js b/bin/pixi.js index 5f2a13c..a6d54d1 100644 --- a/bin/pixi.js +++ b/bin/pixi.js @@ -4,10 +4,10 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php */ -(function(){function HEXtoRGB(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}function determineMatrixArrayType(){return PIXI.Matrix="undefined"!=typeof Float32Array?Float32Array:Array,PIXI.Matrix}var root=this,PIXI=PIXI||{};PIXI.Point=function(t,e){this.x=t||0,this.y=e||0},PIXI.Point.prototype.clone=function(){return new PIXI.Point(this.x,this.y)},PIXI.Point.constructor=PIXI.Point,PIXI.Rectangle=function(t,e,i,r){this.x=t||0,this.y=e||0,this.width=i||0,this.height=r||0},PIXI.Rectangle.prototype.clone=function(){return new PIXI.Rectangle(this.x,this.y,this.width,this.height)},PIXI.Rectangle.constructor=PIXI.Rectangle,PIXI.DisplayObject=function(){this.position=new PIXI.Point,this.scale=new PIXI.Point(1,1),this.pivot=new PIXI.Point(0,0),this.rotation=0,this.alpha=1,this.visible=!0,this.worldVisible=!1,this.parent=null,this.stage=null,this.hitArea=null,this.worldAlpha=1,this.color=[],this.worldTransform=PIXI.mat3.create(),this.localTransform=PIXI.mat3.create(),this.dynamic=!0,this._sr=0,this._cr=1,this.childIndex=0,this.renderable=!1,this.interactive=!1,this.buttonMode=!1},PIXI.DisplayObject.constructor=PIXI.DisplayObject,PIXI.DisplayObject.prototype.setInteractive=function(t){this.interactive=t,this.stage&&(this.stage.dirty=!0)},PIXI.DisplayObject.prototype.updateTransform=function(){this.rotation!=this.rotationCache&&(this.rotationCache=this.rotation,this._sr=Math.sin(this.rotation),this._cr=Math.cos(this.rotation));var t=this.localTransform,e=this.parent.worldTransform,i=this.worldTransform;t[0]=this._cr*this.scale.x,t[1]=-this._sr*this.scale.y,t[3]=this._sr*this.scale.x,t[4]=this._cr*this.scale.y;var r=this.pivot.x,s=this.pivot.y;t[2]=this.position.x-t[0]*r-s*t[1],t[5]=this.position.y-t[4]*s-r*t[3];var n=t[0],a=t[1],o=t[2],h=t[3],u=t[4],c=t[5],d=e[0],l=e[1],I=e[2],p=e[3],f=e[4],x=e[5];i[0]=d*n+l*h,i[1]=d*a+l*u,i[2]=d*o+l*c+I,i[3]=p*n+f*h,i[4]=p*a+f*u,i[5]=p*o+f*c+x,this.worldAlpha=this.alpha*this.parent.worldAlpha},PIXI.DisplayObjectContainer=function(){PIXI.DisplayObject.call(this),this.children=[],this.renderable=!1},PIXI.DisplayObjectContainer.constructor=PIXI.DisplayObjectContainer,PIXI.DisplayObjectContainer.prototype=Object.create(PIXI.DisplayObject.prototype),PIXI.DisplayObjectContainer.prototype.addChild=function(t){void 0!=t.parent&&t.parent.removeChild(t),t.parent=this,t.childIndex=this.children.length,this.children.push(t),this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},PIXI.DisplayObjectContainer.prototype.addChildAt=function(t,e){if(!(e>=0&&this.children.length>=e))throw Error(t+" The index "+e+" supplied is out of bounds "+this.children.length);void 0!=t.parent&&t.parent.removeChild(t),e==this.children.length?this.children.push(t):this.children.splice(e,0,t),t.parent=this,t.childIndex=e;for(var i=this.children.length,r=e;i>r;r++)this.children[r].childIndex=r;this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},PIXI.DisplayObjectContainer.prototype.swapChildren=function(t,e){var i=this.children.indexOf(t),r=this.children.indexOf(e);if(-1===i||-1===r)throw Error(t+" Both the supplied DisplayObjects must be a child of the caller "+this);this.stage&&(this.stage.__removeChild(t),this.stage.__removeChild(e),this.stage.__addChild(t),this.stage.__addChild(e)),t.childIndex=r,e.childIndex=i,this.children[i]=e,this.children[r]=t},PIXI.DisplayObjectContainer.prototype.getChildAt=function(t){if(t>=0&&this.children.length>t)return this.children[t];throw Error(child+" Both the supplied DisplayObjects must be a child of the caller "+this)},PIXI.DisplayObjectContainer.prototype.removeChild=function(t){var e=this.children.indexOf(t);if(-1===e)throw Error(t+" The supplied DisplayObject must be a child of the caller "+this);this.stage&&this.stage.__removeChild(t),t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.parent=void 0,this.children.splice(e,1);for(var i=e,r=this.children.length;r>i;i++)this.children[i].childIndex-=1},PIXI.DisplayObjectContainer.prototype.updateTransform=function(){if(this.visible){PIXI.DisplayObject.prototype.updateTransform.call(this);for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform()}},PIXI.blendModes={},PIXI.blendModes.NORMAL=0,PIXI.blendModes.SCREEN=1,PIXI.Sprite=function(t){PIXI.DisplayObjectContainer.call(this),this.anchor=new PIXI.Point,this.texture=t,this.blendMode=PIXI.blendModes.NORMAL,this._width=0,this._height=0,t.baseTexture.hasLoaded?this.updateFrame=!0:(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},PIXI.Sprite.constructor=PIXI.Sprite,PIXI.Sprite.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),Object.defineProperty(PIXI.Sprite.prototype,"width",{get:function(){return this.scale.x*this.texture.frame.width},set:function(t){this.scale.x=t/this.texture.frame.width,this._width=t}}),Object.defineProperty(PIXI.Sprite.prototype,"height",{get:function(){return this.scale.y*this.texture.frame.height},set:function(t){this.scale.y=t/this.texture.frame.height,this._height=t}}),PIXI.Sprite.prototype.setTexture=function(t){this.texture.baseTexture!=t.baseTexture&&(this.textureChange=!0),this.texture=t,this.updateFrame=!0},PIXI.Sprite.prototype.onTextureUpdate=function(){this._width&&(this.scale.x=this._width/this.texture.frame.width),this._height&&(this.scale.y=this._height/this.texture.frame.height),this.updateFrame=!0},PIXI.Sprite.fromFrame=function(t){var e=PIXI.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache"+this);return new PIXI.Sprite(e)},PIXI.Sprite.fromImage=function(t){var e=PIXI.Texture.fromImage(t);return new PIXI.Sprite(e)},PIXI.MovieClip=function(t){PIXI.Sprite.call(this,t[0]),this.textures=t,this.currentFrame=0,this.animationSpeed=1,this.loop=!0,this.onComplete=null,this.playing},PIXI.MovieClip.constructor=PIXI.MovieClip,PIXI.MovieClip.prototype=Object.create(PIXI.Sprite.prototype),PIXI.MovieClip.prototype.stop=function(){this.playing=!1},PIXI.MovieClip.prototype.play=function(){this.playing=!0},PIXI.MovieClip.prototype.gotoAndStop=function(t){this.playing=!1,this.currentFrame=t;var e=0|this.currentFrame+.5;this.setTexture(this.textures[e%this.textures.length])},PIXI.MovieClip.prototype.gotoAndPlay=function(t){this.currentFrame=t,this.playing=!0},PIXI.MovieClip.prototype.updateTransform=function(){if(PIXI.Sprite.prototype.updateTransform.call(this),this.playing){this.currentFrame+=this.animationSpeed;var t=0|this.currentFrame+.5;this.loop||this.textures.length>t?this.setTexture(this.textures[t%this.textures.length]):t>=this.textures.length&&(this.gotoAndStop(this.textures.length-1),this.onComplete&&this.onComplete())}},PIXI.Text=function(t,e){this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"),PIXI.Sprite.call(this,PIXI.Texture.fromCanvas(this.canvas)),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},PIXI.Text.constructor=PIXI.Text,PIXI.Text.prototype=Object.create(PIXI.Sprite.prototype),PIXI.Text.prototype.setStyle=function(t){t=t||{},t.font=t.font||"bold 20pt Arial",t.fill=t.fill||"black",t.align=t.align||"left",t.strokeThickness=t.strokeThickness||0,this.style=t,this.dirty=!0},PIXI.Sprite.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},PIXI.Text.prototype.updateText=function(){this.context.font=this.style.font;for(var t=this.text.split(/(?:\r\n|\r|\n)/),e=[],i=0,r=0;t.length>r;r++){var s=this.context.measureText(t[r]).width;e[r]=s,i=Math.max(i,s)}this.canvas.width=i+this.style.strokeThickness;var n=this.determineFontHeight("font: "+this.style.font+";")+this.style.strokeThickness;for(this.canvas.height=n*t.length,this.context.fillStyle=this.style.fill,this.context.font=this.style.font,this.context.strokeStyle=this.style.stroke,this.context.lineWidth=this.style.strokeThickness,this.context.textBaseline="top",r=0;t.length>r;r++){var a=new PIXI.Point(this.style.strokeThickness/2,this.style.strokeThickness/2+r*n);"right"==this.style.align?a.x+=i-e[r]:"center"==this.style.align&&(a.x+=(i-e[r])/2),this.style.stroke&&this.style.strokeThickness&&this.context.strokeText(t[r],a.x,a.y),this.style.fill&&this.context.fillText(t[r],a.x,a.y)}this.updateTexture()},PIXI.Text.prototype.updateTexture=function(){this.texture.baseTexture.width=this.canvas.width,this.texture.baseTexture.height=this.canvas.height,this.texture.frame.width=this.canvas.width,this.texture.frame.height=this.canvas.height,this._width=this.canvas.width,this._height=this.canvas.height,PIXI.texturesToUpdate.push(this.texture.baseTexture)},PIXI.Text.prototype.updateTransform=function(){this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype.updateTransform.call(this)},PIXI.Text.prototype.determineFontHeight=function(t){var e=PIXI.Text.heightCache[t];if(!e){var i=document.getElementsByTagName("body")[0],r=document.createElement("div"),s=document.createTextNode("M");r.appendChild(s),r.setAttribute("style",t),i.appendChild(r),e=r.offsetHeight,PIXI.Text.heightCache[t]=e,i.removeChild(r)}return e},PIXI.Text.prototype.destroy=function(t){t&&this.texture.destroy()},PIXI.Text.heightCache={},PIXI.BitmapText=function(t,e){PIXI.DisplayObjectContainer.call(this),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},PIXI.BitmapText.constructor=PIXI.BitmapText,PIXI.BitmapText.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.BitmapText.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},PIXI.BitmapText.prototype.setStyle=function(t){t=t||{},t.align=t.align||"left",this.style=t;var e=t.font.split(" ");this.fontName=e[e.length-1],this.fontSize=e.length>=2?parseInt(e[e.length-2],10):PIXI.BitmapText.fonts[this.fontName].size,this.dirty=!0},PIXI.BitmapText.prototype.updateText=function(){for(var t=PIXI.BitmapText.fonts[this.fontName],e=new PIXI.Point,i=null,r=[],s=0,n=[],a=0,o=this.fontSize/t.size,h=0;this.text.length>h;h++){var u=this.text.charCodeAt(h);if(/(?:\r\n|\r|\n)/.test(this.text.charAt(h)))n.push(e.x),s=Math.max(s,e.x),a++,e.x=0,e.y+=t.lineHeight,i=null;else{var c=t.chars[u];c&&(i&&c[i]&&(e.x+=c.kerning[i]),r.push({line:a,charCode:u,position:new PIXI.Point(e.x+c.xOffset,e.y+c.yOffset)}),e.x+=c.xAdvance,i=u)}}n.push(e.x),s=Math.max(s,e.x);var d=[];for(h=0;a>=h;h++){var l=0;"right"==this.style.align?l=s-n[h]:"center"==this.style.align&&(l=(s-n[h])/2),d.push(l)}for(h=0;r.length>h;h++){var I=PIXI.Sprite.fromFrame(r[h].charCode);I.position.x=(r[h].position.x+d[r[h].line])*o,I.position.y=r[h].position.y*o,I.scale.x=I.scale.y=o,this.addChild(I)}this.width=e.x*o,this.height=(e.y+t.lineHeight)*o},PIXI.BitmapText.prototype.updateTransform=function(){if(this.dirty){for(;this.children.length>0;)this.removeChild(this.getChildAt(0));this.updateText(),this.dirty=!1}PIXI.DisplayObjectContainer.prototype.updateTransform.call(this)},PIXI.BitmapText.fonts={},PIXI.InteractionManager=function(t){this.stage=t,this.tempPoint=new PIXI.Point,this.mouseoverEnabled=!0,this.mouse=new PIXI.InteractionData,this.touchs={},this.pool=[],this.interactiveItems=[],this.last=0},PIXI.InteractionManager.constructor=PIXI.InteractionManager,PIXI.InteractionManager.prototype.collectInteractiveSprite=function(t,e){for(var i=t.children,r=i.length,s=r-1;s>=0;s--){var n=i[s];n.interactive?(e.interactiveChildren=!0,this.interactiveItems.push(n),n.children.length>0&&this.collectInteractiveSprite(n,n)):(n.__iParent=null,n.children.length>0&&this.collectInteractiveSprite(n,e))}},PIXI.InteractionManager.prototype.setTarget=function(t){window.navigator.msPointerEnabled&&(t.view.style["-ms-content-zooming"]="none",t.view.style["-ms-touch-action"]="none"),this.target=t,t.view.addEventListener("mousemove",this.onMouseMove.bind(this),!0),t.view.addEventListener("mousedown",this.onMouseDown.bind(this),!0),document.body.addEventListener("mouseup",this.onMouseUp.bind(this),!0),t.view.addEventListener("mouseout",this.onMouseUp.bind(this),!0),t.view.addEventListener("touchstart",this.onTouchStart.bind(this),!0),t.view.addEventListener("touchend",this.onTouchEnd.bind(this),!0),t.view.addEventListener("touchmove",this.onTouchMove.bind(this),!0)},PIXI.InteractionManager.prototype.update=function(){if(this.target){var t=Date.now(),e=t-this.last;if(e=30*e/1e3,!(1>e)){if(this.last=t,this.dirty){this.dirty=!1,this.interactiveItems.length;for(var i=0;this.interactiveItems.length>i;i++)this.interactiveItems[i].interactiveChildren=!1;this.interactiveItems=[],this.stage.interactive&&this.interactiveItems.push(this.stage),this.collectInteractiveSprite(this.stage,this.stage)}var r=this.interactiveItems.length;this.target.view.style.cursor="default";for(var i=0;r>i;i++){var s=this.interactiveItems[i];s.visible&&(s.mouseover||s.mouseout||s.buttonMode)&&(s.__hit=this.hitTest(s,this.mouse),s.__hit?(s.buttonMode&&(this.target.view.style.cursor="pointer"),s.__isOver||(s.mouseover&&s.mouseover(this.mouse),s.__isOver=!0)):s.__isOver&&(s.mouseout&&s.mouseout(this.mouse),s.__isOver=!1))}}}},PIXI.InteractionManager.prototype.onMouseMove=function(t){t.preventDefault();var e=this.target.view.getBoundingClientRect();this.mouse.global.x=(t.clientX-e.left)*(this.target.width/e.width),this.mouse.global.y=(t.clientY-e.top)*(this.target.height/e.height);var i=this.interactiveItems.length;this.mouse.global;for(var r=0;i>r;r++){var s=this.interactiveItems[r];s.mousemove&&s.mousemove(this.mouse)}},PIXI.InteractionManager.prototype.onMouseDown=function(t){t.preventDefault();var e=this.interactiveItems.length;this.mouse.global,this.stage;for(var i=0;e>i;i++){var r=this.interactiveItems[i];if((r.mousedown||r.click)&&(r.__mouseIsDown=!0,r.__hit=this.hitTest(r,this.mouse),r.__hit&&(r.mousedown&&r.mousedown(this.mouse),r.__isDown=!0,!r.interactiveChildren)))break}},PIXI.InteractionManager.prototype.onMouseUp=function(t){t.preventDefault(),this.mouse.global;for(var e=this.interactiveItems.length,i=!1,r=0;e>r;r++){var s=this.interactiveItems[r];(s.mouseup||s.mouseupoutside||s.click)&&(s.__hit=this.hitTest(s,this.mouse),s.__hit&&!i?(s.mouseup&&s.mouseup(this.mouse),s.__isDown&&s.click&&s.click(this.mouse),s.interactiveChildren||(i=!0)):s.__isDown&&s.mouseupoutside&&s.mouseupoutside(this.mouse),s.__isDown=!1)}},PIXI.InteractionManager.prototype.hitTest=function(t,e){var i=e.global;if(!t.visible)return!1;if(t instanceof PIXI.Sprite){var r=t.worldTransform,s=r[0],n=r[1],a=r[2],o=r[3],h=r[4],u=r[5],c=1/(s*h+n*-o),d=h*c*i.x+-n*c*i.y+(u*n-a*h)*c,l=s*c*i.y+-o*c*i.x+(-u*s+a*o)*c,I=t.texture.frame.width,p=t.texture.frame.height,f=-I*t.anchor.x;if(d>f&&f+I>d){var x=-p*t.anchor.y;if(l>x&&x+p>l)return e.target=t,!0}}else if(t.hitArea){var r=t.worldTransform,v=t.hitArea,s=r[0],n=r[1],a=r[2],o=r[3],h=r[4],u=r[5],c=1/(s*h+n*-o),d=h*c*i.x+-n*c*i.y+(u*n-a*h)*c,l=s*c*i.y+-o*c*i.x+(-u*s+a*o)*c,f=v.x;if(d>f&&f+v.width>d){var x=v.y;if(l>x&&x+v.height>l)return!0}}for(var P=t.children.length,g=0;P>g;g++){var b=t.children[g],X=this.hitTest(b,e);if(X)return!0}return!1},PIXI.InteractionManager.prototype.onTouchMove=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.touchs[s.identifier];n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height)}for(var a=this.interactiveItems.length,r=0;a>r;r++){var o=this.interactiveItems[r];o.touchmove&&o.touchmove(n)}},PIXI.InteractionManager.prototype.onTouchStart=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.pool.pop();n||(n=new PIXI.InteractionData),this.touchs[s.identifier]=n,n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height);for(var a=this.interactiveItems.length,o=0;a>o;o++){var h=this.interactiveItems[o];if((h.touchstart||h.tap)&&(h.__hit=this.hitTest(h,n),h.__hit&&(h.touchstart&&h.touchstart(n),h.__isDown=!0,h.__touchData=n,!h.interactiveChildren)))break}}},PIXI.InteractionManager.prototype.onTouchEnd=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.touchs[s.identifier],a=!1;n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var u=this.interactiveItems[h],c=u.__touchData;u.__hit=this.hitTest(u,n),c==n&&((u.touchend||u.tap)&&(u.__hit&&!a?(u.touchend&&u.touchend(n),u.__isDown&&u.tap&&u.tap(n),u.interactiveChildren||(a=!0)):u.__isDown&&u.touchendoutside&&u.touchendoutside(n),u.__isDown=!1),u.__touchData=null)}this.pool.push(n),this.touchs[s.identifier]=null}},PIXI.InteractionData=function(){this.global=new PIXI.Point,this.local=new PIXI.Point,this.target},PIXI.InteractionData.prototype.getLocalPosition=function(t){var e=t.worldTransform,i=this.global,r=e[0],s=e[1],n=e[2],a=e[3],o=e[4],h=e[5],u=1/(r*o+s*-a);return new PIXI.Point(o*u*i.x+-s*u*i.y+(h*s-n*o)*u,r*u*i.y+-a*u*i.x+(-h*r+n*a)*u)},PIXI.InteractionData.constructor=PIXI.InteractionData,PIXI.Stage=function(t,e){PIXI.DisplayObjectContainer.call(this),this.worldTransform=PIXI.mat3.create(),this.__childrenAdded=[],this.__childrenRemoved=[],this.childIndex=0,this.stage=this,this.stage.hitArea=new PIXI.Rectangle(0,0,1e5,1e5),this.interactive=!!e,this.interactionManager=new PIXI.InteractionManager(this),this.setBackgroundColor(t),this.worldVisible=!0},PIXI.Stage.constructor=PIXI.Stage,PIXI.Stage.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Stage.prototype.updateTransform=function(){this.worldAlpha=1;for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform();this.dirty&&(this.dirty=!1,this.interactionManager.dirty=!0),this.interactive&&this.interactionManager.update()},PIXI.Stage.prototype.setBackgroundColor=function(t){this.backgroundColor=t||0,this.backgroundColorSplit=HEXtoRGB(this.backgroundColor),this.backgroundColorString="#"+this.backgroundColor.toString(16)},PIXI.Stage.prototype.getMousePosition=function(){return this.interactionManager.mouse.global},PIXI.Stage.prototype.__addChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=this,t.children)for(var e=0;t.children.length>e;e++)this.__addChild(t.children[e])},PIXI.Stage.prototype.__removeChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=void 0,t.children)for(var e=0,i=t.children.length;i>e;e++)this.__removeChild(t.children[e])},window.requestAnimFrame=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(t){window.setTimeout(t,1e3/60)}}(),"function"!=typeof Function.prototype.bind&&(Function.prototype.bind=function(){var t=Array.prototype.slice;return function(e){function i(){var n=s.concat(t.call(arguments));r.apply(this instanceof i?this:e,n)}var r=this,s=t.call(arguments,1);if("function"!=typeof r)throw new TypeError;return i.prototype=function n(t){return t&&(n.prototype=t),this instanceof n?void 0:new n}(r.prototype),i}}());var AjaxRequest=function(){var t=["Msxml2.XMLHTTP","Microsoft.XMLHTTP"];if(!window.ActiveXObject)return window.XMLHttpRequest?new XMLHttpRequest:!1;for(var e=0;t.length>e;e++)try{return new ActiveXObject(t[e])}catch(i){}};PIXI.EventTarget=function(){var t={};this.addEventListener=this.on=function(e,i){void 0===t[e]&&(t[e]=[]),-1===t[e].indexOf(i)&&t[e].push(i)},this.dispatchEvent=this.emit=function(e){for(var i in t[e.type])t[e.type][i](e)},this.removeEventListener=this.off=function(e,i){var r=t[e].indexOf(i);-1!==r&&t[e].splice(r,1)}},determineMatrixArrayType(),PIXI.mat3={},PIXI.mat3.create=function(){var t=new PIXI.Matrix(9);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},PIXI.mat4={},PIXI.mat4.create=function(){var t=new PIXI.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},PIXI.mat3.multiply=function(t,e,i){i||(i=t);var r=t[0],s=t[1],n=t[2],a=t[3],o=t[4],h=t[5],u=t[6],c=t[7],d=t[8],l=e[0],I=e[1],p=e[2],f=e[3],x=e[4],v=e[5],P=e[6],g=e[7],b=e[8];return i[0]=l*r+I*a+p*u,i[1]=l*s+I*o+p*c,i[2]=l*n+I*h+p*d,i[3]=f*r+x*a+v*u,i[4]=f*s+x*o+v*c,i[5]=f*n+x*h+v*d,i[6]=P*r+g*a+b*u,i[7]=P*s+g*o+b*c,i[8]=P*n+g*h+b*d,i},PIXI.mat3.toMat4=function(t,e){return e||(e=PIXI.mat4.create()),e[15]=1,e[14]=0,e[13]=0,e[12]=0,e[11]=0,e[10]=t[8],e[9]=t[7],e[8]=t[6],e[7]=0,e[6]=t[5],e[5]=t[4],e[4]=t[3],e[3]=0,e[2]=t[2],e[1]=t[1],e[0]=t[0],e},PIXI.mat4.create=function(){var t=new PIXI.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},PIXI.mat4.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],s=t[3],n=t[6],a=t[7],o=t[11];return t[1]=t[4],t[2]=t[8],t[3]=t[12],t[4]=i,t[6]=t[9],t[7]=t[13],t[8]=r,t[9]=n,t[11]=t[14],t[12]=s,t[13]=a,t[14]=o,t}return e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=t[1],e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=t[2],e[9]=t[6],e[10]=t[10],e[11]=t[14],e[12]=t[3],e[13]=t[7],e[14]=t[11],e[15]=t[15],e},PIXI.mat4.multiply=function(t,e,i){i||(i=t);var r=t[0],s=t[1],n=t[2],a=t[3],o=t[4],h=t[5],u=t[6],c=t[7],d=t[8],l=t[9],I=t[10],p=t[11],f=t[12],x=t[13],v=t[14],P=t[15],g=e[0],b=e[1],X=e[2],m=e[3];return i[0]=g*r+b*o+X*d+m*f,i[1]=g*s+b*h+X*l+m*x,i[2]=g*n+b*u+X*I+m*v,i[3]=g*a+b*c+X*p+m*P,g=e[4],b=e[5],X=e[6],m=e[7],i[4]=g*r+b*o+X*d+m*f,i[5]=g*s+b*h+X*l+m*x,i[6]=g*n+b*u+X*I+m*v,i[7]=g*a+b*c+X*p+m*P,g=e[8],b=e[9],X=e[10],m=e[11],i[8]=g*r+b*o+X*d+m*f,i[9]=g*s+b*h+X*l+m*x,i[10]=g*n+b*u+X*I+m*v,i[11]=g*a+b*c+X*p+m*P,g=e[12],b=e[13],X=e[14],m=e[15],i[12]=g*r+b*o+X*d+m*f,i[13]=g*s+b*h+X*l+m*x,i[14]=g*n+b*u+X*I+m*v,i[15]=g*a+b*c+X*p+m*P,i},PIXI.autoDetectRenderer=function(t,e,i,r){t||(t=800),e||(e=600);var s=function(){try{return!!window.WebGLRenderingContext&&!!document.createElement("canvas").getContext("experimental-webgl")}catch(t){return!1}}();return s?new PIXI.WebGLRenderer(t,e,i,r):new PIXI.CanvasRenderer(t,e,i,r)},PIXI.shaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * vColor;","}"],PIXI.shaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform mat4 uMVMatrix;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","gl_Position = uMVMatrix * vec4(aVertexPosition, 1.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],PIXI.CompileVertexShader=function(t,e){return PIXI._CompileShader(t,e,t.VERTEX_SHADER)},PIXI.CompileFragmentShader=function(t,e){return PIXI._CompileShader(t,e,t.FRAGMENT_SHADER)},PIXI._CompileShader=function(t,e,i){var r=e.join("\n"),s=t.createShader(i);return t.shaderSource(s,r),t.compileShader(s),t.getShaderParameter(s,t.COMPILE_STATUS)?s:(alert(t.getShaderInfoLog(s)),null)},PIXI._defaultFrame=new PIXI.Rectangle(0,0,1,1),PIXI.gl,PIXI.WebGLRenderer=function(t,e,i,r){this.transparent=!!r,this.width=t||800,this.height=e||600,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height;var s=this;this.view.addEventListener("webglcontextlost",function(t){s.handleContextLost(t)},!1),this.view.addEventListener("webglcontextrestored",function(t){s.handleContextRestored(t)},!1),this.batchs=[];try{PIXI.gl=this.gl=this.view.getContext("experimental-webgl",{alpha:this.transparent,antialias:!1,premultipliedAlpha:!0})}catch(n){throw Error(" This browser does not support webGL. Try using the canvas renderer"+this)}this.initShaders();var a=this.gl;PIXI.WebGLRenderer.gl=a,this.batch=new PIXI.WebGLBatch(a),a.disable(a.DEPTH_TEST),a.disable(a.CULL_FACE),a.enable(a.BLEND),a.colorMask(!0,!0,!0,this.transparent),this.projectionMatrix=PIXI.mat4.create(),this.resize(this.width,this.height),this.contextLost=!1,this.stageRenderGroup=new PIXI.WebGLRenderGroup(this.gl)},PIXI.WebGLRenderer.constructor=PIXI.WebGLRenderer,PIXI.WebGLRenderer.getBatch=function(){return 0==PIXI._batchs.length?new PIXI.WebGLBatch(PIXI.WebGLRenderer.gl):PIXI._batchs.pop()},PIXI.WebGLRenderer.returnBatch=function(t){t.clean(),PIXI._batchs.push(t)},PIXI.WebGLRenderer.prototype.initShaders=function(){var t=this.gl,e=PIXI.CompileFragmentShader(t,PIXI.shaderFragmentSrc),i=PIXI.CompileVertexShader(t,PIXI.shaderVertexSrc);PIXI.shaderProgram=t.createProgram();var r=PIXI.shaderProgram;t.attachShader(r,i),t.attachShader(r,e),t.linkProgram(r),t.getProgramParameter(r,t.LINK_STATUS)||alert("Could not initialise shaders"),t.useProgram(r),r.vertexPositionAttribute=t.getAttribLocation(r,"aVertexPosition"),t.enableVertexAttribArray(r.vertexPositionAttribute),r.textureCoordAttribute=t.getAttribLocation(r,"aTextureCoord"),t.enableVertexAttribArray(r.textureCoordAttribute),r.colorAttribute=t.getAttribLocation(r,"aColor"),t.enableVertexAttribArray(r.colorAttribute),r.mvMatrixUniform=t.getUniformLocation(r,"uMVMatrix"),r.samplerUniform=t.getUniformLocation(r,"uSampler")},PIXI.WebGLRenderer.prototype.render=function(t){if(!this.contextLost){this.__stage!==t&&(this.__stage=t,this.stageRenderGroup.setRenderable(t));for(var e=0;PIXI.texturesToUpdate.length>e;e++)this.updateTexture(PIXI.texturesToUpdate[e]);for(var e=0;PIXI.texturesToDestroy.length>e;e++)this.destroyTexture(PIXI.texturesToDestroy[e]);PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[],t.updateTransform();var i=this.gl;if(i.colorMask(!0,!0,!0,this.transparent),i.viewport(0,0,this.width,this.height),i.bindFramebuffer(i.FRAMEBUFFER,null),i.clearColor(t.backgroundColorSplit[0],t.backgroundColorSplit[1],t.backgroundColorSplit[2],this.transparent),i.clear(i.COLOR_BUFFER_BIT),this.stageRenderGroup.backgroundColor=t.backgroundColorSplit,this.stageRenderGroup.render(this.projectionMatrix),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),PIXI.Texture.frameUpdates.length>0){for(var e=0;PIXI.Texture.frameUpdates.length>e;e++)PIXI.Texture.frameUpdates[e].updateFrame=!1;PIXI.Texture.frameUpdates=[]}}},PIXI.WebGLRenderer.prototype.updateTexture=function(t){var e=this.gl;t._glTexture||(t._glTexture=e.createTexture()),t.hasLoaded&&(e.bindTexture(e.TEXTURE_2D,t._glTexture),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t.source),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),t._powerOf2?(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT)):(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)),e.bindTexture(e.TEXTURE_2D,null)),this.refreshBatchs=!0},PIXI.WebGLRenderer.prototype.destroyTexture=function(t){var e=this.gl;t._glTexture&&(t._glTexture=e.createTexture(),e.deleteTexture(e.TEXTURE_2D,t._glTexture))},PIXI.WebGLRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e,this.gl.viewport(0,0,this.width,this.height);var i=this.projectionMatrix;i[0]=2/this.width,i[5]=-2/this.height,i[12]=-1,i[13]=1},PIXI.WebGLRenderer.prototype.handleContextLost=function(t){t.preventDefault(),this.contextLost=!0},PIXI.WebGLRenderer.prototype.handleContextRestored=function(){this.gl=this.view.getContext("experimental-webgl",{alpha:!0}),this.initShaders();for(var t=0;PIXI.TextureCache.length>t;t++)this.updateTexture(PIXI.TextureCache[t]);for(var t=0;this.batchs.length>t;t++)this.batchs[t].restoreLostContext(this.gl),this.batchs[t].dirty=!0;PIXI._restoreBatchs(this.gl),this.contextLost=!1},PIXI._batchs=[],PIXI._getBatch=function(t){return 0==PIXI._batchs.length?new PIXI.WebGLBatch(t):PIXI._batchs.pop()},PIXI._returnBatch=function(t){t.clean(),PIXI._batchs.push(t)},PIXI._restoreBatchs=function(t){for(var e=0;PIXI._batchs.length>e;e++)PIXI._batchs[e].restoreLostContext(t)},PIXI.WebGLBatch=function(t){this.gl=t,this.size=0,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer(),this.blendMode=PIXI.blendModes.NORMAL,this.dynamicSize=1},PIXI.WebGLBatch.constructor=PIXI.WebGLBatch,PIXI.WebGLBatch.prototype.clean=function(){this.verticies=[],this.uvs=[],this.indices=[],this.colors=[],this.dynamicSize=1,this.texture=null,this.last=null,this.size=0,this.head,this.tail},PIXI.WebGLBatch.prototype.restoreLostContext=function(t){this.gl=t,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer()},PIXI.WebGLBatch.prototype.init=function(t){t.batch=this,this.dirty=!0,this.blendMode=t.blendMode,this.texture=t.texture.baseTexture,this.head=t,this.tail=t,this.size=1,this.growBatch()},PIXI.WebGLBatch.prototype.insertBefore=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__prev;e.__prev=t,t.__next=e,i?(t.__prev=i,i.__next=t):this.head=t},PIXI.WebGLBatch.prototype.insertAfter=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__next;e.__next=t,t.__prev=e,i?(t.__next=i,i.__prev=t):this.tail=t},PIXI.WebGLBatch.prototype.remove=function(t){return this.size--,0==this.size?(t.batch=null,t.__prev=null,t.__next=null,void 0):(t.__prev?t.__prev.__next=t.__next:(this.head=t.__next,this.head.__prev=null),t.__next?t.__next.__prev=t.__prev:(this.tail=t.__prev,this.tail.__next=null),t.batch=null,t.__next=null,t.__prev=null,this.dirty=!0,void 0)},PIXI.WebGLBatch.prototype.split=function(t){this.dirty=!0;var e=new PIXI.WebGLBatch(this.gl);e.init(t),e.tail=this.tail,this.tail=t.__prev,this.tail.__next=null,t.__prev=null;for(var i=0;t;)i++,t.batch=e,t=t.__next;return e.size=i,this.size-=i,e},PIXI.WebGLBatch.prototype.merge=function(t){this.dirty=!0,this.tail.__next=t.head,t.head.__prev=this.tail,this.size+=t.size,this.tail=t.tail;for(var e=t.head;e;)e.batch=this,e=e.__next},PIXI.WebGLBatch.prototype.growBatch=function(){var t=this.gl;this.dynamicSize=1==this.size?1:1.5*this.size,this.verticies=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.vertexBuffer),t.bufferData(t.ARRAY_BUFFER,this.verticies,t.DYNAMIC_DRAW),this.uvs=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.uvBuffer),t.bufferData(t.ARRAY_BUFFER,this.uvs,t.DYNAMIC_DRAW),this.dirtyUVS=!0,this.colors=new Float32Array(4*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.colorBuffer),t.bufferData(t.ARRAY_BUFFER,this.colors,t.DYNAMIC_DRAW),this.dirtyColors=!0,this.indices=new Uint16Array(6*this.dynamicSize);for(var e=this.indices.length/6,i=0;e>i;i++){var r=6*i,s=4*i;this.indices[r+0]=s+0,this.indices[r+1]=s+1,this.indices[r+2]=s+2,this.indices[r+3]=s+0,this.indices[r+4]=s+2,this.indices[r+5]=s+3}t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,this.indexBuffer),t.bufferData(t.ELEMENT_ARRAY_BUFFER,this.indices,t.STATIC_DRAW)},PIXI.WebGLBatch.prototype.refresh=function(){this.gl,this.dynamicSizei;i++)this.removeDisplayObjectAndChildren(this.toRemove[i]);this.toRemove=[],this.checkVisibility(this.root,this.root.visible);for(var r,i=0;this.batchs.length>i;i++)r=this.batchs[i],r instanceof PIXI.WebGLBatch?this.batchs[i].render():r instanceof PIXI.TilingSprite?r.visible&&this.renderTilingSprite(r,t):r instanceof PIXI.Strip&&r.visible&&this.renderStrip(r,t)},PIXI.WebGLRenderGroup.prototype.renderSpecific=function(t,e){var i=this.gl;this.checkVisibility(t,t.visible),i.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform,!1,e);var r,s,n,a,o=t.renderable?t:this.getNextRenderable(t),h=o.batch;if(o instanceof PIXI.Sprite){h=o.batch;var u=h.head;if(u==o)r=0;else for(r=1;u.__next!=o;)r++,u=u.__next}else h=o;for(var c,d=t,l=t;l.children.length>0;)l=l.children[l.children.length-1],l.renderable&&(d=l);if(d instanceof PIXI.Sprite){c=d.batch;var u=c.head;if(u==d)n=0;else for(n=1;u.__next!=d;)n++,u=u.__next}else c=d;if(h==c)return h instanceof PIXI.WebGLBatch?h.render(r,n+1):h instanceof PIXI.TilingSprite?h.visible&&this.renderTilingSprite(h,e):h instanceof PIXI.Strip?h.visible&&this.renderStrip(h,e):h instanceof PIXI.CustomRenderable&&h.visible&&h.renderWebGL(this,e),void 0;s=this.batchs.indexOf(h),a=this.batchs.indexOf(c),h instanceof PIXI.WebGLBatch?h.render(r):h instanceof PIXI.TilingSprite?h.visible&&this.renderTilingSprite(h,e):h instanceof PIXI.Strip?h.visible&&this.renderStrip(h,e):h instanceof PIXI.CustomRenderable&&h.visible&&h.renderWebGL(this,e);for(var I=s+1;a>I;I++)renderable=this.batchs[I],renderable instanceof PIXI.WebGLBatch?this.batchs[I].render():renderable instanceof PIXI.TilingSprite?renderable.visible&&this.renderTilingSprite(renderable,e):renderable instanceof PIXI.Strip?renderable.visible&&this.renderStrip(renderable,e):renderable instanceof PIXI.CustomRenderable&&renderable.visible&&renderable.renderWebGL(this,e);c instanceof PIXI.WebGLBatch?c.render(0,n+1):c instanceof PIXI.TilingSprite?c.visible&&this.renderTilingSprite(c):c instanceof PIXI.Strip?c.visible&&this.renderStrip(c):c instanceof PIXI.CustomRenderable&&c.visible&&c.renderWebGL(this,e)},PIXI.WebGLRenderGroup.prototype.checkVisibility=function(t,e){for(var i=t.children,r=0;i.length>r;r++){var s=i[r];s.worldVisible=s.visible&&e,s.textureChange&&(s.textureChange=!1,s.worldVisible&&(this.removeDisplayObject(s),this.addDisplayObject(s))),s.children.length>0&&this.checkVisibility(s,s.worldVisible)}},PIXI.WebGLRenderGroup.prototype.addDisplayObject=function(t){if(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.__renderGroup=this,t.renderable){var e=this.getPreviousRenderable(t),i=this.getNextRenderable(t);if(t instanceof PIXI.Sprite){var r,s;if(e instanceof PIXI.Sprite){if(r=e.batch,r&&r.texture==t.texture.baseTexture&&r.blendMode==t.blendMode)return r.insertAfter(t,e),void 0}else r=e;if(i)if(i instanceof PIXI.Sprite){if(s=i.batch){if(s.texture==t.texture.baseTexture&&s.blendMode==t.blendMode)return s.insertBefore(t,i),void 0;if(s==r){var n=r.split(i),a=PIXI.WebGLRenderer.getBatch(),o=this.batchs.indexOf(r);return a.init(t),this.batchs.splice(o+1,0,a,n),void 0}}}else s=i;var a=PIXI.WebGLRenderer.getBatch();if(a.init(t),r){var o=this.batchs.indexOf(r);this.batchs.splice(o+1,0,a)}else this.batchs.push(a)}else t instanceof PIXI.TilingSprite?(this.initTilingSprite(t),this.batchs.push(t)):t instanceof PIXI.Strip&&(this.initStrip(t),this.batchs.push(t));this.batchUpdate=!0}},PIXI.WebGLRenderGroup.prototype.addDisplayObjectAndChildren=function(t){this.addDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.addDisplayObjectAndChildren(e[i])},PIXI.WebGLRenderGroup.prototype.removeDisplayObject=function(t){if(t.__renderGroup=null,t.renderable){var e;if(t instanceof PIXI.Sprite){var i=t.batch;if(!i)return;i.remove(t),0==i.size&&(e=i)}else e=t;if(e){var r=this.batchs.indexOf(e);if(-1==r)return;if(0==r||r==this.batchs.length-1)return this.batchs.splice(r,1),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e),void 0;if(this.batchs[r-1]instanceof PIXI.WebGLBatch&&this.batchs[r+1]instanceof PIXI.WebGLBatch&&this.batchs[r-1].texture==this.batchs[r+1].texture&&this.batchs[r-1].blendMode==this.batchs[r+1].blendMode)return this.batchs[r-1].merge(this.batchs[r+1]),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e),PIXI.WebGLRenderer.returnBatch(this.batchs[r+1]),this.batchs.splice(r,2),void 0;this.batchs.splice(r,1),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e)}}},PIXI.WebGLRenderGroup.prototype.removeDisplayObjectAndChildren=function(t){if(t.__renderGroup==this){this.removeDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.removeDisplayObjectAndChildren(e[i])}},PIXI.WebGLRenderGroup.prototype.getNextRenderable=function(t){var e=t;do{if(0==e.children.length){if(!e.parent)return null;for(;e.childIndex==e.parent.children.length-1;)if(e=e.parent,e==this.root){e=null;break}e&&(e=e.parent.children[e.childIndex+1])}else e=e.children[0];if(!e)break}while(!e.renderable||!e.__renderGroup);return e},PIXI.WebGLRenderGroup.prototype.getPreviousRenderable=function(t){var e=t;do{if(0==e.childIndex){if(e=e.parent,!e)return null}else for(e=e.parent.children[e.childIndex-1];0!=e.children.length;)e=e.children[e.children.length-1];if(e==this.root)break}while(!e.renderable||!e.__renderGroup);return e},PIXI.WebGLRenderGroup.prototype.initTilingSprite=function(t){var e=this.gl;t.verticies=new Float32Array([0,0,t.width,0,t.width,t.height,0,t.height]),t.uvs=new Float32Array([0,0,1,0,1,1,0,1]),t.colors=new Float32Array([1,1,1,1]),t.indices=new Uint16Array([0,1,3,2]),t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW),t.texture.baseTexture._glTexture?(e.bindTexture(e.TEXTURE_2D,t.texture.baseTexture._glTexture),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT),t.texture.baseTexture._powerOf2=!0):t.texture.baseTexture._powerOf2=!0},PIXI.WebGLRenderGroup.prototype.renderStrip=function(t,e){var i=this.gl,r=PIXI.shaderProgram,s=PIXI.mat3.toMat4(t.worldTransform);PIXI.mat4.transpose(s),PIXI.mat4.multiply(e,s,s),i.uniformMatrix4fv(r.mvMatrixUniform,!1,s),t.blendMode==PIXI.blendModes.NORMAL?i.blendFunc(i.ONE,i.ONE_MINUS_SRC_ALPHA):i.blendFunc(i.ONE,i.ONE_MINUS_SRC_COLOR),t.dirty?(t.dirty=!1,i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferData(i.ARRAY_BUFFER,t.verticies,i.STATIC_DRAW),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferData(i.ARRAY_BUFFER,t.uvs,i.STATIC_DRAW),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.bufferData(i.ARRAY_BUFFER,t.colors,i.STATIC_DRAW),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer),i.bufferData(i.ELEMENT_ARRAY_BUFFER,t.indices,i.STATIC_DRAW)):(i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.verticies),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer)),i.drawElements(i.TRIANGLE_STRIP,t.indices.length,i.UNSIGNED_SHORT,0),i.uniformMatrix4fv(r.mvMatrixUniform,!1,e)},PIXI.WebGLRenderGroup.prototype.renderTilingSprite=function(t,e){var i=this.gl;PIXI.shaderProgram;var r=t.tilePosition,s=t.tileScale,n=r.x/t.texture.baseTexture.width,a=r.y/t.texture.baseTexture.height,o=t.width/t.texture.baseTexture.width/s.x,h=t.height/t.texture.baseTexture.height/s.y;t.uvs[0]=0-n,t.uvs[1]=0-a,t.uvs[2]=1*o-n,t.uvs[3]=0-a,t.uvs[4]=1*o-n,t.uvs[5]=1*h-a,t.uvs[6]=0-n,t.uvs[7]=1*h-a,i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.uvs),this.renderStrip(t,e)},PIXI.WebGLRenderer.prototype.initStrip=function(t){var e=this.gl;this.shaderProgram,t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW)},PIXI.CanvasRenderer=function(t,e,i,r){this.transparent=r,this.width=t||800,this.height=e||600,this.refresh=!0,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height,this.count=0,this.context=this.view.getContext("2d")},PIXI.CanvasRenderer.constructor=PIXI.CanvasRenderer,PIXI.CanvasRenderer.prototype.render=function(t){PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[],t.updateTransform(),this.view.style.backgroundColor==t.backgroundColorString||this.transparent||(this.view.style.backgroundColor=t.backgroundColorString),this.context.setTransform(1,0,0,1,0,0),this.context.clearRect(0,0,this.width,this.height),this.renderDisplayObject(t),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),PIXI.Texture.frameUpdates.length>0&&(PIXI.Texture.frameUpdates=[])},PIXI.CanvasRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e},PIXI.CanvasRenderer.prototype.renderDisplayObject=function(t){var e=t.worldTransform,i=this.context;if(t.visible){if(t instanceof PIXI.Sprite){var r=t.texture.frame;r&&(i.globalAlpha=t.worldAlpha,i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),i.drawImage(t.texture.baseTexture.source,r.x,r.y,r.width,r.height,t.anchor.x*-r.width,t.anchor.y*-r.height,r.width,r.height))}else t instanceof PIXI.Strip?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderStrip(t)):t instanceof PIXI.TilingSprite?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderTilingSprite(t)):t instanceof PIXI.CustomRenderable&&t.renderCanvas(this);for(var s=0;t.children.length>s;s++)this.renderDisplayObject(t.children[s]);this.context.setTransform(1,0,0,1,0,0)}},PIXI.CanvasRenderer.prototype.renderStripFlat=function(t){var e=this.context,i=t.verticies;t.uvs;var r=i.length/2;this.count++,e.beginPath();for(var s=1;r-2>s;s++){var n=2*s,a=i[n],o=i[n+2],h=i[n+4],u=i[n+1],c=i[n+3],d=i[n+5];e.moveTo(a,u),e.lineTo(o,c),e.lineTo(h,d)}e.fillStyle="#FF0000",e.fill(),e.closePath()},PIXI.CanvasRenderer.prototype.renderTilingSprite=function(t){var e=this.context;t.__tilePattern||(t.__tilePattern=e.createPattern(t.texture.baseTexture.source,"repeat")),e.beginPath();var i=t.tilePosition,r=t.tileScale;e.scale(r.x,r.y),e.translate(i.x,i.y),e.fillStyle=t.__tilePattern,e.fillRect(-i.x,-i.y,t.width/r.x,t.height/r.y),e.scale(1/r.x,1/r.y),e.translate(-i.x,-i.y),e.closePath()},PIXI.CanvasRenderer.prototype.renderStrip=function(t){var e=this.context,i=t.verticies,r=t.uvs,s=i.length/2;this.count++;for(var n=1;s-2>n;n++){var a=2*n,o=i[a],h=i[a+2],u=i[a+4],c=i[a+1],d=i[a+3],l=i[a+5],I=r[a]*t.texture.width,p=r[a+2]*t.texture.width,f=r[a+4]*t.texture.width,x=r[a+1]*t.texture.height,v=r[a+3]*t.texture.height,P=r[a+5]*t.texture.height;e.save(),e.beginPath(),e.moveTo(o,c),e.lineTo(h,d),e.lineTo(u,l),e.closePath(),e.clip();var g=I*v+x*f+p*P-v*f-x*p-I*P,b=o*v+x*u+h*P-v*u-x*h-o*P,X=I*h+o*f+p*u-h*f-o*p-I*u,m=I*v*u+x*h*f+o*p*P-o*v*f-x*p*u-I*h*P,T=c*v+x*l+d*P-v*l-x*d-c*P,y=I*d+c*f+p*l-d*f-c*p-I*l,_=I*v*l+x*d*f+c*p*P-c*v*f-x*p*l-I*d*P;e.transform(b/g,T/g,X/g,y/g,m/g,_/g),e.drawImage(t.texture.baseTexture.source,0,0),e.restore()}},PIXI.Strip=function(t,e,i){PIXI.DisplayObjectContainer.call(this),this.texture=t,this.blendMode=PIXI.blendModes.NORMAL;try{this.uvs=new Float32Array([0,1,1,1,1,0,0,1]),this.verticies=new Float32Array([0,0,0,0,0,0,0,0,0]),this.colors=new Float32Array([1,1,1,1]),this.indices=new Uint16Array([0,1,2,3])}catch(r){this.uvs=[0,1,1,1,1,0,0,1],this.verticies=[0,0,0,0,0,0,0,0,0],this.colors=[1,1,1,1],this.indices=[0,1,2,3]}this.width=e,this.height=i,t.baseTexture.hasLoaded?(this.width=this.texture.frame.width,this.height=this.texture.frame.height,this.updateFrame=!0):(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},PIXI.Strip.constructor=PIXI.Strip,PIXI.Strip.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Strip.prototype.setTexture=function(t){this.texture=t,this.width=t.frame.width,this.height=t.frame.height,this.updateFrame=!0},PIXI.Strip.prototype.onTextureUpdate=function(){this.updateFrame=!0},PIXI.Rope=function(t,e){PIXI.Strip.call(this,t),this.points=e;try{this.verticies=new Float32Array(4*e.length),this.uvs=new Float32Array(4*e.length),this.colors=new Float32Array(2*e.length),this.indices=new Uint16Array(2*e.length)}catch(i){this.verticies=verticies,this.uvs=uvs,this.colors=colors,this.indices=indices}this.refresh()},PIXI.Rope.constructor=PIXI.Rope,PIXI.Rope.prototype=Object.create(PIXI.Strip.prototype),PIXI.Rope.prototype.refresh=function(){var t=this.points;if(!(1>t.length)){var e=this.uvs,i=this.indices,r=this.colors,s=t[0],n=t[0];this.count-=.2,e[0]=0,e[1]=1,e[2]=0,e[3]=1,r[0]=1,r[1]=1,i[0]=0,i[1]=1;for(var a=t.length,o=1;a>o;o++){var n=t[o],h=4*o,u=o/(a-1);o%2?(e[h]=u,e[h+1]=0,e[h+2]=u,e[h+3]=1):(e[h]=u,e[h+1]=0,e[h+2]=u,e[h+3]=1),h=2*o,r[h]=1,r[h+1]=1,h=2*o,i[h]=h,i[h+1]=h+1,s=n}}},PIXI.Rope.prototype.updateTransform=function(){var t=this.points;if(!(1>t.length)){var e,i=this.verticies,r=t[0],s={x:0,y:0},n=t[0];this.count-=.2,i[0]=n.x+s.x,i[1]=n.y+s.y,i[2]=n.x-s.x,i[3]=n.y-s.y;for(var a=t.length,o=1;a>o;o++){var n=t[o],h=4*o;e=t.length-1>o?t[o+1]:n,s.y=-(e.x-r.x),s.x=e.y-r.y;var u=10*(1-o/(a-1));u>1&&(u=1);var c=Math.sqrt(s.x*s.x+s.y*s.y),d=this.texture.height/2;s.x/=c,s.y/=c,s.x*=d,s.y*=d,i[h]=n.x+s.x,i[h+1]=n.y+s.y,i[h+2]=n.x-s.x,i[h+3]=n.y-s.y,r=n}PIXI.DisplayObjectContainer.prototype.updateTransform.call(this)}},PIXI.Rope.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0},PIXI.TilingSprite=function(t,e,i){PIXI.DisplayObjectContainer.call(this),this.texture=t,this.width=e,this.height=i,this.renderable=!0,this.tileScale=new PIXI.Point(1,1),this.tilePosition=new PIXI.Point(0,0),this.blendMode=PIXI.blendModes.NORMAL},PIXI.TilingSprite.constructor=PIXI.TilingSprite,PIXI.TilingSprite.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.TilingSprite.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0},PIXI.TilingSprite.prototype.onTextureUpdate=function(){this.updateFrame=!0},PIXI.CustomRenderable=function(){PIXI.DisplayObject.call(this)},PIXI.CustomRenderable.constructor=PIXI.CustomRenderable,PIXI.CustomRenderable.prototype=Object.create(PIXI.DisplayObject.prototype),PIXI.CustomRenderable.prototype.renderCanvas=function(){},PIXI.CustomRenderable.prototype.initWebGL=function(){},PIXI.CustomRenderable.prototype.renderWebGL=function(){},PIXI.BaseTextureCache={},PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[],PIXI.BaseTexture=function(t){if(PIXI.EventTarget.call(this),this.width=100,this.height=100,this.source=t,t){if(this.source instanceof Image)if(this.source.complete)this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,PIXI.texturesToUpdate.push(this);else{var e=this;this.source.onload=function(){e.hasLoaded=!0,e.width=e.source.width,e.height=e.source.height,PIXI.texturesToUpdate.push(e),e.dispatchEvent({type:"loaded",content:e})}}else this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,PIXI.texturesToUpdate.push(this);this._powerOf2=!1}},PIXI.BaseTexture.constructor=PIXI.BaseTexture,PIXI.BaseTexture.prototype.destroy=function(){this.source instanceof Image&&(this.source.src=null),this.source=null,PIXI.texturesToDestroy.push(this)},PIXI.BaseTexture.fromImage=function(t,e){var i=PIXI.BaseTextureCache[t];if(!i){var r=new Image;e&&(r.crossOrigin=""),r.src=t,i=new PIXI.BaseTexture(r),PIXI.BaseTextureCache[t]=i}return i},PIXI.TextureCache={},PIXI.FrameCache={},PIXI.Texture=function(t,e){if(PIXI.EventTarget.call(this),e||(this.noFrame=!0,e=new PIXI.Rectangle(0,0,1,1)),this.trim=new PIXI.Point,t instanceof PIXI.Texture&&(t=t.baseTexture),this.baseTexture=t,this.frame=e,this.scope=this,t.hasLoaded)this.noFrame&&(e=new PIXI.Rectangle(0,0,t.width,t.height)),this.setFrame(e);else{var i=this;t.addEventListener("loaded",function(){i.onBaseTextureLoaded()})}},PIXI.Texture.constructor=PIXI.Texture,PIXI.Texture.prototype.onBaseTextureLoaded=function(){var t=this.baseTexture;t.removeEventListener("loaded",this.onLoaded),this.noFrame&&(this.frame=new PIXI.Rectangle(0,0,t.width,t.height)),this.noFrame=!1,this.width=this.frame.width,this.height=this.frame.height,this.scope.dispatchEvent({type:"update",content:this})},PIXI.Texture.prototype.destroy=function(t){t&&this.baseTexture.destroy()},PIXI.Texture.prototype.setFrame=function(t){if(this.frame=t,this.width=t.width,this.height=t.height,t.x+t.width>this.baseTexture.width||t.y+t.height>this.baseTexture.height)throw Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);this.updateFrame=!0,PIXI.Texture.frameUpdates.push(this)},PIXI.Texture.fromImage=function(t,e){var i=PIXI.TextureCache[t];return i||(i=new PIXI.Texture(PIXI.BaseTexture.fromImage(t,e)),PIXI.TextureCache[t]=i),i},PIXI.Texture.fromFrame=function(t){var e=PIXI.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache "+this);return e},PIXI.Texture.fromCanvas=function(t){var e=new PIXI.BaseTexture(t);return new PIXI.Texture(e)},PIXI.Texture.addTextureToCache=function(t,e){PIXI.TextureCache[e]=t},PIXI.Texture.removeTextureFromCache=function(t){var e=PIXI.TextureCache[t];return PIXI.TextureCache[t]=null,e},PIXI.Texture.frameUpdates=[],PIXI.RenderTexture=function(t,e){PIXI.EventTarget.call(this),this.width=t||100,this.height=e||100,this.indetityMatrix=PIXI.mat3.create(),this.frame=new PIXI.Rectangle(0,0,this.width,this.height),PIXI.gl?this.initWebGL():this.initCanvas()},PIXI.RenderTexture.constructor=PIXI.RenderTexture,PIXI.RenderTexture.prototype=Object.create(PIXI.Texture.prototype),PIXI.RenderTexture.prototype.initWebGL=function(){var t=PIXI.gl;this.glFramebuffer=t.createFramebuffer(),t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),this.glFramebuffer.width=this.width,this.glFramebuffer.height=this.height,this.baseTexture=new PIXI.BaseTexture,this.baseTexture.width=this.width,this.baseTexture.height=this.height,this.baseTexture._glTexture=t.createTexture(),t.bindTexture(t.TEXTURE_2D,this.baseTexture._glTexture),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,this.width,this.height,0,t.RGBA,t.UNSIGNED_BYTE,null),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),this.baseTexture.isRender=!0,t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,this.baseTexture._glTexture,0),this.projectionMatrix=PIXI.mat4.create(),this.projectionMatrix[5]=2/this.height,this.projectionMatrix[13]=-1,this.projectionMatrix[0]=2/this.width,this.projectionMatrix[12]=-1,this.render=this.renderWebGL},PIXI.RenderTexture.prototype.initCanvas=function(){this.renderer=new PIXI.CanvasRenderer(this.width,this.height,null,0),this.baseTexture=new PIXI.BaseTexture(this.renderer.view),this.frame=new PIXI.Rectangle(0,0,this.width,this.height),this.render=this.renderCanvas},PIXI.RenderTexture.prototype.renderWebGL=function(t,e){var i=PIXI.gl;i.colorMask(!0,!0,!0,!0),i.viewport(0,0,this.width,this.height),i.bindFramebuffer(i.FRAMEBUFFER,this.glFramebuffer),e&&(i.clearColor(0,0,0,0),i.clear(i.COLOR_BUFFER_BIT));var r=t.children;t.worldTransform=PIXI.mat3.create();for(var s=0,n=r.length;n>s;s++)r[s].updateTransform();var a=t.__renderGroup;a?t==a.root?a.render(this.projectionMatrix):a.renderSpecific(t,this.projectionMatrix):(this.renderGroup||(this.renderGroup=new PIXI.WebGLRenderGroup(i)),this.renderGroup.setRenderable(t),this.renderGroup.render(this.projectionMatrix))},PIXI.RenderTexture.prototype.renderCanvas=function(t,e){var i=t.children;t.worldTransform=PIXI.mat3.create();for(var r=0,s=i.length;s>r;r++)i[r].updateTransform();e&&this.renderer.context.clearRect(0,0,this.width,this.height),this.renderer.renderDisplayObject(t),PIXI.texturesToUpdate.push(this.baseTexture)},PIXI.AssetLoader=function(t){PIXI.EventTarget.call(this),this.assetURLs=t,this.crossorigin=!1,this.loadersByType={jpg:PIXI.ImageLoader,jpeg:PIXI.ImageLoader,png:PIXI.ImageLoader,gif:PIXI.ImageLoader,json:PIXI.SpriteSheetLoader,xml:PIXI.BitmapFontLoader,fnt:PIXI.BitmapFontLoader}},PIXI.AssetLoader.constructor=PIXI.AssetLoader,PIXI.AssetLoader.prototype.load=function(){var t=this;this.loadCount=this.assetURLs.length;for(var e=0;this.assetURLs.length>e;e++){var i=this.assetURLs[e],r=i.split(".").pop().toLowerCase(),s=this.loadersByType[r];if(!s)throw Error(r+" is an unsupported file type");var n=new s(i,this.crossorigin);n.addEventListener("loaded",function(){t.onAssetLoaded()}),n.load()}},PIXI.AssetLoader.prototype.onAssetLoaded=function(){this.loadCount--,this.dispatchEvent({type:"onProgress",content:this}),this.onProgress&&this.onProgress(),0==this.loadCount&&(this.dispatchEvent({type:"onComplete",content:this}),this.onComplete&&this.onComplete())},PIXI.SpriteSheetLoader=function(t,e){PIXI.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.frames={},this.crossorigin=e},PIXI.SpriteSheetLoader.constructor=PIXI.SpriteSheetLoader,PIXI.SpriteSheetLoader.prototype.load=function(){this.ajaxRequest=new AjaxRequest;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onJSONLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/json"),this.ajaxRequest.send(null)},PIXI.SpriteSheetLoader.prototype.onJSONLoaded=function(){if(4==this.ajaxRequest.readyState&&(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))){var jsonData=eval("("+this.ajaxRequest.responseText+")"),textureUrl=this.baseUrl+jsonData.meta.image,image=new PIXI.ImageLoader(textureUrl,this.crossorigin);this.texture=image.texture.baseTexture;var scope=this;image.addEventListener("loaded",function(){scope.onLoaded()});var frameData=jsonData.frames;for(var i in frameData){var rect=frameData[i].frame;rect&&(PIXI.TextureCache[i]=new PIXI.Texture(this.texture,{x:rect.x,y:rect.y,width:rect.w,height:rect.h}),frameData[i].trimmed&&(PIXI.TextureCache[i].realSize=frameData[i].spriteSourceSize,PIXI.TextureCache[i].trim.x=0))}image.load()}},PIXI.SpriteSheetLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},PIXI.ImageLoader=function(t,e){PIXI.EventTarget.call(this),this.texture=PIXI.Texture.fromImage(t,e)},PIXI.ImageLoader.constructor=PIXI.ImageLoader,PIXI.ImageLoader.prototype.load=function(){if(this.texture.baseTexture.hasLoaded)this.onLoaded();else{var t=this;this.texture.baseTexture.addEventListener("loaded",function(){t.onLoaded()})}},PIXI.ImageLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},PIXI.BitmapFontLoader=function(t,e){PIXI.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.crossorigin=e},PIXI.BitmapFontLoader.constructor=PIXI.BitmapFontLoader,PIXI.BitmapFontLoader.prototype.load=function(){this.ajaxRequest=new XMLHttpRequest;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onXMLLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/xml"),this.ajaxRequest.send(null)},PIXI.BitmapFontLoader.prototype.onXMLLoaded=function(){if(4==this.ajaxRequest.readyState&&(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))){var t=this.baseUrl+this.ajaxRequest.responseXML.getElementsByTagName("page")[0].attributes.getNamedItem("file").nodeValue,e=new PIXI.ImageLoader(t,this.crossorigin);this.texture=e.texture.baseTexture;var i={},r=this.ajaxRequest.responseXML.getElementsByTagName("info")[0],s=this.ajaxRequest.responseXML.getElementsByTagName("common")[0];i.font=r.attributes.getNamedItem("face").nodeValue,i.size=parseInt(r.attributes.getNamedItem("size").nodeValue,10),i.lineHeight=parseInt(s.attributes.getNamedItem("lineHeight").nodeValue,10),i.chars={};for(var n=this.ajaxRequest.responseXML.getElementsByTagName("char"),a=0;n.length>a;a++){var o=parseInt(n[a].attributes.getNamedItem("id").nodeValue,10),h={x:parseInt(n[a].attributes.getNamedItem("x").nodeValue,10),y:parseInt(n[a].attributes.getNamedItem("y").nodeValue,10),width:parseInt(n[a].attributes.getNamedItem("width").nodeValue,10),height:parseInt(n[a].attributes.getNamedItem("height").nodeValue,10)};PIXI.TextureCache[o]=new PIXI.Texture(this.texture,h),i.chars[o]={xOffset:parseInt(n[a].attributes.getNamedItem("xoffset").nodeValue,10),yOffset:parseInt(n[a].attributes.getNamedItem("yoffset").nodeValue,10),xAdvance:parseInt(n[a].attributes.getNamedItem("xadvance").nodeValue,10),kerning:{}}}var u=this.ajaxRequest.responseXML.getElementsByTagName("kerning");for(a=0;u.length>a;a++){var c=parseInt(u[a].attributes.getNamedItem("first").nodeValue,10),d=parseInt(u[a].attributes.getNamedItem("second").nodeValue,10),l=parseInt(u[a].attributes.getNamedItem("amount").nodeValue,10);i.chars[d].kerning[c]=l}PIXI.BitmapText.fonts[i.font]=i;var I=this;e.addEventListener("loaded",function(){I.onLoaded()}),e.load()}},PIXI.BitmapFontLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=PIXI),exports.PIXI=PIXI):root.PIXI=PIXI}).call(this); \ No newline at end of file +(function(){function HEXtoRGB(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}function determineMatrixArrayType(){return PIXI.Matrix="undefined"!=typeof Float32Array?Float32Array:Array,PIXI.Matrix}var root=this,PIXI=PIXI||{};PIXI.Point=function(t,e){this.x=t||0,this.y=e||0},PIXI.Point.prototype.clone=function(){return new PIXI.Point(this.x,this.y)},PIXI.Point.constructor=PIXI.Point,PIXI.Rectangle=function(t,e,i,r){this.x=t||0,this.y=e||0,this.width=i||0,this.height=r||0},PIXI.Rectangle.prototype.clone=function(){return new PIXI.Rectangle(this.x,this.y,this.width,this.height)},PIXI.Rectangle.constructor=PIXI.Rectangle,PIXI.DisplayObject=function(){this.position=new PIXI.Point,this.scale=new PIXI.Point(1,1),this.pivot=new PIXI.Point(0,0),this.rotation=0,this.alpha=1,this.visible=!0,this.worldVisible=!1,this.parent=null,this.stage=null,this.hitArea=null,this.worldAlpha=1,this.color=[],this.worldTransform=PIXI.mat3.create(),this.localTransform=PIXI.mat3.create(),this.dynamic=!0,this._sr=0,this._cr=1,this.childIndex=0,this.renderable=!1,this.interactive=!1,this.buttonMode=!1},PIXI.DisplayObject.constructor=PIXI.DisplayObject,PIXI.DisplayObject.prototype.setInteractive=function(t){this.interactive=t,this.stage&&(this.stage.dirty=!0)},PIXI.DisplayObject.prototype.updateTransform=function(){this.rotation!=this.rotationCache&&(this.rotationCache=this.rotation,this._sr=Math.sin(this.rotation),this._cr=Math.cos(this.rotation));var t=this.localTransform,e=this.parent.worldTransform,i=this.worldTransform;t[0]=this._cr*this.scale.x,t[1]=-this._sr*this.scale.y,t[3]=this._sr*this.scale.x,t[4]=this._cr*this.scale.y;var r=this.pivot.x,s=this.pivot.y;t[2]=this.position.x-t[0]*r-s*t[1],t[5]=this.position.y-t[4]*s-r*t[3];var n=t[0],a=t[1],o=t[2],h=t[3],u=t[4],d=t[5],c=e[0],l=e[1],I=e[2],p=e[3],f=e[4],x=e[5];i[0]=c*n+l*h,i[1]=c*a+l*u,i[2]=c*o+l*d+I,i[3]=p*n+f*h,i[4]=p*a+f*u,i[5]=p*o+f*d+x,this.worldAlpha=this.alpha*this.parent.worldAlpha},PIXI.DisplayObjectContainer=function(){PIXI.DisplayObject.call(this),this.children=[],this.renderable=!1},PIXI.DisplayObjectContainer.constructor=PIXI.DisplayObjectContainer,PIXI.DisplayObjectContainer.prototype=Object.create(PIXI.DisplayObject.prototype),PIXI.DisplayObjectContainer.prototype.addChild=function(t){void 0!=t.parent&&t.parent.removeChild(t),t.parent=this,t.childIndex=this.children.length,this.children.push(t),this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},PIXI.DisplayObjectContainer.prototype.addChildAt=function(t,e){if(!(e>=0&&this.children.length>=e))throw Error(t+" The index "+e+" supplied is out of bounds "+this.children.length);void 0!=t.parent&&t.parent.removeChild(t),e==this.children.length?this.children.push(t):this.children.splice(e,0,t),t.parent=this,t.childIndex=e;for(var i=this.children.length,r=e;i>r;r++)this.children[r].childIndex=r;this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},PIXI.DisplayObjectContainer.prototype.swapChildren=function(t,e){var i=this.children.indexOf(t),r=this.children.indexOf(e);if(-1===i||-1===r)throw Error(t+" Both the supplied DisplayObjects must be a child of the caller "+this);this.stage&&(this.stage.__removeChild(t),this.stage.__removeChild(e),this.stage.__addChild(t),this.stage.__addChild(e)),t.childIndex=r,e.childIndex=i,this.children[i]=e,this.children[r]=t},PIXI.DisplayObjectContainer.prototype.getChildAt=function(t){if(t>=0&&this.children.length>t)return this.children[t];throw Error(child+" Both the supplied DisplayObjects must be a child of the caller "+this)},PIXI.DisplayObjectContainer.prototype.removeChild=function(t){var e=this.children.indexOf(t);if(-1===e)throw Error(t+" The supplied DisplayObject must be a child of the caller "+this);this.stage&&this.stage.__removeChild(t),t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.parent=void 0,this.children.splice(e,1);for(var i=e,r=this.children.length;r>i;i++)this.children[i].childIndex-=1},PIXI.DisplayObjectContainer.prototype.updateTransform=function(){if(this.visible){PIXI.DisplayObject.prototype.updateTransform.call(this);for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform()}},PIXI.blendModes={},PIXI.blendModes.NORMAL=0,PIXI.blendModes.SCREEN=1,PIXI.Sprite=function(t){PIXI.DisplayObjectContainer.call(this),this.anchor=new PIXI.Point,this.texture=t,this.blendMode=PIXI.blendModes.NORMAL,this._width=0,this._height=0,t.baseTexture.hasLoaded?this.updateFrame=!0:(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},PIXI.Sprite.constructor=PIXI.Sprite,PIXI.Sprite.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),Object.defineProperty(PIXI.Sprite.prototype,"width",{get:function(){return this.scale.x*this.texture.frame.width},set:function(t){this.scale.x=t/this.texture.frame.width,this._width=t}}),Object.defineProperty(PIXI.Sprite.prototype,"height",{get:function(){return this.scale.y*this.texture.frame.height},set:function(t){this.scale.y=t/this.texture.frame.height,this._height=t}}),PIXI.Sprite.prototype.setTexture=function(t){this.texture.baseTexture!=t.baseTexture&&(this.textureChange=!0),this.texture=t,this.updateFrame=!0},PIXI.Sprite.prototype.onTextureUpdate=function(){this._width&&(this.scale.x=this._width/this.texture.frame.width),this._height&&(this.scale.y=this._height/this.texture.frame.height),this.updateFrame=!0},PIXI.Sprite.fromFrame=function(t){var e=PIXI.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache"+this);return new PIXI.Sprite(e)},PIXI.Sprite.fromImage=function(t){var e=PIXI.Texture.fromImage(t);return new PIXI.Sprite(e)},PIXI.MovieClip=function(t){PIXI.Sprite.call(this,t[0]),this.textures=t,this.currentFrame=0,this.animationSpeed=1,this.loop=!0,this.onComplete=null,this.playing},PIXI.MovieClip.constructor=PIXI.MovieClip,PIXI.MovieClip.prototype=Object.create(PIXI.Sprite.prototype),PIXI.MovieClip.prototype.stop=function(){this.playing=!1},PIXI.MovieClip.prototype.play=function(){this.playing=!0},PIXI.MovieClip.prototype.gotoAndStop=function(t){this.playing=!1,this.currentFrame=t;var e=0|this.currentFrame+.5;this.setTexture(this.textures[e%this.textures.length])},PIXI.MovieClip.prototype.gotoAndPlay=function(t){this.currentFrame=t,this.playing=!0},PIXI.MovieClip.prototype.updateTransform=function(){if(PIXI.Sprite.prototype.updateTransform.call(this),this.playing){this.currentFrame+=this.animationSpeed;var t=0|this.currentFrame+.5;this.loop||this.textures.length>t?this.setTexture(this.textures[t%this.textures.length]):t>=this.textures.length&&(this.gotoAndStop(this.textures.length-1),this.onComplete&&this.onComplete())}},PIXI.Text=function(t,e){this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"),PIXI.Sprite.call(this,PIXI.Texture.fromCanvas(this.canvas)),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},PIXI.Text.constructor=PIXI.Text,PIXI.Text.prototype=Object.create(PIXI.Sprite.prototype),PIXI.Text.prototype.setStyle=function(t){t=t||{},t.font=t.font||"bold 20pt Arial",t.fill=t.fill||"black",t.align=t.align||"left",t.strokeThickness=t.strokeThickness||0,this.style=t,this.dirty=!0},PIXI.Sprite.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},PIXI.Text.prototype.updateText=function(){this.context.font=this.style.font;for(var t=this.text.split(/(?:\r\n|\r|\n)/),e=[],i=0,r=0;t.length>r;r++){var s=this.context.measureText(t[r]).width;e[r]=s,i=Math.max(i,s)}this.canvas.width=i+this.style.strokeThickness;var n=this.determineFontHeight("font: "+this.style.font+";")+this.style.strokeThickness;for(this.canvas.height=n*t.length,this.context.fillStyle=this.style.fill,this.context.font=this.style.font,this.context.strokeStyle=this.style.stroke,this.context.lineWidth=this.style.strokeThickness,this.context.textBaseline="top",r=0;t.length>r;r++){var a=new PIXI.Point(this.style.strokeThickness/2,this.style.strokeThickness/2+r*n);"right"==this.style.align?a.x+=i-e[r]:"center"==this.style.align&&(a.x+=(i-e[r])/2),this.style.stroke&&this.style.strokeThickness&&this.context.strokeText(t[r],a.x,a.y),this.style.fill&&this.context.fillText(t[r],a.x,a.y)}this.updateTexture()},PIXI.Text.prototype.updateTexture=function(){this.texture.baseTexture.width=this.canvas.width,this.texture.baseTexture.height=this.canvas.height,this.texture.frame.width=this.canvas.width,this.texture.frame.height=this.canvas.height,this._width=this.canvas.width,this._height=this.canvas.height,PIXI.texturesToUpdate.push(this.texture.baseTexture)},PIXI.Text.prototype.updateTransform=function(){this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype.updateTransform.call(this)},PIXI.Text.prototype.determineFontHeight=function(t){var e=PIXI.Text.heightCache[t];if(!e){var i=document.getElementsByTagName("body")[0],r=document.createElement("div"),s=document.createTextNode("M");r.appendChild(s),r.setAttribute("style",t),i.appendChild(r),e=r.offsetHeight,PIXI.Text.heightCache[t]=e,i.removeChild(r)}return e},PIXI.Text.prototype.destroy=function(t){t&&this.texture.destroy()},PIXI.Text.heightCache={},PIXI.BitmapText=function(t,e){PIXI.DisplayObjectContainer.call(this),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},PIXI.BitmapText.constructor=PIXI.BitmapText,PIXI.BitmapText.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.BitmapText.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},PIXI.BitmapText.prototype.setStyle=function(t){t=t||{},t.align=t.align||"left",this.style=t;var e=t.font.split(" ");this.fontName=e[e.length-1],this.fontSize=e.length>=2?parseInt(e[e.length-2],10):PIXI.BitmapText.fonts[this.fontName].size,this.dirty=!0},PIXI.BitmapText.prototype.updateText=function(){for(var t=PIXI.BitmapText.fonts[this.fontName],e=new PIXI.Point,i=null,r=[],s=0,n=[],a=0,o=this.fontSize/t.size,h=0;this.text.length>h;h++){var u=this.text.charCodeAt(h);if(/(?:\r\n|\r|\n)/.test(this.text.charAt(h)))n.push(e.x),s=Math.max(s,e.x),a++,e.x=0,e.y+=t.lineHeight,i=null;else{var d=t.chars[u];d&&(i&&d[i]&&(e.x+=d.kerning[i]),r.push({line:a,charCode:u,position:new PIXI.Point(e.x+d.xOffset,e.y+d.yOffset)}),e.x+=d.xAdvance,i=u)}}n.push(e.x),s=Math.max(s,e.x);var c=[];for(h=0;a>=h;h++){var l=0;"right"==this.style.align?l=s-n[h]:"center"==this.style.align&&(l=(s-n[h])/2),c.push(l)}for(h=0;r.length>h;h++){var I=PIXI.Sprite.fromFrame(r[h].charCode);I.position.x=(r[h].position.x+c[r[h].line])*o,I.position.y=r[h].position.y*o,I.scale.x=I.scale.y=o,this.addChild(I)}this.width=e.x*o,this.height=(e.y+t.lineHeight)*o},PIXI.BitmapText.prototype.updateTransform=function(){if(this.dirty){for(;this.children.length>0;)this.removeChild(this.getChildAt(0));this.updateText(),this.dirty=!1}PIXI.DisplayObjectContainer.prototype.updateTransform.call(this)},PIXI.BitmapText.fonts={},PIXI.InteractionManager=function(t){this.stage=t,this.tempPoint=new PIXI.Point,this.mouseoverEnabled=!0,this.mouse=new PIXI.InteractionData,this.touchs={},this.pool=[],this.interactiveItems=[],this.last=0},PIXI.InteractionManager.constructor=PIXI.InteractionManager,PIXI.InteractionManager.prototype.collectInteractiveSprite=function(t,e){for(var i=t.children,r=i.length,s=r-1;s>=0;s--){var n=i[s];n.interactive?(e.interactiveChildren=!0,this.interactiveItems.push(n),n.children.length>0&&this.collectInteractiveSprite(n,n)):(n.__iParent=null,n.children.length>0&&this.collectInteractiveSprite(n,e))}},PIXI.InteractionManager.prototype.setTarget=function(t){window.navigator.msPointerEnabled&&(t.view.style["-ms-content-zooming"]="none",t.view.style["-ms-touch-action"]="none"),this.target=t,t.view.addEventListener("mousemove",this.onMouseMove.bind(this),!0),t.view.addEventListener("mousedown",this.onMouseDown.bind(this),!0),document.body.addEventListener("mouseup",this.onMouseUp.bind(this),!0),t.view.addEventListener("mouseout",this.onMouseUp.bind(this),!0),t.view.addEventListener("touchstart",this.onTouchStart.bind(this),!0),t.view.addEventListener("touchend",this.onTouchEnd.bind(this),!0),t.view.addEventListener("touchmove",this.onTouchMove.bind(this),!0)},PIXI.InteractionManager.prototype.update=function(){if(this.target){var t=Date.now(),e=t-this.last;if(e=30*e/1e3,!(1>e)){if(this.last=t,this.dirty){this.dirty=!1,this.interactiveItems.length;for(var i=0;this.interactiveItems.length>i;i++)this.interactiveItems[i].interactiveChildren=!1;this.interactiveItems=[],this.stage.interactive&&this.interactiveItems.push(this.stage),this.collectInteractiveSprite(this.stage,this.stage)}var r=this.interactiveItems.length;this.target.view.style.cursor="default";for(var i=0;r>i;i++){var s=this.interactiveItems[i];s.visible&&(s.mouseover||s.mouseout||s.buttonMode)&&(s.__hit=this.hitTest(s,this.mouse),s.__hit?(s.buttonMode&&(this.target.view.style.cursor="pointer"),s.__isOver||(s.mouseover&&s.mouseover(this.mouse),s.__isOver=!0)):s.__isOver&&(s.mouseout&&s.mouseout(this.mouse),s.__isOver=!1))}}}},PIXI.InteractionManager.prototype.onMouseMove=function(t){t.preventDefault();var e=this.target.view.getBoundingClientRect();this.mouse.global.x=(t.clientX-e.left)*(this.target.width/e.width),this.mouse.global.y=(t.clientY-e.top)*(this.target.height/e.height);var i=this.interactiveItems.length;this.mouse.global;for(var r=0;i>r;r++){var s=this.interactiveItems[r];s.mousemove&&s.mousemove(this.mouse)}},PIXI.InteractionManager.prototype.onMouseDown=function(t){t.preventDefault();var e=this.interactiveItems.length;this.mouse.global,this.stage;for(var i=0;e>i;i++){var r=this.interactiveItems[i];if((r.mousedown||r.click)&&(r.__mouseIsDown=!0,r.__hit=this.hitTest(r,this.mouse),r.__hit&&(r.mousedown&&r.mousedown(this.mouse),r.__isDown=!0,!r.interactiveChildren)))break}},PIXI.InteractionManager.prototype.onMouseUp=function(t){t.preventDefault(),this.mouse.global;for(var e=this.interactiveItems.length,i=!1,r=0;e>r;r++){var s=this.interactiveItems[r];(s.mouseup||s.mouseupoutside||s.click)&&(s.__hit=this.hitTest(s,this.mouse),s.__hit&&!i?(s.mouseup&&s.mouseup(this.mouse),s.__isDown&&s.click&&s.click(this.mouse),s.interactiveChildren||(i=!0)):s.__isDown&&s.mouseupoutside&&s.mouseupoutside(this.mouse),s.__isDown=!1)}},PIXI.InteractionManager.prototype.hitTest=function(t,e){var i=e.global;if(!t.visible)return!1;if(t instanceof PIXI.Sprite){var r=t.worldTransform,s=r[0],n=r[1],a=r[2],o=r[3],h=r[4],u=r[5],d=1/(s*h+n*-o),c=h*d*i.x+-n*d*i.y+(u*n-a*h)*d,l=s*d*i.y+-o*d*i.x+(-u*s+a*o)*d,I=t.texture.frame.width,p=t.texture.frame.height,f=-I*t.anchor.x;if(c>f&&f+I>c){var x=-p*t.anchor.y;if(l>x&&x+p>l)return e.target=t,!0}}else if(t.hitArea){var r=t.worldTransform,v=t.hitArea,s=r[0],n=r[1],a=r[2],o=r[3],h=r[4],u=r[5],d=1/(s*h+n*-o),c=h*d*i.x+-n*d*i.y+(u*n-a*h)*d,l=s*d*i.y+-o*d*i.x+(-u*s+a*o)*d,f=v.x;if(c>f&&f+v.width>c){var x=v.y;if(l>x&&x+v.height>l)return!0}}for(var P=t.children.length,g=0;P>g;g++){var b=t.children[g],X=this.hitTest(b,e);if(X)return!0}return!1},PIXI.InteractionManager.prototype.onTouchMove=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.touchs[s.identifier];n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height)}for(var a=this.interactiveItems.length,r=0;a>r;r++){var o=this.interactiveItems[r];o.touchmove&&o.touchmove(n)}},PIXI.InteractionManager.prototype.onTouchStart=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.pool.pop();n||(n=new PIXI.InteractionData),this.touchs[s.identifier]=n,n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height);for(var a=this.interactiveItems.length,o=0;a>o;o++){var h=this.interactiveItems[o];if((h.touchstart||h.tap)&&(h.__hit=this.hitTest(h,n),h.__hit&&(h.touchstart&&h.touchstart(n),h.__isDown=!0,h.__touchData=n,!h.interactiveChildren)))break}}},PIXI.InteractionManager.prototype.onTouchEnd=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.touchs[s.identifier],a=!1;n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var u=this.interactiveItems[h],d=u.__touchData;u.__hit=this.hitTest(u,n),d==n&&((u.touchend||u.tap)&&(u.__hit&&!a?(u.touchend&&u.touchend(n),u.__isDown&&u.tap&&u.tap(n),u.interactiveChildren||(a=!0)):u.__isDown&&u.touchendoutside&&u.touchendoutside(n),u.__isDown=!1),u.__touchData=null)}this.pool.push(n),this.touchs[s.identifier]=null}},PIXI.InteractionData=function(){this.global=new PIXI.Point,this.local=new PIXI.Point,this.target},PIXI.InteractionData.prototype.getLocalPosition=function(t){var e=t.worldTransform,i=this.global,r=e[0],s=e[1],n=e[2],a=e[3],o=e[4],h=e[5],u=1/(r*o+s*-a);return new PIXI.Point(o*u*i.x+-s*u*i.y+(h*s-n*o)*u,r*u*i.y+-a*u*i.x+(-h*r+n*a)*u)},PIXI.InteractionData.constructor=PIXI.InteractionData,PIXI.Stage=function(t,e){PIXI.DisplayObjectContainer.call(this),this.worldTransform=PIXI.mat3.create(),this.__childrenAdded=[],this.__childrenRemoved=[],this.childIndex=0,this.stage=this,this.stage.hitArea=new PIXI.Rectangle(0,0,1e5,1e5),this.interactive=!!e,this.interactionManager=new PIXI.InteractionManager(this),this.setBackgroundColor(t),this.worldVisible=!0},PIXI.Stage.constructor=PIXI.Stage,PIXI.Stage.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Stage.prototype.updateTransform=function(){this.worldAlpha=1;for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform();this.dirty&&(this.dirty=!1,this.interactionManager.dirty=!0),this.interactive&&this.interactionManager.update()},PIXI.Stage.prototype.setBackgroundColor=function(t){this.backgroundColor=t||0,this.backgroundColorSplit=HEXtoRGB(this.backgroundColor),this.backgroundColorString="#"+this.backgroundColor.toString(16)},PIXI.Stage.prototype.getMousePosition=function(){return this.interactionManager.mouse.global},PIXI.Stage.prototype.__addChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=this,t.children)for(var e=0;t.children.length>e;e++)this.__addChild(t.children[e])},PIXI.Stage.prototype.__removeChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=void 0,t.children)for(var e=0,i=t.children.length;i>e;e++)this.__removeChild(t.children[e])},window.requestAnimFrame=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(t){window.setTimeout(t,1e3/60)}}(),"function"!=typeof Function.prototype.bind&&(Function.prototype.bind=function(){var t=Array.prototype.slice;return function(e){function i(){var n=s.concat(t.call(arguments));r.apply(this instanceof i?this:e,n)}var r=this,s=t.call(arguments,1);if("function"!=typeof r)throw new TypeError;return i.prototype=function n(t){return t&&(n.prototype=t),this instanceof n?void 0:new n}(r.prototype),i}}());var AjaxRequest=function(){var t=["Msxml2.XMLHTTP","Microsoft.XMLHTTP"];if(!window.ActiveXObject)return window.XMLHttpRequest?new XMLHttpRequest:!1;for(var e=0;t.length>e;e++)try{return new ActiveXObject(t[e])}catch(i){}};PIXI.EventTarget=function(){var t={};this.addEventListener=this.on=function(e,i){void 0===t[e]&&(t[e]=[]),-1===t[e].indexOf(i)&&t[e].push(i)},this.dispatchEvent=this.emit=function(e){for(var i in t[e.type])t[e.type][i](e)},this.removeEventListener=this.off=function(e,i){var r=t[e].indexOf(i);-1!==r&&t[e].splice(r,1)}},determineMatrixArrayType(),PIXI.mat3={},PIXI.mat3.create=function(){var t=new PIXI.Matrix(9);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},PIXI.mat4={},PIXI.mat4.create=function(){var t=new PIXI.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},PIXI.mat3.multiply=function(t,e,i){i||(i=t);var r=t[0],s=t[1],n=t[2],a=t[3],o=t[4],h=t[5],u=t[6],d=t[7],c=t[8],l=e[0],I=e[1],p=e[2],f=e[3],x=e[4],v=e[5],P=e[6],g=e[7],b=e[8];return i[0]=l*r+I*a+p*u,i[1]=l*s+I*o+p*d,i[2]=l*n+I*h+p*c,i[3]=f*r+x*a+v*u,i[4]=f*s+x*o+v*d,i[5]=f*n+x*h+v*c,i[6]=P*r+g*a+b*u,i[7]=P*s+g*o+b*d,i[8]=P*n+g*h+b*c,i},PIXI.mat3.toMat4=function(t,e){return e||(e=PIXI.mat4.create()),e[15]=1,e[14]=0,e[13]=0,e[12]=0,e[11]=0,e[10]=t[8],e[9]=t[7],e[8]=t[6],e[7]=0,e[6]=t[5],e[5]=t[4],e[4]=t[3],e[3]=0,e[2]=t[2],e[1]=t[1],e[0]=t[0],e},PIXI.mat4.create=function(){var t=new PIXI.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},PIXI.mat4.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],s=t[3],n=t[6],a=t[7],o=t[11];return t[1]=t[4],t[2]=t[8],t[3]=t[12],t[4]=i,t[6]=t[9],t[7]=t[13],t[8]=r,t[9]=n,t[11]=t[14],t[12]=s,t[13]=a,t[14]=o,t}return e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=t[1],e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=t[2],e[9]=t[6],e[10]=t[10],e[11]=t[14],e[12]=t[3],e[13]=t[7],e[14]=t[11],e[15]=t[15],e},PIXI.mat4.multiply=function(t,e,i){i||(i=t);var r=t[0],s=t[1],n=t[2],a=t[3],o=t[4],h=t[5],u=t[6],d=t[7],c=t[8],l=t[9],I=t[10],p=t[11],f=t[12],x=t[13],v=t[14],P=t[15],g=e[0],b=e[1],X=e[2],m=e[3];return i[0]=g*r+b*o+X*c+m*f,i[1]=g*s+b*h+X*l+m*x,i[2]=g*n+b*u+X*I+m*v,i[3]=g*a+b*d+X*p+m*P,g=e[4],b=e[5],X=e[6],m=e[7],i[4]=g*r+b*o+X*c+m*f,i[5]=g*s+b*h+X*l+m*x,i[6]=g*n+b*u+X*I+m*v,i[7]=g*a+b*d+X*p+m*P,g=e[8],b=e[9],X=e[10],m=e[11],i[8]=g*r+b*o+X*c+m*f,i[9]=g*s+b*h+X*l+m*x,i[10]=g*n+b*u+X*I+m*v,i[11]=g*a+b*d+X*p+m*P,g=e[12],b=e[13],X=e[14],m=e[15],i[12]=g*r+b*o+X*c+m*f,i[13]=g*s+b*h+X*l+m*x,i[14]=g*n+b*u+X*I+m*v,i[15]=g*a+b*d+X*p+m*P,i},PIXI.autoDetectRenderer=function(t,e,i,r){t||(t=800),e||(e=600);var s=function(){try{return!!window.WebGLRenderingContext&&!!document.createElement("canvas").getContext("experimental-webgl")}catch(t){return!1}}();return s?new PIXI.WebGLRenderer(t,e,i,r):new PIXI.CanvasRenderer(t,e,i,r)},PIXI.shaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * vColor;","}"],PIXI.shaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform mat4 uMVMatrix;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","gl_Position = uMVMatrix * vec4(aVertexPosition, 1.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],PIXI.CompileVertexShader=function(t,e){return PIXI._CompileShader(t,e,t.VERTEX_SHADER)},PIXI.CompileFragmentShader=function(t,e){return PIXI._CompileShader(t,e,t.FRAGMENT_SHADER)},PIXI._CompileShader=function(t,e,i){var r=e.join("\n"),s=t.createShader(i);return t.shaderSource(s,r),t.compileShader(s),t.getShaderParameter(s,t.COMPILE_STATUS)?s:(alert(t.getShaderInfoLog(s)),null)},PIXI._defaultFrame=new PIXI.Rectangle(0,0,1,1),PIXI.gl,PIXI.WebGLRenderer=function(t,e,i,r){this.transparent=!!r,this.width=t||800,this.height=e||600,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height;var s=this;this.view.addEventListener("webglcontextlost",function(t){s.handleContextLost(t)},!1),this.view.addEventListener("webglcontextrestored",function(t){s.handleContextRestored(t)},!1),this.batchs=[];try{PIXI.gl=this.gl=this.view.getContext("experimental-webgl",{alpha:this.transparent,antialias:!1,premultipliedAlpha:!0})}catch(n){throw Error(" This browser does not support webGL. Try using the canvas renderer"+this)}this.initShaders();var a=this.gl;PIXI.WebGLRenderer.gl=a,this.batch=new PIXI.WebGLBatch(a),a.disable(a.DEPTH_TEST),a.disable(a.CULL_FACE),a.enable(a.BLEND),a.colorMask(!0,!0,!0,this.transparent),this.projectionMatrix=PIXI.mat4.create(),this.resize(this.width,this.height),this.contextLost=!1,this.stageRenderGroup=new PIXI.WebGLRenderGroup(this.gl)},PIXI.WebGLRenderer.constructor=PIXI.WebGLRenderer,PIXI.WebGLRenderer.getBatch=function(){return 0==PIXI._batchs.length?new PIXI.WebGLBatch(PIXI.WebGLRenderer.gl):PIXI._batchs.pop()},PIXI.WebGLRenderer.returnBatch=function(t){t.clean(),PIXI._batchs.push(t)},PIXI.WebGLRenderer.prototype.initShaders=function(){var t=this.gl,e=PIXI.CompileFragmentShader(t,PIXI.shaderFragmentSrc),i=PIXI.CompileVertexShader(t,PIXI.shaderVertexSrc);PIXI.shaderProgram=t.createProgram();var r=PIXI.shaderProgram;t.attachShader(r,i),t.attachShader(r,e),t.linkProgram(r),t.getProgramParameter(r,t.LINK_STATUS)||alert("Could not initialise shaders"),t.useProgram(r),r.vertexPositionAttribute=t.getAttribLocation(r,"aVertexPosition"),t.enableVertexAttribArray(r.vertexPositionAttribute),r.textureCoordAttribute=t.getAttribLocation(r,"aTextureCoord"),t.enableVertexAttribArray(r.textureCoordAttribute),r.colorAttribute=t.getAttribLocation(r,"aColor"),t.enableVertexAttribArray(r.colorAttribute),r.mvMatrixUniform=t.getUniformLocation(r,"uMVMatrix"),r.samplerUniform=t.getUniformLocation(r,"uSampler")},PIXI.WebGLRenderer.prototype.render=function(t){if(!this.contextLost){this.__stage!==t&&(this.__stage=t,this.stageRenderGroup.setRenderable(t)),PIXI.WebGLRenderer.updateTextures(),t.updateTransform();var e=this.gl;if(e.colorMask(!0,!0,!0,this.transparent),e.viewport(0,0,this.width,this.height),e.bindFramebuffer(e.FRAMEBUFFER,null),e.clearColor(t.backgroundColorSplit[0],t.backgroundColorSplit[1],t.backgroundColorSplit[2],this.transparent),e.clear(e.COLOR_BUFFER_BIT),this.stageRenderGroup.backgroundColor=t.backgroundColorSplit,this.stageRenderGroup.render(this.projectionMatrix),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),PIXI.Texture.frameUpdates.length>0){for(var i=0;PIXI.Texture.frameUpdates.length>i;i++)PIXI.Texture.frameUpdates[i].updateFrame=!1;PIXI.Texture.frameUpdates=[]}}},PIXI.WebGLRenderer.updateTextures=function(){for(var t=0;PIXI.texturesToUpdate.length>t;t++)this.updateTexture(PIXI.texturesToUpdate[t]);for(var t=0;PIXI.texturesToDestroy.length>t;t++)this.destroyTexture(PIXI.texturesToDestroy[t]);PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[]},PIXI.WebGLRenderer.updateTexture=function(t){var e=PIXI.gl;t._glTexture||(t._glTexture=e.createTexture()),t.hasLoaded&&(e.bindTexture(e.TEXTURE_2D,t._glTexture),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t.source),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),t._powerOf2?(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT)):(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)),e.bindTexture(e.TEXTURE_2D,null))},PIXI.WebGLRenderer.prototype.destroyTexture=function(t){var e=this.gl;t._glTexture&&(t._glTexture=e.createTexture(),e.deleteTexture(e.TEXTURE_2D,t._glTexture))},PIXI.WebGLRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e,this.gl.viewport(0,0,this.width,this.height);var i=this.projectionMatrix;i[0]=2/this.width,i[5]=-2/this.height,i[12]=-1,i[13]=1},PIXI.WebGLRenderer.prototype.handleContextLost=function(t){t.preventDefault(),this.contextLost=!0},PIXI.WebGLRenderer.prototype.handleContextRestored=function(){this.gl=this.view.getContext("experimental-webgl",{alpha:!0}),this.initShaders();for(var t=0;PIXI.TextureCache.length>t;t++)this.updateTexture(PIXI.TextureCache[t]);for(var t=0;this.batchs.length>t;t++)this.batchs[t].restoreLostContext(this.gl),this.batchs[t].dirty=!0;PIXI._restoreBatchs(this.gl),this.contextLost=!1},PIXI._batchs=[],PIXI._getBatch=function(t){return 0==PIXI._batchs.length?new PIXI.WebGLBatch(t):PIXI._batchs.pop()},PIXI._returnBatch=function(t){t.clean(),PIXI._batchs.push(t)},PIXI._restoreBatchs=function(t){for(var e=0;PIXI._batchs.length>e;e++)PIXI._batchs[e].restoreLostContext(t)},PIXI.WebGLBatch=function(t){this.gl=t,this.size=0,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer(),this.blendMode=PIXI.blendModes.NORMAL,this.dynamicSize=1},PIXI.WebGLBatch.constructor=PIXI.WebGLBatch,PIXI.WebGLBatch.prototype.clean=function(){this.verticies=[],this.uvs=[],this.indices=[],this.colors=[],this.dynamicSize=1,this.texture=null,this.last=null,this.size=0,this.head,this.tail},PIXI.WebGLBatch.prototype.restoreLostContext=function(t){this.gl=t,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer()},PIXI.WebGLBatch.prototype.init=function(t){t.batch=this,this.dirty=!0,this.blendMode=t.blendMode,this.texture=t.texture.baseTexture,this.head=t,this.tail=t,this.size=1,this.growBatch()},PIXI.WebGLBatch.prototype.insertBefore=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__prev;e.__prev=t,t.__next=e,i?(t.__prev=i,i.__next=t):this.head=t},PIXI.WebGLBatch.prototype.insertAfter=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__next;e.__next=t,t.__prev=e,i?(t.__next=i,i.__prev=t):this.tail=t},PIXI.WebGLBatch.prototype.remove=function(t){return this.size--,0==this.size?(t.batch=null,t.__prev=null,t.__next=null,void 0):(t.__prev?t.__prev.__next=t.__next:(this.head=t.__next,this.head.__prev=null),t.__next?t.__next.__prev=t.__prev:(this.tail=t.__prev,this.tail.__next=null),t.batch=null,t.__next=null,t.__prev=null,this.dirty=!0,void 0)},PIXI.WebGLBatch.prototype.split=function(t){this.dirty=!0;var e=new PIXI.WebGLBatch(this.gl);e.init(t),e.tail=this.tail,this.tail=t.__prev,this.tail.__next=null,t.__prev=null;for(var i=0;t;)i++,t.batch=e,t=t.__next;return e.size=i,this.size-=i,e},PIXI.WebGLBatch.prototype.merge=function(t){this.dirty=!0,this.tail.__next=t.head,t.head.__prev=this.tail,this.size+=t.size,this.tail=t.tail;for(var e=t.head;e;)e.batch=this,e=e.__next},PIXI.WebGLBatch.prototype.growBatch=function(){var t=this.gl;this.dynamicSize=1==this.size?1:1.5*this.size,this.verticies=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.vertexBuffer),t.bufferData(t.ARRAY_BUFFER,this.verticies,t.DYNAMIC_DRAW),this.uvs=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.uvBuffer),t.bufferData(t.ARRAY_BUFFER,this.uvs,t.DYNAMIC_DRAW),this.dirtyUVS=!0,this.colors=new Float32Array(4*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.colorBuffer),t.bufferData(t.ARRAY_BUFFER,this.colors,t.DYNAMIC_DRAW),this.dirtyColors=!0,this.indices=new Uint16Array(6*this.dynamicSize);for(var e=this.indices.length/6,i=0;e>i;i++){var r=6*i,s=4*i;this.indices[r+0]=s+0,this.indices[r+1]=s+1,this.indices[r+2]=s+2,this.indices[r+3]=s+0,this.indices[r+4]=s+2,this.indices[r+5]=s+3}t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,this.indexBuffer),t.bufferData(t.ELEMENT_ARRAY_BUFFER,this.indices,t.STATIC_DRAW)},PIXI.WebGLBatch.prototype.refresh=function(){this.gl,this.dynamicSizer;r++)i=this.batchs[r],i instanceof PIXI.WebGLBatch?this.batchs[r].render():i instanceof PIXI.TilingSprite?i.visible&&this.renderTilingSprite(i,t):i instanceof PIXI.Strip&&i.visible&&this.renderStrip(i,t)},PIXI.WebGLRenderGroup.prototype.renderSpecific=function(t,e){PIXI.WebGLRenderer.updateTextures();var i=this.gl;this.checkVisibility(t,t.visible),i.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform,!1,e);var r,s,n,a,o=t.renderable?t:this.getNextRenderable(t),h=o.batch;if(o instanceof PIXI.Sprite){h=o.batch;var u=h.head;if(u==o)r=0;else for(r=1;u.__next!=o;)r++,u=u.__next}else h=o;for(var d,c=t,l=t;l.children.length>0;)l=l.children[l.children.length-1],l.renderable&&(c=l);if(c instanceof PIXI.Sprite){d=c.batch;var u=d.head;if(u==c)n=0;else for(n=1;u.__next!=c;)n++,u=u.__next}else d=c;if(h==d)return h instanceof PIXI.WebGLBatch?h.render(r,n+1):h instanceof PIXI.TilingSprite?h.visible&&this.renderTilingSprite(h,e):h instanceof PIXI.Strip?h.visible&&this.renderStrip(h,e):h instanceof PIXI.CustomRenderable&&h.visible&&h.renderWebGL(this,e),void 0;s=this.batchs.indexOf(h),a=this.batchs.indexOf(d),h instanceof PIXI.WebGLBatch?h.render(r):h instanceof PIXI.TilingSprite?h.visible&&this.renderTilingSprite(h,e):h instanceof PIXI.Strip?h.visible&&this.renderStrip(h,e):h instanceof PIXI.CustomRenderable&&h.visible&&h.renderWebGL(this,e);for(var I=s+1;a>I;I++)renderable=this.batchs[I],renderable instanceof PIXI.WebGLBatch?this.batchs[I].render():renderable instanceof PIXI.TilingSprite?renderable.visible&&this.renderTilingSprite(renderable,e):renderable instanceof PIXI.Strip?renderable.visible&&this.renderStrip(renderable,e):renderable instanceof PIXI.CustomRenderable&&renderable.visible&&renderable.renderWebGL(this,e);d instanceof PIXI.WebGLBatch?d.render(0,n+1):d instanceof PIXI.TilingSprite?d.visible&&this.renderTilingSprite(d):d instanceof PIXI.Strip?d.visible&&this.renderStrip(d):d instanceof PIXI.CustomRenderable&&d.visible&&d.renderWebGL(this,e)},PIXI.WebGLRenderGroup.prototype.checkVisibility=function(t,e){for(var i=t.children,r=0;i.length>r;r++){var s=i[r];s.worldVisible=s.visible&&e,s.textureChange&&(s.textureChange=!1,s.worldVisible&&(this.removeDisplayObject(s),this.addDisplayObject(s))),s.children.length>0&&this.checkVisibility(s,s.worldVisible)}},PIXI.WebGLRenderGroup.prototype.addDisplayObject=function(t){if(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.__renderGroup=this,t.renderable){var e=this.getPreviousRenderable(t),i=this.getNextRenderable(t);if(t instanceof PIXI.Sprite){var r,s;if(e instanceof PIXI.Sprite){if(r=e.batch,r&&r.texture==t.texture.baseTexture&&r.blendMode==t.blendMode)return r.insertAfter(t,e),void 0}else r=e;if(i)if(i instanceof PIXI.Sprite){if(s=i.batch){if(s.texture==t.texture.baseTexture&&s.blendMode==t.blendMode)return s.insertBefore(t,i),void 0;if(s==r){var n=r.split(i),a=PIXI.WebGLRenderer.getBatch(),o=this.batchs.indexOf(r);return a.init(t),this.batchs.splice(o+1,0,a,n),void 0}}}else s=i;var a=PIXI.WebGLRenderer.getBatch();if(a.init(t),r){var o=this.batchs.indexOf(r);this.batchs.splice(o+1,0,a)}else this.batchs.push(a)}else t instanceof PIXI.TilingSprite?(this.initTilingSprite(t),this.batchs.push(t)):t instanceof PIXI.Strip&&(this.initStrip(t),this.batchs.push(t));this.batchUpdate=!0}},PIXI.WebGLRenderGroup.prototype.addDisplayObjectAndChildren=function(t){this.addDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.addDisplayObjectAndChildren(e[i])},PIXI.WebGLRenderGroup.prototype.removeDisplayObject=function(t){if(t.__renderGroup=null,t.renderable){var e;if(t instanceof PIXI.Sprite){var i=t.batch;if(!i)return;i.remove(t),0==i.size&&(e=i)}else e=t;if(e){var r=this.batchs.indexOf(e);if(-1==r)return;if(0==r||r==this.batchs.length-1)return this.batchs.splice(r,1),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e),void 0;if(this.batchs[r-1]instanceof PIXI.WebGLBatch&&this.batchs[r+1]instanceof PIXI.WebGLBatch&&this.batchs[r-1].texture==this.batchs[r+1].texture&&this.batchs[r-1].blendMode==this.batchs[r+1].blendMode)return this.batchs[r-1].merge(this.batchs[r+1]),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e),PIXI.WebGLRenderer.returnBatch(this.batchs[r+1]),this.batchs.splice(r,2),void 0;this.batchs.splice(r,1),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e)}}},PIXI.WebGLRenderGroup.prototype.removeDisplayObjectAndChildren=function(t){if(t.__renderGroup==this){this.removeDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.removeDisplayObjectAndChildren(e[i])}},PIXI.WebGLRenderGroup.prototype.getNextRenderable=function(t){var e=t;do{if(0==e.children.length){if(!e.parent)return null;for(;e.childIndex==e.parent.children.length-1;)if(e=e.parent,e==this.root||!e.parent){e=null;break}e&&(e=e.parent.children[e.childIndex+1])}else e=e.children[0];if(!e)break}while(!e.renderable||!e.__renderGroup);return e},PIXI.WebGLRenderGroup.prototype.getPreviousRenderable=function(t){var e=t;do{if(0==e.childIndex){if(e=e.parent,!e)return null}else for(e=e.parent.children[e.childIndex-1];0!=e.children.length;)e=e.children[e.children.length-1];if(e==this.root)break}while(!e.renderable||!e.__renderGroup);return e},PIXI.WebGLRenderGroup.prototype.initTilingSprite=function(t){var e=this.gl;t.verticies=new Float32Array([0,0,t.width,0,t.width,t.height,0,t.height]),t.uvs=new Float32Array([0,0,1,0,1,1,0,1]),t.colors=new Float32Array([1,1,1,1]),t.indices=new Uint16Array([0,1,3,2]),t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW),t.texture.baseTexture._glTexture?(e.bindTexture(e.TEXTURE_2D,t.texture.baseTexture._glTexture),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT),t.texture.baseTexture._powerOf2=!0):t.texture.baseTexture._powerOf2=!0},PIXI.WebGLRenderGroup.prototype.renderStrip=function(t,e){var i=this.gl,r=PIXI.shaderProgram,s=PIXI.mat3.toMat4(t.worldTransform);PIXI.mat4.transpose(s),PIXI.mat4.multiply(e,s,s),i.uniformMatrix4fv(r.mvMatrixUniform,!1,s),t.blendMode==PIXI.blendModes.NORMAL?i.blendFunc(i.ONE,i.ONE_MINUS_SRC_ALPHA):i.blendFunc(i.ONE,i.ONE_MINUS_SRC_COLOR),t.dirty?(t.dirty=!1,i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferData(i.ARRAY_BUFFER,t.verticies,i.STATIC_DRAW),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferData(i.ARRAY_BUFFER,t.uvs,i.STATIC_DRAW),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.bufferData(i.ARRAY_BUFFER,t.colors,i.STATIC_DRAW),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer),i.bufferData(i.ELEMENT_ARRAY_BUFFER,t.indices,i.STATIC_DRAW)):(i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.verticies),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer)),i.drawElements(i.TRIANGLE_STRIP,t.indices.length,i.UNSIGNED_SHORT,0),i.uniformMatrix4fv(r.mvMatrixUniform,!1,e)},PIXI.WebGLRenderGroup.prototype.renderTilingSprite=function(t,e){var i=this.gl;PIXI.shaderProgram;var r=t.tilePosition,s=t.tileScale,n=r.x/t.texture.baseTexture.width,a=r.y/t.texture.baseTexture.height,o=t.width/t.texture.baseTexture.width/s.x,h=t.height/t.texture.baseTexture.height/s.y;t.uvs[0]=0-n,t.uvs[1]=0-a,t.uvs[2]=1*o-n,t.uvs[3]=0-a,t.uvs[4]=1*o-n,t.uvs[5]=1*h-a,t.uvs[6]=0-n,t.uvs[7]=1*h-a,i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.uvs),this.renderStrip(t,e)},PIXI.WebGLRenderer.prototype.initStrip=function(t){var e=this.gl;this.shaderProgram,t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW)},PIXI.CanvasRenderer=function(t,e,i,r){this.transparent=r,this.width=t||800,this.height=e||600,this.refresh=!0,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height,this.count=0,this.context=this.view.getContext("2d")},PIXI.CanvasRenderer.constructor=PIXI.CanvasRenderer,PIXI.CanvasRenderer.prototype.render=function(t){PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[],t.updateTransform(),this.view.style.backgroundColor==t.backgroundColorString||this.transparent||(this.view.style.backgroundColor=t.backgroundColorString),this.context.setTransform(1,0,0,1,0,0),this.context.clearRect(0,0,this.width,this.height),this.renderDisplayObject(t),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),PIXI.Texture.frameUpdates.length>0&&(PIXI.Texture.frameUpdates=[])},PIXI.CanvasRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e},PIXI.CanvasRenderer.prototype.renderDisplayObject=function(t){var e=t.worldTransform,i=this.context;if(t.visible){if(t instanceof PIXI.Sprite){var r=t.texture.frame;r&&(i.globalAlpha=t.worldAlpha,i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),i.drawImage(t.texture.baseTexture.source,r.x,r.y,r.width,r.height,t.anchor.x*-r.width,t.anchor.y*-r.height,r.width,r.height))}else t instanceof PIXI.Strip?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderStrip(t)):t instanceof PIXI.TilingSprite?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderTilingSprite(t)):t instanceof PIXI.CustomRenderable&&t.renderCanvas(this);for(var s=0;t.children.length>s;s++)this.renderDisplayObject(t.children[s]);this.context.setTransform(1,0,0,1,0,0)}},PIXI.CanvasRenderer.prototype.renderStripFlat=function(t){var e=this.context,i=t.verticies;t.uvs;var r=i.length/2;this.count++,e.beginPath();for(var s=1;r-2>s;s++){var n=2*s,a=i[n],o=i[n+2],h=i[n+4],u=i[n+1],d=i[n+3],c=i[n+5];e.moveTo(a,u),e.lineTo(o,d),e.lineTo(h,c)}e.fillStyle="#FF0000",e.fill(),e.closePath()},PIXI.CanvasRenderer.prototype.renderTilingSprite=function(t){var e=this.context;t.__tilePattern||(t.__tilePattern=e.createPattern(t.texture.baseTexture.source,"repeat")),e.beginPath();var i=t.tilePosition,r=t.tileScale;e.scale(r.x,r.y),e.translate(i.x,i.y),e.fillStyle=t.__tilePattern,e.fillRect(-i.x,-i.y,t.width/r.x,t.height/r.y),e.scale(1/r.x,1/r.y),e.translate(-i.x,-i.y),e.closePath()},PIXI.CanvasRenderer.prototype.renderStrip=function(t){var e=this.context,i=t.verticies,r=t.uvs,s=i.length/2;this.count++;for(var n=1;s-2>n;n++){var a=2*n,o=i[a],h=i[a+2],u=i[a+4],d=i[a+1],c=i[a+3],l=i[a+5],I=r[a]*t.texture.width,p=r[a+2]*t.texture.width,f=r[a+4]*t.texture.width,x=r[a+1]*t.texture.height,v=r[a+3]*t.texture.height,P=r[a+5]*t.texture.height;e.save(),e.beginPath(),e.moveTo(o,d),e.lineTo(h,c),e.lineTo(u,l),e.closePath(),e.clip();var g=I*v+x*f+p*P-v*f-x*p-I*P,b=o*v+x*u+h*P-v*u-x*h-o*P,X=I*h+o*f+p*u-h*f-o*p-I*u,m=I*v*u+x*h*f+o*p*P-o*v*f-x*p*u-I*h*P,T=d*v+x*l+c*P-v*l-x*c-d*P,y=I*c+d*f+p*l-c*f-d*p-I*l,_=I*v*l+x*c*f+d*p*P-d*v*f-x*p*l-I*c*P;e.transform(b/g,T/g,X/g,y/g,m/g,_/g),e.drawImage(t.texture.baseTexture.source,0,0),e.restore()}},PIXI.Strip=function(t,e,i){PIXI.DisplayObjectContainer.call(this),this.texture=t,this.blendMode=PIXI.blendModes.NORMAL;try{this.uvs=new Float32Array([0,1,1,1,1,0,0,1]),this.verticies=new Float32Array([0,0,0,0,0,0,0,0,0]),this.colors=new Float32Array([1,1,1,1]),this.indices=new Uint16Array([0,1,2,3])}catch(r){this.uvs=[0,1,1,1,1,0,0,1],this.verticies=[0,0,0,0,0,0,0,0,0],this.colors=[1,1,1,1],this.indices=[0,1,2,3]}this.width=e,this.height=i,t.baseTexture.hasLoaded?(this.width=this.texture.frame.width,this.height=this.texture.frame.height,this.updateFrame=!0):(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},PIXI.Strip.constructor=PIXI.Strip,PIXI.Strip.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Strip.prototype.setTexture=function(t){this.texture=t,this.width=t.frame.width,this.height=t.frame.height,this.updateFrame=!0},PIXI.Strip.prototype.onTextureUpdate=function(){this.updateFrame=!0},PIXI.Rope=function(t,e){PIXI.Strip.call(this,t),this.points=e;try{this.verticies=new Float32Array(4*e.length),this.uvs=new Float32Array(4*e.length),this.colors=new Float32Array(2*e.length),this.indices=new Uint16Array(2*e.length)}catch(i){this.verticies=verticies,this.uvs=uvs,this.colors=colors,this.indices=indices}this.refresh()},PIXI.Rope.constructor=PIXI.Rope,PIXI.Rope.prototype=Object.create(PIXI.Strip.prototype),PIXI.Rope.prototype.refresh=function(){var t=this.points;if(!(1>t.length)){var e=this.uvs,i=this.indices,r=this.colors,s=t[0],n=t[0];this.count-=.2,e[0]=0,e[1]=1,e[2]=0,e[3]=1,r[0]=1,r[1]=1,i[0]=0,i[1]=1;for(var a=t.length,o=1;a>o;o++){var n=t[o],h=4*o,u=o/(a-1);o%2?(e[h]=u,e[h+1]=0,e[h+2]=u,e[h+3]=1):(e[h]=u,e[h+1]=0,e[h+2]=u,e[h+3]=1),h=2*o,r[h]=1,r[h+1]=1,h=2*o,i[h]=h,i[h+1]=h+1,s=n}}},PIXI.Rope.prototype.updateTransform=function(){var t=this.points;if(!(1>t.length)){var e,i=this.verticies,r=t[0],s={x:0,y:0},n=t[0];this.count-=.2,i[0]=n.x+s.x,i[1]=n.y+s.y,i[2]=n.x-s.x,i[3]=n.y-s.y;for(var a=t.length,o=1;a>o;o++){var n=t[o],h=4*o;e=t.length-1>o?t[o+1]:n,s.y=-(e.x-r.x),s.x=e.y-r.y;var u=10*(1-o/(a-1));u>1&&(u=1);var d=Math.sqrt(s.x*s.x+s.y*s.y),c=this.texture.height/2;s.x/=d,s.y/=d,s.x*=c,s.y*=c,i[h]=n.x+s.x,i[h+1]=n.y+s.y,i[h+2]=n.x-s.x,i[h+3]=n.y-s.y,r=n}PIXI.DisplayObjectContainer.prototype.updateTransform.call(this)}},PIXI.Rope.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0},PIXI.TilingSprite=function(t,e,i){PIXI.DisplayObjectContainer.call(this),this.texture=t,this.width=e,this.height=i,this.renderable=!0,this.tileScale=new PIXI.Point(1,1),this.tilePosition=new PIXI.Point(0,0),this.blendMode=PIXI.blendModes.NORMAL},PIXI.TilingSprite.constructor=PIXI.TilingSprite,PIXI.TilingSprite.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.TilingSprite.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0},PIXI.TilingSprite.prototype.onTextureUpdate=function(){this.updateFrame=!0},PIXI.CustomRenderable=function(){PIXI.DisplayObject.call(this)},PIXI.CustomRenderable.constructor=PIXI.CustomRenderable,PIXI.CustomRenderable.prototype=Object.create(PIXI.DisplayObject.prototype),PIXI.CustomRenderable.prototype.renderCanvas=function(){},PIXI.CustomRenderable.prototype.initWebGL=function(){},PIXI.CustomRenderable.prototype.renderWebGL=function(){},PIXI.BaseTextureCache={},PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[],PIXI.BaseTexture=function(t){if(PIXI.EventTarget.call(this),this.width=100,this.height=100,this.source=t,t){if(this.source instanceof Image)if(this.source.complete)this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,PIXI.texturesToUpdate.push(this);else{var e=this;this.source.onload=function(){e.hasLoaded=!0,e.width=e.source.width,e.height=e.source.height,PIXI.texturesToUpdate.push(e),e.dispatchEvent({type:"loaded",content:e})}}else this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,PIXI.texturesToUpdate.push(this);this._powerOf2=!1}},PIXI.BaseTexture.constructor=PIXI.BaseTexture,PIXI.BaseTexture.prototype.destroy=function(){this.source instanceof Image&&(this.source.src=null),this.source=null,PIXI.texturesToDestroy.push(this)},PIXI.BaseTexture.fromImage=function(t,e){var i=PIXI.BaseTextureCache[t];if(!i){var r=new Image;e&&(r.crossOrigin=""),r.src=t,i=new PIXI.BaseTexture(r),PIXI.BaseTextureCache[t]=i}return i},PIXI.TextureCache={},PIXI.FrameCache={},PIXI.Texture=function(t,e){if(PIXI.EventTarget.call(this),e||(this.noFrame=!0,e=new PIXI.Rectangle(0,0,1,1)),this.trim=new PIXI.Point,t instanceof PIXI.Texture&&(t=t.baseTexture),this.baseTexture=t,this.frame=e,this.scope=this,t.hasLoaded)this.noFrame&&(e=new PIXI.Rectangle(0,0,t.width,t.height)),this.setFrame(e);else{var i=this;t.addEventListener("loaded",function(){i.onBaseTextureLoaded()})}},PIXI.Texture.constructor=PIXI.Texture,PIXI.Texture.prototype.onBaseTextureLoaded=function(){var t=this.baseTexture;t.removeEventListener("loaded",this.onLoaded),this.noFrame&&(this.frame=new PIXI.Rectangle(0,0,t.width,t.height)),this.noFrame=!1,this.width=this.frame.width,this.height=this.frame.height,this.scope.dispatchEvent({type:"update",content:this})},PIXI.Texture.prototype.destroy=function(t){t&&this.baseTexture.destroy()},PIXI.Texture.prototype.setFrame=function(t){if(this.frame=t,this.width=t.width,this.height=t.height,t.x+t.width>this.baseTexture.width||t.y+t.height>this.baseTexture.height)throw Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);this.updateFrame=!0,PIXI.Texture.frameUpdates.push(this)},PIXI.Texture.fromImage=function(t,e){var i=PIXI.TextureCache[t];return i||(i=new PIXI.Texture(PIXI.BaseTexture.fromImage(t,e)),PIXI.TextureCache[t]=i),i},PIXI.Texture.fromFrame=function(t){var e=PIXI.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache "+this);return e},PIXI.Texture.fromCanvas=function(t){var e=new PIXI.BaseTexture(t);return new PIXI.Texture(e)},PIXI.Texture.addTextureToCache=function(t,e){PIXI.TextureCache[e]=t},PIXI.Texture.removeTextureFromCache=function(t){var e=PIXI.TextureCache[t];return PIXI.TextureCache[t]=null,e},PIXI.Texture.frameUpdates=[],PIXI.RenderTexture=function(t,e){PIXI.EventTarget.call(this),this.width=t||100,this.height=e||100,this.indetityMatrix=PIXI.mat3.create(),this.frame=new PIXI.Rectangle(0,0,this.width,this.height),PIXI.gl?this.initWebGL():this.initCanvas()},PIXI.RenderTexture.constructor=PIXI.RenderTexture,PIXI.RenderTexture.prototype=Object.create(PIXI.Texture.prototype),PIXI.RenderTexture.prototype.initWebGL=function(){var t=PIXI.gl;this.glFramebuffer=t.createFramebuffer(),t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),this.glFramebuffer.width=this.width,this.glFramebuffer.height=this.height,this.baseTexture=new PIXI.BaseTexture,this.baseTexture.width=this.width,this.baseTexture.height=this.height,this.baseTexture._glTexture=t.createTexture(),t.bindTexture(t.TEXTURE_2D,this.baseTexture._glTexture),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,this.width,this.height,0,t.RGBA,t.UNSIGNED_BYTE,null),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),this.baseTexture.isRender=!0,t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,this.baseTexture._glTexture,0),this.projectionMatrix=PIXI.mat4.create(),this.projectionMatrix[5]=2/this.height,this.projectionMatrix[13]=-1,this.projectionMatrix[0]=2/this.width,this.projectionMatrix[12]=-1,this.render=this.renderWebGL},PIXI.RenderTexture.prototype.initCanvas=function(){this.renderer=new PIXI.CanvasRenderer(this.width,this.height,null,0),this.baseTexture=new PIXI.BaseTexture(this.renderer.view),this.frame=new PIXI.Rectangle(0,0,this.width,this.height),this.render=this.renderCanvas},PIXI.RenderTexture.prototype.renderWebGL=function(t,e){var i=PIXI.gl;i.colorMask(!0,!0,!0,!0),i.viewport(0,0,this.width,this.height),i.bindFramebuffer(i.FRAMEBUFFER,this.glFramebuffer),e&&(i.clearColor(0,0,0,0),i.clear(i.COLOR_BUFFER_BIT));var r=t.children;t.worldTransform=PIXI.mat3.create();for(var s=0,n=r.length;n>s;s++)r[s].updateTransform();var a=t.__renderGroup;a?t==a.root?a.render(this.projectionMatrix):a.renderSpecific(t,this.projectionMatrix):(this.renderGroup||(this.renderGroup=new PIXI.WebGLRenderGroup(i)),this.renderGroup.setRenderable(t),this.renderGroup.render(this.projectionMatrix))},PIXI.RenderTexture.prototype.renderCanvas=function(t,e){var i=t.children;t.worldTransform=PIXI.mat3.create();for(var r=0,s=i.length;s>r;r++)i[r].updateTransform();e&&this.renderer.context.clearRect(0,0,this.width,this.height),this.renderer.renderDisplayObject(t),PIXI.texturesToUpdate.push(this.baseTexture)},PIXI.AssetLoader=function(t){PIXI.EventTarget.call(this),this.assetURLs=t,this.crossorigin=!1,this.loadersByType={jpg:PIXI.ImageLoader,jpeg:PIXI.ImageLoader,png:PIXI.ImageLoader,gif:PIXI.ImageLoader,json:PIXI.SpriteSheetLoader,xml:PIXI.BitmapFontLoader,fnt:PIXI.BitmapFontLoader}},PIXI.AssetLoader.constructor=PIXI.AssetLoader,PIXI.AssetLoader.prototype.load=function(){var t=this;this.loadCount=this.assetURLs.length;for(var e=0;this.assetURLs.length>e;e++){var i=this.assetURLs[e],r=i.split(".").pop().toLowerCase(),s=this.loadersByType[r];if(!s)throw Error(r+" is an unsupported file type");var n=new s(i,this.crossorigin);n.addEventListener("loaded",function(){t.onAssetLoaded()}),n.load()}},PIXI.AssetLoader.prototype.onAssetLoaded=function(){this.loadCount--,this.dispatchEvent({type:"onProgress",content:this}),this.onProgress&&this.onProgress(),0==this.loadCount&&(this.dispatchEvent({type:"onComplete",content:this}),this.onComplete&&this.onComplete())},PIXI.SpriteSheetLoader=function(t,e){PIXI.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.frames={},this.crossorigin=e},PIXI.SpriteSheetLoader.constructor=PIXI.SpriteSheetLoader,PIXI.SpriteSheetLoader.prototype.load=function(){this.ajaxRequest=new AjaxRequest;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onJSONLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/json"),this.ajaxRequest.send(null)},PIXI.SpriteSheetLoader.prototype.onJSONLoaded=function(){if(4==this.ajaxRequest.readyState&&(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))){var jsonData=eval("("+this.ajaxRequest.responseText+")"),textureUrl=this.baseUrl+jsonData.meta.image,image=new PIXI.ImageLoader(textureUrl,this.crossorigin);this.texture=image.texture.baseTexture;var scope=this;image.addEventListener("loaded",function(){scope.onLoaded()});var frameData=jsonData.frames;for(var i in frameData){var rect=frameData[i].frame;rect&&(PIXI.TextureCache[i]=new PIXI.Texture(this.texture,{x:rect.x,y:rect.y,width:rect.w,height:rect.h}),frameData[i].trimmed&&(PIXI.TextureCache[i].realSize=frameData[i].spriteSourceSize,PIXI.TextureCache[i].trim.x=0))}image.load()}},PIXI.SpriteSheetLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},PIXI.ImageLoader=function(t,e){PIXI.EventTarget.call(this),this.texture=PIXI.Texture.fromImage(t,e)},PIXI.ImageLoader.constructor=PIXI.ImageLoader,PIXI.ImageLoader.prototype.load=function(){if(this.texture.baseTexture.hasLoaded)this.onLoaded();else{var t=this;this.texture.baseTexture.addEventListener("loaded",function(){t.onLoaded()})}},PIXI.ImageLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},PIXI.BitmapFontLoader=function(t,e){PIXI.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.crossorigin=e},PIXI.BitmapFontLoader.constructor=PIXI.BitmapFontLoader,PIXI.BitmapFontLoader.prototype.load=function(){this.ajaxRequest=new XMLHttpRequest;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onXMLLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/xml"),this.ajaxRequest.send(null)},PIXI.BitmapFontLoader.prototype.onXMLLoaded=function(){if(4==this.ajaxRequest.readyState&&(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))){var t=this.baseUrl+this.ajaxRequest.responseXML.getElementsByTagName("page")[0].attributes.getNamedItem("file").nodeValue,e=new PIXI.ImageLoader(t,this.crossorigin);this.texture=e.texture.baseTexture;var i={},r=this.ajaxRequest.responseXML.getElementsByTagName("info")[0],s=this.ajaxRequest.responseXML.getElementsByTagName("common")[0];i.font=r.attributes.getNamedItem("face").nodeValue,i.size=parseInt(r.attributes.getNamedItem("size").nodeValue,10),i.lineHeight=parseInt(s.attributes.getNamedItem("lineHeight").nodeValue,10),i.chars={};for(var n=this.ajaxRequest.responseXML.getElementsByTagName("char"),a=0;n.length>a;a++){var o=parseInt(n[a].attributes.getNamedItem("id").nodeValue,10),h={x:parseInt(n[a].attributes.getNamedItem("x").nodeValue,10),y:parseInt(n[a].attributes.getNamedItem("y").nodeValue,10),width:parseInt(n[a].attributes.getNamedItem("width").nodeValue,10),height:parseInt(n[a].attributes.getNamedItem("height").nodeValue,10)};PIXI.TextureCache[o]=new PIXI.Texture(this.texture,h),i.chars[o]={xOffset:parseInt(n[a].attributes.getNamedItem("xoffset").nodeValue,10),yOffset:parseInt(n[a].attributes.getNamedItem("yoffset").nodeValue,10),xAdvance:parseInt(n[a].attributes.getNamedItem("xadvance").nodeValue,10),kerning:{}}}var u=this.ajaxRequest.responseXML.getElementsByTagName("kerning");for(a=0;u.length>a;a++){var d=parseInt(u[a].attributes.getNamedItem("first").nodeValue,10),c=parseInt(u[a].attributes.getNamedItem("second").nodeValue,10),l=parseInt(u[a].attributes.getNamedItem("amount").nodeValue,10);i.chars[c].kerning[d]=l}PIXI.BitmapText.fonts[i.font]=i;var I=this;e.addEventListener("loaded",function(){I.onLoaded()}),e.load()}},PIXI.BitmapFontLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=PIXI),exports.PIXI=PIXI):root.PIXI=PIXI}).call(this); \ No newline at end of file diff --git a/docs/classes/WebGLRenderer.html b/docs/classes/WebGLRenderer.html index 581cb5a..fcef6b6 100644 --- a/docs/classes/WebGLRenderer.html +++ b/docs/classes/WebGLRenderer.html @@ -498,7 +498,7 @@ - src/pixi/renderers/WebGLRenderer.js:283 + src/pixi/renderers/WebGLRenderer.js:284

diff --git a/docs/data.json b/docs/data.json index 9b4a49d..4b27831 100644 --- a/docs/data.json +++ b/docs/data.json @@ -1388,35 +1388,35 @@ }, { "file": "src/pixi/renderers/WebGLRenderGroup.js", - "line": 523, + "line": 527, "access": "private", "tagname": "", "class": "WebGLBatch" }, { "file": "src/pixi/renderers/WebGLRenderGroup.js", - "line": 607, + "line": 613, "access": "private", "tagname": "", "class": "WebGLBatch" }, { "file": "src/pixi/renderers/WebGLRenderGroup.js", - "line": 663, + "line": 669, "access": "private", "tagname": "", "class": "WebGLBatch" }, { "file": "src/pixi/renderers/WebGLRenderGroup.js", - "line": 740, + "line": 746, "access": "private", "tagname": "", "class": "WebGLBatch" }, { "file": "src/pixi/renderers/WebGLRenderGroup.js", - "line": 777, + "line": 783, "access": "private", "tagname": "", "class": "WebGLBatch" @@ -1465,14 +1465,14 @@ }, { "file": "src/pixi/renderers/WebGLRenderer.js", - "line": 232, + "line": 225, "access": "private", "tagname": "", "class": "WebGLRenderer" }, { "file": "src/pixi/renderers/WebGLRenderer.js", - "line": 283, + "line": 284, "description": "resizes the webGL view to the specified width and height", "itemtype": "method", "name": "resize", @@ -1492,14 +1492,14 @@ }, { "file": "src/pixi/renderers/WebGLRenderer.js", - "line": 307, + "line": 308, "access": "private", "tagname": "", "class": "WebGLRenderer" }, { "file": "src/pixi/renderers/WebGLRenderer.js", - "line": 316, + "line": 317, "access": "private", "tagname": "", "class": "WebGLRenderer" @@ -2908,23 +2908,23 @@ }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderGroup.js:523" + "line": " src/pixi/renderers/WebGLRenderGroup.js:527" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderGroup.js:607" + "line": " src/pixi/renderers/WebGLRenderGroup.js:613" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderGroup.js:663" + "line": " src/pixi/renderers/WebGLRenderGroup.js:669" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderGroup.js:740" + "line": " src/pixi/renderers/WebGLRenderGroup.js:746" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderGroup.js:777" + "line": " src/pixi/renderers/WebGLRenderGroup.js:783" }, { "message": "Missing item type", @@ -2944,15 +2944,15 @@ }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderer.js:232" + "line": " src/pixi/renderers/WebGLRenderer.js:225" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderer.js:307" + "line": " src/pixi/renderers/WebGLRenderer.js:308" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderer.js:316" + "line": " src/pixi/renderers/WebGLRenderer.js:317" }, { "message": "Missing item type", diff --git a/bin/pixi.dev.js b/bin/pixi.dev.js index f29080a..3478cf4 100644 --- a/bin/pixi.dev.js +++ b/bin/pixi.dev.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/bin/pixi.js b/bin/pixi.js index 5f2a13c..a6d54d1 100644 --- a/bin/pixi.js +++ b/bin/pixi.js @@ -4,10 +4,10 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php */ -(function(){function HEXtoRGB(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}function determineMatrixArrayType(){return PIXI.Matrix="undefined"!=typeof Float32Array?Float32Array:Array,PIXI.Matrix}var root=this,PIXI=PIXI||{};PIXI.Point=function(t,e){this.x=t||0,this.y=e||0},PIXI.Point.prototype.clone=function(){return new PIXI.Point(this.x,this.y)},PIXI.Point.constructor=PIXI.Point,PIXI.Rectangle=function(t,e,i,r){this.x=t||0,this.y=e||0,this.width=i||0,this.height=r||0},PIXI.Rectangle.prototype.clone=function(){return new PIXI.Rectangle(this.x,this.y,this.width,this.height)},PIXI.Rectangle.constructor=PIXI.Rectangle,PIXI.DisplayObject=function(){this.position=new PIXI.Point,this.scale=new PIXI.Point(1,1),this.pivot=new PIXI.Point(0,0),this.rotation=0,this.alpha=1,this.visible=!0,this.worldVisible=!1,this.parent=null,this.stage=null,this.hitArea=null,this.worldAlpha=1,this.color=[],this.worldTransform=PIXI.mat3.create(),this.localTransform=PIXI.mat3.create(),this.dynamic=!0,this._sr=0,this._cr=1,this.childIndex=0,this.renderable=!1,this.interactive=!1,this.buttonMode=!1},PIXI.DisplayObject.constructor=PIXI.DisplayObject,PIXI.DisplayObject.prototype.setInteractive=function(t){this.interactive=t,this.stage&&(this.stage.dirty=!0)},PIXI.DisplayObject.prototype.updateTransform=function(){this.rotation!=this.rotationCache&&(this.rotationCache=this.rotation,this._sr=Math.sin(this.rotation),this._cr=Math.cos(this.rotation));var t=this.localTransform,e=this.parent.worldTransform,i=this.worldTransform;t[0]=this._cr*this.scale.x,t[1]=-this._sr*this.scale.y,t[3]=this._sr*this.scale.x,t[4]=this._cr*this.scale.y;var r=this.pivot.x,s=this.pivot.y;t[2]=this.position.x-t[0]*r-s*t[1],t[5]=this.position.y-t[4]*s-r*t[3];var n=t[0],a=t[1],o=t[2],h=t[3],u=t[4],c=t[5],d=e[0],l=e[1],I=e[2],p=e[3],f=e[4],x=e[5];i[0]=d*n+l*h,i[1]=d*a+l*u,i[2]=d*o+l*c+I,i[3]=p*n+f*h,i[4]=p*a+f*u,i[5]=p*o+f*c+x,this.worldAlpha=this.alpha*this.parent.worldAlpha},PIXI.DisplayObjectContainer=function(){PIXI.DisplayObject.call(this),this.children=[],this.renderable=!1},PIXI.DisplayObjectContainer.constructor=PIXI.DisplayObjectContainer,PIXI.DisplayObjectContainer.prototype=Object.create(PIXI.DisplayObject.prototype),PIXI.DisplayObjectContainer.prototype.addChild=function(t){void 0!=t.parent&&t.parent.removeChild(t),t.parent=this,t.childIndex=this.children.length,this.children.push(t),this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},PIXI.DisplayObjectContainer.prototype.addChildAt=function(t,e){if(!(e>=0&&this.children.length>=e))throw Error(t+" The index "+e+" supplied is out of bounds "+this.children.length);void 0!=t.parent&&t.parent.removeChild(t),e==this.children.length?this.children.push(t):this.children.splice(e,0,t),t.parent=this,t.childIndex=e;for(var i=this.children.length,r=e;i>r;r++)this.children[r].childIndex=r;this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},PIXI.DisplayObjectContainer.prototype.swapChildren=function(t,e){var i=this.children.indexOf(t),r=this.children.indexOf(e);if(-1===i||-1===r)throw Error(t+" Both the supplied DisplayObjects must be a child of the caller "+this);this.stage&&(this.stage.__removeChild(t),this.stage.__removeChild(e),this.stage.__addChild(t),this.stage.__addChild(e)),t.childIndex=r,e.childIndex=i,this.children[i]=e,this.children[r]=t},PIXI.DisplayObjectContainer.prototype.getChildAt=function(t){if(t>=0&&this.children.length>t)return this.children[t];throw Error(child+" Both the supplied DisplayObjects must be a child of the caller "+this)},PIXI.DisplayObjectContainer.prototype.removeChild=function(t){var e=this.children.indexOf(t);if(-1===e)throw Error(t+" The supplied DisplayObject must be a child of the caller "+this);this.stage&&this.stage.__removeChild(t),t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.parent=void 0,this.children.splice(e,1);for(var i=e,r=this.children.length;r>i;i++)this.children[i].childIndex-=1},PIXI.DisplayObjectContainer.prototype.updateTransform=function(){if(this.visible){PIXI.DisplayObject.prototype.updateTransform.call(this);for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform()}},PIXI.blendModes={},PIXI.blendModes.NORMAL=0,PIXI.blendModes.SCREEN=1,PIXI.Sprite=function(t){PIXI.DisplayObjectContainer.call(this),this.anchor=new PIXI.Point,this.texture=t,this.blendMode=PIXI.blendModes.NORMAL,this._width=0,this._height=0,t.baseTexture.hasLoaded?this.updateFrame=!0:(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},PIXI.Sprite.constructor=PIXI.Sprite,PIXI.Sprite.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),Object.defineProperty(PIXI.Sprite.prototype,"width",{get:function(){return this.scale.x*this.texture.frame.width},set:function(t){this.scale.x=t/this.texture.frame.width,this._width=t}}),Object.defineProperty(PIXI.Sprite.prototype,"height",{get:function(){return this.scale.y*this.texture.frame.height},set:function(t){this.scale.y=t/this.texture.frame.height,this._height=t}}),PIXI.Sprite.prototype.setTexture=function(t){this.texture.baseTexture!=t.baseTexture&&(this.textureChange=!0),this.texture=t,this.updateFrame=!0},PIXI.Sprite.prototype.onTextureUpdate=function(){this._width&&(this.scale.x=this._width/this.texture.frame.width),this._height&&(this.scale.y=this._height/this.texture.frame.height),this.updateFrame=!0},PIXI.Sprite.fromFrame=function(t){var e=PIXI.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache"+this);return new PIXI.Sprite(e)},PIXI.Sprite.fromImage=function(t){var e=PIXI.Texture.fromImage(t);return new PIXI.Sprite(e)},PIXI.MovieClip=function(t){PIXI.Sprite.call(this,t[0]),this.textures=t,this.currentFrame=0,this.animationSpeed=1,this.loop=!0,this.onComplete=null,this.playing},PIXI.MovieClip.constructor=PIXI.MovieClip,PIXI.MovieClip.prototype=Object.create(PIXI.Sprite.prototype),PIXI.MovieClip.prototype.stop=function(){this.playing=!1},PIXI.MovieClip.prototype.play=function(){this.playing=!0},PIXI.MovieClip.prototype.gotoAndStop=function(t){this.playing=!1,this.currentFrame=t;var e=0|this.currentFrame+.5;this.setTexture(this.textures[e%this.textures.length])},PIXI.MovieClip.prototype.gotoAndPlay=function(t){this.currentFrame=t,this.playing=!0},PIXI.MovieClip.prototype.updateTransform=function(){if(PIXI.Sprite.prototype.updateTransform.call(this),this.playing){this.currentFrame+=this.animationSpeed;var t=0|this.currentFrame+.5;this.loop||this.textures.length>t?this.setTexture(this.textures[t%this.textures.length]):t>=this.textures.length&&(this.gotoAndStop(this.textures.length-1),this.onComplete&&this.onComplete())}},PIXI.Text=function(t,e){this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"),PIXI.Sprite.call(this,PIXI.Texture.fromCanvas(this.canvas)),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},PIXI.Text.constructor=PIXI.Text,PIXI.Text.prototype=Object.create(PIXI.Sprite.prototype),PIXI.Text.prototype.setStyle=function(t){t=t||{},t.font=t.font||"bold 20pt Arial",t.fill=t.fill||"black",t.align=t.align||"left",t.strokeThickness=t.strokeThickness||0,this.style=t,this.dirty=!0},PIXI.Sprite.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},PIXI.Text.prototype.updateText=function(){this.context.font=this.style.font;for(var t=this.text.split(/(?:\r\n|\r|\n)/),e=[],i=0,r=0;t.length>r;r++){var s=this.context.measureText(t[r]).width;e[r]=s,i=Math.max(i,s)}this.canvas.width=i+this.style.strokeThickness;var n=this.determineFontHeight("font: "+this.style.font+";")+this.style.strokeThickness;for(this.canvas.height=n*t.length,this.context.fillStyle=this.style.fill,this.context.font=this.style.font,this.context.strokeStyle=this.style.stroke,this.context.lineWidth=this.style.strokeThickness,this.context.textBaseline="top",r=0;t.length>r;r++){var a=new PIXI.Point(this.style.strokeThickness/2,this.style.strokeThickness/2+r*n);"right"==this.style.align?a.x+=i-e[r]:"center"==this.style.align&&(a.x+=(i-e[r])/2),this.style.stroke&&this.style.strokeThickness&&this.context.strokeText(t[r],a.x,a.y),this.style.fill&&this.context.fillText(t[r],a.x,a.y)}this.updateTexture()},PIXI.Text.prototype.updateTexture=function(){this.texture.baseTexture.width=this.canvas.width,this.texture.baseTexture.height=this.canvas.height,this.texture.frame.width=this.canvas.width,this.texture.frame.height=this.canvas.height,this._width=this.canvas.width,this._height=this.canvas.height,PIXI.texturesToUpdate.push(this.texture.baseTexture)},PIXI.Text.prototype.updateTransform=function(){this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype.updateTransform.call(this)},PIXI.Text.prototype.determineFontHeight=function(t){var e=PIXI.Text.heightCache[t];if(!e){var i=document.getElementsByTagName("body")[0],r=document.createElement("div"),s=document.createTextNode("M");r.appendChild(s),r.setAttribute("style",t),i.appendChild(r),e=r.offsetHeight,PIXI.Text.heightCache[t]=e,i.removeChild(r)}return e},PIXI.Text.prototype.destroy=function(t){t&&this.texture.destroy()},PIXI.Text.heightCache={},PIXI.BitmapText=function(t,e){PIXI.DisplayObjectContainer.call(this),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},PIXI.BitmapText.constructor=PIXI.BitmapText,PIXI.BitmapText.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.BitmapText.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},PIXI.BitmapText.prototype.setStyle=function(t){t=t||{},t.align=t.align||"left",this.style=t;var e=t.font.split(" ");this.fontName=e[e.length-1],this.fontSize=e.length>=2?parseInt(e[e.length-2],10):PIXI.BitmapText.fonts[this.fontName].size,this.dirty=!0},PIXI.BitmapText.prototype.updateText=function(){for(var t=PIXI.BitmapText.fonts[this.fontName],e=new PIXI.Point,i=null,r=[],s=0,n=[],a=0,o=this.fontSize/t.size,h=0;this.text.length>h;h++){var u=this.text.charCodeAt(h);if(/(?:\r\n|\r|\n)/.test(this.text.charAt(h)))n.push(e.x),s=Math.max(s,e.x),a++,e.x=0,e.y+=t.lineHeight,i=null;else{var c=t.chars[u];c&&(i&&c[i]&&(e.x+=c.kerning[i]),r.push({line:a,charCode:u,position:new PIXI.Point(e.x+c.xOffset,e.y+c.yOffset)}),e.x+=c.xAdvance,i=u)}}n.push(e.x),s=Math.max(s,e.x);var d=[];for(h=0;a>=h;h++){var l=0;"right"==this.style.align?l=s-n[h]:"center"==this.style.align&&(l=(s-n[h])/2),d.push(l)}for(h=0;r.length>h;h++){var I=PIXI.Sprite.fromFrame(r[h].charCode);I.position.x=(r[h].position.x+d[r[h].line])*o,I.position.y=r[h].position.y*o,I.scale.x=I.scale.y=o,this.addChild(I)}this.width=e.x*o,this.height=(e.y+t.lineHeight)*o},PIXI.BitmapText.prototype.updateTransform=function(){if(this.dirty){for(;this.children.length>0;)this.removeChild(this.getChildAt(0));this.updateText(),this.dirty=!1}PIXI.DisplayObjectContainer.prototype.updateTransform.call(this)},PIXI.BitmapText.fonts={},PIXI.InteractionManager=function(t){this.stage=t,this.tempPoint=new PIXI.Point,this.mouseoverEnabled=!0,this.mouse=new PIXI.InteractionData,this.touchs={},this.pool=[],this.interactiveItems=[],this.last=0},PIXI.InteractionManager.constructor=PIXI.InteractionManager,PIXI.InteractionManager.prototype.collectInteractiveSprite=function(t,e){for(var i=t.children,r=i.length,s=r-1;s>=0;s--){var n=i[s];n.interactive?(e.interactiveChildren=!0,this.interactiveItems.push(n),n.children.length>0&&this.collectInteractiveSprite(n,n)):(n.__iParent=null,n.children.length>0&&this.collectInteractiveSprite(n,e))}},PIXI.InteractionManager.prototype.setTarget=function(t){window.navigator.msPointerEnabled&&(t.view.style["-ms-content-zooming"]="none",t.view.style["-ms-touch-action"]="none"),this.target=t,t.view.addEventListener("mousemove",this.onMouseMove.bind(this),!0),t.view.addEventListener("mousedown",this.onMouseDown.bind(this),!0),document.body.addEventListener("mouseup",this.onMouseUp.bind(this),!0),t.view.addEventListener("mouseout",this.onMouseUp.bind(this),!0),t.view.addEventListener("touchstart",this.onTouchStart.bind(this),!0),t.view.addEventListener("touchend",this.onTouchEnd.bind(this),!0),t.view.addEventListener("touchmove",this.onTouchMove.bind(this),!0)},PIXI.InteractionManager.prototype.update=function(){if(this.target){var t=Date.now(),e=t-this.last;if(e=30*e/1e3,!(1>e)){if(this.last=t,this.dirty){this.dirty=!1,this.interactiveItems.length;for(var i=0;this.interactiveItems.length>i;i++)this.interactiveItems[i].interactiveChildren=!1;this.interactiveItems=[],this.stage.interactive&&this.interactiveItems.push(this.stage),this.collectInteractiveSprite(this.stage,this.stage)}var r=this.interactiveItems.length;this.target.view.style.cursor="default";for(var i=0;r>i;i++){var s=this.interactiveItems[i];s.visible&&(s.mouseover||s.mouseout||s.buttonMode)&&(s.__hit=this.hitTest(s,this.mouse),s.__hit?(s.buttonMode&&(this.target.view.style.cursor="pointer"),s.__isOver||(s.mouseover&&s.mouseover(this.mouse),s.__isOver=!0)):s.__isOver&&(s.mouseout&&s.mouseout(this.mouse),s.__isOver=!1))}}}},PIXI.InteractionManager.prototype.onMouseMove=function(t){t.preventDefault();var e=this.target.view.getBoundingClientRect();this.mouse.global.x=(t.clientX-e.left)*(this.target.width/e.width),this.mouse.global.y=(t.clientY-e.top)*(this.target.height/e.height);var i=this.interactiveItems.length;this.mouse.global;for(var r=0;i>r;r++){var s=this.interactiveItems[r];s.mousemove&&s.mousemove(this.mouse)}},PIXI.InteractionManager.prototype.onMouseDown=function(t){t.preventDefault();var e=this.interactiveItems.length;this.mouse.global,this.stage;for(var i=0;e>i;i++){var r=this.interactiveItems[i];if((r.mousedown||r.click)&&(r.__mouseIsDown=!0,r.__hit=this.hitTest(r,this.mouse),r.__hit&&(r.mousedown&&r.mousedown(this.mouse),r.__isDown=!0,!r.interactiveChildren)))break}},PIXI.InteractionManager.prototype.onMouseUp=function(t){t.preventDefault(),this.mouse.global;for(var e=this.interactiveItems.length,i=!1,r=0;e>r;r++){var s=this.interactiveItems[r];(s.mouseup||s.mouseupoutside||s.click)&&(s.__hit=this.hitTest(s,this.mouse),s.__hit&&!i?(s.mouseup&&s.mouseup(this.mouse),s.__isDown&&s.click&&s.click(this.mouse),s.interactiveChildren||(i=!0)):s.__isDown&&s.mouseupoutside&&s.mouseupoutside(this.mouse),s.__isDown=!1)}},PIXI.InteractionManager.prototype.hitTest=function(t,e){var i=e.global;if(!t.visible)return!1;if(t instanceof PIXI.Sprite){var r=t.worldTransform,s=r[0],n=r[1],a=r[2],o=r[3],h=r[4],u=r[5],c=1/(s*h+n*-o),d=h*c*i.x+-n*c*i.y+(u*n-a*h)*c,l=s*c*i.y+-o*c*i.x+(-u*s+a*o)*c,I=t.texture.frame.width,p=t.texture.frame.height,f=-I*t.anchor.x;if(d>f&&f+I>d){var x=-p*t.anchor.y;if(l>x&&x+p>l)return e.target=t,!0}}else if(t.hitArea){var r=t.worldTransform,v=t.hitArea,s=r[0],n=r[1],a=r[2],o=r[3],h=r[4],u=r[5],c=1/(s*h+n*-o),d=h*c*i.x+-n*c*i.y+(u*n-a*h)*c,l=s*c*i.y+-o*c*i.x+(-u*s+a*o)*c,f=v.x;if(d>f&&f+v.width>d){var x=v.y;if(l>x&&x+v.height>l)return!0}}for(var P=t.children.length,g=0;P>g;g++){var b=t.children[g],X=this.hitTest(b,e);if(X)return!0}return!1},PIXI.InteractionManager.prototype.onTouchMove=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.touchs[s.identifier];n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height)}for(var a=this.interactiveItems.length,r=0;a>r;r++){var o=this.interactiveItems[r];o.touchmove&&o.touchmove(n)}},PIXI.InteractionManager.prototype.onTouchStart=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.pool.pop();n||(n=new PIXI.InteractionData),this.touchs[s.identifier]=n,n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height);for(var a=this.interactiveItems.length,o=0;a>o;o++){var h=this.interactiveItems[o];if((h.touchstart||h.tap)&&(h.__hit=this.hitTest(h,n),h.__hit&&(h.touchstart&&h.touchstart(n),h.__isDown=!0,h.__touchData=n,!h.interactiveChildren)))break}}},PIXI.InteractionManager.prototype.onTouchEnd=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.touchs[s.identifier],a=!1;n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var u=this.interactiveItems[h],c=u.__touchData;u.__hit=this.hitTest(u,n),c==n&&((u.touchend||u.tap)&&(u.__hit&&!a?(u.touchend&&u.touchend(n),u.__isDown&&u.tap&&u.tap(n),u.interactiveChildren||(a=!0)):u.__isDown&&u.touchendoutside&&u.touchendoutside(n),u.__isDown=!1),u.__touchData=null)}this.pool.push(n),this.touchs[s.identifier]=null}},PIXI.InteractionData=function(){this.global=new PIXI.Point,this.local=new PIXI.Point,this.target},PIXI.InteractionData.prototype.getLocalPosition=function(t){var e=t.worldTransform,i=this.global,r=e[0],s=e[1],n=e[2],a=e[3],o=e[4],h=e[5],u=1/(r*o+s*-a);return new PIXI.Point(o*u*i.x+-s*u*i.y+(h*s-n*o)*u,r*u*i.y+-a*u*i.x+(-h*r+n*a)*u)},PIXI.InteractionData.constructor=PIXI.InteractionData,PIXI.Stage=function(t,e){PIXI.DisplayObjectContainer.call(this),this.worldTransform=PIXI.mat3.create(),this.__childrenAdded=[],this.__childrenRemoved=[],this.childIndex=0,this.stage=this,this.stage.hitArea=new PIXI.Rectangle(0,0,1e5,1e5),this.interactive=!!e,this.interactionManager=new PIXI.InteractionManager(this),this.setBackgroundColor(t),this.worldVisible=!0},PIXI.Stage.constructor=PIXI.Stage,PIXI.Stage.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Stage.prototype.updateTransform=function(){this.worldAlpha=1;for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform();this.dirty&&(this.dirty=!1,this.interactionManager.dirty=!0),this.interactive&&this.interactionManager.update()},PIXI.Stage.prototype.setBackgroundColor=function(t){this.backgroundColor=t||0,this.backgroundColorSplit=HEXtoRGB(this.backgroundColor),this.backgroundColorString="#"+this.backgroundColor.toString(16)},PIXI.Stage.prototype.getMousePosition=function(){return this.interactionManager.mouse.global},PIXI.Stage.prototype.__addChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=this,t.children)for(var e=0;t.children.length>e;e++)this.__addChild(t.children[e])},PIXI.Stage.prototype.__removeChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=void 0,t.children)for(var e=0,i=t.children.length;i>e;e++)this.__removeChild(t.children[e])},window.requestAnimFrame=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(t){window.setTimeout(t,1e3/60)}}(),"function"!=typeof Function.prototype.bind&&(Function.prototype.bind=function(){var t=Array.prototype.slice;return function(e){function i(){var n=s.concat(t.call(arguments));r.apply(this instanceof i?this:e,n)}var r=this,s=t.call(arguments,1);if("function"!=typeof r)throw new TypeError;return i.prototype=function n(t){return t&&(n.prototype=t),this instanceof n?void 0:new n}(r.prototype),i}}());var AjaxRequest=function(){var t=["Msxml2.XMLHTTP","Microsoft.XMLHTTP"];if(!window.ActiveXObject)return window.XMLHttpRequest?new XMLHttpRequest:!1;for(var e=0;t.length>e;e++)try{return new ActiveXObject(t[e])}catch(i){}};PIXI.EventTarget=function(){var t={};this.addEventListener=this.on=function(e,i){void 0===t[e]&&(t[e]=[]),-1===t[e].indexOf(i)&&t[e].push(i)},this.dispatchEvent=this.emit=function(e){for(var i in t[e.type])t[e.type][i](e)},this.removeEventListener=this.off=function(e,i){var r=t[e].indexOf(i);-1!==r&&t[e].splice(r,1)}},determineMatrixArrayType(),PIXI.mat3={},PIXI.mat3.create=function(){var t=new PIXI.Matrix(9);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},PIXI.mat4={},PIXI.mat4.create=function(){var t=new PIXI.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},PIXI.mat3.multiply=function(t,e,i){i||(i=t);var r=t[0],s=t[1],n=t[2],a=t[3],o=t[4],h=t[5],u=t[6],c=t[7],d=t[8],l=e[0],I=e[1],p=e[2],f=e[3],x=e[4],v=e[5],P=e[6],g=e[7],b=e[8];return i[0]=l*r+I*a+p*u,i[1]=l*s+I*o+p*c,i[2]=l*n+I*h+p*d,i[3]=f*r+x*a+v*u,i[4]=f*s+x*o+v*c,i[5]=f*n+x*h+v*d,i[6]=P*r+g*a+b*u,i[7]=P*s+g*o+b*c,i[8]=P*n+g*h+b*d,i},PIXI.mat3.toMat4=function(t,e){return e||(e=PIXI.mat4.create()),e[15]=1,e[14]=0,e[13]=0,e[12]=0,e[11]=0,e[10]=t[8],e[9]=t[7],e[8]=t[6],e[7]=0,e[6]=t[5],e[5]=t[4],e[4]=t[3],e[3]=0,e[2]=t[2],e[1]=t[1],e[0]=t[0],e},PIXI.mat4.create=function(){var t=new PIXI.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},PIXI.mat4.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],s=t[3],n=t[6],a=t[7],o=t[11];return t[1]=t[4],t[2]=t[8],t[3]=t[12],t[4]=i,t[6]=t[9],t[7]=t[13],t[8]=r,t[9]=n,t[11]=t[14],t[12]=s,t[13]=a,t[14]=o,t}return e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=t[1],e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=t[2],e[9]=t[6],e[10]=t[10],e[11]=t[14],e[12]=t[3],e[13]=t[7],e[14]=t[11],e[15]=t[15],e},PIXI.mat4.multiply=function(t,e,i){i||(i=t);var r=t[0],s=t[1],n=t[2],a=t[3],o=t[4],h=t[5],u=t[6],c=t[7],d=t[8],l=t[9],I=t[10],p=t[11],f=t[12],x=t[13],v=t[14],P=t[15],g=e[0],b=e[1],X=e[2],m=e[3];return i[0]=g*r+b*o+X*d+m*f,i[1]=g*s+b*h+X*l+m*x,i[2]=g*n+b*u+X*I+m*v,i[3]=g*a+b*c+X*p+m*P,g=e[4],b=e[5],X=e[6],m=e[7],i[4]=g*r+b*o+X*d+m*f,i[5]=g*s+b*h+X*l+m*x,i[6]=g*n+b*u+X*I+m*v,i[7]=g*a+b*c+X*p+m*P,g=e[8],b=e[9],X=e[10],m=e[11],i[8]=g*r+b*o+X*d+m*f,i[9]=g*s+b*h+X*l+m*x,i[10]=g*n+b*u+X*I+m*v,i[11]=g*a+b*c+X*p+m*P,g=e[12],b=e[13],X=e[14],m=e[15],i[12]=g*r+b*o+X*d+m*f,i[13]=g*s+b*h+X*l+m*x,i[14]=g*n+b*u+X*I+m*v,i[15]=g*a+b*c+X*p+m*P,i},PIXI.autoDetectRenderer=function(t,e,i,r){t||(t=800),e||(e=600);var s=function(){try{return!!window.WebGLRenderingContext&&!!document.createElement("canvas").getContext("experimental-webgl")}catch(t){return!1}}();return s?new PIXI.WebGLRenderer(t,e,i,r):new PIXI.CanvasRenderer(t,e,i,r)},PIXI.shaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * vColor;","}"],PIXI.shaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform mat4 uMVMatrix;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","gl_Position = uMVMatrix * vec4(aVertexPosition, 1.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],PIXI.CompileVertexShader=function(t,e){return PIXI._CompileShader(t,e,t.VERTEX_SHADER)},PIXI.CompileFragmentShader=function(t,e){return PIXI._CompileShader(t,e,t.FRAGMENT_SHADER)},PIXI._CompileShader=function(t,e,i){var r=e.join("\n"),s=t.createShader(i);return t.shaderSource(s,r),t.compileShader(s),t.getShaderParameter(s,t.COMPILE_STATUS)?s:(alert(t.getShaderInfoLog(s)),null)},PIXI._defaultFrame=new PIXI.Rectangle(0,0,1,1),PIXI.gl,PIXI.WebGLRenderer=function(t,e,i,r){this.transparent=!!r,this.width=t||800,this.height=e||600,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height;var s=this;this.view.addEventListener("webglcontextlost",function(t){s.handleContextLost(t)},!1),this.view.addEventListener("webglcontextrestored",function(t){s.handleContextRestored(t)},!1),this.batchs=[];try{PIXI.gl=this.gl=this.view.getContext("experimental-webgl",{alpha:this.transparent,antialias:!1,premultipliedAlpha:!0})}catch(n){throw Error(" This browser does not support webGL. Try using the canvas renderer"+this)}this.initShaders();var a=this.gl;PIXI.WebGLRenderer.gl=a,this.batch=new PIXI.WebGLBatch(a),a.disable(a.DEPTH_TEST),a.disable(a.CULL_FACE),a.enable(a.BLEND),a.colorMask(!0,!0,!0,this.transparent),this.projectionMatrix=PIXI.mat4.create(),this.resize(this.width,this.height),this.contextLost=!1,this.stageRenderGroup=new PIXI.WebGLRenderGroup(this.gl)},PIXI.WebGLRenderer.constructor=PIXI.WebGLRenderer,PIXI.WebGLRenderer.getBatch=function(){return 0==PIXI._batchs.length?new PIXI.WebGLBatch(PIXI.WebGLRenderer.gl):PIXI._batchs.pop()},PIXI.WebGLRenderer.returnBatch=function(t){t.clean(),PIXI._batchs.push(t)},PIXI.WebGLRenderer.prototype.initShaders=function(){var t=this.gl,e=PIXI.CompileFragmentShader(t,PIXI.shaderFragmentSrc),i=PIXI.CompileVertexShader(t,PIXI.shaderVertexSrc);PIXI.shaderProgram=t.createProgram();var r=PIXI.shaderProgram;t.attachShader(r,i),t.attachShader(r,e),t.linkProgram(r),t.getProgramParameter(r,t.LINK_STATUS)||alert("Could not initialise shaders"),t.useProgram(r),r.vertexPositionAttribute=t.getAttribLocation(r,"aVertexPosition"),t.enableVertexAttribArray(r.vertexPositionAttribute),r.textureCoordAttribute=t.getAttribLocation(r,"aTextureCoord"),t.enableVertexAttribArray(r.textureCoordAttribute),r.colorAttribute=t.getAttribLocation(r,"aColor"),t.enableVertexAttribArray(r.colorAttribute),r.mvMatrixUniform=t.getUniformLocation(r,"uMVMatrix"),r.samplerUniform=t.getUniformLocation(r,"uSampler")},PIXI.WebGLRenderer.prototype.render=function(t){if(!this.contextLost){this.__stage!==t&&(this.__stage=t,this.stageRenderGroup.setRenderable(t));for(var e=0;PIXI.texturesToUpdate.length>e;e++)this.updateTexture(PIXI.texturesToUpdate[e]);for(var e=0;PIXI.texturesToDestroy.length>e;e++)this.destroyTexture(PIXI.texturesToDestroy[e]);PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[],t.updateTransform();var i=this.gl;if(i.colorMask(!0,!0,!0,this.transparent),i.viewport(0,0,this.width,this.height),i.bindFramebuffer(i.FRAMEBUFFER,null),i.clearColor(t.backgroundColorSplit[0],t.backgroundColorSplit[1],t.backgroundColorSplit[2],this.transparent),i.clear(i.COLOR_BUFFER_BIT),this.stageRenderGroup.backgroundColor=t.backgroundColorSplit,this.stageRenderGroup.render(this.projectionMatrix),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),PIXI.Texture.frameUpdates.length>0){for(var e=0;PIXI.Texture.frameUpdates.length>e;e++)PIXI.Texture.frameUpdates[e].updateFrame=!1;PIXI.Texture.frameUpdates=[]}}},PIXI.WebGLRenderer.prototype.updateTexture=function(t){var e=this.gl;t._glTexture||(t._glTexture=e.createTexture()),t.hasLoaded&&(e.bindTexture(e.TEXTURE_2D,t._glTexture),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t.source),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),t._powerOf2?(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT)):(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)),e.bindTexture(e.TEXTURE_2D,null)),this.refreshBatchs=!0},PIXI.WebGLRenderer.prototype.destroyTexture=function(t){var e=this.gl;t._glTexture&&(t._glTexture=e.createTexture(),e.deleteTexture(e.TEXTURE_2D,t._glTexture))},PIXI.WebGLRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e,this.gl.viewport(0,0,this.width,this.height);var i=this.projectionMatrix;i[0]=2/this.width,i[5]=-2/this.height,i[12]=-1,i[13]=1},PIXI.WebGLRenderer.prototype.handleContextLost=function(t){t.preventDefault(),this.contextLost=!0},PIXI.WebGLRenderer.prototype.handleContextRestored=function(){this.gl=this.view.getContext("experimental-webgl",{alpha:!0}),this.initShaders();for(var t=0;PIXI.TextureCache.length>t;t++)this.updateTexture(PIXI.TextureCache[t]);for(var t=0;this.batchs.length>t;t++)this.batchs[t].restoreLostContext(this.gl),this.batchs[t].dirty=!0;PIXI._restoreBatchs(this.gl),this.contextLost=!1},PIXI._batchs=[],PIXI._getBatch=function(t){return 0==PIXI._batchs.length?new PIXI.WebGLBatch(t):PIXI._batchs.pop()},PIXI._returnBatch=function(t){t.clean(),PIXI._batchs.push(t)},PIXI._restoreBatchs=function(t){for(var e=0;PIXI._batchs.length>e;e++)PIXI._batchs[e].restoreLostContext(t)},PIXI.WebGLBatch=function(t){this.gl=t,this.size=0,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer(),this.blendMode=PIXI.blendModes.NORMAL,this.dynamicSize=1},PIXI.WebGLBatch.constructor=PIXI.WebGLBatch,PIXI.WebGLBatch.prototype.clean=function(){this.verticies=[],this.uvs=[],this.indices=[],this.colors=[],this.dynamicSize=1,this.texture=null,this.last=null,this.size=0,this.head,this.tail},PIXI.WebGLBatch.prototype.restoreLostContext=function(t){this.gl=t,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer()},PIXI.WebGLBatch.prototype.init=function(t){t.batch=this,this.dirty=!0,this.blendMode=t.blendMode,this.texture=t.texture.baseTexture,this.head=t,this.tail=t,this.size=1,this.growBatch()},PIXI.WebGLBatch.prototype.insertBefore=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__prev;e.__prev=t,t.__next=e,i?(t.__prev=i,i.__next=t):this.head=t},PIXI.WebGLBatch.prototype.insertAfter=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__next;e.__next=t,t.__prev=e,i?(t.__next=i,i.__prev=t):this.tail=t},PIXI.WebGLBatch.prototype.remove=function(t){return this.size--,0==this.size?(t.batch=null,t.__prev=null,t.__next=null,void 0):(t.__prev?t.__prev.__next=t.__next:(this.head=t.__next,this.head.__prev=null),t.__next?t.__next.__prev=t.__prev:(this.tail=t.__prev,this.tail.__next=null),t.batch=null,t.__next=null,t.__prev=null,this.dirty=!0,void 0)},PIXI.WebGLBatch.prototype.split=function(t){this.dirty=!0;var e=new PIXI.WebGLBatch(this.gl);e.init(t),e.tail=this.tail,this.tail=t.__prev,this.tail.__next=null,t.__prev=null;for(var i=0;t;)i++,t.batch=e,t=t.__next;return e.size=i,this.size-=i,e},PIXI.WebGLBatch.prototype.merge=function(t){this.dirty=!0,this.tail.__next=t.head,t.head.__prev=this.tail,this.size+=t.size,this.tail=t.tail;for(var e=t.head;e;)e.batch=this,e=e.__next},PIXI.WebGLBatch.prototype.growBatch=function(){var t=this.gl;this.dynamicSize=1==this.size?1:1.5*this.size,this.verticies=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.vertexBuffer),t.bufferData(t.ARRAY_BUFFER,this.verticies,t.DYNAMIC_DRAW),this.uvs=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.uvBuffer),t.bufferData(t.ARRAY_BUFFER,this.uvs,t.DYNAMIC_DRAW),this.dirtyUVS=!0,this.colors=new Float32Array(4*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.colorBuffer),t.bufferData(t.ARRAY_BUFFER,this.colors,t.DYNAMIC_DRAW),this.dirtyColors=!0,this.indices=new Uint16Array(6*this.dynamicSize);for(var e=this.indices.length/6,i=0;e>i;i++){var r=6*i,s=4*i;this.indices[r+0]=s+0,this.indices[r+1]=s+1,this.indices[r+2]=s+2,this.indices[r+3]=s+0,this.indices[r+4]=s+2,this.indices[r+5]=s+3}t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,this.indexBuffer),t.bufferData(t.ELEMENT_ARRAY_BUFFER,this.indices,t.STATIC_DRAW)},PIXI.WebGLBatch.prototype.refresh=function(){this.gl,this.dynamicSizei;i++)this.removeDisplayObjectAndChildren(this.toRemove[i]);this.toRemove=[],this.checkVisibility(this.root,this.root.visible);for(var r,i=0;this.batchs.length>i;i++)r=this.batchs[i],r instanceof PIXI.WebGLBatch?this.batchs[i].render():r instanceof PIXI.TilingSprite?r.visible&&this.renderTilingSprite(r,t):r instanceof PIXI.Strip&&r.visible&&this.renderStrip(r,t)},PIXI.WebGLRenderGroup.prototype.renderSpecific=function(t,e){var i=this.gl;this.checkVisibility(t,t.visible),i.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform,!1,e);var r,s,n,a,o=t.renderable?t:this.getNextRenderable(t),h=o.batch;if(o instanceof PIXI.Sprite){h=o.batch;var u=h.head;if(u==o)r=0;else for(r=1;u.__next!=o;)r++,u=u.__next}else h=o;for(var c,d=t,l=t;l.children.length>0;)l=l.children[l.children.length-1],l.renderable&&(d=l);if(d instanceof PIXI.Sprite){c=d.batch;var u=c.head;if(u==d)n=0;else for(n=1;u.__next!=d;)n++,u=u.__next}else c=d;if(h==c)return h instanceof PIXI.WebGLBatch?h.render(r,n+1):h instanceof PIXI.TilingSprite?h.visible&&this.renderTilingSprite(h,e):h instanceof PIXI.Strip?h.visible&&this.renderStrip(h,e):h instanceof PIXI.CustomRenderable&&h.visible&&h.renderWebGL(this,e),void 0;s=this.batchs.indexOf(h),a=this.batchs.indexOf(c),h instanceof PIXI.WebGLBatch?h.render(r):h instanceof PIXI.TilingSprite?h.visible&&this.renderTilingSprite(h,e):h instanceof PIXI.Strip?h.visible&&this.renderStrip(h,e):h instanceof PIXI.CustomRenderable&&h.visible&&h.renderWebGL(this,e);for(var I=s+1;a>I;I++)renderable=this.batchs[I],renderable instanceof PIXI.WebGLBatch?this.batchs[I].render():renderable instanceof PIXI.TilingSprite?renderable.visible&&this.renderTilingSprite(renderable,e):renderable instanceof PIXI.Strip?renderable.visible&&this.renderStrip(renderable,e):renderable instanceof PIXI.CustomRenderable&&renderable.visible&&renderable.renderWebGL(this,e);c instanceof PIXI.WebGLBatch?c.render(0,n+1):c instanceof PIXI.TilingSprite?c.visible&&this.renderTilingSprite(c):c instanceof PIXI.Strip?c.visible&&this.renderStrip(c):c instanceof PIXI.CustomRenderable&&c.visible&&c.renderWebGL(this,e)},PIXI.WebGLRenderGroup.prototype.checkVisibility=function(t,e){for(var i=t.children,r=0;i.length>r;r++){var s=i[r];s.worldVisible=s.visible&&e,s.textureChange&&(s.textureChange=!1,s.worldVisible&&(this.removeDisplayObject(s),this.addDisplayObject(s))),s.children.length>0&&this.checkVisibility(s,s.worldVisible)}},PIXI.WebGLRenderGroup.prototype.addDisplayObject=function(t){if(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.__renderGroup=this,t.renderable){var e=this.getPreviousRenderable(t),i=this.getNextRenderable(t);if(t instanceof PIXI.Sprite){var r,s;if(e instanceof PIXI.Sprite){if(r=e.batch,r&&r.texture==t.texture.baseTexture&&r.blendMode==t.blendMode)return r.insertAfter(t,e),void 0}else r=e;if(i)if(i instanceof PIXI.Sprite){if(s=i.batch){if(s.texture==t.texture.baseTexture&&s.blendMode==t.blendMode)return s.insertBefore(t,i),void 0;if(s==r){var n=r.split(i),a=PIXI.WebGLRenderer.getBatch(),o=this.batchs.indexOf(r);return a.init(t),this.batchs.splice(o+1,0,a,n),void 0}}}else s=i;var a=PIXI.WebGLRenderer.getBatch();if(a.init(t),r){var o=this.batchs.indexOf(r);this.batchs.splice(o+1,0,a)}else this.batchs.push(a)}else t instanceof PIXI.TilingSprite?(this.initTilingSprite(t),this.batchs.push(t)):t instanceof PIXI.Strip&&(this.initStrip(t),this.batchs.push(t));this.batchUpdate=!0}},PIXI.WebGLRenderGroup.prototype.addDisplayObjectAndChildren=function(t){this.addDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.addDisplayObjectAndChildren(e[i])},PIXI.WebGLRenderGroup.prototype.removeDisplayObject=function(t){if(t.__renderGroup=null,t.renderable){var e;if(t instanceof PIXI.Sprite){var i=t.batch;if(!i)return;i.remove(t),0==i.size&&(e=i)}else e=t;if(e){var r=this.batchs.indexOf(e);if(-1==r)return;if(0==r||r==this.batchs.length-1)return this.batchs.splice(r,1),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e),void 0;if(this.batchs[r-1]instanceof PIXI.WebGLBatch&&this.batchs[r+1]instanceof PIXI.WebGLBatch&&this.batchs[r-1].texture==this.batchs[r+1].texture&&this.batchs[r-1].blendMode==this.batchs[r+1].blendMode)return this.batchs[r-1].merge(this.batchs[r+1]),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e),PIXI.WebGLRenderer.returnBatch(this.batchs[r+1]),this.batchs.splice(r,2),void 0;this.batchs.splice(r,1),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e)}}},PIXI.WebGLRenderGroup.prototype.removeDisplayObjectAndChildren=function(t){if(t.__renderGroup==this){this.removeDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.removeDisplayObjectAndChildren(e[i])}},PIXI.WebGLRenderGroup.prototype.getNextRenderable=function(t){var e=t;do{if(0==e.children.length){if(!e.parent)return null;for(;e.childIndex==e.parent.children.length-1;)if(e=e.parent,e==this.root){e=null;break}e&&(e=e.parent.children[e.childIndex+1])}else e=e.children[0];if(!e)break}while(!e.renderable||!e.__renderGroup);return e},PIXI.WebGLRenderGroup.prototype.getPreviousRenderable=function(t){var e=t;do{if(0==e.childIndex){if(e=e.parent,!e)return null}else for(e=e.parent.children[e.childIndex-1];0!=e.children.length;)e=e.children[e.children.length-1];if(e==this.root)break}while(!e.renderable||!e.__renderGroup);return e},PIXI.WebGLRenderGroup.prototype.initTilingSprite=function(t){var e=this.gl;t.verticies=new Float32Array([0,0,t.width,0,t.width,t.height,0,t.height]),t.uvs=new Float32Array([0,0,1,0,1,1,0,1]),t.colors=new Float32Array([1,1,1,1]),t.indices=new Uint16Array([0,1,3,2]),t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW),t.texture.baseTexture._glTexture?(e.bindTexture(e.TEXTURE_2D,t.texture.baseTexture._glTexture),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT),t.texture.baseTexture._powerOf2=!0):t.texture.baseTexture._powerOf2=!0},PIXI.WebGLRenderGroup.prototype.renderStrip=function(t,e){var i=this.gl,r=PIXI.shaderProgram,s=PIXI.mat3.toMat4(t.worldTransform);PIXI.mat4.transpose(s),PIXI.mat4.multiply(e,s,s),i.uniformMatrix4fv(r.mvMatrixUniform,!1,s),t.blendMode==PIXI.blendModes.NORMAL?i.blendFunc(i.ONE,i.ONE_MINUS_SRC_ALPHA):i.blendFunc(i.ONE,i.ONE_MINUS_SRC_COLOR),t.dirty?(t.dirty=!1,i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferData(i.ARRAY_BUFFER,t.verticies,i.STATIC_DRAW),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferData(i.ARRAY_BUFFER,t.uvs,i.STATIC_DRAW),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.bufferData(i.ARRAY_BUFFER,t.colors,i.STATIC_DRAW),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer),i.bufferData(i.ELEMENT_ARRAY_BUFFER,t.indices,i.STATIC_DRAW)):(i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.verticies),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer)),i.drawElements(i.TRIANGLE_STRIP,t.indices.length,i.UNSIGNED_SHORT,0),i.uniformMatrix4fv(r.mvMatrixUniform,!1,e)},PIXI.WebGLRenderGroup.prototype.renderTilingSprite=function(t,e){var i=this.gl;PIXI.shaderProgram;var r=t.tilePosition,s=t.tileScale,n=r.x/t.texture.baseTexture.width,a=r.y/t.texture.baseTexture.height,o=t.width/t.texture.baseTexture.width/s.x,h=t.height/t.texture.baseTexture.height/s.y;t.uvs[0]=0-n,t.uvs[1]=0-a,t.uvs[2]=1*o-n,t.uvs[3]=0-a,t.uvs[4]=1*o-n,t.uvs[5]=1*h-a,t.uvs[6]=0-n,t.uvs[7]=1*h-a,i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.uvs),this.renderStrip(t,e)},PIXI.WebGLRenderer.prototype.initStrip=function(t){var e=this.gl;this.shaderProgram,t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW)},PIXI.CanvasRenderer=function(t,e,i,r){this.transparent=r,this.width=t||800,this.height=e||600,this.refresh=!0,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height,this.count=0,this.context=this.view.getContext("2d")},PIXI.CanvasRenderer.constructor=PIXI.CanvasRenderer,PIXI.CanvasRenderer.prototype.render=function(t){PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[],t.updateTransform(),this.view.style.backgroundColor==t.backgroundColorString||this.transparent||(this.view.style.backgroundColor=t.backgroundColorString),this.context.setTransform(1,0,0,1,0,0),this.context.clearRect(0,0,this.width,this.height),this.renderDisplayObject(t),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),PIXI.Texture.frameUpdates.length>0&&(PIXI.Texture.frameUpdates=[])},PIXI.CanvasRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e},PIXI.CanvasRenderer.prototype.renderDisplayObject=function(t){var e=t.worldTransform,i=this.context;if(t.visible){if(t instanceof PIXI.Sprite){var r=t.texture.frame;r&&(i.globalAlpha=t.worldAlpha,i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),i.drawImage(t.texture.baseTexture.source,r.x,r.y,r.width,r.height,t.anchor.x*-r.width,t.anchor.y*-r.height,r.width,r.height))}else t instanceof PIXI.Strip?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderStrip(t)):t instanceof PIXI.TilingSprite?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderTilingSprite(t)):t instanceof PIXI.CustomRenderable&&t.renderCanvas(this);for(var s=0;t.children.length>s;s++)this.renderDisplayObject(t.children[s]);this.context.setTransform(1,0,0,1,0,0)}},PIXI.CanvasRenderer.prototype.renderStripFlat=function(t){var e=this.context,i=t.verticies;t.uvs;var r=i.length/2;this.count++,e.beginPath();for(var s=1;r-2>s;s++){var n=2*s,a=i[n],o=i[n+2],h=i[n+4],u=i[n+1],c=i[n+3],d=i[n+5];e.moveTo(a,u),e.lineTo(o,c),e.lineTo(h,d)}e.fillStyle="#FF0000",e.fill(),e.closePath()},PIXI.CanvasRenderer.prototype.renderTilingSprite=function(t){var e=this.context;t.__tilePattern||(t.__tilePattern=e.createPattern(t.texture.baseTexture.source,"repeat")),e.beginPath();var i=t.tilePosition,r=t.tileScale;e.scale(r.x,r.y),e.translate(i.x,i.y),e.fillStyle=t.__tilePattern,e.fillRect(-i.x,-i.y,t.width/r.x,t.height/r.y),e.scale(1/r.x,1/r.y),e.translate(-i.x,-i.y),e.closePath()},PIXI.CanvasRenderer.prototype.renderStrip=function(t){var e=this.context,i=t.verticies,r=t.uvs,s=i.length/2;this.count++;for(var n=1;s-2>n;n++){var a=2*n,o=i[a],h=i[a+2],u=i[a+4],c=i[a+1],d=i[a+3],l=i[a+5],I=r[a]*t.texture.width,p=r[a+2]*t.texture.width,f=r[a+4]*t.texture.width,x=r[a+1]*t.texture.height,v=r[a+3]*t.texture.height,P=r[a+5]*t.texture.height;e.save(),e.beginPath(),e.moveTo(o,c),e.lineTo(h,d),e.lineTo(u,l),e.closePath(),e.clip();var g=I*v+x*f+p*P-v*f-x*p-I*P,b=o*v+x*u+h*P-v*u-x*h-o*P,X=I*h+o*f+p*u-h*f-o*p-I*u,m=I*v*u+x*h*f+o*p*P-o*v*f-x*p*u-I*h*P,T=c*v+x*l+d*P-v*l-x*d-c*P,y=I*d+c*f+p*l-d*f-c*p-I*l,_=I*v*l+x*d*f+c*p*P-c*v*f-x*p*l-I*d*P;e.transform(b/g,T/g,X/g,y/g,m/g,_/g),e.drawImage(t.texture.baseTexture.source,0,0),e.restore()}},PIXI.Strip=function(t,e,i){PIXI.DisplayObjectContainer.call(this),this.texture=t,this.blendMode=PIXI.blendModes.NORMAL;try{this.uvs=new Float32Array([0,1,1,1,1,0,0,1]),this.verticies=new Float32Array([0,0,0,0,0,0,0,0,0]),this.colors=new Float32Array([1,1,1,1]),this.indices=new Uint16Array([0,1,2,3])}catch(r){this.uvs=[0,1,1,1,1,0,0,1],this.verticies=[0,0,0,0,0,0,0,0,0],this.colors=[1,1,1,1],this.indices=[0,1,2,3]}this.width=e,this.height=i,t.baseTexture.hasLoaded?(this.width=this.texture.frame.width,this.height=this.texture.frame.height,this.updateFrame=!0):(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},PIXI.Strip.constructor=PIXI.Strip,PIXI.Strip.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Strip.prototype.setTexture=function(t){this.texture=t,this.width=t.frame.width,this.height=t.frame.height,this.updateFrame=!0},PIXI.Strip.prototype.onTextureUpdate=function(){this.updateFrame=!0},PIXI.Rope=function(t,e){PIXI.Strip.call(this,t),this.points=e;try{this.verticies=new Float32Array(4*e.length),this.uvs=new Float32Array(4*e.length),this.colors=new Float32Array(2*e.length),this.indices=new Uint16Array(2*e.length)}catch(i){this.verticies=verticies,this.uvs=uvs,this.colors=colors,this.indices=indices}this.refresh()},PIXI.Rope.constructor=PIXI.Rope,PIXI.Rope.prototype=Object.create(PIXI.Strip.prototype),PIXI.Rope.prototype.refresh=function(){var t=this.points;if(!(1>t.length)){var e=this.uvs,i=this.indices,r=this.colors,s=t[0],n=t[0];this.count-=.2,e[0]=0,e[1]=1,e[2]=0,e[3]=1,r[0]=1,r[1]=1,i[0]=0,i[1]=1;for(var a=t.length,o=1;a>o;o++){var n=t[o],h=4*o,u=o/(a-1);o%2?(e[h]=u,e[h+1]=0,e[h+2]=u,e[h+3]=1):(e[h]=u,e[h+1]=0,e[h+2]=u,e[h+3]=1),h=2*o,r[h]=1,r[h+1]=1,h=2*o,i[h]=h,i[h+1]=h+1,s=n}}},PIXI.Rope.prototype.updateTransform=function(){var t=this.points;if(!(1>t.length)){var e,i=this.verticies,r=t[0],s={x:0,y:0},n=t[0];this.count-=.2,i[0]=n.x+s.x,i[1]=n.y+s.y,i[2]=n.x-s.x,i[3]=n.y-s.y;for(var a=t.length,o=1;a>o;o++){var n=t[o],h=4*o;e=t.length-1>o?t[o+1]:n,s.y=-(e.x-r.x),s.x=e.y-r.y;var u=10*(1-o/(a-1));u>1&&(u=1);var c=Math.sqrt(s.x*s.x+s.y*s.y),d=this.texture.height/2;s.x/=c,s.y/=c,s.x*=d,s.y*=d,i[h]=n.x+s.x,i[h+1]=n.y+s.y,i[h+2]=n.x-s.x,i[h+3]=n.y-s.y,r=n}PIXI.DisplayObjectContainer.prototype.updateTransform.call(this)}},PIXI.Rope.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0},PIXI.TilingSprite=function(t,e,i){PIXI.DisplayObjectContainer.call(this),this.texture=t,this.width=e,this.height=i,this.renderable=!0,this.tileScale=new PIXI.Point(1,1),this.tilePosition=new PIXI.Point(0,0),this.blendMode=PIXI.blendModes.NORMAL},PIXI.TilingSprite.constructor=PIXI.TilingSprite,PIXI.TilingSprite.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.TilingSprite.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0},PIXI.TilingSprite.prototype.onTextureUpdate=function(){this.updateFrame=!0},PIXI.CustomRenderable=function(){PIXI.DisplayObject.call(this)},PIXI.CustomRenderable.constructor=PIXI.CustomRenderable,PIXI.CustomRenderable.prototype=Object.create(PIXI.DisplayObject.prototype),PIXI.CustomRenderable.prototype.renderCanvas=function(){},PIXI.CustomRenderable.prototype.initWebGL=function(){},PIXI.CustomRenderable.prototype.renderWebGL=function(){},PIXI.BaseTextureCache={},PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[],PIXI.BaseTexture=function(t){if(PIXI.EventTarget.call(this),this.width=100,this.height=100,this.source=t,t){if(this.source instanceof Image)if(this.source.complete)this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,PIXI.texturesToUpdate.push(this);else{var e=this;this.source.onload=function(){e.hasLoaded=!0,e.width=e.source.width,e.height=e.source.height,PIXI.texturesToUpdate.push(e),e.dispatchEvent({type:"loaded",content:e})}}else this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,PIXI.texturesToUpdate.push(this);this._powerOf2=!1}},PIXI.BaseTexture.constructor=PIXI.BaseTexture,PIXI.BaseTexture.prototype.destroy=function(){this.source instanceof Image&&(this.source.src=null),this.source=null,PIXI.texturesToDestroy.push(this)},PIXI.BaseTexture.fromImage=function(t,e){var i=PIXI.BaseTextureCache[t];if(!i){var r=new Image;e&&(r.crossOrigin=""),r.src=t,i=new PIXI.BaseTexture(r),PIXI.BaseTextureCache[t]=i}return i},PIXI.TextureCache={},PIXI.FrameCache={},PIXI.Texture=function(t,e){if(PIXI.EventTarget.call(this),e||(this.noFrame=!0,e=new PIXI.Rectangle(0,0,1,1)),this.trim=new PIXI.Point,t instanceof PIXI.Texture&&(t=t.baseTexture),this.baseTexture=t,this.frame=e,this.scope=this,t.hasLoaded)this.noFrame&&(e=new PIXI.Rectangle(0,0,t.width,t.height)),this.setFrame(e);else{var i=this;t.addEventListener("loaded",function(){i.onBaseTextureLoaded()})}},PIXI.Texture.constructor=PIXI.Texture,PIXI.Texture.prototype.onBaseTextureLoaded=function(){var t=this.baseTexture;t.removeEventListener("loaded",this.onLoaded),this.noFrame&&(this.frame=new PIXI.Rectangle(0,0,t.width,t.height)),this.noFrame=!1,this.width=this.frame.width,this.height=this.frame.height,this.scope.dispatchEvent({type:"update",content:this})},PIXI.Texture.prototype.destroy=function(t){t&&this.baseTexture.destroy()},PIXI.Texture.prototype.setFrame=function(t){if(this.frame=t,this.width=t.width,this.height=t.height,t.x+t.width>this.baseTexture.width||t.y+t.height>this.baseTexture.height)throw Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);this.updateFrame=!0,PIXI.Texture.frameUpdates.push(this)},PIXI.Texture.fromImage=function(t,e){var i=PIXI.TextureCache[t];return i||(i=new PIXI.Texture(PIXI.BaseTexture.fromImage(t,e)),PIXI.TextureCache[t]=i),i},PIXI.Texture.fromFrame=function(t){var e=PIXI.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache "+this);return e},PIXI.Texture.fromCanvas=function(t){var e=new PIXI.BaseTexture(t);return new PIXI.Texture(e)},PIXI.Texture.addTextureToCache=function(t,e){PIXI.TextureCache[e]=t},PIXI.Texture.removeTextureFromCache=function(t){var e=PIXI.TextureCache[t];return PIXI.TextureCache[t]=null,e},PIXI.Texture.frameUpdates=[],PIXI.RenderTexture=function(t,e){PIXI.EventTarget.call(this),this.width=t||100,this.height=e||100,this.indetityMatrix=PIXI.mat3.create(),this.frame=new PIXI.Rectangle(0,0,this.width,this.height),PIXI.gl?this.initWebGL():this.initCanvas()},PIXI.RenderTexture.constructor=PIXI.RenderTexture,PIXI.RenderTexture.prototype=Object.create(PIXI.Texture.prototype),PIXI.RenderTexture.prototype.initWebGL=function(){var t=PIXI.gl;this.glFramebuffer=t.createFramebuffer(),t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),this.glFramebuffer.width=this.width,this.glFramebuffer.height=this.height,this.baseTexture=new PIXI.BaseTexture,this.baseTexture.width=this.width,this.baseTexture.height=this.height,this.baseTexture._glTexture=t.createTexture(),t.bindTexture(t.TEXTURE_2D,this.baseTexture._glTexture),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,this.width,this.height,0,t.RGBA,t.UNSIGNED_BYTE,null),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),this.baseTexture.isRender=!0,t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,this.baseTexture._glTexture,0),this.projectionMatrix=PIXI.mat4.create(),this.projectionMatrix[5]=2/this.height,this.projectionMatrix[13]=-1,this.projectionMatrix[0]=2/this.width,this.projectionMatrix[12]=-1,this.render=this.renderWebGL},PIXI.RenderTexture.prototype.initCanvas=function(){this.renderer=new PIXI.CanvasRenderer(this.width,this.height,null,0),this.baseTexture=new PIXI.BaseTexture(this.renderer.view),this.frame=new PIXI.Rectangle(0,0,this.width,this.height),this.render=this.renderCanvas},PIXI.RenderTexture.prototype.renderWebGL=function(t,e){var i=PIXI.gl;i.colorMask(!0,!0,!0,!0),i.viewport(0,0,this.width,this.height),i.bindFramebuffer(i.FRAMEBUFFER,this.glFramebuffer),e&&(i.clearColor(0,0,0,0),i.clear(i.COLOR_BUFFER_BIT));var r=t.children;t.worldTransform=PIXI.mat3.create();for(var s=0,n=r.length;n>s;s++)r[s].updateTransform();var a=t.__renderGroup;a?t==a.root?a.render(this.projectionMatrix):a.renderSpecific(t,this.projectionMatrix):(this.renderGroup||(this.renderGroup=new PIXI.WebGLRenderGroup(i)),this.renderGroup.setRenderable(t),this.renderGroup.render(this.projectionMatrix))},PIXI.RenderTexture.prototype.renderCanvas=function(t,e){var i=t.children;t.worldTransform=PIXI.mat3.create();for(var r=0,s=i.length;s>r;r++)i[r].updateTransform();e&&this.renderer.context.clearRect(0,0,this.width,this.height),this.renderer.renderDisplayObject(t),PIXI.texturesToUpdate.push(this.baseTexture)},PIXI.AssetLoader=function(t){PIXI.EventTarget.call(this),this.assetURLs=t,this.crossorigin=!1,this.loadersByType={jpg:PIXI.ImageLoader,jpeg:PIXI.ImageLoader,png:PIXI.ImageLoader,gif:PIXI.ImageLoader,json:PIXI.SpriteSheetLoader,xml:PIXI.BitmapFontLoader,fnt:PIXI.BitmapFontLoader}},PIXI.AssetLoader.constructor=PIXI.AssetLoader,PIXI.AssetLoader.prototype.load=function(){var t=this;this.loadCount=this.assetURLs.length;for(var e=0;this.assetURLs.length>e;e++){var i=this.assetURLs[e],r=i.split(".").pop().toLowerCase(),s=this.loadersByType[r];if(!s)throw Error(r+" is an unsupported file type");var n=new s(i,this.crossorigin);n.addEventListener("loaded",function(){t.onAssetLoaded()}),n.load()}},PIXI.AssetLoader.prototype.onAssetLoaded=function(){this.loadCount--,this.dispatchEvent({type:"onProgress",content:this}),this.onProgress&&this.onProgress(),0==this.loadCount&&(this.dispatchEvent({type:"onComplete",content:this}),this.onComplete&&this.onComplete())},PIXI.SpriteSheetLoader=function(t,e){PIXI.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.frames={},this.crossorigin=e},PIXI.SpriteSheetLoader.constructor=PIXI.SpriteSheetLoader,PIXI.SpriteSheetLoader.prototype.load=function(){this.ajaxRequest=new AjaxRequest;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onJSONLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/json"),this.ajaxRequest.send(null)},PIXI.SpriteSheetLoader.prototype.onJSONLoaded=function(){if(4==this.ajaxRequest.readyState&&(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))){var jsonData=eval("("+this.ajaxRequest.responseText+")"),textureUrl=this.baseUrl+jsonData.meta.image,image=new PIXI.ImageLoader(textureUrl,this.crossorigin);this.texture=image.texture.baseTexture;var scope=this;image.addEventListener("loaded",function(){scope.onLoaded()});var frameData=jsonData.frames;for(var i in frameData){var rect=frameData[i].frame;rect&&(PIXI.TextureCache[i]=new PIXI.Texture(this.texture,{x:rect.x,y:rect.y,width:rect.w,height:rect.h}),frameData[i].trimmed&&(PIXI.TextureCache[i].realSize=frameData[i].spriteSourceSize,PIXI.TextureCache[i].trim.x=0))}image.load()}},PIXI.SpriteSheetLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},PIXI.ImageLoader=function(t,e){PIXI.EventTarget.call(this),this.texture=PIXI.Texture.fromImage(t,e)},PIXI.ImageLoader.constructor=PIXI.ImageLoader,PIXI.ImageLoader.prototype.load=function(){if(this.texture.baseTexture.hasLoaded)this.onLoaded();else{var t=this;this.texture.baseTexture.addEventListener("loaded",function(){t.onLoaded()})}},PIXI.ImageLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},PIXI.BitmapFontLoader=function(t,e){PIXI.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.crossorigin=e},PIXI.BitmapFontLoader.constructor=PIXI.BitmapFontLoader,PIXI.BitmapFontLoader.prototype.load=function(){this.ajaxRequest=new XMLHttpRequest;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onXMLLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/xml"),this.ajaxRequest.send(null)},PIXI.BitmapFontLoader.prototype.onXMLLoaded=function(){if(4==this.ajaxRequest.readyState&&(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))){var t=this.baseUrl+this.ajaxRequest.responseXML.getElementsByTagName("page")[0].attributes.getNamedItem("file").nodeValue,e=new PIXI.ImageLoader(t,this.crossorigin);this.texture=e.texture.baseTexture;var i={},r=this.ajaxRequest.responseXML.getElementsByTagName("info")[0],s=this.ajaxRequest.responseXML.getElementsByTagName("common")[0];i.font=r.attributes.getNamedItem("face").nodeValue,i.size=parseInt(r.attributes.getNamedItem("size").nodeValue,10),i.lineHeight=parseInt(s.attributes.getNamedItem("lineHeight").nodeValue,10),i.chars={};for(var n=this.ajaxRequest.responseXML.getElementsByTagName("char"),a=0;n.length>a;a++){var o=parseInt(n[a].attributes.getNamedItem("id").nodeValue,10),h={x:parseInt(n[a].attributes.getNamedItem("x").nodeValue,10),y:parseInt(n[a].attributes.getNamedItem("y").nodeValue,10),width:parseInt(n[a].attributes.getNamedItem("width").nodeValue,10),height:parseInt(n[a].attributes.getNamedItem("height").nodeValue,10)};PIXI.TextureCache[o]=new PIXI.Texture(this.texture,h),i.chars[o]={xOffset:parseInt(n[a].attributes.getNamedItem("xoffset").nodeValue,10),yOffset:parseInt(n[a].attributes.getNamedItem("yoffset").nodeValue,10),xAdvance:parseInt(n[a].attributes.getNamedItem("xadvance").nodeValue,10),kerning:{}}}var u=this.ajaxRequest.responseXML.getElementsByTagName("kerning");for(a=0;u.length>a;a++){var c=parseInt(u[a].attributes.getNamedItem("first").nodeValue,10),d=parseInt(u[a].attributes.getNamedItem("second").nodeValue,10),l=parseInt(u[a].attributes.getNamedItem("amount").nodeValue,10);i.chars[d].kerning[c]=l}PIXI.BitmapText.fonts[i.font]=i;var I=this;e.addEventListener("loaded",function(){I.onLoaded()}),e.load()}},PIXI.BitmapFontLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=PIXI),exports.PIXI=PIXI):root.PIXI=PIXI}).call(this); \ No newline at end of file +(function(){function HEXtoRGB(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}function determineMatrixArrayType(){return PIXI.Matrix="undefined"!=typeof Float32Array?Float32Array:Array,PIXI.Matrix}var root=this,PIXI=PIXI||{};PIXI.Point=function(t,e){this.x=t||0,this.y=e||0},PIXI.Point.prototype.clone=function(){return new PIXI.Point(this.x,this.y)},PIXI.Point.constructor=PIXI.Point,PIXI.Rectangle=function(t,e,i,r){this.x=t||0,this.y=e||0,this.width=i||0,this.height=r||0},PIXI.Rectangle.prototype.clone=function(){return new PIXI.Rectangle(this.x,this.y,this.width,this.height)},PIXI.Rectangle.constructor=PIXI.Rectangle,PIXI.DisplayObject=function(){this.position=new PIXI.Point,this.scale=new PIXI.Point(1,1),this.pivot=new PIXI.Point(0,0),this.rotation=0,this.alpha=1,this.visible=!0,this.worldVisible=!1,this.parent=null,this.stage=null,this.hitArea=null,this.worldAlpha=1,this.color=[],this.worldTransform=PIXI.mat3.create(),this.localTransform=PIXI.mat3.create(),this.dynamic=!0,this._sr=0,this._cr=1,this.childIndex=0,this.renderable=!1,this.interactive=!1,this.buttonMode=!1},PIXI.DisplayObject.constructor=PIXI.DisplayObject,PIXI.DisplayObject.prototype.setInteractive=function(t){this.interactive=t,this.stage&&(this.stage.dirty=!0)},PIXI.DisplayObject.prototype.updateTransform=function(){this.rotation!=this.rotationCache&&(this.rotationCache=this.rotation,this._sr=Math.sin(this.rotation),this._cr=Math.cos(this.rotation));var t=this.localTransform,e=this.parent.worldTransform,i=this.worldTransform;t[0]=this._cr*this.scale.x,t[1]=-this._sr*this.scale.y,t[3]=this._sr*this.scale.x,t[4]=this._cr*this.scale.y;var r=this.pivot.x,s=this.pivot.y;t[2]=this.position.x-t[0]*r-s*t[1],t[5]=this.position.y-t[4]*s-r*t[3];var n=t[0],a=t[1],o=t[2],h=t[3],u=t[4],d=t[5],c=e[0],l=e[1],I=e[2],p=e[3],f=e[4],x=e[5];i[0]=c*n+l*h,i[1]=c*a+l*u,i[2]=c*o+l*d+I,i[3]=p*n+f*h,i[4]=p*a+f*u,i[5]=p*o+f*d+x,this.worldAlpha=this.alpha*this.parent.worldAlpha},PIXI.DisplayObjectContainer=function(){PIXI.DisplayObject.call(this),this.children=[],this.renderable=!1},PIXI.DisplayObjectContainer.constructor=PIXI.DisplayObjectContainer,PIXI.DisplayObjectContainer.prototype=Object.create(PIXI.DisplayObject.prototype),PIXI.DisplayObjectContainer.prototype.addChild=function(t){void 0!=t.parent&&t.parent.removeChild(t),t.parent=this,t.childIndex=this.children.length,this.children.push(t),this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},PIXI.DisplayObjectContainer.prototype.addChildAt=function(t,e){if(!(e>=0&&this.children.length>=e))throw Error(t+" The index "+e+" supplied is out of bounds "+this.children.length);void 0!=t.parent&&t.parent.removeChild(t),e==this.children.length?this.children.push(t):this.children.splice(e,0,t),t.parent=this,t.childIndex=e;for(var i=this.children.length,r=e;i>r;r++)this.children[r].childIndex=r;this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},PIXI.DisplayObjectContainer.prototype.swapChildren=function(t,e){var i=this.children.indexOf(t),r=this.children.indexOf(e);if(-1===i||-1===r)throw Error(t+" Both the supplied DisplayObjects must be a child of the caller "+this);this.stage&&(this.stage.__removeChild(t),this.stage.__removeChild(e),this.stage.__addChild(t),this.stage.__addChild(e)),t.childIndex=r,e.childIndex=i,this.children[i]=e,this.children[r]=t},PIXI.DisplayObjectContainer.prototype.getChildAt=function(t){if(t>=0&&this.children.length>t)return this.children[t];throw Error(child+" Both the supplied DisplayObjects must be a child of the caller "+this)},PIXI.DisplayObjectContainer.prototype.removeChild=function(t){var e=this.children.indexOf(t);if(-1===e)throw Error(t+" The supplied DisplayObject must be a child of the caller "+this);this.stage&&this.stage.__removeChild(t),t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.parent=void 0,this.children.splice(e,1);for(var i=e,r=this.children.length;r>i;i++)this.children[i].childIndex-=1},PIXI.DisplayObjectContainer.prototype.updateTransform=function(){if(this.visible){PIXI.DisplayObject.prototype.updateTransform.call(this);for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform()}},PIXI.blendModes={},PIXI.blendModes.NORMAL=0,PIXI.blendModes.SCREEN=1,PIXI.Sprite=function(t){PIXI.DisplayObjectContainer.call(this),this.anchor=new PIXI.Point,this.texture=t,this.blendMode=PIXI.blendModes.NORMAL,this._width=0,this._height=0,t.baseTexture.hasLoaded?this.updateFrame=!0:(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},PIXI.Sprite.constructor=PIXI.Sprite,PIXI.Sprite.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),Object.defineProperty(PIXI.Sprite.prototype,"width",{get:function(){return this.scale.x*this.texture.frame.width},set:function(t){this.scale.x=t/this.texture.frame.width,this._width=t}}),Object.defineProperty(PIXI.Sprite.prototype,"height",{get:function(){return this.scale.y*this.texture.frame.height},set:function(t){this.scale.y=t/this.texture.frame.height,this._height=t}}),PIXI.Sprite.prototype.setTexture=function(t){this.texture.baseTexture!=t.baseTexture&&(this.textureChange=!0),this.texture=t,this.updateFrame=!0},PIXI.Sprite.prototype.onTextureUpdate=function(){this._width&&(this.scale.x=this._width/this.texture.frame.width),this._height&&(this.scale.y=this._height/this.texture.frame.height),this.updateFrame=!0},PIXI.Sprite.fromFrame=function(t){var e=PIXI.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache"+this);return new PIXI.Sprite(e)},PIXI.Sprite.fromImage=function(t){var e=PIXI.Texture.fromImage(t);return new PIXI.Sprite(e)},PIXI.MovieClip=function(t){PIXI.Sprite.call(this,t[0]),this.textures=t,this.currentFrame=0,this.animationSpeed=1,this.loop=!0,this.onComplete=null,this.playing},PIXI.MovieClip.constructor=PIXI.MovieClip,PIXI.MovieClip.prototype=Object.create(PIXI.Sprite.prototype),PIXI.MovieClip.prototype.stop=function(){this.playing=!1},PIXI.MovieClip.prototype.play=function(){this.playing=!0},PIXI.MovieClip.prototype.gotoAndStop=function(t){this.playing=!1,this.currentFrame=t;var e=0|this.currentFrame+.5;this.setTexture(this.textures[e%this.textures.length])},PIXI.MovieClip.prototype.gotoAndPlay=function(t){this.currentFrame=t,this.playing=!0},PIXI.MovieClip.prototype.updateTransform=function(){if(PIXI.Sprite.prototype.updateTransform.call(this),this.playing){this.currentFrame+=this.animationSpeed;var t=0|this.currentFrame+.5;this.loop||this.textures.length>t?this.setTexture(this.textures[t%this.textures.length]):t>=this.textures.length&&(this.gotoAndStop(this.textures.length-1),this.onComplete&&this.onComplete())}},PIXI.Text=function(t,e){this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"),PIXI.Sprite.call(this,PIXI.Texture.fromCanvas(this.canvas)),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},PIXI.Text.constructor=PIXI.Text,PIXI.Text.prototype=Object.create(PIXI.Sprite.prototype),PIXI.Text.prototype.setStyle=function(t){t=t||{},t.font=t.font||"bold 20pt Arial",t.fill=t.fill||"black",t.align=t.align||"left",t.strokeThickness=t.strokeThickness||0,this.style=t,this.dirty=!0},PIXI.Sprite.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},PIXI.Text.prototype.updateText=function(){this.context.font=this.style.font;for(var t=this.text.split(/(?:\r\n|\r|\n)/),e=[],i=0,r=0;t.length>r;r++){var s=this.context.measureText(t[r]).width;e[r]=s,i=Math.max(i,s)}this.canvas.width=i+this.style.strokeThickness;var n=this.determineFontHeight("font: "+this.style.font+";")+this.style.strokeThickness;for(this.canvas.height=n*t.length,this.context.fillStyle=this.style.fill,this.context.font=this.style.font,this.context.strokeStyle=this.style.stroke,this.context.lineWidth=this.style.strokeThickness,this.context.textBaseline="top",r=0;t.length>r;r++){var a=new PIXI.Point(this.style.strokeThickness/2,this.style.strokeThickness/2+r*n);"right"==this.style.align?a.x+=i-e[r]:"center"==this.style.align&&(a.x+=(i-e[r])/2),this.style.stroke&&this.style.strokeThickness&&this.context.strokeText(t[r],a.x,a.y),this.style.fill&&this.context.fillText(t[r],a.x,a.y)}this.updateTexture()},PIXI.Text.prototype.updateTexture=function(){this.texture.baseTexture.width=this.canvas.width,this.texture.baseTexture.height=this.canvas.height,this.texture.frame.width=this.canvas.width,this.texture.frame.height=this.canvas.height,this._width=this.canvas.width,this._height=this.canvas.height,PIXI.texturesToUpdate.push(this.texture.baseTexture)},PIXI.Text.prototype.updateTransform=function(){this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype.updateTransform.call(this)},PIXI.Text.prototype.determineFontHeight=function(t){var e=PIXI.Text.heightCache[t];if(!e){var i=document.getElementsByTagName("body")[0],r=document.createElement("div"),s=document.createTextNode("M");r.appendChild(s),r.setAttribute("style",t),i.appendChild(r),e=r.offsetHeight,PIXI.Text.heightCache[t]=e,i.removeChild(r)}return e},PIXI.Text.prototype.destroy=function(t){t&&this.texture.destroy()},PIXI.Text.heightCache={},PIXI.BitmapText=function(t,e){PIXI.DisplayObjectContainer.call(this),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},PIXI.BitmapText.constructor=PIXI.BitmapText,PIXI.BitmapText.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.BitmapText.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},PIXI.BitmapText.prototype.setStyle=function(t){t=t||{},t.align=t.align||"left",this.style=t;var e=t.font.split(" ");this.fontName=e[e.length-1],this.fontSize=e.length>=2?parseInt(e[e.length-2],10):PIXI.BitmapText.fonts[this.fontName].size,this.dirty=!0},PIXI.BitmapText.prototype.updateText=function(){for(var t=PIXI.BitmapText.fonts[this.fontName],e=new PIXI.Point,i=null,r=[],s=0,n=[],a=0,o=this.fontSize/t.size,h=0;this.text.length>h;h++){var u=this.text.charCodeAt(h);if(/(?:\r\n|\r|\n)/.test(this.text.charAt(h)))n.push(e.x),s=Math.max(s,e.x),a++,e.x=0,e.y+=t.lineHeight,i=null;else{var d=t.chars[u];d&&(i&&d[i]&&(e.x+=d.kerning[i]),r.push({line:a,charCode:u,position:new PIXI.Point(e.x+d.xOffset,e.y+d.yOffset)}),e.x+=d.xAdvance,i=u)}}n.push(e.x),s=Math.max(s,e.x);var c=[];for(h=0;a>=h;h++){var l=0;"right"==this.style.align?l=s-n[h]:"center"==this.style.align&&(l=(s-n[h])/2),c.push(l)}for(h=0;r.length>h;h++){var I=PIXI.Sprite.fromFrame(r[h].charCode);I.position.x=(r[h].position.x+c[r[h].line])*o,I.position.y=r[h].position.y*o,I.scale.x=I.scale.y=o,this.addChild(I)}this.width=e.x*o,this.height=(e.y+t.lineHeight)*o},PIXI.BitmapText.prototype.updateTransform=function(){if(this.dirty){for(;this.children.length>0;)this.removeChild(this.getChildAt(0));this.updateText(),this.dirty=!1}PIXI.DisplayObjectContainer.prototype.updateTransform.call(this)},PIXI.BitmapText.fonts={},PIXI.InteractionManager=function(t){this.stage=t,this.tempPoint=new PIXI.Point,this.mouseoverEnabled=!0,this.mouse=new PIXI.InteractionData,this.touchs={},this.pool=[],this.interactiveItems=[],this.last=0},PIXI.InteractionManager.constructor=PIXI.InteractionManager,PIXI.InteractionManager.prototype.collectInteractiveSprite=function(t,e){for(var i=t.children,r=i.length,s=r-1;s>=0;s--){var n=i[s];n.interactive?(e.interactiveChildren=!0,this.interactiveItems.push(n),n.children.length>0&&this.collectInteractiveSprite(n,n)):(n.__iParent=null,n.children.length>0&&this.collectInteractiveSprite(n,e))}},PIXI.InteractionManager.prototype.setTarget=function(t){window.navigator.msPointerEnabled&&(t.view.style["-ms-content-zooming"]="none",t.view.style["-ms-touch-action"]="none"),this.target=t,t.view.addEventListener("mousemove",this.onMouseMove.bind(this),!0),t.view.addEventListener("mousedown",this.onMouseDown.bind(this),!0),document.body.addEventListener("mouseup",this.onMouseUp.bind(this),!0),t.view.addEventListener("mouseout",this.onMouseUp.bind(this),!0),t.view.addEventListener("touchstart",this.onTouchStart.bind(this),!0),t.view.addEventListener("touchend",this.onTouchEnd.bind(this),!0),t.view.addEventListener("touchmove",this.onTouchMove.bind(this),!0)},PIXI.InteractionManager.prototype.update=function(){if(this.target){var t=Date.now(),e=t-this.last;if(e=30*e/1e3,!(1>e)){if(this.last=t,this.dirty){this.dirty=!1,this.interactiveItems.length;for(var i=0;this.interactiveItems.length>i;i++)this.interactiveItems[i].interactiveChildren=!1;this.interactiveItems=[],this.stage.interactive&&this.interactiveItems.push(this.stage),this.collectInteractiveSprite(this.stage,this.stage)}var r=this.interactiveItems.length;this.target.view.style.cursor="default";for(var i=0;r>i;i++){var s=this.interactiveItems[i];s.visible&&(s.mouseover||s.mouseout||s.buttonMode)&&(s.__hit=this.hitTest(s,this.mouse),s.__hit?(s.buttonMode&&(this.target.view.style.cursor="pointer"),s.__isOver||(s.mouseover&&s.mouseover(this.mouse),s.__isOver=!0)):s.__isOver&&(s.mouseout&&s.mouseout(this.mouse),s.__isOver=!1))}}}},PIXI.InteractionManager.prototype.onMouseMove=function(t){t.preventDefault();var e=this.target.view.getBoundingClientRect();this.mouse.global.x=(t.clientX-e.left)*(this.target.width/e.width),this.mouse.global.y=(t.clientY-e.top)*(this.target.height/e.height);var i=this.interactiveItems.length;this.mouse.global;for(var r=0;i>r;r++){var s=this.interactiveItems[r];s.mousemove&&s.mousemove(this.mouse)}},PIXI.InteractionManager.prototype.onMouseDown=function(t){t.preventDefault();var e=this.interactiveItems.length;this.mouse.global,this.stage;for(var i=0;e>i;i++){var r=this.interactiveItems[i];if((r.mousedown||r.click)&&(r.__mouseIsDown=!0,r.__hit=this.hitTest(r,this.mouse),r.__hit&&(r.mousedown&&r.mousedown(this.mouse),r.__isDown=!0,!r.interactiveChildren)))break}},PIXI.InteractionManager.prototype.onMouseUp=function(t){t.preventDefault(),this.mouse.global;for(var e=this.interactiveItems.length,i=!1,r=0;e>r;r++){var s=this.interactiveItems[r];(s.mouseup||s.mouseupoutside||s.click)&&(s.__hit=this.hitTest(s,this.mouse),s.__hit&&!i?(s.mouseup&&s.mouseup(this.mouse),s.__isDown&&s.click&&s.click(this.mouse),s.interactiveChildren||(i=!0)):s.__isDown&&s.mouseupoutside&&s.mouseupoutside(this.mouse),s.__isDown=!1)}},PIXI.InteractionManager.prototype.hitTest=function(t,e){var i=e.global;if(!t.visible)return!1;if(t instanceof PIXI.Sprite){var r=t.worldTransform,s=r[0],n=r[1],a=r[2],o=r[3],h=r[4],u=r[5],d=1/(s*h+n*-o),c=h*d*i.x+-n*d*i.y+(u*n-a*h)*d,l=s*d*i.y+-o*d*i.x+(-u*s+a*o)*d,I=t.texture.frame.width,p=t.texture.frame.height,f=-I*t.anchor.x;if(c>f&&f+I>c){var x=-p*t.anchor.y;if(l>x&&x+p>l)return e.target=t,!0}}else if(t.hitArea){var r=t.worldTransform,v=t.hitArea,s=r[0],n=r[1],a=r[2],o=r[3],h=r[4],u=r[5],d=1/(s*h+n*-o),c=h*d*i.x+-n*d*i.y+(u*n-a*h)*d,l=s*d*i.y+-o*d*i.x+(-u*s+a*o)*d,f=v.x;if(c>f&&f+v.width>c){var x=v.y;if(l>x&&x+v.height>l)return!0}}for(var P=t.children.length,g=0;P>g;g++){var b=t.children[g],X=this.hitTest(b,e);if(X)return!0}return!1},PIXI.InteractionManager.prototype.onTouchMove=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.touchs[s.identifier];n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height)}for(var a=this.interactiveItems.length,r=0;a>r;r++){var o=this.interactiveItems[r];o.touchmove&&o.touchmove(n)}},PIXI.InteractionManager.prototype.onTouchStart=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.pool.pop();n||(n=new PIXI.InteractionData),this.touchs[s.identifier]=n,n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height);for(var a=this.interactiveItems.length,o=0;a>o;o++){var h=this.interactiveItems[o];if((h.touchstart||h.tap)&&(h.__hit=this.hitTest(h,n),h.__hit&&(h.touchstart&&h.touchstart(n),h.__isDown=!0,h.__touchData=n,!h.interactiveChildren)))break}}},PIXI.InteractionManager.prototype.onTouchEnd=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.touchs[s.identifier],a=!1;n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var u=this.interactiveItems[h],d=u.__touchData;u.__hit=this.hitTest(u,n),d==n&&((u.touchend||u.tap)&&(u.__hit&&!a?(u.touchend&&u.touchend(n),u.__isDown&&u.tap&&u.tap(n),u.interactiveChildren||(a=!0)):u.__isDown&&u.touchendoutside&&u.touchendoutside(n),u.__isDown=!1),u.__touchData=null)}this.pool.push(n),this.touchs[s.identifier]=null}},PIXI.InteractionData=function(){this.global=new PIXI.Point,this.local=new PIXI.Point,this.target},PIXI.InteractionData.prototype.getLocalPosition=function(t){var e=t.worldTransform,i=this.global,r=e[0],s=e[1],n=e[2],a=e[3],o=e[4],h=e[5],u=1/(r*o+s*-a);return new PIXI.Point(o*u*i.x+-s*u*i.y+(h*s-n*o)*u,r*u*i.y+-a*u*i.x+(-h*r+n*a)*u)},PIXI.InteractionData.constructor=PIXI.InteractionData,PIXI.Stage=function(t,e){PIXI.DisplayObjectContainer.call(this),this.worldTransform=PIXI.mat3.create(),this.__childrenAdded=[],this.__childrenRemoved=[],this.childIndex=0,this.stage=this,this.stage.hitArea=new PIXI.Rectangle(0,0,1e5,1e5),this.interactive=!!e,this.interactionManager=new PIXI.InteractionManager(this),this.setBackgroundColor(t),this.worldVisible=!0},PIXI.Stage.constructor=PIXI.Stage,PIXI.Stage.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Stage.prototype.updateTransform=function(){this.worldAlpha=1;for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform();this.dirty&&(this.dirty=!1,this.interactionManager.dirty=!0),this.interactive&&this.interactionManager.update()},PIXI.Stage.prototype.setBackgroundColor=function(t){this.backgroundColor=t||0,this.backgroundColorSplit=HEXtoRGB(this.backgroundColor),this.backgroundColorString="#"+this.backgroundColor.toString(16)},PIXI.Stage.prototype.getMousePosition=function(){return this.interactionManager.mouse.global},PIXI.Stage.prototype.__addChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=this,t.children)for(var e=0;t.children.length>e;e++)this.__addChild(t.children[e])},PIXI.Stage.prototype.__removeChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=void 0,t.children)for(var e=0,i=t.children.length;i>e;e++)this.__removeChild(t.children[e])},window.requestAnimFrame=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(t){window.setTimeout(t,1e3/60)}}(),"function"!=typeof Function.prototype.bind&&(Function.prototype.bind=function(){var t=Array.prototype.slice;return function(e){function i(){var n=s.concat(t.call(arguments));r.apply(this instanceof i?this:e,n)}var r=this,s=t.call(arguments,1);if("function"!=typeof r)throw new TypeError;return i.prototype=function n(t){return t&&(n.prototype=t),this instanceof n?void 0:new n}(r.prototype),i}}());var AjaxRequest=function(){var t=["Msxml2.XMLHTTP","Microsoft.XMLHTTP"];if(!window.ActiveXObject)return window.XMLHttpRequest?new XMLHttpRequest:!1;for(var e=0;t.length>e;e++)try{return new ActiveXObject(t[e])}catch(i){}};PIXI.EventTarget=function(){var t={};this.addEventListener=this.on=function(e,i){void 0===t[e]&&(t[e]=[]),-1===t[e].indexOf(i)&&t[e].push(i)},this.dispatchEvent=this.emit=function(e){for(var i in t[e.type])t[e.type][i](e)},this.removeEventListener=this.off=function(e,i){var r=t[e].indexOf(i);-1!==r&&t[e].splice(r,1)}},determineMatrixArrayType(),PIXI.mat3={},PIXI.mat3.create=function(){var t=new PIXI.Matrix(9);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},PIXI.mat4={},PIXI.mat4.create=function(){var t=new PIXI.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},PIXI.mat3.multiply=function(t,e,i){i||(i=t);var r=t[0],s=t[1],n=t[2],a=t[3],o=t[4],h=t[5],u=t[6],d=t[7],c=t[8],l=e[0],I=e[1],p=e[2],f=e[3],x=e[4],v=e[5],P=e[6],g=e[7],b=e[8];return i[0]=l*r+I*a+p*u,i[1]=l*s+I*o+p*d,i[2]=l*n+I*h+p*c,i[3]=f*r+x*a+v*u,i[4]=f*s+x*o+v*d,i[5]=f*n+x*h+v*c,i[6]=P*r+g*a+b*u,i[7]=P*s+g*o+b*d,i[8]=P*n+g*h+b*c,i},PIXI.mat3.toMat4=function(t,e){return e||(e=PIXI.mat4.create()),e[15]=1,e[14]=0,e[13]=0,e[12]=0,e[11]=0,e[10]=t[8],e[9]=t[7],e[8]=t[6],e[7]=0,e[6]=t[5],e[5]=t[4],e[4]=t[3],e[3]=0,e[2]=t[2],e[1]=t[1],e[0]=t[0],e},PIXI.mat4.create=function(){var t=new PIXI.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},PIXI.mat4.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],s=t[3],n=t[6],a=t[7],o=t[11];return t[1]=t[4],t[2]=t[8],t[3]=t[12],t[4]=i,t[6]=t[9],t[7]=t[13],t[8]=r,t[9]=n,t[11]=t[14],t[12]=s,t[13]=a,t[14]=o,t}return e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=t[1],e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=t[2],e[9]=t[6],e[10]=t[10],e[11]=t[14],e[12]=t[3],e[13]=t[7],e[14]=t[11],e[15]=t[15],e},PIXI.mat4.multiply=function(t,e,i){i||(i=t);var r=t[0],s=t[1],n=t[2],a=t[3],o=t[4],h=t[5],u=t[6],d=t[7],c=t[8],l=t[9],I=t[10],p=t[11],f=t[12],x=t[13],v=t[14],P=t[15],g=e[0],b=e[1],X=e[2],m=e[3];return i[0]=g*r+b*o+X*c+m*f,i[1]=g*s+b*h+X*l+m*x,i[2]=g*n+b*u+X*I+m*v,i[3]=g*a+b*d+X*p+m*P,g=e[4],b=e[5],X=e[6],m=e[7],i[4]=g*r+b*o+X*c+m*f,i[5]=g*s+b*h+X*l+m*x,i[6]=g*n+b*u+X*I+m*v,i[7]=g*a+b*d+X*p+m*P,g=e[8],b=e[9],X=e[10],m=e[11],i[8]=g*r+b*o+X*c+m*f,i[9]=g*s+b*h+X*l+m*x,i[10]=g*n+b*u+X*I+m*v,i[11]=g*a+b*d+X*p+m*P,g=e[12],b=e[13],X=e[14],m=e[15],i[12]=g*r+b*o+X*c+m*f,i[13]=g*s+b*h+X*l+m*x,i[14]=g*n+b*u+X*I+m*v,i[15]=g*a+b*d+X*p+m*P,i},PIXI.autoDetectRenderer=function(t,e,i,r){t||(t=800),e||(e=600);var s=function(){try{return!!window.WebGLRenderingContext&&!!document.createElement("canvas").getContext("experimental-webgl")}catch(t){return!1}}();return s?new PIXI.WebGLRenderer(t,e,i,r):new PIXI.CanvasRenderer(t,e,i,r)},PIXI.shaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * vColor;","}"],PIXI.shaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform mat4 uMVMatrix;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","gl_Position = uMVMatrix * vec4(aVertexPosition, 1.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],PIXI.CompileVertexShader=function(t,e){return PIXI._CompileShader(t,e,t.VERTEX_SHADER)},PIXI.CompileFragmentShader=function(t,e){return PIXI._CompileShader(t,e,t.FRAGMENT_SHADER)},PIXI._CompileShader=function(t,e,i){var r=e.join("\n"),s=t.createShader(i);return t.shaderSource(s,r),t.compileShader(s),t.getShaderParameter(s,t.COMPILE_STATUS)?s:(alert(t.getShaderInfoLog(s)),null)},PIXI._defaultFrame=new PIXI.Rectangle(0,0,1,1),PIXI.gl,PIXI.WebGLRenderer=function(t,e,i,r){this.transparent=!!r,this.width=t||800,this.height=e||600,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height;var s=this;this.view.addEventListener("webglcontextlost",function(t){s.handleContextLost(t)},!1),this.view.addEventListener("webglcontextrestored",function(t){s.handleContextRestored(t)},!1),this.batchs=[];try{PIXI.gl=this.gl=this.view.getContext("experimental-webgl",{alpha:this.transparent,antialias:!1,premultipliedAlpha:!0})}catch(n){throw Error(" This browser does not support webGL. Try using the canvas renderer"+this)}this.initShaders();var a=this.gl;PIXI.WebGLRenderer.gl=a,this.batch=new PIXI.WebGLBatch(a),a.disable(a.DEPTH_TEST),a.disable(a.CULL_FACE),a.enable(a.BLEND),a.colorMask(!0,!0,!0,this.transparent),this.projectionMatrix=PIXI.mat4.create(),this.resize(this.width,this.height),this.contextLost=!1,this.stageRenderGroup=new PIXI.WebGLRenderGroup(this.gl)},PIXI.WebGLRenderer.constructor=PIXI.WebGLRenderer,PIXI.WebGLRenderer.getBatch=function(){return 0==PIXI._batchs.length?new PIXI.WebGLBatch(PIXI.WebGLRenderer.gl):PIXI._batchs.pop()},PIXI.WebGLRenderer.returnBatch=function(t){t.clean(),PIXI._batchs.push(t)},PIXI.WebGLRenderer.prototype.initShaders=function(){var t=this.gl,e=PIXI.CompileFragmentShader(t,PIXI.shaderFragmentSrc),i=PIXI.CompileVertexShader(t,PIXI.shaderVertexSrc);PIXI.shaderProgram=t.createProgram();var r=PIXI.shaderProgram;t.attachShader(r,i),t.attachShader(r,e),t.linkProgram(r),t.getProgramParameter(r,t.LINK_STATUS)||alert("Could not initialise shaders"),t.useProgram(r),r.vertexPositionAttribute=t.getAttribLocation(r,"aVertexPosition"),t.enableVertexAttribArray(r.vertexPositionAttribute),r.textureCoordAttribute=t.getAttribLocation(r,"aTextureCoord"),t.enableVertexAttribArray(r.textureCoordAttribute),r.colorAttribute=t.getAttribLocation(r,"aColor"),t.enableVertexAttribArray(r.colorAttribute),r.mvMatrixUniform=t.getUniformLocation(r,"uMVMatrix"),r.samplerUniform=t.getUniformLocation(r,"uSampler")},PIXI.WebGLRenderer.prototype.render=function(t){if(!this.contextLost){this.__stage!==t&&(this.__stage=t,this.stageRenderGroup.setRenderable(t)),PIXI.WebGLRenderer.updateTextures(),t.updateTransform();var e=this.gl;if(e.colorMask(!0,!0,!0,this.transparent),e.viewport(0,0,this.width,this.height),e.bindFramebuffer(e.FRAMEBUFFER,null),e.clearColor(t.backgroundColorSplit[0],t.backgroundColorSplit[1],t.backgroundColorSplit[2],this.transparent),e.clear(e.COLOR_BUFFER_BIT),this.stageRenderGroup.backgroundColor=t.backgroundColorSplit,this.stageRenderGroup.render(this.projectionMatrix),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),PIXI.Texture.frameUpdates.length>0){for(var i=0;PIXI.Texture.frameUpdates.length>i;i++)PIXI.Texture.frameUpdates[i].updateFrame=!1;PIXI.Texture.frameUpdates=[]}}},PIXI.WebGLRenderer.updateTextures=function(){for(var t=0;PIXI.texturesToUpdate.length>t;t++)this.updateTexture(PIXI.texturesToUpdate[t]);for(var t=0;PIXI.texturesToDestroy.length>t;t++)this.destroyTexture(PIXI.texturesToDestroy[t]);PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[]},PIXI.WebGLRenderer.updateTexture=function(t){var e=PIXI.gl;t._glTexture||(t._glTexture=e.createTexture()),t.hasLoaded&&(e.bindTexture(e.TEXTURE_2D,t._glTexture),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t.source),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),t._powerOf2?(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT)):(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)),e.bindTexture(e.TEXTURE_2D,null))},PIXI.WebGLRenderer.prototype.destroyTexture=function(t){var e=this.gl;t._glTexture&&(t._glTexture=e.createTexture(),e.deleteTexture(e.TEXTURE_2D,t._glTexture))},PIXI.WebGLRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e,this.gl.viewport(0,0,this.width,this.height);var i=this.projectionMatrix;i[0]=2/this.width,i[5]=-2/this.height,i[12]=-1,i[13]=1},PIXI.WebGLRenderer.prototype.handleContextLost=function(t){t.preventDefault(),this.contextLost=!0},PIXI.WebGLRenderer.prototype.handleContextRestored=function(){this.gl=this.view.getContext("experimental-webgl",{alpha:!0}),this.initShaders();for(var t=0;PIXI.TextureCache.length>t;t++)this.updateTexture(PIXI.TextureCache[t]);for(var t=0;this.batchs.length>t;t++)this.batchs[t].restoreLostContext(this.gl),this.batchs[t].dirty=!0;PIXI._restoreBatchs(this.gl),this.contextLost=!1},PIXI._batchs=[],PIXI._getBatch=function(t){return 0==PIXI._batchs.length?new PIXI.WebGLBatch(t):PIXI._batchs.pop()},PIXI._returnBatch=function(t){t.clean(),PIXI._batchs.push(t)},PIXI._restoreBatchs=function(t){for(var e=0;PIXI._batchs.length>e;e++)PIXI._batchs[e].restoreLostContext(t)},PIXI.WebGLBatch=function(t){this.gl=t,this.size=0,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer(),this.blendMode=PIXI.blendModes.NORMAL,this.dynamicSize=1},PIXI.WebGLBatch.constructor=PIXI.WebGLBatch,PIXI.WebGLBatch.prototype.clean=function(){this.verticies=[],this.uvs=[],this.indices=[],this.colors=[],this.dynamicSize=1,this.texture=null,this.last=null,this.size=0,this.head,this.tail},PIXI.WebGLBatch.prototype.restoreLostContext=function(t){this.gl=t,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer()},PIXI.WebGLBatch.prototype.init=function(t){t.batch=this,this.dirty=!0,this.blendMode=t.blendMode,this.texture=t.texture.baseTexture,this.head=t,this.tail=t,this.size=1,this.growBatch()},PIXI.WebGLBatch.prototype.insertBefore=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__prev;e.__prev=t,t.__next=e,i?(t.__prev=i,i.__next=t):this.head=t},PIXI.WebGLBatch.prototype.insertAfter=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__next;e.__next=t,t.__prev=e,i?(t.__next=i,i.__prev=t):this.tail=t},PIXI.WebGLBatch.prototype.remove=function(t){return this.size--,0==this.size?(t.batch=null,t.__prev=null,t.__next=null,void 0):(t.__prev?t.__prev.__next=t.__next:(this.head=t.__next,this.head.__prev=null),t.__next?t.__next.__prev=t.__prev:(this.tail=t.__prev,this.tail.__next=null),t.batch=null,t.__next=null,t.__prev=null,this.dirty=!0,void 0)},PIXI.WebGLBatch.prototype.split=function(t){this.dirty=!0;var e=new PIXI.WebGLBatch(this.gl);e.init(t),e.tail=this.tail,this.tail=t.__prev,this.tail.__next=null,t.__prev=null;for(var i=0;t;)i++,t.batch=e,t=t.__next;return e.size=i,this.size-=i,e},PIXI.WebGLBatch.prototype.merge=function(t){this.dirty=!0,this.tail.__next=t.head,t.head.__prev=this.tail,this.size+=t.size,this.tail=t.tail;for(var e=t.head;e;)e.batch=this,e=e.__next},PIXI.WebGLBatch.prototype.growBatch=function(){var t=this.gl;this.dynamicSize=1==this.size?1:1.5*this.size,this.verticies=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.vertexBuffer),t.bufferData(t.ARRAY_BUFFER,this.verticies,t.DYNAMIC_DRAW),this.uvs=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.uvBuffer),t.bufferData(t.ARRAY_BUFFER,this.uvs,t.DYNAMIC_DRAW),this.dirtyUVS=!0,this.colors=new Float32Array(4*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.colorBuffer),t.bufferData(t.ARRAY_BUFFER,this.colors,t.DYNAMIC_DRAW),this.dirtyColors=!0,this.indices=new Uint16Array(6*this.dynamicSize);for(var e=this.indices.length/6,i=0;e>i;i++){var r=6*i,s=4*i;this.indices[r+0]=s+0,this.indices[r+1]=s+1,this.indices[r+2]=s+2,this.indices[r+3]=s+0,this.indices[r+4]=s+2,this.indices[r+5]=s+3}t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,this.indexBuffer),t.bufferData(t.ELEMENT_ARRAY_BUFFER,this.indices,t.STATIC_DRAW)},PIXI.WebGLBatch.prototype.refresh=function(){this.gl,this.dynamicSizer;r++)i=this.batchs[r],i instanceof PIXI.WebGLBatch?this.batchs[r].render():i instanceof PIXI.TilingSprite?i.visible&&this.renderTilingSprite(i,t):i instanceof PIXI.Strip&&i.visible&&this.renderStrip(i,t)},PIXI.WebGLRenderGroup.prototype.renderSpecific=function(t,e){PIXI.WebGLRenderer.updateTextures();var i=this.gl;this.checkVisibility(t,t.visible),i.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform,!1,e);var r,s,n,a,o=t.renderable?t:this.getNextRenderable(t),h=o.batch;if(o instanceof PIXI.Sprite){h=o.batch;var u=h.head;if(u==o)r=0;else for(r=1;u.__next!=o;)r++,u=u.__next}else h=o;for(var d,c=t,l=t;l.children.length>0;)l=l.children[l.children.length-1],l.renderable&&(c=l);if(c instanceof PIXI.Sprite){d=c.batch;var u=d.head;if(u==c)n=0;else for(n=1;u.__next!=c;)n++,u=u.__next}else d=c;if(h==d)return h instanceof PIXI.WebGLBatch?h.render(r,n+1):h instanceof PIXI.TilingSprite?h.visible&&this.renderTilingSprite(h,e):h instanceof PIXI.Strip?h.visible&&this.renderStrip(h,e):h instanceof PIXI.CustomRenderable&&h.visible&&h.renderWebGL(this,e),void 0;s=this.batchs.indexOf(h),a=this.batchs.indexOf(d),h instanceof PIXI.WebGLBatch?h.render(r):h instanceof PIXI.TilingSprite?h.visible&&this.renderTilingSprite(h,e):h instanceof PIXI.Strip?h.visible&&this.renderStrip(h,e):h instanceof PIXI.CustomRenderable&&h.visible&&h.renderWebGL(this,e);for(var I=s+1;a>I;I++)renderable=this.batchs[I],renderable instanceof PIXI.WebGLBatch?this.batchs[I].render():renderable instanceof PIXI.TilingSprite?renderable.visible&&this.renderTilingSprite(renderable,e):renderable instanceof PIXI.Strip?renderable.visible&&this.renderStrip(renderable,e):renderable instanceof PIXI.CustomRenderable&&renderable.visible&&renderable.renderWebGL(this,e);d instanceof PIXI.WebGLBatch?d.render(0,n+1):d instanceof PIXI.TilingSprite?d.visible&&this.renderTilingSprite(d):d instanceof PIXI.Strip?d.visible&&this.renderStrip(d):d instanceof PIXI.CustomRenderable&&d.visible&&d.renderWebGL(this,e)},PIXI.WebGLRenderGroup.prototype.checkVisibility=function(t,e){for(var i=t.children,r=0;i.length>r;r++){var s=i[r];s.worldVisible=s.visible&&e,s.textureChange&&(s.textureChange=!1,s.worldVisible&&(this.removeDisplayObject(s),this.addDisplayObject(s))),s.children.length>0&&this.checkVisibility(s,s.worldVisible)}},PIXI.WebGLRenderGroup.prototype.addDisplayObject=function(t){if(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.__renderGroup=this,t.renderable){var e=this.getPreviousRenderable(t),i=this.getNextRenderable(t);if(t instanceof PIXI.Sprite){var r,s;if(e instanceof PIXI.Sprite){if(r=e.batch,r&&r.texture==t.texture.baseTexture&&r.blendMode==t.blendMode)return r.insertAfter(t,e),void 0}else r=e;if(i)if(i instanceof PIXI.Sprite){if(s=i.batch){if(s.texture==t.texture.baseTexture&&s.blendMode==t.blendMode)return s.insertBefore(t,i),void 0;if(s==r){var n=r.split(i),a=PIXI.WebGLRenderer.getBatch(),o=this.batchs.indexOf(r);return a.init(t),this.batchs.splice(o+1,0,a,n),void 0}}}else s=i;var a=PIXI.WebGLRenderer.getBatch();if(a.init(t),r){var o=this.batchs.indexOf(r);this.batchs.splice(o+1,0,a)}else this.batchs.push(a)}else t instanceof PIXI.TilingSprite?(this.initTilingSprite(t),this.batchs.push(t)):t instanceof PIXI.Strip&&(this.initStrip(t),this.batchs.push(t));this.batchUpdate=!0}},PIXI.WebGLRenderGroup.prototype.addDisplayObjectAndChildren=function(t){this.addDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.addDisplayObjectAndChildren(e[i])},PIXI.WebGLRenderGroup.prototype.removeDisplayObject=function(t){if(t.__renderGroup=null,t.renderable){var e;if(t instanceof PIXI.Sprite){var i=t.batch;if(!i)return;i.remove(t),0==i.size&&(e=i)}else e=t;if(e){var r=this.batchs.indexOf(e);if(-1==r)return;if(0==r||r==this.batchs.length-1)return this.batchs.splice(r,1),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e),void 0;if(this.batchs[r-1]instanceof PIXI.WebGLBatch&&this.batchs[r+1]instanceof PIXI.WebGLBatch&&this.batchs[r-1].texture==this.batchs[r+1].texture&&this.batchs[r-1].blendMode==this.batchs[r+1].blendMode)return this.batchs[r-1].merge(this.batchs[r+1]),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e),PIXI.WebGLRenderer.returnBatch(this.batchs[r+1]),this.batchs.splice(r,2),void 0;this.batchs.splice(r,1),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e)}}},PIXI.WebGLRenderGroup.prototype.removeDisplayObjectAndChildren=function(t){if(t.__renderGroup==this){this.removeDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.removeDisplayObjectAndChildren(e[i])}},PIXI.WebGLRenderGroup.prototype.getNextRenderable=function(t){var e=t;do{if(0==e.children.length){if(!e.parent)return null;for(;e.childIndex==e.parent.children.length-1;)if(e=e.parent,e==this.root||!e.parent){e=null;break}e&&(e=e.parent.children[e.childIndex+1])}else e=e.children[0];if(!e)break}while(!e.renderable||!e.__renderGroup);return e},PIXI.WebGLRenderGroup.prototype.getPreviousRenderable=function(t){var e=t;do{if(0==e.childIndex){if(e=e.parent,!e)return null}else for(e=e.parent.children[e.childIndex-1];0!=e.children.length;)e=e.children[e.children.length-1];if(e==this.root)break}while(!e.renderable||!e.__renderGroup);return e},PIXI.WebGLRenderGroup.prototype.initTilingSprite=function(t){var e=this.gl;t.verticies=new Float32Array([0,0,t.width,0,t.width,t.height,0,t.height]),t.uvs=new Float32Array([0,0,1,0,1,1,0,1]),t.colors=new Float32Array([1,1,1,1]),t.indices=new Uint16Array([0,1,3,2]),t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW),t.texture.baseTexture._glTexture?(e.bindTexture(e.TEXTURE_2D,t.texture.baseTexture._glTexture),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT),t.texture.baseTexture._powerOf2=!0):t.texture.baseTexture._powerOf2=!0},PIXI.WebGLRenderGroup.prototype.renderStrip=function(t,e){var i=this.gl,r=PIXI.shaderProgram,s=PIXI.mat3.toMat4(t.worldTransform);PIXI.mat4.transpose(s),PIXI.mat4.multiply(e,s,s),i.uniformMatrix4fv(r.mvMatrixUniform,!1,s),t.blendMode==PIXI.blendModes.NORMAL?i.blendFunc(i.ONE,i.ONE_MINUS_SRC_ALPHA):i.blendFunc(i.ONE,i.ONE_MINUS_SRC_COLOR),t.dirty?(t.dirty=!1,i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferData(i.ARRAY_BUFFER,t.verticies,i.STATIC_DRAW),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferData(i.ARRAY_BUFFER,t.uvs,i.STATIC_DRAW),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.bufferData(i.ARRAY_BUFFER,t.colors,i.STATIC_DRAW),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer),i.bufferData(i.ELEMENT_ARRAY_BUFFER,t.indices,i.STATIC_DRAW)):(i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.verticies),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer)),i.drawElements(i.TRIANGLE_STRIP,t.indices.length,i.UNSIGNED_SHORT,0),i.uniformMatrix4fv(r.mvMatrixUniform,!1,e)},PIXI.WebGLRenderGroup.prototype.renderTilingSprite=function(t,e){var i=this.gl;PIXI.shaderProgram;var r=t.tilePosition,s=t.tileScale,n=r.x/t.texture.baseTexture.width,a=r.y/t.texture.baseTexture.height,o=t.width/t.texture.baseTexture.width/s.x,h=t.height/t.texture.baseTexture.height/s.y;t.uvs[0]=0-n,t.uvs[1]=0-a,t.uvs[2]=1*o-n,t.uvs[3]=0-a,t.uvs[4]=1*o-n,t.uvs[5]=1*h-a,t.uvs[6]=0-n,t.uvs[7]=1*h-a,i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.uvs),this.renderStrip(t,e)},PIXI.WebGLRenderer.prototype.initStrip=function(t){var e=this.gl;this.shaderProgram,t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW)},PIXI.CanvasRenderer=function(t,e,i,r){this.transparent=r,this.width=t||800,this.height=e||600,this.refresh=!0,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height,this.count=0,this.context=this.view.getContext("2d")},PIXI.CanvasRenderer.constructor=PIXI.CanvasRenderer,PIXI.CanvasRenderer.prototype.render=function(t){PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[],t.updateTransform(),this.view.style.backgroundColor==t.backgroundColorString||this.transparent||(this.view.style.backgroundColor=t.backgroundColorString),this.context.setTransform(1,0,0,1,0,0),this.context.clearRect(0,0,this.width,this.height),this.renderDisplayObject(t),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),PIXI.Texture.frameUpdates.length>0&&(PIXI.Texture.frameUpdates=[])},PIXI.CanvasRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e},PIXI.CanvasRenderer.prototype.renderDisplayObject=function(t){var e=t.worldTransform,i=this.context;if(t.visible){if(t instanceof PIXI.Sprite){var r=t.texture.frame;r&&(i.globalAlpha=t.worldAlpha,i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),i.drawImage(t.texture.baseTexture.source,r.x,r.y,r.width,r.height,t.anchor.x*-r.width,t.anchor.y*-r.height,r.width,r.height))}else t instanceof PIXI.Strip?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderStrip(t)):t instanceof PIXI.TilingSprite?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderTilingSprite(t)):t instanceof PIXI.CustomRenderable&&t.renderCanvas(this);for(var s=0;t.children.length>s;s++)this.renderDisplayObject(t.children[s]);this.context.setTransform(1,0,0,1,0,0)}},PIXI.CanvasRenderer.prototype.renderStripFlat=function(t){var e=this.context,i=t.verticies;t.uvs;var r=i.length/2;this.count++,e.beginPath();for(var s=1;r-2>s;s++){var n=2*s,a=i[n],o=i[n+2],h=i[n+4],u=i[n+1],d=i[n+3],c=i[n+5];e.moveTo(a,u),e.lineTo(o,d),e.lineTo(h,c)}e.fillStyle="#FF0000",e.fill(),e.closePath()},PIXI.CanvasRenderer.prototype.renderTilingSprite=function(t){var e=this.context;t.__tilePattern||(t.__tilePattern=e.createPattern(t.texture.baseTexture.source,"repeat")),e.beginPath();var i=t.tilePosition,r=t.tileScale;e.scale(r.x,r.y),e.translate(i.x,i.y),e.fillStyle=t.__tilePattern,e.fillRect(-i.x,-i.y,t.width/r.x,t.height/r.y),e.scale(1/r.x,1/r.y),e.translate(-i.x,-i.y),e.closePath()},PIXI.CanvasRenderer.prototype.renderStrip=function(t){var e=this.context,i=t.verticies,r=t.uvs,s=i.length/2;this.count++;for(var n=1;s-2>n;n++){var a=2*n,o=i[a],h=i[a+2],u=i[a+4],d=i[a+1],c=i[a+3],l=i[a+5],I=r[a]*t.texture.width,p=r[a+2]*t.texture.width,f=r[a+4]*t.texture.width,x=r[a+1]*t.texture.height,v=r[a+3]*t.texture.height,P=r[a+5]*t.texture.height;e.save(),e.beginPath(),e.moveTo(o,d),e.lineTo(h,c),e.lineTo(u,l),e.closePath(),e.clip();var g=I*v+x*f+p*P-v*f-x*p-I*P,b=o*v+x*u+h*P-v*u-x*h-o*P,X=I*h+o*f+p*u-h*f-o*p-I*u,m=I*v*u+x*h*f+o*p*P-o*v*f-x*p*u-I*h*P,T=d*v+x*l+c*P-v*l-x*c-d*P,y=I*c+d*f+p*l-c*f-d*p-I*l,_=I*v*l+x*c*f+d*p*P-d*v*f-x*p*l-I*c*P;e.transform(b/g,T/g,X/g,y/g,m/g,_/g),e.drawImage(t.texture.baseTexture.source,0,0),e.restore()}},PIXI.Strip=function(t,e,i){PIXI.DisplayObjectContainer.call(this),this.texture=t,this.blendMode=PIXI.blendModes.NORMAL;try{this.uvs=new Float32Array([0,1,1,1,1,0,0,1]),this.verticies=new Float32Array([0,0,0,0,0,0,0,0,0]),this.colors=new Float32Array([1,1,1,1]),this.indices=new Uint16Array([0,1,2,3])}catch(r){this.uvs=[0,1,1,1,1,0,0,1],this.verticies=[0,0,0,0,0,0,0,0,0],this.colors=[1,1,1,1],this.indices=[0,1,2,3]}this.width=e,this.height=i,t.baseTexture.hasLoaded?(this.width=this.texture.frame.width,this.height=this.texture.frame.height,this.updateFrame=!0):(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},PIXI.Strip.constructor=PIXI.Strip,PIXI.Strip.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Strip.prototype.setTexture=function(t){this.texture=t,this.width=t.frame.width,this.height=t.frame.height,this.updateFrame=!0},PIXI.Strip.prototype.onTextureUpdate=function(){this.updateFrame=!0},PIXI.Rope=function(t,e){PIXI.Strip.call(this,t),this.points=e;try{this.verticies=new Float32Array(4*e.length),this.uvs=new Float32Array(4*e.length),this.colors=new Float32Array(2*e.length),this.indices=new Uint16Array(2*e.length)}catch(i){this.verticies=verticies,this.uvs=uvs,this.colors=colors,this.indices=indices}this.refresh()},PIXI.Rope.constructor=PIXI.Rope,PIXI.Rope.prototype=Object.create(PIXI.Strip.prototype),PIXI.Rope.prototype.refresh=function(){var t=this.points;if(!(1>t.length)){var e=this.uvs,i=this.indices,r=this.colors,s=t[0],n=t[0];this.count-=.2,e[0]=0,e[1]=1,e[2]=0,e[3]=1,r[0]=1,r[1]=1,i[0]=0,i[1]=1;for(var a=t.length,o=1;a>o;o++){var n=t[o],h=4*o,u=o/(a-1);o%2?(e[h]=u,e[h+1]=0,e[h+2]=u,e[h+3]=1):(e[h]=u,e[h+1]=0,e[h+2]=u,e[h+3]=1),h=2*o,r[h]=1,r[h+1]=1,h=2*o,i[h]=h,i[h+1]=h+1,s=n}}},PIXI.Rope.prototype.updateTransform=function(){var t=this.points;if(!(1>t.length)){var e,i=this.verticies,r=t[0],s={x:0,y:0},n=t[0];this.count-=.2,i[0]=n.x+s.x,i[1]=n.y+s.y,i[2]=n.x-s.x,i[3]=n.y-s.y;for(var a=t.length,o=1;a>o;o++){var n=t[o],h=4*o;e=t.length-1>o?t[o+1]:n,s.y=-(e.x-r.x),s.x=e.y-r.y;var u=10*(1-o/(a-1));u>1&&(u=1);var d=Math.sqrt(s.x*s.x+s.y*s.y),c=this.texture.height/2;s.x/=d,s.y/=d,s.x*=c,s.y*=c,i[h]=n.x+s.x,i[h+1]=n.y+s.y,i[h+2]=n.x-s.x,i[h+3]=n.y-s.y,r=n}PIXI.DisplayObjectContainer.prototype.updateTransform.call(this)}},PIXI.Rope.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0},PIXI.TilingSprite=function(t,e,i){PIXI.DisplayObjectContainer.call(this),this.texture=t,this.width=e,this.height=i,this.renderable=!0,this.tileScale=new PIXI.Point(1,1),this.tilePosition=new PIXI.Point(0,0),this.blendMode=PIXI.blendModes.NORMAL},PIXI.TilingSprite.constructor=PIXI.TilingSprite,PIXI.TilingSprite.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.TilingSprite.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0},PIXI.TilingSprite.prototype.onTextureUpdate=function(){this.updateFrame=!0},PIXI.CustomRenderable=function(){PIXI.DisplayObject.call(this)},PIXI.CustomRenderable.constructor=PIXI.CustomRenderable,PIXI.CustomRenderable.prototype=Object.create(PIXI.DisplayObject.prototype),PIXI.CustomRenderable.prototype.renderCanvas=function(){},PIXI.CustomRenderable.prototype.initWebGL=function(){},PIXI.CustomRenderable.prototype.renderWebGL=function(){},PIXI.BaseTextureCache={},PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[],PIXI.BaseTexture=function(t){if(PIXI.EventTarget.call(this),this.width=100,this.height=100,this.source=t,t){if(this.source instanceof Image)if(this.source.complete)this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,PIXI.texturesToUpdate.push(this);else{var e=this;this.source.onload=function(){e.hasLoaded=!0,e.width=e.source.width,e.height=e.source.height,PIXI.texturesToUpdate.push(e),e.dispatchEvent({type:"loaded",content:e})}}else this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,PIXI.texturesToUpdate.push(this);this._powerOf2=!1}},PIXI.BaseTexture.constructor=PIXI.BaseTexture,PIXI.BaseTexture.prototype.destroy=function(){this.source instanceof Image&&(this.source.src=null),this.source=null,PIXI.texturesToDestroy.push(this)},PIXI.BaseTexture.fromImage=function(t,e){var i=PIXI.BaseTextureCache[t];if(!i){var r=new Image;e&&(r.crossOrigin=""),r.src=t,i=new PIXI.BaseTexture(r),PIXI.BaseTextureCache[t]=i}return i},PIXI.TextureCache={},PIXI.FrameCache={},PIXI.Texture=function(t,e){if(PIXI.EventTarget.call(this),e||(this.noFrame=!0,e=new PIXI.Rectangle(0,0,1,1)),this.trim=new PIXI.Point,t instanceof PIXI.Texture&&(t=t.baseTexture),this.baseTexture=t,this.frame=e,this.scope=this,t.hasLoaded)this.noFrame&&(e=new PIXI.Rectangle(0,0,t.width,t.height)),this.setFrame(e);else{var i=this;t.addEventListener("loaded",function(){i.onBaseTextureLoaded()})}},PIXI.Texture.constructor=PIXI.Texture,PIXI.Texture.prototype.onBaseTextureLoaded=function(){var t=this.baseTexture;t.removeEventListener("loaded",this.onLoaded),this.noFrame&&(this.frame=new PIXI.Rectangle(0,0,t.width,t.height)),this.noFrame=!1,this.width=this.frame.width,this.height=this.frame.height,this.scope.dispatchEvent({type:"update",content:this})},PIXI.Texture.prototype.destroy=function(t){t&&this.baseTexture.destroy()},PIXI.Texture.prototype.setFrame=function(t){if(this.frame=t,this.width=t.width,this.height=t.height,t.x+t.width>this.baseTexture.width||t.y+t.height>this.baseTexture.height)throw Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);this.updateFrame=!0,PIXI.Texture.frameUpdates.push(this)},PIXI.Texture.fromImage=function(t,e){var i=PIXI.TextureCache[t];return i||(i=new PIXI.Texture(PIXI.BaseTexture.fromImage(t,e)),PIXI.TextureCache[t]=i),i},PIXI.Texture.fromFrame=function(t){var e=PIXI.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache "+this);return e},PIXI.Texture.fromCanvas=function(t){var e=new PIXI.BaseTexture(t);return new PIXI.Texture(e)},PIXI.Texture.addTextureToCache=function(t,e){PIXI.TextureCache[e]=t},PIXI.Texture.removeTextureFromCache=function(t){var e=PIXI.TextureCache[t];return PIXI.TextureCache[t]=null,e},PIXI.Texture.frameUpdates=[],PIXI.RenderTexture=function(t,e){PIXI.EventTarget.call(this),this.width=t||100,this.height=e||100,this.indetityMatrix=PIXI.mat3.create(),this.frame=new PIXI.Rectangle(0,0,this.width,this.height),PIXI.gl?this.initWebGL():this.initCanvas()},PIXI.RenderTexture.constructor=PIXI.RenderTexture,PIXI.RenderTexture.prototype=Object.create(PIXI.Texture.prototype),PIXI.RenderTexture.prototype.initWebGL=function(){var t=PIXI.gl;this.glFramebuffer=t.createFramebuffer(),t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),this.glFramebuffer.width=this.width,this.glFramebuffer.height=this.height,this.baseTexture=new PIXI.BaseTexture,this.baseTexture.width=this.width,this.baseTexture.height=this.height,this.baseTexture._glTexture=t.createTexture(),t.bindTexture(t.TEXTURE_2D,this.baseTexture._glTexture),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,this.width,this.height,0,t.RGBA,t.UNSIGNED_BYTE,null),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),this.baseTexture.isRender=!0,t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,this.baseTexture._glTexture,0),this.projectionMatrix=PIXI.mat4.create(),this.projectionMatrix[5]=2/this.height,this.projectionMatrix[13]=-1,this.projectionMatrix[0]=2/this.width,this.projectionMatrix[12]=-1,this.render=this.renderWebGL},PIXI.RenderTexture.prototype.initCanvas=function(){this.renderer=new PIXI.CanvasRenderer(this.width,this.height,null,0),this.baseTexture=new PIXI.BaseTexture(this.renderer.view),this.frame=new PIXI.Rectangle(0,0,this.width,this.height),this.render=this.renderCanvas},PIXI.RenderTexture.prototype.renderWebGL=function(t,e){var i=PIXI.gl;i.colorMask(!0,!0,!0,!0),i.viewport(0,0,this.width,this.height),i.bindFramebuffer(i.FRAMEBUFFER,this.glFramebuffer),e&&(i.clearColor(0,0,0,0),i.clear(i.COLOR_BUFFER_BIT));var r=t.children;t.worldTransform=PIXI.mat3.create();for(var s=0,n=r.length;n>s;s++)r[s].updateTransform();var a=t.__renderGroup;a?t==a.root?a.render(this.projectionMatrix):a.renderSpecific(t,this.projectionMatrix):(this.renderGroup||(this.renderGroup=new PIXI.WebGLRenderGroup(i)),this.renderGroup.setRenderable(t),this.renderGroup.render(this.projectionMatrix))},PIXI.RenderTexture.prototype.renderCanvas=function(t,e){var i=t.children;t.worldTransform=PIXI.mat3.create();for(var r=0,s=i.length;s>r;r++)i[r].updateTransform();e&&this.renderer.context.clearRect(0,0,this.width,this.height),this.renderer.renderDisplayObject(t),PIXI.texturesToUpdate.push(this.baseTexture)},PIXI.AssetLoader=function(t){PIXI.EventTarget.call(this),this.assetURLs=t,this.crossorigin=!1,this.loadersByType={jpg:PIXI.ImageLoader,jpeg:PIXI.ImageLoader,png:PIXI.ImageLoader,gif:PIXI.ImageLoader,json:PIXI.SpriteSheetLoader,xml:PIXI.BitmapFontLoader,fnt:PIXI.BitmapFontLoader}},PIXI.AssetLoader.constructor=PIXI.AssetLoader,PIXI.AssetLoader.prototype.load=function(){var t=this;this.loadCount=this.assetURLs.length;for(var e=0;this.assetURLs.length>e;e++){var i=this.assetURLs[e],r=i.split(".").pop().toLowerCase(),s=this.loadersByType[r];if(!s)throw Error(r+" is an unsupported file type");var n=new s(i,this.crossorigin);n.addEventListener("loaded",function(){t.onAssetLoaded()}),n.load()}},PIXI.AssetLoader.prototype.onAssetLoaded=function(){this.loadCount--,this.dispatchEvent({type:"onProgress",content:this}),this.onProgress&&this.onProgress(),0==this.loadCount&&(this.dispatchEvent({type:"onComplete",content:this}),this.onComplete&&this.onComplete())},PIXI.SpriteSheetLoader=function(t,e){PIXI.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.frames={},this.crossorigin=e},PIXI.SpriteSheetLoader.constructor=PIXI.SpriteSheetLoader,PIXI.SpriteSheetLoader.prototype.load=function(){this.ajaxRequest=new AjaxRequest;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onJSONLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/json"),this.ajaxRequest.send(null)},PIXI.SpriteSheetLoader.prototype.onJSONLoaded=function(){if(4==this.ajaxRequest.readyState&&(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))){var jsonData=eval("("+this.ajaxRequest.responseText+")"),textureUrl=this.baseUrl+jsonData.meta.image,image=new PIXI.ImageLoader(textureUrl,this.crossorigin);this.texture=image.texture.baseTexture;var scope=this;image.addEventListener("loaded",function(){scope.onLoaded()});var frameData=jsonData.frames;for(var i in frameData){var rect=frameData[i].frame;rect&&(PIXI.TextureCache[i]=new PIXI.Texture(this.texture,{x:rect.x,y:rect.y,width:rect.w,height:rect.h}),frameData[i].trimmed&&(PIXI.TextureCache[i].realSize=frameData[i].spriteSourceSize,PIXI.TextureCache[i].trim.x=0))}image.load()}},PIXI.SpriteSheetLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},PIXI.ImageLoader=function(t,e){PIXI.EventTarget.call(this),this.texture=PIXI.Texture.fromImage(t,e)},PIXI.ImageLoader.constructor=PIXI.ImageLoader,PIXI.ImageLoader.prototype.load=function(){if(this.texture.baseTexture.hasLoaded)this.onLoaded();else{var t=this;this.texture.baseTexture.addEventListener("loaded",function(){t.onLoaded()})}},PIXI.ImageLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},PIXI.BitmapFontLoader=function(t,e){PIXI.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.crossorigin=e},PIXI.BitmapFontLoader.constructor=PIXI.BitmapFontLoader,PIXI.BitmapFontLoader.prototype.load=function(){this.ajaxRequest=new XMLHttpRequest;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onXMLLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/xml"),this.ajaxRequest.send(null)},PIXI.BitmapFontLoader.prototype.onXMLLoaded=function(){if(4==this.ajaxRequest.readyState&&(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))){var t=this.baseUrl+this.ajaxRequest.responseXML.getElementsByTagName("page")[0].attributes.getNamedItem("file").nodeValue,e=new PIXI.ImageLoader(t,this.crossorigin);this.texture=e.texture.baseTexture;var i={},r=this.ajaxRequest.responseXML.getElementsByTagName("info")[0],s=this.ajaxRequest.responseXML.getElementsByTagName("common")[0];i.font=r.attributes.getNamedItem("face").nodeValue,i.size=parseInt(r.attributes.getNamedItem("size").nodeValue,10),i.lineHeight=parseInt(s.attributes.getNamedItem("lineHeight").nodeValue,10),i.chars={};for(var n=this.ajaxRequest.responseXML.getElementsByTagName("char"),a=0;n.length>a;a++){var o=parseInt(n[a].attributes.getNamedItem("id").nodeValue,10),h={x:parseInt(n[a].attributes.getNamedItem("x").nodeValue,10),y:parseInt(n[a].attributes.getNamedItem("y").nodeValue,10),width:parseInt(n[a].attributes.getNamedItem("width").nodeValue,10),height:parseInt(n[a].attributes.getNamedItem("height").nodeValue,10)};PIXI.TextureCache[o]=new PIXI.Texture(this.texture,h),i.chars[o]={xOffset:parseInt(n[a].attributes.getNamedItem("xoffset").nodeValue,10),yOffset:parseInt(n[a].attributes.getNamedItem("yoffset").nodeValue,10),xAdvance:parseInt(n[a].attributes.getNamedItem("xadvance").nodeValue,10),kerning:{}}}var u=this.ajaxRequest.responseXML.getElementsByTagName("kerning");for(a=0;u.length>a;a++){var d=parseInt(u[a].attributes.getNamedItem("first").nodeValue,10),c=parseInt(u[a].attributes.getNamedItem("second").nodeValue,10),l=parseInt(u[a].attributes.getNamedItem("amount").nodeValue,10);i.chars[c].kerning[d]=l}PIXI.BitmapText.fonts[i.font]=i;var I=this;e.addEventListener("loaded",function(){I.onLoaded()}),e.load()}},PIXI.BitmapFontLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=PIXI),exports.PIXI=PIXI):root.PIXI=PIXI}).call(this); \ No newline at end of file diff --git a/docs/classes/WebGLRenderer.html b/docs/classes/WebGLRenderer.html index 581cb5a..fcef6b6 100644 --- a/docs/classes/WebGLRenderer.html +++ b/docs/classes/WebGLRenderer.html @@ -498,7 +498,7 @@ - src/pixi/renderers/WebGLRenderer.js:283 + src/pixi/renderers/WebGLRenderer.js:284

diff --git a/docs/data.json b/docs/data.json index 9b4a49d..4b27831 100644 --- a/docs/data.json +++ b/docs/data.json @@ -1388,35 +1388,35 @@ }, { "file": "src/pixi/renderers/WebGLRenderGroup.js", - "line": 523, + "line": 527, "access": "private", "tagname": "", "class": "WebGLBatch" }, { "file": "src/pixi/renderers/WebGLRenderGroup.js", - "line": 607, + "line": 613, "access": "private", "tagname": "", "class": "WebGLBatch" }, { "file": "src/pixi/renderers/WebGLRenderGroup.js", - "line": 663, + "line": 669, "access": "private", "tagname": "", "class": "WebGLBatch" }, { "file": "src/pixi/renderers/WebGLRenderGroup.js", - "line": 740, + "line": 746, "access": "private", "tagname": "", "class": "WebGLBatch" }, { "file": "src/pixi/renderers/WebGLRenderGroup.js", - "line": 777, + "line": 783, "access": "private", "tagname": "", "class": "WebGLBatch" @@ -1465,14 +1465,14 @@ }, { "file": "src/pixi/renderers/WebGLRenderer.js", - "line": 232, + "line": 225, "access": "private", "tagname": "", "class": "WebGLRenderer" }, { "file": "src/pixi/renderers/WebGLRenderer.js", - "line": 283, + "line": 284, "description": "resizes the webGL view to the specified width and height", "itemtype": "method", "name": "resize", @@ -1492,14 +1492,14 @@ }, { "file": "src/pixi/renderers/WebGLRenderer.js", - "line": 307, + "line": 308, "access": "private", "tagname": "", "class": "WebGLRenderer" }, { "file": "src/pixi/renderers/WebGLRenderer.js", - "line": 316, + "line": 317, "access": "private", "tagname": "", "class": "WebGLRenderer" @@ -2908,23 +2908,23 @@ }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderGroup.js:523" + "line": " src/pixi/renderers/WebGLRenderGroup.js:527" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderGroup.js:607" + "line": " src/pixi/renderers/WebGLRenderGroup.js:613" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderGroup.js:663" + "line": " src/pixi/renderers/WebGLRenderGroup.js:669" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderGroup.js:740" + "line": " src/pixi/renderers/WebGLRenderGroup.js:746" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderGroup.js:777" + "line": " src/pixi/renderers/WebGLRenderGroup.js:783" }, { "message": "Missing item type", @@ -2944,15 +2944,15 @@ }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderer.js:232" + "line": " src/pixi/renderers/WebGLRenderer.js:225" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderer.js:307" + "line": " src/pixi/renderers/WebGLRenderer.js:308" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderer.js:316" + "line": " src/pixi/renderers/WebGLRenderer.js:317" }, { "message": "Missing item type", diff --git a/docs/files/src_pixi_renderers_WebGLRenderGroup.js.html b/docs/files/src_pixi_renderers_WebGLRenderGroup.js.html index 7222602..42bcabd 100644 --- a/docs/files/src_pixi_renderers_WebGLRenderGroup.js.html +++ b/docs/files/src_pixi_renderers_WebGLRenderGroup.js.html @@ -177,6 +177,8 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + //PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. @@ -215,6 +217,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + //PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -683,7 +687,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/bin/pixi.dev.js b/bin/pixi.dev.js index f29080a..3478cf4 100644 --- a/bin/pixi.dev.js +++ b/bin/pixi.dev.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/bin/pixi.js b/bin/pixi.js index 5f2a13c..a6d54d1 100644 --- a/bin/pixi.js +++ b/bin/pixi.js @@ -4,10 +4,10 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php */ -(function(){function HEXtoRGB(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}function determineMatrixArrayType(){return PIXI.Matrix="undefined"!=typeof Float32Array?Float32Array:Array,PIXI.Matrix}var root=this,PIXI=PIXI||{};PIXI.Point=function(t,e){this.x=t||0,this.y=e||0},PIXI.Point.prototype.clone=function(){return new PIXI.Point(this.x,this.y)},PIXI.Point.constructor=PIXI.Point,PIXI.Rectangle=function(t,e,i,r){this.x=t||0,this.y=e||0,this.width=i||0,this.height=r||0},PIXI.Rectangle.prototype.clone=function(){return new PIXI.Rectangle(this.x,this.y,this.width,this.height)},PIXI.Rectangle.constructor=PIXI.Rectangle,PIXI.DisplayObject=function(){this.position=new PIXI.Point,this.scale=new PIXI.Point(1,1),this.pivot=new PIXI.Point(0,0),this.rotation=0,this.alpha=1,this.visible=!0,this.worldVisible=!1,this.parent=null,this.stage=null,this.hitArea=null,this.worldAlpha=1,this.color=[],this.worldTransform=PIXI.mat3.create(),this.localTransform=PIXI.mat3.create(),this.dynamic=!0,this._sr=0,this._cr=1,this.childIndex=0,this.renderable=!1,this.interactive=!1,this.buttonMode=!1},PIXI.DisplayObject.constructor=PIXI.DisplayObject,PIXI.DisplayObject.prototype.setInteractive=function(t){this.interactive=t,this.stage&&(this.stage.dirty=!0)},PIXI.DisplayObject.prototype.updateTransform=function(){this.rotation!=this.rotationCache&&(this.rotationCache=this.rotation,this._sr=Math.sin(this.rotation),this._cr=Math.cos(this.rotation));var t=this.localTransform,e=this.parent.worldTransform,i=this.worldTransform;t[0]=this._cr*this.scale.x,t[1]=-this._sr*this.scale.y,t[3]=this._sr*this.scale.x,t[4]=this._cr*this.scale.y;var r=this.pivot.x,s=this.pivot.y;t[2]=this.position.x-t[0]*r-s*t[1],t[5]=this.position.y-t[4]*s-r*t[3];var n=t[0],a=t[1],o=t[2],h=t[3],u=t[4],c=t[5],d=e[0],l=e[1],I=e[2],p=e[3],f=e[4],x=e[5];i[0]=d*n+l*h,i[1]=d*a+l*u,i[2]=d*o+l*c+I,i[3]=p*n+f*h,i[4]=p*a+f*u,i[5]=p*o+f*c+x,this.worldAlpha=this.alpha*this.parent.worldAlpha},PIXI.DisplayObjectContainer=function(){PIXI.DisplayObject.call(this),this.children=[],this.renderable=!1},PIXI.DisplayObjectContainer.constructor=PIXI.DisplayObjectContainer,PIXI.DisplayObjectContainer.prototype=Object.create(PIXI.DisplayObject.prototype),PIXI.DisplayObjectContainer.prototype.addChild=function(t){void 0!=t.parent&&t.parent.removeChild(t),t.parent=this,t.childIndex=this.children.length,this.children.push(t),this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},PIXI.DisplayObjectContainer.prototype.addChildAt=function(t,e){if(!(e>=0&&this.children.length>=e))throw Error(t+" The index "+e+" supplied is out of bounds "+this.children.length);void 0!=t.parent&&t.parent.removeChild(t),e==this.children.length?this.children.push(t):this.children.splice(e,0,t),t.parent=this,t.childIndex=e;for(var i=this.children.length,r=e;i>r;r++)this.children[r].childIndex=r;this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},PIXI.DisplayObjectContainer.prototype.swapChildren=function(t,e){var i=this.children.indexOf(t),r=this.children.indexOf(e);if(-1===i||-1===r)throw Error(t+" Both the supplied DisplayObjects must be a child of the caller "+this);this.stage&&(this.stage.__removeChild(t),this.stage.__removeChild(e),this.stage.__addChild(t),this.stage.__addChild(e)),t.childIndex=r,e.childIndex=i,this.children[i]=e,this.children[r]=t},PIXI.DisplayObjectContainer.prototype.getChildAt=function(t){if(t>=0&&this.children.length>t)return this.children[t];throw Error(child+" Both the supplied DisplayObjects must be a child of the caller "+this)},PIXI.DisplayObjectContainer.prototype.removeChild=function(t){var e=this.children.indexOf(t);if(-1===e)throw Error(t+" The supplied DisplayObject must be a child of the caller "+this);this.stage&&this.stage.__removeChild(t),t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.parent=void 0,this.children.splice(e,1);for(var i=e,r=this.children.length;r>i;i++)this.children[i].childIndex-=1},PIXI.DisplayObjectContainer.prototype.updateTransform=function(){if(this.visible){PIXI.DisplayObject.prototype.updateTransform.call(this);for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform()}},PIXI.blendModes={},PIXI.blendModes.NORMAL=0,PIXI.blendModes.SCREEN=1,PIXI.Sprite=function(t){PIXI.DisplayObjectContainer.call(this),this.anchor=new PIXI.Point,this.texture=t,this.blendMode=PIXI.blendModes.NORMAL,this._width=0,this._height=0,t.baseTexture.hasLoaded?this.updateFrame=!0:(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},PIXI.Sprite.constructor=PIXI.Sprite,PIXI.Sprite.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),Object.defineProperty(PIXI.Sprite.prototype,"width",{get:function(){return this.scale.x*this.texture.frame.width},set:function(t){this.scale.x=t/this.texture.frame.width,this._width=t}}),Object.defineProperty(PIXI.Sprite.prototype,"height",{get:function(){return this.scale.y*this.texture.frame.height},set:function(t){this.scale.y=t/this.texture.frame.height,this._height=t}}),PIXI.Sprite.prototype.setTexture=function(t){this.texture.baseTexture!=t.baseTexture&&(this.textureChange=!0),this.texture=t,this.updateFrame=!0},PIXI.Sprite.prototype.onTextureUpdate=function(){this._width&&(this.scale.x=this._width/this.texture.frame.width),this._height&&(this.scale.y=this._height/this.texture.frame.height),this.updateFrame=!0},PIXI.Sprite.fromFrame=function(t){var e=PIXI.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache"+this);return new PIXI.Sprite(e)},PIXI.Sprite.fromImage=function(t){var e=PIXI.Texture.fromImage(t);return new PIXI.Sprite(e)},PIXI.MovieClip=function(t){PIXI.Sprite.call(this,t[0]),this.textures=t,this.currentFrame=0,this.animationSpeed=1,this.loop=!0,this.onComplete=null,this.playing},PIXI.MovieClip.constructor=PIXI.MovieClip,PIXI.MovieClip.prototype=Object.create(PIXI.Sprite.prototype),PIXI.MovieClip.prototype.stop=function(){this.playing=!1},PIXI.MovieClip.prototype.play=function(){this.playing=!0},PIXI.MovieClip.prototype.gotoAndStop=function(t){this.playing=!1,this.currentFrame=t;var e=0|this.currentFrame+.5;this.setTexture(this.textures[e%this.textures.length])},PIXI.MovieClip.prototype.gotoAndPlay=function(t){this.currentFrame=t,this.playing=!0},PIXI.MovieClip.prototype.updateTransform=function(){if(PIXI.Sprite.prototype.updateTransform.call(this),this.playing){this.currentFrame+=this.animationSpeed;var t=0|this.currentFrame+.5;this.loop||this.textures.length>t?this.setTexture(this.textures[t%this.textures.length]):t>=this.textures.length&&(this.gotoAndStop(this.textures.length-1),this.onComplete&&this.onComplete())}},PIXI.Text=function(t,e){this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"),PIXI.Sprite.call(this,PIXI.Texture.fromCanvas(this.canvas)),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},PIXI.Text.constructor=PIXI.Text,PIXI.Text.prototype=Object.create(PIXI.Sprite.prototype),PIXI.Text.prototype.setStyle=function(t){t=t||{},t.font=t.font||"bold 20pt Arial",t.fill=t.fill||"black",t.align=t.align||"left",t.strokeThickness=t.strokeThickness||0,this.style=t,this.dirty=!0},PIXI.Sprite.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},PIXI.Text.prototype.updateText=function(){this.context.font=this.style.font;for(var t=this.text.split(/(?:\r\n|\r|\n)/),e=[],i=0,r=0;t.length>r;r++){var s=this.context.measureText(t[r]).width;e[r]=s,i=Math.max(i,s)}this.canvas.width=i+this.style.strokeThickness;var n=this.determineFontHeight("font: "+this.style.font+";")+this.style.strokeThickness;for(this.canvas.height=n*t.length,this.context.fillStyle=this.style.fill,this.context.font=this.style.font,this.context.strokeStyle=this.style.stroke,this.context.lineWidth=this.style.strokeThickness,this.context.textBaseline="top",r=0;t.length>r;r++){var a=new PIXI.Point(this.style.strokeThickness/2,this.style.strokeThickness/2+r*n);"right"==this.style.align?a.x+=i-e[r]:"center"==this.style.align&&(a.x+=(i-e[r])/2),this.style.stroke&&this.style.strokeThickness&&this.context.strokeText(t[r],a.x,a.y),this.style.fill&&this.context.fillText(t[r],a.x,a.y)}this.updateTexture()},PIXI.Text.prototype.updateTexture=function(){this.texture.baseTexture.width=this.canvas.width,this.texture.baseTexture.height=this.canvas.height,this.texture.frame.width=this.canvas.width,this.texture.frame.height=this.canvas.height,this._width=this.canvas.width,this._height=this.canvas.height,PIXI.texturesToUpdate.push(this.texture.baseTexture)},PIXI.Text.prototype.updateTransform=function(){this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype.updateTransform.call(this)},PIXI.Text.prototype.determineFontHeight=function(t){var e=PIXI.Text.heightCache[t];if(!e){var i=document.getElementsByTagName("body")[0],r=document.createElement("div"),s=document.createTextNode("M");r.appendChild(s),r.setAttribute("style",t),i.appendChild(r),e=r.offsetHeight,PIXI.Text.heightCache[t]=e,i.removeChild(r)}return e},PIXI.Text.prototype.destroy=function(t){t&&this.texture.destroy()},PIXI.Text.heightCache={},PIXI.BitmapText=function(t,e){PIXI.DisplayObjectContainer.call(this),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},PIXI.BitmapText.constructor=PIXI.BitmapText,PIXI.BitmapText.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.BitmapText.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},PIXI.BitmapText.prototype.setStyle=function(t){t=t||{},t.align=t.align||"left",this.style=t;var e=t.font.split(" ");this.fontName=e[e.length-1],this.fontSize=e.length>=2?parseInt(e[e.length-2],10):PIXI.BitmapText.fonts[this.fontName].size,this.dirty=!0},PIXI.BitmapText.prototype.updateText=function(){for(var t=PIXI.BitmapText.fonts[this.fontName],e=new PIXI.Point,i=null,r=[],s=0,n=[],a=0,o=this.fontSize/t.size,h=0;this.text.length>h;h++){var u=this.text.charCodeAt(h);if(/(?:\r\n|\r|\n)/.test(this.text.charAt(h)))n.push(e.x),s=Math.max(s,e.x),a++,e.x=0,e.y+=t.lineHeight,i=null;else{var c=t.chars[u];c&&(i&&c[i]&&(e.x+=c.kerning[i]),r.push({line:a,charCode:u,position:new PIXI.Point(e.x+c.xOffset,e.y+c.yOffset)}),e.x+=c.xAdvance,i=u)}}n.push(e.x),s=Math.max(s,e.x);var d=[];for(h=0;a>=h;h++){var l=0;"right"==this.style.align?l=s-n[h]:"center"==this.style.align&&(l=(s-n[h])/2),d.push(l)}for(h=0;r.length>h;h++){var I=PIXI.Sprite.fromFrame(r[h].charCode);I.position.x=(r[h].position.x+d[r[h].line])*o,I.position.y=r[h].position.y*o,I.scale.x=I.scale.y=o,this.addChild(I)}this.width=e.x*o,this.height=(e.y+t.lineHeight)*o},PIXI.BitmapText.prototype.updateTransform=function(){if(this.dirty){for(;this.children.length>0;)this.removeChild(this.getChildAt(0));this.updateText(),this.dirty=!1}PIXI.DisplayObjectContainer.prototype.updateTransform.call(this)},PIXI.BitmapText.fonts={},PIXI.InteractionManager=function(t){this.stage=t,this.tempPoint=new PIXI.Point,this.mouseoverEnabled=!0,this.mouse=new PIXI.InteractionData,this.touchs={},this.pool=[],this.interactiveItems=[],this.last=0},PIXI.InteractionManager.constructor=PIXI.InteractionManager,PIXI.InteractionManager.prototype.collectInteractiveSprite=function(t,e){for(var i=t.children,r=i.length,s=r-1;s>=0;s--){var n=i[s];n.interactive?(e.interactiveChildren=!0,this.interactiveItems.push(n),n.children.length>0&&this.collectInteractiveSprite(n,n)):(n.__iParent=null,n.children.length>0&&this.collectInteractiveSprite(n,e))}},PIXI.InteractionManager.prototype.setTarget=function(t){window.navigator.msPointerEnabled&&(t.view.style["-ms-content-zooming"]="none",t.view.style["-ms-touch-action"]="none"),this.target=t,t.view.addEventListener("mousemove",this.onMouseMove.bind(this),!0),t.view.addEventListener("mousedown",this.onMouseDown.bind(this),!0),document.body.addEventListener("mouseup",this.onMouseUp.bind(this),!0),t.view.addEventListener("mouseout",this.onMouseUp.bind(this),!0),t.view.addEventListener("touchstart",this.onTouchStart.bind(this),!0),t.view.addEventListener("touchend",this.onTouchEnd.bind(this),!0),t.view.addEventListener("touchmove",this.onTouchMove.bind(this),!0)},PIXI.InteractionManager.prototype.update=function(){if(this.target){var t=Date.now(),e=t-this.last;if(e=30*e/1e3,!(1>e)){if(this.last=t,this.dirty){this.dirty=!1,this.interactiveItems.length;for(var i=0;this.interactiveItems.length>i;i++)this.interactiveItems[i].interactiveChildren=!1;this.interactiveItems=[],this.stage.interactive&&this.interactiveItems.push(this.stage),this.collectInteractiveSprite(this.stage,this.stage)}var r=this.interactiveItems.length;this.target.view.style.cursor="default";for(var i=0;r>i;i++){var s=this.interactiveItems[i];s.visible&&(s.mouseover||s.mouseout||s.buttonMode)&&(s.__hit=this.hitTest(s,this.mouse),s.__hit?(s.buttonMode&&(this.target.view.style.cursor="pointer"),s.__isOver||(s.mouseover&&s.mouseover(this.mouse),s.__isOver=!0)):s.__isOver&&(s.mouseout&&s.mouseout(this.mouse),s.__isOver=!1))}}}},PIXI.InteractionManager.prototype.onMouseMove=function(t){t.preventDefault();var e=this.target.view.getBoundingClientRect();this.mouse.global.x=(t.clientX-e.left)*(this.target.width/e.width),this.mouse.global.y=(t.clientY-e.top)*(this.target.height/e.height);var i=this.interactiveItems.length;this.mouse.global;for(var r=0;i>r;r++){var s=this.interactiveItems[r];s.mousemove&&s.mousemove(this.mouse)}},PIXI.InteractionManager.prototype.onMouseDown=function(t){t.preventDefault();var e=this.interactiveItems.length;this.mouse.global,this.stage;for(var i=0;e>i;i++){var r=this.interactiveItems[i];if((r.mousedown||r.click)&&(r.__mouseIsDown=!0,r.__hit=this.hitTest(r,this.mouse),r.__hit&&(r.mousedown&&r.mousedown(this.mouse),r.__isDown=!0,!r.interactiveChildren)))break}},PIXI.InteractionManager.prototype.onMouseUp=function(t){t.preventDefault(),this.mouse.global;for(var e=this.interactiveItems.length,i=!1,r=0;e>r;r++){var s=this.interactiveItems[r];(s.mouseup||s.mouseupoutside||s.click)&&(s.__hit=this.hitTest(s,this.mouse),s.__hit&&!i?(s.mouseup&&s.mouseup(this.mouse),s.__isDown&&s.click&&s.click(this.mouse),s.interactiveChildren||(i=!0)):s.__isDown&&s.mouseupoutside&&s.mouseupoutside(this.mouse),s.__isDown=!1)}},PIXI.InteractionManager.prototype.hitTest=function(t,e){var i=e.global;if(!t.visible)return!1;if(t instanceof PIXI.Sprite){var r=t.worldTransform,s=r[0],n=r[1],a=r[2],o=r[3],h=r[4],u=r[5],c=1/(s*h+n*-o),d=h*c*i.x+-n*c*i.y+(u*n-a*h)*c,l=s*c*i.y+-o*c*i.x+(-u*s+a*o)*c,I=t.texture.frame.width,p=t.texture.frame.height,f=-I*t.anchor.x;if(d>f&&f+I>d){var x=-p*t.anchor.y;if(l>x&&x+p>l)return e.target=t,!0}}else if(t.hitArea){var r=t.worldTransform,v=t.hitArea,s=r[0],n=r[1],a=r[2],o=r[3],h=r[4],u=r[5],c=1/(s*h+n*-o),d=h*c*i.x+-n*c*i.y+(u*n-a*h)*c,l=s*c*i.y+-o*c*i.x+(-u*s+a*o)*c,f=v.x;if(d>f&&f+v.width>d){var x=v.y;if(l>x&&x+v.height>l)return!0}}for(var P=t.children.length,g=0;P>g;g++){var b=t.children[g],X=this.hitTest(b,e);if(X)return!0}return!1},PIXI.InteractionManager.prototype.onTouchMove=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.touchs[s.identifier];n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height)}for(var a=this.interactiveItems.length,r=0;a>r;r++){var o=this.interactiveItems[r];o.touchmove&&o.touchmove(n)}},PIXI.InteractionManager.prototype.onTouchStart=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.pool.pop();n||(n=new PIXI.InteractionData),this.touchs[s.identifier]=n,n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height);for(var a=this.interactiveItems.length,o=0;a>o;o++){var h=this.interactiveItems[o];if((h.touchstart||h.tap)&&(h.__hit=this.hitTest(h,n),h.__hit&&(h.touchstart&&h.touchstart(n),h.__isDown=!0,h.__touchData=n,!h.interactiveChildren)))break}}},PIXI.InteractionManager.prototype.onTouchEnd=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.touchs[s.identifier],a=!1;n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var u=this.interactiveItems[h],c=u.__touchData;u.__hit=this.hitTest(u,n),c==n&&((u.touchend||u.tap)&&(u.__hit&&!a?(u.touchend&&u.touchend(n),u.__isDown&&u.tap&&u.tap(n),u.interactiveChildren||(a=!0)):u.__isDown&&u.touchendoutside&&u.touchendoutside(n),u.__isDown=!1),u.__touchData=null)}this.pool.push(n),this.touchs[s.identifier]=null}},PIXI.InteractionData=function(){this.global=new PIXI.Point,this.local=new PIXI.Point,this.target},PIXI.InteractionData.prototype.getLocalPosition=function(t){var e=t.worldTransform,i=this.global,r=e[0],s=e[1],n=e[2],a=e[3],o=e[4],h=e[5],u=1/(r*o+s*-a);return new PIXI.Point(o*u*i.x+-s*u*i.y+(h*s-n*o)*u,r*u*i.y+-a*u*i.x+(-h*r+n*a)*u)},PIXI.InteractionData.constructor=PIXI.InteractionData,PIXI.Stage=function(t,e){PIXI.DisplayObjectContainer.call(this),this.worldTransform=PIXI.mat3.create(),this.__childrenAdded=[],this.__childrenRemoved=[],this.childIndex=0,this.stage=this,this.stage.hitArea=new PIXI.Rectangle(0,0,1e5,1e5),this.interactive=!!e,this.interactionManager=new PIXI.InteractionManager(this),this.setBackgroundColor(t),this.worldVisible=!0},PIXI.Stage.constructor=PIXI.Stage,PIXI.Stage.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Stage.prototype.updateTransform=function(){this.worldAlpha=1;for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform();this.dirty&&(this.dirty=!1,this.interactionManager.dirty=!0),this.interactive&&this.interactionManager.update()},PIXI.Stage.prototype.setBackgroundColor=function(t){this.backgroundColor=t||0,this.backgroundColorSplit=HEXtoRGB(this.backgroundColor),this.backgroundColorString="#"+this.backgroundColor.toString(16)},PIXI.Stage.prototype.getMousePosition=function(){return this.interactionManager.mouse.global},PIXI.Stage.prototype.__addChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=this,t.children)for(var e=0;t.children.length>e;e++)this.__addChild(t.children[e])},PIXI.Stage.prototype.__removeChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=void 0,t.children)for(var e=0,i=t.children.length;i>e;e++)this.__removeChild(t.children[e])},window.requestAnimFrame=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(t){window.setTimeout(t,1e3/60)}}(),"function"!=typeof Function.prototype.bind&&(Function.prototype.bind=function(){var t=Array.prototype.slice;return function(e){function i(){var n=s.concat(t.call(arguments));r.apply(this instanceof i?this:e,n)}var r=this,s=t.call(arguments,1);if("function"!=typeof r)throw new TypeError;return i.prototype=function n(t){return t&&(n.prototype=t),this instanceof n?void 0:new n}(r.prototype),i}}());var AjaxRequest=function(){var t=["Msxml2.XMLHTTP","Microsoft.XMLHTTP"];if(!window.ActiveXObject)return window.XMLHttpRequest?new XMLHttpRequest:!1;for(var e=0;t.length>e;e++)try{return new ActiveXObject(t[e])}catch(i){}};PIXI.EventTarget=function(){var t={};this.addEventListener=this.on=function(e,i){void 0===t[e]&&(t[e]=[]),-1===t[e].indexOf(i)&&t[e].push(i)},this.dispatchEvent=this.emit=function(e){for(var i in t[e.type])t[e.type][i](e)},this.removeEventListener=this.off=function(e,i){var r=t[e].indexOf(i);-1!==r&&t[e].splice(r,1)}},determineMatrixArrayType(),PIXI.mat3={},PIXI.mat3.create=function(){var t=new PIXI.Matrix(9);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},PIXI.mat4={},PIXI.mat4.create=function(){var t=new PIXI.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},PIXI.mat3.multiply=function(t,e,i){i||(i=t);var r=t[0],s=t[1],n=t[2],a=t[3],o=t[4],h=t[5],u=t[6],c=t[7],d=t[8],l=e[0],I=e[1],p=e[2],f=e[3],x=e[4],v=e[5],P=e[6],g=e[7],b=e[8];return i[0]=l*r+I*a+p*u,i[1]=l*s+I*o+p*c,i[2]=l*n+I*h+p*d,i[3]=f*r+x*a+v*u,i[4]=f*s+x*o+v*c,i[5]=f*n+x*h+v*d,i[6]=P*r+g*a+b*u,i[7]=P*s+g*o+b*c,i[8]=P*n+g*h+b*d,i},PIXI.mat3.toMat4=function(t,e){return e||(e=PIXI.mat4.create()),e[15]=1,e[14]=0,e[13]=0,e[12]=0,e[11]=0,e[10]=t[8],e[9]=t[7],e[8]=t[6],e[7]=0,e[6]=t[5],e[5]=t[4],e[4]=t[3],e[3]=0,e[2]=t[2],e[1]=t[1],e[0]=t[0],e},PIXI.mat4.create=function(){var t=new PIXI.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},PIXI.mat4.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],s=t[3],n=t[6],a=t[7],o=t[11];return t[1]=t[4],t[2]=t[8],t[3]=t[12],t[4]=i,t[6]=t[9],t[7]=t[13],t[8]=r,t[9]=n,t[11]=t[14],t[12]=s,t[13]=a,t[14]=o,t}return e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=t[1],e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=t[2],e[9]=t[6],e[10]=t[10],e[11]=t[14],e[12]=t[3],e[13]=t[7],e[14]=t[11],e[15]=t[15],e},PIXI.mat4.multiply=function(t,e,i){i||(i=t);var r=t[0],s=t[1],n=t[2],a=t[3],o=t[4],h=t[5],u=t[6],c=t[7],d=t[8],l=t[9],I=t[10],p=t[11],f=t[12],x=t[13],v=t[14],P=t[15],g=e[0],b=e[1],X=e[2],m=e[3];return i[0]=g*r+b*o+X*d+m*f,i[1]=g*s+b*h+X*l+m*x,i[2]=g*n+b*u+X*I+m*v,i[3]=g*a+b*c+X*p+m*P,g=e[4],b=e[5],X=e[6],m=e[7],i[4]=g*r+b*o+X*d+m*f,i[5]=g*s+b*h+X*l+m*x,i[6]=g*n+b*u+X*I+m*v,i[7]=g*a+b*c+X*p+m*P,g=e[8],b=e[9],X=e[10],m=e[11],i[8]=g*r+b*o+X*d+m*f,i[9]=g*s+b*h+X*l+m*x,i[10]=g*n+b*u+X*I+m*v,i[11]=g*a+b*c+X*p+m*P,g=e[12],b=e[13],X=e[14],m=e[15],i[12]=g*r+b*o+X*d+m*f,i[13]=g*s+b*h+X*l+m*x,i[14]=g*n+b*u+X*I+m*v,i[15]=g*a+b*c+X*p+m*P,i},PIXI.autoDetectRenderer=function(t,e,i,r){t||(t=800),e||(e=600);var s=function(){try{return!!window.WebGLRenderingContext&&!!document.createElement("canvas").getContext("experimental-webgl")}catch(t){return!1}}();return s?new PIXI.WebGLRenderer(t,e,i,r):new PIXI.CanvasRenderer(t,e,i,r)},PIXI.shaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * vColor;","}"],PIXI.shaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform mat4 uMVMatrix;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","gl_Position = uMVMatrix * vec4(aVertexPosition, 1.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],PIXI.CompileVertexShader=function(t,e){return PIXI._CompileShader(t,e,t.VERTEX_SHADER)},PIXI.CompileFragmentShader=function(t,e){return PIXI._CompileShader(t,e,t.FRAGMENT_SHADER)},PIXI._CompileShader=function(t,e,i){var r=e.join("\n"),s=t.createShader(i);return t.shaderSource(s,r),t.compileShader(s),t.getShaderParameter(s,t.COMPILE_STATUS)?s:(alert(t.getShaderInfoLog(s)),null)},PIXI._defaultFrame=new PIXI.Rectangle(0,0,1,1),PIXI.gl,PIXI.WebGLRenderer=function(t,e,i,r){this.transparent=!!r,this.width=t||800,this.height=e||600,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height;var s=this;this.view.addEventListener("webglcontextlost",function(t){s.handleContextLost(t)},!1),this.view.addEventListener("webglcontextrestored",function(t){s.handleContextRestored(t)},!1),this.batchs=[];try{PIXI.gl=this.gl=this.view.getContext("experimental-webgl",{alpha:this.transparent,antialias:!1,premultipliedAlpha:!0})}catch(n){throw Error(" This browser does not support webGL. Try using the canvas renderer"+this)}this.initShaders();var a=this.gl;PIXI.WebGLRenderer.gl=a,this.batch=new PIXI.WebGLBatch(a),a.disable(a.DEPTH_TEST),a.disable(a.CULL_FACE),a.enable(a.BLEND),a.colorMask(!0,!0,!0,this.transparent),this.projectionMatrix=PIXI.mat4.create(),this.resize(this.width,this.height),this.contextLost=!1,this.stageRenderGroup=new PIXI.WebGLRenderGroup(this.gl)},PIXI.WebGLRenderer.constructor=PIXI.WebGLRenderer,PIXI.WebGLRenderer.getBatch=function(){return 0==PIXI._batchs.length?new PIXI.WebGLBatch(PIXI.WebGLRenderer.gl):PIXI._batchs.pop()},PIXI.WebGLRenderer.returnBatch=function(t){t.clean(),PIXI._batchs.push(t)},PIXI.WebGLRenderer.prototype.initShaders=function(){var t=this.gl,e=PIXI.CompileFragmentShader(t,PIXI.shaderFragmentSrc),i=PIXI.CompileVertexShader(t,PIXI.shaderVertexSrc);PIXI.shaderProgram=t.createProgram();var r=PIXI.shaderProgram;t.attachShader(r,i),t.attachShader(r,e),t.linkProgram(r),t.getProgramParameter(r,t.LINK_STATUS)||alert("Could not initialise shaders"),t.useProgram(r),r.vertexPositionAttribute=t.getAttribLocation(r,"aVertexPosition"),t.enableVertexAttribArray(r.vertexPositionAttribute),r.textureCoordAttribute=t.getAttribLocation(r,"aTextureCoord"),t.enableVertexAttribArray(r.textureCoordAttribute),r.colorAttribute=t.getAttribLocation(r,"aColor"),t.enableVertexAttribArray(r.colorAttribute),r.mvMatrixUniform=t.getUniformLocation(r,"uMVMatrix"),r.samplerUniform=t.getUniformLocation(r,"uSampler")},PIXI.WebGLRenderer.prototype.render=function(t){if(!this.contextLost){this.__stage!==t&&(this.__stage=t,this.stageRenderGroup.setRenderable(t));for(var e=0;PIXI.texturesToUpdate.length>e;e++)this.updateTexture(PIXI.texturesToUpdate[e]);for(var e=0;PIXI.texturesToDestroy.length>e;e++)this.destroyTexture(PIXI.texturesToDestroy[e]);PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[],t.updateTransform();var i=this.gl;if(i.colorMask(!0,!0,!0,this.transparent),i.viewport(0,0,this.width,this.height),i.bindFramebuffer(i.FRAMEBUFFER,null),i.clearColor(t.backgroundColorSplit[0],t.backgroundColorSplit[1],t.backgroundColorSplit[2],this.transparent),i.clear(i.COLOR_BUFFER_BIT),this.stageRenderGroup.backgroundColor=t.backgroundColorSplit,this.stageRenderGroup.render(this.projectionMatrix),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),PIXI.Texture.frameUpdates.length>0){for(var e=0;PIXI.Texture.frameUpdates.length>e;e++)PIXI.Texture.frameUpdates[e].updateFrame=!1;PIXI.Texture.frameUpdates=[]}}},PIXI.WebGLRenderer.prototype.updateTexture=function(t){var e=this.gl;t._glTexture||(t._glTexture=e.createTexture()),t.hasLoaded&&(e.bindTexture(e.TEXTURE_2D,t._glTexture),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t.source),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),t._powerOf2?(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT)):(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)),e.bindTexture(e.TEXTURE_2D,null)),this.refreshBatchs=!0},PIXI.WebGLRenderer.prototype.destroyTexture=function(t){var e=this.gl;t._glTexture&&(t._glTexture=e.createTexture(),e.deleteTexture(e.TEXTURE_2D,t._glTexture))},PIXI.WebGLRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e,this.gl.viewport(0,0,this.width,this.height);var i=this.projectionMatrix;i[0]=2/this.width,i[5]=-2/this.height,i[12]=-1,i[13]=1},PIXI.WebGLRenderer.prototype.handleContextLost=function(t){t.preventDefault(),this.contextLost=!0},PIXI.WebGLRenderer.prototype.handleContextRestored=function(){this.gl=this.view.getContext("experimental-webgl",{alpha:!0}),this.initShaders();for(var t=0;PIXI.TextureCache.length>t;t++)this.updateTexture(PIXI.TextureCache[t]);for(var t=0;this.batchs.length>t;t++)this.batchs[t].restoreLostContext(this.gl),this.batchs[t].dirty=!0;PIXI._restoreBatchs(this.gl),this.contextLost=!1},PIXI._batchs=[],PIXI._getBatch=function(t){return 0==PIXI._batchs.length?new PIXI.WebGLBatch(t):PIXI._batchs.pop()},PIXI._returnBatch=function(t){t.clean(),PIXI._batchs.push(t)},PIXI._restoreBatchs=function(t){for(var e=0;PIXI._batchs.length>e;e++)PIXI._batchs[e].restoreLostContext(t)},PIXI.WebGLBatch=function(t){this.gl=t,this.size=0,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer(),this.blendMode=PIXI.blendModes.NORMAL,this.dynamicSize=1},PIXI.WebGLBatch.constructor=PIXI.WebGLBatch,PIXI.WebGLBatch.prototype.clean=function(){this.verticies=[],this.uvs=[],this.indices=[],this.colors=[],this.dynamicSize=1,this.texture=null,this.last=null,this.size=0,this.head,this.tail},PIXI.WebGLBatch.prototype.restoreLostContext=function(t){this.gl=t,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer()},PIXI.WebGLBatch.prototype.init=function(t){t.batch=this,this.dirty=!0,this.blendMode=t.blendMode,this.texture=t.texture.baseTexture,this.head=t,this.tail=t,this.size=1,this.growBatch()},PIXI.WebGLBatch.prototype.insertBefore=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__prev;e.__prev=t,t.__next=e,i?(t.__prev=i,i.__next=t):this.head=t},PIXI.WebGLBatch.prototype.insertAfter=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__next;e.__next=t,t.__prev=e,i?(t.__next=i,i.__prev=t):this.tail=t},PIXI.WebGLBatch.prototype.remove=function(t){return this.size--,0==this.size?(t.batch=null,t.__prev=null,t.__next=null,void 0):(t.__prev?t.__prev.__next=t.__next:(this.head=t.__next,this.head.__prev=null),t.__next?t.__next.__prev=t.__prev:(this.tail=t.__prev,this.tail.__next=null),t.batch=null,t.__next=null,t.__prev=null,this.dirty=!0,void 0)},PIXI.WebGLBatch.prototype.split=function(t){this.dirty=!0;var e=new PIXI.WebGLBatch(this.gl);e.init(t),e.tail=this.tail,this.tail=t.__prev,this.tail.__next=null,t.__prev=null;for(var i=0;t;)i++,t.batch=e,t=t.__next;return e.size=i,this.size-=i,e},PIXI.WebGLBatch.prototype.merge=function(t){this.dirty=!0,this.tail.__next=t.head,t.head.__prev=this.tail,this.size+=t.size,this.tail=t.tail;for(var e=t.head;e;)e.batch=this,e=e.__next},PIXI.WebGLBatch.prototype.growBatch=function(){var t=this.gl;this.dynamicSize=1==this.size?1:1.5*this.size,this.verticies=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.vertexBuffer),t.bufferData(t.ARRAY_BUFFER,this.verticies,t.DYNAMIC_DRAW),this.uvs=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.uvBuffer),t.bufferData(t.ARRAY_BUFFER,this.uvs,t.DYNAMIC_DRAW),this.dirtyUVS=!0,this.colors=new Float32Array(4*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.colorBuffer),t.bufferData(t.ARRAY_BUFFER,this.colors,t.DYNAMIC_DRAW),this.dirtyColors=!0,this.indices=new Uint16Array(6*this.dynamicSize);for(var e=this.indices.length/6,i=0;e>i;i++){var r=6*i,s=4*i;this.indices[r+0]=s+0,this.indices[r+1]=s+1,this.indices[r+2]=s+2,this.indices[r+3]=s+0,this.indices[r+4]=s+2,this.indices[r+5]=s+3}t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,this.indexBuffer),t.bufferData(t.ELEMENT_ARRAY_BUFFER,this.indices,t.STATIC_DRAW)},PIXI.WebGLBatch.prototype.refresh=function(){this.gl,this.dynamicSizei;i++)this.removeDisplayObjectAndChildren(this.toRemove[i]);this.toRemove=[],this.checkVisibility(this.root,this.root.visible);for(var r,i=0;this.batchs.length>i;i++)r=this.batchs[i],r instanceof PIXI.WebGLBatch?this.batchs[i].render():r instanceof PIXI.TilingSprite?r.visible&&this.renderTilingSprite(r,t):r instanceof PIXI.Strip&&r.visible&&this.renderStrip(r,t)},PIXI.WebGLRenderGroup.prototype.renderSpecific=function(t,e){var i=this.gl;this.checkVisibility(t,t.visible),i.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform,!1,e);var r,s,n,a,o=t.renderable?t:this.getNextRenderable(t),h=o.batch;if(o instanceof PIXI.Sprite){h=o.batch;var u=h.head;if(u==o)r=0;else for(r=1;u.__next!=o;)r++,u=u.__next}else h=o;for(var c,d=t,l=t;l.children.length>0;)l=l.children[l.children.length-1],l.renderable&&(d=l);if(d instanceof PIXI.Sprite){c=d.batch;var u=c.head;if(u==d)n=0;else for(n=1;u.__next!=d;)n++,u=u.__next}else c=d;if(h==c)return h instanceof PIXI.WebGLBatch?h.render(r,n+1):h instanceof PIXI.TilingSprite?h.visible&&this.renderTilingSprite(h,e):h instanceof PIXI.Strip?h.visible&&this.renderStrip(h,e):h instanceof PIXI.CustomRenderable&&h.visible&&h.renderWebGL(this,e),void 0;s=this.batchs.indexOf(h),a=this.batchs.indexOf(c),h instanceof PIXI.WebGLBatch?h.render(r):h instanceof PIXI.TilingSprite?h.visible&&this.renderTilingSprite(h,e):h instanceof PIXI.Strip?h.visible&&this.renderStrip(h,e):h instanceof PIXI.CustomRenderable&&h.visible&&h.renderWebGL(this,e);for(var I=s+1;a>I;I++)renderable=this.batchs[I],renderable instanceof PIXI.WebGLBatch?this.batchs[I].render():renderable instanceof PIXI.TilingSprite?renderable.visible&&this.renderTilingSprite(renderable,e):renderable instanceof PIXI.Strip?renderable.visible&&this.renderStrip(renderable,e):renderable instanceof PIXI.CustomRenderable&&renderable.visible&&renderable.renderWebGL(this,e);c instanceof PIXI.WebGLBatch?c.render(0,n+1):c instanceof PIXI.TilingSprite?c.visible&&this.renderTilingSprite(c):c instanceof PIXI.Strip?c.visible&&this.renderStrip(c):c instanceof PIXI.CustomRenderable&&c.visible&&c.renderWebGL(this,e)},PIXI.WebGLRenderGroup.prototype.checkVisibility=function(t,e){for(var i=t.children,r=0;i.length>r;r++){var s=i[r];s.worldVisible=s.visible&&e,s.textureChange&&(s.textureChange=!1,s.worldVisible&&(this.removeDisplayObject(s),this.addDisplayObject(s))),s.children.length>0&&this.checkVisibility(s,s.worldVisible)}},PIXI.WebGLRenderGroup.prototype.addDisplayObject=function(t){if(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.__renderGroup=this,t.renderable){var e=this.getPreviousRenderable(t),i=this.getNextRenderable(t);if(t instanceof PIXI.Sprite){var r,s;if(e instanceof PIXI.Sprite){if(r=e.batch,r&&r.texture==t.texture.baseTexture&&r.blendMode==t.blendMode)return r.insertAfter(t,e),void 0}else r=e;if(i)if(i instanceof PIXI.Sprite){if(s=i.batch){if(s.texture==t.texture.baseTexture&&s.blendMode==t.blendMode)return s.insertBefore(t,i),void 0;if(s==r){var n=r.split(i),a=PIXI.WebGLRenderer.getBatch(),o=this.batchs.indexOf(r);return a.init(t),this.batchs.splice(o+1,0,a,n),void 0}}}else s=i;var a=PIXI.WebGLRenderer.getBatch();if(a.init(t),r){var o=this.batchs.indexOf(r);this.batchs.splice(o+1,0,a)}else this.batchs.push(a)}else t instanceof PIXI.TilingSprite?(this.initTilingSprite(t),this.batchs.push(t)):t instanceof PIXI.Strip&&(this.initStrip(t),this.batchs.push(t));this.batchUpdate=!0}},PIXI.WebGLRenderGroup.prototype.addDisplayObjectAndChildren=function(t){this.addDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.addDisplayObjectAndChildren(e[i])},PIXI.WebGLRenderGroup.prototype.removeDisplayObject=function(t){if(t.__renderGroup=null,t.renderable){var e;if(t instanceof PIXI.Sprite){var i=t.batch;if(!i)return;i.remove(t),0==i.size&&(e=i)}else e=t;if(e){var r=this.batchs.indexOf(e);if(-1==r)return;if(0==r||r==this.batchs.length-1)return this.batchs.splice(r,1),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e),void 0;if(this.batchs[r-1]instanceof PIXI.WebGLBatch&&this.batchs[r+1]instanceof PIXI.WebGLBatch&&this.batchs[r-1].texture==this.batchs[r+1].texture&&this.batchs[r-1].blendMode==this.batchs[r+1].blendMode)return this.batchs[r-1].merge(this.batchs[r+1]),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e),PIXI.WebGLRenderer.returnBatch(this.batchs[r+1]),this.batchs.splice(r,2),void 0;this.batchs.splice(r,1),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e)}}},PIXI.WebGLRenderGroup.prototype.removeDisplayObjectAndChildren=function(t){if(t.__renderGroup==this){this.removeDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.removeDisplayObjectAndChildren(e[i])}},PIXI.WebGLRenderGroup.prototype.getNextRenderable=function(t){var e=t;do{if(0==e.children.length){if(!e.parent)return null;for(;e.childIndex==e.parent.children.length-1;)if(e=e.parent,e==this.root){e=null;break}e&&(e=e.parent.children[e.childIndex+1])}else e=e.children[0];if(!e)break}while(!e.renderable||!e.__renderGroup);return e},PIXI.WebGLRenderGroup.prototype.getPreviousRenderable=function(t){var e=t;do{if(0==e.childIndex){if(e=e.parent,!e)return null}else for(e=e.parent.children[e.childIndex-1];0!=e.children.length;)e=e.children[e.children.length-1];if(e==this.root)break}while(!e.renderable||!e.__renderGroup);return e},PIXI.WebGLRenderGroup.prototype.initTilingSprite=function(t){var e=this.gl;t.verticies=new Float32Array([0,0,t.width,0,t.width,t.height,0,t.height]),t.uvs=new Float32Array([0,0,1,0,1,1,0,1]),t.colors=new Float32Array([1,1,1,1]),t.indices=new Uint16Array([0,1,3,2]),t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW),t.texture.baseTexture._glTexture?(e.bindTexture(e.TEXTURE_2D,t.texture.baseTexture._glTexture),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT),t.texture.baseTexture._powerOf2=!0):t.texture.baseTexture._powerOf2=!0},PIXI.WebGLRenderGroup.prototype.renderStrip=function(t,e){var i=this.gl,r=PIXI.shaderProgram,s=PIXI.mat3.toMat4(t.worldTransform);PIXI.mat4.transpose(s),PIXI.mat4.multiply(e,s,s),i.uniformMatrix4fv(r.mvMatrixUniform,!1,s),t.blendMode==PIXI.blendModes.NORMAL?i.blendFunc(i.ONE,i.ONE_MINUS_SRC_ALPHA):i.blendFunc(i.ONE,i.ONE_MINUS_SRC_COLOR),t.dirty?(t.dirty=!1,i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferData(i.ARRAY_BUFFER,t.verticies,i.STATIC_DRAW),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferData(i.ARRAY_BUFFER,t.uvs,i.STATIC_DRAW),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.bufferData(i.ARRAY_BUFFER,t.colors,i.STATIC_DRAW),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer),i.bufferData(i.ELEMENT_ARRAY_BUFFER,t.indices,i.STATIC_DRAW)):(i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.verticies),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer)),i.drawElements(i.TRIANGLE_STRIP,t.indices.length,i.UNSIGNED_SHORT,0),i.uniformMatrix4fv(r.mvMatrixUniform,!1,e)},PIXI.WebGLRenderGroup.prototype.renderTilingSprite=function(t,e){var i=this.gl;PIXI.shaderProgram;var r=t.tilePosition,s=t.tileScale,n=r.x/t.texture.baseTexture.width,a=r.y/t.texture.baseTexture.height,o=t.width/t.texture.baseTexture.width/s.x,h=t.height/t.texture.baseTexture.height/s.y;t.uvs[0]=0-n,t.uvs[1]=0-a,t.uvs[2]=1*o-n,t.uvs[3]=0-a,t.uvs[4]=1*o-n,t.uvs[5]=1*h-a,t.uvs[6]=0-n,t.uvs[7]=1*h-a,i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.uvs),this.renderStrip(t,e)},PIXI.WebGLRenderer.prototype.initStrip=function(t){var e=this.gl;this.shaderProgram,t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW)},PIXI.CanvasRenderer=function(t,e,i,r){this.transparent=r,this.width=t||800,this.height=e||600,this.refresh=!0,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height,this.count=0,this.context=this.view.getContext("2d")},PIXI.CanvasRenderer.constructor=PIXI.CanvasRenderer,PIXI.CanvasRenderer.prototype.render=function(t){PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[],t.updateTransform(),this.view.style.backgroundColor==t.backgroundColorString||this.transparent||(this.view.style.backgroundColor=t.backgroundColorString),this.context.setTransform(1,0,0,1,0,0),this.context.clearRect(0,0,this.width,this.height),this.renderDisplayObject(t),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),PIXI.Texture.frameUpdates.length>0&&(PIXI.Texture.frameUpdates=[])},PIXI.CanvasRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e},PIXI.CanvasRenderer.prototype.renderDisplayObject=function(t){var e=t.worldTransform,i=this.context;if(t.visible){if(t instanceof PIXI.Sprite){var r=t.texture.frame;r&&(i.globalAlpha=t.worldAlpha,i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),i.drawImage(t.texture.baseTexture.source,r.x,r.y,r.width,r.height,t.anchor.x*-r.width,t.anchor.y*-r.height,r.width,r.height))}else t instanceof PIXI.Strip?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderStrip(t)):t instanceof PIXI.TilingSprite?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderTilingSprite(t)):t instanceof PIXI.CustomRenderable&&t.renderCanvas(this);for(var s=0;t.children.length>s;s++)this.renderDisplayObject(t.children[s]);this.context.setTransform(1,0,0,1,0,0)}},PIXI.CanvasRenderer.prototype.renderStripFlat=function(t){var e=this.context,i=t.verticies;t.uvs;var r=i.length/2;this.count++,e.beginPath();for(var s=1;r-2>s;s++){var n=2*s,a=i[n],o=i[n+2],h=i[n+4],u=i[n+1],c=i[n+3],d=i[n+5];e.moveTo(a,u),e.lineTo(o,c),e.lineTo(h,d)}e.fillStyle="#FF0000",e.fill(),e.closePath()},PIXI.CanvasRenderer.prototype.renderTilingSprite=function(t){var e=this.context;t.__tilePattern||(t.__tilePattern=e.createPattern(t.texture.baseTexture.source,"repeat")),e.beginPath();var i=t.tilePosition,r=t.tileScale;e.scale(r.x,r.y),e.translate(i.x,i.y),e.fillStyle=t.__tilePattern,e.fillRect(-i.x,-i.y,t.width/r.x,t.height/r.y),e.scale(1/r.x,1/r.y),e.translate(-i.x,-i.y),e.closePath()},PIXI.CanvasRenderer.prototype.renderStrip=function(t){var e=this.context,i=t.verticies,r=t.uvs,s=i.length/2;this.count++;for(var n=1;s-2>n;n++){var a=2*n,o=i[a],h=i[a+2],u=i[a+4],c=i[a+1],d=i[a+3],l=i[a+5],I=r[a]*t.texture.width,p=r[a+2]*t.texture.width,f=r[a+4]*t.texture.width,x=r[a+1]*t.texture.height,v=r[a+3]*t.texture.height,P=r[a+5]*t.texture.height;e.save(),e.beginPath(),e.moveTo(o,c),e.lineTo(h,d),e.lineTo(u,l),e.closePath(),e.clip();var g=I*v+x*f+p*P-v*f-x*p-I*P,b=o*v+x*u+h*P-v*u-x*h-o*P,X=I*h+o*f+p*u-h*f-o*p-I*u,m=I*v*u+x*h*f+o*p*P-o*v*f-x*p*u-I*h*P,T=c*v+x*l+d*P-v*l-x*d-c*P,y=I*d+c*f+p*l-d*f-c*p-I*l,_=I*v*l+x*d*f+c*p*P-c*v*f-x*p*l-I*d*P;e.transform(b/g,T/g,X/g,y/g,m/g,_/g),e.drawImage(t.texture.baseTexture.source,0,0),e.restore()}},PIXI.Strip=function(t,e,i){PIXI.DisplayObjectContainer.call(this),this.texture=t,this.blendMode=PIXI.blendModes.NORMAL;try{this.uvs=new Float32Array([0,1,1,1,1,0,0,1]),this.verticies=new Float32Array([0,0,0,0,0,0,0,0,0]),this.colors=new Float32Array([1,1,1,1]),this.indices=new Uint16Array([0,1,2,3])}catch(r){this.uvs=[0,1,1,1,1,0,0,1],this.verticies=[0,0,0,0,0,0,0,0,0],this.colors=[1,1,1,1],this.indices=[0,1,2,3]}this.width=e,this.height=i,t.baseTexture.hasLoaded?(this.width=this.texture.frame.width,this.height=this.texture.frame.height,this.updateFrame=!0):(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},PIXI.Strip.constructor=PIXI.Strip,PIXI.Strip.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Strip.prototype.setTexture=function(t){this.texture=t,this.width=t.frame.width,this.height=t.frame.height,this.updateFrame=!0},PIXI.Strip.prototype.onTextureUpdate=function(){this.updateFrame=!0},PIXI.Rope=function(t,e){PIXI.Strip.call(this,t),this.points=e;try{this.verticies=new Float32Array(4*e.length),this.uvs=new Float32Array(4*e.length),this.colors=new Float32Array(2*e.length),this.indices=new Uint16Array(2*e.length)}catch(i){this.verticies=verticies,this.uvs=uvs,this.colors=colors,this.indices=indices}this.refresh()},PIXI.Rope.constructor=PIXI.Rope,PIXI.Rope.prototype=Object.create(PIXI.Strip.prototype),PIXI.Rope.prototype.refresh=function(){var t=this.points;if(!(1>t.length)){var e=this.uvs,i=this.indices,r=this.colors,s=t[0],n=t[0];this.count-=.2,e[0]=0,e[1]=1,e[2]=0,e[3]=1,r[0]=1,r[1]=1,i[0]=0,i[1]=1;for(var a=t.length,o=1;a>o;o++){var n=t[o],h=4*o,u=o/(a-1);o%2?(e[h]=u,e[h+1]=0,e[h+2]=u,e[h+3]=1):(e[h]=u,e[h+1]=0,e[h+2]=u,e[h+3]=1),h=2*o,r[h]=1,r[h+1]=1,h=2*o,i[h]=h,i[h+1]=h+1,s=n}}},PIXI.Rope.prototype.updateTransform=function(){var t=this.points;if(!(1>t.length)){var e,i=this.verticies,r=t[0],s={x:0,y:0},n=t[0];this.count-=.2,i[0]=n.x+s.x,i[1]=n.y+s.y,i[2]=n.x-s.x,i[3]=n.y-s.y;for(var a=t.length,o=1;a>o;o++){var n=t[o],h=4*o;e=t.length-1>o?t[o+1]:n,s.y=-(e.x-r.x),s.x=e.y-r.y;var u=10*(1-o/(a-1));u>1&&(u=1);var c=Math.sqrt(s.x*s.x+s.y*s.y),d=this.texture.height/2;s.x/=c,s.y/=c,s.x*=d,s.y*=d,i[h]=n.x+s.x,i[h+1]=n.y+s.y,i[h+2]=n.x-s.x,i[h+3]=n.y-s.y,r=n}PIXI.DisplayObjectContainer.prototype.updateTransform.call(this)}},PIXI.Rope.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0},PIXI.TilingSprite=function(t,e,i){PIXI.DisplayObjectContainer.call(this),this.texture=t,this.width=e,this.height=i,this.renderable=!0,this.tileScale=new PIXI.Point(1,1),this.tilePosition=new PIXI.Point(0,0),this.blendMode=PIXI.blendModes.NORMAL},PIXI.TilingSprite.constructor=PIXI.TilingSprite,PIXI.TilingSprite.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.TilingSprite.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0},PIXI.TilingSprite.prototype.onTextureUpdate=function(){this.updateFrame=!0},PIXI.CustomRenderable=function(){PIXI.DisplayObject.call(this)},PIXI.CustomRenderable.constructor=PIXI.CustomRenderable,PIXI.CustomRenderable.prototype=Object.create(PIXI.DisplayObject.prototype),PIXI.CustomRenderable.prototype.renderCanvas=function(){},PIXI.CustomRenderable.prototype.initWebGL=function(){},PIXI.CustomRenderable.prototype.renderWebGL=function(){},PIXI.BaseTextureCache={},PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[],PIXI.BaseTexture=function(t){if(PIXI.EventTarget.call(this),this.width=100,this.height=100,this.source=t,t){if(this.source instanceof Image)if(this.source.complete)this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,PIXI.texturesToUpdate.push(this);else{var e=this;this.source.onload=function(){e.hasLoaded=!0,e.width=e.source.width,e.height=e.source.height,PIXI.texturesToUpdate.push(e),e.dispatchEvent({type:"loaded",content:e})}}else this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,PIXI.texturesToUpdate.push(this);this._powerOf2=!1}},PIXI.BaseTexture.constructor=PIXI.BaseTexture,PIXI.BaseTexture.prototype.destroy=function(){this.source instanceof Image&&(this.source.src=null),this.source=null,PIXI.texturesToDestroy.push(this)},PIXI.BaseTexture.fromImage=function(t,e){var i=PIXI.BaseTextureCache[t];if(!i){var r=new Image;e&&(r.crossOrigin=""),r.src=t,i=new PIXI.BaseTexture(r),PIXI.BaseTextureCache[t]=i}return i},PIXI.TextureCache={},PIXI.FrameCache={},PIXI.Texture=function(t,e){if(PIXI.EventTarget.call(this),e||(this.noFrame=!0,e=new PIXI.Rectangle(0,0,1,1)),this.trim=new PIXI.Point,t instanceof PIXI.Texture&&(t=t.baseTexture),this.baseTexture=t,this.frame=e,this.scope=this,t.hasLoaded)this.noFrame&&(e=new PIXI.Rectangle(0,0,t.width,t.height)),this.setFrame(e);else{var i=this;t.addEventListener("loaded",function(){i.onBaseTextureLoaded()})}},PIXI.Texture.constructor=PIXI.Texture,PIXI.Texture.prototype.onBaseTextureLoaded=function(){var t=this.baseTexture;t.removeEventListener("loaded",this.onLoaded),this.noFrame&&(this.frame=new PIXI.Rectangle(0,0,t.width,t.height)),this.noFrame=!1,this.width=this.frame.width,this.height=this.frame.height,this.scope.dispatchEvent({type:"update",content:this})},PIXI.Texture.prototype.destroy=function(t){t&&this.baseTexture.destroy()},PIXI.Texture.prototype.setFrame=function(t){if(this.frame=t,this.width=t.width,this.height=t.height,t.x+t.width>this.baseTexture.width||t.y+t.height>this.baseTexture.height)throw Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);this.updateFrame=!0,PIXI.Texture.frameUpdates.push(this)},PIXI.Texture.fromImage=function(t,e){var i=PIXI.TextureCache[t];return i||(i=new PIXI.Texture(PIXI.BaseTexture.fromImage(t,e)),PIXI.TextureCache[t]=i),i},PIXI.Texture.fromFrame=function(t){var e=PIXI.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache "+this);return e},PIXI.Texture.fromCanvas=function(t){var e=new PIXI.BaseTexture(t);return new PIXI.Texture(e)},PIXI.Texture.addTextureToCache=function(t,e){PIXI.TextureCache[e]=t},PIXI.Texture.removeTextureFromCache=function(t){var e=PIXI.TextureCache[t];return PIXI.TextureCache[t]=null,e},PIXI.Texture.frameUpdates=[],PIXI.RenderTexture=function(t,e){PIXI.EventTarget.call(this),this.width=t||100,this.height=e||100,this.indetityMatrix=PIXI.mat3.create(),this.frame=new PIXI.Rectangle(0,0,this.width,this.height),PIXI.gl?this.initWebGL():this.initCanvas()},PIXI.RenderTexture.constructor=PIXI.RenderTexture,PIXI.RenderTexture.prototype=Object.create(PIXI.Texture.prototype),PIXI.RenderTexture.prototype.initWebGL=function(){var t=PIXI.gl;this.glFramebuffer=t.createFramebuffer(),t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),this.glFramebuffer.width=this.width,this.glFramebuffer.height=this.height,this.baseTexture=new PIXI.BaseTexture,this.baseTexture.width=this.width,this.baseTexture.height=this.height,this.baseTexture._glTexture=t.createTexture(),t.bindTexture(t.TEXTURE_2D,this.baseTexture._glTexture),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,this.width,this.height,0,t.RGBA,t.UNSIGNED_BYTE,null),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),this.baseTexture.isRender=!0,t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,this.baseTexture._glTexture,0),this.projectionMatrix=PIXI.mat4.create(),this.projectionMatrix[5]=2/this.height,this.projectionMatrix[13]=-1,this.projectionMatrix[0]=2/this.width,this.projectionMatrix[12]=-1,this.render=this.renderWebGL},PIXI.RenderTexture.prototype.initCanvas=function(){this.renderer=new PIXI.CanvasRenderer(this.width,this.height,null,0),this.baseTexture=new PIXI.BaseTexture(this.renderer.view),this.frame=new PIXI.Rectangle(0,0,this.width,this.height),this.render=this.renderCanvas},PIXI.RenderTexture.prototype.renderWebGL=function(t,e){var i=PIXI.gl;i.colorMask(!0,!0,!0,!0),i.viewport(0,0,this.width,this.height),i.bindFramebuffer(i.FRAMEBUFFER,this.glFramebuffer),e&&(i.clearColor(0,0,0,0),i.clear(i.COLOR_BUFFER_BIT));var r=t.children;t.worldTransform=PIXI.mat3.create();for(var s=0,n=r.length;n>s;s++)r[s].updateTransform();var a=t.__renderGroup;a?t==a.root?a.render(this.projectionMatrix):a.renderSpecific(t,this.projectionMatrix):(this.renderGroup||(this.renderGroup=new PIXI.WebGLRenderGroup(i)),this.renderGroup.setRenderable(t),this.renderGroup.render(this.projectionMatrix))},PIXI.RenderTexture.prototype.renderCanvas=function(t,e){var i=t.children;t.worldTransform=PIXI.mat3.create();for(var r=0,s=i.length;s>r;r++)i[r].updateTransform();e&&this.renderer.context.clearRect(0,0,this.width,this.height),this.renderer.renderDisplayObject(t),PIXI.texturesToUpdate.push(this.baseTexture)},PIXI.AssetLoader=function(t){PIXI.EventTarget.call(this),this.assetURLs=t,this.crossorigin=!1,this.loadersByType={jpg:PIXI.ImageLoader,jpeg:PIXI.ImageLoader,png:PIXI.ImageLoader,gif:PIXI.ImageLoader,json:PIXI.SpriteSheetLoader,xml:PIXI.BitmapFontLoader,fnt:PIXI.BitmapFontLoader}},PIXI.AssetLoader.constructor=PIXI.AssetLoader,PIXI.AssetLoader.prototype.load=function(){var t=this;this.loadCount=this.assetURLs.length;for(var e=0;this.assetURLs.length>e;e++){var i=this.assetURLs[e],r=i.split(".").pop().toLowerCase(),s=this.loadersByType[r];if(!s)throw Error(r+" is an unsupported file type");var n=new s(i,this.crossorigin);n.addEventListener("loaded",function(){t.onAssetLoaded()}),n.load()}},PIXI.AssetLoader.prototype.onAssetLoaded=function(){this.loadCount--,this.dispatchEvent({type:"onProgress",content:this}),this.onProgress&&this.onProgress(),0==this.loadCount&&(this.dispatchEvent({type:"onComplete",content:this}),this.onComplete&&this.onComplete())},PIXI.SpriteSheetLoader=function(t,e){PIXI.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.frames={},this.crossorigin=e},PIXI.SpriteSheetLoader.constructor=PIXI.SpriteSheetLoader,PIXI.SpriteSheetLoader.prototype.load=function(){this.ajaxRequest=new AjaxRequest;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onJSONLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/json"),this.ajaxRequest.send(null)},PIXI.SpriteSheetLoader.prototype.onJSONLoaded=function(){if(4==this.ajaxRequest.readyState&&(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))){var jsonData=eval("("+this.ajaxRequest.responseText+")"),textureUrl=this.baseUrl+jsonData.meta.image,image=new PIXI.ImageLoader(textureUrl,this.crossorigin);this.texture=image.texture.baseTexture;var scope=this;image.addEventListener("loaded",function(){scope.onLoaded()});var frameData=jsonData.frames;for(var i in frameData){var rect=frameData[i].frame;rect&&(PIXI.TextureCache[i]=new PIXI.Texture(this.texture,{x:rect.x,y:rect.y,width:rect.w,height:rect.h}),frameData[i].trimmed&&(PIXI.TextureCache[i].realSize=frameData[i].spriteSourceSize,PIXI.TextureCache[i].trim.x=0))}image.load()}},PIXI.SpriteSheetLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},PIXI.ImageLoader=function(t,e){PIXI.EventTarget.call(this),this.texture=PIXI.Texture.fromImage(t,e)},PIXI.ImageLoader.constructor=PIXI.ImageLoader,PIXI.ImageLoader.prototype.load=function(){if(this.texture.baseTexture.hasLoaded)this.onLoaded();else{var t=this;this.texture.baseTexture.addEventListener("loaded",function(){t.onLoaded()})}},PIXI.ImageLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},PIXI.BitmapFontLoader=function(t,e){PIXI.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.crossorigin=e},PIXI.BitmapFontLoader.constructor=PIXI.BitmapFontLoader,PIXI.BitmapFontLoader.prototype.load=function(){this.ajaxRequest=new XMLHttpRequest;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onXMLLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/xml"),this.ajaxRequest.send(null)},PIXI.BitmapFontLoader.prototype.onXMLLoaded=function(){if(4==this.ajaxRequest.readyState&&(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))){var t=this.baseUrl+this.ajaxRequest.responseXML.getElementsByTagName("page")[0].attributes.getNamedItem("file").nodeValue,e=new PIXI.ImageLoader(t,this.crossorigin);this.texture=e.texture.baseTexture;var i={},r=this.ajaxRequest.responseXML.getElementsByTagName("info")[0],s=this.ajaxRequest.responseXML.getElementsByTagName("common")[0];i.font=r.attributes.getNamedItem("face").nodeValue,i.size=parseInt(r.attributes.getNamedItem("size").nodeValue,10),i.lineHeight=parseInt(s.attributes.getNamedItem("lineHeight").nodeValue,10),i.chars={};for(var n=this.ajaxRequest.responseXML.getElementsByTagName("char"),a=0;n.length>a;a++){var o=parseInt(n[a].attributes.getNamedItem("id").nodeValue,10),h={x:parseInt(n[a].attributes.getNamedItem("x").nodeValue,10),y:parseInt(n[a].attributes.getNamedItem("y").nodeValue,10),width:parseInt(n[a].attributes.getNamedItem("width").nodeValue,10),height:parseInt(n[a].attributes.getNamedItem("height").nodeValue,10)};PIXI.TextureCache[o]=new PIXI.Texture(this.texture,h),i.chars[o]={xOffset:parseInt(n[a].attributes.getNamedItem("xoffset").nodeValue,10),yOffset:parseInt(n[a].attributes.getNamedItem("yoffset").nodeValue,10),xAdvance:parseInt(n[a].attributes.getNamedItem("xadvance").nodeValue,10),kerning:{}}}var u=this.ajaxRequest.responseXML.getElementsByTagName("kerning");for(a=0;u.length>a;a++){var c=parseInt(u[a].attributes.getNamedItem("first").nodeValue,10),d=parseInt(u[a].attributes.getNamedItem("second").nodeValue,10),l=parseInt(u[a].attributes.getNamedItem("amount").nodeValue,10);i.chars[d].kerning[c]=l}PIXI.BitmapText.fonts[i.font]=i;var I=this;e.addEventListener("loaded",function(){I.onLoaded()}),e.load()}},PIXI.BitmapFontLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=PIXI),exports.PIXI=PIXI):root.PIXI=PIXI}).call(this); \ No newline at end of file +(function(){function HEXtoRGB(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}function determineMatrixArrayType(){return PIXI.Matrix="undefined"!=typeof Float32Array?Float32Array:Array,PIXI.Matrix}var root=this,PIXI=PIXI||{};PIXI.Point=function(t,e){this.x=t||0,this.y=e||0},PIXI.Point.prototype.clone=function(){return new PIXI.Point(this.x,this.y)},PIXI.Point.constructor=PIXI.Point,PIXI.Rectangle=function(t,e,i,r){this.x=t||0,this.y=e||0,this.width=i||0,this.height=r||0},PIXI.Rectangle.prototype.clone=function(){return new PIXI.Rectangle(this.x,this.y,this.width,this.height)},PIXI.Rectangle.constructor=PIXI.Rectangle,PIXI.DisplayObject=function(){this.position=new PIXI.Point,this.scale=new PIXI.Point(1,1),this.pivot=new PIXI.Point(0,0),this.rotation=0,this.alpha=1,this.visible=!0,this.worldVisible=!1,this.parent=null,this.stage=null,this.hitArea=null,this.worldAlpha=1,this.color=[],this.worldTransform=PIXI.mat3.create(),this.localTransform=PIXI.mat3.create(),this.dynamic=!0,this._sr=0,this._cr=1,this.childIndex=0,this.renderable=!1,this.interactive=!1,this.buttonMode=!1},PIXI.DisplayObject.constructor=PIXI.DisplayObject,PIXI.DisplayObject.prototype.setInteractive=function(t){this.interactive=t,this.stage&&(this.stage.dirty=!0)},PIXI.DisplayObject.prototype.updateTransform=function(){this.rotation!=this.rotationCache&&(this.rotationCache=this.rotation,this._sr=Math.sin(this.rotation),this._cr=Math.cos(this.rotation));var t=this.localTransform,e=this.parent.worldTransform,i=this.worldTransform;t[0]=this._cr*this.scale.x,t[1]=-this._sr*this.scale.y,t[3]=this._sr*this.scale.x,t[4]=this._cr*this.scale.y;var r=this.pivot.x,s=this.pivot.y;t[2]=this.position.x-t[0]*r-s*t[1],t[5]=this.position.y-t[4]*s-r*t[3];var n=t[0],a=t[1],o=t[2],h=t[3],u=t[4],d=t[5],c=e[0],l=e[1],I=e[2],p=e[3],f=e[4],x=e[5];i[0]=c*n+l*h,i[1]=c*a+l*u,i[2]=c*o+l*d+I,i[3]=p*n+f*h,i[4]=p*a+f*u,i[5]=p*o+f*d+x,this.worldAlpha=this.alpha*this.parent.worldAlpha},PIXI.DisplayObjectContainer=function(){PIXI.DisplayObject.call(this),this.children=[],this.renderable=!1},PIXI.DisplayObjectContainer.constructor=PIXI.DisplayObjectContainer,PIXI.DisplayObjectContainer.prototype=Object.create(PIXI.DisplayObject.prototype),PIXI.DisplayObjectContainer.prototype.addChild=function(t){void 0!=t.parent&&t.parent.removeChild(t),t.parent=this,t.childIndex=this.children.length,this.children.push(t),this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},PIXI.DisplayObjectContainer.prototype.addChildAt=function(t,e){if(!(e>=0&&this.children.length>=e))throw Error(t+" The index "+e+" supplied is out of bounds "+this.children.length);void 0!=t.parent&&t.parent.removeChild(t),e==this.children.length?this.children.push(t):this.children.splice(e,0,t),t.parent=this,t.childIndex=e;for(var i=this.children.length,r=e;i>r;r++)this.children[r].childIndex=r;this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},PIXI.DisplayObjectContainer.prototype.swapChildren=function(t,e){var i=this.children.indexOf(t),r=this.children.indexOf(e);if(-1===i||-1===r)throw Error(t+" Both the supplied DisplayObjects must be a child of the caller "+this);this.stage&&(this.stage.__removeChild(t),this.stage.__removeChild(e),this.stage.__addChild(t),this.stage.__addChild(e)),t.childIndex=r,e.childIndex=i,this.children[i]=e,this.children[r]=t},PIXI.DisplayObjectContainer.prototype.getChildAt=function(t){if(t>=0&&this.children.length>t)return this.children[t];throw Error(child+" Both the supplied DisplayObjects must be a child of the caller "+this)},PIXI.DisplayObjectContainer.prototype.removeChild=function(t){var e=this.children.indexOf(t);if(-1===e)throw Error(t+" The supplied DisplayObject must be a child of the caller "+this);this.stage&&this.stage.__removeChild(t),t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.parent=void 0,this.children.splice(e,1);for(var i=e,r=this.children.length;r>i;i++)this.children[i].childIndex-=1},PIXI.DisplayObjectContainer.prototype.updateTransform=function(){if(this.visible){PIXI.DisplayObject.prototype.updateTransform.call(this);for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform()}},PIXI.blendModes={},PIXI.blendModes.NORMAL=0,PIXI.blendModes.SCREEN=1,PIXI.Sprite=function(t){PIXI.DisplayObjectContainer.call(this),this.anchor=new PIXI.Point,this.texture=t,this.blendMode=PIXI.blendModes.NORMAL,this._width=0,this._height=0,t.baseTexture.hasLoaded?this.updateFrame=!0:(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},PIXI.Sprite.constructor=PIXI.Sprite,PIXI.Sprite.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),Object.defineProperty(PIXI.Sprite.prototype,"width",{get:function(){return this.scale.x*this.texture.frame.width},set:function(t){this.scale.x=t/this.texture.frame.width,this._width=t}}),Object.defineProperty(PIXI.Sprite.prototype,"height",{get:function(){return this.scale.y*this.texture.frame.height},set:function(t){this.scale.y=t/this.texture.frame.height,this._height=t}}),PIXI.Sprite.prototype.setTexture=function(t){this.texture.baseTexture!=t.baseTexture&&(this.textureChange=!0),this.texture=t,this.updateFrame=!0},PIXI.Sprite.prototype.onTextureUpdate=function(){this._width&&(this.scale.x=this._width/this.texture.frame.width),this._height&&(this.scale.y=this._height/this.texture.frame.height),this.updateFrame=!0},PIXI.Sprite.fromFrame=function(t){var e=PIXI.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache"+this);return new PIXI.Sprite(e)},PIXI.Sprite.fromImage=function(t){var e=PIXI.Texture.fromImage(t);return new PIXI.Sprite(e)},PIXI.MovieClip=function(t){PIXI.Sprite.call(this,t[0]),this.textures=t,this.currentFrame=0,this.animationSpeed=1,this.loop=!0,this.onComplete=null,this.playing},PIXI.MovieClip.constructor=PIXI.MovieClip,PIXI.MovieClip.prototype=Object.create(PIXI.Sprite.prototype),PIXI.MovieClip.prototype.stop=function(){this.playing=!1},PIXI.MovieClip.prototype.play=function(){this.playing=!0},PIXI.MovieClip.prototype.gotoAndStop=function(t){this.playing=!1,this.currentFrame=t;var e=0|this.currentFrame+.5;this.setTexture(this.textures[e%this.textures.length])},PIXI.MovieClip.prototype.gotoAndPlay=function(t){this.currentFrame=t,this.playing=!0},PIXI.MovieClip.prototype.updateTransform=function(){if(PIXI.Sprite.prototype.updateTransform.call(this),this.playing){this.currentFrame+=this.animationSpeed;var t=0|this.currentFrame+.5;this.loop||this.textures.length>t?this.setTexture(this.textures[t%this.textures.length]):t>=this.textures.length&&(this.gotoAndStop(this.textures.length-1),this.onComplete&&this.onComplete())}},PIXI.Text=function(t,e){this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"),PIXI.Sprite.call(this,PIXI.Texture.fromCanvas(this.canvas)),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},PIXI.Text.constructor=PIXI.Text,PIXI.Text.prototype=Object.create(PIXI.Sprite.prototype),PIXI.Text.prototype.setStyle=function(t){t=t||{},t.font=t.font||"bold 20pt Arial",t.fill=t.fill||"black",t.align=t.align||"left",t.strokeThickness=t.strokeThickness||0,this.style=t,this.dirty=!0},PIXI.Sprite.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},PIXI.Text.prototype.updateText=function(){this.context.font=this.style.font;for(var t=this.text.split(/(?:\r\n|\r|\n)/),e=[],i=0,r=0;t.length>r;r++){var s=this.context.measureText(t[r]).width;e[r]=s,i=Math.max(i,s)}this.canvas.width=i+this.style.strokeThickness;var n=this.determineFontHeight("font: "+this.style.font+";")+this.style.strokeThickness;for(this.canvas.height=n*t.length,this.context.fillStyle=this.style.fill,this.context.font=this.style.font,this.context.strokeStyle=this.style.stroke,this.context.lineWidth=this.style.strokeThickness,this.context.textBaseline="top",r=0;t.length>r;r++){var a=new PIXI.Point(this.style.strokeThickness/2,this.style.strokeThickness/2+r*n);"right"==this.style.align?a.x+=i-e[r]:"center"==this.style.align&&(a.x+=(i-e[r])/2),this.style.stroke&&this.style.strokeThickness&&this.context.strokeText(t[r],a.x,a.y),this.style.fill&&this.context.fillText(t[r],a.x,a.y)}this.updateTexture()},PIXI.Text.prototype.updateTexture=function(){this.texture.baseTexture.width=this.canvas.width,this.texture.baseTexture.height=this.canvas.height,this.texture.frame.width=this.canvas.width,this.texture.frame.height=this.canvas.height,this._width=this.canvas.width,this._height=this.canvas.height,PIXI.texturesToUpdate.push(this.texture.baseTexture)},PIXI.Text.prototype.updateTransform=function(){this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype.updateTransform.call(this)},PIXI.Text.prototype.determineFontHeight=function(t){var e=PIXI.Text.heightCache[t];if(!e){var i=document.getElementsByTagName("body")[0],r=document.createElement("div"),s=document.createTextNode("M");r.appendChild(s),r.setAttribute("style",t),i.appendChild(r),e=r.offsetHeight,PIXI.Text.heightCache[t]=e,i.removeChild(r)}return e},PIXI.Text.prototype.destroy=function(t){t&&this.texture.destroy()},PIXI.Text.heightCache={},PIXI.BitmapText=function(t,e){PIXI.DisplayObjectContainer.call(this),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},PIXI.BitmapText.constructor=PIXI.BitmapText,PIXI.BitmapText.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.BitmapText.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},PIXI.BitmapText.prototype.setStyle=function(t){t=t||{},t.align=t.align||"left",this.style=t;var e=t.font.split(" ");this.fontName=e[e.length-1],this.fontSize=e.length>=2?parseInt(e[e.length-2],10):PIXI.BitmapText.fonts[this.fontName].size,this.dirty=!0},PIXI.BitmapText.prototype.updateText=function(){for(var t=PIXI.BitmapText.fonts[this.fontName],e=new PIXI.Point,i=null,r=[],s=0,n=[],a=0,o=this.fontSize/t.size,h=0;this.text.length>h;h++){var u=this.text.charCodeAt(h);if(/(?:\r\n|\r|\n)/.test(this.text.charAt(h)))n.push(e.x),s=Math.max(s,e.x),a++,e.x=0,e.y+=t.lineHeight,i=null;else{var d=t.chars[u];d&&(i&&d[i]&&(e.x+=d.kerning[i]),r.push({line:a,charCode:u,position:new PIXI.Point(e.x+d.xOffset,e.y+d.yOffset)}),e.x+=d.xAdvance,i=u)}}n.push(e.x),s=Math.max(s,e.x);var c=[];for(h=0;a>=h;h++){var l=0;"right"==this.style.align?l=s-n[h]:"center"==this.style.align&&(l=(s-n[h])/2),c.push(l)}for(h=0;r.length>h;h++){var I=PIXI.Sprite.fromFrame(r[h].charCode);I.position.x=(r[h].position.x+c[r[h].line])*o,I.position.y=r[h].position.y*o,I.scale.x=I.scale.y=o,this.addChild(I)}this.width=e.x*o,this.height=(e.y+t.lineHeight)*o},PIXI.BitmapText.prototype.updateTransform=function(){if(this.dirty){for(;this.children.length>0;)this.removeChild(this.getChildAt(0));this.updateText(),this.dirty=!1}PIXI.DisplayObjectContainer.prototype.updateTransform.call(this)},PIXI.BitmapText.fonts={},PIXI.InteractionManager=function(t){this.stage=t,this.tempPoint=new PIXI.Point,this.mouseoverEnabled=!0,this.mouse=new PIXI.InteractionData,this.touchs={},this.pool=[],this.interactiveItems=[],this.last=0},PIXI.InteractionManager.constructor=PIXI.InteractionManager,PIXI.InteractionManager.prototype.collectInteractiveSprite=function(t,e){for(var i=t.children,r=i.length,s=r-1;s>=0;s--){var n=i[s];n.interactive?(e.interactiveChildren=!0,this.interactiveItems.push(n),n.children.length>0&&this.collectInteractiveSprite(n,n)):(n.__iParent=null,n.children.length>0&&this.collectInteractiveSprite(n,e))}},PIXI.InteractionManager.prototype.setTarget=function(t){window.navigator.msPointerEnabled&&(t.view.style["-ms-content-zooming"]="none",t.view.style["-ms-touch-action"]="none"),this.target=t,t.view.addEventListener("mousemove",this.onMouseMove.bind(this),!0),t.view.addEventListener("mousedown",this.onMouseDown.bind(this),!0),document.body.addEventListener("mouseup",this.onMouseUp.bind(this),!0),t.view.addEventListener("mouseout",this.onMouseUp.bind(this),!0),t.view.addEventListener("touchstart",this.onTouchStart.bind(this),!0),t.view.addEventListener("touchend",this.onTouchEnd.bind(this),!0),t.view.addEventListener("touchmove",this.onTouchMove.bind(this),!0)},PIXI.InteractionManager.prototype.update=function(){if(this.target){var t=Date.now(),e=t-this.last;if(e=30*e/1e3,!(1>e)){if(this.last=t,this.dirty){this.dirty=!1,this.interactiveItems.length;for(var i=0;this.interactiveItems.length>i;i++)this.interactiveItems[i].interactiveChildren=!1;this.interactiveItems=[],this.stage.interactive&&this.interactiveItems.push(this.stage),this.collectInteractiveSprite(this.stage,this.stage)}var r=this.interactiveItems.length;this.target.view.style.cursor="default";for(var i=0;r>i;i++){var s=this.interactiveItems[i];s.visible&&(s.mouseover||s.mouseout||s.buttonMode)&&(s.__hit=this.hitTest(s,this.mouse),s.__hit?(s.buttonMode&&(this.target.view.style.cursor="pointer"),s.__isOver||(s.mouseover&&s.mouseover(this.mouse),s.__isOver=!0)):s.__isOver&&(s.mouseout&&s.mouseout(this.mouse),s.__isOver=!1))}}}},PIXI.InteractionManager.prototype.onMouseMove=function(t){t.preventDefault();var e=this.target.view.getBoundingClientRect();this.mouse.global.x=(t.clientX-e.left)*(this.target.width/e.width),this.mouse.global.y=(t.clientY-e.top)*(this.target.height/e.height);var i=this.interactiveItems.length;this.mouse.global;for(var r=0;i>r;r++){var s=this.interactiveItems[r];s.mousemove&&s.mousemove(this.mouse)}},PIXI.InteractionManager.prototype.onMouseDown=function(t){t.preventDefault();var e=this.interactiveItems.length;this.mouse.global,this.stage;for(var i=0;e>i;i++){var r=this.interactiveItems[i];if((r.mousedown||r.click)&&(r.__mouseIsDown=!0,r.__hit=this.hitTest(r,this.mouse),r.__hit&&(r.mousedown&&r.mousedown(this.mouse),r.__isDown=!0,!r.interactiveChildren)))break}},PIXI.InteractionManager.prototype.onMouseUp=function(t){t.preventDefault(),this.mouse.global;for(var e=this.interactiveItems.length,i=!1,r=0;e>r;r++){var s=this.interactiveItems[r];(s.mouseup||s.mouseupoutside||s.click)&&(s.__hit=this.hitTest(s,this.mouse),s.__hit&&!i?(s.mouseup&&s.mouseup(this.mouse),s.__isDown&&s.click&&s.click(this.mouse),s.interactiveChildren||(i=!0)):s.__isDown&&s.mouseupoutside&&s.mouseupoutside(this.mouse),s.__isDown=!1)}},PIXI.InteractionManager.prototype.hitTest=function(t,e){var i=e.global;if(!t.visible)return!1;if(t instanceof PIXI.Sprite){var r=t.worldTransform,s=r[0],n=r[1],a=r[2],o=r[3],h=r[4],u=r[5],d=1/(s*h+n*-o),c=h*d*i.x+-n*d*i.y+(u*n-a*h)*d,l=s*d*i.y+-o*d*i.x+(-u*s+a*o)*d,I=t.texture.frame.width,p=t.texture.frame.height,f=-I*t.anchor.x;if(c>f&&f+I>c){var x=-p*t.anchor.y;if(l>x&&x+p>l)return e.target=t,!0}}else if(t.hitArea){var r=t.worldTransform,v=t.hitArea,s=r[0],n=r[1],a=r[2],o=r[3],h=r[4],u=r[5],d=1/(s*h+n*-o),c=h*d*i.x+-n*d*i.y+(u*n-a*h)*d,l=s*d*i.y+-o*d*i.x+(-u*s+a*o)*d,f=v.x;if(c>f&&f+v.width>c){var x=v.y;if(l>x&&x+v.height>l)return!0}}for(var P=t.children.length,g=0;P>g;g++){var b=t.children[g],X=this.hitTest(b,e);if(X)return!0}return!1},PIXI.InteractionManager.prototype.onTouchMove=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.touchs[s.identifier];n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height)}for(var a=this.interactiveItems.length,r=0;a>r;r++){var o=this.interactiveItems[r];o.touchmove&&o.touchmove(n)}},PIXI.InteractionManager.prototype.onTouchStart=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.pool.pop();n||(n=new PIXI.InteractionData),this.touchs[s.identifier]=n,n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height);for(var a=this.interactiveItems.length,o=0;a>o;o++){var h=this.interactiveItems[o];if((h.touchstart||h.tap)&&(h.__hit=this.hitTest(h,n),h.__hit&&(h.touchstart&&h.touchstart(n),h.__isDown=!0,h.__touchData=n,!h.interactiveChildren)))break}}},PIXI.InteractionManager.prototype.onTouchEnd=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.touchs[s.identifier],a=!1;n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var u=this.interactiveItems[h],d=u.__touchData;u.__hit=this.hitTest(u,n),d==n&&((u.touchend||u.tap)&&(u.__hit&&!a?(u.touchend&&u.touchend(n),u.__isDown&&u.tap&&u.tap(n),u.interactiveChildren||(a=!0)):u.__isDown&&u.touchendoutside&&u.touchendoutside(n),u.__isDown=!1),u.__touchData=null)}this.pool.push(n),this.touchs[s.identifier]=null}},PIXI.InteractionData=function(){this.global=new PIXI.Point,this.local=new PIXI.Point,this.target},PIXI.InteractionData.prototype.getLocalPosition=function(t){var e=t.worldTransform,i=this.global,r=e[0],s=e[1],n=e[2],a=e[3],o=e[4],h=e[5],u=1/(r*o+s*-a);return new PIXI.Point(o*u*i.x+-s*u*i.y+(h*s-n*o)*u,r*u*i.y+-a*u*i.x+(-h*r+n*a)*u)},PIXI.InteractionData.constructor=PIXI.InteractionData,PIXI.Stage=function(t,e){PIXI.DisplayObjectContainer.call(this),this.worldTransform=PIXI.mat3.create(),this.__childrenAdded=[],this.__childrenRemoved=[],this.childIndex=0,this.stage=this,this.stage.hitArea=new PIXI.Rectangle(0,0,1e5,1e5),this.interactive=!!e,this.interactionManager=new PIXI.InteractionManager(this),this.setBackgroundColor(t),this.worldVisible=!0},PIXI.Stage.constructor=PIXI.Stage,PIXI.Stage.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Stage.prototype.updateTransform=function(){this.worldAlpha=1;for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform();this.dirty&&(this.dirty=!1,this.interactionManager.dirty=!0),this.interactive&&this.interactionManager.update()},PIXI.Stage.prototype.setBackgroundColor=function(t){this.backgroundColor=t||0,this.backgroundColorSplit=HEXtoRGB(this.backgroundColor),this.backgroundColorString="#"+this.backgroundColor.toString(16)},PIXI.Stage.prototype.getMousePosition=function(){return this.interactionManager.mouse.global},PIXI.Stage.prototype.__addChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=this,t.children)for(var e=0;t.children.length>e;e++)this.__addChild(t.children[e])},PIXI.Stage.prototype.__removeChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=void 0,t.children)for(var e=0,i=t.children.length;i>e;e++)this.__removeChild(t.children[e])},window.requestAnimFrame=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(t){window.setTimeout(t,1e3/60)}}(),"function"!=typeof Function.prototype.bind&&(Function.prototype.bind=function(){var t=Array.prototype.slice;return function(e){function i(){var n=s.concat(t.call(arguments));r.apply(this instanceof i?this:e,n)}var r=this,s=t.call(arguments,1);if("function"!=typeof r)throw new TypeError;return i.prototype=function n(t){return t&&(n.prototype=t),this instanceof n?void 0:new n}(r.prototype),i}}());var AjaxRequest=function(){var t=["Msxml2.XMLHTTP","Microsoft.XMLHTTP"];if(!window.ActiveXObject)return window.XMLHttpRequest?new XMLHttpRequest:!1;for(var e=0;t.length>e;e++)try{return new ActiveXObject(t[e])}catch(i){}};PIXI.EventTarget=function(){var t={};this.addEventListener=this.on=function(e,i){void 0===t[e]&&(t[e]=[]),-1===t[e].indexOf(i)&&t[e].push(i)},this.dispatchEvent=this.emit=function(e){for(var i in t[e.type])t[e.type][i](e)},this.removeEventListener=this.off=function(e,i){var r=t[e].indexOf(i);-1!==r&&t[e].splice(r,1)}},determineMatrixArrayType(),PIXI.mat3={},PIXI.mat3.create=function(){var t=new PIXI.Matrix(9);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},PIXI.mat4={},PIXI.mat4.create=function(){var t=new PIXI.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},PIXI.mat3.multiply=function(t,e,i){i||(i=t);var r=t[0],s=t[1],n=t[2],a=t[3],o=t[4],h=t[5],u=t[6],d=t[7],c=t[8],l=e[0],I=e[1],p=e[2],f=e[3],x=e[4],v=e[5],P=e[6],g=e[7],b=e[8];return i[0]=l*r+I*a+p*u,i[1]=l*s+I*o+p*d,i[2]=l*n+I*h+p*c,i[3]=f*r+x*a+v*u,i[4]=f*s+x*o+v*d,i[5]=f*n+x*h+v*c,i[6]=P*r+g*a+b*u,i[7]=P*s+g*o+b*d,i[8]=P*n+g*h+b*c,i},PIXI.mat3.toMat4=function(t,e){return e||(e=PIXI.mat4.create()),e[15]=1,e[14]=0,e[13]=0,e[12]=0,e[11]=0,e[10]=t[8],e[9]=t[7],e[8]=t[6],e[7]=0,e[6]=t[5],e[5]=t[4],e[4]=t[3],e[3]=0,e[2]=t[2],e[1]=t[1],e[0]=t[0],e},PIXI.mat4.create=function(){var t=new PIXI.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},PIXI.mat4.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],s=t[3],n=t[6],a=t[7],o=t[11];return t[1]=t[4],t[2]=t[8],t[3]=t[12],t[4]=i,t[6]=t[9],t[7]=t[13],t[8]=r,t[9]=n,t[11]=t[14],t[12]=s,t[13]=a,t[14]=o,t}return e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=t[1],e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=t[2],e[9]=t[6],e[10]=t[10],e[11]=t[14],e[12]=t[3],e[13]=t[7],e[14]=t[11],e[15]=t[15],e},PIXI.mat4.multiply=function(t,e,i){i||(i=t);var r=t[0],s=t[1],n=t[2],a=t[3],o=t[4],h=t[5],u=t[6],d=t[7],c=t[8],l=t[9],I=t[10],p=t[11],f=t[12],x=t[13],v=t[14],P=t[15],g=e[0],b=e[1],X=e[2],m=e[3];return i[0]=g*r+b*o+X*c+m*f,i[1]=g*s+b*h+X*l+m*x,i[2]=g*n+b*u+X*I+m*v,i[3]=g*a+b*d+X*p+m*P,g=e[4],b=e[5],X=e[6],m=e[7],i[4]=g*r+b*o+X*c+m*f,i[5]=g*s+b*h+X*l+m*x,i[6]=g*n+b*u+X*I+m*v,i[7]=g*a+b*d+X*p+m*P,g=e[8],b=e[9],X=e[10],m=e[11],i[8]=g*r+b*o+X*c+m*f,i[9]=g*s+b*h+X*l+m*x,i[10]=g*n+b*u+X*I+m*v,i[11]=g*a+b*d+X*p+m*P,g=e[12],b=e[13],X=e[14],m=e[15],i[12]=g*r+b*o+X*c+m*f,i[13]=g*s+b*h+X*l+m*x,i[14]=g*n+b*u+X*I+m*v,i[15]=g*a+b*d+X*p+m*P,i},PIXI.autoDetectRenderer=function(t,e,i,r){t||(t=800),e||(e=600);var s=function(){try{return!!window.WebGLRenderingContext&&!!document.createElement("canvas").getContext("experimental-webgl")}catch(t){return!1}}();return s?new PIXI.WebGLRenderer(t,e,i,r):new PIXI.CanvasRenderer(t,e,i,r)},PIXI.shaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * vColor;","}"],PIXI.shaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform mat4 uMVMatrix;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","gl_Position = uMVMatrix * vec4(aVertexPosition, 1.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],PIXI.CompileVertexShader=function(t,e){return PIXI._CompileShader(t,e,t.VERTEX_SHADER)},PIXI.CompileFragmentShader=function(t,e){return PIXI._CompileShader(t,e,t.FRAGMENT_SHADER)},PIXI._CompileShader=function(t,e,i){var r=e.join("\n"),s=t.createShader(i);return t.shaderSource(s,r),t.compileShader(s),t.getShaderParameter(s,t.COMPILE_STATUS)?s:(alert(t.getShaderInfoLog(s)),null)},PIXI._defaultFrame=new PIXI.Rectangle(0,0,1,1),PIXI.gl,PIXI.WebGLRenderer=function(t,e,i,r){this.transparent=!!r,this.width=t||800,this.height=e||600,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height;var s=this;this.view.addEventListener("webglcontextlost",function(t){s.handleContextLost(t)},!1),this.view.addEventListener("webglcontextrestored",function(t){s.handleContextRestored(t)},!1),this.batchs=[];try{PIXI.gl=this.gl=this.view.getContext("experimental-webgl",{alpha:this.transparent,antialias:!1,premultipliedAlpha:!0})}catch(n){throw Error(" This browser does not support webGL. Try using the canvas renderer"+this)}this.initShaders();var a=this.gl;PIXI.WebGLRenderer.gl=a,this.batch=new PIXI.WebGLBatch(a),a.disable(a.DEPTH_TEST),a.disable(a.CULL_FACE),a.enable(a.BLEND),a.colorMask(!0,!0,!0,this.transparent),this.projectionMatrix=PIXI.mat4.create(),this.resize(this.width,this.height),this.contextLost=!1,this.stageRenderGroup=new PIXI.WebGLRenderGroup(this.gl)},PIXI.WebGLRenderer.constructor=PIXI.WebGLRenderer,PIXI.WebGLRenderer.getBatch=function(){return 0==PIXI._batchs.length?new PIXI.WebGLBatch(PIXI.WebGLRenderer.gl):PIXI._batchs.pop()},PIXI.WebGLRenderer.returnBatch=function(t){t.clean(),PIXI._batchs.push(t)},PIXI.WebGLRenderer.prototype.initShaders=function(){var t=this.gl,e=PIXI.CompileFragmentShader(t,PIXI.shaderFragmentSrc),i=PIXI.CompileVertexShader(t,PIXI.shaderVertexSrc);PIXI.shaderProgram=t.createProgram();var r=PIXI.shaderProgram;t.attachShader(r,i),t.attachShader(r,e),t.linkProgram(r),t.getProgramParameter(r,t.LINK_STATUS)||alert("Could not initialise shaders"),t.useProgram(r),r.vertexPositionAttribute=t.getAttribLocation(r,"aVertexPosition"),t.enableVertexAttribArray(r.vertexPositionAttribute),r.textureCoordAttribute=t.getAttribLocation(r,"aTextureCoord"),t.enableVertexAttribArray(r.textureCoordAttribute),r.colorAttribute=t.getAttribLocation(r,"aColor"),t.enableVertexAttribArray(r.colorAttribute),r.mvMatrixUniform=t.getUniformLocation(r,"uMVMatrix"),r.samplerUniform=t.getUniformLocation(r,"uSampler")},PIXI.WebGLRenderer.prototype.render=function(t){if(!this.contextLost){this.__stage!==t&&(this.__stage=t,this.stageRenderGroup.setRenderable(t)),PIXI.WebGLRenderer.updateTextures(),t.updateTransform();var e=this.gl;if(e.colorMask(!0,!0,!0,this.transparent),e.viewport(0,0,this.width,this.height),e.bindFramebuffer(e.FRAMEBUFFER,null),e.clearColor(t.backgroundColorSplit[0],t.backgroundColorSplit[1],t.backgroundColorSplit[2],this.transparent),e.clear(e.COLOR_BUFFER_BIT),this.stageRenderGroup.backgroundColor=t.backgroundColorSplit,this.stageRenderGroup.render(this.projectionMatrix),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),PIXI.Texture.frameUpdates.length>0){for(var i=0;PIXI.Texture.frameUpdates.length>i;i++)PIXI.Texture.frameUpdates[i].updateFrame=!1;PIXI.Texture.frameUpdates=[]}}},PIXI.WebGLRenderer.updateTextures=function(){for(var t=0;PIXI.texturesToUpdate.length>t;t++)this.updateTexture(PIXI.texturesToUpdate[t]);for(var t=0;PIXI.texturesToDestroy.length>t;t++)this.destroyTexture(PIXI.texturesToDestroy[t]);PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[]},PIXI.WebGLRenderer.updateTexture=function(t){var e=PIXI.gl;t._glTexture||(t._glTexture=e.createTexture()),t.hasLoaded&&(e.bindTexture(e.TEXTURE_2D,t._glTexture),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t.source),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),t._powerOf2?(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT)):(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)),e.bindTexture(e.TEXTURE_2D,null))},PIXI.WebGLRenderer.prototype.destroyTexture=function(t){var e=this.gl;t._glTexture&&(t._glTexture=e.createTexture(),e.deleteTexture(e.TEXTURE_2D,t._glTexture))},PIXI.WebGLRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e,this.gl.viewport(0,0,this.width,this.height);var i=this.projectionMatrix;i[0]=2/this.width,i[5]=-2/this.height,i[12]=-1,i[13]=1},PIXI.WebGLRenderer.prototype.handleContextLost=function(t){t.preventDefault(),this.contextLost=!0},PIXI.WebGLRenderer.prototype.handleContextRestored=function(){this.gl=this.view.getContext("experimental-webgl",{alpha:!0}),this.initShaders();for(var t=0;PIXI.TextureCache.length>t;t++)this.updateTexture(PIXI.TextureCache[t]);for(var t=0;this.batchs.length>t;t++)this.batchs[t].restoreLostContext(this.gl),this.batchs[t].dirty=!0;PIXI._restoreBatchs(this.gl),this.contextLost=!1},PIXI._batchs=[],PIXI._getBatch=function(t){return 0==PIXI._batchs.length?new PIXI.WebGLBatch(t):PIXI._batchs.pop()},PIXI._returnBatch=function(t){t.clean(),PIXI._batchs.push(t)},PIXI._restoreBatchs=function(t){for(var e=0;PIXI._batchs.length>e;e++)PIXI._batchs[e].restoreLostContext(t)},PIXI.WebGLBatch=function(t){this.gl=t,this.size=0,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer(),this.blendMode=PIXI.blendModes.NORMAL,this.dynamicSize=1},PIXI.WebGLBatch.constructor=PIXI.WebGLBatch,PIXI.WebGLBatch.prototype.clean=function(){this.verticies=[],this.uvs=[],this.indices=[],this.colors=[],this.dynamicSize=1,this.texture=null,this.last=null,this.size=0,this.head,this.tail},PIXI.WebGLBatch.prototype.restoreLostContext=function(t){this.gl=t,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer()},PIXI.WebGLBatch.prototype.init=function(t){t.batch=this,this.dirty=!0,this.blendMode=t.blendMode,this.texture=t.texture.baseTexture,this.head=t,this.tail=t,this.size=1,this.growBatch()},PIXI.WebGLBatch.prototype.insertBefore=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__prev;e.__prev=t,t.__next=e,i?(t.__prev=i,i.__next=t):this.head=t},PIXI.WebGLBatch.prototype.insertAfter=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__next;e.__next=t,t.__prev=e,i?(t.__next=i,i.__prev=t):this.tail=t},PIXI.WebGLBatch.prototype.remove=function(t){return this.size--,0==this.size?(t.batch=null,t.__prev=null,t.__next=null,void 0):(t.__prev?t.__prev.__next=t.__next:(this.head=t.__next,this.head.__prev=null),t.__next?t.__next.__prev=t.__prev:(this.tail=t.__prev,this.tail.__next=null),t.batch=null,t.__next=null,t.__prev=null,this.dirty=!0,void 0)},PIXI.WebGLBatch.prototype.split=function(t){this.dirty=!0;var e=new PIXI.WebGLBatch(this.gl);e.init(t),e.tail=this.tail,this.tail=t.__prev,this.tail.__next=null,t.__prev=null;for(var i=0;t;)i++,t.batch=e,t=t.__next;return e.size=i,this.size-=i,e},PIXI.WebGLBatch.prototype.merge=function(t){this.dirty=!0,this.tail.__next=t.head,t.head.__prev=this.tail,this.size+=t.size,this.tail=t.tail;for(var e=t.head;e;)e.batch=this,e=e.__next},PIXI.WebGLBatch.prototype.growBatch=function(){var t=this.gl;this.dynamicSize=1==this.size?1:1.5*this.size,this.verticies=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.vertexBuffer),t.bufferData(t.ARRAY_BUFFER,this.verticies,t.DYNAMIC_DRAW),this.uvs=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.uvBuffer),t.bufferData(t.ARRAY_BUFFER,this.uvs,t.DYNAMIC_DRAW),this.dirtyUVS=!0,this.colors=new Float32Array(4*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.colorBuffer),t.bufferData(t.ARRAY_BUFFER,this.colors,t.DYNAMIC_DRAW),this.dirtyColors=!0,this.indices=new Uint16Array(6*this.dynamicSize);for(var e=this.indices.length/6,i=0;e>i;i++){var r=6*i,s=4*i;this.indices[r+0]=s+0,this.indices[r+1]=s+1,this.indices[r+2]=s+2,this.indices[r+3]=s+0,this.indices[r+4]=s+2,this.indices[r+5]=s+3}t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,this.indexBuffer),t.bufferData(t.ELEMENT_ARRAY_BUFFER,this.indices,t.STATIC_DRAW)},PIXI.WebGLBatch.prototype.refresh=function(){this.gl,this.dynamicSizer;r++)i=this.batchs[r],i instanceof PIXI.WebGLBatch?this.batchs[r].render():i instanceof PIXI.TilingSprite?i.visible&&this.renderTilingSprite(i,t):i instanceof PIXI.Strip&&i.visible&&this.renderStrip(i,t)},PIXI.WebGLRenderGroup.prototype.renderSpecific=function(t,e){PIXI.WebGLRenderer.updateTextures();var i=this.gl;this.checkVisibility(t,t.visible),i.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform,!1,e);var r,s,n,a,o=t.renderable?t:this.getNextRenderable(t),h=o.batch;if(o instanceof PIXI.Sprite){h=o.batch;var u=h.head;if(u==o)r=0;else for(r=1;u.__next!=o;)r++,u=u.__next}else h=o;for(var d,c=t,l=t;l.children.length>0;)l=l.children[l.children.length-1],l.renderable&&(c=l);if(c instanceof PIXI.Sprite){d=c.batch;var u=d.head;if(u==c)n=0;else for(n=1;u.__next!=c;)n++,u=u.__next}else d=c;if(h==d)return h instanceof PIXI.WebGLBatch?h.render(r,n+1):h instanceof PIXI.TilingSprite?h.visible&&this.renderTilingSprite(h,e):h instanceof PIXI.Strip?h.visible&&this.renderStrip(h,e):h instanceof PIXI.CustomRenderable&&h.visible&&h.renderWebGL(this,e),void 0;s=this.batchs.indexOf(h),a=this.batchs.indexOf(d),h instanceof PIXI.WebGLBatch?h.render(r):h instanceof PIXI.TilingSprite?h.visible&&this.renderTilingSprite(h,e):h instanceof PIXI.Strip?h.visible&&this.renderStrip(h,e):h instanceof PIXI.CustomRenderable&&h.visible&&h.renderWebGL(this,e);for(var I=s+1;a>I;I++)renderable=this.batchs[I],renderable instanceof PIXI.WebGLBatch?this.batchs[I].render():renderable instanceof PIXI.TilingSprite?renderable.visible&&this.renderTilingSprite(renderable,e):renderable instanceof PIXI.Strip?renderable.visible&&this.renderStrip(renderable,e):renderable instanceof PIXI.CustomRenderable&&renderable.visible&&renderable.renderWebGL(this,e);d instanceof PIXI.WebGLBatch?d.render(0,n+1):d instanceof PIXI.TilingSprite?d.visible&&this.renderTilingSprite(d):d instanceof PIXI.Strip?d.visible&&this.renderStrip(d):d instanceof PIXI.CustomRenderable&&d.visible&&d.renderWebGL(this,e)},PIXI.WebGLRenderGroup.prototype.checkVisibility=function(t,e){for(var i=t.children,r=0;i.length>r;r++){var s=i[r];s.worldVisible=s.visible&&e,s.textureChange&&(s.textureChange=!1,s.worldVisible&&(this.removeDisplayObject(s),this.addDisplayObject(s))),s.children.length>0&&this.checkVisibility(s,s.worldVisible)}},PIXI.WebGLRenderGroup.prototype.addDisplayObject=function(t){if(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.__renderGroup=this,t.renderable){var e=this.getPreviousRenderable(t),i=this.getNextRenderable(t);if(t instanceof PIXI.Sprite){var r,s;if(e instanceof PIXI.Sprite){if(r=e.batch,r&&r.texture==t.texture.baseTexture&&r.blendMode==t.blendMode)return r.insertAfter(t,e),void 0}else r=e;if(i)if(i instanceof PIXI.Sprite){if(s=i.batch){if(s.texture==t.texture.baseTexture&&s.blendMode==t.blendMode)return s.insertBefore(t,i),void 0;if(s==r){var n=r.split(i),a=PIXI.WebGLRenderer.getBatch(),o=this.batchs.indexOf(r);return a.init(t),this.batchs.splice(o+1,0,a,n),void 0}}}else s=i;var a=PIXI.WebGLRenderer.getBatch();if(a.init(t),r){var o=this.batchs.indexOf(r);this.batchs.splice(o+1,0,a)}else this.batchs.push(a)}else t instanceof PIXI.TilingSprite?(this.initTilingSprite(t),this.batchs.push(t)):t instanceof PIXI.Strip&&(this.initStrip(t),this.batchs.push(t));this.batchUpdate=!0}},PIXI.WebGLRenderGroup.prototype.addDisplayObjectAndChildren=function(t){this.addDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.addDisplayObjectAndChildren(e[i])},PIXI.WebGLRenderGroup.prototype.removeDisplayObject=function(t){if(t.__renderGroup=null,t.renderable){var e;if(t instanceof PIXI.Sprite){var i=t.batch;if(!i)return;i.remove(t),0==i.size&&(e=i)}else e=t;if(e){var r=this.batchs.indexOf(e);if(-1==r)return;if(0==r||r==this.batchs.length-1)return this.batchs.splice(r,1),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e),void 0;if(this.batchs[r-1]instanceof PIXI.WebGLBatch&&this.batchs[r+1]instanceof PIXI.WebGLBatch&&this.batchs[r-1].texture==this.batchs[r+1].texture&&this.batchs[r-1].blendMode==this.batchs[r+1].blendMode)return this.batchs[r-1].merge(this.batchs[r+1]),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e),PIXI.WebGLRenderer.returnBatch(this.batchs[r+1]),this.batchs.splice(r,2),void 0;this.batchs.splice(r,1),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e)}}},PIXI.WebGLRenderGroup.prototype.removeDisplayObjectAndChildren=function(t){if(t.__renderGroup==this){this.removeDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.removeDisplayObjectAndChildren(e[i])}},PIXI.WebGLRenderGroup.prototype.getNextRenderable=function(t){var e=t;do{if(0==e.children.length){if(!e.parent)return null;for(;e.childIndex==e.parent.children.length-1;)if(e=e.parent,e==this.root||!e.parent){e=null;break}e&&(e=e.parent.children[e.childIndex+1])}else e=e.children[0];if(!e)break}while(!e.renderable||!e.__renderGroup);return e},PIXI.WebGLRenderGroup.prototype.getPreviousRenderable=function(t){var e=t;do{if(0==e.childIndex){if(e=e.parent,!e)return null}else for(e=e.parent.children[e.childIndex-1];0!=e.children.length;)e=e.children[e.children.length-1];if(e==this.root)break}while(!e.renderable||!e.__renderGroup);return e},PIXI.WebGLRenderGroup.prototype.initTilingSprite=function(t){var e=this.gl;t.verticies=new Float32Array([0,0,t.width,0,t.width,t.height,0,t.height]),t.uvs=new Float32Array([0,0,1,0,1,1,0,1]),t.colors=new Float32Array([1,1,1,1]),t.indices=new Uint16Array([0,1,3,2]),t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW),t.texture.baseTexture._glTexture?(e.bindTexture(e.TEXTURE_2D,t.texture.baseTexture._glTexture),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT),t.texture.baseTexture._powerOf2=!0):t.texture.baseTexture._powerOf2=!0},PIXI.WebGLRenderGroup.prototype.renderStrip=function(t,e){var i=this.gl,r=PIXI.shaderProgram,s=PIXI.mat3.toMat4(t.worldTransform);PIXI.mat4.transpose(s),PIXI.mat4.multiply(e,s,s),i.uniformMatrix4fv(r.mvMatrixUniform,!1,s),t.blendMode==PIXI.blendModes.NORMAL?i.blendFunc(i.ONE,i.ONE_MINUS_SRC_ALPHA):i.blendFunc(i.ONE,i.ONE_MINUS_SRC_COLOR),t.dirty?(t.dirty=!1,i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferData(i.ARRAY_BUFFER,t.verticies,i.STATIC_DRAW),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferData(i.ARRAY_BUFFER,t.uvs,i.STATIC_DRAW),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.bufferData(i.ARRAY_BUFFER,t.colors,i.STATIC_DRAW),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer),i.bufferData(i.ELEMENT_ARRAY_BUFFER,t.indices,i.STATIC_DRAW)):(i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.verticies),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer)),i.drawElements(i.TRIANGLE_STRIP,t.indices.length,i.UNSIGNED_SHORT,0),i.uniformMatrix4fv(r.mvMatrixUniform,!1,e)},PIXI.WebGLRenderGroup.prototype.renderTilingSprite=function(t,e){var i=this.gl;PIXI.shaderProgram;var r=t.tilePosition,s=t.tileScale,n=r.x/t.texture.baseTexture.width,a=r.y/t.texture.baseTexture.height,o=t.width/t.texture.baseTexture.width/s.x,h=t.height/t.texture.baseTexture.height/s.y;t.uvs[0]=0-n,t.uvs[1]=0-a,t.uvs[2]=1*o-n,t.uvs[3]=0-a,t.uvs[4]=1*o-n,t.uvs[5]=1*h-a,t.uvs[6]=0-n,t.uvs[7]=1*h-a,i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.uvs),this.renderStrip(t,e)},PIXI.WebGLRenderer.prototype.initStrip=function(t){var e=this.gl;this.shaderProgram,t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW)},PIXI.CanvasRenderer=function(t,e,i,r){this.transparent=r,this.width=t||800,this.height=e||600,this.refresh=!0,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height,this.count=0,this.context=this.view.getContext("2d")},PIXI.CanvasRenderer.constructor=PIXI.CanvasRenderer,PIXI.CanvasRenderer.prototype.render=function(t){PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[],t.updateTransform(),this.view.style.backgroundColor==t.backgroundColorString||this.transparent||(this.view.style.backgroundColor=t.backgroundColorString),this.context.setTransform(1,0,0,1,0,0),this.context.clearRect(0,0,this.width,this.height),this.renderDisplayObject(t),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),PIXI.Texture.frameUpdates.length>0&&(PIXI.Texture.frameUpdates=[])},PIXI.CanvasRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e},PIXI.CanvasRenderer.prototype.renderDisplayObject=function(t){var e=t.worldTransform,i=this.context;if(t.visible){if(t instanceof PIXI.Sprite){var r=t.texture.frame;r&&(i.globalAlpha=t.worldAlpha,i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),i.drawImage(t.texture.baseTexture.source,r.x,r.y,r.width,r.height,t.anchor.x*-r.width,t.anchor.y*-r.height,r.width,r.height))}else t instanceof PIXI.Strip?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderStrip(t)):t instanceof PIXI.TilingSprite?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderTilingSprite(t)):t instanceof PIXI.CustomRenderable&&t.renderCanvas(this);for(var s=0;t.children.length>s;s++)this.renderDisplayObject(t.children[s]);this.context.setTransform(1,0,0,1,0,0)}},PIXI.CanvasRenderer.prototype.renderStripFlat=function(t){var e=this.context,i=t.verticies;t.uvs;var r=i.length/2;this.count++,e.beginPath();for(var s=1;r-2>s;s++){var n=2*s,a=i[n],o=i[n+2],h=i[n+4],u=i[n+1],d=i[n+3],c=i[n+5];e.moveTo(a,u),e.lineTo(o,d),e.lineTo(h,c)}e.fillStyle="#FF0000",e.fill(),e.closePath()},PIXI.CanvasRenderer.prototype.renderTilingSprite=function(t){var e=this.context;t.__tilePattern||(t.__tilePattern=e.createPattern(t.texture.baseTexture.source,"repeat")),e.beginPath();var i=t.tilePosition,r=t.tileScale;e.scale(r.x,r.y),e.translate(i.x,i.y),e.fillStyle=t.__tilePattern,e.fillRect(-i.x,-i.y,t.width/r.x,t.height/r.y),e.scale(1/r.x,1/r.y),e.translate(-i.x,-i.y),e.closePath()},PIXI.CanvasRenderer.prototype.renderStrip=function(t){var e=this.context,i=t.verticies,r=t.uvs,s=i.length/2;this.count++;for(var n=1;s-2>n;n++){var a=2*n,o=i[a],h=i[a+2],u=i[a+4],d=i[a+1],c=i[a+3],l=i[a+5],I=r[a]*t.texture.width,p=r[a+2]*t.texture.width,f=r[a+4]*t.texture.width,x=r[a+1]*t.texture.height,v=r[a+3]*t.texture.height,P=r[a+5]*t.texture.height;e.save(),e.beginPath(),e.moveTo(o,d),e.lineTo(h,c),e.lineTo(u,l),e.closePath(),e.clip();var g=I*v+x*f+p*P-v*f-x*p-I*P,b=o*v+x*u+h*P-v*u-x*h-o*P,X=I*h+o*f+p*u-h*f-o*p-I*u,m=I*v*u+x*h*f+o*p*P-o*v*f-x*p*u-I*h*P,T=d*v+x*l+c*P-v*l-x*c-d*P,y=I*c+d*f+p*l-c*f-d*p-I*l,_=I*v*l+x*c*f+d*p*P-d*v*f-x*p*l-I*c*P;e.transform(b/g,T/g,X/g,y/g,m/g,_/g),e.drawImage(t.texture.baseTexture.source,0,0),e.restore()}},PIXI.Strip=function(t,e,i){PIXI.DisplayObjectContainer.call(this),this.texture=t,this.blendMode=PIXI.blendModes.NORMAL;try{this.uvs=new Float32Array([0,1,1,1,1,0,0,1]),this.verticies=new Float32Array([0,0,0,0,0,0,0,0,0]),this.colors=new Float32Array([1,1,1,1]),this.indices=new Uint16Array([0,1,2,3])}catch(r){this.uvs=[0,1,1,1,1,0,0,1],this.verticies=[0,0,0,0,0,0,0,0,0],this.colors=[1,1,1,1],this.indices=[0,1,2,3]}this.width=e,this.height=i,t.baseTexture.hasLoaded?(this.width=this.texture.frame.width,this.height=this.texture.frame.height,this.updateFrame=!0):(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},PIXI.Strip.constructor=PIXI.Strip,PIXI.Strip.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Strip.prototype.setTexture=function(t){this.texture=t,this.width=t.frame.width,this.height=t.frame.height,this.updateFrame=!0},PIXI.Strip.prototype.onTextureUpdate=function(){this.updateFrame=!0},PIXI.Rope=function(t,e){PIXI.Strip.call(this,t),this.points=e;try{this.verticies=new Float32Array(4*e.length),this.uvs=new Float32Array(4*e.length),this.colors=new Float32Array(2*e.length),this.indices=new Uint16Array(2*e.length)}catch(i){this.verticies=verticies,this.uvs=uvs,this.colors=colors,this.indices=indices}this.refresh()},PIXI.Rope.constructor=PIXI.Rope,PIXI.Rope.prototype=Object.create(PIXI.Strip.prototype),PIXI.Rope.prototype.refresh=function(){var t=this.points;if(!(1>t.length)){var e=this.uvs,i=this.indices,r=this.colors,s=t[0],n=t[0];this.count-=.2,e[0]=0,e[1]=1,e[2]=0,e[3]=1,r[0]=1,r[1]=1,i[0]=0,i[1]=1;for(var a=t.length,o=1;a>o;o++){var n=t[o],h=4*o,u=o/(a-1);o%2?(e[h]=u,e[h+1]=0,e[h+2]=u,e[h+3]=1):(e[h]=u,e[h+1]=0,e[h+2]=u,e[h+3]=1),h=2*o,r[h]=1,r[h+1]=1,h=2*o,i[h]=h,i[h+1]=h+1,s=n}}},PIXI.Rope.prototype.updateTransform=function(){var t=this.points;if(!(1>t.length)){var e,i=this.verticies,r=t[0],s={x:0,y:0},n=t[0];this.count-=.2,i[0]=n.x+s.x,i[1]=n.y+s.y,i[2]=n.x-s.x,i[3]=n.y-s.y;for(var a=t.length,o=1;a>o;o++){var n=t[o],h=4*o;e=t.length-1>o?t[o+1]:n,s.y=-(e.x-r.x),s.x=e.y-r.y;var u=10*(1-o/(a-1));u>1&&(u=1);var d=Math.sqrt(s.x*s.x+s.y*s.y),c=this.texture.height/2;s.x/=d,s.y/=d,s.x*=c,s.y*=c,i[h]=n.x+s.x,i[h+1]=n.y+s.y,i[h+2]=n.x-s.x,i[h+3]=n.y-s.y,r=n}PIXI.DisplayObjectContainer.prototype.updateTransform.call(this)}},PIXI.Rope.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0},PIXI.TilingSprite=function(t,e,i){PIXI.DisplayObjectContainer.call(this),this.texture=t,this.width=e,this.height=i,this.renderable=!0,this.tileScale=new PIXI.Point(1,1),this.tilePosition=new PIXI.Point(0,0),this.blendMode=PIXI.blendModes.NORMAL},PIXI.TilingSprite.constructor=PIXI.TilingSprite,PIXI.TilingSprite.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.TilingSprite.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0},PIXI.TilingSprite.prototype.onTextureUpdate=function(){this.updateFrame=!0},PIXI.CustomRenderable=function(){PIXI.DisplayObject.call(this)},PIXI.CustomRenderable.constructor=PIXI.CustomRenderable,PIXI.CustomRenderable.prototype=Object.create(PIXI.DisplayObject.prototype),PIXI.CustomRenderable.prototype.renderCanvas=function(){},PIXI.CustomRenderable.prototype.initWebGL=function(){},PIXI.CustomRenderable.prototype.renderWebGL=function(){},PIXI.BaseTextureCache={},PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[],PIXI.BaseTexture=function(t){if(PIXI.EventTarget.call(this),this.width=100,this.height=100,this.source=t,t){if(this.source instanceof Image)if(this.source.complete)this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,PIXI.texturesToUpdate.push(this);else{var e=this;this.source.onload=function(){e.hasLoaded=!0,e.width=e.source.width,e.height=e.source.height,PIXI.texturesToUpdate.push(e),e.dispatchEvent({type:"loaded",content:e})}}else this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,PIXI.texturesToUpdate.push(this);this._powerOf2=!1}},PIXI.BaseTexture.constructor=PIXI.BaseTexture,PIXI.BaseTexture.prototype.destroy=function(){this.source instanceof Image&&(this.source.src=null),this.source=null,PIXI.texturesToDestroy.push(this)},PIXI.BaseTexture.fromImage=function(t,e){var i=PIXI.BaseTextureCache[t];if(!i){var r=new Image;e&&(r.crossOrigin=""),r.src=t,i=new PIXI.BaseTexture(r),PIXI.BaseTextureCache[t]=i}return i},PIXI.TextureCache={},PIXI.FrameCache={},PIXI.Texture=function(t,e){if(PIXI.EventTarget.call(this),e||(this.noFrame=!0,e=new PIXI.Rectangle(0,0,1,1)),this.trim=new PIXI.Point,t instanceof PIXI.Texture&&(t=t.baseTexture),this.baseTexture=t,this.frame=e,this.scope=this,t.hasLoaded)this.noFrame&&(e=new PIXI.Rectangle(0,0,t.width,t.height)),this.setFrame(e);else{var i=this;t.addEventListener("loaded",function(){i.onBaseTextureLoaded()})}},PIXI.Texture.constructor=PIXI.Texture,PIXI.Texture.prototype.onBaseTextureLoaded=function(){var t=this.baseTexture;t.removeEventListener("loaded",this.onLoaded),this.noFrame&&(this.frame=new PIXI.Rectangle(0,0,t.width,t.height)),this.noFrame=!1,this.width=this.frame.width,this.height=this.frame.height,this.scope.dispatchEvent({type:"update",content:this})},PIXI.Texture.prototype.destroy=function(t){t&&this.baseTexture.destroy()},PIXI.Texture.prototype.setFrame=function(t){if(this.frame=t,this.width=t.width,this.height=t.height,t.x+t.width>this.baseTexture.width||t.y+t.height>this.baseTexture.height)throw Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);this.updateFrame=!0,PIXI.Texture.frameUpdates.push(this)},PIXI.Texture.fromImage=function(t,e){var i=PIXI.TextureCache[t];return i||(i=new PIXI.Texture(PIXI.BaseTexture.fromImage(t,e)),PIXI.TextureCache[t]=i),i},PIXI.Texture.fromFrame=function(t){var e=PIXI.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache "+this);return e},PIXI.Texture.fromCanvas=function(t){var e=new PIXI.BaseTexture(t);return new PIXI.Texture(e)},PIXI.Texture.addTextureToCache=function(t,e){PIXI.TextureCache[e]=t},PIXI.Texture.removeTextureFromCache=function(t){var e=PIXI.TextureCache[t];return PIXI.TextureCache[t]=null,e},PIXI.Texture.frameUpdates=[],PIXI.RenderTexture=function(t,e){PIXI.EventTarget.call(this),this.width=t||100,this.height=e||100,this.indetityMatrix=PIXI.mat3.create(),this.frame=new PIXI.Rectangle(0,0,this.width,this.height),PIXI.gl?this.initWebGL():this.initCanvas()},PIXI.RenderTexture.constructor=PIXI.RenderTexture,PIXI.RenderTexture.prototype=Object.create(PIXI.Texture.prototype),PIXI.RenderTexture.prototype.initWebGL=function(){var t=PIXI.gl;this.glFramebuffer=t.createFramebuffer(),t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),this.glFramebuffer.width=this.width,this.glFramebuffer.height=this.height,this.baseTexture=new PIXI.BaseTexture,this.baseTexture.width=this.width,this.baseTexture.height=this.height,this.baseTexture._glTexture=t.createTexture(),t.bindTexture(t.TEXTURE_2D,this.baseTexture._glTexture),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,this.width,this.height,0,t.RGBA,t.UNSIGNED_BYTE,null),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),this.baseTexture.isRender=!0,t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,this.baseTexture._glTexture,0),this.projectionMatrix=PIXI.mat4.create(),this.projectionMatrix[5]=2/this.height,this.projectionMatrix[13]=-1,this.projectionMatrix[0]=2/this.width,this.projectionMatrix[12]=-1,this.render=this.renderWebGL},PIXI.RenderTexture.prototype.initCanvas=function(){this.renderer=new PIXI.CanvasRenderer(this.width,this.height,null,0),this.baseTexture=new PIXI.BaseTexture(this.renderer.view),this.frame=new PIXI.Rectangle(0,0,this.width,this.height),this.render=this.renderCanvas},PIXI.RenderTexture.prototype.renderWebGL=function(t,e){var i=PIXI.gl;i.colorMask(!0,!0,!0,!0),i.viewport(0,0,this.width,this.height),i.bindFramebuffer(i.FRAMEBUFFER,this.glFramebuffer),e&&(i.clearColor(0,0,0,0),i.clear(i.COLOR_BUFFER_BIT));var r=t.children;t.worldTransform=PIXI.mat3.create();for(var s=0,n=r.length;n>s;s++)r[s].updateTransform();var a=t.__renderGroup;a?t==a.root?a.render(this.projectionMatrix):a.renderSpecific(t,this.projectionMatrix):(this.renderGroup||(this.renderGroup=new PIXI.WebGLRenderGroup(i)),this.renderGroup.setRenderable(t),this.renderGroup.render(this.projectionMatrix))},PIXI.RenderTexture.prototype.renderCanvas=function(t,e){var i=t.children;t.worldTransform=PIXI.mat3.create();for(var r=0,s=i.length;s>r;r++)i[r].updateTransform();e&&this.renderer.context.clearRect(0,0,this.width,this.height),this.renderer.renderDisplayObject(t),PIXI.texturesToUpdate.push(this.baseTexture)},PIXI.AssetLoader=function(t){PIXI.EventTarget.call(this),this.assetURLs=t,this.crossorigin=!1,this.loadersByType={jpg:PIXI.ImageLoader,jpeg:PIXI.ImageLoader,png:PIXI.ImageLoader,gif:PIXI.ImageLoader,json:PIXI.SpriteSheetLoader,xml:PIXI.BitmapFontLoader,fnt:PIXI.BitmapFontLoader}},PIXI.AssetLoader.constructor=PIXI.AssetLoader,PIXI.AssetLoader.prototype.load=function(){var t=this;this.loadCount=this.assetURLs.length;for(var e=0;this.assetURLs.length>e;e++){var i=this.assetURLs[e],r=i.split(".").pop().toLowerCase(),s=this.loadersByType[r];if(!s)throw Error(r+" is an unsupported file type");var n=new s(i,this.crossorigin);n.addEventListener("loaded",function(){t.onAssetLoaded()}),n.load()}},PIXI.AssetLoader.prototype.onAssetLoaded=function(){this.loadCount--,this.dispatchEvent({type:"onProgress",content:this}),this.onProgress&&this.onProgress(),0==this.loadCount&&(this.dispatchEvent({type:"onComplete",content:this}),this.onComplete&&this.onComplete())},PIXI.SpriteSheetLoader=function(t,e){PIXI.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.frames={},this.crossorigin=e},PIXI.SpriteSheetLoader.constructor=PIXI.SpriteSheetLoader,PIXI.SpriteSheetLoader.prototype.load=function(){this.ajaxRequest=new AjaxRequest;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onJSONLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/json"),this.ajaxRequest.send(null)},PIXI.SpriteSheetLoader.prototype.onJSONLoaded=function(){if(4==this.ajaxRequest.readyState&&(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))){var jsonData=eval("("+this.ajaxRequest.responseText+")"),textureUrl=this.baseUrl+jsonData.meta.image,image=new PIXI.ImageLoader(textureUrl,this.crossorigin);this.texture=image.texture.baseTexture;var scope=this;image.addEventListener("loaded",function(){scope.onLoaded()});var frameData=jsonData.frames;for(var i in frameData){var rect=frameData[i].frame;rect&&(PIXI.TextureCache[i]=new PIXI.Texture(this.texture,{x:rect.x,y:rect.y,width:rect.w,height:rect.h}),frameData[i].trimmed&&(PIXI.TextureCache[i].realSize=frameData[i].spriteSourceSize,PIXI.TextureCache[i].trim.x=0))}image.load()}},PIXI.SpriteSheetLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},PIXI.ImageLoader=function(t,e){PIXI.EventTarget.call(this),this.texture=PIXI.Texture.fromImage(t,e)},PIXI.ImageLoader.constructor=PIXI.ImageLoader,PIXI.ImageLoader.prototype.load=function(){if(this.texture.baseTexture.hasLoaded)this.onLoaded();else{var t=this;this.texture.baseTexture.addEventListener("loaded",function(){t.onLoaded()})}},PIXI.ImageLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},PIXI.BitmapFontLoader=function(t,e){PIXI.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.crossorigin=e},PIXI.BitmapFontLoader.constructor=PIXI.BitmapFontLoader,PIXI.BitmapFontLoader.prototype.load=function(){this.ajaxRequest=new XMLHttpRequest;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onXMLLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/xml"),this.ajaxRequest.send(null)},PIXI.BitmapFontLoader.prototype.onXMLLoaded=function(){if(4==this.ajaxRequest.readyState&&(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))){var t=this.baseUrl+this.ajaxRequest.responseXML.getElementsByTagName("page")[0].attributes.getNamedItem("file").nodeValue,e=new PIXI.ImageLoader(t,this.crossorigin);this.texture=e.texture.baseTexture;var i={},r=this.ajaxRequest.responseXML.getElementsByTagName("info")[0],s=this.ajaxRequest.responseXML.getElementsByTagName("common")[0];i.font=r.attributes.getNamedItem("face").nodeValue,i.size=parseInt(r.attributes.getNamedItem("size").nodeValue,10),i.lineHeight=parseInt(s.attributes.getNamedItem("lineHeight").nodeValue,10),i.chars={};for(var n=this.ajaxRequest.responseXML.getElementsByTagName("char"),a=0;n.length>a;a++){var o=parseInt(n[a].attributes.getNamedItem("id").nodeValue,10),h={x:parseInt(n[a].attributes.getNamedItem("x").nodeValue,10),y:parseInt(n[a].attributes.getNamedItem("y").nodeValue,10),width:parseInt(n[a].attributes.getNamedItem("width").nodeValue,10),height:parseInt(n[a].attributes.getNamedItem("height").nodeValue,10)};PIXI.TextureCache[o]=new PIXI.Texture(this.texture,h),i.chars[o]={xOffset:parseInt(n[a].attributes.getNamedItem("xoffset").nodeValue,10),yOffset:parseInt(n[a].attributes.getNamedItem("yoffset").nodeValue,10),xAdvance:parseInt(n[a].attributes.getNamedItem("xadvance").nodeValue,10),kerning:{}}}var u=this.ajaxRequest.responseXML.getElementsByTagName("kerning");for(a=0;u.length>a;a++){var d=parseInt(u[a].attributes.getNamedItem("first").nodeValue,10),c=parseInt(u[a].attributes.getNamedItem("second").nodeValue,10),l=parseInt(u[a].attributes.getNamedItem("amount").nodeValue,10);i.chars[c].kerning[d]=l}PIXI.BitmapText.fonts[i.font]=i;var I=this;e.addEventListener("loaded",function(){I.onLoaded()}),e.load()}},PIXI.BitmapFontLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=PIXI),exports.PIXI=PIXI):root.PIXI=PIXI}).call(this); \ No newline at end of file diff --git a/docs/classes/WebGLRenderer.html b/docs/classes/WebGLRenderer.html index 581cb5a..fcef6b6 100644 --- a/docs/classes/WebGLRenderer.html +++ b/docs/classes/WebGLRenderer.html @@ -498,7 +498,7 @@ - src/pixi/renderers/WebGLRenderer.js:283 + src/pixi/renderers/WebGLRenderer.js:284

diff --git a/docs/data.json b/docs/data.json index 9b4a49d..4b27831 100644 --- a/docs/data.json +++ b/docs/data.json @@ -1388,35 +1388,35 @@ }, { "file": "src/pixi/renderers/WebGLRenderGroup.js", - "line": 523, + "line": 527, "access": "private", "tagname": "", "class": "WebGLBatch" }, { "file": "src/pixi/renderers/WebGLRenderGroup.js", - "line": 607, + "line": 613, "access": "private", "tagname": "", "class": "WebGLBatch" }, { "file": "src/pixi/renderers/WebGLRenderGroup.js", - "line": 663, + "line": 669, "access": "private", "tagname": "", "class": "WebGLBatch" }, { "file": "src/pixi/renderers/WebGLRenderGroup.js", - "line": 740, + "line": 746, "access": "private", "tagname": "", "class": "WebGLBatch" }, { "file": "src/pixi/renderers/WebGLRenderGroup.js", - "line": 777, + "line": 783, "access": "private", "tagname": "", "class": "WebGLBatch" @@ -1465,14 +1465,14 @@ }, { "file": "src/pixi/renderers/WebGLRenderer.js", - "line": 232, + "line": 225, "access": "private", "tagname": "", "class": "WebGLRenderer" }, { "file": "src/pixi/renderers/WebGLRenderer.js", - "line": 283, + "line": 284, "description": "resizes the webGL view to the specified width and height", "itemtype": "method", "name": "resize", @@ -1492,14 +1492,14 @@ }, { "file": "src/pixi/renderers/WebGLRenderer.js", - "line": 307, + "line": 308, "access": "private", "tagname": "", "class": "WebGLRenderer" }, { "file": "src/pixi/renderers/WebGLRenderer.js", - "line": 316, + "line": 317, "access": "private", "tagname": "", "class": "WebGLRenderer" @@ -2908,23 +2908,23 @@ }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderGroup.js:523" + "line": " src/pixi/renderers/WebGLRenderGroup.js:527" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderGroup.js:607" + "line": " src/pixi/renderers/WebGLRenderGroup.js:613" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderGroup.js:663" + "line": " src/pixi/renderers/WebGLRenderGroup.js:669" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderGroup.js:740" + "line": " src/pixi/renderers/WebGLRenderGroup.js:746" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderGroup.js:777" + "line": " src/pixi/renderers/WebGLRenderGroup.js:783" }, { "message": "Missing item type", @@ -2944,15 +2944,15 @@ }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderer.js:232" + "line": " src/pixi/renderers/WebGLRenderer.js:225" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderer.js:307" + "line": " src/pixi/renderers/WebGLRenderer.js:308" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderer.js:316" + "line": " src/pixi/renderers/WebGLRenderer.js:317" }, { "message": "Missing item type", diff --git a/docs/files/src_pixi_renderers_WebGLRenderGroup.js.html b/docs/files/src_pixi_renderers_WebGLRenderGroup.js.html index 7222602..42bcabd 100644 --- a/docs/files/src_pixi_renderers_WebGLRenderGroup.js.html +++ b/docs/files/src_pixi_renderers_WebGLRenderGroup.js.html @@ -177,6 +177,8 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + //PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. @@ -215,6 +217,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + //PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -683,7 +687,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/docs/files/src_pixi_renderers_WebGLRenderer.js.html b/docs/files/src_pixi_renderers_WebGLRenderer.js.html index 0383c4d..551dd19 100644 --- a/docs/files/src_pixi_renderers_WebGLRenderer.js.html +++ b/docs/files/src_pixi_renderers_WebGLRenderer.js.html @@ -306,15 +306,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -366,9 +359,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -400,7 +402,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) diff --git a/bin/pixi.dev.js b/bin/pixi.dev.js index f29080a..3478cf4 100644 --- a/bin/pixi.dev.js +++ b/bin/pixi.dev.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/bin/pixi.js b/bin/pixi.js index 5f2a13c..a6d54d1 100644 --- a/bin/pixi.js +++ b/bin/pixi.js @@ -4,10 +4,10 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php */ -(function(){function HEXtoRGB(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}function determineMatrixArrayType(){return PIXI.Matrix="undefined"!=typeof Float32Array?Float32Array:Array,PIXI.Matrix}var root=this,PIXI=PIXI||{};PIXI.Point=function(t,e){this.x=t||0,this.y=e||0},PIXI.Point.prototype.clone=function(){return new PIXI.Point(this.x,this.y)},PIXI.Point.constructor=PIXI.Point,PIXI.Rectangle=function(t,e,i,r){this.x=t||0,this.y=e||0,this.width=i||0,this.height=r||0},PIXI.Rectangle.prototype.clone=function(){return new PIXI.Rectangle(this.x,this.y,this.width,this.height)},PIXI.Rectangle.constructor=PIXI.Rectangle,PIXI.DisplayObject=function(){this.position=new PIXI.Point,this.scale=new PIXI.Point(1,1),this.pivot=new PIXI.Point(0,0),this.rotation=0,this.alpha=1,this.visible=!0,this.worldVisible=!1,this.parent=null,this.stage=null,this.hitArea=null,this.worldAlpha=1,this.color=[],this.worldTransform=PIXI.mat3.create(),this.localTransform=PIXI.mat3.create(),this.dynamic=!0,this._sr=0,this._cr=1,this.childIndex=0,this.renderable=!1,this.interactive=!1,this.buttonMode=!1},PIXI.DisplayObject.constructor=PIXI.DisplayObject,PIXI.DisplayObject.prototype.setInteractive=function(t){this.interactive=t,this.stage&&(this.stage.dirty=!0)},PIXI.DisplayObject.prototype.updateTransform=function(){this.rotation!=this.rotationCache&&(this.rotationCache=this.rotation,this._sr=Math.sin(this.rotation),this._cr=Math.cos(this.rotation));var t=this.localTransform,e=this.parent.worldTransform,i=this.worldTransform;t[0]=this._cr*this.scale.x,t[1]=-this._sr*this.scale.y,t[3]=this._sr*this.scale.x,t[4]=this._cr*this.scale.y;var r=this.pivot.x,s=this.pivot.y;t[2]=this.position.x-t[0]*r-s*t[1],t[5]=this.position.y-t[4]*s-r*t[3];var n=t[0],a=t[1],o=t[2],h=t[3],u=t[4],c=t[5],d=e[0],l=e[1],I=e[2],p=e[3],f=e[4],x=e[5];i[0]=d*n+l*h,i[1]=d*a+l*u,i[2]=d*o+l*c+I,i[3]=p*n+f*h,i[4]=p*a+f*u,i[5]=p*o+f*c+x,this.worldAlpha=this.alpha*this.parent.worldAlpha},PIXI.DisplayObjectContainer=function(){PIXI.DisplayObject.call(this),this.children=[],this.renderable=!1},PIXI.DisplayObjectContainer.constructor=PIXI.DisplayObjectContainer,PIXI.DisplayObjectContainer.prototype=Object.create(PIXI.DisplayObject.prototype),PIXI.DisplayObjectContainer.prototype.addChild=function(t){void 0!=t.parent&&t.parent.removeChild(t),t.parent=this,t.childIndex=this.children.length,this.children.push(t),this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},PIXI.DisplayObjectContainer.prototype.addChildAt=function(t,e){if(!(e>=0&&this.children.length>=e))throw Error(t+" The index "+e+" supplied is out of bounds "+this.children.length);void 0!=t.parent&&t.parent.removeChild(t),e==this.children.length?this.children.push(t):this.children.splice(e,0,t),t.parent=this,t.childIndex=e;for(var i=this.children.length,r=e;i>r;r++)this.children[r].childIndex=r;this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},PIXI.DisplayObjectContainer.prototype.swapChildren=function(t,e){var i=this.children.indexOf(t),r=this.children.indexOf(e);if(-1===i||-1===r)throw Error(t+" Both the supplied DisplayObjects must be a child of the caller "+this);this.stage&&(this.stage.__removeChild(t),this.stage.__removeChild(e),this.stage.__addChild(t),this.stage.__addChild(e)),t.childIndex=r,e.childIndex=i,this.children[i]=e,this.children[r]=t},PIXI.DisplayObjectContainer.prototype.getChildAt=function(t){if(t>=0&&this.children.length>t)return this.children[t];throw Error(child+" Both the supplied DisplayObjects must be a child of the caller "+this)},PIXI.DisplayObjectContainer.prototype.removeChild=function(t){var e=this.children.indexOf(t);if(-1===e)throw Error(t+" The supplied DisplayObject must be a child of the caller "+this);this.stage&&this.stage.__removeChild(t),t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.parent=void 0,this.children.splice(e,1);for(var i=e,r=this.children.length;r>i;i++)this.children[i].childIndex-=1},PIXI.DisplayObjectContainer.prototype.updateTransform=function(){if(this.visible){PIXI.DisplayObject.prototype.updateTransform.call(this);for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform()}},PIXI.blendModes={},PIXI.blendModes.NORMAL=0,PIXI.blendModes.SCREEN=1,PIXI.Sprite=function(t){PIXI.DisplayObjectContainer.call(this),this.anchor=new PIXI.Point,this.texture=t,this.blendMode=PIXI.blendModes.NORMAL,this._width=0,this._height=0,t.baseTexture.hasLoaded?this.updateFrame=!0:(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},PIXI.Sprite.constructor=PIXI.Sprite,PIXI.Sprite.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),Object.defineProperty(PIXI.Sprite.prototype,"width",{get:function(){return this.scale.x*this.texture.frame.width},set:function(t){this.scale.x=t/this.texture.frame.width,this._width=t}}),Object.defineProperty(PIXI.Sprite.prototype,"height",{get:function(){return this.scale.y*this.texture.frame.height},set:function(t){this.scale.y=t/this.texture.frame.height,this._height=t}}),PIXI.Sprite.prototype.setTexture=function(t){this.texture.baseTexture!=t.baseTexture&&(this.textureChange=!0),this.texture=t,this.updateFrame=!0},PIXI.Sprite.prototype.onTextureUpdate=function(){this._width&&(this.scale.x=this._width/this.texture.frame.width),this._height&&(this.scale.y=this._height/this.texture.frame.height),this.updateFrame=!0},PIXI.Sprite.fromFrame=function(t){var e=PIXI.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache"+this);return new PIXI.Sprite(e)},PIXI.Sprite.fromImage=function(t){var e=PIXI.Texture.fromImage(t);return new PIXI.Sprite(e)},PIXI.MovieClip=function(t){PIXI.Sprite.call(this,t[0]),this.textures=t,this.currentFrame=0,this.animationSpeed=1,this.loop=!0,this.onComplete=null,this.playing},PIXI.MovieClip.constructor=PIXI.MovieClip,PIXI.MovieClip.prototype=Object.create(PIXI.Sprite.prototype),PIXI.MovieClip.prototype.stop=function(){this.playing=!1},PIXI.MovieClip.prototype.play=function(){this.playing=!0},PIXI.MovieClip.prototype.gotoAndStop=function(t){this.playing=!1,this.currentFrame=t;var e=0|this.currentFrame+.5;this.setTexture(this.textures[e%this.textures.length])},PIXI.MovieClip.prototype.gotoAndPlay=function(t){this.currentFrame=t,this.playing=!0},PIXI.MovieClip.prototype.updateTransform=function(){if(PIXI.Sprite.prototype.updateTransform.call(this),this.playing){this.currentFrame+=this.animationSpeed;var t=0|this.currentFrame+.5;this.loop||this.textures.length>t?this.setTexture(this.textures[t%this.textures.length]):t>=this.textures.length&&(this.gotoAndStop(this.textures.length-1),this.onComplete&&this.onComplete())}},PIXI.Text=function(t,e){this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"),PIXI.Sprite.call(this,PIXI.Texture.fromCanvas(this.canvas)),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},PIXI.Text.constructor=PIXI.Text,PIXI.Text.prototype=Object.create(PIXI.Sprite.prototype),PIXI.Text.prototype.setStyle=function(t){t=t||{},t.font=t.font||"bold 20pt Arial",t.fill=t.fill||"black",t.align=t.align||"left",t.strokeThickness=t.strokeThickness||0,this.style=t,this.dirty=!0},PIXI.Sprite.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},PIXI.Text.prototype.updateText=function(){this.context.font=this.style.font;for(var t=this.text.split(/(?:\r\n|\r|\n)/),e=[],i=0,r=0;t.length>r;r++){var s=this.context.measureText(t[r]).width;e[r]=s,i=Math.max(i,s)}this.canvas.width=i+this.style.strokeThickness;var n=this.determineFontHeight("font: "+this.style.font+";")+this.style.strokeThickness;for(this.canvas.height=n*t.length,this.context.fillStyle=this.style.fill,this.context.font=this.style.font,this.context.strokeStyle=this.style.stroke,this.context.lineWidth=this.style.strokeThickness,this.context.textBaseline="top",r=0;t.length>r;r++){var a=new PIXI.Point(this.style.strokeThickness/2,this.style.strokeThickness/2+r*n);"right"==this.style.align?a.x+=i-e[r]:"center"==this.style.align&&(a.x+=(i-e[r])/2),this.style.stroke&&this.style.strokeThickness&&this.context.strokeText(t[r],a.x,a.y),this.style.fill&&this.context.fillText(t[r],a.x,a.y)}this.updateTexture()},PIXI.Text.prototype.updateTexture=function(){this.texture.baseTexture.width=this.canvas.width,this.texture.baseTexture.height=this.canvas.height,this.texture.frame.width=this.canvas.width,this.texture.frame.height=this.canvas.height,this._width=this.canvas.width,this._height=this.canvas.height,PIXI.texturesToUpdate.push(this.texture.baseTexture)},PIXI.Text.prototype.updateTransform=function(){this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype.updateTransform.call(this)},PIXI.Text.prototype.determineFontHeight=function(t){var e=PIXI.Text.heightCache[t];if(!e){var i=document.getElementsByTagName("body")[0],r=document.createElement("div"),s=document.createTextNode("M");r.appendChild(s),r.setAttribute("style",t),i.appendChild(r),e=r.offsetHeight,PIXI.Text.heightCache[t]=e,i.removeChild(r)}return e},PIXI.Text.prototype.destroy=function(t){t&&this.texture.destroy()},PIXI.Text.heightCache={},PIXI.BitmapText=function(t,e){PIXI.DisplayObjectContainer.call(this),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},PIXI.BitmapText.constructor=PIXI.BitmapText,PIXI.BitmapText.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.BitmapText.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},PIXI.BitmapText.prototype.setStyle=function(t){t=t||{},t.align=t.align||"left",this.style=t;var e=t.font.split(" ");this.fontName=e[e.length-1],this.fontSize=e.length>=2?parseInt(e[e.length-2],10):PIXI.BitmapText.fonts[this.fontName].size,this.dirty=!0},PIXI.BitmapText.prototype.updateText=function(){for(var t=PIXI.BitmapText.fonts[this.fontName],e=new PIXI.Point,i=null,r=[],s=0,n=[],a=0,o=this.fontSize/t.size,h=0;this.text.length>h;h++){var u=this.text.charCodeAt(h);if(/(?:\r\n|\r|\n)/.test(this.text.charAt(h)))n.push(e.x),s=Math.max(s,e.x),a++,e.x=0,e.y+=t.lineHeight,i=null;else{var c=t.chars[u];c&&(i&&c[i]&&(e.x+=c.kerning[i]),r.push({line:a,charCode:u,position:new PIXI.Point(e.x+c.xOffset,e.y+c.yOffset)}),e.x+=c.xAdvance,i=u)}}n.push(e.x),s=Math.max(s,e.x);var d=[];for(h=0;a>=h;h++){var l=0;"right"==this.style.align?l=s-n[h]:"center"==this.style.align&&(l=(s-n[h])/2),d.push(l)}for(h=0;r.length>h;h++){var I=PIXI.Sprite.fromFrame(r[h].charCode);I.position.x=(r[h].position.x+d[r[h].line])*o,I.position.y=r[h].position.y*o,I.scale.x=I.scale.y=o,this.addChild(I)}this.width=e.x*o,this.height=(e.y+t.lineHeight)*o},PIXI.BitmapText.prototype.updateTransform=function(){if(this.dirty){for(;this.children.length>0;)this.removeChild(this.getChildAt(0));this.updateText(),this.dirty=!1}PIXI.DisplayObjectContainer.prototype.updateTransform.call(this)},PIXI.BitmapText.fonts={},PIXI.InteractionManager=function(t){this.stage=t,this.tempPoint=new PIXI.Point,this.mouseoverEnabled=!0,this.mouse=new PIXI.InteractionData,this.touchs={},this.pool=[],this.interactiveItems=[],this.last=0},PIXI.InteractionManager.constructor=PIXI.InteractionManager,PIXI.InteractionManager.prototype.collectInteractiveSprite=function(t,e){for(var i=t.children,r=i.length,s=r-1;s>=0;s--){var n=i[s];n.interactive?(e.interactiveChildren=!0,this.interactiveItems.push(n),n.children.length>0&&this.collectInteractiveSprite(n,n)):(n.__iParent=null,n.children.length>0&&this.collectInteractiveSprite(n,e))}},PIXI.InteractionManager.prototype.setTarget=function(t){window.navigator.msPointerEnabled&&(t.view.style["-ms-content-zooming"]="none",t.view.style["-ms-touch-action"]="none"),this.target=t,t.view.addEventListener("mousemove",this.onMouseMove.bind(this),!0),t.view.addEventListener("mousedown",this.onMouseDown.bind(this),!0),document.body.addEventListener("mouseup",this.onMouseUp.bind(this),!0),t.view.addEventListener("mouseout",this.onMouseUp.bind(this),!0),t.view.addEventListener("touchstart",this.onTouchStart.bind(this),!0),t.view.addEventListener("touchend",this.onTouchEnd.bind(this),!0),t.view.addEventListener("touchmove",this.onTouchMove.bind(this),!0)},PIXI.InteractionManager.prototype.update=function(){if(this.target){var t=Date.now(),e=t-this.last;if(e=30*e/1e3,!(1>e)){if(this.last=t,this.dirty){this.dirty=!1,this.interactiveItems.length;for(var i=0;this.interactiveItems.length>i;i++)this.interactiveItems[i].interactiveChildren=!1;this.interactiveItems=[],this.stage.interactive&&this.interactiveItems.push(this.stage),this.collectInteractiveSprite(this.stage,this.stage)}var r=this.interactiveItems.length;this.target.view.style.cursor="default";for(var i=0;r>i;i++){var s=this.interactiveItems[i];s.visible&&(s.mouseover||s.mouseout||s.buttonMode)&&(s.__hit=this.hitTest(s,this.mouse),s.__hit?(s.buttonMode&&(this.target.view.style.cursor="pointer"),s.__isOver||(s.mouseover&&s.mouseover(this.mouse),s.__isOver=!0)):s.__isOver&&(s.mouseout&&s.mouseout(this.mouse),s.__isOver=!1))}}}},PIXI.InteractionManager.prototype.onMouseMove=function(t){t.preventDefault();var e=this.target.view.getBoundingClientRect();this.mouse.global.x=(t.clientX-e.left)*(this.target.width/e.width),this.mouse.global.y=(t.clientY-e.top)*(this.target.height/e.height);var i=this.interactiveItems.length;this.mouse.global;for(var r=0;i>r;r++){var s=this.interactiveItems[r];s.mousemove&&s.mousemove(this.mouse)}},PIXI.InteractionManager.prototype.onMouseDown=function(t){t.preventDefault();var e=this.interactiveItems.length;this.mouse.global,this.stage;for(var i=0;e>i;i++){var r=this.interactiveItems[i];if((r.mousedown||r.click)&&(r.__mouseIsDown=!0,r.__hit=this.hitTest(r,this.mouse),r.__hit&&(r.mousedown&&r.mousedown(this.mouse),r.__isDown=!0,!r.interactiveChildren)))break}},PIXI.InteractionManager.prototype.onMouseUp=function(t){t.preventDefault(),this.mouse.global;for(var e=this.interactiveItems.length,i=!1,r=0;e>r;r++){var s=this.interactiveItems[r];(s.mouseup||s.mouseupoutside||s.click)&&(s.__hit=this.hitTest(s,this.mouse),s.__hit&&!i?(s.mouseup&&s.mouseup(this.mouse),s.__isDown&&s.click&&s.click(this.mouse),s.interactiveChildren||(i=!0)):s.__isDown&&s.mouseupoutside&&s.mouseupoutside(this.mouse),s.__isDown=!1)}},PIXI.InteractionManager.prototype.hitTest=function(t,e){var i=e.global;if(!t.visible)return!1;if(t instanceof PIXI.Sprite){var r=t.worldTransform,s=r[0],n=r[1],a=r[2],o=r[3],h=r[4],u=r[5],c=1/(s*h+n*-o),d=h*c*i.x+-n*c*i.y+(u*n-a*h)*c,l=s*c*i.y+-o*c*i.x+(-u*s+a*o)*c,I=t.texture.frame.width,p=t.texture.frame.height,f=-I*t.anchor.x;if(d>f&&f+I>d){var x=-p*t.anchor.y;if(l>x&&x+p>l)return e.target=t,!0}}else if(t.hitArea){var r=t.worldTransform,v=t.hitArea,s=r[0],n=r[1],a=r[2],o=r[3],h=r[4],u=r[5],c=1/(s*h+n*-o),d=h*c*i.x+-n*c*i.y+(u*n-a*h)*c,l=s*c*i.y+-o*c*i.x+(-u*s+a*o)*c,f=v.x;if(d>f&&f+v.width>d){var x=v.y;if(l>x&&x+v.height>l)return!0}}for(var P=t.children.length,g=0;P>g;g++){var b=t.children[g],X=this.hitTest(b,e);if(X)return!0}return!1},PIXI.InteractionManager.prototype.onTouchMove=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.touchs[s.identifier];n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height)}for(var a=this.interactiveItems.length,r=0;a>r;r++){var o=this.interactiveItems[r];o.touchmove&&o.touchmove(n)}},PIXI.InteractionManager.prototype.onTouchStart=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.pool.pop();n||(n=new PIXI.InteractionData),this.touchs[s.identifier]=n,n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height);for(var a=this.interactiveItems.length,o=0;a>o;o++){var h=this.interactiveItems[o];if((h.touchstart||h.tap)&&(h.__hit=this.hitTest(h,n),h.__hit&&(h.touchstart&&h.touchstart(n),h.__isDown=!0,h.__touchData=n,!h.interactiveChildren)))break}}},PIXI.InteractionManager.prototype.onTouchEnd=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.touchs[s.identifier],a=!1;n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var u=this.interactiveItems[h],c=u.__touchData;u.__hit=this.hitTest(u,n),c==n&&((u.touchend||u.tap)&&(u.__hit&&!a?(u.touchend&&u.touchend(n),u.__isDown&&u.tap&&u.tap(n),u.interactiveChildren||(a=!0)):u.__isDown&&u.touchendoutside&&u.touchendoutside(n),u.__isDown=!1),u.__touchData=null)}this.pool.push(n),this.touchs[s.identifier]=null}},PIXI.InteractionData=function(){this.global=new PIXI.Point,this.local=new PIXI.Point,this.target},PIXI.InteractionData.prototype.getLocalPosition=function(t){var e=t.worldTransform,i=this.global,r=e[0],s=e[1],n=e[2],a=e[3],o=e[4],h=e[5],u=1/(r*o+s*-a);return new PIXI.Point(o*u*i.x+-s*u*i.y+(h*s-n*o)*u,r*u*i.y+-a*u*i.x+(-h*r+n*a)*u)},PIXI.InteractionData.constructor=PIXI.InteractionData,PIXI.Stage=function(t,e){PIXI.DisplayObjectContainer.call(this),this.worldTransform=PIXI.mat3.create(),this.__childrenAdded=[],this.__childrenRemoved=[],this.childIndex=0,this.stage=this,this.stage.hitArea=new PIXI.Rectangle(0,0,1e5,1e5),this.interactive=!!e,this.interactionManager=new PIXI.InteractionManager(this),this.setBackgroundColor(t),this.worldVisible=!0},PIXI.Stage.constructor=PIXI.Stage,PIXI.Stage.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Stage.prototype.updateTransform=function(){this.worldAlpha=1;for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform();this.dirty&&(this.dirty=!1,this.interactionManager.dirty=!0),this.interactive&&this.interactionManager.update()},PIXI.Stage.prototype.setBackgroundColor=function(t){this.backgroundColor=t||0,this.backgroundColorSplit=HEXtoRGB(this.backgroundColor),this.backgroundColorString="#"+this.backgroundColor.toString(16)},PIXI.Stage.prototype.getMousePosition=function(){return this.interactionManager.mouse.global},PIXI.Stage.prototype.__addChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=this,t.children)for(var e=0;t.children.length>e;e++)this.__addChild(t.children[e])},PIXI.Stage.prototype.__removeChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=void 0,t.children)for(var e=0,i=t.children.length;i>e;e++)this.__removeChild(t.children[e])},window.requestAnimFrame=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(t){window.setTimeout(t,1e3/60)}}(),"function"!=typeof Function.prototype.bind&&(Function.prototype.bind=function(){var t=Array.prototype.slice;return function(e){function i(){var n=s.concat(t.call(arguments));r.apply(this instanceof i?this:e,n)}var r=this,s=t.call(arguments,1);if("function"!=typeof r)throw new TypeError;return i.prototype=function n(t){return t&&(n.prototype=t),this instanceof n?void 0:new n}(r.prototype),i}}());var AjaxRequest=function(){var t=["Msxml2.XMLHTTP","Microsoft.XMLHTTP"];if(!window.ActiveXObject)return window.XMLHttpRequest?new XMLHttpRequest:!1;for(var e=0;t.length>e;e++)try{return new ActiveXObject(t[e])}catch(i){}};PIXI.EventTarget=function(){var t={};this.addEventListener=this.on=function(e,i){void 0===t[e]&&(t[e]=[]),-1===t[e].indexOf(i)&&t[e].push(i)},this.dispatchEvent=this.emit=function(e){for(var i in t[e.type])t[e.type][i](e)},this.removeEventListener=this.off=function(e,i){var r=t[e].indexOf(i);-1!==r&&t[e].splice(r,1)}},determineMatrixArrayType(),PIXI.mat3={},PIXI.mat3.create=function(){var t=new PIXI.Matrix(9);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},PIXI.mat4={},PIXI.mat4.create=function(){var t=new PIXI.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},PIXI.mat3.multiply=function(t,e,i){i||(i=t);var r=t[0],s=t[1],n=t[2],a=t[3],o=t[4],h=t[5],u=t[6],c=t[7],d=t[8],l=e[0],I=e[1],p=e[2],f=e[3],x=e[4],v=e[5],P=e[6],g=e[7],b=e[8];return i[0]=l*r+I*a+p*u,i[1]=l*s+I*o+p*c,i[2]=l*n+I*h+p*d,i[3]=f*r+x*a+v*u,i[4]=f*s+x*o+v*c,i[5]=f*n+x*h+v*d,i[6]=P*r+g*a+b*u,i[7]=P*s+g*o+b*c,i[8]=P*n+g*h+b*d,i},PIXI.mat3.toMat4=function(t,e){return e||(e=PIXI.mat4.create()),e[15]=1,e[14]=0,e[13]=0,e[12]=0,e[11]=0,e[10]=t[8],e[9]=t[7],e[8]=t[6],e[7]=0,e[6]=t[5],e[5]=t[4],e[4]=t[3],e[3]=0,e[2]=t[2],e[1]=t[1],e[0]=t[0],e},PIXI.mat4.create=function(){var t=new PIXI.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},PIXI.mat4.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],s=t[3],n=t[6],a=t[7],o=t[11];return t[1]=t[4],t[2]=t[8],t[3]=t[12],t[4]=i,t[6]=t[9],t[7]=t[13],t[8]=r,t[9]=n,t[11]=t[14],t[12]=s,t[13]=a,t[14]=o,t}return e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=t[1],e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=t[2],e[9]=t[6],e[10]=t[10],e[11]=t[14],e[12]=t[3],e[13]=t[7],e[14]=t[11],e[15]=t[15],e},PIXI.mat4.multiply=function(t,e,i){i||(i=t);var r=t[0],s=t[1],n=t[2],a=t[3],o=t[4],h=t[5],u=t[6],c=t[7],d=t[8],l=t[9],I=t[10],p=t[11],f=t[12],x=t[13],v=t[14],P=t[15],g=e[0],b=e[1],X=e[2],m=e[3];return i[0]=g*r+b*o+X*d+m*f,i[1]=g*s+b*h+X*l+m*x,i[2]=g*n+b*u+X*I+m*v,i[3]=g*a+b*c+X*p+m*P,g=e[4],b=e[5],X=e[6],m=e[7],i[4]=g*r+b*o+X*d+m*f,i[5]=g*s+b*h+X*l+m*x,i[6]=g*n+b*u+X*I+m*v,i[7]=g*a+b*c+X*p+m*P,g=e[8],b=e[9],X=e[10],m=e[11],i[8]=g*r+b*o+X*d+m*f,i[9]=g*s+b*h+X*l+m*x,i[10]=g*n+b*u+X*I+m*v,i[11]=g*a+b*c+X*p+m*P,g=e[12],b=e[13],X=e[14],m=e[15],i[12]=g*r+b*o+X*d+m*f,i[13]=g*s+b*h+X*l+m*x,i[14]=g*n+b*u+X*I+m*v,i[15]=g*a+b*c+X*p+m*P,i},PIXI.autoDetectRenderer=function(t,e,i,r){t||(t=800),e||(e=600);var s=function(){try{return!!window.WebGLRenderingContext&&!!document.createElement("canvas").getContext("experimental-webgl")}catch(t){return!1}}();return s?new PIXI.WebGLRenderer(t,e,i,r):new PIXI.CanvasRenderer(t,e,i,r)},PIXI.shaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * vColor;","}"],PIXI.shaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform mat4 uMVMatrix;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","gl_Position = uMVMatrix * vec4(aVertexPosition, 1.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],PIXI.CompileVertexShader=function(t,e){return PIXI._CompileShader(t,e,t.VERTEX_SHADER)},PIXI.CompileFragmentShader=function(t,e){return PIXI._CompileShader(t,e,t.FRAGMENT_SHADER)},PIXI._CompileShader=function(t,e,i){var r=e.join("\n"),s=t.createShader(i);return t.shaderSource(s,r),t.compileShader(s),t.getShaderParameter(s,t.COMPILE_STATUS)?s:(alert(t.getShaderInfoLog(s)),null)},PIXI._defaultFrame=new PIXI.Rectangle(0,0,1,1),PIXI.gl,PIXI.WebGLRenderer=function(t,e,i,r){this.transparent=!!r,this.width=t||800,this.height=e||600,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height;var s=this;this.view.addEventListener("webglcontextlost",function(t){s.handleContextLost(t)},!1),this.view.addEventListener("webglcontextrestored",function(t){s.handleContextRestored(t)},!1),this.batchs=[];try{PIXI.gl=this.gl=this.view.getContext("experimental-webgl",{alpha:this.transparent,antialias:!1,premultipliedAlpha:!0})}catch(n){throw Error(" This browser does not support webGL. Try using the canvas renderer"+this)}this.initShaders();var a=this.gl;PIXI.WebGLRenderer.gl=a,this.batch=new PIXI.WebGLBatch(a),a.disable(a.DEPTH_TEST),a.disable(a.CULL_FACE),a.enable(a.BLEND),a.colorMask(!0,!0,!0,this.transparent),this.projectionMatrix=PIXI.mat4.create(),this.resize(this.width,this.height),this.contextLost=!1,this.stageRenderGroup=new PIXI.WebGLRenderGroup(this.gl)},PIXI.WebGLRenderer.constructor=PIXI.WebGLRenderer,PIXI.WebGLRenderer.getBatch=function(){return 0==PIXI._batchs.length?new PIXI.WebGLBatch(PIXI.WebGLRenderer.gl):PIXI._batchs.pop()},PIXI.WebGLRenderer.returnBatch=function(t){t.clean(),PIXI._batchs.push(t)},PIXI.WebGLRenderer.prototype.initShaders=function(){var t=this.gl,e=PIXI.CompileFragmentShader(t,PIXI.shaderFragmentSrc),i=PIXI.CompileVertexShader(t,PIXI.shaderVertexSrc);PIXI.shaderProgram=t.createProgram();var r=PIXI.shaderProgram;t.attachShader(r,i),t.attachShader(r,e),t.linkProgram(r),t.getProgramParameter(r,t.LINK_STATUS)||alert("Could not initialise shaders"),t.useProgram(r),r.vertexPositionAttribute=t.getAttribLocation(r,"aVertexPosition"),t.enableVertexAttribArray(r.vertexPositionAttribute),r.textureCoordAttribute=t.getAttribLocation(r,"aTextureCoord"),t.enableVertexAttribArray(r.textureCoordAttribute),r.colorAttribute=t.getAttribLocation(r,"aColor"),t.enableVertexAttribArray(r.colorAttribute),r.mvMatrixUniform=t.getUniformLocation(r,"uMVMatrix"),r.samplerUniform=t.getUniformLocation(r,"uSampler")},PIXI.WebGLRenderer.prototype.render=function(t){if(!this.contextLost){this.__stage!==t&&(this.__stage=t,this.stageRenderGroup.setRenderable(t));for(var e=0;PIXI.texturesToUpdate.length>e;e++)this.updateTexture(PIXI.texturesToUpdate[e]);for(var e=0;PIXI.texturesToDestroy.length>e;e++)this.destroyTexture(PIXI.texturesToDestroy[e]);PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[],t.updateTransform();var i=this.gl;if(i.colorMask(!0,!0,!0,this.transparent),i.viewport(0,0,this.width,this.height),i.bindFramebuffer(i.FRAMEBUFFER,null),i.clearColor(t.backgroundColorSplit[0],t.backgroundColorSplit[1],t.backgroundColorSplit[2],this.transparent),i.clear(i.COLOR_BUFFER_BIT),this.stageRenderGroup.backgroundColor=t.backgroundColorSplit,this.stageRenderGroup.render(this.projectionMatrix),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),PIXI.Texture.frameUpdates.length>0){for(var e=0;PIXI.Texture.frameUpdates.length>e;e++)PIXI.Texture.frameUpdates[e].updateFrame=!1;PIXI.Texture.frameUpdates=[]}}},PIXI.WebGLRenderer.prototype.updateTexture=function(t){var e=this.gl;t._glTexture||(t._glTexture=e.createTexture()),t.hasLoaded&&(e.bindTexture(e.TEXTURE_2D,t._glTexture),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t.source),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),t._powerOf2?(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT)):(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)),e.bindTexture(e.TEXTURE_2D,null)),this.refreshBatchs=!0},PIXI.WebGLRenderer.prototype.destroyTexture=function(t){var e=this.gl;t._glTexture&&(t._glTexture=e.createTexture(),e.deleteTexture(e.TEXTURE_2D,t._glTexture))},PIXI.WebGLRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e,this.gl.viewport(0,0,this.width,this.height);var i=this.projectionMatrix;i[0]=2/this.width,i[5]=-2/this.height,i[12]=-1,i[13]=1},PIXI.WebGLRenderer.prototype.handleContextLost=function(t){t.preventDefault(),this.contextLost=!0},PIXI.WebGLRenderer.prototype.handleContextRestored=function(){this.gl=this.view.getContext("experimental-webgl",{alpha:!0}),this.initShaders();for(var t=0;PIXI.TextureCache.length>t;t++)this.updateTexture(PIXI.TextureCache[t]);for(var t=0;this.batchs.length>t;t++)this.batchs[t].restoreLostContext(this.gl),this.batchs[t].dirty=!0;PIXI._restoreBatchs(this.gl),this.contextLost=!1},PIXI._batchs=[],PIXI._getBatch=function(t){return 0==PIXI._batchs.length?new PIXI.WebGLBatch(t):PIXI._batchs.pop()},PIXI._returnBatch=function(t){t.clean(),PIXI._batchs.push(t)},PIXI._restoreBatchs=function(t){for(var e=0;PIXI._batchs.length>e;e++)PIXI._batchs[e].restoreLostContext(t)},PIXI.WebGLBatch=function(t){this.gl=t,this.size=0,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer(),this.blendMode=PIXI.blendModes.NORMAL,this.dynamicSize=1},PIXI.WebGLBatch.constructor=PIXI.WebGLBatch,PIXI.WebGLBatch.prototype.clean=function(){this.verticies=[],this.uvs=[],this.indices=[],this.colors=[],this.dynamicSize=1,this.texture=null,this.last=null,this.size=0,this.head,this.tail},PIXI.WebGLBatch.prototype.restoreLostContext=function(t){this.gl=t,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer()},PIXI.WebGLBatch.prototype.init=function(t){t.batch=this,this.dirty=!0,this.blendMode=t.blendMode,this.texture=t.texture.baseTexture,this.head=t,this.tail=t,this.size=1,this.growBatch()},PIXI.WebGLBatch.prototype.insertBefore=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__prev;e.__prev=t,t.__next=e,i?(t.__prev=i,i.__next=t):this.head=t},PIXI.WebGLBatch.prototype.insertAfter=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__next;e.__next=t,t.__prev=e,i?(t.__next=i,i.__prev=t):this.tail=t},PIXI.WebGLBatch.prototype.remove=function(t){return this.size--,0==this.size?(t.batch=null,t.__prev=null,t.__next=null,void 0):(t.__prev?t.__prev.__next=t.__next:(this.head=t.__next,this.head.__prev=null),t.__next?t.__next.__prev=t.__prev:(this.tail=t.__prev,this.tail.__next=null),t.batch=null,t.__next=null,t.__prev=null,this.dirty=!0,void 0)},PIXI.WebGLBatch.prototype.split=function(t){this.dirty=!0;var e=new PIXI.WebGLBatch(this.gl);e.init(t),e.tail=this.tail,this.tail=t.__prev,this.tail.__next=null,t.__prev=null;for(var i=0;t;)i++,t.batch=e,t=t.__next;return e.size=i,this.size-=i,e},PIXI.WebGLBatch.prototype.merge=function(t){this.dirty=!0,this.tail.__next=t.head,t.head.__prev=this.tail,this.size+=t.size,this.tail=t.tail;for(var e=t.head;e;)e.batch=this,e=e.__next},PIXI.WebGLBatch.prototype.growBatch=function(){var t=this.gl;this.dynamicSize=1==this.size?1:1.5*this.size,this.verticies=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.vertexBuffer),t.bufferData(t.ARRAY_BUFFER,this.verticies,t.DYNAMIC_DRAW),this.uvs=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.uvBuffer),t.bufferData(t.ARRAY_BUFFER,this.uvs,t.DYNAMIC_DRAW),this.dirtyUVS=!0,this.colors=new Float32Array(4*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.colorBuffer),t.bufferData(t.ARRAY_BUFFER,this.colors,t.DYNAMIC_DRAW),this.dirtyColors=!0,this.indices=new Uint16Array(6*this.dynamicSize);for(var e=this.indices.length/6,i=0;e>i;i++){var r=6*i,s=4*i;this.indices[r+0]=s+0,this.indices[r+1]=s+1,this.indices[r+2]=s+2,this.indices[r+3]=s+0,this.indices[r+4]=s+2,this.indices[r+5]=s+3}t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,this.indexBuffer),t.bufferData(t.ELEMENT_ARRAY_BUFFER,this.indices,t.STATIC_DRAW)},PIXI.WebGLBatch.prototype.refresh=function(){this.gl,this.dynamicSizei;i++)this.removeDisplayObjectAndChildren(this.toRemove[i]);this.toRemove=[],this.checkVisibility(this.root,this.root.visible);for(var r,i=0;this.batchs.length>i;i++)r=this.batchs[i],r instanceof PIXI.WebGLBatch?this.batchs[i].render():r instanceof PIXI.TilingSprite?r.visible&&this.renderTilingSprite(r,t):r instanceof PIXI.Strip&&r.visible&&this.renderStrip(r,t)},PIXI.WebGLRenderGroup.prototype.renderSpecific=function(t,e){var i=this.gl;this.checkVisibility(t,t.visible),i.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform,!1,e);var r,s,n,a,o=t.renderable?t:this.getNextRenderable(t),h=o.batch;if(o instanceof PIXI.Sprite){h=o.batch;var u=h.head;if(u==o)r=0;else for(r=1;u.__next!=o;)r++,u=u.__next}else h=o;for(var c,d=t,l=t;l.children.length>0;)l=l.children[l.children.length-1],l.renderable&&(d=l);if(d instanceof PIXI.Sprite){c=d.batch;var u=c.head;if(u==d)n=0;else for(n=1;u.__next!=d;)n++,u=u.__next}else c=d;if(h==c)return h instanceof PIXI.WebGLBatch?h.render(r,n+1):h instanceof PIXI.TilingSprite?h.visible&&this.renderTilingSprite(h,e):h instanceof PIXI.Strip?h.visible&&this.renderStrip(h,e):h instanceof PIXI.CustomRenderable&&h.visible&&h.renderWebGL(this,e),void 0;s=this.batchs.indexOf(h),a=this.batchs.indexOf(c),h instanceof PIXI.WebGLBatch?h.render(r):h instanceof PIXI.TilingSprite?h.visible&&this.renderTilingSprite(h,e):h instanceof PIXI.Strip?h.visible&&this.renderStrip(h,e):h instanceof PIXI.CustomRenderable&&h.visible&&h.renderWebGL(this,e);for(var I=s+1;a>I;I++)renderable=this.batchs[I],renderable instanceof PIXI.WebGLBatch?this.batchs[I].render():renderable instanceof PIXI.TilingSprite?renderable.visible&&this.renderTilingSprite(renderable,e):renderable instanceof PIXI.Strip?renderable.visible&&this.renderStrip(renderable,e):renderable instanceof PIXI.CustomRenderable&&renderable.visible&&renderable.renderWebGL(this,e);c instanceof PIXI.WebGLBatch?c.render(0,n+1):c instanceof PIXI.TilingSprite?c.visible&&this.renderTilingSprite(c):c instanceof PIXI.Strip?c.visible&&this.renderStrip(c):c instanceof PIXI.CustomRenderable&&c.visible&&c.renderWebGL(this,e)},PIXI.WebGLRenderGroup.prototype.checkVisibility=function(t,e){for(var i=t.children,r=0;i.length>r;r++){var s=i[r];s.worldVisible=s.visible&&e,s.textureChange&&(s.textureChange=!1,s.worldVisible&&(this.removeDisplayObject(s),this.addDisplayObject(s))),s.children.length>0&&this.checkVisibility(s,s.worldVisible)}},PIXI.WebGLRenderGroup.prototype.addDisplayObject=function(t){if(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.__renderGroup=this,t.renderable){var e=this.getPreviousRenderable(t),i=this.getNextRenderable(t);if(t instanceof PIXI.Sprite){var r,s;if(e instanceof PIXI.Sprite){if(r=e.batch,r&&r.texture==t.texture.baseTexture&&r.blendMode==t.blendMode)return r.insertAfter(t,e),void 0}else r=e;if(i)if(i instanceof PIXI.Sprite){if(s=i.batch){if(s.texture==t.texture.baseTexture&&s.blendMode==t.blendMode)return s.insertBefore(t,i),void 0;if(s==r){var n=r.split(i),a=PIXI.WebGLRenderer.getBatch(),o=this.batchs.indexOf(r);return a.init(t),this.batchs.splice(o+1,0,a,n),void 0}}}else s=i;var a=PIXI.WebGLRenderer.getBatch();if(a.init(t),r){var o=this.batchs.indexOf(r);this.batchs.splice(o+1,0,a)}else this.batchs.push(a)}else t instanceof PIXI.TilingSprite?(this.initTilingSprite(t),this.batchs.push(t)):t instanceof PIXI.Strip&&(this.initStrip(t),this.batchs.push(t));this.batchUpdate=!0}},PIXI.WebGLRenderGroup.prototype.addDisplayObjectAndChildren=function(t){this.addDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.addDisplayObjectAndChildren(e[i])},PIXI.WebGLRenderGroup.prototype.removeDisplayObject=function(t){if(t.__renderGroup=null,t.renderable){var e;if(t instanceof PIXI.Sprite){var i=t.batch;if(!i)return;i.remove(t),0==i.size&&(e=i)}else e=t;if(e){var r=this.batchs.indexOf(e);if(-1==r)return;if(0==r||r==this.batchs.length-1)return this.batchs.splice(r,1),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e),void 0;if(this.batchs[r-1]instanceof PIXI.WebGLBatch&&this.batchs[r+1]instanceof PIXI.WebGLBatch&&this.batchs[r-1].texture==this.batchs[r+1].texture&&this.batchs[r-1].blendMode==this.batchs[r+1].blendMode)return this.batchs[r-1].merge(this.batchs[r+1]),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e),PIXI.WebGLRenderer.returnBatch(this.batchs[r+1]),this.batchs.splice(r,2),void 0;this.batchs.splice(r,1),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e)}}},PIXI.WebGLRenderGroup.prototype.removeDisplayObjectAndChildren=function(t){if(t.__renderGroup==this){this.removeDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.removeDisplayObjectAndChildren(e[i])}},PIXI.WebGLRenderGroup.prototype.getNextRenderable=function(t){var e=t;do{if(0==e.children.length){if(!e.parent)return null;for(;e.childIndex==e.parent.children.length-1;)if(e=e.parent,e==this.root){e=null;break}e&&(e=e.parent.children[e.childIndex+1])}else e=e.children[0];if(!e)break}while(!e.renderable||!e.__renderGroup);return e},PIXI.WebGLRenderGroup.prototype.getPreviousRenderable=function(t){var e=t;do{if(0==e.childIndex){if(e=e.parent,!e)return null}else for(e=e.parent.children[e.childIndex-1];0!=e.children.length;)e=e.children[e.children.length-1];if(e==this.root)break}while(!e.renderable||!e.__renderGroup);return e},PIXI.WebGLRenderGroup.prototype.initTilingSprite=function(t){var e=this.gl;t.verticies=new Float32Array([0,0,t.width,0,t.width,t.height,0,t.height]),t.uvs=new Float32Array([0,0,1,0,1,1,0,1]),t.colors=new Float32Array([1,1,1,1]),t.indices=new Uint16Array([0,1,3,2]),t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW),t.texture.baseTexture._glTexture?(e.bindTexture(e.TEXTURE_2D,t.texture.baseTexture._glTexture),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT),t.texture.baseTexture._powerOf2=!0):t.texture.baseTexture._powerOf2=!0},PIXI.WebGLRenderGroup.prototype.renderStrip=function(t,e){var i=this.gl,r=PIXI.shaderProgram,s=PIXI.mat3.toMat4(t.worldTransform);PIXI.mat4.transpose(s),PIXI.mat4.multiply(e,s,s),i.uniformMatrix4fv(r.mvMatrixUniform,!1,s),t.blendMode==PIXI.blendModes.NORMAL?i.blendFunc(i.ONE,i.ONE_MINUS_SRC_ALPHA):i.blendFunc(i.ONE,i.ONE_MINUS_SRC_COLOR),t.dirty?(t.dirty=!1,i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferData(i.ARRAY_BUFFER,t.verticies,i.STATIC_DRAW),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferData(i.ARRAY_BUFFER,t.uvs,i.STATIC_DRAW),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.bufferData(i.ARRAY_BUFFER,t.colors,i.STATIC_DRAW),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer),i.bufferData(i.ELEMENT_ARRAY_BUFFER,t.indices,i.STATIC_DRAW)):(i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.verticies),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer)),i.drawElements(i.TRIANGLE_STRIP,t.indices.length,i.UNSIGNED_SHORT,0),i.uniformMatrix4fv(r.mvMatrixUniform,!1,e)},PIXI.WebGLRenderGroup.prototype.renderTilingSprite=function(t,e){var i=this.gl;PIXI.shaderProgram;var r=t.tilePosition,s=t.tileScale,n=r.x/t.texture.baseTexture.width,a=r.y/t.texture.baseTexture.height,o=t.width/t.texture.baseTexture.width/s.x,h=t.height/t.texture.baseTexture.height/s.y;t.uvs[0]=0-n,t.uvs[1]=0-a,t.uvs[2]=1*o-n,t.uvs[3]=0-a,t.uvs[4]=1*o-n,t.uvs[5]=1*h-a,t.uvs[6]=0-n,t.uvs[7]=1*h-a,i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.uvs),this.renderStrip(t,e)},PIXI.WebGLRenderer.prototype.initStrip=function(t){var e=this.gl;this.shaderProgram,t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW)},PIXI.CanvasRenderer=function(t,e,i,r){this.transparent=r,this.width=t||800,this.height=e||600,this.refresh=!0,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height,this.count=0,this.context=this.view.getContext("2d")},PIXI.CanvasRenderer.constructor=PIXI.CanvasRenderer,PIXI.CanvasRenderer.prototype.render=function(t){PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[],t.updateTransform(),this.view.style.backgroundColor==t.backgroundColorString||this.transparent||(this.view.style.backgroundColor=t.backgroundColorString),this.context.setTransform(1,0,0,1,0,0),this.context.clearRect(0,0,this.width,this.height),this.renderDisplayObject(t),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),PIXI.Texture.frameUpdates.length>0&&(PIXI.Texture.frameUpdates=[])},PIXI.CanvasRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e},PIXI.CanvasRenderer.prototype.renderDisplayObject=function(t){var e=t.worldTransform,i=this.context;if(t.visible){if(t instanceof PIXI.Sprite){var r=t.texture.frame;r&&(i.globalAlpha=t.worldAlpha,i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),i.drawImage(t.texture.baseTexture.source,r.x,r.y,r.width,r.height,t.anchor.x*-r.width,t.anchor.y*-r.height,r.width,r.height))}else t instanceof PIXI.Strip?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderStrip(t)):t instanceof PIXI.TilingSprite?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderTilingSprite(t)):t instanceof PIXI.CustomRenderable&&t.renderCanvas(this);for(var s=0;t.children.length>s;s++)this.renderDisplayObject(t.children[s]);this.context.setTransform(1,0,0,1,0,0)}},PIXI.CanvasRenderer.prototype.renderStripFlat=function(t){var e=this.context,i=t.verticies;t.uvs;var r=i.length/2;this.count++,e.beginPath();for(var s=1;r-2>s;s++){var n=2*s,a=i[n],o=i[n+2],h=i[n+4],u=i[n+1],c=i[n+3],d=i[n+5];e.moveTo(a,u),e.lineTo(o,c),e.lineTo(h,d)}e.fillStyle="#FF0000",e.fill(),e.closePath()},PIXI.CanvasRenderer.prototype.renderTilingSprite=function(t){var e=this.context;t.__tilePattern||(t.__tilePattern=e.createPattern(t.texture.baseTexture.source,"repeat")),e.beginPath();var i=t.tilePosition,r=t.tileScale;e.scale(r.x,r.y),e.translate(i.x,i.y),e.fillStyle=t.__tilePattern,e.fillRect(-i.x,-i.y,t.width/r.x,t.height/r.y),e.scale(1/r.x,1/r.y),e.translate(-i.x,-i.y),e.closePath()},PIXI.CanvasRenderer.prototype.renderStrip=function(t){var e=this.context,i=t.verticies,r=t.uvs,s=i.length/2;this.count++;for(var n=1;s-2>n;n++){var a=2*n,o=i[a],h=i[a+2],u=i[a+4],c=i[a+1],d=i[a+3],l=i[a+5],I=r[a]*t.texture.width,p=r[a+2]*t.texture.width,f=r[a+4]*t.texture.width,x=r[a+1]*t.texture.height,v=r[a+3]*t.texture.height,P=r[a+5]*t.texture.height;e.save(),e.beginPath(),e.moveTo(o,c),e.lineTo(h,d),e.lineTo(u,l),e.closePath(),e.clip();var g=I*v+x*f+p*P-v*f-x*p-I*P,b=o*v+x*u+h*P-v*u-x*h-o*P,X=I*h+o*f+p*u-h*f-o*p-I*u,m=I*v*u+x*h*f+o*p*P-o*v*f-x*p*u-I*h*P,T=c*v+x*l+d*P-v*l-x*d-c*P,y=I*d+c*f+p*l-d*f-c*p-I*l,_=I*v*l+x*d*f+c*p*P-c*v*f-x*p*l-I*d*P;e.transform(b/g,T/g,X/g,y/g,m/g,_/g),e.drawImage(t.texture.baseTexture.source,0,0),e.restore()}},PIXI.Strip=function(t,e,i){PIXI.DisplayObjectContainer.call(this),this.texture=t,this.blendMode=PIXI.blendModes.NORMAL;try{this.uvs=new Float32Array([0,1,1,1,1,0,0,1]),this.verticies=new Float32Array([0,0,0,0,0,0,0,0,0]),this.colors=new Float32Array([1,1,1,1]),this.indices=new Uint16Array([0,1,2,3])}catch(r){this.uvs=[0,1,1,1,1,0,0,1],this.verticies=[0,0,0,0,0,0,0,0,0],this.colors=[1,1,1,1],this.indices=[0,1,2,3]}this.width=e,this.height=i,t.baseTexture.hasLoaded?(this.width=this.texture.frame.width,this.height=this.texture.frame.height,this.updateFrame=!0):(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},PIXI.Strip.constructor=PIXI.Strip,PIXI.Strip.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Strip.prototype.setTexture=function(t){this.texture=t,this.width=t.frame.width,this.height=t.frame.height,this.updateFrame=!0},PIXI.Strip.prototype.onTextureUpdate=function(){this.updateFrame=!0},PIXI.Rope=function(t,e){PIXI.Strip.call(this,t),this.points=e;try{this.verticies=new Float32Array(4*e.length),this.uvs=new Float32Array(4*e.length),this.colors=new Float32Array(2*e.length),this.indices=new Uint16Array(2*e.length)}catch(i){this.verticies=verticies,this.uvs=uvs,this.colors=colors,this.indices=indices}this.refresh()},PIXI.Rope.constructor=PIXI.Rope,PIXI.Rope.prototype=Object.create(PIXI.Strip.prototype),PIXI.Rope.prototype.refresh=function(){var t=this.points;if(!(1>t.length)){var e=this.uvs,i=this.indices,r=this.colors,s=t[0],n=t[0];this.count-=.2,e[0]=0,e[1]=1,e[2]=0,e[3]=1,r[0]=1,r[1]=1,i[0]=0,i[1]=1;for(var a=t.length,o=1;a>o;o++){var n=t[o],h=4*o,u=o/(a-1);o%2?(e[h]=u,e[h+1]=0,e[h+2]=u,e[h+3]=1):(e[h]=u,e[h+1]=0,e[h+2]=u,e[h+3]=1),h=2*o,r[h]=1,r[h+1]=1,h=2*o,i[h]=h,i[h+1]=h+1,s=n}}},PIXI.Rope.prototype.updateTransform=function(){var t=this.points;if(!(1>t.length)){var e,i=this.verticies,r=t[0],s={x:0,y:0},n=t[0];this.count-=.2,i[0]=n.x+s.x,i[1]=n.y+s.y,i[2]=n.x-s.x,i[3]=n.y-s.y;for(var a=t.length,o=1;a>o;o++){var n=t[o],h=4*o;e=t.length-1>o?t[o+1]:n,s.y=-(e.x-r.x),s.x=e.y-r.y;var u=10*(1-o/(a-1));u>1&&(u=1);var c=Math.sqrt(s.x*s.x+s.y*s.y),d=this.texture.height/2;s.x/=c,s.y/=c,s.x*=d,s.y*=d,i[h]=n.x+s.x,i[h+1]=n.y+s.y,i[h+2]=n.x-s.x,i[h+3]=n.y-s.y,r=n}PIXI.DisplayObjectContainer.prototype.updateTransform.call(this)}},PIXI.Rope.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0},PIXI.TilingSprite=function(t,e,i){PIXI.DisplayObjectContainer.call(this),this.texture=t,this.width=e,this.height=i,this.renderable=!0,this.tileScale=new PIXI.Point(1,1),this.tilePosition=new PIXI.Point(0,0),this.blendMode=PIXI.blendModes.NORMAL},PIXI.TilingSprite.constructor=PIXI.TilingSprite,PIXI.TilingSprite.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.TilingSprite.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0},PIXI.TilingSprite.prototype.onTextureUpdate=function(){this.updateFrame=!0},PIXI.CustomRenderable=function(){PIXI.DisplayObject.call(this)},PIXI.CustomRenderable.constructor=PIXI.CustomRenderable,PIXI.CustomRenderable.prototype=Object.create(PIXI.DisplayObject.prototype),PIXI.CustomRenderable.prototype.renderCanvas=function(){},PIXI.CustomRenderable.prototype.initWebGL=function(){},PIXI.CustomRenderable.prototype.renderWebGL=function(){},PIXI.BaseTextureCache={},PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[],PIXI.BaseTexture=function(t){if(PIXI.EventTarget.call(this),this.width=100,this.height=100,this.source=t,t){if(this.source instanceof Image)if(this.source.complete)this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,PIXI.texturesToUpdate.push(this);else{var e=this;this.source.onload=function(){e.hasLoaded=!0,e.width=e.source.width,e.height=e.source.height,PIXI.texturesToUpdate.push(e),e.dispatchEvent({type:"loaded",content:e})}}else this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,PIXI.texturesToUpdate.push(this);this._powerOf2=!1}},PIXI.BaseTexture.constructor=PIXI.BaseTexture,PIXI.BaseTexture.prototype.destroy=function(){this.source instanceof Image&&(this.source.src=null),this.source=null,PIXI.texturesToDestroy.push(this)},PIXI.BaseTexture.fromImage=function(t,e){var i=PIXI.BaseTextureCache[t];if(!i){var r=new Image;e&&(r.crossOrigin=""),r.src=t,i=new PIXI.BaseTexture(r),PIXI.BaseTextureCache[t]=i}return i},PIXI.TextureCache={},PIXI.FrameCache={},PIXI.Texture=function(t,e){if(PIXI.EventTarget.call(this),e||(this.noFrame=!0,e=new PIXI.Rectangle(0,0,1,1)),this.trim=new PIXI.Point,t instanceof PIXI.Texture&&(t=t.baseTexture),this.baseTexture=t,this.frame=e,this.scope=this,t.hasLoaded)this.noFrame&&(e=new PIXI.Rectangle(0,0,t.width,t.height)),this.setFrame(e);else{var i=this;t.addEventListener("loaded",function(){i.onBaseTextureLoaded()})}},PIXI.Texture.constructor=PIXI.Texture,PIXI.Texture.prototype.onBaseTextureLoaded=function(){var t=this.baseTexture;t.removeEventListener("loaded",this.onLoaded),this.noFrame&&(this.frame=new PIXI.Rectangle(0,0,t.width,t.height)),this.noFrame=!1,this.width=this.frame.width,this.height=this.frame.height,this.scope.dispatchEvent({type:"update",content:this})},PIXI.Texture.prototype.destroy=function(t){t&&this.baseTexture.destroy()},PIXI.Texture.prototype.setFrame=function(t){if(this.frame=t,this.width=t.width,this.height=t.height,t.x+t.width>this.baseTexture.width||t.y+t.height>this.baseTexture.height)throw Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);this.updateFrame=!0,PIXI.Texture.frameUpdates.push(this)},PIXI.Texture.fromImage=function(t,e){var i=PIXI.TextureCache[t];return i||(i=new PIXI.Texture(PIXI.BaseTexture.fromImage(t,e)),PIXI.TextureCache[t]=i),i},PIXI.Texture.fromFrame=function(t){var e=PIXI.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache "+this);return e},PIXI.Texture.fromCanvas=function(t){var e=new PIXI.BaseTexture(t);return new PIXI.Texture(e)},PIXI.Texture.addTextureToCache=function(t,e){PIXI.TextureCache[e]=t},PIXI.Texture.removeTextureFromCache=function(t){var e=PIXI.TextureCache[t];return PIXI.TextureCache[t]=null,e},PIXI.Texture.frameUpdates=[],PIXI.RenderTexture=function(t,e){PIXI.EventTarget.call(this),this.width=t||100,this.height=e||100,this.indetityMatrix=PIXI.mat3.create(),this.frame=new PIXI.Rectangle(0,0,this.width,this.height),PIXI.gl?this.initWebGL():this.initCanvas()},PIXI.RenderTexture.constructor=PIXI.RenderTexture,PIXI.RenderTexture.prototype=Object.create(PIXI.Texture.prototype),PIXI.RenderTexture.prototype.initWebGL=function(){var t=PIXI.gl;this.glFramebuffer=t.createFramebuffer(),t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),this.glFramebuffer.width=this.width,this.glFramebuffer.height=this.height,this.baseTexture=new PIXI.BaseTexture,this.baseTexture.width=this.width,this.baseTexture.height=this.height,this.baseTexture._glTexture=t.createTexture(),t.bindTexture(t.TEXTURE_2D,this.baseTexture._glTexture),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,this.width,this.height,0,t.RGBA,t.UNSIGNED_BYTE,null),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),this.baseTexture.isRender=!0,t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,this.baseTexture._glTexture,0),this.projectionMatrix=PIXI.mat4.create(),this.projectionMatrix[5]=2/this.height,this.projectionMatrix[13]=-1,this.projectionMatrix[0]=2/this.width,this.projectionMatrix[12]=-1,this.render=this.renderWebGL},PIXI.RenderTexture.prototype.initCanvas=function(){this.renderer=new PIXI.CanvasRenderer(this.width,this.height,null,0),this.baseTexture=new PIXI.BaseTexture(this.renderer.view),this.frame=new PIXI.Rectangle(0,0,this.width,this.height),this.render=this.renderCanvas},PIXI.RenderTexture.prototype.renderWebGL=function(t,e){var i=PIXI.gl;i.colorMask(!0,!0,!0,!0),i.viewport(0,0,this.width,this.height),i.bindFramebuffer(i.FRAMEBUFFER,this.glFramebuffer),e&&(i.clearColor(0,0,0,0),i.clear(i.COLOR_BUFFER_BIT));var r=t.children;t.worldTransform=PIXI.mat3.create();for(var s=0,n=r.length;n>s;s++)r[s].updateTransform();var a=t.__renderGroup;a?t==a.root?a.render(this.projectionMatrix):a.renderSpecific(t,this.projectionMatrix):(this.renderGroup||(this.renderGroup=new PIXI.WebGLRenderGroup(i)),this.renderGroup.setRenderable(t),this.renderGroup.render(this.projectionMatrix))},PIXI.RenderTexture.prototype.renderCanvas=function(t,e){var i=t.children;t.worldTransform=PIXI.mat3.create();for(var r=0,s=i.length;s>r;r++)i[r].updateTransform();e&&this.renderer.context.clearRect(0,0,this.width,this.height),this.renderer.renderDisplayObject(t),PIXI.texturesToUpdate.push(this.baseTexture)},PIXI.AssetLoader=function(t){PIXI.EventTarget.call(this),this.assetURLs=t,this.crossorigin=!1,this.loadersByType={jpg:PIXI.ImageLoader,jpeg:PIXI.ImageLoader,png:PIXI.ImageLoader,gif:PIXI.ImageLoader,json:PIXI.SpriteSheetLoader,xml:PIXI.BitmapFontLoader,fnt:PIXI.BitmapFontLoader}},PIXI.AssetLoader.constructor=PIXI.AssetLoader,PIXI.AssetLoader.prototype.load=function(){var t=this;this.loadCount=this.assetURLs.length;for(var e=0;this.assetURLs.length>e;e++){var i=this.assetURLs[e],r=i.split(".").pop().toLowerCase(),s=this.loadersByType[r];if(!s)throw Error(r+" is an unsupported file type");var n=new s(i,this.crossorigin);n.addEventListener("loaded",function(){t.onAssetLoaded()}),n.load()}},PIXI.AssetLoader.prototype.onAssetLoaded=function(){this.loadCount--,this.dispatchEvent({type:"onProgress",content:this}),this.onProgress&&this.onProgress(),0==this.loadCount&&(this.dispatchEvent({type:"onComplete",content:this}),this.onComplete&&this.onComplete())},PIXI.SpriteSheetLoader=function(t,e){PIXI.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.frames={},this.crossorigin=e},PIXI.SpriteSheetLoader.constructor=PIXI.SpriteSheetLoader,PIXI.SpriteSheetLoader.prototype.load=function(){this.ajaxRequest=new AjaxRequest;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onJSONLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/json"),this.ajaxRequest.send(null)},PIXI.SpriteSheetLoader.prototype.onJSONLoaded=function(){if(4==this.ajaxRequest.readyState&&(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))){var jsonData=eval("("+this.ajaxRequest.responseText+")"),textureUrl=this.baseUrl+jsonData.meta.image,image=new PIXI.ImageLoader(textureUrl,this.crossorigin);this.texture=image.texture.baseTexture;var scope=this;image.addEventListener("loaded",function(){scope.onLoaded()});var frameData=jsonData.frames;for(var i in frameData){var rect=frameData[i].frame;rect&&(PIXI.TextureCache[i]=new PIXI.Texture(this.texture,{x:rect.x,y:rect.y,width:rect.w,height:rect.h}),frameData[i].trimmed&&(PIXI.TextureCache[i].realSize=frameData[i].spriteSourceSize,PIXI.TextureCache[i].trim.x=0))}image.load()}},PIXI.SpriteSheetLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},PIXI.ImageLoader=function(t,e){PIXI.EventTarget.call(this),this.texture=PIXI.Texture.fromImage(t,e)},PIXI.ImageLoader.constructor=PIXI.ImageLoader,PIXI.ImageLoader.prototype.load=function(){if(this.texture.baseTexture.hasLoaded)this.onLoaded();else{var t=this;this.texture.baseTexture.addEventListener("loaded",function(){t.onLoaded()})}},PIXI.ImageLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},PIXI.BitmapFontLoader=function(t,e){PIXI.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.crossorigin=e},PIXI.BitmapFontLoader.constructor=PIXI.BitmapFontLoader,PIXI.BitmapFontLoader.prototype.load=function(){this.ajaxRequest=new XMLHttpRequest;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onXMLLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/xml"),this.ajaxRequest.send(null)},PIXI.BitmapFontLoader.prototype.onXMLLoaded=function(){if(4==this.ajaxRequest.readyState&&(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))){var t=this.baseUrl+this.ajaxRequest.responseXML.getElementsByTagName("page")[0].attributes.getNamedItem("file").nodeValue,e=new PIXI.ImageLoader(t,this.crossorigin);this.texture=e.texture.baseTexture;var i={},r=this.ajaxRequest.responseXML.getElementsByTagName("info")[0],s=this.ajaxRequest.responseXML.getElementsByTagName("common")[0];i.font=r.attributes.getNamedItem("face").nodeValue,i.size=parseInt(r.attributes.getNamedItem("size").nodeValue,10),i.lineHeight=parseInt(s.attributes.getNamedItem("lineHeight").nodeValue,10),i.chars={};for(var n=this.ajaxRequest.responseXML.getElementsByTagName("char"),a=0;n.length>a;a++){var o=parseInt(n[a].attributes.getNamedItem("id").nodeValue,10),h={x:parseInt(n[a].attributes.getNamedItem("x").nodeValue,10),y:parseInt(n[a].attributes.getNamedItem("y").nodeValue,10),width:parseInt(n[a].attributes.getNamedItem("width").nodeValue,10),height:parseInt(n[a].attributes.getNamedItem("height").nodeValue,10)};PIXI.TextureCache[o]=new PIXI.Texture(this.texture,h),i.chars[o]={xOffset:parseInt(n[a].attributes.getNamedItem("xoffset").nodeValue,10),yOffset:parseInt(n[a].attributes.getNamedItem("yoffset").nodeValue,10),xAdvance:parseInt(n[a].attributes.getNamedItem("xadvance").nodeValue,10),kerning:{}}}var u=this.ajaxRequest.responseXML.getElementsByTagName("kerning");for(a=0;u.length>a;a++){var c=parseInt(u[a].attributes.getNamedItem("first").nodeValue,10),d=parseInt(u[a].attributes.getNamedItem("second").nodeValue,10),l=parseInt(u[a].attributes.getNamedItem("amount").nodeValue,10);i.chars[d].kerning[c]=l}PIXI.BitmapText.fonts[i.font]=i;var I=this;e.addEventListener("loaded",function(){I.onLoaded()}),e.load()}},PIXI.BitmapFontLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=PIXI),exports.PIXI=PIXI):root.PIXI=PIXI}).call(this); \ No newline at end of file +(function(){function HEXtoRGB(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}function determineMatrixArrayType(){return PIXI.Matrix="undefined"!=typeof Float32Array?Float32Array:Array,PIXI.Matrix}var root=this,PIXI=PIXI||{};PIXI.Point=function(t,e){this.x=t||0,this.y=e||0},PIXI.Point.prototype.clone=function(){return new PIXI.Point(this.x,this.y)},PIXI.Point.constructor=PIXI.Point,PIXI.Rectangle=function(t,e,i,r){this.x=t||0,this.y=e||0,this.width=i||0,this.height=r||0},PIXI.Rectangle.prototype.clone=function(){return new PIXI.Rectangle(this.x,this.y,this.width,this.height)},PIXI.Rectangle.constructor=PIXI.Rectangle,PIXI.DisplayObject=function(){this.position=new PIXI.Point,this.scale=new PIXI.Point(1,1),this.pivot=new PIXI.Point(0,0),this.rotation=0,this.alpha=1,this.visible=!0,this.worldVisible=!1,this.parent=null,this.stage=null,this.hitArea=null,this.worldAlpha=1,this.color=[],this.worldTransform=PIXI.mat3.create(),this.localTransform=PIXI.mat3.create(),this.dynamic=!0,this._sr=0,this._cr=1,this.childIndex=0,this.renderable=!1,this.interactive=!1,this.buttonMode=!1},PIXI.DisplayObject.constructor=PIXI.DisplayObject,PIXI.DisplayObject.prototype.setInteractive=function(t){this.interactive=t,this.stage&&(this.stage.dirty=!0)},PIXI.DisplayObject.prototype.updateTransform=function(){this.rotation!=this.rotationCache&&(this.rotationCache=this.rotation,this._sr=Math.sin(this.rotation),this._cr=Math.cos(this.rotation));var t=this.localTransform,e=this.parent.worldTransform,i=this.worldTransform;t[0]=this._cr*this.scale.x,t[1]=-this._sr*this.scale.y,t[3]=this._sr*this.scale.x,t[4]=this._cr*this.scale.y;var r=this.pivot.x,s=this.pivot.y;t[2]=this.position.x-t[0]*r-s*t[1],t[5]=this.position.y-t[4]*s-r*t[3];var n=t[0],a=t[1],o=t[2],h=t[3],u=t[4],d=t[5],c=e[0],l=e[1],I=e[2],p=e[3],f=e[4],x=e[5];i[0]=c*n+l*h,i[1]=c*a+l*u,i[2]=c*o+l*d+I,i[3]=p*n+f*h,i[4]=p*a+f*u,i[5]=p*o+f*d+x,this.worldAlpha=this.alpha*this.parent.worldAlpha},PIXI.DisplayObjectContainer=function(){PIXI.DisplayObject.call(this),this.children=[],this.renderable=!1},PIXI.DisplayObjectContainer.constructor=PIXI.DisplayObjectContainer,PIXI.DisplayObjectContainer.prototype=Object.create(PIXI.DisplayObject.prototype),PIXI.DisplayObjectContainer.prototype.addChild=function(t){void 0!=t.parent&&t.parent.removeChild(t),t.parent=this,t.childIndex=this.children.length,this.children.push(t),this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},PIXI.DisplayObjectContainer.prototype.addChildAt=function(t,e){if(!(e>=0&&this.children.length>=e))throw Error(t+" The index "+e+" supplied is out of bounds "+this.children.length);void 0!=t.parent&&t.parent.removeChild(t),e==this.children.length?this.children.push(t):this.children.splice(e,0,t),t.parent=this,t.childIndex=e;for(var i=this.children.length,r=e;i>r;r++)this.children[r].childIndex=r;this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},PIXI.DisplayObjectContainer.prototype.swapChildren=function(t,e){var i=this.children.indexOf(t),r=this.children.indexOf(e);if(-1===i||-1===r)throw Error(t+" Both the supplied DisplayObjects must be a child of the caller "+this);this.stage&&(this.stage.__removeChild(t),this.stage.__removeChild(e),this.stage.__addChild(t),this.stage.__addChild(e)),t.childIndex=r,e.childIndex=i,this.children[i]=e,this.children[r]=t},PIXI.DisplayObjectContainer.prototype.getChildAt=function(t){if(t>=0&&this.children.length>t)return this.children[t];throw Error(child+" Both the supplied DisplayObjects must be a child of the caller "+this)},PIXI.DisplayObjectContainer.prototype.removeChild=function(t){var e=this.children.indexOf(t);if(-1===e)throw Error(t+" The supplied DisplayObject must be a child of the caller "+this);this.stage&&this.stage.__removeChild(t),t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.parent=void 0,this.children.splice(e,1);for(var i=e,r=this.children.length;r>i;i++)this.children[i].childIndex-=1},PIXI.DisplayObjectContainer.prototype.updateTransform=function(){if(this.visible){PIXI.DisplayObject.prototype.updateTransform.call(this);for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform()}},PIXI.blendModes={},PIXI.blendModes.NORMAL=0,PIXI.blendModes.SCREEN=1,PIXI.Sprite=function(t){PIXI.DisplayObjectContainer.call(this),this.anchor=new PIXI.Point,this.texture=t,this.blendMode=PIXI.blendModes.NORMAL,this._width=0,this._height=0,t.baseTexture.hasLoaded?this.updateFrame=!0:(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},PIXI.Sprite.constructor=PIXI.Sprite,PIXI.Sprite.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),Object.defineProperty(PIXI.Sprite.prototype,"width",{get:function(){return this.scale.x*this.texture.frame.width},set:function(t){this.scale.x=t/this.texture.frame.width,this._width=t}}),Object.defineProperty(PIXI.Sprite.prototype,"height",{get:function(){return this.scale.y*this.texture.frame.height},set:function(t){this.scale.y=t/this.texture.frame.height,this._height=t}}),PIXI.Sprite.prototype.setTexture=function(t){this.texture.baseTexture!=t.baseTexture&&(this.textureChange=!0),this.texture=t,this.updateFrame=!0},PIXI.Sprite.prototype.onTextureUpdate=function(){this._width&&(this.scale.x=this._width/this.texture.frame.width),this._height&&(this.scale.y=this._height/this.texture.frame.height),this.updateFrame=!0},PIXI.Sprite.fromFrame=function(t){var e=PIXI.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache"+this);return new PIXI.Sprite(e)},PIXI.Sprite.fromImage=function(t){var e=PIXI.Texture.fromImage(t);return new PIXI.Sprite(e)},PIXI.MovieClip=function(t){PIXI.Sprite.call(this,t[0]),this.textures=t,this.currentFrame=0,this.animationSpeed=1,this.loop=!0,this.onComplete=null,this.playing},PIXI.MovieClip.constructor=PIXI.MovieClip,PIXI.MovieClip.prototype=Object.create(PIXI.Sprite.prototype),PIXI.MovieClip.prototype.stop=function(){this.playing=!1},PIXI.MovieClip.prototype.play=function(){this.playing=!0},PIXI.MovieClip.prototype.gotoAndStop=function(t){this.playing=!1,this.currentFrame=t;var e=0|this.currentFrame+.5;this.setTexture(this.textures[e%this.textures.length])},PIXI.MovieClip.prototype.gotoAndPlay=function(t){this.currentFrame=t,this.playing=!0},PIXI.MovieClip.prototype.updateTransform=function(){if(PIXI.Sprite.prototype.updateTransform.call(this),this.playing){this.currentFrame+=this.animationSpeed;var t=0|this.currentFrame+.5;this.loop||this.textures.length>t?this.setTexture(this.textures[t%this.textures.length]):t>=this.textures.length&&(this.gotoAndStop(this.textures.length-1),this.onComplete&&this.onComplete())}},PIXI.Text=function(t,e){this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"),PIXI.Sprite.call(this,PIXI.Texture.fromCanvas(this.canvas)),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},PIXI.Text.constructor=PIXI.Text,PIXI.Text.prototype=Object.create(PIXI.Sprite.prototype),PIXI.Text.prototype.setStyle=function(t){t=t||{},t.font=t.font||"bold 20pt Arial",t.fill=t.fill||"black",t.align=t.align||"left",t.strokeThickness=t.strokeThickness||0,this.style=t,this.dirty=!0},PIXI.Sprite.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},PIXI.Text.prototype.updateText=function(){this.context.font=this.style.font;for(var t=this.text.split(/(?:\r\n|\r|\n)/),e=[],i=0,r=0;t.length>r;r++){var s=this.context.measureText(t[r]).width;e[r]=s,i=Math.max(i,s)}this.canvas.width=i+this.style.strokeThickness;var n=this.determineFontHeight("font: "+this.style.font+";")+this.style.strokeThickness;for(this.canvas.height=n*t.length,this.context.fillStyle=this.style.fill,this.context.font=this.style.font,this.context.strokeStyle=this.style.stroke,this.context.lineWidth=this.style.strokeThickness,this.context.textBaseline="top",r=0;t.length>r;r++){var a=new PIXI.Point(this.style.strokeThickness/2,this.style.strokeThickness/2+r*n);"right"==this.style.align?a.x+=i-e[r]:"center"==this.style.align&&(a.x+=(i-e[r])/2),this.style.stroke&&this.style.strokeThickness&&this.context.strokeText(t[r],a.x,a.y),this.style.fill&&this.context.fillText(t[r],a.x,a.y)}this.updateTexture()},PIXI.Text.prototype.updateTexture=function(){this.texture.baseTexture.width=this.canvas.width,this.texture.baseTexture.height=this.canvas.height,this.texture.frame.width=this.canvas.width,this.texture.frame.height=this.canvas.height,this._width=this.canvas.width,this._height=this.canvas.height,PIXI.texturesToUpdate.push(this.texture.baseTexture)},PIXI.Text.prototype.updateTransform=function(){this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype.updateTransform.call(this)},PIXI.Text.prototype.determineFontHeight=function(t){var e=PIXI.Text.heightCache[t];if(!e){var i=document.getElementsByTagName("body")[0],r=document.createElement("div"),s=document.createTextNode("M");r.appendChild(s),r.setAttribute("style",t),i.appendChild(r),e=r.offsetHeight,PIXI.Text.heightCache[t]=e,i.removeChild(r)}return e},PIXI.Text.prototype.destroy=function(t){t&&this.texture.destroy()},PIXI.Text.heightCache={},PIXI.BitmapText=function(t,e){PIXI.DisplayObjectContainer.call(this),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},PIXI.BitmapText.constructor=PIXI.BitmapText,PIXI.BitmapText.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.BitmapText.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},PIXI.BitmapText.prototype.setStyle=function(t){t=t||{},t.align=t.align||"left",this.style=t;var e=t.font.split(" ");this.fontName=e[e.length-1],this.fontSize=e.length>=2?parseInt(e[e.length-2],10):PIXI.BitmapText.fonts[this.fontName].size,this.dirty=!0},PIXI.BitmapText.prototype.updateText=function(){for(var t=PIXI.BitmapText.fonts[this.fontName],e=new PIXI.Point,i=null,r=[],s=0,n=[],a=0,o=this.fontSize/t.size,h=0;this.text.length>h;h++){var u=this.text.charCodeAt(h);if(/(?:\r\n|\r|\n)/.test(this.text.charAt(h)))n.push(e.x),s=Math.max(s,e.x),a++,e.x=0,e.y+=t.lineHeight,i=null;else{var d=t.chars[u];d&&(i&&d[i]&&(e.x+=d.kerning[i]),r.push({line:a,charCode:u,position:new PIXI.Point(e.x+d.xOffset,e.y+d.yOffset)}),e.x+=d.xAdvance,i=u)}}n.push(e.x),s=Math.max(s,e.x);var c=[];for(h=0;a>=h;h++){var l=0;"right"==this.style.align?l=s-n[h]:"center"==this.style.align&&(l=(s-n[h])/2),c.push(l)}for(h=0;r.length>h;h++){var I=PIXI.Sprite.fromFrame(r[h].charCode);I.position.x=(r[h].position.x+c[r[h].line])*o,I.position.y=r[h].position.y*o,I.scale.x=I.scale.y=o,this.addChild(I)}this.width=e.x*o,this.height=(e.y+t.lineHeight)*o},PIXI.BitmapText.prototype.updateTransform=function(){if(this.dirty){for(;this.children.length>0;)this.removeChild(this.getChildAt(0));this.updateText(),this.dirty=!1}PIXI.DisplayObjectContainer.prototype.updateTransform.call(this)},PIXI.BitmapText.fonts={},PIXI.InteractionManager=function(t){this.stage=t,this.tempPoint=new PIXI.Point,this.mouseoverEnabled=!0,this.mouse=new PIXI.InteractionData,this.touchs={},this.pool=[],this.interactiveItems=[],this.last=0},PIXI.InteractionManager.constructor=PIXI.InteractionManager,PIXI.InteractionManager.prototype.collectInteractiveSprite=function(t,e){for(var i=t.children,r=i.length,s=r-1;s>=0;s--){var n=i[s];n.interactive?(e.interactiveChildren=!0,this.interactiveItems.push(n),n.children.length>0&&this.collectInteractiveSprite(n,n)):(n.__iParent=null,n.children.length>0&&this.collectInteractiveSprite(n,e))}},PIXI.InteractionManager.prototype.setTarget=function(t){window.navigator.msPointerEnabled&&(t.view.style["-ms-content-zooming"]="none",t.view.style["-ms-touch-action"]="none"),this.target=t,t.view.addEventListener("mousemove",this.onMouseMove.bind(this),!0),t.view.addEventListener("mousedown",this.onMouseDown.bind(this),!0),document.body.addEventListener("mouseup",this.onMouseUp.bind(this),!0),t.view.addEventListener("mouseout",this.onMouseUp.bind(this),!0),t.view.addEventListener("touchstart",this.onTouchStart.bind(this),!0),t.view.addEventListener("touchend",this.onTouchEnd.bind(this),!0),t.view.addEventListener("touchmove",this.onTouchMove.bind(this),!0)},PIXI.InteractionManager.prototype.update=function(){if(this.target){var t=Date.now(),e=t-this.last;if(e=30*e/1e3,!(1>e)){if(this.last=t,this.dirty){this.dirty=!1,this.interactiveItems.length;for(var i=0;this.interactiveItems.length>i;i++)this.interactiveItems[i].interactiveChildren=!1;this.interactiveItems=[],this.stage.interactive&&this.interactiveItems.push(this.stage),this.collectInteractiveSprite(this.stage,this.stage)}var r=this.interactiveItems.length;this.target.view.style.cursor="default";for(var i=0;r>i;i++){var s=this.interactiveItems[i];s.visible&&(s.mouseover||s.mouseout||s.buttonMode)&&(s.__hit=this.hitTest(s,this.mouse),s.__hit?(s.buttonMode&&(this.target.view.style.cursor="pointer"),s.__isOver||(s.mouseover&&s.mouseover(this.mouse),s.__isOver=!0)):s.__isOver&&(s.mouseout&&s.mouseout(this.mouse),s.__isOver=!1))}}}},PIXI.InteractionManager.prototype.onMouseMove=function(t){t.preventDefault();var e=this.target.view.getBoundingClientRect();this.mouse.global.x=(t.clientX-e.left)*(this.target.width/e.width),this.mouse.global.y=(t.clientY-e.top)*(this.target.height/e.height);var i=this.interactiveItems.length;this.mouse.global;for(var r=0;i>r;r++){var s=this.interactiveItems[r];s.mousemove&&s.mousemove(this.mouse)}},PIXI.InteractionManager.prototype.onMouseDown=function(t){t.preventDefault();var e=this.interactiveItems.length;this.mouse.global,this.stage;for(var i=0;e>i;i++){var r=this.interactiveItems[i];if((r.mousedown||r.click)&&(r.__mouseIsDown=!0,r.__hit=this.hitTest(r,this.mouse),r.__hit&&(r.mousedown&&r.mousedown(this.mouse),r.__isDown=!0,!r.interactiveChildren)))break}},PIXI.InteractionManager.prototype.onMouseUp=function(t){t.preventDefault(),this.mouse.global;for(var e=this.interactiveItems.length,i=!1,r=0;e>r;r++){var s=this.interactiveItems[r];(s.mouseup||s.mouseupoutside||s.click)&&(s.__hit=this.hitTest(s,this.mouse),s.__hit&&!i?(s.mouseup&&s.mouseup(this.mouse),s.__isDown&&s.click&&s.click(this.mouse),s.interactiveChildren||(i=!0)):s.__isDown&&s.mouseupoutside&&s.mouseupoutside(this.mouse),s.__isDown=!1)}},PIXI.InteractionManager.prototype.hitTest=function(t,e){var i=e.global;if(!t.visible)return!1;if(t instanceof PIXI.Sprite){var r=t.worldTransform,s=r[0],n=r[1],a=r[2],o=r[3],h=r[4],u=r[5],d=1/(s*h+n*-o),c=h*d*i.x+-n*d*i.y+(u*n-a*h)*d,l=s*d*i.y+-o*d*i.x+(-u*s+a*o)*d,I=t.texture.frame.width,p=t.texture.frame.height,f=-I*t.anchor.x;if(c>f&&f+I>c){var x=-p*t.anchor.y;if(l>x&&x+p>l)return e.target=t,!0}}else if(t.hitArea){var r=t.worldTransform,v=t.hitArea,s=r[0],n=r[1],a=r[2],o=r[3],h=r[4],u=r[5],d=1/(s*h+n*-o),c=h*d*i.x+-n*d*i.y+(u*n-a*h)*d,l=s*d*i.y+-o*d*i.x+(-u*s+a*o)*d,f=v.x;if(c>f&&f+v.width>c){var x=v.y;if(l>x&&x+v.height>l)return!0}}for(var P=t.children.length,g=0;P>g;g++){var b=t.children[g],X=this.hitTest(b,e);if(X)return!0}return!1},PIXI.InteractionManager.prototype.onTouchMove=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.touchs[s.identifier];n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height)}for(var a=this.interactiveItems.length,r=0;a>r;r++){var o=this.interactiveItems[r];o.touchmove&&o.touchmove(n)}},PIXI.InteractionManager.prototype.onTouchStart=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.pool.pop();n||(n=new PIXI.InteractionData),this.touchs[s.identifier]=n,n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height);for(var a=this.interactiveItems.length,o=0;a>o;o++){var h=this.interactiveItems[o];if((h.touchstart||h.tap)&&(h.__hit=this.hitTest(h,n),h.__hit&&(h.touchstart&&h.touchstart(n),h.__isDown=!0,h.__touchData=n,!h.interactiveChildren)))break}}},PIXI.InteractionManager.prototype.onTouchEnd=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.touchs[s.identifier],a=!1;n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var u=this.interactiveItems[h],d=u.__touchData;u.__hit=this.hitTest(u,n),d==n&&((u.touchend||u.tap)&&(u.__hit&&!a?(u.touchend&&u.touchend(n),u.__isDown&&u.tap&&u.tap(n),u.interactiveChildren||(a=!0)):u.__isDown&&u.touchendoutside&&u.touchendoutside(n),u.__isDown=!1),u.__touchData=null)}this.pool.push(n),this.touchs[s.identifier]=null}},PIXI.InteractionData=function(){this.global=new PIXI.Point,this.local=new PIXI.Point,this.target},PIXI.InteractionData.prototype.getLocalPosition=function(t){var e=t.worldTransform,i=this.global,r=e[0],s=e[1],n=e[2],a=e[3],o=e[4],h=e[5],u=1/(r*o+s*-a);return new PIXI.Point(o*u*i.x+-s*u*i.y+(h*s-n*o)*u,r*u*i.y+-a*u*i.x+(-h*r+n*a)*u)},PIXI.InteractionData.constructor=PIXI.InteractionData,PIXI.Stage=function(t,e){PIXI.DisplayObjectContainer.call(this),this.worldTransform=PIXI.mat3.create(),this.__childrenAdded=[],this.__childrenRemoved=[],this.childIndex=0,this.stage=this,this.stage.hitArea=new PIXI.Rectangle(0,0,1e5,1e5),this.interactive=!!e,this.interactionManager=new PIXI.InteractionManager(this),this.setBackgroundColor(t),this.worldVisible=!0},PIXI.Stage.constructor=PIXI.Stage,PIXI.Stage.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Stage.prototype.updateTransform=function(){this.worldAlpha=1;for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform();this.dirty&&(this.dirty=!1,this.interactionManager.dirty=!0),this.interactive&&this.interactionManager.update()},PIXI.Stage.prototype.setBackgroundColor=function(t){this.backgroundColor=t||0,this.backgroundColorSplit=HEXtoRGB(this.backgroundColor),this.backgroundColorString="#"+this.backgroundColor.toString(16)},PIXI.Stage.prototype.getMousePosition=function(){return this.interactionManager.mouse.global},PIXI.Stage.prototype.__addChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=this,t.children)for(var e=0;t.children.length>e;e++)this.__addChild(t.children[e])},PIXI.Stage.prototype.__removeChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=void 0,t.children)for(var e=0,i=t.children.length;i>e;e++)this.__removeChild(t.children[e])},window.requestAnimFrame=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(t){window.setTimeout(t,1e3/60)}}(),"function"!=typeof Function.prototype.bind&&(Function.prototype.bind=function(){var t=Array.prototype.slice;return function(e){function i(){var n=s.concat(t.call(arguments));r.apply(this instanceof i?this:e,n)}var r=this,s=t.call(arguments,1);if("function"!=typeof r)throw new TypeError;return i.prototype=function n(t){return t&&(n.prototype=t),this instanceof n?void 0:new n}(r.prototype),i}}());var AjaxRequest=function(){var t=["Msxml2.XMLHTTP","Microsoft.XMLHTTP"];if(!window.ActiveXObject)return window.XMLHttpRequest?new XMLHttpRequest:!1;for(var e=0;t.length>e;e++)try{return new ActiveXObject(t[e])}catch(i){}};PIXI.EventTarget=function(){var t={};this.addEventListener=this.on=function(e,i){void 0===t[e]&&(t[e]=[]),-1===t[e].indexOf(i)&&t[e].push(i)},this.dispatchEvent=this.emit=function(e){for(var i in t[e.type])t[e.type][i](e)},this.removeEventListener=this.off=function(e,i){var r=t[e].indexOf(i);-1!==r&&t[e].splice(r,1)}},determineMatrixArrayType(),PIXI.mat3={},PIXI.mat3.create=function(){var t=new PIXI.Matrix(9);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},PIXI.mat4={},PIXI.mat4.create=function(){var t=new PIXI.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},PIXI.mat3.multiply=function(t,e,i){i||(i=t);var r=t[0],s=t[1],n=t[2],a=t[3],o=t[4],h=t[5],u=t[6],d=t[7],c=t[8],l=e[0],I=e[1],p=e[2],f=e[3],x=e[4],v=e[5],P=e[6],g=e[7],b=e[8];return i[0]=l*r+I*a+p*u,i[1]=l*s+I*o+p*d,i[2]=l*n+I*h+p*c,i[3]=f*r+x*a+v*u,i[4]=f*s+x*o+v*d,i[5]=f*n+x*h+v*c,i[6]=P*r+g*a+b*u,i[7]=P*s+g*o+b*d,i[8]=P*n+g*h+b*c,i},PIXI.mat3.toMat4=function(t,e){return e||(e=PIXI.mat4.create()),e[15]=1,e[14]=0,e[13]=0,e[12]=0,e[11]=0,e[10]=t[8],e[9]=t[7],e[8]=t[6],e[7]=0,e[6]=t[5],e[5]=t[4],e[4]=t[3],e[3]=0,e[2]=t[2],e[1]=t[1],e[0]=t[0],e},PIXI.mat4.create=function(){var t=new PIXI.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},PIXI.mat4.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],s=t[3],n=t[6],a=t[7],o=t[11];return t[1]=t[4],t[2]=t[8],t[3]=t[12],t[4]=i,t[6]=t[9],t[7]=t[13],t[8]=r,t[9]=n,t[11]=t[14],t[12]=s,t[13]=a,t[14]=o,t}return e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=t[1],e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=t[2],e[9]=t[6],e[10]=t[10],e[11]=t[14],e[12]=t[3],e[13]=t[7],e[14]=t[11],e[15]=t[15],e},PIXI.mat4.multiply=function(t,e,i){i||(i=t);var r=t[0],s=t[1],n=t[2],a=t[3],o=t[4],h=t[5],u=t[6],d=t[7],c=t[8],l=t[9],I=t[10],p=t[11],f=t[12],x=t[13],v=t[14],P=t[15],g=e[0],b=e[1],X=e[2],m=e[3];return i[0]=g*r+b*o+X*c+m*f,i[1]=g*s+b*h+X*l+m*x,i[2]=g*n+b*u+X*I+m*v,i[3]=g*a+b*d+X*p+m*P,g=e[4],b=e[5],X=e[6],m=e[7],i[4]=g*r+b*o+X*c+m*f,i[5]=g*s+b*h+X*l+m*x,i[6]=g*n+b*u+X*I+m*v,i[7]=g*a+b*d+X*p+m*P,g=e[8],b=e[9],X=e[10],m=e[11],i[8]=g*r+b*o+X*c+m*f,i[9]=g*s+b*h+X*l+m*x,i[10]=g*n+b*u+X*I+m*v,i[11]=g*a+b*d+X*p+m*P,g=e[12],b=e[13],X=e[14],m=e[15],i[12]=g*r+b*o+X*c+m*f,i[13]=g*s+b*h+X*l+m*x,i[14]=g*n+b*u+X*I+m*v,i[15]=g*a+b*d+X*p+m*P,i},PIXI.autoDetectRenderer=function(t,e,i,r){t||(t=800),e||(e=600);var s=function(){try{return!!window.WebGLRenderingContext&&!!document.createElement("canvas").getContext("experimental-webgl")}catch(t){return!1}}();return s?new PIXI.WebGLRenderer(t,e,i,r):new PIXI.CanvasRenderer(t,e,i,r)},PIXI.shaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * vColor;","}"],PIXI.shaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform mat4 uMVMatrix;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","gl_Position = uMVMatrix * vec4(aVertexPosition, 1.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],PIXI.CompileVertexShader=function(t,e){return PIXI._CompileShader(t,e,t.VERTEX_SHADER)},PIXI.CompileFragmentShader=function(t,e){return PIXI._CompileShader(t,e,t.FRAGMENT_SHADER)},PIXI._CompileShader=function(t,e,i){var r=e.join("\n"),s=t.createShader(i);return t.shaderSource(s,r),t.compileShader(s),t.getShaderParameter(s,t.COMPILE_STATUS)?s:(alert(t.getShaderInfoLog(s)),null)},PIXI._defaultFrame=new PIXI.Rectangle(0,0,1,1),PIXI.gl,PIXI.WebGLRenderer=function(t,e,i,r){this.transparent=!!r,this.width=t||800,this.height=e||600,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height;var s=this;this.view.addEventListener("webglcontextlost",function(t){s.handleContextLost(t)},!1),this.view.addEventListener("webglcontextrestored",function(t){s.handleContextRestored(t)},!1),this.batchs=[];try{PIXI.gl=this.gl=this.view.getContext("experimental-webgl",{alpha:this.transparent,antialias:!1,premultipliedAlpha:!0})}catch(n){throw Error(" This browser does not support webGL. Try using the canvas renderer"+this)}this.initShaders();var a=this.gl;PIXI.WebGLRenderer.gl=a,this.batch=new PIXI.WebGLBatch(a),a.disable(a.DEPTH_TEST),a.disable(a.CULL_FACE),a.enable(a.BLEND),a.colorMask(!0,!0,!0,this.transparent),this.projectionMatrix=PIXI.mat4.create(),this.resize(this.width,this.height),this.contextLost=!1,this.stageRenderGroup=new PIXI.WebGLRenderGroup(this.gl)},PIXI.WebGLRenderer.constructor=PIXI.WebGLRenderer,PIXI.WebGLRenderer.getBatch=function(){return 0==PIXI._batchs.length?new PIXI.WebGLBatch(PIXI.WebGLRenderer.gl):PIXI._batchs.pop()},PIXI.WebGLRenderer.returnBatch=function(t){t.clean(),PIXI._batchs.push(t)},PIXI.WebGLRenderer.prototype.initShaders=function(){var t=this.gl,e=PIXI.CompileFragmentShader(t,PIXI.shaderFragmentSrc),i=PIXI.CompileVertexShader(t,PIXI.shaderVertexSrc);PIXI.shaderProgram=t.createProgram();var r=PIXI.shaderProgram;t.attachShader(r,i),t.attachShader(r,e),t.linkProgram(r),t.getProgramParameter(r,t.LINK_STATUS)||alert("Could not initialise shaders"),t.useProgram(r),r.vertexPositionAttribute=t.getAttribLocation(r,"aVertexPosition"),t.enableVertexAttribArray(r.vertexPositionAttribute),r.textureCoordAttribute=t.getAttribLocation(r,"aTextureCoord"),t.enableVertexAttribArray(r.textureCoordAttribute),r.colorAttribute=t.getAttribLocation(r,"aColor"),t.enableVertexAttribArray(r.colorAttribute),r.mvMatrixUniform=t.getUniformLocation(r,"uMVMatrix"),r.samplerUniform=t.getUniformLocation(r,"uSampler")},PIXI.WebGLRenderer.prototype.render=function(t){if(!this.contextLost){this.__stage!==t&&(this.__stage=t,this.stageRenderGroup.setRenderable(t)),PIXI.WebGLRenderer.updateTextures(),t.updateTransform();var e=this.gl;if(e.colorMask(!0,!0,!0,this.transparent),e.viewport(0,0,this.width,this.height),e.bindFramebuffer(e.FRAMEBUFFER,null),e.clearColor(t.backgroundColorSplit[0],t.backgroundColorSplit[1],t.backgroundColorSplit[2],this.transparent),e.clear(e.COLOR_BUFFER_BIT),this.stageRenderGroup.backgroundColor=t.backgroundColorSplit,this.stageRenderGroup.render(this.projectionMatrix),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),PIXI.Texture.frameUpdates.length>0){for(var i=0;PIXI.Texture.frameUpdates.length>i;i++)PIXI.Texture.frameUpdates[i].updateFrame=!1;PIXI.Texture.frameUpdates=[]}}},PIXI.WebGLRenderer.updateTextures=function(){for(var t=0;PIXI.texturesToUpdate.length>t;t++)this.updateTexture(PIXI.texturesToUpdate[t]);for(var t=0;PIXI.texturesToDestroy.length>t;t++)this.destroyTexture(PIXI.texturesToDestroy[t]);PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[]},PIXI.WebGLRenderer.updateTexture=function(t){var e=PIXI.gl;t._glTexture||(t._glTexture=e.createTexture()),t.hasLoaded&&(e.bindTexture(e.TEXTURE_2D,t._glTexture),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t.source),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),t._powerOf2?(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT)):(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)),e.bindTexture(e.TEXTURE_2D,null))},PIXI.WebGLRenderer.prototype.destroyTexture=function(t){var e=this.gl;t._glTexture&&(t._glTexture=e.createTexture(),e.deleteTexture(e.TEXTURE_2D,t._glTexture))},PIXI.WebGLRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e,this.gl.viewport(0,0,this.width,this.height);var i=this.projectionMatrix;i[0]=2/this.width,i[5]=-2/this.height,i[12]=-1,i[13]=1},PIXI.WebGLRenderer.prototype.handleContextLost=function(t){t.preventDefault(),this.contextLost=!0},PIXI.WebGLRenderer.prototype.handleContextRestored=function(){this.gl=this.view.getContext("experimental-webgl",{alpha:!0}),this.initShaders();for(var t=0;PIXI.TextureCache.length>t;t++)this.updateTexture(PIXI.TextureCache[t]);for(var t=0;this.batchs.length>t;t++)this.batchs[t].restoreLostContext(this.gl),this.batchs[t].dirty=!0;PIXI._restoreBatchs(this.gl),this.contextLost=!1},PIXI._batchs=[],PIXI._getBatch=function(t){return 0==PIXI._batchs.length?new PIXI.WebGLBatch(t):PIXI._batchs.pop()},PIXI._returnBatch=function(t){t.clean(),PIXI._batchs.push(t)},PIXI._restoreBatchs=function(t){for(var e=0;PIXI._batchs.length>e;e++)PIXI._batchs[e].restoreLostContext(t)},PIXI.WebGLBatch=function(t){this.gl=t,this.size=0,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer(),this.blendMode=PIXI.blendModes.NORMAL,this.dynamicSize=1},PIXI.WebGLBatch.constructor=PIXI.WebGLBatch,PIXI.WebGLBatch.prototype.clean=function(){this.verticies=[],this.uvs=[],this.indices=[],this.colors=[],this.dynamicSize=1,this.texture=null,this.last=null,this.size=0,this.head,this.tail},PIXI.WebGLBatch.prototype.restoreLostContext=function(t){this.gl=t,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer()},PIXI.WebGLBatch.prototype.init=function(t){t.batch=this,this.dirty=!0,this.blendMode=t.blendMode,this.texture=t.texture.baseTexture,this.head=t,this.tail=t,this.size=1,this.growBatch()},PIXI.WebGLBatch.prototype.insertBefore=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__prev;e.__prev=t,t.__next=e,i?(t.__prev=i,i.__next=t):this.head=t},PIXI.WebGLBatch.prototype.insertAfter=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__next;e.__next=t,t.__prev=e,i?(t.__next=i,i.__prev=t):this.tail=t},PIXI.WebGLBatch.prototype.remove=function(t){return this.size--,0==this.size?(t.batch=null,t.__prev=null,t.__next=null,void 0):(t.__prev?t.__prev.__next=t.__next:(this.head=t.__next,this.head.__prev=null),t.__next?t.__next.__prev=t.__prev:(this.tail=t.__prev,this.tail.__next=null),t.batch=null,t.__next=null,t.__prev=null,this.dirty=!0,void 0)},PIXI.WebGLBatch.prototype.split=function(t){this.dirty=!0;var e=new PIXI.WebGLBatch(this.gl);e.init(t),e.tail=this.tail,this.tail=t.__prev,this.tail.__next=null,t.__prev=null;for(var i=0;t;)i++,t.batch=e,t=t.__next;return e.size=i,this.size-=i,e},PIXI.WebGLBatch.prototype.merge=function(t){this.dirty=!0,this.tail.__next=t.head,t.head.__prev=this.tail,this.size+=t.size,this.tail=t.tail;for(var e=t.head;e;)e.batch=this,e=e.__next},PIXI.WebGLBatch.prototype.growBatch=function(){var t=this.gl;this.dynamicSize=1==this.size?1:1.5*this.size,this.verticies=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.vertexBuffer),t.bufferData(t.ARRAY_BUFFER,this.verticies,t.DYNAMIC_DRAW),this.uvs=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.uvBuffer),t.bufferData(t.ARRAY_BUFFER,this.uvs,t.DYNAMIC_DRAW),this.dirtyUVS=!0,this.colors=new Float32Array(4*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.colorBuffer),t.bufferData(t.ARRAY_BUFFER,this.colors,t.DYNAMIC_DRAW),this.dirtyColors=!0,this.indices=new Uint16Array(6*this.dynamicSize);for(var e=this.indices.length/6,i=0;e>i;i++){var r=6*i,s=4*i;this.indices[r+0]=s+0,this.indices[r+1]=s+1,this.indices[r+2]=s+2,this.indices[r+3]=s+0,this.indices[r+4]=s+2,this.indices[r+5]=s+3}t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,this.indexBuffer),t.bufferData(t.ELEMENT_ARRAY_BUFFER,this.indices,t.STATIC_DRAW)},PIXI.WebGLBatch.prototype.refresh=function(){this.gl,this.dynamicSizer;r++)i=this.batchs[r],i instanceof PIXI.WebGLBatch?this.batchs[r].render():i instanceof PIXI.TilingSprite?i.visible&&this.renderTilingSprite(i,t):i instanceof PIXI.Strip&&i.visible&&this.renderStrip(i,t)},PIXI.WebGLRenderGroup.prototype.renderSpecific=function(t,e){PIXI.WebGLRenderer.updateTextures();var i=this.gl;this.checkVisibility(t,t.visible),i.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform,!1,e);var r,s,n,a,o=t.renderable?t:this.getNextRenderable(t),h=o.batch;if(o instanceof PIXI.Sprite){h=o.batch;var u=h.head;if(u==o)r=0;else for(r=1;u.__next!=o;)r++,u=u.__next}else h=o;for(var d,c=t,l=t;l.children.length>0;)l=l.children[l.children.length-1],l.renderable&&(c=l);if(c instanceof PIXI.Sprite){d=c.batch;var u=d.head;if(u==c)n=0;else for(n=1;u.__next!=c;)n++,u=u.__next}else d=c;if(h==d)return h instanceof PIXI.WebGLBatch?h.render(r,n+1):h instanceof PIXI.TilingSprite?h.visible&&this.renderTilingSprite(h,e):h instanceof PIXI.Strip?h.visible&&this.renderStrip(h,e):h instanceof PIXI.CustomRenderable&&h.visible&&h.renderWebGL(this,e),void 0;s=this.batchs.indexOf(h),a=this.batchs.indexOf(d),h instanceof PIXI.WebGLBatch?h.render(r):h instanceof PIXI.TilingSprite?h.visible&&this.renderTilingSprite(h,e):h instanceof PIXI.Strip?h.visible&&this.renderStrip(h,e):h instanceof PIXI.CustomRenderable&&h.visible&&h.renderWebGL(this,e);for(var I=s+1;a>I;I++)renderable=this.batchs[I],renderable instanceof PIXI.WebGLBatch?this.batchs[I].render():renderable instanceof PIXI.TilingSprite?renderable.visible&&this.renderTilingSprite(renderable,e):renderable instanceof PIXI.Strip?renderable.visible&&this.renderStrip(renderable,e):renderable instanceof PIXI.CustomRenderable&&renderable.visible&&renderable.renderWebGL(this,e);d instanceof PIXI.WebGLBatch?d.render(0,n+1):d instanceof PIXI.TilingSprite?d.visible&&this.renderTilingSprite(d):d instanceof PIXI.Strip?d.visible&&this.renderStrip(d):d instanceof PIXI.CustomRenderable&&d.visible&&d.renderWebGL(this,e)},PIXI.WebGLRenderGroup.prototype.checkVisibility=function(t,e){for(var i=t.children,r=0;i.length>r;r++){var s=i[r];s.worldVisible=s.visible&&e,s.textureChange&&(s.textureChange=!1,s.worldVisible&&(this.removeDisplayObject(s),this.addDisplayObject(s))),s.children.length>0&&this.checkVisibility(s,s.worldVisible)}},PIXI.WebGLRenderGroup.prototype.addDisplayObject=function(t){if(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.__renderGroup=this,t.renderable){var e=this.getPreviousRenderable(t),i=this.getNextRenderable(t);if(t instanceof PIXI.Sprite){var r,s;if(e instanceof PIXI.Sprite){if(r=e.batch,r&&r.texture==t.texture.baseTexture&&r.blendMode==t.blendMode)return r.insertAfter(t,e),void 0}else r=e;if(i)if(i instanceof PIXI.Sprite){if(s=i.batch){if(s.texture==t.texture.baseTexture&&s.blendMode==t.blendMode)return s.insertBefore(t,i),void 0;if(s==r){var n=r.split(i),a=PIXI.WebGLRenderer.getBatch(),o=this.batchs.indexOf(r);return a.init(t),this.batchs.splice(o+1,0,a,n),void 0}}}else s=i;var a=PIXI.WebGLRenderer.getBatch();if(a.init(t),r){var o=this.batchs.indexOf(r);this.batchs.splice(o+1,0,a)}else this.batchs.push(a)}else t instanceof PIXI.TilingSprite?(this.initTilingSprite(t),this.batchs.push(t)):t instanceof PIXI.Strip&&(this.initStrip(t),this.batchs.push(t));this.batchUpdate=!0}},PIXI.WebGLRenderGroup.prototype.addDisplayObjectAndChildren=function(t){this.addDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.addDisplayObjectAndChildren(e[i])},PIXI.WebGLRenderGroup.prototype.removeDisplayObject=function(t){if(t.__renderGroup=null,t.renderable){var e;if(t instanceof PIXI.Sprite){var i=t.batch;if(!i)return;i.remove(t),0==i.size&&(e=i)}else e=t;if(e){var r=this.batchs.indexOf(e);if(-1==r)return;if(0==r||r==this.batchs.length-1)return this.batchs.splice(r,1),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e),void 0;if(this.batchs[r-1]instanceof PIXI.WebGLBatch&&this.batchs[r+1]instanceof PIXI.WebGLBatch&&this.batchs[r-1].texture==this.batchs[r+1].texture&&this.batchs[r-1].blendMode==this.batchs[r+1].blendMode)return this.batchs[r-1].merge(this.batchs[r+1]),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e),PIXI.WebGLRenderer.returnBatch(this.batchs[r+1]),this.batchs.splice(r,2),void 0;this.batchs.splice(r,1),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e)}}},PIXI.WebGLRenderGroup.prototype.removeDisplayObjectAndChildren=function(t){if(t.__renderGroup==this){this.removeDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.removeDisplayObjectAndChildren(e[i])}},PIXI.WebGLRenderGroup.prototype.getNextRenderable=function(t){var e=t;do{if(0==e.children.length){if(!e.parent)return null;for(;e.childIndex==e.parent.children.length-1;)if(e=e.parent,e==this.root||!e.parent){e=null;break}e&&(e=e.parent.children[e.childIndex+1])}else e=e.children[0];if(!e)break}while(!e.renderable||!e.__renderGroup);return e},PIXI.WebGLRenderGroup.prototype.getPreviousRenderable=function(t){var e=t;do{if(0==e.childIndex){if(e=e.parent,!e)return null}else for(e=e.parent.children[e.childIndex-1];0!=e.children.length;)e=e.children[e.children.length-1];if(e==this.root)break}while(!e.renderable||!e.__renderGroup);return e},PIXI.WebGLRenderGroup.prototype.initTilingSprite=function(t){var e=this.gl;t.verticies=new Float32Array([0,0,t.width,0,t.width,t.height,0,t.height]),t.uvs=new Float32Array([0,0,1,0,1,1,0,1]),t.colors=new Float32Array([1,1,1,1]),t.indices=new Uint16Array([0,1,3,2]),t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW),t.texture.baseTexture._glTexture?(e.bindTexture(e.TEXTURE_2D,t.texture.baseTexture._glTexture),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT),t.texture.baseTexture._powerOf2=!0):t.texture.baseTexture._powerOf2=!0},PIXI.WebGLRenderGroup.prototype.renderStrip=function(t,e){var i=this.gl,r=PIXI.shaderProgram,s=PIXI.mat3.toMat4(t.worldTransform);PIXI.mat4.transpose(s),PIXI.mat4.multiply(e,s,s),i.uniformMatrix4fv(r.mvMatrixUniform,!1,s),t.blendMode==PIXI.blendModes.NORMAL?i.blendFunc(i.ONE,i.ONE_MINUS_SRC_ALPHA):i.blendFunc(i.ONE,i.ONE_MINUS_SRC_COLOR),t.dirty?(t.dirty=!1,i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferData(i.ARRAY_BUFFER,t.verticies,i.STATIC_DRAW),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferData(i.ARRAY_BUFFER,t.uvs,i.STATIC_DRAW),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.bufferData(i.ARRAY_BUFFER,t.colors,i.STATIC_DRAW),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer),i.bufferData(i.ELEMENT_ARRAY_BUFFER,t.indices,i.STATIC_DRAW)):(i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.verticies),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer)),i.drawElements(i.TRIANGLE_STRIP,t.indices.length,i.UNSIGNED_SHORT,0),i.uniformMatrix4fv(r.mvMatrixUniform,!1,e)},PIXI.WebGLRenderGroup.prototype.renderTilingSprite=function(t,e){var i=this.gl;PIXI.shaderProgram;var r=t.tilePosition,s=t.tileScale,n=r.x/t.texture.baseTexture.width,a=r.y/t.texture.baseTexture.height,o=t.width/t.texture.baseTexture.width/s.x,h=t.height/t.texture.baseTexture.height/s.y;t.uvs[0]=0-n,t.uvs[1]=0-a,t.uvs[2]=1*o-n,t.uvs[3]=0-a,t.uvs[4]=1*o-n,t.uvs[5]=1*h-a,t.uvs[6]=0-n,t.uvs[7]=1*h-a,i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.uvs),this.renderStrip(t,e)},PIXI.WebGLRenderer.prototype.initStrip=function(t){var e=this.gl;this.shaderProgram,t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW)},PIXI.CanvasRenderer=function(t,e,i,r){this.transparent=r,this.width=t||800,this.height=e||600,this.refresh=!0,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height,this.count=0,this.context=this.view.getContext("2d")},PIXI.CanvasRenderer.constructor=PIXI.CanvasRenderer,PIXI.CanvasRenderer.prototype.render=function(t){PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[],t.updateTransform(),this.view.style.backgroundColor==t.backgroundColorString||this.transparent||(this.view.style.backgroundColor=t.backgroundColorString),this.context.setTransform(1,0,0,1,0,0),this.context.clearRect(0,0,this.width,this.height),this.renderDisplayObject(t),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),PIXI.Texture.frameUpdates.length>0&&(PIXI.Texture.frameUpdates=[])},PIXI.CanvasRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e},PIXI.CanvasRenderer.prototype.renderDisplayObject=function(t){var e=t.worldTransform,i=this.context;if(t.visible){if(t instanceof PIXI.Sprite){var r=t.texture.frame;r&&(i.globalAlpha=t.worldAlpha,i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),i.drawImage(t.texture.baseTexture.source,r.x,r.y,r.width,r.height,t.anchor.x*-r.width,t.anchor.y*-r.height,r.width,r.height))}else t instanceof PIXI.Strip?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderStrip(t)):t instanceof PIXI.TilingSprite?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderTilingSprite(t)):t instanceof PIXI.CustomRenderable&&t.renderCanvas(this);for(var s=0;t.children.length>s;s++)this.renderDisplayObject(t.children[s]);this.context.setTransform(1,0,0,1,0,0)}},PIXI.CanvasRenderer.prototype.renderStripFlat=function(t){var e=this.context,i=t.verticies;t.uvs;var r=i.length/2;this.count++,e.beginPath();for(var s=1;r-2>s;s++){var n=2*s,a=i[n],o=i[n+2],h=i[n+4],u=i[n+1],d=i[n+3],c=i[n+5];e.moveTo(a,u),e.lineTo(o,d),e.lineTo(h,c)}e.fillStyle="#FF0000",e.fill(),e.closePath()},PIXI.CanvasRenderer.prototype.renderTilingSprite=function(t){var e=this.context;t.__tilePattern||(t.__tilePattern=e.createPattern(t.texture.baseTexture.source,"repeat")),e.beginPath();var i=t.tilePosition,r=t.tileScale;e.scale(r.x,r.y),e.translate(i.x,i.y),e.fillStyle=t.__tilePattern,e.fillRect(-i.x,-i.y,t.width/r.x,t.height/r.y),e.scale(1/r.x,1/r.y),e.translate(-i.x,-i.y),e.closePath()},PIXI.CanvasRenderer.prototype.renderStrip=function(t){var e=this.context,i=t.verticies,r=t.uvs,s=i.length/2;this.count++;for(var n=1;s-2>n;n++){var a=2*n,o=i[a],h=i[a+2],u=i[a+4],d=i[a+1],c=i[a+3],l=i[a+5],I=r[a]*t.texture.width,p=r[a+2]*t.texture.width,f=r[a+4]*t.texture.width,x=r[a+1]*t.texture.height,v=r[a+3]*t.texture.height,P=r[a+5]*t.texture.height;e.save(),e.beginPath(),e.moveTo(o,d),e.lineTo(h,c),e.lineTo(u,l),e.closePath(),e.clip();var g=I*v+x*f+p*P-v*f-x*p-I*P,b=o*v+x*u+h*P-v*u-x*h-o*P,X=I*h+o*f+p*u-h*f-o*p-I*u,m=I*v*u+x*h*f+o*p*P-o*v*f-x*p*u-I*h*P,T=d*v+x*l+c*P-v*l-x*c-d*P,y=I*c+d*f+p*l-c*f-d*p-I*l,_=I*v*l+x*c*f+d*p*P-d*v*f-x*p*l-I*c*P;e.transform(b/g,T/g,X/g,y/g,m/g,_/g),e.drawImage(t.texture.baseTexture.source,0,0),e.restore()}},PIXI.Strip=function(t,e,i){PIXI.DisplayObjectContainer.call(this),this.texture=t,this.blendMode=PIXI.blendModes.NORMAL;try{this.uvs=new Float32Array([0,1,1,1,1,0,0,1]),this.verticies=new Float32Array([0,0,0,0,0,0,0,0,0]),this.colors=new Float32Array([1,1,1,1]),this.indices=new Uint16Array([0,1,2,3])}catch(r){this.uvs=[0,1,1,1,1,0,0,1],this.verticies=[0,0,0,0,0,0,0,0,0],this.colors=[1,1,1,1],this.indices=[0,1,2,3]}this.width=e,this.height=i,t.baseTexture.hasLoaded?(this.width=this.texture.frame.width,this.height=this.texture.frame.height,this.updateFrame=!0):(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},PIXI.Strip.constructor=PIXI.Strip,PIXI.Strip.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Strip.prototype.setTexture=function(t){this.texture=t,this.width=t.frame.width,this.height=t.frame.height,this.updateFrame=!0},PIXI.Strip.prototype.onTextureUpdate=function(){this.updateFrame=!0},PIXI.Rope=function(t,e){PIXI.Strip.call(this,t),this.points=e;try{this.verticies=new Float32Array(4*e.length),this.uvs=new Float32Array(4*e.length),this.colors=new Float32Array(2*e.length),this.indices=new Uint16Array(2*e.length)}catch(i){this.verticies=verticies,this.uvs=uvs,this.colors=colors,this.indices=indices}this.refresh()},PIXI.Rope.constructor=PIXI.Rope,PIXI.Rope.prototype=Object.create(PIXI.Strip.prototype),PIXI.Rope.prototype.refresh=function(){var t=this.points;if(!(1>t.length)){var e=this.uvs,i=this.indices,r=this.colors,s=t[0],n=t[0];this.count-=.2,e[0]=0,e[1]=1,e[2]=0,e[3]=1,r[0]=1,r[1]=1,i[0]=0,i[1]=1;for(var a=t.length,o=1;a>o;o++){var n=t[o],h=4*o,u=o/(a-1);o%2?(e[h]=u,e[h+1]=0,e[h+2]=u,e[h+3]=1):(e[h]=u,e[h+1]=0,e[h+2]=u,e[h+3]=1),h=2*o,r[h]=1,r[h+1]=1,h=2*o,i[h]=h,i[h+1]=h+1,s=n}}},PIXI.Rope.prototype.updateTransform=function(){var t=this.points;if(!(1>t.length)){var e,i=this.verticies,r=t[0],s={x:0,y:0},n=t[0];this.count-=.2,i[0]=n.x+s.x,i[1]=n.y+s.y,i[2]=n.x-s.x,i[3]=n.y-s.y;for(var a=t.length,o=1;a>o;o++){var n=t[o],h=4*o;e=t.length-1>o?t[o+1]:n,s.y=-(e.x-r.x),s.x=e.y-r.y;var u=10*(1-o/(a-1));u>1&&(u=1);var d=Math.sqrt(s.x*s.x+s.y*s.y),c=this.texture.height/2;s.x/=d,s.y/=d,s.x*=c,s.y*=c,i[h]=n.x+s.x,i[h+1]=n.y+s.y,i[h+2]=n.x-s.x,i[h+3]=n.y-s.y,r=n}PIXI.DisplayObjectContainer.prototype.updateTransform.call(this)}},PIXI.Rope.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0},PIXI.TilingSprite=function(t,e,i){PIXI.DisplayObjectContainer.call(this),this.texture=t,this.width=e,this.height=i,this.renderable=!0,this.tileScale=new PIXI.Point(1,1),this.tilePosition=new PIXI.Point(0,0),this.blendMode=PIXI.blendModes.NORMAL},PIXI.TilingSprite.constructor=PIXI.TilingSprite,PIXI.TilingSprite.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.TilingSprite.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0},PIXI.TilingSprite.prototype.onTextureUpdate=function(){this.updateFrame=!0},PIXI.CustomRenderable=function(){PIXI.DisplayObject.call(this)},PIXI.CustomRenderable.constructor=PIXI.CustomRenderable,PIXI.CustomRenderable.prototype=Object.create(PIXI.DisplayObject.prototype),PIXI.CustomRenderable.prototype.renderCanvas=function(){},PIXI.CustomRenderable.prototype.initWebGL=function(){},PIXI.CustomRenderable.prototype.renderWebGL=function(){},PIXI.BaseTextureCache={},PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[],PIXI.BaseTexture=function(t){if(PIXI.EventTarget.call(this),this.width=100,this.height=100,this.source=t,t){if(this.source instanceof Image)if(this.source.complete)this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,PIXI.texturesToUpdate.push(this);else{var e=this;this.source.onload=function(){e.hasLoaded=!0,e.width=e.source.width,e.height=e.source.height,PIXI.texturesToUpdate.push(e),e.dispatchEvent({type:"loaded",content:e})}}else this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,PIXI.texturesToUpdate.push(this);this._powerOf2=!1}},PIXI.BaseTexture.constructor=PIXI.BaseTexture,PIXI.BaseTexture.prototype.destroy=function(){this.source instanceof Image&&(this.source.src=null),this.source=null,PIXI.texturesToDestroy.push(this)},PIXI.BaseTexture.fromImage=function(t,e){var i=PIXI.BaseTextureCache[t];if(!i){var r=new Image;e&&(r.crossOrigin=""),r.src=t,i=new PIXI.BaseTexture(r),PIXI.BaseTextureCache[t]=i}return i},PIXI.TextureCache={},PIXI.FrameCache={},PIXI.Texture=function(t,e){if(PIXI.EventTarget.call(this),e||(this.noFrame=!0,e=new PIXI.Rectangle(0,0,1,1)),this.trim=new PIXI.Point,t instanceof PIXI.Texture&&(t=t.baseTexture),this.baseTexture=t,this.frame=e,this.scope=this,t.hasLoaded)this.noFrame&&(e=new PIXI.Rectangle(0,0,t.width,t.height)),this.setFrame(e);else{var i=this;t.addEventListener("loaded",function(){i.onBaseTextureLoaded()})}},PIXI.Texture.constructor=PIXI.Texture,PIXI.Texture.prototype.onBaseTextureLoaded=function(){var t=this.baseTexture;t.removeEventListener("loaded",this.onLoaded),this.noFrame&&(this.frame=new PIXI.Rectangle(0,0,t.width,t.height)),this.noFrame=!1,this.width=this.frame.width,this.height=this.frame.height,this.scope.dispatchEvent({type:"update",content:this})},PIXI.Texture.prototype.destroy=function(t){t&&this.baseTexture.destroy()},PIXI.Texture.prototype.setFrame=function(t){if(this.frame=t,this.width=t.width,this.height=t.height,t.x+t.width>this.baseTexture.width||t.y+t.height>this.baseTexture.height)throw Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);this.updateFrame=!0,PIXI.Texture.frameUpdates.push(this)},PIXI.Texture.fromImage=function(t,e){var i=PIXI.TextureCache[t];return i||(i=new PIXI.Texture(PIXI.BaseTexture.fromImage(t,e)),PIXI.TextureCache[t]=i),i},PIXI.Texture.fromFrame=function(t){var e=PIXI.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache "+this);return e},PIXI.Texture.fromCanvas=function(t){var e=new PIXI.BaseTexture(t);return new PIXI.Texture(e)},PIXI.Texture.addTextureToCache=function(t,e){PIXI.TextureCache[e]=t},PIXI.Texture.removeTextureFromCache=function(t){var e=PIXI.TextureCache[t];return PIXI.TextureCache[t]=null,e},PIXI.Texture.frameUpdates=[],PIXI.RenderTexture=function(t,e){PIXI.EventTarget.call(this),this.width=t||100,this.height=e||100,this.indetityMatrix=PIXI.mat3.create(),this.frame=new PIXI.Rectangle(0,0,this.width,this.height),PIXI.gl?this.initWebGL():this.initCanvas()},PIXI.RenderTexture.constructor=PIXI.RenderTexture,PIXI.RenderTexture.prototype=Object.create(PIXI.Texture.prototype),PIXI.RenderTexture.prototype.initWebGL=function(){var t=PIXI.gl;this.glFramebuffer=t.createFramebuffer(),t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),this.glFramebuffer.width=this.width,this.glFramebuffer.height=this.height,this.baseTexture=new PIXI.BaseTexture,this.baseTexture.width=this.width,this.baseTexture.height=this.height,this.baseTexture._glTexture=t.createTexture(),t.bindTexture(t.TEXTURE_2D,this.baseTexture._glTexture),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,this.width,this.height,0,t.RGBA,t.UNSIGNED_BYTE,null),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),this.baseTexture.isRender=!0,t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,this.baseTexture._glTexture,0),this.projectionMatrix=PIXI.mat4.create(),this.projectionMatrix[5]=2/this.height,this.projectionMatrix[13]=-1,this.projectionMatrix[0]=2/this.width,this.projectionMatrix[12]=-1,this.render=this.renderWebGL},PIXI.RenderTexture.prototype.initCanvas=function(){this.renderer=new PIXI.CanvasRenderer(this.width,this.height,null,0),this.baseTexture=new PIXI.BaseTexture(this.renderer.view),this.frame=new PIXI.Rectangle(0,0,this.width,this.height),this.render=this.renderCanvas},PIXI.RenderTexture.prototype.renderWebGL=function(t,e){var i=PIXI.gl;i.colorMask(!0,!0,!0,!0),i.viewport(0,0,this.width,this.height),i.bindFramebuffer(i.FRAMEBUFFER,this.glFramebuffer),e&&(i.clearColor(0,0,0,0),i.clear(i.COLOR_BUFFER_BIT));var r=t.children;t.worldTransform=PIXI.mat3.create();for(var s=0,n=r.length;n>s;s++)r[s].updateTransform();var a=t.__renderGroup;a?t==a.root?a.render(this.projectionMatrix):a.renderSpecific(t,this.projectionMatrix):(this.renderGroup||(this.renderGroup=new PIXI.WebGLRenderGroup(i)),this.renderGroup.setRenderable(t),this.renderGroup.render(this.projectionMatrix))},PIXI.RenderTexture.prototype.renderCanvas=function(t,e){var i=t.children;t.worldTransform=PIXI.mat3.create();for(var r=0,s=i.length;s>r;r++)i[r].updateTransform();e&&this.renderer.context.clearRect(0,0,this.width,this.height),this.renderer.renderDisplayObject(t),PIXI.texturesToUpdate.push(this.baseTexture)},PIXI.AssetLoader=function(t){PIXI.EventTarget.call(this),this.assetURLs=t,this.crossorigin=!1,this.loadersByType={jpg:PIXI.ImageLoader,jpeg:PIXI.ImageLoader,png:PIXI.ImageLoader,gif:PIXI.ImageLoader,json:PIXI.SpriteSheetLoader,xml:PIXI.BitmapFontLoader,fnt:PIXI.BitmapFontLoader}},PIXI.AssetLoader.constructor=PIXI.AssetLoader,PIXI.AssetLoader.prototype.load=function(){var t=this;this.loadCount=this.assetURLs.length;for(var e=0;this.assetURLs.length>e;e++){var i=this.assetURLs[e],r=i.split(".").pop().toLowerCase(),s=this.loadersByType[r];if(!s)throw Error(r+" is an unsupported file type");var n=new s(i,this.crossorigin);n.addEventListener("loaded",function(){t.onAssetLoaded()}),n.load()}},PIXI.AssetLoader.prototype.onAssetLoaded=function(){this.loadCount--,this.dispatchEvent({type:"onProgress",content:this}),this.onProgress&&this.onProgress(),0==this.loadCount&&(this.dispatchEvent({type:"onComplete",content:this}),this.onComplete&&this.onComplete())},PIXI.SpriteSheetLoader=function(t,e){PIXI.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.frames={},this.crossorigin=e},PIXI.SpriteSheetLoader.constructor=PIXI.SpriteSheetLoader,PIXI.SpriteSheetLoader.prototype.load=function(){this.ajaxRequest=new AjaxRequest;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onJSONLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/json"),this.ajaxRequest.send(null)},PIXI.SpriteSheetLoader.prototype.onJSONLoaded=function(){if(4==this.ajaxRequest.readyState&&(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))){var jsonData=eval("("+this.ajaxRequest.responseText+")"),textureUrl=this.baseUrl+jsonData.meta.image,image=new PIXI.ImageLoader(textureUrl,this.crossorigin);this.texture=image.texture.baseTexture;var scope=this;image.addEventListener("loaded",function(){scope.onLoaded()});var frameData=jsonData.frames;for(var i in frameData){var rect=frameData[i].frame;rect&&(PIXI.TextureCache[i]=new PIXI.Texture(this.texture,{x:rect.x,y:rect.y,width:rect.w,height:rect.h}),frameData[i].trimmed&&(PIXI.TextureCache[i].realSize=frameData[i].spriteSourceSize,PIXI.TextureCache[i].trim.x=0))}image.load()}},PIXI.SpriteSheetLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},PIXI.ImageLoader=function(t,e){PIXI.EventTarget.call(this),this.texture=PIXI.Texture.fromImage(t,e)},PIXI.ImageLoader.constructor=PIXI.ImageLoader,PIXI.ImageLoader.prototype.load=function(){if(this.texture.baseTexture.hasLoaded)this.onLoaded();else{var t=this;this.texture.baseTexture.addEventListener("loaded",function(){t.onLoaded()})}},PIXI.ImageLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},PIXI.BitmapFontLoader=function(t,e){PIXI.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.crossorigin=e},PIXI.BitmapFontLoader.constructor=PIXI.BitmapFontLoader,PIXI.BitmapFontLoader.prototype.load=function(){this.ajaxRequest=new XMLHttpRequest;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onXMLLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/xml"),this.ajaxRequest.send(null)},PIXI.BitmapFontLoader.prototype.onXMLLoaded=function(){if(4==this.ajaxRequest.readyState&&(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))){var t=this.baseUrl+this.ajaxRequest.responseXML.getElementsByTagName("page")[0].attributes.getNamedItem("file").nodeValue,e=new PIXI.ImageLoader(t,this.crossorigin);this.texture=e.texture.baseTexture;var i={},r=this.ajaxRequest.responseXML.getElementsByTagName("info")[0],s=this.ajaxRequest.responseXML.getElementsByTagName("common")[0];i.font=r.attributes.getNamedItem("face").nodeValue,i.size=parseInt(r.attributes.getNamedItem("size").nodeValue,10),i.lineHeight=parseInt(s.attributes.getNamedItem("lineHeight").nodeValue,10),i.chars={};for(var n=this.ajaxRequest.responseXML.getElementsByTagName("char"),a=0;n.length>a;a++){var o=parseInt(n[a].attributes.getNamedItem("id").nodeValue,10),h={x:parseInt(n[a].attributes.getNamedItem("x").nodeValue,10),y:parseInt(n[a].attributes.getNamedItem("y").nodeValue,10),width:parseInt(n[a].attributes.getNamedItem("width").nodeValue,10),height:parseInt(n[a].attributes.getNamedItem("height").nodeValue,10)};PIXI.TextureCache[o]=new PIXI.Texture(this.texture,h),i.chars[o]={xOffset:parseInt(n[a].attributes.getNamedItem("xoffset").nodeValue,10),yOffset:parseInt(n[a].attributes.getNamedItem("yoffset").nodeValue,10),xAdvance:parseInt(n[a].attributes.getNamedItem("xadvance").nodeValue,10),kerning:{}}}var u=this.ajaxRequest.responseXML.getElementsByTagName("kerning");for(a=0;u.length>a;a++){var d=parseInt(u[a].attributes.getNamedItem("first").nodeValue,10),c=parseInt(u[a].attributes.getNamedItem("second").nodeValue,10),l=parseInt(u[a].attributes.getNamedItem("amount").nodeValue,10);i.chars[c].kerning[d]=l}PIXI.BitmapText.fonts[i.font]=i;var I=this;e.addEventListener("loaded",function(){I.onLoaded()}),e.load()}},PIXI.BitmapFontLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=PIXI),exports.PIXI=PIXI):root.PIXI=PIXI}).call(this); \ No newline at end of file diff --git a/docs/classes/WebGLRenderer.html b/docs/classes/WebGLRenderer.html index 581cb5a..fcef6b6 100644 --- a/docs/classes/WebGLRenderer.html +++ b/docs/classes/WebGLRenderer.html @@ -498,7 +498,7 @@ - src/pixi/renderers/WebGLRenderer.js:283 + src/pixi/renderers/WebGLRenderer.js:284

diff --git a/docs/data.json b/docs/data.json index 9b4a49d..4b27831 100644 --- a/docs/data.json +++ b/docs/data.json @@ -1388,35 +1388,35 @@ }, { "file": "src/pixi/renderers/WebGLRenderGroup.js", - "line": 523, + "line": 527, "access": "private", "tagname": "", "class": "WebGLBatch" }, { "file": "src/pixi/renderers/WebGLRenderGroup.js", - "line": 607, + "line": 613, "access": "private", "tagname": "", "class": "WebGLBatch" }, { "file": "src/pixi/renderers/WebGLRenderGroup.js", - "line": 663, + "line": 669, "access": "private", "tagname": "", "class": "WebGLBatch" }, { "file": "src/pixi/renderers/WebGLRenderGroup.js", - "line": 740, + "line": 746, "access": "private", "tagname": "", "class": "WebGLBatch" }, { "file": "src/pixi/renderers/WebGLRenderGroup.js", - "line": 777, + "line": 783, "access": "private", "tagname": "", "class": "WebGLBatch" @@ -1465,14 +1465,14 @@ }, { "file": "src/pixi/renderers/WebGLRenderer.js", - "line": 232, + "line": 225, "access": "private", "tagname": "", "class": "WebGLRenderer" }, { "file": "src/pixi/renderers/WebGLRenderer.js", - "line": 283, + "line": 284, "description": "resizes the webGL view to the specified width and height", "itemtype": "method", "name": "resize", @@ -1492,14 +1492,14 @@ }, { "file": "src/pixi/renderers/WebGLRenderer.js", - "line": 307, + "line": 308, "access": "private", "tagname": "", "class": "WebGLRenderer" }, { "file": "src/pixi/renderers/WebGLRenderer.js", - "line": 316, + "line": 317, "access": "private", "tagname": "", "class": "WebGLRenderer" @@ -2908,23 +2908,23 @@ }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderGroup.js:523" + "line": " src/pixi/renderers/WebGLRenderGroup.js:527" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderGroup.js:607" + "line": " src/pixi/renderers/WebGLRenderGroup.js:613" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderGroup.js:663" + "line": " src/pixi/renderers/WebGLRenderGroup.js:669" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderGroup.js:740" + "line": " src/pixi/renderers/WebGLRenderGroup.js:746" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderGroup.js:777" + "line": " src/pixi/renderers/WebGLRenderGroup.js:783" }, { "message": "Missing item type", @@ -2944,15 +2944,15 @@ }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderer.js:232" + "line": " src/pixi/renderers/WebGLRenderer.js:225" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderer.js:307" + "line": " src/pixi/renderers/WebGLRenderer.js:308" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderer.js:316" + "line": " src/pixi/renderers/WebGLRenderer.js:317" }, { "message": "Missing item type", diff --git a/docs/files/src_pixi_renderers_WebGLRenderGroup.js.html b/docs/files/src_pixi_renderers_WebGLRenderGroup.js.html index 7222602..42bcabd 100644 --- a/docs/files/src_pixi_renderers_WebGLRenderGroup.js.html +++ b/docs/files/src_pixi_renderers_WebGLRenderGroup.js.html @@ -177,6 +177,8 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + //PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. @@ -215,6 +217,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + //PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -683,7 +687,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/docs/files/src_pixi_renderers_WebGLRenderer.js.html b/docs/files/src_pixi_renderers_WebGLRenderer.js.html index 0383c4d..551dd19 100644 --- a/docs/files/src_pixi_renderers_WebGLRenderer.js.html +++ b/docs/files/src_pixi_renderers_WebGLRenderer.js.html @@ -306,15 +306,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -366,9 +359,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -400,7 +402,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) diff --git a/examples/example 1 - Basics/pixi.js b/examples/example 1 - Basics/pixi.js index f29080a..3478cf4 100644 --- a/examples/example 1 - Basics/pixi.js +++ b/examples/example 1 - Basics/pixi.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/bin/pixi.dev.js b/bin/pixi.dev.js index f29080a..3478cf4 100644 --- a/bin/pixi.dev.js +++ b/bin/pixi.dev.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/bin/pixi.js b/bin/pixi.js index 5f2a13c..a6d54d1 100644 --- a/bin/pixi.js +++ b/bin/pixi.js @@ -4,10 +4,10 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php */ -(function(){function HEXtoRGB(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}function determineMatrixArrayType(){return PIXI.Matrix="undefined"!=typeof Float32Array?Float32Array:Array,PIXI.Matrix}var root=this,PIXI=PIXI||{};PIXI.Point=function(t,e){this.x=t||0,this.y=e||0},PIXI.Point.prototype.clone=function(){return new PIXI.Point(this.x,this.y)},PIXI.Point.constructor=PIXI.Point,PIXI.Rectangle=function(t,e,i,r){this.x=t||0,this.y=e||0,this.width=i||0,this.height=r||0},PIXI.Rectangle.prototype.clone=function(){return new PIXI.Rectangle(this.x,this.y,this.width,this.height)},PIXI.Rectangle.constructor=PIXI.Rectangle,PIXI.DisplayObject=function(){this.position=new PIXI.Point,this.scale=new PIXI.Point(1,1),this.pivot=new PIXI.Point(0,0),this.rotation=0,this.alpha=1,this.visible=!0,this.worldVisible=!1,this.parent=null,this.stage=null,this.hitArea=null,this.worldAlpha=1,this.color=[],this.worldTransform=PIXI.mat3.create(),this.localTransform=PIXI.mat3.create(),this.dynamic=!0,this._sr=0,this._cr=1,this.childIndex=0,this.renderable=!1,this.interactive=!1,this.buttonMode=!1},PIXI.DisplayObject.constructor=PIXI.DisplayObject,PIXI.DisplayObject.prototype.setInteractive=function(t){this.interactive=t,this.stage&&(this.stage.dirty=!0)},PIXI.DisplayObject.prototype.updateTransform=function(){this.rotation!=this.rotationCache&&(this.rotationCache=this.rotation,this._sr=Math.sin(this.rotation),this._cr=Math.cos(this.rotation));var t=this.localTransform,e=this.parent.worldTransform,i=this.worldTransform;t[0]=this._cr*this.scale.x,t[1]=-this._sr*this.scale.y,t[3]=this._sr*this.scale.x,t[4]=this._cr*this.scale.y;var r=this.pivot.x,s=this.pivot.y;t[2]=this.position.x-t[0]*r-s*t[1],t[5]=this.position.y-t[4]*s-r*t[3];var n=t[0],a=t[1],o=t[2],h=t[3],u=t[4],c=t[5],d=e[0],l=e[1],I=e[2],p=e[3],f=e[4],x=e[5];i[0]=d*n+l*h,i[1]=d*a+l*u,i[2]=d*o+l*c+I,i[3]=p*n+f*h,i[4]=p*a+f*u,i[5]=p*o+f*c+x,this.worldAlpha=this.alpha*this.parent.worldAlpha},PIXI.DisplayObjectContainer=function(){PIXI.DisplayObject.call(this),this.children=[],this.renderable=!1},PIXI.DisplayObjectContainer.constructor=PIXI.DisplayObjectContainer,PIXI.DisplayObjectContainer.prototype=Object.create(PIXI.DisplayObject.prototype),PIXI.DisplayObjectContainer.prototype.addChild=function(t){void 0!=t.parent&&t.parent.removeChild(t),t.parent=this,t.childIndex=this.children.length,this.children.push(t),this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},PIXI.DisplayObjectContainer.prototype.addChildAt=function(t,e){if(!(e>=0&&this.children.length>=e))throw Error(t+" The index "+e+" supplied is out of bounds "+this.children.length);void 0!=t.parent&&t.parent.removeChild(t),e==this.children.length?this.children.push(t):this.children.splice(e,0,t),t.parent=this,t.childIndex=e;for(var i=this.children.length,r=e;i>r;r++)this.children[r].childIndex=r;this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},PIXI.DisplayObjectContainer.prototype.swapChildren=function(t,e){var i=this.children.indexOf(t),r=this.children.indexOf(e);if(-1===i||-1===r)throw Error(t+" Both the supplied DisplayObjects must be a child of the caller "+this);this.stage&&(this.stage.__removeChild(t),this.stage.__removeChild(e),this.stage.__addChild(t),this.stage.__addChild(e)),t.childIndex=r,e.childIndex=i,this.children[i]=e,this.children[r]=t},PIXI.DisplayObjectContainer.prototype.getChildAt=function(t){if(t>=0&&this.children.length>t)return this.children[t];throw Error(child+" Both the supplied DisplayObjects must be a child of the caller "+this)},PIXI.DisplayObjectContainer.prototype.removeChild=function(t){var e=this.children.indexOf(t);if(-1===e)throw Error(t+" The supplied DisplayObject must be a child of the caller "+this);this.stage&&this.stage.__removeChild(t),t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.parent=void 0,this.children.splice(e,1);for(var i=e,r=this.children.length;r>i;i++)this.children[i].childIndex-=1},PIXI.DisplayObjectContainer.prototype.updateTransform=function(){if(this.visible){PIXI.DisplayObject.prototype.updateTransform.call(this);for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform()}},PIXI.blendModes={},PIXI.blendModes.NORMAL=0,PIXI.blendModes.SCREEN=1,PIXI.Sprite=function(t){PIXI.DisplayObjectContainer.call(this),this.anchor=new PIXI.Point,this.texture=t,this.blendMode=PIXI.blendModes.NORMAL,this._width=0,this._height=0,t.baseTexture.hasLoaded?this.updateFrame=!0:(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},PIXI.Sprite.constructor=PIXI.Sprite,PIXI.Sprite.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),Object.defineProperty(PIXI.Sprite.prototype,"width",{get:function(){return this.scale.x*this.texture.frame.width},set:function(t){this.scale.x=t/this.texture.frame.width,this._width=t}}),Object.defineProperty(PIXI.Sprite.prototype,"height",{get:function(){return this.scale.y*this.texture.frame.height},set:function(t){this.scale.y=t/this.texture.frame.height,this._height=t}}),PIXI.Sprite.prototype.setTexture=function(t){this.texture.baseTexture!=t.baseTexture&&(this.textureChange=!0),this.texture=t,this.updateFrame=!0},PIXI.Sprite.prototype.onTextureUpdate=function(){this._width&&(this.scale.x=this._width/this.texture.frame.width),this._height&&(this.scale.y=this._height/this.texture.frame.height),this.updateFrame=!0},PIXI.Sprite.fromFrame=function(t){var e=PIXI.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache"+this);return new PIXI.Sprite(e)},PIXI.Sprite.fromImage=function(t){var e=PIXI.Texture.fromImage(t);return new PIXI.Sprite(e)},PIXI.MovieClip=function(t){PIXI.Sprite.call(this,t[0]),this.textures=t,this.currentFrame=0,this.animationSpeed=1,this.loop=!0,this.onComplete=null,this.playing},PIXI.MovieClip.constructor=PIXI.MovieClip,PIXI.MovieClip.prototype=Object.create(PIXI.Sprite.prototype),PIXI.MovieClip.prototype.stop=function(){this.playing=!1},PIXI.MovieClip.prototype.play=function(){this.playing=!0},PIXI.MovieClip.prototype.gotoAndStop=function(t){this.playing=!1,this.currentFrame=t;var e=0|this.currentFrame+.5;this.setTexture(this.textures[e%this.textures.length])},PIXI.MovieClip.prototype.gotoAndPlay=function(t){this.currentFrame=t,this.playing=!0},PIXI.MovieClip.prototype.updateTransform=function(){if(PIXI.Sprite.prototype.updateTransform.call(this),this.playing){this.currentFrame+=this.animationSpeed;var t=0|this.currentFrame+.5;this.loop||this.textures.length>t?this.setTexture(this.textures[t%this.textures.length]):t>=this.textures.length&&(this.gotoAndStop(this.textures.length-1),this.onComplete&&this.onComplete())}},PIXI.Text=function(t,e){this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"),PIXI.Sprite.call(this,PIXI.Texture.fromCanvas(this.canvas)),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},PIXI.Text.constructor=PIXI.Text,PIXI.Text.prototype=Object.create(PIXI.Sprite.prototype),PIXI.Text.prototype.setStyle=function(t){t=t||{},t.font=t.font||"bold 20pt Arial",t.fill=t.fill||"black",t.align=t.align||"left",t.strokeThickness=t.strokeThickness||0,this.style=t,this.dirty=!0},PIXI.Sprite.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},PIXI.Text.prototype.updateText=function(){this.context.font=this.style.font;for(var t=this.text.split(/(?:\r\n|\r|\n)/),e=[],i=0,r=0;t.length>r;r++){var s=this.context.measureText(t[r]).width;e[r]=s,i=Math.max(i,s)}this.canvas.width=i+this.style.strokeThickness;var n=this.determineFontHeight("font: "+this.style.font+";")+this.style.strokeThickness;for(this.canvas.height=n*t.length,this.context.fillStyle=this.style.fill,this.context.font=this.style.font,this.context.strokeStyle=this.style.stroke,this.context.lineWidth=this.style.strokeThickness,this.context.textBaseline="top",r=0;t.length>r;r++){var a=new PIXI.Point(this.style.strokeThickness/2,this.style.strokeThickness/2+r*n);"right"==this.style.align?a.x+=i-e[r]:"center"==this.style.align&&(a.x+=(i-e[r])/2),this.style.stroke&&this.style.strokeThickness&&this.context.strokeText(t[r],a.x,a.y),this.style.fill&&this.context.fillText(t[r],a.x,a.y)}this.updateTexture()},PIXI.Text.prototype.updateTexture=function(){this.texture.baseTexture.width=this.canvas.width,this.texture.baseTexture.height=this.canvas.height,this.texture.frame.width=this.canvas.width,this.texture.frame.height=this.canvas.height,this._width=this.canvas.width,this._height=this.canvas.height,PIXI.texturesToUpdate.push(this.texture.baseTexture)},PIXI.Text.prototype.updateTransform=function(){this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype.updateTransform.call(this)},PIXI.Text.prototype.determineFontHeight=function(t){var e=PIXI.Text.heightCache[t];if(!e){var i=document.getElementsByTagName("body")[0],r=document.createElement("div"),s=document.createTextNode("M");r.appendChild(s),r.setAttribute("style",t),i.appendChild(r),e=r.offsetHeight,PIXI.Text.heightCache[t]=e,i.removeChild(r)}return e},PIXI.Text.prototype.destroy=function(t){t&&this.texture.destroy()},PIXI.Text.heightCache={},PIXI.BitmapText=function(t,e){PIXI.DisplayObjectContainer.call(this),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},PIXI.BitmapText.constructor=PIXI.BitmapText,PIXI.BitmapText.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.BitmapText.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},PIXI.BitmapText.prototype.setStyle=function(t){t=t||{},t.align=t.align||"left",this.style=t;var e=t.font.split(" ");this.fontName=e[e.length-1],this.fontSize=e.length>=2?parseInt(e[e.length-2],10):PIXI.BitmapText.fonts[this.fontName].size,this.dirty=!0},PIXI.BitmapText.prototype.updateText=function(){for(var t=PIXI.BitmapText.fonts[this.fontName],e=new PIXI.Point,i=null,r=[],s=0,n=[],a=0,o=this.fontSize/t.size,h=0;this.text.length>h;h++){var u=this.text.charCodeAt(h);if(/(?:\r\n|\r|\n)/.test(this.text.charAt(h)))n.push(e.x),s=Math.max(s,e.x),a++,e.x=0,e.y+=t.lineHeight,i=null;else{var c=t.chars[u];c&&(i&&c[i]&&(e.x+=c.kerning[i]),r.push({line:a,charCode:u,position:new PIXI.Point(e.x+c.xOffset,e.y+c.yOffset)}),e.x+=c.xAdvance,i=u)}}n.push(e.x),s=Math.max(s,e.x);var d=[];for(h=0;a>=h;h++){var l=0;"right"==this.style.align?l=s-n[h]:"center"==this.style.align&&(l=(s-n[h])/2),d.push(l)}for(h=0;r.length>h;h++){var I=PIXI.Sprite.fromFrame(r[h].charCode);I.position.x=(r[h].position.x+d[r[h].line])*o,I.position.y=r[h].position.y*o,I.scale.x=I.scale.y=o,this.addChild(I)}this.width=e.x*o,this.height=(e.y+t.lineHeight)*o},PIXI.BitmapText.prototype.updateTransform=function(){if(this.dirty){for(;this.children.length>0;)this.removeChild(this.getChildAt(0));this.updateText(),this.dirty=!1}PIXI.DisplayObjectContainer.prototype.updateTransform.call(this)},PIXI.BitmapText.fonts={},PIXI.InteractionManager=function(t){this.stage=t,this.tempPoint=new PIXI.Point,this.mouseoverEnabled=!0,this.mouse=new PIXI.InteractionData,this.touchs={},this.pool=[],this.interactiveItems=[],this.last=0},PIXI.InteractionManager.constructor=PIXI.InteractionManager,PIXI.InteractionManager.prototype.collectInteractiveSprite=function(t,e){for(var i=t.children,r=i.length,s=r-1;s>=0;s--){var n=i[s];n.interactive?(e.interactiveChildren=!0,this.interactiveItems.push(n),n.children.length>0&&this.collectInteractiveSprite(n,n)):(n.__iParent=null,n.children.length>0&&this.collectInteractiveSprite(n,e))}},PIXI.InteractionManager.prototype.setTarget=function(t){window.navigator.msPointerEnabled&&(t.view.style["-ms-content-zooming"]="none",t.view.style["-ms-touch-action"]="none"),this.target=t,t.view.addEventListener("mousemove",this.onMouseMove.bind(this),!0),t.view.addEventListener("mousedown",this.onMouseDown.bind(this),!0),document.body.addEventListener("mouseup",this.onMouseUp.bind(this),!0),t.view.addEventListener("mouseout",this.onMouseUp.bind(this),!0),t.view.addEventListener("touchstart",this.onTouchStart.bind(this),!0),t.view.addEventListener("touchend",this.onTouchEnd.bind(this),!0),t.view.addEventListener("touchmove",this.onTouchMove.bind(this),!0)},PIXI.InteractionManager.prototype.update=function(){if(this.target){var t=Date.now(),e=t-this.last;if(e=30*e/1e3,!(1>e)){if(this.last=t,this.dirty){this.dirty=!1,this.interactiveItems.length;for(var i=0;this.interactiveItems.length>i;i++)this.interactiveItems[i].interactiveChildren=!1;this.interactiveItems=[],this.stage.interactive&&this.interactiveItems.push(this.stage),this.collectInteractiveSprite(this.stage,this.stage)}var r=this.interactiveItems.length;this.target.view.style.cursor="default";for(var i=0;r>i;i++){var s=this.interactiveItems[i];s.visible&&(s.mouseover||s.mouseout||s.buttonMode)&&(s.__hit=this.hitTest(s,this.mouse),s.__hit?(s.buttonMode&&(this.target.view.style.cursor="pointer"),s.__isOver||(s.mouseover&&s.mouseover(this.mouse),s.__isOver=!0)):s.__isOver&&(s.mouseout&&s.mouseout(this.mouse),s.__isOver=!1))}}}},PIXI.InteractionManager.prototype.onMouseMove=function(t){t.preventDefault();var e=this.target.view.getBoundingClientRect();this.mouse.global.x=(t.clientX-e.left)*(this.target.width/e.width),this.mouse.global.y=(t.clientY-e.top)*(this.target.height/e.height);var i=this.interactiveItems.length;this.mouse.global;for(var r=0;i>r;r++){var s=this.interactiveItems[r];s.mousemove&&s.mousemove(this.mouse)}},PIXI.InteractionManager.prototype.onMouseDown=function(t){t.preventDefault();var e=this.interactiveItems.length;this.mouse.global,this.stage;for(var i=0;e>i;i++){var r=this.interactiveItems[i];if((r.mousedown||r.click)&&(r.__mouseIsDown=!0,r.__hit=this.hitTest(r,this.mouse),r.__hit&&(r.mousedown&&r.mousedown(this.mouse),r.__isDown=!0,!r.interactiveChildren)))break}},PIXI.InteractionManager.prototype.onMouseUp=function(t){t.preventDefault(),this.mouse.global;for(var e=this.interactiveItems.length,i=!1,r=0;e>r;r++){var s=this.interactiveItems[r];(s.mouseup||s.mouseupoutside||s.click)&&(s.__hit=this.hitTest(s,this.mouse),s.__hit&&!i?(s.mouseup&&s.mouseup(this.mouse),s.__isDown&&s.click&&s.click(this.mouse),s.interactiveChildren||(i=!0)):s.__isDown&&s.mouseupoutside&&s.mouseupoutside(this.mouse),s.__isDown=!1)}},PIXI.InteractionManager.prototype.hitTest=function(t,e){var i=e.global;if(!t.visible)return!1;if(t instanceof PIXI.Sprite){var r=t.worldTransform,s=r[0],n=r[1],a=r[2],o=r[3],h=r[4],u=r[5],c=1/(s*h+n*-o),d=h*c*i.x+-n*c*i.y+(u*n-a*h)*c,l=s*c*i.y+-o*c*i.x+(-u*s+a*o)*c,I=t.texture.frame.width,p=t.texture.frame.height,f=-I*t.anchor.x;if(d>f&&f+I>d){var x=-p*t.anchor.y;if(l>x&&x+p>l)return e.target=t,!0}}else if(t.hitArea){var r=t.worldTransform,v=t.hitArea,s=r[0],n=r[1],a=r[2],o=r[3],h=r[4],u=r[5],c=1/(s*h+n*-o),d=h*c*i.x+-n*c*i.y+(u*n-a*h)*c,l=s*c*i.y+-o*c*i.x+(-u*s+a*o)*c,f=v.x;if(d>f&&f+v.width>d){var x=v.y;if(l>x&&x+v.height>l)return!0}}for(var P=t.children.length,g=0;P>g;g++){var b=t.children[g],X=this.hitTest(b,e);if(X)return!0}return!1},PIXI.InteractionManager.prototype.onTouchMove=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.touchs[s.identifier];n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height)}for(var a=this.interactiveItems.length,r=0;a>r;r++){var o=this.interactiveItems[r];o.touchmove&&o.touchmove(n)}},PIXI.InteractionManager.prototype.onTouchStart=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.pool.pop();n||(n=new PIXI.InteractionData),this.touchs[s.identifier]=n,n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height);for(var a=this.interactiveItems.length,o=0;a>o;o++){var h=this.interactiveItems[o];if((h.touchstart||h.tap)&&(h.__hit=this.hitTest(h,n),h.__hit&&(h.touchstart&&h.touchstart(n),h.__isDown=!0,h.__touchData=n,!h.interactiveChildren)))break}}},PIXI.InteractionManager.prototype.onTouchEnd=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.touchs[s.identifier],a=!1;n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var u=this.interactiveItems[h],c=u.__touchData;u.__hit=this.hitTest(u,n),c==n&&((u.touchend||u.tap)&&(u.__hit&&!a?(u.touchend&&u.touchend(n),u.__isDown&&u.tap&&u.tap(n),u.interactiveChildren||(a=!0)):u.__isDown&&u.touchendoutside&&u.touchendoutside(n),u.__isDown=!1),u.__touchData=null)}this.pool.push(n),this.touchs[s.identifier]=null}},PIXI.InteractionData=function(){this.global=new PIXI.Point,this.local=new PIXI.Point,this.target},PIXI.InteractionData.prototype.getLocalPosition=function(t){var e=t.worldTransform,i=this.global,r=e[0],s=e[1],n=e[2],a=e[3],o=e[4],h=e[5],u=1/(r*o+s*-a);return new PIXI.Point(o*u*i.x+-s*u*i.y+(h*s-n*o)*u,r*u*i.y+-a*u*i.x+(-h*r+n*a)*u)},PIXI.InteractionData.constructor=PIXI.InteractionData,PIXI.Stage=function(t,e){PIXI.DisplayObjectContainer.call(this),this.worldTransform=PIXI.mat3.create(),this.__childrenAdded=[],this.__childrenRemoved=[],this.childIndex=0,this.stage=this,this.stage.hitArea=new PIXI.Rectangle(0,0,1e5,1e5),this.interactive=!!e,this.interactionManager=new PIXI.InteractionManager(this),this.setBackgroundColor(t),this.worldVisible=!0},PIXI.Stage.constructor=PIXI.Stage,PIXI.Stage.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Stage.prototype.updateTransform=function(){this.worldAlpha=1;for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform();this.dirty&&(this.dirty=!1,this.interactionManager.dirty=!0),this.interactive&&this.interactionManager.update()},PIXI.Stage.prototype.setBackgroundColor=function(t){this.backgroundColor=t||0,this.backgroundColorSplit=HEXtoRGB(this.backgroundColor),this.backgroundColorString="#"+this.backgroundColor.toString(16)},PIXI.Stage.prototype.getMousePosition=function(){return this.interactionManager.mouse.global},PIXI.Stage.prototype.__addChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=this,t.children)for(var e=0;t.children.length>e;e++)this.__addChild(t.children[e])},PIXI.Stage.prototype.__removeChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=void 0,t.children)for(var e=0,i=t.children.length;i>e;e++)this.__removeChild(t.children[e])},window.requestAnimFrame=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(t){window.setTimeout(t,1e3/60)}}(),"function"!=typeof Function.prototype.bind&&(Function.prototype.bind=function(){var t=Array.prototype.slice;return function(e){function i(){var n=s.concat(t.call(arguments));r.apply(this instanceof i?this:e,n)}var r=this,s=t.call(arguments,1);if("function"!=typeof r)throw new TypeError;return i.prototype=function n(t){return t&&(n.prototype=t),this instanceof n?void 0:new n}(r.prototype),i}}());var AjaxRequest=function(){var t=["Msxml2.XMLHTTP","Microsoft.XMLHTTP"];if(!window.ActiveXObject)return window.XMLHttpRequest?new XMLHttpRequest:!1;for(var e=0;t.length>e;e++)try{return new ActiveXObject(t[e])}catch(i){}};PIXI.EventTarget=function(){var t={};this.addEventListener=this.on=function(e,i){void 0===t[e]&&(t[e]=[]),-1===t[e].indexOf(i)&&t[e].push(i)},this.dispatchEvent=this.emit=function(e){for(var i in t[e.type])t[e.type][i](e)},this.removeEventListener=this.off=function(e,i){var r=t[e].indexOf(i);-1!==r&&t[e].splice(r,1)}},determineMatrixArrayType(),PIXI.mat3={},PIXI.mat3.create=function(){var t=new PIXI.Matrix(9);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},PIXI.mat4={},PIXI.mat4.create=function(){var t=new PIXI.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},PIXI.mat3.multiply=function(t,e,i){i||(i=t);var r=t[0],s=t[1],n=t[2],a=t[3],o=t[4],h=t[5],u=t[6],c=t[7],d=t[8],l=e[0],I=e[1],p=e[2],f=e[3],x=e[4],v=e[5],P=e[6],g=e[7],b=e[8];return i[0]=l*r+I*a+p*u,i[1]=l*s+I*o+p*c,i[2]=l*n+I*h+p*d,i[3]=f*r+x*a+v*u,i[4]=f*s+x*o+v*c,i[5]=f*n+x*h+v*d,i[6]=P*r+g*a+b*u,i[7]=P*s+g*o+b*c,i[8]=P*n+g*h+b*d,i},PIXI.mat3.toMat4=function(t,e){return e||(e=PIXI.mat4.create()),e[15]=1,e[14]=0,e[13]=0,e[12]=0,e[11]=0,e[10]=t[8],e[9]=t[7],e[8]=t[6],e[7]=0,e[6]=t[5],e[5]=t[4],e[4]=t[3],e[3]=0,e[2]=t[2],e[1]=t[1],e[0]=t[0],e},PIXI.mat4.create=function(){var t=new PIXI.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},PIXI.mat4.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],s=t[3],n=t[6],a=t[7],o=t[11];return t[1]=t[4],t[2]=t[8],t[3]=t[12],t[4]=i,t[6]=t[9],t[7]=t[13],t[8]=r,t[9]=n,t[11]=t[14],t[12]=s,t[13]=a,t[14]=o,t}return e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=t[1],e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=t[2],e[9]=t[6],e[10]=t[10],e[11]=t[14],e[12]=t[3],e[13]=t[7],e[14]=t[11],e[15]=t[15],e},PIXI.mat4.multiply=function(t,e,i){i||(i=t);var r=t[0],s=t[1],n=t[2],a=t[3],o=t[4],h=t[5],u=t[6],c=t[7],d=t[8],l=t[9],I=t[10],p=t[11],f=t[12],x=t[13],v=t[14],P=t[15],g=e[0],b=e[1],X=e[2],m=e[3];return i[0]=g*r+b*o+X*d+m*f,i[1]=g*s+b*h+X*l+m*x,i[2]=g*n+b*u+X*I+m*v,i[3]=g*a+b*c+X*p+m*P,g=e[4],b=e[5],X=e[6],m=e[7],i[4]=g*r+b*o+X*d+m*f,i[5]=g*s+b*h+X*l+m*x,i[6]=g*n+b*u+X*I+m*v,i[7]=g*a+b*c+X*p+m*P,g=e[8],b=e[9],X=e[10],m=e[11],i[8]=g*r+b*o+X*d+m*f,i[9]=g*s+b*h+X*l+m*x,i[10]=g*n+b*u+X*I+m*v,i[11]=g*a+b*c+X*p+m*P,g=e[12],b=e[13],X=e[14],m=e[15],i[12]=g*r+b*o+X*d+m*f,i[13]=g*s+b*h+X*l+m*x,i[14]=g*n+b*u+X*I+m*v,i[15]=g*a+b*c+X*p+m*P,i},PIXI.autoDetectRenderer=function(t,e,i,r){t||(t=800),e||(e=600);var s=function(){try{return!!window.WebGLRenderingContext&&!!document.createElement("canvas").getContext("experimental-webgl")}catch(t){return!1}}();return s?new PIXI.WebGLRenderer(t,e,i,r):new PIXI.CanvasRenderer(t,e,i,r)},PIXI.shaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * vColor;","}"],PIXI.shaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform mat4 uMVMatrix;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","gl_Position = uMVMatrix * vec4(aVertexPosition, 1.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],PIXI.CompileVertexShader=function(t,e){return PIXI._CompileShader(t,e,t.VERTEX_SHADER)},PIXI.CompileFragmentShader=function(t,e){return PIXI._CompileShader(t,e,t.FRAGMENT_SHADER)},PIXI._CompileShader=function(t,e,i){var r=e.join("\n"),s=t.createShader(i);return t.shaderSource(s,r),t.compileShader(s),t.getShaderParameter(s,t.COMPILE_STATUS)?s:(alert(t.getShaderInfoLog(s)),null)},PIXI._defaultFrame=new PIXI.Rectangle(0,0,1,1),PIXI.gl,PIXI.WebGLRenderer=function(t,e,i,r){this.transparent=!!r,this.width=t||800,this.height=e||600,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height;var s=this;this.view.addEventListener("webglcontextlost",function(t){s.handleContextLost(t)},!1),this.view.addEventListener("webglcontextrestored",function(t){s.handleContextRestored(t)},!1),this.batchs=[];try{PIXI.gl=this.gl=this.view.getContext("experimental-webgl",{alpha:this.transparent,antialias:!1,premultipliedAlpha:!0})}catch(n){throw Error(" This browser does not support webGL. Try using the canvas renderer"+this)}this.initShaders();var a=this.gl;PIXI.WebGLRenderer.gl=a,this.batch=new PIXI.WebGLBatch(a),a.disable(a.DEPTH_TEST),a.disable(a.CULL_FACE),a.enable(a.BLEND),a.colorMask(!0,!0,!0,this.transparent),this.projectionMatrix=PIXI.mat4.create(),this.resize(this.width,this.height),this.contextLost=!1,this.stageRenderGroup=new PIXI.WebGLRenderGroup(this.gl)},PIXI.WebGLRenderer.constructor=PIXI.WebGLRenderer,PIXI.WebGLRenderer.getBatch=function(){return 0==PIXI._batchs.length?new PIXI.WebGLBatch(PIXI.WebGLRenderer.gl):PIXI._batchs.pop()},PIXI.WebGLRenderer.returnBatch=function(t){t.clean(),PIXI._batchs.push(t)},PIXI.WebGLRenderer.prototype.initShaders=function(){var t=this.gl,e=PIXI.CompileFragmentShader(t,PIXI.shaderFragmentSrc),i=PIXI.CompileVertexShader(t,PIXI.shaderVertexSrc);PIXI.shaderProgram=t.createProgram();var r=PIXI.shaderProgram;t.attachShader(r,i),t.attachShader(r,e),t.linkProgram(r),t.getProgramParameter(r,t.LINK_STATUS)||alert("Could not initialise shaders"),t.useProgram(r),r.vertexPositionAttribute=t.getAttribLocation(r,"aVertexPosition"),t.enableVertexAttribArray(r.vertexPositionAttribute),r.textureCoordAttribute=t.getAttribLocation(r,"aTextureCoord"),t.enableVertexAttribArray(r.textureCoordAttribute),r.colorAttribute=t.getAttribLocation(r,"aColor"),t.enableVertexAttribArray(r.colorAttribute),r.mvMatrixUniform=t.getUniformLocation(r,"uMVMatrix"),r.samplerUniform=t.getUniformLocation(r,"uSampler")},PIXI.WebGLRenderer.prototype.render=function(t){if(!this.contextLost){this.__stage!==t&&(this.__stage=t,this.stageRenderGroup.setRenderable(t));for(var e=0;PIXI.texturesToUpdate.length>e;e++)this.updateTexture(PIXI.texturesToUpdate[e]);for(var e=0;PIXI.texturesToDestroy.length>e;e++)this.destroyTexture(PIXI.texturesToDestroy[e]);PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[],t.updateTransform();var i=this.gl;if(i.colorMask(!0,!0,!0,this.transparent),i.viewport(0,0,this.width,this.height),i.bindFramebuffer(i.FRAMEBUFFER,null),i.clearColor(t.backgroundColorSplit[0],t.backgroundColorSplit[1],t.backgroundColorSplit[2],this.transparent),i.clear(i.COLOR_BUFFER_BIT),this.stageRenderGroup.backgroundColor=t.backgroundColorSplit,this.stageRenderGroup.render(this.projectionMatrix),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),PIXI.Texture.frameUpdates.length>0){for(var e=0;PIXI.Texture.frameUpdates.length>e;e++)PIXI.Texture.frameUpdates[e].updateFrame=!1;PIXI.Texture.frameUpdates=[]}}},PIXI.WebGLRenderer.prototype.updateTexture=function(t){var e=this.gl;t._glTexture||(t._glTexture=e.createTexture()),t.hasLoaded&&(e.bindTexture(e.TEXTURE_2D,t._glTexture),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t.source),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),t._powerOf2?(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT)):(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)),e.bindTexture(e.TEXTURE_2D,null)),this.refreshBatchs=!0},PIXI.WebGLRenderer.prototype.destroyTexture=function(t){var e=this.gl;t._glTexture&&(t._glTexture=e.createTexture(),e.deleteTexture(e.TEXTURE_2D,t._glTexture))},PIXI.WebGLRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e,this.gl.viewport(0,0,this.width,this.height);var i=this.projectionMatrix;i[0]=2/this.width,i[5]=-2/this.height,i[12]=-1,i[13]=1},PIXI.WebGLRenderer.prototype.handleContextLost=function(t){t.preventDefault(),this.contextLost=!0},PIXI.WebGLRenderer.prototype.handleContextRestored=function(){this.gl=this.view.getContext("experimental-webgl",{alpha:!0}),this.initShaders();for(var t=0;PIXI.TextureCache.length>t;t++)this.updateTexture(PIXI.TextureCache[t]);for(var t=0;this.batchs.length>t;t++)this.batchs[t].restoreLostContext(this.gl),this.batchs[t].dirty=!0;PIXI._restoreBatchs(this.gl),this.contextLost=!1},PIXI._batchs=[],PIXI._getBatch=function(t){return 0==PIXI._batchs.length?new PIXI.WebGLBatch(t):PIXI._batchs.pop()},PIXI._returnBatch=function(t){t.clean(),PIXI._batchs.push(t)},PIXI._restoreBatchs=function(t){for(var e=0;PIXI._batchs.length>e;e++)PIXI._batchs[e].restoreLostContext(t)},PIXI.WebGLBatch=function(t){this.gl=t,this.size=0,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer(),this.blendMode=PIXI.blendModes.NORMAL,this.dynamicSize=1},PIXI.WebGLBatch.constructor=PIXI.WebGLBatch,PIXI.WebGLBatch.prototype.clean=function(){this.verticies=[],this.uvs=[],this.indices=[],this.colors=[],this.dynamicSize=1,this.texture=null,this.last=null,this.size=0,this.head,this.tail},PIXI.WebGLBatch.prototype.restoreLostContext=function(t){this.gl=t,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer()},PIXI.WebGLBatch.prototype.init=function(t){t.batch=this,this.dirty=!0,this.blendMode=t.blendMode,this.texture=t.texture.baseTexture,this.head=t,this.tail=t,this.size=1,this.growBatch()},PIXI.WebGLBatch.prototype.insertBefore=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__prev;e.__prev=t,t.__next=e,i?(t.__prev=i,i.__next=t):this.head=t},PIXI.WebGLBatch.prototype.insertAfter=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__next;e.__next=t,t.__prev=e,i?(t.__next=i,i.__prev=t):this.tail=t},PIXI.WebGLBatch.prototype.remove=function(t){return this.size--,0==this.size?(t.batch=null,t.__prev=null,t.__next=null,void 0):(t.__prev?t.__prev.__next=t.__next:(this.head=t.__next,this.head.__prev=null),t.__next?t.__next.__prev=t.__prev:(this.tail=t.__prev,this.tail.__next=null),t.batch=null,t.__next=null,t.__prev=null,this.dirty=!0,void 0)},PIXI.WebGLBatch.prototype.split=function(t){this.dirty=!0;var e=new PIXI.WebGLBatch(this.gl);e.init(t),e.tail=this.tail,this.tail=t.__prev,this.tail.__next=null,t.__prev=null;for(var i=0;t;)i++,t.batch=e,t=t.__next;return e.size=i,this.size-=i,e},PIXI.WebGLBatch.prototype.merge=function(t){this.dirty=!0,this.tail.__next=t.head,t.head.__prev=this.tail,this.size+=t.size,this.tail=t.tail;for(var e=t.head;e;)e.batch=this,e=e.__next},PIXI.WebGLBatch.prototype.growBatch=function(){var t=this.gl;this.dynamicSize=1==this.size?1:1.5*this.size,this.verticies=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.vertexBuffer),t.bufferData(t.ARRAY_BUFFER,this.verticies,t.DYNAMIC_DRAW),this.uvs=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.uvBuffer),t.bufferData(t.ARRAY_BUFFER,this.uvs,t.DYNAMIC_DRAW),this.dirtyUVS=!0,this.colors=new Float32Array(4*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.colorBuffer),t.bufferData(t.ARRAY_BUFFER,this.colors,t.DYNAMIC_DRAW),this.dirtyColors=!0,this.indices=new Uint16Array(6*this.dynamicSize);for(var e=this.indices.length/6,i=0;e>i;i++){var r=6*i,s=4*i;this.indices[r+0]=s+0,this.indices[r+1]=s+1,this.indices[r+2]=s+2,this.indices[r+3]=s+0,this.indices[r+4]=s+2,this.indices[r+5]=s+3}t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,this.indexBuffer),t.bufferData(t.ELEMENT_ARRAY_BUFFER,this.indices,t.STATIC_DRAW)},PIXI.WebGLBatch.prototype.refresh=function(){this.gl,this.dynamicSizei;i++)this.removeDisplayObjectAndChildren(this.toRemove[i]);this.toRemove=[],this.checkVisibility(this.root,this.root.visible);for(var r,i=0;this.batchs.length>i;i++)r=this.batchs[i],r instanceof PIXI.WebGLBatch?this.batchs[i].render():r instanceof PIXI.TilingSprite?r.visible&&this.renderTilingSprite(r,t):r instanceof PIXI.Strip&&r.visible&&this.renderStrip(r,t)},PIXI.WebGLRenderGroup.prototype.renderSpecific=function(t,e){var i=this.gl;this.checkVisibility(t,t.visible),i.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform,!1,e);var r,s,n,a,o=t.renderable?t:this.getNextRenderable(t),h=o.batch;if(o instanceof PIXI.Sprite){h=o.batch;var u=h.head;if(u==o)r=0;else for(r=1;u.__next!=o;)r++,u=u.__next}else h=o;for(var c,d=t,l=t;l.children.length>0;)l=l.children[l.children.length-1],l.renderable&&(d=l);if(d instanceof PIXI.Sprite){c=d.batch;var u=c.head;if(u==d)n=0;else for(n=1;u.__next!=d;)n++,u=u.__next}else c=d;if(h==c)return h instanceof PIXI.WebGLBatch?h.render(r,n+1):h instanceof PIXI.TilingSprite?h.visible&&this.renderTilingSprite(h,e):h instanceof PIXI.Strip?h.visible&&this.renderStrip(h,e):h instanceof PIXI.CustomRenderable&&h.visible&&h.renderWebGL(this,e),void 0;s=this.batchs.indexOf(h),a=this.batchs.indexOf(c),h instanceof PIXI.WebGLBatch?h.render(r):h instanceof PIXI.TilingSprite?h.visible&&this.renderTilingSprite(h,e):h instanceof PIXI.Strip?h.visible&&this.renderStrip(h,e):h instanceof PIXI.CustomRenderable&&h.visible&&h.renderWebGL(this,e);for(var I=s+1;a>I;I++)renderable=this.batchs[I],renderable instanceof PIXI.WebGLBatch?this.batchs[I].render():renderable instanceof PIXI.TilingSprite?renderable.visible&&this.renderTilingSprite(renderable,e):renderable instanceof PIXI.Strip?renderable.visible&&this.renderStrip(renderable,e):renderable instanceof PIXI.CustomRenderable&&renderable.visible&&renderable.renderWebGL(this,e);c instanceof PIXI.WebGLBatch?c.render(0,n+1):c instanceof PIXI.TilingSprite?c.visible&&this.renderTilingSprite(c):c instanceof PIXI.Strip?c.visible&&this.renderStrip(c):c instanceof PIXI.CustomRenderable&&c.visible&&c.renderWebGL(this,e)},PIXI.WebGLRenderGroup.prototype.checkVisibility=function(t,e){for(var i=t.children,r=0;i.length>r;r++){var s=i[r];s.worldVisible=s.visible&&e,s.textureChange&&(s.textureChange=!1,s.worldVisible&&(this.removeDisplayObject(s),this.addDisplayObject(s))),s.children.length>0&&this.checkVisibility(s,s.worldVisible)}},PIXI.WebGLRenderGroup.prototype.addDisplayObject=function(t){if(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.__renderGroup=this,t.renderable){var e=this.getPreviousRenderable(t),i=this.getNextRenderable(t);if(t instanceof PIXI.Sprite){var r,s;if(e instanceof PIXI.Sprite){if(r=e.batch,r&&r.texture==t.texture.baseTexture&&r.blendMode==t.blendMode)return r.insertAfter(t,e),void 0}else r=e;if(i)if(i instanceof PIXI.Sprite){if(s=i.batch){if(s.texture==t.texture.baseTexture&&s.blendMode==t.blendMode)return s.insertBefore(t,i),void 0;if(s==r){var n=r.split(i),a=PIXI.WebGLRenderer.getBatch(),o=this.batchs.indexOf(r);return a.init(t),this.batchs.splice(o+1,0,a,n),void 0}}}else s=i;var a=PIXI.WebGLRenderer.getBatch();if(a.init(t),r){var o=this.batchs.indexOf(r);this.batchs.splice(o+1,0,a)}else this.batchs.push(a)}else t instanceof PIXI.TilingSprite?(this.initTilingSprite(t),this.batchs.push(t)):t instanceof PIXI.Strip&&(this.initStrip(t),this.batchs.push(t));this.batchUpdate=!0}},PIXI.WebGLRenderGroup.prototype.addDisplayObjectAndChildren=function(t){this.addDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.addDisplayObjectAndChildren(e[i])},PIXI.WebGLRenderGroup.prototype.removeDisplayObject=function(t){if(t.__renderGroup=null,t.renderable){var e;if(t instanceof PIXI.Sprite){var i=t.batch;if(!i)return;i.remove(t),0==i.size&&(e=i)}else e=t;if(e){var r=this.batchs.indexOf(e);if(-1==r)return;if(0==r||r==this.batchs.length-1)return this.batchs.splice(r,1),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e),void 0;if(this.batchs[r-1]instanceof PIXI.WebGLBatch&&this.batchs[r+1]instanceof PIXI.WebGLBatch&&this.batchs[r-1].texture==this.batchs[r+1].texture&&this.batchs[r-1].blendMode==this.batchs[r+1].blendMode)return this.batchs[r-1].merge(this.batchs[r+1]),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e),PIXI.WebGLRenderer.returnBatch(this.batchs[r+1]),this.batchs.splice(r,2),void 0;this.batchs.splice(r,1),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e)}}},PIXI.WebGLRenderGroup.prototype.removeDisplayObjectAndChildren=function(t){if(t.__renderGroup==this){this.removeDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.removeDisplayObjectAndChildren(e[i])}},PIXI.WebGLRenderGroup.prototype.getNextRenderable=function(t){var e=t;do{if(0==e.children.length){if(!e.parent)return null;for(;e.childIndex==e.parent.children.length-1;)if(e=e.parent,e==this.root){e=null;break}e&&(e=e.parent.children[e.childIndex+1])}else e=e.children[0];if(!e)break}while(!e.renderable||!e.__renderGroup);return e},PIXI.WebGLRenderGroup.prototype.getPreviousRenderable=function(t){var e=t;do{if(0==e.childIndex){if(e=e.parent,!e)return null}else for(e=e.parent.children[e.childIndex-1];0!=e.children.length;)e=e.children[e.children.length-1];if(e==this.root)break}while(!e.renderable||!e.__renderGroup);return e},PIXI.WebGLRenderGroup.prototype.initTilingSprite=function(t){var e=this.gl;t.verticies=new Float32Array([0,0,t.width,0,t.width,t.height,0,t.height]),t.uvs=new Float32Array([0,0,1,0,1,1,0,1]),t.colors=new Float32Array([1,1,1,1]),t.indices=new Uint16Array([0,1,3,2]),t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW),t.texture.baseTexture._glTexture?(e.bindTexture(e.TEXTURE_2D,t.texture.baseTexture._glTexture),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT),t.texture.baseTexture._powerOf2=!0):t.texture.baseTexture._powerOf2=!0},PIXI.WebGLRenderGroup.prototype.renderStrip=function(t,e){var i=this.gl,r=PIXI.shaderProgram,s=PIXI.mat3.toMat4(t.worldTransform);PIXI.mat4.transpose(s),PIXI.mat4.multiply(e,s,s),i.uniformMatrix4fv(r.mvMatrixUniform,!1,s),t.blendMode==PIXI.blendModes.NORMAL?i.blendFunc(i.ONE,i.ONE_MINUS_SRC_ALPHA):i.blendFunc(i.ONE,i.ONE_MINUS_SRC_COLOR),t.dirty?(t.dirty=!1,i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferData(i.ARRAY_BUFFER,t.verticies,i.STATIC_DRAW),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferData(i.ARRAY_BUFFER,t.uvs,i.STATIC_DRAW),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.bufferData(i.ARRAY_BUFFER,t.colors,i.STATIC_DRAW),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer),i.bufferData(i.ELEMENT_ARRAY_BUFFER,t.indices,i.STATIC_DRAW)):(i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.verticies),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer)),i.drawElements(i.TRIANGLE_STRIP,t.indices.length,i.UNSIGNED_SHORT,0),i.uniformMatrix4fv(r.mvMatrixUniform,!1,e)},PIXI.WebGLRenderGroup.prototype.renderTilingSprite=function(t,e){var i=this.gl;PIXI.shaderProgram;var r=t.tilePosition,s=t.tileScale,n=r.x/t.texture.baseTexture.width,a=r.y/t.texture.baseTexture.height,o=t.width/t.texture.baseTexture.width/s.x,h=t.height/t.texture.baseTexture.height/s.y;t.uvs[0]=0-n,t.uvs[1]=0-a,t.uvs[2]=1*o-n,t.uvs[3]=0-a,t.uvs[4]=1*o-n,t.uvs[5]=1*h-a,t.uvs[6]=0-n,t.uvs[7]=1*h-a,i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.uvs),this.renderStrip(t,e)},PIXI.WebGLRenderer.prototype.initStrip=function(t){var e=this.gl;this.shaderProgram,t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW)},PIXI.CanvasRenderer=function(t,e,i,r){this.transparent=r,this.width=t||800,this.height=e||600,this.refresh=!0,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height,this.count=0,this.context=this.view.getContext("2d")},PIXI.CanvasRenderer.constructor=PIXI.CanvasRenderer,PIXI.CanvasRenderer.prototype.render=function(t){PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[],t.updateTransform(),this.view.style.backgroundColor==t.backgroundColorString||this.transparent||(this.view.style.backgroundColor=t.backgroundColorString),this.context.setTransform(1,0,0,1,0,0),this.context.clearRect(0,0,this.width,this.height),this.renderDisplayObject(t),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),PIXI.Texture.frameUpdates.length>0&&(PIXI.Texture.frameUpdates=[])},PIXI.CanvasRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e},PIXI.CanvasRenderer.prototype.renderDisplayObject=function(t){var e=t.worldTransform,i=this.context;if(t.visible){if(t instanceof PIXI.Sprite){var r=t.texture.frame;r&&(i.globalAlpha=t.worldAlpha,i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),i.drawImage(t.texture.baseTexture.source,r.x,r.y,r.width,r.height,t.anchor.x*-r.width,t.anchor.y*-r.height,r.width,r.height))}else t instanceof PIXI.Strip?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderStrip(t)):t instanceof PIXI.TilingSprite?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderTilingSprite(t)):t instanceof PIXI.CustomRenderable&&t.renderCanvas(this);for(var s=0;t.children.length>s;s++)this.renderDisplayObject(t.children[s]);this.context.setTransform(1,0,0,1,0,0)}},PIXI.CanvasRenderer.prototype.renderStripFlat=function(t){var e=this.context,i=t.verticies;t.uvs;var r=i.length/2;this.count++,e.beginPath();for(var s=1;r-2>s;s++){var n=2*s,a=i[n],o=i[n+2],h=i[n+4],u=i[n+1],c=i[n+3],d=i[n+5];e.moveTo(a,u),e.lineTo(o,c),e.lineTo(h,d)}e.fillStyle="#FF0000",e.fill(),e.closePath()},PIXI.CanvasRenderer.prototype.renderTilingSprite=function(t){var e=this.context;t.__tilePattern||(t.__tilePattern=e.createPattern(t.texture.baseTexture.source,"repeat")),e.beginPath();var i=t.tilePosition,r=t.tileScale;e.scale(r.x,r.y),e.translate(i.x,i.y),e.fillStyle=t.__tilePattern,e.fillRect(-i.x,-i.y,t.width/r.x,t.height/r.y),e.scale(1/r.x,1/r.y),e.translate(-i.x,-i.y),e.closePath()},PIXI.CanvasRenderer.prototype.renderStrip=function(t){var e=this.context,i=t.verticies,r=t.uvs,s=i.length/2;this.count++;for(var n=1;s-2>n;n++){var a=2*n,o=i[a],h=i[a+2],u=i[a+4],c=i[a+1],d=i[a+3],l=i[a+5],I=r[a]*t.texture.width,p=r[a+2]*t.texture.width,f=r[a+4]*t.texture.width,x=r[a+1]*t.texture.height,v=r[a+3]*t.texture.height,P=r[a+5]*t.texture.height;e.save(),e.beginPath(),e.moveTo(o,c),e.lineTo(h,d),e.lineTo(u,l),e.closePath(),e.clip();var g=I*v+x*f+p*P-v*f-x*p-I*P,b=o*v+x*u+h*P-v*u-x*h-o*P,X=I*h+o*f+p*u-h*f-o*p-I*u,m=I*v*u+x*h*f+o*p*P-o*v*f-x*p*u-I*h*P,T=c*v+x*l+d*P-v*l-x*d-c*P,y=I*d+c*f+p*l-d*f-c*p-I*l,_=I*v*l+x*d*f+c*p*P-c*v*f-x*p*l-I*d*P;e.transform(b/g,T/g,X/g,y/g,m/g,_/g),e.drawImage(t.texture.baseTexture.source,0,0),e.restore()}},PIXI.Strip=function(t,e,i){PIXI.DisplayObjectContainer.call(this),this.texture=t,this.blendMode=PIXI.blendModes.NORMAL;try{this.uvs=new Float32Array([0,1,1,1,1,0,0,1]),this.verticies=new Float32Array([0,0,0,0,0,0,0,0,0]),this.colors=new Float32Array([1,1,1,1]),this.indices=new Uint16Array([0,1,2,3])}catch(r){this.uvs=[0,1,1,1,1,0,0,1],this.verticies=[0,0,0,0,0,0,0,0,0],this.colors=[1,1,1,1],this.indices=[0,1,2,3]}this.width=e,this.height=i,t.baseTexture.hasLoaded?(this.width=this.texture.frame.width,this.height=this.texture.frame.height,this.updateFrame=!0):(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},PIXI.Strip.constructor=PIXI.Strip,PIXI.Strip.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Strip.prototype.setTexture=function(t){this.texture=t,this.width=t.frame.width,this.height=t.frame.height,this.updateFrame=!0},PIXI.Strip.prototype.onTextureUpdate=function(){this.updateFrame=!0},PIXI.Rope=function(t,e){PIXI.Strip.call(this,t),this.points=e;try{this.verticies=new Float32Array(4*e.length),this.uvs=new Float32Array(4*e.length),this.colors=new Float32Array(2*e.length),this.indices=new Uint16Array(2*e.length)}catch(i){this.verticies=verticies,this.uvs=uvs,this.colors=colors,this.indices=indices}this.refresh()},PIXI.Rope.constructor=PIXI.Rope,PIXI.Rope.prototype=Object.create(PIXI.Strip.prototype),PIXI.Rope.prototype.refresh=function(){var t=this.points;if(!(1>t.length)){var e=this.uvs,i=this.indices,r=this.colors,s=t[0],n=t[0];this.count-=.2,e[0]=0,e[1]=1,e[2]=0,e[3]=1,r[0]=1,r[1]=1,i[0]=0,i[1]=1;for(var a=t.length,o=1;a>o;o++){var n=t[o],h=4*o,u=o/(a-1);o%2?(e[h]=u,e[h+1]=0,e[h+2]=u,e[h+3]=1):(e[h]=u,e[h+1]=0,e[h+2]=u,e[h+3]=1),h=2*o,r[h]=1,r[h+1]=1,h=2*o,i[h]=h,i[h+1]=h+1,s=n}}},PIXI.Rope.prototype.updateTransform=function(){var t=this.points;if(!(1>t.length)){var e,i=this.verticies,r=t[0],s={x:0,y:0},n=t[0];this.count-=.2,i[0]=n.x+s.x,i[1]=n.y+s.y,i[2]=n.x-s.x,i[3]=n.y-s.y;for(var a=t.length,o=1;a>o;o++){var n=t[o],h=4*o;e=t.length-1>o?t[o+1]:n,s.y=-(e.x-r.x),s.x=e.y-r.y;var u=10*(1-o/(a-1));u>1&&(u=1);var c=Math.sqrt(s.x*s.x+s.y*s.y),d=this.texture.height/2;s.x/=c,s.y/=c,s.x*=d,s.y*=d,i[h]=n.x+s.x,i[h+1]=n.y+s.y,i[h+2]=n.x-s.x,i[h+3]=n.y-s.y,r=n}PIXI.DisplayObjectContainer.prototype.updateTransform.call(this)}},PIXI.Rope.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0},PIXI.TilingSprite=function(t,e,i){PIXI.DisplayObjectContainer.call(this),this.texture=t,this.width=e,this.height=i,this.renderable=!0,this.tileScale=new PIXI.Point(1,1),this.tilePosition=new PIXI.Point(0,0),this.blendMode=PIXI.blendModes.NORMAL},PIXI.TilingSprite.constructor=PIXI.TilingSprite,PIXI.TilingSprite.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.TilingSprite.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0},PIXI.TilingSprite.prototype.onTextureUpdate=function(){this.updateFrame=!0},PIXI.CustomRenderable=function(){PIXI.DisplayObject.call(this)},PIXI.CustomRenderable.constructor=PIXI.CustomRenderable,PIXI.CustomRenderable.prototype=Object.create(PIXI.DisplayObject.prototype),PIXI.CustomRenderable.prototype.renderCanvas=function(){},PIXI.CustomRenderable.prototype.initWebGL=function(){},PIXI.CustomRenderable.prototype.renderWebGL=function(){},PIXI.BaseTextureCache={},PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[],PIXI.BaseTexture=function(t){if(PIXI.EventTarget.call(this),this.width=100,this.height=100,this.source=t,t){if(this.source instanceof Image)if(this.source.complete)this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,PIXI.texturesToUpdate.push(this);else{var e=this;this.source.onload=function(){e.hasLoaded=!0,e.width=e.source.width,e.height=e.source.height,PIXI.texturesToUpdate.push(e),e.dispatchEvent({type:"loaded",content:e})}}else this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,PIXI.texturesToUpdate.push(this);this._powerOf2=!1}},PIXI.BaseTexture.constructor=PIXI.BaseTexture,PIXI.BaseTexture.prototype.destroy=function(){this.source instanceof Image&&(this.source.src=null),this.source=null,PIXI.texturesToDestroy.push(this)},PIXI.BaseTexture.fromImage=function(t,e){var i=PIXI.BaseTextureCache[t];if(!i){var r=new Image;e&&(r.crossOrigin=""),r.src=t,i=new PIXI.BaseTexture(r),PIXI.BaseTextureCache[t]=i}return i},PIXI.TextureCache={},PIXI.FrameCache={},PIXI.Texture=function(t,e){if(PIXI.EventTarget.call(this),e||(this.noFrame=!0,e=new PIXI.Rectangle(0,0,1,1)),this.trim=new PIXI.Point,t instanceof PIXI.Texture&&(t=t.baseTexture),this.baseTexture=t,this.frame=e,this.scope=this,t.hasLoaded)this.noFrame&&(e=new PIXI.Rectangle(0,0,t.width,t.height)),this.setFrame(e);else{var i=this;t.addEventListener("loaded",function(){i.onBaseTextureLoaded()})}},PIXI.Texture.constructor=PIXI.Texture,PIXI.Texture.prototype.onBaseTextureLoaded=function(){var t=this.baseTexture;t.removeEventListener("loaded",this.onLoaded),this.noFrame&&(this.frame=new PIXI.Rectangle(0,0,t.width,t.height)),this.noFrame=!1,this.width=this.frame.width,this.height=this.frame.height,this.scope.dispatchEvent({type:"update",content:this})},PIXI.Texture.prototype.destroy=function(t){t&&this.baseTexture.destroy()},PIXI.Texture.prototype.setFrame=function(t){if(this.frame=t,this.width=t.width,this.height=t.height,t.x+t.width>this.baseTexture.width||t.y+t.height>this.baseTexture.height)throw Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);this.updateFrame=!0,PIXI.Texture.frameUpdates.push(this)},PIXI.Texture.fromImage=function(t,e){var i=PIXI.TextureCache[t];return i||(i=new PIXI.Texture(PIXI.BaseTexture.fromImage(t,e)),PIXI.TextureCache[t]=i),i},PIXI.Texture.fromFrame=function(t){var e=PIXI.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache "+this);return e},PIXI.Texture.fromCanvas=function(t){var e=new PIXI.BaseTexture(t);return new PIXI.Texture(e)},PIXI.Texture.addTextureToCache=function(t,e){PIXI.TextureCache[e]=t},PIXI.Texture.removeTextureFromCache=function(t){var e=PIXI.TextureCache[t];return PIXI.TextureCache[t]=null,e},PIXI.Texture.frameUpdates=[],PIXI.RenderTexture=function(t,e){PIXI.EventTarget.call(this),this.width=t||100,this.height=e||100,this.indetityMatrix=PIXI.mat3.create(),this.frame=new PIXI.Rectangle(0,0,this.width,this.height),PIXI.gl?this.initWebGL():this.initCanvas()},PIXI.RenderTexture.constructor=PIXI.RenderTexture,PIXI.RenderTexture.prototype=Object.create(PIXI.Texture.prototype),PIXI.RenderTexture.prototype.initWebGL=function(){var t=PIXI.gl;this.glFramebuffer=t.createFramebuffer(),t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),this.glFramebuffer.width=this.width,this.glFramebuffer.height=this.height,this.baseTexture=new PIXI.BaseTexture,this.baseTexture.width=this.width,this.baseTexture.height=this.height,this.baseTexture._glTexture=t.createTexture(),t.bindTexture(t.TEXTURE_2D,this.baseTexture._glTexture),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,this.width,this.height,0,t.RGBA,t.UNSIGNED_BYTE,null),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),this.baseTexture.isRender=!0,t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,this.baseTexture._glTexture,0),this.projectionMatrix=PIXI.mat4.create(),this.projectionMatrix[5]=2/this.height,this.projectionMatrix[13]=-1,this.projectionMatrix[0]=2/this.width,this.projectionMatrix[12]=-1,this.render=this.renderWebGL},PIXI.RenderTexture.prototype.initCanvas=function(){this.renderer=new PIXI.CanvasRenderer(this.width,this.height,null,0),this.baseTexture=new PIXI.BaseTexture(this.renderer.view),this.frame=new PIXI.Rectangle(0,0,this.width,this.height),this.render=this.renderCanvas},PIXI.RenderTexture.prototype.renderWebGL=function(t,e){var i=PIXI.gl;i.colorMask(!0,!0,!0,!0),i.viewport(0,0,this.width,this.height),i.bindFramebuffer(i.FRAMEBUFFER,this.glFramebuffer),e&&(i.clearColor(0,0,0,0),i.clear(i.COLOR_BUFFER_BIT));var r=t.children;t.worldTransform=PIXI.mat3.create();for(var s=0,n=r.length;n>s;s++)r[s].updateTransform();var a=t.__renderGroup;a?t==a.root?a.render(this.projectionMatrix):a.renderSpecific(t,this.projectionMatrix):(this.renderGroup||(this.renderGroup=new PIXI.WebGLRenderGroup(i)),this.renderGroup.setRenderable(t),this.renderGroup.render(this.projectionMatrix))},PIXI.RenderTexture.prototype.renderCanvas=function(t,e){var i=t.children;t.worldTransform=PIXI.mat3.create();for(var r=0,s=i.length;s>r;r++)i[r].updateTransform();e&&this.renderer.context.clearRect(0,0,this.width,this.height),this.renderer.renderDisplayObject(t),PIXI.texturesToUpdate.push(this.baseTexture)},PIXI.AssetLoader=function(t){PIXI.EventTarget.call(this),this.assetURLs=t,this.crossorigin=!1,this.loadersByType={jpg:PIXI.ImageLoader,jpeg:PIXI.ImageLoader,png:PIXI.ImageLoader,gif:PIXI.ImageLoader,json:PIXI.SpriteSheetLoader,xml:PIXI.BitmapFontLoader,fnt:PIXI.BitmapFontLoader}},PIXI.AssetLoader.constructor=PIXI.AssetLoader,PIXI.AssetLoader.prototype.load=function(){var t=this;this.loadCount=this.assetURLs.length;for(var e=0;this.assetURLs.length>e;e++){var i=this.assetURLs[e],r=i.split(".").pop().toLowerCase(),s=this.loadersByType[r];if(!s)throw Error(r+" is an unsupported file type");var n=new s(i,this.crossorigin);n.addEventListener("loaded",function(){t.onAssetLoaded()}),n.load()}},PIXI.AssetLoader.prototype.onAssetLoaded=function(){this.loadCount--,this.dispatchEvent({type:"onProgress",content:this}),this.onProgress&&this.onProgress(),0==this.loadCount&&(this.dispatchEvent({type:"onComplete",content:this}),this.onComplete&&this.onComplete())},PIXI.SpriteSheetLoader=function(t,e){PIXI.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.frames={},this.crossorigin=e},PIXI.SpriteSheetLoader.constructor=PIXI.SpriteSheetLoader,PIXI.SpriteSheetLoader.prototype.load=function(){this.ajaxRequest=new AjaxRequest;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onJSONLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/json"),this.ajaxRequest.send(null)},PIXI.SpriteSheetLoader.prototype.onJSONLoaded=function(){if(4==this.ajaxRequest.readyState&&(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))){var jsonData=eval("("+this.ajaxRequest.responseText+")"),textureUrl=this.baseUrl+jsonData.meta.image,image=new PIXI.ImageLoader(textureUrl,this.crossorigin);this.texture=image.texture.baseTexture;var scope=this;image.addEventListener("loaded",function(){scope.onLoaded()});var frameData=jsonData.frames;for(var i in frameData){var rect=frameData[i].frame;rect&&(PIXI.TextureCache[i]=new PIXI.Texture(this.texture,{x:rect.x,y:rect.y,width:rect.w,height:rect.h}),frameData[i].trimmed&&(PIXI.TextureCache[i].realSize=frameData[i].spriteSourceSize,PIXI.TextureCache[i].trim.x=0))}image.load()}},PIXI.SpriteSheetLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},PIXI.ImageLoader=function(t,e){PIXI.EventTarget.call(this),this.texture=PIXI.Texture.fromImage(t,e)},PIXI.ImageLoader.constructor=PIXI.ImageLoader,PIXI.ImageLoader.prototype.load=function(){if(this.texture.baseTexture.hasLoaded)this.onLoaded();else{var t=this;this.texture.baseTexture.addEventListener("loaded",function(){t.onLoaded()})}},PIXI.ImageLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},PIXI.BitmapFontLoader=function(t,e){PIXI.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.crossorigin=e},PIXI.BitmapFontLoader.constructor=PIXI.BitmapFontLoader,PIXI.BitmapFontLoader.prototype.load=function(){this.ajaxRequest=new XMLHttpRequest;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onXMLLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/xml"),this.ajaxRequest.send(null)},PIXI.BitmapFontLoader.prototype.onXMLLoaded=function(){if(4==this.ajaxRequest.readyState&&(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))){var t=this.baseUrl+this.ajaxRequest.responseXML.getElementsByTagName("page")[0].attributes.getNamedItem("file").nodeValue,e=new PIXI.ImageLoader(t,this.crossorigin);this.texture=e.texture.baseTexture;var i={},r=this.ajaxRequest.responseXML.getElementsByTagName("info")[0],s=this.ajaxRequest.responseXML.getElementsByTagName("common")[0];i.font=r.attributes.getNamedItem("face").nodeValue,i.size=parseInt(r.attributes.getNamedItem("size").nodeValue,10),i.lineHeight=parseInt(s.attributes.getNamedItem("lineHeight").nodeValue,10),i.chars={};for(var n=this.ajaxRequest.responseXML.getElementsByTagName("char"),a=0;n.length>a;a++){var o=parseInt(n[a].attributes.getNamedItem("id").nodeValue,10),h={x:parseInt(n[a].attributes.getNamedItem("x").nodeValue,10),y:parseInt(n[a].attributes.getNamedItem("y").nodeValue,10),width:parseInt(n[a].attributes.getNamedItem("width").nodeValue,10),height:parseInt(n[a].attributes.getNamedItem("height").nodeValue,10)};PIXI.TextureCache[o]=new PIXI.Texture(this.texture,h),i.chars[o]={xOffset:parseInt(n[a].attributes.getNamedItem("xoffset").nodeValue,10),yOffset:parseInt(n[a].attributes.getNamedItem("yoffset").nodeValue,10),xAdvance:parseInt(n[a].attributes.getNamedItem("xadvance").nodeValue,10),kerning:{}}}var u=this.ajaxRequest.responseXML.getElementsByTagName("kerning");for(a=0;u.length>a;a++){var c=parseInt(u[a].attributes.getNamedItem("first").nodeValue,10),d=parseInt(u[a].attributes.getNamedItem("second").nodeValue,10),l=parseInt(u[a].attributes.getNamedItem("amount").nodeValue,10);i.chars[d].kerning[c]=l}PIXI.BitmapText.fonts[i.font]=i;var I=this;e.addEventListener("loaded",function(){I.onLoaded()}),e.load()}},PIXI.BitmapFontLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=PIXI),exports.PIXI=PIXI):root.PIXI=PIXI}).call(this); \ No newline at end of file +(function(){function HEXtoRGB(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}function determineMatrixArrayType(){return PIXI.Matrix="undefined"!=typeof Float32Array?Float32Array:Array,PIXI.Matrix}var root=this,PIXI=PIXI||{};PIXI.Point=function(t,e){this.x=t||0,this.y=e||0},PIXI.Point.prototype.clone=function(){return new PIXI.Point(this.x,this.y)},PIXI.Point.constructor=PIXI.Point,PIXI.Rectangle=function(t,e,i,r){this.x=t||0,this.y=e||0,this.width=i||0,this.height=r||0},PIXI.Rectangle.prototype.clone=function(){return new PIXI.Rectangle(this.x,this.y,this.width,this.height)},PIXI.Rectangle.constructor=PIXI.Rectangle,PIXI.DisplayObject=function(){this.position=new PIXI.Point,this.scale=new PIXI.Point(1,1),this.pivot=new PIXI.Point(0,0),this.rotation=0,this.alpha=1,this.visible=!0,this.worldVisible=!1,this.parent=null,this.stage=null,this.hitArea=null,this.worldAlpha=1,this.color=[],this.worldTransform=PIXI.mat3.create(),this.localTransform=PIXI.mat3.create(),this.dynamic=!0,this._sr=0,this._cr=1,this.childIndex=0,this.renderable=!1,this.interactive=!1,this.buttonMode=!1},PIXI.DisplayObject.constructor=PIXI.DisplayObject,PIXI.DisplayObject.prototype.setInteractive=function(t){this.interactive=t,this.stage&&(this.stage.dirty=!0)},PIXI.DisplayObject.prototype.updateTransform=function(){this.rotation!=this.rotationCache&&(this.rotationCache=this.rotation,this._sr=Math.sin(this.rotation),this._cr=Math.cos(this.rotation));var t=this.localTransform,e=this.parent.worldTransform,i=this.worldTransform;t[0]=this._cr*this.scale.x,t[1]=-this._sr*this.scale.y,t[3]=this._sr*this.scale.x,t[4]=this._cr*this.scale.y;var r=this.pivot.x,s=this.pivot.y;t[2]=this.position.x-t[0]*r-s*t[1],t[5]=this.position.y-t[4]*s-r*t[3];var n=t[0],a=t[1],o=t[2],h=t[3],u=t[4],d=t[5],c=e[0],l=e[1],I=e[2],p=e[3],f=e[4],x=e[5];i[0]=c*n+l*h,i[1]=c*a+l*u,i[2]=c*o+l*d+I,i[3]=p*n+f*h,i[4]=p*a+f*u,i[5]=p*o+f*d+x,this.worldAlpha=this.alpha*this.parent.worldAlpha},PIXI.DisplayObjectContainer=function(){PIXI.DisplayObject.call(this),this.children=[],this.renderable=!1},PIXI.DisplayObjectContainer.constructor=PIXI.DisplayObjectContainer,PIXI.DisplayObjectContainer.prototype=Object.create(PIXI.DisplayObject.prototype),PIXI.DisplayObjectContainer.prototype.addChild=function(t){void 0!=t.parent&&t.parent.removeChild(t),t.parent=this,t.childIndex=this.children.length,this.children.push(t),this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},PIXI.DisplayObjectContainer.prototype.addChildAt=function(t,e){if(!(e>=0&&this.children.length>=e))throw Error(t+" The index "+e+" supplied is out of bounds "+this.children.length);void 0!=t.parent&&t.parent.removeChild(t),e==this.children.length?this.children.push(t):this.children.splice(e,0,t),t.parent=this,t.childIndex=e;for(var i=this.children.length,r=e;i>r;r++)this.children[r].childIndex=r;this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},PIXI.DisplayObjectContainer.prototype.swapChildren=function(t,e){var i=this.children.indexOf(t),r=this.children.indexOf(e);if(-1===i||-1===r)throw Error(t+" Both the supplied DisplayObjects must be a child of the caller "+this);this.stage&&(this.stage.__removeChild(t),this.stage.__removeChild(e),this.stage.__addChild(t),this.stage.__addChild(e)),t.childIndex=r,e.childIndex=i,this.children[i]=e,this.children[r]=t},PIXI.DisplayObjectContainer.prototype.getChildAt=function(t){if(t>=0&&this.children.length>t)return this.children[t];throw Error(child+" Both the supplied DisplayObjects must be a child of the caller "+this)},PIXI.DisplayObjectContainer.prototype.removeChild=function(t){var e=this.children.indexOf(t);if(-1===e)throw Error(t+" The supplied DisplayObject must be a child of the caller "+this);this.stage&&this.stage.__removeChild(t),t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.parent=void 0,this.children.splice(e,1);for(var i=e,r=this.children.length;r>i;i++)this.children[i].childIndex-=1},PIXI.DisplayObjectContainer.prototype.updateTransform=function(){if(this.visible){PIXI.DisplayObject.prototype.updateTransform.call(this);for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform()}},PIXI.blendModes={},PIXI.blendModes.NORMAL=0,PIXI.blendModes.SCREEN=1,PIXI.Sprite=function(t){PIXI.DisplayObjectContainer.call(this),this.anchor=new PIXI.Point,this.texture=t,this.blendMode=PIXI.blendModes.NORMAL,this._width=0,this._height=0,t.baseTexture.hasLoaded?this.updateFrame=!0:(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},PIXI.Sprite.constructor=PIXI.Sprite,PIXI.Sprite.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),Object.defineProperty(PIXI.Sprite.prototype,"width",{get:function(){return this.scale.x*this.texture.frame.width},set:function(t){this.scale.x=t/this.texture.frame.width,this._width=t}}),Object.defineProperty(PIXI.Sprite.prototype,"height",{get:function(){return this.scale.y*this.texture.frame.height},set:function(t){this.scale.y=t/this.texture.frame.height,this._height=t}}),PIXI.Sprite.prototype.setTexture=function(t){this.texture.baseTexture!=t.baseTexture&&(this.textureChange=!0),this.texture=t,this.updateFrame=!0},PIXI.Sprite.prototype.onTextureUpdate=function(){this._width&&(this.scale.x=this._width/this.texture.frame.width),this._height&&(this.scale.y=this._height/this.texture.frame.height),this.updateFrame=!0},PIXI.Sprite.fromFrame=function(t){var e=PIXI.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache"+this);return new PIXI.Sprite(e)},PIXI.Sprite.fromImage=function(t){var e=PIXI.Texture.fromImage(t);return new PIXI.Sprite(e)},PIXI.MovieClip=function(t){PIXI.Sprite.call(this,t[0]),this.textures=t,this.currentFrame=0,this.animationSpeed=1,this.loop=!0,this.onComplete=null,this.playing},PIXI.MovieClip.constructor=PIXI.MovieClip,PIXI.MovieClip.prototype=Object.create(PIXI.Sprite.prototype),PIXI.MovieClip.prototype.stop=function(){this.playing=!1},PIXI.MovieClip.prototype.play=function(){this.playing=!0},PIXI.MovieClip.prototype.gotoAndStop=function(t){this.playing=!1,this.currentFrame=t;var e=0|this.currentFrame+.5;this.setTexture(this.textures[e%this.textures.length])},PIXI.MovieClip.prototype.gotoAndPlay=function(t){this.currentFrame=t,this.playing=!0},PIXI.MovieClip.prototype.updateTransform=function(){if(PIXI.Sprite.prototype.updateTransform.call(this),this.playing){this.currentFrame+=this.animationSpeed;var t=0|this.currentFrame+.5;this.loop||this.textures.length>t?this.setTexture(this.textures[t%this.textures.length]):t>=this.textures.length&&(this.gotoAndStop(this.textures.length-1),this.onComplete&&this.onComplete())}},PIXI.Text=function(t,e){this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"),PIXI.Sprite.call(this,PIXI.Texture.fromCanvas(this.canvas)),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},PIXI.Text.constructor=PIXI.Text,PIXI.Text.prototype=Object.create(PIXI.Sprite.prototype),PIXI.Text.prototype.setStyle=function(t){t=t||{},t.font=t.font||"bold 20pt Arial",t.fill=t.fill||"black",t.align=t.align||"left",t.strokeThickness=t.strokeThickness||0,this.style=t,this.dirty=!0},PIXI.Sprite.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},PIXI.Text.prototype.updateText=function(){this.context.font=this.style.font;for(var t=this.text.split(/(?:\r\n|\r|\n)/),e=[],i=0,r=0;t.length>r;r++){var s=this.context.measureText(t[r]).width;e[r]=s,i=Math.max(i,s)}this.canvas.width=i+this.style.strokeThickness;var n=this.determineFontHeight("font: "+this.style.font+";")+this.style.strokeThickness;for(this.canvas.height=n*t.length,this.context.fillStyle=this.style.fill,this.context.font=this.style.font,this.context.strokeStyle=this.style.stroke,this.context.lineWidth=this.style.strokeThickness,this.context.textBaseline="top",r=0;t.length>r;r++){var a=new PIXI.Point(this.style.strokeThickness/2,this.style.strokeThickness/2+r*n);"right"==this.style.align?a.x+=i-e[r]:"center"==this.style.align&&(a.x+=(i-e[r])/2),this.style.stroke&&this.style.strokeThickness&&this.context.strokeText(t[r],a.x,a.y),this.style.fill&&this.context.fillText(t[r],a.x,a.y)}this.updateTexture()},PIXI.Text.prototype.updateTexture=function(){this.texture.baseTexture.width=this.canvas.width,this.texture.baseTexture.height=this.canvas.height,this.texture.frame.width=this.canvas.width,this.texture.frame.height=this.canvas.height,this._width=this.canvas.width,this._height=this.canvas.height,PIXI.texturesToUpdate.push(this.texture.baseTexture)},PIXI.Text.prototype.updateTransform=function(){this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype.updateTransform.call(this)},PIXI.Text.prototype.determineFontHeight=function(t){var e=PIXI.Text.heightCache[t];if(!e){var i=document.getElementsByTagName("body")[0],r=document.createElement("div"),s=document.createTextNode("M");r.appendChild(s),r.setAttribute("style",t),i.appendChild(r),e=r.offsetHeight,PIXI.Text.heightCache[t]=e,i.removeChild(r)}return e},PIXI.Text.prototype.destroy=function(t){t&&this.texture.destroy()},PIXI.Text.heightCache={},PIXI.BitmapText=function(t,e){PIXI.DisplayObjectContainer.call(this),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},PIXI.BitmapText.constructor=PIXI.BitmapText,PIXI.BitmapText.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.BitmapText.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},PIXI.BitmapText.prototype.setStyle=function(t){t=t||{},t.align=t.align||"left",this.style=t;var e=t.font.split(" ");this.fontName=e[e.length-1],this.fontSize=e.length>=2?parseInt(e[e.length-2],10):PIXI.BitmapText.fonts[this.fontName].size,this.dirty=!0},PIXI.BitmapText.prototype.updateText=function(){for(var t=PIXI.BitmapText.fonts[this.fontName],e=new PIXI.Point,i=null,r=[],s=0,n=[],a=0,o=this.fontSize/t.size,h=0;this.text.length>h;h++){var u=this.text.charCodeAt(h);if(/(?:\r\n|\r|\n)/.test(this.text.charAt(h)))n.push(e.x),s=Math.max(s,e.x),a++,e.x=0,e.y+=t.lineHeight,i=null;else{var d=t.chars[u];d&&(i&&d[i]&&(e.x+=d.kerning[i]),r.push({line:a,charCode:u,position:new PIXI.Point(e.x+d.xOffset,e.y+d.yOffset)}),e.x+=d.xAdvance,i=u)}}n.push(e.x),s=Math.max(s,e.x);var c=[];for(h=0;a>=h;h++){var l=0;"right"==this.style.align?l=s-n[h]:"center"==this.style.align&&(l=(s-n[h])/2),c.push(l)}for(h=0;r.length>h;h++){var I=PIXI.Sprite.fromFrame(r[h].charCode);I.position.x=(r[h].position.x+c[r[h].line])*o,I.position.y=r[h].position.y*o,I.scale.x=I.scale.y=o,this.addChild(I)}this.width=e.x*o,this.height=(e.y+t.lineHeight)*o},PIXI.BitmapText.prototype.updateTransform=function(){if(this.dirty){for(;this.children.length>0;)this.removeChild(this.getChildAt(0));this.updateText(),this.dirty=!1}PIXI.DisplayObjectContainer.prototype.updateTransform.call(this)},PIXI.BitmapText.fonts={},PIXI.InteractionManager=function(t){this.stage=t,this.tempPoint=new PIXI.Point,this.mouseoverEnabled=!0,this.mouse=new PIXI.InteractionData,this.touchs={},this.pool=[],this.interactiveItems=[],this.last=0},PIXI.InteractionManager.constructor=PIXI.InteractionManager,PIXI.InteractionManager.prototype.collectInteractiveSprite=function(t,e){for(var i=t.children,r=i.length,s=r-1;s>=0;s--){var n=i[s];n.interactive?(e.interactiveChildren=!0,this.interactiveItems.push(n),n.children.length>0&&this.collectInteractiveSprite(n,n)):(n.__iParent=null,n.children.length>0&&this.collectInteractiveSprite(n,e))}},PIXI.InteractionManager.prototype.setTarget=function(t){window.navigator.msPointerEnabled&&(t.view.style["-ms-content-zooming"]="none",t.view.style["-ms-touch-action"]="none"),this.target=t,t.view.addEventListener("mousemove",this.onMouseMove.bind(this),!0),t.view.addEventListener("mousedown",this.onMouseDown.bind(this),!0),document.body.addEventListener("mouseup",this.onMouseUp.bind(this),!0),t.view.addEventListener("mouseout",this.onMouseUp.bind(this),!0),t.view.addEventListener("touchstart",this.onTouchStart.bind(this),!0),t.view.addEventListener("touchend",this.onTouchEnd.bind(this),!0),t.view.addEventListener("touchmove",this.onTouchMove.bind(this),!0)},PIXI.InteractionManager.prototype.update=function(){if(this.target){var t=Date.now(),e=t-this.last;if(e=30*e/1e3,!(1>e)){if(this.last=t,this.dirty){this.dirty=!1,this.interactiveItems.length;for(var i=0;this.interactiveItems.length>i;i++)this.interactiveItems[i].interactiveChildren=!1;this.interactiveItems=[],this.stage.interactive&&this.interactiveItems.push(this.stage),this.collectInteractiveSprite(this.stage,this.stage)}var r=this.interactiveItems.length;this.target.view.style.cursor="default";for(var i=0;r>i;i++){var s=this.interactiveItems[i];s.visible&&(s.mouseover||s.mouseout||s.buttonMode)&&(s.__hit=this.hitTest(s,this.mouse),s.__hit?(s.buttonMode&&(this.target.view.style.cursor="pointer"),s.__isOver||(s.mouseover&&s.mouseover(this.mouse),s.__isOver=!0)):s.__isOver&&(s.mouseout&&s.mouseout(this.mouse),s.__isOver=!1))}}}},PIXI.InteractionManager.prototype.onMouseMove=function(t){t.preventDefault();var e=this.target.view.getBoundingClientRect();this.mouse.global.x=(t.clientX-e.left)*(this.target.width/e.width),this.mouse.global.y=(t.clientY-e.top)*(this.target.height/e.height);var i=this.interactiveItems.length;this.mouse.global;for(var r=0;i>r;r++){var s=this.interactiveItems[r];s.mousemove&&s.mousemove(this.mouse)}},PIXI.InteractionManager.prototype.onMouseDown=function(t){t.preventDefault();var e=this.interactiveItems.length;this.mouse.global,this.stage;for(var i=0;e>i;i++){var r=this.interactiveItems[i];if((r.mousedown||r.click)&&(r.__mouseIsDown=!0,r.__hit=this.hitTest(r,this.mouse),r.__hit&&(r.mousedown&&r.mousedown(this.mouse),r.__isDown=!0,!r.interactiveChildren)))break}},PIXI.InteractionManager.prototype.onMouseUp=function(t){t.preventDefault(),this.mouse.global;for(var e=this.interactiveItems.length,i=!1,r=0;e>r;r++){var s=this.interactiveItems[r];(s.mouseup||s.mouseupoutside||s.click)&&(s.__hit=this.hitTest(s,this.mouse),s.__hit&&!i?(s.mouseup&&s.mouseup(this.mouse),s.__isDown&&s.click&&s.click(this.mouse),s.interactiveChildren||(i=!0)):s.__isDown&&s.mouseupoutside&&s.mouseupoutside(this.mouse),s.__isDown=!1)}},PIXI.InteractionManager.prototype.hitTest=function(t,e){var i=e.global;if(!t.visible)return!1;if(t instanceof PIXI.Sprite){var r=t.worldTransform,s=r[0],n=r[1],a=r[2],o=r[3],h=r[4],u=r[5],d=1/(s*h+n*-o),c=h*d*i.x+-n*d*i.y+(u*n-a*h)*d,l=s*d*i.y+-o*d*i.x+(-u*s+a*o)*d,I=t.texture.frame.width,p=t.texture.frame.height,f=-I*t.anchor.x;if(c>f&&f+I>c){var x=-p*t.anchor.y;if(l>x&&x+p>l)return e.target=t,!0}}else if(t.hitArea){var r=t.worldTransform,v=t.hitArea,s=r[0],n=r[1],a=r[2],o=r[3],h=r[4],u=r[5],d=1/(s*h+n*-o),c=h*d*i.x+-n*d*i.y+(u*n-a*h)*d,l=s*d*i.y+-o*d*i.x+(-u*s+a*o)*d,f=v.x;if(c>f&&f+v.width>c){var x=v.y;if(l>x&&x+v.height>l)return!0}}for(var P=t.children.length,g=0;P>g;g++){var b=t.children[g],X=this.hitTest(b,e);if(X)return!0}return!1},PIXI.InteractionManager.prototype.onTouchMove=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.touchs[s.identifier];n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height)}for(var a=this.interactiveItems.length,r=0;a>r;r++){var o=this.interactiveItems[r];o.touchmove&&o.touchmove(n)}},PIXI.InteractionManager.prototype.onTouchStart=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.pool.pop();n||(n=new PIXI.InteractionData),this.touchs[s.identifier]=n,n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height);for(var a=this.interactiveItems.length,o=0;a>o;o++){var h=this.interactiveItems[o];if((h.touchstart||h.tap)&&(h.__hit=this.hitTest(h,n),h.__hit&&(h.touchstart&&h.touchstart(n),h.__isDown=!0,h.__touchData=n,!h.interactiveChildren)))break}}},PIXI.InteractionManager.prototype.onTouchEnd=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.touchs[s.identifier],a=!1;n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var u=this.interactiveItems[h],d=u.__touchData;u.__hit=this.hitTest(u,n),d==n&&((u.touchend||u.tap)&&(u.__hit&&!a?(u.touchend&&u.touchend(n),u.__isDown&&u.tap&&u.tap(n),u.interactiveChildren||(a=!0)):u.__isDown&&u.touchendoutside&&u.touchendoutside(n),u.__isDown=!1),u.__touchData=null)}this.pool.push(n),this.touchs[s.identifier]=null}},PIXI.InteractionData=function(){this.global=new PIXI.Point,this.local=new PIXI.Point,this.target},PIXI.InteractionData.prototype.getLocalPosition=function(t){var e=t.worldTransform,i=this.global,r=e[0],s=e[1],n=e[2],a=e[3],o=e[4],h=e[5],u=1/(r*o+s*-a);return new PIXI.Point(o*u*i.x+-s*u*i.y+(h*s-n*o)*u,r*u*i.y+-a*u*i.x+(-h*r+n*a)*u)},PIXI.InteractionData.constructor=PIXI.InteractionData,PIXI.Stage=function(t,e){PIXI.DisplayObjectContainer.call(this),this.worldTransform=PIXI.mat3.create(),this.__childrenAdded=[],this.__childrenRemoved=[],this.childIndex=0,this.stage=this,this.stage.hitArea=new PIXI.Rectangle(0,0,1e5,1e5),this.interactive=!!e,this.interactionManager=new PIXI.InteractionManager(this),this.setBackgroundColor(t),this.worldVisible=!0},PIXI.Stage.constructor=PIXI.Stage,PIXI.Stage.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Stage.prototype.updateTransform=function(){this.worldAlpha=1;for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform();this.dirty&&(this.dirty=!1,this.interactionManager.dirty=!0),this.interactive&&this.interactionManager.update()},PIXI.Stage.prototype.setBackgroundColor=function(t){this.backgroundColor=t||0,this.backgroundColorSplit=HEXtoRGB(this.backgroundColor),this.backgroundColorString="#"+this.backgroundColor.toString(16)},PIXI.Stage.prototype.getMousePosition=function(){return this.interactionManager.mouse.global},PIXI.Stage.prototype.__addChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=this,t.children)for(var e=0;t.children.length>e;e++)this.__addChild(t.children[e])},PIXI.Stage.prototype.__removeChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=void 0,t.children)for(var e=0,i=t.children.length;i>e;e++)this.__removeChild(t.children[e])},window.requestAnimFrame=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(t){window.setTimeout(t,1e3/60)}}(),"function"!=typeof Function.prototype.bind&&(Function.prototype.bind=function(){var t=Array.prototype.slice;return function(e){function i(){var n=s.concat(t.call(arguments));r.apply(this instanceof i?this:e,n)}var r=this,s=t.call(arguments,1);if("function"!=typeof r)throw new TypeError;return i.prototype=function n(t){return t&&(n.prototype=t),this instanceof n?void 0:new n}(r.prototype),i}}());var AjaxRequest=function(){var t=["Msxml2.XMLHTTP","Microsoft.XMLHTTP"];if(!window.ActiveXObject)return window.XMLHttpRequest?new XMLHttpRequest:!1;for(var e=0;t.length>e;e++)try{return new ActiveXObject(t[e])}catch(i){}};PIXI.EventTarget=function(){var t={};this.addEventListener=this.on=function(e,i){void 0===t[e]&&(t[e]=[]),-1===t[e].indexOf(i)&&t[e].push(i)},this.dispatchEvent=this.emit=function(e){for(var i in t[e.type])t[e.type][i](e)},this.removeEventListener=this.off=function(e,i){var r=t[e].indexOf(i);-1!==r&&t[e].splice(r,1)}},determineMatrixArrayType(),PIXI.mat3={},PIXI.mat3.create=function(){var t=new PIXI.Matrix(9);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},PIXI.mat4={},PIXI.mat4.create=function(){var t=new PIXI.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},PIXI.mat3.multiply=function(t,e,i){i||(i=t);var r=t[0],s=t[1],n=t[2],a=t[3],o=t[4],h=t[5],u=t[6],d=t[7],c=t[8],l=e[0],I=e[1],p=e[2],f=e[3],x=e[4],v=e[5],P=e[6],g=e[7],b=e[8];return i[0]=l*r+I*a+p*u,i[1]=l*s+I*o+p*d,i[2]=l*n+I*h+p*c,i[3]=f*r+x*a+v*u,i[4]=f*s+x*o+v*d,i[5]=f*n+x*h+v*c,i[6]=P*r+g*a+b*u,i[7]=P*s+g*o+b*d,i[8]=P*n+g*h+b*c,i},PIXI.mat3.toMat4=function(t,e){return e||(e=PIXI.mat4.create()),e[15]=1,e[14]=0,e[13]=0,e[12]=0,e[11]=0,e[10]=t[8],e[9]=t[7],e[8]=t[6],e[7]=0,e[6]=t[5],e[5]=t[4],e[4]=t[3],e[3]=0,e[2]=t[2],e[1]=t[1],e[0]=t[0],e},PIXI.mat4.create=function(){var t=new PIXI.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},PIXI.mat4.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],s=t[3],n=t[6],a=t[7],o=t[11];return t[1]=t[4],t[2]=t[8],t[3]=t[12],t[4]=i,t[6]=t[9],t[7]=t[13],t[8]=r,t[9]=n,t[11]=t[14],t[12]=s,t[13]=a,t[14]=o,t}return e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=t[1],e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=t[2],e[9]=t[6],e[10]=t[10],e[11]=t[14],e[12]=t[3],e[13]=t[7],e[14]=t[11],e[15]=t[15],e},PIXI.mat4.multiply=function(t,e,i){i||(i=t);var r=t[0],s=t[1],n=t[2],a=t[3],o=t[4],h=t[5],u=t[6],d=t[7],c=t[8],l=t[9],I=t[10],p=t[11],f=t[12],x=t[13],v=t[14],P=t[15],g=e[0],b=e[1],X=e[2],m=e[3];return i[0]=g*r+b*o+X*c+m*f,i[1]=g*s+b*h+X*l+m*x,i[2]=g*n+b*u+X*I+m*v,i[3]=g*a+b*d+X*p+m*P,g=e[4],b=e[5],X=e[6],m=e[7],i[4]=g*r+b*o+X*c+m*f,i[5]=g*s+b*h+X*l+m*x,i[6]=g*n+b*u+X*I+m*v,i[7]=g*a+b*d+X*p+m*P,g=e[8],b=e[9],X=e[10],m=e[11],i[8]=g*r+b*o+X*c+m*f,i[9]=g*s+b*h+X*l+m*x,i[10]=g*n+b*u+X*I+m*v,i[11]=g*a+b*d+X*p+m*P,g=e[12],b=e[13],X=e[14],m=e[15],i[12]=g*r+b*o+X*c+m*f,i[13]=g*s+b*h+X*l+m*x,i[14]=g*n+b*u+X*I+m*v,i[15]=g*a+b*d+X*p+m*P,i},PIXI.autoDetectRenderer=function(t,e,i,r){t||(t=800),e||(e=600);var s=function(){try{return!!window.WebGLRenderingContext&&!!document.createElement("canvas").getContext("experimental-webgl")}catch(t){return!1}}();return s?new PIXI.WebGLRenderer(t,e,i,r):new PIXI.CanvasRenderer(t,e,i,r)},PIXI.shaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * vColor;","}"],PIXI.shaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform mat4 uMVMatrix;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","gl_Position = uMVMatrix * vec4(aVertexPosition, 1.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],PIXI.CompileVertexShader=function(t,e){return PIXI._CompileShader(t,e,t.VERTEX_SHADER)},PIXI.CompileFragmentShader=function(t,e){return PIXI._CompileShader(t,e,t.FRAGMENT_SHADER)},PIXI._CompileShader=function(t,e,i){var r=e.join("\n"),s=t.createShader(i);return t.shaderSource(s,r),t.compileShader(s),t.getShaderParameter(s,t.COMPILE_STATUS)?s:(alert(t.getShaderInfoLog(s)),null)},PIXI._defaultFrame=new PIXI.Rectangle(0,0,1,1),PIXI.gl,PIXI.WebGLRenderer=function(t,e,i,r){this.transparent=!!r,this.width=t||800,this.height=e||600,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height;var s=this;this.view.addEventListener("webglcontextlost",function(t){s.handleContextLost(t)},!1),this.view.addEventListener("webglcontextrestored",function(t){s.handleContextRestored(t)},!1),this.batchs=[];try{PIXI.gl=this.gl=this.view.getContext("experimental-webgl",{alpha:this.transparent,antialias:!1,premultipliedAlpha:!0})}catch(n){throw Error(" This browser does not support webGL. Try using the canvas renderer"+this)}this.initShaders();var a=this.gl;PIXI.WebGLRenderer.gl=a,this.batch=new PIXI.WebGLBatch(a),a.disable(a.DEPTH_TEST),a.disable(a.CULL_FACE),a.enable(a.BLEND),a.colorMask(!0,!0,!0,this.transparent),this.projectionMatrix=PIXI.mat4.create(),this.resize(this.width,this.height),this.contextLost=!1,this.stageRenderGroup=new PIXI.WebGLRenderGroup(this.gl)},PIXI.WebGLRenderer.constructor=PIXI.WebGLRenderer,PIXI.WebGLRenderer.getBatch=function(){return 0==PIXI._batchs.length?new PIXI.WebGLBatch(PIXI.WebGLRenderer.gl):PIXI._batchs.pop()},PIXI.WebGLRenderer.returnBatch=function(t){t.clean(),PIXI._batchs.push(t)},PIXI.WebGLRenderer.prototype.initShaders=function(){var t=this.gl,e=PIXI.CompileFragmentShader(t,PIXI.shaderFragmentSrc),i=PIXI.CompileVertexShader(t,PIXI.shaderVertexSrc);PIXI.shaderProgram=t.createProgram();var r=PIXI.shaderProgram;t.attachShader(r,i),t.attachShader(r,e),t.linkProgram(r),t.getProgramParameter(r,t.LINK_STATUS)||alert("Could not initialise shaders"),t.useProgram(r),r.vertexPositionAttribute=t.getAttribLocation(r,"aVertexPosition"),t.enableVertexAttribArray(r.vertexPositionAttribute),r.textureCoordAttribute=t.getAttribLocation(r,"aTextureCoord"),t.enableVertexAttribArray(r.textureCoordAttribute),r.colorAttribute=t.getAttribLocation(r,"aColor"),t.enableVertexAttribArray(r.colorAttribute),r.mvMatrixUniform=t.getUniformLocation(r,"uMVMatrix"),r.samplerUniform=t.getUniformLocation(r,"uSampler")},PIXI.WebGLRenderer.prototype.render=function(t){if(!this.contextLost){this.__stage!==t&&(this.__stage=t,this.stageRenderGroup.setRenderable(t)),PIXI.WebGLRenderer.updateTextures(),t.updateTransform();var e=this.gl;if(e.colorMask(!0,!0,!0,this.transparent),e.viewport(0,0,this.width,this.height),e.bindFramebuffer(e.FRAMEBUFFER,null),e.clearColor(t.backgroundColorSplit[0],t.backgroundColorSplit[1],t.backgroundColorSplit[2],this.transparent),e.clear(e.COLOR_BUFFER_BIT),this.stageRenderGroup.backgroundColor=t.backgroundColorSplit,this.stageRenderGroup.render(this.projectionMatrix),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),PIXI.Texture.frameUpdates.length>0){for(var i=0;PIXI.Texture.frameUpdates.length>i;i++)PIXI.Texture.frameUpdates[i].updateFrame=!1;PIXI.Texture.frameUpdates=[]}}},PIXI.WebGLRenderer.updateTextures=function(){for(var t=0;PIXI.texturesToUpdate.length>t;t++)this.updateTexture(PIXI.texturesToUpdate[t]);for(var t=0;PIXI.texturesToDestroy.length>t;t++)this.destroyTexture(PIXI.texturesToDestroy[t]);PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[]},PIXI.WebGLRenderer.updateTexture=function(t){var e=PIXI.gl;t._glTexture||(t._glTexture=e.createTexture()),t.hasLoaded&&(e.bindTexture(e.TEXTURE_2D,t._glTexture),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t.source),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),t._powerOf2?(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT)):(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)),e.bindTexture(e.TEXTURE_2D,null))},PIXI.WebGLRenderer.prototype.destroyTexture=function(t){var e=this.gl;t._glTexture&&(t._glTexture=e.createTexture(),e.deleteTexture(e.TEXTURE_2D,t._glTexture))},PIXI.WebGLRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e,this.gl.viewport(0,0,this.width,this.height);var i=this.projectionMatrix;i[0]=2/this.width,i[5]=-2/this.height,i[12]=-1,i[13]=1},PIXI.WebGLRenderer.prototype.handleContextLost=function(t){t.preventDefault(),this.contextLost=!0},PIXI.WebGLRenderer.prototype.handleContextRestored=function(){this.gl=this.view.getContext("experimental-webgl",{alpha:!0}),this.initShaders();for(var t=0;PIXI.TextureCache.length>t;t++)this.updateTexture(PIXI.TextureCache[t]);for(var t=0;this.batchs.length>t;t++)this.batchs[t].restoreLostContext(this.gl),this.batchs[t].dirty=!0;PIXI._restoreBatchs(this.gl),this.contextLost=!1},PIXI._batchs=[],PIXI._getBatch=function(t){return 0==PIXI._batchs.length?new PIXI.WebGLBatch(t):PIXI._batchs.pop()},PIXI._returnBatch=function(t){t.clean(),PIXI._batchs.push(t)},PIXI._restoreBatchs=function(t){for(var e=0;PIXI._batchs.length>e;e++)PIXI._batchs[e].restoreLostContext(t)},PIXI.WebGLBatch=function(t){this.gl=t,this.size=0,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer(),this.blendMode=PIXI.blendModes.NORMAL,this.dynamicSize=1},PIXI.WebGLBatch.constructor=PIXI.WebGLBatch,PIXI.WebGLBatch.prototype.clean=function(){this.verticies=[],this.uvs=[],this.indices=[],this.colors=[],this.dynamicSize=1,this.texture=null,this.last=null,this.size=0,this.head,this.tail},PIXI.WebGLBatch.prototype.restoreLostContext=function(t){this.gl=t,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer()},PIXI.WebGLBatch.prototype.init=function(t){t.batch=this,this.dirty=!0,this.blendMode=t.blendMode,this.texture=t.texture.baseTexture,this.head=t,this.tail=t,this.size=1,this.growBatch()},PIXI.WebGLBatch.prototype.insertBefore=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__prev;e.__prev=t,t.__next=e,i?(t.__prev=i,i.__next=t):this.head=t},PIXI.WebGLBatch.prototype.insertAfter=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__next;e.__next=t,t.__prev=e,i?(t.__next=i,i.__prev=t):this.tail=t},PIXI.WebGLBatch.prototype.remove=function(t){return this.size--,0==this.size?(t.batch=null,t.__prev=null,t.__next=null,void 0):(t.__prev?t.__prev.__next=t.__next:(this.head=t.__next,this.head.__prev=null),t.__next?t.__next.__prev=t.__prev:(this.tail=t.__prev,this.tail.__next=null),t.batch=null,t.__next=null,t.__prev=null,this.dirty=!0,void 0)},PIXI.WebGLBatch.prototype.split=function(t){this.dirty=!0;var e=new PIXI.WebGLBatch(this.gl);e.init(t),e.tail=this.tail,this.tail=t.__prev,this.tail.__next=null,t.__prev=null;for(var i=0;t;)i++,t.batch=e,t=t.__next;return e.size=i,this.size-=i,e},PIXI.WebGLBatch.prototype.merge=function(t){this.dirty=!0,this.tail.__next=t.head,t.head.__prev=this.tail,this.size+=t.size,this.tail=t.tail;for(var e=t.head;e;)e.batch=this,e=e.__next},PIXI.WebGLBatch.prototype.growBatch=function(){var t=this.gl;this.dynamicSize=1==this.size?1:1.5*this.size,this.verticies=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.vertexBuffer),t.bufferData(t.ARRAY_BUFFER,this.verticies,t.DYNAMIC_DRAW),this.uvs=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.uvBuffer),t.bufferData(t.ARRAY_BUFFER,this.uvs,t.DYNAMIC_DRAW),this.dirtyUVS=!0,this.colors=new Float32Array(4*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.colorBuffer),t.bufferData(t.ARRAY_BUFFER,this.colors,t.DYNAMIC_DRAW),this.dirtyColors=!0,this.indices=new Uint16Array(6*this.dynamicSize);for(var e=this.indices.length/6,i=0;e>i;i++){var r=6*i,s=4*i;this.indices[r+0]=s+0,this.indices[r+1]=s+1,this.indices[r+2]=s+2,this.indices[r+3]=s+0,this.indices[r+4]=s+2,this.indices[r+5]=s+3}t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,this.indexBuffer),t.bufferData(t.ELEMENT_ARRAY_BUFFER,this.indices,t.STATIC_DRAW)},PIXI.WebGLBatch.prototype.refresh=function(){this.gl,this.dynamicSizer;r++)i=this.batchs[r],i instanceof PIXI.WebGLBatch?this.batchs[r].render():i instanceof PIXI.TilingSprite?i.visible&&this.renderTilingSprite(i,t):i instanceof PIXI.Strip&&i.visible&&this.renderStrip(i,t)},PIXI.WebGLRenderGroup.prototype.renderSpecific=function(t,e){PIXI.WebGLRenderer.updateTextures();var i=this.gl;this.checkVisibility(t,t.visible),i.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform,!1,e);var r,s,n,a,o=t.renderable?t:this.getNextRenderable(t),h=o.batch;if(o instanceof PIXI.Sprite){h=o.batch;var u=h.head;if(u==o)r=0;else for(r=1;u.__next!=o;)r++,u=u.__next}else h=o;for(var d,c=t,l=t;l.children.length>0;)l=l.children[l.children.length-1],l.renderable&&(c=l);if(c instanceof PIXI.Sprite){d=c.batch;var u=d.head;if(u==c)n=0;else for(n=1;u.__next!=c;)n++,u=u.__next}else d=c;if(h==d)return h instanceof PIXI.WebGLBatch?h.render(r,n+1):h instanceof PIXI.TilingSprite?h.visible&&this.renderTilingSprite(h,e):h instanceof PIXI.Strip?h.visible&&this.renderStrip(h,e):h instanceof PIXI.CustomRenderable&&h.visible&&h.renderWebGL(this,e),void 0;s=this.batchs.indexOf(h),a=this.batchs.indexOf(d),h instanceof PIXI.WebGLBatch?h.render(r):h instanceof PIXI.TilingSprite?h.visible&&this.renderTilingSprite(h,e):h instanceof PIXI.Strip?h.visible&&this.renderStrip(h,e):h instanceof PIXI.CustomRenderable&&h.visible&&h.renderWebGL(this,e);for(var I=s+1;a>I;I++)renderable=this.batchs[I],renderable instanceof PIXI.WebGLBatch?this.batchs[I].render():renderable instanceof PIXI.TilingSprite?renderable.visible&&this.renderTilingSprite(renderable,e):renderable instanceof PIXI.Strip?renderable.visible&&this.renderStrip(renderable,e):renderable instanceof PIXI.CustomRenderable&&renderable.visible&&renderable.renderWebGL(this,e);d instanceof PIXI.WebGLBatch?d.render(0,n+1):d instanceof PIXI.TilingSprite?d.visible&&this.renderTilingSprite(d):d instanceof PIXI.Strip?d.visible&&this.renderStrip(d):d instanceof PIXI.CustomRenderable&&d.visible&&d.renderWebGL(this,e)},PIXI.WebGLRenderGroup.prototype.checkVisibility=function(t,e){for(var i=t.children,r=0;i.length>r;r++){var s=i[r];s.worldVisible=s.visible&&e,s.textureChange&&(s.textureChange=!1,s.worldVisible&&(this.removeDisplayObject(s),this.addDisplayObject(s))),s.children.length>0&&this.checkVisibility(s,s.worldVisible)}},PIXI.WebGLRenderGroup.prototype.addDisplayObject=function(t){if(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.__renderGroup=this,t.renderable){var e=this.getPreviousRenderable(t),i=this.getNextRenderable(t);if(t instanceof PIXI.Sprite){var r,s;if(e instanceof PIXI.Sprite){if(r=e.batch,r&&r.texture==t.texture.baseTexture&&r.blendMode==t.blendMode)return r.insertAfter(t,e),void 0}else r=e;if(i)if(i instanceof PIXI.Sprite){if(s=i.batch){if(s.texture==t.texture.baseTexture&&s.blendMode==t.blendMode)return s.insertBefore(t,i),void 0;if(s==r){var n=r.split(i),a=PIXI.WebGLRenderer.getBatch(),o=this.batchs.indexOf(r);return a.init(t),this.batchs.splice(o+1,0,a,n),void 0}}}else s=i;var a=PIXI.WebGLRenderer.getBatch();if(a.init(t),r){var o=this.batchs.indexOf(r);this.batchs.splice(o+1,0,a)}else this.batchs.push(a)}else t instanceof PIXI.TilingSprite?(this.initTilingSprite(t),this.batchs.push(t)):t instanceof PIXI.Strip&&(this.initStrip(t),this.batchs.push(t));this.batchUpdate=!0}},PIXI.WebGLRenderGroup.prototype.addDisplayObjectAndChildren=function(t){this.addDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.addDisplayObjectAndChildren(e[i])},PIXI.WebGLRenderGroup.prototype.removeDisplayObject=function(t){if(t.__renderGroup=null,t.renderable){var e;if(t instanceof PIXI.Sprite){var i=t.batch;if(!i)return;i.remove(t),0==i.size&&(e=i)}else e=t;if(e){var r=this.batchs.indexOf(e);if(-1==r)return;if(0==r||r==this.batchs.length-1)return this.batchs.splice(r,1),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e),void 0;if(this.batchs[r-1]instanceof PIXI.WebGLBatch&&this.batchs[r+1]instanceof PIXI.WebGLBatch&&this.batchs[r-1].texture==this.batchs[r+1].texture&&this.batchs[r-1].blendMode==this.batchs[r+1].blendMode)return this.batchs[r-1].merge(this.batchs[r+1]),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e),PIXI.WebGLRenderer.returnBatch(this.batchs[r+1]),this.batchs.splice(r,2),void 0;this.batchs.splice(r,1),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e)}}},PIXI.WebGLRenderGroup.prototype.removeDisplayObjectAndChildren=function(t){if(t.__renderGroup==this){this.removeDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.removeDisplayObjectAndChildren(e[i])}},PIXI.WebGLRenderGroup.prototype.getNextRenderable=function(t){var e=t;do{if(0==e.children.length){if(!e.parent)return null;for(;e.childIndex==e.parent.children.length-1;)if(e=e.parent,e==this.root||!e.parent){e=null;break}e&&(e=e.parent.children[e.childIndex+1])}else e=e.children[0];if(!e)break}while(!e.renderable||!e.__renderGroup);return e},PIXI.WebGLRenderGroup.prototype.getPreviousRenderable=function(t){var e=t;do{if(0==e.childIndex){if(e=e.parent,!e)return null}else for(e=e.parent.children[e.childIndex-1];0!=e.children.length;)e=e.children[e.children.length-1];if(e==this.root)break}while(!e.renderable||!e.__renderGroup);return e},PIXI.WebGLRenderGroup.prototype.initTilingSprite=function(t){var e=this.gl;t.verticies=new Float32Array([0,0,t.width,0,t.width,t.height,0,t.height]),t.uvs=new Float32Array([0,0,1,0,1,1,0,1]),t.colors=new Float32Array([1,1,1,1]),t.indices=new Uint16Array([0,1,3,2]),t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW),t.texture.baseTexture._glTexture?(e.bindTexture(e.TEXTURE_2D,t.texture.baseTexture._glTexture),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT),t.texture.baseTexture._powerOf2=!0):t.texture.baseTexture._powerOf2=!0},PIXI.WebGLRenderGroup.prototype.renderStrip=function(t,e){var i=this.gl,r=PIXI.shaderProgram,s=PIXI.mat3.toMat4(t.worldTransform);PIXI.mat4.transpose(s),PIXI.mat4.multiply(e,s,s),i.uniformMatrix4fv(r.mvMatrixUniform,!1,s),t.blendMode==PIXI.blendModes.NORMAL?i.blendFunc(i.ONE,i.ONE_MINUS_SRC_ALPHA):i.blendFunc(i.ONE,i.ONE_MINUS_SRC_COLOR),t.dirty?(t.dirty=!1,i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferData(i.ARRAY_BUFFER,t.verticies,i.STATIC_DRAW),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferData(i.ARRAY_BUFFER,t.uvs,i.STATIC_DRAW),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.bufferData(i.ARRAY_BUFFER,t.colors,i.STATIC_DRAW),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer),i.bufferData(i.ELEMENT_ARRAY_BUFFER,t.indices,i.STATIC_DRAW)):(i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.verticies),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer)),i.drawElements(i.TRIANGLE_STRIP,t.indices.length,i.UNSIGNED_SHORT,0),i.uniformMatrix4fv(r.mvMatrixUniform,!1,e)},PIXI.WebGLRenderGroup.prototype.renderTilingSprite=function(t,e){var i=this.gl;PIXI.shaderProgram;var r=t.tilePosition,s=t.tileScale,n=r.x/t.texture.baseTexture.width,a=r.y/t.texture.baseTexture.height,o=t.width/t.texture.baseTexture.width/s.x,h=t.height/t.texture.baseTexture.height/s.y;t.uvs[0]=0-n,t.uvs[1]=0-a,t.uvs[2]=1*o-n,t.uvs[3]=0-a,t.uvs[4]=1*o-n,t.uvs[5]=1*h-a,t.uvs[6]=0-n,t.uvs[7]=1*h-a,i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.uvs),this.renderStrip(t,e)},PIXI.WebGLRenderer.prototype.initStrip=function(t){var e=this.gl;this.shaderProgram,t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW)},PIXI.CanvasRenderer=function(t,e,i,r){this.transparent=r,this.width=t||800,this.height=e||600,this.refresh=!0,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height,this.count=0,this.context=this.view.getContext("2d")},PIXI.CanvasRenderer.constructor=PIXI.CanvasRenderer,PIXI.CanvasRenderer.prototype.render=function(t){PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[],t.updateTransform(),this.view.style.backgroundColor==t.backgroundColorString||this.transparent||(this.view.style.backgroundColor=t.backgroundColorString),this.context.setTransform(1,0,0,1,0,0),this.context.clearRect(0,0,this.width,this.height),this.renderDisplayObject(t),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),PIXI.Texture.frameUpdates.length>0&&(PIXI.Texture.frameUpdates=[])},PIXI.CanvasRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e},PIXI.CanvasRenderer.prototype.renderDisplayObject=function(t){var e=t.worldTransform,i=this.context;if(t.visible){if(t instanceof PIXI.Sprite){var r=t.texture.frame;r&&(i.globalAlpha=t.worldAlpha,i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),i.drawImage(t.texture.baseTexture.source,r.x,r.y,r.width,r.height,t.anchor.x*-r.width,t.anchor.y*-r.height,r.width,r.height))}else t instanceof PIXI.Strip?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderStrip(t)):t instanceof PIXI.TilingSprite?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderTilingSprite(t)):t instanceof PIXI.CustomRenderable&&t.renderCanvas(this);for(var s=0;t.children.length>s;s++)this.renderDisplayObject(t.children[s]);this.context.setTransform(1,0,0,1,0,0)}},PIXI.CanvasRenderer.prototype.renderStripFlat=function(t){var e=this.context,i=t.verticies;t.uvs;var r=i.length/2;this.count++,e.beginPath();for(var s=1;r-2>s;s++){var n=2*s,a=i[n],o=i[n+2],h=i[n+4],u=i[n+1],d=i[n+3],c=i[n+5];e.moveTo(a,u),e.lineTo(o,d),e.lineTo(h,c)}e.fillStyle="#FF0000",e.fill(),e.closePath()},PIXI.CanvasRenderer.prototype.renderTilingSprite=function(t){var e=this.context;t.__tilePattern||(t.__tilePattern=e.createPattern(t.texture.baseTexture.source,"repeat")),e.beginPath();var i=t.tilePosition,r=t.tileScale;e.scale(r.x,r.y),e.translate(i.x,i.y),e.fillStyle=t.__tilePattern,e.fillRect(-i.x,-i.y,t.width/r.x,t.height/r.y),e.scale(1/r.x,1/r.y),e.translate(-i.x,-i.y),e.closePath()},PIXI.CanvasRenderer.prototype.renderStrip=function(t){var e=this.context,i=t.verticies,r=t.uvs,s=i.length/2;this.count++;for(var n=1;s-2>n;n++){var a=2*n,o=i[a],h=i[a+2],u=i[a+4],d=i[a+1],c=i[a+3],l=i[a+5],I=r[a]*t.texture.width,p=r[a+2]*t.texture.width,f=r[a+4]*t.texture.width,x=r[a+1]*t.texture.height,v=r[a+3]*t.texture.height,P=r[a+5]*t.texture.height;e.save(),e.beginPath(),e.moveTo(o,d),e.lineTo(h,c),e.lineTo(u,l),e.closePath(),e.clip();var g=I*v+x*f+p*P-v*f-x*p-I*P,b=o*v+x*u+h*P-v*u-x*h-o*P,X=I*h+o*f+p*u-h*f-o*p-I*u,m=I*v*u+x*h*f+o*p*P-o*v*f-x*p*u-I*h*P,T=d*v+x*l+c*P-v*l-x*c-d*P,y=I*c+d*f+p*l-c*f-d*p-I*l,_=I*v*l+x*c*f+d*p*P-d*v*f-x*p*l-I*c*P;e.transform(b/g,T/g,X/g,y/g,m/g,_/g),e.drawImage(t.texture.baseTexture.source,0,0),e.restore()}},PIXI.Strip=function(t,e,i){PIXI.DisplayObjectContainer.call(this),this.texture=t,this.blendMode=PIXI.blendModes.NORMAL;try{this.uvs=new Float32Array([0,1,1,1,1,0,0,1]),this.verticies=new Float32Array([0,0,0,0,0,0,0,0,0]),this.colors=new Float32Array([1,1,1,1]),this.indices=new Uint16Array([0,1,2,3])}catch(r){this.uvs=[0,1,1,1,1,0,0,1],this.verticies=[0,0,0,0,0,0,0,0,0],this.colors=[1,1,1,1],this.indices=[0,1,2,3]}this.width=e,this.height=i,t.baseTexture.hasLoaded?(this.width=this.texture.frame.width,this.height=this.texture.frame.height,this.updateFrame=!0):(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},PIXI.Strip.constructor=PIXI.Strip,PIXI.Strip.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Strip.prototype.setTexture=function(t){this.texture=t,this.width=t.frame.width,this.height=t.frame.height,this.updateFrame=!0},PIXI.Strip.prototype.onTextureUpdate=function(){this.updateFrame=!0},PIXI.Rope=function(t,e){PIXI.Strip.call(this,t),this.points=e;try{this.verticies=new Float32Array(4*e.length),this.uvs=new Float32Array(4*e.length),this.colors=new Float32Array(2*e.length),this.indices=new Uint16Array(2*e.length)}catch(i){this.verticies=verticies,this.uvs=uvs,this.colors=colors,this.indices=indices}this.refresh()},PIXI.Rope.constructor=PIXI.Rope,PIXI.Rope.prototype=Object.create(PIXI.Strip.prototype),PIXI.Rope.prototype.refresh=function(){var t=this.points;if(!(1>t.length)){var e=this.uvs,i=this.indices,r=this.colors,s=t[0],n=t[0];this.count-=.2,e[0]=0,e[1]=1,e[2]=0,e[3]=1,r[0]=1,r[1]=1,i[0]=0,i[1]=1;for(var a=t.length,o=1;a>o;o++){var n=t[o],h=4*o,u=o/(a-1);o%2?(e[h]=u,e[h+1]=0,e[h+2]=u,e[h+3]=1):(e[h]=u,e[h+1]=0,e[h+2]=u,e[h+3]=1),h=2*o,r[h]=1,r[h+1]=1,h=2*o,i[h]=h,i[h+1]=h+1,s=n}}},PIXI.Rope.prototype.updateTransform=function(){var t=this.points;if(!(1>t.length)){var e,i=this.verticies,r=t[0],s={x:0,y:0},n=t[0];this.count-=.2,i[0]=n.x+s.x,i[1]=n.y+s.y,i[2]=n.x-s.x,i[3]=n.y-s.y;for(var a=t.length,o=1;a>o;o++){var n=t[o],h=4*o;e=t.length-1>o?t[o+1]:n,s.y=-(e.x-r.x),s.x=e.y-r.y;var u=10*(1-o/(a-1));u>1&&(u=1);var d=Math.sqrt(s.x*s.x+s.y*s.y),c=this.texture.height/2;s.x/=d,s.y/=d,s.x*=c,s.y*=c,i[h]=n.x+s.x,i[h+1]=n.y+s.y,i[h+2]=n.x-s.x,i[h+3]=n.y-s.y,r=n}PIXI.DisplayObjectContainer.prototype.updateTransform.call(this)}},PIXI.Rope.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0},PIXI.TilingSprite=function(t,e,i){PIXI.DisplayObjectContainer.call(this),this.texture=t,this.width=e,this.height=i,this.renderable=!0,this.tileScale=new PIXI.Point(1,1),this.tilePosition=new PIXI.Point(0,0),this.blendMode=PIXI.blendModes.NORMAL},PIXI.TilingSprite.constructor=PIXI.TilingSprite,PIXI.TilingSprite.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.TilingSprite.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0},PIXI.TilingSprite.prototype.onTextureUpdate=function(){this.updateFrame=!0},PIXI.CustomRenderable=function(){PIXI.DisplayObject.call(this)},PIXI.CustomRenderable.constructor=PIXI.CustomRenderable,PIXI.CustomRenderable.prototype=Object.create(PIXI.DisplayObject.prototype),PIXI.CustomRenderable.prototype.renderCanvas=function(){},PIXI.CustomRenderable.prototype.initWebGL=function(){},PIXI.CustomRenderable.prototype.renderWebGL=function(){},PIXI.BaseTextureCache={},PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[],PIXI.BaseTexture=function(t){if(PIXI.EventTarget.call(this),this.width=100,this.height=100,this.source=t,t){if(this.source instanceof Image)if(this.source.complete)this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,PIXI.texturesToUpdate.push(this);else{var e=this;this.source.onload=function(){e.hasLoaded=!0,e.width=e.source.width,e.height=e.source.height,PIXI.texturesToUpdate.push(e),e.dispatchEvent({type:"loaded",content:e})}}else this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,PIXI.texturesToUpdate.push(this);this._powerOf2=!1}},PIXI.BaseTexture.constructor=PIXI.BaseTexture,PIXI.BaseTexture.prototype.destroy=function(){this.source instanceof Image&&(this.source.src=null),this.source=null,PIXI.texturesToDestroy.push(this)},PIXI.BaseTexture.fromImage=function(t,e){var i=PIXI.BaseTextureCache[t];if(!i){var r=new Image;e&&(r.crossOrigin=""),r.src=t,i=new PIXI.BaseTexture(r),PIXI.BaseTextureCache[t]=i}return i},PIXI.TextureCache={},PIXI.FrameCache={},PIXI.Texture=function(t,e){if(PIXI.EventTarget.call(this),e||(this.noFrame=!0,e=new PIXI.Rectangle(0,0,1,1)),this.trim=new PIXI.Point,t instanceof PIXI.Texture&&(t=t.baseTexture),this.baseTexture=t,this.frame=e,this.scope=this,t.hasLoaded)this.noFrame&&(e=new PIXI.Rectangle(0,0,t.width,t.height)),this.setFrame(e);else{var i=this;t.addEventListener("loaded",function(){i.onBaseTextureLoaded()})}},PIXI.Texture.constructor=PIXI.Texture,PIXI.Texture.prototype.onBaseTextureLoaded=function(){var t=this.baseTexture;t.removeEventListener("loaded",this.onLoaded),this.noFrame&&(this.frame=new PIXI.Rectangle(0,0,t.width,t.height)),this.noFrame=!1,this.width=this.frame.width,this.height=this.frame.height,this.scope.dispatchEvent({type:"update",content:this})},PIXI.Texture.prototype.destroy=function(t){t&&this.baseTexture.destroy()},PIXI.Texture.prototype.setFrame=function(t){if(this.frame=t,this.width=t.width,this.height=t.height,t.x+t.width>this.baseTexture.width||t.y+t.height>this.baseTexture.height)throw Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);this.updateFrame=!0,PIXI.Texture.frameUpdates.push(this)},PIXI.Texture.fromImage=function(t,e){var i=PIXI.TextureCache[t];return i||(i=new PIXI.Texture(PIXI.BaseTexture.fromImage(t,e)),PIXI.TextureCache[t]=i),i},PIXI.Texture.fromFrame=function(t){var e=PIXI.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache "+this);return e},PIXI.Texture.fromCanvas=function(t){var e=new PIXI.BaseTexture(t);return new PIXI.Texture(e)},PIXI.Texture.addTextureToCache=function(t,e){PIXI.TextureCache[e]=t},PIXI.Texture.removeTextureFromCache=function(t){var e=PIXI.TextureCache[t];return PIXI.TextureCache[t]=null,e},PIXI.Texture.frameUpdates=[],PIXI.RenderTexture=function(t,e){PIXI.EventTarget.call(this),this.width=t||100,this.height=e||100,this.indetityMatrix=PIXI.mat3.create(),this.frame=new PIXI.Rectangle(0,0,this.width,this.height),PIXI.gl?this.initWebGL():this.initCanvas()},PIXI.RenderTexture.constructor=PIXI.RenderTexture,PIXI.RenderTexture.prototype=Object.create(PIXI.Texture.prototype),PIXI.RenderTexture.prototype.initWebGL=function(){var t=PIXI.gl;this.glFramebuffer=t.createFramebuffer(),t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),this.glFramebuffer.width=this.width,this.glFramebuffer.height=this.height,this.baseTexture=new PIXI.BaseTexture,this.baseTexture.width=this.width,this.baseTexture.height=this.height,this.baseTexture._glTexture=t.createTexture(),t.bindTexture(t.TEXTURE_2D,this.baseTexture._glTexture),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,this.width,this.height,0,t.RGBA,t.UNSIGNED_BYTE,null),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),this.baseTexture.isRender=!0,t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,this.baseTexture._glTexture,0),this.projectionMatrix=PIXI.mat4.create(),this.projectionMatrix[5]=2/this.height,this.projectionMatrix[13]=-1,this.projectionMatrix[0]=2/this.width,this.projectionMatrix[12]=-1,this.render=this.renderWebGL},PIXI.RenderTexture.prototype.initCanvas=function(){this.renderer=new PIXI.CanvasRenderer(this.width,this.height,null,0),this.baseTexture=new PIXI.BaseTexture(this.renderer.view),this.frame=new PIXI.Rectangle(0,0,this.width,this.height),this.render=this.renderCanvas},PIXI.RenderTexture.prototype.renderWebGL=function(t,e){var i=PIXI.gl;i.colorMask(!0,!0,!0,!0),i.viewport(0,0,this.width,this.height),i.bindFramebuffer(i.FRAMEBUFFER,this.glFramebuffer),e&&(i.clearColor(0,0,0,0),i.clear(i.COLOR_BUFFER_BIT));var r=t.children;t.worldTransform=PIXI.mat3.create();for(var s=0,n=r.length;n>s;s++)r[s].updateTransform();var a=t.__renderGroup;a?t==a.root?a.render(this.projectionMatrix):a.renderSpecific(t,this.projectionMatrix):(this.renderGroup||(this.renderGroup=new PIXI.WebGLRenderGroup(i)),this.renderGroup.setRenderable(t),this.renderGroup.render(this.projectionMatrix))},PIXI.RenderTexture.prototype.renderCanvas=function(t,e){var i=t.children;t.worldTransform=PIXI.mat3.create();for(var r=0,s=i.length;s>r;r++)i[r].updateTransform();e&&this.renderer.context.clearRect(0,0,this.width,this.height),this.renderer.renderDisplayObject(t),PIXI.texturesToUpdate.push(this.baseTexture)},PIXI.AssetLoader=function(t){PIXI.EventTarget.call(this),this.assetURLs=t,this.crossorigin=!1,this.loadersByType={jpg:PIXI.ImageLoader,jpeg:PIXI.ImageLoader,png:PIXI.ImageLoader,gif:PIXI.ImageLoader,json:PIXI.SpriteSheetLoader,xml:PIXI.BitmapFontLoader,fnt:PIXI.BitmapFontLoader}},PIXI.AssetLoader.constructor=PIXI.AssetLoader,PIXI.AssetLoader.prototype.load=function(){var t=this;this.loadCount=this.assetURLs.length;for(var e=0;this.assetURLs.length>e;e++){var i=this.assetURLs[e],r=i.split(".").pop().toLowerCase(),s=this.loadersByType[r];if(!s)throw Error(r+" is an unsupported file type");var n=new s(i,this.crossorigin);n.addEventListener("loaded",function(){t.onAssetLoaded()}),n.load()}},PIXI.AssetLoader.prototype.onAssetLoaded=function(){this.loadCount--,this.dispatchEvent({type:"onProgress",content:this}),this.onProgress&&this.onProgress(),0==this.loadCount&&(this.dispatchEvent({type:"onComplete",content:this}),this.onComplete&&this.onComplete())},PIXI.SpriteSheetLoader=function(t,e){PIXI.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.frames={},this.crossorigin=e},PIXI.SpriteSheetLoader.constructor=PIXI.SpriteSheetLoader,PIXI.SpriteSheetLoader.prototype.load=function(){this.ajaxRequest=new AjaxRequest;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onJSONLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/json"),this.ajaxRequest.send(null)},PIXI.SpriteSheetLoader.prototype.onJSONLoaded=function(){if(4==this.ajaxRequest.readyState&&(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))){var jsonData=eval("("+this.ajaxRequest.responseText+")"),textureUrl=this.baseUrl+jsonData.meta.image,image=new PIXI.ImageLoader(textureUrl,this.crossorigin);this.texture=image.texture.baseTexture;var scope=this;image.addEventListener("loaded",function(){scope.onLoaded()});var frameData=jsonData.frames;for(var i in frameData){var rect=frameData[i].frame;rect&&(PIXI.TextureCache[i]=new PIXI.Texture(this.texture,{x:rect.x,y:rect.y,width:rect.w,height:rect.h}),frameData[i].trimmed&&(PIXI.TextureCache[i].realSize=frameData[i].spriteSourceSize,PIXI.TextureCache[i].trim.x=0))}image.load()}},PIXI.SpriteSheetLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},PIXI.ImageLoader=function(t,e){PIXI.EventTarget.call(this),this.texture=PIXI.Texture.fromImage(t,e)},PIXI.ImageLoader.constructor=PIXI.ImageLoader,PIXI.ImageLoader.prototype.load=function(){if(this.texture.baseTexture.hasLoaded)this.onLoaded();else{var t=this;this.texture.baseTexture.addEventListener("loaded",function(){t.onLoaded()})}},PIXI.ImageLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},PIXI.BitmapFontLoader=function(t,e){PIXI.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.crossorigin=e},PIXI.BitmapFontLoader.constructor=PIXI.BitmapFontLoader,PIXI.BitmapFontLoader.prototype.load=function(){this.ajaxRequest=new XMLHttpRequest;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onXMLLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/xml"),this.ajaxRequest.send(null)},PIXI.BitmapFontLoader.prototype.onXMLLoaded=function(){if(4==this.ajaxRequest.readyState&&(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))){var t=this.baseUrl+this.ajaxRequest.responseXML.getElementsByTagName("page")[0].attributes.getNamedItem("file").nodeValue,e=new PIXI.ImageLoader(t,this.crossorigin);this.texture=e.texture.baseTexture;var i={},r=this.ajaxRequest.responseXML.getElementsByTagName("info")[0],s=this.ajaxRequest.responseXML.getElementsByTagName("common")[0];i.font=r.attributes.getNamedItem("face").nodeValue,i.size=parseInt(r.attributes.getNamedItem("size").nodeValue,10),i.lineHeight=parseInt(s.attributes.getNamedItem("lineHeight").nodeValue,10),i.chars={};for(var n=this.ajaxRequest.responseXML.getElementsByTagName("char"),a=0;n.length>a;a++){var o=parseInt(n[a].attributes.getNamedItem("id").nodeValue,10),h={x:parseInt(n[a].attributes.getNamedItem("x").nodeValue,10),y:parseInt(n[a].attributes.getNamedItem("y").nodeValue,10),width:parseInt(n[a].attributes.getNamedItem("width").nodeValue,10),height:parseInt(n[a].attributes.getNamedItem("height").nodeValue,10)};PIXI.TextureCache[o]=new PIXI.Texture(this.texture,h),i.chars[o]={xOffset:parseInt(n[a].attributes.getNamedItem("xoffset").nodeValue,10),yOffset:parseInt(n[a].attributes.getNamedItem("yoffset").nodeValue,10),xAdvance:parseInt(n[a].attributes.getNamedItem("xadvance").nodeValue,10),kerning:{}}}var u=this.ajaxRequest.responseXML.getElementsByTagName("kerning");for(a=0;u.length>a;a++){var d=parseInt(u[a].attributes.getNamedItem("first").nodeValue,10),c=parseInt(u[a].attributes.getNamedItem("second").nodeValue,10),l=parseInt(u[a].attributes.getNamedItem("amount").nodeValue,10);i.chars[c].kerning[d]=l}PIXI.BitmapText.fonts[i.font]=i;var I=this;e.addEventListener("loaded",function(){I.onLoaded()}),e.load()}},PIXI.BitmapFontLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=PIXI),exports.PIXI=PIXI):root.PIXI=PIXI}).call(this); \ No newline at end of file diff --git a/docs/classes/WebGLRenderer.html b/docs/classes/WebGLRenderer.html index 581cb5a..fcef6b6 100644 --- a/docs/classes/WebGLRenderer.html +++ b/docs/classes/WebGLRenderer.html @@ -498,7 +498,7 @@ - src/pixi/renderers/WebGLRenderer.js:283 + src/pixi/renderers/WebGLRenderer.js:284

diff --git a/docs/data.json b/docs/data.json index 9b4a49d..4b27831 100644 --- a/docs/data.json +++ b/docs/data.json @@ -1388,35 +1388,35 @@ }, { "file": "src/pixi/renderers/WebGLRenderGroup.js", - "line": 523, + "line": 527, "access": "private", "tagname": "", "class": "WebGLBatch" }, { "file": "src/pixi/renderers/WebGLRenderGroup.js", - "line": 607, + "line": 613, "access": "private", "tagname": "", "class": "WebGLBatch" }, { "file": "src/pixi/renderers/WebGLRenderGroup.js", - "line": 663, + "line": 669, "access": "private", "tagname": "", "class": "WebGLBatch" }, { "file": "src/pixi/renderers/WebGLRenderGroup.js", - "line": 740, + "line": 746, "access": "private", "tagname": "", "class": "WebGLBatch" }, { "file": "src/pixi/renderers/WebGLRenderGroup.js", - "line": 777, + "line": 783, "access": "private", "tagname": "", "class": "WebGLBatch" @@ -1465,14 +1465,14 @@ }, { "file": "src/pixi/renderers/WebGLRenderer.js", - "line": 232, + "line": 225, "access": "private", "tagname": "", "class": "WebGLRenderer" }, { "file": "src/pixi/renderers/WebGLRenderer.js", - "line": 283, + "line": 284, "description": "resizes the webGL view to the specified width and height", "itemtype": "method", "name": "resize", @@ -1492,14 +1492,14 @@ }, { "file": "src/pixi/renderers/WebGLRenderer.js", - "line": 307, + "line": 308, "access": "private", "tagname": "", "class": "WebGLRenderer" }, { "file": "src/pixi/renderers/WebGLRenderer.js", - "line": 316, + "line": 317, "access": "private", "tagname": "", "class": "WebGLRenderer" @@ -2908,23 +2908,23 @@ }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderGroup.js:523" + "line": " src/pixi/renderers/WebGLRenderGroup.js:527" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderGroup.js:607" + "line": " src/pixi/renderers/WebGLRenderGroup.js:613" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderGroup.js:663" + "line": " src/pixi/renderers/WebGLRenderGroup.js:669" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderGroup.js:740" + "line": " src/pixi/renderers/WebGLRenderGroup.js:746" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderGroup.js:777" + "line": " src/pixi/renderers/WebGLRenderGroup.js:783" }, { "message": "Missing item type", @@ -2944,15 +2944,15 @@ }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderer.js:232" + "line": " src/pixi/renderers/WebGLRenderer.js:225" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderer.js:307" + "line": " src/pixi/renderers/WebGLRenderer.js:308" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderer.js:316" + "line": " src/pixi/renderers/WebGLRenderer.js:317" }, { "message": "Missing item type", diff --git a/docs/files/src_pixi_renderers_WebGLRenderGroup.js.html b/docs/files/src_pixi_renderers_WebGLRenderGroup.js.html index 7222602..42bcabd 100644 --- a/docs/files/src_pixi_renderers_WebGLRenderGroup.js.html +++ b/docs/files/src_pixi_renderers_WebGLRenderGroup.js.html @@ -177,6 +177,8 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + //PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. @@ -215,6 +217,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + //PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -683,7 +687,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/docs/files/src_pixi_renderers_WebGLRenderer.js.html b/docs/files/src_pixi_renderers_WebGLRenderer.js.html index 0383c4d..551dd19 100644 --- a/docs/files/src_pixi_renderers_WebGLRenderer.js.html +++ b/docs/files/src_pixi_renderers_WebGLRenderer.js.html @@ -306,15 +306,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -366,9 +359,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -400,7 +402,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) diff --git a/examples/example 1 - Basics/pixi.js b/examples/example 1 - Basics/pixi.js index f29080a..3478cf4 100644 --- a/examples/example 1 - Basics/pixi.js +++ b/examples/example 1 - Basics/pixi.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/examples/example 10 - Text/pixi.js b/examples/example 10 - Text/pixi.js index f29080a..3478cf4 100644 --- a/examples/example 10 - Text/pixi.js +++ b/examples/example 10 - Text/pixi.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/bin/pixi.dev.js b/bin/pixi.dev.js index f29080a..3478cf4 100644 --- a/bin/pixi.dev.js +++ b/bin/pixi.dev.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/bin/pixi.js b/bin/pixi.js index 5f2a13c..a6d54d1 100644 --- a/bin/pixi.js +++ b/bin/pixi.js @@ -4,10 +4,10 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php */ -(function(){function HEXtoRGB(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}function determineMatrixArrayType(){return PIXI.Matrix="undefined"!=typeof Float32Array?Float32Array:Array,PIXI.Matrix}var root=this,PIXI=PIXI||{};PIXI.Point=function(t,e){this.x=t||0,this.y=e||0},PIXI.Point.prototype.clone=function(){return new PIXI.Point(this.x,this.y)},PIXI.Point.constructor=PIXI.Point,PIXI.Rectangle=function(t,e,i,r){this.x=t||0,this.y=e||0,this.width=i||0,this.height=r||0},PIXI.Rectangle.prototype.clone=function(){return new PIXI.Rectangle(this.x,this.y,this.width,this.height)},PIXI.Rectangle.constructor=PIXI.Rectangle,PIXI.DisplayObject=function(){this.position=new PIXI.Point,this.scale=new PIXI.Point(1,1),this.pivot=new PIXI.Point(0,0),this.rotation=0,this.alpha=1,this.visible=!0,this.worldVisible=!1,this.parent=null,this.stage=null,this.hitArea=null,this.worldAlpha=1,this.color=[],this.worldTransform=PIXI.mat3.create(),this.localTransform=PIXI.mat3.create(),this.dynamic=!0,this._sr=0,this._cr=1,this.childIndex=0,this.renderable=!1,this.interactive=!1,this.buttonMode=!1},PIXI.DisplayObject.constructor=PIXI.DisplayObject,PIXI.DisplayObject.prototype.setInteractive=function(t){this.interactive=t,this.stage&&(this.stage.dirty=!0)},PIXI.DisplayObject.prototype.updateTransform=function(){this.rotation!=this.rotationCache&&(this.rotationCache=this.rotation,this._sr=Math.sin(this.rotation),this._cr=Math.cos(this.rotation));var t=this.localTransform,e=this.parent.worldTransform,i=this.worldTransform;t[0]=this._cr*this.scale.x,t[1]=-this._sr*this.scale.y,t[3]=this._sr*this.scale.x,t[4]=this._cr*this.scale.y;var r=this.pivot.x,s=this.pivot.y;t[2]=this.position.x-t[0]*r-s*t[1],t[5]=this.position.y-t[4]*s-r*t[3];var n=t[0],a=t[1],o=t[2],h=t[3],u=t[4],c=t[5],d=e[0],l=e[1],I=e[2],p=e[3],f=e[4],x=e[5];i[0]=d*n+l*h,i[1]=d*a+l*u,i[2]=d*o+l*c+I,i[3]=p*n+f*h,i[4]=p*a+f*u,i[5]=p*o+f*c+x,this.worldAlpha=this.alpha*this.parent.worldAlpha},PIXI.DisplayObjectContainer=function(){PIXI.DisplayObject.call(this),this.children=[],this.renderable=!1},PIXI.DisplayObjectContainer.constructor=PIXI.DisplayObjectContainer,PIXI.DisplayObjectContainer.prototype=Object.create(PIXI.DisplayObject.prototype),PIXI.DisplayObjectContainer.prototype.addChild=function(t){void 0!=t.parent&&t.parent.removeChild(t),t.parent=this,t.childIndex=this.children.length,this.children.push(t),this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},PIXI.DisplayObjectContainer.prototype.addChildAt=function(t,e){if(!(e>=0&&this.children.length>=e))throw Error(t+" The index "+e+" supplied is out of bounds "+this.children.length);void 0!=t.parent&&t.parent.removeChild(t),e==this.children.length?this.children.push(t):this.children.splice(e,0,t),t.parent=this,t.childIndex=e;for(var i=this.children.length,r=e;i>r;r++)this.children[r].childIndex=r;this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},PIXI.DisplayObjectContainer.prototype.swapChildren=function(t,e){var i=this.children.indexOf(t),r=this.children.indexOf(e);if(-1===i||-1===r)throw Error(t+" Both the supplied DisplayObjects must be a child of the caller "+this);this.stage&&(this.stage.__removeChild(t),this.stage.__removeChild(e),this.stage.__addChild(t),this.stage.__addChild(e)),t.childIndex=r,e.childIndex=i,this.children[i]=e,this.children[r]=t},PIXI.DisplayObjectContainer.prototype.getChildAt=function(t){if(t>=0&&this.children.length>t)return this.children[t];throw Error(child+" Both the supplied DisplayObjects must be a child of the caller "+this)},PIXI.DisplayObjectContainer.prototype.removeChild=function(t){var e=this.children.indexOf(t);if(-1===e)throw Error(t+" The supplied DisplayObject must be a child of the caller "+this);this.stage&&this.stage.__removeChild(t),t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.parent=void 0,this.children.splice(e,1);for(var i=e,r=this.children.length;r>i;i++)this.children[i].childIndex-=1},PIXI.DisplayObjectContainer.prototype.updateTransform=function(){if(this.visible){PIXI.DisplayObject.prototype.updateTransform.call(this);for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform()}},PIXI.blendModes={},PIXI.blendModes.NORMAL=0,PIXI.blendModes.SCREEN=1,PIXI.Sprite=function(t){PIXI.DisplayObjectContainer.call(this),this.anchor=new PIXI.Point,this.texture=t,this.blendMode=PIXI.blendModes.NORMAL,this._width=0,this._height=0,t.baseTexture.hasLoaded?this.updateFrame=!0:(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},PIXI.Sprite.constructor=PIXI.Sprite,PIXI.Sprite.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),Object.defineProperty(PIXI.Sprite.prototype,"width",{get:function(){return this.scale.x*this.texture.frame.width},set:function(t){this.scale.x=t/this.texture.frame.width,this._width=t}}),Object.defineProperty(PIXI.Sprite.prototype,"height",{get:function(){return this.scale.y*this.texture.frame.height},set:function(t){this.scale.y=t/this.texture.frame.height,this._height=t}}),PIXI.Sprite.prototype.setTexture=function(t){this.texture.baseTexture!=t.baseTexture&&(this.textureChange=!0),this.texture=t,this.updateFrame=!0},PIXI.Sprite.prototype.onTextureUpdate=function(){this._width&&(this.scale.x=this._width/this.texture.frame.width),this._height&&(this.scale.y=this._height/this.texture.frame.height),this.updateFrame=!0},PIXI.Sprite.fromFrame=function(t){var e=PIXI.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache"+this);return new PIXI.Sprite(e)},PIXI.Sprite.fromImage=function(t){var e=PIXI.Texture.fromImage(t);return new PIXI.Sprite(e)},PIXI.MovieClip=function(t){PIXI.Sprite.call(this,t[0]),this.textures=t,this.currentFrame=0,this.animationSpeed=1,this.loop=!0,this.onComplete=null,this.playing},PIXI.MovieClip.constructor=PIXI.MovieClip,PIXI.MovieClip.prototype=Object.create(PIXI.Sprite.prototype),PIXI.MovieClip.prototype.stop=function(){this.playing=!1},PIXI.MovieClip.prototype.play=function(){this.playing=!0},PIXI.MovieClip.prototype.gotoAndStop=function(t){this.playing=!1,this.currentFrame=t;var e=0|this.currentFrame+.5;this.setTexture(this.textures[e%this.textures.length])},PIXI.MovieClip.prototype.gotoAndPlay=function(t){this.currentFrame=t,this.playing=!0},PIXI.MovieClip.prototype.updateTransform=function(){if(PIXI.Sprite.prototype.updateTransform.call(this),this.playing){this.currentFrame+=this.animationSpeed;var t=0|this.currentFrame+.5;this.loop||this.textures.length>t?this.setTexture(this.textures[t%this.textures.length]):t>=this.textures.length&&(this.gotoAndStop(this.textures.length-1),this.onComplete&&this.onComplete())}},PIXI.Text=function(t,e){this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"),PIXI.Sprite.call(this,PIXI.Texture.fromCanvas(this.canvas)),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},PIXI.Text.constructor=PIXI.Text,PIXI.Text.prototype=Object.create(PIXI.Sprite.prototype),PIXI.Text.prototype.setStyle=function(t){t=t||{},t.font=t.font||"bold 20pt Arial",t.fill=t.fill||"black",t.align=t.align||"left",t.strokeThickness=t.strokeThickness||0,this.style=t,this.dirty=!0},PIXI.Sprite.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},PIXI.Text.prototype.updateText=function(){this.context.font=this.style.font;for(var t=this.text.split(/(?:\r\n|\r|\n)/),e=[],i=0,r=0;t.length>r;r++){var s=this.context.measureText(t[r]).width;e[r]=s,i=Math.max(i,s)}this.canvas.width=i+this.style.strokeThickness;var n=this.determineFontHeight("font: "+this.style.font+";")+this.style.strokeThickness;for(this.canvas.height=n*t.length,this.context.fillStyle=this.style.fill,this.context.font=this.style.font,this.context.strokeStyle=this.style.stroke,this.context.lineWidth=this.style.strokeThickness,this.context.textBaseline="top",r=0;t.length>r;r++){var a=new PIXI.Point(this.style.strokeThickness/2,this.style.strokeThickness/2+r*n);"right"==this.style.align?a.x+=i-e[r]:"center"==this.style.align&&(a.x+=(i-e[r])/2),this.style.stroke&&this.style.strokeThickness&&this.context.strokeText(t[r],a.x,a.y),this.style.fill&&this.context.fillText(t[r],a.x,a.y)}this.updateTexture()},PIXI.Text.prototype.updateTexture=function(){this.texture.baseTexture.width=this.canvas.width,this.texture.baseTexture.height=this.canvas.height,this.texture.frame.width=this.canvas.width,this.texture.frame.height=this.canvas.height,this._width=this.canvas.width,this._height=this.canvas.height,PIXI.texturesToUpdate.push(this.texture.baseTexture)},PIXI.Text.prototype.updateTransform=function(){this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype.updateTransform.call(this)},PIXI.Text.prototype.determineFontHeight=function(t){var e=PIXI.Text.heightCache[t];if(!e){var i=document.getElementsByTagName("body")[0],r=document.createElement("div"),s=document.createTextNode("M");r.appendChild(s),r.setAttribute("style",t),i.appendChild(r),e=r.offsetHeight,PIXI.Text.heightCache[t]=e,i.removeChild(r)}return e},PIXI.Text.prototype.destroy=function(t){t&&this.texture.destroy()},PIXI.Text.heightCache={},PIXI.BitmapText=function(t,e){PIXI.DisplayObjectContainer.call(this),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},PIXI.BitmapText.constructor=PIXI.BitmapText,PIXI.BitmapText.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.BitmapText.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},PIXI.BitmapText.prototype.setStyle=function(t){t=t||{},t.align=t.align||"left",this.style=t;var e=t.font.split(" ");this.fontName=e[e.length-1],this.fontSize=e.length>=2?parseInt(e[e.length-2],10):PIXI.BitmapText.fonts[this.fontName].size,this.dirty=!0},PIXI.BitmapText.prototype.updateText=function(){for(var t=PIXI.BitmapText.fonts[this.fontName],e=new PIXI.Point,i=null,r=[],s=0,n=[],a=0,o=this.fontSize/t.size,h=0;this.text.length>h;h++){var u=this.text.charCodeAt(h);if(/(?:\r\n|\r|\n)/.test(this.text.charAt(h)))n.push(e.x),s=Math.max(s,e.x),a++,e.x=0,e.y+=t.lineHeight,i=null;else{var c=t.chars[u];c&&(i&&c[i]&&(e.x+=c.kerning[i]),r.push({line:a,charCode:u,position:new PIXI.Point(e.x+c.xOffset,e.y+c.yOffset)}),e.x+=c.xAdvance,i=u)}}n.push(e.x),s=Math.max(s,e.x);var d=[];for(h=0;a>=h;h++){var l=0;"right"==this.style.align?l=s-n[h]:"center"==this.style.align&&(l=(s-n[h])/2),d.push(l)}for(h=0;r.length>h;h++){var I=PIXI.Sprite.fromFrame(r[h].charCode);I.position.x=(r[h].position.x+d[r[h].line])*o,I.position.y=r[h].position.y*o,I.scale.x=I.scale.y=o,this.addChild(I)}this.width=e.x*o,this.height=(e.y+t.lineHeight)*o},PIXI.BitmapText.prototype.updateTransform=function(){if(this.dirty){for(;this.children.length>0;)this.removeChild(this.getChildAt(0));this.updateText(),this.dirty=!1}PIXI.DisplayObjectContainer.prototype.updateTransform.call(this)},PIXI.BitmapText.fonts={},PIXI.InteractionManager=function(t){this.stage=t,this.tempPoint=new PIXI.Point,this.mouseoverEnabled=!0,this.mouse=new PIXI.InteractionData,this.touchs={},this.pool=[],this.interactiveItems=[],this.last=0},PIXI.InteractionManager.constructor=PIXI.InteractionManager,PIXI.InteractionManager.prototype.collectInteractiveSprite=function(t,e){for(var i=t.children,r=i.length,s=r-1;s>=0;s--){var n=i[s];n.interactive?(e.interactiveChildren=!0,this.interactiveItems.push(n),n.children.length>0&&this.collectInteractiveSprite(n,n)):(n.__iParent=null,n.children.length>0&&this.collectInteractiveSprite(n,e))}},PIXI.InteractionManager.prototype.setTarget=function(t){window.navigator.msPointerEnabled&&(t.view.style["-ms-content-zooming"]="none",t.view.style["-ms-touch-action"]="none"),this.target=t,t.view.addEventListener("mousemove",this.onMouseMove.bind(this),!0),t.view.addEventListener("mousedown",this.onMouseDown.bind(this),!0),document.body.addEventListener("mouseup",this.onMouseUp.bind(this),!0),t.view.addEventListener("mouseout",this.onMouseUp.bind(this),!0),t.view.addEventListener("touchstart",this.onTouchStart.bind(this),!0),t.view.addEventListener("touchend",this.onTouchEnd.bind(this),!0),t.view.addEventListener("touchmove",this.onTouchMove.bind(this),!0)},PIXI.InteractionManager.prototype.update=function(){if(this.target){var t=Date.now(),e=t-this.last;if(e=30*e/1e3,!(1>e)){if(this.last=t,this.dirty){this.dirty=!1,this.interactiveItems.length;for(var i=0;this.interactiveItems.length>i;i++)this.interactiveItems[i].interactiveChildren=!1;this.interactiveItems=[],this.stage.interactive&&this.interactiveItems.push(this.stage),this.collectInteractiveSprite(this.stage,this.stage)}var r=this.interactiveItems.length;this.target.view.style.cursor="default";for(var i=0;r>i;i++){var s=this.interactiveItems[i];s.visible&&(s.mouseover||s.mouseout||s.buttonMode)&&(s.__hit=this.hitTest(s,this.mouse),s.__hit?(s.buttonMode&&(this.target.view.style.cursor="pointer"),s.__isOver||(s.mouseover&&s.mouseover(this.mouse),s.__isOver=!0)):s.__isOver&&(s.mouseout&&s.mouseout(this.mouse),s.__isOver=!1))}}}},PIXI.InteractionManager.prototype.onMouseMove=function(t){t.preventDefault();var e=this.target.view.getBoundingClientRect();this.mouse.global.x=(t.clientX-e.left)*(this.target.width/e.width),this.mouse.global.y=(t.clientY-e.top)*(this.target.height/e.height);var i=this.interactiveItems.length;this.mouse.global;for(var r=0;i>r;r++){var s=this.interactiveItems[r];s.mousemove&&s.mousemove(this.mouse)}},PIXI.InteractionManager.prototype.onMouseDown=function(t){t.preventDefault();var e=this.interactiveItems.length;this.mouse.global,this.stage;for(var i=0;e>i;i++){var r=this.interactiveItems[i];if((r.mousedown||r.click)&&(r.__mouseIsDown=!0,r.__hit=this.hitTest(r,this.mouse),r.__hit&&(r.mousedown&&r.mousedown(this.mouse),r.__isDown=!0,!r.interactiveChildren)))break}},PIXI.InteractionManager.prototype.onMouseUp=function(t){t.preventDefault(),this.mouse.global;for(var e=this.interactiveItems.length,i=!1,r=0;e>r;r++){var s=this.interactiveItems[r];(s.mouseup||s.mouseupoutside||s.click)&&(s.__hit=this.hitTest(s,this.mouse),s.__hit&&!i?(s.mouseup&&s.mouseup(this.mouse),s.__isDown&&s.click&&s.click(this.mouse),s.interactiveChildren||(i=!0)):s.__isDown&&s.mouseupoutside&&s.mouseupoutside(this.mouse),s.__isDown=!1)}},PIXI.InteractionManager.prototype.hitTest=function(t,e){var i=e.global;if(!t.visible)return!1;if(t instanceof PIXI.Sprite){var r=t.worldTransform,s=r[0],n=r[1],a=r[2],o=r[3],h=r[4],u=r[5],c=1/(s*h+n*-o),d=h*c*i.x+-n*c*i.y+(u*n-a*h)*c,l=s*c*i.y+-o*c*i.x+(-u*s+a*o)*c,I=t.texture.frame.width,p=t.texture.frame.height,f=-I*t.anchor.x;if(d>f&&f+I>d){var x=-p*t.anchor.y;if(l>x&&x+p>l)return e.target=t,!0}}else if(t.hitArea){var r=t.worldTransform,v=t.hitArea,s=r[0],n=r[1],a=r[2],o=r[3],h=r[4],u=r[5],c=1/(s*h+n*-o),d=h*c*i.x+-n*c*i.y+(u*n-a*h)*c,l=s*c*i.y+-o*c*i.x+(-u*s+a*o)*c,f=v.x;if(d>f&&f+v.width>d){var x=v.y;if(l>x&&x+v.height>l)return!0}}for(var P=t.children.length,g=0;P>g;g++){var b=t.children[g],X=this.hitTest(b,e);if(X)return!0}return!1},PIXI.InteractionManager.prototype.onTouchMove=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.touchs[s.identifier];n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height)}for(var a=this.interactiveItems.length,r=0;a>r;r++){var o=this.interactiveItems[r];o.touchmove&&o.touchmove(n)}},PIXI.InteractionManager.prototype.onTouchStart=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.pool.pop();n||(n=new PIXI.InteractionData),this.touchs[s.identifier]=n,n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height);for(var a=this.interactiveItems.length,o=0;a>o;o++){var h=this.interactiveItems[o];if((h.touchstart||h.tap)&&(h.__hit=this.hitTest(h,n),h.__hit&&(h.touchstart&&h.touchstart(n),h.__isDown=!0,h.__touchData=n,!h.interactiveChildren)))break}}},PIXI.InteractionManager.prototype.onTouchEnd=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.touchs[s.identifier],a=!1;n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var u=this.interactiveItems[h],c=u.__touchData;u.__hit=this.hitTest(u,n),c==n&&((u.touchend||u.tap)&&(u.__hit&&!a?(u.touchend&&u.touchend(n),u.__isDown&&u.tap&&u.tap(n),u.interactiveChildren||(a=!0)):u.__isDown&&u.touchendoutside&&u.touchendoutside(n),u.__isDown=!1),u.__touchData=null)}this.pool.push(n),this.touchs[s.identifier]=null}},PIXI.InteractionData=function(){this.global=new PIXI.Point,this.local=new PIXI.Point,this.target},PIXI.InteractionData.prototype.getLocalPosition=function(t){var e=t.worldTransform,i=this.global,r=e[0],s=e[1],n=e[2],a=e[3],o=e[4],h=e[5],u=1/(r*o+s*-a);return new PIXI.Point(o*u*i.x+-s*u*i.y+(h*s-n*o)*u,r*u*i.y+-a*u*i.x+(-h*r+n*a)*u)},PIXI.InteractionData.constructor=PIXI.InteractionData,PIXI.Stage=function(t,e){PIXI.DisplayObjectContainer.call(this),this.worldTransform=PIXI.mat3.create(),this.__childrenAdded=[],this.__childrenRemoved=[],this.childIndex=0,this.stage=this,this.stage.hitArea=new PIXI.Rectangle(0,0,1e5,1e5),this.interactive=!!e,this.interactionManager=new PIXI.InteractionManager(this),this.setBackgroundColor(t),this.worldVisible=!0},PIXI.Stage.constructor=PIXI.Stage,PIXI.Stage.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Stage.prototype.updateTransform=function(){this.worldAlpha=1;for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform();this.dirty&&(this.dirty=!1,this.interactionManager.dirty=!0),this.interactive&&this.interactionManager.update()},PIXI.Stage.prototype.setBackgroundColor=function(t){this.backgroundColor=t||0,this.backgroundColorSplit=HEXtoRGB(this.backgroundColor),this.backgroundColorString="#"+this.backgroundColor.toString(16)},PIXI.Stage.prototype.getMousePosition=function(){return this.interactionManager.mouse.global},PIXI.Stage.prototype.__addChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=this,t.children)for(var e=0;t.children.length>e;e++)this.__addChild(t.children[e])},PIXI.Stage.prototype.__removeChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=void 0,t.children)for(var e=0,i=t.children.length;i>e;e++)this.__removeChild(t.children[e])},window.requestAnimFrame=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(t){window.setTimeout(t,1e3/60)}}(),"function"!=typeof Function.prototype.bind&&(Function.prototype.bind=function(){var t=Array.prototype.slice;return function(e){function i(){var n=s.concat(t.call(arguments));r.apply(this instanceof i?this:e,n)}var r=this,s=t.call(arguments,1);if("function"!=typeof r)throw new TypeError;return i.prototype=function n(t){return t&&(n.prototype=t),this instanceof n?void 0:new n}(r.prototype),i}}());var AjaxRequest=function(){var t=["Msxml2.XMLHTTP","Microsoft.XMLHTTP"];if(!window.ActiveXObject)return window.XMLHttpRequest?new XMLHttpRequest:!1;for(var e=0;t.length>e;e++)try{return new ActiveXObject(t[e])}catch(i){}};PIXI.EventTarget=function(){var t={};this.addEventListener=this.on=function(e,i){void 0===t[e]&&(t[e]=[]),-1===t[e].indexOf(i)&&t[e].push(i)},this.dispatchEvent=this.emit=function(e){for(var i in t[e.type])t[e.type][i](e)},this.removeEventListener=this.off=function(e,i){var r=t[e].indexOf(i);-1!==r&&t[e].splice(r,1)}},determineMatrixArrayType(),PIXI.mat3={},PIXI.mat3.create=function(){var t=new PIXI.Matrix(9);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},PIXI.mat4={},PIXI.mat4.create=function(){var t=new PIXI.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},PIXI.mat3.multiply=function(t,e,i){i||(i=t);var r=t[0],s=t[1],n=t[2],a=t[3],o=t[4],h=t[5],u=t[6],c=t[7],d=t[8],l=e[0],I=e[1],p=e[2],f=e[3],x=e[4],v=e[5],P=e[6],g=e[7],b=e[8];return i[0]=l*r+I*a+p*u,i[1]=l*s+I*o+p*c,i[2]=l*n+I*h+p*d,i[3]=f*r+x*a+v*u,i[4]=f*s+x*o+v*c,i[5]=f*n+x*h+v*d,i[6]=P*r+g*a+b*u,i[7]=P*s+g*o+b*c,i[8]=P*n+g*h+b*d,i},PIXI.mat3.toMat4=function(t,e){return e||(e=PIXI.mat4.create()),e[15]=1,e[14]=0,e[13]=0,e[12]=0,e[11]=0,e[10]=t[8],e[9]=t[7],e[8]=t[6],e[7]=0,e[6]=t[5],e[5]=t[4],e[4]=t[3],e[3]=0,e[2]=t[2],e[1]=t[1],e[0]=t[0],e},PIXI.mat4.create=function(){var t=new PIXI.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},PIXI.mat4.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],s=t[3],n=t[6],a=t[7],o=t[11];return t[1]=t[4],t[2]=t[8],t[3]=t[12],t[4]=i,t[6]=t[9],t[7]=t[13],t[8]=r,t[9]=n,t[11]=t[14],t[12]=s,t[13]=a,t[14]=o,t}return e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=t[1],e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=t[2],e[9]=t[6],e[10]=t[10],e[11]=t[14],e[12]=t[3],e[13]=t[7],e[14]=t[11],e[15]=t[15],e},PIXI.mat4.multiply=function(t,e,i){i||(i=t);var r=t[0],s=t[1],n=t[2],a=t[3],o=t[4],h=t[5],u=t[6],c=t[7],d=t[8],l=t[9],I=t[10],p=t[11],f=t[12],x=t[13],v=t[14],P=t[15],g=e[0],b=e[1],X=e[2],m=e[3];return i[0]=g*r+b*o+X*d+m*f,i[1]=g*s+b*h+X*l+m*x,i[2]=g*n+b*u+X*I+m*v,i[3]=g*a+b*c+X*p+m*P,g=e[4],b=e[5],X=e[6],m=e[7],i[4]=g*r+b*o+X*d+m*f,i[5]=g*s+b*h+X*l+m*x,i[6]=g*n+b*u+X*I+m*v,i[7]=g*a+b*c+X*p+m*P,g=e[8],b=e[9],X=e[10],m=e[11],i[8]=g*r+b*o+X*d+m*f,i[9]=g*s+b*h+X*l+m*x,i[10]=g*n+b*u+X*I+m*v,i[11]=g*a+b*c+X*p+m*P,g=e[12],b=e[13],X=e[14],m=e[15],i[12]=g*r+b*o+X*d+m*f,i[13]=g*s+b*h+X*l+m*x,i[14]=g*n+b*u+X*I+m*v,i[15]=g*a+b*c+X*p+m*P,i},PIXI.autoDetectRenderer=function(t,e,i,r){t||(t=800),e||(e=600);var s=function(){try{return!!window.WebGLRenderingContext&&!!document.createElement("canvas").getContext("experimental-webgl")}catch(t){return!1}}();return s?new PIXI.WebGLRenderer(t,e,i,r):new PIXI.CanvasRenderer(t,e,i,r)},PIXI.shaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * vColor;","}"],PIXI.shaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform mat4 uMVMatrix;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","gl_Position = uMVMatrix * vec4(aVertexPosition, 1.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],PIXI.CompileVertexShader=function(t,e){return PIXI._CompileShader(t,e,t.VERTEX_SHADER)},PIXI.CompileFragmentShader=function(t,e){return PIXI._CompileShader(t,e,t.FRAGMENT_SHADER)},PIXI._CompileShader=function(t,e,i){var r=e.join("\n"),s=t.createShader(i);return t.shaderSource(s,r),t.compileShader(s),t.getShaderParameter(s,t.COMPILE_STATUS)?s:(alert(t.getShaderInfoLog(s)),null)},PIXI._defaultFrame=new PIXI.Rectangle(0,0,1,1),PIXI.gl,PIXI.WebGLRenderer=function(t,e,i,r){this.transparent=!!r,this.width=t||800,this.height=e||600,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height;var s=this;this.view.addEventListener("webglcontextlost",function(t){s.handleContextLost(t)},!1),this.view.addEventListener("webglcontextrestored",function(t){s.handleContextRestored(t)},!1),this.batchs=[];try{PIXI.gl=this.gl=this.view.getContext("experimental-webgl",{alpha:this.transparent,antialias:!1,premultipliedAlpha:!0})}catch(n){throw Error(" This browser does not support webGL. Try using the canvas renderer"+this)}this.initShaders();var a=this.gl;PIXI.WebGLRenderer.gl=a,this.batch=new PIXI.WebGLBatch(a),a.disable(a.DEPTH_TEST),a.disable(a.CULL_FACE),a.enable(a.BLEND),a.colorMask(!0,!0,!0,this.transparent),this.projectionMatrix=PIXI.mat4.create(),this.resize(this.width,this.height),this.contextLost=!1,this.stageRenderGroup=new PIXI.WebGLRenderGroup(this.gl)},PIXI.WebGLRenderer.constructor=PIXI.WebGLRenderer,PIXI.WebGLRenderer.getBatch=function(){return 0==PIXI._batchs.length?new PIXI.WebGLBatch(PIXI.WebGLRenderer.gl):PIXI._batchs.pop()},PIXI.WebGLRenderer.returnBatch=function(t){t.clean(),PIXI._batchs.push(t)},PIXI.WebGLRenderer.prototype.initShaders=function(){var t=this.gl,e=PIXI.CompileFragmentShader(t,PIXI.shaderFragmentSrc),i=PIXI.CompileVertexShader(t,PIXI.shaderVertexSrc);PIXI.shaderProgram=t.createProgram();var r=PIXI.shaderProgram;t.attachShader(r,i),t.attachShader(r,e),t.linkProgram(r),t.getProgramParameter(r,t.LINK_STATUS)||alert("Could not initialise shaders"),t.useProgram(r),r.vertexPositionAttribute=t.getAttribLocation(r,"aVertexPosition"),t.enableVertexAttribArray(r.vertexPositionAttribute),r.textureCoordAttribute=t.getAttribLocation(r,"aTextureCoord"),t.enableVertexAttribArray(r.textureCoordAttribute),r.colorAttribute=t.getAttribLocation(r,"aColor"),t.enableVertexAttribArray(r.colorAttribute),r.mvMatrixUniform=t.getUniformLocation(r,"uMVMatrix"),r.samplerUniform=t.getUniformLocation(r,"uSampler")},PIXI.WebGLRenderer.prototype.render=function(t){if(!this.contextLost){this.__stage!==t&&(this.__stage=t,this.stageRenderGroup.setRenderable(t));for(var e=0;PIXI.texturesToUpdate.length>e;e++)this.updateTexture(PIXI.texturesToUpdate[e]);for(var e=0;PIXI.texturesToDestroy.length>e;e++)this.destroyTexture(PIXI.texturesToDestroy[e]);PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[],t.updateTransform();var i=this.gl;if(i.colorMask(!0,!0,!0,this.transparent),i.viewport(0,0,this.width,this.height),i.bindFramebuffer(i.FRAMEBUFFER,null),i.clearColor(t.backgroundColorSplit[0],t.backgroundColorSplit[1],t.backgroundColorSplit[2],this.transparent),i.clear(i.COLOR_BUFFER_BIT),this.stageRenderGroup.backgroundColor=t.backgroundColorSplit,this.stageRenderGroup.render(this.projectionMatrix),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),PIXI.Texture.frameUpdates.length>0){for(var e=0;PIXI.Texture.frameUpdates.length>e;e++)PIXI.Texture.frameUpdates[e].updateFrame=!1;PIXI.Texture.frameUpdates=[]}}},PIXI.WebGLRenderer.prototype.updateTexture=function(t){var e=this.gl;t._glTexture||(t._glTexture=e.createTexture()),t.hasLoaded&&(e.bindTexture(e.TEXTURE_2D,t._glTexture),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t.source),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),t._powerOf2?(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT)):(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)),e.bindTexture(e.TEXTURE_2D,null)),this.refreshBatchs=!0},PIXI.WebGLRenderer.prototype.destroyTexture=function(t){var e=this.gl;t._glTexture&&(t._glTexture=e.createTexture(),e.deleteTexture(e.TEXTURE_2D,t._glTexture))},PIXI.WebGLRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e,this.gl.viewport(0,0,this.width,this.height);var i=this.projectionMatrix;i[0]=2/this.width,i[5]=-2/this.height,i[12]=-1,i[13]=1},PIXI.WebGLRenderer.prototype.handleContextLost=function(t){t.preventDefault(),this.contextLost=!0},PIXI.WebGLRenderer.prototype.handleContextRestored=function(){this.gl=this.view.getContext("experimental-webgl",{alpha:!0}),this.initShaders();for(var t=0;PIXI.TextureCache.length>t;t++)this.updateTexture(PIXI.TextureCache[t]);for(var t=0;this.batchs.length>t;t++)this.batchs[t].restoreLostContext(this.gl),this.batchs[t].dirty=!0;PIXI._restoreBatchs(this.gl),this.contextLost=!1},PIXI._batchs=[],PIXI._getBatch=function(t){return 0==PIXI._batchs.length?new PIXI.WebGLBatch(t):PIXI._batchs.pop()},PIXI._returnBatch=function(t){t.clean(),PIXI._batchs.push(t)},PIXI._restoreBatchs=function(t){for(var e=0;PIXI._batchs.length>e;e++)PIXI._batchs[e].restoreLostContext(t)},PIXI.WebGLBatch=function(t){this.gl=t,this.size=0,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer(),this.blendMode=PIXI.blendModes.NORMAL,this.dynamicSize=1},PIXI.WebGLBatch.constructor=PIXI.WebGLBatch,PIXI.WebGLBatch.prototype.clean=function(){this.verticies=[],this.uvs=[],this.indices=[],this.colors=[],this.dynamicSize=1,this.texture=null,this.last=null,this.size=0,this.head,this.tail},PIXI.WebGLBatch.prototype.restoreLostContext=function(t){this.gl=t,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer()},PIXI.WebGLBatch.prototype.init=function(t){t.batch=this,this.dirty=!0,this.blendMode=t.blendMode,this.texture=t.texture.baseTexture,this.head=t,this.tail=t,this.size=1,this.growBatch()},PIXI.WebGLBatch.prototype.insertBefore=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__prev;e.__prev=t,t.__next=e,i?(t.__prev=i,i.__next=t):this.head=t},PIXI.WebGLBatch.prototype.insertAfter=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__next;e.__next=t,t.__prev=e,i?(t.__next=i,i.__prev=t):this.tail=t},PIXI.WebGLBatch.prototype.remove=function(t){return this.size--,0==this.size?(t.batch=null,t.__prev=null,t.__next=null,void 0):(t.__prev?t.__prev.__next=t.__next:(this.head=t.__next,this.head.__prev=null),t.__next?t.__next.__prev=t.__prev:(this.tail=t.__prev,this.tail.__next=null),t.batch=null,t.__next=null,t.__prev=null,this.dirty=!0,void 0)},PIXI.WebGLBatch.prototype.split=function(t){this.dirty=!0;var e=new PIXI.WebGLBatch(this.gl);e.init(t),e.tail=this.tail,this.tail=t.__prev,this.tail.__next=null,t.__prev=null;for(var i=0;t;)i++,t.batch=e,t=t.__next;return e.size=i,this.size-=i,e},PIXI.WebGLBatch.prototype.merge=function(t){this.dirty=!0,this.tail.__next=t.head,t.head.__prev=this.tail,this.size+=t.size,this.tail=t.tail;for(var e=t.head;e;)e.batch=this,e=e.__next},PIXI.WebGLBatch.prototype.growBatch=function(){var t=this.gl;this.dynamicSize=1==this.size?1:1.5*this.size,this.verticies=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.vertexBuffer),t.bufferData(t.ARRAY_BUFFER,this.verticies,t.DYNAMIC_DRAW),this.uvs=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.uvBuffer),t.bufferData(t.ARRAY_BUFFER,this.uvs,t.DYNAMIC_DRAW),this.dirtyUVS=!0,this.colors=new Float32Array(4*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.colorBuffer),t.bufferData(t.ARRAY_BUFFER,this.colors,t.DYNAMIC_DRAW),this.dirtyColors=!0,this.indices=new Uint16Array(6*this.dynamicSize);for(var e=this.indices.length/6,i=0;e>i;i++){var r=6*i,s=4*i;this.indices[r+0]=s+0,this.indices[r+1]=s+1,this.indices[r+2]=s+2,this.indices[r+3]=s+0,this.indices[r+4]=s+2,this.indices[r+5]=s+3}t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,this.indexBuffer),t.bufferData(t.ELEMENT_ARRAY_BUFFER,this.indices,t.STATIC_DRAW)},PIXI.WebGLBatch.prototype.refresh=function(){this.gl,this.dynamicSizei;i++)this.removeDisplayObjectAndChildren(this.toRemove[i]);this.toRemove=[],this.checkVisibility(this.root,this.root.visible);for(var r,i=0;this.batchs.length>i;i++)r=this.batchs[i],r instanceof PIXI.WebGLBatch?this.batchs[i].render():r instanceof PIXI.TilingSprite?r.visible&&this.renderTilingSprite(r,t):r instanceof PIXI.Strip&&r.visible&&this.renderStrip(r,t)},PIXI.WebGLRenderGroup.prototype.renderSpecific=function(t,e){var i=this.gl;this.checkVisibility(t,t.visible),i.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform,!1,e);var r,s,n,a,o=t.renderable?t:this.getNextRenderable(t),h=o.batch;if(o instanceof PIXI.Sprite){h=o.batch;var u=h.head;if(u==o)r=0;else for(r=1;u.__next!=o;)r++,u=u.__next}else h=o;for(var c,d=t,l=t;l.children.length>0;)l=l.children[l.children.length-1],l.renderable&&(d=l);if(d instanceof PIXI.Sprite){c=d.batch;var u=c.head;if(u==d)n=0;else for(n=1;u.__next!=d;)n++,u=u.__next}else c=d;if(h==c)return h instanceof PIXI.WebGLBatch?h.render(r,n+1):h instanceof PIXI.TilingSprite?h.visible&&this.renderTilingSprite(h,e):h instanceof PIXI.Strip?h.visible&&this.renderStrip(h,e):h instanceof PIXI.CustomRenderable&&h.visible&&h.renderWebGL(this,e),void 0;s=this.batchs.indexOf(h),a=this.batchs.indexOf(c),h instanceof PIXI.WebGLBatch?h.render(r):h instanceof PIXI.TilingSprite?h.visible&&this.renderTilingSprite(h,e):h instanceof PIXI.Strip?h.visible&&this.renderStrip(h,e):h instanceof PIXI.CustomRenderable&&h.visible&&h.renderWebGL(this,e);for(var I=s+1;a>I;I++)renderable=this.batchs[I],renderable instanceof PIXI.WebGLBatch?this.batchs[I].render():renderable instanceof PIXI.TilingSprite?renderable.visible&&this.renderTilingSprite(renderable,e):renderable instanceof PIXI.Strip?renderable.visible&&this.renderStrip(renderable,e):renderable instanceof PIXI.CustomRenderable&&renderable.visible&&renderable.renderWebGL(this,e);c instanceof PIXI.WebGLBatch?c.render(0,n+1):c instanceof PIXI.TilingSprite?c.visible&&this.renderTilingSprite(c):c instanceof PIXI.Strip?c.visible&&this.renderStrip(c):c instanceof PIXI.CustomRenderable&&c.visible&&c.renderWebGL(this,e)},PIXI.WebGLRenderGroup.prototype.checkVisibility=function(t,e){for(var i=t.children,r=0;i.length>r;r++){var s=i[r];s.worldVisible=s.visible&&e,s.textureChange&&(s.textureChange=!1,s.worldVisible&&(this.removeDisplayObject(s),this.addDisplayObject(s))),s.children.length>0&&this.checkVisibility(s,s.worldVisible)}},PIXI.WebGLRenderGroup.prototype.addDisplayObject=function(t){if(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.__renderGroup=this,t.renderable){var e=this.getPreviousRenderable(t),i=this.getNextRenderable(t);if(t instanceof PIXI.Sprite){var r,s;if(e instanceof PIXI.Sprite){if(r=e.batch,r&&r.texture==t.texture.baseTexture&&r.blendMode==t.blendMode)return r.insertAfter(t,e),void 0}else r=e;if(i)if(i instanceof PIXI.Sprite){if(s=i.batch){if(s.texture==t.texture.baseTexture&&s.blendMode==t.blendMode)return s.insertBefore(t,i),void 0;if(s==r){var n=r.split(i),a=PIXI.WebGLRenderer.getBatch(),o=this.batchs.indexOf(r);return a.init(t),this.batchs.splice(o+1,0,a,n),void 0}}}else s=i;var a=PIXI.WebGLRenderer.getBatch();if(a.init(t),r){var o=this.batchs.indexOf(r);this.batchs.splice(o+1,0,a)}else this.batchs.push(a)}else t instanceof PIXI.TilingSprite?(this.initTilingSprite(t),this.batchs.push(t)):t instanceof PIXI.Strip&&(this.initStrip(t),this.batchs.push(t));this.batchUpdate=!0}},PIXI.WebGLRenderGroup.prototype.addDisplayObjectAndChildren=function(t){this.addDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.addDisplayObjectAndChildren(e[i])},PIXI.WebGLRenderGroup.prototype.removeDisplayObject=function(t){if(t.__renderGroup=null,t.renderable){var e;if(t instanceof PIXI.Sprite){var i=t.batch;if(!i)return;i.remove(t),0==i.size&&(e=i)}else e=t;if(e){var r=this.batchs.indexOf(e);if(-1==r)return;if(0==r||r==this.batchs.length-1)return this.batchs.splice(r,1),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e),void 0;if(this.batchs[r-1]instanceof PIXI.WebGLBatch&&this.batchs[r+1]instanceof PIXI.WebGLBatch&&this.batchs[r-1].texture==this.batchs[r+1].texture&&this.batchs[r-1].blendMode==this.batchs[r+1].blendMode)return this.batchs[r-1].merge(this.batchs[r+1]),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e),PIXI.WebGLRenderer.returnBatch(this.batchs[r+1]),this.batchs.splice(r,2),void 0;this.batchs.splice(r,1),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e)}}},PIXI.WebGLRenderGroup.prototype.removeDisplayObjectAndChildren=function(t){if(t.__renderGroup==this){this.removeDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.removeDisplayObjectAndChildren(e[i])}},PIXI.WebGLRenderGroup.prototype.getNextRenderable=function(t){var e=t;do{if(0==e.children.length){if(!e.parent)return null;for(;e.childIndex==e.parent.children.length-1;)if(e=e.parent,e==this.root){e=null;break}e&&(e=e.parent.children[e.childIndex+1])}else e=e.children[0];if(!e)break}while(!e.renderable||!e.__renderGroup);return e},PIXI.WebGLRenderGroup.prototype.getPreviousRenderable=function(t){var e=t;do{if(0==e.childIndex){if(e=e.parent,!e)return null}else for(e=e.parent.children[e.childIndex-1];0!=e.children.length;)e=e.children[e.children.length-1];if(e==this.root)break}while(!e.renderable||!e.__renderGroup);return e},PIXI.WebGLRenderGroup.prototype.initTilingSprite=function(t){var e=this.gl;t.verticies=new Float32Array([0,0,t.width,0,t.width,t.height,0,t.height]),t.uvs=new Float32Array([0,0,1,0,1,1,0,1]),t.colors=new Float32Array([1,1,1,1]),t.indices=new Uint16Array([0,1,3,2]),t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW),t.texture.baseTexture._glTexture?(e.bindTexture(e.TEXTURE_2D,t.texture.baseTexture._glTexture),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT),t.texture.baseTexture._powerOf2=!0):t.texture.baseTexture._powerOf2=!0},PIXI.WebGLRenderGroup.prototype.renderStrip=function(t,e){var i=this.gl,r=PIXI.shaderProgram,s=PIXI.mat3.toMat4(t.worldTransform);PIXI.mat4.transpose(s),PIXI.mat4.multiply(e,s,s),i.uniformMatrix4fv(r.mvMatrixUniform,!1,s),t.blendMode==PIXI.blendModes.NORMAL?i.blendFunc(i.ONE,i.ONE_MINUS_SRC_ALPHA):i.blendFunc(i.ONE,i.ONE_MINUS_SRC_COLOR),t.dirty?(t.dirty=!1,i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferData(i.ARRAY_BUFFER,t.verticies,i.STATIC_DRAW),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferData(i.ARRAY_BUFFER,t.uvs,i.STATIC_DRAW),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.bufferData(i.ARRAY_BUFFER,t.colors,i.STATIC_DRAW),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer),i.bufferData(i.ELEMENT_ARRAY_BUFFER,t.indices,i.STATIC_DRAW)):(i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.verticies),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer)),i.drawElements(i.TRIANGLE_STRIP,t.indices.length,i.UNSIGNED_SHORT,0),i.uniformMatrix4fv(r.mvMatrixUniform,!1,e)},PIXI.WebGLRenderGroup.prototype.renderTilingSprite=function(t,e){var i=this.gl;PIXI.shaderProgram;var r=t.tilePosition,s=t.tileScale,n=r.x/t.texture.baseTexture.width,a=r.y/t.texture.baseTexture.height,o=t.width/t.texture.baseTexture.width/s.x,h=t.height/t.texture.baseTexture.height/s.y;t.uvs[0]=0-n,t.uvs[1]=0-a,t.uvs[2]=1*o-n,t.uvs[3]=0-a,t.uvs[4]=1*o-n,t.uvs[5]=1*h-a,t.uvs[6]=0-n,t.uvs[7]=1*h-a,i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.uvs),this.renderStrip(t,e)},PIXI.WebGLRenderer.prototype.initStrip=function(t){var e=this.gl;this.shaderProgram,t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW)},PIXI.CanvasRenderer=function(t,e,i,r){this.transparent=r,this.width=t||800,this.height=e||600,this.refresh=!0,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height,this.count=0,this.context=this.view.getContext("2d")},PIXI.CanvasRenderer.constructor=PIXI.CanvasRenderer,PIXI.CanvasRenderer.prototype.render=function(t){PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[],t.updateTransform(),this.view.style.backgroundColor==t.backgroundColorString||this.transparent||(this.view.style.backgroundColor=t.backgroundColorString),this.context.setTransform(1,0,0,1,0,0),this.context.clearRect(0,0,this.width,this.height),this.renderDisplayObject(t),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),PIXI.Texture.frameUpdates.length>0&&(PIXI.Texture.frameUpdates=[])},PIXI.CanvasRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e},PIXI.CanvasRenderer.prototype.renderDisplayObject=function(t){var e=t.worldTransform,i=this.context;if(t.visible){if(t instanceof PIXI.Sprite){var r=t.texture.frame;r&&(i.globalAlpha=t.worldAlpha,i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),i.drawImage(t.texture.baseTexture.source,r.x,r.y,r.width,r.height,t.anchor.x*-r.width,t.anchor.y*-r.height,r.width,r.height))}else t instanceof PIXI.Strip?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderStrip(t)):t instanceof PIXI.TilingSprite?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderTilingSprite(t)):t instanceof PIXI.CustomRenderable&&t.renderCanvas(this);for(var s=0;t.children.length>s;s++)this.renderDisplayObject(t.children[s]);this.context.setTransform(1,0,0,1,0,0)}},PIXI.CanvasRenderer.prototype.renderStripFlat=function(t){var e=this.context,i=t.verticies;t.uvs;var r=i.length/2;this.count++,e.beginPath();for(var s=1;r-2>s;s++){var n=2*s,a=i[n],o=i[n+2],h=i[n+4],u=i[n+1],c=i[n+3],d=i[n+5];e.moveTo(a,u),e.lineTo(o,c),e.lineTo(h,d)}e.fillStyle="#FF0000",e.fill(),e.closePath()},PIXI.CanvasRenderer.prototype.renderTilingSprite=function(t){var e=this.context;t.__tilePattern||(t.__tilePattern=e.createPattern(t.texture.baseTexture.source,"repeat")),e.beginPath();var i=t.tilePosition,r=t.tileScale;e.scale(r.x,r.y),e.translate(i.x,i.y),e.fillStyle=t.__tilePattern,e.fillRect(-i.x,-i.y,t.width/r.x,t.height/r.y),e.scale(1/r.x,1/r.y),e.translate(-i.x,-i.y),e.closePath()},PIXI.CanvasRenderer.prototype.renderStrip=function(t){var e=this.context,i=t.verticies,r=t.uvs,s=i.length/2;this.count++;for(var n=1;s-2>n;n++){var a=2*n,o=i[a],h=i[a+2],u=i[a+4],c=i[a+1],d=i[a+3],l=i[a+5],I=r[a]*t.texture.width,p=r[a+2]*t.texture.width,f=r[a+4]*t.texture.width,x=r[a+1]*t.texture.height,v=r[a+3]*t.texture.height,P=r[a+5]*t.texture.height;e.save(),e.beginPath(),e.moveTo(o,c),e.lineTo(h,d),e.lineTo(u,l),e.closePath(),e.clip();var g=I*v+x*f+p*P-v*f-x*p-I*P,b=o*v+x*u+h*P-v*u-x*h-o*P,X=I*h+o*f+p*u-h*f-o*p-I*u,m=I*v*u+x*h*f+o*p*P-o*v*f-x*p*u-I*h*P,T=c*v+x*l+d*P-v*l-x*d-c*P,y=I*d+c*f+p*l-d*f-c*p-I*l,_=I*v*l+x*d*f+c*p*P-c*v*f-x*p*l-I*d*P;e.transform(b/g,T/g,X/g,y/g,m/g,_/g),e.drawImage(t.texture.baseTexture.source,0,0),e.restore()}},PIXI.Strip=function(t,e,i){PIXI.DisplayObjectContainer.call(this),this.texture=t,this.blendMode=PIXI.blendModes.NORMAL;try{this.uvs=new Float32Array([0,1,1,1,1,0,0,1]),this.verticies=new Float32Array([0,0,0,0,0,0,0,0,0]),this.colors=new Float32Array([1,1,1,1]),this.indices=new Uint16Array([0,1,2,3])}catch(r){this.uvs=[0,1,1,1,1,0,0,1],this.verticies=[0,0,0,0,0,0,0,0,0],this.colors=[1,1,1,1],this.indices=[0,1,2,3]}this.width=e,this.height=i,t.baseTexture.hasLoaded?(this.width=this.texture.frame.width,this.height=this.texture.frame.height,this.updateFrame=!0):(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},PIXI.Strip.constructor=PIXI.Strip,PIXI.Strip.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Strip.prototype.setTexture=function(t){this.texture=t,this.width=t.frame.width,this.height=t.frame.height,this.updateFrame=!0},PIXI.Strip.prototype.onTextureUpdate=function(){this.updateFrame=!0},PIXI.Rope=function(t,e){PIXI.Strip.call(this,t),this.points=e;try{this.verticies=new Float32Array(4*e.length),this.uvs=new Float32Array(4*e.length),this.colors=new Float32Array(2*e.length),this.indices=new Uint16Array(2*e.length)}catch(i){this.verticies=verticies,this.uvs=uvs,this.colors=colors,this.indices=indices}this.refresh()},PIXI.Rope.constructor=PIXI.Rope,PIXI.Rope.prototype=Object.create(PIXI.Strip.prototype),PIXI.Rope.prototype.refresh=function(){var t=this.points;if(!(1>t.length)){var e=this.uvs,i=this.indices,r=this.colors,s=t[0],n=t[0];this.count-=.2,e[0]=0,e[1]=1,e[2]=0,e[3]=1,r[0]=1,r[1]=1,i[0]=0,i[1]=1;for(var a=t.length,o=1;a>o;o++){var n=t[o],h=4*o,u=o/(a-1);o%2?(e[h]=u,e[h+1]=0,e[h+2]=u,e[h+3]=1):(e[h]=u,e[h+1]=0,e[h+2]=u,e[h+3]=1),h=2*o,r[h]=1,r[h+1]=1,h=2*o,i[h]=h,i[h+1]=h+1,s=n}}},PIXI.Rope.prototype.updateTransform=function(){var t=this.points;if(!(1>t.length)){var e,i=this.verticies,r=t[0],s={x:0,y:0},n=t[0];this.count-=.2,i[0]=n.x+s.x,i[1]=n.y+s.y,i[2]=n.x-s.x,i[3]=n.y-s.y;for(var a=t.length,o=1;a>o;o++){var n=t[o],h=4*o;e=t.length-1>o?t[o+1]:n,s.y=-(e.x-r.x),s.x=e.y-r.y;var u=10*(1-o/(a-1));u>1&&(u=1);var c=Math.sqrt(s.x*s.x+s.y*s.y),d=this.texture.height/2;s.x/=c,s.y/=c,s.x*=d,s.y*=d,i[h]=n.x+s.x,i[h+1]=n.y+s.y,i[h+2]=n.x-s.x,i[h+3]=n.y-s.y,r=n}PIXI.DisplayObjectContainer.prototype.updateTransform.call(this)}},PIXI.Rope.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0},PIXI.TilingSprite=function(t,e,i){PIXI.DisplayObjectContainer.call(this),this.texture=t,this.width=e,this.height=i,this.renderable=!0,this.tileScale=new PIXI.Point(1,1),this.tilePosition=new PIXI.Point(0,0),this.blendMode=PIXI.blendModes.NORMAL},PIXI.TilingSprite.constructor=PIXI.TilingSprite,PIXI.TilingSprite.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.TilingSprite.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0},PIXI.TilingSprite.prototype.onTextureUpdate=function(){this.updateFrame=!0},PIXI.CustomRenderable=function(){PIXI.DisplayObject.call(this)},PIXI.CustomRenderable.constructor=PIXI.CustomRenderable,PIXI.CustomRenderable.prototype=Object.create(PIXI.DisplayObject.prototype),PIXI.CustomRenderable.prototype.renderCanvas=function(){},PIXI.CustomRenderable.prototype.initWebGL=function(){},PIXI.CustomRenderable.prototype.renderWebGL=function(){},PIXI.BaseTextureCache={},PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[],PIXI.BaseTexture=function(t){if(PIXI.EventTarget.call(this),this.width=100,this.height=100,this.source=t,t){if(this.source instanceof Image)if(this.source.complete)this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,PIXI.texturesToUpdate.push(this);else{var e=this;this.source.onload=function(){e.hasLoaded=!0,e.width=e.source.width,e.height=e.source.height,PIXI.texturesToUpdate.push(e),e.dispatchEvent({type:"loaded",content:e})}}else this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,PIXI.texturesToUpdate.push(this);this._powerOf2=!1}},PIXI.BaseTexture.constructor=PIXI.BaseTexture,PIXI.BaseTexture.prototype.destroy=function(){this.source instanceof Image&&(this.source.src=null),this.source=null,PIXI.texturesToDestroy.push(this)},PIXI.BaseTexture.fromImage=function(t,e){var i=PIXI.BaseTextureCache[t];if(!i){var r=new Image;e&&(r.crossOrigin=""),r.src=t,i=new PIXI.BaseTexture(r),PIXI.BaseTextureCache[t]=i}return i},PIXI.TextureCache={},PIXI.FrameCache={},PIXI.Texture=function(t,e){if(PIXI.EventTarget.call(this),e||(this.noFrame=!0,e=new PIXI.Rectangle(0,0,1,1)),this.trim=new PIXI.Point,t instanceof PIXI.Texture&&(t=t.baseTexture),this.baseTexture=t,this.frame=e,this.scope=this,t.hasLoaded)this.noFrame&&(e=new PIXI.Rectangle(0,0,t.width,t.height)),this.setFrame(e);else{var i=this;t.addEventListener("loaded",function(){i.onBaseTextureLoaded()})}},PIXI.Texture.constructor=PIXI.Texture,PIXI.Texture.prototype.onBaseTextureLoaded=function(){var t=this.baseTexture;t.removeEventListener("loaded",this.onLoaded),this.noFrame&&(this.frame=new PIXI.Rectangle(0,0,t.width,t.height)),this.noFrame=!1,this.width=this.frame.width,this.height=this.frame.height,this.scope.dispatchEvent({type:"update",content:this})},PIXI.Texture.prototype.destroy=function(t){t&&this.baseTexture.destroy()},PIXI.Texture.prototype.setFrame=function(t){if(this.frame=t,this.width=t.width,this.height=t.height,t.x+t.width>this.baseTexture.width||t.y+t.height>this.baseTexture.height)throw Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);this.updateFrame=!0,PIXI.Texture.frameUpdates.push(this)},PIXI.Texture.fromImage=function(t,e){var i=PIXI.TextureCache[t];return i||(i=new PIXI.Texture(PIXI.BaseTexture.fromImage(t,e)),PIXI.TextureCache[t]=i),i},PIXI.Texture.fromFrame=function(t){var e=PIXI.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache "+this);return e},PIXI.Texture.fromCanvas=function(t){var e=new PIXI.BaseTexture(t);return new PIXI.Texture(e)},PIXI.Texture.addTextureToCache=function(t,e){PIXI.TextureCache[e]=t},PIXI.Texture.removeTextureFromCache=function(t){var e=PIXI.TextureCache[t];return PIXI.TextureCache[t]=null,e},PIXI.Texture.frameUpdates=[],PIXI.RenderTexture=function(t,e){PIXI.EventTarget.call(this),this.width=t||100,this.height=e||100,this.indetityMatrix=PIXI.mat3.create(),this.frame=new PIXI.Rectangle(0,0,this.width,this.height),PIXI.gl?this.initWebGL():this.initCanvas()},PIXI.RenderTexture.constructor=PIXI.RenderTexture,PIXI.RenderTexture.prototype=Object.create(PIXI.Texture.prototype),PIXI.RenderTexture.prototype.initWebGL=function(){var t=PIXI.gl;this.glFramebuffer=t.createFramebuffer(),t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),this.glFramebuffer.width=this.width,this.glFramebuffer.height=this.height,this.baseTexture=new PIXI.BaseTexture,this.baseTexture.width=this.width,this.baseTexture.height=this.height,this.baseTexture._glTexture=t.createTexture(),t.bindTexture(t.TEXTURE_2D,this.baseTexture._glTexture),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,this.width,this.height,0,t.RGBA,t.UNSIGNED_BYTE,null),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),this.baseTexture.isRender=!0,t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,this.baseTexture._glTexture,0),this.projectionMatrix=PIXI.mat4.create(),this.projectionMatrix[5]=2/this.height,this.projectionMatrix[13]=-1,this.projectionMatrix[0]=2/this.width,this.projectionMatrix[12]=-1,this.render=this.renderWebGL},PIXI.RenderTexture.prototype.initCanvas=function(){this.renderer=new PIXI.CanvasRenderer(this.width,this.height,null,0),this.baseTexture=new PIXI.BaseTexture(this.renderer.view),this.frame=new PIXI.Rectangle(0,0,this.width,this.height),this.render=this.renderCanvas},PIXI.RenderTexture.prototype.renderWebGL=function(t,e){var i=PIXI.gl;i.colorMask(!0,!0,!0,!0),i.viewport(0,0,this.width,this.height),i.bindFramebuffer(i.FRAMEBUFFER,this.glFramebuffer),e&&(i.clearColor(0,0,0,0),i.clear(i.COLOR_BUFFER_BIT));var r=t.children;t.worldTransform=PIXI.mat3.create();for(var s=0,n=r.length;n>s;s++)r[s].updateTransform();var a=t.__renderGroup;a?t==a.root?a.render(this.projectionMatrix):a.renderSpecific(t,this.projectionMatrix):(this.renderGroup||(this.renderGroup=new PIXI.WebGLRenderGroup(i)),this.renderGroup.setRenderable(t),this.renderGroup.render(this.projectionMatrix))},PIXI.RenderTexture.prototype.renderCanvas=function(t,e){var i=t.children;t.worldTransform=PIXI.mat3.create();for(var r=0,s=i.length;s>r;r++)i[r].updateTransform();e&&this.renderer.context.clearRect(0,0,this.width,this.height),this.renderer.renderDisplayObject(t),PIXI.texturesToUpdate.push(this.baseTexture)},PIXI.AssetLoader=function(t){PIXI.EventTarget.call(this),this.assetURLs=t,this.crossorigin=!1,this.loadersByType={jpg:PIXI.ImageLoader,jpeg:PIXI.ImageLoader,png:PIXI.ImageLoader,gif:PIXI.ImageLoader,json:PIXI.SpriteSheetLoader,xml:PIXI.BitmapFontLoader,fnt:PIXI.BitmapFontLoader}},PIXI.AssetLoader.constructor=PIXI.AssetLoader,PIXI.AssetLoader.prototype.load=function(){var t=this;this.loadCount=this.assetURLs.length;for(var e=0;this.assetURLs.length>e;e++){var i=this.assetURLs[e],r=i.split(".").pop().toLowerCase(),s=this.loadersByType[r];if(!s)throw Error(r+" is an unsupported file type");var n=new s(i,this.crossorigin);n.addEventListener("loaded",function(){t.onAssetLoaded()}),n.load()}},PIXI.AssetLoader.prototype.onAssetLoaded=function(){this.loadCount--,this.dispatchEvent({type:"onProgress",content:this}),this.onProgress&&this.onProgress(),0==this.loadCount&&(this.dispatchEvent({type:"onComplete",content:this}),this.onComplete&&this.onComplete())},PIXI.SpriteSheetLoader=function(t,e){PIXI.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.frames={},this.crossorigin=e},PIXI.SpriteSheetLoader.constructor=PIXI.SpriteSheetLoader,PIXI.SpriteSheetLoader.prototype.load=function(){this.ajaxRequest=new AjaxRequest;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onJSONLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/json"),this.ajaxRequest.send(null)},PIXI.SpriteSheetLoader.prototype.onJSONLoaded=function(){if(4==this.ajaxRequest.readyState&&(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))){var jsonData=eval("("+this.ajaxRequest.responseText+")"),textureUrl=this.baseUrl+jsonData.meta.image,image=new PIXI.ImageLoader(textureUrl,this.crossorigin);this.texture=image.texture.baseTexture;var scope=this;image.addEventListener("loaded",function(){scope.onLoaded()});var frameData=jsonData.frames;for(var i in frameData){var rect=frameData[i].frame;rect&&(PIXI.TextureCache[i]=new PIXI.Texture(this.texture,{x:rect.x,y:rect.y,width:rect.w,height:rect.h}),frameData[i].trimmed&&(PIXI.TextureCache[i].realSize=frameData[i].spriteSourceSize,PIXI.TextureCache[i].trim.x=0))}image.load()}},PIXI.SpriteSheetLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},PIXI.ImageLoader=function(t,e){PIXI.EventTarget.call(this),this.texture=PIXI.Texture.fromImage(t,e)},PIXI.ImageLoader.constructor=PIXI.ImageLoader,PIXI.ImageLoader.prototype.load=function(){if(this.texture.baseTexture.hasLoaded)this.onLoaded();else{var t=this;this.texture.baseTexture.addEventListener("loaded",function(){t.onLoaded()})}},PIXI.ImageLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},PIXI.BitmapFontLoader=function(t,e){PIXI.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.crossorigin=e},PIXI.BitmapFontLoader.constructor=PIXI.BitmapFontLoader,PIXI.BitmapFontLoader.prototype.load=function(){this.ajaxRequest=new XMLHttpRequest;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onXMLLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/xml"),this.ajaxRequest.send(null)},PIXI.BitmapFontLoader.prototype.onXMLLoaded=function(){if(4==this.ajaxRequest.readyState&&(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))){var t=this.baseUrl+this.ajaxRequest.responseXML.getElementsByTagName("page")[0].attributes.getNamedItem("file").nodeValue,e=new PIXI.ImageLoader(t,this.crossorigin);this.texture=e.texture.baseTexture;var i={},r=this.ajaxRequest.responseXML.getElementsByTagName("info")[0],s=this.ajaxRequest.responseXML.getElementsByTagName("common")[0];i.font=r.attributes.getNamedItem("face").nodeValue,i.size=parseInt(r.attributes.getNamedItem("size").nodeValue,10),i.lineHeight=parseInt(s.attributes.getNamedItem("lineHeight").nodeValue,10),i.chars={};for(var n=this.ajaxRequest.responseXML.getElementsByTagName("char"),a=0;n.length>a;a++){var o=parseInt(n[a].attributes.getNamedItem("id").nodeValue,10),h={x:parseInt(n[a].attributes.getNamedItem("x").nodeValue,10),y:parseInt(n[a].attributes.getNamedItem("y").nodeValue,10),width:parseInt(n[a].attributes.getNamedItem("width").nodeValue,10),height:parseInt(n[a].attributes.getNamedItem("height").nodeValue,10)};PIXI.TextureCache[o]=new PIXI.Texture(this.texture,h),i.chars[o]={xOffset:parseInt(n[a].attributes.getNamedItem("xoffset").nodeValue,10),yOffset:parseInt(n[a].attributes.getNamedItem("yoffset").nodeValue,10),xAdvance:parseInt(n[a].attributes.getNamedItem("xadvance").nodeValue,10),kerning:{}}}var u=this.ajaxRequest.responseXML.getElementsByTagName("kerning");for(a=0;u.length>a;a++){var c=parseInt(u[a].attributes.getNamedItem("first").nodeValue,10),d=parseInt(u[a].attributes.getNamedItem("second").nodeValue,10),l=parseInt(u[a].attributes.getNamedItem("amount").nodeValue,10);i.chars[d].kerning[c]=l}PIXI.BitmapText.fonts[i.font]=i;var I=this;e.addEventListener("loaded",function(){I.onLoaded()}),e.load()}},PIXI.BitmapFontLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=PIXI),exports.PIXI=PIXI):root.PIXI=PIXI}).call(this); \ No newline at end of file +(function(){function HEXtoRGB(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}function determineMatrixArrayType(){return PIXI.Matrix="undefined"!=typeof Float32Array?Float32Array:Array,PIXI.Matrix}var root=this,PIXI=PIXI||{};PIXI.Point=function(t,e){this.x=t||0,this.y=e||0},PIXI.Point.prototype.clone=function(){return new PIXI.Point(this.x,this.y)},PIXI.Point.constructor=PIXI.Point,PIXI.Rectangle=function(t,e,i,r){this.x=t||0,this.y=e||0,this.width=i||0,this.height=r||0},PIXI.Rectangle.prototype.clone=function(){return new PIXI.Rectangle(this.x,this.y,this.width,this.height)},PIXI.Rectangle.constructor=PIXI.Rectangle,PIXI.DisplayObject=function(){this.position=new PIXI.Point,this.scale=new PIXI.Point(1,1),this.pivot=new PIXI.Point(0,0),this.rotation=0,this.alpha=1,this.visible=!0,this.worldVisible=!1,this.parent=null,this.stage=null,this.hitArea=null,this.worldAlpha=1,this.color=[],this.worldTransform=PIXI.mat3.create(),this.localTransform=PIXI.mat3.create(),this.dynamic=!0,this._sr=0,this._cr=1,this.childIndex=0,this.renderable=!1,this.interactive=!1,this.buttonMode=!1},PIXI.DisplayObject.constructor=PIXI.DisplayObject,PIXI.DisplayObject.prototype.setInteractive=function(t){this.interactive=t,this.stage&&(this.stage.dirty=!0)},PIXI.DisplayObject.prototype.updateTransform=function(){this.rotation!=this.rotationCache&&(this.rotationCache=this.rotation,this._sr=Math.sin(this.rotation),this._cr=Math.cos(this.rotation));var t=this.localTransform,e=this.parent.worldTransform,i=this.worldTransform;t[0]=this._cr*this.scale.x,t[1]=-this._sr*this.scale.y,t[3]=this._sr*this.scale.x,t[4]=this._cr*this.scale.y;var r=this.pivot.x,s=this.pivot.y;t[2]=this.position.x-t[0]*r-s*t[1],t[5]=this.position.y-t[4]*s-r*t[3];var n=t[0],a=t[1],o=t[2],h=t[3],u=t[4],d=t[5],c=e[0],l=e[1],I=e[2],p=e[3],f=e[4],x=e[5];i[0]=c*n+l*h,i[1]=c*a+l*u,i[2]=c*o+l*d+I,i[3]=p*n+f*h,i[4]=p*a+f*u,i[5]=p*o+f*d+x,this.worldAlpha=this.alpha*this.parent.worldAlpha},PIXI.DisplayObjectContainer=function(){PIXI.DisplayObject.call(this),this.children=[],this.renderable=!1},PIXI.DisplayObjectContainer.constructor=PIXI.DisplayObjectContainer,PIXI.DisplayObjectContainer.prototype=Object.create(PIXI.DisplayObject.prototype),PIXI.DisplayObjectContainer.prototype.addChild=function(t){void 0!=t.parent&&t.parent.removeChild(t),t.parent=this,t.childIndex=this.children.length,this.children.push(t),this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},PIXI.DisplayObjectContainer.prototype.addChildAt=function(t,e){if(!(e>=0&&this.children.length>=e))throw Error(t+" The index "+e+" supplied is out of bounds "+this.children.length);void 0!=t.parent&&t.parent.removeChild(t),e==this.children.length?this.children.push(t):this.children.splice(e,0,t),t.parent=this,t.childIndex=e;for(var i=this.children.length,r=e;i>r;r++)this.children[r].childIndex=r;this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},PIXI.DisplayObjectContainer.prototype.swapChildren=function(t,e){var i=this.children.indexOf(t),r=this.children.indexOf(e);if(-1===i||-1===r)throw Error(t+" Both the supplied DisplayObjects must be a child of the caller "+this);this.stage&&(this.stage.__removeChild(t),this.stage.__removeChild(e),this.stage.__addChild(t),this.stage.__addChild(e)),t.childIndex=r,e.childIndex=i,this.children[i]=e,this.children[r]=t},PIXI.DisplayObjectContainer.prototype.getChildAt=function(t){if(t>=0&&this.children.length>t)return this.children[t];throw Error(child+" Both the supplied DisplayObjects must be a child of the caller "+this)},PIXI.DisplayObjectContainer.prototype.removeChild=function(t){var e=this.children.indexOf(t);if(-1===e)throw Error(t+" The supplied DisplayObject must be a child of the caller "+this);this.stage&&this.stage.__removeChild(t),t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.parent=void 0,this.children.splice(e,1);for(var i=e,r=this.children.length;r>i;i++)this.children[i].childIndex-=1},PIXI.DisplayObjectContainer.prototype.updateTransform=function(){if(this.visible){PIXI.DisplayObject.prototype.updateTransform.call(this);for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform()}},PIXI.blendModes={},PIXI.blendModes.NORMAL=0,PIXI.blendModes.SCREEN=1,PIXI.Sprite=function(t){PIXI.DisplayObjectContainer.call(this),this.anchor=new PIXI.Point,this.texture=t,this.blendMode=PIXI.blendModes.NORMAL,this._width=0,this._height=0,t.baseTexture.hasLoaded?this.updateFrame=!0:(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},PIXI.Sprite.constructor=PIXI.Sprite,PIXI.Sprite.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),Object.defineProperty(PIXI.Sprite.prototype,"width",{get:function(){return this.scale.x*this.texture.frame.width},set:function(t){this.scale.x=t/this.texture.frame.width,this._width=t}}),Object.defineProperty(PIXI.Sprite.prototype,"height",{get:function(){return this.scale.y*this.texture.frame.height},set:function(t){this.scale.y=t/this.texture.frame.height,this._height=t}}),PIXI.Sprite.prototype.setTexture=function(t){this.texture.baseTexture!=t.baseTexture&&(this.textureChange=!0),this.texture=t,this.updateFrame=!0},PIXI.Sprite.prototype.onTextureUpdate=function(){this._width&&(this.scale.x=this._width/this.texture.frame.width),this._height&&(this.scale.y=this._height/this.texture.frame.height),this.updateFrame=!0},PIXI.Sprite.fromFrame=function(t){var e=PIXI.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache"+this);return new PIXI.Sprite(e)},PIXI.Sprite.fromImage=function(t){var e=PIXI.Texture.fromImage(t);return new PIXI.Sprite(e)},PIXI.MovieClip=function(t){PIXI.Sprite.call(this,t[0]),this.textures=t,this.currentFrame=0,this.animationSpeed=1,this.loop=!0,this.onComplete=null,this.playing},PIXI.MovieClip.constructor=PIXI.MovieClip,PIXI.MovieClip.prototype=Object.create(PIXI.Sprite.prototype),PIXI.MovieClip.prototype.stop=function(){this.playing=!1},PIXI.MovieClip.prototype.play=function(){this.playing=!0},PIXI.MovieClip.prototype.gotoAndStop=function(t){this.playing=!1,this.currentFrame=t;var e=0|this.currentFrame+.5;this.setTexture(this.textures[e%this.textures.length])},PIXI.MovieClip.prototype.gotoAndPlay=function(t){this.currentFrame=t,this.playing=!0},PIXI.MovieClip.prototype.updateTransform=function(){if(PIXI.Sprite.prototype.updateTransform.call(this),this.playing){this.currentFrame+=this.animationSpeed;var t=0|this.currentFrame+.5;this.loop||this.textures.length>t?this.setTexture(this.textures[t%this.textures.length]):t>=this.textures.length&&(this.gotoAndStop(this.textures.length-1),this.onComplete&&this.onComplete())}},PIXI.Text=function(t,e){this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"),PIXI.Sprite.call(this,PIXI.Texture.fromCanvas(this.canvas)),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},PIXI.Text.constructor=PIXI.Text,PIXI.Text.prototype=Object.create(PIXI.Sprite.prototype),PIXI.Text.prototype.setStyle=function(t){t=t||{},t.font=t.font||"bold 20pt Arial",t.fill=t.fill||"black",t.align=t.align||"left",t.strokeThickness=t.strokeThickness||0,this.style=t,this.dirty=!0},PIXI.Sprite.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},PIXI.Text.prototype.updateText=function(){this.context.font=this.style.font;for(var t=this.text.split(/(?:\r\n|\r|\n)/),e=[],i=0,r=0;t.length>r;r++){var s=this.context.measureText(t[r]).width;e[r]=s,i=Math.max(i,s)}this.canvas.width=i+this.style.strokeThickness;var n=this.determineFontHeight("font: "+this.style.font+";")+this.style.strokeThickness;for(this.canvas.height=n*t.length,this.context.fillStyle=this.style.fill,this.context.font=this.style.font,this.context.strokeStyle=this.style.stroke,this.context.lineWidth=this.style.strokeThickness,this.context.textBaseline="top",r=0;t.length>r;r++){var a=new PIXI.Point(this.style.strokeThickness/2,this.style.strokeThickness/2+r*n);"right"==this.style.align?a.x+=i-e[r]:"center"==this.style.align&&(a.x+=(i-e[r])/2),this.style.stroke&&this.style.strokeThickness&&this.context.strokeText(t[r],a.x,a.y),this.style.fill&&this.context.fillText(t[r],a.x,a.y)}this.updateTexture()},PIXI.Text.prototype.updateTexture=function(){this.texture.baseTexture.width=this.canvas.width,this.texture.baseTexture.height=this.canvas.height,this.texture.frame.width=this.canvas.width,this.texture.frame.height=this.canvas.height,this._width=this.canvas.width,this._height=this.canvas.height,PIXI.texturesToUpdate.push(this.texture.baseTexture)},PIXI.Text.prototype.updateTransform=function(){this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype.updateTransform.call(this)},PIXI.Text.prototype.determineFontHeight=function(t){var e=PIXI.Text.heightCache[t];if(!e){var i=document.getElementsByTagName("body")[0],r=document.createElement("div"),s=document.createTextNode("M");r.appendChild(s),r.setAttribute("style",t),i.appendChild(r),e=r.offsetHeight,PIXI.Text.heightCache[t]=e,i.removeChild(r)}return e},PIXI.Text.prototype.destroy=function(t){t&&this.texture.destroy()},PIXI.Text.heightCache={},PIXI.BitmapText=function(t,e){PIXI.DisplayObjectContainer.call(this),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},PIXI.BitmapText.constructor=PIXI.BitmapText,PIXI.BitmapText.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.BitmapText.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},PIXI.BitmapText.prototype.setStyle=function(t){t=t||{},t.align=t.align||"left",this.style=t;var e=t.font.split(" ");this.fontName=e[e.length-1],this.fontSize=e.length>=2?parseInt(e[e.length-2],10):PIXI.BitmapText.fonts[this.fontName].size,this.dirty=!0},PIXI.BitmapText.prototype.updateText=function(){for(var t=PIXI.BitmapText.fonts[this.fontName],e=new PIXI.Point,i=null,r=[],s=0,n=[],a=0,o=this.fontSize/t.size,h=0;this.text.length>h;h++){var u=this.text.charCodeAt(h);if(/(?:\r\n|\r|\n)/.test(this.text.charAt(h)))n.push(e.x),s=Math.max(s,e.x),a++,e.x=0,e.y+=t.lineHeight,i=null;else{var d=t.chars[u];d&&(i&&d[i]&&(e.x+=d.kerning[i]),r.push({line:a,charCode:u,position:new PIXI.Point(e.x+d.xOffset,e.y+d.yOffset)}),e.x+=d.xAdvance,i=u)}}n.push(e.x),s=Math.max(s,e.x);var c=[];for(h=0;a>=h;h++){var l=0;"right"==this.style.align?l=s-n[h]:"center"==this.style.align&&(l=(s-n[h])/2),c.push(l)}for(h=0;r.length>h;h++){var I=PIXI.Sprite.fromFrame(r[h].charCode);I.position.x=(r[h].position.x+c[r[h].line])*o,I.position.y=r[h].position.y*o,I.scale.x=I.scale.y=o,this.addChild(I)}this.width=e.x*o,this.height=(e.y+t.lineHeight)*o},PIXI.BitmapText.prototype.updateTransform=function(){if(this.dirty){for(;this.children.length>0;)this.removeChild(this.getChildAt(0));this.updateText(),this.dirty=!1}PIXI.DisplayObjectContainer.prototype.updateTransform.call(this)},PIXI.BitmapText.fonts={},PIXI.InteractionManager=function(t){this.stage=t,this.tempPoint=new PIXI.Point,this.mouseoverEnabled=!0,this.mouse=new PIXI.InteractionData,this.touchs={},this.pool=[],this.interactiveItems=[],this.last=0},PIXI.InteractionManager.constructor=PIXI.InteractionManager,PIXI.InteractionManager.prototype.collectInteractiveSprite=function(t,e){for(var i=t.children,r=i.length,s=r-1;s>=0;s--){var n=i[s];n.interactive?(e.interactiveChildren=!0,this.interactiveItems.push(n),n.children.length>0&&this.collectInteractiveSprite(n,n)):(n.__iParent=null,n.children.length>0&&this.collectInteractiveSprite(n,e))}},PIXI.InteractionManager.prototype.setTarget=function(t){window.navigator.msPointerEnabled&&(t.view.style["-ms-content-zooming"]="none",t.view.style["-ms-touch-action"]="none"),this.target=t,t.view.addEventListener("mousemove",this.onMouseMove.bind(this),!0),t.view.addEventListener("mousedown",this.onMouseDown.bind(this),!0),document.body.addEventListener("mouseup",this.onMouseUp.bind(this),!0),t.view.addEventListener("mouseout",this.onMouseUp.bind(this),!0),t.view.addEventListener("touchstart",this.onTouchStart.bind(this),!0),t.view.addEventListener("touchend",this.onTouchEnd.bind(this),!0),t.view.addEventListener("touchmove",this.onTouchMove.bind(this),!0)},PIXI.InteractionManager.prototype.update=function(){if(this.target){var t=Date.now(),e=t-this.last;if(e=30*e/1e3,!(1>e)){if(this.last=t,this.dirty){this.dirty=!1,this.interactiveItems.length;for(var i=0;this.interactiveItems.length>i;i++)this.interactiveItems[i].interactiveChildren=!1;this.interactiveItems=[],this.stage.interactive&&this.interactiveItems.push(this.stage),this.collectInteractiveSprite(this.stage,this.stage)}var r=this.interactiveItems.length;this.target.view.style.cursor="default";for(var i=0;r>i;i++){var s=this.interactiveItems[i];s.visible&&(s.mouseover||s.mouseout||s.buttonMode)&&(s.__hit=this.hitTest(s,this.mouse),s.__hit?(s.buttonMode&&(this.target.view.style.cursor="pointer"),s.__isOver||(s.mouseover&&s.mouseover(this.mouse),s.__isOver=!0)):s.__isOver&&(s.mouseout&&s.mouseout(this.mouse),s.__isOver=!1))}}}},PIXI.InteractionManager.prototype.onMouseMove=function(t){t.preventDefault();var e=this.target.view.getBoundingClientRect();this.mouse.global.x=(t.clientX-e.left)*(this.target.width/e.width),this.mouse.global.y=(t.clientY-e.top)*(this.target.height/e.height);var i=this.interactiveItems.length;this.mouse.global;for(var r=0;i>r;r++){var s=this.interactiveItems[r];s.mousemove&&s.mousemove(this.mouse)}},PIXI.InteractionManager.prototype.onMouseDown=function(t){t.preventDefault();var e=this.interactiveItems.length;this.mouse.global,this.stage;for(var i=0;e>i;i++){var r=this.interactiveItems[i];if((r.mousedown||r.click)&&(r.__mouseIsDown=!0,r.__hit=this.hitTest(r,this.mouse),r.__hit&&(r.mousedown&&r.mousedown(this.mouse),r.__isDown=!0,!r.interactiveChildren)))break}},PIXI.InteractionManager.prototype.onMouseUp=function(t){t.preventDefault(),this.mouse.global;for(var e=this.interactiveItems.length,i=!1,r=0;e>r;r++){var s=this.interactiveItems[r];(s.mouseup||s.mouseupoutside||s.click)&&(s.__hit=this.hitTest(s,this.mouse),s.__hit&&!i?(s.mouseup&&s.mouseup(this.mouse),s.__isDown&&s.click&&s.click(this.mouse),s.interactiveChildren||(i=!0)):s.__isDown&&s.mouseupoutside&&s.mouseupoutside(this.mouse),s.__isDown=!1)}},PIXI.InteractionManager.prototype.hitTest=function(t,e){var i=e.global;if(!t.visible)return!1;if(t instanceof PIXI.Sprite){var r=t.worldTransform,s=r[0],n=r[1],a=r[2],o=r[3],h=r[4],u=r[5],d=1/(s*h+n*-o),c=h*d*i.x+-n*d*i.y+(u*n-a*h)*d,l=s*d*i.y+-o*d*i.x+(-u*s+a*o)*d,I=t.texture.frame.width,p=t.texture.frame.height,f=-I*t.anchor.x;if(c>f&&f+I>c){var x=-p*t.anchor.y;if(l>x&&x+p>l)return e.target=t,!0}}else if(t.hitArea){var r=t.worldTransform,v=t.hitArea,s=r[0],n=r[1],a=r[2],o=r[3],h=r[4],u=r[5],d=1/(s*h+n*-o),c=h*d*i.x+-n*d*i.y+(u*n-a*h)*d,l=s*d*i.y+-o*d*i.x+(-u*s+a*o)*d,f=v.x;if(c>f&&f+v.width>c){var x=v.y;if(l>x&&x+v.height>l)return!0}}for(var P=t.children.length,g=0;P>g;g++){var b=t.children[g],X=this.hitTest(b,e);if(X)return!0}return!1},PIXI.InteractionManager.prototype.onTouchMove=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.touchs[s.identifier];n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height)}for(var a=this.interactiveItems.length,r=0;a>r;r++){var o=this.interactiveItems[r];o.touchmove&&o.touchmove(n)}},PIXI.InteractionManager.prototype.onTouchStart=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.pool.pop();n||(n=new PIXI.InteractionData),this.touchs[s.identifier]=n,n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height);for(var a=this.interactiveItems.length,o=0;a>o;o++){var h=this.interactiveItems[o];if((h.touchstart||h.tap)&&(h.__hit=this.hitTest(h,n),h.__hit&&(h.touchstart&&h.touchstart(n),h.__isDown=!0,h.__touchData=n,!h.interactiveChildren)))break}}},PIXI.InteractionManager.prototype.onTouchEnd=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.touchs[s.identifier],a=!1;n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var u=this.interactiveItems[h],d=u.__touchData;u.__hit=this.hitTest(u,n),d==n&&((u.touchend||u.tap)&&(u.__hit&&!a?(u.touchend&&u.touchend(n),u.__isDown&&u.tap&&u.tap(n),u.interactiveChildren||(a=!0)):u.__isDown&&u.touchendoutside&&u.touchendoutside(n),u.__isDown=!1),u.__touchData=null)}this.pool.push(n),this.touchs[s.identifier]=null}},PIXI.InteractionData=function(){this.global=new PIXI.Point,this.local=new PIXI.Point,this.target},PIXI.InteractionData.prototype.getLocalPosition=function(t){var e=t.worldTransform,i=this.global,r=e[0],s=e[1],n=e[2],a=e[3],o=e[4],h=e[5],u=1/(r*o+s*-a);return new PIXI.Point(o*u*i.x+-s*u*i.y+(h*s-n*o)*u,r*u*i.y+-a*u*i.x+(-h*r+n*a)*u)},PIXI.InteractionData.constructor=PIXI.InteractionData,PIXI.Stage=function(t,e){PIXI.DisplayObjectContainer.call(this),this.worldTransform=PIXI.mat3.create(),this.__childrenAdded=[],this.__childrenRemoved=[],this.childIndex=0,this.stage=this,this.stage.hitArea=new PIXI.Rectangle(0,0,1e5,1e5),this.interactive=!!e,this.interactionManager=new PIXI.InteractionManager(this),this.setBackgroundColor(t),this.worldVisible=!0},PIXI.Stage.constructor=PIXI.Stage,PIXI.Stage.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Stage.prototype.updateTransform=function(){this.worldAlpha=1;for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform();this.dirty&&(this.dirty=!1,this.interactionManager.dirty=!0),this.interactive&&this.interactionManager.update()},PIXI.Stage.prototype.setBackgroundColor=function(t){this.backgroundColor=t||0,this.backgroundColorSplit=HEXtoRGB(this.backgroundColor),this.backgroundColorString="#"+this.backgroundColor.toString(16)},PIXI.Stage.prototype.getMousePosition=function(){return this.interactionManager.mouse.global},PIXI.Stage.prototype.__addChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=this,t.children)for(var e=0;t.children.length>e;e++)this.__addChild(t.children[e])},PIXI.Stage.prototype.__removeChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=void 0,t.children)for(var e=0,i=t.children.length;i>e;e++)this.__removeChild(t.children[e])},window.requestAnimFrame=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(t){window.setTimeout(t,1e3/60)}}(),"function"!=typeof Function.prototype.bind&&(Function.prototype.bind=function(){var t=Array.prototype.slice;return function(e){function i(){var n=s.concat(t.call(arguments));r.apply(this instanceof i?this:e,n)}var r=this,s=t.call(arguments,1);if("function"!=typeof r)throw new TypeError;return i.prototype=function n(t){return t&&(n.prototype=t),this instanceof n?void 0:new n}(r.prototype),i}}());var AjaxRequest=function(){var t=["Msxml2.XMLHTTP","Microsoft.XMLHTTP"];if(!window.ActiveXObject)return window.XMLHttpRequest?new XMLHttpRequest:!1;for(var e=0;t.length>e;e++)try{return new ActiveXObject(t[e])}catch(i){}};PIXI.EventTarget=function(){var t={};this.addEventListener=this.on=function(e,i){void 0===t[e]&&(t[e]=[]),-1===t[e].indexOf(i)&&t[e].push(i)},this.dispatchEvent=this.emit=function(e){for(var i in t[e.type])t[e.type][i](e)},this.removeEventListener=this.off=function(e,i){var r=t[e].indexOf(i);-1!==r&&t[e].splice(r,1)}},determineMatrixArrayType(),PIXI.mat3={},PIXI.mat3.create=function(){var t=new PIXI.Matrix(9);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},PIXI.mat4={},PIXI.mat4.create=function(){var t=new PIXI.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},PIXI.mat3.multiply=function(t,e,i){i||(i=t);var r=t[0],s=t[1],n=t[2],a=t[3],o=t[4],h=t[5],u=t[6],d=t[7],c=t[8],l=e[0],I=e[1],p=e[2],f=e[3],x=e[4],v=e[5],P=e[6],g=e[7],b=e[8];return i[0]=l*r+I*a+p*u,i[1]=l*s+I*o+p*d,i[2]=l*n+I*h+p*c,i[3]=f*r+x*a+v*u,i[4]=f*s+x*o+v*d,i[5]=f*n+x*h+v*c,i[6]=P*r+g*a+b*u,i[7]=P*s+g*o+b*d,i[8]=P*n+g*h+b*c,i},PIXI.mat3.toMat4=function(t,e){return e||(e=PIXI.mat4.create()),e[15]=1,e[14]=0,e[13]=0,e[12]=0,e[11]=0,e[10]=t[8],e[9]=t[7],e[8]=t[6],e[7]=0,e[6]=t[5],e[5]=t[4],e[4]=t[3],e[3]=0,e[2]=t[2],e[1]=t[1],e[0]=t[0],e},PIXI.mat4.create=function(){var t=new PIXI.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},PIXI.mat4.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],s=t[3],n=t[6],a=t[7],o=t[11];return t[1]=t[4],t[2]=t[8],t[3]=t[12],t[4]=i,t[6]=t[9],t[7]=t[13],t[8]=r,t[9]=n,t[11]=t[14],t[12]=s,t[13]=a,t[14]=o,t}return e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=t[1],e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=t[2],e[9]=t[6],e[10]=t[10],e[11]=t[14],e[12]=t[3],e[13]=t[7],e[14]=t[11],e[15]=t[15],e},PIXI.mat4.multiply=function(t,e,i){i||(i=t);var r=t[0],s=t[1],n=t[2],a=t[3],o=t[4],h=t[5],u=t[6],d=t[7],c=t[8],l=t[9],I=t[10],p=t[11],f=t[12],x=t[13],v=t[14],P=t[15],g=e[0],b=e[1],X=e[2],m=e[3];return i[0]=g*r+b*o+X*c+m*f,i[1]=g*s+b*h+X*l+m*x,i[2]=g*n+b*u+X*I+m*v,i[3]=g*a+b*d+X*p+m*P,g=e[4],b=e[5],X=e[6],m=e[7],i[4]=g*r+b*o+X*c+m*f,i[5]=g*s+b*h+X*l+m*x,i[6]=g*n+b*u+X*I+m*v,i[7]=g*a+b*d+X*p+m*P,g=e[8],b=e[9],X=e[10],m=e[11],i[8]=g*r+b*o+X*c+m*f,i[9]=g*s+b*h+X*l+m*x,i[10]=g*n+b*u+X*I+m*v,i[11]=g*a+b*d+X*p+m*P,g=e[12],b=e[13],X=e[14],m=e[15],i[12]=g*r+b*o+X*c+m*f,i[13]=g*s+b*h+X*l+m*x,i[14]=g*n+b*u+X*I+m*v,i[15]=g*a+b*d+X*p+m*P,i},PIXI.autoDetectRenderer=function(t,e,i,r){t||(t=800),e||(e=600);var s=function(){try{return!!window.WebGLRenderingContext&&!!document.createElement("canvas").getContext("experimental-webgl")}catch(t){return!1}}();return s?new PIXI.WebGLRenderer(t,e,i,r):new PIXI.CanvasRenderer(t,e,i,r)},PIXI.shaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * vColor;","}"],PIXI.shaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform mat4 uMVMatrix;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","gl_Position = uMVMatrix * vec4(aVertexPosition, 1.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],PIXI.CompileVertexShader=function(t,e){return PIXI._CompileShader(t,e,t.VERTEX_SHADER)},PIXI.CompileFragmentShader=function(t,e){return PIXI._CompileShader(t,e,t.FRAGMENT_SHADER)},PIXI._CompileShader=function(t,e,i){var r=e.join("\n"),s=t.createShader(i);return t.shaderSource(s,r),t.compileShader(s),t.getShaderParameter(s,t.COMPILE_STATUS)?s:(alert(t.getShaderInfoLog(s)),null)},PIXI._defaultFrame=new PIXI.Rectangle(0,0,1,1),PIXI.gl,PIXI.WebGLRenderer=function(t,e,i,r){this.transparent=!!r,this.width=t||800,this.height=e||600,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height;var s=this;this.view.addEventListener("webglcontextlost",function(t){s.handleContextLost(t)},!1),this.view.addEventListener("webglcontextrestored",function(t){s.handleContextRestored(t)},!1),this.batchs=[];try{PIXI.gl=this.gl=this.view.getContext("experimental-webgl",{alpha:this.transparent,antialias:!1,premultipliedAlpha:!0})}catch(n){throw Error(" This browser does not support webGL. Try using the canvas renderer"+this)}this.initShaders();var a=this.gl;PIXI.WebGLRenderer.gl=a,this.batch=new PIXI.WebGLBatch(a),a.disable(a.DEPTH_TEST),a.disable(a.CULL_FACE),a.enable(a.BLEND),a.colorMask(!0,!0,!0,this.transparent),this.projectionMatrix=PIXI.mat4.create(),this.resize(this.width,this.height),this.contextLost=!1,this.stageRenderGroup=new PIXI.WebGLRenderGroup(this.gl)},PIXI.WebGLRenderer.constructor=PIXI.WebGLRenderer,PIXI.WebGLRenderer.getBatch=function(){return 0==PIXI._batchs.length?new PIXI.WebGLBatch(PIXI.WebGLRenderer.gl):PIXI._batchs.pop()},PIXI.WebGLRenderer.returnBatch=function(t){t.clean(),PIXI._batchs.push(t)},PIXI.WebGLRenderer.prototype.initShaders=function(){var t=this.gl,e=PIXI.CompileFragmentShader(t,PIXI.shaderFragmentSrc),i=PIXI.CompileVertexShader(t,PIXI.shaderVertexSrc);PIXI.shaderProgram=t.createProgram();var r=PIXI.shaderProgram;t.attachShader(r,i),t.attachShader(r,e),t.linkProgram(r),t.getProgramParameter(r,t.LINK_STATUS)||alert("Could not initialise shaders"),t.useProgram(r),r.vertexPositionAttribute=t.getAttribLocation(r,"aVertexPosition"),t.enableVertexAttribArray(r.vertexPositionAttribute),r.textureCoordAttribute=t.getAttribLocation(r,"aTextureCoord"),t.enableVertexAttribArray(r.textureCoordAttribute),r.colorAttribute=t.getAttribLocation(r,"aColor"),t.enableVertexAttribArray(r.colorAttribute),r.mvMatrixUniform=t.getUniformLocation(r,"uMVMatrix"),r.samplerUniform=t.getUniformLocation(r,"uSampler")},PIXI.WebGLRenderer.prototype.render=function(t){if(!this.contextLost){this.__stage!==t&&(this.__stage=t,this.stageRenderGroup.setRenderable(t)),PIXI.WebGLRenderer.updateTextures(),t.updateTransform();var e=this.gl;if(e.colorMask(!0,!0,!0,this.transparent),e.viewport(0,0,this.width,this.height),e.bindFramebuffer(e.FRAMEBUFFER,null),e.clearColor(t.backgroundColorSplit[0],t.backgroundColorSplit[1],t.backgroundColorSplit[2],this.transparent),e.clear(e.COLOR_BUFFER_BIT),this.stageRenderGroup.backgroundColor=t.backgroundColorSplit,this.stageRenderGroup.render(this.projectionMatrix),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),PIXI.Texture.frameUpdates.length>0){for(var i=0;PIXI.Texture.frameUpdates.length>i;i++)PIXI.Texture.frameUpdates[i].updateFrame=!1;PIXI.Texture.frameUpdates=[]}}},PIXI.WebGLRenderer.updateTextures=function(){for(var t=0;PIXI.texturesToUpdate.length>t;t++)this.updateTexture(PIXI.texturesToUpdate[t]);for(var t=0;PIXI.texturesToDestroy.length>t;t++)this.destroyTexture(PIXI.texturesToDestroy[t]);PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[]},PIXI.WebGLRenderer.updateTexture=function(t){var e=PIXI.gl;t._glTexture||(t._glTexture=e.createTexture()),t.hasLoaded&&(e.bindTexture(e.TEXTURE_2D,t._glTexture),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t.source),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),t._powerOf2?(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT)):(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)),e.bindTexture(e.TEXTURE_2D,null))},PIXI.WebGLRenderer.prototype.destroyTexture=function(t){var e=this.gl;t._glTexture&&(t._glTexture=e.createTexture(),e.deleteTexture(e.TEXTURE_2D,t._glTexture))},PIXI.WebGLRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e,this.gl.viewport(0,0,this.width,this.height);var i=this.projectionMatrix;i[0]=2/this.width,i[5]=-2/this.height,i[12]=-1,i[13]=1},PIXI.WebGLRenderer.prototype.handleContextLost=function(t){t.preventDefault(),this.contextLost=!0},PIXI.WebGLRenderer.prototype.handleContextRestored=function(){this.gl=this.view.getContext("experimental-webgl",{alpha:!0}),this.initShaders();for(var t=0;PIXI.TextureCache.length>t;t++)this.updateTexture(PIXI.TextureCache[t]);for(var t=0;this.batchs.length>t;t++)this.batchs[t].restoreLostContext(this.gl),this.batchs[t].dirty=!0;PIXI._restoreBatchs(this.gl),this.contextLost=!1},PIXI._batchs=[],PIXI._getBatch=function(t){return 0==PIXI._batchs.length?new PIXI.WebGLBatch(t):PIXI._batchs.pop()},PIXI._returnBatch=function(t){t.clean(),PIXI._batchs.push(t)},PIXI._restoreBatchs=function(t){for(var e=0;PIXI._batchs.length>e;e++)PIXI._batchs[e].restoreLostContext(t)},PIXI.WebGLBatch=function(t){this.gl=t,this.size=0,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer(),this.blendMode=PIXI.blendModes.NORMAL,this.dynamicSize=1},PIXI.WebGLBatch.constructor=PIXI.WebGLBatch,PIXI.WebGLBatch.prototype.clean=function(){this.verticies=[],this.uvs=[],this.indices=[],this.colors=[],this.dynamicSize=1,this.texture=null,this.last=null,this.size=0,this.head,this.tail},PIXI.WebGLBatch.prototype.restoreLostContext=function(t){this.gl=t,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer()},PIXI.WebGLBatch.prototype.init=function(t){t.batch=this,this.dirty=!0,this.blendMode=t.blendMode,this.texture=t.texture.baseTexture,this.head=t,this.tail=t,this.size=1,this.growBatch()},PIXI.WebGLBatch.prototype.insertBefore=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__prev;e.__prev=t,t.__next=e,i?(t.__prev=i,i.__next=t):this.head=t},PIXI.WebGLBatch.prototype.insertAfter=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__next;e.__next=t,t.__prev=e,i?(t.__next=i,i.__prev=t):this.tail=t},PIXI.WebGLBatch.prototype.remove=function(t){return this.size--,0==this.size?(t.batch=null,t.__prev=null,t.__next=null,void 0):(t.__prev?t.__prev.__next=t.__next:(this.head=t.__next,this.head.__prev=null),t.__next?t.__next.__prev=t.__prev:(this.tail=t.__prev,this.tail.__next=null),t.batch=null,t.__next=null,t.__prev=null,this.dirty=!0,void 0)},PIXI.WebGLBatch.prototype.split=function(t){this.dirty=!0;var e=new PIXI.WebGLBatch(this.gl);e.init(t),e.tail=this.tail,this.tail=t.__prev,this.tail.__next=null,t.__prev=null;for(var i=0;t;)i++,t.batch=e,t=t.__next;return e.size=i,this.size-=i,e},PIXI.WebGLBatch.prototype.merge=function(t){this.dirty=!0,this.tail.__next=t.head,t.head.__prev=this.tail,this.size+=t.size,this.tail=t.tail;for(var e=t.head;e;)e.batch=this,e=e.__next},PIXI.WebGLBatch.prototype.growBatch=function(){var t=this.gl;this.dynamicSize=1==this.size?1:1.5*this.size,this.verticies=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.vertexBuffer),t.bufferData(t.ARRAY_BUFFER,this.verticies,t.DYNAMIC_DRAW),this.uvs=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.uvBuffer),t.bufferData(t.ARRAY_BUFFER,this.uvs,t.DYNAMIC_DRAW),this.dirtyUVS=!0,this.colors=new Float32Array(4*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.colorBuffer),t.bufferData(t.ARRAY_BUFFER,this.colors,t.DYNAMIC_DRAW),this.dirtyColors=!0,this.indices=new Uint16Array(6*this.dynamicSize);for(var e=this.indices.length/6,i=0;e>i;i++){var r=6*i,s=4*i;this.indices[r+0]=s+0,this.indices[r+1]=s+1,this.indices[r+2]=s+2,this.indices[r+3]=s+0,this.indices[r+4]=s+2,this.indices[r+5]=s+3}t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,this.indexBuffer),t.bufferData(t.ELEMENT_ARRAY_BUFFER,this.indices,t.STATIC_DRAW)},PIXI.WebGLBatch.prototype.refresh=function(){this.gl,this.dynamicSizer;r++)i=this.batchs[r],i instanceof PIXI.WebGLBatch?this.batchs[r].render():i instanceof PIXI.TilingSprite?i.visible&&this.renderTilingSprite(i,t):i instanceof PIXI.Strip&&i.visible&&this.renderStrip(i,t)},PIXI.WebGLRenderGroup.prototype.renderSpecific=function(t,e){PIXI.WebGLRenderer.updateTextures();var i=this.gl;this.checkVisibility(t,t.visible),i.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform,!1,e);var r,s,n,a,o=t.renderable?t:this.getNextRenderable(t),h=o.batch;if(o instanceof PIXI.Sprite){h=o.batch;var u=h.head;if(u==o)r=0;else for(r=1;u.__next!=o;)r++,u=u.__next}else h=o;for(var d,c=t,l=t;l.children.length>0;)l=l.children[l.children.length-1],l.renderable&&(c=l);if(c instanceof PIXI.Sprite){d=c.batch;var u=d.head;if(u==c)n=0;else for(n=1;u.__next!=c;)n++,u=u.__next}else d=c;if(h==d)return h instanceof PIXI.WebGLBatch?h.render(r,n+1):h instanceof PIXI.TilingSprite?h.visible&&this.renderTilingSprite(h,e):h instanceof PIXI.Strip?h.visible&&this.renderStrip(h,e):h instanceof PIXI.CustomRenderable&&h.visible&&h.renderWebGL(this,e),void 0;s=this.batchs.indexOf(h),a=this.batchs.indexOf(d),h instanceof PIXI.WebGLBatch?h.render(r):h instanceof PIXI.TilingSprite?h.visible&&this.renderTilingSprite(h,e):h instanceof PIXI.Strip?h.visible&&this.renderStrip(h,e):h instanceof PIXI.CustomRenderable&&h.visible&&h.renderWebGL(this,e);for(var I=s+1;a>I;I++)renderable=this.batchs[I],renderable instanceof PIXI.WebGLBatch?this.batchs[I].render():renderable instanceof PIXI.TilingSprite?renderable.visible&&this.renderTilingSprite(renderable,e):renderable instanceof PIXI.Strip?renderable.visible&&this.renderStrip(renderable,e):renderable instanceof PIXI.CustomRenderable&&renderable.visible&&renderable.renderWebGL(this,e);d instanceof PIXI.WebGLBatch?d.render(0,n+1):d instanceof PIXI.TilingSprite?d.visible&&this.renderTilingSprite(d):d instanceof PIXI.Strip?d.visible&&this.renderStrip(d):d instanceof PIXI.CustomRenderable&&d.visible&&d.renderWebGL(this,e)},PIXI.WebGLRenderGroup.prototype.checkVisibility=function(t,e){for(var i=t.children,r=0;i.length>r;r++){var s=i[r];s.worldVisible=s.visible&&e,s.textureChange&&(s.textureChange=!1,s.worldVisible&&(this.removeDisplayObject(s),this.addDisplayObject(s))),s.children.length>0&&this.checkVisibility(s,s.worldVisible)}},PIXI.WebGLRenderGroup.prototype.addDisplayObject=function(t){if(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.__renderGroup=this,t.renderable){var e=this.getPreviousRenderable(t),i=this.getNextRenderable(t);if(t instanceof PIXI.Sprite){var r,s;if(e instanceof PIXI.Sprite){if(r=e.batch,r&&r.texture==t.texture.baseTexture&&r.blendMode==t.blendMode)return r.insertAfter(t,e),void 0}else r=e;if(i)if(i instanceof PIXI.Sprite){if(s=i.batch){if(s.texture==t.texture.baseTexture&&s.blendMode==t.blendMode)return s.insertBefore(t,i),void 0;if(s==r){var n=r.split(i),a=PIXI.WebGLRenderer.getBatch(),o=this.batchs.indexOf(r);return a.init(t),this.batchs.splice(o+1,0,a,n),void 0}}}else s=i;var a=PIXI.WebGLRenderer.getBatch();if(a.init(t),r){var o=this.batchs.indexOf(r);this.batchs.splice(o+1,0,a)}else this.batchs.push(a)}else t instanceof PIXI.TilingSprite?(this.initTilingSprite(t),this.batchs.push(t)):t instanceof PIXI.Strip&&(this.initStrip(t),this.batchs.push(t));this.batchUpdate=!0}},PIXI.WebGLRenderGroup.prototype.addDisplayObjectAndChildren=function(t){this.addDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.addDisplayObjectAndChildren(e[i])},PIXI.WebGLRenderGroup.prototype.removeDisplayObject=function(t){if(t.__renderGroup=null,t.renderable){var e;if(t instanceof PIXI.Sprite){var i=t.batch;if(!i)return;i.remove(t),0==i.size&&(e=i)}else e=t;if(e){var r=this.batchs.indexOf(e);if(-1==r)return;if(0==r||r==this.batchs.length-1)return this.batchs.splice(r,1),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e),void 0;if(this.batchs[r-1]instanceof PIXI.WebGLBatch&&this.batchs[r+1]instanceof PIXI.WebGLBatch&&this.batchs[r-1].texture==this.batchs[r+1].texture&&this.batchs[r-1].blendMode==this.batchs[r+1].blendMode)return this.batchs[r-1].merge(this.batchs[r+1]),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e),PIXI.WebGLRenderer.returnBatch(this.batchs[r+1]),this.batchs.splice(r,2),void 0;this.batchs.splice(r,1),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e)}}},PIXI.WebGLRenderGroup.prototype.removeDisplayObjectAndChildren=function(t){if(t.__renderGroup==this){this.removeDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.removeDisplayObjectAndChildren(e[i])}},PIXI.WebGLRenderGroup.prototype.getNextRenderable=function(t){var e=t;do{if(0==e.children.length){if(!e.parent)return null;for(;e.childIndex==e.parent.children.length-1;)if(e=e.parent,e==this.root||!e.parent){e=null;break}e&&(e=e.parent.children[e.childIndex+1])}else e=e.children[0];if(!e)break}while(!e.renderable||!e.__renderGroup);return e},PIXI.WebGLRenderGroup.prototype.getPreviousRenderable=function(t){var e=t;do{if(0==e.childIndex){if(e=e.parent,!e)return null}else for(e=e.parent.children[e.childIndex-1];0!=e.children.length;)e=e.children[e.children.length-1];if(e==this.root)break}while(!e.renderable||!e.__renderGroup);return e},PIXI.WebGLRenderGroup.prototype.initTilingSprite=function(t){var e=this.gl;t.verticies=new Float32Array([0,0,t.width,0,t.width,t.height,0,t.height]),t.uvs=new Float32Array([0,0,1,0,1,1,0,1]),t.colors=new Float32Array([1,1,1,1]),t.indices=new Uint16Array([0,1,3,2]),t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW),t.texture.baseTexture._glTexture?(e.bindTexture(e.TEXTURE_2D,t.texture.baseTexture._glTexture),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT),t.texture.baseTexture._powerOf2=!0):t.texture.baseTexture._powerOf2=!0},PIXI.WebGLRenderGroup.prototype.renderStrip=function(t,e){var i=this.gl,r=PIXI.shaderProgram,s=PIXI.mat3.toMat4(t.worldTransform);PIXI.mat4.transpose(s),PIXI.mat4.multiply(e,s,s),i.uniformMatrix4fv(r.mvMatrixUniform,!1,s),t.blendMode==PIXI.blendModes.NORMAL?i.blendFunc(i.ONE,i.ONE_MINUS_SRC_ALPHA):i.blendFunc(i.ONE,i.ONE_MINUS_SRC_COLOR),t.dirty?(t.dirty=!1,i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferData(i.ARRAY_BUFFER,t.verticies,i.STATIC_DRAW),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferData(i.ARRAY_BUFFER,t.uvs,i.STATIC_DRAW),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.bufferData(i.ARRAY_BUFFER,t.colors,i.STATIC_DRAW),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer),i.bufferData(i.ELEMENT_ARRAY_BUFFER,t.indices,i.STATIC_DRAW)):(i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.verticies),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer)),i.drawElements(i.TRIANGLE_STRIP,t.indices.length,i.UNSIGNED_SHORT,0),i.uniformMatrix4fv(r.mvMatrixUniform,!1,e)},PIXI.WebGLRenderGroup.prototype.renderTilingSprite=function(t,e){var i=this.gl;PIXI.shaderProgram;var r=t.tilePosition,s=t.tileScale,n=r.x/t.texture.baseTexture.width,a=r.y/t.texture.baseTexture.height,o=t.width/t.texture.baseTexture.width/s.x,h=t.height/t.texture.baseTexture.height/s.y;t.uvs[0]=0-n,t.uvs[1]=0-a,t.uvs[2]=1*o-n,t.uvs[3]=0-a,t.uvs[4]=1*o-n,t.uvs[5]=1*h-a,t.uvs[6]=0-n,t.uvs[7]=1*h-a,i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.uvs),this.renderStrip(t,e)},PIXI.WebGLRenderer.prototype.initStrip=function(t){var e=this.gl;this.shaderProgram,t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW)},PIXI.CanvasRenderer=function(t,e,i,r){this.transparent=r,this.width=t||800,this.height=e||600,this.refresh=!0,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height,this.count=0,this.context=this.view.getContext("2d")},PIXI.CanvasRenderer.constructor=PIXI.CanvasRenderer,PIXI.CanvasRenderer.prototype.render=function(t){PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[],t.updateTransform(),this.view.style.backgroundColor==t.backgroundColorString||this.transparent||(this.view.style.backgroundColor=t.backgroundColorString),this.context.setTransform(1,0,0,1,0,0),this.context.clearRect(0,0,this.width,this.height),this.renderDisplayObject(t),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),PIXI.Texture.frameUpdates.length>0&&(PIXI.Texture.frameUpdates=[])},PIXI.CanvasRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e},PIXI.CanvasRenderer.prototype.renderDisplayObject=function(t){var e=t.worldTransform,i=this.context;if(t.visible){if(t instanceof PIXI.Sprite){var r=t.texture.frame;r&&(i.globalAlpha=t.worldAlpha,i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),i.drawImage(t.texture.baseTexture.source,r.x,r.y,r.width,r.height,t.anchor.x*-r.width,t.anchor.y*-r.height,r.width,r.height))}else t instanceof PIXI.Strip?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderStrip(t)):t instanceof PIXI.TilingSprite?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderTilingSprite(t)):t instanceof PIXI.CustomRenderable&&t.renderCanvas(this);for(var s=0;t.children.length>s;s++)this.renderDisplayObject(t.children[s]);this.context.setTransform(1,0,0,1,0,0)}},PIXI.CanvasRenderer.prototype.renderStripFlat=function(t){var e=this.context,i=t.verticies;t.uvs;var r=i.length/2;this.count++,e.beginPath();for(var s=1;r-2>s;s++){var n=2*s,a=i[n],o=i[n+2],h=i[n+4],u=i[n+1],d=i[n+3],c=i[n+5];e.moveTo(a,u),e.lineTo(o,d),e.lineTo(h,c)}e.fillStyle="#FF0000",e.fill(),e.closePath()},PIXI.CanvasRenderer.prototype.renderTilingSprite=function(t){var e=this.context;t.__tilePattern||(t.__tilePattern=e.createPattern(t.texture.baseTexture.source,"repeat")),e.beginPath();var i=t.tilePosition,r=t.tileScale;e.scale(r.x,r.y),e.translate(i.x,i.y),e.fillStyle=t.__tilePattern,e.fillRect(-i.x,-i.y,t.width/r.x,t.height/r.y),e.scale(1/r.x,1/r.y),e.translate(-i.x,-i.y),e.closePath()},PIXI.CanvasRenderer.prototype.renderStrip=function(t){var e=this.context,i=t.verticies,r=t.uvs,s=i.length/2;this.count++;for(var n=1;s-2>n;n++){var a=2*n,o=i[a],h=i[a+2],u=i[a+4],d=i[a+1],c=i[a+3],l=i[a+5],I=r[a]*t.texture.width,p=r[a+2]*t.texture.width,f=r[a+4]*t.texture.width,x=r[a+1]*t.texture.height,v=r[a+3]*t.texture.height,P=r[a+5]*t.texture.height;e.save(),e.beginPath(),e.moveTo(o,d),e.lineTo(h,c),e.lineTo(u,l),e.closePath(),e.clip();var g=I*v+x*f+p*P-v*f-x*p-I*P,b=o*v+x*u+h*P-v*u-x*h-o*P,X=I*h+o*f+p*u-h*f-o*p-I*u,m=I*v*u+x*h*f+o*p*P-o*v*f-x*p*u-I*h*P,T=d*v+x*l+c*P-v*l-x*c-d*P,y=I*c+d*f+p*l-c*f-d*p-I*l,_=I*v*l+x*c*f+d*p*P-d*v*f-x*p*l-I*c*P;e.transform(b/g,T/g,X/g,y/g,m/g,_/g),e.drawImage(t.texture.baseTexture.source,0,0),e.restore()}},PIXI.Strip=function(t,e,i){PIXI.DisplayObjectContainer.call(this),this.texture=t,this.blendMode=PIXI.blendModes.NORMAL;try{this.uvs=new Float32Array([0,1,1,1,1,0,0,1]),this.verticies=new Float32Array([0,0,0,0,0,0,0,0,0]),this.colors=new Float32Array([1,1,1,1]),this.indices=new Uint16Array([0,1,2,3])}catch(r){this.uvs=[0,1,1,1,1,0,0,1],this.verticies=[0,0,0,0,0,0,0,0,0],this.colors=[1,1,1,1],this.indices=[0,1,2,3]}this.width=e,this.height=i,t.baseTexture.hasLoaded?(this.width=this.texture.frame.width,this.height=this.texture.frame.height,this.updateFrame=!0):(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},PIXI.Strip.constructor=PIXI.Strip,PIXI.Strip.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Strip.prototype.setTexture=function(t){this.texture=t,this.width=t.frame.width,this.height=t.frame.height,this.updateFrame=!0},PIXI.Strip.prototype.onTextureUpdate=function(){this.updateFrame=!0},PIXI.Rope=function(t,e){PIXI.Strip.call(this,t),this.points=e;try{this.verticies=new Float32Array(4*e.length),this.uvs=new Float32Array(4*e.length),this.colors=new Float32Array(2*e.length),this.indices=new Uint16Array(2*e.length)}catch(i){this.verticies=verticies,this.uvs=uvs,this.colors=colors,this.indices=indices}this.refresh()},PIXI.Rope.constructor=PIXI.Rope,PIXI.Rope.prototype=Object.create(PIXI.Strip.prototype),PIXI.Rope.prototype.refresh=function(){var t=this.points;if(!(1>t.length)){var e=this.uvs,i=this.indices,r=this.colors,s=t[0],n=t[0];this.count-=.2,e[0]=0,e[1]=1,e[2]=0,e[3]=1,r[0]=1,r[1]=1,i[0]=0,i[1]=1;for(var a=t.length,o=1;a>o;o++){var n=t[o],h=4*o,u=o/(a-1);o%2?(e[h]=u,e[h+1]=0,e[h+2]=u,e[h+3]=1):(e[h]=u,e[h+1]=0,e[h+2]=u,e[h+3]=1),h=2*o,r[h]=1,r[h+1]=1,h=2*o,i[h]=h,i[h+1]=h+1,s=n}}},PIXI.Rope.prototype.updateTransform=function(){var t=this.points;if(!(1>t.length)){var e,i=this.verticies,r=t[0],s={x:0,y:0},n=t[0];this.count-=.2,i[0]=n.x+s.x,i[1]=n.y+s.y,i[2]=n.x-s.x,i[3]=n.y-s.y;for(var a=t.length,o=1;a>o;o++){var n=t[o],h=4*o;e=t.length-1>o?t[o+1]:n,s.y=-(e.x-r.x),s.x=e.y-r.y;var u=10*(1-o/(a-1));u>1&&(u=1);var d=Math.sqrt(s.x*s.x+s.y*s.y),c=this.texture.height/2;s.x/=d,s.y/=d,s.x*=c,s.y*=c,i[h]=n.x+s.x,i[h+1]=n.y+s.y,i[h+2]=n.x-s.x,i[h+3]=n.y-s.y,r=n}PIXI.DisplayObjectContainer.prototype.updateTransform.call(this)}},PIXI.Rope.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0},PIXI.TilingSprite=function(t,e,i){PIXI.DisplayObjectContainer.call(this),this.texture=t,this.width=e,this.height=i,this.renderable=!0,this.tileScale=new PIXI.Point(1,1),this.tilePosition=new PIXI.Point(0,0),this.blendMode=PIXI.blendModes.NORMAL},PIXI.TilingSprite.constructor=PIXI.TilingSprite,PIXI.TilingSprite.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.TilingSprite.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0},PIXI.TilingSprite.prototype.onTextureUpdate=function(){this.updateFrame=!0},PIXI.CustomRenderable=function(){PIXI.DisplayObject.call(this)},PIXI.CustomRenderable.constructor=PIXI.CustomRenderable,PIXI.CustomRenderable.prototype=Object.create(PIXI.DisplayObject.prototype),PIXI.CustomRenderable.prototype.renderCanvas=function(){},PIXI.CustomRenderable.prototype.initWebGL=function(){},PIXI.CustomRenderable.prototype.renderWebGL=function(){},PIXI.BaseTextureCache={},PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[],PIXI.BaseTexture=function(t){if(PIXI.EventTarget.call(this),this.width=100,this.height=100,this.source=t,t){if(this.source instanceof Image)if(this.source.complete)this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,PIXI.texturesToUpdate.push(this);else{var e=this;this.source.onload=function(){e.hasLoaded=!0,e.width=e.source.width,e.height=e.source.height,PIXI.texturesToUpdate.push(e),e.dispatchEvent({type:"loaded",content:e})}}else this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,PIXI.texturesToUpdate.push(this);this._powerOf2=!1}},PIXI.BaseTexture.constructor=PIXI.BaseTexture,PIXI.BaseTexture.prototype.destroy=function(){this.source instanceof Image&&(this.source.src=null),this.source=null,PIXI.texturesToDestroy.push(this)},PIXI.BaseTexture.fromImage=function(t,e){var i=PIXI.BaseTextureCache[t];if(!i){var r=new Image;e&&(r.crossOrigin=""),r.src=t,i=new PIXI.BaseTexture(r),PIXI.BaseTextureCache[t]=i}return i},PIXI.TextureCache={},PIXI.FrameCache={},PIXI.Texture=function(t,e){if(PIXI.EventTarget.call(this),e||(this.noFrame=!0,e=new PIXI.Rectangle(0,0,1,1)),this.trim=new PIXI.Point,t instanceof PIXI.Texture&&(t=t.baseTexture),this.baseTexture=t,this.frame=e,this.scope=this,t.hasLoaded)this.noFrame&&(e=new PIXI.Rectangle(0,0,t.width,t.height)),this.setFrame(e);else{var i=this;t.addEventListener("loaded",function(){i.onBaseTextureLoaded()})}},PIXI.Texture.constructor=PIXI.Texture,PIXI.Texture.prototype.onBaseTextureLoaded=function(){var t=this.baseTexture;t.removeEventListener("loaded",this.onLoaded),this.noFrame&&(this.frame=new PIXI.Rectangle(0,0,t.width,t.height)),this.noFrame=!1,this.width=this.frame.width,this.height=this.frame.height,this.scope.dispatchEvent({type:"update",content:this})},PIXI.Texture.prototype.destroy=function(t){t&&this.baseTexture.destroy()},PIXI.Texture.prototype.setFrame=function(t){if(this.frame=t,this.width=t.width,this.height=t.height,t.x+t.width>this.baseTexture.width||t.y+t.height>this.baseTexture.height)throw Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);this.updateFrame=!0,PIXI.Texture.frameUpdates.push(this)},PIXI.Texture.fromImage=function(t,e){var i=PIXI.TextureCache[t];return i||(i=new PIXI.Texture(PIXI.BaseTexture.fromImage(t,e)),PIXI.TextureCache[t]=i),i},PIXI.Texture.fromFrame=function(t){var e=PIXI.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache "+this);return e},PIXI.Texture.fromCanvas=function(t){var e=new PIXI.BaseTexture(t);return new PIXI.Texture(e)},PIXI.Texture.addTextureToCache=function(t,e){PIXI.TextureCache[e]=t},PIXI.Texture.removeTextureFromCache=function(t){var e=PIXI.TextureCache[t];return PIXI.TextureCache[t]=null,e},PIXI.Texture.frameUpdates=[],PIXI.RenderTexture=function(t,e){PIXI.EventTarget.call(this),this.width=t||100,this.height=e||100,this.indetityMatrix=PIXI.mat3.create(),this.frame=new PIXI.Rectangle(0,0,this.width,this.height),PIXI.gl?this.initWebGL():this.initCanvas()},PIXI.RenderTexture.constructor=PIXI.RenderTexture,PIXI.RenderTexture.prototype=Object.create(PIXI.Texture.prototype),PIXI.RenderTexture.prototype.initWebGL=function(){var t=PIXI.gl;this.glFramebuffer=t.createFramebuffer(),t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),this.glFramebuffer.width=this.width,this.glFramebuffer.height=this.height,this.baseTexture=new PIXI.BaseTexture,this.baseTexture.width=this.width,this.baseTexture.height=this.height,this.baseTexture._glTexture=t.createTexture(),t.bindTexture(t.TEXTURE_2D,this.baseTexture._glTexture),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,this.width,this.height,0,t.RGBA,t.UNSIGNED_BYTE,null),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),this.baseTexture.isRender=!0,t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,this.baseTexture._glTexture,0),this.projectionMatrix=PIXI.mat4.create(),this.projectionMatrix[5]=2/this.height,this.projectionMatrix[13]=-1,this.projectionMatrix[0]=2/this.width,this.projectionMatrix[12]=-1,this.render=this.renderWebGL},PIXI.RenderTexture.prototype.initCanvas=function(){this.renderer=new PIXI.CanvasRenderer(this.width,this.height,null,0),this.baseTexture=new PIXI.BaseTexture(this.renderer.view),this.frame=new PIXI.Rectangle(0,0,this.width,this.height),this.render=this.renderCanvas},PIXI.RenderTexture.prototype.renderWebGL=function(t,e){var i=PIXI.gl;i.colorMask(!0,!0,!0,!0),i.viewport(0,0,this.width,this.height),i.bindFramebuffer(i.FRAMEBUFFER,this.glFramebuffer),e&&(i.clearColor(0,0,0,0),i.clear(i.COLOR_BUFFER_BIT));var r=t.children;t.worldTransform=PIXI.mat3.create();for(var s=0,n=r.length;n>s;s++)r[s].updateTransform();var a=t.__renderGroup;a?t==a.root?a.render(this.projectionMatrix):a.renderSpecific(t,this.projectionMatrix):(this.renderGroup||(this.renderGroup=new PIXI.WebGLRenderGroup(i)),this.renderGroup.setRenderable(t),this.renderGroup.render(this.projectionMatrix))},PIXI.RenderTexture.prototype.renderCanvas=function(t,e){var i=t.children;t.worldTransform=PIXI.mat3.create();for(var r=0,s=i.length;s>r;r++)i[r].updateTransform();e&&this.renderer.context.clearRect(0,0,this.width,this.height),this.renderer.renderDisplayObject(t),PIXI.texturesToUpdate.push(this.baseTexture)},PIXI.AssetLoader=function(t){PIXI.EventTarget.call(this),this.assetURLs=t,this.crossorigin=!1,this.loadersByType={jpg:PIXI.ImageLoader,jpeg:PIXI.ImageLoader,png:PIXI.ImageLoader,gif:PIXI.ImageLoader,json:PIXI.SpriteSheetLoader,xml:PIXI.BitmapFontLoader,fnt:PIXI.BitmapFontLoader}},PIXI.AssetLoader.constructor=PIXI.AssetLoader,PIXI.AssetLoader.prototype.load=function(){var t=this;this.loadCount=this.assetURLs.length;for(var e=0;this.assetURLs.length>e;e++){var i=this.assetURLs[e],r=i.split(".").pop().toLowerCase(),s=this.loadersByType[r];if(!s)throw Error(r+" is an unsupported file type");var n=new s(i,this.crossorigin);n.addEventListener("loaded",function(){t.onAssetLoaded()}),n.load()}},PIXI.AssetLoader.prototype.onAssetLoaded=function(){this.loadCount--,this.dispatchEvent({type:"onProgress",content:this}),this.onProgress&&this.onProgress(),0==this.loadCount&&(this.dispatchEvent({type:"onComplete",content:this}),this.onComplete&&this.onComplete())},PIXI.SpriteSheetLoader=function(t,e){PIXI.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.frames={},this.crossorigin=e},PIXI.SpriteSheetLoader.constructor=PIXI.SpriteSheetLoader,PIXI.SpriteSheetLoader.prototype.load=function(){this.ajaxRequest=new AjaxRequest;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onJSONLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/json"),this.ajaxRequest.send(null)},PIXI.SpriteSheetLoader.prototype.onJSONLoaded=function(){if(4==this.ajaxRequest.readyState&&(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))){var jsonData=eval("("+this.ajaxRequest.responseText+")"),textureUrl=this.baseUrl+jsonData.meta.image,image=new PIXI.ImageLoader(textureUrl,this.crossorigin);this.texture=image.texture.baseTexture;var scope=this;image.addEventListener("loaded",function(){scope.onLoaded()});var frameData=jsonData.frames;for(var i in frameData){var rect=frameData[i].frame;rect&&(PIXI.TextureCache[i]=new PIXI.Texture(this.texture,{x:rect.x,y:rect.y,width:rect.w,height:rect.h}),frameData[i].trimmed&&(PIXI.TextureCache[i].realSize=frameData[i].spriteSourceSize,PIXI.TextureCache[i].trim.x=0))}image.load()}},PIXI.SpriteSheetLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},PIXI.ImageLoader=function(t,e){PIXI.EventTarget.call(this),this.texture=PIXI.Texture.fromImage(t,e)},PIXI.ImageLoader.constructor=PIXI.ImageLoader,PIXI.ImageLoader.prototype.load=function(){if(this.texture.baseTexture.hasLoaded)this.onLoaded();else{var t=this;this.texture.baseTexture.addEventListener("loaded",function(){t.onLoaded()})}},PIXI.ImageLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},PIXI.BitmapFontLoader=function(t,e){PIXI.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.crossorigin=e},PIXI.BitmapFontLoader.constructor=PIXI.BitmapFontLoader,PIXI.BitmapFontLoader.prototype.load=function(){this.ajaxRequest=new XMLHttpRequest;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onXMLLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/xml"),this.ajaxRequest.send(null)},PIXI.BitmapFontLoader.prototype.onXMLLoaded=function(){if(4==this.ajaxRequest.readyState&&(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))){var t=this.baseUrl+this.ajaxRequest.responseXML.getElementsByTagName("page")[0].attributes.getNamedItem("file").nodeValue,e=new PIXI.ImageLoader(t,this.crossorigin);this.texture=e.texture.baseTexture;var i={},r=this.ajaxRequest.responseXML.getElementsByTagName("info")[0],s=this.ajaxRequest.responseXML.getElementsByTagName("common")[0];i.font=r.attributes.getNamedItem("face").nodeValue,i.size=parseInt(r.attributes.getNamedItem("size").nodeValue,10),i.lineHeight=parseInt(s.attributes.getNamedItem("lineHeight").nodeValue,10),i.chars={};for(var n=this.ajaxRequest.responseXML.getElementsByTagName("char"),a=0;n.length>a;a++){var o=parseInt(n[a].attributes.getNamedItem("id").nodeValue,10),h={x:parseInt(n[a].attributes.getNamedItem("x").nodeValue,10),y:parseInt(n[a].attributes.getNamedItem("y").nodeValue,10),width:parseInt(n[a].attributes.getNamedItem("width").nodeValue,10),height:parseInt(n[a].attributes.getNamedItem("height").nodeValue,10)};PIXI.TextureCache[o]=new PIXI.Texture(this.texture,h),i.chars[o]={xOffset:parseInt(n[a].attributes.getNamedItem("xoffset").nodeValue,10),yOffset:parseInt(n[a].attributes.getNamedItem("yoffset").nodeValue,10),xAdvance:parseInt(n[a].attributes.getNamedItem("xadvance").nodeValue,10),kerning:{}}}var u=this.ajaxRequest.responseXML.getElementsByTagName("kerning");for(a=0;u.length>a;a++){var d=parseInt(u[a].attributes.getNamedItem("first").nodeValue,10),c=parseInt(u[a].attributes.getNamedItem("second").nodeValue,10),l=parseInt(u[a].attributes.getNamedItem("amount").nodeValue,10);i.chars[c].kerning[d]=l}PIXI.BitmapText.fonts[i.font]=i;var I=this;e.addEventListener("loaded",function(){I.onLoaded()}),e.load()}},PIXI.BitmapFontLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=PIXI),exports.PIXI=PIXI):root.PIXI=PIXI}).call(this); \ No newline at end of file diff --git a/docs/classes/WebGLRenderer.html b/docs/classes/WebGLRenderer.html index 581cb5a..fcef6b6 100644 --- a/docs/classes/WebGLRenderer.html +++ b/docs/classes/WebGLRenderer.html @@ -498,7 +498,7 @@ - src/pixi/renderers/WebGLRenderer.js:283 + src/pixi/renderers/WebGLRenderer.js:284

diff --git a/docs/data.json b/docs/data.json index 9b4a49d..4b27831 100644 --- a/docs/data.json +++ b/docs/data.json @@ -1388,35 +1388,35 @@ }, { "file": "src/pixi/renderers/WebGLRenderGroup.js", - "line": 523, + "line": 527, "access": "private", "tagname": "", "class": "WebGLBatch" }, { "file": "src/pixi/renderers/WebGLRenderGroup.js", - "line": 607, + "line": 613, "access": "private", "tagname": "", "class": "WebGLBatch" }, { "file": "src/pixi/renderers/WebGLRenderGroup.js", - "line": 663, + "line": 669, "access": "private", "tagname": "", "class": "WebGLBatch" }, { "file": "src/pixi/renderers/WebGLRenderGroup.js", - "line": 740, + "line": 746, "access": "private", "tagname": "", "class": "WebGLBatch" }, { "file": "src/pixi/renderers/WebGLRenderGroup.js", - "line": 777, + "line": 783, "access": "private", "tagname": "", "class": "WebGLBatch" @@ -1465,14 +1465,14 @@ }, { "file": "src/pixi/renderers/WebGLRenderer.js", - "line": 232, + "line": 225, "access": "private", "tagname": "", "class": "WebGLRenderer" }, { "file": "src/pixi/renderers/WebGLRenderer.js", - "line": 283, + "line": 284, "description": "resizes the webGL view to the specified width and height", "itemtype": "method", "name": "resize", @@ -1492,14 +1492,14 @@ }, { "file": "src/pixi/renderers/WebGLRenderer.js", - "line": 307, + "line": 308, "access": "private", "tagname": "", "class": "WebGLRenderer" }, { "file": "src/pixi/renderers/WebGLRenderer.js", - "line": 316, + "line": 317, "access": "private", "tagname": "", "class": "WebGLRenderer" @@ -2908,23 +2908,23 @@ }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderGroup.js:523" + "line": " src/pixi/renderers/WebGLRenderGroup.js:527" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderGroup.js:607" + "line": " src/pixi/renderers/WebGLRenderGroup.js:613" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderGroup.js:663" + "line": " src/pixi/renderers/WebGLRenderGroup.js:669" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderGroup.js:740" + "line": " src/pixi/renderers/WebGLRenderGroup.js:746" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderGroup.js:777" + "line": " src/pixi/renderers/WebGLRenderGroup.js:783" }, { "message": "Missing item type", @@ -2944,15 +2944,15 @@ }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderer.js:232" + "line": " src/pixi/renderers/WebGLRenderer.js:225" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderer.js:307" + "line": " src/pixi/renderers/WebGLRenderer.js:308" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderer.js:316" + "line": " src/pixi/renderers/WebGLRenderer.js:317" }, { "message": "Missing item type", diff --git a/docs/files/src_pixi_renderers_WebGLRenderGroup.js.html b/docs/files/src_pixi_renderers_WebGLRenderGroup.js.html index 7222602..42bcabd 100644 --- a/docs/files/src_pixi_renderers_WebGLRenderGroup.js.html +++ b/docs/files/src_pixi_renderers_WebGLRenderGroup.js.html @@ -177,6 +177,8 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + //PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. @@ -215,6 +217,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + //PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -683,7 +687,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/docs/files/src_pixi_renderers_WebGLRenderer.js.html b/docs/files/src_pixi_renderers_WebGLRenderer.js.html index 0383c4d..551dd19 100644 --- a/docs/files/src_pixi_renderers_WebGLRenderer.js.html +++ b/docs/files/src_pixi_renderers_WebGLRenderer.js.html @@ -306,15 +306,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -366,9 +359,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -400,7 +402,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) diff --git a/examples/example 1 - Basics/pixi.js b/examples/example 1 - Basics/pixi.js index f29080a..3478cf4 100644 --- a/examples/example 1 - Basics/pixi.js +++ b/examples/example 1 - Basics/pixi.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/examples/example 10 - Text/pixi.js b/examples/example 10 - Text/pixi.js index f29080a..3478cf4 100644 --- a/examples/example 10 - Text/pixi.js +++ b/examples/example 10 - Text/pixi.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/examples/example 11 - RenderTexture/index.html b/examples/example 11 - RenderTexture/index.html index efd342b..e4acf76 100644 --- a/examples/example 11 - RenderTexture/index.html +++ b/examples/example 11 - RenderTexture/index.html @@ -15,7 +15,7 @@ diff --git a/bin/pixi.dev.js b/bin/pixi.dev.js index f29080a..3478cf4 100644 --- a/bin/pixi.dev.js +++ b/bin/pixi.dev.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/bin/pixi.js b/bin/pixi.js index 5f2a13c..a6d54d1 100644 --- a/bin/pixi.js +++ b/bin/pixi.js @@ -4,10 +4,10 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php */ -(function(){function HEXtoRGB(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}function determineMatrixArrayType(){return PIXI.Matrix="undefined"!=typeof Float32Array?Float32Array:Array,PIXI.Matrix}var root=this,PIXI=PIXI||{};PIXI.Point=function(t,e){this.x=t||0,this.y=e||0},PIXI.Point.prototype.clone=function(){return new PIXI.Point(this.x,this.y)},PIXI.Point.constructor=PIXI.Point,PIXI.Rectangle=function(t,e,i,r){this.x=t||0,this.y=e||0,this.width=i||0,this.height=r||0},PIXI.Rectangle.prototype.clone=function(){return new PIXI.Rectangle(this.x,this.y,this.width,this.height)},PIXI.Rectangle.constructor=PIXI.Rectangle,PIXI.DisplayObject=function(){this.position=new PIXI.Point,this.scale=new PIXI.Point(1,1),this.pivot=new PIXI.Point(0,0),this.rotation=0,this.alpha=1,this.visible=!0,this.worldVisible=!1,this.parent=null,this.stage=null,this.hitArea=null,this.worldAlpha=1,this.color=[],this.worldTransform=PIXI.mat3.create(),this.localTransform=PIXI.mat3.create(),this.dynamic=!0,this._sr=0,this._cr=1,this.childIndex=0,this.renderable=!1,this.interactive=!1,this.buttonMode=!1},PIXI.DisplayObject.constructor=PIXI.DisplayObject,PIXI.DisplayObject.prototype.setInteractive=function(t){this.interactive=t,this.stage&&(this.stage.dirty=!0)},PIXI.DisplayObject.prototype.updateTransform=function(){this.rotation!=this.rotationCache&&(this.rotationCache=this.rotation,this._sr=Math.sin(this.rotation),this._cr=Math.cos(this.rotation));var t=this.localTransform,e=this.parent.worldTransform,i=this.worldTransform;t[0]=this._cr*this.scale.x,t[1]=-this._sr*this.scale.y,t[3]=this._sr*this.scale.x,t[4]=this._cr*this.scale.y;var r=this.pivot.x,s=this.pivot.y;t[2]=this.position.x-t[0]*r-s*t[1],t[5]=this.position.y-t[4]*s-r*t[3];var n=t[0],a=t[1],o=t[2],h=t[3],u=t[4],c=t[5],d=e[0],l=e[1],I=e[2],p=e[3],f=e[4],x=e[5];i[0]=d*n+l*h,i[1]=d*a+l*u,i[2]=d*o+l*c+I,i[3]=p*n+f*h,i[4]=p*a+f*u,i[5]=p*o+f*c+x,this.worldAlpha=this.alpha*this.parent.worldAlpha},PIXI.DisplayObjectContainer=function(){PIXI.DisplayObject.call(this),this.children=[],this.renderable=!1},PIXI.DisplayObjectContainer.constructor=PIXI.DisplayObjectContainer,PIXI.DisplayObjectContainer.prototype=Object.create(PIXI.DisplayObject.prototype),PIXI.DisplayObjectContainer.prototype.addChild=function(t){void 0!=t.parent&&t.parent.removeChild(t),t.parent=this,t.childIndex=this.children.length,this.children.push(t),this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},PIXI.DisplayObjectContainer.prototype.addChildAt=function(t,e){if(!(e>=0&&this.children.length>=e))throw Error(t+" The index "+e+" supplied is out of bounds "+this.children.length);void 0!=t.parent&&t.parent.removeChild(t),e==this.children.length?this.children.push(t):this.children.splice(e,0,t),t.parent=this,t.childIndex=e;for(var i=this.children.length,r=e;i>r;r++)this.children[r].childIndex=r;this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},PIXI.DisplayObjectContainer.prototype.swapChildren=function(t,e){var i=this.children.indexOf(t),r=this.children.indexOf(e);if(-1===i||-1===r)throw Error(t+" Both the supplied DisplayObjects must be a child of the caller "+this);this.stage&&(this.stage.__removeChild(t),this.stage.__removeChild(e),this.stage.__addChild(t),this.stage.__addChild(e)),t.childIndex=r,e.childIndex=i,this.children[i]=e,this.children[r]=t},PIXI.DisplayObjectContainer.prototype.getChildAt=function(t){if(t>=0&&this.children.length>t)return this.children[t];throw Error(child+" Both the supplied DisplayObjects must be a child of the caller "+this)},PIXI.DisplayObjectContainer.prototype.removeChild=function(t){var e=this.children.indexOf(t);if(-1===e)throw Error(t+" The supplied DisplayObject must be a child of the caller "+this);this.stage&&this.stage.__removeChild(t),t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.parent=void 0,this.children.splice(e,1);for(var i=e,r=this.children.length;r>i;i++)this.children[i].childIndex-=1},PIXI.DisplayObjectContainer.prototype.updateTransform=function(){if(this.visible){PIXI.DisplayObject.prototype.updateTransform.call(this);for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform()}},PIXI.blendModes={},PIXI.blendModes.NORMAL=0,PIXI.blendModes.SCREEN=1,PIXI.Sprite=function(t){PIXI.DisplayObjectContainer.call(this),this.anchor=new PIXI.Point,this.texture=t,this.blendMode=PIXI.blendModes.NORMAL,this._width=0,this._height=0,t.baseTexture.hasLoaded?this.updateFrame=!0:(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},PIXI.Sprite.constructor=PIXI.Sprite,PIXI.Sprite.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),Object.defineProperty(PIXI.Sprite.prototype,"width",{get:function(){return this.scale.x*this.texture.frame.width},set:function(t){this.scale.x=t/this.texture.frame.width,this._width=t}}),Object.defineProperty(PIXI.Sprite.prototype,"height",{get:function(){return this.scale.y*this.texture.frame.height},set:function(t){this.scale.y=t/this.texture.frame.height,this._height=t}}),PIXI.Sprite.prototype.setTexture=function(t){this.texture.baseTexture!=t.baseTexture&&(this.textureChange=!0),this.texture=t,this.updateFrame=!0},PIXI.Sprite.prototype.onTextureUpdate=function(){this._width&&(this.scale.x=this._width/this.texture.frame.width),this._height&&(this.scale.y=this._height/this.texture.frame.height),this.updateFrame=!0},PIXI.Sprite.fromFrame=function(t){var e=PIXI.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache"+this);return new PIXI.Sprite(e)},PIXI.Sprite.fromImage=function(t){var e=PIXI.Texture.fromImage(t);return new PIXI.Sprite(e)},PIXI.MovieClip=function(t){PIXI.Sprite.call(this,t[0]),this.textures=t,this.currentFrame=0,this.animationSpeed=1,this.loop=!0,this.onComplete=null,this.playing},PIXI.MovieClip.constructor=PIXI.MovieClip,PIXI.MovieClip.prototype=Object.create(PIXI.Sprite.prototype),PIXI.MovieClip.prototype.stop=function(){this.playing=!1},PIXI.MovieClip.prototype.play=function(){this.playing=!0},PIXI.MovieClip.prototype.gotoAndStop=function(t){this.playing=!1,this.currentFrame=t;var e=0|this.currentFrame+.5;this.setTexture(this.textures[e%this.textures.length])},PIXI.MovieClip.prototype.gotoAndPlay=function(t){this.currentFrame=t,this.playing=!0},PIXI.MovieClip.prototype.updateTransform=function(){if(PIXI.Sprite.prototype.updateTransform.call(this),this.playing){this.currentFrame+=this.animationSpeed;var t=0|this.currentFrame+.5;this.loop||this.textures.length>t?this.setTexture(this.textures[t%this.textures.length]):t>=this.textures.length&&(this.gotoAndStop(this.textures.length-1),this.onComplete&&this.onComplete())}},PIXI.Text=function(t,e){this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"),PIXI.Sprite.call(this,PIXI.Texture.fromCanvas(this.canvas)),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},PIXI.Text.constructor=PIXI.Text,PIXI.Text.prototype=Object.create(PIXI.Sprite.prototype),PIXI.Text.prototype.setStyle=function(t){t=t||{},t.font=t.font||"bold 20pt Arial",t.fill=t.fill||"black",t.align=t.align||"left",t.strokeThickness=t.strokeThickness||0,this.style=t,this.dirty=!0},PIXI.Sprite.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},PIXI.Text.prototype.updateText=function(){this.context.font=this.style.font;for(var t=this.text.split(/(?:\r\n|\r|\n)/),e=[],i=0,r=0;t.length>r;r++){var s=this.context.measureText(t[r]).width;e[r]=s,i=Math.max(i,s)}this.canvas.width=i+this.style.strokeThickness;var n=this.determineFontHeight("font: "+this.style.font+";")+this.style.strokeThickness;for(this.canvas.height=n*t.length,this.context.fillStyle=this.style.fill,this.context.font=this.style.font,this.context.strokeStyle=this.style.stroke,this.context.lineWidth=this.style.strokeThickness,this.context.textBaseline="top",r=0;t.length>r;r++){var a=new PIXI.Point(this.style.strokeThickness/2,this.style.strokeThickness/2+r*n);"right"==this.style.align?a.x+=i-e[r]:"center"==this.style.align&&(a.x+=(i-e[r])/2),this.style.stroke&&this.style.strokeThickness&&this.context.strokeText(t[r],a.x,a.y),this.style.fill&&this.context.fillText(t[r],a.x,a.y)}this.updateTexture()},PIXI.Text.prototype.updateTexture=function(){this.texture.baseTexture.width=this.canvas.width,this.texture.baseTexture.height=this.canvas.height,this.texture.frame.width=this.canvas.width,this.texture.frame.height=this.canvas.height,this._width=this.canvas.width,this._height=this.canvas.height,PIXI.texturesToUpdate.push(this.texture.baseTexture)},PIXI.Text.prototype.updateTransform=function(){this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype.updateTransform.call(this)},PIXI.Text.prototype.determineFontHeight=function(t){var e=PIXI.Text.heightCache[t];if(!e){var i=document.getElementsByTagName("body")[0],r=document.createElement("div"),s=document.createTextNode("M");r.appendChild(s),r.setAttribute("style",t),i.appendChild(r),e=r.offsetHeight,PIXI.Text.heightCache[t]=e,i.removeChild(r)}return e},PIXI.Text.prototype.destroy=function(t){t&&this.texture.destroy()},PIXI.Text.heightCache={},PIXI.BitmapText=function(t,e){PIXI.DisplayObjectContainer.call(this),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},PIXI.BitmapText.constructor=PIXI.BitmapText,PIXI.BitmapText.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.BitmapText.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},PIXI.BitmapText.prototype.setStyle=function(t){t=t||{},t.align=t.align||"left",this.style=t;var e=t.font.split(" ");this.fontName=e[e.length-1],this.fontSize=e.length>=2?parseInt(e[e.length-2],10):PIXI.BitmapText.fonts[this.fontName].size,this.dirty=!0},PIXI.BitmapText.prototype.updateText=function(){for(var t=PIXI.BitmapText.fonts[this.fontName],e=new PIXI.Point,i=null,r=[],s=0,n=[],a=0,o=this.fontSize/t.size,h=0;this.text.length>h;h++){var u=this.text.charCodeAt(h);if(/(?:\r\n|\r|\n)/.test(this.text.charAt(h)))n.push(e.x),s=Math.max(s,e.x),a++,e.x=0,e.y+=t.lineHeight,i=null;else{var c=t.chars[u];c&&(i&&c[i]&&(e.x+=c.kerning[i]),r.push({line:a,charCode:u,position:new PIXI.Point(e.x+c.xOffset,e.y+c.yOffset)}),e.x+=c.xAdvance,i=u)}}n.push(e.x),s=Math.max(s,e.x);var d=[];for(h=0;a>=h;h++){var l=0;"right"==this.style.align?l=s-n[h]:"center"==this.style.align&&(l=(s-n[h])/2),d.push(l)}for(h=0;r.length>h;h++){var I=PIXI.Sprite.fromFrame(r[h].charCode);I.position.x=(r[h].position.x+d[r[h].line])*o,I.position.y=r[h].position.y*o,I.scale.x=I.scale.y=o,this.addChild(I)}this.width=e.x*o,this.height=(e.y+t.lineHeight)*o},PIXI.BitmapText.prototype.updateTransform=function(){if(this.dirty){for(;this.children.length>0;)this.removeChild(this.getChildAt(0));this.updateText(),this.dirty=!1}PIXI.DisplayObjectContainer.prototype.updateTransform.call(this)},PIXI.BitmapText.fonts={},PIXI.InteractionManager=function(t){this.stage=t,this.tempPoint=new PIXI.Point,this.mouseoverEnabled=!0,this.mouse=new PIXI.InteractionData,this.touchs={},this.pool=[],this.interactiveItems=[],this.last=0},PIXI.InteractionManager.constructor=PIXI.InteractionManager,PIXI.InteractionManager.prototype.collectInteractiveSprite=function(t,e){for(var i=t.children,r=i.length,s=r-1;s>=0;s--){var n=i[s];n.interactive?(e.interactiveChildren=!0,this.interactiveItems.push(n),n.children.length>0&&this.collectInteractiveSprite(n,n)):(n.__iParent=null,n.children.length>0&&this.collectInteractiveSprite(n,e))}},PIXI.InteractionManager.prototype.setTarget=function(t){window.navigator.msPointerEnabled&&(t.view.style["-ms-content-zooming"]="none",t.view.style["-ms-touch-action"]="none"),this.target=t,t.view.addEventListener("mousemove",this.onMouseMove.bind(this),!0),t.view.addEventListener("mousedown",this.onMouseDown.bind(this),!0),document.body.addEventListener("mouseup",this.onMouseUp.bind(this),!0),t.view.addEventListener("mouseout",this.onMouseUp.bind(this),!0),t.view.addEventListener("touchstart",this.onTouchStart.bind(this),!0),t.view.addEventListener("touchend",this.onTouchEnd.bind(this),!0),t.view.addEventListener("touchmove",this.onTouchMove.bind(this),!0)},PIXI.InteractionManager.prototype.update=function(){if(this.target){var t=Date.now(),e=t-this.last;if(e=30*e/1e3,!(1>e)){if(this.last=t,this.dirty){this.dirty=!1,this.interactiveItems.length;for(var i=0;this.interactiveItems.length>i;i++)this.interactiveItems[i].interactiveChildren=!1;this.interactiveItems=[],this.stage.interactive&&this.interactiveItems.push(this.stage),this.collectInteractiveSprite(this.stage,this.stage)}var r=this.interactiveItems.length;this.target.view.style.cursor="default";for(var i=0;r>i;i++){var s=this.interactiveItems[i];s.visible&&(s.mouseover||s.mouseout||s.buttonMode)&&(s.__hit=this.hitTest(s,this.mouse),s.__hit?(s.buttonMode&&(this.target.view.style.cursor="pointer"),s.__isOver||(s.mouseover&&s.mouseover(this.mouse),s.__isOver=!0)):s.__isOver&&(s.mouseout&&s.mouseout(this.mouse),s.__isOver=!1))}}}},PIXI.InteractionManager.prototype.onMouseMove=function(t){t.preventDefault();var e=this.target.view.getBoundingClientRect();this.mouse.global.x=(t.clientX-e.left)*(this.target.width/e.width),this.mouse.global.y=(t.clientY-e.top)*(this.target.height/e.height);var i=this.interactiveItems.length;this.mouse.global;for(var r=0;i>r;r++){var s=this.interactiveItems[r];s.mousemove&&s.mousemove(this.mouse)}},PIXI.InteractionManager.prototype.onMouseDown=function(t){t.preventDefault();var e=this.interactiveItems.length;this.mouse.global,this.stage;for(var i=0;e>i;i++){var r=this.interactiveItems[i];if((r.mousedown||r.click)&&(r.__mouseIsDown=!0,r.__hit=this.hitTest(r,this.mouse),r.__hit&&(r.mousedown&&r.mousedown(this.mouse),r.__isDown=!0,!r.interactiveChildren)))break}},PIXI.InteractionManager.prototype.onMouseUp=function(t){t.preventDefault(),this.mouse.global;for(var e=this.interactiveItems.length,i=!1,r=0;e>r;r++){var s=this.interactiveItems[r];(s.mouseup||s.mouseupoutside||s.click)&&(s.__hit=this.hitTest(s,this.mouse),s.__hit&&!i?(s.mouseup&&s.mouseup(this.mouse),s.__isDown&&s.click&&s.click(this.mouse),s.interactiveChildren||(i=!0)):s.__isDown&&s.mouseupoutside&&s.mouseupoutside(this.mouse),s.__isDown=!1)}},PIXI.InteractionManager.prototype.hitTest=function(t,e){var i=e.global;if(!t.visible)return!1;if(t instanceof PIXI.Sprite){var r=t.worldTransform,s=r[0],n=r[1],a=r[2],o=r[3],h=r[4],u=r[5],c=1/(s*h+n*-o),d=h*c*i.x+-n*c*i.y+(u*n-a*h)*c,l=s*c*i.y+-o*c*i.x+(-u*s+a*o)*c,I=t.texture.frame.width,p=t.texture.frame.height,f=-I*t.anchor.x;if(d>f&&f+I>d){var x=-p*t.anchor.y;if(l>x&&x+p>l)return e.target=t,!0}}else if(t.hitArea){var r=t.worldTransform,v=t.hitArea,s=r[0],n=r[1],a=r[2],o=r[3],h=r[4],u=r[5],c=1/(s*h+n*-o),d=h*c*i.x+-n*c*i.y+(u*n-a*h)*c,l=s*c*i.y+-o*c*i.x+(-u*s+a*o)*c,f=v.x;if(d>f&&f+v.width>d){var x=v.y;if(l>x&&x+v.height>l)return!0}}for(var P=t.children.length,g=0;P>g;g++){var b=t.children[g],X=this.hitTest(b,e);if(X)return!0}return!1},PIXI.InteractionManager.prototype.onTouchMove=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.touchs[s.identifier];n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height)}for(var a=this.interactiveItems.length,r=0;a>r;r++){var o=this.interactiveItems[r];o.touchmove&&o.touchmove(n)}},PIXI.InteractionManager.prototype.onTouchStart=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.pool.pop();n||(n=new PIXI.InteractionData),this.touchs[s.identifier]=n,n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height);for(var a=this.interactiveItems.length,o=0;a>o;o++){var h=this.interactiveItems[o];if((h.touchstart||h.tap)&&(h.__hit=this.hitTest(h,n),h.__hit&&(h.touchstart&&h.touchstart(n),h.__isDown=!0,h.__touchData=n,!h.interactiveChildren)))break}}},PIXI.InteractionManager.prototype.onTouchEnd=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.touchs[s.identifier],a=!1;n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var u=this.interactiveItems[h],c=u.__touchData;u.__hit=this.hitTest(u,n),c==n&&((u.touchend||u.tap)&&(u.__hit&&!a?(u.touchend&&u.touchend(n),u.__isDown&&u.tap&&u.tap(n),u.interactiveChildren||(a=!0)):u.__isDown&&u.touchendoutside&&u.touchendoutside(n),u.__isDown=!1),u.__touchData=null)}this.pool.push(n),this.touchs[s.identifier]=null}},PIXI.InteractionData=function(){this.global=new PIXI.Point,this.local=new PIXI.Point,this.target},PIXI.InteractionData.prototype.getLocalPosition=function(t){var e=t.worldTransform,i=this.global,r=e[0],s=e[1],n=e[2],a=e[3],o=e[4],h=e[5],u=1/(r*o+s*-a);return new PIXI.Point(o*u*i.x+-s*u*i.y+(h*s-n*o)*u,r*u*i.y+-a*u*i.x+(-h*r+n*a)*u)},PIXI.InteractionData.constructor=PIXI.InteractionData,PIXI.Stage=function(t,e){PIXI.DisplayObjectContainer.call(this),this.worldTransform=PIXI.mat3.create(),this.__childrenAdded=[],this.__childrenRemoved=[],this.childIndex=0,this.stage=this,this.stage.hitArea=new PIXI.Rectangle(0,0,1e5,1e5),this.interactive=!!e,this.interactionManager=new PIXI.InteractionManager(this),this.setBackgroundColor(t),this.worldVisible=!0},PIXI.Stage.constructor=PIXI.Stage,PIXI.Stage.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Stage.prototype.updateTransform=function(){this.worldAlpha=1;for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform();this.dirty&&(this.dirty=!1,this.interactionManager.dirty=!0),this.interactive&&this.interactionManager.update()},PIXI.Stage.prototype.setBackgroundColor=function(t){this.backgroundColor=t||0,this.backgroundColorSplit=HEXtoRGB(this.backgroundColor),this.backgroundColorString="#"+this.backgroundColor.toString(16)},PIXI.Stage.prototype.getMousePosition=function(){return this.interactionManager.mouse.global},PIXI.Stage.prototype.__addChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=this,t.children)for(var e=0;t.children.length>e;e++)this.__addChild(t.children[e])},PIXI.Stage.prototype.__removeChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=void 0,t.children)for(var e=0,i=t.children.length;i>e;e++)this.__removeChild(t.children[e])},window.requestAnimFrame=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(t){window.setTimeout(t,1e3/60)}}(),"function"!=typeof Function.prototype.bind&&(Function.prototype.bind=function(){var t=Array.prototype.slice;return function(e){function i(){var n=s.concat(t.call(arguments));r.apply(this instanceof i?this:e,n)}var r=this,s=t.call(arguments,1);if("function"!=typeof r)throw new TypeError;return i.prototype=function n(t){return t&&(n.prototype=t),this instanceof n?void 0:new n}(r.prototype),i}}());var AjaxRequest=function(){var t=["Msxml2.XMLHTTP","Microsoft.XMLHTTP"];if(!window.ActiveXObject)return window.XMLHttpRequest?new XMLHttpRequest:!1;for(var e=0;t.length>e;e++)try{return new ActiveXObject(t[e])}catch(i){}};PIXI.EventTarget=function(){var t={};this.addEventListener=this.on=function(e,i){void 0===t[e]&&(t[e]=[]),-1===t[e].indexOf(i)&&t[e].push(i)},this.dispatchEvent=this.emit=function(e){for(var i in t[e.type])t[e.type][i](e)},this.removeEventListener=this.off=function(e,i){var r=t[e].indexOf(i);-1!==r&&t[e].splice(r,1)}},determineMatrixArrayType(),PIXI.mat3={},PIXI.mat3.create=function(){var t=new PIXI.Matrix(9);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},PIXI.mat4={},PIXI.mat4.create=function(){var t=new PIXI.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},PIXI.mat3.multiply=function(t,e,i){i||(i=t);var r=t[0],s=t[1],n=t[2],a=t[3],o=t[4],h=t[5],u=t[6],c=t[7],d=t[8],l=e[0],I=e[1],p=e[2],f=e[3],x=e[4],v=e[5],P=e[6],g=e[7],b=e[8];return i[0]=l*r+I*a+p*u,i[1]=l*s+I*o+p*c,i[2]=l*n+I*h+p*d,i[3]=f*r+x*a+v*u,i[4]=f*s+x*o+v*c,i[5]=f*n+x*h+v*d,i[6]=P*r+g*a+b*u,i[7]=P*s+g*o+b*c,i[8]=P*n+g*h+b*d,i},PIXI.mat3.toMat4=function(t,e){return e||(e=PIXI.mat4.create()),e[15]=1,e[14]=0,e[13]=0,e[12]=0,e[11]=0,e[10]=t[8],e[9]=t[7],e[8]=t[6],e[7]=0,e[6]=t[5],e[5]=t[4],e[4]=t[3],e[3]=0,e[2]=t[2],e[1]=t[1],e[0]=t[0],e},PIXI.mat4.create=function(){var t=new PIXI.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},PIXI.mat4.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],s=t[3],n=t[6],a=t[7],o=t[11];return t[1]=t[4],t[2]=t[8],t[3]=t[12],t[4]=i,t[6]=t[9],t[7]=t[13],t[8]=r,t[9]=n,t[11]=t[14],t[12]=s,t[13]=a,t[14]=o,t}return e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=t[1],e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=t[2],e[9]=t[6],e[10]=t[10],e[11]=t[14],e[12]=t[3],e[13]=t[7],e[14]=t[11],e[15]=t[15],e},PIXI.mat4.multiply=function(t,e,i){i||(i=t);var r=t[0],s=t[1],n=t[2],a=t[3],o=t[4],h=t[5],u=t[6],c=t[7],d=t[8],l=t[9],I=t[10],p=t[11],f=t[12],x=t[13],v=t[14],P=t[15],g=e[0],b=e[1],X=e[2],m=e[3];return i[0]=g*r+b*o+X*d+m*f,i[1]=g*s+b*h+X*l+m*x,i[2]=g*n+b*u+X*I+m*v,i[3]=g*a+b*c+X*p+m*P,g=e[4],b=e[5],X=e[6],m=e[7],i[4]=g*r+b*o+X*d+m*f,i[5]=g*s+b*h+X*l+m*x,i[6]=g*n+b*u+X*I+m*v,i[7]=g*a+b*c+X*p+m*P,g=e[8],b=e[9],X=e[10],m=e[11],i[8]=g*r+b*o+X*d+m*f,i[9]=g*s+b*h+X*l+m*x,i[10]=g*n+b*u+X*I+m*v,i[11]=g*a+b*c+X*p+m*P,g=e[12],b=e[13],X=e[14],m=e[15],i[12]=g*r+b*o+X*d+m*f,i[13]=g*s+b*h+X*l+m*x,i[14]=g*n+b*u+X*I+m*v,i[15]=g*a+b*c+X*p+m*P,i},PIXI.autoDetectRenderer=function(t,e,i,r){t||(t=800),e||(e=600);var s=function(){try{return!!window.WebGLRenderingContext&&!!document.createElement("canvas").getContext("experimental-webgl")}catch(t){return!1}}();return s?new PIXI.WebGLRenderer(t,e,i,r):new PIXI.CanvasRenderer(t,e,i,r)},PIXI.shaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * vColor;","}"],PIXI.shaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform mat4 uMVMatrix;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","gl_Position = uMVMatrix * vec4(aVertexPosition, 1.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],PIXI.CompileVertexShader=function(t,e){return PIXI._CompileShader(t,e,t.VERTEX_SHADER)},PIXI.CompileFragmentShader=function(t,e){return PIXI._CompileShader(t,e,t.FRAGMENT_SHADER)},PIXI._CompileShader=function(t,e,i){var r=e.join("\n"),s=t.createShader(i);return t.shaderSource(s,r),t.compileShader(s),t.getShaderParameter(s,t.COMPILE_STATUS)?s:(alert(t.getShaderInfoLog(s)),null)},PIXI._defaultFrame=new PIXI.Rectangle(0,0,1,1),PIXI.gl,PIXI.WebGLRenderer=function(t,e,i,r){this.transparent=!!r,this.width=t||800,this.height=e||600,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height;var s=this;this.view.addEventListener("webglcontextlost",function(t){s.handleContextLost(t)},!1),this.view.addEventListener("webglcontextrestored",function(t){s.handleContextRestored(t)},!1),this.batchs=[];try{PIXI.gl=this.gl=this.view.getContext("experimental-webgl",{alpha:this.transparent,antialias:!1,premultipliedAlpha:!0})}catch(n){throw Error(" This browser does not support webGL. Try using the canvas renderer"+this)}this.initShaders();var a=this.gl;PIXI.WebGLRenderer.gl=a,this.batch=new PIXI.WebGLBatch(a),a.disable(a.DEPTH_TEST),a.disable(a.CULL_FACE),a.enable(a.BLEND),a.colorMask(!0,!0,!0,this.transparent),this.projectionMatrix=PIXI.mat4.create(),this.resize(this.width,this.height),this.contextLost=!1,this.stageRenderGroup=new PIXI.WebGLRenderGroup(this.gl)},PIXI.WebGLRenderer.constructor=PIXI.WebGLRenderer,PIXI.WebGLRenderer.getBatch=function(){return 0==PIXI._batchs.length?new PIXI.WebGLBatch(PIXI.WebGLRenderer.gl):PIXI._batchs.pop()},PIXI.WebGLRenderer.returnBatch=function(t){t.clean(),PIXI._batchs.push(t)},PIXI.WebGLRenderer.prototype.initShaders=function(){var t=this.gl,e=PIXI.CompileFragmentShader(t,PIXI.shaderFragmentSrc),i=PIXI.CompileVertexShader(t,PIXI.shaderVertexSrc);PIXI.shaderProgram=t.createProgram();var r=PIXI.shaderProgram;t.attachShader(r,i),t.attachShader(r,e),t.linkProgram(r),t.getProgramParameter(r,t.LINK_STATUS)||alert("Could not initialise shaders"),t.useProgram(r),r.vertexPositionAttribute=t.getAttribLocation(r,"aVertexPosition"),t.enableVertexAttribArray(r.vertexPositionAttribute),r.textureCoordAttribute=t.getAttribLocation(r,"aTextureCoord"),t.enableVertexAttribArray(r.textureCoordAttribute),r.colorAttribute=t.getAttribLocation(r,"aColor"),t.enableVertexAttribArray(r.colorAttribute),r.mvMatrixUniform=t.getUniformLocation(r,"uMVMatrix"),r.samplerUniform=t.getUniformLocation(r,"uSampler")},PIXI.WebGLRenderer.prototype.render=function(t){if(!this.contextLost){this.__stage!==t&&(this.__stage=t,this.stageRenderGroup.setRenderable(t));for(var e=0;PIXI.texturesToUpdate.length>e;e++)this.updateTexture(PIXI.texturesToUpdate[e]);for(var e=0;PIXI.texturesToDestroy.length>e;e++)this.destroyTexture(PIXI.texturesToDestroy[e]);PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[],t.updateTransform();var i=this.gl;if(i.colorMask(!0,!0,!0,this.transparent),i.viewport(0,0,this.width,this.height),i.bindFramebuffer(i.FRAMEBUFFER,null),i.clearColor(t.backgroundColorSplit[0],t.backgroundColorSplit[1],t.backgroundColorSplit[2],this.transparent),i.clear(i.COLOR_BUFFER_BIT),this.stageRenderGroup.backgroundColor=t.backgroundColorSplit,this.stageRenderGroup.render(this.projectionMatrix),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),PIXI.Texture.frameUpdates.length>0){for(var e=0;PIXI.Texture.frameUpdates.length>e;e++)PIXI.Texture.frameUpdates[e].updateFrame=!1;PIXI.Texture.frameUpdates=[]}}},PIXI.WebGLRenderer.prototype.updateTexture=function(t){var e=this.gl;t._glTexture||(t._glTexture=e.createTexture()),t.hasLoaded&&(e.bindTexture(e.TEXTURE_2D,t._glTexture),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t.source),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),t._powerOf2?(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT)):(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)),e.bindTexture(e.TEXTURE_2D,null)),this.refreshBatchs=!0},PIXI.WebGLRenderer.prototype.destroyTexture=function(t){var e=this.gl;t._glTexture&&(t._glTexture=e.createTexture(),e.deleteTexture(e.TEXTURE_2D,t._glTexture))},PIXI.WebGLRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e,this.gl.viewport(0,0,this.width,this.height);var i=this.projectionMatrix;i[0]=2/this.width,i[5]=-2/this.height,i[12]=-1,i[13]=1},PIXI.WebGLRenderer.prototype.handleContextLost=function(t){t.preventDefault(),this.contextLost=!0},PIXI.WebGLRenderer.prototype.handleContextRestored=function(){this.gl=this.view.getContext("experimental-webgl",{alpha:!0}),this.initShaders();for(var t=0;PIXI.TextureCache.length>t;t++)this.updateTexture(PIXI.TextureCache[t]);for(var t=0;this.batchs.length>t;t++)this.batchs[t].restoreLostContext(this.gl),this.batchs[t].dirty=!0;PIXI._restoreBatchs(this.gl),this.contextLost=!1},PIXI._batchs=[],PIXI._getBatch=function(t){return 0==PIXI._batchs.length?new PIXI.WebGLBatch(t):PIXI._batchs.pop()},PIXI._returnBatch=function(t){t.clean(),PIXI._batchs.push(t)},PIXI._restoreBatchs=function(t){for(var e=0;PIXI._batchs.length>e;e++)PIXI._batchs[e].restoreLostContext(t)},PIXI.WebGLBatch=function(t){this.gl=t,this.size=0,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer(),this.blendMode=PIXI.blendModes.NORMAL,this.dynamicSize=1},PIXI.WebGLBatch.constructor=PIXI.WebGLBatch,PIXI.WebGLBatch.prototype.clean=function(){this.verticies=[],this.uvs=[],this.indices=[],this.colors=[],this.dynamicSize=1,this.texture=null,this.last=null,this.size=0,this.head,this.tail},PIXI.WebGLBatch.prototype.restoreLostContext=function(t){this.gl=t,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer()},PIXI.WebGLBatch.prototype.init=function(t){t.batch=this,this.dirty=!0,this.blendMode=t.blendMode,this.texture=t.texture.baseTexture,this.head=t,this.tail=t,this.size=1,this.growBatch()},PIXI.WebGLBatch.prototype.insertBefore=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__prev;e.__prev=t,t.__next=e,i?(t.__prev=i,i.__next=t):this.head=t},PIXI.WebGLBatch.prototype.insertAfter=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__next;e.__next=t,t.__prev=e,i?(t.__next=i,i.__prev=t):this.tail=t},PIXI.WebGLBatch.prototype.remove=function(t){return this.size--,0==this.size?(t.batch=null,t.__prev=null,t.__next=null,void 0):(t.__prev?t.__prev.__next=t.__next:(this.head=t.__next,this.head.__prev=null),t.__next?t.__next.__prev=t.__prev:(this.tail=t.__prev,this.tail.__next=null),t.batch=null,t.__next=null,t.__prev=null,this.dirty=!0,void 0)},PIXI.WebGLBatch.prototype.split=function(t){this.dirty=!0;var e=new PIXI.WebGLBatch(this.gl);e.init(t),e.tail=this.tail,this.tail=t.__prev,this.tail.__next=null,t.__prev=null;for(var i=0;t;)i++,t.batch=e,t=t.__next;return e.size=i,this.size-=i,e},PIXI.WebGLBatch.prototype.merge=function(t){this.dirty=!0,this.tail.__next=t.head,t.head.__prev=this.tail,this.size+=t.size,this.tail=t.tail;for(var e=t.head;e;)e.batch=this,e=e.__next},PIXI.WebGLBatch.prototype.growBatch=function(){var t=this.gl;this.dynamicSize=1==this.size?1:1.5*this.size,this.verticies=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.vertexBuffer),t.bufferData(t.ARRAY_BUFFER,this.verticies,t.DYNAMIC_DRAW),this.uvs=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.uvBuffer),t.bufferData(t.ARRAY_BUFFER,this.uvs,t.DYNAMIC_DRAW),this.dirtyUVS=!0,this.colors=new Float32Array(4*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.colorBuffer),t.bufferData(t.ARRAY_BUFFER,this.colors,t.DYNAMIC_DRAW),this.dirtyColors=!0,this.indices=new Uint16Array(6*this.dynamicSize);for(var e=this.indices.length/6,i=0;e>i;i++){var r=6*i,s=4*i;this.indices[r+0]=s+0,this.indices[r+1]=s+1,this.indices[r+2]=s+2,this.indices[r+3]=s+0,this.indices[r+4]=s+2,this.indices[r+5]=s+3}t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,this.indexBuffer),t.bufferData(t.ELEMENT_ARRAY_BUFFER,this.indices,t.STATIC_DRAW)},PIXI.WebGLBatch.prototype.refresh=function(){this.gl,this.dynamicSizei;i++)this.removeDisplayObjectAndChildren(this.toRemove[i]);this.toRemove=[],this.checkVisibility(this.root,this.root.visible);for(var r,i=0;this.batchs.length>i;i++)r=this.batchs[i],r instanceof PIXI.WebGLBatch?this.batchs[i].render():r instanceof PIXI.TilingSprite?r.visible&&this.renderTilingSprite(r,t):r instanceof PIXI.Strip&&r.visible&&this.renderStrip(r,t)},PIXI.WebGLRenderGroup.prototype.renderSpecific=function(t,e){var i=this.gl;this.checkVisibility(t,t.visible),i.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform,!1,e);var r,s,n,a,o=t.renderable?t:this.getNextRenderable(t),h=o.batch;if(o instanceof PIXI.Sprite){h=o.batch;var u=h.head;if(u==o)r=0;else for(r=1;u.__next!=o;)r++,u=u.__next}else h=o;for(var c,d=t,l=t;l.children.length>0;)l=l.children[l.children.length-1],l.renderable&&(d=l);if(d instanceof PIXI.Sprite){c=d.batch;var u=c.head;if(u==d)n=0;else for(n=1;u.__next!=d;)n++,u=u.__next}else c=d;if(h==c)return h instanceof PIXI.WebGLBatch?h.render(r,n+1):h instanceof PIXI.TilingSprite?h.visible&&this.renderTilingSprite(h,e):h instanceof PIXI.Strip?h.visible&&this.renderStrip(h,e):h instanceof PIXI.CustomRenderable&&h.visible&&h.renderWebGL(this,e),void 0;s=this.batchs.indexOf(h),a=this.batchs.indexOf(c),h instanceof PIXI.WebGLBatch?h.render(r):h instanceof PIXI.TilingSprite?h.visible&&this.renderTilingSprite(h,e):h instanceof PIXI.Strip?h.visible&&this.renderStrip(h,e):h instanceof PIXI.CustomRenderable&&h.visible&&h.renderWebGL(this,e);for(var I=s+1;a>I;I++)renderable=this.batchs[I],renderable instanceof PIXI.WebGLBatch?this.batchs[I].render():renderable instanceof PIXI.TilingSprite?renderable.visible&&this.renderTilingSprite(renderable,e):renderable instanceof PIXI.Strip?renderable.visible&&this.renderStrip(renderable,e):renderable instanceof PIXI.CustomRenderable&&renderable.visible&&renderable.renderWebGL(this,e);c instanceof PIXI.WebGLBatch?c.render(0,n+1):c instanceof PIXI.TilingSprite?c.visible&&this.renderTilingSprite(c):c instanceof PIXI.Strip?c.visible&&this.renderStrip(c):c instanceof PIXI.CustomRenderable&&c.visible&&c.renderWebGL(this,e)},PIXI.WebGLRenderGroup.prototype.checkVisibility=function(t,e){for(var i=t.children,r=0;i.length>r;r++){var s=i[r];s.worldVisible=s.visible&&e,s.textureChange&&(s.textureChange=!1,s.worldVisible&&(this.removeDisplayObject(s),this.addDisplayObject(s))),s.children.length>0&&this.checkVisibility(s,s.worldVisible)}},PIXI.WebGLRenderGroup.prototype.addDisplayObject=function(t){if(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.__renderGroup=this,t.renderable){var e=this.getPreviousRenderable(t),i=this.getNextRenderable(t);if(t instanceof PIXI.Sprite){var r,s;if(e instanceof PIXI.Sprite){if(r=e.batch,r&&r.texture==t.texture.baseTexture&&r.blendMode==t.blendMode)return r.insertAfter(t,e),void 0}else r=e;if(i)if(i instanceof PIXI.Sprite){if(s=i.batch){if(s.texture==t.texture.baseTexture&&s.blendMode==t.blendMode)return s.insertBefore(t,i),void 0;if(s==r){var n=r.split(i),a=PIXI.WebGLRenderer.getBatch(),o=this.batchs.indexOf(r);return a.init(t),this.batchs.splice(o+1,0,a,n),void 0}}}else s=i;var a=PIXI.WebGLRenderer.getBatch();if(a.init(t),r){var o=this.batchs.indexOf(r);this.batchs.splice(o+1,0,a)}else this.batchs.push(a)}else t instanceof PIXI.TilingSprite?(this.initTilingSprite(t),this.batchs.push(t)):t instanceof PIXI.Strip&&(this.initStrip(t),this.batchs.push(t));this.batchUpdate=!0}},PIXI.WebGLRenderGroup.prototype.addDisplayObjectAndChildren=function(t){this.addDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.addDisplayObjectAndChildren(e[i])},PIXI.WebGLRenderGroup.prototype.removeDisplayObject=function(t){if(t.__renderGroup=null,t.renderable){var e;if(t instanceof PIXI.Sprite){var i=t.batch;if(!i)return;i.remove(t),0==i.size&&(e=i)}else e=t;if(e){var r=this.batchs.indexOf(e);if(-1==r)return;if(0==r||r==this.batchs.length-1)return this.batchs.splice(r,1),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e),void 0;if(this.batchs[r-1]instanceof PIXI.WebGLBatch&&this.batchs[r+1]instanceof PIXI.WebGLBatch&&this.batchs[r-1].texture==this.batchs[r+1].texture&&this.batchs[r-1].blendMode==this.batchs[r+1].blendMode)return this.batchs[r-1].merge(this.batchs[r+1]),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e),PIXI.WebGLRenderer.returnBatch(this.batchs[r+1]),this.batchs.splice(r,2),void 0;this.batchs.splice(r,1),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e)}}},PIXI.WebGLRenderGroup.prototype.removeDisplayObjectAndChildren=function(t){if(t.__renderGroup==this){this.removeDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.removeDisplayObjectAndChildren(e[i])}},PIXI.WebGLRenderGroup.prototype.getNextRenderable=function(t){var e=t;do{if(0==e.children.length){if(!e.parent)return null;for(;e.childIndex==e.parent.children.length-1;)if(e=e.parent,e==this.root){e=null;break}e&&(e=e.parent.children[e.childIndex+1])}else e=e.children[0];if(!e)break}while(!e.renderable||!e.__renderGroup);return e},PIXI.WebGLRenderGroup.prototype.getPreviousRenderable=function(t){var e=t;do{if(0==e.childIndex){if(e=e.parent,!e)return null}else for(e=e.parent.children[e.childIndex-1];0!=e.children.length;)e=e.children[e.children.length-1];if(e==this.root)break}while(!e.renderable||!e.__renderGroup);return e},PIXI.WebGLRenderGroup.prototype.initTilingSprite=function(t){var e=this.gl;t.verticies=new Float32Array([0,0,t.width,0,t.width,t.height,0,t.height]),t.uvs=new Float32Array([0,0,1,0,1,1,0,1]),t.colors=new Float32Array([1,1,1,1]),t.indices=new Uint16Array([0,1,3,2]),t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW),t.texture.baseTexture._glTexture?(e.bindTexture(e.TEXTURE_2D,t.texture.baseTexture._glTexture),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT),t.texture.baseTexture._powerOf2=!0):t.texture.baseTexture._powerOf2=!0},PIXI.WebGLRenderGroup.prototype.renderStrip=function(t,e){var i=this.gl,r=PIXI.shaderProgram,s=PIXI.mat3.toMat4(t.worldTransform);PIXI.mat4.transpose(s),PIXI.mat4.multiply(e,s,s),i.uniformMatrix4fv(r.mvMatrixUniform,!1,s),t.blendMode==PIXI.blendModes.NORMAL?i.blendFunc(i.ONE,i.ONE_MINUS_SRC_ALPHA):i.blendFunc(i.ONE,i.ONE_MINUS_SRC_COLOR),t.dirty?(t.dirty=!1,i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferData(i.ARRAY_BUFFER,t.verticies,i.STATIC_DRAW),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferData(i.ARRAY_BUFFER,t.uvs,i.STATIC_DRAW),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.bufferData(i.ARRAY_BUFFER,t.colors,i.STATIC_DRAW),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer),i.bufferData(i.ELEMENT_ARRAY_BUFFER,t.indices,i.STATIC_DRAW)):(i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.verticies),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer)),i.drawElements(i.TRIANGLE_STRIP,t.indices.length,i.UNSIGNED_SHORT,0),i.uniformMatrix4fv(r.mvMatrixUniform,!1,e)},PIXI.WebGLRenderGroup.prototype.renderTilingSprite=function(t,e){var i=this.gl;PIXI.shaderProgram;var r=t.tilePosition,s=t.tileScale,n=r.x/t.texture.baseTexture.width,a=r.y/t.texture.baseTexture.height,o=t.width/t.texture.baseTexture.width/s.x,h=t.height/t.texture.baseTexture.height/s.y;t.uvs[0]=0-n,t.uvs[1]=0-a,t.uvs[2]=1*o-n,t.uvs[3]=0-a,t.uvs[4]=1*o-n,t.uvs[5]=1*h-a,t.uvs[6]=0-n,t.uvs[7]=1*h-a,i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.uvs),this.renderStrip(t,e)},PIXI.WebGLRenderer.prototype.initStrip=function(t){var e=this.gl;this.shaderProgram,t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW)},PIXI.CanvasRenderer=function(t,e,i,r){this.transparent=r,this.width=t||800,this.height=e||600,this.refresh=!0,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height,this.count=0,this.context=this.view.getContext("2d")},PIXI.CanvasRenderer.constructor=PIXI.CanvasRenderer,PIXI.CanvasRenderer.prototype.render=function(t){PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[],t.updateTransform(),this.view.style.backgroundColor==t.backgroundColorString||this.transparent||(this.view.style.backgroundColor=t.backgroundColorString),this.context.setTransform(1,0,0,1,0,0),this.context.clearRect(0,0,this.width,this.height),this.renderDisplayObject(t),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),PIXI.Texture.frameUpdates.length>0&&(PIXI.Texture.frameUpdates=[])},PIXI.CanvasRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e},PIXI.CanvasRenderer.prototype.renderDisplayObject=function(t){var e=t.worldTransform,i=this.context;if(t.visible){if(t instanceof PIXI.Sprite){var r=t.texture.frame;r&&(i.globalAlpha=t.worldAlpha,i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),i.drawImage(t.texture.baseTexture.source,r.x,r.y,r.width,r.height,t.anchor.x*-r.width,t.anchor.y*-r.height,r.width,r.height))}else t instanceof PIXI.Strip?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderStrip(t)):t instanceof PIXI.TilingSprite?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderTilingSprite(t)):t instanceof PIXI.CustomRenderable&&t.renderCanvas(this);for(var s=0;t.children.length>s;s++)this.renderDisplayObject(t.children[s]);this.context.setTransform(1,0,0,1,0,0)}},PIXI.CanvasRenderer.prototype.renderStripFlat=function(t){var e=this.context,i=t.verticies;t.uvs;var r=i.length/2;this.count++,e.beginPath();for(var s=1;r-2>s;s++){var n=2*s,a=i[n],o=i[n+2],h=i[n+4],u=i[n+1],c=i[n+3],d=i[n+5];e.moveTo(a,u),e.lineTo(o,c),e.lineTo(h,d)}e.fillStyle="#FF0000",e.fill(),e.closePath()},PIXI.CanvasRenderer.prototype.renderTilingSprite=function(t){var e=this.context;t.__tilePattern||(t.__tilePattern=e.createPattern(t.texture.baseTexture.source,"repeat")),e.beginPath();var i=t.tilePosition,r=t.tileScale;e.scale(r.x,r.y),e.translate(i.x,i.y),e.fillStyle=t.__tilePattern,e.fillRect(-i.x,-i.y,t.width/r.x,t.height/r.y),e.scale(1/r.x,1/r.y),e.translate(-i.x,-i.y),e.closePath()},PIXI.CanvasRenderer.prototype.renderStrip=function(t){var e=this.context,i=t.verticies,r=t.uvs,s=i.length/2;this.count++;for(var n=1;s-2>n;n++){var a=2*n,o=i[a],h=i[a+2],u=i[a+4],c=i[a+1],d=i[a+3],l=i[a+5],I=r[a]*t.texture.width,p=r[a+2]*t.texture.width,f=r[a+4]*t.texture.width,x=r[a+1]*t.texture.height,v=r[a+3]*t.texture.height,P=r[a+5]*t.texture.height;e.save(),e.beginPath(),e.moveTo(o,c),e.lineTo(h,d),e.lineTo(u,l),e.closePath(),e.clip();var g=I*v+x*f+p*P-v*f-x*p-I*P,b=o*v+x*u+h*P-v*u-x*h-o*P,X=I*h+o*f+p*u-h*f-o*p-I*u,m=I*v*u+x*h*f+o*p*P-o*v*f-x*p*u-I*h*P,T=c*v+x*l+d*P-v*l-x*d-c*P,y=I*d+c*f+p*l-d*f-c*p-I*l,_=I*v*l+x*d*f+c*p*P-c*v*f-x*p*l-I*d*P;e.transform(b/g,T/g,X/g,y/g,m/g,_/g),e.drawImage(t.texture.baseTexture.source,0,0),e.restore()}},PIXI.Strip=function(t,e,i){PIXI.DisplayObjectContainer.call(this),this.texture=t,this.blendMode=PIXI.blendModes.NORMAL;try{this.uvs=new Float32Array([0,1,1,1,1,0,0,1]),this.verticies=new Float32Array([0,0,0,0,0,0,0,0,0]),this.colors=new Float32Array([1,1,1,1]),this.indices=new Uint16Array([0,1,2,3])}catch(r){this.uvs=[0,1,1,1,1,0,0,1],this.verticies=[0,0,0,0,0,0,0,0,0],this.colors=[1,1,1,1],this.indices=[0,1,2,3]}this.width=e,this.height=i,t.baseTexture.hasLoaded?(this.width=this.texture.frame.width,this.height=this.texture.frame.height,this.updateFrame=!0):(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},PIXI.Strip.constructor=PIXI.Strip,PIXI.Strip.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Strip.prototype.setTexture=function(t){this.texture=t,this.width=t.frame.width,this.height=t.frame.height,this.updateFrame=!0},PIXI.Strip.prototype.onTextureUpdate=function(){this.updateFrame=!0},PIXI.Rope=function(t,e){PIXI.Strip.call(this,t),this.points=e;try{this.verticies=new Float32Array(4*e.length),this.uvs=new Float32Array(4*e.length),this.colors=new Float32Array(2*e.length),this.indices=new Uint16Array(2*e.length)}catch(i){this.verticies=verticies,this.uvs=uvs,this.colors=colors,this.indices=indices}this.refresh()},PIXI.Rope.constructor=PIXI.Rope,PIXI.Rope.prototype=Object.create(PIXI.Strip.prototype),PIXI.Rope.prototype.refresh=function(){var t=this.points;if(!(1>t.length)){var e=this.uvs,i=this.indices,r=this.colors,s=t[0],n=t[0];this.count-=.2,e[0]=0,e[1]=1,e[2]=0,e[3]=1,r[0]=1,r[1]=1,i[0]=0,i[1]=1;for(var a=t.length,o=1;a>o;o++){var n=t[o],h=4*o,u=o/(a-1);o%2?(e[h]=u,e[h+1]=0,e[h+2]=u,e[h+3]=1):(e[h]=u,e[h+1]=0,e[h+2]=u,e[h+3]=1),h=2*o,r[h]=1,r[h+1]=1,h=2*o,i[h]=h,i[h+1]=h+1,s=n}}},PIXI.Rope.prototype.updateTransform=function(){var t=this.points;if(!(1>t.length)){var e,i=this.verticies,r=t[0],s={x:0,y:0},n=t[0];this.count-=.2,i[0]=n.x+s.x,i[1]=n.y+s.y,i[2]=n.x-s.x,i[3]=n.y-s.y;for(var a=t.length,o=1;a>o;o++){var n=t[o],h=4*o;e=t.length-1>o?t[o+1]:n,s.y=-(e.x-r.x),s.x=e.y-r.y;var u=10*(1-o/(a-1));u>1&&(u=1);var c=Math.sqrt(s.x*s.x+s.y*s.y),d=this.texture.height/2;s.x/=c,s.y/=c,s.x*=d,s.y*=d,i[h]=n.x+s.x,i[h+1]=n.y+s.y,i[h+2]=n.x-s.x,i[h+3]=n.y-s.y,r=n}PIXI.DisplayObjectContainer.prototype.updateTransform.call(this)}},PIXI.Rope.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0},PIXI.TilingSprite=function(t,e,i){PIXI.DisplayObjectContainer.call(this),this.texture=t,this.width=e,this.height=i,this.renderable=!0,this.tileScale=new PIXI.Point(1,1),this.tilePosition=new PIXI.Point(0,0),this.blendMode=PIXI.blendModes.NORMAL},PIXI.TilingSprite.constructor=PIXI.TilingSprite,PIXI.TilingSprite.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.TilingSprite.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0},PIXI.TilingSprite.prototype.onTextureUpdate=function(){this.updateFrame=!0},PIXI.CustomRenderable=function(){PIXI.DisplayObject.call(this)},PIXI.CustomRenderable.constructor=PIXI.CustomRenderable,PIXI.CustomRenderable.prototype=Object.create(PIXI.DisplayObject.prototype),PIXI.CustomRenderable.prototype.renderCanvas=function(){},PIXI.CustomRenderable.prototype.initWebGL=function(){},PIXI.CustomRenderable.prototype.renderWebGL=function(){},PIXI.BaseTextureCache={},PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[],PIXI.BaseTexture=function(t){if(PIXI.EventTarget.call(this),this.width=100,this.height=100,this.source=t,t){if(this.source instanceof Image)if(this.source.complete)this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,PIXI.texturesToUpdate.push(this);else{var e=this;this.source.onload=function(){e.hasLoaded=!0,e.width=e.source.width,e.height=e.source.height,PIXI.texturesToUpdate.push(e),e.dispatchEvent({type:"loaded",content:e})}}else this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,PIXI.texturesToUpdate.push(this);this._powerOf2=!1}},PIXI.BaseTexture.constructor=PIXI.BaseTexture,PIXI.BaseTexture.prototype.destroy=function(){this.source instanceof Image&&(this.source.src=null),this.source=null,PIXI.texturesToDestroy.push(this)},PIXI.BaseTexture.fromImage=function(t,e){var i=PIXI.BaseTextureCache[t];if(!i){var r=new Image;e&&(r.crossOrigin=""),r.src=t,i=new PIXI.BaseTexture(r),PIXI.BaseTextureCache[t]=i}return i},PIXI.TextureCache={},PIXI.FrameCache={},PIXI.Texture=function(t,e){if(PIXI.EventTarget.call(this),e||(this.noFrame=!0,e=new PIXI.Rectangle(0,0,1,1)),this.trim=new PIXI.Point,t instanceof PIXI.Texture&&(t=t.baseTexture),this.baseTexture=t,this.frame=e,this.scope=this,t.hasLoaded)this.noFrame&&(e=new PIXI.Rectangle(0,0,t.width,t.height)),this.setFrame(e);else{var i=this;t.addEventListener("loaded",function(){i.onBaseTextureLoaded()})}},PIXI.Texture.constructor=PIXI.Texture,PIXI.Texture.prototype.onBaseTextureLoaded=function(){var t=this.baseTexture;t.removeEventListener("loaded",this.onLoaded),this.noFrame&&(this.frame=new PIXI.Rectangle(0,0,t.width,t.height)),this.noFrame=!1,this.width=this.frame.width,this.height=this.frame.height,this.scope.dispatchEvent({type:"update",content:this})},PIXI.Texture.prototype.destroy=function(t){t&&this.baseTexture.destroy()},PIXI.Texture.prototype.setFrame=function(t){if(this.frame=t,this.width=t.width,this.height=t.height,t.x+t.width>this.baseTexture.width||t.y+t.height>this.baseTexture.height)throw Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);this.updateFrame=!0,PIXI.Texture.frameUpdates.push(this)},PIXI.Texture.fromImage=function(t,e){var i=PIXI.TextureCache[t];return i||(i=new PIXI.Texture(PIXI.BaseTexture.fromImage(t,e)),PIXI.TextureCache[t]=i),i},PIXI.Texture.fromFrame=function(t){var e=PIXI.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache "+this);return e},PIXI.Texture.fromCanvas=function(t){var e=new PIXI.BaseTexture(t);return new PIXI.Texture(e)},PIXI.Texture.addTextureToCache=function(t,e){PIXI.TextureCache[e]=t},PIXI.Texture.removeTextureFromCache=function(t){var e=PIXI.TextureCache[t];return PIXI.TextureCache[t]=null,e},PIXI.Texture.frameUpdates=[],PIXI.RenderTexture=function(t,e){PIXI.EventTarget.call(this),this.width=t||100,this.height=e||100,this.indetityMatrix=PIXI.mat3.create(),this.frame=new PIXI.Rectangle(0,0,this.width,this.height),PIXI.gl?this.initWebGL():this.initCanvas()},PIXI.RenderTexture.constructor=PIXI.RenderTexture,PIXI.RenderTexture.prototype=Object.create(PIXI.Texture.prototype),PIXI.RenderTexture.prototype.initWebGL=function(){var t=PIXI.gl;this.glFramebuffer=t.createFramebuffer(),t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),this.glFramebuffer.width=this.width,this.glFramebuffer.height=this.height,this.baseTexture=new PIXI.BaseTexture,this.baseTexture.width=this.width,this.baseTexture.height=this.height,this.baseTexture._glTexture=t.createTexture(),t.bindTexture(t.TEXTURE_2D,this.baseTexture._glTexture),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,this.width,this.height,0,t.RGBA,t.UNSIGNED_BYTE,null),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),this.baseTexture.isRender=!0,t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,this.baseTexture._glTexture,0),this.projectionMatrix=PIXI.mat4.create(),this.projectionMatrix[5]=2/this.height,this.projectionMatrix[13]=-1,this.projectionMatrix[0]=2/this.width,this.projectionMatrix[12]=-1,this.render=this.renderWebGL},PIXI.RenderTexture.prototype.initCanvas=function(){this.renderer=new PIXI.CanvasRenderer(this.width,this.height,null,0),this.baseTexture=new PIXI.BaseTexture(this.renderer.view),this.frame=new PIXI.Rectangle(0,0,this.width,this.height),this.render=this.renderCanvas},PIXI.RenderTexture.prototype.renderWebGL=function(t,e){var i=PIXI.gl;i.colorMask(!0,!0,!0,!0),i.viewport(0,0,this.width,this.height),i.bindFramebuffer(i.FRAMEBUFFER,this.glFramebuffer),e&&(i.clearColor(0,0,0,0),i.clear(i.COLOR_BUFFER_BIT));var r=t.children;t.worldTransform=PIXI.mat3.create();for(var s=0,n=r.length;n>s;s++)r[s].updateTransform();var a=t.__renderGroup;a?t==a.root?a.render(this.projectionMatrix):a.renderSpecific(t,this.projectionMatrix):(this.renderGroup||(this.renderGroup=new PIXI.WebGLRenderGroup(i)),this.renderGroup.setRenderable(t),this.renderGroup.render(this.projectionMatrix))},PIXI.RenderTexture.prototype.renderCanvas=function(t,e){var i=t.children;t.worldTransform=PIXI.mat3.create();for(var r=0,s=i.length;s>r;r++)i[r].updateTransform();e&&this.renderer.context.clearRect(0,0,this.width,this.height),this.renderer.renderDisplayObject(t),PIXI.texturesToUpdate.push(this.baseTexture)},PIXI.AssetLoader=function(t){PIXI.EventTarget.call(this),this.assetURLs=t,this.crossorigin=!1,this.loadersByType={jpg:PIXI.ImageLoader,jpeg:PIXI.ImageLoader,png:PIXI.ImageLoader,gif:PIXI.ImageLoader,json:PIXI.SpriteSheetLoader,xml:PIXI.BitmapFontLoader,fnt:PIXI.BitmapFontLoader}},PIXI.AssetLoader.constructor=PIXI.AssetLoader,PIXI.AssetLoader.prototype.load=function(){var t=this;this.loadCount=this.assetURLs.length;for(var e=0;this.assetURLs.length>e;e++){var i=this.assetURLs[e],r=i.split(".").pop().toLowerCase(),s=this.loadersByType[r];if(!s)throw Error(r+" is an unsupported file type");var n=new s(i,this.crossorigin);n.addEventListener("loaded",function(){t.onAssetLoaded()}),n.load()}},PIXI.AssetLoader.prototype.onAssetLoaded=function(){this.loadCount--,this.dispatchEvent({type:"onProgress",content:this}),this.onProgress&&this.onProgress(),0==this.loadCount&&(this.dispatchEvent({type:"onComplete",content:this}),this.onComplete&&this.onComplete())},PIXI.SpriteSheetLoader=function(t,e){PIXI.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.frames={},this.crossorigin=e},PIXI.SpriteSheetLoader.constructor=PIXI.SpriteSheetLoader,PIXI.SpriteSheetLoader.prototype.load=function(){this.ajaxRequest=new AjaxRequest;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onJSONLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/json"),this.ajaxRequest.send(null)},PIXI.SpriteSheetLoader.prototype.onJSONLoaded=function(){if(4==this.ajaxRequest.readyState&&(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))){var jsonData=eval("("+this.ajaxRequest.responseText+")"),textureUrl=this.baseUrl+jsonData.meta.image,image=new PIXI.ImageLoader(textureUrl,this.crossorigin);this.texture=image.texture.baseTexture;var scope=this;image.addEventListener("loaded",function(){scope.onLoaded()});var frameData=jsonData.frames;for(var i in frameData){var rect=frameData[i].frame;rect&&(PIXI.TextureCache[i]=new PIXI.Texture(this.texture,{x:rect.x,y:rect.y,width:rect.w,height:rect.h}),frameData[i].trimmed&&(PIXI.TextureCache[i].realSize=frameData[i].spriteSourceSize,PIXI.TextureCache[i].trim.x=0))}image.load()}},PIXI.SpriteSheetLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},PIXI.ImageLoader=function(t,e){PIXI.EventTarget.call(this),this.texture=PIXI.Texture.fromImage(t,e)},PIXI.ImageLoader.constructor=PIXI.ImageLoader,PIXI.ImageLoader.prototype.load=function(){if(this.texture.baseTexture.hasLoaded)this.onLoaded();else{var t=this;this.texture.baseTexture.addEventListener("loaded",function(){t.onLoaded()})}},PIXI.ImageLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},PIXI.BitmapFontLoader=function(t,e){PIXI.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.crossorigin=e},PIXI.BitmapFontLoader.constructor=PIXI.BitmapFontLoader,PIXI.BitmapFontLoader.prototype.load=function(){this.ajaxRequest=new XMLHttpRequest;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onXMLLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/xml"),this.ajaxRequest.send(null)},PIXI.BitmapFontLoader.prototype.onXMLLoaded=function(){if(4==this.ajaxRequest.readyState&&(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))){var t=this.baseUrl+this.ajaxRequest.responseXML.getElementsByTagName("page")[0].attributes.getNamedItem("file").nodeValue,e=new PIXI.ImageLoader(t,this.crossorigin);this.texture=e.texture.baseTexture;var i={},r=this.ajaxRequest.responseXML.getElementsByTagName("info")[0],s=this.ajaxRequest.responseXML.getElementsByTagName("common")[0];i.font=r.attributes.getNamedItem("face").nodeValue,i.size=parseInt(r.attributes.getNamedItem("size").nodeValue,10),i.lineHeight=parseInt(s.attributes.getNamedItem("lineHeight").nodeValue,10),i.chars={};for(var n=this.ajaxRequest.responseXML.getElementsByTagName("char"),a=0;n.length>a;a++){var o=parseInt(n[a].attributes.getNamedItem("id").nodeValue,10),h={x:parseInt(n[a].attributes.getNamedItem("x").nodeValue,10),y:parseInt(n[a].attributes.getNamedItem("y").nodeValue,10),width:parseInt(n[a].attributes.getNamedItem("width").nodeValue,10),height:parseInt(n[a].attributes.getNamedItem("height").nodeValue,10)};PIXI.TextureCache[o]=new PIXI.Texture(this.texture,h),i.chars[o]={xOffset:parseInt(n[a].attributes.getNamedItem("xoffset").nodeValue,10),yOffset:parseInt(n[a].attributes.getNamedItem("yoffset").nodeValue,10),xAdvance:parseInt(n[a].attributes.getNamedItem("xadvance").nodeValue,10),kerning:{}}}var u=this.ajaxRequest.responseXML.getElementsByTagName("kerning");for(a=0;u.length>a;a++){var c=parseInt(u[a].attributes.getNamedItem("first").nodeValue,10),d=parseInt(u[a].attributes.getNamedItem("second").nodeValue,10),l=parseInt(u[a].attributes.getNamedItem("amount").nodeValue,10);i.chars[d].kerning[c]=l}PIXI.BitmapText.fonts[i.font]=i;var I=this;e.addEventListener("loaded",function(){I.onLoaded()}),e.load()}},PIXI.BitmapFontLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=PIXI),exports.PIXI=PIXI):root.PIXI=PIXI}).call(this); \ No newline at end of file +(function(){function HEXtoRGB(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}function determineMatrixArrayType(){return PIXI.Matrix="undefined"!=typeof Float32Array?Float32Array:Array,PIXI.Matrix}var root=this,PIXI=PIXI||{};PIXI.Point=function(t,e){this.x=t||0,this.y=e||0},PIXI.Point.prototype.clone=function(){return new PIXI.Point(this.x,this.y)},PIXI.Point.constructor=PIXI.Point,PIXI.Rectangle=function(t,e,i,r){this.x=t||0,this.y=e||0,this.width=i||0,this.height=r||0},PIXI.Rectangle.prototype.clone=function(){return new PIXI.Rectangle(this.x,this.y,this.width,this.height)},PIXI.Rectangle.constructor=PIXI.Rectangle,PIXI.DisplayObject=function(){this.position=new PIXI.Point,this.scale=new PIXI.Point(1,1),this.pivot=new PIXI.Point(0,0),this.rotation=0,this.alpha=1,this.visible=!0,this.worldVisible=!1,this.parent=null,this.stage=null,this.hitArea=null,this.worldAlpha=1,this.color=[],this.worldTransform=PIXI.mat3.create(),this.localTransform=PIXI.mat3.create(),this.dynamic=!0,this._sr=0,this._cr=1,this.childIndex=0,this.renderable=!1,this.interactive=!1,this.buttonMode=!1},PIXI.DisplayObject.constructor=PIXI.DisplayObject,PIXI.DisplayObject.prototype.setInteractive=function(t){this.interactive=t,this.stage&&(this.stage.dirty=!0)},PIXI.DisplayObject.prototype.updateTransform=function(){this.rotation!=this.rotationCache&&(this.rotationCache=this.rotation,this._sr=Math.sin(this.rotation),this._cr=Math.cos(this.rotation));var t=this.localTransform,e=this.parent.worldTransform,i=this.worldTransform;t[0]=this._cr*this.scale.x,t[1]=-this._sr*this.scale.y,t[3]=this._sr*this.scale.x,t[4]=this._cr*this.scale.y;var r=this.pivot.x,s=this.pivot.y;t[2]=this.position.x-t[0]*r-s*t[1],t[5]=this.position.y-t[4]*s-r*t[3];var n=t[0],a=t[1],o=t[2],h=t[3],u=t[4],d=t[5],c=e[0],l=e[1],I=e[2],p=e[3],f=e[4],x=e[5];i[0]=c*n+l*h,i[1]=c*a+l*u,i[2]=c*o+l*d+I,i[3]=p*n+f*h,i[4]=p*a+f*u,i[5]=p*o+f*d+x,this.worldAlpha=this.alpha*this.parent.worldAlpha},PIXI.DisplayObjectContainer=function(){PIXI.DisplayObject.call(this),this.children=[],this.renderable=!1},PIXI.DisplayObjectContainer.constructor=PIXI.DisplayObjectContainer,PIXI.DisplayObjectContainer.prototype=Object.create(PIXI.DisplayObject.prototype),PIXI.DisplayObjectContainer.prototype.addChild=function(t){void 0!=t.parent&&t.parent.removeChild(t),t.parent=this,t.childIndex=this.children.length,this.children.push(t),this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},PIXI.DisplayObjectContainer.prototype.addChildAt=function(t,e){if(!(e>=0&&this.children.length>=e))throw Error(t+" The index "+e+" supplied is out of bounds "+this.children.length);void 0!=t.parent&&t.parent.removeChild(t),e==this.children.length?this.children.push(t):this.children.splice(e,0,t),t.parent=this,t.childIndex=e;for(var i=this.children.length,r=e;i>r;r++)this.children[r].childIndex=r;this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},PIXI.DisplayObjectContainer.prototype.swapChildren=function(t,e){var i=this.children.indexOf(t),r=this.children.indexOf(e);if(-1===i||-1===r)throw Error(t+" Both the supplied DisplayObjects must be a child of the caller "+this);this.stage&&(this.stage.__removeChild(t),this.stage.__removeChild(e),this.stage.__addChild(t),this.stage.__addChild(e)),t.childIndex=r,e.childIndex=i,this.children[i]=e,this.children[r]=t},PIXI.DisplayObjectContainer.prototype.getChildAt=function(t){if(t>=0&&this.children.length>t)return this.children[t];throw Error(child+" Both the supplied DisplayObjects must be a child of the caller "+this)},PIXI.DisplayObjectContainer.prototype.removeChild=function(t){var e=this.children.indexOf(t);if(-1===e)throw Error(t+" The supplied DisplayObject must be a child of the caller "+this);this.stage&&this.stage.__removeChild(t),t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.parent=void 0,this.children.splice(e,1);for(var i=e,r=this.children.length;r>i;i++)this.children[i].childIndex-=1},PIXI.DisplayObjectContainer.prototype.updateTransform=function(){if(this.visible){PIXI.DisplayObject.prototype.updateTransform.call(this);for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform()}},PIXI.blendModes={},PIXI.blendModes.NORMAL=0,PIXI.blendModes.SCREEN=1,PIXI.Sprite=function(t){PIXI.DisplayObjectContainer.call(this),this.anchor=new PIXI.Point,this.texture=t,this.blendMode=PIXI.blendModes.NORMAL,this._width=0,this._height=0,t.baseTexture.hasLoaded?this.updateFrame=!0:(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},PIXI.Sprite.constructor=PIXI.Sprite,PIXI.Sprite.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),Object.defineProperty(PIXI.Sprite.prototype,"width",{get:function(){return this.scale.x*this.texture.frame.width},set:function(t){this.scale.x=t/this.texture.frame.width,this._width=t}}),Object.defineProperty(PIXI.Sprite.prototype,"height",{get:function(){return this.scale.y*this.texture.frame.height},set:function(t){this.scale.y=t/this.texture.frame.height,this._height=t}}),PIXI.Sprite.prototype.setTexture=function(t){this.texture.baseTexture!=t.baseTexture&&(this.textureChange=!0),this.texture=t,this.updateFrame=!0},PIXI.Sprite.prototype.onTextureUpdate=function(){this._width&&(this.scale.x=this._width/this.texture.frame.width),this._height&&(this.scale.y=this._height/this.texture.frame.height),this.updateFrame=!0},PIXI.Sprite.fromFrame=function(t){var e=PIXI.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache"+this);return new PIXI.Sprite(e)},PIXI.Sprite.fromImage=function(t){var e=PIXI.Texture.fromImage(t);return new PIXI.Sprite(e)},PIXI.MovieClip=function(t){PIXI.Sprite.call(this,t[0]),this.textures=t,this.currentFrame=0,this.animationSpeed=1,this.loop=!0,this.onComplete=null,this.playing},PIXI.MovieClip.constructor=PIXI.MovieClip,PIXI.MovieClip.prototype=Object.create(PIXI.Sprite.prototype),PIXI.MovieClip.prototype.stop=function(){this.playing=!1},PIXI.MovieClip.prototype.play=function(){this.playing=!0},PIXI.MovieClip.prototype.gotoAndStop=function(t){this.playing=!1,this.currentFrame=t;var e=0|this.currentFrame+.5;this.setTexture(this.textures[e%this.textures.length])},PIXI.MovieClip.prototype.gotoAndPlay=function(t){this.currentFrame=t,this.playing=!0},PIXI.MovieClip.prototype.updateTransform=function(){if(PIXI.Sprite.prototype.updateTransform.call(this),this.playing){this.currentFrame+=this.animationSpeed;var t=0|this.currentFrame+.5;this.loop||this.textures.length>t?this.setTexture(this.textures[t%this.textures.length]):t>=this.textures.length&&(this.gotoAndStop(this.textures.length-1),this.onComplete&&this.onComplete())}},PIXI.Text=function(t,e){this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"),PIXI.Sprite.call(this,PIXI.Texture.fromCanvas(this.canvas)),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},PIXI.Text.constructor=PIXI.Text,PIXI.Text.prototype=Object.create(PIXI.Sprite.prototype),PIXI.Text.prototype.setStyle=function(t){t=t||{},t.font=t.font||"bold 20pt Arial",t.fill=t.fill||"black",t.align=t.align||"left",t.strokeThickness=t.strokeThickness||0,this.style=t,this.dirty=!0},PIXI.Sprite.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},PIXI.Text.prototype.updateText=function(){this.context.font=this.style.font;for(var t=this.text.split(/(?:\r\n|\r|\n)/),e=[],i=0,r=0;t.length>r;r++){var s=this.context.measureText(t[r]).width;e[r]=s,i=Math.max(i,s)}this.canvas.width=i+this.style.strokeThickness;var n=this.determineFontHeight("font: "+this.style.font+";")+this.style.strokeThickness;for(this.canvas.height=n*t.length,this.context.fillStyle=this.style.fill,this.context.font=this.style.font,this.context.strokeStyle=this.style.stroke,this.context.lineWidth=this.style.strokeThickness,this.context.textBaseline="top",r=0;t.length>r;r++){var a=new PIXI.Point(this.style.strokeThickness/2,this.style.strokeThickness/2+r*n);"right"==this.style.align?a.x+=i-e[r]:"center"==this.style.align&&(a.x+=(i-e[r])/2),this.style.stroke&&this.style.strokeThickness&&this.context.strokeText(t[r],a.x,a.y),this.style.fill&&this.context.fillText(t[r],a.x,a.y)}this.updateTexture()},PIXI.Text.prototype.updateTexture=function(){this.texture.baseTexture.width=this.canvas.width,this.texture.baseTexture.height=this.canvas.height,this.texture.frame.width=this.canvas.width,this.texture.frame.height=this.canvas.height,this._width=this.canvas.width,this._height=this.canvas.height,PIXI.texturesToUpdate.push(this.texture.baseTexture)},PIXI.Text.prototype.updateTransform=function(){this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype.updateTransform.call(this)},PIXI.Text.prototype.determineFontHeight=function(t){var e=PIXI.Text.heightCache[t];if(!e){var i=document.getElementsByTagName("body")[0],r=document.createElement("div"),s=document.createTextNode("M");r.appendChild(s),r.setAttribute("style",t),i.appendChild(r),e=r.offsetHeight,PIXI.Text.heightCache[t]=e,i.removeChild(r)}return e},PIXI.Text.prototype.destroy=function(t){t&&this.texture.destroy()},PIXI.Text.heightCache={},PIXI.BitmapText=function(t,e){PIXI.DisplayObjectContainer.call(this),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},PIXI.BitmapText.constructor=PIXI.BitmapText,PIXI.BitmapText.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.BitmapText.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},PIXI.BitmapText.prototype.setStyle=function(t){t=t||{},t.align=t.align||"left",this.style=t;var e=t.font.split(" ");this.fontName=e[e.length-1],this.fontSize=e.length>=2?parseInt(e[e.length-2],10):PIXI.BitmapText.fonts[this.fontName].size,this.dirty=!0},PIXI.BitmapText.prototype.updateText=function(){for(var t=PIXI.BitmapText.fonts[this.fontName],e=new PIXI.Point,i=null,r=[],s=0,n=[],a=0,o=this.fontSize/t.size,h=0;this.text.length>h;h++){var u=this.text.charCodeAt(h);if(/(?:\r\n|\r|\n)/.test(this.text.charAt(h)))n.push(e.x),s=Math.max(s,e.x),a++,e.x=0,e.y+=t.lineHeight,i=null;else{var d=t.chars[u];d&&(i&&d[i]&&(e.x+=d.kerning[i]),r.push({line:a,charCode:u,position:new PIXI.Point(e.x+d.xOffset,e.y+d.yOffset)}),e.x+=d.xAdvance,i=u)}}n.push(e.x),s=Math.max(s,e.x);var c=[];for(h=0;a>=h;h++){var l=0;"right"==this.style.align?l=s-n[h]:"center"==this.style.align&&(l=(s-n[h])/2),c.push(l)}for(h=0;r.length>h;h++){var I=PIXI.Sprite.fromFrame(r[h].charCode);I.position.x=(r[h].position.x+c[r[h].line])*o,I.position.y=r[h].position.y*o,I.scale.x=I.scale.y=o,this.addChild(I)}this.width=e.x*o,this.height=(e.y+t.lineHeight)*o},PIXI.BitmapText.prototype.updateTransform=function(){if(this.dirty){for(;this.children.length>0;)this.removeChild(this.getChildAt(0));this.updateText(),this.dirty=!1}PIXI.DisplayObjectContainer.prototype.updateTransform.call(this)},PIXI.BitmapText.fonts={},PIXI.InteractionManager=function(t){this.stage=t,this.tempPoint=new PIXI.Point,this.mouseoverEnabled=!0,this.mouse=new PIXI.InteractionData,this.touchs={},this.pool=[],this.interactiveItems=[],this.last=0},PIXI.InteractionManager.constructor=PIXI.InteractionManager,PIXI.InteractionManager.prototype.collectInteractiveSprite=function(t,e){for(var i=t.children,r=i.length,s=r-1;s>=0;s--){var n=i[s];n.interactive?(e.interactiveChildren=!0,this.interactiveItems.push(n),n.children.length>0&&this.collectInteractiveSprite(n,n)):(n.__iParent=null,n.children.length>0&&this.collectInteractiveSprite(n,e))}},PIXI.InteractionManager.prototype.setTarget=function(t){window.navigator.msPointerEnabled&&(t.view.style["-ms-content-zooming"]="none",t.view.style["-ms-touch-action"]="none"),this.target=t,t.view.addEventListener("mousemove",this.onMouseMove.bind(this),!0),t.view.addEventListener("mousedown",this.onMouseDown.bind(this),!0),document.body.addEventListener("mouseup",this.onMouseUp.bind(this),!0),t.view.addEventListener("mouseout",this.onMouseUp.bind(this),!0),t.view.addEventListener("touchstart",this.onTouchStart.bind(this),!0),t.view.addEventListener("touchend",this.onTouchEnd.bind(this),!0),t.view.addEventListener("touchmove",this.onTouchMove.bind(this),!0)},PIXI.InteractionManager.prototype.update=function(){if(this.target){var t=Date.now(),e=t-this.last;if(e=30*e/1e3,!(1>e)){if(this.last=t,this.dirty){this.dirty=!1,this.interactiveItems.length;for(var i=0;this.interactiveItems.length>i;i++)this.interactiveItems[i].interactiveChildren=!1;this.interactiveItems=[],this.stage.interactive&&this.interactiveItems.push(this.stage),this.collectInteractiveSprite(this.stage,this.stage)}var r=this.interactiveItems.length;this.target.view.style.cursor="default";for(var i=0;r>i;i++){var s=this.interactiveItems[i];s.visible&&(s.mouseover||s.mouseout||s.buttonMode)&&(s.__hit=this.hitTest(s,this.mouse),s.__hit?(s.buttonMode&&(this.target.view.style.cursor="pointer"),s.__isOver||(s.mouseover&&s.mouseover(this.mouse),s.__isOver=!0)):s.__isOver&&(s.mouseout&&s.mouseout(this.mouse),s.__isOver=!1))}}}},PIXI.InteractionManager.prototype.onMouseMove=function(t){t.preventDefault();var e=this.target.view.getBoundingClientRect();this.mouse.global.x=(t.clientX-e.left)*(this.target.width/e.width),this.mouse.global.y=(t.clientY-e.top)*(this.target.height/e.height);var i=this.interactiveItems.length;this.mouse.global;for(var r=0;i>r;r++){var s=this.interactiveItems[r];s.mousemove&&s.mousemove(this.mouse)}},PIXI.InteractionManager.prototype.onMouseDown=function(t){t.preventDefault();var e=this.interactiveItems.length;this.mouse.global,this.stage;for(var i=0;e>i;i++){var r=this.interactiveItems[i];if((r.mousedown||r.click)&&(r.__mouseIsDown=!0,r.__hit=this.hitTest(r,this.mouse),r.__hit&&(r.mousedown&&r.mousedown(this.mouse),r.__isDown=!0,!r.interactiveChildren)))break}},PIXI.InteractionManager.prototype.onMouseUp=function(t){t.preventDefault(),this.mouse.global;for(var e=this.interactiveItems.length,i=!1,r=0;e>r;r++){var s=this.interactiveItems[r];(s.mouseup||s.mouseupoutside||s.click)&&(s.__hit=this.hitTest(s,this.mouse),s.__hit&&!i?(s.mouseup&&s.mouseup(this.mouse),s.__isDown&&s.click&&s.click(this.mouse),s.interactiveChildren||(i=!0)):s.__isDown&&s.mouseupoutside&&s.mouseupoutside(this.mouse),s.__isDown=!1)}},PIXI.InteractionManager.prototype.hitTest=function(t,e){var i=e.global;if(!t.visible)return!1;if(t instanceof PIXI.Sprite){var r=t.worldTransform,s=r[0],n=r[1],a=r[2],o=r[3],h=r[4],u=r[5],d=1/(s*h+n*-o),c=h*d*i.x+-n*d*i.y+(u*n-a*h)*d,l=s*d*i.y+-o*d*i.x+(-u*s+a*o)*d,I=t.texture.frame.width,p=t.texture.frame.height,f=-I*t.anchor.x;if(c>f&&f+I>c){var x=-p*t.anchor.y;if(l>x&&x+p>l)return e.target=t,!0}}else if(t.hitArea){var r=t.worldTransform,v=t.hitArea,s=r[0],n=r[1],a=r[2],o=r[3],h=r[4],u=r[5],d=1/(s*h+n*-o),c=h*d*i.x+-n*d*i.y+(u*n-a*h)*d,l=s*d*i.y+-o*d*i.x+(-u*s+a*o)*d,f=v.x;if(c>f&&f+v.width>c){var x=v.y;if(l>x&&x+v.height>l)return!0}}for(var P=t.children.length,g=0;P>g;g++){var b=t.children[g],X=this.hitTest(b,e);if(X)return!0}return!1},PIXI.InteractionManager.prototype.onTouchMove=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.touchs[s.identifier];n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height)}for(var a=this.interactiveItems.length,r=0;a>r;r++){var o=this.interactiveItems[r];o.touchmove&&o.touchmove(n)}},PIXI.InteractionManager.prototype.onTouchStart=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.pool.pop();n||(n=new PIXI.InteractionData),this.touchs[s.identifier]=n,n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height);for(var a=this.interactiveItems.length,o=0;a>o;o++){var h=this.interactiveItems[o];if((h.touchstart||h.tap)&&(h.__hit=this.hitTest(h,n),h.__hit&&(h.touchstart&&h.touchstart(n),h.__isDown=!0,h.__touchData=n,!h.interactiveChildren)))break}}},PIXI.InteractionManager.prototype.onTouchEnd=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.touchs[s.identifier],a=!1;n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var u=this.interactiveItems[h],d=u.__touchData;u.__hit=this.hitTest(u,n),d==n&&((u.touchend||u.tap)&&(u.__hit&&!a?(u.touchend&&u.touchend(n),u.__isDown&&u.tap&&u.tap(n),u.interactiveChildren||(a=!0)):u.__isDown&&u.touchendoutside&&u.touchendoutside(n),u.__isDown=!1),u.__touchData=null)}this.pool.push(n),this.touchs[s.identifier]=null}},PIXI.InteractionData=function(){this.global=new PIXI.Point,this.local=new PIXI.Point,this.target},PIXI.InteractionData.prototype.getLocalPosition=function(t){var e=t.worldTransform,i=this.global,r=e[0],s=e[1],n=e[2],a=e[3],o=e[4],h=e[5],u=1/(r*o+s*-a);return new PIXI.Point(o*u*i.x+-s*u*i.y+(h*s-n*o)*u,r*u*i.y+-a*u*i.x+(-h*r+n*a)*u)},PIXI.InteractionData.constructor=PIXI.InteractionData,PIXI.Stage=function(t,e){PIXI.DisplayObjectContainer.call(this),this.worldTransform=PIXI.mat3.create(),this.__childrenAdded=[],this.__childrenRemoved=[],this.childIndex=0,this.stage=this,this.stage.hitArea=new PIXI.Rectangle(0,0,1e5,1e5),this.interactive=!!e,this.interactionManager=new PIXI.InteractionManager(this),this.setBackgroundColor(t),this.worldVisible=!0},PIXI.Stage.constructor=PIXI.Stage,PIXI.Stage.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Stage.prototype.updateTransform=function(){this.worldAlpha=1;for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform();this.dirty&&(this.dirty=!1,this.interactionManager.dirty=!0),this.interactive&&this.interactionManager.update()},PIXI.Stage.prototype.setBackgroundColor=function(t){this.backgroundColor=t||0,this.backgroundColorSplit=HEXtoRGB(this.backgroundColor),this.backgroundColorString="#"+this.backgroundColor.toString(16)},PIXI.Stage.prototype.getMousePosition=function(){return this.interactionManager.mouse.global},PIXI.Stage.prototype.__addChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=this,t.children)for(var e=0;t.children.length>e;e++)this.__addChild(t.children[e])},PIXI.Stage.prototype.__removeChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=void 0,t.children)for(var e=0,i=t.children.length;i>e;e++)this.__removeChild(t.children[e])},window.requestAnimFrame=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(t){window.setTimeout(t,1e3/60)}}(),"function"!=typeof Function.prototype.bind&&(Function.prototype.bind=function(){var t=Array.prototype.slice;return function(e){function i(){var n=s.concat(t.call(arguments));r.apply(this instanceof i?this:e,n)}var r=this,s=t.call(arguments,1);if("function"!=typeof r)throw new TypeError;return i.prototype=function n(t){return t&&(n.prototype=t),this instanceof n?void 0:new n}(r.prototype),i}}());var AjaxRequest=function(){var t=["Msxml2.XMLHTTP","Microsoft.XMLHTTP"];if(!window.ActiveXObject)return window.XMLHttpRequest?new XMLHttpRequest:!1;for(var e=0;t.length>e;e++)try{return new ActiveXObject(t[e])}catch(i){}};PIXI.EventTarget=function(){var t={};this.addEventListener=this.on=function(e,i){void 0===t[e]&&(t[e]=[]),-1===t[e].indexOf(i)&&t[e].push(i)},this.dispatchEvent=this.emit=function(e){for(var i in t[e.type])t[e.type][i](e)},this.removeEventListener=this.off=function(e,i){var r=t[e].indexOf(i);-1!==r&&t[e].splice(r,1)}},determineMatrixArrayType(),PIXI.mat3={},PIXI.mat3.create=function(){var t=new PIXI.Matrix(9);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},PIXI.mat4={},PIXI.mat4.create=function(){var t=new PIXI.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},PIXI.mat3.multiply=function(t,e,i){i||(i=t);var r=t[0],s=t[1],n=t[2],a=t[3],o=t[4],h=t[5],u=t[6],d=t[7],c=t[8],l=e[0],I=e[1],p=e[2],f=e[3],x=e[4],v=e[5],P=e[6],g=e[7],b=e[8];return i[0]=l*r+I*a+p*u,i[1]=l*s+I*o+p*d,i[2]=l*n+I*h+p*c,i[3]=f*r+x*a+v*u,i[4]=f*s+x*o+v*d,i[5]=f*n+x*h+v*c,i[6]=P*r+g*a+b*u,i[7]=P*s+g*o+b*d,i[8]=P*n+g*h+b*c,i},PIXI.mat3.toMat4=function(t,e){return e||(e=PIXI.mat4.create()),e[15]=1,e[14]=0,e[13]=0,e[12]=0,e[11]=0,e[10]=t[8],e[9]=t[7],e[8]=t[6],e[7]=0,e[6]=t[5],e[5]=t[4],e[4]=t[3],e[3]=0,e[2]=t[2],e[1]=t[1],e[0]=t[0],e},PIXI.mat4.create=function(){var t=new PIXI.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},PIXI.mat4.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],s=t[3],n=t[6],a=t[7],o=t[11];return t[1]=t[4],t[2]=t[8],t[3]=t[12],t[4]=i,t[6]=t[9],t[7]=t[13],t[8]=r,t[9]=n,t[11]=t[14],t[12]=s,t[13]=a,t[14]=o,t}return e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=t[1],e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=t[2],e[9]=t[6],e[10]=t[10],e[11]=t[14],e[12]=t[3],e[13]=t[7],e[14]=t[11],e[15]=t[15],e},PIXI.mat4.multiply=function(t,e,i){i||(i=t);var r=t[0],s=t[1],n=t[2],a=t[3],o=t[4],h=t[5],u=t[6],d=t[7],c=t[8],l=t[9],I=t[10],p=t[11],f=t[12],x=t[13],v=t[14],P=t[15],g=e[0],b=e[1],X=e[2],m=e[3];return i[0]=g*r+b*o+X*c+m*f,i[1]=g*s+b*h+X*l+m*x,i[2]=g*n+b*u+X*I+m*v,i[3]=g*a+b*d+X*p+m*P,g=e[4],b=e[5],X=e[6],m=e[7],i[4]=g*r+b*o+X*c+m*f,i[5]=g*s+b*h+X*l+m*x,i[6]=g*n+b*u+X*I+m*v,i[7]=g*a+b*d+X*p+m*P,g=e[8],b=e[9],X=e[10],m=e[11],i[8]=g*r+b*o+X*c+m*f,i[9]=g*s+b*h+X*l+m*x,i[10]=g*n+b*u+X*I+m*v,i[11]=g*a+b*d+X*p+m*P,g=e[12],b=e[13],X=e[14],m=e[15],i[12]=g*r+b*o+X*c+m*f,i[13]=g*s+b*h+X*l+m*x,i[14]=g*n+b*u+X*I+m*v,i[15]=g*a+b*d+X*p+m*P,i},PIXI.autoDetectRenderer=function(t,e,i,r){t||(t=800),e||(e=600);var s=function(){try{return!!window.WebGLRenderingContext&&!!document.createElement("canvas").getContext("experimental-webgl")}catch(t){return!1}}();return s?new PIXI.WebGLRenderer(t,e,i,r):new PIXI.CanvasRenderer(t,e,i,r)},PIXI.shaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * vColor;","}"],PIXI.shaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform mat4 uMVMatrix;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","gl_Position = uMVMatrix * vec4(aVertexPosition, 1.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],PIXI.CompileVertexShader=function(t,e){return PIXI._CompileShader(t,e,t.VERTEX_SHADER)},PIXI.CompileFragmentShader=function(t,e){return PIXI._CompileShader(t,e,t.FRAGMENT_SHADER)},PIXI._CompileShader=function(t,e,i){var r=e.join("\n"),s=t.createShader(i);return t.shaderSource(s,r),t.compileShader(s),t.getShaderParameter(s,t.COMPILE_STATUS)?s:(alert(t.getShaderInfoLog(s)),null)},PIXI._defaultFrame=new PIXI.Rectangle(0,0,1,1),PIXI.gl,PIXI.WebGLRenderer=function(t,e,i,r){this.transparent=!!r,this.width=t||800,this.height=e||600,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height;var s=this;this.view.addEventListener("webglcontextlost",function(t){s.handleContextLost(t)},!1),this.view.addEventListener("webglcontextrestored",function(t){s.handleContextRestored(t)},!1),this.batchs=[];try{PIXI.gl=this.gl=this.view.getContext("experimental-webgl",{alpha:this.transparent,antialias:!1,premultipliedAlpha:!0})}catch(n){throw Error(" This browser does not support webGL. Try using the canvas renderer"+this)}this.initShaders();var a=this.gl;PIXI.WebGLRenderer.gl=a,this.batch=new PIXI.WebGLBatch(a),a.disable(a.DEPTH_TEST),a.disable(a.CULL_FACE),a.enable(a.BLEND),a.colorMask(!0,!0,!0,this.transparent),this.projectionMatrix=PIXI.mat4.create(),this.resize(this.width,this.height),this.contextLost=!1,this.stageRenderGroup=new PIXI.WebGLRenderGroup(this.gl)},PIXI.WebGLRenderer.constructor=PIXI.WebGLRenderer,PIXI.WebGLRenderer.getBatch=function(){return 0==PIXI._batchs.length?new PIXI.WebGLBatch(PIXI.WebGLRenderer.gl):PIXI._batchs.pop()},PIXI.WebGLRenderer.returnBatch=function(t){t.clean(),PIXI._batchs.push(t)},PIXI.WebGLRenderer.prototype.initShaders=function(){var t=this.gl,e=PIXI.CompileFragmentShader(t,PIXI.shaderFragmentSrc),i=PIXI.CompileVertexShader(t,PIXI.shaderVertexSrc);PIXI.shaderProgram=t.createProgram();var r=PIXI.shaderProgram;t.attachShader(r,i),t.attachShader(r,e),t.linkProgram(r),t.getProgramParameter(r,t.LINK_STATUS)||alert("Could not initialise shaders"),t.useProgram(r),r.vertexPositionAttribute=t.getAttribLocation(r,"aVertexPosition"),t.enableVertexAttribArray(r.vertexPositionAttribute),r.textureCoordAttribute=t.getAttribLocation(r,"aTextureCoord"),t.enableVertexAttribArray(r.textureCoordAttribute),r.colorAttribute=t.getAttribLocation(r,"aColor"),t.enableVertexAttribArray(r.colorAttribute),r.mvMatrixUniform=t.getUniformLocation(r,"uMVMatrix"),r.samplerUniform=t.getUniformLocation(r,"uSampler")},PIXI.WebGLRenderer.prototype.render=function(t){if(!this.contextLost){this.__stage!==t&&(this.__stage=t,this.stageRenderGroup.setRenderable(t)),PIXI.WebGLRenderer.updateTextures(),t.updateTransform();var e=this.gl;if(e.colorMask(!0,!0,!0,this.transparent),e.viewport(0,0,this.width,this.height),e.bindFramebuffer(e.FRAMEBUFFER,null),e.clearColor(t.backgroundColorSplit[0],t.backgroundColorSplit[1],t.backgroundColorSplit[2],this.transparent),e.clear(e.COLOR_BUFFER_BIT),this.stageRenderGroup.backgroundColor=t.backgroundColorSplit,this.stageRenderGroup.render(this.projectionMatrix),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),PIXI.Texture.frameUpdates.length>0){for(var i=0;PIXI.Texture.frameUpdates.length>i;i++)PIXI.Texture.frameUpdates[i].updateFrame=!1;PIXI.Texture.frameUpdates=[]}}},PIXI.WebGLRenderer.updateTextures=function(){for(var t=0;PIXI.texturesToUpdate.length>t;t++)this.updateTexture(PIXI.texturesToUpdate[t]);for(var t=0;PIXI.texturesToDestroy.length>t;t++)this.destroyTexture(PIXI.texturesToDestroy[t]);PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[]},PIXI.WebGLRenderer.updateTexture=function(t){var e=PIXI.gl;t._glTexture||(t._glTexture=e.createTexture()),t.hasLoaded&&(e.bindTexture(e.TEXTURE_2D,t._glTexture),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t.source),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),t._powerOf2?(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT)):(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)),e.bindTexture(e.TEXTURE_2D,null))},PIXI.WebGLRenderer.prototype.destroyTexture=function(t){var e=this.gl;t._glTexture&&(t._glTexture=e.createTexture(),e.deleteTexture(e.TEXTURE_2D,t._glTexture))},PIXI.WebGLRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e,this.gl.viewport(0,0,this.width,this.height);var i=this.projectionMatrix;i[0]=2/this.width,i[5]=-2/this.height,i[12]=-1,i[13]=1},PIXI.WebGLRenderer.prototype.handleContextLost=function(t){t.preventDefault(),this.contextLost=!0},PIXI.WebGLRenderer.prototype.handleContextRestored=function(){this.gl=this.view.getContext("experimental-webgl",{alpha:!0}),this.initShaders();for(var t=0;PIXI.TextureCache.length>t;t++)this.updateTexture(PIXI.TextureCache[t]);for(var t=0;this.batchs.length>t;t++)this.batchs[t].restoreLostContext(this.gl),this.batchs[t].dirty=!0;PIXI._restoreBatchs(this.gl),this.contextLost=!1},PIXI._batchs=[],PIXI._getBatch=function(t){return 0==PIXI._batchs.length?new PIXI.WebGLBatch(t):PIXI._batchs.pop()},PIXI._returnBatch=function(t){t.clean(),PIXI._batchs.push(t)},PIXI._restoreBatchs=function(t){for(var e=0;PIXI._batchs.length>e;e++)PIXI._batchs[e].restoreLostContext(t)},PIXI.WebGLBatch=function(t){this.gl=t,this.size=0,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer(),this.blendMode=PIXI.blendModes.NORMAL,this.dynamicSize=1},PIXI.WebGLBatch.constructor=PIXI.WebGLBatch,PIXI.WebGLBatch.prototype.clean=function(){this.verticies=[],this.uvs=[],this.indices=[],this.colors=[],this.dynamicSize=1,this.texture=null,this.last=null,this.size=0,this.head,this.tail},PIXI.WebGLBatch.prototype.restoreLostContext=function(t){this.gl=t,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer()},PIXI.WebGLBatch.prototype.init=function(t){t.batch=this,this.dirty=!0,this.blendMode=t.blendMode,this.texture=t.texture.baseTexture,this.head=t,this.tail=t,this.size=1,this.growBatch()},PIXI.WebGLBatch.prototype.insertBefore=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__prev;e.__prev=t,t.__next=e,i?(t.__prev=i,i.__next=t):this.head=t},PIXI.WebGLBatch.prototype.insertAfter=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__next;e.__next=t,t.__prev=e,i?(t.__next=i,i.__prev=t):this.tail=t},PIXI.WebGLBatch.prototype.remove=function(t){return this.size--,0==this.size?(t.batch=null,t.__prev=null,t.__next=null,void 0):(t.__prev?t.__prev.__next=t.__next:(this.head=t.__next,this.head.__prev=null),t.__next?t.__next.__prev=t.__prev:(this.tail=t.__prev,this.tail.__next=null),t.batch=null,t.__next=null,t.__prev=null,this.dirty=!0,void 0)},PIXI.WebGLBatch.prototype.split=function(t){this.dirty=!0;var e=new PIXI.WebGLBatch(this.gl);e.init(t),e.tail=this.tail,this.tail=t.__prev,this.tail.__next=null,t.__prev=null;for(var i=0;t;)i++,t.batch=e,t=t.__next;return e.size=i,this.size-=i,e},PIXI.WebGLBatch.prototype.merge=function(t){this.dirty=!0,this.tail.__next=t.head,t.head.__prev=this.tail,this.size+=t.size,this.tail=t.tail;for(var e=t.head;e;)e.batch=this,e=e.__next},PIXI.WebGLBatch.prototype.growBatch=function(){var t=this.gl;this.dynamicSize=1==this.size?1:1.5*this.size,this.verticies=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.vertexBuffer),t.bufferData(t.ARRAY_BUFFER,this.verticies,t.DYNAMIC_DRAW),this.uvs=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.uvBuffer),t.bufferData(t.ARRAY_BUFFER,this.uvs,t.DYNAMIC_DRAW),this.dirtyUVS=!0,this.colors=new Float32Array(4*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.colorBuffer),t.bufferData(t.ARRAY_BUFFER,this.colors,t.DYNAMIC_DRAW),this.dirtyColors=!0,this.indices=new Uint16Array(6*this.dynamicSize);for(var e=this.indices.length/6,i=0;e>i;i++){var r=6*i,s=4*i;this.indices[r+0]=s+0,this.indices[r+1]=s+1,this.indices[r+2]=s+2,this.indices[r+3]=s+0,this.indices[r+4]=s+2,this.indices[r+5]=s+3}t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,this.indexBuffer),t.bufferData(t.ELEMENT_ARRAY_BUFFER,this.indices,t.STATIC_DRAW)},PIXI.WebGLBatch.prototype.refresh=function(){this.gl,this.dynamicSizer;r++)i=this.batchs[r],i instanceof PIXI.WebGLBatch?this.batchs[r].render():i instanceof PIXI.TilingSprite?i.visible&&this.renderTilingSprite(i,t):i instanceof PIXI.Strip&&i.visible&&this.renderStrip(i,t)},PIXI.WebGLRenderGroup.prototype.renderSpecific=function(t,e){PIXI.WebGLRenderer.updateTextures();var i=this.gl;this.checkVisibility(t,t.visible),i.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform,!1,e);var r,s,n,a,o=t.renderable?t:this.getNextRenderable(t),h=o.batch;if(o instanceof PIXI.Sprite){h=o.batch;var u=h.head;if(u==o)r=0;else for(r=1;u.__next!=o;)r++,u=u.__next}else h=o;for(var d,c=t,l=t;l.children.length>0;)l=l.children[l.children.length-1],l.renderable&&(c=l);if(c instanceof PIXI.Sprite){d=c.batch;var u=d.head;if(u==c)n=0;else for(n=1;u.__next!=c;)n++,u=u.__next}else d=c;if(h==d)return h instanceof PIXI.WebGLBatch?h.render(r,n+1):h instanceof PIXI.TilingSprite?h.visible&&this.renderTilingSprite(h,e):h instanceof PIXI.Strip?h.visible&&this.renderStrip(h,e):h instanceof PIXI.CustomRenderable&&h.visible&&h.renderWebGL(this,e),void 0;s=this.batchs.indexOf(h),a=this.batchs.indexOf(d),h instanceof PIXI.WebGLBatch?h.render(r):h instanceof PIXI.TilingSprite?h.visible&&this.renderTilingSprite(h,e):h instanceof PIXI.Strip?h.visible&&this.renderStrip(h,e):h instanceof PIXI.CustomRenderable&&h.visible&&h.renderWebGL(this,e);for(var I=s+1;a>I;I++)renderable=this.batchs[I],renderable instanceof PIXI.WebGLBatch?this.batchs[I].render():renderable instanceof PIXI.TilingSprite?renderable.visible&&this.renderTilingSprite(renderable,e):renderable instanceof PIXI.Strip?renderable.visible&&this.renderStrip(renderable,e):renderable instanceof PIXI.CustomRenderable&&renderable.visible&&renderable.renderWebGL(this,e);d instanceof PIXI.WebGLBatch?d.render(0,n+1):d instanceof PIXI.TilingSprite?d.visible&&this.renderTilingSprite(d):d instanceof PIXI.Strip?d.visible&&this.renderStrip(d):d instanceof PIXI.CustomRenderable&&d.visible&&d.renderWebGL(this,e)},PIXI.WebGLRenderGroup.prototype.checkVisibility=function(t,e){for(var i=t.children,r=0;i.length>r;r++){var s=i[r];s.worldVisible=s.visible&&e,s.textureChange&&(s.textureChange=!1,s.worldVisible&&(this.removeDisplayObject(s),this.addDisplayObject(s))),s.children.length>0&&this.checkVisibility(s,s.worldVisible)}},PIXI.WebGLRenderGroup.prototype.addDisplayObject=function(t){if(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.__renderGroup=this,t.renderable){var e=this.getPreviousRenderable(t),i=this.getNextRenderable(t);if(t instanceof PIXI.Sprite){var r,s;if(e instanceof PIXI.Sprite){if(r=e.batch,r&&r.texture==t.texture.baseTexture&&r.blendMode==t.blendMode)return r.insertAfter(t,e),void 0}else r=e;if(i)if(i instanceof PIXI.Sprite){if(s=i.batch){if(s.texture==t.texture.baseTexture&&s.blendMode==t.blendMode)return s.insertBefore(t,i),void 0;if(s==r){var n=r.split(i),a=PIXI.WebGLRenderer.getBatch(),o=this.batchs.indexOf(r);return a.init(t),this.batchs.splice(o+1,0,a,n),void 0}}}else s=i;var a=PIXI.WebGLRenderer.getBatch();if(a.init(t),r){var o=this.batchs.indexOf(r);this.batchs.splice(o+1,0,a)}else this.batchs.push(a)}else t instanceof PIXI.TilingSprite?(this.initTilingSprite(t),this.batchs.push(t)):t instanceof PIXI.Strip&&(this.initStrip(t),this.batchs.push(t));this.batchUpdate=!0}},PIXI.WebGLRenderGroup.prototype.addDisplayObjectAndChildren=function(t){this.addDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.addDisplayObjectAndChildren(e[i])},PIXI.WebGLRenderGroup.prototype.removeDisplayObject=function(t){if(t.__renderGroup=null,t.renderable){var e;if(t instanceof PIXI.Sprite){var i=t.batch;if(!i)return;i.remove(t),0==i.size&&(e=i)}else e=t;if(e){var r=this.batchs.indexOf(e);if(-1==r)return;if(0==r||r==this.batchs.length-1)return this.batchs.splice(r,1),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e),void 0;if(this.batchs[r-1]instanceof PIXI.WebGLBatch&&this.batchs[r+1]instanceof PIXI.WebGLBatch&&this.batchs[r-1].texture==this.batchs[r+1].texture&&this.batchs[r-1].blendMode==this.batchs[r+1].blendMode)return this.batchs[r-1].merge(this.batchs[r+1]),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e),PIXI.WebGLRenderer.returnBatch(this.batchs[r+1]),this.batchs.splice(r,2),void 0;this.batchs.splice(r,1),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e)}}},PIXI.WebGLRenderGroup.prototype.removeDisplayObjectAndChildren=function(t){if(t.__renderGroup==this){this.removeDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.removeDisplayObjectAndChildren(e[i])}},PIXI.WebGLRenderGroup.prototype.getNextRenderable=function(t){var e=t;do{if(0==e.children.length){if(!e.parent)return null;for(;e.childIndex==e.parent.children.length-1;)if(e=e.parent,e==this.root||!e.parent){e=null;break}e&&(e=e.parent.children[e.childIndex+1])}else e=e.children[0];if(!e)break}while(!e.renderable||!e.__renderGroup);return e},PIXI.WebGLRenderGroup.prototype.getPreviousRenderable=function(t){var e=t;do{if(0==e.childIndex){if(e=e.parent,!e)return null}else for(e=e.parent.children[e.childIndex-1];0!=e.children.length;)e=e.children[e.children.length-1];if(e==this.root)break}while(!e.renderable||!e.__renderGroup);return e},PIXI.WebGLRenderGroup.prototype.initTilingSprite=function(t){var e=this.gl;t.verticies=new Float32Array([0,0,t.width,0,t.width,t.height,0,t.height]),t.uvs=new Float32Array([0,0,1,0,1,1,0,1]),t.colors=new Float32Array([1,1,1,1]),t.indices=new Uint16Array([0,1,3,2]),t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW),t.texture.baseTexture._glTexture?(e.bindTexture(e.TEXTURE_2D,t.texture.baseTexture._glTexture),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT),t.texture.baseTexture._powerOf2=!0):t.texture.baseTexture._powerOf2=!0},PIXI.WebGLRenderGroup.prototype.renderStrip=function(t,e){var i=this.gl,r=PIXI.shaderProgram,s=PIXI.mat3.toMat4(t.worldTransform);PIXI.mat4.transpose(s),PIXI.mat4.multiply(e,s,s),i.uniformMatrix4fv(r.mvMatrixUniform,!1,s),t.blendMode==PIXI.blendModes.NORMAL?i.blendFunc(i.ONE,i.ONE_MINUS_SRC_ALPHA):i.blendFunc(i.ONE,i.ONE_MINUS_SRC_COLOR),t.dirty?(t.dirty=!1,i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferData(i.ARRAY_BUFFER,t.verticies,i.STATIC_DRAW),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferData(i.ARRAY_BUFFER,t.uvs,i.STATIC_DRAW),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.bufferData(i.ARRAY_BUFFER,t.colors,i.STATIC_DRAW),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer),i.bufferData(i.ELEMENT_ARRAY_BUFFER,t.indices,i.STATIC_DRAW)):(i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.verticies),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer)),i.drawElements(i.TRIANGLE_STRIP,t.indices.length,i.UNSIGNED_SHORT,0),i.uniformMatrix4fv(r.mvMatrixUniform,!1,e)},PIXI.WebGLRenderGroup.prototype.renderTilingSprite=function(t,e){var i=this.gl;PIXI.shaderProgram;var r=t.tilePosition,s=t.tileScale,n=r.x/t.texture.baseTexture.width,a=r.y/t.texture.baseTexture.height,o=t.width/t.texture.baseTexture.width/s.x,h=t.height/t.texture.baseTexture.height/s.y;t.uvs[0]=0-n,t.uvs[1]=0-a,t.uvs[2]=1*o-n,t.uvs[3]=0-a,t.uvs[4]=1*o-n,t.uvs[5]=1*h-a,t.uvs[6]=0-n,t.uvs[7]=1*h-a,i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.uvs),this.renderStrip(t,e)},PIXI.WebGLRenderer.prototype.initStrip=function(t){var e=this.gl;this.shaderProgram,t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW)},PIXI.CanvasRenderer=function(t,e,i,r){this.transparent=r,this.width=t||800,this.height=e||600,this.refresh=!0,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height,this.count=0,this.context=this.view.getContext("2d")},PIXI.CanvasRenderer.constructor=PIXI.CanvasRenderer,PIXI.CanvasRenderer.prototype.render=function(t){PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[],t.updateTransform(),this.view.style.backgroundColor==t.backgroundColorString||this.transparent||(this.view.style.backgroundColor=t.backgroundColorString),this.context.setTransform(1,0,0,1,0,0),this.context.clearRect(0,0,this.width,this.height),this.renderDisplayObject(t),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),PIXI.Texture.frameUpdates.length>0&&(PIXI.Texture.frameUpdates=[])},PIXI.CanvasRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e},PIXI.CanvasRenderer.prototype.renderDisplayObject=function(t){var e=t.worldTransform,i=this.context;if(t.visible){if(t instanceof PIXI.Sprite){var r=t.texture.frame;r&&(i.globalAlpha=t.worldAlpha,i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),i.drawImage(t.texture.baseTexture.source,r.x,r.y,r.width,r.height,t.anchor.x*-r.width,t.anchor.y*-r.height,r.width,r.height))}else t instanceof PIXI.Strip?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderStrip(t)):t instanceof PIXI.TilingSprite?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderTilingSprite(t)):t instanceof PIXI.CustomRenderable&&t.renderCanvas(this);for(var s=0;t.children.length>s;s++)this.renderDisplayObject(t.children[s]);this.context.setTransform(1,0,0,1,0,0)}},PIXI.CanvasRenderer.prototype.renderStripFlat=function(t){var e=this.context,i=t.verticies;t.uvs;var r=i.length/2;this.count++,e.beginPath();for(var s=1;r-2>s;s++){var n=2*s,a=i[n],o=i[n+2],h=i[n+4],u=i[n+1],d=i[n+3],c=i[n+5];e.moveTo(a,u),e.lineTo(o,d),e.lineTo(h,c)}e.fillStyle="#FF0000",e.fill(),e.closePath()},PIXI.CanvasRenderer.prototype.renderTilingSprite=function(t){var e=this.context;t.__tilePattern||(t.__tilePattern=e.createPattern(t.texture.baseTexture.source,"repeat")),e.beginPath();var i=t.tilePosition,r=t.tileScale;e.scale(r.x,r.y),e.translate(i.x,i.y),e.fillStyle=t.__tilePattern,e.fillRect(-i.x,-i.y,t.width/r.x,t.height/r.y),e.scale(1/r.x,1/r.y),e.translate(-i.x,-i.y),e.closePath()},PIXI.CanvasRenderer.prototype.renderStrip=function(t){var e=this.context,i=t.verticies,r=t.uvs,s=i.length/2;this.count++;for(var n=1;s-2>n;n++){var a=2*n,o=i[a],h=i[a+2],u=i[a+4],d=i[a+1],c=i[a+3],l=i[a+5],I=r[a]*t.texture.width,p=r[a+2]*t.texture.width,f=r[a+4]*t.texture.width,x=r[a+1]*t.texture.height,v=r[a+3]*t.texture.height,P=r[a+5]*t.texture.height;e.save(),e.beginPath(),e.moveTo(o,d),e.lineTo(h,c),e.lineTo(u,l),e.closePath(),e.clip();var g=I*v+x*f+p*P-v*f-x*p-I*P,b=o*v+x*u+h*P-v*u-x*h-o*P,X=I*h+o*f+p*u-h*f-o*p-I*u,m=I*v*u+x*h*f+o*p*P-o*v*f-x*p*u-I*h*P,T=d*v+x*l+c*P-v*l-x*c-d*P,y=I*c+d*f+p*l-c*f-d*p-I*l,_=I*v*l+x*c*f+d*p*P-d*v*f-x*p*l-I*c*P;e.transform(b/g,T/g,X/g,y/g,m/g,_/g),e.drawImage(t.texture.baseTexture.source,0,0),e.restore()}},PIXI.Strip=function(t,e,i){PIXI.DisplayObjectContainer.call(this),this.texture=t,this.blendMode=PIXI.blendModes.NORMAL;try{this.uvs=new Float32Array([0,1,1,1,1,0,0,1]),this.verticies=new Float32Array([0,0,0,0,0,0,0,0,0]),this.colors=new Float32Array([1,1,1,1]),this.indices=new Uint16Array([0,1,2,3])}catch(r){this.uvs=[0,1,1,1,1,0,0,1],this.verticies=[0,0,0,0,0,0,0,0,0],this.colors=[1,1,1,1],this.indices=[0,1,2,3]}this.width=e,this.height=i,t.baseTexture.hasLoaded?(this.width=this.texture.frame.width,this.height=this.texture.frame.height,this.updateFrame=!0):(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},PIXI.Strip.constructor=PIXI.Strip,PIXI.Strip.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Strip.prototype.setTexture=function(t){this.texture=t,this.width=t.frame.width,this.height=t.frame.height,this.updateFrame=!0},PIXI.Strip.prototype.onTextureUpdate=function(){this.updateFrame=!0},PIXI.Rope=function(t,e){PIXI.Strip.call(this,t),this.points=e;try{this.verticies=new Float32Array(4*e.length),this.uvs=new Float32Array(4*e.length),this.colors=new Float32Array(2*e.length),this.indices=new Uint16Array(2*e.length)}catch(i){this.verticies=verticies,this.uvs=uvs,this.colors=colors,this.indices=indices}this.refresh()},PIXI.Rope.constructor=PIXI.Rope,PIXI.Rope.prototype=Object.create(PIXI.Strip.prototype),PIXI.Rope.prototype.refresh=function(){var t=this.points;if(!(1>t.length)){var e=this.uvs,i=this.indices,r=this.colors,s=t[0],n=t[0];this.count-=.2,e[0]=0,e[1]=1,e[2]=0,e[3]=1,r[0]=1,r[1]=1,i[0]=0,i[1]=1;for(var a=t.length,o=1;a>o;o++){var n=t[o],h=4*o,u=o/(a-1);o%2?(e[h]=u,e[h+1]=0,e[h+2]=u,e[h+3]=1):(e[h]=u,e[h+1]=0,e[h+2]=u,e[h+3]=1),h=2*o,r[h]=1,r[h+1]=1,h=2*o,i[h]=h,i[h+1]=h+1,s=n}}},PIXI.Rope.prototype.updateTransform=function(){var t=this.points;if(!(1>t.length)){var e,i=this.verticies,r=t[0],s={x:0,y:0},n=t[0];this.count-=.2,i[0]=n.x+s.x,i[1]=n.y+s.y,i[2]=n.x-s.x,i[3]=n.y-s.y;for(var a=t.length,o=1;a>o;o++){var n=t[o],h=4*o;e=t.length-1>o?t[o+1]:n,s.y=-(e.x-r.x),s.x=e.y-r.y;var u=10*(1-o/(a-1));u>1&&(u=1);var d=Math.sqrt(s.x*s.x+s.y*s.y),c=this.texture.height/2;s.x/=d,s.y/=d,s.x*=c,s.y*=c,i[h]=n.x+s.x,i[h+1]=n.y+s.y,i[h+2]=n.x-s.x,i[h+3]=n.y-s.y,r=n}PIXI.DisplayObjectContainer.prototype.updateTransform.call(this)}},PIXI.Rope.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0},PIXI.TilingSprite=function(t,e,i){PIXI.DisplayObjectContainer.call(this),this.texture=t,this.width=e,this.height=i,this.renderable=!0,this.tileScale=new PIXI.Point(1,1),this.tilePosition=new PIXI.Point(0,0),this.blendMode=PIXI.blendModes.NORMAL},PIXI.TilingSprite.constructor=PIXI.TilingSprite,PIXI.TilingSprite.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.TilingSprite.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0},PIXI.TilingSprite.prototype.onTextureUpdate=function(){this.updateFrame=!0},PIXI.CustomRenderable=function(){PIXI.DisplayObject.call(this)},PIXI.CustomRenderable.constructor=PIXI.CustomRenderable,PIXI.CustomRenderable.prototype=Object.create(PIXI.DisplayObject.prototype),PIXI.CustomRenderable.prototype.renderCanvas=function(){},PIXI.CustomRenderable.prototype.initWebGL=function(){},PIXI.CustomRenderable.prototype.renderWebGL=function(){},PIXI.BaseTextureCache={},PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[],PIXI.BaseTexture=function(t){if(PIXI.EventTarget.call(this),this.width=100,this.height=100,this.source=t,t){if(this.source instanceof Image)if(this.source.complete)this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,PIXI.texturesToUpdate.push(this);else{var e=this;this.source.onload=function(){e.hasLoaded=!0,e.width=e.source.width,e.height=e.source.height,PIXI.texturesToUpdate.push(e),e.dispatchEvent({type:"loaded",content:e})}}else this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,PIXI.texturesToUpdate.push(this);this._powerOf2=!1}},PIXI.BaseTexture.constructor=PIXI.BaseTexture,PIXI.BaseTexture.prototype.destroy=function(){this.source instanceof Image&&(this.source.src=null),this.source=null,PIXI.texturesToDestroy.push(this)},PIXI.BaseTexture.fromImage=function(t,e){var i=PIXI.BaseTextureCache[t];if(!i){var r=new Image;e&&(r.crossOrigin=""),r.src=t,i=new PIXI.BaseTexture(r),PIXI.BaseTextureCache[t]=i}return i},PIXI.TextureCache={},PIXI.FrameCache={},PIXI.Texture=function(t,e){if(PIXI.EventTarget.call(this),e||(this.noFrame=!0,e=new PIXI.Rectangle(0,0,1,1)),this.trim=new PIXI.Point,t instanceof PIXI.Texture&&(t=t.baseTexture),this.baseTexture=t,this.frame=e,this.scope=this,t.hasLoaded)this.noFrame&&(e=new PIXI.Rectangle(0,0,t.width,t.height)),this.setFrame(e);else{var i=this;t.addEventListener("loaded",function(){i.onBaseTextureLoaded()})}},PIXI.Texture.constructor=PIXI.Texture,PIXI.Texture.prototype.onBaseTextureLoaded=function(){var t=this.baseTexture;t.removeEventListener("loaded",this.onLoaded),this.noFrame&&(this.frame=new PIXI.Rectangle(0,0,t.width,t.height)),this.noFrame=!1,this.width=this.frame.width,this.height=this.frame.height,this.scope.dispatchEvent({type:"update",content:this})},PIXI.Texture.prototype.destroy=function(t){t&&this.baseTexture.destroy()},PIXI.Texture.prototype.setFrame=function(t){if(this.frame=t,this.width=t.width,this.height=t.height,t.x+t.width>this.baseTexture.width||t.y+t.height>this.baseTexture.height)throw Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);this.updateFrame=!0,PIXI.Texture.frameUpdates.push(this)},PIXI.Texture.fromImage=function(t,e){var i=PIXI.TextureCache[t];return i||(i=new PIXI.Texture(PIXI.BaseTexture.fromImage(t,e)),PIXI.TextureCache[t]=i),i},PIXI.Texture.fromFrame=function(t){var e=PIXI.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache "+this);return e},PIXI.Texture.fromCanvas=function(t){var e=new PIXI.BaseTexture(t);return new PIXI.Texture(e)},PIXI.Texture.addTextureToCache=function(t,e){PIXI.TextureCache[e]=t},PIXI.Texture.removeTextureFromCache=function(t){var e=PIXI.TextureCache[t];return PIXI.TextureCache[t]=null,e},PIXI.Texture.frameUpdates=[],PIXI.RenderTexture=function(t,e){PIXI.EventTarget.call(this),this.width=t||100,this.height=e||100,this.indetityMatrix=PIXI.mat3.create(),this.frame=new PIXI.Rectangle(0,0,this.width,this.height),PIXI.gl?this.initWebGL():this.initCanvas()},PIXI.RenderTexture.constructor=PIXI.RenderTexture,PIXI.RenderTexture.prototype=Object.create(PIXI.Texture.prototype),PIXI.RenderTexture.prototype.initWebGL=function(){var t=PIXI.gl;this.glFramebuffer=t.createFramebuffer(),t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),this.glFramebuffer.width=this.width,this.glFramebuffer.height=this.height,this.baseTexture=new PIXI.BaseTexture,this.baseTexture.width=this.width,this.baseTexture.height=this.height,this.baseTexture._glTexture=t.createTexture(),t.bindTexture(t.TEXTURE_2D,this.baseTexture._glTexture),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,this.width,this.height,0,t.RGBA,t.UNSIGNED_BYTE,null),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),this.baseTexture.isRender=!0,t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,this.baseTexture._glTexture,0),this.projectionMatrix=PIXI.mat4.create(),this.projectionMatrix[5]=2/this.height,this.projectionMatrix[13]=-1,this.projectionMatrix[0]=2/this.width,this.projectionMatrix[12]=-1,this.render=this.renderWebGL},PIXI.RenderTexture.prototype.initCanvas=function(){this.renderer=new PIXI.CanvasRenderer(this.width,this.height,null,0),this.baseTexture=new PIXI.BaseTexture(this.renderer.view),this.frame=new PIXI.Rectangle(0,0,this.width,this.height),this.render=this.renderCanvas},PIXI.RenderTexture.prototype.renderWebGL=function(t,e){var i=PIXI.gl;i.colorMask(!0,!0,!0,!0),i.viewport(0,0,this.width,this.height),i.bindFramebuffer(i.FRAMEBUFFER,this.glFramebuffer),e&&(i.clearColor(0,0,0,0),i.clear(i.COLOR_BUFFER_BIT));var r=t.children;t.worldTransform=PIXI.mat3.create();for(var s=0,n=r.length;n>s;s++)r[s].updateTransform();var a=t.__renderGroup;a?t==a.root?a.render(this.projectionMatrix):a.renderSpecific(t,this.projectionMatrix):(this.renderGroup||(this.renderGroup=new PIXI.WebGLRenderGroup(i)),this.renderGroup.setRenderable(t),this.renderGroup.render(this.projectionMatrix))},PIXI.RenderTexture.prototype.renderCanvas=function(t,e){var i=t.children;t.worldTransform=PIXI.mat3.create();for(var r=0,s=i.length;s>r;r++)i[r].updateTransform();e&&this.renderer.context.clearRect(0,0,this.width,this.height),this.renderer.renderDisplayObject(t),PIXI.texturesToUpdate.push(this.baseTexture)},PIXI.AssetLoader=function(t){PIXI.EventTarget.call(this),this.assetURLs=t,this.crossorigin=!1,this.loadersByType={jpg:PIXI.ImageLoader,jpeg:PIXI.ImageLoader,png:PIXI.ImageLoader,gif:PIXI.ImageLoader,json:PIXI.SpriteSheetLoader,xml:PIXI.BitmapFontLoader,fnt:PIXI.BitmapFontLoader}},PIXI.AssetLoader.constructor=PIXI.AssetLoader,PIXI.AssetLoader.prototype.load=function(){var t=this;this.loadCount=this.assetURLs.length;for(var e=0;this.assetURLs.length>e;e++){var i=this.assetURLs[e],r=i.split(".").pop().toLowerCase(),s=this.loadersByType[r];if(!s)throw Error(r+" is an unsupported file type");var n=new s(i,this.crossorigin);n.addEventListener("loaded",function(){t.onAssetLoaded()}),n.load()}},PIXI.AssetLoader.prototype.onAssetLoaded=function(){this.loadCount--,this.dispatchEvent({type:"onProgress",content:this}),this.onProgress&&this.onProgress(),0==this.loadCount&&(this.dispatchEvent({type:"onComplete",content:this}),this.onComplete&&this.onComplete())},PIXI.SpriteSheetLoader=function(t,e){PIXI.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.frames={},this.crossorigin=e},PIXI.SpriteSheetLoader.constructor=PIXI.SpriteSheetLoader,PIXI.SpriteSheetLoader.prototype.load=function(){this.ajaxRequest=new AjaxRequest;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onJSONLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/json"),this.ajaxRequest.send(null)},PIXI.SpriteSheetLoader.prototype.onJSONLoaded=function(){if(4==this.ajaxRequest.readyState&&(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))){var jsonData=eval("("+this.ajaxRequest.responseText+")"),textureUrl=this.baseUrl+jsonData.meta.image,image=new PIXI.ImageLoader(textureUrl,this.crossorigin);this.texture=image.texture.baseTexture;var scope=this;image.addEventListener("loaded",function(){scope.onLoaded()});var frameData=jsonData.frames;for(var i in frameData){var rect=frameData[i].frame;rect&&(PIXI.TextureCache[i]=new PIXI.Texture(this.texture,{x:rect.x,y:rect.y,width:rect.w,height:rect.h}),frameData[i].trimmed&&(PIXI.TextureCache[i].realSize=frameData[i].spriteSourceSize,PIXI.TextureCache[i].trim.x=0))}image.load()}},PIXI.SpriteSheetLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},PIXI.ImageLoader=function(t,e){PIXI.EventTarget.call(this),this.texture=PIXI.Texture.fromImage(t,e)},PIXI.ImageLoader.constructor=PIXI.ImageLoader,PIXI.ImageLoader.prototype.load=function(){if(this.texture.baseTexture.hasLoaded)this.onLoaded();else{var t=this;this.texture.baseTexture.addEventListener("loaded",function(){t.onLoaded()})}},PIXI.ImageLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},PIXI.BitmapFontLoader=function(t,e){PIXI.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.crossorigin=e},PIXI.BitmapFontLoader.constructor=PIXI.BitmapFontLoader,PIXI.BitmapFontLoader.prototype.load=function(){this.ajaxRequest=new XMLHttpRequest;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onXMLLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/xml"),this.ajaxRequest.send(null)},PIXI.BitmapFontLoader.prototype.onXMLLoaded=function(){if(4==this.ajaxRequest.readyState&&(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))){var t=this.baseUrl+this.ajaxRequest.responseXML.getElementsByTagName("page")[0].attributes.getNamedItem("file").nodeValue,e=new PIXI.ImageLoader(t,this.crossorigin);this.texture=e.texture.baseTexture;var i={},r=this.ajaxRequest.responseXML.getElementsByTagName("info")[0],s=this.ajaxRequest.responseXML.getElementsByTagName("common")[0];i.font=r.attributes.getNamedItem("face").nodeValue,i.size=parseInt(r.attributes.getNamedItem("size").nodeValue,10),i.lineHeight=parseInt(s.attributes.getNamedItem("lineHeight").nodeValue,10),i.chars={};for(var n=this.ajaxRequest.responseXML.getElementsByTagName("char"),a=0;n.length>a;a++){var o=parseInt(n[a].attributes.getNamedItem("id").nodeValue,10),h={x:parseInt(n[a].attributes.getNamedItem("x").nodeValue,10),y:parseInt(n[a].attributes.getNamedItem("y").nodeValue,10),width:parseInt(n[a].attributes.getNamedItem("width").nodeValue,10),height:parseInt(n[a].attributes.getNamedItem("height").nodeValue,10)};PIXI.TextureCache[o]=new PIXI.Texture(this.texture,h),i.chars[o]={xOffset:parseInt(n[a].attributes.getNamedItem("xoffset").nodeValue,10),yOffset:parseInt(n[a].attributes.getNamedItem("yoffset").nodeValue,10),xAdvance:parseInt(n[a].attributes.getNamedItem("xadvance").nodeValue,10),kerning:{}}}var u=this.ajaxRequest.responseXML.getElementsByTagName("kerning");for(a=0;u.length>a;a++){var d=parseInt(u[a].attributes.getNamedItem("first").nodeValue,10),c=parseInt(u[a].attributes.getNamedItem("second").nodeValue,10),l=parseInt(u[a].attributes.getNamedItem("amount").nodeValue,10);i.chars[c].kerning[d]=l}PIXI.BitmapText.fonts[i.font]=i;var I=this;e.addEventListener("loaded",function(){I.onLoaded()}),e.load()}},PIXI.BitmapFontLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=PIXI),exports.PIXI=PIXI):root.PIXI=PIXI}).call(this); \ No newline at end of file diff --git a/docs/classes/WebGLRenderer.html b/docs/classes/WebGLRenderer.html index 581cb5a..fcef6b6 100644 --- a/docs/classes/WebGLRenderer.html +++ b/docs/classes/WebGLRenderer.html @@ -498,7 +498,7 @@ - src/pixi/renderers/WebGLRenderer.js:283 + src/pixi/renderers/WebGLRenderer.js:284

diff --git a/docs/data.json b/docs/data.json index 9b4a49d..4b27831 100644 --- a/docs/data.json +++ b/docs/data.json @@ -1388,35 +1388,35 @@ }, { "file": "src/pixi/renderers/WebGLRenderGroup.js", - "line": 523, + "line": 527, "access": "private", "tagname": "", "class": "WebGLBatch" }, { "file": "src/pixi/renderers/WebGLRenderGroup.js", - "line": 607, + "line": 613, "access": "private", "tagname": "", "class": "WebGLBatch" }, { "file": "src/pixi/renderers/WebGLRenderGroup.js", - "line": 663, + "line": 669, "access": "private", "tagname": "", "class": "WebGLBatch" }, { "file": "src/pixi/renderers/WebGLRenderGroup.js", - "line": 740, + "line": 746, "access": "private", "tagname": "", "class": "WebGLBatch" }, { "file": "src/pixi/renderers/WebGLRenderGroup.js", - "line": 777, + "line": 783, "access": "private", "tagname": "", "class": "WebGLBatch" @@ -1465,14 +1465,14 @@ }, { "file": "src/pixi/renderers/WebGLRenderer.js", - "line": 232, + "line": 225, "access": "private", "tagname": "", "class": "WebGLRenderer" }, { "file": "src/pixi/renderers/WebGLRenderer.js", - "line": 283, + "line": 284, "description": "resizes the webGL view to the specified width and height", "itemtype": "method", "name": "resize", @@ -1492,14 +1492,14 @@ }, { "file": "src/pixi/renderers/WebGLRenderer.js", - "line": 307, + "line": 308, "access": "private", "tagname": "", "class": "WebGLRenderer" }, { "file": "src/pixi/renderers/WebGLRenderer.js", - "line": 316, + "line": 317, "access": "private", "tagname": "", "class": "WebGLRenderer" @@ -2908,23 +2908,23 @@ }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderGroup.js:523" + "line": " src/pixi/renderers/WebGLRenderGroup.js:527" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderGroup.js:607" + "line": " src/pixi/renderers/WebGLRenderGroup.js:613" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderGroup.js:663" + "line": " src/pixi/renderers/WebGLRenderGroup.js:669" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderGroup.js:740" + "line": " src/pixi/renderers/WebGLRenderGroup.js:746" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderGroup.js:777" + "line": " src/pixi/renderers/WebGLRenderGroup.js:783" }, { "message": "Missing item type", @@ -2944,15 +2944,15 @@ }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderer.js:232" + "line": " src/pixi/renderers/WebGLRenderer.js:225" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderer.js:307" + "line": " src/pixi/renderers/WebGLRenderer.js:308" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderer.js:316" + "line": " src/pixi/renderers/WebGLRenderer.js:317" }, { "message": "Missing item type", diff --git a/docs/files/src_pixi_renderers_WebGLRenderGroup.js.html b/docs/files/src_pixi_renderers_WebGLRenderGroup.js.html index 7222602..42bcabd 100644 --- a/docs/files/src_pixi_renderers_WebGLRenderGroup.js.html +++ b/docs/files/src_pixi_renderers_WebGLRenderGroup.js.html @@ -177,6 +177,8 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + //PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. @@ -215,6 +217,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + //PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -683,7 +687,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/docs/files/src_pixi_renderers_WebGLRenderer.js.html b/docs/files/src_pixi_renderers_WebGLRenderer.js.html index 0383c4d..551dd19 100644 --- a/docs/files/src_pixi_renderers_WebGLRenderer.js.html +++ b/docs/files/src_pixi_renderers_WebGLRenderer.js.html @@ -306,15 +306,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -366,9 +359,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -400,7 +402,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) diff --git a/examples/example 1 - Basics/pixi.js b/examples/example 1 - Basics/pixi.js index f29080a..3478cf4 100644 --- a/examples/example 1 - Basics/pixi.js +++ b/examples/example 1 - Basics/pixi.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/examples/example 10 - Text/pixi.js b/examples/example 10 - Text/pixi.js index f29080a..3478cf4 100644 --- a/examples/example 10 - Text/pixi.js +++ b/examples/example 10 - Text/pixi.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/examples/example 11 - RenderTexture/index.html b/examples/example 11 - RenderTexture/index.html index efd342b..e4acf76 100644 --- a/examples/example 11 - RenderTexture/index.html +++ b/examples/example 11 - RenderTexture/index.html @@ -15,7 +15,7 @@ diff --git a/examples/example 11 - RenderTexture/pixi.js b/examples/example 11 - RenderTexture/pixi.js index f29080a..3478cf4 100644 --- a/examples/example 11 - RenderTexture/pixi.js +++ b/examples/example 11 - RenderTexture/pixi.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/bin/pixi.dev.js b/bin/pixi.dev.js index f29080a..3478cf4 100644 --- a/bin/pixi.dev.js +++ b/bin/pixi.dev.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/bin/pixi.js b/bin/pixi.js index 5f2a13c..a6d54d1 100644 --- a/bin/pixi.js +++ b/bin/pixi.js @@ -4,10 +4,10 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php */ -(function(){function HEXtoRGB(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}function determineMatrixArrayType(){return PIXI.Matrix="undefined"!=typeof Float32Array?Float32Array:Array,PIXI.Matrix}var root=this,PIXI=PIXI||{};PIXI.Point=function(t,e){this.x=t||0,this.y=e||0},PIXI.Point.prototype.clone=function(){return new PIXI.Point(this.x,this.y)},PIXI.Point.constructor=PIXI.Point,PIXI.Rectangle=function(t,e,i,r){this.x=t||0,this.y=e||0,this.width=i||0,this.height=r||0},PIXI.Rectangle.prototype.clone=function(){return new PIXI.Rectangle(this.x,this.y,this.width,this.height)},PIXI.Rectangle.constructor=PIXI.Rectangle,PIXI.DisplayObject=function(){this.position=new PIXI.Point,this.scale=new PIXI.Point(1,1),this.pivot=new PIXI.Point(0,0),this.rotation=0,this.alpha=1,this.visible=!0,this.worldVisible=!1,this.parent=null,this.stage=null,this.hitArea=null,this.worldAlpha=1,this.color=[],this.worldTransform=PIXI.mat3.create(),this.localTransform=PIXI.mat3.create(),this.dynamic=!0,this._sr=0,this._cr=1,this.childIndex=0,this.renderable=!1,this.interactive=!1,this.buttonMode=!1},PIXI.DisplayObject.constructor=PIXI.DisplayObject,PIXI.DisplayObject.prototype.setInteractive=function(t){this.interactive=t,this.stage&&(this.stage.dirty=!0)},PIXI.DisplayObject.prototype.updateTransform=function(){this.rotation!=this.rotationCache&&(this.rotationCache=this.rotation,this._sr=Math.sin(this.rotation),this._cr=Math.cos(this.rotation));var t=this.localTransform,e=this.parent.worldTransform,i=this.worldTransform;t[0]=this._cr*this.scale.x,t[1]=-this._sr*this.scale.y,t[3]=this._sr*this.scale.x,t[4]=this._cr*this.scale.y;var r=this.pivot.x,s=this.pivot.y;t[2]=this.position.x-t[0]*r-s*t[1],t[5]=this.position.y-t[4]*s-r*t[3];var n=t[0],a=t[1],o=t[2],h=t[3],u=t[4],c=t[5],d=e[0],l=e[1],I=e[2],p=e[3],f=e[4],x=e[5];i[0]=d*n+l*h,i[1]=d*a+l*u,i[2]=d*o+l*c+I,i[3]=p*n+f*h,i[4]=p*a+f*u,i[5]=p*o+f*c+x,this.worldAlpha=this.alpha*this.parent.worldAlpha},PIXI.DisplayObjectContainer=function(){PIXI.DisplayObject.call(this),this.children=[],this.renderable=!1},PIXI.DisplayObjectContainer.constructor=PIXI.DisplayObjectContainer,PIXI.DisplayObjectContainer.prototype=Object.create(PIXI.DisplayObject.prototype),PIXI.DisplayObjectContainer.prototype.addChild=function(t){void 0!=t.parent&&t.parent.removeChild(t),t.parent=this,t.childIndex=this.children.length,this.children.push(t),this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},PIXI.DisplayObjectContainer.prototype.addChildAt=function(t,e){if(!(e>=0&&this.children.length>=e))throw Error(t+" The index "+e+" supplied is out of bounds "+this.children.length);void 0!=t.parent&&t.parent.removeChild(t),e==this.children.length?this.children.push(t):this.children.splice(e,0,t),t.parent=this,t.childIndex=e;for(var i=this.children.length,r=e;i>r;r++)this.children[r].childIndex=r;this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},PIXI.DisplayObjectContainer.prototype.swapChildren=function(t,e){var i=this.children.indexOf(t),r=this.children.indexOf(e);if(-1===i||-1===r)throw Error(t+" Both the supplied DisplayObjects must be a child of the caller "+this);this.stage&&(this.stage.__removeChild(t),this.stage.__removeChild(e),this.stage.__addChild(t),this.stage.__addChild(e)),t.childIndex=r,e.childIndex=i,this.children[i]=e,this.children[r]=t},PIXI.DisplayObjectContainer.prototype.getChildAt=function(t){if(t>=0&&this.children.length>t)return this.children[t];throw Error(child+" Both the supplied DisplayObjects must be a child of the caller "+this)},PIXI.DisplayObjectContainer.prototype.removeChild=function(t){var e=this.children.indexOf(t);if(-1===e)throw Error(t+" The supplied DisplayObject must be a child of the caller "+this);this.stage&&this.stage.__removeChild(t),t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.parent=void 0,this.children.splice(e,1);for(var i=e,r=this.children.length;r>i;i++)this.children[i].childIndex-=1},PIXI.DisplayObjectContainer.prototype.updateTransform=function(){if(this.visible){PIXI.DisplayObject.prototype.updateTransform.call(this);for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform()}},PIXI.blendModes={},PIXI.blendModes.NORMAL=0,PIXI.blendModes.SCREEN=1,PIXI.Sprite=function(t){PIXI.DisplayObjectContainer.call(this),this.anchor=new PIXI.Point,this.texture=t,this.blendMode=PIXI.blendModes.NORMAL,this._width=0,this._height=0,t.baseTexture.hasLoaded?this.updateFrame=!0:(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},PIXI.Sprite.constructor=PIXI.Sprite,PIXI.Sprite.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),Object.defineProperty(PIXI.Sprite.prototype,"width",{get:function(){return this.scale.x*this.texture.frame.width},set:function(t){this.scale.x=t/this.texture.frame.width,this._width=t}}),Object.defineProperty(PIXI.Sprite.prototype,"height",{get:function(){return this.scale.y*this.texture.frame.height},set:function(t){this.scale.y=t/this.texture.frame.height,this._height=t}}),PIXI.Sprite.prototype.setTexture=function(t){this.texture.baseTexture!=t.baseTexture&&(this.textureChange=!0),this.texture=t,this.updateFrame=!0},PIXI.Sprite.prototype.onTextureUpdate=function(){this._width&&(this.scale.x=this._width/this.texture.frame.width),this._height&&(this.scale.y=this._height/this.texture.frame.height),this.updateFrame=!0},PIXI.Sprite.fromFrame=function(t){var e=PIXI.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache"+this);return new PIXI.Sprite(e)},PIXI.Sprite.fromImage=function(t){var e=PIXI.Texture.fromImage(t);return new PIXI.Sprite(e)},PIXI.MovieClip=function(t){PIXI.Sprite.call(this,t[0]),this.textures=t,this.currentFrame=0,this.animationSpeed=1,this.loop=!0,this.onComplete=null,this.playing},PIXI.MovieClip.constructor=PIXI.MovieClip,PIXI.MovieClip.prototype=Object.create(PIXI.Sprite.prototype),PIXI.MovieClip.prototype.stop=function(){this.playing=!1},PIXI.MovieClip.prototype.play=function(){this.playing=!0},PIXI.MovieClip.prototype.gotoAndStop=function(t){this.playing=!1,this.currentFrame=t;var e=0|this.currentFrame+.5;this.setTexture(this.textures[e%this.textures.length])},PIXI.MovieClip.prototype.gotoAndPlay=function(t){this.currentFrame=t,this.playing=!0},PIXI.MovieClip.prototype.updateTransform=function(){if(PIXI.Sprite.prototype.updateTransform.call(this),this.playing){this.currentFrame+=this.animationSpeed;var t=0|this.currentFrame+.5;this.loop||this.textures.length>t?this.setTexture(this.textures[t%this.textures.length]):t>=this.textures.length&&(this.gotoAndStop(this.textures.length-1),this.onComplete&&this.onComplete())}},PIXI.Text=function(t,e){this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"),PIXI.Sprite.call(this,PIXI.Texture.fromCanvas(this.canvas)),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},PIXI.Text.constructor=PIXI.Text,PIXI.Text.prototype=Object.create(PIXI.Sprite.prototype),PIXI.Text.prototype.setStyle=function(t){t=t||{},t.font=t.font||"bold 20pt Arial",t.fill=t.fill||"black",t.align=t.align||"left",t.strokeThickness=t.strokeThickness||0,this.style=t,this.dirty=!0},PIXI.Sprite.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},PIXI.Text.prototype.updateText=function(){this.context.font=this.style.font;for(var t=this.text.split(/(?:\r\n|\r|\n)/),e=[],i=0,r=0;t.length>r;r++){var s=this.context.measureText(t[r]).width;e[r]=s,i=Math.max(i,s)}this.canvas.width=i+this.style.strokeThickness;var n=this.determineFontHeight("font: "+this.style.font+";")+this.style.strokeThickness;for(this.canvas.height=n*t.length,this.context.fillStyle=this.style.fill,this.context.font=this.style.font,this.context.strokeStyle=this.style.stroke,this.context.lineWidth=this.style.strokeThickness,this.context.textBaseline="top",r=0;t.length>r;r++){var a=new PIXI.Point(this.style.strokeThickness/2,this.style.strokeThickness/2+r*n);"right"==this.style.align?a.x+=i-e[r]:"center"==this.style.align&&(a.x+=(i-e[r])/2),this.style.stroke&&this.style.strokeThickness&&this.context.strokeText(t[r],a.x,a.y),this.style.fill&&this.context.fillText(t[r],a.x,a.y)}this.updateTexture()},PIXI.Text.prototype.updateTexture=function(){this.texture.baseTexture.width=this.canvas.width,this.texture.baseTexture.height=this.canvas.height,this.texture.frame.width=this.canvas.width,this.texture.frame.height=this.canvas.height,this._width=this.canvas.width,this._height=this.canvas.height,PIXI.texturesToUpdate.push(this.texture.baseTexture)},PIXI.Text.prototype.updateTransform=function(){this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype.updateTransform.call(this)},PIXI.Text.prototype.determineFontHeight=function(t){var e=PIXI.Text.heightCache[t];if(!e){var i=document.getElementsByTagName("body")[0],r=document.createElement("div"),s=document.createTextNode("M");r.appendChild(s),r.setAttribute("style",t),i.appendChild(r),e=r.offsetHeight,PIXI.Text.heightCache[t]=e,i.removeChild(r)}return e},PIXI.Text.prototype.destroy=function(t){t&&this.texture.destroy()},PIXI.Text.heightCache={},PIXI.BitmapText=function(t,e){PIXI.DisplayObjectContainer.call(this),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},PIXI.BitmapText.constructor=PIXI.BitmapText,PIXI.BitmapText.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.BitmapText.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},PIXI.BitmapText.prototype.setStyle=function(t){t=t||{},t.align=t.align||"left",this.style=t;var e=t.font.split(" ");this.fontName=e[e.length-1],this.fontSize=e.length>=2?parseInt(e[e.length-2],10):PIXI.BitmapText.fonts[this.fontName].size,this.dirty=!0},PIXI.BitmapText.prototype.updateText=function(){for(var t=PIXI.BitmapText.fonts[this.fontName],e=new PIXI.Point,i=null,r=[],s=0,n=[],a=0,o=this.fontSize/t.size,h=0;this.text.length>h;h++){var u=this.text.charCodeAt(h);if(/(?:\r\n|\r|\n)/.test(this.text.charAt(h)))n.push(e.x),s=Math.max(s,e.x),a++,e.x=0,e.y+=t.lineHeight,i=null;else{var c=t.chars[u];c&&(i&&c[i]&&(e.x+=c.kerning[i]),r.push({line:a,charCode:u,position:new PIXI.Point(e.x+c.xOffset,e.y+c.yOffset)}),e.x+=c.xAdvance,i=u)}}n.push(e.x),s=Math.max(s,e.x);var d=[];for(h=0;a>=h;h++){var l=0;"right"==this.style.align?l=s-n[h]:"center"==this.style.align&&(l=(s-n[h])/2),d.push(l)}for(h=0;r.length>h;h++){var I=PIXI.Sprite.fromFrame(r[h].charCode);I.position.x=(r[h].position.x+d[r[h].line])*o,I.position.y=r[h].position.y*o,I.scale.x=I.scale.y=o,this.addChild(I)}this.width=e.x*o,this.height=(e.y+t.lineHeight)*o},PIXI.BitmapText.prototype.updateTransform=function(){if(this.dirty){for(;this.children.length>0;)this.removeChild(this.getChildAt(0));this.updateText(),this.dirty=!1}PIXI.DisplayObjectContainer.prototype.updateTransform.call(this)},PIXI.BitmapText.fonts={},PIXI.InteractionManager=function(t){this.stage=t,this.tempPoint=new PIXI.Point,this.mouseoverEnabled=!0,this.mouse=new PIXI.InteractionData,this.touchs={},this.pool=[],this.interactiveItems=[],this.last=0},PIXI.InteractionManager.constructor=PIXI.InteractionManager,PIXI.InteractionManager.prototype.collectInteractiveSprite=function(t,e){for(var i=t.children,r=i.length,s=r-1;s>=0;s--){var n=i[s];n.interactive?(e.interactiveChildren=!0,this.interactiveItems.push(n),n.children.length>0&&this.collectInteractiveSprite(n,n)):(n.__iParent=null,n.children.length>0&&this.collectInteractiveSprite(n,e))}},PIXI.InteractionManager.prototype.setTarget=function(t){window.navigator.msPointerEnabled&&(t.view.style["-ms-content-zooming"]="none",t.view.style["-ms-touch-action"]="none"),this.target=t,t.view.addEventListener("mousemove",this.onMouseMove.bind(this),!0),t.view.addEventListener("mousedown",this.onMouseDown.bind(this),!0),document.body.addEventListener("mouseup",this.onMouseUp.bind(this),!0),t.view.addEventListener("mouseout",this.onMouseUp.bind(this),!0),t.view.addEventListener("touchstart",this.onTouchStart.bind(this),!0),t.view.addEventListener("touchend",this.onTouchEnd.bind(this),!0),t.view.addEventListener("touchmove",this.onTouchMove.bind(this),!0)},PIXI.InteractionManager.prototype.update=function(){if(this.target){var t=Date.now(),e=t-this.last;if(e=30*e/1e3,!(1>e)){if(this.last=t,this.dirty){this.dirty=!1,this.interactiveItems.length;for(var i=0;this.interactiveItems.length>i;i++)this.interactiveItems[i].interactiveChildren=!1;this.interactiveItems=[],this.stage.interactive&&this.interactiveItems.push(this.stage),this.collectInteractiveSprite(this.stage,this.stage)}var r=this.interactiveItems.length;this.target.view.style.cursor="default";for(var i=0;r>i;i++){var s=this.interactiveItems[i];s.visible&&(s.mouseover||s.mouseout||s.buttonMode)&&(s.__hit=this.hitTest(s,this.mouse),s.__hit?(s.buttonMode&&(this.target.view.style.cursor="pointer"),s.__isOver||(s.mouseover&&s.mouseover(this.mouse),s.__isOver=!0)):s.__isOver&&(s.mouseout&&s.mouseout(this.mouse),s.__isOver=!1))}}}},PIXI.InteractionManager.prototype.onMouseMove=function(t){t.preventDefault();var e=this.target.view.getBoundingClientRect();this.mouse.global.x=(t.clientX-e.left)*(this.target.width/e.width),this.mouse.global.y=(t.clientY-e.top)*(this.target.height/e.height);var i=this.interactiveItems.length;this.mouse.global;for(var r=0;i>r;r++){var s=this.interactiveItems[r];s.mousemove&&s.mousemove(this.mouse)}},PIXI.InteractionManager.prototype.onMouseDown=function(t){t.preventDefault();var e=this.interactiveItems.length;this.mouse.global,this.stage;for(var i=0;e>i;i++){var r=this.interactiveItems[i];if((r.mousedown||r.click)&&(r.__mouseIsDown=!0,r.__hit=this.hitTest(r,this.mouse),r.__hit&&(r.mousedown&&r.mousedown(this.mouse),r.__isDown=!0,!r.interactiveChildren)))break}},PIXI.InteractionManager.prototype.onMouseUp=function(t){t.preventDefault(),this.mouse.global;for(var e=this.interactiveItems.length,i=!1,r=0;e>r;r++){var s=this.interactiveItems[r];(s.mouseup||s.mouseupoutside||s.click)&&(s.__hit=this.hitTest(s,this.mouse),s.__hit&&!i?(s.mouseup&&s.mouseup(this.mouse),s.__isDown&&s.click&&s.click(this.mouse),s.interactiveChildren||(i=!0)):s.__isDown&&s.mouseupoutside&&s.mouseupoutside(this.mouse),s.__isDown=!1)}},PIXI.InteractionManager.prototype.hitTest=function(t,e){var i=e.global;if(!t.visible)return!1;if(t instanceof PIXI.Sprite){var r=t.worldTransform,s=r[0],n=r[1],a=r[2],o=r[3],h=r[4],u=r[5],c=1/(s*h+n*-o),d=h*c*i.x+-n*c*i.y+(u*n-a*h)*c,l=s*c*i.y+-o*c*i.x+(-u*s+a*o)*c,I=t.texture.frame.width,p=t.texture.frame.height,f=-I*t.anchor.x;if(d>f&&f+I>d){var x=-p*t.anchor.y;if(l>x&&x+p>l)return e.target=t,!0}}else if(t.hitArea){var r=t.worldTransform,v=t.hitArea,s=r[0],n=r[1],a=r[2],o=r[3],h=r[4],u=r[5],c=1/(s*h+n*-o),d=h*c*i.x+-n*c*i.y+(u*n-a*h)*c,l=s*c*i.y+-o*c*i.x+(-u*s+a*o)*c,f=v.x;if(d>f&&f+v.width>d){var x=v.y;if(l>x&&x+v.height>l)return!0}}for(var P=t.children.length,g=0;P>g;g++){var b=t.children[g],X=this.hitTest(b,e);if(X)return!0}return!1},PIXI.InteractionManager.prototype.onTouchMove=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.touchs[s.identifier];n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height)}for(var a=this.interactiveItems.length,r=0;a>r;r++){var o=this.interactiveItems[r];o.touchmove&&o.touchmove(n)}},PIXI.InteractionManager.prototype.onTouchStart=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.pool.pop();n||(n=new PIXI.InteractionData),this.touchs[s.identifier]=n,n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height);for(var a=this.interactiveItems.length,o=0;a>o;o++){var h=this.interactiveItems[o];if((h.touchstart||h.tap)&&(h.__hit=this.hitTest(h,n),h.__hit&&(h.touchstart&&h.touchstart(n),h.__isDown=!0,h.__touchData=n,!h.interactiveChildren)))break}}},PIXI.InteractionManager.prototype.onTouchEnd=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.touchs[s.identifier],a=!1;n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var u=this.interactiveItems[h],c=u.__touchData;u.__hit=this.hitTest(u,n),c==n&&((u.touchend||u.tap)&&(u.__hit&&!a?(u.touchend&&u.touchend(n),u.__isDown&&u.tap&&u.tap(n),u.interactiveChildren||(a=!0)):u.__isDown&&u.touchendoutside&&u.touchendoutside(n),u.__isDown=!1),u.__touchData=null)}this.pool.push(n),this.touchs[s.identifier]=null}},PIXI.InteractionData=function(){this.global=new PIXI.Point,this.local=new PIXI.Point,this.target},PIXI.InteractionData.prototype.getLocalPosition=function(t){var e=t.worldTransform,i=this.global,r=e[0],s=e[1],n=e[2],a=e[3],o=e[4],h=e[5],u=1/(r*o+s*-a);return new PIXI.Point(o*u*i.x+-s*u*i.y+(h*s-n*o)*u,r*u*i.y+-a*u*i.x+(-h*r+n*a)*u)},PIXI.InteractionData.constructor=PIXI.InteractionData,PIXI.Stage=function(t,e){PIXI.DisplayObjectContainer.call(this),this.worldTransform=PIXI.mat3.create(),this.__childrenAdded=[],this.__childrenRemoved=[],this.childIndex=0,this.stage=this,this.stage.hitArea=new PIXI.Rectangle(0,0,1e5,1e5),this.interactive=!!e,this.interactionManager=new PIXI.InteractionManager(this),this.setBackgroundColor(t),this.worldVisible=!0},PIXI.Stage.constructor=PIXI.Stage,PIXI.Stage.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Stage.prototype.updateTransform=function(){this.worldAlpha=1;for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform();this.dirty&&(this.dirty=!1,this.interactionManager.dirty=!0),this.interactive&&this.interactionManager.update()},PIXI.Stage.prototype.setBackgroundColor=function(t){this.backgroundColor=t||0,this.backgroundColorSplit=HEXtoRGB(this.backgroundColor),this.backgroundColorString="#"+this.backgroundColor.toString(16)},PIXI.Stage.prototype.getMousePosition=function(){return this.interactionManager.mouse.global},PIXI.Stage.prototype.__addChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=this,t.children)for(var e=0;t.children.length>e;e++)this.__addChild(t.children[e])},PIXI.Stage.prototype.__removeChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=void 0,t.children)for(var e=0,i=t.children.length;i>e;e++)this.__removeChild(t.children[e])},window.requestAnimFrame=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(t){window.setTimeout(t,1e3/60)}}(),"function"!=typeof Function.prototype.bind&&(Function.prototype.bind=function(){var t=Array.prototype.slice;return function(e){function i(){var n=s.concat(t.call(arguments));r.apply(this instanceof i?this:e,n)}var r=this,s=t.call(arguments,1);if("function"!=typeof r)throw new TypeError;return i.prototype=function n(t){return t&&(n.prototype=t),this instanceof n?void 0:new n}(r.prototype),i}}());var AjaxRequest=function(){var t=["Msxml2.XMLHTTP","Microsoft.XMLHTTP"];if(!window.ActiveXObject)return window.XMLHttpRequest?new XMLHttpRequest:!1;for(var e=0;t.length>e;e++)try{return new ActiveXObject(t[e])}catch(i){}};PIXI.EventTarget=function(){var t={};this.addEventListener=this.on=function(e,i){void 0===t[e]&&(t[e]=[]),-1===t[e].indexOf(i)&&t[e].push(i)},this.dispatchEvent=this.emit=function(e){for(var i in t[e.type])t[e.type][i](e)},this.removeEventListener=this.off=function(e,i){var r=t[e].indexOf(i);-1!==r&&t[e].splice(r,1)}},determineMatrixArrayType(),PIXI.mat3={},PIXI.mat3.create=function(){var t=new PIXI.Matrix(9);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},PIXI.mat4={},PIXI.mat4.create=function(){var t=new PIXI.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},PIXI.mat3.multiply=function(t,e,i){i||(i=t);var r=t[0],s=t[1],n=t[2],a=t[3],o=t[4],h=t[5],u=t[6],c=t[7],d=t[8],l=e[0],I=e[1],p=e[2],f=e[3],x=e[4],v=e[5],P=e[6],g=e[7],b=e[8];return i[0]=l*r+I*a+p*u,i[1]=l*s+I*o+p*c,i[2]=l*n+I*h+p*d,i[3]=f*r+x*a+v*u,i[4]=f*s+x*o+v*c,i[5]=f*n+x*h+v*d,i[6]=P*r+g*a+b*u,i[7]=P*s+g*o+b*c,i[8]=P*n+g*h+b*d,i},PIXI.mat3.toMat4=function(t,e){return e||(e=PIXI.mat4.create()),e[15]=1,e[14]=0,e[13]=0,e[12]=0,e[11]=0,e[10]=t[8],e[9]=t[7],e[8]=t[6],e[7]=0,e[6]=t[5],e[5]=t[4],e[4]=t[3],e[3]=0,e[2]=t[2],e[1]=t[1],e[0]=t[0],e},PIXI.mat4.create=function(){var t=new PIXI.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},PIXI.mat4.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],s=t[3],n=t[6],a=t[7],o=t[11];return t[1]=t[4],t[2]=t[8],t[3]=t[12],t[4]=i,t[6]=t[9],t[7]=t[13],t[8]=r,t[9]=n,t[11]=t[14],t[12]=s,t[13]=a,t[14]=o,t}return e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=t[1],e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=t[2],e[9]=t[6],e[10]=t[10],e[11]=t[14],e[12]=t[3],e[13]=t[7],e[14]=t[11],e[15]=t[15],e},PIXI.mat4.multiply=function(t,e,i){i||(i=t);var r=t[0],s=t[1],n=t[2],a=t[3],o=t[4],h=t[5],u=t[6],c=t[7],d=t[8],l=t[9],I=t[10],p=t[11],f=t[12],x=t[13],v=t[14],P=t[15],g=e[0],b=e[1],X=e[2],m=e[3];return i[0]=g*r+b*o+X*d+m*f,i[1]=g*s+b*h+X*l+m*x,i[2]=g*n+b*u+X*I+m*v,i[3]=g*a+b*c+X*p+m*P,g=e[4],b=e[5],X=e[6],m=e[7],i[4]=g*r+b*o+X*d+m*f,i[5]=g*s+b*h+X*l+m*x,i[6]=g*n+b*u+X*I+m*v,i[7]=g*a+b*c+X*p+m*P,g=e[8],b=e[9],X=e[10],m=e[11],i[8]=g*r+b*o+X*d+m*f,i[9]=g*s+b*h+X*l+m*x,i[10]=g*n+b*u+X*I+m*v,i[11]=g*a+b*c+X*p+m*P,g=e[12],b=e[13],X=e[14],m=e[15],i[12]=g*r+b*o+X*d+m*f,i[13]=g*s+b*h+X*l+m*x,i[14]=g*n+b*u+X*I+m*v,i[15]=g*a+b*c+X*p+m*P,i},PIXI.autoDetectRenderer=function(t,e,i,r){t||(t=800),e||(e=600);var s=function(){try{return!!window.WebGLRenderingContext&&!!document.createElement("canvas").getContext("experimental-webgl")}catch(t){return!1}}();return s?new PIXI.WebGLRenderer(t,e,i,r):new PIXI.CanvasRenderer(t,e,i,r)},PIXI.shaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * vColor;","}"],PIXI.shaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform mat4 uMVMatrix;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","gl_Position = uMVMatrix * vec4(aVertexPosition, 1.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],PIXI.CompileVertexShader=function(t,e){return PIXI._CompileShader(t,e,t.VERTEX_SHADER)},PIXI.CompileFragmentShader=function(t,e){return PIXI._CompileShader(t,e,t.FRAGMENT_SHADER)},PIXI._CompileShader=function(t,e,i){var r=e.join("\n"),s=t.createShader(i);return t.shaderSource(s,r),t.compileShader(s),t.getShaderParameter(s,t.COMPILE_STATUS)?s:(alert(t.getShaderInfoLog(s)),null)},PIXI._defaultFrame=new PIXI.Rectangle(0,0,1,1),PIXI.gl,PIXI.WebGLRenderer=function(t,e,i,r){this.transparent=!!r,this.width=t||800,this.height=e||600,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height;var s=this;this.view.addEventListener("webglcontextlost",function(t){s.handleContextLost(t)},!1),this.view.addEventListener("webglcontextrestored",function(t){s.handleContextRestored(t)},!1),this.batchs=[];try{PIXI.gl=this.gl=this.view.getContext("experimental-webgl",{alpha:this.transparent,antialias:!1,premultipliedAlpha:!0})}catch(n){throw Error(" This browser does not support webGL. Try using the canvas renderer"+this)}this.initShaders();var a=this.gl;PIXI.WebGLRenderer.gl=a,this.batch=new PIXI.WebGLBatch(a),a.disable(a.DEPTH_TEST),a.disable(a.CULL_FACE),a.enable(a.BLEND),a.colorMask(!0,!0,!0,this.transparent),this.projectionMatrix=PIXI.mat4.create(),this.resize(this.width,this.height),this.contextLost=!1,this.stageRenderGroup=new PIXI.WebGLRenderGroup(this.gl)},PIXI.WebGLRenderer.constructor=PIXI.WebGLRenderer,PIXI.WebGLRenderer.getBatch=function(){return 0==PIXI._batchs.length?new PIXI.WebGLBatch(PIXI.WebGLRenderer.gl):PIXI._batchs.pop()},PIXI.WebGLRenderer.returnBatch=function(t){t.clean(),PIXI._batchs.push(t)},PIXI.WebGLRenderer.prototype.initShaders=function(){var t=this.gl,e=PIXI.CompileFragmentShader(t,PIXI.shaderFragmentSrc),i=PIXI.CompileVertexShader(t,PIXI.shaderVertexSrc);PIXI.shaderProgram=t.createProgram();var r=PIXI.shaderProgram;t.attachShader(r,i),t.attachShader(r,e),t.linkProgram(r),t.getProgramParameter(r,t.LINK_STATUS)||alert("Could not initialise shaders"),t.useProgram(r),r.vertexPositionAttribute=t.getAttribLocation(r,"aVertexPosition"),t.enableVertexAttribArray(r.vertexPositionAttribute),r.textureCoordAttribute=t.getAttribLocation(r,"aTextureCoord"),t.enableVertexAttribArray(r.textureCoordAttribute),r.colorAttribute=t.getAttribLocation(r,"aColor"),t.enableVertexAttribArray(r.colorAttribute),r.mvMatrixUniform=t.getUniformLocation(r,"uMVMatrix"),r.samplerUniform=t.getUniformLocation(r,"uSampler")},PIXI.WebGLRenderer.prototype.render=function(t){if(!this.contextLost){this.__stage!==t&&(this.__stage=t,this.stageRenderGroup.setRenderable(t));for(var e=0;PIXI.texturesToUpdate.length>e;e++)this.updateTexture(PIXI.texturesToUpdate[e]);for(var e=0;PIXI.texturesToDestroy.length>e;e++)this.destroyTexture(PIXI.texturesToDestroy[e]);PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[],t.updateTransform();var i=this.gl;if(i.colorMask(!0,!0,!0,this.transparent),i.viewport(0,0,this.width,this.height),i.bindFramebuffer(i.FRAMEBUFFER,null),i.clearColor(t.backgroundColorSplit[0],t.backgroundColorSplit[1],t.backgroundColorSplit[2],this.transparent),i.clear(i.COLOR_BUFFER_BIT),this.stageRenderGroup.backgroundColor=t.backgroundColorSplit,this.stageRenderGroup.render(this.projectionMatrix),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),PIXI.Texture.frameUpdates.length>0){for(var e=0;PIXI.Texture.frameUpdates.length>e;e++)PIXI.Texture.frameUpdates[e].updateFrame=!1;PIXI.Texture.frameUpdates=[]}}},PIXI.WebGLRenderer.prototype.updateTexture=function(t){var e=this.gl;t._glTexture||(t._glTexture=e.createTexture()),t.hasLoaded&&(e.bindTexture(e.TEXTURE_2D,t._glTexture),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t.source),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),t._powerOf2?(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT)):(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)),e.bindTexture(e.TEXTURE_2D,null)),this.refreshBatchs=!0},PIXI.WebGLRenderer.prototype.destroyTexture=function(t){var e=this.gl;t._glTexture&&(t._glTexture=e.createTexture(),e.deleteTexture(e.TEXTURE_2D,t._glTexture))},PIXI.WebGLRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e,this.gl.viewport(0,0,this.width,this.height);var i=this.projectionMatrix;i[0]=2/this.width,i[5]=-2/this.height,i[12]=-1,i[13]=1},PIXI.WebGLRenderer.prototype.handleContextLost=function(t){t.preventDefault(),this.contextLost=!0},PIXI.WebGLRenderer.prototype.handleContextRestored=function(){this.gl=this.view.getContext("experimental-webgl",{alpha:!0}),this.initShaders();for(var t=0;PIXI.TextureCache.length>t;t++)this.updateTexture(PIXI.TextureCache[t]);for(var t=0;this.batchs.length>t;t++)this.batchs[t].restoreLostContext(this.gl),this.batchs[t].dirty=!0;PIXI._restoreBatchs(this.gl),this.contextLost=!1},PIXI._batchs=[],PIXI._getBatch=function(t){return 0==PIXI._batchs.length?new PIXI.WebGLBatch(t):PIXI._batchs.pop()},PIXI._returnBatch=function(t){t.clean(),PIXI._batchs.push(t)},PIXI._restoreBatchs=function(t){for(var e=0;PIXI._batchs.length>e;e++)PIXI._batchs[e].restoreLostContext(t)},PIXI.WebGLBatch=function(t){this.gl=t,this.size=0,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer(),this.blendMode=PIXI.blendModes.NORMAL,this.dynamicSize=1},PIXI.WebGLBatch.constructor=PIXI.WebGLBatch,PIXI.WebGLBatch.prototype.clean=function(){this.verticies=[],this.uvs=[],this.indices=[],this.colors=[],this.dynamicSize=1,this.texture=null,this.last=null,this.size=0,this.head,this.tail},PIXI.WebGLBatch.prototype.restoreLostContext=function(t){this.gl=t,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer()},PIXI.WebGLBatch.prototype.init=function(t){t.batch=this,this.dirty=!0,this.blendMode=t.blendMode,this.texture=t.texture.baseTexture,this.head=t,this.tail=t,this.size=1,this.growBatch()},PIXI.WebGLBatch.prototype.insertBefore=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__prev;e.__prev=t,t.__next=e,i?(t.__prev=i,i.__next=t):this.head=t},PIXI.WebGLBatch.prototype.insertAfter=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__next;e.__next=t,t.__prev=e,i?(t.__next=i,i.__prev=t):this.tail=t},PIXI.WebGLBatch.prototype.remove=function(t){return this.size--,0==this.size?(t.batch=null,t.__prev=null,t.__next=null,void 0):(t.__prev?t.__prev.__next=t.__next:(this.head=t.__next,this.head.__prev=null),t.__next?t.__next.__prev=t.__prev:(this.tail=t.__prev,this.tail.__next=null),t.batch=null,t.__next=null,t.__prev=null,this.dirty=!0,void 0)},PIXI.WebGLBatch.prototype.split=function(t){this.dirty=!0;var e=new PIXI.WebGLBatch(this.gl);e.init(t),e.tail=this.tail,this.tail=t.__prev,this.tail.__next=null,t.__prev=null;for(var i=0;t;)i++,t.batch=e,t=t.__next;return e.size=i,this.size-=i,e},PIXI.WebGLBatch.prototype.merge=function(t){this.dirty=!0,this.tail.__next=t.head,t.head.__prev=this.tail,this.size+=t.size,this.tail=t.tail;for(var e=t.head;e;)e.batch=this,e=e.__next},PIXI.WebGLBatch.prototype.growBatch=function(){var t=this.gl;this.dynamicSize=1==this.size?1:1.5*this.size,this.verticies=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.vertexBuffer),t.bufferData(t.ARRAY_BUFFER,this.verticies,t.DYNAMIC_DRAW),this.uvs=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.uvBuffer),t.bufferData(t.ARRAY_BUFFER,this.uvs,t.DYNAMIC_DRAW),this.dirtyUVS=!0,this.colors=new Float32Array(4*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.colorBuffer),t.bufferData(t.ARRAY_BUFFER,this.colors,t.DYNAMIC_DRAW),this.dirtyColors=!0,this.indices=new Uint16Array(6*this.dynamicSize);for(var e=this.indices.length/6,i=0;e>i;i++){var r=6*i,s=4*i;this.indices[r+0]=s+0,this.indices[r+1]=s+1,this.indices[r+2]=s+2,this.indices[r+3]=s+0,this.indices[r+4]=s+2,this.indices[r+5]=s+3}t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,this.indexBuffer),t.bufferData(t.ELEMENT_ARRAY_BUFFER,this.indices,t.STATIC_DRAW)},PIXI.WebGLBatch.prototype.refresh=function(){this.gl,this.dynamicSizei;i++)this.removeDisplayObjectAndChildren(this.toRemove[i]);this.toRemove=[],this.checkVisibility(this.root,this.root.visible);for(var r,i=0;this.batchs.length>i;i++)r=this.batchs[i],r instanceof PIXI.WebGLBatch?this.batchs[i].render():r instanceof PIXI.TilingSprite?r.visible&&this.renderTilingSprite(r,t):r instanceof PIXI.Strip&&r.visible&&this.renderStrip(r,t)},PIXI.WebGLRenderGroup.prototype.renderSpecific=function(t,e){var i=this.gl;this.checkVisibility(t,t.visible),i.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform,!1,e);var r,s,n,a,o=t.renderable?t:this.getNextRenderable(t),h=o.batch;if(o instanceof PIXI.Sprite){h=o.batch;var u=h.head;if(u==o)r=0;else for(r=1;u.__next!=o;)r++,u=u.__next}else h=o;for(var c,d=t,l=t;l.children.length>0;)l=l.children[l.children.length-1],l.renderable&&(d=l);if(d instanceof PIXI.Sprite){c=d.batch;var u=c.head;if(u==d)n=0;else for(n=1;u.__next!=d;)n++,u=u.__next}else c=d;if(h==c)return h instanceof PIXI.WebGLBatch?h.render(r,n+1):h instanceof PIXI.TilingSprite?h.visible&&this.renderTilingSprite(h,e):h instanceof PIXI.Strip?h.visible&&this.renderStrip(h,e):h instanceof PIXI.CustomRenderable&&h.visible&&h.renderWebGL(this,e),void 0;s=this.batchs.indexOf(h),a=this.batchs.indexOf(c),h instanceof PIXI.WebGLBatch?h.render(r):h instanceof PIXI.TilingSprite?h.visible&&this.renderTilingSprite(h,e):h instanceof PIXI.Strip?h.visible&&this.renderStrip(h,e):h instanceof PIXI.CustomRenderable&&h.visible&&h.renderWebGL(this,e);for(var I=s+1;a>I;I++)renderable=this.batchs[I],renderable instanceof PIXI.WebGLBatch?this.batchs[I].render():renderable instanceof PIXI.TilingSprite?renderable.visible&&this.renderTilingSprite(renderable,e):renderable instanceof PIXI.Strip?renderable.visible&&this.renderStrip(renderable,e):renderable instanceof PIXI.CustomRenderable&&renderable.visible&&renderable.renderWebGL(this,e);c instanceof PIXI.WebGLBatch?c.render(0,n+1):c instanceof PIXI.TilingSprite?c.visible&&this.renderTilingSprite(c):c instanceof PIXI.Strip?c.visible&&this.renderStrip(c):c instanceof PIXI.CustomRenderable&&c.visible&&c.renderWebGL(this,e)},PIXI.WebGLRenderGroup.prototype.checkVisibility=function(t,e){for(var i=t.children,r=0;i.length>r;r++){var s=i[r];s.worldVisible=s.visible&&e,s.textureChange&&(s.textureChange=!1,s.worldVisible&&(this.removeDisplayObject(s),this.addDisplayObject(s))),s.children.length>0&&this.checkVisibility(s,s.worldVisible)}},PIXI.WebGLRenderGroup.prototype.addDisplayObject=function(t){if(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.__renderGroup=this,t.renderable){var e=this.getPreviousRenderable(t),i=this.getNextRenderable(t);if(t instanceof PIXI.Sprite){var r,s;if(e instanceof PIXI.Sprite){if(r=e.batch,r&&r.texture==t.texture.baseTexture&&r.blendMode==t.blendMode)return r.insertAfter(t,e),void 0}else r=e;if(i)if(i instanceof PIXI.Sprite){if(s=i.batch){if(s.texture==t.texture.baseTexture&&s.blendMode==t.blendMode)return s.insertBefore(t,i),void 0;if(s==r){var n=r.split(i),a=PIXI.WebGLRenderer.getBatch(),o=this.batchs.indexOf(r);return a.init(t),this.batchs.splice(o+1,0,a,n),void 0}}}else s=i;var a=PIXI.WebGLRenderer.getBatch();if(a.init(t),r){var o=this.batchs.indexOf(r);this.batchs.splice(o+1,0,a)}else this.batchs.push(a)}else t instanceof PIXI.TilingSprite?(this.initTilingSprite(t),this.batchs.push(t)):t instanceof PIXI.Strip&&(this.initStrip(t),this.batchs.push(t));this.batchUpdate=!0}},PIXI.WebGLRenderGroup.prototype.addDisplayObjectAndChildren=function(t){this.addDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.addDisplayObjectAndChildren(e[i])},PIXI.WebGLRenderGroup.prototype.removeDisplayObject=function(t){if(t.__renderGroup=null,t.renderable){var e;if(t instanceof PIXI.Sprite){var i=t.batch;if(!i)return;i.remove(t),0==i.size&&(e=i)}else e=t;if(e){var r=this.batchs.indexOf(e);if(-1==r)return;if(0==r||r==this.batchs.length-1)return this.batchs.splice(r,1),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e),void 0;if(this.batchs[r-1]instanceof PIXI.WebGLBatch&&this.batchs[r+1]instanceof PIXI.WebGLBatch&&this.batchs[r-1].texture==this.batchs[r+1].texture&&this.batchs[r-1].blendMode==this.batchs[r+1].blendMode)return this.batchs[r-1].merge(this.batchs[r+1]),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e),PIXI.WebGLRenderer.returnBatch(this.batchs[r+1]),this.batchs.splice(r,2),void 0;this.batchs.splice(r,1),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e)}}},PIXI.WebGLRenderGroup.prototype.removeDisplayObjectAndChildren=function(t){if(t.__renderGroup==this){this.removeDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.removeDisplayObjectAndChildren(e[i])}},PIXI.WebGLRenderGroup.prototype.getNextRenderable=function(t){var e=t;do{if(0==e.children.length){if(!e.parent)return null;for(;e.childIndex==e.parent.children.length-1;)if(e=e.parent,e==this.root){e=null;break}e&&(e=e.parent.children[e.childIndex+1])}else e=e.children[0];if(!e)break}while(!e.renderable||!e.__renderGroup);return e},PIXI.WebGLRenderGroup.prototype.getPreviousRenderable=function(t){var e=t;do{if(0==e.childIndex){if(e=e.parent,!e)return null}else for(e=e.parent.children[e.childIndex-1];0!=e.children.length;)e=e.children[e.children.length-1];if(e==this.root)break}while(!e.renderable||!e.__renderGroup);return e},PIXI.WebGLRenderGroup.prototype.initTilingSprite=function(t){var e=this.gl;t.verticies=new Float32Array([0,0,t.width,0,t.width,t.height,0,t.height]),t.uvs=new Float32Array([0,0,1,0,1,1,0,1]),t.colors=new Float32Array([1,1,1,1]),t.indices=new Uint16Array([0,1,3,2]),t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW),t.texture.baseTexture._glTexture?(e.bindTexture(e.TEXTURE_2D,t.texture.baseTexture._glTexture),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT),t.texture.baseTexture._powerOf2=!0):t.texture.baseTexture._powerOf2=!0},PIXI.WebGLRenderGroup.prototype.renderStrip=function(t,e){var i=this.gl,r=PIXI.shaderProgram,s=PIXI.mat3.toMat4(t.worldTransform);PIXI.mat4.transpose(s),PIXI.mat4.multiply(e,s,s),i.uniformMatrix4fv(r.mvMatrixUniform,!1,s),t.blendMode==PIXI.blendModes.NORMAL?i.blendFunc(i.ONE,i.ONE_MINUS_SRC_ALPHA):i.blendFunc(i.ONE,i.ONE_MINUS_SRC_COLOR),t.dirty?(t.dirty=!1,i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferData(i.ARRAY_BUFFER,t.verticies,i.STATIC_DRAW),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferData(i.ARRAY_BUFFER,t.uvs,i.STATIC_DRAW),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.bufferData(i.ARRAY_BUFFER,t.colors,i.STATIC_DRAW),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer),i.bufferData(i.ELEMENT_ARRAY_BUFFER,t.indices,i.STATIC_DRAW)):(i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.verticies),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer)),i.drawElements(i.TRIANGLE_STRIP,t.indices.length,i.UNSIGNED_SHORT,0),i.uniformMatrix4fv(r.mvMatrixUniform,!1,e)},PIXI.WebGLRenderGroup.prototype.renderTilingSprite=function(t,e){var i=this.gl;PIXI.shaderProgram;var r=t.tilePosition,s=t.tileScale,n=r.x/t.texture.baseTexture.width,a=r.y/t.texture.baseTexture.height,o=t.width/t.texture.baseTexture.width/s.x,h=t.height/t.texture.baseTexture.height/s.y;t.uvs[0]=0-n,t.uvs[1]=0-a,t.uvs[2]=1*o-n,t.uvs[3]=0-a,t.uvs[4]=1*o-n,t.uvs[5]=1*h-a,t.uvs[6]=0-n,t.uvs[7]=1*h-a,i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.uvs),this.renderStrip(t,e)},PIXI.WebGLRenderer.prototype.initStrip=function(t){var e=this.gl;this.shaderProgram,t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW)},PIXI.CanvasRenderer=function(t,e,i,r){this.transparent=r,this.width=t||800,this.height=e||600,this.refresh=!0,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height,this.count=0,this.context=this.view.getContext("2d")},PIXI.CanvasRenderer.constructor=PIXI.CanvasRenderer,PIXI.CanvasRenderer.prototype.render=function(t){PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[],t.updateTransform(),this.view.style.backgroundColor==t.backgroundColorString||this.transparent||(this.view.style.backgroundColor=t.backgroundColorString),this.context.setTransform(1,0,0,1,0,0),this.context.clearRect(0,0,this.width,this.height),this.renderDisplayObject(t),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),PIXI.Texture.frameUpdates.length>0&&(PIXI.Texture.frameUpdates=[])},PIXI.CanvasRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e},PIXI.CanvasRenderer.prototype.renderDisplayObject=function(t){var e=t.worldTransform,i=this.context;if(t.visible){if(t instanceof PIXI.Sprite){var r=t.texture.frame;r&&(i.globalAlpha=t.worldAlpha,i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),i.drawImage(t.texture.baseTexture.source,r.x,r.y,r.width,r.height,t.anchor.x*-r.width,t.anchor.y*-r.height,r.width,r.height))}else t instanceof PIXI.Strip?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderStrip(t)):t instanceof PIXI.TilingSprite?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderTilingSprite(t)):t instanceof PIXI.CustomRenderable&&t.renderCanvas(this);for(var s=0;t.children.length>s;s++)this.renderDisplayObject(t.children[s]);this.context.setTransform(1,0,0,1,0,0)}},PIXI.CanvasRenderer.prototype.renderStripFlat=function(t){var e=this.context,i=t.verticies;t.uvs;var r=i.length/2;this.count++,e.beginPath();for(var s=1;r-2>s;s++){var n=2*s,a=i[n],o=i[n+2],h=i[n+4],u=i[n+1],c=i[n+3],d=i[n+5];e.moveTo(a,u),e.lineTo(o,c),e.lineTo(h,d)}e.fillStyle="#FF0000",e.fill(),e.closePath()},PIXI.CanvasRenderer.prototype.renderTilingSprite=function(t){var e=this.context;t.__tilePattern||(t.__tilePattern=e.createPattern(t.texture.baseTexture.source,"repeat")),e.beginPath();var i=t.tilePosition,r=t.tileScale;e.scale(r.x,r.y),e.translate(i.x,i.y),e.fillStyle=t.__tilePattern,e.fillRect(-i.x,-i.y,t.width/r.x,t.height/r.y),e.scale(1/r.x,1/r.y),e.translate(-i.x,-i.y),e.closePath()},PIXI.CanvasRenderer.prototype.renderStrip=function(t){var e=this.context,i=t.verticies,r=t.uvs,s=i.length/2;this.count++;for(var n=1;s-2>n;n++){var a=2*n,o=i[a],h=i[a+2],u=i[a+4],c=i[a+1],d=i[a+3],l=i[a+5],I=r[a]*t.texture.width,p=r[a+2]*t.texture.width,f=r[a+4]*t.texture.width,x=r[a+1]*t.texture.height,v=r[a+3]*t.texture.height,P=r[a+5]*t.texture.height;e.save(),e.beginPath(),e.moveTo(o,c),e.lineTo(h,d),e.lineTo(u,l),e.closePath(),e.clip();var g=I*v+x*f+p*P-v*f-x*p-I*P,b=o*v+x*u+h*P-v*u-x*h-o*P,X=I*h+o*f+p*u-h*f-o*p-I*u,m=I*v*u+x*h*f+o*p*P-o*v*f-x*p*u-I*h*P,T=c*v+x*l+d*P-v*l-x*d-c*P,y=I*d+c*f+p*l-d*f-c*p-I*l,_=I*v*l+x*d*f+c*p*P-c*v*f-x*p*l-I*d*P;e.transform(b/g,T/g,X/g,y/g,m/g,_/g),e.drawImage(t.texture.baseTexture.source,0,0),e.restore()}},PIXI.Strip=function(t,e,i){PIXI.DisplayObjectContainer.call(this),this.texture=t,this.blendMode=PIXI.blendModes.NORMAL;try{this.uvs=new Float32Array([0,1,1,1,1,0,0,1]),this.verticies=new Float32Array([0,0,0,0,0,0,0,0,0]),this.colors=new Float32Array([1,1,1,1]),this.indices=new Uint16Array([0,1,2,3])}catch(r){this.uvs=[0,1,1,1,1,0,0,1],this.verticies=[0,0,0,0,0,0,0,0,0],this.colors=[1,1,1,1],this.indices=[0,1,2,3]}this.width=e,this.height=i,t.baseTexture.hasLoaded?(this.width=this.texture.frame.width,this.height=this.texture.frame.height,this.updateFrame=!0):(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},PIXI.Strip.constructor=PIXI.Strip,PIXI.Strip.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Strip.prototype.setTexture=function(t){this.texture=t,this.width=t.frame.width,this.height=t.frame.height,this.updateFrame=!0},PIXI.Strip.prototype.onTextureUpdate=function(){this.updateFrame=!0},PIXI.Rope=function(t,e){PIXI.Strip.call(this,t),this.points=e;try{this.verticies=new Float32Array(4*e.length),this.uvs=new Float32Array(4*e.length),this.colors=new Float32Array(2*e.length),this.indices=new Uint16Array(2*e.length)}catch(i){this.verticies=verticies,this.uvs=uvs,this.colors=colors,this.indices=indices}this.refresh()},PIXI.Rope.constructor=PIXI.Rope,PIXI.Rope.prototype=Object.create(PIXI.Strip.prototype),PIXI.Rope.prototype.refresh=function(){var t=this.points;if(!(1>t.length)){var e=this.uvs,i=this.indices,r=this.colors,s=t[0],n=t[0];this.count-=.2,e[0]=0,e[1]=1,e[2]=0,e[3]=1,r[0]=1,r[1]=1,i[0]=0,i[1]=1;for(var a=t.length,o=1;a>o;o++){var n=t[o],h=4*o,u=o/(a-1);o%2?(e[h]=u,e[h+1]=0,e[h+2]=u,e[h+3]=1):(e[h]=u,e[h+1]=0,e[h+2]=u,e[h+3]=1),h=2*o,r[h]=1,r[h+1]=1,h=2*o,i[h]=h,i[h+1]=h+1,s=n}}},PIXI.Rope.prototype.updateTransform=function(){var t=this.points;if(!(1>t.length)){var e,i=this.verticies,r=t[0],s={x:0,y:0},n=t[0];this.count-=.2,i[0]=n.x+s.x,i[1]=n.y+s.y,i[2]=n.x-s.x,i[3]=n.y-s.y;for(var a=t.length,o=1;a>o;o++){var n=t[o],h=4*o;e=t.length-1>o?t[o+1]:n,s.y=-(e.x-r.x),s.x=e.y-r.y;var u=10*(1-o/(a-1));u>1&&(u=1);var c=Math.sqrt(s.x*s.x+s.y*s.y),d=this.texture.height/2;s.x/=c,s.y/=c,s.x*=d,s.y*=d,i[h]=n.x+s.x,i[h+1]=n.y+s.y,i[h+2]=n.x-s.x,i[h+3]=n.y-s.y,r=n}PIXI.DisplayObjectContainer.prototype.updateTransform.call(this)}},PIXI.Rope.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0},PIXI.TilingSprite=function(t,e,i){PIXI.DisplayObjectContainer.call(this),this.texture=t,this.width=e,this.height=i,this.renderable=!0,this.tileScale=new PIXI.Point(1,1),this.tilePosition=new PIXI.Point(0,0),this.blendMode=PIXI.blendModes.NORMAL},PIXI.TilingSprite.constructor=PIXI.TilingSprite,PIXI.TilingSprite.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.TilingSprite.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0},PIXI.TilingSprite.prototype.onTextureUpdate=function(){this.updateFrame=!0},PIXI.CustomRenderable=function(){PIXI.DisplayObject.call(this)},PIXI.CustomRenderable.constructor=PIXI.CustomRenderable,PIXI.CustomRenderable.prototype=Object.create(PIXI.DisplayObject.prototype),PIXI.CustomRenderable.prototype.renderCanvas=function(){},PIXI.CustomRenderable.prototype.initWebGL=function(){},PIXI.CustomRenderable.prototype.renderWebGL=function(){},PIXI.BaseTextureCache={},PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[],PIXI.BaseTexture=function(t){if(PIXI.EventTarget.call(this),this.width=100,this.height=100,this.source=t,t){if(this.source instanceof Image)if(this.source.complete)this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,PIXI.texturesToUpdate.push(this);else{var e=this;this.source.onload=function(){e.hasLoaded=!0,e.width=e.source.width,e.height=e.source.height,PIXI.texturesToUpdate.push(e),e.dispatchEvent({type:"loaded",content:e})}}else this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,PIXI.texturesToUpdate.push(this);this._powerOf2=!1}},PIXI.BaseTexture.constructor=PIXI.BaseTexture,PIXI.BaseTexture.prototype.destroy=function(){this.source instanceof Image&&(this.source.src=null),this.source=null,PIXI.texturesToDestroy.push(this)},PIXI.BaseTexture.fromImage=function(t,e){var i=PIXI.BaseTextureCache[t];if(!i){var r=new Image;e&&(r.crossOrigin=""),r.src=t,i=new PIXI.BaseTexture(r),PIXI.BaseTextureCache[t]=i}return i},PIXI.TextureCache={},PIXI.FrameCache={},PIXI.Texture=function(t,e){if(PIXI.EventTarget.call(this),e||(this.noFrame=!0,e=new PIXI.Rectangle(0,0,1,1)),this.trim=new PIXI.Point,t instanceof PIXI.Texture&&(t=t.baseTexture),this.baseTexture=t,this.frame=e,this.scope=this,t.hasLoaded)this.noFrame&&(e=new PIXI.Rectangle(0,0,t.width,t.height)),this.setFrame(e);else{var i=this;t.addEventListener("loaded",function(){i.onBaseTextureLoaded()})}},PIXI.Texture.constructor=PIXI.Texture,PIXI.Texture.prototype.onBaseTextureLoaded=function(){var t=this.baseTexture;t.removeEventListener("loaded",this.onLoaded),this.noFrame&&(this.frame=new PIXI.Rectangle(0,0,t.width,t.height)),this.noFrame=!1,this.width=this.frame.width,this.height=this.frame.height,this.scope.dispatchEvent({type:"update",content:this})},PIXI.Texture.prototype.destroy=function(t){t&&this.baseTexture.destroy()},PIXI.Texture.prototype.setFrame=function(t){if(this.frame=t,this.width=t.width,this.height=t.height,t.x+t.width>this.baseTexture.width||t.y+t.height>this.baseTexture.height)throw Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);this.updateFrame=!0,PIXI.Texture.frameUpdates.push(this)},PIXI.Texture.fromImage=function(t,e){var i=PIXI.TextureCache[t];return i||(i=new PIXI.Texture(PIXI.BaseTexture.fromImage(t,e)),PIXI.TextureCache[t]=i),i},PIXI.Texture.fromFrame=function(t){var e=PIXI.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache "+this);return e},PIXI.Texture.fromCanvas=function(t){var e=new PIXI.BaseTexture(t);return new PIXI.Texture(e)},PIXI.Texture.addTextureToCache=function(t,e){PIXI.TextureCache[e]=t},PIXI.Texture.removeTextureFromCache=function(t){var e=PIXI.TextureCache[t];return PIXI.TextureCache[t]=null,e},PIXI.Texture.frameUpdates=[],PIXI.RenderTexture=function(t,e){PIXI.EventTarget.call(this),this.width=t||100,this.height=e||100,this.indetityMatrix=PIXI.mat3.create(),this.frame=new PIXI.Rectangle(0,0,this.width,this.height),PIXI.gl?this.initWebGL():this.initCanvas()},PIXI.RenderTexture.constructor=PIXI.RenderTexture,PIXI.RenderTexture.prototype=Object.create(PIXI.Texture.prototype),PIXI.RenderTexture.prototype.initWebGL=function(){var t=PIXI.gl;this.glFramebuffer=t.createFramebuffer(),t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),this.glFramebuffer.width=this.width,this.glFramebuffer.height=this.height,this.baseTexture=new PIXI.BaseTexture,this.baseTexture.width=this.width,this.baseTexture.height=this.height,this.baseTexture._glTexture=t.createTexture(),t.bindTexture(t.TEXTURE_2D,this.baseTexture._glTexture),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,this.width,this.height,0,t.RGBA,t.UNSIGNED_BYTE,null),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),this.baseTexture.isRender=!0,t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,this.baseTexture._glTexture,0),this.projectionMatrix=PIXI.mat4.create(),this.projectionMatrix[5]=2/this.height,this.projectionMatrix[13]=-1,this.projectionMatrix[0]=2/this.width,this.projectionMatrix[12]=-1,this.render=this.renderWebGL},PIXI.RenderTexture.prototype.initCanvas=function(){this.renderer=new PIXI.CanvasRenderer(this.width,this.height,null,0),this.baseTexture=new PIXI.BaseTexture(this.renderer.view),this.frame=new PIXI.Rectangle(0,0,this.width,this.height),this.render=this.renderCanvas},PIXI.RenderTexture.prototype.renderWebGL=function(t,e){var i=PIXI.gl;i.colorMask(!0,!0,!0,!0),i.viewport(0,0,this.width,this.height),i.bindFramebuffer(i.FRAMEBUFFER,this.glFramebuffer),e&&(i.clearColor(0,0,0,0),i.clear(i.COLOR_BUFFER_BIT));var r=t.children;t.worldTransform=PIXI.mat3.create();for(var s=0,n=r.length;n>s;s++)r[s].updateTransform();var a=t.__renderGroup;a?t==a.root?a.render(this.projectionMatrix):a.renderSpecific(t,this.projectionMatrix):(this.renderGroup||(this.renderGroup=new PIXI.WebGLRenderGroup(i)),this.renderGroup.setRenderable(t),this.renderGroup.render(this.projectionMatrix))},PIXI.RenderTexture.prototype.renderCanvas=function(t,e){var i=t.children;t.worldTransform=PIXI.mat3.create();for(var r=0,s=i.length;s>r;r++)i[r].updateTransform();e&&this.renderer.context.clearRect(0,0,this.width,this.height),this.renderer.renderDisplayObject(t),PIXI.texturesToUpdate.push(this.baseTexture)},PIXI.AssetLoader=function(t){PIXI.EventTarget.call(this),this.assetURLs=t,this.crossorigin=!1,this.loadersByType={jpg:PIXI.ImageLoader,jpeg:PIXI.ImageLoader,png:PIXI.ImageLoader,gif:PIXI.ImageLoader,json:PIXI.SpriteSheetLoader,xml:PIXI.BitmapFontLoader,fnt:PIXI.BitmapFontLoader}},PIXI.AssetLoader.constructor=PIXI.AssetLoader,PIXI.AssetLoader.prototype.load=function(){var t=this;this.loadCount=this.assetURLs.length;for(var e=0;this.assetURLs.length>e;e++){var i=this.assetURLs[e],r=i.split(".").pop().toLowerCase(),s=this.loadersByType[r];if(!s)throw Error(r+" is an unsupported file type");var n=new s(i,this.crossorigin);n.addEventListener("loaded",function(){t.onAssetLoaded()}),n.load()}},PIXI.AssetLoader.prototype.onAssetLoaded=function(){this.loadCount--,this.dispatchEvent({type:"onProgress",content:this}),this.onProgress&&this.onProgress(),0==this.loadCount&&(this.dispatchEvent({type:"onComplete",content:this}),this.onComplete&&this.onComplete())},PIXI.SpriteSheetLoader=function(t,e){PIXI.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.frames={},this.crossorigin=e},PIXI.SpriteSheetLoader.constructor=PIXI.SpriteSheetLoader,PIXI.SpriteSheetLoader.prototype.load=function(){this.ajaxRequest=new AjaxRequest;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onJSONLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/json"),this.ajaxRequest.send(null)},PIXI.SpriteSheetLoader.prototype.onJSONLoaded=function(){if(4==this.ajaxRequest.readyState&&(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))){var jsonData=eval("("+this.ajaxRequest.responseText+")"),textureUrl=this.baseUrl+jsonData.meta.image,image=new PIXI.ImageLoader(textureUrl,this.crossorigin);this.texture=image.texture.baseTexture;var scope=this;image.addEventListener("loaded",function(){scope.onLoaded()});var frameData=jsonData.frames;for(var i in frameData){var rect=frameData[i].frame;rect&&(PIXI.TextureCache[i]=new PIXI.Texture(this.texture,{x:rect.x,y:rect.y,width:rect.w,height:rect.h}),frameData[i].trimmed&&(PIXI.TextureCache[i].realSize=frameData[i].spriteSourceSize,PIXI.TextureCache[i].trim.x=0))}image.load()}},PIXI.SpriteSheetLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},PIXI.ImageLoader=function(t,e){PIXI.EventTarget.call(this),this.texture=PIXI.Texture.fromImage(t,e)},PIXI.ImageLoader.constructor=PIXI.ImageLoader,PIXI.ImageLoader.prototype.load=function(){if(this.texture.baseTexture.hasLoaded)this.onLoaded();else{var t=this;this.texture.baseTexture.addEventListener("loaded",function(){t.onLoaded()})}},PIXI.ImageLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},PIXI.BitmapFontLoader=function(t,e){PIXI.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.crossorigin=e},PIXI.BitmapFontLoader.constructor=PIXI.BitmapFontLoader,PIXI.BitmapFontLoader.prototype.load=function(){this.ajaxRequest=new XMLHttpRequest;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onXMLLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/xml"),this.ajaxRequest.send(null)},PIXI.BitmapFontLoader.prototype.onXMLLoaded=function(){if(4==this.ajaxRequest.readyState&&(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))){var t=this.baseUrl+this.ajaxRequest.responseXML.getElementsByTagName("page")[0].attributes.getNamedItem("file").nodeValue,e=new PIXI.ImageLoader(t,this.crossorigin);this.texture=e.texture.baseTexture;var i={},r=this.ajaxRequest.responseXML.getElementsByTagName("info")[0],s=this.ajaxRequest.responseXML.getElementsByTagName("common")[0];i.font=r.attributes.getNamedItem("face").nodeValue,i.size=parseInt(r.attributes.getNamedItem("size").nodeValue,10),i.lineHeight=parseInt(s.attributes.getNamedItem("lineHeight").nodeValue,10),i.chars={};for(var n=this.ajaxRequest.responseXML.getElementsByTagName("char"),a=0;n.length>a;a++){var o=parseInt(n[a].attributes.getNamedItem("id").nodeValue,10),h={x:parseInt(n[a].attributes.getNamedItem("x").nodeValue,10),y:parseInt(n[a].attributes.getNamedItem("y").nodeValue,10),width:parseInt(n[a].attributes.getNamedItem("width").nodeValue,10),height:parseInt(n[a].attributes.getNamedItem("height").nodeValue,10)};PIXI.TextureCache[o]=new PIXI.Texture(this.texture,h),i.chars[o]={xOffset:parseInt(n[a].attributes.getNamedItem("xoffset").nodeValue,10),yOffset:parseInt(n[a].attributes.getNamedItem("yoffset").nodeValue,10),xAdvance:parseInt(n[a].attributes.getNamedItem("xadvance").nodeValue,10),kerning:{}}}var u=this.ajaxRequest.responseXML.getElementsByTagName("kerning");for(a=0;u.length>a;a++){var c=parseInt(u[a].attributes.getNamedItem("first").nodeValue,10),d=parseInt(u[a].attributes.getNamedItem("second").nodeValue,10),l=parseInt(u[a].attributes.getNamedItem("amount").nodeValue,10);i.chars[d].kerning[c]=l}PIXI.BitmapText.fonts[i.font]=i;var I=this;e.addEventListener("loaded",function(){I.onLoaded()}),e.load()}},PIXI.BitmapFontLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=PIXI),exports.PIXI=PIXI):root.PIXI=PIXI}).call(this); \ No newline at end of file +(function(){function HEXtoRGB(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}function determineMatrixArrayType(){return PIXI.Matrix="undefined"!=typeof Float32Array?Float32Array:Array,PIXI.Matrix}var root=this,PIXI=PIXI||{};PIXI.Point=function(t,e){this.x=t||0,this.y=e||0},PIXI.Point.prototype.clone=function(){return new PIXI.Point(this.x,this.y)},PIXI.Point.constructor=PIXI.Point,PIXI.Rectangle=function(t,e,i,r){this.x=t||0,this.y=e||0,this.width=i||0,this.height=r||0},PIXI.Rectangle.prototype.clone=function(){return new PIXI.Rectangle(this.x,this.y,this.width,this.height)},PIXI.Rectangle.constructor=PIXI.Rectangle,PIXI.DisplayObject=function(){this.position=new PIXI.Point,this.scale=new PIXI.Point(1,1),this.pivot=new PIXI.Point(0,0),this.rotation=0,this.alpha=1,this.visible=!0,this.worldVisible=!1,this.parent=null,this.stage=null,this.hitArea=null,this.worldAlpha=1,this.color=[],this.worldTransform=PIXI.mat3.create(),this.localTransform=PIXI.mat3.create(),this.dynamic=!0,this._sr=0,this._cr=1,this.childIndex=0,this.renderable=!1,this.interactive=!1,this.buttonMode=!1},PIXI.DisplayObject.constructor=PIXI.DisplayObject,PIXI.DisplayObject.prototype.setInteractive=function(t){this.interactive=t,this.stage&&(this.stage.dirty=!0)},PIXI.DisplayObject.prototype.updateTransform=function(){this.rotation!=this.rotationCache&&(this.rotationCache=this.rotation,this._sr=Math.sin(this.rotation),this._cr=Math.cos(this.rotation));var t=this.localTransform,e=this.parent.worldTransform,i=this.worldTransform;t[0]=this._cr*this.scale.x,t[1]=-this._sr*this.scale.y,t[3]=this._sr*this.scale.x,t[4]=this._cr*this.scale.y;var r=this.pivot.x,s=this.pivot.y;t[2]=this.position.x-t[0]*r-s*t[1],t[5]=this.position.y-t[4]*s-r*t[3];var n=t[0],a=t[1],o=t[2],h=t[3],u=t[4],d=t[5],c=e[0],l=e[1],I=e[2],p=e[3],f=e[4],x=e[5];i[0]=c*n+l*h,i[1]=c*a+l*u,i[2]=c*o+l*d+I,i[3]=p*n+f*h,i[4]=p*a+f*u,i[5]=p*o+f*d+x,this.worldAlpha=this.alpha*this.parent.worldAlpha},PIXI.DisplayObjectContainer=function(){PIXI.DisplayObject.call(this),this.children=[],this.renderable=!1},PIXI.DisplayObjectContainer.constructor=PIXI.DisplayObjectContainer,PIXI.DisplayObjectContainer.prototype=Object.create(PIXI.DisplayObject.prototype),PIXI.DisplayObjectContainer.prototype.addChild=function(t){void 0!=t.parent&&t.parent.removeChild(t),t.parent=this,t.childIndex=this.children.length,this.children.push(t),this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},PIXI.DisplayObjectContainer.prototype.addChildAt=function(t,e){if(!(e>=0&&this.children.length>=e))throw Error(t+" The index "+e+" supplied is out of bounds "+this.children.length);void 0!=t.parent&&t.parent.removeChild(t),e==this.children.length?this.children.push(t):this.children.splice(e,0,t),t.parent=this,t.childIndex=e;for(var i=this.children.length,r=e;i>r;r++)this.children[r].childIndex=r;this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},PIXI.DisplayObjectContainer.prototype.swapChildren=function(t,e){var i=this.children.indexOf(t),r=this.children.indexOf(e);if(-1===i||-1===r)throw Error(t+" Both the supplied DisplayObjects must be a child of the caller "+this);this.stage&&(this.stage.__removeChild(t),this.stage.__removeChild(e),this.stage.__addChild(t),this.stage.__addChild(e)),t.childIndex=r,e.childIndex=i,this.children[i]=e,this.children[r]=t},PIXI.DisplayObjectContainer.prototype.getChildAt=function(t){if(t>=0&&this.children.length>t)return this.children[t];throw Error(child+" Both the supplied DisplayObjects must be a child of the caller "+this)},PIXI.DisplayObjectContainer.prototype.removeChild=function(t){var e=this.children.indexOf(t);if(-1===e)throw Error(t+" The supplied DisplayObject must be a child of the caller "+this);this.stage&&this.stage.__removeChild(t),t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.parent=void 0,this.children.splice(e,1);for(var i=e,r=this.children.length;r>i;i++)this.children[i].childIndex-=1},PIXI.DisplayObjectContainer.prototype.updateTransform=function(){if(this.visible){PIXI.DisplayObject.prototype.updateTransform.call(this);for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform()}},PIXI.blendModes={},PIXI.blendModes.NORMAL=0,PIXI.blendModes.SCREEN=1,PIXI.Sprite=function(t){PIXI.DisplayObjectContainer.call(this),this.anchor=new PIXI.Point,this.texture=t,this.blendMode=PIXI.blendModes.NORMAL,this._width=0,this._height=0,t.baseTexture.hasLoaded?this.updateFrame=!0:(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},PIXI.Sprite.constructor=PIXI.Sprite,PIXI.Sprite.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),Object.defineProperty(PIXI.Sprite.prototype,"width",{get:function(){return this.scale.x*this.texture.frame.width},set:function(t){this.scale.x=t/this.texture.frame.width,this._width=t}}),Object.defineProperty(PIXI.Sprite.prototype,"height",{get:function(){return this.scale.y*this.texture.frame.height},set:function(t){this.scale.y=t/this.texture.frame.height,this._height=t}}),PIXI.Sprite.prototype.setTexture=function(t){this.texture.baseTexture!=t.baseTexture&&(this.textureChange=!0),this.texture=t,this.updateFrame=!0},PIXI.Sprite.prototype.onTextureUpdate=function(){this._width&&(this.scale.x=this._width/this.texture.frame.width),this._height&&(this.scale.y=this._height/this.texture.frame.height),this.updateFrame=!0},PIXI.Sprite.fromFrame=function(t){var e=PIXI.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache"+this);return new PIXI.Sprite(e)},PIXI.Sprite.fromImage=function(t){var e=PIXI.Texture.fromImage(t);return new PIXI.Sprite(e)},PIXI.MovieClip=function(t){PIXI.Sprite.call(this,t[0]),this.textures=t,this.currentFrame=0,this.animationSpeed=1,this.loop=!0,this.onComplete=null,this.playing},PIXI.MovieClip.constructor=PIXI.MovieClip,PIXI.MovieClip.prototype=Object.create(PIXI.Sprite.prototype),PIXI.MovieClip.prototype.stop=function(){this.playing=!1},PIXI.MovieClip.prototype.play=function(){this.playing=!0},PIXI.MovieClip.prototype.gotoAndStop=function(t){this.playing=!1,this.currentFrame=t;var e=0|this.currentFrame+.5;this.setTexture(this.textures[e%this.textures.length])},PIXI.MovieClip.prototype.gotoAndPlay=function(t){this.currentFrame=t,this.playing=!0},PIXI.MovieClip.prototype.updateTransform=function(){if(PIXI.Sprite.prototype.updateTransform.call(this),this.playing){this.currentFrame+=this.animationSpeed;var t=0|this.currentFrame+.5;this.loop||this.textures.length>t?this.setTexture(this.textures[t%this.textures.length]):t>=this.textures.length&&(this.gotoAndStop(this.textures.length-1),this.onComplete&&this.onComplete())}},PIXI.Text=function(t,e){this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"),PIXI.Sprite.call(this,PIXI.Texture.fromCanvas(this.canvas)),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},PIXI.Text.constructor=PIXI.Text,PIXI.Text.prototype=Object.create(PIXI.Sprite.prototype),PIXI.Text.prototype.setStyle=function(t){t=t||{},t.font=t.font||"bold 20pt Arial",t.fill=t.fill||"black",t.align=t.align||"left",t.strokeThickness=t.strokeThickness||0,this.style=t,this.dirty=!0},PIXI.Sprite.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},PIXI.Text.prototype.updateText=function(){this.context.font=this.style.font;for(var t=this.text.split(/(?:\r\n|\r|\n)/),e=[],i=0,r=0;t.length>r;r++){var s=this.context.measureText(t[r]).width;e[r]=s,i=Math.max(i,s)}this.canvas.width=i+this.style.strokeThickness;var n=this.determineFontHeight("font: "+this.style.font+";")+this.style.strokeThickness;for(this.canvas.height=n*t.length,this.context.fillStyle=this.style.fill,this.context.font=this.style.font,this.context.strokeStyle=this.style.stroke,this.context.lineWidth=this.style.strokeThickness,this.context.textBaseline="top",r=0;t.length>r;r++){var a=new PIXI.Point(this.style.strokeThickness/2,this.style.strokeThickness/2+r*n);"right"==this.style.align?a.x+=i-e[r]:"center"==this.style.align&&(a.x+=(i-e[r])/2),this.style.stroke&&this.style.strokeThickness&&this.context.strokeText(t[r],a.x,a.y),this.style.fill&&this.context.fillText(t[r],a.x,a.y)}this.updateTexture()},PIXI.Text.prototype.updateTexture=function(){this.texture.baseTexture.width=this.canvas.width,this.texture.baseTexture.height=this.canvas.height,this.texture.frame.width=this.canvas.width,this.texture.frame.height=this.canvas.height,this._width=this.canvas.width,this._height=this.canvas.height,PIXI.texturesToUpdate.push(this.texture.baseTexture)},PIXI.Text.prototype.updateTransform=function(){this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype.updateTransform.call(this)},PIXI.Text.prototype.determineFontHeight=function(t){var e=PIXI.Text.heightCache[t];if(!e){var i=document.getElementsByTagName("body")[0],r=document.createElement("div"),s=document.createTextNode("M");r.appendChild(s),r.setAttribute("style",t),i.appendChild(r),e=r.offsetHeight,PIXI.Text.heightCache[t]=e,i.removeChild(r)}return e},PIXI.Text.prototype.destroy=function(t){t&&this.texture.destroy()},PIXI.Text.heightCache={},PIXI.BitmapText=function(t,e){PIXI.DisplayObjectContainer.call(this),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},PIXI.BitmapText.constructor=PIXI.BitmapText,PIXI.BitmapText.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.BitmapText.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},PIXI.BitmapText.prototype.setStyle=function(t){t=t||{},t.align=t.align||"left",this.style=t;var e=t.font.split(" ");this.fontName=e[e.length-1],this.fontSize=e.length>=2?parseInt(e[e.length-2],10):PIXI.BitmapText.fonts[this.fontName].size,this.dirty=!0},PIXI.BitmapText.prototype.updateText=function(){for(var t=PIXI.BitmapText.fonts[this.fontName],e=new PIXI.Point,i=null,r=[],s=0,n=[],a=0,o=this.fontSize/t.size,h=0;this.text.length>h;h++){var u=this.text.charCodeAt(h);if(/(?:\r\n|\r|\n)/.test(this.text.charAt(h)))n.push(e.x),s=Math.max(s,e.x),a++,e.x=0,e.y+=t.lineHeight,i=null;else{var d=t.chars[u];d&&(i&&d[i]&&(e.x+=d.kerning[i]),r.push({line:a,charCode:u,position:new PIXI.Point(e.x+d.xOffset,e.y+d.yOffset)}),e.x+=d.xAdvance,i=u)}}n.push(e.x),s=Math.max(s,e.x);var c=[];for(h=0;a>=h;h++){var l=0;"right"==this.style.align?l=s-n[h]:"center"==this.style.align&&(l=(s-n[h])/2),c.push(l)}for(h=0;r.length>h;h++){var I=PIXI.Sprite.fromFrame(r[h].charCode);I.position.x=(r[h].position.x+c[r[h].line])*o,I.position.y=r[h].position.y*o,I.scale.x=I.scale.y=o,this.addChild(I)}this.width=e.x*o,this.height=(e.y+t.lineHeight)*o},PIXI.BitmapText.prototype.updateTransform=function(){if(this.dirty){for(;this.children.length>0;)this.removeChild(this.getChildAt(0));this.updateText(),this.dirty=!1}PIXI.DisplayObjectContainer.prototype.updateTransform.call(this)},PIXI.BitmapText.fonts={},PIXI.InteractionManager=function(t){this.stage=t,this.tempPoint=new PIXI.Point,this.mouseoverEnabled=!0,this.mouse=new PIXI.InteractionData,this.touchs={},this.pool=[],this.interactiveItems=[],this.last=0},PIXI.InteractionManager.constructor=PIXI.InteractionManager,PIXI.InteractionManager.prototype.collectInteractiveSprite=function(t,e){for(var i=t.children,r=i.length,s=r-1;s>=0;s--){var n=i[s];n.interactive?(e.interactiveChildren=!0,this.interactiveItems.push(n),n.children.length>0&&this.collectInteractiveSprite(n,n)):(n.__iParent=null,n.children.length>0&&this.collectInteractiveSprite(n,e))}},PIXI.InteractionManager.prototype.setTarget=function(t){window.navigator.msPointerEnabled&&(t.view.style["-ms-content-zooming"]="none",t.view.style["-ms-touch-action"]="none"),this.target=t,t.view.addEventListener("mousemove",this.onMouseMove.bind(this),!0),t.view.addEventListener("mousedown",this.onMouseDown.bind(this),!0),document.body.addEventListener("mouseup",this.onMouseUp.bind(this),!0),t.view.addEventListener("mouseout",this.onMouseUp.bind(this),!0),t.view.addEventListener("touchstart",this.onTouchStart.bind(this),!0),t.view.addEventListener("touchend",this.onTouchEnd.bind(this),!0),t.view.addEventListener("touchmove",this.onTouchMove.bind(this),!0)},PIXI.InteractionManager.prototype.update=function(){if(this.target){var t=Date.now(),e=t-this.last;if(e=30*e/1e3,!(1>e)){if(this.last=t,this.dirty){this.dirty=!1,this.interactiveItems.length;for(var i=0;this.interactiveItems.length>i;i++)this.interactiveItems[i].interactiveChildren=!1;this.interactiveItems=[],this.stage.interactive&&this.interactiveItems.push(this.stage),this.collectInteractiveSprite(this.stage,this.stage)}var r=this.interactiveItems.length;this.target.view.style.cursor="default";for(var i=0;r>i;i++){var s=this.interactiveItems[i];s.visible&&(s.mouseover||s.mouseout||s.buttonMode)&&(s.__hit=this.hitTest(s,this.mouse),s.__hit?(s.buttonMode&&(this.target.view.style.cursor="pointer"),s.__isOver||(s.mouseover&&s.mouseover(this.mouse),s.__isOver=!0)):s.__isOver&&(s.mouseout&&s.mouseout(this.mouse),s.__isOver=!1))}}}},PIXI.InteractionManager.prototype.onMouseMove=function(t){t.preventDefault();var e=this.target.view.getBoundingClientRect();this.mouse.global.x=(t.clientX-e.left)*(this.target.width/e.width),this.mouse.global.y=(t.clientY-e.top)*(this.target.height/e.height);var i=this.interactiveItems.length;this.mouse.global;for(var r=0;i>r;r++){var s=this.interactiveItems[r];s.mousemove&&s.mousemove(this.mouse)}},PIXI.InteractionManager.prototype.onMouseDown=function(t){t.preventDefault();var e=this.interactiveItems.length;this.mouse.global,this.stage;for(var i=0;e>i;i++){var r=this.interactiveItems[i];if((r.mousedown||r.click)&&(r.__mouseIsDown=!0,r.__hit=this.hitTest(r,this.mouse),r.__hit&&(r.mousedown&&r.mousedown(this.mouse),r.__isDown=!0,!r.interactiveChildren)))break}},PIXI.InteractionManager.prototype.onMouseUp=function(t){t.preventDefault(),this.mouse.global;for(var e=this.interactiveItems.length,i=!1,r=0;e>r;r++){var s=this.interactiveItems[r];(s.mouseup||s.mouseupoutside||s.click)&&(s.__hit=this.hitTest(s,this.mouse),s.__hit&&!i?(s.mouseup&&s.mouseup(this.mouse),s.__isDown&&s.click&&s.click(this.mouse),s.interactiveChildren||(i=!0)):s.__isDown&&s.mouseupoutside&&s.mouseupoutside(this.mouse),s.__isDown=!1)}},PIXI.InteractionManager.prototype.hitTest=function(t,e){var i=e.global;if(!t.visible)return!1;if(t instanceof PIXI.Sprite){var r=t.worldTransform,s=r[0],n=r[1],a=r[2],o=r[3],h=r[4],u=r[5],d=1/(s*h+n*-o),c=h*d*i.x+-n*d*i.y+(u*n-a*h)*d,l=s*d*i.y+-o*d*i.x+(-u*s+a*o)*d,I=t.texture.frame.width,p=t.texture.frame.height,f=-I*t.anchor.x;if(c>f&&f+I>c){var x=-p*t.anchor.y;if(l>x&&x+p>l)return e.target=t,!0}}else if(t.hitArea){var r=t.worldTransform,v=t.hitArea,s=r[0],n=r[1],a=r[2],o=r[3],h=r[4],u=r[5],d=1/(s*h+n*-o),c=h*d*i.x+-n*d*i.y+(u*n-a*h)*d,l=s*d*i.y+-o*d*i.x+(-u*s+a*o)*d,f=v.x;if(c>f&&f+v.width>c){var x=v.y;if(l>x&&x+v.height>l)return!0}}for(var P=t.children.length,g=0;P>g;g++){var b=t.children[g],X=this.hitTest(b,e);if(X)return!0}return!1},PIXI.InteractionManager.prototype.onTouchMove=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.touchs[s.identifier];n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height)}for(var a=this.interactiveItems.length,r=0;a>r;r++){var o=this.interactiveItems[r];o.touchmove&&o.touchmove(n)}},PIXI.InteractionManager.prototype.onTouchStart=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.pool.pop();n||(n=new PIXI.InteractionData),this.touchs[s.identifier]=n,n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height);for(var a=this.interactiveItems.length,o=0;a>o;o++){var h=this.interactiveItems[o];if((h.touchstart||h.tap)&&(h.__hit=this.hitTest(h,n),h.__hit&&(h.touchstart&&h.touchstart(n),h.__isDown=!0,h.__touchData=n,!h.interactiveChildren)))break}}},PIXI.InteractionManager.prototype.onTouchEnd=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.touchs[s.identifier],a=!1;n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var u=this.interactiveItems[h],d=u.__touchData;u.__hit=this.hitTest(u,n),d==n&&((u.touchend||u.tap)&&(u.__hit&&!a?(u.touchend&&u.touchend(n),u.__isDown&&u.tap&&u.tap(n),u.interactiveChildren||(a=!0)):u.__isDown&&u.touchendoutside&&u.touchendoutside(n),u.__isDown=!1),u.__touchData=null)}this.pool.push(n),this.touchs[s.identifier]=null}},PIXI.InteractionData=function(){this.global=new PIXI.Point,this.local=new PIXI.Point,this.target},PIXI.InteractionData.prototype.getLocalPosition=function(t){var e=t.worldTransform,i=this.global,r=e[0],s=e[1],n=e[2],a=e[3],o=e[4],h=e[5],u=1/(r*o+s*-a);return new PIXI.Point(o*u*i.x+-s*u*i.y+(h*s-n*o)*u,r*u*i.y+-a*u*i.x+(-h*r+n*a)*u)},PIXI.InteractionData.constructor=PIXI.InteractionData,PIXI.Stage=function(t,e){PIXI.DisplayObjectContainer.call(this),this.worldTransform=PIXI.mat3.create(),this.__childrenAdded=[],this.__childrenRemoved=[],this.childIndex=0,this.stage=this,this.stage.hitArea=new PIXI.Rectangle(0,0,1e5,1e5),this.interactive=!!e,this.interactionManager=new PIXI.InteractionManager(this),this.setBackgroundColor(t),this.worldVisible=!0},PIXI.Stage.constructor=PIXI.Stage,PIXI.Stage.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Stage.prototype.updateTransform=function(){this.worldAlpha=1;for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform();this.dirty&&(this.dirty=!1,this.interactionManager.dirty=!0),this.interactive&&this.interactionManager.update()},PIXI.Stage.prototype.setBackgroundColor=function(t){this.backgroundColor=t||0,this.backgroundColorSplit=HEXtoRGB(this.backgroundColor),this.backgroundColorString="#"+this.backgroundColor.toString(16)},PIXI.Stage.prototype.getMousePosition=function(){return this.interactionManager.mouse.global},PIXI.Stage.prototype.__addChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=this,t.children)for(var e=0;t.children.length>e;e++)this.__addChild(t.children[e])},PIXI.Stage.prototype.__removeChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=void 0,t.children)for(var e=0,i=t.children.length;i>e;e++)this.__removeChild(t.children[e])},window.requestAnimFrame=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(t){window.setTimeout(t,1e3/60)}}(),"function"!=typeof Function.prototype.bind&&(Function.prototype.bind=function(){var t=Array.prototype.slice;return function(e){function i(){var n=s.concat(t.call(arguments));r.apply(this instanceof i?this:e,n)}var r=this,s=t.call(arguments,1);if("function"!=typeof r)throw new TypeError;return i.prototype=function n(t){return t&&(n.prototype=t),this instanceof n?void 0:new n}(r.prototype),i}}());var AjaxRequest=function(){var t=["Msxml2.XMLHTTP","Microsoft.XMLHTTP"];if(!window.ActiveXObject)return window.XMLHttpRequest?new XMLHttpRequest:!1;for(var e=0;t.length>e;e++)try{return new ActiveXObject(t[e])}catch(i){}};PIXI.EventTarget=function(){var t={};this.addEventListener=this.on=function(e,i){void 0===t[e]&&(t[e]=[]),-1===t[e].indexOf(i)&&t[e].push(i)},this.dispatchEvent=this.emit=function(e){for(var i in t[e.type])t[e.type][i](e)},this.removeEventListener=this.off=function(e,i){var r=t[e].indexOf(i);-1!==r&&t[e].splice(r,1)}},determineMatrixArrayType(),PIXI.mat3={},PIXI.mat3.create=function(){var t=new PIXI.Matrix(9);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},PIXI.mat4={},PIXI.mat4.create=function(){var t=new PIXI.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},PIXI.mat3.multiply=function(t,e,i){i||(i=t);var r=t[0],s=t[1],n=t[2],a=t[3],o=t[4],h=t[5],u=t[6],d=t[7],c=t[8],l=e[0],I=e[1],p=e[2],f=e[3],x=e[4],v=e[5],P=e[6],g=e[7],b=e[8];return i[0]=l*r+I*a+p*u,i[1]=l*s+I*o+p*d,i[2]=l*n+I*h+p*c,i[3]=f*r+x*a+v*u,i[4]=f*s+x*o+v*d,i[5]=f*n+x*h+v*c,i[6]=P*r+g*a+b*u,i[7]=P*s+g*o+b*d,i[8]=P*n+g*h+b*c,i},PIXI.mat3.toMat4=function(t,e){return e||(e=PIXI.mat4.create()),e[15]=1,e[14]=0,e[13]=0,e[12]=0,e[11]=0,e[10]=t[8],e[9]=t[7],e[8]=t[6],e[7]=0,e[6]=t[5],e[5]=t[4],e[4]=t[3],e[3]=0,e[2]=t[2],e[1]=t[1],e[0]=t[0],e},PIXI.mat4.create=function(){var t=new PIXI.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},PIXI.mat4.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],s=t[3],n=t[6],a=t[7],o=t[11];return t[1]=t[4],t[2]=t[8],t[3]=t[12],t[4]=i,t[6]=t[9],t[7]=t[13],t[8]=r,t[9]=n,t[11]=t[14],t[12]=s,t[13]=a,t[14]=o,t}return e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=t[1],e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=t[2],e[9]=t[6],e[10]=t[10],e[11]=t[14],e[12]=t[3],e[13]=t[7],e[14]=t[11],e[15]=t[15],e},PIXI.mat4.multiply=function(t,e,i){i||(i=t);var r=t[0],s=t[1],n=t[2],a=t[3],o=t[4],h=t[5],u=t[6],d=t[7],c=t[8],l=t[9],I=t[10],p=t[11],f=t[12],x=t[13],v=t[14],P=t[15],g=e[0],b=e[1],X=e[2],m=e[3];return i[0]=g*r+b*o+X*c+m*f,i[1]=g*s+b*h+X*l+m*x,i[2]=g*n+b*u+X*I+m*v,i[3]=g*a+b*d+X*p+m*P,g=e[4],b=e[5],X=e[6],m=e[7],i[4]=g*r+b*o+X*c+m*f,i[5]=g*s+b*h+X*l+m*x,i[6]=g*n+b*u+X*I+m*v,i[7]=g*a+b*d+X*p+m*P,g=e[8],b=e[9],X=e[10],m=e[11],i[8]=g*r+b*o+X*c+m*f,i[9]=g*s+b*h+X*l+m*x,i[10]=g*n+b*u+X*I+m*v,i[11]=g*a+b*d+X*p+m*P,g=e[12],b=e[13],X=e[14],m=e[15],i[12]=g*r+b*o+X*c+m*f,i[13]=g*s+b*h+X*l+m*x,i[14]=g*n+b*u+X*I+m*v,i[15]=g*a+b*d+X*p+m*P,i},PIXI.autoDetectRenderer=function(t,e,i,r){t||(t=800),e||(e=600);var s=function(){try{return!!window.WebGLRenderingContext&&!!document.createElement("canvas").getContext("experimental-webgl")}catch(t){return!1}}();return s?new PIXI.WebGLRenderer(t,e,i,r):new PIXI.CanvasRenderer(t,e,i,r)},PIXI.shaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * vColor;","}"],PIXI.shaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform mat4 uMVMatrix;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","gl_Position = uMVMatrix * vec4(aVertexPosition, 1.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],PIXI.CompileVertexShader=function(t,e){return PIXI._CompileShader(t,e,t.VERTEX_SHADER)},PIXI.CompileFragmentShader=function(t,e){return PIXI._CompileShader(t,e,t.FRAGMENT_SHADER)},PIXI._CompileShader=function(t,e,i){var r=e.join("\n"),s=t.createShader(i);return t.shaderSource(s,r),t.compileShader(s),t.getShaderParameter(s,t.COMPILE_STATUS)?s:(alert(t.getShaderInfoLog(s)),null)},PIXI._defaultFrame=new PIXI.Rectangle(0,0,1,1),PIXI.gl,PIXI.WebGLRenderer=function(t,e,i,r){this.transparent=!!r,this.width=t||800,this.height=e||600,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height;var s=this;this.view.addEventListener("webglcontextlost",function(t){s.handleContextLost(t)},!1),this.view.addEventListener("webglcontextrestored",function(t){s.handleContextRestored(t)},!1),this.batchs=[];try{PIXI.gl=this.gl=this.view.getContext("experimental-webgl",{alpha:this.transparent,antialias:!1,premultipliedAlpha:!0})}catch(n){throw Error(" This browser does not support webGL. Try using the canvas renderer"+this)}this.initShaders();var a=this.gl;PIXI.WebGLRenderer.gl=a,this.batch=new PIXI.WebGLBatch(a),a.disable(a.DEPTH_TEST),a.disable(a.CULL_FACE),a.enable(a.BLEND),a.colorMask(!0,!0,!0,this.transparent),this.projectionMatrix=PIXI.mat4.create(),this.resize(this.width,this.height),this.contextLost=!1,this.stageRenderGroup=new PIXI.WebGLRenderGroup(this.gl)},PIXI.WebGLRenderer.constructor=PIXI.WebGLRenderer,PIXI.WebGLRenderer.getBatch=function(){return 0==PIXI._batchs.length?new PIXI.WebGLBatch(PIXI.WebGLRenderer.gl):PIXI._batchs.pop()},PIXI.WebGLRenderer.returnBatch=function(t){t.clean(),PIXI._batchs.push(t)},PIXI.WebGLRenderer.prototype.initShaders=function(){var t=this.gl,e=PIXI.CompileFragmentShader(t,PIXI.shaderFragmentSrc),i=PIXI.CompileVertexShader(t,PIXI.shaderVertexSrc);PIXI.shaderProgram=t.createProgram();var r=PIXI.shaderProgram;t.attachShader(r,i),t.attachShader(r,e),t.linkProgram(r),t.getProgramParameter(r,t.LINK_STATUS)||alert("Could not initialise shaders"),t.useProgram(r),r.vertexPositionAttribute=t.getAttribLocation(r,"aVertexPosition"),t.enableVertexAttribArray(r.vertexPositionAttribute),r.textureCoordAttribute=t.getAttribLocation(r,"aTextureCoord"),t.enableVertexAttribArray(r.textureCoordAttribute),r.colorAttribute=t.getAttribLocation(r,"aColor"),t.enableVertexAttribArray(r.colorAttribute),r.mvMatrixUniform=t.getUniformLocation(r,"uMVMatrix"),r.samplerUniform=t.getUniformLocation(r,"uSampler")},PIXI.WebGLRenderer.prototype.render=function(t){if(!this.contextLost){this.__stage!==t&&(this.__stage=t,this.stageRenderGroup.setRenderable(t)),PIXI.WebGLRenderer.updateTextures(),t.updateTransform();var e=this.gl;if(e.colorMask(!0,!0,!0,this.transparent),e.viewport(0,0,this.width,this.height),e.bindFramebuffer(e.FRAMEBUFFER,null),e.clearColor(t.backgroundColorSplit[0],t.backgroundColorSplit[1],t.backgroundColorSplit[2],this.transparent),e.clear(e.COLOR_BUFFER_BIT),this.stageRenderGroup.backgroundColor=t.backgroundColorSplit,this.stageRenderGroup.render(this.projectionMatrix),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),PIXI.Texture.frameUpdates.length>0){for(var i=0;PIXI.Texture.frameUpdates.length>i;i++)PIXI.Texture.frameUpdates[i].updateFrame=!1;PIXI.Texture.frameUpdates=[]}}},PIXI.WebGLRenderer.updateTextures=function(){for(var t=0;PIXI.texturesToUpdate.length>t;t++)this.updateTexture(PIXI.texturesToUpdate[t]);for(var t=0;PIXI.texturesToDestroy.length>t;t++)this.destroyTexture(PIXI.texturesToDestroy[t]);PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[]},PIXI.WebGLRenderer.updateTexture=function(t){var e=PIXI.gl;t._glTexture||(t._glTexture=e.createTexture()),t.hasLoaded&&(e.bindTexture(e.TEXTURE_2D,t._glTexture),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t.source),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),t._powerOf2?(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT)):(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)),e.bindTexture(e.TEXTURE_2D,null))},PIXI.WebGLRenderer.prototype.destroyTexture=function(t){var e=this.gl;t._glTexture&&(t._glTexture=e.createTexture(),e.deleteTexture(e.TEXTURE_2D,t._glTexture))},PIXI.WebGLRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e,this.gl.viewport(0,0,this.width,this.height);var i=this.projectionMatrix;i[0]=2/this.width,i[5]=-2/this.height,i[12]=-1,i[13]=1},PIXI.WebGLRenderer.prototype.handleContextLost=function(t){t.preventDefault(),this.contextLost=!0},PIXI.WebGLRenderer.prototype.handleContextRestored=function(){this.gl=this.view.getContext("experimental-webgl",{alpha:!0}),this.initShaders();for(var t=0;PIXI.TextureCache.length>t;t++)this.updateTexture(PIXI.TextureCache[t]);for(var t=0;this.batchs.length>t;t++)this.batchs[t].restoreLostContext(this.gl),this.batchs[t].dirty=!0;PIXI._restoreBatchs(this.gl),this.contextLost=!1},PIXI._batchs=[],PIXI._getBatch=function(t){return 0==PIXI._batchs.length?new PIXI.WebGLBatch(t):PIXI._batchs.pop()},PIXI._returnBatch=function(t){t.clean(),PIXI._batchs.push(t)},PIXI._restoreBatchs=function(t){for(var e=0;PIXI._batchs.length>e;e++)PIXI._batchs[e].restoreLostContext(t)},PIXI.WebGLBatch=function(t){this.gl=t,this.size=0,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer(),this.blendMode=PIXI.blendModes.NORMAL,this.dynamicSize=1},PIXI.WebGLBatch.constructor=PIXI.WebGLBatch,PIXI.WebGLBatch.prototype.clean=function(){this.verticies=[],this.uvs=[],this.indices=[],this.colors=[],this.dynamicSize=1,this.texture=null,this.last=null,this.size=0,this.head,this.tail},PIXI.WebGLBatch.prototype.restoreLostContext=function(t){this.gl=t,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer()},PIXI.WebGLBatch.prototype.init=function(t){t.batch=this,this.dirty=!0,this.blendMode=t.blendMode,this.texture=t.texture.baseTexture,this.head=t,this.tail=t,this.size=1,this.growBatch()},PIXI.WebGLBatch.prototype.insertBefore=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__prev;e.__prev=t,t.__next=e,i?(t.__prev=i,i.__next=t):this.head=t},PIXI.WebGLBatch.prototype.insertAfter=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__next;e.__next=t,t.__prev=e,i?(t.__next=i,i.__prev=t):this.tail=t},PIXI.WebGLBatch.prototype.remove=function(t){return this.size--,0==this.size?(t.batch=null,t.__prev=null,t.__next=null,void 0):(t.__prev?t.__prev.__next=t.__next:(this.head=t.__next,this.head.__prev=null),t.__next?t.__next.__prev=t.__prev:(this.tail=t.__prev,this.tail.__next=null),t.batch=null,t.__next=null,t.__prev=null,this.dirty=!0,void 0)},PIXI.WebGLBatch.prototype.split=function(t){this.dirty=!0;var e=new PIXI.WebGLBatch(this.gl);e.init(t),e.tail=this.tail,this.tail=t.__prev,this.tail.__next=null,t.__prev=null;for(var i=0;t;)i++,t.batch=e,t=t.__next;return e.size=i,this.size-=i,e},PIXI.WebGLBatch.prototype.merge=function(t){this.dirty=!0,this.tail.__next=t.head,t.head.__prev=this.tail,this.size+=t.size,this.tail=t.tail;for(var e=t.head;e;)e.batch=this,e=e.__next},PIXI.WebGLBatch.prototype.growBatch=function(){var t=this.gl;this.dynamicSize=1==this.size?1:1.5*this.size,this.verticies=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.vertexBuffer),t.bufferData(t.ARRAY_BUFFER,this.verticies,t.DYNAMIC_DRAW),this.uvs=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.uvBuffer),t.bufferData(t.ARRAY_BUFFER,this.uvs,t.DYNAMIC_DRAW),this.dirtyUVS=!0,this.colors=new Float32Array(4*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.colorBuffer),t.bufferData(t.ARRAY_BUFFER,this.colors,t.DYNAMIC_DRAW),this.dirtyColors=!0,this.indices=new Uint16Array(6*this.dynamicSize);for(var e=this.indices.length/6,i=0;e>i;i++){var r=6*i,s=4*i;this.indices[r+0]=s+0,this.indices[r+1]=s+1,this.indices[r+2]=s+2,this.indices[r+3]=s+0,this.indices[r+4]=s+2,this.indices[r+5]=s+3}t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,this.indexBuffer),t.bufferData(t.ELEMENT_ARRAY_BUFFER,this.indices,t.STATIC_DRAW)},PIXI.WebGLBatch.prototype.refresh=function(){this.gl,this.dynamicSizer;r++)i=this.batchs[r],i instanceof PIXI.WebGLBatch?this.batchs[r].render():i instanceof PIXI.TilingSprite?i.visible&&this.renderTilingSprite(i,t):i instanceof PIXI.Strip&&i.visible&&this.renderStrip(i,t)},PIXI.WebGLRenderGroup.prototype.renderSpecific=function(t,e){PIXI.WebGLRenderer.updateTextures();var i=this.gl;this.checkVisibility(t,t.visible),i.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform,!1,e);var r,s,n,a,o=t.renderable?t:this.getNextRenderable(t),h=o.batch;if(o instanceof PIXI.Sprite){h=o.batch;var u=h.head;if(u==o)r=0;else for(r=1;u.__next!=o;)r++,u=u.__next}else h=o;for(var d,c=t,l=t;l.children.length>0;)l=l.children[l.children.length-1],l.renderable&&(c=l);if(c instanceof PIXI.Sprite){d=c.batch;var u=d.head;if(u==c)n=0;else for(n=1;u.__next!=c;)n++,u=u.__next}else d=c;if(h==d)return h instanceof PIXI.WebGLBatch?h.render(r,n+1):h instanceof PIXI.TilingSprite?h.visible&&this.renderTilingSprite(h,e):h instanceof PIXI.Strip?h.visible&&this.renderStrip(h,e):h instanceof PIXI.CustomRenderable&&h.visible&&h.renderWebGL(this,e),void 0;s=this.batchs.indexOf(h),a=this.batchs.indexOf(d),h instanceof PIXI.WebGLBatch?h.render(r):h instanceof PIXI.TilingSprite?h.visible&&this.renderTilingSprite(h,e):h instanceof PIXI.Strip?h.visible&&this.renderStrip(h,e):h instanceof PIXI.CustomRenderable&&h.visible&&h.renderWebGL(this,e);for(var I=s+1;a>I;I++)renderable=this.batchs[I],renderable instanceof PIXI.WebGLBatch?this.batchs[I].render():renderable instanceof PIXI.TilingSprite?renderable.visible&&this.renderTilingSprite(renderable,e):renderable instanceof PIXI.Strip?renderable.visible&&this.renderStrip(renderable,e):renderable instanceof PIXI.CustomRenderable&&renderable.visible&&renderable.renderWebGL(this,e);d instanceof PIXI.WebGLBatch?d.render(0,n+1):d instanceof PIXI.TilingSprite?d.visible&&this.renderTilingSprite(d):d instanceof PIXI.Strip?d.visible&&this.renderStrip(d):d instanceof PIXI.CustomRenderable&&d.visible&&d.renderWebGL(this,e)},PIXI.WebGLRenderGroup.prototype.checkVisibility=function(t,e){for(var i=t.children,r=0;i.length>r;r++){var s=i[r];s.worldVisible=s.visible&&e,s.textureChange&&(s.textureChange=!1,s.worldVisible&&(this.removeDisplayObject(s),this.addDisplayObject(s))),s.children.length>0&&this.checkVisibility(s,s.worldVisible)}},PIXI.WebGLRenderGroup.prototype.addDisplayObject=function(t){if(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.__renderGroup=this,t.renderable){var e=this.getPreviousRenderable(t),i=this.getNextRenderable(t);if(t instanceof PIXI.Sprite){var r,s;if(e instanceof PIXI.Sprite){if(r=e.batch,r&&r.texture==t.texture.baseTexture&&r.blendMode==t.blendMode)return r.insertAfter(t,e),void 0}else r=e;if(i)if(i instanceof PIXI.Sprite){if(s=i.batch){if(s.texture==t.texture.baseTexture&&s.blendMode==t.blendMode)return s.insertBefore(t,i),void 0;if(s==r){var n=r.split(i),a=PIXI.WebGLRenderer.getBatch(),o=this.batchs.indexOf(r);return a.init(t),this.batchs.splice(o+1,0,a,n),void 0}}}else s=i;var a=PIXI.WebGLRenderer.getBatch();if(a.init(t),r){var o=this.batchs.indexOf(r);this.batchs.splice(o+1,0,a)}else this.batchs.push(a)}else t instanceof PIXI.TilingSprite?(this.initTilingSprite(t),this.batchs.push(t)):t instanceof PIXI.Strip&&(this.initStrip(t),this.batchs.push(t));this.batchUpdate=!0}},PIXI.WebGLRenderGroup.prototype.addDisplayObjectAndChildren=function(t){this.addDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.addDisplayObjectAndChildren(e[i])},PIXI.WebGLRenderGroup.prototype.removeDisplayObject=function(t){if(t.__renderGroup=null,t.renderable){var e;if(t instanceof PIXI.Sprite){var i=t.batch;if(!i)return;i.remove(t),0==i.size&&(e=i)}else e=t;if(e){var r=this.batchs.indexOf(e);if(-1==r)return;if(0==r||r==this.batchs.length-1)return this.batchs.splice(r,1),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e),void 0;if(this.batchs[r-1]instanceof PIXI.WebGLBatch&&this.batchs[r+1]instanceof PIXI.WebGLBatch&&this.batchs[r-1].texture==this.batchs[r+1].texture&&this.batchs[r-1].blendMode==this.batchs[r+1].blendMode)return this.batchs[r-1].merge(this.batchs[r+1]),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e),PIXI.WebGLRenderer.returnBatch(this.batchs[r+1]),this.batchs.splice(r,2),void 0;this.batchs.splice(r,1),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e)}}},PIXI.WebGLRenderGroup.prototype.removeDisplayObjectAndChildren=function(t){if(t.__renderGroup==this){this.removeDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.removeDisplayObjectAndChildren(e[i])}},PIXI.WebGLRenderGroup.prototype.getNextRenderable=function(t){var e=t;do{if(0==e.children.length){if(!e.parent)return null;for(;e.childIndex==e.parent.children.length-1;)if(e=e.parent,e==this.root||!e.parent){e=null;break}e&&(e=e.parent.children[e.childIndex+1])}else e=e.children[0];if(!e)break}while(!e.renderable||!e.__renderGroup);return e},PIXI.WebGLRenderGroup.prototype.getPreviousRenderable=function(t){var e=t;do{if(0==e.childIndex){if(e=e.parent,!e)return null}else for(e=e.parent.children[e.childIndex-1];0!=e.children.length;)e=e.children[e.children.length-1];if(e==this.root)break}while(!e.renderable||!e.__renderGroup);return e},PIXI.WebGLRenderGroup.prototype.initTilingSprite=function(t){var e=this.gl;t.verticies=new Float32Array([0,0,t.width,0,t.width,t.height,0,t.height]),t.uvs=new Float32Array([0,0,1,0,1,1,0,1]),t.colors=new Float32Array([1,1,1,1]),t.indices=new Uint16Array([0,1,3,2]),t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW),t.texture.baseTexture._glTexture?(e.bindTexture(e.TEXTURE_2D,t.texture.baseTexture._glTexture),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT),t.texture.baseTexture._powerOf2=!0):t.texture.baseTexture._powerOf2=!0},PIXI.WebGLRenderGroup.prototype.renderStrip=function(t,e){var i=this.gl,r=PIXI.shaderProgram,s=PIXI.mat3.toMat4(t.worldTransform);PIXI.mat4.transpose(s),PIXI.mat4.multiply(e,s,s),i.uniformMatrix4fv(r.mvMatrixUniform,!1,s),t.blendMode==PIXI.blendModes.NORMAL?i.blendFunc(i.ONE,i.ONE_MINUS_SRC_ALPHA):i.blendFunc(i.ONE,i.ONE_MINUS_SRC_COLOR),t.dirty?(t.dirty=!1,i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferData(i.ARRAY_BUFFER,t.verticies,i.STATIC_DRAW),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferData(i.ARRAY_BUFFER,t.uvs,i.STATIC_DRAW),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.bufferData(i.ARRAY_BUFFER,t.colors,i.STATIC_DRAW),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer),i.bufferData(i.ELEMENT_ARRAY_BUFFER,t.indices,i.STATIC_DRAW)):(i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.verticies),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer)),i.drawElements(i.TRIANGLE_STRIP,t.indices.length,i.UNSIGNED_SHORT,0),i.uniformMatrix4fv(r.mvMatrixUniform,!1,e)},PIXI.WebGLRenderGroup.prototype.renderTilingSprite=function(t,e){var i=this.gl;PIXI.shaderProgram;var r=t.tilePosition,s=t.tileScale,n=r.x/t.texture.baseTexture.width,a=r.y/t.texture.baseTexture.height,o=t.width/t.texture.baseTexture.width/s.x,h=t.height/t.texture.baseTexture.height/s.y;t.uvs[0]=0-n,t.uvs[1]=0-a,t.uvs[2]=1*o-n,t.uvs[3]=0-a,t.uvs[4]=1*o-n,t.uvs[5]=1*h-a,t.uvs[6]=0-n,t.uvs[7]=1*h-a,i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.uvs),this.renderStrip(t,e)},PIXI.WebGLRenderer.prototype.initStrip=function(t){var e=this.gl;this.shaderProgram,t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW)},PIXI.CanvasRenderer=function(t,e,i,r){this.transparent=r,this.width=t||800,this.height=e||600,this.refresh=!0,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height,this.count=0,this.context=this.view.getContext("2d")},PIXI.CanvasRenderer.constructor=PIXI.CanvasRenderer,PIXI.CanvasRenderer.prototype.render=function(t){PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[],t.updateTransform(),this.view.style.backgroundColor==t.backgroundColorString||this.transparent||(this.view.style.backgroundColor=t.backgroundColorString),this.context.setTransform(1,0,0,1,0,0),this.context.clearRect(0,0,this.width,this.height),this.renderDisplayObject(t),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),PIXI.Texture.frameUpdates.length>0&&(PIXI.Texture.frameUpdates=[])},PIXI.CanvasRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e},PIXI.CanvasRenderer.prototype.renderDisplayObject=function(t){var e=t.worldTransform,i=this.context;if(t.visible){if(t instanceof PIXI.Sprite){var r=t.texture.frame;r&&(i.globalAlpha=t.worldAlpha,i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),i.drawImage(t.texture.baseTexture.source,r.x,r.y,r.width,r.height,t.anchor.x*-r.width,t.anchor.y*-r.height,r.width,r.height))}else t instanceof PIXI.Strip?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderStrip(t)):t instanceof PIXI.TilingSprite?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderTilingSprite(t)):t instanceof PIXI.CustomRenderable&&t.renderCanvas(this);for(var s=0;t.children.length>s;s++)this.renderDisplayObject(t.children[s]);this.context.setTransform(1,0,0,1,0,0)}},PIXI.CanvasRenderer.prototype.renderStripFlat=function(t){var e=this.context,i=t.verticies;t.uvs;var r=i.length/2;this.count++,e.beginPath();for(var s=1;r-2>s;s++){var n=2*s,a=i[n],o=i[n+2],h=i[n+4],u=i[n+1],d=i[n+3],c=i[n+5];e.moveTo(a,u),e.lineTo(o,d),e.lineTo(h,c)}e.fillStyle="#FF0000",e.fill(),e.closePath()},PIXI.CanvasRenderer.prototype.renderTilingSprite=function(t){var e=this.context;t.__tilePattern||(t.__tilePattern=e.createPattern(t.texture.baseTexture.source,"repeat")),e.beginPath();var i=t.tilePosition,r=t.tileScale;e.scale(r.x,r.y),e.translate(i.x,i.y),e.fillStyle=t.__tilePattern,e.fillRect(-i.x,-i.y,t.width/r.x,t.height/r.y),e.scale(1/r.x,1/r.y),e.translate(-i.x,-i.y),e.closePath()},PIXI.CanvasRenderer.prototype.renderStrip=function(t){var e=this.context,i=t.verticies,r=t.uvs,s=i.length/2;this.count++;for(var n=1;s-2>n;n++){var a=2*n,o=i[a],h=i[a+2],u=i[a+4],d=i[a+1],c=i[a+3],l=i[a+5],I=r[a]*t.texture.width,p=r[a+2]*t.texture.width,f=r[a+4]*t.texture.width,x=r[a+1]*t.texture.height,v=r[a+3]*t.texture.height,P=r[a+5]*t.texture.height;e.save(),e.beginPath(),e.moveTo(o,d),e.lineTo(h,c),e.lineTo(u,l),e.closePath(),e.clip();var g=I*v+x*f+p*P-v*f-x*p-I*P,b=o*v+x*u+h*P-v*u-x*h-o*P,X=I*h+o*f+p*u-h*f-o*p-I*u,m=I*v*u+x*h*f+o*p*P-o*v*f-x*p*u-I*h*P,T=d*v+x*l+c*P-v*l-x*c-d*P,y=I*c+d*f+p*l-c*f-d*p-I*l,_=I*v*l+x*c*f+d*p*P-d*v*f-x*p*l-I*c*P;e.transform(b/g,T/g,X/g,y/g,m/g,_/g),e.drawImage(t.texture.baseTexture.source,0,0),e.restore()}},PIXI.Strip=function(t,e,i){PIXI.DisplayObjectContainer.call(this),this.texture=t,this.blendMode=PIXI.blendModes.NORMAL;try{this.uvs=new Float32Array([0,1,1,1,1,0,0,1]),this.verticies=new Float32Array([0,0,0,0,0,0,0,0,0]),this.colors=new Float32Array([1,1,1,1]),this.indices=new Uint16Array([0,1,2,3])}catch(r){this.uvs=[0,1,1,1,1,0,0,1],this.verticies=[0,0,0,0,0,0,0,0,0],this.colors=[1,1,1,1],this.indices=[0,1,2,3]}this.width=e,this.height=i,t.baseTexture.hasLoaded?(this.width=this.texture.frame.width,this.height=this.texture.frame.height,this.updateFrame=!0):(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},PIXI.Strip.constructor=PIXI.Strip,PIXI.Strip.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Strip.prototype.setTexture=function(t){this.texture=t,this.width=t.frame.width,this.height=t.frame.height,this.updateFrame=!0},PIXI.Strip.prototype.onTextureUpdate=function(){this.updateFrame=!0},PIXI.Rope=function(t,e){PIXI.Strip.call(this,t),this.points=e;try{this.verticies=new Float32Array(4*e.length),this.uvs=new Float32Array(4*e.length),this.colors=new Float32Array(2*e.length),this.indices=new Uint16Array(2*e.length)}catch(i){this.verticies=verticies,this.uvs=uvs,this.colors=colors,this.indices=indices}this.refresh()},PIXI.Rope.constructor=PIXI.Rope,PIXI.Rope.prototype=Object.create(PIXI.Strip.prototype),PIXI.Rope.prototype.refresh=function(){var t=this.points;if(!(1>t.length)){var e=this.uvs,i=this.indices,r=this.colors,s=t[0],n=t[0];this.count-=.2,e[0]=0,e[1]=1,e[2]=0,e[3]=1,r[0]=1,r[1]=1,i[0]=0,i[1]=1;for(var a=t.length,o=1;a>o;o++){var n=t[o],h=4*o,u=o/(a-1);o%2?(e[h]=u,e[h+1]=0,e[h+2]=u,e[h+3]=1):(e[h]=u,e[h+1]=0,e[h+2]=u,e[h+3]=1),h=2*o,r[h]=1,r[h+1]=1,h=2*o,i[h]=h,i[h+1]=h+1,s=n}}},PIXI.Rope.prototype.updateTransform=function(){var t=this.points;if(!(1>t.length)){var e,i=this.verticies,r=t[0],s={x:0,y:0},n=t[0];this.count-=.2,i[0]=n.x+s.x,i[1]=n.y+s.y,i[2]=n.x-s.x,i[3]=n.y-s.y;for(var a=t.length,o=1;a>o;o++){var n=t[o],h=4*o;e=t.length-1>o?t[o+1]:n,s.y=-(e.x-r.x),s.x=e.y-r.y;var u=10*(1-o/(a-1));u>1&&(u=1);var d=Math.sqrt(s.x*s.x+s.y*s.y),c=this.texture.height/2;s.x/=d,s.y/=d,s.x*=c,s.y*=c,i[h]=n.x+s.x,i[h+1]=n.y+s.y,i[h+2]=n.x-s.x,i[h+3]=n.y-s.y,r=n}PIXI.DisplayObjectContainer.prototype.updateTransform.call(this)}},PIXI.Rope.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0},PIXI.TilingSprite=function(t,e,i){PIXI.DisplayObjectContainer.call(this),this.texture=t,this.width=e,this.height=i,this.renderable=!0,this.tileScale=new PIXI.Point(1,1),this.tilePosition=new PIXI.Point(0,0),this.blendMode=PIXI.blendModes.NORMAL},PIXI.TilingSprite.constructor=PIXI.TilingSprite,PIXI.TilingSprite.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.TilingSprite.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0},PIXI.TilingSprite.prototype.onTextureUpdate=function(){this.updateFrame=!0},PIXI.CustomRenderable=function(){PIXI.DisplayObject.call(this)},PIXI.CustomRenderable.constructor=PIXI.CustomRenderable,PIXI.CustomRenderable.prototype=Object.create(PIXI.DisplayObject.prototype),PIXI.CustomRenderable.prototype.renderCanvas=function(){},PIXI.CustomRenderable.prototype.initWebGL=function(){},PIXI.CustomRenderable.prototype.renderWebGL=function(){},PIXI.BaseTextureCache={},PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[],PIXI.BaseTexture=function(t){if(PIXI.EventTarget.call(this),this.width=100,this.height=100,this.source=t,t){if(this.source instanceof Image)if(this.source.complete)this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,PIXI.texturesToUpdate.push(this);else{var e=this;this.source.onload=function(){e.hasLoaded=!0,e.width=e.source.width,e.height=e.source.height,PIXI.texturesToUpdate.push(e),e.dispatchEvent({type:"loaded",content:e})}}else this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,PIXI.texturesToUpdate.push(this);this._powerOf2=!1}},PIXI.BaseTexture.constructor=PIXI.BaseTexture,PIXI.BaseTexture.prototype.destroy=function(){this.source instanceof Image&&(this.source.src=null),this.source=null,PIXI.texturesToDestroy.push(this)},PIXI.BaseTexture.fromImage=function(t,e){var i=PIXI.BaseTextureCache[t];if(!i){var r=new Image;e&&(r.crossOrigin=""),r.src=t,i=new PIXI.BaseTexture(r),PIXI.BaseTextureCache[t]=i}return i},PIXI.TextureCache={},PIXI.FrameCache={},PIXI.Texture=function(t,e){if(PIXI.EventTarget.call(this),e||(this.noFrame=!0,e=new PIXI.Rectangle(0,0,1,1)),this.trim=new PIXI.Point,t instanceof PIXI.Texture&&(t=t.baseTexture),this.baseTexture=t,this.frame=e,this.scope=this,t.hasLoaded)this.noFrame&&(e=new PIXI.Rectangle(0,0,t.width,t.height)),this.setFrame(e);else{var i=this;t.addEventListener("loaded",function(){i.onBaseTextureLoaded()})}},PIXI.Texture.constructor=PIXI.Texture,PIXI.Texture.prototype.onBaseTextureLoaded=function(){var t=this.baseTexture;t.removeEventListener("loaded",this.onLoaded),this.noFrame&&(this.frame=new PIXI.Rectangle(0,0,t.width,t.height)),this.noFrame=!1,this.width=this.frame.width,this.height=this.frame.height,this.scope.dispatchEvent({type:"update",content:this})},PIXI.Texture.prototype.destroy=function(t){t&&this.baseTexture.destroy()},PIXI.Texture.prototype.setFrame=function(t){if(this.frame=t,this.width=t.width,this.height=t.height,t.x+t.width>this.baseTexture.width||t.y+t.height>this.baseTexture.height)throw Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);this.updateFrame=!0,PIXI.Texture.frameUpdates.push(this)},PIXI.Texture.fromImage=function(t,e){var i=PIXI.TextureCache[t];return i||(i=new PIXI.Texture(PIXI.BaseTexture.fromImage(t,e)),PIXI.TextureCache[t]=i),i},PIXI.Texture.fromFrame=function(t){var e=PIXI.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache "+this);return e},PIXI.Texture.fromCanvas=function(t){var e=new PIXI.BaseTexture(t);return new PIXI.Texture(e)},PIXI.Texture.addTextureToCache=function(t,e){PIXI.TextureCache[e]=t},PIXI.Texture.removeTextureFromCache=function(t){var e=PIXI.TextureCache[t];return PIXI.TextureCache[t]=null,e},PIXI.Texture.frameUpdates=[],PIXI.RenderTexture=function(t,e){PIXI.EventTarget.call(this),this.width=t||100,this.height=e||100,this.indetityMatrix=PIXI.mat3.create(),this.frame=new PIXI.Rectangle(0,0,this.width,this.height),PIXI.gl?this.initWebGL():this.initCanvas()},PIXI.RenderTexture.constructor=PIXI.RenderTexture,PIXI.RenderTexture.prototype=Object.create(PIXI.Texture.prototype),PIXI.RenderTexture.prototype.initWebGL=function(){var t=PIXI.gl;this.glFramebuffer=t.createFramebuffer(),t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),this.glFramebuffer.width=this.width,this.glFramebuffer.height=this.height,this.baseTexture=new PIXI.BaseTexture,this.baseTexture.width=this.width,this.baseTexture.height=this.height,this.baseTexture._glTexture=t.createTexture(),t.bindTexture(t.TEXTURE_2D,this.baseTexture._glTexture),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,this.width,this.height,0,t.RGBA,t.UNSIGNED_BYTE,null),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),this.baseTexture.isRender=!0,t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,this.baseTexture._glTexture,0),this.projectionMatrix=PIXI.mat4.create(),this.projectionMatrix[5]=2/this.height,this.projectionMatrix[13]=-1,this.projectionMatrix[0]=2/this.width,this.projectionMatrix[12]=-1,this.render=this.renderWebGL},PIXI.RenderTexture.prototype.initCanvas=function(){this.renderer=new PIXI.CanvasRenderer(this.width,this.height,null,0),this.baseTexture=new PIXI.BaseTexture(this.renderer.view),this.frame=new PIXI.Rectangle(0,0,this.width,this.height),this.render=this.renderCanvas},PIXI.RenderTexture.prototype.renderWebGL=function(t,e){var i=PIXI.gl;i.colorMask(!0,!0,!0,!0),i.viewport(0,0,this.width,this.height),i.bindFramebuffer(i.FRAMEBUFFER,this.glFramebuffer),e&&(i.clearColor(0,0,0,0),i.clear(i.COLOR_BUFFER_BIT));var r=t.children;t.worldTransform=PIXI.mat3.create();for(var s=0,n=r.length;n>s;s++)r[s].updateTransform();var a=t.__renderGroup;a?t==a.root?a.render(this.projectionMatrix):a.renderSpecific(t,this.projectionMatrix):(this.renderGroup||(this.renderGroup=new PIXI.WebGLRenderGroup(i)),this.renderGroup.setRenderable(t),this.renderGroup.render(this.projectionMatrix))},PIXI.RenderTexture.prototype.renderCanvas=function(t,e){var i=t.children;t.worldTransform=PIXI.mat3.create();for(var r=0,s=i.length;s>r;r++)i[r].updateTransform();e&&this.renderer.context.clearRect(0,0,this.width,this.height),this.renderer.renderDisplayObject(t),PIXI.texturesToUpdate.push(this.baseTexture)},PIXI.AssetLoader=function(t){PIXI.EventTarget.call(this),this.assetURLs=t,this.crossorigin=!1,this.loadersByType={jpg:PIXI.ImageLoader,jpeg:PIXI.ImageLoader,png:PIXI.ImageLoader,gif:PIXI.ImageLoader,json:PIXI.SpriteSheetLoader,xml:PIXI.BitmapFontLoader,fnt:PIXI.BitmapFontLoader}},PIXI.AssetLoader.constructor=PIXI.AssetLoader,PIXI.AssetLoader.prototype.load=function(){var t=this;this.loadCount=this.assetURLs.length;for(var e=0;this.assetURLs.length>e;e++){var i=this.assetURLs[e],r=i.split(".").pop().toLowerCase(),s=this.loadersByType[r];if(!s)throw Error(r+" is an unsupported file type");var n=new s(i,this.crossorigin);n.addEventListener("loaded",function(){t.onAssetLoaded()}),n.load()}},PIXI.AssetLoader.prototype.onAssetLoaded=function(){this.loadCount--,this.dispatchEvent({type:"onProgress",content:this}),this.onProgress&&this.onProgress(),0==this.loadCount&&(this.dispatchEvent({type:"onComplete",content:this}),this.onComplete&&this.onComplete())},PIXI.SpriteSheetLoader=function(t,e){PIXI.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.frames={},this.crossorigin=e},PIXI.SpriteSheetLoader.constructor=PIXI.SpriteSheetLoader,PIXI.SpriteSheetLoader.prototype.load=function(){this.ajaxRequest=new AjaxRequest;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onJSONLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/json"),this.ajaxRequest.send(null)},PIXI.SpriteSheetLoader.prototype.onJSONLoaded=function(){if(4==this.ajaxRequest.readyState&&(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))){var jsonData=eval("("+this.ajaxRequest.responseText+")"),textureUrl=this.baseUrl+jsonData.meta.image,image=new PIXI.ImageLoader(textureUrl,this.crossorigin);this.texture=image.texture.baseTexture;var scope=this;image.addEventListener("loaded",function(){scope.onLoaded()});var frameData=jsonData.frames;for(var i in frameData){var rect=frameData[i].frame;rect&&(PIXI.TextureCache[i]=new PIXI.Texture(this.texture,{x:rect.x,y:rect.y,width:rect.w,height:rect.h}),frameData[i].trimmed&&(PIXI.TextureCache[i].realSize=frameData[i].spriteSourceSize,PIXI.TextureCache[i].trim.x=0))}image.load()}},PIXI.SpriteSheetLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},PIXI.ImageLoader=function(t,e){PIXI.EventTarget.call(this),this.texture=PIXI.Texture.fromImage(t,e)},PIXI.ImageLoader.constructor=PIXI.ImageLoader,PIXI.ImageLoader.prototype.load=function(){if(this.texture.baseTexture.hasLoaded)this.onLoaded();else{var t=this;this.texture.baseTexture.addEventListener("loaded",function(){t.onLoaded()})}},PIXI.ImageLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},PIXI.BitmapFontLoader=function(t,e){PIXI.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.crossorigin=e},PIXI.BitmapFontLoader.constructor=PIXI.BitmapFontLoader,PIXI.BitmapFontLoader.prototype.load=function(){this.ajaxRequest=new XMLHttpRequest;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onXMLLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/xml"),this.ajaxRequest.send(null)},PIXI.BitmapFontLoader.prototype.onXMLLoaded=function(){if(4==this.ajaxRequest.readyState&&(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))){var t=this.baseUrl+this.ajaxRequest.responseXML.getElementsByTagName("page")[0].attributes.getNamedItem("file").nodeValue,e=new PIXI.ImageLoader(t,this.crossorigin);this.texture=e.texture.baseTexture;var i={},r=this.ajaxRequest.responseXML.getElementsByTagName("info")[0],s=this.ajaxRequest.responseXML.getElementsByTagName("common")[0];i.font=r.attributes.getNamedItem("face").nodeValue,i.size=parseInt(r.attributes.getNamedItem("size").nodeValue,10),i.lineHeight=parseInt(s.attributes.getNamedItem("lineHeight").nodeValue,10),i.chars={};for(var n=this.ajaxRequest.responseXML.getElementsByTagName("char"),a=0;n.length>a;a++){var o=parseInt(n[a].attributes.getNamedItem("id").nodeValue,10),h={x:parseInt(n[a].attributes.getNamedItem("x").nodeValue,10),y:parseInt(n[a].attributes.getNamedItem("y").nodeValue,10),width:parseInt(n[a].attributes.getNamedItem("width").nodeValue,10),height:parseInt(n[a].attributes.getNamedItem("height").nodeValue,10)};PIXI.TextureCache[o]=new PIXI.Texture(this.texture,h),i.chars[o]={xOffset:parseInt(n[a].attributes.getNamedItem("xoffset").nodeValue,10),yOffset:parseInt(n[a].attributes.getNamedItem("yoffset").nodeValue,10),xAdvance:parseInt(n[a].attributes.getNamedItem("xadvance").nodeValue,10),kerning:{}}}var u=this.ajaxRequest.responseXML.getElementsByTagName("kerning");for(a=0;u.length>a;a++){var d=parseInt(u[a].attributes.getNamedItem("first").nodeValue,10),c=parseInt(u[a].attributes.getNamedItem("second").nodeValue,10),l=parseInt(u[a].attributes.getNamedItem("amount").nodeValue,10);i.chars[c].kerning[d]=l}PIXI.BitmapText.fonts[i.font]=i;var I=this;e.addEventListener("loaded",function(){I.onLoaded()}),e.load()}},PIXI.BitmapFontLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=PIXI),exports.PIXI=PIXI):root.PIXI=PIXI}).call(this); \ No newline at end of file diff --git a/docs/classes/WebGLRenderer.html b/docs/classes/WebGLRenderer.html index 581cb5a..fcef6b6 100644 --- a/docs/classes/WebGLRenderer.html +++ b/docs/classes/WebGLRenderer.html @@ -498,7 +498,7 @@ - src/pixi/renderers/WebGLRenderer.js:283 + src/pixi/renderers/WebGLRenderer.js:284

diff --git a/docs/data.json b/docs/data.json index 9b4a49d..4b27831 100644 --- a/docs/data.json +++ b/docs/data.json @@ -1388,35 +1388,35 @@ }, { "file": "src/pixi/renderers/WebGLRenderGroup.js", - "line": 523, + "line": 527, "access": "private", "tagname": "", "class": "WebGLBatch" }, { "file": "src/pixi/renderers/WebGLRenderGroup.js", - "line": 607, + "line": 613, "access": "private", "tagname": "", "class": "WebGLBatch" }, { "file": "src/pixi/renderers/WebGLRenderGroup.js", - "line": 663, + "line": 669, "access": "private", "tagname": "", "class": "WebGLBatch" }, { "file": "src/pixi/renderers/WebGLRenderGroup.js", - "line": 740, + "line": 746, "access": "private", "tagname": "", "class": "WebGLBatch" }, { "file": "src/pixi/renderers/WebGLRenderGroup.js", - "line": 777, + "line": 783, "access": "private", "tagname": "", "class": "WebGLBatch" @@ -1465,14 +1465,14 @@ }, { "file": "src/pixi/renderers/WebGLRenderer.js", - "line": 232, + "line": 225, "access": "private", "tagname": "", "class": "WebGLRenderer" }, { "file": "src/pixi/renderers/WebGLRenderer.js", - "line": 283, + "line": 284, "description": "resizes the webGL view to the specified width and height", "itemtype": "method", "name": "resize", @@ -1492,14 +1492,14 @@ }, { "file": "src/pixi/renderers/WebGLRenderer.js", - "line": 307, + "line": 308, "access": "private", "tagname": "", "class": "WebGLRenderer" }, { "file": "src/pixi/renderers/WebGLRenderer.js", - "line": 316, + "line": 317, "access": "private", "tagname": "", "class": "WebGLRenderer" @@ -2908,23 +2908,23 @@ }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderGroup.js:523" + "line": " src/pixi/renderers/WebGLRenderGroup.js:527" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderGroup.js:607" + "line": " src/pixi/renderers/WebGLRenderGroup.js:613" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderGroup.js:663" + "line": " src/pixi/renderers/WebGLRenderGroup.js:669" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderGroup.js:740" + "line": " src/pixi/renderers/WebGLRenderGroup.js:746" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderGroup.js:777" + "line": " src/pixi/renderers/WebGLRenderGroup.js:783" }, { "message": "Missing item type", @@ -2944,15 +2944,15 @@ }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderer.js:232" + "line": " src/pixi/renderers/WebGLRenderer.js:225" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderer.js:307" + "line": " src/pixi/renderers/WebGLRenderer.js:308" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderer.js:316" + "line": " src/pixi/renderers/WebGLRenderer.js:317" }, { "message": "Missing item type", diff --git a/docs/files/src_pixi_renderers_WebGLRenderGroup.js.html b/docs/files/src_pixi_renderers_WebGLRenderGroup.js.html index 7222602..42bcabd 100644 --- a/docs/files/src_pixi_renderers_WebGLRenderGroup.js.html +++ b/docs/files/src_pixi_renderers_WebGLRenderGroup.js.html @@ -177,6 +177,8 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + //PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. @@ -215,6 +217,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + //PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -683,7 +687,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/docs/files/src_pixi_renderers_WebGLRenderer.js.html b/docs/files/src_pixi_renderers_WebGLRenderer.js.html index 0383c4d..551dd19 100644 --- a/docs/files/src_pixi_renderers_WebGLRenderer.js.html +++ b/docs/files/src_pixi_renderers_WebGLRenderer.js.html @@ -306,15 +306,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -366,9 +359,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -400,7 +402,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) diff --git a/examples/example 1 - Basics/pixi.js b/examples/example 1 - Basics/pixi.js index f29080a..3478cf4 100644 --- a/examples/example 1 - Basics/pixi.js +++ b/examples/example 1 - Basics/pixi.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/examples/example 10 - Text/pixi.js b/examples/example 10 - Text/pixi.js index f29080a..3478cf4 100644 --- a/examples/example 10 - Text/pixi.js +++ b/examples/example 10 - Text/pixi.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/examples/example 11 - RenderTexture/index.html b/examples/example 11 - RenderTexture/index.html index efd342b..e4acf76 100644 --- a/examples/example 11 - RenderTexture/index.html +++ b/examples/example 11 - RenderTexture/index.html @@ -15,7 +15,7 @@ diff --git a/examples/example 11 - RenderTexture/pixi.js b/examples/example 11 - RenderTexture/pixi.js index f29080a..3478cf4 100644 --- a/examples/example 11 - RenderTexture/pixi.js +++ b/examples/example 11 - RenderTexture/pixi.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/examples/example 2 - SpriteSheet/pixi.js b/examples/example 2 - SpriteSheet/pixi.js index f29080a..3478cf4 100644 --- a/examples/example 2 - SpriteSheet/pixi.js +++ b/examples/example 2 - SpriteSheet/pixi.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/bin/pixi.dev.js b/bin/pixi.dev.js index f29080a..3478cf4 100644 --- a/bin/pixi.dev.js +++ b/bin/pixi.dev.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/bin/pixi.js b/bin/pixi.js index 5f2a13c..a6d54d1 100644 --- a/bin/pixi.js +++ b/bin/pixi.js @@ -4,10 +4,10 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php */ -(function(){function HEXtoRGB(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}function determineMatrixArrayType(){return PIXI.Matrix="undefined"!=typeof Float32Array?Float32Array:Array,PIXI.Matrix}var root=this,PIXI=PIXI||{};PIXI.Point=function(t,e){this.x=t||0,this.y=e||0},PIXI.Point.prototype.clone=function(){return new PIXI.Point(this.x,this.y)},PIXI.Point.constructor=PIXI.Point,PIXI.Rectangle=function(t,e,i,r){this.x=t||0,this.y=e||0,this.width=i||0,this.height=r||0},PIXI.Rectangle.prototype.clone=function(){return new PIXI.Rectangle(this.x,this.y,this.width,this.height)},PIXI.Rectangle.constructor=PIXI.Rectangle,PIXI.DisplayObject=function(){this.position=new PIXI.Point,this.scale=new PIXI.Point(1,1),this.pivot=new PIXI.Point(0,0),this.rotation=0,this.alpha=1,this.visible=!0,this.worldVisible=!1,this.parent=null,this.stage=null,this.hitArea=null,this.worldAlpha=1,this.color=[],this.worldTransform=PIXI.mat3.create(),this.localTransform=PIXI.mat3.create(),this.dynamic=!0,this._sr=0,this._cr=1,this.childIndex=0,this.renderable=!1,this.interactive=!1,this.buttonMode=!1},PIXI.DisplayObject.constructor=PIXI.DisplayObject,PIXI.DisplayObject.prototype.setInteractive=function(t){this.interactive=t,this.stage&&(this.stage.dirty=!0)},PIXI.DisplayObject.prototype.updateTransform=function(){this.rotation!=this.rotationCache&&(this.rotationCache=this.rotation,this._sr=Math.sin(this.rotation),this._cr=Math.cos(this.rotation));var t=this.localTransform,e=this.parent.worldTransform,i=this.worldTransform;t[0]=this._cr*this.scale.x,t[1]=-this._sr*this.scale.y,t[3]=this._sr*this.scale.x,t[4]=this._cr*this.scale.y;var r=this.pivot.x,s=this.pivot.y;t[2]=this.position.x-t[0]*r-s*t[1],t[5]=this.position.y-t[4]*s-r*t[3];var n=t[0],a=t[1],o=t[2],h=t[3],u=t[4],c=t[5],d=e[0],l=e[1],I=e[2],p=e[3],f=e[4],x=e[5];i[0]=d*n+l*h,i[1]=d*a+l*u,i[2]=d*o+l*c+I,i[3]=p*n+f*h,i[4]=p*a+f*u,i[5]=p*o+f*c+x,this.worldAlpha=this.alpha*this.parent.worldAlpha},PIXI.DisplayObjectContainer=function(){PIXI.DisplayObject.call(this),this.children=[],this.renderable=!1},PIXI.DisplayObjectContainer.constructor=PIXI.DisplayObjectContainer,PIXI.DisplayObjectContainer.prototype=Object.create(PIXI.DisplayObject.prototype),PIXI.DisplayObjectContainer.prototype.addChild=function(t){void 0!=t.parent&&t.parent.removeChild(t),t.parent=this,t.childIndex=this.children.length,this.children.push(t),this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},PIXI.DisplayObjectContainer.prototype.addChildAt=function(t,e){if(!(e>=0&&this.children.length>=e))throw Error(t+" The index "+e+" supplied is out of bounds "+this.children.length);void 0!=t.parent&&t.parent.removeChild(t),e==this.children.length?this.children.push(t):this.children.splice(e,0,t),t.parent=this,t.childIndex=e;for(var i=this.children.length,r=e;i>r;r++)this.children[r].childIndex=r;this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},PIXI.DisplayObjectContainer.prototype.swapChildren=function(t,e){var i=this.children.indexOf(t),r=this.children.indexOf(e);if(-1===i||-1===r)throw Error(t+" Both the supplied DisplayObjects must be a child of the caller "+this);this.stage&&(this.stage.__removeChild(t),this.stage.__removeChild(e),this.stage.__addChild(t),this.stage.__addChild(e)),t.childIndex=r,e.childIndex=i,this.children[i]=e,this.children[r]=t},PIXI.DisplayObjectContainer.prototype.getChildAt=function(t){if(t>=0&&this.children.length>t)return this.children[t];throw Error(child+" Both the supplied DisplayObjects must be a child of the caller "+this)},PIXI.DisplayObjectContainer.prototype.removeChild=function(t){var e=this.children.indexOf(t);if(-1===e)throw Error(t+" The supplied DisplayObject must be a child of the caller "+this);this.stage&&this.stage.__removeChild(t),t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.parent=void 0,this.children.splice(e,1);for(var i=e,r=this.children.length;r>i;i++)this.children[i].childIndex-=1},PIXI.DisplayObjectContainer.prototype.updateTransform=function(){if(this.visible){PIXI.DisplayObject.prototype.updateTransform.call(this);for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform()}},PIXI.blendModes={},PIXI.blendModes.NORMAL=0,PIXI.blendModes.SCREEN=1,PIXI.Sprite=function(t){PIXI.DisplayObjectContainer.call(this),this.anchor=new PIXI.Point,this.texture=t,this.blendMode=PIXI.blendModes.NORMAL,this._width=0,this._height=0,t.baseTexture.hasLoaded?this.updateFrame=!0:(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},PIXI.Sprite.constructor=PIXI.Sprite,PIXI.Sprite.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),Object.defineProperty(PIXI.Sprite.prototype,"width",{get:function(){return this.scale.x*this.texture.frame.width},set:function(t){this.scale.x=t/this.texture.frame.width,this._width=t}}),Object.defineProperty(PIXI.Sprite.prototype,"height",{get:function(){return this.scale.y*this.texture.frame.height},set:function(t){this.scale.y=t/this.texture.frame.height,this._height=t}}),PIXI.Sprite.prototype.setTexture=function(t){this.texture.baseTexture!=t.baseTexture&&(this.textureChange=!0),this.texture=t,this.updateFrame=!0},PIXI.Sprite.prototype.onTextureUpdate=function(){this._width&&(this.scale.x=this._width/this.texture.frame.width),this._height&&(this.scale.y=this._height/this.texture.frame.height),this.updateFrame=!0},PIXI.Sprite.fromFrame=function(t){var e=PIXI.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache"+this);return new PIXI.Sprite(e)},PIXI.Sprite.fromImage=function(t){var e=PIXI.Texture.fromImage(t);return new PIXI.Sprite(e)},PIXI.MovieClip=function(t){PIXI.Sprite.call(this,t[0]),this.textures=t,this.currentFrame=0,this.animationSpeed=1,this.loop=!0,this.onComplete=null,this.playing},PIXI.MovieClip.constructor=PIXI.MovieClip,PIXI.MovieClip.prototype=Object.create(PIXI.Sprite.prototype),PIXI.MovieClip.prototype.stop=function(){this.playing=!1},PIXI.MovieClip.prototype.play=function(){this.playing=!0},PIXI.MovieClip.prototype.gotoAndStop=function(t){this.playing=!1,this.currentFrame=t;var e=0|this.currentFrame+.5;this.setTexture(this.textures[e%this.textures.length])},PIXI.MovieClip.prototype.gotoAndPlay=function(t){this.currentFrame=t,this.playing=!0},PIXI.MovieClip.prototype.updateTransform=function(){if(PIXI.Sprite.prototype.updateTransform.call(this),this.playing){this.currentFrame+=this.animationSpeed;var t=0|this.currentFrame+.5;this.loop||this.textures.length>t?this.setTexture(this.textures[t%this.textures.length]):t>=this.textures.length&&(this.gotoAndStop(this.textures.length-1),this.onComplete&&this.onComplete())}},PIXI.Text=function(t,e){this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"),PIXI.Sprite.call(this,PIXI.Texture.fromCanvas(this.canvas)),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},PIXI.Text.constructor=PIXI.Text,PIXI.Text.prototype=Object.create(PIXI.Sprite.prototype),PIXI.Text.prototype.setStyle=function(t){t=t||{},t.font=t.font||"bold 20pt Arial",t.fill=t.fill||"black",t.align=t.align||"left",t.strokeThickness=t.strokeThickness||0,this.style=t,this.dirty=!0},PIXI.Sprite.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},PIXI.Text.prototype.updateText=function(){this.context.font=this.style.font;for(var t=this.text.split(/(?:\r\n|\r|\n)/),e=[],i=0,r=0;t.length>r;r++){var s=this.context.measureText(t[r]).width;e[r]=s,i=Math.max(i,s)}this.canvas.width=i+this.style.strokeThickness;var n=this.determineFontHeight("font: "+this.style.font+";")+this.style.strokeThickness;for(this.canvas.height=n*t.length,this.context.fillStyle=this.style.fill,this.context.font=this.style.font,this.context.strokeStyle=this.style.stroke,this.context.lineWidth=this.style.strokeThickness,this.context.textBaseline="top",r=0;t.length>r;r++){var a=new PIXI.Point(this.style.strokeThickness/2,this.style.strokeThickness/2+r*n);"right"==this.style.align?a.x+=i-e[r]:"center"==this.style.align&&(a.x+=(i-e[r])/2),this.style.stroke&&this.style.strokeThickness&&this.context.strokeText(t[r],a.x,a.y),this.style.fill&&this.context.fillText(t[r],a.x,a.y)}this.updateTexture()},PIXI.Text.prototype.updateTexture=function(){this.texture.baseTexture.width=this.canvas.width,this.texture.baseTexture.height=this.canvas.height,this.texture.frame.width=this.canvas.width,this.texture.frame.height=this.canvas.height,this._width=this.canvas.width,this._height=this.canvas.height,PIXI.texturesToUpdate.push(this.texture.baseTexture)},PIXI.Text.prototype.updateTransform=function(){this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype.updateTransform.call(this)},PIXI.Text.prototype.determineFontHeight=function(t){var e=PIXI.Text.heightCache[t];if(!e){var i=document.getElementsByTagName("body")[0],r=document.createElement("div"),s=document.createTextNode("M");r.appendChild(s),r.setAttribute("style",t),i.appendChild(r),e=r.offsetHeight,PIXI.Text.heightCache[t]=e,i.removeChild(r)}return e},PIXI.Text.prototype.destroy=function(t){t&&this.texture.destroy()},PIXI.Text.heightCache={},PIXI.BitmapText=function(t,e){PIXI.DisplayObjectContainer.call(this),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},PIXI.BitmapText.constructor=PIXI.BitmapText,PIXI.BitmapText.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.BitmapText.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},PIXI.BitmapText.prototype.setStyle=function(t){t=t||{},t.align=t.align||"left",this.style=t;var e=t.font.split(" ");this.fontName=e[e.length-1],this.fontSize=e.length>=2?parseInt(e[e.length-2],10):PIXI.BitmapText.fonts[this.fontName].size,this.dirty=!0},PIXI.BitmapText.prototype.updateText=function(){for(var t=PIXI.BitmapText.fonts[this.fontName],e=new PIXI.Point,i=null,r=[],s=0,n=[],a=0,o=this.fontSize/t.size,h=0;this.text.length>h;h++){var u=this.text.charCodeAt(h);if(/(?:\r\n|\r|\n)/.test(this.text.charAt(h)))n.push(e.x),s=Math.max(s,e.x),a++,e.x=0,e.y+=t.lineHeight,i=null;else{var c=t.chars[u];c&&(i&&c[i]&&(e.x+=c.kerning[i]),r.push({line:a,charCode:u,position:new PIXI.Point(e.x+c.xOffset,e.y+c.yOffset)}),e.x+=c.xAdvance,i=u)}}n.push(e.x),s=Math.max(s,e.x);var d=[];for(h=0;a>=h;h++){var l=0;"right"==this.style.align?l=s-n[h]:"center"==this.style.align&&(l=(s-n[h])/2),d.push(l)}for(h=0;r.length>h;h++){var I=PIXI.Sprite.fromFrame(r[h].charCode);I.position.x=(r[h].position.x+d[r[h].line])*o,I.position.y=r[h].position.y*o,I.scale.x=I.scale.y=o,this.addChild(I)}this.width=e.x*o,this.height=(e.y+t.lineHeight)*o},PIXI.BitmapText.prototype.updateTransform=function(){if(this.dirty){for(;this.children.length>0;)this.removeChild(this.getChildAt(0));this.updateText(),this.dirty=!1}PIXI.DisplayObjectContainer.prototype.updateTransform.call(this)},PIXI.BitmapText.fonts={},PIXI.InteractionManager=function(t){this.stage=t,this.tempPoint=new PIXI.Point,this.mouseoverEnabled=!0,this.mouse=new PIXI.InteractionData,this.touchs={},this.pool=[],this.interactiveItems=[],this.last=0},PIXI.InteractionManager.constructor=PIXI.InteractionManager,PIXI.InteractionManager.prototype.collectInteractiveSprite=function(t,e){for(var i=t.children,r=i.length,s=r-1;s>=0;s--){var n=i[s];n.interactive?(e.interactiveChildren=!0,this.interactiveItems.push(n),n.children.length>0&&this.collectInteractiveSprite(n,n)):(n.__iParent=null,n.children.length>0&&this.collectInteractiveSprite(n,e))}},PIXI.InteractionManager.prototype.setTarget=function(t){window.navigator.msPointerEnabled&&(t.view.style["-ms-content-zooming"]="none",t.view.style["-ms-touch-action"]="none"),this.target=t,t.view.addEventListener("mousemove",this.onMouseMove.bind(this),!0),t.view.addEventListener("mousedown",this.onMouseDown.bind(this),!0),document.body.addEventListener("mouseup",this.onMouseUp.bind(this),!0),t.view.addEventListener("mouseout",this.onMouseUp.bind(this),!0),t.view.addEventListener("touchstart",this.onTouchStart.bind(this),!0),t.view.addEventListener("touchend",this.onTouchEnd.bind(this),!0),t.view.addEventListener("touchmove",this.onTouchMove.bind(this),!0)},PIXI.InteractionManager.prototype.update=function(){if(this.target){var t=Date.now(),e=t-this.last;if(e=30*e/1e3,!(1>e)){if(this.last=t,this.dirty){this.dirty=!1,this.interactiveItems.length;for(var i=0;this.interactiveItems.length>i;i++)this.interactiveItems[i].interactiveChildren=!1;this.interactiveItems=[],this.stage.interactive&&this.interactiveItems.push(this.stage),this.collectInteractiveSprite(this.stage,this.stage)}var r=this.interactiveItems.length;this.target.view.style.cursor="default";for(var i=0;r>i;i++){var s=this.interactiveItems[i];s.visible&&(s.mouseover||s.mouseout||s.buttonMode)&&(s.__hit=this.hitTest(s,this.mouse),s.__hit?(s.buttonMode&&(this.target.view.style.cursor="pointer"),s.__isOver||(s.mouseover&&s.mouseover(this.mouse),s.__isOver=!0)):s.__isOver&&(s.mouseout&&s.mouseout(this.mouse),s.__isOver=!1))}}}},PIXI.InteractionManager.prototype.onMouseMove=function(t){t.preventDefault();var e=this.target.view.getBoundingClientRect();this.mouse.global.x=(t.clientX-e.left)*(this.target.width/e.width),this.mouse.global.y=(t.clientY-e.top)*(this.target.height/e.height);var i=this.interactiveItems.length;this.mouse.global;for(var r=0;i>r;r++){var s=this.interactiveItems[r];s.mousemove&&s.mousemove(this.mouse)}},PIXI.InteractionManager.prototype.onMouseDown=function(t){t.preventDefault();var e=this.interactiveItems.length;this.mouse.global,this.stage;for(var i=0;e>i;i++){var r=this.interactiveItems[i];if((r.mousedown||r.click)&&(r.__mouseIsDown=!0,r.__hit=this.hitTest(r,this.mouse),r.__hit&&(r.mousedown&&r.mousedown(this.mouse),r.__isDown=!0,!r.interactiveChildren)))break}},PIXI.InteractionManager.prototype.onMouseUp=function(t){t.preventDefault(),this.mouse.global;for(var e=this.interactiveItems.length,i=!1,r=0;e>r;r++){var s=this.interactiveItems[r];(s.mouseup||s.mouseupoutside||s.click)&&(s.__hit=this.hitTest(s,this.mouse),s.__hit&&!i?(s.mouseup&&s.mouseup(this.mouse),s.__isDown&&s.click&&s.click(this.mouse),s.interactiveChildren||(i=!0)):s.__isDown&&s.mouseupoutside&&s.mouseupoutside(this.mouse),s.__isDown=!1)}},PIXI.InteractionManager.prototype.hitTest=function(t,e){var i=e.global;if(!t.visible)return!1;if(t instanceof PIXI.Sprite){var r=t.worldTransform,s=r[0],n=r[1],a=r[2],o=r[3],h=r[4],u=r[5],c=1/(s*h+n*-o),d=h*c*i.x+-n*c*i.y+(u*n-a*h)*c,l=s*c*i.y+-o*c*i.x+(-u*s+a*o)*c,I=t.texture.frame.width,p=t.texture.frame.height,f=-I*t.anchor.x;if(d>f&&f+I>d){var x=-p*t.anchor.y;if(l>x&&x+p>l)return e.target=t,!0}}else if(t.hitArea){var r=t.worldTransform,v=t.hitArea,s=r[0],n=r[1],a=r[2],o=r[3],h=r[4],u=r[5],c=1/(s*h+n*-o),d=h*c*i.x+-n*c*i.y+(u*n-a*h)*c,l=s*c*i.y+-o*c*i.x+(-u*s+a*o)*c,f=v.x;if(d>f&&f+v.width>d){var x=v.y;if(l>x&&x+v.height>l)return!0}}for(var P=t.children.length,g=0;P>g;g++){var b=t.children[g],X=this.hitTest(b,e);if(X)return!0}return!1},PIXI.InteractionManager.prototype.onTouchMove=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.touchs[s.identifier];n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height)}for(var a=this.interactiveItems.length,r=0;a>r;r++){var o=this.interactiveItems[r];o.touchmove&&o.touchmove(n)}},PIXI.InteractionManager.prototype.onTouchStart=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.pool.pop();n||(n=new PIXI.InteractionData),this.touchs[s.identifier]=n,n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height);for(var a=this.interactiveItems.length,o=0;a>o;o++){var h=this.interactiveItems[o];if((h.touchstart||h.tap)&&(h.__hit=this.hitTest(h,n),h.__hit&&(h.touchstart&&h.touchstart(n),h.__isDown=!0,h.__touchData=n,!h.interactiveChildren)))break}}},PIXI.InteractionManager.prototype.onTouchEnd=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.touchs[s.identifier],a=!1;n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var u=this.interactiveItems[h],c=u.__touchData;u.__hit=this.hitTest(u,n),c==n&&((u.touchend||u.tap)&&(u.__hit&&!a?(u.touchend&&u.touchend(n),u.__isDown&&u.tap&&u.tap(n),u.interactiveChildren||(a=!0)):u.__isDown&&u.touchendoutside&&u.touchendoutside(n),u.__isDown=!1),u.__touchData=null)}this.pool.push(n),this.touchs[s.identifier]=null}},PIXI.InteractionData=function(){this.global=new PIXI.Point,this.local=new PIXI.Point,this.target},PIXI.InteractionData.prototype.getLocalPosition=function(t){var e=t.worldTransform,i=this.global,r=e[0],s=e[1],n=e[2],a=e[3],o=e[4],h=e[5],u=1/(r*o+s*-a);return new PIXI.Point(o*u*i.x+-s*u*i.y+(h*s-n*o)*u,r*u*i.y+-a*u*i.x+(-h*r+n*a)*u)},PIXI.InteractionData.constructor=PIXI.InteractionData,PIXI.Stage=function(t,e){PIXI.DisplayObjectContainer.call(this),this.worldTransform=PIXI.mat3.create(),this.__childrenAdded=[],this.__childrenRemoved=[],this.childIndex=0,this.stage=this,this.stage.hitArea=new PIXI.Rectangle(0,0,1e5,1e5),this.interactive=!!e,this.interactionManager=new PIXI.InteractionManager(this),this.setBackgroundColor(t),this.worldVisible=!0},PIXI.Stage.constructor=PIXI.Stage,PIXI.Stage.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Stage.prototype.updateTransform=function(){this.worldAlpha=1;for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform();this.dirty&&(this.dirty=!1,this.interactionManager.dirty=!0),this.interactive&&this.interactionManager.update()},PIXI.Stage.prototype.setBackgroundColor=function(t){this.backgroundColor=t||0,this.backgroundColorSplit=HEXtoRGB(this.backgroundColor),this.backgroundColorString="#"+this.backgroundColor.toString(16)},PIXI.Stage.prototype.getMousePosition=function(){return this.interactionManager.mouse.global},PIXI.Stage.prototype.__addChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=this,t.children)for(var e=0;t.children.length>e;e++)this.__addChild(t.children[e])},PIXI.Stage.prototype.__removeChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=void 0,t.children)for(var e=0,i=t.children.length;i>e;e++)this.__removeChild(t.children[e])},window.requestAnimFrame=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(t){window.setTimeout(t,1e3/60)}}(),"function"!=typeof Function.prototype.bind&&(Function.prototype.bind=function(){var t=Array.prototype.slice;return function(e){function i(){var n=s.concat(t.call(arguments));r.apply(this instanceof i?this:e,n)}var r=this,s=t.call(arguments,1);if("function"!=typeof r)throw new TypeError;return i.prototype=function n(t){return t&&(n.prototype=t),this instanceof n?void 0:new n}(r.prototype),i}}());var AjaxRequest=function(){var t=["Msxml2.XMLHTTP","Microsoft.XMLHTTP"];if(!window.ActiveXObject)return window.XMLHttpRequest?new XMLHttpRequest:!1;for(var e=0;t.length>e;e++)try{return new ActiveXObject(t[e])}catch(i){}};PIXI.EventTarget=function(){var t={};this.addEventListener=this.on=function(e,i){void 0===t[e]&&(t[e]=[]),-1===t[e].indexOf(i)&&t[e].push(i)},this.dispatchEvent=this.emit=function(e){for(var i in t[e.type])t[e.type][i](e)},this.removeEventListener=this.off=function(e,i){var r=t[e].indexOf(i);-1!==r&&t[e].splice(r,1)}},determineMatrixArrayType(),PIXI.mat3={},PIXI.mat3.create=function(){var t=new PIXI.Matrix(9);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},PIXI.mat4={},PIXI.mat4.create=function(){var t=new PIXI.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},PIXI.mat3.multiply=function(t,e,i){i||(i=t);var r=t[0],s=t[1],n=t[2],a=t[3],o=t[4],h=t[5],u=t[6],c=t[7],d=t[8],l=e[0],I=e[1],p=e[2],f=e[3],x=e[4],v=e[5],P=e[6],g=e[7],b=e[8];return i[0]=l*r+I*a+p*u,i[1]=l*s+I*o+p*c,i[2]=l*n+I*h+p*d,i[3]=f*r+x*a+v*u,i[4]=f*s+x*o+v*c,i[5]=f*n+x*h+v*d,i[6]=P*r+g*a+b*u,i[7]=P*s+g*o+b*c,i[8]=P*n+g*h+b*d,i},PIXI.mat3.toMat4=function(t,e){return e||(e=PIXI.mat4.create()),e[15]=1,e[14]=0,e[13]=0,e[12]=0,e[11]=0,e[10]=t[8],e[9]=t[7],e[8]=t[6],e[7]=0,e[6]=t[5],e[5]=t[4],e[4]=t[3],e[3]=0,e[2]=t[2],e[1]=t[1],e[0]=t[0],e},PIXI.mat4.create=function(){var t=new PIXI.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},PIXI.mat4.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],s=t[3],n=t[6],a=t[7],o=t[11];return t[1]=t[4],t[2]=t[8],t[3]=t[12],t[4]=i,t[6]=t[9],t[7]=t[13],t[8]=r,t[9]=n,t[11]=t[14],t[12]=s,t[13]=a,t[14]=o,t}return e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=t[1],e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=t[2],e[9]=t[6],e[10]=t[10],e[11]=t[14],e[12]=t[3],e[13]=t[7],e[14]=t[11],e[15]=t[15],e},PIXI.mat4.multiply=function(t,e,i){i||(i=t);var r=t[0],s=t[1],n=t[2],a=t[3],o=t[4],h=t[5],u=t[6],c=t[7],d=t[8],l=t[9],I=t[10],p=t[11],f=t[12],x=t[13],v=t[14],P=t[15],g=e[0],b=e[1],X=e[2],m=e[3];return i[0]=g*r+b*o+X*d+m*f,i[1]=g*s+b*h+X*l+m*x,i[2]=g*n+b*u+X*I+m*v,i[3]=g*a+b*c+X*p+m*P,g=e[4],b=e[5],X=e[6],m=e[7],i[4]=g*r+b*o+X*d+m*f,i[5]=g*s+b*h+X*l+m*x,i[6]=g*n+b*u+X*I+m*v,i[7]=g*a+b*c+X*p+m*P,g=e[8],b=e[9],X=e[10],m=e[11],i[8]=g*r+b*o+X*d+m*f,i[9]=g*s+b*h+X*l+m*x,i[10]=g*n+b*u+X*I+m*v,i[11]=g*a+b*c+X*p+m*P,g=e[12],b=e[13],X=e[14],m=e[15],i[12]=g*r+b*o+X*d+m*f,i[13]=g*s+b*h+X*l+m*x,i[14]=g*n+b*u+X*I+m*v,i[15]=g*a+b*c+X*p+m*P,i},PIXI.autoDetectRenderer=function(t,e,i,r){t||(t=800),e||(e=600);var s=function(){try{return!!window.WebGLRenderingContext&&!!document.createElement("canvas").getContext("experimental-webgl")}catch(t){return!1}}();return s?new PIXI.WebGLRenderer(t,e,i,r):new PIXI.CanvasRenderer(t,e,i,r)},PIXI.shaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * vColor;","}"],PIXI.shaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform mat4 uMVMatrix;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","gl_Position = uMVMatrix * vec4(aVertexPosition, 1.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],PIXI.CompileVertexShader=function(t,e){return PIXI._CompileShader(t,e,t.VERTEX_SHADER)},PIXI.CompileFragmentShader=function(t,e){return PIXI._CompileShader(t,e,t.FRAGMENT_SHADER)},PIXI._CompileShader=function(t,e,i){var r=e.join("\n"),s=t.createShader(i);return t.shaderSource(s,r),t.compileShader(s),t.getShaderParameter(s,t.COMPILE_STATUS)?s:(alert(t.getShaderInfoLog(s)),null)},PIXI._defaultFrame=new PIXI.Rectangle(0,0,1,1),PIXI.gl,PIXI.WebGLRenderer=function(t,e,i,r){this.transparent=!!r,this.width=t||800,this.height=e||600,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height;var s=this;this.view.addEventListener("webglcontextlost",function(t){s.handleContextLost(t)},!1),this.view.addEventListener("webglcontextrestored",function(t){s.handleContextRestored(t)},!1),this.batchs=[];try{PIXI.gl=this.gl=this.view.getContext("experimental-webgl",{alpha:this.transparent,antialias:!1,premultipliedAlpha:!0})}catch(n){throw Error(" This browser does not support webGL. Try using the canvas renderer"+this)}this.initShaders();var a=this.gl;PIXI.WebGLRenderer.gl=a,this.batch=new PIXI.WebGLBatch(a),a.disable(a.DEPTH_TEST),a.disable(a.CULL_FACE),a.enable(a.BLEND),a.colorMask(!0,!0,!0,this.transparent),this.projectionMatrix=PIXI.mat4.create(),this.resize(this.width,this.height),this.contextLost=!1,this.stageRenderGroup=new PIXI.WebGLRenderGroup(this.gl)},PIXI.WebGLRenderer.constructor=PIXI.WebGLRenderer,PIXI.WebGLRenderer.getBatch=function(){return 0==PIXI._batchs.length?new PIXI.WebGLBatch(PIXI.WebGLRenderer.gl):PIXI._batchs.pop()},PIXI.WebGLRenderer.returnBatch=function(t){t.clean(),PIXI._batchs.push(t)},PIXI.WebGLRenderer.prototype.initShaders=function(){var t=this.gl,e=PIXI.CompileFragmentShader(t,PIXI.shaderFragmentSrc),i=PIXI.CompileVertexShader(t,PIXI.shaderVertexSrc);PIXI.shaderProgram=t.createProgram();var r=PIXI.shaderProgram;t.attachShader(r,i),t.attachShader(r,e),t.linkProgram(r),t.getProgramParameter(r,t.LINK_STATUS)||alert("Could not initialise shaders"),t.useProgram(r),r.vertexPositionAttribute=t.getAttribLocation(r,"aVertexPosition"),t.enableVertexAttribArray(r.vertexPositionAttribute),r.textureCoordAttribute=t.getAttribLocation(r,"aTextureCoord"),t.enableVertexAttribArray(r.textureCoordAttribute),r.colorAttribute=t.getAttribLocation(r,"aColor"),t.enableVertexAttribArray(r.colorAttribute),r.mvMatrixUniform=t.getUniformLocation(r,"uMVMatrix"),r.samplerUniform=t.getUniformLocation(r,"uSampler")},PIXI.WebGLRenderer.prototype.render=function(t){if(!this.contextLost){this.__stage!==t&&(this.__stage=t,this.stageRenderGroup.setRenderable(t));for(var e=0;PIXI.texturesToUpdate.length>e;e++)this.updateTexture(PIXI.texturesToUpdate[e]);for(var e=0;PIXI.texturesToDestroy.length>e;e++)this.destroyTexture(PIXI.texturesToDestroy[e]);PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[],t.updateTransform();var i=this.gl;if(i.colorMask(!0,!0,!0,this.transparent),i.viewport(0,0,this.width,this.height),i.bindFramebuffer(i.FRAMEBUFFER,null),i.clearColor(t.backgroundColorSplit[0],t.backgroundColorSplit[1],t.backgroundColorSplit[2],this.transparent),i.clear(i.COLOR_BUFFER_BIT),this.stageRenderGroup.backgroundColor=t.backgroundColorSplit,this.stageRenderGroup.render(this.projectionMatrix),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),PIXI.Texture.frameUpdates.length>0){for(var e=0;PIXI.Texture.frameUpdates.length>e;e++)PIXI.Texture.frameUpdates[e].updateFrame=!1;PIXI.Texture.frameUpdates=[]}}},PIXI.WebGLRenderer.prototype.updateTexture=function(t){var e=this.gl;t._glTexture||(t._glTexture=e.createTexture()),t.hasLoaded&&(e.bindTexture(e.TEXTURE_2D,t._glTexture),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t.source),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),t._powerOf2?(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT)):(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)),e.bindTexture(e.TEXTURE_2D,null)),this.refreshBatchs=!0},PIXI.WebGLRenderer.prototype.destroyTexture=function(t){var e=this.gl;t._glTexture&&(t._glTexture=e.createTexture(),e.deleteTexture(e.TEXTURE_2D,t._glTexture))},PIXI.WebGLRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e,this.gl.viewport(0,0,this.width,this.height);var i=this.projectionMatrix;i[0]=2/this.width,i[5]=-2/this.height,i[12]=-1,i[13]=1},PIXI.WebGLRenderer.prototype.handleContextLost=function(t){t.preventDefault(),this.contextLost=!0},PIXI.WebGLRenderer.prototype.handleContextRestored=function(){this.gl=this.view.getContext("experimental-webgl",{alpha:!0}),this.initShaders();for(var t=0;PIXI.TextureCache.length>t;t++)this.updateTexture(PIXI.TextureCache[t]);for(var t=0;this.batchs.length>t;t++)this.batchs[t].restoreLostContext(this.gl),this.batchs[t].dirty=!0;PIXI._restoreBatchs(this.gl),this.contextLost=!1},PIXI._batchs=[],PIXI._getBatch=function(t){return 0==PIXI._batchs.length?new PIXI.WebGLBatch(t):PIXI._batchs.pop()},PIXI._returnBatch=function(t){t.clean(),PIXI._batchs.push(t)},PIXI._restoreBatchs=function(t){for(var e=0;PIXI._batchs.length>e;e++)PIXI._batchs[e].restoreLostContext(t)},PIXI.WebGLBatch=function(t){this.gl=t,this.size=0,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer(),this.blendMode=PIXI.blendModes.NORMAL,this.dynamicSize=1},PIXI.WebGLBatch.constructor=PIXI.WebGLBatch,PIXI.WebGLBatch.prototype.clean=function(){this.verticies=[],this.uvs=[],this.indices=[],this.colors=[],this.dynamicSize=1,this.texture=null,this.last=null,this.size=0,this.head,this.tail},PIXI.WebGLBatch.prototype.restoreLostContext=function(t){this.gl=t,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer()},PIXI.WebGLBatch.prototype.init=function(t){t.batch=this,this.dirty=!0,this.blendMode=t.blendMode,this.texture=t.texture.baseTexture,this.head=t,this.tail=t,this.size=1,this.growBatch()},PIXI.WebGLBatch.prototype.insertBefore=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__prev;e.__prev=t,t.__next=e,i?(t.__prev=i,i.__next=t):this.head=t},PIXI.WebGLBatch.prototype.insertAfter=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__next;e.__next=t,t.__prev=e,i?(t.__next=i,i.__prev=t):this.tail=t},PIXI.WebGLBatch.prototype.remove=function(t){return this.size--,0==this.size?(t.batch=null,t.__prev=null,t.__next=null,void 0):(t.__prev?t.__prev.__next=t.__next:(this.head=t.__next,this.head.__prev=null),t.__next?t.__next.__prev=t.__prev:(this.tail=t.__prev,this.tail.__next=null),t.batch=null,t.__next=null,t.__prev=null,this.dirty=!0,void 0)},PIXI.WebGLBatch.prototype.split=function(t){this.dirty=!0;var e=new PIXI.WebGLBatch(this.gl);e.init(t),e.tail=this.tail,this.tail=t.__prev,this.tail.__next=null,t.__prev=null;for(var i=0;t;)i++,t.batch=e,t=t.__next;return e.size=i,this.size-=i,e},PIXI.WebGLBatch.prototype.merge=function(t){this.dirty=!0,this.tail.__next=t.head,t.head.__prev=this.tail,this.size+=t.size,this.tail=t.tail;for(var e=t.head;e;)e.batch=this,e=e.__next},PIXI.WebGLBatch.prototype.growBatch=function(){var t=this.gl;this.dynamicSize=1==this.size?1:1.5*this.size,this.verticies=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.vertexBuffer),t.bufferData(t.ARRAY_BUFFER,this.verticies,t.DYNAMIC_DRAW),this.uvs=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.uvBuffer),t.bufferData(t.ARRAY_BUFFER,this.uvs,t.DYNAMIC_DRAW),this.dirtyUVS=!0,this.colors=new Float32Array(4*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.colorBuffer),t.bufferData(t.ARRAY_BUFFER,this.colors,t.DYNAMIC_DRAW),this.dirtyColors=!0,this.indices=new Uint16Array(6*this.dynamicSize);for(var e=this.indices.length/6,i=0;e>i;i++){var r=6*i,s=4*i;this.indices[r+0]=s+0,this.indices[r+1]=s+1,this.indices[r+2]=s+2,this.indices[r+3]=s+0,this.indices[r+4]=s+2,this.indices[r+5]=s+3}t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,this.indexBuffer),t.bufferData(t.ELEMENT_ARRAY_BUFFER,this.indices,t.STATIC_DRAW)},PIXI.WebGLBatch.prototype.refresh=function(){this.gl,this.dynamicSizei;i++)this.removeDisplayObjectAndChildren(this.toRemove[i]);this.toRemove=[],this.checkVisibility(this.root,this.root.visible);for(var r,i=0;this.batchs.length>i;i++)r=this.batchs[i],r instanceof PIXI.WebGLBatch?this.batchs[i].render():r instanceof PIXI.TilingSprite?r.visible&&this.renderTilingSprite(r,t):r instanceof PIXI.Strip&&r.visible&&this.renderStrip(r,t)},PIXI.WebGLRenderGroup.prototype.renderSpecific=function(t,e){var i=this.gl;this.checkVisibility(t,t.visible),i.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform,!1,e);var r,s,n,a,o=t.renderable?t:this.getNextRenderable(t),h=o.batch;if(o instanceof PIXI.Sprite){h=o.batch;var u=h.head;if(u==o)r=0;else for(r=1;u.__next!=o;)r++,u=u.__next}else h=o;for(var c,d=t,l=t;l.children.length>0;)l=l.children[l.children.length-1],l.renderable&&(d=l);if(d instanceof PIXI.Sprite){c=d.batch;var u=c.head;if(u==d)n=0;else for(n=1;u.__next!=d;)n++,u=u.__next}else c=d;if(h==c)return h instanceof PIXI.WebGLBatch?h.render(r,n+1):h instanceof PIXI.TilingSprite?h.visible&&this.renderTilingSprite(h,e):h instanceof PIXI.Strip?h.visible&&this.renderStrip(h,e):h instanceof PIXI.CustomRenderable&&h.visible&&h.renderWebGL(this,e),void 0;s=this.batchs.indexOf(h),a=this.batchs.indexOf(c),h instanceof PIXI.WebGLBatch?h.render(r):h instanceof PIXI.TilingSprite?h.visible&&this.renderTilingSprite(h,e):h instanceof PIXI.Strip?h.visible&&this.renderStrip(h,e):h instanceof PIXI.CustomRenderable&&h.visible&&h.renderWebGL(this,e);for(var I=s+1;a>I;I++)renderable=this.batchs[I],renderable instanceof PIXI.WebGLBatch?this.batchs[I].render():renderable instanceof PIXI.TilingSprite?renderable.visible&&this.renderTilingSprite(renderable,e):renderable instanceof PIXI.Strip?renderable.visible&&this.renderStrip(renderable,e):renderable instanceof PIXI.CustomRenderable&&renderable.visible&&renderable.renderWebGL(this,e);c instanceof PIXI.WebGLBatch?c.render(0,n+1):c instanceof PIXI.TilingSprite?c.visible&&this.renderTilingSprite(c):c instanceof PIXI.Strip?c.visible&&this.renderStrip(c):c instanceof PIXI.CustomRenderable&&c.visible&&c.renderWebGL(this,e)},PIXI.WebGLRenderGroup.prototype.checkVisibility=function(t,e){for(var i=t.children,r=0;i.length>r;r++){var s=i[r];s.worldVisible=s.visible&&e,s.textureChange&&(s.textureChange=!1,s.worldVisible&&(this.removeDisplayObject(s),this.addDisplayObject(s))),s.children.length>0&&this.checkVisibility(s,s.worldVisible)}},PIXI.WebGLRenderGroup.prototype.addDisplayObject=function(t){if(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.__renderGroup=this,t.renderable){var e=this.getPreviousRenderable(t),i=this.getNextRenderable(t);if(t instanceof PIXI.Sprite){var r,s;if(e instanceof PIXI.Sprite){if(r=e.batch,r&&r.texture==t.texture.baseTexture&&r.blendMode==t.blendMode)return r.insertAfter(t,e),void 0}else r=e;if(i)if(i instanceof PIXI.Sprite){if(s=i.batch){if(s.texture==t.texture.baseTexture&&s.blendMode==t.blendMode)return s.insertBefore(t,i),void 0;if(s==r){var n=r.split(i),a=PIXI.WebGLRenderer.getBatch(),o=this.batchs.indexOf(r);return a.init(t),this.batchs.splice(o+1,0,a,n),void 0}}}else s=i;var a=PIXI.WebGLRenderer.getBatch();if(a.init(t),r){var o=this.batchs.indexOf(r);this.batchs.splice(o+1,0,a)}else this.batchs.push(a)}else t instanceof PIXI.TilingSprite?(this.initTilingSprite(t),this.batchs.push(t)):t instanceof PIXI.Strip&&(this.initStrip(t),this.batchs.push(t));this.batchUpdate=!0}},PIXI.WebGLRenderGroup.prototype.addDisplayObjectAndChildren=function(t){this.addDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.addDisplayObjectAndChildren(e[i])},PIXI.WebGLRenderGroup.prototype.removeDisplayObject=function(t){if(t.__renderGroup=null,t.renderable){var e;if(t instanceof PIXI.Sprite){var i=t.batch;if(!i)return;i.remove(t),0==i.size&&(e=i)}else e=t;if(e){var r=this.batchs.indexOf(e);if(-1==r)return;if(0==r||r==this.batchs.length-1)return this.batchs.splice(r,1),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e),void 0;if(this.batchs[r-1]instanceof PIXI.WebGLBatch&&this.batchs[r+1]instanceof PIXI.WebGLBatch&&this.batchs[r-1].texture==this.batchs[r+1].texture&&this.batchs[r-1].blendMode==this.batchs[r+1].blendMode)return this.batchs[r-1].merge(this.batchs[r+1]),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e),PIXI.WebGLRenderer.returnBatch(this.batchs[r+1]),this.batchs.splice(r,2),void 0;this.batchs.splice(r,1),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e)}}},PIXI.WebGLRenderGroup.prototype.removeDisplayObjectAndChildren=function(t){if(t.__renderGroup==this){this.removeDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.removeDisplayObjectAndChildren(e[i])}},PIXI.WebGLRenderGroup.prototype.getNextRenderable=function(t){var e=t;do{if(0==e.children.length){if(!e.parent)return null;for(;e.childIndex==e.parent.children.length-1;)if(e=e.parent,e==this.root){e=null;break}e&&(e=e.parent.children[e.childIndex+1])}else e=e.children[0];if(!e)break}while(!e.renderable||!e.__renderGroup);return e},PIXI.WebGLRenderGroup.prototype.getPreviousRenderable=function(t){var e=t;do{if(0==e.childIndex){if(e=e.parent,!e)return null}else for(e=e.parent.children[e.childIndex-1];0!=e.children.length;)e=e.children[e.children.length-1];if(e==this.root)break}while(!e.renderable||!e.__renderGroup);return e},PIXI.WebGLRenderGroup.prototype.initTilingSprite=function(t){var e=this.gl;t.verticies=new Float32Array([0,0,t.width,0,t.width,t.height,0,t.height]),t.uvs=new Float32Array([0,0,1,0,1,1,0,1]),t.colors=new Float32Array([1,1,1,1]),t.indices=new Uint16Array([0,1,3,2]),t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW),t.texture.baseTexture._glTexture?(e.bindTexture(e.TEXTURE_2D,t.texture.baseTexture._glTexture),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT),t.texture.baseTexture._powerOf2=!0):t.texture.baseTexture._powerOf2=!0},PIXI.WebGLRenderGroup.prototype.renderStrip=function(t,e){var i=this.gl,r=PIXI.shaderProgram,s=PIXI.mat3.toMat4(t.worldTransform);PIXI.mat4.transpose(s),PIXI.mat4.multiply(e,s,s),i.uniformMatrix4fv(r.mvMatrixUniform,!1,s),t.blendMode==PIXI.blendModes.NORMAL?i.blendFunc(i.ONE,i.ONE_MINUS_SRC_ALPHA):i.blendFunc(i.ONE,i.ONE_MINUS_SRC_COLOR),t.dirty?(t.dirty=!1,i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferData(i.ARRAY_BUFFER,t.verticies,i.STATIC_DRAW),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferData(i.ARRAY_BUFFER,t.uvs,i.STATIC_DRAW),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.bufferData(i.ARRAY_BUFFER,t.colors,i.STATIC_DRAW),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer),i.bufferData(i.ELEMENT_ARRAY_BUFFER,t.indices,i.STATIC_DRAW)):(i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.verticies),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer)),i.drawElements(i.TRIANGLE_STRIP,t.indices.length,i.UNSIGNED_SHORT,0),i.uniformMatrix4fv(r.mvMatrixUniform,!1,e)},PIXI.WebGLRenderGroup.prototype.renderTilingSprite=function(t,e){var i=this.gl;PIXI.shaderProgram;var r=t.tilePosition,s=t.tileScale,n=r.x/t.texture.baseTexture.width,a=r.y/t.texture.baseTexture.height,o=t.width/t.texture.baseTexture.width/s.x,h=t.height/t.texture.baseTexture.height/s.y;t.uvs[0]=0-n,t.uvs[1]=0-a,t.uvs[2]=1*o-n,t.uvs[3]=0-a,t.uvs[4]=1*o-n,t.uvs[5]=1*h-a,t.uvs[6]=0-n,t.uvs[7]=1*h-a,i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.uvs),this.renderStrip(t,e)},PIXI.WebGLRenderer.prototype.initStrip=function(t){var e=this.gl;this.shaderProgram,t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW)},PIXI.CanvasRenderer=function(t,e,i,r){this.transparent=r,this.width=t||800,this.height=e||600,this.refresh=!0,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height,this.count=0,this.context=this.view.getContext("2d")},PIXI.CanvasRenderer.constructor=PIXI.CanvasRenderer,PIXI.CanvasRenderer.prototype.render=function(t){PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[],t.updateTransform(),this.view.style.backgroundColor==t.backgroundColorString||this.transparent||(this.view.style.backgroundColor=t.backgroundColorString),this.context.setTransform(1,0,0,1,0,0),this.context.clearRect(0,0,this.width,this.height),this.renderDisplayObject(t),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),PIXI.Texture.frameUpdates.length>0&&(PIXI.Texture.frameUpdates=[])},PIXI.CanvasRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e},PIXI.CanvasRenderer.prototype.renderDisplayObject=function(t){var e=t.worldTransform,i=this.context;if(t.visible){if(t instanceof PIXI.Sprite){var r=t.texture.frame;r&&(i.globalAlpha=t.worldAlpha,i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),i.drawImage(t.texture.baseTexture.source,r.x,r.y,r.width,r.height,t.anchor.x*-r.width,t.anchor.y*-r.height,r.width,r.height))}else t instanceof PIXI.Strip?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderStrip(t)):t instanceof PIXI.TilingSprite?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderTilingSprite(t)):t instanceof PIXI.CustomRenderable&&t.renderCanvas(this);for(var s=0;t.children.length>s;s++)this.renderDisplayObject(t.children[s]);this.context.setTransform(1,0,0,1,0,0)}},PIXI.CanvasRenderer.prototype.renderStripFlat=function(t){var e=this.context,i=t.verticies;t.uvs;var r=i.length/2;this.count++,e.beginPath();for(var s=1;r-2>s;s++){var n=2*s,a=i[n],o=i[n+2],h=i[n+4],u=i[n+1],c=i[n+3],d=i[n+5];e.moveTo(a,u),e.lineTo(o,c),e.lineTo(h,d)}e.fillStyle="#FF0000",e.fill(),e.closePath()},PIXI.CanvasRenderer.prototype.renderTilingSprite=function(t){var e=this.context;t.__tilePattern||(t.__tilePattern=e.createPattern(t.texture.baseTexture.source,"repeat")),e.beginPath();var i=t.tilePosition,r=t.tileScale;e.scale(r.x,r.y),e.translate(i.x,i.y),e.fillStyle=t.__tilePattern,e.fillRect(-i.x,-i.y,t.width/r.x,t.height/r.y),e.scale(1/r.x,1/r.y),e.translate(-i.x,-i.y),e.closePath()},PIXI.CanvasRenderer.prototype.renderStrip=function(t){var e=this.context,i=t.verticies,r=t.uvs,s=i.length/2;this.count++;for(var n=1;s-2>n;n++){var a=2*n,o=i[a],h=i[a+2],u=i[a+4],c=i[a+1],d=i[a+3],l=i[a+5],I=r[a]*t.texture.width,p=r[a+2]*t.texture.width,f=r[a+4]*t.texture.width,x=r[a+1]*t.texture.height,v=r[a+3]*t.texture.height,P=r[a+5]*t.texture.height;e.save(),e.beginPath(),e.moveTo(o,c),e.lineTo(h,d),e.lineTo(u,l),e.closePath(),e.clip();var g=I*v+x*f+p*P-v*f-x*p-I*P,b=o*v+x*u+h*P-v*u-x*h-o*P,X=I*h+o*f+p*u-h*f-o*p-I*u,m=I*v*u+x*h*f+o*p*P-o*v*f-x*p*u-I*h*P,T=c*v+x*l+d*P-v*l-x*d-c*P,y=I*d+c*f+p*l-d*f-c*p-I*l,_=I*v*l+x*d*f+c*p*P-c*v*f-x*p*l-I*d*P;e.transform(b/g,T/g,X/g,y/g,m/g,_/g),e.drawImage(t.texture.baseTexture.source,0,0),e.restore()}},PIXI.Strip=function(t,e,i){PIXI.DisplayObjectContainer.call(this),this.texture=t,this.blendMode=PIXI.blendModes.NORMAL;try{this.uvs=new Float32Array([0,1,1,1,1,0,0,1]),this.verticies=new Float32Array([0,0,0,0,0,0,0,0,0]),this.colors=new Float32Array([1,1,1,1]),this.indices=new Uint16Array([0,1,2,3])}catch(r){this.uvs=[0,1,1,1,1,0,0,1],this.verticies=[0,0,0,0,0,0,0,0,0],this.colors=[1,1,1,1],this.indices=[0,1,2,3]}this.width=e,this.height=i,t.baseTexture.hasLoaded?(this.width=this.texture.frame.width,this.height=this.texture.frame.height,this.updateFrame=!0):(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},PIXI.Strip.constructor=PIXI.Strip,PIXI.Strip.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Strip.prototype.setTexture=function(t){this.texture=t,this.width=t.frame.width,this.height=t.frame.height,this.updateFrame=!0},PIXI.Strip.prototype.onTextureUpdate=function(){this.updateFrame=!0},PIXI.Rope=function(t,e){PIXI.Strip.call(this,t),this.points=e;try{this.verticies=new Float32Array(4*e.length),this.uvs=new Float32Array(4*e.length),this.colors=new Float32Array(2*e.length),this.indices=new Uint16Array(2*e.length)}catch(i){this.verticies=verticies,this.uvs=uvs,this.colors=colors,this.indices=indices}this.refresh()},PIXI.Rope.constructor=PIXI.Rope,PIXI.Rope.prototype=Object.create(PIXI.Strip.prototype),PIXI.Rope.prototype.refresh=function(){var t=this.points;if(!(1>t.length)){var e=this.uvs,i=this.indices,r=this.colors,s=t[0],n=t[0];this.count-=.2,e[0]=0,e[1]=1,e[2]=0,e[3]=1,r[0]=1,r[1]=1,i[0]=0,i[1]=1;for(var a=t.length,o=1;a>o;o++){var n=t[o],h=4*o,u=o/(a-1);o%2?(e[h]=u,e[h+1]=0,e[h+2]=u,e[h+3]=1):(e[h]=u,e[h+1]=0,e[h+2]=u,e[h+3]=1),h=2*o,r[h]=1,r[h+1]=1,h=2*o,i[h]=h,i[h+1]=h+1,s=n}}},PIXI.Rope.prototype.updateTransform=function(){var t=this.points;if(!(1>t.length)){var e,i=this.verticies,r=t[0],s={x:0,y:0},n=t[0];this.count-=.2,i[0]=n.x+s.x,i[1]=n.y+s.y,i[2]=n.x-s.x,i[3]=n.y-s.y;for(var a=t.length,o=1;a>o;o++){var n=t[o],h=4*o;e=t.length-1>o?t[o+1]:n,s.y=-(e.x-r.x),s.x=e.y-r.y;var u=10*(1-o/(a-1));u>1&&(u=1);var c=Math.sqrt(s.x*s.x+s.y*s.y),d=this.texture.height/2;s.x/=c,s.y/=c,s.x*=d,s.y*=d,i[h]=n.x+s.x,i[h+1]=n.y+s.y,i[h+2]=n.x-s.x,i[h+3]=n.y-s.y,r=n}PIXI.DisplayObjectContainer.prototype.updateTransform.call(this)}},PIXI.Rope.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0},PIXI.TilingSprite=function(t,e,i){PIXI.DisplayObjectContainer.call(this),this.texture=t,this.width=e,this.height=i,this.renderable=!0,this.tileScale=new PIXI.Point(1,1),this.tilePosition=new PIXI.Point(0,0),this.blendMode=PIXI.blendModes.NORMAL},PIXI.TilingSprite.constructor=PIXI.TilingSprite,PIXI.TilingSprite.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.TilingSprite.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0},PIXI.TilingSprite.prototype.onTextureUpdate=function(){this.updateFrame=!0},PIXI.CustomRenderable=function(){PIXI.DisplayObject.call(this)},PIXI.CustomRenderable.constructor=PIXI.CustomRenderable,PIXI.CustomRenderable.prototype=Object.create(PIXI.DisplayObject.prototype),PIXI.CustomRenderable.prototype.renderCanvas=function(){},PIXI.CustomRenderable.prototype.initWebGL=function(){},PIXI.CustomRenderable.prototype.renderWebGL=function(){},PIXI.BaseTextureCache={},PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[],PIXI.BaseTexture=function(t){if(PIXI.EventTarget.call(this),this.width=100,this.height=100,this.source=t,t){if(this.source instanceof Image)if(this.source.complete)this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,PIXI.texturesToUpdate.push(this);else{var e=this;this.source.onload=function(){e.hasLoaded=!0,e.width=e.source.width,e.height=e.source.height,PIXI.texturesToUpdate.push(e),e.dispatchEvent({type:"loaded",content:e})}}else this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,PIXI.texturesToUpdate.push(this);this._powerOf2=!1}},PIXI.BaseTexture.constructor=PIXI.BaseTexture,PIXI.BaseTexture.prototype.destroy=function(){this.source instanceof Image&&(this.source.src=null),this.source=null,PIXI.texturesToDestroy.push(this)},PIXI.BaseTexture.fromImage=function(t,e){var i=PIXI.BaseTextureCache[t];if(!i){var r=new Image;e&&(r.crossOrigin=""),r.src=t,i=new PIXI.BaseTexture(r),PIXI.BaseTextureCache[t]=i}return i},PIXI.TextureCache={},PIXI.FrameCache={},PIXI.Texture=function(t,e){if(PIXI.EventTarget.call(this),e||(this.noFrame=!0,e=new PIXI.Rectangle(0,0,1,1)),this.trim=new PIXI.Point,t instanceof PIXI.Texture&&(t=t.baseTexture),this.baseTexture=t,this.frame=e,this.scope=this,t.hasLoaded)this.noFrame&&(e=new PIXI.Rectangle(0,0,t.width,t.height)),this.setFrame(e);else{var i=this;t.addEventListener("loaded",function(){i.onBaseTextureLoaded()})}},PIXI.Texture.constructor=PIXI.Texture,PIXI.Texture.prototype.onBaseTextureLoaded=function(){var t=this.baseTexture;t.removeEventListener("loaded",this.onLoaded),this.noFrame&&(this.frame=new PIXI.Rectangle(0,0,t.width,t.height)),this.noFrame=!1,this.width=this.frame.width,this.height=this.frame.height,this.scope.dispatchEvent({type:"update",content:this})},PIXI.Texture.prototype.destroy=function(t){t&&this.baseTexture.destroy()},PIXI.Texture.prototype.setFrame=function(t){if(this.frame=t,this.width=t.width,this.height=t.height,t.x+t.width>this.baseTexture.width||t.y+t.height>this.baseTexture.height)throw Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);this.updateFrame=!0,PIXI.Texture.frameUpdates.push(this)},PIXI.Texture.fromImage=function(t,e){var i=PIXI.TextureCache[t];return i||(i=new PIXI.Texture(PIXI.BaseTexture.fromImage(t,e)),PIXI.TextureCache[t]=i),i},PIXI.Texture.fromFrame=function(t){var e=PIXI.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache "+this);return e},PIXI.Texture.fromCanvas=function(t){var e=new PIXI.BaseTexture(t);return new PIXI.Texture(e)},PIXI.Texture.addTextureToCache=function(t,e){PIXI.TextureCache[e]=t},PIXI.Texture.removeTextureFromCache=function(t){var e=PIXI.TextureCache[t];return PIXI.TextureCache[t]=null,e},PIXI.Texture.frameUpdates=[],PIXI.RenderTexture=function(t,e){PIXI.EventTarget.call(this),this.width=t||100,this.height=e||100,this.indetityMatrix=PIXI.mat3.create(),this.frame=new PIXI.Rectangle(0,0,this.width,this.height),PIXI.gl?this.initWebGL():this.initCanvas()},PIXI.RenderTexture.constructor=PIXI.RenderTexture,PIXI.RenderTexture.prototype=Object.create(PIXI.Texture.prototype),PIXI.RenderTexture.prototype.initWebGL=function(){var t=PIXI.gl;this.glFramebuffer=t.createFramebuffer(),t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),this.glFramebuffer.width=this.width,this.glFramebuffer.height=this.height,this.baseTexture=new PIXI.BaseTexture,this.baseTexture.width=this.width,this.baseTexture.height=this.height,this.baseTexture._glTexture=t.createTexture(),t.bindTexture(t.TEXTURE_2D,this.baseTexture._glTexture),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,this.width,this.height,0,t.RGBA,t.UNSIGNED_BYTE,null),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),this.baseTexture.isRender=!0,t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,this.baseTexture._glTexture,0),this.projectionMatrix=PIXI.mat4.create(),this.projectionMatrix[5]=2/this.height,this.projectionMatrix[13]=-1,this.projectionMatrix[0]=2/this.width,this.projectionMatrix[12]=-1,this.render=this.renderWebGL},PIXI.RenderTexture.prototype.initCanvas=function(){this.renderer=new PIXI.CanvasRenderer(this.width,this.height,null,0),this.baseTexture=new PIXI.BaseTexture(this.renderer.view),this.frame=new PIXI.Rectangle(0,0,this.width,this.height),this.render=this.renderCanvas},PIXI.RenderTexture.prototype.renderWebGL=function(t,e){var i=PIXI.gl;i.colorMask(!0,!0,!0,!0),i.viewport(0,0,this.width,this.height),i.bindFramebuffer(i.FRAMEBUFFER,this.glFramebuffer),e&&(i.clearColor(0,0,0,0),i.clear(i.COLOR_BUFFER_BIT));var r=t.children;t.worldTransform=PIXI.mat3.create();for(var s=0,n=r.length;n>s;s++)r[s].updateTransform();var a=t.__renderGroup;a?t==a.root?a.render(this.projectionMatrix):a.renderSpecific(t,this.projectionMatrix):(this.renderGroup||(this.renderGroup=new PIXI.WebGLRenderGroup(i)),this.renderGroup.setRenderable(t),this.renderGroup.render(this.projectionMatrix))},PIXI.RenderTexture.prototype.renderCanvas=function(t,e){var i=t.children;t.worldTransform=PIXI.mat3.create();for(var r=0,s=i.length;s>r;r++)i[r].updateTransform();e&&this.renderer.context.clearRect(0,0,this.width,this.height),this.renderer.renderDisplayObject(t),PIXI.texturesToUpdate.push(this.baseTexture)},PIXI.AssetLoader=function(t){PIXI.EventTarget.call(this),this.assetURLs=t,this.crossorigin=!1,this.loadersByType={jpg:PIXI.ImageLoader,jpeg:PIXI.ImageLoader,png:PIXI.ImageLoader,gif:PIXI.ImageLoader,json:PIXI.SpriteSheetLoader,xml:PIXI.BitmapFontLoader,fnt:PIXI.BitmapFontLoader}},PIXI.AssetLoader.constructor=PIXI.AssetLoader,PIXI.AssetLoader.prototype.load=function(){var t=this;this.loadCount=this.assetURLs.length;for(var e=0;this.assetURLs.length>e;e++){var i=this.assetURLs[e],r=i.split(".").pop().toLowerCase(),s=this.loadersByType[r];if(!s)throw Error(r+" is an unsupported file type");var n=new s(i,this.crossorigin);n.addEventListener("loaded",function(){t.onAssetLoaded()}),n.load()}},PIXI.AssetLoader.prototype.onAssetLoaded=function(){this.loadCount--,this.dispatchEvent({type:"onProgress",content:this}),this.onProgress&&this.onProgress(),0==this.loadCount&&(this.dispatchEvent({type:"onComplete",content:this}),this.onComplete&&this.onComplete())},PIXI.SpriteSheetLoader=function(t,e){PIXI.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.frames={},this.crossorigin=e},PIXI.SpriteSheetLoader.constructor=PIXI.SpriteSheetLoader,PIXI.SpriteSheetLoader.prototype.load=function(){this.ajaxRequest=new AjaxRequest;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onJSONLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/json"),this.ajaxRequest.send(null)},PIXI.SpriteSheetLoader.prototype.onJSONLoaded=function(){if(4==this.ajaxRequest.readyState&&(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))){var jsonData=eval("("+this.ajaxRequest.responseText+")"),textureUrl=this.baseUrl+jsonData.meta.image,image=new PIXI.ImageLoader(textureUrl,this.crossorigin);this.texture=image.texture.baseTexture;var scope=this;image.addEventListener("loaded",function(){scope.onLoaded()});var frameData=jsonData.frames;for(var i in frameData){var rect=frameData[i].frame;rect&&(PIXI.TextureCache[i]=new PIXI.Texture(this.texture,{x:rect.x,y:rect.y,width:rect.w,height:rect.h}),frameData[i].trimmed&&(PIXI.TextureCache[i].realSize=frameData[i].spriteSourceSize,PIXI.TextureCache[i].trim.x=0))}image.load()}},PIXI.SpriteSheetLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},PIXI.ImageLoader=function(t,e){PIXI.EventTarget.call(this),this.texture=PIXI.Texture.fromImage(t,e)},PIXI.ImageLoader.constructor=PIXI.ImageLoader,PIXI.ImageLoader.prototype.load=function(){if(this.texture.baseTexture.hasLoaded)this.onLoaded();else{var t=this;this.texture.baseTexture.addEventListener("loaded",function(){t.onLoaded()})}},PIXI.ImageLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},PIXI.BitmapFontLoader=function(t,e){PIXI.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.crossorigin=e},PIXI.BitmapFontLoader.constructor=PIXI.BitmapFontLoader,PIXI.BitmapFontLoader.prototype.load=function(){this.ajaxRequest=new XMLHttpRequest;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onXMLLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/xml"),this.ajaxRequest.send(null)},PIXI.BitmapFontLoader.prototype.onXMLLoaded=function(){if(4==this.ajaxRequest.readyState&&(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))){var t=this.baseUrl+this.ajaxRequest.responseXML.getElementsByTagName("page")[0].attributes.getNamedItem("file").nodeValue,e=new PIXI.ImageLoader(t,this.crossorigin);this.texture=e.texture.baseTexture;var i={},r=this.ajaxRequest.responseXML.getElementsByTagName("info")[0],s=this.ajaxRequest.responseXML.getElementsByTagName("common")[0];i.font=r.attributes.getNamedItem("face").nodeValue,i.size=parseInt(r.attributes.getNamedItem("size").nodeValue,10),i.lineHeight=parseInt(s.attributes.getNamedItem("lineHeight").nodeValue,10),i.chars={};for(var n=this.ajaxRequest.responseXML.getElementsByTagName("char"),a=0;n.length>a;a++){var o=parseInt(n[a].attributes.getNamedItem("id").nodeValue,10),h={x:parseInt(n[a].attributes.getNamedItem("x").nodeValue,10),y:parseInt(n[a].attributes.getNamedItem("y").nodeValue,10),width:parseInt(n[a].attributes.getNamedItem("width").nodeValue,10),height:parseInt(n[a].attributes.getNamedItem("height").nodeValue,10)};PIXI.TextureCache[o]=new PIXI.Texture(this.texture,h),i.chars[o]={xOffset:parseInt(n[a].attributes.getNamedItem("xoffset").nodeValue,10),yOffset:parseInt(n[a].attributes.getNamedItem("yoffset").nodeValue,10),xAdvance:parseInt(n[a].attributes.getNamedItem("xadvance").nodeValue,10),kerning:{}}}var u=this.ajaxRequest.responseXML.getElementsByTagName("kerning");for(a=0;u.length>a;a++){var c=parseInt(u[a].attributes.getNamedItem("first").nodeValue,10),d=parseInt(u[a].attributes.getNamedItem("second").nodeValue,10),l=parseInt(u[a].attributes.getNamedItem("amount").nodeValue,10);i.chars[d].kerning[c]=l}PIXI.BitmapText.fonts[i.font]=i;var I=this;e.addEventListener("loaded",function(){I.onLoaded()}),e.load()}},PIXI.BitmapFontLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=PIXI),exports.PIXI=PIXI):root.PIXI=PIXI}).call(this); \ No newline at end of file +(function(){function HEXtoRGB(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}function determineMatrixArrayType(){return PIXI.Matrix="undefined"!=typeof Float32Array?Float32Array:Array,PIXI.Matrix}var root=this,PIXI=PIXI||{};PIXI.Point=function(t,e){this.x=t||0,this.y=e||0},PIXI.Point.prototype.clone=function(){return new PIXI.Point(this.x,this.y)},PIXI.Point.constructor=PIXI.Point,PIXI.Rectangle=function(t,e,i,r){this.x=t||0,this.y=e||0,this.width=i||0,this.height=r||0},PIXI.Rectangle.prototype.clone=function(){return new PIXI.Rectangle(this.x,this.y,this.width,this.height)},PIXI.Rectangle.constructor=PIXI.Rectangle,PIXI.DisplayObject=function(){this.position=new PIXI.Point,this.scale=new PIXI.Point(1,1),this.pivot=new PIXI.Point(0,0),this.rotation=0,this.alpha=1,this.visible=!0,this.worldVisible=!1,this.parent=null,this.stage=null,this.hitArea=null,this.worldAlpha=1,this.color=[],this.worldTransform=PIXI.mat3.create(),this.localTransform=PIXI.mat3.create(),this.dynamic=!0,this._sr=0,this._cr=1,this.childIndex=0,this.renderable=!1,this.interactive=!1,this.buttonMode=!1},PIXI.DisplayObject.constructor=PIXI.DisplayObject,PIXI.DisplayObject.prototype.setInteractive=function(t){this.interactive=t,this.stage&&(this.stage.dirty=!0)},PIXI.DisplayObject.prototype.updateTransform=function(){this.rotation!=this.rotationCache&&(this.rotationCache=this.rotation,this._sr=Math.sin(this.rotation),this._cr=Math.cos(this.rotation));var t=this.localTransform,e=this.parent.worldTransform,i=this.worldTransform;t[0]=this._cr*this.scale.x,t[1]=-this._sr*this.scale.y,t[3]=this._sr*this.scale.x,t[4]=this._cr*this.scale.y;var r=this.pivot.x,s=this.pivot.y;t[2]=this.position.x-t[0]*r-s*t[1],t[5]=this.position.y-t[4]*s-r*t[3];var n=t[0],a=t[1],o=t[2],h=t[3],u=t[4],d=t[5],c=e[0],l=e[1],I=e[2],p=e[3],f=e[4],x=e[5];i[0]=c*n+l*h,i[1]=c*a+l*u,i[2]=c*o+l*d+I,i[3]=p*n+f*h,i[4]=p*a+f*u,i[5]=p*o+f*d+x,this.worldAlpha=this.alpha*this.parent.worldAlpha},PIXI.DisplayObjectContainer=function(){PIXI.DisplayObject.call(this),this.children=[],this.renderable=!1},PIXI.DisplayObjectContainer.constructor=PIXI.DisplayObjectContainer,PIXI.DisplayObjectContainer.prototype=Object.create(PIXI.DisplayObject.prototype),PIXI.DisplayObjectContainer.prototype.addChild=function(t){void 0!=t.parent&&t.parent.removeChild(t),t.parent=this,t.childIndex=this.children.length,this.children.push(t),this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},PIXI.DisplayObjectContainer.prototype.addChildAt=function(t,e){if(!(e>=0&&this.children.length>=e))throw Error(t+" The index "+e+" supplied is out of bounds "+this.children.length);void 0!=t.parent&&t.parent.removeChild(t),e==this.children.length?this.children.push(t):this.children.splice(e,0,t),t.parent=this,t.childIndex=e;for(var i=this.children.length,r=e;i>r;r++)this.children[r].childIndex=r;this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},PIXI.DisplayObjectContainer.prototype.swapChildren=function(t,e){var i=this.children.indexOf(t),r=this.children.indexOf(e);if(-1===i||-1===r)throw Error(t+" Both the supplied DisplayObjects must be a child of the caller "+this);this.stage&&(this.stage.__removeChild(t),this.stage.__removeChild(e),this.stage.__addChild(t),this.stage.__addChild(e)),t.childIndex=r,e.childIndex=i,this.children[i]=e,this.children[r]=t},PIXI.DisplayObjectContainer.prototype.getChildAt=function(t){if(t>=0&&this.children.length>t)return this.children[t];throw Error(child+" Both the supplied DisplayObjects must be a child of the caller "+this)},PIXI.DisplayObjectContainer.prototype.removeChild=function(t){var e=this.children.indexOf(t);if(-1===e)throw Error(t+" The supplied DisplayObject must be a child of the caller "+this);this.stage&&this.stage.__removeChild(t),t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.parent=void 0,this.children.splice(e,1);for(var i=e,r=this.children.length;r>i;i++)this.children[i].childIndex-=1},PIXI.DisplayObjectContainer.prototype.updateTransform=function(){if(this.visible){PIXI.DisplayObject.prototype.updateTransform.call(this);for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform()}},PIXI.blendModes={},PIXI.blendModes.NORMAL=0,PIXI.blendModes.SCREEN=1,PIXI.Sprite=function(t){PIXI.DisplayObjectContainer.call(this),this.anchor=new PIXI.Point,this.texture=t,this.blendMode=PIXI.blendModes.NORMAL,this._width=0,this._height=0,t.baseTexture.hasLoaded?this.updateFrame=!0:(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},PIXI.Sprite.constructor=PIXI.Sprite,PIXI.Sprite.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),Object.defineProperty(PIXI.Sprite.prototype,"width",{get:function(){return this.scale.x*this.texture.frame.width},set:function(t){this.scale.x=t/this.texture.frame.width,this._width=t}}),Object.defineProperty(PIXI.Sprite.prototype,"height",{get:function(){return this.scale.y*this.texture.frame.height},set:function(t){this.scale.y=t/this.texture.frame.height,this._height=t}}),PIXI.Sprite.prototype.setTexture=function(t){this.texture.baseTexture!=t.baseTexture&&(this.textureChange=!0),this.texture=t,this.updateFrame=!0},PIXI.Sprite.prototype.onTextureUpdate=function(){this._width&&(this.scale.x=this._width/this.texture.frame.width),this._height&&(this.scale.y=this._height/this.texture.frame.height),this.updateFrame=!0},PIXI.Sprite.fromFrame=function(t){var e=PIXI.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache"+this);return new PIXI.Sprite(e)},PIXI.Sprite.fromImage=function(t){var e=PIXI.Texture.fromImage(t);return new PIXI.Sprite(e)},PIXI.MovieClip=function(t){PIXI.Sprite.call(this,t[0]),this.textures=t,this.currentFrame=0,this.animationSpeed=1,this.loop=!0,this.onComplete=null,this.playing},PIXI.MovieClip.constructor=PIXI.MovieClip,PIXI.MovieClip.prototype=Object.create(PIXI.Sprite.prototype),PIXI.MovieClip.prototype.stop=function(){this.playing=!1},PIXI.MovieClip.prototype.play=function(){this.playing=!0},PIXI.MovieClip.prototype.gotoAndStop=function(t){this.playing=!1,this.currentFrame=t;var e=0|this.currentFrame+.5;this.setTexture(this.textures[e%this.textures.length])},PIXI.MovieClip.prototype.gotoAndPlay=function(t){this.currentFrame=t,this.playing=!0},PIXI.MovieClip.prototype.updateTransform=function(){if(PIXI.Sprite.prototype.updateTransform.call(this),this.playing){this.currentFrame+=this.animationSpeed;var t=0|this.currentFrame+.5;this.loop||this.textures.length>t?this.setTexture(this.textures[t%this.textures.length]):t>=this.textures.length&&(this.gotoAndStop(this.textures.length-1),this.onComplete&&this.onComplete())}},PIXI.Text=function(t,e){this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"),PIXI.Sprite.call(this,PIXI.Texture.fromCanvas(this.canvas)),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},PIXI.Text.constructor=PIXI.Text,PIXI.Text.prototype=Object.create(PIXI.Sprite.prototype),PIXI.Text.prototype.setStyle=function(t){t=t||{},t.font=t.font||"bold 20pt Arial",t.fill=t.fill||"black",t.align=t.align||"left",t.strokeThickness=t.strokeThickness||0,this.style=t,this.dirty=!0},PIXI.Sprite.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},PIXI.Text.prototype.updateText=function(){this.context.font=this.style.font;for(var t=this.text.split(/(?:\r\n|\r|\n)/),e=[],i=0,r=0;t.length>r;r++){var s=this.context.measureText(t[r]).width;e[r]=s,i=Math.max(i,s)}this.canvas.width=i+this.style.strokeThickness;var n=this.determineFontHeight("font: "+this.style.font+";")+this.style.strokeThickness;for(this.canvas.height=n*t.length,this.context.fillStyle=this.style.fill,this.context.font=this.style.font,this.context.strokeStyle=this.style.stroke,this.context.lineWidth=this.style.strokeThickness,this.context.textBaseline="top",r=0;t.length>r;r++){var a=new PIXI.Point(this.style.strokeThickness/2,this.style.strokeThickness/2+r*n);"right"==this.style.align?a.x+=i-e[r]:"center"==this.style.align&&(a.x+=(i-e[r])/2),this.style.stroke&&this.style.strokeThickness&&this.context.strokeText(t[r],a.x,a.y),this.style.fill&&this.context.fillText(t[r],a.x,a.y)}this.updateTexture()},PIXI.Text.prototype.updateTexture=function(){this.texture.baseTexture.width=this.canvas.width,this.texture.baseTexture.height=this.canvas.height,this.texture.frame.width=this.canvas.width,this.texture.frame.height=this.canvas.height,this._width=this.canvas.width,this._height=this.canvas.height,PIXI.texturesToUpdate.push(this.texture.baseTexture)},PIXI.Text.prototype.updateTransform=function(){this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype.updateTransform.call(this)},PIXI.Text.prototype.determineFontHeight=function(t){var e=PIXI.Text.heightCache[t];if(!e){var i=document.getElementsByTagName("body")[0],r=document.createElement("div"),s=document.createTextNode("M");r.appendChild(s),r.setAttribute("style",t),i.appendChild(r),e=r.offsetHeight,PIXI.Text.heightCache[t]=e,i.removeChild(r)}return e},PIXI.Text.prototype.destroy=function(t){t&&this.texture.destroy()},PIXI.Text.heightCache={},PIXI.BitmapText=function(t,e){PIXI.DisplayObjectContainer.call(this),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},PIXI.BitmapText.constructor=PIXI.BitmapText,PIXI.BitmapText.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.BitmapText.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},PIXI.BitmapText.prototype.setStyle=function(t){t=t||{},t.align=t.align||"left",this.style=t;var e=t.font.split(" ");this.fontName=e[e.length-1],this.fontSize=e.length>=2?parseInt(e[e.length-2],10):PIXI.BitmapText.fonts[this.fontName].size,this.dirty=!0},PIXI.BitmapText.prototype.updateText=function(){for(var t=PIXI.BitmapText.fonts[this.fontName],e=new PIXI.Point,i=null,r=[],s=0,n=[],a=0,o=this.fontSize/t.size,h=0;this.text.length>h;h++){var u=this.text.charCodeAt(h);if(/(?:\r\n|\r|\n)/.test(this.text.charAt(h)))n.push(e.x),s=Math.max(s,e.x),a++,e.x=0,e.y+=t.lineHeight,i=null;else{var d=t.chars[u];d&&(i&&d[i]&&(e.x+=d.kerning[i]),r.push({line:a,charCode:u,position:new PIXI.Point(e.x+d.xOffset,e.y+d.yOffset)}),e.x+=d.xAdvance,i=u)}}n.push(e.x),s=Math.max(s,e.x);var c=[];for(h=0;a>=h;h++){var l=0;"right"==this.style.align?l=s-n[h]:"center"==this.style.align&&(l=(s-n[h])/2),c.push(l)}for(h=0;r.length>h;h++){var I=PIXI.Sprite.fromFrame(r[h].charCode);I.position.x=(r[h].position.x+c[r[h].line])*o,I.position.y=r[h].position.y*o,I.scale.x=I.scale.y=o,this.addChild(I)}this.width=e.x*o,this.height=(e.y+t.lineHeight)*o},PIXI.BitmapText.prototype.updateTransform=function(){if(this.dirty){for(;this.children.length>0;)this.removeChild(this.getChildAt(0));this.updateText(),this.dirty=!1}PIXI.DisplayObjectContainer.prototype.updateTransform.call(this)},PIXI.BitmapText.fonts={},PIXI.InteractionManager=function(t){this.stage=t,this.tempPoint=new PIXI.Point,this.mouseoverEnabled=!0,this.mouse=new PIXI.InteractionData,this.touchs={},this.pool=[],this.interactiveItems=[],this.last=0},PIXI.InteractionManager.constructor=PIXI.InteractionManager,PIXI.InteractionManager.prototype.collectInteractiveSprite=function(t,e){for(var i=t.children,r=i.length,s=r-1;s>=0;s--){var n=i[s];n.interactive?(e.interactiveChildren=!0,this.interactiveItems.push(n),n.children.length>0&&this.collectInteractiveSprite(n,n)):(n.__iParent=null,n.children.length>0&&this.collectInteractiveSprite(n,e))}},PIXI.InteractionManager.prototype.setTarget=function(t){window.navigator.msPointerEnabled&&(t.view.style["-ms-content-zooming"]="none",t.view.style["-ms-touch-action"]="none"),this.target=t,t.view.addEventListener("mousemove",this.onMouseMove.bind(this),!0),t.view.addEventListener("mousedown",this.onMouseDown.bind(this),!0),document.body.addEventListener("mouseup",this.onMouseUp.bind(this),!0),t.view.addEventListener("mouseout",this.onMouseUp.bind(this),!0),t.view.addEventListener("touchstart",this.onTouchStart.bind(this),!0),t.view.addEventListener("touchend",this.onTouchEnd.bind(this),!0),t.view.addEventListener("touchmove",this.onTouchMove.bind(this),!0)},PIXI.InteractionManager.prototype.update=function(){if(this.target){var t=Date.now(),e=t-this.last;if(e=30*e/1e3,!(1>e)){if(this.last=t,this.dirty){this.dirty=!1,this.interactiveItems.length;for(var i=0;this.interactiveItems.length>i;i++)this.interactiveItems[i].interactiveChildren=!1;this.interactiveItems=[],this.stage.interactive&&this.interactiveItems.push(this.stage),this.collectInteractiveSprite(this.stage,this.stage)}var r=this.interactiveItems.length;this.target.view.style.cursor="default";for(var i=0;r>i;i++){var s=this.interactiveItems[i];s.visible&&(s.mouseover||s.mouseout||s.buttonMode)&&(s.__hit=this.hitTest(s,this.mouse),s.__hit?(s.buttonMode&&(this.target.view.style.cursor="pointer"),s.__isOver||(s.mouseover&&s.mouseover(this.mouse),s.__isOver=!0)):s.__isOver&&(s.mouseout&&s.mouseout(this.mouse),s.__isOver=!1))}}}},PIXI.InteractionManager.prototype.onMouseMove=function(t){t.preventDefault();var e=this.target.view.getBoundingClientRect();this.mouse.global.x=(t.clientX-e.left)*(this.target.width/e.width),this.mouse.global.y=(t.clientY-e.top)*(this.target.height/e.height);var i=this.interactiveItems.length;this.mouse.global;for(var r=0;i>r;r++){var s=this.interactiveItems[r];s.mousemove&&s.mousemove(this.mouse)}},PIXI.InteractionManager.prototype.onMouseDown=function(t){t.preventDefault();var e=this.interactiveItems.length;this.mouse.global,this.stage;for(var i=0;e>i;i++){var r=this.interactiveItems[i];if((r.mousedown||r.click)&&(r.__mouseIsDown=!0,r.__hit=this.hitTest(r,this.mouse),r.__hit&&(r.mousedown&&r.mousedown(this.mouse),r.__isDown=!0,!r.interactiveChildren)))break}},PIXI.InteractionManager.prototype.onMouseUp=function(t){t.preventDefault(),this.mouse.global;for(var e=this.interactiveItems.length,i=!1,r=0;e>r;r++){var s=this.interactiveItems[r];(s.mouseup||s.mouseupoutside||s.click)&&(s.__hit=this.hitTest(s,this.mouse),s.__hit&&!i?(s.mouseup&&s.mouseup(this.mouse),s.__isDown&&s.click&&s.click(this.mouse),s.interactiveChildren||(i=!0)):s.__isDown&&s.mouseupoutside&&s.mouseupoutside(this.mouse),s.__isDown=!1)}},PIXI.InteractionManager.prototype.hitTest=function(t,e){var i=e.global;if(!t.visible)return!1;if(t instanceof PIXI.Sprite){var r=t.worldTransform,s=r[0],n=r[1],a=r[2],o=r[3],h=r[4],u=r[5],d=1/(s*h+n*-o),c=h*d*i.x+-n*d*i.y+(u*n-a*h)*d,l=s*d*i.y+-o*d*i.x+(-u*s+a*o)*d,I=t.texture.frame.width,p=t.texture.frame.height,f=-I*t.anchor.x;if(c>f&&f+I>c){var x=-p*t.anchor.y;if(l>x&&x+p>l)return e.target=t,!0}}else if(t.hitArea){var r=t.worldTransform,v=t.hitArea,s=r[0],n=r[1],a=r[2],o=r[3],h=r[4],u=r[5],d=1/(s*h+n*-o),c=h*d*i.x+-n*d*i.y+(u*n-a*h)*d,l=s*d*i.y+-o*d*i.x+(-u*s+a*o)*d,f=v.x;if(c>f&&f+v.width>c){var x=v.y;if(l>x&&x+v.height>l)return!0}}for(var P=t.children.length,g=0;P>g;g++){var b=t.children[g],X=this.hitTest(b,e);if(X)return!0}return!1},PIXI.InteractionManager.prototype.onTouchMove=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.touchs[s.identifier];n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height)}for(var a=this.interactiveItems.length,r=0;a>r;r++){var o=this.interactiveItems[r];o.touchmove&&o.touchmove(n)}},PIXI.InteractionManager.prototype.onTouchStart=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.pool.pop();n||(n=new PIXI.InteractionData),this.touchs[s.identifier]=n,n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height);for(var a=this.interactiveItems.length,o=0;a>o;o++){var h=this.interactiveItems[o];if((h.touchstart||h.tap)&&(h.__hit=this.hitTest(h,n),h.__hit&&(h.touchstart&&h.touchstart(n),h.__isDown=!0,h.__touchData=n,!h.interactiveChildren)))break}}},PIXI.InteractionManager.prototype.onTouchEnd=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.touchs[s.identifier],a=!1;n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var u=this.interactiveItems[h],d=u.__touchData;u.__hit=this.hitTest(u,n),d==n&&((u.touchend||u.tap)&&(u.__hit&&!a?(u.touchend&&u.touchend(n),u.__isDown&&u.tap&&u.tap(n),u.interactiveChildren||(a=!0)):u.__isDown&&u.touchendoutside&&u.touchendoutside(n),u.__isDown=!1),u.__touchData=null)}this.pool.push(n),this.touchs[s.identifier]=null}},PIXI.InteractionData=function(){this.global=new PIXI.Point,this.local=new PIXI.Point,this.target},PIXI.InteractionData.prototype.getLocalPosition=function(t){var e=t.worldTransform,i=this.global,r=e[0],s=e[1],n=e[2],a=e[3],o=e[4],h=e[5],u=1/(r*o+s*-a);return new PIXI.Point(o*u*i.x+-s*u*i.y+(h*s-n*o)*u,r*u*i.y+-a*u*i.x+(-h*r+n*a)*u)},PIXI.InteractionData.constructor=PIXI.InteractionData,PIXI.Stage=function(t,e){PIXI.DisplayObjectContainer.call(this),this.worldTransform=PIXI.mat3.create(),this.__childrenAdded=[],this.__childrenRemoved=[],this.childIndex=0,this.stage=this,this.stage.hitArea=new PIXI.Rectangle(0,0,1e5,1e5),this.interactive=!!e,this.interactionManager=new PIXI.InteractionManager(this),this.setBackgroundColor(t),this.worldVisible=!0},PIXI.Stage.constructor=PIXI.Stage,PIXI.Stage.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Stage.prototype.updateTransform=function(){this.worldAlpha=1;for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform();this.dirty&&(this.dirty=!1,this.interactionManager.dirty=!0),this.interactive&&this.interactionManager.update()},PIXI.Stage.prototype.setBackgroundColor=function(t){this.backgroundColor=t||0,this.backgroundColorSplit=HEXtoRGB(this.backgroundColor),this.backgroundColorString="#"+this.backgroundColor.toString(16)},PIXI.Stage.prototype.getMousePosition=function(){return this.interactionManager.mouse.global},PIXI.Stage.prototype.__addChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=this,t.children)for(var e=0;t.children.length>e;e++)this.__addChild(t.children[e])},PIXI.Stage.prototype.__removeChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=void 0,t.children)for(var e=0,i=t.children.length;i>e;e++)this.__removeChild(t.children[e])},window.requestAnimFrame=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(t){window.setTimeout(t,1e3/60)}}(),"function"!=typeof Function.prototype.bind&&(Function.prototype.bind=function(){var t=Array.prototype.slice;return function(e){function i(){var n=s.concat(t.call(arguments));r.apply(this instanceof i?this:e,n)}var r=this,s=t.call(arguments,1);if("function"!=typeof r)throw new TypeError;return i.prototype=function n(t){return t&&(n.prototype=t),this instanceof n?void 0:new n}(r.prototype),i}}());var AjaxRequest=function(){var t=["Msxml2.XMLHTTP","Microsoft.XMLHTTP"];if(!window.ActiveXObject)return window.XMLHttpRequest?new XMLHttpRequest:!1;for(var e=0;t.length>e;e++)try{return new ActiveXObject(t[e])}catch(i){}};PIXI.EventTarget=function(){var t={};this.addEventListener=this.on=function(e,i){void 0===t[e]&&(t[e]=[]),-1===t[e].indexOf(i)&&t[e].push(i)},this.dispatchEvent=this.emit=function(e){for(var i in t[e.type])t[e.type][i](e)},this.removeEventListener=this.off=function(e,i){var r=t[e].indexOf(i);-1!==r&&t[e].splice(r,1)}},determineMatrixArrayType(),PIXI.mat3={},PIXI.mat3.create=function(){var t=new PIXI.Matrix(9);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},PIXI.mat4={},PIXI.mat4.create=function(){var t=new PIXI.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},PIXI.mat3.multiply=function(t,e,i){i||(i=t);var r=t[0],s=t[1],n=t[2],a=t[3],o=t[4],h=t[5],u=t[6],d=t[7],c=t[8],l=e[0],I=e[1],p=e[2],f=e[3],x=e[4],v=e[5],P=e[6],g=e[7],b=e[8];return i[0]=l*r+I*a+p*u,i[1]=l*s+I*o+p*d,i[2]=l*n+I*h+p*c,i[3]=f*r+x*a+v*u,i[4]=f*s+x*o+v*d,i[5]=f*n+x*h+v*c,i[6]=P*r+g*a+b*u,i[7]=P*s+g*o+b*d,i[8]=P*n+g*h+b*c,i},PIXI.mat3.toMat4=function(t,e){return e||(e=PIXI.mat4.create()),e[15]=1,e[14]=0,e[13]=0,e[12]=0,e[11]=0,e[10]=t[8],e[9]=t[7],e[8]=t[6],e[7]=0,e[6]=t[5],e[5]=t[4],e[4]=t[3],e[3]=0,e[2]=t[2],e[1]=t[1],e[0]=t[0],e},PIXI.mat4.create=function(){var t=new PIXI.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},PIXI.mat4.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],s=t[3],n=t[6],a=t[7],o=t[11];return t[1]=t[4],t[2]=t[8],t[3]=t[12],t[4]=i,t[6]=t[9],t[7]=t[13],t[8]=r,t[9]=n,t[11]=t[14],t[12]=s,t[13]=a,t[14]=o,t}return e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=t[1],e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=t[2],e[9]=t[6],e[10]=t[10],e[11]=t[14],e[12]=t[3],e[13]=t[7],e[14]=t[11],e[15]=t[15],e},PIXI.mat4.multiply=function(t,e,i){i||(i=t);var r=t[0],s=t[1],n=t[2],a=t[3],o=t[4],h=t[5],u=t[6],d=t[7],c=t[8],l=t[9],I=t[10],p=t[11],f=t[12],x=t[13],v=t[14],P=t[15],g=e[0],b=e[1],X=e[2],m=e[3];return i[0]=g*r+b*o+X*c+m*f,i[1]=g*s+b*h+X*l+m*x,i[2]=g*n+b*u+X*I+m*v,i[3]=g*a+b*d+X*p+m*P,g=e[4],b=e[5],X=e[6],m=e[7],i[4]=g*r+b*o+X*c+m*f,i[5]=g*s+b*h+X*l+m*x,i[6]=g*n+b*u+X*I+m*v,i[7]=g*a+b*d+X*p+m*P,g=e[8],b=e[9],X=e[10],m=e[11],i[8]=g*r+b*o+X*c+m*f,i[9]=g*s+b*h+X*l+m*x,i[10]=g*n+b*u+X*I+m*v,i[11]=g*a+b*d+X*p+m*P,g=e[12],b=e[13],X=e[14],m=e[15],i[12]=g*r+b*o+X*c+m*f,i[13]=g*s+b*h+X*l+m*x,i[14]=g*n+b*u+X*I+m*v,i[15]=g*a+b*d+X*p+m*P,i},PIXI.autoDetectRenderer=function(t,e,i,r){t||(t=800),e||(e=600);var s=function(){try{return!!window.WebGLRenderingContext&&!!document.createElement("canvas").getContext("experimental-webgl")}catch(t){return!1}}();return s?new PIXI.WebGLRenderer(t,e,i,r):new PIXI.CanvasRenderer(t,e,i,r)},PIXI.shaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * vColor;","}"],PIXI.shaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform mat4 uMVMatrix;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","gl_Position = uMVMatrix * vec4(aVertexPosition, 1.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],PIXI.CompileVertexShader=function(t,e){return PIXI._CompileShader(t,e,t.VERTEX_SHADER)},PIXI.CompileFragmentShader=function(t,e){return PIXI._CompileShader(t,e,t.FRAGMENT_SHADER)},PIXI._CompileShader=function(t,e,i){var r=e.join("\n"),s=t.createShader(i);return t.shaderSource(s,r),t.compileShader(s),t.getShaderParameter(s,t.COMPILE_STATUS)?s:(alert(t.getShaderInfoLog(s)),null)},PIXI._defaultFrame=new PIXI.Rectangle(0,0,1,1),PIXI.gl,PIXI.WebGLRenderer=function(t,e,i,r){this.transparent=!!r,this.width=t||800,this.height=e||600,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height;var s=this;this.view.addEventListener("webglcontextlost",function(t){s.handleContextLost(t)},!1),this.view.addEventListener("webglcontextrestored",function(t){s.handleContextRestored(t)},!1),this.batchs=[];try{PIXI.gl=this.gl=this.view.getContext("experimental-webgl",{alpha:this.transparent,antialias:!1,premultipliedAlpha:!0})}catch(n){throw Error(" This browser does not support webGL. Try using the canvas renderer"+this)}this.initShaders();var a=this.gl;PIXI.WebGLRenderer.gl=a,this.batch=new PIXI.WebGLBatch(a),a.disable(a.DEPTH_TEST),a.disable(a.CULL_FACE),a.enable(a.BLEND),a.colorMask(!0,!0,!0,this.transparent),this.projectionMatrix=PIXI.mat4.create(),this.resize(this.width,this.height),this.contextLost=!1,this.stageRenderGroup=new PIXI.WebGLRenderGroup(this.gl)},PIXI.WebGLRenderer.constructor=PIXI.WebGLRenderer,PIXI.WebGLRenderer.getBatch=function(){return 0==PIXI._batchs.length?new PIXI.WebGLBatch(PIXI.WebGLRenderer.gl):PIXI._batchs.pop()},PIXI.WebGLRenderer.returnBatch=function(t){t.clean(),PIXI._batchs.push(t)},PIXI.WebGLRenderer.prototype.initShaders=function(){var t=this.gl,e=PIXI.CompileFragmentShader(t,PIXI.shaderFragmentSrc),i=PIXI.CompileVertexShader(t,PIXI.shaderVertexSrc);PIXI.shaderProgram=t.createProgram();var r=PIXI.shaderProgram;t.attachShader(r,i),t.attachShader(r,e),t.linkProgram(r),t.getProgramParameter(r,t.LINK_STATUS)||alert("Could not initialise shaders"),t.useProgram(r),r.vertexPositionAttribute=t.getAttribLocation(r,"aVertexPosition"),t.enableVertexAttribArray(r.vertexPositionAttribute),r.textureCoordAttribute=t.getAttribLocation(r,"aTextureCoord"),t.enableVertexAttribArray(r.textureCoordAttribute),r.colorAttribute=t.getAttribLocation(r,"aColor"),t.enableVertexAttribArray(r.colorAttribute),r.mvMatrixUniform=t.getUniformLocation(r,"uMVMatrix"),r.samplerUniform=t.getUniformLocation(r,"uSampler")},PIXI.WebGLRenderer.prototype.render=function(t){if(!this.contextLost){this.__stage!==t&&(this.__stage=t,this.stageRenderGroup.setRenderable(t)),PIXI.WebGLRenderer.updateTextures(),t.updateTransform();var e=this.gl;if(e.colorMask(!0,!0,!0,this.transparent),e.viewport(0,0,this.width,this.height),e.bindFramebuffer(e.FRAMEBUFFER,null),e.clearColor(t.backgroundColorSplit[0],t.backgroundColorSplit[1],t.backgroundColorSplit[2],this.transparent),e.clear(e.COLOR_BUFFER_BIT),this.stageRenderGroup.backgroundColor=t.backgroundColorSplit,this.stageRenderGroup.render(this.projectionMatrix),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),PIXI.Texture.frameUpdates.length>0){for(var i=0;PIXI.Texture.frameUpdates.length>i;i++)PIXI.Texture.frameUpdates[i].updateFrame=!1;PIXI.Texture.frameUpdates=[]}}},PIXI.WebGLRenderer.updateTextures=function(){for(var t=0;PIXI.texturesToUpdate.length>t;t++)this.updateTexture(PIXI.texturesToUpdate[t]);for(var t=0;PIXI.texturesToDestroy.length>t;t++)this.destroyTexture(PIXI.texturesToDestroy[t]);PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[]},PIXI.WebGLRenderer.updateTexture=function(t){var e=PIXI.gl;t._glTexture||(t._glTexture=e.createTexture()),t.hasLoaded&&(e.bindTexture(e.TEXTURE_2D,t._glTexture),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t.source),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),t._powerOf2?(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT)):(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)),e.bindTexture(e.TEXTURE_2D,null))},PIXI.WebGLRenderer.prototype.destroyTexture=function(t){var e=this.gl;t._glTexture&&(t._glTexture=e.createTexture(),e.deleteTexture(e.TEXTURE_2D,t._glTexture))},PIXI.WebGLRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e,this.gl.viewport(0,0,this.width,this.height);var i=this.projectionMatrix;i[0]=2/this.width,i[5]=-2/this.height,i[12]=-1,i[13]=1},PIXI.WebGLRenderer.prototype.handleContextLost=function(t){t.preventDefault(),this.contextLost=!0},PIXI.WebGLRenderer.prototype.handleContextRestored=function(){this.gl=this.view.getContext("experimental-webgl",{alpha:!0}),this.initShaders();for(var t=0;PIXI.TextureCache.length>t;t++)this.updateTexture(PIXI.TextureCache[t]);for(var t=0;this.batchs.length>t;t++)this.batchs[t].restoreLostContext(this.gl),this.batchs[t].dirty=!0;PIXI._restoreBatchs(this.gl),this.contextLost=!1},PIXI._batchs=[],PIXI._getBatch=function(t){return 0==PIXI._batchs.length?new PIXI.WebGLBatch(t):PIXI._batchs.pop()},PIXI._returnBatch=function(t){t.clean(),PIXI._batchs.push(t)},PIXI._restoreBatchs=function(t){for(var e=0;PIXI._batchs.length>e;e++)PIXI._batchs[e].restoreLostContext(t)},PIXI.WebGLBatch=function(t){this.gl=t,this.size=0,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer(),this.blendMode=PIXI.blendModes.NORMAL,this.dynamicSize=1},PIXI.WebGLBatch.constructor=PIXI.WebGLBatch,PIXI.WebGLBatch.prototype.clean=function(){this.verticies=[],this.uvs=[],this.indices=[],this.colors=[],this.dynamicSize=1,this.texture=null,this.last=null,this.size=0,this.head,this.tail},PIXI.WebGLBatch.prototype.restoreLostContext=function(t){this.gl=t,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer()},PIXI.WebGLBatch.prototype.init=function(t){t.batch=this,this.dirty=!0,this.blendMode=t.blendMode,this.texture=t.texture.baseTexture,this.head=t,this.tail=t,this.size=1,this.growBatch()},PIXI.WebGLBatch.prototype.insertBefore=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__prev;e.__prev=t,t.__next=e,i?(t.__prev=i,i.__next=t):this.head=t},PIXI.WebGLBatch.prototype.insertAfter=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__next;e.__next=t,t.__prev=e,i?(t.__next=i,i.__prev=t):this.tail=t},PIXI.WebGLBatch.prototype.remove=function(t){return this.size--,0==this.size?(t.batch=null,t.__prev=null,t.__next=null,void 0):(t.__prev?t.__prev.__next=t.__next:(this.head=t.__next,this.head.__prev=null),t.__next?t.__next.__prev=t.__prev:(this.tail=t.__prev,this.tail.__next=null),t.batch=null,t.__next=null,t.__prev=null,this.dirty=!0,void 0)},PIXI.WebGLBatch.prototype.split=function(t){this.dirty=!0;var e=new PIXI.WebGLBatch(this.gl);e.init(t),e.tail=this.tail,this.tail=t.__prev,this.tail.__next=null,t.__prev=null;for(var i=0;t;)i++,t.batch=e,t=t.__next;return e.size=i,this.size-=i,e},PIXI.WebGLBatch.prototype.merge=function(t){this.dirty=!0,this.tail.__next=t.head,t.head.__prev=this.tail,this.size+=t.size,this.tail=t.tail;for(var e=t.head;e;)e.batch=this,e=e.__next},PIXI.WebGLBatch.prototype.growBatch=function(){var t=this.gl;this.dynamicSize=1==this.size?1:1.5*this.size,this.verticies=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.vertexBuffer),t.bufferData(t.ARRAY_BUFFER,this.verticies,t.DYNAMIC_DRAW),this.uvs=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.uvBuffer),t.bufferData(t.ARRAY_BUFFER,this.uvs,t.DYNAMIC_DRAW),this.dirtyUVS=!0,this.colors=new Float32Array(4*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.colorBuffer),t.bufferData(t.ARRAY_BUFFER,this.colors,t.DYNAMIC_DRAW),this.dirtyColors=!0,this.indices=new Uint16Array(6*this.dynamicSize);for(var e=this.indices.length/6,i=0;e>i;i++){var r=6*i,s=4*i;this.indices[r+0]=s+0,this.indices[r+1]=s+1,this.indices[r+2]=s+2,this.indices[r+3]=s+0,this.indices[r+4]=s+2,this.indices[r+5]=s+3}t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,this.indexBuffer),t.bufferData(t.ELEMENT_ARRAY_BUFFER,this.indices,t.STATIC_DRAW)},PIXI.WebGLBatch.prototype.refresh=function(){this.gl,this.dynamicSizer;r++)i=this.batchs[r],i instanceof PIXI.WebGLBatch?this.batchs[r].render():i instanceof PIXI.TilingSprite?i.visible&&this.renderTilingSprite(i,t):i instanceof PIXI.Strip&&i.visible&&this.renderStrip(i,t)},PIXI.WebGLRenderGroup.prototype.renderSpecific=function(t,e){PIXI.WebGLRenderer.updateTextures();var i=this.gl;this.checkVisibility(t,t.visible),i.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform,!1,e);var r,s,n,a,o=t.renderable?t:this.getNextRenderable(t),h=o.batch;if(o instanceof PIXI.Sprite){h=o.batch;var u=h.head;if(u==o)r=0;else for(r=1;u.__next!=o;)r++,u=u.__next}else h=o;for(var d,c=t,l=t;l.children.length>0;)l=l.children[l.children.length-1],l.renderable&&(c=l);if(c instanceof PIXI.Sprite){d=c.batch;var u=d.head;if(u==c)n=0;else for(n=1;u.__next!=c;)n++,u=u.__next}else d=c;if(h==d)return h instanceof PIXI.WebGLBatch?h.render(r,n+1):h instanceof PIXI.TilingSprite?h.visible&&this.renderTilingSprite(h,e):h instanceof PIXI.Strip?h.visible&&this.renderStrip(h,e):h instanceof PIXI.CustomRenderable&&h.visible&&h.renderWebGL(this,e),void 0;s=this.batchs.indexOf(h),a=this.batchs.indexOf(d),h instanceof PIXI.WebGLBatch?h.render(r):h instanceof PIXI.TilingSprite?h.visible&&this.renderTilingSprite(h,e):h instanceof PIXI.Strip?h.visible&&this.renderStrip(h,e):h instanceof PIXI.CustomRenderable&&h.visible&&h.renderWebGL(this,e);for(var I=s+1;a>I;I++)renderable=this.batchs[I],renderable instanceof PIXI.WebGLBatch?this.batchs[I].render():renderable instanceof PIXI.TilingSprite?renderable.visible&&this.renderTilingSprite(renderable,e):renderable instanceof PIXI.Strip?renderable.visible&&this.renderStrip(renderable,e):renderable instanceof PIXI.CustomRenderable&&renderable.visible&&renderable.renderWebGL(this,e);d instanceof PIXI.WebGLBatch?d.render(0,n+1):d instanceof PIXI.TilingSprite?d.visible&&this.renderTilingSprite(d):d instanceof PIXI.Strip?d.visible&&this.renderStrip(d):d instanceof PIXI.CustomRenderable&&d.visible&&d.renderWebGL(this,e)},PIXI.WebGLRenderGroup.prototype.checkVisibility=function(t,e){for(var i=t.children,r=0;i.length>r;r++){var s=i[r];s.worldVisible=s.visible&&e,s.textureChange&&(s.textureChange=!1,s.worldVisible&&(this.removeDisplayObject(s),this.addDisplayObject(s))),s.children.length>0&&this.checkVisibility(s,s.worldVisible)}},PIXI.WebGLRenderGroup.prototype.addDisplayObject=function(t){if(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.__renderGroup=this,t.renderable){var e=this.getPreviousRenderable(t),i=this.getNextRenderable(t);if(t instanceof PIXI.Sprite){var r,s;if(e instanceof PIXI.Sprite){if(r=e.batch,r&&r.texture==t.texture.baseTexture&&r.blendMode==t.blendMode)return r.insertAfter(t,e),void 0}else r=e;if(i)if(i instanceof PIXI.Sprite){if(s=i.batch){if(s.texture==t.texture.baseTexture&&s.blendMode==t.blendMode)return s.insertBefore(t,i),void 0;if(s==r){var n=r.split(i),a=PIXI.WebGLRenderer.getBatch(),o=this.batchs.indexOf(r);return a.init(t),this.batchs.splice(o+1,0,a,n),void 0}}}else s=i;var a=PIXI.WebGLRenderer.getBatch();if(a.init(t),r){var o=this.batchs.indexOf(r);this.batchs.splice(o+1,0,a)}else this.batchs.push(a)}else t instanceof PIXI.TilingSprite?(this.initTilingSprite(t),this.batchs.push(t)):t instanceof PIXI.Strip&&(this.initStrip(t),this.batchs.push(t));this.batchUpdate=!0}},PIXI.WebGLRenderGroup.prototype.addDisplayObjectAndChildren=function(t){this.addDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.addDisplayObjectAndChildren(e[i])},PIXI.WebGLRenderGroup.prototype.removeDisplayObject=function(t){if(t.__renderGroup=null,t.renderable){var e;if(t instanceof PIXI.Sprite){var i=t.batch;if(!i)return;i.remove(t),0==i.size&&(e=i)}else e=t;if(e){var r=this.batchs.indexOf(e);if(-1==r)return;if(0==r||r==this.batchs.length-1)return this.batchs.splice(r,1),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e),void 0;if(this.batchs[r-1]instanceof PIXI.WebGLBatch&&this.batchs[r+1]instanceof PIXI.WebGLBatch&&this.batchs[r-1].texture==this.batchs[r+1].texture&&this.batchs[r-1].blendMode==this.batchs[r+1].blendMode)return this.batchs[r-1].merge(this.batchs[r+1]),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e),PIXI.WebGLRenderer.returnBatch(this.batchs[r+1]),this.batchs.splice(r,2),void 0;this.batchs.splice(r,1),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e)}}},PIXI.WebGLRenderGroup.prototype.removeDisplayObjectAndChildren=function(t){if(t.__renderGroup==this){this.removeDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.removeDisplayObjectAndChildren(e[i])}},PIXI.WebGLRenderGroup.prototype.getNextRenderable=function(t){var e=t;do{if(0==e.children.length){if(!e.parent)return null;for(;e.childIndex==e.parent.children.length-1;)if(e=e.parent,e==this.root||!e.parent){e=null;break}e&&(e=e.parent.children[e.childIndex+1])}else e=e.children[0];if(!e)break}while(!e.renderable||!e.__renderGroup);return e},PIXI.WebGLRenderGroup.prototype.getPreviousRenderable=function(t){var e=t;do{if(0==e.childIndex){if(e=e.parent,!e)return null}else for(e=e.parent.children[e.childIndex-1];0!=e.children.length;)e=e.children[e.children.length-1];if(e==this.root)break}while(!e.renderable||!e.__renderGroup);return e},PIXI.WebGLRenderGroup.prototype.initTilingSprite=function(t){var e=this.gl;t.verticies=new Float32Array([0,0,t.width,0,t.width,t.height,0,t.height]),t.uvs=new Float32Array([0,0,1,0,1,1,0,1]),t.colors=new Float32Array([1,1,1,1]),t.indices=new Uint16Array([0,1,3,2]),t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW),t.texture.baseTexture._glTexture?(e.bindTexture(e.TEXTURE_2D,t.texture.baseTexture._glTexture),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT),t.texture.baseTexture._powerOf2=!0):t.texture.baseTexture._powerOf2=!0},PIXI.WebGLRenderGroup.prototype.renderStrip=function(t,e){var i=this.gl,r=PIXI.shaderProgram,s=PIXI.mat3.toMat4(t.worldTransform);PIXI.mat4.transpose(s),PIXI.mat4.multiply(e,s,s),i.uniformMatrix4fv(r.mvMatrixUniform,!1,s),t.blendMode==PIXI.blendModes.NORMAL?i.blendFunc(i.ONE,i.ONE_MINUS_SRC_ALPHA):i.blendFunc(i.ONE,i.ONE_MINUS_SRC_COLOR),t.dirty?(t.dirty=!1,i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferData(i.ARRAY_BUFFER,t.verticies,i.STATIC_DRAW),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferData(i.ARRAY_BUFFER,t.uvs,i.STATIC_DRAW),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.bufferData(i.ARRAY_BUFFER,t.colors,i.STATIC_DRAW),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer),i.bufferData(i.ELEMENT_ARRAY_BUFFER,t.indices,i.STATIC_DRAW)):(i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.verticies),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer)),i.drawElements(i.TRIANGLE_STRIP,t.indices.length,i.UNSIGNED_SHORT,0),i.uniformMatrix4fv(r.mvMatrixUniform,!1,e)},PIXI.WebGLRenderGroup.prototype.renderTilingSprite=function(t,e){var i=this.gl;PIXI.shaderProgram;var r=t.tilePosition,s=t.tileScale,n=r.x/t.texture.baseTexture.width,a=r.y/t.texture.baseTexture.height,o=t.width/t.texture.baseTexture.width/s.x,h=t.height/t.texture.baseTexture.height/s.y;t.uvs[0]=0-n,t.uvs[1]=0-a,t.uvs[2]=1*o-n,t.uvs[3]=0-a,t.uvs[4]=1*o-n,t.uvs[5]=1*h-a,t.uvs[6]=0-n,t.uvs[7]=1*h-a,i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.uvs),this.renderStrip(t,e)},PIXI.WebGLRenderer.prototype.initStrip=function(t){var e=this.gl;this.shaderProgram,t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW)},PIXI.CanvasRenderer=function(t,e,i,r){this.transparent=r,this.width=t||800,this.height=e||600,this.refresh=!0,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height,this.count=0,this.context=this.view.getContext("2d")},PIXI.CanvasRenderer.constructor=PIXI.CanvasRenderer,PIXI.CanvasRenderer.prototype.render=function(t){PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[],t.updateTransform(),this.view.style.backgroundColor==t.backgroundColorString||this.transparent||(this.view.style.backgroundColor=t.backgroundColorString),this.context.setTransform(1,0,0,1,0,0),this.context.clearRect(0,0,this.width,this.height),this.renderDisplayObject(t),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),PIXI.Texture.frameUpdates.length>0&&(PIXI.Texture.frameUpdates=[])},PIXI.CanvasRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e},PIXI.CanvasRenderer.prototype.renderDisplayObject=function(t){var e=t.worldTransform,i=this.context;if(t.visible){if(t instanceof PIXI.Sprite){var r=t.texture.frame;r&&(i.globalAlpha=t.worldAlpha,i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),i.drawImage(t.texture.baseTexture.source,r.x,r.y,r.width,r.height,t.anchor.x*-r.width,t.anchor.y*-r.height,r.width,r.height))}else t instanceof PIXI.Strip?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderStrip(t)):t instanceof PIXI.TilingSprite?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderTilingSprite(t)):t instanceof PIXI.CustomRenderable&&t.renderCanvas(this);for(var s=0;t.children.length>s;s++)this.renderDisplayObject(t.children[s]);this.context.setTransform(1,0,0,1,0,0)}},PIXI.CanvasRenderer.prototype.renderStripFlat=function(t){var e=this.context,i=t.verticies;t.uvs;var r=i.length/2;this.count++,e.beginPath();for(var s=1;r-2>s;s++){var n=2*s,a=i[n],o=i[n+2],h=i[n+4],u=i[n+1],d=i[n+3],c=i[n+5];e.moveTo(a,u),e.lineTo(o,d),e.lineTo(h,c)}e.fillStyle="#FF0000",e.fill(),e.closePath()},PIXI.CanvasRenderer.prototype.renderTilingSprite=function(t){var e=this.context;t.__tilePattern||(t.__tilePattern=e.createPattern(t.texture.baseTexture.source,"repeat")),e.beginPath();var i=t.tilePosition,r=t.tileScale;e.scale(r.x,r.y),e.translate(i.x,i.y),e.fillStyle=t.__tilePattern,e.fillRect(-i.x,-i.y,t.width/r.x,t.height/r.y),e.scale(1/r.x,1/r.y),e.translate(-i.x,-i.y),e.closePath()},PIXI.CanvasRenderer.prototype.renderStrip=function(t){var e=this.context,i=t.verticies,r=t.uvs,s=i.length/2;this.count++;for(var n=1;s-2>n;n++){var a=2*n,o=i[a],h=i[a+2],u=i[a+4],d=i[a+1],c=i[a+3],l=i[a+5],I=r[a]*t.texture.width,p=r[a+2]*t.texture.width,f=r[a+4]*t.texture.width,x=r[a+1]*t.texture.height,v=r[a+3]*t.texture.height,P=r[a+5]*t.texture.height;e.save(),e.beginPath(),e.moveTo(o,d),e.lineTo(h,c),e.lineTo(u,l),e.closePath(),e.clip();var g=I*v+x*f+p*P-v*f-x*p-I*P,b=o*v+x*u+h*P-v*u-x*h-o*P,X=I*h+o*f+p*u-h*f-o*p-I*u,m=I*v*u+x*h*f+o*p*P-o*v*f-x*p*u-I*h*P,T=d*v+x*l+c*P-v*l-x*c-d*P,y=I*c+d*f+p*l-c*f-d*p-I*l,_=I*v*l+x*c*f+d*p*P-d*v*f-x*p*l-I*c*P;e.transform(b/g,T/g,X/g,y/g,m/g,_/g),e.drawImage(t.texture.baseTexture.source,0,0),e.restore()}},PIXI.Strip=function(t,e,i){PIXI.DisplayObjectContainer.call(this),this.texture=t,this.blendMode=PIXI.blendModes.NORMAL;try{this.uvs=new Float32Array([0,1,1,1,1,0,0,1]),this.verticies=new Float32Array([0,0,0,0,0,0,0,0,0]),this.colors=new Float32Array([1,1,1,1]),this.indices=new Uint16Array([0,1,2,3])}catch(r){this.uvs=[0,1,1,1,1,0,0,1],this.verticies=[0,0,0,0,0,0,0,0,0],this.colors=[1,1,1,1],this.indices=[0,1,2,3]}this.width=e,this.height=i,t.baseTexture.hasLoaded?(this.width=this.texture.frame.width,this.height=this.texture.frame.height,this.updateFrame=!0):(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},PIXI.Strip.constructor=PIXI.Strip,PIXI.Strip.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Strip.prototype.setTexture=function(t){this.texture=t,this.width=t.frame.width,this.height=t.frame.height,this.updateFrame=!0},PIXI.Strip.prototype.onTextureUpdate=function(){this.updateFrame=!0},PIXI.Rope=function(t,e){PIXI.Strip.call(this,t),this.points=e;try{this.verticies=new Float32Array(4*e.length),this.uvs=new Float32Array(4*e.length),this.colors=new Float32Array(2*e.length),this.indices=new Uint16Array(2*e.length)}catch(i){this.verticies=verticies,this.uvs=uvs,this.colors=colors,this.indices=indices}this.refresh()},PIXI.Rope.constructor=PIXI.Rope,PIXI.Rope.prototype=Object.create(PIXI.Strip.prototype),PIXI.Rope.prototype.refresh=function(){var t=this.points;if(!(1>t.length)){var e=this.uvs,i=this.indices,r=this.colors,s=t[0],n=t[0];this.count-=.2,e[0]=0,e[1]=1,e[2]=0,e[3]=1,r[0]=1,r[1]=1,i[0]=0,i[1]=1;for(var a=t.length,o=1;a>o;o++){var n=t[o],h=4*o,u=o/(a-1);o%2?(e[h]=u,e[h+1]=0,e[h+2]=u,e[h+3]=1):(e[h]=u,e[h+1]=0,e[h+2]=u,e[h+3]=1),h=2*o,r[h]=1,r[h+1]=1,h=2*o,i[h]=h,i[h+1]=h+1,s=n}}},PIXI.Rope.prototype.updateTransform=function(){var t=this.points;if(!(1>t.length)){var e,i=this.verticies,r=t[0],s={x:0,y:0},n=t[0];this.count-=.2,i[0]=n.x+s.x,i[1]=n.y+s.y,i[2]=n.x-s.x,i[3]=n.y-s.y;for(var a=t.length,o=1;a>o;o++){var n=t[o],h=4*o;e=t.length-1>o?t[o+1]:n,s.y=-(e.x-r.x),s.x=e.y-r.y;var u=10*(1-o/(a-1));u>1&&(u=1);var d=Math.sqrt(s.x*s.x+s.y*s.y),c=this.texture.height/2;s.x/=d,s.y/=d,s.x*=c,s.y*=c,i[h]=n.x+s.x,i[h+1]=n.y+s.y,i[h+2]=n.x-s.x,i[h+3]=n.y-s.y,r=n}PIXI.DisplayObjectContainer.prototype.updateTransform.call(this)}},PIXI.Rope.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0},PIXI.TilingSprite=function(t,e,i){PIXI.DisplayObjectContainer.call(this),this.texture=t,this.width=e,this.height=i,this.renderable=!0,this.tileScale=new PIXI.Point(1,1),this.tilePosition=new PIXI.Point(0,0),this.blendMode=PIXI.blendModes.NORMAL},PIXI.TilingSprite.constructor=PIXI.TilingSprite,PIXI.TilingSprite.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.TilingSprite.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0},PIXI.TilingSprite.prototype.onTextureUpdate=function(){this.updateFrame=!0},PIXI.CustomRenderable=function(){PIXI.DisplayObject.call(this)},PIXI.CustomRenderable.constructor=PIXI.CustomRenderable,PIXI.CustomRenderable.prototype=Object.create(PIXI.DisplayObject.prototype),PIXI.CustomRenderable.prototype.renderCanvas=function(){},PIXI.CustomRenderable.prototype.initWebGL=function(){},PIXI.CustomRenderable.prototype.renderWebGL=function(){},PIXI.BaseTextureCache={},PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[],PIXI.BaseTexture=function(t){if(PIXI.EventTarget.call(this),this.width=100,this.height=100,this.source=t,t){if(this.source instanceof Image)if(this.source.complete)this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,PIXI.texturesToUpdate.push(this);else{var e=this;this.source.onload=function(){e.hasLoaded=!0,e.width=e.source.width,e.height=e.source.height,PIXI.texturesToUpdate.push(e),e.dispatchEvent({type:"loaded",content:e})}}else this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,PIXI.texturesToUpdate.push(this);this._powerOf2=!1}},PIXI.BaseTexture.constructor=PIXI.BaseTexture,PIXI.BaseTexture.prototype.destroy=function(){this.source instanceof Image&&(this.source.src=null),this.source=null,PIXI.texturesToDestroy.push(this)},PIXI.BaseTexture.fromImage=function(t,e){var i=PIXI.BaseTextureCache[t];if(!i){var r=new Image;e&&(r.crossOrigin=""),r.src=t,i=new PIXI.BaseTexture(r),PIXI.BaseTextureCache[t]=i}return i},PIXI.TextureCache={},PIXI.FrameCache={},PIXI.Texture=function(t,e){if(PIXI.EventTarget.call(this),e||(this.noFrame=!0,e=new PIXI.Rectangle(0,0,1,1)),this.trim=new PIXI.Point,t instanceof PIXI.Texture&&(t=t.baseTexture),this.baseTexture=t,this.frame=e,this.scope=this,t.hasLoaded)this.noFrame&&(e=new PIXI.Rectangle(0,0,t.width,t.height)),this.setFrame(e);else{var i=this;t.addEventListener("loaded",function(){i.onBaseTextureLoaded()})}},PIXI.Texture.constructor=PIXI.Texture,PIXI.Texture.prototype.onBaseTextureLoaded=function(){var t=this.baseTexture;t.removeEventListener("loaded",this.onLoaded),this.noFrame&&(this.frame=new PIXI.Rectangle(0,0,t.width,t.height)),this.noFrame=!1,this.width=this.frame.width,this.height=this.frame.height,this.scope.dispatchEvent({type:"update",content:this})},PIXI.Texture.prototype.destroy=function(t){t&&this.baseTexture.destroy()},PIXI.Texture.prototype.setFrame=function(t){if(this.frame=t,this.width=t.width,this.height=t.height,t.x+t.width>this.baseTexture.width||t.y+t.height>this.baseTexture.height)throw Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);this.updateFrame=!0,PIXI.Texture.frameUpdates.push(this)},PIXI.Texture.fromImage=function(t,e){var i=PIXI.TextureCache[t];return i||(i=new PIXI.Texture(PIXI.BaseTexture.fromImage(t,e)),PIXI.TextureCache[t]=i),i},PIXI.Texture.fromFrame=function(t){var e=PIXI.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache "+this);return e},PIXI.Texture.fromCanvas=function(t){var e=new PIXI.BaseTexture(t);return new PIXI.Texture(e)},PIXI.Texture.addTextureToCache=function(t,e){PIXI.TextureCache[e]=t},PIXI.Texture.removeTextureFromCache=function(t){var e=PIXI.TextureCache[t];return PIXI.TextureCache[t]=null,e},PIXI.Texture.frameUpdates=[],PIXI.RenderTexture=function(t,e){PIXI.EventTarget.call(this),this.width=t||100,this.height=e||100,this.indetityMatrix=PIXI.mat3.create(),this.frame=new PIXI.Rectangle(0,0,this.width,this.height),PIXI.gl?this.initWebGL():this.initCanvas()},PIXI.RenderTexture.constructor=PIXI.RenderTexture,PIXI.RenderTexture.prototype=Object.create(PIXI.Texture.prototype),PIXI.RenderTexture.prototype.initWebGL=function(){var t=PIXI.gl;this.glFramebuffer=t.createFramebuffer(),t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),this.glFramebuffer.width=this.width,this.glFramebuffer.height=this.height,this.baseTexture=new PIXI.BaseTexture,this.baseTexture.width=this.width,this.baseTexture.height=this.height,this.baseTexture._glTexture=t.createTexture(),t.bindTexture(t.TEXTURE_2D,this.baseTexture._glTexture),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,this.width,this.height,0,t.RGBA,t.UNSIGNED_BYTE,null),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),this.baseTexture.isRender=!0,t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,this.baseTexture._glTexture,0),this.projectionMatrix=PIXI.mat4.create(),this.projectionMatrix[5]=2/this.height,this.projectionMatrix[13]=-1,this.projectionMatrix[0]=2/this.width,this.projectionMatrix[12]=-1,this.render=this.renderWebGL},PIXI.RenderTexture.prototype.initCanvas=function(){this.renderer=new PIXI.CanvasRenderer(this.width,this.height,null,0),this.baseTexture=new PIXI.BaseTexture(this.renderer.view),this.frame=new PIXI.Rectangle(0,0,this.width,this.height),this.render=this.renderCanvas},PIXI.RenderTexture.prototype.renderWebGL=function(t,e){var i=PIXI.gl;i.colorMask(!0,!0,!0,!0),i.viewport(0,0,this.width,this.height),i.bindFramebuffer(i.FRAMEBUFFER,this.glFramebuffer),e&&(i.clearColor(0,0,0,0),i.clear(i.COLOR_BUFFER_BIT));var r=t.children;t.worldTransform=PIXI.mat3.create();for(var s=0,n=r.length;n>s;s++)r[s].updateTransform();var a=t.__renderGroup;a?t==a.root?a.render(this.projectionMatrix):a.renderSpecific(t,this.projectionMatrix):(this.renderGroup||(this.renderGroup=new PIXI.WebGLRenderGroup(i)),this.renderGroup.setRenderable(t),this.renderGroup.render(this.projectionMatrix))},PIXI.RenderTexture.prototype.renderCanvas=function(t,e){var i=t.children;t.worldTransform=PIXI.mat3.create();for(var r=0,s=i.length;s>r;r++)i[r].updateTransform();e&&this.renderer.context.clearRect(0,0,this.width,this.height),this.renderer.renderDisplayObject(t),PIXI.texturesToUpdate.push(this.baseTexture)},PIXI.AssetLoader=function(t){PIXI.EventTarget.call(this),this.assetURLs=t,this.crossorigin=!1,this.loadersByType={jpg:PIXI.ImageLoader,jpeg:PIXI.ImageLoader,png:PIXI.ImageLoader,gif:PIXI.ImageLoader,json:PIXI.SpriteSheetLoader,xml:PIXI.BitmapFontLoader,fnt:PIXI.BitmapFontLoader}},PIXI.AssetLoader.constructor=PIXI.AssetLoader,PIXI.AssetLoader.prototype.load=function(){var t=this;this.loadCount=this.assetURLs.length;for(var e=0;this.assetURLs.length>e;e++){var i=this.assetURLs[e],r=i.split(".").pop().toLowerCase(),s=this.loadersByType[r];if(!s)throw Error(r+" is an unsupported file type");var n=new s(i,this.crossorigin);n.addEventListener("loaded",function(){t.onAssetLoaded()}),n.load()}},PIXI.AssetLoader.prototype.onAssetLoaded=function(){this.loadCount--,this.dispatchEvent({type:"onProgress",content:this}),this.onProgress&&this.onProgress(),0==this.loadCount&&(this.dispatchEvent({type:"onComplete",content:this}),this.onComplete&&this.onComplete())},PIXI.SpriteSheetLoader=function(t,e){PIXI.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.frames={},this.crossorigin=e},PIXI.SpriteSheetLoader.constructor=PIXI.SpriteSheetLoader,PIXI.SpriteSheetLoader.prototype.load=function(){this.ajaxRequest=new AjaxRequest;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onJSONLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/json"),this.ajaxRequest.send(null)},PIXI.SpriteSheetLoader.prototype.onJSONLoaded=function(){if(4==this.ajaxRequest.readyState&&(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))){var jsonData=eval("("+this.ajaxRequest.responseText+")"),textureUrl=this.baseUrl+jsonData.meta.image,image=new PIXI.ImageLoader(textureUrl,this.crossorigin);this.texture=image.texture.baseTexture;var scope=this;image.addEventListener("loaded",function(){scope.onLoaded()});var frameData=jsonData.frames;for(var i in frameData){var rect=frameData[i].frame;rect&&(PIXI.TextureCache[i]=new PIXI.Texture(this.texture,{x:rect.x,y:rect.y,width:rect.w,height:rect.h}),frameData[i].trimmed&&(PIXI.TextureCache[i].realSize=frameData[i].spriteSourceSize,PIXI.TextureCache[i].trim.x=0))}image.load()}},PIXI.SpriteSheetLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},PIXI.ImageLoader=function(t,e){PIXI.EventTarget.call(this),this.texture=PIXI.Texture.fromImage(t,e)},PIXI.ImageLoader.constructor=PIXI.ImageLoader,PIXI.ImageLoader.prototype.load=function(){if(this.texture.baseTexture.hasLoaded)this.onLoaded();else{var t=this;this.texture.baseTexture.addEventListener("loaded",function(){t.onLoaded()})}},PIXI.ImageLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},PIXI.BitmapFontLoader=function(t,e){PIXI.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.crossorigin=e},PIXI.BitmapFontLoader.constructor=PIXI.BitmapFontLoader,PIXI.BitmapFontLoader.prototype.load=function(){this.ajaxRequest=new XMLHttpRequest;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onXMLLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/xml"),this.ajaxRequest.send(null)},PIXI.BitmapFontLoader.prototype.onXMLLoaded=function(){if(4==this.ajaxRequest.readyState&&(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))){var t=this.baseUrl+this.ajaxRequest.responseXML.getElementsByTagName("page")[0].attributes.getNamedItem("file").nodeValue,e=new PIXI.ImageLoader(t,this.crossorigin);this.texture=e.texture.baseTexture;var i={},r=this.ajaxRequest.responseXML.getElementsByTagName("info")[0],s=this.ajaxRequest.responseXML.getElementsByTagName("common")[0];i.font=r.attributes.getNamedItem("face").nodeValue,i.size=parseInt(r.attributes.getNamedItem("size").nodeValue,10),i.lineHeight=parseInt(s.attributes.getNamedItem("lineHeight").nodeValue,10),i.chars={};for(var n=this.ajaxRequest.responseXML.getElementsByTagName("char"),a=0;n.length>a;a++){var o=parseInt(n[a].attributes.getNamedItem("id").nodeValue,10),h={x:parseInt(n[a].attributes.getNamedItem("x").nodeValue,10),y:parseInt(n[a].attributes.getNamedItem("y").nodeValue,10),width:parseInt(n[a].attributes.getNamedItem("width").nodeValue,10),height:parseInt(n[a].attributes.getNamedItem("height").nodeValue,10)};PIXI.TextureCache[o]=new PIXI.Texture(this.texture,h),i.chars[o]={xOffset:parseInt(n[a].attributes.getNamedItem("xoffset").nodeValue,10),yOffset:parseInt(n[a].attributes.getNamedItem("yoffset").nodeValue,10),xAdvance:parseInt(n[a].attributes.getNamedItem("xadvance").nodeValue,10),kerning:{}}}var u=this.ajaxRequest.responseXML.getElementsByTagName("kerning");for(a=0;u.length>a;a++){var d=parseInt(u[a].attributes.getNamedItem("first").nodeValue,10),c=parseInt(u[a].attributes.getNamedItem("second").nodeValue,10),l=parseInt(u[a].attributes.getNamedItem("amount").nodeValue,10);i.chars[c].kerning[d]=l}PIXI.BitmapText.fonts[i.font]=i;var I=this;e.addEventListener("loaded",function(){I.onLoaded()}),e.load()}},PIXI.BitmapFontLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=PIXI),exports.PIXI=PIXI):root.PIXI=PIXI}).call(this); \ No newline at end of file diff --git a/docs/classes/WebGLRenderer.html b/docs/classes/WebGLRenderer.html index 581cb5a..fcef6b6 100644 --- a/docs/classes/WebGLRenderer.html +++ b/docs/classes/WebGLRenderer.html @@ -498,7 +498,7 @@ - src/pixi/renderers/WebGLRenderer.js:283 + src/pixi/renderers/WebGLRenderer.js:284

diff --git a/docs/data.json b/docs/data.json index 9b4a49d..4b27831 100644 --- a/docs/data.json +++ b/docs/data.json @@ -1388,35 +1388,35 @@ }, { "file": "src/pixi/renderers/WebGLRenderGroup.js", - "line": 523, + "line": 527, "access": "private", "tagname": "", "class": "WebGLBatch" }, { "file": "src/pixi/renderers/WebGLRenderGroup.js", - "line": 607, + "line": 613, "access": "private", "tagname": "", "class": "WebGLBatch" }, { "file": "src/pixi/renderers/WebGLRenderGroup.js", - "line": 663, + "line": 669, "access": "private", "tagname": "", "class": "WebGLBatch" }, { "file": "src/pixi/renderers/WebGLRenderGroup.js", - "line": 740, + "line": 746, "access": "private", "tagname": "", "class": "WebGLBatch" }, { "file": "src/pixi/renderers/WebGLRenderGroup.js", - "line": 777, + "line": 783, "access": "private", "tagname": "", "class": "WebGLBatch" @@ -1465,14 +1465,14 @@ }, { "file": "src/pixi/renderers/WebGLRenderer.js", - "line": 232, + "line": 225, "access": "private", "tagname": "", "class": "WebGLRenderer" }, { "file": "src/pixi/renderers/WebGLRenderer.js", - "line": 283, + "line": 284, "description": "resizes the webGL view to the specified width and height", "itemtype": "method", "name": "resize", @@ -1492,14 +1492,14 @@ }, { "file": "src/pixi/renderers/WebGLRenderer.js", - "line": 307, + "line": 308, "access": "private", "tagname": "", "class": "WebGLRenderer" }, { "file": "src/pixi/renderers/WebGLRenderer.js", - "line": 316, + "line": 317, "access": "private", "tagname": "", "class": "WebGLRenderer" @@ -2908,23 +2908,23 @@ }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderGroup.js:523" + "line": " src/pixi/renderers/WebGLRenderGroup.js:527" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderGroup.js:607" + "line": " src/pixi/renderers/WebGLRenderGroup.js:613" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderGroup.js:663" + "line": " src/pixi/renderers/WebGLRenderGroup.js:669" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderGroup.js:740" + "line": " src/pixi/renderers/WebGLRenderGroup.js:746" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderGroup.js:777" + "line": " src/pixi/renderers/WebGLRenderGroup.js:783" }, { "message": "Missing item type", @@ -2944,15 +2944,15 @@ }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderer.js:232" + "line": " src/pixi/renderers/WebGLRenderer.js:225" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderer.js:307" + "line": " src/pixi/renderers/WebGLRenderer.js:308" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderer.js:316" + "line": " src/pixi/renderers/WebGLRenderer.js:317" }, { "message": "Missing item type", diff --git a/docs/files/src_pixi_renderers_WebGLRenderGroup.js.html b/docs/files/src_pixi_renderers_WebGLRenderGroup.js.html index 7222602..42bcabd 100644 --- a/docs/files/src_pixi_renderers_WebGLRenderGroup.js.html +++ b/docs/files/src_pixi_renderers_WebGLRenderGroup.js.html @@ -177,6 +177,8 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + //PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. @@ -215,6 +217,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + //PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -683,7 +687,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/docs/files/src_pixi_renderers_WebGLRenderer.js.html b/docs/files/src_pixi_renderers_WebGLRenderer.js.html index 0383c4d..551dd19 100644 --- a/docs/files/src_pixi_renderers_WebGLRenderer.js.html +++ b/docs/files/src_pixi_renderers_WebGLRenderer.js.html @@ -306,15 +306,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -366,9 +359,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -400,7 +402,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) diff --git a/examples/example 1 - Basics/pixi.js b/examples/example 1 - Basics/pixi.js index f29080a..3478cf4 100644 --- a/examples/example 1 - Basics/pixi.js +++ b/examples/example 1 - Basics/pixi.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/examples/example 10 - Text/pixi.js b/examples/example 10 - Text/pixi.js index f29080a..3478cf4 100644 --- a/examples/example 10 - Text/pixi.js +++ b/examples/example 10 - Text/pixi.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/examples/example 11 - RenderTexture/index.html b/examples/example 11 - RenderTexture/index.html index efd342b..e4acf76 100644 --- a/examples/example 11 - RenderTexture/index.html +++ b/examples/example 11 - RenderTexture/index.html @@ -15,7 +15,7 @@ diff --git a/examples/example 11 - RenderTexture/pixi.js b/examples/example 11 - RenderTexture/pixi.js index f29080a..3478cf4 100644 --- a/examples/example 11 - RenderTexture/pixi.js +++ b/examples/example 11 - RenderTexture/pixi.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/examples/example 2 - SpriteSheet/pixi.js b/examples/example 2 - SpriteSheet/pixi.js index f29080a..3478cf4 100644 --- a/examples/example 2 - SpriteSheet/pixi.js +++ b/examples/example 2 - SpriteSheet/pixi.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/examples/example 3 - MovieClip/pixi.js b/examples/example 3 - MovieClip/pixi.js index f29080a..3478cf4 100755 --- a/examples/example 3 - MovieClip/pixi.js +++ b/examples/example 3 - MovieClip/pixi.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/bin/pixi.dev.js b/bin/pixi.dev.js index f29080a..3478cf4 100644 --- a/bin/pixi.dev.js +++ b/bin/pixi.dev.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/bin/pixi.js b/bin/pixi.js index 5f2a13c..a6d54d1 100644 --- a/bin/pixi.js +++ b/bin/pixi.js @@ -4,10 +4,10 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php */ -(function(){function HEXtoRGB(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}function determineMatrixArrayType(){return PIXI.Matrix="undefined"!=typeof Float32Array?Float32Array:Array,PIXI.Matrix}var root=this,PIXI=PIXI||{};PIXI.Point=function(t,e){this.x=t||0,this.y=e||0},PIXI.Point.prototype.clone=function(){return new PIXI.Point(this.x,this.y)},PIXI.Point.constructor=PIXI.Point,PIXI.Rectangle=function(t,e,i,r){this.x=t||0,this.y=e||0,this.width=i||0,this.height=r||0},PIXI.Rectangle.prototype.clone=function(){return new PIXI.Rectangle(this.x,this.y,this.width,this.height)},PIXI.Rectangle.constructor=PIXI.Rectangle,PIXI.DisplayObject=function(){this.position=new PIXI.Point,this.scale=new PIXI.Point(1,1),this.pivot=new PIXI.Point(0,0),this.rotation=0,this.alpha=1,this.visible=!0,this.worldVisible=!1,this.parent=null,this.stage=null,this.hitArea=null,this.worldAlpha=1,this.color=[],this.worldTransform=PIXI.mat3.create(),this.localTransform=PIXI.mat3.create(),this.dynamic=!0,this._sr=0,this._cr=1,this.childIndex=0,this.renderable=!1,this.interactive=!1,this.buttonMode=!1},PIXI.DisplayObject.constructor=PIXI.DisplayObject,PIXI.DisplayObject.prototype.setInteractive=function(t){this.interactive=t,this.stage&&(this.stage.dirty=!0)},PIXI.DisplayObject.prototype.updateTransform=function(){this.rotation!=this.rotationCache&&(this.rotationCache=this.rotation,this._sr=Math.sin(this.rotation),this._cr=Math.cos(this.rotation));var t=this.localTransform,e=this.parent.worldTransform,i=this.worldTransform;t[0]=this._cr*this.scale.x,t[1]=-this._sr*this.scale.y,t[3]=this._sr*this.scale.x,t[4]=this._cr*this.scale.y;var r=this.pivot.x,s=this.pivot.y;t[2]=this.position.x-t[0]*r-s*t[1],t[5]=this.position.y-t[4]*s-r*t[3];var n=t[0],a=t[1],o=t[2],h=t[3],u=t[4],c=t[5],d=e[0],l=e[1],I=e[2],p=e[3],f=e[4],x=e[5];i[0]=d*n+l*h,i[1]=d*a+l*u,i[2]=d*o+l*c+I,i[3]=p*n+f*h,i[4]=p*a+f*u,i[5]=p*o+f*c+x,this.worldAlpha=this.alpha*this.parent.worldAlpha},PIXI.DisplayObjectContainer=function(){PIXI.DisplayObject.call(this),this.children=[],this.renderable=!1},PIXI.DisplayObjectContainer.constructor=PIXI.DisplayObjectContainer,PIXI.DisplayObjectContainer.prototype=Object.create(PIXI.DisplayObject.prototype),PIXI.DisplayObjectContainer.prototype.addChild=function(t){void 0!=t.parent&&t.parent.removeChild(t),t.parent=this,t.childIndex=this.children.length,this.children.push(t),this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},PIXI.DisplayObjectContainer.prototype.addChildAt=function(t,e){if(!(e>=0&&this.children.length>=e))throw Error(t+" The index "+e+" supplied is out of bounds "+this.children.length);void 0!=t.parent&&t.parent.removeChild(t),e==this.children.length?this.children.push(t):this.children.splice(e,0,t),t.parent=this,t.childIndex=e;for(var i=this.children.length,r=e;i>r;r++)this.children[r].childIndex=r;this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},PIXI.DisplayObjectContainer.prototype.swapChildren=function(t,e){var i=this.children.indexOf(t),r=this.children.indexOf(e);if(-1===i||-1===r)throw Error(t+" Both the supplied DisplayObjects must be a child of the caller "+this);this.stage&&(this.stage.__removeChild(t),this.stage.__removeChild(e),this.stage.__addChild(t),this.stage.__addChild(e)),t.childIndex=r,e.childIndex=i,this.children[i]=e,this.children[r]=t},PIXI.DisplayObjectContainer.prototype.getChildAt=function(t){if(t>=0&&this.children.length>t)return this.children[t];throw Error(child+" Both the supplied DisplayObjects must be a child of the caller "+this)},PIXI.DisplayObjectContainer.prototype.removeChild=function(t){var e=this.children.indexOf(t);if(-1===e)throw Error(t+" The supplied DisplayObject must be a child of the caller "+this);this.stage&&this.stage.__removeChild(t),t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.parent=void 0,this.children.splice(e,1);for(var i=e,r=this.children.length;r>i;i++)this.children[i].childIndex-=1},PIXI.DisplayObjectContainer.prototype.updateTransform=function(){if(this.visible){PIXI.DisplayObject.prototype.updateTransform.call(this);for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform()}},PIXI.blendModes={},PIXI.blendModes.NORMAL=0,PIXI.blendModes.SCREEN=1,PIXI.Sprite=function(t){PIXI.DisplayObjectContainer.call(this),this.anchor=new PIXI.Point,this.texture=t,this.blendMode=PIXI.blendModes.NORMAL,this._width=0,this._height=0,t.baseTexture.hasLoaded?this.updateFrame=!0:(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},PIXI.Sprite.constructor=PIXI.Sprite,PIXI.Sprite.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),Object.defineProperty(PIXI.Sprite.prototype,"width",{get:function(){return this.scale.x*this.texture.frame.width},set:function(t){this.scale.x=t/this.texture.frame.width,this._width=t}}),Object.defineProperty(PIXI.Sprite.prototype,"height",{get:function(){return this.scale.y*this.texture.frame.height},set:function(t){this.scale.y=t/this.texture.frame.height,this._height=t}}),PIXI.Sprite.prototype.setTexture=function(t){this.texture.baseTexture!=t.baseTexture&&(this.textureChange=!0),this.texture=t,this.updateFrame=!0},PIXI.Sprite.prototype.onTextureUpdate=function(){this._width&&(this.scale.x=this._width/this.texture.frame.width),this._height&&(this.scale.y=this._height/this.texture.frame.height),this.updateFrame=!0},PIXI.Sprite.fromFrame=function(t){var e=PIXI.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache"+this);return new PIXI.Sprite(e)},PIXI.Sprite.fromImage=function(t){var e=PIXI.Texture.fromImage(t);return new PIXI.Sprite(e)},PIXI.MovieClip=function(t){PIXI.Sprite.call(this,t[0]),this.textures=t,this.currentFrame=0,this.animationSpeed=1,this.loop=!0,this.onComplete=null,this.playing},PIXI.MovieClip.constructor=PIXI.MovieClip,PIXI.MovieClip.prototype=Object.create(PIXI.Sprite.prototype),PIXI.MovieClip.prototype.stop=function(){this.playing=!1},PIXI.MovieClip.prototype.play=function(){this.playing=!0},PIXI.MovieClip.prototype.gotoAndStop=function(t){this.playing=!1,this.currentFrame=t;var e=0|this.currentFrame+.5;this.setTexture(this.textures[e%this.textures.length])},PIXI.MovieClip.prototype.gotoAndPlay=function(t){this.currentFrame=t,this.playing=!0},PIXI.MovieClip.prototype.updateTransform=function(){if(PIXI.Sprite.prototype.updateTransform.call(this),this.playing){this.currentFrame+=this.animationSpeed;var t=0|this.currentFrame+.5;this.loop||this.textures.length>t?this.setTexture(this.textures[t%this.textures.length]):t>=this.textures.length&&(this.gotoAndStop(this.textures.length-1),this.onComplete&&this.onComplete())}},PIXI.Text=function(t,e){this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"),PIXI.Sprite.call(this,PIXI.Texture.fromCanvas(this.canvas)),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},PIXI.Text.constructor=PIXI.Text,PIXI.Text.prototype=Object.create(PIXI.Sprite.prototype),PIXI.Text.prototype.setStyle=function(t){t=t||{},t.font=t.font||"bold 20pt Arial",t.fill=t.fill||"black",t.align=t.align||"left",t.strokeThickness=t.strokeThickness||0,this.style=t,this.dirty=!0},PIXI.Sprite.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},PIXI.Text.prototype.updateText=function(){this.context.font=this.style.font;for(var t=this.text.split(/(?:\r\n|\r|\n)/),e=[],i=0,r=0;t.length>r;r++){var s=this.context.measureText(t[r]).width;e[r]=s,i=Math.max(i,s)}this.canvas.width=i+this.style.strokeThickness;var n=this.determineFontHeight("font: "+this.style.font+";")+this.style.strokeThickness;for(this.canvas.height=n*t.length,this.context.fillStyle=this.style.fill,this.context.font=this.style.font,this.context.strokeStyle=this.style.stroke,this.context.lineWidth=this.style.strokeThickness,this.context.textBaseline="top",r=0;t.length>r;r++){var a=new PIXI.Point(this.style.strokeThickness/2,this.style.strokeThickness/2+r*n);"right"==this.style.align?a.x+=i-e[r]:"center"==this.style.align&&(a.x+=(i-e[r])/2),this.style.stroke&&this.style.strokeThickness&&this.context.strokeText(t[r],a.x,a.y),this.style.fill&&this.context.fillText(t[r],a.x,a.y)}this.updateTexture()},PIXI.Text.prototype.updateTexture=function(){this.texture.baseTexture.width=this.canvas.width,this.texture.baseTexture.height=this.canvas.height,this.texture.frame.width=this.canvas.width,this.texture.frame.height=this.canvas.height,this._width=this.canvas.width,this._height=this.canvas.height,PIXI.texturesToUpdate.push(this.texture.baseTexture)},PIXI.Text.prototype.updateTransform=function(){this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype.updateTransform.call(this)},PIXI.Text.prototype.determineFontHeight=function(t){var e=PIXI.Text.heightCache[t];if(!e){var i=document.getElementsByTagName("body")[0],r=document.createElement("div"),s=document.createTextNode("M");r.appendChild(s),r.setAttribute("style",t),i.appendChild(r),e=r.offsetHeight,PIXI.Text.heightCache[t]=e,i.removeChild(r)}return e},PIXI.Text.prototype.destroy=function(t){t&&this.texture.destroy()},PIXI.Text.heightCache={},PIXI.BitmapText=function(t,e){PIXI.DisplayObjectContainer.call(this),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},PIXI.BitmapText.constructor=PIXI.BitmapText,PIXI.BitmapText.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.BitmapText.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},PIXI.BitmapText.prototype.setStyle=function(t){t=t||{},t.align=t.align||"left",this.style=t;var e=t.font.split(" ");this.fontName=e[e.length-1],this.fontSize=e.length>=2?parseInt(e[e.length-2],10):PIXI.BitmapText.fonts[this.fontName].size,this.dirty=!0},PIXI.BitmapText.prototype.updateText=function(){for(var t=PIXI.BitmapText.fonts[this.fontName],e=new PIXI.Point,i=null,r=[],s=0,n=[],a=0,o=this.fontSize/t.size,h=0;this.text.length>h;h++){var u=this.text.charCodeAt(h);if(/(?:\r\n|\r|\n)/.test(this.text.charAt(h)))n.push(e.x),s=Math.max(s,e.x),a++,e.x=0,e.y+=t.lineHeight,i=null;else{var c=t.chars[u];c&&(i&&c[i]&&(e.x+=c.kerning[i]),r.push({line:a,charCode:u,position:new PIXI.Point(e.x+c.xOffset,e.y+c.yOffset)}),e.x+=c.xAdvance,i=u)}}n.push(e.x),s=Math.max(s,e.x);var d=[];for(h=0;a>=h;h++){var l=0;"right"==this.style.align?l=s-n[h]:"center"==this.style.align&&(l=(s-n[h])/2),d.push(l)}for(h=0;r.length>h;h++){var I=PIXI.Sprite.fromFrame(r[h].charCode);I.position.x=(r[h].position.x+d[r[h].line])*o,I.position.y=r[h].position.y*o,I.scale.x=I.scale.y=o,this.addChild(I)}this.width=e.x*o,this.height=(e.y+t.lineHeight)*o},PIXI.BitmapText.prototype.updateTransform=function(){if(this.dirty){for(;this.children.length>0;)this.removeChild(this.getChildAt(0));this.updateText(),this.dirty=!1}PIXI.DisplayObjectContainer.prototype.updateTransform.call(this)},PIXI.BitmapText.fonts={},PIXI.InteractionManager=function(t){this.stage=t,this.tempPoint=new PIXI.Point,this.mouseoverEnabled=!0,this.mouse=new PIXI.InteractionData,this.touchs={},this.pool=[],this.interactiveItems=[],this.last=0},PIXI.InteractionManager.constructor=PIXI.InteractionManager,PIXI.InteractionManager.prototype.collectInteractiveSprite=function(t,e){for(var i=t.children,r=i.length,s=r-1;s>=0;s--){var n=i[s];n.interactive?(e.interactiveChildren=!0,this.interactiveItems.push(n),n.children.length>0&&this.collectInteractiveSprite(n,n)):(n.__iParent=null,n.children.length>0&&this.collectInteractiveSprite(n,e))}},PIXI.InteractionManager.prototype.setTarget=function(t){window.navigator.msPointerEnabled&&(t.view.style["-ms-content-zooming"]="none",t.view.style["-ms-touch-action"]="none"),this.target=t,t.view.addEventListener("mousemove",this.onMouseMove.bind(this),!0),t.view.addEventListener("mousedown",this.onMouseDown.bind(this),!0),document.body.addEventListener("mouseup",this.onMouseUp.bind(this),!0),t.view.addEventListener("mouseout",this.onMouseUp.bind(this),!0),t.view.addEventListener("touchstart",this.onTouchStart.bind(this),!0),t.view.addEventListener("touchend",this.onTouchEnd.bind(this),!0),t.view.addEventListener("touchmove",this.onTouchMove.bind(this),!0)},PIXI.InteractionManager.prototype.update=function(){if(this.target){var t=Date.now(),e=t-this.last;if(e=30*e/1e3,!(1>e)){if(this.last=t,this.dirty){this.dirty=!1,this.interactiveItems.length;for(var i=0;this.interactiveItems.length>i;i++)this.interactiveItems[i].interactiveChildren=!1;this.interactiveItems=[],this.stage.interactive&&this.interactiveItems.push(this.stage),this.collectInteractiveSprite(this.stage,this.stage)}var r=this.interactiveItems.length;this.target.view.style.cursor="default";for(var i=0;r>i;i++){var s=this.interactiveItems[i];s.visible&&(s.mouseover||s.mouseout||s.buttonMode)&&(s.__hit=this.hitTest(s,this.mouse),s.__hit?(s.buttonMode&&(this.target.view.style.cursor="pointer"),s.__isOver||(s.mouseover&&s.mouseover(this.mouse),s.__isOver=!0)):s.__isOver&&(s.mouseout&&s.mouseout(this.mouse),s.__isOver=!1))}}}},PIXI.InteractionManager.prototype.onMouseMove=function(t){t.preventDefault();var e=this.target.view.getBoundingClientRect();this.mouse.global.x=(t.clientX-e.left)*(this.target.width/e.width),this.mouse.global.y=(t.clientY-e.top)*(this.target.height/e.height);var i=this.interactiveItems.length;this.mouse.global;for(var r=0;i>r;r++){var s=this.interactiveItems[r];s.mousemove&&s.mousemove(this.mouse)}},PIXI.InteractionManager.prototype.onMouseDown=function(t){t.preventDefault();var e=this.interactiveItems.length;this.mouse.global,this.stage;for(var i=0;e>i;i++){var r=this.interactiveItems[i];if((r.mousedown||r.click)&&(r.__mouseIsDown=!0,r.__hit=this.hitTest(r,this.mouse),r.__hit&&(r.mousedown&&r.mousedown(this.mouse),r.__isDown=!0,!r.interactiveChildren)))break}},PIXI.InteractionManager.prototype.onMouseUp=function(t){t.preventDefault(),this.mouse.global;for(var e=this.interactiveItems.length,i=!1,r=0;e>r;r++){var s=this.interactiveItems[r];(s.mouseup||s.mouseupoutside||s.click)&&(s.__hit=this.hitTest(s,this.mouse),s.__hit&&!i?(s.mouseup&&s.mouseup(this.mouse),s.__isDown&&s.click&&s.click(this.mouse),s.interactiveChildren||(i=!0)):s.__isDown&&s.mouseupoutside&&s.mouseupoutside(this.mouse),s.__isDown=!1)}},PIXI.InteractionManager.prototype.hitTest=function(t,e){var i=e.global;if(!t.visible)return!1;if(t instanceof PIXI.Sprite){var r=t.worldTransform,s=r[0],n=r[1],a=r[2],o=r[3],h=r[4],u=r[5],c=1/(s*h+n*-o),d=h*c*i.x+-n*c*i.y+(u*n-a*h)*c,l=s*c*i.y+-o*c*i.x+(-u*s+a*o)*c,I=t.texture.frame.width,p=t.texture.frame.height,f=-I*t.anchor.x;if(d>f&&f+I>d){var x=-p*t.anchor.y;if(l>x&&x+p>l)return e.target=t,!0}}else if(t.hitArea){var r=t.worldTransform,v=t.hitArea,s=r[0],n=r[1],a=r[2],o=r[3],h=r[4],u=r[5],c=1/(s*h+n*-o),d=h*c*i.x+-n*c*i.y+(u*n-a*h)*c,l=s*c*i.y+-o*c*i.x+(-u*s+a*o)*c,f=v.x;if(d>f&&f+v.width>d){var x=v.y;if(l>x&&x+v.height>l)return!0}}for(var P=t.children.length,g=0;P>g;g++){var b=t.children[g],X=this.hitTest(b,e);if(X)return!0}return!1},PIXI.InteractionManager.prototype.onTouchMove=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.touchs[s.identifier];n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height)}for(var a=this.interactiveItems.length,r=0;a>r;r++){var o=this.interactiveItems[r];o.touchmove&&o.touchmove(n)}},PIXI.InteractionManager.prototype.onTouchStart=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.pool.pop();n||(n=new PIXI.InteractionData),this.touchs[s.identifier]=n,n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height);for(var a=this.interactiveItems.length,o=0;a>o;o++){var h=this.interactiveItems[o];if((h.touchstart||h.tap)&&(h.__hit=this.hitTest(h,n),h.__hit&&(h.touchstart&&h.touchstart(n),h.__isDown=!0,h.__touchData=n,!h.interactiveChildren)))break}}},PIXI.InteractionManager.prototype.onTouchEnd=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.touchs[s.identifier],a=!1;n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var u=this.interactiveItems[h],c=u.__touchData;u.__hit=this.hitTest(u,n),c==n&&((u.touchend||u.tap)&&(u.__hit&&!a?(u.touchend&&u.touchend(n),u.__isDown&&u.tap&&u.tap(n),u.interactiveChildren||(a=!0)):u.__isDown&&u.touchendoutside&&u.touchendoutside(n),u.__isDown=!1),u.__touchData=null)}this.pool.push(n),this.touchs[s.identifier]=null}},PIXI.InteractionData=function(){this.global=new PIXI.Point,this.local=new PIXI.Point,this.target},PIXI.InteractionData.prototype.getLocalPosition=function(t){var e=t.worldTransform,i=this.global,r=e[0],s=e[1],n=e[2],a=e[3],o=e[4],h=e[5],u=1/(r*o+s*-a);return new PIXI.Point(o*u*i.x+-s*u*i.y+(h*s-n*o)*u,r*u*i.y+-a*u*i.x+(-h*r+n*a)*u)},PIXI.InteractionData.constructor=PIXI.InteractionData,PIXI.Stage=function(t,e){PIXI.DisplayObjectContainer.call(this),this.worldTransform=PIXI.mat3.create(),this.__childrenAdded=[],this.__childrenRemoved=[],this.childIndex=0,this.stage=this,this.stage.hitArea=new PIXI.Rectangle(0,0,1e5,1e5),this.interactive=!!e,this.interactionManager=new PIXI.InteractionManager(this),this.setBackgroundColor(t),this.worldVisible=!0},PIXI.Stage.constructor=PIXI.Stage,PIXI.Stage.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Stage.prototype.updateTransform=function(){this.worldAlpha=1;for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform();this.dirty&&(this.dirty=!1,this.interactionManager.dirty=!0),this.interactive&&this.interactionManager.update()},PIXI.Stage.prototype.setBackgroundColor=function(t){this.backgroundColor=t||0,this.backgroundColorSplit=HEXtoRGB(this.backgroundColor),this.backgroundColorString="#"+this.backgroundColor.toString(16)},PIXI.Stage.prototype.getMousePosition=function(){return this.interactionManager.mouse.global},PIXI.Stage.prototype.__addChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=this,t.children)for(var e=0;t.children.length>e;e++)this.__addChild(t.children[e])},PIXI.Stage.prototype.__removeChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=void 0,t.children)for(var e=0,i=t.children.length;i>e;e++)this.__removeChild(t.children[e])},window.requestAnimFrame=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(t){window.setTimeout(t,1e3/60)}}(),"function"!=typeof Function.prototype.bind&&(Function.prototype.bind=function(){var t=Array.prototype.slice;return function(e){function i(){var n=s.concat(t.call(arguments));r.apply(this instanceof i?this:e,n)}var r=this,s=t.call(arguments,1);if("function"!=typeof r)throw new TypeError;return i.prototype=function n(t){return t&&(n.prototype=t),this instanceof n?void 0:new n}(r.prototype),i}}());var AjaxRequest=function(){var t=["Msxml2.XMLHTTP","Microsoft.XMLHTTP"];if(!window.ActiveXObject)return window.XMLHttpRequest?new XMLHttpRequest:!1;for(var e=0;t.length>e;e++)try{return new ActiveXObject(t[e])}catch(i){}};PIXI.EventTarget=function(){var t={};this.addEventListener=this.on=function(e,i){void 0===t[e]&&(t[e]=[]),-1===t[e].indexOf(i)&&t[e].push(i)},this.dispatchEvent=this.emit=function(e){for(var i in t[e.type])t[e.type][i](e)},this.removeEventListener=this.off=function(e,i){var r=t[e].indexOf(i);-1!==r&&t[e].splice(r,1)}},determineMatrixArrayType(),PIXI.mat3={},PIXI.mat3.create=function(){var t=new PIXI.Matrix(9);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},PIXI.mat4={},PIXI.mat4.create=function(){var t=new PIXI.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},PIXI.mat3.multiply=function(t,e,i){i||(i=t);var r=t[0],s=t[1],n=t[2],a=t[3],o=t[4],h=t[5],u=t[6],c=t[7],d=t[8],l=e[0],I=e[1],p=e[2],f=e[3],x=e[4],v=e[5],P=e[6],g=e[7],b=e[8];return i[0]=l*r+I*a+p*u,i[1]=l*s+I*o+p*c,i[2]=l*n+I*h+p*d,i[3]=f*r+x*a+v*u,i[4]=f*s+x*o+v*c,i[5]=f*n+x*h+v*d,i[6]=P*r+g*a+b*u,i[7]=P*s+g*o+b*c,i[8]=P*n+g*h+b*d,i},PIXI.mat3.toMat4=function(t,e){return e||(e=PIXI.mat4.create()),e[15]=1,e[14]=0,e[13]=0,e[12]=0,e[11]=0,e[10]=t[8],e[9]=t[7],e[8]=t[6],e[7]=0,e[6]=t[5],e[5]=t[4],e[4]=t[3],e[3]=0,e[2]=t[2],e[1]=t[1],e[0]=t[0],e},PIXI.mat4.create=function(){var t=new PIXI.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},PIXI.mat4.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],s=t[3],n=t[6],a=t[7],o=t[11];return t[1]=t[4],t[2]=t[8],t[3]=t[12],t[4]=i,t[6]=t[9],t[7]=t[13],t[8]=r,t[9]=n,t[11]=t[14],t[12]=s,t[13]=a,t[14]=o,t}return e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=t[1],e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=t[2],e[9]=t[6],e[10]=t[10],e[11]=t[14],e[12]=t[3],e[13]=t[7],e[14]=t[11],e[15]=t[15],e},PIXI.mat4.multiply=function(t,e,i){i||(i=t);var r=t[0],s=t[1],n=t[2],a=t[3],o=t[4],h=t[5],u=t[6],c=t[7],d=t[8],l=t[9],I=t[10],p=t[11],f=t[12],x=t[13],v=t[14],P=t[15],g=e[0],b=e[1],X=e[2],m=e[3];return i[0]=g*r+b*o+X*d+m*f,i[1]=g*s+b*h+X*l+m*x,i[2]=g*n+b*u+X*I+m*v,i[3]=g*a+b*c+X*p+m*P,g=e[4],b=e[5],X=e[6],m=e[7],i[4]=g*r+b*o+X*d+m*f,i[5]=g*s+b*h+X*l+m*x,i[6]=g*n+b*u+X*I+m*v,i[7]=g*a+b*c+X*p+m*P,g=e[8],b=e[9],X=e[10],m=e[11],i[8]=g*r+b*o+X*d+m*f,i[9]=g*s+b*h+X*l+m*x,i[10]=g*n+b*u+X*I+m*v,i[11]=g*a+b*c+X*p+m*P,g=e[12],b=e[13],X=e[14],m=e[15],i[12]=g*r+b*o+X*d+m*f,i[13]=g*s+b*h+X*l+m*x,i[14]=g*n+b*u+X*I+m*v,i[15]=g*a+b*c+X*p+m*P,i},PIXI.autoDetectRenderer=function(t,e,i,r){t||(t=800),e||(e=600);var s=function(){try{return!!window.WebGLRenderingContext&&!!document.createElement("canvas").getContext("experimental-webgl")}catch(t){return!1}}();return s?new PIXI.WebGLRenderer(t,e,i,r):new PIXI.CanvasRenderer(t,e,i,r)},PIXI.shaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * vColor;","}"],PIXI.shaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform mat4 uMVMatrix;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","gl_Position = uMVMatrix * vec4(aVertexPosition, 1.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],PIXI.CompileVertexShader=function(t,e){return PIXI._CompileShader(t,e,t.VERTEX_SHADER)},PIXI.CompileFragmentShader=function(t,e){return PIXI._CompileShader(t,e,t.FRAGMENT_SHADER)},PIXI._CompileShader=function(t,e,i){var r=e.join("\n"),s=t.createShader(i);return t.shaderSource(s,r),t.compileShader(s),t.getShaderParameter(s,t.COMPILE_STATUS)?s:(alert(t.getShaderInfoLog(s)),null)},PIXI._defaultFrame=new PIXI.Rectangle(0,0,1,1),PIXI.gl,PIXI.WebGLRenderer=function(t,e,i,r){this.transparent=!!r,this.width=t||800,this.height=e||600,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height;var s=this;this.view.addEventListener("webglcontextlost",function(t){s.handleContextLost(t)},!1),this.view.addEventListener("webglcontextrestored",function(t){s.handleContextRestored(t)},!1),this.batchs=[];try{PIXI.gl=this.gl=this.view.getContext("experimental-webgl",{alpha:this.transparent,antialias:!1,premultipliedAlpha:!0})}catch(n){throw Error(" This browser does not support webGL. Try using the canvas renderer"+this)}this.initShaders();var a=this.gl;PIXI.WebGLRenderer.gl=a,this.batch=new PIXI.WebGLBatch(a),a.disable(a.DEPTH_TEST),a.disable(a.CULL_FACE),a.enable(a.BLEND),a.colorMask(!0,!0,!0,this.transparent),this.projectionMatrix=PIXI.mat4.create(),this.resize(this.width,this.height),this.contextLost=!1,this.stageRenderGroup=new PIXI.WebGLRenderGroup(this.gl)},PIXI.WebGLRenderer.constructor=PIXI.WebGLRenderer,PIXI.WebGLRenderer.getBatch=function(){return 0==PIXI._batchs.length?new PIXI.WebGLBatch(PIXI.WebGLRenderer.gl):PIXI._batchs.pop()},PIXI.WebGLRenderer.returnBatch=function(t){t.clean(),PIXI._batchs.push(t)},PIXI.WebGLRenderer.prototype.initShaders=function(){var t=this.gl,e=PIXI.CompileFragmentShader(t,PIXI.shaderFragmentSrc),i=PIXI.CompileVertexShader(t,PIXI.shaderVertexSrc);PIXI.shaderProgram=t.createProgram();var r=PIXI.shaderProgram;t.attachShader(r,i),t.attachShader(r,e),t.linkProgram(r),t.getProgramParameter(r,t.LINK_STATUS)||alert("Could not initialise shaders"),t.useProgram(r),r.vertexPositionAttribute=t.getAttribLocation(r,"aVertexPosition"),t.enableVertexAttribArray(r.vertexPositionAttribute),r.textureCoordAttribute=t.getAttribLocation(r,"aTextureCoord"),t.enableVertexAttribArray(r.textureCoordAttribute),r.colorAttribute=t.getAttribLocation(r,"aColor"),t.enableVertexAttribArray(r.colorAttribute),r.mvMatrixUniform=t.getUniformLocation(r,"uMVMatrix"),r.samplerUniform=t.getUniformLocation(r,"uSampler")},PIXI.WebGLRenderer.prototype.render=function(t){if(!this.contextLost){this.__stage!==t&&(this.__stage=t,this.stageRenderGroup.setRenderable(t));for(var e=0;PIXI.texturesToUpdate.length>e;e++)this.updateTexture(PIXI.texturesToUpdate[e]);for(var e=0;PIXI.texturesToDestroy.length>e;e++)this.destroyTexture(PIXI.texturesToDestroy[e]);PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[],t.updateTransform();var i=this.gl;if(i.colorMask(!0,!0,!0,this.transparent),i.viewport(0,0,this.width,this.height),i.bindFramebuffer(i.FRAMEBUFFER,null),i.clearColor(t.backgroundColorSplit[0],t.backgroundColorSplit[1],t.backgroundColorSplit[2],this.transparent),i.clear(i.COLOR_BUFFER_BIT),this.stageRenderGroup.backgroundColor=t.backgroundColorSplit,this.stageRenderGroup.render(this.projectionMatrix),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),PIXI.Texture.frameUpdates.length>0){for(var e=0;PIXI.Texture.frameUpdates.length>e;e++)PIXI.Texture.frameUpdates[e].updateFrame=!1;PIXI.Texture.frameUpdates=[]}}},PIXI.WebGLRenderer.prototype.updateTexture=function(t){var e=this.gl;t._glTexture||(t._glTexture=e.createTexture()),t.hasLoaded&&(e.bindTexture(e.TEXTURE_2D,t._glTexture),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t.source),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),t._powerOf2?(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT)):(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)),e.bindTexture(e.TEXTURE_2D,null)),this.refreshBatchs=!0},PIXI.WebGLRenderer.prototype.destroyTexture=function(t){var e=this.gl;t._glTexture&&(t._glTexture=e.createTexture(),e.deleteTexture(e.TEXTURE_2D,t._glTexture))},PIXI.WebGLRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e,this.gl.viewport(0,0,this.width,this.height);var i=this.projectionMatrix;i[0]=2/this.width,i[5]=-2/this.height,i[12]=-1,i[13]=1},PIXI.WebGLRenderer.prototype.handleContextLost=function(t){t.preventDefault(),this.contextLost=!0},PIXI.WebGLRenderer.prototype.handleContextRestored=function(){this.gl=this.view.getContext("experimental-webgl",{alpha:!0}),this.initShaders();for(var t=0;PIXI.TextureCache.length>t;t++)this.updateTexture(PIXI.TextureCache[t]);for(var t=0;this.batchs.length>t;t++)this.batchs[t].restoreLostContext(this.gl),this.batchs[t].dirty=!0;PIXI._restoreBatchs(this.gl),this.contextLost=!1},PIXI._batchs=[],PIXI._getBatch=function(t){return 0==PIXI._batchs.length?new PIXI.WebGLBatch(t):PIXI._batchs.pop()},PIXI._returnBatch=function(t){t.clean(),PIXI._batchs.push(t)},PIXI._restoreBatchs=function(t){for(var e=0;PIXI._batchs.length>e;e++)PIXI._batchs[e].restoreLostContext(t)},PIXI.WebGLBatch=function(t){this.gl=t,this.size=0,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer(),this.blendMode=PIXI.blendModes.NORMAL,this.dynamicSize=1},PIXI.WebGLBatch.constructor=PIXI.WebGLBatch,PIXI.WebGLBatch.prototype.clean=function(){this.verticies=[],this.uvs=[],this.indices=[],this.colors=[],this.dynamicSize=1,this.texture=null,this.last=null,this.size=0,this.head,this.tail},PIXI.WebGLBatch.prototype.restoreLostContext=function(t){this.gl=t,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer()},PIXI.WebGLBatch.prototype.init=function(t){t.batch=this,this.dirty=!0,this.blendMode=t.blendMode,this.texture=t.texture.baseTexture,this.head=t,this.tail=t,this.size=1,this.growBatch()},PIXI.WebGLBatch.prototype.insertBefore=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__prev;e.__prev=t,t.__next=e,i?(t.__prev=i,i.__next=t):this.head=t},PIXI.WebGLBatch.prototype.insertAfter=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__next;e.__next=t,t.__prev=e,i?(t.__next=i,i.__prev=t):this.tail=t},PIXI.WebGLBatch.prototype.remove=function(t){return this.size--,0==this.size?(t.batch=null,t.__prev=null,t.__next=null,void 0):(t.__prev?t.__prev.__next=t.__next:(this.head=t.__next,this.head.__prev=null),t.__next?t.__next.__prev=t.__prev:(this.tail=t.__prev,this.tail.__next=null),t.batch=null,t.__next=null,t.__prev=null,this.dirty=!0,void 0)},PIXI.WebGLBatch.prototype.split=function(t){this.dirty=!0;var e=new PIXI.WebGLBatch(this.gl);e.init(t),e.tail=this.tail,this.tail=t.__prev,this.tail.__next=null,t.__prev=null;for(var i=0;t;)i++,t.batch=e,t=t.__next;return e.size=i,this.size-=i,e},PIXI.WebGLBatch.prototype.merge=function(t){this.dirty=!0,this.tail.__next=t.head,t.head.__prev=this.tail,this.size+=t.size,this.tail=t.tail;for(var e=t.head;e;)e.batch=this,e=e.__next},PIXI.WebGLBatch.prototype.growBatch=function(){var t=this.gl;this.dynamicSize=1==this.size?1:1.5*this.size,this.verticies=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.vertexBuffer),t.bufferData(t.ARRAY_BUFFER,this.verticies,t.DYNAMIC_DRAW),this.uvs=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.uvBuffer),t.bufferData(t.ARRAY_BUFFER,this.uvs,t.DYNAMIC_DRAW),this.dirtyUVS=!0,this.colors=new Float32Array(4*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.colorBuffer),t.bufferData(t.ARRAY_BUFFER,this.colors,t.DYNAMIC_DRAW),this.dirtyColors=!0,this.indices=new Uint16Array(6*this.dynamicSize);for(var e=this.indices.length/6,i=0;e>i;i++){var r=6*i,s=4*i;this.indices[r+0]=s+0,this.indices[r+1]=s+1,this.indices[r+2]=s+2,this.indices[r+3]=s+0,this.indices[r+4]=s+2,this.indices[r+5]=s+3}t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,this.indexBuffer),t.bufferData(t.ELEMENT_ARRAY_BUFFER,this.indices,t.STATIC_DRAW)},PIXI.WebGLBatch.prototype.refresh=function(){this.gl,this.dynamicSizei;i++)this.removeDisplayObjectAndChildren(this.toRemove[i]);this.toRemove=[],this.checkVisibility(this.root,this.root.visible);for(var r,i=0;this.batchs.length>i;i++)r=this.batchs[i],r instanceof PIXI.WebGLBatch?this.batchs[i].render():r instanceof PIXI.TilingSprite?r.visible&&this.renderTilingSprite(r,t):r instanceof PIXI.Strip&&r.visible&&this.renderStrip(r,t)},PIXI.WebGLRenderGroup.prototype.renderSpecific=function(t,e){var i=this.gl;this.checkVisibility(t,t.visible),i.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform,!1,e);var r,s,n,a,o=t.renderable?t:this.getNextRenderable(t),h=o.batch;if(o instanceof PIXI.Sprite){h=o.batch;var u=h.head;if(u==o)r=0;else for(r=1;u.__next!=o;)r++,u=u.__next}else h=o;for(var c,d=t,l=t;l.children.length>0;)l=l.children[l.children.length-1],l.renderable&&(d=l);if(d instanceof PIXI.Sprite){c=d.batch;var u=c.head;if(u==d)n=0;else for(n=1;u.__next!=d;)n++,u=u.__next}else c=d;if(h==c)return h instanceof PIXI.WebGLBatch?h.render(r,n+1):h instanceof PIXI.TilingSprite?h.visible&&this.renderTilingSprite(h,e):h instanceof PIXI.Strip?h.visible&&this.renderStrip(h,e):h instanceof PIXI.CustomRenderable&&h.visible&&h.renderWebGL(this,e),void 0;s=this.batchs.indexOf(h),a=this.batchs.indexOf(c),h instanceof PIXI.WebGLBatch?h.render(r):h instanceof PIXI.TilingSprite?h.visible&&this.renderTilingSprite(h,e):h instanceof PIXI.Strip?h.visible&&this.renderStrip(h,e):h instanceof PIXI.CustomRenderable&&h.visible&&h.renderWebGL(this,e);for(var I=s+1;a>I;I++)renderable=this.batchs[I],renderable instanceof PIXI.WebGLBatch?this.batchs[I].render():renderable instanceof PIXI.TilingSprite?renderable.visible&&this.renderTilingSprite(renderable,e):renderable instanceof PIXI.Strip?renderable.visible&&this.renderStrip(renderable,e):renderable instanceof PIXI.CustomRenderable&&renderable.visible&&renderable.renderWebGL(this,e);c instanceof PIXI.WebGLBatch?c.render(0,n+1):c instanceof PIXI.TilingSprite?c.visible&&this.renderTilingSprite(c):c instanceof PIXI.Strip?c.visible&&this.renderStrip(c):c instanceof PIXI.CustomRenderable&&c.visible&&c.renderWebGL(this,e)},PIXI.WebGLRenderGroup.prototype.checkVisibility=function(t,e){for(var i=t.children,r=0;i.length>r;r++){var s=i[r];s.worldVisible=s.visible&&e,s.textureChange&&(s.textureChange=!1,s.worldVisible&&(this.removeDisplayObject(s),this.addDisplayObject(s))),s.children.length>0&&this.checkVisibility(s,s.worldVisible)}},PIXI.WebGLRenderGroup.prototype.addDisplayObject=function(t){if(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.__renderGroup=this,t.renderable){var e=this.getPreviousRenderable(t),i=this.getNextRenderable(t);if(t instanceof PIXI.Sprite){var r,s;if(e instanceof PIXI.Sprite){if(r=e.batch,r&&r.texture==t.texture.baseTexture&&r.blendMode==t.blendMode)return r.insertAfter(t,e),void 0}else r=e;if(i)if(i instanceof PIXI.Sprite){if(s=i.batch){if(s.texture==t.texture.baseTexture&&s.blendMode==t.blendMode)return s.insertBefore(t,i),void 0;if(s==r){var n=r.split(i),a=PIXI.WebGLRenderer.getBatch(),o=this.batchs.indexOf(r);return a.init(t),this.batchs.splice(o+1,0,a,n),void 0}}}else s=i;var a=PIXI.WebGLRenderer.getBatch();if(a.init(t),r){var o=this.batchs.indexOf(r);this.batchs.splice(o+1,0,a)}else this.batchs.push(a)}else t instanceof PIXI.TilingSprite?(this.initTilingSprite(t),this.batchs.push(t)):t instanceof PIXI.Strip&&(this.initStrip(t),this.batchs.push(t));this.batchUpdate=!0}},PIXI.WebGLRenderGroup.prototype.addDisplayObjectAndChildren=function(t){this.addDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.addDisplayObjectAndChildren(e[i])},PIXI.WebGLRenderGroup.prototype.removeDisplayObject=function(t){if(t.__renderGroup=null,t.renderable){var e;if(t instanceof PIXI.Sprite){var i=t.batch;if(!i)return;i.remove(t),0==i.size&&(e=i)}else e=t;if(e){var r=this.batchs.indexOf(e);if(-1==r)return;if(0==r||r==this.batchs.length-1)return this.batchs.splice(r,1),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e),void 0;if(this.batchs[r-1]instanceof PIXI.WebGLBatch&&this.batchs[r+1]instanceof PIXI.WebGLBatch&&this.batchs[r-1].texture==this.batchs[r+1].texture&&this.batchs[r-1].blendMode==this.batchs[r+1].blendMode)return this.batchs[r-1].merge(this.batchs[r+1]),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e),PIXI.WebGLRenderer.returnBatch(this.batchs[r+1]),this.batchs.splice(r,2),void 0;this.batchs.splice(r,1),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e)}}},PIXI.WebGLRenderGroup.prototype.removeDisplayObjectAndChildren=function(t){if(t.__renderGroup==this){this.removeDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.removeDisplayObjectAndChildren(e[i])}},PIXI.WebGLRenderGroup.prototype.getNextRenderable=function(t){var e=t;do{if(0==e.children.length){if(!e.parent)return null;for(;e.childIndex==e.parent.children.length-1;)if(e=e.parent,e==this.root){e=null;break}e&&(e=e.parent.children[e.childIndex+1])}else e=e.children[0];if(!e)break}while(!e.renderable||!e.__renderGroup);return e},PIXI.WebGLRenderGroup.prototype.getPreviousRenderable=function(t){var e=t;do{if(0==e.childIndex){if(e=e.parent,!e)return null}else for(e=e.parent.children[e.childIndex-1];0!=e.children.length;)e=e.children[e.children.length-1];if(e==this.root)break}while(!e.renderable||!e.__renderGroup);return e},PIXI.WebGLRenderGroup.prototype.initTilingSprite=function(t){var e=this.gl;t.verticies=new Float32Array([0,0,t.width,0,t.width,t.height,0,t.height]),t.uvs=new Float32Array([0,0,1,0,1,1,0,1]),t.colors=new Float32Array([1,1,1,1]),t.indices=new Uint16Array([0,1,3,2]),t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW),t.texture.baseTexture._glTexture?(e.bindTexture(e.TEXTURE_2D,t.texture.baseTexture._glTexture),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT),t.texture.baseTexture._powerOf2=!0):t.texture.baseTexture._powerOf2=!0},PIXI.WebGLRenderGroup.prototype.renderStrip=function(t,e){var i=this.gl,r=PIXI.shaderProgram,s=PIXI.mat3.toMat4(t.worldTransform);PIXI.mat4.transpose(s),PIXI.mat4.multiply(e,s,s),i.uniformMatrix4fv(r.mvMatrixUniform,!1,s),t.blendMode==PIXI.blendModes.NORMAL?i.blendFunc(i.ONE,i.ONE_MINUS_SRC_ALPHA):i.blendFunc(i.ONE,i.ONE_MINUS_SRC_COLOR),t.dirty?(t.dirty=!1,i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferData(i.ARRAY_BUFFER,t.verticies,i.STATIC_DRAW),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferData(i.ARRAY_BUFFER,t.uvs,i.STATIC_DRAW),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.bufferData(i.ARRAY_BUFFER,t.colors,i.STATIC_DRAW),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer),i.bufferData(i.ELEMENT_ARRAY_BUFFER,t.indices,i.STATIC_DRAW)):(i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.verticies),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer)),i.drawElements(i.TRIANGLE_STRIP,t.indices.length,i.UNSIGNED_SHORT,0),i.uniformMatrix4fv(r.mvMatrixUniform,!1,e)},PIXI.WebGLRenderGroup.prototype.renderTilingSprite=function(t,e){var i=this.gl;PIXI.shaderProgram;var r=t.tilePosition,s=t.tileScale,n=r.x/t.texture.baseTexture.width,a=r.y/t.texture.baseTexture.height,o=t.width/t.texture.baseTexture.width/s.x,h=t.height/t.texture.baseTexture.height/s.y;t.uvs[0]=0-n,t.uvs[1]=0-a,t.uvs[2]=1*o-n,t.uvs[3]=0-a,t.uvs[4]=1*o-n,t.uvs[5]=1*h-a,t.uvs[6]=0-n,t.uvs[7]=1*h-a,i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.uvs),this.renderStrip(t,e)},PIXI.WebGLRenderer.prototype.initStrip=function(t){var e=this.gl;this.shaderProgram,t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW)},PIXI.CanvasRenderer=function(t,e,i,r){this.transparent=r,this.width=t||800,this.height=e||600,this.refresh=!0,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height,this.count=0,this.context=this.view.getContext("2d")},PIXI.CanvasRenderer.constructor=PIXI.CanvasRenderer,PIXI.CanvasRenderer.prototype.render=function(t){PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[],t.updateTransform(),this.view.style.backgroundColor==t.backgroundColorString||this.transparent||(this.view.style.backgroundColor=t.backgroundColorString),this.context.setTransform(1,0,0,1,0,0),this.context.clearRect(0,0,this.width,this.height),this.renderDisplayObject(t),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),PIXI.Texture.frameUpdates.length>0&&(PIXI.Texture.frameUpdates=[])},PIXI.CanvasRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e},PIXI.CanvasRenderer.prototype.renderDisplayObject=function(t){var e=t.worldTransform,i=this.context;if(t.visible){if(t instanceof PIXI.Sprite){var r=t.texture.frame;r&&(i.globalAlpha=t.worldAlpha,i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),i.drawImage(t.texture.baseTexture.source,r.x,r.y,r.width,r.height,t.anchor.x*-r.width,t.anchor.y*-r.height,r.width,r.height))}else t instanceof PIXI.Strip?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderStrip(t)):t instanceof PIXI.TilingSprite?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderTilingSprite(t)):t instanceof PIXI.CustomRenderable&&t.renderCanvas(this);for(var s=0;t.children.length>s;s++)this.renderDisplayObject(t.children[s]);this.context.setTransform(1,0,0,1,0,0)}},PIXI.CanvasRenderer.prototype.renderStripFlat=function(t){var e=this.context,i=t.verticies;t.uvs;var r=i.length/2;this.count++,e.beginPath();for(var s=1;r-2>s;s++){var n=2*s,a=i[n],o=i[n+2],h=i[n+4],u=i[n+1],c=i[n+3],d=i[n+5];e.moveTo(a,u),e.lineTo(o,c),e.lineTo(h,d)}e.fillStyle="#FF0000",e.fill(),e.closePath()},PIXI.CanvasRenderer.prototype.renderTilingSprite=function(t){var e=this.context;t.__tilePattern||(t.__tilePattern=e.createPattern(t.texture.baseTexture.source,"repeat")),e.beginPath();var i=t.tilePosition,r=t.tileScale;e.scale(r.x,r.y),e.translate(i.x,i.y),e.fillStyle=t.__tilePattern,e.fillRect(-i.x,-i.y,t.width/r.x,t.height/r.y),e.scale(1/r.x,1/r.y),e.translate(-i.x,-i.y),e.closePath()},PIXI.CanvasRenderer.prototype.renderStrip=function(t){var e=this.context,i=t.verticies,r=t.uvs,s=i.length/2;this.count++;for(var n=1;s-2>n;n++){var a=2*n,o=i[a],h=i[a+2],u=i[a+4],c=i[a+1],d=i[a+3],l=i[a+5],I=r[a]*t.texture.width,p=r[a+2]*t.texture.width,f=r[a+4]*t.texture.width,x=r[a+1]*t.texture.height,v=r[a+3]*t.texture.height,P=r[a+5]*t.texture.height;e.save(),e.beginPath(),e.moveTo(o,c),e.lineTo(h,d),e.lineTo(u,l),e.closePath(),e.clip();var g=I*v+x*f+p*P-v*f-x*p-I*P,b=o*v+x*u+h*P-v*u-x*h-o*P,X=I*h+o*f+p*u-h*f-o*p-I*u,m=I*v*u+x*h*f+o*p*P-o*v*f-x*p*u-I*h*P,T=c*v+x*l+d*P-v*l-x*d-c*P,y=I*d+c*f+p*l-d*f-c*p-I*l,_=I*v*l+x*d*f+c*p*P-c*v*f-x*p*l-I*d*P;e.transform(b/g,T/g,X/g,y/g,m/g,_/g),e.drawImage(t.texture.baseTexture.source,0,0),e.restore()}},PIXI.Strip=function(t,e,i){PIXI.DisplayObjectContainer.call(this),this.texture=t,this.blendMode=PIXI.blendModes.NORMAL;try{this.uvs=new Float32Array([0,1,1,1,1,0,0,1]),this.verticies=new Float32Array([0,0,0,0,0,0,0,0,0]),this.colors=new Float32Array([1,1,1,1]),this.indices=new Uint16Array([0,1,2,3])}catch(r){this.uvs=[0,1,1,1,1,0,0,1],this.verticies=[0,0,0,0,0,0,0,0,0],this.colors=[1,1,1,1],this.indices=[0,1,2,3]}this.width=e,this.height=i,t.baseTexture.hasLoaded?(this.width=this.texture.frame.width,this.height=this.texture.frame.height,this.updateFrame=!0):(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},PIXI.Strip.constructor=PIXI.Strip,PIXI.Strip.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Strip.prototype.setTexture=function(t){this.texture=t,this.width=t.frame.width,this.height=t.frame.height,this.updateFrame=!0},PIXI.Strip.prototype.onTextureUpdate=function(){this.updateFrame=!0},PIXI.Rope=function(t,e){PIXI.Strip.call(this,t),this.points=e;try{this.verticies=new Float32Array(4*e.length),this.uvs=new Float32Array(4*e.length),this.colors=new Float32Array(2*e.length),this.indices=new Uint16Array(2*e.length)}catch(i){this.verticies=verticies,this.uvs=uvs,this.colors=colors,this.indices=indices}this.refresh()},PIXI.Rope.constructor=PIXI.Rope,PIXI.Rope.prototype=Object.create(PIXI.Strip.prototype),PIXI.Rope.prototype.refresh=function(){var t=this.points;if(!(1>t.length)){var e=this.uvs,i=this.indices,r=this.colors,s=t[0],n=t[0];this.count-=.2,e[0]=0,e[1]=1,e[2]=0,e[3]=1,r[0]=1,r[1]=1,i[0]=0,i[1]=1;for(var a=t.length,o=1;a>o;o++){var n=t[o],h=4*o,u=o/(a-1);o%2?(e[h]=u,e[h+1]=0,e[h+2]=u,e[h+3]=1):(e[h]=u,e[h+1]=0,e[h+2]=u,e[h+3]=1),h=2*o,r[h]=1,r[h+1]=1,h=2*o,i[h]=h,i[h+1]=h+1,s=n}}},PIXI.Rope.prototype.updateTransform=function(){var t=this.points;if(!(1>t.length)){var e,i=this.verticies,r=t[0],s={x:0,y:0},n=t[0];this.count-=.2,i[0]=n.x+s.x,i[1]=n.y+s.y,i[2]=n.x-s.x,i[3]=n.y-s.y;for(var a=t.length,o=1;a>o;o++){var n=t[o],h=4*o;e=t.length-1>o?t[o+1]:n,s.y=-(e.x-r.x),s.x=e.y-r.y;var u=10*(1-o/(a-1));u>1&&(u=1);var c=Math.sqrt(s.x*s.x+s.y*s.y),d=this.texture.height/2;s.x/=c,s.y/=c,s.x*=d,s.y*=d,i[h]=n.x+s.x,i[h+1]=n.y+s.y,i[h+2]=n.x-s.x,i[h+3]=n.y-s.y,r=n}PIXI.DisplayObjectContainer.prototype.updateTransform.call(this)}},PIXI.Rope.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0},PIXI.TilingSprite=function(t,e,i){PIXI.DisplayObjectContainer.call(this),this.texture=t,this.width=e,this.height=i,this.renderable=!0,this.tileScale=new PIXI.Point(1,1),this.tilePosition=new PIXI.Point(0,0),this.blendMode=PIXI.blendModes.NORMAL},PIXI.TilingSprite.constructor=PIXI.TilingSprite,PIXI.TilingSprite.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.TilingSprite.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0},PIXI.TilingSprite.prototype.onTextureUpdate=function(){this.updateFrame=!0},PIXI.CustomRenderable=function(){PIXI.DisplayObject.call(this)},PIXI.CustomRenderable.constructor=PIXI.CustomRenderable,PIXI.CustomRenderable.prototype=Object.create(PIXI.DisplayObject.prototype),PIXI.CustomRenderable.prototype.renderCanvas=function(){},PIXI.CustomRenderable.prototype.initWebGL=function(){},PIXI.CustomRenderable.prototype.renderWebGL=function(){},PIXI.BaseTextureCache={},PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[],PIXI.BaseTexture=function(t){if(PIXI.EventTarget.call(this),this.width=100,this.height=100,this.source=t,t){if(this.source instanceof Image)if(this.source.complete)this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,PIXI.texturesToUpdate.push(this);else{var e=this;this.source.onload=function(){e.hasLoaded=!0,e.width=e.source.width,e.height=e.source.height,PIXI.texturesToUpdate.push(e),e.dispatchEvent({type:"loaded",content:e})}}else this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,PIXI.texturesToUpdate.push(this);this._powerOf2=!1}},PIXI.BaseTexture.constructor=PIXI.BaseTexture,PIXI.BaseTexture.prototype.destroy=function(){this.source instanceof Image&&(this.source.src=null),this.source=null,PIXI.texturesToDestroy.push(this)},PIXI.BaseTexture.fromImage=function(t,e){var i=PIXI.BaseTextureCache[t];if(!i){var r=new Image;e&&(r.crossOrigin=""),r.src=t,i=new PIXI.BaseTexture(r),PIXI.BaseTextureCache[t]=i}return i},PIXI.TextureCache={},PIXI.FrameCache={},PIXI.Texture=function(t,e){if(PIXI.EventTarget.call(this),e||(this.noFrame=!0,e=new PIXI.Rectangle(0,0,1,1)),this.trim=new PIXI.Point,t instanceof PIXI.Texture&&(t=t.baseTexture),this.baseTexture=t,this.frame=e,this.scope=this,t.hasLoaded)this.noFrame&&(e=new PIXI.Rectangle(0,0,t.width,t.height)),this.setFrame(e);else{var i=this;t.addEventListener("loaded",function(){i.onBaseTextureLoaded()})}},PIXI.Texture.constructor=PIXI.Texture,PIXI.Texture.prototype.onBaseTextureLoaded=function(){var t=this.baseTexture;t.removeEventListener("loaded",this.onLoaded),this.noFrame&&(this.frame=new PIXI.Rectangle(0,0,t.width,t.height)),this.noFrame=!1,this.width=this.frame.width,this.height=this.frame.height,this.scope.dispatchEvent({type:"update",content:this})},PIXI.Texture.prototype.destroy=function(t){t&&this.baseTexture.destroy()},PIXI.Texture.prototype.setFrame=function(t){if(this.frame=t,this.width=t.width,this.height=t.height,t.x+t.width>this.baseTexture.width||t.y+t.height>this.baseTexture.height)throw Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);this.updateFrame=!0,PIXI.Texture.frameUpdates.push(this)},PIXI.Texture.fromImage=function(t,e){var i=PIXI.TextureCache[t];return i||(i=new PIXI.Texture(PIXI.BaseTexture.fromImage(t,e)),PIXI.TextureCache[t]=i),i},PIXI.Texture.fromFrame=function(t){var e=PIXI.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache "+this);return e},PIXI.Texture.fromCanvas=function(t){var e=new PIXI.BaseTexture(t);return new PIXI.Texture(e)},PIXI.Texture.addTextureToCache=function(t,e){PIXI.TextureCache[e]=t},PIXI.Texture.removeTextureFromCache=function(t){var e=PIXI.TextureCache[t];return PIXI.TextureCache[t]=null,e},PIXI.Texture.frameUpdates=[],PIXI.RenderTexture=function(t,e){PIXI.EventTarget.call(this),this.width=t||100,this.height=e||100,this.indetityMatrix=PIXI.mat3.create(),this.frame=new PIXI.Rectangle(0,0,this.width,this.height),PIXI.gl?this.initWebGL():this.initCanvas()},PIXI.RenderTexture.constructor=PIXI.RenderTexture,PIXI.RenderTexture.prototype=Object.create(PIXI.Texture.prototype),PIXI.RenderTexture.prototype.initWebGL=function(){var t=PIXI.gl;this.glFramebuffer=t.createFramebuffer(),t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),this.glFramebuffer.width=this.width,this.glFramebuffer.height=this.height,this.baseTexture=new PIXI.BaseTexture,this.baseTexture.width=this.width,this.baseTexture.height=this.height,this.baseTexture._glTexture=t.createTexture(),t.bindTexture(t.TEXTURE_2D,this.baseTexture._glTexture),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,this.width,this.height,0,t.RGBA,t.UNSIGNED_BYTE,null),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),this.baseTexture.isRender=!0,t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,this.baseTexture._glTexture,0),this.projectionMatrix=PIXI.mat4.create(),this.projectionMatrix[5]=2/this.height,this.projectionMatrix[13]=-1,this.projectionMatrix[0]=2/this.width,this.projectionMatrix[12]=-1,this.render=this.renderWebGL},PIXI.RenderTexture.prototype.initCanvas=function(){this.renderer=new PIXI.CanvasRenderer(this.width,this.height,null,0),this.baseTexture=new PIXI.BaseTexture(this.renderer.view),this.frame=new PIXI.Rectangle(0,0,this.width,this.height),this.render=this.renderCanvas},PIXI.RenderTexture.prototype.renderWebGL=function(t,e){var i=PIXI.gl;i.colorMask(!0,!0,!0,!0),i.viewport(0,0,this.width,this.height),i.bindFramebuffer(i.FRAMEBUFFER,this.glFramebuffer),e&&(i.clearColor(0,0,0,0),i.clear(i.COLOR_BUFFER_BIT));var r=t.children;t.worldTransform=PIXI.mat3.create();for(var s=0,n=r.length;n>s;s++)r[s].updateTransform();var a=t.__renderGroup;a?t==a.root?a.render(this.projectionMatrix):a.renderSpecific(t,this.projectionMatrix):(this.renderGroup||(this.renderGroup=new PIXI.WebGLRenderGroup(i)),this.renderGroup.setRenderable(t),this.renderGroup.render(this.projectionMatrix))},PIXI.RenderTexture.prototype.renderCanvas=function(t,e){var i=t.children;t.worldTransform=PIXI.mat3.create();for(var r=0,s=i.length;s>r;r++)i[r].updateTransform();e&&this.renderer.context.clearRect(0,0,this.width,this.height),this.renderer.renderDisplayObject(t),PIXI.texturesToUpdate.push(this.baseTexture)},PIXI.AssetLoader=function(t){PIXI.EventTarget.call(this),this.assetURLs=t,this.crossorigin=!1,this.loadersByType={jpg:PIXI.ImageLoader,jpeg:PIXI.ImageLoader,png:PIXI.ImageLoader,gif:PIXI.ImageLoader,json:PIXI.SpriteSheetLoader,xml:PIXI.BitmapFontLoader,fnt:PIXI.BitmapFontLoader}},PIXI.AssetLoader.constructor=PIXI.AssetLoader,PIXI.AssetLoader.prototype.load=function(){var t=this;this.loadCount=this.assetURLs.length;for(var e=0;this.assetURLs.length>e;e++){var i=this.assetURLs[e],r=i.split(".").pop().toLowerCase(),s=this.loadersByType[r];if(!s)throw Error(r+" is an unsupported file type");var n=new s(i,this.crossorigin);n.addEventListener("loaded",function(){t.onAssetLoaded()}),n.load()}},PIXI.AssetLoader.prototype.onAssetLoaded=function(){this.loadCount--,this.dispatchEvent({type:"onProgress",content:this}),this.onProgress&&this.onProgress(),0==this.loadCount&&(this.dispatchEvent({type:"onComplete",content:this}),this.onComplete&&this.onComplete())},PIXI.SpriteSheetLoader=function(t,e){PIXI.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.frames={},this.crossorigin=e},PIXI.SpriteSheetLoader.constructor=PIXI.SpriteSheetLoader,PIXI.SpriteSheetLoader.prototype.load=function(){this.ajaxRequest=new AjaxRequest;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onJSONLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/json"),this.ajaxRequest.send(null)},PIXI.SpriteSheetLoader.prototype.onJSONLoaded=function(){if(4==this.ajaxRequest.readyState&&(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))){var jsonData=eval("("+this.ajaxRequest.responseText+")"),textureUrl=this.baseUrl+jsonData.meta.image,image=new PIXI.ImageLoader(textureUrl,this.crossorigin);this.texture=image.texture.baseTexture;var scope=this;image.addEventListener("loaded",function(){scope.onLoaded()});var frameData=jsonData.frames;for(var i in frameData){var rect=frameData[i].frame;rect&&(PIXI.TextureCache[i]=new PIXI.Texture(this.texture,{x:rect.x,y:rect.y,width:rect.w,height:rect.h}),frameData[i].trimmed&&(PIXI.TextureCache[i].realSize=frameData[i].spriteSourceSize,PIXI.TextureCache[i].trim.x=0))}image.load()}},PIXI.SpriteSheetLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},PIXI.ImageLoader=function(t,e){PIXI.EventTarget.call(this),this.texture=PIXI.Texture.fromImage(t,e)},PIXI.ImageLoader.constructor=PIXI.ImageLoader,PIXI.ImageLoader.prototype.load=function(){if(this.texture.baseTexture.hasLoaded)this.onLoaded();else{var t=this;this.texture.baseTexture.addEventListener("loaded",function(){t.onLoaded()})}},PIXI.ImageLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},PIXI.BitmapFontLoader=function(t,e){PIXI.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.crossorigin=e},PIXI.BitmapFontLoader.constructor=PIXI.BitmapFontLoader,PIXI.BitmapFontLoader.prototype.load=function(){this.ajaxRequest=new XMLHttpRequest;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onXMLLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/xml"),this.ajaxRequest.send(null)},PIXI.BitmapFontLoader.prototype.onXMLLoaded=function(){if(4==this.ajaxRequest.readyState&&(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))){var t=this.baseUrl+this.ajaxRequest.responseXML.getElementsByTagName("page")[0].attributes.getNamedItem("file").nodeValue,e=new PIXI.ImageLoader(t,this.crossorigin);this.texture=e.texture.baseTexture;var i={},r=this.ajaxRequest.responseXML.getElementsByTagName("info")[0],s=this.ajaxRequest.responseXML.getElementsByTagName("common")[0];i.font=r.attributes.getNamedItem("face").nodeValue,i.size=parseInt(r.attributes.getNamedItem("size").nodeValue,10),i.lineHeight=parseInt(s.attributes.getNamedItem("lineHeight").nodeValue,10),i.chars={};for(var n=this.ajaxRequest.responseXML.getElementsByTagName("char"),a=0;n.length>a;a++){var o=parseInt(n[a].attributes.getNamedItem("id").nodeValue,10),h={x:parseInt(n[a].attributes.getNamedItem("x").nodeValue,10),y:parseInt(n[a].attributes.getNamedItem("y").nodeValue,10),width:parseInt(n[a].attributes.getNamedItem("width").nodeValue,10),height:parseInt(n[a].attributes.getNamedItem("height").nodeValue,10)};PIXI.TextureCache[o]=new PIXI.Texture(this.texture,h),i.chars[o]={xOffset:parseInt(n[a].attributes.getNamedItem("xoffset").nodeValue,10),yOffset:parseInt(n[a].attributes.getNamedItem("yoffset").nodeValue,10),xAdvance:parseInt(n[a].attributes.getNamedItem("xadvance").nodeValue,10),kerning:{}}}var u=this.ajaxRequest.responseXML.getElementsByTagName("kerning");for(a=0;u.length>a;a++){var c=parseInt(u[a].attributes.getNamedItem("first").nodeValue,10),d=parseInt(u[a].attributes.getNamedItem("second").nodeValue,10),l=parseInt(u[a].attributes.getNamedItem("amount").nodeValue,10);i.chars[d].kerning[c]=l}PIXI.BitmapText.fonts[i.font]=i;var I=this;e.addEventListener("loaded",function(){I.onLoaded()}),e.load()}},PIXI.BitmapFontLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=PIXI),exports.PIXI=PIXI):root.PIXI=PIXI}).call(this); \ No newline at end of file +(function(){function HEXtoRGB(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}function determineMatrixArrayType(){return PIXI.Matrix="undefined"!=typeof Float32Array?Float32Array:Array,PIXI.Matrix}var root=this,PIXI=PIXI||{};PIXI.Point=function(t,e){this.x=t||0,this.y=e||0},PIXI.Point.prototype.clone=function(){return new PIXI.Point(this.x,this.y)},PIXI.Point.constructor=PIXI.Point,PIXI.Rectangle=function(t,e,i,r){this.x=t||0,this.y=e||0,this.width=i||0,this.height=r||0},PIXI.Rectangle.prototype.clone=function(){return new PIXI.Rectangle(this.x,this.y,this.width,this.height)},PIXI.Rectangle.constructor=PIXI.Rectangle,PIXI.DisplayObject=function(){this.position=new PIXI.Point,this.scale=new PIXI.Point(1,1),this.pivot=new PIXI.Point(0,0),this.rotation=0,this.alpha=1,this.visible=!0,this.worldVisible=!1,this.parent=null,this.stage=null,this.hitArea=null,this.worldAlpha=1,this.color=[],this.worldTransform=PIXI.mat3.create(),this.localTransform=PIXI.mat3.create(),this.dynamic=!0,this._sr=0,this._cr=1,this.childIndex=0,this.renderable=!1,this.interactive=!1,this.buttonMode=!1},PIXI.DisplayObject.constructor=PIXI.DisplayObject,PIXI.DisplayObject.prototype.setInteractive=function(t){this.interactive=t,this.stage&&(this.stage.dirty=!0)},PIXI.DisplayObject.prototype.updateTransform=function(){this.rotation!=this.rotationCache&&(this.rotationCache=this.rotation,this._sr=Math.sin(this.rotation),this._cr=Math.cos(this.rotation));var t=this.localTransform,e=this.parent.worldTransform,i=this.worldTransform;t[0]=this._cr*this.scale.x,t[1]=-this._sr*this.scale.y,t[3]=this._sr*this.scale.x,t[4]=this._cr*this.scale.y;var r=this.pivot.x,s=this.pivot.y;t[2]=this.position.x-t[0]*r-s*t[1],t[5]=this.position.y-t[4]*s-r*t[3];var n=t[0],a=t[1],o=t[2],h=t[3],u=t[4],d=t[5],c=e[0],l=e[1],I=e[2],p=e[3],f=e[4],x=e[5];i[0]=c*n+l*h,i[1]=c*a+l*u,i[2]=c*o+l*d+I,i[3]=p*n+f*h,i[4]=p*a+f*u,i[5]=p*o+f*d+x,this.worldAlpha=this.alpha*this.parent.worldAlpha},PIXI.DisplayObjectContainer=function(){PIXI.DisplayObject.call(this),this.children=[],this.renderable=!1},PIXI.DisplayObjectContainer.constructor=PIXI.DisplayObjectContainer,PIXI.DisplayObjectContainer.prototype=Object.create(PIXI.DisplayObject.prototype),PIXI.DisplayObjectContainer.prototype.addChild=function(t){void 0!=t.parent&&t.parent.removeChild(t),t.parent=this,t.childIndex=this.children.length,this.children.push(t),this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},PIXI.DisplayObjectContainer.prototype.addChildAt=function(t,e){if(!(e>=0&&this.children.length>=e))throw Error(t+" The index "+e+" supplied is out of bounds "+this.children.length);void 0!=t.parent&&t.parent.removeChild(t),e==this.children.length?this.children.push(t):this.children.splice(e,0,t),t.parent=this,t.childIndex=e;for(var i=this.children.length,r=e;i>r;r++)this.children[r].childIndex=r;this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},PIXI.DisplayObjectContainer.prototype.swapChildren=function(t,e){var i=this.children.indexOf(t),r=this.children.indexOf(e);if(-1===i||-1===r)throw Error(t+" Both the supplied DisplayObjects must be a child of the caller "+this);this.stage&&(this.stage.__removeChild(t),this.stage.__removeChild(e),this.stage.__addChild(t),this.stage.__addChild(e)),t.childIndex=r,e.childIndex=i,this.children[i]=e,this.children[r]=t},PIXI.DisplayObjectContainer.prototype.getChildAt=function(t){if(t>=0&&this.children.length>t)return this.children[t];throw Error(child+" Both the supplied DisplayObjects must be a child of the caller "+this)},PIXI.DisplayObjectContainer.prototype.removeChild=function(t){var e=this.children.indexOf(t);if(-1===e)throw Error(t+" The supplied DisplayObject must be a child of the caller "+this);this.stage&&this.stage.__removeChild(t),t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.parent=void 0,this.children.splice(e,1);for(var i=e,r=this.children.length;r>i;i++)this.children[i].childIndex-=1},PIXI.DisplayObjectContainer.prototype.updateTransform=function(){if(this.visible){PIXI.DisplayObject.prototype.updateTransform.call(this);for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform()}},PIXI.blendModes={},PIXI.blendModes.NORMAL=0,PIXI.blendModes.SCREEN=1,PIXI.Sprite=function(t){PIXI.DisplayObjectContainer.call(this),this.anchor=new PIXI.Point,this.texture=t,this.blendMode=PIXI.blendModes.NORMAL,this._width=0,this._height=0,t.baseTexture.hasLoaded?this.updateFrame=!0:(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},PIXI.Sprite.constructor=PIXI.Sprite,PIXI.Sprite.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),Object.defineProperty(PIXI.Sprite.prototype,"width",{get:function(){return this.scale.x*this.texture.frame.width},set:function(t){this.scale.x=t/this.texture.frame.width,this._width=t}}),Object.defineProperty(PIXI.Sprite.prototype,"height",{get:function(){return this.scale.y*this.texture.frame.height},set:function(t){this.scale.y=t/this.texture.frame.height,this._height=t}}),PIXI.Sprite.prototype.setTexture=function(t){this.texture.baseTexture!=t.baseTexture&&(this.textureChange=!0),this.texture=t,this.updateFrame=!0},PIXI.Sprite.prototype.onTextureUpdate=function(){this._width&&(this.scale.x=this._width/this.texture.frame.width),this._height&&(this.scale.y=this._height/this.texture.frame.height),this.updateFrame=!0},PIXI.Sprite.fromFrame=function(t){var e=PIXI.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache"+this);return new PIXI.Sprite(e)},PIXI.Sprite.fromImage=function(t){var e=PIXI.Texture.fromImage(t);return new PIXI.Sprite(e)},PIXI.MovieClip=function(t){PIXI.Sprite.call(this,t[0]),this.textures=t,this.currentFrame=0,this.animationSpeed=1,this.loop=!0,this.onComplete=null,this.playing},PIXI.MovieClip.constructor=PIXI.MovieClip,PIXI.MovieClip.prototype=Object.create(PIXI.Sprite.prototype),PIXI.MovieClip.prototype.stop=function(){this.playing=!1},PIXI.MovieClip.prototype.play=function(){this.playing=!0},PIXI.MovieClip.prototype.gotoAndStop=function(t){this.playing=!1,this.currentFrame=t;var e=0|this.currentFrame+.5;this.setTexture(this.textures[e%this.textures.length])},PIXI.MovieClip.prototype.gotoAndPlay=function(t){this.currentFrame=t,this.playing=!0},PIXI.MovieClip.prototype.updateTransform=function(){if(PIXI.Sprite.prototype.updateTransform.call(this),this.playing){this.currentFrame+=this.animationSpeed;var t=0|this.currentFrame+.5;this.loop||this.textures.length>t?this.setTexture(this.textures[t%this.textures.length]):t>=this.textures.length&&(this.gotoAndStop(this.textures.length-1),this.onComplete&&this.onComplete())}},PIXI.Text=function(t,e){this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"),PIXI.Sprite.call(this,PIXI.Texture.fromCanvas(this.canvas)),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},PIXI.Text.constructor=PIXI.Text,PIXI.Text.prototype=Object.create(PIXI.Sprite.prototype),PIXI.Text.prototype.setStyle=function(t){t=t||{},t.font=t.font||"bold 20pt Arial",t.fill=t.fill||"black",t.align=t.align||"left",t.strokeThickness=t.strokeThickness||0,this.style=t,this.dirty=!0},PIXI.Sprite.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},PIXI.Text.prototype.updateText=function(){this.context.font=this.style.font;for(var t=this.text.split(/(?:\r\n|\r|\n)/),e=[],i=0,r=0;t.length>r;r++){var s=this.context.measureText(t[r]).width;e[r]=s,i=Math.max(i,s)}this.canvas.width=i+this.style.strokeThickness;var n=this.determineFontHeight("font: "+this.style.font+";")+this.style.strokeThickness;for(this.canvas.height=n*t.length,this.context.fillStyle=this.style.fill,this.context.font=this.style.font,this.context.strokeStyle=this.style.stroke,this.context.lineWidth=this.style.strokeThickness,this.context.textBaseline="top",r=0;t.length>r;r++){var a=new PIXI.Point(this.style.strokeThickness/2,this.style.strokeThickness/2+r*n);"right"==this.style.align?a.x+=i-e[r]:"center"==this.style.align&&(a.x+=(i-e[r])/2),this.style.stroke&&this.style.strokeThickness&&this.context.strokeText(t[r],a.x,a.y),this.style.fill&&this.context.fillText(t[r],a.x,a.y)}this.updateTexture()},PIXI.Text.prototype.updateTexture=function(){this.texture.baseTexture.width=this.canvas.width,this.texture.baseTexture.height=this.canvas.height,this.texture.frame.width=this.canvas.width,this.texture.frame.height=this.canvas.height,this._width=this.canvas.width,this._height=this.canvas.height,PIXI.texturesToUpdate.push(this.texture.baseTexture)},PIXI.Text.prototype.updateTransform=function(){this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype.updateTransform.call(this)},PIXI.Text.prototype.determineFontHeight=function(t){var e=PIXI.Text.heightCache[t];if(!e){var i=document.getElementsByTagName("body")[0],r=document.createElement("div"),s=document.createTextNode("M");r.appendChild(s),r.setAttribute("style",t),i.appendChild(r),e=r.offsetHeight,PIXI.Text.heightCache[t]=e,i.removeChild(r)}return e},PIXI.Text.prototype.destroy=function(t){t&&this.texture.destroy()},PIXI.Text.heightCache={},PIXI.BitmapText=function(t,e){PIXI.DisplayObjectContainer.call(this),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},PIXI.BitmapText.constructor=PIXI.BitmapText,PIXI.BitmapText.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.BitmapText.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},PIXI.BitmapText.prototype.setStyle=function(t){t=t||{},t.align=t.align||"left",this.style=t;var e=t.font.split(" ");this.fontName=e[e.length-1],this.fontSize=e.length>=2?parseInt(e[e.length-2],10):PIXI.BitmapText.fonts[this.fontName].size,this.dirty=!0},PIXI.BitmapText.prototype.updateText=function(){for(var t=PIXI.BitmapText.fonts[this.fontName],e=new PIXI.Point,i=null,r=[],s=0,n=[],a=0,o=this.fontSize/t.size,h=0;this.text.length>h;h++){var u=this.text.charCodeAt(h);if(/(?:\r\n|\r|\n)/.test(this.text.charAt(h)))n.push(e.x),s=Math.max(s,e.x),a++,e.x=0,e.y+=t.lineHeight,i=null;else{var d=t.chars[u];d&&(i&&d[i]&&(e.x+=d.kerning[i]),r.push({line:a,charCode:u,position:new PIXI.Point(e.x+d.xOffset,e.y+d.yOffset)}),e.x+=d.xAdvance,i=u)}}n.push(e.x),s=Math.max(s,e.x);var c=[];for(h=0;a>=h;h++){var l=0;"right"==this.style.align?l=s-n[h]:"center"==this.style.align&&(l=(s-n[h])/2),c.push(l)}for(h=0;r.length>h;h++){var I=PIXI.Sprite.fromFrame(r[h].charCode);I.position.x=(r[h].position.x+c[r[h].line])*o,I.position.y=r[h].position.y*o,I.scale.x=I.scale.y=o,this.addChild(I)}this.width=e.x*o,this.height=(e.y+t.lineHeight)*o},PIXI.BitmapText.prototype.updateTransform=function(){if(this.dirty){for(;this.children.length>0;)this.removeChild(this.getChildAt(0));this.updateText(),this.dirty=!1}PIXI.DisplayObjectContainer.prototype.updateTransform.call(this)},PIXI.BitmapText.fonts={},PIXI.InteractionManager=function(t){this.stage=t,this.tempPoint=new PIXI.Point,this.mouseoverEnabled=!0,this.mouse=new PIXI.InteractionData,this.touchs={},this.pool=[],this.interactiveItems=[],this.last=0},PIXI.InteractionManager.constructor=PIXI.InteractionManager,PIXI.InteractionManager.prototype.collectInteractiveSprite=function(t,e){for(var i=t.children,r=i.length,s=r-1;s>=0;s--){var n=i[s];n.interactive?(e.interactiveChildren=!0,this.interactiveItems.push(n),n.children.length>0&&this.collectInteractiveSprite(n,n)):(n.__iParent=null,n.children.length>0&&this.collectInteractiveSprite(n,e))}},PIXI.InteractionManager.prototype.setTarget=function(t){window.navigator.msPointerEnabled&&(t.view.style["-ms-content-zooming"]="none",t.view.style["-ms-touch-action"]="none"),this.target=t,t.view.addEventListener("mousemove",this.onMouseMove.bind(this),!0),t.view.addEventListener("mousedown",this.onMouseDown.bind(this),!0),document.body.addEventListener("mouseup",this.onMouseUp.bind(this),!0),t.view.addEventListener("mouseout",this.onMouseUp.bind(this),!0),t.view.addEventListener("touchstart",this.onTouchStart.bind(this),!0),t.view.addEventListener("touchend",this.onTouchEnd.bind(this),!0),t.view.addEventListener("touchmove",this.onTouchMove.bind(this),!0)},PIXI.InteractionManager.prototype.update=function(){if(this.target){var t=Date.now(),e=t-this.last;if(e=30*e/1e3,!(1>e)){if(this.last=t,this.dirty){this.dirty=!1,this.interactiveItems.length;for(var i=0;this.interactiveItems.length>i;i++)this.interactiveItems[i].interactiveChildren=!1;this.interactiveItems=[],this.stage.interactive&&this.interactiveItems.push(this.stage),this.collectInteractiveSprite(this.stage,this.stage)}var r=this.interactiveItems.length;this.target.view.style.cursor="default";for(var i=0;r>i;i++){var s=this.interactiveItems[i];s.visible&&(s.mouseover||s.mouseout||s.buttonMode)&&(s.__hit=this.hitTest(s,this.mouse),s.__hit?(s.buttonMode&&(this.target.view.style.cursor="pointer"),s.__isOver||(s.mouseover&&s.mouseover(this.mouse),s.__isOver=!0)):s.__isOver&&(s.mouseout&&s.mouseout(this.mouse),s.__isOver=!1))}}}},PIXI.InteractionManager.prototype.onMouseMove=function(t){t.preventDefault();var e=this.target.view.getBoundingClientRect();this.mouse.global.x=(t.clientX-e.left)*(this.target.width/e.width),this.mouse.global.y=(t.clientY-e.top)*(this.target.height/e.height);var i=this.interactiveItems.length;this.mouse.global;for(var r=0;i>r;r++){var s=this.interactiveItems[r];s.mousemove&&s.mousemove(this.mouse)}},PIXI.InteractionManager.prototype.onMouseDown=function(t){t.preventDefault();var e=this.interactiveItems.length;this.mouse.global,this.stage;for(var i=0;e>i;i++){var r=this.interactiveItems[i];if((r.mousedown||r.click)&&(r.__mouseIsDown=!0,r.__hit=this.hitTest(r,this.mouse),r.__hit&&(r.mousedown&&r.mousedown(this.mouse),r.__isDown=!0,!r.interactiveChildren)))break}},PIXI.InteractionManager.prototype.onMouseUp=function(t){t.preventDefault(),this.mouse.global;for(var e=this.interactiveItems.length,i=!1,r=0;e>r;r++){var s=this.interactiveItems[r];(s.mouseup||s.mouseupoutside||s.click)&&(s.__hit=this.hitTest(s,this.mouse),s.__hit&&!i?(s.mouseup&&s.mouseup(this.mouse),s.__isDown&&s.click&&s.click(this.mouse),s.interactiveChildren||(i=!0)):s.__isDown&&s.mouseupoutside&&s.mouseupoutside(this.mouse),s.__isDown=!1)}},PIXI.InteractionManager.prototype.hitTest=function(t,e){var i=e.global;if(!t.visible)return!1;if(t instanceof PIXI.Sprite){var r=t.worldTransform,s=r[0],n=r[1],a=r[2],o=r[3],h=r[4],u=r[5],d=1/(s*h+n*-o),c=h*d*i.x+-n*d*i.y+(u*n-a*h)*d,l=s*d*i.y+-o*d*i.x+(-u*s+a*o)*d,I=t.texture.frame.width,p=t.texture.frame.height,f=-I*t.anchor.x;if(c>f&&f+I>c){var x=-p*t.anchor.y;if(l>x&&x+p>l)return e.target=t,!0}}else if(t.hitArea){var r=t.worldTransform,v=t.hitArea,s=r[0],n=r[1],a=r[2],o=r[3],h=r[4],u=r[5],d=1/(s*h+n*-o),c=h*d*i.x+-n*d*i.y+(u*n-a*h)*d,l=s*d*i.y+-o*d*i.x+(-u*s+a*o)*d,f=v.x;if(c>f&&f+v.width>c){var x=v.y;if(l>x&&x+v.height>l)return!0}}for(var P=t.children.length,g=0;P>g;g++){var b=t.children[g],X=this.hitTest(b,e);if(X)return!0}return!1},PIXI.InteractionManager.prototype.onTouchMove=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.touchs[s.identifier];n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height)}for(var a=this.interactiveItems.length,r=0;a>r;r++){var o=this.interactiveItems[r];o.touchmove&&o.touchmove(n)}},PIXI.InteractionManager.prototype.onTouchStart=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.pool.pop();n||(n=new PIXI.InteractionData),this.touchs[s.identifier]=n,n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height);for(var a=this.interactiveItems.length,o=0;a>o;o++){var h=this.interactiveItems[o];if((h.touchstart||h.tap)&&(h.__hit=this.hitTest(h,n),h.__hit&&(h.touchstart&&h.touchstart(n),h.__isDown=!0,h.__touchData=n,!h.interactiveChildren)))break}}},PIXI.InteractionManager.prototype.onTouchEnd=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.touchs[s.identifier],a=!1;n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var u=this.interactiveItems[h],d=u.__touchData;u.__hit=this.hitTest(u,n),d==n&&((u.touchend||u.tap)&&(u.__hit&&!a?(u.touchend&&u.touchend(n),u.__isDown&&u.tap&&u.tap(n),u.interactiveChildren||(a=!0)):u.__isDown&&u.touchendoutside&&u.touchendoutside(n),u.__isDown=!1),u.__touchData=null)}this.pool.push(n),this.touchs[s.identifier]=null}},PIXI.InteractionData=function(){this.global=new PIXI.Point,this.local=new PIXI.Point,this.target},PIXI.InteractionData.prototype.getLocalPosition=function(t){var e=t.worldTransform,i=this.global,r=e[0],s=e[1],n=e[2],a=e[3],o=e[4],h=e[5],u=1/(r*o+s*-a);return new PIXI.Point(o*u*i.x+-s*u*i.y+(h*s-n*o)*u,r*u*i.y+-a*u*i.x+(-h*r+n*a)*u)},PIXI.InteractionData.constructor=PIXI.InteractionData,PIXI.Stage=function(t,e){PIXI.DisplayObjectContainer.call(this),this.worldTransform=PIXI.mat3.create(),this.__childrenAdded=[],this.__childrenRemoved=[],this.childIndex=0,this.stage=this,this.stage.hitArea=new PIXI.Rectangle(0,0,1e5,1e5),this.interactive=!!e,this.interactionManager=new PIXI.InteractionManager(this),this.setBackgroundColor(t),this.worldVisible=!0},PIXI.Stage.constructor=PIXI.Stage,PIXI.Stage.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Stage.prototype.updateTransform=function(){this.worldAlpha=1;for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform();this.dirty&&(this.dirty=!1,this.interactionManager.dirty=!0),this.interactive&&this.interactionManager.update()},PIXI.Stage.prototype.setBackgroundColor=function(t){this.backgroundColor=t||0,this.backgroundColorSplit=HEXtoRGB(this.backgroundColor),this.backgroundColorString="#"+this.backgroundColor.toString(16)},PIXI.Stage.prototype.getMousePosition=function(){return this.interactionManager.mouse.global},PIXI.Stage.prototype.__addChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=this,t.children)for(var e=0;t.children.length>e;e++)this.__addChild(t.children[e])},PIXI.Stage.prototype.__removeChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=void 0,t.children)for(var e=0,i=t.children.length;i>e;e++)this.__removeChild(t.children[e])},window.requestAnimFrame=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(t){window.setTimeout(t,1e3/60)}}(),"function"!=typeof Function.prototype.bind&&(Function.prototype.bind=function(){var t=Array.prototype.slice;return function(e){function i(){var n=s.concat(t.call(arguments));r.apply(this instanceof i?this:e,n)}var r=this,s=t.call(arguments,1);if("function"!=typeof r)throw new TypeError;return i.prototype=function n(t){return t&&(n.prototype=t),this instanceof n?void 0:new n}(r.prototype),i}}());var AjaxRequest=function(){var t=["Msxml2.XMLHTTP","Microsoft.XMLHTTP"];if(!window.ActiveXObject)return window.XMLHttpRequest?new XMLHttpRequest:!1;for(var e=0;t.length>e;e++)try{return new ActiveXObject(t[e])}catch(i){}};PIXI.EventTarget=function(){var t={};this.addEventListener=this.on=function(e,i){void 0===t[e]&&(t[e]=[]),-1===t[e].indexOf(i)&&t[e].push(i)},this.dispatchEvent=this.emit=function(e){for(var i in t[e.type])t[e.type][i](e)},this.removeEventListener=this.off=function(e,i){var r=t[e].indexOf(i);-1!==r&&t[e].splice(r,1)}},determineMatrixArrayType(),PIXI.mat3={},PIXI.mat3.create=function(){var t=new PIXI.Matrix(9);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},PIXI.mat4={},PIXI.mat4.create=function(){var t=new PIXI.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},PIXI.mat3.multiply=function(t,e,i){i||(i=t);var r=t[0],s=t[1],n=t[2],a=t[3],o=t[4],h=t[5],u=t[6],d=t[7],c=t[8],l=e[0],I=e[1],p=e[2],f=e[3],x=e[4],v=e[5],P=e[6],g=e[7],b=e[8];return i[0]=l*r+I*a+p*u,i[1]=l*s+I*o+p*d,i[2]=l*n+I*h+p*c,i[3]=f*r+x*a+v*u,i[4]=f*s+x*o+v*d,i[5]=f*n+x*h+v*c,i[6]=P*r+g*a+b*u,i[7]=P*s+g*o+b*d,i[8]=P*n+g*h+b*c,i},PIXI.mat3.toMat4=function(t,e){return e||(e=PIXI.mat4.create()),e[15]=1,e[14]=0,e[13]=0,e[12]=0,e[11]=0,e[10]=t[8],e[9]=t[7],e[8]=t[6],e[7]=0,e[6]=t[5],e[5]=t[4],e[4]=t[3],e[3]=0,e[2]=t[2],e[1]=t[1],e[0]=t[0],e},PIXI.mat4.create=function(){var t=new PIXI.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},PIXI.mat4.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],s=t[3],n=t[6],a=t[7],o=t[11];return t[1]=t[4],t[2]=t[8],t[3]=t[12],t[4]=i,t[6]=t[9],t[7]=t[13],t[8]=r,t[9]=n,t[11]=t[14],t[12]=s,t[13]=a,t[14]=o,t}return e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=t[1],e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=t[2],e[9]=t[6],e[10]=t[10],e[11]=t[14],e[12]=t[3],e[13]=t[7],e[14]=t[11],e[15]=t[15],e},PIXI.mat4.multiply=function(t,e,i){i||(i=t);var r=t[0],s=t[1],n=t[2],a=t[3],o=t[4],h=t[5],u=t[6],d=t[7],c=t[8],l=t[9],I=t[10],p=t[11],f=t[12],x=t[13],v=t[14],P=t[15],g=e[0],b=e[1],X=e[2],m=e[3];return i[0]=g*r+b*o+X*c+m*f,i[1]=g*s+b*h+X*l+m*x,i[2]=g*n+b*u+X*I+m*v,i[3]=g*a+b*d+X*p+m*P,g=e[4],b=e[5],X=e[6],m=e[7],i[4]=g*r+b*o+X*c+m*f,i[5]=g*s+b*h+X*l+m*x,i[6]=g*n+b*u+X*I+m*v,i[7]=g*a+b*d+X*p+m*P,g=e[8],b=e[9],X=e[10],m=e[11],i[8]=g*r+b*o+X*c+m*f,i[9]=g*s+b*h+X*l+m*x,i[10]=g*n+b*u+X*I+m*v,i[11]=g*a+b*d+X*p+m*P,g=e[12],b=e[13],X=e[14],m=e[15],i[12]=g*r+b*o+X*c+m*f,i[13]=g*s+b*h+X*l+m*x,i[14]=g*n+b*u+X*I+m*v,i[15]=g*a+b*d+X*p+m*P,i},PIXI.autoDetectRenderer=function(t,e,i,r){t||(t=800),e||(e=600);var s=function(){try{return!!window.WebGLRenderingContext&&!!document.createElement("canvas").getContext("experimental-webgl")}catch(t){return!1}}();return s?new PIXI.WebGLRenderer(t,e,i,r):new PIXI.CanvasRenderer(t,e,i,r)},PIXI.shaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * vColor;","}"],PIXI.shaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform mat4 uMVMatrix;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","gl_Position = uMVMatrix * vec4(aVertexPosition, 1.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],PIXI.CompileVertexShader=function(t,e){return PIXI._CompileShader(t,e,t.VERTEX_SHADER)},PIXI.CompileFragmentShader=function(t,e){return PIXI._CompileShader(t,e,t.FRAGMENT_SHADER)},PIXI._CompileShader=function(t,e,i){var r=e.join("\n"),s=t.createShader(i);return t.shaderSource(s,r),t.compileShader(s),t.getShaderParameter(s,t.COMPILE_STATUS)?s:(alert(t.getShaderInfoLog(s)),null)},PIXI._defaultFrame=new PIXI.Rectangle(0,0,1,1),PIXI.gl,PIXI.WebGLRenderer=function(t,e,i,r){this.transparent=!!r,this.width=t||800,this.height=e||600,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height;var s=this;this.view.addEventListener("webglcontextlost",function(t){s.handleContextLost(t)},!1),this.view.addEventListener("webglcontextrestored",function(t){s.handleContextRestored(t)},!1),this.batchs=[];try{PIXI.gl=this.gl=this.view.getContext("experimental-webgl",{alpha:this.transparent,antialias:!1,premultipliedAlpha:!0})}catch(n){throw Error(" This browser does not support webGL. Try using the canvas renderer"+this)}this.initShaders();var a=this.gl;PIXI.WebGLRenderer.gl=a,this.batch=new PIXI.WebGLBatch(a),a.disable(a.DEPTH_TEST),a.disable(a.CULL_FACE),a.enable(a.BLEND),a.colorMask(!0,!0,!0,this.transparent),this.projectionMatrix=PIXI.mat4.create(),this.resize(this.width,this.height),this.contextLost=!1,this.stageRenderGroup=new PIXI.WebGLRenderGroup(this.gl)},PIXI.WebGLRenderer.constructor=PIXI.WebGLRenderer,PIXI.WebGLRenderer.getBatch=function(){return 0==PIXI._batchs.length?new PIXI.WebGLBatch(PIXI.WebGLRenderer.gl):PIXI._batchs.pop()},PIXI.WebGLRenderer.returnBatch=function(t){t.clean(),PIXI._batchs.push(t)},PIXI.WebGLRenderer.prototype.initShaders=function(){var t=this.gl,e=PIXI.CompileFragmentShader(t,PIXI.shaderFragmentSrc),i=PIXI.CompileVertexShader(t,PIXI.shaderVertexSrc);PIXI.shaderProgram=t.createProgram();var r=PIXI.shaderProgram;t.attachShader(r,i),t.attachShader(r,e),t.linkProgram(r),t.getProgramParameter(r,t.LINK_STATUS)||alert("Could not initialise shaders"),t.useProgram(r),r.vertexPositionAttribute=t.getAttribLocation(r,"aVertexPosition"),t.enableVertexAttribArray(r.vertexPositionAttribute),r.textureCoordAttribute=t.getAttribLocation(r,"aTextureCoord"),t.enableVertexAttribArray(r.textureCoordAttribute),r.colorAttribute=t.getAttribLocation(r,"aColor"),t.enableVertexAttribArray(r.colorAttribute),r.mvMatrixUniform=t.getUniformLocation(r,"uMVMatrix"),r.samplerUniform=t.getUniformLocation(r,"uSampler")},PIXI.WebGLRenderer.prototype.render=function(t){if(!this.contextLost){this.__stage!==t&&(this.__stage=t,this.stageRenderGroup.setRenderable(t)),PIXI.WebGLRenderer.updateTextures(),t.updateTransform();var e=this.gl;if(e.colorMask(!0,!0,!0,this.transparent),e.viewport(0,0,this.width,this.height),e.bindFramebuffer(e.FRAMEBUFFER,null),e.clearColor(t.backgroundColorSplit[0],t.backgroundColorSplit[1],t.backgroundColorSplit[2],this.transparent),e.clear(e.COLOR_BUFFER_BIT),this.stageRenderGroup.backgroundColor=t.backgroundColorSplit,this.stageRenderGroup.render(this.projectionMatrix),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),PIXI.Texture.frameUpdates.length>0){for(var i=0;PIXI.Texture.frameUpdates.length>i;i++)PIXI.Texture.frameUpdates[i].updateFrame=!1;PIXI.Texture.frameUpdates=[]}}},PIXI.WebGLRenderer.updateTextures=function(){for(var t=0;PIXI.texturesToUpdate.length>t;t++)this.updateTexture(PIXI.texturesToUpdate[t]);for(var t=0;PIXI.texturesToDestroy.length>t;t++)this.destroyTexture(PIXI.texturesToDestroy[t]);PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[]},PIXI.WebGLRenderer.updateTexture=function(t){var e=PIXI.gl;t._glTexture||(t._glTexture=e.createTexture()),t.hasLoaded&&(e.bindTexture(e.TEXTURE_2D,t._glTexture),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t.source),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),t._powerOf2?(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT)):(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)),e.bindTexture(e.TEXTURE_2D,null))},PIXI.WebGLRenderer.prototype.destroyTexture=function(t){var e=this.gl;t._glTexture&&(t._glTexture=e.createTexture(),e.deleteTexture(e.TEXTURE_2D,t._glTexture))},PIXI.WebGLRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e,this.gl.viewport(0,0,this.width,this.height);var i=this.projectionMatrix;i[0]=2/this.width,i[5]=-2/this.height,i[12]=-1,i[13]=1},PIXI.WebGLRenderer.prototype.handleContextLost=function(t){t.preventDefault(),this.contextLost=!0},PIXI.WebGLRenderer.prototype.handleContextRestored=function(){this.gl=this.view.getContext("experimental-webgl",{alpha:!0}),this.initShaders();for(var t=0;PIXI.TextureCache.length>t;t++)this.updateTexture(PIXI.TextureCache[t]);for(var t=0;this.batchs.length>t;t++)this.batchs[t].restoreLostContext(this.gl),this.batchs[t].dirty=!0;PIXI._restoreBatchs(this.gl),this.contextLost=!1},PIXI._batchs=[],PIXI._getBatch=function(t){return 0==PIXI._batchs.length?new PIXI.WebGLBatch(t):PIXI._batchs.pop()},PIXI._returnBatch=function(t){t.clean(),PIXI._batchs.push(t)},PIXI._restoreBatchs=function(t){for(var e=0;PIXI._batchs.length>e;e++)PIXI._batchs[e].restoreLostContext(t)},PIXI.WebGLBatch=function(t){this.gl=t,this.size=0,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer(),this.blendMode=PIXI.blendModes.NORMAL,this.dynamicSize=1},PIXI.WebGLBatch.constructor=PIXI.WebGLBatch,PIXI.WebGLBatch.prototype.clean=function(){this.verticies=[],this.uvs=[],this.indices=[],this.colors=[],this.dynamicSize=1,this.texture=null,this.last=null,this.size=0,this.head,this.tail},PIXI.WebGLBatch.prototype.restoreLostContext=function(t){this.gl=t,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer()},PIXI.WebGLBatch.prototype.init=function(t){t.batch=this,this.dirty=!0,this.blendMode=t.blendMode,this.texture=t.texture.baseTexture,this.head=t,this.tail=t,this.size=1,this.growBatch()},PIXI.WebGLBatch.prototype.insertBefore=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__prev;e.__prev=t,t.__next=e,i?(t.__prev=i,i.__next=t):this.head=t},PIXI.WebGLBatch.prototype.insertAfter=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__next;e.__next=t,t.__prev=e,i?(t.__next=i,i.__prev=t):this.tail=t},PIXI.WebGLBatch.prototype.remove=function(t){return this.size--,0==this.size?(t.batch=null,t.__prev=null,t.__next=null,void 0):(t.__prev?t.__prev.__next=t.__next:(this.head=t.__next,this.head.__prev=null),t.__next?t.__next.__prev=t.__prev:(this.tail=t.__prev,this.tail.__next=null),t.batch=null,t.__next=null,t.__prev=null,this.dirty=!0,void 0)},PIXI.WebGLBatch.prototype.split=function(t){this.dirty=!0;var e=new PIXI.WebGLBatch(this.gl);e.init(t),e.tail=this.tail,this.tail=t.__prev,this.tail.__next=null,t.__prev=null;for(var i=0;t;)i++,t.batch=e,t=t.__next;return e.size=i,this.size-=i,e},PIXI.WebGLBatch.prototype.merge=function(t){this.dirty=!0,this.tail.__next=t.head,t.head.__prev=this.tail,this.size+=t.size,this.tail=t.tail;for(var e=t.head;e;)e.batch=this,e=e.__next},PIXI.WebGLBatch.prototype.growBatch=function(){var t=this.gl;this.dynamicSize=1==this.size?1:1.5*this.size,this.verticies=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.vertexBuffer),t.bufferData(t.ARRAY_BUFFER,this.verticies,t.DYNAMIC_DRAW),this.uvs=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.uvBuffer),t.bufferData(t.ARRAY_BUFFER,this.uvs,t.DYNAMIC_DRAW),this.dirtyUVS=!0,this.colors=new Float32Array(4*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.colorBuffer),t.bufferData(t.ARRAY_BUFFER,this.colors,t.DYNAMIC_DRAW),this.dirtyColors=!0,this.indices=new Uint16Array(6*this.dynamicSize);for(var e=this.indices.length/6,i=0;e>i;i++){var r=6*i,s=4*i;this.indices[r+0]=s+0,this.indices[r+1]=s+1,this.indices[r+2]=s+2,this.indices[r+3]=s+0,this.indices[r+4]=s+2,this.indices[r+5]=s+3}t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,this.indexBuffer),t.bufferData(t.ELEMENT_ARRAY_BUFFER,this.indices,t.STATIC_DRAW)},PIXI.WebGLBatch.prototype.refresh=function(){this.gl,this.dynamicSizer;r++)i=this.batchs[r],i instanceof PIXI.WebGLBatch?this.batchs[r].render():i instanceof PIXI.TilingSprite?i.visible&&this.renderTilingSprite(i,t):i instanceof PIXI.Strip&&i.visible&&this.renderStrip(i,t)},PIXI.WebGLRenderGroup.prototype.renderSpecific=function(t,e){PIXI.WebGLRenderer.updateTextures();var i=this.gl;this.checkVisibility(t,t.visible),i.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform,!1,e);var r,s,n,a,o=t.renderable?t:this.getNextRenderable(t),h=o.batch;if(o instanceof PIXI.Sprite){h=o.batch;var u=h.head;if(u==o)r=0;else for(r=1;u.__next!=o;)r++,u=u.__next}else h=o;for(var d,c=t,l=t;l.children.length>0;)l=l.children[l.children.length-1],l.renderable&&(c=l);if(c instanceof PIXI.Sprite){d=c.batch;var u=d.head;if(u==c)n=0;else for(n=1;u.__next!=c;)n++,u=u.__next}else d=c;if(h==d)return h instanceof PIXI.WebGLBatch?h.render(r,n+1):h instanceof PIXI.TilingSprite?h.visible&&this.renderTilingSprite(h,e):h instanceof PIXI.Strip?h.visible&&this.renderStrip(h,e):h instanceof PIXI.CustomRenderable&&h.visible&&h.renderWebGL(this,e),void 0;s=this.batchs.indexOf(h),a=this.batchs.indexOf(d),h instanceof PIXI.WebGLBatch?h.render(r):h instanceof PIXI.TilingSprite?h.visible&&this.renderTilingSprite(h,e):h instanceof PIXI.Strip?h.visible&&this.renderStrip(h,e):h instanceof PIXI.CustomRenderable&&h.visible&&h.renderWebGL(this,e);for(var I=s+1;a>I;I++)renderable=this.batchs[I],renderable instanceof PIXI.WebGLBatch?this.batchs[I].render():renderable instanceof PIXI.TilingSprite?renderable.visible&&this.renderTilingSprite(renderable,e):renderable instanceof PIXI.Strip?renderable.visible&&this.renderStrip(renderable,e):renderable instanceof PIXI.CustomRenderable&&renderable.visible&&renderable.renderWebGL(this,e);d instanceof PIXI.WebGLBatch?d.render(0,n+1):d instanceof PIXI.TilingSprite?d.visible&&this.renderTilingSprite(d):d instanceof PIXI.Strip?d.visible&&this.renderStrip(d):d instanceof PIXI.CustomRenderable&&d.visible&&d.renderWebGL(this,e)},PIXI.WebGLRenderGroup.prototype.checkVisibility=function(t,e){for(var i=t.children,r=0;i.length>r;r++){var s=i[r];s.worldVisible=s.visible&&e,s.textureChange&&(s.textureChange=!1,s.worldVisible&&(this.removeDisplayObject(s),this.addDisplayObject(s))),s.children.length>0&&this.checkVisibility(s,s.worldVisible)}},PIXI.WebGLRenderGroup.prototype.addDisplayObject=function(t){if(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.__renderGroup=this,t.renderable){var e=this.getPreviousRenderable(t),i=this.getNextRenderable(t);if(t instanceof PIXI.Sprite){var r,s;if(e instanceof PIXI.Sprite){if(r=e.batch,r&&r.texture==t.texture.baseTexture&&r.blendMode==t.blendMode)return r.insertAfter(t,e),void 0}else r=e;if(i)if(i instanceof PIXI.Sprite){if(s=i.batch){if(s.texture==t.texture.baseTexture&&s.blendMode==t.blendMode)return s.insertBefore(t,i),void 0;if(s==r){var n=r.split(i),a=PIXI.WebGLRenderer.getBatch(),o=this.batchs.indexOf(r);return a.init(t),this.batchs.splice(o+1,0,a,n),void 0}}}else s=i;var a=PIXI.WebGLRenderer.getBatch();if(a.init(t),r){var o=this.batchs.indexOf(r);this.batchs.splice(o+1,0,a)}else this.batchs.push(a)}else t instanceof PIXI.TilingSprite?(this.initTilingSprite(t),this.batchs.push(t)):t instanceof PIXI.Strip&&(this.initStrip(t),this.batchs.push(t));this.batchUpdate=!0}},PIXI.WebGLRenderGroup.prototype.addDisplayObjectAndChildren=function(t){this.addDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.addDisplayObjectAndChildren(e[i])},PIXI.WebGLRenderGroup.prototype.removeDisplayObject=function(t){if(t.__renderGroup=null,t.renderable){var e;if(t instanceof PIXI.Sprite){var i=t.batch;if(!i)return;i.remove(t),0==i.size&&(e=i)}else e=t;if(e){var r=this.batchs.indexOf(e);if(-1==r)return;if(0==r||r==this.batchs.length-1)return this.batchs.splice(r,1),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e),void 0;if(this.batchs[r-1]instanceof PIXI.WebGLBatch&&this.batchs[r+1]instanceof PIXI.WebGLBatch&&this.batchs[r-1].texture==this.batchs[r+1].texture&&this.batchs[r-1].blendMode==this.batchs[r+1].blendMode)return this.batchs[r-1].merge(this.batchs[r+1]),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e),PIXI.WebGLRenderer.returnBatch(this.batchs[r+1]),this.batchs.splice(r,2),void 0;this.batchs.splice(r,1),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e)}}},PIXI.WebGLRenderGroup.prototype.removeDisplayObjectAndChildren=function(t){if(t.__renderGroup==this){this.removeDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.removeDisplayObjectAndChildren(e[i])}},PIXI.WebGLRenderGroup.prototype.getNextRenderable=function(t){var e=t;do{if(0==e.children.length){if(!e.parent)return null;for(;e.childIndex==e.parent.children.length-1;)if(e=e.parent,e==this.root||!e.parent){e=null;break}e&&(e=e.parent.children[e.childIndex+1])}else e=e.children[0];if(!e)break}while(!e.renderable||!e.__renderGroup);return e},PIXI.WebGLRenderGroup.prototype.getPreviousRenderable=function(t){var e=t;do{if(0==e.childIndex){if(e=e.parent,!e)return null}else for(e=e.parent.children[e.childIndex-1];0!=e.children.length;)e=e.children[e.children.length-1];if(e==this.root)break}while(!e.renderable||!e.__renderGroup);return e},PIXI.WebGLRenderGroup.prototype.initTilingSprite=function(t){var e=this.gl;t.verticies=new Float32Array([0,0,t.width,0,t.width,t.height,0,t.height]),t.uvs=new Float32Array([0,0,1,0,1,1,0,1]),t.colors=new Float32Array([1,1,1,1]),t.indices=new Uint16Array([0,1,3,2]),t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW),t.texture.baseTexture._glTexture?(e.bindTexture(e.TEXTURE_2D,t.texture.baseTexture._glTexture),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT),t.texture.baseTexture._powerOf2=!0):t.texture.baseTexture._powerOf2=!0},PIXI.WebGLRenderGroup.prototype.renderStrip=function(t,e){var i=this.gl,r=PIXI.shaderProgram,s=PIXI.mat3.toMat4(t.worldTransform);PIXI.mat4.transpose(s),PIXI.mat4.multiply(e,s,s),i.uniformMatrix4fv(r.mvMatrixUniform,!1,s),t.blendMode==PIXI.blendModes.NORMAL?i.blendFunc(i.ONE,i.ONE_MINUS_SRC_ALPHA):i.blendFunc(i.ONE,i.ONE_MINUS_SRC_COLOR),t.dirty?(t.dirty=!1,i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferData(i.ARRAY_BUFFER,t.verticies,i.STATIC_DRAW),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferData(i.ARRAY_BUFFER,t.uvs,i.STATIC_DRAW),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.bufferData(i.ARRAY_BUFFER,t.colors,i.STATIC_DRAW),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer),i.bufferData(i.ELEMENT_ARRAY_BUFFER,t.indices,i.STATIC_DRAW)):(i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.verticies),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer)),i.drawElements(i.TRIANGLE_STRIP,t.indices.length,i.UNSIGNED_SHORT,0),i.uniformMatrix4fv(r.mvMatrixUniform,!1,e)},PIXI.WebGLRenderGroup.prototype.renderTilingSprite=function(t,e){var i=this.gl;PIXI.shaderProgram;var r=t.tilePosition,s=t.tileScale,n=r.x/t.texture.baseTexture.width,a=r.y/t.texture.baseTexture.height,o=t.width/t.texture.baseTexture.width/s.x,h=t.height/t.texture.baseTexture.height/s.y;t.uvs[0]=0-n,t.uvs[1]=0-a,t.uvs[2]=1*o-n,t.uvs[3]=0-a,t.uvs[4]=1*o-n,t.uvs[5]=1*h-a,t.uvs[6]=0-n,t.uvs[7]=1*h-a,i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.uvs),this.renderStrip(t,e)},PIXI.WebGLRenderer.prototype.initStrip=function(t){var e=this.gl;this.shaderProgram,t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW)},PIXI.CanvasRenderer=function(t,e,i,r){this.transparent=r,this.width=t||800,this.height=e||600,this.refresh=!0,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height,this.count=0,this.context=this.view.getContext("2d")},PIXI.CanvasRenderer.constructor=PIXI.CanvasRenderer,PIXI.CanvasRenderer.prototype.render=function(t){PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[],t.updateTransform(),this.view.style.backgroundColor==t.backgroundColorString||this.transparent||(this.view.style.backgroundColor=t.backgroundColorString),this.context.setTransform(1,0,0,1,0,0),this.context.clearRect(0,0,this.width,this.height),this.renderDisplayObject(t),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),PIXI.Texture.frameUpdates.length>0&&(PIXI.Texture.frameUpdates=[])},PIXI.CanvasRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e},PIXI.CanvasRenderer.prototype.renderDisplayObject=function(t){var e=t.worldTransform,i=this.context;if(t.visible){if(t instanceof PIXI.Sprite){var r=t.texture.frame;r&&(i.globalAlpha=t.worldAlpha,i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),i.drawImage(t.texture.baseTexture.source,r.x,r.y,r.width,r.height,t.anchor.x*-r.width,t.anchor.y*-r.height,r.width,r.height))}else t instanceof PIXI.Strip?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderStrip(t)):t instanceof PIXI.TilingSprite?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderTilingSprite(t)):t instanceof PIXI.CustomRenderable&&t.renderCanvas(this);for(var s=0;t.children.length>s;s++)this.renderDisplayObject(t.children[s]);this.context.setTransform(1,0,0,1,0,0)}},PIXI.CanvasRenderer.prototype.renderStripFlat=function(t){var e=this.context,i=t.verticies;t.uvs;var r=i.length/2;this.count++,e.beginPath();for(var s=1;r-2>s;s++){var n=2*s,a=i[n],o=i[n+2],h=i[n+4],u=i[n+1],d=i[n+3],c=i[n+5];e.moveTo(a,u),e.lineTo(o,d),e.lineTo(h,c)}e.fillStyle="#FF0000",e.fill(),e.closePath()},PIXI.CanvasRenderer.prototype.renderTilingSprite=function(t){var e=this.context;t.__tilePattern||(t.__tilePattern=e.createPattern(t.texture.baseTexture.source,"repeat")),e.beginPath();var i=t.tilePosition,r=t.tileScale;e.scale(r.x,r.y),e.translate(i.x,i.y),e.fillStyle=t.__tilePattern,e.fillRect(-i.x,-i.y,t.width/r.x,t.height/r.y),e.scale(1/r.x,1/r.y),e.translate(-i.x,-i.y),e.closePath()},PIXI.CanvasRenderer.prototype.renderStrip=function(t){var e=this.context,i=t.verticies,r=t.uvs,s=i.length/2;this.count++;for(var n=1;s-2>n;n++){var a=2*n,o=i[a],h=i[a+2],u=i[a+4],d=i[a+1],c=i[a+3],l=i[a+5],I=r[a]*t.texture.width,p=r[a+2]*t.texture.width,f=r[a+4]*t.texture.width,x=r[a+1]*t.texture.height,v=r[a+3]*t.texture.height,P=r[a+5]*t.texture.height;e.save(),e.beginPath(),e.moveTo(o,d),e.lineTo(h,c),e.lineTo(u,l),e.closePath(),e.clip();var g=I*v+x*f+p*P-v*f-x*p-I*P,b=o*v+x*u+h*P-v*u-x*h-o*P,X=I*h+o*f+p*u-h*f-o*p-I*u,m=I*v*u+x*h*f+o*p*P-o*v*f-x*p*u-I*h*P,T=d*v+x*l+c*P-v*l-x*c-d*P,y=I*c+d*f+p*l-c*f-d*p-I*l,_=I*v*l+x*c*f+d*p*P-d*v*f-x*p*l-I*c*P;e.transform(b/g,T/g,X/g,y/g,m/g,_/g),e.drawImage(t.texture.baseTexture.source,0,0),e.restore()}},PIXI.Strip=function(t,e,i){PIXI.DisplayObjectContainer.call(this),this.texture=t,this.blendMode=PIXI.blendModes.NORMAL;try{this.uvs=new Float32Array([0,1,1,1,1,0,0,1]),this.verticies=new Float32Array([0,0,0,0,0,0,0,0,0]),this.colors=new Float32Array([1,1,1,1]),this.indices=new Uint16Array([0,1,2,3])}catch(r){this.uvs=[0,1,1,1,1,0,0,1],this.verticies=[0,0,0,0,0,0,0,0,0],this.colors=[1,1,1,1],this.indices=[0,1,2,3]}this.width=e,this.height=i,t.baseTexture.hasLoaded?(this.width=this.texture.frame.width,this.height=this.texture.frame.height,this.updateFrame=!0):(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},PIXI.Strip.constructor=PIXI.Strip,PIXI.Strip.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Strip.prototype.setTexture=function(t){this.texture=t,this.width=t.frame.width,this.height=t.frame.height,this.updateFrame=!0},PIXI.Strip.prototype.onTextureUpdate=function(){this.updateFrame=!0},PIXI.Rope=function(t,e){PIXI.Strip.call(this,t),this.points=e;try{this.verticies=new Float32Array(4*e.length),this.uvs=new Float32Array(4*e.length),this.colors=new Float32Array(2*e.length),this.indices=new Uint16Array(2*e.length)}catch(i){this.verticies=verticies,this.uvs=uvs,this.colors=colors,this.indices=indices}this.refresh()},PIXI.Rope.constructor=PIXI.Rope,PIXI.Rope.prototype=Object.create(PIXI.Strip.prototype),PIXI.Rope.prototype.refresh=function(){var t=this.points;if(!(1>t.length)){var e=this.uvs,i=this.indices,r=this.colors,s=t[0],n=t[0];this.count-=.2,e[0]=0,e[1]=1,e[2]=0,e[3]=1,r[0]=1,r[1]=1,i[0]=0,i[1]=1;for(var a=t.length,o=1;a>o;o++){var n=t[o],h=4*o,u=o/(a-1);o%2?(e[h]=u,e[h+1]=0,e[h+2]=u,e[h+3]=1):(e[h]=u,e[h+1]=0,e[h+2]=u,e[h+3]=1),h=2*o,r[h]=1,r[h+1]=1,h=2*o,i[h]=h,i[h+1]=h+1,s=n}}},PIXI.Rope.prototype.updateTransform=function(){var t=this.points;if(!(1>t.length)){var e,i=this.verticies,r=t[0],s={x:0,y:0},n=t[0];this.count-=.2,i[0]=n.x+s.x,i[1]=n.y+s.y,i[2]=n.x-s.x,i[3]=n.y-s.y;for(var a=t.length,o=1;a>o;o++){var n=t[o],h=4*o;e=t.length-1>o?t[o+1]:n,s.y=-(e.x-r.x),s.x=e.y-r.y;var u=10*(1-o/(a-1));u>1&&(u=1);var d=Math.sqrt(s.x*s.x+s.y*s.y),c=this.texture.height/2;s.x/=d,s.y/=d,s.x*=c,s.y*=c,i[h]=n.x+s.x,i[h+1]=n.y+s.y,i[h+2]=n.x-s.x,i[h+3]=n.y-s.y,r=n}PIXI.DisplayObjectContainer.prototype.updateTransform.call(this)}},PIXI.Rope.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0},PIXI.TilingSprite=function(t,e,i){PIXI.DisplayObjectContainer.call(this),this.texture=t,this.width=e,this.height=i,this.renderable=!0,this.tileScale=new PIXI.Point(1,1),this.tilePosition=new PIXI.Point(0,0),this.blendMode=PIXI.blendModes.NORMAL},PIXI.TilingSprite.constructor=PIXI.TilingSprite,PIXI.TilingSprite.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.TilingSprite.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0},PIXI.TilingSprite.prototype.onTextureUpdate=function(){this.updateFrame=!0},PIXI.CustomRenderable=function(){PIXI.DisplayObject.call(this)},PIXI.CustomRenderable.constructor=PIXI.CustomRenderable,PIXI.CustomRenderable.prototype=Object.create(PIXI.DisplayObject.prototype),PIXI.CustomRenderable.prototype.renderCanvas=function(){},PIXI.CustomRenderable.prototype.initWebGL=function(){},PIXI.CustomRenderable.prototype.renderWebGL=function(){},PIXI.BaseTextureCache={},PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[],PIXI.BaseTexture=function(t){if(PIXI.EventTarget.call(this),this.width=100,this.height=100,this.source=t,t){if(this.source instanceof Image)if(this.source.complete)this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,PIXI.texturesToUpdate.push(this);else{var e=this;this.source.onload=function(){e.hasLoaded=!0,e.width=e.source.width,e.height=e.source.height,PIXI.texturesToUpdate.push(e),e.dispatchEvent({type:"loaded",content:e})}}else this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,PIXI.texturesToUpdate.push(this);this._powerOf2=!1}},PIXI.BaseTexture.constructor=PIXI.BaseTexture,PIXI.BaseTexture.prototype.destroy=function(){this.source instanceof Image&&(this.source.src=null),this.source=null,PIXI.texturesToDestroy.push(this)},PIXI.BaseTexture.fromImage=function(t,e){var i=PIXI.BaseTextureCache[t];if(!i){var r=new Image;e&&(r.crossOrigin=""),r.src=t,i=new PIXI.BaseTexture(r),PIXI.BaseTextureCache[t]=i}return i},PIXI.TextureCache={},PIXI.FrameCache={},PIXI.Texture=function(t,e){if(PIXI.EventTarget.call(this),e||(this.noFrame=!0,e=new PIXI.Rectangle(0,0,1,1)),this.trim=new PIXI.Point,t instanceof PIXI.Texture&&(t=t.baseTexture),this.baseTexture=t,this.frame=e,this.scope=this,t.hasLoaded)this.noFrame&&(e=new PIXI.Rectangle(0,0,t.width,t.height)),this.setFrame(e);else{var i=this;t.addEventListener("loaded",function(){i.onBaseTextureLoaded()})}},PIXI.Texture.constructor=PIXI.Texture,PIXI.Texture.prototype.onBaseTextureLoaded=function(){var t=this.baseTexture;t.removeEventListener("loaded",this.onLoaded),this.noFrame&&(this.frame=new PIXI.Rectangle(0,0,t.width,t.height)),this.noFrame=!1,this.width=this.frame.width,this.height=this.frame.height,this.scope.dispatchEvent({type:"update",content:this})},PIXI.Texture.prototype.destroy=function(t){t&&this.baseTexture.destroy()},PIXI.Texture.prototype.setFrame=function(t){if(this.frame=t,this.width=t.width,this.height=t.height,t.x+t.width>this.baseTexture.width||t.y+t.height>this.baseTexture.height)throw Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);this.updateFrame=!0,PIXI.Texture.frameUpdates.push(this)},PIXI.Texture.fromImage=function(t,e){var i=PIXI.TextureCache[t];return i||(i=new PIXI.Texture(PIXI.BaseTexture.fromImage(t,e)),PIXI.TextureCache[t]=i),i},PIXI.Texture.fromFrame=function(t){var e=PIXI.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache "+this);return e},PIXI.Texture.fromCanvas=function(t){var e=new PIXI.BaseTexture(t);return new PIXI.Texture(e)},PIXI.Texture.addTextureToCache=function(t,e){PIXI.TextureCache[e]=t},PIXI.Texture.removeTextureFromCache=function(t){var e=PIXI.TextureCache[t];return PIXI.TextureCache[t]=null,e},PIXI.Texture.frameUpdates=[],PIXI.RenderTexture=function(t,e){PIXI.EventTarget.call(this),this.width=t||100,this.height=e||100,this.indetityMatrix=PIXI.mat3.create(),this.frame=new PIXI.Rectangle(0,0,this.width,this.height),PIXI.gl?this.initWebGL():this.initCanvas()},PIXI.RenderTexture.constructor=PIXI.RenderTexture,PIXI.RenderTexture.prototype=Object.create(PIXI.Texture.prototype),PIXI.RenderTexture.prototype.initWebGL=function(){var t=PIXI.gl;this.glFramebuffer=t.createFramebuffer(),t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),this.glFramebuffer.width=this.width,this.glFramebuffer.height=this.height,this.baseTexture=new PIXI.BaseTexture,this.baseTexture.width=this.width,this.baseTexture.height=this.height,this.baseTexture._glTexture=t.createTexture(),t.bindTexture(t.TEXTURE_2D,this.baseTexture._glTexture),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,this.width,this.height,0,t.RGBA,t.UNSIGNED_BYTE,null),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),this.baseTexture.isRender=!0,t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,this.baseTexture._glTexture,0),this.projectionMatrix=PIXI.mat4.create(),this.projectionMatrix[5]=2/this.height,this.projectionMatrix[13]=-1,this.projectionMatrix[0]=2/this.width,this.projectionMatrix[12]=-1,this.render=this.renderWebGL},PIXI.RenderTexture.prototype.initCanvas=function(){this.renderer=new PIXI.CanvasRenderer(this.width,this.height,null,0),this.baseTexture=new PIXI.BaseTexture(this.renderer.view),this.frame=new PIXI.Rectangle(0,0,this.width,this.height),this.render=this.renderCanvas},PIXI.RenderTexture.prototype.renderWebGL=function(t,e){var i=PIXI.gl;i.colorMask(!0,!0,!0,!0),i.viewport(0,0,this.width,this.height),i.bindFramebuffer(i.FRAMEBUFFER,this.glFramebuffer),e&&(i.clearColor(0,0,0,0),i.clear(i.COLOR_BUFFER_BIT));var r=t.children;t.worldTransform=PIXI.mat3.create();for(var s=0,n=r.length;n>s;s++)r[s].updateTransform();var a=t.__renderGroup;a?t==a.root?a.render(this.projectionMatrix):a.renderSpecific(t,this.projectionMatrix):(this.renderGroup||(this.renderGroup=new PIXI.WebGLRenderGroup(i)),this.renderGroup.setRenderable(t),this.renderGroup.render(this.projectionMatrix))},PIXI.RenderTexture.prototype.renderCanvas=function(t,e){var i=t.children;t.worldTransform=PIXI.mat3.create();for(var r=0,s=i.length;s>r;r++)i[r].updateTransform();e&&this.renderer.context.clearRect(0,0,this.width,this.height),this.renderer.renderDisplayObject(t),PIXI.texturesToUpdate.push(this.baseTexture)},PIXI.AssetLoader=function(t){PIXI.EventTarget.call(this),this.assetURLs=t,this.crossorigin=!1,this.loadersByType={jpg:PIXI.ImageLoader,jpeg:PIXI.ImageLoader,png:PIXI.ImageLoader,gif:PIXI.ImageLoader,json:PIXI.SpriteSheetLoader,xml:PIXI.BitmapFontLoader,fnt:PIXI.BitmapFontLoader}},PIXI.AssetLoader.constructor=PIXI.AssetLoader,PIXI.AssetLoader.prototype.load=function(){var t=this;this.loadCount=this.assetURLs.length;for(var e=0;this.assetURLs.length>e;e++){var i=this.assetURLs[e],r=i.split(".").pop().toLowerCase(),s=this.loadersByType[r];if(!s)throw Error(r+" is an unsupported file type");var n=new s(i,this.crossorigin);n.addEventListener("loaded",function(){t.onAssetLoaded()}),n.load()}},PIXI.AssetLoader.prototype.onAssetLoaded=function(){this.loadCount--,this.dispatchEvent({type:"onProgress",content:this}),this.onProgress&&this.onProgress(),0==this.loadCount&&(this.dispatchEvent({type:"onComplete",content:this}),this.onComplete&&this.onComplete())},PIXI.SpriteSheetLoader=function(t,e){PIXI.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.frames={},this.crossorigin=e},PIXI.SpriteSheetLoader.constructor=PIXI.SpriteSheetLoader,PIXI.SpriteSheetLoader.prototype.load=function(){this.ajaxRequest=new AjaxRequest;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onJSONLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/json"),this.ajaxRequest.send(null)},PIXI.SpriteSheetLoader.prototype.onJSONLoaded=function(){if(4==this.ajaxRequest.readyState&&(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))){var jsonData=eval("("+this.ajaxRequest.responseText+")"),textureUrl=this.baseUrl+jsonData.meta.image,image=new PIXI.ImageLoader(textureUrl,this.crossorigin);this.texture=image.texture.baseTexture;var scope=this;image.addEventListener("loaded",function(){scope.onLoaded()});var frameData=jsonData.frames;for(var i in frameData){var rect=frameData[i].frame;rect&&(PIXI.TextureCache[i]=new PIXI.Texture(this.texture,{x:rect.x,y:rect.y,width:rect.w,height:rect.h}),frameData[i].trimmed&&(PIXI.TextureCache[i].realSize=frameData[i].spriteSourceSize,PIXI.TextureCache[i].trim.x=0))}image.load()}},PIXI.SpriteSheetLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},PIXI.ImageLoader=function(t,e){PIXI.EventTarget.call(this),this.texture=PIXI.Texture.fromImage(t,e)},PIXI.ImageLoader.constructor=PIXI.ImageLoader,PIXI.ImageLoader.prototype.load=function(){if(this.texture.baseTexture.hasLoaded)this.onLoaded();else{var t=this;this.texture.baseTexture.addEventListener("loaded",function(){t.onLoaded()})}},PIXI.ImageLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},PIXI.BitmapFontLoader=function(t,e){PIXI.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.crossorigin=e},PIXI.BitmapFontLoader.constructor=PIXI.BitmapFontLoader,PIXI.BitmapFontLoader.prototype.load=function(){this.ajaxRequest=new XMLHttpRequest;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onXMLLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/xml"),this.ajaxRequest.send(null)},PIXI.BitmapFontLoader.prototype.onXMLLoaded=function(){if(4==this.ajaxRequest.readyState&&(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))){var t=this.baseUrl+this.ajaxRequest.responseXML.getElementsByTagName("page")[0].attributes.getNamedItem("file").nodeValue,e=new PIXI.ImageLoader(t,this.crossorigin);this.texture=e.texture.baseTexture;var i={},r=this.ajaxRequest.responseXML.getElementsByTagName("info")[0],s=this.ajaxRequest.responseXML.getElementsByTagName("common")[0];i.font=r.attributes.getNamedItem("face").nodeValue,i.size=parseInt(r.attributes.getNamedItem("size").nodeValue,10),i.lineHeight=parseInt(s.attributes.getNamedItem("lineHeight").nodeValue,10),i.chars={};for(var n=this.ajaxRequest.responseXML.getElementsByTagName("char"),a=0;n.length>a;a++){var o=parseInt(n[a].attributes.getNamedItem("id").nodeValue,10),h={x:parseInt(n[a].attributes.getNamedItem("x").nodeValue,10),y:parseInt(n[a].attributes.getNamedItem("y").nodeValue,10),width:parseInt(n[a].attributes.getNamedItem("width").nodeValue,10),height:parseInt(n[a].attributes.getNamedItem("height").nodeValue,10)};PIXI.TextureCache[o]=new PIXI.Texture(this.texture,h),i.chars[o]={xOffset:parseInt(n[a].attributes.getNamedItem("xoffset").nodeValue,10),yOffset:parseInt(n[a].attributes.getNamedItem("yoffset").nodeValue,10),xAdvance:parseInt(n[a].attributes.getNamedItem("xadvance").nodeValue,10),kerning:{}}}var u=this.ajaxRequest.responseXML.getElementsByTagName("kerning");for(a=0;u.length>a;a++){var d=parseInt(u[a].attributes.getNamedItem("first").nodeValue,10),c=parseInt(u[a].attributes.getNamedItem("second").nodeValue,10),l=parseInt(u[a].attributes.getNamedItem("amount").nodeValue,10);i.chars[c].kerning[d]=l}PIXI.BitmapText.fonts[i.font]=i;var I=this;e.addEventListener("loaded",function(){I.onLoaded()}),e.load()}},PIXI.BitmapFontLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=PIXI),exports.PIXI=PIXI):root.PIXI=PIXI}).call(this); \ No newline at end of file diff --git a/docs/classes/WebGLRenderer.html b/docs/classes/WebGLRenderer.html index 581cb5a..fcef6b6 100644 --- a/docs/classes/WebGLRenderer.html +++ b/docs/classes/WebGLRenderer.html @@ -498,7 +498,7 @@ - src/pixi/renderers/WebGLRenderer.js:283 + src/pixi/renderers/WebGLRenderer.js:284

diff --git a/docs/data.json b/docs/data.json index 9b4a49d..4b27831 100644 --- a/docs/data.json +++ b/docs/data.json @@ -1388,35 +1388,35 @@ }, { "file": "src/pixi/renderers/WebGLRenderGroup.js", - "line": 523, + "line": 527, "access": "private", "tagname": "", "class": "WebGLBatch" }, { "file": "src/pixi/renderers/WebGLRenderGroup.js", - "line": 607, + "line": 613, "access": "private", "tagname": "", "class": "WebGLBatch" }, { "file": "src/pixi/renderers/WebGLRenderGroup.js", - "line": 663, + "line": 669, "access": "private", "tagname": "", "class": "WebGLBatch" }, { "file": "src/pixi/renderers/WebGLRenderGroup.js", - "line": 740, + "line": 746, "access": "private", "tagname": "", "class": "WebGLBatch" }, { "file": "src/pixi/renderers/WebGLRenderGroup.js", - "line": 777, + "line": 783, "access": "private", "tagname": "", "class": "WebGLBatch" @@ -1465,14 +1465,14 @@ }, { "file": "src/pixi/renderers/WebGLRenderer.js", - "line": 232, + "line": 225, "access": "private", "tagname": "", "class": "WebGLRenderer" }, { "file": "src/pixi/renderers/WebGLRenderer.js", - "line": 283, + "line": 284, "description": "resizes the webGL view to the specified width and height", "itemtype": "method", "name": "resize", @@ -1492,14 +1492,14 @@ }, { "file": "src/pixi/renderers/WebGLRenderer.js", - "line": 307, + "line": 308, "access": "private", "tagname": "", "class": "WebGLRenderer" }, { "file": "src/pixi/renderers/WebGLRenderer.js", - "line": 316, + "line": 317, "access": "private", "tagname": "", "class": "WebGLRenderer" @@ -2908,23 +2908,23 @@ }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderGroup.js:523" + "line": " src/pixi/renderers/WebGLRenderGroup.js:527" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderGroup.js:607" + "line": " src/pixi/renderers/WebGLRenderGroup.js:613" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderGroup.js:663" + "line": " src/pixi/renderers/WebGLRenderGroup.js:669" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderGroup.js:740" + "line": " src/pixi/renderers/WebGLRenderGroup.js:746" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderGroup.js:777" + "line": " src/pixi/renderers/WebGLRenderGroup.js:783" }, { "message": "Missing item type", @@ -2944,15 +2944,15 @@ }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderer.js:232" + "line": " src/pixi/renderers/WebGLRenderer.js:225" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderer.js:307" + "line": " src/pixi/renderers/WebGLRenderer.js:308" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderer.js:316" + "line": " src/pixi/renderers/WebGLRenderer.js:317" }, { "message": "Missing item type", diff --git a/docs/files/src_pixi_renderers_WebGLRenderGroup.js.html b/docs/files/src_pixi_renderers_WebGLRenderGroup.js.html index 7222602..42bcabd 100644 --- a/docs/files/src_pixi_renderers_WebGLRenderGroup.js.html +++ b/docs/files/src_pixi_renderers_WebGLRenderGroup.js.html @@ -177,6 +177,8 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + //PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. @@ -215,6 +217,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + //PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -683,7 +687,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/docs/files/src_pixi_renderers_WebGLRenderer.js.html b/docs/files/src_pixi_renderers_WebGLRenderer.js.html index 0383c4d..551dd19 100644 --- a/docs/files/src_pixi_renderers_WebGLRenderer.js.html +++ b/docs/files/src_pixi_renderers_WebGLRenderer.js.html @@ -306,15 +306,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -366,9 +359,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -400,7 +402,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) diff --git a/examples/example 1 - Basics/pixi.js b/examples/example 1 - Basics/pixi.js index f29080a..3478cf4 100644 --- a/examples/example 1 - Basics/pixi.js +++ b/examples/example 1 - Basics/pixi.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/examples/example 10 - Text/pixi.js b/examples/example 10 - Text/pixi.js index f29080a..3478cf4 100644 --- a/examples/example 10 - Text/pixi.js +++ b/examples/example 10 - Text/pixi.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/examples/example 11 - RenderTexture/index.html b/examples/example 11 - RenderTexture/index.html index efd342b..e4acf76 100644 --- a/examples/example 11 - RenderTexture/index.html +++ b/examples/example 11 - RenderTexture/index.html @@ -15,7 +15,7 @@ diff --git a/examples/example 11 - RenderTexture/pixi.js b/examples/example 11 - RenderTexture/pixi.js index f29080a..3478cf4 100644 --- a/examples/example 11 - RenderTexture/pixi.js +++ b/examples/example 11 - RenderTexture/pixi.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/examples/example 2 - SpriteSheet/pixi.js b/examples/example 2 - SpriteSheet/pixi.js index f29080a..3478cf4 100644 --- a/examples/example 2 - SpriteSheet/pixi.js +++ b/examples/example 2 - SpriteSheet/pixi.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/examples/example 3 - MovieClip/pixi.js b/examples/example 3 - MovieClip/pixi.js index f29080a..3478cf4 100755 --- a/examples/example 3 - MovieClip/pixi.js +++ b/examples/example 3 - MovieClip/pixi.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/examples/example 4 - Balls/pixi.js b/examples/example 4 - Balls/pixi.js index f29080a..3478cf4 100644 --- a/examples/example 4 - Balls/pixi.js +++ b/examples/example 4 - Balls/pixi.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/bin/pixi.dev.js b/bin/pixi.dev.js index f29080a..3478cf4 100644 --- a/bin/pixi.dev.js +++ b/bin/pixi.dev.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/bin/pixi.js b/bin/pixi.js index 5f2a13c..a6d54d1 100644 --- a/bin/pixi.js +++ b/bin/pixi.js @@ -4,10 +4,10 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php */ -(function(){function HEXtoRGB(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}function determineMatrixArrayType(){return PIXI.Matrix="undefined"!=typeof Float32Array?Float32Array:Array,PIXI.Matrix}var root=this,PIXI=PIXI||{};PIXI.Point=function(t,e){this.x=t||0,this.y=e||0},PIXI.Point.prototype.clone=function(){return new PIXI.Point(this.x,this.y)},PIXI.Point.constructor=PIXI.Point,PIXI.Rectangle=function(t,e,i,r){this.x=t||0,this.y=e||0,this.width=i||0,this.height=r||0},PIXI.Rectangle.prototype.clone=function(){return new PIXI.Rectangle(this.x,this.y,this.width,this.height)},PIXI.Rectangle.constructor=PIXI.Rectangle,PIXI.DisplayObject=function(){this.position=new PIXI.Point,this.scale=new PIXI.Point(1,1),this.pivot=new PIXI.Point(0,0),this.rotation=0,this.alpha=1,this.visible=!0,this.worldVisible=!1,this.parent=null,this.stage=null,this.hitArea=null,this.worldAlpha=1,this.color=[],this.worldTransform=PIXI.mat3.create(),this.localTransform=PIXI.mat3.create(),this.dynamic=!0,this._sr=0,this._cr=1,this.childIndex=0,this.renderable=!1,this.interactive=!1,this.buttonMode=!1},PIXI.DisplayObject.constructor=PIXI.DisplayObject,PIXI.DisplayObject.prototype.setInteractive=function(t){this.interactive=t,this.stage&&(this.stage.dirty=!0)},PIXI.DisplayObject.prototype.updateTransform=function(){this.rotation!=this.rotationCache&&(this.rotationCache=this.rotation,this._sr=Math.sin(this.rotation),this._cr=Math.cos(this.rotation));var t=this.localTransform,e=this.parent.worldTransform,i=this.worldTransform;t[0]=this._cr*this.scale.x,t[1]=-this._sr*this.scale.y,t[3]=this._sr*this.scale.x,t[4]=this._cr*this.scale.y;var r=this.pivot.x,s=this.pivot.y;t[2]=this.position.x-t[0]*r-s*t[1],t[5]=this.position.y-t[4]*s-r*t[3];var n=t[0],a=t[1],o=t[2],h=t[3],u=t[4],c=t[5],d=e[0],l=e[1],I=e[2],p=e[3],f=e[4],x=e[5];i[0]=d*n+l*h,i[1]=d*a+l*u,i[2]=d*o+l*c+I,i[3]=p*n+f*h,i[4]=p*a+f*u,i[5]=p*o+f*c+x,this.worldAlpha=this.alpha*this.parent.worldAlpha},PIXI.DisplayObjectContainer=function(){PIXI.DisplayObject.call(this),this.children=[],this.renderable=!1},PIXI.DisplayObjectContainer.constructor=PIXI.DisplayObjectContainer,PIXI.DisplayObjectContainer.prototype=Object.create(PIXI.DisplayObject.prototype),PIXI.DisplayObjectContainer.prototype.addChild=function(t){void 0!=t.parent&&t.parent.removeChild(t),t.parent=this,t.childIndex=this.children.length,this.children.push(t),this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},PIXI.DisplayObjectContainer.prototype.addChildAt=function(t,e){if(!(e>=0&&this.children.length>=e))throw Error(t+" The index "+e+" supplied is out of bounds "+this.children.length);void 0!=t.parent&&t.parent.removeChild(t),e==this.children.length?this.children.push(t):this.children.splice(e,0,t),t.parent=this,t.childIndex=e;for(var i=this.children.length,r=e;i>r;r++)this.children[r].childIndex=r;this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},PIXI.DisplayObjectContainer.prototype.swapChildren=function(t,e){var i=this.children.indexOf(t),r=this.children.indexOf(e);if(-1===i||-1===r)throw Error(t+" Both the supplied DisplayObjects must be a child of the caller "+this);this.stage&&(this.stage.__removeChild(t),this.stage.__removeChild(e),this.stage.__addChild(t),this.stage.__addChild(e)),t.childIndex=r,e.childIndex=i,this.children[i]=e,this.children[r]=t},PIXI.DisplayObjectContainer.prototype.getChildAt=function(t){if(t>=0&&this.children.length>t)return this.children[t];throw Error(child+" Both the supplied DisplayObjects must be a child of the caller "+this)},PIXI.DisplayObjectContainer.prototype.removeChild=function(t){var e=this.children.indexOf(t);if(-1===e)throw Error(t+" The supplied DisplayObject must be a child of the caller "+this);this.stage&&this.stage.__removeChild(t),t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.parent=void 0,this.children.splice(e,1);for(var i=e,r=this.children.length;r>i;i++)this.children[i].childIndex-=1},PIXI.DisplayObjectContainer.prototype.updateTransform=function(){if(this.visible){PIXI.DisplayObject.prototype.updateTransform.call(this);for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform()}},PIXI.blendModes={},PIXI.blendModes.NORMAL=0,PIXI.blendModes.SCREEN=1,PIXI.Sprite=function(t){PIXI.DisplayObjectContainer.call(this),this.anchor=new PIXI.Point,this.texture=t,this.blendMode=PIXI.blendModes.NORMAL,this._width=0,this._height=0,t.baseTexture.hasLoaded?this.updateFrame=!0:(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},PIXI.Sprite.constructor=PIXI.Sprite,PIXI.Sprite.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),Object.defineProperty(PIXI.Sprite.prototype,"width",{get:function(){return this.scale.x*this.texture.frame.width},set:function(t){this.scale.x=t/this.texture.frame.width,this._width=t}}),Object.defineProperty(PIXI.Sprite.prototype,"height",{get:function(){return this.scale.y*this.texture.frame.height},set:function(t){this.scale.y=t/this.texture.frame.height,this._height=t}}),PIXI.Sprite.prototype.setTexture=function(t){this.texture.baseTexture!=t.baseTexture&&(this.textureChange=!0),this.texture=t,this.updateFrame=!0},PIXI.Sprite.prototype.onTextureUpdate=function(){this._width&&(this.scale.x=this._width/this.texture.frame.width),this._height&&(this.scale.y=this._height/this.texture.frame.height),this.updateFrame=!0},PIXI.Sprite.fromFrame=function(t){var e=PIXI.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache"+this);return new PIXI.Sprite(e)},PIXI.Sprite.fromImage=function(t){var e=PIXI.Texture.fromImage(t);return new PIXI.Sprite(e)},PIXI.MovieClip=function(t){PIXI.Sprite.call(this,t[0]),this.textures=t,this.currentFrame=0,this.animationSpeed=1,this.loop=!0,this.onComplete=null,this.playing},PIXI.MovieClip.constructor=PIXI.MovieClip,PIXI.MovieClip.prototype=Object.create(PIXI.Sprite.prototype),PIXI.MovieClip.prototype.stop=function(){this.playing=!1},PIXI.MovieClip.prototype.play=function(){this.playing=!0},PIXI.MovieClip.prototype.gotoAndStop=function(t){this.playing=!1,this.currentFrame=t;var e=0|this.currentFrame+.5;this.setTexture(this.textures[e%this.textures.length])},PIXI.MovieClip.prototype.gotoAndPlay=function(t){this.currentFrame=t,this.playing=!0},PIXI.MovieClip.prototype.updateTransform=function(){if(PIXI.Sprite.prototype.updateTransform.call(this),this.playing){this.currentFrame+=this.animationSpeed;var t=0|this.currentFrame+.5;this.loop||this.textures.length>t?this.setTexture(this.textures[t%this.textures.length]):t>=this.textures.length&&(this.gotoAndStop(this.textures.length-1),this.onComplete&&this.onComplete())}},PIXI.Text=function(t,e){this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"),PIXI.Sprite.call(this,PIXI.Texture.fromCanvas(this.canvas)),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},PIXI.Text.constructor=PIXI.Text,PIXI.Text.prototype=Object.create(PIXI.Sprite.prototype),PIXI.Text.prototype.setStyle=function(t){t=t||{},t.font=t.font||"bold 20pt Arial",t.fill=t.fill||"black",t.align=t.align||"left",t.strokeThickness=t.strokeThickness||0,this.style=t,this.dirty=!0},PIXI.Sprite.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},PIXI.Text.prototype.updateText=function(){this.context.font=this.style.font;for(var t=this.text.split(/(?:\r\n|\r|\n)/),e=[],i=0,r=0;t.length>r;r++){var s=this.context.measureText(t[r]).width;e[r]=s,i=Math.max(i,s)}this.canvas.width=i+this.style.strokeThickness;var n=this.determineFontHeight("font: "+this.style.font+";")+this.style.strokeThickness;for(this.canvas.height=n*t.length,this.context.fillStyle=this.style.fill,this.context.font=this.style.font,this.context.strokeStyle=this.style.stroke,this.context.lineWidth=this.style.strokeThickness,this.context.textBaseline="top",r=0;t.length>r;r++){var a=new PIXI.Point(this.style.strokeThickness/2,this.style.strokeThickness/2+r*n);"right"==this.style.align?a.x+=i-e[r]:"center"==this.style.align&&(a.x+=(i-e[r])/2),this.style.stroke&&this.style.strokeThickness&&this.context.strokeText(t[r],a.x,a.y),this.style.fill&&this.context.fillText(t[r],a.x,a.y)}this.updateTexture()},PIXI.Text.prototype.updateTexture=function(){this.texture.baseTexture.width=this.canvas.width,this.texture.baseTexture.height=this.canvas.height,this.texture.frame.width=this.canvas.width,this.texture.frame.height=this.canvas.height,this._width=this.canvas.width,this._height=this.canvas.height,PIXI.texturesToUpdate.push(this.texture.baseTexture)},PIXI.Text.prototype.updateTransform=function(){this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype.updateTransform.call(this)},PIXI.Text.prototype.determineFontHeight=function(t){var e=PIXI.Text.heightCache[t];if(!e){var i=document.getElementsByTagName("body")[0],r=document.createElement("div"),s=document.createTextNode("M");r.appendChild(s),r.setAttribute("style",t),i.appendChild(r),e=r.offsetHeight,PIXI.Text.heightCache[t]=e,i.removeChild(r)}return e},PIXI.Text.prototype.destroy=function(t){t&&this.texture.destroy()},PIXI.Text.heightCache={},PIXI.BitmapText=function(t,e){PIXI.DisplayObjectContainer.call(this),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},PIXI.BitmapText.constructor=PIXI.BitmapText,PIXI.BitmapText.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.BitmapText.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},PIXI.BitmapText.prototype.setStyle=function(t){t=t||{},t.align=t.align||"left",this.style=t;var e=t.font.split(" ");this.fontName=e[e.length-1],this.fontSize=e.length>=2?parseInt(e[e.length-2],10):PIXI.BitmapText.fonts[this.fontName].size,this.dirty=!0},PIXI.BitmapText.prototype.updateText=function(){for(var t=PIXI.BitmapText.fonts[this.fontName],e=new PIXI.Point,i=null,r=[],s=0,n=[],a=0,o=this.fontSize/t.size,h=0;this.text.length>h;h++){var u=this.text.charCodeAt(h);if(/(?:\r\n|\r|\n)/.test(this.text.charAt(h)))n.push(e.x),s=Math.max(s,e.x),a++,e.x=0,e.y+=t.lineHeight,i=null;else{var c=t.chars[u];c&&(i&&c[i]&&(e.x+=c.kerning[i]),r.push({line:a,charCode:u,position:new PIXI.Point(e.x+c.xOffset,e.y+c.yOffset)}),e.x+=c.xAdvance,i=u)}}n.push(e.x),s=Math.max(s,e.x);var d=[];for(h=0;a>=h;h++){var l=0;"right"==this.style.align?l=s-n[h]:"center"==this.style.align&&(l=(s-n[h])/2),d.push(l)}for(h=0;r.length>h;h++){var I=PIXI.Sprite.fromFrame(r[h].charCode);I.position.x=(r[h].position.x+d[r[h].line])*o,I.position.y=r[h].position.y*o,I.scale.x=I.scale.y=o,this.addChild(I)}this.width=e.x*o,this.height=(e.y+t.lineHeight)*o},PIXI.BitmapText.prototype.updateTransform=function(){if(this.dirty){for(;this.children.length>0;)this.removeChild(this.getChildAt(0));this.updateText(),this.dirty=!1}PIXI.DisplayObjectContainer.prototype.updateTransform.call(this)},PIXI.BitmapText.fonts={},PIXI.InteractionManager=function(t){this.stage=t,this.tempPoint=new PIXI.Point,this.mouseoverEnabled=!0,this.mouse=new PIXI.InteractionData,this.touchs={},this.pool=[],this.interactiveItems=[],this.last=0},PIXI.InteractionManager.constructor=PIXI.InteractionManager,PIXI.InteractionManager.prototype.collectInteractiveSprite=function(t,e){for(var i=t.children,r=i.length,s=r-1;s>=0;s--){var n=i[s];n.interactive?(e.interactiveChildren=!0,this.interactiveItems.push(n),n.children.length>0&&this.collectInteractiveSprite(n,n)):(n.__iParent=null,n.children.length>0&&this.collectInteractiveSprite(n,e))}},PIXI.InteractionManager.prototype.setTarget=function(t){window.navigator.msPointerEnabled&&(t.view.style["-ms-content-zooming"]="none",t.view.style["-ms-touch-action"]="none"),this.target=t,t.view.addEventListener("mousemove",this.onMouseMove.bind(this),!0),t.view.addEventListener("mousedown",this.onMouseDown.bind(this),!0),document.body.addEventListener("mouseup",this.onMouseUp.bind(this),!0),t.view.addEventListener("mouseout",this.onMouseUp.bind(this),!0),t.view.addEventListener("touchstart",this.onTouchStart.bind(this),!0),t.view.addEventListener("touchend",this.onTouchEnd.bind(this),!0),t.view.addEventListener("touchmove",this.onTouchMove.bind(this),!0)},PIXI.InteractionManager.prototype.update=function(){if(this.target){var t=Date.now(),e=t-this.last;if(e=30*e/1e3,!(1>e)){if(this.last=t,this.dirty){this.dirty=!1,this.interactiveItems.length;for(var i=0;this.interactiveItems.length>i;i++)this.interactiveItems[i].interactiveChildren=!1;this.interactiveItems=[],this.stage.interactive&&this.interactiveItems.push(this.stage),this.collectInteractiveSprite(this.stage,this.stage)}var r=this.interactiveItems.length;this.target.view.style.cursor="default";for(var i=0;r>i;i++){var s=this.interactiveItems[i];s.visible&&(s.mouseover||s.mouseout||s.buttonMode)&&(s.__hit=this.hitTest(s,this.mouse),s.__hit?(s.buttonMode&&(this.target.view.style.cursor="pointer"),s.__isOver||(s.mouseover&&s.mouseover(this.mouse),s.__isOver=!0)):s.__isOver&&(s.mouseout&&s.mouseout(this.mouse),s.__isOver=!1))}}}},PIXI.InteractionManager.prototype.onMouseMove=function(t){t.preventDefault();var e=this.target.view.getBoundingClientRect();this.mouse.global.x=(t.clientX-e.left)*(this.target.width/e.width),this.mouse.global.y=(t.clientY-e.top)*(this.target.height/e.height);var i=this.interactiveItems.length;this.mouse.global;for(var r=0;i>r;r++){var s=this.interactiveItems[r];s.mousemove&&s.mousemove(this.mouse)}},PIXI.InteractionManager.prototype.onMouseDown=function(t){t.preventDefault();var e=this.interactiveItems.length;this.mouse.global,this.stage;for(var i=0;e>i;i++){var r=this.interactiveItems[i];if((r.mousedown||r.click)&&(r.__mouseIsDown=!0,r.__hit=this.hitTest(r,this.mouse),r.__hit&&(r.mousedown&&r.mousedown(this.mouse),r.__isDown=!0,!r.interactiveChildren)))break}},PIXI.InteractionManager.prototype.onMouseUp=function(t){t.preventDefault(),this.mouse.global;for(var e=this.interactiveItems.length,i=!1,r=0;e>r;r++){var s=this.interactiveItems[r];(s.mouseup||s.mouseupoutside||s.click)&&(s.__hit=this.hitTest(s,this.mouse),s.__hit&&!i?(s.mouseup&&s.mouseup(this.mouse),s.__isDown&&s.click&&s.click(this.mouse),s.interactiveChildren||(i=!0)):s.__isDown&&s.mouseupoutside&&s.mouseupoutside(this.mouse),s.__isDown=!1)}},PIXI.InteractionManager.prototype.hitTest=function(t,e){var i=e.global;if(!t.visible)return!1;if(t instanceof PIXI.Sprite){var r=t.worldTransform,s=r[0],n=r[1],a=r[2],o=r[3],h=r[4],u=r[5],c=1/(s*h+n*-o),d=h*c*i.x+-n*c*i.y+(u*n-a*h)*c,l=s*c*i.y+-o*c*i.x+(-u*s+a*o)*c,I=t.texture.frame.width,p=t.texture.frame.height,f=-I*t.anchor.x;if(d>f&&f+I>d){var x=-p*t.anchor.y;if(l>x&&x+p>l)return e.target=t,!0}}else if(t.hitArea){var r=t.worldTransform,v=t.hitArea,s=r[0],n=r[1],a=r[2],o=r[3],h=r[4],u=r[5],c=1/(s*h+n*-o),d=h*c*i.x+-n*c*i.y+(u*n-a*h)*c,l=s*c*i.y+-o*c*i.x+(-u*s+a*o)*c,f=v.x;if(d>f&&f+v.width>d){var x=v.y;if(l>x&&x+v.height>l)return!0}}for(var P=t.children.length,g=0;P>g;g++){var b=t.children[g],X=this.hitTest(b,e);if(X)return!0}return!1},PIXI.InteractionManager.prototype.onTouchMove=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.touchs[s.identifier];n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height)}for(var a=this.interactiveItems.length,r=0;a>r;r++){var o=this.interactiveItems[r];o.touchmove&&o.touchmove(n)}},PIXI.InteractionManager.prototype.onTouchStart=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.pool.pop();n||(n=new PIXI.InteractionData),this.touchs[s.identifier]=n,n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height);for(var a=this.interactiveItems.length,o=0;a>o;o++){var h=this.interactiveItems[o];if((h.touchstart||h.tap)&&(h.__hit=this.hitTest(h,n),h.__hit&&(h.touchstart&&h.touchstart(n),h.__isDown=!0,h.__touchData=n,!h.interactiveChildren)))break}}},PIXI.InteractionManager.prototype.onTouchEnd=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.touchs[s.identifier],a=!1;n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var u=this.interactiveItems[h],c=u.__touchData;u.__hit=this.hitTest(u,n),c==n&&((u.touchend||u.tap)&&(u.__hit&&!a?(u.touchend&&u.touchend(n),u.__isDown&&u.tap&&u.tap(n),u.interactiveChildren||(a=!0)):u.__isDown&&u.touchendoutside&&u.touchendoutside(n),u.__isDown=!1),u.__touchData=null)}this.pool.push(n),this.touchs[s.identifier]=null}},PIXI.InteractionData=function(){this.global=new PIXI.Point,this.local=new PIXI.Point,this.target},PIXI.InteractionData.prototype.getLocalPosition=function(t){var e=t.worldTransform,i=this.global,r=e[0],s=e[1],n=e[2],a=e[3],o=e[4],h=e[5],u=1/(r*o+s*-a);return new PIXI.Point(o*u*i.x+-s*u*i.y+(h*s-n*o)*u,r*u*i.y+-a*u*i.x+(-h*r+n*a)*u)},PIXI.InteractionData.constructor=PIXI.InteractionData,PIXI.Stage=function(t,e){PIXI.DisplayObjectContainer.call(this),this.worldTransform=PIXI.mat3.create(),this.__childrenAdded=[],this.__childrenRemoved=[],this.childIndex=0,this.stage=this,this.stage.hitArea=new PIXI.Rectangle(0,0,1e5,1e5),this.interactive=!!e,this.interactionManager=new PIXI.InteractionManager(this),this.setBackgroundColor(t),this.worldVisible=!0},PIXI.Stage.constructor=PIXI.Stage,PIXI.Stage.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Stage.prototype.updateTransform=function(){this.worldAlpha=1;for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform();this.dirty&&(this.dirty=!1,this.interactionManager.dirty=!0),this.interactive&&this.interactionManager.update()},PIXI.Stage.prototype.setBackgroundColor=function(t){this.backgroundColor=t||0,this.backgroundColorSplit=HEXtoRGB(this.backgroundColor),this.backgroundColorString="#"+this.backgroundColor.toString(16)},PIXI.Stage.prototype.getMousePosition=function(){return this.interactionManager.mouse.global},PIXI.Stage.prototype.__addChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=this,t.children)for(var e=0;t.children.length>e;e++)this.__addChild(t.children[e])},PIXI.Stage.prototype.__removeChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=void 0,t.children)for(var e=0,i=t.children.length;i>e;e++)this.__removeChild(t.children[e])},window.requestAnimFrame=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(t){window.setTimeout(t,1e3/60)}}(),"function"!=typeof Function.prototype.bind&&(Function.prototype.bind=function(){var t=Array.prototype.slice;return function(e){function i(){var n=s.concat(t.call(arguments));r.apply(this instanceof i?this:e,n)}var r=this,s=t.call(arguments,1);if("function"!=typeof r)throw new TypeError;return i.prototype=function n(t){return t&&(n.prototype=t),this instanceof n?void 0:new n}(r.prototype),i}}());var AjaxRequest=function(){var t=["Msxml2.XMLHTTP","Microsoft.XMLHTTP"];if(!window.ActiveXObject)return window.XMLHttpRequest?new XMLHttpRequest:!1;for(var e=0;t.length>e;e++)try{return new ActiveXObject(t[e])}catch(i){}};PIXI.EventTarget=function(){var t={};this.addEventListener=this.on=function(e,i){void 0===t[e]&&(t[e]=[]),-1===t[e].indexOf(i)&&t[e].push(i)},this.dispatchEvent=this.emit=function(e){for(var i in t[e.type])t[e.type][i](e)},this.removeEventListener=this.off=function(e,i){var r=t[e].indexOf(i);-1!==r&&t[e].splice(r,1)}},determineMatrixArrayType(),PIXI.mat3={},PIXI.mat3.create=function(){var t=new PIXI.Matrix(9);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},PIXI.mat4={},PIXI.mat4.create=function(){var t=new PIXI.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},PIXI.mat3.multiply=function(t,e,i){i||(i=t);var r=t[0],s=t[1],n=t[2],a=t[3],o=t[4],h=t[5],u=t[6],c=t[7],d=t[8],l=e[0],I=e[1],p=e[2],f=e[3],x=e[4],v=e[5],P=e[6],g=e[7],b=e[8];return i[0]=l*r+I*a+p*u,i[1]=l*s+I*o+p*c,i[2]=l*n+I*h+p*d,i[3]=f*r+x*a+v*u,i[4]=f*s+x*o+v*c,i[5]=f*n+x*h+v*d,i[6]=P*r+g*a+b*u,i[7]=P*s+g*o+b*c,i[8]=P*n+g*h+b*d,i},PIXI.mat3.toMat4=function(t,e){return e||(e=PIXI.mat4.create()),e[15]=1,e[14]=0,e[13]=0,e[12]=0,e[11]=0,e[10]=t[8],e[9]=t[7],e[8]=t[6],e[7]=0,e[6]=t[5],e[5]=t[4],e[4]=t[3],e[3]=0,e[2]=t[2],e[1]=t[1],e[0]=t[0],e},PIXI.mat4.create=function(){var t=new PIXI.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},PIXI.mat4.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],s=t[3],n=t[6],a=t[7],o=t[11];return t[1]=t[4],t[2]=t[8],t[3]=t[12],t[4]=i,t[6]=t[9],t[7]=t[13],t[8]=r,t[9]=n,t[11]=t[14],t[12]=s,t[13]=a,t[14]=o,t}return e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=t[1],e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=t[2],e[9]=t[6],e[10]=t[10],e[11]=t[14],e[12]=t[3],e[13]=t[7],e[14]=t[11],e[15]=t[15],e},PIXI.mat4.multiply=function(t,e,i){i||(i=t);var r=t[0],s=t[1],n=t[2],a=t[3],o=t[4],h=t[5],u=t[6],c=t[7],d=t[8],l=t[9],I=t[10],p=t[11],f=t[12],x=t[13],v=t[14],P=t[15],g=e[0],b=e[1],X=e[2],m=e[3];return i[0]=g*r+b*o+X*d+m*f,i[1]=g*s+b*h+X*l+m*x,i[2]=g*n+b*u+X*I+m*v,i[3]=g*a+b*c+X*p+m*P,g=e[4],b=e[5],X=e[6],m=e[7],i[4]=g*r+b*o+X*d+m*f,i[5]=g*s+b*h+X*l+m*x,i[6]=g*n+b*u+X*I+m*v,i[7]=g*a+b*c+X*p+m*P,g=e[8],b=e[9],X=e[10],m=e[11],i[8]=g*r+b*o+X*d+m*f,i[9]=g*s+b*h+X*l+m*x,i[10]=g*n+b*u+X*I+m*v,i[11]=g*a+b*c+X*p+m*P,g=e[12],b=e[13],X=e[14],m=e[15],i[12]=g*r+b*o+X*d+m*f,i[13]=g*s+b*h+X*l+m*x,i[14]=g*n+b*u+X*I+m*v,i[15]=g*a+b*c+X*p+m*P,i},PIXI.autoDetectRenderer=function(t,e,i,r){t||(t=800),e||(e=600);var s=function(){try{return!!window.WebGLRenderingContext&&!!document.createElement("canvas").getContext("experimental-webgl")}catch(t){return!1}}();return s?new PIXI.WebGLRenderer(t,e,i,r):new PIXI.CanvasRenderer(t,e,i,r)},PIXI.shaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * vColor;","}"],PIXI.shaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform mat4 uMVMatrix;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","gl_Position = uMVMatrix * vec4(aVertexPosition, 1.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],PIXI.CompileVertexShader=function(t,e){return PIXI._CompileShader(t,e,t.VERTEX_SHADER)},PIXI.CompileFragmentShader=function(t,e){return PIXI._CompileShader(t,e,t.FRAGMENT_SHADER)},PIXI._CompileShader=function(t,e,i){var r=e.join("\n"),s=t.createShader(i);return t.shaderSource(s,r),t.compileShader(s),t.getShaderParameter(s,t.COMPILE_STATUS)?s:(alert(t.getShaderInfoLog(s)),null)},PIXI._defaultFrame=new PIXI.Rectangle(0,0,1,1),PIXI.gl,PIXI.WebGLRenderer=function(t,e,i,r){this.transparent=!!r,this.width=t||800,this.height=e||600,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height;var s=this;this.view.addEventListener("webglcontextlost",function(t){s.handleContextLost(t)},!1),this.view.addEventListener("webglcontextrestored",function(t){s.handleContextRestored(t)},!1),this.batchs=[];try{PIXI.gl=this.gl=this.view.getContext("experimental-webgl",{alpha:this.transparent,antialias:!1,premultipliedAlpha:!0})}catch(n){throw Error(" This browser does not support webGL. Try using the canvas renderer"+this)}this.initShaders();var a=this.gl;PIXI.WebGLRenderer.gl=a,this.batch=new PIXI.WebGLBatch(a),a.disable(a.DEPTH_TEST),a.disable(a.CULL_FACE),a.enable(a.BLEND),a.colorMask(!0,!0,!0,this.transparent),this.projectionMatrix=PIXI.mat4.create(),this.resize(this.width,this.height),this.contextLost=!1,this.stageRenderGroup=new PIXI.WebGLRenderGroup(this.gl)},PIXI.WebGLRenderer.constructor=PIXI.WebGLRenderer,PIXI.WebGLRenderer.getBatch=function(){return 0==PIXI._batchs.length?new PIXI.WebGLBatch(PIXI.WebGLRenderer.gl):PIXI._batchs.pop()},PIXI.WebGLRenderer.returnBatch=function(t){t.clean(),PIXI._batchs.push(t)},PIXI.WebGLRenderer.prototype.initShaders=function(){var t=this.gl,e=PIXI.CompileFragmentShader(t,PIXI.shaderFragmentSrc),i=PIXI.CompileVertexShader(t,PIXI.shaderVertexSrc);PIXI.shaderProgram=t.createProgram();var r=PIXI.shaderProgram;t.attachShader(r,i),t.attachShader(r,e),t.linkProgram(r),t.getProgramParameter(r,t.LINK_STATUS)||alert("Could not initialise shaders"),t.useProgram(r),r.vertexPositionAttribute=t.getAttribLocation(r,"aVertexPosition"),t.enableVertexAttribArray(r.vertexPositionAttribute),r.textureCoordAttribute=t.getAttribLocation(r,"aTextureCoord"),t.enableVertexAttribArray(r.textureCoordAttribute),r.colorAttribute=t.getAttribLocation(r,"aColor"),t.enableVertexAttribArray(r.colorAttribute),r.mvMatrixUniform=t.getUniformLocation(r,"uMVMatrix"),r.samplerUniform=t.getUniformLocation(r,"uSampler")},PIXI.WebGLRenderer.prototype.render=function(t){if(!this.contextLost){this.__stage!==t&&(this.__stage=t,this.stageRenderGroup.setRenderable(t));for(var e=0;PIXI.texturesToUpdate.length>e;e++)this.updateTexture(PIXI.texturesToUpdate[e]);for(var e=0;PIXI.texturesToDestroy.length>e;e++)this.destroyTexture(PIXI.texturesToDestroy[e]);PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[],t.updateTransform();var i=this.gl;if(i.colorMask(!0,!0,!0,this.transparent),i.viewport(0,0,this.width,this.height),i.bindFramebuffer(i.FRAMEBUFFER,null),i.clearColor(t.backgroundColorSplit[0],t.backgroundColorSplit[1],t.backgroundColorSplit[2],this.transparent),i.clear(i.COLOR_BUFFER_BIT),this.stageRenderGroup.backgroundColor=t.backgroundColorSplit,this.stageRenderGroup.render(this.projectionMatrix),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),PIXI.Texture.frameUpdates.length>0){for(var e=0;PIXI.Texture.frameUpdates.length>e;e++)PIXI.Texture.frameUpdates[e].updateFrame=!1;PIXI.Texture.frameUpdates=[]}}},PIXI.WebGLRenderer.prototype.updateTexture=function(t){var e=this.gl;t._glTexture||(t._glTexture=e.createTexture()),t.hasLoaded&&(e.bindTexture(e.TEXTURE_2D,t._glTexture),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t.source),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),t._powerOf2?(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT)):(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)),e.bindTexture(e.TEXTURE_2D,null)),this.refreshBatchs=!0},PIXI.WebGLRenderer.prototype.destroyTexture=function(t){var e=this.gl;t._glTexture&&(t._glTexture=e.createTexture(),e.deleteTexture(e.TEXTURE_2D,t._glTexture))},PIXI.WebGLRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e,this.gl.viewport(0,0,this.width,this.height);var i=this.projectionMatrix;i[0]=2/this.width,i[5]=-2/this.height,i[12]=-1,i[13]=1},PIXI.WebGLRenderer.prototype.handleContextLost=function(t){t.preventDefault(),this.contextLost=!0},PIXI.WebGLRenderer.prototype.handleContextRestored=function(){this.gl=this.view.getContext("experimental-webgl",{alpha:!0}),this.initShaders();for(var t=0;PIXI.TextureCache.length>t;t++)this.updateTexture(PIXI.TextureCache[t]);for(var t=0;this.batchs.length>t;t++)this.batchs[t].restoreLostContext(this.gl),this.batchs[t].dirty=!0;PIXI._restoreBatchs(this.gl),this.contextLost=!1},PIXI._batchs=[],PIXI._getBatch=function(t){return 0==PIXI._batchs.length?new PIXI.WebGLBatch(t):PIXI._batchs.pop()},PIXI._returnBatch=function(t){t.clean(),PIXI._batchs.push(t)},PIXI._restoreBatchs=function(t){for(var e=0;PIXI._batchs.length>e;e++)PIXI._batchs[e].restoreLostContext(t)},PIXI.WebGLBatch=function(t){this.gl=t,this.size=0,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer(),this.blendMode=PIXI.blendModes.NORMAL,this.dynamicSize=1},PIXI.WebGLBatch.constructor=PIXI.WebGLBatch,PIXI.WebGLBatch.prototype.clean=function(){this.verticies=[],this.uvs=[],this.indices=[],this.colors=[],this.dynamicSize=1,this.texture=null,this.last=null,this.size=0,this.head,this.tail},PIXI.WebGLBatch.prototype.restoreLostContext=function(t){this.gl=t,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer()},PIXI.WebGLBatch.prototype.init=function(t){t.batch=this,this.dirty=!0,this.blendMode=t.blendMode,this.texture=t.texture.baseTexture,this.head=t,this.tail=t,this.size=1,this.growBatch()},PIXI.WebGLBatch.prototype.insertBefore=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__prev;e.__prev=t,t.__next=e,i?(t.__prev=i,i.__next=t):this.head=t},PIXI.WebGLBatch.prototype.insertAfter=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__next;e.__next=t,t.__prev=e,i?(t.__next=i,i.__prev=t):this.tail=t},PIXI.WebGLBatch.prototype.remove=function(t){return this.size--,0==this.size?(t.batch=null,t.__prev=null,t.__next=null,void 0):(t.__prev?t.__prev.__next=t.__next:(this.head=t.__next,this.head.__prev=null),t.__next?t.__next.__prev=t.__prev:(this.tail=t.__prev,this.tail.__next=null),t.batch=null,t.__next=null,t.__prev=null,this.dirty=!0,void 0)},PIXI.WebGLBatch.prototype.split=function(t){this.dirty=!0;var e=new PIXI.WebGLBatch(this.gl);e.init(t),e.tail=this.tail,this.tail=t.__prev,this.tail.__next=null,t.__prev=null;for(var i=0;t;)i++,t.batch=e,t=t.__next;return e.size=i,this.size-=i,e},PIXI.WebGLBatch.prototype.merge=function(t){this.dirty=!0,this.tail.__next=t.head,t.head.__prev=this.tail,this.size+=t.size,this.tail=t.tail;for(var e=t.head;e;)e.batch=this,e=e.__next},PIXI.WebGLBatch.prototype.growBatch=function(){var t=this.gl;this.dynamicSize=1==this.size?1:1.5*this.size,this.verticies=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.vertexBuffer),t.bufferData(t.ARRAY_BUFFER,this.verticies,t.DYNAMIC_DRAW),this.uvs=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.uvBuffer),t.bufferData(t.ARRAY_BUFFER,this.uvs,t.DYNAMIC_DRAW),this.dirtyUVS=!0,this.colors=new Float32Array(4*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.colorBuffer),t.bufferData(t.ARRAY_BUFFER,this.colors,t.DYNAMIC_DRAW),this.dirtyColors=!0,this.indices=new Uint16Array(6*this.dynamicSize);for(var e=this.indices.length/6,i=0;e>i;i++){var r=6*i,s=4*i;this.indices[r+0]=s+0,this.indices[r+1]=s+1,this.indices[r+2]=s+2,this.indices[r+3]=s+0,this.indices[r+4]=s+2,this.indices[r+5]=s+3}t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,this.indexBuffer),t.bufferData(t.ELEMENT_ARRAY_BUFFER,this.indices,t.STATIC_DRAW)},PIXI.WebGLBatch.prototype.refresh=function(){this.gl,this.dynamicSizei;i++)this.removeDisplayObjectAndChildren(this.toRemove[i]);this.toRemove=[],this.checkVisibility(this.root,this.root.visible);for(var r,i=0;this.batchs.length>i;i++)r=this.batchs[i],r instanceof PIXI.WebGLBatch?this.batchs[i].render():r instanceof PIXI.TilingSprite?r.visible&&this.renderTilingSprite(r,t):r instanceof PIXI.Strip&&r.visible&&this.renderStrip(r,t)},PIXI.WebGLRenderGroup.prototype.renderSpecific=function(t,e){var i=this.gl;this.checkVisibility(t,t.visible),i.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform,!1,e);var r,s,n,a,o=t.renderable?t:this.getNextRenderable(t),h=o.batch;if(o instanceof PIXI.Sprite){h=o.batch;var u=h.head;if(u==o)r=0;else for(r=1;u.__next!=o;)r++,u=u.__next}else h=o;for(var c,d=t,l=t;l.children.length>0;)l=l.children[l.children.length-1],l.renderable&&(d=l);if(d instanceof PIXI.Sprite){c=d.batch;var u=c.head;if(u==d)n=0;else for(n=1;u.__next!=d;)n++,u=u.__next}else c=d;if(h==c)return h instanceof PIXI.WebGLBatch?h.render(r,n+1):h instanceof PIXI.TilingSprite?h.visible&&this.renderTilingSprite(h,e):h instanceof PIXI.Strip?h.visible&&this.renderStrip(h,e):h instanceof PIXI.CustomRenderable&&h.visible&&h.renderWebGL(this,e),void 0;s=this.batchs.indexOf(h),a=this.batchs.indexOf(c),h instanceof PIXI.WebGLBatch?h.render(r):h instanceof PIXI.TilingSprite?h.visible&&this.renderTilingSprite(h,e):h instanceof PIXI.Strip?h.visible&&this.renderStrip(h,e):h instanceof PIXI.CustomRenderable&&h.visible&&h.renderWebGL(this,e);for(var I=s+1;a>I;I++)renderable=this.batchs[I],renderable instanceof PIXI.WebGLBatch?this.batchs[I].render():renderable instanceof PIXI.TilingSprite?renderable.visible&&this.renderTilingSprite(renderable,e):renderable instanceof PIXI.Strip?renderable.visible&&this.renderStrip(renderable,e):renderable instanceof PIXI.CustomRenderable&&renderable.visible&&renderable.renderWebGL(this,e);c instanceof PIXI.WebGLBatch?c.render(0,n+1):c instanceof PIXI.TilingSprite?c.visible&&this.renderTilingSprite(c):c instanceof PIXI.Strip?c.visible&&this.renderStrip(c):c instanceof PIXI.CustomRenderable&&c.visible&&c.renderWebGL(this,e)},PIXI.WebGLRenderGroup.prototype.checkVisibility=function(t,e){for(var i=t.children,r=0;i.length>r;r++){var s=i[r];s.worldVisible=s.visible&&e,s.textureChange&&(s.textureChange=!1,s.worldVisible&&(this.removeDisplayObject(s),this.addDisplayObject(s))),s.children.length>0&&this.checkVisibility(s,s.worldVisible)}},PIXI.WebGLRenderGroup.prototype.addDisplayObject=function(t){if(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.__renderGroup=this,t.renderable){var e=this.getPreviousRenderable(t),i=this.getNextRenderable(t);if(t instanceof PIXI.Sprite){var r,s;if(e instanceof PIXI.Sprite){if(r=e.batch,r&&r.texture==t.texture.baseTexture&&r.blendMode==t.blendMode)return r.insertAfter(t,e),void 0}else r=e;if(i)if(i instanceof PIXI.Sprite){if(s=i.batch){if(s.texture==t.texture.baseTexture&&s.blendMode==t.blendMode)return s.insertBefore(t,i),void 0;if(s==r){var n=r.split(i),a=PIXI.WebGLRenderer.getBatch(),o=this.batchs.indexOf(r);return a.init(t),this.batchs.splice(o+1,0,a,n),void 0}}}else s=i;var a=PIXI.WebGLRenderer.getBatch();if(a.init(t),r){var o=this.batchs.indexOf(r);this.batchs.splice(o+1,0,a)}else this.batchs.push(a)}else t instanceof PIXI.TilingSprite?(this.initTilingSprite(t),this.batchs.push(t)):t instanceof PIXI.Strip&&(this.initStrip(t),this.batchs.push(t));this.batchUpdate=!0}},PIXI.WebGLRenderGroup.prototype.addDisplayObjectAndChildren=function(t){this.addDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.addDisplayObjectAndChildren(e[i])},PIXI.WebGLRenderGroup.prototype.removeDisplayObject=function(t){if(t.__renderGroup=null,t.renderable){var e;if(t instanceof PIXI.Sprite){var i=t.batch;if(!i)return;i.remove(t),0==i.size&&(e=i)}else e=t;if(e){var r=this.batchs.indexOf(e);if(-1==r)return;if(0==r||r==this.batchs.length-1)return this.batchs.splice(r,1),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e),void 0;if(this.batchs[r-1]instanceof PIXI.WebGLBatch&&this.batchs[r+1]instanceof PIXI.WebGLBatch&&this.batchs[r-1].texture==this.batchs[r+1].texture&&this.batchs[r-1].blendMode==this.batchs[r+1].blendMode)return this.batchs[r-1].merge(this.batchs[r+1]),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e),PIXI.WebGLRenderer.returnBatch(this.batchs[r+1]),this.batchs.splice(r,2),void 0;this.batchs.splice(r,1),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e)}}},PIXI.WebGLRenderGroup.prototype.removeDisplayObjectAndChildren=function(t){if(t.__renderGroup==this){this.removeDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.removeDisplayObjectAndChildren(e[i])}},PIXI.WebGLRenderGroup.prototype.getNextRenderable=function(t){var e=t;do{if(0==e.children.length){if(!e.parent)return null;for(;e.childIndex==e.parent.children.length-1;)if(e=e.parent,e==this.root){e=null;break}e&&(e=e.parent.children[e.childIndex+1])}else e=e.children[0];if(!e)break}while(!e.renderable||!e.__renderGroup);return e},PIXI.WebGLRenderGroup.prototype.getPreviousRenderable=function(t){var e=t;do{if(0==e.childIndex){if(e=e.parent,!e)return null}else for(e=e.parent.children[e.childIndex-1];0!=e.children.length;)e=e.children[e.children.length-1];if(e==this.root)break}while(!e.renderable||!e.__renderGroup);return e},PIXI.WebGLRenderGroup.prototype.initTilingSprite=function(t){var e=this.gl;t.verticies=new Float32Array([0,0,t.width,0,t.width,t.height,0,t.height]),t.uvs=new Float32Array([0,0,1,0,1,1,0,1]),t.colors=new Float32Array([1,1,1,1]),t.indices=new Uint16Array([0,1,3,2]),t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW),t.texture.baseTexture._glTexture?(e.bindTexture(e.TEXTURE_2D,t.texture.baseTexture._glTexture),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT),t.texture.baseTexture._powerOf2=!0):t.texture.baseTexture._powerOf2=!0},PIXI.WebGLRenderGroup.prototype.renderStrip=function(t,e){var i=this.gl,r=PIXI.shaderProgram,s=PIXI.mat3.toMat4(t.worldTransform);PIXI.mat4.transpose(s),PIXI.mat4.multiply(e,s,s),i.uniformMatrix4fv(r.mvMatrixUniform,!1,s),t.blendMode==PIXI.blendModes.NORMAL?i.blendFunc(i.ONE,i.ONE_MINUS_SRC_ALPHA):i.blendFunc(i.ONE,i.ONE_MINUS_SRC_COLOR),t.dirty?(t.dirty=!1,i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferData(i.ARRAY_BUFFER,t.verticies,i.STATIC_DRAW),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferData(i.ARRAY_BUFFER,t.uvs,i.STATIC_DRAW),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.bufferData(i.ARRAY_BUFFER,t.colors,i.STATIC_DRAW),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer),i.bufferData(i.ELEMENT_ARRAY_BUFFER,t.indices,i.STATIC_DRAW)):(i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.verticies),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer)),i.drawElements(i.TRIANGLE_STRIP,t.indices.length,i.UNSIGNED_SHORT,0),i.uniformMatrix4fv(r.mvMatrixUniform,!1,e)},PIXI.WebGLRenderGroup.prototype.renderTilingSprite=function(t,e){var i=this.gl;PIXI.shaderProgram;var r=t.tilePosition,s=t.tileScale,n=r.x/t.texture.baseTexture.width,a=r.y/t.texture.baseTexture.height,o=t.width/t.texture.baseTexture.width/s.x,h=t.height/t.texture.baseTexture.height/s.y;t.uvs[0]=0-n,t.uvs[1]=0-a,t.uvs[2]=1*o-n,t.uvs[3]=0-a,t.uvs[4]=1*o-n,t.uvs[5]=1*h-a,t.uvs[6]=0-n,t.uvs[7]=1*h-a,i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.uvs),this.renderStrip(t,e)},PIXI.WebGLRenderer.prototype.initStrip=function(t){var e=this.gl;this.shaderProgram,t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW)},PIXI.CanvasRenderer=function(t,e,i,r){this.transparent=r,this.width=t||800,this.height=e||600,this.refresh=!0,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height,this.count=0,this.context=this.view.getContext("2d")},PIXI.CanvasRenderer.constructor=PIXI.CanvasRenderer,PIXI.CanvasRenderer.prototype.render=function(t){PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[],t.updateTransform(),this.view.style.backgroundColor==t.backgroundColorString||this.transparent||(this.view.style.backgroundColor=t.backgroundColorString),this.context.setTransform(1,0,0,1,0,0),this.context.clearRect(0,0,this.width,this.height),this.renderDisplayObject(t),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),PIXI.Texture.frameUpdates.length>0&&(PIXI.Texture.frameUpdates=[])},PIXI.CanvasRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e},PIXI.CanvasRenderer.prototype.renderDisplayObject=function(t){var e=t.worldTransform,i=this.context;if(t.visible){if(t instanceof PIXI.Sprite){var r=t.texture.frame;r&&(i.globalAlpha=t.worldAlpha,i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),i.drawImage(t.texture.baseTexture.source,r.x,r.y,r.width,r.height,t.anchor.x*-r.width,t.anchor.y*-r.height,r.width,r.height))}else t instanceof PIXI.Strip?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderStrip(t)):t instanceof PIXI.TilingSprite?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderTilingSprite(t)):t instanceof PIXI.CustomRenderable&&t.renderCanvas(this);for(var s=0;t.children.length>s;s++)this.renderDisplayObject(t.children[s]);this.context.setTransform(1,0,0,1,0,0)}},PIXI.CanvasRenderer.prototype.renderStripFlat=function(t){var e=this.context,i=t.verticies;t.uvs;var r=i.length/2;this.count++,e.beginPath();for(var s=1;r-2>s;s++){var n=2*s,a=i[n],o=i[n+2],h=i[n+4],u=i[n+1],c=i[n+3],d=i[n+5];e.moveTo(a,u),e.lineTo(o,c),e.lineTo(h,d)}e.fillStyle="#FF0000",e.fill(),e.closePath()},PIXI.CanvasRenderer.prototype.renderTilingSprite=function(t){var e=this.context;t.__tilePattern||(t.__tilePattern=e.createPattern(t.texture.baseTexture.source,"repeat")),e.beginPath();var i=t.tilePosition,r=t.tileScale;e.scale(r.x,r.y),e.translate(i.x,i.y),e.fillStyle=t.__tilePattern,e.fillRect(-i.x,-i.y,t.width/r.x,t.height/r.y),e.scale(1/r.x,1/r.y),e.translate(-i.x,-i.y),e.closePath()},PIXI.CanvasRenderer.prototype.renderStrip=function(t){var e=this.context,i=t.verticies,r=t.uvs,s=i.length/2;this.count++;for(var n=1;s-2>n;n++){var a=2*n,o=i[a],h=i[a+2],u=i[a+4],c=i[a+1],d=i[a+3],l=i[a+5],I=r[a]*t.texture.width,p=r[a+2]*t.texture.width,f=r[a+4]*t.texture.width,x=r[a+1]*t.texture.height,v=r[a+3]*t.texture.height,P=r[a+5]*t.texture.height;e.save(),e.beginPath(),e.moveTo(o,c),e.lineTo(h,d),e.lineTo(u,l),e.closePath(),e.clip();var g=I*v+x*f+p*P-v*f-x*p-I*P,b=o*v+x*u+h*P-v*u-x*h-o*P,X=I*h+o*f+p*u-h*f-o*p-I*u,m=I*v*u+x*h*f+o*p*P-o*v*f-x*p*u-I*h*P,T=c*v+x*l+d*P-v*l-x*d-c*P,y=I*d+c*f+p*l-d*f-c*p-I*l,_=I*v*l+x*d*f+c*p*P-c*v*f-x*p*l-I*d*P;e.transform(b/g,T/g,X/g,y/g,m/g,_/g),e.drawImage(t.texture.baseTexture.source,0,0),e.restore()}},PIXI.Strip=function(t,e,i){PIXI.DisplayObjectContainer.call(this),this.texture=t,this.blendMode=PIXI.blendModes.NORMAL;try{this.uvs=new Float32Array([0,1,1,1,1,0,0,1]),this.verticies=new Float32Array([0,0,0,0,0,0,0,0,0]),this.colors=new Float32Array([1,1,1,1]),this.indices=new Uint16Array([0,1,2,3])}catch(r){this.uvs=[0,1,1,1,1,0,0,1],this.verticies=[0,0,0,0,0,0,0,0,0],this.colors=[1,1,1,1],this.indices=[0,1,2,3]}this.width=e,this.height=i,t.baseTexture.hasLoaded?(this.width=this.texture.frame.width,this.height=this.texture.frame.height,this.updateFrame=!0):(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},PIXI.Strip.constructor=PIXI.Strip,PIXI.Strip.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Strip.prototype.setTexture=function(t){this.texture=t,this.width=t.frame.width,this.height=t.frame.height,this.updateFrame=!0},PIXI.Strip.prototype.onTextureUpdate=function(){this.updateFrame=!0},PIXI.Rope=function(t,e){PIXI.Strip.call(this,t),this.points=e;try{this.verticies=new Float32Array(4*e.length),this.uvs=new Float32Array(4*e.length),this.colors=new Float32Array(2*e.length),this.indices=new Uint16Array(2*e.length)}catch(i){this.verticies=verticies,this.uvs=uvs,this.colors=colors,this.indices=indices}this.refresh()},PIXI.Rope.constructor=PIXI.Rope,PIXI.Rope.prototype=Object.create(PIXI.Strip.prototype),PIXI.Rope.prototype.refresh=function(){var t=this.points;if(!(1>t.length)){var e=this.uvs,i=this.indices,r=this.colors,s=t[0],n=t[0];this.count-=.2,e[0]=0,e[1]=1,e[2]=0,e[3]=1,r[0]=1,r[1]=1,i[0]=0,i[1]=1;for(var a=t.length,o=1;a>o;o++){var n=t[o],h=4*o,u=o/(a-1);o%2?(e[h]=u,e[h+1]=0,e[h+2]=u,e[h+3]=1):(e[h]=u,e[h+1]=0,e[h+2]=u,e[h+3]=1),h=2*o,r[h]=1,r[h+1]=1,h=2*o,i[h]=h,i[h+1]=h+1,s=n}}},PIXI.Rope.prototype.updateTransform=function(){var t=this.points;if(!(1>t.length)){var e,i=this.verticies,r=t[0],s={x:0,y:0},n=t[0];this.count-=.2,i[0]=n.x+s.x,i[1]=n.y+s.y,i[2]=n.x-s.x,i[3]=n.y-s.y;for(var a=t.length,o=1;a>o;o++){var n=t[o],h=4*o;e=t.length-1>o?t[o+1]:n,s.y=-(e.x-r.x),s.x=e.y-r.y;var u=10*(1-o/(a-1));u>1&&(u=1);var c=Math.sqrt(s.x*s.x+s.y*s.y),d=this.texture.height/2;s.x/=c,s.y/=c,s.x*=d,s.y*=d,i[h]=n.x+s.x,i[h+1]=n.y+s.y,i[h+2]=n.x-s.x,i[h+3]=n.y-s.y,r=n}PIXI.DisplayObjectContainer.prototype.updateTransform.call(this)}},PIXI.Rope.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0},PIXI.TilingSprite=function(t,e,i){PIXI.DisplayObjectContainer.call(this),this.texture=t,this.width=e,this.height=i,this.renderable=!0,this.tileScale=new PIXI.Point(1,1),this.tilePosition=new PIXI.Point(0,0),this.blendMode=PIXI.blendModes.NORMAL},PIXI.TilingSprite.constructor=PIXI.TilingSprite,PIXI.TilingSprite.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.TilingSprite.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0},PIXI.TilingSprite.prototype.onTextureUpdate=function(){this.updateFrame=!0},PIXI.CustomRenderable=function(){PIXI.DisplayObject.call(this)},PIXI.CustomRenderable.constructor=PIXI.CustomRenderable,PIXI.CustomRenderable.prototype=Object.create(PIXI.DisplayObject.prototype),PIXI.CustomRenderable.prototype.renderCanvas=function(){},PIXI.CustomRenderable.prototype.initWebGL=function(){},PIXI.CustomRenderable.prototype.renderWebGL=function(){},PIXI.BaseTextureCache={},PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[],PIXI.BaseTexture=function(t){if(PIXI.EventTarget.call(this),this.width=100,this.height=100,this.source=t,t){if(this.source instanceof Image)if(this.source.complete)this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,PIXI.texturesToUpdate.push(this);else{var e=this;this.source.onload=function(){e.hasLoaded=!0,e.width=e.source.width,e.height=e.source.height,PIXI.texturesToUpdate.push(e),e.dispatchEvent({type:"loaded",content:e})}}else this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,PIXI.texturesToUpdate.push(this);this._powerOf2=!1}},PIXI.BaseTexture.constructor=PIXI.BaseTexture,PIXI.BaseTexture.prototype.destroy=function(){this.source instanceof Image&&(this.source.src=null),this.source=null,PIXI.texturesToDestroy.push(this)},PIXI.BaseTexture.fromImage=function(t,e){var i=PIXI.BaseTextureCache[t];if(!i){var r=new Image;e&&(r.crossOrigin=""),r.src=t,i=new PIXI.BaseTexture(r),PIXI.BaseTextureCache[t]=i}return i},PIXI.TextureCache={},PIXI.FrameCache={},PIXI.Texture=function(t,e){if(PIXI.EventTarget.call(this),e||(this.noFrame=!0,e=new PIXI.Rectangle(0,0,1,1)),this.trim=new PIXI.Point,t instanceof PIXI.Texture&&(t=t.baseTexture),this.baseTexture=t,this.frame=e,this.scope=this,t.hasLoaded)this.noFrame&&(e=new PIXI.Rectangle(0,0,t.width,t.height)),this.setFrame(e);else{var i=this;t.addEventListener("loaded",function(){i.onBaseTextureLoaded()})}},PIXI.Texture.constructor=PIXI.Texture,PIXI.Texture.prototype.onBaseTextureLoaded=function(){var t=this.baseTexture;t.removeEventListener("loaded",this.onLoaded),this.noFrame&&(this.frame=new PIXI.Rectangle(0,0,t.width,t.height)),this.noFrame=!1,this.width=this.frame.width,this.height=this.frame.height,this.scope.dispatchEvent({type:"update",content:this})},PIXI.Texture.prototype.destroy=function(t){t&&this.baseTexture.destroy()},PIXI.Texture.prototype.setFrame=function(t){if(this.frame=t,this.width=t.width,this.height=t.height,t.x+t.width>this.baseTexture.width||t.y+t.height>this.baseTexture.height)throw Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);this.updateFrame=!0,PIXI.Texture.frameUpdates.push(this)},PIXI.Texture.fromImage=function(t,e){var i=PIXI.TextureCache[t];return i||(i=new PIXI.Texture(PIXI.BaseTexture.fromImage(t,e)),PIXI.TextureCache[t]=i),i},PIXI.Texture.fromFrame=function(t){var e=PIXI.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache "+this);return e},PIXI.Texture.fromCanvas=function(t){var e=new PIXI.BaseTexture(t);return new PIXI.Texture(e)},PIXI.Texture.addTextureToCache=function(t,e){PIXI.TextureCache[e]=t},PIXI.Texture.removeTextureFromCache=function(t){var e=PIXI.TextureCache[t];return PIXI.TextureCache[t]=null,e},PIXI.Texture.frameUpdates=[],PIXI.RenderTexture=function(t,e){PIXI.EventTarget.call(this),this.width=t||100,this.height=e||100,this.indetityMatrix=PIXI.mat3.create(),this.frame=new PIXI.Rectangle(0,0,this.width,this.height),PIXI.gl?this.initWebGL():this.initCanvas()},PIXI.RenderTexture.constructor=PIXI.RenderTexture,PIXI.RenderTexture.prototype=Object.create(PIXI.Texture.prototype),PIXI.RenderTexture.prototype.initWebGL=function(){var t=PIXI.gl;this.glFramebuffer=t.createFramebuffer(),t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),this.glFramebuffer.width=this.width,this.glFramebuffer.height=this.height,this.baseTexture=new PIXI.BaseTexture,this.baseTexture.width=this.width,this.baseTexture.height=this.height,this.baseTexture._glTexture=t.createTexture(),t.bindTexture(t.TEXTURE_2D,this.baseTexture._glTexture),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,this.width,this.height,0,t.RGBA,t.UNSIGNED_BYTE,null),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),this.baseTexture.isRender=!0,t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,this.baseTexture._glTexture,0),this.projectionMatrix=PIXI.mat4.create(),this.projectionMatrix[5]=2/this.height,this.projectionMatrix[13]=-1,this.projectionMatrix[0]=2/this.width,this.projectionMatrix[12]=-1,this.render=this.renderWebGL},PIXI.RenderTexture.prototype.initCanvas=function(){this.renderer=new PIXI.CanvasRenderer(this.width,this.height,null,0),this.baseTexture=new PIXI.BaseTexture(this.renderer.view),this.frame=new PIXI.Rectangle(0,0,this.width,this.height),this.render=this.renderCanvas},PIXI.RenderTexture.prototype.renderWebGL=function(t,e){var i=PIXI.gl;i.colorMask(!0,!0,!0,!0),i.viewport(0,0,this.width,this.height),i.bindFramebuffer(i.FRAMEBUFFER,this.glFramebuffer),e&&(i.clearColor(0,0,0,0),i.clear(i.COLOR_BUFFER_BIT));var r=t.children;t.worldTransform=PIXI.mat3.create();for(var s=0,n=r.length;n>s;s++)r[s].updateTransform();var a=t.__renderGroup;a?t==a.root?a.render(this.projectionMatrix):a.renderSpecific(t,this.projectionMatrix):(this.renderGroup||(this.renderGroup=new PIXI.WebGLRenderGroup(i)),this.renderGroup.setRenderable(t),this.renderGroup.render(this.projectionMatrix))},PIXI.RenderTexture.prototype.renderCanvas=function(t,e){var i=t.children;t.worldTransform=PIXI.mat3.create();for(var r=0,s=i.length;s>r;r++)i[r].updateTransform();e&&this.renderer.context.clearRect(0,0,this.width,this.height),this.renderer.renderDisplayObject(t),PIXI.texturesToUpdate.push(this.baseTexture)},PIXI.AssetLoader=function(t){PIXI.EventTarget.call(this),this.assetURLs=t,this.crossorigin=!1,this.loadersByType={jpg:PIXI.ImageLoader,jpeg:PIXI.ImageLoader,png:PIXI.ImageLoader,gif:PIXI.ImageLoader,json:PIXI.SpriteSheetLoader,xml:PIXI.BitmapFontLoader,fnt:PIXI.BitmapFontLoader}},PIXI.AssetLoader.constructor=PIXI.AssetLoader,PIXI.AssetLoader.prototype.load=function(){var t=this;this.loadCount=this.assetURLs.length;for(var e=0;this.assetURLs.length>e;e++){var i=this.assetURLs[e],r=i.split(".").pop().toLowerCase(),s=this.loadersByType[r];if(!s)throw Error(r+" is an unsupported file type");var n=new s(i,this.crossorigin);n.addEventListener("loaded",function(){t.onAssetLoaded()}),n.load()}},PIXI.AssetLoader.prototype.onAssetLoaded=function(){this.loadCount--,this.dispatchEvent({type:"onProgress",content:this}),this.onProgress&&this.onProgress(),0==this.loadCount&&(this.dispatchEvent({type:"onComplete",content:this}),this.onComplete&&this.onComplete())},PIXI.SpriteSheetLoader=function(t,e){PIXI.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.frames={},this.crossorigin=e},PIXI.SpriteSheetLoader.constructor=PIXI.SpriteSheetLoader,PIXI.SpriteSheetLoader.prototype.load=function(){this.ajaxRequest=new AjaxRequest;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onJSONLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/json"),this.ajaxRequest.send(null)},PIXI.SpriteSheetLoader.prototype.onJSONLoaded=function(){if(4==this.ajaxRequest.readyState&&(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))){var jsonData=eval("("+this.ajaxRequest.responseText+")"),textureUrl=this.baseUrl+jsonData.meta.image,image=new PIXI.ImageLoader(textureUrl,this.crossorigin);this.texture=image.texture.baseTexture;var scope=this;image.addEventListener("loaded",function(){scope.onLoaded()});var frameData=jsonData.frames;for(var i in frameData){var rect=frameData[i].frame;rect&&(PIXI.TextureCache[i]=new PIXI.Texture(this.texture,{x:rect.x,y:rect.y,width:rect.w,height:rect.h}),frameData[i].trimmed&&(PIXI.TextureCache[i].realSize=frameData[i].spriteSourceSize,PIXI.TextureCache[i].trim.x=0))}image.load()}},PIXI.SpriteSheetLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},PIXI.ImageLoader=function(t,e){PIXI.EventTarget.call(this),this.texture=PIXI.Texture.fromImage(t,e)},PIXI.ImageLoader.constructor=PIXI.ImageLoader,PIXI.ImageLoader.prototype.load=function(){if(this.texture.baseTexture.hasLoaded)this.onLoaded();else{var t=this;this.texture.baseTexture.addEventListener("loaded",function(){t.onLoaded()})}},PIXI.ImageLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},PIXI.BitmapFontLoader=function(t,e){PIXI.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.crossorigin=e},PIXI.BitmapFontLoader.constructor=PIXI.BitmapFontLoader,PIXI.BitmapFontLoader.prototype.load=function(){this.ajaxRequest=new XMLHttpRequest;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onXMLLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/xml"),this.ajaxRequest.send(null)},PIXI.BitmapFontLoader.prototype.onXMLLoaded=function(){if(4==this.ajaxRequest.readyState&&(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))){var t=this.baseUrl+this.ajaxRequest.responseXML.getElementsByTagName("page")[0].attributes.getNamedItem("file").nodeValue,e=new PIXI.ImageLoader(t,this.crossorigin);this.texture=e.texture.baseTexture;var i={},r=this.ajaxRequest.responseXML.getElementsByTagName("info")[0],s=this.ajaxRequest.responseXML.getElementsByTagName("common")[0];i.font=r.attributes.getNamedItem("face").nodeValue,i.size=parseInt(r.attributes.getNamedItem("size").nodeValue,10),i.lineHeight=parseInt(s.attributes.getNamedItem("lineHeight").nodeValue,10),i.chars={};for(var n=this.ajaxRequest.responseXML.getElementsByTagName("char"),a=0;n.length>a;a++){var o=parseInt(n[a].attributes.getNamedItem("id").nodeValue,10),h={x:parseInt(n[a].attributes.getNamedItem("x").nodeValue,10),y:parseInt(n[a].attributes.getNamedItem("y").nodeValue,10),width:parseInt(n[a].attributes.getNamedItem("width").nodeValue,10),height:parseInt(n[a].attributes.getNamedItem("height").nodeValue,10)};PIXI.TextureCache[o]=new PIXI.Texture(this.texture,h),i.chars[o]={xOffset:parseInt(n[a].attributes.getNamedItem("xoffset").nodeValue,10),yOffset:parseInt(n[a].attributes.getNamedItem("yoffset").nodeValue,10),xAdvance:parseInt(n[a].attributes.getNamedItem("xadvance").nodeValue,10),kerning:{}}}var u=this.ajaxRequest.responseXML.getElementsByTagName("kerning");for(a=0;u.length>a;a++){var c=parseInt(u[a].attributes.getNamedItem("first").nodeValue,10),d=parseInt(u[a].attributes.getNamedItem("second").nodeValue,10),l=parseInt(u[a].attributes.getNamedItem("amount").nodeValue,10);i.chars[d].kerning[c]=l}PIXI.BitmapText.fonts[i.font]=i;var I=this;e.addEventListener("loaded",function(){I.onLoaded()}),e.load()}},PIXI.BitmapFontLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=PIXI),exports.PIXI=PIXI):root.PIXI=PIXI}).call(this); \ No newline at end of file +(function(){function HEXtoRGB(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}function determineMatrixArrayType(){return PIXI.Matrix="undefined"!=typeof Float32Array?Float32Array:Array,PIXI.Matrix}var root=this,PIXI=PIXI||{};PIXI.Point=function(t,e){this.x=t||0,this.y=e||0},PIXI.Point.prototype.clone=function(){return new PIXI.Point(this.x,this.y)},PIXI.Point.constructor=PIXI.Point,PIXI.Rectangle=function(t,e,i,r){this.x=t||0,this.y=e||0,this.width=i||0,this.height=r||0},PIXI.Rectangle.prototype.clone=function(){return new PIXI.Rectangle(this.x,this.y,this.width,this.height)},PIXI.Rectangle.constructor=PIXI.Rectangle,PIXI.DisplayObject=function(){this.position=new PIXI.Point,this.scale=new PIXI.Point(1,1),this.pivot=new PIXI.Point(0,0),this.rotation=0,this.alpha=1,this.visible=!0,this.worldVisible=!1,this.parent=null,this.stage=null,this.hitArea=null,this.worldAlpha=1,this.color=[],this.worldTransform=PIXI.mat3.create(),this.localTransform=PIXI.mat3.create(),this.dynamic=!0,this._sr=0,this._cr=1,this.childIndex=0,this.renderable=!1,this.interactive=!1,this.buttonMode=!1},PIXI.DisplayObject.constructor=PIXI.DisplayObject,PIXI.DisplayObject.prototype.setInteractive=function(t){this.interactive=t,this.stage&&(this.stage.dirty=!0)},PIXI.DisplayObject.prototype.updateTransform=function(){this.rotation!=this.rotationCache&&(this.rotationCache=this.rotation,this._sr=Math.sin(this.rotation),this._cr=Math.cos(this.rotation));var t=this.localTransform,e=this.parent.worldTransform,i=this.worldTransform;t[0]=this._cr*this.scale.x,t[1]=-this._sr*this.scale.y,t[3]=this._sr*this.scale.x,t[4]=this._cr*this.scale.y;var r=this.pivot.x,s=this.pivot.y;t[2]=this.position.x-t[0]*r-s*t[1],t[5]=this.position.y-t[4]*s-r*t[3];var n=t[0],a=t[1],o=t[2],h=t[3],u=t[4],d=t[5],c=e[0],l=e[1],I=e[2],p=e[3],f=e[4],x=e[5];i[0]=c*n+l*h,i[1]=c*a+l*u,i[2]=c*o+l*d+I,i[3]=p*n+f*h,i[4]=p*a+f*u,i[5]=p*o+f*d+x,this.worldAlpha=this.alpha*this.parent.worldAlpha},PIXI.DisplayObjectContainer=function(){PIXI.DisplayObject.call(this),this.children=[],this.renderable=!1},PIXI.DisplayObjectContainer.constructor=PIXI.DisplayObjectContainer,PIXI.DisplayObjectContainer.prototype=Object.create(PIXI.DisplayObject.prototype),PIXI.DisplayObjectContainer.prototype.addChild=function(t){void 0!=t.parent&&t.parent.removeChild(t),t.parent=this,t.childIndex=this.children.length,this.children.push(t),this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},PIXI.DisplayObjectContainer.prototype.addChildAt=function(t,e){if(!(e>=0&&this.children.length>=e))throw Error(t+" The index "+e+" supplied is out of bounds "+this.children.length);void 0!=t.parent&&t.parent.removeChild(t),e==this.children.length?this.children.push(t):this.children.splice(e,0,t),t.parent=this,t.childIndex=e;for(var i=this.children.length,r=e;i>r;r++)this.children[r].childIndex=r;this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},PIXI.DisplayObjectContainer.prototype.swapChildren=function(t,e){var i=this.children.indexOf(t),r=this.children.indexOf(e);if(-1===i||-1===r)throw Error(t+" Both the supplied DisplayObjects must be a child of the caller "+this);this.stage&&(this.stage.__removeChild(t),this.stage.__removeChild(e),this.stage.__addChild(t),this.stage.__addChild(e)),t.childIndex=r,e.childIndex=i,this.children[i]=e,this.children[r]=t},PIXI.DisplayObjectContainer.prototype.getChildAt=function(t){if(t>=0&&this.children.length>t)return this.children[t];throw Error(child+" Both the supplied DisplayObjects must be a child of the caller "+this)},PIXI.DisplayObjectContainer.prototype.removeChild=function(t){var e=this.children.indexOf(t);if(-1===e)throw Error(t+" The supplied DisplayObject must be a child of the caller "+this);this.stage&&this.stage.__removeChild(t),t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.parent=void 0,this.children.splice(e,1);for(var i=e,r=this.children.length;r>i;i++)this.children[i].childIndex-=1},PIXI.DisplayObjectContainer.prototype.updateTransform=function(){if(this.visible){PIXI.DisplayObject.prototype.updateTransform.call(this);for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform()}},PIXI.blendModes={},PIXI.blendModes.NORMAL=0,PIXI.blendModes.SCREEN=1,PIXI.Sprite=function(t){PIXI.DisplayObjectContainer.call(this),this.anchor=new PIXI.Point,this.texture=t,this.blendMode=PIXI.blendModes.NORMAL,this._width=0,this._height=0,t.baseTexture.hasLoaded?this.updateFrame=!0:(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},PIXI.Sprite.constructor=PIXI.Sprite,PIXI.Sprite.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),Object.defineProperty(PIXI.Sprite.prototype,"width",{get:function(){return this.scale.x*this.texture.frame.width},set:function(t){this.scale.x=t/this.texture.frame.width,this._width=t}}),Object.defineProperty(PIXI.Sprite.prototype,"height",{get:function(){return this.scale.y*this.texture.frame.height},set:function(t){this.scale.y=t/this.texture.frame.height,this._height=t}}),PIXI.Sprite.prototype.setTexture=function(t){this.texture.baseTexture!=t.baseTexture&&(this.textureChange=!0),this.texture=t,this.updateFrame=!0},PIXI.Sprite.prototype.onTextureUpdate=function(){this._width&&(this.scale.x=this._width/this.texture.frame.width),this._height&&(this.scale.y=this._height/this.texture.frame.height),this.updateFrame=!0},PIXI.Sprite.fromFrame=function(t){var e=PIXI.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache"+this);return new PIXI.Sprite(e)},PIXI.Sprite.fromImage=function(t){var e=PIXI.Texture.fromImage(t);return new PIXI.Sprite(e)},PIXI.MovieClip=function(t){PIXI.Sprite.call(this,t[0]),this.textures=t,this.currentFrame=0,this.animationSpeed=1,this.loop=!0,this.onComplete=null,this.playing},PIXI.MovieClip.constructor=PIXI.MovieClip,PIXI.MovieClip.prototype=Object.create(PIXI.Sprite.prototype),PIXI.MovieClip.prototype.stop=function(){this.playing=!1},PIXI.MovieClip.prototype.play=function(){this.playing=!0},PIXI.MovieClip.prototype.gotoAndStop=function(t){this.playing=!1,this.currentFrame=t;var e=0|this.currentFrame+.5;this.setTexture(this.textures[e%this.textures.length])},PIXI.MovieClip.prototype.gotoAndPlay=function(t){this.currentFrame=t,this.playing=!0},PIXI.MovieClip.prototype.updateTransform=function(){if(PIXI.Sprite.prototype.updateTransform.call(this),this.playing){this.currentFrame+=this.animationSpeed;var t=0|this.currentFrame+.5;this.loop||this.textures.length>t?this.setTexture(this.textures[t%this.textures.length]):t>=this.textures.length&&(this.gotoAndStop(this.textures.length-1),this.onComplete&&this.onComplete())}},PIXI.Text=function(t,e){this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"),PIXI.Sprite.call(this,PIXI.Texture.fromCanvas(this.canvas)),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},PIXI.Text.constructor=PIXI.Text,PIXI.Text.prototype=Object.create(PIXI.Sprite.prototype),PIXI.Text.prototype.setStyle=function(t){t=t||{},t.font=t.font||"bold 20pt Arial",t.fill=t.fill||"black",t.align=t.align||"left",t.strokeThickness=t.strokeThickness||0,this.style=t,this.dirty=!0},PIXI.Sprite.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},PIXI.Text.prototype.updateText=function(){this.context.font=this.style.font;for(var t=this.text.split(/(?:\r\n|\r|\n)/),e=[],i=0,r=0;t.length>r;r++){var s=this.context.measureText(t[r]).width;e[r]=s,i=Math.max(i,s)}this.canvas.width=i+this.style.strokeThickness;var n=this.determineFontHeight("font: "+this.style.font+";")+this.style.strokeThickness;for(this.canvas.height=n*t.length,this.context.fillStyle=this.style.fill,this.context.font=this.style.font,this.context.strokeStyle=this.style.stroke,this.context.lineWidth=this.style.strokeThickness,this.context.textBaseline="top",r=0;t.length>r;r++){var a=new PIXI.Point(this.style.strokeThickness/2,this.style.strokeThickness/2+r*n);"right"==this.style.align?a.x+=i-e[r]:"center"==this.style.align&&(a.x+=(i-e[r])/2),this.style.stroke&&this.style.strokeThickness&&this.context.strokeText(t[r],a.x,a.y),this.style.fill&&this.context.fillText(t[r],a.x,a.y)}this.updateTexture()},PIXI.Text.prototype.updateTexture=function(){this.texture.baseTexture.width=this.canvas.width,this.texture.baseTexture.height=this.canvas.height,this.texture.frame.width=this.canvas.width,this.texture.frame.height=this.canvas.height,this._width=this.canvas.width,this._height=this.canvas.height,PIXI.texturesToUpdate.push(this.texture.baseTexture)},PIXI.Text.prototype.updateTransform=function(){this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype.updateTransform.call(this)},PIXI.Text.prototype.determineFontHeight=function(t){var e=PIXI.Text.heightCache[t];if(!e){var i=document.getElementsByTagName("body")[0],r=document.createElement("div"),s=document.createTextNode("M");r.appendChild(s),r.setAttribute("style",t),i.appendChild(r),e=r.offsetHeight,PIXI.Text.heightCache[t]=e,i.removeChild(r)}return e},PIXI.Text.prototype.destroy=function(t){t&&this.texture.destroy()},PIXI.Text.heightCache={},PIXI.BitmapText=function(t,e){PIXI.DisplayObjectContainer.call(this),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},PIXI.BitmapText.constructor=PIXI.BitmapText,PIXI.BitmapText.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.BitmapText.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},PIXI.BitmapText.prototype.setStyle=function(t){t=t||{},t.align=t.align||"left",this.style=t;var e=t.font.split(" ");this.fontName=e[e.length-1],this.fontSize=e.length>=2?parseInt(e[e.length-2],10):PIXI.BitmapText.fonts[this.fontName].size,this.dirty=!0},PIXI.BitmapText.prototype.updateText=function(){for(var t=PIXI.BitmapText.fonts[this.fontName],e=new PIXI.Point,i=null,r=[],s=0,n=[],a=0,o=this.fontSize/t.size,h=0;this.text.length>h;h++){var u=this.text.charCodeAt(h);if(/(?:\r\n|\r|\n)/.test(this.text.charAt(h)))n.push(e.x),s=Math.max(s,e.x),a++,e.x=0,e.y+=t.lineHeight,i=null;else{var d=t.chars[u];d&&(i&&d[i]&&(e.x+=d.kerning[i]),r.push({line:a,charCode:u,position:new PIXI.Point(e.x+d.xOffset,e.y+d.yOffset)}),e.x+=d.xAdvance,i=u)}}n.push(e.x),s=Math.max(s,e.x);var c=[];for(h=0;a>=h;h++){var l=0;"right"==this.style.align?l=s-n[h]:"center"==this.style.align&&(l=(s-n[h])/2),c.push(l)}for(h=0;r.length>h;h++){var I=PIXI.Sprite.fromFrame(r[h].charCode);I.position.x=(r[h].position.x+c[r[h].line])*o,I.position.y=r[h].position.y*o,I.scale.x=I.scale.y=o,this.addChild(I)}this.width=e.x*o,this.height=(e.y+t.lineHeight)*o},PIXI.BitmapText.prototype.updateTransform=function(){if(this.dirty){for(;this.children.length>0;)this.removeChild(this.getChildAt(0));this.updateText(),this.dirty=!1}PIXI.DisplayObjectContainer.prototype.updateTransform.call(this)},PIXI.BitmapText.fonts={},PIXI.InteractionManager=function(t){this.stage=t,this.tempPoint=new PIXI.Point,this.mouseoverEnabled=!0,this.mouse=new PIXI.InteractionData,this.touchs={},this.pool=[],this.interactiveItems=[],this.last=0},PIXI.InteractionManager.constructor=PIXI.InteractionManager,PIXI.InteractionManager.prototype.collectInteractiveSprite=function(t,e){for(var i=t.children,r=i.length,s=r-1;s>=0;s--){var n=i[s];n.interactive?(e.interactiveChildren=!0,this.interactiveItems.push(n),n.children.length>0&&this.collectInteractiveSprite(n,n)):(n.__iParent=null,n.children.length>0&&this.collectInteractiveSprite(n,e))}},PIXI.InteractionManager.prototype.setTarget=function(t){window.navigator.msPointerEnabled&&(t.view.style["-ms-content-zooming"]="none",t.view.style["-ms-touch-action"]="none"),this.target=t,t.view.addEventListener("mousemove",this.onMouseMove.bind(this),!0),t.view.addEventListener("mousedown",this.onMouseDown.bind(this),!0),document.body.addEventListener("mouseup",this.onMouseUp.bind(this),!0),t.view.addEventListener("mouseout",this.onMouseUp.bind(this),!0),t.view.addEventListener("touchstart",this.onTouchStart.bind(this),!0),t.view.addEventListener("touchend",this.onTouchEnd.bind(this),!0),t.view.addEventListener("touchmove",this.onTouchMove.bind(this),!0)},PIXI.InteractionManager.prototype.update=function(){if(this.target){var t=Date.now(),e=t-this.last;if(e=30*e/1e3,!(1>e)){if(this.last=t,this.dirty){this.dirty=!1,this.interactiveItems.length;for(var i=0;this.interactiveItems.length>i;i++)this.interactiveItems[i].interactiveChildren=!1;this.interactiveItems=[],this.stage.interactive&&this.interactiveItems.push(this.stage),this.collectInteractiveSprite(this.stage,this.stage)}var r=this.interactiveItems.length;this.target.view.style.cursor="default";for(var i=0;r>i;i++){var s=this.interactiveItems[i];s.visible&&(s.mouseover||s.mouseout||s.buttonMode)&&(s.__hit=this.hitTest(s,this.mouse),s.__hit?(s.buttonMode&&(this.target.view.style.cursor="pointer"),s.__isOver||(s.mouseover&&s.mouseover(this.mouse),s.__isOver=!0)):s.__isOver&&(s.mouseout&&s.mouseout(this.mouse),s.__isOver=!1))}}}},PIXI.InteractionManager.prototype.onMouseMove=function(t){t.preventDefault();var e=this.target.view.getBoundingClientRect();this.mouse.global.x=(t.clientX-e.left)*(this.target.width/e.width),this.mouse.global.y=(t.clientY-e.top)*(this.target.height/e.height);var i=this.interactiveItems.length;this.mouse.global;for(var r=0;i>r;r++){var s=this.interactiveItems[r];s.mousemove&&s.mousemove(this.mouse)}},PIXI.InteractionManager.prototype.onMouseDown=function(t){t.preventDefault();var e=this.interactiveItems.length;this.mouse.global,this.stage;for(var i=0;e>i;i++){var r=this.interactiveItems[i];if((r.mousedown||r.click)&&(r.__mouseIsDown=!0,r.__hit=this.hitTest(r,this.mouse),r.__hit&&(r.mousedown&&r.mousedown(this.mouse),r.__isDown=!0,!r.interactiveChildren)))break}},PIXI.InteractionManager.prototype.onMouseUp=function(t){t.preventDefault(),this.mouse.global;for(var e=this.interactiveItems.length,i=!1,r=0;e>r;r++){var s=this.interactiveItems[r];(s.mouseup||s.mouseupoutside||s.click)&&(s.__hit=this.hitTest(s,this.mouse),s.__hit&&!i?(s.mouseup&&s.mouseup(this.mouse),s.__isDown&&s.click&&s.click(this.mouse),s.interactiveChildren||(i=!0)):s.__isDown&&s.mouseupoutside&&s.mouseupoutside(this.mouse),s.__isDown=!1)}},PIXI.InteractionManager.prototype.hitTest=function(t,e){var i=e.global;if(!t.visible)return!1;if(t instanceof PIXI.Sprite){var r=t.worldTransform,s=r[0],n=r[1],a=r[2],o=r[3],h=r[4],u=r[5],d=1/(s*h+n*-o),c=h*d*i.x+-n*d*i.y+(u*n-a*h)*d,l=s*d*i.y+-o*d*i.x+(-u*s+a*o)*d,I=t.texture.frame.width,p=t.texture.frame.height,f=-I*t.anchor.x;if(c>f&&f+I>c){var x=-p*t.anchor.y;if(l>x&&x+p>l)return e.target=t,!0}}else if(t.hitArea){var r=t.worldTransform,v=t.hitArea,s=r[0],n=r[1],a=r[2],o=r[3],h=r[4],u=r[5],d=1/(s*h+n*-o),c=h*d*i.x+-n*d*i.y+(u*n-a*h)*d,l=s*d*i.y+-o*d*i.x+(-u*s+a*o)*d,f=v.x;if(c>f&&f+v.width>c){var x=v.y;if(l>x&&x+v.height>l)return!0}}for(var P=t.children.length,g=0;P>g;g++){var b=t.children[g],X=this.hitTest(b,e);if(X)return!0}return!1},PIXI.InteractionManager.prototype.onTouchMove=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.touchs[s.identifier];n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height)}for(var a=this.interactiveItems.length,r=0;a>r;r++){var o=this.interactiveItems[r];o.touchmove&&o.touchmove(n)}},PIXI.InteractionManager.prototype.onTouchStart=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.pool.pop();n||(n=new PIXI.InteractionData),this.touchs[s.identifier]=n,n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height);for(var a=this.interactiveItems.length,o=0;a>o;o++){var h=this.interactiveItems[o];if((h.touchstart||h.tap)&&(h.__hit=this.hitTest(h,n),h.__hit&&(h.touchstart&&h.touchstart(n),h.__isDown=!0,h.__touchData=n,!h.interactiveChildren)))break}}},PIXI.InteractionManager.prototype.onTouchEnd=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.touchs[s.identifier],a=!1;n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var u=this.interactiveItems[h],d=u.__touchData;u.__hit=this.hitTest(u,n),d==n&&((u.touchend||u.tap)&&(u.__hit&&!a?(u.touchend&&u.touchend(n),u.__isDown&&u.tap&&u.tap(n),u.interactiveChildren||(a=!0)):u.__isDown&&u.touchendoutside&&u.touchendoutside(n),u.__isDown=!1),u.__touchData=null)}this.pool.push(n),this.touchs[s.identifier]=null}},PIXI.InteractionData=function(){this.global=new PIXI.Point,this.local=new PIXI.Point,this.target},PIXI.InteractionData.prototype.getLocalPosition=function(t){var e=t.worldTransform,i=this.global,r=e[0],s=e[1],n=e[2],a=e[3],o=e[4],h=e[5],u=1/(r*o+s*-a);return new PIXI.Point(o*u*i.x+-s*u*i.y+(h*s-n*o)*u,r*u*i.y+-a*u*i.x+(-h*r+n*a)*u)},PIXI.InteractionData.constructor=PIXI.InteractionData,PIXI.Stage=function(t,e){PIXI.DisplayObjectContainer.call(this),this.worldTransform=PIXI.mat3.create(),this.__childrenAdded=[],this.__childrenRemoved=[],this.childIndex=0,this.stage=this,this.stage.hitArea=new PIXI.Rectangle(0,0,1e5,1e5),this.interactive=!!e,this.interactionManager=new PIXI.InteractionManager(this),this.setBackgroundColor(t),this.worldVisible=!0},PIXI.Stage.constructor=PIXI.Stage,PIXI.Stage.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Stage.prototype.updateTransform=function(){this.worldAlpha=1;for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform();this.dirty&&(this.dirty=!1,this.interactionManager.dirty=!0),this.interactive&&this.interactionManager.update()},PIXI.Stage.prototype.setBackgroundColor=function(t){this.backgroundColor=t||0,this.backgroundColorSplit=HEXtoRGB(this.backgroundColor),this.backgroundColorString="#"+this.backgroundColor.toString(16)},PIXI.Stage.prototype.getMousePosition=function(){return this.interactionManager.mouse.global},PIXI.Stage.prototype.__addChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=this,t.children)for(var e=0;t.children.length>e;e++)this.__addChild(t.children[e])},PIXI.Stage.prototype.__removeChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=void 0,t.children)for(var e=0,i=t.children.length;i>e;e++)this.__removeChild(t.children[e])},window.requestAnimFrame=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(t){window.setTimeout(t,1e3/60)}}(),"function"!=typeof Function.prototype.bind&&(Function.prototype.bind=function(){var t=Array.prototype.slice;return function(e){function i(){var n=s.concat(t.call(arguments));r.apply(this instanceof i?this:e,n)}var r=this,s=t.call(arguments,1);if("function"!=typeof r)throw new TypeError;return i.prototype=function n(t){return t&&(n.prototype=t),this instanceof n?void 0:new n}(r.prototype),i}}());var AjaxRequest=function(){var t=["Msxml2.XMLHTTP","Microsoft.XMLHTTP"];if(!window.ActiveXObject)return window.XMLHttpRequest?new XMLHttpRequest:!1;for(var e=0;t.length>e;e++)try{return new ActiveXObject(t[e])}catch(i){}};PIXI.EventTarget=function(){var t={};this.addEventListener=this.on=function(e,i){void 0===t[e]&&(t[e]=[]),-1===t[e].indexOf(i)&&t[e].push(i)},this.dispatchEvent=this.emit=function(e){for(var i in t[e.type])t[e.type][i](e)},this.removeEventListener=this.off=function(e,i){var r=t[e].indexOf(i);-1!==r&&t[e].splice(r,1)}},determineMatrixArrayType(),PIXI.mat3={},PIXI.mat3.create=function(){var t=new PIXI.Matrix(9);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},PIXI.mat4={},PIXI.mat4.create=function(){var t=new PIXI.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},PIXI.mat3.multiply=function(t,e,i){i||(i=t);var r=t[0],s=t[1],n=t[2],a=t[3],o=t[4],h=t[5],u=t[6],d=t[7],c=t[8],l=e[0],I=e[1],p=e[2],f=e[3],x=e[4],v=e[5],P=e[6],g=e[7],b=e[8];return i[0]=l*r+I*a+p*u,i[1]=l*s+I*o+p*d,i[2]=l*n+I*h+p*c,i[3]=f*r+x*a+v*u,i[4]=f*s+x*o+v*d,i[5]=f*n+x*h+v*c,i[6]=P*r+g*a+b*u,i[7]=P*s+g*o+b*d,i[8]=P*n+g*h+b*c,i},PIXI.mat3.toMat4=function(t,e){return e||(e=PIXI.mat4.create()),e[15]=1,e[14]=0,e[13]=0,e[12]=0,e[11]=0,e[10]=t[8],e[9]=t[7],e[8]=t[6],e[7]=0,e[6]=t[5],e[5]=t[4],e[4]=t[3],e[3]=0,e[2]=t[2],e[1]=t[1],e[0]=t[0],e},PIXI.mat4.create=function(){var t=new PIXI.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},PIXI.mat4.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],s=t[3],n=t[6],a=t[7],o=t[11];return t[1]=t[4],t[2]=t[8],t[3]=t[12],t[4]=i,t[6]=t[9],t[7]=t[13],t[8]=r,t[9]=n,t[11]=t[14],t[12]=s,t[13]=a,t[14]=o,t}return e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=t[1],e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=t[2],e[9]=t[6],e[10]=t[10],e[11]=t[14],e[12]=t[3],e[13]=t[7],e[14]=t[11],e[15]=t[15],e},PIXI.mat4.multiply=function(t,e,i){i||(i=t);var r=t[0],s=t[1],n=t[2],a=t[3],o=t[4],h=t[5],u=t[6],d=t[7],c=t[8],l=t[9],I=t[10],p=t[11],f=t[12],x=t[13],v=t[14],P=t[15],g=e[0],b=e[1],X=e[2],m=e[3];return i[0]=g*r+b*o+X*c+m*f,i[1]=g*s+b*h+X*l+m*x,i[2]=g*n+b*u+X*I+m*v,i[3]=g*a+b*d+X*p+m*P,g=e[4],b=e[5],X=e[6],m=e[7],i[4]=g*r+b*o+X*c+m*f,i[5]=g*s+b*h+X*l+m*x,i[6]=g*n+b*u+X*I+m*v,i[7]=g*a+b*d+X*p+m*P,g=e[8],b=e[9],X=e[10],m=e[11],i[8]=g*r+b*o+X*c+m*f,i[9]=g*s+b*h+X*l+m*x,i[10]=g*n+b*u+X*I+m*v,i[11]=g*a+b*d+X*p+m*P,g=e[12],b=e[13],X=e[14],m=e[15],i[12]=g*r+b*o+X*c+m*f,i[13]=g*s+b*h+X*l+m*x,i[14]=g*n+b*u+X*I+m*v,i[15]=g*a+b*d+X*p+m*P,i},PIXI.autoDetectRenderer=function(t,e,i,r){t||(t=800),e||(e=600);var s=function(){try{return!!window.WebGLRenderingContext&&!!document.createElement("canvas").getContext("experimental-webgl")}catch(t){return!1}}();return s?new PIXI.WebGLRenderer(t,e,i,r):new PIXI.CanvasRenderer(t,e,i,r)},PIXI.shaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * vColor;","}"],PIXI.shaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform mat4 uMVMatrix;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","gl_Position = uMVMatrix * vec4(aVertexPosition, 1.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],PIXI.CompileVertexShader=function(t,e){return PIXI._CompileShader(t,e,t.VERTEX_SHADER)},PIXI.CompileFragmentShader=function(t,e){return PIXI._CompileShader(t,e,t.FRAGMENT_SHADER)},PIXI._CompileShader=function(t,e,i){var r=e.join("\n"),s=t.createShader(i);return t.shaderSource(s,r),t.compileShader(s),t.getShaderParameter(s,t.COMPILE_STATUS)?s:(alert(t.getShaderInfoLog(s)),null)},PIXI._defaultFrame=new PIXI.Rectangle(0,0,1,1),PIXI.gl,PIXI.WebGLRenderer=function(t,e,i,r){this.transparent=!!r,this.width=t||800,this.height=e||600,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height;var s=this;this.view.addEventListener("webglcontextlost",function(t){s.handleContextLost(t)},!1),this.view.addEventListener("webglcontextrestored",function(t){s.handleContextRestored(t)},!1),this.batchs=[];try{PIXI.gl=this.gl=this.view.getContext("experimental-webgl",{alpha:this.transparent,antialias:!1,premultipliedAlpha:!0})}catch(n){throw Error(" This browser does not support webGL. Try using the canvas renderer"+this)}this.initShaders();var a=this.gl;PIXI.WebGLRenderer.gl=a,this.batch=new PIXI.WebGLBatch(a),a.disable(a.DEPTH_TEST),a.disable(a.CULL_FACE),a.enable(a.BLEND),a.colorMask(!0,!0,!0,this.transparent),this.projectionMatrix=PIXI.mat4.create(),this.resize(this.width,this.height),this.contextLost=!1,this.stageRenderGroup=new PIXI.WebGLRenderGroup(this.gl)},PIXI.WebGLRenderer.constructor=PIXI.WebGLRenderer,PIXI.WebGLRenderer.getBatch=function(){return 0==PIXI._batchs.length?new PIXI.WebGLBatch(PIXI.WebGLRenderer.gl):PIXI._batchs.pop()},PIXI.WebGLRenderer.returnBatch=function(t){t.clean(),PIXI._batchs.push(t)},PIXI.WebGLRenderer.prototype.initShaders=function(){var t=this.gl,e=PIXI.CompileFragmentShader(t,PIXI.shaderFragmentSrc),i=PIXI.CompileVertexShader(t,PIXI.shaderVertexSrc);PIXI.shaderProgram=t.createProgram();var r=PIXI.shaderProgram;t.attachShader(r,i),t.attachShader(r,e),t.linkProgram(r),t.getProgramParameter(r,t.LINK_STATUS)||alert("Could not initialise shaders"),t.useProgram(r),r.vertexPositionAttribute=t.getAttribLocation(r,"aVertexPosition"),t.enableVertexAttribArray(r.vertexPositionAttribute),r.textureCoordAttribute=t.getAttribLocation(r,"aTextureCoord"),t.enableVertexAttribArray(r.textureCoordAttribute),r.colorAttribute=t.getAttribLocation(r,"aColor"),t.enableVertexAttribArray(r.colorAttribute),r.mvMatrixUniform=t.getUniformLocation(r,"uMVMatrix"),r.samplerUniform=t.getUniformLocation(r,"uSampler")},PIXI.WebGLRenderer.prototype.render=function(t){if(!this.contextLost){this.__stage!==t&&(this.__stage=t,this.stageRenderGroup.setRenderable(t)),PIXI.WebGLRenderer.updateTextures(),t.updateTransform();var e=this.gl;if(e.colorMask(!0,!0,!0,this.transparent),e.viewport(0,0,this.width,this.height),e.bindFramebuffer(e.FRAMEBUFFER,null),e.clearColor(t.backgroundColorSplit[0],t.backgroundColorSplit[1],t.backgroundColorSplit[2],this.transparent),e.clear(e.COLOR_BUFFER_BIT),this.stageRenderGroup.backgroundColor=t.backgroundColorSplit,this.stageRenderGroup.render(this.projectionMatrix),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),PIXI.Texture.frameUpdates.length>0){for(var i=0;PIXI.Texture.frameUpdates.length>i;i++)PIXI.Texture.frameUpdates[i].updateFrame=!1;PIXI.Texture.frameUpdates=[]}}},PIXI.WebGLRenderer.updateTextures=function(){for(var t=0;PIXI.texturesToUpdate.length>t;t++)this.updateTexture(PIXI.texturesToUpdate[t]);for(var t=0;PIXI.texturesToDestroy.length>t;t++)this.destroyTexture(PIXI.texturesToDestroy[t]);PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[]},PIXI.WebGLRenderer.updateTexture=function(t){var e=PIXI.gl;t._glTexture||(t._glTexture=e.createTexture()),t.hasLoaded&&(e.bindTexture(e.TEXTURE_2D,t._glTexture),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t.source),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),t._powerOf2?(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT)):(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)),e.bindTexture(e.TEXTURE_2D,null))},PIXI.WebGLRenderer.prototype.destroyTexture=function(t){var e=this.gl;t._glTexture&&(t._glTexture=e.createTexture(),e.deleteTexture(e.TEXTURE_2D,t._glTexture))},PIXI.WebGLRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e,this.gl.viewport(0,0,this.width,this.height);var i=this.projectionMatrix;i[0]=2/this.width,i[5]=-2/this.height,i[12]=-1,i[13]=1},PIXI.WebGLRenderer.prototype.handleContextLost=function(t){t.preventDefault(),this.contextLost=!0},PIXI.WebGLRenderer.prototype.handleContextRestored=function(){this.gl=this.view.getContext("experimental-webgl",{alpha:!0}),this.initShaders();for(var t=0;PIXI.TextureCache.length>t;t++)this.updateTexture(PIXI.TextureCache[t]);for(var t=0;this.batchs.length>t;t++)this.batchs[t].restoreLostContext(this.gl),this.batchs[t].dirty=!0;PIXI._restoreBatchs(this.gl),this.contextLost=!1},PIXI._batchs=[],PIXI._getBatch=function(t){return 0==PIXI._batchs.length?new PIXI.WebGLBatch(t):PIXI._batchs.pop()},PIXI._returnBatch=function(t){t.clean(),PIXI._batchs.push(t)},PIXI._restoreBatchs=function(t){for(var e=0;PIXI._batchs.length>e;e++)PIXI._batchs[e].restoreLostContext(t)},PIXI.WebGLBatch=function(t){this.gl=t,this.size=0,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer(),this.blendMode=PIXI.blendModes.NORMAL,this.dynamicSize=1},PIXI.WebGLBatch.constructor=PIXI.WebGLBatch,PIXI.WebGLBatch.prototype.clean=function(){this.verticies=[],this.uvs=[],this.indices=[],this.colors=[],this.dynamicSize=1,this.texture=null,this.last=null,this.size=0,this.head,this.tail},PIXI.WebGLBatch.prototype.restoreLostContext=function(t){this.gl=t,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer()},PIXI.WebGLBatch.prototype.init=function(t){t.batch=this,this.dirty=!0,this.blendMode=t.blendMode,this.texture=t.texture.baseTexture,this.head=t,this.tail=t,this.size=1,this.growBatch()},PIXI.WebGLBatch.prototype.insertBefore=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__prev;e.__prev=t,t.__next=e,i?(t.__prev=i,i.__next=t):this.head=t},PIXI.WebGLBatch.prototype.insertAfter=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__next;e.__next=t,t.__prev=e,i?(t.__next=i,i.__prev=t):this.tail=t},PIXI.WebGLBatch.prototype.remove=function(t){return this.size--,0==this.size?(t.batch=null,t.__prev=null,t.__next=null,void 0):(t.__prev?t.__prev.__next=t.__next:(this.head=t.__next,this.head.__prev=null),t.__next?t.__next.__prev=t.__prev:(this.tail=t.__prev,this.tail.__next=null),t.batch=null,t.__next=null,t.__prev=null,this.dirty=!0,void 0)},PIXI.WebGLBatch.prototype.split=function(t){this.dirty=!0;var e=new PIXI.WebGLBatch(this.gl);e.init(t),e.tail=this.tail,this.tail=t.__prev,this.tail.__next=null,t.__prev=null;for(var i=0;t;)i++,t.batch=e,t=t.__next;return e.size=i,this.size-=i,e},PIXI.WebGLBatch.prototype.merge=function(t){this.dirty=!0,this.tail.__next=t.head,t.head.__prev=this.tail,this.size+=t.size,this.tail=t.tail;for(var e=t.head;e;)e.batch=this,e=e.__next},PIXI.WebGLBatch.prototype.growBatch=function(){var t=this.gl;this.dynamicSize=1==this.size?1:1.5*this.size,this.verticies=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.vertexBuffer),t.bufferData(t.ARRAY_BUFFER,this.verticies,t.DYNAMIC_DRAW),this.uvs=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.uvBuffer),t.bufferData(t.ARRAY_BUFFER,this.uvs,t.DYNAMIC_DRAW),this.dirtyUVS=!0,this.colors=new Float32Array(4*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.colorBuffer),t.bufferData(t.ARRAY_BUFFER,this.colors,t.DYNAMIC_DRAW),this.dirtyColors=!0,this.indices=new Uint16Array(6*this.dynamicSize);for(var e=this.indices.length/6,i=0;e>i;i++){var r=6*i,s=4*i;this.indices[r+0]=s+0,this.indices[r+1]=s+1,this.indices[r+2]=s+2,this.indices[r+3]=s+0,this.indices[r+4]=s+2,this.indices[r+5]=s+3}t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,this.indexBuffer),t.bufferData(t.ELEMENT_ARRAY_BUFFER,this.indices,t.STATIC_DRAW)},PIXI.WebGLBatch.prototype.refresh=function(){this.gl,this.dynamicSizer;r++)i=this.batchs[r],i instanceof PIXI.WebGLBatch?this.batchs[r].render():i instanceof PIXI.TilingSprite?i.visible&&this.renderTilingSprite(i,t):i instanceof PIXI.Strip&&i.visible&&this.renderStrip(i,t)},PIXI.WebGLRenderGroup.prototype.renderSpecific=function(t,e){PIXI.WebGLRenderer.updateTextures();var i=this.gl;this.checkVisibility(t,t.visible),i.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform,!1,e);var r,s,n,a,o=t.renderable?t:this.getNextRenderable(t),h=o.batch;if(o instanceof PIXI.Sprite){h=o.batch;var u=h.head;if(u==o)r=0;else for(r=1;u.__next!=o;)r++,u=u.__next}else h=o;for(var d,c=t,l=t;l.children.length>0;)l=l.children[l.children.length-1],l.renderable&&(c=l);if(c instanceof PIXI.Sprite){d=c.batch;var u=d.head;if(u==c)n=0;else for(n=1;u.__next!=c;)n++,u=u.__next}else d=c;if(h==d)return h instanceof PIXI.WebGLBatch?h.render(r,n+1):h instanceof PIXI.TilingSprite?h.visible&&this.renderTilingSprite(h,e):h instanceof PIXI.Strip?h.visible&&this.renderStrip(h,e):h instanceof PIXI.CustomRenderable&&h.visible&&h.renderWebGL(this,e),void 0;s=this.batchs.indexOf(h),a=this.batchs.indexOf(d),h instanceof PIXI.WebGLBatch?h.render(r):h instanceof PIXI.TilingSprite?h.visible&&this.renderTilingSprite(h,e):h instanceof PIXI.Strip?h.visible&&this.renderStrip(h,e):h instanceof PIXI.CustomRenderable&&h.visible&&h.renderWebGL(this,e);for(var I=s+1;a>I;I++)renderable=this.batchs[I],renderable instanceof PIXI.WebGLBatch?this.batchs[I].render():renderable instanceof PIXI.TilingSprite?renderable.visible&&this.renderTilingSprite(renderable,e):renderable instanceof PIXI.Strip?renderable.visible&&this.renderStrip(renderable,e):renderable instanceof PIXI.CustomRenderable&&renderable.visible&&renderable.renderWebGL(this,e);d instanceof PIXI.WebGLBatch?d.render(0,n+1):d instanceof PIXI.TilingSprite?d.visible&&this.renderTilingSprite(d):d instanceof PIXI.Strip?d.visible&&this.renderStrip(d):d instanceof PIXI.CustomRenderable&&d.visible&&d.renderWebGL(this,e)},PIXI.WebGLRenderGroup.prototype.checkVisibility=function(t,e){for(var i=t.children,r=0;i.length>r;r++){var s=i[r];s.worldVisible=s.visible&&e,s.textureChange&&(s.textureChange=!1,s.worldVisible&&(this.removeDisplayObject(s),this.addDisplayObject(s))),s.children.length>0&&this.checkVisibility(s,s.worldVisible)}},PIXI.WebGLRenderGroup.prototype.addDisplayObject=function(t){if(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.__renderGroup=this,t.renderable){var e=this.getPreviousRenderable(t),i=this.getNextRenderable(t);if(t instanceof PIXI.Sprite){var r,s;if(e instanceof PIXI.Sprite){if(r=e.batch,r&&r.texture==t.texture.baseTexture&&r.blendMode==t.blendMode)return r.insertAfter(t,e),void 0}else r=e;if(i)if(i instanceof PIXI.Sprite){if(s=i.batch){if(s.texture==t.texture.baseTexture&&s.blendMode==t.blendMode)return s.insertBefore(t,i),void 0;if(s==r){var n=r.split(i),a=PIXI.WebGLRenderer.getBatch(),o=this.batchs.indexOf(r);return a.init(t),this.batchs.splice(o+1,0,a,n),void 0}}}else s=i;var a=PIXI.WebGLRenderer.getBatch();if(a.init(t),r){var o=this.batchs.indexOf(r);this.batchs.splice(o+1,0,a)}else this.batchs.push(a)}else t instanceof PIXI.TilingSprite?(this.initTilingSprite(t),this.batchs.push(t)):t instanceof PIXI.Strip&&(this.initStrip(t),this.batchs.push(t));this.batchUpdate=!0}},PIXI.WebGLRenderGroup.prototype.addDisplayObjectAndChildren=function(t){this.addDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.addDisplayObjectAndChildren(e[i])},PIXI.WebGLRenderGroup.prototype.removeDisplayObject=function(t){if(t.__renderGroup=null,t.renderable){var e;if(t instanceof PIXI.Sprite){var i=t.batch;if(!i)return;i.remove(t),0==i.size&&(e=i)}else e=t;if(e){var r=this.batchs.indexOf(e);if(-1==r)return;if(0==r||r==this.batchs.length-1)return this.batchs.splice(r,1),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e),void 0;if(this.batchs[r-1]instanceof PIXI.WebGLBatch&&this.batchs[r+1]instanceof PIXI.WebGLBatch&&this.batchs[r-1].texture==this.batchs[r+1].texture&&this.batchs[r-1].blendMode==this.batchs[r+1].blendMode)return this.batchs[r-1].merge(this.batchs[r+1]),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e),PIXI.WebGLRenderer.returnBatch(this.batchs[r+1]),this.batchs.splice(r,2),void 0;this.batchs.splice(r,1),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e)}}},PIXI.WebGLRenderGroup.prototype.removeDisplayObjectAndChildren=function(t){if(t.__renderGroup==this){this.removeDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.removeDisplayObjectAndChildren(e[i])}},PIXI.WebGLRenderGroup.prototype.getNextRenderable=function(t){var e=t;do{if(0==e.children.length){if(!e.parent)return null;for(;e.childIndex==e.parent.children.length-1;)if(e=e.parent,e==this.root||!e.parent){e=null;break}e&&(e=e.parent.children[e.childIndex+1])}else e=e.children[0];if(!e)break}while(!e.renderable||!e.__renderGroup);return e},PIXI.WebGLRenderGroup.prototype.getPreviousRenderable=function(t){var e=t;do{if(0==e.childIndex){if(e=e.parent,!e)return null}else for(e=e.parent.children[e.childIndex-1];0!=e.children.length;)e=e.children[e.children.length-1];if(e==this.root)break}while(!e.renderable||!e.__renderGroup);return e},PIXI.WebGLRenderGroup.prototype.initTilingSprite=function(t){var e=this.gl;t.verticies=new Float32Array([0,0,t.width,0,t.width,t.height,0,t.height]),t.uvs=new Float32Array([0,0,1,0,1,1,0,1]),t.colors=new Float32Array([1,1,1,1]),t.indices=new Uint16Array([0,1,3,2]),t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW),t.texture.baseTexture._glTexture?(e.bindTexture(e.TEXTURE_2D,t.texture.baseTexture._glTexture),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT),t.texture.baseTexture._powerOf2=!0):t.texture.baseTexture._powerOf2=!0},PIXI.WebGLRenderGroup.prototype.renderStrip=function(t,e){var i=this.gl,r=PIXI.shaderProgram,s=PIXI.mat3.toMat4(t.worldTransform);PIXI.mat4.transpose(s),PIXI.mat4.multiply(e,s,s),i.uniformMatrix4fv(r.mvMatrixUniform,!1,s),t.blendMode==PIXI.blendModes.NORMAL?i.blendFunc(i.ONE,i.ONE_MINUS_SRC_ALPHA):i.blendFunc(i.ONE,i.ONE_MINUS_SRC_COLOR),t.dirty?(t.dirty=!1,i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferData(i.ARRAY_BUFFER,t.verticies,i.STATIC_DRAW),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferData(i.ARRAY_BUFFER,t.uvs,i.STATIC_DRAW),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.bufferData(i.ARRAY_BUFFER,t.colors,i.STATIC_DRAW),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer),i.bufferData(i.ELEMENT_ARRAY_BUFFER,t.indices,i.STATIC_DRAW)):(i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.verticies),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer)),i.drawElements(i.TRIANGLE_STRIP,t.indices.length,i.UNSIGNED_SHORT,0),i.uniformMatrix4fv(r.mvMatrixUniform,!1,e)},PIXI.WebGLRenderGroup.prototype.renderTilingSprite=function(t,e){var i=this.gl;PIXI.shaderProgram;var r=t.tilePosition,s=t.tileScale,n=r.x/t.texture.baseTexture.width,a=r.y/t.texture.baseTexture.height,o=t.width/t.texture.baseTexture.width/s.x,h=t.height/t.texture.baseTexture.height/s.y;t.uvs[0]=0-n,t.uvs[1]=0-a,t.uvs[2]=1*o-n,t.uvs[3]=0-a,t.uvs[4]=1*o-n,t.uvs[5]=1*h-a,t.uvs[6]=0-n,t.uvs[7]=1*h-a,i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.uvs),this.renderStrip(t,e)},PIXI.WebGLRenderer.prototype.initStrip=function(t){var e=this.gl;this.shaderProgram,t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW)},PIXI.CanvasRenderer=function(t,e,i,r){this.transparent=r,this.width=t||800,this.height=e||600,this.refresh=!0,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height,this.count=0,this.context=this.view.getContext("2d")},PIXI.CanvasRenderer.constructor=PIXI.CanvasRenderer,PIXI.CanvasRenderer.prototype.render=function(t){PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[],t.updateTransform(),this.view.style.backgroundColor==t.backgroundColorString||this.transparent||(this.view.style.backgroundColor=t.backgroundColorString),this.context.setTransform(1,0,0,1,0,0),this.context.clearRect(0,0,this.width,this.height),this.renderDisplayObject(t),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),PIXI.Texture.frameUpdates.length>0&&(PIXI.Texture.frameUpdates=[])},PIXI.CanvasRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e},PIXI.CanvasRenderer.prototype.renderDisplayObject=function(t){var e=t.worldTransform,i=this.context;if(t.visible){if(t instanceof PIXI.Sprite){var r=t.texture.frame;r&&(i.globalAlpha=t.worldAlpha,i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),i.drawImage(t.texture.baseTexture.source,r.x,r.y,r.width,r.height,t.anchor.x*-r.width,t.anchor.y*-r.height,r.width,r.height))}else t instanceof PIXI.Strip?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderStrip(t)):t instanceof PIXI.TilingSprite?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderTilingSprite(t)):t instanceof PIXI.CustomRenderable&&t.renderCanvas(this);for(var s=0;t.children.length>s;s++)this.renderDisplayObject(t.children[s]);this.context.setTransform(1,0,0,1,0,0)}},PIXI.CanvasRenderer.prototype.renderStripFlat=function(t){var e=this.context,i=t.verticies;t.uvs;var r=i.length/2;this.count++,e.beginPath();for(var s=1;r-2>s;s++){var n=2*s,a=i[n],o=i[n+2],h=i[n+4],u=i[n+1],d=i[n+3],c=i[n+5];e.moveTo(a,u),e.lineTo(o,d),e.lineTo(h,c)}e.fillStyle="#FF0000",e.fill(),e.closePath()},PIXI.CanvasRenderer.prototype.renderTilingSprite=function(t){var e=this.context;t.__tilePattern||(t.__tilePattern=e.createPattern(t.texture.baseTexture.source,"repeat")),e.beginPath();var i=t.tilePosition,r=t.tileScale;e.scale(r.x,r.y),e.translate(i.x,i.y),e.fillStyle=t.__tilePattern,e.fillRect(-i.x,-i.y,t.width/r.x,t.height/r.y),e.scale(1/r.x,1/r.y),e.translate(-i.x,-i.y),e.closePath()},PIXI.CanvasRenderer.prototype.renderStrip=function(t){var e=this.context,i=t.verticies,r=t.uvs,s=i.length/2;this.count++;for(var n=1;s-2>n;n++){var a=2*n,o=i[a],h=i[a+2],u=i[a+4],d=i[a+1],c=i[a+3],l=i[a+5],I=r[a]*t.texture.width,p=r[a+2]*t.texture.width,f=r[a+4]*t.texture.width,x=r[a+1]*t.texture.height,v=r[a+3]*t.texture.height,P=r[a+5]*t.texture.height;e.save(),e.beginPath(),e.moveTo(o,d),e.lineTo(h,c),e.lineTo(u,l),e.closePath(),e.clip();var g=I*v+x*f+p*P-v*f-x*p-I*P,b=o*v+x*u+h*P-v*u-x*h-o*P,X=I*h+o*f+p*u-h*f-o*p-I*u,m=I*v*u+x*h*f+o*p*P-o*v*f-x*p*u-I*h*P,T=d*v+x*l+c*P-v*l-x*c-d*P,y=I*c+d*f+p*l-c*f-d*p-I*l,_=I*v*l+x*c*f+d*p*P-d*v*f-x*p*l-I*c*P;e.transform(b/g,T/g,X/g,y/g,m/g,_/g),e.drawImage(t.texture.baseTexture.source,0,0),e.restore()}},PIXI.Strip=function(t,e,i){PIXI.DisplayObjectContainer.call(this),this.texture=t,this.blendMode=PIXI.blendModes.NORMAL;try{this.uvs=new Float32Array([0,1,1,1,1,0,0,1]),this.verticies=new Float32Array([0,0,0,0,0,0,0,0,0]),this.colors=new Float32Array([1,1,1,1]),this.indices=new Uint16Array([0,1,2,3])}catch(r){this.uvs=[0,1,1,1,1,0,0,1],this.verticies=[0,0,0,0,0,0,0,0,0],this.colors=[1,1,1,1],this.indices=[0,1,2,3]}this.width=e,this.height=i,t.baseTexture.hasLoaded?(this.width=this.texture.frame.width,this.height=this.texture.frame.height,this.updateFrame=!0):(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},PIXI.Strip.constructor=PIXI.Strip,PIXI.Strip.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Strip.prototype.setTexture=function(t){this.texture=t,this.width=t.frame.width,this.height=t.frame.height,this.updateFrame=!0},PIXI.Strip.prototype.onTextureUpdate=function(){this.updateFrame=!0},PIXI.Rope=function(t,e){PIXI.Strip.call(this,t),this.points=e;try{this.verticies=new Float32Array(4*e.length),this.uvs=new Float32Array(4*e.length),this.colors=new Float32Array(2*e.length),this.indices=new Uint16Array(2*e.length)}catch(i){this.verticies=verticies,this.uvs=uvs,this.colors=colors,this.indices=indices}this.refresh()},PIXI.Rope.constructor=PIXI.Rope,PIXI.Rope.prototype=Object.create(PIXI.Strip.prototype),PIXI.Rope.prototype.refresh=function(){var t=this.points;if(!(1>t.length)){var e=this.uvs,i=this.indices,r=this.colors,s=t[0],n=t[0];this.count-=.2,e[0]=0,e[1]=1,e[2]=0,e[3]=1,r[0]=1,r[1]=1,i[0]=0,i[1]=1;for(var a=t.length,o=1;a>o;o++){var n=t[o],h=4*o,u=o/(a-1);o%2?(e[h]=u,e[h+1]=0,e[h+2]=u,e[h+3]=1):(e[h]=u,e[h+1]=0,e[h+2]=u,e[h+3]=1),h=2*o,r[h]=1,r[h+1]=1,h=2*o,i[h]=h,i[h+1]=h+1,s=n}}},PIXI.Rope.prototype.updateTransform=function(){var t=this.points;if(!(1>t.length)){var e,i=this.verticies,r=t[0],s={x:0,y:0},n=t[0];this.count-=.2,i[0]=n.x+s.x,i[1]=n.y+s.y,i[2]=n.x-s.x,i[3]=n.y-s.y;for(var a=t.length,o=1;a>o;o++){var n=t[o],h=4*o;e=t.length-1>o?t[o+1]:n,s.y=-(e.x-r.x),s.x=e.y-r.y;var u=10*(1-o/(a-1));u>1&&(u=1);var d=Math.sqrt(s.x*s.x+s.y*s.y),c=this.texture.height/2;s.x/=d,s.y/=d,s.x*=c,s.y*=c,i[h]=n.x+s.x,i[h+1]=n.y+s.y,i[h+2]=n.x-s.x,i[h+3]=n.y-s.y,r=n}PIXI.DisplayObjectContainer.prototype.updateTransform.call(this)}},PIXI.Rope.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0},PIXI.TilingSprite=function(t,e,i){PIXI.DisplayObjectContainer.call(this),this.texture=t,this.width=e,this.height=i,this.renderable=!0,this.tileScale=new PIXI.Point(1,1),this.tilePosition=new PIXI.Point(0,0),this.blendMode=PIXI.blendModes.NORMAL},PIXI.TilingSprite.constructor=PIXI.TilingSprite,PIXI.TilingSprite.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.TilingSprite.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0},PIXI.TilingSprite.prototype.onTextureUpdate=function(){this.updateFrame=!0},PIXI.CustomRenderable=function(){PIXI.DisplayObject.call(this)},PIXI.CustomRenderable.constructor=PIXI.CustomRenderable,PIXI.CustomRenderable.prototype=Object.create(PIXI.DisplayObject.prototype),PIXI.CustomRenderable.prototype.renderCanvas=function(){},PIXI.CustomRenderable.prototype.initWebGL=function(){},PIXI.CustomRenderable.prototype.renderWebGL=function(){},PIXI.BaseTextureCache={},PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[],PIXI.BaseTexture=function(t){if(PIXI.EventTarget.call(this),this.width=100,this.height=100,this.source=t,t){if(this.source instanceof Image)if(this.source.complete)this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,PIXI.texturesToUpdate.push(this);else{var e=this;this.source.onload=function(){e.hasLoaded=!0,e.width=e.source.width,e.height=e.source.height,PIXI.texturesToUpdate.push(e),e.dispatchEvent({type:"loaded",content:e})}}else this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,PIXI.texturesToUpdate.push(this);this._powerOf2=!1}},PIXI.BaseTexture.constructor=PIXI.BaseTexture,PIXI.BaseTexture.prototype.destroy=function(){this.source instanceof Image&&(this.source.src=null),this.source=null,PIXI.texturesToDestroy.push(this)},PIXI.BaseTexture.fromImage=function(t,e){var i=PIXI.BaseTextureCache[t];if(!i){var r=new Image;e&&(r.crossOrigin=""),r.src=t,i=new PIXI.BaseTexture(r),PIXI.BaseTextureCache[t]=i}return i},PIXI.TextureCache={},PIXI.FrameCache={},PIXI.Texture=function(t,e){if(PIXI.EventTarget.call(this),e||(this.noFrame=!0,e=new PIXI.Rectangle(0,0,1,1)),this.trim=new PIXI.Point,t instanceof PIXI.Texture&&(t=t.baseTexture),this.baseTexture=t,this.frame=e,this.scope=this,t.hasLoaded)this.noFrame&&(e=new PIXI.Rectangle(0,0,t.width,t.height)),this.setFrame(e);else{var i=this;t.addEventListener("loaded",function(){i.onBaseTextureLoaded()})}},PIXI.Texture.constructor=PIXI.Texture,PIXI.Texture.prototype.onBaseTextureLoaded=function(){var t=this.baseTexture;t.removeEventListener("loaded",this.onLoaded),this.noFrame&&(this.frame=new PIXI.Rectangle(0,0,t.width,t.height)),this.noFrame=!1,this.width=this.frame.width,this.height=this.frame.height,this.scope.dispatchEvent({type:"update",content:this})},PIXI.Texture.prototype.destroy=function(t){t&&this.baseTexture.destroy()},PIXI.Texture.prototype.setFrame=function(t){if(this.frame=t,this.width=t.width,this.height=t.height,t.x+t.width>this.baseTexture.width||t.y+t.height>this.baseTexture.height)throw Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);this.updateFrame=!0,PIXI.Texture.frameUpdates.push(this)},PIXI.Texture.fromImage=function(t,e){var i=PIXI.TextureCache[t];return i||(i=new PIXI.Texture(PIXI.BaseTexture.fromImage(t,e)),PIXI.TextureCache[t]=i),i},PIXI.Texture.fromFrame=function(t){var e=PIXI.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache "+this);return e},PIXI.Texture.fromCanvas=function(t){var e=new PIXI.BaseTexture(t);return new PIXI.Texture(e)},PIXI.Texture.addTextureToCache=function(t,e){PIXI.TextureCache[e]=t},PIXI.Texture.removeTextureFromCache=function(t){var e=PIXI.TextureCache[t];return PIXI.TextureCache[t]=null,e},PIXI.Texture.frameUpdates=[],PIXI.RenderTexture=function(t,e){PIXI.EventTarget.call(this),this.width=t||100,this.height=e||100,this.indetityMatrix=PIXI.mat3.create(),this.frame=new PIXI.Rectangle(0,0,this.width,this.height),PIXI.gl?this.initWebGL():this.initCanvas()},PIXI.RenderTexture.constructor=PIXI.RenderTexture,PIXI.RenderTexture.prototype=Object.create(PIXI.Texture.prototype),PIXI.RenderTexture.prototype.initWebGL=function(){var t=PIXI.gl;this.glFramebuffer=t.createFramebuffer(),t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),this.glFramebuffer.width=this.width,this.glFramebuffer.height=this.height,this.baseTexture=new PIXI.BaseTexture,this.baseTexture.width=this.width,this.baseTexture.height=this.height,this.baseTexture._glTexture=t.createTexture(),t.bindTexture(t.TEXTURE_2D,this.baseTexture._glTexture),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,this.width,this.height,0,t.RGBA,t.UNSIGNED_BYTE,null),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),this.baseTexture.isRender=!0,t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,this.baseTexture._glTexture,0),this.projectionMatrix=PIXI.mat4.create(),this.projectionMatrix[5]=2/this.height,this.projectionMatrix[13]=-1,this.projectionMatrix[0]=2/this.width,this.projectionMatrix[12]=-1,this.render=this.renderWebGL},PIXI.RenderTexture.prototype.initCanvas=function(){this.renderer=new PIXI.CanvasRenderer(this.width,this.height,null,0),this.baseTexture=new PIXI.BaseTexture(this.renderer.view),this.frame=new PIXI.Rectangle(0,0,this.width,this.height),this.render=this.renderCanvas},PIXI.RenderTexture.prototype.renderWebGL=function(t,e){var i=PIXI.gl;i.colorMask(!0,!0,!0,!0),i.viewport(0,0,this.width,this.height),i.bindFramebuffer(i.FRAMEBUFFER,this.glFramebuffer),e&&(i.clearColor(0,0,0,0),i.clear(i.COLOR_BUFFER_BIT));var r=t.children;t.worldTransform=PIXI.mat3.create();for(var s=0,n=r.length;n>s;s++)r[s].updateTransform();var a=t.__renderGroup;a?t==a.root?a.render(this.projectionMatrix):a.renderSpecific(t,this.projectionMatrix):(this.renderGroup||(this.renderGroup=new PIXI.WebGLRenderGroup(i)),this.renderGroup.setRenderable(t),this.renderGroup.render(this.projectionMatrix))},PIXI.RenderTexture.prototype.renderCanvas=function(t,e){var i=t.children;t.worldTransform=PIXI.mat3.create();for(var r=0,s=i.length;s>r;r++)i[r].updateTransform();e&&this.renderer.context.clearRect(0,0,this.width,this.height),this.renderer.renderDisplayObject(t),PIXI.texturesToUpdate.push(this.baseTexture)},PIXI.AssetLoader=function(t){PIXI.EventTarget.call(this),this.assetURLs=t,this.crossorigin=!1,this.loadersByType={jpg:PIXI.ImageLoader,jpeg:PIXI.ImageLoader,png:PIXI.ImageLoader,gif:PIXI.ImageLoader,json:PIXI.SpriteSheetLoader,xml:PIXI.BitmapFontLoader,fnt:PIXI.BitmapFontLoader}},PIXI.AssetLoader.constructor=PIXI.AssetLoader,PIXI.AssetLoader.prototype.load=function(){var t=this;this.loadCount=this.assetURLs.length;for(var e=0;this.assetURLs.length>e;e++){var i=this.assetURLs[e],r=i.split(".").pop().toLowerCase(),s=this.loadersByType[r];if(!s)throw Error(r+" is an unsupported file type");var n=new s(i,this.crossorigin);n.addEventListener("loaded",function(){t.onAssetLoaded()}),n.load()}},PIXI.AssetLoader.prototype.onAssetLoaded=function(){this.loadCount--,this.dispatchEvent({type:"onProgress",content:this}),this.onProgress&&this.onProgress(),0==this.loadCount&&(this.dispatchEvent({type:"onComplete",content:this}),this.onComplete&&this.onComplete())},PIXI.SpriteSheetLoader=function(t,e){PIXI.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.frames={},this.crossorigin=e},PIXI.SpriteSheetLoader.constructor=PIXI.SpriteSheetLoader,PIXI.SpriteSheetLoader.prototype.load=function(){this.ajaxRequest=new AjaxRequest;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onJSONLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/json"),this.ajaxRequest.send(null)},PIXI.SpriteSheetLoader.prototype.onJSONLoaded=function(){if(4==this.ajaxRequest.readyState&&(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))){var jsonData=eval("("+this.ajaxRequest.responseText+")"),textureUrl=this.baseUrl+jsonData.meta.image,image=new PIXI.ImageLoader(textureUrl,this.crossorigin);this.texture=image.texture.baseTexture;var scope=this;image.addEventListener("loaded",function(){scope.onLoaded()});var frameData=jsonData.frames;for(var i in frameData){var rect=frameData[i].frame;rect&&(PIXI.TextureCache[i]=new PIXI.Texture(this.texture,{x:rect.x,y:rect.y,width:rect.w,height:rect.h}),frameData[i].trimmed&&(PIXI.TextureCache[i].realSize=frameData[i].spriteSourceSize,PIXI.TextureCache[i].trim.x=0))}image.load()}},PIXI.SpriteSheetLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},PIXI.ImageLoader=function(t,e){PIXI.EventTarget.call(this),this.texture=PIXI.Texture.fromImage(t,e)},PIXI.ImageLoader.constructor=PIXI.ImageLoader,PIXI.ImageLoader.prototype.load=function(){if(this.texture.baseTexture.hasLoaded)this.onLoaded();else{var t=this;this.texture.baseTexture.addEventListener("loaded",function(){t.onLoaded()})}},PIXI.ImageLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},PIXI.BitmapFontLoader=function(t,e){PIXI.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.crossorigin=e},PIXI.BitmapFontLoader.constructor=PIXI.BitmapFontLoader,PIXI.BitmapFontLoader.prototype.load=function(){this.ajaxRequest=new XMLHttpRequest;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onXMLLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/xml"),this.ajaxRequest.send(null)},PIXI.BitmapFontLoader.prototype.onXMLLoaded=function(){if(4==this.ajaxRequest.readyState&&(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))){var t=this.baseUrl+this.ajaxRequest.responseXML.getElementsByTagName("page")[0].attributes.getNamedItem("file").nodeValue,e=new PIXI.ImageLoader(t,this.crossorigin);this.texture=e.texture.baseTexture;var i={},r=this.ajaxRequest.responseXML.getElementsByTagName("info")[0],s=this.ajaxRequest.responseXML.getElementsByTagName("common")[0];i.font=r.attributes.getNamedItem("face").nodeValue,i.size=parseInt(r.attributes.getNamedItem("size").nodeValue,10),i.lineHeight=parseInt(s.attributes.getNamedItem("lineHeight").nodeValue,10),i.chars={};for(var n=this.ajaxRequest.responseXML.getElementsByTagName("char"),a=0;n.length>a;a++){var o=parseInt(n[a].attributes.getNamedItem("id").nodeValue,10),h={x:parseInt(n[a].attributes.getNamedItem("x").nodeValue,10),y:parseInt(n[a].attributes.getNamedItem("y").nodeValue,10),width:parseInt(n[a].attributes.getNamedItem("width").nodeValue,10),height:parseInt(n[a].attributes.getNamedItem("height").nodeValue,10)};PIXI.TextureCache[o]=new PIXI.Texture(this.texture,h),i.chars[o]={xOffset:parseInt(n[a].attributes.getNamedItem("xoffset").nodeValue,10),yOffset:parseInt(n[a].attributes.getNamedItem("yoffset").nodeValue,10),xAdvance:parseInt(n[a].attributes.getNamedItem("xadvance").nodeValue,10),kerning:{}}}var u=this.ajaxRequest.responseXML.getElementsByTagName("kerning");for(a=0;u.length>a;a++){var d=parseInt(u[a].attributes.getNamedItem("first").nodeValue,10),c=parseInt(u[a].attributes.getNamedItem("second").nodeValue,10),l=parseInt(u[a].attributes.getNamedItem("amount").nodeValue,10);i.chars[c].kerning[d]=l}PIXI.BitmapText.fonts[i.font]=i;var I=this;e.addEventListener("loaded",function(){I.onLoaded()}),e.load()}},PIXI.BitmapFontLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=PIXI),exports.PIXI=PIXI):root.PIXI=PIXI}).call(this); \ No newline at end of file diff --git a/docs/classes/WebGLRenderer.html b/docs/classes/WebGLRenderer.html index 581cb5a..fcef6b6 100644 --- a/docs/classes/WebGLRenderer.html +++ b/docs/classes/WebGLRenderer.html @@ -498,7 +498,7 @@ - src/pixi/renderers/WebGLRenderer.js:283 + src/pixi/renderers/WebGLRenderer.js:284

diff --git a/docs/data.json b/docs/data.json index 9b4a49d..4b27831 100644 --- a/docs/data.json +++ b/docs/data.json @@ -1388,35 +1388,35 @@ }, { "file": "src/pixi/renderers/WebGLRenderGroup.js", - "line": 523, + "line": 527, "access": "private", "tagname": "", "class": "WebGLBatch" }, { "file": "src/pixi/renderers/WebGLRenderGroup.js", - "line": 607, + "line": 613, "access": "private", "tagname": "", "class": "WebGLBatch" }, { "file": "src/pixi/renderers/WebGLRenderGroup.js", - "line": 663, + "line": 669, "access": "private", "tagname": "", "class": "WebGLBatch" }, { "file": "src/pixi/renderers/WebGLRenderGroup.js", - "line": 740, + "line": 746, "access": "private", "tagname": "", "class": "WebGLBatch" }, { "file": "src/pixi/renderers/WebGLRenderGroup.js", - "line": 777, + "line": 783, "access": "private", "tagname": "", "class": "WebGLBatch" @@ -1465,14 +1465,14 @@ }, { "file": "src/pixi/renderers/WebGLRenderer.js", - "line": 232, + "line": 225, "access": "private", "tagname": "", "class": "WebGLRenderer" }, { "file": "src/pixi/renderers/WebGLRenderer.js", - "line": 283, + "line": 284, "description": "resizes the webGL view to the specified width and height", "itemtype": "method", "name": "resize", @@ -1492,14 +1492,14 @@ }, { "file": "src/pixi/renderers/WebGLRenderer.js", - "line": 307, + "line": 308, "access": "private", "tagname": "", "class": "WebGLRenderer" }, { "file": "src/pixi/renderers/WebGLRenderer.js", - "line": 316, + "line": 317, "access": "private", "tagname": "", "class": "WebGLRenderer" @@ -2908,23 +2908,23 @@ }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderGroup.js:523" + "line": " src/pixi/renderers/WebGLRenderGroup.js:527" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderGroup.js:607" + "line": " src/pixi/renderers/WebGLRenderGroup.js:613" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderGroup.js:663" + "line": " src/pixi/renderers/WebGLRenderGroup.js:669" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderGroup.js:740" + "line": " src/pixi/renderers/WebGLRenderGroup.js:746" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderGroup.js:777" + "line": " src/pixi/renderers/WebGLRenderGroup.js:783" }, { "message": "Missing item type", @@ -2944,15 +2944,15 @@ }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderer.js:232" + "line": " src/pixi/renderers/WebGLRenderer.js:225" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderer.js:307" + "line": " src/pixi/renderers/WebGLRenderer.js:308" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderer.js:316" + "line": " src/pixi/renderers/WebGLRenderer.js:317" }, { "message": "Missing item type", diff --git a/docs/files/src_pixi_renderers_WebGLRenderGroup.js.html b/docs/files/src_pixi_renderers_WebGLRenderGroup.js.html index 7222602..42bcabd 100644 --- a/docs/files/src_pixi_renderers_WebGLRenderGroup.js.html +++ b/docs/files/src_pixi_renderers_WebGLRenderGroup.js.html @@ -177,6 +177,8 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + //PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. @@ -215,6 +217,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + //PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -683,7 +687,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/docs/files/src_pixi_renderers_WebGLRenderer.js.html b/docs/files/src_pixi_renderers_WebGLRenderer.js.html index 0383c4d..551dd19 100644 --- a/docs/files/src_pixi_renderers_WebGLRenderer.js.html +++ b/docs/files/src_pixi_renderers_WebGLRenderer.js.html @@ -306,15 +306,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -366,9 +359,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -400,7 +402,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) diff --git a/examples/example 1 - Basics/pixi.js b/examples/example 1 - Basics/pixi.js index f29080a..3478cf4 100644 --- a/examples/example 1 - Basics/pixi.js +++ b/examples/example 1 - Basics/pixi.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/examples/example 10 - Text/pixi.js b/examples/example 10 - Text/pixi.js index f29080a..3478cf4 100644 --- a/examples/example 10 - Text/pixi.js +++ b/examples/example 10 - Text/pixi.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/examples/example 11 - RenderTexture/index.html b/examples/example 11 - RenderTexture/index.html index efd342b..e4acf76 100644 --- a/examples/example 11 - RenderTexture/index.html +++ b/examples/example 11 - RenderTexture/index.html @@ -15,7 +15,7 @@ diff --git a/examples/example 11 - RenderTexture/pixi.js b/examples/example 11 - RenderTexture/pixi.js index f29080a..3478cf4 100644 --- a/examples/example 11 - RenderTexture/pixi.js +++ b/examples/example 11 - RenderTexture/pixi.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/examples/example 2 - SpriteSheet/pixi.js b/examples/example 2 - SpriteSheet/pixi.js index f29080a..3478cf4 100644 --- a/examples/example 2 - SpriteSheet/pixi.js +++ b/examples/example 2 - SpriteSheet/pixi.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/examples/example 3 - MovieClip/pixi.js b/examples/example 3 - MovieClip/pixi.js index f29080a..3478cf4 100755 --- a/examples/example 3 - MovieClip/pixi.js +++ b/examples/example 3 - MovieClip/pixi.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/examples/example 4 - Balls/pixi.js b/examples/example 4 - Balls/pixi.js index f29080a..3478cf4 100644 --- a/examples/example 4 - Balls/pixi.js +++ b/examples/example 4 - Balls/pixi.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/examples/example 5 - Morph/pixi.js b/examples/example 5 - Morph/pixi.js index f29080a..3478cf4 100644 --- a/examples/example 5 - Morph/pixi.js +++ b/examples/example 5 - Morph/pixi.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/bin/pixi.dev.js b/bin/pixi.dev.js index f29080a..3478cf4 100644 --- a/bin/pixi.dev.js +++ b/bin/pixi.dev.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/bin/pixi.js b/bin/pixi.js index 5f2a13c..a6d54d1 100644 --- a/bin/pixi.js +++ b/bin/pixi.js @@ -4,10 +4,10 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php */ -(function(){function HEXtoRGB(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}function determineMatrixArrayType(){return PIXI.Matrix="undefined"!=typeof Float32Array?Float32Array:Array,PIXI.Matrix}var root=this,PIXI=PIXI||{};PIXI.Point=function(t,e){this.x=t||0,this.y=e||0},PIXI.Point.prototype.clone=function(){return new PIXI.Point(this.x,this.y)},PIXI.Point.constructor=PIXI.Point,PIXI.Rectangle=function(t,e,i,r){this.x=t||0,this.y=e||0,this.width=i||0,this.height=r||0},PIXI.Rectangle.prototype.clone=function(){return new PIXI.Rectangle(this.x,this.y,this.width,this.height)},PIXI.Rectangle.constructor=PIXI.Rectangle,PIXI.DisplayObject=function(){this.position=new PIXI.Point,this.scale=new PIXI.Point(1,1),this.pivot=new PIXI.Point(0,0),this.rotation=0,this.alpha=1,this.visible=!0,this.worldVisible=!1,this.parent=null,this.stage=null,this.hitArea=null,this.worldAlpha=1,this.color=[],this.worldTransform=PIXI.mat3.create(),this.localTransform=PIXI.mat3.create(),this.dynamic=!0,this._sr=0,this._cr=1,this.childIndex=0,this.renderable=!1,this.interactive=!1,this.buttonMode=!1},PIXI.DisplayObject.constructor=PIXI.DisplayObject,PIXI.DisplayObject.prototype.setInteractive=function(t){this.interactive=t,this.stage&&(this.stage.dirty=!0)},PIXI.DisplayObject.prototype.updateTransform=function(){this.rotation!=this.rotationCache&&(this.rotationCache=this.rotation,this._sr=Math.sin(this.rotation),this._cr=Math.cos(this.rotation));var t=this.localTransform,e=this.parent.worldTransform,i=this.worldTransform;t[0]=this._cr*this.scale.x,t[1]=-this._sr*this.scale.y,t[3]=this._sr*this.scale.x,t[4]=this._cr*this.scale.y;var r=this.pivot.x,s=this.pivot.y;t[2]=this.position.x-t[0]*r-s*t[1],t[5]=this.position.y-t[4]*s-r*t[3];var n=t[0],a=t[1],o=t[2],h=t[3],u=t[4],c=t[5],d=e[0],l=e[1],I=e[2],p=e[3],f=e[4],x=e[5];i[0]=d*n+l*h,i[1]=d*a+l*u,i[2]=d*o+l*c+I,i[3]=p*n+f*h,i[4]=p*a+f*u,i[5]=p*o+f*c+x,this.worldAlpha=this.alpha*this.parent.worldAlpha},PIXI.DisplayObjectContainer=function(){PIXI.DisplayObject.call(this),this.children=[],this.renderable=!1},PIXI.DisplayObjectContainer.constructor=PIXI.DisplayObjectContainer,PIXI.DisplayObjectContainer.prototype=Object.create(PIXI.DisplayObject.prototype),PIXI.DisplayObjectContainer.prototype.addChild=function(t){void 0!=t.parent&&t.parent.removeChild(t),t.parent=this,t.childIndex=this.children.length,this.children.push(t),this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},PIXI.DisplayObjectContainer.prototype.addChildAt=function(t,e){if(!(e>=0&&this.children.length>=e))throw Error(t+" The index "+e+" supplied is out of bounds "+this.children.length);void 0!=t.parent&&t.parent.removeChild(t),e==this.children.length?this.children.push(t):this.children.splice(e,0,t),t.parent=this,t.childIndex=e;for(var i=this.children.length,r=e;i>r;r++)this.children[r].childIndex=r;this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},PIXI.DisplayObjectContainer.prototype.swapChildren=function(t,e){var i=this.children.indexOf(t),r=this.children.indexOf(e);if(-1===i||-1===r)throw Error(t+" Both the supplied DisplayObjects must be a child of the caller "+this);this.stage&&(this.stage.__removeChild(t),this.stage.__removeChild(e),this.stage.__addChild(t),this.stage.__addChild(e)),t.childIndex=r,e.childIndex=i,this.children[i]=e,this.children[r]=t},PIXI.DisplayObjectContainer.prototype.getChildAt=function(t){if(t>=0&&this.children.length>t)return this.children[t];throw Error(child+" Both the supplied DisplayObjects must be a child of the caller "+this)},PIXI.DisplayObjectContainer.prototype.removeChild=function(t){var e=this.children.indexOf(t);if(-1===e)throw Error(t+" The supplied DisplayObject must be a child of the caller "+this);this.stage&&this.stage.__removeChild(t),t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.parent=void 0,this.children.splice(e,1);for(var i=e,r=this.children.length;r>i;i++)this.children[i].childIndex-=1},PIXI.DisplayObjectContainer.prototype.updateTransform=function(){if(this.visible){PIXI.DisplayObject.prototype.updateTransform.call(this);for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform()}},PIXI.blendModes={},PIXI.blendModes.NORMAL=0,PIXI.blendModes.SCREEN=1,PIXI.Sprite=function(t){PIXI.DisplayObjectContainer.call(this),this.anchor=new PIXI.Point,this.texture=t,this.blendMode=PIXI.blendModes.NORMAL,this._width=0,this._height=0,t.baseTexture.hasLoaded?this.updateFrame=!0:(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},PIXI.Sprite.constructor=PIXI.Sprite,PIXI.Sprite.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),Object.defineProperty(PIXI.Sprite.prototype,"width",{get:function(){return this.scale.x*this.texture.frame.width},set:function(t){this.scale.x=t/this.texture.frame.width,this._width=t}}),Object.defineProperty(PIXI.Sprite.prototype,"height",{get:function(){return this.scale.y*this.texture.frame.height},set:function(t){this.scale.y=t/this.texture.frame.height,this._height=t}}),PIXI.Sprite.prototype.setTexture=function(t){this.texture.baseTexture!=t.baseTexture&&(this.textureChange=!0),this.texture=t,this.updateFrame=!0},PIXI.Sprite.prototype.onTextureUpdate=function(){this._width&&(this.scale.x=this._width/this.texture.frame.width),this._height&&(this.scale.y=this._height/this.texture.frame.height),this.updateFrame=!0},PIXI.Sprite.fromFrame=function(t){var e=PIXI.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache"+this);return new PIXI.Sprite(e)},PIXI.Sprite.fromImage=function(t){var e=PIXI.Texture.fromImage(t);return new PIXI.Sprite(e)},PIXI.MovieClip=function(t){PIXI.Sprite.call(this,t[0]),this.textures=t,this.currentFrame=0,this.animationSpeed=1,this.loop=!0,this.onComplete=null,this.playing},PIXI.MovieClip.constructor=PIXI.MovieClip,PIXI.MovieClip.prototype=Object.create(PIXI.Sprite.prototype),PIXI.MovieClip.prototype.stop=function(){this.playing=!1},PIXI.MovieClip.prototype.play=function(){this.playing=!0},PIXI.MovieClip.prototype.gotoAndStop=function(t){this.playing=!1,this.currentFrame=t;var e=0|this.currentFrame+.5;this.setTexture(this.textures[e%this.textures.length])},PIXI.MovieClip.prototype.gotoAndPlay=function(t){this.currentFrame=t,this.playing=!0},PIXI.MovieClip.prototype.updateTransform=function(){if(PIXI.Sprite.prototype.updateTransform.call(this),this.playing){this.currentFrame+=this.animationSpeed;var t=0|this.currentFrame+.5;this.loop||this.textures.length>t?this.setTexture(this.textures[t%this.textures.length]):t>=this.textures.length&&(this.gotoAndStop(this.textures.length-1),this.onComplete&&this.onComplete())}},PIXI.Text=function(t,e){this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"),PIXI.Sprite.call(this,PIXI.Texture.fromCanvas(this.canvas)),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},PIXI.Text.constructor=PIXI.Text,PIXI.Text.prototype=Object.create(PIXI.Sprite.prototype),PIXI.Text.prototype.setStyle=function(t){t=t||{},t.font=t.font||"bold 20pt Arial",t.fill=t.fill||"black",t.align=t.align||"left",t.strokeThickness=t.strokeThickness||0,this.style=t,this.dirty=!0},PIXI.Sprite.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},PIXI.Text.prototype.updateText=function(){this.context.font=this.style.font;for(var t=this.text.split(/(?:\r\n|\r|\n)/),e=[],i=0,r=0;t.length>r;r++){var s=this.context.measureText(t[r]).width;e[r]=s,i=Math.max(i,s)}this.canvas.width=i+this.style.strokeThickness;var n=this.determineFontHeight("font: "+this.style.font+";")+this.style.strokeThickness;for(this.canvas.height=n*t.length,this.context.fillStyle=this.style.fill,this.context.font=this.style.font,this.context.strokeStyle=this.style.stroke,this.context.lineWidth=this.style.strokeThickness,this.context.textBaseline="top",r=0;t.length>r;r++){var a=new PIXI.Point(this.style.strokeThickness/2,this.style.strokeThickness/2+r*n);"right"==this.style.align?a.x+=i-e[r]:"center"==this.style.align&&(a.x+=(i-e[r])/2),this.style.stroke&&this.style.strokeThickness&&this.context.strokeText(t[r],a.x,a.y),this.style.fill&&this.context.fillText(t[r],a.x,a.y)}this.updateTexture()},PIXI.Text.prototype.updateTexture=function(){this.texture.baseTexture.width=this.canvas.width,this.texture.baseTexture.height=this.canvas.height,this.texture.frame.width=this.canvas.width,this.texture.frame.height=this.canvas.height,this._width=this.canvas.width,this._height=this.canvas.height,PIXI.texturesToUpdate.push(this.texture.baseTexture)},PIXI.Text.prototype.updateTransform=function(){this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype.updateTransform.call(this)},PIXI.Text.prototype.determineFontHeight=function(t){var e=PIXI.Text.heightCache[t];if(!e){var i=document.getElementsByTagName("body")[0],r=document.createElement("div"),s=document.createTextNode("M");r.appendChild(s),r.setAttribute("style",t),i.appendChild(r),e=r.offsetHeight,PIXI.Text.heightCache[t]=e,i.removeChild(r)}return e},PIXI.Text.prototype.destroy=function(t){t&&this.texture.destroy()},PIXI.Text.heightCache={},PIXI.BitmapText=function(t,e){PIXI.DisplayObjectContainer.call(this),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},PIXI.BitmapText.constructor=PIXI.BitmapText,PIXI.BitmapText.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.BitmapText.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},PIXI.BitmapText.prototype.setStyle=function(t){t=t||{},t.align=t.align||"left",this.style=t;var e=t.font.split(" ");this.fontName=e[e.length-1],this.fontSize=e.length>=2?parseInt(e[e.length-2],10):PIXI.BitmapText.fonts[this.fontName].size,this.dirty=!0},PIXI.BitmapText.prototype.updateText=function(){for(var t=PIXI.BitmapText.fonts[this.fontName],e=new PIXI.Point,i=null,r=[],s=0,n=[],a=0,o=this.fontSize/t.size,h=0;this.text.length>h;h++){var u=this.text.charCodeAt(h);if(/(?:\r\n|\r|\n)/.test(this.text.charAt(h)))n.push(e.x),s=Math.max(s,e.x),a++,e.x=0,e.y+=t.lineHeight,i=null;else{var c=t.chars[u];c&&(i&&c[i]&&(e.x+=c.kerning[i]),r.push({line:a,charCode:u,position:new PIXI.Point(e.x+c.xOffset,e.y+c.yOffset)}),e.x+=c.xAdvance,i=u)}}n.push(e.x),s=Math.max(s,e.x);var d=[];for(h=0;a>=h;h++){var l=0;"right"==this.style.align?l=s-n[h]:"center"==this.style.align&&(l=(s-n[h])/2),d.push(l)}for(h=0;r.length>h;h++){var I=PIXI.Sprite.fromFrame(r[h].charCode);I.position.x=(r[h].position.x+d[r[h].line])*o,I.position.y=r[h].position.y*o,I.scale.x=I.scale.y=o,this.addChild(I)}this.width=e.x*o,this.height=(e.y+t.lineHeight)*o},PIXI.BitmapText.prototype.updateTransform=function(){if(this.dirty){for(;this.children.length>0;)this.removeChild(this.getChildAt(0));this.updateText(),this.dirty=!1}PIXI.DisplayObjectContainer.prototype.updateTransform.call(this)},PIXI.BitmapText.fonts={},PIXI.InteractionManager=function(t){this.stage=t,this.tempPoint=new PIXI.Point,this.mouseoverEnabled=!0,this.mouse=new PIXI.InteractionData,this.touchs={},this.pool=[],this.interactiveItems=[],this.last=0},PIXI.InteractionManager.constructor=PIXI.InteractionManager,PIXI.InteractionManager.prototype.collectInteractiveSprite=function(t,e){for(var i=t.children,r=i.length,s=r-1;s>=0;s--){var n=i[s];n.interactive?(e.interactiveChildren=!0,this.interactiveItems.push(n),n.children.length>0&&this.collectInteractiveSprite(n,n)):(n.__iParent=null,n.children.length>0&&this.collectInteractiveSprite(n,e))}},PIXI.InteractionManager.prototype.setTarget=function(t){window.navigator.msPointerEnabled&&(t.view.style["-ms-content-zooming"]="none",t.view.style["-ms-touch-action"]="none"),this.target=t,t.view.addEventListener("mousemove",this.onMouseMove.bind(this),!0),t.view.addEventListener("mousedown",this.onMouseDown.bind(this),!0),document.body.addEventListener("mouseup",this.onMouseUp.bind(this),!0),t.view.addEventListener("mouseout",this.onMouseUp.bind(this),!0),t.view.addEventListener("touchstart",this.onTouchStart.bind(this),!0),t.view.addEventListener("touchend",this.onTouchEnd.bind(this),!0),t.view.addEventListener("touchmove",this.onTouchMove.bind(this),!0)},PIXI.InteractionManager.prototype.update=function(){if(this.target){var t=Date.now(),e=t-this.last;if(e=30*e/1e3,!(1>e)){if(this.last=t,this.dirty){this.dirty=!1,this.interactiveItems.length;for(var i=0;this.interactiveItems.length>i;i++)this.interactiveItems[i].interactiveChildren=!1;this.interactiveItems=[],this.stage.interactive&&this.interactiveItems.push(this.stage),this.collectInteractiveSprite(this.stage,this.stage)}var r=this.interactiveItems.length;this.target.view.style.cursor="default";for(var i=0;r>i;i++){var s=this.interactiveItems[i];s.visible&&(s.mouseover||s.mouseout||s.buttonMode)&&(s.__hit=this.hitTest(s,this.mouse),s.__hit?(s.buttonMode&&(this.target.view.style.cursor="pointer"),s.__isOver||(s.mouseover&&s.mouseover(this.mouse),s.__isOver=!0)):s.__isOver&&(s.mouseout&&s.mouseout(this.mouse),s.__isOver=!1))}}}},PIXI.InteractionManager.prototype.onMouseMove=function(t){t.preventDefault();var e=this.target.view.getBoundingClientRect();this.mouse.global.x=(t.clientX-e.left)*(this.target.width/e.width),this.mouse.global.y=(t.clientY-e.top)*(this.target.height/e.height);var i=this.interactiveItems.length;this.mouse.global;for(var r=0;i>r;r++){var s=this.interactiveItems[r];s.mousemove&&s.mousemove(this.mouse)}},PIXI.InteractionManager.prototype.onMouseDown=function(t){t.preventDefault();var e=this.interactiveItems.length;this.mouse.global,this.stage;for(var i=0;e>i;i++){var r=this.interactiveItems[i];if((r.mousedown||r.click)&&(r.__mouseIsDown=!0,r.__hit=this.hitTest(r,this.mouse),r.__hit&&(r.mousedown&&r.mousedown(this.mouse),r.__isDown=!0,!r.interactiveChildren)))break}},PIXI.InteractionManager.prototype.onMouseUp=function(t){t.preventDefault(),this.mouse.global;for(var e=this.interactiveItems.length,i=!1,r=0;e>r;r++){var s=this.interactiveItems[r];(s.mouseup||s.mouseupoutside||s.click)&&(s.__hit=this.hitTest(s,this.mouse),s.__hit&&!i?(s.mouseup&&s.mouseup(this.mouse),s.__isDown&&s.click&&s.click(this.mouse),s.interactiveChildren||(i=!0)):s.__isDown&&s.mouseupoutside&&s.mouseupoutside(this.mouse),s.__isDown=!1)}},PIXI.InteractionManager.prototype.hitTest=function(t,e){var i=e.global;if(!t.visible)return!1;if(t instanceof PIXI.Sprite){var r=t.worldTransform,s=r[0],n=r[1],a=r[2],o=r[3],h=r[4],u=r[5],c=1/(s*h+n*-o),d=h*c*i.x+-n*c*i.y+(u*n-a*h)*c,l=s*c*i.y+-o*c*i.x+(-u*s+a*o)*c,I=t.texture.frame.width,p=t.texture.frame.height,f=-I*t.anchor.x;if(d>f&&f+I>d){var x=-p*t.anchor.y;if(l>x&&x+p>l)return e.target=t,!0}}else if(t.hitArea){var r=t.worldTransform,v=t.hitArea,s=r[0],n=r[1],a=r[2],o=r[3],h=r[4],u=r[5],c=1/(s*h+n*-o),d=h*c*i.x+-n*c*i.y+(u*n-a*h)*c,l=s*c*i.y+-o*c*i.x+(-u*s+a*o)*c,f=v.x;if(d>f&&f+v.width>d){var x=v.y;if(l>x&&x+v.height>l)return!0}}for(var P=t.children.length,g=0;P>g;g++){var b=t.children[g],X=this.hitTest(b,e);if(X)return!0}return!1},PIXI.InteractionManager.prototype.onTouchMove=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.touchs[s.identifier];n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height)}for(var a=this.interactiveItems.length,r=0;a>r;r++){var o=this.interactiveItems[r];o.touchmove&&o.touchmove(n)}},PIXI.InteractionManager.prototype.onTouchStart=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.pool.pop();n||(n=new PIXI.InteractionData),this.touchs[s.identifier]=n,n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height);for(var a=this.interactiveItems.length,o=0;a>o;o++){var h=this.interactiveItems[o];if((h.touchstart||h.tap)&&(h.__hit=this.hitTest(h,n),h.__hit&&(h.touchstart&&h.touchstart(n),h.__isDown=!0,h.__touchData=n,!h.interactiveChildren)))break}}},PIXI.InteractionManager.prototype.onTouchEnd=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.touchs[s.identifier],a=!1;n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var u=this.interactiveItems[h],c=u.__touchData;u.__hit=this.hitTest(u,n),c==n&&((u.touchend||u.tap)&&(u.__hit&&!a?(u.touchend&&u.touchend(n),u.__isDown&&u.tap&&u.tap(n),u.interactiveChildren||(a=!0)):u.__isDown&&u.touchendoutside&&u.touchendoutside(n),u.__isDown=!1),u.__touchData=null)}this.pool.push(n),this.touchs[s.identifier]=null}},PIXI.InteractionData=function(){this.global=new PIXI.Point,this.local=new PIXI.Point,this.target},PIXI.InteractionData.prototype.getLocalPosition=function(t){var e=t.worldTransform,i=this.global,r=e[0],s=e[1],n=e[2],a=e[3],o=e[4],h=e[5],u=1/(r*o+s*-a);return new PIXI.Point(o*u*i.x+-s*u*i.y+(h*s-n*o)*u,r*u*i.y+-a*u*i.x+(-h*r+n*a)*u)},PIXI.InteractionData.constructor=PIXI.InteractionData,PIXI.Stage=function(t,e){PIXI.DisplayObjectContainer.call(this),this.worldTransform=PIXI.mat3.create(),this.__childrenAdded=[],this.__childrenRemoved=[],this.childIndex=0,this.stage=this,this.stage.hitArea=new PIXI.Rectangle(0,0,1e5,1e5),this.interactive=!!e,this.interactionManager=new PIXI.InteractionManager(this),this.setBackgroundColor(t),this.worldVisible=!0},PIXI.Stage.constructor=PIXI.Stage,PIXI.Stage.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Stage.prototype.updateTransform=function(){this.worldAlpha=1;for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform();this.dirty&&(this.dirty=!1,this.interactionManager.dirty=!0),this.interactive&&this.interactionManager.update()},PIXI.Stage.prototype.setBackgroundColor=function(t){this.backgroundColor=t||0,this.backgroundColorSplit=HEXtoRGB(this.backgroundColor),this.backgroundColorString="#"+this.backgroundColor.toString(16)},PIXI.Stage.prototype.getMousePosition=function(){return this.interactionManager.mouse.global},PIXI.Stage.prototype.__addChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=this,t.children)for(var e=0;t.children.length>e;e++)this.__addChild(t.children[e])},PIXI.Stage.prototype.__removeChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=void 0,t.children)for(var e=0,i=t.children.length;i>e;e++)this.__removeChild(t.children[e])},window.requestAnimFrame=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(t){window.setTimeout(t,1e3/60)}}(),"function"!=typeof Function.prototype.bind&&(Function.prototype.bind=function(){var t=Array.prototype.slice;return function(e){function i(){var n=s.concat(t.call(arguments));r.apply(this instanceof i?this:e,n)}var r=this,s=t.call(arguments,1);if("function"!=typeof r)throw new TypeError;return i.prototype=function n(t){return t&&(n.prototype=t),this instanceof n?void 0:new n}(r.prototype),i}}());var AjaxRequest=function(){var t=["Msxml2.XMLHTTP","Microsoft.XMLHTTP"];if(!window.ActiveXObject)return window.XMLHttpRequest?new XMLHttpRequest:!1;for(var e=0;t.length>e;e++)try{return new ActiveXObject(t[e])}catch(i){}};PIXI.EventTarget=function(){var t={};this.addEventListener=this.on=function(e,i){void 0===t[e]&&(t[e]=[]),-1===t[e].indexOf(i)&&t[e].push(i)},this.dispatchEvent=this.emit=function(e){for(var i in t[e.type])t[e.type][i](e)},this.removeEventListener=this.off=function(e,i){var r=t[e].indexOf(i);-1!==r&&t[e].splice(r,1)}},determineMatrixArrayType(),PIXI.mat3={},PIXI.mat3.create=function(){var t=new PIXI.Matrix(9);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},PIXI.mat4={},PIXI.mat4.create=function(){var t=new PIXI.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},PIXI.mat3.multiply=function(t,e,i){i||(i=t);var r=t[0],s=t[1],n=t[2],a=t[3],o=t[4],h=t[5],u=t[6],c=t[7],d=t[8],l=e[0],I=e[1],p=e[2],f=e[3],x=e[4],v=e[5],P=e[6],g=e[7],b=e[8];return i[0]=l*r+I*a+p*u,i[1]=l*s+I*o+p*c,i[2]=l*n+I*h+p*d,i[3]=f*r+x*a+v*u,i[4]=f*s+x*o+v*c,i[5]=f*n+x*h+v*d,i[6]=P*r+g*a+b*u,i[7]=P*s+g*o+b*c,i[8]=P*n+g*h+b*d,i},PIXI.mat3.toMat4=function(t,e){return e||(e=PIXI.mat4.create()),e[15]=1,e[14]=0,e[13]=0,e[12]=0,e[11]=0,e[10]=t[8],e[9]=t[7],e[8]=t[6],e[7]=0,e[6]=t[5],e[5]=t[4],e[4]=t[3],e[3]=0,e[2]=t[2],e[1]=t[1],e[0]=t[0],e},PIXI.mat4.create=function(){var t=new PIXI.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},PIXI.mat4.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],s=t[3],n=t[6],a=t[7],o=t[11];return t[1]=t[4],t[2]=t[8],t[3]=t[12],t[4]=i,t[6]=t[9],t[7]=t[13],t[8]=r,t[9]=n,t[11]=t[14],t[12]=s,t[13]=a,t[14]=o,t}return e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=t[1],e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=t[2],e[9]=t[6],e[10]=t[10],e[11]=t[14],e[12]=t[3],e[13]=t[7],e[14]=t[11],e[15]=t[15],e},PIXI.mat4.multiply=function(t,e,i){i||(i=t);var r=t[0],s=t[1],n=t[2],a=t[3],o=t[4],h=t[5],u=t[6],c=t[7],d=t[8],l=t[9],I=t[10],p=t[11],f=t[12],x=t[13],v=t[14],P=t[15],g=e[0],b=e[1],X=e[2],m=e[3];return i[0]=g*r+b*o+X*d+m*f,i[1]=g*s+b*h+X*l+m*x,i[2]=g*n+b*u+X*I+m*v,i[3]=g*a+b*c+X*p+m*P,g=e[4],b=e[5],X=e[6],m=e[7],i[4]=g*r+b*o+X*d+m*f,i[5]=g*s+b*h+X*l+m*x,i[6]=g*n+b*u+X*I+m*v,i[7]=g*a+b*c+X*p+m*P,g=e[8],b=e[9],X=e[10],m=e[11],i[8]=g*r+b*o+X*d+m*f,i[9]=g*s+b*h+X*l+m*x,i[10]=g*n+b*u+X*I+m*v,i[11]=g*a+b*c+X*p+m*P,g=e[12],b=e[13],X=e[14],m=e[15],i[12]=g*r+b*o+X*d+m*f,i[13]=g*s+b*h+X*l+m*x,i[14]=g*n+b*u+X*I+m*v,i[15]=g*a+b*c+X*p+m*P,i},PIXI.autoDetectRenderer=function(t,e,i,r){t||(t=800),e||(e=600);var s=function(){try{return!!window.WebGLRenderingContext&&!!document.createElement("canvas").getContext("experimental-webgl")}catch(t){return!1}}();return s?new PIXI.WebGLRenderer(t,e,i,r):new PIXI.CanvasRenderer(t,e,i,r)},PIXI.shaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * vColor;","}"],PIXI.shaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform mat4 uMVMatrix;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","gl_Position = uMVMatrix * vec4(aVertexPosition, 1.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],PIXI.CompileVertexShader=function(t,e){return PIXI._CompileShader(t,e,t.VERTEX_SHADER)},PIXI.CompileFragmentShader=function(t,e){return PIXI._CompileShader(t,e,t.FRAGMENT_SHADER)},PIXI._CompileShader=function(t,e,i){var r=e.join("\n"),s=t.createShader(i);return t.shaderSource(s,r),t.compileShader(s),t.getShaderParameter(s,t.COMPILE_STATUS)?s:(alert(t.getShaderInfoLog(s)),null)},PIXI._defaultFrame=new PIXI.Rectangle(0,0,1,1),PIXI.gl,PIXI.WebGLRenderer=function(t,e,i,r){this.transparent=!!r,this.width=t||800,this.height=e||600,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height;var s=this;this.view.addEventListener("webglcontextlost",function(t){s.handleContextLost(t)},!1),this.view.addEventListener("webglcontextrestored",function(t){s.handleContextRestored(t)},!1),this.batchs=[];try{PIXI.gl=this.gl=this.view.getContext("experimental-webgl",{alpha:this.transparent,antialias:!1,premultipliedAlpha:!0})}catch(n){throw Error(" This browser does not support webGL. Try using the canvas renderer"+this)}this.initShaders();var a=this.gl;PIXI.WebGLRenderer.gl=a,this.batch=new PIXI.WebGLBatch(a),a.disable(a.DEPTH_TEST),a.disable(a.CULL_FACE),a.enable(a.BLEND),a.colorMask(!0,!0,!0,this.transparent),this.projectionMatrix=PIXI.mat4.create(),this.resize(this.width,this.height),this.contextLost=!1,this.stageRenderGroup=new PIXI.WebGLRenderGroup(this.gl)},PIXI.WebGLRenderer.constructor=PIXI.WebGLRenderer,PIXI.WebGLRenderer.getBatch=function(){return 0==PIXI._batchs.length?new PIXI.WebGLBatch(PIXI.WebGLRenderer.gl):PIXI._batchs.pop()},PIXI.WebGLRenderer.returnBatch=function(t){t.clean(),PIXI._batchs.push(t)},PIXI.WebGLRenderer.prototype.initShaders=function(){var t=this.gl,e=PIXI.CompileFragmentShader(t,PIXI.shaderFragmentSrc),i=PIXI.CompileVertexShader(t,PIXI.shaderVertexSrc);PIXI.shaderProgram=t.createProgram();var r=PIXI.shaderProgram;t.attachShader(r,i),t.attachShader(r,e),t.linkProgram(r),t.getProgramParameter(r,t.LINK_STATUS)||alert("Could not initialise shaders"),t.useProgram(r),r.vertexPositionAttribute=t.getAttribLocation(r,"aVertexPosition"),t.enableVertexAttribArray(r.vertexPositionAttribute),r.textureCoordAttribute=t.getAttribLocation(r,"aTextureCoord"),t.enableVertexAttribArray(r.textureCoordAttribute),r.colorAttribute=t.getAttribLocation(r,"aColor"),t.enableVertexAttribArray(r.colorAttribute),r.mvMatrixUniform=t.getUniformLocation(r,"uMVMatrix"),r.samplerUniform=t.getUniformLocation(r,"uSampler")},PIXI.WebGLRenderer.prototype.render=function(t){if(!this.contextLost){this.__stage!==t&&(this.__stage=t,this.stageRenderGroup.setRenderable(t));for(var e=0;PIXI.texturesToUpdate.length>e;e++)this.updateTexture(PIXI.texturesToUpdate[e]);for(var e=0;PIXI.texturesToDestroy.length>e;e++)this.destroyTexture(PIXI.texturesToDestroy[e]);PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[],t.updateTransform();var i=this.gl;if(i.colorMask(!0,!0,!0,this.transparent),i.viewport(0,0,this.width,this.height),i.bindFramebuffer(i.FRAMEBUFFER,null),i.clearColor(t.backgroundColorSplit[0],t.backgroundColorSplit[1],t.backgroundColorSplit[2],this.transparent),i.clear(i.COLOR_BUFFER_BIT),this.stageRenderGroup.backgroundColor=t.backgroundColorSplit,this.stageRenderGroup.render(this.projectionMatrix),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),PIXI.Texture.frameUpdates.length>0){for(var e=0;PIXI.Texture.frameUpdates.length>e;e++)PIXI.Texture.frameUpdates[e].updateFrame=!1;PIXI.Texture.frameUpdates=[]}}},PIXI.WebGLRenderer.prototype.updateTexture=function(t){var e=this.gl;t._glTexture||(t._glTexture=e.createTexture()),t.hasLoaded&&(e.bindTexture(e.TEXTURE_2D,t._glTexture),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t.source),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),t._powerOf2?(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT)):(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)),e.bindTexture(e.TEXTURE_2D,null)),this.refreshBatchs=!0},PIXI.WebGLRenderer.prototype.destroyTexture=function(t){var e=this.gl;t._glTexture&&(t._glTexture=e.createTexture(),e.deleteTexture(e.TEXTURE_2D,t._glTexture))},PIXI.WebGLRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e,this.gl.viewport(0,0,this.width,this.height);var i=this.projectionMatrix;i[0]=2/this.width,i[5]=-2/this.height,i[12]=-1,i[13]=1},PIXI.WebGLRenderer.prototype.handleContextLost=function(t){t.preventDefault(),this.contextLost=!0},PIXI.WebGLRenderer.prototype.handleContextRestored=function(){this.gl=this.view.getContext("experimental-webgl",{alpha:!0}),this.initShaders();for(var t=0;PIXI.TextureCache.length>t;t++)this.updateTexture(PIXI.TextureCache[t]);for(var t=0;this.batchs.length>t;t++)this.batchs[t].restoreLostContext(this.gl),this.batchs[t].dirty=!0;PIXI._restoreBatchs(this.gl),this.contextLost=!1},PIXI._batchs=[],PIXI._getBatch=function(t){return 0==PIXI._batchs.length?new PIXI.WebGLBatch(t):PIXI._batchs.pop()},PIXI._returnBatch=function(t){t.clean(),PIXI._batchs.push(t)},PIXI._restoreBatchs=function(t){for(var e=0;PIXI._batchs.length>e;e++)PIXI._batchs[e].restoreLostContext(t)},PIXI.WebGLBatch=function(t){this.gl=t,this.size=0,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer(),this.blendMode=PIXI.blendModes.NORMAL,this.dynamicSize=1},PIXI.WebGLBatch.constructor=PIXI.WebGLBatch,PIXI.WebGLBatch.prototype.clean=function(){this.verticies=[],this.uvs=[],this.indices=[],this.colors=[],this.dynamicSize=1,this.texture=null,this.last=null,this.size=0,this.head,this.tail},PIXI.WebGLBatch.prototype.restoreLostContext=function(t){this.gl=t,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer()},PIXI.WebGLBatch.prototype.init=function(t){t.batch=this,this.dirty=!0,this.blendMode=t.blendMode,this.texture=t.texture.baseTexture,this.head=t,this.tail=t,this.size=1,this.growBatch()},PIXI.WebGLBatch.prototype.insertBefore=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__prev;e.__prev=t,t.__next=e,i?(t.__prev=i,i.__next=t):this.head=t},PIXI.WebGLBatch.prototype.insertAfter=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__next;e.__next=t,t.__prev=e,i?(t.__next=i,i.__prev=t):this.tail=t},PIXI.WebGLBatch.prototype.remove=function(t){return this.size--,0==this.size?(t.batch=null,t.__prev=null,t.__next=null,void 0):(t.__prev?t.__prev.__next=t.__next:(this.head=t.__next,this.head.__prev=null),t.__next?t.__next.__prev=t.__prev:(this.tail=t.__prev,this.tail.__next=null),t.batch=null,t.__next=null,t.__prev=null,this.dirty=!0,void 0)},PIXI.WebGLBatch.prototype.split=function(t){this.dirty=!0;var e=new PIXI.WebGLBatch(this.gl);e.init(t),e.tail=this.tail,this.tail=t.__prev,this.tail.__next=null,t.__prev=null;for(var i=0;t;)i++,t.batch=e,t=t.__next;return e.size=i,this.size-=i,e},PIXI.WebGLBatch.prototype.merge=function(t){this.dirty=!0,this.tail.__next=t.head,t.head.__prev=this.tail,this.size+=t.size,this.tail=t.tail;for(var e=t.head;e;)e.batch=this,e=e.__next},PIXI.WebGLBatch.prototype.growBatch=function(){var t=this.gl;this.dynamicSize=1==this.size?1:1.5*this.size,this.verticies=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.vertexBuffer),t.bufferData(t.ARRAY_BUFFER,this.verticies,t.DYNAMIC_DRAW),this.uvs=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.uvBuffer),t.bufferData(t.ARRAY_BUFFER,this.uvs,t.DYNAMIC_DRAW),this.dirtyUVS=!0,this.colors=new Float32Array(4*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.colorBuffer),t.bufferData(t.ARRAY_BUFFER,this.colors,t.DYNAMIC_DRAW),this.dirtyColors=!0,this.indices=new Uint16Array(6*this.dynamicSize);for(var e=this.indices.length/6,i=0;e>i;i++){var r=6*i,s=4*i;this.indices[r+0]=s+0,this.indices[r+1]=s+1,this.indices[r+2]=s+2,this.indices[r+3]=s+0,this.indices[r+4]=s+2,this.indices[r+5]=s+3}t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,this.indexBuffer),t.bufferData(t.ELEMENT_ARRAY_BUFFER,this.indices,t.STATIC_DRAW)},PIXI.WebGLBatch.prototype.refresh=function(){this.gl,this.dynamicSizei;i++)this.removeDisplayObjectAndChildren(this.toRemove[i]);this.toRemove=[],this.checkVisibility(this.root,this.root.visible);for(var r,i=0;this.batchs.length>i;i++)r=this.batchs[i],r instanceof PIXI.WebGLBatch?this.batchs[i].render():r instanceof PIXI.TilingSprite?r.visible&&this.renderTilingSprite(r,t):r instanceof PIXI.Strip&&r.visible&&this.renderStrip(r,t)},PIXI.WebGLRenderGroup.prototype.renderSpecific=function(t,e){var i=this.gl;this.checkVisibility(t,t.visible),i.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform,!1,e);var r,s,n,a,o=t.renderable?t:this.getNextRenderable(t),h=o.batch;if(o instanceof PIXI.Sprite){h=o.batch;var u=h.head;if(u==o)r=0;else for(r=1;u.__next!=o;)r++,u=u.__next}else h=o;for(var c,d=t,l=t;l.children.length>0;)l=l.children[l.children.length-1],l.renderable&&(d=l);if(d instanceof PIXI.Sprite){c=d.batch;var u=c.head;if(u==d)n=0;else for(n=1;u.__next!=d;)n++,u=u.__next}else c=d;if(h==c)return h instanceof PIXI.WebGLBatch?h.render(r,n+1):h instanceof PIXI.TilingSprite?h.visible&&this.renderTilingSprite(h,e):h instanceof PIXI.Strip?h.visible&&this.renderStrip(h,e):h instanceof PIXI.CustomRenderable&&h.visible&&h.renderWebGL(this,e),void 0;s=this.batchs.indexOf(h),a=this.batchs.indexOf(c),h instanceof PIXI.WebGLBatch?h.render(r):h instanceof PIXI.TilingSprite?h.visible&&this.renderTilingSprite(h,e):h instanceof PIXI.Strip?h.visible&&this.renderStrip(h,e):h instanceof PIXI.CustomRenderable&&h.visible&&h.renderWebGL(this,e);for(var I=s+1;a>I;I++)renderable=this.batchs[I],renderable instanceof PIXI.WebGLBatch?this.batchs[I].render():renderable instanceof PIXI.TilingSprite?renderable.visible&&this.renderTilingSprite(renderable,e):renderable instanceof PIXI.Strip?renderable.visible&&this.renderStrip(renderable,e):renderable instanceof PIXI.CustomRenderable&&renderable.visible&&renderable.renderWebGL(this,e);c instanceof PIXI.WebGLBatch?c.render(0,n+1):c instanceof PIXI.TilingSprite?c.visible&&this.renderTilingSprite(c):c instanceof PIXI.Strip?c.visible&&this.renderStrip(c):c instanceof PIXI.CustomRenderable&&c.visible&&c.renderWebGL(this,e)},PIXI.WebGLRenderGroup.prototype.checkVisibility=function(t,e){for(var i=t.children,r=0;i.length>r;r++){var s=i[r];s.worldVisible=s.visible&&e,s.textureChange&&(s.textureChange=!1,s.worldVisible&&(this.removeDisplayObject(s),this.addDisplayObject(s))),s.children.length>0&&this.checkVisibility(s,s.worldVisible)}},PIXI.WebGLRenderGroup.prototype.addDisplayObject=function(t){if(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.__renderGroup=this,t.renderable){var e=this.getPreviousRenderable(t),i=this.getNextRenderable(t);if(t instanceof PIXI.Sprite){var r,s;if(e instanceof PIXI.Sprite){if(r=e.batch,r&&r.texture==t.texture.baseTexture&&r.blendMode==t.blendMode)return r.insertAfter(t,e),void 0}else r=e;if(i)if(i instanceof PIXI.Sprite){if(s=i.batch){if(s.texture==t.texture.baseTexture&&s.blendMode==t.blendMode)return s.insertBefore(t,i),void 0;if(s==r){var n=r.split(i),a=PIXI.WebGLRenderer.getBatch(),o=this.batchs.indexOf(r);return a.init(t),this.batchs.splice(o+1,0,a,n),void 0}}}else s=i;var a=PIXI.WebGLRenderer.getBatch();if(a.init(t),r){var o=this.batchs.indexOf(r);this.batchs.splice(o+1,0,a)}else this.batchs.push(a)}else t instanceof PIXI.TilingSprite?(this.initTilingSprite(t),this.batchs.push(t)):t instanceof PIXI.Strip&&(this.initStrip(t),this.batchs.push(t));this.batchUpdate=!0}},PIXI.WebGLRenderGroup.prototype.addDisplayObjectAndChildren=function(t){this.addDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.addDisplayObjectAndChildren(e[i])},PIXI.WebGLRenderGroup.prototype.removeDisplayObject=function(t){if(t.__renderGroup=null,t.renderable){var e;if(t instanceof PIXI.Sprite){var i=t.batch;if(!i)return;i.remove(t),0==i.size&&(e=i)}else e=t;if(e){var r=this.batchs.indexOf(e);if(-1==r)return;if(0==r||r==this.batchs.length-1)return this.batchs.splice(r,1),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e),void 0;if(this.batchs[r-1]instanceof PIXI.WebGLBatch&&this.batchs[r+1]instanceof PIXI.WebGLBatch&&this.batchs[r-1].texture==this.batchs[r+1].texture&&this.batchs[r-1].blendMode==this.batchs[r+1].blendMode)return this.batchs[r-1].merge(this.batchs[r+1]),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e),PIXI.WebGLRenderer.returnBatch(this.batchs[r+1]),this.batchs.splice(r,2),void 0;this.batchs.splice(r,1),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e)}}},PIXI.WebGLRenderGroup.prototype.removeDisplayObjectAndChildren=function(t){if(t.__renderGroup==this){this.removeDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.removeDisplayObjectAndChildren(e[i])}},PIXI.WebGLRenderGroup.prototype.getNextRenderable=function(t){var e=t;do{if(0==e.children.length){if(!e.parent)return null;for(;e.childIndex==e.parent.children.length-1;)if(e=e.parent,e==this.root){e=null;break}e&&(e=e.parent.children[e.childIndex+1])}else e=e.children[0];if(!e)break}while(!e.renderable||!e.__renderGroup);return e},PIXI.WebGLRenderGroup.prototype.getPreviousRenderable=function(t){var e=t;do{if(0==e.childIndex){if(e=e.parent,!e)return null}else for(e=e.parent.children[e.childIndex-1];0!=e.children.length;)e=e.children[e.children.length-1];if(e==this.root)break}while(!e.renderable||!e.__renderGroup);return e},PIXI.WebGLRenderGroup.prototype.initTilingSprite=function(t){var e=this.gl;t.verticies=new Float32Array([0,0,t.width,0,t.width,t.height,0,t.height]),t.uvs=new Float32Array([0,0,1,0,1,1,0,1]),t.colors=new Float32Array([1,1,1,1]),t.indices=new Uint16Array([0,1,3,2]),t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW),t.texture.baseTexture._glTexture?(e.bindTexture(e.TEXTURE_2D,t.texture.baseTexture._glTexture),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT),t.texture.baseTexture._powerOf2=!0):t.texture.baseTexture._powerOf2=!0},PIXI.WebGLRenderGroup.prototype.renderStrip=function(t,e){var i=this.gl,r=PIXI.shaderProgram,s=PIXI.mat3.toMat4(t.worldTransform);PIXI.mat4.transpose(s),PIXI.mat4.multiply(e,s,s),i.uniformMatrix4fv(r.mvMatrixUniform,!1,s),t.blendMode==PIXI.blendModes.NORMAL?i.blendFunc(i.ONE,i.ONE_MINUS_SRC_ALPHA):i.blendFunc(i.ONE,i.ONE_MINUS_SRC_COLOR),t.dirty?(t.dirty=!1,i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferData(i.ARRAY_BUFFER,t.verticies,i.STATIC_DRAW),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferData(i.ARRAY_BUFFER,t.uvs,i.STATIC_DRAW),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.bufferData(i.ARRAY_BUFFER,t.colors,i.STATIC_DRAW),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer),i.bufferData(i.ELEMENT_ARRAY_BUFFER,t.indices,i.STATIC_DRAW)):(i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.verticies),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer)),i.drawElements(i.TRIANGLE_STRIP,t.indices.length,i.UNSIGNED_SHORT,0),i.uniformMatrix4fv(r.mvMatrixUniform,!1,e)},PIXI.WebGLRenderGroup.prototype.renderTilingSprite=function(t,e){var i=this.gl;PIXI.shaderProgram;var r=t.tilePosition,s=t.tileScale,n=r.x/t.texture.baseTexture.width,a=r.y/t.texture.baseTexture.height,o=t.width/t.texture.baseTexture.width/s.x,h=t.height/t.texture.baseTexture.height/s.y;t.uvs[0]=0-n,t.uvs[1]=0-a,t.uvs[2]=1*o-n,t.uvs[3]=0-a,t.uvs[4]=1*o-n,t.uvs[5]=1*h-a,t.uvs[6]=0-n,t.uvs[7]=1*h-a,i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.uvs),this.renderStrip(t,e)},PIXI.WebGLRenderer.prototype.initStrip=function(t){var e=this.gl;this.shaderProgram,t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW)},PIXI.CanvasRenderer=function(t,e,i,r){this.transparent=r,this.width=t||800,this.height=e||600,this.refresh=!0,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height,this.count=0,this.context=this.view.getContext("2d")},PIXI.CanvasRenderer.constructor=PIXI.CanvasRenderer,PIXI.CanvasRenderer.prototype.render=function(t){PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[],t.updateTransform(),this.view.style.backgroundColor==t.backgroundColorString||this.transparent||(this.view.style.backgroundColor=t.backgroundColorString),this.context.setTransform(1,0,0,1,0,0),this.context.clearRect(0,0,this.width,this.height),this.renderDisplayObject(t),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),PIXI.Texture.frameUpdates.length>0&&(PIXI.Texture.frameUpdates=[])},PIXI.CanvasRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e},PIXI.CanvasRenderer.prototype.renderDisplayObject=function(t){var e=t.worldTransform,i=this.context;if(t.visible){if(t instanceof PIXI.Sprite){var r=t.texture.frame;r&&(i.globalAlpha=t.worldAlpha,i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),i.drawImage(t.texture.baseTexture.source,r.x,r.y,r.width,r.height,t.anchor.x*-r.width,t.anchor.y*-r.height,r.width,r.height))}else t instanceof PIXI.Strip?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderStrip(t)):t instanceof PIXI.TilingSprite?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderTilingSprite(t)):t instanceof PIXI.CustomRenderable&&t.renderCanvas(this);for(var s=0;t.children.length>s;s++)this.renderDisplayObject(t.children[s]);this.context.setTransform(1,0,0,1,0,0)}},PIXI.CanvasRenderer.prototype.renderStripFlat=function(t){var e=this.context,i=t.verticies;t.uvs;var r=i.length/2;this.count++,e.beginPath();for(var s=1;r-2>s;s++){var n=2*s,a=i[n],o=i[n+2],h=i[n+4],u=i[n+1],c=i[n+3],d=i[n+5];e.moveTo(a,u),e.lineTo(o,c),e.lineTo(h,d)}e.fillStyle="#FF0000",e.fill(),e.closePath()},PIXI.CanvasRenderer.prototype.renderTilingSprite=function(t){var e=this.context;t.__tilePattern||(t.__tilePattern=e.createPattern(t.texture.baseTexture.source,"repeat")),e.beginPath();var i=t.tilePosition,r=t.tileScale;e.scale(r.x,r.y),e.translate(i.x,i.y),e.fillStyle=t.__tilePattern,e.fillRect(-i.x,-i.y,t.width/r.x,t.height/r.y),e.scale(1/r.x,1/r.y),e.translate(-i.x,-i.y),e.closePath()},PIXI.CanvasRenderer.prototype.renderStrip=function(t){var e=this.context,i=t.verticies,r=t.uvs,s=i.length/2;this.count++;for(var n=1;s-2>n;n++){var a=2*n,o=i[a],h=i[a+2],u=i[a+4],c=i[a+1],d=i[a+3],l=i[a+5],I=r[a]*t.texture.width,p=r[a+2]*t.texture.width,f=r[a+4]*t.texture.width,x=r[a+1]*t.texture.height,v=r[a+3]*t.texture.height,P=r[a+5]*t.texture.height;e.save(),e.beginPath(),e.moveTo(o,c),e.lineTo(h,d),e.lineTo(u,l),e.closePath(),e.clip();var g=I*v+x*f+p*P-v*f-x*p-I*P,b=o*v+x*u+h*P-v*u-x*h-o*P,X=I*h+o*f+p*u-h*f-o*p-I*u,m=I*v*u+x*h*f+o*p*P-o*v*f-x*p*u-I*h*P,T=c*v+x*l+d*P-v*l-x*d-c*P,y=I*d+c*f+p*l-d*f-c*p-I*l,_=I*v*l+x*d*f+c*p*P-c*v*f-x*p*l-I*d*P;e.transform(b/g,T/g,X/g,y/g,m/g,_/g),e.drawImage(t.texture.baseTexture.source,0,0),e.restore()}},PIXI.Strip=function(t,e,i){PIXI.DisplayObjectContainer.call(this),this.texture=t,this.blendMode=PIXI.blendModes.NORMAL;try{this.uvs=new Float32Array([0,1,1,1,1,0,0,1]),this.verticies=new Float32Array([0,0,0,0,0,0,0,0,0]),this.colors=new Float32Array([1,1,1,1]),this.indices=new Uint16Array([0,1,2,3])}catch(r){this.uvs=[0,1,1,1,1,0,0,1],this.verticies=[0,0,0,0,0,0,0,0,0],this.colors=[1,1,1,1],this.indices=[0,1,2,3]}this.width=e,this.height=i,t.baseTexture.hasLoaded?(this.width=this.texture.frame.width,this.height=this.texture.frame.height,this.updateFrame=!0):(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},PIXI.Strip.constructor=PIXI.Strip,PIXI.Strip.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Strip.prototype.setTexture=function(t){this.texture=t,this.width=t.frame.width,this.height=t.frame.height,this.updateFrame=!0},PIXI.Strip.prototype.onTextureUpdate=function(){this.updateFrame=!0},PIXI.Rope=function(t,e){PIXI.Strip.call(this,t),this.points=e;try{this.verticies=new Float32Array(4*e.length),this.uvs=new Float32Array(4*e.length),this.colors=new Float32Array(2*e.length),this.indices=new Uint16Array(2*e.length)}catch(i){this.verticies=verticies,this.uvs=uvs,this.colors=colors,this.indices=indices}this.refresh()},PIXI.Rope.constructor=PIXI.Rope,PIXI.Rope.prototype=Object.create(PIXI.Strip.prototype),PIXI.Rope.prototype.refresh=function(){var t=this.points;if(!(1>t.length)){var e=this.uvs,i=this.indices,r=this.colors,s=t[0],n=t[0];this.count-=.2,e[0]=0,e[1]=1,e[2]=0,e[3]=1,r[0]=1,r[1]=1,i[0]=0,i[1]=1;for(var a=t.length,o=1;a>o;o++){var n=t[o],h=4*o,u=o/(a-1);o%2?(e[h]=u,e[h+1]=0,e[h+2]=u,e[h+3]=1):(e[h]=u,e[h+1]=0,e[h+2]=u,e[h+3]=1),h=2*o,r[h]=1,r[h+1]=1,h=2*o,i[h]=h,i[h+1]=h+1,s=n}}},PIXI.Rope.prototype.updateTransform=function(){var t=this.points;if(!(1>t.length)){var e,i=this.verticies,r=t[0],s={x:0,y:0},n=t[0];this.count-=.2,i[0]=n.x+s.x,i[1]=n.y+s.y,i[2]=n.x-s.x,i[3]=n.y-s.y;for(var a=t.length,o=1;a>o;o++){var n=t[o],h=4*o;e=t.length-1>o?t[o+1]:n,s.y=-(e.x-r.x),s.x=e.y-r.y;var u=10*(1-o/(a-1));u>1&&(u=1);var c=Math.sqrt(s.x*s.x+s.y*s.y),d=this.texture.height/2;s.x/=c,s.y/=c,s.x*=d,s.y*=d,i[h]=n.x+s.x,i[h+1]=n.y+s.y,i[h+2]=n.x-s.x,i[h+3]=n.y-s.y,r=n}PIXI.DisplayObjectContainer.prototype.updateTransform.call(this)}},PIXI.Rope.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0},PIXI.TilingSprite=function(t,e,i){PIXI.DisplayObjectContainer.call(this),this.texture=t,this.width=e,this.height=i,this.renderable=!0,this.tileScale=new PIXI.Point(1,1),this.tilePosition=new PIXI.Point(0,0),this.blendMode=PIXI.blendModes.NORMAL},PIXI.TilingSprite.constructor=PIXI.TilingSprite,PIXI.TilingSprite.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.TilingSprite.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0},PIXI.TilingSprite.prototype.onTextureUpdate=function(){this.updateFrame=!0},PIXI.CustomRenderable=function(){PIXI.DisplayObject.call(this)},PIXI.CustomRenderable.constructor=PIXI.CustomRenderable,PIXI.CustomRenderable.prototype=Object.create(PIXI.DisplayObject.prototype),PIXI.CustomRenderable.prototype.renderCanvas=function(){},PIXI.CustomRenderable.prototype.initWebGL=function(){},PIXI.CustomRenderable.prototype.renderWebGL=function(){},PIXI.BaseTextureCache={},PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[],PIXI.BaseTexture=function(t){if(PIXI.EventTarget.call(this),this.width=100,this.height=100,this.source=t,t){if(this.source instanceof Image)if(this.source.complete)this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,PIXI.texturesToUpdate.push(this);else{var e=this;this.source.onload=function(){e.hasLoaded=!0,e.width=e.source.width,e.height=e.source.height,PIXI.texturesToUpdate.push(e),e.dispatchEvent({type:"loaded",content:e})}}else this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,PIXI.texturesToUpdate.push(this);this._powerOf2=!1}},PIXI.BaseTexture.constructor=PIXI.BaseTexture,PIXI.BaseTexture.prototype.destroy=function(){this.source instanceof Image&&(this.source.src=null),this.source=null,PIXI.texturesToDestroy.push(this)},PIXI.BaseTexture.fromImage=function(t,e){var i=PIXI.BaseTextureCache[t];if(!i){var r=new Image;e&&(r.crossOrigin=""),r.src=t,i=new PIXI.BaseTexture(r),PIXI.BaseTextureCache[t]=i}return i},PIXI.TextureCache={},PIXI.FrameCache={},PIXI.Texture=function(t,e){if(PIXI.EventTarget.call(this),e||(this.noFrame=!0,e=new PIXI.Rectangle(0,0,1,1)),this.trim=new PIXI.Point,t instanceof PIXI.Texture&&(t=t.baseTexture),this.baseTexture=t,this.frame=e,this.scope=this,t.hasLoaded)this.noFrame&&(e=new PIXI.Rectangle(0,0,t.width,t.height)),this.setFrame(e);else{var i=this;t.addEventListener("loaded",function(){i.onBaseTextureLoaded()})}},PIXI.Texture.constructor=PIXI.Texture,PIXI.Texture.prototype.onBaseTextureLoaded=function(){var t=this.baseTexture;t.removeEventListener("loaded",this.onLoaded),this.noFrame&&(this.frame=new PIXI.Rectangle(0,0,t.width,t.height)),this.noFrame=!1,this.width=this.frame.width,this.height=this.frame.height,this.scope.dispatchEvent({type:"update",content:this})},PIXI.Texture.prototype.destroy=function(t){t&&this.baseTexture.destroy()},PIXI.Texture.prototype.setFrame=function(t){if(this.frame=t,this.width=t.width,this.height=t.height,t.x+t.width>this.baseTexture.width||t.y+t.height>this.baseTexture.height)throw Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);this.updateFrame=!0,PIXI.Texture.frameUpdates.push(this)},PIXI.Texture.fromImage=function(t,e){var i=PIXI.TextureCache[t];return i||(i=new PIXI.Texture(PIXI.BaseTexture.fromImage(t,e)),PIXI.TextureCache[t]=i),i},PIXI.Texture.fromFrame=function(t){var e=PIXI.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache "+this);return e},PIXI.Texture.fromCanvas=function(t){var e=new PIXI.BaseTexture(t);return new PIXI.Texture(e)},PIXI.Texture.addTextureToCache=function(t,e){PIXI.TextureCache[e]=t},PIXI.Texture.removeTextureFromCache=function(t){var e=PIXI.TextureCache[t];return PIXI.TextureCache[t]=null,e},PIXI.Texture.frameUpdates=[],PIXI.RenderTexture=function(t,e){PIXI.EventTarget.call(this),this.width=t||100,this.height=e||100,this.indetityMatrix=PIXI.mat3.create(),this.frame=new PIXI.Rectangle(0,0,this.width,this.height),PIXI.gl?this.initWebGL():this.initCanvas()},PIXI.RenderTexture.constructor=PIXI.RenderTexture,PIXI.RenderTexture.prototype=Object.create(PIXI.Texture.prototype),PIXI.RenderTexture.prototype.initWebGL=function(){var t=PIXI.gl;this.glFramebuffer=t.createFramebuffer(),t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),this.glFramebuffer.width=this.width,this.glFramebuffer.height=this.height,this.baseTexture=new PIXI.BaseTexture,this.baseTexture.width=this.width,this.baseTexture.height=this.height,this.baseTexture._glTexture=t.createTexture(),t.bindTexture(t.TEXTURE_2D,this.baseTexture._glTexture),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,this.width,this.height,0,t.RGBA,t.UNSIGNED_BYTE,null),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),this.baseTexture.isRender=!0,t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,this.baseTexture._glTexture,0),this.projectionMatrix=PIXI.mat4.create(),this.projectionMatrix[5]=2/this.height,this.projectionMatrix[13]=-1,this.projectionMatrix[0]=2/this.width,this.projectionMatrix[12]=-1,this.render=this.renderWebGL},PIXI.RenderTexture.prototype.initCanvas=function(){this.renderer=new PIXI.CanvasRenderer(this.width,this.height,null,0),this.baseTexture=new PIXI.BaseTexture(this.renderer.view),this.frame=new PIXI.Rectangle(0,0,this.width,this.height),this.render=this.renderCanvas},PIXI.RenderTexture.prototype.renderWebGL=function(t,e){var i=PIXI.gl;i.colorMask(!0,!0,!0,!0),i.viewport(0,0,this.width,this.height),i.bindFramebuffer(i.FRAMEBUFFER,this.glFramebuffer),e&&(i.clearColor(0,0,0,0),i.clear(i.COLOR_BUFFER_BIT));var r=t.children;t.worldTransform=PIXI.mat3.create();for(var s=0,n=r.length;n>s;s++)r[s].updateTransform();var a=t.__renderGroup;a?t==a.root?a.render(this.projectionMatrix):a.renderSpecific(t,this.projectionMatrix):(this.renderGroup||(this.renderGroup=new PIXI.WebGLRenderGroup(i)),this.renderGroup.setRenderable(t),this.renderGroup.render(this.projectionMatrix))},PIXI.RenderTexture.prototype.renderCanvas=function(t,e){var i=t.children;t.worldTransform=PIXI.mat3.create();for(var r=0,s=i.length;s>r;r++)i[r].updateTransform();e&&this.renderer.context.clearRect(0,0,this.width,this.height),this.renderer.renderDisplayObject(t),PIXI.texturesToUpdate.push(this.baseTexture)},PIXI.AssetLoader=function(t){PIXI.EventTarget.call(this),this.assetURLs=t,this.crossorigin=!1,this.loadersByType={jpg:PIXI.ImageLoader,jpeg:PIXI.ImageLoader,png:PIXI.ImageLoader,gif:PIXI.ImageLoader,json:PIXI.SpriteSheetLoader,xml:PIXI.BitmapFontLoader,fnt:PIXI.BitmapFontLoader}},PIXI.AssetLoader.constructor=PIXI.AssetLoader,PIXI.AssetLoader.prototype.load=function(){var t=this;this.loadCount=this.assetURLs.length;for(var e=0;this.assetURLs.length>e;e++){var i=this.assetURLs[e],r=i.split(".").pop().toLowerCase(),s=this.loadersByType[r];if(!s)throw Error(r+" is an unsupported file type");var n=new s(i,this.crossorigin);n.addEventListener("loaded",function(){t.onAssetLoaded()}),n.load()}},PIXI.AssetLoader.prototype.onAssetLoaded=function(){this.loadCount--,this.dispatchEvent({type:"onProgress",content:this}),this.onProgress&&this.onProgress(),0==this.loadCount&&(this.dispatchEvent({type:"onComplete",content:this}),this.onComplete&&this.onComplete())},PIXI.SpriteSheetLoader=function(t,e){PIXI.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.frames={},this.crossorigin=e},PIXI.SpriteSheetLoader.constructor=PIXI.SpriteSheetLoader,PIXI.SpriteSheetLoader.prototype.load=function(){this.ajaxRequest=new AjaxRequest;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onJSONLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/json"),this.ajaxRequest.send(null)},PIXI.SpriteSheetLoader.prototype.onJSONLoaded=function(){if(4==this.ajaxRequest.readyState&&(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))){var jsonData=eval("("+this.ajaxRequest.responseText+")"),textureUrl=this.baseUrl+jsonData.meta.image,image=new PIXI.ImageLoader(textureUrl,this.crossorigin);this.texture=image.texture.baseTexture;var scope=this;image.addEventListener("loaded",function(){scope.onLoaded()});var frameData=jsonData.frames;for(var i in frameData){var rect=frameData[i].frame;rect&&(PIXI.TextureCache[i]=new PIXI.Texture(this.texture,{x:rect.x,y:rect.y,width:rect.w,height:rect.h}),frameData[i].trimmed&&(PIXI.TextureCache[i].realSize=frameData[i].spriteSourceSize,PIXI.TextureCache[i].trim.x=0))}image.load()}},PIXI.SpriteSheetLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},PIXI.ImageLoader=function(t,e){PIXI.EventTarget.call(this),this.texture=PIXI.Texture.fromImage(t,e)},PIXI.ImageLoader.constructor=PIXI.ImageLoader,PIXI.ImageLoader.prototype.load=function(){if(this.texture.baseTexture.hasLoaded)this.onLoaded();else{var t=this;this.texture.baseTexture.addEventListener("loaded",function(){t.onLoaded()})}},PIXI.ImageLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},PIXI.BitmapFontLoader=function(t,e){PIXI.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.crossorigin=e},PIXI.BitmapFontLoader.constructor=PIXI.BitmapFontLoader,PIXI.BitmapFontLoader.prototype.load=function(){this.ajaxRequest=new XMLHttpRequest;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onXMLLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/xml"),this.ajaxRequest.send(null)},PIXI.BitmapFontLoader.prototype.onXMLLoaded=function(){if(4==this.ajaxRequest.readyState&&(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))){var t=this.baseUrl+this.ajaxRequest.responseXML.getElementsByTagName("page")[0].attributes.getNamedItem("file").nodeValue,e=new PIXI.ImageLoader(t,this.crossorigin);this.texture=e.texture.baseTexture;var i={},r=this.ajaxRequest.responseXML.getElementsByTagName("info")[0],s=this.ajaxRequest.responseXML.getElementsByTagName("common")[0];i.font=r.attributes.getNamedItem("face").nodeValue,i.size=parseInt(r.attributes.getNamedItem("size").nodeValue,10),i.lineHeight=parseInt(s.attributes.getNamedItem("lineHeight").nodeValue,10),i.chars={};for(var n=this.ajaxRequest.responseXML.getElementsByTagName("char"),a=0;n.length>a;a++){var o=parseInt(n[a].attributes.getNamedItem("id").nodeValue,10),h={x:parseInt(n[a].attributes.getNamedItem("x").nodeValue,10),y:parseInt(n[a].attributes.getNamedItem("y").nodeValue,10),width:parseInt(n[a].attributes.getNamedItem("width").nodeValue,10),height:parseInt(n[a].attributes.getNamedItem("height").nodeValue,10)};PIXI.TextureCache[o]=new PIXI.Texture(this.texture,h),i.chars[o]={xOffset:parseInt(n[a].attributes.getNamedItem("xoffset").nodeValue,10),yOffset:parseInt(n[a].attributes.getNamedItem("yoffset").nodeValue,10),xAdvance:parseInt(n[a].attributes.getNamedItem("xadvance").nodeValue,10),kerning:{}}}var u=this.ajaxRequest.responseXML.getElementsByTagName("kerning");for(a=0;u.length>a;a++){var c=parseInt(u[a].attributes.getNamedItem("first").nodeValue,10),d=parseInt(u[a].attributes.getNamedItem("second").nodeValue,10),l=parseInt(u[a].attributes.getNamedItem("amount").nodeValue,10);i.chars[d].kerning[c]=l}PIXI.BitmapText.fonts[i.font]=i;var I=this;e.addEventListener("loaded",function(){I.onLoaded()}),e.load()}},PIXI.BitmapFontLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=PIXI),exports.PIXI=PIXI):root.PIXI=PIXI}).call(this); \ No newline at end of file +(function(){function HEXtoRGB(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}function determineMatrixArrayType(){return PIXI.Matrix="undefined"!=typeof Float32Array?Float32Array:Array,PIXI.Matrix}var root=this,PIXI=PIXI||{};PIXI.Point=function(t,e){this.x=t||0,this.y=e||0},PIXI.Point.prototype.clone=function(){return new PIXI.Point(this.x,this.y)},PIXI.Point.constructor=PIXI.Point,PIXI.Rectangle=function(t,e,i,r){this.x=t||0,this.y=e||0,this.width=i||0,this.height=r||0},PIXI.Rectangle.prototype.clone=function(){return new PIXI.Rectangle(this.x,this.y,this.width,this.height)},PIXI.Rectangle.constructor=PIXI.Rectangle,PIXI.DisplayObject=function(){this.position=new PIXI.Point,this.scale=new PIXI.Point(1,1),this.pivot=new PIXI.Point(0,0),this.rotation=0,this.alpha=1,this.visible=!0,this.worldVisible=!1,this.parent=null,this.stage=null,this.hitArea=null,this.worldAlpha=1,this.color=[],this.worldTransform=PIXI.mat3.create(),this.localTransform=PIXI.mat3.create(),this.dynamic=!0,this._sr=0,this._cr=1,this.childIndex=0,this.renderable=!1,this.interactive=!1,this.buttonMode=!1},PIXI.DisplayObject.constructor=PIXI.DisplayObject,PIXI.DisplayObject.prototype.setInteractive=function(t){this.interactive=t,this.stage&&(this.stage.dirty=!0)},PIXI.DisplayObject.prototype.updateTransform=function(){this.rotation!=this.rotationCache&&(this.rotationCache=this.rotation,this._sr=Math.sin(this.rotation),this._cr=Math.cos(this.rotation));var t=this.localTransform,e=this.parent.worldTransform,i=this.worldTransform;t[0]=this._cr*this.scale.x,t[1]=-this._sr*this.scale.y,t[3]=this._sr*this.scale.x,t[4]=this._cr*this.scale.y;var r=this.pivot.x,s=this.pivot.y;t[2]=this.position.x-t[0]*r-s*t[1],t[5]=this.position.y-t[4]*s-r*t[3];var n=t[0],a=t[1],o=t[2],h=t[3],u=t[4],d=t[5],c=e[0],l=e[1],I=e[2],p=e[3],f=e[4],x=e[5];i[0]=c*n+l*h,i[1]=c*a+l*u,i[2]=c*o+l*d+I,i[3]=p*n+f*h,i[4]=p*a+f*u,i[5]=p*o+f*d+x,this.worldAlpha=this.alpha*this.parent.worldAlpha},PIXI.DisplayObjectContainer=function(){PIXI.DisplayObject.call(this),this.children=[],this.renderable=!1},PIXI.DisplayObjectContainer.constructor=PIXI.DisplayObjectContainer,PIXI.DisplayObjectContainer.prototype=Object.create(PIXI.DisplayObject.prototype),PIXI.DisplayObjectContainer.prototype.addChild=function(t){void 0!=t.parent&&t.parent.removeChild(t),t.parent=this,t.childIndex=this.children.length,this.children.push(t),this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},PIXI.DisplayObjectContainer.prototype.addChildAt=function(t,e){if(!(e>=0&&this.children.length>=e))throw Error(t+" The index "+e+" supplied is out of bounds "+this.children.length);void 0!=t.parent&&t.parent.removeChild(t),e==this.children.length?this.children.push(t):this.children.splice(e,0,t),t.parent=this,t.childIndex=e;for(var i=this.children.length,r=e;i>r;r++)this.children[r].childIndex=r;this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},PIXI.DisplayObjectContainer.prototype.swapChildren=function(t,e){var i=this.children.indexOf(t),r=this.children.indexOf(e);if(-1===i||-1===r)throw Error(t+" Both the supplied DisplayObjects must be a child of the caller "+this);this.stage&&(this.stage.__removeChild(t),this.stage.__removeChild(e),this.stage.__addChild(t),this.stage.__addChild(e)),t.childIndex=r,e.childIndex=i,this.children[i]=e,this.children[r]=t},PIXI.DisplayObjectContainer.prototype.getChildAt=function(t){if(t>=0&&this.children.length>t)return this.children[t];throw Error(child+" Both the supplied DisplayObjects must be a child of the caller "+this)},PIXI.DisplayObjectContainer.prototype.removeChild=function(t){var e=this.children.indexOf(t);if(-1===e)throw Error(t+" The supplied DisplayObject must be a child of the caller "+this);this.stage&&this.stage.__removeChild(t),t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.parent=void 0,this.children.splice(e,1);for(var i=e,r=this.children.length;r>i;i++)this.children[i].childIndex-=1},PIXI.DisplayObjectContainer.prototype.updateTransform=function(){if(this.visible){PIXI.DisplayObject.prototype.updateTransform.call(this);for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform()}},PIXI.blendModes={},PIXI.blendModes.NORMAL=0,PIXI.blendModes.SCREEN=1,PIXI.Sprite=function(t){PIXI.DisplayObjectContainer.call(this),this.anchor=new PIXI.Point,this.texture=t,this.blendMode=PIXI.blendModes.NORMAL,this._width=0,this._height=0,t.baseTexture.hasLoaded?this.updateFrame=!0:(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},PIXI.Sprite.constructor=PIXI.Sprite,PIXI.Sprite.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),Object.defineProperty(PIXI.Sprite.prototype,"width",{get:function(){return this.scale.x*this.texture.frame.width},set:function(t){this.scale.x=t/this.texture.frame.width,this._width=t}}),Object.defineProperty(PIXI.Sprite.prototype,"height",{get:function(){return this.scale.y*this.texture.frame.height},set:function(t){this.scale.y=t/this.texture.frame.height,this._height=t}}),PIXI.Sprite.prototype.setTexture=function(t){this.texture.baseTexture!=t.baseTexture&&(this.textureChange=!0),this.texture=t,this.updateFrame=!0},PIXI.Sprite.prototype.onTextureUpdate=function(){this._width&&(this.scale.x=this._width/this.texture.frame.width),this._height&&(this.scale.y=this._height/this.texture.frame.height),this.updateFrame=!0},PIXI.Sprite.fromFrame=function(t){var e=PIXI.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache"+this);return new PIXI.Sprite(e)},PIXI.Sprite.fromImage=function(t){var e=PIXI.Texture.fromImage(t);return new PIXI.Sprite(e)},PIXI.MovieClip=function(t){PIXI.Sprite.call(this,t[0]),this.textures=t,this.currentFrame=0,this.animationSpeed=1,this.loop=!0,this.onComplete=null,this.playing},PIXI.MovieClip.constructor=PIXI.MovieClip,PIXI.MovieClip.prototype=Object.create(PIXI.Sprite.prototype),PIXI.MovieClip.prototype.stop=function(){this.playing=!1},PIXI.MovieClip.prototype.play=function(){this.playing=!0},PIXI.MovieClip.prototype.gotoAndStop=function(t){this.playing=!1,this.currentFrame=t;var e=0|this.currentFrame+.5;this.setTexture(this.textures[e%this.textures.length])},PIXI.MovieClip.prototype.gotoAndPlay=function(t){this.currentFrame=t,this.playing=!0},PIXI.MovieClip.prototype.updateTransform=function(){if(PIXI.Sprite.prototype.updateTransform.call(this),this.playing){this.currentFrame+=this.animationSpeed;var t=0|this.currentFrame+.5;this.loop||this.textures.length>t?this.setTexture(this.textures[t%this.textures.length]):t>=this.textures.length&&(this.gotoAndStop(this.textures.length-1),this.onComplete&&this.onComplete())}},PIXI.Text=function(t,e){this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"),PIXI.Sprite.call(this,PIXI.Texture.fromCanvas(this.canvas)),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},PIXI.Text.constructor=PIXI.Text,PIXI.Text.prototype=Object.create(PIXI.Sprite.prototype),PIXI.Text.prototype.setStyle=function(t){t=t||{},t.font=t.font||"bold 20pt Arial",t.fill=t.fill||"black",t.align=t.align||"left",t.strokeThickness=t.strokeThickness||0,this.style=t,this.dirty=!0},PIXI.Sprite.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},PIXI.Text.prototype.updateText=function(){this.context.font=this.style.font;for(var t=this.text.split(/(?:\r\n|\r|\n)/),e=[],i=0,r=0;t.length>r;r++){var s=this.context.measureText(t[r]).width;e[r]=s,i=Math.max(i,s)}this.canvas.width=i+this.style.strokeThickness;var n=this.determineFontHeight("font: "+this.style.font+";")+this.style.strokeThickness;for(this.canvas.height=n*t.length,this.context.fillStyle=this.style.fill,this.context.font=this.style.font,this.context.strokeStyle=this.style.stroke,this.context.lineWidth=this.style.strokeThickness,this.context.textBaseline="top",r=0;t.length>r;r++){var a=new PIXI.Point(this.style.strokeThickness/2,this.style.strokeThickness/2+r*n);"right"==this.style.align?a.x+=i-e[r]:"center"==this.style.align&&(a.x+=(i-e[r])/2),this.style.stroke&&this.style.strokeThickness&&this.context.strokeText(t[r],a.x,a.y),this.style.fill&&this.context.fillText(t[r],a.x,a.y)}this.updateTexture()},PIXI.Text.prototype.updateTexture=function(){this.texture.baseTexture.width=this.canvas.width,this.texture.baseTexture.height=this.canvas.height,this.texture.frame.width=this.canvas.width,this.texture.frame.height=this.canvas.height,this._width=this.canvas.width,this._height=this.canvas.height,PIXI.texturesToUpdate.push(this.texture.baseTexture)},PIXI.Text.prototype.updateTransform=function(){this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype.updateTransform.call(this)},PIXI.Text.prototype.determineFontHeight=function(t){var e=PIXI.Text.heightCache[t];if(!e){var i=document.getElementsByTagName("body")[0],r=document.createElement("div"),s=document.createTextNode("M");r.appendChild(s),r.setAttribute("style",t),i.appendChild(r),e=r.offsetHeight,PIXI.Text.heightCache[t]=e,i.removeChild(r)}return e},PIXI.Text.prototype.destroy=function(t){t&&this.texture.destroy()},PIXI.Text.heightCache={},PIXI.BitmapText=function(t,e){PIXI.DisplayObjectContainer.call(this),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},PIXI.BitmapText.constructor=PIXI.BitmapText,PIXI.BitmapText.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.BitmapText.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},PIXI.BitmapText.prototype.setStyle=function(t){t=t||{},t.align=t.align||"left",this.style=t;var e=t.font.split(" ");this.fontName=e[e.length-1],this.fontSize=e.length>=2?parseInt(e[e.length-2],10):PIXI.BitmapText.fonts[this.fontName].size,this.dirty=!0},PIXI.BitmapText.prototype.updateText=function(){for(var t=PIXI.BitmapText.fonts[this.fontName],e=new PIXI.Point,i=null,r=[],s=0,n=[],a=0,o=this.fontSize/t.size,h=0;this.text.length>h;h++){var u=this.text.charCodeAt(h);if(/(?:\r\n|\r|\n)/.test(this.text.charAt(h)))n.push(e.x),s=Math.max(s,e.x),a++,e.x=0,e.y+=t.lineHeight,i=null;else{var d=t.chars[u];d&&(i&&d[i]&&(e.x+=d.kerning[i]),r.push({line:a,charCode:u,position:new PIXI.Point(e.x+d.xOffset,e.y+d.yOffset)}),e.x+=d.xAdvance,i=u)}}n.push(e.x),s=Math.max(s,e.x);var c=[];for(h=0;a>=h;h++){var l=0;"right"==this.style.align?l=s-n[h]:"center"==this.style.align&&(l=(s-n[h])/2),c.push(l)}for(h=0;r.length>h;h++){var I=PIXI.Sprite.fromFrame(r[h].charCode);I.position.x=(r[h].position.x+c[r[h].line])*o,I.position.y=r[h].position.y*o,I.scale.x=I.scale.y=o,this.addChild(I)}this.width=e.x*o,this.height=(e.y+t.lineHeight)*o},PIXI.BitmapText.prototype.updateTransform=function(){if(this.dirty){for(;this.children.length>0;)this.removeChild(this.getChildAt(0));this.updateText(),this.dirty=!1}PIXI.DisplayObjectContainer.prototype.updateTransform.call(this)},PIXI.BitmapText.fonts={},PIXI.InteractionManager=function(t){this.stage=t,this.tempPoint=new PIXI.Point,this.mouseoverEnabled=!0,this.mouse=new PIXI.InteractionData,this.touchs={},this.pool=[],this.interactiveItems=[],this.last=0},PIXI.InteractionManager.constructor=PIXI.InteractionManager,PIXI.InteractionManager.prototype.collectInteractiveSprite=function(t,e){for(var i=t.children,r=i.length,s=r-1;s>=0;s--){var n=i[s];n.interactive?(e.interactiveChildren=!0,this.interactiveItems.push(n),n.children.length>0&&this.collectInteractiveSprite(n,n)):(n.__iParent=null,n.children.length>0&&this.collectInteractiveSprite(n,e))}},PIXI.InteractionManager.prototype.setTarget=function(t){window.navigator.msPointerEnabled&&(t.view.style["-ms-content-zooming"]="none",t.view.style["-ms-touch-action"]="none"),this.target=t,t.view.addEventListener("mousemove",this.onMouseMove.bind(this),!0),t.view.addEventListener("mousedown",this.onMouseDown.bind(this),!0),document.body.addEventListener("mouseup",this.onMouseUp.bind(this),!0),t.view.addEventListener("mouseout",this.onMouseUp.bind(this),!0),t.view.addEventListener("touchstart",this.onTouchStart.bind(this),!0),t.view.addEventListener("touchend",this.onTouchEnd.bind(this),!0),t.view.addEventListener("touchmove",this.onTouchMove.bind(this),!0)},PIXI.InteractionManager.prototype.update=function(){if(this.target){var t=Date.now(),e=t-this.last;if(e=30*e/1e3,!(1>e)){if(this.last=t,this.dirty){this.dirty=!1,this.interactiveItems.length;for(var i=0;this.interactiveItems.length>i;i++)this.interactiveItems[i].interactiveChildren=!1;this.interactiveItems=[],this.stage.interactive&&this.interactiveItems.push(this.stage),this.collectInteractiveSprite(this.stage,this.stage)}var r=this.interactiveItems.length;this.target.view.style.cursor="default";for(var i=0;r>i;i++){var s=this.interactiveItems[i];s.visible&&(s.mouseover||s.mouseout||s.buttonMode)&&(s.__hit=this.hitTest(s,this.mouse),s.__hit?(s.buttonMode&&(this.target.view.style.cursor="pointer"),s.__isOver||(s.mouseover&&s.mouseover(this.mouse),s.__isOver=!0)):s.__isOver&&(s.mouseout&&s.mouseout(this.mouse),s.__isOver=!1))}}}},PIXI.InteractionManager.prototype.onMouseMove=function(t){t.preventDefault();var e=this.target.view.getBoundingClientRect();this.mouse.global.x=(t.clientX-e.left)*(this.target.width/e.width),this.mouse.global.y=(t.clientY-e.top)*(this.target.height/e.height);var i=this.interactiveItems.length;this.mouse.global;for(var r=0;i>r;r++){var s=this.interactiveItems[r];s.mousemove&&s.mousemove(this.mouse)}},PIXI.InteractionManager.prototype.onMouseDown=function(t){t.preventDefault();var e=this.interactiveItems.length;this.mouse.global,this.stage;for(var i=0;e>i;i++){var r=this.interactiveItems[i];if((r.mousedown||r.click)&&(r.__mouseIsDown=!0,r.__hit=this.hitTest(r,this.mouse),r.__hit&&(r.mousedown&&r.mousedown(this.mouse),r.__isDown=!0,!r.interactiveChildren)))break}},PIXI.InteractionManager.prototype.onMouseUp=function(t){t.preventDefault(),this.mouse.global;for(var e=this.interactiveItems.length,i=!1,r=0;e>r;r++){var s=this.interactiveItems[r];(s.mouseup||s.mouseupoutside||s.click)&&(s.__hit=this.hitTest(s,this.mouse),s.__hit&&!i?(s.mouseup&&s.mouseup(this.mouse),s.__isDown&&s.click&&s.click(this.mouse),s.interactiveChildren||(i=!0)):s.__isDown&&s.mouseupoutside&&s.mouseupoutside(this.mouse),s.__isDown=!1)}},PIXI.InteractionManager.prototype.hitTest=function(t,e){var i=e.global;if(!t.visible)return!1;if(t instanceof PIXI.Sprite){var r=t.worldTransform,s=r[0],n=r[1],a=r[2],o=r[3],h=r[4],u=r[5],d=1/(s*h+n*-o),c=h*d*i.x+-n*d*i.y+(u*n-a*h)*d,l=s*d*i.y+-o*d*i.x+(-u*s+a*o)*d,I=t.texture.frame.width,p=t.texture.frame.height,f=-I*t.anchor.x;if(c>f&&f+I>c){var x=-p*t.anchor.y;if(l>x&&x+p>l)return e.target=t,!0}}else if(t.hitArea){var r=t.worldTransform,v=t.hitArea,s=r[0],n=r[1],a=r[2],o=r[3],h=r[4],u=r[5],d=1/(s*h+n*-o),c=h*d*i.x+-n*d*i.y+(u*n-a*h)*d,l=s*d*i.y+-o*d*i.x+(-u*s+a*o)*d,f=v.x;if(c>f&&f+v.width>c){var x=v.y;if(l>x&&x+v.height>l)return!0}}for(var P=t.children.length,g=0;P>g;g++){var b=t.children[g],X=this.hitTest(b,e);if(X)return!0}return!1},PIXI.InteractionManager.prototype.onTouchMove=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.touchs[s.identifier];n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height)}for(var a=this.interactiveItems.length,r=0;a>r;r++){var o=this.interactiveItems[r];o.touchmove&&o.touchmove(n)}},PIXI.InteractionManager.prototype.onTouchStart=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.pool.pop();n||(n=new PIXI.InteractionData),this.touchs[s.identifier]=n,n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height);for(var a=this.interactiveItems.length,o=0;a>o;o++){var h=this.interactiveItems[o];if((h.touchstart||h.tap)&&(h.__hit=this.hitTest(h,n),h.__hit&&(h.touchstart&&h.touchstart(n),h.__isDown=!0,h.__touchData=n,!h.interactiveChildren)))break}}},PIXI.InteractionManager.prototype.onTouchEnd=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.touchs[s.identifier],a=!1;n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var u=this.interactiveItems[h],d=u.__touchData;u.__hit=this.hitTest(u,n),d==n&&((u.touchend||u.tap)&&(u.__hit&&!a?(u.touchend&&u.touchend(n),u.__isDown&&u.tap&&u.tap(n),u.interactiveChildren||(a=!0)):u.__isDown&&u.touchendoutside&&u.touchendoutside(n),u.__isDown=!1),u.__touchData=null)}this.pool.push(n),this.touchs[s.identifier]=null}},PIXI.InteractionData=function(){this.global=new PIXI.Point,this.local=new PIXI.Point,this.target},PIXI.InteractionData.prototype.getLocalPosition=function(t){var e=t.worldTransform,i=this.global,r=e[0],s=e[1],n=e[2],a=e[3],o=e[4],h=e[5],u=1/(r*o+s*-a);return new PIXI.Point(o*u*i.x+-s*u*i.y+(h*s-n*o)*u,r*u*i.y+-a*u*i.x+(-h*r+n*a)*u)},PIXI.InteractionData.constructor=PIXI.InteractionData,PIXI.Stage=function(t,e){PIXI.DisplayObjectContainer.call(this),this.worldTransform=PIXI.mat3.create(),this.__childrenAdded=[],this.__childrenRemoved=[],this.childIndex=0,this.stage=this,this.stage.hitArea=new PIXI.Rectangle(0,0,1e5,1e5),this.interactive=!!e,this.interactionManager=new PIXI.InteractionManager(this),this.setBackgroundColor(t),this.worldVisible=!0},PIXI.Stage.constructor=PIXI.Stage,PIXI.Stage.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Stage.prototype.updateTransform=function(){this.worldAlpha=1;for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform();this.dirty&&(this.dirty=!1,this.interactionManager.dirty=!0),this.interactive&&this.interactionManager.update()},PIXI.Stage.prototype.setBackgroundColor=function(t){this.backgroundColor=t||0,this.backgroundColorSplit=HEXtoRGB(this.backgroundColor),this.backgroundColorString="#"+this.backgroundColor.toString(16)},PIXI.Stage.prototype.getMousePosition=function(){return this.interactionManager.mouse.global},PIXI.Stage.prototype.__addChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=this,t.children)for(var e=0;t.children.length>e;e++)this.__addChild(t.children[e])},PIXI.Stage.prototype.__removeChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=void 0,t.children)for(var e=0,i=t.children.length;i>e;e++)this.__removeChild(t.children[e])},window.requestAnimFrame=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(t){window.setTimeout(t,1e3/60)}}(),"function"!=typeof Function.prototype.bind&&(Function.prototype.bind=function(){var t=Array.prototype.slice;return function(e){function i(){var n=s.concat(t.call(arguments));r.apply(this instanceof i?this:e,n)}var r=this,s=t.call(arguments,1);if("function"!=typeof r)throw new TypeError;return i.prototype=function n(t){return t&&(n.prototype=t),this instanceof n?void 0:new n}(r.prototype),i}}());var AjaxRequest=function(){var t=["Msxml2.XMLHTTP","Microsoft.XMLHTTP"];if(!window.ActiveXObject)return window.XMLHttpRequest?new XMLHttpRequest:!1;for(var e=0;t.length>e;e++)try{return new ActiveXObject(t[e])}catch(i){}};PIXI.EventTarget=function(){var t={};this.addEventListener=this.on=function(e,i){void 0===t[e]&&(t[e]=[]),-1===t[e].indexOf(i)&&t[e].push(i)},this.dispatchEvent=this.emit=function(e){for(var i in t[e.type])t[e.type][i](e)},this.removeEventListener=this.off=function(e,i){var r=t[e].indexOf(i);-1!==r&&t[e].splice(r,1)}},determineMatrixArrayType(),PIXI.mat3={},PIXI.mat3.create=function(){var t=new PIXI.Matrix(9);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},PIXI.mat4={},PIXI.mat4.create=function(){var t=new PIXI.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},PIXI.mat3.multiply=function(t,e,i){i||(i=t);var r=t[0],s=t[1],n=t[2],a=t[3],o=t[4],h=t[5],u=t[6],d=t[7],c=t[8],l=e[0],I=e[1],p=e[2],f=e[3],x=e[4],v=e[5],P=e[6],g=e[7],b=e[8];return i[0]=l*r+I*a+p*u,i[1]=l*s+I*o+p*d,i[2]=l*n+I*h+p*c,i[3]=f*r+x*a+v*u,i[4]=f*s+x*o+v*d,i[5]=f*n+x*h+v*c,i[6]=P*r+g*a+b*u,i[7]=P*s+g*o+b*d,i[8]=P*n+g*h+b*c,i},PIXI.mat3.toMat4=function(t,e){return e||(e=PIXI.mat4.create()),e[15]=1,e[14]=0,e[13]=0,e[12]=0,e[11]=0,e[10]=t[8],e[9]=t[7],e[8]=t[6],e[7]=0,e[6]=t[5],e[5]=t[4],e[4]=t[3],e[3]=0,e[2]=t[2],e[1]=t[1],e[0]=t[0],e},PIXI.mat4.create=function(){var t=new PIXI.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},PIXI.mat4.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],s=t[3],n=t[6],a=t[7],o=t[11];return t[1]=t[4],t[2]=t[8],t[3]=t[12],t[4]=i,t[6]=t[9],t[7]=t[13],t[8]=r,t[9]=n,t[11]=t[14],t[12]=s,t[13]=a,t[14]=o,t}return e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=t[1],e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=t[2],e[9]=t[6],e[10]=t[10],e[11]=t[14],e[12]=t[3],e[13]=t[7],e[14]=t[11],e[15]=t[15],e},PIXI.mat4.multiply=function(t,e,i){i||(i=t);var r=t[0],s=t[1],n=t[2],a=t[3],o=t[4],h=t[5],u=t[6],d=t[7],c=t[8],l=t[9],I=t[10],p=t[11],f=t[12],x=t[13],v=t[14],P=t[15],g=e[0],b=e[1],X=e[2],m=e[3];return i[0]=g*r+b*o+X*c+m*f,i[1]=g*s+b*h+X*l+m*x,i[2]=g*n+b*u+X*I+m*v,i[3]=g*a+b*d+X*p+m*P,g=e[4],b=e[5],X=e[6],m=e[7],i[4]=g*r+b*o+X*c+m*f,i[5]=g*s+b*h+X*l+m*x,i[6]=g*n+b*u+X*I+m*v,i[7]=g*a+b*d+X*p+m*P,g=e[8],b=e[9],X=e[10],m=e[11],i[8]=g*r+b*o+X*c+m*f,i[9]=g*s+b*h+X*l+m*x,i[10]=g*n+b*u+X*I+m*v,i[11]=g*a+b*d+X*p+m*P,g=e[12],b=e[13],X=e[14],m=e[15],i[12]=g*r+b*o+X*c+m*f,i[13]=g*s+b*h+X*l+m*x,i[14]=g*n+b*u+X*I+m*v,i[15]=g*a+b*d+X*p+m*P,i},PIXI.autoDetectRenderer=function(t,e,i,r){t||(t=800),e||(e=600);var s=function(){try{return!!window.WebGLRenderingContext&&!!document.createElement("canvas").getContext("experimental-webgl")}catch(t){return!1}}();return s?new PIXI.WebGLRenderer(t,e,i,r):new PIXI.CanvasRenderer(t,e,i,r)},PIXI.shaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * vColor;","}"],PIXI.shaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform mat4 uMVMatrix;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","gl_Position = uMVMatrix * vec4(aVertexPosition, 1.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],PIXI.CompileVertexShader=function(t,e){return PIXI._CompileShader(t,e,t.VERTEX_SHADER)},PIXI.CompileFragmentShader=function(t,e){return PIXI._CompileShader(t,e,t.FRAGMENT_SHADER)},PIXI._CompileShader=function(t,e,i){var r=e.join("\n"),s=t.createShader(i);return t.shaderSource(s,r),t.compileShader(s),t.getShaderParameter(s,t.COMPILE_STATUS)?s:(alert(t.getShaderInfoLog(s)),null)},PIXI._defaultFrame=new PIXI.Rectangle(0,0,1,1),PIXI.gl,PIXI.WebGLRenderer=function(t,e,i,r){this.transparent=!!r,this.width=t||800,this.height=e||600,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height;var s=this;this.view.addEventListener("webglcontextlost",function(t){s.handleContextLost(t)},!1),this.view.addEventListener("webglcontextrestored",function(t){s.handleContextRestored(t)},!1),this.batchs=[];try{PIXI.gl=this.gl=this.view.getContext("experimental-webgl",{alpha:this.transparent,antialias:!1,premultipliedAlpha:!0})}catch(n){throw Error(" This browser does not support webGL. Try using the canvas renderer"+this)}this.initShaders();var a=this.gl;PIXI.WebGLRenderer.gl=a,this.batch=new PIXI.WebGLBatch(a),a.disable(a.DEPTH_TEST),a.disable(a.CULL_FACE),a.enable(a.BLEND),a.colorMask(!0,!0,!0,this.transparent),this.projectionMatrix=PIXI.mat4.create(),this.resize(this.width,this.height),this.contextLost=!1,this.stageRenderGroup=new PIXI.WebGLRenderGroup(this.gl)},PIXI.WebGLRenderer.constructor=PIXI.WebGLRenderer,PIXI.WebGLRenderer.getBatch=function(){return 0==PIXI._batchs.length?new PIXI.WebGLBatch(PIXI.WebGLRenderer.gl):PIXI._batchs.pop()},PIXI.WebGLRenderer.returnBatch=function(t){t.clean(),PIXI._batchs.push(t)},PIXI.WebGLRenderer.prototype.initShaders=function(){var t=this.gl,e=PIXI.CompileFragmentShader(t,PIXI.shaderFragmentSrc),i=PIXI.CompileVertexShader(t,PIXI.shaderVertexSrc);PIXI.shaderProgram=t.createProgram();var r=PIXI.shaderProgram;t.attachShader(r,i),t.attachShader(r,e),t.linkProgram(r),t.getProgramParameter(r,t.LINK_STATUS)||alert("Could not initialise shaders"),t.useProgram(r),r.vertexPositionAttribute=t.getAttribLocation(r,"aVertexPosition"),t.enableVertexAttribArray(r.vertexPositionAttribute),r.textureCoordAttribute=t.getAttribLocation(r,"aTextureCoord"),t.enableVertexAttribArray(r.textureCoordAttribute),r.colorAttribute=t.getAttribLocation(r,"aColor"),t.enableVertexAttribArray(r.colorAttribute),r.mvMatrixUniform=t.getUniformLocation(r,"uMVMatrix"),r.samplerUniform=t.getUniformLocation(r,"uSampler")},PIXI.WebGLRenderer.prototype.render=function(t){if(!this.contextLost){this.__stage!==t&&(this.__stage=t,this.stageRenderGroup.setRenderable(t)),PIXI.WebGLRenderer.updateTextures(),t.updateTransform();var e=this.gl;if(e.colorMask(!0,!0,!0,this.transparent),e.viewport(0,0,this.width,this.height),e.bindFramebuffer(e.FRAMEBUFFER,null),e.clearColor(t.backgroundColorSplit[0],t.backgroundColorSplit[1],t.backgroundColorSplit[2],this.transparent),e.clear(e.COLOR_BUFFER_BIT),this.stageRenderGroup.backgroundColor=t.backgroundColorSplit,this.stageRenderGroup.render(this.projectionMatrix),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),PIXI.Texture.frameUpdates.length>0){for(var i=0;PIXI.Texture.frameUpdates.length>i;i++)PIXI.Texture.frameUpdates[i].updateFrame=!1;PIXI.Texture.frameUpdates=[]}}},PIXI.WebGLRenderer.updateTextures=function(){for(var t=0;PIXI.texturesToUpdate.length>t;t++)this.updateTexture(PIXI.texturesToUpdate[t]);for(var t=0;PIXI.texturesToDestroy.length>t;t++)this.destroyTexture(PIXI.texturesToDestroy[t]);PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[]},PIXI.WebGLRenderer.updateTexture=function(t){var e=PIXI.gl;t._glTexture||(t._glTexture=e.createTexture()),t.hasLoaded&&(e.bindTexture(e.TEXTURE_2D,t._glTexture),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t.source),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),t._powerOf2?(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT)):(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)),e.bindTexture(e.TEXTURE_2D,null))},PIXI.WebGLRenderer.prototype.destroyTexture=function(t){var e=this.gl;t._glTexture&&(t._glTexture=e.createTexture(),e.deleteTexture(e.TEXTURE_2D,t._glTexture))},PIXI.WebGLRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e,this.gl.viewport(0,0,this.width,this.height);var i=this.projectionMatrix;i[0]=2/this.width,i[5]=-2/this.height,i[12]=-1,i[13]=1},PIXI.WebGLRenderer.prototype.handleContextLost=function(t){t.preventDefault(),this.contextLost=!0},PIXI.WebGLRenderer.prototype.handleContextRestored=function(){this.gl=this.view.getContext("experimental-webgl",{alpha:!0}),this.initShaders();for(var t=0;PIXI.TextureCache.length>t;t++)this.updateTexture(PIXI.TextureCache[t]);for(var t=0;this.batchs.length>t;t++)this.batchs[t].restoreLostContext(this.gl),this.batchs[t].dirty=!0;PIXI._restoreBatchs(this.gl),this.contextLost=!1},PIXI._batchs=[],PIXI._getBatch=function(t){return 0==PIXI._batchs.length?new PIXI.WebGLBatch(t):PIXI._batchs.pop()},PIXI._returnBatch=function(t){t.clean(),PIXI._batchs.push(t)},PIXI._restoreBatchs=function(t){for(var e=0;PIXI._batchs.length>e;e++)PIXI._batchs[e].restoreLostContext(t)},PIXI.WebGLBatch=function(t){this.gl=t,this.size=0,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer(),this.blendMode=PIXI.blendModes.NORMAL,this.dynamicSize=1},PIXI.WebGLBatch.constructor=PIXI.WebGLBatch,PIXI.WebGLBatch.prototype.clean=function(){this.verticies=[],this.uvs=[],this.indices=[],this.colors=[],this.dynamicSize=1,this.texture=null,this.last=null,this.size=0,this.head,this.tail},PIXI.WebGLBatch.prototype.restoreLostContext=function(t){this.gl=t,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer()},PIXI.WebGLBatch.prototype.init=function(t){t.batch=this,this.dirty=!0,this.blendMode=t.blendMode,this.texture=t.texture.baseTexture,this.head=t,this.tail=t,this.size=1,this.growBatch()},PIXI.WebGLBatch.prototype.insertBefore=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__prev;e.__prev=t,t.__next=e,i?(t.__prev=i,i.__next=t):this.head=t},PIXI.WebGLBatch.prototype.insertAfter=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__next;e.__next=t,t.__prev=e,i?(t.__next=i,i.__prev=t):this.tail=t},PIXI.WebGLBatch.prototype.remove=function(t){return this.size--,0==this.size?(t.batch=null,t.__prev=null,t.__next=null,void 0):(t.__prev?t.__prev.__next=t.__next:(this.head=t.__next,this.head.__prev=null),t.__next?t.__next.__prev=t.__prev:(this.tail=t.__prev,this.tail.__next=null),t.batch=null,t.__next=null,t.__prev=null,this.dirty=!0,void 0)},PIXI.WebGLBatch.prototype.split=function(t){this.dirty=!0;var e=new PIXI.WebGLBatch(this.gl);e.init(t),e.tail=this.tail,this.tail=t.__prev,this.tail.__next=null,t.__prev=null;for(var i=0;t;)i++,t.batch=e,t=t.__next;return e.size=i,this.size-=i,e},PIXI.WebGLBatch.prototype.merge=function(t){this.dirty=!0,this.tail.__next=t.head,t.head.__prev=this.tail,this.size+=t.size,this.tail=t.tail;for(var e=t.head;e;)e.batch=this,e=e.__next},PIXI.WebGLBatch.prototype.growBatch=function(){var t=this.gl;this.dynamicSize=1==this.size?1:1.5*this.size,this.verticies=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.vertexBuffer),t.bufferData(t.ARRAY_BUFFER,this.verticies,t.DYNAMIC_DRAW),this.uvs=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.uvBuffer),t.bufferData(t.ARRAY_BUFFER,this.uvs,t.DYNAMIC_DRAW),this.dirtyUVS=!0,this.colors=new Float32Array(4*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.colorBuffer),t.bufferData(t.ARRAY_BUFFER,this.colors,t.DYNAMIC_DRAW),this.dirtyColors=!0,this.indices=new Uint16Array(6*this.dynamicSize);for(var e=this.indices.length/6,i=0;e>i;i++){var r=6*i,s=4*i;this.indices[r+0]=s+0,this.indices[r+1]=s+1,this.indices[r+2]=s+2,this.indices[r+3]=s+0,this.indices[r+4]=s+2,this.indices[r+5]=s+3}t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,this.indexBuffer),t.bufferData(t.ELEMENT_ARRAY_BUFFER,this.indices,t.STATIC_DRAW)},PIXI.WebGLBatch.prototype.refresh=function(){this.gl,this.dynamicSizer;r++)i=this.batchs[r],i instanceof PIXI.WebGLBatch?this.batchs[r].render():i instanceof PIXI.TilingSprite?i.visible&&this.renderTilingSprite(i,t):i instanceof PIXI.Strip&&i.visible&&this.renderStrip(i,t)},PIXI.WebGLRenderGroup.prototype.renderSpecific=function(t,e){PIXI.WebGLRenderer.updateTextures();var i=this.gl;this.checkVisibility(t,t.visible),i.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform,!1,e);var r,s,n,a,o=t.renderable?t:this.getNextRenderable(t),h=o.batch;if(o instanceof PIXI.Sprite){h=o.batch;var u=h.head;if(u==o)r=0;else for(r=1;u.__next!=o;)r++,u=u.__next}else h=o;for(var d,c=t,l=t;l.children.length>0;)l=l.children[l.children.length-1],l.renderable&&(c=l);if(c instanceof PIXI.Sprite){d=c.batch;var u=d.head;if(u==c)n=0;else for(n=1;u.__next!=c;)n++,u=u.__next}else d=c;if(h==d)return h instanceof PIXI.WebGLBatch?h.render(r,n+1):h instanceof PIXI.TilingSprite?h.visible&&this.renderTilingSprite(h,e):h instanceof PIXI.Strip?h.visible&&this.renderStrip(h,e):h instanceof PIXI.CustomRenderable&&h.visible&&h.renderWebGL(this,e),void 0;s=this.batchs.indexOf(h),a=this.batchs.indexOf(d),h instanceof PIXI.WebGLBatch?h.render(r):h instanceof PIXI.TilingSprite?h.visible&&this.renderTilingSprite(h,e):h instanceof PIXI.Strip?h.visible&&this.renderStrip(h,e):h instanceof PIXI.CustomRenderable&&h.visible&&h.renderWebGL(this,e);for(var I=s+1;a>I;I++)renderable=this.batchs[I],renderable instanceof PIXI.WebGLBatch?this.batchs[I].render():renderable instanceof PIXI.TilingSprite?renderable.visible&&this.renderTilingSprite(renderable,e):renderable instanceof PIXI.Strip?renderable.visible&&this.renderStrip(renderable,e):renderable instanceof PIXI.CustomRenderable&&renderable.visible&&renderable.renderWebGL(this,e);d instanceof PIXI.WebGLBatch?d.render(0,n+1):d instanceof PIXI.TilingSprite?d.visible&&this.renderTilingSprite(d):d instanceof PIXI.Strip?d.visible&&this.renderStrip(d):d instanceof PIXI.CustomRenderable&&d.visible&&d.renderWebGL(this,e)},PIXI.WebGLRenderGroup.prototype.checkVisibility=function(t,e){for(var i=t.children,r=0;i.length>r;r++){var s=i[r];s.worldVisible=s.visible&&e,s.textureChange&&(s.textureChange=!1,s.worldVisible&&(this.removeDisplayObject(s),this.addDisplayObject(s))),s.children.length>0&&this.checkVisibility(s,s.worldVisible)}},PIXI.WebGLRenderGroup.prototype.addDisplayObject=function(t){if(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.__renderGroup=this,t.renderable){var e=this.getPreviousRenderable(t),i=this.getNextRenderable(t);if(t instanceof PIXI.Sprite){var r,s;if(e instanceof PIXI.Sprite){if(r=e.batch,r&&r.texture==t.texture.baseTexture&&r.blendMode==t.blendMode)return r.insertAfter(t,e),void 0}else r=e;if(i)if(i instanceof PIXI.Sprite){if(s=i.batch){if(s.texture==t.texture.baseTexture&&s.blendMode==t.blendMode)return s.insertBefore(t,i),void 0;if(s==r){var n=r.split(i),a=PIXI.WebGLRenderer.getBatch(),o=this.batchs.indexOf(r);return a.init(t),this.batchs.splice(o+1,0,a,n),void 0}}}else s=i;var a=PIXI.WebGLRenderer.getBatch();if(a.init(t),r){var o=this.batchs.indexOf(r);this.batchs.splice(o+1,0,a)}else this.batchs.push(a)}else t instanceof PIXI.TilingSprite?(this.initTilingSprite(t),this.batchs.push(t)):t instanceof PIXI.Strip&&(this.initStrip(t),this.batchs.push(t));this.batchUpdate=!0}},PIXI.WebGLRenderGroup.prototype.addDisplayObjectAndChildren=function(t){this.addDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.addDisplayObjectAndChildren(e[i])},PIXI.WebGLRenderGroup.prototype.removeDisplayObject=function(t){if(t.__renderGroup=null,t.renderable){var e;if(t instanceof PIXI.Sprite){var i=t.batch;if(!i)return;i.remove(t),0==i.size&&(e=i)}else e=t;if(e){var r=this.batchs.indexOf(e);if(-1==r)return;if(0==r||r==this.batchs.length-1)return this.batchs.splice(r,1),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e),void 0;if(this.batchs[r-1]instanceof PIXI.WebGLBatch&&this.batchs[r+1]instanceof PIXI.WebGLBatch&&this.batchs[r-1].texture==this.batchs[r+1].texture&&this.batchs[r-1].blendMode==this.batchs[r+1].blendMode)return this.batchs[r-1].merge(this.batchs[r+1]),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e),PIXI.WebGLRenderer.returnBatch(this.batchs[r+1]),this.batchs.splice(r,2),void 0;this.batchs.splice(r,1),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e)}}},PIXI.WebGLRenderGroup.prototype.removeDisplayObjectAndChildren=function(t){if(t.__renderGroup==this){this.removeDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.removeDisplayObjectAndChildren(e[i])}},PIXI.WebGLRenderGroup.prototype.getNextRenderable=function(t){var e=t;do{if(0==e.children.length){if(!e.parent)return null;for(;e.childIndex==e.parent.children.length-1;)if(e=e.parent,e==this.root||!e.parent){e=null;break}e&&(e=e.parent.children[e.childIndex+1])}else e=e.children[0];if(!e)break}while(!e.renderable||!e.__renderGroup);return e},PIXI.WebGLRenderGroup.prototype.getPreviousRenderable=function(t){var e=t;do{if(0==e.childIndex){if(e=e.parent,!e)return null}else for(e=e.parent.children[e.childIndex-1];0!=e.children.length;)e=e.children[e.children.length-1];if(e==this.root)break}while(!e.renderable||!e.__renderGroup);return e},PIXI.WebGLRenderGroup.prototype.initTilingSprite=function(t){var e=this.gl;t.verticies=new Float32Array([0,0,t.width,0,t.width,t.height,0,t.height]),t.uvs=new Float32Array([0,0,1,0,1,1,0,1]),t.colors=new Float32Array([1,1,1,1]),t.indices=new Uint16Array([0,1,3,2]),t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW),t.texture.baseTexture._glTexture?(e.bindTexture(e.TEXTURE_2D,t.texture.baseTexture._glTexture),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT),t.texture.baseTexture._powerOf2=!0):t.texture.baseTexture._powerOf2=!0},PIXI.WebGLRenderGroup.prototype.renderStrip=function(t,e){var i=this.gl,r=PIXI.shaderProgram,s=PIXI.mat3.toMat4(t.worldTransform);PIXI.mat4.transpose(s),PIXI.mat4.multiply(e,s,s),i.uniformMatrix4fv(r.mvMatrixUniform,!1,s),t.blendMode==PIXI.blendModes.NORMAL?i.blendFunc(i.ONE,i.ONE_MINUS_SRC_ALPHA):i.blendFunc(i.ONE,i.ONE_MINUS_SRC_COLOR),t.dirty?(t.dirty=!1,i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferData(i.ARRAY_BUFFER,t.verticies,i.STATIC_DRAW),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferData(i.ARRAY_BUFFER,t.uvs,i.STATIC_DRAW),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.bufferData(i.ARRAY_BUFFER,t.colors,i.STATIC_DRAW),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer),i.bufferData(i.ELEMENT_ARRAY_BUFFER,t.indices,i.STATIC_DRAW)):(i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.verticies),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer)),i.drawElements(i.TRIANGLE_STRIP,t.indices.length,i.UNSIGNED_SHORT,0),i.uniformMatrix4fv(r.mvMatrixUniform,!1,e)},PIXI.WebGLRenderGroup.prototype.renderTilingSprite=function(t,e){var i=this.gl;PIXI.shaderProgram;var r=t.tilePosition,s=t.tileScale,n=r.x/t.texture.baseTexture.width,a=r.y/t.texture.baseTexture.height,o=t.width/t.texture.baseTexture.width/s.x,h=t.height/t.texture.baseTexture.height/s.y;t.uvs[0]=0-n,t.uvs[1]=0-a,t.uvs[2]=1*o-n,t.uvs[3]=0-a,t.uvs[4]=1*o-n,t.uvs[5]=1*h-a,t.uvs[6]=0-n,t.uvs[7]=1*h-a,i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.uvs),this.renderStrip(t,e)},PIXI.WebGLRenderer.prototype.initStrip=function(t){var e=this.gl;this.shaderProgram,t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW)},PIXI.CanvasRenderer=function(t,e,i,r){this.transparent=r,this.width=t||800,this.height=e||600,this.refresh=!0,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height,this.count=0,this.context=this.view.getContext("2d")},PIXI.CanvasRenderer.constructor=PIXI.CanvasRenderer,PIXI.CanvasRenderer.prototype.render=function(t){PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[],t.updateTransform(),this.view.style.backgroundColor==t.backgroundColorString||this.transparent||(this.view.style.backgroundColor=t.backgroundColorString),this.context.setTransform(1,0,0,1,0,0),this.context.clearRect(0,0,this.width,this.height),this.renderDisplayObject(t),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),PIXI.Texture.frameUpdates.length>0&&(PIXI.Texture.frameUpdates=[])},PIXI.CanvasRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e},PIXI.CanvasRenderer.prototype.renderDisplayObject=function(t){var e=t.worldTransform,i=this.context;if(t.visible){if(t instanceof PIXI.Sprite){var r=t.texture.frame;r&&(i.globalAlpha=t.worldAlpha,i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),i.drawImage(t.texture.baseTexture.source,r.x,r.y,r.width,r.height,t.anchor.x*-r.width,t.anchor.y*-r.height,r.width,r.height))}else t instanceof PIXI.Strip?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderStrip(t)):t instanceof PIXI.TilingSprite?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderTilingSprite(t)):t instanceof PIXI.CustomRenderable&&t.renderCanvas(this);for(var s=0;t.children.length>s;s++)this.renderDisplayObject(t.children[s]);this.context.setTransform(1,0,0,1,0,0)}},PIXI.CanvasRenderer.prototype.renderStripFlat=function(t){var e=this.context,i=t.verticies;t.uvs;var r=i.length/2;this.count++,e.beginPath();for(var s=1;r-2>s;s++){var n=2*s,a=i[n],o=i[n+2],h=i[n+4],u=i[n+1],d=i[n+3],c=i[n+5];e.moveTo(a,u),e.lineTo(o,d),e.lineTo(h,c)}e.fillStyle="#FF0000",e.fill(),e.closePath()},PIXI.CanvasRenderer.prototype.renderTilingSprite=function(t){var e=this.context;t.__tilePattern||(t.__tilePattern=e.createPattern(t.texture.baseTexture.source,"repeat")),e.beginPath();var i=t.tilePosition,r=t.tileScale;e.scale(r.x,r.y),e.translate(i.x,i.y),e.fillStyle=t.__tilePattern,e.fillRect(-i.x,-i.y,t.width/r.x,t.height/r.y),e.scale(1/r.x,1/r.y),e.translate(-i.x,-i.y),e.closePath()},PIXI.CanvasRenderer.prototype.renderStrip=function(t){var e=this.context,i=t.verticies,r=t.uvs,s=i.length/2;this.count++;for(var n=1;s-2>n;n++){var a=2*n,o=i[a],h=i[a+2],u=i[a+4],d=i[a+1],c=i[a+3],l=i[a+5],I=r[a]*t.texture.width,p=r[a+2]*t.texture.width,f=r[a+4]*t.texture.width,x=r[a+1]*t.texture.height,v=r[a+3]*t.texture.height,P=r[a+5]*t.texture.height;e.save(),e.beginPath(),e.moveTo(o,d),e.lineTo(h,c),e.lineTo(u,l),e.closePath(),e.clip();var g=I*v+x*f+p*P-v*f-x*p-I*P,b=o*v+x*u+h*P-v*u-x*h-o*P,X=I*h+o*f+p*u-h*f-o*p-I*u,m=I*v*u+x*h*f+o*p*P-o*v*f-x*p*u-I*h*P,T=d*v+x*l+c*P-v*l-x*c-d*P,y=I*c+d*f+p*l-c*f-d*p-I*l,_=I*v*l+x*c*f+d*p*P-d*v*f-x*p*l-I*c*P;e.transform(b/g,T/g,X/g,y/g,m/g,_/g),e.drawImage(t.texture.baseTexture.source,0,0),e.restore()}},PIXI.Strip=function(t,e,i){PIXI.DisplayObjectContainer.call(this),this.texture=t,this.blendMode=PIXI.blendModes.NORMAL;try{this.uvs=new Float32Array([0,1,1,1,1,0,0,1]),this.verticies=new Float32Array([0,0,0,0,0,0,0,0,0]),this.colors=new Float32Array([1,1,1,1]),this.indices=new Uint16Array([0,1,2,3])}catch(r){this.uvs=[0,1,1,1,1,0,0,1],this.verticies=[0,0,0,0,0,0,0,0,0],this.colors=[1,1,1,1],this.indices=[0,1,2,3]}this.width=e,this.height=i,t.baseTexture.hasLoaded?(this.width=this.texture.frame.width,this.height=this.texture.frame.height,this.updateFrame=!0):(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},PIXI.Strip.constructor=PIXI.Strip,PIXI.Strip.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Strip.prototype.setTexture=function(t){this.texture=t,this.width=t.frame.width,this.height=t.frame.height,this.updateFrame=!0},PIXI.Strip.prototype.onTextureUpdate=function(){this.updateFrame=!0},PIXI.Rope=function(t,e){PIXI.Strip.call(this,t),this.points=e;try{this.verticies=new Float32Array(4*e.length),this.uvs=new Float32Array(4*e.length),this.colors=new Float32Array(2*e.length),this.indices=new Uint16Array(2*e.length)}catch(i){this.verticies=verticies,this.uvs=uvs,this.colors=colors,this.indices=indices}this.refresh()},PIXI.Rope.constructor=PIXI.Rope,PIXI.Rope.prototype=Object.create(PIXI.Strip.prototype),PIXI.Rope.prototype.refresh=function(){var t=this.points;if(!(1>t.length)){var e=this.uvs,i=this.indices,r=this.colors,s=t[0],n=t[0];this.count-=.2,e[0]=0,e[1]=1,e[2]=0,e[3]=1,r[0]=1,r[1]=1,i[0]=0,i[1]=1;for(var a=t.length,o=1;a>o;o++){var n=t[o],h=4*o,u=o/(a-1);o%2?(e[h]=u,e[h+1]=0,e[h+2]=u,e[h+3]=1):(e[h]=u,e[h+1]=0,e[h+2]=u,e[h+3]=1),h=2*o,r[h]=1,r[h+1]=1,h=2*o,i[h]=h,i[h+1]=h+1,s=n}}},PIXI.Rope.prototype.updateTransform=function(){var t=this.points;if(!(1>t.length)){var e,i=this.verticies,r=t[0],s={x:0,y:0},n=t[0];this.count-=.2,i[0]=n.x+s.x,i[1]=n.y+s.y,i[2]=n.x-s.x,i[3]=n.y-s.y;for(var a=t.length,o=1;a>o;o++){var n=t[o],h=4*o;e=t.length-1>o?t[o+1]:n,s.y=-(e.x-r.x),s.x=e.y-r.y;var u=10*(1-o/(a-1));u>1&&(u=1);var d=Math.sqrt(s.x*s.x+s.y*s.y),c=this.texture.height/2;s.x/=d,s.y/=d,s.x*=c,s.y*=c,i[h]=n.x+s.x,i[h+1]=n.y+s.y,i[h+2]=n.x-s.x,i[h+3]=n.y-s.y,r=n}PIXI.DisplayObjectContainer.prototype.updateTransform.call(this)}},PIXI.Rope.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0},PIXI.TilingSprite=function(t,e,i){PIXI.DisplayObjectContainer.call(this),this.texture=t,this.width=e,this.height=i,this.renderable=!0,this.tileScale=new PIXI.Point(1,1),this.tilePosition=new PIXI.Point(0,0),this.blendMode=PIXI.blendModes.NORMAL},PIXI.TilingSprite.constructor=PIXI.TilingSprite,PIXI.TilingSprite.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.TilingSprite.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0},PIXI.TilingSprite.prototype.onTextureUpdate=function(){this.updateFrame=!0},PIXI.CustomRenderable=function(){PIXI.DisplayObject.call(this)},PIXI.CustomRenderable.constructor=PIXI.CustomRenderable,PIXI.CustomRenderable.prototype=Object.create(PIXI.DisplayObject.prototype),PIXI.CustomRenderable.prototype.renderCanvas=function(){},PIXI.CustomRenderable.prototype.initWebGL=function(){},PIXI.CustomRenderable.prototype.renderWebGL=function(){},PIXI.BaseTextureCache={},PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[],PIXI.BaseTexture=function(t){if(PIXI.EventTarget.call(this),this.width=100,this.height=100,this.source=t,t){if(this.source instanceof Image)if(this.source.complete)this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,PIXI.texturesToUpdate.push(this);else{var e=this;this.source.onload=function(){e.hasLoaded=!0,e.width=e.source.width,e.height=e.source.height,PIXI.texturesToUpdate.push(e),e.dispatchEvent({type:"loaded",content:e})}}else this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,PIXI.texturesToUpdate.push(this);this._powerOf2=!1}},PIXI.BaseTexture.constructor=PIXI.BaseTexture,PIXI.BaseTexture.prototype.destroy=function(){this.source instanceof Image&&(this.source.src=null),this.source=null,PIXI.texturesToDestroy.push(this)},PIXI.BaseTexture.fromImage=function(t,e){var i=PIXI.BaseTextureCache[t];if(!i){var r=new Image;e&&(r.crossOrigin=""),r.src=t,i=new PIXI.BaseTexture(r),PIXI.BaseTextureCache[t]=i}return i},PIXI.TextureCache={},PIXI.FrameCache={},PIXI.Texture=function(t,e){if(PIXI.EventTarget.call(this),e||(this.noFrame=!0,e=new PIXI.Rectangle(0,0,1,1)),this.trim=new PIXI.Point,t instanceof PIXI.Texture&&(t=t.baseTexture),this.baseTexture=t,this.frame=e,this.scope=this,t.hasLoaded)this.noFrame&&(e=new PIXI.Rectangle(0,0,t.width,t.height)),this.setFrame(e);else{var i=this;t.addEventListener("loaded",function(){i.onBaseTextureLoaded()})}},PIXI.Texture.constructor=PIXI.Texture,PIXI.Texture.prototype.onBaseTextureLoaded=function(){var t=this.baseTexture;t.removeEventListener("loaded",this.onLoaded),this.noFrame&&(this.frame=new PIXI.Rectangle(0,0,t.width,t.height)),this.noFrame=!1,this.width=this.frame.width,this.height=this.frame.height,this.scope.dispatchEvent({type:"update",content:this})},PIXI.Texture.prototype.destroy=function(t){t&&this.baseTexture.destroy()},PIXI.Texture.prototype.setFrame=function(t){if(this.frame=t,this.width=t.width,this.height=t.height,t.x+t.width>this.baseTexture.width||t.y+t.height>this.baseTexture.height)throw Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);this.updateFrame=!0,PIXI.Texture.frameUpdates.push(this)},PIXI.Texture.fromImage=function(t,e){var i=PIXI.TextureCache[t];return i||(i=new PIXI.Texture(PIXI.BaseTexture.fromImage(t,e)),PIXI.TextureCache[t]=i),i},PIXI.Texture.fromFrame=function(t){var e=PIXI.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache "+this);return e},PIXI.Texture.fromCanvas=function(t){var e=new PIXI.BaseTexture(t);return new PIXI.Texture(e)},PIXI.Texture.addTextureToCache=function(t,e){PIXI.TextureCache[e]=t},PIXI.Texture.removeTextureFromCache=function(t){var e=PIXI.TextureCache[t];return PIXI.TextureCache[t]=null,e},PIXI.Texture.frameUpdates=[],PIXI.RenderTexture=function(t,e){PIXI.EventTarget.call(this),this.width=t||100,this.height=e||100,this.indetityMatrix=PIXI.mat3.create(),this.frame=new PIXI.Rectangle(0,0,this.width,this.height),PIXI.gl?this.initWebGL():this.initCanvas()},PIXI.RenderTexture.constructor=PIXI.RenderTexture,PIXI.RenderTexture.prototype=Object.create(PIXI.Texture.prototype),PIXI.RenderTexture.prototype.initWebGL=function(){var t=PIXI.gl;this.glFramebuffer=t.createFramebuffer(),t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),this.glFramebuffer.width=this.width,this.glFramebuffer.height=this.height,this.baseTexture=new PIXI.BaseTexture,this.baseTexture.width=this.width,this.baseTexture.height=this.height,this.baseTexture._glTexture=t.createTexture(),t.bindTexture(t.TEXTURE_2D,this.baseTexture._glTexture),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,this.width,this.height,0,t.RGBA,t.UNSIGNED_BYTE,null),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),this.baseTexture.isRender=!0,t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,this.baseTexture._glTexture,0),this.projectionMatrix=PIXI.mat4.create(),this.projectionMatrix[5]=2/this.height,this.projectionMatrix[13]=-1,this.projectionMatrix[0]=2/this.width,this.projectionMatrix[12]=-1,this.render=this.renderWebGL},PIXI.RenderTexture.prototype.initCanvas=function(){this.renderer=new PIXI.CanvasRenderer(this.width,this.height,null,0),this.baseTexture=new PIXI.BaseTexture(this.renderer.view),this.frame=new PIXI.Rectangle(0,0,this.width,this.height),this.render=this.renderCanvas},PIXI.RenderTexture.prototype.renderWebGL=function(t,e){var i=PIXI.gl;i.colorMask(!0,!0,!0,!0),i.viewport(0,0,this.width,this.height),i.bindFramebuffer(i.FRAMEBUFFER,this.glFramebuffer),e&&(i.clearColor(0,0,0,0),i.clear(i.COLOR_BUFFER_BIT));var r=t.children;t.worldTransform=PIXI.mat3.create();for(var s=0,n=r.length;n>s;s++)r[s].updateTransform();var a=t.__renderGroup;a?t==a.root?a.render(this.projectionMatrix):a.renderSpecific(t,this.projectionMatrix):(this.renderGroup||(this.renderGroup=new PIXI.WebGLRenderGroup(i)),this.renderGroup.setRenderable(t),this.renderGroup.render(this.projectionMatrix))},PIXI.RenderTexture.prototype.renderCanvas=function(t,e){var i=t.children;t.worldTransform=PIXI.mat3.create();for(var r=0,s=i.length;s>r;r++)i[r].updateTransform();e&&this.renderer.context.clearRect(0,0,this.width,this.height),this.renderer.renderDisplayObject(t),PIXI.texturesToUpdate.push(this.baseTexture)},PIXI.AssetLoader=function(t){PIXI.EventTarget.call(this),this.assetURLs=t,this.crossorigin=!1,this.loadersByType={jpg:PIXI.ImageLoader,jpeg:PIXI.ImageLoader,png:PIXI.ImageLoader,gif:PIXI.ImageLoader,json:PIXI.SpriteSheetLoader,xml:PIXI.BitmapFontLoader,fnt:PIXI.BitmapFontLoader}},PIXI.AssetLoader.constructor=PIXI.AssetLoader,PIXI.AssetLoader.prototype.load=function(){var t=this;this.loadCount=this.assetURLs.length;for(var e=0;this.assetURLs.length>e;e++){var i=this.assetURLs[e],r=i.split(".").pop().toLowerCase(),s=this.loadersByType[r];if(!s)throw Error(r+" is an unsupported file type");var n=new s(i,this.crossorigin);n.addEventListener("loaded",function(){t.onAssetLoaded()}),n.load()}},PIXI.AssetLoader.prototype.onAssetLoaded=function(){this.loadCount--,this.dispatchEvent({type:"onProgress",content:this}),this.onProgress&&this.onProgress(),0==this.loadCount&&(this.dispatchEvent({type:"onComplete",content:this}),this.onComplete&&this.onComplete())},PIXI.SpriteSheetLoader=function(t,e){PIXI.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.frames={},this.crossorigin=e},PIXI.SpriteSheetLoader.constructor=PIXI.SpriteSheetLoader,PIXI.SpriteSheetLoader.prototype.load=function(){this.ajaxRequest=new AjaxRequest;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onJSONLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/json"),this.ajaxRequest.send(null)},PIXI.SpriteSheetLoader.prototype.onJSONLoaded=function(){if(4==this.ajaxRequest.readyState&&(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))){var jsonData=eval("("+this.ajaxRequest.responseText+")"),textureUrl=this.baseUrl+jsonData.meta.image,image=new PIXI.ImageLoader(textureUrl,this.crossorigin);this.texture=image.texture.baseTexture;var scope=this;image.addEventListener("loaded",function(){scope.onLoaded()});var frameData=jsonData.frames;for(var i in frameData){var rect=frameData[i].frame;rect&&(PIXI.TextureCache[i]=new PIXI.Texture(this.texture,{x:rect.x,y:rect.y,width:rect.w,height:rect.h}),frameData[i].trimmed&&(PIXI.TextureCache[i].realSize=frameData[i].spriteSourceSize,PIXI.TextureCache[i].trim.x=0))}image.load()}},PIXI.SpriteSheetLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},PIXI.ImageLoader=function(t,e){PIXI.EventTarget.call(this),this.texture=PIXI.Texture.fromImage(t,e)},PIXI.ImageLoader.constructor=PIXI.ImageLoader,PIXI.ImageLoader.prototype.load=function(){if(this.texture.baseTexture.hasLoaded)this.onLoaded();else{var t=this;this.texture.baseTexture.addEventListener("loaded",function(){t.onLoaded()})}},PIXI.ImageLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},PIXI.BitmapFontLoader=function(t,e){PIXI.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.crossorigin=e},PIXI.BitmapFontLoader.constructor=PIXI.BitmapFontLoader,PIXI.BitmapFontLoader.prototype.load=function(){this.ajaxRequest=new XMLHttpRequest;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onXMLLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/xml"),this.ajaxRequest.send(null)},PIXI.BitmapFontLoader.prototype.onXMLLoaded=function(){if(4==this.ajaxRequest.readyState&&(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))){var t=this.baseUrl+this.ajaxRequest.responseXML.getElementsByTagName("page")[0].attributes.getNamedItem("file").nodeValue,e=new PIXI.ImageLoader(t,this.crossorigin);this.texture=e.texture.baseTexture;var i={},r=this.ajaxRequest.responseXML.getElementsByTagName("info")[0],s=this.ajaxRequest.responseXML.getElementsByTagName("common")[0];i.font=r.attributes.getNamedItem("face").nodeValue,i.size=parseInt(r.attributes.getNamedItem("size").nodeValue,10),i.lineHeight=parseInt(s.attributes.getNamedItem("lineHeight").nodeValue,10),i.chars={};for(var n=this.ajaxRequest.responseXML.getElementsByTagName("char"),a=0;n.length>a;a++){var o=parseInt(n[a].attributes.getNamedItem("id").nodeValue,10),h={x:parseInt(n[a].attributes.getNamedItem("x").nodeValue,10),y:parseInt(n[a].attributes.getNamedItem("y").nodeValue,10),width:parseInt(n[a].attributes.getNamedItem("width").nodeValue,10),height:parseInt(n[a].attributes.getNamedItem("height").nodeValue,10)};PIXI.TextureCache[o]=new PIXI.Texture(this.texture,h),i.chars[o]={xOffset:parseInt(n[a].attributes.getNamedItem("xoffset").nodeValue,10),yOffset:parseInt(n[a].attributes.getNamedItem("yoffset").nodeValue,10),xAdvance:parseInt(n[a].attributes.getNamedItem("xadvance").nodeValue,10),kerning:{}}}var u=this.ajaxRequest.responseXML.getElementsByTagName("kerning");for(a=0;u.length>a;a++){var d=parseInt(u[a].attributes.getNamedItem("first").nodeValue,10),c=parseInt(u[a].attributes.getNamedItem("second").nodeValue,10),l=parseInt(u[a].attributes.getNamedItem("amount").nodeValue,10);i.chars[c].kerning[d]=l}PIXI.BitmapText.fonts[i.font]=i;var I=this;e.addEventListener("loaded",function(){I.onLoaded()}),e.load()}},PIXI.BitmapFontLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=PIXI),exports.PIXI=PIXI):root.PIXI=PIXI}).call(this); \ No newline at end of file diff --git a/docs/classes/WebGLRenderer.html b/docs/classes/WebGLRenderer.html index 581cb5a..fcef6b6 100644 --- a/docs/classes/WebGLRenderer.html +++ b/docs/classes/WebGLRenderer.html @@ -498,7 +498,7 @@ - src/pixi/renderers/WebGLRenderer.js:283 + src/pixi/renderers/WebGLRenderer.js:284

diff --git a/docs/data.json b/docs/data.json index 9b4a49d..4b27831 100644 --- a/docs/data.json +++ b/docs/data.json @@ -1388,35 +1388,35 @@ }, { "file": "src/pixi/renderers/WebGLRenderGroup.js", - "line": 523, + "line": 527, "access": "private", "tagname": "", "class": "WebGLBatch" }, { "file": "src/pixi/renderers/WebGLRenderGroup.js", - "line": 607, + "line": 613, "access": "private", "tagname": "", "class": "WebGLBatch" }, { "file": "src/pixi/renderers/WebGLRenderGroup.js", - "line": 663, + "line": 669, "access": "private", "tagname": "", "class": "WebGLBatch" }, { "file": "src/pixi/renderers/WebGLRenderGroup.js", - "line": 740, + "line": 746, "access": "private", "tagname": "", "class": "WebGLBatch" }, { "file": "src/pixi/renderers/WebGLRenderGroup.js", - "line": 777, + "line": 783, "access": "private", "tagname": "", "class": "WebGLBatch" @@ -1465,14 +1465,14 @@ }, { "file": "src/pixi/renderers/WebGLRenderer.js", - "line": 232, + "line": 225, "access": "private", "tagname": "", "class": "WebGLRenderer" }, { "file": "src/pixi/renderers/WebGLRenderer.js", - "line": 283, + "line": 284, "description": "resizes the webGL view to the specified width and height", "itemtype": "method", "name": "resize", @@ -1492,14 +1492,14 @@ }, { "file": "src/pixi/renderers/WebGLRenderer.js", - "line": 307, + "line": 308, "access": "private", "tagname": "", "class": "WebGLRenderer" }, { "file": "src/pixi/renderers/WebGLRenderer.js", - "line": 316, + "line": 317, "access": "private", "tagname": "", "class": "WebGLRenderer" @@ -2908,23 +2908,23 @@ }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderGroup.js:523" + "line": " src/pixi/renderers/WebGLRenderGroup.js:527" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderGroup.js:607" + "line": " src/pixi/renderers/WebGLRenderGroup.js:613" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderGroup.js:663" + "line": " src/pixi/renderers/WebGLRenderGroup.js:669" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderGroup.js:740" + "line": " src/pixi/renderers/WebGLRenderGroup.js:746" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderGroup.js:777" + "line": " src/pixi/renderers/WebGLRenderGroup.js:783" }, { "message": "Missing item type", @@ -2944,15 +2944,15 @@ }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderer.js:232" + "line": " src/pixi/renderers/WebGLRenderer.js:225" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderer.js:307" + "line": " src/pixi/renderers/WebGLRenderer.js:308" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderer.js:316" + "line": " src/pixi/renderers/WebGLRenderer.js:317" }, { "message": "Missing item type", diff --git a/docs/files/src_pixi_renderers_WebGLRenderGroup.js.html b/docs/files/src_pixi_renderers_WebGLRenderGroup.js.html index 7222602..42bcabd 100644 --- a/docs/files/src_pixi_renderers_WebGLRenderGroup.js.html +++ b/docs/files/src_pixi_renderers_WebGLRenderGroup.js.html @@ -177,6 +177,8 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + //PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. @@ -215,6 +217,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + //PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -683,7 +687,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/docs/files/src_pixi_renderers_WebGLRenderer.js.html b/docs/files/src_pixi_renderers_WebGLRenderer.js.html index 0383c4d..551dd19 100644 --- a/docs/files/src_pixi_renderers_WebGLRenderer.js.html +++ b/docs/files/src_pixi_renderers_WebGLRenderer.js.html @@ -306,15 +306,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -366,9 +359,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -400,7 +402,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) diff --git a/examples/example 1 - Basics/pixi.js b/examples/example 1 - Basics/pixi.js index f29080a..3478cf4 100644 --- a/examples/example 1 - Basics/pixi.js +++ b/examples/example 1 - Basics/pixi.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/examples/example 10 - Text/pixi.js b/examples/example 10 - Text/pixi.js index f29080a..3478cf4 100644 --- a/examples/example 10 - Text/pixi.js +++ b/examples/example 10 - Text/pixi.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/examples/example 11 - RenderTexture/index.html b/examples/example 11 - RenderTexture/index.html index efd342b..e4acf76 100644 --- a/examples/example 11 - RenderTexture/index.html +++ b/examples/example 11 - RenderTexture/index.html @@ -15,7 +15,7 @@ diff --git a/examples/example 11 - RenderTexture/pixi.js b/examples/example 11 - RenderTexture/pixi.js index f29080a..3478cf4 100644 --- a/examples/example 11 - RenderTexture/pixi.js +++ b/examples/example 11 - RenderTexture/pixi.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/examples/example 2 - SpriteSheet/pixi.js b/examples/example 2 - SpriteSheet/pixi.js index f29080a..3478cf4 100644 --- a/examples/example 2 - SpriteSheet/pixi.js +++ b/examples/example 2 - SpriteSheet/pixi.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/examples/example 3 - MovieClip/pixi.js b/examples/example 3 - MovieClip/pixi.js index f29080a..3478cf4 100755 --- a/examples/example 3 - MovieClip/pixi.js +++ b/examples/example 3 - MovieClip/pixi.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/examples/example 4 - Balls/pixi.js b/examples/example 4 - Balls/pixi.js index f29080a..3478cf4 100644 --- a/examples/example 4 - Balls/pixi.js +++ b/examples/example 4 - Balls/pixi.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/examples/example 5 - Morph/pixi.js b/examples/example 5 - Morph/pixi.js index f29080a..3478cf4 100644 --- a/examples/example 5 - Morph/pixi.js +++ b/examples/example 5 - Morph/pixi.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/examples/example 6 - Interactivity/pixi.js b/examples/example 6 - Interactivity/pixi.js index f29080a..3478cf4 100644 --- a/examples/example 6 - Interactivity/pixi.js +++ b/examples/example 6 - Interactivity/pixi.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/bin/pixi.dev.js b/bin/pixi.dev.js index f29080a..3478cf4 100644 --- a/bin/pixi.dev.js +++ b/bin/pixi.dev.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/bin/pixi.js b/bin/pixi.js index 5f2a13c..a6d54d1 100644 --- a/bin/pixi.js +++ b/bin/pixi.js @@ -4,10 +4,10 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php */ -(function(){function HEXtoRGB(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}function determineMatrixArrayType(){return PIXI.Matrix="undefined"!=typeof Float32Array?Float32Array:Array,PIXI.Matrix}var root=this,PIXI=PIXI||{};PIXI.Point=function(t,e){this.x=t||0,this.y=e||0},PIXI.Point.prototype.clone=function(){return new PIXI.Point(this.x,this.y)},PIXI.Point.constructor=PIXI.Point,PIXI.Rectangle=function(t,e,i,r){this.x=t||0,this.y=e||0,this.width=i||0,this.height=r||0},PIXI.Rectangle.prototype.clone=function(){return new PIXI.Rectangle(this.x,this.y,this.width,this.height)},PIXI.Rectangle.constructor=PIXI.Rectangle,PIXI.DisplayObject=function(){this.position=new PIXI.Point,this.scale=new PIXI.Point(1,1),this.pivot=new PIXI.Point(0,0),this.rotation=0,this.alpha=1,this.visible=!0,this.worldVisible=!1,this.parent=null,this.stage=null,this.hitArea=null,this.worldAlpha=1,this.color=[],this.worldTransform=PIXI.mat3.create(),this.localTransform=PIXI.mat3.create(),this.dynamic=!0,this._sr=0,this._cr=1,this.childIndex=0,this.renderable=!1,this.interactive=!1,this.buttonMode=!1},PIXI.DisplayObject.constructor=PIXI.DisplayObject,PIXI.DisplayObject.prototype.setInteractive=function(t){this.interactive=t,this.stage&&(this.stage.dirty=!0)},PIXI.DisplayObject.prototype.updateTransform=function(){this.rotation!=this.rotationCache&&(this.rotationCache=this.rotation,this._sr=Math.sin(this.rotation),this._cr=Math.cos(this.rotation));var t=this.localTransform,e=this.parent.worldTransform,i=this.worldTransform;t[0]=this._cr*this.scale.x,t[1]=-this._sr*this.scale.y,t[3]=this._sr*this.scale.x,t[4]=this._cr*this.scale.y;var r=this.pivot.x,s=this.pivot.y;t[2]=this.position.x-t[0]*r-s*t[1],t[5]=this.position.y-t[4]*s-r*t[3];var n=t[0],a=t[1],o=t[2],h=t[3],u=t[4],c=t[5],d=e[0],l=e[1],I=e[2],p=e[3],f=e[4],x=e[5];i[0]=d*n+l*h,i[1]=d*a+l*u,i[2]=d*o+l*c+I,i[3]=p*n+f*h,i[4]=p*a+f*u,i[5]=p*o+f*c+x,this.worldAlpha=this.alpha*this.parent.worldAlpha},PIXI.DisplayObjectContainer=function(){PIXI.DisplayObject.call(this),this.children=[],this.renderable=!1},PIXI.DisplayObjectContainer.constructor=PIXI.DisplayObjectContainer,PIXI.DisplayObjectContainer.prototype=Object.create(PIXI.DisplayObject.prototype),PIXI.DisplayObjectContainer.prototype.addChild=function(t){void 0!=t.parent&&t.parent.removeChild(t),t.parent=this,t.childIndex=this.children.length,this.children.push(t),this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},PIXI.DisplayObjectContainer.prototype.addChildAt=function(t,e){if(!(e>=0&&this.children.length>=e))throw Error(t+" The index "+e+" supplied is out of bounds "+this.children.length);void 0!=t.parent&&t.parent.removeChild(t),e==this.children.length?this.children.push(t):this.children.splice(e,0,t),t.parent=this,t.childIndex=e;for(var i=this.children.length,r=e;i>r;r++)this.children[r].childIndex=r;this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},PIXI.DisplayObjectContainer.prototype.swapChildren=function(t,e){var i=this.children.indexOf(t),r=this.children.indexOf(e);if(-1===i||-1===r)throw Error(t+" Both the supplied DisplayObjects must be a child of the caller "+this);this.stage&&(this.stage.__removeChild(t),this.stage.__removeChild(e),this.stage.__addChild(t),this.stage.__addChild(e)),t.childIndex=r,e.childIndex=i,this.children[i]=e,this.children[r]=t},PIXI.DisplayObjectContainer.prototype.getChildAt=function(t){if(t>=0&&this.children.length>t)return this.children[t];throw Error(child+" Both the supplied DisplayObjects must be a child of the caller "+this)},PIXI.DisplayObjectContainer.prototype.removeChild=function(t){var e=this.children.indexOf(t);if(-1===e)throw Error(t+" The supplied DisplayObject must be a child of the caller "+this);this.stage&&this.stage.__removeChild(t),t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.parent=void 0,this.children.splice(e,1);for(var i=e,r=this.children.length;r>i;i++)this.children[i].childIndex-=1},PIXI.DisplayObjectContainer.prototype.updateTransform=function(){if(this.visible){PIXI.DisplayObject.prototype.updateTransform.call(this);for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform()}},PIXI.blendModes={},PIXI.blendModes.NORMAL=0,PIXI.blendModes.SCREEN=1,PIXI.Sprite=function(t){PIXI.DisplayObjectContainer.call(this),this.anchor=new PIXI.Point,this.texture=t,this.blendMode=PIXI.blendModes.NORMAL,this._width=0,this._height=0,t.baseTexture.hasLoaded?this.updateFrame=!0:(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},PIXI.Sprite.constructor=PIXI.Sprite,PIXI.Sprite.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),Object.defineProperty(PIXI.Sprite.prototype,"width",{get:function(){return this.scale.x*this.texture.frame.width},set:function(t){this.scale.x=t/this.texture.frame.width,this._width=t}}),Object.defineProperty(PIXI.Sprite.prototype,"height",{get:function(){return this.scale.y*this.texture.frame.height},set:function(t){this.scale.y=t/this.texture.frame.height,this._height=t}}),PIXI.Sprite.prototype.setTexture=function(t){this.texture.baseTexture!=t.baseTexture&&(this.textureChange=!0),this.texture=t,this.updateFrame=!0},PIXI.Sprite.prototype.onTextureUpdate=function(){this._width&&(this.scale.x=this._width/this.texture.frame.width),this._height&&(this.scale.y=this._height/this.texture.frame.height),this.updateFrame=!0},PIXI.Sprite.fromFrame=function(t){var e=PIXI.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache"+this);return new PIXI.Sprite(e)},PIXI.Sprite.fromImage=function(t){var e=PIXI.Texture.fromImage(t);return new PIXI.Sprite(e)},PIXI.MovieClip=function(t){PIXI.Sprite.call(this,t[0]),this.textures=t,this.currentFrame=0,this.animationSpeed=1,this.loop=!0,this.onComplete=null,this.playing},PIXI.MovieClip.constructor=PIXI.MovieClip,PIXI.MovieClip.prototype=Object.create(PIXI.Sprite.prototype),PIXI.MovieClip.prototype.stop=function(){this.playing=!1},PIXI.MovieClip.prototype.play=function(){this.playing=!0},PIXI.MovieClip.prototype.gotoAndStop=function(t){this.playing=!1,this.currentFrame=t;var e=0|this.currentFrame+.5;this.setTexture(this.textures[e%this.textures.length])},PIXI.MovieClip.prototype.gotoAndPlay=function(t){this.currentFrame=t,this.playing=!0},PIXI.MovieClip.prototype.updateTransform=function(){if(PIXI.Sprite.prototype.updateTransform.call(this),this.playing){this.currentFrame+=this.animationSpeed;var t=0|this.currentFrame+.5;this.loop||this.textures.length>t?this.setTexture(this.textures[t%this.textures.length]):t>=this.textures.length&&(this.gotoAndStop(this.textures.length-1),this.onComplete&&this.onComplete())}},PIXI.Text=function(t,e){this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"),PIXI.Sprite.call(this,PIXI.Texture.fromCanvas(this.canvas)),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},PIXI.Text.constructor=PIXI.Text,PIXI.Text.prototype=Object.create(PIXI.Sprite.prototype),PIXI.Text.prototype.setStyle=function(t){t=t||{},t.font=t.font||"bold 20pt Arial",t.fill=t.fill||"black",t.align=t.align||"left",t.strokeThickness=t.strokeThickness||0,this.style=t,this.dirty=!0},PIXI.Sprite.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},PIXI.Text.prototype.updateText=function(){this.context.font=this.style.font;for(var t=this.text.split(/(?:\r\n|\r|\n)/),e=[],i=0,r=0;t.length>r;r++){var s=this.context.measureText(t[r]).width;e[r]=s,i=Math.max(i,s)}this.canvas.width=i+this.style.strokeThickness;var n=this.determineFontHeight("font: "+this.style.font+";")+this.style.strokeThickness;for(this.canvas.height=n*t.length,this.context.fillStyle=this.style.fill,this.context.font=this.style.font,this.context.strokeStyle=this.style.stroke,this.context.lineWidth=this.style.strokeThickness,this.context.textBaseline="top",r=0;t.length>r;r++){var a=new PIXI.Point(this.style.strokeThickness/2,this.style.strokeThickness/2+r*n);"right"==this.style.align?a.x+=i-e[r]:"center"==this.style.align&&(a.x+=(i-e[r])/2),this.style.stroke&&this.style.strokeThickness&&this.context.strokeText(t[r],a.x,a.y),this.style.fill&&this.context.fillText(t[r],a.x,a.y)}this.updateTexture()},PIXI.Text.prototype.updateTexture=function(){this.texture.baseTexture.width=this.canvas.width,this.texture.baseTexture.height=this.canvas.height,this.texture.frame.width=this.canvas.width,this.texture.frame.height=this.canvas.height,this._width=this.canvas.width,this._height=this.canvas.height,PIXI.texturesToUpdate.push(this.texture.baseTexture)},PIXI.Text.prototype.updateTransform=function(){this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype.updateTransform.call(this)},PIXI.Text.prototype.determineFontHeight=function(t){var e=PIXI.Text.heightCache[t];if(!e){var i=document.getElementsByTagName("body")[0],r=document.createElement("div"),s=document.createTextNode("M");r.appendChild(s),r.setAttribute("style",t),i.appendChild(r),e=r.offsetHeight,PIXI.Text.heightCache[t]=e,i.removeChild(r)}return e},PIXI.Text.prototype.destroy=function(t){t&&this.texture.destroy()},PIXI.Text.heightCache={},PIXI.BitmapText=function(t,e){PIXI.DisplayObjectContainer.call(this),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},PIXI.BitmapText.constructor=PIXI.BitmapText,PIXI.BitmapText.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.BitmapText.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},PIXI.BitmapText.prototype.setStyle=function(t){t=t||{},t.align=t.align||"left",this.style=t;var e=t.font.split(" ");this.fontName=e[e.length-1],this.fontSize=e.length>=2?parseInt(e[e.length-2],10):PIXI.BitmapText.fonts[this.fontName].size,this.dirty=!0},PIXI.BitmapText.prototype.updateText=function(){for(var t=PIXI.BitmapText.fonts[this.fontName],e=new PIXI.Point,i=null,r=[],s=0,n=[],a=0,o=this.fontSize/t.size,h=0;this.text.length>h;h++){var u=this.text.charCodeAt(h);if(/(?:\r\n|\r|\n)/.test(this.text.charAt(h)))n.push(e.x),s=Math.max(s,e.x),a++,e.x=0,e.y+=t.lineHeight,i=null;else{var c=t.chars[u];c&&(i&&c[i]&&(e.x+=c.kerning[i]),r.push({line:a,charCode:u,position:new PIXI.Point(e.x+c.xOffset,e.y+c.yOffset)}),e.x+=c.xAdvance,i=u)}}n.push(e.x),s=Math.max(s,e.x);var d=[];for(h=0;a>=h;h++){var l=0;"right"==this.style.align?l=s-n[h]:"center"==this.style.align&&(l=(s-n[h])/2),d.push(l)}for(h=0;r.length>h;h++){var I=PIXI.Sprite.fromFrame(r[h].charCode);I.position.x=(r[h].position.x+d[r[h].line])*o,I.position.y=r[h].position.y*o,I.scale.x=I.scale.y=o,this.addChild(I)}this.width=e.x*o,this.height=(e.y+t.lineHeight)*o},PIXI.BitmapText.prototype.updateTransform=function(){if(this.dirty){for(;this.children.length>0;)this.removeChild(this.getChildAt(0));this.updateText(),this.dirty=!1}PIXI.DisplayObjectContainer.prototype.updateTransform.call(this)},PIXI.BitmapText.fonts={},PIXI.InteractionManager=function(t){this.stage=t,this.tempPoint=new PIXI.Point,this.mouseoverEnabled=!0,this.mouse=new PIXI.InteractionData,this.touchs={},this.pool=[],this.interactiveItems=[],this.last=0},PIXI.InteractionManager.constructor=PIXI.InteractionManager,PIXI.InteractionManager.prototype.collectInteractiveSprite=function(t,e){for(var i=t.children,r=i.length,s=r-1;s>=0;s--){var n=i[s];n.interactive?(e.interactiveChildren=!0,this.interactiveItems.push(n),n.children.length>0&&this.collectInteractiveSprite(n,n)):(n.__iParent=null,n.children.length>0&&this.collectInteractiveSprite(n,e))}},PIXI.InteractionManager.prototype.setTarget=function(t){window.navigator.msPointerEnabled&&(t.view.style["-ms-content-zooming"]="none",t.view.style["-ms-touch-action"]="none"),this.target=t,t.view.addEventListener("mousemove",this.onMouseMove.bind(this),!0),t.view.addEventListener("mousedown",this.onMouseDown.bind(this),!0),document.body.addEventListener("mouseup",this.onMouseUp.bind(this),!0),t.view.addEventListener("mouseout",this.onMouseUp.bind(this),!0),t.view.addEventListener("touchstart",this.onTouchStart.bind(this),!0),t.view.addEventListener("touchend",this.onTouchEnd.bind(this),!0),t.view.addEventListener("touchmove",this.onTouchMove.bind(this),!0)},PIXI.InteractionManager.prototype.update=function(){if(this.target){var t=Date.now(),e=t-this.last;if(e=30*e/1e3,!(1>e)){if(this.last=t,this.dirty){this.dirty=!1,this.interactiveItems.length;for(var i=0;this.interactiveItems.length>i;i++)this.interactiveItems[i].interactiveChildren=!1;this.interactiveItems=[],this.stage.interactive&&this.interactiveItems.push(this.stage),this.collectInteractiveSprite(this.stage,this.stage)}var r=this.interactiveItems.length;this.target.view.style.cursor="default";for(var i=0;r>i;i++){var s=this.interactiveItems[i];s.visible&&(s.mouseover||s.mouseout||s.buttonMode)&&(s.__hit=this.hitTest(s,this.mouse),s.__hit?(s.buttonMode&&(this.target.view.style.cursor="pointer"),s.__isOver||(s.mouseover&&s.mouseover(this.mouse),s.__isOver=!0)):s.__isOver&&(s.mouseout&&s.mouseout(this.mouse),s.__isOver=!1))}}}},PIXI.InteractionManager.prototype.onMouseMove=function(t){t.preventDefault();var e=this.target.view.getBoundingClientRect();this.mouse.global.x=(t.clientX-e.left)*(this.target.width/e.width),this.mouse.global.y=(t.clientY-e.top)*(this.target.height/e.height);var i=this.interactiveItems.length;this.mouse.global;for(var r=0;i>r;r++){var s=this.interactiveItems[r];s.mousemove&&s.mousemove(this.mouse)}},PIXI.InteractionManager.prototype.onMouseDown=function(t){t.preventDefault();var e=this.interactiveItems.length;this.mouse.global,this.stage;for(var i=0;e>i;i++){var r=this.interactiveItems[i];if((r.mousedown||r.click)&&(r.__mouseIsDown=!0,r.__hit=this.hitTest(r,this.mouse),r.__hit&&(r.mousedown&&r.mousedown(this.mouse),r.__isDown=!0,!r.interactiveChildren)))break}},PIXI.InteractionManager.prototype.onMouseUp=function(t){t.preventDefault(),this.mouse.global;for(var e=this.interactiveItems.length,i=!1,r=0;e>r;r++){var s=this.interactiveItems[r];(s.mouseup||s.mouseupoutside||s.click)&&(s.__hit=this.hitTest(s,this.mouse),s.__hit&&!i?(s.mouseup&&s.mouseup(this.mouse),s.__isDown&&s.click&&s.click(this.mouse),s.interactiveChildren||(i=!0)):s.__isDown&&s.mouseupoutside&&s.mouseupoutside(this.mouse),s.__isDown=!1)}},PIXI.InteractionManager.prototype.hitTest=function(t,e){var i=e.global;if(!t.visible)return!1;if(t instanceof PIXI.Sprite){var r=t.worldTransform,s=r[0],n=r[1],a=r[2],o=r[3],h=r[4],u=r[5],c=1/(s*h+n*-o),d=h*c*i.x+-n*c*i.y+(u*n-a*h)*c,l=s*c*i.y+-o*c*i.x+(-u*s+a*o)*c,I=t.texture.frame.width,p=t.texture.frame.height,f=-I*t.anchor.x;if(d>f&&f+I>d){var x=-p*t.anchor.y;if(l>x&&x+p>l)return e.target=t,!0}}else if(t.hitArea){var r=t.worldTransform,v=t.hitArea,s=r[0],n=r[1],a=r[2],o=r[3],h=r[4],u=r[5],c=1/(s*h+n*-o),d=h*c*i.x+-n*c*i.y+(u*n-a*h)*c,l=s*c*i.y+-o*c*i.x+(-u*s+a*o)*c,f=v.x;if(d>f&&f+v.width>d){var x=v.y;if(l>x&&x+v.height>l)return!0}}for(var P=t.children.length,g=0;P>g;g++){var b=t.children[g],X=this.hitTest(b,e);if(X)return!0}return!1},PIXI.InteractionManager.prototype.onTouchMove=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.touchs[s.identifier];n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height)}for(var a=this.interactiveItems.length,r=0;a>r;r++){var o=this.interactiveItems[r];o.touchmove&&o.touchmove(n)}},PIXI.InteractionManager.prototype.onTouchStart=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.pool.pop();n||(n=new PIXI.InteractionData),this.touchs[s.identifier]=n,n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height);for(var a=this.interactiveItems.length,o=0;a>o;o++){var h=this.interactiveItems[o];if((h.touchstart||h.tap)&&(h.__hit=this.hitTest(h,n),h.__hit&&(h.touchstart&&h.touchstart(n),h.__isDown=!0,h.__touchData=n,!h.interactiveChildren)))break}}},PIXI.InteractionManager.prototype.onTouchEnd=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.touchs[s.identifier],a=!1;n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var u=this.interactiveItems[h],c=u.__touchData;u.__hit=this.hitTest(u,n),c==n&&((u.touchend||u.tap)&&(u.__hit&&!a?(u.touchend&&u.touchend(n),u.__isDown&&u.tap&&u.tap(n),u.interactiveChildren||(a=!0)):u.__isDown&&u.touchendoutside&&u.touchendoutside(n),u.__isDown=!1),u.__touchData=null)}this.pool.push(n),this.touchs[s.identifier]=null}},PIXI.InteractionData=function(){this.global=new PIXI.Point,this.local=new PIXI.Point,this.target},PIXI.InteractionData.prototype.getLocalPosition=function(t){var e=t.worldTransform,i=this.global,r=e[0],s=e[1],n=e[2],a=e[3],o=e[4],h=e[5],u=1/(r*o+s*-a);return new PIXI.Point(o*u*i.x+-s*u*i.y+(h*s-n*o)*u,r*u*i.y+-a*u*i.x+(-h*r+n*a)*u)},PIXI.InteractionData.constructor=PIXI.InteractionData,PIXI.Stage=function(t,e){PIXI.DisplayObjectContainer.call(this),this.worldTransform=PIXI.mat3.create(),this.__childrenAdded=[],this.__childrenRemoved=[],this.childIndex=0,this.stage=this,this.stage.hitArea=new PIXI.Rectangle(0,0,1e5,1e5),this.interactive=!!e,this.interactionManager=new PIXI.InteractionManager(this),this.setBackgroundColor(t),this.worldVisible=!0},PIXI.Stage.constructor=PIXI.Stage,PIXI.Stage.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Stage.prototype.updateTransform=function(){this.worldAlpha=1;for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform();this.dirty&&(this.dirty=!1,this.interactionManager.dirty=!0),this.interactive&&this.interactionManager.update()},PIXI.Stage.prototype.setBackgroundColor=function(t){this.backgroundColor=t||0,this.backgroundColorSplit=HEXtoRGB(this.backgroundColor),this.backgroundColorString="#"+this.backgroundColor.toString(16)},PIXI.Stage.prototype.getMousePosition=function(){return this.interactionManager.mouse.global},PIXI.Stage.prototype.__addChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=this,t.children)for(var e=0;t.children.length>e;e++)this.__addChild(t.children[e])},PIXI.Stage.prototype.__removeChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=void 0,t.children)for(var e=0,i=t.children.length;i>e;e++)this.__removeChild(t.children[e])},window.requestAnimFrame=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(t){window.setTimeout(t,1e3/60)}}(),"function"!=typeof Function.prototype.bind&&(Function.prototype.bind=function(){var t=Array.prototype.slice;return function(e){function i(){var n=s.concat(t.call(arguments));r.apply(this instanceof i?this:e,n)}var r=this,s=t.call(arguments,1);if("function"!=typeof r)throw new TypeError;return i.prototype=function n(t){return t&&(n.prototype=t),this instanceof n?void 0:new n}(r.prototype),i}}());var AjaxRequest=function(){var t=["Msxml2.XMLHTTP","Microsoft.XMLHTTP"];if(!window.ActiveXObject)return window.XMLHttpRequest?new XMLHttpRequest:!1;for(var e=0;t.length>e;e++)try{return new ActiveXObject(t[e])}catch(i){}};PIXI.EventTarget=function(){var t={};this.addEventListener=this.on=function(e,i){void 0===t[e]&&(t[e]=[]),-1===t[e].indexOf(i)&&t[e].push(i)},this.dispatchEvent=this.emit=function(e){for(var i in t[e.type])t[e.type][i](e)},this.removeEventListener=this.off=function(e,i){var r=t[e].indexOf(i);-1!==r&&t[e].splice(r,1)}},determineMatrixArrayType(),PIXI.mat3={},PIXI.mat3.create=function(){var t=new PIXI.Matrix(9);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},PIXI.mat4={},PIXI.mat4.create=function(){var t=new PIXI.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},PIXI.mat3.multiply=function(t,e,i){i||(i=t);var r=t[0],s=t[1],n=t[2],a=t[3],o=t[4],h=t[5],u=t[6],c=t[7],d=t[8],l=e[0],I=e[1],p=e[2],f=e[3],x=e[4],v=e[5],P=e[6],g=e[7],b=e[8];return i[0]=l*r+I*a+p*u,i[1]=l*s+I*o+p*c,i[2]=l*n+I*h+p*d,i[3]=f*r+x*a+v*u,i[4]=f*s+x*o+v*c,i[5]=f*n+x*h+v*d,i[6]=P*r+g*a+b*u,i[7]=P*s+g*o+b*c,i[8]=P*n+g*h+b*d,i},PIXI.mat3.toMat4=function(t,e){return e||(e=PIXI.mat4.create()),e[15]=1,e[14]=0,e[13]=0,e[12]=0,e[11]=0,e[10]=t[8],e[9]=t[7],e[8]=t[6],e[7]=0,e[6]=t[5],e[5]=t[4],e[4]=t[3],e[3]=0,e[2]=t[2],e[1]=t[1],e[0]=t[0],e},PIXI.mat4.create=function(){var t=new PIXI.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},PIXI.mat4.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],s=t[3],n=t[6],a=t[7],o=t[11];return t[1]=t[4],t[2]=t[8],t[3]=t[12],t[4]=i,t[6]=t[9],t[7]=t[13],t[8]=r,t[9]=n,t[11]=t[14],t[12]=s,t[13]=a,t[14]=o,t}return e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=t[1],e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=t[2],e[9]=t[6],e[10]=t[10],e[11]=t[14],e[12]=t[3],e[13]=t[7],e[14]=t[11],e[15]=t[15],e},PIXI.mat4.multiply=function(t,e,i){i||(i=t);var r=t[0],s=t[1],n=t[2],a=t[3],o=t[4],h=t[5],u=t[6],c=t[7],d=t[8],l=t[9],I=t[10],p=t[11],f=t[12],x=t[13],v=t[14],P=t[15],g=e[0],b=e[1],X=e[2],m=e[3];return i[0]=g*r+b*o+X*d+m*f,i[1]=g*s+b*h+X*l+m*x,i[2]=g*n+b*u+X*I+m*v,i[3]=g*a+b*c+X*p+m*P,g=e[4],b=e[5],X=e[6],m=e[7],i[4]=g*r+b*o+X*d+m*f,i[5]=g*s+b*h+X*l+m*x,i[6]=g*n+b*u+X*I+m*v,i[7]=g*a+b*c+X*p+m*P,g=e[8],b=e[9],X=e[10],m=e[11],i[8]=g*r+b*o+X*d+m*f,i[9]=g*s+b*h+X*l+m*x,i[10]=g*n+b*u+X*I+m*v,i[11]=g*a+b*c+X*p+m*P,g=e[12],b=e[13],X=e[14],m=e[15],i[12]=g*r+b*o+X*d+m*f,i[13]=g*s+b*h+X*l+m*x,i[14]=g*n+b*u+X*I+m*v,i[15]=g*a+b*c+X*p+m*P,i},PIXI.autoDetectRenderer=function(t,e,i,r){t||(t=800),e||(e=600);var s=function(){try{return!!window.WebGLRenderingContext&&!!document.createElement("canvas").getContext("experimental-webgl")}catch(t){return!1}}();return s?new PIXI.WebGLRenderer(t,e,i,r):new PIXI.CanvasRenderer(t,e,i,r)},PIXI.shaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * vColor;","}"],PIXI.shaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform mat4 uMVMatrix;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","gl_Position = uMVMatrix * vec4(aVertexPosition, 1.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],PIXI.CompileVertexShader=function(t,e){return PIXI._CompileShader(t,e,t.VERTEX_SHADER)},PIXI.CompileFragmentShader=function(t,e){return PIXI._CompileShader(t,e,t.FRAGMENT_SHADER)},PIXI._CompileShader=function(t,e,i){var r=e.join("\n"),s=t.createShader(i);return t.shaderSource(s,r),t.compileShader(s),t.getShaderParameter(s,t.COMPILE_STATUS)?s:(alert(t.getShaderInfoLog(s)),null)},PIXI._defaultFrame=new PIXI.Rectangle(0,0,1,1),PIXI.gl,PIXI.WebGLRenderer=function(t,e,i,r){this.transparent=!!r,this.width=t||800,this.height=e||600,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height;var s=this;this.view.addEventListener("webglcontextlost",function(t){s.handleContextLost(t)},!1),this.view.addEventListener("webglcontextrestored",function(t){s.handleContextRestored(t)},!1),this.batchs=[];try{PIXI.gl=this.gl=this.view.getContext("experimental-webgl",{alpha:this.transparent,antialias:!1,premultipliedAlpha:!0})}catch(n){throw Error(" This browser does not support webGL. Try using the canvas renderer"+this)}this.initShaders();var a=this.gl;PIXI.WebGLRenderer.gl=a,this.batch=new PIXI.WebGLBatch(a),a.disable(a.DEPTH_TEST),a.disable(a.CULL_FACE),a.enable(a.BLEND),a.colorMask(!0,!0,!0,this.transparent),this.projectionMatrix=PIXI.mat4.create(),this.resize(this.width,this.height),this.contextLost=!1,this.stageRenderGroup=new PIXI.WebGLRenderGroup(this.gl)},PIXI.WebGLRenderer.constructor=PIXI.WebGLRenderer,PIXI.WebGLRenderer.getBatch=function(){return 0==PIXI._batchs.length?new PIXI.WebGLBatch(PIXI.WebGLRenderer.gl):PIXI._batchs.pop()},PIXI.WebGLRenderer.returnBatch=function(t){t.clean(),PIXI._batchs.push(t)},PIXI.WebGLRenderer.prototype.initShaders=function(){var t=this.gl,e=PIXI.CompileFragmentShader(t,PIXI.shaderFragmentSrc),i=PIXI.CompileVertexShader(t,PIXI.shaderVertexSrc);PIXI.shaderProgram=t.createProgram();var r=PIXI.shaderProgram;t.attachShader(r,i),t.attachShader(r,e),t.linkProgram(r),t.getProgramParameter(r,t.LINK_STATUS)||alert("Could not initialise shaders"),t.useProgram(r),r.vertexPositionAttribute=t.getAttribLocation(r,"aVertexPosition"),t.enableVertexAttribArray(r.vertexPositionAttribute),r.textureCoordAttribute=t.getAttribLocation(r,"aTextureCoord"),t.enableVertexAttribArray(r.textureCoordAttribute),r.colorAttribute=t.getAttribLocation(r,"aColor"),t.enableVertexAttribArray(r.colorAttribute),r.mvMatrixUniform=t.getUniformLocation(r,"uMVMatrix"),r.samplerUniform=t.getUniformLocation(r,"uSampler")},PIXI.WebGLRenderer.prototype.render=function(t){if(!this.contextLost){this.__stage!==t&&(this.__stage=t,this.stageRenderGroup.setRenderable(t));for(var e=0;PIXI.texturesToUpdate.length>e;e++)this.updateTexture(PIXI.texturesToUpdate[e]);for(var e=0;PIXI.texturesToDestroy.length>e;e++)this.destroyTexture(PIXI.texturesToDestroy[e]);PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[],t.updateTransform();var i=this.gl;if(i.colorMask(!0,!0,!0,this.transparent),i.viewport(0,0,this.width,this.height),i.bindFramebuffer(i.FRAMEBUFFER,null),i.clearColor(t.backgroundColorSplit[0],t.backgroundColorSplit[1],t.backgroundColorSplit[2],this.transparent),i.clear(i.COLOR_BUFFER_BIT),this.stageRenderGroup.backgroundColor=t.backgroundColorSplit,this.stageRenderGroup.render(this.projectionMatrix),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),PIXI.Texture.frameUpdates.length>0){for(var e=0;PIXI.Texture.frameUpdates.length>e;e++)PIXI.Texture.frameUpdates[e].updateFrame=!1;PIXI.Texture.frameUpdates=[]}}},PIXI.WebGLRenderer.prototype.updateTexture=function(t){var e=this.gl;t._glTexture||(t._glTexture=e.createTexture()),t.hasLoaded&&(e.bindTexture(e.TEXTURE_2D,t._glTexture),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t.source),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),t._powerOf2?(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT)):(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)),e.bindTexture(e.TEXTURE_2D,null)),this.refreshBatchs=!0},PIXI.WebGLRenderer.prototype.destroyTexture=function(t){var e=this.gl;t._glTexture&&(t._glTexture=e.createTexture(),e.deleteTexture(e.TEXTURE_2D,t._glTexture))},PIXI.WebGLRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e,this.gl.viewport(0,0,this.width,this.height);var i=this.projectionMatrix;i[0]=2/this.width,i[5]=-2/this.height,i[12]=-1,i[13]=1},PIXI.WebGLRenderer.prototype.handleContextLost=function(t){t.preventDefault(),this.contextLost=!0},PIXI.WebGLRenderer.prototype.handleContextRestored=function(){this.gl=this.view.getContext("experimental-webgl",{alpha:!0}),this.initShaders();for(var t=0;PIXI.TextureCache.length>t;t++)this.updateTexture(PIXI.TextureCache[t]);for(var t=0;this.batchs.length>t;t++)this.batchs[t].restoreLostContext(this.gl),this.batchs[t].dirty=!0;PIXI._restoreBatchs(this.gl),this.contextLost=!1},PIXI._batchs=[],PIXI._getBatch=function(t){return 0==PIXI._batchs.length?new PIXI.WebGLBatch(t):PIXI._batchs.pop()},PIXI._returnBatch=function(t){t.clean(),PIXI._batchs.push(t)},PIXI._restoreBatchs=function(t){for(var e=0;PIXI._batchs.length>e;e++)PIXI._batchs[e].restoreLostContext(t)},PIXI.WebGLBatch=function(t){this.gl=t,this.size=0,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer(),this.blendMode=PIXI.blendModes.NORMAL,this.dynamicSize=1},PIXI.WebGLBatch.constructor=PIXI.WebGLBatch,PIXI.WebGLBatch.prototype.clean=function(){this.verticies=[],this.uvs=[],this.indices=[],this.colors=[],this.dynamicSize=1,this.texture=null,this.last=null,this.size=0,this.head,this.tail},PIXI.WebGLBatch.prototype.restoreLostContext=function(t){this.gl=t,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer()},PIXI.WebGLBatch.prototype.init=function(t){t.batch=this,this.dirty=!0,this.blendMode=t.blendMode,this.texture=t.texture.baseTexture,this.head=t,this.tail=t,this.size=1,this.growBatch()},PIXI.WebGLBatch.prototype.insertBefore=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__prev;e.__prev=t,t.__next=e,i?(t.__prev=i,i.__next=t):this.head=t},PIXI.WebGLBatch.prototype.insertAfter=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__next;e.__next=t,t.__prev=e,i?(t.__next=i,i.__prev=t):this.tail=t},PIXI.WebGLBatch.prototype.remove=function(t){return this.size--,0==this.size?(t.batch=null,t.__prev=null,t.__next=null,void 0):(t.__prev?t.__prev.__next=t.__next:(this.head=t.__next,this.head.__prev=null),t.__next?t.__next.__prev=t.__prev:(this.tail=t.__prev,this.tail.__next=null),t.batch=null,t.__next=null,t.__prev=null,this.dirty=!0,void 0)},PIXI.WebGLBatch.prototype.split=function(t){this.dirty=!0;var e=new PIXI.WebGLBatch(this.gl);e.init(t),e.tail=this.tail,this.tail=t.__prev,this.tail.__next=null,t.__prev=null;for(var i=0;t;)i++,t.batch=e,t=t.__next;return e.size=i,this.size-=i,e},PIXI.WebGLBatch.prototype.merge=function(t){this.dirty=!0,this.tail.__next=t.head,t.head.__prev=this.tail,this.size+=t.size,this.tail=t.tail;for(var e=t.head;e;)e.batch=this,e=e.__next},PIXI.WebGLBatch.prototype.growBatch=function(){var t=this.gl;this.dynamicSize=1==this.size?1:1.5*this.size,this.verticies=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.vertexBuffer),t.bufferData(t.ARRAY_BUFFER,this.verticies,t.DYNAMIC_DRAW),this.uvs=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.uvBuffer),t.bufferData(t.ARRAY_BUFFER,this.uvs,t.DYNAMIC_DRAW),this.dirtyUVS=!0,this.colors=new Float32Array(4*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.colorBuffer),t.bufferData(t.ARRAY_BUFFER,this.colors,t.DYNAMIC_DRAW),this.dirtyColors=!0,this.indices=new Uint16Array(6*this.dynamicSize);for(var e=this.indices.length/6,i=0;e>i;i++){var r=6*i,s=4*i;this.indices[r+0]=s+0,this.indices[r+1]=s+1,this.indices[r+2]=s+2,this.indices[r+3]=s+0,this.indices[r+4]=s+2,this.indices[r+5]=s+3}t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,this.indexBuffer),t.bufferData(t.ELEMENT_ARRAY_BUFFER,this.indices,t.STATIC_DRAW)},PIXI.WebGLBatch.prototype.refresh=function(){this.gl,this.dynamicSizei;i++)this.removeDisplayObjectAndChildren(this.toRemove[i]);this.toRemove=[],this.checkVisibility(this.root,this.root.visible);for(var r,i=0;this.batchs.length>i;i++)r=this.batchs[i],r instanceof PIXI.WebGLBatch?this.batchs[i].render():r instanceof PIXI.TilingSprite?r.visible&&this.renderTilingSprite(r,t):r instanceof PIXI.Strip&&r.visible&&this.renderStrip(r,t)},PIXI.WebGLRenderGroup.prototype.renderSpecific=function(t,e){var i=this.gl;this.checkVisibility(t,t.visible),i.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform,!1,e);var r,s,n,a,o=t.renderable?t:this.getNextRenderable(t),h=o.batch;if(o instanceof PIXI.Sprite){h=o.batch;var u=h.head;if(u==o)r=0;else for(r=1;u.__next!=o;)r++,u=u.__next}else h=o;for(var c,d=t,l=t;l.children.length>0;)l=l.children[l.children.length-1],l.renderable&&(d=l);if(d instanceof PIXI.Sprite){c=d.batch;var u=c.head;if(u==d)n=0;else for(n=1;u.__next!=d;)n++,u=u.__next}else c=d;if(h==c)return h instanceof PIXI.WebGLBatch?h.render(r,n+1):h instanceof PIXI.TilingSprite?h.visible&&this.renderTilingSprite(h,e):h instanceof PIXI.Strip?h.visible&&this.renderStrip(h,e):h instanceof PIXI.CustomRenderable&&h.visible&&h.renderWebGL(this,e),void 0;s=this.batchs.indexOf(h),a=this.batchs.indexOf(c),h instanceof PIXI.WebGLBatch?h.render(r):h instanceof PIXI.TilingSprite?h.visible&&this.renderTilingSprite(h,e):h instanceof PIXI.Strip?h.visible&&this.renderStrip(h,e):h instanceof PIXI.CustomRenderable&&h.visible&&h.renderWebGL(this,e);for(var I=s+1;a>I;I++)renderable=this.batchs[I],renderable instanceof PIXI.WebGLBatch?this.batchs[I].render():renderable instanceof PIXI.TilingSprite?renderable.visible&&this.renderTilingSprite(renderable,e):renderable instanceof PIXI.Strip?renderable.visible&&this.renderStrip(renderable,e):renderable instanceof PIXI.CustomRenderable&&renderable.visible&&renderable.renderWebGL(this,e);c instanceof PIXI.WebGLBatch?c.render(0,n+1):c instanceof PIXI.TilingSprite?c.visible&&this.renderTilingSprite(c):c instanceof PIXI.Strip?c.visible&&this.renderStrip(c):c instanceof PIXI.CustomRenderable&&c.visible&&c.renderWebGL(this,e)},PIXI.WebGLRenderGroup.prototype.checkVisibility=function(t,e){for(var i=t.children,r=0;i.length>r;r++){var s=i[r];s.worldVisible=s.visible&&e,s.textureChange&&(s.textureChange=!1,s.worldVisible&&(this.removeDisplayObject(s),this.addDisplayObject(s))),s.children.length>0&&this.checkVisibility(s,s.worldVisible)}},PIXI.WebGLRenderGroup.prototype.addDisplayObject=function(t){if(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.__renderGroup=this,t.renderable){var e=this.getPreviousRenderable(t),i=this.getNextRenderable(t);if(t instanceof PIXI.Sprite){var r,s;if(e instanceof PIXI.Sprite){if(r=e.batch,r&&r.texture==t.texture.baseTexture&&r.blendMode==t.blendMode)return r.insertAfter(t,e),void 0}else r=e;if(i)if(i instanceof PIXI.Sprite){if(s=i.batch){if(s.texture==t.texture.baseTexture&&s.blendMode==t.blendMode)return s.insertBefore(t,i),void 0;if(s==r){var n=r.split(i),a=PIXI.WebGLRenderer.getBatch(),o=this.batchs.indexOf(r);return a.init(t),this.batchs.splice(o+1,0,a,n),void 0}}}else s=i;var a=PIXI.WebGLRenderer.getBatch();if(a.init(t),r){var o=this.batchs.indexOf(r);this.batchs.splice(o+1,0,a)}else this.batchs.push(a)}else t instanceof PIXI.TilingSprite?(this.initTilingSprite(t),this.batchs.push(t)):t instanceof PIXI.Strip&&(this.initStrip(t),this.batchs.push(t));this.batchUpdate=!0}},PIXI.WebGLRenderGroup.prototype.addDisplayObjectAndChildren=function(t){this.addDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.addDisplayObjectAndChildren(e[i])},PIXI.WebGLRenderGroup.prototype.removeDisplayObject=function(t){if(t.__renderGroup=null,t.renderable){var e;if(t instanceof PIXI.Sprite){var i=t.batch;if(!i)return;i.remove(t),0==i.size&&(e=i)}else e=t;if(e){var r=this.batchs.indexOf(e);if(-1==r)return;if(0==r||r==this.batchs.length-1)return this.batchs.splice(r,1),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e),void 0;if(this.batchs[r-1]instanceof PIXI.WebGLBatch&&this.batchs[r+1]instanceof PIXI.WebGLBatch&&this.batchs[r-1].texture==this.batchs[r+1].texture&&this.batchs[r-1].blendMode==this.batchs[r+1].blendMode)return this.batchs[r-1].merge(this.batchs[r+1]),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e),PIXI.WebGLRenderer.returnBatch(this.batchs[r+1]),this.batchs.splice(r,2),void 0;this.batchs.splice(r,1),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e)}}},PIXI.WebGLRenderGroup.prototype.removeDisplayObjectAndChildren=function(t){if(t.__renderGroup==this){this.removeDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.removeDisplayObjectAndChildren(e[i])}},PIXI.WebGLRenderGroup.prototype.getNextRenderable=function(t){var e=t;do{if(0==e.children.length){if(!e.parent)return null;for(;e.childIndex==e.parent.children.length-1;)if(e=e.parent,e==this.root){e=null;break}e&&(e=e.parent.children[e.childIndex+1])}else e=e.children[0];if(!e)break}while(!e.renderable||!e.__renderGroup);return e},PIXI.WebGLRenderGroup.prototype.getPreviousRenderable=function(t){var e=t;do{if(0==e.childIndex){if(e=e.parent,!e)return null}else for(e=e.parent.children[e.childIndex-1];0!=e.children.length;)e=e.children[e.children.length-1];if(e==this.root)break}while(!e.renderable||!e.__renderGroup);return e},PIXI.WebGLRenderGroup.prototype.initTilingSprite=function(t){var e=this.gl;t.verticies=new Float32Array([0,0,t.width,0,t.width,t.height,0,t.height]),t.uvs=new Float32Array([0,0,1,0,1,1,0,1]),t.colors=new Float32Array([1,1,1,1]),t.indices=new Uint16Array([0,1,3,2]),t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW),t.texture.baseTexture._glTexture?(e.bindTexture(e.TEXTURE_2D,t.texture.baseTexture._glTexture),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT),t.texture.baseTexture._powerOf2=!0):t.texture.baseTexture._powerOf2=!0},PIXI.WebGLRenderGroup.prototype.renderStrip=function(t,e){var i=this.gl,r=PIXI.shaderProgram,s=PIXI.mat3.toMat4(t.worldTransform);PIXI.mat4.transpose(s),PIXI.mat4.multiply(e,s,s),i.uniformMatrix4fv(r.mvMatrixUniform,!1,s),t.blendMode==PIXI.blendModes.NORMAL?i.blendFunc(i.ONE,i.ONE_MINUS_SRC_ALPHA):i.blendFunc(i.ONE,i.ONE_MINUS_SRC_COLOR),t.dirty?(t.dirty=!1,i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferData(i.ARRAY_BUFFER,t.verticies,i.STATIC_DRAW),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferData(i.ARRAY_BUFFER,t.uvs,i.STATIC_DRAW),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.bufferData(i.ARRAY_BUFFER,t.colors,i.STATIC_DRAW),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer),i.bufferData(i.ELEMENT_ARRAY_BUFFER,t.indices,i.STATIC_DRAW)):(i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.verticies),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer)),i.drawElements(i.TRIANGLE_STRIP,t.indices.length,i.UNSIGNED_SHORT,0),i.uniformMatrix4fv(r.mvMatrixUniform,!1,e)},PIXI.WebGLRenderGroup.prototype.renderTilingSprite=function(t,e){var i=this.gl;PIXI.shaderProgram;var r=t.tilePosition,s=t.tileScale,n=r.x/t.texture.baseTexture.width,a=r.y/t.texture.baseTexture.height,o=t.width/t.texture.baseTexture.width/s.x,h=t.height/t.texture.baseTexture.height/s.y;t.uvs[0]=0-n,t.uvs[1]=0-a,t.uvs[2]=1*o-n,t.uvs[3]=0-a,t.uvs[4]=1*o-n,t.uvs[5]=1*h-a,t.uvs[6]=0-n,t.uvs[7]=1*h-a,i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.uvs),this.renderStrip(t,e)},PIXI.WebGLRenderer.prototype.initStrip=function(t){var e=this.gl;this.shaderProgram,t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW)},PIXI.CanvasRenderer=function(t,e,i,r){this.transparent=r,this.width=t||800,this.height=e||600,this.refresh=!0,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height,this.count=0,this.context=this.view.getContext("2d")},PIXI.CanvasRenderer.constructor=PIXI.CanvasRenderer,PIXI.CanvasRenderer.prototype.render=function(t){PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[],t.updateTransform(),this.view.style.backgroundColor==t.backgroundColorString||this.transparent||(this.view.style.backgroundColor=t.backgroundColorString),this.context.setTransform(1,0,0,1,0,0),this.context.clearRect(0,0,this.width,this.height),this.renderDisplayObject(t),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),PIXI.Texture.frameUpdates.length>0&&(PIXI.Texture.frameUpdates=[])},PIXI.CanvasRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e},PIXI.CanvasRenderer.prototype.renderDisplayObject=function(t){var e=t.worldTransform,i=this.context;if(t.visible){if(t instanceof PIXI.Sprite){var r=t.texture.frame;r&&(i.globalAlpha=t.worldAlpha,i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),i.drawImage(t.texture.baseTexture.source,r.x,r.y,r.width,r.height,t.anchor.x*-r.width,t.anchor.y*-r.height,r.width,r.height))}else t instanceof PIXI.Strip?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderStrip(t)):t instanceof PIXI.TilingSprite?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderTilingSprite(t)):t instanceof PIXI.CustomRenderable&&t.renderCanvas(this);for(var s=0;t.children.length>s;s++)this.renderDisplayObject(t.children[s]);this.context.setTransform(1,0,0,1,0,0)}},PIXI.CanvasRenderer.prototype.renderStripFlat=function(t){var e=this.context,i=t.verticies;t.uvs;var r=i.length/2;this.count++,e.beginPath();for(var s=1;r-2>s;s++){var n=2*s,a=i[n],o=i[n+2],h=i[n+4],u=i[n+1],c=i[n+3],d=i[n+5];e.moveTo(a,u),e.lineTo(o,c),e.lineTo(h,d)}e.fillStyle="#FF0000",e.fill(),e.closePath()},PIXI.CanvasRenderer.prototype.renderTilingSprite=function(t){var e=this.context;t.__tilePattern||(t.__tilePattern=e.createPattern(t.texture.baseTexture.source,"repeat")),e.beginPath();var i=t.tilePosition,r=t.tileScale;e.scale(r.x,r.y),e.translate(i.x,i.y),e.fillStyle=t.__tilePattern,e.fillRect(-i.x,-i.y,t.width/r.x,t.height/r.y),e.scale(1/r.x,1/r.y),e.translate(-i.x,-i.y),e.closePath()},PIXI.CanvasRenderer.prototype.renderStrip=function(t){var e=this.context,i=t.verticies,r=t.uvs,s=i.length/2;this.count++;for(var n=1;s-2>n;n++){var a=2*n,o=i[a],h=i[a+2],u=i[a+4],c=i[a+1],d=i[a+3],l=i[a+5],I=r[a]*t.texture.width,p=r[a+2]*t.texture.width,f=r[a+4]*t.texture.width,x=r[a+1]*t.texture.height,v=r[a+3]*t.texture.height,P=r[a+5]*t.texture.height;e.save(),e.beginPath(),e.moveTo(o,c),e.lineTo(h,d),e.lineTo(u,l),e.closePath(),e.clip();var g=I*v+x*f+p*P-v*f-x*p-I*P,b=o*v+x*u+h*P-v*u-x*h-o*P,X=I*h+o*f+p*u-h*f-o*p-I*u,m=I*v*u+x*h*f+o*p*P-o*v*f-x*p*u-I*h*P,T=c*v+x*l+d*P-v*l-x*d-c*P,y=I*d+c*f+p*l-d*f-c*p-I*l,_=I*v*l+x*d*f+c*p*P-c*v*f-x*p*l-I*d*P;e.transform(b/g,T/g,X/g,y/g,m/g,_/g),e.drawImage(t.texture.baseTexture.source,0,0),e.restore()}},PIXI.Strip=function(t,e,i){PIXI.DisplayObjectContainer.call(this),this.texture=t,this.blendMode=PIXI.blendModes.NORMAL;try{this.uvs=new Float32Array([0,1,1,1,1,0,0,1]),this.verticies=new Float32Array([0,0,0,0,0,0,0,0,0]),this.colors=new Float32Array([1,1,1,1]),this.indices=new Uint16Array([0,1,2,3])}catch(r){this.uvs=[0,1,1,1,1,0,0,1],this.verticies=[0,0,0,0,0,0,0,0,0],this.colors=[1,1,1,1],this.indices=[0,1,2,3]}this.width=e,this.height=i,t.baseTexture.hasLoaded?(this.width=this.texture.frame.width,this.height=this.texture.frame.height,this.updateFrame=!0):(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},PIXI.Strip.constructor=PIXI.Strip,PIXI.Strip.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Strip.prototype.setTexture=function(t){this.texture=t,this.width=t.frame.width,this.height=t.frame.height,this.updateFrame=!0},PIXI.Strip.prototype.onTextureUpdate=function(){this.updateFrame=!0},PIXI.Rope=function(t,e){PIXI.Strip.call(this,t),this.points=e;try{this.verticies=new Float32Array(4*e.length),this.uvs=new Float32Array(4*e.length),this.colors=new Float32Array(2*e.length),this.indices=new Uint16Array(2*e.length)}catch(i){this.verticies=verticies,this.uvs=uvs,this.colors=colors,this.indices=indices}this.refresh()},PIXI.Rope.constructor=PIXI.Rope,PIXI.Rope.prototype=Object.create(PIXI.Strip.prototype),PIXI.Rope.prototype.refresh=function(){var t=this.points;if(!(1>t.length)){var e=this.uvs,i=this.indices,r=this.colors,s=t[0],n=t[0];this.count-=.2,e[0]=0,e[1]=1,e[2]=0,e[3]=1,r[0]=1,r[1]=1,i[0]=0,i[1]=1;for(var a=t.length,o=1;a>o;o++){var n=t[o],h=4*o,u=o/(a-1);o%2?(e[h]=u,e[h+1]=0,e[h+2]=u,e[h+3]=1):(e[h]=u,e[h+1]=0,e[h+2]=u,e[h+3]=1),h=2*o,r[h]=1,r[h+1]=1,h=2*o,i[h]=h,i[h+1]=h+1,s=n}}},PIXI.Rope.prototype.updateTransform=function(){var t=this.points;if(!(1>t.length)){var e,i=this.verticies,r=t[0],s={x:0,y:0},n=t[0];this.count-=.2,i[0]=n.x+s.x,i[1]=n.y+s.y,i[2]=n.x-s.x,i[3]=n.y-s.y;for(var a=t.length,o=1;a>o;o++){var n=t[o],h=4*o;e=t.length-1>o?t[o+1]:n,s.y=-(e.x-r.x),s.x=e.y-r.y;var u=10*(1-o/(a-1));u>1&&(u=1);var c=Math.sqrt(s.x*s.x+s.y*s.y),d=this.texture.height/2;s.x/=c,s.y/=c,s.x*=d,s.y*=d,i[h]=n.x+s.x,i[h+1]=n.y+s.y,i[h+2]=n.x-s.x,i[h+3]=n.y-s.y,r=n}PIXI.DisplayObjectContainer.prototype.updateTransform.call(this)}},PIXI.Rope.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0},PIXI.TilingSprite=function(t,e,i){PIXI.DisplayObjectContainer.call(this),this.texture=t,this.width=e,this.height=i,this.renderable=!0,this.tileScale=new PIXI.Point(1,1),this.tilePosition=new PIXI.Point(0,0),this.blendMode=PIXI.blendModes.NORMAL},PIXI.TilingSprite.constructor=PIXI.TilingSprite,PIXI.TilingSprite.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.TilingSprite.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0},PIXI.TilingSprite.prototype.onTextureUpdate=function(){this.updateFrame=!0},PIXI.CustomRenderable=function(){PIXI.DisplayObject.call(this)},PIXI.CustomRenderable.constructor=PIXI.CustomRenderable,PIXI.CustomRenderable.prototype=Object.create(PIXI.DisplayObject.prototype),PIXI.CustomRenderable.prototype.renderCanvas=function(){},PIXI.CustomRenderable.prototype.initWebGL=function(){},PIXI.CustomRenderable.prototype.renderWebGL=function(){},PIXI.BaseTextureCache={},PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[],PIXI.BaseTexture=function(t){if(PIXI.EventTarget.call(this),this.width=100,this.height=100,this.source=t,t){if(this.source instanceof Image)if(this.source.complete)this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,PIXI.texturesToUpdate.push(this);else{var e=this;this.source.onload=function(){e.hasLoaded=!0,e.width=e.source.width,e.height=e.source.height,PIXI.texturesToUpdate.push(e),e.dispatchEvent({type:"loaded",content:e})}}else this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,PIXI.texturesToUpdate.push(this);this._powerOf2=!1}},PIXI.BaseTexture.constructor=PIXI.BaseTexture,PIXI.BaseTexture.prototype.destroy=function(){this.source instanceof Image&&(this.source.src=null),this.source=null,PIXI.texturesToDestroy.push(this)},PIXI.BaseTexture.fromImage=function(t,e){var i=PIXI.BaseTextureCache[t];if(!i){var r=new Image;e&&(r.crossOrigin=""),r.src=t,i=new PIXI.BaseTexture(r),PIXI.BaseTextureCache[t]=i}return i},PIXI.TextureCache={},PIXI.FrameCache={},PIXI.Texture=function(t,e){if(PIXI.EventTarget.call(this),e||(this.noFrame=!0,e=new PIXI.Rectangle(0,0,1,1)),this.trim=new PIXI.Point,t instanceof PIXI.Texture&&(t=t.baseTexture),this.baseTexture=t,this.frame=e,this.scope=this,t.hasLoaded)this.noFrame&&(e=new PIXI.Rectangle(0,0,t.width,t.height)),this.setFrame(e);else{var i=this;t.addEventListener("loaded",function(){i.onBaseTextureLoaded()})}},PIXI.Texture.constructor=PIXI.Texture,PIXI.Texture.prototype.onBaseTextureLoaded=function(){var t=this.baseTexture;t.removeEventListener("loaded",this.onLoaded),this.noFrame&&(this.frame=new PIXI.Rectangle(0,0,t.width,t.height)),this.noFrame=!1,this.width=this.frame.width,this.height=this.frame.height,this.scope.dispatchEvent({type:"update",content:this})},PIXI.Texture.prototype.destroy=function(t){t&&this.baseTexture.destroy()},PIXI.Texture.prototype.setFrame=function(t){if(this.frame=t,this.width=t.width,this.height=t.height,t.x+t.width>this.baseTexture.width||t.y+t.height>this.baseTexture.height)throw Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);this.updateFrame=!0,PIXI.Texture.frameUpdates.push(this)},PIXI.Texture.fromImage=function(t,e){var i=PIXI.TextureCache[t];return i||(i=new PIXI.Texture(PIXI.BaseTexture.fromImage(t,e)),PIXI.TextureCache[t]=i),i},PIXI.Texture.fromFrame=function(t){var e=PIXI.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache "+this);return e},PIXI.Texture.fromCanvas=function(t){var e=new PIXI.BaseTexture(t);return new PIXI.Texture(e)},PIXI.Texture.addTextureToCache=function(t,e){PIXI.TextureCache[e]=t},PIXI.Texture.removeTextureFromCache=function(t){var e=PIXI.TextureCache[t];return PIXI.TextureCache[t]=null,e},PIXI.Texture.frameUpdates=[],PIXI.RenderTexture=function(t,e){PIXI.EventTarget.call(this),this.width=t||100,this.height=e||100,this.indetityMatrix=PIXI.mat3.create(),this.frame=new PIXI.Rectangle(0,0,this.width,this.height),PIXI.gl?this.initWebGL():this.initCanvas()},PIXI.RenderTexture.constructor=PIXI.RenderTexture,PIXI.RenderTexture.prototype=Object.create(PIXI.Texture.prototype),PIXI.RenderTexture.prototype.initWebGL=function(){var t=PIXI.gl;this.glFramebuffer=t.createFramebuffer(),t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),this.glFramebuffer.width=this.width,this.glFramebuffer.height=this.height,this.baseTexture=new PIXI.BaseTexture,this.baseTexture.width=this.width,this.baseTexture.height=this.height,this.baseTexture._glTexture=t.createTexture(),t.bindTexture(t.TEXTURE_2D,this.baseTexture._glTexture),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,this.width,this.height,0,t.RGBA,t.UNSIGNED_BYTE,null),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),this.baseTexture.isRender=!0,t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,this.baseTexture._glTexture,0),this.projectionMatrix=PIXI.mat4.create(),this.projectionMatrix[5]=2/this.height,this.projectionMatrix[13]=-1,this.projectionMatrix[0]=2/this.width,this.projectionMatrix[12]=-1,this.render=this.renderWebGL},PIXI.RenderTexture.prototype.initCanvas=function(){this.renderer=new PIXI.CanvasRenderer(this.width,this.height,null,0),this.baseTexture=new PIXI.BaseTexture(this.renderer.view),this.frame=new PIXI.Rectangle(0,0,this.width,this.height),this.render=this.renderCanvas},PIXI.RenderTexture.prototype.renderWebGL=function(t,e){var i=PIXI.gl;i.colorMask(!0,!0,!0,!0),i.viewport(0,0,this.width,this.height),i.bindFramebuffer(i.FRAMEBUFFER,this.glFramebuffer),e&&(i.clearColor(0,0,0,0),i.clear(i.COLOR_BUFFER_BIT));var r=t.children;t.worldTransform=PIXI.mat3.create();for(var s=0,n=r.length;n>s;s++)r[s].updateTransform();var a=t.__renderGroup;a?t==a.root?a.render(this.projectionMatrix):a.renderSpecific(t,this.projectionMatrix):(this.renderGroup||(this.renderGroup=new PIXI.WebGLRenderGroup(i)),this.renderGroup.setRenderable(t),this.renderGroup.render(this.projectionMatrix))},PIXI.RenderTexture.prototype.renderCanvas=function(t,e){var i=t.children;t.worldTransform=PIXI.mat3.create();for(var r=0,s=i.length;s>r;r++)i[r].updateTransform();e&&this.renderer.context.clearRect(0,0,this.width,this.height),this.renderer.renderDisplayObject(t),PIXI.texturesToUpdate.push(this.baseTexture)},PIXI.AssetLoader=function(t){PIXI.EventTarget.call(this),this.assetURLs=t,this.crossorigin=!1,this.loadersByType={jpg:PIXI.ImageLoader,jpeg:PIXI.ImageLoader,png:PIXI.ImageLoader,gif:PIXI.ImageLoader,json:PIXI.SpriteSheetLoader,xml:PIXI.BitmapFontLoader,fnt:PIXI.BitmapFontLoader}},PIXI.AssetLoader.constructor=PIXI.AssetLoader,PIXI.AssetLoader.prototype.load=function(){var t=this;this.loadCount=this.assetURLs.length;for(var e=0;this.assetURLs.length>e;e++){var i=this.assetURLs[e],r=i.split(".").pop().toLowerCase(),s=this.loadersByType[r];if(!s)throw Error(r+" is an unsupported file type");var n=new s(i,this.crossorigin);n.addEventListener("loaded",function(){t.onAssetLoaded()}),n.load()}},PIXI.AssetLoader.prototype.onAssetLoaded=function(){this.loadCount--,this.dispatchEvent({type:"onProgress",content:this}),this.onProgress&&this.onProgress(),0==this.loadCount&&(this.dispatchEvent({type:"onComplete",content:this}),this.onComplete&&this.onComplete())},PIXI.SpriteSheetLoader=function(t,e){PIXI.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.frames={},this.crossorigin=e},PIXI.SpriteSheetLoader.constructor=PIXI.SpriteSheetLoader,PIXI.SpriteSheetLoader.prototype.load=function(){this.ajaxRequest=new AjaxRequest;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onJSONLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/json"),this.ajaxRequest.send(null)},PIXI.SpriteSheetLoader.prototype.onJSONLoaded=function(){if(4==this.ajaxRequest.readyState&&(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))){var jsonData=eval("("+this.ajaxRequest.responseText+")"),textureUrl=this.baseUrl+jsonData.meta.image,image=new PIXI.ImageLoader(textureUrl,this.crossorigin);this.texture=image.texture.baseTexture;var scope=this;image.addEventListener("loaded",function(){scope.onLoaded()});var frameData=jsonData.frames;for(var i in frameData){var rect=frameData[i].frame;rect&&(PIXI.TextureCache[i]=new PIXI.Texture(this.texture,{x:rect.x,y:rect.y,width:rect.w,height:rect.h}),frameData[i].trimmed&&(PIXI.TextureCache[i].realSize=frameData[i].spriteSourceSize,PIXI.TextureCache[i].trim.x=0))}image.load()}},PIXI.SpriteSheetLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},PIXI.ImageLoader=function(t,e){PIXI.EventTarget.call(this),this.texture=PIXI.Texture.fromImage(t,e)},PIXI.ImageLoader.constructor=PIXI.ImageLoader,PIXI.ImageLoader.prototype.load=function(){if(this.texture.baseTexture.hasLoaded)this.onLoaded();else{var t=this;this.texture.baseTexture.addEventListener("loaded",function(){t.onLoaded()})}},PIXI.ImageLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},PIXI.BitmapFontLoader=function(t,e){PIXI.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.crossorigin=e},PIXI.BitmapFontLoader.constructor=PIXI.BitmapFontLoader,PIXI.BitmapFontLoader.prototype.load=function(){this.ajaxRequest=new XMLHttpRequest;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onXMLLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/xml"),this.ajaxRequest.send(null)},PIXI.BitmapFontLoader.prototype.onXMLLoaded=function(){if(4==this.ajaxRequest.readyState&&(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))){var t=this.baseUrl+this.ajaxRequest.responseXML.getElementsByTagName("page")[0].attributes.getNamedItem("file").nodeValue,e=new PIXI.ImageLoader(t,this.crossorigin);this.texture=e.texture.baseTexture;var i={},r=this.ajaxRequest.responseXML.getElementsByTagName("info")[0],s=this.ajaxRequest.responseXML.getElementsByTagName("common")[0];i.font=r.attributes.getNamedItem("face").nodeValue,i.size=parseInt(r.attributes.getNamedItem("size").nodeValue,10),i.lineHeight=parseInt(s.attributes.getNamedItem("lineHeight").nodeValue,10),i.chars={};for(var n=this.ajaxRequest.responseXML.getElementsByTagName("char"),a=0;n.length>a;a++){var o=parseInt(n[a].attributes.getNamedItem("id").nodeValue,10),h={x:parseInt(n[a].attributes.getNamedItem("x").nodeValue,10),y:parseInt(n[a].attributes.getNamedItem("y").nodeValue,10),width:parseInt(n[a].attributes.getNamedItem("width").nodeValue,10),height:parseInt(n[a].attributes.getNamedItem("height").nodeValue,10)};PIXI.TextureCache[o]=new PIXI.Texture(this.texture,h),i.chars[o]={xOffset:parseInt(n[a].attributes.getNamedItem("xoffset").nodeValue,10),yOffset:parseInt(n[a].attributes.getNamedItem("yoffset").nodeValue,10),xAdvance:parseInt(n[a].attributes.getNamedItem("xadvance").nodeValue,10),kerning:{}}}var u=this.ajaxRequest.responseXML.getElementsByTagName("kerning");for(a=0;u.length>a;a++){var c=parseInt(u[a].attributes.getNamedItem("first").nodeValue,10),d=parseInt(u[a].attributes.getNamedItem("second").nodeValue,10),l=parseInt(u[a].attributes.getNamedItem("amount").nodeValue,10);i.chars[d].kerning[c]=l}PIXI.BitmapText.fonts[i.font]=i;var I=this;e.addEventListener("loaded",function(){I.onLoaded()}),e.load()}},PIXI.BitmapFontLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=PIXI),exports.PIXI=PIXI):root.PIXI=PIXI}).call(this); \ No newline at end of file +(function(){function HEXtoRGB(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}function determineMatrixArrayType(){return PIXI.Matrix="undefined"!=typeof Float32Array?Float32Array:Array,PIXI.Matrix}var root=this,PIXI=PIXI||{};PIXI.Point=function(t,e){this.x=t||0,this.y=e||0},PIXI.Point.prototype.clone=function(){return new PIXI.Point(this.x,this.y)},PIXI.Point.constructor=PIXI.Point,PIXI.Rectangle=function(t,e,i,r){this.x=t||0,this.y=e||0,this.width=i||0,this.height=r||0},PIXI.Rectangle.prototype.clone=function(){return new PIXI.Rectangle(this.x,this.y,this.width,this.height)},PIXI.Rectangle.constructor=PIXI.Rectangle,PIXI.DisplayObject=function(){this.position=new PIXI.Point,this.scale=new PIXI.Point(1,1),this.pivot=new PIXI.Point(0,0),this.rotation=0,this.alpha=1,this.visible=!0,this.worldVisible=!1,this.parent=null,this.stage=null,this.hitArea=null,this.worldAlpha=1,this.color=[],this.worldTransform=PIXI.mat3.create(),this.localTransform=PIXI.mat3.create(),this.dynamic=!0,this._sr=0,this._cr=1,this.childIndex=0,this.renderable=!1,this.interactive=!1,this.buttonMode=!1},PIXI.DisplayObject.constructor=PIXI.DisplayObject,PIXI.DisplayObject.prototype.setInteractive=function(t){this.interactive=t,this.stage&&(this.stage.dirty=!0)},PIXI.DisplayObject.prototype.updateTransform=function(){this.rotation!=this.rotationCache&&(this.rotationCache=this.rotation,this._sr=Math.sin(this.rotation),this._cr=Math.cos(this.rotation));var t=this.localTransform,e=this.parent.worldTransform,i=this.worldTransform;t[0]=this._cr*this.scale.x,t[1]=-this._sr*this.scale.y,t[3]=this._sr*this.scale.x,t[4]=this._cr*this.scale.y;var r=this.pivot.x,s=this.pivot.y;t[2]=this.position.x-t[0]*r-s*t[1],t[5]=this.position.y-t[4]*s-r*t[3];var n=t[0],a=t[1],o=t[2],h=t[3],u=t[4],d=t[5],c=e[0],l=e[1],I=e[2],p=e[3],f=e[4],x=e[5];i[0]=c*n+l*h,i[1]=c*a+l*u,i[2]=c*o+l*d+I,i[3]=p*n+f*h,i[4]=p*a+f*u,i[5]=p*o+f*d+x,this.worldAlpha=this.alpha*this.parent.worldAlpha},PIXI.DisplayObjectContainer=function(){PIXI.DisplayObject.call(this),this.children=[],this.renderable=!1},PIXI.DisplayObjectContainer.constructor=PIXI.DisplayObjectContainer,PIXI.DisplayObjectContainer.prototype=Object.create(PIXI.DisplayObject.prototype),PIXI.DisplayObjectContainer.prototype.addChild=function(t){void 0!=t.parent&&t.parent.removeChild(t),t.parent=this,t.childIndex=this.children.length,this.children.push(t),this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},PIXI.DisplayObjectContainer.prototype.addChildAt=function(t,e){if(!(e>=0&&this.children.length>=e))throw Error(t+" The index "+e+" supplied is out of bounds "+this.children.length);void 0!=t.parent&&t.parent.removeChild(t),e==this.children.length?this.children.push(t):this.children.splice(e,0,t),t.parent=this,t.childIndex=e;for(var i=this.children.length,r=e;i>r;r++)this.children[r].childIndex=r;this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},PIXI.DisplayObjectContainer.prototype.swapChildren=function(t,e){var i=this.children.indexOf(t),r=this.children.indexOf(e);if(-1===i||-1===r)throw Error(t+" Both the supplied DisplayObjects must be a child of the caller "+this);this.stage&&(this.stage.__removeChild(t),this.stage.__removeChild(e),this.stage.__addChild(t),this.stage.__addChild(e)),t.childIndex=r,e.childIndex=i,this.children[i]=e,this.children[r]=t},PIXI.DisplayObjectContainer.prototype.getChildAt=function(t){if(t>=0&&this.children.length>t)return this.children[t];throw Error(child+" Both the supplied DisplayObjects must be a child of the caller "+this)},PIXI.DisplayObjectContainer.prototype.removeChild=function(t){var e=this.children.indexOf(t);if(-1===e)throw Error(t+" The supplied DisplayObject must be a child of the caller "+this);this.stage&&this.stage.__removeChild(t),t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.parent=void 0,this.children.splice(e,1);for(var i=e,r=this.children.length;r>i;i++)this.children[i].childIndex-=1},PIXI.DisplayObjectContainer.prototype.updateTransform=function(){if(this.visible){PIXI.DisplayObject.prototype.updateTransform.call(this);for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform()}},PIXI.blendModes={},PIXI.blendModes.NORMAL=0,PIXI.blendModes.SCREEN=1,PIXI.Sprite=function(t){PIXI.DisplayObjectContainer.call(this),this.anchor=new PIXI.Point,this.texture=t,this.blendMode=PIXI.blendModes.NORMAL,this._width=0,this._height=0,t.baseTexture.hasLoaded?this.updateFrame=!0:(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},PIXI.Sprite.constructor=PIXI.Sprite,PIXI.Sprite.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),Object.defineProperty(PIXI.Sprite.prototype,"width",{get:function(){return this.scale.x*this.texture.frame.width},set:function(t){this.scale.x=t/this.texture.frame.width,this._width=t}}),Object.defineProperty(PIXI.Sprite.prototype,"height",{get:function(){return this.scale.y*this.texture.frame.height},set:function(t){this.scale.y=t/this.texture.frame.height,this._height=t}}),PIXI.Sprite.prototype.setTexture=function(t){this.texture.baseTexture!=t.baseTexture&&(this.textureChange=!0),this.texture=t,this.updateFrame=!0},PIXI.Sprite.prototype.onTextureUpdate=function(){this._width&&(this.scale.x=this._width/this.texture.frame.width),this._height&&(this.scale.y=this._height/this.texture.frame.height),this.updateFrame=!0},PIXI.Sprite.fromFrame=function(t){var e=PIXI.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache"+this);return new PIXI.Sprite(e)},PIXI.Sprite.fromImage=function(t){var e=PIXI.Texture.fromImage(t);return new PIXI.Sprite(e)},PIXI.MovieClip=function(t){PIXI.Sprite.call(this,t[0]),this.textures=t,this.currentFrame=0,this.animationSpeed=1,this.loop=!0,this.onComplete=null,this.playing},PIXI.MovieClip.constructor=PIXI.MovieClip,PIXI.MovieClip.prototype=Object.create(PIXI.Sprite.prototype),PIXI.MovieClip.prototype.stop=function(){this.playing=!1},PIXI.MovieClip.prototype.play=function(){this.playing=!0},PIXI.MovieClip.prototype.gotoAndStop=function(t){this.playing=!1,this.currentFrame=t;var e=0|this.currentFrame+.5;this.setTexture(this.textures[e%this.textures.length])},PIXI.MovieClip.prototype.gotoAndPlay=function(t){this.currentFrame=t,this.playing=!0},PIXI.MovieClip.prototype.updateTransform=function(){if(PIXI.Sprite.prototype.updateTransform.call(this),this.playing){this.currentFrame+=this.animationSpeed;var t=0|this.currentFrame+.5;this.loop||this.textures.length>t?this.setTexture(this.textures[t%this.textures.length]):t>=this.textures.length&&(this.gotoAndStop(this.textures.length-1),this.onComplete&&this.onComplete())}},PIXI.Text=function(t,e){this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"),PIXI.Sprite.call(this,PIXI.Texture.fromCanvas(this.canvas)),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},PIXI.Text.constructor=PIXI.Text,PIXI.Text.prototype=Object.create(PIXI.Sprite.prototype),PIXI.Text.prototype.setStyle=function(t){t=t||{},t.font=t.font||"bold 20pt Arial",t.fill=t.fill||"black",t.align=t.align||"left",t.strokeThickness=t.strokeThickness||0,this.style=t,this.dirty=!0},PIXI.Sprite.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},PIXI.Text.prototype.updateText=function(){this.context.font=this.style.font;for(var t=this.text.split(/(?:\r\n|\r|\n)/),e=[],i=0,r=0;t.length>r;r++){var s=this.context.measureText(t[r]).width;e[r]=s,i=Math.max(i,s)}this.canvas.width=i+this.style.strokeThickness;var n=this.determineFontHeight("font: "+this.style.font+";")+this.style.strokeThickness;for(this.canvas.height=n*t.length,this.context.fillStyle=this.style.fill,this.context.font=this.style.font,this.context.strokeStyle=this.style.stroke,this.context.lineWidth=this.style.strokeThickness,this.context.textBaseline="top",r=0;t.length>r;r++){var a=new PIXI.Point(this.style.strokeThickness/2,this.style.strokeThickness/2+r*n);"right"==this.style.align?a.x+=i-e[r]:"center"==this.style.align&&(a.x+=(i-e[r])/2),this.style.stroke&&this.style.strokeThickness&&this.context.strokeText(t[r],a.x,a.y),this.style.fill&&this.context.fillText(t[r],a.x,a.y)}this.updateTexture()},PIXI.Text.prototype.updateTexture=function(){this.texture.baseTexture.width=this.canvas.width,this.texture.baseTexture.height=this.canvas.height,this.texture.frame.width=this.canvas.width,this.texture.frame.height=this.canvas.height,this._width=this.canvas.width,this._height=this.canvas.height,PIXI.texturesToUpdate.push(this.texture.baseTexture)},PIXI.Text.prototype.updateTransform=function(){this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype.updateTransform.call(this)},PIXI.Text.prototype.determineFontHeight=function(t){var e=PIXI.Text.heightCache[t];if(!e){var i=document.getElementsByTagName("body")[0],r=document.createElement("div"),s=document.createTextNode("M");r.appendChild(s),r.setAttribute("style",t),i.appendChild(r),e=r.offsetHeight,PIXI.Text.heightCache[t]=e,i.removeChild(r)}return e},PIXI.Text.prototype.destroy=function(t){t&&this.texture.destroy()},PIXI.Text.heightCache={},PIXI.BitmapText=function(t,e){PIXI.DisplayObjectContainer.call(this),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},PIXI.BitmapText.constructor=PIXI.BitmapText,PIXI.BitmapText.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.BitmapText.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},PIXI.BitmapText.prototype.setStyle=function(t){t=t||{},t.align=t.align||"left",this.style=t;var e=t.font.split(" ");this.fontName=e[e.length-1],this.fontSize=e.length>=2?parseInt(e[e.length-2],10):PIXI.BitmapText.fonts[this.fontName].size,this.dirty=!0},PIXI.BitmapText.prototype.updateText=function(){for(var t=PIXI.BitmapText.fonts[this.fontName],e=new PIXI.Point,i=null,r=[],s=0,n=[],a=0,o=this.fontSize/t.size,h=0;this.text.length>h;h++){var u=this.text.charCodeAt(h);if(/(?:\r\n|\r|\n)/.test(this.text.charAt(h)))n.push(e.x),s=Math.max(s,e.x),a++,e.x=0,e.y+=t.lineHeight,i=null;else{var d=t.chars[u];d&&(i&&d[i]&&(e.x+=d.kerning[i]),r.push({line:a,charCode:u,position:new PIXI.Point(e.x+d.xOffset,e.y+d.yOffset)}),e.x+=d.xAdvance,i=u)}}n.push(e.x),s=Math.max(s,e.x);var c=[];for(h=0;a>=h;h++){var l=0;"right"==this.style.align?l=s-n[h]:"center"==this.style.align&&(l=(s-n[h])/2),c.push(l)}for(h=0;r.length>h;h++){var I=PIXI.Sprite.fromFrame(r[h].charCode);I.position.x=(r[h].position.x+c[r[h].line])*o,I.position.y=r[h].position.y*o,I.scale.x=I.scale.y=o,this.addChild(I)}this.width=e.x*o,this.height=(e.y+t.lineHeight)*o},PIXI.BitmapText.prototype.updateTransform=function(){if(this.dirty){for(;this.children.length>0;)this.removeChild(this.getChildAt(0));this.updateText(),this.dirty=!1}PIXI.DisplayObjectContainer.prototype.updateTransform.call(this)},PIXI.BitmapText.fonts={},PIXI.InteractionManager=function(t){this.stage=t,this.tempPoint=new PIXI.Point,this.mouseoverEnabled=!0,this.mouse=new PIXI.InteractionData,this.touchs={},this.pool=[],this.interactiveItems=[],this.last=0},PIXI.InteractionManager.constructor=PIXI.InteractionManager,PIXI.InteractionManager.prototype.collectInteractiveSprite=function(t,e){for(var i=t.children,r=i.length,s=r-1;s>=0;s--){var n=i[s];n.interactive?(e.interactiveChildren=!0,this.interactiveItems.push(n),n.children.length>0&&this.collectInteractiveSprite(n,n)):(n.__iParent=null,n.children.length>0&&this.collectInteractiveSprite(n,e))}},PIXI.InteractionManager.prototype.setTarget=function(t){window.navigator.msPointerEnabled&&(t.view.style["-ms-content-zooming"]="none",t.view.style["-ms-touch-action"]="none"),this.target=t,t.view.addEventListener("mousemove",this.onMouseMove.bind(this),!0),t.view.addEventListener("mousedown",this.onMouseDown.bind(this),!0),document.body.addEventListener("mouseup",this.onMouseUp.bind(this),!0),t.view.addEventListener("mouseout",this.onMouseUp.bind(this),!0),t.view.addEventListener("touchstart",this.onTouchStart.bind(this),!0),t.view.addEventListener("touchend",this.onTouchEnd.bind(this),!0),t.view.addEventListener("touchmove",this.onTouchMove.bind(this),!0)},PIXI.InteractionManager.prototype.update=function(){if(this.target){var t=Date.now(),e=t-this.last;if(e=30*e/1e3,!(1>e)){if(this.last=t,this.dirty){this.dirty=!1,this.interactiveItems.length;for(var i=0;this.interactiveItems.length>i;i++)this.interactiveItems[i].interactiveChildren=!1;this.interactiveItems=[],this.stage.interactive&&this.interactiveItems.push(this.stage),this.collectInteractiveSprite(this.stage,this.stage)}var r=this.interactiveItems.length;this.target.view.style.cursor="default";for(var i=0;r>i;i++){var s=this.interactiveItems[i];s.visible&&(s.mouseover||s.mouseout||s.buttonMode)&&(s.__hit=this.hitTest(s,this.mouse),s.__hit?(s.buttonMode&&(this.target.view.style.cursor="pointer"),s.__isOver||(s.mouseover&&s.mouseover(this.mouse),s.__isOver=!0)):s.__isOver&&(s.mouseout&&s.mouseout(this.mouse),s.__isOver=!1))}}}},PIXI.InteractionManager.prototype.onMouseMove=function(t){t.preventDefault();var e=this.target.view.getBoundingClientRect();this.mouse.global.x=(t.clientX-e.left)*(this.target.width/e.width),this.mouse.global.y=(t.clientY-e.top)*(this.target.height/e.height);var i=this.interactiveItems.length;this.mouse.global;for(var r=0;i>r;r++){var s=this.interactiveItems[r];s.mousemove&&s.mousemove(this.mouse)}},PIXI.InteractionManager.prototype.onMouseDown=function(t){t.preventDefault();var e=this.interactiveItems.length;this.mouse.global,this.stage;for(var i=0;e>i;i++){var r=this.interactiveItems[i];if((r.mousedown||r.click)&&(r.__mouseIsDown=!0,r.__hit=this.hitTest(r,this.mouse),r.__hit&&(r.mousedown&&r.mousedown(this.mouse),r.__isDown=!0,!r.interactiveChildren)))break}},PIXI.InteractionManager.prototype.onMouseUp=function(t){t.preventDefault(),this.mouse.global;for(var e=this.interactiveItems.length,i=!1,r=0;e>r;r++){var s=this.interactiveItems[r];(s.mouseup||s.mouseupoutside||s.click)&&(s.__hit=this.hitTest(s,this.mouse),s.__hit&&!i?(s.mouseup&&s.mouseup(this.mouse),s.__isDown&&s.click&&s.click(this.mouse),s.interactiveChildren||(i=!0)):s.__isDown&&s.mouseupoutside&&s.mouseupoutside(this.mouse),s.__isDown=!1)}},PIXI.InteractionManager.prototype.hitTest=function(t,e){var i=e.global;if(!t.visible)return!1;if(t instanceof PIXI.Sprite){var r=t.worldTransform,s=r[0],n=r[1],a=r[2],o=r[3],h=r[4],u=r[5],d=1/(s*h+n*-o),c=h*d*i.x+-n*d*i.y+(u*n-a*h)*d,l=s*d*i.y+-o*d*i.x+(-u*s+a*o)*d,I=t.texture.frame.width,p=t.texture.frame.height,f=-I*t.anchor.x;if(c>f&&f+I>c){var x=-p*t.anchor.y;if(l>x&&x+p>l)return e.target=t,!0}}else if(t.hitArea){var r=t.worldTransform,v=t.hitArea,s=r[0],n=r[1],a=r[2],o=r[3],h=r[4],u=r[5],d=1/(s*h+n*-o),c=h*d*i.x+-n*d*i.y+(u*n-a*h)*d,l=s*d*i.y+-o*d*i.x+(-u*s+a*o)*d,f=v.x;if(c>f&&f+v.width>c){var x=v.y;if(l>x&&x+v.height>l)return!0}}for(var P=t.children.length,g=0;P>g;g++){var b=t.children[g],X=this.hitTest(b,e);if(X)return!0}return!1},PIXI.InteractionManager.prototype.onTouchMove=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.touchs[s.identifier];n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height)}for(var a=this.interactiveItems.length,r=0;a>r;r++){var o=this.interactiveItems[r];o.touchmove&&o.touchmove(n)}},PIXI.InteractionManager.prototype.onTouchStart=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.pool.pop();n||(n=new PIXI.InteractionData),this.touchs[s.identifier]=n,n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height);for(var a=this.interactiveItems.length,o=0;a>o;o++){var h=this.interactiveItems[o];if((h.touchstart||h.tap)&&(h.__hit=this.hitTest(h,n),h.__hit&&(h.touchstart&&h.touchstart(n),h.__isDown=!0,h.__touchData=n,!h.interactiveChildren)))break}}},PIXI.InteractionManager.prototype.onTouchEnd=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.touchs[s.identifier],a=!1;n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var u=this.interactiveItems[h],d=u.__touchData;u.__hit=this.hitTest(u,n),d==n&&((u.touchend||u.tap)&&(u.__hit&&!a?(u.touchend&&u.touchend(n),u.__isDown&&u.tap&&u.tap(n),u.interactiveChildren||(a=!0)):u.__isDown&&u.touchendoutside&&u.touchendoutside(n),u.__isDown=!1),u.__touchData=null)}this.pool.push(n),this.touchs[s.identifier]=null}},PIXI.InteractionData=function(){this.global=new PIXI.Point,this.local=new PIXI.Point,this.target},PIXI.InteractionData.prototype.getLocalPosition=function(t){var e=t.worldTransform,i=this.global,r=e[0],s=e[1],n=e[2],a=e[3],o=e[4],h=e[5],u=1/(r*o+s*-a);return new PIXI.Point(o*u*i.x+-s*u*i.y+(h*s-n*o)*u,r*u*i.y+-a*u*i.x+(-h*r+n*a)*u)},PIXI.InteractionData.constructor=PIXI.InteractionData,PIXI.Stage=function(t,e){PIXI.DisplayObjectContainer.call(this),this.worldTransform=PIXI.mat3.create(),this.__childrenAdded=[],this.__childrenRemoved=[],this.childIndex=0,this.stage=this,this.stage.hitArea=new PIXI.Rectangle(0,0,1e5,1e5),this.interactive=!!e,this.interactionManager=new PIXI.InteractionManager(this),this.setBackgroundColor(t),this.worldVisible=!0},PIXI.Stage.constructor=PIXI.Stage,PIXI.Stage.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Stage.prototype.updateTransform=function(){this.worldAlpha=1;for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform();this.dirty&&(this.dirty=!1,this.interactionManager.dirty=!0),this.interactive&&this.interactionManager.update()},PIXI.Stage.prototype.setBackgroundColor=function(t){this.backgroundColor=t||0,this.backgroundColorSplit=HEXtoRGB(this.backgroundColor),this.backgroundColorString="#"+this.backgroundColor.toString(16)},PIXI.Stage.prototype.getMousePosition=function(){return this.interactionManager.mouse.global},PIXI.Stage.prototype.__addChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=this,t.children)for(var e=0;t.children.length>e;e++)this.__addChild(t.children[e])},PIXI.Stage.prototype.__removeChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=void 0,t.children)for(var e=0,i=t.children.length;i>e;e++)this.__removeChild(t.children[e])},window.requestAnimFrame=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(t){window.setTimeout(t,1e3/60)}}(),"function"!=typeof Function.prototype.bind&&(Function.prototype.bind=function(){var t=Array.prototype.slice;return function(e){function i(){var n=s.concat(t.call(arguments));r.apply(this instanceof i?this:e,n)}var r=this,s=t.call(arguments,1);if("function"!=typeof r)throw new TypeError;return i.prototype=function n(t){return t&&(n.prototype=t),this instanceof n?void 0:new n}(r.prototype),i}}());var AjaxRequest=function(){var t=["Msxml2.XMLHTTP","Microsoft.XMLHTTP"];if(!window.ActiveXObject)return window.XMLHttpRequest?new XMLHttpRequest:!1;for(var e=0;t.length>e;e++)try{return new ActiveXObject(t[e])}catch(i){}};PIXI.EventTarget=function(){var t={};this.addEventListener=this.on=function(e,i){void 0===t[e]&&(t[e]=[]),-1===t[e].indexOf(i)&&t[e].push(i)},this.dispatchEvent=this.emit=function(e){for(var i in t[e.type])t[e.type][i](e)},this.removeEventListener=this.off=function(e,i){var r=t[e].indexOf(i);-1!==r&&t[e].splice(r,1)}},determineMatrixArrayType(),PIXI.mat3={},PIXI.mat3.create=function(){var t=new PIXI.Matrix(9);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},PIXI.mat4={},PIXI.mat4.create=function(){var t=new PIXI.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},PIXI.mat3.multiply=function(t,e,i){i||(i=t);var r=t[0],s=t[1],n=t[2],a=t[3],o=t[4],h=t[5],u=t[6],d=t[7],c=t[8],l=e[0],I=e[1],p=e[2],f=e[3],x=e[4],v=e[5],P=e[6],g=e[7],b=e[8];return i[0]=l*r+I*a+p*u,i[1]=l*s+I*o+p*d,i[2]=l*n+I*h+p*c,i[3]=f*r+x*a+v*u,i[4]=f*s+x*o+v*d,i[5]=f*n+x*h+v*c,i[6]=P*r+g*a+b*u,i[7]=P*s+g*o+b*d,i[8]=P*n+g*h+b*c,i},PIXI.mat3.toMat4=function(t,e){return e||(e=PIXI.mat4.create()),e[15]=1,e[14]=0,e[13]=0,e[12]=0,e[11]=0,e[10]=t[8],e[9]=t[7],e[8]=t[6],e[7]=0,e[6]=t[5],e[5]=t[4],e[4]=t[3],e[3]=0,e[2]=t[2],e[1]=t[1],e[0]=t[0],e},PIXI.mat4.create=function(){var t=new PIXI.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},PIXI.mat4.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],s=t[3],n=t[6],a=t[7],o=t[11];return t[1]=t[4],t[2]=t[8],t[3]=t[12],t[4]=i,t[6]=t[9],t[7]=t[13],t[8]=r,t[9]=n,t[11]=t[14],t[12]=s,t[13]=a,t[14]=o,t}return e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=t[1],e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=t[2],e[9]=t[6],e[10]=t[10],e[11]=t[14],e[12]=t[3],e[13]=t[7],e[14]=t[11],e[15]=t[15],e},PIXI.mat4.multiply=function(t,e,i){i||(i=t);var r=t[0],s=t[1],n=t[2],a=t[3],o=t[4],h=t[5],u=t[6],d=t[7],c=t[8],l=t[9],I=t[10],p=t[11],f=t[12],x=t[13],v=t[14],P=t[15],g=e[0],b=e[1],X=e[2],m=e[3];return i[0]=g*r+b*o+X*c+m*f,i[1]=g*s+b*h+X*l+m*x,i[2]=g*n+b*u+X*I+m*v,i[3]=g*a+b*d+X*p+m*P,g=e[4],b=e[5],X=e[6],m=e[7],i[4]=g*r+b*o+X*c+m*f,i[5]=g*s+b*h+X*l+m*x,i[6]=g*n+b*u+X*I+m*v,i[7]=g*a+b*d+X*p+m*P,g=e[8],b=e[9],X=e[10],m=e[11],i[8]=g*r+b*o+X*c+m*f,i[9]=g*s+b*h+X*l+m*x,i[10]=g*n+b*u+X*I+m*v,i[11]=g*a+b*d+X*p+m*P,g=e[12],b=e[13],X=e[14],m=e[15],i[12]=g*r+b*o+X*c+m*f,i[13]=g*s+b*h+X*l+m*x,i[14]=g*n+b*u+X*I+m*v,i[15]=g*a+b*d+X*p+m*P,i},PIXI.autoDetectRenderer=function(t,e,i,r){t||(t=800),e||(e=600);var s=function(){try{return!!window.WebGLRenderingContext&&!!document.createElement("canvas").getContext("experimental-webgl")}catch(t){return!1}}();return s?new PIXI.WebGLRenderer(t,e,i,r):new PIXI.CanvasRenderer(t,e,i,r)},PIXI.shaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * vColor;","}"],PIXI.shaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform mat4 uMVMatrix;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","gl_Position = uMVMatrix * vec4(aVertexPosition, 1.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],PIXI.CompileVertexShader=function(t,e){return PIXI._CompileShader(t,e,t.VERTEX_SHADER)},PIXI.CompileFragmentShader=function(t,e){return PIXI._CompileShader(t,e,t.FRAGMENT_SHADER)},PIXI._CompileShader=function(t,e,i){var r=e.join("\n"),s=t.createShader(i);return t.shaderSource(s,r),t.compileShader(s),t.getShaderParameter(s,t.COMPILE_STATUS)?s:(alert(t.getShaderInfoLog(s)),null)},PIXI._defaultFrame=new PIXI.Rectangle(0,0,1,1),PIXI.gl,PIXI.WebGLRenderer=function(t,e,i,r){this.transparent=!!r,this.width=t||800,this.height=e||600,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height;var s=this;this.view.addEventListener("webglcontextlost",function(t){s.handleContextLost(t)},!1),this.view.addEventListener("webglcontextrestored",function(t){s.handleContextRestored(t)},!1),this.batchs=[];try{PIXI.gl=this.gl=this.view.getContext("experimental-webgl",{alpha:this.transparent,antialias:!1,premultipliedAlpha:!0})}catch(n){throw Error(" This browser does not support webGL. Try using the canvas renderer"+this)}this.initShaders();var a=this.gl;PIXI.WebGLRenderer.gl=a,this.batch=new PIXI.WebGLBatch(a),a.disable(a.DEPTH_TEST),a.disable(a.CULL_FACE),a.enable(a.BLEND),a.colorMask(!0,!0,!0,this.transparent),this.projectionMatrix=PIXI.mat4.create(),this.resize(this.width,this.height),this.contextLost=!1,this.stageRenderGroup=new PIXI.WebGLRenderGroup(this.gl)},PIXI.WebGLRenderer.constructor=PIXI.WebGLRenderer,PIXI.WebGLRenderer.getBatch=function(){return 0==PIXI._batchs.length?new PIXI.WebGLBatch(PIXI.WebGLRenderer.gl):PIXI._batchs.pop()},PIXI.WebGLRenderer.returnBatch=function(t){t.clean(),PIXI._batchs.push(t)},PIXI.WebGLRenderer.prototype.initShaders=function(){var t=this.gl,e=PIXI.CompileFragmentShader(t,PIXI.shaderFragmentSrc),i=PIXI.CompileVertexShader(t,PIXI.shaderVertexSrc);PIXI.shaderProgram=t.createProgram();var r=PIXI.shaderProgram;t.attachShader(r,i),t.attachShader(r,e),t.linkProgram(r),t.getProgramParameter(r,t.LINK_STATUS)||alert("Could not initialise shaders"),t.useProgram(r),r.vertexPositionAttribute=t.getAttribLocation(r,"aVertexPosition"),t.enableVertexAttribArray(r.vertexPositionAttribute),r.textureCoordAttribute=t.getAttribLocation(r,"aTextureCoord"),t.enableVertexAttribArray(r.textureCoordAttribute),r.colorAttribute=t.getAttribLocation(r,"aColor"),t.enableVertexAttribArray(r.colorAttribute),r.mvMatrixUniform=t.getUniformLocation(r,"uMVMatrix"),r.samplerUniform=t.getUniformLocation(r,"uSampler")},PIXI.WebGLRenderer.prototype.render=function(t){if(!this.contextLost){this.__stage!==t&&(this.__stage=t,this.stageRenderGroup.setRenderable(t)),PIXI.WebGLRenderer.updateTextures(),t.updateTransform();var e=this.gl;if(e.colorMask(!0,!0,!0,this.transparent),e.viewport(0,0,this.width,this.height),e.bindFramebuffer(e.FRAMEBUFFER,null),e.clearColor(t.backgroundColorSplit[0],t.backgroundColorSplit[1],t.backgroundColorSplit[2],this.transparent),e.clear(e.COLOR_BUFFER_BIT),this.stageRenderGroup.backgroundColor=t.backgroundColorSplit,this.stageRenderGroup.render(this.projectionMatrix),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),PIXI.Texture.frameUpdates.length>0){for(var i=0;PIXI.Texture.frameUpdates.length>i;i++)PIXI.Texture.frameUpdates[i].updateFrame=!1;PIXI.Texture.frameUpdates=[]}}},PIXI.WebGLRenderer.updateTextures=function(){for(var t=0;PIXI.texturesToUpdate.length>t;t++)this.updateTexture(PIXI.texturesToUpdate[t]);for(var t=0;PIXI.texturesToDestroy.length>t;t++)this.destroyTexture(PIXI.texturesToDestroy[t]);PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[]},PIXI.WebGLRenderer.updateTexture=function(t){var e=PIXI.gl;t._glTexture||(t._glTexture=e.createTexture()),t.hasLoaded&&(e.bindTexture(e.TEXTURE_2D,t._glTexture),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t.source),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),t._powerOf2?(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT)):(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)),e.bindTexture(e.TEXTURE_2D,null))},PIXI.WebGLRenderer.prototype.destroyTexture=function(t){var e=this.gl;t._glTexture&&(t._glTexture=e.createTexture(),e.deleteTexture(e.TEXTURE_2D,t._glTexture))},PIXI.WebGLRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e,this.gl.viewport(0,0,this.width,this.height);var i=this.projectionMatrix;i[0]=2/this.width,i[5]=-2/this.height,i[12]=-1,i[13]=1},PIXI.WebGLRenderer.prototype.handleContextLost=function(t){t.preventDefault(),this.contextLost=!0},PIXI.WebGLRenderer.prototype.handleContextRestored=function(){this.gl=this.view.getContext("experimental-webgl",{alpha:!0}),this.initShaders();for(var t=0;PIXI.TextureCache.length>t;t++)this.updateTexture(PIXI.TextureCache[t]);for(var t=0;this.batchs.length>t;t++)this.batchs[t].restoreLostContext(this.gl),this.batchs[t].dirty=!0;PIXI._restoreBatchs(this.gl),this.contextLost=!1},PIXI._batchs=[],PIXI._getBatch=function(t){return 0==PIXI._batchs.length?new PIXI.WebGLBatch(t):PIXI._batchs.pop()},PIXI._returnBatch=function(t){t.clean(),PIXI._batchs.push(t)},PIXI._restoreBatchs=function(t){for(var e=0;PIXI._batchs.length>e;e++)PIXI._batchs[e].restoreLostContext(t)},PIXI.WebGLBatch=function(t){this.gl=t,this.size=0,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer(),this.blendMode=PIXI.blendModes.NORMAL,this.dynamicSize=1},PIXI.WebGLBatch.constructor=PIXI.WebGLBatch,PIXI.WebGLBatch.prototype.clean=function(){this.verticies=[],this.uvs=[],this.indices=[],this.colors=[],this.dynamicSize=1,this.texture=null,this.last=null,this.size=0,this.head,this.tail},PIXI.WebGLBatch.prototype.restoreLostContext=function(t){this.gl=t,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer()},PIXI.WebGLBatch.prototype.init=function(t){t.batch=this,this.dirty=!0,this.blendMode=t.blendMode,this.texture=t.texture.baseTexture,this.head=t,this.tail=t,this.size=1,this.growBatch()},PIXI.WebGLBatch.prototype.insertBefore=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__prev;e.__prev=t,t.__next=e,i?(t.__prev=i,i.__next=t):this.head=t},PIXI.WebGLBatch.prototype.insertAfter=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__next;e.__next=t,t.__prev=e,i?(t.__next=i,i.__prev=t):this.tail=t},PIXI.WebGLBatch.prototype.remove=function(t){return this.size--,0==this.size?(t.batch=null,t.__prev=null,t.__next=null,void 0):(t.__prev?t.__prev.__next=t.__next:(this.head=t.__next,this.head.__prev=null),t.__next?t.__next.__prev=t.__prev:(this.tail=t.__prev,this.tail.__next=null),t.batch=null,t.__next=null,t.__prev=null,this.dirty=!0,void 0)},PIXI.WebGLBatch.prototype.split=function(t){this.dirty=!0;var e=new PIXI.WebGLBatch(this.gl);e.init(t),e.tail=this.tail,this.tail=t.__prev,this.tail.__next=null,t.__prev=null;for(var i=0;t;)i++,t.batch=e,t=t.__next;return e.size=i,this.size-=i,e},PIXI.WebGLBatch.prototype.merge=function(t){this.dirty=!0,this.tail.__next=t.head,t.head.__prev=this.tail,this.size+=t.size,this.tail=t.tail;for(var e=t.head;e;)e.batch=this,e=e.__next},PIXI.WebGLBatch.prototype.growBatch=function(){var t=this.gl;this.dynamicSize=1==this.size?1:1.5*this.size,this.verticies=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.vertexBuffer),t.bufferData(t.ARRAY_BUFFER,this.verticies,t.DYNAMIC_DRAW),this.uvs=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.uvBuffer),t.bufferData(t.ARRAY_BUFFER,this.uvs,t.DYNAMIC_DRAW),this.dirtyUVS=!0,this.colors=new Float32Array(4*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.colorBuffer),t.bufferData(t.ARRAY_BUFFER,this.colors,t.DYNAMIC_DRAW),this.dirtyColors=!0,this.indices=new Uint16Array(6*this.dynamicSize);for(var e=this.indices.length/6,i=0;e>i;i++){var r=6*i,s=4*i;this.indices[r+0]=s+0,this.indices[r+1]=s+1,this.indices[r+2]=s+2,this.indices[r+3]=s+0,this.indices[r+4]=s+2,this.indices[r+5]=s+3}t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,this.indexBuffer),t.bufferData(t.ELEMENT_ARRAY_BUFFER,this.indices,t.STATIC_DRAW)},PIXI.WebGLBatch.prototype.refresh=function(){this.gl,this.dynamicSizer;r++)i=this.batchs[r],i instanceof PIXI.WebGLBatch?this.batchs[r].render():i instanceof PIXI.TilingSprite?i.visible&&this.renderTilingSprite(i,t):i instanceof PIXI.Strip&&i.visible&&this.renderStrip(i,t)},PIXI.WebGLRenderGroup.prototype.renderSpecific=function(t,e){PIXI.WebGLRenderer.updateTextures();var i=this.gl;this.checkVisibility(t,t.visible),i.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform,!1,e);var r,s,n,a,o=t.renderable?t:this.getNextRenderable(t),h=o.batch;if(o instanceof PIXI.Sprite){h=o.batch;var u=h.head;if(u==o)r=0;else for(r=1;u.__next!=o;)r++,u=u.__next}else h=o;for(var d,c=t,l=t;l.children.length>0;)l=l.children[l.children.length-1],l.renderable&&(c=l);if(c instanceof PIXI.Sprite){d=c.batch;var u=d.head;if(u==c)n=0;else for(n=1;u.__next!=c;)n++,u=u.__next}else d=c;if(h==d)return h instanceof PIXI.WebGLBatch?h.render(r,n+1):h instanceof PIXI.TilingSprite?h.visible&&this.renderTilingSprite(h,e):h instanceof PIXI.Strip?h.visible&&this.renderStrip(h,e):h instanceof PIXI.CustomRenderable&&h.visible&&h.renderWebGL(this,e),void 0;s=this.batchs.indexOf(h),a=this.batchs.indexOf(d),h instanceof PIXI.WebGLBatch?h.render(r):h instanceof PIXI.TilingSprite?h.visible&&this.renderTilingSprite(h,e):h instanceof PIXI.Strip?h.visible&&this.renderStrip(h,e):h instanceof PIXI.CustomRenderable&&h.visible&&h.renderWebGL(this,e);for(var I=s+1;a>I;I++)renderable=this.batchs[I],renderable instanceof PIXI.WebGLBatch?this.batchs[I].render():renderable instanceof PIXI.TilingSprite?renderable.visible&&this.renderTilingSprite(renderable,e):renderable instanceof PIXI.Strip?renderable.visible&&this.renderStrip(renderable,e):renderable instanceof PIXI.CustomRenderable&&renderable.visible&&renderable.renderWebGL(this,e);d instanceof PIXI.WebGLBatch?d.render(0,n+1):d instanceof PIXI.TilingSprite?d.visible&&this.renderTilingSprite(d):d instanceof PIXI.Strip?d.visible&&this.renderStrip(d):d instanceof PIXI.CustomRenderable&&d.visible&&d.renderWebGL(this,e)},PIXI.WebGLRenderGroup.prototype.checkVisibility=function(t,e){for(var i=t.children,r=0;i.length>r;r++){var s=i[r];s.worldVisible=s.visible&&e,s.textureChange&&(s.textureChange=!1,s.worldVisible&&(this.removeDisplayObject(s),this.addDisplayObject(s))),s.children.length>0&&this.checkVisibility(s,s.worldVisible)}},PIXI.WebGLRenderGroup.prototype.addDisplayObject=function(t){if(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.__renderGroup=this,t.renderable){var e=this.getPreviousRenderable(t),i=this.getNextRenderable(t);if(t instanceof PIXI.Sprite){var r,s;if(e instanceof PIXI.Sprite){if(r=e.batch,r&&r.texture==t.texture.baseTexture&&r.blendMode==t.blendMode)return r.insertAfter(t,e),void 0}else r=e;if(i)if(i instanceof PIXI.Sprite){if(s=i.batch){if(s.texture==t.texture.baseTexture&&s.blendMode==t.blendMode)return s.insertBefore(t,i),void 0;if(s==r){var n=r.split(i),a=PIXI.WebGLRenderer.getBatch(),o=this.batchs.indexOf(r);return a.init(t),this.batchs.splice(o+1,0,a,n),void 0}}}else s=i;var a=PIXI.WebGLRenderer.getBatch();if(a.init(t),r){var o=this.batchs.indexOf(r);this.batchs.splice(o+1,0,a)}else this.batchs.push(a)}else t instanceof PIXI.TilingSprite?(this.initTilingSprite(t),this.batchs.push(t)):t instanceof PIXI.Strip&&(this.initStrip(t),this.batchs.push(t));this.batchUpdate=!0}},PIXI.WebGLRenderGroup.prototype.addDisplayObjectAndChildren=function(t){this.addDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.addDisplayObjectAndChildren(e[i])},PIXI.WebGLRenderGroup.prototype.removeDisplayObject=function(t){if(t.__renderGroup=null,t.renderable){var e;if(t instanceof PIXI.Sprite){var i=t.batch;if(!i)return;i.remove(t),0==i.size&&(e=i)}else e=t;if(e){var r=this.batchs.indexOf(e);if(-1==r)return;if(0==r||r==this.batchs.length-1)return this.batchs.splice(r,1),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e),void 0;if(this.batchs[r-1]instanceof PIXI.WebGLBatch&&this.batchs[r+1]instanceof PIXI.WebGLBatch&&this.batchs[r-1].texture==this.batchs[r+1].texture&&this.batchs[r-1].blendMode==this.batchs[r+1].blendMode)return this.batchs[r-1].merge(this.batchs[r+1]),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e),PIXI.WebGLRenderer.returnBatch(this.batchs[r+1]),this.batchs.splice(r,2),void 0;this.batchs.splice(r,1),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e)}}},PIXI.WebGLRenderGroup.prototype.removeDisplayObjectAndChildren=function(t){if(t.__renderGroup==this){this.removeDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.removeDisplayObjectAndChildren(e[i])}},PIXI.WebGLRenderGroup.prototype.getNextRenderable=function(t){var e=t;do{if(0==e.children.length){if(!e.parent)return null;for(;e.childIndex==e.parent.children.length-1;)if(e=e.parent,e==this.root||!e.parent){e=null;break}e&&(e=e.parent.children[e.childIndex+1])}else e=e.children[0];if(!e)break}while(!e.renderable||!e.__renderGroup);return e},PIXI.WebGLRenderGroup.prototype.getPreviousRenderable=function(t){var e=t;do{if(0==e.childIndex){if(e=e.parent,!e)return null}else for(e=e.parent.children[e.childIndex-1];0!=e.children.length;)e=e.children[e.children.length-1];if(e==this.root)break}while(!e.renderable||!e.__renderGroup);return e},PIXI.WebGLRenderGroup.prototype.initTilingSprite=function(t){var e=this.gl;t.verticies=new Float32Array([0,0,t.width,0,t.width,t.height,0,t.height]),t.uvs=new Float32Array([0,0,1,0,1,1,0,1]),t.colors=new Float32Array([1,1,1,1]),t.indices=new Uint16Array([0,1,3,2]),t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW),t.texture.baseTexture._glTexture?(e.bindTexture(e.TEXTURE_2D,t.texture.baseTexture._glTexture),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT),t.texture.baseTexture._powerOf2=!0):t.texture.baseTexture._powerOf2=!0},PIXI.WebGLRenderGroup.prototype.renderStrip=function(t,e){var i=this.gl,r=PIXI.shaderProgram,s=PIXI.mat3.toMat4(t.worldTransform);PIXI.mat4.transpose(s),PIXI.mat4.multiply(e,s,s),i.uniformMatrix4fv(r.mvMatrixUniform,!1,s),t.blendMode==PIXI.blendModes.NORMAL?i.blendFunc(i.ONE,i.ONE_MINUS_SRC_ALPHA):i.blendFunc(i.ONE,i.ONE_MINUS_SRC_COLOR),t.dirty?(t.dirty=!1,i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferData(i.ARRAY_BUFFER,t.verticies,i.STATIC_DRAW),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferData(i.ARRAY_BUFFER,t.uvs,i.STATIC_DRAW),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.bufferData(i.ARRAY_BUFFER,t.colors,i.STATIC_DRAW),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer),i.bufferData(i.ELEMENT_ARRAY_BUFFER,t.indices,i.STATIC_DRAW)):(i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.verticies),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer)),i.drawElements(i.TRIANGLE_STRIP,t.indices.length,i.UNSIGNED_SHORT,0),i.uniformMatrix4fv(r.mvMatrixUniform,!1,e)},PIXI.WebGLRenderGroup.prototype.renderTilingSprite=function(t,e){var i=this.gl;PIXI.shaderProgram;var r=t.tilePosition,s=t.tileScale,n=r.x/t.texture.baseTexture.width,a=r.y/t.texture.baseTexture.height,o=t.width/t.texture.baseTexture.width/s.x,h=t.height/t.texture.baseTexture.height/s.y;t.uvs[0]=0-n,t.uvs[1]=0-a,t.uvs[2]=1*o-n,t.uvs[3]=0-a,t.uvs[4]=1*o-n,t.uvs[5]=1*h-a,t.uvs[6]=0-n,t.uvs[7]=1*h-a,i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.uvs),this.renderStrip(t,e)},PIXI.WebGLRenderer.prototype.initStrip=function(t){var e=this.gl;this.shaderProgram,t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW)},PIXI.CanvasRenderer=function(t,e,i,r){this.transparent=r,this.width=t||800,this.height=e||600,this.refresh=!0,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height,this.count=0,this.context=this.view.getContext("2d")},PIXI.CanvasRenderer.constructor=PIXI.CanvasRenderer,PIXI.CanvasRenderer.prototype.render=function(t){PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[],t.updateTransform(),this.view.style.backgroundColor==t.backgroundColorString||this.transparent||(this.view.style.backgroundColor=t.backgroundColorString),this.context.setTransform(1,0,0,1,0,0),this.context.clearRect(0,0,this.width,this.height),this.renderDisplayObject(t),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),PIXI.Texture.frameUpdates.length>0&&(PIXI.Texture.frameUpdates=[])},PIXI.CanvasRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e},PIXI.CanvasRenderer.prototype.renderDisplayObject=function(t){var e=t.worldTransform,i=this.context;if(t.visible){if(t instanceof PIXI.Sprite){var r=t.texture.frame;r&&(i.globalAlpha=t.worldAlpha,i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),i.drawImage(t.texture.baseTexture.source,r.x,r.y,r.width,r.height,t.anchor.x*-r.width,t.anchor.y*-r.height,r.width,r.height))}else t instanceof PIXI.Strip?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderStrip(t)):t instanceof PIXI.TilingSprite?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderTilingSprite(t)):t instanceof PIXI.CustomRenderable&&t.renderCanvas(this);for(var s=0;t.children.length>s;s++)this.renderDisplayObject(t.children[s]);this.context.setTransform(1,0,0,1,0,0)}},PIXI.CanvasRenderer.prototype.renderStripFlat=function(t){var e=this.context,i=t.verticies;t.uvs;var r=i.length/2;this.count++,e.beginPath();for(var s=1;r-2>s;s++){var n=2*s,a=i[n],o=i[n+2],h=i[n+4],u=i[n+1],d=i[n+3],c=i[n+5];e.moveTo(a,u),e.lineTo(o,d),e.lineTo(h,c)}e.fillStyle="#FF0000",e.fill(),e.closePath()},PIXI.CanvasRenderer.prototype.renderTilingSprite=function(t){var e=this.context;t.__tilePattern||(t.__tilePattern=e.createPattern(t.texture.baseTexture.source,"repeat")),e.beginPath();var i=t.tilePosition,r=t.tileScale;e.scale(r.x,r.y),e.translate(i.x,i.y),e.fillStyle=t.__tilePattern,e.fillRect(-i.x,-i.y,t.width/r.x,t.height/r.y),e.scale(1/r.x,1/r.y),e.translate(-i.x,-i.y),e.closePath()},PIXI.CanvasRenderer.prototype.renderStrip=function(t){var e=this.context,i=t.verticies,r=t.uvs,s=i.length/2;this.count++;for(var n=1;s-2>n;n++){var a=2*n,o=i[a],h=i[a+2],u=i[a+4],d=i[a+1],c=i[a+3],l=i[a+5],I=r[a]*t.texture.width,p=r[a+2]*t.texture.width,f=r[a+4]*t.texture.width,x=r[a+1]*t.texture.height,v=r[a+3]*t.texture.height,P=r[a+5]*t.texture.height;e.save(),e.beginPath(),e.moveTo(o,d),e.lineTo(h,c),e.lineTo(u,l),e.closePath(),e.clip();var g=I*v+x*f+p*P-v*f-x*p-I*P,b=o*v+x*u+h*P-v*u-x*h-o*P,X=I*h+o*f+p*u-h*f-o*p-I*u,m=I*v*u+x*h*f+o*p*P-o*v*f-x*p*u-I*h*P,T=d*v+x*l+c*P-v*l-x*c-d*P,y=I*c+d*f+p*l-c*f-d*p-I*l,_=I*v*l+x*c*f+d*p*P-d*v*f-x*p*l-I*c*P;e.transform(b/g,T/g,X/g,y/g,m/g,_/g),e.drawImage(t.texture.baseTexture.source,0,0),e.restore()}},PIXI.Strip=function(t,e,i){PIXI.DisplayObjectContainer.call(this),this.texture=t,this.blendMode=PIXI.blendModes.NORMAL;try{this.uvs=new Float32Array([0,1,1,1,1,0,0,1]),this.verticies=new Float32Array([0,0,0,0,0,0,0,0,0]),this.colors=new Float32Array([1,1,1,1]),this.indices=new Uint16Array([0,1,2,3])}catch(r){this.uvs=[0,1,1,1,1,0,0,1],this.verticies=[0,0,0,0,0,0,0,0,0],this.colors=[1,1,1,1],this.indices=[0,1,2,3]}this.width=e,this.height=i,t.baseTexture.hasLoaded?(this.width=this.texture.frame.width,this.height=this.texture.frame.height,this.updateFrame=!0):(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},PIXI.Strip.constructor=PIXI.Strip,PIXI.Strip.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Strip.prototype.setTexture=function(t){this.texture=t,this.width=t.frame.width,this.height=t.frame.height,this.updateFrame=!0},PIXI.Strip.prototype.onTextureUpdate=function(){this.updateFrame=!0},PIXI.Rope=function(t,e){PIXI.Strip.call(this,t),this.points=e;try{this.verticies=new Float32Array(4*e.length),this.uvs=new Float32Array(4*e.length),this.colors=new Float32Array(2*e.length),this.indices=new Uint16Array(2*e.length)}catch(i){this.verticies=verticies,this.uvs=uvs,this.colors=colors,this.indices=indices}this.refresh()},PIXI.Rope.constructor=PIXI.Rope,PIXI.Rope.prototype=Object.create(PIXI.Strip.prototype),PIXI.Rope.prototype.refresh=function(){var t=this.points;if(!(1>t.length)){var e=this.uvs,i=this.indices,r=this.colors,s=t[0],n=t[0];this.count-=.2,e[0]=0,e[1]=1,e[2]=0,e[3]=1,r[0]=1,r[1]=1,i[0]=0,i[1]=1;for(var a=t.length,o=1;a>o;o++){var n=t[o],h=4*o,u=o/(a-1);o%2?(e[h]=u,e[h+1]=0,e[h+2]=u,e[h+3]=1):(e[h]=u,e[h+1]=0,e[h+2]=u,e[h+3]=1),h=2*o,r[h]=1,r[h+1]=1,h=2*o,i[h]=h,i[h+1]=h+1,s=n}}},PIXI.Rope.prototype.updateTransform=function(){var t=this.points;if(!(1>t.length)){var e,i=this.verticies,r=t[0],s={x:0,y:0},n=t[0];this.count-=.2,i[0]=n.x+s.x,i[1]=n.y+s.y,i[2]=n.x-s.x,i[3]=n.y-s.y;for(var a=t.length,o=1;a>o;o++){var n=t[o],h=4*o;e=t.length-1>o?t[o+1]:n,s.y=-(e.x-r.x),s.x=e.y-r.y;var u=10*(1-o/(a-1));u>1&&(u=1);var d=Math.sqrt(s.x*s.x+s.y*s.y),c=this.texture.height/2;s.x/=d,s.y/=d,s.x*=c,s.y*=c,i[h]=n.x+s.x,i[h+1]=n.y+s.y,i[h+2]=n.x-s.x,i[h+3]=n.y-s.y,r=n}PIXI.DisplayObjectContainer.prototype.updateTransform.call(this)}},PIXI.Rope.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0},PIXI.TilingSprite=function(t,e,i){PIXI.DisplayObjectContainer.call(this),this.texture=t,this.width=e,this.height=i,this.renderable=!0,this.tileScale=new PIXI.Point(1,1),this.tilePosition=new PIXI.Point(0,0),this.blendMode=PIXI.blendModes.NORMAL},PIXI.TilingSprite.constructor=PIXI.TilingSprite,PIXI.TilingSprite.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.TilingSprite.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0},PIXI.TilingSprite.prototype.onTextureUpdate=function(){this.updateFrame=!0},PIXI.CustomRenderable=function(){PIXI.DisplayObject.call(this)},PIXI.CustomRenderable.constructor=PIXI.CustomRenderable,PIXI.CustomRenderable.prototype=Object.create(PIXI.DisplayObject.prototype),PIXI.CustomRenderable.prototype.renderCanvas=function(){},PIXI.CustomRenderable.prototype.initWebGL=function(){},PIXI.CustomRenderable.prototype.renderWebGL=function(){},PIXI.BaseTextureCache={},PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[],PIXI.BaseTexture=function(t){if(PIXI.EventTarget.call(this),this.width=100,this.height=100,this.source=t,t){if(this.source instanceof Image)if(this.source.complete)this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,PIXI.texturesToUpdate.push(this);else{var e=this;this.source.onload=function(){e.hasLoaded=!0,e.width=e.source.width,e.height=e.source.height,PIXI.texturesToUpdate.push(e),e.dispatchEvent({type:"loaded",content:e})}}else this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,PIXI.texturesToUpdate.push(this);this._powerOf2=!1}},PIXI.BaseTexture.constructor=PIXI.BaseTexture,PIXI.BaseTexture.prototype.destroy=function(){this.source instanceof Image&&(this.source.src=null),this.source=null,PIXI.texturesToDestroy.push(this)},PIXI.BaseTexture.fromImage=function(t,e){var i=PIXI.BaseTextureCache[t];if(!i){var r=new Image;e&&(r.crossOrigin=""),r.src=t,i=new PIXI.BaseTexture(r),PIXI.BaseTextureCache[t]=i}return i},PIXI.TextureCache={},PIXI.FrameCache={},PIXI.Texture=function(t,e){if(PIXI.EventTarget.call(this),e||(this.noFrame=!0,e=new PIXI.Rectangle(0,0,1,1)),this.trim=new PIXI.Point,t instanceof PIXI.Texture&&(t=t.baseTexture),this.baseTexture=t,this.frame=e,this.scope=this,t.hasLoaded)this.noFrame&&(e=new PIXI.Rectangle(0,0,t.width,t.height)),this.setFrame(e);else{var i=this;t.addEventListener("loaded",function(){i.onBaseTextureLoaded()})}},PIXI.Texture.constructor=PIXI.Texture,PIXI.Texture.prototype.onBaseTextureLoaded=function(){var t=this.baseTexture;t.removeEventListener("loaded",this.onLoaded),this.noFrame&&(this.frame=new PIXI.Rectangle(0,0,t.width,t.height)),this.noFrame=!1,this.width=this.frame.width,this.height=this.frame.height,this.scope.dispatchEvent({type:"update",content:this})},PIXI.Texture.prototype.destroy=function(t){t&&this.baseTexture.destroy()},PIXI.Texture.prototype.setFrame=function(t){if(this.frame=t,this.width=t.width,this.height=t.height,t.x+t.width>this.baseTexture.width||t.y+t.height>this.baseTexture.height)throw Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);this.updateFrame=!0,PIXI.Texture.frameUpdates.push(this)},PIXI.Texture.fromImage=function(t,e){var i=PIXI.TextureCache[t];return i||(i=new PIXI.Texture(PIXI.BaseTexture.fromImage(t,e)),PIXI.TextureCache[t]=i),i},PIXI.Texture.fromFrame=function(t){var e=PIXI.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache "+this);return e},PIXI.Texture.fromCanvas=function(t){var e=new PIXI.BaseTexture(t);return new PIXI.Texture(e)},PIXI.Texture.addTextureToCache=function(t,e){PIXI.TextureCache[e]=t},PIXI.Texture.removeTextureFromCache=function(t){var e=PIXI.TextureCache[t];return PIXI.TextureCache[t]=null,e},PIXI.Texture.frameUpdates=[],PIXI.RenderTexture=function(t,e){PIXI.EventTarget.call(this),this.width=t||100,this.height=e||100,this.indetityMatrix=PIXI.mat3.create(),this.frame=new PIXI.Rectangle(0,0,this.width,this.height),PIXI.gl?this.initWebGL():this.initCanvas()},PIXI.RenderTexture.constructor=PIXI.RenderTexture,PIXI.RenderTexture.prototype=Object.create(PIXI.Texture.prototype),PIXI.RenderTexture.prototype.initWebGL=function(){var t=PIXI.gl;this.glFramebuffer=t.createFramebuffer(),t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),this.glFramebuffer.width=this.width,this.glFramebuffer.height=this.height,this.baseTexture=new PIXI.BaseTexture,this.baseTexture.width=this.width,this.baseTexture.height=this.height,this.baseTexture._glTexture=t.createTexture(),t.bindTexture(t.TEXTURE_2D,this.baseTexture._glTexture),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,this.width,this.height,0,t.RGBA,t.UNSIGNED_BYTE,null),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),this.baseTexture.isRender=!0,t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,this.baseTexture._glTexture,0),this.projectionMatrix=PIXI.mat4.create(),this.projectionMatrix[5]=2/this.height,this.projectionMatrix[13]=-1,this.projectionMatrix[0]=2/this.width,this.projectionMatrix[12]=-1,this.render=this.renderWebGL},PIXI.RenderTexture.prototype.initCanvas=function(){this.renderer=new PIXI.CanvasRenderer(this.width,this.height,null,0),this.baseTexture=new PIXI.BaseTexture(this.renderer.view),this.frame=new PIXI.Rectangle(0,0,this.width,this.height),this.render=this.renderCanvas},PIXI.RenderTexture.prototype.renderWebGL=function(t,e){var i=PIXI.gl;i.colorMask(!0,!0,!0,!0),i.viewport(0,0,this.width,this.height),i.bindFramebuffer(i.FRAMEBUFFER,this.glFramebuffer),e&&(i.clearColor(0,0,0,0),i.clear(i.COLOR_BUFFER_BIT));var r=t.children;t.worldTransform=PIXI.mat3.create();for(var s=0,n=r.length;n>s;s++)r[s].updateTransform();var a=t.__renderGroup;a?t==a.root?a.render(this.projectionMatrix):a.renderSpecific(t,this.projectionMatrix):(this.renderGroup||(this.renderGroup=new PIXI.WebGLRenderGroup(i)),this.renderGroup.setRenderable(t),this.renderGroup.render(this.projectionMatrix))},PIXI.RenderTexture.prototype.renderCanvas=function(t,e){var i=t.children;t.worldTransform=PIXI.mat3.create();for(var r=0,s=i.length;s>r;r++)i[r].updateTransform();e&&this.renderer.context.clearRect(0,0,this.width,this.height),this.renderer.renderDisplayObject(t),PIXI.texturesToUpdate.push(this.baseTexture)},PIXI.AssetLoader=function(t){PIXI.EventTarget.call(this),this.assetURLs=t,this.crossorigin=!1,this.loadersByType={jpg:PIXI.ImageLoader,jpeg:PIXI.ImageLoader,png:PIXI.ImageLoader,gif:PIXI.ImageLoader,json:PIXI.SpriteSheetLoader,xml:PIXI.BitmapFontLoader,fnt:PIXI.BitmapFontLoader}},PIXI.AssetLoader.constructor=PIXI.AssetLoader,PIXI.AssetLoader.prototype.load=function(){var t=this;this.loadCount=this.assetURLs.length;for(var e=0;this.assetURLs.length>e;e++){var i=this.assetURLs[e],r=i.split(".").pop().toLowerCase(),s=this.loadersByType[r];if(!s)throw Error(r+" is an unsupported file type");var n=new s(i,this.crossorigin);n.addEventListener("loaded",function(){t.onAssetLoaded()}),n.load()}},PIXI.AssetLoader.prototype.onAssetLoaded=function(){this.loadCount--,this.dispatchEvent({type:"onProgress",content:this}),this.onProgress&&this.onProgress(),0==this.loadCount&&(this.dispatchEvent({type:"onComplete",content:this}),this.onComplete&&this.onComplete())},PIXI.SpriteSheetLoader=function(t,e){PIXI.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.frames={},this.crossorigin=e},PIXI.SpriteSheetLoader.constructor=PIXI.SpriteSheetLoader,PIXI.SpriteSheetLoader.prototype.load=function(){this.ajaxRequest=new AjaxRequest;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onJSONLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/json"),this.ajaxRequest.send(null)},PIXI.SpriteSheetLoader.prototype.onJSONLoaded=function(){if(4==this.ajaxRequest.readyState&&(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))){var jsonData=eval("("+this.ajaxRequest.responseText+")"),textureUrl=this.baseUrl+jsonData.meta.image,image=new PIXI.ImageLoader(textureUrl,this.crossorigin);this.texture=image.texture.baseTexture;var scope=this;image.addEventListener("loaded",function(){scope.onLoaded()});var frameData=jsonData.frames;for(var i in frameData){var rect=frameData[i].frame;rect&&(PIXI.TextureCache[i]=new PIXI.Texture(this.texture,{x:rect.x,y:rect.y,width:rect.w,height:rect.h}),frameData[i].trimmed&&(PIXI.TextureCache[i].realSize=frameData[i].spriteSourceSize,PIXI.TextureCache[i].trim.x=0))}image.load()}},PIXI.SpriteSheetLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},PIXI.ImageLoader=function(t,e){PIXI.EventTarget.call(this),this.texture=PIXI.Texture.fromImage(t,e)},PIXI.ImageLoader.constructor=PIXI.ImageLoader,PIXI.ImageLoader.prototype.load=function(){if(this.texture.baseTexture.hasLoaded)this.onLoaded();else{var t=this;this.texture.baseTexture.addEventListener("loaded",function(){t.onLoaded()})}},PIXI.ImageLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},PIXI.BitmapFontLoader=function(t,e){PIXI.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.crossorigin=e},PIXI.BitmapFontLoader.constructor=PIXI.BitmapFontLoader,PIXI.BitmapFontLoader.prototype.load=function(){this.ajaxRequest=new XMLHttpRequest;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onXMLLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/xml"),this.ajaxRequest.send(null)},PIXI.BitmapFontLoader.prototype.onXMLLoaded=function(){if(4==this.ajaxRequest.readyState&&(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))){var t=this.baseUrl+this.ajaxRequest.responseXML.getElementsByTagName("page")[0].attributes.getNamedItem("file").nodeValue,e=new PIXI.ImageLoader(t,this.crossorigin);this.texture=e.texture.baseTexture;var i={},r=this.ajaxRequest.responseXML.getElementsByTagName("info")[0],s=this.ajaxRequest.responseXML.getElementsByTagName("common")[0];i.font=r.attributes.getNamedItem("face").nodeValue,i.size=parseInt(r.attributes.getNamedItem("size").nodeValue,10),i.lineHeight=parseInt(s.attributes.getNamedItem("lineHeight").nodeValue,10),i.chars={};for(var n=this.ajaxRequest.responseXML.getElementsByTagName("char"),a=0;n.length>a;a++){var o=parseInt(n[a].attributes.getNamedItem("id").nodeValue,10),h={x:parseInt(n[a].attributes.getNamedItem("x").nodeValue,10),y:parseInt(n[a].attributes.getNamedItem("y").nodeValue,10),width:parseInt(n[a].attributes.getNamedItem("width").nodeValue,10),height:parseInt(n[a].attributes.getNamedItem("height").nodeValue,10)};PIXI.TextureCache[o]=new PIXI.Texture(this.texture,h),i.chars[o]={xOffset:parseInt(n[a].attributes.getNamedItem("xoffset").nodeValue,10),yOffset:parseInt(n[a].attributes.getNamedItem("yoffset").nodeValue,10),xAdvance:parseInt(n[a].attributes.getNamedItem("xadvance").nodeValue,10),kerning:{}}}var u=this.ajaxRequest.responseXML.getElementsByTagName("kerning");for(a=0;u.length>a;a++){var d=parseInt(u[a].attributes.getNamedItem("first").nodeValue,10),c=parseInt(u[a].attributes.getNamedItem("second").nodeValue,10),l=parseInt(u[a].attributes.getNamedItem("amount").nodeValue,10);i.chars[c].kerning[d]=l}PIXI.BitmapText.fonts[i.font]=i;var I=this;e.addEventListener("loaded",function(){I.onLoaded()}),e.load()}},PIXI.BitmapFontLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=PIXI),exports.PIXI=PIXI):root.PIXI=PIXI}).call(this); \ No newline at end of file diff --git a/docs/classes/WebGLRenderer.html b/docs/classes/WebGLRenderer.html index 581cb5a..fcef6b6 100644 --- a/docs/classes/WebGLRenderer.html +++ b/docs/classes/WebGLRenderer.html @@ -498,7 +498,7 @@ - src/pixi/renderers/WebGLRenderer.js:283 + src/pixi/renderers/WebGLRenderer.js:284

diff --git a/docs/data.json b/docs/data.json index 9b4a49d..4b27831 100644 --- a/docs/data.json +++ b/docs/data.json @@ -1388,35 +1388,35 @@ }, { "file": "src/pixi/renderers/WebGLRenderGroup.js", - "line": 523, + "line": 527, "access": "private", "tagname": "", "class": "WebGLBatch" }, { "file": "src/pixi/renderers/WebGLRenderGroup.js", - "line": 607, + "line": 613, "access": "private", "tagname": "", "class": "WebGLBatch" }, { "file": "src/pixi/renderers/WebGLRenderGroup.js", - "line": 663, + "line": 669, "access": "private", "tagname": "", "class": "WebGLBatch" }, { "file": "src/pixi/renderers/WebGLRenderGroup.js", - "line": 740, + "line": 746, "access": "private", "tagname": "", "class": "WebGLBatch" }, { "file": "src/pixi/renderers/WebGLRenderGroup.js", - "line": 777, + "line": 783, "access": "private", "tagname": "", "class": "WebGLBatch" @@ -1465,14 +1465,14 @@ }, { "file": "src/pixi/renderers/WebGLRenderer.js", - "line": 232, + "line": 225, "access": "private", "tagname": "", "class": "WebGLRenderer" }, { "file": "src/pixi/renderers/WebGLRenderer.js", - "line": 283, + "line": 284, "description": "resizes the webGL view to the specified width and height", "itemtype": "method", "name": "resize", @@ -1492,14 +1492,14 @@ }, { "file": "src/pixi/renderers/WebGLRenderer.js", - "line": 307, + "line": 308, "access": "private", "tagname": "", "class": "WebGLRenderer" }, { "file": "src/pixi/renderers/WebGLRenderer.js", - "line": 316, + "line": 317, "access": "private", "tagname": "", "class": "WebGLRenderer" @@ -2908,23 +2908,23 @@ }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderGroup.js:523" + "line": " src/pixi/renderers/WebGLRenderGroup.js:527" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderGroup.js:607" + "line": " src/pixi/renderers/WebGLRenderGroup.js:613" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderGroup.js:663" + "line": " src/pixi/renderers/WebGLRenderGroup.js:669" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderGroup.js:740" + "line": " src/pixi/renderers/WebGLRenderGroup.js:746" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderGroup.js:777" + "line": " src/pixi/renderers/WebGLRenderGroup.js:783" }, { "message": "Missing item type", @@ -2944,15 +2944,15 @@ }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderer.js:232" + "line": " src/pixi/renderers/WebGLRenderer.js:225" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderer.js:307" + "line": " src/pixi/renderers/WebGLRenderer.js:308" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderer.js:316" + "line": " src/pixi/renderers/WebGLRenderer.js:317" }, { "message": "Missing item type", diff --git a/docs/files/src_pixi_renderers_WebGLRenderGroup.js.html b/docs/files/src_pixi_renderers_WebGLRenderGroup.js.html index 7222602..42bcabd 100644 --- a/docs/files/src_pixi_renderers_WebGLRenderGroup.js.html +++ b/docs/files/src_pixi_renderers_WebGLRenderGroup.js.html @@ -177,6 +177,8 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + //PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. @@ -215,6 +217,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + //PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -683,7 +687,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/docs/files/src_pixi_renderers_WebGLRenderer.js.html b/docs/files/src_pixi_renderers_WebGLRenderer.js.html index 0383c4d..551dd19 100644 --- a/docs/files/src_pixi_renderers_WebGLRenderer.js.html +++ b/docs/files/src_pixi_renderers_WebGLRenderer.js.html @@ -306,15 +306,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -366,9 +359,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -400,7 +402,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) diff --git a/examples/example 1 - Basics/pixi.js b/examples/example 1 - Basics/pixi.js index f29080a..3478cf4 100644 --- a/examples/example 1 - Basics/pixi.js +++ b/examples/example 1 - Basics/pixi.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/examples/example 10 - Text/pixi.js b/examples/example 10 - Text/pixi.js index f29080a..3478cf4 100644 --- a/examples/example 10 - Text/pixi.js +++ b/examples/example 10 - Text/pixi.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/examples/example 11 - RenderTexture/index.html b/examples/example 11 - RenderTexture/index.html index efd342b..e4acf76 100644 --- a/examples/example 11 - RenderTexture/index.html +++ b/examples/example 11 - RenderTexture/index.html @@ -15,7 +15,7 @@ diff --git a/examples/example 11 - RenderTexture/pixi.js b/examples/example 11 - RenderTexture/pixi.js index f29080a..3478cf4 100644 --- a/examples/example 11 - RenderTexture/pixi.js +++ b/examples/example 11 - RenderTexture/pixi.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/examples/example 2 - SpriteSheet/pixi.js b/examples/example 2 - SpriteSheet/pixi.js index f29080a..3478cf4 100644 --- a/examples/example 2 - SpriteSheet/pixi.js +++ b/examples/example 2 - SpriteSheet/pixi.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/examples/example 3 - MovieClip/pixi.js b/examples/example 3 - MovieClip/pixi.js index f29080a..3478cf4 100755 --- a/examples/example 3 - MovieClip/pixi.js +++ b/examples/example 3 - MovieClip/pixi.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/examples/example 4 - Balls/pixi.js b/examples/example 4 - Balls/pixi.js index f29080a..3478cf4 100644 --- a/examples/example 4 - Balls/pixi.js +++ b/examples/example 4 - Balls/pixi.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/examples/example 5 - Morph/pixi.js b/examples/example 5 - Morph/pixi.js index f29080a..3478cf4 100644 --- a/examples/example 5 - Morph/pixi.js +++ b/examples/example 5 - Morph/pixi.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/examples/example 6 - Interactivity/pixi.js b/examples/example 6 - Interactivity/pixi.js index f29080a..3478cf4 100644 --- a/examples/example 6 - Interactivity/pixi.js +++ b/examples/example 6 - Interactivity/pixi.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/examples/example 7 - Transparent Background/pixi.js b/examples/example 7 - Transparent Background/pixi.js index f29080a..3478cf4 100644 --- a/examples/example 7 - Transparent Background/pixi.js +++ b/examples/example 7 - Transparent Background/pixi.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/bin/pixi.dev.js b/bin/pixi.dev.js index f29080a..3478cf4 100644 --- a/bin/pixi.dev.js +++ b/bin/pixi.dev.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/bin/pixi.js b/bin/pixi.js index 5f2a13c..a6d54d1 100644 --- a/bin/pixi.js +++ b/bin/pixi.js @@ -4,10 +4,10 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php */ -(function(){function HEXtoRGB(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}function determineMatrixArrayType(){return PIXI.Matrix="undefined"!=typeof Float32Array?Float32Array:Array,PIXI.Matrix}var root=this,PIXI=PIXI||{};PIXI.Point=function(t,e){this.x=t||0,this.y=e||0},PIXI.Point.prototype.clone=function(){return new PIXI.Point(this.x,this.y)},PIXI.Point.constructor=PIXI.Point,PIXI.Rectangle=function(t,e,i,r){this.x=t||0,this.y=e||0,this.width=i||0,this.height=r||0},PIXI.Rectangle.prototype.clone=function(){return new PIXI.Rectangle(this.x,this.y,this.width,this.height)},PIXI.Rectangle.constructor=PIXI.Rectangle,PIXI.DisplayObject=function(){this.position=new PIXI.Point,this.scale=new PIXI.Point(1,1),this.pivot=new PIXI.Point(0,0),this.rotation=0,this.alpha=1,this.visible=!0,this.worldVisible=!1,this.parent=null,this.stage=null,this.hitArea=null,this.worldAlpha=1,this.color=[],this.worldTransform=PIXI.mat3.create(),this.localTransform=PIXI.mat3.create(),this.dynamic=!0,this._sr=0,this._cr=1,this.childIndex=0,this.renderable=!1,this.interactive=!1,this.buttonMode=!1},PIXI.DisplayObject.constructor=PIXI.DisplayObject,PIXI.DisplayObject.prototype.setInteractive=function(t){this.interactive=t,this.stage&&(this.stage.dirty=!0)},PIXI.DisplayObject.prototype.updateTransform=function(){this.rotation!=this.rotationCache&&(this.rotationCache=this.rotation,this._sr=Math.sin(this.rotation),this._cr=Math.cos(this.rotation));var t=this.localTransform,e=this.parent.worldTransform,i=this.worldTransform;t[0]=this._cr*this.scale.x,t[1]=-this._sr*this.scale.y,t[3]=this._sr*this.scale.x,t[4]=this._cr*this.scale.y;var r=this.pivot.x,s=this.pivot.y;t[2]=this.position.x-t[0]*r-s*t[1],t[5]=this.position.y-t[4]*s-r*t[3];var n=t[0],a=t[1],o=t[2],h=t[3],u=t[4],c=t[5],d=e[0],l=e[1],I=e[2],p=e[3],f=e[4],x=e[5];i[0]=d*n+l*h,i[1]=d*a+l*u,i[2]=d*o+l*c+I,i[3]=p*n+f*h,i[4]=p*a+f*u,i[5]=p*o+f*c+x,this.worldAlpha=this.alpha*this.parent.worldAlpha},PIXI.DisplayObjectContainer=function(){PIXI.DisplayObject.call(this),this.children=[],this.renderable=!1},PIXI.DisplayObjectContainer.constructor=PIXI.DisplayObjectContainer,PIXI.DisplayObjectContainer.prototype=Object.create(PIXI.DisplayObject.prototype),PIXI.DisplayObjectContainer.prototype.addChild=function(t){void 0!=t.parent&&t.parent.removeChild(t),t.parent=this,t.childIndex=this.children.length,this.children.push(t),this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},PIXI.DisplayObjectContainer.prototype.addChildAt=function(t,e){if(!(e>=0&&this.children.length>=e))throw Error(t+" The index "+e+" supplied is out of bounds "+this.children.length);void 0!=t.parent&&t.parent.removeChild(t),e==this.children.length?this.children.push(t):this.children.splice(e,0,t),t.parent=this,t.childIndex=e;for(var i=this.children.length,r=e;i>r;r++)this.children[r].childIndex=r;this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},PIXI.DisplayObjectContainer.prototype.swapChildren=function(t,e){var i=this.children.indexOf(t),r=this.children.indexOf(e);if(-1===i||-1===r)throw Error(t+" Both the supplied DisplayObjects must be a child of the caller "+this);this.stage&&(this.stage.__removeChild(t),this.stage.__removeChild(e),this.stage.__addChild(t),this.stage.__addChild(e)),t.childIndex=r,e.childIndex=i,this.children[i]=e,this.children[r]=t},PIXI.DisplayObjectContainer.prototype.getChildAt=function(t){if(t>=0&&this.children.length>t)return this.children[t];throw Error(child+" Both the supplied DisplayObjects must be a child of the caller "+this)},PIXI.DisplayObjectContainer.prototype.removeChild=function(t){var e=this.children.indexOf(t);if(-1===e)throw Error(t+" The supplied DisplayObject must be a child of the caller "+this);this.stage&&this.stage.__removeChild(t),t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.parent=void 0,this.children.splice(e,1);for(var i=e,r=this.children.length;r>i;i++)this.children[i].childIndex-=1},PIXI.DisplayObjectContainer.prototype.updateTransform=function(){if(this.visible){PIXI.DisplayObject.prototype.updateTransform.call(this);for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform()}},PIXI.blendModes={},PIXI.blendModes.NORMAL=0,PIXI.blendModes.SCREEN=1,PIXI.Sprite=function(t){PIXI.DisplayObjectContainer.call(this),this.anchor=new PIXI.Point,this.texture=t,this.blendMode=PIXI.blendModes.NORMAL,this._width=0,this._height=0,t.baseTexture.hasLoaded?this.updateFrame=!0:(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},PIXI.Sprite.constructor=PIXI.Sprite,PIXI.Sprite.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),Object.defineProperty(PIXI.Sprite.prototype,"width",{get:function(){return this.scale.x*this.texture.frame.width},set:function(t){this.scale.x=t/this.texture.frame.width,this._width=t}}),Object.defineProperty(PIXI.Sprite.prototype,"height",{get:function(){return this.scale.y*this.texture.frame.height},set:function(t){this.scale.y=t/this.texture.frame.height,this._height=t}}),PIXI.Sprite.prototype.setTexture=function(t){this.texture.baseTexture!=t.baseTexture&&(this.textureChange=!0),this.texture=t,this.updateFrame=!0},PIXI.Sprite.prototype.onTextureUpdate=function(){this._width&&(this.scale.x=this._width/this.texture.frame.width),this._height&&(this.scale.y=this._height/this.texture.frame.height),this.updateFrame=!0},PIXI.Sprite.fromFrame=function(t){var e=PIXI.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache"+this);return new PIXI.Sprite(e)},PIXI.Sprite.fromImage=function(t){var e=PIXI.Texture.fromImage(t);return new PIXI.Sprite(e)},PIXI.MovieClip=function(t){PIXI.Sprite.call(this,t[0]),this.textures=t,this.currentFrame=0,this.animationSpeed=1,this.loop=!0,this.onComplete=null,this.playing},PIXI.MovieClip.constructor=PIXI.MovieClip,PIXI.MovieClip.prototype=Object.create(PIXI.Sprite.prototype),PIXI.MovieClip.prototype.stop=function(){this.playing=!1},PIXI.MovieClip.prototype.play=function(){this.playing=!0},PIXI.MovieClip.prototype.gotoAndStop=function(t){this.playing=!1,this.currentFrame=t;var e=0|this.currentFrame+.5;this.setTexture(this.textures[e%this.textures.length])},PIXI.MovieClip.prototype.gotoAndPlay=function(t){this.currentFrame=t,this.playing=!0},PIXI.MovieClip.prototype.updateTransform=function(){if(PIXI.Sprite.prototype.updateTransform.call(this),this.playing){this.currentFrame+=this.animationSpeed;var t=0|this.currentFrame+.5;this.loop||this.textures.length>t?this.setTexture(this.textures[t%this.textures.length]):t>=this.textures.length&&(this.gotoAndStop(this.textures.length-1),this.onComplete&&this.onComplete())}},PIXI.Text=function(t,e){this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"),PIXI.Sprite.call(this,PIXI.Texture.fromCanvas(this.canvas)),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},PIXI.Text.constructor=PIXI.Text,PIXI.Text.prototype=Object.create(PIXI.Sprite.prototype),PIXI.Text.prototype.setStyle=function(t){t=t||{},t.font=t.font||"bold 20pt Arial",t.fill=t.fill||"black",t.align=t.align||"left",t.strokeThickness=t.strokeThickness||0,this.style=t,this.dirty=!0},PIXI.Sprite.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},PIXI.Text.prototype.updateText=function(){this.context.font=this.style.font;for(var t=this.text.split(/(?:\r\n|\r|\n)/),e=[],i=0,r=0;t.length>r;r++){var s=this.context.measureText(t[r]).width;e[r]=s,i=Math.max(i,s)}this.canvas.width=i+this.style.strokeThickness;var n=this.determineFontHeight("font: "+this.style.font+";")+this.style.strokeThickness;for(this.canvas.height=n*t.length,this.context.fillStyle=this.style.fill,this.context.font=this.style.font,this.context.strokeStyle=this.style.stroke,this.context.lineWidth=this.style.strokeThickness,this.context.textBaseline="top",r=0;t.length>r;r++){var a=new PIXI.Point(this.style.strokeThickness/2,this.style.strokeThickness/2+r*n);"right"==this.style.align?a.x+=i-e[r]:"center"==this.style.align&&(a.x+=(i-e[r])/2),this.style.stroke&&this.style.strokeThickness&&this.context.strokeText(t[r],a.x,a.y),this.style.fill&&this.context.fillText(t[r],a.x,a.y)}this.updateTexture()},PIXI.Text.prototype.updateTexture=function(){this.texture.baseTexture.width=this.canvas.width,this.texture.baseTexture.height=this.canvas.height,this.texture.frame.width=this.canvas.width,this.texture.frame.height=this.canvas.height,this._width=this.canvas.width,this._height=this.canvas.height,PIXI.texturesToUpdate.push(this.texture.baseTexture)},PIXI.Text.prototype.updateTransform=function(){this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype.updateTransform.call(this)},PIXI.Text.prototype.determineFontHeight=function(t){var e=PIXI.Text.heightCache[t];if(!e){var i=document.getElementsByTagName("body")[0],r=document.createElement("div"),s=document.createTextNode("M");r.appendChild(s),r.setAttribute("style",t),i.appendChild(r),e=r.offsetHeight,PIXI.Text.heightCache[t]=e,i.removeChild(r)}return e},PIXI.Text.prototype.destroy=function(t){t&&this.texture.destroy()},PIXI.Text.heightCache={},PIXI.BitmapText=function(t,e){PIXI.DisplayObjectContainer.call(this),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},PIXI.BitmapText.constructor=PIXI.BitmapText,PIXI.BitmapText.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.BitmapText.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},PIXI.BitmapText.prototype.setStyle=function(t){t=t||{},t.align=t.align||"left",this.style=t;var e=t.font.split(" ");this.fontName=e[e.length-1],this.fontSize=e.length>=2?parseInt(e[e.length-2],10):PIXI.BitmapText.fonts[this.fontName].size,this.dirty=!0},PIXI.BitmapText.prototype.updateText=function(){for(var t=PIXI.BitmapText.fonts[this.fontName],e=new PIXI.Point,i=null,r=[],s=0,n=[],a=0,o=this.fontSize/t.size,h=0;this.text.length>h;h++){var u=this.text.charCodeAt(h);if(/(?:\r\n|\r|\n)/.test(this.text.charAt(h)))n.push(e.x),s=Math.max(s,e.x),a++,e.x=0,e.y+=t.lineHeight,i=null;else{var c=t.chars[u];c&&(i&&c[i]&&(e.x+=c.kerning[i]),r.push({line:a,charCode:u,position:new PIXI.Point(e.x+c.xOffset,e.y+c.yOffset)}),e.x+=c.xAdvance,i=u)}}n.push(e.x),s=Math.max(s,e.x);var d=[];for(h=0;a>=h;h++){var l=0;"right"==this.style.align?l=s-n[h]:"center"==this.style.align&&(l=(s-n[h])/2),d.push(l)}for(h=0;r.length>h;h++){var I=PIXI.Sprite.fromFrame(r[h].charCode);I.position.x=(r[h].position.x+d[r[h].line])*o,I.position.y=r[h].position.y*o,I.scale.x=I.scale.y=o,this.addChild(I)}this.width=e.x*o,this.height=(e.y+t.lineHeight)*o},PIXI.BitmapText.prototype.updateTransform=function(){if(this.dirty){for(;this.children.length>0;)this.removeChild(this.getChildAt(0));this.updateText(),this.dirty=!1}PIXI.DisplayObjectContainer.prototype.updateTransform.call(this)},PIXI.BitmapText.fonts={},PIXI.InteractionManager=function(t){this.stage=t,this.tempPoint=new PIXI.Point,this.mouseoverEnabled=!0,this.mouse=new PIXI.InteractionData,this.touchs={},this.pool=[],this.interactiveItems=[],this.last=0},PIXI.InteractionManager.constructor=PIXI.InteractionManager,PIXI.InteractionManager.prototype.collectInteractiveSprite=function(t,e){for(var i=t.children,r=i.length,s=r-1;s>=0;s--){var n=i[s];n.interactive?(e.interactiveChildren=!0,this.interactiveItems.push(n),n.children.length>0&&this.collectInteractiveSprite(n,n)):(n.__iParent=null,n.children.length>0&&this.collectInteractiveSprite(n,e))}},PIXI.InteractionManager.prototype.setTarget=function(t){window.navigator.msPointerEnabled&&(t.view.style["-ms-content-zooming"]="none",t.view.style["-ms-touch-action"]="none"),this.target=t,t.view.addEventListener("mousemove",this.onMouseMove.bind(this),!0),t.view.addEventListener("mousedown",this.onMouseDown.bind(this),!0),document.body.addEventListener("mouseup",this.onMouseUp.bind(this),!0),t.view.addEventListener("mouseout",this.onMouseUp.bind(this),!0),t.view.addEventListener("touchstart",this.onTouchStart.bind(this),!0),t.view.addEventListener("touchend",this.onTouchEnd.bind(this),!0),t.view.addEventListener("touchmove",this.onTouchMove.bind(this),!0)},PIXI.InteractionManager.prototype.update=function(){if(this.target){var t=Date.now(),e=t-this.last;if(e=30*e/1e3,!(1>e)){if(this.last=t,this.dirty){this.dirty=!1,this.interactiveItems.length;for(var i=0;this.interactiveItems.length>i;i++)this.interactiveItems[i].interactiveChildren=!1;this.interactiveItems=[],this.stage.interactive&&this.interactiveItems.push(this.stage),this.collectInteractiveSprite(this.stage,this.stage)}var r=this.interactiveItems.length;this.target.view.style.cursor="default";for(var i=0;r>i;i++){var s=this.interactiveItems[i];s.visible&&(s.mouseover||s.mouseout||s.buttonMode)&&(s.__hit=this.hitTest(s,this.mouse),s.__hit?(s.buttonMode&&(this.target.view.style.cursor="pointer"),s.__isOver||(s.mouseover&&s.mouseover(this.mouse),s.__isOver=!0)):s.__isOver&&(s.mouseout&&s.mouseout(this.mouse),s.__isOver=!1))}}}},PIXI.InteractionManager.prototype.onMouseMove=function(t){t.preventDefault();var e=this.target.view.getBoundingClientRect();this.mouse.global.x=(t.clientX-e.left)*(this.target.width/e.width),this.mouse.global.y=(t.clientY-e.top)*(this.target.height/e.height);var i=this.interactiveItems.length;this.mouse.global;for(var r=0;i>r;r++){var s=this.interactiveItems[r];s.mousemove&&s.mousemove(this.mouse)}},PIXI.InteractionManager.prototype.onMouseDown=function(t){t.preventDefault();var e=this.interactiveItems.length;this.mouse.global,this.stage;for(var i=0;e>i;i++){var r=this.interactiveItems[i];if((r.mousedown||r.click)&&(r.__mouseIsDown=!0,r.__hit=this.hitTest(r,this.mouse),r.__hit&&(r.mousedown&&r.mousedown(this.mouse),r.__isDown=!0,!r.interactiveChildren)))break}},PIXI.InteractionManager.prototype.onMouseUp=function(t){t.preventDefault(),this.mouse.global;for(var e=this.interactiveItems.length,i=!1,r=0;e>r;r++){var s=this.interactiveItems[r];(s.mouseup||s.mouseupoutside||s.click)&&(s.__hit=this.hitTest(s,this.mouse),s.__hit&&!i?(s.mouseup&&s.mouseup(this.mouse),s.__isDown&&s.click&&s.click(this.mouse),s.interactiveChildren||(i=!0)):s.__isDown&&s.mouseupoutside&&s.mouseupoutside(this.mouse),s.__isDown=!1)}},PIXI.InteractionManager.prototype.hitTest=function(t,e){var i=e.global;if(!t.visible)return!1;if(t instanceof PIXI.Sprite){var r=t.worldTransform,s=r[0],n=r[1],a=r[2],o=r[3],h=r[4],u=r[5],c=1/(s*h+n*-o),d=h*c*i.x+-n*c*i.y+(u*n-a*h)*c,l=s*c*i.y+-o*c*i.x+(-u*s+a*o)*c,I=t.texture.frame.width,p=t.texture.frame.height,f=-I*t.anchor.x;if(d>f&&f+I>d){var x=-p*t.anchor.y;if(l>x&&x+p>l)return e.target=t,!0}}else if(t.hitArea){var r=t.worldTransform,v=t.hitArea,s=r[0],n=r[1],a=r[2],o=r[3],h=r[4],u=r[5],c=1/(s*h+n*-o),d=h*c*i.x+-n*c*i.y+(u*n-a*h)*c,l=s*c*i.y+-o*c*i.x+(-u*s+a*o)*c,f=v.x;if(d>f&&f+v.width>d){var x=v.y;if(l>x&&x+v.height>l)return!0}}for(var P=t.children.length,g=0;P>g;g++){var b=t.children[g],X=this.hitTest(b,e);if(X)return!0}return!1},PIXI.InteractionManager.prototype.onTouchMove=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.touchs[s.identifier];n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height)}for(var a=this.interactiveItems.length,r=0;a>r;r++){var o=this.interactiveItems[r];o.touchmove&&o.touchmove(n)}},PIXI.InteractionManager.prototype.onTouchStart=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.pool.pop();n||(n=new PIXI.InteractionData),this.touchs[s.identifier]=n,n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height);for(var a=this.interactiveItems.length,o=0;a>o;o++){var h=this.interactiveItems[o];if((h.touchstart||h.tap)&&(h.__hit=this.hitTest(h,n),h.__hit&&(h.touchstart&&h.touchstart(n),h.__isDown=!0,h.__touchData=n,!h.interactiveChildren)))break}}},PIXI.InteractionManager.prototype.onTouchEnd=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.touchs[s.identifier],a=!1;n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var u=this.interactiveItems[h],c=u.__touchData;u.__hit=this.hitTest(u,n),c==n&&((u.touchend||u.tap)&&(u.__hit&&!a?(u.touchend&&u.touchend(n),u.__isDown&&u.tap&&u.tap(n),u.interactiveChildren||(a=!0)):u.__isDown&&u.touchendoutside&&u.touchendoutside(n),u.__isDown=!1),u.__touchData=null)}this.pool.push(n),this.touchs[s.identifier]=null}},PIXI.InteractionData=function(){this.global=new PIXI.Point,this.local=new PIXI.Point,this.target},PIXI.InteractionData.prototype.getLocalPosition=function(t){var e=t.worldTransform,i=this.global,r=e[0],s=e[1],n=e[2],a=e[3],o=e[4],h=e[5],u=1/(r*o+s*-a);return new PIXI.Point(o*u*i.x+-s*u*i.y+(h*s-n*o)*u,r*u*i.y+-a*u*i.x+(-h*r+n*a)*u)},PIXI.InteractionData.constructor=PIXI.InteractionData,PIXI.Stage=function(t,e){PIXI.DisplayObjectContainer.call(this),this.worldTransform=PIXI.mat3.create(),this.__childrenAdded=[],this.__childrenRemoved=[],this.childIndex=0,this.stage=this,this.stage.hitArea=new PIXI.Rectangle(0,0,1e5,1e5),this.interactive=!!e,this.interactionManager=new PIXI.InteractionManager(this),this.setBackgroundColor(t),this.worldVisible=!0},PIXI.Stage.constructor=PIXI.Stage,PIXI.Stage.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Stage.prototype.updateTransform=function(){this.worldAlpha=1;for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform();this.dirty&&(this.dirty=!1,this.interactionManager.dirty=!0),this.interactive&&this.interactionManager.update()},PIXI.Stage.prototype.setBackgroundColor=function(t){this.backgroundColor=t||0,this.backgroundColorSplit=HEXtoRGB(this.backgroundColor),this.backgroundColorString="#"+this.backgroundColor.toString(16)},PIXI.Stage.prototype.getMousePosition=function(){return this.interactionManager.mouse.global},PIXI.Stage.prototype.__addChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=this,t.children)for(var e=0;t.children.length>e;e++)this.__addChild(t.children[e])},PIXI.Stage.prototype.__removeChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=void 0,t.children)for(var e=0,i=t.children.length;i>e;e++)this.__removeChild(t.children[e])},window.requestAnimFrame=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(t){window.setTimeout(t,1e3/60)}}(),"function"!=typeof Function.prototype.bind&&(Function.prototype.bind=function(){var t=Array.prototype.slice;return function(e){function i(){var n=s.concat(t.call(arguments));r.apply(this instanceof i?this:e,n)}var r=this,s=t.call(arguments,1);if("function"!=typeof r)throw new TypeError;return i.prototype=function n(t){return t&&(n.prototype=t),this instanceof n?void 0:new n}(r.prototype),i}}());var AjaxRequest=function(){var t=["Msxml2.XMLHTTP","Microsoft.XMLHTTP"];if(!window.ActiveXObject)return window.XMLHttpRequest?new XMLHttpRequest:!1;for(var e=0;t.length>e;e++)try{return new ActiveXObject(t[e])}catch(i){}};PIXI.EventTarget=function(){var t={};this.addEventListener=this.on=function(e,i){void 0===t[e]&&(t[e]=[]),-1===t[e].indexOf(i)&&t[e].push(i)},this.dispatchEvent=this.emit=function(e){for(var i in t[e.type])t[e.type][i](e)},this.removeEventListener=this.off=function(e,i){var r=t[e].indexOf(i);-1!==r&&t[e].splice(r,1)}},determineMatrixArrayType(),PIXI.mat3={},PIXI.mat3.create=function(){var t=new PIXI.Matrix(9);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},PIXI.mat4={},PIXI.mat4.create=function(){var t=new PIXI.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},PIXI.mat3.multiply=function(t,e,i){i||(i=t);var r=t[0],s=t[1],n=t[2],a=t[3],o=t[4],h=t[5],u=t[6],c=t[7],d=t[8],l=e[0],I=e[1],p=e[2],f=e[3],x=e[4],v=e[5],P=e[6],g=e[7],b=e[8];return i[0]=l*r+I*a+p*u,i[1]=l*s+I*o+p*c,i[2]=l*n+I*h+p*d,i[3]=f*r+x*a+v*u,i[4]=f*s+x*o+v*c,i[5]=f*n+x*h+v*d,i[6]=P*r+g*a+b*u,i[7]=P*s+g*o+b*c,i[8]=P*n+g*h+b*d,i},PIXI.mat3.toMat4=function(t,e){return e||(e=PIXI.mat4.create()),e[15]=1,e[14]=0,e[13]=0,e[12]=0,e[11]=0,e[10]=t[8],e[9]=t[7],e[8]=t[6],e[7]=0,e[6]=t[5],e[5]=t[4],e[4]=t[3],e[3]=0,e[2]=t[2],e[1]=t[1],e[0]=t[0],e},PIXI.mat4.create=function(){var t=new PIXI.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},PIXI.mat4.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],s=t[3],n=t[6],a=t[7],o=t[11];return t[1]=t[4],t[2]=t[8],t[3]=t[12],t[4]=i,t[6]=t[9],t[7]=t[13],t[8]=r,t[9]=n,t[11]=t[14],t[12]=s,t[13]=a,t[14]=o,t}return e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=t[1],e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=t[2],e[9]=t[6],e[10]=t[10],e[11]=t[14],e[12]=t[3],e[13]=t[7],e[14]=t[11],e[15]=t[15],e},PIXI.mat4.multiply=function(t,e,i){i||(i=t);var r=t[0],s=t[1],n=t[2],a=t[3],o=t[4],h=t[5],u=t[6],c=t[7],d=t[8],l=t[9],I=t[10],p=t[11],f=t[12],x=t[13],v=t[14],P=t[15],g=e[0],b=e[1],X=e[2],m=e[3];return i[0]=g*r+b*o+X*d+m*f,i[1]=g*s+b*h+X*l+m*x,i[2]=g*n+b*u+X*I+m*v,i[3]=g*a+b*c+X*p+m*P,g=e[4],b=e[5],X=e[6],m=e[7],i[4]=g*r+b*o+X*d+m*f,i[5]=g*s+b*h+X*l+m*x,i[6]=g*n+b*u+X*I+m*v,i[7]=g*a+b*c+X*p+m*P,g=e[8],b=e[9],X=e[10],m=e[11],i[8]=g*r+b*o+X*d+m*f,i[9]=g*s+b*h+X*l+m*x,i[10]=g*n+b*u+X*I+m*v,i[11]=g*a+b*c+X*p+m*P,g=e[12],b=e[13],X=e[14],m=e[15],i[12]=g*r+b*o+X*d+m*f,i[13]=g*s+b*h+X*l+m*x,i[14]=g*n+b*u+X*I+m*v,i[15]=g*a+b*c+X*p+m*P,i},PIXI.autoDetectRenderer=function(t,e,i,r){t||(t=800),e||(e=600);var s=function(){try{return!!window.WebGLRenderingContext&&!!document.createElement("canvas").getContext("experimental-webgl")}catch(t){return!1}}();return s?new PIXI.WebGLRenderer(t,e,i,r):new PIXI.CanvasRenderer(t,e,i,r)},PIXI.shaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * vColor;","}"],PIXI.shaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform mat4 uMVMatrix;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","gl_Position = uMVMatrix * vec4(aVertexPosition, 1.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],PIXI.CompileVertexShader=function(t,e){return PIXI._CompileShader(t,e,t.VERTEX_SHADER)},PIXI.CompileFragmentShader=function(t,e){return PIXI._CompileShader(t,e,t.FRAGMENT_SHADER)},PIXI._CompileShader=function(t,e,i){var r=e.join("\n"),s=t.createShader(i);return t.shaderSource(s,r),t.compileShader(s),t.getShaderParameter(s,t.COMPILE_STATUS)?s:(alert(t.getShaderInfoLog(s)),null)},PIXI._defaultFrame=new PIXI.Rectangle(0,0,1,1),PIXI.gl,PIXI.WebGLRenderer=function(t,e,i,r){this.transparent=!!r,this.width=t||800,this.height=e||600,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height;var s=this;this.view.addEventListener("webglcontextlost",function(t){s.handleContextLost(t)},!1),this.view.addEventListener("webglcontextrestored",function(t){s.handleContextRestored(t)},!1),this.batchs=[];try{PIXI.gl=this.gl=this.view.getContext("experimental-webgl",{alpha:this.transparent,antialias:!1,premultipliedAlpha:!0})}catch(n){throw Error(" This browser does not support webGL. Try using the canvas renderer"+this)}this.initShaders();var a=this.gl;PIXI.WebGLRenderer.gl=a,this.batch=new PIXI.WebGLBatch(a),a.disable(a.DEPTH_TEST),a.disable(a.CULL_FACE),a.enable(a.BLEND),a.colorMask(!0,!0,!0,this.transparent),this.projectionMatrix=PIXI.mat4.create(),this.resize(this.width,this.height),this.contextLost=!1,this.stageRenderGroup=new PIXI.WebGLRenderGroup(this.gl)},PIXI.WebGLRenderer.constructor=PIXI.WebGLRenderer,PIXI.WebGLRenderer.getBatch=function(){return 0==PIXI._batchs.length?new PIXI.WebGLBatch(PIXI.WebGLRenderer.gl):PIXI._batchs.pop()},PIXI.WebGLRenderer.returnBatch=function(t){t.clean(),PIXI._batchs.push(t)},PIXI.WebGLRenderer.prototype.initShaders=function(){var t=this.gl,e=PIXI.CompileFragmentShader(t,PIXI.shaderFragmentSrc),i=PIXI.CompileVertexShader(t,PIXI.shaderVertexSrc);PIXI.shaderProgram=t.createProgram();var r=PIXI.shaderProgram;t.attachShader(r,i),t.attachShader(r,e),t.linkProgram(r),t.getProgramParameter(r,t.LINK_STATUS)||alert("Could not initialise shaders"),t.useProgram(r),r.vertexPositionAttribute=t.getAttribLocation(r,"aVertexPosition"),t.enableVertexAttribArray(r.vertexPositionAttribute),r.textureCoordAttribute=t.getAttribLocation(r,"aTextureCoord"),t.enableVertexAttribArray(r.textureCoordAttribute),r.colorAttribute=t.getAttribLocation(r,"aColor"),t.enableVertexAttribArray(r.colorAttribute),r.mvMatrixUniform=t.getUniformLocation(r,"uMVMatrix"),r.samplerUniform=t.getUniformLocation(r,"uSampler")},PIXI.WebGLRenderer.prototype.render=function(t){if(!this.contextLost){this.__stage!==t&&(this.__stage=t,this.stageRenderGroup.setRenderable(t));for(var e=0;PIXI.texturesToUpdate.length>e;e++)this.updateTexture(PIXI.texturesToUpdate[e]);for(var e=0;PIXI.texturesToDestroy.length>e;e++)this.destroyTexture(PIXI.texturesToDestroy[e]);PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[],t.updateTransform();var i=this.gl;if(i.colorMask(!0,!0,!0,this.transparent),i.viewport(0,0,this.width,this.height),i.bindFramebuffer(i.FRAMEBUFFER,null),i.clearColor(t.backgroundColorSplit[0],t.backgroundColorSplit[1],t.backgroundColorSplit[2],this.transparent),i.clear(i.COLOR_BUFFER_BIT),this.stageRenderGroup.backgroundColor=t.backgroundColorSplit,this.stageRenderGroup.render(this.projectionMatrix),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),PIXI.Texture.frameUpdates.length>0){for(var e=0;PIXI.Texture.frameUpdates.length>e;e++)PIXI.Texture.frameUpdates[e].updateFrame=!1;PIXI.Texture.frameUpdates=[]}}},PIXI.WebGLRenderer.prototype.updateTexture=function(t){var e=this.gl;t._glTexture||(t._glTexture=e.createTexture()),t.hasLoaded&&(e.bindTexture(e.TEXTURE_2D,t._glTexture),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t.source),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),t._powerOf2?(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT)):(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)),e.bindTexture(e.TEXTURE_2D,null)),this.refreshBatchs=!0},PIXI.WebGLRenderer.prototype.destroyTexture=function(t){var e=this.gl;t._glTexture&&(t._glTexture=e.createTexture(),e.deleteTexture(e.TEXTURE_2D,t._glTexture))},PIXI.WebGLRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e,this.gl.viewport(0,0,this.width,this.height);var i=this.projectionMatrix;i[0]=2/this.width,i[5]=-2/this.height,i[12]=-1,i[13]=1},PIXI.WebGLRenderer.prototype.handleContextLost=function(t){t.preventDefault(),this.contextLost=!0},PIXI.WebGLRenderer.prototype.handleContextRestored=function(){this.gl=this.view.getContext("experimental-webgl",{alpha:!0}),this.initShaders();for(var t=0;PIXI.TextureCache.length>t;t++)this.updateTexture(PIXI.TextureCache[t]);for(var t=0;this.batchs.length>t;t++)this.batchs[t].restoreLostContext(this.gl),this.batchs[t].dirty=!0;PIXI._restoreBatchs(this.gl),this.contextLost=!1},PIXI._batchs=[],PIXI._getBatch=function(t){return 0==PIXI._batchs.length?new PIXI.WebGLBatch(t):PIXI._batchs.pop()},PIXI._returnBatch=function(t){t.clean(),PIXI._batchs.push(t)},PIXI._restoreBatchs=function(t){for(var e=0;PIXI._batchs.length>e;e++)PIXI._batchs[e].restoreLostContext(t)},PIXI.WebGLBatch=function(t){this.gl=t,this.size=0,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer(),this.blendMode=PIXI.blendModes.NORMAL,this.dynamicSize=1},PIXI.WebGLBatch.constructor=PIXI.WebGLBatch,PIXI.WebGLBatch.prototype.clean=function(){this.verticies=[],this.uvs=[],this.indices=[],this.colors=[],this.dynamicSize=1,this.texture=null,this.last=null,this.size=0,this.head,this.tail},PIXI.WebGLBatch.prototype.restoreLostContext=function(t){this.gl=t,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer()},PIXI.WebGLBatch.prototype.init=function(t){t.batch=this,this.dirty=!0,this.blendMode=t.blendMode,this.texture=t.texture.baseTexture,this.head=t,this.tail=t,this.size=1,this.growBatch()},PIXI.WebGLBatch.prototype.insertBefore=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__prev;e.__prev=t,t.__next=e,i?(t.__prev=i,i.__next=t):this.head=t},PIXI.WebGLBatch.prototype.insertAfter=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__next;e.__next=t,t.__prev=e,i?(t.__next=i,i.__prev=t):this.tail=t},PIXI.WebGLBatch.prototype.remove=function(t){return this.size--,0==this.size?(t.batch=null,t.__prev=null,t.__next=null,void 0):(t.__prev?t.__prev.__next=t.__next:(this.head=t.__next,this.head.__prev=null),t.__next?t.__next.__prev=t.__prev:(this.tail=t.__prev,this.tail.__next=null),t.batch=null,t.__next=null,t.__prev=null,this.dirty=!0,void 0)},PIXI.WebGLBatch.prototype.split=function(t){this.dirty=!0;var e=new PIXI.WebGLBatch(this.gl);e.init(t),e.tail=this.tail,this.tail=t.__prev,this.tail.__next=null,t.__prev=null;for(var i=0;t;)i++,t.batch=e,t=t.__next;return e.size=i,this.size-=i,e},PIXI.WebGLBatch.prototype.merge=function(t){this.dirty=!0,this.tail.__next=t.head,t.head.__prev=this.tail,this.size+=t.size,this.tail=t.tail;for(var e=t.head;e;)e.batch=this,e=e.__next},PIXI.WebGLBatch.prototype.growBatch=function(){var t=this.gl;this.dynamicSize=1==this.size?1:1.5*this.size,this.verticies=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.vertexBuffer),t.bufferData(t.ARRAY_BUFFER,this.verticies,t.DYNAMIC_DRAW),this.uvs=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.uvBuffer),t.bufferData(t.ARRAY_BUFFER,this.uvs,t.DYNAMIC_DRAW),this.dirtyUVS=!0,this.colors=new Float32Array(4*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.colorBuffer),t.bufferData(t.ARRAY_BUFFER,this.colors,t.DYNAMIC_DRAW),this.dirtyColors=!0,this.indices=new Uint16Array(6*this.dynamicSize);for(var e=this.indices.length/6,i=0;e>i;i++){var r=6*i,s=4*i;this.indices[r+0]=s+0,this.indices[r+1]=s+1,this.indices[r+2]=s+2,this.indices[r+3]=s+0,this.indices[r+4]=s+2,this.indices[r+5]=s+3}t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,this.indexBuffer),t.bufferData(t.ELEMENT_ARRAY_BUFFER,this.indices,t.STATIC_DRAW)},PIXI.WebGLBatch.prototype.refresh=function(){this.gl,this.dynamicSizei;i++)this.removeDisplayObjectAndChildren(this.toRemove[i]);this.toRemove=[],this.checkVisibility(this.root,this.root.visible);for(var r,i=0;this.batchs.length>i;i++)r=this.batchs[i],r instanceof PIXI.WebGLBatch?this.batchs[i].render():r instanceof PIXI.TilingSprite?r.visible&&this.renderTilingSprite(r,t):r instanceof PIXI.Strip&&r.visible&&this.renderStrip(r,t)},PIXI.WebGLRenderGroup.prototype.renderSpecific=function(t,e){var i=this.gl;this.checkVisibility(t,t.visible),i.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform,!1,e);var r,s,n,a,o=t.renderable?t:this.getNextRenderable(t),h=o.batch;if(o instanceof PIXI.Sprite){h=o.batch;var u=h.head;if(u==o)r=0;else for(r=1;u.__next!=o;)r++,u=u.__next}else h=o;for(var c,d=t,l=t;l.children.length>0;)l=l.children[l.children.length-1],l.renderable&&(d=l);if(d instanceof PIXI.Sprite){c=d.batch;var u=c.head;if(u==d)n=0;else for(n=1;u.__next!=d;)n++,u=u.__next}else c=d;if(h==c)return h instanceof PIXI.WebGLBatch?h.render(r,n+1):h instanceof PIXI.TilingSprite?h.visible&&this.renderTilingSprite(h,e):h instanceof PIXI.Strip?h.visible&&this.renderStrip(h,e):h instanceof PIXI.CustomRenderable&&h.visible&&h.renderWebGL(this,e),void 0;s=this.batchs.indexOf(h),a=this.batchs.indexOf(c),h instanceof PIXI.WebGLBatch?h.render(r):h instanceof PIXI.TilingSprite?h.visible&&this.renderTilingSprite(h,e):h instanceof PIXI.Strip?h.visible&&this.renderStrip(h,e):h instanceof PIXI.CustomRenderable&&h.visible&&h.renderWebGL(this,e);for(var I=s+1;a>I;I++)renderable=this.batchs[I],renderable instanceof PIXI.WebGLBatch?this.batchs[I].render():renderable instanceof PIXI.TilingSprite?renderable.visible&&this.renderTilingSprite(renderable,e):renderable instanceof PIXI.Strip?renderable.visible&&this.renderStrip(renderable,e):renderable instanceof PIXI.CustomRenderable&&renderable.visible&&renderable.renderWebGL(this,e);c instanceof PIXI.WebGLBatch?c.render(0,n+1):c instanceof PIXI.TilingSprite?c.visible&&this.renderTilingSprite(c):c instanceof PIXI.Strip?c.visible&&this.renderStrip(c):c instanceof PIXI.CustomRenderable&&c.visible&&c.renderWebGL(this,e)},PIXI.WebGLRenderGroup.prototype.checkVisibility=function(t,e){for(var i=t.children,r=0;i.length>r;r++){var s=i[r];s.worldVisible=s.visible&&e,s.textureChange&&(s.textureChange=!1,s.worldVisible&&(this.removeDisplayObject(s),this.addDisplayObject(s))),s.children.length>0&&this.checkVisibility(s,s.worldVisible)}},PIXI.WebGLRenderGroup.prototype.addDisplayObject=function(t){if(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.__renderGroup=this,t.renderable){var e=this.getPreviousRenderable(t),i=this.getNextRenderable(t);if(t instanceof PIXI.Sprite){var r,s;if(e instanceof PIXI.Sprite){if(r=e.batch,r&&r.texture==t.texture.baseTexture&&r.blendMode==t.blendMode)return r.insertAfter(t,e),void 0}else r=e;if(i)if(i instanceof PIXI.Sprite){if(s=i.batch){if(s.texture==t.texture.baseTexture&&s.blendMode==t.blendMode)return s.insertBefore(t,i),void 0;if(s==r){var n=r.split(i),a=PIXI.WebGLRenderer.getBatch(),o=this.batchs.indexOf(r);return a.init(t),this.batchs.splice(o+1,0,a,n),void 0}}}else s=i;var a=PIXI.WebGLRenderer.getBatch();if(a.init(t),r){var o=this.batchs.indexOf(r);this.batchs.splice(o+1,0,a)}else this.batchs.push(a)}else t instanceof PIXI.TilingSprite?(this.initTilingSprite(t),this.batchs.push(t)):t instanceof PIXI.Strip&&(this.initStrip(t),this.batchs.push(t));this.batchUpdate=!0}},PIXI.WebGLRenderGroup.prototype.addDisplayObjectAndChildren=function(t){this.addDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.addDisplayObjectAndChildren(e[i])},PIXI.WebGLRenderGroup.prototype.removeDisplayObject=function(t){if(t.__renderGroup=null,t.renderable){var e;if(t instanceof PIXI.Sprite){var i=t.batch;if(!i)return;i.remove(t),0==i.size&&(e=i)}else e=t;if(e){var r=this.batchs.indexOf(e);if(-1==r)return;if(0==r||r==this.batchs.length-1)return this.batchs.splice(r,1),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e),void 0;if(this.batchs[r-1]instanceof PIXI.WebGLBatch&&this.batchs[r+1]instanceof PIXI.WebGLBatch&&this.batchs[r-1].texture==this.batchs[r+1].texture&&this.batchs[r-1].blendMode==this.batchs[r+1].blendMode)return this.batchs[r-1].merge(this.batchs[r+1]),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e),PIXI.WebGLRenderer.returnBatch(this.batchs[r+1]),this.batchs.splice(r,2),void 0;this.batchs.splice(r,1),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e)}}},PIXI.WebGLRenderGroup.prototype.removeDisplayObjectAndChildren=function(t){if(t.__renderGroup==this){this.removeDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.removeDisplayObjectAndChildren(e[i])}},PIXI.WebGLRenderGroup.prototype.getNextRenderable=function(t){var e=t;do{if(0==e.children.length){if(!e.parent)return null;for(;e.childIndex==e.parent.children.length-1;)if(e=e.parent,e==this.root){e=null;break}e&&(e=e.parent.children[e.childIndex+1])}else e=e.children[0];if(!e)break}while(!e.renderable||!e.__renderGroup);return e},PIXI.WebGLRenderGroup.prototype.getPreviousRenderable=function(t){var e=t;do{if(0==e.childIndex){if(e=e.parent,!e)return null}else for(e=e.parent.children[e.childIndex-1];0!=e.children.length;)e=e.children[e.children.length-1];if(e==this.root)break}while(!e.renderable||!e.__renderGroup);return e},PIXI.WebGLRenderGroup.prototype.initTilingSprite=function(t){var e=this.gl;t.verticies=new Float32Array([0,0,t.width,0,t.width,t.height,0,t.height]),t.uvs=new Float32Array([0,0,1,0,1,1,0,1]),t.colors=new Float32Array([1,1,1,1]),t.indices=new Uint16Array([0,1,3,2]),t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW),t.texture.baseTexture._glTexture?(e.bindTexture(e.TEXTURE_2D,t.texture.baseTexture._glTexture),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT),t.texture.baseTexture._powerOf2=!0):t.texture.baseTexture._powerOf2=!0},PIXI.WebGLRenderGroup.prototype.renderStrip=function(t,e){var i=this.gl,r=PIXI.shaderProgram,s=PIXI.mat3.toMat4(t.worldTransform);PIXI.mat4.transpose(s),PIXI.mat4.multiply(e,s,s),i.uniformMatrix4fv(r.mvMatrixUniform,!1,s),t.blendMode==PIXI.blendModes.NORMAL?i.blendFunc(i.ONE,i.ONE_MINUS_SRC_ALPHA):i.blendFunc(i.ONE,i.ONE_MINUS_SRC_COLOR),t.dirty?(t.dirty=!1,i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferData(i.ARRAY_BUFFER,t.verticies,i.STATIC_DRAW),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferData(i.ARRAY_BUFFER,t.uvs,i.STATIC_DRAW),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.bufferData(i.ARRAY_BUFFER,t.colors,i.STATIC_DRAW),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer),i.bufferData(i.ELEMENT_ARRAY_BUFFER,t.indices,i.STATIC_DRAW)):(i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.verticies),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer)),i.drawElements(i.TRIANGLE_STRIP,t.indices.length,i.UNSIGNED_SHORT,0),i.uniformMatrix4fv(r.mvMatrixUniform,!1,e)},PIXI.WebGLRenderGroup.prototype.renderTilingSprite=function(t,e){var i=this.gl;PIXI.shaderProgram;var r=t.tilePosition,s=t.tileScale,n=r.x/t.texture.baseTexture.width,a=r.y/t.texture.baseTexture.height,o=t.width/t.texture.baseTexture.width/s.x,h=t.height/t.texture.baseTexture.height/s.y;t.uvs[0]=0-n,t.uvs[1]=0-a,t.uvs[2]=1*o-n,t.uvs[3]=0-a,t.uvs[4]=1*o-n,t.uvs[5]=1*h-a,t.uvs[6]=0-n,t.uvs[7]=1*h-a,i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.uvs),this.renderStrip(t,e)},PIXI.WebGLRenderer.prototype.initStrip=function(t){var e=this.gl;this.shaderProgram,t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW)},PIXI.CanvasRenderer=function(t,e,i,r){this.transparent=r,this.width=t||800,this.height=e||600,this.refresh=!0,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height,this.count=0,this.context=this.view.getContext("2d")},PIXI.CanvasRenderer.constructor=PIXI.CanvasRenderer,PIXI.CanvasRenderer.prototype.render=function(t){PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[],t.updateTransform(),this.view.style.backgroundColor==t.backgroundColorString||this.transparent||(this.view.style.backgroundColor=t.backgroundColorString),this.context.setTransform(1,0,0,1,0,0),this.context.clearRect(0,0,this.width,this.height),this.renderDisplayObject(t),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),PIXI.Texture.frameUpdates.length>0&&(PIXI.Texture.frameUpdates=[])},PIXI.CanvasRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e},PIXI.CanvasRenderer.prototype.renderDisplayObject=function(t){var e=t.worldTransform,i=this.context;if(t.visible){if(t instanceof PIXI.Sprite){var r=t.texture.frame;r&&(i.globalAlpha=t.worldAlpha,i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),i.drawImage(t.texture.baseTexture.source,r.x,r.y,r.width,r.height,t.anchor.x*-r.width,t.anchor.y*-r.height,r.width,r.height))}else t instanceof PIXI.Strip?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderStrip(t)):t instanceof PIXI.TilingSprite?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderTilingSprite(t)):t instanceof PIXI.CustomRenderable&&t.renderCanvas(this);for(var s=0;t.children.length>s;s++)this.renderDisplayObject(t.children[s]);this.context.setTransform(1,0,0,1,0,0)}},PIXI.CanvasRenderer.prototype.renderStripFlat=function(t){var e=this.context,i=t.verticies;t.uvs;var r=i.length/2;this.count++,e.beginPath();for(var s=1;r-2>s;s++){var n=2*s,a=i[n],o=i[n+2],h=i[n+4],u=i[n+1],c=i[n+3],d=i[n+5];e.moveTo(a,u),e.lineTo(o,c),e.lineTo(h,d)}e.fillStyle="#FF0000",e.fill(),e.closePath()},PIXI.CanvasRenderer.prototype.renderTilingSprite=function(t){var e=this.context;t.__tilePattern||(t.__tilePattern=e.createPattern(t.texture.baseTexture.source,"repeat")),e.beginPath();var i=t.tilePosition,r=t.tileScale;e.scale(r.x,r.y),e.translate(i.x,i.y),e.fillStyle=t.__tilePattern,e.fillRect(-i.x,-i.y,t.width/r.x,t.height/r.y),e.scale(1/r.x,1/r.y),e.translate(-i.x,-i.y),e.closePath()},PIXI.CanvasRenderer.prototype.renderStrip=function(t){var e=this.context,i=t.verticies,r=t.uvs,s=i.length/2;this.count++;for(var n=1;s-2>n;n++){var a=2*n,o=i[a],h=i[a+2],u=i[a+4],c=i[a+1],d=i[a+3],l=i[a+5],I=r[a]*t.texture.width,p=r[a+2]*t.texture.width,f=r[a+4]*t.texture.width,x=r[a+1]*t.texture.height,v=r[a+3]*t.texture.height,P=r[a+5]*t.texture.height;e.save(),e.beginPath(),e.moveTo(o,c),e.lineTo(h,d),e.lineTo(u,l),e.closePath(),e.clip();var g=I*v+x*f+p*P-v*f-x*p-I*P,b=o*v+x*u+h*P-v*u-x*h-o*P,X=I*h+o*f+p*u-h*f-o*p-I*u,m=I*v*u+x*h*f+o*p*P-o*v*f-x*p*u-I*h*P,T=c*v+x*l+d*P-v*l-x*d-c*P,y=I*d+c*f+p*l-d*f-c*p-I*l,_=I*v*l+x*d*f+c*p*P-c*v*f-x*p*l-I*d*P;e.transform(b/g,T/g,X/g,y/g,m/g,_/g),e.drawImage(t.texture.baseTexture.source,0,0),e.restore()}},PIXI.Strip=function(t,e,i){PIXI.DisplayObjectContainer.call(this),this.texture=t,this.blendMode=PIXI.blendModes.NORMAL;try{this.uvs=new Float32Array([0,1,1,1,1,0,0,1]),this.verticies=new Float32Array([0,0,0,0,0,0,0,0,0]),this.colors=new Float32Array([1,1,1,1]),this.indices=new Uint16Array([0,1,2,3])}catch(r){this.uvs=[0,1,1,1,1,0,0,1],this.verticies=[0,0,0,0,0,0,0,0,0],this.colors=[1,1,1,1],this.indices=[0,1,2,3]}this.width=e,this.height=i,t.baseTexture.hasLoaded?(this.width=this.texture.frame.width,this.height=this.texture.frame.height,this.updateFrame=!0):(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},PIXI.Strip.constructor=PIXI.Strip,PIXI.Strip.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Strip.prototype.setTexture=function(t){this.texture=t,this.width=t.frame.width,this.height=t.frame.height,this.updateFrame=!0},PIXI.Strip.prototype.onTextureUpdate=function(){this.updateFrame=!0},PIXI.Rope=function(t,e){PIXI.Strip.call(this,t),this.points=e;try{this.verticies=new Float32Array(4*e.length),this.uvs=new Float32Array(4*e.length),this.colors=new Float32Array(2*e.length),this.indices=new Uint16Array(2*e.length)}catch(i){this.verticies=verticies,this.uvs=uvs,this.colors=colors,this.indices=indices}this.refresh()},PIXI.Rope.constructor=PIXI.Rope,PIXI.Rope.prototype=Object.create(PIXI.Strip.prototype),PIXI.Rope.prototype.refresh=function(){var t=this.points;if(!(1>t.length)){var e=this.uvs,i=this.indices,r=this.colors,s=t[0],n=t[0];this.count-=.2,e[0]=0,e[1]=1,e[2]=0,e[3]=1,r[0]=1,r[1]=1,i[0]=0,i[1]=1;for(var a=t.length,o=1;a>o;o++){var n=t[o],h=4*o,u=o/(a-1);o%2?(e[h]=u,e[h+1]=0,e[h+2]=u,e[h+3]=1):(e[h]=u,e[h+1]=0,e[h+2]=u,e[h+3]=1),h=2*o,r[h]=1,r[h+1]=1,h=2*o,i[h]=h,i[h+1]=h+1,s=n}}},PIXI.Rope.prototype.updateTransform=function(){var t=this.points;if(!(1>t.length)){var e,i=this.verticies,r=t[0],s={x:0,y:0},n=t[0];this.count-=.2,i[0]=n.x+s.x,i[1]=n.y+s.y,i[2]=n.x-s.x,i[3]=n.y-s.y;for(var a=t.length,o=1;a>o;o++){var n=t[o],h=4*o;e=t.length-1>o?t[o+1]:n,s.y=-(e.x-r.x),s.x=e.y-r.y;var u=10*(1-o/(a-1));u>1&&(u=1);var c=Math.sqrt(s.x*s.x+s.y*s.y),d=this.texture.height/2;s.x/=c,s.y/=c,s.x*=d,s.y*=d,i[h]=n.x+s.x,i[h+1]=n.y+s.y,i[h+2]=n.x-s.x,i[h+3]=n.y-s.y,r=n}PIXI.DisplayObjectContainer.prototype.updateTransform.call(this)}},PIXI.Rope.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0},PIXI.TilingSprite=function(t,e,i){PIXI.DisplayObjectContainer.call(this),this.texture=t,this.width=e,this.height=i,this.renderable=!0,this.tileScale=new PIXI.Point(1,1),this.tilePosition=new PIXI.Point(0,0),this.blendMode=PIXI.blendModes.NORMAL},PIXI.TilingSprite.constructor=PIXI.TilingSprite,PIXI.TilingSprite.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.TilingSprite.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0},PIXI.TilingSprite.prototype.onTextureUpdate=function(){this.updateFrame=!0},PIXI.CustomRenderable=function(){PIXI.DisplayObject.call(this)},PIXI.CustomRenderable.constructor=PIXI.CustomRenderable,PIXI.CustomRenderable.prototype=Object.create(PIXI.DisplayObject.prototype),PIXI.CustomRenderable.prototype.renderCanvas=function(){},PIXI.CustomRenderable.prototype.initWebGL=function(){},PIXI.CustomRenderable.prototype.renderWebGL=function(){},PIXI.BaseTextureCache={},PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[],PIXI.BaseTexture=function(t){if(PIXI.EventTarget.call(this),this.width=100,this.height=100,this.source=t,t){if(this.source instanceof Image)if(this.source.complete)this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,PIXI.texturesToUpdate.push(this);else{var e=this;this.source.onload=function(){e.hasLoaded=!0,e.width=e.source.width,e.height=e.source.height,PIXI.texturesToUpdate.push(e),e.dispatchEvent({type:"loaded",content:e})}}else this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,PIXI.texturesToUpdate.push(this);this._powerOf2=!1}},PIXI.BaseTexture.constructor=PIXI.BaseTexture,PIXI.BaseTexture.prototype.destroy=function(){this.source instanceof Image&&(this.source.src=null),this.source=null,PIXI.texturesToDestroy.push(this)},PIXI.BaseTexture.fromImage=function(t,e){var i=PIXI.BaseTextureCache[t];if(!i){var r=new Image;e&&(r.crossOrigin=""),r.src=t,i=new PIXI.BaseTexture(r),PIXI.BaseTextureCache[t]=i}return i},PIXI.TextureCache={},PIXI.FrameCache={},PIXI.Texture=function(t,e){if(PIXI.EventTarget.call(this),e||(this.noFrame=!0,e=new PIXI.Rectangle(0,0,1,1)),this.trim=new PIXI.Point,t instanceof PIXI.Texture&&(t=t.baseTexture),this.baseTexture=t,this.frame=e,this.scope=this,t.hasLoaded)this.noFrame&&(e=new PIXI.Rectangle(0,0,t.width,t.height)),this.setFrame(e);else{var i=this;t.addEventListener("loaded",function(){i.onBaseTextureLoaded()})}},PIXI.Texture.constructor=PIXI.Texture,PIXI.Texture.prototype.onBaseTextureLoaded=function(){var t=this.baseTexture;t.removeEventListener("loaded",this.onLoaded),this.noFrame&&(this.frame=new PIXI.Rectangle(0,0,t.width,t.height)),this.noFrame=!1,this.width=this.frame.width,this.height=this.frame.height,this.scope.dispatchEvent({type:"update",content:this})},PIXI.Texture.prototype.destroy=function(t){t&&this.baseTexture.destroy()},PIXI.Texture.prototype.setFrame=function(t){if(this.frame=t,this.width=t.width,this.height=t.height,t.x+t.width>this.baseTexture.width||t.y+t.height>this.baseTexture.height)throw Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);this.updateFrame=!0,PIXI.Texture.frameUpdates.push(this)},PIXI.Texture.fromImage=function(t,e){var i=PIXI.TextureCache[t];return i||(i=new PIXI.Texture(PIXI.BaseTexture.fromImage(t,e)),PIXI.TextureCache[t]=i),i},PIXI.Texture.fromFrame=function(t){var e=PIXI.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache "+this);return e},PIXI.Texture.fromCanvas=function(t){var e=new PIXI.BaseTexture(t);return new PIXI.Texture(e)},PIXI.Texture.addTextureToCache=function(t,e){PIXI.TextureCache[e]=t},PIXI.Texture.removeTextureFromCache=function(t){var e=PIXI.TextureCache[t];return PIXI.TextureCache[t]=null,e},PIXI.Texture.frameUpdates=[],PIXI.RenderTexture=function(t,e){PIXI.EventTarget.call(this),this.width=t||100,this.height=e||100,this.indetityMatrix=PIXI.mat3.create(),this.frame=new PIXI.Rectangle(0,0,this.width,this.height),PIXI.gl?this.initWebGL():this.initCanvas()},PIXI.RenderTexture.constructor=PIXI.RenderTexture,PIXI.RenderTexture.prototype=Object.create(PIXI.Texture.prototype),PIXI.RenderTexture.prototype.initWebGL=function(){var t=PIXI.gl;this.glFramebuffer=t.createFramebuffer(),t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),this.glFramebuffer.width=this.width,this.glFramebuffer.height=this.height,this.baseTexture=new PIXI.BaseTexture,this.baseTexture.width=this.width,this.baseTexture.height=this.height,this.baseTexture._glTexture=t.createTexture(),t.bindTexture(t.TEXTURE_2D,this.baseTexture._glTexture),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,this.width,this.height,0,t.RGBA,t.UNSIGNED_BYTE,null),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),this.baseTexture.isRender=!0,t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,this.baseTexture._glTexture,0),this.projectionMatrix=PIXI.mat4.create(),this.projectionMatrix[5]=2/this.height,this.projectionMatrix[13]=-1,this.projectionMatrix[0]=2/this.width,this.projectionMatrix[12]=-1,this.render=this.renderWebGL},PIXI.RenderTexture.prototype.initCanvas=function(){this.renderer=new PIXI.CanvasRenderer(this.width,this.height,null,0),this.baseTexture=new PIXI.BaseTexture(this.renderer.view),this.frame=new PIXI.Rectangle(0,0,this.width,this.height),this.render=this.renderCanvas},PIXI.RenderTexture.prototype.renderWebGL=function(t,e){var i=PIXI.gl;i.colorMask(!0,!0,!0,!0),i.viewport(0,0,this.width,this.height),i.bindFramebuffer(i.FRAMEBUFFER,this.glFramebuffer),e&&(i.clearColor(0,0,0,0),i.clear(i.COLOR_BUFFER_BIT));var r=t.children;t.worldTransform=PIXI.mat3.create();for(var s=0,n=r.length;n>s;s++)r[s].updateTransform();var a=t.__renderGroup;a?t==a.root?a.render(this.projectionMatrix):a.renderSpecific(t,this.projectionMatrix):(this.renderGroup||(this.renderGroup=new PIXI.WebGLRenderGroup(i)),this.renderGroup.setRenderable(t),this.renderGroup.render(this.projectionMatrix))},PIXI.RenderTexture.prototype.renderCanvas=function(t,e){var i=t.children;t.worldTransform=PIXI.mat3.create();for(var r=0,s=i.length;s>r;r++)i[r].updateTransform();e&&this.renderer.context.clearRect(0,0,this.width,this.height),this.renderer.renderDisplayObject(t),PIXI.texturesToUpdate.push(this.baseTexture)},PIXI.AssetLoader=function(t){PIXI.EventTarget.call(this),this.assetURLs=t,this.crossorigin=!1,this.loadersByType={jpg:PIXI.ImageLoader,jpeg:PIXI.ImageLoader,png:PIXI.ImageLoader,gif:PIXI.ImageLoader,json:PIXI.SpriteSheetLoader,xml:PIXI.BitmapFontLoader,fnt:PIXI.BitmapFontLoader}},PIXI.AssetLoader.constructor=PIXI.AssetLoader,PIXI.AssetLoader.prototype.load=function(){var t=this;this.loadCount=this.assetURLs.length;for(var e=0;this.assetURLs.length>e;e++){var i=this.assetURLs[e],r=i.split(".").pop().toLowerCase(),s=this.loadersByType[r];if(!s)throw Error(r+" is an unsupported file type");var n=new s(i,this.crossorigin);n.addEventListener("loaded",function(){t.onAssetLoaded()}),n.load()}},PIXI.AssetLoader.prototype.onAssetLoaded=function(){this.loadCount--,this.dispatchEvent({type:"onProgress",content:this}),this.onProgress&&this.onProgress(),0==this.loadCount&&(this.dispatchEvent({type:"onComplete",content:this}),this.onComplete&&this.onComplete())},PIXI.SpriteSheetLoader=function(t,e){PIXI.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.frames={},this.crossorigin=e},PIXI.SpriteSheetLoader.constructor=PIXI.SpriteSheetLoader,PIXI.SpriteSheetLoader.prototype.load=function(){this.ajaxRequest=new AjaxRequest;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onJSONLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/json"),this.ajaxRequest.send(null)},PIXI.SpriteSheetLoader.prototype.onJSONLoaded=function(){if(4==this.ajaxRequest.readyState&&(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))){var jsonData=eval("("+this.ajaxRequest.responseText+")"),textureUrl=this.baseUrl+jsonData.meta.image,image=new PIXI.ImageLoader(textureUrl,this.crossorigin);this.texture=image.texture.baseTexture;var scope=this;image.addEventListener("loaded",function(){scope.onLoaded()});var frameData=jsonData.frames;for(var i in frameData){var rect=frameData[i].frame;rect&&(PIXI.TextureCache[i]=new PIXI.Texture(this.texture,{x:rect.x,y:rect.y,width:rect.w,height:rect.h}),frameData[i].trimmed&&(PIXI.TextureCache[i].realSize=frameData[i].spriteSourceSize,PIXI.TextureCache[i].trim.x=0))}image.load()}},PIXI.SpriteSheetLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},PIXI.ImageLoader=function(t,e){PIXI.EventTarget.call(this),this.texture=PIXI.Texture.fromImage(t,e)},PIXI.ImageLoader.constructor=PIXI.ImageLoader,PIXI.ImageLoader.prototype.load=function(){if(this.texture.baseTexture.hasLoaded)this.onLoaded();else{var t=this;this.texture.baseTexture.addEventListener("loaded",function(){t.onLoaded()})}},PIXI.ImageLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},PIXI.BitmapFontLoader=function(t,e){PIXI.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.crossorigin=e},PIXI.BitmapFontLoader.constructor=PIXI.BitmapFontLoader,PIXI.BitmapFontLoader.prototype.load=function(){this.ajaxRequest=new XMLHttpRequest;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onXMLLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/xml"),this.ajaxRequest.send(null)},PIXI.BitmapFontLoader.prototype.onXMLLoaded=function(){if(4==this.ajaxRequest.readyState&&(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))){var t=this.baseUrl+this.ajaxRequest.responseXML.getElementsByTagName("page")[0].attributes.getNamedItem("file").nodeValue,e=new PIXI.ImageLoader(t,this.crossorigin);this.texture=e.texture.baseTexture;var i={},r=this.ajaxRequest.responseXML.getElementsByTagName("info")[0],s=this.ajaxRequest.responseXML.getElementsByTagName("common")[0];i.font=r.attributes.getNamedItem("face").nodeValue,i.size=parseInt(r.attributes.getNamedItem("size").nodeValue,10),i.lineHeight=parseInt(s.attributes.getNamedItem("lineHeight").nodeValue,10),i.chars={};for(var n=this.ajaxRequest.responseXML.getElementsByTagName("char"),a=0;n.length>a;a++){var o=parseInt(n[a].attributes.getNamedItem("id").nodeValue,10),h={x:parseInt(n[a].attributes.getNamedItem("x").nodeValue,10),y:parseInt(n[a].attributes.getNamedItem("y").nodeValue,10),width:parseInt(n[a].attributes.getNamedItem("width").nodeValue,10),height:parseInt(n[a].attributes.getNamedItem("height").nodeValue,10)};PIXI.TextureCache[o]=new PIXI.Texture(this.texture,h),i.chars[o]={xOffset:parseInt(n[a].attributes.getNamedItem("xoffset").nodeValue,10),yOffset:parseInt(n[a].attributes.getNamedItem("yoffset").nodeValue,10),xAdvance:parseInt(n[a].attributes.getNamedItem("xadvance").nodeValue,10),kerning:{}}}var u=this.ajaxRequest.responseXML.getElementsByTagName("kerning");for(a=0;u.length>a;a++){var c=parseInt(u[a].attributes.getNamedItem("first").nodeValue,10),d=parseInt(u[a].attributes.getNamedItem("second").nodeValue,10),l=parseInt(u[a].attributes.getNamedItem("amount").nodeValue,10);i.chars[d].kerning[c]=l}PIXI.BitmapText.fonts[i.font]=i;var I=this;e.addEventListener("loaded",function(){I.onLoaded()}),e.load()}},PIXI.BitmapFontLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=PIXI),exports.PIXI=PIXI):root.PIXI=PIXI}).call(this); \ No newline at end of file +(function(){function HEXtoRGB(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}function determineMatrixArrayType(){return PIXI.Matrix="undefined"!=typeof Float32Array?Float32Array:Array,PIXI.Matrix}var root=this,PIXI=PIXI||{};PIXI.Point=function(t,e){this.x=t||0,this.y=e||0},PIXI.Point.prototype.clone=function(){return new PIXI.Point(this.x,this.y)},PIXI.Point.constructor=PIXI.Point,PIXI.Rectangle=function(t,e,i,r){this.x=t||0,this.y=e||0,this.width=i||0,this.height=r||0},PIXI.Rectangle.prototype.clone=function(){return new PIXI.Rectangle(this.x,this.y,this.width,this.height)},PIXI.Rectangle.constructor=PIXI.Rectangle,PIXI.DisplayObject=function(){this.position=new PIXI.Point,this.scale=new PIXI.Point(1,1),this.pivot=new PIXI.Point(0,0),this.rotation=0,this.alpha=1,this.visible=!0,this.worldVisible=!1,this.parent=null,this.stage=null,this.hitArea=null,this.worldAlpha=1,this.color=[],this.worldTransform=PIXI.mat3.create(),this.localTransform=PIXI.mat3.create(),this.dynamic=!0,this._sr=0,this._cr=1,this.childIndex=0,this.renderable=!1,this.interactive=!1,this.buttonMode=!1},PIXI.DisplayObject.constructor=PIXI.DisplayObject,PIXI.DisplayObject.prototype.setInteractive=function(t){this.interactive=t,this.stage&&(this.stage.dirty=!0)},PIXI.DisplayObject.prototype.updateTransform=function(){this.rotation!=this.rotationCache&&(this.rotationCache=this.rotation,this._sr=Math.sin(this.rotation),this._cr=Math.cos(this.rotation));var t=this.localTransform,e=this.parent.worldTransform,i=this.worldTransform;t[0]=this._cr*this.scale.x,t[1]=-this._sr*this.scale.y,t[3]=this._sr*this.scale.x,t[4]=this._cr*this.scale.y;var r=this.pivot.x,s=this.pivot.y;t[2]=this.position.x-t[0]*r-s*t[1],t[5]=this.position.y-t[4]*s-r*t[3];var n=t[0],a=t[1],o=t[2],h=t[3],u=t[4],d=t[5],c=e[0],l=e[1],I=e[2],p=e[3],f=e[4],x=e[5];i[0]=c*n+l*h,i[1]=c*a+l*u,i[2]=c*o+l*d+I,i[3]=p*n+f*h,i[4]=p*a+f*u,i[5]=p*o+f*d+x,this.worldAlpha=this.alpha*this.parent.worldAlpha},PIXI.DisplayObjectContainer=function(){PIXI.DisplayObject.call(this),this.children=[],this.renderable=!1},PIXI.DisplayObjectContainer.constructor=PIXI.DisplayObjectContainer,PIXI.DisplayObjectContainer.prototype=Object.create(PIXI.DisplayObject.prototype),PIXI.DisplayObjectContainer.prototype.addChild=function(t){void 0!=t.parent&&t.parent.removeChild(t),t.parent=this,t.childIndex=this.children.length,this.children.push(t),this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},PIXI.DisplayObjectContainer.prototype.addChildAt=function(t,e){if(!(e>=0&&this.children.length>=e))throw Error(t+" The index "+e+" supplied is out of bounds "+this.children.length);void 0!=t.parent&&t.parent.removeChild(t),e==this.children.length?this.children.push(t):this.children.splice(e,0,t),t.parent=this,t.childIndex=e;for(var i=this.children.length,r=e;i>r;r++)this.children[r].childIndex=r;this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},PIXI.DisplayObjectContainer.prototype.swapChildren=function(t,e){var i=this.children.indexOf(t),r=this.children.indexOf(e);if(-1===i||-1===r)throw Error(t+" Both the supplied DisplayObjects must be a child of the caller "+this);this.stage&&(this.stage.__removeChild(t),this.stage.__removeChild(e),this.stage.__addChild(t),this.stage.__addChild(e)),t.childIndex=r,e.childIndex=i,this.children[i]=e,this.children[r]=t},PIXI.DisplayObjectContainer.prototype.getChildAt=function(t){if(t>=0&&this.children.length>t)return this.children[t];throw Error(child+" Both the supplied DisplayObjects must be a child of the caller "+this)},PIXI.DisplayObjectContainer.prototype.removeChild=function(t){var e=this.children.indexOf(t);if(-1===e)throw Error(t+" The supplied DisplayObject must be a child of the caller "+this);this.stage&&this.stage.__removeChild(t),t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.parent=void 0,this.children.splice(e,1);for(var i=e,r=this.children.length;r>i;i++)this.children[i].childIndex-=1},PIXI.DisplayObjectContainer.prototype.updateTransform=function(){if(this.visible){PIXI.DisplayObject.prototype.updateTransform.call(this);for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform()}},PIXI.blendModes={},PIXI.blendModes.NORMAL=0,PIXI.blendModes.SCREEN=1,PIXI.Sprite=function(t){PIXI.DisplayObjectContainer.call(this),this.anchor=new PIXI.Point,this.texture=t,this.blendMode=PIXI.blendModes.NORMAL,this._width=0,this._height=0,t.baseTexture.hasLoaded?this.updateFrame=!0:(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},PIXI.Sprite.constructor=PIXI.Sprite,PIXI.Sprite.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),Object.defineProperty(PIXI.Sprite.prototype,"width",{get:function(){return this.scale.x*this.texture.frame.width},set:function(t){this.scale.x=t/this.texture.frame.width,this._width=t}}),Object.defineProperty(PIXI.Sprite.prototype,"height",{get:function(){return this.scale.y*this.texture.frame.height},set:function(t){this.scale.y=t/this.texture.frame.height,this._height=t}}),PIXI.Sprite.prototype.setTexture=function(t){this.texture.baseTexture!=t.baseTexture&&(this.textureChange=!0),this.texture=t,this.updateFrame=!0},PIXI.Sprite.prototype.onTextureUpdate=function(){this._width&&(this.scale.x=this._width/this.texture.frame.width),this._height&&(this.scale.y=this._height/this.texture.frame.height),this.updateFrame=!0},PIXI.Sprite.fromFrame=function(t){var e=PIXI.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache"+this);return new PIXI.Sprite(e)},PIXI.Sprite.fromImage=function(t){var e=PIXI.Texture.fromImage(t);return new PIXI.Sprite(e)},PIXI.MovieClip=function(t){PIXI.Sprite.call(this,t[0]),this.textures=t,this.currentFrame=0,this.animationSpeed=1,this.loop=!0,this.onComplete=null,this.playing},PIXI.MovieClip.constructor=PIXI.MovieClip,PIXI.MovieClip.prototype=Object.create(PIXI.Sprite.prototype),PIXI.MovieClip.prototype.stop=function(){this.playing=!1},PIXI.MovieClip.prototype.play=function(){this.playing=!0},PIXI.MovieClip.prototype.gotoAndStop=function(t){this.playing=!1,this.currentFrame=t;var e=0|this.currentFrame+.5;this.setTexture(this.textures[e%this.textures.length])},PIXI.MovieClip.prototype.gotoAndPlay=function(t){this.currentFrame=t,this.playing=!0},PIXI.MovieClip.prototype.updateTransform=function(){if(PIXI.Sprite.prototype.updateTransform.call(this),this.playing){this.currentFrame+=this.animationSpeed;var t=0|this.currentFrame+.5;this.loop||this.textures.length>t?this.setTexture(this.textures[t%this.textures.length]):t>=this.textures.length&&(this.gotoAndStop(this.textures.length-1),this.onComplete&&this.onComplete())}},PIXI.Text=function(t,e){this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"),PIXI.Sprite.call(this,PIXI.Texture.fromCanvas(this.canvas)),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},PIXI.Text.constructor=PIXI.Text,PIXI.Text.prototype=Object.create(PIXI.Sprite.prototype),PIXI.Text.prototype.setStyle=function(t){t=t||{},t.font=t.font||"bold 20pt Arial",t.fill=t.fill||"black",t.align=t.align||"left",t.strokeThickness=t.strokeThickness||0,this.style=t,this.dirty=!0},PIXI.Sprite.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},PIXI.Text.prototype.updateText=function(){this.context.font=this.style.font;for(var t=this.text.split(/(?:\r\n|\r|\n)/),e=[],i=0,r=0;t.length>r;r++){var s=this.context.measureText(t[r]).width;e[r]=s,i=Math.max(i,s)}this.canvas.width=i+this.style.strokeThickness;var n=this.determineFontHeight("font: "+this.style.font+";")+this.style.strokeThickness;for(this.canvas.height=n*t.length,this.context.fillStyle=this.style.fill,this.context.font=this.style.font,this.context.strokeStyle=this.style.stroke,this.context.lineWidth=this.style.strokeThickness,this.context.textBaseline="top",r=0;t.length>r;r++){var a=new PIXI.Point(this.style.strokeThickness/2,this.style.strokeThickness/2+r*n);"right"==this.style.align?a.x+=i-e[r]:"center"==this.style.align&&(a.x+=(i-e[r])/2),this.style.stroke&&this.style.strokeThickness&&this.context.strokeText(t[r],a.x,a.y),this.style.fill&&this.context.fillText(t[r],a.x,a.y)}this.updateTexture()},PIXI.Text.prototype.updateTexture=function(){this.texture.baseTexture.width=this.canvas.width,this.texture.baseTexture.height=this.canvas.height,this.texture.frame.width=this.canvas.width,this.texture.frame.height=this.canvas.height,this._width=this.canvas.width,this._height=this.canvas.height,PIXI.texturesToUpdate.push(this.texture.baseTexture)},PIXI.Text.prototype.updateTransform=function(){this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype.updateTransform.call(this)},PIXI.Text.prototype.determineFontHeight=function(t){var e=PIXI.Text.heightCache[t];if(!e){var i=document.getElementsByTagName("body")[0],r=document.createElement("div"),s=document.createTextNode("M");r.appendChild(s),r.setAttribute("style",t),i.appendChild(r),e=r.offsetHeight,PIXI.Text.heightCache[t]=e,i.removeChild(r)}return e},PIXI.Text.prototype.destroy=function(t){t&&this.texture.destroy()},PIXI.Text.heightCache={},PIXI.BitmapText=function(t,e){PIXI.DisplayObjectContainer.call(this),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},PIXI.BitmapText.constructor=PIXI.BitmapText,PIXI.BitmapText.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.BitmapText.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},PIXI.BitmapText.prototype.setStyle=function(t){t=t||{},t.align=t.align||"left",this.style=t;var e=t.font.split(" ");this.fontName=e[e.length-1],this.fontSize=e.length>=2?parseInt(e[e.length-2],10):PIXI.BitmapText.fonts[this.fontName].size,this.dirty=!0},PIXI.BitmapText.prototype.updateText=function(){for(var t=PIXI.BitmapText.fonts[this.fontName],e=new PIXI.Point,i=null,r=[],s=0,n=[],a=0,o=this.fontSize/t.size,h=0;this.text.length>h;h++){var u=this.text.charCodeAt(h);if(/(?:\r\n|\r|\n)/.test(this.text.charAt(h)))n.push(e.x),s=Math.max(s,e.x),a++,e.x=0,e.y+=t.lineHeight,i=null;else{var d=t.chars[u];d&&(i&&d[i]&&(e.x+=d.kerning[i]),r.push({line:a,charCode:u,position:new PIXI.Point(e.x+d.xOffset,e.y+d.yOffset)}),e.x+=d.xAdvance,i=u)}}n.push(e.x),s=Math.max(s,e.x);var c=[];for(h=0;a>=h;h++){var l=0;"right"==this.style.align?l=s-n[h]:"center"==this.style.align&&(l=(s-n[h])/2),c.push(l)}for(h=0;r.length>h;h++){var I=PIXI.Sprite.fromFrame(r[h].charCode);I.position.x=(r[h].position.x+c[r[h].line])*o,I.position.y=r[h].position.y*o,I.scale.x=I.scale.y=o,this.addChild(I)}this.width=e.x*o,this.height=(e.y+t.lineHeight)*o},PIXI.BitmapText.prototype.updateTransform=function(){if(this.dirty){for(;this.children.length>0;)this.removeChild(this.getChildAt(0));this.updateText(),this.dirty=!1}PIXI.DisplayObjectContainer.prototype.updateTransform.call(this)},PIXI.BitmapText.fonts={},PIXI.InteractionManager=function(t){this.stage=t,this.tempPoint=new PIXI.Point,this.mouseoverEnabled=!0,this.mouse=new PIXI.InteractionData,this.touchs={},this.pool=[],this.interactiveItems=[],this.last=0},PIXI.InteractionManager.constructor=PIXI.InteractionManager,PIXI.InteractionManager.prototype.collectInteractiveSprite=function(t,e){for(var i=t.children,r=i.length,s=r-1;s>=0;s--){var n=i[s];n.interactive?(e.interactiveChildren=!0,this.interactiveItems.push(n),n.children.length>0&&this.collectInteractiveSprite(n,n)):(n.__iParent=null,n.children.length>0&&this.collectInteractiveSprite(n,e))}},PIXI.InteractionManager.prototype.setTarget=function(t){window.navigator.msPointerEnabled&&(t.view.style["-ms-content-zooming"]="none",t.view.style["-ms-touch-action"]="none"),this.target=t,t.view.addEventListener("mousemove",this.onMouseMove.bind(this),!0),t.view.addEventListener("mousedown",this.onMouseDown.bind(this),!0),document.body.addEventListener("mouseup",this.onMouseUp.bind(this),!0),t.view.addEventListener("mouseout",this.onMouseUp.bind(this),!0),t.view.addEventListener("touchstart",this.onTouchStart.bind(this),!0),t.view.addEventListener("touchend",this.onTouchEnd.bind(this),!0),t.view.addEventListener("touchmove",this.onTouchMove.bind(this),!0)},PIXI.InteractionManager.prototype.update=function(){if(this.target){var t=Date.now(),e=t-this.last;if(e=30*e/1e3,!(1>e)){if(this.last=t,this.dirty){this.dirty=!1,this.interactiveItems.length;for(var i=0;this.interactiveItems.length>i;i++)this.interactiveItems[i].interactiveChildren=!1;this.interactiveItems=[],this.stage.interactive&&this.interactiveItems.push(this.stage),this.collectInteractiveSprite(this.stage,this.stage)}var r=this.interactiveItems.length;this.target.view.style.cursor="default";for(var i=0;r>i;i++){var s=this.interactiveItems[i];s.visible&&(s.mouseover||s.mouseout||s.buttonMode)&&(s.__hit=this.hitTest(s,this.mouse),s.__hit?(s.buttonMode&&(this.target.view.style.cursor="pointer"),s.__isOver||(s.mouseover&&s.mouseover(this.mouse),s.__isOver=!0)):s.__isOver&&(s.mouseout&&s.mouseout(this.mouse),s.__isOver=!1))}}}},PIXI.InteractionManager.prototype.onMouseMove=function(t){t.preventDefault();var e=this.target.view.getBoundingClientRect();this.mouse.global.x=(t.clientX-e.left)*(this.target.width/e.width),this.mouse.global.y=(t.clientY-e.top)*(this.target.height/e.height);var i=this.interactiveItems.length;this.mouse.global;for(var r=0;i>r;r++){var s=this.interactiveItems[r];s.mousemove&&s.mousemove(this.mouse)}},PIXI.InteractionManager.prototype.onMouseDown=function(t){t.preventDefault();var e=this.interactiveItems.length;this.mouse.global,this.stage;for(var i=0;e>i;i++){var r=this.interactiveItems[i];if((r.mousedown||r.click)&&(r.__mouseIsDown=!0,r.__hit=this.hitTest(r,this.mouse),r.__hit&&(r.mousedown&&r.mousedown(this.mouse),r.__isDown=!0,!r.interactiveChildren)))break}},PIXI.InteractionManager.prototype.onMouseUp=function(t){t.preventDefault(),this.mouse.global;for(var e=this.interactiveItems.length,i=!1,r=0;e>r;r++){var s=this.interactiveItems[r];(s.mouseup||s.mouseupoutside||s.click)&&(s.__hit=this.hitTest(s,this.mouse),s.__hit&&!i?(s.mouseup&&s.mouseup(this.mouse),s.__isDown&&s.click&&s.click(this.mouse),s.interactiveChildren||(i=!0)):s.__isDown&&s.mouseupoutside&&s.mouseupoutside(this.mouse),s.__isDown=!1)}},PIXI.InteractionManager.prototype.hitTest=function(t,e){var i=e.global;if(!t.visible)return!1;if(t instanceof PIXI.Sprite){var r=t.worldTransform,s=r[0],n=r[1],a=r[2],o=r[3],h=r[4],u=r[5],d=1/(s*h+n*-o),c=h*d*i.x+-n*d*i.y+(u*n-a*h)*d,l=s*d*i.y+-o*d*i.x+(-u*s+a*o)*d,I=t.texture.frame.width,p=t.texture.frame.height,f=-I*t.anchor.x;if(c>f&&f+I>c){var x=-p*t.anchor.y;if(l>x&&x+p>l)return e.target=t,!0}}else if(t.hitArea){var r=t.worldTransform,v=t.hitArea,s=r[0],n=r[1],a=r[2],o=r[3],h=r[4],u=r[5],d=1/(s*h+n*-o),c=h*d*i.x+-n*d*i.y+(u*n-a*h)*d,l=s*d*i.y+-o*d*i.x+(-u*s+a*o)*d,f=v.x;if(c>f&&f+v.width>c){var x=v.y;if(l>x&&x+v.height>l)return!0}}for(var P=t.children.length,g=0;P>g;g++){var b=t.children[g],X=this.hitTest(b,e);if(X)return!0}return!1},PIXI.InteractionManager.prototype.onTouchMove=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.touchs[s.identifier];n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height)}for(var a=this.interactiveItems.length,r=0;a>r;r++){var o=this.interactiveItems[r];o.touchmove&&o.touchmove(n)}},PIXI.InteractionManager.prototype.onTouchStart=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.pool.pop();n||(n=new PIXI.InteractionData),this.touchs[s.identifier]=n,n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height);for(var a=this.interactiveItems.length,o=0;a>o;o++){var h=this.interactiveItems[o];if((h.touchstart||h.tap)&&(h.__hit=this.hitTest(h,n),h.__hit&&(h.touchstart&&h.touchstart(n),h.__isDown=!0,h.__touchData=n,!h.interactiveChildren)))break}}},PIXI.InteractionManager.prototype.onTouchEnd=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.touchs[s.identifier],a=!1;n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var u=this.interactiveItems[h],d=u.__touchData;u.__hit=this.hitTest(u,n),d==n&&((u.touchend||u.tap)&&(u.__hit&&!a?(u.touchend&&u.touchend(n),u.__isDown&&u.tap&&u.tap(n),u.interactiveChildren||(a=!0)):u.__isDown&&u.touchendoutside&&u.touchendoutside(n),u.__isDown=!1),u.__touchData=null)}this.pool.push(n),this.touchs[s.identifier]=null}},PIXI.InteractionData=function(){this.global=new PIXI.Point,this.local=new PIXI.Point,this.target},PIXI.InteractionData.prototype.getLocalPosition=function(t){var e=t.worldTransform,i=this.global,r=e[0],s=e[1],n=e[2],a=e[3],o=e[4],h=e[5],u=1/(r*o+s*-a);return new PIXI.Point(o*u*i.x+-s*u*i.y+(h*s-n*o)*u,r*u*i.y+-a*u*i.x+(-h*r+n*a)*u)},PIXI.InteractionData.constructor=PIXI.InteractionData,PIXI.Stage=function(t,e){PIXI.DisplayObjectContainer.call(this),this.worldTransform=PIXI.mat3.create(),this.__childrenAdded=[],this.__childrenRemoved=[],this.childIndex=0,this.stage=this,this.stage.hitArea=new PIXI.Rectangle(0,0,1e5,1e5),this.interactive=!!e,this.interactionManager=new PIXI.InteractionManager(this),this.setBackgroundColor(t),this.worldVisible=!0},PIXI.Stage.constructor=PIXI.Stage,PIXI.Stage.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Stage.prototype.updateTransform=function(){this.worldAlpha=1;for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform();this.dirty&&(this.dirty=!1,this.interactionManager.dirty=!0),this.interactive&&this.interactionManager.update()},PIXI.Stage.prototype.setBackgroundColor=function(t){this.backgroundColor=t||0,this.backgroundColorSplit=HEXtoRGB(this.backgroundColor),this.backgroundColorString="#"+this.backgroundColor.toString(16)},PIXI.Stage.prototype.getMousePosition=function(){return this.interactionManager.mouse.global},PIXI.Stage.prototype.__addChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=this,t.children)for(var e=0;t.children.length>e;e++)this.__addChild(t.children[e])},PIXI.Stage.prototype.__removeChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=void 0,t.children)for(var e=0,i=t.children.length;i>e;e++)this.__removeChild(t.children[e])},window.requestAnimFrame=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(t){window.setTimeout(t,1e3/60)}}(),"function"!=typeof Function.prototype.bind&&(Function.prototype.bind=function(){var t=Array.prototype.slice;return function(e){function i(){var n=s.concat(t.call(arguments));r.apply(this instanceof i?this:e,n)}var r=this,s=t.call(arguments,1);if("function"!=typeof r)throw new TypeError;return i.prototype=function n(t){return t&&(n.prototype=t),this instanceof n?void 0:new n}(r.prototype),i}}());var AjaxRequest=function(){var t=["Msxml2.XMLHTTP","Microsoft.XMLHTTP"];if(!window.ActiveXObject)return window.XMLHttpRequest?new XMLHttpRequest:!1;for(var e=0;t.length>e;e++)try{return new ActiveXObject(t[e])}catch(i){}};PIXI.EventTarget=function(){var t={};this.addEventListener=this.on=function(e,i){void 0===t[e]&&(t[e]=[]),-1===t[e].indexOf(i)&&t[e].push(i)},this.dispatchEvent=this.emit=function(e){for(var i in t[e.type])t[e.type][i](e)},this.removeEventListener=this.off=function(e,i){var r=t[e].indexOf(i);-1!==r&&t[e].splice(r,1)}},determineMatrixArrayType(),PIXI.mat3={},PIXI.mat3.create=function(){var t=new PIXI.Matrix(9);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},PIXI.mat4={},PIXI.mat4.create=function(){var t=new PIXI.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},PIXI.mat3.multiply=function(t,e,i){i||(i=t);var r=t[0],s=t[1],n=t[2],a=t[3],o=t[4],h=t[5],u=t[6],d=t[7],c=t[8],l=e[0],I=e[1],p=e[2],f=e[3],x=e[4],v=e[5],P=e[6],g=e[7],b=e[8];return i[0]=l*r+I*a+p*u,i[1]=l*s+I*o+p*d,i[2]=l*n+I*h+p*c,i[3]=f*r+x*a+v*u,i[4]=f*s+x*o+v*d,i[5]=f*n+x*h+v*c,i[6]=P*r+g*a+b*u,i[7]=P*s+g*o+b*d,i[8]=P*n+g*h+b*c,i},PIXI.mat3.toMat4=function(t,e){return e||(e=PIXI.mat4.create()),e[15]=1,e[14]=0,e[13]=0,e[12]=0,e[11]=0,e[10]=t[8],e[9]=t[7],e[8]=t[6],e[7]=0,e[6]=t[5],e[5]=t[4],e[4]=t[3],e[3]=0,e[2]=t[2],e[1]=t[1],e[0]=t[0],e},PIXI.mat4.create=function(){var t=new PIXI.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},PIXI.mat4.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],s=t[3],n=t[6],a=t[7],o=t[11];return t[1]=t[4],t[2]=t[8],t[3]=t[12],t[4]=i,t[6]=t[9],t[7]=t[13],t[8]=r,t[9]=n,t[11]=t[14],t[12]=s,t[13]=a,t[14]=o,t}return e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=t[1],e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=t[2],e[9]=t[6],e[10]=t[10],e[11]=t[14],e[12]=t[3],e[13]=t[7],e[14]=t[11],e[15]=t[15],e},PIXI.mat4.multiply=function(t,e,i){i||(i=t);var r=t[0],s=t[1],n=t[2],a=t[3],o=t[4],h=t[5],u=t[6],d=t[7],c=t[8],l=t[9],I=t[10],p=t[11],f=t[12],x=t[13],v=t[14],P=t[15],g=e[0],b=e[1],X=e[2],m=e[3];return i[0]=g*r+b*o+X*c+m*f,i[1]=g*s+b*h+X*l+m*x,i[2]=g*n+b*u+X*I+m*v,i[3]=g*a+b*d+X*p+m*P,g=e[4],b=e[5],X=e[6],m=e[7],i[4]=g*r+b*o+X*c+m*f,i[5]=g*s+b*h+X*l+m*x,i[6]=g*n+b*u+X*I+m*v,i[7]=g*a+b*d+X*p+m*P,g=e[8],b=e[9],X=e[10],m=e[11],i[8]=g*r+b*o+X*c+m*f,i[9]=g*s+b*h+X*l+m*x,i[10]=g*n+b*u+X*I+m*v,i[11]=g*a+b*d+X*p+m*P,g=e[12],b=e[13],X=e[14],m=e[15],i[12]=g*r+b*o+X*c+m*f,i[13]=g*s+b*h+X*l+m*x,i[14]=g*n+b*u+X*I+m*v,i[15]=g*a+b*d+X*p+m*P,i},PIXI.autoDetectRenderer=function(t,e,i,r){t||(t=800),e||(e=600);var s=function(){try{return!!window.WebGLRenderingContext&&!!document.createElement("canvas").getContext("experimental-webgl")}catch(t){return!1}}();return s?new PIXI.WebGLRenderer(t,e,i,r):new PIXI.CanvasRenderer(t,e,i,r)},PIXI.shaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * vColor;","}"],PIXI.shaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform mat4 uMVMatrix;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","gl_Position = uMVMatrix * vec4(aVertexPosition, 1.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],PIXI.CompileVertexShader=function(t,e){return PIXI._CompileShader(t,e,t.VERTEX_SHADER)},PIXI.CompileFragmentShader=function(t,e){return PIXI._CompileShader(t,e,t.FRAGMENT_SHADER)},PIXI._CompileShader=function(t,e,i){var r=e.join("\n"),s=t.createShader(i);return t.shaderSource(s,r),t.compileShader(s),t.getShaderParameter(s,t.COMPILE_STATUS)?s:(alert(t.getShaderInfoLog(s)),null)},PIXI._defaultFrame=new PIXI.Rectangle(0,0,1,1),PIXI.gl,PIXI.WebGLRenderer=function(t,e,i,r){this.transparent=!!r,this.width=t||800,this.height=e||600,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height;var s=this;this.view.addEventListener("webglcontextlost",function(t){s.handleContextLost(t)},!1),this.view.addEventListener("webglcontextrestored",function(t){s.handleContextRestored(t)},!1),this.batchs=[];try{PIXI.gl=this.gl=this.view.getContext("experimental-webgl",{alpha:this.transparent,antialias:!1,premultipliedAlpha:!0})}catch(n){throw Error(" This browser does not support webGL. Try using the canvas renderer"+this)}this.initShaders();var a=this.gl;PIXI.WebGLRenderer.gl=a,this.batch=new PIXI.WebGLBatch(a),a.disable(a.DEPTH_TEST),a.disable(a.CULL_FACE),a.enable(a.BLEND),a.colorMask(!0,!0,!0,this.transparent),this.projectionMatrix=PIXI.mat4.create(),this.resize(this.width,this.height),this.contextLost=!1,this.stageRenderGroup=new PIXI.WebGLRenderGroup(this.gl)},PIXI.WebGLRenderer.constructor=PIXI.WebGLRenderer,PIXI.WebGLRenderer.getBatch=function(){return 0==PIXI._batchs.length?new PIXI.WebGLBatch(PIXI.WebGLRenderer.gl):PIXI._batchs.pop()},PIXI.WebGLRenderer.returnBatch=function(t){t.clean(),PIXI._batchs.push(t)},PIXI.WebGLRenderer.prototype.initShaders=function(){var t=this.gl,e=PIXI.CompileFragmentShader(t,PIXI.shaderFragmentSrc),i=PIXI.CompileVertexShader(t,PIXI.shaderVertexSrc);PIXI.shaderProgram=t.createProgram();var r=PIXI.shaderProgram;t.attachShader(r,i),t.attachShader(r,e),t.linkProgram(r),t.getProgramParameter(r,t.LINK_STATUS)||alert("Could not initialise shaders"),t.useProgram(r),r.vertexPositionAttribute=t.getAttribLocation(r,"aVertexPosition"),t.enableVertexAttribArray(r.vertexPositionAttribute),r.textureCoordAttribute=t.getAttribLocation(r,"aTextureCoord"),t.enableVertexAttribArray(r.textureCoordAttribute),r.colorAttribute=t.getAttribLocation(r,"aColor"),t.enableVertexAttribArray(r.colorAttribute),r.mvMatrixUniform=t.getUniformLocation(r,"uMVMatrix"),r.samplerUniform=t.getUniformLocation(r,"uSampler")},PIXI.WebGLRenderer.prototype.render=function(t){if(!this.contextLost){this.__stage!==t&&(this.__stage=t,this.stageRenderGroup.setRenderable(t)),PIXI.WebGLRenderer.updateTextures(),t.updateTransform();var e=this.gl;if(e.colorMask(!0,!0,!0,this.transparent),e.viewport(0,0,this.width,this.height),e.bindFramebuffer(e.FRAMEBUFFER,null),e.clearColor(t.backgroundColorSplit[0],t.backgroundColorSplit[1],t.backgroundColorSplit[2],this.transparent),e.clear(e.COLOR_BUFFER_BIT),this.stageRenderGroup.backgroundColor=t.backgroundColorSplit,this.stageRenderGroup.render(this.projectionMatrix),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),PIXI.Texture.frameUpdates.length>0){for(var i=0;PIXI.Texture.frameUpdates.length>i;i++)PIXI.Texture.frameUpdates[i].updateFrame=!1;PIXI.Texture.frameUpdates=[]}}},PIXI.WebGLRenderer.updateTextures=function(){for(var t=0;PIXI.texturesToUpdate.length>t;t++)this.updateTexture(PIXI.texturesToUpdate[t]);for(var t=0;PIXI.texturesToDestroy.length>t;t++)this.destroyTexture(PIXI.texturesToDestroy[t]);PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[]},PIXI.WebGLRenderer.updateTexture=function(t){var e=PIXI.gl;t._glTexture||(t._glTexture=e.createTexture()),t.hasLoaded&&(e.bindTexture(e.TEXTURE_2D,t._glTexture),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t.source),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),t._powerOf2?(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT)):(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)),e.bindTexture(e.TEXTURE_2D,null))},PIXI.WebGLRenderer.prototype.destroyTexture=function(t){var e=this.gl;t._glTexture&&(t._glTexture=e.createTexture(),e.deleteTexture(e.TEXTURE_2D,t._glTexture))},PIXI.WebGLRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e,this.gl.viewport(0,0,this.width,this.height);var i=this.projectionMatrix;i[0]=2/this.width,i[5]=-2/this.height,i[12]=-1,i[13]=1},PIXI.WebGLRenderer.prototype.handleContextLost=function(t){t.preventDefault(),this.contextLost=!0},PIXI.WebGLRenderer.prototype.handleContextRestored=function(){this.gl=this.view.getContext("experimental-webgl",{alpha:!0}),this.initShaders();for(var t=0;PIXI.TextureCache.length>t;t++)this.updateTexture(PIXI.TextureCache[t]);for(var t=0;this.batchs.length>t;t++)this.batchs[t].restoreLostContext(this.gl),this.batchs[t].dirty=!0;PIXI._restoreBatchs(this.gl),this.contextLost=!1},PIXI._batchs=[],PIXI._getBatch=function(t){return 0==PIXI._batchs.length?new PIXI.WebGLBatch(t):PIXI._batchs.pop()},PIXI._returnBatch=function(t){t.clean(),PIXI._batchs.push(t)},PIXI._restoreBatchs=function(t){for(var e=0;PIXI._batchs.length>e;e++)PIXI._batchs[e].restoreLostContext(t)},PIXI.WebGLBatch=function(t){this.gl=t,this.size=0,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer(),this.blendMode=PIXI.blendModes.NORMAL,this.dynamicSize=1},PIXI.WebGLBatch.constructor=PIXI.WebGLBatch,PIXI.WebGLBatch.prototype.clean=function(){this.verticies=[],this.uvs=[],this.indices=[],this.colors=[],this.dynamicSize=1,this.texture=null,this.last=null,this.size=0,this.head,this.tail},PIXI.WebGLBatch.prototype.restoreLostContext=function(t){this.gl=t,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer()},PIXI.WebGLBatch.prototype.init=function(t){t.batch=this,this.dirty=!0,this.blendMode=t.blendMode,this.texture=t.texture.baseTexture,this.head=t,this.tail=t,this.size=1,this.growBatch()},PIXI.WebGLBatch.prototype.insertBefore=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__prev;e.__prev=t,t.__next=e,i?(t.__prev=i,i.__next=t):this.head=t},PIXI.WebGLBatch.prototype.insertAfter=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__next;e.__next=t,t.__prev=e,i?(t.__next=i,i.__prev=t):this.tail=t},PIXI.WebGLBatch.prototype.remove=function(t){return this.size--,0==this.size?(t.batch=null,t.__prev=null,t.__next=null,void 0):(t.__prev?t.__prev.__next=t.__next:(this.head=t.__next,this.head.__prev=null),t.__next?t.__next.__prev=t.__prev:(this.tail=t.__prev,this.tail.__next=null),t.batch=null,t.__next=null,t.__prev=null,this.dirty=!0,void 0)},PIXI.WebGLBatch.prototype.split=function(t){this.dirty=!0;var e=new PIXI.WebGLBatch(this.gl);e.init(t),e.tail=this.tail,this.tail=t.__prev,this.tail.__next=null,t.__prev=null;for(var i=0;t;)i++,t.batch=e,t=t.__next;return e.size=i,this.size-=i,e},PIXI.WebGLBatch.prototype.merge=function(t){this.dirty=!0,this.tail.__next=t.head,t.head.__prev=this.tail,this.size+=t.size,this.tail=t.tail;for(var e=t.head;e;)e.batch=this,e=e.__next},PIXI.WebGLBatch.prototype.growBatch=function(){var t=this.gl;this.dynamicSize=1==this.size?1:1.5*this.size,this.verticies=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.vertexBuffer),t.bufferData(t.ARRAY_BUFFER,this.verticies,t.DYNAMIC_DRAW),this.uvs=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.uvBuffer),t.bufferData(t.ARRAY_BUFFER,this.uvs,t.DYNAMIC_DRAW),this.dirtyUVS=!0,this.colors=new Float32Array(4*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.colorBuffer),t.bufferData(t.ARRAY_BUFFER,this.colors,t.DYNAMIC_DRAW),this.dirtyColors=!0,this.indices=new Uint16Array(6*this.dynamicSize);for(var e=this.indices.length/6,i=0;e>i;i++){var r=6*i,s=4*i;this.indices[r+0]=s+0,this.indices[r+1]=s+1,this.indices[r+2]=s+2,this.indices[r+3]=s+0,this.indices[r+4]=s+2,this.indices[r+5]=s+3}t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,this.indexBuffer),t.bufferData(t.ELEMENT_ARRAY_BUFFER,this.indices,t.STATIC_DRAW)},PIXI.WebGLBatch.prototype.refresh=function(){this.gl,this.dynamicSizer;r++)i=this.batchs[r],i instanceof PIXI.WebGLBatch?this.batchs[r].render():i instanceof PIXI.TilingSprite?i.visible&&this.renderTilingSprite(i,t):i instanceof PIXI.Strip&&i.visible&&this.renderStrip(i,t)},PIXI.WebGLRenderGroup.prototype.renderSpecific=function(t,e){PIXI.WebGLRenderer.updateTextures();var i=this.gl;this.checkVisibility(t,t.visible),i.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform,!1,e);var r,s,n,a,o=t.renderable?t:this.getNextRenderable(t),h=o.batch;if(o instanceof PIXI.Sprite){h=o.batch;var u=h.head;if(u==o)r=0;else for(r=1;u.__next!=o;)r++,u=u.__next}else h=o;for(var d,c=t,l=t;l.children.length>0;)l=l.children[l.children.length-1],l.renderable&&(c=l);if(c instanceof PIXI.Sprite){d=c.batch;var u=d.head;if(u==c)n=0;else for(n=1;u.__next!=c;)n++,u=u.__next}else d=c;if(h==d)return h instanceof PIXI.WebGLBatch?h.render(r,n+1):h instanceof PIXI.TilingSprite?h.visible&&this.renderTilingSprite(h,e):h instanceof PIXI.Strip?h.visible&&this.renderStrip(h,e):h instanceof PIXI.CustomRenderable&&h.visible&&h.renderWebGL(this,e),void 0;s=this.batchs.indexOf(h),a=this.batchs.indexOf(d),h instanceof PIXI.WebGLBatch?h.render(r):h instanceof PIXI.TilingSprite?h.visible&&this.renderTilingSprite(h,e):h instanceof PIXI.Strip?h.visible&&this.renderStrip(h,e):h instanceof PIXI.CustomRenderable&&h.visible&&h.renderWebGL(this,e);for(var I=s+1;a>I;I++)renderable=this.batchs[I],renderable instanceof PIXI.WebGLBatch?this.batchs[I].render():renderable instanceof PIXI.TilingSprite?renderable.visible&&this.renderTilingSprite(renderable,e):renderable instanceof PIXI.Strip?renderable.visible&&this.renderStrip(renderable,e):renderable instanceof PIXI.CustomRenderable&&renderable.visible&&renderable.renderWebGL(this,e);d instanceof PIXI.WebGLBatch?d.render(0,n+1):d instanceof PIXI.TilingSprite?d.visible&&this.renderTilingSprite(d):d instanceof PIXI.Strip?d.visible&&this.renderStrip(d):d instanceof PIXI.CustomRenderable&&d.visible&&d.renderWebGL(this,e)},PIXI.WebGLRenderGroup.prototype.checkVisibility=function(t,e){for(var i=t.children,r=0;i.length>r;r++){var s=i[r];s.worldVisible=s.visible&&e,s.textureChange&&(s.textureChange=!1,s.worldVisible&&(this.removeDisplayObject(s),this.addDisplayObject(s))),s.children.length>0&&this.checkVisibility(s,s.worldVisible)}},PIXI.WebGLRenderGroup.prototype.addDisplayObject=function(t){if(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.__renderGroup=this,t.renderable){var e=this.getPreviousRenderable(t),i=this.getNextRenderable(t);if(t instanceof PIXI.Sprite){var r,s;if(e instanceof PIXI.Sprite){if(r=e.batch,r&&r.texture==t.texture.baseTexture&&r.blendMode==t.blendMode)return r.insertAfter(t,e),void 0}else r=e;if(i)if(i instanceof PIXI.Sprite){if(s=i.batch){if(s.texture==t.texture.baseTexture&&s.blendMode==t.blendMode)return s.insertBefore(t,i),void 0;if(s==r){var n=r.split(i),a=PIXI.WebGLRenderer.getBatch(),o=this.batchs.indexOf(r);return a.init(t),this.batchs.splice(o+1,0,a,n),void 0}}}else s=i;var a=PIXI.WebGLRenderer.getBatch();if(a.init(t),r){var o=this.batchs.indexOf(r);this.batchs.splice(o+1,0,a)}else this.batchs.push(a)}else t instanceof PIXI.TilingSprite?(this.initTilingSprite(t),this.batchs.push(t)):t instanceof PIXI.Strip&&(this.initStrip(t),this.batchs.push(t));this.batchUpdate=!0}},PIXI.WebGLRenderGroup.prototype.addDisplayObjectAndChildren=function(t){this.addDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.addDisplayObjectAndChildren(e[i])},PIXI.WebGLRenderGroup.prototype.removeDisplayObject=function(t){if(t.__renderGroup=null,t.renderable){var e;if(t instanceof PIXI.Sprite){var i=t.batch;if(!i)return;i.remove(t),0==i.size&&(e=i)}else e=t;if(e){var r=this.batchs.indexOf(e);if(-1==r)return;if(0==r||r==this.batchs.length-1)return this.batchs.splice(r,1),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e),void 0;if(this.batchs[r-1]instanceof PIXI.WebGLBatch&&this.batchs[r+1]instanceof PIXI.WebGLBatch&&this.batchs[r-1].texture==this.batchs[r+1].texture&&this.batchs[r-1].blendMode==this.batchs[r+1].blendMode)return this.batchs[r-1].merge(this.batchs[r+1]),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e),PIXI.WebGLRenderer.returnBatch(this.batchs[r+1]),this.batchs.splice(r,2),void 0;this.batchs.splice(r,1),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e)}}},PIXI.WebGLRenderGroup.prototype.removeDisplayObjectAndChildren=function(t){if(t.__renderGroup==this){this.removeDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.removeDisplayObjectAndChildren(e[i])}},PIXI.WebGLRenderGroup.prototype.getNextRenderable=function(t){var e=t;do{if(0==e.children.length){if(!e.parent)return null;for(;e.childIndex==e.parent.children.length-1;)if(e=e.parent,e==this.root||!e.parent){e=null;break}e&&(e=e.parent.children[e.childIndex+1])}else e=e.children[0];if(!e)break}while(!e.renderable||!e.__renderGroup);return e},PIXI.WebGLRenderGroup.prototype.getPreviousRenderable=function(t){var e=t;do{if(0==e.childIndex){if(e=e.parent,!e)return null}else for(e=e.parent.children[e.childIndex-1];0!=e.children.length;)e=e.children[e.children.length-1];if(e==this.root)break}while(!e.renderable||!e.__renderGroup);return e},PIXI.WebGLRenderGroup.prototype.initTilingSprite=function(t){var e=this.gl;t.verticies=new Float32Array([0,0,t.width,0,t.width,t.height,0,t.height]),t.uvs=new Float32Array([0,0,1,0,1,1,0,1]),t.colors=new Float32Array([1,1,1,1]),t.indices=new Uint16Array([0,1,3,2]),t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW),t.texture.baseTexture._glTexture?(e.bindTexture(e.TEXTURE_2D,t.texture.baseTexture._glTexture),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT),t.texture.baseTexture._powerOf2=!0):t.texture.baseTexture._powerOf2=!0},PIXI.WebGLRenderGroup.prototype.renderStrip=function(t,e){var i=this.gl,r=PIXI.shaderProgram,s=PIXI.mat3.toMat4(t.worldTransform);PIXI.mat4.transpose(s),PIXI.mat4.multiply(e,s,s),i.uniformMatrix4fv(r.mvMatrixUniform,!1,s),t.blendMode==PIXI.blendModes.NORMAL?i.blendFunc(i.ONE,i.ONE_MINUS_SRC_ALPHA):i.blendFunc(i.ONE,i.ONE_MINUS_SRC_COLOR),t.dirty?(t.dirty=!1,i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferData(i.ARRAY_BUFFER,t.verticies,i.STATIC_DRAW),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferData(i.ARRAY_BUFFER,t.uvs,i.STATIC_DRAW),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.bufferData(i.ARRAY_BUFFER,t.colors,i.STATIC_DRAW),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer),i.bufferData(i.ELEMENT_ARRAY_BUFFER,t.indices,i.STATIC_DRAW)):(i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.verticies),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer)),i.drawElements(i.TRIANGLE_STRIP,t.indices.length,i.UNSIGNED_SHORT,0),i.uniformMatrix4fv(r.mvMatrixUniform,!1,e)},PIXI.WebGLRenderGroup.prototype.renderTilingSprite=function(t,e){var i=this.gl;PIXI.shaderProgram;var r=t.tilePosition,s=t.tileScale,n=r.x/t.texture.baseTexture.width,a=r.y/t.texture.baseTexture.height,o=t.width/t.texture.baseTexture.width/s.x,h=t.height/t.texture.baseTexture.height/s.y;t.uvs[0]=0-n,t.uvs[1]=0-a,t.uvs[2]=1*o-n,t.uvs[3]=0-a,t.uvs[4]=1*o-n,t.uvs[5]=1*h-a,t.uvs[6]=0-n,t.uvs[7]=1*h-a,i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.uvs),this.renderStrip(t,e)},PIXI.WebGLRenderer.prototype.initStrip=function(t){var e=this.gl;this.shaderProgram,t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW)},PIXI.CanvasRenderer=function(t,e,i,r){this.transparent=r,this.width=t||800,this.height=e||600,this.refresh=!0,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height,this.count=0,this.context=this.view.getContext("2d")},PIXI.CanvasRenderer.constructor=PIXI.CanvasRenderer,PIXI.CanvasRenderer.prototype.render=function(t){PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[],t.updateTransform(),this.view.style.backgroundColor==t.backgroundColorString||this.transparent||(this.view.style.backgroundColor=t.backgroundColorString),this.context.setTransform(1,0,0,1,0,0),this.context.clearRect(0,0,this.width,this.height),this.renderDisplayObject(t),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),PIXI.Texture.frameUpdates.length>0&&(PIXI.Texture.frameUpdates=[])},PIXI.CanvasRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e},PIXI.CanvasRenderer.prototype.renderDisplayObject=function(t){var e=t.worldTransform,i=this.context;if(t.visible){if(t instanceof PIXI.Sprite){var r=t.texture.frame;r&&(i.globalAlpha=t.worldAlpha,i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),i.drawImage(t.texture.baseTexture.source,r.x,r.y,r.width,r.height,t.anchor.x*-r.width,t.anchor.y*-r.height,r.width,r.height))}else t instanceof PIXI.Strip?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderStrip(t)):t instanceof PIXI.TilingSprite?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderTilingSprite(t)):t instanceof PIXI.CustomRenderable&&t.renderCanvas(this);for(var s=0;t.children.length>s;s++)this.renderDisplayObject(t.children[s]);this.context.setTransform(1,0,0,1,0,0)}},PIXI.CanvasRenderer.prototype.renderStripFlat=function(t){var e=this.context,i=t.verticies;t.uvs;var r=i.length/2;this.count++,e.beginPath();for(var s=1;r-2>s;s++){var n=2*s,a=i[n],o=i[n+2],h=i[n+4],u=i[n+1],d=i[n+3],c=i[n+5];e.moveTo(a,u),e.lineTo(o,d),e.lineTo(h,c)}e.fillStyle="#FF0000",e.fill(),e.closePath()},PIXI.CanvasRenderer.prototype.renderTilingSprite=function(t){var e=this.context;t.__tilePattern||(t.__tilePattern=e.createPattern(t.texture.baseTexture.source,"repeat")),e.beginPath();var i=t.tilePosition,r=t.tileScale;e.scale(r.x,r.y),e.translate(i.x,i.y),e.fillStyle=t.__tilePattern,e.fillRect(-i.x,-i.y,t.width/r.x,t.height/r.y),e.scale(1/r.x,1/r.y),e.translate(-i.x,-i.y),e.closePath()},PIXI.CanvasRenderer.prototype.renderStrip=function(t){var e=this.context,i=t.verticies,r=t.uvs,s=i.length/2;this.count++;for(var n=1;s-2>n;n++){var a=2*n,o=i[a],h=i[a+2],u=i[a+4],d=i[a+1],c=i[a+3],l=i[a+5],I=r[a]*t.texture.width,p=r[a+2]*t.texture.width,f=r[a+4]*t.texture.width,x=r[a+1]*t.texture.height,v=r[a+3]*t.texture.height,P=r[a+5]*t.texture.height;e.save(),e.beginPath(),e.moveTo(o,d),e.lineTo(h,c),e.lineTo(u,l),e.closePath(),e.clip();var g=I*v+x*f+p*P-v*f-x*p-I*P,b=o*v+x*u+h*P-v*u-x*h-o*P,X=I*h+o*f+p*u-h*f-o*p-I*u,m=I*v*u+x*h*f+o*p*P-o*v*f-x*p*u-I*h*P,T=d*v+x*l+c*P-v*l-x*c-d*P,y=I*c+d*f+p*l-c*f-d*p-I*l,_=I*v*l+x*c*f+d*p*P-d*v*f-x*p*l-I*c*P;e.transform(b/g,T/g,X/g,y/g,m/g,_/g),e.drawImage(t.texture.baseTexture.source,0,0),e.restore()}},PIXI.Strip=function(t,e,i){PIXI.DisplayObjectContainer.call(this),this.texture=t,this.blendMode=PIXI.blendModes.NORMAL;try{this.uvs=new Float32Array([0,1,1,1,1,0,0,1]),this.verticies=new Float32Array([0,0,0,0,0,0,0,0,0]),this.colors=new Float32Array([1,1,1,1]),this.indices=new Uint16Array([0,1,2,3])}catch(r){this.uvs=[0,1,1,1,1,0,0,1],this.verticies=[0,0,0,0,0,0,0,0,0],this.colors=[1,1,1,1],this.indices=[0,1,2,3]}this.width=e,this.height=i,t.baseTexture.hasLoaded?(this.width=this.texture.frame.width,this.height=this.texture.frame.height,this.updateFrame=!0):(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},PIXI.Strip.constructor=PIXI.Strip,PIXI.Strip.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Strip.prototype.setTexture=function(t){this.texture=t,this.width=t.frame.width,this.height=t.frame.height,this.updateFrame=!0},PIXI.Strip.prototype.onTextureUpdate=function(){this.updateFrame=!0},PIXI.Rope=function(t,e){PIXI.Strip.call(this,t),this.points=e;try{this.verticies=new Float32Array(4*e.length),this.uvs=new Float32Array(4*e.length),this.colors=new Float32Array(2*e.length),this.indices=new Uint16Array(2*e.length)}catch(i){this.verticies=verticies,this.uvs=uvs,this.colors=colors,this.indices=indices}this.refresh()},PIXI.Rope.constructor=PIXI.Rope,PIXI.Rope.prototype=Object.create(PIXI.Strip.prototype),PIXI.Rope.prototype.refresh=function(){var t=this.points;if(!(1>t.length)){var e=this.uvs,i=this.indices,r=this.colors,s=t[0],n=t[0];this.count-=.2,e[0]=0,e[1]=1,e[2]=0,e[3]=1,r[0]=1,r[1]=1,i[0]=0,i[1]=1;for(var a=t.length,o=1;a>o;o++){var n=t[o],h=4*o,u=o/(a-1);o%2?(e[h]=u,e[h+1]=0,e[h+2]=u,e[h+3]=1):(e[h]=u,e[h+1]=0,e[h+2]=u,e[h+3]=1),h=2*o,r[h]=1,r[h+1]=1,h=2*o,i[h]=h,i[h+1]=h+1,s=n}}},PIXI.Rope.prototype.updateTransform=function(){var t=this.points;if(!(1>t.length)){var e,i=this.verticies,r=t[0],s={x:0,y:0},n=t[0];this.count-=.2,i[0]=n.x+s.x,i[1]=n.y+s.y,i[2]=n.x-s.x,i[3]=n.y-s.y;for(var a=t.length,o=1;a>o;o++){var n=t[o],h=4*o;e=t.length-1>o?t[o+1]:n,s.y=-(e.x-r.x),s.x=e.y-r.y;var u=10*(1-o/(a-1));u>1&&(u=1);var d=Math.sqrt(s.x*s.x+s.y*s.y),c=this.texture.height/2;s.x/=d,s.y/=d,s.x*=c,s.y*=c,i[h]=n.x+s.x,i[h+1]=n.y+s.y,i[h+2]=n.x-s.x,i[h+3]=n.y-s.y,r=n}PIXI.DisplayObjectContainer.prototype.updateTransform.call(this)}},PIXI.Rope.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0},PIXI.TilingSprite=function(t,e,i){PIXI.DisplayObjectContainer.call(this),this.texture=t,this.width=e,this.height=i,this.renderable=!0,this.tileScale=new PIXI.Point(1,1),this.tilePosition=new PIXI.Point(0,0),this.blendMode=PIXI.blendModes.NORMAL},PIXI.TilingSprite.constructor=PIXI.TilingSprite,PIXI.TilingSprite.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.TilingSprite.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0},PIXI.TilingSprite.prototype.onTextureUpdate=function(){this.updateFrame=!0},PIXI.CustomRenderable=function(){PIXI.DisplayObject.call(this)},PIXI.CustomRenderable.constructor=PIXI.CustomRenderable,PIXI.CustomRenderable.prototype=Object.create(PIXI.DisplayObject.prototype),PIXI.CustomRenderable.prototype.renderCanvas=function(){},PIXI.CustomRenderable.prototype.initWebGL=function(){},PIXI.CustomRenderable.prototype.renderWebGL=function(){},PIXI.BaseTextureCache={},PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[],PIXI.BaseTexture=function(t){if(PIXI.EventTarget.call(this),this.width=100,this.height=100,this.source=t,t){if(this.source instanceof Image)if(this.source.complete)this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,PIXI.texturesToUpdate.push(this);else{var e=this;this.source.onload=function(){e.hasLoaded=!0,e.width=e.source.width,e.height=e.source.height,PIXI.texturesToUpdate.push(e),e.dispatchEvent({type:"loaded",content:e})}}else this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,PIXI.texturesToUpdate.push(this);this._powerOf2=!1}},PIXI.BaseTexture.constructor=PIXI.BaseTexture,PIXI.BaseTexture.prototype.destroy=function(){this.source instanceof Image&&(this.source.src=null),this.source=null,PIXI.texturesToDestroy.push(this)},PIXI.BaseTexture.fromImage=function(t,e){var i=PIXI.BaseTextureCache[t];if(!i){var r=new Image;e&&(r.crossOrigin=""),r.src=t,i=new PIXI.BaseTexture(r),PIXI.BaseTextureCache[t]=i}return i},PIXI.TextureCache={},PIXI.FrameCache={},PIXI.Texture=function(t,e){if(PIXI.EventTarget.call(this),e||(this.noFrame=!0,e=new PIXI.Rectangle(0,0,1,1)),this.trim=new PIXI.Point,t instanceof PIXI.Texture&&(t=t.baseTexture),this.baseTexture=t,this.frame=e,this.scope=this,t.hasLoaded)this.noFrame&&(e=new PIXI.Rectangle(0,0,t.width,t.height)),this.setFrame(e);else{var i=this;t.addEventListener("loaded",function(){i.onBaseTextureLoaded()})}},PIXI.Texture.constructor=PIXI.Texture,PIXI.Texture.prototype.onBaseTextureLoaded=function(){var t=this.baseTexture;t.removeEventListener("loaded",this.onLoaded),this.noFrame&&(this.frame=new PIXI.Rectangle(0,0,t.width,t.height)),this.noFrame=!1,this.width=this.frame.width,this.height=this.frame.height,this.scope.dispatchEvent({type:"update",content:this})},PIXI.Texture.prototype.destroy=function(t){t&&this.baseTexture.destroy()},PIXI.Texture.prototype.setFrame=function(t){if(this.frame=t,this.width=t.width,this.height=t.height,t.x+t.width>this.baseTexture.width||t.y+t.height>this.baseTexture.height)throw Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);this.updateFrame=!0,PIXI.Texture.frameUpdates.push(this)},PIXI.Texture.fromImage=function(t,e){var i=PIXI.TextureCache[t];return i||(i=new PIXI.Texture(PIXI.BaseTexture.fromImage(t,e)),PIXI.TextureCache[t]=i),i},PIXI.Texture.fromFrame=function(t){var e=PIXI.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache "+this);return e},PIXI.Texture.fromCanvas=function(t){var e=new PIXI.BaseTexture(t);return new PIXI.Texture(e)},PIXI.Texture.addTextureToCache=function(t,e){PIXI.TextureCache[e]=t},PIXI.Texture.removeTextureFromCache=function(t){var e=PIXI.TextureCache[t];return PIXI.TextureCache[t]=null,e},PIXI.Texture.frameUpdates=[],PIXI.RenderTexture=function(t,e){PIXI.EventTarget.call(this),this.width=t||100,this.height=e||100,this.indetityMatrix=PIXI.mat3.create(),this.frame=new PIXI.Rectangle(0,0,this.width,this.height),PIXI.gl?this.initWebGL():this.initCanvas()},PIXI.RenderTexture.constructor=PIXI.RenderTexture,PIXI.RenderTexture.prototype=Object.create(PIXI.Texture.prototype),PIXI.RenderTexture.prototype.initWebGL=function(){var t=PIXI.gl;this.glFramebuffer=t.createFramebuffer(),t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),this.glFramebuffer.width=this.width,this.glFramebuffer.height=this.height,this.baseTexture=new PIXI.BaseTexture,this.baseTexture.width=this.width,this.baseTexture.height=this.height,this.baseTexture._glTexture=t.createTexture(),t.bindTexture(t.TEXTURE_2D,this.baseTexture._glTexture),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,this.width,this.height,0,t.RGBA,t.UNSIGNED_BYTE,null),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),this.baseTexture.isRender=!0,t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,this.baseTexture._glTexture,0),this.projectionMatrix=PIXI.mat4.create(),this.projectionMatrix[5]=2/this.height,this.projectionMatrix[13]=-1,this.projectionMatrix[0]=2/this.width,this.projectionMatrix[12]=-1,this.render=this.renderWebGL},PIXI.RenderTexture.prototype.initCanvas=function(){this.renderer=new PIXI.CanvasRenderer(this.width,this.height,null,0),this.baseTexture=new PIXI.BaseTexture(this.renderer.view),this.frame=new PIXI.Rectangle(0,0,this.width,this.height),this.render=this.renderCanvas},PIXI.RenderTexture.prototype.renderWebGL=function(t,e){var i=PIXI.gl;i.colorMask(!0,!0,!0,!0),i.viewport(0,0,this.width,this.height),i.bindFramebuffer(i.FRAMEBUFFER,this.glFramebuffer),e&&(i.clearColor(0,0,0,0),i.clear(i.COLOR_BUFFER_BIT));var r=t.children;t.worldTransform=PIXI.mat3.create();for(var s=0,n=r.length;n>s;s++)r[s].updateTransform();var a=t.__renderGroup;a?t==a.root?a.render(this.projectionMatrix):a.renderSpecific(t,this.projectionMatrix):(this.renderGroup||(this.renderGroup=new PIXI.WebGLRenderGroup(i)),this.renderGroup.setRenderable(t),this.renderGroup.render(this.projectionMatrix))},PIXI.RenderTexture.prototype.renderCanvas=function(t,e){var i=t.children;t.worldTransform=PIXI.mat3.create();for(var r=0,s=i.length;s>r;r++)i[r].updateTransform();e&&this.renderer.context.clearRect(0,0,this.width,this.height),this.renderer.renderDisplayObject(t),PIXI.texturesToUpdate.push(this.baseTexture)},PIXI.AssetLoader=function(t){PIXI.EventTarget.call(this),this.assetURLs=t,this.crossorigin=!1,this.loadersByType={jpg:PIXI.ImageLoader,jpeg:PIXI.ImageLoader,png:PIXI.ImageLoader,gif:PIXI.ImageLoader,json:PIXI.SpriteSheetLoader,xml:PIXI.BitmapFontLoader,fnt:PIXI.BitmapFontLoader}},PIXI.AssetLoader.constructor=PIXI.AssetLoader,PIXI.AssetLoader.prototype.load=function(){var t=this;this.loadCount=this.assetURLs.length;for(var e=0;this.assetURLs.length>e;e++){var i=this.assetURLs[e],r=i.split(".").pop().toLowerCase(),s=this.loadersByType[r];if(!s)throw Error(r+" is an unsupported file type");var n=new s(i,this.crossorigin);n.addEventListener("loaded",function(){t.onAssetLoaded()}),n.load()}},PIXI.AssetLoader.prototype.onAssetLoaded=function(){this.loadCount--,this.dispatchEvent({type:"onProgress",content:this}),this.onProgress&&this.onProgress(),0==this.loadCount&&(this.dispatchEvent({type:"onComplete",content:this}),this.onComplete&&this.onComplete())},PIXI.SpriteSheetLoader=function(t,e){PIXI.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.frames={},this.crossorigin=e},PIXI.SpriteSheetLoader.constructor=PIXI.SpriteSheetLoader,PIXI.SpriteSheetLoader.prototype.load=function(){this.ajaxRequest=new AjaxRequest;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onJSONLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/json"),this.ajaxRequest.send(null)},PIXI.SpriteSheetLoader.prototype.onJSONLoaded=function(){if(4==this.ajaxRequest.readyState&&(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))){var jsonData=eval("("+this.ajaxRequest.responseText+")"),textureUrl=this.baseUrl+jsonData.meta.image,image=new PIXI.ImageLoader(textureUrl,this.crossorigin);this.texture=image.texture.baseTexture;var scope=this;image.addEventListener("loaded",function(){scope.onLoaded()});var frameData=jsonData.frames;for(var i in frameData){var rect=frameData[i].frame;rect&&(PIXI.TextureCache[i]=new PIXI.Texture(this.texture,{x:rect.x,y:rect.y,width:rect.w,height:rect.h}),frameData[i].trimmed&&(PIXI.TextureCache[i].realSize=frameData[i].spriteSourceSize,PIXI.TextureCache[i].trim.x=0))}image.load()}},PIXI.SpriteSheetLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},PIXI.ImageLoader=function(t,e){PIXI.EventTarget.call(this),this.texture=PIXI.Texture.fromImage(t,e)},PIXI.ImageLoader.constructor=PIXI.ImageLoader,PIXI.ImageLoader.prototype.load=function(){if(this.texture.baseTexture.hasLoaded)this.onLoaded();else{var t=this;this.texture.baseTexture.addEventListener("loaded",function(){t.onLoaded()})}},PIXI.ImageLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},PIXI.BitmapFontLoader=function(t,e){PIXI.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.crossorigin=e},PIXI.BitmapFontLoader.constructor=PIXI.BitmapFontLoader,PIXI.BitmapFontLoader.prototype.load=function(){this.ajaxRequest=new XMLHttpRequest;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onXMLLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/xml"),this.ajaxRequest.send(null)},PIXI.BitmapFontLoader.prototype.onXMLLoaded=function(){if(4==this.ajaxRequest.readyState&&(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))){var t=this.baseUrl+this.ajaxRequest.responseXML.getElementsByTagName("page")[0].attributes.getNamedItem("file").nodeValue,e=new PIXI.ImageLoader(t,this.crossorigin);this.texture=e.texture.baseTexture;var i={},r=this.ajaxRequest.responseXML.getElementsByTagName("info")[0],s=this.ajaxRequest.responseXML.getElementsByTagName("common")[0];i.font=r.attributes.getNamedItem("face").nodeValue,i.size=parseInt(r.attributes.getNamedItem("size").nodeValue,10),i.lineHeight=parseInt(s.attributes.getNamedItem("lineHeight").nodeValue,10),i.chars={};for(var n=this.ajaxRequest.responseXML.getElementsByTagName("char"),a=0;n.length>a;a++){var o=parseInt(n[a].attributes.getNamedItem("id").nodeValue,10),h={x:parseInt(n[a].attributes.getNamedItem("x").nodeValue,10),y:parseInt(n[a].attributes.getNamedItem("y").nodeValue,10),width:parseInt(n[a].attributes.getNamedItem("width").nodeValue,10),height:parseInt(n[a].attributes.getNamedItem("height").nodeValue,10)};PIXI.TextureCache[o]=new PIXI.Texture(this.texture,h),i.chars[o]={xOffset:parseInt(n[a].attributes.getNamedItem("xoffset").nodeValue,10),yOffset:parseInt(n[a].attributes.getNamedItem("yoffset").nodeValue,10),xAdvance:parseInt(n[a].attributes.getNamedItem("xadvance").nodeValue,10),kerning:{}}}var u=this.ajaxRequest.responseXML.getElementsByTagName("kerning");for(a=0;u.length>a;a++){var d=parseInt(u[a].attributes.getNamedItem("first").nodeValue,10),c=parseInt(u[a].attributes.getNamedItem("second").nodeValue,10),l=parseInt(u[a].attributes.getNamedItem("amount").nodeValue,10);i.chars[c].kerning[d]=l}PIXI.BitmapText.fonts[i.font]=i;var I=this;e.addEventListener("loaded",function(){I.onLoaded()}),e.load()}},PIXI.BitmapFontLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=PIXI),exports.PIXI=PIXI):root.PIXI=PIXI}).call(this); \ No newline at end of file diff --git a/docs/classes/WebGLRenderer.html b/docs/classes/WebGLRenderer.html index 581cb5a..fcef6b6 100644 --- a/docs/classes/WebGLRenderer.html +++ b/docs/classes/WebGLRenderer.html @@ -498,7 +498,7 @@ - src/pixi/renderers/WebGLRenderer.js:283 + src/pixi/renderers/WebGLRenderer.js:284

diff --git a/docs/data.json b/docs/data.json index 9b4a49d..4b27831 100644 --- a/docs/data.json +++ b/docs/data.json @@ -1388,35 +1388,35 @@ }, { "file": "src/pixi/renderers/WebGLRenderGroup.js", - "line": 523, + "line": 527, "access": "private", "tagname": "", "class": "WebGLBatch" }, { "file": "src/pixi/renderers/WebGLRenderGroup.js", - "line": 607, + "line": 613, "access": "private", "tagname": "", "class": "WebGLBatch" }, { "file": "src/pixi/renderers/WebGLRenderGroup.js", - "line": 663, + "line": 669, "access": "private", "tagname": "", "class": "WebGLBatch" }, { "file": "src/pixi/renderers/WebGLRenderGroup.js", - "line": 740, + "line": 746, "access": "private", "tagname": "", "class": "WebGLBatch" }, { "file": "src/pixi/renderers/WebGLRenderGroup.js", - "line": 777, + "line": 783, "access": "private", "tagname": "", "class": "WebGLBatch" @@ -1465,14 +1465,14 @@ }, { "file": "src/pixi/renderers/WebGLRenderer.js", - "line": 232, + "line": 225, "access": "private", "tagname": "", "class": "WebGLRenderer" }, { "file": "src/pixi/renderers/WebGLRenderer.js", - "line": 283, + "line": 284, "description": "resizes the webGL view to the specified width and height", "itemtype": "method", "name": "resize", @@ -1492,14 +1492,14 @@ }, { "file": "src/pixi/renderers/WebGLRenderer.js", - "line": 307, + "line": 308, "access": "private", "tagname": "", "class": "WebGLRenderer" }, { "file": "src/pixi/renderers/WebGLRenderer.js", - "line": 316, + "line": 317, "access": "private", "tagname": "", "class": "WebGLRenderer" @@ -2908,23 +2908,23 @@ }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderGroup.js:523" + "line": " src/pixi/renderers/WebGLRenderGroup.js:527" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderGroup.js:607" + "line": " src/pixi/renderers/WebGLRenderGroup.js:613" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderGroup.js:663" + "line": " src/pixi/renderers/WebGLRenderGroup.js:669" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderGroup.js:740" + "line": " src/pixi/renderers/WebGLRenderGroup.js:746" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderGroup.js:777" + "line": " src/pixi/renderers/WebGLRenderGroup.js:783" }, { "message": "Missing item type", @@ -2944,15 +2944,15 @@ }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderer.js:232" + "line": " src/pixi/renderers/WebGLRenderer.js:225" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderer.js:307" + "line": " src/pixi/renderers/WebGLRenderer.js:308" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderer.js:316" + "line": " src/pixi/renderers/WebGLRenderer.js:317" }, { "message": "Missing item type", diff --git a/docs/files/src_pixi_renderers_WebGLRenderGroup.js.html b/docs/files/src_pixi_renderers_WebGLRenderGroup.js.html index 7222602..42bcabd 100644 --- a/docs/files/src_pixi_renderers_WebGLRenderGroup.js.html +++ b/docs/files/src_pixi_renderers_WebGLRenderGroup.js.html @@ -177,6 +177,8 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + //PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. @@ -215,6 +217,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + //PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -683,7 +687,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/docs/files/src_pixi_renderers_WebGLRenderer.js.html b/docs/files/src_pixi_renderers_WebGLRenderer.js.html index 0383c4d..551dd19 100644 --- a/docs/files/src_pixi_renderers_WebGLRenderer.js.html +++ b/docs/files/src_pixi_renderers_WebGLRenderer.js.html @@ -306,15 +306,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -366,9 +359,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -400,7 +402,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) diff --git a/examples/example 1 - Basics/pixi.js b/examples/example 1 - Basics/pixi.js index f29080a..3478cf4 100644 --- a/examples/example 1 - Basics/pixi.js +++ b/examples/example 1 - Basics/pixi.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/examples/example 10 - Text/pixi.js b/examples/example 10 - Text/pixi.js index f29080a..3478cf4 100644 --- a/examples/example 10 - Text/pixi.js +++ b/examples/example 10 - Text/pixi.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/examples/example 11 - RenderTexture/index.html b/examples/example 11 - RenderTexture/index.html index efd342b..e4acf76 100644 --- a/examples/example 11 - RenderTexture/index.html +++ b/examples/example 11 - RenderTexture/index.html @@ -15,7 +15,7 @@ diff --git a/examples/example 11 - RenderTexture/pixi.js b/examples/example 11 - RenderTexture/pixi.js index f29080a..3478cf4 100644 --- a/examples/example 11 - RenderTexture/pixi.js +++ b/examples/example 11 - RenderTexture/pixi.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/examples/example 2 - SpriteSheet/pixi.js b/examples/example 2 - SpriteSheet/pixi.js index f29080a..3478cf4 100644 --- a/examples/example 2 - SpriteSheet/pixi.js +++ b/examples/example 2 - SpriteSheet/pixi.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/examples/example 3 - MovieClip/pixi.js b/examples/example 3 - MovieClip/pixi.js index f29080a..3478cf4 100755 --- a/examples/example 3 - MovieClip/pixi.js +++ b/examples/example 3 - MovieClip/pixi.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/examples/example 4 - Balls/pixi.js b/examples/example 4 - Balls/pixi.js index f29080a..3478cf4 100644 --- a/examples/example 4 - Balls/pixi.js +++ b/examples/example 4 - Balls/pixi.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/examples/example 5 - Morph/pixi.js b/examples/example 5 - Morph/pixi.js index f29080a..3478cf4 100644 --- a/examples/example 5 - Morph/pixi.js +++ b/examples/example 5 - Morph/pixi.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/examples/example 6 - Interactivity/pixi.js b/examples/example 6 - Interactivity/pixi.js index f29080a..3478cf4 100644 --- a/examples/example 6 - Interactivity/pixi.js +++ b/examples/example 6 - Interactivity/pixi.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/examples/example 7 - Transparent Background/pixi.js b/examples/example 7 - Transparent Background/pixi.js index f29080a..3478cf4 100644 --- a/examples/example 7 - Transparent Background/pixi.js +++ b/examples/example 7 - Transparent Background/pixi.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/examples/example 8 - Dragging/pixi.js b/examples/example 8 - Dragging/pixi.js index f29080a..3478cf4 100644 --- a/examples/example 8 - Dragging/pixi.js +++ b/examples/example 8 - Dragging/pixi.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/bin/pixi.dev.js b/bin/pixi.dev.js index f29080a..3478cf4 100644 --- a/bin/pixi.dev.js +++ b/bin/pixi.dev.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/bin/pixi.js b/bin/pixi.js index 5f2a13c..a6d54d1 100644 --- a/bin/pixi.js +++ b/bin/pixi.js @@ -4,10 +4,10 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php */ -(function(){function HEXtoRGB(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}function determineMatrixArrayType(){return PIXI.Matrix="undefined"!=typeof Float32Array?Float32Array:Array,PIXI.Matrix}var root=this,PIXI=PIXI||{};PIXI.Point=function(t,e){this.x=t||0,this.y=e||0},PIXI.Point.prototype.clone=function(){return new PIXI.Point(this.x,this.y)},PIXI.Point.constructor=PIXI.Point,PIXI.Rectangle=function(t,e,i,r){this.x=t||0,this.y=e||0,this.width=i||0,this.height=r||0},PIXI.Rectangle.prototype.clone=function(){return new PIXI.Rectangle(this.x,this.y,this.width,this.height)},PIXI.Rectangle.constructor=PIXI.Rectangle,PIXI.DisplayObject=function(){this.position=new PIXI.Point,this.scale=new PIXI.Point(1,1),this.pivot=new PIXI.Point(0,0),this.rotation=0,this.alpha=1,this.visible=!0,this.worldVisible=!1,this.parent=null,this.stage=null,this.hitArea=null,this.worldAlpha=1,this.color=[],this.worldTransform=PIXI.mat3.create(),this.localTransform=PIXI.mat3.create(),this.dynamic=!0,this._sr=0,this._cr=1,this.childIndex=0,this.renderable=!1,this.interactive=!1,this.buttonMode=!1},PIXI.DisplayObject.constructor=PIXI.DisplayObject,PIXI.DisplayObject.prototype.setInteractive=function(t){this.interactive=t,this.stage&&(this.stage.dirty=!0)},PIXI.DisplayObject.prototype.updateTransform=function(){this.rotation!=this.rotationCache&&(this.rotationCache=this.rotation,this._sr=Math.sin(this.rotation),this._cr=Math.cos(this.rotation));var t=this.localTransform,e=this.parent.worldTransform,i=this.worldTransform;t[0]=this._cr*this.scale.x,t[1]=-this._sr*this.scale.y,t[3]=this._sr*this.scale.x,t[4]=this._cr*this.scale.y;var r=this.pivot.x,s=this.pivot.y;t[2]=this.position.x-t[0]*r-s*t[1],t[5]=this.position.y-t[4]*s-r*t[3];var n=t[0],a=t[1],o=t[2],h=t[3],u=t[4],c=t[5],d=e[0],l=e[1],I=e[2],p=e[3],f=e[4],x=e[5];i[0]=d*n+l*h,i[1]=d*a+l*u,i[2]=d*o+l*c+I,i[3]=p*n+f*h,i[4]=p*a+f*u,i[5]=p*o+f*c+x,this.worldAlpha=this.alpha*this.parent.worldAlpha},PIXI.DisplayObjectContainer=function(){PIXI.DisplayObject.call(this),this.children=[],this.renderable=!1},PIXI.DisplayObjectContainer.constructor=PIXI.DisplayObjectContainer,PIXI.DisplayObjectContainer.prototype=Object.create(PIXI.DisplayObject.prototype),PIXI.DisplayObjectContainer.prototype.addChild=function(t){void 0!=t.parent&&t.parent.removeChild(t),t.parent=this,t.childIndex=this.children.length,this.children.push(t),this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},PIXI.DisplayObjectContainer.prototype.addChildAt=function(t,e){if(!(e>=0&&this.children.length>=e))throw Error(t+" The index "+e+" supplied is out of bounds "+this.children.length);void 0!=t.parent&&t.parent.removeChild(t),e==this.children.length?this.children.push(t):this.children.splice(e,0,t),t.parent=this,t.childIndex=e;for(var i=this.children.length,r=e;i>r;r++)this.children[r].childIndex=r;this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},PIXI.DisplayObjectContainer.prototype.swapChildren=function(t,e){var i=this.children.indexOf(t),r=this.children.indexOf(e);if(-1===i||-1===r)throw Error(t+" Both the supplied DisplayObjects must be a child of the caller "+this);this.stage&&(this.stage.__removeChild(t),this.stage.__removeChild(e),this.stage.__addChild(t),this.stage.__addChild(e)),t.childIndex=r,e.childIndex=i,this.children[i]=e,this.children[r]=t},PIXI.DisplayObjectContainer.prototype.getChildAt=function(t){if(t>=0&&this.children.length>t)return this.children[t];throw Error(child+" Both the supplied DisplayObjects must be a child of the caller "+this)},PIXI.DisplayObjectContainer.prototype.removeChild=function(t){var e=this.children.indexOf(t);if(-1===e)throw Error(t+" The supplied DisplayObject must be a child of the caller "+this);this.stage&&this.stage.__removeChild(t),t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.parent=void 0,this.children.splice(e,1);for(var i=e,r=this.children.length;r>i;i++)this.children[i].childIndex-=1},PIXI.DisplayObjectContainer.prototype.updateTransform=function(){if(this.visible){PIXI.DisplayObject.prototype.updateTransform.call(this);for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform()}},PIXI.blendModes={},PIXI.blendModes.NORMAL=0,PIXI.blendModes.SCREEN=1,PIXI.Sprite=function(t){PIXI.DisplayObjectContainer.call(this),this.anchor=new PIXI.Point,this.texture=t,this.blendMode=PIXI.blendModes.NORMAL,this._width=0,this._height=0,t.baseTexture.hasLoaded?this.updateFrame=!0:(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},PIXI.Sprite.constructor=PIXI.Sprite,PIXI.Sprite.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),Object.defineProperty(PIXI.Sprite.prototype,"width",{get:function(){return this.scale.x*this.texture.frame.width},set:function(t){this.scale.x=t/this.texture.frame.width,this._width=t}}),Object.defineProperty(PIXI.Sprite.prototype,"height",{get:function(){return this.scale.y*this.texture.frame.height},set:function(t){this.scale.y=t/this.texture.frame.height,this._height=t}}),PIXI.Sprite.prototype.setTexture=function(t){this.texture.baseTexture!=t.baseTexture&&(this.textureChange=!0),this.texture=t,this.updateFrame=!0},PIXI.Sprite.prototype.onTextureUpdate=function(){this._width&&(this.scale.x=this._width/this.texture.frame.width),this._height&&(this.scale.y=this._height/this.texture.frame.height),this.updateFrame=!0},PIXI.Sprite.fromFrame=function(t){var e=PIXI.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache"+this);return new PIXI.Sprite(e)},PIXI.Sprite.fromImage=function(t){var e=PIXI.Texture.fromImage(t);return new PIXI.Sprite(e)},PIXI.MovieClip=function(t){PIXI.Sprite.call(this,t[0]),this.textures=t,this.currentFrame=0,this.animationSpeed=1,this.loop=!0,this.onComplete=null,this.playing},PIXI.MovieClip.constructor=PIXI.MovieClip,PIXI.MovieClip.prototype=Object.create(PIXI.Sprite.prototype),PIXI.MovieClip.prototype.stop=function(){this.playing=!1},PIXI.MovieClip.prototype.play=function(){this.playing=!0},PIXI.MovieClip.prototype.gotoAndStop=function(t){this.playing=!1,this.currentFrame=t;var e=0|this.currentFrame+.5;this.setTexture(this.textures[e%this.textures.length])},PIXI.MovieClip.prototype.gotoAndPlay=function(t){this.currentFrame=t,this.playing=!0},PIXI.MovieClip.prototype.updateTransform=function(){if(PIXI.Sprite.prototype.updateTransform.call(this),this.playing){this.currentFrame+=this.animationSpeed;var t=0|this.currentFrame+.5;this.loop||this.textures.length>t?this.setTexture(this.textures[t%this.textures.length]):t>=this.textures.length&&(this.gotoAndStop(this.textures.length-1),this.onComplete&&this.onComplete())}},PIXI.Text=function(t,e){this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"),PIXI.Sprite.call(this,PIXI.Texture.fromCanvas(this.canvas)),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},PIXI.Text.constructor=PIXI.Text,PIXI.Text.prototype=Object.create(PIXI.Sprite.prototype),PIXI.Text.prototype.setStyle=function(t){t=t||{},t.font=t.font||"bold 20pt Arial",t.fill=t.fill||"black",t.align=t.align||"left",t.strokeThickness=t.strokeThickness||0,this.style=t,this.dirty=!0},PIXI.Sprite.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},PIXI.Text.prototype.updateText=function(){this.context.font=this.style.font;for(var t=this.text.split(/(?:\r\n|\r|\n)/),e=[],i=0,r=0;t.length>r;r++){var s=this.context.measureText(t[r]).width;e[r]=s,i=Math.max(i,s)}this.canvas.width=i+this.style.strokeThickness;var n=this.determineFontHeight("font: "+this.style.font+";")+this.style.strokeThickness;for(this.canvas.height=n*t.length,this.context.fillStyle=this.style.fill,this.context.font=this.style.font,this.context.strokeStyle=this.style.stroke,this.context.lineWidth=this.style.strokeThickness,this.context.textBaseline="top",r=0;t.length>r;r++){var a=new PIXI.Point(this.style.strokeThickness/2,this.style.strokeThickness/2+r*n);"right"==this.style.align?a.x+=i-e[r]:"center"==this.style.align&&(a.x+=(i-e[r])/2),this.style.stroke&&this.style.strokeThickness&&this.context.strokeText(t[r],a.x,a.y),this.style.fill&&this.context.fillText(t[r],a.x,a.y)}this.updateTexture()},PIXI.Text.prototype.updateTexture=function(){this.texture.baseTexture.width=this.canvas.width,this.texture.baseTexture.height=this.canvas.height,this.texture.frame.width=this.canvas.width,this.texture.frame.height=this.canvas.height,this._width=this.canvas.width,this._height=this.canvas.height,PIXI.texturesToUpdate.push(this.texture.baseTexture)},PIXI.Text.prototype.updateTransform=function(){this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype.updateTransform.call(this)},PIXI.Text.prototype.determineFontHeight=function(t){var e=PIXI.Text.heightCache[t];if(!e){var i=document.getElementsByTagName("body")[0],r=document.createElement("div"),s=document.createTextNode("M");r.appendChild(s),r.setAttribute("style",t),i.appendChild(r),e=r.offsetHeight,PIXI.Text.heightCache[t]=e,i.removeChild(r)}return e},PIXI.Text.prototype.destroy=function(t){t&&this.texture.destroy()},PIXI.Text.heightCache={},PIXI.BitmapText=function(t,e){PIXI.DisplayObjectContainer.call(this),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},PIXI.BitmapText.constructor=PIXI.BitmapText,PIXI.BitmapText.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.BitmapText.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},PIXI.BitmapText.prototype.setStyle=function(t){t=t||{},t.align=t.align||"left",this.style=t;var e=t.font.split(" ");this.fontName=e[e.length-1],this.fontSize=e.length>=2?parseInt(e[e.length-2],10):PIXI.BitmapText.fonts[this.fontName].size,this.dirty=!0},PIXI.BitmapText.prototype.updateText=function(){for(var t=PIXI.BitmapText.fonts[this.fontName],e=new PIXI.Point,i=null,r=[],s=0,n=[],a=0,o=this.fontSize/t.size,h=0;this.text.length>h;h++){var u=this.text.charCodeAt(h);if(/(?:\r\n|\r|\n)/.test(this.text.charAt(h)))n.push(e.x),s=Math.max(s,e.x),a++,e.x=0,e.y+=t.lineHeight,i=null;else{var c=t.chars[u];c&&(i&&c[i]&&(e.x+=c.kerning[i]),r.push({line:a,charCode:u,position:new PIXI.Point(e.x+c.xOffset,e.y+c.yOffset)}),e.x+=c.xAdvance,i=u)}}n.push(e.x),s=Math.max(s,e.x);var d=[];for(h=0;a>=h;h++){var l=0;"right"==this.style.align?l=s-n[h]:"center"==this.style.align&&(l=(s-n[h])/2),d.push(l)}for(h=0;r.length>h;h++){var I=PIXI.Sprite.fromFrame(r[h].charCode);I.position.x=(r[h].position.x+d[r[h].line])*o,I.position.y=r[h].position.y*o,I.scale.x=I.scale.y=o,this.addChild(I)}this.width=e.x*o,this.height=(e.y+t.lineHeight)*o},PIXI.BitmapText.prototype.updateTransform=function(){if(this.dirty){for(;this.children.length>0;)this.removeChild(this.getChildAt(0));this.updateText(),this.dirty=!1}PIXI.DisplayObjectContainer.prototype.updateTransform.call(this)},PIXI.BitmapText.fonts={},PIXI.InteractionManager=function(t){this.stage=t,this.tempPoint=new PIXI.Point,this.mouseoverEnabled=!0,this.mouse=new PIXI.InteractionData,this.touchs={},this.pool=[],this.interactiveItems=[],this.last=0},PIXI.InteractionManager.constructor=PIXI.InteractionManager,PIXI.InteractionManager.prototype.collectInteractiveSprite=function(t,e){for(var i=t.children,r=i.length,s=r-1;s>=0;s--){var n=i[s];n.interactive?(e.interactiveChildren=!0,this.interactiveItems.push(n),n.children.length>0&&this.collectInteractiveSprite(n,n)):(n.__iParent=null,n.children.length>0&&this.collectInteractiveSprite(n,e))}},PIXI.InteractionManager.prototype.setTarget=function(t){window.navigator.msPointerEnabled&&(t.view.style["-ms-content-zooming"]="none",t.view.style["-ms-touch-action"]="none"),this.target=t,t.view.addEventListener("mousemove",this.onMouseMove.bind(this),!0),t.view.addEventListener("mousedown",this.onMouseDown.bind(this),!0),document.body.addEventListener("mouseup",this.onMouseUp.bind(this),!0),t.view.addEventListener("mouseout",this.onMouseUp.bind(this),!0),t.view.addEventListener("touchstart",this.onTouchStart.bind(this),!0),t.view.addEventListener("touchend",this.onTouchEnd.bind(this),!0),t.view.addEventListener("touchmove",this.onTouchMove.bind(this),!0)},PIXI.InteractionManager.prototype.update=function(){if(this.target){var t=Date.now(),e=t-this.last;if(e=30*e/1e3,!(1>e)){if(this.last=t,this.dirty){this.dirty=!1,this.interactiveItems.length;for(var i=0;this.interactiveItems.length>i;i++)this.interactiveItems[i].interactiveChildren=!1;this.interactiveItems=[],this.stage.interactive&&this.interactiveItems.push(this.stage),this.collectInteractiveSprite(this.stage,this.stage)}var r=this.interactiveItems.length;this.target.view.style.cursor="default";for(var i=0;r>i;i++){var s=this.interactiveItems[i];s.visible&&(s.mouseover||s.mouseout||s.buttonMode)&&(s.__hit=this.hitTest(s,this.mouse),s.__hit?(s.buttonMode&&(this.target.view.style.cursor="pointer"),s.__isOver||(s.mouseover&&s.mouseover(this.mouse),s.__isOver=!0)):s.__isOver&&(s.mouseout&&s.mouseout(this.mouse),s.__isOver=!1))}}}},PIXI.InteractionManager.prototype.onMouseMove=function(t){t.preventDefault();var e=this.target.view.getBoundingClientRect();this.mouse.global.x=(t.clientX-e.left)*(this.target.width/e.width),this.mouse.global.y=(t.clientY-e.top)*(this.target.height/e.height);var i=this.interactiveItems.length;this.mouse.global;for(var r=0;i>r;r++){var s=this.interactiveItems[r];s.mousemove&&s.mousemove(this.mouse)}},PIXI.InteractionManager.prototype.onMouseDown=function(t){t.preventDefault();var e=this.interactiveItems.length;this.mouse.global,this.stage;for(var i=0;e>i;i++){var r=this.interactiveItems[i];if((r.mousedown||r.click)&&(r.__mouseIsDown=!0,r.__hit=this.hitTest(r,this.mouse),r.__hit&&(r.mousedown&&r.mousedown(this.mouse),r.__isDown=!0,!r.interactiveChildren)))break}},PIXI.InteractionManager.prototype.onMouseUp=function(t){t.preventDefault(),this.mouse.global;for(var e=this.interactiveItems.length,i=!1,r=0;e>r;r++){var s=this.interactiveItems[r];(s.mouseup||s.mouseupoutside||s.click)&&(s.__hit=this.hitTest(s,this.mouse),s.__hit&&!i?(s.mouseup&&s.mouseup(this.mouse),s.__isDown&&s.click&&s.click(this.mouse),s.interactiveChildren||(i=!0)):s.__isDown&&s.mouseupoutside&&s.mouseupoutside(this.mouse),s.__isDown=!1)}},PIXI.InteractionManager.prototype.hitTest=function(t,e){var i=e.global;if(!t.visible)return!1;if(t instanceof PIXI.Sprite){var r=t.worldTransform,s=r[0],n=r[1],a=r[2],o=r[3],h=r[4],u=r[5],c=1/(s*h+n*-o),d=h*c*i.x+-n*c*i.y+(u*n-a*h)*c,l=s*c*i.y+-o*c*i.x+(-u*s+a*o)*c,I=t.texture.frame.width,p=t.texture.frame.height,f=-I*t.anchor.x;if(d>f&&f+I>d){var x=-p*t.anchor.y;if(l>x&&x+p>l)return e.target=t,!0}}else if(t.hitArea){var r=t.worldTransform,v=t.hitArea,s=r[0],n=r[1],a=r[2],o=r[3],h=r[4],u=r[5],c=1/(s*h+n*-o),d=h*c*i.x+-n*c*i.y+(u*n-a*h)*c,l=s*c*i.y+-o*c*i.x+(-u*s+a*o)*c,f=v.x;if(d>f&&f+v.width>d){var x=v.y;if(l>x&&x+v.height>l)return!0}}for(var P=t.children.length,g=0;P>g;g++){var b=t.children[g],X=this.hitTest(b,e);if(X)return!0}return!1},PIXI.InteractionManager.prototype.onTouchMove=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.touchs[s.identifier];n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height)}for(var a=this.interactiveItems.length,r=0;a>r;r++){var o=this.interactiveItems[r];o.touchmove&&o.touchmove(n)}},PIXI.InteractionManager.prototype.onTouchStart=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.pool.pop();n||(n=new PIXI.InteractionData),this.touchs[s.identifier]=n,n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height);for(var a=this.interactiveItems.length,o=0;a>o;o++){var h=this.interactiveItems[o];if((h.touchstart||h.tap)&&(h.__hit=this.hitTest(h,n),h.__hit&&(h.touchstart&&h.touchstart(n),h.__isDown=!0,h.__touchData=n,!h.interactiveChildren)))break}}},PIXI.InteractionManager.prototype.onTouchEnd=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.touchs[s.identifier],a=!1;n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var u=this.interactiveItems[h],c=u.__touchData;u.__hit=this.hitTest(u,n),c==n&&((u.touchend||u.tap)&&(u.__hit&&!a?(u.touchend&&u.touchend(n),u.__isDown&&u.tap&&u.tap(n),u.interactiveChildren||(a=!0)):u.__isDown&&u.touchendoutside&&u.touchendoutside(n),u.__isDown=!1),u.__touchData=null)}this.pool.push(n),this.touchs[s.identifier]=null}},PIXI.InteractionData=function(){this.global=new PIXI.Point,this.local=new PIXI.Point,this.target},PIXI.InteractionData.prototype.getLocalPosition=function(t){var e=t.worldTransform,i=this.global,r=e[0],s=e[1],n=e[2],a=e[3],o=e[4],h=e[5],u=1/(r*o+s*-a);return new PIXI.Point(o*u*i.x+-s*u*i.y+(h*s-n*o)*u,r*u*i.y+-a*u*i.x+(-h*r+n*a)*u)},PIXI.InteractionData.constructor=PIXI.InteractionData,PIXI.Stage=function(t,e){PIXI.DisplayObjectContainer.call(this),this.worldTransform=PIXI.mat3.create(),this.__childrenAdded=[],this.__childrenRemoved=[],this.childIndex=0,this.stage=this,this.stage.hitArea=new PIXI.Rectangle(0,0,1e5,1e5),this.interactive=!!e,this.interactionManager=new PIXI.InteractionManager(this),this.setBackgroundColor(t),this.worldVisible=!0},PIXI.Stage.constructor=PIXI.Stage,PIXI.Stage.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Stage.prototype.updateTransform=function(){this.worldAlpha=1;for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform();this.dirty&&(this.dirty=!1,this.interactionManager.dirty=!0),this.interactive&&this.interactionManager.update()},PIXI.Stage.prototype.setBackgroundColor=function(t){this.backgroundColor=t||0,this.backgroundColorSplit=HEXtoRGB(this.backgroundColor),this.backgroundColorString="#"+this.backgroundColor.toString(16)},PIXI.Stage.prototype.getMousePosition=function(){return this.interactionManager.mouse.global},PIXI.Stage.prototype.__addChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=this,t.children)for(var e=0;t.children.length>e;e++)this.__addChild(t.children[e])},PIXI.Stage.prototype.__removeChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=void 0,t.children)for(var e=0,i=t.children.length;i>e;e++)this.__removeChild(t.children[e])},window.requestAnimFrame=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(t){window.setTimeout(t,1e3/60)}}(),"function"!=typeof Function.prototype.bind&&(Function.prototype.bind=function(){var t=Array.prototype.slice;return function(e){function i(){var n=s.concat(t.call(arguments));r.apply(this instanceof i?this:e,n)}var r=this,s=t.call(arguments,1);if("function"!=typeof r)throw new TypeError;return i.prototype=function n(t){return t&&(n.prototype=t),this instanceof n?void 0:new n}(r.prototype),i}}());var AjaxRequest=function(){var t=["Msxml2.XMLHTTP","Microsoft.XMLHTTP"];if(!window.ActiveXObject)return window.XMLHttpRequest?new XMLHttpRequest:!1;for(var e=0;t.length>e;e++)try{return new ActiveXObject(t[e])}catch(i){}};PIXI.EventTarget=function(){var t={};this.addEventListener=this.on=function(e,i){void 0===t[e]&&(t[e]=[]),-1===t[e].indexOf(i)&&t[e].push(i)},this.dispatchEvent=this.emit=function(e){for(var i in t[e.type])t[e.type][i](e)},this.removeEventListener=this.off=function(e,i){var r=t[e].indexOf(i);-1!==r&&t[e].splice(r,1)}},determineMatrixArrayType(),PIXI.mat3={},PIXI.mat3.create=function(){var t=new PIXI.Matrix(9);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},PIXI.mat4={},PIXI.mat4.create=function(){var t=new PIXI.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},PIXI.mat3.multiply=function(t,e,i){i||(i=t);var r=t[0],s=t[1],n=t[2],a=t[3],o=t[4],h=t[5],u=t[6],c=t[7],d=t[8],l=e[0],I=e[1],p=e[2],f=e[3],x=e[4],v=e[5],P=e[6],g=e[7],b=e[8];return i[0]=l*r+I*a+p*u,i[1]=l*s+I*o+p*c,i[2]=l*n+I*h+p*d,i[3]=f*r+x*a+v*u,i[4]=f*s+x*o+v*c,i[5]=f*n+x*h+v*d,i[6]=P*r+g*a+b*u,i[7]=P*s+g*o+b*c,i[8]=P*n+g*h+b*d,i},PIXI.mat3.toMat4=function(t,e){return e||(e=PIXI.mat4.create()),e[15]=1,e[14]=0,e[13]=0,e[12]=0,e[11]=0,e[10]=t[8],e[9]=t[7],e[8]=t[6],e[7]=0,e[6]=t[5],e[5]=t[4],e[4]=t[3],e[3]=0,e[2]=t[2],e[1]=t[1],e[0]=t[0],e},PIXI.mat4.create=function(){var t=new PIXI.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},PIXI.mat4.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],s=t[3],n=t[6],a=t[7],o=t[11];return t[1]=t[4],t[2]=t[8],t[3]=t[12],t[4]=i,t[6]=t[9],t[7]=t[13],t[8]=r,t[9]=n,t[11]=t[14],t[12]=s,t[13]=a,t[14]=o,t}return e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=t[1],e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=t[2],e[9]=t[6],e[10]=t[10],e[11]=t[14],e[12]=t[3],e[13]=t[7],e[14]=t[11],e[15]=t[15],e},PIXI.mat4.multiply=function(t,e,i){i||(i=t);var r=t[0],s=t[1],n=t[2],a=t[3],o=t[4],h=t[5],u=t[6],c=t[7],d=t[8],l=t[9],I=t[10],p=t[11],f=t[12],x=t[13],v=t[14],P=t[15],g=e[0],b=e[1],X=e[2],m=e[3];return i[0]=g*r+b*o+X*d+m*f,i[1]=g*s+b*h+X*l+m*x,i[2]=g*n+b*u+X*I+m*v,i[3]=g*a+b*c+X*p+m*P,g=e[4],b=e[5],X=e[6],m=e[7],i[4]=g*r+b*o+X*d+m*f,i[5]=g*s+b*h+X*l+m*x,i[6]=g*n+b*u+X*I+m*v,i[7]=g*a+b*c+X*p+m*P,g=e[8],b=e[9],X=e[10],m=e[11],i[8]=g*r+b*o+X*d+m*f,i[9]=g*s+b*h+X*l+m*x,i[10]=g*n+b*u+X*I+m*v,i[11]=g*a+b*c+X*p+m*P,g=e[12],b=e[13],X=e[14],m=e[15],i[12]=g*r+b*o+X*d+m*f,i[13]=g*s+b*h+X*l+m*x,i[14]=g*n+b*u+X*I+m*v,i[15]=g*a+b*c+X*p+m*P,i},PIXI.autoDetectRenderer=function(t,e,i,r){t||(t=800),e||(e=600);var s=function(){try{return!!window.WebGLRenderingContext&&!!document.createElement("canvas").getContext("experimental-webgl")}catch(t){return!1}}();return s?new PIXI.WebGLRenderer(t,e,i,r):new PIXI.CanvasRenderer(t,e,i,r)},PIXI.shaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * vColor;","}"],PIXI.shaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform mat4 uMVMatrix;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","gl_Position = uMVMatrix * vec4(aVertexPosition, 1.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],PIXI.CompileVertexShader=function(t,e){return PIXI._CompileShader(t,e,t.VERTEX_SHADER)},PIXI.CompileFragmentShader=function(t,e){return PIXI._CompileShader(t,e,t.FRAGMENT_SHADER)},PIXI._CompileShader=function(t,e,i){var r=e.join("\n"),s=t.createShader(i);return t.shaderSource(s,r),t.compileShader(s),t.getShaderParameter(s,t.COMPILE_STATUS)?s:(alert(t.getShaderInfoLog(s)),null)},PIXI._defaultFrame=new PIXI.Rectangle(0,0,1,1),PIXI.gl,PIXI.WebGLRenderer=function(t,e,i,r){this.transparent=!!r,this.width=t||800,this.height=e||600,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height;var s=this;this.view.addEventListener("webglcontextlost",function(t){s.handleContextLost(t)},!1),this.view.addEventListener("webglcontextrestored",function(t){s.handleContextRestored(t)},!1),this.batchs=[];try{PIXI.gl=this.gl=this.view.getContext("experimental-webgl",{alpha:this.transparent,antialias:!1,premultipliedAlpha:!0})}catch(n){throw Error(" This browser does not support webGL. Try using the canvas renderer"+this)}this.initShaders();var a=this.gl;PIXI.WebGLRenderer.gl=a,this.batch=new PIXI.WebGLBatch(a),a.disable(a.DEPTH_TEST),a.disable(a.CULL_FACE),a.enable(a.BLEND),a.colorMask(!0,!0,!0,this.transparent),this.projectionMatrix=PIXI.mat4.create(),this.resize(this.width,this.height),this.contextLost=!1,this.stageRenderGroup=new PIXI.WebGLRenderGroup(this.gl)},PIXI.WebGLRenderer.constructor=PIXI.WebGLRenderer,PIXI.WebGLRenderer.getBatch=function(){return 0==PIXI._batchs.length?new PIXI.WebGLBatch(PIXI.WebGLRenderer.gl):PIXI._batchs.pop()},PIXI.WebGLRenderer.returnBatch=function(t){t.clean(),PIXI._batchs.push(t)},PIXI.WebGLRenderer.prototype.initShaders=function(){var t=this.gl,e=PIXI.CompileFragmentShader(t,PIXI.shaderFragmentSrc),i=PIXI.CompileVertexShader(t,PIXI.shaderVertexSrc);PIXI.shaderProgram=t.createProgram();var r=PIXI.shaderProgram;t.attachShader(r,i),t.attachShader(r,e),t.linkProgram(r),t.getProgramParameter(r,t.LINK_STATUS)||alert("Could not initialise shaders"),t.useProgram(r),r.vertexPositionAttribute=t.getAttribLocation(r,"aVertexPosition"),t.enableVertexAttribArray(r.vertexPositionAttribute),r.textureCoordAttribute=t.getAttribLocation(r,"aTextureCoord"),t.enableVertexAttribArray(r.textureCoordAttribute),r.colorAttribute=t.getAttribLocation(r,"aColor"),t.enableVertexAttribArray(r.colorAttribute),r.mvMatrixUniform=t.getUniformLocation(r,"uMVMatrix"),r.samplerUniform=t.getUniformLocation(r,"uSampler")},PIXI.WebGLRenderer.prototype.render=function(t){if(!this.contextLost){this.__stage!==t&&(this.__stage=t,this.stageRenderGroup.setRenderable(t));for(var e=0;PIXI.texturesToUpdate.length>e;e++)this.updateTexture(PIXI.texturesToUpdate[e]);for(var e=0;PIXI.texturesToDestroy.length>e;e++)this.destroyTexture(PIXI.texturesToDestroy[e]);PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[],t.updateTransform();var i=this.gl;if(i.colorMask(!0,!0,!0,this.transparent),i.viewport(0,0,this.width,this.height),i.bindFramebuffer(i.FRAMEBUFFER,null),i.clearColor(t.backgroundColorSplit[0],t.backgroundColorSplit[1],t.backgroundColorSplit[2],this.transparent),i.clear(i.COLOR_BUFFER_BIT),this.stageRenderGroup.backgroundColor=t.backgroundColorSplit,this.stageRenderGroup.render(this.projectionMatrix),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),PIXI.Texture.frameUpdates.length>0){for(var e=0;PIXI.Texture.frameUpdates.length>e;e++)PIXI.Texture.frameUpdates[e].updateFrame=!1;PIXI.Texture.frameUpdates=[]}}},PIXI.WebGLRenderer.prototype.updateTexture=function(t){var e=this.gl;t._glTexture||(t._glTexture=e.createTexture()),t.hasLoaded&&(e.bindTexture(e.TEXTURE_2D,t._glTexture),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t.source),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),t._powerOf2?(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT)):(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)),e.bindTexture(e.TEXTURE_2D,null)),this.refreshBatchs=!0},PIXI.WebGLRenderer.prototype.destroyTexture=function(t){var e=this.gl;t._glTexture&&(t._glTexture=e.createTexture(),e.deleteTexture(e.TEXTURE_2D,t._glTexture))},PIXI.WebGLRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e,this.gl.viewport(0,0,this.width,this.height);var i=this.projectionMatrix;i[0]=2/this.width,i[5]=-2/this.height,i[12]=-1,i[13]=1},PIXI.WebGLRenderer.prototype.handleContextLost=function(t){t.preventDefault(),this.contextLost=!0},PIXI.WebGLRenderer.prototype.handleContextRestored=function(){this.gl=this.view.getContext("experimental-webgl",{alpha:!0}),this.initShaders();for(var t=0;PIXI.TextureCache.length>t;t++)this.updateTexture(PIXI.TextureCache[t]);for(var t=0;this.batchs.length>t;t++)this.batchs[t].restoreLostContext(this.gl),this.batchs[t].dirty=!0;PIXI._restoreBatchs(this.gl),this.contextLost=!1},PIXI._batchs=[],PIXI._getBatch=function(t){return 0==PIXI._batchs.length?new PIXI.WebGLBatch(t):PIXI._batchs.pop()},PIXI._returnBatch=function(t){t.clean(),PIXI._batchs.push(t)},PIXI._restoreBatchs=function(t){for(var e=0;PIXI._batchs.length>e;e++)PIXI._batchs[e].restoreLostContext(t)},PIXI.WebGLBatch=function(t){this.gl=t,this.size=0,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer(),this.blendMode=PIXI.blendModes.NORMAL,this.dynamicSize=1},PIXI.WebGLBatch.constructor=PIXI.WebGLBatch,PIXI.WebGLBatch.prototype.clean=function(){this.verticies=[],this.uvs=[],this.indices=[],this.colors=[],this.dynamicSize=1,this.texture=null,this.last=null,this.size=0,this.head,this.tail},PIXI.WebGLBatch.prototype.restoreLostContext=function(t){this.gl=t,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer()},PIXI.WebGLBatch.prototype.init=function(t){t.batch=this,this.dirty=!0,this.blendMode=t.blendMode,this.texture=t.texture.baseTexture,this.head=t,this.tail=t,this.size=1,this.growBatch()},PIXI.WebGLBatch.prototype.insertBefore=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__prev;e.__prev=t,t.__next=e,i?(t.__prev=i,i.__next=t):this.head=t},PIXI.WebGLBatch.prototype.insertAfter=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__next;e.__next=t,t.__prev=e,i?(t.__next=i,i.__prev=t):this.tail=t},PIXI.WebGLBatch.prototype.remove=function(t){return this.size--,0==this.size?(t.batch=null,t.__prev=null,t.__next=null,void 0):(t.__prev?t.__prev.__next=t.__next:(this.head=t.__next,this.head.__prev=null),t.__next?t.__next.__prev=t.__prev:(this.tail=t.__prev,this.tail.__next=null),t.batch=null,t.__next=null,t.__prev=null,this.dirty=!0,void 0)},PIXI.WebGLBatch.prototype.split=function(t){this.dirty=!0;var e=new PIXI.WebGLBatch(this.gl);e.init(t),e.tail=this.tail,this.tail=t.__prev,this.tail.__next=null,t.__prev=null;for(var i=0;t;)i++,t.batch=e,t=t.__next;return e.size=i,this.size-=i,e},PIXI.WebGLBatch.prototype.merge=function(t){this.dirty=!0,this.tail.__next=t.head,t.head.__prev=this.tail,this.size+=t.size,this.tail=t.tail;for(var e=t.head;e;)e.batch=this,e=e.__next},PIXI.WebGLBatch.prototype.growBatch=function(){var t=this.gl;this.dynamicSize=1==this.size?1:1.5*this.size,this.verticies=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.vertexBuffer),t.bufferData(t.ARRAY_BUFFER,this.verticies,t.DYNAMIC_DRAW),this.uvs=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.uvBuffer),t.bufferData(t.ARRAY_BUFFER,this.uvs,t.DYNAMIC_DRAW),this.dirtyUVS=!0,this.colors=new Float32Array(4*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.colorBuffer),t.bufferData(t.ARRAY_BUFFER,this.colors,t.DYNAMIC_DRAW),this.dirtyColors=!0,this.indices=new Uint16Array(6*this.dynamicSize);for(var e=this.indices.length/6,i=0;e>i;i++){var r=6*i,s=4*i;this.indices[r+0]=s+0,this.indices[r+1]=s+1,this.indices[r+2]=s+2,this.indices[r+3]=s+0,this.indices[r+4]=s+2,this.indices[r+5]=s+3}t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,this.indexBuffer),t.bufferData(t.ELEMENT_ARRAY_BUFFER,this.indices,t.STATIC_DRAW)},PIXI.WebGLBatch.prototype.refresh=function(){this.gl,this.dynamicSizei;i++)this.removeDisplayObjectAndChildren(this.toRemove[i]);this.toRemove=[],this.checkVisibility(this.root,this.root.visible);for(var r,i=0;this.batchs.length>i;i++)r=this.batchs[i],r instanceof PIXI.WebGLBatch?this.batchs[i].render():r instanceof PIXI.TilingSprite?r.visible&&this.renderTilingSprite(r,t):r instanceof PIXI.Strip&&r.visible&&this.renderStrip(r,t)},PIXI.WebGLRenderGroup.prototype.renderSpecific=function(t,e){var i=this.gl;this.checkVisibility(t,t.visible),i.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform,!1,e);var r,s,n,a,o=t.renderable?t:this.getNextRenderable(t),h=o.batch;if(o instanceof PIXI.Sprite){h=o.batch;var u=h.head;if(u==o)r=0;else for(r=1;u.__next!=o;)r++,u=u.__next}else h=o;for(var c,d=t,l=t;l.children.length>0;)l=l.children[l.children.length-1],l.renderable&&(d=l);if(d instanceof PIXI.Sprite){c=d.batch;var u=c.head;if(u==d)n=0;else for(n=1;u.__next!=d;)n++,u=u.__next}else c=d;if(h==c)return h instanceof PIXI.WebGLBatch?h.render(r,n+1):h instanceof PIXI.TilingSprite?h.visible&&this.renderTilingSprite(h,e):h instanceof PIXI.Strip?h.visible&&this.renderStrip(h,e):h instanceof PIXI.CustomRenderable&&h.visible&&h.renderWebGL(this,e),void 0;s=this.batchs.indexOf(h),a=this.batchs.indexOf(c),h instanceof PIXI.WebGLBatch?h.render(r):h instanceof PIXI.TilingSprite?h.visible&&this.renderTilingSprite(h,e):h instanceof PIXI.Strip?h.visible&&this.renderStrip(h,e):h instanceof PIXI.CustomRenderable&&h.visible&&h.renderWebGL(this,e);for(var I=s+1;a>I;I++)renderable=this.batchs[I],renderable instanceof PIXI.WebGLBatch?this.batchs[I].render():renderable instanceof PIXI.TilingSprite?renderable.visible&&this.renderTilingSprite(renderable,e):renderable instanceof PIXI.Strip?renderable.visible&&this.renderStrip(renderable,e):renderable instanceof PIXI.CustomRenderable&&renderable.visible&&renderable.renderWebGL(this,e);c instanceof PIXI.WebGLBatch?c.render(0,n+1):c instanceof PIXI.TilingSprite?c.visible&&this.renderTilingSprite(c):c instanceof PIXI.Strip?c.visible&&this.renderStrip(c):c instanceof PIXI.CustomRenderable&&c.visible&&c.renderWebGL(this,e)},PIXI.WebGLRenderGroup.prototype.checkVisibility=function(t,e){for(var i=t.children,r=0;i.length>r;r++){var s=i[r];s.worldVisible=s.visible&&e,s.textureChange&&(s.textureChange=!1,s.worldVisible&&(this.removeDisplayObject(s),this.addDisplayObject(s))),s.children.length>0&&this.checkVisibility(s,s.worldVisible)}},PIXI.WebGLRenderGroup.prototype.addDisplayObject=function(t){if(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.__renderGroup=this,t.renderable){var e=this.getPreviousRenderable(t),i=this.getNextRenderable(t);if(t instanceof PIXI.Sprite){var r,s;if(e instanceof PIXI.Sprite){if(r=e.batch,r&&r.texture==t.texture.baseTexture&&r.blendMode==t.blendMode)return r.insertAfter(t,e),void 0}else r=e;if(i)if(i instanceof PIXI.Sprite){if(s=i.batch){if(s.texture==t.texture.baseTexture&&s.blendMode==t.blendMode)return s.insertBefore(t,i),void 0;if(s==r){var n=r.split(i),a=PIXI.WebGLRenderer.getBatch(),o=this.batchs.indexOf(r);return a.init(t),this.batchs.splice(o+1,0,a,n),void 0}}}else s=i;var a=PIXI.WebGLRenderer.getBatch();if(a.init(t),r){var o=this.batchs.indexOf(r);this.batchs.splice(o+1,0,a)}else this.batchs.push(a)}else t instanceof PIXI.TilingSprite?(this.initTilingSprite(t),this.batchs.push(t)):t instanceof PIXI.Strip&&(this.initStrip(t),this.batchs.push(t));this.batchUpdate=!0}},PIXI.WebGLRenderGroup.prototype.addDisplayObjectAndChildren=function(t){this.addDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.addDisplayObjectAndChildren(e[i])},PIXI.WebGLRenderGroup.prototype.removeDisplayObject=function(t){if(t.__renderGroup=null,t.renderable){var e;if(t instanceof PIXI.Sprite){var i=t.batch;if(!i)return;i.remove(t),0==i.size&&(e=i)}else e=t;if(e){var r=this.batchs.indexOf(e);if(-1==r)return;if(0==r||r==this.batchs.length-1)return this.batchs.splice(r,1),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e),void 0;if(this.batchs[r-1]instanceof PIXI.WebGLBatch&&this.batchs[r+1]instanceof PIXI.WebGLBatch&&this.batchs[r-1].texture==this.batchs[r+1].texture&&this.batchs[r-1].blendMode==this.batchs[r+1].blendMode)return this.batchs[r-1].merge(this.batchs[r+1]),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e),PIXI.WebGLRenderer.returnBatch(this.batchs[r+1]),this.batchs.splice(r,2),void 0;this.batchs.splice(r,1),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e)}}},PIXI.WebGLRenderGroup.prototype.removeDisplayObjectAndChildren=function(t){if(t.__renderGroup==this){this.removeDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.removeDisplayObjectAndChildren(e[i])}},PIXI.WebGLRenderGroup.prototype.getNextRenderable=function(t){var e=t;do{if(0==e.children.length){if(!e.parent)return null;for(;e.childIndex==e.parent.children.length-1;)if(e=e.parent,e==this.root){e=null;break}e&&(e=e.parent.children[e.childIndex+1])}else e=e.children[0];if(!e)break}while(!e.renderable||!e.__renderGroup);return e},PIXI.WebGLRenderGroup.prototype.getPreviousRenderable=function(t){var e=t;do{if(0==e.childIndex){if(e=e.parent,!e)return null}else for(e=e.parent.children[e.childIndex-1];0!=e.children.length;)e=e.children[e.children.length-1];if(e==this.root)break}while(!e.renderable||!e.__renderGroup);return e},PIXI.WebGLRenderGroup.prototype.initTilingSprite=function(t){var e=this.gl;t.verticies=new Float32Array([0,0,t.width,0,t.width,t.height,0,t.height]),t.uvs=new Float32Array([0,0,1,0,1,1,0,1]),t.colors=new Float32Array([1,1,1,1]),t.indices=new Uint16Array([0,1,3,2]),t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW),t.texture.baseTexture._glTexture?(e.bindTexture(e.TEXTURE_2D,t.texture.baseTexture._glTexture),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT),t.texture.baseTexture._powerOf2=!0):t.texture.baseTexture._powerOf2=!0},PIXI.WebGLRenderGroup.prototype.renderStrip=function(t,e){var i=this.gl,r=PIXI.shaderProgram,s=PIXI.mat3.toMat4(t.worldTransform);PIXI.mat4.transpose(s),PIXI.mat4.multiply(e,s,s),i.uniformMatrix4fv(r.mvMatrixUniform,!1,s),t.blendMode==PIXI.blendModes.NORMAL?i.blendFunc(i.ONE,i.ONE_MINUS_SRC_ALPHA):i.blendFunc(i.ONE,i.ONE_MINUS_SRC_COLOR),t.dirty?(t.dirty=!1,i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferData(i.ARRAY_BUFFER,t.verticies,i.STATIC_DRAW),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferData(i.ARRAY_BUFFER,t.uvs,i.STATIC_DRAW),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.bufferData(i.ARRAY_BUFFER,t.colors,i.STATIC_DRAW),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer),i.bufferData(i.ELEMENT_ARRAY_BUFFER,t.indices,i.STATIC_DRAW)):(i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.verticies),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer)),i.drawElements(i.TRIANGLE_STRIP,t.indices.length,i.UNSIGNED_SHORT,0),i.uniformMatrix4fv(r.mvMatrixUniform,!1,e)},PIXI.WebGLRenderGroup.prototype.renderTilingSprite=function(t,e){var i=this.gl;PIXI.shaderProgram;var r=t.tilePosition,s=t.tileScale,n=r.x/t.texture.baseTexture.width,a=r.y/t.texture.baseTexture.height,o=t.width/t.texture.baseTexture.width/s.x,h=t.height/t.texture.baseTexture.height/s.y;t.uvs[0]=0-n,t.uvs[1]=0-a,t.uvs[2]=1*o-n,t.uvs[3]=0-a,t.uvs[4]=1*o-n,t.uvs[5]=1*h-a,t.uvs[6]=0-n,t.uvs[7]=1*h-a,i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.uvs),this.renderStrip(t,e)},PIXI.WebGLRenderer.prototype.initStrip=function(t){var e=this.gl;this.shaderProgram,t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW)},PIXI.CanvasRenderer=function(t,e,i,r){this.transparent=r,this.width=t||800,this.height=e||600,this.refresh=!0,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height,this.count=0,this.context=this.view.getContext("2d")},PIXI.CanvasRenderer.constructor=PIXI.CanvasRenderer,PIXI.CanvasRenderer.prototype.render=function(t){PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[],t.updateTransform(),this.view.style.backgroundColor==t.backgroundColorString||this.transparent||(this.view.style.backgroundColor=t.backgroundColorString),this.context.setTransform(1,0,0,1,0,0),this.context.clearRect(0,0,this.width,this.height),this.renderDisplayObject(t),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),PIXI.Texture.frameUpdates.length>0&&(PIXI.Texture.frameUpdates=[])},PIXI.CanvasRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e},PIXI.CanvasRenderer.prototype.renderDisplayObject=function(t){var e=t.worldTransform,i=this.context;if(t.visible){if(t instanceof PIXI.Sprite){var r=t.texture.frame;r&&(i.globalAlpha=t.worldAlpha,i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),i.drawImage(t.texture.baseTexture.source,r.x,r.y,r.width,r.height,t.anchor.x*-r.width,t.anchor.y*-r.height,r.width,r.height))}else t instanceof PIXI.Strip?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderStrip(t)):t instanceof PIXI.TilingSprite?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderTilingSprite(t)):t instanceof PIXI.CustomRenderable&&t.renderCanvas(this);for(var s=0;t.children.length>s;s++)this.renderDisplayObject(t.children[s]);this.context.setTransform(1,0,0,1,0,0)}},PIXI.CanvasRenderer.prototype.renderStripFlat=function(t){var e=this.context,i=t.verticies;t.uvs;var r=i.length/2;this.count++,e.beginPath();for(var s=1;r-2>s;s++){var n=2*s,a=i[n],o=i[n+2],h=i[n+4],u=i[n+1],c=i[n+3],d=i[n+5];e.moveTo(a,u),e.lineTo(o,c),e.lineTo(h,d)}e.fillStyle="#FF0000",e.fill(),e.closePath()},PIXI.CanvasRenderer.prototype.renderTilingSprite=function(t){var e=this.context;t.__tilePattern||(t.__tilePattern=e.createPattern(t.texture.baseTexture.source,"repeat")),e.beginPath();var i=t.tilePosition,r=t.tileScale;e.scale(r.x,r.y),e.translate(i.x,i.y),e.fillStyle=t.__tilePattern,e.fillRect(-i.x,-i.y,t.width/r.x,t.height/r.y),e.scale(1/r.x,1/r.y),e.translate(-i.x,-i.y),e.closePath()},PIXI.CanvasRenderer.prototype.renderStrip=function(t){var e=this.context,i=t.verticies,r=t.uvs,s=i.length/2;this.count++;for(var n=1;s-2>n;n++){var a=2*n,o=i[a],h=i[a+2],u=i[a+4],c=i[a+1],d=i[a+3],l=i[a+5],I=r[a]*t.texture.width,p=r[a+2]*t.texture.width,f=r[a+4]*t.texture.width,x=r[a+1]*t.texture.height,v=r[a+3]*t.texture.height,P=r[a+5]*t.texture.height;e.save(),e.beginPath(),e.moveTo(o,c),e.lineTo(h,d),e.lineTo(u,l),e.closePath(),e.clip();var g=I*v+x*f+p*P-v*f-x*p-I*P,b=o*v+x*u+h*P-v*u-x*h-o*P,X=I*h+o*f+p*u-h*f-o*p-I*u,m=I*v*u+x*h*f+o*p*P-o*v*f-x*p*u-I*h*P,T=c*v+x*l+d*P-v*l-x*d-c*P,y=I*d+c*f+p*l-d*f-c*p-I*l,_=I*v*l+x*d*f+c*p*P-c*v*f-x*p*l-I*d*P;e.transform(b/g,T/g,X/g,y/g,m/g,_/g),e.drawImage(t.texture.baseTexture.source,0,0),e.restore()}},PIXI.Strip=function(t,e,i){PIXI.DisplayObjectContainer.call(this),this.texture=t,this.blendMode=PIXI.blendModes.NORMAL;try{this.uvs=new Float32Array([0,1,1,1,1,0,0,1]),this.verticies=new Float32Array([0,0,0,0,0,0,0,0,0]),this.colors=new Float32Array([1,1,1,1]),this.indices=new Uint16Array([0,1,2,3])}catch(r){this.uvs=[0,1,1,1,1,0,0,1],this.verticies=[0,0,0,0,0,0,0,0,0],this.colors=[1,1,1,1],this.indices=[0,1,2,3]}this.width=e,this.height=i,t.baseTexture.hasLoaded?(this.width=this.texture.frame.width,this.height=this.texture.frame.height,this.updateFrame=!0):(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},PIXI.Strip.constructor=PIXI.Strip,PIXI.Strip.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Strip.prototype.setTexture=function(t){this.texture=t,this.width=t.frame.width,this.height=t.frame.height,this.updateFrame=!0},PIXI.Strip.prototype.onTextureUpdate=function(){this.updateFrame=!0},PIXI.Rope=function(t,e){PIXI.Strip.call(this,t),this.points=e;try{this.verticies=new Float32Array(4*e.length),this.uvs=new Float32Array(4*e.length),this.colors=new Float32Array(2*e.length),this.indices=new Uint16Array(2*e.length)}catch(i){this.verticies=verticies,this.uvs=uvs,this.colors=colors,this.indices=indices}this.refresh()},PIXI.Rope.constructor=PIXI.Rope,PIXI.Rope.prototype=Object.create(PIXI.Strip.prototype),PIXI.Rope.prototype.refresh=function(){var t=this.points;if(!(1>t.length)){var e=this.uvs,i=this.indices,r=this.colors,s=t[0],n=t[0];this.count-=.2,e[0]=0,e[1]=1,e[2]=0,e[3]=1,r[0]=1,r[1]=1,i[0]=0,i[1]=1;for(var a=t.length,o=1;a>o;o++){var n=t[o],h=4*o,u=o/(a-1);o%2?(e[h]=u,e[h+1]=0,e[h+2]=u,e[h+3]=1):(e[h]=u,e[h+1]=0,e[h+2]=u,e[h+3]=1),h=2*o,r[h]=1,r[h+1]=1,h=2*o,i[h]=h,i[h+1]=h+1,s=n}}},PIXI.Rope.prototype.updateTransform=function(){var t=this.points;if(!(1>t.length)){var e,i=this.verticies,r=t[0],s={x:0,y:0},n=t[0];this.count-=.2,i[0]=n.x+s.x,i[1]=n.y+s.y,i[2]=n.x-s.x,i[3]=n.y-s.y;for(var a=t.length,o=1;a>o;o++){var n=t[o],h=4*o;e=t.length-1>o?t[o+1]:n,s.y=-(e.x-r.x),s.x=e.y-r.y;var u=10*(1-o/(a-1));u>1&&(u=1);var c=Math.sqrt(s.x*s.x+s.y*s.y),d=this.texture.height/2;s.x/=c,s.y/=c,s.x*=d,s.y*=d,i[h]=n.x+s.x,i[h+1]=n.y+s.y,i[h+2]=n.x-s.x,i[h+3]=n.y-s.y,r=n}PIXI.DisplayObjectContainer.prototype.updateTransform.call(this)}},PIXI.Rope.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0},PIXI.TilingSprite=function(t,e,i){PIXI.DisplayObjectContainer.call(this),this.texture=t,this.width=e,this.height=i,this.renderable=!0,this.tileScale=new PIXI.Point(1,1),this.tilePosition=new PIXI.Point(0,0),this.blendMode=PIXI.blendModes.NORMAL},PIXI.TilingSprite.constructor=PIXI.TilingSprite,PIXI.TilingSprite.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.TilingSprite.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0},PIXI.TilingSprite.prototype.onTextureUpdate=function(){this.updateFrame=!0},PIXI.CustomRenderable=function(){PIXI.DisplayObject.call(this)},PIXI.CustomRenderable.constructor=PIXI.CustomRenderable,PIXI.CustomRenderable.prototype=Object.create(PIXI.DisplayObject.prototype),PIXI.CustomRenderable.prototype.renderCanvas=function(){},PIXI.CustomRenderable.prototype.initWebGL=function(){},PIXI.CustomRenderable.prototype.renderWebGL=function(){},PIXI.BaseTextureCache={},PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[],PIXI.BaseTexture=function(t){if(PIXI.EventTarget.call(this),this.width=100,this.height=100,this.source=t,t){if(this.source instanceof Image)if(this.source.complete)this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,PIXI.texturesToUpdate.push(this);else{var e=this;this.source.onload=function(){e.hasLoaded=!0,e.width=e.source.width,e.height=e.source.height,PIXI.texturesToUpdate.push(e),e.dispatchEvent({type:"loaded",content:e})}}else this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,PIXI.texturesToUpdate.push(this);this._powerOf2=!1}},PIXI.BaseTexture.constructor=PIXI.BaseTexture,PIXI.BaseTexture.prototype.destroy=function(){this.source instanceof Image&&(this.source.src=null),this.source=null,PIXI.texturesToDestroy.push(this)},PIXI.BaseTexture.fromImage=function(t,e){var i=PIXI.BaseTextureCache[t];if(!i){var r=new Image;e&&(r.crossOrigin=""),r.src=t,i=new PIXI.BaseTexture(r),PIXI.BaseTextureCache[t]=i}return i},PIXI.TextureCache={},PIXI.FrameCache={},PIXI.Texture=function(t,e){if(PIXI.EventTarget.call(this),e||(this.noFrame=!0,e=new PIXI.Rectangle(0,0,1,1)),this.trim=new PIXI.Point,t instanceof PIXI.Texture&&(t=t.baseTexture),this.baseTexture=t,this.frame=e,this.scope=this,t.hasLoaded)this.noFrame&&(e=new PIXI.Rectangle(0,0,t.width,t.height)),this.setFrame(e);else{var i=this;t.addEventListener("loaded",function(){i.onBaseTextureLoaded()})}},PIXI.Texture.constructor=PIXI.Texture,PIXI.Texture.prototype.onBaseTextureLoaded=function(){var t=this.baseTexture;t.removeEventListener("loaded",this.onLoaded),this.noFrame&&(this.frame=new PIXI.Rectangle(0,0,t.width,t.height)),this.noFrame=!1,this.width=this.frame.width,this.height=this.frame.height,this.scope.dispatchEvent({type:"update",content:this})},PIXI.Texture.prototype.destroy=function(t){t&&this.baseTexture.destroy()},PIXI.Texture.prototype.setFrame=function(t){if(this.frame=t,this.width=t.width,this.height=t.height,t.x+t.width>this.baseTexture.width||t.y+t.height>this.baseTexture.height)throw Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);this.updateFrame=!0,PIXI.Texture.frameUpdates.push(this)},PIXI.Texture.fromImage=function(t,e){var i=PIXI.TextureCache[t];return i||(i=new PIXI.Texture(PIXI.BaseTexture.fromImage(t,e)),PIXI.TextureCache[t]=i),i},PIXI.Texture.fromFrame=function(t){var e=PIXI.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache "+this);return e},PIXI.Texture.fromCanvas=function(t){var e=new PIXI.BaseTexture(t);return new PIXI.Texture(e)},PIXI.Texture.addTextureToCache=function(t,e){PIXI.TextureCache[e]=t},PIXI.Texture.removeTextureFromCache=function(t){var e=PIXI.TextureCache[t];return PIXI.TextureCache[t]=null,e},PIXI.Texture.frameUpdates=[],PIXI.RenderTexture=function(t,e){PIXI.EventTarget.call(this),this.width=t||100,this.height=e||100,this.indetityMatrix=PIXI.mat3.create(),this.frame=new PIXI.Rectangle(0,0,this.width,this.height),PIXI.gl?this.initWebGL():this.initCanvas()},PIXI.RenderTexture.constructor=PIXI.RenderTexture,PIXI.RenderTexture.prototype=Object.create(PIXI.Texture.prototype),PIXI.RenderTexture.prototype.initWebGL=function(){var t=PIXI.gl;this.glFramebuffer=t.createFramebuffer(),t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),this.glFramebuffer.width=this.width,this.glFramebuffer.height=this.height,this.baseTexture=new PIXI.BaseTexture,this.baseTexture.width=this.width,this.baseTexture.height=this.height,this.baseTexture._glTexture=t.createTexture(),t.bindTexture(t.TEXTURE_2D,this.baseTexture._glTexture),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,this.width,this.height,0,t.RGBA,t.UNSIGNED_BYTE,null),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),this.baseTexture.isRender=!0,t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,this.baseTexture._glTexture,0),this.projectionMatrix=PIXI.mat4.create(),this.projectionMatrix[5]=2/this.height,this.projectionMatrix[13]=-1,this.projectionMatrix[0]=2/this.width,this.projectionMatrix[12]=-1,this.render=this.renderWebGL},PIXI.RenderTexture.prototype.initCanvas=function(){this.renderer=new PIXI.CanvasRenderer(this.width,this.height,null,0),this.baseTexture=new PIXI.BaseTexture(this.renderer.view),this.frame=new PIXI.Rectangle(0,0,this.width,this.height),this.render=this.renderCanvas},PIXI.RenderTexture.prototype.renderWebGL=function(t,e){var i=PIXI.gl;i.colorMask(!0,!0,!0,!0),i.viewport(0,0,this.width,this.height),i.bindFramebuffer(i.FRAMEBUFFER,this.glFramebuffer),e&&(i.clearColor(0,0,0,0),i.clear(i.COLOR_BUFFER_BIT));var r=t.children;t.worldTransform=PIXI.mat3.create();for(var s=0,n=r.length;n>s;s++)r[s].updateTransform();var a=t.__renderGroup;a?t==a.root?a.render(this.projectionMatrix):a.renderSpecific(t,this.projectionMatrix):(this.renderGroup||(this.renderGroup=new PIXI.WebGLRenderGroup(i)),this.renderGroup.setRenderable(t),this.renderGroup.render(this.projectionMatrix))},PIXI.RenderTexture.prototype.renderCanvas=function(t,e){var i=t.children;t.worldTransform=PIXI.mat3.create();for(var r=0,s=i.length;s>r;r++)i[r].updateTransform();e&&this.renderer.context.clearRect(0,0,this.width,this.height),this.renderer.renderDisplayObject(t),PIXI.texturesToUpdate.push(this.baseTexture)},PIXI.AssetLoader=function(t){PIXI.EventTarget.call(this),this.assetURLs=t,this.crossorigin=!1,this.loadersByType={jpg:PIXI.ImageLoader,jpeg:PIXI.ImageLoader,png:PIXI.ImageLoader,gif:PIXI.ImageLoader,json:PIXI.SpriteSheetLoader,xml:PIXI.BitmapFontLoader,fnt:PIXI.BitmapFontLoader}},PIXI.AssetLoader.constructor=PIXI.AssetLoader,PIXI.AssetLoader.prototype.load=function(){var t=this;this.loadCount=this.assetURLs.length;for(var e=0;this.assetURLs.length>e;e++){var i=this.assetURLs[e],r=i.split(".").pop().toLowerCase(),s=this.loadersByType[r];if(!s)throw Error(r+" is an unsupported file type");var n=new s(i,this.crossorigin);n.addEventListener("loaded",function(){t.onAssetLoaded()}),n.load()}},PIXI.AssetLoader.prototype.onAssetLoaded=function(){this.loadCount--,this.dispatchEvent({type:"onProgress",content:this}),this.onProgress&&this.onProgress(),0==this.loadCount&&(this.dispatchEvent({type:"onComplete",content:this}),this.onComplete&&this.onComplete())},PIXI.SpriteSheetLoader=function(t,e){PIXI.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.frames={},this.crossorigin=e},PIXI.SpriteSheetLoader.constructor=PIXI.SpriteSheetLoader,PIXI.SpriteSheetLoader.prototype.load=function(){this.ajaxRequest=new AjaxRequest;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onJSONLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/json"),this.ajaxRequest.send(null)},PIXI.SpriteSheetLoader.prototype.onJSONLoaded=function(){if(4==this.ajaxRequest.readyState&&(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))){var jsonData=eval("("+this.ajaxRequest.responseText+")"),textureUrl=this.baseUrl+jsonData.meta.image,image=new PIXI.ImageLoader(textureUrl,this.crossorigin);this.texture=image.texture.baseTexture;var scope=this;image.addEventListener("loaded",function(){scope.onLoaded()});var frameData=jsonData.frames;for(var i in frameData){var rect=frameData[i].frame;rect&&(PIXI.TextureCache[i]=new PIXI.Texture(this.texture,{x:rect.x,y:rect.y,width:rect.w,height:rect.h}),frameData[i].trimmed&&(PIXI.TextureCache[i].realSize=frameData[i].spriteSourceSize,PIXI.TextureCache[i].trim.x=0))}image.load()}},PIXI.SpriteSheetLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},PIXI.ImageLoader=function(t,e){PIXI.EventTarget.call(this),this.texture=PIXI.Texture.fromImage(t,e)},PIXI.ImageLoader.constructor=PIXI.ImageLoader,PIXI.ImageLoader.prototype.load=function(){if(this.texture.baseTexture.hasLoaded)this.onLoaded();else{var t=this;this.texture.baseTexture.addEventListener("loaded",function(){t.onLoaded()})}},PIXI.ImageLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},PIXI.BitmapFontLoader=function(t,e){PIXI.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.crossorigin=e},PIXI.BitmapFontLoader.constructor=PIXI.BitmapFontLoader,PIXI.BitmapFontLoader.prototype.load=function(){this.ajaxRequest=new XMLHttpRequest;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onXMLLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/xml"),this.ajaxRequest.send(null)},PIXI.BitmapFontLoader.prototype.onXMLLoaded=function(){if(4==this.ajaxRequest.readyState&&(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))){var t=this.baseUrl+this.ajaxRequest.responseXML.getElementsByTagName("page")[0].attributes.getNamedItem("file").nodeValue,e=new PIXI.ImageLoader(t,this.crossorigin);this.texture=e.texture.baseTexture;var i={},r=this.ajaxRequest.responseXML.getElementsByTagName("info")[0],s=this.ajaxRequest.responseXML.getElementsByTagName("common")[0];i.font=r.attributes.getNamedItem("face").nodeValue,i.size=parseInt(r.attributes.getNamedItem("size").nodeValue,10),i.lineHeight=parseInt(s.attributes.getNamedItem("lineHeight").nodeValue,10),i.chars={};for(var n=this.ajaxRequest.responseXML.getElementsByTagName("char"),a=0;n.length>a;a++){var o=parseInt(n[a].attributes.getNamedItem("id").nodeValue,10),h={x:parseInt(n[a].attributes.getNamedItem("x").nodeValue,10),y:parseInt(n[a].attributes.getNamedItem("y").nodeValue,10),width:parseInt(n[a].attributes.getNamedItem("width").nodeValue,10),height:parseInt(n[a].attributes.getNamedItem("height").nodeValue,10)};PIXI.TextureCache[o]=new PIXI.Texture(this.texture,h),i.chars[o]={xOffset:parseInt(n[a].attributes.getNamedItem("xoffset").nodeValue,10),yOffset:parseInt(n[a].attributes.getNamedItem("yoffset").nodeValue,10),xAdvance:parseInt(n[a].attributes.getNamedItem("xadvance").nodeValue,10),kerning:{}}}var u=this.ajaxRequest.responseXML.getElementsByTagName("kerning");for(a=0;u.length>a;a++){var c=parseInt(u[a].attributes.getNamedItem("first").nodeValue,10),d=parseInt(u[a].attributes.getNamedItem("second").nodeValue,10),l=parseInt(u[a].attributes.getNamedItem("amount").nodeValue,10);i.chars[d].kerning[c]=l}PIXI.BitmapText.fonts[i.font]=i;var I=this;e.addEventListener("loaded",function(){I.onLoaded()}),e.load()}},PIXI.BitmapFontLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=PIXI),exports.PIXI=PIXI):root.PIXI=PIXI}).call(this); \ No newline at end of file +(function(){function HEXtoRGB(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}function determineMatrixArrayType(){return PIXI.Matrix="undefined"!=typeof Float32Array?Float32Array:Array,PIXI.Matrix}var root=this,PIXI=PIXI||{};PIXI.Point=function(t,e){this.x=t||0,this.y=e||0},PIXI.Point.prototype.clone=function(){return new PIXI.Point(this.x,this.y)},PIXI.Point.constructor=PIXI.Point,PIXI.Rectangle=function(t,e,i,r){this.x=t||0,this.y=e||0,this.width=i||0,this.height=r||0},PIXI.Rectangle.prototype.clone=function(){return new PIXI.Rectangle(this.x,this.y,this.width,this.height)},PIXI.Rectangle.constructor=PIXI.Rectangle,PIXI.DisplayObject=function(){this.position=new PIXI.Point,this.scale=new PIXI.Point(1,1),this.pivot=new PIXI.Point(0,0),this.rotation=0,this.alpha=1,this.visible=!0,this.worldVisible=!1,this.parent=null,this.stage=null,this.hitArea=null,this.worldAlpha=1,this.color=[],this.worldTransform=PIXI.mat3.create(),this.localTransform=PIXI.mat3.create(),this.dynamic=!0,this._sr=0,this._cr=1,this.childIndex=0,this.renderable=!1,this.interactive=!1,this.buttonMode=!1},PIXI.DisplayObject.constructor=PIXI.DisplayObject,PIXI.DisplayObject.prototype.setInteractive=function(t){this.interactive=t,this.stage&&(this.stage.dirty=!0)},PIXI.DisplayObject.prototype.updateTransform=function(){this.rotation!=this.rotationCache&&(this.rotationCache=this.rotation,this._sr=Math.sin(this.rotation),this._cr=Math.cos(this.rotation));var t=this.localTransform,e=this.parent.worldTransform,i=this.worldTransform;t[0]=this._cr*this.scale.x,t[1]=-this._sr*this.scale.y,t[3]=this._sr*this.scale.x,t[4]=this._cr*this.scale.y;var r=this.pivot.x,s=this.pivot.y;t[2]=this.position.x-t[0]*r-s*t[1],t[5]=this.position.y-t[4]*s-r*t[3];var n=t[0],a=t[1],o=t[2],h=t[3],u=t[4],d=t[5],c=e[0],l=e[1],I=e[2],p=e[3],f=e[4],x=e[5];i[0]=c*n+l*h,i[1]=c*a+l*u,i[2]=c*o+l*d+I,i[3]=p*n+f*h,i[4]=p*a+f*u,i[5]=p*o+f*d+x,this.worldAlpha=this.alpha*this.parent.worldAlpha},PIXI.DisplayObjectContainer=function(){PIXI.DisplayObject.call(this),this.children=[],this.renderable=!1},PIXI.DisplayObjectContainer.constructor=PIXI.DisplayObjectContainer,PIXI.DisplayObjectContainer.prototype=Object.create(PIXI.DisplayObject.prototype),PIXI.DisplayObjectContainer.prototype.addChild=function(t){void 0!=t.parent&&t.parent.removeChild(t),t.parent=this,t.childIndex=this.children.length,this.children.push(t),this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},PIXI.DisplayObjectContainer.prototype.addChildAt=function(t,e){if(!(e>=0&&this.children.length>=e))throw Error(t+" The index "+e+" supplied is out of bounds "+this.children.length);void 0!=t.parent&&t.parent.removeChild(t),e==this.children.length?this.children.push(t):this.children.splice(e,0,t),t.parent=this,t.childIndex=e;for(var i=this.children.length,r=e;i>r;r++)this.children[r].childIndex=r;this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},PIXI.DisplayObjectContainer.prototype.swapChildren=function(t,e){var i=this.children.indexOf(t),r=this.children.indexOf(e);if(-1===i||-1===r)throw Error(t+" Both the supplied DisplayObjects must be a child of the caller "+this);this.stage&&(this.stage.__removeChild(t),this.stage.__removeChild(e),this.stage.__addChild(t),this.stage.__addChild(e)),t.childIndex=r,e.childIndex=i,this.children[i]=e,this.children[r]=t},PIXI.DisplayObjectContainer.prototype.getChildAt=function(t){if(t>=0&&this.children.length>t)return this.children[t];throw Error(child+" Both the supplied DisplayObjects must be a child of the caller "+this)},PIXI.DisplayObjectContainer.prototype.removeChild=function(t){var e=this.children.indexOf(t);if(-1===e)throw Error(t+" The supplied DisplayObject must be a child of the caller "+this);this.stage&&this.stage.__removeChild(t),t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.parent=void 0,this.children.splice(e,1);for(var i=e,r=this.children.length;r>i;i++)this.children[i].childIndex-=1},PIXI.DisplayObjectContainer.prototype.updateTransform=function(){if(this.visible){PIXI.DisplayObject.prototype.updateTransform.call(this);for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform()}},PIXI.blendModes={},PIXI.blendModes.NORMAL=0,PIXI.blendModes.SCREEN=1,PIXI.Sprite=function(t){PIXI.DisplayObjectContainer.call(this),this.anchor=new PIXI.Point,this.texture=t,this.blendMode=PIXI.blendModes.NORMAL,this._width=0,this._height=0,t.baseTexture.hasLoaded?this.updateFrame=!0:(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},PIXI.Sprite.constructor=PIXI.Sprite,PIXI.Sprite.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),Object.defineProperty(PIXI.Sprite.prototype,"width",{get:function(){return this.scale.x*this.texture.frame.width},set:function(t){this.scale.x=t/this.texture.frame.width,this._width=t}}),Object.defineProperty(PIXI.Sprite.prototype,"height",{get:function(){return this.scale.y*this.texture.frame.height},set:function(t){this.scale.y=t/this.texture.frame.height,this._height=t}}),PIXI.Sprite.prototype.setTexture=function(t){this.texture.baseTexture!=t.baseTexture&&(this.textureChange=!0),this.texture=t,this.updateFrame=!0},PIXI.Sprite.prototype.onTextureUpdate=function(){this._width&&(this.scale.x=this._width/this.texture.frame.width),this._height&&(this.scale.y=this._height/this.texture.frame.height),this.updateFrame=!0},PIXI.Sprite.fromFrame=function(t){var e=PIXI.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache"+this);return new PIXI.Sprite(e)},PIXI.Sprite.fromImage=function(t){var e=PIXI.Texture.fromImage(t);return new PIXI.Sprite(e)},PIXI.MovieClip=function(t){PIXI.Sprite.call(this,t[0]),this.textures=t,this.currentFrame=0,this.animationSpeed=1,this.loop=!0,this.onComplete=null,this.playing},PIXI.MovieClip.constructor=PIXI.MovieClip,PIXI.MovieClip.prototype=Object.create(PIXI.Sprite.prototype),PIXI.MovieClip.prototype.stop=function(){this.playing=!1},PIXI.MovieClip.prototype.play=function(){this.playing=!0},PIXI.MovieClip.prototype.gotoAndStop=function(t){this.playing=!1,this.currentFrame=t;var e=0|this.currentFrame+.5;this.setTexture(this.textures[e%this.textures.length])},PIXI.MovieClip.prototype.gotoAndPlay=function(t){this.currentFrame=t,this.playing=!0},PIXI.MovieClip.prototype.updateTransform=function(){if(PIXI.Sprite.prototype.updateTransform.call(this),this.playing){this.currentFrame+=this.animationSpeed;var t=0|this.currentFrame+.5;this.loop||this.textures.length>t?this.setTexture(this.textures[t%this.textures.length]):t>=this.textures.length&&(this.gotoAndStop(this.textures.length-1),this.onComplete&&this.onComplete())}},PIXI.Text=function(t,e){this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"),PIXI.Sprite.call(this,PIXI.Texture.fromCanvas(this.canvas)),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},PIXI.Text.constructor=PIXI.Text,PIXI.Text.prototype=Object.create(PIXI.Sprite.prototype),PIXI.Text.prototype.setStyle=function(t){t=t||{},t.font=t.font||"bold 20pt Arial",t.fill=t.fill||"black",t.align=t.align||"left",t.strokeThickness=t.strokeThickness||0,this.style=t,this.dirty=!0},PIXI.Sprite.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},PIXI.Text.prototype.updateText=function(){this.context.font=this.style.font;for(var t=this.text.split(/(?:\r\n|\r|\n)/),e=[],i=0,r=0;t.length>r;r++){var s=this.context.measureText(t[r]).width;e[r]=s,i=Math.max(i,s)}this.canvas.width=i+this.style.strokeThickness;var n=this.determineFontHeight("font: "+this.style.font+";")+this.style.strokeThickness;for(this.canvas.height=n*t.length,this.context.fillStyle=this.style.fill,this.context.font=this.style.font,this.context.strokeStyle=this.style.stroke,this.context.lineWidth=this.style.strokeThickness,this.context.textBaseline="top",r=0;t.length>r;r++){var a=new PIXI.Point(this.style.strokeThickness/2,this.style.strokeThickness/2+r*n);"right"==this.style.align?a.x+=i-e[r]:"center"==this.style.align&&(a.x+=(i-e[r])/2),this.style.stroke&&this.style.strokeThickness&&this.context.strokeText(t[r],a.x,a.y),this.style.fill&&this.context.fillText(t[r],a.x,a.y)}this.updateTexture()},PIXI.Text.prototype.updateTexture=function(){this.texture.baseTexture.width=this.canvas.width,this.texture.baseTexture.height=this.canvas.height,this.texture.frame.width=this.canvas.width,this.texture.frame.height=this.canvas.height,this._width=this.canvas.width,this._height=this.canvas.height,PIXI.texturesToUpdate.push(this.texture.baseTexture)},PIXI.Text.prototype.updateTransform=function(){this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype.updateTransform.call(this)},PIXI.Text.prototype.determineFontHeight=function(t){var e=PIXI.Text.heightCache[t];if(!e){var i=document.getElementsByTagName("body")[0],r=document.createElement("div"),s=document.createTextNode("M");r.appendChild(s),r.setAttribute("style",t),i.appendChild(r),e=r.offsetHeight,PIXI.Text.heightCache[t]=e,i.removeChild(r)}return e},PIXI.Text.prototype.destroy=function(t){t&&this.texture.destroy()},PIXI.Text.heightCache={},PIXI.BitmapText=function(t,e){PIXI.DisplayObjectContainer.call(this),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},PIXI.BitmapText.constructor=PIXI.BitmapText,PIXI.BitmapText.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.BitmapText.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},PIXI.BitmapText.prototype.setStyle=function(t){t=t||{},t.align=t.align||"left",this.style=t;var e=t.font.split(" ");this.fontName=e[e.length-1],this.fontSize=e.length>=2?parseInt(e[e.length-2],10):PIXI.BitmapText.fonts[this.fontName].size,this.dirty=!0},PIXI.BitmapText.prototype.updateText=function(){for(var t=PIXI.BitmapText.fonts[this.fontName],e=new PIXI.Point,i=null,r=[],s=0,n=[],a=0,o=this.fontSize/t.size,h=0;this.text.length>h;h++){var u=this.text.charCodeAt(h);if(/(?:\r\n|\r|\n)/.test(this.text.charAt(h)))n.push(e.x),s=Math.max(s,e.x),a++,e.x=0,e.y+=t.lineHeight,i=null;else{var d=t.chars[u];d&&(i&&d[i]&&(e.x+=d.kerning[i]),r.push({line:a,charCode:u,position:new PIXI.Point(e.x+d.xOffset,e.y+d.yOffset)}),e.x+=d.xAdvance,i=u)}}n.push(e.x),s=Math.max(s,e.x);var c=[];for(h=0;a>=h;h++){var l=0;"right"==this.style.align?l=s-n[h]:"center"==this.style.align&&(l=(s-n[h])/2),c.push(l)}for(h=0;r.length>h;h++){var I=PIXI.Sprite.fromFrame(r[h].charCode);I.position.x=(r[h].position.x+c[r[h].line])*o,I.position.y=r[h].position.y*o,I.scale.x=I.scale.y=o,this.addChild(I)}this.width=e.x*o,this.height=(e.y+t.lineHeight)*o},PIXI.BitmapText.prototype.updateTransform=function(){if(this.dirty){for(;this.children.length>0;)this.removeChild(this.getChildAt(0));this.updateText(),this.dirty=!1}PIXI.DisplayObjectContainer.prototype.updateTransform.call(this)},PIXI.BitmapText.fonts={},PIXI.InteractionManager=function(t){this.stage=t,this.tempPoint=new PIXI.Point,this.mouseoverEnabled=!0,this.mouse=new PIXI.InteractionData,this.touchs={},this.pool=[],this.interactiveItems=[],this.last=0},PIXI.InteractionManager.constructor=PIXI.InteractionManager,PIXI.InteractionManager.prototype.collectInteractiveSprite=function(t,e){for(var i=t.children,r=i.length,s=r-1;s>=0;s--){var n=i[s];n.interactive?(e.interactiveChildren=!0,this.interactiveItems.push(n),n.children.length>0&&this.collectInteractiveSprite(n,n)):(n.__iParent=null,n.children.length>0&&this.collectInteractiveSprite(n,e))}},PIXI.InteractionManager.prototype.setTarget=function(t){window.navigator.msPointerEnabled&&(t.view.style["-ms-content-zooming"]="none",t.view.style["-ms-touch-action"]="none"),this.target=t,t.view.addEventListener("mousemove",this.onMouseMove.bind(this),!0),t.view.addEventListener("mousedown",this.onMouseDown.bind(this),!0),document.body.addEventListener("mouseup",this.onMouseUp.bind(this),!0),t.view.addEventListener("mouseout",this.onMouseUp.bind(this),!0),t.view.addEventListener("touchstart",this.onTouchStart.bind(this),!0),t.view.addEventListener("touchend",this.onTouchEnd.bind(this),!0),t.view.addEventListener("touchmove",this.onTouchMove.bind(this),!0)},PIXI.InteractionManager.prototype.update=function(){if(this.target){var t=Date.now(),e=t-this.last;if(e=30*e/1e3,!(1>e)){if(this.last=t,this.dirty){this.dirty=!1,this.interactiveItems.length;for(var i=0;this.interactiveItems.length>i;i++)this.interactiveItems[i].interactiveChildren=!1;this.interactiveItems=[],this.stage.interactive&&this.interactiveItems.push(this.stage),this.collectInteractiveSprite(this.stage,this.stage)}var r=this.interactiveItems.length;this.target.view.style.cursor="default";for(var i=0;r>i;i++){var s=this.interactiveItems[i];s.visible&&(s.mouseover||s.mouseout||s.buttonMode)&&(s.__hit=this.hitTest(s,this.mouse),s.__hit?(s.buttonMode&&(this.target.view.style.cursor="pointer"),s.__isOver||(s.mouseover&&s.mouseover(this.mouse),s.__isOver=!0)):s.__isOver&&(s.mouseout&&s.mouseout(this.mouse),s.__isOver=!1))}}}},PIXI.InteractionManager.prototype.onMouseMove=function(t){t.preventDefault();var e=this.target.view.getBoundingClientRect();this.mouse.global.x=(t.clientX-e.left)*(this.target.width/e.width),this.mouse.global.y=(t.clientY-e.top)*(this.target.height/e.height);var i=this.interactiveItems.length;this.mouse.global;for(var r=0;i>r;r++){var s=this.interactiveItems[r];s.mousemove&&s.mousemove(this.mouse)}},PIXI.InteractionManager.prototype.onMouseDown=function(t){t.preventDefault();var e=this.interactiveItems.length;this.mouse.global,this.stage;for(var i=0;e>i;i++){var r=this.interactiveItems[i];if((r.mousedown||r.click)&&(r.__mouseIsDown=!0,r.__hit=this.hitTest(r,this.mouse),r.__hit&&(r.mousedown&&r.mousedown(this.mouse),r.__isDown=!0,!r.interactiveChildren)))break}},PIXI.InteractionManager.prototype.onMouseUp=function(t){t.preventDefault(),this.mouse.global;for(var e=this.interactiveItems.length,i=!1,r=0;e>r;r++){var s=this.interactiveItems[r];(s.mouseup||s.mouseupoutside||s.click)&&(s.__hit=this.hitTest(s,this.mouse),s.__hit&&!i?(s.mouseup&&s.mouseup(this.mouse),s.__isDown&&s.click&&s.click(this.mouse),s.interactiveChildren||(i=!0)):s.__isDown&&s.mouseupoutside&&s.mouseupoutside(this.mouse),s.__isDown=!1)}},PIXI.InteractionManager.prototype.hitTest=function(t,e){var i=e.global;if(!t.visible)return!1;if(t instanceof PIXI.Sprite){var r=t.worldTransform,s=r[0],n=r[1],a=r[2],o=r[3],h=r[4],u=r[5],d=1/(s*h+n*-o),c=h*d*i.x+-n*d*i.y+(u*n-a*h)*d,l=s*d*i.y+-o*d*i.x+(-u*s+a*o)*d,I=t.texture.frame.width,p=t.texture.frame.height,f=-I*t.anchor.x;if(c>f&&f+I>c){var x=-p*t.anchor.y;if(l>x&&x+p>l)return e.target=t,!0}}else if(t.hitArea){var r=t.worldTransform,v=t.hitArea,s=r[0],n=r[1],a=r[2],o=r[3],h=r[4],u=r[5],d=1/(s*h+n*-o),c=h*d*i.x+-n*d*i.y+(u*n-a*h)*d,l=s*d*i.y+-o*d*i.x+(-u*s+a*o)*d,f=v.x;if(c>f&&f+v.width>c){var x=v.y;if(l>x&&x+v.height>l)return!0}}for(var P=t.children.length,g=0;P>g;g++){var b=t.children[g],X=this.hitTest(b,e);if(X)return!0}return!1},PIXI.InteractionManager.prototype.onTouchMove=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.touchs[s.identifier];n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height)}for(var a=this.interactiveItems.length,r=0;a>r;r++){var o=this.interactiveItems[r];o.touchmove&&o.touchmove(n)}},PIXI.InteractionManager.prototype.onTouchStart=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.pool.pop();n||(n=new PIXI.InteractionData),this.touchs[s.identifier]=n,n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height);for(var a=this.interactiveItems.length,o=0;a>o;o++){var h=this.interactiveItems[o];if((h.touchstart||h.tap)&&(h.__hit=this.hitTest(h,n),h.__hit&&(h.touchstart&&h.touchstart(n),h.__isDown=!0,h.__touchData=n,!h.interactiveChildren)))break}}},PIXI.InteractionManager.prototype.onTouchEnd=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.touchs[s.identifier],a=!1;n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var u=this.interactiveItems[h],d=u.__touchData;u.__hit=this.hitTest(u,n),d==n&&((u.touchend||u.tap)&&(u.__hit&&!a?(u.touchend&&u.touchend(n),u.__isDown&&u.tap&&u.tap(n),u.interactiveChildren||(a=!0)):u.__isDown&&u.touchendoutside&&u.touchendoutside(n),u.__isDown=!1),u.__touchData=null)}this.pool.push(n),this.touchs[s.identifier]=null}},PIXI.InteractionData=function(){this.global=new PIXI.Point,this.local=new PIXI.Point,this.target},PIXI.InteractionData.prototype.getLocalPosition=function(t){var e=t.worldTransform,i=this.global,r=e[0],s=e[1],n=e[2],a=e[3],o=e[4],h=e[5],u=1/(r*o+s*-a);return new PIXI.Point(o*u*i.x+-s*u*i.y+(h*s-n*o)*u,r*u*i.y+-a*u*i.x+(-h*r+n*a)*u)},PIXI.InteractionData.constructor=PIXI.InteractionData,PIXI.Stage=function(t,e){PIXI.DisplayObjectContainer.call(this),this.worldTransform=PIXI.mat3.create(),this.__childrenAdded=[],this.__childrenRemoved=[],this.childIndex=0,this.stage=this,this.stage.hitArea=new PIXI.Rectangle(0,0,1e5,1e5),this.interactive=!!e,this.interactionManager=new PIXI.InteractionManager(this),this.setBackgroundColor(t),this.worldVisible=!0},PIXI.Stage.constructor=PIXI.Stage,PIXI.Stage.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Stage.prototype.updateTransform=function(){this.worldAlpha=1;for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform();this.dirty&&(this.dirty=!1,this.interactionManager.dirty=!0),this.interactive&&this.interactionManager.update()},PIXI.Stage.prototype.setBackgroundColor=function(t){this.backgroundColor=t||0,this.backgroundColorSplit=HEXtoRGB(this.backgroundColor),this.backgroundColorString="#"+this.backgroundColor.toString(16)},PIXI.Stage.prototype.getMousePosition=function(){return this.interactionManager.mouse.global},PIXI.Stage.prototype.__addChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=this,t.children)for(var e=0;t.children.length>e;e++)this.__addChild(t.children[e])},PIXI.Stage.prototype.__removeChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=void 0,t.children)for(var e=0,i=t.children.length;i>e;e++)this.__removeChild(t.children[e])},window.requestAnimFrame=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(t){window.setTimeout(t,1e3/60)}}(),"function"!=typeof Function.prototype.bind&&(Function.prototype.bind=function(){var t=Array.prototype.slice;return function(e){function i(){var n=s.concat(t.call(arguments));r.apply(this instanceof i?this:e,n)}var r=this,s=t.call(arguments,1);if("function"!=typeof r)throw new TypeError;return i.prototype=function n(t){return t&&(n.prototype=t),this instanceof n?void 0:new n}(r.prototype),i}}());var AjaxRequest=function(){var t=["Msxml2.XMLHTTP","Microsoft.XMLHTTP"];if(!window.ActiveXObject)return window.XMLHttpRequest?new XMLHttpRequest:!1;for(var e=0;t.length>e;e++)try{return new ActiveXObject(t[e])}catch(i){}};PIXI.EventTarget=function(){var t={};this.addEventListener=this.on=function(e,i){void 0===t[e]&&(t[e]=[]),-1===t[e].indexOf(i)&&t[e].push(i)},this.dispatchEvent=this.emit=function(e){for(var i in t[e.type])t[e.type][i](e)},this.removeEventListener=this.off=function(e,i){var r=t[e].indexOf(i);-1!==r&&t[e].splice(r,1)}},determineMatrixArrayType(),PIXI.mat3={},PIXI.mat3.create=function(){var t=new PIXI.Matrix(9);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},PIXI.mat4={},PIXI.mat4.create=function(){var t=new PIXI.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},PIXI.mat3.multiply=function(t,e,i){i||(i=t);var r=t[0],s=t[1],n=t[2],a=t[3],o=t[4],h=t[5],u=t[6],d=t[7],c=t[8],l=e[0],I=e[1],p=e[2],f=e[3],x=e[4],v=e[5],P=e[6],g=e[7],b=e[8];return i[0]=l*r+I*a+p*u,i[1]=l*s+I*o+p*d,i[2]=l*n+I*h+p*c,i[3]=f*r+x*a+v*u,i[4]=f*s+x*o+v*d,i[5]=f*n+x*h+v*c,i[6]=P*r+g*a+b*u,i[7]=P*s+g*o+b*d,i[8]=P*n+g*h+b*c,i},PIXI.mat3.toMat4=function(t,e){return e||(e=PIXI.mat4.create()),e[15]=1,e[14]=0,e[13]=0,e[12]=0,e[11]=0,e[10]=t[8],e[9]=t[7],e[8]=t[6],e[7]=0,e[6]=t[5],e[5]=t[4],e[4]=t[3],e[3]=0,e[2]=t[2],e[1]=t[1],e[0]=t[0],e},PIXI.mat4.create=function(){var t=new PIXI.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},PIXI.mat4.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],s=t[3],n=t[6],a=t[7],o=t[11];return t[1]=t[4],t[2]=t[8],t[3]=t[12],t[4]=i,t[6]=t[9],t[7]=t[13],t[8]=r,t[9]=n,t[11]=t[14],t[12]=s,t[13]=a,t[14]=o,t}return e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=t[1],e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=t[2],e[9]=t[6],e[10]=t[10],e[11]=t[14],e[12]=t[3],e[13]=t[7],e[14]=t[11],e[15]=t[15],e},PIXI.mat4.multiply=function(t,e,i){i||(i=t);var r=t[0],s=t[1],n=t[2],a=t[3],o=t[4],h=t[5],u=t[6],d=t[7],c=t[8],l=t[9],I=t[10],p=t[11],f=t[12],x=t[13],v=t[14],P=t[15],g=e[0],b=e[1],X=e[2],m=e[3];return i[0]=g*r+b*o+X*c+m*f,i[1]=g*s+b*h+X*l+m*x,i[2]=g*n+b*u+X*I+m*v,i[3]=g*a+b*d+X*p+m*P,g=e[4],b=e[5],X=e[6],m=e[7],i[4]=g*r+b*o+X*c+m*f,i[5]=g*s+b*h+X*l+m*x,i[6]=g*n+b*u+X*I+m*v,i[7]=g*a+b*d+X*p+m*P,g=e[8],b=e[9],X=e[10],m=e[11],i[8]=g*r+b*o+X*c+m*f,i[9]=g*s+b*h+X*l+m*x,i[10]=g*n+b*u+X*I+m*v,i[11]=g*a+b*d+X*p+m*P,g=e[12],b=e[13],X=e[14],m=e[15],i[12]=g*r+b*o+X*c+m*f,i[13]=g*s+b*h+X*l+m*x,i[14]=g*n+b*u+X*I+m*v,i[15]=g*a+b*d+X*p+m*P,i},PIXI.autoDetectRenderer=function(t,e,i,r){t||(t=800),e||(e=600);var s=function(){try{return!!window.WebGLRenderingContext&&!!document.createElement("canvas").getContext("experimental-webgl")}catch(t){return!1}}();return s?new PIXI.WebGLRenderer(t,e,i,r):new PIXI.CanvasRenderer(t,e,i,r)},PIXI.shaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * vColor;","}"],PIXI.shaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform mat4 uMVMatrix;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","gl_Position = uMVMatrix * vec4(aVertexPosition, 1.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],PIXI.CompileVertexShader=function(t,e){return PIXI._CompileShader(t,e,t.VERTEX_SHADER)},PIXI.CompileFragmentShader=function(t,e){return PIXI._CompileShader(t,e,t.FRAGMENT_SHADER)},PIXI._CompileShader=function(t,e,i){var r=e.join("\n"),s=t.createShader(i);return t.shaderSource(s,r),t.compileShader(s),t.getShaderParameter(s,t.COMPILE_STATUS)?s:(alert(t.getShaderInfoLog(s)),null)},PIXI._defaultFrame=new PIXI.Rectangle(0,0,1,1),PIXI.gl,PIXI.WebGLRenderer=function(t,e,i,r){this.transparent=!!r,this.width=t||800,this.height=e||600,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height;var s=this;this.view.addEventListener("webglcontextlost",function(t){s.handleContextLost(t)},!1),this.view.addEventListener("webglcontextrestored",function(t){s.handleContextRestored(t)},!1),this.batchs=[];try{PIXI.gl=this.gl=this.view.getContext("experimental-webgl",{alpha:this.transparent,antialias:!1,premultipliedAlpha:!0})}catch(n){throw Error(" This browser does not support webGL. Try using the canvas renderer"+this)}this.initShaders();var a=this.gl;PIXI.WebGLRenderer.gl=a,this.batch=new PIXI.WebGLBatch(a),a.disable(a.DEPTH_TEST),a.disable(a.CULL_FACE),a.enable(a.BLEND),a.colorMask(!0,!0,!0,this.transparent),this.projectionMatrix=PIXI.mat4.create(),this.resize(this.width,this.height),this.contextLost=!1,this.stageRenderGroup=new PIXI.WebGLRenderGroup(this.gl)},PIXI.WebGLRenderer.constructor=PIXI.WebGLRenderer,PIXI.WebGLRenderer.getBatch=function(){return 0==PIXI._batchs.length?new PIXI.WebGLBatch(PIXI.WebGLRenderer.gl):PIXI._batchs.pop()},PIXI.WebGLRenderer.returnBatch=function(t){t.clean(),PIXI._batchs.push(t)},PIXI.WebGLRenderer.prototype.initShaders=function(){var t=this.gl,e=PIXI.CompileFragmentShader(t,PIXI.shaderFragmentSrc),i=PIXI.CompileVertexShader(t,PIXI.shaderVertexSrc);PIXI.shaderProgram=t.createProgram();var r=PIXI.shaderProgram;t.attachShader(r,i),t.attachShader(r,e),t.linkProgram(r),t.getProgramParameter(r,t.LINK_STATUS)||alert("Could not initialise shaders"),t.useProgram(r),r.vertexPositionAttribute=t.getAttribLocation(r,"aVertexPosition"),t.enableVertexAttribArray(r.vertexPositionAttribute),r.textureCoordAttribute=t.getAttribLocation(r,"aTextureCoord"),t.enableVertexAttribArray(r.textureCoordAttribute),r.colorAttribute=t.getAttribLocation(r,"aColor"),t.enableVertexAttribArray(r.colorAttribute),r.mvMatrixUniform=t.getUniformLocation(r,"uMVMatrix"),r.samplerUniform=t.getUniformLocation(r,"uSampler")},PIXI.WebGLRenderer.prototype.render=function(t){if(!this.contextLost){this.__stage!==t&&(this.__stage=t,this.stageRenderGroup.setRenderable(t)),PIXI.WebGLRenderer.updateTextures(),t.updateTransform();var e=this.gl;if(e.colorMask(!0,!0,!0,this.transparent),e.viewport(0,0,this.width,this.height),e.bindFramebuffer(e.FRAMEBUFFER,null),e.clearColor(t.backgroundColorSplit[0],t.backgroundColorSplit[1],t.backgroundColorSplit[2],this.transparent),e.clear(e.COLOR_BUFFER_BIT),this.stageRenderGroup.backgroundColor=t.backgroundColorSplit,this.stageRenderGroup.render(this.projectionMatrix),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),PIXI.Texture.frameUpdates.length>0){for(var i=0;PIXI.Texture.frameUpdates.length>i;i++)PIXI.Texture.frameUpdates[i].updateFrame=!1;PIXI.Texture.frameUpdates=[]}}},PIXI.WebGLRenderer.updateTextures=function(){for(var t=0;PIXI.texturesToUpdate.length>t;t++)this.updateTexture(PIXI.texturesToUpdate[t]);for(var t=0;PIXI.texturesToDestroy.length>t;t++)this.destroyTexture(PIXI.texturesToDestroy[t]);PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[]},PIXI.WebGLRenderer.updateTexture=function(t){var e=PIXI.gl;t._glTexture||(t._glTexture=e.createTexture()),t.hasLoaded&&(e.bindTexture(e.TEXTURE_2D,t._glTexture),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t.source),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),t._powerOf2?(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT)):(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)),e.bindTexture(e.TEXTURE_2D,null))},PIXI.WebGLRenderer.prototype.destroyTexture=function(t){var e=this.gl;t._glTexture&&(t._glTexture=e.createTexture(),e.deleteTexture(e.TEXTURE_2D,t._glTexture))},PIXI.WebGLRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e,this.gl.viewport(0,0,this.width,this.height);var i=this.projectionMatrix;i[0]=2/this.width,i[5]=-2/this.height,i[12]=-1,i[13]=1},PIXI.WebGLRenderer.prototype.handleContextLost=function(t){t.preventDefault(),this.contextLost=!0},PIXI.WebGLRenderer.prototype.handleContextRestored=function(){this.gl=this.view.getContext("experimental-webgl",{alpha:!0}),this.initShaders();for(var t=0;PIXI.TextureCache.length>t;t++)this.updateTexture(PIXI.TextureCache[t]);for(var t=0;this.batchs.length>t;t++)this.batchs[t].restoreLostContext(this.gl),this.batchs[t].dirty=!0;PIXI._restoreBatchs(this.gl),this.contextLost=!1},PIXI._batchs=[],PIXI._getBatch=function(t){return 0==PIXI._batchs.length?new PIXI.WebGLBatch(t):PIXI._batchs.pop()},PIXI._returnBatch=function(t){t.clean(),PIXI._batchs.push(t)},PIXI._restoreBatchs=function(t){for(var e=0;PIXI._batchs.length>e;e++)PIXI._batchs[e].restoreLostContext(t)},PIXI.WebGLBatch=function(t){this.gl=t,this.size=0,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer(),this.blendMode=PIXI.blendModes.NORMAL,this.dynamicSize=1},PIXI.WebGLBatch.constructor=PIXI.WebGLBatch,PIXI.WebGLBatch.prototype.clean=function(){this.verticies=[],this.uvs=[],this.indices=[],this.colors=[],this.dynamicSize=1,this.texture=null,this.last=null,this.size=0,this.head,this.tail},PIXI.WebGLBatch.prototype.restoreLostContext=function(t){this.gl=t,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer()},PIXI.WebGLBatch.prototype.init=function(t){t.batch=this,this.dirty=!0,this.blendMode=t.blendMode,this.texture=t.texture.baseTexture,this.head=t,this.tail=t,this.size=1,this.growBatch()},PIXI.WebGLBatch.prototype.insertBefore=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__prev;e.__prev=t,t.__next=e,i?(t.__prev=i,i.__next=t):this.head=t},PIXI.WebGLBatch.prototype.insertAfter=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__next;e.__next=t,t.__prev=e,i?(t.__next=i,i.__prev=t):this.tail=t},PIXI.WebGLBatch.prototype.remove=function(t){return this.size--,0==this.size?(t.batch=null,t.__prev=null,t.__next=null,void 0):(t.__prev?t.__prev.__next=t.__next:(this.head=t.__next,this.head.__prev=null),t.__next?t.__next.__prev=t.__prev:(this.tail=t.__prev,this.tail.__next=null),t.batch=null,t.__next=null,t.__prev=null,this.dirty=!0,void 0)},PIXI.WebGLBatch.prototype.split=function(t){this.dirty=!0;var e=new PIXI.WebGLBatch(this.gl);e.init(t),e.tail=this.tail,this.tail=t.__prev,this.tail.__next=null,t.__prev=null;for(var i=0;t;)i++,t.batch=e,t=t.__next;return e.size=i,this.size-=i,e},PIXI.WebGLBatch.prototype.merge=function(t){this.dirty=!0,this.tail.__next=t.head,t.head.__prev=this.tail,this.size+=t.size,this.tail=t.tail;for(var e=t.head;e;)e.batch=this,e=e.__next},PIXI.WebGLBatch.prototype.growBatch=function(){var t=this.gl;this.dynamicSize=1==this.size?1:1.5*this.size,this.verticies=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.vertexBuffer),t.bufferData(t.ARRAY_BUFFER,this.verticies,t.DYNAMIC_DRAW),this.uvs=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.uvBuffer),t.bufferData(t.ARRAY_BUFFER,this.uvs,t.DYNAMIC_DRAW),this.dirtyUVS=!0,this.colors=new Float32Array(4*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.colorBuffer),t.bufferData(t.ARRAY_BUFFER,this.colors,t.DYNAMIC_DRAW),this.dirtyColors=!0,this.indices=new Uint16Array(6*this.dynamicSize);for(var e=this.indices.length/6,i=0;e>i;i++){var r=6*i,s=4*i;this.indices[r+0]=s+0,this.indices[r+1]=s+1,this.indices[r+2]=s+2,this.indices[r+3]=s+0,this.indices[r+4]=s+2,this.indices[r+5]=s+3}t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,this.indexBuffer),t.bufferData(t.ELEMENT_ARRAY_BUFFER,this.indices,t.STATIC_DRAW)},PIXI.WebGLBatch.prototype.refresh=function(){this.gl,this.dynamicSizer;r++)i=this.batchs[r],i instanceof PIXI.WebGLBatch?this.batchs[r].render():i instanceof PIXI.TilingSprite?i.visible&&this.renderTilingSprite(i,t):i instanceof PIXI.Strip&&i.visible&&this.renderStrip(i,t)},PIXI.WebGLRenderGroup.prototype.renderSpecific=function(t,e){PIXI.WebGLRenderer.updateTextures();var i=this.gl;this.checkVisibility(t,t.visible),i.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform,!1,e);var r,s,n,a,o=t.renderable?t:this.getNextRenderable(t),h=o.batch;if(o instanceof PIXI.Sprite){h=o.batch;var u=h.head;if(u==o)r=0;else for(r=1;u.__next!=o;)r++,u=u.__next}else h=o;for(var d,c=t,l=t;l.children.length>0;)l=l.children[l.children.length-1],l.renderable&&(c=l);if(c instanceof PIXI.Sprite){d=c.batch;var u=d.head;if(u==c)n=0;else for(n=1;u.__next!=c;)n++,u=u.__next}else d=c;if(h==d)return h instanceof PIXI.WebGLBatch?h.render(r,n+1):h instanceof PIXI.TilingSprite?h.visible&&this.renderTilingSprite(h,e):h instanceof PIXI.Strip?h.visible&&this.renderStrip(h,e):h instanceof PIXI.CustomRenderable&&h.visible&&h.renderWebGL(this,e),void 0;s=this.batchs.indexOf(h),a=this.batchs.indexOf(d),h instanceof PIXI.WebGLBatch?h.render(r):h instanceof PIXI.TilingSprite?h.visible&&this.renderTilingSprite(h,e):h instanceof PIXI.Strip?h.visible&&this.renderStrip(h,e):h instanceof PIXI.CustomRenderable&&h.visible&&h.renderWebGL(this,e);for(var I=s+1;a>I;I++)renderable=this.batchs[I],renderable instanceof PIXI.WebGLBatch?this.batchs[I].render():renderable instanceof PIXI.TilingSprite?renderable.visible&&this.renderTilingSprite(renderable,e):renderable instanceof PIXI.Strip?renderable.visible&&this.renderStrip(renderable,e):renderable instanceof PIXI.CustomRenderable&&renderable.visible&&renderable.renderWebGL(this,e);d instanceof PIXI.WebGLBatch?d.render(0,n+1):d instanceof PIXI.TilingSprite?d.visible&&this.renderTilingSprite(d):d instanceof PIXI.Strip?d.visible&&this.renderStrip(d):d instanceof PIXI.CustomRenderable&&d.visible&&d.renderWebGL(this,e)},PIXI.WebGLRenderGroup.prototype.checkVisibility=function(t,e){for(var i=t.children,r=0;i.length>r;r++){var s=i[r];s.worldVisible=s.visible&&e,s.textureChange&&(s.textureChange=!1,s.worldVisible&&(this.removeDisplayObject(s),this.addDisplayObject(s))),s.children.length>0&&this.checkVisibility(s,s.worldVisible)}},PIXI.WebGLRenderGroup.prototype.addDisplayObject=function(t){if(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.__renderGroup=this,t.renderable){var e=this.getPreviousRenderable(t),i=this.getNextRenderable(t);if(t instanceof PIXI.Sprite){var r,s;if(e instanceof PIXI.Sprite){if(r=e.batch,r&&r.texture==t.texture.baseTexture&&r.blendMode==t.blendMode)return r.insertAfter(t,e),void 0}else r=e;if(i)if(i instanceof PIXI.Sprite){if(s=i.batch){if(s.texture==t.texture.baseTexture&&s.blendMode==t.blendMode)return s.insertBefore(t,i),void 0;if(s==r){var n=r.split(i),a=PIXI.WebGLRenderer.getBatch(),o=this.batchs.indexOf(r);return a.init(t),this.batchs.splice(o+1,0,a,n),void 0}}}else s=i;var a=PIXI.WebGLRenderer.getBatch();if(a.init(t),r){var o=this.batchs.indexOf(r);this.batchs.splice(o+1,0,a)}else this.batchs.push(a)}else t instanceof PIXI.TilingSprite?(this.initTilingSprite(t),this.batchs.push(t)):t instanceof PIXI.Strip&&(this.initStrip(t),this.batchs.push(t));this.batchUpdate=!0}},PIXI.WebGLRenderGroup.prototype.addDisplayObjectAndChildren=function(t){this.addDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.addDisplayObjectAndChildren(e[i])},PIXI.WebGLRenderGroup.prototype.removeDisplayObject=function(t){if(t.__renderGroup=null,t.renderable){var e;if(t instanceof PIXI.Sprite){var i=t.batch;if(!i)return;i.remove(t),0==i.size&&(e=i)}else e=t;if(e){var r=this.batchs.indexOf(e);if(-1==r)return;if(0==r||r==this.batchs.length-1)return this.batchs.splice(r,1),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e),void 0;if(this.batchs[r-1]instanceof PIXI.WebGLBatch&&this.batchs[r+1]instanceof PIXI.WebGLBatch&&this.batchs[r-1].texture==this.batchs[r+1].texture&&this.batchs[r-1].blendMode==this.batchs[r+1].blendMode)return this.batchs[r-1].merge(this.batchs[r+1]),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e),PIXI.WebGLRenderer.returnBatch(this.batchs[r+1]),this.batchs.splice(r,2),void 0;this.batchs.splice(r,1),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e)}}},PIXI.WebGLRenderGroup.prototype.removeDisplayObjectAndChildren=function(t){if(t.__renderGroup==this){this.removeDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.removeDisplayObjectAndChildren(e[i])}},PIXI.WebGLRenderGroup.prototype.getNextRenderable=function(t){var e=t;do{if(0==e.children.length){if(!e.parent)return null;for(;e.childIndex==e.parent.children.length-1;)if(e=e.parent,e==this.root||!e.parent){e=null;break}e&&(e=e.parent.children[e.childIndex+1])}else e=e.children[0];if(!e)break}while(!e.renderable||!e.__renderGroup);return e},PIXI.WebGLRenderGroup.prototype.getPreviousRenderable=function(t){var e=t;do{if(0==e.childIndex){if(e=e.parent,!e)return null}else for(e=e.parent.children[e.childIndex-1];0!=e.children.length;)e=e.children[e.children.length-1];if(e==this.root)break}while(!e.renderable||!e.__renderGroup);return e},PIXI.WebGLRenderGroup.prototype.initTilingSprite=function(t){var e=this.gl;t.verticies=new Float32Array([0,0,t.width,0,t.width,t.height,0,t.height]),t.uvs=new Float32Array([0,0,1,0,1,1,0,1]),t.colors=new Float32Array([1,1,1,1]),t.indices=new Uint16Array([0,1,3,2]),t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW),t.texture.baseTexture._glTexture?(e.bindTexture(e.TEXTURE_2D,t.texture.baseTexture._glTexture),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT),t.texture.baseTexture._powerOf2=!0):t.texture.baseTexture._powerOf2=!0},PIXI.WebGLRenderGroup.prototype.renderStrip=function(t,e){var i=this.gl,r=PIXI.shaderProgram,s=PIXI.mat3.toMat4(t.worldTransform);PIXI.mat4.transpose(s),PIXI.mat4.multiply(e,s,s),i.uniformMatrix4fv(r.mvMatrixUniform,!1,s),t.blendMode==PIXI.blendModes.NORMAL?i.blendFunc(i.ONE,i.ONE_MINUS_SRC_ALPHA):i.blendFunc(i.ONE,i.ONE_MINUS_SRC_COLOR),t.dirty?(t.dirty=!1,i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferData(i.ARRAY_BUFFER,t.verticies,i.STATIC_DRAW),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferData(i.ARRAY_BUFFER,t.uvs,i.STATIC_DRAW),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.bufferData(i.ARRAY_BUFFER,t.colors,i.STATIC_DRAW),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer),i.bufferData(i.ELEMENT_ARRAY_BUFFER,t.indices,i.STATIC_DRAW)):(i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.verticies),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer)),i.drawElements(i.TRIANGLE_STRIP,t.indices.length,i.UNSIGNED_SHORT,0),i.uniformMatrix4fv(r.mvMatrixUniform,!1,e)},PIXI.WebGLRenderGroup.prototype.renderTilingSprite=function(t,e){var i=this.gl;PIXI.shaderProgram;var r=t.tilePosition,s=t.tileScale,n=r.x/t.texture.baseTexture.width,a=r.y/t.texture.baseTexture.height,o=t.width/t.texture.baseTexture.width/s.x,h=t.height/t.texture.baseTexture.height/s.y;t.uvs[0]=0-n,t.uvs[1]=0-a,t.uvs[2]=1*o-n,t.uvs[3]=0-a,t.uvs[4]=1*o-n,t.uvs[5]=1*h-a,t.uvs[6]=0-n,t.uvs[7]=1*h-a,i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.uvs),this.renderStrip(t,e)},PIXI.WebGLRenderer.prototype.initStrip=function(t){var e=this.gl;this.shaderProgram,t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW)},PIXI.CanvasRenderer=function(t,e,i,r){this.transparent=r,this.width=t||800,this.height=e||600,this.refresh=!0,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height,this.count=0,this.context=this.view.getContext("2d")},PIXI.CanvasRenderer.constructor=PIXI.CanvasRenderer,PIXI.CanvasRenderer.prototype.render=function(t){PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[],t.updateTransform(),this.view.style.backgroundColor==t.backgroundColorString||this.transparent||(this.view.style.backgroundColor=t.backgroundColorString),this.context.setTransform(1,0,0,1,0,0),this.context.clearRect(0,0,this.width,this.height),this.renderDisplayObject(t),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),PIXI.Texture.frameUpdates.length>0&&(PIXI.Texture.frameUpdates=[])},PIXI.CanvasRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e},PIXI.CanvasRenderer.prototype.renderDisplayObject=function(t){var e=t.worldTransform,i=this.context;if(t.visible){if(t instanceof PIXI.Sprite){var r=t.texture.frame;r&&(i.globalAlpha=t.worldAlpha,i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),i.drawImage(t.texture.baseTexture.source,r.x,r.y,r.width,r.height,t.anchor.x*-r.width,t.anchor.y*-r.height,r.width,r.height))}else t instanceof PIXI.Strip?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderStrip(t)):t instanceof PIXI.TilingSprite?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderTilingSprite(t)):t instanceof PIXI.CustomRenderable&&t.renderCanvas(this);for(var s=0;t.children.length>s;s++)this.renderDisplayObject(t.children[s]);this.context.setTransform(1,0,0,1,0,0)}},PIXI.CanvasRenderer.prototype.renderStripFlat=function(t){var e=this.context,i=t.verticies;t.uvs;var r=i.length/2;this.count++,e.beginPath();for(var s=1;r-2>s;s++){var n=2*s,a=i[n],o=i[n+2],h=i[n+4],u=i[n+1],d=i[n+3],c=i[n+5];e.moveTo(a,u),e.lineTo(o,d),e.lineTo(h,c)}e.fillStyle="#FF0000",e.fill(),e.closePath()},PIXI.CanvasRenderer.prototype.renderTilingSprite=function(t){var e=this.context;t.__tilePattern||(t.__tilePattern=e.createPattern(t.texture.baseTexture.source,"repeat")),e.beginPath();var i=t.tilePosition,r=t.tileScale;e.scale(r.x,r.y),e.translate(i.x,i.y),e.fillStyle=t.__tilePattern,e.fillRect(-i.x,-i.y,t.width/r.x,t.height/r.y),e.scale(1/r.x,1/r.y),e.translate(-i.x,-i.y),e.closePath()},PIXI.CanvasRenderer.prototype.renderStrip=function(t){var e=this.context,i=t.verticies,r=t.uvs,s=i.length/2;this.count++;for(var n=1;s-2>n;n++){var a=2*n,o=i[a],h=i[a+2],u=i[a+4],d=i[a+1],c=i[a+3],l=i[a+5],I=r[a]*t.texture.width,p=r[a+2]*t.texture.width,f=r[a+4]*t.texture.width,x=r[a+1]*t.texture.height,v=r[a+3]*t.texture.height,P=r[a+5]*t.texture.height;e.save(),e.beginPath(),e.moveTo(o,d),e.lineTo(h,c),e.lineTo(u,l),e.closePath(),e.clip();var g=I*v+x*f+p*P-v*f-x*p-I*P,b=o*v+x*u+h*P-v*u-x*h-o*P,X=I*h+o*f+p*u-h*f-o*p-I*u,m=I*v*u+x*h*f+o*p*P-o*v*f-x*p*u-I*h*P,T=d*v+x*l+c*P-v*l-x*c-d*P,y=I*c+d*f+p*l-c*f-d*p-I*l,_=I*v*l+x*c*f+d*p*P-d*v*f-x*p*l-I*c*P;e.transform(b/g,T/g,X/g,y/g,m/g,_/g),e.drawImage(t.texture.baseTexture.source,0,0),e.restore()}},PIXI.Strip=function(t,e,i){PIXI.DisplayObjectContainer.call(this),this.texture=t,this.blendMode=PIXI.blendModes.NORMAL;try{this.uvs=new Float32Array([0,1,1,1,1,0,0,1]),this.verticies=new Float32Array([0,0,0,0,0,0,0,0,0]),this.colors=new Float32Array([1,1,1,1]),this.indices=new Uint16Array([0,1,2,3])}catch(r){this.uvs=[0,1,1,1,1,0,0,1],this.verticies=[0,0,0,0,0,0,0,0,0],this.colors=[1,1,1,1],this.indices=[0,1,2,3]}this.width=e,this.height=i,t.baseTexture.hasLoaded?(this.width=this.texture.frame.width,this.height=this.texture.frame.height,this.updateFrame=!0):(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},PIXI.Strip.constructor=PIXI.Strip,PIXI.Strip.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Strip.prototype.setTexture=function(t){this.texture=t,this.width=t.frame.width,this.height=t.frame.height,this.updateFrame=!0},PIXI.Strip.prototype.onTextureUpdate=function(){this.updateFrame=!0},PIXI.Rope=function(t,e){PIXI.Strip.call(this,t),this.points=e;try{this.verticies=new Float32Array(4*e.length),this.uvs=new Float32Array(4*e.length),this.colors=new Float32Array(2*e.length),this.indices=new Uint16Array(2*e.length)}catch(i){this.verticies=verticies,this.uvs=uvs,this.colors=colors,this.indices=indices}this.refresh()},PIXI.Rope.constructor=PIXI.Rope,PIXI.Rope.prototype=Object.create(PIXI.Strip.prototype),PIXI.Rope.prototype.refresh=function(){var t=this.points;if(!(1>t.length)){var e=this.uvs,i=this.indices,r=this.colors,s=t[0],n=t[0];this.count-=.2,e[0]=0,e[1]=1,e[2]=0,e[3]=1,r[0]=1,r[1]=1,i[0]=0,i[1]=1;for(var a=t.length,o=1;a>o;o++){var n=t[o],h=4*o,u=o/(a-1);o%2?(e[h]=u,e[h+1]=0,e[h+2]=u,e[h+3]=1):(e[h]=u,e[h+1]=0,e[h+2]=u,e[h+3]=1),h=2*o,r[h]=1,r[h+1]=1,h=2*o,i[h]=h,i[h+1]=h+1,s=n}}},PIXI.Rope.prototype.updateTransform=function(){var t=this.points;if(!(1>t.length)){var e,i=this.verticies,r=t[0],s={x:0,y:0},n=t[0];this.count-=.2,i[0]=n.x+s.x,i[1]=n.y+s.y,i[2]=n.x-s.x,i[3]=n.y-s.y;for(var a=t.length,o=1;a>o;o++){var n=t[o],h=4*o;e=t.length-1>o?t[o+1]:n,s.y=-(e.x-r.x),s.x=e.y-r.y;var u=10*(1-o/(a-1));u>1&&(u=1);var d=Math.sqrt(s.x*s.x+s.y*s.y),c=this.texture.height/2;s.x/=d,s.y/=d,s.x*=c,s.y*=c,i[h]=n.x+s.x,i[h+1]=n.y+s.y,i[h+2]=n.x-s.x,i[h+3]=n.y-s.y,r=n}PIXI.DisplayObjectContainer.prototype.updateTransform.call(this)}},PIXI.Rope.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0},PIXI.TilingSprite=function(t,e,i){PIXI.DisplayObjectContainer.call(this),this.texture=t,this.width=e,this.height=i,this.renderable=!0,this.tileScale=new PIXI.Point(1,1),this.tilePosition=new PIXI.Point(0,0),this.blendMode=PIXI.blendModes.NORMAL},PIXI.TilingSprite.constructor=PIXI.TilingSprite,PIXI.TilingSprite.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.TilingSprite.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0},PIXI.TilingSprite.prototype.onTextureUpdate=function(){this.updateFrame=!0},PIXI.CustomRenderable=function(){PIXI.DisplayObject.call(this)},PIXI.CustomRenderable.constructor=PIXI.CustomRenderable,PIXI.CustomRenderable.prototype=Object.create(PIXI.DisplayObject.prototype),PIXI.CustomRenderable.prototype.renderCanvas=function(){},PIXI.CustomRenderable.prototype.initWebGL=function(){},PIXI.CustomRenderable.prototype.renderWebGL=function(){},PIXI.BaseTextureCache={},PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[],PIXI.BaseTexture=function(t){if(PIXI.EventTarget.call(this),this.width=100,this.height=100,this.source=t,t){if(this.source instanceof Image)if(this.source.complete)this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,PIXI.texturesToUpdate.push(this);else{var e=this;this.source.onload=function(){e.hasLoaded=!0,e.width=e.source.width,e.height=e.source.height,PIXI.texturesToUpdate.push(e),e.dispatchEvent({type:"loaded",content:e})}}else this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,PIXI.texturesToUpdate.push(this);this._powerOf2=!1}},PIXI.BaseTexture.constructor=PIXI.BaseTexture,PIXI.BaseTexture.prototype.destroy=function(){this.source instanceof Image&&(this.source.src=null),this.source=null,PIXI.texturesToDestroy.push(this)},PIXI.BaseTexture.fromImage=function(t,e){var i=PIXI.BaseTextureCache[t];if(!i){var r=new Image;e&&(r.crossOrigin=""),r.src=t,i=new PIXI.BaseTexture(r),PIXI.BaseTextureCache[t]=i}return i},PIXI.TextureCache={},PIXI.FrameCache={},PIXI.Texture=function(t,e){if(PIXI.EventTarget.call(this),e||(this.noFrame=!0,e=new PIXI.Rectangle(0,0,1,1)),this.trim=new PIXI.Point,t instanceof PIXI.Texture&&(t=t.baseTexture),this.baseTexture=t,this.frame=e,this.scope=this,t.hasLoaded)this.noFrame&&(e=new PIXI.Rectangle(0,0,t.width,t.height)),this.setFrame(e);else{var i=this;t.addEventListener("loaded",function(){i.onBaseTextureLoaded()})}},PIXI.Texture.constructor=PIXI.Texture,PIXI.Texture.prototype.onBaseTextureLoaded=function(){var t=this.baseTexture;t.removeEventListener("loaded",this.onLoaded),this.noFrame&&(this.frame=new PIXI.Rectangle(0,0,t.width,t.height)),this.noFrame=!1,this.width=this.frame.width,this.height=this.frame.height,this.scope.dispatchEvent({type:"update",content:this})},PIXI.Texture.prototype.destroy=function(t){t&&this.baseTexture.destroy()},PIXI.Texture.prototype.setFrame=function(t){if(this.frame=t,this.width=t.width,this.height=t.height,t.x+t.width>this.baseTexture.width||t.y+t.height>this.baseTexture.height)throw Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);this.updateFrame=!0,PIXI.Texture.frameUpdates.push(this)},PIXI.Texture.fromImage=function(t,e){var i=PIXI.TextureCache[t];return i||(i=new PIXI.Texture(PIXI.BaseTexture.fromImage(t,e)),PIXI.TextureCache[t]=i),i},PIXI.Texture.fromFrame=function(t){var e=PIXI.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache "+this);return e},PIXI.Texture.fromCanvas=function(t){var e=new PIXI.BaseTexture(t);return new PIXI.Texture(e)},PIXI.Texture.addTextureToCache=function(t,e){PIXI.TextureCache[e]=t},PIXI.Texture.removeTextureFromCache=function(t){var e=PIXI.TextureCache[t];return PIXI.TextureCache[t]=null,e},PIXI.Texture.frameUpdates=[],PIXI.RenderTexture=function(t,e){PIXI.EventTarget.call(this),this.width=t||100,this.height=e||100,this.indetityMatrix=PIXI.mat3.create(),this.frame=new PIXI.Rectangle(0,0,this.width,this.height),PIXI.gl?this.initWebGL():this.initCanvas()},PIXI.RenderTexture.constructor=PIXI.RenderTexture,PIXI.RenderTexture.prototype=Object.create(PIXI.Texture.prototype),PIXI.RenderTexture.prototype.initWebGL=function(){var t=PIXI.gl;this.glFramebuffer=t.createFramebuffer(),t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),this.glFramebuffer.width=this.width,this.glFramebuffer.height=this.height,this.baseTexture=new PIXI.BaseTexture,this.baseTexture.width=this.width,this.baseTexture.height=this.height,this.baseTexture._glTexture=t.createTexture(),t.bindTexture(t.TEXTURE_2D,this.baseTexture._glTexture),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,this.width,this.height,0,t.RGBA,t.UNSIGNED_BYTE,null),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),this.baseTexture.isRender=!0,t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,this.baseTexture._glTexture,0),this.projectionMatrix=PIXI.mat4.create(),this.projectionMatrix[5]=2/this.height,this.projectionMatrix[13]=-1,this.projectionMatrix[0]=2/this.width,this.projectionMatrix[12]=-1,this.render=this.renderWebGL},PIXI.RenderTexture.prototype.initCanvas=function(){this.renderer=new PIXI.CanvasRenderer(this.width,this.height,null,0),this.baseTexture=new PIXI.BaseTexture(this.renderer.view),this.frame=new PIXI.Rectangle(0,0,this.width,this.height),this.render=this.renderCanvas},PIXI.RenderTexture.prototype.renderWebGL=function(t,e){var i=PIXI.gl;i.colorMask(!0,!0,!0,!0),i.viewport(0,0,this.width,this.height),i.bindFramebuffer(i.FRAMEBUFFER,this.glFramebuffer),e&&(i.clearColor(0,0,0,0),i.clear(i.COLOR_BUFFER_BIT));var r=t.children;t.worldTransform=PIXI.mat3.create();for(var s=0,n=r.length;n>s;s++)r[s].updateTransform();var a=t.__renderGroup;a?t==a.root?a.render(this.projectionMatrix):a.renderSpecific(t,this.projectionMatrix):(this.renderGroup||(this.renderGroup=new PIXI.WebGLRenderGroup(i)),this.renderGroup.setRenderable(t),this.renderGroup.render(this.projectionMatrix))},PIXI.RenderTexture.prototype.renderCanvas=function(t,e){var i=t.children;t.worldTransform=PIXI.mat3.create();for(var r=0,s=i.length;s>r;r++)i[r].updateTransform();e&&this.renderer.context.clearRect(0,0,this.width,this.height),this.renderer.renderDisplayObject(t),PIXI.texturesToUpdate.push(this.baseTexture)},PIXI.AssetLoader=function(t){PIXI.EventTarget.call(this),this.assetURLs=t,this.crossorigin=!1,this.loadersByType={jpg:PIXI.ImageLoader,jpeg:PIXI.ImageLoader,png:PIXI.ImageLoader,gif:PIXI.ImageLoader,json:PIXI.SpriteSheetLoader,xml:PIXI.BitmapFontLoader,fnt:PIXI.BitmapFontLoader}},PIXI.AssetLoader.constructor=PIXI.AssetLoader,PIXI.AssetLoader.prototype.load=function(){var t=this;this.loadCount=this.assetURLs.length;for(var e=0;this.assetURLs.length>e;e++){var i=this.assetURLs[e],r=i.split(".").pop().toLowerCase(),s=this.loadersByType[r];if(!s)throw Error(r+" is an unsupported file type");var n=new s(i,this.crossorigin);n.addEventListener("loaded",function(){t.onAssetLoaded()}),n.load()}},PIXI.AssetLoader.prototype.onAssetLoaded=function(){this.loadCount--,this.dispatchEvent({type:"onProgress",content:this}),this.onProgress&&this.onProgress(),0==this.loadCount&&(this.dispatchEvent({type:"onComplete",content:this}),this.onComplete&&this.onComplete())},PIXI.SpriteSheetLoader=function(t,e){PIXI.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.frames={},this.crossorigin=e},PIXI.SpriteSheetLoader.constructor=PIXI.SpriteSheetLoader,PIXI.SpriteSheetLoader.prototype.load=function(){this.ajaxRequest=new AjaxRequest;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onJSONLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/json"),this.ajaxRequest.send(null)},PIXI.SpriteSheetLoader.prototype.onJSONLoaded=function(){if(4==this.ajaxRequest.readyState&&(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))){var jsonData=eval("("+this.ajaxRequest.responseText+")"),textureUrl=this.baseUrl+jsonData.meta.image,image=new PIXI.ImageLoader(textureUrl,this.crossorigin);this.texture=image.texture.baseTexture;var scope=this;image.addEventListener("loaded",function(){scope.onLoaded()});var frameData=jsonData.frames;for(var i in frameData){var rect=frameData[i].frame;rect&&(PIXI.TextureCache[i]=new PIXI.Texture(this.texture,{x:rect.x,y:rect.y,width:rect.w,height:rect.h}),frameData[i].trimmed&&(PIXI.TextureCache[i].realSize=frameData[i].spriteSourceSize,PIXI.TextureCache[i].trim.x=0))}image.load()}},PIXI.SpriteSheetLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},PIXI.ImageLoader=function(t,e){PIXI.EventTarget.call(this),this.texture=PIXI.Texture.fromImage(t,e)},PIXI.ImageLoader.constructor=PIXI.ImageLoader,PIXI.ImageLoader.prototype.load=function(){if(this.texture.baseTexture.hasLoaded)this.onLoaded();else{var t=this;this.texture.baseTexture.addEventListener("loaded",function(){t.onLoaded()})}},PIXI.ImageLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},PIXI.BitmapFontLoader=function(t,e){PIXI.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.crossorigin=e},PIXI.BitmapFontLoader.constructor=PIXI.BitmapFontLoader,PIXI.BitmapFontLoader.prototype.load=function(){this.ajaxRequest=new XMLHttpRequest;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onXMLLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/xml"),this.ajaxRequest.send(null)},PIXI.BitmapFontLoader.prototype.onXMLLoaded=function(){if(4==this.ajaxRequest.readyState&&(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))){var t=this.baseUrl+this.ajaxRequest.responseXML.getElementsByTagName("page")[0].attributes.getNamedItem("file").nodeValue,e=new PIXI.ImageLoader(t,this.crossorigin);this.texture=e.texture.baseTexture;var i={},r=this.ajaxRequest.responseXML.getElementsByTagName("info")[0],s=this.ajaxRequest.responseXML.getElementsByTagName("common")[0];i.font=r.attributes.getNamedItem("face").nodeValue,i.size=parseInt(r.attributes.getNamedItem("size").nodeValue,10),i.lineHeight=parseInt(s.attributes.getNamedItem("lineHeight").nodeValue,10),i.chars={};for(var n=this.ajaxRequest.responseXML.getElementsByTagName("char"),a=0;n.length>a;a++){var o=parseInt(n[a].attributes.getNamedItem("id").nodeValue,10),h={x:parseInt(n[a].attributes.getNamedItem("x").nodeValue,10),y:parseInt(n[a].attributes.getNamedItem("y").nodeValue,10),width:parseInt(n[a].attributes.getNamedItem("width").nodeValue,10),height:parseInt(n[a].attributes.getNamedItem("height").nodeValue,10)};PIXI.TextureCache[o]=new PIXI.Texture(this.texture,h),i.chars[o]={xOffset:parseInt(n[a].attributes.getNamedItem("xoffset").nodeValue,10),yOffset:parseInt(n[a].attributes.getNamedItem("yoffset").nodeValue,10),xAdvance:parseInt(n[a].attributes.getNamedItem("xadvance").nodeValue,10),kerning:{}}}var u=this.ajaxRequest.responseXML.getElementsByTagName("kerning");for(a=0;u.length>a;a++){var d=parseInt(u[a].attributes.getNamedItem("first").nodeValue,10),c=parseInt(u[a].attributes.getNamedItem("second").nodeValue,10),l=parseInt(u[a].attributes.getNamedItem("amount").nodeValue,10);i.chars[c].kerning[d]=l}PIXI.BitmapText.fonts[i.font]=i;var I=this;e.addEventListener("loaded",function(){I.onLoaded()}),e.load()}},PIXI.BitmapFontLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=PIXI),exports.PIXI=PIXI):root.PIXI=PIXI}).call(this); \ No newline at end of file diff --git a/docs/classes/WebGLRenderer.html b/docs/classes/WebGLRenderer.html index 581cb5a..fcef6b6 100644 --- a/docs/classes/WebGLRenderer.html +++ b/docs/classes/WebGLRenderer.html @@ -498,7 +498,7 @@ - src/pixi/renderers/WebGLRenderer.js:283 + src/pixi/renderers/WebGLRenderer.js:284

diff --git a/docs/data.json b/docs/data.json index 9b4a49d..4b27831 100644 --- a/docs/data.json +++ b/docs/data.json @@ -1388,35 +1388,35 @@ }, { "file": "src/pixi/renderers/WebGLRenderGroup.js", - "line": 523, + "line": 527, "access": "private", "tagname": "", "class": "WebGLBatch" }, { "file": "src/pixi/renderers/WebGLRenderGroup.js", - "line": 607, + "line": 613, "access": "private", "tagname": "", "class": "WebGLBatch" }, { "file": "src/pixi/renderers/WebGLRenderGroup.js", - "line": 663, + "line": 669, "access": "private", "tagname": "", "class": "WebGLBatch" }, { "file": "src/pixi/renderers/WebGLRenderGroup.js", - "line": 740, + "line": 746, "access": "private", "tagname": "", "class": "WebGLBatch" }, { "file": "src/pixi/renderers/WebGLRenderGroup.js", - "line": 777, + "line": 783, "access": "private", "tagname": "", "class": "WebGLBatch" @@ -1465,14 +1465,14 @@ }, { "file": "src/pixi/renderers/WebGLRenderer.js", - "line": 232, + "line": 225, "access": "private", "tagname": "", "class": "WebGLRenderer" }, { "file": "src/pixi/renderers/WebGLRenderer.js", - "line": 283, + "line": 284, "description": "resizes the webGL view to the specified width and height", "itemtype": "method", "name": "resize", @@ -1492,14 +1492,14 @@ }, { "file": "src/pixi/renderers/WebGLRenderer.js", - "line": 307, + "line": 308, "access": "private", "tagname": "", "class": "WebGLRenderer" }, { "file": "src/pixi/renderers/WebGLRenderer.js", - "line": 316, + "line": 317, "access": "private", "tagname": "", "class": "WebGLRenderer" @@ -2908,23 +2908,23 @@ }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderGroup.js:523" + "line": " src/pixi/renderers/WebGLRenderGroup.js:527" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderGroup.js:607" + "line": " src/pixi/renderers/WebGLRenderGroup.js:613" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderGroup.js:663" + "line": " src/pixi/renderers/WebGLRenderGroup.js:669" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderGroup.js:740" + "line": " src/pixi/renderers/WebGLRenderGroup.js:746" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderGroup.js:777" + "line": " src/pixi/renderers/WebGLRenderGroup.js:783" }, { "message": "Missing item type", @@ -2944,15 +2944,15 @@ }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderer.js:232" + "line": " src/pixi/renderers/WebGLRenderer.js:225" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderer.js:307" + "line": " src/pixi/renderers/WebGLRenderer.js:308" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderer.js:316" + "line": " src/pixi/renderers/WebGLRenderer.js:317" }, { "message": "Missing item type", diff --git a/docs/files/src_pixi_renderers_WebGLRenderGroup.js.html b/docs/files/src_pixi_renderers_WebGLRenderGroup.js.html index 7222602..42bcabd 100644 --- a/docs/files/src_pixi_renderers_WebGLRenderGroup.js.html +++ b/docs/files/src_pixi_renderers_WebGLRenderGroup.js.html @@ -177,6 +177,8 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + //PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. @@ -215,6 +217,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + //PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -683,7 +687,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/docs/files/src_pixi_renderers_WebGLRenderer.js.html b/docs/files/src_pixi_renderers_WebGLRenderer.js.html index 0383c4d..551dd19 100644 --- a/docs/files/src_pixi_renderers_WebGLRenderer.js.html +++ b/docs/files/src_pixi_renderers_WebGLRenderer.js.html @@ -306,15 +306,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -366,9 +359,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -400,7 +402,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) diff --git a/examples/example 1 - Basics/pixi.js b/examples/example 1 - Basics/pixi.js index f29080a..3478cf4 100644 --- a/examples/example 1 - Basics/pixi.js +++ b/examples/example 1 - Basics/pixi.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/examples/example 10 - Text/pixi.js b/examples/example 10 - Text/pixi.js index f29080a..3478cf4 100644 --- a/examples/example 10 - Text/pixi.js +++ b/examples/example 10 - Text/pixi.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/examples/example 11 - RenderTexture/index.html b/examples/example 11 - RenderTexture/index.html index efd342b..e4acf76 100644 --- a/examples/example 11 - RenderTexture/index.html +++ b/examples/example 11 - RenderTexture/index.html @@ -15,7 +15,7 @@ diff --git a/examples/example 11 - RenderTexture/pixi.js b/examples/example 11 - RenderTexture/pixi.js index f29080a..3478cf4 100644 --- a/examples/example 11 - RenderTexture/pixi.js +++ b/examples/example 11 - RenderTexture/pixi.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/examples/example 2 - SpriteSheet/pixi.js b/examples/example 2 - SpriteSheet/pixi.js index f29080a..3478cf4 100644 --- a/examples/example 2 - SpriteSheet/pixi.js +++ b/examples/example 2 - SpriteSheet/pixi.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/examples/example 3 - MovieClip/pixi.js b/examples/example 3 - MovieClip/pixi.js index f29080a..3478cf4 100755 --- a/examples/example 3 - MovieClip/pixi.js +++ b/examples/example 3 - MovieClip/pixi.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/examples/example 4 - Balls/pixi.js b/examples/example 4 - Balls/pixi.js index f29080a..3478cf4 100644 --- a/examples/example 4 - Balls/pixi.js +++ b/examples/example 4 - Balls/pixi.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/examples/example 5 - Morph/pixi.js b/examples/example 5 - Morph/pixi.js index f29080a..3478cf4 100644 --- a/examples/example 5 - Morph/pixi.js +++ b/examples/example 5 - Morph/pixi.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/examples/example 6 - Interactivity/pixi.js b/examples/example 6 - Interactivity/pixi.js index f29080a..3478cf4 100644 --- a/examples/example 6 - Interactivity/pixi.js +++ b/examples/example 6 - Interactivity/pixi.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/examples/example 7 - Transparent Background/pixi.js b/examples/example 7 - Transparent Background/pixi.js index f29080a..3478cf4 100644 --- a/examples/example 7 - Transparent Background/pixi.js +++ b/examples/example 7 - Transparent Background/pixi.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/examples/example 8 - Dragging/pixi.js b/examples/example 8 - Dragging/pixi.js index f29080a..3478cf4 100644 --- a/examples/example 8 - Dragging/pixi.js +++ b/examples/example 8 - Dragging/pixi.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/examples/example 9 - Tiling Texture/pixi.js b/examples/example 9 - Tiling Texture/pixi.js index f29080a..3478cf4 100644 --- a/examples/example 9 - Tiling Texture/pixi.js +++ b/examples/example 9 - Tiling Texture/pixi.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/bin/pixi.dev.js b/bin/pixi.dev.js index f29080a..3478cf4 100644 --- a/bin/pixi.dev.js +++ b/bin/pixi.dev.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/bin/pixi.js b/bin/pixi.js index 5f2a13c..a6d54d1 100644 --- a/bin/pixi.js +++ b/bin/pixi.js @@ -4,10 +4,10 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php */ -(function(){function HEXtoRGB(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}function determineMatrixArrayType(){return PIXI.Matrix="undefined"!=typeof Float32Array?Float32Array:Array,PIXI.Matrix}var root=this,PIXI=PIXI||{};PIXI.Point=function(t,e){this.x=t||0,this.y=e||0},PIXI.Point.prototype.clone=function(){return new PIXI.Point(this.x,this.y)},PIXI.Point.constructor=PIXI.Point,PIXI.Rectangle=function(t,e,i,r){this.x=t||0,this.y=e||0,this.width=i||0,this.height=r||0},PIXI.Rectangle.prototype.clone=function(){return new PIXI.Rectangle(this.x,this.y,this.width,this.height)},PIXI.Rectangle.constructor=PIXI.Rectangle,PIXI.DisplayObject=function(){this.position=new PIXI.Point,this.scale=new PIXI.Point(1,1),this.pivot=new PIXI.Point(0,0),this.rotation=0,this.alpha=1,this.visible=!0,this.worldVisible=!1,this.parent=null,this.stage=null,this.hitArea=null,this.worldAlpha=1,this.color=[],this.worldTransform=PIXI.mat3.create(),this.localTransform=PIXI.mat3.create(),this.dynamic=!0,this._sr=0,this._cr=1,this.childIndex=0,this.renderable=!1,this.interactive=!1,this.buttonMode=!1},PIXI.DisplayObject.constructor=PIXI.DisplayObject,PIXI.DisplayObject.prototype.setInteractive=function(t){this.interactive=t,this.stage&&(this.stage.dirty=!0)},PIXI.DisplayObject.prototype.updateTransform=function(){this.rotation!=this.rotationCache&&(this.rotationCache=this.rotation,this._sr=Math.sin(this.rotation),this._cr=Math.cos(this.rotation));var t=this.localTransform,e=this.parent.worldTransform,i=this.worldTransform;t[0]=this._cr*this.scale.x,t[1]=-this._sr*this.scale.y,t[3]=this._sr*this.scale.x,t[4]=this._cr*this.scale.y;var r=this.pivot.x,s=this.pivot.y;t[2]=this.position.x-t[0]*r-s*t[1],t[5]=this.position.y-t[4]*s-r*t[3];var n=t[0],a=t[1],o=t[2],h=t[3],u=t[4],c=t[5],d=e[0],l=e[1],I=e[2],p=e[3],f=e[4],x=e[5];i[0]=d*n+l*h,i[1]=d*a+l*u,i[2]=d*o+l*c+I,i[3]=p*n+f*h,i[4]=p*a+f*u,i[5]=p*o+f*c+x,this.worldAlpha=this.alpha*this.parent.worldAlpha},PIXI.DisplayObjectContainer=function(){PIXI.DisplayObject.call(this),this.children=[],this.renderable=!1},PIXI.DisplayObjectContainer.constructor=PIXI.DisplayObjectContainer,PIXI.DisplayObjectContainer.prototype=Object.create(PIXI.DisplayObject.prototype),PIXI.DisplayObjectContainer.prototype.addChild=function(t){void 0!=t.parent&&t.parent.removeChild(t),t.parent=this,t.childIndex=this.children.length,this.children.push(t),this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},PIXI.DisplayObjectContainer.prototype.addChildAt=function(t,e){if(!(e>=0&&this.children.length>=e))throw Error(t+" The index "+e+" supplied is out of bounds "+this.children.length);void 0!=t.parent&&t.parent.removeChild(t),e==this.children.length?this.children.push(t):this.children.splice(e,0,t),t.parent=this,t.childIndex=e;for(var i=this.children.length,r=e;i>r;r++)this.children[r].childIndex=r;this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},PIXI.DisplayObjectContainer.prototype.swapChildren=function(t,e){var i=this.children.indexOf(t),r=this.children.indexOf(e);if(-1===i||-1===r)throw Error(t+" Both the supplied DisplayObjects must be a child of the caller "+this);this.stage&&(this.stage.__removeChild(t),this.stage.__removeChild(e),this.stage.__addChild(t),this.stage.__addChild(e)),t.childIndex=r,e.childIndex=i,this.children[i]=e,this.children[r]=t},PIXI.DisplayObjectContainer.prototype.getChildAt=function(t){if(t>=0&&this.children.length>t)return this.children[t];throw Error(child+" Both the supplied DisplayObjects must be a child of the caller "+this)},PIXI.DisplayObjectContainer.prototype.removeChild=function(t){var e=this.children.indexOf(t);if(-1===e)throw Error(t+" The supplied DisplayObject must be a child of the caller "+this);this.stage&&this.stage.__removeChild(t),t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.parent=void 0,this.children.splice(e,1);for(var i=e,r=this.children.length;r>i;i++)this.children[i].childIndex-=1},PIXI.DisplayObjectContainer.prototype.updateTransform=function(){if(this.visible){PIXI.DisplayObject.prototype.updateTransform.call(this);for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform()}},PIXI.blendModes={},PIXI.blendModes.NORMAL=0,PIXI.blendModes.SCREEN=1,PIXI.Sprite=function(t){PIXI.DisplayObjectContainer.call(this),this.anchor=new PIXI.Point,this.texture=t,this.blendMode=PIXI.blendModes.NORMAL,this._width=0,this._height=0,t.baseTexture.hasLoaded?this.updateFrame=!0:(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},PIXI.Sprite.constructor=PIXI.Sprite,PIXI.Sprite.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),Object.defineProperty(PIXI.Sprite.prototype,"width",{get:function(){return this.scale.x*this.texture.frame.width},set:function(t){this.scale.x=t/this.texture.frame.width,this._width=t}}),Object.defineProperty(PIXI.Sprite.prototype,"height",{get:function(){return this.scale.y*this.texture.frame.height},set:function(t){this.scale.y=t/this.texture.frame.height,this._height=t}}),PIXI.Sprite.prototype.setTexture=function(t){this.texture.baseTexture!=t.baseTexture&&(this.textureChange=!0),this.texture=t,this.updateFrame=!0},PIXI.Sprite.prototype.onTextureUpdate=function(){this._width&&(this.scale.x=this._width/this.texture.frame.width),this._height&&(this.scale.y=this._height/this.texture.frame.height),this.updateFrame=!0},PIXI.Sprite.fromFrame=function(t){var e=PIXI.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache"+this);return new PIXI.Sprite(e)},PIXI.Sprite.fromImage=function(t){var e=PIXI.Texture.fromImage(t);return new PIXI.Sprite(e)},PIXI.MovieClip=function(t){PIXI.Sprite.call(this,t[0]),this.textures=t,this.currentFrame=0,this.animationSpeed=1,this.loop=!0,this.onComplete=null,this.playing},PIXI.MovieClip.constructor=PIXI.MovieClip,PIXI.MovieClip.prototype=Object.create(PIXI.Sprite.prototype),PIXI.MovieClip.prototype.stop=function(){this.playing=!1},PIXI.MovieClip.prototype.play=function(){this.playing=!0},PIXI.MovieClip.prototype.gotoAndStop=function(t){this.playing=!1,this.currentFrame=t;var e=0|this.currentFrame+.5;this.setTexture(this.textures[e%this.textures.length])},PIXI.MovieClip.prototype.gotoAndPlay=function(t){this.currentFrame=t,this.playing=!0},PIXI.MovieClip.prototype.updateTransform=function(){if(PIXI.Sprite.prototype.updateTransform.call(this),this.playing){this.currentFrame+=this.animationSpeed;var t=0|this.currentFrame+.5;this.loop||this.textures.length>t?this.setTexture(this.textures[t%this.textures.length]):t>=this.textures.length&&(this.gotoAndStop(this.textures.length-1),this.onComplete&&this.onComplete())}},PIXI.Text=function(t,e){this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"),PIXI.Sprite.call(this,PIXI.Texture.fromCanvas(this.canvas)),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},PIXI.Text.constructor=PIXI.Text,PIXI.Text.prototype=Object.create(PIXI.Sprite.prototype),PIXI.Text.prototype.setStyle=function(t){t=t||{},t.font=t.font||"bold 20pt Arial",t.fill=t.fill||"black",t.align=t.align||"left",t.strokeThickness=t.strokeThickness||0,this.style=t,this.dirty=!0},PIXI.Sprite.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},PIXI.Text.prototype.updateText=function(){this.context.font=this.style.font;for(var t=this.text.split(/(?:\r\n|\r|\n)/),e=[],i=0,r=0;t.length>r;r++){var s=this.context.measureText(t[r]).width;e[r]=s,i=Math.max(i,s)}this.canvas.width=i+this.style.strokeThickness;var n=this.determineFontHeight("font: "+this.style.font+";")+this.style.strokeThickness;for(this.canvas.height=n*t.length,this.context.fillStyle=this.style.fill,this.context.font=this.style.font,this.context.strokeStyle=this.style.stroke,this.context.lineWidth=this.style.strokeThickness,this.context.textBaseline="top",r=0;t.length>r;r++){var a=new PIXI.Point(this.style.strokeThickness/2,this.style.strokeThickness/2+r*n);"right"==this.style.align?a.x+=i-e[r]:"center"==this.style.align&&(a.x+=(i-e[r])/2),this.style.stroke&&this.style.strokeThickness&&this.context.strokeText(t[r],a.x,a.y),this.style.fill&&this.context.fillText(t[r],a.x,a.y)}this.updateTexture()},PIXI.Text.prototype.updateTexture=function(){this.texture.baseTexture.width=this.canvas.width,this.texture.baseTexture.height=this.canvas.height,this.texture.frame.width=this.canvas.width,this.texture.frame.height=this.canvas.height,this._width=this.canvas.width,this._height=this.canvas.height,PIXI.texturesToUpdate.push(this.texture.baseTexture)},PIXI.Text.prototype.updateTransform=function(){this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype.updateTransform.call(this)},PIXI.Text.prototype.determineFontHeight=function(t){var e=PIXI.Text.heightCache[t];if(!e){var i=document.getElementsByTagName("body")[0],r=document.createElement("div"),s=document.createTextNode("M");r.appendChild(s),r.setAttribute("style",t),i.appendChild(r),e=r.offsetHeight,PIXI.Text.heightCache[t]=e,i.removeChild(r)}return e},PIXI.Text.prototype.destroy=function(t){t&&this.texture.destroy()},PIXI.Text.heightCache={},PIXI.BitmapText=function(t,e){PIXI.DisplayObjectContainer.call(this),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},PIXI.BitmapText.constructor=PIXI.BitmapText,PIXI.BitmapText.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.BitmapText.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},PIXI.BitmapText.prototype.setStyle=function(t){t=t||{},t.align=t.align||"left",this.style=t;var e=t.font.split(" ");this.fontName=e[e.length-1],this.fontSize=e.length>=2?parseInt(e[e.length-2],10):PIXI.BitmapText.fonts[this.fontName].size,this.dirty=!0},PIXI.BitmapText.prototype.updateText=function(){for(var t=PIXI.BitmapText.fonts[this.fontName],e=new PIXI.Point,i=null,r=[],s=0,n=[],a=0,o=this.fontSize/t.size,h=0;this.text.length>h;h++){var u=this.text.charCodeAt(h);if(/(?:\r\n|\r|\n)/.test(this.text.charAt(h)))n.push(e.x),s=Math.max(s,e.x),a++,e.x=0,e.y+=t.lineHeight,i=null;else{var c=t.chars[u];c&&(i&&c[i]&&(e.x+=c.kerning[i]),r.push({line:a,charCode:u,position:new PIXI.Point(e.x+c.xOffset,e.y+c.yOffset)}),e.x+=c.xAdvance,i=u)}}n.push(e.x),s=Math.max(s,e.x);var d=[];for(h=0;a>=h;h++){var l=0;"right"==this.style.align?l=s-n[h]:"center"==this.style.align&&(l=(s-n[h])/2),d.push(l)}for(h=0;r.length>h;h++){var I=PIXI.Sprite.fromFrame(r[h].charCode);I.position.x=(r[h].position.x+d[r[h].line])*o,I.position.y=r[h].position.y*o,I.scale.x=I.scale.y=o,this.addChild(I)}this.width=e.x*o,this.height=(e.y+t.lineHeight)*o},PIXI.BitmapText.prototype.updateTransform=function(){if(this.dirty){for(;this.children.length>0;)this.removeChild(this.getChildAt(0));this.updateText(),this.dirty=!1}PIXI.DisplayObjectContainer.prototype.updateTransform.call(this)},PIXI.BitmapText.fonts={},PIXI.InteractionManager=function(t){this.stage=t,this.tempPoint=new PIXI.Point,this.mouseoverEnabled=!0,this.mouse=new PIXI.InteractionData,this.touchs={},this.pool=[],this.interactiveItems=[],this.last=0},PIXI.InteractionManager.constructor=PIXI.InteractionManager,PIXI.InteractionManager.prototype.collectInteractiveSprite=function(t,e){for(var i=t.children,r=i.length,s=r-1;s>=0;s--){var n=i[s];n.interactive?(e.interactiveChildren=!0,this.interactiveItems.push(n),n.children.length>0&&this.collectInteractiveSprite(n,n)):(n.__iParent=null,n.children.length>0&&this.collectInteractiveSprite(n,e))}},PIXI.InteractionManager.prototype.setTarget=function(t){window.navigator.msPointerEnabled&&(t.view.style["-ms-content-zooming"]="none",t.view.style["-ms-touch-action"]="none"),this.target=t,t.view.addEventListener("mousemove",this.onMouseMove.bind(this),!0),t.view.addEventListener("mousedown",this.onMouseDown.bind(this),!0),document.body.addEventListener("mouseup",this.onMouseUp.bind(this),!0),t.view.addEventListener("mouseout",this.onMouseUp.bind(this),!0),t.view.addEventListener("touchstart",this.onTouchStart.bind(this),!0),t.view.addEventListener("touchend",this.onTouchEnd.bind(this),!0),t.view.addEventListener("touchmove",this.onTouchMove.bind(this),!0)},PIXI.InteractionManager.prototype.update=function(){if(this.target){var t=Date.now(),e=t-this.last;if(e=30*e/1e3,!(1>e)){if(this.last=t,this.dirty){this.dirty=!1,this.interactiveItems.length;for(var i=0;this.interactiveItems.length>i;i++)this.interactiveItems[i].interactiveChildren=!1;this.interactiveItems=[],this.stage.interactive&&this.interactiveItems.push(this.stage),this.collectInteractiveSprite(this.stage,this.stage)}var r=this.interactiveItems.length;this.target.view.style.cursor="default";for(var i=0;r>i;i++){var s=this.interactiveItems[i];s.visible&&(s.mouseover||s.mouseout||s.buttonMode)&&(s.__hit=this.hitTest(s,this.mouse),s.__hit?(s.buttonMode&&(this.target.view.style.cursor="pointer"),s.__isOver||(s.mouseover&&s.mouseover(this.mouse),s.__isOver=!0)):s.__isOver&&(s.mouseout&&s.mouseout(this.mouse),s.__isOver=!1))}}}},PIXI.InteractionManager.prototype.onMouseMove=function(t){t.preventDefault();var e=this.target.view.getBoundingClientRect();this.mouse.global.x=(t.clientX-e.left)*(this.target.width/e.width),this.mouse.global.y=(t.clientY-e.top)*(this.target.height/e.height);var i=this.interactiveItems.length;this.mouse.global;for(var r=0;i>r;r++){var s=this.interactiveItems[r];s.mousemove&&s.mousemove(this.mouse)}},PIXI.InteractionManager.prototype.onMouseDown=function(t){t.preventDefault();var e=this.interactiveItems.length;this.mouse.global,this.stage;for(var i=0;e>i;i++){var r=this.interactiveItems[i];if((r.mousedown||r.click)&&(r.__mouseIsDown=!0,r.__hit=this.hitTest(r,this.mouse),r.__hit&&(r.mousedown&&r.mousedown(this.mouse),r.__isDown=!0,!r.interactiveChildren)))break}},PIXI.InteractionManager.prototype.onMouseUp=function(t){t.preventDefault(),this.mouse.global;for(var e=this.interactiveItems.length,i=!1,r=0;e>r;r++){var s=this.interactiveItems[r];(s.mouseup||s.mouseupoutside||s.click)&&(s.__hit=this.hitTest(s,this.mouse),s.__hit&&!i?(s.mouseup&&s.mouseup(this.mouse),s.__isDown&&s.click&&s.click(this.mouse),s.interactiveChildren||(i=!0)):s.__isDown&&s.mouseupoutside&&s.mouseupoutside(this.mouse),s.__isDown=!1)}},PIXI.InteractionManager.prototype.hitTest=function(t,e){var i=e.global;if(!t.visible)return!1;if(t instanceof PIXI.Sprite){var r=t.worldTransform,s=r[0],n=r[1],a=r[2],o=r[3],h=r[4],u=r[5],c=1/(s*h+n*-o),d=h*c*i.x+-n*c*i.y+(u*n-a*h)*c,l=s*c*i.y+-o*c*i.x+(-u*s+a*o)*c,I=t.texture.frame.width,p=t.texture.frame.height,f=-I*t.anchor.x;if(d>f&&f+I>d){var x=-p*t.anchor.y;if(l>x&&x+p>l)return e.target=t,!0}}else if(t.hitArea){var r=t.worldTransform,v=t.hitArea,s=r[0],n=r[1],a=r[2],o=r[3],h=r[4],u=r[5],c=1/(s*h+n*-o),d=h*c*i.x+-n*c*i.y+(u*n-a*h)*c,l=s*c*i.y+-o*c*i.x+(-u*s+a*o)*c,f=v.x;if(d>f&&f+v.width>d){var x=v.y;if(l>x&&x+v.height>l)return!0}}for(var P=t.children.length,g=0;P>g;g++){var b=t.children[g],X=this.hitTest(b,e);if(X)return!0}return!1},PIXI.InteractionManager.prototype.onTouchMove=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.touchs[s.identifier];n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height)}for(var a=this.interactiveItems.length,r=0;a>r;r++){var o=this.interactiveItems[r];o.touchmove&&o.touchmove(n)}},PIXI.InteractionManager.prototype.onTouchStart=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.pool.pop();n||(n=new PIXI.InteractionData),this.touchs[s.identifier]=n,n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height);for(var a=this.interactiveItems.length,o=0;a>o;o++){var h=this.interactiveItems[o];if((h.touchstart||h.tap)&&(h.__hit=this.hitTest(h,n),h.__hit&&(h.touchstart&&h.touchstart(n),h.__isDown=!0,h.__touchData=n,!h.interactiveChildren)))break}}},PIXI.InteractionManager.prototype.onTouchEnd=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.touchs[s.identifier],a=!1;n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var u=this.interactiveItems[h],c=u.__touchData;u.__hit=this.hitTest(u,n),c==n&&((u.touchend||u.tap)&&(u.__hit&&!a?(u.touchend&&u.touchend(n),u.__isDown&&u.tap&&u.tap(n),u.interactiveChildren||(a=!0)):u.__isDown&&u.touchendoutside&&u.touchendoutside(n),u.__isDown=!1),u.__touchData=null)}this.pool.push(n),this.touchs[s.identifier]=null}},PIXI.InteractionData=function(){this.global=new PIXI.Point,this.local=new PIXI.Point,this.target},PIXI.InteractionData.prototype.getLocalPosition=function(t){var e=t.worldTransform,i=this.global,r=e[0],s=e[1],n=e[2],a=e[3],o=e[4],h=e[5],u=1/(r*o+s*-a);return new PIXI.Point(o*u*i.x+-s*u*i.y+(h*s-n*o)*u,r*u*i.y+-a*u*i.x+(-h*r+n*a)*u)},PIXI.InteractionData.constructor=PIXI.InteractionData,PIXI.Stage=function(t,e){PIXI.DisplayObjectContainer.call(this),this.worldTransform=PIXI.mat3.create(),this.__childrenAdded=[],this.__childrenRemoved=[],this.childIndex=0,this.stage=this,this.stage.hitArea=new PIXI.Rectangle(0,0,1e5,1e5),this.interactive=!!e,this.interactionManager=new PIXI.InteractionManager(this),this.setBackgroundColor(t),this.worldVisible=!0},PIXI.Stage.constructor=PIXI.Stage,PIXI.Stage.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Stage.prototype.updateTransform=function(){this.worldAlpha=1;for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform();this.dirty&&(this.dirty=!1,this.interactionManager.dirty=!0),this.interactive&&this.interactionManager.update()},PIXI.Stage.prototype.setBackgroundColor=function(t){this.backgroundColor=t||0,this.backgroundColorSplit=HEXtoRGB(this.backgroundColor),this.backgroundColorString="#"+this.backgroundColor.toString(16)},PIXI.Stage.prototype.getMousePosition=function(){return this.interactionManager.mouse.global},PIXI.Stage.prototype.__addChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=this,t.children)for(var e=0;t.children.length>e;e++)this.__addChild(t.children[e])},PIXI.Stage.prototype.__removeChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=void 0,t.children)for(var e=0,i=t.children.length;i>e;e++)this.__removeChild(t.children[e])},window.requestAnimFrame=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(t){window.setTimeout(t,1e3/60)}}(),"function"!=typeof Function.prototype.bind&&(Function.prototype.bind=function(){var t=Array.prototype.slice;return function(e){function i(){var n=s.concat(t.call(arguments));r.apply(this instanceof i?this:e,n)}var r=this,s=t.call(arguments,1);if("function"!=typeof r)throw new TypeError;return i.prototype=function n(t){return t&&(n.prototype=t),this instanceof n?void 0:new n}(r.prototype),i}}());var AjaxRequest=function(){var t=["Msxml2.XMLHTTP","Microsoft.XMLHTTP"];if(!window.ActiveXObject)return window.XMLHttpRequest?new XMLHttpRequest:!1;for(var e=0;t.length>e;e++)try{return new ActiveXObject(t[e])}catch(i){}};PIXI.EventTarget=function(){var t={};this.addEventListener=this.on=function(e,i){void 0===t[e]&&(t[e]=[]),-1===t[e].indexOf(i)&&t[e].push(i)},this.dispatchEvent=this.emit=function(e){for(var i in t[e.type])t[e.type][i](e)},this.removeEventListener=this.off=function(e,i){var r=t[e].indexOf(i);-1!==r&&t[e].splice(r,1)}},determineMatrixArrayType(),PIXI.mat3={},PIXI.mat3.create=function(){var t=new PIXI.Matrix(9);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},PIXI.mat4={},PIXI.mat4.create=function(){var t=new PIXI.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},PIXI.mat3.multiply=function(t,e,i){i||(i=t);var r=t[0],s=t[1],n=t[2],a=t[3],o=t[4],h=t[5],u=t[6],c=t[7],d=t[8],l=e[0],I=e[1],p=e[2],f=e[3],x=e[4],v=e[5],P=e[6],g=e[7],b=e[8];return i[0]=l*r+I*a+p*u,i[1]=l*s+I*o+p*c,i[2]=l*n+I*h+p*d,i[3]=f*r+x*a+v*u,i[4]=f*s+x*o+v*c,i[5]=f*n+x*h+v*d,i[6]=P*r+g*a+b*u,i[7]=P*s+g*o+b*c,i[8]=P*n+g*h+b*d,i},PIXI.mat3.toMat4=function(t,e){return e||(e=PIXI.mat4.create()),e[15]=1,e[14]=0,e[13]=0,e[12]=0,e[11]=0,e[10]=t[8],e[9]=t[7],e[8]=t[6],e[7]=0,e[6]=t[5],e[5]=t[4],e[4]=t[3],e[3]=0,e[2]=t[2],e[1]=t[1],e[0]=t[0],e},PIXI.mat4.create=function(){var t=new PIXI.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},PIXI.mat4.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],s=t[3],n=t[6],a=t[7],o=t[11];return t[1]=t[4],t[2]=t[8],t[3]=t[12],t[4]=i,t[6]=t[9],t[7]=t[13],t[8]=r,t[9]=n,t[11]=t[14],t[12]=s,t[13]=a,t[14]=o,t}return e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=t[1],e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=t[2],e[9]=t[6],e[10]=t[10],e[11]=t[14],e[12]=t[3],e[13]=t[7],e[14]=t[11],e[15]=t[15],e},PIXI.mat4.multiply=function(t,e,i){i||(i=t);var r=t[0],s=t[1],n=t[2],a=t[3],o=t[4],h=t[5],u=t[6],c=t[7],d=t[8],l=t[9],I=t[10],p=t[11],f=t[12],x=t[13],v=t[14],P=t[15],g=e[0],b=e[1],X=e[2],m=e[3];return i[0]=g*r+b*o+X*d+m*f,i[1]=g*s+b*h+X*l+m*x,i[2]=g*n+b*u+X*I+m*v,i[3]=g*a+b*c+X*p+m*P,g=e[4],b=e[5],X=e[6],m=e[7],i[4]=g*r+b*o+X*d+m*f,i[5]=g*s+b*h+X*l+m*x,i[6]=g*n+b*u+X*I+m*v,i[7]=g*a+b*c+X*p+m*P,g=e[8],b=e[9],X=e[10],m=e[11],i[8]=g*r+b*o+X*d+m*f,i[9]=g*s+b*h+X*l+m*x,i[10]=g*n+b*u+X*I+m*v,i[11]=g*a+b*c+X*p+m*P,g=e[12],b=e[13],X=e[14],m=e[15],i[12]=g*r+b*o+X*d+m*f,i[13]=g*s+b*h+X*l+m*x,i[14]=g*n+b*u+X*I+m*v,i[15]=g*a+b*c+X*p+m*P,i},PIXI.autoDetectRenderer=function(t,e,i,r){t||(t=800),e||(e=600);var s=function(){try{return!!window.WebGLRenderingContext&&!!document.createElement("canvas").getContext("experimental-webgl")}catch(t){return!1}}();return s?new PIXI.WebGLRenderer(t,e,i,r):new PIXI.CanvasRenderer(t,e,i,r)},PIXI.shaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * vColor;","}"],PIXI.shaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform mat4 uMVMatrix;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","gl_Position = uMVMatrix * vec4(aVertexPosition, 1.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],PIXI.CompileVertexShader=function(t,e){return PIXI._CompileShader(t,e,t.VERTEX_SHADER)},PIXI.CompileFragmentShader=function(t,e){return PIXI._CompileShader(t,e,t.FRAGMENT_SHADER)},PIXI._CompileShader=function(t,e,i){var r=e.join("\n"),s=t.createShader(i);return t.shaderSource(s,r),t.compileShader(s),t.getShaderParameter(s,t.COMPILE_STATUS)?s:(alert(t.getShaderInfoLog(s)),null)},PIXI._defaultFrame=new PIXI.Rectangle(0,0,1,1),PIXI.gl,PIXI.WebGLRenderer=function(t,e,i,r){this.transparent=!!r,this.width=t||800,this.height=e||600,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height;var s=this;this.view.addEventListener("webglcontextlost",function(t){s.handleContextLost(t)},!1),this.view.addEventListener("webglcontextrestored",function(t){s.handleContextRestored(t)},!1),this.batchs=[];try{PIXI.gl=this.gl=this.view.getContext("experimental-webgl",{alpha:this.transparent,antialias:!1,premultipliedAlpha:!0})}catch(n){throw Error(" This browser does not support webGL. Try using the canvas renderer"+this)}this.initShaders();var a=this.gl;PIXI.WebGLRenderer.gl=a,this.batch=new PIXI.WebGLBatch(a),a.disable(a.DEPTH_TEST),a.disable(a.CULL_FACE),a.enable(a.BLEND),a.colorMask(!0,!0,!0,this.transparent),this.projectionMatrix=PIXI.mat4.create(),this.resize(this.width,this.height),this.contextLost=!1,this.stageRenderGroup=new PIXI.WebGLRenderGroup(this.gl)},PIXI.WebGLRenderer.constructor=PIXI.WebGLRenderer,PIXI.WebGLRenderer.getBatch=function(){return 0==PIXI._batchs.length?new PIXI.WebGLBatch(PIXI.WebGLRenderer.gl):PIXI._batchs.pop()},PIXI.WebGLRenderer.returnBatch=function(t){t.clean(),PIXI._batchs.push(t)},PIXI.WebGLRenderer.prototype.initShaders=function(){var t=this.gl,e=PIXI.CompileFragmentShader(t,PIXI.shaderFragmentSrc),i=PIXI.CompileVertexShader(t,PIXI.shaderVertexSrc);PIXI.shaderProgram=t.createProgram();var r=PIXI.shaderProgram;t.attachShader(r,i),t.attachShader(r,e),t.linkProgram(r),t.getProgramParameter(r,t.LINK_STATUS)||alert("Could not initialise shaders"),t.useProgram(r),r.vertexPositionAttribute=t.getAttribLocation(r,"aVertexPosition"),t.enableVertexAttribArray(r.vertexPositionAttribute),r.textureCoordAttribute=t.getAttribLocation(r,"aTextureCoord"),t.enableVertexAttribArray(r.textureCoordAttribute),r.colorAttribute=t.getAttribLocation(r,"aColor"),t.enableVertexAttribArray(r.colorAttribute),r.mvMatrixUniform=t.getUniformLocation(r,"uMVMatrix"),r.samplerUniform=t.getUniformLocation(r,"uSampler")},PIXI.WebGLRenderer.prototype.render=function(t){if(!this.contextLost){this.__stage!==t&&(this.__stage=t,this.stageRenderGroup.setRenderable(t));for(var e=0;PIXI.texturesToUpdate.length>e;e++)this.updateTexture(PIXI.texturesToUpdate[e]);for(var e=0;PIXI.texturesToDestroy.length>e;e++)this.destroyTexture(PIXI.texturesToDestroy[e]);PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[],t.updateTransform();var i=this.gl;if(i.colorMask(!0,!0,!0,this.transparent),i.viewport(0,0,this.width,this.height),i.bindFramebuffer(i.FRAMEBUFFER,null),i.clearColor(t.backgroundColorSplit[0],t.backgroundColorSplit[1],t.backgroundColorSplit[2],this.transparent),i.clear(i.COLOR_BUFFER_BIT),this.stageRenderGroup.backgroundColor=t.backgroundColorSplit,this.stageRenderGroup.render(this.projectionMatrix),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),PIXI.Texture.frameUpdates.length>0){for(var e=0;PIXI.Texture.frameUpdates.length>e;e++)PIXI.Texture.frameUpdates[e].updateFrame=!1;PIXI.Texture.frameUpdates=[]}}},PIXI.WebGLRenderer.prototype.updateTexture=function(t){var e=this.gl;t._glTexture||(t._glTexture=e.createTexture()),t.hasLoaded&&(e.bindTexture(e.TEXTURE_2D,t._glTexture),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t.source),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),t._powerOf2?(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT)):(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)),e.bindTexture(e.TEXTURE_2D,null)),this.refreshBatchs=!0},PIXI.WebGLRenderer.prototype.destroyTexture=function(t){var e=this.gl;t._glTexture&&(t._glTexture=e.createTexture(),e.deleteTexture(e.TEXTURE_2D,t._glTexture))},PIXI.WebGLRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e,this.gl.viewport(0,0,this.width,this.height);var i=this.projectionMatrix;i[0]=2/this.width,i[5]=-2/this.height,i[12]=-1,i[13]=1},PIXI.WebGLRenderer.prototype.handleContextLost=function(t){t.preventDefault(),this.contextLost=!0},PIXI.WebGLRenderer.prototype.handleContextRestored=function(){this.gl=this.view.getContext("experimental-webgl",{alpha:!0}),this.initShaders();for(var t=0;PIXI.TextureCache.length>t;t++)this.updateTexture(PIXI.TextureCache[t]);for(var t=0;this.batchs.length>t;t++)this.batchs[t].restoreLostContext(this.gl),this.batchs[t].dirty=!0;PIXI._restoreBatchs(this.gl),this.contextLost=!1},PIXI._batchs=[],PIXI._getBatch=function(t){return 0==PIXI._batchs.length?new PIXI.WebGLBatch(t):PIXI._batchs.pop()},PIXI._returnBatch=function(t){t.clean(),PIXI._batchs.push(t)},PIXI._restoreBatchs=function(t){for(var e=0;PIXI._batchs.length>e;e++)PIXI._batchs[e].restoreLostContext(t)},PIXI.WebGLBatch=function(t){this.gl=t,this.size=0,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer(),this.blendMode=PIXI.blendModes.NORMAL,this.dynamicSize=1},PIXI.WebGLBatch.constructor=PIXI.WebGLBatch,PIXI.WebGLBatch.prototype.clean=function(){this.verticies=[],this.uvs=[],this.indices=[],this.colors=[],this.dynamicSize=1,this.texture=null,this.last=null,this.size=0,this.head,this.tail},PIXI.WebGLBatch.prototype.restoreLostContext=function(t){this.gl=t,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer()},PIXI.WebGLBatch.prototype.init=function(t){t.batch=this,this.dirty=!0,this.blendMode=t.blendMode,this.texture=t.texture.baseTexture,this.head=t,this.tail=t,this.size=1,this.growBatch()},PIXI.WebGLBatch.prototype.insertBefore=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__prev;e.__prev=t,t.__next=e,i?(t.__prev=i,i.__next=t):this.head=t},PIXI.WebGLBatch.prototype.insertAfter=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__next;e.__next=t,t.__prev=e,i?(t.__next=i,i.__prev=t):this.tail=t},PIXI.WebGLBatch.prototype.remove=function(t){return this.size--,0==this.size?(t.batch=null,t.__prev=null,t.__next=null,void 0):(t.__prev?t.__prev.__next=t.__next:(this.head=t.__next,this.head.__prev=null),t.__next?t.__next.__prev=t.__prev:(this.tail=t.__prev,this.tail.__next=null),t.batch=null,t.__next=null,t.__prev=null,this.dirty=!0,void 0)},PIXI.WebGLBatch.prototype.split=function(t){this.dirty=!0;var e=new PIXI.WebGLBatch(this.gl);e.init(t),e.tail=this.tail,this.tail=t.__prev,this.tail.__next=null,t.__prev=null;for(var i=0;t;)i++,t.batch=e,t=t.__next;return e.size=i,this.size-=i,e},PIXI.WebGLBatch.prototype.merge=function(t){this.dirty=!0,this.tail.__next=t.head,t.head.__prev=this.tail,this.size+=t.size,this.tail=t.tail;for(var e=t.head;e;)e.batch=this,e=e.__next},PIXI.WebGLBatch.prototype.growBatch=function(){var t=this.gl;this.dynamicSize=1==this.size?1:1.5*this.size,this.verticies=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.vertexBuffer),t.bufferData(t.ARRAY_BUFFER,this.verticies,t.DYNAMIC_DRAW),this.uvs=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.uvBuffer),t.bufferData(t.ARRAY_BUFFER,this.uvs,t.DYNAMIC_DRAW),this.dirtyUVS=!0,this.colors=new Float32Array(4*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.colorBuffer),t.bufferData(t.ARRAY_BUFFER,this.colors,t.DYNAMIC_DRAW),this.dirtyColors=!0,this.indices=new Uint16Array(6*this.dynamicSize);for(var e=this.indices.length/6,i=0;e>i;i++){var r=6*i,s=4*i;this.indices[r+0]=s+0,this.indices[r+1]=s+1,this.indices[r+2]=s+2,this.indices[r+3]=s+0,this.indices[r+4]=s+2,this.indices[r+5]=s+3}t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,this.indexBuffer),t.bufferData(t.ELEMENT_ARRAY_BUFFER,this.indices,t.STATIC_DRAW)},PIXI.WebGLBatch.prototype.refresh=function(){this.gl,this.dynamicSizei;i++)this.removeDisplayObjectAndChildren(this.toRemove[i]);this.toRemove=[],this.checkVisibility(this.root,this.root.visible);for(var r,i=0;this.batchs.length>i;i++)r=this.batchs[i],r instanceof PIXI.WebGLBatch?this.batchs[i].render():r instanceof PIXI.TilingSprite?r.visible&&this.renderTilingSprite(r,t):r instanceof PIXI.Strip&&r.visible&&this.renderStrip(r,t)},PIXI.WebGLRenderGroup.prototype.renderSpecific=function(t,e){var i=this.gl;this.checkVisibility(t,t.visible),i.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform,!1,e);var r,s,n,a,o=t.renderable?t:this.getNextRenderable(t),h=o.batch;if(o instanceof PIXI.Sprite){h=o.batch;var u=h.head;if(u==o)r=0;else for(r=1;u.__next!=o;)r++,u=u.__next}else h=o;for(var c,d=t,l=t;l.children.length>0;)l=l.children[l.children.length-1],l.renderable&&(d=l);if(d instanceof PIXI.Sprite){c=d.batch;var u=c.head;if(u==d)n=0;else for(n=1;u.__next!=d;)n++,u=u.__next}else c=d;if(h==c)return h instanceof PIXI.WebGLBatch?h.render(r,n+1):h instanceof PIXI.TilingSprite?h.visible&&this.renderTilingSprite(h,e):h instanceof PIXI.Strip?h.visible&&this.renderStrip(h,e):h instanceof PIXI.CustomRenderable&&h.visible&&h.renderWebGL(this,e),void 0;s=this.batchs.indexOf(h),a=this.batchs.indexOf(c),h instanceof PIXI.WebGLBatch?h.render(r):h instanceof PIXI.TilingSprite?h.visible&&this.renderTilingSprite(h,e):h instanceof PIXI.Strip?h.visible&&this.renderStrip(h,e):h instanceof PIXI.CustomRenderable&&h.visible&&h.renderWebGL(this,e);for(var I=s+1;a>I;I++)renderable=this.batchs[I],renderable instanceof PIXI.WebGLBatch?this.batchs[I].render():renderable instanceof PIXI.TilingSprite?renderable.visible&&this.renderTilingSprite(renderable,e):renderable instanceof PIXI.Strip?renderable.visible&&this.renderStrip(renderable,e):renderable instanceof PIXI.CustomRenderable&&renderable.visible&&renderable.renderWebGL(this,e);c instanceof PIXI.WebGLBatch?c.render(0,n+1):c instanceof PIXI.TilingSprite?c.visible&&this.renderTilingSprite(c):c instanceof PIXI.Strip?c.visible&&this.renderStrip(c):c instanceof PIXI.CustomRenderable&&c.visible&&c.renderWebGL(this,e)},PIXI.WebGLRenderGroup.prototype.checkVisibility=function(t,e){for(var i=t.children,r=0;i.length>r;r++){var s=i[r];s.worldVisible=s.visible&&e,s.textureChange&&(s.textureChange=!1,s.worldVisible&&(this.removeDisplayObject(s),this.addDisplayObject(s))),s.children.length>0&&this.checkVisibility(s,s.worldVisible)}},PIXI.WebGLRenderGroup.prototype.addDisplayObject=function(t){if(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.__renderGroup=this,t.renderable){var e=this.getPreviousRenderable(t),i=this.getNextRenderable(t);if(t instanceof PIXI.Sprite){var r,s;if(e instanceof PIXI.Sprite){if(r=e.batch,r&&r.texture==t.texture.baseTexture&&r.blendMode==t.blendMode)return r.insertAfter(t,e),void 0}else r=e;if(i)if(i instanceof PIXI.Sprite){if(s=i.batch){if(s.texture==t.texture.baseTexture&&s.blendMode==t.blendMode)return s.insertBefore(t,i),void 0;if(s==r){var n=r.split(i),a=PIXI.WebGLRenderer.getBatch(),o=this.batchs.indexOf(r);return a.init(t),this.batchs.splice(o+1,0,a,n),void 0}}}else s=i;var a=PIXI.WebGLRenderer.getBatch();if(a.init(t),r){var o=this.batchs.indexOf(r);this.batchs.splice(o+1,0,a)}else this.batchs.push(a)}else t instanceof PIXI.TilingSprite?(this.initTilingSprite(t),this.batchs.push(t)):t instanceof PIXI.Strip&&(this.initStrip(t),this.batchs.push(t));this.batchUpdate=!0}},PIXI.WebGLRenderGroup.prototype.addDisplayObjectAndChildren=function(t){this.addDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.addDisplayObjectAndChildren(e[i])},PIXI.WebGLRenderGroup.prototype.removeDisplayObject=function(t){if(t.__renderGroup=null,t.renderable){var e;if(t instanceof PIXI.Sprite){var i=t.batch;if(!i)return;i.remove(t),0==i.size&&(e=i)}else e=t;if(e){var r=this.batchs.indexOf(e);if(-1==r)return;if(0==r||r==this.batchs.length-1)return this.batchs.splice(r,1),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e),void 0;if(this.batchs[r-1]instanceof PIXI.WebGLBatch&&this.batchs[r+1]instanceof PIXI.WebGLBatch&&this.batchs[r-1].texture==this.batchs[r+1].texture&&this.batchs[r-1].blendMode==this.batchs[r+1].blendMode)return this.batchs[r-1].merge(this.batchs[r+1]),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e),PIXI.WebGLRenderer.returnBatch(this.batchs[r+1]),this.batchs.splice(r,2),void 0;this.batchs.splice(r,1),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e)}}},PIXI.WebGLRenderGroup.prototype.removeDisplayObjectAndChildren=function(t){if(t.__renderGroup==this){this.removeDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.removeDisplayObjectAndChildren(e[i])}},PIXI.WebGLRenderGroup.prototype.getNextRenderable=function(t){var e=t;do{if(0==e.children.length){if(!e.parent)return null;for(;e.childIndex==e.parent.children.length-1;)if(e=e.parent,e==this.root){e=null;break}e&&(e=e.parent.children[e.childIndex+1])}else e=e.children[0];if(!e)break}while(!e.renderable||!e.__renderGroup);return e},PIXI.WebGLRenderGroup.prototype.getPreviousRenderable=function(t){var e=t;do{if(0==e.childIndex){if(e=e.parent,!e)return null}else for(e=e.parent.children[e.childIndex-1];0!=e.children.length;)e=e.children[e.children.length-1];if(e==this.root)break}while(!e.renderable||!e.__renderGroup);return e},PIXI.WebGLRenderGroup.prototype.initTilingSprite=function(t){var e=this.gl;t.verticies=new Float32Array([0,0,t.width,0,t.width,t.height,0,t.height]),t.uvs=new Float32Array([0,0,1,0,1,1,0,1]),t.colors=new Float32Array([1,1,1,1]),t.indices=new Uint16Array([0,1,3,2]),t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW),t.texture.baseTexture._glTexture?(e.bindTexture(e.TEXTURE_2D,t.texture.baseTexture._glTexture),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT),t.texture.baseTexture._powerOf2=!0):t.texture.baseTexture._powerOf2=!0},PIXI.WebGLRenderGroup.prototype.renderStrip=function(t,e){var i=this.gl,r=PIXI.shaderProgram,s=PIXI.mat3.toMat4(t.worldTransform);PIXI.mat4.transpose(s),PIXI.mat4.multiply(e,s,s),i.uniformMatrix4fv(r.mvMatrixUniform,!1,s),t.blendMode==PIXI.blendModes.NORMAL?i.blendFunc(i.ONE,i.ONE_MINUS_SRC_ALPHA):i.blendFunc(i.ONE,i.ONE_MINUS_SRC_COLOR),t.dirty?(t.dirty=!1,i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferData(i.ARRAY_BUFFER,t.verticies,i.STATIC_DRAW),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferData(i.ARRAY_BUFFER,t.uvs,i.STATIC_DRAW),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.bufferData(i.ARRAY_BUFFER,t.colors,i.STATIC_DRAW),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer),i.bufferData(i.ELEMENT_ARRAY_BUFFER,t.indices,i.STATIC_DRAW)):(i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.verticies),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer)),i.drawElements(i.TRIANGLE_STRIP,t.indices.length,i.UNSIGNED_SHORT,0),i.uniformMatrix4fv(r.mvMatrixUniform,!1,e)},PIXI.WebGLRenderGroup.prototype.renderTilingSprite=function(t,e){var i=this.gl;PIXI.shaderProgram;var r=t.tilePosition,s=t.tileScale,n=r.x/t.texture.baseTexture.width,a=r.y/t.texture.baseTexture.height,o=t.width/t.texture.baseTexture.width/s.x,h=t.height/t.texture.baseTexture.height/s.y;t.uvs[0]=0-n,t.uvs[1]=0-a,t.uvs[2]=1*o-n,t.uvs[3]=0-a,t.uvs[4]=1*o-n,t.uvs[5]=1*h-a,t.uvs[6]=0-n,t.uvs[7]=1*h-a,i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.uvs),this.renderStrip(t,e)},PIXI.WebGLRenderer.prototype.initStrip=function(t){var e=this.gl;this.shaderProgram,t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW)},PIXI.CanvasRenderer=function(t,e,i,r){this.transparent=r,this.width=t||800,this.height=e||600,this.refresh=!0,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height,this.count=0,this.context=this.view.getContext("2d")},PIXI.CanvasRenderer.constructor=PIXI.CanvasRenderer,PIXI.CanvasRenderer.prototype.render=function(t){PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[],t.updateTransform(),this.view.style.backgroundColor==t.backgroundColorString||this.transparent||(this.view.style.backgroundColor=t.backgroundColorString),this.context.setTransform(1,0,0,1,0,0),this.context.clearRect(0,0,this.width,this.height),this.renderDisplayObject(t),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),PIXI.Texture.frameUpdates.length>0&&(PIXI.Texture.frameUpdates=[])},PIXI.CanvasRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e},PIXI.CanvasRenderer.prototype.renderDisplayObject=function(t){var e=t.worldTransform,i=this.context;if(t.visible){if(t instanceof PIXI.Sprite){var r=t.texture.frame;r&&(i.globalAlpha=t.worldAlpha,i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),i.drawImage(t.texture.baseTexture.source,r.x,r.y,r.width,r.height,t.anchor.x*-r.width,t.anchor.y*-r.height,r.width,r.height))}else t instanceof PIXI.Strip?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderStrip(t)):t instanceof PIXI.TilingSprite?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderTilingSprite(t)):t instanceof PIXI.CustomRenderable&&t.renderCanvas(this);for(var s=0;t.children.length>s;s++)this.renderDisplayObject(t.children[s]);this.context.setTransform(1,0,0,1,0,0)}},PIXI.CanvasRenderer.prototype.renderStripFlat=function(t){var e=this.context,i=t.verticies;t.uvs;var r=i.length/2;this.count++,e.beginPath();for(var s=1;r-2>s;s++){var n=2*s,a=i[n],o=i[n+2],h=i[n+4],u=i[n+1],c=i[n+3],d=i[n+5];e.moveTo(a,u),e.lineTo(o,c),e.lineTo(h,d)}e.fillStyle="#FF0000",e.fill(),e.closePath()},PIXI.CanvasRenderer.prototype.renderTilingSprite=function(t){var e=this.context;t.__tilePattern||(t.__tilePattern=e.createPattern(t.texture.baseTexture.source,"repeat")),e.beginPath();var i=t.tilePosition,r=t.tileScale;e.scale(r.x,r.y),e.translate(i.x,i.y),e.fillStyle=t.__tilePattern,e.fillRect(-i.x,-i.y,t.width/r.x,t.height/r.y),e.scale(1/r.x,1/r.y),e.translate(-i.x,-i.y),e.closePath()},PIXI.CanvasRenderer.prototype.renderStrip=function(t){var e=this.context,i=t.verticies,r=t.uvs,s=i.length/2;this.count++;for(var n=1;s-2>n;n++){var a=2*n,o=i[a],h=i[a+2],u=i[a+4],c=i[a+1],d=i[a+3],l=i[a+5],I=r[a]*t.texture.width,p=r[a+2]*t.texture.width,f=r[a+4]*t.texture.width,x=r[a+1]*t.texture.height,v=r[a+3]*t.texture.height,P=r[a+5]*t.texture.height;e.save(),e.beginPath(),e.moveTo(o,c),e.lineTo(h,d),e.lineTo(u,l),e.closePath(),e.clip();var g=I*v+x*f+p*P-v*f-x*p-I*P,b=o*v+x*u+h*P-v*u-x*h-o*P,X=I*h+o*f+p*u-h*f-o*p-I*u,m=I*v*u+x*h*f+o*p*P-o*v*f-x*p*u-I*h*P,T=c*v+x*l+d*P-v*l-x*d-c*P,y=I*d+c*f+p*l-d*f-c*p-I*l,_=I*v*l+x*d*f+c*p*P-c*v*f-x*p*l-I*d*P;e.transform(b/g,T/g,X/g,y/g,m/g,_/g),e.drawImage(t.texture.baseTexture.source,0,0),e.restore()}},PIXI.Strip=function(t,e,i){PIXI.DisplayObjectContainer.call(this),this.texture=t,this.blendMode=PIXI.blendModes.NORMAL;try{this.uvs=new Float32Array([0,1,1,1,1,0,0,1]),this.verticies=new Float32Array([0,0,0,0,0,0,0,0,0]),this.colors=new Float32Array([1,1,1,1]),this.indices=new Uint16Array([0,1,2,3])}catch(r){this.uvs=[0,1,1,1,1,0,0,1],this.verticies=[0,0,0,0,0,0,0,0,0],this.colors=[1,1,1,1],this.indices=[0,1,2,3]}this.width=e,this.height=i,t.baseTexture.hasLoaded?(this.width=this.texture.frame.width,this.height=this.texture.frame.height,this.updateFrame=!0):(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},PIXI.Strip.constructor=PIXI.Strip,PIXI.Strip.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Strip.prototype.setTexture=function(t){this.texture=t,this.width=t.frame.width,this.height=t.frame.height,this.updateFrame=!0},PIXI.Strip.prototype.onTextureUpdate=function(){this.updateFrame=!0},PIXI.Rope=function(t,e){PIXI.Strip.call(this,t),this.points=e;try{this.verticies=new Float32Array(4*e.length),this.uvs=new Float32Array(4*e.length),this.colors=new Float32Array(2*e.length),this.indices=new Uint16Array(2*e.length)}catch(i){this.verticies=verticies,this.uvs=uvs,this.colors=colors,this.indices=indices}this.refresh()},PIXI.Rope.constructor=PIXI.Rope,PIXI.Rope.prototype=Object.create(PIXI.Strip.prototype),PIXI.Rope.prototype.refresh=function(){var t=this.points;if(!(1>t.length)){var e=this.uvs,i=this.indices,r=this.colors,s=t[0],n=t[0];this.count-=.2,e[0]=0,e[1]=1,e[2]=0,e[3]=1,r[0]=1,r[1]=1,i[0]=0,i[1]=1;for(var a=t.length,o=1;a>o;o++){var n=t[o],h=4*o,u=o/(a-1);o%2?(e[h]=u,e[h+1]=0,e[h+2]=u,e[h+3]=1):(e[h]=u,e[h+1]=0,e[h+2]=u,e[h+3]=1),h=2*o,r[h]=1,r[h+1]=1,h=2*o,i[h]=h,i[h+1]=h+1,s=n}}},PIXI.Rope.prototype.updateTransform=function(){var t=this.points;if(!(1>t.length)){var e,i=this.verticies,r=t[0],s={x:0,y:0},n=t[0];this.count-=.2,i[0]=n.x+s.x,i[1]=n.y+s.y,i[2]=n.x-s.x,i[3]=n.y-s.y;for(var a=t.length,o=1;a>o;o++){var n=t[o],h=4*o;e=t.length-1>o?t[o+1]:n,s.y=-(e.x-r.x),s.x=e.y-r.y;var u=10*(1-o/(a-1));u>1&&(u=1);var c=Math.sqrt(s.x*s.x+s.y*s.y),d=this.texture.height/2;s.x/=c,s.y/=c,s.x*=d,s.y*=d,i[h]=n.x+s.x,i[h+1]=n.y+s.y,i[h+2]=n.x-s.x,i[h+3]=n.y-s.y,r=n}PIXI.DisplayObjectContainer.prototype.updateTransform.call(this)}},PIXI.Rope.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0},PIXI.TilingSprite=function(t,e,i){PIXI.DisplayObjectContainer.call(this),this.texture=t,this.width=e,this.height=i,this.renderable=!0,this.tileScale=new PIXI.Point(1,1),this.tilePosition=new PIXI.Point(0,0),this.blendMode=PIXI.blendModes.NORMAL},PIXI.TilingSprite.constructor=PIXI.TilingSprite,PIXI.TilingSprite.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.TilingSprite.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0},PIXI.TilingSprite.prototype.onTextureUpdate=function(){this.updateFrame=!0},PIXI.CustomRenderable=function(){PIXI.DisplayObject.call(this)},PIXI.CustomRenderable.constructor=PIXI.CustomRenderable,PIXI.CustomRenderable.prototype=Object.create(PIXI.DisplayObject.prototype),PIXI.CustomRenderable.prototype.renderCanvas=function(){},PIXI.CustomRenderable.prototype.initWebGL=function(){},PIXI.CustomRenderable.prototype.renderWebGL=function(){},PIXI.BaseTextureCache={},PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[],PIXI.BaseTexture=function(t){if(PIXI.EventTarget.call(this),this.width=100,this.height=100,this.source=t,t){if(this.source instanceof Image)if(this.source.complete)this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,PIXI.texturesToUpdate.push(this);else{var e=this;this.source.onload=function(){e.hasLoaded=!0,e.width=e.source.width,e.height=e.source.height,PIXI.texturesToUpdate.push(e),e.dispatchEvent({type:"loaded",content:e})}}else this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,PIXI.texturesToUpdate.push(this);this._powerOf2=!1}},PIXI.BaseTexture.constructor=PIXI.BaseTexture,PIXI.BaseTexture.prototype.destroy=function(){this.source instanceof Image&&(this.source.src=null),this.source=null,PIXI.texturesToDestroy.push(this)},PIXI.BaseTexture.fromImage=function(t,e){var i=PIXI.BaseTextureCache[t];if(!i){var r=new Image;e&&(r.crossOrigin=""),r.src=t,i=new PIXI.BaseTexture(r),PIXI.BaseTextureCache[t]=i}return i},PIXI.TextureCache={},PIXI.FrameCache={},PIXI.Texture=function(t,e){if(PIXI.EventTarget.call(this),e||(this.noFrame=!0,e=new PIXI.Rectangle(0,0,1,1)),this.trim=new PIXI.Point,t instanceof PIXI.Texture&&(t=t.baseTexture),this.baseTexture=t,this.frame=e,this.scope=this,t.hasLoaded)this.noFrame&&(e=new PIXI.Rectangle(0,0,t.width,t.height)),this.setFrame(e);else{var i=this;t.addEventListener("loaded",function(){i.onBaseTextureLoaded()})}},PIXI.Texture.constructor=PIXI.Texture,PIXI.Texture.prototype.onBaseTextureLoaded=function(){var t=this.baseTexture;t.removeEventListener("loaded",this.onLoaded),this.noFrame&&(this.frame=new PIXI.Rectangle(0,0,t.width,t.height)),this.noFrame=!1,this.width=this.frame.width,this.height=this.frame.height,this.scope.dispatchEvent({type:"update",content:this})},PIXI.Texture.prototype.destroy=function(t){t&&this.baseTexture.destroy()},PIXI.Texture.prototype.setFrame=function(t){if(this.frame=t,this.width=t.width,this.height=t.height,t.x+t.width>this.baseTexture.width||t.y+t.height>this.baseTexture.height)throw Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);this.updateFrame=!0,PIXI.Texture.frameUpdates.push(this)},PIXI.Texture.fromImage=function(t,e){var i=PIXI.TextureCache[t];return i||(i=new PIXI.Texture(PIXI.BaseTexture.fromImage(t,e)),PIXI.TextureCache[t]=i),i},PIXI.Texture.fromFrame=function(t){var e=PIXI.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache "+this);return e},PIXI.Texture.fromCanvas=function(t){var e=new PIXI.BaseTexture(t);return new PIXI.Texture(e)},PIXI.Texture.addTextureToCache=function(t,e){PIXI.TextureCache[e]=t},PIXI.Texture.removeTextureFromCache=function(t){var e=PIXI.TextureCache[t];return PIXI.TextureCache[t]=null,e},PIXI.Texture.frameUpdates=[],PIXI.RenderTexture=function(t,e){PIXI.EventTarget.call(this),this.width=t||100,this.height=e||100,this.indetityMatrix=PIXI.mat3.create(),this.frame=new PIXI.Rectangle(0,0,this.width,this.height),PIXI.gl?this.initWebGL():this.initCanvas()},PIXI.RenderTexture.constructor=PIXI.RenderTexture,PIXI.RenderTexture.prototype=Object.create(PIXI.Texture.prototype),PIXI.RenderTexture.prototype.initWebGL=function(){var t=PIXI.gl;this.glFramebuffer=t.createFramebuffer(),t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),this.glFramebuffer.width=this.width,this.glFramebuffer.height=this.height,this.baseTexture=new PIXI.BaseTexture,this.baseTexture.width=this.width,this.baseTexture.height=this.height,this.baseTexture._glTexture=t.createTexture(),t.bindTexture(t.TEXTURE_2D,this.baseTexture._glTexture),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,this.width,this.height,0,t.RGBA,t.UNSIGNED_BYTE,null),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),this.baseTexture.isRender=!0,t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,this.baseTexture._glTexture,0),this.projectionMatrix=PIXI.mat4.create(),this.projectionMatrix[5]=2/this.height,this.projectionMatrix[13]=-1,this.projectionMatrix[0]=2/this.width,this.projectionMatrix[12]=-1,this.render=this.renderWebGL},PIXI.RenderTexture.prototype.initCanvas=function(){this.renderer=new PIXI.CanvasRenderer(this.width,this.height,null,0),this.baseTexture=new PIXI.BaseTexture(this.renderer.view),this.frame=new PIXI.Rectangle(0,0,this.width,this.height),this.render=this.renderCanvas},PIXI.RenderTexture.prototype.renderWebGL=function(t,e){var i=PIXI.gl;i.colorMask(!0,!0,!0,!0),i.viewport(0,0,this.width,this.height),i.bindFramebuffer(i.FRAMEBUFFER,this.glFramebuffer),e&&(i.clearColor(0,0,0,0),i.clear(i.COLOR_BUFFER_BIT));var r=t.children;t.worldTransform=PIXI.mat3.create();for(var s=0,n=r.length;n>s;s++)r[s].updateTransform();var a=t.__renderGroup;a?t==a.root?a.render(this.projectionMatrix):a.renderSpecific(t,this.projectionMatrix):(this.renderGroup||(this.renderGroup=new PIXI.WebGLRenderGroup(i)),this.renderGroup.setRenderable(t),this.renderGroup.render(this.projectionMatrix))},PIXI.RenderTexture.prototype.renderCanvas=function(t,e){var i=t.children;t.worldTransform=PIXI.mat3.create();for(var r=0,s=i.length;s>r;r++)i[r].updateTransform();e&&this.renderer.context.clearRect(0,0,this.width,this.height),this.renderer.renderDisplayObject(t),PIXI.texturesToUpdate.push(this.baseTexture)},PIXI.AssetLoader=function(t){PIXI.EventTarget.call(this),this.assetURLs=t,this.crossorigin=!1,this.loadersByType={jpg:PIXI.ImageLoader,jpeg:PIXI.ImageLoader,png:PIXI.ImageLoader,gif:PIXI.ImageLoader,json:PIXI.SpriteSheetLoader,xml:PIXI.BitmapFontLoader,fnt:PIXI.BitmapFontLoader}},PIXI.AssetLoader.constructor=PIXI.AssetLoader,PIXI.AssetLoader.prototype.load=function(){var t=this;this.loadCount=this.assetURLs.length;for(var e=0;this.assetURLs.length>e;e++){var i=this.assetURLs[e],r=i.split(".").pop().toLowerCase(),s=this.loadersByType[r];if(!s)throw Error(r+" is an unsupported file type");var n=new s(i,this.crossorigin);n.addEventListener("loaded",function(){t.onAssetLoaded()}),n.load()}},PIXI.AssetLoader.prototype.onAssetLoaded=function(){this.loadCount--,this.dispatchEvent({type:"onProgress",content:this}),this.onProgress&&this.onProgress(),0==this.loadCount&&(this.dispatchEvent({type:"onComplete",content:this}),this.onComplete&&this.onComplete())},PIXI.SpriteSheetLoader=function(t,e){PIXI.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.frames={},this.crossorigin=e},PIXI.SpriteSheetLoader.constructor=PIXI.SpriteSheetLoader,PIXI.SpriteSheetLoader.prototype.load=function(){this.ajaxRequest=new AjaxRequest;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onJSONLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/json"),this.ajaxRequest.send(null)},PIXI.SpriteSheetLoader.prototype.onJSONLoaded=function(){if(4==this.ajaxRequest.readyState&&(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))){var jsonData=eval("("+this.ajaxRequest.responseText+")"),textureUrl=this.baseUrl+jsonData.meta.image,image=new PIXI.ImageLoader(textureUrl,this.crossorigin);this.texture=image.texture.baseTexture;var scope=this;image.addEventListener("loaded",function(){scope.onLoaded()});var frameData=jsonData.frames;for(var i in frameData){var rect=frameData[i].frame;rect&&(PIXI.TextureCache[i]=new PIXI.Texture(this.texture,{x:rect.x,y:rect.y,width:rect.w,height:rect.h}),frameData[i].trimmed&&(PIXI.TextureCache[i].realSize=frameData[i].spriteSourceSize,PIXI.TextureCache[i].trim.x=0))}image.load()}},PIXI.SpriteSheetLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},PIXI.ImageLoader=function(t,e){PIXI.EventTarget.call(this),this.texture=PIXI.Texture.fromImage(t,e)},PIXI.ImageLoader.constructor=PIXI.ImageLoader,PIXI.ImageLoader.prototype.load=function(){if(this.texture.baseTexture.hasLoaded)this.onLoaded();else{var t=this;this.texture.baseTexture.addEventListener("loaded",function(){t.onLoaded()})}},PIXI.ImageLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},PIXI.BitmapFontLoader=function(t,e){PIXI.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.crossorigin=e},PIXI.BitmapFontLoader.constructor=PIXI.BitmapFontLoader,PIXI.BitmapFontLoader.prototype.load=function(){this.ajaxRequest=new XMLHttpRequest;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onXMLLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/xml"),this.ajaxRequest.send(null)},PIXI.BitmapFontLoader.prototype.onXMLLoaded=function(){if(4==this.ajaxRequest.readyState&&(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))){var t=this.baseUrl+this.ajaxRequest.responseXML.getElementsByTagName("page")[0].attributes.getNamedItem("file").nodeValue,e=new PIXI.ImageLoader(t,this.crossorigin);this.texture=e.texture.baseTexture;var i={},r=this.ajaxRequest.responseXML.getElementsByTagName("info")[0],s=this.ajaxRequest.responseXML.getElementsByTagName("common")[0];i.font=r.attributes.getNamedItem("face").nodeValue,i.size=parseInt(r.attributes.getNamedItem("size").nodeValue,10),i.lineHeight=parseInt(s.attributes.getNamedItem("lineHeight").nodeValue,10),i.chars={};for(var n=this.ajaxRequest.responseXML.getElementsByTagName("char"),a=0;n.length>a;a++){var o=parseInt(n[a].attributes.getNamedItem("id").nodeValue,10),h={x:parseInt(n[a].attributes.getNamedItem("x").nodeValue,10),y:parseInt(n[a].attributes.getNamedItem("y").nodeValue,10),width:parseInt(n[a].attributes.getNamedItem("width").nodeValue,10),height:parseInt(n[a].attributes.getNamedItem("height").nodeValue,10)};PIXI.TextureCache[o]=new PIXI.Texture(this.texture,h),i.chars[o]={xOffset:parseInt(n[a].attributes.getNamedItem("xoffset").nodeValue,10),yOffset:parseInt(n[a].attributes.getNamedItem("yoffset").nodeValue,10),xAdvance:parseInt(n[a].attributes.getNamedItem("xadvance").nodeValue,10),kerning:{}}}var u=this.ajaxRequest.responseXML.getElementsByTagName("kerning");for(a=0;u.length>a;a++){var c=parseInt(u[a].attributes.getNamedItem("first").nodeValue,10),d=parseInt(u[a].attributes.getNamedItem("second").nodeValue,10),l=parseInt(u[a].attributes.getNamedItem("amount").nodeValue,10);i.chars[d].kerning[c]=l}PIXI.BitmapText.fonts[i.font]=i;var I=this;e.addEventListener("loaded",function(){I.onLoaded()}),e.load()}},PIXI.BitmapFontLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=PIXI),exports.PIXI=PIXI):root.PIXI=PIXI}).call(this); \ No newline at end of file +(function(){function HEXtoRGB(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}function determineMatrixArrayType(){return PIXI.Matrix="undefined"!=typeof Float32Array?Float32Array:Array,PIXI.Matrix}var root=this,PIXI=PIXI||{};PIXI.Point=function(t,e){this.x=t||0,this.y=e||0},PIXI.Point.prototype.clone=function(){return new PIXI.Point(this.x,this.y)},PIXI.Point.constructor=PIXI.Point,PIXI.Rectangle=function(t,e,i,r){this.x=t||0,this.y=e||0,this.width=i||0,this.height=r||0},PIXI.Rectangle.prototype.clone=function(){return new PIXI.Rectangle(this.x,this.y,this.width,this.height)},PIXI.Rectangle.constructor=PIXI.Rectangle,PIXI.DisplayObject=function(){this.position=new PIXI.Point,this.scale=new PIXI.Point(1,1),this.pivot=new PIXI.Point(0,0),this.rotation=0,this.alpha=1,this.visible=!0,this.worldVisible=!1,this.parent=null,this.stage=null,this.hitArea=null,this.worldAlpha=1,this.color=[],this.worldTransform=PIXI.mat3.create(),this.localTransform=PIXI.mat3.create(),this.dynamic=!0,this._sr=0,this._cr=1,this.childIndex=0,this.renderable=!1,this.interactive=!1,this.buttonMode=!1},PIXI.DisplayObject.constructor=PIXI.DisplayObject,PIXI.DisplayObject.prototype.setInteractive=function(t){this.interactive=t,this.stage&&(this.stage.dirty=!0)},PIXI.DisplayObject.prototype.updateTransform=function(){this.rotation!=this.rotationCache&&(this.rotationCache=this.rotation,this._sr=Math.sin(this.rotation),this._cr=Math.cos(this.rotation));var t=this.localTransform,e=this.parent.worldTransform,i=this.worldTransform;t[0]=this._cr*this.scale.x,t[1]=-this._sr*this.scale.y,t[3]=this._sr*this.scale.x,t[4]=this._cr*this.scale.y;var r=this.pivot.x,s=this.pivot.y;t[2]=this.position.x-t[0]*r-s*t[1],t[5]=this.position.y-t[4]*s-r*t[3];var n=t[0],a=t[1],o=t[2],h=t[3],u=t[4],d=t[5],c=e[0],l=e[1],I=e[2],p=e[3],f=e[4],x=e[5];i[0]=c*n+l*h,i[1]=c*a+l*u,i[2]=c*o+l*d+I,i[3]=p*n+f*h,i[4]=p*a+f*u,i[5]=p*o+f*d+x,this.worldAlpha=this.alpha*this.parent.worldAlpha},PIXI.DisplayObjectContainer=function(){PIXI.DisplayObject.call(this),this.children=[],this.renderable=!1},PIXI.DisplayObjectContainer.constructor=PIXI.DisplayObjectContainer,PIXI.DisplayObjectContainer.prototype=Object.create(PIXI.DisplayObject.prototype),PIXI.DisplayObjectContainer.prototype.addChild=function(t){void 0!=t.parent&&t.parent.removeChild(t),t.parent=this,t.childIndex=this.children.length,this.children.push(t),this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},PIXI.DisplayObjectContainer.prototype.addChildAt=function(t,e){if(!(e>=0&&this.children.length>=e))throw Error(t+" The index "+e+" supplied is out of bounds "+this.children.length);void 0!=t.parent&&t.parent.removeChild(t),e==this.children.length?this.children.push(t):this.children.splice(e,0,t),t.parent=this,t.childIndex=e;for(var i=this.children.length,r=e;i>r;r++)this.children[r].childIndex=r;this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},PIXI.DisplayObjectContainer.prototype.swapChildren=function(t,e){var i=this.children.indexOf(t),r=this.children.indexOf(e);if(-1===i||-1===r)throw Error(t+" Both the supplied DisplayObjects must be a child of the caller "+this);this.stage&&(this.stage.__removeChild(t),this.stage.__removeChild(e),this.stage.__addChild(t),this.stage.__addChild(e)),t.childIndex=r,e.childIndex=i,this.children[i]=e,this.children[r]=t},PIXI.DisplayObjectContainer.prototype.getChildAt=function(t){if(t>=0&&this.children.length>t)return this.children[t];throw Error(child+" Both the supplied DisplayObjects must be a child of the caller "+this)},PIXI.DisplayObjectContainer.prototype.removeChild=function(t){var e=this.children.indexOf(t);if(-1===e)throw Error(t+" The supplied DisplayObject must be a child of the caller "+this);this.stage&&this.stage.__removeChild(t),t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.parent=void 0,this.children.splice(e,1);for(var i=e,r=this.children.length;r>i;i++)this.children[i].childIndex-=1},PIXI.DisplayObjectContainer.prototype.updateTransform=function(){if(this.visible){PIXI.DisplayObject.prototype.updateTransform.call(this);for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform()}},PIXI.blendModes={},PIXI.blendModes.NORMAL=0,PIXI.blendModes.SCREEN=1,PIXI.Sprite=function(t){PIXI.DisplayObjectContainer.call(this),this.anchor=new PIXI.Point,this.texture=t,this.blendMode=PIXI.blendModes.NORMAL,this._width=0,this._height=0,t.baseTexture.hasLoaded?this.updateFrame=!0:(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},PIXI.Sprite.constructor=PIXI.Sprite,PIXI.Sprite.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),Object.defineProperty(PIXI.Sprite.prototype,"width",{get:function(){return this.scale.x*this.texture.frame.width},set:function(t){this.scale.x=t/this.texture.frame.width,this._width=t}}),Object.defineProperty(PIXI.Sprite.prototype,"height",{get:function(){return this.scale.y*this.texture.frame.height},set:function(t){this.scale.y=t/this.texture.frame.height,this._height=t}}),PIXI.Sprite.prototype.setTexture=function(t){this.texture.baseTexture!=t.baseTexture&&(this.textureChange=!0),this.texture=t,this.updateFrame=!0},PIXI.Sprite.prototype.onTextureUpdate=function(){this._width&&(this.scale.x=this._width/this.texture.frame.width),this._height&&(this.scale.y=this._height/this.texture.frame.height),this.updateFrame=!0},PIXI.Sprite.fromFrame=function(t){var e=PIXI.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache"+this);return new PIXI.Sprite(e)},PIXI.Sprite.fromImage=function(t){var e=PIXI.Texture.fromImage(t);return new PIXI.Sprite(e)},PIXI.MovieClip=function(t){PIXI.Sprite.call(this,t[0]),this.textures=t,this.currentFrame=0,this.animationSpeed=1,this.loop=!0,this.onComplete=null,this.playing},PIXI.MovieClip.constructor=PIXI.MovieClip,PIXI.MovieClip.prototype=Object.create(PIXI.Sprite.prototype),PIXI.MovieClip.prototype.stop=function(){this.playing=!1},PIXI.MovieClip.prototype.play=function(){this.playing=!0},PIXI.MovieClip.prototype.gotoAndStop=function(t){this.playing=!1,this.currentFrame=t;var e=0|this.currentFrame+.5;this.setTexture(this.textures[e%this.textures.length])},PIXI.MovieClip.prototype.gotoAndPlay=function(t){this.currentFrame=t,this.playing=!0},PIXI.MovieClip.prototype.updateTransform=function(){if(PIXI.Sprite.prototype.updateTransform.call(this),this.playing){this.currentFrame+=this.animationSpeed;var t=0|this.currentFrame+.5;this.loop||this.textures.length>t?this.setTexture(this.textures[t%this.textures.length]):t>=this.textures.length&&(this.gotoAndStop(this.textures.length-1),this.onComplete&&this.onComplete())}},PIXI.Text=function(t,e){this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"),PIXI.Sprite.call(this,PIXI.Texture.fromCanvas(this.canvas)),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},PIXI.Text.constructor=PIXI.Text,PIXI.Text.prototype=Object.create(PIXI.Sprite.prototype),PIXI.Text.prototype.setStyle=function(t){t=t||{},t.font=t.font||"bold 20pt Arial",t.fill=t.fill||"black",t.align=t.align||"left",t.strokeThickness=t.strokeThickness||0,this.style=t,this.dirty=!0},PIXI.Sprite.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},PIXI.Text.prototype.updateText=function(){this.context.font=this.style.font;for(var t=this.text.split(/(?:\r\n|\r|\n)/),e=[],i=0,r=0;t.length>r;r++){var s=this.context.measureText(t[r]).width;e[r]=s,i=Math.max(i,s)}this.canvas.width=i+this.style.strokeThickness;var n=this.determineFontHeight("font: "+this.style.font+";")+this.style.strokeThickness;for(this.canvas.height=n*t.length,this.context.fillStyle=this.style.fill,this.context.font=this.style.font,this.context.strokeStyle=this.style.stroke,this.context.lineWidth=this.style.strokeThickness,this.context.textBaseline="top",r=0;t.length>r;r++){var a=new PIXI.Point(this.style.strokeThickness/2,this.style.strokeThickness/2+r*n);"right"==this.style.align?a.x+=i-e[r]:"center"==this.style.align&&(a.x+=(i-e[r])/2),this.style.stroke&&this.style.strokeThickness&&this.context.strokeText(t[r],a.x,a.y),this.style.fill&&this.context.fillText(t[r],a.x,a.y)}this.updateTexture()},PIXI.Text.prototype.updateTexture=function(){this.texture.baseTexture.width=this.canvas.width,this.texture.baseTexture.height=this.canvas.height,this.texture.frame.width=this.canvas.width,this.texture.frame.height=this.canvas.height,this._width=this.canvas.width,this._height=this.canvas.height,PIXI.texturesToUpdate.push(this.texture.baseTexture)},PIXI.Text.prototype.updateTransform=function(){this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype.updateTransform.call(this)},PIXI.Text.prototype.determineFontHeight=function(t){var e=PIXI.Text.heightCache[t];if(!e){var i=document.getElementsByTagName("body")[0],r=document.createElement("div"),s=document.createTextNode("M");r.appendChild(s),r.setAttribute("style",t),i.appendChild(r),e=r.offsetHeight,PIXI.Text.heightCache[t]=e,i.removeChild(r)}return e},PIXI.Text.prototype.destroy=function(t){t&&this.texture.destroy()},PIXI.Text.heightCache={},PIXI.BitmapText=function(t,e){PIXI.DisplayObjectContainer.call(this),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},PIXI.BitmapText.constructor=PIXI.BitmapText,PIXI.BitmapText.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.BitmapText.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},PIXI.BitmapText.prototype.setStyle=function(t){t=t||{},t.align=t.align||"left",this.style=t;var e=t.font.split(" ");this.fontName=e[e.length-1],this.fontSize=e.length>=2?parseInt(e[e.length-2],10):PIXI.BitmapText.fonts[this.fontName].size,this.dirty=!0},PIXI.BitmapText.prototype.updateText=function(){for(var t=PIXI.BitmapText.fonts[this.fontName],e=new PIXI.Point,i=null,r=[],s=0,n=[],a=0,o=this.fontSize/t.size,h=0;this.text.length>h;h++){var u=this.text.charCodeAt(h);if(/(?:\r\n|\r|\n)/.test(this.text.charAt(h)))n.push(e.x),s=Math.max(s,e.x),a++,e.x=0,e.y+=t.lineHeight,i=null;else{var d=t.chars[u];d&&(i&&d[i]&&(e.x+=d.kerning[i]),r.push({line:a,charCode:u,position:new PIXI.Point(e.x+d.xOffset,e.y+d.yOffset)}),e.x+=d.xAdvance,i=u)}}n.push(e.x),s=Math.max(s,e.x);var c=[];for(h=0;a>=h;h++){var l=0;"right"==this.style.align?l=s-n[h]:"center"==this.style.align&&(l=(s-n[h])/2),c.push(l)}for(h=0;r.length>h;h++){var I=PIXI.Sprite.fromFrame(r[h].charCode);I.position.x=(r[h].position.x+c[r[h].line])*o,I.position.y=r[h].position.y*o,I.scale.x=I.scale.y=o,this.addChild(I)}this.width=e.x*o,this.height=(e.y+t.lineHeight)*o},PIXI.BitmapText.prototype.updateTransform=function(){if(this.dirty){for(;this.children.length>0;)this.removeChild(this.getChildAt(0));this.updateText(),this.dirty=!1}PIXI.DisplayObjectContainer.prototype.updateTransform.call(this)},PIXI.BitmapText.fonts={},PIXI.InteractionManager=function(t){this.stage=t,this.tempPoint=new PIXI.Point,this.mouseoverEnabled=!0,this.mouse=new PIXI.InteractionData,this.touchs={},this.pool=[],this.interactiveItems=[],this.last=0},PIXI.InteractionManager.constructor=PIXI.InteractionManager,PIXI.InteractionManager.prototype.collectInteractiveSprite=function(t,e){for(var i=t.children,r=i.length,s=r-1;s>=0;s--){var n=i[s];n.interactive?(e.interactiveChildren=!0,this.interactiveItems.push(n),n.children.length>0&&this.collectInteractiveSprite(n,n)):(n.__iParent=null,n.children.length>0&&this.collectInteractiveSprite(n,e))}},PIXI.InteractionManager.prototype.setTarget=function(t){window.navigator.msPointerEnabled&&(t.view.style["-ms-content-zooming"]="none",t.view.style["-ms-touch-action"]="none"),this.target=t,t.view.addEventListener("mousemove",this.onMouseMove.bind(this),!0),t.view.addEventListener("mousedown",this.onMouseDown.bind(this),!0),document.body.addEventListener("mouseup",this.onMouseUp.bind(this),!0),t.view.addEventListener("mouseout",this.onMouseUp.bind(this),!0),t.view.addEventListener("touchstart",this.onTouchStart.bind(this),!0),t.view.addEventListener("touchend",this.onTouchEnd.bind(this),!0),t.view.addEventListener("touchmove",this.onTouchMove.bind(this),!0)},PIXI.InteractionManager.prototype.update=function(){if(this.target){var t=Date.now(),e=t-this.last;if(e=30*e/1e3,!(1>e)){if(this.last=t,this.dirty){this.dirty=!1,this.interactiveItems.length;for(var i=0;this.interactiveItems.length>i;i++)this.interactiveItems[i].interactiveChildren=!1;this.interactiveItems=[],this.stage.interactive&&this.interactiveItems.push(this.stage),this.collectInteractiveSprite(this.stage,this.stage)}var r=this.interactiveItems.length;this.target.view.style.cursor="default";for(var i=0;r>i;i++){var s=this.interactiveItems[i];s.visible&&(s.mouseover||s.mouseout||s.buttonMode)&&(s.__hit=this.hitTest(s,this.mouse),s.__hit?(s.buttonMode&&(this.target.view.style.cursor="pointer"),s.__isOver||(s.mouseover&&s.mouseover(this.mouse),s.__isOver=!0)):s.__isOver&&(s.mouseout&&s.mouseout(this.mouse),s.__isOver=!1))}}}},PIXI.InteractionManager.prototype.onMouseMove=function(t){t.preventDefault();var e=this.target.view.getBoundingClientRect();this.mouse.global.x=(t.clientX-e.left)*(this.target.width/e.width),this.mouse.global.y=(t.clientY-e.top)*(this.target.height/e.height);var i=this.interactiveItems.length;this.mouse.global;for(var r=0;i>r;r++){var s=this.interactiveItems[r];s.mousemove&&s.mousemove(this.mouse)}},PIXI.InteractionManager.prototype.onMouseDown=function(t){t.preventDefault();var e=this.interactiveItems.length;this.mouse.global,this.stage;for(var i=0;e>i;i++){var r=this.interactiveItems[i];if((r.mousedown||r.click)&&(r.__mouseIsDown=!0,r.__hit=this.hitTest(r,this.mouse),r.__hit&&(r.mousedown&&r.mousedown(this.mouse),r.__isDown=!0,!r.interactiveChildren)))break}},PIXI.InteractionManager.prototype.onMouseUp=function(t){t.preventDefault(),this.mouse.global;for(var e=this.interactiveItems.length,i=!1,r=0;e>r;r++){var s=this.interactiveItems[r];(s.mouseup||s.mouseupoutside||s.click)&&(s.__hit=this.hitTest(s,this.mouse),s.__hit&&!i?(s.mouseup&&s.mouseup(this.mouse),s.__isDown&&s.click&&s.click(this.mouse),s.interactiveChildren||(i=!0)):s.__isDown&&s.mouseupoutside&&s.mouseupoutside(this.mouse),s.__isDown=!1)}},PIXI.InteractionManager.prototype.hitTest=function(t,e){var i=e.global;if(!t.visible)return!1;if(t instanceof PIXI.Sprite){var r=t.worldTransform,s=r[0],n=r[1],a=r[2],o=r[3],h=r[4],u=r[5],d=1/(s*h+n*-o),c=h*d*i.x+-n*d*i.y+(u*n-a*h)*d,l=s*d*i.y+-o*d*i.x+(-u*s+a*o)*d,I=t.texture.frame.width,p=t.texture.frame.height,f=-I*t.anchor.x;if(c>f&&f+I>c){var x=-p*t.anchor.y;if(l>x&&x+p>l)return e.target=t,!0}}else if(t.hitArea){var r=t.worldTransform,v=t.hitArea,s=r[0],n=r[1],a=r[2],o=r[3],h=r[4],u=r[5],d=1/(s*h+n*-o),c=h*d*i.x+-n*d*i.y+(u*n-a*h)*d,l=s*d*i.y+-o*d*i.x+(-u*s+a*o)*d,f=v.x;if(c>f&&f+v.width>c){var x=v.y;if(l>x&&x+v.height>l)return!0}}for(var P=t.children.length,g=0;P>g;g++){var b=t.children[g],X=this.hitTest(b,e);if(X)return!0}return!1},PIXI.InteractionManager.prototype.onTouchMove=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.touchs[s.identifier];n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height)}for(var a=this.interactiveItems.length,r=0;a>r;r++){var o=this.interactiveItems[r];o.touchmove&&o.touchmove(n)}},PIXI.InteractionManager.prototype.onTouchStart=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.pool.pop();n||(n=new PIXI.InteractionData),this.touchs[s.identifier]=n,n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height);for(var a=this.interactiveItems.length,o=0;a>o;o++){var h=this.interactiveItems[o];if((h.touchstart||h.tap)&&(h.__hit=this.hitTest(h,n),h.__hit&&(h.touchstart&&h.touchstart(n),h.__isDown=!0,h.__touchData=n,!h.interactiveChildren)))break}}},PIXI.InteractionManager.prototype.onTouchEnd=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.touchs[s.identifier],a=!1;n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var u=this.interactiveItems[h],d=u.__touchData;u.__hit=this.hitTest(u,n),d==n&&((u.touchend||u.tap)&&(u.__hit&&!a?(u.touchend&&u.touchend(n),u.__isDown&&u.tap&&u.tap(n),u.interactiveChildren||(a=!0)):u.__isDown&&u.touchendoutside&&u.touchendoutside(n),u.__isDown=!1),u.__touchData=null)}this.pool.push(n),this.touchs[s.identifier]=null}},PIXI.InteractionData=function(){this.global=new PIXI.Point,this.local=new PIXI.Point,this.target},PIXI.InteractionData.prototype.getLocalPosition=function(t){var e=t.worldTransform,i=this.global,r=e[0],s=e[1],n=e[2],a=e[3],o=e[4],h=e[5],u=1/(r*o+s*-a);return new PIXI.Point(o*u*i.x+-s*u*i.y+(h*s-n*o)*u,r*u*i.y+-a*u*i.x+(-h*r+n*a)*u)},PIXI.InteractionData.constructor=PIXI.InteractionData,PIXI.Stage=function(t,e){PIXI.DisplayObjectContainer.call(this),this.worldTransform=PIXI.mat3.create(),this.__childrenAdded=[],this.__childrenRemoved=[],this.childIndex=0,this.stage=this,this.stage.hitArea=new PIXI.Rectangle(0,0,1e5,1e5),this.interactive=!!e,this.interactionManager=new PIXI.InteractionManager(this),this.setBackgroundColor(t),this.worldVisible=!0},PIXI.Stage.constructor=PIXI.Stage,PIXI.Stage.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Stage.prototype.updateTransform=function(){this.worldAlpha=1;for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform();this.dirty&&(this.dirty=!1,this.interactionManager.dirty=!0),this.interactive&&this.interactionManager.update()},PIXI.Stage.prototype.setBackgroundColor=function(t){this.backgroundColor=t||0,this.backgroundColorSplit=HEXtoRGB(this.backgroundColor),this.backgroundColorString="#"+this.backgroundColor.toString(16)},PIXI.Stage.prototype.getMousePosition=function(){return this.interactionManager.mouse.global},PIXI.Stage.prototype.__addChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=this,t.children)for(var e=0;t.children.length>e;e++)this.__addChild(t.children[e])},PIXI.Stage.prototype.__removeChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=void 0,t.children)for(var e=0,i=t.children.length;i>e;e++)this.__removeChild(t.children[e])},window.requestAnimFrame=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(t){window.setTimeout(t,1e3/60)}}(),"function"!=typeof Function.prototype.bind&&(Function.prototype.bind=function(){var t=Array.prototype.slice;return function(e){function i(){var n=s.concat(t.call(arguments));r.apply(this instanceof i?this:e,n)}var r=this,s=t.call(arguments,1);if("function"!=typeof r)throw new TypeError;return i.prototype=function n(t){return t&&(n.prototype=t),this instanceof n?void 0:new n}(r.prototype),i}}());var AjaxRequest=function(){var t=["Msxml2.XMLHTTP","Microsoft.XMLHTTP"];if(!window.ActiveXObject)return window.XMLHttpRequest?new XMLHttpRequest:!1;for(var e=0;t.length>e;e++)try{return new ActiveXObject(t[e])}catch(i){}};PIXI.EventTarget=function(){var t={};this.addEventListener=this.on=function(e,i){void 0===t[e]&&(t[e]=[]),-1===t[e].indexOf(i)&&t[e].push(i)},this.dispatchEvent=this.emit=function(e){for(var i in t[e.type])t[e.type][i](e)},this.removeEventListener=this.off=function(e,i){var r=t[e].indexOf(i);-1!==r&&t[e].splice(r,1)}},determineMatrixArrayType(),PIXI.mat3={},PIXI.mat3.create=function(){var t=new PIXI.Matrix(9);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},PIXI.mat4={},PIXI.mat4.create=function(){var t=new PIXI.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},PIXI.mat3.multiply=function(t,e,i){i||(i=t);var r=t[0],s=t[1],n=t[2],a=t[3],o=t[4],h=t[5],u=t[6],d=t[7],c=t[8],l=e[0],I=e[1],p=e[2],f=e[3],x=e[4],v=e[5],P=e[6],g=e[7],b=e[8];return i[0]=l*r+I*a+p*u,i[1]=l*s+I*o+p*d,i[2]=l*n+I*h+p*c,i[3]=f*r+x*a+v*u,i[4]=f*s+x*o+v*d,i[5]=f*n+x*h+v*c,i[6]=P*r+g*a+b*u,i[7]=P*s+g*o+b*d,i[8]=P*n+g*h+b*c,i},PIXI.mat3.toMat4=function(t,e){return e||(e=PIXI.mat4.create()),e[15]=1,e[14]=0,e[13]=0,e[12]=0,e[11]=0,e[10]=t[8],e[9]=t[7],e[8]=t[6],e[7]=0,e[6]=t[5],e[5]=t[4],e[4]=t[3],e[3]=0,e[2]=t[2],e[1]=t[1],e[0]=t[0],e},PIXI.mat4.create=function(){var t=new PIXI.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},PIXI.mat4.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],s=t[3],n=t[6],a=t[7],o=t[11];return t[1]=t[4],t[2]=t[8],t[3]=t[12],t[4]=i,t[6]=t[9],t[7]=t[13],t[8]=r,t[9]=n,t[11]=t[14],t[12]=s,t[13]=a,t[14]=o,t}return e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=t[1],e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=t[2],e[9]=t[6],e[10]=t[10],e[11]=t[14],e[12]=t[3],e[13]=t[7],e[14]=t[11],e[15]=t[15],e},PIXI.mat4.multiply=function(t,e,i){i||(i=t);var r=t[0],s=t[1],n=t[2],a=t[3],o=t[4],h=t[5],u=t[6],d=t[7],c=t[8],l=t[9],I=t[10],p=t[11],f=t[12],x=t[13],v=t[14],P=t[15],g=e[0],b=e[1],X=e[2],m=e[3];return i[0]=g*r+b*o+X*c+m*f,i[1]=g*s+b*h+X*l+m*x,i[2]=g*n+b*u+X*I+m*v,i[3]=g*a+b*d+X*p+m*P,g=e[4],b=e[5],X=e[6],m=e[7],i[4]=g*r+b*o+X*c+m*f,i[5]=g*s+b*h+X*l+m*x,i[6]=g*n+b*u+X*I+m*v,i[7]=g*a+b*d+X*p+m*P,g=e[8],b=e[9],X=e[10],m=e[11],i[8]=g*r+b*o+X*c+m*f,i[9]=g*s+b*h+X*l+m*x,i[10]=g*n+b*u+X*I+m*v,i[11]=g*a+b*d+X*p+m*P,g=e[12],b=e[13],X=e[14],m=e[15],i[12]=g*r+b*o+X*c+m*f,i[13]=g*s+b*h+X*l+m*x,i[14]=g*n+b*u+X*I+m*v,i[15]=g*a+b*d+X*p+m*P,i},PIXI.autoDetectRenderer=function(t,e,i,r){t||(t=800),e||(e=600);var s=function(){try{return!!window.WebGLRenderingContext&&!!document.createElement("canvas").getContext("experimental-webgl")}catch(t){return!1}}();return s?new PIXI.WebGLRenderer(t,e,i,r):new PIXI.CanvasRenderer(t,e,i,r)},PIXI.shaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * vColor;","}"],PIXI.shaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform mat4 uMVMatrix;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","gl_Position = uMVMatrix * vec4(aVertexPosition, 1.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],PIXI.CompileVertexShader=function(t,e){return PIXI._CompileShader(t,e,t.VERTEX_SHADER)},PIXI.CompileFragmentShader=function(t,e){return PIXI._CompileShader(t,e,t.FRAGMENT_SHADER)},PIXI._CompileShader=function(t,e,i){var r=e.join("\n"),s=t.createShader(i);return t.shaderSource(s,r),t.compileShader(s),t.getShaderParameter(s,t.COMPILE_STATUS)?s:(alert(t.getShaderInfoLog(s)),null)},PIXI._defaultFrame=new PIXI.Rectangle(0,0,1,1),PIXI.gl,PIXI.WebGLRenderer=function(t,e,i,r){this.transparent=!!r,this.width=t||800,this.height=e||600,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height;var s=this;this.view.addEventListener("webglcontextlost",function(t){s.handleContextLost(t)},!1),this.view.addEventListener("webglcontextrestored",function(t){s.handleContextRestored(t)},!1),this.batchs=[];try{PIXI.gl=this.gl=this.view.getContext("experimental-webgl",{alpha:this.transparent,antialias:!1,premultipliedAlpha:!0})}catch(n){throw Error(" This browser does not support webGL. Try using the canvas renderer"+this)}this.initShaders();var a=this.gl;PIXI.WebGLRenderer.gl=a,this.batch=new PIXI.WebGLBatch(a),a.disable(a.DEPTH_TEST),a.disable(a.CULL_FACE),a.enable(a.BLEND),a.colorMask(!0,!0,!0,this.transparent),this.projectionMatrix=PIXI.mat4.create(),this.resize(this.width,this.height),this.contextLost=!1,this.stageRenderGroup=new PIXI.WebGLRenderGroup(this.gl)},PIXI.WebGLRenderer.constructor=PIXI.WebGLRenderer,PIXI.WebGLRenderer.getBatch=function(){return 0==PIXI._batchs.length?new PIXI.WebGLBatch(PIXI.WebGLRenderer.gl):PIXI._batchs.pop()},PIXI.WebGLRenderer.returnBatch=function(t){t.clean(),PIXI._batchs.push(t)},PIXI.WebGLRenderer.prototype.initShaders=function(){var t=this.gl,e=PIXI.CompileFragmentShader(t,PIXI.shaderFragmentSrc),i=PIXI.CompileVertexShader(t,PIXI.shaderVertexSrc);PIXI.shaderProgram=t.createProgram();var r=PIXI.shaderProgram;t.attachShader(r,i),t.attachShader(r,e),t.linkProgram(r),t.getProgramParameter(r,t.LINK_STATUS)||alert("Could not initialise shaders"),t.useProgram(r),r.vertexPositionAttribute=t.getAttribLocation(r,"aVertexPosition"),t.enableVertexAttribArray(r.vertexPositionAttribute),r.textureCoordAttribute=t.getAttribLocation(r,"aTextureCoord"),t.enableVertexAttribArray(r.textureCoordAttribute),r.colorAttribute=t.getAttribLocation(r,"aColor"),t.enableVertexAttribArray(r.colorAttribute),r.mvMatrixUniform=t.getUniformLocation(r,"uMVMatrix"),r.samplerUniform=t.getUniformLocation(r,"uSampler")},PIXI.WebGLRenderer.prototype.render=function(t){if(!this.contextLost){this.__stage!==t&&(this.__stage=t,this.stageRenderGroup.setRenderable(t)),PIXI.WebGLRenderer.updateTextures(),t.updateTransform();var e=this.gl;if(e.colorMask(!0,!0,!0,this.transparent),e.viewport(0,0,this.width,this.height),e.bindFramebuffer(e.FRAMEBUFFER,null),e.clearColor(t.backgroundColorSplit[0],t.backgroundColorSplit[1],t.backgroundColorSplit[2],this.transparent),e.clear(e.COLOR_BUFFER_BIT),this.stageRenderGroup.backgroundColor=t.backgroundColorSplit,this.stageRenderGroup.render(this.projectionMatrix),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),PIXI.Texture.frameUpdates.length>0){for(var i=0;PIXI.Texture.frameUpdates.length>i;i++)PIXI.Texture.frameUpdates[i].updateFrame=!1;PIXI.Texture.frameUpdates=[]}}},PIXI.WebGLRenderer.updateTextures=function(){for(var t=0;PIXI.texturesToUpdate.length>t;t++)this.updateTexture(PIXI.texturesToUpdate[t]);for(var t=0;PIXI.texturesToDestroy.length>t;t++)this.destroyTexture(PIXI.texturesToDestroy[t]);PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[]},PIXI.WebGLRenderer.updateTexture=function(t){var e=PIXI.gl;t._glTexture||(t._glTexture=e.createTexture()),t.hasLoaded&&(e.bindTexture(e.TEXTURE_2D,t._glTexture),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t.source),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),t._powerOf2?(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT)):(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)),e.bindTexture(e.TEXTURE_2D,null))},PIXI.WebGLRenderer.prototype.destroyTexture=function(t){var e=this.gl;t._glTexture&&(t._glTexture=e.createTexture(),e.deleteTexture(e.TEXTURE_2D,t._glTexture))},PIXI.WebGLRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e,this.gl.viewport(0,0,this.width,this.height);var i=this.projectionMatrix;i[0]=2/this.width,i[5]=-2/this.height,i[12]=-1,i[13]=1},PIXI.WebGLRenderer.prototype.handleContextLost=function(t){t.preventDefault(),this.contextLost=!0},PIXI.WebGLRenderer.prototype.handleContextRestored=function(){this.gl=this.view.getContext("experimental-webgl",{alpha:!0}),this.initShaders();for(var t=0;PIXI.TextureCache.length>t;t++)this.updateTexture(PIXI.TextureCache[t]);for(var t=0;this.batchs.length>t;t++)this.batchs[t].restoreLostContext(this.gl),this.batchs[t].dirty=!0;PIXI._restoreBatchs(this.gl),this.contextLost=!1},PIXI._batchs=[],PIXI._getBatch=function(t){return 0==PIXI._batchs.length?new PIXI.WebGLBatch(t):PIXI._batchs.pop()},PIXI._returnBatch=function(t){t.clean(),PIXI._batchs.push(t)},PIXI._restoreBatchs=function(t){for(var e=0;PIXI._batchs.length>e;e++)PIXI._batchs[e].restoreLostContext(t)},PIXI.WebGLBatch=function(t){this.gl=t,this.size=0,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer(),this.blendMode=PIXI.blendModes.NORMAL,this.dynamicSize=1},PIXI.WebGLBatch.constructor=PIXI.WebGLBatch,PIXI.WebGLBatch.prototype.clean=function(){this.verticies=[],this.uvs=[],this.indices=[],this.colors=[],this.dynamicSize=1,this.texture=null,this.last=null,this.size=0,this.head,this.tail},PIXI.WebGLBatch.prototype.restoreLostContext=function(t){this.gl=t,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer()},PIXI.WebGLBatch.prototype.init=function(t){t.batch=this,this.dirty=!0,this.blendMode=t.blendMode,this.texture=t.texture.baseTexture,this.head=t,this.tail=t,this.size=1,this.growBatch()},PIXI.WebGLBatch.prototype.insertBefore=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__prev;e.__prev=t,t.__next=e,i?(t.__prev=i,i.__next=t):this.head=t},PIXI.WebGLBatch.prototype.insertAfter=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__next;e.__next=t,t.__prev=e,i?(t.__next=i,i.__prev=t):this.tail=t},PIXI.WebGLBatch.prototype.remove=function(t){return this.size--,0==this.size?(t.batch=null,t.__prev=null,t.__next=null,void 0):(t.__prev?t.__prev.__next=t.__next:(this.head=t.__next,this.head.__prev=null),t.__next?t.__next.__prev=t.__prev:(this.tail=t.__prev,this.tail.__next=null),t.batch=null,t.__next=null,t.__prev=null,this.dirty=!0,void 0)},PIXI.WebGLBatch.prototype.split=function(t){this.dirty=!0;var e=new PIXI.WebGLBatch(this.gl);e.init(t),e.tail=this.tail,this.tail=t.__prev,this.tail.__next=null,t.__prev=null;for(var i=0;t;)i++,t.batch=e,t=t.__next;return e.size=i,this.size-=i,e},PIXI.WebGLBatch.prototype.merge=function(t){this.dirty=!0,this.tail.__next=t.head,t.head.__prev=this.tail,this.size+=t.size,this.tail=t.tail;for(var e=t.head;e;)e.batch=this,e=e.__next},PIXI.WebGLBatch.prototype.growBatch=function(){var t=this.gl;this.dynamicSize=1==this.size?1:1.5*this.size,this.verticies=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.vertexBuffer),t.bufferData(t.ARRAY_BUFFER,this.verticies,t.DYNAMIC_DRAW),this.uvs=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.uvBuffer),t.bufferData(t.ARRAY_BUFFER,this.uvs,t.DYNAMIC_DRAW),this.dirtyUVS=!0,this.colors=new Float32Array(4*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.colorBuffer),t.bufferData(t.ARRAY_BUFFER,this.colors,t.DYNAMIC_DRAW),this.dirtyColors=!0,this.indices=new Uint16Array(6*this.dynamicSize);for(var e=this.indices.length/6,i=0;e>i;i++){var r=6*i,s=4*i;this.indices[r+0]=s+0,this.indices[r+1]=s+1,this.indices[r+2]=s+2,this.indices[r+3]=s+0,this.indices[r+4]=s+2,this.indices[r+5]=s+3}t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,this.indexBuffer),t.bufferData(t.ELEMENT_ARRAY_BUFFER,this.indices,t.STATIC_DRAW)},PIXI.WebGLBatch.prototype.refresh=function(){this.gl,this.dynamicSizer;r++)i=this.batchs[r],i instanceof PIXI.WebGLBatch?this.batchs[r].render():i instanceof PIXI.TilingSprite?i.visible&&this.renderTilingSprite(i,t):i instanceof PIXI.Strip&&i.visible&&this.renderStrip(i,t)},PIXI.WebGLRenderGroup.prototype.renderSpecific=function(t,e){PIXI.WebGLRenderer.updateTextures();var i=this.gl;this.checkVisibility(t,t.visible),i.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform,!1,e);var r,s,n,a,o=t.renderable?t:this.getNextRenderable(t),h=o.batch;if(o instanceof PIXI.Sprite){h=o.batch;var u=h.head;if(u==o)r=0;else for(r=1;u.__next!=o;)r++,u=u.__next}else h=o;for(var d,c=t,l=t;l.children.length>0;)l=l.children[l.children.length-1],l.renderable&&(c=l);if(c instanceof PIXI.Sprite){d=c.batch;var u=d.head;if(u==c)n=0;else for(n=1;u.__next!=c;)n++,u=u.__next}else d=c;if(h==d)return h instanceof PIXI.WebGLBatch?h.render(r,n+1):h instanceof PIXI.TilingSprite?h.visible&&this.renderTilingSprite(h,e):h instanceof PIXI.Strip?h.visible&&this.renderStrip(h,e):h instanceof PIXI.CustomRenderable&&h.visible&&h.renderWebGL(this,e),void 0;s=this.batchs.indexOf(h),a=this.batchs.indexOf(d),h instanceof PIXI.WebGLBatch?h.render(r):h instanceof PIXI.TilingSprite?h.visible&&this.renderTilingSprite(h,e):h instanceof PIXI.Strip?h.visible&&this.renderStrip(h,e):h instanceof PIXI.CustomRenderable&&h.visible&&h.renderWebGL(this,e);for(var I=s+1;a>I;I++)renderable=this.batchs[I],renderable instanceof PIXI.WebGLBatch?this.batchs[I].render():renderable instanceof PIXI.TilingSprite?renderable.visible&&this.renderTilingSprite(renderable,e):renderable instanceof PIXI.Strip?renderable.visible&&this.renderStrip(renderable,e):renderable instanceof PIXI.CustomRenderable&&renderable.visible&&renderable.renderWebGL(this,e);d instanceof PIXI.WebGLBatch?d.render(0,n+1):d instanceof PIXI.TilingSprite?d.visible&&this.renderTilingSprite(d):d instanceof PIXI.Strip?d.visible&&this.renderStrip(d):d instanceof PIXI.CustomRenderable&&d.visible&&d.renderWebGL(this,e)},PIXI.WebGLRenderGroup.prototype.checkVisibility=function(t,e){for(var i=t.children,r=0;i.length>r;r++){var s=i[r];s.worldVisible=s.visible&&e,s.textureChange&&(s.textureChange=!1,s.worldVisible&&(this.removeDisplayObject(s),this.addDisplayObject(s))),s.children.length>0&&this.checkVisibility(s,s.worldVisible)}},PIXI.WebGLRenderGroup.prototype.addDisplayObject=function(t){if(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.__renderGroup=this,t.renderable){var e=this.getPreviousRenderable(t),i=this.getNextRenderable(t);if(t instanceof PIXI.Sprite){var r,s;if(e instanceof PIXI.Sprite){if(r=e.batch,r&&r.texture==t.texture.baseTexture&&r.blendMode==t.blendMode)return r.insertAfter(t,e),void 0}else r=e;if(i)if(i instanceof PIXI.Sprite){if(s=i.batch){if(s.texture==t.texture.baseTexture&&s.blendMode==t.blendMode)return s.insertBefore(t,i),void 0;if(s==r){var n=r.split(i),a=PIXI.WebGLRenderer.getBatch(),o=this.batchs.indexOf(r);return a.init(t),this.batchs.splice(o+1,0,a,n),void 0}}}else s=i;var a=PIXI.WebGLRenderer.getBatch();if(a.init(t),r){var o=this.batchs.indexOf(r);this.batchs.splice(o+1,0,a)}else this.batchs.push(a)}else t instanceof PIXI.TilingSprite?(this.initTilingSprite(t),this.batchs.push(t)):t instanceof PIXI.Strip&&(this.initStrip(t),this.batchs.push(t));this.batchUpdate=!0}},PIXI.WebGLRenderGroup.prototype.addDisplayObjectAndChildren=function(t){this.addDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.addDisplayObjectAndChildren(e[i])},PIXI.WebGLRenderGroup.prototype.removeDisplayObject=function(t){if(t.__renderGroup=null,t.renderable){var e;if(t instanceof PIXI.Sprite){var i=t.batch;if(!i)return;i.remove(t),0==i.size&&(e=i)}else e=t;if(e){var r=this.batchs.indexOf(e);if(-1==r)return;if(0==r||r==this.batchs.length-1)return this.batchs.splice(r,1),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e),void 0;if(this.batchs[r-1]instanceof PIXI.WebGLBatch&&this.batchs[r+1]instanceof PIXI.WebGLBatch&&this.batchs[r-1].texture==this.batchs[r+1].texture&&this.batchs[r-1].blendMode==this.batchs[r+1].blendMode)return this.batchs[r-1].merge(this.batchs[r+1]),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e),PIXI.WebGLRenderer.returnBatch(this.batchs[r+1]),this.batchs.splice(r,2),void 0;this.batchs.splice(r,1),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e)}}},PIXI.WebGLRenderGroup.prototype.removeDisplayObjectAndChildren=function(t){if(t.__renderGroup==this){this.removeDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.removeDisplayObjectAndChildren(e[i])}},PIXI.WebGLRenderGroup.prototype.getNextRenderable=function(t){var e=t;do{if(0==e.children.length){if(!e.parent)return null;for(;e.childIndex==e.parent.children.length-1;)if(e=e.parent,e==this.root||!e.parent){e=null;break}e&&(e=e.parent.children[e.childIndex+1])}else e=e.children[0];if(!e)break}while(!e.renderable||!e.__renderGroup);return e},PIXI.WebGLRenderGroup.prototype.getPreviousRenderable=function(t){var e=t;do{if(0==e.childIndex){if(e=e.parent,!e)return null}else for(e=e.parent.children[e.childIndex-1];0!=e.children.length;)e=e.children[e.children.length-1];if(e==this.root)break}while(!e.renderable||!e.__renderGroup);return e},PIXI.WebGLRenderGroup.prototype.initTilingSprite=function(t){var e=this.gl;t.verticies=new Float32Array([0,0,t.width,0,t.width,t.height,0,t.height]),t.uvs=new Float32Array([0,0,1,0,1,1,0,1]),t.colors=new Float32Array([1,1,1,1]),t.indices=new Uint16Array([0,1,3,2]),t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW),t.texture.baseTexture._glTexture?(e.bindTexture(e.TEXTURE_2D,t.texture.baseTexture._glTexture),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT),t.texture.baseTexture._powerOf2=!0):t.texture.baseTexture._powerOf2=!0},PIXI.WebGLRenderGroup.prototype.renderStrip=function(t,e){var i=this.gl,r=PIXI.shaderProgram,s=PIXI.mat3.toMat4(t.worldTransform);PIXI.mat4.transpose(s),PIXI.mat4.multiply(e,s,s),i.uniformMatrix4fv(r.mvMatrixUniform,!1,s),t.blendMode==PIXI.blendModes.NORMAL?i.blendFunc(i.ONE,i.ONE_MINUS_SRC_ALPHA):i.blendFunc(i.ONE,i.ONE_MINUS_SRC_COLOR),t.dirty?(t.dirty=!1,i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferData(i.ARRAY_BUFFER,t.verticies,i.STATIC_DRAW),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferData(i.ARRAY_BUFFER,t.uvs,i.STATIC_DRAW),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.bufferData(i.ARRAY_BUFFER,t.colors,i.STATIC_DRAW),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer),i.bufferData(i.ELEMENT_ARRAY_BUFFER,t.indices,i.STATIC_DRAW)):(i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.verticies),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer)),i.drawElements(i.TRIANGLE_STRIP,t.indices.length,i.UNSIGNED_SHORT,0),i.uniformMatrix4fv(r.mvMatrixUniform,!1,e)},PIXI.WebGLRenderGroup.prototype.renderTilingSprite=function(t,e){var i=this.gl;PIXI.shaderProgram;var r=t.tilePosition,s=t.tileScale,n=r.x/t.texture.baseTexture.width,a=r.y/t.texture.baseTexture.height,o=t.width/t.texture.baseTexture.width/s.x,h=t.height/t.texture.baseTexture.height/s.y;t.uvs[0]=0-n,t.uvs[1]=0-a,t.uvs[2]=1*o-n,t.uvs[3]=0-a,t.uvs[4]=1*o-n,t.uvs[5]=1*h-a,t.uvs[6]=0-n,t.uvs[7]=1*h-a,i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.uvs),this.renderStrip(t,e)},PIXI.WebGLRenderer.prototype.initStrip=function(t){var e=this.gl;this.shaderProgram,t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW)},PIXI.CanvasRenderer=function(t,e,i,r){this.transparent=r,this.width=t||800,this.height=e||600,this.refresh=!0,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height,this.count=0,this.context=this.view.getContext("2d")},PIXI.CanvasRenderer.constructor=PIXI.CanvasRenderer,PIXI.CanvasRenderer.prototype.render=function(t){PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[],t.updateTransform(),this.view.style.backgroundColor==t.backgroundColorString||this.transparent||(this.view.style.backgroundColor=t.backgroundColorString),this.context.setTransform(1,0,0,1,0,0),this.context.clearRect(0,0,this.width,this.height),this.renderDisplayObject(t),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),PIXI.Texture.frameUpdates.length>0&&(PIXI.Texture.frameUpdates=[])},PIXI.CanvasRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e},PIXI.CanvasRenderer.prototype.renderDisplayObject=function(t){var e=t.worldTransform,i=this.context;if(t.visible){if(t instanceof PIXI.Sprite){var r=t.texture.frame;r&&(i.globalAlpha=t.worldAlpha,i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),i.drawImage(t.texture.baseTexture.source,r.x,r.y,r.width,r.height,t.anchor.x*-r.width,t.anchor.y*-r.height,r.width,r.height))}else t instanceof PIXI.Strip?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderStrip(t)):t instanceof PIXI.TilingSprite?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderTilingSprite(t)):t instanceof PIXI.CustomRenderable&&t.renderCanvas(this);for(var s=0;t.children.length>s;s++)this.renderDisplayObject(t.children[s]);this.context.setTransform(1,0,0,1,0,0)}},PIXI.CanvasRenderer.prototype.renderStripFlat=function(t){var e=this.context,i=t.verticies;t.uvs;var r=i.length/2;this.count++,e.beginPath();for(var s=1;r-2>s;s++){var n=2*s,a=i[n],o=i[n+2],h=i[n+4],u=i[n+1],d=i[n+3],c=i[n+5];e.moveTo(a,u),e.lineTo(o,d),e.lineTo(h,c)}e.fillStyle="#FF0000",e.fill(),e.closePath()},PIXI.CanvasRenderer.prototype.renderTilingSprite=function(t){var e=this.context;t.__tilePattern||(t.__tilePattern=e.createPattern(t.texture.baseTexture.source,"repeat")),e.beginPath();var i=t.tilePosition,r=t.tileScale;e.scale(r.x,r.y),e.translate(i.x,i.y),e.fillStyle=t.__tilePattern,e.fillRect(-i.x,-i.y,t.width/r.x,t.height/r.y),e.scale(1/r.x,1/r.y),e.translate(-i.x,-i.y),e.closePath()},PIXI.CanvasRenderer.prototype.renderStrip=function(t){var e=this.context,i=t.verticies,r=t.uvs,s=i.length/2;this.count++;for(var n=1;s-2>n;n++){var a=2*n,o=i[a],h=i[a+2],u=i[a+4],d=i[a+1],c=i[a+3],l=i[a+5],I=r[a]*t.texture.width,p=r[a+2]*t.texture.width,f=r[a+4]*t.texture.width,x=r[a+1]*t.texture.height,v=r[a+3]*t.texture.height,P=r[a+5]*t.texture.height;e.save(),e.beginPath(),e.moveTo(o,d),e.lineTo(h,c),e.lineTo(u,l),e.closePath(),e.clip();var g=I*v+x*f+p*P-v*f-x*p-I*P,b=o*v+x*u+h*P-v*u-x*h-o*P,X=I*h+o*f+p*u-h*f-o*p-I*u,m=I*v*u+x*h*f+o*p*P-o*v*f-x*p*u-I*h*P,T=d*v+x*l+c*P-v*l-x*c-d*P,y=I*c+d*f+p*l-c*f-d*p-I*l,_=I*v*l+x*c*f+d*p*P-d*v*f-x*p*l-I*c*P;e.transform(b/g,T/g,X/g,y/g,m/g,_/g),e.drawImage(t.texture.baseTexture.source,0,0),e.restore()}},PIXI.Strip=function(t,e,i){PIXI.DisplayObjectContainer.call(this),this.texture=t,this.blendMode=PIXI.blendModes.NORMAL;try{this.uvs=new Float32Array([0,1,1,1,1,0,0,1]),this.verticies=new Float32Array([0,0,0,0,0,0,0,0,0]),this.colors=new Float32Array([1,1,1,1]),this.indices=new Uint16Array([0,1,2,3])}catch(r){this.uvs=[0,1,1,1,1,0,0,1],this.verticies=[0,0,0,0,0,0,0,0,0],this.colors=[1,1,1,1],this.indices=[0,1,2,3]}this.width=e,this.height=i,t.baseTexture.hasLoaded?(this.width=this.texture.frame.width,this.height=this.texture.frame.height,this.updateFrame=!0):(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},PIXI.Strip.constructor=PIXI.Strip,PIXI.Strip.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Strip.prototype.setTexture=function(t){this.texture=t,this.width=t.frame.width,this.height=t.frame.height,this.updateFrame=!0},PIXI.Strip.prototype.onTextureUpdate=function(){this.updateFrame=!0},PIXI.Rope=function(t,e){PIXI.Strip.call(this,t),this.points=e;try{this.verticies=new Float32Array(4*e.length),this.uvs=new Float32Array(4*e.length),this.colors=new Float32Array(2*e.length),this.indices=new Uint16Array(2*e.length)}catch(i){this.verticies=verticies,this.uvs=uvs,this.colors=colors,this.indices=indices}this.refresh()},PIXI.Rope.constructor=PIXI.Rope,PIXI.Rope.prototype=Object.create(PIXI.Strip.prototype),PIXI.Rope.prototype.refresh=function(){var t=this.points;if(!(1>t.length)){var e=this.uvs,i=this.indices,r=this.colors,s=t[0],n=t[0];this.count-=.2,e[0]=0,e[1]=1,e[2]=0,e[3]=1,r[0]=1,r[1]=1,i[0]=0,i[1]=1;for(var a=t.length,o=1;a>o;o++){var n=t[o],h=4*o,u=o/(a-1);o%2?(e[h]=u,e[h+1]=0,e[h+2]=u,e[h+3]=1):(e[h]=u,e[h+1]=0,e[h+2]=u,e[h+3]=1),h=2*o,r[h]=1,r[h+1]=1,h=2*o,i[h]=h,i[h+1]=h+1,s=n}}},PIXI.Rope.prototype.updateTransform=function(){var t=this.points;if(!(1>t.length)){var e,i=this.verticies,r=t[0],s={x:0,y:0},n=t[0];this.count-=.2,i[0]=n.x+s.x,i[1]=n.y+s.y,i[2]=n.x-s.x,i[3]=n.y-s.y;for(var a=t.length,o=1;a>o;o++){var n=t[o],h=4*o;e=t.length-1>o?t[o+1]:n,s.y=-(e.x-r.x),s.x=e.y-r.y;var u=10*(1-o/(a-1));u>1&&(u=1);var d=Math.sqrt(s.x*s.x+s.y*s.y),c=this.texture.height/2;s.x/=d,s.y/=d,s.x*=c,s.y*=c,i[h]=n.x+s.x,i[h+1]=n.y+s.y,i[h+2]=n.x-s.x,i[h+3]=n.y-s.y,r=n}PIXI.DisplayObjectContainer.prototype.updateTransform.call(this)}},PIXI.Rope.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0},PIXI.TilingSprite=function(t,e,i){PIXI.DisplayObjectContainer.call(this),this.texture=t,this.width=e,this.height=i,this.renderable=!0,this.tileScale=new PIXI.Point(1,1),this.tilePosition=new PIXI.Point(0,0),this.blendMode=PIXI.blendModes.NORMAL},PIXI.TilingSprite.constructor=PIXI.TilingSprite,PIXI.TilingSprite.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.TilingSprite.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0},PIXI.TilingSprite.prototype.onTextureUpdate=function(){this.updateFrame=!0},PIXI.CustomRenderable=function(){PIXI.DisplayObject.call(this)},PIXI.CustomRenderable.constructor=PIXI.CustomRenderable,PIXI.CustomRenderable.prototype=Object.create(PIXI.DisplayObject.prototype),PIXI.CustomRenderable.prototype.renderCanvas=function(){},PIXI.CustomRenderable.prototype.initWebGL=function(){},PIXI.CustomRenderable.prototype.renderWebGL=function(){},PIXI.BaseTextureCache={},PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[],PIXI.BaseTexture=function(t){if(PIXI.EventTarget.call(this),this.width=100,this.height=100,this.source=t,t){if(this.source instanceof Image)if(this.source.complete)this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,PIXI.texturesToUpdate.push(this);else{var e=this;this.source.onload=function(){e.hasLoaded=!0,e.width=e.source.width,e.height=e.source.height,PIXI.texturesToUpdate.push(e),e.dispatchEvent({type:"loaded",content:e})}}else this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,PIXI.texturesToUpdate.push(this);this._powerOf2=!1}},PIXI.BaseTexture.constructor=PIXI.BaseTexture,PIXI.BaseTexture.prototype.destroy=function(){this.source instanceof Image&&(this.source.src=null),this.source=null,PIXI.texturesToDestroy.push(this)},PIXI.BaseTexture.fromImage=function(t,e){var i=PIXI.BaseTextureCache[t];if(!i){var r=new Image;e&&(r.crossOrigin=""),r.src=t,i=new PIXI.BaseTexture(r),PIXI.BaseTextureCache[t]=i}return i},PIXI.TextureCache={},PIXI.FrameCache={},PIXI.Texture=function(t,e){if(PIXI.EventTarget.call(this),e||(this.noFrame=!0,e=new PIXI.Rectangle(0,0,1,1)),this.trim=new PIXI.Point,t instanceof PIXI.Texture&&(t=t.baseTexture),this.baseTexture=t,this.frame=e,this.scope=this,t.hasLoaded)this.noFrame&&(e=new PIXI.Rectangle(0,0,t.width,t.height)),this.setFrame(e);else{var i=this;t.addEventListener("loaded",function(){i.onBaseTextureLoaded()})}},PIXI.Texture.constructor=PIXI.Texture,PIXI.Texture.prototype.onBaseTextureLoaded=function(){var t=this.baseTexture;t.removeEventListener("loaded",this.onLoaded),this.noFrame&&(this.frame=new PIXI.Rectangle(0,0,t.width,t.height)),this.noFrame=!1,this.width=this.frame.width,this.height=this.frame.height,this.scope.dispatchEvent({type:"update",content:this})},PIXI.Texture.prototype.destroy=function(t){t&&this.baseTexture.destroy()},PIXI.Texture.prototype.setFrame=function(t){if(this.frame=t,this.width=t.width,this.height=t.height,t.x+t.width>this.baseTexture.width||t.y+t.height>this.baseTexture.height)throw Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);this.updateFrame=!0,PIXI.Texture.frameUpdates.push(this)},PIXI.Texture.fromImage=function(t,e){var i=PIXI.TextureCache[t];return i||(i=new PIXI.Texture(PIXI.BaseTexture.fromImage(t,e)),PIXI.TextureCache[t]=i),i},PIXI.Texture.fromFrame=function(t){var e=PIXI.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache "+this);return e},PIXI.Texture.fromCanvas=function(t){var e=new PIXI.BaseTexture(t);return new PIXI.Texture(e)},PIXI.Texture.addTextureToCache=function(t,e){PIXI.TextureCache[e]=t},PIXI.Texture.removeTextureFromCache=function(t){var e=PIXI.TextureCache[t];return PIXI.TextureCache[t]=null,e},PIXI.Texture.frameUpdates=[],PIXI.RenderTexture=function(t,e){PIXI.EventTarget.call(this),this.width=t||100,this.height=e||100,this.indetityMatrix=PIXI.mat3.create(),this.frame=new PIXI.Rectangle(0,0,this.width,this.height),PIXI.gl?this.initWebGL():this.initCanvas()},PIXI.RenderTexture.constructor=PIXI.RenderTexture,PIXI.RenderTexture.prototype=Object.create(PIXI.Texture.prototype),PIXI.RenderTexture.prototype.initWebGL=function(){var t=PIXI.gl;this.glFramebuffer=t.createFramebuffer(),t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),this.glFramebuffer.width=this.width,this.glFramebuffer.height=this.height,this.baseTexture=new PIXI.BaseTexture,this.baseTexture.width=this.width,this.baseTexture.height=this.height,this.baseTexture._glTexture=t.createTexture(),t.bindTexture(t.TEXTURE_2D,this.baseTexture._glTexture),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,this.width,this.height,0,t.RGBA,t.UNSIGNED_BYTE,null),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),this.baseTexture.isRender=!0,t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,this.baseTexture._glTexture,0),this.projectionMatrix=PIXI.mat4.create(),this.projectionMatrix[5]=2/this.height,this.projectionMatrix[13]=-1,this.projectionMatrix[0]=2/this.width,this.projectionMatrix[12]=-1,this.render=this.renderWebGL},PIXI.RenderTexture.prototype.initCanvas=function(){this.renderer=new PIXI.CanvasRenderer(this.width,this.height,null,0),this.baseTexture=new PIXI.BaseTexture(this.renderer.view),this.frame=new PIXI.Rectangle(0,0,this.width,this.height),this.render=this.renderCanvas},PIXI.RenderTexture.prototype.renderWebGL=function(t,e){var i=PIXI.gl;i.colorMask(!0,!0,!0,!0),i.viewport(0,0,this.width,this.height),i.bindFramebuffer(i.FRAMEBUFFER,this.glFramebuffer),e&&(i.clearColor(0,0,0,0),i.clear(i.COLOR_BUFFER_BIT));var r=t.children;t.worldTransform=PIXI.mat3.create();for(var s=0,n=r.length;n>s;s++)r[s].updateTransform();var a=t.__renderGroup;a?t==a.root?a.render(this.projectionMatrix):a.renderSpecific(t,this.projectionMatrix):(this.renderGroup||(this.renderGroup=new PIXI.WebGLRenderGroup(i)),this.renderGroup.setRenderable(t),this.renderGroup.render(this.projectionMatrix))},PIXI.RenderTexture.prototype.renderCanvas=function(t,e){var i=t.children;t.worldTransform=PIXI.mat3.create();for(var r=0,s=i.length;s>r;r++)i[r].updateTransform();e&&this.renderer.context.clearRect(0,0,this.width,this.height),this.renderer.renderDisplayObject(t),PIXI.texturesToUpdate.push(this.baseTexture)},PIXI.AssetLoader=function(t){PIXI.EventTarget.call(this),this.assetURLs=t,this.crossorigin=!1,this.loadersByType={jpg:PIXI.ImageLoader,jpeg:PIXI.ImageLoader,png:PIXI.ImageLoader,gif:PIXI.ImageLoader,json:PIXI.SpriteSheetLoader,xml:PIXI.BitmapFontLoader,fnt:PIXI.BitmapFontLoader}},PIXI.AssetLoader.constructor=PIXI.AssetLoader,PIXI.AssetLoader.prototype.load=function(){var t=this;this.loadCount=this.assetURLs.length;for(var e=0;this.assetURLs.length>e;e++){var i=this.assetURLs[e],r=i.split(".").pop().toLowerCase(),s=this.loadersByType[r];if(!s)throw Error(r+" is an unsupported file type");var n=new s(i,this.crossorigin);n.addEventListener("loaded",function(){t.onAssetLoaded()}),n.load()}},PIXI.AssetLoader.prototype.onAssetLoaded=function(){this.loadCount--,this.dispatchEvent({type:"onProgress",content:this}),this.onProgress&&this.onProgress(),0==this.loadCount&&(this.dispatchEvent({type:"onComplete",content:this}),this.onComplete&&this.onComplete())},PIXI.SpriteSheetLoader=function(t,e){PIXI.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.frames={},this.crossorigin=e},PIXI.SpriteSheetLoader.constructor=PIXI.SpriteSheetLoader,PIXI.SpriteSheetLoader.prototype.load=function(){this.ajaxRequest=new AjaxRequest;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onJSONLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/json"),this.ajaxRequest.send(null)},PIXI.SpriteSheetLoader.prototype.onJSONLoaded=function(){if(4==this.ajaxRequest.readyState&&(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))){var jsonData=eval("("+this.ajaxRequest.responseText+")"),textureUrl=this.baseUrl+jsonData.meta.image,image=new PIXI.ImageLoader(textureUrl,this.crossorigin);this.texture=image.texture.baseTexture;var scope=this;image.addEventListener("loaded",function(){scope.onLoaded()});var frameData=jsonData.frames;for(var i in frameData){var rect=frameData[i].frame;rect&&(PIXI.TextureCache[i]=new PIXI.Texture(this.texture,{x:rect.x,y:rect.y,width:rect.w,height:rect.h}),frameData[i].trimmed&&(PIXI.TextureCache[i].realSize=frameData[i].spriteSourceSize,PIXI.TextureCache[i].trim.x=0))}image.load()}},PIXI.SpriteSheetLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},PIXI.ImageLoader=function(t,e){PIXI.EventTarget.call(this),this.texture=PIXI.Texture.fromImage(t,e)},PIXI.ImageLoader.constructor=PIXI.ImageLoader,PIXI.ImageLoader.prototype.load=function(){if(this.texture.baseTexture.hasLoaded)this.onLoaded();else{var t=this;this.texture.baseTexture.addEventListener("loaded",function(){t.onLoaded()})}},PIXI.ImageLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},PIXI.BitmapFontLoader=function(t,e){PIXI.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.crossorigin=e},PIXI.BitmapFontLoader.constructor=PIXI.BitmapFontLoader,PIXI.BitmapFontLoader.prototype.load=function(){this.ajaxRequest=new XMLHttpRequest;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onXMLLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/xml"),this.ajaxRequest.send(null)},PIXI.BitmapFontLoader.prototype.onXMLLoaded=function(){if(4==this.ajaxRequest.readyState&&(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))){var t=this.baseUrl+this.ajaxRequest.responseXML.getElementsByTagName("page")[0].attributes.getNamedItem("file").nodeValue,e=new PIXI.ImageLoader(t,this.crossorigin);this.texture=e.texture.baseTexture;var i={},r=this.ajaxRequest.responseXML.getElementsByTagName("info")[0],s=this.ajaxRequest.responseXML.getElementsByTagName("common")[0];i.font=r.attributes.getNamedItem("face").nodeValue,i.size=parseInt(r.attributes.getNamedItem("size").nodeValue,10),i.lineHeight=parseInt(s.attributes.getNamedItem("lineHeight").nodeValue,10),i.chars={};for(var n=this.ajaxRequest.responseXML.getElementsByTagName("char"),a=0;n.length>a;a++){var o=parseInt(n[a].attributes.getNamedItem("id").nodeValue,10),h={x:parseInt(n[a].attributes.getNamedItem("x").nodeValue,10),y:parseInt(n[a].attributes.getNamedItem("y").nodeValue,10),width:parseInt(n[a].attributes.getNamedItem("width").nodeValue,10),height:parseInt(n[a].attributes.getNamedItem("height").nodeValue,10)};PIXI.TextureCache[o]=new PIXI.Texture(this.texture,h),i.chars[o]={xOffset:parseInt(n[a].attributes.getNamedItem("xoffset").nodeValue,10),yOffset:parseInt(n[a].attributes.getNamedItem("yoffset").nodeValue,10),xAdvance:parseInt(n[a].attributes.getNamedItem("xadvance").nodeValue,10),kerning:{}}}var u=this.ajaxRequest.responseXML.getElementsByTagName("kerning");for(a=0;u.length>a;a++){var d=parseInt(u[a].attributes.getNamedItem("first").nodeValue,10),c=parseInt(u[a].attributes.getNamedItem("second").nodeValue,10),l=parseInt(u[a].attributes.getNamedItem("amount").nodeValue,10);i.chars[c].kerning[d]=l}PIXI.BitmapText.fonts[i.font]=i;var I=this;e.addEventListener("loaded",function(){I.onLoaded()}),e.load()}},PIXI.BitmapFontLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=PIXI),exports.PIXI=PIXI):root.PIXI=PIXI}).call(this); \ No newline at end of file diff --git a/docs/classes/WebGLRenderer.html b/docs/classes/WebGLRenderer.html index 581cb5a..fcef6b6 100644 --- a/docs/classes/WebGLRenderer.html +++ b/docs/classes/WebGLRenderer.html @@ -498,7 +498,7 @@ - src/pixi/renderers/WebGLRenderer.js:283 + src/pixi/renderers/WebGLRenderer.js:284

diff --git a/docs/data.json b/docs/data.json index 9b4a49d..4b27831 100644 --- a/docs/data.json +++ b/docs/data.json @@ -1388,35 +1388,35 @@ }, { "file": "src/pixi/renderers/WebGLRenderGroup.js", - "line": 523, + "line": 527, "access": "private", "tagname": "", "class": "WebGLBatch" }, { "file": "src/pixi/renderers/WebGLRenderGroup.js", - "line": 607, + "line": 613, "access": "private", "tagname": "", "class": "WebGLBatch" }, { "file": "src/pixi/renderers/WebGLRenderGroup.js", - "line": 663, + "line": 669, "access": "private", "tagname": "", "class": "WebGLBatch" }, { "file": "src/pixi/renderers/WebGLRenderGroup.js", - "line": 740, + "line": 746, "access": "private", "tagname": "", "class": "WebGLBatch" }, { "file": "src/pixi/renderers/WebGLRenderGroup.js", - "line": 777, + "line": 783, "access": "private", "tagname": "", "class": "WebGLBatch" @@ -1465,14 +1465,14 @@ }, { "file": "src/pixi/renderers/WebGLRenderer.js", - "line": 232, + "line": 225, "access": "private", "tagname": "", "class": "WebGLRenderer" }, { "file": "src/pixi/renderers/WebGLRenderer.js", - "line": 283, + "line": 284, "description": "resizes the webGL view to the specified width and height", "itemtype": "method", "name": "resize", @@ -1492,14 +1492,14 @@ }, { "file": "src/pixi/renderers/WebGLRenderer.js", - "line": 307, + "line": 308, "access": "private", "tagname": "", "class": "WebGLRenderer" }, { "file": "src/pixi/renderers/WebGLRenderer.js", - "line": 316, + "line": 317, "access": "private", "tagname": "", "class": "WebGLRenderer" @@ -2908,23 +2908,23 @@ }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderGroup.js:523" + "line": " src/pixi/renderers/WebGLRenderGroup.js:527" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderGroup.js:607" + "line": " src/pixi/renderers/WebGLRenderGroup.js:613" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderGroup.js:663" + "line": " src/pixi/renderers/WebGLRenderGroup.js:669" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderGroup.js:740" + "line": " src/pixi/renderers/WebGLRenderGroup.js:746" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderGroup.js:777" + "line": " src/pixi/renderers/WebGLRenderGroup.js:783" }, { "message": "Missing item type", @@ -2944,15 +2944,15 @@ }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderer.js:232" + "line": " src/pixi/renderers/WebGLRenderer.js:225" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderer.js:307" + "line": " src/pixi/renderers/WebGLRenderer.js:308" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderer.js:316" + "line": " src/pixi/renderers/WebGLRenderer.js:317" }, { "message": "Missing item type", diff --git a/docs/files/src_pixi_renderers_WebGLRenderGroup.js.html b/docs/files/src_pixi_renderers_WebGLRenderGroup.js.html index 7222602..42bcabd 100644 --- a/docs/files/src_pixi_renderers_WebGLRenderGroup.js.html +++ b/docs/files/src_pixi_renderers_WebGLRenderGroup.js.html @@ -177,6 +177,8 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + //PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. @@ -215,6 +217,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + //PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -683,7 +687,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/docs/files/src_pixi_renderers_WebGLRenderer.js.html b/docs/files/src_pixi_renderers_WebGLRenderer.js.html index 0383c4d..551dd19 100644 --- a/docs/files/src_pixi_renderers_WebGLRenderer.js.html +++ b/docs/files/src_pixi_renderers_WebGLRenderer.js.html @@ -306,15 +306,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -366,9 +359,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -400,7 +402,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) diff --git a/examples/example 1 - Basics/pixi.js b/examples/example 1 - Basics/pixi.js index f29080a..3478cf4 100644 --- a/examples/example 1 - Basics/pixi.js +++ b/examples/example 1 - Basics/pixi.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/examples/example 10 - Text/pixi.js b/examples/example 10 - Text/pixi.js index f29080a..3478cf4 100644 --- a/examples/example 10 - Text/pixi.js +++ b/examples/example 10 - Text/pixi.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/examples/example 11 - RenderTexture/index.html b/examples/example 11 - RenderTexture/index.html index efd342b..e4acf76 100644 --- a/examples/example 11 - RenderTexture/index.html +++ b/examples/example 11 - RenderTexture/index.html @@ -15,7 +15,7 @@ diff --git a/examples/example 11 - RenderTexture/pixi.js b/examples/example 11 - RenderTexture/pixi.js index f29080a..3478cf4 100644 --- a/examples/example 11 - RenderTexture/pixi.js +++ b/examples/example 11 - RenderTexture/pixi.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/examples/example 2 - SpriteSheet/pixi.js b/examples/example 2 - SpriteSheet/pixi.js index f29080a..3478cf4 100644 --- a/examples/example 2 - SpriteSheet/pixi.js +++ b/examples/example 2 - SpriteSheet/pixi.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/examples/example 3 - MovieClip/pixi.js b/examples/example 3 - MovieClip/pixi.js index f29080a..3478cf4 100755 --- a/examples/example 3 - MovieClip/pixi.js +++ b/examples/example 3 - MovieClip/pixi.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/examples/example 4 - Balls/pixi.js b/examples/example 4 - Balls/pixi.js index f29080a..3478cf4 100644 --- a/examples/example 4 - Balls/pixi.js +++ b/examples/example 4 - Balls/pixi.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/examples/example 5 - Morph/pixi.js b/examples/example 5 - Morph/pixi.js index f29080a..3478cf4 100644 --- a/examples/example 5 - Morph/pixi.js +++ b/examples/example 5 - Morph/pixi.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/examples/example 6 - Interactivity/pixi.js b/examples/example 6 - Interactivity/pixi.js index f29080a..3478cf4 100644 --- a/examples/example 6 - Interactivity/pixi.js +++ b/examples/example 6 - Interactivity/pixi.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/examples/example 7 - Transparent Background/pixi.js b/examples/example 7 - Transparent Background/pixi.js index f29080a..3478cf4 100644 --- a/examples/example 7 - Transparent Background/pixi.js +++ b/examples/example 7 - Transparent Background/pixi.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/examples/example 8 - Dragging/pixi.js b/examples/example 8 - Dragging/pixi.js index f29080a..3478cf4 100644 --- a/examples/example 8 - Dragging/pixi.js +++ b/examples/example 8 - Dragging/pixi.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/examples/example 9 - Tiling Texture/pixi.js b/examples/example 9 - Tiling Texture/pixi.js index f29080a..3478cf4 100644 --- a/examples/example 9 - Tiling Texture/pixi.js +++ b/examples/example 9 - Tiling Texture/pixi.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/src/pixi/renderers/WebGLRenderGroup.js b/src/pixi/renderers/WebGLRenderGroup.js index d86a055..75710a4 100644 --- a/src/pixi/renderers/WebGLRenderGroup.js +++ b/src/pixi/renderers/WebGLRenderGroup.js @@ -31,6 +31,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -43,23 +45,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -81,6 +81,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -549,7 +551,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/bin/pixi.dev.js b/bin/pixi.dev.js index f29080a..3478cf4 100644 --- a/bin/pixi.dev.js +++ b/bin/pixi.dev.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/bin/pixi.js b/bin/pixi.js index 5f2a13c..a6d54d1 100644 --- a/bin/pixi.js +++ b/bin/pixi.js @@ -4,10 +4,10 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php */ -(function(){function HEXtoRGB(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}function determineMatrixArrayType(){return PIXI.Matrix="undefined"!=typeof Float32Array?Float32Array:Array,PIXI.Matrix}var root=this,PIXI=PIXI||{};PIXI.Point=function(t,e){this.x=t||0,this.y=e||0},PIXI.Point.prototype.clone=function(){return new PIXI.Point(this.x,this.y)},PIXI.Point.constructor=PIXI.Point,PIXI.Rectangle=function(t,e,i,r){this.x=t||0,this.y=e||0,this.width=i||0,this.height=r||0},PIXI.Rectangle.prototype.clone=function(){return new PIXI.Rectangle(this.x,this.y,this.width,this.height)},PIXI.Rectangle.constructor=PIXI.Rectangle,PIXI.DisplayObject=function(){this.position=new PIXI.Point,this.scale=new PIXI.Point(1,1),this.pivot=new PIXI.Point(0,0),this.rotation=0,this.alpha=1,this.visible=!0,this.worldVisible=!1,this.parent=null,this.stage=null,this.hitArea=null,this.worldAlpha=1,this.color=[],this.worldTransform=PIXI.mat3.create(),this.localTransform=PIXI.mat3.create(),this.dynamic=!0,this._sr=0,this._cr=1,this.childIndex=0,this.renderable=!1,this.interactive=!1,this.buttonMode=!1},PIXI.DisplayObject.constructor=PIXI.DisplayObject,PIXI.DisplayObject.prototype.setInteractive=function(t){this.interactive=t,this.stage&&(this.stage.dirty=!0)},PIXI.DisplayObject.prototype.updateTransform=function(){this.rotation!=this.rotationCache&&(this.rotationCache=this.rotation,this._sr=Math.sin(this.rotation),this._cr=Math.cos(this.rotation));var t=this.localTransform,e=this.parent.worldTransform,i=this.worldTransform;t[0]=this._cr*this.scale.x,t[1]=-this._sr*this.scale.y,t[3]=this._sr*this.scale.x,t[4]=this._cr*this.scale.y;var r=this.pivot.x,s=this.pivot.y;t[2]=this.position.x-t[0]*r-s*t[1],t[5]=this.position.y-t[4]*s-r*t[3];var n=t[0],a=t[1],o=t[2],h=t[3],u=t[4],c=t[5],d=e[0],l=e[1],I=e[2],p=e[3],f=e[4],x=e[5];i[0]=d*n+l*h,i[1]=d*a+l*u,i[2]=d*o+l*c+I,i[3]=p*n+f*h,i[4]=p*a+f*u,i[5]=p*o+f*c+x,this.worldAlpha=this.alpha*this.parent.worldAlpha},PIXI.DisplayObjectContainer=function(){PIXI.DisplayObject.call(this),this.children=[],this.renderable=!1},PIXI.DisplayObjectContainer.constructor=PIXI.DisplayObjectContainer,PIXI.DisplayObjectContainer.prototype=Object.create(PIXI.DisplayObject.prototype),PIXI.DisplayObjectContainer.prototype.addChild=function(t){void 0!=t.parent&&t.parent.removeChild(t),t.parent=this,t.childIndex=this.children.length,this.children.push(t),this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},PIXI.DisplayObjectContainer.prototype.addChildAt=function(t,e){if(!(e>=0&&this.children.length>=e))throw Error(t+" The index "+e+" supplied is out of bounds "+this.children.length);void 0!=t.parent&&t.parent.removeChild(t),e==this.children.length?this.children.push(t):this.children.splice(e,0,t),t.parent=this,t.childIndex=e;for(var i=this.children.length,r=e;i>r;r++)this.children[r].childIndex=r;this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},PIXI.DisplayObjectContainer.prototype.swapChildren=function(t,e){var i=this.children.indexOf(t),r=this.children.indexOf(e);if(-1===i||-1===r)throw Error(t+" Both the supplied DisplayObjects must be a child of the caller "+this);this.stage&&(this.stage.__removeChild(t),this.stage.__removeChild(e),this.stage.__addChild(t),this.stage.__addChild(e)),t.childIndex=r,e.childIndex=i,this.children[i]=e,this.children[r]=t},PIXI.DisplayObjectContainer.prototype.getChildAt=function(t){if(t>=0&&this.children.length>t)return this.children[t];throw Error(child+" Both the supplied DisplayObjects must be a child of the caller "+this)},PIXI.DisplayObjectContainer.prototype.removeChild=function(t){var e=this.children.indexOf(t);if(-1===e)throw Error(t+" The supplied DisplayObject must be a child of the caller "+this);this.stage&&this.stage.__removeChild(t),t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.parent=void 0,this.children.splice(e,1);for(var i=e,r=this.children.length;r>i;i++)this.children[i].childIndex-=1},PIXI.DisplayObjectContainer.prototype.updateTransform=function(){if(this.visible){PIXI.DisplayObject.prototype.updateTransform.call(this);for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform()}},PIXI.blendModes={},PIXI.blendModes.NORMAL=0,PIXI.blendModes.SCREEN=1,PIXI.Sprite=function(t){PIXI.DisplayObjectContainer.call(this),this.anchor=new PIXI.Point,this.texture=t,this.blendMode=PIXI.blendModes.NORMAL,this._width=0,this._height=0,t.baseTexture.hasLoaded?this.updateFrame=!0:(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},PIXI.Sprite.constructor=PIXI.Sprite,PIXI.Sprite.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),Object.defineProperty(PIXI.Sprite.prototype,"width",{get:function(){return this.scale.x*this.texture.frame.width},set:function(t){this.scale.x=t/this.texture.frame.width,this._width=t}}),Object.defineProperty(PIXI.Sprite.prototype,"height",{get:function(){return this.scale.y*this.texture.frame.height},set:function(t){this.scale.y=t/this.texture.frame.height,this._height=t}}),PIXI.Sprite.prototype.setTexture=function(t){this.texture.baseTexture!=t.baseTexture&&(this.textureChange=!0),this.texture=t,this.updateFrame=!0},PIXI.Sprite.prototype.onTextureUpdate=function(){this._width&&(this.scale.x=this._width/this.texture.frame.width),this._height&&(this.scale.y=this._height/this.texture.frame.height),this.updateFrame=!0},PIXI.Sprite.fromFrame=function(t){var e=PIXI.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache"+this);return new PIXI.Sprite(e)},PIXI.Sprite.fromImage=function(t){var e=PIXI.Texture.fromImage(t);return new PIXI.Sprite(e)},PIXI.MovieClip=function(t){PIXI.Sprite.call(this,t[0]),this.textures=t,this.currentFrame=0,this.animationSpeed=1,this.loop=!0,this.onComplete=null,this.playing},PIXI.MovieClip.constructor=PIXI.MovieClip,PIXI.MovieClip.prototype=Object.create(PIXI.Sprite.prototype),PIXI.MovieClip.prototype.stop=function(){this.playing=!1},PIXI.MovieClip.prototype.play=function(){this.playing=!0},PIXI.MovieClip.prototype.gotoAndStop=function(t){this.playing=!1,this.currentFrame=t;var e=0|this.currentFrame+.5;this.setTexture(this.textures[e%this.textures.length])},PIXI.MovieClip.prototype.gotoAndPlay=function(t){this.currentFrame=t,this.playing=!0},PIXI.MovieClip.prototype.updateTransform=function(){if(PIXI.Sprite.prototype.updateTransform.call(this),this.playing){this.currentFrame+=this.animationSpeed;var t=0|this.currentFrame+.5;this.loop||this.textures.length>t?this.setTexture(this.textures[t%this.textures.length]):t>=this.textures.length&&(this.gotoAndStop(this.textures.length-1),this.onComplete&&this.onComplete())}},PIXI.Text=function(t,e){this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"),PIXI.Sprite.call(this,PIXI.Texture.fromCanvas(this.canvas)),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},PIXI.Text.constructor=PIXI.Text,PIXI.Text.prototype=Object.create(PIXI.Sprite.prototype),PIXI.Text.prototype.setStyle=function(t){t=t||{},t.font=t.font||"bold 20pt Arial",t.fill=t.fill||"black",t.align=t.align||"left",t.strokeThickness=t.strokeThickness||0,this.style=t,this.dirty=!0},PIXI.Sprite.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},PIXI.Text.prototype.updateText=function(){this.context.font=this.style.font;for(var t=this.text.split(/(?:\r\n|\r|\n)/),e=[],i=0,r=0;t.length>r;r++){var s=this.context.measureText(t[r]).width;e[r]=s,i=Math.max(i,s)}this.canvas.width=i+this.style.strokeThickness;var n=this.determineFontHeight("font: "+this.style.font+";")+this.style.strokeThickness;for(this.canvas.height=n*t.length,this.context.fillStyle=this.style.fill,this.context.font=this.style.font,this.context.strokeStyle=this.style.stroke,this.context.lineWidth=this.style.strokeThickness,this.context.textBaseline="top",r=0;t.length>r;r++){var a=new PIXI.Point(this.style.strokeThickness/2,this.style.strokeThickness/2+r*n);"right"==this.style.align?a.x+=i-e[r]:"center"==this.style.align&&(a.x+=(i-e[r])/2),this.style.stroke&&this.style.strokeThickness&&this.context.strokeText(t[r],a.x,a.y),this.style.fill&&this.context.fillText(t[r],a.x,a.y)}this.updateTexture()},PIXI.Text.prototype.updateTexture=function(){this.texture.baseTexture.width=this.canvas.width,this.texture.baseTexture.height=this.canvas.height,this.texture.frame.width=this.canvas.width,this.texture.frame.height=this.canvas.height,this._width=this.canvas.width,this._height=this.canvas.height,PIXI.texturesToUpdate.push(this.texture.baseTexture)},PIXI.Text.prototype.updateTransform=function(){this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype.updateTransform.call(this)},PIXI.Text.prototype.determineFontHeight=function(t){var e=PIXI.Text.heightCache[t];if(!e){var i=document.getElementsByTagName("body")[0],r=document.createElement("div"),s=document.createTextNode("M");r.appendChild(s),r.setAttribute("style",t),i.appendChild(r),e=r.offsetHeight,PIXI.Text.heightCache[t]=e,i.removeChild(r)}return e},PIXI.Text.prototype.destroy=function(t){t&&this.texture.destroy()},PIXI.Text.heightCache={},PIXI.BitmapText=function(t,e){PIXI.DisplayObjectContainer.call(this),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},PIXI.BitmapText.constructor=PIXI.BitmapText,PIXI.BitmapText.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.BitmapText.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},PIXI.BitmapText.prototype.setStyle=function(t){t=t||{},t.align=t.align||"left",this.style=t;var e=t.font.split(" ");this.fontName=e[e.length-1],this.fontSize=e.length>=2?parseInt(e[e.length-2],10):PIXI.BitmapText.fonts[this.fontName].size,this.dirty=!0},PIXI.BitmapText.prototype.updateText=function(){for(var t=PIXI.BitmapText.fonts[this.fontName],e=new PIXI.Point,i=null,r=[],s=0,n=[],a=0,o=this.fontSize/t.size,h=0;this.text.length>h;h++){var u=this.text.charCodeAt(h);if(/(?:\r\n|\r|\n)/.test(this.text.charAt(h)))n.push(e.x),s=Math.max(s,e.x),a++,e.x=0,e.y+=t.lineHeight,i=null;else{var c=t.chars[u];c&&(i&&c[i]&&(e.x+=c.kerning[i]),r.push({line:a,charCode:u,position:new PIXI.Point(e.x+c.xOffset,e.y+c.yOffset)}),e.x+=c.xAdvance,i=u)}}n.push(e.x),s=Math.max(s,e.x);var d=[];for(h=0;a>=h;h++){var l=0;"right"==this.style.align?l=s-n[h]:"center"==this.style.align&&(l=(s-n[h])/2),d.push(l)}for(h=0;r.length>h;h++){var I=PIXI.Sprite.fromFrame(r[h].charCode);I.position.x=(r[h].position.x+d[r[h].line])*o,I.position.y=r[h].position.y*o,I.scale.x=I.scale.y=o,this.addChild(I)}this.width=e.x*o,this.height=(e.y+t.lineHeight)*o},PIXI.BitmapText.prototype.updateTransform=function(){if(this.dirty){for(;this.children.length>0;)this.removeChild(this.getChildAt(0));this.updateText(),this.dirty=!1}PIXI.DisplayObjectContainer.prototype.updateTransform.call(this)},PIXI.BitmapText.fonts={},PIXI.InteractionManager=function(t){this.stage=t,this.tempPoint=new PIXI.Point,this.mouseoverEnabled=!0,this.mouse=new PIXI.InteractionData,this.touchs={},this.pool=[],this.interactiveItems=[],this.last=0},PIXI.InteractionManager.constructor=PIXI.InteractionManager,PIXI.InteractionManager.prototype.collectInteractiveSprite=function(t,e){for(var i=t.children,r=i.length,s=r-1;s>=0;s--){var n=i[s];n.interactive?(e.interactiveChildren=!0,this.interactiveItems.push(n),n.children.length>0&&this.collectInteractiveSprite(n,n)):(n.__iParent=null,n.children.length>0&&this.collectInteractiveSprite(n,e))}},PIXI.InteractionManager.prototype.setTarget=function(t){window.navigator.msPointerEnabled&&(t.view.style["-ms-content-zooming"]="none",t.view.style["-ms-touch-action"]="none"),this.target=t,t.view.addEventListener("mousemove",this.onMouseMove.bind(this),!0),t.view.addEventListener("mousedown",this.onMouseDown.bind(this),!0),document.body.addEventListener("mouseup",this.onMouseUp.bind(this),!0),t.view.addEventListener("mouseout",this.onMouseUp.bind(this),!0),t.view.addEventListener("touchstart",this.onTouchStart.bind(this),!0),t.view.addEventListener("touchend",this.onTouchEnd.bind(this),!0),t.view.addEventListener("touchmove",this.onTouchMove.bind(this),!0)},PIXI.InteractionManager.prototype.update=function(){if(this.target){var t=Date.now(),e=t-this.last;if(e=30*e/1e3,!(1>e)){if(this.last=t,this.dirty){this.dirty=!1,this.interactiveItems.length;for(var i=0;this.interactiveItems.length>i;i++)this.interactiveItems[i].interactiveChildren=!1;this.interactiveItems=[],this.stage.interactive&&this.interactiveItems.push(this.stage),this.collectInteractiveSprite(this.stage,this.stage)}var r=this.interactiveItems.length;this.target.view.style.cursor="default";for(var i=0;r>i;i++){var s=this.interactiveItems[i];s.visible&&(s.mouseover||s.mouseout||s.buttonMode)&&(s.__hit=this.hitTest(s,this.mouse),s.__hit?(s.buttonMode&&(this.target.view.style.cursor="pointer"),s.__isOver||(s.mouseover&&s.mouseover(this.mouse),s.__isOver=!0)):s.__isOver&&(s.mouseout&&s.mouseout(this.mouse),s.__isOver=!1))}}}},PIXI.InteractionManager.prototype.onMouseMove=function(t){t.preventDefault();var e=this.target.view.getBoundingClientRect();this.mouse.global.x=(t.clientX-e.left)*(this.target.width/e.width),this.mouse.global.y=(t.clientY-e.top)*(this.target.height/e.height);var i=this.interactiveItems.length;this.mouse.global;for(var r=0;i>r;r++){var s=this.interactiveItems[r];s.mousemove&&s.mousemove(this.mouse)}},PIXI.InteractionManager.prototype.onMouseDown=function(t){t.preventDefault();var e=this.interactiveItems.length;this.mouse.global,this.stage;for(var i=0;e>i;i++){var r=this.interactiveItems[i];if((r.mousedown||r.click)&&(r.__mouseIsDown=!0,r.__hit=this.hitTest(r,this.mouse),r.__hit&&(r.mousedown&&r.mousedown(this.mouse),r.__isDown=!0,!r.interactiveChildren)))break}},PIXI.InteractionManager.prototype.onMouseUp=function(t){t.preventDefault(),this.mouse.global;for(var e=this.interactiveItems.length,i=!1,r=0;e>r;r++){var s=this.interactiveItems[r];(s.mouseup||s.mouseupoutside||s.click)&&(s.__hit=this.hitTest(s,this.mouse),s.__hit&&!i?(s.mouseup&&s.mouseup(this.mouse),s.__isDown&&s.click&&s.click(this.mouse),s.interactiveChildren||(i=!0)):s.__isDown&&s.mouseupoutside&&s.mouseupoutside(this.mouse),s.__isDown=!1)}},PIXI.InteractionManager.prototype.hitTest=function(t,e){var i=e.global;if(!t.visible)return!1;if(t instanceof PIXI.Sprite){var r=t.worldTransform,s=r[0],n=r[1],a=r[2],o=r[3],h=r[4],u=r[5],c=1/(s*h+n*-o),d=h*c*i.x+-n*c*i.y+(u*n-a*h)*c,l=s*c*i.y+-o*c*i.x+(-u*s+a*o)*c,I=t.texture.frame.width,p=t.texture.frame.height,f=-I*t.anchor.x;if(d>f&&f+I>d){var x=-p*t.anchor.y;if(l>x&&x+p>l)return e.target=t,!0}}else if(t.hitArea){var r=t.worldTransform,v=t.hitArea,s=r[0],n=r[1],a=r[2],o=r[3],h=r[4],u=r[5],c=1/(s*h+n*-o),d=h*c*i.x+-n*c*i.y+(u*n-a*h)*c,l=s*c*i.y+-o*c*i.x+(-u*s+a*o)*c,f=v.x;if(d>f&&f+v.width>d){var x=v.y;if(l>x&&x+v.height>l)return!0}}for(var P=t.children.length,g=0;P>g;g++){var b=t.children[g],X=this.hitTest(b,e);if(X)return!0}return!1},PIXI.InteractionManager.prototype.onTouchMove=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.touchs[s.identifier];n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height)}for(var a=this.interactiveItems.length,r=0;a>r;r++){var o=this.interactiveItems[r];o.touchmove&&o.touchmove(n)}},PIXI.InteractionManager.prototype.onTouchStart=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.pool.pop();n||(n=new PIXI.InteractionData),this.touchs[s.identifier]=n,n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height);for(var a=this.interactiveItems.length,o=0;a>o;o++){var h=this.interactiveItems[o];if((h.touchstart||h.tap)&&(h.__hit=this.hitTest(h,n),h.__hit&&(h.touchstart&&h.touchstart(n),h.__isDown=!0,h.__touchData=n,!h.interactiveChildren)))break}}},PIXI.InteractionManager.prototype.onTouchEnd=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.touchs[s.identifier],a=!1;n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var u=this.interactiveItems[h],c=u.__touchData;u.__hit=this.hitTest(u,n),c==n&&((u.touchend||u.tap)&&(u.__hit&&!a?(u.touchend&&u.touchend(n),u.__isDown&&u.tap&&u.tap(n),u.interactiveChildren||(a=!0)):u.__isDown&&u.touchendoutside&&u.touchendoutside(n),u.__isDown=!1),u.__touchData=null)}this.pool.push(n),this.touchs[s.identifier]=null}},PIXI.InteractionData=function(){this.global=new PIXI.Point,this.local=new PIXI.Point,this.target},PIXI.InteractionData.prototype.getLocalPosition=function(t){var e=t.worldTransform,i=this.global,r=e[0],s=e[1],n=e[2],a=e[3],o=e[4],h=e[5],u=1/(r*o+s*-a);return new PIXI.Point(o*u*i.x+-s*u*i.y+(h*s-n*o)*u,r*u*i.y+-a*u*i.x+(-h*r+n*a)*u)},PIXI.InteractionData.constructor=PIXI.InteractionData,PIXI.Stage=function(t,e){PIXI.DisplayObjectContainer.call(this),this.worldTransform=PIXI.mat3.create(),this.__childrenAdded=[],this.__childrenRemoved=[],this.childIndex=0,this.stage=this,this.stage.hitArea=new PIXI.Rectangle(0,0,1e5,1e5),this.interactive=!!e,this.interactionManager=new PIXI.InteractionManager(this),this.setBackgroundColor(t),this.worldVisible=!0},PIXI.Stage.constructor=PIXI.Stage,PIXI.Stage.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Stage.prototype.updateTransform=function(){this.worldAlpha=1;for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform();this.dirty&&(this.dirty=!1,this.interactionManager.dirty=!0),this.interactive&&this.interactionManager.update()},PIXI.Stage.prototype.setBackgroundColor=function(t){this.backgroundColor=t||0,this.backgroundColorSplit=HEXtoRGB(this.backgroundColor),this.backgroundColorString="#"+this.backgroundColor.toString(16)},PIXI.Stage.prototype.getMousePosition=function(){return this.interactionManager.mouse.global},PIXI.Stage.prototype.__addChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=this,t.children)for(var e=0;t.children.length>e;e++)this.__addChild(t.children[e])},PIXI.Stage.prototype.__removeChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=void 0,t.children)for(var e=0,i=t.children.length;i>e;e++)this.__removeChild(t.children[e])},window.requestAnimFrame=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(t){window.setTimeout(t,1e3/60)}}(),"function"!=typeof Function.prototype.bind&&(Function.prototype.bind=function(){var t=Array.prototype.slice;return function(e){function i(){var n=s.concat(t.call(arguments));r.apply(this instanceof i?this:e,n)}var r=this,s=t.call(arguments,1);if("function"!=typeof r)throw new TypeError;return i.prototype=function n(t){return t&&(n.prototype=t),this instanceof n?void 0:new n}(r.prototype),i}}());var AjaxRequest=function(){var t=["Msxml2.XMLHTTP","Microsoft.XMLHTTP"];if(!window.ActiveXObject)return window.XMLHttpRequest?new XMLHttpRequest:!1;for(var e=0;t.length>e;e++)try{return new ActiveXObject(t[e])}catch(i){}};PIXI.EventTarget=function(){var t={};this.addEventListener=this.on=function(e,i){void 0===t[e]&&(t[e]=[]),-1===t[e].indexOf(i)&&t[e].push(i)},this.dispatchEvent=this.emit=function(e){for(var i in t[e.type])t[e.type][i](e)},this.removeEventListener=this.off=function(e,i){var r=t[e].indexOf(i);-1!==r&&t[e].splice(r,1)}},determineMatrixArrayType(),PIXI.mat3={},PIXI.mat3.create=function(){var t=new PIXI.Matrix(9);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},PIXI.mat4={},PIXI.mat4.create=function(){var t=new PIXI.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},PIXI.mat3.multiply=function(t,e,i){i||(i=t);var r=t[0],s=t[1],n=t[2],a=t[3],o=t[4],h=t[5],u=t[6],c=t[7],d=t[8],l=e[0],I=e[1],p=e[2],f=e[3],x=e[4],v=e[5],P=e[6],g=e[7],b=e[8];return i[0]=l*r+I*a+p*u,i[1]=l*s+I*o+p*c,i[2]=l*n+I*h+p*d,i[3]=f*r+x*a+v*u,i[4]=f*s+x*o+v*c,i[5]=f*n+x*h+v*d,i[6]=P*r+g*a+b*u,i[7]=P*s+g*o+b*c,i[8]=P*n+g*h+b*d,i},PIXI.mat3.toMat4=function(t,e){return e||(e=PIXI.mat4.create()),e[15]=1,e[14]=0,e[13]=0,e[12]=0,e[11]=0,e[10]=t[8],e[9]=t[7],e[8]=t[6],e[7]=0,e[6]=t[5],e[5]=t[4],e[4]=t[3],e[3]=0,e[2]=t[2],e[1]=t[1],e[0]=t[0],e},PIXI.mat4.create=function(){var t=new PIXI.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},PIXI.mat4.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],s=t[3],n=t[6],a=t[7],o=t[11];return t[1]=t[4],t[2]=t[8],t[3]=t[12],t[4]=i,t[6]=t[9],t[7]=t[13],t[8]=r,t[9]=n,t[11]=t[14],t[12]=s,t[13]=a,t[14]=o,t}return e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=t[1],e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=t[2],e[9]=t[6],e[10]=t[10],e[11]=t[14],e[12]=t[3],e[13]=t[7],e[14]=t[11],e[15]=t[15],e},PIXI.mat4.multiply=function(t,e,i){i||(i=t);var r=t[0],s=t[1],n=t[2],a=t[3],o=t[4],h=t[5],u=t[6],c=t[7],d=t[8],l=t[9],I=t[10],p=t[11],f=t[12],x=t[13],v=t[14],P=t[15],g=e[0],b=e[1],X=e[2],m=e[3];return i[0]=g*r+b*o+X*d+m*f,i[1]=g*s+b*h+X*l+m*x,i[2]=g*n+b*u+X*I+m*v,i[3]=g*a+b*c+X*p+m*P,g=e[4],b=e[5],X=e[6],m=e[7],i[4]=g*r+b*o+X*d+m*f,i[5]=g*s+b*h+X*l+m*x,i[6]=g*n+b*u+X*I+m*v,i[7]=g*a+b*c+X*p+m*P,g=e[8],b=e[9],X=e[10],m=e[11],i[8]=g*r+b*o+X*d+m*f,i[9]=g*s+b*h+X*l+m*x,i[10]=g*n+b*u+X*I+m*v,i[11]=g*a+b*c+X*p+m*P,g=e[12],b=e[13],X=e[14],m=e[15],i[12]=g*r+b*o+X*d+m*f,i[13]=g*s+b*h+X*l+m*x,i[14]=g*n+b*u+X*I+m*v,i[15]=g*a+b*c+X*p+m*P,i},PIXI.autoDetectRenderer=function(t,e,i,r){t||(t=800),e||(e=600);var s=function(){try{return!!window.WebGLRenderingContext&&!!document.createElement("canvas").getContext("experimental-webgl")}catch(t){return!1}}();return s?new PIXI.WebGLRenderer(t,e,i,r):new PIXI.CanvasRenderer(t,e,i,r)},PIXI.shaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * vColor;","}"],PIXI.shaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform mat4 uMVMatrix;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","gl_Position = uMVMatrix * vec4(aVertexPosition, 1.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],PIXI.CompileVertexShader=function(t,e){return PIXI._CompileShader(t,e,t.VERTEX_SHADER)},PIXI.CompileFragmentShader=function(t,e){return PIXI._CompileShader(t,e,t.FRAGMENT_SHADER)},PIXI._CompileShader=function(t,e,i){var r=e.join("\n"),s=t.createShader(i);return t.shaderSource(s,r),t.compileShader(s),t.getShaderParameter(s,t.COMPILE_STATUS)?s:(alert(t.getShaderInfoLog(s)),null)},PIXI._defaultFrame=new PIXI.Rectangle(0,0,1,1),PIXI.gl,PIXI.WebGLRenderer=function(t,e,i,r){this.transparent=!!r,this.width=t||800,this.height=e||600,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height;var s=this;this.view.addEventListener("webglcontextlost",function(t){s.handleContextLost(t)},!1),this.view.addEventListener("webglcontextrestored",function(t){s.handleContextRestored(t)},!1),this.batchs=[];try{PIXI.gl=this.gl=this.view.getContext("experimental-webgl",{alpha:this.transparent,antialias:!1,premultipliedAlpha:!0})}catch(n){throw Error(" This browser does not support webGL. Try using the canvas renderer"+this)}this.initShaders();var a=this.gl;PIXI.WebGLRenderer.gl=a,this.batch=new PIXI.WebGLBatch(a),a.disable(a.DEPTH_TEST),a.disable(a.CULL_FACE),a.enable(a.BLEND),a.colorMask(!0,!0,!0,this.transparent),this.projectionMatrix=PIXI.mat4.create(),this.resize(this.width,this.height),this.contextLost=!1,this.stageRenderGroup=new PIXI.WebGLRenderGroup(this.gl)},PIXI.WebGLRenderer.constructor=PIXI.WebGLRenderer,PIXI.WebGLRenderer.getBatch=function(){return 0==PIXI._batchs.length?new PIXI.WebGLBatch(PIXI.WebGLRenderer.gl):PIXI._batchs.pop()},PIXI.WebGLRenderer.returnBatch=function(t){t.clean(),PIXI._batchs.push(t)},PIXI.WebGLRenderer.prototype.initShaders=function(){var t=this.gl,e=PIXI.CompileFragmentShader(t,PIXI.shaderFragmentSrc),i=PIXI.CompileVertexShader(t,PIXI.shaderVertexSrc);PIXI.shaderProgram=t.createProgram();var r=PIXI.shaderProgram;t.attachShader(r,i),t.attachShader(r,e),t.linkProgram(r),t.getProgramParameter(r,t.LINK_STATUS)||alert("Could not initialise shaders"),t.useProgram(r),r.vertexPositionAttribute=t.getAttribLocation(r,"aVertexPosition"),t.enableVertexAttribArray(r.vertexPositionAttribute),r.textureCoordAttribute=t.getAttribLocation(r,"aTextureCoord"),t.enableVertexAttribArray(r.textureCoordAttribute),r.colorAttribute=t.getAttribLocation(r,"aColor"),t.enableVertexAttribArray(r.colorAttribute),r.mvMatrixUniform=t.getUniformLocation(r,"uMVMatrix"),r.samplerUniform=t.getUniformLocation(r,"uSampler")},PIXI.WebGLRenderer.prototype.render=function(t){if(!this.contextLost){this.__stage!==t&&(this.__stage=t,this.stageRenderGroup.setRenderable(t));for(var e=0;PIXI.texturesToUpdate.length>e;e++)this.updateTexture(PIXI.texturesToUpdate[e]);for(var e=0;PIXI.texturesToDestroy.length>e;e++)this.destroyTexture(PIXI.texturesToDestroy[e]);PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[],t.updateTransform();var i=this.gl;if(i.colorMask(!0,!0,!0,this.transparent),i.viewport(0,0,this.width,this.height),i.bindFramebuffer(i.FRAMEBUFFER,null),i.clearColor(t.backgroundColorSplit[0],t.backgroundColorSplit[1],t.backgroundColorSplit[2],this.transparent),i.clear(i.COLOR_BUFFER_BIT),this.stageRenderGroup.backgroundColor=t.backgroundColorSplit,this.stageRenderGroup.render(this.projectionMatrix),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),PIXI.Texture.frameUpdates.length>0){for(var e=0;PIXI.Texture.frameUpdates.length>e;e++)PIXI.Texture.frameUpdates[e].updateFrame=!1;PIXI.Texture.frameUpdates=[]}}},PIXI.WebGLRenderer.prototype.updateTexture=function(t){var e=this.gl;t._glTexture||(t._glTexture=e.createTexture()),t.hasLoaded&&(e.bindTexture(e.TEXTURE_2D,t._glTexture),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t.source),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),t._powerOf2?(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT)):(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)),e.bindTexture(e.TEXTURE_2D,null)),this.refreshBatchs=!0},PIXI.WebGLRenderer.prototype.destroyTexture=function(t){var e=this.gl;t._glTexture&&(t._glTexture=e.createTexture(),e.deleteTexture(e.TEXTURE_2D,t._glTexture))},PIXI.WebGLRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e,this.gl.viewport(0,0,this.width,this.height);var i=this.projectionMatrix;i[0]=2/this.width,i[5]=-2/this.height,i[12]=-1,i[13]=1},PIXI.WebGLRenderer.prototype.handleContextLost=function(t){t.preventDefault(),this.contextLost=!0},PIXI.WebGLRenderer.prototype.handleContextRestored=function(){this.gl=this.view.getContext("experimental-webgl",{alpha:!0}),this.initShaders();for(var t=0;PIXI.TextureCache.length>t;t++)this.updateTexture(PIXI.TextureCache[t]);for(var t=0;this.batchs.length>t;t++)this.batchs[t].restoreLostContext(this.gl),this.batchs[t].dirty=!0;PIXI._restoreBatchs(this.gl),this.contextLost=!1},PIXI._batchs=[],PIXI._getBatch=function(t){return 0==PIXI._batchs.length?new PIXI.WebGLBatch(t):PIXI._batchs.pop()},PIXI._returnBatch=function(t){t.clean(),PIXI._batchs.push(t)},PIXI._restoreBatchs=function(t){for(var e=0;PIXI._batchs.length>e;e++)PIXI._batchs[e].restoreLostContext(t)},PIXI.WebGLBatch=function(t){this.gl=t,this.size=0,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer(),this.blendMode=PIXI.blendModes.NORMAL,this.dynamicSize=1},PIXI.WebGLBatch.constructor=PIXI.WebGLBatch,PIXI.WebGLBatch.prototype.clean=function(){this.verticies=[],this.uvs=[],this.indices=[],this.colors=[],this.dynamicSize=1,this.texture=null,this.last=null,this.size=0,this.head,this.tail},PIXI.WebGLBatch.prototype.restoreLostContext=function(t){this.gl=t,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer()},PIXI.WebGLBatch.prototype.init=function(t){t.batch=this,this.dirty=!0,this.blendMode=t.blendMode,this.texture=t.texture.baseTexture,this.head=t,this.tail=t,this.size=1,this.growBatch()},PIXI.WebGLBatch.prototype.insertBefore=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__prev;e.__prev=t,t.__next=e,i?(t.__prev=i,i.__next=t):this.head=t},PIXI.WebGLBatch.prototype.insertAfter=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__next;e.__next=t,t.__prev=e,i?(t.__next=i,i.__prev=t):this.tail=t},PIXI.WebGLBatch.prototype.remove=function(t){return this.size--,0==this.size?(t.batch=null,t.__prev=null,t.__next=null,void 0):(t.__prev?t.__prev.__next=t.__next:(this.head=t.__next,this.head.__prev=null),t.__next?t.__next.__prev=t.__prev:(this.tail=t.__prev,this.tail.__next=null),t.batch=null,t.__next=null,t.__prev=null,this.dirty=!0,void 0)},PIXI.WebGLBatch.prototype.split=function(t){this.dirty=!0;var e=new PIXI.WebGLBatch(this.gl);e.init(t),e.tail=this.tail,this.tail=t.__prev,this.tail.__next=null,t.__prev=null;for(var i=0;t;)i++,t.batch=e,t=t.__next;return e.size=i,this.size-=i,e},PIXI.WebGLBatch.prototype.merge=function(t){this.dirty=!0,this.tail.__next=t.head,t.head.__prev=this.tail,this.size+=t.size,this.tail=t.tail;for(var e=t.head;e;)e.batch=this,e=e.__next},PIXI.WebGLBatch.prototype.growBatch=function(){var t=this.gl;this.dynamicSize=1==this.size?1:1.5*this.size,this.verticies=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.vertexBuffer),t.bufferData(t.ARRAY_BUFFER,this.verticies,t.DYNAMIC_DRAW),this.uvs=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.uvBuffer),t.bufferData(t.ARRAY_BUFFER,this.uvs,t.DYNAMIC_DRAW),this.dirtyUVS=!0,this.colors=new Float32Array(4*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.colorBuffer),t.bufferData(t.ARRAY_BUFFER,this.colors,t.DYNAMIC_DRAW),this.dirtyColors=!0,this.indices=new Uint16Array(6*this.dynamicSize);for(var e=this.indices.length/6,i=0;e>i;i++){var r=6*i,s=4*i;this.indices[r+0]=s+0,this.indices[r+1]=s+1,this.indices[r+2]=s+2,this.indices[r+3]=s+0,this.indices[r+4]=s+2,this.indices[r+5]=s+3}t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,this.indexBuffer),t.bufferData(t.ELEMENT_ARRAY_BUFFER,this.indices,t.STATIC_DRAW)},PIXI.WebGLBatch.prototype.refresh=function(){this.gl,this.dynamicSizei;i++)this.removeDisplayObjectAndChildren(this.toRemove[i]);this.toRemove=[],this.checkVisibility(this.root,this.root.visible);for(var r,i=0;this.batchs.length>i;i++)r=this.batchs[i],r instanceof PIXI.WebGLBatch?this.batchs[i].render():r instanceof PIXI.TilingSprite?r.visible&&this.renderTilingSprite(r,t):r instanceof PIXI.Strip&&r.visible&&this.renderStrip(r,t)},PIXI.WebGLRenderGroup.prototype.renderSpecific=function(t,e){var i=this.gl;this.checkVisibility(t,t.visible),i.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform,!1,e);var r,s,n,a,o=t.renderable?t:this.getNextRenderable(t),h=o.batch;if(o instanceof PIXI.Sprite){h=o.batch;var u=h.head;if(u==o)r=0;else for(r=1;u.__next!=o;)r++,u=u.__next}else h=o;for(var c,d=t,l=t;l.children.length>0;)l=l.children[l.children.length-1],l.renderable&&(d=l);if(d instanceof PIXI.Sprite){c=d.batch;var u=c.head;if(u==d)n=0;else for(n=1;u.__next!=d;)n++,u=u.__next}else c=d;if(h==c)return h instanceof PIXI.WebGLBatch?h.render(r,n+1):h instanceof PIXI.TilingSprite?h.visible&&this.renderTilingSprite(h,e):h instanceof PIXI.Strip?h.visible&&this.renderStrip(h,e):h instanceof PIXI.CustomRenderable&&h.visible&&h.renderWebGL(this,e),void 0;s=this.batchs.indexOf(h),a=this.batchs.indexOf(c),h instanceof PIXI.WebGLBatch?h.render(r):h instanceof PIXI.TilingSprite?h.visible&&this.renderTilingSprite(h,e):h instanceof PIXI.Strip?h.visible&&this.renderStrip(h,e):h instanceof PIXI.CustomRenderable&&h.visible&&h.renderWebGL(this,e);for(var I=s+1;a>I;I++)renderable=this.batchs[I],renderable instanceof PIXI.WebGLBatch?this.batchs[I].render():renderable instanceof PIXI.TilingSprite?renderable.visible&&this.renderTilingSprite(renderable,e):renderable instanceof PIXI.Strip?renderable.visible&&this.renderStrip(renderable,e):renderable instanceof PIXI.CustomRenderable&&renderable.visible&&renderable.renderWebGL(this,e);c instanceof PIXI.WebGLBatch?c.render(0,n+1):c instanceof PIXI.TilingSprite?c.visible&&this.renderTilingSprite(c):c instanceof PIXI.Strip?c.visible&&this.renderStrip(c):c instanceof PIXI.CustomRenderable&&c.visible&&c.renderWebGL(this,e)},PIXI.WebGLRenderGroup.prototype.checkVisibility=function(t,e){for(var i=t.children,r=0;i.length>r;r++){var s=i[r];s.worldVisible=s.visible&&e,s.textureChange&&(s.textureChange=!1,s.worldVisible&&(this.removeDisplayObject(s),this.addDisplayObject(s))),s.children.length>0&&this.checkVisibility(s,s.worldVisible)}},PIXI.WebGLRenderGroup.prototype.addDisplayObject=function(t){if(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.__renderGroup=this,t.renderable){var e=this.getPreviousRenderable(t),i=this.getNextRenderable(t);if(t instanceof PIXI.Sprite){var r,s;if(e instanceof PIXI.Sprite){if(r=e.batch,r&&r.texture==t.texture.baseTexture&&r.blendMode==t.blendMode)return r.insertAfter(t,e),void 0}else r=e;if(i)if(i instanceof PIXI.Sprite){if(s=i.batch){if(s.texture==t.texture.baseTexture&&s.blendMode==t.blendMode)return s.insertBefore(t,i),void 0;if(s==r){var n=r.split(i),a=PIXI.WebGLRenderer.getBatch(),o=this.batchs.indexOf(r);return a.init(t),this.batchs.splice(o+1,0,a,n),void 0}}}else s=i;var a=PIXI.WebGLRenderer.getBatch();if(a.init(t),r){var o=this.batchs.indexOf(r);this.batchs.splice(o+1,0,a)}else this.batchs.push(a)}else t instanceof PIXI.TilingSprite?(this.initTilingSprite(t),this.batchs.push(t)):t instanceof PIXI.Strip&&(this.initStrip(t),this.batchs.push(t));this.batchUpdate=!0}},PIXI.WebGLRenderGroup.prototype.addDisplayObjectAndChildren=function(t){this.addDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.addDisplayObjectAndChildren(e[i])},PIXI.WebGLRenderGroup.prototype.removeDisplayObject=function(t){if(t.__renderGroup=null,t.renderable){var e;if(t instanceof PIXI.Sprite){var i=t.batch;if(!i)return;i.remove(t),0==i.size&&(e=i)}else e=t;if(e){var r=this.batchs.indexOf(e);if(-1==r)return;if(0==r||r==this.batchs.length-1)return this.batchs.splice(r,1),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e),void 0;if(this.batchs[r-1]instanceof PIXI.WebGLBatch&&this.batchs[r+1]instanceof PIXI.WebGLBatch&&this.batchs[r-1].texture==this.batchs[r+1].texture&&this.batchs[r-1].blendMode==this.batchs[r+1].blendMode)return this.batchs[r-1].merge(this.batchs[r+1]),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e),PIXI.WebGLRenderer.returnBatch(this.batchs[r+1]),this.batchs.splice(r,2),void 0;this.batchs.splice(r,1),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e)}}},PIXI.WebGLRenderGroup.prototype.removeDisplayObjectAndChildren=function(t){if(t.__renderGroup==this){this.removeDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.removeDisplayObjectAndChildren(e[i])}},PIXI.WebGLRenderGroup.prototype.getNextRenderable=function(t){var e=t;do{if(0==e.children.length){if(!e.parent)return null;for(;e.childIndex==e.parent.children.length-1;)if(e=e.parent,e==this.root){e=null;break}e&&(e=e.parent.children[e.childIndex+1])}else e=e.children[0];if(!e)break}while(!e.renderable||!e.__renderGroup);return e},PIXI.WebGLRenderGroup.prototype.getPreviousRenderable=function(t){var e=t;do{if(0==e.childIndex){if(e=e.parent,!e)return null}else for(e=e.parent.children[e.childIndex-1];0!=e.children.length;)e=e.children[e.children.length-1];if(e==this.root)break}while(!e.renderable||!e.__renderGroup);return e},PIXI.WebGLRenderGroup.prototype.initTilingSprite=function(t){var e=this.gl;t.verticies=new Float32Array([0,0,t.width,0,t.width,t.height,0,t.height]),t.uvs=new Float32Array([0,0,1,0,1,1,0,1]),t.colors=new Float32Array([1,1,1,1]),t.indices=new Uint16Array([0,1,3,2]),t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW),t.texture.baseTexture._glTexture?(e.bindTexture(e.TEXTURE_2D,t.texture.baseTexture._glTexture),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT),t.texture.baseTexture._powerOf2=!0):t.texture.baseTexture._powerOf2=!0},PIXI.WebGLRenderGroup.prototype.renderStrip=function(t,e){var i=this.gl,r=PIXI.shaderProgram,s=PIXI.mat3.toMat4(t.worldTransform);PIXI.mat4.transpose(s),PIXI.mat4.multiply(e,s,s),i.uniformMatrix4fv(r.mvMatrixUniform,!1,s),t.blendMode==PIXI.blendModes.NORMAL?i.blendFunc(i.ONE,i.ONE_MINUS_SRC_ALPHA):i.blendFunc(i.ONE,i.ONE_MINUS_SRC_COLOR),t.dirty?(t.dirty=!1,i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferData(i.ARRAY_BUFFER,t.verticies,i.STATIC_DRAW),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferData(i.ARRAY_BUFFER,t.uvs,i.STATIC_DRAW),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.bufferData(i.ARRAY_BUFFER,t.colors,i.STATIC_DRAW),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer),i.bufferData(i.ELEMENT_ARRAY_BUFFER,t.indices,i.STATIC_DRAW)):(i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.verticies),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer)),i.drawElements(i.TRIANGLE_STRIP,t.indices.length,i.UNSIGNED_SHORT,0),i.uniformMatrix4fv(r.mvMatrixUniform,!1,e)},PIXI.WebGLRenderGroup.prototype.renderTilingSprite=function(t,e){var i=this.gl;PIXI.shaderProgram;var r=t.tilePosition,s=t.tileScale,n=r.x/t.texture.baseTexture.width,a=r.y/t.texture.baseTexture.height,o=t.width/t.texture.baseTexture.width/s.x,h=t.height/t.texture.baseTexture.height/s.y;t.uvs[0]=0-n,t.uvs[1]=0-a,t.uvs[2]=1*o-n,t.uvs[3]=0-a,t.uvs[4]=1*o-n,t.uvs[5]=1*h-a,t.uvs[6]=0-n,t.uvs[7]=1*h-a,i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.uvs),this.renderStrip(t,e)},PIXI.WebGLRenderer.prototype.initStrip=function(t){var e=this.gl;this.shaderProgram,t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW)},PIXI.CanvasRenderer=function(t,e,i,r){this.transparent=r,this.width=t||800,this.height=e||600,this.refresh=!0,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height,this.count=0,this.context=this.view.getContext("2d")},PIXI.CanvasRenderer.constructor=PIXI.CanvasRenderer,PIXI.CanvasRenderer.prototype.render=function(t){PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[],t.updateTransform(),this.view.style.backgroundColor==t.backgroundColorString||this.transparent||(this.view.style.backgroundColor=t.backgroundColorString),this.context.setTransform(1,0,0,1,0,0),this.context.clearRect(0,0,this.width,this.height),this.renderDisplayObject(t),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),PIXI.Texture.frameUpdates.length>0&&(PIXI.Texture.frameUpdates=[])},PIXI.CanvasRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e},PIXI.CanvasRenderer.prototype.renderDisplayObject=function(t){var e=t.worldTransform,i=this.context;if(t.visible){if(t instanceof PIXI.Sprite){var r=t.texture.frame;r&&(i.globalAlpha=t.worldAlpha,i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),i.drawImage(t.texture.baseTexture.source,r.x,r.y,r.width,r.height,t.anchor.x*-r.width,t.anchor.y*-r.height,r.width,r.height))}else t instanceof PIXI.Strip?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderStrip(t)):t instanceof PIXI.TilingSprite?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderTilingSprite(t)):t instanceof PIXI.CustomRenderable&&t.renderCanvas(this);for(var s=0;t.children.length>s;s++)this.renderDisplayObject(t.children[s]);this.context.setTransform(1,0,0,1,0,0)}},PIXI.CanvasRenderer.prototype.renderStripFlat=function(t){var e=this.context,i=t.verticies;t.uvs;var r=i.length/2;this.count++,e.beginPath();for(var s=1;r-2>s;s++){var n=2*s,a=i[n],o=i[n+2],h=i[n+4],u=i[n+1],c=i[n+3],d=i[n+5];e.moveTo(a,u),e.lineTo(o,c),e.lineTo(h,d)}e.fillStyle="#FF0000",e.fill(),e.closePath()},PIXI.CanvasRenderer.prototype.renderTilingSprite=function(t){var e=this.context;t.__tilePattern||(t.__tilePattern=e.createPattern(t.texture.baseTexture.source,"repeat")),e.beginPath();var i=t.tilePosition,r=t.tileScale;e.scale(r.x,r.y),e.translate(i.x,i.y),e.fillStyle=t.__tilePattern,e.fillRect(-i.x,-i.y,t.width/r.x,t.height/r.y),e.scale(1/r.x,1/r.y),e.translate(-i.x,-i.y),e.closePath()},PIXI.CanvasRenderer.prototype.renderStrip=function(t){var e=this.context,i=t.verticies,r=t.uvs,s=i.length/2;this.count++;for(var n=1;s-2>n;n++){var a=2*n,o=i[a],h=i[a+2],u=i[a+4],c=i[a+1],d=i[a+3],l=i[a+5],I=r[a]*t.texture.width,p=r[a+2]*t.texture.width,f=r[a+4]*t.texture.width,x=r[a+1]*t.texture.height,v=r[a+3]*t.texture.height,P=r[a+5]*t.texture.height;e.save(),e.beginPath(),e.moveTo(o,c),e.lineTo(h,d),e.lineTo(u,l),e.closePath(),e.clip();var g=I*v+x*f+p*P-v*f-x*p-I*P,b=o*v+x*u+h*P-v*u-x*h-o*P,X=I*h+o*f+p*u-h*f-o*p-I*u,m=I*v*u+x*h*f+o*p*P-o*v*f-x*p*u-I*h*P,T=c*v+x*l+d*P-v*l-x*d-c*P,y=I*d+c*f+p*l-d*f-c*p-I*l,_=I*v*l+x*d*f+c*p*P-c*v*f-x*p*l-I*d*P;e.transform(b/g,T/g,X/g,y/g,m/g,_/g),e.drawImage(t.texture.baseTexture.source,0,0),e.restore()}},PIXI.Strip=function(t,e,i){PIXI.DisplayObjectContainer.call(this),this.texture=t,this.blendMode=PIXI.blendModes.NORMAL;try{this.uvs=new Float32Array([0,1,1,1,1,0,0,1]),this.verticies=new Float32Array([0,0,0,0,0,0,0,0,0]),this.colors=new Float32Array([1,1,1,1]),this.indices=new Uint16Array([0,1,2,3])}catch(r){this.uvs=[0,1,1,1,1,0,0,1],this.verticies=[0,0,0,0,0,0,0,0,0],this.colors=[1,1,1,1],this.indices=[0,1,2,3]}this.width=e,this.height=i,t.baseTexture.hasLoaded?(this.width=this.texture.frame.width,this.height=this.texture.frame.height,this.updateFrame=!0):(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},PIXI.Strip.constructor=PIXI.Strip,PIXI.Strip.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Strip.prototype.setTexture=function(t){this.texture=t,this.width=t.frame.width,this.height=t.frame.height,this.updateFrame=!0},PIXI.Strip.prototype.onTextureUpdate=function(){this.updateFrame=!0},PIXI.Rope=function(t,e){PIXI.Strip.call(this,t),this.points=e;try{this.verticies=new Float32Array(4*e.length),this.uvs=new Float32Array(4*e.length),this.colors=new Float32Array(2*e.length),this.indices=new Uint16Array(2*e.length)}catch(i){this.verticies=verticies,this.uvs=uvs,this.colors=colors,this.indices=indices}this.refresh()},PIXI.Rope.constructor=PIXI.Rope,PIXI.Rope.prototype=Object.create(PIXI.Strip.prototype),PIXI.Rope.prototype.refresh=function(){var t=this.points;if(!(1>t.length)){var e=this.uvs,i=this.indices,r=this.colors,s=t[0],n=t[0];this.count-=.2,e[0]=0,e[1]=1,e[2]=0,e[3]=1,r[0]=1,r[1]=1,i[0]=0,i[1]=1;for(var a=t.length,o=1;a>o;o++){var n=t[o],h=4*o,u=o/(a-1);o%2?(e[h]=u,e[h+1]=0,e[h+2]=u,e[h+3]=1):(e[h]=u,e[h+1]=0,e[h+2]=u,e[h+3]=1),h=2*o,r[h]=1,r[h+1]=1,h=2*o,i[h]=h,i[h+1]=h+1,s=n}}},PIXI.Rope.prototype.updateTransform=function(){var t=this.points;if(!(1>t.length)){var e,i=this.verticies,r=t[0],s={x:0,y:0},n=t[0];this.count-=.2,i[0]=n.x+s.x,i[1]=n.y+s.y,i[2]=n.x-s.x,i[3]=n.y-s.y;for(var a=t.length,o=1;a>o;o++){var n=t[o],h=4*o;e=t.length-1>o?t[o+1]:n,s.y=-(e.x-r.x),s.x=e.y-r.y;var u=10*(1-o/(a-1));u>1&&(u=1);var c=Math.sqrt(s.x*s.x+s.y*s.y),d=this.texture.height/2;s.x/=c,s.y/=c,s.x*=d,s.y*=d,i[h]=n.x+s.x,i[h+1]=n.y+s.y,i[h+2]=n.x-s.x,i[h+3]=n.y-s.y,r=n}PIXI.DisplayObjectContainer.prototype.updateTransform.call(this)}},PIXI.Rope.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0},PIXI.TilingSprite=function(t,e,i){PIXI.DisplayObjectContainer.call(this),this.texture=t,this.width=e,this.height=i,this.renderable=!0,this.tileScale=new PIXI.Point(1,1),this.tilePosition=new PIXI.Point(0,0),this.blendMode=PIXI.blendModes.NORMAL},PIXI.TilingSprite.constructor=PIXI.TilingSprite,PIXI.TilingSprite.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.TilingSprite.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0},PIXI.TilingSprite.prototype.onTextureUpdate=function(){this.updateFrame=!0},PIXI.CustomRenderable=function(){PIXI.DisplayObject.call(this)},PIXI.CustomRenderable.constructor=PIXI.CustomRenderable,PIXI.CustomRenderable.prototype=Object.create(PIXI.DisplayObject.prototype),PIXI.CustomRenderable.prototype.renderCanvas=function(){},PIXI.CustomRenderable.prototype.initWebGL=function(){},PIXI.CustomRenderable.prototype.renderWebGL=function(){},PIXI.BaseTextureCache={},PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[],PIXI.BaseTexture=function(t){if(PIXI.EventTarget.call(this),this.width=100,this.height=100,this.source=t,t){if(this.source instanceof Image)if(this.source.complete)this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,PIXI.texturesToUpdate.push(this);else{var e=this;this.source.onload=function(){e.hasLoaded=!0,e.width=e.source.width,e.height=e.source.height,PIXI.texturesToUpdate.push(e),e.dispatchEvent({type:"loaded",content:e})}}else this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,PIXI.texturesToUpdate.push(this);this._powerOf2=!1}},PIXI.BaseTexture.constructor=PIXI.BaseTexture,PIXI.BaseTexture.prototype.destroy=function(){this.source instanceof Image&&(this.source.src=null),this.source=null,PIXI.texturesToDestroy.push(this)},PIXI.BaseTexture.fromImage=function(t,e){var i=PIXI.BaseTextureCache[t];if(!i){var r=new Image;e&&(r.crossOrigin=""),r.src=t,i=new PIXI.BaseTexture(r),PIXI.BaseTextureCache[t]=i}return i},PIXI.TextureCache={},PIXI.FrameCache={},PIXI.Texture=function(t,e){if(PIXI.EventTarget.call(this),e||(this.noFrame=!0,e=new PIXI.Rectangle(0,0,1,1)),this.trim=new PIXI.Point,t instanceof PIXI.Texture&&(t=t.baseTexture),this.baseTexture=t,this.frame=e,this.scope=this,t.hasLoaded)this.noFrame&&(e=new PIXI.Rectangle(0,0,t.width,t.height)),this.setFrame(e);else{var i=this;t.addEventListener("loaded",function(){i.onBaseTextureLoaded()})}},PIXI.Texture.constructor=PIXI.Texture,PIXI.Texture.prototype.onBaseTextureLoaded=function(){var t=this.baseTexture;t.removeEventListener("loaded",this.onLoaded),this.noFrame&&(this.frame=new PIXI.Rectangle(0,0,t.width,t.height)),this.noFrame=!1,this.width=this.frame.width,this.height=this.frame.height,this.scope.dispatchEvent({type:"update",content:this})},PIXI.Texture.prototype.destroy=function(t){t&&this.baseTexture.destroy()},PIXI.Texture.prototype.setFrame=function(t){if(this.frame=t,this.width=t.width,this.height=t.height,t.x+t.width>this.baseTexture.width||t.y+t.height>this.baseTexture.height)throw Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);this.updateFrame=!0,PIXI.Texture.frameUpdates.push(this)},PIXI.Texture.fromImage=function(t,e){var i=PIXI.TextureCache[t];return i||(i=new PIXI.Texture(PIXI.BaseTexture.fromImage(t,e)),PIXI.TextureCache[t]=i),i},PIXI.Texture.fromFrame=function(t){var e=PIXI.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache "+this);return e},PIXI.Texture.fromCanvas=function(t){var e=new PIXI.BaseTexture(t);return new PIXI.Texture(e)},PIXI.Texture.addTextureToCache=function(t,e){PIXI.TextureCache[e]=t},PIXI.Texture.removeTextureFromCache=function(t){var e=PIXI.TextureCache[t];return PIXI.TextureCache[t]=null,e},PIXI.Texture.frameUpdates=[],PIXI.RenderTexture=function(t,e){PIXI.EventTarget.call(this),this.width=t||100,this.height=e||100,this.indetityMatrix=PIXI.mat3.create(),this.frame=new PIXI.Rectangle(0,0,this.width,this.height),PIXI.gl?this.initWebGL():this.initCanvas()},PIXI.RenderTexture.constructor=PIXI.RenderTexture,PIXI.RenderTexture.prototype=Object.create(PIXI.Texture.prototype),PIXI.RenderTexture.prototype.initWebGL=function(){var t=PIXI.gl;this.glFramebuffer=t.createFramebuffer(),t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),this.glFramebuffer.width=this.width,this.glFramebuffer.height=this.height,this.baseTexture=new PIXI.BaseTexture,this.baseTexture.width=this.width,this.baseTexture.height=this.height,this.baseTexture._glTexture=t.createTexture(),t.bindTexture(t.TEXTURE_2D,this.baseTexture._glTexture),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,this.width,this.height,0,t.RGBA,t.UNSIGNED_BYTE,null),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),this.baseTexture.isRender=!0,t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,this.baseTexture._glTexture,0),this.projectionMatrix=PIXI.mat4.create(),this.projectionMatrix[5]=2/this.height,this.projectionMatrix[13]=-1,this.projectionMatrix[0]=2/this.width,this.projectionMatrix[12]=-1,this.render=this.renderWebGL},PIXI.RenderTexture.prototype.initCanvas=function(){this.renderer=new PIXI.CanvasRenderer(this.width,this.height,null,0),this.baseTexture=new PIXI.BaseTexture(this.renderer.view),this.frame=new PIXI.Rectangle(0,0,this.width,this.height),this.render=this.renderCanvas},PIXI.RenderTexture.prototype.renderWebGL=function(t,e){var i=PIXI.gl;i.colorMask(!0,!0,!0,!0),i.viewport(0,0,this.width,this.height),i.bindFramebuffer(i.FRAMEBUFFER,this.glFramebuffer),e&&(i.clearColor(0,0,0,0),i.clear(i.COLOR_BUFFER_BIT));var r=t.children;t.worldTransform=PIXI.mat3.create();for(var s=0,n=r.length;n>s;s++)r[s].updateTransform();var a=t.__renderGroup;a?t==a.root?a.render(this.projectionMatrix):a.renderSpecific(t,this.projectionMatrix):(this.renderGroup||(this.renderGroup=new PIXI.WebGLRenderGroup(i)),this.renderGroup.setRenderable(t),this.renderGroup.render(this.projectionMatrix))},PIXI.RenderTexture.prototype.renderCanvas=function(t,e){var i=t.children;t.worldTransform=PIXI.mat3.create();for(var r=0,s=i.length;s>r;r++)i[r].updateTransform();e&&this.renderer.context.clearRect(0,0,this.width,this.height),this.renderer.renderDisplayObject(t),PIXI.texturesToUpdate.push(this.baseTexture)},PIXI.AssetLoader=function(t){PIXI.EventTarget.call(this),this.assetURLs=t,this.crossorigin=!1,this.loadersByType={jpg:PIXI.ImageLoader,jpeg:PIXI.ImageLoader,png:PIXI.ImageLoader,gif:PIXI.ImageLoader,json:PIXI.SpriteSheetLoader,xml:PIXI.BitmapFontLoader,fnt:PIXI.BitmapFontLoader}},PIXI.AssetLoader.constructor=PIXI.AssetLoader,PIXI.AssetLoader.prototype.load=function(){var t=this;this.loadCount=this.assetURLs.length;for(var e=0;this.assetURLs.length>e;e++){var i=this.assetURLs[e],r=i.split(".").pop().toLowerCase(),s=this.loadersByType[r];if(!s)throw Error(r+" is an unsupported file type");var n=new s(i,this.crossorigin);n.addEventListener("loaded",function(){t.onAssetLoaded()}),n.load()}},PIXI.AssetLoader.prototype.onAssetLoaded=function(){this.loadCount--,this.dispatchEvent({type:"onProgress",content:this}),this.onProgress&&this.onProgress(),0==this.loadCount&&(this.dispatchEvent({type:"onComplete",content:this}),this.onComplete&&this.onComplete())},PIXI.SpriteSheetLoader=function(t,e){PIXI.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.frames={},this.crossorigin=e},PIXI.SpriteSheetLoader.constructor=PIXI.SpriteSheetLoader,PIXI.SpriteSheetLoader.prototype.load=function(){this.ajaxRequest=new AjaxRequest;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onJSONLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/json"),this.ajaxRequest.send(null)},PIXI.SpriteSheetLoader.prototype.onJSONLoaded=function(){if(4==this.ajaxRequest.readyState&&(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))){var jsonData=eval("("+this.ajaxRequest.responseText+")"),textureUrl=this.baseUrl+jsonData.meta.image,image=new PIXI.ImageLoader(textureUrl,this.crossorigin);this.texture=image.texture.baseTexture;var scope=this;image.addEventListener("loaded",function(){scope.onLoaded()});var frameData=jsonData.frames;for(var i in frameData){var rect=frameData[i].frame;rect&&(PIXI.TextureCache[i]=new PIXI.Texture(this.texture,{x:rect.x,y:rect.y,width:rect.w,height:rect.h}),frameData[i].trimmed&&(PIXI.TextureCache[i].realSize=frameData[i].spriteSourceSize,PIXI.TextureCache[i].trim.x=0))}image.load()}},PIXI.SpriteSheetLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},PIXI.ImageLoader=function(t,e){PIXI.EventTarget.call(this),this.texture=PIXI.Texture.fromImage(t,e)},PIXI.ImageLoader.constructor=PIXI.ImageLoader,PIXI.ImageLoader.prototype.load=function(){if(this.texture.baseTexture.hasLoaded)this.onLoaded();else{var t=this;this.texture.baseTexture.addEventListener("loaded",function(){t.onLoaded()})}},PIXI.ImageLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},PIXI.BitmapFontLoader=function(t,e){PIXI.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.crossorigin=e},PIXI.BitmapFontLoader.constructor=PIXI.BitmapFontLoader,PIXI.BitmapFontLoader.prototype.load=function(){this.ajaxRequest=new XMLHttpRequest;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onXMLLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/xml"),this.ajaxRequest.send(null)},PIXI.BitmapFontLoader.prototype.onXMLLoaded=function(){if(4==this.ajaxRequest.readyState&&(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))){var t=this.baseUrl+this.ajaxRequest.responseXML.getElementsByTagName("page")[0].attributes.getNamedItem("file").nodeValue,e=new PIXI.ImageLoader(t,this.crossorigin);this.texture=e.texture.baseTexture;var i={},r=this.ajaxRequest.responseXML.getElementsByTagName("info")[0],s=this.ajaxRequest.responseXML.getElementsByTagName("common")[0];i.font=r.attributes.getNamedItem("face").nodeValue,i.size=parseInt(r.attributes.getNamedItem("size").nodeValue,10),i.lineHeight=parseInt(s.attributes.getNamedItem("lineHeight").nodeValue,10),i.chars={};for(var n=this.ajaxRequest.responseXML.getElementsByTagName("char"),a=0;n.length>a;a++){var o=parseInt(n[a].attributes.getNamedItem("id").nodeValue,10),h={x:parseInt(n[a].attributes.getNamedItem("x").nodeValue,10),y:parseInt(n[a].attributes.getNamedItem("y").nodeValue,10),width:parseInt(n[a].attributes.getNamedItem("width").nodeValue,10),height:parseInt(n[a].attributes.getNamedItem("height").nodeValue,10)};PIXI.TextureCache[o]=new PIXI.Texture(this.texture,h),i.chars[o]={xOffset:parseInt(n[a].attributes.getNamedItem("xoffset").nodeValue,10),yOffset:parseInt(n[a].attributes.getNamedItem("yoffset").nodeValue,10),xAdvance:parseInt(n[a].attributes.getNamedItem("xadvance").nodeValue,10),kerning:{}}}var u=this.ajaxRequest.responseXML.getElementsByTagName("kerning");for(a=0;u.length>a;a++){var c=parseInt(u[a].attributes.getNamedItem("first").nodeValue,10),d=parseInt(u[a].attributes.getNamedItem("second").nodeValue,10),l=parseInt(u[a].attributes.getNamedItem("amount").nodeValue,10);i.chars[d].kerning[c]=l}PIXI.BitmapText.fonts[i.font]=i;var I=this;e.addEventListener("loaded",function(){I.onLoaded()}),e.load()}},PIXI.BitmapFontLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=PIXI),exports.PIXI=PIXI):root.PIXI=PIXI}).call(this); \ No newline at end of file +(function(){function HEXtoRGB(t){return[(255&t>>16)/255,(255&t>>8)/255,(255&t)/255]}function determineMatrixArrayType(){return PIXI.Matrix="undefined"!=typeof Float32Array?Float32Array:Array,PIXI.Matrix}var root=this,PIXI=PIXI||{};PIXI.Point=function(t,e){this.x=t||0,this.y=e||0},PIXI.Point.prototype.clone=function(){return new PIXI.Point(this.x,this.y)},PIXI.Point.constructor=PIXI.Point,PIXI.Rectangle=function(t,e,i,r){this.x=t||0,this.y=e||0,this.width=i||0,this.height=r||0},PIXI.Rectangle.prototype.clone=function(){return new PIXI.Rectangle(this.x,this.y,this.width,this.height)},PIXI.Rectangle.constructor=PIXI.Rectangle,PIXI.DisplayObject=function(){this.position=new PIXI.Point,this.scale=new PIXI.Point(1,1),this.pivot=new PIXI.Point(0,0),this.rotation=0,this.alpha=1,this.visible=!0,this.worldVisible=!1,this.parent=null,this.stage=null,this.hitArea=null,this.worldAlpha=1,this.color=[],this.worldTransform=PIXI.mat3.create(),this.localTransform=PIXI.mat3.create(),this.dynamic=!0,this._sr=0,this._cr=1,this.childIndex=0,this.renderable=!1,this.interactive=!1,this.buttonMode=!1},PIXI.DisplayObject.constructor=PIXI.DisplayObject,PIXI.DisplayObject.prototype.setInteractive=function(t){this.interactive=t,this.stage&&(this.stage.dirty=!0)},PIXI.DisplayObject.prototype.updateTransform=function(){this.rotation!=this.rotationCache&&(this.rotationCache=this.rotation,this._sr=Math.sin(this.rotation),this._cr=Math.cos(this.rotation));var t=this.localTransform,e=this.parent.worldTransform,i=this.worldTransform;t[0]=this._cr*this.scale.x,t[1]=-this._sr*this.scale.y,t[3]=this._sr*this.scale.x,t[4]=this._cr*this.scale.y;var r=this.pivot.x,s=this.pivot.y;t[2]=this.position.x-t[0]*r-s*t[1],t[5]=this.position.y-t[4]*s-r*t[3];var n=t[0],a=t[1],o=t[2],h=t[3],u=t[4],d=t[5],c=e[0],l=e[1],I=e[2],p=e[3],f=e[4],x=e[5];i[0]=c*n+l*h,i[1]=c*a+l*u,i[2]=c*o+l*d+I,i[3]=p*n+f*h,i[4]=p*a+f*u,i[5]=p*o+f*d+x,this.worldAlpha=this.alpha*this.parent.worldAlpha},PIXI.DisplayObjectContainer=function(){PIXI.DisplayObject.call(this),this.children=[],this.renderable=!1},PIXI.DisplayObjectContainer.constructor=PIXI.DisplayObjectContainer,PIXI.DisplayObjectContainer.prototype=Object.create(PIXI.DisplayObject.prototype),PIXI.DisplayObjectContainer.prototype.addChild=function(t){void 0!=t.parent&&t.parent.removeChild(t),t.parent=this,t.childIndex=this.children.length,this.children.push(t),this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},PIXI.DisplayObjectContainer.prototype.addChildAt=function(t,e){if(!(e>=0&&this.children.length>=e))throw Error(t+" The index "+e+" supplied is out of bounds "+this.children.length);void 0!=t.parent&&t.parent.removeChild(t),e==this.children.length?this.children.push(t):this.children.splice(e,0,t),t.parent=this,t.childIndex=e;for(var i=this.children.length,r=e;i>r;r++)this.children[r].childIndex=r;this.stage&&this.stage.__addChild(t),this.__renderGroup&&(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),this.__renderGroup.addDisplayObjectAndChildren(t))},PIXI.DisplayObjectContainer.prototype.swapChildren=function(t,e){var i=this.children.indexOf(t),r=this.children.indexOf(e);if(-1===i||-1===r)throw Error(t+" Both the supplied DisplayObjects must be a child of the caller "+this);this.stage&&(this.stage.__removeChild(t),this.stage.__removeChild(e),this.stage.__addChild(t),this.stage.__addChild(e)),t.childIndex=r,e.childIndex=i,this.children[i]=e,this.children[r]=t},PIXI.DisplayObjectContainer.prototype.getChildAt=function(t){if(t>=0&&this.children.length>t)return this.children[t];throw Error(child+" Both the supplied DisplayObjects must be a child of the caller "+this)},PIXI.DisplayObjectContainer.prototype.removeChild=function(t){var e=this.children.indexOf(t);if(-1===e)throw Error(t+" The supplied DisplayObject must be a child of the caller "+this);this.stage&&this.stage.__removeChild(t),t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.parent=void 0,this.children.splice(e,1);for(var i=e,r=this.children.length;r>i;i++)this.children[i].childIndex-=1},PIXI.DisplayObjectContainer.prototype.updateTransform=function(){if(this.visible){PIXI.DisplayObject.prototype.updateTransform.call(this);for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform()}},PIXI.blendModes={},PIXI.blendModes.NORMAL=0,PIXI.blendModes.SCREEN=1,PIXI.Sprite=function(t){PIXI.DisplayObjectContainer.call(this),this.anchor=new PIXI.Point,this.texture=t,this.blendMode=PIXI.blendModes.NORMAL,this._width=0,this._height=0,t.baseTexture.hasLoaded?this.updateFrame=!0:(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},PIXI.Sprite.constructor=PIXI.Sprite,PIXI.Sprite.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),Object.defineProperty(PIXI.Sprite.prototype,"width",{get:function(){return this.scale.x*this.texture.frame.width},set:function(t){this.scale.x=t/this.texture.frame.width,this._width=t}}),Object.defineProperty(PIXI.Sprite.prototype,"height",{get:function(){return this.scale.y*this.texture.frame.height},set:function(t){this.scale.y=t/this.texture.frame.height,this._height=t}}),PIXI.Sprite.prototype.setTexture=function(t){this.texture.baseTexture!=t.baseTexture&&(this.textureChange=!0),this.texture=t,this.updateFrame=!0},PIXI.Sprite.prototype.onTextureUpdate=function(){this._width&&(this.scale.x=this._width/this.texture.frame.width),this._height&&(this.scale.y=this._height/this.texture.frame.height),this.updateFrame=!0},PIXI.Sprite.fromFrame=function(t){var e=PIXI.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache"+this);return new PIXI.Sprite(e)},PIXI.Sprite.fromImage=function(t){var e=PIXI.Texture.fromImage(t);return new PIXI.Sprite(e)},PIXI.MovieClip=function(t){PIXI.Sprite.call(this,t[0]),this.textures=t,this.currentFrame=0,this.animationSpeed=1,this.loop=!0,this.onComplete=null,this.playing},PIXI.MovieClip.constructor=PIXI.MovieClip,PIXI.MovieClip.prototype=Object.create(PIXI.Sprite.prototype),PIXI.MovieClip.prototype.stop=function(){this.playing=!1},PIXI.MovieClip.prototype.play=function(){this.playing=!0},PIXI.MovieClip.prototype.gotoAndStop=function(t){this.playing=!1,this.currentFrame=t;var e=0|this.currentFrame+.5;this.setTexture(this.textures[e%this.textures.length])},PIXI.MovieClip.prototype.gotoAndPlay=function(t){this.currentFrame=t,this.playing=!0},PIXI.MovieClip.prototype.updateTransform=function(){if(PIXI.Sprite.prototype.updateTransform.call(this),this.playing){this.currentFrame+=this.animationSpeed;var t=0|this.currentFrame+.5;this.loop||this.textures.length>t?this.setTexture(this.textures[t%this.textures.length]):t>=this.textures.length&&(this.gotoAndStop(this.textures.length-1),this.onComplete&&this.onComplete())}},PIXI.Text=function(t,e){this.canvas=document.createElement("canvas"),this.context=this.canvas.getContext("2d"),PIXI.Sprite.call(this,PIXI.Texture.fromCanvas(this.canvas)),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},PIXI.Text.constructor=PIXI.Text,PIXI.Text.prototype=Object.create(PIXI.Sprite.prototype),PIXI.Text.prototype.setStyle=function(t){t=t||{},t.font=t.font||"bold 20pt Arial",t.fill=t.fill||"black",t.align=t.align||"left",t.strokeThickness=t.strokeThickness||0,this.style=t,this.dirty=!0},PIXI.Sprite.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},PIXI.Text.prototype.updateText=function(){this.context.font=this.style.font;for(var t=this.text.split(/(?:\r\n|\r|\n)/),e=[],i=0,r=0;t.length>r;r++){var s=this.context.measureText(t[r]).width;e[r]=s,i=Math.max(i,s)}this.canvas.width=i+this.style.strokeThickness;var n=this.determineFontHeight("font: "+this.style.font+";")+this.style.strokeThickness;for(this.canvas.height=n*t.length,this.context.fillStyle=this.style.fill,this.context.font=this.style.font,this.context.strokeStyle=this.style.stroke,this.context.lineWidth=this.style.strokeThickness,this.context.textBaseline="top",r=0;t.length>r;r++){var a=new PIXI.Point(this.style.strokeThickness/2,this.style.strokeThickness/2+r*n);"right"==this.style.align?a.x+=i-e[r]:"center"==this.style.align&&(a.x+=(i-e[r])/2),this.style.stroke&&this.style.strokeThickness&&this.context.strokeText(t[r],a.x,a.y),this.style.fill&&this.context.fillText(t[r],a.x,a.y)}this.updateTexture()},PIXI.Text.prototype.updateTexture=function(){this.texture.baseTexture.width=this.canvas.width,this.texture.baseTexture.height=this.canvas.height,this.texture.frame.width=this.canvas.width,this.texture.frame.height=this.canvas.height,this._width=this.canvas.width,this._height=this.canvas.height,PIXI.texturesToUpdate.push(this.texture.baseTexture)},PIXI.Text.prototype.updateTransform=function(){this.dirty&&(this.updateText(),this.dirty=!1),PIXI.Sprite.prototype.updateTransform.call(this)},PIXI.Text.prototype.determineFontHeight=function(t){var e=PIXI.Text.heightCache[t];if(!e){var i=document.getElementsByTagName("body")[0],r=document.createElement("div"),s=document.createTextNode("M");r.appendChild(s),r.setAttribute("style",t),i.appendChild(r),e=r.offsetHeight,PIXI.Text.heightCache[t]=e,i.removeChild(r)}return e},PIXI.Text.prototype.destroy=function(t){t&&this.texture.destroy()},PIXI.Text.heightCache={},PIXI.BitmapText=function(t,e){PIXI.DisplayObjectContainer.call(this),this.setText(t),this.setStyle(e),this.updateText(),this.dirty=!1},PIXI.BitmapText.constructor=PIXI.BitmapText,PIXI.BitmapText.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.BitmapText.prototype.setText=function(t){this.text=t||" ",this.dirty=!0},PIXI.BitmapText.prototype.setStyle=function(t){t=t||{},t.align=t.align||"left",this.style=t;var e=t.font.split(" ");this.fontName=e[e.length-1],this.fontSize=e.length>=2?parseInt(e[e.length-2],10):PIXI.BitmapText.fonts[this.fontName].size,this.dirty=!0},PIXI.BitmapText.prototype.updateText=function(){for(var t=PIXI.BitmapText.fonts[this.fontName],e=new PIXI.Point,i=null,r=[],s=0,n=[],a=0,o=this.fontSize/t.size,h=0;this.text.length>h;h++){var u=this.text.charCodeAt(h);if(/(?:\r\n|\r|\n)/.test(this.text.charAt(h)))n.push(e.x),s=Math.max(s,e.x),a++,e.x=0,e.y+=t.lineHeight,i=null;else{var d=t.chars[u];d&&(i&&d[i]&&(e.x+=d.kerning[i]),r.push({line:a,charCode:u,position:new PIXI.Point(e.x+d.xOffset,e.y+d.yOffset)}),e.x+=d.xAdvance,i=u)}}n.push(e.x),s=Math.max(s,e.x);var c=[];for(h=0;a>=h;h++){var l=0;"right"==this.style.align?l=s-n[h]:"center"==this.style.align&&(l=(s-n[h])/2),c.push(l)}for(h=0;r.length>h;h++){var I=PIXI.Sprite.fromFrame(r[h].charCode);I.position.x=(r[h].position.x+c[r[h].line])*o,I.position.y=r[h].position.y*o,I.scale.x=I.scale.y=o,this.addChild(I)}this.width=e.x*o,this.height=(e.y+t.lineHeight)*o},PIXI.BitmapText.prototype.updateTransform=function(){if(this.dirty){for(;this.children.length>0;)this.removeChild(this.getChildAt(0));this.updateText(),this.dirty=!1}PIXI.DisplayObjectContainer.prototype.updateTransform.call(this)},PIXI.BitmapText.fonts={},PIXI.InteractionManager=function(t){this.stage=t,this.tempPoint=new PIXI.Point,this.mouseoverEnabled=!0,this.mouse=new PIXI.InteractionData,this.touchs={},this.pool=[],this.interactiveItems=[],this.last=0},PIXI.InteractionManager.constructor=PIXI.InteractionManager,PIXI.InteractionManager.prototype.collectInteractiveSprite=function(t,e){for(var i=t.children,r=i.length,s=r-1;s>=0;s--){var n=i[s];n.interactive?(e.interactiveChildren=!0,this.interactiveItems.push(n),n.children.length>0&&this.collectInteractiveSprite(n,n)):(n.__iParent=null,n.children.length>0&&this.collectInteractiveSprite(n,e))}},PIXI.InteractionManager.prototype.setTarget=function(t){window.navigator.msPointerEnabled&&(t.view.style["-ms-content-zooming"]="none",t.view.style["-ms-touch-action"]="none"),this.target=t,t.view.addEventListener("mousemove",this.onMouseMove.bind(this),!0),t.view.addEventListener("mousedown",this.onMouseDown.bind(this),!0),document.body.addEventListener("mouseup",this.onMouseUp.bind(this),!0),t.view.addEventListener("mouseout",this.onMouseUp.bind(this),!0),t.view.addEventListener("touchstart",this.onTouchStart.bind(this),!0),t.view.addEventListener("touchend",this.onTouchEnd.bind(this),!0),t.view.addEventListener("touchmove",this.onTouchMove.bind(this),!0)},PIXI.InteractionManager.prototype.update=function(){if(this.target){var t=Date.now(),e=t-this.last;if(e=30*e/1e3,!(1>e)){if(this.last=t,this.dirty){this.dirty=!1,this.interactiveItems.length;for(var i=0;this.interactiveItems.length>i;i++)this.interactiveItems[i].interactiveChildren=!1;this.interactiveItems=[],this.stage.interactive&&this.interactiveItems.push(this.stage),this.collectInteractiveSprite(this.stage,this.stage)}var r=this.interactiveItems.length;this.target.view.style.cursor="default";for(var i=0;r>i;i++){var s=this.interactiveItems[i];s.visible&&(s.mouseover||s.mouseout||s.buttonMode)&&(s.__hit=this.hitTest(s,this.mouse),s.__hit?(s.buttonMode&&(this.target.view.style.cursor="pointer"),s.__isOver||(s.mouseover&&s.mouseover(this.mouse),s.__isOver=!0)):s.__isOver&&(s.mouseout&&s.mouseout(this.mouse),s.__isOver=!1))}}}},PIXI.InteractionManager.prototype.onMouseMove=function(t){t.preventDefault();var e=this.target.view.getBoundingClientRect();this.mouse.global.x=(t.clientX-e.left)*(this.target.width/e.width),this.mouse.global.y=(t.clientY-e.top)*(this.target.height/e.height);var i=this.interactiveItems.length;this.mouse.global;for(var r=0;i>r;r++){var s=this.interactiveItems[r];s.mousemove&&s.mousemove(this.mouse)}},PIXI.InteractionManager.prototype.onMouseDown=function(t){t.preventDefault();var e=this.interactiveItems.length;this.mouse.global,this.stage;for(var i=0;e>i;i++){var r=this.interactiveItems[i];if((r.mousedown||r.click)&&(r.__mouseIsDown=!0,r.__hit=this.hitTest(r,this.mouse),r.__hit&&(r.mousedown&&r.mousedown(this.mouse),r.__isDown=!0,!r.interactiveChildren)))break}},PIXI.InteractionManager.prototype.onMouseUp=function(t){t.preventDefault(),this.mouse.global;for(var e=this.interactiveItems.length,i=!1,r=0;e>r;r++){var s=this.interactiveItems[r];(s.mouseup||s.mouseupoutside||s.click)&&(s.__hit=this.hitTest(s,this.mouse),s.__hit&&!i?(s.mouseup&&s.mouseup(this.mouse),s.__isDown&&s.click&&s.click(this.mouse),s.interactiveChildren||(i=!0)):s.__isDown&&s.mouseupoutside&&s.mouseupoutside(this.mouse),s.__isDown=!1)}},PIXI.InteractionManager.prototype.hitTest=function(t,e){var i=e.global;if(!t.visible)return!1;if(t instanceof PIXI.Sprite){var r=t.worldTransform,s=r[0],n=r[1],a=r[2],o=r[3],h=r[4],u=r[5],d=1/(s*h+n*-o),c=h*d*i.x+-n*d*i.y+(u*n-a*h)*d,l=s*d*i.y+-o*d*i.x+(-u*s+a*o)*d,I=t.texture.frame.width,p=t.texture.frame.height,f=-I*t.anchor.x;if(c>f&&f+I>c){var x=-p*t.anchor.y;if(l>x&&x+p>l)return e.target=t,!0}}else if(t.hitArea){var r=t.worldTransform,v=t.hitArea,s=r[0],n=r[1],a=r[2],o=r[3],h=r[4],u=r[5],d=1/(s*h+n*-o),c=h*d*i.x+-n*d*i.y+(u*n-a*h)*d,l=s*d*i.y+-o*d*i.x+(-u*s+a*o)*d,f=v.x;if(c>f&&f+v.width>c){var x=v.y;if(l>x&&x+v.height>l)return!0}}for(var P=t.children.length,g=0;P>g;g++){var b=t.children[g],X=this.hitTest(b,e);if(X)return!0}return!1},PIXI.InteractionManager.prototype.onTouchMove=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.touchs[s.identifier];n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height)}for(var a=this.interactiveItems.length,r=0;a>r;r++){var o=this.interactiveItems[r];o.touchmove&&o.touchmove(n)}},PIXI.InteractionManager.prototype.onTouchStart=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.pool.pop();n||(n=new PIXI.InteractionData),this.touchs[s.identifier]=n,n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height);for(var a=this.interactiveItems.length,o=0;a>o;o++){var h=this.interactiveItems[o];if((h.touchstart||h.tap)&&(h.__hit=this.hitTest(h,n),h.__hit&&(h.touchstart&&h.touchstart(n),h.__isDown=!0,h.__touchData=n,!h.interactiveChildren)))break}}},PIXI.InteractionManager.prototype.onTouchEnd=function(t){t.preventDefault();for(var e=this.target.view.getBoundingClientRect(),i=t.changedTouches,r=0;i.length>r;r++){var s=i[r],n=this.touchs[s.identifier],a=!1;n.global.x=(s.clientX-e.left)*(this.target.width/e.width),n.global.y=(s.clientY-e.top)*(this.target.height/e.height);for(var o=this.interactiveItems.length,h=0;o>h;h++){var u=this.interactiveItems[h],d=u.__touchData;u.__hit=this.hitTest(u,n),d==n&&((u.touchend||u.tap)&&(u.__hit&&!a?(u.touchend&&u.touchend(n),u.__isDown&&u.tap&&u.tap(n),u.interactiveChildren||(a=!0)):u.__isDown&&u.touchendoutside&&u.touchendoutside(n),u.__isDown=!1),u.__touchData=null)}this.pool.push(n),this.touchs[s.identifier]=null}},PIXI.InteractionData=function(){this.global=new PIXI.Point,this.local=new PIXI.Point,this.target},PIXI.InteractionData.prototype.getLocalPosition=function(t){var e=t.worldTransform,i=this.global,r=e[0],s=e[1],n=e[2],a=e[3],o=e[4],h=e[5],u=1/(r*o+s*-a);return new PIXI.Point(o*u*i.x+-s*u*i.y+(h*s-n*o)*u,r*u*i.y+-a*u*i.x+(-h*r+n*a)*u)},PIXI.InteractionData.constructor=PIXI.InteractionData,PIXI.Stage=function(t,e){PIXI.DisplayObjectContainer.call(this),this.worldTransform=PIXI.mat3.create(),this.__childrenAdded=[],this.__childrenRemoved=[],this.childIndex=0,this.stage=this,this.stage.hitArea=new PIXI.Rectangle(0,0,1e5,1e5),this.interactive=!!e,this.interactionManager=new PIXI.InteractionManager(this),this.setBackgroundColor(t),this.worldVisible=!0},PIXI.Stage.constructor=PIXI.Stage,PIXI.Stage.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Stage.prototype.updateTransform=function(){this.worldAlpha=1;for(var t=0,e=this.children.length;e>t;t++)this.children[t].updateTransform();this.dirty&&(this.dirty=!1,this.interactionManager.dirty=!0),this.interactive&&this.interactionManager.update()},PIXI.Stage.prototype.setBackgroundColor=function(t){this.backgroundColor=t||0,this.backgroundColorSplit=HEXtoRGB(this.backgroundColor),this.backgroundColorString="#"+this.backgroundColor.toString(16)},PIXI.Stage.prototype.getMousePosition=function(){return this.interactionManager.mouse.global},PIXI.Stage.prototype.__addChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=this,t.children)for(var e=0;t.children.length>e;e++)this.__addChild(t.children[e])},PIXI.Stage.prototype.__removeChild=function(t){if(t.interactive&&(this.dirty=!0),t.stage=void 0,t.children)for(var e=0,i=t.children.length;i>e;e++)this.__removeChild(t.children[e])},window.requestAnimFrame=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(t){window.setTimeout(t,1e3/60)}}(),"function"!=typeof Function.prototype.bind&&(Function.prototype.bind=function(){var t=Array.prototype.slice;return function(e){function i(){var n=s.concat(t.call(arguments));r.apply(this instanceof i?this:e,n)}var r=this,s=t.call(arguments,1);if("function"!=typeof r)throw new TypeError;return i.prototype=function n(t){return t&&(n.prototype=t),this instanceof n?void 0:new n}(r.prototype),i}}());var AjaxRequest=function(){var t=["Msxml2.XMLHTTP","Microsoft.XMLHTTP"];if(!window.ActiveXObject)return window.XMLHttpRequest?new XMLHttpRequest:!1;for(var e=0;t.length>e;e++)try{return new ActiveXObject(t[e])}catch(i){}};PIXI.EventTarget=function(){var t={};this.addEventListener=this.on=function(e,i){void 0===t[e]&&(t[e]=[]),-1===t[e].indexOf(i)&&t[e].push(i)},this.dispatchEvent=this.emit=function(e){for(var i in t[e.type])t[e.type][i](e)},this.removeEventListener=this.off=function(e,i){var r=t[e].indexOf(i);-1!==r&&t[e].splice(r,1)}},determineMatrixArrayType(),PIXI.mat3={},PIXI.mat3.create=function(){var t=new PIXI.Matrix(9);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t},PIXI.mat4={},PIXI.mat4.create=function(){var t=new PIXI.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},PIXI.mat3.multiply=function(t,e,i){i||(i=t);var r=t[0],s=t[1],n=t[2],a=t[3],o=t[4],h=t[5],u=t[6],d=t[7],c=t[8],l=e[0],I=e[1],p=e[2],f=e[3],x=e[4],v=e[5],P=e[6],g=e[7],b=e[8];return i[0]=l*r+I*a+p*u,i[1]=l*s+I*o+p*d,i[2]=l*n+I*h+p*c,i[3]=f*r+x*a+v*u,i[4]=f*s+x*o+v*d,i[5]=f*n+x*h+v*c,i[6]=P*r+g*a+b*u,i[7]=P*s+g*o+b*d,i[8]=P*n+g*h+b*c,i},PIXI.mat3.toMat4=function(t,e){return e||(e=PIXI.mat4.create()),e[15]=1,e[14]=0,e[13]=0,e[12]=0,e[11]=0,e[10]=t[8],e[9]=t[7],e[8]=t[6],e[7]=0,e[6]=t[5],e[5]=t[4],e[4]=t[3],e[3]=0,e[2]=t[2],e[1]=t[1],e[0]=t[0],e},PIXI.mat4.create=function(){var t=new PIXI.Matrix(16);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t},PIXI.mat4.transpose=function(t,e){if(!e||t===e){var i=t[1],r=t[2],s=t[3],n=t[6],a=t[7],o=t[11];return t[1]=t[4],t[2]=t[8],t[3]=t[12],t[4]=i,t[6]=t[9],t[7]=t[13],t[8]=r,t[9]=n,t[11]=t[14],t[12]=s,t[13]=a,t[14]=o,t}return e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=t[1],e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=t[2],e[9]=t[6],e[10]=t[10],e[11]=t[14],e[12]=t[3],e[13]=t[7],e[14]=t[11],e[15]=t[15],e},PIXI.mat4.multiply=function(t,e,i){i||(i=t);var r=t[0],s=t[1],n=t[2],a=t[3],o=t[4],h=t[5],u=t[6],d=t[7],c=t[8],l=t[9],I=t[10],p=t[11],f=t[12],x=t[13],v=t[14],P=t[15],g=e[0],b=e[1],X=e[2],m=e[3];return i[0]=g*r+b*o+X*c+m*f,i[1]=g*s+b*h+X*l+m*x,i[2]=g*n+b*u+X*I+m*v,i[3]=g*a+b*d+X*p+m*P,g=e[4],b=e[5],X=e[6],m=e[7],i[4]=g*r+b*o+X*c+m*f,i[5]=g*s+b*h+X*l+m*x,i[6]=g*n+b*u+X*I+m*v,i[7]=g*a+b*d+X*p+m*P,g=e[8],b=e[9],X=e[10],m=e[11],i[8]=g*r+b*o+X*c+m*f,i[9]=g*s+b*h+X*l+m*x,i[10]=g*n+b*u+X*I+m*v,i[11]=g*a+b*d+X*p+m*P,g=e[12],b=e[13],X=e[14],m=e[15],i[12]=g*r+b*o+X*c+m*f,i[13]=g*s+b*h+X*l+m*x,i[14]=g*n+b*u+X*I+m*v,i[15]=g*a+b*d+X*p+m*P,i},PIXI.autoDetectRenderer=function(t,e,i,r){t||(t=800),e||(e=600);var s=function(){try{return!!window.WebGLRenderingContext&&!!document.createElement("canvas").getContext("experimental-webgl")}catch(t){return!1}}();return s?new PIXI.WebGLRenderer(t,e,i,r):new PIXI.CanvasRenderer(t,e,i,r)},PIXI.shaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor = texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor = gl_FragColor * vColor;","}"],PIXI.shaderVertexSrc=["attribute vec2 aVertexPosition;","attribute vec2 aTextureCoord;","attribute float aColor;","uniform mat4 uMVMatrix;","varying vec2 vTextureCoord;","varying float vColor;","void main(void) {","gl_Position = uMVMatrix * vec4(aVertexPosition, 1.0, 1.0);","vTextureCoord = aTextureCoord;","vColor = aColor;","}"],PIXI.CompileVertexShader=function(t,e){return PIXI._CompileShader(t,e,t.VERTEX_SHADER)},PIXI.CompileFragmentShader=function(t,e){return PIXI._CompileShader(t,e,t.FRAGMENT_SHADER)},PIXI._CompileShader=function(t,e,i){var r=e.join("\n"),s=t.createShader(i);return t.shaderSource(s,r),t.compileShader(s),t.getShaderParameter(s,t.COMPILE_STATUS)?s:(alert(t.getShaderInfoLog(s)),null)},PIXI._defaultFrame=new PIXI.Rectangle(0,0,1,1),PIXI.gl,PIXI.WebGLRenderer=function(t,e,i,r){this.transparent=!!r,this.width=t||800,this.height=e||600,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height;var s=this;this.view.addEventListener("webglcontextlost",function(t){s.handleContextLost(t)},!1),this.view.addEventListener("webglcontextrestored",function(t){s.handleContextRestored(t)},!1),this.batchs=[];try{PIXI.gl=this.gl=this.view.getContext("experimental-webgl",{alpha:this.transparent,antialias:!1,premultipliedAlpha:!0})}catch(n){throw Error(" This browser does not support webGL. Try using the canvas renderer"+this)}this.initShaders();var a=this.gl;PIXI.WebGLRenderer.gl=a,this.batch=new PIXI.WebGLBatch(a),a.disable(a.DEPTH_TEST),a.disable(a.CULL_FACE),a.enable(a.BLEND),a.colorMask(!0,!0,!0,this.transparent),this.projectionMatrix=PIXI.mat4.create(),this.resize(this.width,this.height),this.contextLost=!1,this.stageRenderGroup=new PIXI.WebGLRenderGroup(this.gl)},PIXI.WebGLRenderer.constructor=PIXI.WebGLRenderer,PIXI.WebGLRenderer.getBatch=function(){return 0==PIXI._batchs.length?new PIXI.WebGLBatch(PIXI.WebGLRenderer.gl):PIXI._batchs.pop()},PIXI.WebGLRenderer.returnBatch=function(t){t.clean(),PIXI._batchs.push(t)},PIXI.WebGLRenderer.prototype.initShaders=function(){var t=this.gl,e=PIXI.CompileFragmentShader(t,PIXI.shaderFragmentSrc),i=PIXI.CompileVertexShader(t,PIXI.shaderVertexSrc);PIXI.shaderProgram=t.createProgram();var r=PIXI.shaderProgram;t.attachShader(r,i),t.attachShader(r,e),t.linkProgram(r),t.getProgramParameter(r,t.LINK_STATUS)||alert("Could not initialise shaders"),t.useProgram(r),r.vertexPositionAttribute=t.getAttribLocation(r,"aVertexPosition"),t.enableVertexAttribArray(r.vertexPositionAttribute),r.textureCoordAttribute=t.getAttribLocation(r,"aTextureCoord"),t.enableVertexAttribArray(r.textureCoordAttribute),r.colorAttribute=t.getAttribLocation(r,"aColor"),t.enableVertexAttribArray(r.colorAttribute),r.mvMatrixUniform=t.getUniformLocation(r,"uMVMatrix"),r.samplerUniform=t.getUniformLocation(r,"uSampler")},PIXI.WebGLRenderer.prototype.render=function(t){if(!this.contextLost){this.__stage!==t&&(this.__stage=t,this.stageRenderGroup.setRenderable(t)),PIXI.WebGLRenderer.updateTextures(),t.updateTransform();var e=this.gl;if(e.colorMask(!0,!0,!0,this.transparent),e.viewport(0,0,this.width,this.height),e.bindFramebuffer(e.FRAMEBUFFER,null),e.clearColor(t.backgroundColorSplit[0],t.backgroundColorSplit[1],t.backgroundColorSplit[2],this.transparent),e.clear(e.COLOR_BUFFER_BIT),this.stageRenderGroup.backgroundColor=t.backgroundColorSplit,this.stageRenderGroup.render(this.projectionMatrix),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),PIXI.Texture.frameUpdates.length>0){for(var i=0;PIXI.Texture.frameUpdates.length>i;i++)PIXI.Texture.frameUpdates[i].updateFrame=!1;PIXI.Texture.frameUpdates=[]}}},PIXI.WebGLRenderer.updateTextures=function(){for(var t=0;PIXI.texturesToUpdate.length>t;t++)this.updateTexture(PIXI.texturesToUpdate[t]);for(var t=0;PIXI.texturesToDestroy.length>t;t++)this.destroyTexture(PIXI.texturesToDestroy[t]);PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[]},PIXI.WebGLRenderer.updateTexture=function(t){var e=PIXI.gl;t._glTexture||(t._glTexture=e.createTexture()),t.hasLoaded&&(e.bindTexture(e.TEXTURE_2D,t._glTexture),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t.source),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),t._powerOf2?(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT)):(e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)),e.bindTexture(e.TEXTURE_2D,null))},PIXI.WebGLRenderer.prototype.destroyTexture=function(t){var e=this.gl;t._glTexture&&(t._glTexture=e.createTexture(),e.deleteTexture(e.TEXTURE_2D,t._glTexture))},PIXI.WebGLRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e,this.gl.viewport(0,0,this.width,this.height);var i=this.projectionMatrix;i[0]=2/this.width,i[5]=-2/this.height,i[12]=-1,i[13]=1},PIXI.WebGLRenderer.prototype.handleContextLost=function(t){t.preventDefault(),this.contextLost=!0},PIXI.WebGLRenderer.prototype.handleContextRestored=function(){this.gl=this.view.getContext("experimental-webgl",{alpha:!0}),this.initShaders();for(var t=0;PIXI.TextureCache.length>t;t++)this.updateTexture(PIXI.TextureCache[t]);for(var t=0;this.batchs.length>t;t++)this.batchs[t].restoreLostContext(this.gl),this.batchs[t].dirty=!0;PIXI._restoreBatchs(this.gl),this.contextLost=!1},PIXI._batchs=[],PIXI._getBatch=function(t){return 0==PIXI._batchs.length?new PIXI.WebGLBatch(t):PIXI._batchs.pop()},PIXI._returnBatch=function(t){t.clean(),PIXI._batchs.push(t)},PIXI._restoreBatchs=function(t){for(var e=0;PIXI._batchs.length>e;e++)PIXI._batchs[e].restoreLostContext(t)},PIXI.WebGLBatch=function(t){this.gl=t,this.size=0,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer(),this.blendMode=PIXI.blendModes.NORMAL,this.dynamicSize=1},PIXI.WebGLBatch.constructor=PIXI.WebGLBatch,PIXI.WebGLBatch.prototype.clean=function(){this.verticies=[],this.uvs=[],this.indices=[],this.colors=[],this.dynamicSize=1,this.texture=null,this.last=null,this.size=0,this.head,this.tail},PIXI.WebGLBatch.prototype.restoreLostContext=function(t){this.gl=t,this.vertexBuffer=t.createBuffer(),this.indexBuffer=t.createBuffer(),this.uvBuffer=t.createBuffer(),this.colorBuffer=t.createBuffer()},PIXI.WebGLBatch.prototype.init=function(t){t.batch=this,this.dirty=!0,this.blendMode=t.blendMode,this.texture=t.texture.baseTexture,this.head=t,this.tail=t,this.size=1,this.growBatch()},PIXI.WebGLBatch.prototype.insertBefore=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__prev;e.__prev=t,t.__next=e,i?(t.__prev=i,i.__next=t):this.head=t},PIXI.WebGLBatch.prototype.insertAfter=function(t,e){this.size++,t.batch=this,this.dirty=!0;var i=e.__next;e.__next=t,t.__prev=e,i?(t.__next=i,i.__prev=t):this.tail=t},PIXI.WebGLBatch.prototype.remove=function(t){return this.size--,0==this.size?(t.batch=null,t.__prev=null,t.__next=null,void 0):(t.__prev?t.__prev.__next=t.__next:(this.head=t.__next,this.head.__prev=null),t.__next?t.__next.__prev=t.__prev:(this.tail=t.__prev,this.tail.__next=null),t.batch=null,t.__next=null,t.__prev=null,this.dirty=!0,void 0)},PIXI.WebGLBatch.prototype.split=function(t){this.dirty=!0;var e=new PIXI.WebGLBatch(this.gl);e.init(t),e.tail=this.tail,this.tail=t.__prev,this.tail.__next=null,t.__prev=null;for(var i=0;t;)i++,t.batch=e,t=t.__next;return e.size=i,this.size-=i,e},PIXI.WebGLBatch.prototype.merge=function(t){this.dirty=!0,this.tail.__next=t.head,t.head.__prev=this.tail,this.size+=t.size,this.tail=t.tail;for(var e=t.head;e;)e.batch=this,e=e.__next},PIXI.WebGLBatch.prototype.growBatch=function(){var t=this.gl;this.dynamicSize=1==this.size?1:1.5*this.size,this.verticies=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.vertexBuffer),t.bufferData(t.ARRAY_BUFFER,this.verticies,t.DYNAMIC_DRAW),this.uvs=new Float32Array(8*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.uvBuffer),t.bufferData(t.ARRAY_BUFFER,this.uvs,t.DYNAMIC_DRAW),this.dirtyUVS=!0,this.colors=new Float32Array(4*this.dynamicSize),t.bindBuffer(t.ARRAY_BUFFER,this.colorBuffer),t.bufferData(t.ARRAY_BUFFER,this.colors,t.DYNAMIC_DRAW),this.dirtyColors=!0,this.indices=new Uint16Array(6*this.dynamicSize);for(var e=this.indices.length/6,i=0;e>i;i++){var r=6*i,s=4*i;this.indices[r+0]=s+0,this.indices[r+1]=s+1,this.indices[r+2]=s+2,this.indices[r+3]=s+0,this.indices[r+4]=s+2,this.indices[r+5]=s+3}t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,this.indexBuffer),t.bufferData(t.ELEMENT_ARRAY_BUFFER,this.indices,t.STATIC_DRAW)},PIXI.WebGLBatch.prototype.refresh=function(){this.gl,this.dynamicSizer;r++)i=this.batchs[r],i instanceof PIXI.WebGLBatch?this.batchs[r].render():i instanceof PIXI.TilingSprite?i.visible&&this.renderTilingSprite(i,t):i instanceof PIXI.Strip&&i.visible&&this.renderStrip(i,t)},PIXI.WebGLRenderGroup.prototype.renderSpecific=function(t,e){PIXI.WebGLRenderer.updateTextures();var i=this.gl;this.checkVisibility(t,t.visible),i.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform,!1,e);var r,s,n,a,o=t.renderable?t:this.getNextRenderable(t),h=o.batch;if(o instanceof PIXI.Sprite){h=o.batch;var u=h.head;if(u==o)r=0;else for(r=1;u.__next!=o;)r++,u=u.__next}else h=o;for(var d,c=t,l=t;l.children.length>0;)l=l.children[l.children.length-1],l.renderable&&(c=l);if(c instanceof PIXI.Sprite){d=c.batch;var u=d.head;if(u==c)n=0;else for(n=1;u.__next!=c;)n++,u=u.__next}else d=c;if(h==d)return h instanceof PIXI.WebGLBatch?h.render(r,n+1):h instanceof PIXI.TilingSprite?h.visible&&this.renderTilingSprite(h,e):h instanceof PIXI.Strip?h.visible&&this.renderStrip(h,e):h instanceof PIXI.CustomRenderable&&h.visible&&h.renderWebGL(this,e),void 0;s=this.batchs.indexOf(h),a=this.batchs.indexOf(d),h instanceof PIXI.WebGLBatch?h.render(r):h instanceof PIXI.TilingSprite?h.visible&&this.renderTilingSprite(h,e):h instanceof PIXI.Strip?h.visible&&this.renderStrip(h,e):h instanceof PIXI.CustomRenderable&&h.visible&&h.renderWebGL(this,e);for(var I=s+1;a>I;I++)renderable=this.batchs[I],renderable instanceof PIXI.WebGLBatch?this.batchs[I].render():renderable instanceof PIXI.TilingSprite?renderable.visible&&this.renderTilingSprite(renderable,e):renderable instanceof PIXI.Strip?renderable.visible&&this.renderStrip(renderable,e):renderable instanceof PIXI.CustomRenderable&&renderable.visible&&renderable.renderWebGL(this,e);d instanceof PIXI.WebGLBatch?d.render(0,n+1):d instanceof PIXI.TilingSprite?d.visible&&this.renderTilingSprite(d):d instanceof PIXI.Strip?d.visible&&this.renderStrip(d):d instanceof PIXI.CustomRenderable&&d.visible&&d.renderWebGL(this,e)},PIXI.WebGLRenderGroup.prototype.checkVisibility=function(t,e){for(var i=t.children,r=0;i.length>r;r++){var s=i[r];s.worldVisible=s.visible&&e,s.textureChange&&(s.textureChange=!1,s.worldVisible&&(this.removeDisplayObject(s),this.addDisplayObject(s))),s.children.length>0&&this.checkVisibility(s,s.worldVisible)}},PIXI.WebGLRenderGroup.prototype.addDisplayObject=function(t){if(t.__renderGroup&&t.__renderGroup.removeDisplayObjectAndChildren(t),t.__renderGroup=this,t.renderable){var e=this.getPreviousRenderable(t),i=this.getNextRenderable(t);if(t instanceof PIXI.Sprite){var r,s;if(e instanceof PIXI.Sprite){if(r=e.batch,r&&r.texture==t.texture.baseTexture&&r.blendMode==t.blendMode)return r.insertAfter(t,e),void 0}else r=e;if(i)if(i instanceof PIXI.Sprite){if(s=i.batch){if(s.texture==t.texture.baseTexture&&s.blendMode==t.blendMode)return s.insertBefore(t,i),void 0;if(s==r){var n=r.split(i),a=PIXI.WebGLRenderer.getBatch(),o=this.batchs.indexOf(r);return a.init(t),this.batchs.splice(o+1,0,a,n),void 0}}}else s=i;var a=PIXI.WebGLRenderer.getBatch();if(a.init(t),r){var o=this.batchs.indexOf(r);this.batchs.splice(o+1,0,a)}else this.batchs.push(a)}else t instanceof PIXI.TilingSprite?(this.initTilingSprite(t),this.batchs.push(t)):t instanceof PIXI.Strip&&(this.initStrip(t),this.batchs.push(t));this.batchUpdate=!0}},PIXI.WebGLRenderGroup.prototype.addDisplayObjectAndChildren=function(t){this.addDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.addDisplayObjectAndChildren(e[i])},PIXI.WebGLRenderGroup.prototype.removeDisplayObject=function(t){if(t.__renderGroup=null,t.renderable){var e;if(t instanceof PIXI.Sprite){var i=t.batch;if(!i)return;i.remove(t),0==i.size&&(e=i)}else e=t;if(e){var r=this.batchs.indexOf(e);if(-1==r)return;if(0==r||r==this.batchs.length-1)return this.batchs.splice(r,1),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e),void 0;if(this.batchs[r-1]instanceof PIXI.WebGLBatch&&this.batchs[r+1]instanceof PIXI.WebGLBatch&&this.batchs[r-1].texture==this.batchs[r+1].texture&&this.batchs[r-1].blendMode==this.batchs[r+1].blendMode)return this.batchs[r-1].merge(this.batchs[r+1]),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e),PIXI.WebGLRenderer.returnBatch(this.batchs[r+1]),this.batchs.splice(r,2),void 0;this.batchs.splice(r,1),e instanceof PIXI.WebGLBatch&&PIXI.WebGLRenderer.returnBatch(e)}}},PIXI.WebGLRenderGroup.prototype.removeDisplayObjectAndChildren=function(t){if(t.__renderGroup==this){this.removeDisplayObject(t);for(var e=t.children,i=0;e.length>i;i++)this.removeDisplayObjectAndChildren(e[i])}},PIXI.WebGLRenderGroup.prototype.getNextRenderable=function(t){var e=t;do{if(0==e.children.length){if(!e.parent)return null;for(;e.childIndex==e.parent.children.length-1;)if(e=e.parent,e==this.root||!e.parent){e=null;break}e&&(e=e.parent.children[e.childIndex+1])}else e=e.children[0];if(!e)break}while(!e.renderable||!e.__renderGroup);return e},PIXI.WebGLRenderGroup.prototype.getPreviousRenderable=function(t){var e=t;do{if(0==e.childIndex){if(e=e.parent,!e)return null}else for(e=e.parent.children[e.childIndex-1];0!=e.children.length;)e=e.children[e.children.length-1];if(e==this.root)break}while(!e.renderable||!e.__renderGroup);return e},PIXI.WebGLRenderGroup.prototype.initTilingSprite=function(t){var e=this.gl;t.verticies=new Float32Array([0,0,t.width,0,t.width,t.height,0,t.height]),t.uvs=new Float32Array([0,0,1,0,1,1,0,1]),t.colors=new Float32Array([1,1,1,1]),t.indices=new Uint16Array([0,1,3,2]),t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW),t.texture.baseTexture._glTexture?(e.bindTexture(e.TEXTURE_2D,t.texture.baseTexture._glTexture),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.REPEAT),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.REPEAT),t.texture.baseTexture._powerOf2=!0):t.texture.baseTexture._powerOf2=!0},PIXI.WebGLRenderGroup.prototype.renderStrip=function(t,e){var i=this.gl,r=PIXI.shaderProgram,s=PIXI.mat3.toMat4(t.worldTransform);PIXI.mat4.transpose(s),PIXI.mat4.multiply(e,s,s),i.uniformMatrix4fv(r.mvMatrixUniform,!1,s),t.blendMode==PIXI.blendModes.NORMAL?i.blendFunc(i.ONE,i.ONE_MINUS_SRC_ALPHA):i.blendFunc(i.ONE,i.ONE_MINUS_SRC_COLOR),t.dirty?(t.dirty=!1,i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferData(i.ARRAY_BUFFER,t.verticies,i.STATIC_DRAW),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferData(i.ARRAY_BUFFER,t.uvs,i.STATIC_DRAW),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.bufferData(i.ARRAY_BUFFER,t.colors,i.STATIC_DRAW),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer),i.bufferData(i.ELEMENT_ARRAY_BUFFER,t.indices,i.STATIC_DRAW)):(i.bindBuffer(i.ARRAY_BUFFER,t._vertexBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.verticies),i.vertexAttribPointer(r.vertexPositionAttribute,2,i.FLOAT,!1,0,0),i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.vertexAttribPointer(r.textureCoordAttribute,2,i.FLOAT,!1,0,0),i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,t.texture.baseTexture._glTexture),i.bindBuffer(i.ARRAY_BUFFER,t._colorBuffer),i.vertexAttribPointer(r.colorAttribute,1,i.FLOAT,!1,0,0),i.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t._indexBuffer)),i.drawElements(i.TRIANGLE_STRIP,t.indices.length,i.UNSIGNED_SHORT,0),i.uniformMatrix4fv(r.mvMatrixUniform,!1,e)},PIXI.WebGLRenderGroup.prototype.renderTilingSprite=function(t,e){var i=this.gl;PIXI.shaderProgram;var r=t.tilePosition,s=t.tileScale,n=r.x/t.texture.baseTexture.width,a=r.y/t.texture.baseTexture.height,o=t.width/t.texture.baseTexture.width/s.x,h=t.height/t.texture.baseTexture.height/s.y;t.uvs[0]=0-n,t.uvs[1]=0-a,t.uvs[2]=1*o-n,t.uvs[3]=0-a,t.uvs[4]=1*o-n,t.uvs[5]=1*h-a,t.uvs[6]=0-n,t.uvs[7]=1*h-a,i.bindBuffer(i.ARRAY_BUFFER,t._uvBuffer),i.bufferSubData(i.ARRAY_BUFFER,0,t.uvs),this.renderStrip(t,e)},PIXI.WebGLRenderer.prototype.initStrip=function(t){var e=this.gl;this.shaderProgram,t._vertexBuffer=e.createBuffer(),t._indexBuffer=e.createBuffer(),t._uvBuffer=e.createBuffer(),t._colorBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,t._vertexBuffer),e.bufferData(e.ARRAY_BUFFER,t.verticies,e.DYNAMIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._uvBuffer),e.bufferData(e.ARRAY_BUFFER,t.uvs,e.STATIC_DRAW),e.bindBuffer(e.ARRAY_BUFFER,t._colorBuffer),e.bufferData(e.ARRAY_BUFFER,t.colors,e.STATIC_DRAW),e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,t._indexBuffer),e.bufferData(e.ELEMENT_ARRAY_BUFFER,t.indices,e.STATIC_DRAW)},PIXI.CanvasRenderer=function(t,e,i,r){this.transparent=r,this.width=t||800,this.height=e||600,this.refresh=!0,this.view=i||document.createElement("canvas"),this.view.width=this.width,this.view.height=this.height,this.count=0,this.context=this.view.getContext("2d")},PIXI.CanvasRenderer.constructor=PIXI.CanvasRenderer,PIXI.CanvasRenderer.prototype.render=function(t){PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[],t.updateTransform(),this.view.style.backgroundColor==t.backgroundColorString||this.transparent||(this.view.style.backgroundColor=t.backgroundColorString),this.context.setTransform(1,0,0,1,0,0),this.context.clearRect(0,0,this.width,this.height),this.renderDisplayObject(t),t.interactive&&(t._interactiveEventsAdded||(t._interactiveEventsAdded=!0,t.interactionManager.setTarget(this))),PIXI.Texture.frameUpdates.length>0&&(PIXI.Texture.frameUpdates=[])},PIXI.CanvasRenderer.prototype.resize=function(t,e){this.width=t,this.height=e,this.view.width=t,this.view.height=e},PIXI.CanvasRenderer.prototype.renderDisplayObject=function(t){var e=t.worldTransform,i=this.context;if(t.visible){if(t instanceof PIXI.Sprite){var r=t.texture.frame;r&&(i.globalAlpha=t.worldAlpha,i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),i.drawImage(t.texture.baseTexture.source,r.x,r.y,r.width,r.height,t.anchor.x*-r.width,t.anchor.y*-r.height,r.width,r.height))}else t instanceof PIXI.Strip?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderStrip(t)):t instanceof PIXI.TilingSprite?(i.setTransform(e[0],e[3],e[1],e[4],e[2],e[5]),this.renderTilingSprite(t)):t instanceof PIXI.CustomRenderable&&t.renderCanvas(this);for(var s=0;t.children.length>s;s++)this.renderDisplayObject(t.children[s]);this.context.setTransform(1,0,0,1,0,0)}},PIXI.CanvasRenderer.prototype.renderStripFlat=function(t){var e=this.context,i=t.verticies;t.uvs;var r=i.length/2;this.count++,e.beginPath();for(var s=1;r-2>s;s++){var n=2*s,a=i[n],o=i[n+2],h=i[n+4],u=i[n+1],d=i[n+3],c=i[n+5];e.moveTo(a,u),e.lineTo(o,d),e.lineTo(h,c)}e.fillStyle="#FF0000",e.fill(),e.closePath()},PIXI.CanvasRenderer.prototype.renderTilingSprite=function(t){var e=this.context;t.__tilePattern||(t.__tilePattern=e.createPattern(t.texture.baseTexture.source,"repeat")),e.beginPath();var i=t.tilePosition,r=t.tileScale;e.scale(r.x,r.y),e.translate(i.x,i.y),e.fillStyle=t.__tilePattern,e.fillRect(-i.x,-i.y,t.width/r.x,t.height/r.y),e.scale(1/r.x,1/r.y),e.translate(-i.x,-i.y),e.closePath()},PIXI.CanvasRenderer.prototype.renderStrip=function(t){var e=this.context,i=t.verticies,r=t.uvs,s=i.length/2;this.count++;for(var n=1;s-2>n;n++){var a=2*n,o=i[a],h=i[a+2],u=i[a+4],d=i[a+1],c=i[a+3],l=i[a+5],I=r[a]*t.texture.width,p=r[a+2]*t.texture.width,f=r[a+4]*t.texture.width,x=r[a+1]*t.texture.height,v=r[a+3]*t.texture.height,P=r[a+5]*t.texture.height;e.save(),e.beginPath(),e.moveTo(o,d),e.lineTo(h,c),e.lineTo(u,l),e.closePath(),e.clip();var g=I*v+x*f+p*P-v*f-x*p-I*P,b=o*v+x*u+h*P-v*u-x*h-o*P,X=I*h+o*f+p*u-h*f-o*p-I*u,m=I*v*u+x*h*f+o*p*P-o*v*f-x*p*u-I*h*P,T=d*v+x*l+c*P-v*l-x*c-d*P,y=I*c+d*f+p*l-c*f-d*p-I*l,_=I*v*l+x*c*f+d*p*P-d*v*f-x*p*l-I*c*P;e.transform(b/g,T/g,X/g,y/g,m/g,_/g),e.drawImage(t.texture.baseTexture.source,0,0),e.restore()}},PIXI.Strip=function(t,e,i){PIXI.DisplayObjectContainer.call(this),this.texture=t,this.blendMode=PIXI.blendModes.NORMAL;try{this.uvs=new Float32Array([0,1,1,1,1,0,0,1]),this.verticies=new Float32Array([0,0,0,0,0,0,0,0,0]),this.colors=new Float32Array([1,1,1,1]),this.indices=new Uint16Array([0,1,2,3])}catch(r){this.uvs=[0,1,1,1,1,0,0,1],this.verticies=[0,0,0,0,0,0,0,0,0],this.colors=[1,1,1,1],this.indices=[0,1,2,3]}this.width=e,this.height=i,t.baseTexture.hasLoaded?(this.width=this.texture.frame.width,this.height=this.texture.frame.height,this.updateFrame=!0):(this.onTextureUpdateBind=this.onTextureUpdate.bind(this),this.texture.addEventListener("update",this.onTextureUpdateBind)),this.renderable=!0},PIXI.Strip.constructor=PIXI.Strip,PIXI.Strip.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.Strip.prototype.setTexture=function(t){this.texture=t,this.width=t.frame.width,this.height=t.frame.height,this.updateFrame=!0},PIXI.Strip.prototype.onTextureUpdate=function(){this.updateFrame=!0},PIXI.Rope=function(t,e){PIXI.Strip.call(this,t),this.points=e;try{this.verticies=new Float32Array(4*e.length),this.uvs=new Float32Array(4*e.length),this.colors=new Float32Array(2*e.length),this.indices=new Uint16Array(2*e.length)}catch(i){this.verticies=verticies,this.uvs=uvs,this.colors=colors,this.indices=indices}this.refresh()},PIXI.Rope.constructor=PIXI.Rope,PIXI.Rope.prototype=Object.create(PIXI.Strip.prototype),PIXI.Rope.prototype.refresh=function(){var t=this.points;if(!(1>t.length)){var e=this.uvs,i=this.indices,r=this.colors,s=t[0],n=t[0];this.count-=.2,e[0]=0,e[1]=1,e[2]=0,e[3]=1,r[0]=1,r[1]=1,i[0]=0,i[1]=1;for(var a=t.length,o=1;a>o;o++){var n=t[o],h=4*o,u=o/(a-1);o%2?(e[h]=u,e[h+1]=0,e[h+2]=u,e[h+3]=1):(e[h]=u,e[h+1]=0,e[h+2]=u,e[h+3]=1),h=2*o,r[h]=1,r[h+1]=1,h=2*o,i[h]=h,i[h+1]=h+1,s=n}}},PIXI.Rope.prototype.updateTransform=function(){var t=this.points;if(!(1>t.length)){var e,i=this.verticies,r=t[0],s={x:0,y:0},n=t[0];this.count-=.2,i[0]=n.x+s.x,i[1]=n.y+s.y,i[2]=n.x-s.x,i[3]=n.y-s.y;for(var a=t.length,o=1;a>o;o++){var n=t[o],h=4*o;e=t.length-1>o?t[o+1]:n,s.y=-(e.x-r.x),s.x=e.y-r.y;var u=10*(1-o/(a-1));u>1&&(u=1);var d=Math.sqrt(s.x*s.x+s.y*s.y),c=this.texture.height/2;s.x/=d,s.y/=d,s.x*=c,s.y*=c,i[h]=n.x+s.x,i[h+1]=n.y+s.y,i[h+2]=n.x-s.x,i[h+3]=n.y-s.y,r=n}PIXI.DisplayObjectContainer.prototype.updateTransform.call(this)}},PIXI.Rope.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0},PIXI.TilingSprite=function(t,e,i){PIXI.DisplayObjectContainer.call(this),this.texture=t,this.width=e,this.height=i,this.renderable=!0,this.tileScale=new PIXI.Point(1,1),this.tilePosition=new PIXI.Point(0,0),this.blendMode=PIXI.blendModes.NORMAL},PIXI.TilingSprite.constructor=PIXI.TilingSprite,PIXI.TilingSprite.prototype=Object.create(PIXI.DisplayObjectContainer.prototype),PIXI.TilingSprite.prototype.setTexture=function(t){this.texture=t,this.updateFrame=!0},PIXI.TilingSprite.prototype.onTextureUpdate=function(){this.updateFrame=!0},PIXI.CustomRenderable=function(){PIXI.DisplayObject.call(this)},PIXI.CustomRenderable.constructor=PIXI.CustomRenderable,PIXI.CustomRenderable.prototype=Object.create(PIXI.DisplayObject.prototype),PIXI.CustomRenderable.prototype.renderCanvas=function(){},PIXI.CustomRenderable.prototype.initWebGL=function(){},PIXI.CustomRenderable.prototype.renderWebGL=function(){},PIXI.BaseTextureCache={},PIXI.texturesToUpdate=[],PIXI.texturesToDestroy=[],PIXI.BaseTexture=function(t){if(PIXI.EventTarget.call(this),this.width=100,this.height=100,this.source=t,t){if(this.source instanceof Image)if(this.source.complete)this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,PIXI.texturesToUpdate.push(this);else{var e=this;this.source.onload=function(){e.hasLoaded=!0,e.width=e.source.width,e.height=e.source.height,PIXI.texturesToUpdate.push(e),e.dispatchEvent({type:"loaded",content:e})}}else this.hasLoaded=!0,this.width=this.source.width,this.height=this.source.height,PIXI.texturesToUpdate.push(this);this._powerOf2=!1}},PIXI.BaseTexture.constructor=PIXI.BaseTexture,PIXI.BaseTexture.prototype.destroy=function(){this.source instanceof Image&&(this.source.src=null),this.source=null,PIXI.texturesToDestroy.push(this)},PIXI.BaseTexture.fromImage=function(t,e){var i=PIXI.BaseTextureCache[t];if(!i){var r=new Image;e&&(r.crossOrigin=""),r.src=t,i=new PIXI.BaseTexture(r),PIXI.BaseTextureCache[t]=i}return i},PIXI.TextureCache={},PIXI.FrameCache={},PIXI.Texture=function(t,e){if(PIXI.EventTarget.call(this),e||(this.noFrame=!0,e=new PIXI.Rectangle(0,0,1,1)),this.trim=new PIXI.Point,t instanceof PIXI.Texture&&(t=t.baseTexture),this.baseTexture=t,this.frame=e,this.scope=this,t.hasLoaded)this.noFrame&&(e=new PIXI.Rectangle(0,0,t.width,t.height)),this.setFrame(e);else{var i=this;t.addEventListener("loaded",function(){i.onBaseTextureLoaded()})}},PIXI.Texture.constructor=PIXI.Texture,PIXI.Texture.prototype.onBaseTextureLoaded=function(){var t=this.baseTexture;t.removeEventListener("loaded",this.onLoaded),this.noFrame&&(this.frame=new PIXI.Rectangle(0,0,t.width,t.height)),this.noFrame=!1,this.width=this.frame.width,this.height=this.frame.height,this.scope.dispatchEvent({type:"update",content:this})},PIXI.Texture.prototype.destroy=function(t){t&&this.baseTexture.destroy()},PIXI.Texture.prototype.setFrame=function(t){if(this.frame=t,this.width=t.width,this.height=t.height,t.x+t.width>this.baseTexture.width||t.y+t.height>this.baseTexture.height)throw Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);this.updateFrame=!0,PIXI.Texture.frameUpdates.push(this)},PIXI.Texture.fromImage=function(t,e){var i=PIXI.TextureCache[t];return i||(i=new PIXI.Texture(PIXI.BaseTexture.fromImage(t,e)),PIXI.TextureCache[t]=i),i},PIXI.Texture.fromFrame=function(t){var e=PIXI.TextureCache[t];if(!e)throw Error("The frameId '"+t+"' does not exist in the texture cache "+this);return e},PIXI.Texture.fromCanvas=function(t){var e=new PIXI.BaseTexture(t);return new PIXI.Texture(e)},PIXI.Texture.addTextureToCache=function(t,e){PIXI.TextureCache[e]=t},PIXI.Texture.removeTextureFromCache=function(t){var e=PIXI.TextureCache[t];return PIXI.TextureCache[t]=null,e},PIXI.Texture.frameUpdates=[],PIXI.RenderTexture=function(t,e){PIXI.EventTarget.call(this),this.width=t||100,this.height=e||100,this.indetityMatrix=PIXI.mat3.create(),this.frame=new PIXI.Rectangle(0,0,this.width,this.height),PIXI.gl?this.initWebGL():this.initCanvas()},PIXI.RenderTexture.constructor=PIXI.RenderTexture,PIXI.RenderTexture.prototype=Object.create(PIXI.Texture.prototype),PIXI.RenderTexture.prototype.initWebGL=function(){var t=PIXI.gl;this.glFramebuffer=t.createFramebuffer(),t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),this.glFramebuffer.width=this.width,this.glFramebuffer.height=this.height,this.baseTexture=new PIXI.BaseTexture,this.baseTexture.width=this.width,this.baseTexture.height=this.height,this.baseTexture._glTexture=t.createTexture(),t.bindTexture(t.TEXTURE_2D,this.baseTexture._glTexture),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,this.width,this.height,0,t.RGBA,t.UNSIGNED_BYTE,null),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),this.baseTexture.isRender=!0,t.bindFramebuffer(t.FRAMEBUFFER,this.glFramebuffer),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,this.baseTexture._glTexture,0),this.projectionMatrix=PIXI.mat4.create(),this.projectionMatrix[5]=2/this.height,this.projectionMatrix[13]=-1,this.projectionMatrix[0]=2/this.width,this.projectionMatrix[12]=-1,this.render=this.renderWebGL},PIXI.RenderTexture.prototype.initCanvas=function(){this.renderer=new PIXI.CanvasRenderer(this.width,this.height,null,0),this.baseTexture=new PIXI.BaseTexture(this.renderer.view),this.frame=new PIXI.Rectangle(0,0,this.width,this.height),this.render=this.renderCanvas},PIXI.RenderTexture.prototype.renderWebGL=function(t,e){var i=PIXI.gl;i.colorMask(!0,!0,!0,!0),i.viewport(0,0,this.width,this.height),i.bindFramebuffer(i.FRAMEBUFFER,this.glFramebuffer),e&&(i.clearColor(0,0,0,0),i.clear(i.COLOR_BUFFER_BIT));var r=t.children;t.worldTransform=PIXI.mat3.create();for(var s=0,n=r.length;n>s;s++)r[s].updateTransform();var a=t.__renderGroup;a?t==a.root?a.render(this.projectionMatrix):a.renderSpecific(t,this.projectionMatrix):(this.renderGroup||(this.renderGroup=new PIXI.WebGLRenderGroup(i)),this.renderGroup.setRenderable(t),this.renderGroup.render(this.projectionMatrix))},PIXI.RenderTexture.prototype.renderCanvas=function(t,e){var i=t.children;t.worldTransform=PIXI.mat3.create();for(var r=0,s=i.length;s>r;r++)i[r].updateTransform();e&&this.renderer.context.clearRect(0,0,this.width,this.height),this.renderer.renderDisplayObject(t),PIXI.texturesToUpdate.push(this.baseTexture)},PIXI.AssetLoader=function(t){PIXI.EventTarget.call(this),this.assetURLs=t,this.crossorigin=!1,this.loadersByType={jpg:PIXI.ImageLoader,jpeg:PIXI.ImageLoader,png:PIXI.ImageLoader,gif:PIXI.ImageLoader,json:PIXI.SpriteSheetLoader,xml:PIXI.BitmapFontLoader,fnt:PIXI.BitmapFontLoader}},PIXI.AssetLoader.constructor=PIXI.AssetLoader,PIXI.AssetLoader.prototype.load=function(){var t=this;this.loadCount=this.assetURLs.length;for(var e=0;this.assetURLs.length>e;e++){var i=this.assetURLs[e],r=i.split(".").pop().toLowerCase(),s=this.loadersByType[r];if(!s)throw Error(r+" is an unsupported file type");var n=new s(i,this.crossorigin);n.addEventListener("loaded",function(){t.onAssetLoaded()}),n.load()}},PIXI.AssetLoader.prototype.onAssetLoaded=function(){this.loadCount--,this.dispatchEvent({type:"onProgress",content:this}),this.onProgress&&this.onProgress(),0==this.loadCount&&(this.dispatchEvent({type:"onComplete",content:this}),this.onComplete&&this.onComplete())},PIXI.SpriteSheetLoader=function(t,e){PIXI.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.frames={},this.crossorigin=e},PIXI.SpriteSheetLoader.constructor=PIXI.SpriteSheetLoader,PIXI.SpriteSheetLoader.prototype.load=function(){this.ajaxRequest=new AjaxRequest;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onJSONLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/json"),this.ajaxRequest.send(null)},PIXI.SpriteSheetLoader.prototype.onJSONLoaded=function(){if(4==this.ajaxRequest.readyState&&(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))){var jsonData=eval("("+this.ajaxRequest.responseText+")"),textureUrl=this.baseUrl+jsonData.meta.image,image=new PIXI.ImageLoader(textureUrl,this.crossorigin);this.texture=image.texture.baseTexture;var scope=this;image.addEventListener("loaded",function(){scope.onLoaded()});var frameData=jsonData.frames;for(var i in frameData){var rect=frameData[i].frame;rect&&(PIXI.TextureCache[i]=new PIXI.Texture(this.texture,{x:rect.x,y:rect.y,width:rect.w,height:rect.h}),frameData[i].trimmed&&(PIXI.TextureCache[i].realSize=frameData[i].spriteSourceSize,PIXI.TextureCache[i].trim.x=0))}image.load()}},PIXI.SpriteSheetLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},PIXI.ImageLoader=function(t,e){PIXI.EventTarget.call(this),this.texture=PIXI.Texture.fromImage(t,e)},PIXI.ImageLoader.constructor=PIXI.ImageLoader,PIXI.ImageLoader.prototype.load=function(){if(this.texture.baseTexture.hasLoaded)this.onLoaded();else{var t=this;this.texture.baseTexture.addEventListener("loaded",function(){t.onLoaded()})}},PIXI.ImageLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},PIXI.BitmapFontLoader=function(t,e){PIXI.EventTarget.call(this),this.url=t,this.baseUrl=t.replace(/[^\/]*$/,""),this.texture=null,this.crossorigin=e},PIXI.BitmapFontLoader.constructor=PIXI.BitmapFontLoader,PIXI.BitmapFontLoader.prototype.load=function(){this.ajaxRequest=new XMLHttpRequest;var t=this;this.ajaxRequest.onreadystatechange=function(){t.onXMLLoaded()},this.ajaxRequest.open("GET",this.url,!0),this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/xml"),this.ajaxRequest.send(null)},PIXI.BitmapFontLoader.prototype.onXMLLoaded=function(){if(4==this.ajaxRequest.readyState&&(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))){var t=this.baseUrl+this.ajaxRequest.responseXML.getElementsByTagName("page")[0].attributes.getNamedItem("file").nodeValue,e=new PIXI.ImageLoader(t,this.crossorigin);this.texture=e.texture.baseTexture;var i={},r=this.ajaxRequest.responseXML.getElementsByTagName("info")[0],s=this.ajaxRequest.responseXML.getElementsByTagName("common")[0];i.font=r.attributes.getNamedItem("face").nodeValue,i.size=parseInt(r.attributes.getNamedItem("size").nodeValue,10),i.lineHeight=parseInt(s.attributes.getNamedItem("lineHeight").nodeValue,10),i.chars={};for(var n=this.ajaxRequest.responseXML.getElementsByTagName("char"),a=0;n.length>a;a++){var o=parseInt(n[a].attributes.getNamedItem("id").nodeValue,10),h={x:parseInt(n[a].attributes.getNamedItem("x").nodeValue,10),y:parseInt(n[a].attributes.getNamedItem("y").nodeValue,10),width:parseInt(n[a].attributes.getNamedItem("width").nodeValue,10),height:parseInt(n[a].attributes.getNamedItem("height").nodeValue,10)};PIXI.TextureCache[o]=new PIXI.Texture(this.texture,h),i.chars[o]={xOffset:parseInt(n[a].attributes.getNamedItem("xoffset").nodeValue,10),yOffset:parseInt(n[a].attributes.getNamedItem("yoffset").nodeValue,10),xAdvance:parseInt(n[a].attributes.getNamedItem("xadvance").nodeValue,10),kerning:{}}}var u=this.ajaxRequest.responseXML.getElementsByTagName("kerning");for(a=0;u.length>a;a++){var d=parseInt(u[a].attributes.getNamedItem("first").nodeValue,10),c=parseInt(u[a].attributes.getNamedItem("second").nodeValue,10),l=parseInt(u[a].attributes.getNamedItem("amount").nodeValue,10);i.chars[c].kerning[d]=l}PIXI.BitmapText.fonts[i.font]=i;var I=this;e.addEventListener("loaded",function(){I.onLoaded()}),e.load()}},PIXI.BitmapFontLoader.prototype.onLoaded=function(){this.dispatchEvent({type:"loaded",content:this})},"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=PIXI),exports.PIXI=PIXI):root.PIXI=PIXI}).call(this); \ No newline at end of file diff --git a/docs/classes/WebGLRenderer.html b/docs/classes/WebGLRenderer.html index 581cb5a..fcef6b6 100644 --- a/docs/classes/WebGLRenderer.html +++ b/docs/classes/WebGLRenderer.html @@ -498,7 +498,7 @@ - src/pixi/renderers/WebGLRenderer.js:283 + src/pixi/renderers/WebGLRenderer.js:284

diff --git a/docs/data.json b/docs/data.json index 9b4a49d..4b27831 100644 --- a/docs/data.json +++ b/docs/data.json @@ -1388,35 +1388,35 @@ }, { "file": "src/pixi/renderers/WebGLRenderGroup.js", - "line": 523, + "line": 527, "access": "private", "tagname": "", "class": "WebGLBatch" }, { "file": "src/pixi/renderers/WebGLRenderGroup.js", - "line": 607, + "line": 613, "access": "private", "tagname": "", "class": "WebGLBatch" }, { "file": "src/pixi/renderers/WebGLRenderGroup.js", - "line": 663, + "line": 669, "access": "private", "tagname": "", "class": "WebGLBatch" }, { "file": "src/pixi/renderers/WebGLRenderGroup.js", - "line": 740, + "line": 746, "access": "private", "tagname": "", "class": "WebGLBatch" }, { "file": "src/pixi/renderers/WebGLRenderGroup.js", - "line": 777, + "line": 783, "access": "private", "tagname": "", "class": "WebGLBatch" @@ -1465,14 +1465,14 @@ }, { "file": "src/pixi/renderers/WebGLRenderer.js", - "line": 232, + "line": 225, "access": "private", "tagname": "", "class": "WebGLRenderer" }, { "file": "src/pixi/renderers/WebGLRenderer.js", - "line": 283, + "line": 284, "description": "resizes the webGL view to the specified width and height", "itemtype": "method", "name": "resize", @@ -1492,14 +1492,14 @@ }, { "file": "src/pixi/renderers/WebGLRenderer.js", - "line": 307, + "line": 308, "access": "private", "tagname": "", "class": "WebGLRenderer" }, { "file": "src/pixi/renderers/WebGLRenderer.js", - "line": 316, + "line": 317, "access": "private", "tagname": "", "class": "WebGLRenderer" @@ -2908,23 +2908,23 @@ }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderGroup.js:523" + "line": " src/pixi/renderers/WebGLRenderGroup.js:527" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderGroup.js:607" + "line": " src/pixi/renderers/WebGLRenderGroup.js:613" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderGroup.js:663" + "line": " src/pixi/renderers/WebGLRenderGroup.js:669" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderGroup.js:740" + "line": " src/pixi/renderers/WebGLRenderGroup.js:746" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderGroup.js:777" + "line": " src/pixi/renderers/WebGLRenderGroup.js:783" }, { "message": "Missing item type", @@ -2944,15 +2944,15 @@ }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderer.js:232" + "line": " src/pixi/renderers/WebGLRenderer.js:225" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderer.js:307" + "line": " src/pixi/renderers/WebGLRenderer.js:308" }, { "message": "Missing item type", - "line": " src/pixi/renderers/WebGLRenderer.js:316" + "line": " src/pixi/renderers/WebGLRenderer.js:317" }, { "message": "Missing item type", diff --git a/docs/files/src_pixi_renderers_WebGLRenderGroup.js.html b/docs/files/src_pixi_renderers_WebGLRenderGroup.js.html index 7222602..42bcabd 100644 --- a/docs/files/src_pixi_renderers_WebGLRenderGroup.js.html +++ b/docs/files/src_pixi_renderers_WebGLRenderGroup.js.html @@ -177,6 +177,8 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + //PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. @@ -215,6 +217,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + //PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -683,7 +687,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/docs/files/src_pixi_renderers_WebGLRenderer.js.html b/docs/files/src_pixi_renderers_WebGLRenderer.js.html index 0383c4d..551dd19 100644 --- a/docs/files/src_pixi_renderers_WebGLRenderer.js.html +++ b/docs/files/src_pixi_renderers_WebGLRenderer.js.html @@ -306,15 +306,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -366,9 +359,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -400,7 +402,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) diff --git a/examples/example 1 - Basics/pixi.js b/examples/example 1 - Basics/pixi.js index f29080a..3478cf4 100644 --- a/examples/example 1 - Basics/pixi.js +++ b/examples/example 1 - Basics/pixi.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/examples/example 10 - Text/pixi.js b/examples/example 10 - Text/pixi.js index f29080a..3478cf4 100644 --- a/examples/example 10 - Text/pixi.js +++ b/examples/example 10 - Text/pixi.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/examples/example 11 - RenderTexture/index.html b/examples/example 11 - RenderTexture/index.html index efd342b..e4acf76 100644 --- a/examples/example 11 - RenderTexture/index.html +++ b/examples/example 11 - RenderTexture/index.html @@ -15,7 +15,7 @@ diff --git a/examples/example 11 - RenderTexture/pixi.js b/examples/example 11 - RenderTexture/pixi.js index f29080a..3478cf4 100644 --- a/examples/example 11 - RenderTexture/pixi.js +++ b/examples/example 11 - RenderTexture/pixi.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/examples/example 2 - SpriteSheet/pixi.js b/examples/example 2 - SpriteSheet/pixi.js index f29080a..3478cf4 100644 --- a/examples/example 2 - SpriteSheet/pixi.js +++ b/examples/example 2 - SpriteSheet/pixi.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/examples/example 3 - MovieClip/pixi.js b/examples/example 3 - MovieClip/pixi.js index f29080a..3478cf4 100755 --- a/examples/example 3 - MovieClip/pixi.js +++ b/examples/example 3 - MovieClip/pixi.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/examples/example 4 - Balls/pixi.js b/examples/example 4 - Balls/pixi.js index f29080a..3478cf4 100644 --- a/examples/example 4 - Balls/pixi.js +++ b/examples/example 4 - Balls/pixi.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/examples/example 5 - Morph/pixi.js b/examples/example 5 - Morph/pixi.js index f29080a..3478cf4 100644 --- a/examples/example 5 - Morph/pixi.js +++ b/examples/example 5 - Morph/pixi.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/examples/example 6 - Interactivity/pixi.js b/examples/example 6 - Interactivity/pixi.js index f29080a..3478cf4 100644 --- a/examples/example 6 - Interactivity/pixi.js +++ b/examples/example 6 - Interactivity/pixi.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/examples/example 7 - Transparent Background/pixi.js b/examples/example 7 - Transparent Background/pixi.js index f29080a..3478cf4 100644 --- a/examples/example 7 - Transparent Background/pixi.js +++ b/examples/example 7 - Transparent Background/pixi.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/examples/example 8 - Dragging/pixi.js b/examples/example 8 - Dragging/pixi.js index f29080a..3478cf4 100644 --- a/examples/example 8 - Dragging/pixi.js +++ b/examples/example 8 - Dragging/pixi.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/examples/example 9 - Tiling Texture/pixi.js b/examples/example 9 - Tiling Texture/pixi.js index f29080a..3478cf4 100644 --- a/examples/example 9 - Tiling Texture/pixi.js +++ b/examples/example 9 - Tiling Texture/pixi.js @@ -4,7 +4,7 @@ * Copyright (c) 2012, Mat Groves * http://goodboydigital.com/ * - * Compiled: 2013-05-23 + * Compiled: 2013-05-24 * * Pixi.JS is licensed under the MIT License. * http://www.opensource.org/licenses/mit-license.php @@ -2558,15 +2558,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -2618,9 +2611,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -2652,7 +2654,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture) @@ -3343,6 +3344,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -3355,23 +3358,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -3393,6 +3394,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -3861,7 +3864,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/src/pixi/renderers/WebGLRenderGroup.js b/src/pixi/renderers/WebGLRenderGroup.js index d86a055..75710a4 100644 --- a/src/pixi/renderers/WebGLRenderGroup.js +++ b/src/pixi/renderers/WebGLRenderGroup.js @@ -31,6 +31,8 @@ // has this changed?? if(this.root)this.removeDisplayObjectAndChildren(this.root); + displayObject.worldVisible = displayObject.visible; + // soooooo // // to check if any batchs exist already?? @@ -43,23 +45,21 @@ PIXI.WebGLRenderGroup.prototype.render = function(projectionMatrix) { + + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; // set the flipped matrix.. gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); - - for (var i=0; i < this.toRemove.length; i++) - { - this.removeDisplayObjectAndChildren(this.toRemove[i]); - }; - - this.toRemove = []; - + // TODO remove this by replacing visible with getter setters.. this.checkVisibility(this.root, this.root.visible); // will render all the elements in the group var renderable; + + for (var i=0; i < this.batchs.length; i++) { renderable = this.batchs[i]; @@ -81,6 +81,8 @@ PIXI.WebGLRenderGroup.prototype.renderSpecific = function(displayObject, projectionMatrix) { + PIXI.WebGLRenderer.updateTextures(); + var gl = this.gl; this.checkVisibility(displayObject, displayObject.visible); gl.uniformMatrix4fv(PIXI.shaderProgram.mvMatrixUniform, false, projectionMatrix); @@ -549,7 +551,9 @@ while(nextSprite.childIndex == nextSprite.parent.children.length-1) { nextSprite = nextSprite.parent; - if(nextSprite == this.root)//displayObject.stage) + //console.log(">" + nextSprite); +// console.log(">-" + this.root); + if(nextSprite == this.root || !nextSprite.parent)//displayObject.stage) { nextSprite = null break; diff --git a/src/pixi/renderers/WebGLRenderer.js b/src/pixi/renderers/WebGLRenderer.js index 822821f..7d92c8f 100644 --- a/src/pixi/renderers/WebGLRenderer.js +++ b/src/pixi/renderers/WebGLRenderer.js @@ -172,15 +172,8 @@ }*/ // update any textures - for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); - for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); - - // empty out the arrays - //stage.__childrenRemoved = []; - //stage.__childrenAdded = []; - PIXI.texturesToUpdate = []; - PIXI.texturesToDestroy = []; - + PIXI.WebGLRenderer.updateTextures(); + // recursivly loop through all items! //this.checkVisibility(stage, true); @@ -232,9 +225,18 @@ /** * @private */ -PIXI.WebGLRenderer.prototype.updateTexture = function(texture) + +PIXI.WebGLRenderer.updateTextures = function() { - var gl = this.gl; + for (var i=0; i < PIXI.texturesToUpdate.length; i++) this.updateTexture(PIXI.texturesToUpdate[i]); + for (var i=0; i < PIXI.texturesToDestroy.length; i++) this.destroyTexture(PIXI.texturesToDestroy[i]); + PIXI.texturesToUpdate = []; + PIXI.texturesToDestroy = []; +} + +PIXI.WebGLRenderer.updateTexture = function(texture) +{ + var gl = PIXI.gl; if(!texture._glTexture) { @@ -266,7 +268,6 @@ gl.bindTexture(gl.TEXTURE_2D, null); } - this.refreshBatchs = true; } PIXI.WebGLRenderer.prototype.destroyTexture = function(texture)