1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[66370],{5776:(e,t,r)=>{r.d(t,{g:()=>i});var a=r(95315);let i=[];i[a.K.NONE]=void 0,i[a.K.DISABLED]={stencilWriteMask:0,stencilReadMask:0},i[a.K.RENDERING_MASK_ADD]={stencilFront:{compare:"equal",passOp:"increment-clamp"},stencilBack:{compare:"equal",passOp:"increment-clamp"}},i[a.K.RENDERING_MASK_REMOVE]={stencilFront:{compare:"equal",passOp:"decrement-clamp"},stencilBack:{compare:"equal",passOp:"decrement-clamp"}},i[a.K.MASK_ACTIVE]={stencilWriteMask:0,stencilFront:{compare:"equal",passOp:"keep"},stencilBack:{compare:"equal",passOp:"keep"}},i[a.K.INVERSE_MASK_ACTIVE]={stencilWriteMask:0,stencilFront:{compare:"not-equal",passOp:"keep"},stencilBack:{compare:"not-equal",passOp:"keep"}}},8147:(e,t,r)=>{r.d(t,{d:()=>n});var a=r(48904),i=r(10511);class n extends a.A{constructor({buffer:e,offset:t,size:r}){super(),this.uid=(0,i.L)("buffer"),this._resourceType="bufferResource",this._touched=0,this._resourceId=(0,i.L)("resource"),this._bufferResource=!0,this.destroyed=!1,this.buffer=e,this.offset=0|t,this.size=r,this.buffer.on("change",this.onBufferChange,this)}onBufferChange(){this._resourceId=(0,i.L)("resource"),this.emit("change",this)}destroy(e=!1){this.destroyed=!0,e&&this.buffer.destroy(),this.emit("change",this),this.buffer=null,this.removeAllListeners()}}},14882:(e,t,r)=>{r.d(t,{q:()=>n});var a=r(2698),i=r(86980);function n(e,t){for(let r in e.attributes){let i=e.attributes[r],n=t[r];n?(i.format??(i.format=n.format),i.offset??(i.offset=n.offset),i.instance??(i.instance=n.instance)):(0,a.R)(`Attribute ${r} is not present in the shader, but is present in the geometry. Unable to infer attribute details.`)}!function(e){let{buffers:t,attributes:r}=e,a={},n={};for(let e in t){let r=t[e];a[r.uid]=0,n[r.uid]=0}for(let e in r){let t=r[e];a[t.buffer.uid]+=(0,i.m)(t.format).stride}for(let e in r){let t=r[e];t.stride??(t.stride=a[t.buffer.uid]),t.start??(t.start=n[t.buffer.uid]),n[t.buffer.uid]+=(0,i.m)(t.format).stride}}(e)}},60091:(e,t,r)=>{r.d(t,{Ls:()=>a,_Q:()=>i,mA:()=>n});let a={name:"local-uniform-bit",vertex:{header:` 2 3 struct LocalUniforms { 4 uTransformMatrix:mat3x3<f32>, 5 uColor:vec4<f32>, 6 uRound:f32, 7 } 8 9 @group(1) @binding(0) var<uniform> localUniforms : LocalUniforms; 10 `,main:` 11 vColor *= localUniforms.uColor; 12 modelMatrix *= localUniforms.uTransformMatrix; 13 `,end:` 14 if(localUniforms.uRound == 1) 15 { 16 vPosition = vec4(roundPixels(vPosition.xy, globalUniforms.uResolution), vPosition.zw); 17 } 18 `}},i={...a,vertex:{...a.vertex,header:a.vertex.header.replace("group(1)","group(2)")}},n={name:"local-uniform-bit",vertex:{header:` 19 20 uniform mat3 uTransformMatrix; 21 uniform vec4 uColor; 22 uniform float uRound; 23 `,main:` 24 vColor *= uColor; 25 modelMatrix = uTransformMatrix; 26 `,end:` 27 if(uRound == 1.) 28 { 29 gl_Position.xy = roundPixels(gl_Position.xy, uResolution); 30 } 31 `}}},61801:(e,t,r)=>{r.d(t,{R:()=>a,m:()=>i});let a={name:"texture-bit",vertex:{header:` 32 33 struct TextureUniforms { 34 uTextureMatrix:mat3x3<f32>, 35 } 36 37 @group(2) @binding(2) var<uniform> textureUniforms : TextureUniforms; 38 `,main:` 39 uv = (textureUniforms.uTextureMatrix * vec3(uv, 1.0)).xy; 40 `},fragment:{header:` 41 @group(2) @binding(0) var uTexture: texture_2d<f32>; 42 @group(2) @binding(1) var uSampler: sampler; 43 44 45 `,main:` 46 outColor = textureSample(uTexture, uSampler, vUV); 47 `}},i={name:"texture-bit",vertex:{header:` 48 uniform mat3 uTextureMatrix; 49 `,main:` 50 uv = (uTextureMatrix * vec3(uv, 1.0)).xy; 51 `},fragment:{header:` 52 uniform sampler2D uTexture; 53 54 55 `,main:` 56 outColor = texture(uTexture, vUV); 57 `}}},63752:(e,t,r)=>{r.d(t,{$:()=>a});let a=[{type:"mat3x3<f32>",test:e=>void 0!==e.value.a,ubo:` 58 var matrix = uv[name].toArray(true); 59 data[offset] = matrix[0]; 60 data[offset + 1] = matrix[1]; 61 data[offset + 2] = matrix[2]; 62 data[offset + 4] = matrix[3]; 63 data[offset + 5] = matrix[4]; 64 data[offset + 6] = matrix[5]; 65 data[offset + 8] = matrix[6]; 66 data[offset + 9] = matrix[7]; 67 data[offset + 10] = matrix[8]; 68 `,uniform:` 69 gl.uniformMatrix3fv(ud[name].location, false, uv[name].toArray(true)); 70 `},{type:"vec4<f32>",test:e=>"vec4<f32>"===e.type&&1===e.size&&void 0!==e.value.width,ubo:` 71 v = uv[name]; 72 data[offset] = v.x; 73 data[offset + 1] = v.y; 74 data[offset + 2] = v.width; 75 data[offset + 3] = v.height; 76 `,uniform:` 77 cv = ud[name].value; 78 v = uv[name]; 79 if (cv[0] !== v.x || cv[1] !== v.y || cv[2] !== v.width || cv[3] !== v.height) { 80 cv[0] = v.x; 81 cv[1] = v.y; 82 cv[2] = v.width; 83 cv[3] = v.height; 84 gl.uniform4f(ud[name].location, v.x, v.y, v.width, v.height); 85 } 86 `}
86,{type:"vec2<f32>",test:e=>"vec2<f32>"===e.type&&1===e.size&&void 0!==e.value.x,ubo:` 87 v = uv[name]; 88 data[offset] = v.x; 89 data[offset + 1] = v.y; 90 `,uniform:` 91 cv = ud[name].value; 92 v = uv[name]; 93 if (cv[0] !== v.x || cv[1] !== v.y) { 94 cv[0] = v.x; 95 cv[1] = v.y; 96 gl.uniform2f(ud[name].location, v.x, v.y); 97 } 98 `},{type:"vec4<f32>",test:e=>"vec4<f32>"===e.type&&1===e.size&&void 0!==e.value.red,ubo:` 99 v = uv[name]; 100 data[offset] = v.red; 101 data[offset + 1] = v.green; 102 data[offset + 2] = v.blue; 103 data[offset + 3] = v.alpha; 104 `,uniform:` 105 cv = ud[name].value; 106 v = uv[name]; 107 if (cv[0] !== v.red || cv[1] !== v.green || cv[2] !== v.blue || cv[3] !== v.alpha) { 108 cv[0] = v.red; 109 cv[1] = v.green; 110 cv[2] = v.blue; 111 cv[3] = v.alpha; 112 gl.uniform4f(ud[name].location, v.red, v.green, v.blue, v.alpha); 113 } 114 `},{type:"vec3<f32>",test:e=>"vec3<f32>"===e.type&&1===e.size&&void 0!==e.value.red,ubo:` 115 v = uv[name]; 116 data[offset] = v.red; 117 data[offset + 1] = v.green; 118 data[offset + 2] = v.blue; 119 `,uniform:` 120 cv = ud[name].value; 121 v = uv[name]; 122 if (cv[0] !== v.red || cv[1] !== v.green || cv[2] !== v.blue) { 123 cv[0] = v.red; 124 cv[1] = v.green; 125 cv[2] = v.blue; 126 gl.uniform3f(ud[name].location, v.red, v.green, v.blue); 127 } 128 `}]},66370:(e,t,r)=>{r.d(t,{WebGLRenderer:()=>eq});var a=r(76955),i=r(51585),n=r(76713),s=r(40429),o=r(65708),l=r(60091),u=r(7143),c=r(77406),_=r(84169),f=r(50048);class h{contextChange(e){let t=new f.k({uColor:{value:new Float32Array([1,1,1,1]),type:"vec4<f32>"},uTransformMatrix:{value:new i.u,type:"mat3x3<f32>"},uRound:{value:0,type:"f32"}}),r=e.limits.maxBatchableTextures,a=(0,n.I)({name:"graphics",bits:[s.a,(0,o.P)(r),l.mA,u.m]});this.shader=new _.M({glProgram:a,resources:{localUniforms:t,batchSamplers:(0,c.n)(r)}})}execute(e,t){let r=t.context,a=r.customShader||this.shader,i=e.renderer,{batcher:n,instructions:s}=i.graphicsContext.getContextRenderData(r);a.groups[0]=i.globalUniforms.bindGroup,i.state.set(e.state),i.shader.bind(a),i.geometry.bind(n.geometry,a.glProgram);let o=s.instructions;for(let e=0;e<s.instructionSize;e++){let t=o[e];if(t.size){for(let e=0;e<t.textures.count;e++)i.texture.bind(t.textures.textures[e],e);i.geometry.draw(t.topology,t.size,t.start)}}}destroy(){this.shader.destroy(!0),this.shader=null}}h.extension={type:[a.Ag.WebGLPipesAdaptor],name:"graphics"};var d=r(61801),m=r(99244),g=r(2698);class E{init(){let e=(0,n.I)({name:"mesh",bits:[l.mA,d.m,u.m]});this._shader=new _.M({glProgram:e,resources:{uTexture:m.g.EMPTY.source,textureUniforms:{uTextureMatrix:{type:"mat3x3<f32>",value:new i.u}}}})}execute(e,t){let r=e.renderer,a=t._shader;if(a){if(!a.glProgram)return void(0,g.R)("Mesh shader has no glProgram",t.shader)}else{a=this._shader;let e=t.texture,r=e.source;a.resources.uTexture=r,a.resources.uSampler=r.style,a.resources.textureUniforms.uniforms.uTextureMatrix=e.textureMatrix.mapCoord}a.groups[100]=r.globalUniforms.bindGroup,a.groups[101]=e.localUniformsBindGroup,r.encoder.draw({geometry:t._geometry,shader:a,state:t.state})}destroy(){this._shader.destroy(!0),this._shader=null}}E.extension={type:[a.Ag.WebGLPipesAdaptor],name:"mesh"};var v=r(61493);class p{constructor(){this._tempState=v.U.for2d(),this._didUploadHash={}}init(e){e.renderer.runners.contextChange.add(this)}contextChange(){this._didUploadHash={}}start(e,t,r){let a=e.renderer,i=this._didUploadHash[r.uid];a.shader.bind(r,i),i||(this._didUploadHash[r.uid]=!0),a.shader.updateUniformGroup(a.globalUniforms.uniformGroup),a.geometry.bind(t,r.glProgram)}execute(e,t){let r=e.renderer;this._tempState.blendMode=t.blendMode,r.state.set(this._tempState);let a=t.textures.textures;for(let e=0;e<t.textures.count;e++)r.texture.bind(a[e],e);r.geometry.draw(t.topology,t.size,t.start)}}p.extension={type:[a.Ag.WebGLPipesAdaptor],name:"batch"};var T=r(25923),x=r(68505),b=r(3503),R=r(36684),S=r(57200),A=(e=>(e[e.ELEMENT_ARRAY_BUFFER=34963]="ELEMENT_ARRAY_BUFFER",e[e.ARRAY_BUFFER=34962]="ARRAY_BUFFER",e[e.UNIFORM_BUFFER=35345]="UNIFORM_BUFFER",e))(A||{});class B{constructor(e,t){this._lastBindBaseLocation=-1,this._lastBindCallId=-1,this.buffer=e||null,this.updateID=-1,this.byteLength=-1,this.type=t}destroy(){this.buffer=null,this.updateID=-1,this.byteLength=-1,this.type=-1,this._lastBindBaseLocation=-1,this._lastBindCallId=-1}}class y{constructor(e){this._boundBufferBases=Object.create(null),this._minBaseLocation=0,this._nextBindBaseIndex=this._minBaseLocation,this._bindCallId=0,this._renderer=e,this._managedBuffers=new R.s({renderer:e,type:"resource",onUnload:this.onBufferUnload.bind(this),name:"glBuffer"})}destroy(){this._managedBuffers.destroy(),this._renderer=null,this._gl=null,this._boundBufferBases={}}contextChange(){this._gl=this._renderer.gl,this.destroyAll(!0),this._maxBindings=this._renderer.limits.maxUniformBindings}getGlBuffer(e){return e._gcLastUsed=this._renderer.gc.now,e._gpuData[this._renderer.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;this._boundBufferBases[t]!==e&&(this._boundBufferBases[t]=e,e._lastBindBaseLocation=t,r.bindBufferBase(r.UNIFORM_BUFFER,t,e.buffer))}nextBindBase(e){this._bindCallId++,this._minBaseLocation=0,e&&(this._boundBufferBases[0]=null,this._minBaseLocation=1,this._nextBindBaseIndex<1&&(this._nextBindBaseIndex=1))}freeLocationForBufferBase(e){let t=this.getLastBindBaseLocation(e);if(t>=this._minBaseLocation)return e._lastBindCallId=this._bindCallId,t;let r=0,a=this._nextBindBaseIndex;for(;r<2;){a>=this._maxBindings&&(a=this._minBaseLocation,r++);let e=this._boundBufferBases[a];if(e&&e._lastBindCallId===this._bindCallId){a++;continue}break}return(t=a,this._nextBindBaseIndex=a+1,r>=2)?-1:(e._lastBindCallId=this._bindCallId,this._boundBufferBases[t]=null,t)}getLastBindBaseLocation(e){let t=e._lastBindBaseLocation;return this._boundBufferBases[t]===e?t:-1}bindBufferRange(e,t,r,a){let{_gl:i}=this;r||(r=0),t||(t=0),this._boundBufferBases[t]=null,i.bindBufferRange(i.UNIFORM_BUFFER,t||0,e.buffer,256*r,a||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 a=e.data,i=e.descriptor.usage&S.S.STATIC?t.STATIC_DRAW:t.DYNAMIC_DRAW;return a?r.byteLength>=a.byteLength?t.bufferSubData(r.type,0,a,0,e._updateSize/a.BYTES_PER_ELEMENT):(r.byteLength=a.byteLength,t.bufferData(r.type,a,i)):(r.byteLength=e.descriptor.size,t.bufferData(r.type,r.byteLength,i)),r}destroyAll(e=!1){this._managedBuffers.removeAll(e)}onBufferUnload(e,t=!1){let r=e._gpuData[this._renderer.uid];r&&(t||this._gl.deleteBuffer(r.buffer))}createGLBuffer(e){let{_gl:t}=this,r=A.ARRAY_BUFFER;
128e.descriptor.usage&S.S.INDEX?r=A.ELEMENT_ARRAY_BUFFER:e.descriptor.usage&S.S.UNIFORM&&(r=A.UNIFORM_BUFFER);let a=new B(t.createBuffer(),r);return e._gpuData[this._renderer.uid]=a,this._managedBuffers.add(e),a}resetState(){this._boundBufferBases=Object.create(null)}}y.extension={type:[a.Ag.WebGLSystem],name:"buffer"};var C=r(44715);let N=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){t={...e.defaultOptions,...t};let r=this.multiView=t.multiView;if(t.context&&r&&((0,g.R)("Renderer created with both a context and multiview enabled. Disabling multiView as both cannot work together."),r=!1),r?this.canvas=C.e.get().createCanvas(this._renderer.canvas.width,this._renderer.canvas.height):this.canvas=this._renderer.view.canvas,t.context)this.initFromContext(t.context);else{let e=this._renderer.background.alpha<1,r=t.premultipliedAlpha??!0,a=t.antialias&&!this._renderer.backBuffer.useBackBuffer;this.createContext(t.preferWebGLVersion,{alpha:e,premultipliedAlpha:r,antialias:a,stencil:!0,preserveDrawingBuffer:t.preserveDrawingBuffer,powerPreference:t.powerPreference??"default"})}}ensureCanvasSize(e){if(!this.multiView){e!==this.canvas&&(0,g.R)("multiView is disabled, but targetCanvas is not the main canvas");return}let{canvas:t}=this;(t.width<e.width||t.height<e.height)&&(t.width=Math.max(e.width,e.width),t.height=Math.max(e.height,e.height))}initFromContext(e){this.gl=e,this.webGLVersion=e instanceof C.e.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,a=this.canvas;if(2===e&&(r=a.getContext("webgl2",t)),!r&&!(r=a.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.getExtensions(),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,g.R)("Provided WebGL context does not have a stencil buffer, masks may not render correctly");let r=this.supports,a=2===this.webGLVersion,i=this.extensions;r.uint32Indices=a||!!i.uint32ElementIndex,r.uniformBufferObject=a,r.vertexArrayObject=a||!!i.vertexArrayObject,r.srgbTextures=a||!!i.srgb,r.nonPowOf2wrapping=a,r.nonPowOf2mipmaps=a,r.msaa=a,r.uint32Indices||(0,g.R)("Provided WebGL context does not support 32 index buffer, large scenes may not render correctly")}};N.extension={type:[a.Ag.WebGLSystem],name:"context"},N.defaultOptions={context:null,premultipliedAlpha:!0,preserveDrawingBuffer:!1,powerPreference:void 0,preferWebGLVersion:2,multiView:!1};var G=r(86980),I=r(14882),U=(e=>(e[e.RGBA=6408]="RGBA",e[e.RGB=6407]="RGB",e[e.RG=33319]="RG",e[e.RED=6403]="RED",e[e.RGBA_INTEGER=36249]="RGBA_INTEGER",e[e.RGB_INTEGER=36248]="RGB_INTEGER",e[e.RG_INTEGER=33320]="RG_INTEGER",e[e.RED_INTEGER=36244]="RED_INTEGER",e[e.ALPHA=6406]="ALPHA",e[e.LUMINANCE=6409]="LUMINANCE",e[e.LUMINANCE_ALPHA=6410]="LUMINANCE_ALPHA",e[e.DEPTH_COMPONENT=6402]="DEPTH_COMPONENT",e[e.DEPTH_STENCIL=34041]="DEPTH_STENCIL",e))(U||{}),D=(e=>(e[e.TEXTURE_2D=3553]="TEXTURE_2D",e[e.TEXTURE_CUBE_MAP=34067]="TEXTURE_CUBE_MAP",e[e.TEXTURE_2D_ARRAY=35866]="TEXTURE_2D_ARRAY",e[e.TEXTURE_CUBE_MAP_POSITIVE_X=34069]="TEXTURE_CUBE_MAP_POSITIVE_X",e[e.TEXTURE_CUBE_MAP_NEGATIVE_X=34070]="TEXTURE_CUBE_MAP_NEGATIVE_X",e[e.TEXTURE_CUBE_MAP_POSITIVE_Y=34071]="TEXTURE_CUBE_MAP_POSITIVE_Y",e[e.TEXTURE_CUBE_MAP_NEGATIVE_Y=34072]="TEXTURE_CUBE_MAP_NEGATIVE_Y",e[e.TEXTURE_CUBE_MAP_POSITIVE_Z=34073]="TEXTURE_CUBE_MAP_POSITIVE_Z",e[e.TEXTURE_CUBE_MAP_NEGATIVE_Z=34074]="TEXTURE_CUBE_MAP_NEGATIVE_Z",e))(D||{}),L=(e=>(e[e.CLAMP=33071]="CLAMP",e[e.REPEAT=10497]="REPEAT",e[e.MIRRORED_REPEAT=33648]="MIRRORED_REPEAT",e))(L||{}),F=(e=>(e[e.UNSIGNED_BYTE=5121]="UNSIGNED_BYTE",e[e.UNSIGNED_SHORT=5123]="UNSIGNED_SHORT",e[e.UNSIGNED_SHORT_5_6_5=33635]="UNSIGNED_SHORT_5_6_5",e[e.UNSIGNED_SHORT_4_4_4_4=32819]="UNSIGNED_SHORT_4_4_4_4",e[e.UNSIGNED_SHORT_5_5_5_1=32820]="UNSIGNED_SHORT_5_5_5_1",e[e.UNSIGNED_INT=5125]="UNSIGNED_INT",e[e.UNSIGNED_INT_10F_11F_11F_REV=35899]="UNSIGNED_INT_10F_11F_11F_REV",e[e.UNSIGNED_INT_2_10_10_10_REV=33640]="UNSIGNED_INT_2_10_10_10_REV",e[e.UNSIGNED_INT_24_8=34042]="UNSIGNED_INT_24_8",e[e.UNSIGNED_INT_5_9_9_9_REV=35902]="UNSIGNED_INT_5_9_9_9_REV",e[e.BYTE=5120]="BYTE",e[e.SHORT=5122]="SHORT",e[e.INT=5124]="INT",e[e.FLOAT=5126]="FLOAT",e[e.FLOAT_32_UNSIGNED_INT_24_8_REV=36269]="FLOAT_32_UNSIGNED_INT_24_8_REV",e[e.HALF_FLOAT=36193]="HALF_FLOAT",e))(F||{});let M={uint8x2:F.UNSIGNED_BYTE,uint8x4:F.UNSIGNED_BYTE,sint8x2:F.BYTE,sint8x4:F.BYTE,unorm8x2:F.UNSIGNED_BYTE,unorm8x4:F.UNSIGNED_BYTE,snorm8x2:F.BYTE,snorm8x4:F.BYTE,uint16x2:F.UNSIGNED_SHORT,uint16x4:F.UNSIGNED_SHORT,sint16x2:F.SHORT,sint16x4:F.SHORT,unorm16x2:F.UNSIGNED_SHORT,unorm16x4:F.UNSIGNED_SHORT,snorm16x2:F.SHORT,snorm16x4:F.SHORT,float16x2:F.HALF_FLOAT,float16x4:F.HALF_FLOAT,float32:F.FLOAT,float32x2:F.FLOAT,float32x3:F.FLOAT,float32x4:F.FLOAT,uint32:F.UNSIGNED_INT,uint32x2:F.UNSIGNED_INT,uint32x3:F.UNSIGNED_INT,uint32x4:F.UNSIGNED_INT,sint32:F.INT,sint32x2:F.INT,sint32x3:F.INT,sint32x4:F.INT},O={"point-list":0,"line-list":1,"line-strip":3,"triangle-list":4,"triangle-strip":5};class P{constructor(){this.vaoCache=Object.create(null)}destroy(){this.vaoCache=Object.create(null)}}class w{constructor(e){this._renderer=e,this._activeGeometry=null,this._activeVao=null,this.hasVao=!0,this.hasInstance=!0,this._managedGeometries=new R.s({renderer:e,type:"resource",onUnload:this.onGeometryUnload.bind(this),name:"glGeometry"})}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");this.destroyAll(!0);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,a,i)=>{r.drawArraysInstancedANGLE(e,t,a,i)},e.drawElementsInstanced=(e,t,a,i,n)=>{r.drawElementsInstancedANGLE(e,t,a,i,n)},e.vertexAttribDivisor=(e,t)=>
128r.vertexAttribDivisorANGLE(e,t)),this._activeGeometry=null,this._activeVao=null}bind(e,t){let r=this.gl;this._activeGeometry=e;let a=this.getVao(e,t);this._activeVao!==a&&(this._activeVao=a,r.bindVertexArray(a)),this.updateBuffers()}resetState(){this.unbind()}updateBuffers(){let e=this._activeGeometry,t=this._renderer.buffer;for(let r=0;r<e.buffers.length;r++){let a=e.buffers[r];t.updateBuffer(a)}e._gcLastUsed=this._renderer.gc.now}checkCompatibility(e,t){let r=e.attributes,a=t._attributeData;for(let e in a)if(!r[e])throw Error(`shader and geometry incompatible, geometry missing the "${e}" attribute`)}getSignature(e,t){let r=e.attributes,a=t._attributeData,i=["g",e.uid];for(let e in r)a[e]&&i.push(e,a[e].location);return i.join("-")}getVao(e,t){return e._gpuData[this._renderer.uid]?.vaoCache[t._key]||this.initGeometryVao(e,t)}initGeometryVao(e,t,r=!0){let a=this._renderer.gl,i=this._renderer.buffer;this._renderer.shader._getProgramData(t),this.checkCompatibility(e,t);let n=this.getSignature(e,t),s=e._gpuData[this._renderer.uid];s||(s=new P,e._gpuData[this._renderer.uid]=s,this._managedGeometries.add(e));let o=s.vaoCache,l=o[n];if(l)return o[t._key]=l,l;(0,I.q)(e,t._attributeData);let u=e.buffers;l=a.createVertexArray(),a.bindVertexArray(l);for(let e=0;e<u.length;e++){let t=u[e];i.bind(t)}return this.activateVao(e,t),o[t._key]=l,o[n]=l,a.bindVertexArray(null),l}onGeometryUnload(e,t=!1){let r=e._gpuData[this._renderer.uid];if(!r)return;let a=r.vaoCache;if(!t)for(let e in a)this._activeVao!==a[e]&&this.resetState(),this.gl.deleteVertexArray(a[e])}destroyAll(e=!1){this._managedGeometries.removeAll(e)}activateVao(e,t){let r=this._renderer.gl,a=this._renderer.buffer,i=e.attributes;e.indexBuffer&&a.bind(e.indexBuffer);let n=null;for(let e in i){let s=i[e],o=s.buffer,l=a.getGlBuffer(o),u=t._attributeData[e];if(u){n!==l&&(a.bind(o),n=l);let e=u.location;r.enableVertexAttribArray(e);let t=(0,G.m)(s.format),i=M[s.format]??M.float32;if(u.format?.substring(1,4)==="int"?r.vertexAttribIPointer(e,t.size,i,s.stride,s.offset):r.vertexAttribPointer(e,t.size,i,t.normalised,s.stride,s.offset),s.instance)if(this.hasInstance){let t=s.divisor??1;r.vertexAttribDivisor(e,t)}else throw Error("geometry error, GPU Instancing is not supported on this device")}}}draw(e,t,r,a){let{gl:i}=this._renderer,n=this._activeGeometry,s=O[e||n.topology];if(a??(a=n.instanceCount),n.indexBuffer){let e=n.indexBuffer.data.BYTES_PER_ELEMENT,o=2===e?i.UNSIGNED_SHORT:i.UNSIGNED_INT;1!==a?i.drawElementsInstanced(s,t||n.indexBuffer.data.length,o,(r||0)*e,a):i.drawElements(s,t||n.indexBuffer.data.length,o,(r||0)*e)}else 1!==a?i.drawArraysInstanced(s,r||0,t||n.getSize(),a):i.drawArrays(s,r||0,t||n.getSize());return this}unbind(){this.gl.bindVertexArray(null),this._activeVao=null,this._activeGeometry=null}destroy(){this._managedGeometries.destroy(),this._renderer=null,this.gl=null,this._activeVao=null,this._activeGeometry=null}}w.extension={type:[a.Ag.WebGLSystem],name:"geometry"};var H=r(11890),k=r(56333),V=r(15054);let X=new H.V({attributes:{aPosition:[-1,-1,3,-1,-1,3]}}),W=class e{constructor(e){this.useBackBuffer=!1,this._useBackBufferThisRender=!1,this._renderer=e}init(t={}){let{useBackBuffer:r,antialias:a}={...e.defaultOptions,...t};this.useBackBuffer=r,this._antialias=a,this._renderer.context.supports.msaa||((0,g.R)("antialiasing, is not supported on when using the back buffer"),this._antialias=!1),this._state=v.U.for2d();let i=new V.M({vertex:` 129 attribute vec2 aPosition; 130 out vec2 vUv; 131 132 void main() { 133 gl_Position = vec4(aPosition, 0.0, 1.0); 134 135 vUv = (aPosition + 1.0) / 2.0; 136 137 // flip dem UVs 138 vUv.y = 1.0 - vUv.y; 139 }`,fragment:` 140 in vec2 vUv; 141 out vec4 finalColor; 142 143 uniform sampler2D uTexture; 144 145 void main() { 146 finalColor = texture(uTexture, vUv); 147 }`,name:"big-triangle"});this._bigTriangleShader=new _.M({glProgram:i,resources:{uTexture:m.g.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:X,shader:this._bigTriangleShader,state:this._state}))}_getBackBufferTexture(e){return this._backBufferTexture=this._backBufferTexture||new m.g({source:new k.v({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)}};W.extension={type:[a.Ag.WebGLSystem],name:"backBuffer",priority:1},W.defaultOptions={useBackBuffer:!1};class Y{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)))}}Y.extension={type:[a.Ag.WebGLSystem],name:"colorMask"};class ${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:a,state:i,skipSync:n,topology:s,size:o,start:l,instanceCount:u}=e;t.shader.bind(a,n),t.geometry.bind(r,t.shader._activeProgram),i&&t.state.set(i),t.geometry.draw(s,o,l,u??r.instanceCount)}destroy(){this._renderer=null}}$.extension={type:[a.Ag.WebGLSystem],name:"encoder"};var K=r(53884);class z{constructor(e){this._renderer=e}contextChange(){let e=this._renderer.gl;this.maxTextures=e.getParameter(e.MAX_TEXTURE_IMAGE_UNITS),this.maxBatchableTextures=(0,K.u)(this.maxTextures,e);let t=2===this._renderer.context.webGLVersion;this.maxUniformBindings=t?e.getParameter(e.MAX_UNIFORM_BUFFER_BINDINGS):0}destroy(){}}z.extension={type:[a.Ag.WebGLSystem],name:"limits"};var j=r(5776),q=r(95315);class Z{constructor(e){this._stencilCache={enabled:!1,stencilReference:0,stencilMode:q.K.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.resetState()}onRenderTargetChange(e){if(this._activeRenderTarget===e)return;this._activeRenderTarget=e;let t=this._renderTargetStencilState[e.uid];t||(t=this._renderTargetStencilState[e.uid]={stencilMode:q.K.DISABLED,stencilReference:0}),this.setStencilMode(t.stencilMode,t.stencilReference)}resetState(){this._stencilCache.enabled=!1,this._stencilCache.stencilMode=q.K.NONE,this._stencilCache.stencilReference=0}setStencilMode(e,t){let r=this._renderTargetStencilState[this._activeRenderTarget.uid],a=this._gl,i=j.g[e],n=this._stencilCache;if(r.stencilMode=e,r.stencilReference=t,e===q.K.DISABLED){this._stencilCache.enabled&&(this._stencilCache.enabled=!1,a.disable(a.STENCIL_TEST));return}this._stencilCache.enabled||(this._stencilCache.enabled=!0,a.enable(a.STENCIL_TEST)),(e!==n.stencilMode||n.stencilReference!==t)&&(n.stencilMode=e,n.stencilReference=t,a.stencilFunc(this._comparisonFuncMapping[i.stencilBack.compare],t,255),a.stencilOp(a.KEEP,a.KEEP,this._stencilOpsMapping[i.stencilBack.passOp]))}}Z.extension={type:[a.Ag.WebGLSystem],name:"stencil"};var Q=r(78847);let J={f32:4,i32:4,"vec2<f32>":8,"vec3<f32>":12,"vec4<f32>":16,"vec2<i32>":8,"vec3<i32>":12,"vec4<i32>":16,"mat2x2<f32>":32,"mat3x3<f32>":48,"mat4x4<f32>":64};function ee(e){let t=e.map(e=>({data:e,offset:0,size:0})),r=0,a=0;for(let e=0;e<t.length;e++){let i=t[e];if(!(r=J[i.data.type]))throw Error(`Unknown type ${i.data.type}`);i.data.size>1&&(r=Math.max(r,16)*i.data.size);let n=12===r?16:r;i.size=r;let s=a%16;s>0&&16-s<n?a+=(16-s)%16:a+=(r-s%r)%r,i.offset=a,a+=r}return{uboElements:t,size:a=16*Math.ceil(a/16)}}var et=r(85723),er=r(91528);function ea(e,t){let r=Math.max(J[e.data.type]/16,1),a=e.data.value.length/e.data.size,i=(4-a%4)%4,n=e.data.type.indexOf("i32")>=0?"dataInt32":"data";return` 148 v = uv.${e.data.name}; 149 offset += ${t}; 150 151 arrayOffset = offset; 152 153 t = 0; 154 155 for(var i=0; i < ${e.data.size*r}; i++) 156 { 157 for(var j = 0; j < ${a}; j++) 158 { 159 ${n}[arrayOffset++] = v[t++]; 160 } 161 ${0!==i?`arrayOffset += ${i};`:""} 162 } 163 `}function ei(e){return(0,et.E)(e,"uboStd40",ea,er.g)}class en extends Q.W{constructor(){super({createUboElements:ee,generateUboSync:ei})}}en.extension={type:[a.Ag.WebGLSystem],name:"ubo"};var es=r(6952),eo=r(31254),el=r(30868),eu=r(8627);class ec{constructor(){this.width=-1,this.height=-1,this.msaa=!1,this._attachedMipLevel=0,this._attachedLayer=0,this.msaaRenderBuffer=[]}}class e_{constructor(){this._clearColorCache=[0,0,0,0],this._viewPortCache=new eo.M}init(e,t){this._renderer=e,this._renderTargetSystem=t,e.runners.contextChange.add(this)}contextChange(){this._clearColorCache=[0,0,0,0],this._viewPortCache=new eo.M;let e=this._renderer.gl;this._drawBuffersCache=[];for(let t=1;t<=16;t++)this._drawBuffersCache[t]=Array.from({length:t},(t,r)=>e.COLOR_ATTACHMENT0+r)}copyToTexture(e,t,r,a,i){let n=this._renderTargetSystem,s=this._renderer,o=n.getGpuRenderTarget(e),l=s.gl;return this.finishRenderPass(e),l.bindFramebuffer(l.FRAMEBUFFER,o.resolveTargetFramebuffer),s.texture.bind(t,0),l.copyTexSubImage2D(l.TEXTURE_2D,0,i.x,i.y,r.x,r.y,a.width,a.height),t}startRenderPass(e,t=!0,r,a,i=0,n=0){let s=this._renderTargetSystem,o=e.colorTexture,l=s.getGpuRenderTarget(e);if(0!==n&&this._renderer.context.webGLVersion<2)throw Error("[RenderTargetSystem] Rendering to array layers requires WebGL2.");if(i>0){if(l.msaa)throw Error("[RenderTargetSystem] Rendering to mip levels is not supported with MSAA render targets.");if(this._renderer.context.webGLVersion<2)throw Error("[RenderTargetSystem] Rendering to mip levels requires WebGL2.")}let u=a.y;
163e.isRoot&&(u=o.pixelHeight-a.height-a.y),e.colorTextures.forEach(e=>{this._renderer.texture.unbind(e)});let c=this._renderer.gl;c.bindFramebuffer(c.FRAMEBUFFER,l.framebuffer),e.isRoot||l._attachedMipLevel===i&&l._attachedLayer===n||(e.colorTextures.forEach((e,t)=>{let r=this._renderer.texture.getGlSource(e);if(r.target===c.TEXTURE_2D){if(0!==n)throw Error("[RenderTargetSystem] layer must be 0 when rendering to 2D textures in WebGL.");c.framebufferTexture2D(c.FRAMEBUFFER,c.COLOR_ATTACHMENT0+t,c.TEXTURE_2D,r.texture,i)}else if(r.target===c.TEXTURE_2D_ARRAY){if(this._renderer.context.webGLVersion<2)throw Error("[RenderTargetSystem] Rendering to 2D array textures requires WebGL2.");c.framebufferTextureLayer(c.FRAMEBUFFER,c.COLOR_ATTACHMENT0+t,r.texture,i,n)}else if(r.target===c.TEXTURE_CUBE_MAP){if(n<0||n>5)throw Error("[RenderTargetSystem] Cube map layer must be between 0 and 5.");c.framebufferTexture2D(c.FRAMEBUFFER,c.COLOR_ATTACHMENT0+t,c.TEXTURE_CUBE_MAP_POSITIVE_X+n,r.texture,i)}else throw Error("[RenderTargetSystem] Unsupported texture target for render-to-layer in WebGL.")}),l._attachedMipLevel=i,l._attachedLayer=n),e.colorTextures.length>1&&this._setDrawBuffers(e,c);let _=this._viewPortCache;(_.x!==a.x||_.y!==u||_.width!==a.width||_.height!==a.height)&&(_.x=a.x,_.y=u,_.width=a.width,_.height=a.height,c.viewport(a.x,u,a.width,a.height)),!l.depthStencilRenderBuffer&&(e.stencil||e.depth)&&this._initStencil(l),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.gl,r=new ec;return(r._attachedMipLevel=0,r._attachedLayer=0,e.colorTexture instanceof el.q)?(this._renderer.context.ensureCanvasSize(e.colorTexture.resource),r.framebuffer=null):(this._initColor(e,r),t.bindFramebuffer(t.FRAMEBUFFER,null)),r}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,a,i=0,n=0){if(!t)return;if(0!==n)throw Error("[RenderTargetSystem] Clearing array layers is not supported in WebGL renderer.");let s=this._renderTargetSystem;"boolean"==typeof t&&(t=t?eu.u.ALL:eu.u.NONE);let o=this._renderer.gl;if(t&eu.u.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],o.clearColor(t[0],t[1],t[2],t[3]))}o.clear(t)}resizeGpuRenderTarget(e){if(e.isRoot)return;let t=this._renderTargetSystem.getGpuRenderTarget(e);this._resizeColor(e,t),(e.stencil||e.depth)&&this._resizeStencil(t)}_initColor(e,t){let r=this._renderer,a=r.gl,i=a.createFramebuffer();if(t.resolveTargetFramebuffer=i,a.bindFramebuffer(a.FRAMEBUFFER,i),t.width=e.colorTexture.source.pixelWidth,t.height=e.colorTexture.source.pixelHeight,e.colorTextures.forEach((e,i)=>{let n=e.source;n.antialias&&(r.context.supports.msaa?t.msaa=!0:(0,g.R)("[RenderTexture] Antialiasing on textures is not supported in WebGL1")),r.texture.bindSource(n,0);let s=r.texture.getGlSource(n),o=s.texture;if(s.target===a.TEXTURE_2D)a.framebufferTexture2D(a.FRAMEBUFFER,a.COLOR_ATTACHMENT0+i,a.TEXTURE_2D,o,0);else if(s.target===a.TEXTURE_2D_ARRAY){if(r.context.webGLVersion<2)throw Error("[RenderTargetSystem] TEXTURE_2D_ARRAY requires WebGL2.");a.framebufferTextureLayer(a.FRAMEBUFFER,a.COLOR_ATTACHMENT0+i,o,0,0)}else if(s.target===a.TEXTURE_CUBE_MAP)a.framebufferTexture2D(a.FRAMEBUFFER,a.COLOR_ATTACHMENT0+i,a.TEXTURE_CUBE_MAP_POSITIVE_X,o,0);else throw Error("[RenderTargetSystem] Unsupported texture target for framebuffer attachment.")}),t.msaa){let r=a.createFramebuffer();t.framebuffer=r,a.bindFramebuffer(a.FRAMEBUFFER,r),e.colorTextures.forEac
163h((e,r)=>{let i=a.createRenderbuffer();t.msaaRenderBuffer[r]=i})}else t.framebuffer=i;this._resizeColor(e,t)}_resizeColor(e,t){let r=e.colorTexture.source;if(t.width=r.pixelWidth,t.height=r.pixelHeight,t._attachedMipLevel=0,t._attachedLayer=0,e.colorTextures.forEach((e,t)=>{0!==t&&e.source.resize(r.width,r.height,r._resolution)}),t.msaa){let r=this._renderer,a=r.gl,i=t.framebuffer;a.bindFramebuffer(a.FRAMEBUFFER,i),e.colorTextures.forEach((e,i)=>{let n=e.source;r.texture.bindSource(n,0);let s=r.texture.getGlSource(n).internalFormat,o=t.msaaRenderBuffer[i];a.bindRenderbuffer(a.RENDERBUFFER,o),a.renderbufferStorageMultisample(a.RENDERBUFFER,4,s,n.pixelWidth,n.pixelHeight),a.framebufferRenderbuffer(a.FRAMEBUFFER,a.COLOR_ATTACHMENT0+i,a.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)}prerender(e){let t=e.colorTexture.resource;this._renderer.context.multiView&&el.q.test(t)&&this._renderer.context.ensureCanvasSize(t)}postrender(e){if(this._renderer.context.multiView&&el.q.test(e.colorTexture.resource)){let t=this._renderer.context.canvas,r=e.colorTexture;r.context2D.drawImage(t,0,r.pixelHeight-t.height)}}_setDrawBuffers(e,t){let r=e.colorTextures.length,a=this._drawBuffersCache[r];if(1===this._renderer.context.webGLVersion){let e=this._renderer.context.extensions.drawBuffers;e?e.drawBuffersWEBGL(a):(0,g.R)("[RenderTexture] This WebGL1 context does not support rendering to multiple targets")}else t.drawBuffers(a)}}class ef extends es.l{constructor(e){super(e),this.adaptor=new e_,this.adaptor.init(e,this)}}ef.extension={type:[a.Ag.WebGLSystem],name:"renderTarget"};var eh=r(8147);class ed{constructor(e,t){this.program=e,this.uniformData=t,this.uniformGroups={},this.uniformDirtyGroups={},this.uniformBlockBindings={}}destroy(){this.uniformData=null,this.uniformGroups=null,this.uniformDirtyGroups=null,this.uniformBlockBindings=null,this.program=null}}function em(e,t,r){let a=e.createShader(t);return e.shaderSource(a,r),e.compileShader(a),a}function eg(e){let t=Array(e);for(let e=0;e<t.length;e++)t[e]=!1;return t}function eE(e,t){switch(e){case"float":case"int":case"uint":case"sampler2D":case"sampler2DArray":return 0;case"vec2":return new Float32Array(2*t);case"vec3":return new Float32Array(3*t);case"vec4":return new Float32Array(4*t);case"ivec2":return new Int32Array(2*t);case"ivec3":return new Int32Array(3*t);case"ivec4":return new Int32Array(4*t);case"uvec2":return new Uint32Array(2*t);case"uvec3":return new Uint32Array(3*t);case"uvec4":return new Uint32Array(4*t);case"bool":return!1;case"bvec2":return eg(2*t);case"bvec3":return eg(3*t);case"bvec4":return eg(4*t);case"mat2":return new Float32Array([1,0,0,1]);case"mat3":return new Float32Array([1,0,0,0,1,0,0,0,1]);case"mat4":return new Float32Array([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1])}return null}let ev=null,ep={FLOAT:"float",FLOAT_VEC2:"vec2",FLOAT_VEC3:"vec3",FLOAT_VEC4:"vec4",INT:"int",INT_VEC2:"ivec2",INT_VEC3:"ivec3",INT_VEC4:"ivec4",UNSIGNED_INT:"uint",UNSIGNED_INT_VEC2:"uvec2",UNSIGNED_INT_VEC3:"uvec3",UNSIGNED_INT_VEC4:"uvec4",BOOL:"bool",BOOL_VEC2:"bvec2",BOOL_VEC3:"bvec3",BOOL_VEC4:"bvec4",FLOAT_MAT2:"mat2",FLOAT_MAT3:"mat3",FLOAT_MAT4:"mat4",SAMPLER_2D:"sampler2D",INT_SAMPLER_2D:"sampler2D",UNSIGNED_INT_SAMPLER_2D:"sampler2D",SAMPLER_CUBE:"samplerCube",INT_SAMPLER_CUBE:"samplerCube",UNSIGNED_INT_SAMPLER_CUBE:"samplerCube",SAMPLER_2D_ARRAY:"sampler2DArray",INT_SAMPLER_2D_ARRAY:"sampler2DArray",UNSIGNED_INT_SAMPLER_2D_ARRAY:"sampler2DArray"},eT={float:"float32",vec2:"float32x2",vec3:"float32x3",vec4:"float32x4",int:"sint32",ivec2:"sint32x2",ivec3:"sint32x3",ivec4:"sint32x4",uint:"uint32",uvec2:"uint32x2",uvec3:"uint32x3",uvec4:"uint32x4",bool:"uint32",bvec2:"uint32x2",bvec3:"uint32x3",bvec4:"uint32x4"};function ex(e,t){if(!ev){let t=Object.keys(ep);ev={};for(let r=0;r<t.length;++r){let a=t[r];ev[e[a]]=ep[a]}}return ev[t]}function eb(e,t){let r=e.getShaderSource(t).split("\n").map((e,t)=>`${t}: ${e}`),a=e.getShaderInfoLog(t),i=a.split("\n"),n={},s=i.map(e=>
163parseFloat(e.replace(/^ERROR\: 0\:([\d]+)\:.*$/,"$1"))).filter(e=>!!e&&!n[e]&&(n[e]=!0,!0)),o=[""];s.forEach(e=>{r[e-1]=`%c${r[e-1]}%c`,o.push("background: #FF0000; color:#FFFFFF; font-size: 10px","font-size: 10px")});let l=r.join("\n");o[0]=l,console.error(a),console.groupCollapsed("click to view full shader code"),console.warn(...o),console.groupEnd()}let eR={textureCount:0,blockIndex:0};class eS{constructor(e){this._activeProgram=null,this._programDataHash=Object.create(null),this._shaderSyncFunctions=Object.create(null),this._renderer=e}contextChange(e){this._gl=e,this._programDataHash=Object.create(null),this._shaderSyncFunctions=Object.create(null),this._activeProgram=null}bind(e,t){if(this._setProgram(e.glProgram),t)return;eR.textureCount=0,eR.blockIndex=0;let r=this._shaderSyncFunctions[e.glProgram._key];r||(r=this._shaderSyncFunctions[e.glProgram._key]=this._generateShaderSync(e,this)),this._renderer.buffer.nextBindBase(!!e.glProgram.transformFeedbackVaryings),r(this._renderer,e,eR)}updateUniformGroup(e){this._renderer.uniformGroup.updateUniformGroup(e,this._activeProgram,eR)}bindUniformBlock(e,t,r=0){let a=this._renderer.buffer,i=this._getProgramData(this._activeProgram),n=e._bufferResource;n||this._renderer.ubo.updateUniformGroup(e);let s=e.buffer,o=a.updateBuffer(s),l=a.freeLocationForBufferBase(o);if(n){let{offset:t,size:r}=e;0===t&&r===s.data.byteLength?a.bindBufferBase(o,l):a.bindBufferRange(o,l,t)}else a.getLastBindBaseLocation(o)!==l&&a.bindBufferBase(o,l);let u=this._activeProgram._uniformBlockData[t].index;i.uniformBlockBindings[r]!==l&&(i.uniformBlockBindings[r]=l,this._renderer.gl.uniformBlockBinding(i.program,u,l))}_setProgram(e){if(this._activeProgram===e)return;this._activeProgram=e;let t=this._getProgramData(e);this._gl.useProgram(t.program)}_getProgramData(e){return this._programDataHash[e._key]||this._createProgramData(e)}_createProgramData(e){let t=e._key;return this._programDataHash[t]=function(e,t){let r=em(e,e.VERTEX_SHADER,t.vertex),a=em(e,e.FRAGMENT_SHADER,t.fragment),i=e.createProgram();e.attachShader(i,r),e.attachShader(i,a);let n=t.transformFeedbackVaryings;n&&("function"!=typeof e.transformFeedbackVaryings?(0,g.R)("TransformFeedback is not supported but TransformFeedbackVaryings are given."):e.transformFeedbackVaryings(i,n.names,"separate"===n.bufferMode?e.SEPARATE_ATTRIBS:e.INTERLEAVED_ATTRIBS)),e.linkProgram(i),!e.getProgramParameter(i,e.LINK_STATUS)&&(e.getProgramParameter(i,e.LINK_STATUS)||(e.getShaderParameter(r,e.COMPILE_STATUS)||eb(e,r),e.getShaderParameter(a,e.COMPILE_STATUS)||eb(e,a),console.error("PixiJS Error: Could not initialize shader."),""!==e.getProgramInfoLog(i)&&console.warn("PixiJS Warning: gl.getProgramInfoLog()",e.getProgramInfoLog(i)))),t._attributeData=function(e,t,r=!1){let a={},i=t.getProgramParameter(e,t.ACTIVE_ATTRIBUTES);for(let r=0;r<i;r++){let i=t.getActiveAttrib(e,r);if(i.name.startsWith("gl_"))continue;let n=eT[ex(t,i.type)]||"float32";a[i.name]={location:0,format:n,stride:(0,G.m)(n).stride,offset:0,instance:!1,start:0}}let n=Object.keys(a);if(r){n.sort((e,t)=>e>t?1:-1);for(let r=0;r<n.length;r++)a[n[r]].location=r,t.bindAttribLocation(e,r,n[r]);t.linkProgram(e)}else for(let r=0;r<n.length;r++)a[n[r]].location=t.getAttribLocation(e,n[r]);return a}(i,e,!/^[ \t]*#[ \t]*version[ \t]+300[ \t]+es[ \t]*$/m.test(t.vertex)),t._uniformData=function(e,t){let r={},a=t.getProgramParameter(e,t.ACTIVE_UNIFORMS);for(let i=0;i<a;i++){let a=t.getActiveUniform(e,i),n=a.name.replace(/\[.*?\]$/,""),s=!!a.name.match(/\[.*?\]$/),o=ex(t,a.type);r[n]={name:n,index:i,type:o,size:a.size,isArray:s,value:eE(o,a.size)}}return r}(i,e),t._uniformBlockData=function(e,t){if(!t.ACTIVE_UNIFORM_BLOCKS)return{};let r={},a=t.getProgramParameter(e,t.ACTIVE_UNIFORM_BLOCKS);for(let i=0;i<a;i++){let a=t.getActiveUniformBlockName(e,i),n=t.getUniformBlockIndex(e,a),s=t.getActiveUniformBlockParameter(e,i,t.UNIFORM_BLOCK_DATA_SIZE);r[a]={name:a,index:n,size:s}}return r}(i,e),e.deleteShader(r),e.deleteShader(a);let s={};for(let r in t._uniformData){let a=t._uniformData[r];s[r]={location:e.getUniformLocation(i,r),value:eE(a.type,a.size)}}return new ed(i,s)}(this._gl,e),this._programDataHash[t]}destroy(){for(let e of Object.keys(this._programDataHash))this._programDataHash[e].destroy();this._programDataHash=null,this._shaderSyncFunctions=null,this._activeProgram=null,this._renderer=null,this._gl=null}_generateShaderSync(e,t){return function(e,t){let r=[],a=[` 164 var g = s.groups; 165 var sS = r.shader; 166 var p = s.glProgram; 167 var ugS = r.uniformGroup; 168 var resources; 169 `],i=!1,n=0,s=t._getProgramData(e.glProgram);for(let o in e.groups){let l=e.groups[o];for(let u in r.push(` 170 resources = g[${o}].resources; 171 `),l.resources){let c=l.resources[u];if(c instanceof f.k)if(c.ubo){let t=e._uniformBindMap[o][Number(u)];r.push(` 172 sS.bindUniformBlock( 173 resources[${u}], 174 '${t}', 175 ${e.glProgram._uniformBlockData[t].index} 176 ); 177 `)}else r.push(` 178 ugS.updateUniformGroup(resources[${u}], p, sD); 179 `);else if(c instanceof eh.d){let t=e._uniformBindMap[o][Number(u)];r.push(` 180 sS.bindUniformBlock( 181 resources[${u}], 182 '${t}', 183 ${e.glProgram._uniformBlockData[t].index} 184 ); 185 `)}else if(c instanceof k.v){let l=e._uniformBindMap[o][u],c=s.uniformData[l];c&&(i||(i=!0,a.push(` 186 var tS = r.texture; 187 `)),t._gl.uniform1i(c.location,n),r.push(` 188 tS.bind(resources[${u}], ${n}); 189 `),n++)}}}return Function("r","s","sD",[...a,...r].join("\n"))}(e,t)}resetState(){this._activeProgram=null}}eS.extension={type:[a.Ag.WebGLSystem],name:"shader"};var eA=r(63752);let eB={f32:`if (cv !== v) { 190 cu.value = v; 191 gl.uniform1f(location, v); 192 }`,"vec2<f32>":`if (cv[0] !== v[0] || cv[1] !== v[1]) { 193 cv[0] = v[0]; 194 cv[1] = v[1]; 195 gl.uniform2f(location, v[0], v[1]); 196 }`,"vec3<f32>":`if (cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2]) { 197 cv[0] = v[0]; 198 cv[1] = v[1]; 199 cv[2] = v[2]; 200 gl.uniform3f(location, v[0], v[1], v[2]); 201 }`,"vec4<f32>":`if (cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2] || cv[3] !== v[3]) { 202 cv[0] = v[0]; 203 cv[1] = v[1]; 204 cv[2] = v[2]; 205 cv[3] = v[3]; 206 gl.uniform4f(location, v[0], v[1], v[2], v[3]); 207 }`,i32:`if (cv !== v) { 208 cu.value = v; 209 gl.uniform1i(location, v); 210 }`,"vec2<i32>":`if (cv[0] !== v[0] || cv[1] !== v[1]) { 211 cv[0] = v[0]; 212 cv[1] = v[1]; 213 gl.uniform2i(location, v[0], v[1]); 214 }`,"vec3<i32>":`if (cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2]) { 215 cv[0] = v[0]; 216 cv[1] = v[1]; 217 cv[2] = v[2]; 218 gl.uniform3i(location, v[0], v[1], v[2]); 219 }`,"vec4<i32>":`if (cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2] || cv[3] !== v[3]) { 220 cv[0] = v[0]; 221 cv[1] = v[1]; 222 cv[2] = v[2]; 223 cv[3] = v[3]; 224 gl.uniform4i(location, v[0], v[1], v[2], v[3]); 225 }`,u32:`if (cv !== v) { 226 cu.value = v; 227 gl.uniform1ui(location, v); 228 }`,"vec2<u32>":`if (cv[0] !== v[0] || cv[1] !== v[1]) { 229 cv[0] = v[0]; 230 cv[1] = v[1]; 231 gl.uniform2ui(location, v[0], v[1]); 232 }`,"vec3<u32>":`if (cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2]) { 233 cv[0] = v[0]; 234 cv[1] = v[1]; 235 cv[2] = v[2]; 236 gl.uniform3ui(location, v[0], v[1], v[2]); 237 }`,"vec4<u32>":`if (cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2] || cv[3] !== v[3]) { 238 cv[0] = v[0]; 239 cv[1] = v[1]; 240 cv[2] = v[2]; 241 cv[3] = v[3]; 242 gl.uniform4ui(location, v[0], v[1], v[2], v[3]); 243 }`,bool:`if (cv !== v) { 244 cu.value = v; 245 gl.uniform1i(location, v); 246 }`,"vec2<bool>":`if (cv[0] !== v[0] || cv[1] !== v[1]) { 247 cv[0] = v[0]; 248 cv[1] = v[1]; 249 gl.uniform2i(location, v[0], v[1]); 250 }`,"vec3<bool>":`if (cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2]) { 251 cv[0] = v[0]; 252 cv[1] = v[1]; 253 cv[2] = v[2]; 254 gl.uniform3i(location, v[0], v[1], v[2]); 255 }`,"vec4<bool>":`if (cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2] || cv[3] !== v[3]) { 256 cv[0] = v[0]; 257 cv[1] = v[1]; 258 cv[2] = v[2]; 259 cv[3] = v[3]; 260 gl.uniform4i(location, v[0], v[1], v[2], v[3]); 261 }`,"mat2x2<f32>":"gl.uniformMatrix2fv(location, false, v);","mat3x3<f32>":"gl.uniformMatrix3fv(location, false, v);","mat4x4<f32>":"gl.uniformMatrix4fv(location, false, v);"},ey={f32:"gl.uniform1fv(location, v);","vec2<f32>":"gl.uniform2fv(location, v);","vec3<f32>":"gl.uniform3fv(location, v);","vec4<f32>":"gl.uniform4fv(location, v);","mat2x2<f32>":"gl.uniformMatrix2fv(location, false, v);","mat3x3<f32>":"gl.uniformMatrix3fv(location, false, v);","mat4x4<f32>":"gl.uniformMatrix4fv(location, false, v);",i32:"gl.uniform1iv(location, v);","vec2<i32>":"gl.uniform2iv(location, v);","vec3<i32>":"gl.uniform3iv(location, v);","vec4<i32>":"gl.uniform4iv(location, v);",u32:"gl.uniform1iv(location, v);","vec2<u32>":"gl.uniform2iv(location, v);","vec3<u32>":"gl.uniform3iv(location, v);","vec4<u32>":"gl.uniform4iv(location, v);",bool:"gl.uniform1iv(location, v);","vec2<bool>":"gl.uniform2iv(location, v);","vec3<bool>":"gl.uniform3iv(location, v);","vec4<bool>":"gl.uniform4iv(location, v);"};class eC{constructor(e){this._cache={},this._uniformGroupSyncHash={},this._renderer=e,this.gl=null,this._cache={}}contextChange(e){this.gl=e}updateUniformGroup(e,t,r){let a=this._renderer.shader._getProgramData(t);e.isStatic&&e._dirtyId===a.uniformDirtyGroups[e.uid]||(a.uniformDirtyGroups[e.uid]=e._dirtyId,this._getUniformSyncFunction(e,t)(a.uniformData,e.uniforms,this._renderer,r))}_getUniformSyncFunction(e,t){return this._uniformGroupSyncHash[e._signature]?.[t._key]||this._createUniformSyncFunction(e,t)}_createUniformSyncFunction(e,t){let r=this._uniformGroupSyncHash[e._signature]||(this._uniformGroupSyncHash[e._signature]={}),a=this._getSignature(e,t._uniformData,"u");return this._cache[a]||(this._cache[a]=this._generateUniformsSync(e,t._uniformData)),r[t._key]=this._cache[a],r[t._key]}_generateUniformsSync(e,t){return function(e,t){let r=[` 262 var v = null; 263 var cv = null; 264 var cu = null; 265 var t = 0; 266 var gl = renderer.gl; 267 var name = null; 268 `];for(let a in e.uniforms){if(!t[a]){e.uniforms[a]instanceof f.k?e.uniforms[a].ubo?r.push(` 269 renderer.shader.bindUniformBlock(uv.${a}, "${a}"); 270 `):r.push(` 271 renderer.shader.updateUniformGroup(uv.${a}); 272 `):e.uniforms[a]instanceof eh.d&&r.push(` 273 renderer.shader.bindBufferResource(uv.${a}, "${a}"); 274 `);continue}let i=e.uniformStructures[a],n=!1;for(let e=0;e<eA.$.length;e++){let t=eA.$[e];
274if(i.type===t.type&&t.test(i)){r.push(`name = "${a}";`,eA.$[e].uniform),n=!0;break}}if(!n){let e=(1===i.size?eB:ey)[i.type].replace("location",`ud["${a}"].location`);r.push(` 275 cu = ud["${a}"]; 276 cv = cu.value; 277 v = uv["${a}"]; 278 ${e};`)}}return Function("ud","uv","renderer","syncData",r.join("\n"))}(e,t)}_getSignature(e,t,r){let a=e.uniforms,i=[`${r}-`];for(let e in a)i.push(e),t[e]&&i.push(t[e].type);return i.join("-")}destroy(){this._renderer=null,this._cache=null}}eC.extension={type:[a.Ag.WebGLSystem],name:"uniformGroup"};let eN=class e{constructor(e){this._invertFrontFace=!1,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=v.U.for2d(),e.renderTarget.onRenderTargetChange.add(this)}onRenderTargetChange(e){this._invertFrontFace=!e.isRoot,this._cullFace?this.setFrontFace(this._frontFace):this._frontFaceDirty=!0}contextChange(e){this.gl=e,this.blendModesMap=function(e){let t={};if(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],e instanceof C.e.get().getWebGLRenderingContext()){let r=e.getExtension("EXT_blend_minmax");r&&(t.min=[e.ONE,e.ONE,e.ONE,e.ONE,r.MIN_EXT,r.MIN_EXT],t.max=[e.ONE,e.ONE,e.ONE,e.ONE,r.MAX_EXT,r.MAX_EXT])}else t.min=[e.ONE,e.ONE,e.ONE,e.ONE,e.MIN,e.MIN],t.max=[e.ONE,e.ONE,e.ONE,e.ONE,e.MAX,e.MAX];return t}(e),this.resetState()}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._cullFace=e,this.gl[e?"enable":"disable"](this.gl.CULL_FACE),this._cullFace&&this._frontFaceDirty&&this.setFrontFace(this._frontFace)}setFrontFace(e){this._frontFace=e,this._frontFaceDirty=!1;let t=this._invertFrontFace?!e:e;this._glFrontFace!==t&&(this._glFrontFace=t,this.gl.frontFace(this.gl[t?"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)}resetState(){this._glFrontFace=!1,this._frontFace=!1,this._cullFace=!1,this._frontFaceDirty=!1,this._invertFrontFace=!1,this.gl.frontFace(this.gl.CCW),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}};eN.extension={type:[a.Ag.WebGLSystem],name:"state"};class eG{constructor(e){this.target=D.TEXTURE_2D,this._layerInitMask=0,this.texture=e,this.width=-1,this.height=-1,this.type=F.UNSIGNED_BYTE,this.internalFormat=U.RGBA,this.format=U.RGBA,this.samplerType=0}destroy(){}}let eI={id:"buffer",upload(e,t,r,a,i,n=!1){let s=i||t.target;n||t.width!==e.width||t.height!==e.height?r.texImage2D(s,0,t.internalFormat,e.width,e.height,0,t.format,t.type,e.resource):r.texSubImage2D(s,0,0,0,e.width,e.height,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},eD={id:"compressed",upload(e,t,r,a,i,n){let s=i??t.target;r.pixelStorei(r.UNPACK_ALIGNMENT,4);let o=e.pixelWidth,l=e.pixelHeight,u=!!eU[e.format];for(let a=0;a<e.resource.length;a++){let i=e.resource[a];u?r.compressedTexImage2D(s,a,t.internalFormat,o,l,0,i):r.texImage2D(s,a,t.internalFormat,o,l,0,t.format,t.type,i),o=Math.max(o>>1,1),l=Math.max(l>>1,1)}}},eL=["right","left","top","bottom","front","back"],eF={id:"image",upload(e,t,r,a,i,n=!1){let s=i||t.target,o=e.pixelWidth,l=e.pixelHeight,u=e.resourceWidth,c=e.resourceHeight,_=n||t.width!==o||t.height!==l,f=u>=o&&c>=l;(2===a?function(e,t,r,a,i,n,s,o,l,u){if(!u){l&&e.texImage2D(t,0,r.internalFormat,a,i,0,r.format,r.type,null),e.texSubImage2D(t,0,0,0,n,s,r.format,r.type,o);return}if(!l)return void e.texSubImage2D(t,0,0,0,r.format,r.type,o);e.texImage2D(t,0,r.internalFormat,a,i,0,r.format,r.type,o)}:function(e,t,r,a,i,n,s,o,l,u){if(!u){l&&e.texImage2D(t,0,r.internalFormat,a,i,0,r.format,r.type,null),e.texSubImage2D(t,0,0,0,r.format,r.type,o);return}if(!l)return void e.texSubImage2D(t,0,0,0,r.format,r.type,o);e.texImage2D(t,0,r.internalFormat,r.format,r.type,o)})(r,s,t,o,l,u,c,e.resource,_,f),t.width=o,t.height=l}},eM=function(){let{userAgent:e}=C.e.get().getNavigator();return/^((?!chrome|android).)*safari/i.test(e)}(),eO={id:"video",upload(e,t,r,a,i,n=eM){if(!e.isValid){let e=i??t.target;r.texImage2D(e,0,t.internalFormat,1,1,0,t.format,t.type,null);return}eF.upload(e,t,r,a,i,n)}},eP={linear:9729,nearest:9728},ew={linear:{linear:9987,nearest:9985},nearest:{linear:9986,nearest:9984}},eH={"clamp-to-edge":33071,repeat:10497,"mirror-repeat":33648},ek={never:512,less:513,equal:514,"less-equal":515,greater:516,"not-equal":517,"greater-equal":518,always:519};function eV(e,t,r,a,i,n,s,o){if(!o||"repeat"!==e.addressModeU||"repeat"!==e.addressModeV||"repeat"!==e.addressModeW){let r=eH[s?"clamp-to-edge":e.addressModeU],a=eH[s?"clamp-to-edge":e.addressModeV],o=eH[s?"clamp-to-edge":e.addressModeW];t[i](n,t.TEXTURE_WRAP_S,r),t[i](n,t.TEXTURE_WRAP_T,a),t.TEXTURE_WRAP_R&&t[i](n,t.TEXTURE_WRAP_R,o)}if(o&&"linear"===e.magFilter||t[i](n,t.TEXTURE_MAG_FILTER,eP[e.magFilter]),r){if(!o||"linear"!==e.mipmapFilter){let r=ew[e.minFilter][e.mipmapFilter];t[i](n,t.TEXTURE_MIN_FILTER,r)}}else t[i](n,t.TEXTURE_MIN_FILTER,eP[e.minFilter]);if(a&&e.maxAnisotropy>1){let r=Math.min(e.maxAnisotropy,t.getParameter(a.MAX_TEXTURE_MAX_ANISOTROPY_EXT));
278t[i](n,a.TEXTURE_MAX_ANISOTROPY_EXT,r)}e.compare&&t[i](n,t.TEXTURE_COMPARE_FUNC,ek[e.compare])}class eX{constructor(e){this._glSamplers=Object.create(null),this._boundTextures=[],this._activeTextureLocation=-1,this._boundSamplers=Object.create(null),this._premultiplyAlpha=!1,this._useSeparateSamplers=!1,this._renderer=e,this._managedTextures=new R.s({renderer:e,type:"resource",onUnload:this.onSourceUnload.bind(this),name:"glTexture"});let t={image:eF,buffer:eI,video:eO,compressed:eD};this._uploads={...t,cube:function(e){return{id:"cube",upload(t,r,a,i){let n=t.faces;for(let t=0;t<eL.length;t++){let s=n[eL[t]];(e[s.uploadMethodId]||e.image).upload(s,r,a,i,D.TEXTURE_CUBE_MAP_POSITIVE_X+t,(r._layerInitMask&1<<t)==0),r._layerInitMask|=1<<t}r.width=t.pixelWidth,r.height=t.pixelHeight}}}(t)}}get managedTextures(){return Object.values(this._managedTextures.items)}contextChange(e){if(this._gl=e,!this._mapFormatToInternalFormat){var t;let r,a;this._mapFormatToInternalFormat=(t=this._renderer.context.extensions,r={},a=e.RGBA,e instanceof C.e.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},a=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:a,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,
278stencil8: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._mapViewDimensionToGlTarget={"2d":e.TEXTURE_2D,cube:e.TEXTURE_CUBE_MAP,"1d":null,"3d":e?.TEXTURE_3D||null,"2d-array":e?.TEXTURE_2D_ARRAY||null,"cube-array":e?.TEXTURE_CUBE_MAP_ARRAY||null}}this._managedTextures.removeAll(!0),this._glSamplers=Object.create(null),this._boundSamplers=Object.create(null),this._premultiplyAlpha=!1;for(let e=0;e<16;e++)this.bind(m.g.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._gcLastUsed=this._renderer.gc.now,this._boundTextures[t]!==e){this._boundTextures[t]=e,this._activateLocation(t),e||(e=m.g.EMPTY.source);let a=this.getGlSource(e);r.bindTexture(a.target,a.texture)}}_bindSampler(e,t=0){let r=this._gl;if(!e){this._boundSamplers[t]=null,r.bindSampler(t,null);return}let a=this._getGlSampler(e);this._boundSamplers[t]!==a&&(this._boundSamplers[t]=a,r.bindSampler(t,a))}unbind(e){let t=e.source,r=this._boundTextures,a=this._gl;for(let e=0;e<r.length;e++)if(r[e]===t){this._activateLocation(e);let i=this.getGlSource(t);a.bindTexture(i.target,null),r[e]=null}}_activateLocation(e){this._activeTextureLocation!==e&&(this._activeTextureLocation=e,this._gl.activeTexture(this._gl.TEXTURE0+e))}_initSource(e){let t=this._gl,r=new eG(t.createTexture());if(r.type=this._mapFormatToType[e.format],r.internalFormat=this._mapFormatToInternalFormat[e.format],r.format=this._mapFormatToFormat[e.format],r.target=this._mapViewDimensionToGlTarget[e.viewDimension],null===r.target)throw Error(`Unsupported view dimension: ${e.viewDimension} with this webgl version: ${this._renderer.context.webGLVersion}`);if("cube"===e.uploadMethodId&&(r.target=t.TEXTURE_CUBE_MAP),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 e._gpuData[this._renderer.uid]=r,this._managedTextures.add(e)&&(e.on("update",this.onSourceUpdate,this),e.on("resize",this.onSourceUpdate,this),e.on("styleChange",this.onStyleChange,this),e.on("updateMipmaps",this.onUpdateMipmaps,this)),this.onSourceUpdate(e),this.updateStyle(e,!1),r}onStyleChange(e){this.updateStyle(e,!1)}updateStyle(e,t){let r=this._gl,a=this.getGlSource(e);r.bindTexture(a.target,a.texture),this._boundTextures[this._activeTextureLocation]=e,eV(e.style,r,e.mipLevelCount>1,this._renderer.context.extensions.anisotropicFiltering,"texParameteri",a.target,!this._renderer.context.supports.nonPowOf2wrapping&&!e.isPowerOfTwo,t)}onSourceUnload(e,t=!1){let r=e._gpuData[this._renderer.uid];r&&(t||(this.unbind(e),this._gl.deleteTexture(r.texture)),e.off("update",this.onSourceUpdate,this),e.off("resize",this.onSourceUpdate,this),e.off("styleChange",this.onStyleChange,this),e.off("updateMipmaps",this.onUpdateMipmaps,this))}onSourceUpdate(e){let t=this._gl,r=this.getGlSource(e);t.bindTexture(r.target,r.texture),this._boundTextures[this._activeTextureLocation]=e;let a="premultiply-alpha-on-upload"===e.alphaMode;if(this._premultiplyAlpha!==a&&(this._premultiplyAlpha=a,t.pixelStorei(t.UNPACK_PREMULTIPLY_ALPHA_WEBGL,a)),this._uploads[e.uploadMethodId])this._uploads[e.uploadMethodId].upload(e,r,t,this._renderer.context.webGLVersion);else if(r.target===t.TEXTURE_2D)this._initEmptyTexture2D(r,e);else if(r.target===t.TEXTURE_2D_ARRAY)this._initEmptyTexture2DArray(r,e);else if(r.target===t.TEXTURE_CUBE_MAP)this._initEmptyTextureCube(r,e);else throw Error("[GlTextureSystem] Unsupported texture target for empty allocation.");this._applyMipRange(r,e),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)}_initEmptyTexture2D(e,t){let r=this._gl;r.texImage2D(r.TEXTURE_2D,0,e.internalFormat,t.pixelWidth,t.pixelHeight,0,e.format,e.type,null);let a=Math.max(t.pixelWidth>>1,1),i=Math.max(t.pixelHeight>>1,1);for(let n=1;n<t.mipLevelCount;n++)r.texImage2D(r.TEXTURE_2D,n,e.internalFormat,a,i,0,e.format,e.type,null),a=Math.max(a>>1,1),i=Math.max(i>>1,1)}_initEmptyTexture2DArray(e,t){if(2!==this._renderer.context.webGLVersion)throw Error("[GlTextureSystem] TEXTURE_2D_ARRAY requires WebGL2.");let r=this._gl,a=Math.max(0|t.arrayLayerCount,1);r.texImage3D(r.TEXTURE_2D_ARRAY,0,e.internalFormat,t.pixelWidth,t.pixelHeight,a,0,e.format,e.type,null);let i=Math.max(t.pixelWidth>>1,1),n=Math.max(t.pixelHeight>>1,1);for(let s=1;s<t.mipLevelCount;s++)r.texImage3D(r.TEXTURE_2D_ARRAY,s,e.internalFormat,i,n,a,0,e.format,e.type,null),i=Math.max(i>>1,1),n=Math.max(n>>1,1)}_initEmptyTextureCube(e,t){let r=this._gl;for(let a=0;a<6;
278a++)r.texImage2D(r.TEXTURE_CUBE_MAP_POSITIVE_X+a,0,e.internalFormat,t.pixelWidth,t.pixelHeight,0,e.format,e.type,null);let a=Math.max(t.pixelWidth>>1,1),i=Math.max(t.pixelHeight>>1,1);for(let n=1;n<t.mipLevelCount;n++){for(let t=0;t<6;t++)r.texImage2D(r.TEXTURE_CUBE_MAP_POSITIVE_X+t,n,e.internalFormat,a,i,0,e.format,e.type,null);a=Math.max(a>>1,1),i=Math.max(i>>1,1)}}_applyMipRange(e,t){if(2!==this._renderer.context.webGLVersion)return;let r=this._gl,a=Math.max((0|t.mipLevelCount)-1,0);r.texParameteri(e.target,r.TEXTURE_BASE_LEVEL,0),r.texParameteri(e.target,r.TEXTURE_MAX_LEVEL,a)}_initSampler(e){let t=this._gl,r=this._gl.createSampler();return this._glSamplers[e._resourceId]=r,eV(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 e._gcLastUsed=this._renderer.gc.now,e._gpuData[this._renderer.uid]||this._initSource(e)}generateCanvas(e){let{pixels:t,width:r,height:a}=this.getPixels(e),i=C.e.get().createCanvas();i.width=r,i.height=a;let n=i.getContext("2d");if(n){let e=n.createImageData(r,a);e.data.set(t),n.putImageData(e,0,0)}return i}getPixels(e){let t=e.source.resolution,r=e.frame,a=Math.max(Math.round(r.width*t),1),i=Math.max(Math.round(r.height*t),1),n=new Uint8Array(4*a*i),s=this._renderer,o=s.renderTarget.getRenderTarget(e),l=s.renderTarget.getGpuRenderTarget(o),u=s.gl;return u.bindFramebuffer(u.FRAMEBUFFER,l.resolveTargetFramebuffer),u.readPixels(Math.round(r.x*t),Math.round(r.y*t),a,i,u.RGBA,u.UNSIGNED_BYTE,n),{pixels:new Uint8ClampedArray(n.buffer),width:a,height:i}}destroy(){this._managedTextures.destroy(),this._glSamplers=null,this._boundTextures=null,this._boundSamplers=null,this._mapFormatToInternalFormat=null,this._mapFormatToType=null,this._mapFormatToFormat=null,this._uploads=null,this._renderer=null}resetState(){this._activeTextureLocation=-1,this._boundTextures.fill(m.g.EMPTY.source),this._boundSamplers=Object.create(null);let e=this._gl;this._premultiplyAlpha=!1,e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,this._premultiplyAlpha)}}eX.extension={type:[a.Ag.WebGLSystem],name:"texture"};let eW=[...x.i,en,W,N,z,y,eX,ef,w,eC,eS,$,eN,Z,Y],eY=[...x.f],e$=[p,E,h],eK=[],ez=[],ej=[];a.XO.handleByNamedList(a.Ag.WebGLSystem,eK),a.XO.handleByNamedList(a.Ag.WebGLPipes,ez),a.XO.handleByNamedList(a.Ag.WebGLPipesAdaptor,ej),a.XO.add(...eW,...eY,...e$);class eq extends T.k{constructor(){super({name:"webgl",type:b.W.WEBGL,systems:eK,renderPipes:ez,renderPipeAdaptors:ej})}}},78847:(e,t,r)=>{r.d(t,{W:()=>s});var a=r(19953),i=r(74951),n=r(57200);class s{constructor(e){this._syncFunctionHash=Object.create(null),this._adaptor=e,this._systemCheck()}_systemCheck(){if(!(0,a.f)())throw Error("Current environment does not allow unsafe-eval, please use pixi.js/unsafe-eval module to enable support.")}ensureUniformGroup(e){let t=this.getUniformGroupData(e);e.buffer||(e.buffer=new i.h({data:new Float32Array(t.layout.size/4),usage:n.S.UNIFORM|n.S.COPY_DST}))}getUniformGroupData(e){return this._syncFunctionHash[e._signature]||this._initUniformGroup(e)}_initUniformGroup(e){let t=e._signature,r=this._syncFunctionHash[t];if(!r){let a=Object.keys(e.uniformStructures).map(t=>e.uniformStructures[t]),i=this._adaptor.createUboElements(a),n=this._generateUboSync(i.uboElements);r=this._syncFunctionHash[t]={layout:i,syncFunction:n}}return this._syncFunctionHash[t]}_generateUboSync(e){return this._adaptor.generateUboSync(e)}syncUniformGroup(e,t,r){let a=this.getUniformGroupData(e);e.buffer||(e.buffer=new i.h({data:new Float32Array(a.layout.size/4),usage:n.S.UNIFORM|n.S.COPY_DST}));let s=null;return t||(t=e.buffer.data,s=e.buffer.dataInt32),r||(r=0),a.syncFunction(e.uniforms,t,s,r),!0}updateUniformGroup(e){if(e.isStatic&&!e._dirtyId)return!1;e._dirtyId=0;let t=this.syncUniformGroup(e);return e.buffer.update(),t}destroy(){this._syncFunctionHash=null}}},85723:(e,t,r)=>{r.d(t,{E:()=>i});var a=r(63752);function i(e,t,r,i){let n=[` 279 var v = null; 280 var v2 = null; 281 var t = 0; 282 var index = 0; 283 var name = null; 284 var arrayOffset = null; 285 `],s=0;for(let o=0;o<e.length;o++){let l=e[o],u=l.data.name,c=!1,_=0;for(let e=0;e<a.$.length;e++)if(a.$[e].test(l.data)){_=l.offset/4,n.push(`name = "${u}";`,`offset += ${_-s};`,a.$[e][t]||a.$[e].ubo),c=!0;break}if(!c)if(l.data.size>
2851)_=l.offset/4,n.push(r(l,_-s));else{let e=i[l.data.type];_=l.offset/4,n.push(` 286 v = uv.${u}; 287 offset += ${_-s}; 288 ${e}; 289 `)}s=_}return Function("uv","data","dataInt32","offset",n.join("\n"))}},91528:(e,t,r)=>{function a(e,t){return` 290 for (let i = 0; i < ${e*t}; i++) { 291 data[offset + (((i / ${e})|0) * 4) + (i % ${e})] = v[i]; 292 } 293 `}r.d(t,{_:()=>n,g:()=>i});let i={f32:` 294 data[offset] = v;`,i32:` 295 dataInt32[offset] = v;`,"vec2<f32>":` 296 data[offset] = v[0]; 297 data[offset + 1] = v[1];`,"vec3<f32>":` 298 data[offset] = v[0]; 299 data[offset + 1] = v[1]; 300 data[offset + 2] = v[2];`,"vec4<f32>":` 301 data[offset] = v[0]; 302 data[offset + 1] = v[1]; 303 data[offset + 2] = v[2]; 304 data[offset + 3] = v[3];`,"vec2<i32>":` 305 dataInt32[offset] = v[0]; 306 dataInt32[offset + 1] = v[1];`,"vec3<i32>":` 307 dataInt32[offset] = v[0]; 308 dataInt32[offset + 1] = v[1]; 309 dataInt32[offset + 2] = v[2];`,"vec4<i32>":` 310 dataInt32[offset] = v[0]; 311 dataInt32[offset + 1] = v[1]; 312 dataInt32[offset + 2] = v[2]; 313 dataInt32[offset + 3] = v[3];`,"mat2x2<f32>":` 314 data[offset] = v[0]; 315 data[offset + 1] = v[1]; 316 data[offset + 4] = v[2]; 317 data[offset + 5] = v[3];`,"mat3x3<f32>":` 318 data[offset] = v[0]; 319 data[offset + 1] = v[1]; 320 data[offset + 2] = v[2]; 321 data[offset + 4] = v[3]; 322 data[offset + 5] = v[4]; 323 data[offset + 6] = v[5]; 324 data[offset + 8] = v[6]; 325 data[offset + 9] = v[7]; 326 data[offset + 10] = v[8];`,"mat4x4<f32>":` 327 for (let i = 0; i < 16; i++) { 328 data[offset + i] = v[i]; 329 }`,"mat3x2<f32>":a(3,2),"mat4x2<f32>":a(4,2),"mat2x3<f32>":a(2,3),"mat4x3<f32>":a(4,3),"mat2x4<f32>":a(2,4),"mat3x4<f32>":a(3,4)},n={...i,"mat2x2<f32>":` 330 data[offset] = v[0]; 331 data[offset + 1] = v[1]; 332 data[offset + 2] = v[2]; 333 data[offset + 3] = v[3]; 334 `}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.