memoscan
← all memos

Memo 0xfa71589a…03185a on Ethereum

rr(r){return r=parseInt(r),[(r>>16&255)/255,(r>>8&255)/255,(r&255)/255]}function Je(r){return r===void 0?[0,0,0]:arguments.length===3?arguments:isNaN(r)?r[0]==="#"?Ke(r):Xe[r.toLowerCase()]?Ke(Xe[r.toLowerCase()]):[0,0,0]:rr(r)}class E extends Array{constructor(e){return Array.isArray(e)?super(...e):super(...Je(...arguments))}get r(){return this[0]}get g(){return this[1]}get b(){return this[2]}set r(e){this[0]=e}set g(e){this[1]=e}set b(e){this[2]=e}set(e){return Array.isArray(e)?this.copy(e):this.copy(Je(...arguments))}copy(e){return this[0]=e[0],this[1]=e[1],this[2]=e[2],this}}function ar(r,e){return r[0]=e[0],r[1]=e[1],r}function nr(r,e,t){return r[0]=e,r[1]=t,r}class F extends Array{constructor(e=0,t=e){return super(e,t),this}get x(){return this[0]}get y(){return this[1]}set x(e){this[0]=e}set y(e){this[1]=e}set(e,t=e){return e.length?this.copy(e):(nr(this,e,t),this)}copy(e){return ar(this,e),this}}class Ve extends be{constructor(e,{width:t=1,height:s=1,widthSegments:i=1,heightSegments:n=1,attributes:l={}}={}){const o=i,h=n,d=(o+1)*(h+1),u=o*h*6,f=new Float32Array(d*3),g=new Float32Array(d*3),_=new Float32Array(d*2),m=u>65536?new Uint32Array(u):new Uint16Array(u);Ve.buildPlane(f,g,_,m,t,s,0,o,h),Object.assign(l,{position:{size:3,data:f},normal:{size:3,data:g},uv:{size:2,data:_},index:{data:m}}),super(e,l)}static buildPlane(e,t,s,i,n,l,o,h,d,u=0,f=1,g=2,_=1,m=-1,p=0,w=0){const v=p,x=n/h,y=l/d;for(let M=0;M<=d;M++){let k=M*y-l/2;for(let S=0;S<=h;S++,p++){let U=S*x-n/2;if(e[p*3+u]=U*_,e[p*3+f]=k*m,e[p*3+g]=o/2,t[p*3+u]=0,t[p*3+f]=0,t[p*3+g]=o>=0?1:-1,s[p*2]=S/h,s[p*2+1]=1-M/d,M===d||S===h)continue;let C=v+S+M*(h+1),L=v+S+(M+1)*(h+1),D=v+S+(M+1)*(h+1)+1,A=v+S+M*(h+1)+1;i[w*6]=C,i[w*6+1]=L,i[w*6+2]=A,i[w*6+3]=L,i[w*6+4]=D,i[w*6+5]=A,w++}}}}class or extends be{constructor(e,{attributes:t={}}={}){Object.assign(t,{position:{size:2,data:new Float32Array([-1,-1,3,-1,-1,3])},uv:{size:2,data:new Float32Array([0,0,2,0,0,2])}}),super(e,t)}}class lr{constructor(e,{width:t,height:s,dpr:i,wrapS:n=e.CLAMP_TO_EDGE,wrapT:l=e.CLAMP_TO_EDGE,minFilter:o=e.LINEAR,magFilter:h=e.LINEAR,geometry:d=new or(e),targetOnly:u=null}={}){this.gl=e,this.options={wrapS:n,wrapT:l,minFilter:o,magFilter:h},this.passes=[],this.geometry=d,this.uniform={value:null},this.targetOnly=u;const f=this.fbo={read:null,write:null,swap:()=>{let g=f.read;f.read=f.write,f.write=g}};this.resize({width:t,height:s,dpr:i})}addPass({vertex:e="",fragment:t="",uniforms:s={},textureUniform:i="tMap",enabled:n=!0}={}){s[i]={value:this.fbo.read.texture};const l=new ae(this.gl,{vertex:e,fragment:t,uniforms:s}),h={mesh:new Le(this.gl,{geometry:this.geometry,program:l}),program:l,uniforms:s,enabled:n,textureUniform:i};return this.passes.push(h),h}resize({width:e,height:t,dpr:s}={}){s&&(this.dpr=s),e&&(this.width=e,this.height=t||e),s=this.dpr||this.gl.renderer.dpr,e=Math.floor((this.width||this.gl.renderer.width)*s),t=Math.floor((this.height||this.gl.renderer.height)*s),this.options.width=e,this.options.height=t,this.fbo.read=new Ie(this.gl,this.options),this.fbo.write=new Ie(this.gl,this.options)}render({scene:e,camera:t,texture:s,target:i=null,update:n=!0,sort:l=!0,frustumCull:o=!0,beforePostCallbacks:h}){const d=this.passes.filter(u=>u.enabled);s||(this.gl.renderer.render({scene:e,camera:t,target:d.length||!i&&this.targetOnly?this.fbo.write:i,update:n,sort:l,frustumCull:o}),this.fbo.swap(),h&&h.forEach(u=>u&&u())),d.forEach((u,f)=>{u.mesh.program.uniforms[u.textureUniform].value=!f&&s?s:this.fbo.read.texture,this.gl.renderer.render({scene:u.mesh,target:f===d.length-1&&(i||!this.targetOnly)?i:this.fbo.write,clear:!0}),this.fbo.swap()}),this.uniform.value=this.fbo.read.texture}}var hr="_m4 bmx(_f b){return _m4(1,0,0,0,0,1,0,0,0,0,1,0,b,b,b,1);}_v3 brn(_v3 c,_f v){return c+v;}",ur="_m4 contrastMatrix(_f contrast){_f t=(1.0-contrast)/2.0;return _m4(contrast,0,0,0,0,contrast,0,0,0,0,contrast,0,t,t,t,1);}_v3 contrast(_v3 color,_f value){return 0.5+value*(color-0.5);}",dr="_v3 hueshift(_v3 color,_f hue){const _v3 k=_v3(0.57735,0.57735,0.57735);_f cosAngle=cos(hue);return _v3(color*cosAngle+cross(k,color)*sin(hue)+k*dot(k,color)*(1.0-cosAngle));}_v3 hueshift2(_v3 color,_f shift){_v3 P=_v3(0.55735)*dot(_v3(0.55735),color);_v3 U=color-P;_v3 V=cross(_v3(0.55735),U);color=U*cos(shift*6.2832)+V*sin(shift*6.2832)+P;return color;}",cr="_v3 saturation(_v3 rgb,_f adjustment){const _v3 W=_v3(0.2125,0.7154,0.0721);_v3 intensity=_v3(dot(rgb,W));return mix(intensity,rgb,adjustment);}_v3 saturation2(_v3 rgb,_f adjustment){const _v3 W=_v3(0.2125,0.7154,0.0721);_v3 intensity=_v3(dot(rgb,W));return mix(rgb,intensity,adjustment);}",fr="vec3 blAverage(vec3 base,vec3 bl){return(base+bl)/2.0;}vec3 blAverage(vec3 base,vec3 bl,float opacity){return(blAverage(base,bl)*opacity+base*(1.0-opacity));}_v3 blmd(_i mode,_v3 base,_v3 bl,_f opacity){if(mode==2){return blAverage(base,bl,opacity);}}_v3 blendMode(_i mode,_v3 base,_v3 bl,_f opacity){return blmd(mode,base,bl,opacity);}",gr="_v4 sharpen(in _s2 tex,in _v2 coords,in _v2 renderSize){_f dx=1.0/renderSize.x;_f dy=1.0/renderSize.y;_v4 sum=_v4(0.0);sum+=-1.*_t(tex,coords+_v2(-1.0*dx,0.0*dy));sum+=-1.*_t(tex,coords+_v2(0.0*dx,-1.0*dy));sum+=5.*_t(tex,coords+_v2(0.0*dx,0.0*dy));sum+=-1.*_t(tex,coords+_v2(0.0*dx,1.0*dy));sum+=-1.*_t(tex,coords+_v2(1.0*dx,0.0*dy));return sum;}",_r="vec3 exposure(vec3 color,float value){return(1.0+value)*color;}_f Lum(_v3 c){return 0.299*c.r+0.587*c.g+0.114*c.b;}_v3 ClipColor(_v3 c){_f l=Lum(c);_f n=min(min(c.r,c.g),c.b);_f x=max(max(c.r,c.g),c.b);if(n<0.0)c=max((c-l)*l/(l-n)+l,0.0);if(x>1.0)c=min((c-l)*(1.0-l)/(x-l)+l,1.0);return c;}_v3 SetLum(_v3 c,_f l){c+=l-Lum(c);return ClipColor(c);}_f Sat(_v3 c){_f n=min(min(c.r,c.g),c.b);_f x=max(max(c.r,c.g),c.b);return x-n;}_v3 SetSat(_v3 c,_f s){_f cmin=min(min(c.r,c.g),c.b);_f cmax=max(max(c.r,c.g),c.b);_v3 res=_v3(0.0);if(cmax>cmin){if(c.r==cmin&&c.b==cmax){res.r=0.0;res.g=((c.g-cmin)*s)/(cmax-cmin);res.b=s;}else if(c.r==cmin&&c.g==cmax){res.r=0.0;res.b=((c.b-cmin)*s)/(cmax-cmin);res.g=s;}else if(c.g==cmin&&c.b==cmax){res.g=0.0;res.r=((c.r-cmin)*s)/(cmax-cmin);res.b=s;}else if(c.g==cmin&&c.r==cmax){res.g=0.0;res.b=((c.b-cmin)*s)/(cmax-cmin);res.r=s;}else if(c.b==cmin&&c.r==cmax){res.b=0.0;res.g=((c.g-cmin)*s)/(cmax-cmin);res.r=s;}else{res.b=0.0;res.r=((c.r-cmin)*s)/(cmax-cmin);res.g=s;}}return res;}vec3 autoExposure(_v4 artwork,_f highlights,_f shadows,bool autoExposure){_f amt=mix(highlights,shadows,Lum(artwork.rgb))*artwork.a;if(amt<0.0)amt*=2.0;_v3 res=mix(artwork.rgb,_v3(1.0),amt);if(autoExposure==true){_v3 blend=mix(_v3(1.0),pow(artwork.rgb,_v3(1.0/0.7)),amt);res=max(1.0-((1.0-res)/blend),0.0);res=SetLum(SetSat(artwork.rgb,Sat(res)),Lum(res));}return res;}vec3 autoExposure(_v4 artwork,_f highlights,_f shadows){return autoExposure(artwork,highlights,shadows,true);}",pr="_f hue2rgb(_f f1,_f f2,_f hue){if(hue<0.0)hue+=1.0;else if(hue>1.0)hue-=1.0;_f res;if((6.0*hue)<1.0)res=f1+(f2-f1)*6.0*hue;else if((2.0*hue)<1.0)res=f2;else if((3.0*hue)<2.0)res=f1+(f2-f1)*((2.0/3.0)-hue)*6.0;else res=f1;return res;}_v3 hsl2rgb(_v3 hsl){_v3 rgb;if(hsl.y==0.0){rgb=_v3(hsl.z);}else{_f f2;if(hsl.z<0.5)f2=hsl.z*(1.0+hsl.y);else f2=hsl.z+hsl.y-hsl.y*hsl.z;_f f1=2.0*hsl.z-f2;rgb.r=hue2rgb(f1,f2,hsl.x+(1.0/3.0));rgb.g=hue2rgb(f1,f2,hsl.x);rgb.b=hue2rgb(f1,f2,hsl.x-(1.0/3.0));}return rgb;}_v3 hsl2rgb(_f h,_f s,_f l){return hsl2rgb(_v3(h,s,l));}",mr="vec3 rgb2hsl(vec3 c){float cMin=min(min(c.r,c.g),c.b),cMax=max(max(c.r,c.g),c.b),delta=cMax-cMin;vec3 hsl=vec3(0.,0.,(cMax+cMin)/2.);if(delta!=0.0){if(hsl.z<.5){hsl.y=delta/(cMax+cMin);}else{hsl.y=delta/(2.-cMax-cMin);}float deltaR=(((cMax-c.r)/6.)+(delta/2.))/delta,deltaG=(((cMax-c.g)/6.)+(delta/2.))/delta,deltaB=(((cMax-c.b)/6.)+(delta/2.))/delta;if(c.r==cMax){hsl.x=deltaB-deltaG;}else if(c.g==cMax){hsl.x=(1./3.)+deltaR-deltaB;}else{hsl.x=(2./3.)+deltaG-deltaR;}hsl.x=fract(hsl.x);}return hsl;}",xr="const _v4 C=_v4(0.21,0.36,-0.57,0.02);_f snoise2d(_v2 v){_v2 i=floor(v+dot(v,C.yy));_v2 x0=v-i+dot(i,C.xx);_v2 i1;i1=(x0.x>x0.y)? _v2(1.0,0.0): _v2(0.0,1.0);_v4 x12=x0.xyxy+C.xxzz;x12.xy-=i1;i=mod(i,289.0);_v3 p=permute(permute(i.y+_v3(0.0,i1.y,1.0))+i.x+_v3(0.0,i1.x,1.0));_v3 m=max(0.5-_v3(dot(x0,x0),dot(x12.xy,x12.xy),dot(x12.zw,x12.zw)),0.0);m=m*m;m=m*m;_v3 x=2.0*fract(p*C.www)-1.0;_v3 h=abs(x)-0.5;_v3 ox=floor(x+0.5);_v3 a0=x-ox;m*=1.792-0.853*(a0*a0+h*h);_v3 g;g.x=a0.x*x0.x+h.x*x0.y;g.yz=a0.yz*x12.xz+h.yz*x12.yw;return 130.0*dot(m,g);}",vr=`const float PI=3.14;const float PI2=PI*2.;_f sn3d(_v3 v){ #i_ snoise3dpart _v4 norm=taylorInvSqrt(_v4(dot(p0,p0),dot(p1,p1),dot(p2,p2),dot(p3,p3)));p0*=norm.x;p1*=norm.y;p2*=norm.z;p3*=norm.w;_v4 m=max(0.6-_v4(dot(x0,x0),dot(x1,x1),dot(x2,x2),dot(x3,x3)),0.0);m=m*m*m;return 42.0*dot(m,_v4(dot(p0,x0),dot(p1,x1),dot(p2,x2),dot(p3,x3)));}_v3 snv3(_v3 x){_f s=sn3d(_v3(x));_f s1=sn3d(_v3(x.y-9.07,x.z+31.2,x.x+23.12));_f s2=sn3d(_v3(x.z+74.2,x.x-130.2,x.y+99.4));_v3 c=_v3(s,s1,s2);return c;}_v3 curlNoise(_v3 p){const _f e=.1;_v3 dx=_v3(e,0.0,0.0);_v3 dy=_v3(0.0,e,0.0);_v3 dz=_v3(0.0,0.0,e);_v3 p_x0=snv3(p-dx);_v3 p_x1=snv3(p+dx);_v3 p_y0=snv3(p-dy);_v3 p_y1=snv3(p+dy);_v3 p_z0=snv3(p-dz);_v3 p_z1=snv3(p+dz);_f x=p_y1.z-p_y0.z-p_z1.y+p_z0.y;_f y=p_z1.x-p_z0.x-p_x1.z+p_x0.z;_f z=p_x1.y-p_x0.y-p_y1.x+p_y0.x;const _f divisor=1.0/(2.0*e);return normalize(_v3(x,y,z)*divisor);}`,yr="const _v2 C=_v2(1.0/6.0,1.0/3.0);const _v4 D=_v4(0.0,0.5,1.0,2.0);_v3 i=floor(v+dot(v,C.yyy));_v3 x0=v-i+dot(i,C.xxx);_v3 g=step(x0.yzx,x0.xyz);_v3 l=1.0-g;_v3 i1=min(g.xyz,l.zxy);_v3 i2=max(g.xyz,l.zxy);_v3 x1=x0-i1+C.xxx;_v3 x2=x0-i2+C.yyy;_v3 x3=x0-D.yyy;i=mod289(i);_v4 p=permute(permute(permute(i.z+_v4(0.0,i1.z,i2.z,1.0))+i.y+_v4(0.0,i1.y,i2.y,1.0))+i.x+_v4(0.0,i1.x,i2.x,1.0));_v3 ns=0.1428*D.wyz-D.xzx;_v4 j=p-49.0*floor(p*ns.z*ns.z);_v4 x_=floor(j*ns.z);_v4 y_=floor(j-7.0*x_);_v4 x=x_*ns.x+ns.yyyy;_v4 y=y_*ns.x+ns.yyyy;_v4 h=1.0-abs(x)-abs(y);_v4 b0=_v4(x.xy,y.xy);_v4 b1=_v4(x.zw,y.zw);_v4 s0=floor(b0)*2.0+1.0;_v4 s1=floor(b1)*2.0+1.0;_v4 sh=-step(h,_v4(0.));_v4 a0=b0.xzyw+s0.xzyw*sh.xxyy;_v4 a1=b1.xzyw+s1.xzyw*sh.zzww;_v3 p0=_v3(a0.xy,h.x);_v3 p1=_v3(a0.zw,h.y);_v3 p2=_v3(a1.xy,h.z);_v3 p3=_v3(a1.zw,h.w);",wr="vec2 mod289(vec2 x){return x-floor(x*(1.0/289.0))*289.0;}vec3 mod289(vec3 x){return x-floor(x*(1.0/289.0))*289.0;}vec4 mod289(vec4 x){return x-floor(x*(1.0/289.0))*289.0;}vec3 mod7(vec3 x){return x-floor(x*(1.0/7.0))*7.0;}vec3 permute(vec3 x){return mod289(((x*34.0)+10.0)*x);}vec4 permute(vec4 x){return mod289(((x*34.0)+1.0)*x);}vec4 taylorInvSqrt(vec4 r){return 1.792-0.853*r;}vec3 fade(vec3 t){return t*t*t*(t*(t*6.0-15.0)+10.0);}",br="_f grain(_v2 texCoord,_v2 resolution,_f frame,_f multiplier){_v2 mult=texCoord*resolution;_f offset=snoise3d(vec3(mult/multiplier,frame));_f n1=pnoise3D(vec3(mult,offset),vec3(1.0/texCoord*resolution,1.0));return n1/2.0+0.5;}_f grain(_v2 texCoord,_v2 resolution,_f frame){return grain(texCoord,resolution,frame,2.5);}_f grain(_v2 texCoord,_v2 resolution){return grain(texCoord,resolution,0.0);}",Mr="float cubicIn(float t){return t*t*t;}float cubicOut(float t){float f=t-1.0;return f*f*f+1.0;}",Lr="float exponentialOut(float t){return t==1.0 ? t : 1.0-pow(2.0,-10.0*t);}float exponentialIn(float t){return t==0.0 ? t : pow(2.0,10.0*(t-1.0));}";const Ze=/(#i_ .*)/gi,Rt={snoise3dpart:R(yr),brightness:R(hr),contrast:R(ur),hueShift:R(dr),saturation:R(cr),blendmodes:R(fr),sharpen:R(gr),hsl2rgb:R(pr),rgb2hsl:mr,snoise2d:R(xr),noiseUtils:R(wr),grain:R(br),exposure:R(_r),cubic:R(Mr),exponential:R(Lr)};Rt.snoise3d=R(Ft(vr));function ne(r){return r=Ft(r),r=R(r),r=`#version 300 es precision highp float; `+r,r}function R(r){return r=r.replace(/_i/g,"int"),r=r.replace(/_f/g,"float"),r=r.replace(/_v2/g,"vec2"),r=r.replace(/_v3/g,"vec3"),r=r.replace(/_v4/g,"vec4"),r=r.replace(/_m2/g,"mat2"),r=r.replace(/_m3/g,"mat3"),r=r.replace(/_m4/g,"mat4"),r=r.replace(/_4/g,"mat4"),r=r.replace(/_s2/g,"sampler2D"),r=r.replace(/_t/g,"texture"),r=r.replace(/_u/g,"uniform"),r=r.replace(/_gte/g,"greaterThanEqual"),r=r.replace(/_lte/g,"lessThanEqual"),r=r.replace(/_smst/g,"smoothstep"),r=r.replace(/_lay/g,"layout(location = "),r=r.replace(/_vm/g,"void main() {"),r}function Ft(r){const e=Sr(r);for(const t of e){const s=Dr(t);let i=Rt[s];i=i.replace("#define GLSLIFY 1",""),r=r.replace(t,i)}return r}function Sr(r){Ze.lastIndex=0;let e=null,t=0;const s=[];for(;(e=Ze.exec(r))&&t<100;)s.push(e[0]);return s}function Dr(r){return r.replace("#i_","").replace(/ /g,"")}var Cr=`_u _v2 uArtworkSize;_u sampler2D tArtwork;_u _v3 uBgColor;_u _f uBrightness;_u _f uContrast;_u _f uSaturation;_u _f uHighlights;_u _f uShadows;_u _f uHueAdjust;_u _f uSharpenBlur;_u _f uSharpenSize;_u _i uSharpenBlend;_u _f uNormalStr;_u _v2 uLightPos;_u _f uLightStr;in _v2 vUv;out _v4 fragColor; #i_ contrast #i_ brightness #i_ sharpen #i_ exposure _v2 stdNormalMap(_f height){return-_v2(dFdx(height),dFdy(height));}_v3 applyHue(_v3 col,_f hueAdjust){_v3 k=_v3(0.57735,0.57735,0.57735);_f cosAngle=cos(hueAdjust);return col*cosAngle+cross(k,col)*sin(hueAdjust)+k*dot(k,col)*(1.0-cosAngle);}_vm_v2 uv=vUv;_v4 artwork=_t(tArtwork,uv).rgba;_v2 areaSize=uSharpenSize/uArtworkSize;_v4 c1=texture(tArtwork,mod(uv-areaSize,1.));_v4 c2=texture(tArtwork,mod(_v2(uv.x,uv.y-areaSize.y),1.));_v4 c3=texture(tArtwork,mod(_v2(uv.x+areaSize.x,uv.y-areaSize.y),1.));_v4 c4=texture(tArtwork,mod(_v2(uv.x-areaSize.x,uv.y),1.));_v4 c5=texture(tArtwork,mod(_v2(uv.x+areaSize.x,uv.y),1.));_v4 c6=texture(tArtwork,mod(_v2(uv.x-areaSize.x,uv.y+areaSize.y),1.));_v4 c7=texture(tArtwork,mod(_v2(uv.x,uv.y+areaSize.y),1.));_v4 c8=texture(tArtwork,mod(uv+areaSize,1.));_v4 blur=(c1+c3+c6+c8+2.*(c2+c4+c5+c7)+4.*artwork)/16.;artwork=(1.+uSharpenBlur)*artwork-uSharpenBlur*blur;artwork=bmx(uBrightness)*contrastMatrix(uContrast)*artwork;_v3 res=autoExposure(artwork,uHighlights,uShadows);res=applyHue(res,uHueAdjust);const _v3 W=_v3(0.2125,0.7154,0.0721);_v3 intensity=_v3(dot(res,W));res=mix(intensity,res,uSaturation);artwork.rgb=res;_f height=(artwork.r+artwork.g+artwork.b)/3.;_v2 normal=stdNormalMap(height);normal*=uNormalStr;normal+=.5;_f lighting=dot(normal,normalize(uLightPos));artwork.rgb+=lighting*uLightStr*.5;fragColor=artwork;}`,Ar=`#version 300 es precision highp float;in vec2 position;in vec2 uv;out vec2 vUv;void main(){gl_Position=vec4(position,0.,1.);vUv=uv;}`;const pe=[];function $e(){a.screen.width=window.innerWidth,a.screen.height=window.innerHeight;for(const r of pe)r()}window.addEventListener("resize",$e,!1);window.addEventListener("orientationchange",$e,!1);$e();const Pr={add:r=>{pe.push(r)},remove:r=>{const e=pe.indexOf(r);e!==-1&&pe.splice(e,1)}};function Tr(r,e="center"){if(r.style.boxShadow="0 0 10px rgba(0,0,0,0.5)",r.style.position="absolute",a.isRender){r.style.top="0",r.style.left="0",r.style.width="100%",r.style.height="100%";return}function t(){let{width:s,height:i}=a.screen;const n=a.isFullScreen?0:100,l=a.isFullScreen?a.dpr:.25;s=s-n,i=i-n,s=Math.min(a.size.width*l,s),i=Math.min(a.size.height*l,i);let o=r.width,h=r.height;if(a.screen.height<r.height){let u=o/h;h=i,o=i*u,o>s&&(u=h/o,o=s,h=s*u)}else{let u=h/o;o=s,h=s*u,h>i&&(u=o/h,h=i,o=i*u)}r.style.height=h+"px",r.style.width=o+"px";const d=0;if(a.renderingMode!="animated"||location.href.indexOf("localhost")>-1)switch(e){case"center":r.style.left=(a.screen.width-o)*.5+d+"px",r.style.top=(a.screen.height-h)*.5+"px";break}}Pr.add(t),t()}const zr=ne(Cr);class kr{constructor(e,t){this.width=e,this.height=t,this.setBgColor(16777215),this.setClearAlpha(1),this._isFirstRender=!0}initWebGL(){this._initEngine(),this._scene=new Me(this._gl),this._camera=new kt(this._gl,{fov:35,near:.1,far:1e3,aspect:this.width/this.height}),this._camera.position.set(0,0,7),this._camera.lookAt([0,0,0]),a.resolution=new F(a.size.width*a.dpr,a.size.height*a.dpr),a.resolutionNoDPR=new F(a.size.width,a.size.height),this._initArtwork(),this._postComposite=new lr(this._gl,{width:this.width,height:this.height,dpr:a.dpr||1}),this._renderPass=this._postComposite.addPass({fragment:zr,vertex:Ar,uniforms:this._uniforms})}_initArtwork(){this._uniforms={uArtworkSize:{value:a.resolution},uBgColor:{value:new E},tArtwork:{value:new oe(a.gl,{image:new Uint8Array([191,25,54,255,96,18,54,255,96,18,54,255,37,13,53,255]),width:2,height:2,magFilter:a.gl.NEAREST})},uDAT:{value:1},uBrightness:{value:1},uContrast:{value:1},uSaturation:{value:1},uHighlights:{value:1},uShadows:{value:1},uHueAdjust:{value:0},uSharpenBlur:{value:0},uSharpenSize:{value:1},uSharpenBlend:{value:2},uNormalStr:{value:10},uLightPos:{value:new F(-.3,.8)},uLightStr:{value:.1}}}_initEngine(){this._renderer=new Xi({width:this.width,height:this.height,dpr:a.dpr||1,antialias:!1,preserveDrawingBuffer:!0}),this._gl=this._renderer.gl,a.gl=this._gl,this._gl.canvas.style.zIndex=1e3,this._gl.canvas.style.display="none",this._gl.autoClear=!1,Tr(this._gl.canvas),document.body.appendChild(this._gl.canvas),a.renderer=this._renderer}clear(){this._gl.clearColor(this._bgColor.r,this._bgColor.g,this._bgColor.b,this._clearAlpha)}renderWebGL=({options:e,skipComposer:t=!1,scene:s=null,displayArtwork:i=!0}={})=>{this._uniforms.uBgColor.value=this._bgColor,e&&(this._uniforms.uBrightness.value=e.brightness,this._uniforms.uContrast.value=e.contrast,this._uniforms.uSaturation.value=e.saturation,this._uniforms.uHighlights.value=e.highlights,this._uniforms.uShadows.value=e.shadows,this._uniforms.uHueAdjust.value=e.hue,this._uniforms.uSharpenBlur.value=Math.max(.2,e.sharpen.sharpenBlur),this._uniforms.uSharpenSize.value=e.sharpen.sharpenSize,this._uniforms.uSharpenBlend.value=e.sharpen.sharpenBlend,this._uniforms.uNormalStr.value=e.normal.normalStr-3.5,this._uniforms.uLightPos.value.x=e.light.lightPosX,this._uniforms.uLightPos.value.y=e.light.lightPosY,this._uniforms.uLightStr.value=e.light.lightStr),this._uniforms.uDAT.value=i?1:0,t||!i?this._renderer.render({scene:s||this._scene,camera:this._camera}):(this._renderPass.enabled=!0,this._postComposite.targetOnly=!1,this._postComposite.render({scene:this._scene})),this._isFirstRender&&(this._gl.canvas.style.display="block",this._isFirstRender=!1)};setBgColor(e){e instanceof E||(this._bgColor instanceof E?this._bgColor.set(e):this._bgColor=new E(e)),a.bgColor=this._bgColor}setClearAlpha(e){this._clearAlpha=e}get artwork(){return this._uniforms.tArtwork.value}set artwork(e){this._uniforms.tArtwork.value=e}get scene(){return this._scene}get renderer(){return this._renderer}get camera(){return this._camera}}function Rr(r,e){a.data&&a.data.displayData&&a.data.displayData.addCoreDisplay(r,e)}class Fr{constructor(){this._orders=[]}add(e,t){this._orders.push({renderable:e,data:t});const s=e.constructor.name;Rr(s,e.texture)}generate(){for(let e of this._orders)e.renderable.generate&&e.renderable.generate()}async render(e=!1){let t=!1;for(let s of this._orders){if(!s.data){(t||e)&&(await s.renderable?.render(),t=!0);continue}const i=Array.isArray(s.data)?s.data.some(n=>n.isDirty):s.data.isDirty;(e||i||t)&&(await s.renderable.render(),t=!0)}return t}get texture(){return this._orders[this._orders.length-1].renderable.texture}}var Ut="in _v2 uv;in _v2 position;out _v2 vUv;_vmvUv=uv;gl_Position=_v4(_v3(position,0.),1.0);}",Et="in _v2 vUv;_lay 0)out _v4 outColor0;_vmoutColor0=vec4(vUv,0.,1.);}";const Ur=ne(Ut),Er=ne(Et);function Br({uniforms:r={},vertex:e=Ur,fragment:t=Er,width:s=1,height:i=1}={}){return new Le(a.gl,{geometry:new be(a.gl,{position:{size:2,data:new Float32Array([-1,-1,3,-1,-1,3])},uv:{size:2,data:new Float32Array([0,0,2,0,0,2])}}),program:new ae(a.gl,{vertex:e,fragment:t,uniforms:r,transparent:!0,depthWrite:!1})})}class Bt{constructor({width:e=a.size.width,height:t=a.size.height}={}){this.vs=null,this.fs=null,this._width=e,this._height=t,this._uniformsInjected=[],this._uniforms={}}init({uniforms:e=this._uniforms,textures:t={},vs:s=null,fs:i=null,dataFroms:n=null,hasToAddSystemData:l=!0}={}){Object.entries(t).forEach(([h,d])=>{d!==null&&(e[h]={value:d})});const o=a.size.width/a.size.height;if(this._uniforms=Object.assign({uSeed:{value:0},uResolution:{value:a.resolutionNoDPR},uResolutionRatio:{value:o>1?1/a.resolutionNoDPR.x:1/a.resolutionNoDPR.y},uResolutionInv:{value:o>1?new F(1/a.resolutionNoDPR.x,1/a.resolutionNoDPR.y):new F(1/a.resolutionNoDPR.y,1/a.resolutionNoDPR.x)},uScreenRatio:{value:o},uScreenRatioV2:{value:o>1?new F(1,o):new F(1/o,1)},uArtworkSize:{value:new F(this._width,this._height)}},e),s||i){n=n?n.length?n:[n]:[],l&&a.data&&a.data.backgroundData&&n.push(a.data.backgroundData);const{vs:h,fs:d}=this.gatherUniformsFromData(n,{vs:s,fs:i,uniformsToFeed:this._uniforms,textures:t,hasToResolveShader:!0});this.vs=h,this.fs=d}}refreshTextures(e){Object.entries(e).forEach(([t,s])=>{s!==null&&(this._uniforms[t].value=s)})}gatherUniformsFromData(e,{vs:t=null,fs:s=null,uniformsToFeed:i=this._uniforms,hasToResolveShader:n=!0,textures:l=null}={}){let o="";e=e.length?e:[e];for(const h of e){o=this._gatherUniformsFromParams(i,h.params,o);for(let d in h.dataLayers){let u=h.dataLayers[d];o=this._gatherUniformsFromParams(i,u.params,o)}}for(let h in l)i[h].value!==null&&(o+=`uniform sampler2D ${h}; `);return t&&(n&&(t=ne(t)),t=t.replace("#injectUniforms",o),this.vs=t),s&&(n&&(s=ne(s)),s=s.replace("#injectUniforms",o),this.fs=s),{vs:t,fs:s}}_gatherUniformsFromParams(e,t,s){for(let i in t){let n=t[i];if(n.isUniform){let l="u"+i.charAt(0).toUpperCase()+i.slice(1),o="float";typeof n.value=="boolean"&&(o="bool");let h=n.value;n.type==="color"?(h=new E(h),o="vec3"):typeof h=="object"&&("min"in h||"max"in h)?(h=new F(h.min,h.max),o="vec2"):typeof h=="object"&&("x"in h||"y"in h)?(h=new F(h.x,h.y),o="vec2"):n.type==="int"&&(o="int"),e[l]={value:h},s+=`uniform ${o} ${l}; `,this._uniformsInjected.push({name:l,type:o,from:t,nameParam:i})}}return s}update(){this._updateInjectedUniforms(this._uniforms)}_updateInjectedUniforms(e){for(let t of this._uniformsInjected){let s=t.from[t.nameParam].value;const i=t.type;i==="vec3"?e[t.name].value.set(new E(s)):i==="vec2"?"min"in s||"max"in s?e[t.name].value.set(s.min,s.max):e[t.name].value.set(s.x,s.y):e[t.name].value=s}}get uniforms(){return this._uniforms}}class j extends Me{constructor(e=1,t={},{width:s=a.size.width,height:i=a.size.height,ratio:n=1}={}){super(),this._width=s*n,this._height=i*n,this._camera=new kt(this._gl,{fov:50,near:.1,far:1e3,aspect:this._width/this._height}),this._camera.position.set(0,0,5),this._camera.lookAt([0,0,0]),this._renderTarget=this._createRT(e,t)}init({uniforms:e={},textures:t={},vs:s=Ut,fs:i=Et,createMesh:n=!0,dataFroms:l=null}={}){n&&(this._pr