@esotericsoftware/spine-webgl 4.2.22 → 4.2.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -81,4 +81,4 @@ varying LOWP vec4 v_color;
|
|
|
81
81
|
void main () {
|
|
82
82
|
gl_FragColor = v_color;
|
|
83
83
|
}
|
|
84
|
-
`;return new ft(t,e,i)}},mt=ft;mt.MVP_MATRIX="u_projTrans",mt.POSITION="a_position",mt.COLOR="a_color",mt.COLOR2="a_color2",mt.TEXCOORDS="a_texCoords",mt.SAMPLER="u_texture";var Yi=class{constructor(t,e,i,s){this.attributes=e,this.verticesBuffer=null,this.verticesLength=0,this.dirtyVertices=!1,this.indicesBuffer=null,this.indicesLength=0,this.dirtyIndices=!1,this.elementsPerVertex=0,this.context=t instanceof xt?t:new xt(t),this.elementsPerVertex=0;for(let n=0;n<e.length;n++)this.elementsPerVertex+=e[n].numElements;this.vertices=new Float32Array(i*this.elementsPerVertex),this.indices=new Uint16Array(s),this.context.addRestorable(this)}getAttributes(){return this.attributes}maxVertices(){return this.vertices.length/this.elementsPerVertex}numVertices(){return this.verticesLength/this.elementsPerVertex}setVerticesLength(t){this.dirtyVertices=!0,this.verticesLength=t}getVertices(){return this.vertices}maxIndices(){return this.indices.length}numIndices(){return this.indicesLength}setIndicesLength(t){this.dirtyIndices=!0,this.indicesLength=t}getIndices(){return this.indices}getVertexSizeInFloats(){let t=0;for(var e=0;e<this.attributes.length;e++){let i=this.attributes[e];t+=i.numElements}return t}setVertices(t){if(this.dirtyVertices=!0,t.length>this.vertices.length)throw Error("Mesh can't store more than "+this.maxVertices()+" vertices");this.vertices.set(t,0),this.verticesLength=t.length}setIndices(t){if(this.dirtyIndices=!0,t.length>this.indices.length)throw Error("Mesh can't store more than "+this.maxIndices()+" indices");this.indices.set(t,0),this.indicesLength=t.length}draw(t,e){this.drawWithOffset(t,e,0,this.indicesLength>0?this.indicesLength:this.verticesLength/this.elementsPerVertex)}drawWithOffset(t,e,i,s){let n=this.context.gl;(this.dirtyVertices||this.dirtyIndices)&&this.update(),this.bind(t),this.indicesLength>0?n.drawElements(e,s,n.UNSIGNED_SHORT,i*2):n.drawArrays(e,i,s),this.unbind(t)}bind(t){let e=this.context.gl;e.bindBuffer(e.ARRAY_BUFFER,this.verticesBuffer);let i=0;for(let s=0;s<this.attributes.length;s++){let n=this.attributes[s],c=t.getAttributeLocation(n.name);e.enableVertexAttribArray(c),e.vertexAttribPointer(c,n.numElements,e.FLOAT,!1,this.elementsPerVertex*4,i*4),i+=n.numElements}this.indicesLength>0&&e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,this.indicesBuffer)}unbind(t){let e=this.context.gl;for(let i=0;i<this.attributes.length;i++){let s=this.attributes[i],n=t.getAttributeLocation(s.name);e.disableVertexAttribArray(n)}e.bindBuffer(e.ARRAY_BUFFER,null),this.indicesLength>0&&e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,null)}update(){let t=this.context.gl;this.dirtyVertices&&(this.verticesBuffer||(this.verticesBuffer=t.createBuffer()),t.bindBuffer(t.ARRAY_BUFFER,this.verticesBuffer),t.bufferData(t.ARRAY_BUFFER,this.vertices.subarray(0,this.verticesLength),t.DYNAMIC_DRAW),this.dirtyVertices=!1),this.dirtyIndices&&(this.indicesBuffer||(this.indicesBuffer=t.createBuffer()),t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,this.indicesBuffer),t.bufferData(t.ELEMENT_ARRAY_BUFFER,this.indices.subarray(0,this.indicesLength),t.DYNAMIC_DRAW),this.dirtyIndices=!1)}restore(){this.verticesBuffer=null,this.indicesBuffer=null,this.update()}dispose(){this.context.removeRestorable(this);let t=this.context.gl;t.deleteBuffer(this.verticesBuffer),t.deleteBuffer(this.indicesBuffer)}},Qt=class{constructor(t,e,i){this.name=t,this.type=e,this.numElements=i}},Me=class extends Qt{constructor(){super(mt.POSITION,Gt.Float,2)}},mr=class extends Qt{constructor(){super(mt.POSITION,Gt.Float,3)}},Mi=class extends Qt{constructor(t=0){super(mt.TEXCOORDS+(t==0?"":t),Gt.Float,2)}},Ee=class extends Qt{constructor(){super(mt.COLOR,Gt.Float,4)}},fs=class extends Qt{constructor(){super(mt.COLOR2,Gt.Float,4)}},Gt=(t=>(t[t.Float=0]="Float",t))(Gt||{}),Bt=1,gr=769,us=770,ms=771,gs=774,Ht=class{constructor(t,e=!0,i=10920){if(this.drawCalls=0,this.isDrawing=!1,this.shader=null,this.lastTexture=null,this.verticesLength=0,this.indicesLength=0,this.cullWasEnabled=!1,i>10920)throw new Error("Can't have more than 10920 triangles per batch: "+i);this.context=t instanceof xt?t:new xt(t);let s=e?[new Me,new Ee,new Mi,new fs]:[new Me,new Ee,new Mi];this.mesh=new Yi(t,s,i,i*3);let n=this.context.gl;this.srcColorBlend=n.SRC_ALPHA,this.srcAlphaBlend=n.ONE,this.dstBlend=n.ONE_MINUS_SRC_ALPHA}begin(t){if(this.isDrawing)throw new Error("PolygonBatch is already drawing. Call PolygonBatch.end() before calling PolygonBatch.begin()");this.drawCalls=0,this.shader=t,this.lastTexture=null,this.isDrawing=!0;let e=this.context.gl;e.enable(e.BLEND),e.blendFuncSeparate(this.srcColorBlend,this.dstBlend,this.srcAlphaBlend,this.dstBlend),Ht.disableCulling&&(this.cullWasEnabled=e.isEnabled(e.CULL_FACE),this.cullWasEnabled&&e.disable(e.CULL_FACE))}setBlendMode(t,e){const i=Ht.blendModesGL[t],s=e?i.srcRgbPma:i.srcRgb,n=i.srcAlpha,c=i.dstRgb;if(this.srcColorBlend==s&&this.srcAlphaBlend==n&&this.dstBlend==c)return;this.srcColorBlend=s,this.srcAlphaBlend=n,this.dstBlend=c,this.isDrawing&&this.flush(),this.context.gl.blendFuncSeparate(s,c,n,c)}draw(t,e,i){t!=this.lastTexture?(this.flush(),this.lastTexture=t):(this.verticesLength+e.length>this.mesh.getVertices().length||this.indicesLength+i.length>this.mesh.getIndices().length)&&this.flush();let s=this.mesh.numVertices();this.mesh.getVertices().set(e,this.verticesLength),this.verticesLength+=e.length,this.mesh.setVerticesLength(this.verticesLength);let n=this.mesh.getIndices();for(let c=this.indicesLength,l=0;l<i.length;c++,l++)n[c]=i[l]+s;this.indicesLength+=i.length,this.mesh.setIndicesLength(this.indicesLength)}flush(){if(this.verticesLength!=0){if(!this.lastTexture)throw new Error("No texture set.");if(!this.shader)throw new Error("No shader set.");this.lastTexture.bind(),this.mesh.draw(this.shader,this.context.gl.TRIANGLES),this.verticesLength=0,this.indicesLength=0,this.mesh.setVerticesLength(0),this.mesh.setIndicesLength(0),this.drawCalls++,Ht.globalDrawCalls++}}end(){if(!this.isDrawing)throw new Error("PolygonBatch is not drawing. Call PolygonBatch.begin() before calling PolygonBatch.end()");(this.verticesLength>0||this.indicesLength>0)&&this.flush(),this.shader=null,this.lastTexture=null,this.isDrawing=!1;let t=this.context.gl;t.disable(t.BLEND),Ht.disableCulling&&this.cullWasEnabled&&t.enable(t.CULL_FACE)}getDrawCalls(){return this.drawCalls}static getAndResetGlobalDrawCalls(){let t=Ht.globalDrawCalls;return Ht.globalDrawCalls=0,t}dispose(){this.mesh.dispose()}},$t=Ht;$t.disableCulling=!1,$t.globalDrawCalls=0,$t.blendModesGL=[{srcRgb:us,srcRgbPma:Bt,dstRgb:ms,srcAlpha:Bt},{srcRgb:us,srcRgbPma:Bt,dstRgb:Bt,srcAlpha:Bt},{srcRgb:gs,srcRgbPma:gs,dstRgb:ms,srcAlpha:Bt},{srcRgb:Bt,srcRgbPma:Bt,dstRgb:gr,srcAlpha:Bt}];var Ei=class{constructor(t,e=10920){if(this.isDrawing=!1,this.shapeType=bt.Filled,this.color=new B(1,1,1,1),this.shader=null,this.vertexIndex=0,this.tmp=new zt,e>10920)throw new Error("Can't have more than 10920 triangles per batch: "+e);this.context=t instanceof xt?t:new xt(t),this.mesh=new Yi(t,[new Me,new Ee],e,0);let i=this.context.gl;this.srcColorBlend=i.SRC_ALPHA,this.srcAlphaBlend=i.ONE,this.dstBlend=i.ONE_MINUS_SRC_ALPHA}begin(t){if(this.isDrawing)throw new Error("ShapeRenderer.begin() has already been called");this.shader=t,this.vertexIndex=0,this.isDrawing=!0;let e=this.context.gl;e.enable(e.BLEND),e.blendFuncSeparate(this.srcColorBlend,this.dstBlend,this.srcAlphaBlend,this.dstBlend)}setBlendMode(t,e,i){this.srcColorBlend=t,this.srcAlphaBlend=e,this.dstBlend=i,this.isDrawing&&(this.flush(),this.context.gl.blendFuncSeparate(t,i,e,i))}setColor(t){this.color.setFromColor(t)}setColorWith(t,e,i,s){this.color.set(t,e,i,s)}point(t,e,i){this.check(bt.Point,1),i||(i=this.color),this.vertex(t,e,i)}line(t,e,i,s,n){this.check(bt.Line,2);let c=this.mesh.getVertices(),l=this.vertexIndex;n||(n=this.color),this.vertex(t,e,n),this.vertex(i,s,n)}triangle(t,e,i,s,n,c,l,r,o,a){this.check(t?bt.Filled:bt.Line,3);let h=this.mesh.getVertices(),d=this.vertexIndex;r||(r=this.color),o||(o=this.color),a||(a=this.color),t?(this.vertex(e,i,r),this.vertex(s,n,o),this.vertex(c,l,a)):(this.vertex(e,i,r),this.vertex(s,n,o),this.vertex(s,n,r),this.vertex(c,l,o),this.vertex(c,l,r),this.vertex(e,i,o))}quad(t,e,i,s,n,c,l,r,o,a,h,d,f){this.check(t?bt.Filled:bt.Line,3);let u=this.mesh.getVertices(),m=this.vertexIndex;a||(a=this.color),h||(h=this.color),d||(d=this.color),f||(f=this.color),t?(this.vertex(e,i,a),this.vertex(s,n,h),this.vertex(c,l,d),this.vertex(c,l,d),this.vertex(r,o,f),this.vertex(e,i,a)):(this.vertex(e,i,a),this.vertex(s,n,h),this.vertex(s,n,h),this.vertex(c,l,d),this.vertex(c,l,d),this.vertex(r,o,f),this.vertex(r,o,f),this.vertex(e,i,a))}rect(t,e,i,s,n,c){this.quad(t,e,i,e+s,i,e+s,i+n,e,i+n,c,c,c,c)}rectLine(t,e,i,s,n,c,l){this.check(t?bt.Filled:bt.Line,8),l||(l=this.color);let r=this.tmp.set(n-i,e-s);r.normalize(),c*=.5;let o=r.x*c,a=r.y*c;t?(this.vertex(e+o,i+a,l),this.vertex(e-o,i-a,l),this.vertex(s+o,n+a,l),this.vertex(s-o,n-a,l),this.vertex(s+o,n+a,l),this.vertex(e-o,i-a,l)):(this.vertex(e+o,i+a,l),this.vertex(e-o,i-a,l),this.vertex(s+o,n+a,l),this.vertex(s-o,n-a,l),this.vertex(s+o,n+a,l),this.vertex(e+o,i+a,l),this.vertex(s-o,n-a,l),this.vertex(e-o,i-a,l))}x(t,e,i){this.line(t-i,e-i,t+i,e+i),this.line(t-i,e+i,t+i,e-i)}polygon(t,e,i,s){if(i<3)throw new Error("Polygon must contain at least 3 vertices");this.check(bt.Line,i*2),s||(s=this.color);let n=this.mesh.getVertices(),c=this.vertexIndex;e<<=1,i<<=1;let l=t[e],r=t[e+1],o=e+i;for(let a=e,h=e+i-2;a<h;a+=2){let d=t[a],f=t[a+1],u=0,m=0;a+2>=o?(u=l,m=r):(u=t[a+2],m=t[a+3]),this.vertex(d,f,s),this.vertex(u,m,s)}}circle(t,e,i,s,n,c=0){if(c==0&&(c=Math.max(1,6*F.cbrt(s)|0)),c<=0)throw new Error("segments must be > 0.");n||(n=this.color);let l=2*F.PI/c,r=Math.cos(l),o=Math.sin(l),a=s,h=0;if(t){this.check(bt.Filled,c*3+3),c--;for(let f=0;f<c;f++){this.vertex(e,i,n),this.vertex(e+a,i+h,n);let u=a;a=r*a-o*h,h=o*u+r*h,this.vertex(e+a,i+h,n)}this.vertex(e,i,n),this.vertex(e+a,i+h,n)}else{this.check(bt.Line,c*2+2);for(let f=0;f<c;f++){this.vertex(e+a,i+h,n);let u=a;a=r*a-o*h,h=o*u+r*h,this.vertex(e+a,i+h,n)}this.vertex(e+a,i+h,n)}let d=a;a=s,h=0,this.vertex(e+a,i+h,n)}curve(t,e,i,s,n,c,l,r,o,a){this.check(bt.Line,o*2+2),a||(a=this.color);let h=1/o,d=h*h,f=h*h*h,u=3*h,m=3*d,x=6*d,p=6*f,v=t-i*2+n,g=e-s*2+c,w=(i-n)*3-t+l,b=(s-c)*3-e+r,y=t,C=e,A=(i-t)*u+v*m+w*f,T=(s-e)*u+g*m+b*f,E=v*x+w*p,R=g*x+b*p,L=w*p,X=b*p;for(;o-- >0;)this.vertex(y,C,a),y+=A,C+=T,A+=E,T+=R,E+=L,R+=X,this.vertex(y,C,a);this.vertex(y,C,a),this.vertex(l,r,a)}vertex(t,e,i){let s=this.vertexIndex,n=this.mesh.getVertices();n[s++]=t,n[s++]=e,n[s++]=i.r,n[s++]=i.g,n[s++]=i.b,n[s++]=i.a,this.vertexIndex=s}end(){if(!this.isDrawing)throw new Error("ShapeRenderer.begin() has not been called");this.flush();let t=this.context.gl;t.disable(t.BLEND),this.isDrawing=!1}flush(){if(this.vertexIndex!=0){if(!this.shader)throw new Error("No shader set.");this.mesh.setVerticesLength(this.vertexIndex),this.mesh.draw(this.shader,this.shapeType),this.vertexIndex=0}}check(t,e){if(!this.isDrawing)throw new Error("ShapeRenderer.begin() has not been called");if(this.shapeType==t)if(this.mesh.maxVertices()-this.mesh.numVertices()<e)this.flush();else return;else this.flush(),this.shapeType=t}dispose(){this.mesh.dispose()}},bt=(t=>(t[t.Point=0]="Point",t[t.Line=1]="Line",t[t.Filled=4]="Filled",t))(bt||{}),ki=class{constructor(t){this.boneLineColor=new B(1,0,0,1),this.boneOriginColor=new B(0,1,0,1),this.attachmentLineColor=new B(0,0,1,.5),this.triangleLineColor=new B(1,.64,0,.5),this.pathColor=new B().setFromString("FF7F00"),this.clipColor=new B(.8,0,0,2),this.aabbColor=new B(0,1,0,.5),this.drawBones=!0,this.drawRegionAttachments=!0,this.drawBoundingBoxes=!0,this.drawMeshHull=!0,this.drawMeshTriangles=!0,this.drawPaths=!0,this.drawSkeletonXY=!1,this.drawClipping=!0,this.premultipliedAlpha=!1,this.scale=1,this.boneWidth=2,this.bounds=new os,this.temp=new Array,this.vertices=P.newFloatArray(2*1024),this.context=t instanceof xt?t:new xt(t)}draw(t,e,i){let s=e.x,n=e.y,c=this.context.gl,l=this.premultipliedAlpha?c.ONE:c.SRC_ALPHA;t.setBlendMode(l,c.ONE,c.ONE_MINUS_SRC_ALPHA);let r=e.bones;if(this.drawBones){t.setColor(this.boneLineColor);for(let o=0,a=r.length;o<a;o++){let h=r[o];if(i&&i.indexOf(h.data.name)>-1||!h.parent)continue;let d=h.data.length*h.a+h.worldX,f=h.data.length*h.c+h.worldY;t.rectLine(!0,h.worldX,h.worldY,d,f,this.boneWidth*this.scale)}this.drawSkeletonXY&&t.x(s,n,4*this.scale)}if(this.drawRegionAttachments){t.setColor(this.attachmentLineColor);let o=e.slots;for(let a=0,h=o.length;a<h;a++){let d=o[a],f=d.getAttachment();if(f instanceof nt){let u=f,m=this.vertices;u.computeWorldVertices(d,m,0,2),t.line(m[0],m[1],m[2],m[3]),t.line(m[2],m[3],m[4],m[5]),t.line(m[4],m[5],m[6],m[7]),t.line(m[6],m[7],m[0],m[1])}}}if(this.drawMeshHull||this.drawMeshTriangles){let o=e.slots;for(let a=0,h=o.length;a<h;a++){let d=o[a];if(!d.bone.active)continue;let f=d.getAttachment();if(!(f instanceof Ot))continue;let u=f,m=this.vertices;u.computeWorldVertices(d,0,u.worldVerticesLength,m,0,2);let x=u.triangles,p=u.hullLength;if(this.drawMeshTriangles){t.setColor(this.triangleLineColor);for(let v=0,g=x.length;v<g;v+=3){let w=x[v]*2,b=x[v+1]*2,y=x[v+2]*2;t.triangle(!1,m[w],m[w+1],m[b],m[b+1],m[y],m[y+1])}}if(this.drawMeshHull&&p>0){t.setColor(this.attachmentLineColor),p=(p>>1)*2;let v=m[p-2],g=m[p-1];for(let w=0,b=p;w<b;w+=2){let y=m[w],C=m[w+1];t.line(y,C,v,g),v=y,g=C}}}}if(this.drawBoundingBoxes){let o=this.bounds;o.update(e,!0),t.setColor(this.aabbColor),t.rect(!1,o.minX,o.minY,o.getWidth(),o.getHeight());let a=o.polygons,h=o.boundingBoxes;for(let d=0,f=a.length;d<f;d++){let u=a[d];t.setColor(h[d].color),t.polygon(u,0,u.length)}}if(this.drawPaths){let o=e.slots;for(let a=0,h=o.length;a<h;a++){let d=o[a];if(!d.bone.active)continue;let f=d.getAttachment();if(!(f instanceof qt))continue;let u=f,m=u.worldVerticesLength,x=this.temp=P.setArraySize(this.temp,m,0);u.computeWorldVertices(d,0,m,x,0,2);let p=this.pathColor,v=x[2],g=x[3],w=0,b=0;if(u.closed){t.setColor(p);let y=x[0],C=x[1],A=x[m-2],T=x[m-1];w=x[m-4],b=x[m-3],t.curve(v,g,y,C,A,T,w,b,32),t.setColor(ki.LIGHT_GRAY),t.line(v,g,y,C),t.line(w,b,A,T)}m-=4;for(let y=4;y<m;y+=6){let C=x[y],A=x[y+1],T=x[y+2],E=x[y+3];w=x[y+4],b=x[y+5],t.setColor(p),t.curve(v,g,C,A,T,E,w,b,32),t.setColor(ki.LIGHT_GRAY),t.line(v,g,C,A),t.line(w,b,T,E),v=w,g=b}}}if(this.drawBones){t.setColor(this.boneOriginColor);for(let o=0,a=r.length;o<a;o++){let h=r[o];i&&i.indexOf(h.data.name)>-1||t.circle(!0,h.worldX,h.worldY,3*this.scale,this.boneOriginColor,8)}}if(this.drawClipping){let o=e.slots;t.setColor(this.clipColor);for(let a=0,h=o.length;a<h;a++){let d=o[a];if(!d.bone.active)continue;let f=d.getAttachment();if(!(f instanceof le))continue;let u=f,m=u.worldVerticesLength,x=this.temp=P.setArraySize(this.temp,m,0);u.computeWorldVertices(d,0,m,x,0,2);for(let p=0,v=x.length;p<v;p+=2){let g=x[p],w=x[p+1],b=x[(p+2)%x.length],y=x[(p+3)%x.length];t.line(g,w,b,y)}}}}dispose(){}},ke=ki;ke.LIGHT_GRAY=new B(.7529411764705882,.7529411764705882,.7529411764705882,1),ke.GREEN=new B(0,1,0,1);var xr=class{constructor(t,e,i){this.vertices=t,this.numVertices=e,this.numFloats=i}},xs=class{constructor(t,e=!0){this.premultipliedAlpha=!1,this.tempColor=new B,this.tempColor2=new B,this.vertexSize=2+2+4,this.twoColorTint=!1,this.renderable=new xr([],0,0),this.clipper=new Ie,this.temp=new zt,this.temp2=new zt,this.temp3=new B,this.temp4=new B,this.twoColorTint=e,e&&(this.vertexSize+=4),this.vertices=P.newFloatArray(this.vertexSize*1024)}draw(t,e,i=-1,s=-1,n=null){let c=this.clipper,l=this.premultipliedAlpha,r=this.twoColorTint,o=null,a=this.renderable,h,d,f=e.drawOrder,u,m=e.color,x=r?12:8,p=!1;i==-1&&(p=!0);for(let v=0,g=f.length;v<g;v++){let w=c.isClipping()?2:x,b=f[v];if(!b.bone.active){c.clipEndWithSlot(b);continue}if(i>=0&&i==b.data.index&&(p=!0),!p){c.clipEndWithSlot(b);continue}s>=0&&s==b.data.index&&(p=!1);let y=b.getAttachment(),C;if(y instanceof nt){let A=y;a.vertices=this.vertices,a.numVertices=4,a.numFloats=w<<2,A.computeWorldVertices(b,a.vertices,0,w),d=xs.QUAD_TRIANGLES,h=A.uvs,C=A.region.texture,u=A.color}else if(y instanceof Ot){let A=y;a.vertices=this.vertices,a.numVertices=A.worldVerticesLength>>1,a.numFloats=a.numVertices*w,a.numFloats>a.vertices.length&&(a.vertices=this.vertices=P.newFloatArray(a.numFloats)),A.computeWorldVertices(b,0,A.worldVerticesLength,a.vertices,0,w),d=A.triangles,C=A.region.texture,h=A.uvs,u=A.color}else if(y instanceof le){let A=y;c.clipStart(b,A);continue}else{c.clipEndWithSlot(b);continue}if(C){let A=b.color,T=this.tempColor;T.r=m.r*A.r*u.r,T.g=m.g*A.g*u.g,T.b=m.b*A.b*u.b,T.a=m.a*A.a*u.a,l&&(T.r*=T.a,T.g*=T.a,T.b*=T.a);let E=this.tempColor2;b.darkColor?(l?(E.r=b.darkColor.r*T.a,E.g=b.darkColor.g*T.a,E.b=b.darkColor.b*T.a):E.setFromColor(b.darkColor),E.a=l?1:0):E.set(0,0,0,1);let R=b.data.blendMode;if(R!=o&&(o=R,t.setBlendMode(o,l)),c.isClipping()){c.clipTriangles(a.vertices,a.numFloats,d,d.length,h,T,E,r);let L=new Float32Array(c.clippedVertices),X=c.clippedTriangles;n&&n(L,L.length,x),t.draw(C,L,X)}else{let L=a.vertices;if(r)for(let k=2,M=0,I=a.numFloats;k<I;k+=x,M+=2)L[k]=T.r,L[k+1]=T.g,L[k+2]=T.b,L[k+3]=T.a,L[k+4]=h[M],L[k+5]=h[M+1],L[k+6]=E.r,L[k+7]=E.g,L[k+8]=E.b,L[k+9]=E.a;else for(let k=2,M=0,I=a.numFloats;k<I;k+=x,M+=2)L[k]=T.r,L[k+1]=T.g,L[k+2]=T.b,L[k+3]=T.a,L[k+4]=h[M],L[k+5]=h[M+1];let X=a.vertices.subarray(0,a.numFloats);n&&n(a.vertices,a.numFloats,x),t.draw(C,X,d)}}c.clipEndWithSlot(b)}c.clipEnd()}},Ri=xs;Ri.QUAD_TRIANGLES=[0,1,2,2,3,0];var S=[0,0,1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,0,1,1,1,1,0,0],Re=[0,1,2,2,3,0],Fe=new B(1,1,1,1),ws=class{constructor(t,e,i=!0){this.twoColorTint=!1,this.activeRenderer=null,this.canvas=t,this.context=e instanceof xt?e:new xt(e),this.twoColorTint=i,this.camera=new cs(t.width,t.height),this.batcherShader=i?mt.newTwoColoredTextured(this.context):mt.newColoredTextured(this.context),this.batcher=new $t(this.context,i),this.shapesShader=mt.newColored(this.context),this.shapes=new Ei(this.context),this.skeletonRenderer=new Ri(this.context,i),this.skeletonDebugRenderer=new ke(this.context)}dispose(){this.batcher.dispose(),this.batcherShader.dispose(),this.shapes.dispose(),this.shapesShader.dispose(),this.skeletonDebugRenderer.dispose()}begin(){this.camera.update(),this.enableRenderer(this.batcher)}drawSkeleton(t,e=!1,i=-1,s=-1,n=null){this.enableRenderer(this.batcher),this.skeletonRenderer.premultipliedAlpha=e,this.skeletonRenderer.draw(this.batcher,t,i,s,n)}drawSkeletonDebug(t,e=!1,i){this.enableRenderer(this.shapes),this.skeletonDebugRenderer.premultipliedAlpha=e,this.skeletonDebugRenderer.draw(this.shapes,t,i)}drawTexture(t,e,i,s,n,c){this.enableRenderer(this.batcher),c||(c=Fe);var l=0;S[l++]=e,S[l++]=i,S[l++]=c.r,S[l++]=c.g,S[l++]=c.b,S[l++]=c.a,S[l++]=0,S[l++]=1,this.twoColorTint&&(S[l++]=0,S[l++]=0,S[l++]=0,S[l++]=0),S[l++]=e+s,S[l++]=i,S[l++]=c.r,S[l++]=c.g,S[l++]=c.b,S[l++]=c.a,S[l++]=1,S[l++]=1,this.twoColorTint&&(S[l++]=0,S[l++]=0,S[l++]=0,S[l++]=0),S[l++]=e+s,S[l++]=i+n,S[l++]=c.r,S[l++]=c.g,S[l++]=c.b,S[l++]=c.a,S[l++]=1,S[l++]=0,this.twoColorTint&&(S[l++]=0,S[l++]=0,S[l++]=0,S[l++]=0),S[l++]=e,S[l++]=i+n,S[l++]=c.r,S[l++]=c.g,S[l++]=c.b,S[l++]=c.a,S[l++]=0,S[l++]=0,this.twoColorTint&&(S[l++]=0,S[l++]=0,S[l++]=0,S[l]=0),this.batcher.draw(t,S,Re)}drawTextureUV(t,e,i,s,n,c,l,r,o,a){this.enableRenderer(this.batcher),a||(a=Fe);var h=0;S[h++]=e,S[h++]=i,S[h++]=a.r,S[h++]=a.g,S[h++]=a.b,S[h++]=a.a,S[h++]=c,S[h++]=l,this.twoColorTint&&(S[h++]=0,S[h++]=0,S[h++]=0,S[h++]=0),S[h++]=e+s,S[h++]=i,S[h++]=a.r,S[h++]=a.g,S[h++]=a.b,S[h++]=a.a,S[h++]=r,S[h++]=l,this.twoColorTint&&(S[h++]=0,S[h++]=0,S[h++]=0,S[h++]=0),S[h++]=e+s,S[h++]=i+n,S[h++]=a.r,S[h++]=a.g,S[h++]=a.b,S[h++]=a.a,S[h++]=r,S[h++]=o,this.twoColorTint&&(S[h++]=0,S[h++]=0,S[h++]=0,S[h++]=0),S[h++]=e,S[h++]=i+n,S[h++]=a.r,S[h++]=a.g,S[h++]=a.b,S[h++]=a.a,S[h++]=c,S[h++]=o,this.twoColorTint&&(S[h++]=0,S[h++]=0,S[h++]=0,S[h]=0),this.batcher.draw(t,S,Re)}drawTextureRotated(t,e,i,s,n,c,l,r,o){this.enableRenderer(this.batcher),o||(o=Fe);let a=e+c,h=i+l,d=-c,f=-l,u=s-c,m=n-l,x=d,p=f,v=d,g=m,w=u,b=m,y=u,C=f,A=0,T=0,E=0,R=0,L=0,X=0,k=0,M=0;if(r!=0){let W=F.cosDeg(r),it=F.sinDeg(r);A=W*x-it*p,T=it*x+W*p,k=W*v-it*g,M=it*v+W*g,L=W*w-it*b,X=it*w+W*b,E=L+(A-k),R=X+(T-M)}else A=x,T=p,k=v,M=g,L=w,X=b,E=y,R=C;A+=a,T+=h,E+=a,R+=h,L+=a,X+=h,k+=a,M+=h;var I=0;S[I++]=A,S[I++]=T,S[I++]=o.r,S[I++]=o.g,S[I++]=o.b,S[I++]=o.a,S[I++]=0,S[I++]=1,this.twoColorTint&&(S[I++]=0,S[I++]=0,S[I++]=0,S[I++]=0),S[I++]=E,S[I++]=R,S[I++]=o.r,S[I++]=o.g,S[I++]=o.b,S[I++]=o.a,S[I++]=1,S[I++]=1,this.twoColorTint&&(S[I++]=0,S[I++]=0,S[I++]=0,S[I++]=0),S[I++]=L,S[I++]=X,S[I++]=o.r,S[I++]=o.g,S[I++]=o.b,S[I++]=o.a,S[I++]=1,S[I++]=0,this.twoColorTint&&(S[I++]=0,S[I++]=0,S[I++]=0,S[I++]=0),S[I++]=k,S[I++]=M,S[I++]=o.r,S[I++]=o.g,S[I++]=o.b,S[I++]=o.a,S[I++]=0,S[I++]=0,this.twoColorTint&&(S[I++]=0,S[I++]=0,S[I++]=0,S[I]=0),this.batcher.draw(t,S,Re)}drawRegion(t,e,i,s,n,c){this.enableRenderer(this.batcher),c||(c=Fe);var l=0;S[l++]=e,S[l++]=i,S[l++]=c.r,S[l++]=c.g,S[l++]=c.b,S[l++]=c.a,S[l++]=t.u,S[l++]=t.v2,this.twoColorTint&&(S[l++]=0,S[l++]=0,S[l++]=0,S[l++]=0),S[l++]=e+s,S[l++]=i,S[l++]=c.r,S[l++]=c.g,S[l++]=c.b,S[l++]=c.a,S[l++]=t.u2,S[l++]=t.v2,this.twoColorTint&&(S[l++]=0,S[l++]=0,S[l++]=0,S[l++]=0),S[l++]=e+s,S[l++]=i+n,S[l++]=c.r,S[l++]=c.g,S[l++]=c.b,S[l++]=c.a,S[l++]=t.u2,S[l++]=t.v,this.twoColorTint&&(S[l++]=0,S[l++]=0,S[l++]=0,S[l++]=0),S[l++]=e,S[l++]=i+n,S[l++]=c.r,S[l++]=c.g,S[l++]=c.b,S[l++]=c.a,S[l++]=t.u,S[l++]=t.v,this.twoColorTint&&(S[l++]=0,S[l++]=0,S[l++]=0,S[l]=0),this.batcher.draw(t.page.texture,S,Re)}line(t,e,i,s,n,c){this.enableRenderer(this.shapes),this.shapes.line(t,e,i,s,n)}triangle(t,e,i,s,n,c,l,r,o,a){this.enableRenderer(this.shapes),this.shapes.triangle(t,e,i,s,n,c,l,r,o,a)}quad(t,e,i,s,n,c,l,r,o,a,h,d,f){this.enableRenderer(this.shapes),this.shapes.quad(t,e,i,s,n,c,l,r,o,a,h,d,f)}rect(t,e,i,s,n,c){this.enableRenderer(this.shapes),this.shapes.rect(t,e,i,s,n,c)}rectLine(t,e,i,s,n,c,l){this.enableRenderer(this.shapes),this.shapes.rectLine(t,e,i,s,n,c,l)}polygon(t,e,i,s){this.enableRenderer(this.shapes),this.shapes.polygon(t,e,i,s)}circle(t,e,i,s,n,c=0){this.enableRenderer(this.shapes),this.shapes.circle(t,e,i,s,n,c)}curve(t,e,i,s,n,c,l,r,o,a){this.enableRenderer(this.shapes),this.shapes.curve(t,e,i,s,n,c,l,r,o,a)}end(){this.activeRenderer===this.batcher?this.batcher.end():this.activeRenderer===this.shapes&&this.shapes.end(),this.activeRenderer=null}resize(t){let e=this.canvas;var i=window.devicePixelRatio||1,s=Math.round(e.clientWidth*i),n=Math.round(e.clientHeight*i);if((e.width!=s||e.height!=n)&&(e.width=s,e.height=n),this.context.gl.viewport(0,0,e.width,e.height),t===Xe.Expand)this.camera.setViewport(s,n);else if(t===Xe.Fit){let c=e.width,l=e.height,r=this.camera.viewportWidth,o=this.camera.viewportHeight,a=o/r,h=l/c,d=a<h?r/c:o/l;this.camera.setViewport(c*d,l*d)}this.camera.update()}enableRenderer(t){this.activeRenderer!==t&&(this.end(),t instanceof $t?(this.batcherShader.bind(),this.batcherShader.setUniform4x4f(mt.MVP_MATRIX,this.camera.projectionView.values),this.batcherShader.setUniformi("u_texture",0),this.batcher.begin(this.batcherShader),this.activeRenderer=this.batcher):t instanceof Ei?(this.shapesShader.bind(),this.shapesShader.setUniform4x4f(mt.MVP_MATRIX,this.camera.projectionView.values),this.shapes.begin(this.shapesShader),this.activeRenderer=this.shapes):this.activeRenderer=this.skeletonDebugRenderer)}},Xe=(t=>(t[t.Stretch=0]="Stretch",t[t.Expand=1]="Expand",t[t.Fit=2]="Fit",t))(Xe||{}),he,te,bs=0,wr=1,Fi=1,ps=165,vs=108,jt=163,br=class{constructor(t){if(this.logo=null,this.spinner=null,this.angle=0,this.fadeOut=0,this.fadeIn=0,this.timeKeeper=new Oe,this.backgroundColor=new B(.135,.135,.135,1),this.tempColor=new B,this.renderer=t,this.timeKeeper.maxDelta=9,!te){let e=navigator.userAgent.indexOf("Safari")>-1,i=()=>bs++;te=new Image,te.src=vr,e||(te.crossOrigin="anonymous"),te.onload=i,he=new Image,he.src=pr,e||(he.crossOrigin="anonymous"),he.onload=i}}dispose(){var t,e;(t=this.logo)==null||t.dispose(),(e=this.spinner)==null||e.dispose()}draw(t=!1){if(bs<2||t&&this.fadeOut>Fi)return;this.timeKeeper.update();let e=Math.abs(Math.sin(this.timeKeeper.totalTime+.25));this.angle-=this.timeKeeper.delta*200*(1+1.5*Math.pow(e,5));let i=this.tempColor,s=this.renderer,n=s.canvas,c=s.context.gl;if(s.resize(1),s.camera.position.set(n.width/2,n.height/2,0),s.batcher.setBlendMode(0,!0),t){if(this.fadeOut+=this.timeKeeper.delta*(this.timeKeeper.totalTime<1?2:1),this.fadeOut>Fi)return;i.setFromColor(this.backgroundColor),e=1-this.fadeOut/Fi,e=1-(e-1)*(e-1),i.a*=e,i.a>0&&(s.camera.zoom=1,s.begin(),s.quad(!0,0,0,n.width,0,n.width,n.height,0,n.height,i,i,i,i),s.end())}else this.fadeIn+=this.timeKeeper.delta,this.backgroundColor.a>0&&(c.clearColor(this.backgroundColor.r,this.backgroundColor.g,this.backgroundColor.b,this.backgroundColor.a),c.clear(c.COLOR_BUFFER_BIT)),e=1;e*=Math.min(this.fadeIn/wr,1),i.set(e,e,e,e),this.logo||(this.logo=new oe(s.context,te),this.spinner=new oe(s.context,he)),s.camera.zoom=Math.max(1,jt/n.height),s.begin(),s.drawTexture(this.logo,(n.width-ps)/2,(n.height-vs)/2,ps,vs,i),this.spinner&&s.drawTextureRotated(this.spinner,(n.width-jt)/2,(n.height-jt)/2,jt,jt,jt/2,jt/2,this.angle,i),s.end()}},pr="data:image/png;base64,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",vr="data:image/png;base64,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",yr=class{constructor(t,e){this.time=new Oe,e.pathPrefix||(e.pathPrefix=""),e.app||(e.app={loadAssets:()=>{},initialize:()=>{},update:()=>{},render:()=>{},error:()=>{}}),e.webglConfig||(e.webglConfig={alpha:!0}),this.htmlCanvas=t,this.context=new xt(t,e.webglConfig),this.renderer=new ws(t,this.context),this.gl=this.context.gl,this.assetManager=new hs(this.context,e.pathPrefix),this.input=new Ii(t),e.app.loadAssets&&e.app.loadAssets(this);let i=()=>{requestAnimationFrame(i),this.time.update(),e.app.update&&e.app.update(this,this.time.delta),e.app.render&&e.app.render(this)},s=()=>{if(this.assetManager.isLoadingComplete()){this.assetManager.hasErrors()?e.app.error&&e.app.error(this,this.assetManager.getErrors()):(e.app.initialize&&e.app.initialize(this),i());return}requestAnimationFrame(s)};requestAnimationFrame(s)}clear(t,e,i,s){this.gl.clearColor(t,e,i,s),this.gl.clear(this.gl.COLOR_BUFFER_BIT)}};return Rs(Pi)})();
|
|
84
|
+
`;return new ft(t,e,i)}},mt=ft;mt.MVP_MATRIX="u_projTrans",mt.POSITION="a_position",mt.COLOR="a_color",mt.COLOR2="a_color2",mt.TEXCOORDS="a_texCoords",mt.SAMPLER="u_texture";var Yi=class{constructor(t,e,i,s){this.attributes=e,this.verticesBuffer=null,this.verticesLength=0,this.dirtyVertices=!1,this.indicesBuffer=null,this.indicesLength=0,this.dirtyIndices=!1,this.elementsPerVertex=0,this.context=t instanceof xt?t:new xt(t),this.elementsPerVertex=0;for(let n=0;n<e.length;n++)this.elementsPerVertex+=e[n].numElements;this.vertices=new Float32Array(i*this.elementsPerVertex),this.indices=new Uint16Array(s),this.context.addRestorable(this)}getAttributes(){return this.attributes}maxVertices(){return this.vertices.length/this.elementsPerVertex}numVertices(){return this.verticesLength/this.elementsPerVertex}setVerticesLength(t){this.dirtyVertices=!0,this.verticesLength=t}getVertices(){return this.vertices}maxIndices(){return this.indices.length}numIndices(){return this.indicesLength}setIndicesLength(t){this.dirtyIndices=!0,this.indicesLength=t}getIndices(){return this.indices}getVertexSizeInFloats(){let t=0;for(var e=0;e<this.attributes.length;e++){let i=this.attributes[e];t+=i.numElements}return t}setVertices(t){if(this.dirtyVertices=!0,t.length>this.vertices.length)throw Error("Mesh can't store more than "+this.maxVertices()+" vertices");this.vertices.set(t,0),this.verticesLength=t.length}setIndices(t){if(this.dirtyIndices=!0,t.length>this.indices.length)throw Error("Mesh can't store more than "+this.maxIndices()+" indices");this.indices.set(t,0),this.indicesLength=t.length}draw(t,e){this.drawWithOffset(t,e,0,this.indicesLength>0?this.indicesLength:this.verticesLength/this.elementsPerVertex)}drawWithOffset(t,e,i,s){let n=this.context.gl;(this.dirtyVertices||this.dirtyIndices)&&this.update(),this.bind(t),this.indicesLength>0?n.drawElements(e,s,n.UNSIGNED_SHORT,i*2):n.drawArrays(e,i,s),this.unbind(t)}bind(t){let e=this.context.gl;e.bindBuffer(e.ARRAY_BUFFER,this.verticesBuffer);let i=0;for(let s=0;s<this.attributes.length;s++){let n=this.attributes[s],c=t.getAttributeLocation(n.name);e.enableVertexAttribArray(c),e.vertexAttribPointer(c,n.numElements,e.FLOAT,!1,this.elementsPerVertex*4,i*4),i+=n.numElements}this.indicesLength>0&&e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,this.indicesBuffer)}unbind(t){let e=this.context.gl;for(let i=0;i<this.attributes.length;i++){let s=this.attributes[i],n=t.getAttributeLocation(s.name);e.disableVertexAttribArray(n)}e.bindBuffer(e.ARRAY_BUFFER,null),this.indicesLength>0&&e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,null)}update(){let t=this.context.gl;this.dirtyVertices&&(this.verticesBuffer||(this.verticesBuffer=t.createBuffer()),t.bindBuffer(t.ARRAY_BUFFER,this.verticesBuffer),t.bufferData(t.ARRAY_BUFFER,this.vertices.subarray(0,this.verticesLength),t.DYNAMIC_DRAW),this.dirtyVertices=!1),this.dirtyIndices&&(this.indicesBuffer||(this.indicesBuffer=t.createBuffer()),t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,this.indicesBuffer),t.bufferData(t.ELEMENT_ARRAY_BUFFER,this.indices.subarray(0,this.indicesLength),t.DYNAMIC_DRAW),this.dirtyIndices=!1)}restore(){this.verticesBuffer=null,this.indicesBuffer=null,this.update()}dispose(){this.context.removeRestorable(this);let t=this.context.gl;t.deleteBuffer(this.verticesBuffer),t.deleteBuffer(this.indicesBuffer)}},Qt=class{constructor(t,e,i){this.name=t,this.type=e,this.numElements=i}},Me=class extends Qt{constructor(){super(mt.POSITION,Gt.Float,2)}},mr=class extends Qt{constructor(){super(mt.POSITION,Gt.Float,3)}},Mi=class extends Qt{constructor(t=0){super(mt.TEXCOORDS+(t==0?"":t),Gt.Float,2)}},Ee=class extends Qt{constructor(){super(mt.COLOR,Gt.Float,4)}},fs=class extends Qt{constructor(){super(mt.COLOR2,Gt.Float,4)}},Gt=(t=>(t[t.Float=0]="Float",t))(Gt||{}),Bt=1,gr=769,us=770,ms=771,gs=774,Ht=class{constructor(t,e=!0,i=10920){if(this.drawCalls=0,this.isDrawing=!1,this.shader=null,this.lastTexture=null,this.verticesLength=0,this.indicesLength=0,this.cullWasEnabled=!1,i>10920)throw new Error("Can't have more than 10920 triangles per batch: "+i);this.context=t instanceof xt?t:new xt(t);let s=e?[new Me,new Ee,new Mi,new fs]:[new Me,new Ee,new Mi];this.mesh=new Yi(t,s,i,i*3);let n=this.context.gl;this.srcColorBlend=n.SRC_ALPHA,this.srcAlphaBlend=n.ONE,this.dstBlend=n.ONE_MINUS_SRC_ALPHA}begin(t){if(this.isDrawing)throw new Error("PolygonBatch is already drawing. Call PolygonBatch.end() before calling PolygonBatch.begin()");this.drawCalls=0,this.shader=t,this.lastTexture=null,this.isDrawing=!0;let e=this.context.gl;e.enable(e.BLEND),e.blendFuncSeparate(this.srcColorBlend,this.dstBlend,this.srcAlphaBlend,this.dstBlend),Ht.disableCulling&&(this.cullWasEnabled=e.isEnabled(e.CULL_FACE),this.cullWasEnabled&&e.disable(e.CULL_FACE))}setBlendMode(t,e){const i=Ht.blendModesGL[t],s=e?i.srcRgbPma:i.srcRgb,n=i.srcAlpha,c=i.dstRgb;if(this.srcColorBlend==s&&this.srcAlphaBlend==n&&this.dstBlend==c)return;this.srcColorBlend=s,this.srcAlphaBlend=n,this.dstBlend=c,this.isDrawing&&this.flush(),this.context.gl.blendFuncSeparate(s,c,n,c)}draw(t,e,i){t!=this.lastTexture?(this.flush(),this.lastTexture=t):(this.verticesLength+e.length>this.mesh.getVertices().length||this.indicesLength+i.length>this.mesh.getIndices().length)&&this.flush();let s=this.mesh.numVertices();this.mesh.getVertices().set(e,this.verticesLength),this.verticesLength+=e.length,this.mesh.setVerticesLength(this.verticesLength);let n=this.mesh.getIndices();for(let c=this.indicesLength,l=0;l<i.length;c++,l++)n[c]=i[l]+s;this.indicesLength+=i.length,this.mesh.setIndicesLength(this.indicesLength)}flush(){if(this.verticesLength!=0){if(!this.lastTexture)throw new Error("No texture set.");if(!this.shader)throw new Error("No shader set.");this.lastTexture.bind(),this.mesh.draw(this.shader,this.context.gl.TRIANGLES),this.verticesLength=0,this.indicesLength=0,this.mesh.setVerticesLength(0),this.mesh.setIndicesLength(0),this.drawCalls++,Ht.globalDrawCalls++}}end(){if(!this.isDrawing)throw new Error("PolygonBatch is not drawing. Call PolygonBatch.begin() before calling PolygonBatch.end()");(this.verticesLength>0||this.indicesLength>0)&&this.flush(),this.shader=null,this.lastTexture=null,this.isDrawing=!1;let t=this.context.gl;t.disable(t.BLEND),Ht.disableCulling&&this.cullWasEnabled&&t.enable(t.CULL_FACE)}getDrawCalls(){return this.drawCalls}static getAndResetGlobalDrawCalls(){let t=Ht.globalDrawCalls;return Ht.globalDrawCalls=0,t}dispose(){this.mesh.dispose()}},$t=Ht;$t.disableCulling=!1,$t.globalDrawCalls=0,$t.blendModesGL=[{srcRgb:us,srcRgbPma:Bt,dstRgb:ms,srcAlpha:Bt},{srcRgb:us,srcRgbPma:Bt,dstRgb:Bt,srcAlpha:Bt},{srcRgb:gs,srcRgbPma:gs,dstRgb:ms,srcAlpha:Bt},{srcRgb:Bt,srcRgbPma:Bt,dstRgb:gr,srcAlpha:Bt}];var Ei=class{constructor(t,e=10920){if(this.isDrawing=!1,this.shapeType=bt.Filled,this.color=new B(1,1,1,1),this.shader=null,this.vertexIndex=0,this.tmp=new zt,e>10920)throw new Error("Can't have more than 10920 triangles per batch: "+e);this.context=t instanceof xt?t:new xt(t),this.mesh=new Yi(t,[new Me,new Ee],e,0);let i=this.context.gl;this.srcColorBlend=i.SRC_ALPHA,this.srcAlphaBlend=i.ONE,this.dstBlend=i.ONE_MINUS_SRC_ALPHA}begin(t){if(this.isDrawing)throw new Error("ShapeRenderer.begin() has already been called");this.shader=t,this.vertexIndex=0,this.isDrawing=!0;let e=this.context.gl;e.enable(e.BLEND),e.blendFuncSeparate(this.srcColorBlend,this.dstBlend,this.srcAlphaBlend,this.dstBlend)}setBlendMode(t,e,i){this.srcColorBlend=t,this.srcAlphaBlend=e,this.dstBlend=i,this.isDrawing&&(this.flush(),this.context.gl.blendFuncSeparate(t,i,e,i))}setColor(t){this.color.setFromColor(t)}setColorWith(t,e,i,s){this.color.set(t,e,i,s)}point(t,e,i){this.check(bt.Point,1),i||(i=this.color),this.vertex(t,e,i)}line(t,e,i,s,n){this.check(bt.Line,2);let c=this.mesh.getVertices(),l=this.vertexIndex;n||(n=this.color),this.vertex(t,e,n),this.vertex(i,s,n)}triangle(t,e,i,s,n,c,l,r,o,a){this.check(t?bt.Filled:bt.Line,3);let h=this.mesh.getVertices(),d=this.vertexIndex;r||(r=this.color),o||(o=this.color),a||(a=this.color),t?(this.vertex(e,i,r),this.vertex(s,n,o),this.vertex(c,l,a)):(this.vertex(e,i,r),this.vertex(s,n,o),this.vertex(s,n,r),this.vertex(c,l,o),this.vertex(c,l,r),this.vertex(e,i,o))}quad(t,e,i,s,n,c,l,r,o,a,h,d,f){this.check(t?bt.Filled:bt.Line,3);let u=this.mesh.getVertices(),m=this.vertexIndex;a||(a=this.color),h||(h=this.color),d||(d=this.color),f||(f=this.color),t?(this.vertex(e,i,a),this.vertex(s,n,h),this.vertex(c,l,d),this.vertex(c,l,d),this.vertex(r,o,f),this.vertex(e,i,a)):(this.vertex(e,i,a),this.vertex(s,n,h),this.vertex(s,n,h),this.vertex(c,l,d),this.vertex(c,l,d),this.vertex(r,o,f),this.vertex(r,o,f),this.vertex(e,i,a))}rect(t,e,i,s,n,c){this.quad(t,e,i,e+s,i,e+s,i+n,e,i+n,c,c,c,c)}rectLine(t,e,i,s,n,c,l){this.check(t?bt.Filled:bt.Line,8),l||(l=this.color);let r=this.tmp.set(n-i,e-s);r.normalize(),c*=.5;let o=r.x*c,a=r.y*c;t?(this.vertex(e+o,i+a,l),this.vertex(e-o,i-a,l),this.vertex(s+o,n+a,l),this.vertex(s-o,n-a,l),this.vertex(s+o,n+a,l),this.vertex(e-o,i-a,l)):(this.vertex(e+o,i+a,l),this.vertex(e-o,i-a,l),this.vertex(s+o,n+a,l),this.vertex(s-o,n-a,l),this.vertex(s+o,n+a,l),this.vertex(e+o,i+a,l),this.vertex(s-o,n-a,l),this.vertex(e-o,i-a,l))}x(t,e,i){this.line(t-i,e-i,t+i,e+i),this.line(t-i,e+i,t+i,e-i)}polygon(t,e,i,s){if(i<3)throw new Error("Polygon must contain at least 3 vertices");this.check(bt.Line,i*2),s||(s=this.color);let n=this.mesh.getVertices(),c=this.vertexIndex;e<<=1,i<<=1;let l=t[e],r=t[e+1],o=e+i;for(let a=e,h=e+i-2;a<h;a+=2){let d=t[a],f=t[a+1],u=0,m=0;a+2>=o?(u=l,m=r):(u=t[a+2],m=t[a+3]),this.vertex(d,f,s),this.vertex(u,m,s)}}circle(t,e,i,s,n,c=0){if(c==0&&(c=Math.max(1,6*F.cbrt(s)|0)),c<=0)throw new Error("segments must be > 0.");n||(n=this.color);let l=2*F.PI/c,r=Math.cos(l),o=Math.sin(l),a=s,h=0;if(t){this.check(bt.Filled,c*3+3),c--;for(let f=0;f<c;f++){this.vertex(e,i,n),this.vertex(e+a,i+h,n);let u=a;a=r*a-o*h,h=o*u+r*h,this.vertex(e+a,i+h,n)}this.vertex(e,i,n),this.vertex(e+a,i+h,n)}else{this.check(bt.Line,c*2+2);for(let f=0;f<c;f++){this.vertex(e+a,i+h,n);let u=a;a=r*a-o*h,h=o*u+r*h,this.vertex(e+a,i+h,n)}this.vertex(e+a,i+h,n)}let d=a;a=s,h=0,this.vertex(e+a,i+h,n)}curve(t,e,i,s,n,c,l,r,o,a){this.check(bt.Line,o*2+2),a||(a=this.color);let h=1/o,d=h*h,f=h*h*h,u=3*h,m=3*d,x=6*d,p=6*f,v=t-i*2+n,g=e-s*2+c,w=(i-n)*3-t+l,b=(s-c)*3-e+r,y=t,C=e,A=(i-t)*u+v*m+w*f,T=(s-e)*u+g*m+b*f,E=v*x+w*p,R=g*x+b*p,L=w*p,X=b*p;for(;o-- >0;)this.vertex(y,C,a),y+=A,C+=T,A+=E,T+=R,E+=L,R+=X,this.vertex(y,C,a);this.vertex(y,C,a),this.vertex(l,r,a)}vertex(t,e,i){let s=this.vertexIndex,n=this.mesh.getVertices();n[s++]=t,n[s++]=e,n[s++]=i.r,n[s++]=i.g,n[s++]=i.b,n[s++]=i.a,this.vertexIndex=s}end(){if(!this.isDrawing)throw new Error("ShapeRenderer.begin() has not been called");this.flush();let t=this.context.gl;t.disable(t.BLEND),this.isDrawing=!1}flush(){if(this.vertexIndex!=0){if(!this.shader)throw new Error("No shader set.");this.mesh.setVerticesLength(this.vertexIndex),this.mesh.draw(this.shader,this.shapeType),this.vertexIndex=0}}check(t,e){if(!this.isDrawing)throw new Error("ShapeRenderer.begin() has not been called");if(this.shapeType==t)if(this.mesh.maxVertices()-this.mesh.numVertices()<e)this.flush();else return;else this.flush(),this.shapeType=t}dispose(){this.mesh.dispose()}},bt=(t=>(t[t.Point=0]="Point",t[t.Line=1]="Line",t[t.Filled=4]="Filled",t))(bt||{}),ki=class{constructor(t){this.boneLineColor=new B(1,0,0,1),this.boneOriginColor=new B(0,1,0,1),this.attachmentLineColor=new B(0,0,1,.5),this.triangleLineColor=new B(1,.64,0,.5),this.pathColor=new B().setFromString("FF7F00"),this.clipColor=new B(.8,0,0,2),this.aabbColor=new B(0,1,0,.5),this.drawBones=!0,this.drawRegionAttachments=!0,this.drawBoundingBoxes=!0,this.drawMeshHull=!0,this.drawMeshTriangles=!0,this.drawPaths=!0,this.drawSkeletonXY=!1,this.drawClipping=!0,this.premultipliedAlpha=!1,this.scale=1,this.boneWidth=2,this.bounds=new os,this.temp=new Array,this.vertices=P.newFloatArray(2*1024),this.context=t instanceof xt?t:new xt(t)}draw(t,e,i){let s=e.x,n=e.y,c=this.context.gl,l=this.premultipliedAlpha?c.ONE:c.SRC_ALPHA;t.setBlendMode(l,c.ONE,c.ONE_MINUS_SRC_ALPHA);let r=e.bones;if(this.drawBones){t.setColor(this.boneLineColor);for(let o=0,a=r.length;o<a;o++){let h=r[o];if(i&&i.indexOf(h.data.name)>-1||!h.parent)continue;let d=h.data.length*h.a+h.worldX,f=h.data.length*h.c+h.worldY;t.rectLine(!0,h.worldX,h.worldY,d,f,this.boneWidth*this.scale)}this.drawSkeletonXY&&t.x(s,n,4*this.scale)}if(this.drawRegionAttachments){t.setColor(this.attachmentLineColor);let o=e.slots;for(let a=0,h=o.length;a<h;a++){let d=o[a],f=d.getAttachment();if(f instanceof nt){let u=f,m=this.vertices;u.computeWorldVertices(d,m,0,2),t.line(m[0],m[1],m[2],m[3]),t.line(m[2],m[3],m[4],m[5]),t.line(m[4],m[5],m[6],m[7]),t.line(m[6],m[7],m[0],m[1])}}}if(this.drawMeshHull||this.drawMeshTriangles){let o=e.slots;for(let a=0,h=o.length;a<h;a++){let d=o[a];if(!d.bone.active)continue;let f=d.getAttachment();if(!(f instanceof Ot))continue;let u=f,m=this.vertices;u.computeWorldVertices(d,0,u.worldVerticesLength,m,0,2);let x=u.triangles,p=u.hullLength;if(this.drawMeshTriangles){t.setColor(this.triangleLineColor);for(let v=0,g=x.length;v<g;v+=3){let w=x[v]*2,b=x[v+1]*2,y=x[v+2]*2;t.triangle(!1,m[w],m[w+1],m[b],m[b+1],m[y],m[y+1])}}if(this.drawMeshHull&&p>0){t.setColor(this.attachmentLineColor),p=(p>>1)*2;let v=m[p-2],g=m[p-1];for(let w=0,b=p;w<b;w+=2){let y=m[w],C=m[w+1];t.line(y,C,v,g),v=y,g=C}}}}if(this.drawBoundingBoxes){let o=this.bounds;o.update(e,!0),t.setColor(this.aabbColor),t.rect(!1,o.minX,o.minY,o.getWidth(),o.getHeight());let a=o.polygons,h=o.boundingBoxes;for(let d=0,f=a.length;d<f;d++){let u=a[d];t.setColor(h[d].color),t.polygon(u,0,u.length)}}if(this.drawPaths){let o=e.slots;for(let a=0,h=o.length;a<h;a++){let d=o[a];if(!d.bone.active)continue;let f=d.getAttachment();if(!(f instanceof qt))continue;let u=f,m=u.worldVerticesLength,x=this.temp=P.setArraySize(this.temp,m,0);u.computeWorldVertices(d,0,m,x,0,2);let p=this.pathColor,v=x[2],g=x[3],w=0,b=0;if(u.closed){t.setColor(p);let y=x[0],C=x[1],A=x[m-2],T=x[m-1];w=x[m-4],b=x[m-3],t.curve(v,g,y,C,A,T,w,b,32),t.setColor(ki.LIGHT_GRAY),t.line(v,g,y,C),t.line(w,b,A,T)}m-=4;for(let y=4;y<m;y+=6){let C=x[y],A=x[y+1],T=x[y+2],E=x[y+3];w=x[y+4],b=x[y+5],t.setColor(p),t.curve(v,g,C,A,T,E,w,b,32),t.setColor(ki.LIGHT_GRAY),t.line(v,g,C,A),t.line(w,b,T,E),v=w,g=b}}}if(this.drawBones){t.setColor(this.boneOriginColor);for(let o=0,a=r.length;o<a;o++){let h=r[o];i&&i.indexOf(h.data.name)>-1||t.circle(!0,h.worldX,h.worldY,3*this.scale,this.boneOriginColor,8)}}if(this.drawClipping){let o=e.slots;t.setColor(this.clipColor);for(let a=0,h=o.length;a<h;a++){let d=o[a];if(!d.bone.active)continue;let f=d.getAttachment();if(!(f instanceof le))continue;let u=f,m=u.worldVerticesLength,x=this.temp=P.setArraySize(this.temp,m,0);u.computeWorldVertices(d,0,m,x,0,2);for(let p=0,v=x.length;p<v;p+=2){let g=x[p],w=x[p+1],b=x[(p+2)%x.length],y=x[(p+3)%x.length];t.line(g,w,b,y)}}}}dispose(){}},ke=ki;ke.LIGHT_GRAY=new B(.7529411764705882,.7529411764705882,.7529411764705882,1),ke.GREEN=new B(0,1,0,1);var xr=class{constructor(t,e,i){this.vertices=t,this.numVertices=e,this.numFloats=i}},xs=class{constructor(t,e=!0){this.premultipliedAlpha=!1,this.tempColor=new B,this.tempColor2=new B,this.vertexSize=2+2+4,this.twoColorTint=!1,this.renderable=new xr([],0,0),this.clipper=new Ie,this.temp=new zt,this.temp2=new zt,this.temp3=new B,this.temp4=new B,this.twoColorTint=e,e&&(this.vertexSize+=4),this.vertices=P.newFloatArray(this.vertexSize*1024)}draw(t,e,i=-1,s=-1,n=null){let c=this.clipper,l=this.premultipliedAlpha,r=this.twoColorTint,o=null,a=this.renderable,h,d,f=e.drawOrder,u,m=e.color,x=r?12:8,p=!1;i==-1&&(p=!0);for(let v=0,g=f.length;v<g;v++){let w=c.isClipping()?2:x,b=f[v];if(!b.bone.active){c.clipEndWithSlot(b);continue}if(i>=0&&i==b.data.index&&(p=!0),!p){c.clipEndWithSlot(b);continue}s>=0&&s==b.data.index&&(p=!1);let y=b.getAttachment(),C;if(y instanceof nt){let A=y;a.vertices=this.vertices,a.numVertices=4,a.numFloats=w<<2,A.computeWorldVertices(b,a.vertices,0,w),d=xs.QUAD_TRIANGLES,h=A.uvs,C=A.region.texture,u=A.color}else if(y instanceof Ot){let A=y;a.vertices=this.vertices,a.numVertices=A.worldVerticesLength>>1,a.numFloats=a.numVertices*w,a.numFloats>a.vertices.length&&(a.vertices=this.vertices=P.newFloatArray(a.numFloats)),A.computeWorldVertices(b,0,A.worldVerticesLength,a.vertices,0,w),d=A.triangles,C=A.region.texture,h=A.uvs,u=A.color}else if(y instanceof le){let A=y;c.clipStart(b,A);continue}else{c.clipEndWithSlot(b);continue}if(C){let A=b.color,T=this.tempColor;T.r=m.r*A.r*u.r,T.g=m.g*A.g*u.g,T.b=m.b*A.b*u.b,T.a=m.a*A.a*u.a,l&&(T.r*=T.a,T.g*=T.a,T.b*=T.a);let E=this.tempColor2;b.darkColor?(l?(E.r=b.darkColor.r*T.a,E.g=b.darkColor.g*T.a,E.b=b.darkColor.b*T.a):E.setFromColor(b.darkColor),E.a=l?1:0):E.set(0,0,0,1);let R=b.data.blendMode;if(R!=o&&(o=R,t.setBlendMode(o,l)),c.isClipping()){c.clipTriangles(a.vertices,a.numFloats,d,d.length,h,T,E,r);let L=new Float32Array(c.clippedVertices),X=c.clippedTriangles;n&&n(L,L.length,x),t.draw(C,L,X)}else{let L=a.vertices;if(r)for(let k=2,M=0,I=a.numFloats;k<I;k+=x,M+=2)L[k]=T.r,L[k+1]=T.g,L[k+2]=T.b,L[k+3]=T.a,L[k+4]=h[M],L[k+5]=h[M+1],L[k+6]=E.r,L[k+7]=E.g,L[k+8]=E.b,L[k+9]=E.a;else for(let k=2,M=0,I=a.numFloats;k<I;k+=x,M+=2)L[k]=T.r,L[k+1]=T.g,L[k+2]=T.b,L[k+3]=T.a,L[k+4]=h[M],L[k+5]=h[M+1];let X=a.vertices.subarray(0,a.numFloats);n&&n(a.vertices,a.numFloats,x),t.draw(C,X,d)}}c.clipEndWithSlot(b)}c.clipEnd()}},Ri=xs;Ri.QUAD_TRIANGLES=[0,1,2,2,3,0];var S=[0,0,1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,0,1,1,1,1,0,0],Re=[0,1,2,2,3,0],Fe=new B(1,1,1,1),ws=class{constructor(t,e,i=!0){this.twoColorTint=!1,this.activeRenderer=null,this.canvas=t,this.context=e instanceof xt?e:new xt(e),this.twoColorTint=i,this.camera=new cs(t.width,t.height),this.batcherShader=i?mt.newTwoColoredTextured(this.context):mt.newColoredTextured(this.context),this.batcher=new $t(this.context,i),this.shapesShader=mt.newColored(this.context),this.shapes=new Ei(this.context),this.skeletonRenderer=new Ri(this.context,i),this.skeletonDebugRenderer=new ke(this.context)}dispose(){this.batcher.dispose(),this.batcherShader.dispose(),this.shapes.dispose(),this.shapesShader.dispose(),this.skeletonDebugRenderer.dispose()}begin(){this.camera.update(),this.enableRenderer(this.batcher)}drawSkeleton(t,e=!1,i=-1,s=-1,n=null){this.enableRenderer(this.batcher),this.skeletonRenderer.premultipliedAlpha=e,this.skeletonRenderer.draw(this.batcher,t,i,s,n)}drawSkeletonDebug(t,e=!1,i){this.enableRenderer(this.shapes),this.skeletonDebugRenderer.premultipliedAlpha=e,this.skeletonDebugRenderer.draw(this.shapes,t,i)}drawTexture(t,e,i,s,n,c){this.enableRenderer(this.batcher),c||(c=Fe);var l=0;S[l++]=e,S[l++]=i,S[l++]=c.r,S[l++]=c.g,S[l++]=c.b,S[l++]=c.a,S[l++]=0,S[l++]=1,this.twoColorTint&&(S[l++]=0,S[l++]=0,S[l++]=0,S[l++]=0),S[l++]=e+s,S[l++]=i,S[l++]=c.r,S[l++]=c.g,S[l++]=c.b,S[l++]=c.a,S[l++]=1,S[l++]=1,this.twoColorTint&&(S[l++]=0,S[l++]=0,S[l++]=0,S[l++]=0),S[l++]=e+s,S[l++]=i+n,S[l++]=c.r,S[l++]=c.g,S[l++]=c.b,S[l++]=c.a,S[l++]=1,S[l++]=0,this.twoColorTint&&(S[l++]=0,S[l++]=0,S[l++]=0,S[l++]=0),S[l++]=e,S[l++]=i+n,S[l++]=c.r,S[l++]=c.g,S[l++]=c.b,S[l++]=c.a,S[l++]=0,S[l++]=0,this.twoColorTint&&(S[l++]=0,S[l++]=0,S[l++]=0,S[l]=0),this.batcher.draw(t,S,Re)}drawTextureUV(t,e,i,s,n,c,l,r,o,a){this.enableRenderer(this.batcher),a||(a=Fe);var h=0;S[h++]=e,S[h++]=i,S[h++]=a.r,S[h++]=a.g,S[h++]=a.b,S[h++]=a.a,S[h++]=c,S[h++]=l,this.twoColorTint&&(S[h++]=0,S[h++]=0,S[h++]=0,S[h++]=0),S[h++]=e+s,S[h++]=i,S[h++]=a.r,S[h++]=a.g,S[h++]=a.b,S[h++]=a.a,S[h++]=r,S[h++]=l,this.twoColorTint&&(S[h++]=0,S[h++]=0,S[h++]=0,S[h++]=0),S[h++]=e+s,S[h++]=i+n,S[h++]=a.r,S[h++]=a.g,S[h++]=a.b,S[h++]=a.a,S[h++]=r,S[h++]=o,this.twoColorTint&&(S[h++]=0,S[h++]=0,S[h++]=0,S[h++]=0),S[h++]=e,S[h++]=i+n,S[h++]=a.r,S[h++]=a.g,S[h++]=a.b,S[h++]=a.a,S[h++]=c,S[h++]=o,this.twoColorTint&&(S[h++]=0,S[h++]=0,S[h++]=0,S[h]=0),this.batcher.draw(t,S,Re)}drawTextureRotated(t,e,i,s,n,c,l,r,o){this.enableRenderer(this.batcher),o||(o=Fe);let a=e+c,h=i+l,d=-c,f=-l,u=s-c,m=n-l,x=d,p=f,v=d,g=m,w=u,b=m,y=u,C=f,A=0,T=0,E=0,R=0,L=0,X=0,k=0,M=0;if(r!=0){let W=F.cosDeg(r),it=F.sinDeg(r);A=W*x-it*p,T=it*x+W*p,k=W*v-it*g,M=it*v+W*g,L=W*w-it*b,X=it*w+W*b,E=L+(A-k),R=X+(T-M)}else A=x,T=p,k=v,M=g,L=w,X=b,E=y,R=C;A+=a,T+=h,E+=a,R+=h,L+=a,X+=h,k+=a,M+=h;var I=0;S[I++]=A,S[I++]=T,S[I++]=o.r,S[I++]=o.g,S[I++]=o.b,S[I++]=o.a,S[I++]=0,S[I++]=1,this.twoColorTint&&(S[I++]=0,S[I++]=0,S[I++]=0,S[I++]=0),S[I++]=E,S[I++]=R,S[I++]=o.r,S[I++]=o.g,S[I++]=o.b,S[I++]=o.a,S[I++]=1,S[I++]=1,this.twoColorTint&&(S[I++]=0,S[I++]=0,S[I++]=0,S[I++]=0),S[I++]=L,S[I++]=X,S[I++]=o.r,S[I++]=o.g,S[I++]=o.b,S[I++]=o.a,S[I++]=1,S[I++]=0,this.twoColorTint&&(S[I++]=0,S[I++]=0,S[I++]=0,S[I++]=0),S[I++]=k,S[I++]=M,S[I++]=o.r,S[I++]=o.g,S[I++]=o.b,S[I++]=o.a,S[I++]=0,S[I++]=0,this.twoColorTint&&(S[I++]=0,S[I++]=0,S[I++]=0,S[I]=0),this.batcher.draw(t,S,Re)}drawRegion(t,e,i,s,n,c){this.enableRenderer(this.batcher),c||(c=Fe);var l=0;S[l++]=e,S[l++]=i,S[l++]=c.r,S[l++]=c.g,S[l++]=c.b,S[l++]=c.a,S[l++]=t.u,S[l++]=t.v2,this.twoColorTint&&(S[l++]=0,S[l++]=0,S[l++]=0,S[l++]=0),S[l++]=e+s,S[l++]=i,S[l++]=c.r,S[l++]=c.g,S[l++]=c.b,S[l++]=c.a,S[l++]=t.u2,S[l++]=t.v2,this.twoColorTint&&(S[l++]=0,S[l++]=0,S[l++]=0,S[l++]=0),S[l++]=e+s,S[l++]=i+n,S[l++]=c.r,S[l++]=c.g,S[l++]=c.b,S[l++]=c.a,S[l++]=t.u2,S[l++]=t.v,this.twoColorTint&&(S[l++]=0,S[l++]=0,S[l++]=0,S[l++]=0),S[l++]=e,S[l++]=i+n,S[l++]=c.r,S[l++]=c.g,S[l++]=c.b,S[l++]=c.a,S[l++]=t.u,S[l++]=t.v,this.twoColorTint&&(S[l++]=0,S[l++]=0,S[l++]=0,S[l]=0),this.batcher.draw(t.page.texture,S,Re)}line(t,e,i,s,n,c){this.enableRenderer(this.shapes),this.shapes.line(t,e,i,s,n)}triangle(t,e,i,s,n,c,l,r,o,a){this.enableRenderer(this.shapes),this.shapes.triangle(t,e,i,s,n,c,l,r,o,a)}quad(t,e,i,s,n,c,l,r,o,a,h,d,f){this.enableRenderer(this.shapes),this.shapes.quad(t,e,i,s,n,c,l,r,o,a,h,d,f)}rect(t,e,i,s,n,c){this.enableRenderer(this.shapes),this.shapes.rect(t,e,i,s,n,c)}rectLine(t,e,i,s,n,c,l){this.enableRenderer(this.shapes),this.shapes.rectLine(t,e,i,s,n,c,l)}polygon(t,e,i,s){this.enableRenderer(this.shapes),this.shapes.polygon(t,e,i,s)}circle(t,e,i,s,n,c=0){this.enableRenderer(this.shapes),this.shapes.circle(t,e,i,s,n,c)}curve(t,e,i,s,n,c,l,r,o,a){this.enableRenderer(this.shapes),this.shapes.curve(t,e,i,s,n,c,l,r,o,a)}end(){this.activeRenderer===this.batcher?this.batcher.end():this.activeRenderer===this.shapes&&this.shapes.end(),this.activeRenderer=null}resize(t){let e=this.canvas;var i=window.devicePixelRatio||1,s=Math.round(e.clientWidth*i),n=Math.round(e.clientHeight*i);if((e.width!=s||e.height!=n)&&(e.width=s,e.height=n),this.context.gl.viewport(0,0,e.width,e.height),t===Xe.Expand)this.camera.setViewport(s,n);else if(t===Xe.Fit){let c=e.width,l=e.height,r=this.camera.viewportWidth,o=this.camera.viewportHeight,a=o/r,h=l/c,d=a<h?r/c:o/l;this.camera.setViewport(c*d,l*d)}this.camera.update()}enableRenderer(t){this.activeRenderer!==t&&(this.end(),t instanceof $t?(this.batcherShader.bind(),this.batcherShader.setUniform4x4f(mt.MVP_MATRIX,this.camera.projectionView.values),this.batcherShader.setUniformi("u_texture",0),this.batcher.begin(this.batcherShader),this.activeRenderer=this.batcher):t instanceof Ei?(this.shapesShader.bind(),this.shapesShader.setUniform4x4f(mt.MVP_MATRIX,this.camera.projectionView.values),this.shapes.begin(this.shapesShader),this.activeRenderer=this.shapes):this.activeRenderer=this.skeletonDebugRenderer)}},Xe=(t=>(t[t.Stretch=0]="Stretch",t[t.Expand=1]="Expand",t[t.Fit=2]="Fit",t))(Xe||{}),he,te,bs=0,wr=1,Fi=1,ps=165,vs=108,jt=163,br=class{constructor(t){if(this.logo=null,this.spinner=null,this.angle=0,this.fadeOut=0,this.fadeIn=0,this.timeKeeper=new Oe,this.backgroundColor=new B(.135,.135,.135,1),this.tempColor=new B,this.renderer=t,this.timeKeeper.maxDelta=9,!te){let e=navigator.userAgent.indexOf("Safari")>-1,i=()=>bs++;te=new Image,te.src=vr,e||(te.crossOrigin="anonymous"),te.onload=i,he=new Image,he.src=pr,e||(he.crossOrigin="anonymous"),he.onload=i}}dispose(){var t,e;(t=this.logo)==null||t.dispose(),(e=this.spinner)==null||e.dispose()}draw(t=!1){if(bs<2||t&&this.fadeOut>Fi)return;this.timeKeeper.update();let e=Math.abs(Math.sin(this.timeKeeper.totalTime+.25));this.angle-=this.timeKeeper.delta*200*(1+1.5*Math.pow(e,5));let i=this.tempColor,s=this.renderer,n=s.canvas,c=s.context.gl;if(s.resize(1),s.camera.position.set(n.width/2,n.height/2,0),s.batcher.setBlendMode(0,!0),t){if(this.fadeOut+=this.timeKeeper.delta*(this.timeKeeper.totalTime<1?2:1),this.fadeOut>Fi)return;i.setFromColor(this.backgroundColor),e=1-this.fadeOut/Fi,e=1-(e-1)*(e-1),i.a*=e,i.a>0&&(s.camera.zoom=1,s.begin(),s.quad(!0,0,0,n.width,0,n.width,n.height,0,n.height,i,i,i,i),s.end())}else this.fadeIn+=this.timeKeeper.delta,this.backgroundColor.a>0&&(c.clearColor(this.backgroundColor.r,this.backgroundColor.g,this.backgroundColor.b,this.backgroundColor.a),c.clear(c.COLOR_BUFFER_BIT)),e=1;e*=Math.min(this.fadeIn/wr,1),i.set(e,e,e,e),this.logo||(this.logo=new oe(s.context,te),this.spinner=new oe(s.context,he)),s.camera.zoom=Math.max(1,jt/n.height),s.begin(),s.drawTexture(this.logo,(n.width-ps)/2,(n.height-vs)/2,ps,vs,i),this.spinner&&s.drawTextureRotated(this.spinner,(n.width-jt)/2,(n.height-jt)/2,jt,jt,jt/2,jt/2,this.angle,i),s.end()}},pr="data:image/png;base64,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",vr="data:image/png;base64,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",yr=class{constructor(t,e){this.config=e,this.time=new Oe,this.disposed=!1,e.pathPrefix||(e.pathPrefix=""),e.app||(e.app={loadAssets:()=>{},initialize:()=>{},update:()=>{},render:()=>{},error:()=>{},dispose:()=>{}}),e.webglConfig||(e.webglConfig={alpha:!0}),this.htmlCanvas=t,this.context=new xt(t,e.webglConfig),this.renderer=new ws(t,this.context),this.gl=this.context.gl,this.assetManager=new hs(this.context,e.pathPrefix),this.input=new Ii(t),e.app.loadAssets&&e.app.loadAssets(this);let i=()=>{this.disposed||(requestAnimationFrame(i),this.time.update(),e.app.update&&e.app.update(this,this.time.delta),e.app.render&&e.app.render(this))},s=()=>{if(!this.disposed){if(this.assetManager.isLoadingComplete()){this.assetManager.hasErrors()?e.app.error&&e.app.error(this,this.assetManager.getErrors()):(e.app.initialize&&e.app.initialize(this),i());return}requestAnimationFrame(s)}};requestAnimationFrame(s)}clear(t,e,i,s){this.gl.clearColor(t,e,i,s),this.gl.clear(this.gl.COLOR_BUFFER_BIT)}dispose(){this.config.app.dispose&&this.config.app.dispose(this),this.disposed=!0}};return Rs(Pi)})();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@esotericsoftware/spine-webgl",
|
|
3
|
-
"version": "4.2.
|
|
3
|
+
"version": "4.2.23",
|
|
4
4
|
"description": "The official Spine Runtimes for the web.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -30,6 +30,6 @@
|
|
|
30
30
|
},
|
|
31
31
|
"homepage": "https://github.com/esotericsoftware/spine-runtimes#readme",
|
|
32
32
|
"dependencies": {
|
|
33
|
-
"@esotericsoftware/spine-core": "4.2.
|
|
33
|
+
"@esotericsoftware/spine-core": "4.2.23"
|
|
34
34
|
}
|
|
35
35
|
}
|