scripty.sol
Version:
A generic HTML file builder and data storage solution for on-chain composable generative art and more.
1 lines • 1.15 kB
JavaScript
()=>{let e=document.querySelectorAll('script[type="text/javascript+png"][src]');const t=e.length;let r=0;function a(e){let a=new Image;a.src=e;a.onload=()=>{const e=document.createElement("canvas");const c=e.getContext("webgl");let n=c.createTexture();c.bindTexture(c.TEXTURE_2D,n);let l=a.width;let E=a.height;c.bindTexture(c.TEXTURE_2D,n);c.texImage2D(c.TEXTURE_2D,0,c.RGBA,c.RGBA,c.UNSIGNED_BYTE,a);c.generateMipmap(c.TEXTURE_2D);let o=c.createFramebuffer();c.bindFramebuffer(c.FRAMEBUFFER,o);c.framebufferTexture2D(c.FRAMEBUFFER,c.COLOR_ATTACHMENT0,c.TEXTURE_2D,n,0);if(c.checkFramebufferStatus(c.FRAMEBUFFER)==c.FRAMEBUFFER_COMPLETE){let e=new Uint8Array(l*E*4);c.readPixels(0,0,l,E,c.RGBA,c.UNSIGNED_BYTE,e);let a=new TextDecoder("utf-8");let n=btoa(a.decode(e));let o=document.createElement("script");o.type="text/javascript";o.async=true;o.onload=()=>{r++;if(r==t){_sb.callEvents("base64URI_loaded")}};o.src="data:text/javascript;base64,"+n.trim();document.body.appendChild(o)}e.remove()}}for(let t of e)try{let[e]=t.src.match(/^data:(.*?)(?:;(base64))?,(.*)$/);a(e)}catch(e){console.error("Could not INFLATE script",t,e)}})();
;(