three-stdlib 2.6.3 → 2.7.2
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.
- package/{Nodes-ec4e1143.js → Nodes-894ac9dc.js} +0 -0
- package/{Nodes-427f68b0.js → Nodes-af575af7.js} +0 -0
- package/controls/ArcballControls.cjs.js +1 -1
- package/controls/ArcballControls.d.ts +161 -0
- package/controls/ArcballControls.js +554 -285
- package/controls/OrbitControls.cjs.js +1 -1
- package/controls/OrbitControls.d.ts +1 -0
- package/controls/OrbitControls.js +13 -2
- package/controls/TransformControls.cjs.js +1 -1
- package/controls/TransformControls.d.ts +2 -1
- package/controls/TransformControls.js +25 -26
- package/geometries/TeapotGeometry.js +2 -2
- package/geometries/TextGeometry.cjs.js +1 -0
- package/geometries/TextGeometry.d.ts +16 -0
- package/geometries/TextGeometry.js +26 -0
- package/index.cjs.js +1 -1
- package/index.d.ts +2 -0
- package/index.js +2 -0
- package/loaders/AMFLoader.js +1 -3
- package/loaders/ColladaLoader.cjs.js +1 -1
- package/loaders/ColladaLoader.js +58 -35
- package/loaders/EXRLoader.cjs.js +1 -1
- package/loaders/EXRLoader.js +197 -262
- package/loaders/FBXLoader.cjs.js +1 -1
- package/loaders/FBXLoader.js +41 -90
- package/loaders/FontLoader.cjs.js +1 -0
- package/loaders/FontLoader.d.ts +32 -0
- package/loaders/FontLoader.js +139 -0
- package/loaders/GLTFLoader.cjs.js +1 -1
- package/loaders/GLTFLoader.js +161 -75
- package/loaders/HDRCubeTextureLoader.cjs.js +1 -1
- package/loaders/HDRCubeTextureLoader.js +2 -2
- package/loaders/NodeMaterialLoader.cjs.js +1 -1
- package/loaders/RGBELoader.cjs.js +1 -1
- package/loaders/RGBELoader.js +10 -9
- package/loaders/RGBMLoader.cjs.js +1 -1
- package/loaders/RGBMLoader.js +181 -257
- package/loaders/STLLoader.js +7 -7
- package/loaders/SVGLoader.cjs.js +1 -1
- package/loaders/SVGLoader.js +46 -30
- package/loaders/VRMLLoader.cjs.js +1 -1
- package/loaders/VRMLLoader.js +2 -1
- package/nodes/accessors/CameraNode.js +12 -12
- package/nodes/accessors/PositionNode.js +3 -3
- package/nodes/accessors/ReflectNode.js +3 -3
- package/nodes/core/FunctionNode.js +3 -3
- package/nodes/core/InputNode.js +3 -3
- package/nodes/core/Node.js +6 -6
- package/nodes/core/TempNode.js +6 -6
- package/nodes/effects/BlurNode.js +3 -3
- package/nodes/math/MathNode.js +3 -3
- package/nodes/utils/VelocityNode.js +6 -6
- package/package.json +2 -2
- package/renderers/nodes/accessors/UVNode.js +1 -3
- package/renderers/nodes/core/AttributeNode.js +1 -3
- package/renderers/nodes/core/Node.js +4 -12
- package/renderers/nodes/core/NodeBuilder.js +6 -18
- package/webxr/ARButton.js +6 -6
- package/webxr/VRButton.js +6 -6
| @@ -1 +1 @@ | |
| 1 | 
            -
            "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("three");class r extends e.DataTextureLoader{constructor(r){super(r),this.type=e.HalfFloatType,this.maxRange=7}setDataType(e){return this.type=e,this}setMaxRange(e){return this.maxRange=e,this}loadCubemap(r,t,a,n){const i=new e.CubeTexture;let f=0;const o=this;function s(e){o.load(r[e],(function(r){i.images[e]=r,f++,6===f&&(i.needsUpdate=!0,t&&t(i))}),void 0,n)}for(let e=0;e<r.length;++e)s(e);return i.type=this.type,i.format=e.RGBAFormat,i.minFilter=e.LinearFilter,i.generateMipmaps=!1,i}parse(r){const t=i.decode(r),a=i.toRGBA8(t)[0],n=new Uint8Array(a),f=t.width*t.height*4,o=this.type===e.HalfFloatType?new Uint16Array(f):new Float32Array(f);for(let r=0;r<n.length;r+=4){const t=n[r+0]/255,a=n[r+1]/255,i=n[r+2]/255,f=n[r+3]/255;this.type===e.HalfFloatType?(o[r+0]=e.DataUtils.toHalfFloat(Math.min(t*f*this.maxRange,65504)),o[r+1]=e.DataUtils.toHalfFloat(Math.min(a*f*this.maxRange,65504)),o[r+2]=e.DataUtils.toHalfFloat(Math.min(i*f*this.maxRange,65504)),o[r+3]=e.DataUtils.toHalfFloat(1)):(o[r+0]=t*f*this.maxRange,o[r+1]=a*f*this.maxRange,o[r+2]=i*f*this.maxRange,o[r+3]=1)}return{width:t.width,height:t.height,data:o,format:e.RGBAFormat,type:this.type,flipY:!0}}}var t,a,n,i={};i.toRGBA8=function(e){var r=e.width,t=e.height;if(null==e.tabs.acTL)return[i.toRGBA8.decodeImage(e.data,r,t,e).buffer];var a=[];null==e.frames[0].data&&(e.frames[0].data=e.data);for(var n=r*t*4,f=new Uint8Array(n),o=new Uint8Array(n),s=new Uint8Array(n),l=0;l<e.frames.length;l++){var d=e.frames[l],c=d.rect.x,h=d.rect.y,u=d.rect.width,v=d.rect.height,p=i.toRGBA8.decodeImage(d.data,u,v,e);if(0!=l)for(var g=0;g<n;g++)s[g]=f[g];if(0==d.blend?i._copyTile(p,u,v,f,r,t,c,h,0):1==d.blend&&i._copyTile(p,u,v,f,r,t,c,h,1),a.push(f.buffer.slice(0)),0==d.dispose);else if(1==d.dispose)i._copyTile(o,u,v,f,r,t,c,h,0);else if(2==d.dispose)for(g=0;g<n;g++)f[g]=s[g]}return a},i.toRGBA8.decodeImage=function(e,r,t,a){var n=r*t,f=i.decode._getBPP(a),o=Math.ceil(r*f/8),s=new Uint8Array(4*n),l=new Uint32Array(s.buffer),d=a.ctype,c=a.depth,h=i._bin.readUshort;if(6==d){var u=n<<2;if(8==c)for(var v=0;v<u;v+=4)s[v]=e[v],s[v+1]=e[v+1],s[v+2]=e[v+2],s[v+3]=e[v+3];if(16==c)for(v=0;v<u;v++)s[v]=e[v<<1]}else if(2==d){var p=a.tabs.tRNS;if(null==p){if(8==c)for(v=0;v<n;v++){var g=3*v;l[v]=255<<24|e[g+2]<<16|e[g+1]<<8|e[g]}if(16==c)for(v=0;v<n;v++){g=6*v;l[v]=255<<24|e[g+4]<<16|e[g+2]<<8|e[g]}}else{var w=p[0],y=p[1],b=p[2];if(8==c)for(v=0;v<n;v++){var m=v<<2;g=3*v;l[v]=255<<24|e[g+2]<<16|e[g+1]<<8|e[g],e[g]==w&&e[g+1]==y&&e[g+2]==b&&(s[m+3]=0)}if(16==c)for(v=0;v<n;v++){m=v<<2,g=6*v;l[v]=255<<24|e[g+4]<<16|e[g+2]<<8|e[g],h(e,g)==w&&h(e,g+2)==y&&h(e,g+4)==b&&(s[m+3]=0)}}}else if(3==d){var _=a.tabs.PLTE,H=a.tabs.tRNS,U=H?H.length:0;if(1==c)for(var A=0;A<t;A++){var R=A*o,I=A*r;for(v=0;v<r;v++){m=I+v<<2;var T=3*(x=e[R+(v>>3)]>>7-((7&v)<<0)&1);s[m]=_[T],s[m+1]=_[T+1],s[m+2]=_[T+2],s[m+3]=x<U?H[x]:255}}if(2==c)for(A=0;A<t;A++)for(R=A*o,I=A*r,v=0;v<r;v++){m=I+v<<2,T=3*(x=e[R+(v>>2)]>>6-((3&v)<<1)&3);s[m]=_[T],s[m+1]=_[T+1],s[m+2]=_[T+2],s[m+3]=x<U?H[x]:255}if(4==c)for(A=0;A<t;A++)for(R=A*o,I=A*r,v=0;v<r;v++){m=I+v<<2,T=3*(x=e[R+(v>>1)]>>4-((1&v)<<2)&15);s[m]=_[T],s[m+1]=_[T+1],s[m+2]=_[T+2],s[m+3]=x<U?H[x]:255}if(8==c)for(v=0;v<n;v++){var x;m=v<<2,T=3*(x=e[v]);s[m]=_[T],s[m+1]=_[T+1],s[m+2]=_[T+2],s[m+3]=x<U?H[x]:255}}else if(4==d){if(8==c)for(v=0;v<n;v++){m=v<<2;var C=e[B=v<<1];s[m]=C,s[m+1]=C,s[m+2]=C,s[m+3]=e[B+1]}if(16==c)for(v=0;v<n;v++){var B;m=v<<2,C=e[B=v<<2];s[m]=C,s[m+1]=C,s[m+2]=C,s[m+3]=e[B+2]}}else if(0==d)for(w=a.tabs.tRNS?a.tabs.tRNS:-1,A=0;A<t;A++){var M=A*o,S=A*r;if(1==c)for(var D=0;D<r;D++){var F=(C=255*(e[M+(D>>>3)]>>>7-(7&D)&1))==255*w?0:255;l[S+D]=F<<24|C<<16|C<<8|C}else if(2==c)for(D=0;D<r;D++){F=(C=85*(e[M+(D>>>2)]>>>6-((3&D)<<1)&3))==85*w?0:255;l[S+D]=F<<24|C<<16|C<<8|C}else if(4==c)for(D=0;D<r;D++){F=(C=17*(e[M+(D>>>1)]>>>4-((1&D)<<2)&15))==17*w?0:255;l[S+D]=F<<24|C<<16|C<<8|C}else if(8==c)for(D=0;D<r;D++){F=(C=e[M+D])==w?0:255;l[S+D]=F<<24|C<<16|C<<8|C}else if(16==c)for(D=0;D<r;D++){C=e[M+(D<<1)],F=h(e,M+(D<<v))==w?0:255;l[S+D]=F<<24|C<<16|C<<8|C}}return s},i.decode=function(e){for(var r,t=new Uint8Array(e),a=8,n=i._bin,f=n.readUshort,o=n.readUint,s={tabs:{},frames:[]},l=new Uint8Array(t.length),d=0,c=0,h=[137,80,78,71,13,10,26,10],u=0;u<8;u++)if(t[u]!=h[u])throw"The input is not a PNG file!";for(;a<t.length;){var v=n.readUint(t,a);a+=4;var p=n.readASCII(t,a,4);if(a+=4,"IHDR"==p)i.decode._IHDR(t,a,s);else if("CgBI"==p)s.tabs[p]=t.slice(a,a+4);else if("IDAT"==p){for(u=0;u<v;u++)l[d+u]=t[a+u];d+=v}else if("acTL"==p)s.tabs[p]={num_frames:o(t,a),num_plays:o(t,a+4)},r=new Uint8Array(t.length);else if("fcTL"==p){var g;if(0!=c)(g=s.frames[s.frames.length-1]).data=i.decode._decompress(s,r.slice(0,c),g.rect.width,g.rect.height),c=0;var w={x:o(t,a+12),y:o(t,a+16),width:o(t,a+4),height:o(t,a+8)},y=f(t,a+22);y=f(t,a+20)/(0==y?100:y);var b={rect:w,delay:Math.round(1e3*y),dispose:t[a+24],blend:t[a+25]};s.frames.push(b)}else if("fdAT"==p){for(u=0;u<v-4;u++)r[c+u]=t[a+u+4];c+=v-4}else if("pHYs"==p)s.tabs[p]=[n.readUint(t,a),n.readUint(t,a+4),t[a+8]];else if("cHRM"==p){s.tabs[p]=[];for(u=0;u<8;u++)s.tabs[p].push(n.readUint(t,a+4*u))}else if("tEXt"==p||"zTXt"==p){null==s.tabs[p]&&(s.tabs[p]={});var m=n.nextZero(t,a),_=n.readASCII(t,a,m-a),H=a+v-m-1;if("tEXt"==p)I=n.readASCII(t,m+1,H);else{var U=i.decode._inflate(t.slice(m+2,m+2+H));I=n.readUTF8(U,0,U.length)}s.tabs[p][_]=I}else if("iTXt"==p){null==s.tabs[p]&&(s.tabs[p]={});m=0;var A=a;m=n.nextZero(t,A);_=n.readASCII(t,A,m-A);var R=t[A=m+1];A+=2,m=n.nextZero(t,A),n.readASCII(t,A,m-A),A=m+1,m=n.nextZero(t,A),n.readUTF8(t,A,m-A);var I;H=v-((A=m+1)-a);if(0==R)I=n.readUTF8(t,A,H);else{U=i.decode._inflate(t.slice(A,A+H));I=n.readUTF8(U,0,U.length)}s.tabs[p][_]=I}else if("PLTE"==p)s.tabs[p]=n.readBytes(t,a,v);else if("hIST"==p){var T=s.tabs.PLTE.length/3;s.tabs[p]=[];for(u=0;u<T;u++)s.tabs[p].push(f(t,a+2*u))}else if("tRNS"==p)3==s.ctype?s.tabs[p]=n.readBytes(t,a,v):0==s.ctype?s.tabs[p]=f(t,a):2==s.ctype&&(s.tabs[p]=[f(t,a),f(t,a+2),f(t,a+4)]);else if("gAMA"==p)s.tabs[p]=n.readUint(t,a)/1e5;else if("sRGB"==p)s.tabs[p]=t[a];else if("bKGD"==p)0==s.ctype||4==s.ctype?s.tabs[p]=[f(t,a)]:2==s.ctype||6==s.ctype?s.tabs[p]=[f(t,a),f(t,a+2),f(t,a+4)]:3==s.ctype&&(s.tabs[p]=t[a]);else if("IEND"==p)break;a+=v,n.readUint(t,a),a+=4}0!=c&&((g=s.frames[s.frames.length-1]).data=i.decode._decompress(s,r.slice(0,c),g.rect.width,g.rect.height),c=0);return s.data=i.decode._decompress(s,l,s.width,s.height),delete s.compress,delete s.interlace,delete s.filter,s},i.decode._decompress=function(e,r,t,a){var n=i.decode._getBPP(e),f=Math.ceil(t*n/8),o=new Uint8Array((f+1+e.interlace)*a);return r=e.tabs.CgBI?i.inflateRaw(r,o):i.decode._inflate(r,o),0==e.interlace?r=i.decode._filterZero(r,e,0,t,a):1==e.interlace&&(r=i.decode._readInterlace(r,e)),r},i.decode._inflate=function(e,r){return i.inflateRaw(new Uint8Array(e.buffer,2,e.length-6),r)},i.inflateRaw=((n={}).H={},n.H.N=function(e,r){var t,a,i=Uint8Array,f=0,o=0,s=0,l=0,d=0,c=0,h=0,u=0,v=0;if(3==e[0]&&0==e[1])return r||new i(0);var p=n.H,g=p.b,w=p.e,y=p.R,b=p.n,m=p.A,_=p.Z,H=p.m,U=null==r;for(U&&(r=new i(e.length>>>2<<5));0==f;)if(f=g(e,v,1),o=g(e,v+1,2),v+=3,0!=o){if(U&&(r=n.H.W(r,u+(1<<17))),1==o&&(t=H.J,a=H.h,c=511,h=31),2==o){s=w(e,v,5)+257,l=w(e,v+5,5)+1,d=w(e,v+10,4)+4,v+=14;for(var A=1,R=0;R<38;R+=2)H.Q[R]=0,H.Q[R+1]=0;for(R=0;R<d;R++){var I=w(e,v+3*R,3);H.Q[1+(H.X[R]<<1)]=I,I>A&&(A=I)}v+=3*d,b(H.Q,A),m(H.Q,A,H.u),t=H.w,a=H.d,v=y(H.u,(1<<A)-1,s+l,e,v,H.v);var T=p.V(H.v,0,s,H.C);c=(1<<T)-1;var x=p.V(H.v,s,l,H.D);h=(1<<x)-1,b(H.C,T),m(H.C,T,t),b(H.D,x),m(H.D,x,a)}for(;;){var C=t[_(e,v)&c];v+=15&C;var B=C>>>4;if(B>>>8==0)r[u++]=B;else{if(256==B)break;var M=u+B-254;if(B>264){var S=H.q[B-257];M=u+(S>>>3)+w(e,v,7&S),v+=7&S}var D=a[_(e,v)&h];v+=15&D;var F=D>>>4,P=H.c[F],G=(P>>>4)+g(e,v,15&P);for(v+=15&P;u<M;)r[u]=r[u++-G],r[u]=r[u++-G],r[u]=r[u++-G],r[u]=r[u++-G];u=M}}}else{0!=(7&v)&&(v+=8-(7&v));var Z=4+(v>>>3),L=e[Z-4]|e[Z-3]<<8;U&&(r=n.H.W(r,u+L)),r.set(new i(e.buffer,e.byteOffset+Z,L),u),v=Z+L<<3,u+=L}return r.length==u?r:r.slice(0,u)},n.H.W=function(e,r){var t=e.length;if(r<=t)return e;var a=new Uint8Array(t<<1);return a.set(e,0),a},n.H.R=function(e,r,t,a,i,f){for(var o=n.H.e,s=n.H.Z,l=0;l<t;){var d=e[s(a,i)&r];i+=15&d;var c=d>>>4;if(c<=15)f[l]=c,l++;else{var h=0,u=0;16==c?(u=3+o(a,i,2),i+=2,h=f[l-1]):17==c?(u=3+o(a,i,3),i+=3):18==c&&(u=11+o(a,i,7),i+=7);for(var v=l+u;l<v;)f[l]=h,l++}}return i},n.H.V=function(e,r,t,a){for(var n=0,i=0,f=a.length>>>1;i<t;){var o=e[i+r];a[i<<1]=0,a[1+(i<<1)]=o,o>n&&(n=o),i++}for(;i<f;)a[i<<1]=0,a[1+(i<<1)]=0,i++;return n},n.H.n=function(e,r){for(var t,a,i,f,o=n.H.m,s=e.length,l=o.j,d=0;d<=r;d++)l[d]=0;for(d=1;d<s;d+=2)l[e[d]]++;var c=o.K;for(t=0,l[0]=0,a=1;a<=r;a++)t=t+l[a-1]<<1,c[a]=t;for(i=0;i<s;i+=2)0!=(f=e[i+1])&&(e[i]=c[f],c[f]++)},n.H.A=function(e,r,t){for(var a=e.length,i=n.H.m.r,f=0;f<a;f+=2)if(0!=e[f+1])for(var o=f>>1,s=e[f+1],l=o<<4|s,d=r-s,c=e[f]<<d,h=c+(1<<d);c!=h;)t[i[c]>>>15-r]=l,c++},n.H.l=function(e,r){for(var t=n.H.m.r,a=15-r,i=0;i<e.length;i+=2){var f=e[i]<<r-e[i+1];e[i]=t[f]>>>a}},n.H.M=function(e,r,t){t<<=7&r;var a=r>>>3;e[a]|=t,e[a+1]|=t>>>8},n.H.I=function(e,r,t){t<<=7&r;var a=r>>>3;e[a]|=t,e[a+1]|=t>>>8,e[a+2]|=t>>>16},n.H.e=function(e,r,t){return(e[r>>>3]|e[1+(r>>>3)]<<8)>>>(7&r)&(1<<t)-1},n.H.b=function(e,r,t){return(e[r>>>3]|e[1+(r>>>3)]<<8|e[2+(r>>>3)]<<16)>>>(7&r)&(1<<t)-1},n.H.Z=function(e,r){return(e[r>>>3]|e[1+(r>>>3)]<<8|e[2+(r>>>3)]<<16)>>>(7&r)},n.H.i=function(e,r){return(e[r>>>3]|e[1+(r>>>3)]<<8|e[2+(r>>>3)]<<16|e[3+(r>>>3)]<<24)>>>(7&r)},n.H.m=(t=Uint16Array,a=Uint32Array,{K:new t(16),j:new t(16),X:[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],S:[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,999,999,999],T:[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0],q:new t(32),p:[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,65535,65535],z:[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0],c:new a(32),J:new t(512),_:[],h:new t(32),$:[],w:new t(32768),C:[],v:[],d:new t(32768),D:[],u:new t(512),Q:[],r:new t(32768),s:new a(286),Y:new a(30),a:new a(19),t:new a(15e3),k:new t(65536),g:new t(32768)}),function(){for(var e=n.H.m,r=0;r<32768;r++){var t=r;t=(4278255360&(t=(4042322160&(t=(3435973836&(t=(2863311530&t)>>>1|(1431655765&t)<<1))>>>2|(858993459&t)<<2))>>>4|(252645135&t)<<4))>>>8|(16711935&t)<<8,e.r[r]=(t>>>16|t<<16)>>>17}function a(e,r,t){for(;0!=r--;)e.push(0,t)}for(r=0;r<32;r++)e.q[r]=e.S[r]<<3|e.T[r],e.c[r]=e.p[r]<<4|e.z[r];a(e._,144,8),a(e._,112,9),a(e._,24,7),a(e._,8,8),n.H.n(e._,9),n.H.A(e._,9,e.J),n.H.l(e._,9),a(e.$,32,5),n.H.n(e.$,5),n.H.A(e.$,5,e.h),n.H.l(e.$,5),a(e.Q,19,0),a(e.C,286,0),a(e.D,30,0),a(e.v,320,0)}(),n.H.N),i.decode._readInterlace=function(e,r){for(var t=r.width,a=r.height,n=i.decode._getBPP(r),f=n>>3,o=Math.ceil(t*n/8),s=new Uint8Array(a*o),l=0,d=[0,0,4,0,2,0,1],c=[0,4,0,2,0,1,0],h=[8,8,8,4,4,2,2],u=[8,8,4,4,2,2,1],v=0;v<7;){for(var p=h[v],g=u[v],w=0,y=0,b=d[v];b<a;)b+=p,y++;for(var m=c[v];m<t;)m+=g,w++;var _=Math.ceil(w*n/8);i.decode._filterZero(e,r,l,w,y);for(var H=0,U=d[v];U<a;){for(var A=c[v],R=l+H*_<<3;A<t;){var I;if(1==n)I=(I=e[R>>3])>>7-(7&R)&1,s[U*o+(A>>3)]|=I<<7-((7&A)<<0);if(2==n)I=(I=e[R>>3])>>6-(7&R)&3,s[U*o+(A>>2)]|=I<<6-((3&A)<<1);if(4==n)I=(I=e[R>>3])>>4-(7&R)&15,s[U*o+(A>>1)]|=I<<4-((1&A)<<2);if(n>=8)for(var T=U*o+A*f,x=0;x<f;x++)s[T+x]=e[(R>>3)+x];R+=n,A+=g}H++,U+=p}w*y!=0&&(l+=y*(1+_)),v+=1}return s},i.decode._getBPP=function(e){return[1,null,3,1,2,null,4][e.ctype]*e.depth},i.decode._filterZero=function(e,r,t,a,n){var f=i.decode._getBPP(r),o=Math.ceil(a*f/8),s=i.decode._paeth;f=Math.ceil(f/8);var l=0,d=1,c=e[t],h=0;if(c>1&&(e[t]=[0,0,1][c-2]),3==c)for(h=f;h<o;h++)e[h+1]=e[h+1]+(e[h+1-f]>>>1)&255;for(var u=0;u<n;u++)if(h=0,0==(c=e[(d=(l=t+u*o)+u+1)-1]))for(;h<o;h++)e[l+h]=e[d+h];else if(1==c){for(;h<f;h++)e[l+h]=e[d+h];for(;h<o;h++)e[l+h]=e[d+h]+e[l+h-f]}else if(2==c)for(;h<o;h++)e[l+h]=e[d+h]+e[l+h-o];else if(3==c){for(;h<f;h++)e[l+h]=e[d+h]+(e[l+h-o]>>>1);for(;h<o;h++)e[l+h]=e[d+h]+(e[l+h-o]+e[l+h-f]>>>1)}else{for(;h<f;h++)e[l+h]=e[d+h]+s(0,e[l+h-o],0);for(;h<o;h++)e[l+h]=e[d+h]+s(e[l+h-f],e[l+h-o],e[l+h-f-o])}return e},i.decode._paeth=function(e,r,t){var a=e+r-t,n=a-e,i=a-r,f=a-t;return n*n<=i*i&&n*n<=f*f?e:i*i<=f*f?r:t},i.decode._IHDR=function(e,r,t){var a=i._bin;t.width=a.readUint(e,r),r+=4,t.height=a.readUint(e,r),r+=4,t.depth=e[r],r++,t.ctype=e[r],r++,t.compress=e[r],r++,t.filter=e[r],r++,t.interlace=e[r],r++},i._bin={nextZero:function(e,r){for(;0!=e[r];)r++;return r},readUshort:function(e,r){return e[r]<<8|e[r+1]},writeUshort:function(e,r,t){e[r]=t>>8&255,e[r+1]=255&t},readUint:function(e,r){return 16777216*e[r]+(e[r+1]<<16|e[r+2]<<8|e[r+3])},writeUint:function(e,r,t){e[r]=t>>24&255,e[r+1]=t>>16&255,e[r+2]=t>>8&255,e[r+3]=255&t},readASCII:function(e,r,t){for(var a="",n=0;n<t;n++)a+=String.fromCharCode(e[r+n]);return a},writeASCII:function(e,r,t){for(var a=0;a<t.length;a++)e[r+a]=t.charCodeAt(a)},readBytes:function(e,r,t){for(var a=[],n=0;n<t;n++)a.push(e[r+n]);return a},pad:function(e){return e.length<2?"0"+e:e},readUTF8:function(e,r,t){for(var a,n="",f=0;f<t;f++)n+="%"+i._bin.pad(e[r+f].toString(16));try{a=decodeURIComponent(n)}catch(a){return i._bin.readASCII(e,r,t)}return a}},i._copyTile=function(e,r,t,a,n,i,f,o,s){for(var l=Math.min(r,n),d=Math.min(t,i),c=0,h=0,u=0;u<d;u++)for(var v=0;v<l;v++)if(f>=0&&o>=0?(c=u*r+v<<2,h=(o+u)*n+f+v<<2):(c=(-o+u)*r-f+v<<2,h=u*n+v<<2),0==s)a[h]=e[c],a[h+1]=e[c+1],a[h+2]=e[c+2],a[h+3]=e[c+3];else if(1==s){var p=e[c+3]*(1/255),g=e[c]*p,w=e[c+1]*p,y=e[c+2]*p,b=a[h+3]*(1/255),m=a[h]*b,_=a[h+1]*b,H=a[h+2]*b,U=1-p,A=p+b*U,R=0==A?0:1/A;a[h+3]=255*A,a[h+0]=(g+m*U)*R,a[h+1]=(w+_*U)*R,a[h+2]=(y+H*U)*R}else if(2==s){p=e[c+3],g=e[c],w=e[c+1],y=e[c+2],b=a[h+3],m=a[h],_=a[h+1],H=a[h+2];p==b&&g==m&&w==_&&y==H?(a[h]=0,a[h+1]=0,a[h+2]=0,a[h+3]=0):(a[h]=g,a[h+1]=w,a[h+2]=y,a[h+3]=p)}else if(3==s){p=e[c+3],g=e[c],w=e[c+1],y=e[c+2],b=a[h+3],m=a[h],_=a[h+1],H=a[h+2];if(p==b&&g==m&&w==_&&y==H)continue;if(p<220&&b>20)return!1}return!0},exports.RGBMLoader=r;
         | 
| 1 | 
            +
            "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("three");class r extends e.DataTextureLoader{constructor(r){super(r),this.type=e.HalfFloatType,this.maxRange=7}setDataType(e){return this.type=e,this}setMaxRange(e){return this.maxRange=e,this}loadCubemap(r,t,a,n){const i=new e.CubeTexture;let f=0;const o=this;function s(e){o.load(r[e],(function(r){i.images[e]=r,f++,6===f&&(i.needsUpdate=!0,t&&t(i))}),void 0,n)}for(let e=0;e<r.length;++e)s(e);return i.type=this.type,i.format=e.RGBAFormat,i.minFilter=e.LinearFilter,i.generateMipmaps=!1,i}parse(r){const t=i.decode(r),a=i.toRGBA8(t)[0],n=new Uint8Array(a),f=t.width*t.height*4,o=this.type===e.HalfFloatType?new Uint16Array(f):new Float32Array(f);for(let r=0;r<n.length;r+=4){const t=n[r+0]/255,a=n[r+1]/255,i=n[r+2]/255,f=n[r+3]/255;this.type===e.HalfFloatType?(o[r+0]=e.DataUtils.toHalfFloat(Math.min(t*f*this.maxRange,65504)),o[r+1]=e.DataUtils.toHalfFloat(Math.min(a*f*this.maxRange,65504)),o[r+2]=e.DataUtils.toHalfFloat(Math.min(i*f*this.maxRange,65504)),o[r+3]=e.DataUtils.toHalfFloat(1)):(o[r+0]=t*f*this.maxRange,o[r+1]=a*f*this.maxRange,o[r+2]=i*f*this.maxRange,o[r+3]=1)}return{width:t.width,height:t.height,data:o,format:e.RGBAFormat,type:this.type,flipY:!0}}}var t,a,n,i={};i.toRGBA8=function(e){var r=e.width,t=e.height;if(null==e.tabs.acTL)return[i.toRGBA8.decodeImage(e.data,r,t,e).buffer];var a=[];null==e.frames[0].data&&(e.frames[0].data=e.data);for(var n=r*t*4,f=new Uint8Array(n),o=new Uint8Array(n),s=new Uint8Array(n),l=0;l<e.frames.length;l++){var d=e.frames[l],c=d.rect.x,h=d.rect.y,u=d.rect.width,v=d.rect.height,p=i.toRGBA8.decodeImage(d.data,u,v,e);if(0!=l)for(var g=0;g<n;g++)s[g]=f[g];if(0==d.blend?i._copyTile(p,u,v,f,r,t,c,h,0):1==d.blend&&i._copyTile(p,u,v,f,r,t,c,h,1),a.push(f.buffer.slice(0)),0==d.dispose);else if(1==d.dispose)i._copyTile(o,u,v,f,r,t,c,h,0);else if(2==d.dispose)for(g=0;g<n;g++)f[g]=s[g]}return a},i.toRGBA8.decodeImage=function(e,r,t,a){var n=r*t,f=i.decode._getBPP(a),o=Math.ceil(r*f/8),s=new Uint8Array(4*n),l=new Uint32Array(s.buffer),d=a.ctype,c=a.depth,h=i._bin.readUshort;if(6==d){var u=n<<2;if(8==c)for(var v=0;v<u;v+=4)s[v]=e[v],s[v+1]=e[v+1],s[v+2]=e[v+2],s[v+3]=e[v+3];if(16==c)for(v=0;v<u;v++)s[v]=e[v<<1]}else if(2==d){var p=a.tabs.tRNS;if(null==p){if(8==c)for(v=0;v<n;v++){var g=3*v;l[v]=255<<24|e[g+2]<<16|e[g+1]<<8|e[g]}if(16==c)for(v=0;v<n;v++){g=6*v;l[v]=255<<24|e[g+4]<<16|e[g+2]<<8|e[g]}}else{var w=p[0],y=p[1],b=p[2];if(8==c)for(v=0;v<n;v++){var m=v<<2;g=3*v;l[v]=255<<24|e[g+2]<<16|e[g+1]<<8|e[g],e[g]==w&&e[g+1]==y&&e[g+2]==b&&(s[m+3]=0)}if(16==c)for(v=0;v<n;v++){m=v<<2,g=6*v;l[v]=255<<24|e[g+4]<<16|e[g+2]<<8|e[g],h(e,g)==w&&h(e,g+2)==y&&h(e,g+4)==b&&(s[m+3]=0)}}}else if(3==d){var _=a.tabs.PLTE,H=a.tabs.tRNS,U=H?H.length:0;if(1==c)for(var A=0;A<t;A++){var R=A*o,I=A*r;for(v=0;v<r;v++){m=I+v<<2;var T=3*(x=e[R+(v>>3)]>>7-((7&v)<<0)&1);s[m]=_[T],s[m+1]=_[T+1],s[m+2]=_[T+2],s[m+3]=x<U?H[x]:255}}if(2==c)for(A=0;A<t;A++)for(R=A*o,I=A*r,v=0;v<r;v++){m=I+v<<2,T=3*(x=e[R+(v>>2)]>>6-((3&v)<<1)&3);s[m]=_[T],s[m+1]=_[T+1],s[m+2]=_[T+2],s[m+3]=x<U?H[x]:255}if(4==c)for(A=0;A<t;A++)for(R=A*o,I=A*r,v=0;v<r;v++){m=I+v<<2,T=3*(x=e[R+(v>>1)]>>4-((1&v)<<2)&15);s[m]=_[T],s[m+1]=_[T+1],s[m+2]=_[T+2],s[m+3]=x<U?H[x]:255}if(8==c)for(v=0;v<n;v++){var x;m=v<<2,T=3*(x=e[v]);s[m]=_[T],s[m+1]=_[T+1],s[m+2]=_[T+2],s[m+3]=x<U?H[x]:255}}else if(4==d){if(8==c)for(v=0;v<n;v++){m=v<<2;var C=e[B=v<<1];s[m]=C,s[m+1]=C,s[m+2]=C,s[m+3]=e[B+1]}if(16==c)for(v=0;v<n;v++){var B;m=v<<2,C=e[B=v<<2];s[m]=C,s[m+1]=C,s[m+2]=C,s[m+3]=e[B+2]}}else if(0==d)for(w=a.tabs.tRNS?a.tabs.tRNS:-1,A=0;A<t;A++){var M=A*o,S=A*r;if(1==c)for(var D=0;D<r;D++){var F=(C=255*(e[M+(D>>>3)]>>>7-(7&D)&1))==255*w?0:255;l[S+D]=F<<24|C<<16|C<<8|C}else if(2==c)for(D=0;D<r;D++){F=(C=85*(e[M+(D>>>2)]>>>6-((3&D)<<1)&3))==85*w?0:255;l[S+D]=F<<24|C<<16|C<<8|C}else if(4==c)for(D=0;D<r;D++){F=(C=17*(e[M+(D>>>1)]>>>4-((1&D)<<2)&15))==17*w?0:255;l[S+D]=F<<24|C<<16|C<<8|C}else if(8==c)for(D=0;D<r;D++){F=(C=e[M+D])==w?0:255;l[S+D]=F<<24|C<<16|C<<8|C}else if(16==c)for(D=0;D<r;D++){C=e[M+(D<<1)],F=h(e,M+(D<<1))==w?0:255;l[S+D]=F<<24|C<<16|C<<8|C}}return s},i.decode=function(e){for(var r,t=new Uint8Array(e),a=8,n=i._bin,f=n.readUshort,o=n.readUint,s={tabs:{},frames:[]},l=new Uint8Array(t.length),d=0,c=0,h=[137,80,78,71,13,10,26,10],u=0;u<8;u++)if(t[u]!=h[u])throw"The input is not a PNG file!";for(;a<t.length;){var v=n.readUint(t,a);a+=4;var p=n.readASCII(t,a,4);if(a+=4,"IHDR"==p)i.decode._IHDR(t,a,s);else if("CgBI"==p)s.tabs[p]=t.slice(a,a+4);else if("IDAT"==p){for(u=0;u<v;u++)l[d+u]=t[a+u];d+=v}else if("acTL"==p)s.tabs[p]={num_frames:o(t,a),num_plays:o(t,a+4)},r=new Uint8Array(t.length);else if("fcTL"==p){var g;if(0!=c)(g=s.frames[s.frames.length-1]).data=i.decode._decompress(s,r.slice(0,c),g.rect.width,g.rect.height),c=0;var w={x:o(t,a+12),y:o(t,a+16),width:o(t,a+4),height:o(t,a+8)},y=f(t,a+22);y=f(t,a+20)/(0==y?100:y);var b={rect:w,delay:Math.round(1e3*y),dispose:t[a+24],blend:t[a+25]};s.frames.push(b)}else if("fdAT"==p){for(u=0;u<v-4;u++)r[c+u]=t[a+u+4];c+=v-4}else if("pHYs"==p)s.tabs[p]=[n.readUint(t,a),n.readUint(t,a+4),t[a+8]];else if("cHRM"==p){s.tabs[p]=[];for(u=0;u<8;u++)s.tabs[p].push(n.readUint(t,a+4*u))}else if("tEXt"==p||"zTXt"==p){null==s.tabs[p]&&(s.tabs[p]={});var m=n.nextZero(t,a),_=n.readASCII(t,a,m-a),H=a+v-m-1;if("tEXt"==p)I=n.readASCII(t,m+1,H);else{var U=i.decode._inflate(t.slice(m+2,m+2+H));I=n.readUTF8(U,0,U.length)}s.tabs[p][_]=I}else if("iTXt"==p){null==s.tabs[p]&&(s.tabs[p]={});m=0;var A=a;m=n.nextZero(t,A);_=n.readASCII(t,A,m-A);var R=t[A=m+1];A+=2,m=n.nextZero(t,A),n.readASCII(t,A,m-A),A=m+1,m=n.nextZero(t,A),n.readUTF8(t,A,m-A);var I;H=v-((A=m+1)-a);if(0==R)I=n.readUTF8(t,A,H);else{U=i.decode._inflate(t.slice(A,A+H));I=n.readUTF8(U,0,U.length)}s.tabs[p][_]=I}else if("PLTE"==p)s.tabs[p]=n.readBytes(t,a,v);else if("hIST"==p){var T=s.tabs.PLTE.length/3;s.tabs[p]=[];for(u=0;u<T;u++)s.tabs[p].push(f(t,a+2*u))}else if("tRNS"==p)3==s.ctype?s.tabs[p]=n.readBytes(t,a,v):0==s.ctype?s.tabs[p]=f(t,a):2==s.ctype&&(s.tabs[p]=[f(t,a),f(t,a+2),f(t,a+4)]);else if("gAMA"==p)s.tabs[p]=n.readUint(t,a)/1e5;else if("sRGB"==p)s.tabs[p]=t[a];else if("bKGD"==p)0==s.ctype||4==s.ctype?s.tabs[p]=[f(t,a)]:2==s.ctype||6==s.ctype?s.tabs[p]=[f(t,a),f(t,a+2),f(t,a+4)]:3==s.ctype&&(s.tabs[p]=t[a]);else if("IEND"==p)break;a+=v,n.readUint(t,a),a+=4}0!=c&&((g=s.frames[s.frames.length-1]).data=i.decode._decompress(s,r.slice(0,c),g.rect.width,g.rect.height));return s.data=i.decode._decompress(s,l,s.width,s.height),delete s.compress,delete s.interlace,delete s.filter,s},i.decode._decompress=function(e,r,t,a){var n=i.decode._getBPP(e),f=Math.ceil(t*n/8),o=new Uint8Array((f+1+e.interlace)*a);return r=e.tabs.CgBI?i.inflateRaw(r,o):i.decode._inflate(r,o),0==e.interlace?r=i.decode._filterZero(r,e,0,t,a):1==e.interlace&&(r=i.decode._readInterlace(r,e)),r},i.decode._inflate=function(e,r){return i.inflateRaw(new Uint8Array(e.buffer,2,e.length-6),r)},i.inflateRaw=((n={}).H={},n.H.N=function(e,r){var t,a,i=Uint8Array,f=0,o=0,s=0,l=0,d=0,c=0,h=0,u=0,v=0;if(3==e[0]&&0==e[1])return r||new i(0);var p=n.H,g=p.b,w=p.e,y=p.R,b=p.n,m=p.A,_=p.Z,H=p.m,U=null==r;for(U&&(r=new i(e.length>>>2<<5));0==f;)if(f=g(e,v,1),o=g(e,v+1,2),v+=3,0!=o){if(U&&(r=n.H.W(r,u+(1<<17))),1==o&&(t=H.J,a=H.h,c=511,h=31),2==o){s=w(e,v,5)+257,l=w(e,v+5,5)+1,d=w(e,v+10,4)+4,v+=14;for(var A=1,R=0;R<38;R+=2)H.Q[R]=0,H.Q[R+1]=0;for(R=0;R<d;R++){var I=w(e,v+3*R,3);H.Q[1+(H.X[R]<<1)]=I,I>A&&(A=I)}v+=3*d,b(H.Q,A),m(H.Q,A,H.u),t=H.w,a=H.d,v=y(H.u,(1<<A)-1,s+l,e,v,H.v);var T=p.V(H.v,0,s,H.C);c=(1<<T)-1;var x=p.V(H.v,s,l,H.D);h=(1<<x)-1,b(H.C,T),m(H.C,T,t),b(H.D,x),m(H.D,x,a)}for(;;){var C=t[_(e,v)&c];v+=15&C;var B=C>>>4;if(B>>>8==0)r[u++]=B;else{if(256==B)break;var M=u+B-254;if(B>264){var S=H.q[B-257];M=u+(S>>>3)+w(e,v,7&S),v+=7&S}var D=a[_(e,v)&h];v+=15&D;var F=D>>>4,P=H.c[F],G=(P>>>4)+g(e,v,15&P);for(v+=15&P;u<M;)r[u]=r[u++-G],r[u]=r[u++-G],r[u]=r[u++-G],r[u]=r[u++-G];u=M}}}else{0!=(7&v)&&(v+=8-(7&v));var Z=4+(v>>>3),L=e[Z-4]|e[Z-3]<<8;U&&(r=n.H.W(r,u+L)),r.set(new i(e.buffer,e.byteOffset+Z,L),u),v=Z+L<<3,u+=L}return r.length==u?r:r.slice(0,u)},n.H.W=function(e,r){var t=e.length;if(r<=t)return e;var a=new Uint8Array(t<<1);return a.set(e,0),a},n.H.R=function(e,r,t,a,i,f){for(var o=n.H.e,s=n.H.Z,l=0;l<t;){var d=e[s(a,i)&r];i+=15&d;var c=d>>>4;if(c<=15)f[l]=c,l++;else{var h=0,u=0;16==c?(u=3+o(a,i,2),i+=2,h=f[l-1]):17==c?(u=3+o(a,i,3),i+=3):18==c&&(u=11+o(a,i,7),i+=7);for(var v=l+u;l<v;)f[l]=h,l++}}return i},n.H.V=function(e,r,t,a){for(var n=0,i=0,f=a.length>>>1;i<t;){var o=e[i+r];a[i<<1]=0,a[1+(i<<1)]=o,o>n&&(n=o),i++}for(;i<f;)a[i<<1]=0,a[1+(i<<1)]=0,i++;return n},n.H.n=function(e,r){for(var t,a,i,f,o=n.H.m,s=e.length,l=o.j,d=0;d<=r;d++)l[d]=0;for(d=1;d<s;d+=2)l[e[d]]++;var c=o.K;for(t=0,l[0]=0,a=1;a<=r;a++)t=t+l[a-1]<<1,c[a]=t;for(i=0;i<s;i+=2)0!=(f=e[i+1])&&(e[i]=c[f],c[f]++)},n.H.A=function(e,r,t){for(var a=e.length,i=n.H.m.r,f=0;f<a;f+=2)if(0!=e[f+1])for(var o=f>>1,s=e[f+1],l=o<<4|s,d=r-s,c=e[f]<<d,h=c+(1<<d);c!=h;)t[i[c]>>>15-r]=l,c++},n.H.l=function(e,r){for(var t=n.H.m.r,a=15-r,i=0;i<e.length;i+=2){var f=e[i]<<r-e[i+1];e[i]=t[f]>>>a}},n.H.M=function(e,r,t){t<<=7&r;var a=r>>>3;e[a]|=t,e[a+1]|=t>>>8},n.H.I=function(e,r,t){t<<=7&r;var a=r>>>3;e[a]|=t,e[a+1]|=t>>>8,e[a+2]|=t>>>16},n.H.e=function(e,r,t){return(e[r>>>3]|e[1+(r>>>3)]<<8)>>>(7&r)&(1<<t)-1},n.H.b=function(e,r,t){return(e[r>>>3]|e[1+(r>>>3)]<<8|e[2+(r>>>3)]<<16)>>>(7&r)&(1<<t)-1},n.H.Z=function(e,r){return(e[r>>>3]|e[1+(r>>>3)]<<8|e[2+(r>>>3)]<<16)>>>(7&r)},n.H.i=function(e,r){return(e[r>>>3]|e[1+(r>>>3)]<<8|e[2+(r>>>3)]<<16|e[3+(r>>>3)]<<24)>>>(7&r)},n.H.m=(t=Uint16Array,a=Uint32Array,{K:new t(16),j:new t(16),X:[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],S:[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,999,999,999],T:[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0],q:new t(32),p:[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,65535,65535],z:[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0],c:new a(32),J:new t(512),_:[],h:new t(32),$:[],w:new t(32768),C:[],v:[],d:new t(32768),D:[],u:new t(512),Q:[],r:new t(32768),s:new a(286),Y:new a(30),a:new a(19),t:new a(15e3),k:new t(65536),g:new t(32768)}),function(){for(var e=n.H.m,r=0;r<32768;r++){var t=r;t=(4278255360&(t=(4042322160&(t=(3435973836&(t=(2863311530&t)>>>1|(1431655765&t)<<1))>>>2|(858993459&t)<<2))>>>4|(252645135&t)<<4))>>>8|(16711935&t)<<8,e.r[r]=(t>>>16|t<<16)>>>17}function a(e,r,t){for(;0!=r--;)e.push(0,t)}for(r=0;r<32;r++)e.q[r]=e.S[r]<<3|e.T[r],e.c[r]=e.p[r]<<4|e.z[r];a(e._,144,8),a(e._,112,9),a(e._,24,7),a(e._,8,8),n.H.n(e._,9),n.H.A(e._,9,e.J),n.H.l(e._,9),a(e.$,32,5),n.H.n(e.$,5),n.H.A(e.$,5,e.h),n.H.l(e.$,5),a(e.Q,19,0),a(e.C,286,0),a(e.D,30,0),a(e.v,320,0)}(),n.H.N),i.decode._readInterlace=function(e,r){for(var t=r.width,a=r.height,n=i.decode._getBPP(r),f=n>>3,o=Math.ceil(t*n/8),s=new Uint8Array(a*o),l=0,d=[0,0,4,0,2,0,1],c=[0,4,0,2,0,1,0],h=[8,8,8,4,4,2,2],u=[8,8,4,4,2,2,1],v=0;v<7;){for(var p=h[v],g=u[v],w=0,y=0,b=d[v];b<a;)b+=p,y++;for(var m=c[v];m<t;)m+=g,w++;var _=Math.ceil(w*n/8);i.decode._filterZero(e,r,l,w,y);for(var H=0,U=d[v];U<a;){for(var A=c[v],R=l+H*_<<3;A<t;){var I;if(1==n)I=(I=e[R>>3])>>7-(7&R)&1,s[U*o+(A>>3)]|=I<<7-((7&A)<<0);if(2==n)I=(I=e[R>>3])>>6-(7&R)&3,s[U*o+(A>>2)]|=I<<6-((3&A)<<1);if(4==n)I=(I=e[R>>3])>>4-(7&R)&15,s[U*o+(A>>1)]|=I<<4-((1&A)<<2);if(n>=8)for(var T=U*o+A*f,x=0;x<f;x++)s[T+x]=e[(R>>3)+x];R+=n,A+=g}H++,U+=p}w*y!=0&&(l+=y*(1+_)),v+=1}return s},i.decode._getBPP=function(e){return[1,null,3,1,2,null,4][e.ctype]*e.depth},i.decode._filterZero=function(e,r,t,a,n){var f=i.decode._getBPP(r),o=Math.ceil(a*f/8),s=i.decode._paeth;f=Math.ceil(f/8);var l,d,c=e[t],h=0;if(c>1&&(e[t]=[0,0,1][c-2]),3==c)for(h=f;h<o;h++)e[h+1]=e[h+1]+(e[h+1-f]>>>1)&255;for(var u=0;u<n;u++)if(h=0,0==(c=e[(d=(l=t+u*o)+u+1)-1]))for(;h<o;h++)e[l+h]=e[d+h];else if(1==c){for(;h<f;h++)e[l+h]=e[d+h];for(;h<o;h++)e[l+h]=e[d+h]+e[l+h-f]}else if(2==c)for(;h<o;h++)e[l+h]=e[d+h]+e[l+h-o];else if(3==c){for(;h<f;h++)e[l+h]=e[d+h]+(e[l+h-o]>>>1);for(;h<o;h++)e[l+h]=e[d+h]+(e[l+h-o]+e[l+h-f]>>>1)}else{for(;h<f;h++)e[l+h]=e[d+h]+s(0,e[l+h-o],0);for(;h<o;h++)e[l+h]=e[d+h]+s(e[l+h-f],e[l+h-o],e[l+h-f-o])}return e},i.decode._paeth=function(e,r,t){var a=e+r-t,n=a-e,i=a-r,f=a-t;return n*n<=i*i&&n*n<=f*f?e:i*i<=f*f?r:t},i.decode._IHDR=function(e,r,t){var a=i._bin;t.width=a.readUint(e,r),r+=4,t.height=a.readUint(e,r),r+=4,t.depth=e[r],r++,t.ctype=e[r],r++,t.compress=e[r],r++,t.filter=e[r],r++,t.interlace=e[r],r++},i._bin={nextZero:function(e,r){for(;0!=e[r];)r++;return r},readUshort:function(e,r){return e[r]<<8|e[r+1]},writeUshort:function(e,r,t){e[r]=t>>8&255,e[r+1]=255&t},readUint:function(e,r){return 16777216*e[r]+(e[r+1]<<16|e[r+2]<<8|e[r+3])},writeUint:function(e,r,t){e[r]=t>>24&255,e[r+1]=t>>16&255,e[r+2]=t>>8&255,e[r+3]=255&t},readASCII:function(e,r,t){for(var a="",n=0;n<t;n++)a+=String.fromCharCode(e[r+n]);return a},writeASCII:function(e,r,t){for(var a=0;a<t.length;a++)e[r+a]=t.charCodeAt(a)},readBytes:function(e,r,t){for(var a=[],n=0;n<t;n++)a.push(e[r+n]);return a},pad:function(e){return e.length<2?"0"+e:e},readUTF8:function(e,r,t){for(var a,n="",f=0;f<t;f++)n+="%"+i._bin.pad(e[r+f].toString(16));try{a=decodeURIComponent(n)}catch(a){return i._bin.readASCII(e,r,t)}return a}},i._copyTile=function(e,r,t,a,n,i,f,o,s){for(var l=Math.min(r,n),d=Math.min(t,i),c=0,h=0,u=0;u<d;u++)for(var v=0;v<l;v++)if(f>=0&&o>=0?(c=u*r+v<<2,h=(o+u)*n+f+v<<2):(c=(-o+u)*r-f+v<<2,h=u*n+v<<2),0==s)a[h]=e[c],a[h+1]=e[c+1],a[h+2]=e[c+2],a[h+3]=e[c+3];else if(1==s){var p=e[c+3]*(1/255),g=e[c]*p,w=e[c+1]*p,y=e[c+2]*p,b=a[h+3]*(1/255),m=a[h]*b,_=a[h+1]*b,H=a[h+2]*b,U=1-p,A=p+b*U,R=0==A?0:1/A;a[h+3]=255*A,a[h+0]=(g+m*U)*R,a[h+1]=(w+_*U)*R,a[h+2]=(y+H*U)*R}else if(2==s){p=e[c+3],g=e[c],w=e[c+1],y=e[c+2],b=a[h+3],m=a[h],_=a[h+1],H=a[h+2];p==b&&g==m&&w==_&&y==H?(a[h]=0,a[h+1]=0,a[h+2]=0,a[h+3]=0):(a[h]=g,a[h+1]=w,a[h+2]=y,a[h+3]=p)}else if(3==s){p=e[c+3],g=e[c],w=e[c+1],y=e[c+2],b=a[h+3],m=a[h],_=a[h+1],H=a[h+2];if(p==b&&g==m&&w==_&&y==H)continue;if(p<220&&b>20)return!1}return!0},exports.RGBMLoader=r;
         | 
    
        package/loaders/RGBMLoader.js
    CHANGED
    
    | @@ -108,11 +108,7 @@ UPNG.toRGBA8 = function (out) { | |
| 108 108 | 
             
                if (frm.blend == 0) UPNG._copyTile(fdata, fw, fh, img, w, h, fx, fy, 0);else if (frm.blend == 1) UPNG._copyTile(fdata, fw, fh, img, w, h, fx, fy, 1);
         | 
| 109 109 | 
             
                frms.push(img.buffer.slice(0));
         | 
| 110 110 |  | 
| 111 | 
            -
                if (frm.dispose == 0) ; else if (frm.dispose == 1)  | 
| 112 | 
            -
                  UPNG._copyTile(empty, fw, fh, img, w, h, fx, fy, 0);
         | 
| 113 | 
            -
                } else if (frm.dispose == 2) {
         | 
| 114 | 
            -
                  for (var j = 0; j < len; j++) img[j] = prev[j];
         | 
| 115 | 
            -
                }
         | 
| 111 | 
            +
                if (frm.dispose == 0) ; else if (frm.dispose == 1) UPNG._copyTile(empty, fw, fh, img, w, h, fx, fy, 0);else if (frm.dispose == 2) for (var j = 0; j < len; j++) img[j] = prev[j];
         | 
| 116 112 | 
             
              }
         | 
| 117 113 |  | 
| 118 114 | 
             
              return frms;
         | 
| @@ -133,60 +129,43 @@ UPNG.toRGBA8.decodeImage = function (data, w, h, out) { | |
| 133 129 | 
             
              if (ctype == 6) {
         | 
| 134 130 | 
             
                // RGB + alpha
         | 
| 135 131 | 
             
                var qarea = area << 2;
         | 
| 136 | 
            -
             | 
| 137 | 
            -
             | 
| 138 | 
            -
                   | 
| 139 | 
            -
             | 
| 140 | 
            -
             | 
| 141 | 
            -
                    bf[i + 2] = data[i + 2];
         | 
| 142 | 
            -
                    bf[i + 3] = data[i + 3];
         | 
| 143 | 
            -
                  }
         | 
| 132 | 
            +
                if (depth == 8) for (var i = 0; i < qarea; i += 4) {
         | 
| 133 | 
            +
                  bf[i] = data[i];
         | 
| 134 | 
            +
                  bf[i + 1] = data[i + 1];
         | 
| 135 | 
            +
                  bf[i + 2] = data[i + 2];
         | 
| 136 | 
            +
                  bf[i + 3] = data[i + 3];
         | 
| 144 137 | 
             
                }
         | 
| 145 | 
            -
             | 
| 146 | 
            -
             | 
| 147 | 
            -
                  for (var i = 0; i < qarea; i++) {
         | 
| 148 | 
            -
                    bf[i] = data[i << 1];
         | 
| 149 | 
            -
                  }
         | 
| 138 | 
            +
                if (depth == 16) for (var i = 0; i < qarea; i++) {
         | 
| 139 | 
            +
                  bf[i] = data[i << 1];
         | 
| 150 140 | 
             
                }
         | 
| 151 141 | 
             
              } else if (ctype == 2) {
         | 
| 152 142 | 
             
                // RGB
         | 
| 153 143 | 
             
                var ts = out.tabs['tRNS'];
         | 
| 154 144 |  | 
| 155 145 | 
             
                if (ts == null) {
         | 
| 156 | 
            -
                  if (depth == 8) {
         | 
| 157 | 
            -
                     | 
| 158 | 
            -
             | 
| 159 | 
            -
                      bf32[i] = 255 << 24 | data[ti + 2] << 16 | data[ti + 1] << 8 | data[ti];
         | 
| 160 | 
            -
                    }
         | 
| 146 | 
            +
                  if (depth == 8) for (var i = 0; i < area; i++) {
         | 
| 147 | 
            +
                    var ti = i * 3;
         | 
| 148 | 
            +
                    bf32[i] = 255 << 24 | data[ti + 2] << 16 | data[ti + 1] << 8 | data[ti];
         | 
| 161 149 | 
             
                  }
         | 
| 162 | 
            -
             | 
| 163 | 
            -
             | 
| 164 | 
            -
                     | 
| 165 | 
            -
                      var ti = i * 6;
         | 
| 166 | 
            -
                      bf32[i] = 255 << 24 | data[ti + 4] << 16 | data[ti + 2] << 8 | data[ti];
         | 
| 167 | 
            -
                    }
         | 
| 150 | 
            +
                  if (depth == 16) for (var i = 0; i < area; i++) {
         | 
| 151 | 
            +
                    var ti = i * 6;
         | 
| 152 | 
            +
                    bf32[i] = 255 << 24 | data[ti + 4] << 16 | data[ti + 2] << 8 | data[ti];
         | 
| 168 153 | 
             
                  }
         | 
| 169 154 | 
             
                } else {
         | 
| 170 155 | 
             
                  var tr = ts[0],
         | 
| 171 156 | 
             
                      tg = ts[1],
         | 
| 172 157 | 
             
                      tb = ts[2];
         | 
| 173 | 
            -
             | 
| 174 | 
            -
             | 
| 175 | 
            -
             | 
| 176 | 
            -
             | 
| 177 | 
            -
             | 
| 178 | 
            -
                      bf32[i] = 255 << 24 | data[ti + 2] << 16 | data[ti + 1] << 8 | data[ti];
         | 
| 179 | 
            -
                      if (data[ti] == tr && data[ti + 1] == tg && data[ti + 2] == tb) bf[qi + 3] = 0;
         | 
| 180 | 
            -
                    }
         | 
| 158 | 
            +
                  if (depth == 8) for (var i = 0; i < area; i++) {
         | 
| 159 | 
            +
                    var qi = i << 2,
         | 
| 160 | 
            +
                        ti = i * 3;
         | 
| 161 | 
            +
                    bf32[i] = 255 << 24 | data[ti + 2] << 16 | data[ti + 1] << 8 | data[ti];
         | 
| 162 | 
            +
                    if (data[ti] == tr && data[ti + 1] == tg && data[ti + 2] == tb) bf[qi + 3] = 0;
         | 
| 181 163 | 
             
                  }
         | 
| 182 | 
            -
             | 
| 183 | 
            -
             | 
| 184 | 
            -
             | 
| 185 | 
            -
             | 
| 186 | 
            -
             | 
| 187 | 
            -
                      bf32[i] = 255 << 24 | data[ti + 4] << 16 | data[ti + 2] << 8 | data[ti];
         | 
| 188 | 
            -
                      if (rs(data, ti) == tr && rs(data, ti + 2) == tg && rs(data, ti + 4) == tb) bf[qi + 3] = 0;
         | 
| 189 | 
            -
                    }
         | 
| 164 | 
            +
                  if (depth == 16) for (var i = 0; i < area; i++) {
         | 
| 165 | 
            +
                    var qi = i << 2,
         | 
| 166 | 
            +
                        ti = i * 6;
         | 
| 167 | 
            +
                    bf32[i] = 255 << 24 | data[ti + 4] << 16 | data[ti + 2] << 8 | data[ti];
         | 
| 168 | 
            +
                    if (rs(data, ti) == tr && rs(data, ti + 2) == tg && rs(data, ti + 4) == tb) bf[qi + 3] = 0;
         | 
| 190 169 | 
             
                  }
         | 
| 191 170 | 
             
                }
         | 
| 192 171 | 
             
              } else if (ctype == 3) {
         | 
| @@ -195,61 +174,41 @@ UPNG.toRGBA8.decodeImage = function (data, w, h, out) { | |
| 195 174 | 
             
                    ap = out.tabs['tRNS'],
         | 
| 196 175 | 
             
                    tl = ap ? ap.length : 0; //console.log(p, ap);
         | 
| 197 176 |  | 
| 198 | 
            -
                if (depth == 1) {
         | 
| 199 | 
            -
                   | 
| 200 | 
            -
             | 
| 201 | 
            -
                        t0 = y * w;
         | 
| 202 | 
            -
             | 
| 203 | 
            -
                    for (var i = 0; i < w; i++) {
         | 
| 204 | 
            -
                      var qi = t0 + i << 2,
         | 
| 205 | 
            -
                          j = data[s0 + (i >> 3)] >> 7 - ((i & 7) << 0) & 1,
         | 
| 206 | 
            -
                          cj = 3 * j;
         | 
| 207 | 
            -
                      bf[qi] = p[cj];
         | 
| 208 | 
            -
                      bf[qi + 1] = p[cj + 1];
         | 
| 209 | 
            -
                      bf[qi + 2] = p[cj + 2];
         | 
| 210 | 
            -
                      bf[qi + 3] = j < tl ? ap[j] : 255;
         | 
| 211 | 
            -
                    }
         | 
| 212 | 
            -
                  }
         | 
| 213 | 
            -
                }
         | 
| 177 | 
            +
                if (depth == 1) for (var y = 0; y < h; y++) {
         | 
| 178 | 
            +
                  var s0 = y * bpl,
         | 
| 179 | 
            +
                      t0 = y * w;
         | 
| 214 180 |  | 
| 215 | 
            -
             | 
| 216 | 
            -
             | 
| 217 | 
            -
             | 
| 218 | 
            -
                         | 
| 219 | 
            -
             | 
| 220 | 
            -
                     | 
| 221 | 
            -
             | 
| 222 | 
            -
             | 
| 223 | 
            -
                          cj = 3 * j;
         | 
| 224 | 
            -
                      bf[qi] = p[cj];
         | 
| 225 | 
            -
                      bf[qi + 1] = p[cj + 1];
         | 
| 226 | 
            -
                      bf[qi + 2] = p[cj + 2];
         | 
| 227 | 
            -
                      bf[qi + 3] = j < tl ? ap[j] : 255;
         | 
| 228 | 
            -
                    }
         | 
| 181 | 
            +
                  for (var i = 0; i < w; i++) {
         | 
| 182 | 
            +
                    var qi = t0 + i << 2,
         | 
| 183 | 
            +
                        j = data[s0 + (i >> 3)] >> 7 - ((i & 7) << 0) & 1,
         | 
| 184 | 
            +
                        cj = 3 * j;
         | 
| 185 | 
            +
                    bf[qi] = p[cj];
         | 
| 186 | 
            +
                    bf[qi + 1] = p[cj + 1];
         | 
| 187 | 
            +
                    bf[qi + 2] = p[cj + 2];
         | 
| 188 | 
            +
                    bf[qi + 3] = j < tl ? ap[j] : 255;
         | 
| 229 189 | 
             
                  }
         | 
| 230 190 | 
             
                }
         | 
| 191 | 
            +
                if (depth == 2) for (var y = 0; y < h; y++) {
         | 
| 192 | 
            +
                  var s0 = y * bpl,
         | 
| 193 | 
            +
                      t0 = y * w;
         | 
| 231 194 |  | 
| 232 | 
            -
             | 
| 233 | 
            -
             | 
| 234 | 
            -
             | 
| 235 | 
            -
                         | 
| 236 | 
            -
             | 
| 237 | 
            -
                     | 
| 238 | 
            -
             | 
| 239 | 
            -
             | 
| 240 | 
            -
                          cj = 3 * j;
         | 
| 241 | 
            -
                      bf[qi] = p[cj];
         | 
| 242 | 
            -
                      bf[qi + 1] = p[cj + 1];
         | 
| 243 | 
            -
                      bf[qi + 2] = p[cj + 2];
         | 
| 244 | 
            -
                      bf[qi + 3] = j < tl ? ap[j] : 255;
         | 
| 245 | 
            -
                    }
         | 
| 195 | 
            +
                  for (var i = 0; i < w; i++) {
         | 
| 196 | 
            +
                    var qi = t0 + i << 2,
         | 
| 197 | 
            +
                        j = data[s0 + (i >> 2)] >> 6 - ((i & 3) << 1) & 3,
         | 
| 198 | 
            +
                        cj = 3 * j;
         | 
| 199 | 
            +
                    bf[qi] = p[cj];
         | 
| 200 | 
            +
                    bf[qi + 1] = p[cj + 1];
         | 
| 201 | 
            +
                    bf[qi + 2] = p[cj + 2];
         | 
| 202 | 
            +
                    bf[qi + 3] = j < tl ? ap[j] : 255;
         | 
| 246 203 | 
             
                  }
         | 
| 247 204 | 
             
                }
         | 
| 205 | 
            +
                if (depth == 4) for (var y = 0; y < h; y++) {
         | 
| 206 | 
            +
                  var s0 = y * bpl,
         | 
| 207 | 
            +
                      t0 = y * w;
         | 
| 248 208 |  | 
| 249 | 
            -
             | 
| 250 | 
            -
             | 
| 251 | 
            -
             | 
| 252 | 
            -
                        j = data[i],
         | 
| 209 | 
            +
                  for (var i = 0; i < w; i++) {
         | 
| 210 | 
            +
                    var qi = t0 + i << 2,
         | 
| 211 | 
            +
                        j = data[s0 + (i >> 1)] >> 4 - ((i & 1) << 2) & 15,
         | 
| 253 212 | 
             
                        cj = 3 * j;
         | 
| 254 213 | 
             
                    bf[qi] = p[cj];
         | 
| 255 214 | 
             
                    bf[qi + 1] = p[cj + 1];
         | 
| @@ -257,30 +216,34 @@ UPNG.toRGBA8.decodeImage = function (data, w, h, out) { | |
| 257 216 | 
             
                    bf[qi + 3] = j < tl ? ap[j] : 255;
         | 
| 258 217 | 
             
                  }
         | 
| 259 218 | 
             
                }
         | 
| 219 | 
            +
                if (depth == 8) for (var i = 0; i < area; i++) {
         | 
| 220 | 
            +
                  var qi = i << 2,
         | 
| 221 | 
            +
                      j = data[i],
         | 
| 222 | 
            +
                      cj = 3 * j;
         | 
| 223 | 
            +
                  bf[qi] = p[cj];
         | 
| 224 | 
            +
                  bf[qi + 1] = p[cj + 1];
         | 
| 225 | 
            +
                  bf[qi + 2] = p[cj + 2];
         | 
| 226 | 
            +
                  bf[qi + 3] = j < tl ? ap[j] : 255;
         | 
| 227 | 
            +
                }
         | 
| 260 228 | 
             
              } else if (ctype == 4) {
         | 
| 261 229 | 
             
                // gray + alpha
         | 
| 262 | 
            -
                if (depth == 8) {
         | 
| 263 | 
            -
                   | 
| 264 | 
            -
             | 
| 265 | 
            -
             | 
| 266 | 
            -
             | 
| 267 | 
            -
             | 
| 268 | 
            -
             | 
| 269 | 
            -
             | 
| 270 | 
            -
                    bf[qi + 3] = data[di + 1];
         | 
| 271 | 
            -
                  }
         | 
| 230 | 
            +
                if (depth == 8) for (var i = 0; i < area; i++) {
         | 
| 231 | 
            +
                  var qi = i << 2,
         | 
| 232 | 
            +
                      di = i << 1,
         | 
| 233 | 
            +
                      gr = data[di];
         | 
| 234 | 
            +
                  bf[qi] = gr;
         | 
| 235 | 
            +
                  bf[qi + 1] = gr;
         | 
| 236 | 
            +
                  bf[qi + 2] = gr;
         | 
| 237 | 
            +
                  bf[qi + 3] = data[di + 1];
         | 
| 272 238 | 
             
                }
         | 
| 273 | 
            -
             | 
| 274 | 
            -
             | 
| 275 | 
            -
             | 
| 276 | 
            -
             | 
| 277 | 
            -
             | 
| 278 | 
            -
             | 
| 279 | 
            -
             | 
| 280 | 
            -
             | 
| 281 | 
            -
                    bf[qi + 2] = gr;
         | 
| 282 | 
            -
                    bf[qi + 3] = data[di + 2];
         | 
| 283 | 
            -
                  }
         | 
| 239 | 
            +
                if (depth == 16) for (var i = 0; i < area; i++) {
         | 
| 240 | 
            +
                  var qi = i << 2,
         | 
| 241 | 
            +
                      di = i << 2,
         | 
| 242 | 
            +
                      gr = data[di];
         | 
| 243 | 
            +
                  bf[qi] = gr;
         | 
| 244 | 
            +
                  bf[qi + 1] = gr;
         | 
| 245 | 
            +
                  bf[qi + 2] = gr;
         | 
| 246 | 
            +
                  bf[qi + 3] = data[di + 2];
         | 
| 284 247 | 
             
                }
         | 
| 285 248 | 
             
              } else if (ctype == 0) {
         | 
| 286 249 | 
             
                // gray
         | 
| @@ -289,37 +252,26 @@ UPNG.toRGBA8.decodeImage = function (data, w, h, out) { | |
| 289 252 | 
             
                for (var y = 0; y < h; y++) {
         | 
| 290 253 | 
             
                  var off = y * bpl,
         | 
| 291 254 | 
             
                      to = y * w;
         | 
| 292 | 
            -
             | 
| 293 | 
            -
             | 
| 294 | 
            -
             | 
| 295 | 
            -
             | 
| 296 | 
            -
             | 
| 297 | 
            -
             | 
| 298 | 
            -
             | 
| 299 | 
            -
             | 
| 300 | 
            -
             | 
| 301 | 
            -
             | 
| 302 | 
            -
             | 
| 303 | 
            -
             | 
| 304 | 
            -
             | 
| 305 | 
            -
             | 
| 306 | 
            -
             | 
| 307 | 
            -
             | 
| 308 | 
            -
             | 
| 309 | 
            -
             | 
| 310 | 
            -
             | 
| 311 | 
            -
             | 
| 312 | 
            -
                    for (var x = 0; x < w; x++) {
         | 
| 313 | 
            -
                      var gr = data[off + x],
         | 
| 314 | 
            -
                          al = gr == tr ? 0 : 255;
         | 
| 315 | 
            -
                      bf32[to + x] = al << 24 | gr << 16 | gr << 8 | gr;
         | 
| 316 | 
            -
                    }
         | 
| 317 | 
            -
                  } else if (depth == 16) {
         | 
| 318 | 
            -
                    for (var x = 0; x < w; x++) {
         | 
| 319 | 
            -
                      var gr = data[off + (x << 1)],
         | 
| 320 | 
            -
                          al = rs(data, off + (x << i)) == tr ? 0 : 255;
         | 
| 321 | 
            -
                      bf32[to + x] = al << 24 | gr << 16 | gr << 8 | gr;
         | 
| 322 | 
            -
                    }
         | 
| 255 | 
            +
                  if (depth == 1) for (var x = 0; x < w; x++) {
         | 
| 256 | 
            +
                    var gr = 255 * (data[off + (x >>> 3)] >>> 7 - (x & 7) & 1),
         | 
| 257 | 
            +
                        al = gr == tr * 255 ? 0 : 255;
         | 
| 258 | 
            +
                    bf32[to + x] = al << 24 | gr << 16 | gr << 8 | gr;
         | 
| 259 | 
            +
                  } else if (depth == 2) for (var x = 0; x < w; x++) {
         | 
| 260 | 
            +
                    var gr = 85 * (data[off + (x >>> 2)] >>> 6 - ((x & 3) << 1) & 3),
         | 
| 261 | 
            +
                        al = gr == tr * 85 ? 0 : 255;
         | 
| 262 | 
            +
                    bf32[to + x] = al << 24 | gr << 16 | gr << 8 | gr;
         | 
| 263 | 
            +
                  } else if (depth == 4) for (var x = 0; x < w; x++) {
         | 
| 264 | 
            +
                    var gr = 17 * (data[off + (x >>> 1)] >>> 4 - ((x & 1) << 2) & 15),
         | 
| 265 | 
            +
                        al = gr == tr * 17 ? 0 : 255;
         | 
| 266 | 
            +
                    bf32[to + x] = al << 24 | gr << 16 | gr << 8 | gr;
         | 
| 267 | 
            +
                  } else if (depth == 8) for (var x = 0; x < w; x++) {
         | 
| 268 | 
            +
                    var gr = data[off + x],
         | 
| 269 | 
            +
                        al = gr == tr ? 0 : 255;
         | 
| 270 | 
            +
                    bf32[to + x] = al << 24 | gr << 16 | gr << 8 | gr;
         | 
| 271 | 
            +
                  } else if (depth == 16) for (var x = 0; x < w; x++) {
         | 
| 272 | 
            +
                    var gr = data[off + (x << 1)],
         | 
| 273 | 
            +
                        al = rs(data, off + (x << 1)) == tr ? 0 : 255;
         | 
| 274 | 
            +
                    bf32[to + x] = al << 24 | gr << 16 | gr << 8 | gr;
         | 
| 323 275 | 
             
                  }
         | 
| 324 276 | 
             
                }
         | 
| 325 277 | 
             
              } //console.log(Date.now()-time);
         | 
| @@ -407,15 +359,11 @@ UPNG.decode = function (buff) { | |
| 407 359 | 
             
                  var keyw = bin.readASCII(data, offset, nz - offset);
         | 
| 408 360 | 
             
                  var text,
         | 
| 409 361 | 
             
                      tl = offset + len - nz - 1;
         | 
| 410 | 
            -
             | 
| 411 | 
            -
                  if (type == 'tEXt') {
         | 
| 412 | 
            -
                    text = bin.readASCII(data, nz + 1, tl);
         | 
| 413 | 
            -
                  } else {
         | 
| 362 | 
            +
                  if (type == 'tEXt') text = bin.readASCII(data, nz + 1, tl);else {
         | 
| 414 363 | 
             
                    var bfr = UPNG.decode._inflate(data.slice(nz + 2, nz + 2 + tl));
         | 
| 415 364 |  | 
| 416 365 | 
             
                    text = bin.readUTF8(bfr, 0, bfr.length);
         | 
| 417 366 | 
             
                  }
         | 
| 418 | 
            -
             | 
| 419 367 | 
             
                  out.tabs[type][keyw] = text;
         | 
| 420 368 | 
             
                } else if (type == 'iTXt') {
         | 
| 421 369 | 
             
                  if (out.tabs[type] == null) out.tabs[type] = {};
         | 
| @@ -434,15 +382,11 @@ UPNG.decode = function (buff) { | |
| 434 382 | 
             
                  off = nz + 1;
         | 
| 435 383 | 
             
                  var text,
         | 
| 436 384 | 
             
                      tl = len - (off - offset);
         | 
| 437 | 
            -
             | 
| 438 | 
            -
                  if (cflag == 0) {
         | 
| 439 | 
            -
                    text = bin.readUTF8(data, off, tl);
         | 
| 440 | 
            -
                  } else {
         | 
| 385 | 
            +
                  if (cflag == 0) text = bin.readUTF8(data, off, tl);else {
         | 
| 441 386 | 
             
                    var bfr = UPNG.decode._inflate(data.slice(off, off + tl));
         | 
| 442 387 |  | 
| 443 388 | 
             
                    text = bin.readUTF8(bfr, 0, bfr.length);
         | 
| 444 389 | 
             
                  }
         | 
| 445 | 
            -
             | 
| 446 390 | 
             
                  out.tabs[type][keyw] = text;
         | 
| 447 391 | 
             
                } else if (type == 'PLTE') {
         | 
| 448 392 | 
             
                  out.tabs[type] = bin.readBytes(data, offset, len);
         | 
| @@ -453,21 +397,11 @@ UPNG.decode = function (buff) { | |
| 453 397 | 
             
                  for (var i = 0; i < pl; i++) out.tabs[type].push(rUs(data, offset + i * 2));
         | 
| 454 398 | 
             
                } else if (type == 'tRNS') {
         | 
| 455 399 | 
             
                  if (out.ctype == 3) out.tabs[type] = bin.readBytes(data, offset, len);else if (out.ctype == 0) out.tabs[type] = rUs(data, offset);else if (out.ctype == 2) out.tabs[type] = [rUs(data, offset), rUs(data, offset + 2), rUs(data, offset + 4)]; //else console.log("tRNS for unsupported color type",out.ctype, len);
         | 
| 456 | 
            -
                } else if (type == 'gAMA') {
         | 
| 457 | 
            -
                  out.tabs[type] =  | 
| 458 | 
            -
                } else if (type == 'sRGB') {
         | 
| 459 | 
            -
                  out.tabs[type] = data[offset];
         | 
| 460 | 
            -
                } else if (type == 'bKGD') {
         | 
| 461 | 
            -
                  if (out.ctype == 0 || out.ctype == 4) {
         | 
| 462 | 
            -
                    out.tabs[type] = [rUs(data, offset)];
         | 
| 463 | 
            -
                  } else if (out.ctype == 2 || out.ctype == 6) {
         | 
| 464 | 
            -
                    out.tabs[type] = [rUs(data, offset), rUs(data, offset + 2), rUs(data, offset + 4)];
         | 
| 465 | 
            -
                  } else if (out.ctype == 3) {
         | 
| 466 | 
            -
                    out.tabs[type] = data[offset];
         | 
| 467 | 
            -
                  }
         | 
| 400 | 
            +
                } else if (type == 'gAMA') out.tabs[type] = bin.readUint(data, offset) / 100000;else if (type == 'sRGB') out.tabs[type] = data[offset];else if (type == 'bKGD') {
         | 
| 401 | 
            +
                  if (out.ctype == 0 || out.ctype == 4) out.tabs[type] = [rUs(data, offset)];else if (out.ctype == 2 || out.ctype == 6) out.tabs[type] = [rUs(data, offset), rUs(data, offset + 2), rUs(data, offset + 4)];else if (out.ctype == 3) out.tabs[type] = data[offset];
         | 
| 468 402 | 
             
                } else if (type == 'IEND') {
         | 
| 469 403 | 
             
                  break;
         | 
| 470 | 
            -
                } //else {  log("unknown chunk type", type, len);  }
         | 
| 404 | 
            +
                } //else {  console.log("unknown chunk type", type, len);  out.tabs[type]=data.slice(offset,offset+len);  }
         | 
| 471 405 |  | 
| 472 406 |  | 
| 473 407 | 
             
                offset += len;
         | 
| @@ -478,7 +412,6 @@ UPNG.decode = function (buff) { | |
| 478 412 | 
             
              if (foff != 0) {
         | 
| 479 413 | 
             
                var fr = out.frames[out.frames.length - 1];
         | 
| 480 414 | 
             
                fr.data = UPNG.decode._decompress(out, fd.slice(0, foff), fr.rect.width, fr.rect.height);
         | 
| 481 | 
            -
                foff = 0;
         | 
| 482 415 | 
             
              }
         | 
| 483 416 |  | 
| 484 417 | 
             
              out.data = UPNG.decode._decompress(out, dd, out.width, out.height);
         | 
| @@ -740,20 +673,18 @@ UPNG.inflateRaw = function () { | |
| 740 673 | 
             
                    n = H.H.m,
         | 
| 741 674 | 
             
                    A = n.r;
         | 
| 742 675 |  | 
| 743 | 
            -
                for (var l = 0; l < V; l += 2) {
         | 
| 744 | 
            -
                   | 
| 745 | 
            -
             | 
| 746 | 
            -
             | 
| 747 | 
            -
             | 
| 748 | 
            -
             | 
| 749 | 
            -
             | 
| 750 | 
            -
             | 
| 751 | 
            -
             | 
| 752 | 
            -
                     | 
| 753 | 
            -
             | 
| 754 | 
            -
             | 
| 755 | 
            -
                      Z++;
         | 
| 756 | 
            -
                    }
         | 
| 676 | 
            +
                for (var l = 0; l < V; l += 2) if (N[l + 1] != 0) {
         | 
| 677 | 
            +
                  var M = l >> 1,
         | 
| 678 | 
            +
                      I = N[l + 1],
         | 
| 679 | 
            +
                      e = M << 4 | I,
         | 
| 680 | 
            +
                      b = W - I,
         | 
| 681 | 
            +
                      Z = N[l] << b,
         | 
| 682 | 
            +
                      m = Z + (1 << b);
         | 
| 683 | 
            +
             | 
| 684 | 
            +
                  while (Z != m) {
         | 
| 685 | 
            +
                    var J = A[Z] >>> 15 - W;
         | 
| 686 | 
            +
                    R[J] = e;
         | 
| 687 | 
            +
                    Z++;
         | 
| 757 688 | 
             
                  }
         | 
| 758 689 | 
             
                }
         | 
| 759 690 | 
             
              };
         | 
| @@ -972,8 +903,8 @@ UPNG.decode._filterZero = function (data, out, off, w, h) { | |
| 972 903 | 
             
                  paeth = UPNG.decode._paeth;
         | 
| 973 904 |  | 
| 974 905 | 
             
              bpp = Math.ceil(bpp / 8);
         | 
| 975 | 
            -
              var i | 
| 976 | 
            -
                  di | 
| 906 | 
            +
              var i,
         | 
| 907 | 
            +
                  di,
         | 
| 977 908 | 
             
                  type = data[off],
         | 
| 978 909 | 
             
                  x = 0;
         | 
| 979 910 | 
             
              if (type > 1) data[off] = [0, 0, 1][type - 2];
         | 
| @@ -984,10 +915,7 @@ UPNG.decode._filterZero = function (data, out, off, w, h) { | |
| 984 915 | 
             
                di = i + y + 1;
         | 
| 985 916 | 
             
                type = data[di - 1];
         | 
| 986 917 | 
             
                x = 0;
         | 
| 987 | 
            -
             | 
| 988 | 
            -
                if (type == 0) {
         | 
| 989 | 
            -
                  for (; x < bpl; x++) data[i + x] = data[di + x];
         | 
| 990 | 
            -
                } else if (type == 1) {
         | 
| 918 | 
            +
                if (type == 0) for (; x < bpl; x++) data[i + x] = data[di + x];else if (type == 1) {
         | 
| 991 919 | 
             
                  for (; x < bpp; x++) data[i + x] = data[di + x];
         | 
| 992 920 |  | 
| 993 921 | 
             
                  for (; x < bpl; x++) data[i + x] = data[di + x] + data[i + x - bpp];
         | 
| @@ -1000,9 +928,7 @@ UPNG.decode._filterZero = function (data, out, off, w, h) { | |
| 1000 928 | 
             
                } else {
         | 
| 1001 929 | 
             
                  for (; x < bpp; x++) data[i + x] = data[di + x] + paeth(0, data[i + x - bpl], 0);
         | 
| 1002 930 |  | 
| 1003 | 
            -
                  for (; x < bpl; x++)  | 
| 1004 | 
            -
                    data[i + x] = data[di + x] + paeth(data[i + x - bpp], data[i + x - bpl], data[i + x - bpp - bpl]);
         | 
| 1005 | 
            -
                  }
         | 
| 931 | 
            +
                  for (; x < bpl; x++) data[i + x] = data[di + x] + paeth(data[i + x - bpp], data[i + x - bpl], data[i + x - bpp - bpl]);
         | 
| 1006 932 | 
             
                }
         | 
| 1007 933 | 
             
              }
         | 
| 1008 934 |  | 
| @@ -1100,73 +1026,71 @@ UPNG._copyTile = function (sb, sw, sh, tb, tw, th, xoff, yoff, mode) { | |
| 1100 1026 | 
             
              var si = 0,
         | 
| 1101 1027 | 
             
                  ti = 0;
         | 
| 1102 1028 |  | 
| 1103 | 
            -
              for (var y = 0; y < h; y++) {
         | 
| 1104 | 
            -
                 | 
| 1105 | 
            -
                   | 
| 1106 | 
            -
             | 
| 1107 | 
            -
             | 
| 1108 | 
            -
                   | 
| 1109 | 
            -
             | 
| 1110 | 
            -
             | 
| 1111 | 
            -
                  }
         | 
| 1029 | 
            +
              for (var y = 0; y < h; y++) for (var x = 0; x < w; x++) {
         | 
| 1030 | 
            +
                if (xoff >= 0 && yoff >= 0) {
         | 
| 1031 | 
            +
                  si = y * sw + x << 2;
         | 
| 1032 | 
            +
                  ti = (yoff + y) * tw + xoff + x << 2;
         | 
| 1033 | 
            +
                } else {
         | 
| 1034 | 
            +
                  si = (-yoff + y) * sw - xoff + x << 2;
         | 
| 1035 | 
            +
                  ti = y * tw + x << 2;
         | 
| 1036 | 
            +
                }
         | 
| 1112 1037 |  | 
| 1113 | 
            -
             | 
| 1114 | 
            -
             | 
| 1115 | 
            -
             | 
| 1116 | 
            -
             | 
| 1117 | 
            -
             | 
| 1118 | 
            -
             | 
| 1119 | 
            -
             | 
| 1120 | 
            -
             | 
| 1121 | 
            -
             | 
| 1122 | 
            -
             | 
| 1123 | 
            -
             | 
| 1124 | 
            -
             | 
| 1125 | 
            -
             | 
| 1126 | 
            -
             | 
| 1127 | 
            -
             | 
| 1128 | 
            -
             | 
| 1129 | 
            -
             | 
| 1130 | 
            -
             | 
| 1131 | 
            -
             | 
| 1132 | 
            -
             | 
| 1133 | 
            -
             | 
| 1134 | 
            -
             | 
| 1135 | 
            -
             | 
| 1136 | 
            -
             | 
| 1137 | 
            -
             | 
| 1138 | 
            -
             | 
| 1139 | 
            -
             | 
| 1140 | 
            -
             | 
| 1141 | 
            -
             | 
| 1142 | 
            -
             | 
| 1143 | 
            -
             | 
| 1144 | 
            -
             | 
| 1145 | 
            -
             | 
| 1146 | 
            -
             | 
| 1147 | 
            -
             | 
| 1148 | 
            -
             | 
| 1149 | 
            -
             | 
| 1150 | 
            -
             | 
| 1151 | 
            -
             | 
| 1152 | 
            -
             | 
| 1153 | 
            -
             | 
| 1154 | 
            -
             | 
| 1155 | 
            -
                    }
         | 
| 1156 | 
            -
                  } else if (mode == 3) {
         | 
| 1157 | 
            -
                    // check if can be blended
         | 
| 1158 | 
            -
                    var fa = sb[si + 3],
         | 
| 1159 | 
            -
                        fr = sb[si],
         | 
| 1160 | 
            -
                        fg = sb[si + 1],
         | 
| 1161 | 
            -
                        fb = sb[si + 2];
         | 
| 1162 | 
            -
                    var ba = tb[ti + 3],
         | 
| 1163 | 
            -
                        br = tb[ti],
         | 
| 1164 | 
            -
                        bg = tb[ti + 1],
         | 
| 1165 | 
            -
                        bb = tb[ti + 2];
         | 
| 1166 | 
            -
                    if (fa == ba && fr == br && fg == bg && fb == bb) continue; //if(fa!=255 && ba!=0) return false;
         | 
| 1167 | 
            -
             | 
| 1168 | 
            -
                    if (fa < 220 && ba > 20) return false;
         | 
| 1038 | 
            +
                if (mode == 0) {
         | 
| 1039 | 
            +
                  tb[ti] = sb[si];
         | 
| 1040 | 
            +
                  tb[ti + 1] = sb[si + 1];
         | 
| 1041 | 
            +
                  tb[ti + 2] = sb[si + 2];
         | 
| 1042 | 
            +
                  tb[ti + 3] = sb[si + 3];
         | 
| 1043 | 
            +
                } else if (mode == 1) {
         | 
| 1044 | 
            +
                  var fa = sb[si + 3] * (1 / 255),
         | 
| 1045 | 
            +
                      fr = sb[si] * fa,
         | 
| 1046 | 
            +
                      fg = sb[si + 1] * fa,
         | 
| 1047 | 
            +
                      fb = sb[si + 2] * fa;
         | 
| 1048 | 
            +
                  var ba = tb[ti + 3] * (1 / 255),
         | 
| 1049 | 
            +
                      br = tb[ti] * ba,
         | 
| 1050 | 
            +
                      bg = tb[ti + 1] * ba,
         | 
| 1051 | 
            +
                      bb = tb[ti + 2] * ba;
         | 
| 1052 | 
            +
                  var ifa = 1 - fa,
         | 
| 1053 | 
            +
                      oa = fa + ba * ifa,
         | 
| 1054 | 
            +
                      ioa = oa == 0 ? 0 : 1 / oa;
         | 
| 1055 | 
            +
                  tb[ti + 3] = 255 * oa;
         | 
| 1056 | 
            +
                  tb[ti + 0] = (fr + br * ifa) * ioa;
         | 
| 1057 | 
            +
                  tb[ti + 1] = (fg + bg * ifa) * ioa;
         | 
| 1058 | 
            +
                  tb[ti + 2] = (fb + bb * ifa) * ioa;
         | 
| 1059 | 
            +
                } else if (mode == 2) {
         | 
| 1060 | 
            +
                  // copy only differences, otherwise zero
         | 
| 1061 | 
            +
                  var fa = sb[si + 3],
         | 
| 1062 | 
            +
                      fr = sb[si],
         | 
| 1063 | 
            +
                      fg = sb[si + 1],
         | 
| 1064 | 
            +
                      fb = sb[si + 2];
         | 
| 1065 | 
            +
                  var ba = tb[ti + 3],
         | 
| 1066 | 
            +
                      br = tb[ti],
         | 
| 1067 | 
            +
                      bg = tb[ti + 1],
         | 
| 1068 | 
            +
                      bb = tb[ti + 2];
         | 
| 1069 | 
            +
             | 
| 1070 | 
            +
                  if (fa == ba && fr == br && fg == bg && fb == bb) {
         | 
| 1071 | 
            +
                    tb[ti] = 0;
         | 
| 1072 | 
            +
                    tb[ti + 1] = 0;
         | 
| 1073 | 
            +
                    tb[ti + 2] = 0;
         | 
| 1074 | 
            +
                    tb[ti + 3] = 0;
         | 
| 1075 | 
            +
                  } else {
         | 
| 1076 | 
            +
                    tb[ti] = fr;
         | 
| 1077 | 
            +
                    tb[ti + 1] = fg;
         | 
| 1078 | 
            +
                    tb[ti + 2] = fb;
         | 
| 1079 | 
            +
                    tb[ti + 3] = fa;
         | 
| 1169 1080 | 
             
                  }
         | 
| 1081 | 
            +
                } else if (mode == 3) {
         | 
| 1082 | 
            +
                  // check if can be blended
         | 
| 1083 | 
            +
                  var fa = sb[si + 3],
         | 
| 1084 | 
            +
                      fr = sb[si],
         | 
| 1085 | 
            +
                      fg = sb[si + 1],
         | 
| 1086 | 
            +
                      fb = sb[si + 2];
         | 
| 1087 | 
            +
                  var ba = tb[ti + 3],
         | 
| 1088 | 
            +
                      br = tb[ti],
         | 
| 1089 | 
            +
                      bg = tb[ti + 1],
         | 
| 1090 | 
            +
                      bb = tb[ti + 2];
         | 
| 1091 | 
            +
                  if (fa == ba && fr == br && fg == bg && fb == bb) continue; //if(fa!=255 && ba!=0) return false;
         | 
| 1092 | 
            +
             | 
| 1093 | 
            +
                  if (fa < 220 && ba > 20) return false;
         | 
| 1170 1094 | 
             
                }
         | 
| 1171 1095 | 
             
              }
         | 
| 1172 1096 |  |