remove gl-matrix

This commit is contained in:
Mat Groves 2013-03-29 18:29:38 +00:00
parent 233c46d9ce
commit 588c09d872
8 changed files with 629 additions and 216 deletions

View file

@ -166,8 +166,8 @@ PIXI.DisplayObject = function()
this.worldAlpha = 1;
this.color = [];
this.worldTransform = mat3.identity();
this.localTransform = mat3.identity();
this.worldTransform = PIXI.mat3.create()//mat3.identity();
this.localTransform = PIXI.mat3.create()//mat3.identity();
this.dynamic = true;
// chach that puppy!
@ -196,19 +196,36 @@ PIXI.DisplayObject.prototype.updateTransform = function()
this._cr = Math.cos(this.rotation);
}
this.localTransform[0] = this._cr * this.scale.x;
this.localTransform[1] = -this._sr * this.scale.y
this.localTransform[3] = this._sr * this.scale.x;
this.localTransform[4] = this._cr * this.scale.y;
var localTransform = this.localTransform;
var parentTransform = this.parent.worldTransform;
var worldTransform = this.worldTransform;
//console.log(localTransform)
localTransform[0] = this._cr * this.scale.x;
localTransform[1] = -this._sr * this.scale.y
localTransform[3] = this._sr * this.scale.x;
localTransform[4] = this._cr * this.scale.y;
///AAARR GETTER SETTTER!
localTransform[2] = this.position.x;
localTransform[5] = this.position.y;
this.localTransform[2] = this.position.x;
this.localTransform[5] = this.position.y;
// Cache the matrix values (makes for huge speed increases!)
var a00 = localTransform[0], a01 = localTransform[1], a02 = localTransform[2],
a10 = localTransform[3], a11 = localTransform[4], a12 = localTransform[5];
b00 = parentTransform[0], b01 = parentTransform[1], b02 = parentTransform[2],
b10 = parentTransform[3], b11 = parentTransform[4], b12 = parentTransform[5];
// TODO optimize?
mat3.multiply(this.localTransform, this.parent.worldTransform, this.worldTransform);
worldTransform[0] = b00 * a00 + b01 * a10;
worldTransform[1] = b00 * a01 + b01 * a11;
worldTransform[2] = b00 * a02 + b01 * a12 + b02;
worldTransform[3] = b10 * a00 + b11 * a10;
worldTransform[4] = b10 * a01 + b11 * a11;
worldTransform[5] = b10 * a02 + b11 * a12 + b12;
// because we are using affine transformation, we can optimise the matrix concatenation process.. wooo!
// mat3.multiply(this.localTransform, this.parent.worldTransform, this.worldTransform);
this.worldAlpha = this.alpha * this.parent.worldAlpha;
}
/**
@ -693,7 +710,7 @@ PIXI.InteractionManager = function(stage)
// helpers
this.tempPoint = new PIXI.Point();
this.tempMatrix = mat3.create();
//this.tempMatrix = mat3.create();
this.mouseoverEnabled = true;
@ -1045,7 +1062,7 @@ PIXI.Stage = function(backgroundColor, interactive)
{
PIXI.DisplayObjectContainer.call( this );
this.worldTransform = mat3.identity();
this.worldTransform = PIXI.mat3.create()//.//identity();
this.__childrenAdded = [];
this.__childrenRemoved = [];
this.childIndex = 0;
@ -1255,53 +1272,239 @@ PIXI.EventTarget = function () {
};
};
// gl-matrix 1.3.7 - https://github.com/toji/gl-matrix/blob/master/LICENSE.md
(function(w,D){"object"===typeof exports?module.exports=D(global):"function"===typeof define&&define.amd?define([],function(){return D(w)}):D(w)})(this,function(w){function D(a){return o=a}function G(){return o="undefined"!==typeof Float32Array?Float32Array:Array}var E={};(function(){if("undefined"!=typeof Float32Array){var a=new Float32Array(1),b=new Int32Array(a.buffer);E.invsqrt=function(c){a[0]=c;b[0]=1597463007-(b[0]>>1);var d=a[0];return d*(1.5-0.5*c*d*d)}}else E.invsqrt=function(a){return 1/
Math.sqrt(a)}})();var o=null;G();var r={create:function(a){var b=new o(3);a?(b[0]=a[0],b[1]=a[1],b[2]=a[2]):b[0]=b[1]=b[2]=0;return b},createFrom:function(a,b,c){var d=new o(3);d[0]=a;d[1]=b;d[2]=c;return d},set:function(a,b){b[0]=a[0];b[1]=a[1];b[2]=a[2];return b},equal:function(a,b){return a===b||1.0E-6>Math.abs(a[0]-b[0])&&1.0E-6>Math.abs(a[1]-b[1])&&1.0E-6>Math.abs(a[2]-b[2])},add:function(a,b,c){if(!c||a===c)return a[0]+=b[0],a[1]+=b[1],a[2]+=b[2],a;c[0]=a[0]+b[0];c[1]=a[1]+b[1];c[2]=a[2]+b[2];
return c},subtract:function(a,b,c){if(!c||a===c)return a[0]-=b[0],a[1]-=b[1],a[2]-=b[2],a;c[0]=a[0]-b[0];c[1]=a[1]-b[1];c[2]=a[2]-b[2];return c},multiply:function(a,b,c){if(!c||a===c)return a[0]*=b[0],a[1]*=b[1],a[2]*=b[2],a;c[0]=a[0]*b[0];c[1]=a[1]*b[1];c[2]=a[2]*b[2];return c},negate:function(a,b){b||(b=a);b[0]=-a[0];b[1]=-a[1];b[2]=-a[2];return b},scale:function(a,b,c){if(!c||a===c)return a[0]*=b,a[1]*=b,a[2]*=b,a;c[0]=a[0]*b;c[1]=a[1]*b;c[2]=a[2]*b;return c},normalize:function(a,b){b||(b=a);var c=
a[0],d=a[1],e=a[2],g=Math.sqrt(c*c+d*d+e*e);if(!g)return b[0]=0,b[1]=0,b[2]=0,b;if(1===g)return b[0]=c,b[1]=d,b[2]=e,b;g=1/g;b[0]=c*g;b[1]=d*g;b[2]=e*g;return b},cross:function(a,b,c){c||(c=a);var d=a[0],e=a[1],a=a[2],g=b[0],f=b[1],b=b[2];c[0]=e*b-a*f;c[1]=a*g-d*b;c[2]=d*f-e*g;return c},length:function(a){var b=a[0],c=a[1],a=a[2];return Math.sqrt(b*b+c*c+a*a)},squaredLength:function(a){var b=a[0],c=a[1],a=a[2];return b*b+c*c+a*a},dot:function(a,b){return a[0]*b[0]+a[1]*b[1]+a[2]*b[2]},direction:function(a,
b,c){c||(c=a);var d=a[0]-b[0],e=a[1]-b[1],a=a[2]-b[2],b=Math.sqrt(d*d+e*e+a*a);if(!b)return c[0]=0,c[1]=0,c[2]=0,c;b=1/b;c[0]=d*b;c[1]=e*b;c[2]=a*b;return c},lerp:function(a,b,c,d){d||(d=a);d[0]=a[0]+c*(b[0]-a[0]);d[1]=a[1]+c*(b[1]-a[1]);d[2]=a[2]+c*(b[2]-a[2]);return d},dist:function(a,b){var c=b[0]-a[0],d=b[1]-a[1],e=b[2]-a[2];return Math.sqrt(c*c+d*d+e*e)}},H=null,y=new o(4);r.unproject=function(a,b,c,d,e){e||(e=a);H||(H=x.create());var g=H;y[0]=2*(a[0]-d[0])/d[2]-1;y[1]=2*(a[1]-d[1])/d[3]-1;y[2]=
2*a[2]-1;y[3]=1;x.multiply(c,b,g);if(!x.inverse(g))return null;x.multiplyVec4(g,y);if(0===y[3])return null;e[0]=y[0]/y[3];e[1]=y[1]/y[3];e[2]=y[2]/y[3];return e};var L=r.createFrom(1,0,0),M=r.createFrom(0,1,0),N=r.createFrom(0,0,1),z=r.create();r.rotationTo=function(a,b,c){c||(c=k.create());var d=r.dot(a,b);if(1<=d)k.set(O,c);else if(-0.999999>d)r.cross(L,a,z),1.0E-6>r.length(z)&&r.cross(M,a,z),1.0E-6>r.length(z)&&r.cross(N,a,z),r.normalize(z),k.fromAngleAxis(Math.PI,z,c);else{var d=Math.sqrt(2*(1+
d)),e=1/d;r.cross(a,b,z);c[0]=z[0]*e;c[1]=z[1]*e;c[2]=z[2]*e;c[3]=0.5*d;k.normalize(c)}1<c[3]?c[3]=1:-1>c[3]&&(c[3]=-1);return c};r.str=function(a){return"["+a[0]+", "+a[1]+", "+a[2]+"]"};var A={create:function(a){var b=new o(9);a?(b[0]=a[0],b[1]=a[1],b[2]=a[2],b[3]=a[3],b[4]=a[4],b[5]=a[5],b[6]=a[6],b[7]=a[7],b[8]=a[8]):b[0]=b[1]=b[2]=b[3]=b[4]=b[5]=b[6]=b[7]=b[8]=0;return b},createFrom:function(a,b,c,d,e,g,f,h,j){var i=new o(9);i[0]=a;i[1]=b;i[2]=c;i[3]=d;i[4]=e;i[5]=g;i[6]=f;i[7]=h;i[8]=j;return i},
determinant:function(a){var b=a[3],c=a[4],d=a[5],e=a[6],g=a[7],f=a[8];return a[0]*(f*c-d*g)+a[1]*(-f*b+d*e)+a[2]*(g*b-c*e)},inverse:function(a,b){var c=a[0],d=a[1],e=a[2],g=a[3],f=a[4],h=a[5],j=a[6],i=a[7],m=a[8],l=m*f-h*i,C=-m*g+h*j,q=i*g-f*j,n=c*l+d*C+e*q;if(!n)return null;n=1/n;b||(b=A.create());b[0]=l*n;b[1]=(-m*d+e*i)*n;b[2]=(h*d-e*f)*n;b[3]=C*n;b[4]=(m*c-e*j)*n;b[5]=(-h*c+e*g)*n;b[6]=q*n;b[7]=(-i*c+d*j)*n;b[8]=(f*c-d*g)*n;return b},multiply:function(a,b,c){c||(c=a);var d=a[0],e=a[1],g=a[2],
f=a[3],h=a[4],j=a[5],i=a[6],m=a[7],a=a[8],l=b[0],C=b[1],q=b[2],n=b[3],k=b[4],p=b[5],o=b[6],s=b[7],b=b[8];c[0]=l*d+C*f+q*i;c[1]=l*e+C*h+q*m;c[2]=l*g+C*j+q*a;c[3]=n*d+k*f+p*i;c[4]=n*e+k*h+p*m;c[5]=n*g+k*j+p*a;c[6]=o*d+s*f+b*i;c[7]=o*e+s*h+b*m;c[8]=o*g+s*j+b*a;return c},multiplyVec2:function(a,b,c){c||(c=b);var d=b[0],b=b[1];c[0]=d*a[0]+b*a[3]+a[6];c[1]=d*a[1]+b*a[4]+a[7];return c},multiplyVec3:function(a,b,c){c||(c=b);var d=b[0],e=b[1],b=b[2];c[0]=d*a[0]+e*a[3]+b*a[6];c[1]=d*a[1]+e*a[4]+b*a[7];c[2]=
d*a[2]+e*a[5]+b*a[8];return c},set:function(a,b){b[0]=a[0];b[1]=a[1];b[2]=a[2];b[3]=a[3];b[4]=a[4];b[5]=a[5];b[6]=a[6];b[7]=a[7];b[8]=a[8];return b},equal:function(a,b){return a===b||1.0E-6>Math.abs(a[0]-b[0])&&1.0E-6>Math.abs(a[1]-b[1])&&1.0E-6>Math.abs(a[2]-b[2])&&1.0E-6>Math.abs(a[3]-b[3])&&1.0E-6>Math.abs(a[4]-b[4])&&1.0E-6>Math.abs(a[5]-b[5])&&1.0E-6>Math.abs(a[6]-b[6])&&1.0E-6>Math.abs(a[7]-b[7])&&1.0E-6>Math.abs(a[8]-b[8])},identity:function(a){a||(a=A.create());a[0]=1;a[1]=0;a[2]=0;a[3]=0;
a[4]=1;a[5]=0;a[6]=0;a[7]=0;a[8]=1;return a},transpose:function(a,b){if(!b||a===b){var c=a[1],d=a[2],e=a[5];a[1]=a[3];a[2]=a[6];a[3]=c;a[5]=a[7];a[6]=d;a[7]=e;return a}b[0]=a[0];b[1]=a[3];b[2]=a[6];b[3]=a[1];b[4]=a[4];b[5]=a[7];b[6]=a[2];b[7]=a[5];b[8]=a[8];return b},toMat4:function(a,b){b||(b=x.create());b[15]=1;b[14]=0;b[13]=0;b[12]=0;b[11]=0;b[10]=a[8];b[9]=a[7];b[8]=a[6];b[7]=0;b[6]=a[5];b[5]=a[4];b[4]=a[3];b[3]=0;b[2]=a[2];b[1]=a[1];b[0]=a[0];return b},str:function(a){return"["+a[0]+", "+a[1]+
", "+a[2]+", "+a[3]+", "+a[4]+", "+a[5]+", "+a[6]+", "+a[7]+", "+a[8]+"]"}},x={create:function(a){var b=new o(16);a&&(b[0]=a[0],b[1]=a[1],b[2]=a[2],b[3]=a[3],b[4]=a[4],b[5]=a[5],b[6]=a[6],b[7]=a[7],b[8]=a[8],b[9]=a[9],b[10]=a[10],b[11]=a[11],b[12]=a[12],b[13]=a[13],b[14]=a[14],b[15]=a[15]);return b},createFrom:function(a,b,c,d,e,g,f,h,j,i,m,l,C,q,n,k){var p=new o(16);p[0]=a;p[1]=b;p[2]=c;p[3]=d;p[4]=e;p[5]=g;p[6]=f;p[7]=h;p[8]=j;p[9]=i;p[10]=m;p[11]=l;p[12]=C;p[13]=q;p[14]=n;p[15]=k;return p},set:function(a,
b){b[0]=a[0];b[1]=a[1];b[2]=a[2];b[3]=a[3];b[4]=a[4];b[5]=a[5];b[6]=a[6];b[7]=a[7];b[8]=a[8];b[9]=a[9];b[10]=a[10];b[11]=a[11];b[12]=a[12];b[13]=a[13];b[14]=a[14];b[15]=a[15];return b},equal:function(a,b){return a===b||1.0E-6>Math.abs(a[0]-b[0])&&1.0E-6>Math.abs(a[1]-b[1])&&1.0E-6>Math.abs(a[2]-b[2])&&1.0E-6>Math.abs(a[3]-b[3])&&1.0E-6>Math.abs(a[4]-b[4])&&1.0E-6>Math.abs(a[5]-b[5])&&1.0E-6>Math.abs(a[6]-b[6])&&1.0E-6>Math.abs(a[7]-b[7])&&1.0E-6>Math.abs(a[8]-b[8])&&1.0E-6>Math.abs(a[9]-b[9])&&1.0E-6>
Math.abs(a[10]-b[10])&&1.0E-6>Math.abs(a[11]-b[11])&&1.0E-6>Math.abs(a[12]-b[12])&&1.0E-6>Math.abs(a[13]-b[13])&&1.0E-6>Math.abs(a[14]-b[14])&&1.0E-6>Math.abs(a[15]-b[15])},identity:function(a){a||(a=x.create());a[0]=1;a[1]=0;a[2]=0;a[3]=0;a[4]=0;a[5]=1;a[6]=0;a[7]=0;a[8]=0;a[9]=0;a[10]=1;a[11]=0;a[12]=0;a[13]=0;a[14]=0;a[15]=1;return a},transpose:function(a,b){if(!b||a===b){var c=a[1],d=a[2],e=a[3],g=a[6],f=a[7],h=a[11];a[1]=a[4];a[2]=a[8];a[3]=a[12];a[4]=c;a[6]=a[9];a[7]=a[13];a[8]=d;a[9]=g;a[11]=
a[14];a[12]=e;a[13]=f;a[14]=h;return a}b[0]=a[0];b[1]=a[4];b[2]=a[8];b[3]=a[12];b[4]=a[1];b[5]=a[5];b[6]=a[9];b[7]=a[13];b[8]=a[2];b[9]=a[6];b[10]=a[10];b[11]=a[14];b[12]=a[3];b[13]=a[7];b[14]=a[11];b[15]=a[15];return b},determinant:function(a){var b=a[0],c=a[1],d=a[2],e=a[3],g=a[4],f=a[5],h=a[6],j=a[7],i=a[8],m=a[9],l=a[10],C=a[11],q=a[12],n=a[13],k=a[14],a=a[15];return q*m*h*e-i*n*h*e-q*f*l*e+g*n*l*e+i*f*k*e-g*m*k*e-q*m*d*j+i*n*d*j+q*c*l*j-b*n*l*j-i*c*k*j+b*m*k*j+q*f*d*C-g*n*d*C-q*c*h*C+b*n*h*C+
g*c*k*C-b*f*k*C-i*f*d*a+g*m*d*a+i*c*h*a-b*m*h*a-g*c*l*a+b*f*l*a},inverse:function(a,b){b||(b=a);var c=a[0],d=a[1],e=a[2],g=a[3],f=a[4],h=a[5],j=a[6],i=a[7],m=a[8],l=a[9],k=a[10],q=a[11],n=a[12],o=a[13],p=a[14],r=a[15],s=c*h-d*f,v=c*j-e*f,t=c*i-g*f,u=d*j-e*h,w=d*i-g*h,x=e*i-g*j,y=m*o-l*n,z=m*p-k*n,F=m*r-q*n,A=l*p-k*o,D=l*r-q*o,E=k*r-q*p,B=s*E-v*D+t*A+u*F-w*z+x*y;if(!B)return null;B=1/B;b[0]=(h*E-j*D+i*A)*B;b[1]=(-d*E+e*D-g*A)*B;b[2]=(o*x-p*w+r*u)*B;b[3]=(-l*x+k*w-q*u)*B;b[4]=(-f*E+j*F-i*z)*B;b[5]=
(c*E-e*F+g*z)*B;b[6]=(-n*x+p*t-r*v)*B;b[7]=(m*x-k*t+q*v)*B;b[8]=(f*D-h*F+i*y)*B;b[9]=(-c*D+d*F-g*y)*B;b[10]=(n*w-o*t+r*s)*B;b[11]=(-m*w+l*t-q*s)*B;b[12]=(-f*A+h*z-j*y)*B;b[13]=(c*A-d*z+e*y)*B;b[14]=(-n*u+o*v-p*s)*B;b[15]=(m*u-l*v+k*s)*B;return b},toRotationMat:function(a,b){b||(b=x.create());b[0]=a[0];b[1]=a[1];b[2]=a[2];b[3]=a[3];b[4]=a[4];b[5]=a[5];b[6]=a[6];b[7]=a[7];b[8]=a[8];b[9]=a[9];b[10]=a[10];b[11]=a[11];b[12]=0;b[13]=0;b[14]=0;b[15]=1;return b},toMat3:function(a,b){b||(b=A.create());b[0]=
a[0];b[1]=a[1];b[2]=a[2];b[3]=a[4];b[4]=a[5];b[5]=a[6];b[6]=a[8];b[7]=a[9];b[8]=a[10];return b},toInverseMat3:function(a,b){var c=a[0],d=a[1],e=a[2],g=a[4],f=a[5],h=a[6],j=a[8],i=a[9],m=a[10],l=m*f-h*i,k=-m*g+h*j,q=i*g-f*j,n=c*l+d*k+e*q;if(!n)return null;n=1/n;b||(b=A.create());b[0]=l*n;b[1]=(-m*d+e*i)*n;b[2]=(h*d-e*f)*n;b[3]=k*n;b[4]=(m*c-e*j)*n;b[5]=(-h*c+e*g)*n;b[6]=q*n;b[7]=(-i*c+d*j)*n;b[8]=(f*c-d*g)*n;return b},multiply:function(a,b,c){c||(c=a);var d=a[0],e=a[1],g=a[2],f=a[3],h=a[4],j=a[5],
i=a[6],m=a[7],l=a[8],k=a[9],q=a[10],n=a[11],o=a[12],p=a[13],r=a[14],a=a[15],s=b[0],v=b[1],t=b[2],u=b[3];c[0]=s*d+v*h+t*l+u*o;c[1]=s*e+v*j+t*k+u*p;c[2]=s*g+v*i+t*q+u*r;c[3]=s*f+v*m+t*n+u*a;s=b[4];v=b[5];t=b[6];u=b[7];c[4]=s*d+v*h+t*l+u*o;c[5]=s*e+v*j+t*k+u*p;c[6]=s*g+v*i+t*q+u*r;c[7]=s*f+v*m+t*n+u*a;s=b[8];v=b[9];t=b[10];u=b[11];c[8]=s*d+v*h+t*l+u*o;c[9]=s*e+v*j+t*k+u*p;c[10]=s*g+v*i+t*q+u*r;c[11]=s*f+v*m+t*n+u*a;s=b[12];v=b[13];t=b[14];u=b[15];c[12]=s*d+v*h+t*l+u*o;c[13]=s*e+v*j+t*k+u*p;c[14]=s*g+
v*i+t*q+u*r;c[15]=s*f+v*m+t*n+u*a;return c},multiplyVec3:function(a,b,c){c||(c=b);var d=b[0],e=b[1],b=b[2];c[0]=a[0]*d+a[4]*e+a[8]*b+a[12];c[1]=a[1]*d+a[5]*e+a[9]*b+a[13];c[2]=a[2]*d+a[6]*e+a[10]*b+a[14];return c},multiplyVec4:function(a,b,c){c||(c=b);var d=b[0],e=b[1],g=b[2],b=b[3];c[0]=a[0]*d+a[4]*e+a[8]*g+a[12]*b;c[1]=a[1]*d+a[5]*e+a[9]*g+a[13]*b;c[2]=a[2]*d+a[6]*e+a[10]*g+a[14]*b;c[3]=a[3]*d+a[7]*e+a[11]*g+a[15]*b;return c},translate:function(a,b,c){var d=b[0],e=b[1],b=b[2],g,f,h,j,i,m,l,k,q,
n,o,p;if(!c||a===c)return a[12]=a[0]*d+a[4]*e+a[8]*b+a[12],a[13]=a[1]*d+a[5]*e+a[9]*b+a[13],a[14]=a[2]*d+a[6]*e+a[10]*b+a[14],a[15]=a[3]*d+a[7]*e+a[11]*b+a[15],a;g=a[0];f=a[1];h=a[2];j=a[3];i=a[4];m=a[5];l=a[6];k=a[7];q=a[8];n=a[9];o=a[10];p=a[11];c[0]=g;c[1]=f;c[2]=h;c[3]=j;c[4]=i;c[5]=m;c[6]=l;c[7]=k;c[8]=q;c[9]=n;c[10]=o;c[11]=p;c[12]=g*d+i*e+q*b+a[12];c[13]=f*d+m*e+n*b+a[13];c[14]=h*d+l*e+o*b+a[14];c[15]=j*d+k*e+p*b+a[15];return c},scale:function(a,b,c){var d=b[0],e=b[1],b=b[2];if(!c||a===c)return a[0]*=
d,a[1]*=d,a[2]*=d,a[3]*=d,a[4]*=e,a[5]*=e,a[6]*=e,a[7]*=e,a[8]*=b,a[9]*=b,a[10]*=b,a[11]*=b,a;c[0]=a[0]*d;c[1]=a[1]*d;c[2]=a[2]*d;c[3]=a[3]*d;c[4]=a[4]*e;c[5]=a[5]*e;c[6]=a[6]*e;c[7]=a[7]*e;c[8]=a[8]*b;c[9]=a[9]*b;c[10]=a[10]*b;c[11]=a[11]*b;c[12]=a[12];c[13]=a[13];c[14]=a[14];c[15]=a[15];return c},rotate:function(a,b,c,d){var e=c[0],g=c[1],c=c[2],f=Math.sqrt(e*e+g*g+c*c),h,j,i,m,l,k,q,n,o,p,r,s,v,t,u,w,x,y,z,A;if(!f)return null;1!==f&&(f=1/f,e*=f,g*=f,c*=f);h=Math.sin(b);j=Math.cos(b);i=1-j;b=a[0];
f=a[1];m=a[2];l=a[3];k=a[4];q=a[5];n=a[6];o=a[7];p=a[8];r=a[9];s=a[10];v=a[11];t=e*e*i+j;u=g*e*i+c*h;w=c*e*i-g*h;x=e*g*i-c*h;y=g*g*i+j;z=c*g*i+e*h;A=e*c*i+g*h;e=g*c*i-e*h;g=c*c*i+j;d?a!==d&&(d[12]=a[12],d[13]=a[13],d[14]=a[14],d[15]=a[15]):d=a;d[0]=b*t+k*u+p*w;d[1]=f*t+q*u+r*w;d[2]=m*t+n*u+s*w;d[3]=l*t+o*u+v*w;d[4]=b*x+k*y+p*z;d[5]=f*x+q*y+r*z;d[6]=m*x+n*y+s*z;d[7]=l*x+o*y+v*z;d[8]=b*A+k*e+p*g;d[9]=f*A+q*e+r*g;d[10]=m*A+n*e+s*g;d[11]=l*A+o*e+v*g;return d},rotateX:function(a,b,c){var d=Math.sin(b),
b=Math.cos(b),e=a[4],g=a[5],f=a[6],h=a[7],j=a[8],i=a[9],m=a[10],l=a[11];c?a!==c&&(c[0]=a[0],c[1]=a[1],c[2]=a[2],c[3]=a[3],c[12]=a[12],c[13]=a[13],c[14]=a[14],c[15]=a[15]):c=a;c[4]=e*b+j*d;c[5]=g*b+i*d;c[6]=f*b+m*d;c[7]=h*b+l*d;c[8]=e*-d+j*b;c[9]=g*-d+i*b;c[10]=f*-d+m*b;c[11]=h*-d+l*b;return c},rotateY:function(a,b,c){var d=Math.sin(b),b=Math.cos(b),e=a[0],g=a[1],f=a[2],h=a[3],j=a[8],i=a[9],m=a[10],l=a[11];c?a!==c&&(c[4]=a[4],c[5]=a[5],c[6]=a[6],c[7]=a[7],c[12]=a[12],c[13]=a[13],c[14]=a[14],c[15]=
a[15]):c=a;c[0]=e*b+j*-d;c[1]=g*b+i*-d;c[2]=f*b+m*-d;c[3]=h*b+l*-d;c[8]=e*d+j*b;c[9]=g*d+i*b;c[10]=f*d+m*b;c[11]=h*d+l*b;return c},rotateZ:function(a,b,c){var d=Math.sin(b),b=Math.cos(b),e=a[0],g=a[1],f=a[2],h=a[3],j=a[4],i=a[5],m=a[6],l=a[7];c?a!==c&&(c[8]=a[8],c[9]=a[9],c[10]=a[10],c[11]=a[11],c[12]=a[12],c[13]=a[13],c[14]=a[14],c[15]=a[15]):c=a;c[0]=e*b+j*d;c[1]=g*b+i*d;c[2]=f*b+m*d;c[3]=h*b+l*d;c[4]=e*-d+j*b;c[5]=g*-d+i*b;c[6]=f*-d+m*b;c[7]=h*-d+l*b;return c},frustum:function(a,b,c,d,e,g,f){f||
(f=x.create());var h=b-a,j=d-c,i=g-e;f[0]=2*e/h;f[1]=0;f[2]=0;f[3]=0;f[4]=0;f[5]=2*e/j;f[6]=0;f[7]=0;f[8]=(b+a)/h;f[9]=(d+c)/j;f[10]=-(g+e)/i;f[11]=-1;f[12]=0;f[13]=0;f[14]=-(2*g*e)/i;f[15]=0;return f},perspective:function(a,b,c,d,e){a=c*Math.tan(a*Math.PI/360);b*=a;return x.frustum(-b,b,-a,a,c,d,e)},ortho:function(a,b,c,d,e,g,f){f||(f=x.create());var h=b-a,j=d-c,i=g-e;f[0]=2/h;f[1]=0;f[2]=0;f[3]=0;f[4]=0;f[5]=2/j;f[6]=0;f[7]=0;f[8]=0;f[9]=0;f[10]=-2/i;f[11]=0;f[12]=-(a+b)/h;f[13]=-(d+c)/j;f[14]=
-(g+e)/i;f[15]=1;return f},lookAt:function(a,b,c,d){d||(d=x.create());var e,g,f,h,j,i,m,l,k=a[0],o=a[1],a=a[2];f=c[0];h=c[1];g=c[2];m=b[0];c=b[1];e=b[2];if(k===m&&o===c&&a===e)return x.identity(d);b=k-m;c=o-c;m=a-e;l=1/Math.sqrt(b*b+c*c+m*m);b*=l;c*=l;m*=l;e=h*m-g*c;g=g*b-f*m;f=f*c-h*b;(l=Math.sqrt(e*e+g*g+f*f))?(l=1/l,e*=l,g*=l,f*=l):f=g=e=0;h=c*f-m*g;j=m*e-b*f;i=b*g-c*e;(l=Math.sqrt(h*h+j*j+i*i))?(l=1/l,h*=l,j*=l,i*=l):i=j=h=0;d[0]=e;d[1]=h;d[2]=b;d[3]=0;d[4]=g;d[5]=j;d[6]=c;d[7]=0;d[8]=f;d[9]=
i;d[10]=m;d[11]=0;d[12]=-(e*k+g*o+f*a);d[13]=-(h*k+j*o+i*a);d[14]=-(b*k+c*o+m*a);d[15]=1;return d},fromRotationTranslation:function(a,b,c){c||(c=x.create());var d=a[0],e=a[1],g=a[2],f=a[3],h=d+d,j=e+e,i=g+g,a=d*h,m=d*j,d=d*i,k=e*j,e=e*i,g=g*i,h=f*h,j=f*j,f=f*i;c[0]=1-(k+g);c[1]=m+f;c[2]=d-j;c[3]=0;c[4]=m-f;c[5]=1-(a+g);c[6]=e+h;c[7]=0;c[8]=d+j;c[9]=e-h;c[10]=1-(a+k);c[11]=0;c[12]=b[0];c[13]=b[1];c[14]=b[2];c[15]=1;return c},str:function(a){return"["+a[0]+", "+a[1]+", "+a[2]+", "+a[3]+", "+a[4]+", "+
a[5]+", "+a[6]+", "+a[7]+", "+a[8]+", "+a[9]+", "+a[10]+", "+a[11]+", "+a[12]+", "+a[13]+", "+a[14]+", "+a[15]+"]"}},k={create:function(a){var b=new o(4);a?(b[0]=a[0],b[1]=a[1],b[2]=a[2],b[3]=a[3]):b[0]=b[1]=b[2]=b[3]=0;return b},createFrom:function(a,b,c,d){var e=new o(4);e[0]=a;e[1]=b;e[2]=c;e[3]=d;return e},set:function(a,b){b[0]=a[0];b[1]=a[1];b[2]=a[2];b[3]=a[3];return b},equal:function(a,b){return a===b||1.0E-6>Math.abs(a[0]-b[0])&&1.0E-6>Math.abs(a[1]-b[1])&&1.0E-6>Math.abs(a[2]-b[2])&&1.0E-6>
Math.abs(a[3]-b[3])},identity:function(a){a||(a=k.create());a[0]=0;a[1]=0;a[2]=0;a[3]=1;return a}},O=k.identity();k.calculateW=function(a,b){var c=a[0],d=a[1],e=a[2];if(!b||a===b)return a[3]=-Math.sqrt(Math.abs(1-c*c-d*d-e*e)),a;b[0]=c;b[1]=d;b[2]=e;b[3]=-Math.sqrt(Math.abs(1-c*c-d*d-e*e));return b};k.dot=function(a,b){return a[0]*b[0]+a[1]*b[1]+a[2]*b[2]+a[3]*b[3]};k.inverse=function(a,b){var c=a[0],d=a[1],e=a[2],g=a[3],c=(c=c*c+d*d+e*e+g*g)?1/c:0;if(!b||a===b)return a[0]*=-c,a[1]*=-c,a[2]*=-c,a[3]*=
c,a;b[0]=-a[0]*c;b[1]=-a[1]*c;b[2]=-a[2]*c;b[3]=a[3]*c;return b};k.conjugate=function(a,b){if(!b||a===b)return a[0]*=-1,a[1]*=-1,a[2]*=-1,a;b[0]=-a[0];b[1]=-a[1];b[2]=-a[2];b[3]=a[3];return b};k.length=function(a){var b=a[0],c=a[1],d=a[2],a=a[3];return Math.sqrt(b*b+c*c+d*d+a*a)};k.normalize=function(a,b){b||(b=a);var c=a[0],d=a[1],e=a[2],g=a[3],f=Math.sqrt(c*c+d*d+e*e+g*g);if(0===f)return b[0]=0,b[1]=0,b[2]=0,b[3]=0,b;f=1/f;b[0]=c*f;b[1]=d*f;b[2]=e*f;b[3]=g*f;return b};k.add=function(a,b,c){if(!c||
a===c)return a[0]+=b[0],a[1]+=b[1],a[2]+=b[2],a[3]+=b[3],a;c[0]=a[0]+b[0];c[1]=a[1]+b[1];c[2]=a[2]+b[2];c[3]=a[3]+b[3];return c};k.multiply=function(a,b,c){c||(c=a);var d=a[0],e=a[1],g=a[2],a=a[3],f=b[0],h=b[1],j=b[2],b=b[3];c[0]=d*b+a*f+e*j-g*h;c[1]=e*b+a*h+g*f-d*j;c[2]=g*b+a*j+d*h-e*f;c[3]=a*b-d*f-e*h-g*j;return c};k.multiplyVec3=function(a,b,c){c||(c=b);var d=b[0],e=b[1],g=b[2],b=a[0],f=a[1],h=a[2],a=a[3],j=a*d+f*g-h*e,i=a*e+h*d-b*g,k=a*g+b*e-f*d,d=-b*d-f*e-h*g;c[0]=j*a+d*-b+i*-h-k*-f;c[1]=i*a+
d*-f+k*-b-j*-h;c[2]=k*a+d*-h+j*-f-i*-b;return c};k.scale=function(a,b,c){if(!c||a===c)return a[0]*=b,a[1]*=b,a[2]*=b,a[3]*=b,a;c[0]=a[0]*b;c[1]=a[1]*b;c[2]=a[2]*b;c[3]=a[3]*b;return c};k.toMat3=function(a,b){b||(b=A.create());var c=a[0],d=a[1],e=a[2],g=a[3],f=c+c,h=d+d,j=e+e,i=c*f,k=c*h,c=c*j,l=d*h,d=d*j,e=e*j,f=g*f,h=g*h,g=g*j;b[0]=1-(l+e);b[1]=k+g;b[2]=c-h;b[3]=k-g;b[4]=1-(i+e);b[5]=d+f;b[6]=c+h;b[7]=d-f;b[8]=1-(i+l);return b};k.toMat4=function(a,b){b||(b=x.create());var c=a[0],d=a[1],e=a[2],g=
a[3],f=c+c,h=d+d,j=e+e,i=c*f,k=c*h,c=c*j,l=d*h,d=d*j,e=e*j,f=g*f,h=g*h,g=g*j;b[0]=1-(l+e);b[1]=k+g;b[2]=c-h;b[3]=0;b[4]=k-g;b[5]=1-(i+e);b[6]=d+f;b[7]=0;b[8]=c+h;b[9]=d-f;b[10]=1-(i+l);b[11]=0;b[12]=0;b[13]=0;b[14]=0;b[15]=1;return b};k.slerp=function(a,b,c,d){d||(d=a);var e=a[0]*b[0]+a[1]*b[1]+a[2]*b[2]+a[3]*b[3],g,f;if(1<=Math.abs(e))return d!==a&&(d[0]=a[0],d[1]=a[1],d[2]=a[2],d[3]=a[3]),d;g=Math.acos(e);f=Math.sqrt(1-e*e);if(0.001>Math.abs(f))return d[0]=0.5*a[0]+0.5*b[0],d[1]=0.5*a[1]+0.5*b[1],
d[2]=0.5*a[2]+0.5*b[2],d[3]=0.5*a[3]+0.5*b[3],d;e=Math.sin((1-c)*g)/f;c=Math.sin(c*g)/f;d[0]=a[0]*e+b[0]*c;d[1]=a[1]*e+b[1]*c;d[2]=a[2]*e+b[2]*c;d[3]=a[3]*e+b[3]*c;return d};k.fromRotationMatrix=function(a,b){b||(b=k.create());var c=a[0]+a[4]+a[8],d;if(0<c)d=Math.sqrt(c+1),b[3]=0.5*d,d=0.5/d,b[0]=(a[7]-a[5])*d,b[1]=(a[2]-a[6])*d,b[2]=(a[3]-a[1])*d;else{d=k.fromRotationMatrix.s_iNext=k.fromRotationMatrix.s_iNext||[1,2,0];c=0;a[4]>a[0]&&(c=1);a[8]>a[3*c+c]&&(c=2);var e=d[c],g=d[e];d=Math.sqrt(a[3*c+
c]-a[3*e+e]-a[3*g+g]+1);b[c]=0.5*d;d=0.5/d;b[3]=(a[3*g+e]-a[3*e+g])*d;b[e]=(a[3*e+c]+a[3*c+e])*d;b[g]=(a[3*g+c]+a[3*c+g])*d}return b};A.toQuat4=k.fromRotationMatrix;(function(){var a=A.create();k.fromAxes=function(b,c,d,e){a[0]=c[0];a[3]=c[1];a[6]=c[2];a[1]=d[0];a[4]=d[1];a[7]=d[2];a[2]=b[0];a[5]=b[1];a[8]=b[2];return k.fromRotationMatrix(a,e)}})();k.identity=function(a){a||(a=k.create());a[0]=0;a[1]=0;a[2]=0;a[3]=1;return a};k.fromAngleAxis=function(a,b,c){c||(c=k.create());var a=0.5*a,d=Math.sin(a);
c[3]=Math.cos(a);c[0]=d*b[0];c[1]=d*b[1];c[2]=d*b[2];return c};k.toAngleAxis=function(a,b){b||(b=a);var c=a[0]*a[0]+a[1]*a[1]+a[2]*a[2];0<c?(b[3]=2*Math.acos(a[3]),c=E.invsqrt(c),b[0]=a[0]*c,b[1]=a[1]*c,b[2]=a[2]*c):(b[3]=0,b[0]=1,b[1]=0,b[2]=0);return b};k.str=function(a){return"["+a[0]+", "+a[1]+", "+a[2]+", "+a[3]+"]"};var J={create:function(a){var b=new o(2);a?(b[0]=a[0],b[1]=a[1]):(b[0]=0,b[1]=0);return b},createFrom:function(a,b){var c=new o(2);c[0]=a;c[1]=b;return c},add:function(a,b,c){c||
(c=b);c[0]=a[0]+b[0];c[1]=a[1]+b[1];return c},subtract:function(a,b,c){c||(c=b);c[0]=a[0]-b[0];c[1]=a[1]-b[1];return c},multiply:function(a,b,c){c||(c=b);c[0]=a[0]*b[0];c[1]=a[1]*b[1];return c},divide:function(a,b,c){c||(c=b);c[0]=a[0]/b[0];c[1]=a[1]/b[1];return c},scale:function(a,b,c){c||(c=a);c[0]=a[0]*b;c[1]=a[1]*b;return c},dist:function(a,b){var c=b[0]-a[0],d=b[1]-a[1];return Math.sqrt(c*c+d*d)},set:function(a,b){b[0]=a[0];b[1]=a[1];return b},equal:function(a,b){return a===b||1.0E-6>Math.abs(a[0]-
b[0])&&1.0E-6>Math.abs(a[1]-b[1])},negate:function(a,b){b||(b=a);b[0]=-a[0];b[1]=-a[1];return b},normalize:function(a,b){b||(b=a);var c=a[0]*a[0]+a[1]*a[1];0<c?(c=Math.sqrt(c),b[0]=a[0]/c,b[1]=a[1]/c):b[0]=b[1]=0;return b},cross:function(a,b,c){a=a[0]*b[1]-a[1]*b[0];if(!c)return a;c[0]=c[1]=0;c[2]=a;return c},length:function(a){var b=a[0],a=a[1];return Math.sqrt(b*b+a*a)},squaredLength:function(a){var b=a[0],a=a[1];return b*b+a*a},dot:function(a,b){return a[0]*b[0]+a[1]*b[1]},direction:function(a,
b,c){c||(c=a);var d=a[0]-b[0],a=a[1]-b[1],b=d*d+a*a;if(!b)return c[0]=0,c[1]=0,c[2]=0,c;b=1/Math.sqrt(b);c[0]=d*b;c[1]=a*b;return c},lerp:function(a,b,c,d){d||(d=a);d[0]=a[0]+c*(b[0]-a[0]);d[1]=a[1]+c*(b[1]-a[1]);return d},str:function(a){return"["+a[0]+", "+a[1]+"]"}},I={create:function(a){var b=new o(4);a?(b[0]=a[0],b[1]=a[1],b[2]=a[2],b[3]=a[3]):b[0]=b[1]=b[2]=b[3]=0;return b},createFrom:function(a,b,c,d){var e=new o(4);e[0]=a;e[1]=b;e[2]=c;e[3]=d;return e},set:function(a,b){b[0]=a[0];b[1]=a[1];
b[2]=a[2];b[3]=a[3];return b},equal:function(a,b){return a===b||1.0E-6>Math.abs(a[0]-b[0])&&1.0E-6>Math.abs(a[1]-b[1])&&1.0E-6>Math.abs(a[2]-b[2])&&1.0E-6>Math.abs(a[3]-b[3])},identity:function(a){a||(a=I.create());a[0]=1;a[1]=0;a[2]=0;a[3]=1;return a},transpose:function(a,b){if(!b||a===b){var c=a[1];a[1]=a[2];a[2]=c;return a}b[0]=a[0];b[1]=a[2];b[2]=a[1];b[3]=a[3];return b},determinant:function(a){return a[0]*a[3]-a[2]*a[1]},inverse:function(a,b){b||(b=a);var c=a[0],d=a[1],e=a[2],g=a[3],f=c*g-e*
d;if(!f)return null;f=1/f;b[0]=g*f;b[1]=-d*f;b[2]=-e*f;b[3]=c*f;return b},multiply:function(a,b,c){c||(c=a);var d=a[0],e=a[1],g=a[2],a=a[3];c[0]=d*b[0]+e*b[2];c[1]=d*b[1]+e*b[3];c[2]=g*b[0]+a*b[2];c[3]=g*b[1]+a*b[3];return c},rotate:function(a,b,c){c||(c=a);var d=a[0],e=a[1],g=a[2],a=a[3],f=Math.sin(b),b=Math.cos(b);c[0]=d*b+e*f;c[1]=d*-f+e*b;c[2]=g*b+a*f;c[3]=g*-f+a*b;return c},multiplyVec2:function(a,b,c){c||(c=b);var d=b[0],b=b[1];c[0]=d*a[0]+b*a[1];c[1]=d*a[2]+b*a[3];return c},scale:function(a,
b,c){c||(c=a);var d=a[1],e=a[2],g=a[3],f=b[0],b=b[1];c[0]=a[0]*f;c[1]=d*b;c[2]=e*f;c[3]=g*b;return c},str:function(a){return"["+a[0]+", "+a[1]+", "+a[2]+", "+a[3]+"]"}},K={create:function(a){var b=new o(4);a?(b[0]=a[0],b[1]=a[1],b[2]=a[2],b[3]=a[3]):(b[0]=0,b[1]=0,b[2]=0,b[3]=0);return b},createFrom:function(a,b,c,d){var e=new o(4);e[0]=a;e[1]=b;e[2]=c;e[3]=d;return e},add:function(a,b,c){c||(c=b);c[0]=a[0]+b[0];c[1]=a[1]+b[1];c[2]=a[2]+b[2];c[3]=a[3]+b[3];return c},subtract:function(a,b,c){c||(c=
b);c[0]=a[0]-b[0];c[1]=a[1]-b[1];c[2]=a[2]-b[2];c[3]=a[3]-b[3];return c},multiply:function(a,b,c){c||(c=b);c[0]=a[0]*b[0];c[1]=a[1]*b[1];c[2]=a[2]*b[2];c[3]=a[3]*b[3];return c},divide:function(a,b,c){c||(c=b);c[0]=a[0]/b[0];c[1]=a[1]/b[1];c[2]=a[2]/b[2];c[3]=a[3]/b[3];return c},scale:function(a,b,c){c||(c=a);c[0]=a[0]*b;c[1]=a[1]*b;c[2]=a[2]*b;c[3]=a[3]*b;return c},set:function(a,b){b[0]=a[0];b[1]=a[1];b[2]=a[2];b[3]=a[3];return b},equal:function(a,b){return a===b||1.0E-6>Math.abs(a[0]-b[0])&&1.0E-6>
Math.abs(a[1]-b[1])&&1.0E-6>Math.abs(a[2]-b[2])&&1.0E-6>Math.abs(a[3]-b[3])},negate:function(a,b){b||(b=a);b[0]=-a[0];b[1]=-a[1];b[2]=-a[2];b[3]=-a[3];return b},length:function(a){var b=a[0],c=a[1],d=a[2],a=a[3];return Math.sqrt(b*b+c*c+d*d+a*a)},squaredLength:function(a){var b=a[0],c=a[1],d=a[2],a=a[3];return b*b+c*c+d*d+a*a},lerp:function(a,b,c,d){d||(d=a);d[0]=a[0]+c*(b[0]-a[0]);d[1]=a[1]+c*(b[1]-a[1]);d[2]=a[2]+c*(b[2]-a[2]);d[3]=a[3]+c*(b[3]-a[3]);return d},str:function(a){return"["+a[0]+", "+
a[1]+", "+a[2]+", "+a[3]+"]"}};w&&(w.glMatrixArrayType=o,w.MatrixArray=o,w.setMatrixArrayType=D,w.determineMatrixArrayType=G,w.glMath=E,w.vec2=J,w.vec3=r,w.vec4=K,w.mat2=I,w.mat3=A,w.mat4=x,w.quat4=k);return{glMatrixArrayType:o,MatrixArray:o,setMatrixArrayType:D,determineMatrixArrayType:G,glMath:E,vec2:J,vec3:r,vec4:K,mat2:I,mat3:A,mat4:x,quat4:k}});/**
/*
* A lighter version of the rad gl-matrix created by Brandon Jones, Colin MacKenzie IV
* you both rock!
*/
function determineMatrixArrayType() {
PIXI.Matrix = (typeof Float32Array !== 'undefined') ? Float32Array : Array;
return PIXI.Matrix;
}
determineMatrixArrayType();
PIXI.mat3 = {};
PIXI.mat3.create = function()
{
var matrix = new PIXI.Matrix(9);
matrix[0] = 1;
matrix[1] = 0;
matrix[2] = 0;
matrix[3] = 0;
matrix[4] = 1;
matrix[5] = 0;
matrix[6] = 0;
matrix[7] = 0;
matrix[8] = 1;
return matrix;
}
PIXI.mat4 = {};
PIXI.mat4.create = function()
{
var matrix = new PIXI.Matrix(16);
matrix[0] = 1;
matrix[1] = 0;
matrix[2] = 0;
matrix[3] = 0;
matrix[4] = 0;
matrix[5] = 1;
matrix[6] = 0;
matrix[7] = 0;
matrix[8] = 0;
matrix[9] = 0;
matrix[10] = 1;
matrix[11] = 0;
matrix[12] = 0;
matrix[13] = 0;
matrix[14] = 0;
matrix[15] = 1;
return matrix;
}
PIXI.mat3.multiply = function (mat, mat2, dest)
{
if (!dest) { dest = mat; }
// Cache the matrix values (makes for huge speed increases!)
var a00 = mat[0], a01 = mat[1], a02 = mat[2],
a10 = mat[3], a11 = mat[4], a12 = mat[5],
a20 = mat[6], a21 = mat[7], a22 = mat[8],
b00 = mat2[0], b01 = mat2[1], b02 = mat2[2],
b10 = mat2[3], b11 = mat2[4], b12 = mat2[5],
b20 = mat2[6], b21 = mat2[7], b22 = mat2[8];
dest[0] = b00 * a00 + b01 * a10 + b02 * a20;
dest[1] = b00 * a01 + b01 * a11 + b02 * a21;
dest[2] = b00 * a02 + b01 * a12 + b02 * a22;
dest[3] = b10 * a00 + b11 * a10 + b12 * a20;
dest[4] = b10 * a01 + b11 * a11 + b12 * a21;
dest[5] = b10 * a02 + b11 * a12 + b12 * a22;
dest[6] = b20 * a00 + b21 * a10 + b22 * a20;
dest[7] = b20 * a01 + b21 * a11 + b22 * a21;
dest[8] = b20 * a02 + b21 * a12 + b22 * a22;
return dest;
}
PIXI.mat3.toMat4 = function (mat, dest)
{
if (!dest) { dest = PIXI.mat4.create(); }
dest[15] = 1;
dest[14] = 0;
dest[13] = 0;
dest[12] = 0;
dest[11] = 0;
dest[10] = mat[8];
dest[9] = mat[7];
dest[8] = mat[6];
dest[7] = 0;
dest[6] = mat[5];
dest[5] = mat[4];
dest[4] = mat[3];
dest[3] = 0;
dest[2] = mat[2];
dest[1] = mat[1];
dest[0] = mat[0];
return dest;
}
/////
PIXI.mat4.create = function()
{
var matrix = new PIXI.Matrix(16);
matrix[0] = 1;
matrix[1] = 0;
matrix[2] = 0;
matrix[3] = 0;
matrix[4] = 0;
matrix[5] = 1;
matrix[6] = 0;
matrix[7] = 0;
matrix[8] = 0;
matrix[9] = 0;
matrix[10] = 1;
matrix[11] = 0;
matrix[12] = 0;
matrix[13] = 0;
matrix[14] = 0;
matrix[15] = 1;
return matrix;
}
PIXI.mat4.transpose = function (mat, dest)
{
// If we are transposing ourselves we can skip a few steps but have to cache some values
if (!dest || mat === dest)
{
var a01 = mat[1], a02 = mat[2], a03 = mat[3],
a12 = mat[6], a13 = mat[7],
a23 = mat[11];
mat[1] = mat[4];
mat[2] = mat[8];
mat[3] = mat[12];
mat[4] = a01;
mat[6] = mat[9];
mat[7] = mat[13];
mat[8] = a02;
mat[9] = a12;
mat[11] = mat[14];
mat[12] = a03;
mat[13] = a13;
mat[14] = a23;
return mat;
}
dest[0] = mat[0];
dest[1] = mat[4];
dest[2] = mat[8];
dest[3] = mat[12];
dest[4] = mat[1];
dest[5] = mat[5];
dest[6] = mat[9];
dest[7] = mat[13];
dest[8] = mat[2];
dest[9] = mat[6];
dest[10] = mat[10];
dest[11] = mat[14];
dest[12] = mat[3];
dest[13] = mat[7];
dest[14] = mat[11];
dest[15] = mat[15];
return dest;
}
PIXI.mat4.multiply = function (mat, mat2, dest)
{
if (!dest) { dest = mat; }
// Cache the matrix values (makes for huge speed increases!)
var a00 = mat[ 0], a01 = mat[ 1], a02 = mat[ 2], a03 = mat[3];
var a10 = mat[ 4], a11 = mat[ 5], a12 = mat[ 6], a13 = mat[7];
var a20 = mat[ 8], a21 = mat[ 9], a22 = mat[10], a23 = mat[11];
var a30 = mat[12], a31 = mat[13], a32 = mat[14], a33 = mat[15];
// Cache only the current line of the second matrix
var b0 = mat2[0], b1 = mat2[1], b2 = mat2[2], b3 = mat2[3];
dest[0] = b0*a00 + b1*a10 + b2*a20 + b3*a30;
dest[1] = b0*a01 + b1*a11 + b2*a21 + b3*a31;
dest[2] = b0*a02 + b1*a12 + b2*a22 + b3*a32;
dest[3] = b0*a03 + b1*a13 + b2*a23 + b3*a33;
b0 = mat2[4];
b1 = mat2[5];
b2 = mat2[6];
b3 = mat2[7];
dest[4] = b0*a00 + b1*a10 + b2*a20 + b3*a30;
dest[5] = b0*a01 + b1*a11 + b2*a21 + b3*a31;
dest[6] = b0*a02 + b1*a12 + b2*a22 + b3*a32;
dest[7] = b0*a03 + b1*a13 + b2*a23 + b3*a33;
b0 = mat2[8];
b1 = mat2[9];
b2 = mat2[10];
b3 = mat2[11];
dest[8] = b0*a00 + b1*a10 + b2*a20 + b3*a30;
dest[9] = b0*a01 + b1*a11 + b2*a21 + b3*a31;
dest[10] = b0*a02 + b1*a12 + b2*a22 + b3*a32;
dest[11] = b0*a03 + b1*a13 + b2*a23 + b3*a33;
b0 = mat2[12];
b1 = mat2[13];
b2 = mat2[14];
b3 = mat2[15];
dest[12] = b0*a00 + b1*a10 + b2*a20 + b3*a30;
dest[13] = b0*a01 + b1*a11 + b2*a21 + b3*a31;
dest[14] = b0*a02 + b1*a12 + b2*a22 + b3*a32;
dest[15] = b0*a03 + b1*a13 + b2*a23 + b3*a33;
return dest;
}
/**
* @author Mat Groves http://matgroves.com/ @Doormat23
*/
@ -1455,8 +1658,7 @@ PIXI.WebGLRenderer = function(width, height, view)
gl.enable(gl.BLEND);
gl.colorMask(true, true, true, false);
this.projectionMatrix = mat4.create();
this.projectionMatrix = PIXI.mat4.create();
this.resize(this.width, this.height)
this.contextLost = false;
}
@ -1943,9 +2145,12 @@ PIXI.WebGLRenderer.prototype.resize = function(width, height)
this.gl.viewport(0, 0, this.width, this.height);
mat4.identity(this.projectionMatrix);
mat4.scale(this.projectionMatrix, [2/this.width, -2/this.height, 1]);
mat4.translate(this.projectionMatrix, [-this.width/2, -this.height/2, 0]);
var projectionMatrix = this.projectionMatrix;
projectionMatrix[0] = 2/this.width;
projectionMatrix[5] = -2/this.height;
projectionMatrix[12] = -1;
projectionMatrix[13] = 1;
}
/**
@ -1984,10 +2189,9 @@ PIXI.WebGLRenderer.prototype.renderStrip = function(strip)
var gl = this.gl;
var shaderProgram = this.shaderProgram;
// mat
var mat4Real = mat3.toMat4(strip.worldTransform);
mat4.transpose(mat4Real);
mat4.multiply(this.projectionMatrix, mat4Real, mat4Real )
var mat4Real = PIXI.mat3.toMat4(strip.worldTransform);
PIXI.mat4.transpose(mat4Real);
PIXI.mat4.multiply(this.projectionMatrix, mat4Real, mat4Real )
gl.uniformMatrix4fv(this.shaderProgram.mvMatrixUniform, false, mat4Real);

View file

@ -1,144 +1,103 @@
var PIXI=PIXI||{};PIXI.Point=function(a,c){this.x=a||0;this.y=c||0};PIXI.Point.clone=function(){return new PIXI.Point(this.x,this.y)};PIXI.Point.constructor=PIXI.Point;PIXI.Rectangle=function(a,c,d,f){this.x=a||0;this.y=c||0;this.width=d||0;this.height=f||0};PIXI.Rectangle.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.rotation=0;this.alpha=1;this.visible=!0;this.cacheVisible=!1;this.stage=this.parent=null;this.worldAlpha=1;this.color=[];this.worldTransform=mat3.identity();this.localTransform=mat3.identity();this.dynamic=!0;this._sr=0;this._cr=1;this.renderable=!1;this.interactive=!0};PIXI.DisplayObject.constructor=PIXI.DisplayObject;
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));this.localTransform[0]=this._cr*this.scale.x;this.localTransform[1]=-this._sr*this.scale.y;this.localTransform[3]=this._sr*this.scale.x;this.localTransform[4]=this._cr*this.scale.y;this.localTransform[2]=this.position.x;this.localTransform[5]=this.position.y;mat3.multiply(this.localTransform,this.parent.worldTransform,
this.worldTransform);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);
var PIXI=PIXI||{};PIXI.Point=function(a,b){this.x=a||0;this.y=b||0};PIXI.Point.clone=function(){return new PIXI.Point(this.x,this.y)};PIXI.Point.constructor=PIXI.Point;PIXI.Rectangle=function(a,b,c,d){this.x=a||0;this.y=b||0;this.width=c||0;this.height=d||0};PIXI.Rectangle.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.rotation=0;this.alpha=1;this.visible=!0;this.cacheVisible=!1;this.stage=this.parent=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.renderable=!1;this.interactive=!0};PIXI.DisplayObject.constructor=PIXI.DisplayObject;
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 a=this.localTransform,b=this.parent.worldTransform,c=this.worldTransform;a[0]=this._cr*this.scale.x;a[1]=-this._sr*this.scale.y;a[3]=this._sr*this.scale.x;a[4]=this._cr*this.scale.y;a[2]=this.position.x;a[5]=this.position.y;var d=a[0],e=a[1],f=a[2],g=a[3],h=a[4],a=a[5];b00=b[0];b01=b[1];b02=b[2];b10=b[3];
b11=b[4];b12=b[5];c[0]=b00*d+b01*g;c[1]=b00*e+b01*h;c[2]=b00*f+b01*a+b02;c[3]=b10*d+b11*g;c[4]=b10*e+b11*h;c[5]=b10*f+b11*a+b12;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(a){void 0!=a.parent&&a.parent.removeChild(a);a.parent=this;a.childIndex=this.children.length;this.children.push(a);this.stage&&this.stage.__addChild(a)};
PIXI.DisplayObjectContainer.prototype.addChildAt=function(a,c){if(0<=c&&c<=this.children.length){void 0!=a.parent&&a.parent.removeChild(a);c==this.children.length?this.children.push(a):this.children.splice(c,0,a);a.parent=this;a.childIndex=c;for(var d=this.children.length,f=c;f<d;f++)this.children[f].childIndex=f;this.stage&&this.stage.__addChild(a)}else throw Error(a+" The index "+c+" supplied is out of bounds "+this.children.length);};
PIXI.DisplayObjectContainer.prototype.removeChild=function(a){var c=this.children.indexOf(a);if(-1!==c){this.stage&&this.stage.__removeChild(a);a.parent=void 0;this.children.splice(c,1);a=c;for(c=this.children.length;a<c;a++)this.children[a].childIndex-=1}else throw Error(a+" The supplied DisplayObject must be a child of the caller "+this);};
PIXI.DisplayObjectContainer.prototype.updateTransform=function(){if(this.visible){PIXI.DisplayObject.prototype.updateTransform.call(this);for(var a=0,c=this.children.length;a<c;a++)this.children[a].updateTransform()}};PIXI.blendModes={};PIXI.blendModes.NORMAL=0;PIXI.blendModes.SCREEN=1;
PIXI.DisplayObjectContainer.prototype.addChildAt=function(a,b){if(0<=b&&b<=this.children.length){void 0!=a.parent&&a.parent.removeChild(a);b==this.children.length?this.children.push(a):this.children.splice(b,0,a);a.parent=this;a.childIndex=b;for(var c=this.children.length,d=b;d<c;d++)this.children[d].childIndex=d;this.stage&&this.stage.__addChild(a)}else throw Error(a+" The index "+b+" supplied is out of bounds "+this.children.length);};
PIXI.DisplayObjectContainer.prototype.removeChild=function(a){var b=this.children.indexOf(a);if(-1!==b){this.stage&&this.stage.__removeChild(a);a.parent=void 0;this.children.splice(b,1);a=b;for(b=this.children.length;a<b;a++)this.children[a].childIndex-=1}else throw Error(a+" The supplied DisplayObject must be a child of the caller "+this);};
PIXI.DisplayObjectContainer.prototype.updateTransform=function(){if(this.visible){PIXI.DisplayObject.prototype.updateTransform.call(this);for(var a=0,b=this.children.length;a<b;a++)this.children[a].updateTransform()}};PIXI.blendModes={};PIXI.blendModes.NORMAL=0;PIXI.blendModes.SCREEN=1;
PIXI.Sprite=function(a){PIXI.DisplayObjectContainer.call(this);this.anchor=new PIXI.Point;this.texture=a;this.blendMode=PIXI.blendModes.NORMAL;this.height=this.width=1;a.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;this.interactive=!1};PIXI.Sprite.constructor=PIXI.Sprite;
PIXI.Sprite.prototype=Object.create(PIXI.DisplayObjectContainer.prototype);PIXI.Sprite.prototype.setTexture=function(a){this.texture.baseTexture!=a.baseTexture&&(this.textureChange=!0);this.texture=a;this.width=a.frame.width;this.height=a.frame.height;this.updateFrame=!0};PIXI.Sprite.prototype.setInteractive=function(a){this.interactive=a;this.stage&&(this.stage.dirty=!0)};
PIXI.Sprite.prototype.onTextureUpdate=function(){this.width=this.texture.frame.width;this.height=this.texture.frame.height;this.updateFrame=!0};PIXI.Sprite.fromFrame=function(a){var c=PIXI.TextureCache[a];if(!c)throw Error("The frameId '"+a+"' does not exist in the texture cache"+this);return new PIXI.Sprite(c)};PIXI.Sprite.fromImage=function(a){a=PIXI.Texture.fromImage(a);return new PIXI.Sprite(a)};
PIXI.Sprite.prototype.onTextureUpdate=function(){this.width=this.texture.frame.width;this.height=this.texture.frame.height;this.updateFrame=!0};PIXI.Sprite.fromFrame=function(a){var b=PIXI.TextureCache[a];if(!b)throw Error("The frameId '"+a+"' does not exist in the texture cache"+this);return new PIXI.Sprite(b)};PIXI.Sprite.fromImage=function(a){a=PIXI.Texture.fromImage(a);return new PIXI.Sprite(a)};
PIXI.MovieClip=function(a){PIXI.Sprite.call(this,a[0]);this.textures=a;this.currentFrame=0;this.animationSpeed=1};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(a){this.playing=!1;this.currentFrame=a;this.setTexture(this.textures[(this.currentFrame+0.5|0)%this.textures.length])};
PIXI.MovieClip.prototype.gotoAndPlay=function(a){this.currentFrame=a;this.playing=!0};PIXI.MovieClip.prototype.updateTransform=function(){PIXI.Sprite.prototype.updateTransform.call(this);this.playing&&(this.currentFrame+=this.animationSpeed,this.setTexture(this.textures[(this.currentFrame+0.5|0)%this.textures.length]))};
PIXI.InteractionManager=function(a){this.stage=a;this.tempPoint=new PIXI.Point;this.tempMatrix=mat3.create();this.mouseoverEnabled=!0;this.mouse=new PIXI.InteractionData;this.touchs={};this.pool=[];this.interactiveItems=[]};PIXI.InteractionManager.constructor=PIXI.InteractionManager;PIXI.InteractionManager.prototype.disableMouseOver=function(){this.mouseoverEnabled&&(this.mouseoverEnabled=!1,this.target&&this.target.view.removeEventListener("mousemove",this.onMouseMove.bind(this)))};
PIXI.InteractionManager.prototype.enableMouseOver=function(){this.mouseoverEnabled||(this.mouseoverEnabled=!1,this.target&&this.target.view.addEventListener("mousemove",this.onMouseMove.bind(this)))};PIXI.InteractionManager.prototype.collectInteractiveSprite=function(a){a=a.children;for(var c=a.length-1;0<=c;c--){var d=a[c];if(d instanceof PIXI.Sprite)d.interactive&&this.interactiveItems.push(d);else if(!d.interactive)continue;0<d.children.length&&this.collectInteractiveSprite(d)}};
PIXI.InteractionManager=function(a){this.stage=a;this.tempPoint=new PIXI.Point;this.mouseoverEnabled=!0;this.mouse=new PIXI.InteractionData;this.touchs={};this.pool=[];this.interactiveItems=[]};PIXI.InteractionManager.constructor=PIXI.InteractionManager;PIXI.InteractionManager.prototype.disableMouseOver=function(){this.mouseoverEnabled&&(this.mouseoverEnabled=!1,this.target&&this.target.view.removeEventListener("mousemove",this.onMouseMove.bind(this)))};
PIXI.InteractionManager.prototype.enableMouseOver=function(){this.mouseoverEnabled||(this.mouseoverEnabled=!1,this.target&&this.target.view.addEventListener("mousemove",this.onMouseMove.bind(this)))};PIXI.InteractionManager.prototype.collectInteractiveSprite=function(a){a=a.children;for(var b=a.length-1;0<=b;b--){var c=a[b];if(c instanceof PIXI.Sprite)c.interactive&&this.interactiveItems.push(c);else if(!c.interactive)continue;0<c.children.length&&this.collectInteractiveSprite(c)}};
PIXI.InteractionManager.prototype.setTarget=function(a){this.target=a;this.mouseoverEnabled&&a.view.addEventListener("mousemove",this.onMouseMove.bind(this),!0);a.view.addEventListener("mousedown",this.onMouseDown.bind(this),!0);a.view.addEventListener("mouseup",this.onMouseUp.bind(this),!0);a.view.addEventListener("mouseout",this.onMouseUp.bind(this),!0);a.view.addEventListener("touchstart",this.onTouchStart.bind(this),!0);a.view.addEventListener("touchend",this.onTouchEnd.bind(this),!0);a.view.addEventListener("touchmove",
this.onTouchMove.bind(this),!0)};
PIXI.InteractionManager.prototype.hitTest=function(a){this.dirty&&(this.dirty=!1,this.interactiveItems=[],this.collectInteractiveSprite(this.stage));for(var c=this.tempPoint,d=a.global,f=this.interactiveItems.length,g=0;g<f;g++){var h=this.interactiveItems[g];if(h.visible){var j=h.worldTransform,k=j[0],r=j[1],n=j[2],z=j[3],D=j[4],j=j[5],m=1/(k*D+r*-z);c.x=D*m*d.x+-r*m*d.y+(j*r-n*D)*m;c.y=k*m*d.y+-z*m*d.x+(-j*k+n*z)*m;k=-h.width*h.anchor.x;if(c.x>k&&c.x<k+h.width&&(k=-h.height*h.anchor.y,c.y>k&&c.y<
k+h.height))return a.local.x=c.x,a.local.y=c.y,h}}return null};
PIXI.InteractionManager.prototype.onMouseMove=function(a){a.preventDefault();var c=this.target.view.getBoundingClientRect();this.mouse.global.x=(a.clientX-c.left)*(this.target.width/c.width);this.mouse.global.y=(a.clientY-c.top)*(this.target.height/c.height);a=this.hitTest(this.mouse);this.currentOver!=a&&(this.currentOver&&(this.mouse.target=this.currentOver,this.currentOver.mouseout&&this.currentOver.mouseout(this.mouse),this.currentOver=null),this.target.view.style.cursor="default");a&&this.currentOver!=
a&&(this.currentOver=a,this.target.view.style.cursor="pointer",this.mouse.target=a,a.mouseover&&a.mouseover(this.mouse))};PIXI.InteractionManager.prototype.onMouseDown=function(a){var c=this.target.view.getBoundingClientRect();this.mouse.global.x=(a.clientX-c.left)*(this.target.width/c.width);this.mouse.global.y=(a.clientY-c.top)*(this.target.height/c.height);if(a=this.hitTest(this.mouse))this.currentDown=a,this.mouse.target=a,a.mousedown&&a.mousedown(this.mouse)};
PIXI.InteractionManager.prototype.hitTest=function(a){this.dirty&&(this.dirty=!1,this.interactiveItems=[],this.collectInteractiveSprite(this.stage));for(var b=this.tempPoint,c=a.global,d=this.interactiveItems.length,e=0;e<d;e++){var f=this.interactiveItems[e];if(f.visible){var g=f.worldTransform,h=g[0],k=g[1],m=g[2],n=g[3],p=g[4],g=g[5],j=1/(h*p+k*-n);b.x=p*j*c.x+-k*j*c.y+(g*k-m*p)*j;b.y=h*j*c.y+-n*j*c.x+(-g*h+m*n)*j;h=-f.width*f.anchor.x;if(b.x>h&&b.x<h+f.width&&(h=-f.height*f.anchor.y,b.y>h&&b.y<
h+f.height))return a.local.x=b.x,a.local.y=b.y,f}}return null};
PIXI.InteractionManager.prototype.onMouseMove=function(a){a.preventDefault();var b=this.target.view.getBoundingClientRect();this.mouse.global.x=(a.clientX-b.left)*(this.target.width/b.width);this.mouse.global.y=(a.clientY-b.top)*(this.target.height/b.height);a=this.hitTest(this.mouse);this.currentOver!=a&&(this.currentOver&&(this.mouse.target=this.currentOver,this.currentOver.mouseout&&this.currentOver.mouseout(this.mouse),this.currentOver=null),this.target.view.style.cursor="default");a&&this.currentOver!=
a&&(this.currentOver=a,this.target.view.style.cursor="pointer",this.mouse.target=a,a.mouseover&&a.mouseover(this.mouse))};PIXI.InteractionManager.prototype.onMouseDown=function(a){var b=this.target.view.getBoundingClientRect();this.mouse.global.x=(a.clientX-b.left)*(this.target.width/b.width);this.mouse.global.y=(a.clientY-b.top)*(this.target.height/b.height);if(a=this.hitTest(this.mouse))this.currentDown=a,this.mouse.target=a,a.mousedown&&a.mousedown(this.mouse)};
PIXI.InteractionManager.prototype.onMouseUp=function(){this.currentOver&&(this.mouse.target=this.currentOver,this.currentOver.mouseup&&this.currentOver.mouseup(this.mouse));this.currentDown&&(this.mouse.target=this.currentDown,this.currentOver==this.currentDown&&this.currentDown.click&&this.currentDown.click(this.mouse),this.currentDown=null)};
PIXI.InteractionManager.prototype.onTouchMove=function(a){a.preventDefault();var c=this.target.view.getBoundingClientRect();a=a.changedTouches;for(var d=0;d<a.length;d++){var f=a[d],g=this.touchs[f.identifier];g.global.x=(f.clientX-c.left)*(this.target.width/c.width);g.global.y=(f.clientY-c.top)*(this.target.height/c.height)}};
PIXI.InteractionManager.prototype.onTouchStart=function(a){a.preventDefault();var c=this.target.view.getBoundingClientRect();a=a.changedTouches;for(var d=0;d<a.length;d++){var f=a[d],g=this.pool.pop();g||(g=new PIXI.InteractionData);this.touchs[f.identifier]=g;g.global.x=(f.clientX-c.left)*(this.target.width/c.width);g.global.y=(f.clientY-c.top)*(this.target.height/c.height);if(f=this.hitTest(g))g.currentDown=f,g.target=f,f.touchstart&&f.touchstart(g)}};
PIXI.InteractionManager.prototype.onTouchEnd=function(a){a.preventDefault();var c=this.target.view.getBoundingClientRect();a=a.changedTouches;for(var d=0;d<a.length;d++){var f=a[d],g=this.touchs[f.identifier];g.global.x=(f.clientX-c.left)*(this.target.width/c.width);g.global.y=(f.clientY-c.top)*(this.target.height/c.height);g.currentDown&&(g.currentDown.touchend&&g.currentDown.touchend(g),this.hitTest(g)==g.currentDown&&g.currentDown.tap&&g.currentDown.tap(g),g.currentDown=null);this.pool.push(g);
this.touchs[f.identifier]=null}};PIXI.InteractionData=function(){this.global=new PIXI.Point;this.local=new PIXI.Point};PIXI.InteractionData.constructor=PIXI.InteractionData;PIXI.Stage=function(a,c){PIXI.DisplayObjectContainer.call(this);this.worldTransform=mat3.identity();this.__childrenAdded=[];this.__childrenRemoved=[];this.childIndex=0;this.stage=this;this.interactive=!!c;this.interactionManager=new PIXI.InteractionManager(this);this.setBackgroundColor(a)};PIXI.Stage.constructor=PIXI.Stage;
PIXI.Stage.prototype=Object.create(PIXI.DisplayObjectContainer.prototype);PIXI.Stage.prototype.updateTransform=function(){this.worldAlpha=1;for(var a=0,c=this.children.length;a<c;a++)this.children[a].updateTransform();this.dirty&&(this.dirty=!1,this.interactionManager.dirty=!0)};PIXI.Stage.prototype.setBackgroundColor=function(a){this.backgroundColor=a||0;this.backgroundColorSplit=HEXtoRGB(this.backgroundColor);this.backgroundColorString="#"+this.backgroundColor.toString(16)};
PIXI.Stage.prototype.__addChild=function(a){a.interactive&&(this.dirty=!0);a.stage=this;if(a.children)for(var c=0;c<a.children.length;c++)this.__addChild(a.children[c])};PIXI.Stage.prototype.__removeChild=function(a){a.interactive&&(this.dirty=!0);this.__childrenRemoved.push(a);a.stage=void 0;if(a.children)for(var c=0,d=a.children.length;c<d;c++)this.__removeChild(a.children[c])};
PIXI.InteractionManager.prototype.onTouchMove=function(a){a.preventDefault();var b=this.target.view.getBoundingClientRect();a=a.changedTouches;for(var c=0;c<a.length;c++){var d=a[c],e=this.touchs[d.identifier];e.global.x=(d.clientX-b.left)*(this.target.width/b.width);e.global.y=(d.clientY-b.top)*(this.target.height/b.height)}};
PIXI.InteractionManager.prototype.onTouchStart=function(a){a.preventDefault();var b=this.target.view.getBoundingClientRect();a=a.changedTouches;for(var c=0;c<a.length;c++){var d=a[c],e=this.pool.pop();e||(e=new PIXI.InteractionData);this.touchs[d.identifier]=e;e.global.x=(d.clientX-b.left)*(this.target.width/b.width);e.global.y=(d.clientY-b.top)*(this.target.height/b.height);if(d=this.hitTest(e))e.currentDown=d,e.target=d,d.touchstart&&d.touchstart(e)}};
PIXI.InteractionManager.prototype.onTouchEnd=function(a){a.preventDefault();var b=this.target.view.getBoundingClientRect();a=a.changedTouches;for(var c=0;c<a.length;c++){var d=a[c],e=this.touchs[d.identifier];e.global.x=(d.clientX-b.left)*(this.target.width/b.width);e.global.y=(d.clientY-b.top)*(this.target.height/b.height);e.currentDown&&(e.currentDown.touchend&&e.currentDown.touchend(e),this.hitTest(e)==e.currentDown&&e.currentDown.tap&&e.currentDown.tap(e),e.currentDown=null);this.pool.push(e);
this.touchs[d.identifier]=null}};PIXI.InteractionData=function(){this.global=new PIXI.Point;this.local=new PIXI.Point};PIXI.InteractionData.constructor=PIXI.InteractionData;PIXI.Stage=function(a,b){PIXI.DisplayObjectContainer.call(this);this.worldTransform=PIXI.mat3.create();this.__childrenAdded=[];this.__childrenRemoved=[];this.childIndex=0;this.stage=this;this.interactive=!!b;this.interactionManager=new PIXI.InteractionManager(this);this.setBackgroundColor(a)};PIXI.Stage.constructor=PIXI.Stage;
PIXI.Stage.prototype=Object.create(PIXI.DisplayObjectContainer.prototype);PIXI.Stage.prototype.updateTransform=function(){this.worldAlpha=1;for(var a=0,b=this.children.length;a<b;a++)this.children[a].updateTransform();this.dirty&&(this.dirty=!1,this.interactionManager.dirty=!0)};PIXI.Stage.prototype.setBackgroundColor=function(a){this.backgroundColor=a||0;this.backgroundColorSplit=HEXtoRGB(this.backgroundColor);this.backgroundColorString="#"+this.backgroundColor.toString(16)};
PIXI.Stage.prototype.__addChild=function(a){a.interactive&&(this.dirty=!0);a.stage=this;if(a.children)for(var b=0;b<a.children.length;b++)this.__addChild(a.children[b])};PIXI.Stage.prototype.__removeChild=function(a){a.interactive&&(this.dirty=!0);this.__childrenRemoved.push(a);a.stage=void 0;if(a.children)for(var b=0,c=a.children.length;b<c;b++)this.__removeChild(a.children[b])};
window.requestAnimFrame=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(a){window.setTimeout(a,1E3/60)}}();function HEXtoRGB(a){return[(a>>16&255)/255,(a>>8&255)/255,(a&255)/255]}
"function"!=typeof Function.prototype.bind&&(Function.prototype.bind=function(){var a=Array.prototype.slice;return function(c){function d(){var h=g.concat(a.call(arguments));f.apply(this instanceof d?this:c,h)}var f=this,g=a.call(arguments,1);if("function"!=typeof f)throw new TypeError;d.prototype=function j(a){a&&(j.prototype=a);if(!(this instanceof j))return new j}(f.prototype);return d}}());
var AjaxRequest=function(){var a=["Msxml2.XMLHTTP","Microsoft.XMLHTTP"];if(window.ActiveXObject)for(var c=0;c<a.length;c++)try{return new ActiveXObject(a[c])}catch(d){}else return window.XMLHttpRequest?new XMLHttpRequest:!1};
PIXI.EventTarget=function(){var a={};this.addEventListener=function(c,d){void 0===a[c]&&(a[c]=[]);-1===a[c].indexOf(d)&&a[c].push(d)};this.dispatchEvent=function(c){for(var d in a[c.type])a[c.type][d](c)};this.removeEventListener=function(c,d){var f=a[c].indexOf(d);-1!==f&&a[c].splice(f,1)}};
(function(a,c){"object"===typeof exports?module.exports=c(global):"function"===typeof define&&define.amd?define([],function(){return c(a)}):c(a)})(this,function(a){function c(b){return j=b}function d(){return j="undefined"!==typeof Float32Array?Float32Array:Array}var f={};if("undefined"!=typeof Float32Array){var g=new Float32Array(1),h=new Int32Array(g.buffer);f.invsqrt=function(b){g[0]=b;h[0]=1597463007-(h[0]>>1);var e=g[0];return e*(1.5-0.5*b*e*e)}}else f.invsqrt=function(b){return 1/Math.sqrt(b)};
var j=null;d();var k={create:function(b){var e=new j(3);b?(e[0]=b[0],e[1]=b[1],e[2]=b[2]):e[0]=e[1]=e[2]=0;return e},createFrom:function(b,e,a){var c=new j(3);c[0]=b;c[1]=e;c[2]=a;return c},set:function(b,e){e[0]=b[0];e[1]=b[1];e[2]=b[2];return e},equal:function(b,e){return b===e||1E-6>Math.abs(b[0]-e[0])&&1E-6>Math.abs(b[1]-e[1])&&1E-6>Math.abs(b[2]-e[2])},add:function(b,e,a){if(!a||b===a)return b[0]+=e[0],b[1]+=e[1],b[2]+=e[2],b;a[0]=b[0]+e[0];a[1]=b[1]+e[1];a[2]=b[2]+e[2];return a},subtract:function(b,
e,a){if(!a||b===a)return b[0]-=e[0],b[1]-=e[1],b[2]-=e[2],b;a[0]=b[0]-e[0];a[1]=b[1]-e[1];a[2]=b[2]-e[2];return a},multiply:function(b,e,a){if(!a||b===a)return b[0]*=e[0],b[1]*=e[1],b[2]*=e[2],b;a[0]=b[0]*e[0];a[1]=b[1]*e[1];a[2]=b[2]*e[2];return a},negate:function(b,e){e||(e=b);e[0]=-b[0];e[1]=-b[1];e[2]=-b[2];return e},scale:function(b,e,a){if(!a||b===a)return b[0]*=e,b[1]*=e,b[2]*=e,b;a[0]=b[0]*e;a[1]=b[1]*e;a[2]=b[2]*e;return a},normalize:function(b,e){e||(e=b);var a=b[0],c=b[1],q=b[2],d=Math.sqrt(a*
a+c*c+q*q);if(!d)return e[0]=0,e[1]=0,e[2]=0,e;if(1===d)return e[0]=a,e[1]=c,e[2]=q,e;d=1/d;e[0]=a*d;e[1]=c*d;e[2]=q*d;return e},cross:function(b,e,a){a||(a=b);var c=b[0],q=b[1];b=b[2];var d=e[0],f=e[1];e=e[2];a[0]=q*e-b*f;a[1]=b*d-c*e;a[2]=c*f-q*d;return a},length:function(b){var e=b[0],a=b[1];b=b[2];return Math.sqrt(e*e+a*a+b*b)},squaredLength:function(b){var e=b[0],a=b[1];b=b[2];return e*e+a*a+b*b},dot:function(b,e){return b[0]*e[0]+b[1]*e[1]+b[2]*e[2]},direction:function(b,e,a){a||(a=b);var c=
b[0]-e[0],q=b[1]-e[1];b=b[2]-e[2];e=Math.sqrt(c*c+q*q+b*b);if(!e)return a[0]=0,a[1]=0,a[2]=0,a;e=1/e;a[0]=c*e;a[1]=q*e;a[2]=b*e;return a},lerp:function(b,e,a,c){c||(c=b);c[0]=b[0]+a*(e[0]-b[0]);c[1]=b[1]+a*(e[1]-b[1]);c[2]=b[2]+a*(e[2]-b[2]);return c},dist:function(b,e){var a=e[0]-b[0],c=e[1]-b[1],q=e[2]-b[2];return Math.sqrt(a*a+c*c+q*q)}},r=null,n=new j(4);k.unproject=function(b,e,a,c,q){q||(q=b);r||(r=s.create());var d=r;n[0]=2*(b[0]-c[0])/c[2]-1;n[1]=2*(b[1]-c[1])/c[3]-1;n[2]=2*b[2]-1;n[3]=1;
s.multiply(a,e,d);if(!s.inverse(d))return null;s.multiplyVec4(d,n);if(0===n[3])return null;q[0]=n[0]/n[3];q[1]=n[1]/n[3];q[2]=n[2]/n[3];return q};var z=k.createFrom(1,0,0),D=k.createFrom(0,1,0),m=k.createFrom(0,0,1),u=k.create();k.rotationTo=function(b,e,a){a||(a=l.create());var c=k.dot(b,e);if(1<=c)l.set(G,a);else if(-0.999999>c)k.cross(z,b,u),1E-6>k.length(u)&&k.cross(D,b,u),1E-6>k.length(u)&&k.cross(m,b,u),k.normalize(u),l.fromAngleAxis(Math.PI,u,a);else{var c=Math.sqrt(2*(1+c)),q=1/c;k.cross(b,
e,u);a[0]=u[0]*q;a[1]=u[1]*q;a[2]=u[2]*q;a[3]=0.5*c;l.normalize(a)}1<a[3]?a[3]=1:-1>a[3]&&(a[3]=-1);return a};k.str=function(b){return"["+b[0]+", "+b[1]+", "+b[2]+"]"};var y={create:function(b){var e=new j(9);b?(e[0]=b[0],e[1]=b[1],e[2]=b[2],e[3]=b[3],e[4]=b[4],e[5]=b[5],e[6]=b[6],e[7]=b[7],e[8]=b[8]):e[0]=e[1]=e[2]=e[3]=e[4]=e[5]=e[6]=e[7]=e[8]=0;return e},createFrom:function(b,e,a,c,q,d,f,g,H){var v=new j(9);v[0]=b;v[1]=e;v[2]=a;v[3]=c;v[4]=q;v[5]=d;v[6]=f;v[7]=g;v[8]=H;return v},determinant:function(b){var e=
b[3],a=b[4],c=b[5],q=b[6],d=b[7],f=b[8];return b[0]*(f*a-c*d)+b[1]*(-f*e+c*q)+b[2]*(d*e-a*q)},inverse:function(b,e){var a=b[0],c=b[1],q=b[2],d=b[3],f=b[4],g=b[5],H=b[6],v=b[7],h=b[8],j=h*f-g*v,k=-h*d+g*H,l=v*d-f*H,p=a*j+c*k+q*l;if(!p)return null;p=1/p;e||(e=y.create());e[0]=j*p;e[1]=(-h*c+q*v)*p;e[2]=(g*c-q*f)*p;e[3]=k*p;e[4]=(h*a-q*H)*p;e[5]=(-g*a+q*d)*p;e[6]=l*p;e[7]=(-v*a+c*H)*p;e[8]=(f*a-c*d)*p;return e},multiply:function(b,e,a){a||(a=b);var c=b[0],q=b[1],d=b[2],f=b[3],g=b[4],H=b[5],v=b[6],h=
b[7];b=b[8];var j=e[0],k=e[1],l=e[2],p=e[3],m=e[4],t=e[5],n=e[6],w=e[7];e=e[8];a[0]=j*c+k*f+l*v;a[1]=j*q+k*g+l*h;a[2]=j*d+k*H+l*b;a[3]=p*c+m*f+t*v;a[4]=p*q+m*g+t*h;a[5]=p*d+m*H+t*b;a[6]=n*c+w*f+e*v;a[7]=n*q+w*g+e*h;a[8]=n*d+w*H+e*b;return a},multiplyVec2:function(b,e,a){a||(a=e);var c=e[0];e=e[1];a[0]=c*b[0]+e*b[3]+b[6];a[1]=c*b[1]+e*b[4]+b[7];return a},multiplyVec3:function(b,e,a){a||(a=e);var c=e[0],q=e[1];e=e[2];a[0]=c*b[0]+q*b[3]+e*b[6];a[1]=c*b[1]+q*b[4]+e*b[7];a[2]=c*b[2]+q*b[5]+e*b[8];return a},
set:function(b,e){e[0]=b[0];e[1]=b[1];e[2]=b[2];e[3]=b[3];e[4]=b[4];e[5]=b[5];e[6]=b[6];e[7]=b[7];e[8]=b[8];return e},equal:function(b,e){return b===e||1E-6>Math.abs(b[0]-e[0])&&1E-6>Math.abs(b[1]-e[1])&&1E-6>Math.abs(b[2]-e[2])&&1E-6>Math.abs(b[3]-e[3])&&1E-6>Math.abs(b[4]-e[4])&&1E-6>Math.abs(b[5]-e[5])&&1E-6>Math.abs(b[6]-e[6])&&1E-6>Math.abs(b[7]-e[7])&&1E-6>Math.abs(b[8]-e[8])},identity:function(b){b||(b=y.create());b[0]=1;b[1]=0;b[2]=0;b[3]=0;b[4]=1;b[5]=0;b[6]=0;b[7]=0;b[8]=1;return b},transpose:function(b,
e){if(!e||b===e){var a=b[1],c=b[2],q=b[5];b[1]=b[3];b[2]=b[6];b[3]=a;b[5]=b[7];b[6]=c;b[7]=q;return b}e[0]=b[0];e[1]=b[3];e[2]=b[6];e[3]=b[1];e[4]=b[4];e[5]=b[7];e[6]=b[2];e[7]=b[5];e[8]=b[8];return e},toMat4:function(b,e){e||(e=s.create());e[15]=1;e[14]=0;e[13]=0;e[12]=0;e[11]=0;e[10]=b[8];e[9]=b[7];e[8]=b[6];e[7]=0;e[6]=b[5];e[5]=b[4];e[4]=b[3];e[3]=0;e[2]=b[2];e[1]=b[1];e[0]=b[0];return e},str:function(b){return"["+b[0]+", "+b[1]+", "+b[2]+", "+b[3]+", "+b[4]+", "+b[5]+", "+b[6]+", "+b[7]+", "+
b[8]+"]"}},s={create:function(b){var e=new j(16);b&&(e[0]=b[0],e[1]=b[1],e[2]=b[2],e[3]=b[3],e[4]=b[4],e[5]=b[5],e[6]=b[6],e[7]=b[7],e[8]=b[8],e[9]=b[9],e[10]=b[10],e[11]=b[11],e[12]=b[12],e[13]=b[13],e[14]=b[14],e[15]=b[15]);return e},createFrom:function(b,e,a,c,q,d,f,g,h,v,N,I,k,l,p,m){var t=new j(16);t[0]=b;t[1]=e;t[2]=a;t[3]=c;t[4]=q;t[5]=d;t[6]=f;t[7]=g;t[8]=h;t[9]=v;t[10]=N;t[11]=I;t[12]=k;t[13]=l;t[14]=p;t[15]=m;return t},set:function(b,e){e[0]=b[0];e[1]=b[1];e[2]=b[2];e[3]=b[3];e[4]=b[4];
e[5]=b[5];e[6]=b[6];e[7]=b[7];e[8]=b[8];e[9]=b[9];e[10]=b[10];e[11]=b[11];e[12]=b[12];e[13]=b[13];e[14]=b[14];e[15]=b[15];return e},equal:function(b,e){return b===e||1E-6>Math.abs(b[0]-e[0])&&1E-6>Math.abs(b[1]-e[1])&&1E-6>Math.abs(b[2]-e[2])&&1E-6>Math.abs(b[3]-e[3])&&1E-6>Math.abs(b[4]-e[4])&&1E-6>Math.abs(b[5]-e[5])&&1E-6>Math.abs(b[6]-e[6])&&1E-6>Math.abs(b[7]-e[7])&&1E-6>Math.abs(b[8]-e[8])&&1E-6>Math.abs(b[9]-e[9])&&1E-6>Math.abs(b[10]-e[10])&&1E-6>Math.abs(b[11]-e[11])&&1E-6>Math.abs(b[12]-
e[12])&&1E-6>Math.abs(b[13]-e[13])&&1E-6>Math.abs(b[14]-e[14])&&1E-6>Math.abs(b[15]-e[15])},identity:function(b){b||(b=s.create());b[0]=1;b[1]=0;b[2]=0;b[3]=0;b[4]=0;b[5]=1;b[6]=0;b[7]=0;b[8]=0;b[9]=0;b[10]=1;b[11]=0;b[12]=0;b[13]=0;b[14]=0;b[15]=1;return b},transpose:function(b,e){if(!e||b===e){var a=b[1],c=b[2],q=b[3],d=b[6],f=b[7],g=b[11];b[1]=b[4];b[2]=b[8];b[3]=b[12];b[4]=a;b[6]=b[9];b[7]=b[13];b[8]=c;b[9]=d;b[11]=b[14];b[12]=q;b[13]=f;b[14]=g;return b}e[0]=b[0];e[1]=b[4];e[2]=b[8];e[3]=b[12];
e[4]=b[1];e[5]=b[5];e[6]=b[9];e[7]=b[13];e[8]=b[2];e[9]=b[6];e[10]=b[10];e[11]=b[14];e[12]=b[3];e[13]=b[7];e[14]=b[11];e[15]=b[15];return e},determinant:function(b){var e=b[0],a=b[1],c=b[2],q=b[3],d=b[4],f=b[5],g=b[6],h=b[7],v=b[8],j=b[9],I=b[10],k=b[11],l=b[12],p=b[13],m=b[14];b=b[15];return l*j*g*q-v*p*g*q-l*f*I*q+d*p*I*q+v*f*m*q-d*j*m*q-l*j*c*h+v*p*c*h+l*a*I*h-e*p*I*h-v*a*m*h+e*j*m*h+l*f*c*k-d*p*c*k-l*a*g*k+e*p*g*k+d*a*m*k-e*f*m*k-v*f*c*b+d*j*c*b+v*a*g*b-e*j*g*b-d*a*I*b+e*f*I*b},inverse:function(b,
e){e||(e=b);var a=b[0],c=b[1],d=b[2],f=b[3],x=b[4],g=b[5],h=b[6],v=b[7],j=b[8],k=b[9],l=b[10],m=b[11],p=b[12],n=b[13],t=b[14],r=b[15],w=a*g-c*x,C=a*h-d*x,A=a*v-f*x,B=c*h-d*g,s=c*v-f*g,u=d*v-f*h,y=j*n-k*p,z=j*t-l*p,D=j*r-m*p,E=k*t-l*n,G=k*r-m*n,J=l*r-m*t,F=w*J-C*G+A*E+B*D-s*z+u*y;if(!F)return null;F=1/F;e[0]=(g*J-h*G+v*E)*F;e[1]=(-c*J+d*G-f*E)*F;e[2]=(n*u-t*s+r*B)*F;e[3]=(-k*u+l*s-m*B)*F;e[4]=(-x*J+h*D-v*z)*F;e[5]=(a*J-d*D+f*z)*F;e[6]=(-p*u+t*A-r*C)*F;e[7]=(j*u-l*A+m*C)*F;e[8]=(x*G-g*D+v*y)*F;e[9]=
(-a*G+c*D-f*y)*F;e[10]=(p*s-n*A+r*w)*F;e[11]=(-j*s+k*A-m*w)*F;e[12]=(-x*E+g*z-h*y)*F;e[13]=(a*E-c*z+d*y)*F;e[14]=(-p*B+n*C-t*w)*F;e[15]=(j*B-k*C+l*w)*F;return e},toRotationMat:function(b,e){e||(e=s.create());e[0]=b[0];e[1]=b[1];e[2]=b[2];e[3]=b[3];e[4]=b[4];e[5]=b[5];e[6]=b[6];e[7]=b[7];e[8]=b[8];e[9]=b[9];e[10]=b[10];e[11]=b[11];e[12]=0;e[13]=0;e[14]=0;e[15]=1;return e},toMat3:function(b,e){e||(e=y.create());e[0]=b[0];e[1]=b[1];e[2]=b[2];e[3]=b[4];e[4]=b[5];e[5]=b[6];e[6]=b[8];e[7]=b[9];e[8]=b[10];
return e},toInverseMat3:function(b,e){var a=b[0],c=b[1],d=b[2],f=b[4],x=b[5],g=b[6],h=b[8],j=b[9],k=b[10],l=k*x-g*j,m=-k*f+g*h,n=j*f-x*h,p=a*l+c*m+d*n;if(!p)return null;p=1/p;e||(e=y.create());e[0]=l*p;e[1]=(-k*c+d*j)*p;e[2]=(g*c-d*x)*p;e[3]=m*p;e[4]=(k*a-d*h)*p;e[5]=(-g*a+d*f)*p;e[6]=n*p;e[7]=(-j*a+c*h)*p;e[8]=(x*a-c*f)*p;return e},multiply:function(b,e,a){a||(a=b);var c=b[0],d=b[1],f=b[2],x=b[3],g=b[4],h=b[5],j=b[6],k=b[7],l=b[8],m=b[9],n=b[10],p=b[11],r=b[12],t=b[13],s=b[14];b=b[15];var w=e[0],
C=e[1],A=e[2],B=e[3];a[0]=w*c+C*g+A*l+B*r;a[1]=w*d+C*h+A*m+B*t;a[2]=w*f+C*j+A*n+B*s;a[3]=w*x+C*k+A*p+B*b;w=e[4];C=e[5];A=e[6];B=e[7];a[4]=w*c+C*g+A*l+B*r;a[5]=w*d+C*h+A*m+B*t;a[6]=w*f+C*j+A*n+B*s;a[7]=w*x+C*k+A*p+B*b;w=e[8];C=e[9];A=e[10];B=e[11];a[8]=w*c+C*g+A*l+B*r;a[9]=w*d+C*h+A*m+B*t;a[10]=w*f+C*j+A*n+B*s;a[11]=w*x+C*k+A*p+B*b;w=e[12];C=e[13];A=e[14];B=e[15];a[12]=w*c+C*g+A*l+B*r;a[13]=w*d+C*h+A*m+B*t;a[14]=w*f+C*j+A*n+B*s;a[15]=w*x+C*k+A*p+B*b;return a},multiplyVec3:function(b,e,a){a||(a=e);
var c=e[0],d=e[1];e=e[2];a[0]=b[0]*c+b[4]*d+b[8]*e+b[12];a[1]=b[1]*c+b[5]*d+b[9]*e+b[13];a[2]=b[2]*c+b[6]*d+b[10]*e+b[14];return a},multiplyVec4:function(b,e,a){a||(a=e);var c=e[0],d=e[1],f=e[2];e=e[3];a[0]=b[0]*c+b[4]*d+b[8]*f+b[12]*e;a[1]=b[1]*c+b[5]*d+b[9]*f+b[13]*e;a[2]=b[2]*c+b[6]*d+b[10]*f+b[14]*e;a[3]=b[3]*c+b[7]*d+b[11]*f+b[15]*e;return a},translate:function(b,e,a){var c=e[0],d=e[1];e=e[2];var f,x,g,h,j,k,l,m,n,p,r,t;if(!a||b===a)return b[12]=b[0]*c+b[4]*d+b[8]*e+b[12],b[13]=b[1]*c+b[5]*d+
b[9]*e+b[13],b[14]=b[2]*c+b[6]*d+b[10]*e+b[14],b[15]=b[3]*c+b[7]*d+b[11]*e+b[15],b;f=b[0];x=b[1];g=b[2];h=b[3];j=b[4];k=b[5];l=b[6];m=b[7];n=b[8];p=b[9];r=b[10];t=b[11];a[0]=f;a[1]=x;a[2]=g;a[3]=h;a[4]=j;a[5]=k;a[6]=l;a[7]=m;a[8]=n;a[9]=p;a[10]=r;a[11]=t;a[12]=f*c+j*d+n*e+b[12];a[13]=x*c+k*d+p*e+b[13];a[14]=g*c+l*d+r*e+b[14];a[15]=h*c+m*d+t*e+b[15];return a},scale:function(b,e,a){var c=e[0],d=e[1];e=e[2];if(!a||b===a)return b[0]*=c,b[1]*=c,b[2]*=c,b[3]*=c,b[4]*=d,b[5]*=d,b[6]*=d,b[7]*=d,b[8]*=e,b[9]*=
e,b[10]*=e,b[11]*=e,b;a[0]=b[0]*c;a[1]=b[1]*c;a[2]=b[2]*c;a[3]=b[3]*c;a[4]=b[4]*d;a[5]=b[5]*d;a[6]=b[6]*d;a[7]=b[7]*d;a[8]=b[8]*e;a[9]=b[9]*e;a[10]=b[10]*e;a[11]=b[11]*e;a[12]=b[12];a[13]=b[13];a[14]=b[14];a[15]=b[15];return a},rotate:function(b,e,a,c){var d=a[0],f=a[1];a=a[2];var x=Math.sqrt(d*d+f*f+a*a),g,h,j,k,l,m,n,p,r,t,s,w,C,A,B,u,y,z,D,E;if(!x)return null;1!==x&&(x=1/x,d*=x,f*=x,a*=x);g=Math.sin(e);h=Math.cos(e);j=1-h;e=b[0];x=b[1];k=b[2];l=b[3];m=b[4];n=b[5];p=b[6];r=b[7];t=b[8];s=b[9];w=
b[10];C=b[11];A=d*d*j+h;B=f*d*j+a*g;u=a*d*j-f*g;y=d*f*j-a*g;z=f*f*j+h;D=a*f*j+d*g;E=d*a*j+f*g;d=f*a*j-d*g;f=a*a*j+h;c?b!==c&&(c[12]=b[12],c[13]=b[13],c[14]=b[14],c[15]=b[15]):c=b;c[0]=e*A+m*B+t*u;c[1]=x*A+n*B+s*u;c[2]=k*A+p*B+w*u;c[3]=l*A+r*B+C*u;c[4]=e*y+m*z+t*D;c[5]=x*y+n*z+s*D;c[6]=k*y+p*z+w*D;c[7]=l*y+r*z+C*D;c[8]=e*E+m*d+t*f;c[9]=x*E+n*d+s*f;c[10]=k*E+p*d+w*f;c[11]=l*E+r*d+C*f;return c},rotateX:function(b,e,a){var c=Math.sin(e);e=Math.cos(e);var d=b[4],f=b[5],g=b[6],h=b[7],j=b[8],k=b[9],l=b[10],
m=b[11];a?b!==a&&(a[0]=b[0],a[1]=b[1],a[2]=b[2],a[3]=b[3],a[12]=b[12],a[13]=b[13],a[14]=b[14],a[15]=b[15]):a=b;a[4]=d*e+j*c;a[5]=f*e+k*c;a[6]=g*e+l*c;a[7]=h*e+m*c;a[8]=d*-c+j*e;a[9]=f*-c+k*e;a[10]=g*-c+l*e;a[11]=h*-c+m*e;return a},rotateY:function(b,e,a){var c=Math.sin(e);e=Math.cos(e);var d=b[0],f=b[1],g=b[2],h=b[3],j=b[8],k=b[9],l=b[10],m=b[11];a?b!==a&&(a[4]=b[4],a[5]=b[5],a[6]=b[6],a[7]=b[7],a[12]=b[12],a[13]=b[13],a[14]=b[14],a[15]=b[15]):a=b;a[0]=d*e+j*-c;a[1]=f*e+k*-c;a[2]=g*e+l*-c;a[3]=h*
e+m*-c;a[8]=d*c+j*e;a[9]=f*c+k*e;a[10]=g*c+l*e;a[11]=h*c+m*e;return a},rotateZ:function(b,e,a){var c=Math.sin(e);e=Math.cos(e);var d=b[0],f=b[1],g=b[2],h=b[3],j=b[4],k=b[5],l=b[6],m=b[7];a?b!==a&&(a[8]=b[8],a[9]=b[9],a[10]=b[10],a[11]=b[11],a[12]=b[12],a[13]=b[13],a[14]=b[14],a[15]=b[15]):a=b;a[0]=d*e+j*c;a[1]=f*e+k*c;a[2]=g*e+l*c;a[3]=h*e+m*c;a[4]=d*-c+j*e;a[5]=f*-c+k*e;a[6]=g*-c+l*e;a[7]=h*-c+m*e;return a},frustum:function(b,e,a,c,d,f,g){g||(g=s.create());var h=e-b,j=c-a,k=f-d;g[0]=2*d/h;g[1]=0;
g[2]=0;g[3]=0;g[4]=0;g[5]=2*d/j;g[6]=0;g[7]=0;g[8]=(e+b)/h;g[9]=(c+a)/j;g[10]=-(f+d)/k;g[11]=-1;g[12]=0;g[13]=0;g[14]=-(2*f*d)/k;g[15]=0;return g},perspective:function(b,e,a,c,d){b=a*Math.tan(b*Math.PI/360);e*=b;return s.frustum(-e,e,-b,b,a,c,d)},ortho:function(b,a,c,d,f,g,h){h||(h=s.create());var j=a-b,k=d-c,l=g-f;h[0]=2/j;h[1]=0;h[2]=0;h[3]=0;h[4]=0;h[5]=2/k;h[6]=0;h[7]=0;h[8]=0;h[9]=0;h[10]=-2/l;h[11]=0;h[12]=-(b+a)/j;h[13]=-(d+c)/k;h[14]=-(g+f)/l;h[15]=1;return h},lookAt:function(b,a,c,d){d||
(d=s.create());var f,g,h,j,k,l,m,n,r=b[0],u=b[1];b=b[2];h=c[0];j=c[1];g=c[2];m=a[0];c=a[1];f=a[2];if(r===m&&u===c&&b===f)return s.identity(d);a=r-m;c=u-c;m=b-f;n=1/Math.sqrt(a*a+c*c+m*m);a*=n;c*=n;m*=n;f=j*m-g*c;g=g*a-h*m;h=h*c-j*a;(n=Math.sqrt(f*f+g*g+h*h))?(n=1/n,f*=n,g*=n,h*=n):h=g=f=0;j=c*h-m*g;k=m*f-a*h;l=a*g-c*f;(n=Math.sqrt(j*j+k*k+l*l))?(n=1/n,j*=n,k*=n,l*=n):l=k=j=0;d[0]=f;d[1]=j;d[2]=a;d[3]=0;d[4]=g;d[5]=k;d[6]=c;d[7]=0;d[8]=h;d[9]=l;d[10]=m;d[11]=0;d[12]=-(f*r+g*u+h*b);d[13]=-(j*r+k*u+
l*b);d[14]=-(a*r+c*u+m*b);d[15]=1;return d},fromRotationTranslation:function(b,a,c){c||(c=s.create());var d=b[0],f=b[1],g=b[2],h=b[3],j=d+d,k=f+f,l=g+g;b=d*j;var m=d*k,d=d*l,n=f*k,f=f*l,g=g*l,j=h*j,k=h*k,h=h*l;c[0]=1-(n+g);c[1]=m+h;c[2]=d-k;c[3]=0;c[4]=m-h;c[5]=1-(b+g);c[6]=f+j;c[7]=0;c[8]=d+k;c[9]=f-j;c[10]=1-(b+n);c[11]=0;c[12]=a[0];c[13]=a[1];c[14]=a[2];c[15]=1;return c},str:function(b){return"["+b[0]+", "+b[1]+", "+b[2]+", "+b[3]+", "+b[4]+", "+b[5]+", "+b[6]+", "+b[7]+", "+b[8]+", "+b[9]+", "+
b[10]+", "+b[11]+", "+b[12]+", "+b[13]+", "+b[14]+", "+b[15]+"]"}},l={create:function(b){var a=new j(4);b?(a[0]=b[0],a[1]=b[1],a[2]=b[2],a[3]=b[3]):a[0]=a[1]=a[2]=a[3]=0;return a},createFrom:function(b,a,c,d){var f=new j(4);f[0]=b;f[1]=a;f[2]=c;f[3]=d;return f},set:function(b,a){a[0]=b[0];a[1]=b[1];a[2]=b[2];a[3]=b[3];return a},equal:function(b,a){return b===a||1E-6>Math.abs(b[0]-a[0])&&1E-6>Math.abs(b[1]-a[1])&&1E-6>Math.abs(b[2]-a[2])&&1E-6>Math.abs(b[3]-a[3])},identity:function(b){b||(b=l.create());
b[0]=0;b[1]=0;b[2]=0;b[3]=1;return b}},G=l.identity();l.calculateW=function(b,a){var c=b[0],d=b[1],f=b[2];if(!a||b===a)return b[3]=-Math.sqrt(Math.abs(1-c*c-d*d-f*f)),b;a[0]=c;a[1]=d;a[2]=f;a[3]=-Math.sqrt(Math.abs(1-c*c-d*d-f*f));return a};l.dot=function(b,a){return b[0]*a[0]+b[1]*a[1]+b[2]*a[2]+b[3]*a[3]};l.inverse=function(b,a){var c=b[0],d=b[1],f=b[2],g=b[3],c=(c=c*c+d*d+f*f+g*g)?1/c:0;if(!a||b===a)return b[0]*=-c,b[1]*=-c,b[2]*=-c,b[3]*=c,b;a[0]=-b[0]*c;a[1]=-b[1]*c;a[2]=-b[2]*c;a[3]=b[3]*c;
return a};l.conjugate=function(b,a){if(!a||b===a)return b[0]*=-1,b[1]*=-1,b[2]*=-1,b;a[0]=-b[0];a[1]=-b[1];a[2]=-b[2];a[3]=b[3];return a};l.length=function(b){var a=b[0],c=b[1],d=b[2];b=b[3];return Math.sqrt(a*a+c*c+d*d+b*b)};l.normalize=function(b,a){a||(a=b);var c=b[0],d=b[1],f=b[2],g=b[3],h=Math.sqrt(c*c+d*d+f*f+g*g);if(0===h)return a[0]=0,a[1]=0,a[2]=0,a[3]=0,a;h=1/h;a[0]=c*h;a[1]=d*h;a[2]=f*h;a[3]=g*h;return a};l.add=function(b,a,c){if(!c||b===c)return b[0]+=a[0],b[1]+=a[1],b[2]+=a[2],b[3]+=
a[3],b;c[0]=b[0]+a[0];c[1]=b[1]+a[1];c[2]=b[2]+a[2];c[3]=b[3]+a[3];return c};l.multiply=function(b,a,c){c||(c=b);var d=b[0],f=b[1],g=b[2];b=b[3];var h=a[0],j=a[1],k=a[2];a=a[3];c[0]=d*a+b*h+f*k-g*j;c[1]=f*a+b*j+g*h-d*k;c[2]=g*a+b*k+d*j-f*h;c[3]=b*a-d*h-f*j-g*k;return c};l.multiplyVec3=function(b,a,c){c||(c=a);var d=a[0],f=a[1],g=a[2];a=b[0];var h=b[1],j=b[2];b=b[3];var k=b*d+h*g-j*f,l=b*f+j*d-a*g,m=b*g+a*f-h*d,d=-a*d-h*f-j*g;c[0]=k*b+d*-a+l*-j-m*-h;c[1]=l*b+d*-h+m*-a-k*-j;c[2]=m*b+d*-j+k*-h-l*-a;
return c};l.scale=function(b,a,c){if(!c||b===c)return b[0]*=a,b[1]*=a,b[2]*=a,b[3]*=a,b;c[0]=b[0]*a;c[1]=b[1]*a;c[2]=b[2]*a;c[3]=b[3]*a;return c};l.toMat3=function(b,a){a||(a=y.create());var c=b[0],d=b[1],f=b[2],g=b[3],h=c+c,j=d+d,k=f+f,l=c*h,m=c*j,c=c*k,n=d*j,d=d*k,f=f*k,h=g*h,j=g*j,g=g*k;a[0]=1-(n+f);a[1]=m+g;a[2]=c-j;a[3]=m-g;a[4]=1-(l+f);a[5]=d+h;a[6]=c+j;a[7]=d-h;a[8]=1-(l+n);return a};l.toMat4=function(b,a){a||(a=s.create());var c=b[0],d=b[1],f=b[2],g=b[3],h=c+c,j=d+d,k=f+f,l=c*h,m=c*j,c=c*
k,n=d*j,d=d*k,f=f*k,h=g*h,j=g*j,g=g*k;a[0]=1-(n+f);a[1]=m+g;a[2]=c-j;a[3]=0;a[4]=m-g;a[5]=1-(l+f);a[6]=d+h;a[7]=0;a[8]=c+j;a[9]=d-h;a[10]=1-(l+n);a[11]=0;a[12]=0;a[13]=0;a[14]=0;a[15]=1;return a};l.slerp=function(b,a,c,d){d||(d=b);var f=b[0]*a[0]+b[1]*a[1]+b[2]*a[2]+b[3]*a[3],g,h;if(1<=Math.abs(f))return d!==b&&(d[0]=b[0],d[1]=b[1],d[2]=b[2],d[3]=b[3]),d;g=Math.acos(f);h=Math.sqrt(1-f*f);if(0.0010>Math.abs(h))return d[0]=0.5*b[0]+0.5*a[0],d[1]=0.5*b[1]+0.5*a[1],d[2]=0.5*b[2]+0.5*a[2],d[3]=0.5*b[3]+
0.5*a[3],d;f=Math.sin((1-c)*g)/h;c=Math.sin(c*g)/h;d[0]=b[0]*f+a[0]*c;d[1]=b[1]*f+a[1]*c;d[2]=b[2]*f+a[2]*c;d[3]=b[3]*f+a[3]*c;return d};l.fromRotationMatrix=function(b,a){a||(a=l.create());var c=b[0]+b[4]+b[8],d;if(0<c)d=Math.sqrt(c+1),a[3]=0.5*d,d=0.5/d,a[0]=(b[7]-b[5])*d,a[1]=(b[2]-b[6])*d,a[2]=(b[3]-b[1])*d;else{d=l.fromRotationMatrix.s_iNext=l.fromRotationMatrix.s_iNext||[1,2,0];c=0;b[4]>b[0]&&(c=1);b[8]>b[3*c+c]&&(c=2);var f=d[c],g=d[f];d=Math.sqrt(b[3*c+c]-b[3*f+f]-b[3*g+g]+1);a[c]=0.5*d;d=
0.5/d;a[3]=(b[3*g+f]-b[3*f+g])*d;a[f]=(b[3*f+c]+b[3*c+f])*d;a[g]=(b[3*g+c]+b[3*c+g])*d}return a};y.toQuat4=l.fromRotationMatrix;var E=y.create();l.fromAxes=function(b,a,c,d){E[0]=a[0];E[3]=a[1];E[6]=a[2];E[1]=c[0];E[4]=c[1];E[7]=c[2];E[2]=b[0];E[5]=b[1];E[8]=b[2];return l.fromRotationMatrix(E,d)};l.identity=function(b){b||(b=l.create());b[0]=0;b[1]=0;b[2]=0;b[3]=1;return b};l.fromAngleAxis=function(b,a,c){c||(c=l.create());b*=0.5;var d=Math.sin(b);c[3]=Math.cos(b);c[0]=d*a[0];c[1]=d*a[1];c[2]=d*a[2];
return c};l.toAngleAxis=function(b,a){a||(a=b);var c=b[0]*b[0]+b[1]*b[1]+b[2]*b[2];0<c?(a[3]=2*Math.acos(b[3]),c=f.invsqrt(c),a[0]=b[0]*c,a[1]=b[1]*c,a[2]=b[2]*c):(a[3]=0,a[0]=1,a[1]=0,a[2]=0);return a};l.str=function(b){return"["+b[0]+", "+b[1]+", "+b[2]+", "+b[3]+"]"};var L={create:function(b){var a=new j(2);b?(a[0]=b[0],a[1]=b[1]):(a[0]=0,a[1]=0);return a},createFrom:function(b,a){var c=new j(2);c[0]=b;c[1]=a;return c},add:function(b,a,c){c||(c=a);c[0]=b[0]+a[0];c[1]=b[1]+a[1];return c},subtract:function(b,
a,c){c||(c=a);c[0]=b[0]-a[0];c[1]=b[1]-a[1];return c},multiply:function(b,a,c){c||(c=a);c[0]=b[0]*a[0];c[1]=b[1]*a[1];return c},divide:function(b,a,c){c||(c=a);c[0]=b[0]/a[0];c[1]=b[1]/a[1];return c},scale:function(b,a,c){c||(c=b);c[0]=b[0]*a;c[1]=b[1]*a;return c},dist:function(b,a){var c=a[0]-b[0],d=a[1]-b[1];return Math.sqrt(c*c+d*d)},set:function(b,a){a[0]=b[0];a[1]=b[1];return a},equal:function(b,a){return b===a||1E-6>Math.abs(b[0]-a[0])&&1E-6>Math.abs(b[1]-a[1])},negate:function(b,a){a||(a=b);
a[0]=-b[0];a[1]=-b[1];return a},normalize:function(b,a){a||(a=b);var c=b[0]*b[0]+b[1]*b[1];0<c?(c=Math.sqrt(c),a[0]=b[0]/c,a[1]=b[1]/c):a[0]=a[1]=0;return a},cross:function(b,a,c){b=b[0]*a[1]-b[1]*a[0];if(!c)return b;c[0]=c[1]=0;c[2]=b;return c},length:function(b){var a=b[0];b=b[1];return Math.sqrt(a*a+b*b)},squaredLength:function(b){var a=b[0];b=b[1];return a*a+b*b},dot:function(b,a){return b[0]*a[0]+b[1]*a[1]},direction:function(b,a,c){c||(c=b);var d=b[0]-a[0];b=b[1]-a[1];a=d*d+b*b;if(!a)return c[0]=
0,c[1]=0,c[2]=0,c;a=1/Math.sqrt(a);c[0]=d*a;c[1]=b*a;return c},lerp:function(a,c,d,f){f||(f=a);f[0]=a[0]+d*(c[0]-a[0]);f[1]=a[1]+d*(c[1]-a[1]);return f},str:function(a){return"["+a[0]+", "+a[1]+"]"}},K={create:function(a){var c=new j(4);a?(c[0]=a[0],c[1]=a[1],c[2]=a[2],c[3]=a[3]):c[0]=c[1]=c[2]=c[3]=0;return c},createFrom:function(a,c,d,f){var g=new j(4);g[0]=a;g[1]=c;g[2]=d;g[3]=f;return g},set:function(a,c){c[0]=a[0];c[1]=a[1];c[2]=a[2];c[3]=a[3];return c},equal:function(a,c){return a===c||1E-6>
Math.abs(a[0]-c[0])&&1E-6>Math.abs(a[1]-c[1])&&1E-6>Math.abs(a[2]-c[2])&&1E-6>Math.abs(a[3]-c[3])},identity:function(a){a||(a=K.create());a[0]=1;a[1]=0;a[2]=0;a[3]=1;return a},transpose:function(a,c){if(!c||a===c){var d=a[1];a[1]=a[2];a[2]=d;return a}c[0]=a[0];c[1]=a[2];c[2]=a[1];c[3]=a[3];return c},determinant:function(a){return a[0]*a[3]-a[2]*a[1]},inverse:function(a,c){c||(c=a);var d=a[0],f=a[1],g=a[2],h=a[3],j=d*h-g*f;if(!j)return null;j=1/j;c[0]=h*j;c[1]=-f*j;c[2]=-g*j;c[3]=d*j;return c},multiply:function(a,
c,d){d||(d=a);var f=a[0],g=a[1],h=a[2];a=a[3];d[0]=f*c[0]+g*c[2];d[1]=f*c[1]+g*c[3];d[2]=h*c[0]+a*c[2];d[3]=h*c[1]+a*c[3];return d},rotate:function(a,c,d){d||(d=a);var f=a[0],g=a[1],h=a[2];a=a[3];var j=Math.sin(c);c=Math.cos(c);d[0]=f*c+g*j;d[1]=f*-j+g*c;d[2]=h*c+a*j;d[3]=h*-j+a*c;return d},multiplyVec2:function(a,c,d){d||(d=c);var f=c[0];c=c[1];d[0]=f*a[0]+c*a[1];d[1]=f*a[2]+c*a[3];return d},scale:function(a,c,d){d||(d=a);var f=a[1],g=a[2],h=a[3],j=c[0];c=c[1];d[0]=a[0]*j;d[1]=f*c;d[2]=g*j;d[3]=
h*c;return d},str:function(a){return"["+a[0]+", "+a[1]+", "+a[2]+", "+a[3]+"]"}},M={create:function(a){var c=new j(4);a?(c[0]=a[0],c[1]=a[1],c[2]=a[2],c[3]=a[3]):(c[0]=0,c[1]=0,c[2]=0,c[3]=0);return c},createFrom:function(a,c,d,f){var g=new j(4);g[0]=a;g[1]=c;g[2]=d;g[3]=f;return g},add:function(a,c,d){d||(d=c);d[0]=a[0]+c[0];d[1]=a[1]+c[1];d[2]=a[2]+c[2];d[3]=a[3]+c[3];return d},subtract:function(a,c,d){d||(d=c);d[0]=a[0]-c[0];d[1]=a[1]-c[1];d[2]=a[2]-c[2];d[3]=a[3]-c[3];return d},multiply:function(a,
c,d){d||(d=c);d[0]=a[0]*c[0];d[1]=a[1]*c[1];d[2]=a[2]*c[2];d[3]=a[3]*c[3];return d},divide:function(a,c,d){d||(d=c);d[0]=a[0]/c[0];d[1]=a[1]/c[1];d[2]=a[2]/c[2];d[3]=a[3]/c[3];return d},scale:function(a,c,d){d||(d=a);d[0]=a[0]*c;d[1]=a[1]*c;d[2]=a[2]*c;d[3]=a[3]*c;return d},set:function(a,c){c[0]=a[0];c[1]=a[1];c[2]=a[2];c[3]=a[3];return c},equal:function(a,c){return a===c||1E-6>Math.abs(a[0]-c[0])&&1E-6>Math.abs(a[1]-c[1])&&1E-6>Math.abs(a[2]-c[2])&&1E-6>Math.abs(a[3]-c[3])},negate:function(a,c){c||
(c=a);c[0]=-a[0];c[1]=-a[1];c[2]=-a[2];c[3]=-a[3];return c},length:function(a){var c=a[0],d=a[1],f=a[2];a=a[3];return Math.sqrt(c*c+d*d+f*f+a*a)},squaredLength:function(a){var c=a[0],d=a[1],f=a[2];a=a[3];return c*c+d*d+f*f+a*a},lerp:function(a,c,d,f){f||(f=a);f[0]=a[0]+d*(c[0]-a[0]);f[1]=a[1]+d*(c[1]-a[1]);f[2]=a[2]+d*(c[2]-a[2]);f[3]=a[3]+d*(c[3]-a[3]);return f},str:function(a){return"["+a[0]+", "+a[1]+", "+a[2]+", "+a[3]+"]"}};a&&(a.glMatrixArrayType=j,a.MatrixArray=j,a.setMatrixArrayType=c,a.determineMatrixArrayType=
d,a.glMath=f,a.vec2=L,a.vec3=k,a.vec4=M,a.mat2=K,a.mat3=y,a.mat4=s,a.quat4=l);return{glMatrixArrayType:j,MatrixArray:j,setMatrixArrayType:c,determineMatrixArrayType:d,glMath:f,vec2:L,vec3:k,vec4:M,mat2:K,mat3:y,mat4:s,quat4:l}});PIXI.autoDetectRenderer=function(a,c,d){a||(a=800);c||(c=600);var f;try{f=!!window.WebGLRenderingContext&&!!document.createElement("canvas").getContext("experimental-webgl")}catch(g){f=!1}return f?new PIXI.WebGLRenderer(a,c,d):new PIXI.CanvasRenderer(a,c,d)};
"function"!=typeof Function.prototype.bind&&(Function.prototype.bind=function(){var a=Array.prototype.slice;return function(b){function c(){var f=e.concat(a.call(arguments));d.apply(this instanceof c?this:b,f)}var d=this,e=a.call(arguments,1);if("function"!=typeof d)throw new TypeError;c.prototype=function g(a){a&&(g.prototype=a);if(!(this instanceof g))return new g}(d.prototype);return c}}());
var AjaxRequest=function(){var a=["Msxml2.XMLHTTP","Microsoft.XMLHTTP"];if(window.ActiveXObject)for(var b=0;b<a.length;b++)try{return new ActiveXObject(a[b])}catch(c){}else return window.XMLHttpRequest?new XMLHttpRequest:!1};
PIXI.EventTarget=function(){var a={};this.addEventListener=function(b,c){void 0===a[b]&&(a[b]=[]);-1===a[b].indexOf(c)&&a[b].push(c)};this.dispatchEvent=function(b){for(var c in a[b.type])a[b.type][c](b)};this.removeEventListener=function(b,c){var d=a[b].indexOf(c);-1!==d&&a[b].splice(d,1)}};function determineMatrixArrayType(){PIXI.Matrix="undefined"!==typeof Float32Array?Float32Array:Array;return PIXI.Matrix}determineMatrixArrayType();PIXI.mat3={};
PIXI.mat3.create=function(){var a=new PIXI.Matrix(9);a[0]=1;a[1]=0;a[2]=0;a[3]=0;a[4]=1;a[5]=0;a[6]=0;a[7]=0;a[8]=1;return a};PIXI.mat4={};PIXI.mat4.create=function(){var a=new PIXI.Matrix(16);a[0]=1;a[1]=0;a[2]=0;a[3]=0;a[4]=0;a[5]=1;a[6]=0;a[7]=0;a[8]=0;a[9]=0;a[10]=1;a[11]=0;a[12]=0;a[13]=0;a[14]=0;a[15]=1;return a};
PIXI.mat3.multiply=function(a,b,c){c||(c=a);var d=a[0],e=a[1],f=a[2],g=a[3],h=a[4],k=a[5],m=a[6],n=a[7];a=a[8];var p=b[0],j=b[1],q=b[2],r=b[3],s=b[4],t=b[5],u=b[6],l=b[7];b=b[8];c[0]=p*d+j*g+q*m;c[1]=p*e+j*h+q*n;c[2]=p*f+j*k+q*a;c[3]=r*d+s*g+t*m;c[4]=r*e+s*h+t*n;c[5]=r*f+s*k+t*a;c[6]=u*d+l*g+b*m;c[7]=u*e+l*h+b*n;c[8]=u*f+l*k+b*a;return c};
PIXI.mat3.toMat4=function(a,b){b||(b=PIXI.mat4.create());b[15]=1;b[14]=0;b[13]=0;b[12]=0;b[11]=0;b[10]=a[8];b[9]=a[7];b[8]=a[6];b[7]=0;b[6]=a[5];b[5]=a[4];b[4]=a[3];b[3]=0;b[2]=a[2];b[1]=a[1];b[0]=a[0];return b};PIXI.mat4.create=function(){var a=new PIXI.Matrix(16);a[0]=1;a[1]=0;a[2]=0;a[3]=0;a[4]=0;a[5]=1;a[6]=0;a[7]=0;a[8]=0;a[9]=0;a[10]=1;a[11]=0;a[12]=0;a[13]=0;a[14]=0;a[15]=1;return a};
PIXI.mat4.transpose=function(a,b){if(!b||a===b){var c=a[1],d=a[2],e=a[3],f=a[6],g=a[7],h=a[11];a[1]=a[4];a[2]=a[8];a[3]=a[12];a[4]=c;a[6]=a[9];a[7]=a[13];a[8]=d;a[9]=f;a[11]=a[14];a[12]=e;a[13]=g;a[14]=h;return a}b[0]=a[0];b[1]=a[4];b[2]=a[8];b[3]=a[12];b[4]=a[1];b[5]=a[5];b[6]=a[9];b[7]=a[13];b[8]=a[2];b[9]=a[6];b[10]=a[10];b[11]=a[14];b[12]=a[3];b[13]=a[7];b[14]=a[11];b[15]=a[15];return b};
PIXI.mat4.multiply=function(a,b,c){c||(c=a);var d=a[0],e=a[1],f=a[2],g=a[3],h=a[4],k=a[5],m=a[6],n=a[7],p=a[8],j=a[9],q=a[10],r=a[11],s=a[12],t=a[13],u=a[14];a=a[15];var l=b[0],v=b[1],w=b[2],x=b[3];c[0]=l*d+v*h+w*p+x*s;c[1]=l*e+v*k+w*j+x*t;c[2]=l*f+v*m+w*q+x*u;c[3]=l*g+v*n+w*r+x*a;l=b[4];v=b[5];w=b[6];x=b[7];c[4]=l*d+v*h+w*p+x*s;c[5]=l*e+v*k+w*j+x*t;c[6]=l*f+v*m+w*q+x*u;c[7]=l*g+v*n+w*r+x*a;l=b[8];v=b[9];w=b[10];x=b[11];c[8]=l*d+v*h+w*p+x*s;c[9]=l*e+v*k+w*j+x*t;c[10]=l*f+v*m+w*q+x*u;c[11]=l*g+v*n+
w*r+x*a;l=b[12];v=b[13];w=b[14];x=b[15];c[12]=l*d+v*h+w*p+x*s;c[13]=l*e+v*k+w*j+x*t;c[14]=l*f+v*m+w*q+x*u;c[15]=l*g+v*n+w*r+x*a;return c};PIXI.autoDetectRenderer=function(a,b,c){a||(a=800);b||(b=600);var d;try{d=!!window.WebGLRenderingContext&&!!document.createElement("canvas").getContext("experimental-webgl")}catch(e){d=!1}return d?new PIXI.WebGLRenderer(a,b,c):new PIXI.CanvasRenderer(a,b,c)};
PIXI.shaderFragmentSrc=["precision mediump float;","varying vec2 vTextureCoord;","varying float vColor;","uniform sampler2D uSampler;","void main(void) {","gl_FragColor \x3d texture2D(uSampler, vec2(vTextureCoord.x, vTextureCoord.y));","gl_FragColor \x3d 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 \x3d uMVMatrix * vec4(aVertexPosition, 1.0, 1.0);","vTextureCoord \x3d aTextureCoord;","vColor \x3d aColor;","}"];
PIXI.CompileVertexShader=function(a,c){for(var d="",f=0;f<c.length;f++)d+=c[f];f=a.createShader(a.VERTEX_SHADER);a.shaderSource(f,d);a.compileShader(f);return!a.getShaderParameter(f,a.COMPILE_STATUS)?(alert(a.getShaderInfoLog(f)),null):f};PIXI.CompileFragmentShader=function(a,c){for(var d="",f=0;f<c.length;f++)d+=c[f];f=a.createShader(a.FRAGMENT_SHADER);a.shaderSource(f,d);a.compileShader(f);return!a.getShaderParameter(f,a.COMPILE_STATUS)?(alert(a.getShaderInfoLog(f)),null):f};
PIXI.CompileVertexShader=function(a,b){for(var c="",d=0;d<b.length;d++)c+=b[d];d=a.createShader(a.VERTEX_SHADER);a.shaderSource(d,c);a.compileShader(d);return!a.getShaderParameter(d,a.COMPILE_STATUS)?(alert(a.getShaderInfoLog(d)),null):d};PIXI.CompileFragmentShader=function(a,b){for(var c="",d=0;d<b.length;d++)c+=b[d];d=a.createShader(a.FRAGMENT_SHADER);a.shaderSource(d,c);a.compileShader(d);return!a.getShaderParameter(d,a.COMPILE_STATUS)?(alert(a.getShaderInfoLog(d)),null):d};
PIXI._defaultFrame=new PIXI.Rectangle(0,0,1,1);
PIXI.WebGLRenderer=function(a,c,d){this.width=a||800;this.height=c||600;this.view=d||document.createElement("canvas");this.view.width=this.width;this.view.height=this.height;this.view.background="#FF0000";var f=this;this.view.addEventListener("webglcontextlost",function(a){f.handleContextLost(a)},!1);this.view.addEventListener("webglcontextrestored",function(a){f.handleContextRestored(a)},!1);this.batchs=[];try{this.gl=this.view.getContext("experimental-webgl",{alpha:!1})}catch(g){throw Error(" This browser does not support webGL. Try using the canvas renderer"+
this);}this.initShaders();a=this.gl;this.batch=new PIXI.WebGLBatch(a);a.disable(a.DEPTH_TEST);a.enable(a.BLEND);a.colorMask(!0,!0,!0,!1);this.projectionMatrix=mat4.create();this.resize(this.width,this.height);this.contextLost=!1};PIXI.WebGLRenderer.constructor=PIXI.WebGLRenderer;
PIXI.WebGLRenderer.prototype.initShaders=function(){var a=this.gl,c=PIXI.CompileFragmentShader(a,PIXI.shaderFragmentSrc),d=PIXI.CompileVertexShader(a,PIXI.shaderVertexSrc),f=this.shaderProgram=a.createProgram();a.attachShader(f,d);a.attachShader(f,c);a.linkProgram(f);a.getProgramParameter(f,a.LINK_STATUS)||alert("Could not initialise shaders");a.useProgram(f);f.vertexPositionAttribute=a.getAttribLocation(f,"aVertexPosition");a.enableVertexAttribArray(f.vertexPositionAttribute);f.textureCoordAttribute=
a.getAttribLocation(f,"aTextureCoord");a.enableVertexAttribArray(f.textureCoordAttribute);f.colorAttribute=a.getAttribLocation(f,"aColor");a.enableVertexAttribArray(f.colorAttribute);f.mvMatrixUniform=a.getUniformLocation(f,"uMVMatrix");f.samplerUniform=a.getUniformLocation(f,"uSampler");PIXI.shaderProgram=this.shaderProgram};
PIXI.WebGLRenderer.prototype.checkVisibility=function(a,c){for(var d=a.children,f=0;f<d.length;f++){var g=d[f],h=g.visible&&c;g.textureChange&&(g.textureChange=!1,h&&(this.removeDisplayObject(g),this.addDisplayObject(g)));g.cacheVisible!=h&&(g.cacheVisible=h,g.cacheVisible?this.addDisplayObject(g):this.removeDisplayObject(g));0<g.children.length&&this.checkVisibility(g,h)}};
PIXI.WebGLRenderer.prototype.render=function(a){if(!this.contextLost){for(var c=0;c<a.__childrenRemoved.length;c++)this.removeDisplayObject(a.__childrenRemoved[c]);for(c=0;c<PIXI.texturesToUpdate.length;c++)this.updateTexture(PIXI.texturesToUpdate[c]);a.__childrenRemoved=[];a.__childrenAdded=[];PIXI.texturesToUpdate=[];this.checkVisibility(a,!0);a.updateTransform();c=this.gl;c.clear(c.COLOR_BUFFER_BIT);c.clearColor(a.backgroundColorSplit[0],a.backgroundColorSplit[1],a.backgroundColorSplit[2],1);c.blendFunc(c.ONE,
c.ONE_MINUS_SRC_ALPHA);c.uniformMatrix4fv(this.shaderProgram.mvMatrixUniform,!1,this.projectionMatrix);for(var d,c=0;c<this.batchs.length;c++)d=this.batchs[c],d instanceof PIXI.WebGLBatch?this.batchs[c].render():d instanceof PIXI.Strip&&d.visible&&this.renderStrip(d);a.interactive&&!a._interactiveEventsAdded&&(a._interactiveEventsAdded=!0,a.interactionManager.setTarget(this))}};
PIXI.WebGLRenderer.prototype.updateTexture=function(a){var c=this.gl;a._glTexture||(a._glTexture=c.createTexture());a.hasLoaded&&(c.bindTexture(c.TEXTURE_2D,a._glTexture),c.pixelStorei(c.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0),c.texImage2D(c.TEXTURE_2D,0,c.RGBA,c.RGBA,c.UNSIGNED_BYTE,a.source),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_MAG_FILTER,c.LINEAR),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_MIN_FILTER,c.LINEAR),c.texParameteri(c.TEXTURE_2D,c.TEXTURE_WRAP_S,c.CLAMP_TO_EDGE),c.texParameteri(c.TEXTURE_2D,
c.TEXTURE_WRAP_T,c.CLAMP_TO_EDGE),c.bindTexture(c.TEXTURE_2D,null));this.refreshBatchs=!0};
PIXI.WebGLRenderer.prototype.addDisplayObject=function(a){if(a.stage&&!a.__inWebGL&&(a.batch=null,a.renderable)){a.__inWebGL=!0;var c=a;do{if(0==c.childIndex)c=c.parent;else for(c=c.parent.children[c.childIndex-1];0!=c.children.length;)c=c.children[c.children.length-1];if(c==a.stage)break}while(!c.renderable||!c.__inWebGL);var d=a;do{if(0==d.children.length){for(;d.childIndex==d.parent.children.length-1;)if(d=d.parent,d==a.stage){d=null;break}d&&(d=d.parent.children[d.childIndex+1])}else d=d.children[0];
if(!d)break}while(!d.renderable||!d.__inWebGL);if(a instanceof PIXI.Sprite){var f;if(c instanceof PIXI.Sprite){if((f=c.batch)&&f.texture==a.texture.baseTexture&&f.blendMode==a.blendMode){f.insertAfter(a,c);return}}else f=c;if(d&&d instanceof PIXI.Sprite&&(c=d.batch)){if(c.texture==a.texture.baseTexture&&c.blendMode==a.blendMode){c.insertBefore(a,d);return}if(c==f){d=f.split(d);c=PIXI._getBatch(this.gl);f=this.batchs.indexOf(f);c.init(a);this.batchs.splice(f+1,0,c,d);return}}c=PIXI._getBatch(this.gl);
c.init(a);f?(f=this.batchs.indexOf(f),this.batchs.splice(f+1,0,c)):this.batchs.push(c)}else a instanceof PIXI.Strip&&(this.initStrip(a),this.batchs.push(a));this.batchUpdate=!0}};
PIXI.WebGLRenderer.prototype.removeDisplayObject=function(a){a.cacheVisible=!1;if(a.renderable){a.__inWebGL=!1;var c;if(a instanceof PIXI.Sprite){var d=a.batch;if(!d)return;d.remove(a);0==d.size&&(c=d)}else c=a;c&&(a=this.batchs.indexOf(c),-1!=a&&(!(0==a||a==this.batchs.length-1)&&this.batchs[a-1]instanceof PIXI.WebGLBatch&&this.batchs[a+1]instanceof PIXI.WebGLBatch&&this.batchs[a-1].texture==this.batchs[a+1].texture&&this.batchs[a-1].blendMode==this.batchs[a+1].blendMode?(this.batchs[a-1].merge(this.batchs[a+
1]),c instanceof PIXI.WebGLBatch&&PIXI._returnBatch(c),PIXI._returnBatch(this.batchs[a+1]),this.batchs.splice(a,2)):(this.batchs.splice(a,1),c instanceof PIXI.WebGLBatch&&PIXI._returnBatch(c))))}};
PIXI.WebGLRenderer.prototype.resize=function(a,c){this.width=a;this.height=c;this.view.width=a;this.view.height=c;this.gl.viewport(0,0,this.width,this.height);mat4.identity(this.projectionMatrix);mat4.scale(this.projectionMatrix,[2/this.width,-2/this.height,1]);mat4.translate(this.projectionMatrix,[-this.width/2,-this.height/2,0])};
PIXI.WebGLRenderer.prototype.initStrip=function(a){var c=this.gl;a._vertexBuffer=c.createBuffer();a._indexBuffer=c.createBuffer();a._uvBuffer=c.createBuffer();a._colorBuffer=c.createBuffer();c.bindBuffer(c.ARRAY_BUFFER,a._vertexBuffer);c.bufferData(c.ARRAY_BUFFER,a.verticies,c.DYNAMIC_DRAW);c.bindBuffer(c.ARRAY_BUFFER,a._uvBuffer);c.bufferData(c.ARRAY_BUFFER,a.uvs,c.STATIC_DRAW);c.bindBuffer(c.ARRAY_BUFFER,a._colorBuffer);c.bufferData(c.ARRAY_BUFFER,a.colors,c.STATIC_DRAW);c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,
a._indexBuffer);c.bufferData(c.ELEMENT_ARRAY_BUFFER,a.indices,c.STATIC_DRAW)};
PIXI.WebGLRenderer.prototype.renderStrip=function(a){var c=this.gl,d=this.shaderProgram,f=mat3.toMat4(a.worldTransform);mat4.transpose(f);mat4.multiply(this.projectionMatrix,f,f);c.uniformMatrix4fv(this.shaderProgram.mvMatrixUniform,!1,f);a.blendMode==PIXI.blendModes.NORMAL?c.blendFunc(c.ONE,c.ONE_MINUS_SRC_ALPHA):c.blendFunc(c.ONE,c.ONE_MINUS_SRC_COLOR);a.dirty?(a.dirty=!1,c.bindBuffer(c.ARRAY_BUFFER,a._vertexBuffer),c.bufferData(c.ARRAY_BUFFER,a.verticies,c.STATIC_DRAW),c.vertexAttribPointer(d.vertexPositionAttribute,
2,c.FLOAT,!1,0,0),c.bindBuffer(c.ARRAY_BUFFER,a._uvBuffer),c.bufferData(c.ARRAY_BUFFER,a.uvs,c.STATIC_DRAW),c.vertexAttribPointer(d.textureCoordAttribute,2,c.FLOAT,!1,0,0),c.activeTexture(c.TEXTURE0),c.bindTexture(c.TEXTURE_2D,a.texture.baseTexture._glTexture),c.bindBuffer(c.ARRAY_BUFFER,a._colorBuffer),c.bufferData(c.ARRAY_BUFFER,a.colors,c.STATIC_DRAW),c.vertexAttribPointer(d.colorAttribute,1,c.FLOAT,!1,0,0),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,a._indexBuffer),c.bufferData(c.ELEMENT_ARRAY_BUFFER,
a.indices,c.STATIC_DRAW)):(c.bindBuffer(c.ARRAY_BUFFER,a._vertexBuffer),c.bufferSubData(c.ARRAY_BUFFER,0,a.verticies),c.vertexAttribPointer(d.vertexPositionAttribute,2,c.FLOAT,!1,0,0),c.bindBuffer(c.ARRAY_BUFFER,a._uvBuffer),c.vertexAttribPointer(d.textureCoordAttribute,2,c.FLOAT,!1,0,0),c.activeTexture(c.TEXTURE0),c.bindTexture(c.TEXTURE_2D,a.texture.baseTexture._glTexture),c.bindBuffer(c.ARRAY_BUFFER,a._colorBuffer),c.vertexAttribPointer(d.colorAttribute,1,c.FLOAT,!1,0,0),c.bindBuffer(c.ELEMENT_ARRAY_BUFFER,
a._indexBuffer));c.drawElements(c.TRIANGLE_STRIP,a.indices.length,c.UNSIGNED_SHORT,0);c.uniformMatrix4fv(this.shaderProgram.mvMatrixUniform,!1,this.projectionMatrix)};PIXI.WebGLRenderer.prototype.handleContextLost=function(a){a.preventDefault();this.contextLost=!0};
PIXI.WebGLRenderer=function(a,b,c){this.width=a||800;this.height=b||600;this.view=c||document.createElement("canvas");this.view.width=this.width;this.view.height=this.height;this.view.background="#FF0000";var d=this;this.view.addEventListener("webglcontextlost",function(a){d.handleContextLost(a)},!1);this.view.addEventListener("webglcontextrestored",function(a){d.handleContextRestored(a)},!1);this.batchs=[];try{this.gl=this.view.getContext("experimental-webgl",{alpha:!1})}catch(e){throw Error(" This browser does not support webGL. Try using the canvas renderer"+
this);}this.initShaders();a=this.gl;this.batch=new PIXI.WebGLBatch(a);a.disable(a.DEPTH_TEST);a.enable(a.BLEND);a.colorMask(!0,!0,!0,!1);this.projectionMatrix=PIXI.mat4.create();this.resize(this.width,this.height);this.contextLost=!1};PIXI.WebGLRenderer.constructor=PIXI.WebGLRenderer;
PIXI.WebGLRenderer.prototype.initShaders=function(){var a=this.gl,b=PIXI.CompileFragmentShader(a,PIXI.shaderFragmentSrc),c=PIXI.CompileVertexShader(a,PIXI.shaderVertexSrc),d=this.shaderProgram=a.createProgram();a.attachShader(d,c);a.attachShader(d,b);a.linkProgram(d);a.getProgramParameter(d,a.LINK_STATUS)||alert("Could not initialise shaders");a.useProgram(d);d.vertexPositionAttribute=a.getAttribLocation(d,"aVertexPosition");a.enableVertexAttribArray(d.vertexPositionAttribute);d.textureCoordAttribute=
a.getAttribLocation(d,"aTextureCoord");a.enableVertexAttribArray(d.textureCoordAttribute);d.colorAttribute=a.getAttribLocation(d,"aColor");a.enableVertexAttribArray(d.colorAttribute);d.mvMatrixUniform=a.getUniformLocation(d,"uMVMatrix");d.samplerUniform=a.getUniformLocation(d,"uSampler");PIXI.shaderProgram=this.shaderProgram};
PIXI.WebGLRenderer.prototype.checkVisibility=function(a,b){for(var c=a.children,d=0;d<c.length;d++){var e=c[d],f=e.visible&&b;e.textureChange&&(e.textureChange=!1,f&&(this.removeDisplayObject(e),this.addDisplayObject(e)));e.cacheVisible!=f&&(e.cacheVisible=f,e.cacheVisible?this.addDisplayObject(e):this.removeDisplayObject(e));0<e.children.length&&this.checkVisibility(e,f)}};
PIXI.WebGLRenderer.prototype.render=function(a){if(!this.contextLost){for(var b=0;b<a.__childrenRemoved.length;b++)this.removeDisplayObject(a.__childrenRemoved[b]);for(b=0;b<PIXI.texturesToUpdate.length;b++)this.updateTexture(PIXI.texturesToUpdate[b]);a.__childrenRemoved=[];a.__childrenAdded=[];PIXI.texturesToUpdate=[];this.checkVisibility(a,!0);a.updateTransform();b=this.gl;b.clear(b.COLOR_BUFFER_BIT);b.clearColor(a.backgroundColorSplit[0],a.backgroundColorSplit[1],a.backgroundColorSplit[2],1);b.blendFunc(b.ONE,
b.ONE_MINUS_SRC_ALPHA);b.uniformMatrix4fv(this.shaderProgram.mvMatrixUniform,!1,this.projectionMatrix);for(var c,b=0;b<this.batchs.length;b++)c=this.batchs[b],c instanceof PIXI.WebGLBatch?this.batchs[b].render():c instanceof PIXI.Strip&&c.visible&&this.renderStrip(c);a.interactive&&!a._interactiveEventsAdded&&(a._interactiveEventsAdded=!0,a.interactionManager.setTarget(this))}};
PIXI.WebGLRenderer.prototype.updateTexture=function(a){var b=this.gl;a._glTexture||(a._glTexture=b.createTexture());a.hasLoaded&&(b.bindTexture(b.TEXTURE_2D,a._glTexture),b.pixelStorei(b.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!0),b.texImage2D(b.TEXTURE_2D,0,b.RGBA,b.RGBA,b.UNSIGNED_BYTE,a.source),b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MAG_FILTER,b.LINEAR),b.texParameteri(b.TEXTURE_2D,b.TEXTURE_MIN_FILTER,b.LINEAR),b.texParameteri(b.TEXTURE_2D,b.TEXTURE_WRAP_S,b.CLAMP_TO_EDGE),b.texParameteri(b.TEXTURE_2D,
b.TEXTURE_WRAP_T,b.CLAMP_TO_EDGE),b.bindTexture(b.TEXTURE_2D,null));this.refreshBatchs=!0};
PIXI.WebGLRenderer.prototype.addDisplayObject=function(a){if(a.stage&&!a.__inWebGL&&(a.batch=null,a.renderable)){a.__inWebGL=!0;var b=a;do{if(0==b.childIndex)b=b.parent;else for(b=b.parent.children[b.childIndex-1];0!=b.children.length;)b=b.children[b.children.length-1];if(b==a.stage)break}while(!b.renderable||!b.__inWebGL);var c=a;do{if(0==c.children.length){for(;c.childIndex==c.parent.children.length-1;)if(c=c.parent,c==a.stage){c=null;break}c&&(c=c.parent.children[c.childIndex+1])}else c=c.children[0];
if(!c)break}while(!c.renderable||!c.__inWebGL);if(a instanceof PIXI.Sprite){var d;if(b instanceof PIXI.Sprite){if((d=b.batch)&&d.texture==a.texture.baseTexture&&d.blendMode==a.blendMode){d.insertAfter(a,b);return}}else d=b;if(c&&c instanceof PIXI.Sprite&&(b=c.batch)){if(b.texture==a.texture.baseTexture&&b.blendMode==a.blendMode){b.insertBefore(a,c);return}if(b==d){c=d.split(c);b=PIXI._getBatch(this.gl);d=this.batchs.indexOf(d);b.init(a);this.batchs.splice(d+1,0,b,c);return}}b=PIXI._getBatch(this.gl);
b.init(a);d?(d=this.batchs.indexOf(d),this.batchs.splice(d+1,0,b)):this.batchs.push(b)}else a instanceof PIXI.Strip&&(this.initStrip(a),this.batchs.push(a));this.batchUpdate=!0}};
PIXI.WebGLRenderer.prototype.removeDisplayObject=function(a){a.cacheVisible=!1;if(a.renderable){a.__inWebGL=!1;var b;if(a instanceof PIXI.Sprite){var c=a.batch;if(!c)return;c.remove(a);0==c.size&&(b=c)}else b=a;b&&(a=this.batchs.indexOf(b),-1!=a&&(!(0==a||a==this.batchs.length-1)&&this.batchs[a-1]instanceof PIXI.WebGLBatch&&this.batchs[a+1]instanceof PIXI.WebGLBatch&&this.batchs[a-1].texture==this.batchs[a+1].texture&&this.batchs[a-1].blendMode==this.batchs[a+1].blendMode?(this.batchs[a-1].merge(this.batchs[a+
1]),b instanceof PIXI.WebGLBatch&&PIXI._returnBatch(b),PIXI._returnBatch(this.batchs[a+1]),this.batchs.splice(a,2)):(this.batchs.splice(a,1),b instanceof PIXI.WebGLBatch&&PIXI._returnBatch(b))))}};PIXI.WebGLRenderer.prototype.resize=function(a,b){this.width=a;this.height=b;this.view.width=a;this.view.height=b;this.gl.viewport(0,0,this.width,this.height);var c=this.projectionMatrix;c[0]=2/this.width;c[5]=-2/this.height;c[12]=-1;c[13]=1};
PIXI.WebGLRenderer.prototype.initStrip=function(a){var b=this.gl;a._vertexBuffer=b.createBuffer();a._indexBuffer=b.createBuffer();a._uvBuffer=b.createBuffer();a._colorBuffer=b.createBuffer();b.bindBuffer(b.ARRAY_BUFFER,a._vertexBuffer);b.bufferData(b.ARRAY_BUFFER,a.verticies,b.DYNAMIC_DRAW);b.bindBuffer(b.ARRAY_BUFFER,a._uvBuffer);b.bufferData(b.ARRAY_BUFFER,a.uvs,b.STATIC_DRAW);b.bindBuffer(b.ARRAY_BUFFER,a._colorBuffer);b.bufferData(b.ARRAY_BUFFER,a.colors,b.STATIC_DRAW);b.bindBuffer(b.ELEMENT_ARRAY_BUFFER,
a._indexBuffer);b.bufferData(b.ELEMENT_ARRAY_BUFFER,a.indices,b.STATIC_DRAW)};
PIXI.WebGLRenderer.prototype.renderStrip=function(a){var b=this.gl,c=this.shaderProgram,d=PIXI.mat3.toMat4(a.worldTransform);PIXI.mat4.transpose(d);PIXI.mat4.multiply(this.projectionMatrix,d,d);b.uniformMatrix4fv(this.shaderProgram.mvMatrixUniform,!1,d);a.blendMode==PIXI.blendModes.NORMAL?b.blendFunc(b.ONE,b.ONE_MINUS_SRC_ALPHA):b.blendFunc(b.ONE,b.ONE_MINUS_SRC_COLOR);a.dirty?(a.dirty=!1,b.bindBuffer(b.ARRAY_BUFFER,a._vertexBuffer),b.bufferData(b.ARRAY_BUFFER,a.verticies,b.STATIC_DRAW),b.vertexAttribPointer(c.vertexPositionAttribute,
2,b.FLOAT,!1,0,0),b.bindBuffer(b.ARRAY_BUFFER,a._uvBuffer),b.bufferData(b.ARRAY_BUFFER,a.uvs,b.STATIC_DRAW),b.vertexAttribPointer(c.textureCoordAttribute,2,b.FLOAT,!1,0,0),b.activeTexture(b.TEXTURE0),b.bindTexture(b.TEXTURE_2D,a.texture.baseTexture._glTexture),b.bindBuffer(b.ARRAY_BUFFER,a._colorBuffer),b.bufferData(b.ARRAY_BUFFER,a.colors,b.STATIC_DRAW),b.vertexAttribPointer(c.colorAttribute,1,b.FLOAT,!1,0,0),b.bindBuffer(b.ELEMENT_ARRAY_BUFFER,a._indexBuffer),b.bufferData(b.ELEMENT_ARRAY_BUFFER,
a.indices,b.STATIC_DRAW)):(b.bindBuffer(b.ARRAY_BUFFER,a._vertexBuffer),b.bufferSubData(b.ARRAY_BUFFER,0,a.verticies),b.vertexAttribPointer(c.vertexPositionAttribute,2,b.FLOAT,!1,0,0),b.bindBuffer(b.ARRAY_BUFFER,a._uvBuffer),b.vertexAttribPointer(c.textureCoordAttribute,2,b.FLOAT,!1,0,0),b.activeTexture(b.TEXTURE0),b.bindTexture(b.TEXTURE_2D,a.texture.baseTexture._glTexture),b.bindBuffer(b.ARRAY_BUFFER,a._colorBuffer),b.vertexAttribPointer(c.colorAttribute,1,b.FLOAT,!1,0,0),b.bindBuffer(b.ELEMENT_ARRAY_BUFFER,
a._indexBuffer));b.drawElements(b.TRIANGLE_STRIP,a.indices.length,b.UNSIGNED_SHORT,0);b.uniformMatrix4fv(this.shaderProgram.mvMatrixUniform,!1,this.projectionMatrix)};PIXI.WebGLRenderer.prototype.handleContextLost=function(a){a.preventDefault();this.contextLost=!0};
PIXI.WebGLRenderer.prototype.handleContextRestored=function(){this.gl=this.view.getContext("experimental-webgl",{alpha:!0});this.initShaders();for(var a=0;a<PIXI.TextureCache.length;a++)this.updateTexture(PIXI.TextureCache[a]);for(a=0;a<this.batchs.length;a++)this.batchs[a].restoreLostContext(this.gl),this.batchs[a].dirty=!0;PIXI._restoreBatchs(this.gl);this.contextLost=!1};PIXI._batchs=[];PIXI._getBatch=function(a){return 0==PIXI._batchs.length?new PIXI.WebGLBatch(a):PIXI._batchs.pop()};
PIXI._returnBatch=function(a){a.clean();PIXI._batchs.push(a)};PIXI._restoreBatchs=function(a){for(var c=0;c<PIXI._batchs.length;c++)PIXI._batchs[c].restoreLostContext(a)};PIXI.WebGLBatch=function(a){this.gl=a;this.size=0;this.vertexBuffer=a.createBuffer();this.indexBuffer=a.createBuffer();this.uvBuffer=a.createBuffer();this.colorBuffer=a.createBuffer();this.blendMode=PIXI.blendModes.NORMAL;this.dynamicSize=1};PIXI.WebGLBatch.constructor=PIXI.WebGLBatch;
PIXI._returnBatch=function(a){a.clean();PIXI._batchs.push(a)};PIXI._restoreBatchs=function(a){for(var b=0;b<PIXI._batchs.length;b++)PIXI._batchs[b].restoreLostContext(a)};PIXI.WebGLBatch=function(a){this.gl=a;this.size=0;this.vertexBuffer=a.createBuffer();this.indexBuffer=a.createBuffer();this.uvBuffer=a.createBuffer();this.colorBuffer=a.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.last=this.texture=null;this.size=0;this.head;this.tail};PIXI.WebGLBatch.prototype.restoreLostContext=function(a){this.gl=a;this.vertexBuffer=a.createBuffer();this.indexBuffer=a.createBuffer();this.uvBuffer=a.createBuffer();this.colorBuffer=a.createBuffer()};
PIXI.WebGLBatch.prototype.init=function(a){a.batch=this;this.dirty=!0;this.blendMode=a.blendMode;this.texture=a.texture.baseTexture;this.tail=this.head=a;this.size=1;this.growBatch()};PIXI.WebGLBatch.prototype.insertBefore=function(a,c){this.size++;a.batch=this;this.dirty=!0;var d=c.__prev;c.__prev=a;a.__next=c;d?(a.__prev=d,d.__next=a):this.head=a};
PIXI.WebGLBatch.prototype.insertAfter=function(a,c){this.size++;a.batch=this;this.dirty=!0;var d=c.__next;c.__next=a;a.__prev=c;d?(a.__next=d,d.__prev=a):this.tail=a};PIXI.WebGLBatch.prototype.remove=function(a){this.size--;0==this.size?(a.batch=null,a.__prev=null,a.__next=null):(a.__prev?a.__prev.__next=a.__next:(this.head=a.__next,this.head.__prev=null),a.__next?a.__next.__prev=a.__prev:(this.tail=a.__prev,this.tail.__next=null),a.batch=null,a.__next=null,a.__prev=null,this.dirty=!0)};
PIXI.WebGLBatch.prototype.split=function(a){this.dirty=!0;var c=new PIXI.WebGLBatch(this.gl);c.init(a);c.tail=this.tail;this.tail=a.__prev;this.tail.__next=null;a.__prev=null;for(var d=0;a;)d++,a.batch=c,a=a.__next;c.size=d;this.size-=d;return c};PIXI.WebGLBatch.prototype.merge=function(a){this.dirty=!0;this.tail.__next=a.head;a.head.__prev=this.tail;this.size+=a.size;this.tail=a.tail;for(a=a.head;a;)a.batch=this,a=a.__next};
PIXI.WebGLBatch.prototype.init=function(a){a.batch=this;this.dirty=!0;this.blendMode=a.blendMode;this.texture=a.texture.baseTexture;this.tail=this.head=a;this.size=1;this.growBatch()};PIXI.WebGLBatch.prototype.insertBefore=function(a,b){this.size++;a.batch=this;this.dirty=!0;var c=b.__prev;b.__prev=a;a.__next=b;c?(a.__prev=c,c.__next=a):this.head=a};
PIXI.WebGLBatch.prototype.insertAfter=function(a,b){this.size++;a.batch=this;this.dirty=!0;var c=b.__next;b.__next=a;a.__prev=b;c?(a.__next=c,c.__prev=a):this.tail=a};PIXI.WebGLBatch.prototype.remove=function(a){this.size--;0==this.size?(a.batch=null,a.__prev=null,a.__next=null):(a.__prev?a.__prev.__next=a.__next:(this.head=a.__next,this.head.__prev=null),a.__next?a.__next.__prev=a.__prev:(this.tail=a.__prev,this.tail.__next=null),a.batch=null,a.__next=null,a.__prev=null,this.dirty=!0)};
PIXI.WebGLBatch.prototype.split=function(a){this.dirty=!0;var b=new PIXI.WebGLBatch(this.gl);b.init(a);b.tail=this.tail;this.tail=a.__prev;this.tail.__next=null;a.__prev=null;for(var c=0;a;)c++,a.batch=b,a=a.__next;b.size=c;this.size-=c;return b};PIXI.WebGLBatch.prototype.merge=function(a){this.dirty=!0;this.tail.__next=a.head;a.head.__prev=this.tail;this.size+=a.size;this.tail=a.tail;for(a=a.head;a;)a.batch=this,a=a.__next};
PIXI.WebGLBatch.prototype.growBatch=function(){var a=this.gl;this.dynamicSize=1==this.size?1:1.5*this.size;this.verticies=new Float32Array(8*this.dynamicSize);a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer);a.bufferData(a.ARRAY_BUFFER,this.verticies,a.DYNAMIC_DRAW);this.uvs=new Float32Array(8*this.dynamicSize);a.bindBuffer(a.ARRAY_BUFFER,this.uvBuffer);a.bufferData(a.ARRAY_BUFFER,this.uvs,a.DYNAMIC_DRAW);this.dirtyUVS=!0;this.colors=new Float32Array(4*this.dynamicSize);a.bindBuffer(a.ARRAY_BUFFER,
this.colorBuffer);a.bufferData(a.ARRAY_BUFFER,this.colors,a.DYNAMIC_DRAW);this.dirtyColors=!0;this.indices=new Uint16Array(6*this.dynamicSize);for(var c=this.indices.length/6,d=0;d<c;d++){var f=6*d,g=4*d;this.indices[f+0]=g+0;this.indices[f+1]=g+1;this.indices[f+2]=g+2;this.indices[f+3]=g+0;this.indices[f+4]=g+2;this.indices[f+5]=g+3}a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer);a.bufferData(a.ELEMENT_ARRAY_BUFFER,this.indices,a.STATIC_DRAW)};
PIXI.WebGLBatch.prototype.refresh=function(){this.dynamicSize<this.size&&this.growBatch();for(var a=0,c,d=this.head;d;){c=8*a;var f=d.texture,g=f.frame,h=f.baseTexture.width,f=f.baseTexture.height;this.uvs[c+0]=g.x/h;this.uvs[c+1]=g.y/f;this.uvs[c+2]=(g.x+g.width)/h;this.uvs[c+3]=g.y/f;this.uvs[c+4]=(g.x+g.width)/h;this.uvs[c+5]=(g.y+g.height)/f;this.uvs[c+6]=g.x/h;this.uvs[c+7]=(g.y+g.height)/f;d.updateFrame=!1;colorIndex=4*a;this.colors[colorIndex]=this.colors[colorIndex+1]=this.colors[colorIndex+
2]=this.colors[colorIndex+3]=d.worldAlpha;d=d.__next;a++}this.dirtyColors=this.dirtyUVS=!0};
PIXI.WebGLBatch.prototype.update=function(){for(var a,c,d,f,g,h,j,k,r,n,z,D=0,m=this.head;m;)c=m.width,d=m.height,f=m.anchor.x-m.texture.trim.x,g=m.anchor.y-m.texture.trim.y,h=c*(1-f),c*=-f,f=d*(1-g),g=d*-g,d=8*D,a=m.worldTransform,j=a[0],k=a[3],r=a[1],n=a[4],z=a[2],a=a[5],this.verticies[d+0]=j*c+r*g+z,this.verticies[d+1]=n*g+k*c+a,this.verticies[d+2]=j*h+r*g+z,this.verticies[d+3]=n*g+k*h+a,this.verticies[d+4]=j*h+r*f+z,this.verticies[d+5]=n*f+k*h+a,this.verticies[d+6]=j*c+r*f+z,this.verticies[d+
7]=n*f+k*c+a,m.updateFrame&&(this.dirtyUVS=!0,f=m.texture,h=f.frame,c=f.baseTexture.width,f=f.baseTexture.height,this.uvs[d+0]=h.x/c,this.uvs[d+1]=h.y/f,this.uvs[d+2]=(h.x+h.width)/c,this.uvs[d+3]=h.y/f,this.uvs[d+4]=(h.x+h.width)/c,this.uvs[d+5]=(h.y+h.height)/f,this.uvs[d+6]=h.x/c,this.uvs[d+7]=(h.y+h.height)/f,m.updateFrame=!1),m.cacheAlpha!=m.worldAlpha&&(m.cacheAlpha=m.worldAlpha,h=4*D,this.colors[h]=this.colors[h+1]=this.colors[h+2]=this.colors[h+3]=m.worldAlpha,this.dirtyColors=!0),D++,m=m.__next};
PIXI.WebGLBatch.prototype.render=function(){this.dirty&&(this.refresh(),this.dirty=!1);if(0!=this.size){this.update();var a=this.gl;this.blendMode==PIXI.blendModes.NORMAL?a.blendFunc(a.ONE,a.ONE_MINUS_SRC_ALPHA):a.blendFunc(a.ONE,a.ONE_MINUS_SRC_COLOR);var c=PIXI.shaderProgram;a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer);a.bufferSubData(a.ARRAY_BUFFER,0,this.verticies);a.vertexAttribPointer(c.vertexPositionAttribute,2,a.FLOAT,!1,0,0);a.bindBuffer(a.ARRAY_BUFFER,this.uvBuffer);this.dirtyUVS&&(this.dirtyUVS=
!1,a.bufferSubData(a.ARRAY_BUFFER,0,this.uvs));a.vertexAttribPointer(c.textureCoordAttribute,2,a.FLOAT,!1,0,0);a.activeTexture(a.TEXTURE0);a.bindTexture(a.TEXTURE_2D,this.texture._glTexture);a.bindBuffer(a.ARRAY_BUFFER,this.colorBuffer);this.dirtyColors&&(this.dirtyColors=!1,a.bufferSubData(a.ARRAY_BUFFER,0,this.colors));a.vertexAttribPointer(c.colorAttribute,1,a.FLOAT,!1,0,0);a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer);a.drawElements(a.TRIANGLES,6*this.size,a.UNSIGNED_SHORT,0)}};
PIXI.CanvasRenderer=function(a,c,d){this.width=a||800;this.height=c||600;this.refresh=!0;this.view=d||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;
this.colorBuffer);a.bufferData(a.ARRAY_BUFFER,this.colors,a.DYNAMIC_DRAW);this.dirtyColors=!0;this.indices=new Uint16Array(6*this.dynamicSize);for(var b=this.indices.length/6,c=0;c<b;c++){var d=6*c,e=4*c;this.indices[d+0]=e+0;this.indices[d+1]=e+1;this.indices[d+2]=e+2;this.indices[d+3]=e+0;this.indices[d+4]=e+2;this.indices[d+5]=e+3}a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer);a.bufferData(a.ELEMENT_ARRAY_BUFFER,this.indices,a.STATIC_DRAW)};
PIXI.WebGLBatch.prototype.refresh=function(){this.dynamicSize<this.size&&this.growBatch();for(var a=0,b,c=this.head;c;){b=8*a;var d=c.texture,e=d.frame,f=d.baseTexture.width,d=d.baseTexture.height;this.uvs[b+0]=e.x/f;this.uvs[b+1]=e.y/d;this.uvs[b+2]=(e.x+e.width)/f;this.uvs[b+3]=e.y/d;this.uvs[b+4]=(e.x+e.width)/f;this.uvs[b+5]=(e.y+e.height)/d;this.uvs[b+6]=e.x/f;this.uvs[b+7]=(e.y+e.height)/d;c.updateFrame=!1;colorIndex=4*a;this.colors[colorIndex]=this.colors[colorIndex+1]=this.colors[colorIndex+
2]=this.colors[colorIndex+3]=c.worldAlpha;c=c.__next;a++}this.dirtyColors=this.dirtyUVS=!0};
PIXI.WebGLBatch.prototype.update=function(){for(var a,b,c,d,e,f,g,h,k,m,n,p=0,j=this.head;j;)b=j.width,c=j.height,d=j.anchor.x-j.texture.trim.x,e=j.anchor.y-j.texture.trim.y,f=b*(1-d),b*=-d,d=c*(1-e),e=c*-e,c=8*p,a=j.worldTransform,g=a[0],h=a[3],k=a[1],m=a[4],n=a[2],a=a[5],this.verticies[c+0]=g*b+k*e+n,this.verticies[c+1]=m*e+h*b+a,this.verticies[c+2]=g*f+k*e+n,this.verticies[c+3]=m*e+h*f+a,this.verticies[c+4]=g*f+k*d+n,this.verticies[c+5]=m*d+h*f+a,this.verticies[c+6]=g*b+k*d+n,this.verticies[c+
7]=m*d+h*b+a,j.updateFrame&&(this.dirtyUVS=!0,d=j.texture,f=d.frame,b=d.baseTexture.width,d=d.baseTexture.height,this.uvs[c+0]=f.x/b,this.uvs[c+1]=f.y/d,this.uvs[c+2]=(f.x+f.width)/b,this.uvs[c+3]=f.y/d,this.uvs[c+4]=(f.x+f.width)/b,this.uvs[c+5]=(f.y+f.height)/d,this.uvs[c+6]=f.x/b,this.uvs[c+7]=(f.y+f.height)/d,j.updateFrame=!1),j.cacheAlpha!=j.worldAlpha&&(j.cacheAlpha=j.worldAlpha,f=4*p,this.colors[f]=this.colors[f+1]=this.colors[f+2]=this.colors[f+3]=j.worldAlpha,this.dirtyColors=!0),p++,j=j.__next};
PIXI.WebGLBatch.prototype.render=function(){this.dirty&&(this.refresh(),this.dirty=!1);if(0!=this.size){this.update();var a=this.gl;this.blendMode==PIXI.blendModes.NORMAL?a.blendFunc(a.ONE,a.ONE_MINUS_SRC_ALPHA):a.blendFunc(a.ONE,a.ONE_MINUS_SRC_COLOR);var b=PIXI.shaderProgram;a.bindBuffer(a.ARRAY_BUFFER,this.vertexBuffer);a.bufferSubData(a.ARRAY_BUFFER,0,this.verticies);a.vertexAttribPointer(b.vertexPositionAttribute,2,a.FLOAT,!1,0,0);a.bindBuffer(a.ARRAY_BUFFER,this.uvBuffer);this.dirtyUVS&&(this.dirtyUVS=
!1,a.bufferSubData(a.ARRAY_BUFFER,0,this.uvs));a.vertexAttribPointer(b.textureCoordAttribute,2,a.FLOAT,!1,0,0);a.activeTexture(a.TEXTURE0);a.bindTexture(a.TEXTURE_2D,this.texture._glTexture);a.bindBuffer(a.ARRAY_BUFFER,this.colorBuffer);this.dirtyColors&&(this.dirtyColors=!1,a.bufferSubData(a.ARRAY_BUFFER,0,this.colors));a.vertexAttribPointer(b.colorAttribute,1,a.FLOAT,!1,0,0);a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.indexBuffer);a.drawElements(a.TRIANGLES,6*this.size,a.UNSIGNED_SHORT,0)}};
PIXI.CanvasRenderer=function(a,b,c){this.width=a||800;this.height=b||600;this.refresh=!0;this.view=c||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(a){a.__childrenAdded=[];a.__childrenRemoved=[];PIXI.texturesToUpdate=[];this.context.setTransform(1,0,0,1,0,0);a.updateTransform();this.context.setTransform(1,0,0,1,0,0);this.view.style.backgroundColor!=a.backgroundColorString&&(this.view.style.backgroundColor=a.backgroundColorString);this.context.clearRect(0,0,this.width,this.height);this.renderDisplayObject(a);a.interactive&&!a._interactiveEventsAdded&&(a._interactiveEventsAdded=!0,a.interactionManager.setTarget(this))};
PIXI.CanvasRenderer.prototype.resize=function(a,c){this.width=a;this.height=c;this.view.width=a;this.view.height=c};
PIXI.CanvasRenderer.prototype.renderDisplayObject=function(a){var c=a.worldTransform,d=this.context;d.globalCompositeOperation="source-over";if(a.visible){if(a instanceof PIXI.Sprite){var f=a.texture.frame;f&&(d.globalAlpha=a.worldAlpha,d.setTransform(c[0],c[3],c[1],c[4],c[2],c[5]),d.drawImage(a.texture.baseTexture.source,f.x,f.y,f.width,f.height,(a.anchor.x-a.texture.trim.x)*-f.width,(a.anchor.y-a.texture.trim.y)*-f.height,a.width,a.height))}else a instanceof PIXI.Strip&&(d.setTransform(c[0],c[3],
c[1],c[4],c[2],c[5]),this.renderStrip(a));for(c=0;c<a.children.length;c++)this.renderDisplayObject(a.children[c])}};PIXI.CanvasRenderer.prototype.renderStripFlat=function(a){var c=this.context;a=a.verticies;var d=a.length/2;this.count++;c.beginPath();for(var f=1;f<d-2;f++){var g=2*f,h=a[g+2],j=a[g+4],k=a[g+3],r=a[g+5];c.moveTo(a[g],a[g+1]);c.lineTo(h,k);c.lineTo(j,r)}c.fillStyle="#FF0000";c.fill();c.closePath()};
PIXI.CanvasRenderer.prototype.renderStrip=function(a){var c=this.context,d=a.verticies,f=a.uvs,g=d.length/2;this.count++;for(var h=1;h<g-2;h++){var j=2*h,k=d[j],r=d[j+2],n=d[j+4],z=d[j+1],D=d[j+3],m=d[j+5],u=f[j]*a.texture.width,y=f[j+2]*a.texture.width,s=f[j+4]*a.texture.width,l=f[j+1]*a.texture.height,G=f[j+3]*a.texture.height,j=f[j+5]*a.texture.height;c.save();c.beginPath();c.moveTo(k,z);c.lineTo(r,D);c.lineTo(n,m);c.closePath();c.clip();var E=u*G+l*s+y*j-G*s-l*y-u*j;c.transform((k*G+l*n+r*j-G*
n-l*r-k*j)/E,(z*G+l*m+D*j-G*m-l*D-z*j)/E,(u*r+k*s+y*n-r*s-k*y-u*n)/E,(u*D+z*s+y*m-D*s-z*y-u*m)/E,(u*G*n+l*r*s+k*y*j-k*G*s-l*y*n-u*r*j)/E,(u*G*m+l*D*s+z*y*j-z*G*s-l*y*m-u*D*j)/E);c.drawImage(a.texture.baseTexture.source,0,0);c.restore()}};
PIXI.Strip=function(a,c,d){PIXI.DisplayObjectContainer.call(this);this.texture=a;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(f){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=c;this.height=d;a.baseTexture.hasLoaded?(this.width=this.texture.frame.width,
PIXI.CanvasRenderer.prototype.resize=function(a,b){this.width=a;this.height=b;this.view.width=a;this.view.height=b};
PIXI.CanvasRenderer.prototype.renderDisplayObject=function(a){var b=a.worldTransform,c=this.context;c.globalCompositeOperation="source-over";if(a.visible){if(a instanceof PIXI.Sprite){var d=a.texture.frame;d&&(c.globalAlpha=a.worldAlpha,c.setTransform(b[0],b[3],b[1],b[4],b[2],b[5]),c.drawImage(a.texture.baseTexture.source,d.x,d.y,d.width,d.height,(a.anchor.x-a.texture.trim.x)*-d.width,(a.anchor.y-a.texture.trim.y)*-d.height,a.width,a.height))}else a instanceof PIXI.Strip&&(c.setTransform(b[0],b[3],
b[1],b[4],b[2],b[5]),this.renderStrip(a));for(b=0;b<a.children.length;b++)this.renderDisplayObject(a.children[b])}};PIXI.CanvasRenderer.prototype.renderStripFlat=function(a){var b=this.context;a=a.verticies;var c=a.length/2;this.count++;b.beginPath();for(var d=1;d<c-2;d++){var e=2*d,f=a[e+2],g=a[e+4],h=a[e+3],k=a[e+5];b.moveTo(a[e],a[e+1]);b.lineTo(f,h);b.lineTo(g,k)}b.fillStyle="#FF0000";b.fill();b.closePath()};
PIXI.CanvasRenderer.prototype.renderStrip=function(a){var b=this.context,c=a.verticies,d=a.uvs,e=c.length/2;this.count++;for(var f=1;f<e-2;f++){var g=2*f,h=c[g],k=c[g+2],m=c[g+4],n=c[g+1],p=c[g+3],j=c[g+5],q=d[g]*a.texture.width,r=d[g+2]*a.texture.width,s=d[g+4]*a.texture.width,t=d[g+1]*a.texture.height,u=d[g+3]*a.texture.height,g=d[g+5]*a.texture.height;b.save();b.beginPath();b.moveTo(h,n);b.lineTo(k,p);b.lineTo(m,j);b.closePath();b.clip();var l=q*u+t*s+r*g-u*s-t*r-q*g;b.transform((h*u+t*m+k*g-u*
m-t*k-h*g)/l,(n*u+t*j+p*g-u*j-t*p-n*g)/l,(q*k+h*s+r*m-k*s-h*r-q*m)/l,(q*p+n*s+r*j-p*s-n*r-q*j)/l,(q*u*m+t*k*s+h*r*g-h*u*s-t*r*m-q*k*g)/l,(q*u*j+t*p*s+n*r*g-n*u*s-t*r*j-q*p*g)/l);b.drawImage(a.texture.baseTexture.source,0,0);b.restore()}};
PIXI.Strip=function(a,b,c){PIXI.DisplayObjectContainer.call(this);this.texture=a;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(d){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=b;this.height=c;a.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(a){this.texture=a;this.width=a.frame.width;this.height=a.frame.height;this.updateFrame=!0};
PIXI.Strip.prototype.onTextureUpdate=function(){this.updateFrame=!0};PIXI.Rope=function(a,c){PIXI.Strip.call(this,a);this.points=c;try{this.verticies=new Float32Array(4*c.length),this.uvs=new Float32Array(4*c.length),this.colors=new Float32Array(2*c.length),this.indices=new Uint16Array(2*c.length)}catch(d){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 a=this.points;if(!(1>a.length)){var c=this.uvs,d=this.indices,f=this.colors;this.count-=0.2;c[0]=0;c[1]=1;c[2]=0;c[3]=1;f[0]=1;f[1]=1;d[0]=0;d[1]=1;for(var a=a.length,g=1;g<a;g++){var h=4*g,j=g/(a-1);c[h]=j;c[h+1]=0;c[h+2]=j;c[h+3]=1;h=2*g;f[h]=1;f[h+1]=1;h=2*g;d[h]=h;d[h+1]=h+1}}};
PIXI.Rope.prototype.updateTransform=function(){var a=this.points;if(!(1>a.length)){var c=this.verticies,d=a[0],f,g=f=0,h=a[0];this.count-=0.2;c[0]=h.x+f;c[1]=h.y+g;c[2]=h.x-f;c[3]=h.y-g;for(var j=a.length,k=1;k<j;k++){var h=a[k],r=4*k;f=k<a.length-1?a[k+1]:h;g=-(f.x-d.x);f=f.y-d.y;var d=Math.sqrt(f*f+g*g),n=this.texture.height/2;f/=d;g/=d;f*=n;g*=n;c[r]=h.x+f;c[r+1]=h.y+g;c[r+2]=h.x-f;c[r+3]=h.y-g;d=h}PIXI.DisplayObjectContainer.prototype.updateTransform.call(this)}};
PIXI.Strip.prototype.onTextureUpdate=function(){this.updateFrame=!0};PIXI.Rope=function(a,b){PIXI.Strip.call(this,a);this.points=b;try{this.verticies=new Float32Array(4*b.length),this.uvs=new Float32Array(4*b.length),this.colors=new Float32Array(2*b.length),this.indices=new Uint16Array(2*b.length)}catch(c){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 a=this.points;if(!(1>a.length)){var b=this.uvs,c=this.indices,d=this.colors;this.count-=0.2;b[0]=0;b[1]=1;b[2]=0;b[3]=1;d[0]=1;d[1]=1;c[0]=0;c[1]=1;for(var a=a.length,e=1;e<a;e++){var f=4*e,g=e/(a-1);b[f]=g;b[f+1]=0;b[f+2]=g;b[f+3]=1;f=2*e;d[f]=1;d[f+1]=1;f=2*e;c[f]=f;c[f+1]=f+1}}};
PIXI.Rope.prototype.updateTransform=function(){var a=this.points;if(!(1>a.length)){var b=this.verticies,c=a[0],d,e=d=0,f=a[0];this.count-=0.2;b[0]=f.x+d;b[1]=f.y+e;b[2]=f.x-d;b[3]=f.y-e;for(var g=a.length,h=1;h<g;h++){var f=a[h],k=4*h;d=h<a.length-1?a[h+1]:f;e=-(d.x-c.x);d=d.y-c.y;var c=Math.sqrt(d*d+e*e),m=this.texture.height/2;d/=c;e/=c;d*=m;e*=m;b[k]=f.x+d;b[k+1]=f.y+e;b[k+2]=f.x-d;b[k+3]=f.y-e;c=f}PIXI.DisplayObjectContainer.prototype.updateTransform.call(this)}};
PIXI.Rope.prototype.setTexture=function(a){this.texture=a;this.updateFrame=!0};PIXI.BaseTextureCache={};PIXI.texturesToUpdate=[];
PIXI.BaseTexture=function(a){PIXI.EventTarget.call(this);this.height=this.width=100;this.source=a;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 c=this;this.source.onload=function(){c.hasLoaded=!0;c.width=c.source.width;c.height=c.source.height;PIXI.texturesToUpdate.push(c);c.dispatchEvent({type:"loaded",content:c})}}else this.hasLoaded=!0,this.width=this.source.width,this.height=
PIXI.BaseTexture=function(a){PIXI.EventTarget.call(this);this.height=this.width=100;this.source=a;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 b=this;this.source.onload=function(){b.hasLoaded=!0;b.width=b.source.width;b.height=b.source.height;PIXI.texturesToUpdate.push(b);b.dispatchEvent({type:"loaded",content:b})}}else this.hasLoaded=!0,this.width=this.source.width,this.height=
this.source.height,PIXI.texturesToUpdate.push(this)};PIXI.BaseTexture.constructor=PIXI.BaseTexture;PIXI.BaseTexture.prototype.fromImage=function(){};PIXI.TextureCache={};PIXI.FrameCache={};
PIXI.Texture=function(a,c){PIXI.EventTarget.call(this);c||(this.noFrame=!0,c=new PIXI.Rectangle(0,0,1,1));this.trim=new PIXI.Point;this.baseTexture=a;this.frame=c;this.scope=this;if(a.hasLoaded)this.noFrame&&(c=new PIXI.Rectangle(0,0,a.width,a.height)),this.setFrame(c);else{var d=this;a.addEventListener("loaded",function(){d.onBaseTextureLoaded()})}};PIXI.Texture.constructor=PIXI.Texture;
PIXI.Texture=function(a,b){PIXI.EventTarget.call(this);b||(this.noFrame=!0,b=new PIXI.Rectangle(0,0,1,1));this.trim=new PIXI.Point;this.baseTexture=a;this.frame=b;this.scope=this;if(a.hasLoaded)this.noFrame&&(b=new PIXI.Rectangle(0,0,a.width,a.height)),this.setFrame(b);else{var c=this;a.addEventListener("loaded",function(){c.onBaseTextureLoaded()})}};PIXI.Texture.constructor=PIXI.Texture;
PIXI.Texture.prototype.onBaseTextureLoaded=function(){var a=this.baseTexture;a.removeEventListener("loaded",this.onLoaded);this.noFrame&&(this.frame=new PIXI.Rectangle(0,0,a.width,a.height));this.noFrame=!1;this.width=this.frame.width;this.height=this.frame.height;this.scope.dispatchEvent({type:"update",content:this})};
PIXI.Texture.prototype.setFrame=function(a){this.frame=a;this.width=a.width;this.height=a.height;if(a.x+a.width>this.baseTexture.width||a.y+a.height>this.baseTexture.height)throw Error("Texture Error: frame does not fit inside the base Texture dimensions "+this);};
PIXI.Texture.fromImage=function(a,c){var d=PIXI.TextureCache[a];d||(d=PIXI.BaseTextureCache[a],d||(d=new Image,c&&(d.crossOrigin=""),d.src=a,d=new PIXI.BaseTexture(d),PIXI.BaseTextureCache[a]=d),d=new PIXI.Texture(d),PIXI.TextureCache[a]=d);return d};PIXI.Texture.fromFrame=function(a){var c=PIXI.TextureCache[a];if(!c)throw Error("The frameId '"+a+"' does not exist in the texture cache "+this);return c};
PIXI.Texture.fromCanvas=function(a){var c=PIXI.TextureCache[a];c||(c=PIXI.BaseTextureCache[a],c||(c=new PIXI.BaseTexture(a),PIXI.BaseTextureCache[a]=c),c=new PIXI.Texture(c),PIXI.TextureCache[a]=c);return c};PIXI.Texture.addTextureToCache=function(a,c){PIXI.TextureCache[c]=a};PIXI.Texture.removeTextureFromCache=function(a){var c=PIXI.TextureCache[a];PIXI.TextureCache[a]=null;return c};
PIXI.Texture.fromImage=function(a,b){var c=PIXI.TextureCache[a];c||(c=PIXI.BaseTextureCache[a],c||(c=new Image,b&&(c.crossOrigin=""),c.src=a,c=new PIXI.BaseTexture(c),PIXI.BaseTextureCache[a]=c),c=new PIXI.Texture(c),PIXI.TextureCache[a]=c);return c};PIXI.Texture.fromFrame=function(a){var b=PIXI.TextureCache[a];if(!b)throw Error("The frameId '"+a+"' does not exist in the texture cache "+this);return b};
PIXI.Texture.fromCanvas=function(a){var b=PIXI.TextureCache[a];b||(b=PIXI.BaseTextureCache[a],b||(b=new PIXI.BaseTexture(a),PIXI.BaseTextureCache[a]=b),b=new PIXI.Texture(b),PIXI.TextureCache[a]=b);return b};PIXI.Texture.addTextureToCache=function(a,b){PIXI.TextureCache[b]=a};PIXI.Texture.removeTextureFromCache=function(a){var b=PIXI.TextureCache[a];PIXI.TextureCache[a]=null;return b};
PIXI.SpriteSheetLoader=function(a){PIXI.EventTarget.call(this);this.url=a;this.baseUrl=a.replace(/[^\/]*$/,"");this.texture;this.frames={};this.crossorigin=!1};PIXI.SpriteSheetLoader.constructor=PIXI.SpriteSheetLoader;
PIXI.SpriteSheetLoader.prototype.load=function(){this.ajaxRequest=new AjaxRequest;var a=this;this.ajaxRequest.onreadystatechange=function(){a.onLoaded()};this.ajaxRequest.open("GET",this.url,!0);this.ajaxRequest.overrideMimeType&&this.ajaxRequest.overrideMimeType("application/json");this.ajaxRequest.send(null)};
PIXI.SpriteSheetLoader.prototype.onLoaded=function(){if(4==this.ajaxRequest.readyState&&(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))){var a=eval("("+this.ajaxRequest.responseText+")");this.texture=PIXI.Texture.fromImage(this.baseUrl+a.meta.image,this.crossorigin).baseTexture;var a=a.frames,c;for(c in a){var d=a[c].frame;PIXI.TextureCache[c]=new PIXI.Texture(this.texture,{x:d.x,y:d.y,width:d.w,height:d.h});a[c].trimmed&&(PIXI.TextureCache[c].realSize=a[c].spriteSourceSize,
PIXI.TextureCache[c].trim.x=0)}if(this.texture.hasLoaded)this.dispatchEvent({type:"loaded",content:this});else{var f=this;this.texture.addEventListener("loaded",function(){f.dispatchEvent({type:"loaded",content:f})})}}};PIXI.AssetLoader=function(a){PIXI.EventTarget.call(this);this.assetURLs=a;this.assets=[];this.crossorigin=!1};PIXI.AssetLoader.constructor=PIXI.AssetLoader;
PIXI.AssetLoader.prototype.load=function(){this.loadCount=this.assetURLs.length;for(var a=["jpeg","jpg","png","gif"],c=["json"],d=0;d<this.assetURLs.length;d++){for(var f=this.assetURLs[d],g=f.split(".").pop().toLowerCase(),h=null,j=0;j<a.length;j++)if(g==a[j]){h="img";break}if("img"!=h)for(j=0;j<c.length;j++)if(g==c[j]){h="atlas";break}if("img"==h)if(f=PIXI.Texture.fromImage(f,this.crossorigin),f.baseTexture.hasLoaded){if(this.loadCount--,0==this.loadCount&&(this.dispatchEvent({type:"onComplete",
content:this}),this.onComplete))this.onComplete()}else{var k=this;f.baseTexture.addEventListener("loaded",function(){k.onAssetLoaded()});this.assets.push(f)}else if("atlas"==h)f=new PIXI.SpriteSheetLoader(f),f.crossorigin=this.crossorigin,this.assets.push(f),k=this,f.addEventListener("loaded",function(){k.onAssetLoaded()}),f.load();else throw Error(f+" is an unsupported file type "+this);}};
PIXI.SpriteSheetLoader.prototype.onLoaded=function(){if(4==this.ajaxRequest.readyState&&(200==this.ajaxRequest.status||-1==window.location.href.indexOf("http"))){var a=eval("("+this.ajaxRequest.responseText+")");this.texture=PIXI.Texture.fromImage(this.baseUrl+a.meta.image,this.crossorigin).baseTexture;var a=a.frames,b;for(b in a){var c=a[b].frame;PIXI.TextureCache[b]=new PIXI.Texture(this.texture,{x:c.x,y:c.y,width:c.w,height:c.h});a[b].trimmed&&(PIXI.TextureCache[b].realSize=a[b].spriteSourceSize,
PIXI.TextureCache[b].trim.x=0)}if(this.texture.hasLoaded)this.dispatchEvent({type:"loaded",content:this});else{var d=this;this.texture.addEventListener("loaded",function(){d.dispatchEvent({type:"loaded",content:d})})}}};PIXI.AssetLoader=function(a){PIXI.EventTarget.call(this);this.assetURLs=a;this.assets=[];this.crossorigin=!1};PIXI.AssetLoader.constructor=PIXI.AssetLoader;
PIXI.AssetLoader.prototype.load=function(){this.loadCount=this.assetURLs.length;for(var a=["jpeg","jpg","png","gif"],b=["json"],c=0;c<this.assetURLs.length;c++){for(var d=this.assetURLs[c],e=d.split(".").pop().toLowerCase(),f=null,g=0;g<a.length;g++)if(e==a[g]){f="img";break}if("img"!=f)for(g=0;g<b.length;g++)if(e==b[g]){f="atlas";break}if("img"==f)if(d=PIXI.Texture.fromImage(d,this.crossorigin),d.baseTexture.hasLoaded){if(this.loadCount--,0==this.loadCount&&(this.dispatchEvent({type:"onComplete",
content:this}),this.onComplete))this.onComplete()}else{var h=this;d.baseTexture.addEventListener("loaded",function(){h.onAssetLoaded()});this.assets.push(d)}else if("atlas"==f)d=new PIXI.SpriteSheetLoader(d),d.crossorigin=this.crossorigin,this.assets.push(d),h=this,d.addEventListener("loaded",function(){h.onAssetLoaded()}),d.load();else throw Error(d+" is an unsupported file type "+this);}};
PIXI.AssetLoader.prototype.onAssetLoaded=function(){this.loadCount--;this.dispatchEvent({type:"onProgress",content:this});if(this.onProgress)this.onProgress();if(0==this.loadCount&&(this.dispatchEvent({type:"onComplete",content:this}),this.onComplete))this.onComplete()};

View file

@ -14,7 +14,7 @@
<filelist dir="../src/pixi" files="Pixi.js, Point.js, Rectangle.js, DisplayObject.js, DisplayObjectContainer.js"/>
<filelist dir="../src/pixi" files="Sprite.js, MovieClip.js, InteractionManager.js, Stage.js"/>
<filelist dir="../src/pixi/utils" files="Utils.js, EventTarget.js, gl-matrix-min.js, Detector.js"/>
<filelist dir="../src/pixi/utils" files="Utils.js, EventTarget.js, Matrix.js, Detector.js"/>
<filelist dir="../src/pixi/renderers" files="WebGLShaders.js, WebGLRenderer.js, WebGLBatch.js, CanvasRenderer.js"/>
<filelist dir="../src/pixi/extras" files="Strip.js, Rope.js"/>
<filelist dir="../src/pixi/textures" files="BaseTexture.js, Texture.js"/>

View file

@ -62,8 +62,8 @@ PIXI.DisplayObject = function()
this.worldAlpha = 1;
this.color = [];
this.worldTransform = mat3.identity();
this.localTransform = mat3.identity();
this.worldTransform = PIXI.mat3.create()//mat3.identity();
this.localTransform = PIXI.mat3.create()//mat3.identity();
this.dynamic = true;
// chach that puppy!
@ -92,18 +92,35 @@ PIXI.DisplayObject.prototype.updateTransform = function()
this._cr = Math.cos(this.rotation);
}
this.localTransform[0] = this._cr * this.scale.x;
this.localTransform[1] = -this._sr * this.scale.y
this.localTransform[3] = this._sr * this.scale.x;
this.localTransform[4] = this._cr * this.scale.y;
var localTransform = this.localTransform;
var parentTransform = this.parent.worldTransform;
var worldTransform = this.worldTransform;
//console.log(localTransform)
localTransform[0] = this._cr * this.scale.x;
localTransform[1] = -this._sr * this.scale.y
localTransform[3] = this._sr * this.scale.x;
localTransform[4] = this._cr * this.scale.y;
///AAARR GETTER SETTTER!
localTransform[2] = this.position.x;
localTransform[5] = this.position.y;
this.localTransform[2] = this.position.x;
this.localTransform[5] = this.position.y;
// Cache the matrix values (makes for huge speed increases!)
var a00 = localTransform[0], a01 = localTransform[1], a02 = localTransform[2],
a10 = localTransform[3], a11 = localTransform[4], a12 = localTransform[5];
b00 = parentTransform[0], b01 = parentTransform[1], b02 = parentTransform[2],
b10 = parentTransform[3], b11 = parentTransform[4], b12 = parentTransform[5];
// TODO optimize?
mat3.multiply(this.localTransform, this.parent.worldTransform, this.worldTransform);
worldTransform[0] = b00 * a00 + b01 * a10;
worldTransform[1] = b00 * a01 + b01 * a11;
worldTransform[2] = b00 * a02 + b01 * a12 + b02;
worldTransform[3] = b10 * a00 + b11 * a10;
worldTransform[4] = b10 * a01 + b11 * a11;
worldTransform[5] = b10 * a02 + b11 * a12 + b12;
// because we are using affine transformation, we can optimise the matrix concatenation process.. wooo!
// mat3.multiply(this.localTransform, this.parent.worldTransform, this.worldTransform);
this.worldAlpha = this.alpha * this.parent.worldAlpha;
}

View file

@ -23,7 +23,7 @@ PIXI.InteractionManager = function(stage)
// helpers
this.tempPoint = new PIXI.Point();
this.tempMatrix = mat3.create();
//this.tempMatrix = mat3.create();
this.mouseoverEnabled = true;

View file

@ -14,7 +14,7 @@ PIXI.Stage = function(backgroundColor, interactive)
{
PIXI.DisplayObjectContainer.call( this );
this.worldTransform = mat3.identity();
this.worldTransform = PIXI.mat3.create()//.//identity();
this.__childrenAdded = [];
this.__childrenRemoved = [];
this.childIndex = 0;

View file

@ -53,8 +53,7 @@ PIXI.WebGLRenderer = function(width, height, view)
gl.enable(gl.BLEND);
gl.colorMask(true, true, true, false);
this.projectionMatrix = mat4.create();
this.projectionMatrix = PIXI.mat4.create();
this.resize(this.width, this.height)
this.contextLost = false;
}
@ -541,9 +540,12 @@ PIXI.WebGLRenderer.prototype.resize = function(width, height)
this.gl.viewport(0, 0, this.width, this.height);
mat4.identity(this.projectionMatrix);
mat4.scale(this.projectionMatrix, [2/this.width, -2/this.height, 1]);
mat4.translate(this.projectionMatrix, [-this.width/2, -this.height/2, 0]);
var projectionMatrix = this.projectionMatrix;
projectionMatrix[0] = 2/this.width;
projectionMatrix[5] = -2/this.height;
projectionMatrix[12] = -1;
projectionMatrix[13] = 1;
}
/**
@ -582,10 +584,9 @@ PIXI.WebGLRenderer.prototype.renderStrip = function(strip)
var gl = this.gl;
var shaderProgram = this.shaderProgram;
// mat
var mat4Real = mat3.toMat4(strip.worldTransform);
mat4.transpose(mat4Real);
mat4.multiply(this.projectionMatrix, mat4Real, mat4Real )
var mat4Real = PIXI.mat3.toMat4(strip.worldTransform);
PIXI.mat4.transpose(mat4Real);
PIXI.mat4.multiply(this.projectionMatrix, mat4Real, mat4Real )
gl.uniformMatrix4fv(this.shaderProgram.mvMatrixUniform, false, mat4Real);

232
src/pixi/utils/Matrix.js Normal file
View file

@ -0,0 +1,232 @@
/*
* A lighter version of the rad gl-matrix created by Brandon Jones, Colin MacKenzie IV
* you both rock!
*/
function determineMatrixArrayType() {
PIXI.Matrix = (typeof Float32Array !== 'undefined') ? Float32Array : Array;
return PIXI.Matrix;
}
determineMatrixArrayType();
PIXI.mat3 = {};
PIXI.mat3.create = function()
{
var matrix = new PIXI.Matrix(9);
matrix[0] = 1;
matrix[1] = 0;
matrix[2] = 0;
matrix[3] = 0;
matrix[4] = 1;
matrix[5] = 0;
matrix[6] = 0;
matrix[7] = 0;
matrix[8] = 1;
return matrix;
}
PIXI.mat4 = {};
PIXI.mat4.create = function()
{
var matrix = new PIXI.Matrix(16);
matrix[0] = 1;
matrix[1] = 0;
matrix[2] = 0;
matrix[3] = 0;
matrix[4] = 0;
matrix[5] = 1;
matrix[6] = 0;
matrix[7] = 0;
matrix[8] = 0;
matrix[9] = 0;
matrix[10] = 1;
matrix[11] = 0;
matrix[12] = 0;
matrix[13] = 0;
matrix[14] = 0;
matrix[15] = 1;
return matrix;
}
PIXI.mat3.multiply = function (mat, mat2, dest)
{
if (!dest) { dest = mat; }
// Cache the matrix values (makes for huge speed increases!)
var a00 = mat[0], a01 = mat[1], a02 = mat[2],
a10 = mat[3], a11 = mat[4], a12 = mat[5],
a20 = mat[6], a21 = mat[7], a22 = mat[8],
b00 = mat2[0], b01 = mat2[1], b02 = mat2[2],
b10 = mat2[3], b11 = mat2[4], b12 = mat2[5],
b20 = mat2[6], b21 = mat2[7], b22 = mat2[8];
dest[0] = b00 * a00 + b01 * a10 + b02 * a20;
dest[1] = b00 * a01 + b01 * a11 + b02 * a21;
dest[2] = b00 * a02 + b01 * a12 + b02 * a22;
dest[3] = b10 * a00 + b11 * a10 + b12 * a20;
dest[4] = b10 * a01 + b11 * a11 + b12 * a21;
dest[5] = b10 * a02 + b11 * a12 + b12 * a22;
dest[6] = b20 * a00 + b21 * a10 + b22 * a20;
dest[7] = b20 * a01 + b21 * a11 + b22 * a21;
dest[8] = b20 * a02 + b21 * a12 + b22 * a22;
return dest;
}
PIXI.mat3.toMat4 = function (mat, dest)
{
if (!dest) { dest = PIXI.mat4.create(); }
dest[15] = 1;
dest[14] = 0;
dest[13] = 0;
dest[12] = 0;
dest[11] = 0;
dest[10] = mat[8];
dest[9] = mat[7];
dest[8] = mat[6];
dest[7] = 0;
dest[6] = mat[5];
dest[5] = mat[4];
dest[4] = mat[3];
dest[3] = 0;
dest[2] = mat[2];
dest[1] = mat[1];
dest[0] = mat[0];
return dest;
}
/////
PIXI.mat4.create = function()
{
var matrix = new PIXI.Matrix(16);
matrix[0] = 1;
matrix[1] = 0;
matrix[2] = 0;
matrix[3] = 0;
matrix[4] = 0;
matrix[5] = 1;
matrix[6] = 0;
matrix[7] = 0;
matrix[8] = 0;
matrix[9] = 0;
matrix[10] = 1;
matrix[11] = 0;
matrix[12] = 0;
matrix[13] = 0;
matrix[14] = 0;
matrix[15] = 1;
return matrix;
}
PIXI.mat4.transpose = function (mat, dest)
{
// If we are transposing ourselves we can skip a few steps but have to cache some values
if (!dest || mat === dest)
{
var a01 = mat[1], a02 = mat[2], a03 = mat[3],
a12 = mat[6], a13 = mat[7],
a23 = mat[11];
mat[1] = mat[4];
mat[2] = mat[8];
mat[3] = mat[12];
mat[4] = a01;
mat[6] = mat[9];
mat[7] = mat[13];
mat[8] = a02;
mat[9] = a12;
mat[11] = mat[14];
mat[12] = a03;
mat[13] = a13;
mat[14] = a23;
return mat;
}
dest[0] = mat[0];
dest[1] = mat[4];
dest[2] = mat[8];
dest[3] = mat[12];
dest[4] = mat[1];
dest[5] = mat[5];
dest[6] = mat[9];
dest[7] = mat[13];
dest[8] = mat[2];
dest[9] = mat[6];
dest[10] = mat[10];
dest[11] = mat[14];
dest[12] = mat[3];
dest[13] = mat[7];
dest[14] = mat[11];
dest[15] = mat[15];
return dest;
}
PIXI.mat4.multiply = function (mat, mat2, dest)
{
if (!dest) { dest = mat; }
// Cache the matrix values (makes for huge speed increases!)
var a00 = mat[ 0], a01 = mat[ 1], a02 = mat[ 2], a03 = mat[3];
var a10 = mat[ 4], a11 = mat[ 5], a12 = mat[ 6], a13 = mat[7];
var a20 = mat[ 8], a21 = mat[ 9], a22 = mat[10], a23 = mat[11];
var a30 = mat[12], a31 = mat[13], a32 = mat[14], a33 = mat[15];
// Cache only the current line of the second matrix
var b0 = mat2[0], b1 = mat2[1], b2 = mat2[2], b3 = mat2[3];
dest[0] = b0*a00 + b1*a10 + b2*a20 + b3*a30;
dest[1] = b0*a01 + b1*a11 + b2*a21 + b3*a31;
dest[2] = b0*a02 + b1*a12 + b2*a22 + b3*a32;
dest[3] = b0*a03 + b1*a13 + b2*a23 + b3*a33;
b0 = mat2[4];
b1 = mat2[5];
b2 = mat2[6];
b3 = mat2[7];
dest[4] = b0*a00 + b1*a10 + b2*a20 + b3*a30;
dest[5] = b0*a01 + b1*a11 + b2*a21 + b3*a31;
dest[6] = b0*a02 + b1*a12 + b2*a22 + b3*a32;
dest[7] = b0*a03 + b1*a13 + b2*a23 + b3*a33;
b0 = mat2[8];
b1 = mat2[9];
b2 = mat2[10];
b3 = mat2[11];
dest[8] = b0*a00 + b1*a10 + b2*a20 + b3*a30;
dest[9] = b0*a01 + b1*a11 + b2*a21 + b3*a31;
dest[10] = b0*a02 + b1*a12 + b2*a22 + b3*a32;
dest[11] = b0*a03 + b1*a13 + b2*a23 + b3*a33;
b0 = mat2[12];
b1 = mat2[13];
b2 = mat2[14];
b3 = mat2[15];
dest[12] = b0*a00 + b1*a10 + b2*a20 + b3*a30;
dest[13] = b0*a01 + b1*a11 + b2*a21 + b3*a31;
dest[14] = b0*a02 + b1*a12 + b2*a22 + b3*a32;
dest[15] = b0*a03 + b1*a13 + b2*a23 + b3*a33;
return dest;
}