@esotericsoftware/spine-webgl 4.0.29 → 4.0.30
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 @@ var spine=(()=>{var Li=Object.defineProperty,vs=t=>Li(t,"__esModule",{value:!0})
|
|
|
81
81
|
void main () {
|
|
82
82
|
gl_FragColor = v_color;
|
|
83
83
|
}
|
|
84
|
-
`;return new ut(t,e,i)}},bt=ut;bt.MVP_MATRIX="u_projTrans",bt.POSITION="a_position",bt.COLOR="a_color",bt.COLOR2="a_color2",bt.TEXCOORDS="a_texCoords",bt.SAMPLER="u_texture";var Mi=class{constructor(t,e,i,s){this.attributes=e,this.verticesLength=0,this.dirtyVertices=!1,this.indicesLength=0,this.dirtyIndices=!1,this.elementsPerVertex=0,this.context=t instanceof vt?t:new vt(t),this.elementsPerVertex=0;for(let a=0;a<e.length;a++)this.elementsPerVertex+=e[a].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++)t+=this.attributes[e].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 a=this.context.gl;(this.dirtyVertices||this.dirtyIndices)&&this.update(),this.bind(t),this.indicesLength>0?a.drawElements(e,s,a.UNSIGNED_SHORT,i*2):a.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 a=this.attributes[s],c=t.getAttributeLocation(a.name);e.enableVertexAttribArray(c),e.vertexAttribPointer(c,a.numElements,e.FLOAT,!1,this.elementsPerVertex*4,i*4),i+=a.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],a=t.getAttributeLocation(s.name);e.disableVertexAttribArray(a)}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)}},re=class{constructor(t,e,i){this.name=t,this.type=e,this.numElements=i}},Ye=class extends re{constructor(){super(bt.POSITION,qt.Float,2)}},ar=class extends re{constructor(){super(bt.POSITION,qt.Float,3)}},Yi=class extends re{constructor(t=0){super(bt.TEXCOORDS+(t==0?"":t),qt.Float,2)}},Ie=class extends re{constructor(){super(bt.COLOR,qt.Float,4)}},os=class extends re{constructor(){super(bt.COLOR2,qt.Float,4)}},qt;(function(t){t[t.Float=0]="Float"})(qt||(qt={}));var Ii=class{constructor(t,e=!0,i=10920){if(this.isDrawing=!1,this.shader=null,this.lastTexture=null,this.verticesLength=0,this.indicesLength=0,i>10920)throw new Error("Can't have more than 10920 triangles per batch: "+i);this.context=t instanceof vt?t:new vt(t);let s=e?[new Ye,new Ie,new Yi,new os]:[new Ye,new Ie,new Yi];this.mesh=new Mi(t,s,i,i*3);let a=this.context.gl;this.srcColorBlend=a.SRC_ALPHA,this.srcAlphaBlend=a.ONE,this.dstBlend=a.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)}setBlendMode(t,e,i){this.srcColorBlend==t&&this.srcAlphaBlend==e&&this.dstBlend==i||(this.srcColorBlend=t,this.srcAlphaBlend=e,this.dstBlend=i,this.isDrawing&&(this.flush(),this.context.gl.blendFuncSeparate(t,i,e,i)))}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 a=this.mesh.getIndices();for(let c=this.indicesLength,n=0;n<i.length;c++,n++)a[c]=i[n]+s;this.indicesLength+=i.length,this.mesh.setIndicesLength(this.indicesLength)}flush(){this.verticesLength!=0&&(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++)}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)}getDrawCalls(){return this.drawCalls}dispose(){this.mesh.dispose()}},ki=class{constructor(t,e=10920){if(this.isDrawing=!1,this.shapeType=yt.Filled,this.color=new D(1,1,1,1),this.vertexIndex=0,this.tmp=new Ht,e>10920)throw new Error("Can't have more than 10920 triangles per batch: "+e);this.context=t instanceof vt?t:new vt(t),this.mesh=new Mi(t,[new Ye,new Ie],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=null){this.check(yt.Point,1),i===null&&(i=this.color),this.vertex(t,e,i)}line(t,e,i,s,a=null){this.check(yt.Line,2);let c=this.mesh.getVertices(),n=this.vertexIndex;a===null&&(a=this.color),this.vertex(t,e,a),this.vertex(i,s,a)}triangle(t,e,i,s,a,c,n,r=null,h=null,l=null){this.check(t?yt.Filled:yt.Line,3);let o=this.mesh.getVertices(),d=this.vertexIndex;r===null&&(r=this.color),h===null&&(h=this.color),l===null&&(l=this.color),t?(this.vertex(e,i,r),this.vertex(s,a,h),this.vertex(c,n,l)):(this.vertex(e,i,r),this.vertex(s,a,h),this.vertex(s,a,r),this.vertex(c,n,h),this.vertex(c,n,r),this.vertex(e,i,h))}quad(t,e,i,s,a,c,n,r,h,l=null,o=null,d=null,u=null){this.check(t?yt.Filled:yt.Line,3);let m=this.mesh.getVertices(),f=this.vertexIndex;l===null&&(l=this.color),o===null&&(o=this.color),d===null&&(d=this.color),u===null&&(u=this.color),t?(this.vertex(e,i,l),this.vertex(s,a,o),this.vertex(c,n,d),this.vertex(c,n,d),this.vertex(r,h,u),this.vertex(e,i,l)):(this.vertex(e,i,l),this.vertex(s,a,o),this.vertex(s,a,o),this.vertex(c,n,d),this.vertex(c,n,d),this.vertex(r,h,u),this.vertex(r,h,u),this.vertex(e,i,l))}rect(t,e,i,s,a,c=null){this.quad(t,e,i,e+s,i,e+s,i+a,e,i+a,c,c,c,c)}rectLine(t,e,i,s,a,c,n=null){this.check(t?yt.Filled:yt.Line,8),n===null&&(n=this.color);let r=this.tmp.set(a-i,e-s);r.normalize(),c*=.5;let h=r.x*c,l=r.y*c;t?(this.vertex(e+h,i+l,n),this.vertex(e-h,i-l,n),this.vertex(s+h,a+l,n),this.vertex(s-h,a-l,n),this.vertex(s+h,a+l,n),this.vertex(e-h,i-l,n)):(this.vertex(e+h,i+l,n),this.vertex(e-h,i-l,n),this.vertex(s+h,a+l,n),this.vertex(s-h,a-l,n),this.vertex(s+h,a+l,n),this.vertex(e+h,i+l,n),this.vertex(s-h,a-l,n),this.vertex(e-h,i-l,n))}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=null){if(i<3)throw new Error("Polygon must contain at least 3 vertices");this.check(yt.Line,i*2),s===null&&(s=this.color);let a=this.mesh.getVertices(),c=this.vertexIndex;e<<=1,i<<=1;let n=t[e],r=t[e+1],h=e+i;for(let l=e,o=e+i-2;l<o;l+=2){let d=t[l],u=t[l+1],m=0,f=0;l+2>=h?(m=n,f=r):(m=t[l+2],f=t[l+3]),this.vertex(d,u,s),this.vertex(m,f,s)}}circle(t,e,i,s,a=null,c=0){if(c===0&&(c=Math.max(1,6*F.cbrt(s)|0)),c<=0)throw new Error("segments must be > 0.");a===null&&(a=this.color);let n=2*F.PI/c,r=Math.cos(n),h=Math.sin(n),l=s,o=0;if(t){this.check(yt.Filled,c*3+3),c--;for(let u=0;u<c;u++){this.vertex(e,i,a),this.vertex(e+l,i+o,a);let m=l;l=r*l-h*o,o=h*m+r*o,this.vertex(e+l,i+o,a)}this.vertex(e,i,a),this.vertex(e+l,i+o,a)}else{this.check(yt.Line,c*2+2);for(let u=0;u<c;u++){this.vertex(e+l,i+o,a);let m=l;l=r*l-h*o,o=h*m+r*o,this.vertex(e+l,i+o,a)}this.vertex(e+l,i+o,a)}let d=l;l=s,o=0,this.vertex(e+l,i+o,a)}curve(t,e,i,s,a,c,n,r,h,l=null){this.check(yt.Line,h*2+2),l===null&&(l=this.color);let o=1/h,d=o*o,u=o*o*o,m=3*o,f=3*d,x=6*d,w=6*u,v=t-i*2+a,g=e-s*2+c,p=(i-a)*3-t+n,b=(s-c)*3-e+r,y=t,T=e,A=(i-t)*m+v*f+p*u,I=(s-e)*m+g*f+b*u,k=v*x+p*w,X=g*x+b*w,B=p*w,L=b*w;for(;h-- >0;)this.vertex(y,T,l),y+=A,T+=I,A+=k,I+=X,k+=B,X+=L,this.vertex(y,T,l);this.vertex(y,T,l),this.vertex(n,r,l)}vertex(t,e,i){let s=this.vertexIndex,a=this.mesh.getVertices();a[s++]=t,a[s++]=e,a[s++]=i.r,a[s++]=i.g,a[s++]=i.b,a[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(){this.vertexIndex!=0&&(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()}},yt;(function(t){t[t.Point=0]="Point",t[t.Line=1]="Line",t[t.Filled=4]="Filled"})(yt||(yt={}));var ke=class{constructor(t){this.boneLineColor=new D(1,0,0,1),this.boneOriginColor=new D(0,1,0,1),this.attachmentLineColor=new D(0,0,1,.5),this.triangleLineColor=new D(1,.64,0,.5),this.pathColor=new D().setFromString("FF7F00"),this.clipColor=new D(.8,0,0,2),this.aabbColor=new D(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 is,this.temp=new Array,this.vertices=O.newFloatArray(2*1024),this.context=t instanceof vt?t:new vt(t)}draw(t,e,i=null){let s=e.x,a=e.y,c=this.context.gl,n=this.premultipliedAlpha?c.ONE:c.SRC_ALPHA;t.setBlendMode(n,c.ONE,c.ONE_MINUS_SRC_ALPHA);let r=e.bones;if(this.drawBones){t.setColor(this.boneLineColor);for(let h=0,l=r.length;h<l;h++){let o=r[h];if(i&&i.indexOf(o.data.name)>-1||!o.parent)continue;let d=s+o.data.length*o.a+o.worldX,u=a+o.data.length*o.c+o.worldY;t.rectLine(!0,s+o.worldX,a+o.worldY,d,u,this.boneWidth*this.scale)}this.drawSkeletonXY&&t.x(s,a,4*this.scale)}if(this.drawRegionAttachments){t.setColor(this.attachmentLineColor);let h=e.slots;for(let l=0,o=h.length;l<o;l++){let d=h[l],u=d.getAttachment();if(u instanceof at){let m=u,f=this.vertices;m.computeWorldVertices(d.bone,f,0,2),t.line(f[0],f[1],f[2],f[3]),t.line(f[2],f[3],f[4],f[5]),t.line(f[4],f[5],f[6],f[7]),t.line(f[6],f[7],f[0],f[1])}}}if(this.drawMeshHull||this.drawMeshTriangles){let h=e.slots;for(let l=0,o=h.length;l<o;l++){let d=h[l];if(!d.bone.active)continue;let u=d.getAttachment();if(!(u instanceof _t))continue;let m=u,f=this.vertices;m.computeWorldVertices(d,0,m.worldVerticesLength,f,0,2);let x=m.triangles,w=m.hullLength;if(this.drawMeshTriangles){t.setColor(this.triangleLineColor);for(let v=0,g=x.length;v<g;v+=3){let p=x[v]*2,b=x[v+1]*2,y=x[v+2]*2;t.triangle(!1,f[p],f[p+1],f[b],f[b+1],f[y],f[y+1])}}if(this.drawMeshHull&&w>0){t.setColor(this.attachmentLineColor),w=(w>>1)*2;let v=f[w-2],g=f[w-1];for(let p=0,b=w;p<b;p+=2){let y=f[p],T=f[p+1];t.line(y,T,v,g),v=y,g=T}}}}if(this.drawBoundingBoxes){let h=this.bounds;h.update(e,!0),t.setColor(this.aabbColor),t.rect(!1,h.minX,h.minY,h.getWidth(),h.getHeight());let l=h.polygons,o=h.boundingBoxes;for(let d=0,u=l.length;d<u;d++){let m=l[d];t.setColor(o[d].color),t.polygon(m,0,m.length)}}if(this.drawPaths){let h=e.slots;for(let l=0,o=h.length;l<o;l++){let d=h[l];if(!d.bone.active)continue;let u=d.getAttachment();if(!(u instanceof Qt))continue;let m=u,f=m.worldVerticesLength,x=this.temp=O.setArraySize(this.temp,f,0);m.computeWorldVertices(d,0,f,x,0,2);let w=this.pathColor,v=x[2],g=x[3],p=0,b=0;if(m.closed){t.setColor(w);let y=x[0],T=x[1],A=x[f-2],I=x[f-1];p=x[f-4],b=x[f-3],t.curve(v,g,y,T,A,I,p,b,32),t.setColor(ke.LIGHT_GRAY),t.line(v,g,y,T),t.line(p,b,A,I)}f-=4;for(let y=4;y<f;y+=6){let T=x[y],A=x[y+1],I=x[y+2],k=x[y+3];p=x[y+4],b=x[y+5],t.setColor(w),t.curve(v,g,T,A,I,k,p,b,32),t.setColor(ke.LIGHT_GRAY),t.line(v,g,T,A),t.line(p,b,I,k),v=p,g=b}}}if(this.drawBones){t.setColor(this.boneOriginColor);for(let h=0,l=r.length;h<l;h++){let o=r[h];i&&i.indexOf(o.data.name)>-1||t.circle(!0,s+o.worldX,a+o.worldY,3*this.scale,ke.GREEN,8)}}if(this.drawClipping){let h=e.slots;t.setColor(this.clipColor);for(let l=0,o=h.length;l<o;l++){let d=h[l];if(!d.bone.active)continue;let u=d.getAttachment();if(!(u instanceof fe))continue;let m=u,f=m.worldVerticesLength,x=this.temp=O.setArraySize(this.temp,f,0);m.computeWorldVertices(d,0,f,x,0,2);for(let w=0,v=x.length;w<v;w+=2){let g=x[w],p=x[w+1],b=x[(w+2)%x.length],y=x[(w+3)%x.length];t.line(g,p,b,y)}}}}dispose(){}},Xe=ke;Xe.LIGHT_GRAY=new D(192/255,192/255,192/255,1),Xe.GREEN=new D(0,1,0,1);var nr=class{constructor(t,e,i){this.vertices=t,this.numVertices=e,this.numFloats=i}},cs=class{constructor(t,e=!0){this.premultipliedAlpha=!1,this.vertexEffect=null,this.tempColor=new D,this.tempColor2=new D,this.vertexSize=2+2+4,this.twoColorTint=!1,this.renderable=new nr(null,0,0),this.clipper=new Ce,this.temp=new Ht,this.temp2=new Ht,this.temp3=new D,this.temp4=new D,this.twoColorTint=e,e&&(this.vertexSize+=4),this.vertices=O.newFloatArray(this.vertexSize*1024)}draw(t,e,i=-1,s=-1){let a=this.clipper,c=this.premultipliedAlpha,n=this.twoColorTint,r=null,h=this.temp,l=this.temp2,o=this.temp3,d=this.temp4,u=this.renderable,m=null,f=null,x=e.drawOrder,w=null,v=e.color,g=n?12:8,p=!1;i==-1&&(p=!0);for(let b=0,y=x.length;b<y;b++){let T=a.isClipping()?2:g,A=x[b];if(!A.bone.active){a.clipEndWithSlot(A);continue}if(i>=0&&i==A.data.index&&(p=!0),!p){a.clipEndWithSlot(A);continue}s>=0&&s==A.data.index&&(p=!1);let I=A.getAttachment(),k=null;if(I instanceof at){let X=I;u.vertices=this.vertices,u.numVertices=4,u.numFloats=T<<2,X.computeWorldVertices(A.bone,u.vertices,0,T),f=cs.QUAD_TRIANGLES,m=X.uvs,k=X.region.renderObject.page.texture,w=X.color}else if(I instanceof _t){let X=I;u.vertices=this.vertices,u.numVertices=X.worldVerticesLength>>1,u.numFloats=u.numVertices*T,u.numFloats>u.vertices.length&&(u.vertices=this.vertices=O.newFloatArray(u.numFloats)),X.computeWorldVertices(A,0,X.worldVerticesLength,u.vertices,0,T),f=X.triangles,k=X.region.renderObject.page.texture,m=X.uvs,w=X.color}else if(I instanceof fe){let X=I;a.clipStart(A,X);continue}else{a.clipEndWithSlot(A);continue}if(k){let X=A.color,B=this.tempColor;B.r=v.r*X.r*w.r,B.g=v.g*X.g*w.g,B.b=v.b*X.b*w.b,B.a=v.a*X.a*w.a,c&&(B.r*=B.a,B.g*=B.a,B.b*=B.a);let L=this.tempColor2;A.darkColor?(c?(L.r=A.darkColor.r*B.a,L.g=A.darkColor.g*B.a,L.b=A.darkColor.b*B.a):L.setFromColor(A.darkColor),L.a=c?1:0):L.set(0,0,0,1);let P=A.data.blendMode;if(P!=r&&(r=P,t.setBlendMode(Me.getSourceColorGLBlendMode(r,c),Me.getSourceAlphaGLBlendMode(r),Me.getDestGLBlendMode(r))),a.isClipping()){a.clipTriangles(u.vertices,u.numFloats,f,f.length,m,B,L,n);let C=new Float32Array(a.clippedVertices),M=a.clippedTriangles;if(this.vertexEffect){let V=this.vertexEffect,R=C;if(n)for(let E=0,st=C.length;E<st;E+=g)h.x=R[E],h.y=R[E+1],o.set(R[E+2],R[E+3],R[E+4],R[E+5]),l.x=R[E+6],l.y=R[E+7],d.set(R[E+8],R[E+9],R[E+10],R[E+11]),V.transform(h,l,o,d),R[E]=h.x,R[E+1]=h.y,R[E+2]=o.r,R[E+3]=o.g,R[E+4]=o.b,R[E+5]=o.a,R[E+6]=l.x,R[E+7]=l.y,R[E+8]=d.r,R[E+9]=d.g,R[E+10]=d.b,R[E+11]=d.a;else for(let E=0,st=C.length;E<st;E+=g)h.x=R[E],h.y=R[E+1],o.set(R[E+2],R[E+3],R[E+4],R[E+5]),l.x=R[E+6],l.y=R[E+7],d.set(0,0,0,0),V.transform(h,l,o,d),R[E]=h.x,R[E+1]=h.y,R[E+2]=o.r,R[E+3]=o.g,R[E+4]=o.b,R[E+5]=o.a,R[E+6]=l.x,R[E+7]=l.y}t.draw(k,C,M)}else{let C=u.vertices;if(this.vertexEffect){let V=this.vertexEffect;if(n)for(let R=0,E=0,st=u.numFloats;R<st;R+=g,E+=2)h.x=C[R],h.y=C[R+1],l.x=m[E],l.y=m[E+1],o.setFromColor(B),d.setFromColor(L),V.transform(h,l,o,d),C[R]=h.x,C[R+1]=h.y,C[R+2]=o.r,C[R+3]=o.g,C[R+4]=o.b,C[R+5]=o.a,C[R+6]=l.x,C[R+7]=l.y,C[R+8]=d.r,C[R+9]=d.g,C[R+10]=d.b,C[R+11]=d.a;else for(let R=0,E=0,st=u.numFloats;R<st;R+=g,E+=2)h.x=C[R],h.y=C[R+1],l.x=m[E],l.y=m[E+1],o.setFromColor(B),d.set(0,0,0,0),V.transform(h,l,o,d),C[R]=h.x,C[R+1]=h.y,C[R+2]=o.r,C[R+3]=o.g,C[R+4]=o.b,C[R+5]=o.a,C[R+6]=l.x,C[R+7]=l.y}else if(n)for(let V=2,R=0,E=u.numFloats;V<E;V+=g,R+=2)C[V]=B.r,C[V+1]=B.g,C[V+2]=B.b,C[V+3]=B.a,C[V+4]=m[R],C[V+5]=m[R+1],C[V+6]=L.r,C[V+7]=L.g,C[V+8]=L.b,C[V+9]=L.a;else for(let V=2,R=0,E=u.numFloats;V<E;V+=g,R+=2)C[V]=B.r,C[V+1]=B.g,C[V+2]=B.b,C[V+3]=B.a,C[V+4]=m[R],C[V+5]=m[R+1];let M=u.vertices.subarray(0,u.numFloats);t.draw(k,M,f)}}a.clipEndWithSlot(A)}a.clipEnd()}},Xi=cs;Xi.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],Ee=new D(1,1,1,1),ds=class{constructor(t,e,i=!0){this.twoColorTint=!1,this.canvas=t,this.context=e instanceof vt?e:new vt(e),this.twoColorTint=i,this.camera=new ls(t.width,t.height),this.batcherShader=i?bt.newTwoColoredTextured(this.context):bt.newColoredTextured(this.context),this.batcher=new Ii(this.context,i),this.shapesShader=bt.newColored(this.context),this.shapes=new ki(this.context),this.skeletonRenderer=new Xi(this.context,i),this.skeletonDebugRenderer=new Xe(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){this.enableRenderer(this.batcher),this.skeletonRenderer.premultipliedAlpha=e,this.skeletonRenderer.draw(this.batcher,t,i,s)}drawSkeletonDebug(t,e=!1,i=null){this.enableRenderer(this.shapes),this.skeletonDebugRenderer.premultipliedAlpha=e,this.skeletonDebugRenderer.draw(this.shapes,t,i)}drawTexture(t,e,i,s,a,c=null){this.enableRenderer(this.batcher),c===null&&(c=Ee);var n=0;S[n++]=e,S[n++]=i,S[n++]=c.r,S[n++]=c.g,S[n++]=c.b,S[n++]=c.a,S[n++]=0,S[n++]=1,this.twoColorTint&&(S[n++]=0,S[n++]=0,S[n++]=0,S[n++]=0),S[n++]=e+s,S[n++]=i,S[n++]=c.r,S[n++]=c.g,S[n++]=c.b,S[n++]=c.a,S[n++]=1,S[n++]=1,this.twoColorTint&&(S[n++]=0,S[n++]=0,S[n++]=0,S[n++]=0),S[n++]=e+s,S[n++]=i+a,S[n++]=c.r,S[n++]=c.g,S[n++]=c.b,S[n++]=c.a,S[n++]=1,S[n++]=0,this.twoColorTint&&(S[n++]=0,S[n++]=0,S[n++]=0,S[n++]=0),S[n++]=e,S[n++]=i+a,S[n++]=c.r,S[n++]=c.g,S[n++]=c.b,S[n++]=c.a,S[n++]=0,S[n++]=0,this.twoColorTint&&(S[n++]=0,S[n++]=0,S[n++]=0,S[n]=0),this.batcher.draw(t,S,Re)}drawTextureUV(t,e,i,s,a,c,n,r,h,l=null){this.enableRenderer(this.batcher),l===null&&(l=Ee);var o=0;S[o++]=e,S[o++]=i,S[o++]=l.r,S[o++]=l.g,S[o++]=l.b,S[o++]=l.a,S[o++]=c,S[o++]=n,this.twoColorTint&&(S[o++]=0,S[o++]=0,S[o++]=0,S[o++]=0),S[o++]=e+s,S[o++]=i,S[o++]=l.r,S[o++]=l.g,S[o++]=l.b,S[o++]=l.a,S[o++]=r,S[o++]=n,this.twoColorTint&&(S[o++]=0,S[o++]=0,S[o++]=0,S[o++]=0),S[o++]=e+s,S[o++]=i+a,S[o++]=l.r,S[o++]=l.g,S[o++]=l.b,S[o++]=l.a,S[o++]=r,S[o++]=h,this.twoColorTint&&(S[o++]=0,S[o++]=0,S[o++]=0,S[o++]=0),S[o++]=e,S[o++]=i+a,S[o++]=l.r,S[o++]=l.g,S[o++]=l.b,S[o++]=l.a,S[o++]=c,S[o++]=h,this.twoColorTint&&(S[o++]=0,S[o++]=0,S[o++]=0,S[o]=0),this.batcher.draw(t,S,Re)}drawTextureRotated(t,e,i,s,a,c,n,r,h=null){this.enableRenderer(this.batcher),h===null&&(h=Ee);let l=e+c,o=i+n,d=-c,u=-n,m=s-c,f=a-n,x=d,w=u,v=d,g=f,p=m,b=f,y=m,T=u,A=0,I=0,k=0,X=0,B=0,L=0,P=0,C=0;if(r!=0){let V=F.cosDeg(r),R=F.sinDeg(r);A=V*x-R*w,I=R*x+V*w,P=V*v-R*g,C=R*v+V*g,B=V*p-R*b,L=R*p+V*b,k=B+(A-P),X=L+(I-C)}else A=x,I=w,P=v,C=g,B=p,L=b,k=y,X=T;A+=l,I+=o,k+=l,X+=o,B+=l,L+=o,P+=l,C+=o;var M=0;S[M++]=A,S[M++]=I,S[M++]=h.r,S[M++]=h.g,S[M++]=h.b,S[M++]=h.a,S[M++]=0,S[M++]=1,this.twoColorTint&&(S[M++]=0,S[M++]=0,S[M++]=0,S[M++]=0),S[M++]=k,S[M++]=X,S[M++]=h.r,S[M++]=h.g,S[M++]=h.b,S[M++]=h.a,S[M++]=1,S[M++]=1,this.twoColorTint&&(S[M++]=0,S[M++]=0,S[M++]=0,S[M++]=0),S[M++]=B,S[M++]=L,S[M++]=h.r,S[M++]=h.g,S[M++]=h.b,S[M++]=h.a,S[M++]=1,S[M++]=0,this.twoColorTint&&(S[M++]=0,S[M++]=0,S[M++]=0,S[M++]=0),S[M++]=P,S[M++]=C,S[M++]=h.r,S[M++]=h.g,S[M++]=h.b,S[M++]=h.a,S[M++]=0,S[M++]=0,this.twoColorTint&&(S[M++]=0,S[M++]=0,S[M++]=0,S[M]=0),this.batcher.draw(t,S,Re)}drawRegion(t,e,i,s,a,c=null){this.enableRenderer(this.batcher),c===null&&(c=Ee);var n=0;S[n++]=e,S[n++]=i,S[n++]=c.r,S[n++]=c.g,S[n++]=c.b,S[n++]=c.a,S[n++]=t.u,S[n++]=t.v2,this.twoColorTint&&(S[n++]=0,S[n++]=0,S[n++]=0,S[n++]=0),S[n++]=e+s,S[n++]=i,S[n++]=c.r,S[n++]=c.g,S[n++]=c.b,S[n++]=c.a,S[n++]=t.u2,S[n++]=t.v2,this.twoColorTint&&(S[n++]=0,S[n++]=0,S[n++]=0,S[n++]=0),S[n++]=e+s,S[n++]=i+a,S[n++]=c.r,S[n++]=c.g,S[n++]=c.b,S[n++]=c.a,S[n++]=t.u2,S[n++]=t.v,this.twoColorTint&&(S[n++]=0,S[n++]=0,S[n++]=0,S[n++]=0),S[n++]=e,S[n++]=i+a,S[n++]=c.r,S[n++]=c.g,S[n++]=c.b,S[n++]=c.a,S[n++]=t.u,S[n++]=t.v,this.twoColorTint&&(S[n++]=0,S[n++]=0,S[n++]=0,S[n]=0),this.batcher.draw(t.page.texture,S,Re)}line(t,e,i,s,a=null,c=null){this.enableRenderer(this.shapes),this.shapes.line(t,e,i,s,a)}triangle(t,e,i,s,a,c,n,r=null,h=null,l=null){this.enableRenderer(this.shapes),this.shapes.triangle(t,e,i,s,a,c,n,r,h,l)}quad(t,e,i,s,a,c,n,r,h,l=null,o=null,d=null,u=null){this.enableRenderer(this.shapes),this.shapes.quad(t,e,i,s,a,c,n,r,h,l,o,d,u)}rect(t,e,i,s,a,c=null){this.enableRenderer(this.shapes),this.shapes.rect(t,e,i,s,a,c)}rectLine(t,e,i,s,a,c,n=null){this.enableRenderer(this.shapes),this.shapes.rectLine(t,e,i,s,a,c,n)}polygon(t,e,i,s=null){this.enableRenderer(this.shapes),this.shapes.polygon(t,e,i,s)}circle(t,e,i,s,a=null,c=0){this.enableRenderer(this.shapes),this.shapes.circle(t,e,i,s,a,c)}curve(t,e,i,s,a,c,n,r,h,l=null){this.enableRenderer(this.shapes),this.shapes.curve(t,e,i,s,a,c,n,r,h,l)}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),a=Math.round(e.clientHeight*i);if((e.width!=s||e.height!=a)&&(e.width=s,e.height=a),this.context.gl.viewport(0,0,e.width,e.height),t===ae.Expand)this.camera.setViewport(s,a);else if(t===ae.Fit){let c=e.width,n=e.height,r=this.camera.viewportWidth,h=this.camera.viewportHeight,l=h/r,o=n/c,d=l<o?r/c:h/n;this.camera.setViewport(c*d,n*d)}this.camera.update()}enableRenderer(t){this.activeRenderer!==t&&(this.end(),t instanceof Ii?(this.batcherShader.bind(),this.batcherShader.setUniform4x4f(bt.MVP_MATRIX,this.camera.projectionView.values),this.batcherShader.setUniformi("u_texture",0),this.batcher.begin(this.batcherShader),this.activeRenderer=this.batcher):t instanceof ki?(this.shapesShader.bind(),this.shapesShader.setUniform4x4f(bt.MVP_MATRIX,this.camera.projectionView.values),this.shapes.begin(this.shapesShader),this.activeRenderer=this.shapes):this.activeRenderer=this.skeletonDebugRenderer)}},ae;(function(t){t[t.Stretch=0]="Stretch",t[t.Expand=1]="Expand",t[t.Fit=2]="Fit"})(ae||(ae={}));var ge,ne,us=0,lr=1,Ri=1,fs=165,ms=108,te=163,hr=class{constructor(t){if(this.logo=null,this.spinner=null,this.angle=0,this.fadeOut=0,this.fadeIn=0,this.timeKeeper=new Be,this.backgroundColor=new D(.135,.135,.135,1),this.tempColor=new D,this.renderer=t,this.timeKeeper.maxDelta=9,!ne){let e=navigator.userAgent.indexOf("Safari")>-1,i=()=>us++;ne=new Image,ne.src=cr,e||(ne.crossOrigin="anonymous"),ne.onload=i,ge=new Image,ge.src=or,e||(ge.crossOrigin="anonymous"),ge.onload=i}}dispose(){this.logo.dispose(),this.spinner.dispose()}draw(t=!1){if(us<2||t&&this.fadeOut>Ri)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,a=s.canvas,c=s.context.gl;if(s.resize(ae.Expand),s.camera.position.set(a.width/2,a.height/2,0),s.batcher.setBlendMode(c.ONE,c.ONE,c.ONE_MINUS_SRC_ALPHA),t){if(this.fadeOut+=this.timeKeeper.delta*(this.timeKeeper.totalTime<1?2:1),this.fadeOut>Ri)return;i.setFromColor(this.backgroundColor),e=1-this.fadeOut/Ri,e=1-(e-1)*(e-1),i.a*=e,i.a>0&&(s.camera.zoom=1,s.begin(),s.quad(!0,0,0,a.width,0,a.width,a.height,0,a.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/lr,1),i.set(e,e,e,e),this.logo||(this.logo=new me(s.context,ne),this.spinner=new me(s.context,ge)),s.camera.zoom=Math.max(1,te/a.height),s.begin(),s.drawTexture(this.logo,(a.width-fs)/2,(a.height-ms)/2,fs,ms,i),s.drawTextureRotated(this.spinner,(a.width-te)/2,(a.height-te)/2,te,te,te/2,te/2,this.angle,i),s.end()}},or="data:image/png;base64,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",cr="data:image/png;base64,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",dr=class{constructor(t,e){this.time=new Be,e.pathPrefix===void 0&&(e.pathPrefix=""),e.app===void 0&&(e.app={loadAssets:()=>{},initialize:()=>{},update:()=>{},render:()=>{},error:()=>{}}),e.webglConfig===void 0&&(e.webglConfig={alpha:!0}),this.htmlCanvas=t,this.context=new vt(t,e.webglConfig),this.renderer=new ds(t,this.context),this.gl=this.context.gl,this.assetManager=new ns(this.context,e.pathPrefix),this.input=new Ti(t),e.app.loadAssets(this);let i=()=>{requestAnimationFrame(i),this.time.update(),e.app.update(this,this.time.delta),e.app.render(this)},s=()=>{if(this.assetManager.isLoadingComplete()){this.assetManager.hasErrors()?e.app.error(this,this.assetManager.getErrors()):(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 Pi})();
|
|
84
|
+
`;return new ut(t,e,i)}},bt=ut;bt.MVP_MATRIX="u_projTrans",bt.POSITION="a_position",bt.COLOR="a_color",bt.COLOR2="a_color2",bt.TEXCOORDS="a_texCoords",bt.SAMPLER="u_texture";var Mi=class{constructor(t,e,i,s){this.attributes=e,this.verticesLength=0,this.dirtyVertices=!1,this.indicesLength=0,this.dirtyIndices=!1,this.elementsPerVertex=0,this.context=t instanceof vt?t:new vt(t),this.elementsPerVertex=0;for(let a=0;a<e.length;a++)this.elementsPerVertex+=e[a].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++)t+=this.attributes[e].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 a=this.context.gl;(this.dirtyVertices||this.dirtyIndices)&&this.update(),this.bind(t),this.indicesLength>0?a.drawElements(e,s,a.UNSIGNED_SHORT,i*2):a.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 a=this.attributes[s],c=t.getAttributeLocation(a.name);e.enableVertexAttribArray(c),e.vertexAttribPointer(c,a.numElements,e.FLOAT,!1,this.elementsPerVertex*4,i*4),i+=a.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],a=t.getAttributeLocation(s.name);e.disableVertexAttribArray(a)}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)}},re=class{constructor(t,e,i){this.name=t,this.type=e,this.numElements=i}},Ye=class extends re{constructor(){super(bt.POSITION,qt.Float,2)}},ar=class extends re{constructor(){super(bt.POSITION,qt.Float,3)}},Yi=class extends re{constructor(t=0){super(bt.TEXCOORDS+(t==0?"":t),qt.Float,2)}},Ie=class extends re{constructor(){super(bt.COLOR,qt.Float,4)}},os=class extends re{constructor(){super(bt.COLOR2,qt.Float,4)}},qt;(function(t){t[t.Float=0]="Float"})(qt||(qt={}));var Ii=class{constructor(t,e=!0,i=10920){if(this.isDrawing=!1,this.shader=null,this.lastTexture=null,this.verticesLength=0,this.indicesLength=0,i>10920)throw new Error("Can't have more than 10920 triangles per batch: "+i);this.context=t instanceof vt?t:new vt(t);let s=e?[new Ye,new Ie,new Yi,new os]:[new Ye,new Ie,new Yi];this.mesh=new Mi(t,s,i,i*3);let a=this.context.gl;this.srcColorBlend=a.SRC_ALPHA,this.srcAlphaBlend=a.ONE,this.dstBlend=a.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)}setBlendMode(t,e,i){this.srcColorBlend==t&&this.srcAlphaBlend==e&&this.dstBlend==i||(this.srcColorBlend=t,this.srcAlphaBlend=e,this.dstBlend=i,this.isDrawing&&(this.flush(),this.context.gl.blendFuncSeparate(t,i,e,i)))}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 a=this.mesh.getIndices();for(let c=this.indicesLength,n=0;n<i.length;c++,n++)a[c]=i[n]+s;this.indicesLength+=i.length,this.mesh.setIndicesLength(this.indicesLength)}flush(){this.verticesLength!=0&&(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++)}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)}getDrawCalls(){return this.drawCalls}dispose(){this.mesh.dispose()}},ki=class{constructor(t,e=10920){if(this.isDrawing=!1,this.shapeType=yt.Filled,this.color=new D(1,1,1,1),this.vertexIndex=0,this.tmp=new Ht,e>10920)throw new Error("Can't have more than 10920 triangles per batch: "+e);this.context=t instanceof vt?t:new vt(t),this.mesh=new Mi(t,[new Ye,new Ie],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=null){this.check(yt.Point,1),i===null&&(i=this.color),this.vertex(t,e,i)}line(t,e,i,s,a=null){this.check(yt.Line,2);let c=this.mesh.getVertices(),n=this.vertexIndex;a===null&&(a=this.color),this.vertex(t,e,a),this.vertex(i,s,a)}triangle(t,e,i,s,a,c,n,r=null,h=null,l=null){this.check(t?yt.Filled:yt.Line,3);let o=this.mesh.getVertices(),d=this.vertexIndex;r===null&&(r=this.color),h===null&&(h=this.color),l===null&&(l=this.color),t?(this.vertex(e,i,r),this.vertex(s,a,h),this.vertex(c,n,l)):(this.vertex(e,i,r),this.vertex(s,a,h),this.vertex(s,a,r),this.vertex(c,n,h),this.vertex(c,n,r),this.vertex(e,i,h))}quad(t,e,i,s,a,c,n,r,h,l=null,o=null,d=null,u=null){this.check(t?yt.Filled:yt.Line,3);let m=this.mesh.getVertices(),f=this.vertexIndex;l===null&&(l=this.color),o===null&&(o=this.color),d===null&&(d=this.color),u===null&&(u=this.color),t?(this.vertex(e,i,l),this.vertex(s,a,o),this.vertex(c,n,d),this.vertex(c,n,d),this.vertex(r,h,u),this.vertex(e,i,l)):(this.vertex(e,i,l),this.vertex(s,a,o),this.vertex(s,a,o),this.vertex(c,n,d),this.vertex(c,n,d),this.vertex(r,h,u),this.vertex(r,h,u),this.vertex(e,i,l))}rect(t,e,i,s,a,c=null){this.quad(t,e,i,e+s,i,e+s,i+a,e,i+a,c,c,c,c)}rectLine(t,e,i,s,a,c,n=null){this.check(t?yt.Filled:yt.Line,8),n===null&&(n=this.color);let r=this.tmp.set(a-i,e-s);r.normalize(),c*=.5;let h=r.x*c,l=r.y*c;t?(this.vertex(e+h,i+l,n),this.vertex(e-h,i-l,n),this.vertex(s+h,a+l,n),this.vertex(s-h,a-l,n),this.vertex(s+h,a+l,n),this.vertex(e-h,i-l,n)):(this.vertex(e+h,i+l,n),this.vertex(e-h,i-l,n),this.vertex(s+h,a+l,n),this.vertex(s-h,a-l,n),this.vertex(s+h,a+l,n),this.vertex(e+h,i+l,n),this.vertex(s-h,a-l,n),this.vertex(e-h,i-l,n))}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=null){if(i<3)throw new Error("Polygon must contain at least 3 vertices");this.check(yt.Line,i*2),s===null&&(s=this.color);let a=this.mesh.getVertices(),c=this.vertexIndex;e<<=1,i<<=1;let n=t[e],r=t[e+1],h=e+i;for(let l=e,o=e+i-2;l<o;l+=2){let d=t[l],u=t[l+1],m=0,f=0;l+2>=h?(m=n,f=r):(m=t[l+2],f=t[l+3]),this.vertex(d,u,s),this.vertex(m,f,s)}}circle(t,e,i,s,a=null,c=0){if(c===0&&(c=Math.max(1,6*F.cbrt(s)|0)),c<=0)throw new Error("segments must be > 0.");a===null&&(a=this.color);let n=2*F.PI/c,r=Math.cos(n),h=Math.sin(n),l=s,o=0;if(t){this.check(yt.Filled,c*3+3),c--;for(let u=0;u<c;u++){this.vertex(e,i,a),this.vertex(e+l,i+o,a);let m=l;l=r*l-h*o,o=h*m+r*o,this.vertex(e+l,i+o,a)}this.vertex(e,i,a),this.vertex(e+l,i+o,a)}else{this.check(yt.Line,c*2+2);for(let u=0;u<c;u++){this.vertex(e+l,i+o,a);let m=l;l=r*l-h*o,o=h*m+r*o,this.vertex(e+l,i+o,a)}this.vertex(e+l,i+o,a)}let d=l;l=s,o=0,this.vertex(e+l,i+o,a)}curve(t,e,i,s,a,c,n,r,h,l=null){this.check(yt.Line,h*2+2),l===null&&(l=this.color);let o=1/h,d=o*o,u=o*o*o,m=3*o,f=3*d,x=6*d,w=6*u,v=t-i*2+a,g=e-s*2+c,p=(i-a)*3-t+n,b=(s-c)*3-e+r,y=t,T=e,A=(i-t)*m+v*f+p*u,I=(s-e)*m+g*f+b*u,k=v*x+p*w,X=g*x+b*w,B=p*w,L=b*w;for(;h-- >0;)this.vertex(y,T,l),y+=A,T+=I,A+=k,I+=X,k+=B,X+=L,this.vertex(y,T,l);this.vertex(y,T,l),this.vertex(n,r,l)}vertex(t,e,i){let s=this.vertexIndex,a=this.mesh.getVertices();a[s++]=t,a[s++]=e,a[s++]=i.r,a[s++]=i.g,a[s++]=i.b,a[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(){this.vertexIndex!=0&&(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()}},yt;(function(t){t[t.Point=0]="Point",t[t.Line=1]="Line",t[t.Filled=4]="Filled"})(yt||(yt={}));var ke=class{constructor(t){this.boneLineColor=new D(1,0,0,1),this.boneOriginColor=new D(0,1,0,1),this.attachmentLineColor=new D(0,0,1,.5),this.triangleLineColor=new D(1,.64,0,.5),this.pathColor=new D().setFromString("FF7F00"),this.clipColor=new D(.8,0,0,2),this.aabbColor=new D(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 is,this.temp=new Array,this.vertices=O.newFloatArray(2*1024),this.context=t instanceof vt?t:new vt(t)}draw(t,e,i=null){let s=e.x,a=e.y,c=this.context.gl,n=this.premultipliedAlpha?c.ONE:c.SRC_ALPHA;t.setBlendMode(n,c.ONE,c.ONE_MINUS_SRC_ALPHA);let r=e.bones;if(this.drawBones){t.setColor(this.boneLineColor);for(let h=0,l=r.length;h<l;h++){let o=r[h];if(i&&i.indexOf(o.data.name)>-1||!o.parent)continue;let d=s+o.data.length*o.a+o.worldX,u=a+o.data.length*o.c+o.worldY;t.rectLine(!0,s+o.worldX,a+o.worldY,d,u,this.boneWidth*this.scale)}this.drawSkeletonXY&&t.x(s,a,4*this.scale)}if(this.drawRegionAttachments){t.setColor(this.attachmentLineColor);let h=e.slots;for(let l=0,o=h.length;l<o;l++){let d=h[l],u=d.getAttachment();if(u instanceof at){let m=u,f=this.vertices;m.computeWorldVertices(d.bone,f,0,2),t.line(f[0],f[1],f[2],f[3]),t.line(f[2],f[3],f[4],f[5]),t.line(f[4],f[5],f[6],f[7]),t.line(f[6],f[7],f[0],f[1])}}}if(this.drawMeshHull||this.drawMeshTriangles){let h=e.slots;for(let l=0,o=h.length;l<o;l++){let d=h[l];if(!d.bone.active)continue;let u=d.getAttachment();if(!(u instanceof _t))continue;let m=u,f=this.vertices;m.computeWorldVertices(d,0,m.worldVerticesLength,f,0,2);let x=m.triangles,w=m.hullLength;if(this.drawMeshTriangles){t.setColor(this.triangleLineColor);for(let v=0,g=x.length;v<g;v+=3){let p=x[v]*2,b=x[v+1]*2,y=x[v+2]*2;t.triangle(!1,f[p],f[p+1],f[b],f[b+1],f[y],f[y+1])}}if(this.drawMeshHull&&w>0){t.setColor(this.attachmentLineColor),w=(w>>1)*2;let v=f[w-2],g=f[w-1];for(let p=0,b=w;p<b;p+=2){let y=f[p],T=f[p+1];t.line(y,T,v,g),v=y,g=T}}}}if(this.drawBoundingBoxes){let h=this.bounds;h.update(e,!0),t.setColor(this.aabbColor),t.rect(!1,h.minX,h.minY,h.getWidth(),h.getHeight());let l=h.polygons,o=h.boundingBoxes;for(let d=0,u=l.length;d<u;d++){let m=l[d];t.setColor(o[d].color),t.polygon(m,0,m.length)}}if(this.drawPaths){let h=e.slots;for(let l=0,o=h.length;l<o;l++){let d=h[l];if(!d.bone.active)continue;let u=d.getAttachment();if(!(u instanceof Qt))continue;let m=u,f=m.worldVerticesLength,x=this.temp=O.setArraySize(this.temp,f,0);m.computeWorldVertices(d,0,f,x,0,2);let w=this.pathColor,v=x[2],g=x[3],p=0,b=0;if(m.closed){t.setColor(w);let y=x[0],T=x[1],A=x[f-2],I=x[f-1];p=x[f-4],b=x[f-3],t.curve(v,g,y,T,A,I,p,b,32),t.setColor(ke.LIGHT_GRAY),t.line(v,g,y,T),t.line(p,b,A,I)}f-=4;for(let y=4;y<f;y+=6){let T=x[y],A=x[y+1],I=x[y+2],k=x[y+3];p=x[y+4],b=x[y+5],t.setColor(w),t.curve(v,g,T,A,I,k,p,b,32),t.setColor(ke.LIGHT_GRAY),t.line(v,g,T,A),t.line(p,b,I,k),v=p,g=b}}}if(this.drawBones){t.setColor(this.boneOriginColor);for(let h=0,l=r.length;h<l;h++){let o=r[h];i&&i.indexOf(o.data.name)>-1||t.circle(!0,s+o.worldX,a+o.worldY,3*this.scale,ke.GREEN,8)}}if(this.drawClipping){let h=e.slots;t.setColor(this.clipColor);for(let l=0,o=h.length;l<o;l++){let d=h[l];if(!d.bone.active)continue;let u=d.getAttachment();if(!(u instanceof fe))continue;let m=u,f=m.worldVerticesLength,x=this.temp=O.setArraySize(this.temp,f,0);m.computeWorldVertices(d,0,f,x,0,2);for(let w=0,v=x.length;w<v;w+=2){let g=x[w],p=x[w+1],b=x[(w+2)%x.length],y=x[(w+3)%x.length];t.line(g,p,b,y)}}}}dispose(){}},Xe=ke;Xe.LIGHT_GRAY=new D(192/255,192/255,192/255,1),Xe.GREEN=new D(0,1,0,1);var nr=class{constructor(t,e,i){this.vertices=t,this.numVertices=e,this.numFloats=i}},cs=class{constructor(t,e=!0){this.premultipliedAlpha=!1,this.vertexEffect=null,this.tempColor=new D,this.tempColor2=new D,this.vertexSize=2+2+4,this.twoColorTint=!1,this.renderable=new nr(null,0,0),this.clipper=new Ce,this.temp=new Ht,this.temp2=new Ht,this.temp3=new D,this.temp4=new D,this.twoColorTint=e,e&&(this.vertexSize+=4),this.vertices=O.newFloatArray(this.vertexSize*1024)}draw(t,e,i=-1,s=-1){let a=this.clipper,c=this.premultipliedAlpha,n=this.twoColorTint,r=null,h=this.temp,l=this.temp2,o=this.temp3,d=this.temp4,u=this.renderable,m=null,f=null,x=e.drawOrder,w=null,v=e.color,g=n?12:8,p=!1;i==-1&&(p=!0);for(let b=0,y=x.length;b<y;b++){let T=a.isClipping()?2:g,A=x[b];if(!A.bone.active){a.clipEndWithSlot(A);continue}if(i>=0&&i==A.data.index&&(p=!0),!p){a.clipEndWithSlot(A);continue}s>=0&&s==A.data.index&&(p=!1);let I=A.getAttachment(),k=null;if(I instanceof at){let X=I;u.vertices=this.vertices,u.numVertices=4,u.numFloats=T<<2,X.computeWorldVertices(A.bone,u.vertices,0,T),f=cs.QUAD_TRIANGLES,m=X.uvs,k=X.region.renderObject.page.texture,w=X.color}else if(I instanceof _t){let X=I;u.vertices=this.vertices,u.numVertices=X.worldVerticesLength>>1,u.numFloats=u.numVertices*T,u.numFloats>u.vertices.length&&(u.vertices=this.vertices=O.newFloatArray(u.numFloats)),X.computeWorldVertices(A,0,X.worldVerticesLength,u.vertices,0,T),f=X.triangles,k=X.region.renderObject.page.texture,m=X.uvs,w=X.color}else if(I instanceof fe){let X=I;a.clipStart(A,X);continue}else{a.clipEndWithSlot(A);continue}if(k){let X=A.color,B=this.tempColor;B.r=v.r*X.r*w.r,B.g=v.g*X.g*w.g,B.b=v.b*X.b*w.b,B.a=v.a*X.a*w.a,c&&(B.r*=B.a,B.g*=B.a,B.b*=B.a);let L=this.tempColor2;A.darkColor?(c?(L.r=A.darkColor.r*B.a,L.g=A.darkColor.g*B.a,L.b=A.darkColor.b*B.a):L.setFromColor(A.darkColor),L.a=c?1:0):L.set(0,0,0,1);let P=A.data.blendMode;if(P!=r&&(r=P,t.setBlendMode(Me.getSourceColorGLBlendMode(r,c),Me.getSourceAlphaGLBlendMode(r),Me.getDestGLBlendMode(r))),a.isClipping()){a.clipTriangles(u.vertices,u.numFloats,f,f.length,m,B,L,n);let C=new Float32Array(a.clippedVertices),M=a.clippedTriangles;if(this.vertexEffect){let V=this.vertexEffect,R=C;if(n)for(let E=0,st=C.length;E<st;E+=g)h.x=R[E],h.y=R[E+1],o.set(R[E+2],R[E+3],R[E+4],R[E+5]),l.x=R[E+6],l.y=R[E+7],d.set(R[E+8],R[E+9],R[E+10],R[E+11]),V.transform(h,l,o,d),R[E]=h.x,R[E+1]=h.y,R[E+2]=o.r,R[E+3]=o.g,R[E+4]=o.b,R[E+5]=o.a,R[E+6]=l.x,R[E+7]=l.y,R[E+8]=d.r,R[E+9]=d.g,R[E+10]=d.b,R[E+11]=d.a;else for(let E=0,st=C.length;E<st;E+=g)h.x=R[E],h.y=R[E+1],o.set(R[E+2],R[E+3],R[E+4],R[E+5]),l.x=R[E+6],l.y=R[E+7],d.set(0,0,0,0),V.transform(h,l,o,d),R[E]=h.x,R[E+1]=h.y,R[E+2]=o.r,R[E+3]=o.g,R[E+4]=o.b,R[E+5]=o.a,R[E+6]=l.x,R[E+7]=l.y}t.draw(k,C,M)}else{let C=u.vertices;if(this.vertexEffect){let V=this.vertexEffect;if(n)for(let R=0,E=0,st=u.numFloats;R<st;R+=g,E+=2)h.x=C[R],h.y=C[R+1],l.x=m[E],l.y=m[E+1],o.setFromColor(B),d.setFromColor(L),V.transform(h,l,o,d),C[R]=h.x,C[R+1]=h.y,C[R+2]=o.r,C[R+3]=o.g,C[R+4]=o.b,C[R+5]=o.a,C[R+6]=l.x,C[R+7]=l.y,C[R+8]=d.r,C[R+9]=d.g,C[R+10]=d.b,C[R+11]=d.a;else for(let R=0,E=0,st=u.numFloats;R<st;R+=g,E+=2)h.x=C[R],h.y=C[R+1],l.x=m[E],l.y=m[E+1],o.setFromColor(B),d.set(0,0,0,0),V.transform(h,l,o,d),C[R]=h.x,C[R+1]=h.y,C[R+2]=o.r,C[R+3]=o.g,C[R+4]=o.b,C[R+5]=o.a,C[R+6]=l.x,C[R+7]=l.y}else if(n)for(let V=2,R=0,E=u.numFloats;V<E;V+=g,R+=2)C[V]=B.r,C[V+1]=B.g,C[V+2]=B.b,C[V+3]=B.a,C[V+4]=m[R],C[V+5]=m[R+1],C[V+6]=L.r,C[V+7]=L.g,C[V+8]=L.b,C[V+9]=L.a;else for(let V=2,R=0,E=u.numFloats;V<E;V+=g,R+=2)C[V]=B.r,C[V+1]=B.g,C[V+2]=B.b,C[V+3]=B.a,C[V+4]=m[R],C[V+5]=m[R+1];let M=u.vertices.subarray(0,u.numFloats);t.draw(k,M,f)}}a.clipEndWithSlot(A)}a.clipEnd()}},Xi=cs;Xi.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],Ee=new D(1,1,1,1),ds=class{constructor(t,e,i=!0){this.twoColorTint=!1,this.canvas=t,this.context=e instanceof vt?e:new vt(e),this.twoColorTint=i,this.camera=new ls(t.width,t.height),this.batcherShader=i?bt.newTwoColoredTextured(this.context):bt.newColoredTextured(this.context),this.batcher=new Ii(this.context,i),this.shapesShader=bt.newColored(this.context),this.shapes=new ki(this.context),this.skeletonRenderer=new Xi(this.context,i),this.skeletonDebugRenderer=new Xe(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){this.enableRenderer(this.batcher),this.skeletonRenderer.premultipliedAlpha=e,this.skeletonRenderer.draw(this.batcher,t,i,s)}drawSkeletonDebug(t,e=!1,i=null){this.enableRenderer(this.shapes),this.skeletonDebugRenderer.premultipliedAlpha=e,this.skeletonDebugRenderer.draw(this.shapes,t,i)}drawTexture(t,e,i,s,a,c=null){this.enableRenderer(this.batcher),c===null&&(c=Ee);var n=0;S[n++]=e,S[n++]=i,S[n++]=c.r,S[n++]=c.g,S[n++]=c.b,S[n++]=c.a,S[n++]=0,S[n++]=1,this.twoColorTint&&(S[n++]=0,S[n++]=0,S[n++]=0,S[n++]=0),S[n++]=e+s,S[n++]=i,S[n++]=c.r,S[n++]=c.g,S[n++]=c.b,S[n++]=c.a,S[n++]=1,S[n++]=1,this.twoColorTint&&(S[n++]=0,S[n++]=0,S[n++]=0,S[n++]=0),S[n++]=e+s,S[n++]=i+a,S[n++]=c.r,S[n++]=c.g,S[n++]=c.b,S[n++]=c.a,S[n++]=1,S[n++]=0,this.twoColorTint&&(S[n++]=0,S[n++]=0,S[n++]=0,S[n++]=0),S[n++]=e,S[n++]=i+a,S[n++]=c.r,S[n++]=c.g,S[n++]=c.b,S[n++]=c.a,S[n++]=0,S[n++]=0,this.twoColorTint&&(S[n++]=0,S[n++]=0,S[n++]=0,S[n]=0),this.batcher.draw(t,S,Re)}drawTextureUV(t,e,i,s,a,c,n,r,h,l=null){this.enableRenderer(this.batcher),l===null&&(l=Ee);var o=0;S[o++]=e,S[o++]=i,S[o++]=l.r,S[o++]=l.g,S[o++]=l.b,S[o++]=l.a,S[o++]=c,S[o++]=n,this.twoColorTint&&(S[o++]=0,S[o++]=0,S[o++]=0,S[o++]=0),S[o++]=e+s,S[o++]=i,S[o++]=l.r,S[o++]=l.g,S[o++]=l.b,S[o++]=l.a,S[o++]=r,S[o++]=n,this.twoColorTint&&(S[o++]=0,S[o++]=0,S[o++]=0,S[o++]=0),S[o++]=e+s,S[o++]=i+a,S[o++]=l.r,S[o++]=l.g,S[o++]=l.b,S[o++]=l.a,S[o++]=r,S[o++]=h,this.twoColorTint&&(S[o++]=0,S[o++]=0,S[o++]=0,S[o++]=0),S[o++]=e,S[o++]=i+a,S[o++]=l.r,S[o++]=l.g,S[o++]=l.b,S[o++]=l.a,S[o++]=c,S[o++]=h,this.twoColorTint&&(S[o++]=0,S[o++]=0,S[o++]=0,S[o]=0),this.batcher.draw(t,S,Re)}drawTextureRotated(t,e,i,s,a,c,n,r,h=null){this.enableRenderer(this.batcher),h===null&&(h=Ee);let l=e+c,o=i+n,d=-c,u=-n,m=s-c,f=a-n,x=d,w=u,v=d,g=f,p=m,b=f,y=m,T=u,A=0,I=0,k=0,X=0,B=0,L=0,P=0,C=0;if(r!=0){let V=F.cosDeg(r),R=F.sinDeg(r);A=V*x-R*w,I=R*x+V*w,P=V*v-R*g,C=R*v+V*g,B=V*p-R*b,L=R*p+V*b,k=B+(A-P),X=L+(I-C)}else A=x,I=w,P=v,C=g,B=p,L=b,k=y,X=T;A+=l,I+=o,k+=l,X+=o,B+=l,L+=o,P+=l,C+=o;var M=0;S[M++]=A,S[M++]=I,S[M++]=h.r,S[M++]=h.g,S[M++]=h.b,S[M++]=h.a,S[M++]=0,S[M++]=1,this.twoColorTint&&(S[M++]=0,S[M++]=0,S[M++]=0,S[M++]=0),S[M++]=k,S[M++]=X,S[M++]=h.r,S[M++]=h.g,S[M++]=h.b,S[M++]=h.a,S[M++]=1,S[M++]=1,this.twoColorTint&&(S[M++]=0,S[M++]=0,S[M++]=0,S[M++]=0),S[M++]=B,S[M++]=L,S[M++]=h.r,S[M++]=h.g,S[M++]=h.b,S[M++]=h.a,S[M++]=1,S[M++]=0,this.twoColorTint&&(S[M++]=0,S[M++]=0,S[M++]=0,S[M++]=0),S[M++]=P,S[M++]=C,S[M++]=h.r,S[M++]=h.g,S[M++]=h.b,S[M++]=h.a,S[M++]=0,S[M++]=0,this.twoColorTint&&(S[M++]=0,S[M++]=0,S[M++]=0,S[M]=0),this.batcher.draw(t,S,Re)}drawRegion(t,e,i,s,a,c=null){this.enableRenderer(this.batcher),c===null&&(c=Ee);var n=0;S[n++]=e,S[n++]=i,S[n++]=c.r,S[n++]=c.g,S[n++]=c.b,S[n++]=c.a,S[n++]=t.u,S[n++]=t.v2,this.twoColorTint&&(S[n++]=0,S[n++]=0,S[n++]=0,S[n++]=0),S[n++]=e+s,S[n++]=i,S[n++]=c.r,S[n++]=c.g,S[n++]=c.b,S[n++]=c.a,S[n++]=t.u2,S[n++]=t.v2,this.twoColorTint&&(S[n++]=0,S[n++]=0,S[n++]=0,S[n++]=0),S[n++]=e+s,S[n++]=i+a,S[n++]=c.r,S[n++]=c.g,S[n++]=c.b,S[n++]=c.a,S[n++]=t.u2,S[n++]=t.v,this.twoColorTint&&(S[n++]=0,S[n++]=0,S[n++]=0,S[n++]=0),S[n++]=e,S[n++]=i+a,S[n++]=c.r,S[n++]=c.g,S[n++]=c.b,S[n++]=c.a,S[n++]=t.u,S[n++]=t.v,this.twoColorTint&&(S[n++]=0,S[n++]=0,S[n++]=0,S[n]=0),this.batcher.draw(t.page.texture,S,Re)}line(t,e,i,s,a=null,c=null){this.enableRenderer(this.shapes),this.shapes.line(t,e,i,s,a)}triangle(t,e,i,s,a,c,n,r=null,h=null,l=null){this.enableRenderer(this.shapes),this.shapes.triangle(t,e,i,s,a,c,n,r,h,l)}quad(t,e,i,s,a,c,n,r,h,l=null,o=null,d=null,u=null){this.enableRenderer(this.shapes),this.shapes.quad(t,e,i,s,a,c,n,r,h,l,o,d,u)}rect(t,e,i,s,a,c=null){this.enableRenderer(this.shapes),this.shapes.rect(t,e,i,s,a,c)}rectLine(t,e,i,s,a,c,n=null){this.enableRenderer(this.shapes),this.shapes.rectLine(t,e,i,s,a,c,n)}polygon(t,e,i,s=null){this.enableRenderer(this.shapes),this.shapes.polygon(t,e,i,s)}circle(t,e,i,s,a=null,c=0){this.enableRenderer(this.shapes),this.shapes.circle(t,e,i,s,a,c)}curve(t,e,i,s,a,c,n,r,h,l=null){this.enableRenderer(this.shapes),this.shapes.curve(t,e,i,s,a,c,n,r,h,l)}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),a=Math.round(e.clientHeight*i);if((e.width!=s||e.height!=a)&&(e.width=s,e.height=a),this.context.gl.viewport(0,0,e.width,e.height),t===ae.Expand)this.camera.setViewport(s,a);else if(t===ae.Fit){let c=e.width,n=e.height,r=this.camera.viewportWidth,h=this.camera.viewportHeight,l=h/r,o=n/c,d=l<o?r/c:h/n;this.camera.setViewport(c*d,n*d)}this.camera.update()}enableRenderer(t){this.activeRenderer!==t&&(this.end(),t instanceof Ii?(this.batcherShader.bind(),this.batcherShader.setUniform4x4f(bt.MVP_MATRIX,this.camera.projectionView.values),this.batcherShader.setUniformi("u_texture",0),this.batcher.begin(this.batcherShader),this.activeRenderer=this.batcher):t instanceof ki?(this.shapesShader.bind(),this.shapesShader.setUniform4x4f(bt.MVP_MATRIX,this.camera.projectionView.values),this.shapes.begin(this.shapesShader),this.activeRenderer=this.shapes):this.activeRenderer=this.skeletonDebugRenderer)}},ae;(function(t){t[t.Stretch=0]="Stretch",t[t.Expand=1]="Expand",t[t.Fit=2]="Fit"})(ae||(ae={}));var ge,ne,us=0,lr=1,Ri=1,fs=165,ms=108,te=163,hr=class{constructor(t){if(this.logo=null,this.spinner=null,this.angle=0,this.fadeOut=0,this.fadeIn=0,this.timeKeeper=new Be,this.backgroundColor=new D(.135,.135,.135,1),this.tempColor=new D,this.renderer=t,this.timeKeeper.maxDelta=9,!ne){let e=navigator.userAgent.indexOf("Safari")>-1,i=()=>us++;ne=new Image,ne.src=cr,e||(ne.crossOrigin="anonymous"),ne.onload=i,ge=new Image,ge.src=or,e||(ge.crossOrigin="anonymous"),ge.onload=i}}dispose(){var t,e;(t=this.logo)==null||t.dispose(),(e=this.spinner)==null||e.dispose()}draw(t=!1){if(us<2||t&&this.fadeOut>Ri)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,a=s.canvas,c=s.context.gl;if(s.resize(ae.Expand),s.camera.position.set(a.width/2,a.height/2,0),s.batcher.setBlendMode(c.ONE,c.ONE,c.ONE_MINUS_SRC_ALPHA),t){if(this.fadeOut+=this.timeKeeper.delta*(this.timeKeeper.totalTime<1?2:1),this.fadeOut>Ri)return;i.setFromColor(this.backgroundColor),e=1-this.fadeOut/Ri,e=1-(e-1)*(e-1),i.a*=e,i.a>0&&(s.camera.zoom=1,s.begin(),s.quad(!0,0,0,a.width,0,a.width,a.height,0,a.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/lr,1),i.set(e,e,e,e),this.logo||(this.logo=new me(s.context,ne),this.spinner=new me(s.context,ge)),s.camera.zoom=Math.max(1,te/a.height),s.begin(),s.drawTexture(this.logo,(a.width-fs)/2,(a.height-ms)/2,fs,ms,i),s.drawTextureRotated(this.spinner,(a.width-te)/2,(a.height-te)/2,te,te,te/2,te/2,this.angle,i),s.end()}},or="data:image/png;base64,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",cr="data:image/png;base64,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",dr=class{constructor(t,e){this.time=new Be,e.pathPrefix===void 0&&(e.pathPrefix=""),e.app===void 0&&(e.app={loadAssets:()=>{},initialize:()=>{},update:()=>{},render:()=>{},error:()=>{}}),e.webglConfig===void 0&&(e.webglConfig={alpha:!0}),this.htmlCanvas=t,this.context=new vt(t,e.webglConfig),this.renderer=new ds(t,this.context),this.gl=this.context.gl,this.assetManager=new ns(this.context,e.pathPrefix),this.input=new Ti(t),e.app.loadAssets(this);let i=()=>{requestAnimationFrame(i),this.time.update(),e.app.update(this,this.time.delta),e.app.render(this)},s=()=>{if(this.assetManager.isLoadingComplete()){this.assetManager.hasErrors()?e.app.error(this,this.assetManager.getErrors()):(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 Pi})();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@esotericsoftware/spine-webgl",
|
|
3
|
-
"version": "4.0.
|
|
3
|
+
"version": "4.0.30",
|
|
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.0.
|
|
33
|
+
"@esotericsoftware/spine-core": "4.0.30"
|
|
34
34
|
}
|
|
35
35
|
}
|