@midscene/android-playground 1.0.1-beta-20251021060907.0 → 1.0.1-beta-20251024063839.0

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.
Files changed (48) hide show
  1. package/dist/es/bin.mjs +5 -3
  2. package/dist/lib/bin.js +5 -3
  3. package/package.json +5 -5
  4. package/static/index.html +1 -1
  5. package/static/static/js/142.64c1e0d5.js +697 -0
  6. package/static/static/js/{825.c5ade4c6.js.map → 142.64c1e0d5.js.map} +1 -1
  7. package/static/static/js/async/150.d439b38c.js +158 -0
  8. package/static/static/js/async/{212.850ade70.js.map → 150.d439b38c.js.map} +1 -1
  9. package/static/static/js/async/{624.8a1fe2e8.js → 195.aa1e3152.js} +3 -3
  10. package/static/static/js/async/{624.8a1fe2e8.js.map → 195.aa1e3152.js.map} +1 -1
  11. package/static/static/js/async/260.d838b3b7.js +2 -0
  12. package/static/static/js/async/{544.18ac9afb.js.map → 260.d838b3b7.js.map} +1 -1
  13. package/static/static/js/async/271.71b3326b.js +3 -0
  14. package/static/static/js/async/{173.f2381e64.js.map → 271.71b3326b.js.map} +1 -1
  15. package/static/static/js/async/355.76c31308.js +1 -0
  16. package/static/static/js/async/{644.910ce3d0.js → 441.675c15a8.js} +1 -1
  17. package/static/static/js/async/45.ce50b37f.js +21 -0
  18. package/static/static/js/async/45.ce50b37f.js.map +1 -0
  19. package/static/static/js/async/586.ffc417d5.js +26 -0
  20. package/static/static/js/async/{329.261bc4a1.js.map → 586.ffc417d5.js.map} +1 -1
  21. package/static/static/js/async/631.9799e85f.js +30 -0
  22. package/static/static/js/async/{364.d88c3cff.js.map → 631.9799e85f.js.map} +1 -1
  23. package/static/static/js/async/{702.1f38a17e.js → 779.e7bfc2ed.js} +15 -15
  24. package/static/static/js/async/{702.1f38a17e.js.map → 779.e7bfc2ed.js.map} +1 -1
  25. package/static/static/js/async/782.f77f2205.js +2 -0
  26. package/static/static/js/async/782.f77f2205.js.map +1 -0
  27. package/static/static/js/index.dd3aa15e.js +30 -0
  28. package/static/static/js/index.dd3aa15e.js.map +1 -0
  29. package/static/static/js/lib-react.d7dec362.js +3 -0
  30. package/static/static/js/{lib-react.c74a0742.js.map → lib-react.d7dec362.js.map} +1 -1
  31. package/static/static/js/825.c5ade4c6.js +0 -697
  32. package/static/static/js/async/166.834644b5.js +0 -2
  33. package/static/static/js/async/166.834644b5.js.map +0 -1
  34. package/static/static/js/async/173.f2381e64.js +0 -3
  35. package/static/static/js/async/212.850ade70.js +0 -158
  36. package/static/static/js/async/329.261bc4a1.js +0 -26
  37. package/static/static/js/async/364.d88c3cff.js +0 -30
  38. package/static/static/js/async/544.18ac9afb.js +0 -2
  39. package/static/static/js/async/582.8f4b5264.js +0 -21
  40. package/static/static/js/async/582.8f4b5264.js.map +0 -1
  41. package/static/static/js/async/983.b98b40af.js +0 -1
  42. package/static/static/js/index.eb785992.js +0 -30
  43. package/static/static/js/index.eb785992.js.map +0 -1
  44. package/static/static/js/lib-react.c74a0742.js +0 -3
  45. /package/static/static/js/{825.c5ade4c6.js.LICENSE.txt → 142.64c1e0d5.js.LICENSE.txt} +0 -0
  46. /package/static/static/js/{index.eb785992.js.LICENSE.txt → index.dd3aa15e.js.LICENSE.txt} +0 -0
  47. /package/static/static/js/{lib-react.c74a0742.js.LICENSE.txt → lib-react.d7dec362.js.LICENSE.txt} +0 -0
  48. /package/static/static/wasm/{9e906fbf55e08f98.module.wasm → 9e906fbf.module.wasm} +0 -0
@@ -1,21 +0,0 @@
1
- "use strict";(self.webpackChunkandroid_playground=self.webpackChunkandroid_playground||[]).push([["582"],{22703:function(e,t,r){r.d(t,{WebGLRenderer:()=>eN});var s,n,i,a,o=r(91957),_=r(30044),l=r(29465),u=r(43200),h=r(23149),c=r(39193),d=r(78300),E=r(71067),g=r(17094),f=r(8482),R=r(73109);class T{init(){let e=new R.o({uColor:{value:new Float32Array([1,1,1,1]),type:"vec4<f32>"},uTransformMatrix:{value:new _.y,type:"mat3x3<f32>"},uRound:{value:0,type:"f32"}}),t=(0,u.o)({name:"graphics",bits:[h.T,(0,c.h)(l.A),d.$g,E.X]});this.shader=new f.e({glProgram:t,resources:{localUniforms:e,batchSamplers:g.y}})}execute(e,t){let r=t.context,s=r.customShader||this.shader,n=e.renderer,{geometry:i,instructions:a}=n.graphicsContext.getContextRenderData(r);s.groups[0]=n.globalUniforms.bindGroup,n.state.set(e.state),n.shader.bind(s),n.geometry.bind(i,s.glProgram);let o=a.instructions;for(let e=0;e<a.instructionSize;e++){let t=o[e];if(t.size){for(let e=0;e<t.textures.textures.length;e++)n.texture.bind(t.textures.textures[e],e);n.geometry.draw("triangle-list",t.size,t.start)}}}destroy(){this.shader.destroy(!0),this.shader=null}}T.extension={type:[o.nw.WebGLPipesAdaptor],name:"graphics"};var m=r(17893),b=r(41277),x=r(92245);class S{init(){let e=(0,u.o)({name:"mesh",bits:[d.$g,m.e,E.X]});this._shader=new f.e({glProgram:e,resources:{uTexture:b.x.EMPTY.source,textureUniforms:{uTextureMatrix:{type:"mat3x3<f32>",value:new _.y}}}})}execute(e,t){let r=e.renderer,s=t._shader;if(s){if(!s.glProgram)return void(0,x.Z)("Mesh shader has no glProgram",t.shader)}else{s=this._shader;let e=t.texture,r=e.source;s.resources.uTexture=r,s.resources.uSampler=r.style,s.resources.textureUniforms.uniforms.uTextureMatrix=e.textureMatrix.mapCoord}s.groups[100]=r.globalUniforms.bindGroup,s.groups[101]=e.localUniformsBindGroup,r.encoder.draw({geometry:t._geometry,shader:s,state:t.state})}destroy(){this._shader.destroy(!0),this._shader=null}}S.extension={type:[o.nw.WebGLPipesAdaptor],name:"mesh"};var p=r(29492);class A{constructor(){this._didUpload=!1,this._tempState=p.Z.for2d()}init(e){let t=(0,u.o)({name:"batch",bits:[h.T,(0,c.h)(l.A),E.X]});this._shader=new f.e({glProgram:t,resources:{batchSamplers:g.y}}),e.renderer.runners.contextChange.add(this)}contextChange(){this._didUpload=!1}start(e,t){let r=e.renderer;r.shader.bind(this._shader,this._didUpload),r.shader.updateUniformGroup(r.globalUniforms.uniformGroup),r.geometry.bind(t,this._shader.glProgram)}execute(e,t){let r=e.renderer;this._didUpload=!0,this._tempState.blendMode=t.blendMode,r.state.set(this._tempState);let s=t.textures.textures;for(let e=0;e<s.length;e++)r.texture.bind(s[e],e);r.geometry.draw("triangle-list",t.size,t.start)}destroy(){this._shader.destroy(!0),this._shader=null}}A.extension={type:[o.nw.WebGLPipesAdaptor],name:"batch"};var B=r(17638),N=r(8826),G=r(71423),C=r(74821),D=((s=D||{})[s.ELEMENT_ARRAY_BUFFER=34963]="ELEMENT_ARRAY_BUFFER",s[s.ARRAY_BUFFER=34962]="ARRAY_BUFFER",s[s.UNIFORM_BUFFER=35345]="UNIFORM_BUFFER",s);class I{constructor(e,t){this.buffer=e||null,this.updateID=-1,this.byteLength=-1,this.type=t}}class O{constructor(e){this._gpuBuffers=Object.create(null),this._boundBufferBases=Object.create(null),this._renderer=e}destroy(){this._renderer=null,this._gl=null,this._gpuBuffers=null,this._boundBufferBases=null}contextChange(){this._gpuBuffers=Object.create(null),this._gl=this._renderer.gl}getGlBuffer(e){return this._gpuBuffers[e.uid]||this.createGLBuffer(e)}bind(e){let{_gl:t}=this,r=this.getGlBuffer(e);t.bindBuffer(r.type,r.buffer)}bindBufferBase(e,t){let{_gl:r}=this;if(this._boundBufferBases[t]!==e){let s=this.getGlBuffer(e);this._boundBufferBases[t]=e,r.bindBufferBase(r.UNIFORM_BUFFER,t,s.buffer)}}bindBufferRange(e,t,r){let{_gl:s}=this;r=r||0;let n=this.getGlBuffer(e);s.bindBufferRange(s.UNIFORM_BUFFER,t||0,n.buffer,256*r,256)}updateBuffer(e){let{_gl:t}=this,r=this.getGlBuffer(e);if(e._updateID===r.updateID)return r;r.updateID=e._updateID,t.bindBuffer(r.type,r.buffer);let s=e.data;if(r.byteLength>=e.data.byteLength)t.bufferSubData(r.type,0,s,0,e._updateSize/s.BYTES_PER_ELEMENT);else{let n=e.descriptor.usage&C.F.STATIC?t.STATIC_DRAW:t.DYNAMIC_DRAW;r.byteLength=s.byteLength,t.bufferData(r.type,s,n)}return r}destroyAll(){let e=this._gl;for(let t in this._gpuBuffers)e.deleteBuffer(this._gpuBuffers[t].buffer);this._gpuBuffers=Object.create(null)}onBufferDestroy(e,t){let r=this._gpuBuffers[e.uid],s=this._gl;t||s.deleteBuffer(r.buffer),this._gpuBuffers[e.uid]=null}createGLBuffer(e){let{_gl:t}=this,r=D.ARRAY_BUFFER;e.descriptor.usage&C.F.INDEX?r=D.ELEMENT_ARRAY_BUFFER:e.descriptor.usage&C.F.UNIFORM&&(r=D.UNIFORM_BUFFER);let s=new I(t.createBuffer(),r);return this._gpuBuffers[e.uid]=s,e.on("destroy",this.onBufferDestroy,this),s}}O.extension={type:[o.nw.WebGLSystem],name:"buffer"};var U=r(767);let F=class e{constructor(e){this.supports={uint32Indices:!0,uniformBufferObject:!0,vertexArrayObject:!0,srgbTextures:!0,nonPowOf2wrapping:!0,msaa:!0,nonPowOf2mipmaps:!0},this._renderer=e,this.extensions=Object.create(null),this.handleContextLost=this.handleContextLost.bind(this),this.handleContextRestored=this.handleContextRestored.bind(this)}get isLost(){return!this.gl||this.gl.isContextLost()}contextChange(e){this.gl=e,this._renderer.gl=e}init(t){if((t={...e.defaultOptions,...t}).context)this.initFromContext(t.context);else{let e=this._renderer.background.alpha<1,r=t.premultipliedAlpha??!0,s=t.antialias&&!this._renderer.backBuffer.useBackBuffer;this.createContext(t.preferWebGLVersion,{alpha:e,premultipliedAlpha:r,antialias:s,stencil:!0,preserveDrawingBuffer:t.preserveDrawingBuffer,powerPreference:t.powerPreference??"default"})}}initFromContext(e){this.gl=e,this.webGLVersion=e instanceof U.z.get().getWebGLRenderingContext()?1:2,this.getExtensions(),this.validateContext(e),this._renderer.runners.contextChange.emit(e);let t=this._renderer.view.canvas;t.addEventListener("webglcontextlost",this.handleContextLost,!1),t.addEventListener("webglcontextrestored",this.handleContextRestored,!1)}createContext(e,t){let r,s=this._renderer.view.canvas;if(2===e&&(r=s.getContext("webgl2",t)),!r&&!(r=s.getContext("webgl",t)))throw Error("This browser does not support WebGL. Try using the canvas renderer");this.gl=r,this.initFromContext(this.gl)}getExtensions(){let{gl:e}=this,t={anisotropicFiltering:e.getExtension("EXT_texture_filter_anisotropic"),floatTextureLinear:e.getExtension("OES_texture_float_linear"),s3tc:e.getExtension("WEBGL_compressed_texture_s3tc"),s3tc_sRGB:e.getExtension("WEBGL_compressed_texture_s3tc_srgb"),etc:e.getExtension("WEBGL_compressed_texture_etc"),etc1:e.getExtension("WEBGL_compressed_texture_etc1"),pvrtc:e.getExtension("WEBGL_compressed_texture_pvrtc")||e.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc"),atc:e.getExtension("WEBGL_compressed_texture_atc"),astc:e.getExtension("WEBGL_compressed_texture_astc"),bptc:e.getExtension("EXT_texture_compression_bptc"),rgtc:e.getExtension("EXT_texture_compression_rgtc"),loseContext:e.getExtension("WEBGL_lose_context")};if(1===this.webGLVersion)this.extensions={...t,drawBuffers:e.getExtension("WEBGL_draw_buffers"),depthTexture:e.getExtension("WEBGL_depth_texture"),vertexArrayObject:e.getExtension("OES_vertex_array_object")||e.getExtension("MOZ_OES_vertex_array_object")||e.getExtension("WEBKIT_OES_vertex_array_object"),uint32ElementIndex:e.getExtension("OES_element_index_uint"),floatTexture:e.getExtension("OES_texture_float"),floatTextureLinear:e.getExtension("OES_texture_float_linear"),textureHalfFloat:e.getExtension("OES_texture_half_float"),textureHalfFloatLinear:e.getExtension("OES_texture_half_float_linear"),vertexAttribDivisorANGLE:e.getExtension("ANGLE_instanced_arrays"),srgb:e.getExtension("EXT_sRGB")};else{this.extensions={...t,colorBufferFloat:e.getExtension("EXT_color_buffer_float")};let r=e.getExtension("WEBGL_provoking_vertex");r&&r.provokingVertexWEBGL(r.FIRST_VERTEX_CONVENTION_WEBGL)}}handleContextLost(e){e.preventDefault(),this._contextLossForced&&(this._contextLossForced=!1,setTimeout(()=>{this.gl.isContextLost()&&this.extensions.loseContext?.restoreContext()},0))}handleContextRestored(){this._renderer.runners.contextChange.emit(this.gl)}destroy(){let e=this._renderer.view.canvas;this._renderer=null,e.removeEventListener("webglcontextlost",this.handleContextLost),e.removeEventListener("webglcontextrestored",this.handleContextRestored),this.gl.useProgram(null),this.extensions.loseContext?.loseContext()}forceContextLoss(){this.extensions.loseContext?.loseContext(),this._contextLossForced=!0}validateContext(e){let t=e.getContextAttributes();t&&!t.stencil&&(0,x.Z)("Provided WebGL context does not have a stencil buffer, masks may not render correctly");let r=this.supports,s=2===this.webGLVersion,n=this.extensions;r.uint32Indices=s||!!n.uint32ElementIndex,r.uniformBufferObject=s,r.vertexArrayObject=s||!!n.vertexArrayObject,r.srgbTextures=s||!!n.srgb,r.nonPowOf2wrapping=s,r.nonPowOf2mipmaps=s,r.msaa=s,r.uint32Indices||(0,x.Z)("Provided WebGL context does not support 32 index buffer, large scenes may not render correctly")}};F.extension={type:[o.nw.WebGLSystem],name:"context"},F.defaultOptions={context:null,premultipliedAlpha:!0,preserveDrawingBuffer:!1,powerPreference:void 0,preferWebGLVersion:2};var P=r(12713),L=r(532),y=((n=y||{})[n.RGBA=6408]="RGBA",n[n.RGB=6407]="RGB",n[n.RG=33319]="RG",n[n.RED=6403]="RED",n[n.RGBA_INTEGER=36249]="RGBA_INTEGER",n[n.RGB_INTEGER=36248]="RGB_INTEGER",n[n.RG_INTEGER=33320]="RG_INTEGER",n[n.RED_INTEGER=36244]="RED_INTEGER",n[n.ALPHA=6406]="ALPHA",n[n.LUMINANCE=6409]="LUMINANCE",n[n.LUMINANCE_ALPHA=6410]="LUMINANCE_ALPHA",n[n.DEPTH_COMPONENT=6402]="DEPTH_COMPONENT",n[n.DEPTH_STENCIL=34041]="DEPTH_STENCIL",n),M=((i=M||{})[i.TEXTURE_2D=3553]="TEXTURE_2D",i[i.TEXTURE_CUBE_MAP=34067]="TEXTURE_CUBE_MAP",i[i.TEXTURE_2D_ARRAY=35866]="TEXTURE_2D_ARRAY",i[i.TEXTURE_CUBE_MAP_POSITIVE_X=34069]="TEXTURE_CUBE_MAP_POSITIVE_X",i[i.TEXTURE_CUBE_MAP_NEGATIVE_X=34070]="TEXTURE_CUBE_MAP_NEGATIVE_X",i[i.TEXTURE_CUBE_MAP_POSITIVE_Y=34071]="TEXTURE_CUBE_MAP_POSITIVE_Y",i[i.TEXTURE_CUBE_MAP_NEGATIVE_Y=34072]="TEXTURE_CUBE_MAP_NEGATIVE_Y",i[i.TEXTURE_CUBE_MAP_POSITIVE_Z=34073]="TEXTURE_CUBE_MAP_POSITIVE_Z",i[i.TEXTURE_CUBE_MAP_NEGATIVE_Z=34074]="TEXTURE_CUBE_MAP_NEGATIVE_Z",i),H=((a=H||{})[a.UNSIGNED_BYTE=5121]="UNSIGNED_BYTE",a[a.UNSIGNED_SHORT=5123]="UNSIGNED_SHORT",a[a.UNSIGNED_SHORT_5_6_5=33635]="UNSIGNED_SHORT_5_6_5",a[a.UNSIGNED_SHORT_4_4_4_4=32819]="UNSIGNED_SHORT_4_4_4_4",a[a.UNSIGNED_SHORT_5_5_5_1=32820]="UNSIGNED_SHORT_5_5_5_1",a[a.UNSIGNED_INT=5125]="UNSIGNED_INT",a[a.UNSIGNED_INT_10F_11F_11F_REV=35899]="UNSIGNED_INT_10F_11F_11F_REV",a[a.UNSIGNED_INT_2_10_10_10_REV=33640]="UNSIGNED_INT_2_10_10_10_REV",a[a.UNSIGNED_INT_24_8=34042]="UNSIGNED_INT_24_8",a[a.UNSIGNED_INT_5_9_9_9_REV=35902]="UNSIGNED_INT_5_9_9_9_REV",a[a.BYTE=5120]="BYTE",a[a.SHORT=5122]="SHORT",a[a.INT=5124]="INT",a[a.FLOAT=5126]="FLOAT",a[a.FLOAT_32_UNSIGNED_INT_24_8_REV=36269]="FLOAT_32_UNSIGNED_INT_24_8_REV",a[a.HALF_FLOAT=36193]="HALF_FLOAT",a);let v={uint8x2:H.UNSIGNED_BYTE,uint8x4:H.UNSIGNED_BYTE,sint8x2:H.BYTE,sint8x4:H.BYTE,unorm8x2:H.UNSIGNED_BYTE,unorm8x4:H.UNSIGNED_BYTE,snorm8x2:H.BYTE,snorm8x4:H.BYTE,uint16x2:H.UNSIGNED_SHORT,uint16x4:H.UNSIGNED_SHORT,sint16x2:H.SHORT,sint16x4:H.SHORT,unorm16x2:H.UNSIGNED_SHORT,unorm16x4:H.UNSIGNED_SHORT,snorm16x2:H.SHORT,snorm16x4:H.SHORT,float16x2:H.HALF_FLOAT,float16x4:H.HALF_FLOAT,float32:H.FLOAT,float32x2:H.FLOAT,float32x3:H.FLOAT,float32x4:H.FLOAT,uint32:H.UNSIGNED_INT,uint32x2:H.UNSIGNED_INT,uint32x3:H.UNSIGNED_INT,uint32x4:H.UNSIGNED_INT,sint32:H.INT,sint32x2:H.INT,sint32x3:H.INT,sint32x4:H.INT},w={"point-list":0,"line-list":1,"line-strip":3,"triangle-list":4,"triangle-strip":5};class X{constructor(e){this._geometryVaoHash=Object.create(null),this._renderer=e,this._activeGeometry=null,this._activeVao=null,this.hasVao=!0,this.hasInstance=!0}contextChange(){let e=this.gl=this._renderer.gl;if(!this._renderer.context.supports.vertexArrayObject)throw Error("[PixiJS] Vertex Array Objects are not supported on this device");let t=this._renderer.context.extensions.vertexArrayObject;t&&(e.createVertexArray=()=>t.createVertexArrayOES(),e.bindVertexArray=e=>t.bindVertexArrayOES(e),e.deleteVertexArray=e=>t.deleteVertexArrayOES(e));let r=this._renderer.context.extensions.vertexAttribDivisorANGLE;r&&(e.drawArraysInstanced=(e,t,s,n)=>{r.drawArraysInstancedANGLE(e,t,s,n)},e.drawElementsInstanced=(e,t,s,n,i)=>{r.drawElementsInstancedANGLE(e,t,s,n,i)},e.vertexAttribDivisor=(e,t)=>r.vertexAttribDivisorANGLE(e,t)),this._activeGeometry=null,this._activeVao=null,this._geometryVaoHash=Object.create(null)}bind(e,t){let r=this.gl;this._activeGeometry=e;let s=this.getVao(e,t);this._activeVao!==s&&(this._activeVao=s,r.bindVertexArray(s)),this.updateBuffers()}reset(){this.unbind()}updateBuffers(){let e=this._activeGeometry,t=this._renderer.buffer;for(let r=0;r<e.buffers.length;r++){let s=e.buffers[r];t.updateBuffer(s)}}checkCompatibility(e,t){let r=e.attributes,s=t._attributeData;for(let e in s)if(!r[e])throw Error(`shader and geometry incompatible, geometry missing the "${e}" attribute`)}getSignature(e,t){let r=e.attributes,s=t._attributeData,n=["g",e.uid];for(let e in r)s[e]&&n.push(e,s[e].location);return n.join("-")}getVao(e,t){return this._geometryVaoHash[e.uid]?.[t._key]||this.initGeometryVao(e,t)}initGeometryVao(e,t,r=!0){let s=this._renderer.gl,n=this._renderer.buffer;this._renderer.shader._getProgramData(t),this.checkCompatibility(e,t);let i=this.getSignature(e,t);this._geometryVaoHash[e.uid]||(this._geometryVaoHash[e.uid]=Object.create(null),e.on("destroy",this.onGeometryDestroy,this));let a=this._geometryVaoHash[e.uid],o=a[i];if(o)return a[t._key]=o,o;(0,L.B)(e,t._attributeData);let _=e.buffers;o=s.createVertexArray(),s.bindVertexArray(o);for(let e=0;e<_.length;e++){let t=_[e];n.bind(t)}return this.activateVao(e,t),a[t._key]=o,a[i]=o,s.bindVertexArray(null),o}onGeometryDestroy(e,t){let r=this._geometryVaoHash[e.uid],s=this.gl;if(r){if(t)for(let e in r)this._activeVao!==r[e]&&this.unbind(),s.deleteVertexArray(r[e]);this._geometryVaoHash[e.uid]=null}}destroyAll(e=!1){let t=this.gl;for(let r in this._geometryVaoHash){if(e)for(let e in this._geometryVaoHash[r]){let s=this._geometryVaoHash[r];this._activeVao!==s&&this.unbind(),t.deleteVertexArray(s[e])}this._geometryVaoHash[r]=null}}activateVao(e,t){let r=this._renderer.gl,s=this._renderer.buffer,n=e.attributes;e.indexBuffer&&s.bind(e.indexBuffer);let i=null;for(let e in n){let a=n[e],o=a.buffer,_=s.getGlBuffer(o),l=t._attributeData[e];if(l){i!==_&&(s.bind(o),i=_);let e=a.location;r.enableVertexAttribArray(e);let t=(0,P.v)(a.format),n=v[a.format]??v.float32;if(l.format?.substring(1,4)==="int"?r.vertexAttribIPointer(e,t.size,n,a.stride,a.offset):r.vertexAttribPointer(e,t.size,n,t.normalised,a.stride,a.offset),a.instance)if(this.hasInstance)r.vertexAttribDivisor(e,1);else throw Error("geometry error, GPU Instancing is not supported on this device")}}}draw(e,t,r,s){let{gl:n}=this._renderer,i=this._activeGeometry,a=w[i.topology||e];if(s||(s=i.instanceCount),i.indexBuffer){let e=i.indexBuffer.data.BYTES_PER_ELEMENT,o=2===e?n.UNSIGNED_SHORT:n.UNSIGNED_INT;s>1?n.drawElementsInstanced(a,t||i.indexBuffer.data.length,o,(r||0)*e,s):n.drawElements(a,t||i.indexBuffer.data.length,o,(r||0)*e)}else s>1?n.drawArraysInstanced(a,r||0,t||i.getSize(),s):n.drawArrays(a,r||0,t||i.getSize());return this}unbind(){this.gl.bindVertexArray(null),this._activeVao=null,this._activeGeometry=null}destroy(){this._renderer=null,this.gl=null,this._activeVao=null,this._activeGeometry=null}}X.extension={type:[o.nw.WebGLSystem],name:"geometry"};var V=r(73531),k=r(62815),W=r(95098);let Y=new V.Z({attributes:{aPosition:[-1,-1,3,-1,-1,3]}}),K=class e{constructor(e){this.useBackBuffer=!1,this._useBackBufferThisRender=!1,this._renderer=e}init(t={}){let{useBackBuffer:r,antialias:s}={...e.defaultOptions,...t};this.useBackBuffer=r,this._antialias=s,this._renderer.context.supports.msaa||((0,x.Z)("antialiasing, is not supported on when using the back buffer"),this._antialias=!1),this._state=p.Z.for2d();let n=new W.J({vertex:`
2
- attribute vec2 aPosition;
3
- out vec2 vUv;
4
-
5
- void main() {
6
- gl_Position = vec4(aPosition, 0.0, 1.0);
7
-
8
- vUv = (aPosition + 1.0) / 2.0;
9
-
10
- // flip dem UVs
11
- vUv.y = 1.0 - vUv.y;
12
- }`,fragment:`
13
- in vec2 vUv;
14
- out vec4 finalColor;
15
-
16
- uniform sampler2D uTexture;
17
-
18
- void main() {
19
- finalColor = texture(uTexture, vUv);
20
- }`,name:"big-triangle"});this._bigTriangleShader=new f.e({glProgram:n,resources:{uTexture:b.x.WHITE.source}})}renderStart(e){let t=this._renderer.renderTarget.getRenderTarget(e.target);if(this._useBackBufferThisRender=this.useBackBuffer&&!!t.isRoot,this._useBackBufferThisRender){let t=this._renderer.renderTarget.getRenderTarget(e.target);this._targetTexture=t.colorTexture,e.target=this._getBackBufferTexture(t.colorTexture)}}renderEnd(){this._presentBackBuffer()}_presentBackBuffer(){let e=this._renderer;e.renderTarget.finishRenderPass(),this._useBackBufferThisRender&&(e.renderTarget.bind(this._targetTexture,!1),this._bigTriangleShader.resources.uTexture=this._backBufferTexture.source,e.encoder.draw({geometry:Y,shader:this._bigTriangleShader,state:this._state}))}_getBackBufferTexture(e){return this._backBufferTexture=this._backBufferTexture||new b.x({source:new k.p({width:e.width,height:e.height,resolution:e._resolution,antialias:this._antialias})}),this._backBufferTexture.source.resize(e.width,e.height,e._resolution),this._backBufferTexture}destroy(){this._backBufferTexture&&(this._backBufferTexture.destroy(),this._backBufferTexture=null)}};K.extension={type:[o.nw.WebGLSystem],name:"backBuffer",priority:1},K.defaultOptions={useBackBuffer:!1};class j{constructor(e){this._colorMaskCache=15,this._renderer=e}setMask(e){this._colorMaskCache!==e&&(this._colorMaskCache=e,this._renderer.gl.colorMask(!!(8&e),!!(4&e),!!(2&e),!!(1&e)))}}j.extension={type:[o.nw.WebGLSystem],name:"colorMask"};class z{constructor(e){this.commandFinished=Promise.resolve(),this._renderer=e}setGeometry(e,t){this._renderer.geometry.bind(e,t.glProgram)}finishRenderPass(){}draw(e){let t=this._renderer,{geometry:r,shader:s,state:n,skipSync:i,topology:a,size:o,start:_,instanceCount:l}=e;t.shader.bind(s,i),t.geometry.bind(r,t.shader._activeProgram),n&&t.state.set(n),t.geometry.draw(a,o,_,l??r.instanceCount)}destroy(){this._renderer=null}}z.extension={type:[o.nw.WebGLSystem],name:"encoder"};var Z=r(18228),q=r(22246);class Q{constructor(e){this._stencilCache={enabled:!1,stencilReference:0,stencilMode:q.D.NONE},this._renderTargetStencilState=Object.create(null),e.renderTarget.onRenderTargetChange.add(this)}contextChange(e){this._gl=e,this._comparisonFuncMapping={always:e.ALWAYS,never:e.NEVER,equal:e.EQUAL,"not-equal":e.NOTEQUAL,less:e.LESS,"less-equal":e.LEQUAL,greater:e.GREATER,"greater-equal":e.GEQUAL},this._stencilOpsMapping={keep:e.KEEP,zero:e.ZERO,replace:e.REPLACE,invert:e.INVERT,"increment-clamp":e.INCR,"decrement-clamp":e.DECR,"increment-wrap":e.INCR_WRAP,"decrement-wrap":e.DECR_WRAP},this._stencilCache.enabled=!1,this._stencilCache.stencilMode=q.D.NONE,this._stencilCache.stencilReference=0}onRenderTargetChange(e){if(this._activeRenderTarget===e)return;this._activeRenderTarget=e;let t=this._renderTargetStencilState[e.uid];t||(t=this._renderTargetStencilState[e.uid]={stencilMode:q.D.DISABLED,stencilReference:0}),this.setStencilMode(t.stencilMode,t.stencilReference)}setStencilMode(e,t){let r=this._renderTargetStencilState[this._activeRenderTarget.uid],s=this._gl,n=Z.L[e],i=this._stencilCache;if(r.stencilMode=e,r.stencilReference=t,e===q.D.DISABLED){this._stencilCache.enabled&&(this._stencilCache.enabled=!1,s.disable(s.STENCIL_TEST));return}this._stencilCache.enabled||(this._stencilCache.enabled=!0,s.enable(s.STENCIL_TEST)),(e!==i.stencilMode||i.stencilReference!==t)&&(i.stencilMode=e,i.stencilReference=t,s.stencilFunc(this._comparisonFuncMapping[n.stencilBack.compare],t,255),s.stencilOp(s.KEEP,s.KEEP,this._stencilOpsMapping[n.stencilBack.passOp]))}}Q.extension={type:[o.nw.WebGLSystem],name:"stencil"};var $=r(15011),J=r(72310),ee=r(45266),et=r(81599);class er{constructor(){this.width=-1,this.height=-1,this.msaa=!1,this.msaaRenderBuffer=[]}}class es{constructor(){this._clearColorCache=[0,0,0,0],this._viewPortCache=new ee.A}init(e,t){this._renderer=e,this._renderTargetSystem=t,e.runners.contextChange.add(this)}contextChange(){this._clearColorCache=[0,0,0,0],this._viewPortCache=new ee.A}copyToTexture(e,t,r,s,n){let i=this._renderTargetSystem,a=this._renderer,o=i.getGpuRenderTarget(e),_=a.gl;return this.finishRenderPass(e),_.bindFramebuffer(_.FRAMEBUFFER,o.resolveTargetFramebuffer),a.texture.bind(t,0),_.copyTexSubImage2D(_.TEXTURE_2D,0,n.x,n.y,r.x,r.y,s.width,s.height),t}startRenderPass(e,t=!0,r,s){let n=this._renderTargetSystem,i=e.colorTexture,a=n.getGpuRenderTarget(e),o=s.y;e.isRoot&&(o=i.pixelHeight-s.height),e.colorTextures.forEach(e=>{this._renderer.texture.unbind(e)});let _=this._renderer.gl;_.bindFramebuffer(_.FRAMEBUFFER,a.framebuffer);let l=this._viewPortCache;(l.x!==s.x||l.y!==o||l.width!==s.width||l.height!==s.height)&&(l.x=s.x,l.y=o,l.width=s.width,l.height=s.height,_.viewport(s.x,o,s.width,s.height)),!a.depthStencilRenderBuffer&&(e.stencil||e.depth)&&this._initStencil(a),this.clear(e,t,r)}finishRenderPass(e){let t=this._renderTargetSystem.getGpuRenderTarget(e);if(!t.msaa)return;let r=this._renderer.gl;r.bindFramebuffer(r.FRAMEBUFFER,t.resolveTargetFramebuffer),r.bindFramebuffer(r.READ_FRAMEBUFFER,t.framebuffer),r.blitFramebuffer(0,0,t.width,t.height,0,0,t.width,t.height,r.COLOR_BUFFER_BIT,r.NEAREST),r.bindFramebuffer(r.FRAMEBUFFER,t.framebuffer)}initGpuRenderTarget(e){let t=this._renderer,r=t.gl,s=new er;return e.colorTexture.resource===t.gl.canvas?s.framebuffer=null:(this._initColor(e,s),r.bindFramebuffer(r.FRAMEBUFFER,null)),s}destroyGpuRenderTarget(e){let t=this._renderer.gl;e.framebuffer&&(t.deleteFramebuffer(e.framebuffer),e.framebuffer=null),e.resolveTargetFramebuffer&&(t.deleteFramebuffer(e.resolveTargetFramebuffer),e.resolveTargetFramebuffer=null),e.depthStencilRenderBuffer&&(t.deleteRenderbuffer(e.depthStencilRenderBuffer),e.depthStencilRenderBuffer=null),e.msaaRenderBuffer.forEach(e=>{t.deleteRenderbuffer(e)}),e.msaaRenderBuffer=null}clear(e,t,r){if(!t)return;let s=this._renderTargetSystem;"boolean"==typeof t&&(t=t?et.E.ALL:et.E.NONE);let n=this._renderer.gl;if(t&et.E.COLOR){r??(r=s.defaultClearColor);let e=this._clearColorCache,t=r;(e[0]!==t[0]||e[1]!==t[1]||e[2]!==t[2]||e[3]!==t[3])&&(e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],n.clearColor(t[0],t[1],t[2],t[3]))}n.clear(t)}resizeGpuRenderTarget(e){if(e.isRoot)return;let t=this._renderTargetSystem.getGpuRenderTarget(e);this._resizeColor(e,t),e.stencil&&this._resizeStencil(t)}_initColor(e,t){let r=this._renderer,s=r.gl,n=s.createFramebuffer();if(t.resolveTargetFramebuffer=n,s.bindFramebuffer(s.FRAMEBUFFER,n),t.width=e.colorTexture.source.pixelWidth,t.height=e.colorTexture.source.pixelHeight,e.colorTextures.forEach((e,n)=>{let i=e.source;i.antialias&&(r.context.supports.msaa?t.msaa=!0:(0,x.Z)("[RenderTexture] Antialiasing on textures is not supported in WebGL1")),r.texture.bindSource(i,0);let a=r.texture.getGlSource(i).texture;s.framebufferTexture2D(s.FRAMEBUFFER,s.COLOR_ATTACHMENT0+n,3553,a,0)}),t.msaa){let r=s.createFramebuffer();t.framebuffer=r,s.bindFramebuffer(s.FRAMEBUFFER,r),e.colorTextures.forEach((e,r)=>{let n=s.createRenderbuffer();t.msaaRenderBuffer[r]=n})}else t.framebuffer=n;this._resizeColor(e,t)}_resizeColor(e,t){let r=e.colorTexture.source;if(t.width=r.pixelWidth,t.height=r.pixelHeight,e.colorTextures.forEach((e,t)=>{0!==t&&e.source.resize(r.width,r.height,r._resolution)}),t.msaa){let r=this._renderer,s=r.gl,n=t.framebuffer;s.bindFramebuffer(s.FRAMEBUFFER,n),e.colorTextures.forEach((e,n)=>{let i=e.source;r.texture.bindSource(i,0);let a=r.texture.getGlSource(i).internalFormat,o=t.msaaRenderBuffer[n];s.bindRenderbuffer(s.RENDERBUFFER,o),s.renderbufferStorageMultisample(s.RENDERBUFFER,4,a,i.pixelWidth,i.pixelHeight),s.framebufferRenderbuffer(s.FRAMEBUFFER,s.COLOR_ATTACHMENT0+n,s.RENDERBUFFER,o)})}}_initStencil(e){if(null===e.framebuffer)return;let t=this._renderer.gl,r=t.createRenderbuffer();e.depthStencilRenderBuffer=r,t.bindRenderbuffer(t.RENDERBUFFER,r),t.framebufferRenderbuffer(t.FRAMEBUFFER,t.DEPTH_STENCIL_ATTACHMENT,t.RENDERBUFFER,r),this._resizeStencil(e)}_resizeStencil(e){let t=this._renderer.gl;t.bindRenderbuffer(t.RENDERBUFFER,e.depthStencilRenderBuffer),e.msaa?t.renderbufferStorageMultisample(t.RENDERBUFFER,4,t.DEPTH24_STENCIL8,e.width,e.height):t.renderbufferStorage(t.RENDERBUFFER,2===this._renderer.context.webGLVersion?t.DEPTH24_STENCIL8:t.DEPTH_STENCIL,e.width,e.height)}}class en extends J.l{constructor(e){super(e),this.adaptor=new es,this.adaptor.init(e,this)}}en.extension={type:[o.nw.WebGLSystem],name:"renderTarget"};var ei=r(37861),ea=r(87434);let eo=class e{constructor(){this.gl=null,this.stateId=0,this.polygonOffset=0,this.blendMode="none",this._blendEq=!1,this.map=[],this.map[0]=this.setBlend,this.map[1]=this.setOffset,this.map[2]=this.setCullFace,this.map[3]=this.setDepthTest,this.map[4]=this.setFrontFace,this.map[5]=this.setDepthMask,this.checks=[],this.defaultState=p.Z.for2d()}contextChange(e){this.gl=e,this.blendModesMap=function(e){let t={};return t.normal=[e.ONE,e.ONE_MINUS_SRC_ALPHA],t.add=[e.ONE,e.ONE],t.multiply=[e.DST_COLOR,e.ONE_MINUS_SRC_ALPHA,e.ONE,e.ONE_MINUS_SRC_ALPHA],t.screen=[e.ONE,e.ONE_MINUS_SRC_COLOR,e.ONE,e.ONE_MINUS_SRC_ALPHA],t.none=[0,0],t["normal-npm"]=[e.SRC_ALPHA,e.ONE_MINUS_SRC_ALPHA,e.ONE,e.ONE_MINUS_SRC_ALPHA],t["add-npm"]=[e.SRC_ALPHA,e.ONE,e.ONE,e.ONE],t["screen-npm"]=[e.SRC_ALPHA,e.ONE_MINUS_SRC_COLOR,e.ONE,e.ONE_MINUS_SRC_ALPHA],t.erase=[e.ZERO,e.ONE_MINUS_SRC_ALPHA],t}(e),this.reset()}set(e){if(e=e||this.defaultState,this.stateId!==e.data){let t=this.stateId^e.data,r=0;for(;t;)1&t&&this.map[r].call(this,!!(e.data&1<<r)),t>>=1,r++;this.stateId=e.data}for(let t=0;t<this.checks.length;t++)this.checks[t](this,e)}forceState(e){e=e||this.defaultState;for(let t=0;t<this.map.length;t++)this.map[t].call(this,!!(e.data&1<<t));for(let t=0;t<this.checks.length;t++)this.checks[t](this,e);this.stateId=e.data}setBlend(t){this._updateCheck(e._checkBlendMode,t),this.gl[t?"enable":"disable"](this.gl.BLEND)}setOffset(t){this._updateCheck(e._checkPolygonOffset,t),this.gl[t?"enable":"disable"](this.gl.POLYGON_OFFSET_FILL)}setDepthTest(e){this.gl[e?"enable":"disable"](this.gl.DEPTH_TEST)}setDepthMask(e){this.gl.depthMask(e)}setCullFace(e){this.gl[e?"enable":"disable"](this.gl.CULL_FACE)}setFrontFace(e){this.gl.frontFace(this.gl[e?"CW":"CCW"])}setBlendMode(e){if(this.blendModesMap[e]||(e="normal"),e===this.blendMode)return;this.blendMode=e;let t=this.blendModesMap[e],r=this.gl;2===t.length?r.blendFunc(t[0],t[1]):r.blendFuncSeparate(t[0],t[1],t[2],t[3]),6===t.length?(this._blendEq=!0,r.blendEquationSeparate(t[4],t[5])):this._blendEq&&(this._blendEq=!1,r.blendEquationSeparate(r.FUNC_ADD,r.FUNC_ADD))}setPolygonOffset(e,t){this.gl.polygonOffset(e,t)}reset(){this.gl.pixelStorei(this.gl.UNPACK_FLIP_Y_WEBGL,!1),this.forceState(this.defaultState),this._blendEq=!0,this.blendMode="",this.setBlendMode("normal")}_updateCheck(e,t){let r=this.checks.indexOf(e);t&&-1===r?this.checks.push(e):t||-1===r||this.checks.splice(r,1)}static _checkBlendMode(e,t){e.setBlendMode(t.blendMode)}static _checkPolygonOffset(e,t){e.setPolygonOffset(1,t.polygonOffset)}destroy(){this.gl=null,this.checks.length=0}};eo.extension={type:[o.nw.WebGLSystem],name:"state"};class e_{constructor(e){this.target=M.TEXTURE_2D,this.texture=e,this.width=-1,this.height=-1,this.type=H.UNSIGNED_BYTE,this.internalFormat=y.RGBA,this.format=y.RGBA,this.samplerType=0}}let el={id:"image",upload(e,t,r){t.width===e.width||t.height===e.height?r.texSubImage2D(r.TEXTURE_2D,0,0,0,t.format,t.type,e.resource):r.texImage2D(t.target,0,t.internalFormat,e.width,e.height,0,t.format,t.type,e.resource),t.width=e.width,t.height=e.height}},eu={"bc1-rgba-unorm":!0,"bc1-rgba-unorm-srgb":!0,"bc2-rgba-unorm":!0,"bc2-rgba-unorm-srgb":!0,"bc3-rgba-unorm":!0,"bc3-rgba-unorm-srgb":!0,"bc4-r-unorm":!0,"bc4-r-snorm":!0,"bc5-rg-unorm":!0,"bc5-rg-snorm":!0,"bc6h-rgb-ufloat":!0,"bc6h-rgb-float":!0,"bc7-rgba-unorm":!0,"bc7-rgba-unorm-srgb":!0,"etc2-rgb8unorm":!0,"etc2-rgb8unorm-srgb":!0,"etc2-rgb8a1unorm":!0,"etc2-rgb8a1unorm-srgb":!0,"etc2-rgba8unorm":!0,"etc2-rgba8unorm-srgb":!0,"eac-r11unorm":!0,"eac-r11snorm":!0,"eac-rg11unorm":!0,"eac-rg11snorm":!0,"astc-4x4-unorm":!0,"astc-4x4-unorm-srgb":!0,"astc-5x4-unorm":!0,"astc-5x4-unorm-srgb":!0,"astc-5x5-unorm":!0,"astc-5x5-unorm-srgb":!0,"astc-6x5-unorm":!0,"astc-6x5-unorm-srgb":!0,"astc-6x6-unorm":!0,"astc-6x6-unorm-srgb":!0,"astc-8x5-unorm":!0,"astc-8x5-unorm-srgb":!0,"astc-8x6-unorm":!0,"astc-8x6-unorm-srgb":!0,"astc-8x8-unorm":!0,"astc-8x8-unorm-srgb":!0,"astc-10x5-unorm":!0,"astc-10x5-unorm-srgb":!0,"astc-10x6-unorm":!0,"astc-10x6-unorm-srgb":!0,"astc-10x8-unorm":!0,"astc-10x8-unorm-srgb":!0,"astc-10x10-unorm":!0,"astc-10x10-unorm-srgb":!0,"astc-12x10-unorm":!0,"astc-12x10-unorm-srgb":!0,"astc-12x12-unorm":!0,"astc-12x12-unorm-srgb":!0},eh={id:"compressed",upload(e,t,r){r.pixelStorei(r.UNPACK_ALIGNMENT,4);let s=e.pixelWidth,n=e.pixelHeight,i=!!eu[e.format];for(let a=0;a<e.resource.length;a++){let o=e.resource[a];i?r.compressedTexImage2D(r.TEXTURE_2D,a,t.internalFormat,s,n,0,o):r.texImage2D(r.TEXTURE_2D,a,t.internalFormat,s,n,0,t.format,t.type,o),s=Math.max(s>>1,1),n=Math.max(n>>1,1)}}},ec={id:"image",upload(e,t,r,s){let n="premultiply-alpha-on-upload"===e.alphaMode;r.pixelStorei(r.UNPACK_PREMULTIPLY_ALPHA_WEBGL,n);let i=t.width,a=t.height,o=e.pixelWidth,_=e.pixelHeight,l=e.resourceWidth,u=e.resourceHeight;l<o||u<_?((i!==o||a!==_)&&r.texImage2D(t.target,0,t.internalFormat,o,_,0,t.format,t.type,null),2===s?r.texSubImage2D(r.TEXTURE_2D,0,0,0,l,u,t.format,t.type,e.resource):r.texSubImage2D(r.TEXTURE_2D,0,0,0,t.format,t.type,e.resource)):i===o||a===_?r.texSubImage2D(r.TEXTURE_2D,0,0,0,t.format,t.type,e.resource):2===s?r.texImage2D(t.target,0,t.internalFormat,o,_,0,t.format,t.type,e.resource):r.texImage2D(t.target,0,t.internalFormat,t.format,t.type,e.resource),t.width=o,t.height=_}},ed={id:"video",upload(e,t,r,s){if(!e.isValid)return void r.texImage2D(t.target,0,t.internalFormat,1,1,0,t.format,t.type,null);ec.upload(e,t,r,s)}},eE={linear:9729,nearest:9728},eg={linear:{linear:9987,nearest:9985},nearest:{linear:9986,nearest:9984}},ef={"clamp-to-edge":33071,repeat:10497,"mirror-repeat":33648},eR={never:512,less:513,equal:514,"less-equal":515,greater:516,"not-equal":517,"greater-equal":518,always:519};function eT(e,t,r,s,n,i,a,o){if(!o||"repeat"!==e.addressModeU||"repeat"!==e.addressModeV||"repeat"!==e.addressModeW){let r=ef[a?"clamp-to-edge":e.addressModeU],s=ef[a?"clamp-to-edge":e.addressModeV],o=ef[a?"clamp-to-edge":e.addressModeW];t[n](i,t.TEXTURE_WRAP_S,r),t[n](i,t.TEXTURE_WRAP_T,s),t.TEXTURE_WRAP_R&&t[n](i,t.TEXTURE_WRAP_R,o)}if(o&&"linear"===e.magFilter||t[n](i,t.TEXTURE_MAG_FILTER,eE[e.magFilter]),r){if(!o||"linear"!==e.mipmapFilter){let r=eg[e.minFilter][e.mipmapFilter];t[n](i,t.TEXTURE_MIN_FILTER,r)}}else t[n](i,t.TEXTURE_MIN_FILTER,eE[e.minFilter]);if(s&&e.maxAnisotropy>1){let r=Math.min(e.maxAnisotropy,t.getParameter(s.MAX_TEXTURE_MAX_ANISOTROPY_EXT));t[n](i,s.TEXTURE_MAX_ANISOTROPY_EXT,r)}e.compare&&t[n](i,t.TEXTURE_COMPARE_FUNC,eR[e.compare])}class em{constructor(e){this.managedTextures=[],this._glTextures=Object.create(null),this._glSamplers=Object.create(null),this._boundTextures=[],this._activeTextureLocation=-1,this._boundSamplers=Object.create(null),this._uploads={image:ec,buffer:el,video:ed,compressed:eh},this._useSeparateSamplers=!1,this._renderer=e}contextChange(e){if(this._gl=e,!this._mapFormatToInternalFormat){var t;let r,s;this._mapFormatToInternalFormat=(t=this._renderer.context.extensions,r={},s=e.RGBA,e instanceof U.z.get().getWebGLRenderingContext()?t.srgb&&(r={"rgba8unorm-srgb":t.srgb.SRGB8_ALPHA8_EXT,"bgra8unorm-srgb":t.srgb.SRGB8_ALPHA8_EXT}):(r={"rgba8unorm-srgb":e.SRGB8_ALPHA8,"bgra8unorm-srgb":e.SRGB8_ALPHA8},s=e.RGBA8),{r8unorm:e.R8,r8snorm:e.R8_SNORM,r8uint:e.R8UI,r8sint:e.R8I,r16uint:e.R16UI,r16sint:e.R16I,r16float:e.R16F,rg8unorm:e.RG8,rg8snorm:e.RG8_SNORM,rg8uint:e.RG8UI,rg8sint:e.RG8I,r32uint:e.R32UI,r32sint:e.R32I,r32float:e.R32F,rg16uint:e.RG16UI,rg16sint:e.RG16I,rg16float:e.RG16F,rgba8unorm:e.RGBA,...r,rgba8snorm:e.RGBA8_SNORM,rgba8uint:e.RGBA8UI,rgba8sint:e.RGBA8I,bgra8unorm:s,rgb9e5ufloat:e.RGB9_E5,rgb10a2unorm:e.RGB10_A2,rg11b10ufloat:e.R11F_G11F_B10F,rg32uint:e.RG32UI,rg32sint:e.RG32I,rg32float:e.RG32F,rgba16uint:e.RGBA16UI,rgba16sint:e.RGBA16I,rgba16float:e.RGBA16F,rgba32uint:e.RGBA32UI,rgba32sint:e.RGBA32I,rgba32float:e.RGBA32F,stencil8:e.STENCIL_INDEX8,depth16unorm:e.DEPTH_COMPONENT16,depth24plus:e.DEPTH_COMPONENT24,"depth24plus-stencil8":e.DEPTH24_STENCIL8,depth32float:e.DEPTH_COMPONENT32F,"depth32float-stencil8":e.DEPTH32F_STENCIL8,...t.s3tc?{"bc1-rgba-unorm":t.s3tc.COMPRESSED_RGBA_S3TC_DXT1_EXT,"bc2-rgba-unorm":t.s3tc.COMPRESSED_RGBA_S3TC_DXT3_EXT,"bc3-rgba-unorm":t.s3tc.COMPRESSED_RGBA_S3TC_DXT5_EXT}:{},...t.s3tc_sRGB?{"bc1-rgba-unorm-srgb":t.s3tc_sRGB.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT,"bc2-rgba-unorm-srgb":t.s3tc_sRGB.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT,"bc3-rgba-unorm-srgb":t.s3tc_sRGB.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT}:{},...t.rgtc?{"bc4-r-unorm":t.rgtc.COMPRESSED_RED_RGTC1_EXT,"bc4-r-snorm":t.rgtc.COMPRESSED_SIGNED_RED_RGTC1_EXT,"bc5-rg-unorm":t.rgtc.COMPRESSED_RED_GREEN_RGTC2_EXT,"bc5-rg-snorm":t.rgtc.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT}:{},...t.bptc?{"bc6h-rgb-float":t.bptc.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT,"bc6h-rgb-ufloat":t.bptc.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT,"bc7-rgba-unorm":t.bptc.COMPRESSED_RGBA_BPTC_UNORM_EXT,"bc7-rgba-unorm-srgb":t.bptc.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT}:{},...t.etc?{"etc2-rgb8unorm":t.etc.COMPRESSED_RGB8_ETC2,"etc2-rgb8unorm-srgb":t.etc.COMPRESSED_SRGB8_ETC2,"etc2-rgb8a1unorm":t.etc.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2,"etc2-rgb8a1unorm-srgb":t.etc.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2,"etc2-rgba8unorm":t.etc.COMPRESSED_RGBA8_ETC2_EAC,"etc2-rgba8unorm-srgb":t.etc.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC,"eac-r11unorm":t.etc.COMPRESSED_R11_EAC,"eac-rg11unorm":t.etc.COMPRESSED_SIGNED_RG11_EAC}:{},...t.astc?{"astc-4x4-unorm":t.astc.COMPRESSED_RGBA_ASTC_4x4_KHR,"astc-4x4-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR,"astc-5x4-unorm":t.astc.COMPRESSED_RGBA_ASTC_5x4_KHR,"astc-5x4-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR,"astc-5x5-unorm":t.astc.COMPRESSED_RGBA_ASTC_5x5_KHR,"astc-5x5-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR,"astc-6x5-unorm":t.astc.COMPRESSED_RGBA_ASTC_6x5_KHR,"astc-6x5-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR,"astc-6x6-unorm":t.astc.COMPRESSED_RGBA_ASTC_6x6_KHR,"astc-6x6-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR,"astc-8x5-unorm":t.astc.COMPRESSED_RGBA_ASTC_8x5_KHR,"astc-8x5-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR,"astc-8x6-unorm":t.astc.COMPRESSED_RGBA_ASTC_8x6_KHR,"astc-8x6-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR,"astc-8x8-unorm":t.astc.COMPRESSED_RGBA_ASTC_8x8_KHR,"astc-8x8-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR,"astc-10x5-unorm":t.astc.COMPRESSED_RGBA_ASTC_10x5_KHR,"astc-10x5-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR,"astc-10x6-unorm":t.astc.COMPRESSED_RGBA_ASTC_10x6_KHR,"astc-10x6-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR,"astc-10x8-unorm":t.astc.COMPRESSED_RGBA_ASTC_10x8_KHR,"astc-10x8-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR,"astc-10x10-unorm":t.astc.COMPRESSED_RGBA_ASTC_10x10_KHR,"astc-10x10-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR,"astc-12x10-unorm":t.astc.COMPRESSED_RGBA_ASTC_12x10_KHR,"astc-12x10-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR,"astc-12x12-unorm":t.astc.COMPRESSED_RGBA_ASTC_12x12_KHR,"astc-12x12-unorm-srgb":t.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR}:{}}),this._mapFormatToType={r8unorm:e.UNSIGNED_BYTE,r8snorm:e.BYTE,r8uint:e.UNSIGNED_BYTE,r8sint:e.BYTE,r16uint:e.UNSIGNED_SHORT,r16sint:e.SHORT,r16float:e.HALF_FLOAT,rg8unorm:e.UNSIGNED_BYTE,rg8snorm:e.BYTE,rg8uint:e.UNSIGNED_BYTE,rg8sint:e.BYTE,r32uint:e.UNSIGNED_INT,r32sint:e.INT,r32float:e.FLOAT,rg16uint:e.UNSIGNED_SHORT,rg16sint:e.SHORT,rg16float:e.HALF_FLOAT,rgba8unorm:e.UNSIGNED_BYTE,"rgba8unorm-srgb":e.UNSIGNED_BYTE,rgba8snorm:e.BYTE,rgba8uint:e.UNSIGNED_BYTE,rgba8sint:e.BYTE,bgra8unorm:e.UNSIGNED_BYTE,"bgra8unorm-srgb":e.UNSIGNED_BYTE,rgb9e5ufloat:e.UNSIGNED_INT_5_9_9_9_REV,rgb10a2unorm:e.UNSIGNED_INT_2_10_10_10_REV,rg11b10ufloat:e.UNSIGNED_INT_10F_11F_11F_REV,rg32uint:e.UNSIGNED_INT,rg32sint:e.INT,rg32float:e.FLOAT,rgba16uint:e.UNSIGNED_SHORT,rgba16sint:e.SHORT,rgba16float:e.HALF_FLOAT,rgba32uint:e.UNSIGNED_INT,rgba32sint:e.INT,rgba32float:e.FLOAT,stencil8:e.UNSIGNED_BYTE,depth16unorm:e.UNSIGNED_SHORT,depth24plus:e.UNSIGNED_INT,"depth24plus-stencil8":e.UNSIGNED_INT_24_8,depth32float:e.FLOAT,"depth32float-stencil8":e.FLOAT_32_UNSIGNED_INT_24_8_REV},this._mapFormatToFormat={r8unorm:e.RED,r8snorm:e.RED,r8uint:e.RED,r8sint:e.RED,r16uint:e.RED,r16sint:e.RED,r16float:e.RED,rg8unorm:e.RG,rg8snorm:e.RG,rg8uint:e.RG,rg8sint:e.RG,r32uint:e.RED,r32sint:e.RED,r32float:e.RED,rg16uint:e.RG,rg16sint:e.RG,rg16float:e.RG,rgba8unorm:e.RGBA,"rgba8unorm-srgb":e.RGBA,rgba8snorm:e.RGBA,rgba8uint:e.RGBA,rgba8sint:e.RGBA,bgra8unorm:e.RGBA,"bgra8unorm-srgb":e.RGBA,rgb9e5ufloat:e.RGB,rgb10a2unorm:e.RGBA,rg11b10ufloat:e.RGB,rg32uint:e.RG,rg32sint:e.RG,rg32float:e.RG,rgba16uint:e.RGBA,rgba16sint:e.RGBA,rgba16float:e.RGBA,rgba32uint:e.RGBA,rgba32sint:e.RGBA,rgba32float:e.RGBA,stencil8:e.STENCIL_INDEX8,depth16unorm:e.DEPTH_COMPONENT,depth24plus:e.DEPTH_COMPONENT,"depth24plus-stencil8":e.DEPTH_STENCIL,depth32float:e.DEPTH_COMPONENT,"depth32float-stencil8":e.DEPTH_STENCIL}}this._glTextures=Object.create(null),this._glSamplers=Object.create(null),this._boundSamplers=Object.create(null);for(let e=0;e<16;e++)this.bind(b.x.EMPTY,e)}initSource(e){this.bind(e)}bind(e,t=0){let r=e.source;e?(this.bindSource(r,t),this._useSeparateSamplers&&this._bindSampler(r.style,t)):(this.bindSource(null,t),this._useSeparateSamplers&&this._bindSampler(null,t))}bindSource(e,t=0){let r=this._gl;if(e._touched=this._renderer.textureGC.count,this._boundTextures[t]!==e){this._boundTextures[t]=e,this._activateLocation(t),e=e||b.x.EMPTY.source;let s=this.getGlSource(e);r.bindTexture(s.target,s.texture)}}_bindSampler(e,t=0){let r=this._gl;if(!e){this._boundSamplers[t]=null,r.bindSampler(t,null);return}let s=this._getGlSampler(e);this._boundSamplers[t]!==s&&(this._boundSamplers[t]=s,r.bindSampler(t,s))}unbind(e){let t=e.source,r=this._boundTextures,s=this._gl;for(let e=0;e<r.length;e++)if(r[e]===t){this._activateLocation(e);let n=this.getGlSource(t);s.bindTexture(n.target,null),r[e]=null}}_activateLocation(e){this._activeTextureLocation!==e&&(this._activeTextureLocation=e,this._gl.activeTexture(this._gl.TEXTURE0+e))}_initSource(e){let t=new e_(this._gl.createTexture());if(t.type=this._mapFormatToType[e.format],t.internalFormat=this._mapFormatToInternalFormat[e.format],t.format=this._mapFormatToFormat[e.format],e.autoGenerateMipmaps&&(this._renderer.context.supports.nonPowOf2mipmaps||e.isPowerOfTwo)){let t=Math.max(e.width,e.height);e.mipLevelCount=Math.floor(Math.log2(t))+1}return this._glTextures[e.uid]=t,this.managedTextures.includes(e)||(e.on("update",this.onSourceUpdate,this),e.on("resize",this.onSourceUpdate,this),e.on("styleChange",this.onStyleChange,this),e.on("destroy",this.onSourceDestroy,this),e.on("unload",this.onSourceUnload,this),e.on("updateMipmaps",this.onUpdateMipmaps,this),this.managedTextures.push(e)),this.onSourceUpdate(e),this.updateStyle(e,!1),t}onStyleChange(e){this.updateStyle(e,!1)}updateStyle(e,t){let r=this._gl,s=this.getGlSource(e);r.bindTexture(r.TEXTURE_2D,s.texture),this._boundTextures[this._activeTextureLocation]=e,eT(e.style,r,e.mipLevelCount>1,this._renderer.context.extensions.anisotropicFiltering,"texParameteri",r.TEXTURE_2D,!this._renderer.context.supports.nonPowOf2wrapping&&!e.isPowerOfTwo,t)}onSourceUnload(e){let t=this._glTextures[e.uid];t&&(this.unbind(e),this._glTextures[e.uid]=null,this._gl.deleteTexture(t.texture))}onSourceUpdate(e){let t=this._gl,r=this.getGlSource(e);t.bindTexture(t.TEXTURE_2D,r.texture),this._boundTextures[this._activeTextureLocation]=e,this._uploads[e.uploadMethodId]?this._uploads[e.uploadMethodId].upload(e,r,t,this._renderer.context.webGLVersion):t.texImage2D(t.TEXTURE_2D,0,t.RGBA,e.pixelWidth,e.pixelHeight,0,t.RGBA,t.UNSIGNED_BYTE,null),e.autoGenerateMipmaps&&e.mipLevelCount>1&&this.onUpdateMipmaps(e,!1)}onUpdateMipmaps(e,t=!0){t&&this.bindSource(e,0);let r=this.getGlSource(e);this._gl.generateMipmap(r.target)}onSourceDestroy(e){e.off("destroy",this.onSourceDestroy,this),e.off("update",this.onSourceUpdate,this),e.off("resize",this.onSourceUpdate,this),e.off("unload",this.onSourceUnload,this),e.off("styleChange",this.onStyleChange,this),e.off("updateMipmaps",this.onUpdateMipmaps,this),this.managedTextures.splice(this.managedTextures.indexOf(e),1),this.onSourceUnload(e)}_initSampler(e){let t=this._gl,r=this._gl.createSampler();return this._glSamplers[e._resourceId]=r,eT(e,t,this._boundTextures[this._activeTextureLocation].mipLevelCount>1,this._renderer.context.extensions.anisotropicFiltering,"samplerParameteri",r,!1,!0),this._glSamplers[e._resourceId]}_getGlSampler(e){return this._glSamplers[e._resourceId]||this._initSampler(e)}getGlSource(e){return this._glTextures[e.uid]||this._initSource(e)}generateCanvas(e){let{pixels:t,width:r,height:s}=this.getPixels(e),n=U.z.get().createCanvas();n.width=r,n.height=s;let i=n.getContext("2d");if(i){let e=i.createImageData(r,s);e.data.set(t),i.putImageData(e,0,0)}return n}getPixels(e){let t=e.source.resolution,r=e.frame,s=Math.max(Math.round(r.width*t),1),n=Math.max(Math.round(r.height*t),1),i=new Uint8Array(4*s*n),a=this._renderer,o=a.renderTarget.getRenderTarget(e),_=a.renderTarget.getGpuRenderTarget(o),l=a.gl;return l.bindFramebuffer(l.FRAMEBUFFER,_.resolveTargetFramebuffer),l.readPixels(Math.round(r.x*t),Math.round(r.y*t),s,n,l.RGBA,l.UNSIGNED_BYTE,i),{pixels:new Uint8ClampedArray(i.buffer),width:s,height:n}}destroy(){this.managedTextures.slice().forEach(e=>this.onSourceDestroy(e)),this.managedTextures=null,this._renderer=null}}em.extension={type:[o.nw.WebGLSystem],name:"texture"};let eb=[...N.N,$.S,K,F,O,em,en,X,ea.V,ei.S,z,eo,Q,j],ex=[...N.U],eS=[A,S,T],ep=[],eA=[],eB=[];o.Rw.handleByNamedList(o.nw.WebGLSystem,ep),o.Rw.handleByNamedList(o.nw.WebGLPipes,eA),o.Rw.handleByNamedList(o.nw.WebGLPipesAdaptor,eB),o.Rw.add(...eb,...ex,...eS);class eN extends B.I{constructor(){super({name:"webgl",type:G.g.WEBGL,systems:ep,renderPipes:eA,renderPipeAdaptors:eB})}}},17094:function(e,t,r){r.d(t,{y:()=>a});var s=r(29465),n=r(73109);let i=new Int32Array(s.A);for(let e=0;e<s.A;e++)i[e]=e;let a=new n.o({uTextures:{value:i,type:"i32",size:s.A}},{isStatic:!0})}}]);
21
- //# sourceMappingURL=582.8f4b5264.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"static/js/async/582.8f4b5264.js","sources":["webpack://android-playground/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gl/buffer/const.mjs","webpack://android-playground/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gl/texture/const.mjs","webpack://android-playground/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/scene/graphics/gl/GlGraphicsAdaptor.mjs","webpack://android-playground/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/scene/mesh/gl/GlMeshAdaptor.mjs","webpack://android-playground/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/batcher/gl/GlBatchAdaptor.mjs","webpack://android-playground/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gl/buffer/GlBuffer.mjs","webpack://android-playground/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gl/buffer/GlBufferSystem.mjs","webpack://android-playground/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gl/context/GlContextSystem.mjs","webpack://android-playground/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gl/geometry/utils/getGlTypeFromFormat.mjs","webpack://android-playground/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gl/geometry/GlGeometrySystem.mjs","webpack://android-playground/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gl/GlBackBufferSystem.mjs","webpack://android-playground/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gl/GlColorMaskSystem.mjs","webpack://android-playground/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gl/GlEncoderSystem.mjs","webpack://android-playground/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gl/GlStencilSystem.mjs","webpack://android-playground/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gl/GlRenderTarget.mjs","webpack://android-playground/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gl/renderTarget/GlRenderTargetAdaptor.mjs","webpack://android-playground/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gl/renderTarget/GlRenderTargetSystem.mjs","webpack://android-playground/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gl/state/GlStateSystem.mjs","webpack://android-playground/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gl/state/mapWebGLBlendModesToPixi.mjs","webpack://android-playground/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gl/texture/GlTexture.mjs","webpack://android-playground/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gl/texture/uploaders/glUploadBufferImageResource.mjs","webpack://android-playground/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gl/texture/uploaders/glUploadCompressedTextureResource.mjs","webpack://android-playground/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gl/texture/uploaders/glUploadImageResource.mjs","webpack://android-playground/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gl/texture/uploaders/glUploadVideoResource.mjs","webpack://android-playground/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gl/texture/utils/pixiToGlMaps.mjs","webpack://android-playground/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gl/texture/utils/applyStyleParams.mjs","webpack://android-playground/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gl/texture/GlTextureSystem.mjs","webpack://android-playground/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gl/texture/utils/mapFormatToGlInternalFormat.mjs","webpack://android-playground/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gl/texture/utils/mapFormatToGlType.mjs","webpack://android-playground/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gl/texture/utils/mapFormatToGlFormat.mjs","webpack://android-playground/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gl/WebGLRenderer.mjs","webpack://android-playground/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gl/shader/batchSamplersUniformGroup.mjs"],"sourcesContent":["\"use strict\";\nvar BUFFER_TYPE = /* @__PURE__ */ ((BUFFER_TYPE2) => {\n BUFFER_TYPE2[BUFFER_TYPE2[\"ELEMENT_ARRAY_BUFFER\"] = 34963] = \"ELEMENT_ARRAY_BUFFER\";\n BUFFER_TYPE2[BUFFER_TYPE2[\"ARRAY_BUFFER\"] = 34962] = \"ARRAY_BUFFER\";\n BUFFER_TYPE2[BUFFER_TYPE2[\"UNIFORM_BUFFER\"] = 35345] = \"UNIFORM_BUFFER\";\n return BUFFER_TYPE2;\n})(BUFFER_TYPE || {});\n\nexport { BUFFER_TYPE };\n//# sourceMappingURL=const.mjs.map\n","\"use strict\";\nvar GL_FORMATS = /* @__PURE__ */ ((GL_FORMATS2) => {\n GL_FORMATS2[GL_FORMATS2[\"RGBA\"] = 6408] = \"RGBA\";\n GL_FORMATS2[GL_FORMATS2[\"RGB\"] = 6407] = \"RGB\";\n GL_FORMATS2[GL_FORMATS2[\"RG\"] = 33319] = \"RG\";\n GL_FORMATS2[GL_FORMATS2[\"RED\"] = 6403] = \"RED\";\n GL_FORMATS2[GL_FORMATS2[\"RGBA_INTEGER\"] = 36249] = \"RGBA_INTEGER\";\n GL_FORMATS2[GL_FORMATS2[\"RGB_INTEGER\"] = 36248] = \"RGB_INTEGER\";\n GL_FORMATS2[GL_FORMATS2[\"RG_INTEGER\"] = 33320] = \"RG_INTEGER\";\n GL_FORMATS2[GL_FORMATS2[\"RED_INTEGER\"] = 36244] = \"RED_INTEGER\";\n GL_FORMATS2[GL_FORMATS2[\"ALPHA\"] = 6406] = \"ALPHA\";\n GL_FORMATS2[GL_FORMATS2[\"LUMINANCE\"] = 6409] = \"LUMINANCE\";\n GL_FORMATS2[GL_FORMATS2[\"LUMINANCE_ALPHA\"] = 6410] = \"LUMINANCE_ALPHA\";\n GL_FORMATS2[GL_FORMATS2[\"DEPTH_COMPONENT\"] = 6402] = \"DEPTH_COMPONENT\";\n GL_FORMATS2[GL_FORMATS2[\"DEPTH_STENCIL\"] = 34041] = \"DEPTH_STENCIL\";\n return GL_FORMATS2;\n})(GL_FORMATS || {});\nvar GL_TARGETS = /* @__PURE__ */ ((GL_TARGETS2) => {\n GL_TARGETS2[GL_TARGETS2[\"TEXTURE_2D\"] = 3553] = \"TEXTURE_2D\";\n GL_TARGETS2[GL_TARGETS2[\"TEXTURE_CUBE_MAP\"] = 34067] = \"TEXTURE_CUBE_MAP\";\n GL_TARGETS2[GL_TARGETS2[\"TEXTURE_2D_ARRAY\"] = 35866] = \"TEXTURE_2D_ARRAY\";\n GL_TARGETS2[GL_TARGETS2[\"TEXTURE_CUBE_MAP_POSITIVE_X\"] = 34069] = \"TEXTURE_CUBE_MAP_POSITIVE_X\";\n GL_TARGETS2[GL_TARGETS2[\"TEXTURE_CUBE_MAP_NEGATIVE_X\"] = 34070] = \"TEXTURE_CUBE_MAP_NEGATIVE_X\";\n GL_TARGETS2[GL_TARGETS2[\"TEXTURE_CUBE_MAP_POSITIVE_Y\"] = 34071] = \"TEXTURE_CUBE_MAP_POSITIVE_Y\";\n GL_TARGETS2[GL_TARGETS2[\"TEXTURE_CUBE_MAP_NEGATIVE_Y\"] = 34072] = \"TEXTURE_CUBE_MAP_NEGATIVE_Y\";\n GL_TARGETS2[GL_TARGETS2[\"TEXTURE_CUBE_MAP_POSITIVE_Z\"] = 34073] = \"TEXTURE_CUBE_MAP_POSITIVE_Z\";\n GL_TARGETS2[GL_TARGETS2[\"TEXTURE_CUBE_MAP_NEGATIVE_Z\"] = 34074] = \"TEXTURE_CUBE_MAP_NEGATIVE_Z\";\n return GL_TARGETS2;\n})(GL_TARGETS || {});\nvar GL_WRAP_MODES = /* @__PURE__ */ ((GL_WRAP_MODES2) => {\n GL_WRAP_MODES2[GL_WRAP_MODES2[\"CLAMP\"] = 33071] = \"CLAMP\";\n GL_WRAP_MODES2[GL_WRAP_MODES2[\"REPEAT\"] = 10497] = \"REPEAT\";\n GL_WRAP_MODES2[GL_WRAP_MODES2[\"MIRRORED_REPEAT\"] = 33648] = \"MIRRORED_REPEAT\";\n return GL_WRAP_MODES2;\n})(GL_WRAP_MODES || {});\nvar GL_TYPES = /* @__PURE__ */ ((GL_TYPES2) => {\n GL_TYPES2[GL_TYPES2[\"UNSIGNED_BYTE\"] = 5121] = \"UNSIGNED_BYTE\";\n GL_TYPES2[GL_TYPES2[\"UNSIGNED_SHORT\"] = 5123] = \"UNSIGNED_SHORT\";\n GL_TYPES2[GL_TYPES2[\"UNSIGNED_SHORT_5_6_5\"] = 33635] = \"UNSIGNED_SHORT_5_6_5\";\n GL_TYPES2[GL_TYPES2[\"UNSIGNED_SHORT_4_4_4_4\"] = 32819] = \"UNSIGNED_SHORT_4_4_4_4\";\n GL_TYPES2[GL_TYPES2[\"UNSIGNED_SHORT_5_5_5_1\"] = 32820] = \"UNSIGNED_SHORT_5_5_5_1\";\n GL_TYPES2[GL_TYPES2[\"UNSIGNED_INT\"] = 5125] = \"UNSIGNED_INT\";\n GL_TYPES2[GL_TYPES2[\"UNSIGNED_INT_10F_11F_11F_REV\"] = 35899] = \"UNSIGNED_INT_10F_11F_11F_REV\";\n GL_TYPES2[GL_TYPES2[\"UNSIGNED_INT_2_10_10_10_REV\"] = 33640] = \"UNSIGNED_INT_2_10_10_10_REV\";\n GL_TYPES2[GL_TYPES2[\"UNSIGNED_INT_24_8\"] = 34042] = \"UNSIGNED_INT_24_8\";\n GL_TYPES2[GL_TYPES2[\"UNSIGNED_INT_5_9_9_9_REV\"] = 35902] = \"UNSIGNED_INT_5_9_9_9_REV\";\n GL_TYPES2[GL_TYPES2[\"BYTE\"] = 5120] = \"BYTE\";\n GL_TYPES2[GL_TYPES2[\"SHORT\"] = 5122] = \"SHORT\";\n GL_TYPES2[GL_TYPES2[\"INT\"] = 5124] = \"INT\";\n GL_TYPES2[GL_TYPES2[\"FLOAT\"] = 5126] = \"FLOAT\";\n GL_TYPES2[GL_TYPES2[\"FLOAT_32_UNSIGNED_INT_24_8_REV\"] = 36269] = \"FLOAT_32_UNSIGNED_INT_24_8_REV\";\n GL_TYPES2[GL_TYPES2[\"HALF_FLOAT\"] = 36193] = \"HALF_FLOAT\";\n return GL_TYPES2;\n})(GL_TYPES || {});\n\nexport { GL_FORMATS, GL_TARGETS, GL_TYPES, GL_WRAP_MODES };\n//# sourceMappingURL=const.mjs.map\n","import { ExtensionType } from '../../../extensions/Extensions.mjs';\nimport { Matrix } from '../../../maths/matrix/Matrix.mjs';\nimport { MAX_TEXTURES } from '../../../rendering/batcher/shared/const.mjs';\nimport { compileHighShaderGlProgram } from '../../../rendering/high-shader/compileHighShaderToProgram.mjs';\nimport { colorBitGl } from '../../../rendering/high-shader/shader-bits/colorBit.mjs';\nimport { generateTextureBatchBitGl } from '../../../rendering/high-shader/shader-bits/generateTextureBatchBit.mjs';\nimport { localUniformBitGl } from '../../../rendering/high-shader/shader-bits/localUniformBit.mjs';\nimport { roundPixelsBitGl } from '../../../rendering/high-shader/shader-bits/roundPixelsBit.mjs';\nimport { batchSamplersUniformGroup } from '../../../rendering/renderers/gl/shader/batchSamplersUniformGroup.mjs';\nimport { Shader } from '../../../rendering/renderers/shared/shader/Shader.mjs';\nimport { UniformGroup } from '../../../rendering/renderers/shared/shader/UniformGroup.mjs';\n\n\"use strict\";\nclass GlGraphicsAdaptor {\n init() {\n const uniforms = new UniformGroup({\n uColor: { value: new Float32Array([1, 1, 1, 1]), type: \"vec4<f32>\" },\n uTransformMatrix: { value: new Matrix(), type: \"mat3x3<f32>\" },\n uRound: { value: 0, type: \"f32\" }\n });\n const glProgram = compileHighShaderGlProgram({\n name: \"graphics\",\n bits: [\n colorBitGl,\n generateTextureBatchBitGl(MAX_TEXTURES),\n localUniformBitGl,\n roundPixelsBitGl\n ]\n });\n this.shader = new Shader({\n glProgram,\n resources: {\n localUniforms: uniforms,\n batchSamplers: batchSamplersUniformGroup\n }\n });\n }\n execute(graphicsPipe, renderable) {\n const context = renderable.context;\n const shader = context.customShader || this.shader;\n const renderer = graphicsPipe.renderer;\n const contextSystem = renderer.graphicsContext;\n const {\n geometry,\n instructions\n } = contextSystem.getContextRenderData(context);\n shader.groups[0] = renderer.globalUniforms.bindGroup;\n renderer.state.set(graphicsPipe.state);\n renderer.shader.bind(shader);\n renderer.geometry.bind(geometry, shader.glProgram);\n const batches = instructions.instructions;\n for (let i = 0; i < instructions.instructionSize; i++) {\n const batch = batches[i];\n if (batch.size) {\n for (let j = 0; j < batch.textures.textures.length; j++) {\n renderer.texture.bind(batch.textures.textures[j], j);\n }\n renderer.geometry.draw(\"triangle-list\", batch.size, batch.start);\n }\n }\n }\n destroy() {\n this.shader.destroy(true);\n this.shader = null;\n }\n}\n/** @ignore */\nGlGraphicsAdaptor.extension = {\n type: [\n ExtensionType.WebGLPipesAdaptor\n ],\n name: \"graphics\"\n};\n\nexport { GlGraphicsAdaptor };\n//# sourceMappingURL=GlGraphicsAdaptor.mjs.map\n","import { ExtensionType } from '../../../extensions/Extensions.mjs';\nimport { Matrix } from '../../../maths/matrix/Matrix.mjs';\nimport { compileHighShaderGlProgram } from '../../../rendering/high-shader/compileHighShaderToProgram.mjs';\nimport { localUniformBitGl } from '../../../rendering/high-shader/shader-bits/localUniformBit.mjs';\nimport { roundPixelsBitGl } from '../../../rendering/high-shader/shader-bits/roundPixelsBit.mjs';\nimport { textureBitGl } from '../../../rendering/high-shader/shader-bits/textureBit.mjs';\nimport { Shader } from '../../../rendering/renderers/shared/shader/Shader.mjs';\nimport { Texture } from '../../../rendering/renderers/shared/texture/Texture.mjs';\nimport { warn } from '../../../utils/logging/warn.mjs';\n\n\"use strict\";\nclass GlMeshAdaptor {\n init() {\n const glProgram = compileHighShaderGlProgram({\n name: \"mesh\",\n bits: [\n localUniformBitGl,\n textureBitGl,\n roundPixelsBitGl\n ]\n });\n this._shader = new Shader({\n glProgram,\n resources: {\n uTexture: Texture.EMPTY.source,\n textureUniforms: {\n uTextureMatrix: { type: \"mat3x3<f32>\", value: new Matrix() }\n }\n }\n });\n }\n execute(meshPipe, mesh) {\n const renderer = meshPipe.renderer;\n let shader = mesh._shader;\n if (!shader) {\n shader = this._shader;\n const texture = mesh.texture;\n const source = texture.source;\n shader.resources.uTexture = source;\n shader.resources.uSampler = source.style;\n shader.resources.textureUniforms.uniforms.uTextureMatrix = texture.textureMatrix.mapCoord;\n } else if (!shader.glProgram) {\n warn(\"Mesh shader has no glProgram\", mesh.shader);\n return;\n }\n shader.groups[100] = renderer.globalUniforms.bindGroup;\n shader.groups[101] = meshPipe.localUniformsBindGroup;\n renderer.encoder.draw({\n geometry: mesh._geometry,\n shader,\n state: mesh.state\n });\n }\n destroy() {\n this._shader.destroy(true);\n this._shader = null;\n }\n}\nGlMeshAdaptor.extension = {\n type: [\n ExtensionType.WebGLPipesAdaptor\n ],\n name: \"mesh\"\n};\n\nexport { GlMeshAdaptor };\n//# sourceMappingURL=GlMeshAdaptor.mjs.map\n","import { ExtensionType } from '../../../extensions/Extensions.mjs';\nimport { compileHighShaderGlProgram } from '../../high-shader/compileHighShaderToProgram.mjs';\nimport { colorBitGl } from '../../high-shader/shader-bits/colorBit.mjs';\nimport { generateTextureBatchBitGl } from '../../high-shader/shader-bits/generateTextureBatchBit.mjs';\nimport { roundPixelsBitGl } from '../../high-shader/shader-bits/roundPixelsBit.mjs';\nimport { batchSamplersUniformGroup } from '../../renderers/gl/shader/batchSamplersUniformGroup.mjs';\nimport { Shader } from '../../renderers/shared/shader/Shader.mjs';\nimport { State } from '../../renderers/shared/state/State.mjs';\nimport { MAX_TEXTURES } from '../shared/const.mjs';\n\n\"use strict\";\nclass GlBatchAdaptor {\n constructor() {\n this._didUpload = false;\n this._tempState = State.for2d();\n }\n init(batcherPipe) {\n const glProgram = compileHighShaderGlProgram({\n name: \"batch\",\n bits: [\n colorBitGl,\n generateTextureBatchBitGl(MAX_TEXTURES),\n roundPixelsBitGl\n ]\n });\n this._shader = new Shader({\n glProgram,\n resources: {\n batchSamplers: batchSamplersUniformGroup\n }\n });\n batcherPipe.renderer.runners.contextChange.add(this);\n }\n contextChange() {\n this._didUpload = false;\n }\n start(batchPipe, geometry) {\n const renderer = batchPipe.renderer;\n renderer.shader.bind(this._shader, this._didUpload);\n renderer.shader.updateUniformGroup(renderer.globalUniforms.uniformGroup);\n renderer.geometry.bind(geometry, this._shader.glProgram);\n }\n execute(batchPipe, batch) {\n const renderer = batchPipe.renderer;\n this._didUpload = true;\n this._tempState.blendMode = batch.blendMode;\n renderer.state.set(this._tempState);\n const textures = batch.textures.textures;\n for (let i = 0; i < textures.length; i++) {\n renderer.texture.bind(textures[i], i);\n }\n renderer.geometry.draw(\"triangle-list\", batch.size, batch.start);\n }\n destroy() {\n this._shader.destroy(true);\n this._shader = null;\n }\n}\n/** @ignore */\nGlBatchAdaptor.extension = {\n type: [\n ExtensionType.WebGLPipesAdaptor\n ],\n name: \"batch\"\n};\n\nexport { GlBatchAdaptor };\n//# sourceMappingURL=GlBatchAdaptor.mjs.map\n","\"use strict\";\nclass GlBuffer {\n constructor(buffer, type) {\n this.buffer = buffer || null;\n this.updateID = -1;\n this.byteLength = -1;\n this.type = type;\n }\n}\n\nexport { GlBuffer };\n//# sourceMappingURL=GlBuffer.mjs.map\n","import { ExtensionType } from '../../../../extensions/Extensions.mjs';\nimport { BufferUsage } from '../../shared/buffer/const.mjs';\nimport { BUFFER_TYPE } from './const.mjs';\nimport { GlBuffer } from './GlBuffer.mjs';\n\n\"use strict\";\nclass GlBufferSystem {\n /**\n * @param {Renderer} renderer - The renderer this System works for.\n */\n constructor(renderer) {\n this._gpuBuffers = /* @__PURE__ */ Object.create(null);\n /** Cache keeping track of the base bound buffer bases */\n this._boundBufferBases = /* @__PURE__ */ Object.create(null);\n this._renderer = renderer;\n }\n /**\n * @ignore\n */\n destroy() {\n this._renderer = null;\n this._gl = null;\n this._gpuBuffers = null;\n this._boundBufferBases = null;\n }\n /** Sets up the renderer context and necessary buffers. */\n contextChange() {\n this._gpuBuffers = /* @__PURE__ */ Object.create(null);\n this._gl = this._renderer.gl;\n }\n getGlBuffer(buffer) {\n return this._gpuBuffers[buffer.uid] || this.createGLBuffer(buffer);\n }\n /**\n * This binds specified buffer. On first run, it will create the webGL buffers for the context too\n * @param buffer - the buffer to bind to the renderer\n */\n bind(buffer) {\n const { _gl: gl } = this;\n const glBuffer = this.getGlBuffer(buffer);\n gl.bindBuffer(glBuffer.type, glBuffer.buffer);\n }\n /**\n * Binds an uniform buffer to at the given index.\n *\n * A cache is used so a buffer will not be bound again if already bound.\n * @param buffer - the buffer to bind\n * @param index - the base index to bind it to.\n */\n bindBufferBase(buffer, index) {\n const { _gl: gl } = this;\n if (this._boundBufferBases[index] !== buffer) {\n const glBuffer = this.getGlBuffer(buffer);\n this._boundBufferBases[index] = buffer;\n gl.bindBufferBase(gl.UNIFORM_BUFFER, index, glBuffer.buffer);\n }\n }\n /**\n * Binds a buffer whilst also binding its range.\n * This will make the buffer start from the offset supplied rather than 0 when it is read.\n * @param buffer - the buffer to bind\n * @param index - the base index to bind at, defaults to 0\n * @param offset - the offset to bind at (this is blocks of 256). 0 = 0, 1 = 256, 2 = 512 etc\n */\n bindBufferRange(buffer, index, offset) {\n const { _gl: gl } = this;\n offset = offset || 0;\n const glBuffer = this.getGlBuffer(buffer);\n gl.bindBufferRange(gl.UNIFORM_BUFFER, index || 0, glBuffer.buffer, offset * 256, 256);\n }\n /**\n * Will ensure the data in the buffer is uploaded to the GPU.\n * @param {Buffer} buffer - the buffer to update\n */\n updateBuffer(buffer) {\n const { _gl: gl } = this;\n const glBuffer = this.getGlBuffer(buffer);\n if (buffer._updateID === glBuffer.updateID) {\n return glBuffer;\n }\n glBuffer.updateID = buffer._updateID;\n gl.bindBuffer(glBuffer.type, glBuffer.buffer);\n const data = buffer.data;\n if (glBuffer.byteLength >= buffer.data.byteLength) {\n gl.bufferSubData(glBuffer.type, 0, data, 0, buffer._updateSize / data.BYTES_PER_ELEMENT);\n } else {\n const drawType = buffer.descriptor.usage & BufferUsage.STATIC ? gl.STATIC_DRAW : gl.DYNAMIC_DRAW;\n glBuffer.byteLength = data.byteLength;\n gl.bufferData(glBuffer.type, data, drawType);\n }\n return glBuffer;\n }\n /** dispose all WebGL resources of all managed buffers */\n destroyAll() {\n const gl = this._gl;\n for (const id in this._gpuBuffers) {\n gl.deleteBuffer(this._gpuBuffers[id].buffer);\n }\n this._gpuBuffers = /* @__PURE__ */ Object.create(null);\n }\n /**\n * Disposes buffer\n * @param {Buffer} buffer - buffer with data\n * @param {boolean} [contextLost=false] - If context was lost, we suppress deleteVertexArray\n */\n onBufferDestroy(buffer, contextLost) {\n const glBuffer = this._gpuBuffers[buffer.uid];\n const gl = this._gl;\n if (!contextLost) {\n gl.deleteBuffer(glBuffer.buffer);\n }\n this._gpuBuffers[buffer.uid] = null;\n }\n /**\n * creates and attaches a GLBuffer object tied to the current context.\n * @param buffer\n * @protected\n */\n createGLBuffer(buffer) {\n const { _gl: gl } = this;\n let type = BUFFER_TYPE.ARRAY_BUFFER;\n if (buffer.descriptor.usage & BufferUsage.INDEX) {\n type = BUFFER_TYPE.ELEMENT_ARRAY_BUFFER;\n } else if (buffer.descriptor.usage & BufferUsage.UNIFORM) {\n type = BUFFER_TYPE.UNIFORM_BUFFER;\n }\n const glBuffer = new GlBuffer(gl.createBuffer(), type);\n this._gpuBuffers[buffer.uid] = glBuffer;\n buffer.on(\"destroy\", this.onBufferDestroy, this);\n return glBuffer;\n }\n}\n/** @ignore */\nGlBufferSystem.extension = {\n type: [\n ExtensionType.WebGLSystem\n ],\n name: \"buffer\"\n};\n\nexport { GlBufferSystem };\n//# sourceMappingURL=GlBufferSystem.mjs.map\n","import { DOMAdapter } from '../../../../environment/adapter.mjs';\nimport { ExtensionType } from '../../../../extensions/Extensions.mjs';\nimport { warn } from '../../../../utils/logging/warn.mjs';\n\n\"use strict\";\nconst _GlContextSystem = class _GlContextSystem {\n /** @param renderer - The renderer this System works for. */\n constructor(renderer) {\n /**\n * Features supported by current renderer.\n * @type {object}\n * @readonly\n */\n this.supports = {\n /** Support for 32-bit indices buffer. */\n uint32Indices: true,\n /** Support for UniformBufferObjects */\n uniformBufferObject: true,\n /** Support for VertexArrayObjects */\n vertexArrayObject: true,\n /** Support for SRGB texture format */\n srgbTextures: true,\n /** Support for wrapping modes if a texture is non-power of two */\n nonPowOf2wrapping: true,\n /** Support for MSAA (antialiasing of dynamic textures) */\n msaa: true,\n /** Support for mipmaps if a texture is non-power of two */\n nonPowOf2mipmaps: true\n };\n this._renderer = renderer;\n this.extensions = /* @__PURE__ */ Object.create(null);\n this.handleContextLost = this.handleContextLost.bind(this);\n this.handleContextRestored = this.handleContextRestored.bind(this);\n }\n /**\n * `true` if the context is lost\n * @readonly\n */\n get isLost() {\n return !this.gl || this.gl.isContextLost();\n }\n /**\n * Handles the context change event.\n * @param {WebGLRenderingContext} gl - New WebGL context.\n */\n contextChange(gl) {\n this.gl = gl;\n this._renderer.gl = gl;\n }\n init(options) {\n options = { ..._GlContextSystem.defaultOptions, ...options };\n if (options.context) {\n this.initFromContext(options.context);\n } else {\n const alpha = this._renderer.background.alpha < 1;\n const premultipliedAlpha = options.premultipliedAlpha ?? true;\n const antialias = options.antialias && !this._renderer.backBuffer.useBackBuffer;\n this.createContext(options.preferWebGLVersion, {\n alpha,\n premultipliedAlpha,\n antialias,\n stencil: true,\n preserveDrawingBuffer: options.preserveDrawingBuffer,\n powerPreference: options.powerPreference ?? \"default\"\n });\n }\n }\n /**\n * Initializes the context.\n * @protected\n * @param {WebGLRenderingContext} gl - WebGL context\n */\n initFromContext(gl) {\n this.gl = gl;\n this.webGLVersion = gl instanceof DOMAdapter.get().getWebGLRenderingContext() ? 1 : 2;\n this.getExtensions();\n this.validateContext(gl);\n this._renderer.runners.contextChange.emit(gl);\n const element = this._renderer.view.canvas;\n element.addEventListener(\"webglcontextlost\", this.handleContextLost, false);\n element.addEventListener(\"webglcontextrestored\", this.handleContextRestored, false);\n }\n /**\n * Initialize from context options\n * @protected\n * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/getContext\n * @param preferWebGLVersion\n * @param {object} options - context attributes\n */\n createContext(preferWebGLVersion, options) {\n let gl;\n const canvas = this._renderer.view.canvas;\n if (preferWebGLVersion === 2) {\n gl = canvas.getContext(\"webgl2\", options);\n }\n if (!gl) {\n gl = canvas.getContext(\"webgl\", options);\n if (!gl) {\n throw new Error(\"This browser does not support WebGL. Try using the canvas renderer\");\n }\n }\n this.gl = gl;\n this.initFromContext(this.gl);\n }\n /** Auto-populate the {@link GlContextSystem.extensions extensions}. */\n getExtensions() {\n const { gl } = this;\n const common = {\n anisotropicFiltering: gl.getExtension(\"EXT_texture_filter_anisotropic\"),\n floatTextureLinear: gl.getExtension(\"OES_texture_float_linear\"),\n s3tc: gl.getExtension(\"WEBGL_compressed_texture_s3tc\"),\n s3tc_sRGB: gl.getExtension(\"WEBGL_compressed_texture_s3tc_srgb\"),\n // eslint-disable-line camelcase\n etc: gl.getExtension(\"WEBGL_compressed_texture_etc\"),\n etc1: gl.getExtension(\"WEBGL_compressed_texture_etc1\"),\n pvrtc: gl.getExtension(\"WEBGL_compressed_texture_pvrtc\") || gl.getExtension(\"WEBKIT_WEBGL_compressed_texture_pvrtc\"),\n atc: gl.getExtension(\"WEBGL_compressed_texture_atc\"),\n astc: gl.getExtension(\"WEBGL_compressed_texture_astc\"),\n bptc: gl.getExtension(\"EXT_texture_compression_bptc\"),\n rgtc: gl.getExtension(\"EXT_texture_compression_rgtc\"),\n loseContext: gl.getExtension(\"WEBGL_lose_context\")\n };\n if (this.webGLVersion === 1) {\n this.extensions = {\n ...common,\n drawBuffers: gl.getExtension(\"WEBGL_draw_buffers\"),\n depthTexture: gl.getExtension(\"WEBGL_depth_texture\"),\n vertexArrayObject: gl.getExtension(\"OES_vertex_array_object\") || gl.getExtension(\"MOZ_OES_vertex_array_object\") || gl.getExtension(\"WEBKIT_OES_vertex_array_object\"),\n uint32ElementIndex: gl.getExtension(\"OES_element_index_uint\"),\n // Floats and half-floats\n floatTexture: gl.getExtension(\"OES_texture_float\"),\n floatTextureLinear: gl.getExtension(\"OES_texture_float_linear\"),\n textureHalfFloat: gl.getExtension(\"OES_texture_half_float\"),\n textureHalfFloatLinear: gl.getExtension(\"OES_texture_half_float_linear\"),\n vertexAttribDivisorANGLE: gl.getExtension(\"ANGLE_instanced_arrays\"),\n srgb: gl.getExtension(\"EXT_sRGB\")\n };\n } else {\n this.extensions = {\n ...common,\n colorBufferFloat: gl.getExtension(\"EXT_color_buffer_float\")\n };\n const provokeExt = gl.getExtension(\"WEBGL_provoking_vertex\");\n if (provokeExt) {\n provokeExt.provokingVertexWEBGL(provokeExt.FIRST_VERTEX_CONVENTION_WEBGL);\n }\n }\n }\n /**\n * Handles a lost webgl context\n * @param {WebGLContextEvent} event - The context lost event.\n */\n handleContextLost(event) {\n event.preventDefault();\n if (this._contextLossForced) {\n this._contextLossForced = false;\n setTimeout(() => {\n if (this.gl.isContextLost()) {\n this.extensions.loseContext?.restoreContext();\n }\n }, 0);\n }\n }\n /** Handles a restored webgl context. */\n handleContextRestored() {\n this._renderer.runners.contextChange.emit(this.gl);\n }\n destroy() {\n const element = this._renderer.view.canvas;\n this._renderer = null;\n element.removeEventListener(\"webglcontextlost\", this.handleContextLost);\n element.removeEventListener(\"webglcontextrestored\", this.handleContextRestored);\n this.gl.useProgram(null);\n this.extensions.loseContext?.loseContext();\n }\n /**\n * this function can be called to force a webGL context loss\n * this will release all resources on the GPU.\n * Useful if you need to put Pixi to sleep, and save some GPU memory\n *\n * As soon as render is called - all resources will be created again.\n */\n forceContextLoss() {\n this.extensions.loseContext?.loseContext();\n this._contextLossForced = true;\n }\n /**\n * Validate context.\n * @param {WebGLRenderingContext} gl - Render context.\n */\n validateContext(gl) {\n const attributes = gl.getContextAttributes();\n if (attributes && !attributes.stencil) {\n warn(\"Provided WebGL context does not have a stencil buffer, masks may not render correctly\");\n }\n const supports = this.supports;\n const isWebGl2 = this.webGLVersion === 2;\n const extensions = this.extensions;\n supports.uint32Indices = isWebGl2 || !!extensions.uint32ElementIndex;\n supports.uniformBufferObject = isWebGl2;\n supports.vertexArrayObject = isWebGl2 || !!extensions.vertexArrayObject;\n supports.srgbTextures = isWebGl2 || !!extensions.srgb;\n supports.nonPowOf2wrapping = isWebGl2;\n supports.nonPowOf2mipmaps = isWebGl2;\n supports.msaa = isWebGl2;\n if (!supports.uint32Indices) {\n warn(\"Provided WebGL context does not support 32 index buffer, large scenes may not render correctly\");\n }\n }\n};\n/** @ignore */\n_GlContextSystem.extension = {\n type: [\n ExtensionType.WebGLSystem\n ],\n name: \"context\"\n};\n/** The default options for the system. */\n_GlContextSystem.defaultOptions = {\n /**\n * {@link WebGLOptions.context}\n * @default null\n */\n context: null,\n /**\n * {@link WebGLOptions.premultipliedAlpha}\n * @default true\n */\n premultipliedAlpha: true,\n /**\n * {@link WebGLOptions.preserveDrawingBuffer}\n * @default false\n */\n preserveDrawingBuffer: false,\n /**\n * {@link WebGLOptions.powerPreference}\n * @default default\n */\n powerPreference: void 0,\n /**\n * {@link WebGLOptions.webGLVersion}\n * @default 2\n */\n preferWebGLVersion: 2\n};\nlet GlContextSystem = _GlContextSystem;\n\nexport { GlContextSystem };\n//# sourceMappingURL=GlContextSystem.mjs.map\n","import { GL_TYPES } from '../../texture/const.mjs';\n\n\"use strict\";\nconst infoMap = {\n uint8x2: GL_TYPES.UNSIGNED_BYTE,\n uint8x4: GL_TYPES.UNSIGNED_BYTE,\n sint8x2: GL_TYPES.BYTE,\n sint8x4: GL_TYPES.BYTE,\n unorm8x2: GL_TYPES.UNSIGNED_BYTE,\n unorm8x4: GL_TYPES.UNSIGNED_BYTE,\n snorm8x2: GL_TYPES.BYTE,\n snorm8x4: GL_TYPES.BYTE,\n uint16x2: GL_TYPES.UNSIGNED_SHORT,\n uint16x4: GL_TYPES.UNSIGNED_SHORT,\n sint16x2: GL_TYPES.SHORT,\n sint16x4: GL_TYPES.SHORT,\n unorm16x2: GL_TYPES.UNSIGNED_SHORT,\n unorm16x4: GL_TYPES.UNSIGNED_SHORT,\n snorm16x2: GL_TYPES.SHORT,\n snorm16x4: GL_TYPES.SHORT,\n float16x2: GL_TYPES.HALF_FLOAT,\n float16x4: GL_TYPES.HALF_FLOAT,\n float32: GL_TYPES.FLOAT,\n float32x2: GL_TYPES.FLOAT,\n float32x3: GL_TYPES.FLOAT,\n float32x4: GL_TYPES.FLOAT,\n uint32: GL_TYPES.UNSIGNED_INT,\n uint32x2: GL_TYPES.UNSIGNED_INT,\n uint32x3: GL_TYPES.UNSIGNED_INT,\n uint32x4: GL_TYPES.UNSIGNED_INT,\n sint32: GL_TYPES.INT,\n sint32x2: GL_TYPES.INT,\n sint32x3: GL_TYPES.INT,\n sint32x4: GL_TYPES.INT\n};\nfunction getGlTypeFromFormat(format) {\n return infoMap[format] ?? infoMap.float32;\n}\n\nexport { getGlTypeFromFormat };\n//# sourceMappingURL=getGlTypeFromFormat.mjs.map\n","import { ExtensionType } from '../../../../extensions/Extensions.mjs';\nimport { getAttributeInfoFromFormat } from '../../shared/geometry/utils/getAttributeInfoFromFormat.mjs';\nimport { ensureAttributes } from '../shader/program/ensureAttributes.mjs';\nimport { getGlTypeFromFormat } from './utils/getGlTypeFromFormat.mjs';\n\n\"use strict\";\nconst topologyToGlMap = {\n \"point-list\": 0,\n \"line-list\": 1,\n \"line-strip\": 3,\n \"triangle-list\": 4,\n \"triangle-strip\": 5\n};\nclass GlGeometrySystem {\n /** @param renderer - The renderer this System works for. */\n constructor(renderer) {\n this._geometryVaoHash = /* @__PURE__ */ Object.create(null);\n this._renderer = renderer;\n this._activeGeometry = null;\n this._activeVao = null;\n this.hasVao = true;\n this.hasInstance = true;\n }\n /** Sets up the renderer context and necessary buffers. */\n contextChange() {\n const gl = this.gl = this._renderer.gl;\n if (!this._renderer.context.supports.vertexArrayObject) {\n throw new Error(\"[PixiJS] Vertex Array Objects are not supported on this device\");\n }\n const nativeVaoExtension = this._renderer.context.extensions.vertexArrayObject;\n if (nativeVaoExtension) {\n gl.createVertexArray = () => nativeVaoExtension.createVertexArrayOES();\n gl.bindVertexArray = (vao) => nativeVaoExtension.bindVertexArrayOES(vao);\n gl.deleteVertexArray = (vao) => nativeVaoExtension.deleteVertexArrayOES(vao);\n }\n const nativeInstancedExtension = this._renderer.context.extensions.vertexAttribDivisorANGLE;\n if (nativeInstancedExtension) {\n gl.drawArraysInstanced = (a, b, c, d) => {\n nativeInstancedExtension.drawArraysInstancedANGLE(a, b, c, d);\n };\n gl.drawElementsInstanced = (a, b, c, d, e) => {\n nativeInstancedExtension.drawElementsInstancedANGLE(a, b, c, d, e);\n };\n gl.vertexAttribDivisor = (a, b) => nativeInstancedExtension.vertexAttribDivisorANGLE(a, b);\n }\n this._activeGeometry = null;\n this._activeVao = null;\n this._geometryVaoHash = /* @__PURE__ */ Object.create(null);\n }\n /**\n * Binds geometry so that is can be drawn. Creating a Vao if required\n * @param geometry - Instance of geometry to bind.\n * @param program - Instance of program to use vao for.\n */\n bind(geometry, program) {\n const gl = this.gl;\n this._activeGeometry = geometry;\n const vao = this.getVao(geometry, program);\n if (this._activeVao !== vao) {\n this._activeVao = vao;\n gl.bindVertexArray(vao);\n }\n this.updateBuffers();\n }\n /** Reset and unbind any active VAO and geometry. */\n reset() {\n this.unbind();\n }\n /** Update buffers of the currently bound geometry. */\n updateBuffers() {\n const geometry = this._activeGeometry;\n const bufferSystem = this._renderer.buffer;\n for (let i = 0; i < geometry.buffers.length; i++) {\n const buffer = geometry.buffers[i];\n bufferSystem.updateBuffer(buffer);\n }\n }\n /**\n * Check compatibility between a geometry and a program\n * @param geometry - Geometry instance.\n * @param program - Program instance.\n */\n checkCompatibility(geometry, program) {\n const geometryAttributes = geometry.attributes;\n const shaderAttributes = program._attributeData;\n for (const j in shaderAttributes) {\n if (!geometryAttributes[j]) {\n throw new Error(`shader and geometry incompatible, geometry missing the \"${j}\" attribute`);\n }\n }\n }\n /**\n * Takes a geometry and program and generates a unique signature for them.\n * @param geometry - To get signature from.\n * @param program - To test geometry against.\n * @returns - Unique signature of the geometry and program\n */\n getSignature(geometry, program) {\n const attribs = geometry.attributes;\n const shaderAttributes = program._attributeData;\n const strings = [\"g\", geometry.uid];\n for (const i in attribs) {\n if (shaderAttributes[i]) {\n strings.push(i, shaderAttributes[i].location);\n }\n }\n return strings.join(\"-\");\n }\n getVao(geometry, program) {\n return this._geometryVaoHash[geometry.uid]?.[program._key] || this.initGeometryVao(geometry, program);\n }\n /**\n * Creates or gets Vao with the same structure as the geometry and stores it on the geometry.\n * If vao is created, it is bound automatically. We use a shader to infer what and how to set up the\n * attribute locations.\n * @param geometry - Instance of geometry to to generate Vao for.\n * @param program\n * @param _incRefCount - Increment refCount of all geometry buffers.\n */\n initGeometryVao(geometry, program, _incRefCount = true) {\n const gl = this._renderer.gl;\n const bufferSystem = this._renderer.buffer;\n this._renderer.shader._getProgramData(program);\n this.checkCompatibility(geometry, program);\n const signature = this.getSignature(geometry, program);\n if (!this._geometryVaoHash[geometry.uid]) {\n this._geometryVaoHash[geometry.uid] = /* @__PURE__ */ Object.create(null);\n geometry.on(\"destroy\", this.onGeometryDestroy, this);\n }\n const vaoObjectHash = this._geometryVaoHash[geometry.uid];\n let vao = vaoObjectHash[signature];\n if (vao) {\n vaoObjectHash[program._key] = vao;\n return vao;\n }\n ensureAttributes(geometry, program._attributeData);\n const buffers = geometry.buffers;\n vao = gl.createVertexArray();\n gl.bindVertexArray(vao);\n for (let i = 0; i < buffers.length; i++) {\n const buffer = buffers[i];\n bufferSystem.bind(buffer);\n }\n this.activateVao(geometry, program);\n vaoObjectHash[program._key] = vao;\n vaoObjectHash[signature] = vao;\n gl.bindVertexArray(null);\n return vao;\n }\n /**\n * Disposes geometry.\n * @param geometry - Geometry with buffers. Only VAO will be disposed\n * @param [contextLost=false] - If context was lost, we suppress deleteVertexArray\n */\n onGeometryDestroy(geometry, contextLost) {\n const vaoObjectHash = this._geometryVaoHash[geometry.uid];\n const gl = this.gl;\n if (vaoObjectHash) {\n if (contextLost) {\n for (const i in vaoObjectHash) {\n if (this._activeVao !== vaoObjectHash[i]) {\n this.unbind();\n }\n gl.deleteVertexArray(vaoObjectHash[i]);\n }\n }\n this._geometryVaoHash[geometry.uid] = null;\n }\n }\n /**\n * Dispose all WebGL resources of all managed geometries.\n * @param [contextLost=false] - If context was lost, we suppress `gl.delete` calls\n */\n destroyAll(contextLost = false) {\n const gl = this.gl;\n for (const i in this._geometryVaoHash) {\n if (contextLost) {\n for (const j in this._geometryVaoHash[i]) {\n const vaoObjectHash = this._geometryVaoHash[i];\n if (this._activeVao !== vaoObjectHash) {\n this.unbind();\n }\n gl.deleteVertexArray(vaoObjectHash[j]);\n }\n }\n this._geometryVaoHash[i] = null;\n }\n }\n /**\n * Activate vertex array object.\n * @param geometry - Geometry instance.\n * @param program - Shader program instance.\n */\n activateVao(geometry, program) {\n const gl = this._renderer.gl;\n const bufferSystem = this._renderer.buffer;\n const attributes = geometry.attributes;\n if (geometry.indexBuffer) {\n bufferSystem.bind(geometry.indexBuffer);\n }\n let lastBuffer = null;\n for (const j in attributes) {\n const attribute = attributes[j];\n const buffer = attribute.buffer;\n const glBuffer = bufferSystem.getGlBuffer(buffer);\n const programAttrib = program._attributeData[j];\n if (programAttrib) {\n if (lastBuffer !== glBuffer) {\n bufferSystem.bind(buffer);\n lastBuffer = glBuffer;\n }\n const location = attribute.location;\n gl.enableVertexAttribArray(location);\n const attributeInfo = getAttributeInfoFromFormat(attribute.format);\n const type = getGlTypeFromFormat(attribute.format);\n if (programAttrib.format?.substring(1, 4) === \"int\") {\n gl.vertexAttribIPointer(\n location,\n attributeInfo.size,\n type,\n attribute.stride,\n attribute.offset\n );\n } else {\n gl.vertexAttribPointer(\n location,\n attributeInfo.size,\n type,\n attributeInfo.normalised,\n attribute.stride,\n attribute.offset\n );\n }\n if (attribute.instance) {\n if (this.hasInstance) {\n gl.vertexAttribDivisor(location, 1);\n } else {\n throw new Error(\"geometry error, GPU Instancing is not supported on this device\");\n }\n }\n }\n }\n }\n /**\n * Draws the currently bound geometry.\n * @param topology - The type primitive to render.\n * @param size - The number of elements to be rendered. If not specified, all vertices after the\n * starting vertex will be drawn.\n * @param start - The starting vertex in the geometry to start drawing from. If not specified,\n * drawing will start from the first vertex.\n * @param instanceCount - The number of instances of the set of elements to execute. If not specified,\n * all instances will be drawn.\n */\n draw(topology, size, start, instanceCount) {\n const { gl } = this._renderer;\n const geometry = this._activeGeometry;\n const glTopology = topologyToGlMap[geometry.topology || topology];\n instanceCount || (instanceCount = geometry.instanceCount);\n if (geometry.indexBuffer) {\n const byteSize = geometry.indexBuffer.data.BYTES_PER_ELEMENT;\n const glType = byteSize === 2 ? gl.UNSIGNED_SHORT : gl.UNSIGNED_INT;\n if (instanceCount > 1) {\n gl.drawElementsInstanced(glTopology, size || geometry.indexBuffer.data.length, glType, (start || 0) * byteSize, instanceCount);\n } else {\n gl.drawElements(glTopology, size || geometry.indexBuffer.data.length, glType, (start || 0) * byteSize);\n }\n } else if (instanceCount > 1) {\n gl.drawArraysInstanced(glTopology, start || 0, size || geometry.getSize(), instanceCount);\n } else {\n gl.drawArrays(glTopology, start || 0, size || geometry.getSize());\n }\n return this;\n }\n /** Unbind/reset everything. */\n unbind() {\n this.gl.bindVertexArray(null);\n this._activeVao = null;\n this._activeGeometry = null;\n }\n destroy() {\n this._renderer = null;\n this.gl = null;\n this._activeVao = null;\n this._activeGeometry = null;\n }\n}\n/** @ignore */\nGlGeometrySystem.extension = {\n type: [\n ExtensionType.WebGLSystem\n ],\n name: \"geometry\"\n};\n\nexport { GlGeometrySystem };\n//# sourceMappingURL=GlGeometrySystem.mjs.map\n","import { ExtensionType } from '../../../extensions/Extensions.mjs';\nimport { warn } from '../../../utils/logging/warn.mjs';\nimport { Geometry } from '../shared/geometry/Geometry.mjs';\nimport { Shader } from '../shared/shader/Shader.mjs';\nimport { State } from '../shared/state/State.mjs';\nimport { TextureSource } from '../shared/texture/sources/TextureSource.mjs';\nimport { Texture } from '../shared/texture/Texture.mjs';\nimport { GlProgram } from './shader/GlProgram.mjs';\n\n\"use strict\";\nconst bigTriangleGeometry = new Geometry({\n attributes: {\n aPosition: [\n -1,\n -1,\n // Bottom left corner\n 3,\n -1,\n // Bottom right corner, extending beyond right edge\n -1,\n 3\n // Top left corner, extending beyond top edge\n ]\n }\n});\nconst _GlBackBufferSystem = class _GlBackBufferSystem {\n constructor(renderer) {\n /** if true, the back buffer is used */\n this.useBackBuffer = false;\n this._useBackBufferThisRender = false;\n this._renderer = renderer;\n }\n init(options = {}) {\n const { useBackBuffer, antialias } = { ..._GlBackBufferSystem.defaultOptions, ...options };\n this.useBackBuffer = useBackBuffer;\n this._antialias = antialias;\n if (!this._renderer.context.supports.msaa) {\n warn(\"antialiasing, is not supported on when using the back buffer\");\n this._antialias = false;\n }\n this._state = State.for2d();\n const bigTriangleProgram = new GlProgram({\n vertex: `\n attribute vec2 aPosition;\n out vec2 vUv;\n\n void main() {\n gl_Position = vec4(aPosition, 0.0, 1.0);\n\n vUv = (aPosition + 1.0) / 2.0;\n\n // flip dem UVs\n vUv.y = 1.0 - vUv.y;\n }`,\n fragment: `\n in vec2 vUv;\n out vec4 finalColor;\n\n uniform sampler2D uTexture;\n\n void main() {\n finalColor = texture(uTexture, vUv);\n }`,\n name: \"big-triangle\"\n });\n this._bigTriangleShader = new Shader({\n glProgram: bigTriangleProgram,\n resources: {\n uTexture: Texture.WHITE.source\n }\n });\n }\n /**\n * This is called before the RenderTargetSystem is started. This is where\n * we replace the target with the back buffer if required.\n * @param options - The options for this render.\n */\n renderStart(options) {\n const renderTarget = this._renderer.renderTarget.getRenderTarget(options.target);\n this._useBackBufferThisRender = this.useBackBuffer && !!renderTarget.isRoot;\n if (this._useBackBufferThisRender) {\n const renderTarget2 = this._renderer.renderTarget.getRenderTarget(options.target);\n this._targetTexture = renderTarget2.colorTexture;\n options.target = this._getBackBufferTexture(renderTarget2.colorTexture);\n }\n }\n renderEnd() {\n this._presentBackBuffer();\n }\n _presentBackBuffer() {\n const renderer = this._renderer;\n renderer.renderTarget.finishRenderPass();\n if (!this._useBackBufferThisRender)\n return;\n renderer.renderTarget.bind(this._targetTexture, false);\n this._bigTriangleShader.resources.uTexture = this._backBufferTexture.source;\n renderer.encoder.draw({\n geometry: bigTriangleGeometry,\n shader: this._bigTriangleShader,\n state: this._state\n });\n }\n _getBackBufferTexture(targetSourceTexture) {\n this._backBufferTexture = this._backBufferTexture || new Texture({\n source: new TextureSource({\n width: targetSourceTexture.width,\n height: targetSourceTexture.height,\n resolution: targetSourceTexture._resolution,\n antialias: this._antialias\n })\n });\n this._backBufferTexture.source.resize(\n targetSourceTexture.width,\n targetSourceTexture.height,\n targetSourceTexture._resolution\n );\n return this._backBufferTexture;\n }\n /** destroys the back buffer */\n destroy() {\n if (this._backBufferTexture) {\n this._backBufferTexture.destroy();\n this._backBufferTexture = null;\n }\n }\n};\n/** @ignore */\n_GlBackBufferSystem.extension = {\n type: [\n ExtensionType.WebGLSystem\n ],\n name: \"backBuffer\",\n priority: 1\n};\n/** default options for the back buffer system */\n_GlBackBufferSystem.defaultOptions = {\n /** if true will use the back buffer where required */\n useBackBuffer: false\n};\nlet GlBackBufferSystem = _GlBackBufferSystem;\n\nexport { GlBackBufferSystem };\n//# sourceMappingURL=GlBackBufferSystem.mjs.map\n","import { ExtensionType } from '../../../extensions/Extensions.mjs';\n\n\"use strict\";\nclass GlColorMaskSystem {\n constructor(renderer) {\n this._colorMaskCache = 15;\n this._renderer = renderer;\n }\n setMask(colorMask) {\n if (this._colorMaskCache === colorMask)\n return;\n this._colorMaskCache = colorMask;\n this._renderer.gl.colorMask(\n !!(colorMask & 8),\n !!(colorMask & 4),\n !!(colorMask & 2),\n !!(colorMask & 1)\n );\n }\n}\n/** @ignore */\nGlColorMaskSystem.extension = {\n type: [\n ExtensionType.WebGLSystem\n ],\n name: \"colorMask\"\n};\n\nexport { GlColorMaskSystem };\n//# sourceMappingURL=GlColorMaskSystem.mjs.map\n","import { ExtensionType } from '../../../extensions/Extensions.mjs';\n\n\"use strict\";\nclass GlEncoderSystem {\n constructor(renderer) {\n this.commandFinished = Promise.resolve();\n this._renderer = renderer;\n }\n setGeometry(geometry, shader) {\n this._renderer.geometry.bind(geometry, shader.glProgram);\n }\n finishRenderPass() {\n }\n draw(options) {\n const renderer = this._renderer;\n const { geometry, shader, state, skipSync, topology: type, size, start, instanceCount } = options;\n renderer.shader.bind(shader, skipSync);\n renderer.geometry.bind(geometry, renderer.shader._activeProgram);\n if (state) {\n renderer.state.set(state);\n }\n renderer.geometry.draw(type, size, start, instanceCount ?? geometry.instanceCount);\n }\n destroy() {\n this._renderer = null;\n }\n}\n/** @ignore */\nGlEncoderSystem.extension = {\n type: [\n ExtensionType.WebGLSystem\n ],\n name: \"encoder\"\n};\n\nexport { GlEncoderSystem };\n//# sourceMappingURL=GlEncoderSystem.mjs.map\n","import { ExtensionType } from '../../../extensions/Extensions.mjs';\nimport { GpuStencilModesToPixi } from '../gpu/state/GpuStencilModesToPixi.mjs';\nimport { STENCIL_MODES } from '../shared/state/const.mjs';\n\n\"use strict\";\nclass GlStencilSystem {\n constructor(renderer) {\n this._stencilCache = {\n enabled: false,\n stencilReference: 0,\n stencilMode: STENCIL_MODES.NONE\n };\n this._renderTargetStencilState = /* @__PURE__ */ Object.create(null);\n renderer.renderTarget.onRenderTargetChange.add(this);\n }\n contextChange(gl) {\n this._gl = gl;\n this._comparisonFuncMapping = {\n always: gl.ALWAYS,\n never: gl.NEVER,\n equal: gl.EQUAL,\n \"not-equal\": gl.NOTEQUAL,\n less: gl.LESS,\n \"less-equal\": gl.LEQUAL,\n greater: gl.GREATER,\n \"greater-equal\": gl.GEQUAL\n };\n this._stencilOpsMapping = {\n keep: gl.KEEP,\n zero: gl.ZERO,\n replace: gl.REPLACE,\n invert: gl.INVERT,\n \"increment-clamp\": gl.INCR,\n \"decrement-clamp\": gl.DECR,\n \"increment-wrap\": gl.INCR_WRAP,\n \"decrement-wrap\": gl.DECR_WRAP\n };\n this._stencilCache.enabled = false;\n this._stencilCache.stencilMode = STENCIL_MODES.NONE;\n this._stencilCache.stencilReference = 0;\n }\n onRenderTargetChange(renderTarget) {\n if (this._activeRenderTarget === renderTarget)\n return;\n this._activeRenderTarget = renderTarget;\n let stencilState = this._renderTargetStencilState[renderTarget.uid];\n if (!stencilState) {\n stencilState = this._renderTargetStencilState[renderTarget.uid] = {\n stencilMode: STENCIL_MODES.DISABLED,\n stencilReference: 0\n };\n }\n this.setStencilMode(stencilState.stencilMode, stencilState.stencilReference);\n }\n setStencilMode(stencilMode, stencilReference) {\n const stencilState = this._renderTargetStencilState[this._activeRenderTarget.uid];\n const gl = this._gl;\n const mode = GpuStencilModesToPixi[stencilMode];\n const _stencilCache = this._stencilCache;\n stencilState.stencilMode = stencilMode;\n stencilState.stencilReference = stencilReference;\n if (stencilMode === STENCIL_MODES.DISABLED) {\n if (this._stencilCache.enabled) {\n this._stencilCache.enabled = false;\n gl.disable(gl.STENCIL_TEST);\n }\n return;\n }\n if (!this._stencilCache.enabled) {\n this._stencilCache.enabled = true;\n gl.enable(gl.STENCIL_TEST);\n }\n if (stencilMode !== _stencilCache.stencilMode || _stencilCache.stencilReference !== stencilReference) {\n _stencilCache.stencilMode = stencilMode;\n _stencilCache.stencilReference = stencilReference;\n gl.stencilFunc(this._comparisonFuncMapping[mode.stencilBack.compare], stencilReference, 255);\n gl.stencilOp(gl.KEEP, gl.KEEP, this._stencilOpsMapping[mode.stencilBack.passOp]);\n }\n }\n}\n/** @ignore */\nGlStencilSystem.extension = {\n type: [\n ExtensionType.WebGLSystem\n ],\n name: \"stencil\"\n};\n\nexport { GlStencilSystem };\n//# sourceMappingURL=GlStencilSystem.mjs.map\n","\"use strict\";\nclass GlRenderTarget {\n constructor() {\n this.width = -1;\n this.height = -1;\n this.msaa = false;\n this.msaaRenderBuffer = [];\n }\n}\n\nexport { GlRenderTarget };\n//# sourceMappingURL=GlRenderTarget.mjs.map\n","import { Rectangle } from '../../../../maths/shapes/Rectangle.mjs';\nimport { warn } from '../../../../utils/logging/warn.mjs';\nimport { CLEAR } from '../const.mjs';\nimport { GlRenderTarget } from '../GlRenderTarget.mjs';\n\n\"use strict\";\nclass GlRenderTargetAdaptor {\n constructor() {\n this._clearColorCache = [0, 0, 0, 0];\n this._viewPortCache = new Rectangle();\n }\n init(renderer, renderTargetSystem) {\n this._renderer = renderer;\n this._renderTargetSystem = renderTargetSystem;\n renderer.runners.contextChange.add(this);\n }\n contextChange() {\n this._clearColorCache = [0, 0, 0, 0];\n this._viewPortCache = new Rectangle();\n }\n copyToTexture(sourceRenderSurfaceTexture, destinationTexture, originSrc, size, originDest) {\n const renderTargetSystem = this._renderTargetSystem;\n const renderer = this._renderer;\n const glRenderTarget = renderTargetSystem.getGpuRenderTarget(sourceRenderSurfaceTexture);\n const gl = renderer.gl;\n this.finishRenderPass(sourceRenderSurfaceTexture);\n gl.bindFramebuffer(gl.FRAMEBUFFER, glRenderTarget.resolveTargetFramebuffer);\n renderer.texture.bind(destinationTexture, 0);\n gl.copyTexSubImage2D(\n gl.TEXTURE_2D,\n 0,\n originDest.x,\n originDest.y,\n originSrc.x,\n originSrc.y,\n size.width,\n size.height\n );\n return destinationTexture;\n }\n startRenderPass(renderTarget, clear = true, clearColor, viewport) {\n const renderTargetSystem = this._renderTargetSystem;\n const source = renderTarget.colorTexture;\n const gpuRenderTarget = renderTargetSystem.getGpuRenderTarget(renderTarget);\n let viewPortY = viewport.y;\n if (renderTarget.isRoot) {\n viewPortY = source.pixelHeight - viewport.height;\n }\n renderTarget.colorTextures.forEach((texture) => {\n this._renderer.texture.unbind(texture);\n });\n const gl = this._renderer.gl;\n gl.bindFramebuffer(gl.FRAMEBUFFER, gpuRenderTarget.framebuffer);\n const viewPortCache = this._viewPortCache;\n if (viewPortCache.x !== viewport.x || viewPortCache.y !== viewPortY || viewPortCache.width !== viewport.width || viewPortCache.height !== viewport.height) {\n viewPortCache.x = viewport.x;\n viewPortCache.y = viewPortY;\n viewPortCache.width = viewport.width;\n viewPortCache.height = viewport.height;\n gl.viewport(\n viewport.x,\n viewPortY,\n viewport.width,\n viewport.height\n );\n }\n if (!gpuRenderTarget.depthStencilRenderBuffer && (renderTarget.stencil || renderTarget.depth)) {\n this._initStencil(gpuRenderTarget);\n }\n this.clear(renderTarget, clear, clearColor);\n }\n finishRenderPass(renderTarget) {\n const renderTargetSystem = this._renderTargetSystem;\n const glRenderTarget = renderTargetSystem.getGpuRenderTarget(renderTarget);\n if (!glRenderTarget.msaa)\n return;\n const gl = this._renderer.gl;\n gl.bindFramebuffer(gl.FRAMEBUFFER, glRenderTarget.resolveTargetFramebuffer);\n gl.bindFramebuffer(gl.READ_FRAMEBUFFER, glRenderTarget.framebuffer);\n gl.blitFramebuffer(\n 0,\n 0,\n glRenderTarget.width,\n glRenderTarget.height,\n 0,\n 0,\n glRenderTarget.width,\n glRenderTarget.height,\n gl.COLOR_BUFFER_BIT,\n gl.NEAREST\n );\n gl.bindFramebuffer(gl.FRAMEBUFFER, glRenderTarget.framebuffer);\n }\n initGpuRenderTarget(renderTarget) {\n const renderer = this._renderer;\n const gl = renderer.gl;\n const glRenderTarget = new GlRenderTarget();\n if (renderTarget.colorTexture.resource === renderer.gl.canvas) {\n glRenderTarget.framebuffer = null;\n return glRenderTarget;\n }\n this._initColor(renderTarget, glRenderTarget);\n gl.bindFramebuffer(gl.FRAMEBUFFER, null);\n return glRenderTarget;\n }\n destroyGpuRenderTarget(gpuRenderTarget) {\n const gl = this._renderer.gl;\n if (gpuRenderTarget.framebuffer) {\n gl.deleteFramebuffer(gpuRenderTarget.framebuffer);\n gpuRenderTarget.framebuffer = null;\n }\n if (gpuRenderTarget.resolveTargetFramebuffer) {\n gl.deleteFramebuffer(gpuRenderTarget.resolveTargetFramebuffer);\n gpuRenderTarget.resolveTargetFramebuffer = null;\n }\n if (gpuRenderTarget.depthStencilRenderBuffer) {\n gl.deleteRenderbuffer(gpuRenderTarget.depthStencilRenderBuffer);\n gpuRenderTarget.depthStencilRenderBuffer = null;\n }\n gpuRenderTarget.msaaRenderBuffer.forEach((renderBuffer) => {\n gl.deleteRenderbuffer(renderBuffer);\n });\n gpuRenderTarget.msaaRenderBuffer = null;\n }\n clear(_renderTarget, clear, clearColor) {\n if (!clear)\n return;\n const renderTargetSystem = this._renderTargetSystem;\n if (typeof clear === \"boolean\") {\n clear = clear ? CLEAR.ALL : CLEAR.NONE;\n }\n const gl = this._renderer.gl;\n if (clear & CLEAR.COLOR) {\n clearColor ?? (clearColor = renderTargetSystem.defaultClearColor);\n const clearColorCache = this._clearColorCache;\n const clearColorArray = clearColor;\n if (clearColorCache[0] !== clearColorArray[0] || clearColorCache[1] !== clearColorArray[1] || clearColorCache[2] !== clearColorArray[2] || clearColorCache[3] !== clearColorArray[3]) {\n clearColorCache[0] = clearColorArray[0];\n clearColorCache[1] = clearColorArray[1];\n clearColorCache[2] = clearColorArray[2];\n clearColorCache[3] = clearColorArray[3];\n gl.clearColor(clearColorArray[0], clearColorArray[1], clearColorArray[2], clearColorArray[3]);\n }\n }\n gl.clear(clear);\n }\n resizeGpuRenderTarget(renderTarget) {\n if (renderTarget.isRoot)\n return;\n const renderTargetSystem = this._renderTargetSystem;\n const glRenderTarget = renderTargetSystem.getGpuRenderTarget(renderTarget);\n this._resizeColor(renderTarget, glRenderTarget);\n if (renderTarget.stencil) {\n this._resizeStencil(glRenderTarget);\n }\n }\n _initColor(renderTarget, glRenderTarget) {\n const renderer = this._renderer;\n const gl = renderer.gl;\n const resolveTargetFramebuffer = gl.createFramebuffer();\n glRenderTarget.resolveTargetFramebuffer = resolveTargetFramebuffer;\n gl.bindFramebuffer(gl.FRAMEBUFFER, resolveTargetFramebuffer);\n glRenderTarget.width = renderTarget.colorTexture.source.pixelWidth;\n glRenderTarget.height = renderTarget.colorTexture.source.pixelHeight;\n renderTarget.colorTextures.forEach((colorTexture, i) => {\n const source = colorTexture.source;\n if (source.antialias) {\n if (renderer.context.supports.msaa) {\n glRenderTarget.msaa = true;\n } else {\n warn(\"[RenderTexture] Antialiasing on textures is not supported in WebGL1\");\n }\n }\n renderer.texture.bindSource(source, 0);\n const glSource = renderer.texture.getGlSource(source);\n const glTexture = glSource.texture;\n gl.framebufferTexture2D(\n gl.FRAMEBUFFER,\n gl.COLOR_ATTACHMENT0 + i,\n 3553,\n // texture.target,\n glTexture,\n 0\n );\n });\n if (glRenderTarget.msaa) {\n const viewFramebuffer = gl.createFramebuffer();\n glRenderTarget.framebuffer = viewFramebuffer;\n gl.bindFramebuffer(gl.FRAMEBUFFER, viewFramebuffer);\n renderTarget.colorTextures.forEach((_, i) => {\n const msaaRenderBuffer = gl.createRenderbuffer();\n glRenderTarget.msaaRenderBuffer[i] = msaaRenderBuffer;\n });\n } else {\n glRenderTarget.framebuffer = resolveTargetFramebuffer;\n }\n this._resizeColor(renderTarget, glRenderTarget);\n }\n _resizeColor(renderTarget, glRenderTarget) {\n const source = renderTarget.colorTexture.source;\n glRenderTarget.width = source.pixelWidth;\n glRenderTarget.height = source.pixelHeight;\n renderTarget.colorTextures.forEach((colorTexture, i) => {\n if (i === 0)\n return;\n colorTexture.source.resize(source.width, source.height, source._resolution);\n });\n if (glRenderTarget.msaa) {\n const renderer = this._renderer;\n const gl = renderer.gl;\n const viewFramebuffer = glRenderTarget.framebuffer;\n gl.bindFramebuffer(gl.FRAMEBUFFER, viewFramebuffer);\n renderTarget.colorTextures.forEach((colorTexture, i) => {\n const source2 = colorTexture.source;\n renderer.texture.bindSource(source2, 0);\n const glSource = renderer.texture.getGlSource(source2);\n const glInternalFormat = glSource.internalFormat;\n const msaaRenderBuffer = glRenderTarget.msaaRenderBuffer[i];\n gl.bindRenderbuffer(\n gl.RENDERBUFFER,\n msaaRenderBuffer\n );\n gl.renderbufferStorageMultisample(\n gl.RENDERBUFFER,\n 4,\n glInternalFormat,\n source2.pixelWidth,\n source2.pixelHeight\n );\n gl.framebufferRenderbuffer(\n gl.FRAMEBUFFER,\n gl.COLOR_ATTACHMENT0 + i,\n gl.RENDERBUFFER,\n msaaRenderBuffer\n );\n });\n }\n }\n _initStencil(glRenderTarget) {\n if (glRenderTarget.framebuffer === null)\n return;\n const gl = this._renderer.gl;\n const depthStencilRenderBuffer = gl.createRenderbuffer();\n glRenderTarget.depthStencilRenderBuffer = depthStencilRenderBuffer;\n gl.bindRenderbuffer(\n gl.RENDERBUFFER,\n depthStencilRenderBuffer\n );\n gl.framebufferRenderbuffer(\n gl.FRAMEBUFFER,\n gl.DEPTH_STENCIL_ATTACHMENT,\n gl.RENDERBUFFER,\n depthStencilRenderBuffer\n );\n this._resizeStencil(glRenderTarget);\n }\n _resizeStencil(glRenderTarget) {\n const gl = this._renderer.gl;\n gl.bindRenderbuffer(\n gl.RENDERBUFFER,\n glRenderTarget.depthStencilRenderBuffer\n );\n if (glRenderTarget.msaa) {\n gl.renderbufferStorageMultisample(\n gl.RENDERBUFFER,\n 4,\n gl.DEPTH24_STENCIL8,\n glRenderTarget.width,\n glRenderTarget.height\n );\n } else {\n gl.renderbufferStorage(\n gl.RENDERBUFFER,\n this._renderer.context.webGLVersion === 2 ? gl.DEPTH24_STENCIL8 : gl.DEPTH_STENCIL,\n glRenderTarget.width,\n glRenderTarget.height\n );\n }\n }\n}\n\nexport { GlRenderTargetAdaptor };\n//# sourceMappingURL=GlRenderTargetAdaptor.mjs.map\n","import { ExtensionType } from '../../../../extensions/Extensions.mjs';\nimport { RenderTargetSystem } from '../../shared/renderTarget/RenderTargetSystem.mjs';\nimport { GlRenderTargetAdaptor } from './GlRenderTargetAdaptor.mjs';\n\n\"use strict\";\nclass GlRenderTargetSystem extends RenderTargetSystem {\n constructor(renderer) {\n super(renderer);\n this.adaptor = new GlRenderTargetAdaptor();\n this.adaptor.init(renderer, this);\n }\n}\n/** @ignore */\nGlRenderTargetSystem.extension = {\n type: [ExtensionType.WebGLSystem],\n name: \"renderTarget\"\n};\n\nexport { GlRenderTargetSystem };\n//# sourceMappingURL=GlRenderTargetSystem.mjs.map\n","import { ExtensionType } from '../../../../extensions/Extensions.mjs';\nimport { State } from '../../shared/state/State.mjs';\nimport { mapWebGLBlendModesToPixi } from './mapWebGLBlendModesToPixi.mjs';\n\n\"use strict\";\nconst BLEND = 0;\nconst OFFSET = 1;\nconst CULLING = 2;\nconst DEPTH_TEST = 3;\nconst WINDING = 4;\nconst DEPTH_MASK = 5;\nconst _GlStateSystem = class _GlStateSystem {\n constructor() {\n this.gl = null;\n this.stateId = 0;\n this.polygonOffset = 0;\n this.blendMode = \"none\";\n this._blendEq = false;\n this.map = [];\n this.map[BLEND] = this.setBlend;\n this.map[OFFSET] = this.setOffset;\n this.map[CULLING] = this.setCullFace;\n this.map[DEPTH_TEST] = this.setDepthTest;\n this.map[WINDING] = this.setFrontFace;\n this.map[DEPTH_MASK] = this.setDepthMask;\n this.checks = [];\n this.defaultState = State.for2d();\n }\n contextChange(gl) {\n this.gl = gl;\n this.blendModesMap = mapWebGLBlendModesToPixi(gl);\n this.reset();\n }\n /**\n * Sets the current state\n * @param {*} state - The state to set.\n */\n set(state) {\n state = state || this.defaultState;\n if (this.stateId !== state.data) {\n let diff = this.stateId ^ state.data;\n let i = 0;\n while (diff) {\n if (diff & 1) {\n this.map[i].call(this, !!(state.data & 1 << i));\n }\n diff = diff >> 1;\n i++;\n }\n this.stateId = state.data;\n }\n for (let i = 0; i < this.checks.length; i++) {\n this.checks[i](this, state);\n }\n }\n /**\n * Sets the state, when previous state is unknown.\n * @param {*} state - The state to set\n */\n forceState(state) {\n state = state || this.defaultState;\n for (let i = 0; i < this.map.length; i++) {\n this.map[i].call(this, !!(state.data & 1 << i));\n }\n for (let i = 0; i < this.checks.length; i++) {\n this.checks[i](this, state);\n }\n this.stateId = state.data;\n }\n /**\n * Sets whether to enable or disable blending.\n * @param value - Turn on or off WebGl blending.\n */\n setBlend(value) {\n this._updateCheck(_GlStateSystem._checkBlendMode, value);\n this.gl[value ? \"enable\" : \"disable\"](this.gl.BLEND);\n }\n /**\n * Sets whether to enable or disable polygon offset fill.\n * @param value - Turn on or off webgl polygon offset testing.\n */\n setOffset(value) {\n this._updateCheck(_GlStateSystem._checkPolygonOffset, value);\n this.gl[value ? \"enable\" : \"disable\"](this.gl.POLYGON_OFFSET_FILL);\n }\n /**\n * Sets whether to enable or disable depth test.\n * @param value - Turn on or off webgl depth testing.\n */\n setDepthTest(value) {\n this.gl[value ? \"enable\" : \"disable\"](this.gl.DEPTH_TEST);\n }\n /**\n * Sets whether to enable or disable depth mask.\n * @param value - Turn on or off webgl depth mask.\n */\n setDepthMask(value) {\n this.gl.depthMask(value);\n }\n /**\n * Sets whether to enable or disable cull face.\n * @param {boolean} value - Turn on or off webgl cull face.\n */\n setCullFace(value) {\n this.gl[value ? \"enable\" : \"disable\"](this.gl.CULL_FACE);\n }\n /**\n * Sets the gl front face.\n * @param {boolean} value - true is clockwise and false is counter-clockwise\n */\n setFrontFace(value) {\n this.gl.frontFace(this.gl[value ? \"CW\" : \"CCW\"]);\n }\n /**\n * Sets the blend mode.\n * @param {number} value - The blend mode to set to.\n */\n setBlendMode(value) {\n if (!this.blendModesMap[value]) {\n value = \"normal\";\n }\n if (value === this.blendMode) {\n return;\n }\n this.blendMode = value;\n const mode = this.blendModesMap[value];\n const gl = this.gl;\n if (mode.length === 2) {\n gl.blendFunc(mode[0], mode[1]);\n } else {\n gl.blendFuncSeparate(mode[0], mode[1], mode[2], mode[3]);\n }\n if (mode.length === 6) {\n this._blendEq = true;\n gl.blendEquationSeparate(mode[4], mode[5]);\n } else if (this._blendEq) {\n this._blendEq = false;\n gl.blendEquationSeparate(gl.FUNC_ADD, gl.FUNC_ADD);\n }\n }\n /**\n * Sets the polygon offset.\n * @param {number} value - the polygon offset\n * @param {number} scale - the polygon offset scale\n */\n setPolygonOffset(value, scale) {\n this.gl.polygonOffset(value, scale);\n }\n // used\n /** Resets all the logic and disables the VAOs. */\n reset() {\n this.gl.pixelStorei(this.gl.UNPACK_FLIP_Y_WEBGL, false);\n this.forceState(this.defaultState);\n this._blendEq = true;\n this.blendMode = \"\";\n this.setBlendMode(\"normal\");\n }\n /**\n * Checks to see which updates should be checked based on which settings have been activated.\n *\n * For example, if blend is enabled then we should check the blend modes each time the state is changed\n * or if polygon fill is activated then we need to check if the polygon offset changes.\n * The idea is that we only check what we have too.\n * @param func - the checking function to add or remove\n * @param value - should the check function be added or removed.\n */\n _updateCheck(func, value) {\n const index = this.checks.indexOf(func);\n if (value && index === -1) {\n this.checks.push(func);\n } else if (!value && index !== -1) {\n this.checks.splice(index, 1);\n }\n }\n /**\n * A private little wrapper function that we call to check the blend mode.\n * @param system - the System to perform the state check on\n * @param state - the state that the blendMode will pulled from\n */\n static _checkBlendMode(system, state) {\n system.setBlendMode(state.blendMode);\n }\n /**\n * A private little wrapper function that we call to check the polygon offset.\n * @param system - the System to perform the state check on\n * @param state - the state that the blendMode will pulled from\n */\n static _checkPolygonOffset(system, state) {\n system.setPolygonOffset(1, state.polygonOffset);\n }\n /**\n * @ignore\n */\n destroy() {\n this.gl = null;\n this.checks.length = 0;\n }\n};\n/** @ignore */\n_GlStateSystem.extension = {\n type: [\n ExtensionType.WebGLSystem\n ],\n name: \"state\"\n};\nlet GlStateSystem = _GlStateSystem;\n\nexport { GlStateSystem };\n//# sourceMappingURL=GlStateSystem.mjs.map\n","\"use strict\";\nfunction mapWebGLBlendModesToPixi(gl) {\n const blendMap = {};\n blendMap.normal = [gl.ONE, gl.ONE_MINUS_SRC_ALPHA];\n blendMap.add = [gl.ONE, gl.ONE];\n blendMap.multiply = [gl.DST_COLOR, gl.ONE_MINUS_SRC_ALPHA, gl.ONE, gl.ONE_MINUS_SRC_ALPHA];\n blendMap.screen = [gl.ONE, gl.ONE_MINUS_SRC_COLOR, gl.ONE, gl.ONE_MINUS_SRC_ALPHA];\n blendMap.none = [0, 0];\n blendMap[\"normal-npm\"] = [gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA, gl.ONE, gl.ONE_MINUS_SRC_ALPHA];\n blendMap[\"add-npm\"] = [gl.SRC_ALPHA, gl.ONE, gl.ONE, gl.ONE];\n blendMap[\"screen-npm\"] = [gl.SRC_ALPHA, gl.ONE_MINUS_SRC_COLOR, gl.ONE, gl.ONE_MINUS_SRC_ALPHA];\n blendMap.erase = [gl.ZERO, gl.ONE_MINUS_SRC_ALPHA];\n return blendMap;\n}\n\nexport { mapWebGLBlendModesToPixi };\n//# sourceMappingURL=mapWebGLBlendModesToPixi.mjs.map\n","import { GL_TARGETS, GL_TYPES, GL_FORMATS } from './const.mjs';\n\n\"use strict\";\nclass GlTexture {\n constructor(texture) {\n this.target = GL_TARGETS.TEXTURE_2D;\n this.texture = texture;\n this.width = -1;\n this.height = -1;\n this.type = GL_TYPES.UNSIGNED_BYTE;\n this.internalFormat = GL_FORMATS.RGBA;\n this.format = GL_FORMATS.RGBA;\n this.samplerType = 0;\n }\n}\n\nexport { GlTexture };\n//# sourceMappingURL=GlTexture.mjs.map\n","\"use strict\";\nconst glUploadBufferImageResource = {\n id: \"image\",\n upload(source, glTexture, gl) {\n if (glTexture.width === source.width || glTexture.height === source.height) {\n gl.texSubImage2D(\n gl.TEXTURE_2D,\n 0,\n 0,\n 0,\n glTexture.format,\n glTexture.type,\n source.resource\n );\n } else {\n gl.texImage2D(\n glTexture.target,\n 0,\n glTexture.internalFormat,\n source.width,\n source.height,\n 0,\n glTexture.format,\n glTexture.type,\n source.resource\n );\n }\n glTexture.width = source.width;\n glTexture.height = source.height;\n }\n};\n\nexport { glUploadBufferImageResource };\n//# sourceMappingURL=glUploadBufferImageResource.mjs.map\n","\"use strict\";\nconst compressedFormatMap = {\n \"bc1-rgba-unorm\": true,\n \"bc1-rgba-unorm-srgb\": true,\n \"bc2-rgba-unorm\": true,\n \"bc2-rgba-unorm-srgb\": true,\n \"bc3-rgba-unorm\": true,\n \"bc3-rgba-unorm-srgb\": true,\n \"bc4-r-unorm\": true,\n \"bc4-r-snorm\": true,\n \"bc5-rg-unorm\": true,\n \"bc5-rg-snorm\": true,\n \"bc6h-rgb-ufloat\": true,\n \"bc6h-rgb-float\": true,\n \"bc7-rgba-unorm\": true,\n \"bc7-rgba-unorm-srgb\": true,\n // ETC2 compressed formats usable if \"texture-compression-etc2\" is both\n // supported by the device/user agent and enabled in requestDevice.\n \"etc2-rgb8unorm\": true,\n \"etc2-rgb8unorm-srgb\": true,\n \"etc2-rgb8a1unorm\": true,\n \"etc2-rgb8a1unorm-srgb\": true,\n \"etc2-rgba8unorm\": true,\n \"etc2-rgba8unorm-srgb\": true,\n \"eac-r11unorm\": true,\n \"eac-r11snorm\": true,\n \"eac-rg11unorm\": true,\n \"eac-rg11snorm\": true,\n // ASTC compressed formats usable if \"texture-compression-astc\" is both\n // supported by the device/user agent and enabled in requestDevice.\n \"astc-4x4-unorm\": true,\n \"astc-4x4-unorm-srgb\": true,\n \"astc-5x4-unorm\": true,\n \"astc-5x4-unorm-srgb\": true,\n \"astc-5x5-unorm\": true,\n \"astc-5x5-unorm-srgb\": true,\n \"astc-6x5-unorm\": true,\n \"astc-6x5-unorm-srgb\": true,\n \"astc-6x6-unorm\": true,\n \"astc-6x6-unorm-srgb\": true,\n \"astc-8x5-unorm\": true,\n \"astc-8x5-unorm-srgb\": true,\n \"astc-8x6-unorm\": true,\n \"astc-8x6-unorm-srgb\": true,\n \"astc-8x8-unorm\": true,\n \"astc-8x8-unorm-srgb\": true,\n \"astc-10x5-unorm\": true,\n \"astc-10x5-unorm-srgb\": true,\n \"astc-10x6-unorm\": true,\n \"astc-10x6-unorm-srgb\": true,\n \"astc-10x8-unorm\": true,\n \"astc-10x8-unorm-srgb\": true,\n \"astc-10x10-unorm\": true,\n \"astc-10x10-unorm-srgb\": true,\n \"astc-12x10-unorm\": true,\n \"astc-12x10-unorm-srgb\": true,\n \"astc-12x12-unorm\": true,\n \"astc-12x12-unorm-srgb\": true\n};\nconst glUploadCompressedTextureResource = {\n id: \"compressed\",\n upload(source, glTexture, gl) {\n gl.pixelStorei(gl.UNPACK_ALIGNMENT, 4);\n let mipWidth = source.pixelWidth;\n let mipHeight = source.pixelHeight;\n const compressed = !!compressedFormatMap[source.format];\n for (let i = 0; i < source.resource.length; i++) {\n const levelBuffer = source.resource[i];\n if (compressed) {\n gl.compressedTexImage2D(\n gl.TEXTURE_2D,\n i,\n glTexture.internalFormat,\n mipWidth,\n mipHeight,\n 0,\n levelBuffer\n );\n } else {\n gl.texImage2D(\n gl.TEXTURE_2D,\n i,\n glTexture.internalFormat,\n mipWidth,\n mipHeight,\n 0,\n glTexture.format,\n glTexture.type,\n levelBuffer\n );\n }\n mipWidth = Math.max(mipWidth >> 1, 1);\n mipHeight = Math.max(mipHeight >> 1, 1);\n }\n }\n};\n\nexport { glUploadCompressedTextureResource };\n//# sourceMappingURL=glUploadCompressedTextureResource.mjs.map\n","\"use strict\";\nconst glUploadImageResource = {\n id: \"image\",\n upload(source, glTexture, gl, webGLVersion) {\n const premultipliedAlpha = source.alphaMode === \"premultiply-alpha-on-upload\";\n gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, premultipliedAlpha);\n const glWidth = glTexture.width;\n const glHeight = glTexture.height;\n const textureWidth = source.pixelWidth;\n const textureHeight = source.pixelHeight;\n const resourceWidth = source.resourceWidth;\n const resourceHeight = source.resourceHeight;\n if (resourceWidth < textureWidth || resourceHeight < textureHeight) {\n if (glWidth !== textureWidth || glHeight !== textureHeight) {\n gl.texImage2D(\n glTexture.target,\n 0,\n glTexture.internalFormat,\n textureWidth,\n textureHeight,\n 0,\n glTexture.format,\n glTexture.type,\n null\n );\n }\n if (webGLVersion === 2) {\n gl.texSubImage2D(\n gl.TEXTURE_2D,\n 0,\n 0,\n 0,\n resourceWidth,\n resourceHeight,\n glTexture.format,\n glTexture.type,\n source.resource\n );\n } else {\n gl.texSubImage2D(\n gl.TEXTURE_2D,\n 0,\n 0,\n 0,\n glTexture.format,\n glTexture.type,\n source.resource\n );\n }\n } else if (glWidth === textureWidth || glHeight === textureHeight) {\n gl.texSubImage2D(\n gl.TEXTURE_2D,\n 0,\n 0,\n 0,\n glTexture.format,\n glTexture.type,\n source.resource\n );\n } else if (webGLVersion === 2) {\n gl.texImage2D(\n glTexture.target,\n 0,\n glTexture.internalFormat,\n textureWidth,\n textureHeight,\n 0,\n glTexture.format,\n glTexture.type,\n source.resource\n );\n } else {\n gl.texImage2D(\n glTexture.target,\n 0,\n glTexture.internalFormat,\n glTexture.format,\n glTexture.type,\n source.resource\n );\n }\n glTexture.width = textureWidth;\n glTexture.height = textureHeight;\n }\n};\n\nexport { glUploadImageResource };\n//# sourceMappingURL=glUploadImageResource.mjs.map\n","import { glUploadImageResource } from './glUploadImageResource.mjs';\n\n\"use strict\";\nconst glUploadVideoResource = {\n id: \"video\",\n upload(source, glTexture, gl, webGLVersion) {\n if (!source.isValid) {\n gl.texImage2D(\n glTexture.target,\n 0,\n glTexture.internalFormat,\n 1,\n 1,\n 0,\n glTexture.format,\n glTexture.type,\n null\n );\n return;\n }\n glUploadImageResource.upload(source, glTexture, gl, webGLVersion);\n }\n};\n\nexport { glUploadVideoResource };\n//# sourceMappingURL=glUploadVideoResource.mjs.map\n","\"use strict\";\nconst scaleModeToGlFilter = {\n linear: 9729,\n nearest: 9728\n};\nconst mipmapScaleModeToGlFilter = {\n linear: {\n linear: 9987,\n nearest: 9985\n },\n nearest: {\n linear: 9986,\n nearest: 9984\n }\n};\nconst wrapModeToGlAddress = {\n \"clamp-to-edge\": 33071,\n repeat: 10497,\n \"mirror-repeat\": 33648\n};\nconst compareModeToGlCompare = {\n never: 512,\n less: 513,\n equal: 514,\n \"less-equal\": 515,\n greater: 516,\n \"not-equal\": 517,\n \"greater-equal\": 518,\n always: 519\n};\n\nexport { compareModeToGlCompare, mipmapScaleModeToGlFilter, scaleModeToGlFilter, wrapModeToGlAddress };\n//# sourceMappingURL=pixiToGlMaps.mjs.map\n","import { wrapModeToGlAddress, scaleModeToGlFilter, mipmapScaleModeToGlFilter, compareModeToGlCompare } from './pixiToGlMaps.mjs';\n\n\"use strict\";\nfunction applyStyleParams(style, gl, mipmaps, anisotropicExt, glFunctionName, firstParam, forceClamp, firstCreation) {\n const castParam = firstParam;\n if (!firstCreation || style.addressModeU !== \"repeat\" || style.addressModeV !== \"repeat\" || style.addressModeW !== \"repeat\") {\n const wrapModeS = wrapModeToGlAddress[forceClamp ? \"clamp-to-edge\" : style.addressModeU];\n const wrapModeT = wrapModeToGlAddress[forceClamp ? \"clamp-to-edge\" : style.addressModeV];\n const wrapModeR = wrapModeToGlAddress[forceClamp ? \"clamp-to-edge\" : style.addressModeW];\n gl[glFunctionName](castParam, gl.TEXTURE_WRAP_S, wrapModeS);\n gl[glFunctionName](castParam, gl.TEXTURE_WRAP_T, wrapModeT);\n if (gl.TEXTURE_WRAP_R)\n gl[glFunctionName](castParam, gl.TEXTURE_WRAP_R, wrapModeR);\n }\n if (!firstCreation || style.magFilter !== \"linear\") {\n gl[glFunctionName](castParam, gl.TEXTURE_MAG_FILTER, scaleModeToGlFilter[style.magFilter]);\n }\n if (mipmaps) {\n if (!firstCreation || style.mipmapFilter !== \"linear\") {\n const glFilterMode = mipmapScaleModeToGlFilter[style.minFilter][style.mipmapFilter];\n gl[glFunctionName](castParam, gl.TEXTURE_MIN_FILTER, glFilterMode);\n }\n } else {\n gl[glFunctionName](castParam, gl.TEXTURE_MIN_FILTER, scaleModeToGlFilter[style.minFilter]);\n }\n if (anisotropicExt && style.maxAnisotropy > 1) {\n const level = Math.min(style.maxAnisotropy, gl.getParameter(anisotropicExt.MAX_TEXTURE_MAX_ANISOTROPY_EXT));\n gl[glFunctionName](castParam, anisotropicExt.TEXTURE_MAX_ANISOTROPY_EXT, level);\n }\n if (style.compare) {\n gl[glFunctionName](castParam, gl.TEXTURE_COMPARE_FUNC, compareModeToGlCompare[style.compare]);\n }\n}\n\nexport { applyStyleParams };\n//# sourceMappingURL=applyStyleParams.mjs.map\n","import { DOMAdapter } from '../../../../environment/adapter.mjs';\nimport { ExtensionType } from '../../../../extensions/Extensions.mjs';\nimport { Texture } from '../../shared/texture/Texture.mjs';\nimport { GlTexture } from './GlTexture.mjs';\nimport { glUploadBufferImageResource } from './uploaders/glUploadBufferImageResource.mjs';\nimport { glUploadCompressedTextureResource } from './uploaders/glUploadCompressedTextureResource.mjs';\nimport { glUploadImageResource } from './uploaders/glUploadImageResource.mjs';\nimport { glUploadVideoResource } from './uploaders/glUploadVideoResource.mjs';\nimport { applyStyleParams } from './utils/applyStyleParams.mjs';\nimport { mapFormatToGlFormat } from './utils/mapFormatToGlFormat.mjs';\nimport { mapFormatToGlInternalFormat } from './utils/mapFormatToGlInternalFormat.mjs';\nimport { mapFormatToGlType } from './utils/mapFormatToGlType.mjs';\nimport './utils/unpremultiplyAlpha.mjs';\n\n\"use strict\";\nconst BYTES_PER_PIXEL = 4;\nclass GlTextureSystem {\n constructor(renderer) {\n this.managedTextures = [];\n this._glTextures = /* @__PURE__ */ Object.create(null);\n this._glSamplers = /* @__PURE__ */ Object.create(null);\n this._boundTextures = [];\n this._activeTextureLocation = -1;\n this._boundSamplers = /* @__PURE__ */ Object.create(null);\n this._uploads = {\n image: glUploadImageResource,\n buffer: glUploadBufferImageResource,\n video: glUploadVideoResource,\n compressed: glUploadCompressedTextureResource\n };\n // TODO - separate samplers will be a cool thing to add, but not right now!\n this._useSeparateSamplers = false;\n this._renderer = renderer;\n }\n contextChange(gl) {\n this._gl = gl;\n if (!this._mapFormatToInternalFormat) {\n this._mapFormatToInternalFormat = mapFormatToGlInternalFormat(gl, this._renderer.context.extensions);\n this._mapFormatToType = mapFormatToGlType(gl);\n this._mapFormatToFormat = mapFormatToGlFormat(gl);\n }\n this._glTextures = /* @__PURE__ */ Object.create(null);\n this._glSamplers = /* @__PURE__ */ Object.create(null);\n this._boundSamplers = /* @__PURE__ */ Object.create(null);\n for (let i = 0; i < 16; i++) {\n this.bind(Texture.EMPTY, i);\n }\n }\n initSource(source) {\n this.bind(source);\n }\n bind(texture, location = 0) {\n const source = texture.source;\n if (texture) {\n this.bindSource(source, location);\n if (this._useSeparateSamplers) {\n this._bindSampler(source.style, location);\n }\n } else {\n this.bindSource(null, location);\n if (this._useSeparateSamplers) {\n this._bindSampler(null, location);\n }\n }\n }\n bindSource(source, location = 0) {\n const gl = this._gl;\n source._touched = this._renderer.textureGC.count;\n if (this._boundTextures[location] !== source) {\n this._boundTextures[location] = source;\n this._activateLocation(location);\n source = source || Texture.EMPTY.source;\n const glTexture = this.getGlSource(source);\n gl.bindTexture(glTexture.target, glTexture.texture);\n }\n }\n _bindSampler(style, location = 0) {\n const gl = this._gl;\n if (!style) {\n this._boundSamplers[location] = null;\n gl.bindSampler(location, null);\n return;\n }\n const sampler = this._getGlSampler(style);\n if (this._boundSamplers[location] !== sampler) {\n this._boundSamplers[location] = sampler;\n gl.bindSampler(location, sampler);\n }\n }\n unbind(texture) {\n const source = texture.source;\n const boundTextures = this._boundTextures;\n const gl = this._gl;\n for (let i = 0; i < boundTextures.length; i++) {\n if (boundTextures[i] === source) {\n this._activateLocation(i);\n const glTexture = this.getGlSource(source);\n gl.bindTexture(glTexture.target, null);\n boundTextures[i] = null;\n }\n }\n }\n _activateLocation(location) {\n if (this._activeTextureLocation !== location) {\n this._activeTextureLocation = location;\n this._gl.activeTexture(this._gl.TEXTURE0 + location);\n }\n }\n _initSource(source) {\n const gl = this._gl;\n const glTexture = new GlTexture(gl.createTexture());\n glTexture.type = this._mapFormatToType[source.format];\n glTexture.internalFormat = this._mapFormatToInternalFormat[source.format];\n glTexture.format = this._mapFormatToFormat[source.format];\n if (source.autoGenerateMipmaps && (this._renderer.context.supports.nonPowOf2mipmaps || source.isPowerOfTwo)) {\n const biggestDimension = Math.max(source.width, source.height);\n source.mipLevelCount = Math.floor(Math.log2(biggestDimension)) + 1;\n }\n this._glTextures[source.uid] = glTexture;\n if (!this.managedTextures.includes(source)) {\n source.on(\"update\", this.onSourceUpdate, this);\n source.on(\"resize\", this.onSourceUpdate, this);\n source.on(\"styleChange\", this.onStyleChange, this);\n source.on(\"destroy\", this.onSourceDestroy, this);\n source.on(\"unload\", this.onSourceUnload, this);\n source.on(\"updateMipmaps\", this.onUpdateMipmaps, this);\n this.managedTextures.push(source);\n }\n this.onSourceUpdate(source);\n this.updateStyle(source, false);\n return glTexture;\n }\n onStyleChange(source) {\n this.updateStyle(source, false);\n }\n updateStyle(source, firstCreation) {\n const gl = this._gl;\n const glTexture = this.getGlSource(source);\n gl.bindTexture(gl.TEXTURE_2D, glTexture.texture);\n this._boundTextures[this._activeTextureLocation] = source;\n applyStyleParams(\n source.style,\n gl,\n source.mipLevelCount > 1,\n this._renderer.context.extensions.anisotropicFiltering,\n \"texParameteri\",\n gl.TEXTURE_2D,\n // will force a clamp to edge if the texture is not a power of two\n !this._renderer.context.supports.nonPowOf2wrapping && !source.isPowerOfTwo,\n firstCreation\n );\n }\n onSourceUnload(source) {\n const glTexture = this._glTextures[source.uid];\n if (!glTexture)\n return;\n this.unbind(source);\n this._glTextures[source.uid] = null;\n this._gl.deleteTexture(glTexture.texture);\n }\n onSourceUpdate(source) {\n const gl = this._gl;\n const glTexture = this.getGlSource(source);\n gl.bindTexture(gl.TEXTURE_2D, glTexture.texture);\n this._boundTextures[this._activeTextureLocation] = source;\n if (this._uploads[source.uploadMethodId]) {\n this._uploads[source.uploadMethodId].upload(source, glTexture, gl, this._renderer.context.webGLVersion);\n } else {\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, source.pixelWidth, source.pixelHeight, 0, gl.RGBA, gl.UNSIGNED_BYTE, null);\n }\n if (source.autoGenerateMipmaps && source.mipLevelCount > 1) {\n this.onUpdateMipmaps(source, false);\n }\n }\n onUpdateMipmaps(source, bind = true) {\n if (bind)\n this.bindSource(source, 0);\n const glTexture = this.getGlSource(source);\n this._gl.generateMipmap(glTexture.target);\n }\n onSourceDestroy(source) {\n source.off(\"destroy\", this.onSourceDestroy, this);\n source.off(\"update\", this.onSourceUpdate, this);\n source.off(\"resize\", this.onSourceUpdate, this);\n source.off(\"unload\", this.onSourceUnload, this);\n source.off(\"styleChange\", this.onStyleChange, this);\n source.off(\"updateMipmaps\", this.onUpdateMipmaps, this);\n this.managedTextures.splice(this.managedTextures.indexOf(source), 1);\n this.onSourceUnload(source);\n }\n _initSampler(style) {\n const gl = this._gl;\n const glSampler = this._gl.createSampler();\n this._glSamplers[style._resourceId] = glSampler;\n applyStyleParams(\n style,\n gl,\n this._boundTextures[this._activeTextureLocation].mipLevelCount > 1,\n this._renderer.context.extensions.anisotropicFiltering,\n \"samplerParameteri\",\n glSampler,\n false,\n true\n );\n return this._glSamplers[style._resourceId];\n }\n _getGlSampler(sampler) {\n return this._glSamplers[sampler._resourceId] || this._initSampler(sampler);\n }\n getGlSource(source) {\n return this._glTextures[source.uid] || this._initSource(source);\n }\n generateCanvas(texture) {\n const { pixels, width, height } = this.getPixels(texture);\n const canvas = DOMAdapter.get().createCanvas();\n canvas.width = width;\n canvas.height = height;\n const ctx = canvas.getContext(\"2d\");\n if (ctx) {\n const imageData = ctx.createImageData(width, height);\n imageData.data.set(pixels);\n ctx.putImageData(imageData, 0, 0);\n }\n return canvas;\n }\n getPixels(texture) {\n const resolution = texture.source.resolution;\n const frame = texture.frame;\n const width = Math.max(Math.round(frame.width * resolution), 1);\n const height = Math.max(Math.round(frame.height * resolution), 1);\n const pixels = new Uint8Array(BYTES_PER_PIXEL * width * height);\n const renderer = this._renderer;\n const renderTarget = renderer.renderTarget.getRenderTarget(texture);\n const glRenterTarget = renderer.renderTarget.getGpuRenderTarget(renderTarget);\n const gl = renderer.gl;\n gl.bindFramebuffer(gl.FRAMEBUFFER, glRenterTarget.resolveTargetFramebuffer);\n gl.readPixels(\n Math.round(frame.x * resolution),\n Math.round(frame.y * resolution),\n width,\n height,\n gl.RGBA,\n gl.UNSIGNED_BYTE,\n pixels\n );\n if (false) {\n unpremultiplyAlpha(pixels);\n }\n return { pixels: new Uint8ClampedArray(pixels.buffer), width, height };\n }\n destroy() {\n this.managedTextures.slice().forEach((source) => this.onSourceDestroy(source));\n this.managedTextures = null;\n this._renderer = null;\n }\n}\n/** @ignore */\nGlTextureSystem.extension = {\n type: [\n ExtensionType.WebGLSystem\n ],\n name: \"texture\"\n};\n\nexport { GlTextureSystem };\n//# sourceMappingURL=GlTextureSystem.mjs.map\n","import { DOMAdapter } from '../../../../../environment/adapter.mjs';\n\n\"use strict\";\nfunction mapFormatToGlInternalFormat(gl, extensions) {\n let srgb = {};\n let bgra8unorm = gl.RGBA;\n if (!(gl instanceof DOMAdapter.get().getWebGLRenderingContext())) {\n srgb = {\n \"rgba8unorm-srgb\": gl.SRGB8_ALPHA8,\n \"bgra8unorm-srgb\": gl.SRGB8_ALPHA8\n };\n bgra8unorm = gl.RGBA8;\n } else if (extensions.srgb) {\n srgb = {\n \"rgba8unorm-srgb\": extensions.srgb.SRGB8_ALPHA8_EXT,\n \"bgra8unorm-srgb\": extensions.srgb.SRGB8_ALPHA8_EXT\n };\n }\n return {\n // 8-bit formats\n r8unorm: gl.R8,\n r8snorm: gl.R8_SNORM,\n r8uint: gl.R8UI,\n r8sint: gl.R8I,\n // 16-bit formats\n r16uint: gl.R16UI,\n r16sint: gl.R16I,\n r16float: gl.R16F,\n rg8unorm: gl.RG8,\n rg8snorm: gl.RG8_SNORM,\n rg8uint: gl.RG8UI,\n rg8sint: gl.RG8I,\n // 32-bit formats\n r32uint: gl.R32UI,\n r32sint: gl.R32I,\n r32float: gl.R32F,\n rg16uint: gl.RG16UI,\n rg16sint: gl.RG16I,\n rg16float: gl.RG16F,\n rgba8unorm: gl.RGBA,\n ...srgb,\n // Packed 32-bit formats\n rgba8snorm: gl.RGBA8_SNORM,\n rgba8uint: gl.RGBA8UI,\n rgba8sint: gl.RGBA8I,\n bgra8unorm,\n rgb9e5ufloat: gl.RGB9_E5,\n rgb10a2unorm: gl.RGB10_A2,\n rg11b10ufloat: gl.R11F_G11F_B10F,\n // 64-bit formats\n rg32uint: gl.RG32UI,\n rg32sint: gl.RG32I,\n rg32float: gl.RG32F,\n rgba16uint: gl.RGBA16UI,\n rgba16sint: gl.RGBA16I,\n rgba16float: gl.RGBA16F,\n // 128-bit formats\n rgba32uint: gl.RGBA32UI,\n rgba32sint: gl.RGBA32I,\n rgba32float: gl.RGBA32F,\n // Depth/stencil formats\n stencil8: gl.STENCIL_INDEX8,\n depth16unorm: gl.DEPTH_COMPONENT16,\n depth24plus: gl.DEPTH_COMPONENT24,\n \"depth24plus-stencil8\": gl.DEPTH24_STENCIL8,\n depth32float: gl.DEPTH_COMPONENT32F,\n \"depth32float-stencil8\": gl.DEPTH32F_STENCIL8,\n // Compressed formats\n ...extensions.s3tc ? {\n \"bc1-rgba-unorm\": extensions.s3tc.COMPRESSED_RGBA_S3TC_DXT1_EXT,\n \"bc2-rgba-unorm\": extensions.s3tc.COMPRESSED_RGBA_S3TC_DXT3_EXT,\n \"bc3-rgba-unorm\": extensions.s3tc.COMPRESSED_RGBA_S3TC_DXT5_EXT\n } : {},\n ...extensions.s3tc_sRGB ? {\n \"bc1-rgba-unorm-srgb\": extensions.s3tc_sRGB.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT,\n \"bc2-rgba-unorm-srgb\": extensions.s3tc_sRGB.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT,\n \"bc3-rgba-unorm-srgb\": extensions.s3tc_sRGB.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT\n } : {},\n ...extensions.rgtc ? {\n \"bc4-r-unorm\": extensions.rgtc.COMPRESSED_RED_RGTC1_EXT,\n \"bc4-r-snorm\": extensions.rgtc.COMPRESSED_SIGNED_RED_RGTC1_EXT,\n \"bc5-rg-unorm\": extensions.rgtc.COMPRESSED_RED_GREEN_RGTC2_EXT,\n \"bc5-rg-snorm\": extensions.rgtc.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT\n } : {},\n ...extensions.bptc ? {\n \"bc6h-rgb-float\": extensions.bptc.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT,\n \"bc6h-rgb-ufloat\": extensions.bptc.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT,\n \"bc7-rgba-unorm\": extensions.bptc.COMPRESSED_RGBA_BPTC_UNORM_EXT,\n \"bc7-rgba-unorm-srgb\": extensions.bptc.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT\n } : {},\n ...extensions.etc ? {\n \"etc2-rgb8unorm\": extensions.etc.COMPRESSED_RGB8_ETC2,\n \"etc2-rgb8unorm-srgb\": extensions.etc.COMPRESSED_SRGB8_ETC2,\n \"etc2-rgb8a1unorm\": extensions.etc.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2,\n \"etc2-rgb8a1unorm-srgb\": extensions.etc.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2,\n \"etc2-rgba8unorm\": extensions.etc.COMPRESSED_RGBA8_ETC2_EAC,\n \"etc2-rgba8unorm-srgb\": extensions.etc.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC,\n \"eac-r11unorm\": extensions.etc.COMPRESSED_R11_EAC,\n // 'eac-r11snorm'\n \"eac-rg11unorm\": extensions.etc.COMPRESSED_SIGNED_RG11_EAC\n // 'eac-rg11snorm'\n } : {},\n ...extensions.astc ? {\n \"astc-4x4-unorm\": extensions.astc.COMPRESSED_RGBA_ASTC_4x4_KHR,\n \"astc-4x4-unorm-srgb\": extensions.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR,\n \"astc-5x4-unorm\": extensions.astc.COMPRESSED_RGBA_ASTC_5x4_KHR,\n \"astc-5x4-unorm-srgb\": extensions.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR,\n \"astc-5x5-unorm\": extensions.astc.COMPRESSED_RGBA_ASTC_5x5_KHR,\n \"astc-5x5-unorm-srgb\": extensions.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR,\n \"astc-6x5-unorm\": extensions.astc.COMPRESSED_RGBA_ASTC_6x5_KHR,\n \"astc-6x5-unorm-srgb\": extensions.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR,\n \"astc-6x6-unorm\": extensions.astc.COMPRESSED_RGBA_ASTC_6x6_KHR,\n \"astc-6x6-unorm-srgb\": extensions.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR,\n \"astc-8x5-unorm\": extensions.astc.COMPRESSED_RGBA_ASTC_8x5_KHR,\n \"astc-8x5-unorm-srgb\": extensions.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR,\n \"astc-8x6-unorm\": extensions.astc.COMPRESSED_RGBA_ASTC_8x6_KHR,\n \"astc-8x6-unorm-srgb\": extensions.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR,\n \"astc-8x8-unorm\": extensions.astc.COMPRESSED_RGBA_ASTC_8x8_KHR,\n \"astc-8x8-unorm-srgb\": extensions.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR,\n \"astc-10x5-unorm\": extensions.astc.COMPRESSED_RGBA_ASTC_10x5_KHR,\n \"astc-10x5-unorm-srgb\": extensions.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR,\n \"astc-10x6-unorm\": extensions.astc.COMPRESSED_RGBA_ASTC_10x6_KHR,\n \"astc-10x6-unorm-srgb\": extensions.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR,\n \"astc-10x8-unorm\": extensions.astc.COMPRESSED_RGBA_ASTC_10x8_KHR,\n \"astc-10x8-unorm-srgb\": extensions.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR,\n \"astc-10x10-unorm\": extensions.astc.COMPRESSED_RGBA_ASTC_10x10_KHR,\n \"astc-10x10-unorm-srgb\": extensions.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR,\n \"astc-12x10-unorm\": extensions.astc.COMPRESSED_RGBA_ASTC_12x10_KHR,\n \"astc-12x10-unorm-srgb\": extensions.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR,\n \"astc-12x12-unorm\": extensions.astc.COMPRESSED_RGBA_ASTC_12x12_KHR,\n \"astc-12x12-unorm-srgb\": extensions.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR\n } : {}\n };\n}\n\nexport { mapFormatToGlInternalFormat };\n//# sourceMappingURL=mapFormatToGlInternalFormat.mjs.map\n","\"use strict\";\nfunction mapFormatToGlType(gl) {\n return {\n // 8-bit formats\n r8unorm: gl.UNSIGNED_BYTE,\n r8snorm: gl.BYTE,\n r8uint: gl.UNSIGNED_BYTE,\n r8sint: gl.BYTE,\n // 16-bit formats\n r16uint: gl.UNSIGNED_SHORT,\n r16sint: gl.SHORT,\n r16float: gl.HALF_FLOAT,\n rg8unorm: gl.UNSIGNED_BYTE,\n rg8snorm: gl.BYTE,\n rg8uint: gl.UNSIGNED_BYTE,\n rg8sint: gl.BYTE,\n // 32-bit formats\n r32uint: gl.UNSIGNED_INT,\n r32sint: gl.INT,\n r32float: gl.FLOAT,\n rg16uint: gl.UNSIGNED_SHORT,\n rg16sint: gl.SHORT,\n rg16float: gl.HALF_FLOAT,\n rgba8unorm: gl.UNSIGNED_BYTE,\n \"rgba8unorm-srgb\": gl.UNSIGNED_BYTE,\n // Packed 32-bit formats\n rgba8snorm: gl.BYTE,\n rgba8uint: gl.UNSIGNED_BYTE,\n rgba8sint: gl.BYTE,\n bgra8unorm: gl.UNSIGNED_BYTE,\n \"bgra8unorm-srgb\": gl.UNSIGNED_BYTE,\n rgb9e5ufloat: gl.UNSIGNED_INT_5_9_9_9_REV,\n rgb10a2unorm: gl.UNSIGNED_INT_2_10_10_10_REV,\n rg11b10ufloat: gl.UNSIGNED_INT_10F_11F_11F_REV,\n // 64-bit formats\n rg32uint: gl.UNSIGNED_INT,\n rg32sint: gl.INT,\n rg32float: gl.FLOAT,\n rgba16uint: gl.UNSIGNED_SHORT,\n rgba16sint: gl.SHORT,\n rgba16float: gl.HALF_FLOAT,\n // 128-bit formats\n rgba32uint: gl.UNSIGNED_INT,\n rgba32sint: gl.INT,\n rgba32float: gl.FLOAT,\n // Depth/stencil formats\n stencil8: gl.UNSIGNED_BYTE,\n depth16unorm: gl.UNSIGNED_SHORT,\n depth24plus: gl.UNSIGNED_INT,\n \"depth24plus-stencil8\": gl.UNSIGNED_INT_24_8,\n depth32float: gl.FLOAT,\n \"depth32float-stencil8\": gl.FLOAT_32_UNSIGNED_INT_24_8_REV\n };\n}\n\nexport { mapFormatToGlType };\n//# sourceMappingURL=mapFormatToGlType.mjs.map\n","\"use strict\";\nfunction mapFormatToGlFormat(gl) {\n return {\n // 8-bit formats\n r8unorm: gl.RED,\n r8snorm: gl.RED,\n r8uint: gl.RED,\n r8sint: gl.RED,\n // 16-bit formats\n r16uint: gl.RED,\n r16sint: gl.RED,\n r16float: gl.RED,\n rg8unorm: gl.RG,\n rg8snorm: gl.RG,\n rg8uint: gl.RG,\n rg8sint: gl.RG,\n // 32-bit formats\n r32uint: gl.RED,\n r32sint: gl.RED,\n r32float: gl.RED,\n rg16uint: gl.RG,\n rg16sint: gl.RG,\n rg16float: gl.RG,\n rgba8unorm: gl.RGBA,\n \"rgba8unorm-srgb\": gl.RGBA,\n // Packed 32-bit formats\n rgba8snorm: gl.RGBA,\n rgba8uint: gl.RGBA,\n rgba8sint: gl.RGBA,\n bgra8unorm: gl.RGBA,\n \"bgra8unorm-srgb\": gl.RGBA,\n rgb9e5ufloat: gl.RGB,\n rgb10a2unorm: gl.RGBA,\n rg11b10ufloat: gl.RGB,\n // 64-bit formats\n rg32uint: gl.RG,\n rg32sint: gl.RG,\n rg32float: gl.RG,\n rgba16uint: gl.RGBA,\n rgba16sint: gl.RGBA,\n rgba16float: gl.RGBA,\n // 128-bit formats\n rgba32uint: gl.RGBA,\n rgba32sint: gl.RGBA,\n rgba32float: gl.RGBA,\n // Depth/stencil formats\n stencil8: gl.STENCIL_INDEX8,\n depth16unorm: gl.DEPTH_COMPONENT,\n depth24plus: gl.DEPTH_COMPONENT,\n \"depth24plus-stencil8\": gl.DEPTH_STENCIL,\n depth32float: gl.DEPTH_COMPONENT,\n \"depth32float-stencil8\": gl.DEPTH_STENCIL\n };\n}\n\nexport { mapFormatToGlFormat };\n//# sourceMappingURL=mapFormatToGlFormat.mjs.map\n","import { extensions, ExtensionType } from '../../../extensions/Extensions.mjs';\nimport { GlGraphicsAdaptor } from '../../../scene/graphics/gl/GlGraphicsAdaptor.mjs';\nimport { GlMeshAdaptor } from '../../../scene/mesh/gl/GlMeshAdaptor.mjs';\nimport { GlBatchAdaptor } from '../../batcher/gl/GlBatchAdaptor.mjs';\nimport { AbstractRenderer } from '../shared/system/AbstractRenderer.mjs';\nimport { SharedSystems, SharedRenderPipes } from '../shared/system/SharedSystems.mjs';\nimport { RendererType } from '../types.mjs';\nimport { GlBufferSystem } from './buffer/GlBufferSystem.mjs';\nimport { GlContextSystem } from './context/GlContextSystem.mjs';\nimport { GlGeometrySystem } from './geometry/GlGeometrySystem.mjs';\nimport { GlBackBufferSystem } from './GlBackBufferSystem.mjs';\nimport { GlColorMaskSystem } from './GlColorMaskSystem.mjs';\nimport { GlEncoderSystem } from './GlEncoderSystem.mjs';\nimport { GlStencilSystem } from './GlStencilSystem.mjs';\nimport { GlUboSystem } from './GlUboSystem.mjs';\nimport { GlRenderTargetSystem } from './renderTarget/GlRenderTargetSystem.mjs';\nimport { GlShaderSystem } from './shader/GlShaderSystem.mjs';\nimport { GlUniformGroupSystem } from './shader/GlUniformGroupSystem.mjs';\nimport { GlStateSystem } from './state/GlStateSystem.mjs';\nimport { GlTextureSystem } from './texture/GlTextureSystem.mjs';\n\n\"use strict\";\nconst DefaultWebGLSystems = [\n ...SharedSystems,\n GlUboSystem,\n GlBackBufferSystem,\n GlContextSystem,\n GlBufferSystem,\n GlTextureSystem,\n GlRenderTargetSystem,\n GlGeometrySystem,\n GlUniformGroupSystem,\n GlShaderSystem,\n GlEncoderSystem,\n GlStateSystem,\n GlStencilSystem,\n GlColorMaskSystem\n];\nconst DefaultWebGLPipes = [...SharedRenderPipes];\nconst DefaultWebGLAdapters = [GlBatchAdaptor, GlMeshAdaptor, GlGraphicsAdaptor];\nconst systems = [];\nconst renderPipes = [];\nconst renderPipeAdaptors = [];\nextensions.handleByNamedList(ExtensionType.WebGLSystem, systems);\nextensions.handleByNamedList(ExtensionType.WebGLPipes, renderPipes);\nextensions.handleByNamedList(ExtensionType.WebGLPipesAdaptor, renderPipeAdaptors);\nextensions.add(...DefaultWebGLSystems, ...DefaultWebGLPipes, ...DefaultWebGLAdapters);\nclass WebGLRenderer extends AbstractRenderer {\n constructor() {\n const systemConfig = {\n name: \"webgl\",\n type: RendererType.WEBGL,\n systems,\n renderPipes,\n renderPipeAdaptors\n };\n super(systemConfig);\n }\n}\n\nexport { WebGLRenderer };\n//# sourceMappingURL=WebGLRenderer.mjs.map\n","import { MAX_TEXTURES } from '../../../batcher/shared/const.mjs';\nimport { UniformGroup } from '../../shared/shader/UniformGroup.mjs';\n\n\"use strict\";\nconst sampleValues = new Int32Array(MAX_TEXTURES);\nfor (let i = 0; i < MAX_TEXTURES; i++) {\n sampleValues[i] = i;\n}\nconst batchSamplersUniformGroup = new UniformGroup({\n uTextures: { value: sampleValues, type: `i32`, size: MAX_TEXTURES }\n}, { isStatic: true });\n\nexport { batchSamplersUniformGroup };\n//# sourceMappingURL=batchSamplersUniformGroup.mjs.map\n"],"names":["Float32Array","s","r","t","Object","Error","e","setTimeout","a","Promise","Math","Uint8Array","Uint8ClampedArray","Int32Array"],"mappings":"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"}
@@ -1 +0,0 @@
1
- "use strict";(self.webpackChunkandroid_playground=self.webpackChunkandroid_playground||[]).push([["983"],{95751:function(n,u,a){a.r(u),a(52818),a(65003),a(62737),a(42454),a(30773),a(66241),a(53828),a(19921),a(28803),a(34354),a(24508)}}]);