memoscan
← all memos

Memo 0x4f8c1e5c…64b8b8 on Ethereum

reak;case"sampler":a.uniform1i(i,s);break;default:console.error("Uniform type is not valid.")}}),e(this,"setSampler",(t,e)=>{const s=this.context;s.activeTexture(s.TEXTURE0+t),s.bindTexture(s.TEXTURE_2D,e)}),e(this,"draw",(t=null,e=this.width,s=this.height)=>{const a=this.context;a.bindFramebuffer(a.FRAMEBUFFER,t),a.viewport(0,0,e,s),a.drawArrays(a.TRIANGLES,0,6)}),e(this,"loadCanvasToTexture",t=>{const e=this.context,s=e.createTexture();return this._bindTexture(e,s),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t),s}),e(this,"createFBO",(t=this.width,e=this.height)=>{const s=this.context,a=s.createTexture();this._bindTexture(s,a),s.texImage2D(s.TEXTURE_2D,0,s.RGBA,t,e,0,s.RGBA,s.UNSIGNED_BYTE,null);const i=s.createFramebuffer();return s.bindFramebuffer(s.FRAMEBUFFER,i),s.framebufferTexture2D(s.FRAMEBUFFER,s.COLOR_ATTACHMENT0,s.TEXTURE_2D,a,0),{getFramebuffer:()=>i,getTexture:()=>a,destroy:()=>{s.deleteFramebuffer(i),s.deleteTexture(a)}}}),e(this,"rgbToVec3",([t,e,s])=>[t/255,e/255,s/255]),e(this,"_bindTexture",(t,e)=>{t.bindTexture(t.TEXTURE_2D,e),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR)}),e(this,"_loadShaderFromSource",(t,e)=>{const s={};return s.name=t,s.fragment=e[t].frag,s.vertex="attribute vec4 a_position;void main(){gl_Position=vec4(a_position);}",s}),e(this,"_initPositionBuffer",()=>{if(!this.context)return!1;const t=this.context,e=t.createBuffer();return t.bindBuffer(t.ARRAY_BUFFER,e),t.bufferData(t.ARRAY_BUFFER,new Float32Array([-1,-1,-1,1,1,1,1,1,1,-1,-1,-1]),t.STATIC_DRAW),e}),e(this,"_initTexcoordBuffer",()=>{if(!this.context)return!1;const t=this.context,e=t.createBuffer();return t.bindBuffer(t.ARRAY_BUFFER,e),t.bufferData(t.ARRAY_BUFFER,new Float32Array([0,0,1,0,0,1,0,1,1,0,1,1]),t.STATIC_DRAW),e}),e(this,"_initCanvas",(t=800,e=600,s=1,a)=>{this.width=t,this.height=e,this.time=0;const i=document.createElement("canvas");return i.id="cycles-canvas",(a||document.getElementById("root")).appendChild(i),i.width=this.width,i.height=this.height,s<=0?(i.style.width="100vw",i.style.height="100vh"):(i.style.width=this.width*(1/s)+"px",i.style.height=this.height*(1/s)+"px"),this.context=i.getContext("webgl",{preserveDrawingBuffer:!0,powerPreference:"high-performance"}),this.buffer=this._initPositionBuffer(),this.context.pixelStorei(this.context.UNPACK_FLIP_Y_WEBGL,!0),this.context.getExtension("OES_standard_derivatives"),this.canvas=i,!0})}},l={},o={},n=[],d={debug:!1,width:525,height:742.5,scale:1,ramps:{},cycles:{},gui:!1,download:!1,audio:!1,record:!1,presMode:!1,fps:{time:0,count:0},url:new URLSearchParams(window.location.search)},c=(t=!1)=>{let[e,s,a,i]=[window.innerHeight,window.innerWidth,1.5,1],r=Math.abs(e/s-1.414)<.1,l=d.static=/\bHeadlessChrome/.test(navigator.userAgent),o=/Android|webOS|iPhone|iPad|iPod/i.test(navigator.userAgent)&&r,n=d.url.has("fullscreen")?d.url.get("fullscreen"):null;s<450&&(a=1.5),1e3<e&&(a=l?1.5:.9),d.viewMode=t||(r||n||o||l?1:0),[d.height,d.width]={0:.7*e<s?[e,.707*e]:[1.414*s,s],1:[e,s]}[d.viewMode],document.body.style.backgroundColor=r||n||o?"transparent":"rgb(20,20,22)",a=d.url.has("upscale")&&d.url.get("upscale")&&!n?2:a,d.height=Math.floor(d.height*i*a),d.width=Math.floor(d.width*i*a),d.scale=a},h=()=>{c(),i.canvas.style.width=d.width*(1/d.scale)+"px",i.canvas.style.height=d.height*(1/d.scale)+"px",d.cahiers.draw(),n[0]=i.loadCanvasToTexture(d.cahiers.canvas)},u=t=>{"f"==t.key&&(document.fullscreenElement?document.exitFullscreen():document.documentElement.requestFullscreen())},p=t=>{let e;d.fps.count<20&&(d.fps.count++,d.fps.now=t,d.fps.dt=d.fps.now-(d.fps.time||d.fps.now),d.fps.ratio=Math.round(120*d.fps.dt)/1e3||0,d.fps.time=d.fps.now),20==d.fps.count&&(d.fps.ratio=Math.floor(d.fps.ratio),d.ramp.loop(d.ramps,t=>t.ratio=d.fps.ratio),console.log("FPS:",1e3/d.fps.dt,"("+d.fps.ratio+")"),d.fps.count++),d.cycles.debug&&(i.setSampler(0,n[0]),i.startShader(l.display),i.endShader(),i.draw(null)),d.cycles.debug||(d.static||(d.cycles.feedback.ramps=[d.ramps.dissolve.brightness.run(),d.ramps.dissolve.contrast.run()+d.ramps.burst.contrast.run()+d.ramps.glitch.contrast.run(),d.ramps.dissolve.r.run(),d.ramps.dissolve.g.run(),d.ramps.dissolve.b.run(),d.ramps.burst.brightness.run()+d.ramps.glitch.flicker.run(),d.ramps.cosine.run(),1]),d.cycles.distort.ramps=[d.ramps.scroll.run(),d.ramps.transistion.x.run(),0,0,0,0],d.ramps.transistion.trigger.run(),d.ramps.controller.run(),e=d.cycles.distort,i.setSampler(0,n[0]),i.startShader(l.distort),i.setU("sampler","u_texture",0),0===i.time&&(i.setU("float","u_cm",e.colormode),i.setU("vec2","u_offset",e.offset)),i.setU("float[]","u_r",e.ramps),i.setU("float","u_amount",e.amount),i.setU("float","u_shape",e.shape),i.setU("float","u_freq",e.frequency),i.setU("vec3","u_color",i.rgbToVec3(e.color)),i.endShader(),i.draw(o.work[0].getFramebuffer()),e=d.cycles.feedback,i.setSampler(0,o.work[0].getTexture()),i.setSampler(1,o.channel[0].getTexture()),i.startShader(l.feedback),i.setU("sampler","u_original",0),i.setU("sampler","u_loop",1),i.setU("vec3","u_opacity",[e.opacityR,e.opacityG,e.opacityB]),i.setU("float","u_brightness",e.brightness),i.setU("float","u_contrast",e.contrast),i.setU("vec2","u_offset",e.offset),i.setU("vec2","u_scale",e.scale),i.setU("float","u_random",6.28*d.hash[26]),i.setU("float[]","u_r",e.ramps),i.endShader(),i.draw(o.channel[1].getFramebuffer()),i.setSampler(0,o.channel[1].getTexture()),i.startShader(l.display),i.endShader(),i.draw(o.channel[0].getFramebuffer()),i.setSampler(0,o.channel[1].getTexture()),i.setSampler(1,o.noise.getTexture()),i.startShader(l.post),i.setU("sampler","u_texture",0),i.setU("sampler","u_noise",1),i.setU("vec3","u_color",i.rgbToVec3(d.cycles.distort.color)),i.endShader(),i.draw(null)),d.request=requestAnimationFrame(p),i.time=d.url.get("offset")+performance.now()/1e3};document.addEventListener("DOMContentLoaded",async()=>{c(),window.addEventListener("resize",(e=>{let s;return t=>{s&&clearTimeout(s),s=setTimeout(e,500,t)}})(h)),document.addEventListener("keydown",u),console.log("Everything is running smoothly, and you?"),d.root=document.body,d.fullHash=tokenData.hash,d.hash=function(e){let s=[];for(let t=0;t<64;t+=2)s.push(parseFloat((parseInt(e.slice(t+2,t+4),16)/255).toFixed(4)));return s}(d.fullHash),d.random=new m(d.fullHash);let s=[];[{n:"layers",s:"hoist",p:18},{n:"layers",s:"neon",p:18},{n:"layers",s:"cross",p:9},{n:"lanes",s:"lanes",p:14},{n:"tiles",s:"tiles",p:14},{n:"tiles",s:"tiles2",p:15},{n:"tiles",s:"tiles3",p:6},{n:"cross",s:"cross",p:4},{n:"cross",s:"cross2",p:2}].forEach(e=>{for(let t=0;t<e.p;t++)s.push({n:e.n,s:e.s})}),d.style=d.style||s[Math.floor(99*d.hash[25]+.5)].n,d.substyle=d.substyle||s[Math.floor(99*d.hash[25]+.5)].s,"undefined"!=typeof tokenData&&([d.style,d.substyle]=0<parseInt(tokenData.tokenId)%1e6?[d.style,d.substyle]:["layers","hoist"]),d.reloadCahiers=()=>{a(d,!0),d.cahiers.draw(),n[0]=i.loadCanvasToTexture(d.cahiers.canvas)},d.rerollRamps=()=>{d.ramps.transistion.x.ramps[1].amount*=-1},d.cahiers=new t(d.width,d.height,d.random,d.root),a(d),d.cahiers.draw(),i.create(d.width,d.height,d.scale,d.root),l.display=await i.loadShader("cy_display"),l.distort=await i.loadShader("cy_distort"),l.feedback=await i.loadShader("cy_feedback"),l.noise=await i.loadShader("cy_noise"),l.post=await i.loadShader("cy_post"),o.noise=i.createFBO(),o.channel=[i.createFBO(),i.createFBO()],o.work=[i.createFBO(),i.createFBO()],i.startShader(l.noise),i.endShader(),i.draw(o.noise.getFramebuffer()),n.push(i.loadCanvasToTexture(d.cahiers.canvas)),i.context.disable(i.context.DEPTH_TEST),p()});class m{constructor(t){this.useA=!1;function e(t){let e=parseInt(t.substr(0,8),16),s=parseInt(t.substr(8,8),16),a=parseInt(t.substr(16,8),16),i=parseInt(t.substr(24,8),16);return function(){e|=0,s|=0,a|=0,i|=0;var t=(e+s|0)+i|0;return i=i+1|0,e=s^s>>>9,s=a+(a<<3)|0,a=a<<21|a>>>11,a=a+t|0,(t>>>0)/4294967296}}this.prngA=new e(t.substr(2,32)),this.prngB=new e(t.substr(34,32));for(let t=0;t<1e6;t+=2)this.prngA(),this.prngB()}float(){return this.useA=!this.useA,this.useA?this.prngA():this.prngB()}}})();