@omnimedia/omnitool 1.1.0-43 → 1.1.0-44
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.
- package/package.json +17 -18
- package/s/demo/demo.bundle.ts +20 -40
- package/s/demo/routines/export-test.ts +8 -0
- package/s/demo/routines/playback-test.ts +21 -0
- package/s/demo/routines/timeline-setup.ts +24 -0
- package/s/demo/routines/transcode-test.ts +2 -0
- package/s/driver/driver-worker.ts +9 -0
- package/s/driver/driver.test.ts +1 -1
- package/s/driver/driver.ts +8 -22
- package/s/driver/fns/schematic.ts +6 -2
- package/s/driver/fns/work.ts +2 -133
- package/s/driver/parts/compositor.ts +178 -0
- package/s/driver/parts/machina.ts +19 -20
- package/s/index.ts +1 -0
- package/s/timeline/index.ts +1 -1
- package/s/timeline/parts/media.ts +11 -2
- package/s/timeline/parts/{compositor → renderers}/parts/html-tree.ts +2 -2
- package/s/timeline/parts/{compositor → renderers}/parts/tree-builder.ts +4 -2
- package/s/timeline/parts/{compositor → renderers}/playback.ts +4 -13
- package/s/timeline/parts/{compositor → renderers}/samplers/html.ts +19 -5
- package/s/timeline/parts/{compositor → renderers}/samplers/webcodecs.ts +1 -1
- package/s/timeline/parts/resource-pool.ts +8 -4
- package/s/timeline/parts/resource.ts +1 -0
- package/s/timeline/sugar/o.ts +8 -4
- package/s/timeline/sugar/omni-test.ts +14 -14
- package/s/timeline/sugar/omni.ts +2 -2
- package/s/timeline/utils/datafile.ts +14 -4
- package/s/timeline/utils/dummy-data.ts +3 -3
- package/x/demo/WebGLRenderer-Q3OV2JVE.js +2 -0
- package/x/demo/WebGLRenderer-Q3OV2JVE.js.map +7 -0
- package/x/demo/WebGPURenderer-FUFF62QA.js +2 -0
- package/x/demo/WebGPURenderer-FUFF62QA.js.map +7 -0
- package/x/demo/browserAll-PGQYU756.js +2 -0
- package/x/demo/browserAll-PGQYU756.js.map +7 -0
- package/x/demo/chunk-2RBLPWNG.js +393 -0
- package/x/demo/chunk-2RBLPWNG.js.map +7 -0
- package/x/demo/chunk-6DBMQOFE.js +42 -0
- package/x/demo/chunk-6DBMQOFE.js.map +7 -0
- package/x/demo/chunk-LAJHJD2S.js +2 -0
- package/x/demo/chunk-LAJHJD2S.js.map +7 -0
- package/x/demo/chunk-LQU5JKKZ.js +269 -0
- package/x/demo/chunk-LQU5JKKZ.js.map +7 -0
- package/x/demo/chunk-RFNLITDQ.js +327 -0
- package/x/demo/chunk-RFNLITDQ.js.map +7 -0
- package/x/demo/chunk-TBWCKYN2.js +2 -0
- package/x/demo/chunk-TBWCKYN2.js.map +7 -0
- package/x/demo/chunk-TLDBHU4V.js +15 -0
- package/x/demo/chunk-TLDBHU4V.js.map +7 -0
- package/x/demo/chunk-X2GHKWPJ.js +157 -0
- package/x/demo/chunk-X2GHKWPJ.js.map +7 -0
- package/x/demo/demo.bundle.js +18 -27
- package/x/demo/demo.bundle.js.map +1 -1
- package/x/demo/demo.bundle.min.js +2378 -534
- package/x/demo/demo.bundle.min.js.map +4 -4
- package/x/demo/routines/export-test.d.ts +2 -0
- package/x/demo/routines/export-test.js +7 -0
- package/x/demo/routines/export-test.js.map +1 -0
- package/x/demo/routines/playback-test.d.ts +3 -0
- package/x/demo/routines/playback-test.js +17 -0
- package/x/demo/routines/playback-test.js.map +1 -0
- package/x/demo/routines/timeline-setup.d.ts +6 -0
- package/x/demo/routines/timeline-setup.js +13 -0
- package/x/demo/routines/timeline-setup.js.map +1 -0
- package/x/demo/routines/transcode-test.js +2 -0
- package/x/demo/routines/transcode-test.js.map +1 -1
- package/x/demo/webworkerAll-3YNCLHCR.js +2 -0
- package/x/demo/webworkerAll-3YNCLHCR.js.map +7 -0
- package/x/driver/WebGLRenderer-OMRWYQIV.js +2 -0
- package/x/driver/WebGLRenderer-OMRWYQIV.js.map +7 -0
- package/x/driver/WebGPURenderer-KQJB2OJJ.js +2 -0
- package/x/driver/WebGPURenderer-KQJB2OJJ.js.map +7 -0
- package/x/driver/browserAll-YBZEJCN3.js +2 -0
- package/x/driver/browserAll-YBZEJCN3.js.map +7 -0
- package/x/driver/chunk-3L3MB5NY.js +393 -0
- package/x/driver/chunk-3L3MB5NY.js.map +7 -0
- package/x/driver/chunk-42BQ4XKE.js +269 -0
- package/x/driver/chunk-42BQ4XKE.js.map +7 -0
- package/x/driver/chunk-4HAYG3N5.js +327 -0
- package/x/driver/chunk-4HAYG3N5.js.map +7 -0
- package/x/driver/chunk-BFBY7VYB.js +42 -0
- package/x/driver/chunk-BFBY7VYB.js.map +7 -0
- package/x/driver/chunk-KM6O72WE.js +157 -0
- package/x/driver/chunk-KM6O72WE.js.map +7 -0
- package/x/driver/chunk-N6HD4WYJ.js +2 -0
- package/x/driver/chunk-N6HD4WYJ.js.map +7 -0
- package/x/driver/chunk-WCZ2O3UN.js +15 -0
- package/x/driver/chunk-WCZ2O3UN.js.map +7 -0
- package/x/driver/chunk-XWNSF3WJ.js +2 -0
- package/x/driver/chunk-XWNSF3WJ.js.map +7 -0
- package/x/driver/driver-worker.d.ts +1 -0
- package/x/driver/driver-worker.js +6 -0
- package/x/driver/driver-worker.js.map +1 -0
- package/x/driver/driver.d.ts +5 -4
- package/x/driver/driver.js +10 -20
- package/x/driver/driver.js.map +1 -1
- package/x/driver/driver.test.js +1 -1
- package/x/driver/driver.test.js.map +1 -1
- package/x/driver/driver.worker.bundle.min.js +119 -3504
- package/x/driver/driver.worker.bundle.min.js.map +4 -4
- package/x/driver/fns/host.d.ts +1 -2
- package/x/driver/fns/schematic.d.ts +6 -1
- package/x/driver/fns/work.d.ts +2 -4
- package/x/driver/fns/work.js +1 -100
- package/x/driver/fns/work.js.map +1 -1
- package/x/driver/parts/compositor.d.ts +15 -0
- package/x/driver/parts/compositor.js +152 -0
- package/x/driver/parts/compositor.js.map +1 -0
- package/x/driver/parts/machina.d.ts +0 -20
- package/x/driver/parts/machina.js +6 -10
- package/x/driver/parts/machina.js.map +1 -1
- package/x/driver/webworkerAll-BKJQW6P7.js +2 -0
- package/x/driver/webworkerAll-BKJQW6P7.js.map +7 -0
- package/x/features/speech/transcribe/parts/prep-audio.d.ts +1 -1
- package/x/features/speech/transcribe/worker.bundle.min.js +899 -899
- package/x/features/speech/transcribe/worker.bundle.min.js.map +4 -4
- package/x/index.d.ts +1 -0
- package/x/index.html +2 -2
- package/x/index.js +1 -0
- package/x/index.js.map +1 -1
- package/x/timeline/index.d.ts +1 -1
- package/x/timeline/index.js +1 -1
- package/x/timeline/index.js.map +1 -1
- package/x/timeline/parts/filmstrip.d.ts +1 -1
- package/x/timeline/parts/media.d.ts +2 -0
- package/x/timeline/parts/media.js +10 -2
- package/x/timeline/parts/media.js.map +1 -1
- package/x/timeline/parts/renderers/export.js.map +1 -0
- package/x/timeline/parts/{compositor → renderers}/parts/html-tree.js +2 -2
- package/x/timeline/parts/renderers/parts/html-tree.js.map +1 -0
- package/x/timeline/parts/renderers/parts/schedulers.js.map +1 -0
- package/x/timeline/parts/{compositor → renderers}/parts/tree-builder.js +4 -2
- package/x/timeline/parts/renderers/parts/tree-builder.js.map +1 -0
- package/x/timeline/parts/renderers/parts/webcodecs-tree.js.map +1 -0
- package/x/timeline/parts/{compositor → renderers}/playback.d.ts +2 -4
- package/x/timeline/parts/{compositor → renderers}/playback.js +5 -14
- package/x/timeline/parts/renderers/playback.js.map +1 -0
- package/x/timeline/parts/{compositor → renderers}/samplers/html.js +14 -5
- package/x/timeline/parts/renderers/samplers/html.js.map +1 -0
- package/x/timeline/parts/{compositor → renderers}/samplers/webcodecs.js +1 -1
- package/x/timeline/parts/renderers/samplers/webcodecs.js.map +1 -0
- package/x/timeline/parts/resource-pool.d.ts +2 -0
- package/x/timeline/parts/resource-pool.js +7 -4
- package/x/timeline/parts/resource-pool.js.map +1 -1
- package/x/timeline/parts/resource.d.ts +1 -0
- package/x/timeline/sugar/o.d.ts +4 -1
- package/x/timeline/sugar/o.js +4 -4
- package/x/timeline/sugar/o.js.map +1 -1
- package/x/timeline/sugar/omni-test.js +14 -7
- package/x/timeline/sugar/omni-test.js.map +1 -1
- package/x/timeline/sugar/omni.d.ts +1 -2
- package/x/timeline/sugar/omni.js +2 -2
- package/x/timeline/sugar/omni.js.map +1 -1
- package/x/timeline/utils/datafile.d.ts +4 -3
- package/x/timeline/utils/datafile.js +16 -5
- package/x/timeline/utils/datafile.js.map +1 -1
- package/x/timeline/utils/dummy-data.d.ts +1 -2
- package/x/timeline/utils/dummy-data.js +4 -2
- package/x/timeline/utils/dummy-data.js.map +1 -1
- package/x/timeline/parts/compositor/export.js.map +0 -1
- package/x/timeline/parts/compositor/parts/html-tree.js.map +0 -1
- package/x/timeline/parts/compositor/parts/schedulers.js.map +0 -1
- package/x/timeline/parts/compositor/parts/tree-builder.js.map +0 -1
- package/x/timeline/parts/compositor/parts/webcodecs-tree.js.map +0 -1
- package/x/timeline/parts/compositor/playback.js.map +0 -1
- package/x/timeline/parts/compositor/samplers/html.js.map +0 -1
- package/x/timeline/parts/compositor/samplers/webcodecs.js.map +0 -1
- /package/s/timeline/parts/{compositor → renderers}/export.ts +0 -0
- /package/s/timeline/parts/{compositor → renderers}/parts/schedulers.ts +0 -0
- /package/s/timeline/parts/{compositor → renderers}/parts/webcodecs-tree.ts +0 -0
- /package/x/timeline/parts/{compositor → renderers}/export.d.ts +0 -0
- /package/x/timeline/parts/{compositor → renderers}/export.js +0 -0
- /package/x/timeline/parts/{compositor → renderers}/parts/html-tree.d.ts +0 -0
- /package/x/timeline/parts/{compositor → renderers}/parts/schedulers.d.ts +0 -0
- /package/x/timeline/parts/{compositor → renderers}/parts/schedulers.js +0 -0
- /package/x/timeline/parts/{compositor → renderers}/parts/tree-builder.d.ts +0 -0
- /package/x/timeline/parts/{compositor → renderers}/parts/webcodecs-tree.d.ts +0 -0
- /package/x/timeline/parts/{compositor → renderers}/parts/webcodecs-tree.js +0 -0
- /package/x/timeline/parts/{compositor → renderers}/samplers/html.d.ts +0 -0
- /package/x/timeline/parts/{compositor → renderers}/samplers/webcodecs.d.ts +0 -0
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
import{a as $,b as Ae,d as Ne,e as ye,f as Ie,g as Ce,h as z,i as De,j as Ge,l as Y,m as Ue,n as Fe,o as Oe}from"./chunk-RFNLITDQ.js";import{$ as Se,Aa as K,F as w,I as p,S as E,V,Z as R,aa as k,ca as xe,d as m,e as T,ea as ge,fa as X,i as H,ia as W,ka as Te,ma as Re,o as d,oa as j,pa as S,qa as ve,ra as Be,sa as x,t as ae,va as g}from"./chunk-LQU5JKKZ.js";var v=class{contextChange(e){let r=new S({uColor:{value:new Float32Array([1,1,1,1]),type:"vec4<f32>"},uTransformMatrix:{value:new H,type:"mat3x3<f32>"},uRound:{value:0,type:"f32"}}),s=e.limits.maxBatchableTextures,i=W({name:"graphics",bits:[Te,Re(s),K,j]});this.shader=new x({glProgram:i,resources:{localUniforms:r,batchSamplers:ve(s)}})}execute(e,r){let s=r.context,i=s.customShader||this.shader,n=e.renderer,o=n.graphicsContext,{batcher:a,instructions:c}=o.getContextRenderData(s);i.groups[0]=n.globalUniforms.bindGroup,n.state.set(e.state),n.shader.bind(i),n.geometry.bind(a.geometry,i.glProgram);let u=c.instructions;for(let f=0;f<c.instructionSize;f++){let h=u[f];if(h.size){for(let l=0;l<h.textures.count;l++)n.texture.bind(h.textures.textures[l],l);n.geometry.draw(h.topology,h.size,h.start)}}}destroy(){this.shader.destroy(!0),this.shader=null}};v.extension={type:[m.WebGLPipesAdaptor],name:"graphics"};var B=class{init(){let e=W({name:"mesh",bits:[K,Ne,j]});this._shader=new x({glProgram:e,resources:{uTexture:p.EMPTY.source,textureUniforms:{uTextureMatrix:{type:"mat3x3<f32>",value:new H}}}})}execute(e,r){let s=e.renderer,i=r._shader;if(i){if(!i.glProgram){d("Mesh shader has no glProgram",r.shader);return}}else{i=this._shader;let n=r.texture,o=n.source;i.resources.uTexture=o,i.resources.uSampler=o.style,i.resources.textureUniforms.uniforms.uTextureMatrix=n.textureMatrix.mapCoord}i.groups[100]=s.globalUniforms.bindGroup,i.groups[101]=e.localUniformsBindGroup,s.encoder.draw({geometry:r._geometry,shader:i,state:r.state})}destroy(){this._shader.destroy(!0),this._shader=null}};B.extension={type:[m.WebGLPipesAdaptor],name:"mesh"};var A=class{constructor(){this._tempState=g.for2d(),this._didUploadHash={}}init(e){e.renderer.runners.contextChange.add(this)}contextChange(){this._didUploadHash={}}start(e,r,s){let i=e.renderer,n=this._didUploadHash[s.uid];i.shader.bind(s,n),n||(this._didUploadHash[s.uid]=!0),i.shader.updateUniformGroup(i.globalUniforms.uniformGroup),i.geometry.bind(r,s.glProgram)}execute(e,r){let s=e.renderer;this._tempState.blendMode=r.blendMode,s.state.set(this._tempState);let i=r.textures.textures;for(let n=0;n<r.textures.count;n++)s.texture.bind(i[n],n);s.geometry.draw(r.topology,r.size,r.start)}};A.extension={type:[m.WebGLPipesAdaptor],name:"batch"};var N=(t=>(t[t.ELEMENT_ARRAY_BUFFER=34963]="ELEMENT_ARRAY_BUFFER",t[t.ARRAY_BUFFER=34962]="ARRAY_BUFFER",t[t.UNIFORM_BUFFER=35345]="UNIFORM_BUFFER",t))(N||{});var q=class{constructor(e,r){this._lastBindBaseLocation=-1,this._lastBindCallId=-1,this.buffer=e||null,this.updateID=-1,this.byteLength=-1,this.type=r}};var y=class{constructor(e){this._gpuBuffers=Object.create(null),this._boundBufferBases=Object.create(null),this._minBaseLocation=0,this._nextBindBaseIndex=this._minBaseLocation,this._bindCallId=0,this._renderer=e,this._renderer.renderableGC.addManagedHash(this,"_gpuBuffers")}destroy(){this.destroyAll(),this._renderer=null,this._gl=null,this._gpuBuffers={},this._boundBufferBases={}}contextChange(){this._gl=this._renderer.gl,this._gpuBuffers=Object.create(null),this._maxBindings=this._renderer.limits.maxUniformBindings}getGlBuffer(e){return this._gpuBuffers[e.uid]||this.createGLBuffer(e)}bind(e){let{_gl:r}=this,s=this.getGlBuffer(e);r.bindBuffer(s.type,s.buffer)}bindBufferBase(e,r){let{_gl:s}=this;this._boundBufferBases[r]!==e&&(this._boundBufferBases[r]=e,e._lastBindBaseLocation=r,s.bindBufferBase(s.UNIFORM_BUFFER,r,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 r=this.getLastBindBaseLocation(e);if(r>=this._minBaseLocation)return e._lastBindCallId=this._bindCallId,r;let s=0,i=this._nextBindBaseIndex;for(;s<2;){i>=this._maxBindings&&(i=this._minBaseLocation,s++);let n=this._boundBufferBases[i];if(n&&n._lastBindCallId===this._bindCallId){i++;continue}break}return r=i,this._nextBindBaseIndex=i+1,s>=2?-1:(e._lastBindCallId=this._bindCallId,this._boundBufferBases[r]=null,r)}getLastBindBaseLocation(e){let r=e._lastBindBaseLocation;return this._boundBufferBases[r]===e?r:-1}bindBufferRange(e,r,s,i){let{_gl:n}=this;s||(s=0),r||(r=0),this._boundBufferBases[r]=null,n.bindBufferRange(n.UNIFORM_BUFFER,r||0,e.buffer,s*256,i||256)}updateBuffer(e){let{_gl:r}=this,s=this.getGlBuffer(e);if(e._updateID===s.updateID)return s;s.updateID=e._updateID,r.bindBuffer(s.type,s.buffer);let i=e.data,n=e.descriptor.usage&k.STATIC?r.STATIC_DRAW:r.DYNAMIC_DRAW;return i?s.byteLength>=i.byteLength?r.bufferSubData(s.type,0,i,0,e._updateSize/i.BYTES_PER_ELEMENT):(s.byteLength=i.byteLength,r.bufferData(s.type,i,n)):(s.byteLength=e.descriptor.size,r.bufferData(s.type,s.byteLength,n)),s}destroyAll(){let e=this._gl;for(let r in this._gpuBuffers)this._gpuBuffers[r]&&e.deleteBuffer(this._gpuBuffers[r].buffer);this._gpuBuffers=Object.create(null)}onBufferDestroy(e,r){if(!this._gpuBuffers[e.uid])return;let s=this._gpuBuffers[e.uid],i=this._gl;r||i.deleteBuffer(s.buffer),e.off("destroy",this.onBufferDestroy,this),this._gpuBuffers[e.uid]=null}createGLBuffer(e){let{_gl:r}=this,s=N.ARRAY_BUFFER;e.descriptor.usage&k.INDEX?s=N.ELEMENT_ARRAY_BUFFER:e.descriptor.usage&k.UNIFORM&&(s=N.UNIFORM_BUFFER);let i=new q(r.createBuffer(),s);return this._gpuBuffers[e.uid]=i,e.on("destroy",this.onBufferDestroy,this),i}resetState(){this._boundBufferBases=Object.create(null)}};y.extension={type:[m.WebGLSystem],name:"buffer"};var ce=class Pe{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(e){e={...Pe.defaultOptions,...e};let r=this.multiView=e.multiView;if(e.context&&r&&(d("Renderer created with both a context and multiview enabled. Disabling multiView as both cannot work together."),r=!1),r?this.canvas=E.get().createCanvas(this._renderer.canvas.width,this._renderer.canvas.height):this.canvas=this._renderer.view.canvas,e.context)this.initFromContext(e.context);else{let s=this._renderer.background.alpha<1,i=e.premultipliedAlpha??!0,n=e.antialias&&!this._renderer.backBuffer.useBackBuffer;this.createContext(e.preferWebGLVersion,{alpha:s,premultipliedAlpha:i,antialias:n,stencil:!0,preserveDrawingBuffer:e.preserveDrawingBuffer,powerPreference:e.powerPreference??"default"})}}ensureCanvasSize(e){if(!this.multiView){e!==this.canvas&&d("multiView is disabled, but targetCanvas is not the main canvas");return}let{canvas:r}=this;(r.width<e.width||r.height<e.height)&&(r.width=Math.max(e.width,e.width),r.height=Math.max(e.height,e.height))}initFromContext(e){this.gl=e,this.webGLVersion=e instanceof E.get().getWebGLRenderingContext()?1:2,this.getExtensions(),this.validateContext(e),this._renderer.runners.contextChange.emit(e);let r=this._renderer.view.canvas;r.addEventListener("webglcontextlost",this.handleContextLost,!1),r.addEventListener("webglcontextrestored",this.handleContextRestored,!1)}createContext(e,r){let s,i=this.canvas;if(e===2&&(s=i.getContext("webgl2",r)),!s&&(s=i.getContext("webgl",r),!s))throw new Error("This browser does not support WebGL. Try using the canvas renderer");this.gl=s,this.initFromContext(this.gl)}getExtensions(){let{gl:e}=this,r={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(this.webGLVersion===1)this.extensions={...r,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={...r,colorBufferFloat:e.getExtension("EXT_color_buffer_float")};let s=e.getExtension("WEBGL_provoking_vertex");s&&s.provokingVertexWEBGL(s.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 r=e.getContextAttributes();r&&!r.stencil&&d("Provided WebGL context does not have a stencil buffer, masks may not render correctly");let s=this.supports,i=this.webGLVersion===2,n=this.extensions;s.uint32Indices=i||!!n.uint32ElementIndex,s.uniformBufferObject=i,s.vertexArrayObject=i||!!n.vertexArrayObject,s.srgbTextures=i||!!n.srgb,s.nonPowOf2wrapping=i,s.nonPowOf2mipmaps=i,s.msaa=i,s.uint32Indices||d("Provided WebGL context does not support 32 index buffer, large scenes may not render correctly")}};ce.extension={type:[m.WebGLSystem],name:"context"};ce.defaultOptions={context:null,premultipliedAlpha:!0,preserveDrawingBuffer:!1,powerPreference:void 0,preferWebGLVersion:2,multiView:!1};var Me=ce;var Z=(t=>(t[t.RGBA=6408]="RGBA",t[t.RGB=6407]="RGB",t[t.RG=33319]="RG",t[t.RED=6403]="RED",t[t.RGBA_INTEGER=36249]="RGBA_INTEGER",t[t.RGB_INTEGER=36248]="RGB_INTEGER",t[t.RG_INTEGER=33320]="RG_INTEGER",t[t.RED_INTEGER=36244]="RED_INTEGER",t[t.ALPHA=6406]="ALPHA",t[t.LUMINANCE=6409]="LUMINANCE",t[t.LUMINANCE_ALPHA=6410]="LUMINANCE_ALPHA",t[t.DEPTH_COMPONENT=6402]="DEPTH_COMPONENT",t[t.DEPTH_STENCIL=34041]="DEPTH_STENCIL",t))(Z||{}),ue=(t=>(t[t.TEXTURE_2D=3553]="TEXTURE_2D",t[t.TEXTURE_CUBE_MAP=34067]="TEXTURE_CUBE_MAP",t[t.TEXTURE_2D_ARRAY=35866]="TEXTURE_2D_ARRAY",t[t.TEXTURE_CUBE_MAP_POSITIVE_X=34069]="TEXTURE_CUBE_MAP_POSITIVE_X",t[t.TEXTURE_CUBE_MAP_NEGATIVE_X=34070]="TEXTURE_CUBE_MAP_NEGATIVE_X",t[t.TEXTURE_CUBE_MAP_POSITIVE_Y=34071]="TEXTURE_CUBE_MAP_POSITIVE_Y",t[t.TEXTURE_CUBE_MAP_NEGATIVE_Y=34072]="TEXTURE_CUBE_MAP_NEGATIVE_Y",t[t.TEXTURE_CUBE_MAP_POSITIVE_Z=34073]="TEXTURE_CUBE_MAP_POSITIVE_Z",t[t.TEXTURE_CUBE_MAP_NEGATIVE_Z=34074]="TEXTURE_CUBE_MAP_NEGATIVE_Z",t))(ue||{});var _=(t=>(t[t.UNSIGNED_BYTE=5121]="UNSIGNED_BYTE",t[t.UNSIGNED_SHORT=5123]="UNSIGNED_SHORT",t[t.UNSIGNED_SHORT_5_6_5=33635]="UNSIGNED_SHORT_5_6_5",t[t.UNSIGNED_SHORT_4_4_4_4=32819]="UNSIGNED_SHORT_4_4_4_4",t[t.UNSIGNED_SHORT_5_5_5_1=32820]="UNSIGNED_SHORT_5_5_5_1",t[t.UNSIGNED_INT=5125]="UNSIGNED_INT",t[t.UNSIGNED_INT_10F_11F_11F_REV=35899]="UNSIGNED_INT_10F_11F_11F_REV",t[t.UNSIGNED_INT_2_10_10_10_REV=33640]="UNSIGNED_INT_2_10_10_10_REV",t[t.UNSIGNED_INT_24_8=34042]="UNSIGNED_INT_24_8",t[t.UNSIGNED_INT_5_9_9_9_REV=35902]="UNSIGNED_INT_5_9_9_9_REV",t[t.BYTE=5120]="BYTE",t[t.SHORT=5122]="SHORT",t[t.INT=5124]="INT",t[t.FLOAT=5126]="FLOAT",t[t.FLOAT_32_UNSIGNED_INT_24_8_REV=36269]="FLOAT_32_UNSIGNED_INT_24_8_REV",t[t.HALF_FLOAT=36193]="HALF_FLOAT",t))(_||{});var Le={uint8x2:_.UNSIGNED_BYTE,uint8x4:_.UNSIGNED_BYTE,sint8x2:_.BYTE,sint8x4:_.BYTE,unorm8x2:_.UNSIGNED_BYTE,unorm8x4:_.UNSIGNED_BYTE,snorm8x2:_.BYTE,snorm8x4:_.BYTE,uint16x2:_.UNSIGNED_SHORT,uint16x4:_.UNSIGNED_SHORT,sint16x2:_.SHORT,sint16x4:_.SHORT,unorm16x2:_.UNSIGNED_SHORT,unorm16x4:_.UNSIGNED_SHORT,snorm16x2:_.SHORT,snorm16x4:_.SHORT,float16x2:_.HALF_FLOAT,float16x4:_.HALF_FLOAT,float32:_.FLOAT,float32x2:_.FLOAT,float32x3:_.FLOAT,float32x4:_.FLOAT,uint32:_.UNSIGNED_INT,uint32x2:_.UNSIGNED_INT,uint32x3:_.UNSIGNED_INT,uint32x4:_.UNSIGNED_INT,sint32:_.INT,sint32x2:_.INT,sint32x3:_.INT,sint32x4:_.INT};function He(t){return Le[t]??Le.float32}var St={"point-list":0,"line-list":1,"line-strip":3,"triangle-list":4,"triangle-strip":5},I=class{constructor(e){this._geometryVaoHash=Object.create(null),this._renderer=e,this._activeGeometry=null,this._activeVao=null,this.hasVao=!0,this.hasInstance=!0,this._renderer.renderableGC.addManagedHash(this,"_geometryVaoHash")}contextChange(){let e=this.gl=this._renderer.gl;if(!this._renderer.context.supports.vertexArrayObject)throw new Error("[PixiJS] Vertex Array Objects are not supported on this device");let r=this._renderer.context.extensions.vertexArrayObject;r&&(e.createVertexArray=()=>r.createVertexArrayOES(),e.bindVertexArray=i=>r.bindVertexArrayOES(i),e.deleteVertexArray=i=>r.deleteVertexArrayOES(i));let s=this._renderer.context.extensions.vertexAttribDivisorANGLE;s&&(e.drawArraysInstanced=(i,n,o,a)=>{s.drawArraysInstancedANGLE(i,n,o,a)},e.drawElementsInstanced=(i,n,o,a,c)=>{s.drawElementsInstancedANGLE(i,n,o,a,c)},e.vertexAttribDivisor=(i,n)=>s.vertexAttribDivisorANGLE(i,n)),this._activeGeometry=null,this._activeVao=null,this._geometryVaoHash=Object.create(null)}bind(e,r){let s=this.gl;this._activeGeometry=e;let i=this.getVao(e,r);this._activeVao!==i&&(this._activeVao=i,s.bindVertexArray(i)),this.updateBuffers()}resetState(){this.unbind()}updateBuffers(){let e=this._activeGeometry,r=this._renderer.buffer;for(let s=0;s<e.buffers.length;s++){let i=e.buffers[s];r.updateBuffer(i)}}checkCompatibility(e,r){let s=e.attributes,i=r._attributeData;for(let n in i)if(!s[n])throw new Error(`shader and geometry incompatible, geometry missing the "${n}" attribute`)}getSignature(e,r){let s=e.attributes,i=r._attributeData,n=["g",e.uid];for(let o in s)i[o]&&n.push(o,i[o].location);return n.join("-")}getVao(e,r){return this._geometryVaoHash[e.uid]?.[r._key]||this.initGeometryVao(e,r)}initGeometryVao(e,r,s=!0){let i=this._renderer.gl,n=this._renderer.buffer;this._renderer.shader._getProgramData(r),this.checkCompatibility(e,r);let o=this.getSignature(e,r);this._geometryVaoHash[e.uid]||(this._geometryVaoHash[e.uid]=Object.create(null),e.on("destroy",this.onGeometryDestroy,this));let a=this._geometryVaoHash[e.uid],c=a[o];if(c)return a[r._key]=c,c;Ue(e,r._attributeData);let u=e.buffers;c=i.createVertexArray(),i.bindVertexArray(c);for(let f=0;f<u.length;f++){let h=u[f];n.bind(h)}return this.activateVao(e,r),a[r._key]=c,a[o]=c,i.bindVertexArray(null),c}onGeometryDestroy(e,r){let s=this._geometryVaoHash[e.uid],i=this.gl;if(s){if(r)for(let n in s)this._activeVao!==s[n]&&this.unbind(),i.deleteVertexArray(s[n]);this._geometryVaoHash[e.uid]=null}}destroyAll(e=!1){let r=this.gl;for(let s in this._geometryVaoHash){if(e)for(let i in this._geometryVaoHash[s]){let n=this._geometryVaoHash[s];this._activeVao!==n&&this.unbind(),r.deleteVertexArray(n[i])}this._geometryVaoHash[s]=null}}activateVao(e,r){let s=this._renderer.gl,i=this._renderer.buffer,n=e.attributes;e.indexBuffer&&i.bind(e.indexBuffer);let o=null;for(let a in n){let c=n[a],u=c.buffer,f=i.getGlBuffer(u),h=r._attributeData[a];if(h){o!==f&&(i.bind(u),o=f);let l=h.location;s.enableVertexAttribArray(l);let b=X(c.format),be=He(c.format);if(h.format?.substring(1,4)==="int"?s.vertexAttribIPointer(l,b.size,be,c.stride,c.offset):s.vertexAttribPointer(l,b.size,be,b.normalised,c.stride,c.offset),c.instance)if(this.hasInstance){let bt=c.divisor??1;s.vertexAttribDivisor(l,bt)}else throw new Error("geometry error, GPU Instancing is not supported on this device")}}}draw(e,r,s,i){let{gl:n}=this._renderer,o=this._activeGeometry,a=St[e||o.topology];if(i??(i=o.instanceCount),o.indexBuffer){let c=o.indexBuffer.data.BYTES_PER_ELEMENT,u=c===2?n.UNSIGNED_SHORT:n.UNSIGNED_INT;i!==1?n.drawElementsInstanced(a,r||o.indexBuffer.data.length,u,(s||0)*c,i):n.drawElements(a,r||o.indexBuffer.data.length,u,(s||0)*c)}else i!==1?n.drawArraysInstanced(a,s||0,r||o.getSize(),i):n.drawArrays(a,s||0,r||o.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,this._geometryVaoHash={}}};I.extension={type:[m.WebGLSystem],name:"geometry"};var xt=new xe({attributes:{aPosition:[-1,-1,3,-1,-1,3]}}),fe=class we{constructor(e){this.useBackBuffer=!1,this._useBackBufferThisRender=!1,this._renderer=e}init(e={}){let{useBackBuffer:r,antialias:s}={...we.defaultOptions,...e};this.useBackBuffer=r,this._antialias=s,this._renderer.context.supports.msaa||(d("antialiasing, is not supported on when using the back buffer"),this._antialias=!1),this._state=g.for2d();let i=new ge({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 x({glProgram:i,resources:{uTexture:p.WHITE.source}})}renderStart(e){let r=this._renderer.renderTarget.getRenderTarget(e.target);if(this._useBackBufferThisRender=this.useBackBuffer&&!!r.isRoot,this._useBackBufferThisRender){let s=this._renderer.renderTarget.getRenderTarget(e.target);this._targetTexture=s.colorTexture,e.target=this._getBackBufferTexture(s.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:xt,shader:this._bigTriangleShader,state:this._state}))}_getBackBufferTexture(e){return this._backBufferTexture=this._backBufferTexture||new p({source:new w({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)}};fe.extension={type:[m.WebGLSystem],name:"backBuffer",priority:1};fe.defaultOptions={useBackBuffer:!1};var Ve=fe;var C=class{constructor(e){this._colorMaskCache=15,this._renderer=e}setMask(e){this._colorMaskCache!==e&&(this._colorMaskCache=e,this._renderer.gl.colorMask(!!(e&8),!!(e&4),!!(e&2),!!(e&1)))}};C.extension={type:[m.WebGLSystem],name:"colorMask"};var D=class{constructor(e){this.commandFinished=Promise.resolve(),this._renderer=e}setGeometry(e,r){this._renderer.geometry.bind(e,r.glProgram)}finishRenderPass(){}draw(e){let r=this._renderer,{geometry:s,shader:i,state:n,skipSync:o,topology:a,size:c,start:u,instanceCount:f}=e;r.shader.bind(i,o),r.geometry.bind(s,r.shader._activeProgram),n&&r.state.set(n),r.geometry.draw(a,c,u,f??s.instanceCount)}destroy(){this._renderer=null}};D.extension={type:[m.WebGLSystem],name:"encoder"};var G=class{constructor(e){this._renderer=e}contextChange(){let e=this._renderer.gl;this.maxTextures=e.getParameter(e.MAX_TEXTURE_IMAGE_UNITS),this.maxBatchableTextures=Se(this.maxTextures,e);let r=this._renderer.context.webGLVersion===2;this.maxUniformBindings=r?e.getParameter(e.MAX_UNIFORM_BUFFER_BINDINGS):0}destroy(){}};G.extension={type:[m.WebGLSystem],name:"limits"};var U=class{constructor(e){this._stencilCache={enabled:!1,stencilReference:0,stencilMode:R.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 r=this._renderTargetStencilState[e.uid];r||(r=this._renderTargetStencilState[e.uid]={stencilMode:R.DISABLED,stencilReference:0}),this.setStencilMode(r.stencilMode,r.stencilReference)}resetState(){this._stencilCache.enabled=!1,this._stencilCache.stencilMode=R.NONE,this._stencilCache.stencilReference=0}setStencilMode(e,r){let s=this._renderTargetStencilState[this._activeRenderTarget.uid],i=this._gl,n=Fe[e],o=this._stencilCache;if(s.stencilMode=e,s.stencilReference=r,e===R.DISABLED){this._stencilCache.enabled&&(this._stencilCache.enabled=!1,i.disable(i.STENCIL_TEST));return}this._stencilCache.enabled||(this._stencilCache.enabled=!0,i.enable(i.STENCIL_TEST)),(e!==o.stencilMode||o.stencilReference!==r)&&(o.stencilMode=e,o.stencilReference=r,i.stencilFunc(this._comparisonFuncMapping[n.stencilBack.compare],r,255),i.stencilOp(i.KEEP,i.KEEP,this._stencilOpsMapping[n.stencilBack.passOp]))}};U.extension={type:[m.WebGLSystem],name:"stencil"};var me={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 ke(t){let e=t.map(n=>({data:n,offset:0,size:0})),r=16,s=0,i=0;for(let n=0;n<e.length;n++){let o=e[n];if(s=me[o.data.type],!s)throw new Error(`Unknown type ${o.data.type}`);o.data.size>1&&(s=Math.max(s,r)*o.data.size);let a=s===12?16:s;o.size=s;let c=i%r;c>0&&r-c<a?i+=(r-c)%16:i+=(s-c%s)%s,o.offset=i,i+=s}return i=Math.ceil(i/16)*16,{uboElements:e,size:i}}function Xe(t,e){let r=Math.max(me[t.data.type]/16,1),s=t.data.value.length/t.data.size,i=(4-s%4)%4,n=t.data.type.indexOf("i32")>=0?"dataInt32":"data";return`
|
|
21
|
+
v = uv.${t.data.name};
|
|
22
|
+
offset += ${e};
|
|
23
|
+
|
|
24
|
+
arrayOffset = offset;
|
|
25
|
+
|
|
26
|
+
t = 0;
|
|
27
|
+
|
|
28
|
+
for(var i=0; i < ${t.data.size*r}; i++)
|
|
29
|
+
{
|
|
30
|
+
for(var j = 0; j < ${s}; j++)
|
|
31
|
+
{
|
|
32
|
+
${n}[arrayOffset++] = v[t++];
|
|
33
|
+
}
|
|
34
|
+
${i!==0?`arrayOffset += ${i};`:""}
|
|
35
|
+
}
|
|
36
|
+
`}function We(t){return De(t,"uboStd40",Xe,Ge)}var F=class extends Ce{constructor(){super({createUboElements:ke,generateUboSync:We})}};F.extension={type:[m.WebGLSystem],name:"ubo"};var Q=class{constructor(){this.width=-1,this.height=-1,this.msaa=!1,this.msaaRenderBuffer=[]}};var J=class{constructor(){this._clearColorCache=[0,0,0,0],this._viewPortCache=new ae}init(e,r){this._renderer=e,this._renderTargetSystem=r,e.runners.contextChange.add(this)}contextChange(){this._clearColorCache=[0,0,0,0],this._viewPortCache=new ae}copyToTexture(e,r,s,i,n){let o=this._renderTargetSystem,a=this._renderer,c=o.getGpuRenderTarget(e),u=a.gl;return this.finishRenderPass(e),u.bindFramebuffer(u.FRAMEBUFFER,c.resolveTargetFramebuffer),a.texture.bind(r,0),u.copyTexSubImage2D(u.TEXTURE_2D,0,n.x,n.y,s.x,s.y,i.width,i.height),r}startRenderPass(e,r=!0,s,i){let n=this._renderTargetSystem,o=e.colorTexture,a=n.getGpuRenderTarget(e),c=i.y;e.isRoot&&(c=o.pixelHeight-i.height),e.colorTextures.forEach(h=>{this._renderer.texture.unbind(h)});let u=this._renderer.gl;u.bindFramebuffer(u.FRAMEBUFFER,a.framebuffer);let f=this._viewPortCache;(f.x!==i.x||f.y!==c||f.width!==i.width||f.height!==i.height)&&(f.x=i.x,f.y=c,f.width=i.width,f.height=i.height,u.viewport(i.x,c,i.width,i.height)),!a.depthStencilRenderBuffer&&(e.stencil||e.depth)&&this._initStencil(a),this.clear(e,r,s)}finishRenderPass(e){let s=this._renderTargetSystem.getGpuRenderTarget(e);if(!s.msaa)return;let i=this._renderer.gl;i.bindFramebuffer(i.FRAMEBUFFER,s.resolveTargetFramebuffer),i.bindFramebuffer(i.READ_FRAMEBUFFER,s.framebuffer),i.blitFramebuffer(0,0,s.width,s.height,0,0,s.width,s.height,i.COLOR_BUFFER_BIT,i.NEAREST),i.bindFramebuffer(i.FRAMEBUFFER,s.framebuffer)}initGpuRenderTarget(e){let s=this._renderer.gl,i=new Q;return e.colorTexture instanceof V?(this._renderer.context.ensureCanvasSize(e.colorTexture.resource),i.framebuffer=null,i):(this._initColor(e,i),s.bindFramebuffer(s.FRAMEBUFFER,null),i)}destroyGpuRenderTarget(e){let r=this._renderer.gl;e.framebuffer&&(r.deleteFramebuffer(e.framebuffer),e.framebuffer=null),e.resolveTargetFramebuffer&&(r.deleteFramebuffer(e.resolveTargetFramebuffer),e.resolveTargetFramebuffer=null),e.depthStencilRenderBuffer&&(r.deleteRenderbuffer(e.depthStencilRenderBuffer),e.depthStencilRenderBuffer=null),e.msaaRenderBuffer.forEach(s=>{r.deleteRenderbuffer(s)}),e.msaaRenderBuffer=null}clear(e,r,s){if(!r)return;let i=this._renderTargetSystem;typeof r=="boolean"&&(r=r?$.ALL:$.NONE);let n=this._renderer.gl;if(r&$.COLOR){s??(s=i.defaultClearColor);let o=this._clearColorCache,a=s;(o[0]!==a[0]||o[1]!==a[1]||o[2]!==a[2]||o[3]!==a[3])&&(o[0]=a[0],o[1]=a[1],o[2]=a[2],o[3]=a[3],n.clearColor(a[0],a[1],a[2],a[3]))}n.clear(r)}resizeGpuRenderTarget(e){if(e.isRoot)return;let s=this._renderTargetSystem.getGpuRenderTarget(e);this._resizeColor(e,s),(e.stencil||e.depth)&&this._resizeStencil(s)}_initColor(e,r){let s=this._renderer,i=s.gl,n=i.createFramebuffer();if(r.resolveTargetFramebuffer=n,i.bindFramebuffer(i.FRAMEBUFFER,n),r.width=e.colorTexture.source.pixelWidth,r.height=e.colorTexture.source.pixelHeight,e.colorTextures.forEach((o,a)=>{let c=o.source;c.antialias&&(s.context.supports.msaa?r.msaa=!0:d("[RenderTexture] Antialiasing on textures is not supported in WebGL1")),s.texture.bindSource(c,0);let f=s.texture.getGlSource(c).texture;i.framebufferTexture2D(i.FRAMEBUFFER,i.COLOR_ATTACHMENT0+a,3553,f,0)}),r.msaa){let o=i.createFramebuffer();r.framebuffer=o,i.bindFramebuffer(i.FRAMEBUFFER,o),e.colorTextures.forEach((a,c)=>{let u=i.createRenderbuffer();r.msaaRenderBuffer[c]=u})}else r.framebuffer=n;this._resizeColor(e,r)}_resizeColor(e,r){let s=e.colorTexture.source;if(r.width=s.pixelWidth,r.height=s.pixelHeight,e.colorTextures.forEach((i,n)=>{n!==0&&i.source.resize(s.width,s.height,s._resolution)}),r.msaa){let i=this._renderer,n=i.gl,o=r.framebuffer;n.bindFramebuffer(n.FRAMEBUFFER,o),e.colorTextures.forEach((a,c)=>{let u=a.source;i.texture.bindSource(u,0);let h=i.texture.getGlSource(u).internalFormat,l=r.msaaRenderBuffer[c];n.bindRenderbuffer(n.RENDERBUFFER,l),n.renderbufferStorageMultisample(n.RENDERBUFFER,4,h,u.pixelWidth,u.pixelHeight),n.framebufferRenderbuffer(n.FRAMEBUFFER,n.COLOR_ATTACHMENT0+c,n.RENDERBUFFER,l)})}}_initStencil(e){if(e.framebuffer===null)return;let r=this._renderer.gl,s=r.createRenderbuffer();e.depthStencilRenderBuffer=s,r.bindRenderbuffer(r.RENDERBUFFER,s),r.framebufferRenderbuffer(r.FRAMEBUFFER,r.DEPTH_STENCIL_ATTACHMENT,r.RENDERBUFFER,s),this._resizeStencil(e)}_resizeStencil(e){let r=this._renderer.gl;r.bindRenderbuffer(r.RENDERBUFFER,e.depthStencilRenderBuffer),e.msaa?r.renderbufferStorageMultisample(r.RENDERBUFFER,4,r.DEPTH24_STENCIL8,e.width,e.height):r.renderbufferStorage(r.RENDERBUFFER,this._renderer.context.webGLVersion===2?r.DEPTH24_STENCIL8:r.DEPTH_STENCIL,e.width,e.height)}prerender(e){let r=e.colorTexture.resource;this._renderer.context.multiView&&V.test(r)&&this._renderer.context.ensureCanvasSize(r)}postrender(e){if(this._renderer.context.multiView&&V.test(e.colorTexture.resource)){let r=this._renderer.context.canvas,s=e.colorTexture;s.context2D.drawImage(r,0,s.pixelHeight-r.height)}}};var O=class extends Oe{constructor(e){super(e),this.adaptor=new J,this.adaptor.init(e,this)}};O.extension={type:[m.WebGLSystem],name:"renderTarget"};function je(t,e){let r=[],s=[`
|
|
37
|
+
var g = s.groups;
|
|
38
|
+
var sS = r.shader;
|
|
39
|
+
var p = s.glProgram;
|
|
40
|
+
var ugS = r.uniformGroup;
|
|
41
|
+
var resources;
|
|
42
|
+
`],i=!1,n=0,o=e._getProgramData(t.glProgram);for(let c in t.groups){let u=t.groups[c];r.push(`
|
|
43
|
+
resources = g[${c}].resources;
|
|
44
|
+
`);for(let f in u.resources){let h=u.resources[f];if(h instanceof S)if(h.ubo){let l=t._uniformBindMap[c][Number(f)];r.push(`
|
|
45
|
+
sS.bindUniformBlock(
|
|
46
|
+
resources[${f}],
|
|
47
|
+
'${l}',
|
|
48
|
+
${t.glProgram._uniformBlockData[l].index}
|
|
49
|
+
);
|
|
50
|
+
`)}else r.push(`
|
|
51
|
+
ugS.updateUniformGroup(resources[${f}], p, sD);
|
|
52
|
+
`);else if(h instanceof Y){let l=t._uniformBindMap[c][Number(f)];r.push(`
|
|
53
|
+
sS.bindUniformBlock(
|
|
54
|
+
resources[${f}],
|
|
55
|
+
'${l}',
|
|
56
|
+
${t.glProgram._uniformBlockData[l].index}
|
|
57
|
+
);
|
|
58
|
+
`)}else if(h instanceof w){let l=t._uniformBindMap[c][f],b=o.uniformData[l];b&&(i||(i=!0,s.push(`
|
|
59
|
+
var tS = r.texture;
|
|
60
|
+
`)),e._gl.uniform1i(b.location,n),r.push(`
|
|
61
|
+
tS.bind(resources[${f}], ${n});
|
|
62
|
+
`),n++)}}}let a=[...s,...r].join(`
|
|
63
|
+
`);return new Function("r","s","sD",a)}var ee=class{constructor(e,r){this.program=e,this.uniformData=r,this.uniformGroups={},this.uniformDirtyGroups={},this.uniformBlockBindings={}}destroy(){this.uniformData=null,this.uniformGroups=null,this.uniformDirtyGroups=null,this.uniformBlockBindings=null,this.program=null}};function _e(t,e,r){let s=t.createShader(e);return t.shaderSource(s,r),t.compileShader(s),s}function he(t){let e=new Array(t);for(let r=0;r<e.length;r++)e[r]=!1;return e}function te(t,e){switch(t){case"float":return 0;case"vec2":return new Float32Array(2*e);case"vec3":return new Float32Array(3*e);case"vec4":return new Float32Array(4*e);case"int":case"uint":case"sampler2D":case"sampler2DArray":return 0;case"ivec2":return new Int32Array(2*e);case"ivec3":return new Int32Array(3*e);case"ivec4":return new Int32Array(4*e);case"uvec2":return new Uint32Array(2*e);case"uvec3":return new Uint32Array(3*e);case"uvec4":return new Uint32Array(4*e);case"bool":return!1;case"bvec2":return he(2*e);case"bvec3":return he(3*e);case"bvec4":return he(4*e);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}var re=null,Ke={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"},gt={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 le(t,e){if(!re){let r=Object.keys(Ke);re={};for(let s=0;s<r.length;++s){let i=r[s];re[t[i]]=Ke[i]}}return re[e]}function $e(t,e){let r=le(t,e);return gt[r]||"float32"}function ze(t,e,r=!1){let s={},i=e.getProgramParameter(t,e.ACTIVE_ATTRIBUTES);for(let o=0;o<i;o++){let a=e.getActiveAttrib(t,o);if(a.name.startsWith("gl_"))continue;let c=$e(e,a.type);s[a.name]={location:0,format:c,stride:X(c).stride,offset:0,instance:!1,start:0}}let n=Object.keys(s);if(r){n.sort((o,a)=>o>a?1:-1);for(let o=0;o<n.length;o++)s[n[o]].location=o,e.bindAttribLocation(t,o,n[o]);e.linkProgram(t)}else for(let o=0;o<n.length;o++)s[n[o]].location=e.getAttribLocation(t,n[o]);return s}function Ye(t,e){if(!e.ACTIVE_UNIFORM_BLOCKS)return{};let r={},s=e.getProgramParameter(t,e.ACTIVE_UNIFORM_BLOCKS);for(let i=0;i<s;i++){let n=e.getActiveUniformBlockName(t,i),o=e.getUniformBlockIndex(t,n),a=e.getActiveUniformBlockParameter(t,i,e.UNIFORM_BLOCK_DATA_SIZE);r[n]={name:n,index:o,size:a}}return r}function qe(t,e){let r={},s=e.getProgramParameter(t,e.ACTIVE_UNIFORMS);for(let i=0;i<s;i++){let n=e.getActiveUniform(t,i),o=n.name.replace(/\[.*?\]$/,""),a=!!n.name.match(/\[.*?\]$/),c=le(e,n.type);r[o]={name:o,index:i,type:c,size:n.size,isArray:a,value:te(c,n.size)}}return r}function Ze(t,e){let r=t.getShaderSource(e).split(`
|
|
64
|
+
`).map((u,f)=>`${f}: ${u}`),s=t.getShaderInfoLog(e),i=s.split(`
|
|
65
|
+
`),n={},o=i.map(u=>parseFloat(u.replace(/^ERROR\: 0\:([\d]+)\:.*$/,"$1"))).filter(u=>u&&!n[u]?(n[u]=!0,!0):!1),a=[""];o.forEach(u=>{r[u-1]=`%c${r[u-1]}%c`,a.push("background: #FF0000; color:#FFFFFF; font-size: 10px","font-size: 10px")});let c=r.join(`
|
|
66
|
+
`);a[0]=c,console.error(s),console.groupCollapsed("click to view full shader code"),console.warn(...a),console.groupEnd()}function Qe(t,e,r,s){t.getProgramParameter(e,t.LINK_STATUS)||(t.getShaderParameter(r,t.COMPILE_STATUS)||Ze(t,r),t.getShaderParameter(s,t.COMPILE_STATUS)||Ze(t,s),console.error("PixiJS Error: Could not initialize shader."),t.getProgramInfoLog(e)!==""&&console.warn("PixiJS Warning: gl.getProgramInfoLog()",t.getProgramInfoLog(e)))}function Je(t,e){let r=_e(t,t.VERTEX_SHADER,e.vertex),s=_e(t,t.FRAGMENT_SHADER,e.fragment),i=t.createProgram();t.attachShader(i,r),t.attachShader(i,s);let n=e.transformFeedbackVaryings;n&&(typeof t.transformFeedbackVaryings!="function"?d("TransformFeedback is not supported but TransformFeedbackVaryings are given."):t.transformFeedbackVaryings(i,n.names,n.bufferMode==="separate"?t.SEPARATE_ATTRIBS:t.INTERLEAVED_ATTRIBS)),t.linkProgram(i),t.getProgramParameter(i,t.LINK_STATUS)||Qe(t,i,r,s),e._attributeData=ze(i,t,!/^[ \t]*#[ \t]*version[ \t]+300[ \t]+es[ \t]*$/m.test(e.vertex)),e._uniformData=qe(i,t),e._uniformBlockData=Ye(i,t),t.deleteShader(r),t.deleteShader(s);let o={};for(let c in e._uniformData){let u=e._uniformData[c];o[c]={location:t.getUniformLocation(i,c),value:te(u.type,u.size)}}return new ee(i,o)}var se={textureCount:0,blockIndex:0},P=class{constructor(e){this._activeProgram=null,this._programDataHash=Object.create(null),this._shaderSyncFunctions=Object.create(null),this._renderer=e,this._renderer.renderableGC.addManagedHash(this,"_programDataHash")}contextChange(e){this._gl=e,this._programDataHash=Object.create(null),this._shaderSyncFunctions=Object.create(null),this._activeProgram=null}bind(e,r){if(this._setProgram(e.glProgram),r)return;se.textureCount=0,se.blockIndex=0;let s=this._shaderSyncFunctions[e.glProgram._key];s||(s=this._shaderSyncFunctions[e.glProgram._key]=this._generateShaderSync(e,this)),this._renderer.buffer.nextBindBase(!!e.glProgram.transformFeedbackVaryings),s(this._renderer,e,se)}updateUniformGroup(e){this._renderer.uniformGroup.updateUniformGroup(e,this._activeProgram,se)}bindUniformBlock(e,r,s=0){let i=this._renderer.buffer,n=this._getProgramData(this._activeProgram),o=e._bufferResource;o||this._renderer.ubo.updateUniformGroup(e);let a=e.buffer,c=i.updateBuffer(a),u=i.freeLocationForBufferBase(c);if(o){let{offset:h,size:l}=e;h===0&&l===a.data.byteLength?i.bindBufferBase(c,u):i.bindBufferRange(c,u,h)}else i.getLastBindBaseLocation(c)!==u&&i.bindBufferBase(c,u);let f=this._activeProgram._uniformBlockData[r].index;n.uniformBlockBindings[s]!==u&&(n.uniformBlockBindings[s]=u,this._renderer.gl.uniformBlockBinding(n.program,f,u))}_setProgram(e){if(this._activeProgram===e)return;this._activeProgram=e;let r=this._getProgramData(e);this._gl.useProgram(r.program)}_getProgramData(e){return this._programDataHash[e._key]||this._createProgramData(e)}_createProgramData(e){let r=e._key;return this._programDataHash[r]=Je(this._gl,e),this._programDataHash[r]}destroy(){for(let e of Object.keys(this._programDataHash))this._programDataHash[e].destroy(),this._programDataHash[e]=null;this._programDataHash=null,this._shaderSyncFunctions=null,this._activeProgram=null,this._renderer=null,this._gl=null}_generateShaderSync(e,r){return je(e,r)}resetState(){this._activeProgram=null}};P.extension={type:[m.WebGLSystem],name:"shader"};var et={f32:`if (cv !== v) {
|
|
67
|
+
cu.value = v;
|
|
68
|
+
gl.uniform1f(location, v);
|
|
69
|
+
}`,"vec2<f32>":`if (cv[0] !== v[0] || cv[1] !== v[1]) {
|
|
70
|
+
cv[0] = v[0];
|
|
71
|
+
cv[1] = v[1];
|
|
72
|
+
gl.uniform2f(location, v[0], v[1]);
|
|
73
|
+
}`,"vec3<f32>":`if (cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2]) {
|
|
74
|
+
cv[0] = v[0];
|
|
75
|
+
cv[1] = v[1];
|
|
76
|
+
cv[2] = v[2];
|
|
77
|
+
gl.uniform3f(location, v[0], v[1], v[2]);
|
|
78
|
+
}`,"vec4<f32>":`if (cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2] || cv[3] !== v[3]) {
|
|
79
|
+
cv[0] = v[0];
|
|
80
|
+
cv[1] = v[1];
|
|
81
|
+
cv[2] = v[2];
|
|
82
|
+
cv[3] = v[3];
|
|
83
|
+
gl.uniform4f(location, v[0], v[1], v[2], v[3]);
|
|
84
|
+
}`,i32:`if (cv !== v) {
|
|
85
|
+
cu.value = v;
|
|
86
|
+
gl.uniform1i(location, v);
|
|
87
|
+
}`,"vec2<i32>":`if (cv[0] !== v[0] || cv[1] !== v[1]) {
|
|
88
|
+
cv[0] = v[0];
|
|
89
|
+
cv[1] = v[1];
|
|
90
|
+
gl.uniform2i(location, v[0], v[1]);
|
|
91
|
+
}`,"vec3<i32>":`if (cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2]) {
|
|
92
|
+
cv[0] = v[0];
|
|
93
|
+
cv[1] = v[1];
|
|
94
|
+
cv[2] = v[2];
|
|
95
|
+
gl.uniform3i(location, v[0], v[1], v[2]);
|
|
96
|
+
}`,"vec4<i32>":`if (cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2] || cv[3] !== v[3]) {
|
|
97
|
+
cv[0] = v[0];
|
|
98
|
+
cv[1] = v[1];
|
|
99
|
+
cv[2] = v[2];
|
|
100
|
+
cv[3] = v[3];
|
|
101
|
+
gl.uniform4i(location, v[0], v[1], v[2], v[3]);
|
|
102
|
+
}`,u32:`if (cv !== v) {
|
|
103
|
+
cu.value = v;
|
|
104
|
+
gl.uniform1ui(location, v);
|
|
105
|
+
}`,"vec2<u32>":`if (cv[0] !== v[0] || cv[1] !== v[1]) {
|
|
106
|
+
cv[0] = v[0];
|
|
107
|
+
cv[1] = v[1];
|
|
108
|
+
gl.uniform2ui(location, v[0], v[1]);
|
|
109
|
+
}`,"vec3<u32>":`if (cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2]) {
|
|
110
|
+
cv[0] = v[0];
|
|
111
|
+
cv[1] = v[1];
|
|
112
|
+
cv[2] = v[2];
|
|
113
|
+
gl.uniform3ui(location, v[0], v[1], v[2]);
|
|
114
|
+
}`,"vec4<u32>":`if (cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2] || cv[3] !== v[3]) {
|
|
115
|
+
cv[0] = v[0];
|
|
116
|
+
cv[1] = v[1];
|
|
117
|
+
cv[2] = v[2];
|
|
118
|
+
cv[3] = v[3];
|
|
119
|
+
gl.uniform4ui(location, v[0], v[1], v[2], v[3]);
|
|
120
|
+
}`,bool:`if (cv !== v) {
|
|
121
|
+
cu.value = v;
|
|
122
|
+
gl.uniform1i(location, v);
|
|
123
|
+
}`,"vec2<bool>":`if (cv[0] !== v[0] || cv[1] !== v[1]) {
|
|
124
|
+
cv[0] = v[0];
|
|
125
|
+
cv[1] = v[1];
|
|
126
|
+
gl.uniform2i(location, v[0], v[1]);
|
|
127
|
+
}`,"vec3<bool>":`if (cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2]) {
|
|
128
|
+
cv[0] = v[0];
|
|
129
|
+
cv[1] = v[1];
|
|
130
|
+
cv[2] = v[2];
|
|
131
|
+
gl.uniform3i(location, v[0], v[1], v[2]);
|
|
132
|
+
}`,"vec4<bool>":`if (cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2] || cv[3] !== v[3]) {
|
|
133
|
+
cv[0] = v[0];
|
|
134
|
+
cv[1] = v[1];
|
|
135
|
+
cv[2] = v[2];
|
|
136
|
+
cv[3] = v[3];
|
|
137
|
+
gl.uniform4i(location, v[0], v[1], v[2], v[3]);
|
|
138
|
+
}`,"mat2x2<f32>":"gl.uniformMatrix2fv(location, false, v);","mat3x3<f32>":"gl.uniformMatrix3fv(location, false, v);","mat4x4<f32>":"gl.uniformMatrix4fv(location, false, v);"},tt={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);"};function rt(t,e){let r=[`
|
|
139
|
+
var v = null;
|
|
140
|
+
var cv = null;
|
|
141
|
+
var cu = null;
|
|
142
|
+
var t = 0;
|
|
143
|
+
var gl = renderer.gl;
|
|
144
|
+
var name = null;
|
|
145
|
+
`];for(let s in t.uniforms){if(!e[s]){t.uniforms[s]instanceof S?t.uniforms[s].ubo?r.push(`
|
|
146
|
+
renderer.shader.bindUniformBlock(uv.${s}, "${s}");
|
|
147
|
+
`):r.push(`
|
|
148
|
+
renderer.shader.updateUniformGroup(uv.${s});
|
|
149
|
+
`):t.uniforms[s]instanceof Y&&r.push(`
|
|
150
|
+
renderer.shader.bindBufferResource(uv.${s}, "${s}");
|
|
151
|
+
`);continue}let i=t.uniformStructures[s],n=!1;for(let o=0;o<z.length;o++){let a=z[o];if(i.type===a.type&&a.test(i)){r.push(`name = "${s}";`,z[o].uniform),n=!0;break}}if(!n){let a=(i.size===1?et:tt)[i.type].replace("location",`ud["${s}"].location`);r.push(`
|
|
152
|
+
cu = ud["${s}"];
|
|
153
|
+
cv = cu.value;
|
|
154
|
+
v = uv["${s}"];
|
|
155
|
+
${a};`)}}return new Function("ud","uv","renderer","syncData",r.join(`
|
|
156
|
+
`))}var M=class{constructor(e){this._cache={},this._uniformGroupSyncHash={},this._renderer=e,this.gl=null,this._cache={}}contextChange(e){this.gl=e}updateUniformGroup(e,r,s){let i=this._renderer.shader._getProgramData(r);(!e.isStatic||e._dirtyId!==i.uniformDirtyGroups[e.uid])&&(i.uniformDirtyGroups[e.uid]=e._dirtyId,this._getUniformSyncFunction(e,r)(i.uniformData,e.uniforms,this._renderer,s))}_getUniformSyncFunction(e,r){return this._uniformGroupSyncHash[e._signature]?.[r._key]||this._createUniformSyncFunction(e,r)}_createUniformSyncFunction(e,r){let s=this._uniformGroupSyncHash[e._signature]||(this._uniformGroupSyncHash[e._signature]={}),i=this._getSignature(e,r._uniformData,"u");return this._cache[i]||(this._cache[i]=this._generateUniformsSync(e,r._uniformData)),s[r._key]=this._cache[i],s[r._key]}_generateUniformsSync(e,r){return rt(e,r)}_getSignature(e,r,s){let i=e.uniforms,n=[`${s}-`];for(let o in i)n.push(o),r[o]&&n.push(r[o].type);return n.join("-")}destroy(){this._renderer=null,this._cache=null}};M.extension={type:[m.WebGLSystem],name:"uniformGroup"};function st(t){let e={};if(e.normal=[t.ONE,t.ONE_MINUS_SRC_ALPHA],e.add=[t.ONE,t.ONE],e.multiply=[t.DST_COLOR,t.ONE_MINUS_SRC_ALPHA,t.ONE,t.ONE_MINUS_SRC_ALPHA],e.screen=[t.ONE,t.ONE_MINUS_SRC_COLOR,t.ONE,t.ONE_MINUS_SRC_ALPHA],e.none=[0,0],e["normal-npm"]=[t.SRC_ALPHA,t.ONE_MINUS_SRC_ALPHA,t.ONE,t.ONE_MINUS_SRC_ALPHA],e["add-npm"]=[t.SRC_ALPHA,t.ONE,t.ONE,t.ONE],e["screen-npm"]=[t.SRC_ALPHA,t.ONE_MINUS_SRC_COLOR,t.ONE,t.ONE_MINUS_SRC_ALPHA],e.erase=[t.ZERO,t.ONE_MINUS_SRC_ALPHA],!(t instanceof E.get().getWebGLRenderingContext()))e.min=[t.ONE,t.ONE,t.ONE,t.ONE,t.MIN,t.MIN],e.max=[t.ONE,t.ONE,t.ONE,t.ONE,t.MAX,t.MAX];else{let s=t.getExtension("EXT_blend_minmax");s&&(e.min=[t.ONE,t.ONE,t.ONE,t.ONE,s.MIN_EXT,s.MIN_EXT],e.max=[t.ONE,t.ONE,t.ONE,t.ONE,s.MAX_EXT,s.MAX_EXT])}return e}var Tt=0,Rt=1,vt=2,Bt=3,At=4,Nt=5,it=class de{constructor(e){this._invertFrontFace=!1,this.gl=null,this.stateId=0,this.polygonOffset=0,this.blendMode="none",this._blendEq=!1,this.map=[],this.map[Tt]=this.setBlend,this.map[Rt]=this.setOffset,this.map[vt]=this.setCullFace,this.map[Bt]=this.setDepthTest,this.map[At]=this.setFrontFace,this.map[Nt]=this.setDepthMask,this.checks=[],this.defaultState=g.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=st(e),this.resetState()}set(e){if(e||(e=this.defaultState),this.stateId!==e.data){let r=this.stateId^e.data,s=0;for(;r;)r&1&&this.map[s].call(this,!!(e.data&1<<s)),r>>=1,s++;this.stateId=e.data}for(let r=0;r<this.checks.length;r++)this.checks[r](this,e)}forceState(e){e||(e=this.defaultState);for(let r=0;r<this.map.length;r++)this.map[r].call(this,!!(e.data&1<<r));for(let r=0;r<this.checks.length;r++)this.checks[r](this,e);this.stateId=e.data}setBlend(e){this._updateCheck(de._checkBlendMode,e),this.gl[e?"enable":"disable"](this.gl.BLEND)}setOffset(e){this._updateCheck(de._checkPolygonOffset,e),this.gl[e?"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 r=this._invertFrontFace?!e:e;this._glFrontFace!==r&&(this._glFrontFace=r,this.gl.frontFace(this.gl[r?"CW":"CCW"]))}setBlendMode(e){if(this.blendModesMap[e]||(e="normal"),e===this.blendMode)return;this.blendMode=e;let r=this.blendModesMap[e],s=this.gl;r.length===2?s.blendFunc(r[0],r[1]):s.blendFuncSeparate(r[0],r[1],r[2],r[3]),r.length===6?(this._blendEq=!0,s.blendEquationSeparate(r[4],r[5])):this._blendEq&&(this._blendEq=!1,s.blendEquationSeparate(s.FUNC_ADD,s.FUNC_ADD))}setPolygonOffset(e,r){this.gl.polygonOffset(e,r)}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,r){let s=this.checks.indexOf(e);r&&s===-1?this.checks.push(e):!r&&s!==-1&&this.checks.splice(s,1)}static _checkBlendMode(e,r){e.setBlendMode(r.blendMode)}static _checkPolygonOffset(e,r){e.setPolygonOffset(1,r.polygonOffset)}destroy(){this.gl=null,this.checks.length=0}};it.extension={type:[m.WebGLSystem],name:"state"};var nt=it;var ie=class{constructor(e){this.target=ue.TEXTURE_2D,this.texture=e,this.width=-1,this.height=-1,this.type=_.UNSIGNED_BYTE,this.internalFormat=Z.RGBA,this.format=Z.RGBA,this.samplerType=0}};var ot={id:"buffer",upload(t,e,r){e.width===t.width||e.height===t.height?r.texSubImage2D(r.TEXTURE_2D,0,0,0,t.width,t.height,e.format,e.type,t.resource):r.texImage2D(e.target,0,e.internalFormat,t.width,t.height,0,e.format,e.type,t.resource),e.width=t.width,e.height=t.height}};var yt={"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},at={id:"compressed",upload(t,e,r){r.pixelStorei(r.UNPACK_ALIGNMENT,4);let s=t.pixelWidth,i=t.pixelHeight,n=!!yt[t.format];for(let o=0;o<t.resource.length;o++){let a=t.resource[o];n?r.compressedTexImage2D(r.TEXTURE_2D,o,e.internalFormat,s,i,0,a):r.texImage2D(r.TEXTURE_2D,o,e.internalFormat,s,i,0,e.format,e.type,a),s=Math.max(s>>1,1),i=Math.max(i>>1,1)}}};var ne={id:"image",upload(t,e,r,s){let i=e.width,n=e.height,o=t.pixelWidth,a=t.pixelHeight,c=t.resourceWidth,u=t.resourceHeight;c<o||u<a?((i!==o||n!==a)&&r.texImage2D(e.target,0,e.internalFormat,o,a,0,e.format,e.type,null),s===2?r.texSubImage2D(r.TEXTURE_2D,0,0,0,c,u,e.format,e.type,t.resource):r.texSubImage2D(r.TEXTURE_2D,0,0,0,e.format,e.type,t.resource)):i===o&&n===a?r.texSubImage2D(r.TEXTURE_2D,0,0,0,e.format,e.type,t.resource):s===2?r.texImage2D(e.target,0,e.internalFormat,o,a,0,e.format,e.type,t.resource):r.texImage2D(e.target,0,e.internalFormat,e.format,e.type,t.resource),e.width=o,e.height=a}};var ct={id:"video",upload(t,e,r,s){if(!t.isValid){r.texImage2D(e.target,0,e.internalFormat,1,1,0,e.format,e.type,null);return}ne.upload(t,e,r,s)}};var pe={linear:9729,nearest:9728},ut={linear:{linear:9987,nearest:9985},nearest:{linear:9986,nearest:9984}},oe={"clamp-to-edge":33071,repeat:10497,"mirror-repeat":33648},ft={never:512,less:513,equal:514,"less-equal":515,greater:516,"not-equal":517,"greater-equal":518,always:519};function Ee(t,e,r,s,i,n,o,a){let c=n;if(!a||t.addressModeU!=="repeat"||t.addressModeV!=="repeat"||t.addressModeW!=="repeat"){let u=oe[o?"clamp-to-edge":t.addressModeU],f=oe[o?"clamp-to-edge":t.addressModeV],h=oe[o?"clamp-to-edge":t.addressModeW];e[i](c,e.TEXTURE_WRAP_S,u),e[i](c,e.TEXTURE_WRAP_T,f),e.TEXTURE_WRAP_R&&e[i](c,e.TEXTURE_WRAP_R,h)}if((!a||t.magFilter!=="linear")&&e[i](c,e.TEXTURE_MAG_FILTER,pe[t.magFilter]),r){if(!a||t.mipmapFilter!=="linear"){let u=ut[t.minFilter][t.mipmapFilter];e[i](c,e.TEXTURE_MIN_FILTER,u)}}else e[i](c,e.TEXTURE_MIN_FILTER,pe[t.minFilter]);if(s&&t.maxAnisotropy>1){let u=Math.min(t.maxAnisotropy,e.getParameter(s.MAX_TEXTURE_MAX_ANISOTROPY_EXT));e[i](c,s.TEXTURE_MAX_ANISOTROPY_EXT,u)}t.compare&&e[i](c,e.TEXTURE_COMPARE_FUNC,ft[t.compare])}function mt(t){return{r8unorm:t.RED,r8snorm:t.RED,r8uint:t.RED,r8sint:t.RED,r16uint:t.RED,r16sint:t.RED,r16float:t.RED,rg8unorm:t.RG,rg8snorm:t.RG,rg8uint:t.RG,rg8sint:t.RG,r32uint:t.RED,r32sint:t.RED,r32float:t.RED,rg16uint:t.RG,rg16sint:t.RG,rg16float:t.RG,rgba8unorm:t.RGBA,"rgba8unorm-srgb":t.RGBA,rgba8snorm:t.RGBA,rgba8uint:t.RGBA,rgba8sint:t.RGBA,bgra8unorm:t.RGBA,"bgra8unorm-srgb":t.RGBA,rgb9e5ufloat:t.RGB,rgb10a2unorm:t.RGBA,rg11b10ufloat:t.RGB,rg32uint:t.RG,rg32sint:t.RG,rg32float:t.RG,rgba16uint:t.RGBA,rgba16sint:t.RGBA,rgba16float:t.RGBA,rgba32uint:t.RGBA,rgba32sint:t.RGBA,rgba32float:t.RGBA,stencil8:t.STENCIL_INDEX8,depth16unorm:t.DEPTH_COMPONENT,depth24plus:t.DEPTH_COMPONENT,"depth24plus-stencil8":t.DEPTH_STENCIL,depth32float:t.DEPTH_COMPONENT,"depth32float-stencil8":t.DEPTH_STENCIL}}function _t(t,e){let r={},s=t.RGBA;return t instanceof E.get().getWebGLRenderingContext()?e.srgb&&(r={"rgba8unorm-srgb":e.srgb.SRGB8_ALPHA8_EXT,"bgra8unorm-srgb":e.srgb.SRGB8_ALPHA8_EXT}):(r={"rgba8unorm-srgb":t.SRGB8_ALPHA8,"bgra8unorm-srgb":t.SRGB8_ALPHA8},s=t.RGBA8),{r8unorm:t.R8,r8snorm:t.R8_SNORM,r8uint:t.R8UI,r8sint:t.R8I,r16uint:t.R16UI,r16sint:t.R16I,r16float:t.R16F,rg8unorm:t.RG8,rg8snorm:t.RG8_SNORM,rg8uint:t.RG8UI,rg8sint:t.RG8I,r32uint:t.R32UI,r32sint:t.R32I,r32float:t.R32F,rg16uint:t.RG16UI,rg16sint:t.RG16I,rg16float:t.RG16F,rgba8unorm:t.RGBA,...r,rgba8snorm:t.RGBA8_SNORM,rgba8uint:t.RGBA8UI,rgba8sint:t.RGBA8I,bgra8unorm:s,rgb9e5ufloat:t.RGB9_E5,rgb10a2unorm:t.RGB10_A2,rg11b10ufloat:t.R11F_G11F_B10F,rg32uint:t.RG32UI,rg32sint:t.RG32I,rg32float:t.RG32F,rgba16uint:t.RGBA16UI,rgba16sint:t.RGBA16I,rgba16float:t.RGBA16F,rgba32uint:t.RGBA32UI,rgba32sint:t.RGBA32I,rgba32float:t.RGBA32F,stencil8:t.STENCIL_INDEX8,depth16unorm:t.DEPTH_COMPONENT16,depth24plus:t.DEPTH_COMPONENT24,"depth24plus-stencil8":t.DEPTH24_STENCIL8,depth32float:t.DEPTH_COMPONENT32F,"depth32float-stencil8":t.DEPTH32F_STENCIL8,...e.s3tc?{"bc1-rgba-unorm":e.s3tc.COMPRESSED_RGBA_S3TC_DXT1_EXT,"bc2-rgba-unorm":e.s3tc.COMPRESSED_RGBA_S3TC_DXT3_EXT,"bc3-rgba-unorm":e.s3tc.COMPRESSED_RGBA_S3TC_DXT5_EXT}:{},...e.s3tc_sRGB?{"bc1-rgba-unorm-srgb":e.s3tc_sRGB.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT,"bc2-rgba-unorm-srgb":e.s3tc_sRGB.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT,"bc3-rgba-unorm-srgb":e.s3tc_sRGB.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT}:{},...e.rgtc?{"bc4-r-unorm":e.rgtc.COMPRESSED_RED_RGTC1_EXT,"bc4-r-snorm":e.rgtc.COMPRESSED_SIGNED_RED_RGTC1_EXT,"bc5-rg-unorm":e.rgtc.COMPRESSED_RED_GREEN_RGTC2_EXT,"bc5-rg-snorm":e.rgtc.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT}:{},...e.bptc?{"bc6h-rgb-float":e.bptc.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT,"bc6h-rgb-ufloat":e.bptc.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT,"bc7-rgba-unorm":e.bptc.COMPRESSED_RGBA_BPTC_UNORM_EXT,"bc7-rgba-unorm-srgb":e.bptc.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT}:{},...e.etc?{"etc2-rgb8unorm":e.etc.COMPRESSED_RGB8_ETC2,"etc2-rgb8unorm-srgb":e.etc.COMPRESSED_SRGB8_ETC2,"etc2-rgb8a1unorm":e.etc.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2,"etc2-rgb8a1unorm-srgb":e.etc.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2,"etc2-rgba8unorm":e.etc.COMPRESSED_RGBA8_ETC2_EAC,"etc2-rgba8unorm-srgb":e.etc.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC,"eac-r11unorm":e.etc.COMPRESSED_R11_EAC,"eac-rg11unorm":e.etc.COMPRESSED_SIGNED_RG11_EAC}:{},...e.astc?{"astc-4x4-unorm":e.astc.COMPRESSED_RGBA_ASTC_4x4_KHR,"astc-4x4-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR,"astc-5x4-unorm":e.astc.COMPRESSED_RGBA_ASTC_5x4_KHR,"astc-5x4-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR,"astc-5x5-unorm":e.astc.COMPRESSED_RGBA_ASTC_5x5_KHR,"astc-5x5-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR,"astc-6x5-unorm":e.astc.COMPRESSED_RGBA_ASTC_6x5_KHR,"astc-6x5-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR,"astc-6x6-unorm":e.astc.COMPRESSED_RGBA_ASTC_6x6_KHR,"astc-6x6-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR,"astc-8x5-unorm":e.astc.COMPRESSED_RGBA_ASTC_8x5_KHR,"astc-8x5-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR,"astc-8x6-unorm":e.astc.COMPRESSED_RGBA_ASTC_8x6_KHR,"astc-8x6-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR,"astc-8x8-unorm":e.astc.COMPRESSED_RGBA_ASTC_8x8_KHR,"astc-8x8-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR,"astc-10x5-unorm":e.astc.COMPRESSED_RGBA_ASTC_10x5_KHR,"astc-10x5-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR,"astc-10x6-unorm":e.astc.COMPRESSED_RGBA_ASTC_10x6_KHR,"astc-10x6-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR,"astc-10x8-unorm":e.astc.COMPRESSED_RGBA_ASTC_10x8_KHR,"astc-10x8-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR,"astc-10x10-unorm":e.astc.COMPRESSED_RGBA_ASTC_10x10_KHR,"astc-10x10-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR,"astc-12x10-unorm":e.astc.COMPRESSED_RGBA_ASTC_12x10_KHR,"astc-12x10-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR,"astc-12x12-unorm":e.astc.COMPRESSED_RGBA_ASTC_12x12_KHR,"astc-12x12-unorm-srgb":e.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR}:{}}}function ht(t){return{r8unorm:t.UNSIGNED_BYTE,r8snorm:t.BYTE,r8uint:t.UNSIGNED_BYTE,r8sint:t.BYTE,r16uint:t.UNSIGNED_SHORT,r16sint:t.SHORT,r16float:t.HALF_FLOAT,rg8unorm:t.UNSIGNED_BYTE,rg8snorm:t.BYTE,rg8uint:t.UNSIGNED_BYTE,rg8sint:t.BYTE,r32uint:t.UNSIGNED_INT,r32sint:t.INT,r32float:t.FLOAT,rg16uint:t.UNSIGNED_SHORT,rg16sint:t.SHORT,rg16float:t.HALF_FLOAT,rgba8unorm:t.UNSIGNED_BYTE,"rgba8unorm-srgb":t.UNSIGNED_BYTE,rgba8snorm:t.BYTE,rgba8uint:t.UNSIGNED_BYTE,rgba8sint:t.BYTE,bgra8unorm:t.UNSIGNED_BYTE,"bgra8unorm-srgb":t.UNSIGNED_BYTE,rgb9e5ufloat:t.UNSIGNED_INT_5_9_9_9_REV,rgb10a2unorm:t.UNSIGNED_INT_2_10_10_10_REV,rg11b10ufloat:t.UNSIGNED_INT_10F_11F_11F_REV,rg32uint:t.UNSIGNED_INT,rg32sint:t.INT,rg32float:t.FLOAT,rgba16uint:t.UNSIGNED_SHORT,rgba16sint:t.SHORT,rgba16float:t.HALF_FLOAT,rgba32uint:t.UNSIGNED_INT,rgba32sint:t.INT,rgba32float:t.FLOAT,stencil8:t.UNSIGNED_BYTE,depth16unorm:t.UNSIGNED_SHORT,depth24plus:t.UNSIGNED_INT,"depth24plus-stencil8":t.UNSIGNED_INT_24_8,depth32float:t.FLOAT,"depth32float-stencil8":t.FLOAT_32_UNSIGNED_INT_24_8_REV}}var It=4,L=class{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:ne,buffer:ot,video:ct,compressed:at},this._premultiplyAlpha=!1,this._useSeparateSamplers=!1,this._renderer=e,this._renderer.renderableGC.addManagedHash(this,"_glTextures"),this._renderer.renderableGC.addManagedHash(this,"_glSamplers")}contextChange(e){this._gl=e,this._mapFormatToInternalFormat||(this._mapFormatToInternalFormat=_t(e,this._renderer.context.extensions),this._mapFormatToType=ht(e),this._mapFormatToFormat=mt(e)),this._glTextures=Object.create(null),this._glSamplers=Object.create(null),this._boundSamplers=Object.create(null),this._premultiplyAlpha=!1;for(let r=0;r<16;r++)this.bind(p.EMPTY,r)}initSource(e){this.bind(e)}bind(e,r=0){let s=e.source;e?(this.bindSource(s,r),this._useSeparateSamplers&&this._bindSampler(s.style,r)):(this.bindSource(null,r),this._useSeparateSamplers&&this._bindSampler(null,r))}bindSource(e,r=0){let s=this._gl;if(e._touched=this._renderer.textureGC.count,this._boundTextures[r]!==e){this._boundTextures[r]=e,this._activateLocation(r),e||(e=p.EMPTY.source);let i=this.getGlSource(e);s.bindTexture(i.target,i.texture)}}_bindSampler(e,r=0){let s=this._gl;if(!e){this._boundSamplers[r]=null,s.bindSampler(r,null);return}let i=this._getGlSampler(e);this._boundSamplers[r]!==i&&(this._boundSamplers[r]=i,s.bindSampler(r,i))}unbind(e){let r=e.source,s=this._boundTextures,i=this._gl;for(let n=0;n<s.length;n++)if(s[n]===r){this._activateLocation(n);let o=this.getGlSource(r);i.bindTexture(o.target,null),s[n]=null}}_activateLocation(e){this._activeTextureLocation!==e&&(this._activeTextureLocation=e,this._gl.activeTexture(this._gl.TEXTURE0+e))}_initSource(e){let r=this._gl,s=new ie(r.createTexture());if(s.type=this._mapFormatToType[e.format],s.internalFormat=this._mapFormatToInternalFormat[e.format],s.format=this._mapFormatToFormat[e.format],e.autoGenerateMipmaps&&(this._renderer.context.supports.nonPowOf2mipmaps||e.isPowerOfTwo)){let i=Math.max(e.width,e.height);e.mipLevelCount=Math.floor(Math.log2(i))+1}return this._glTextures[e.uid]=s,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),s}onStyleChange(e){this.updateStyle(e,!1)}updateStyle(e,r){let s=this._gl,i=this.getGlSource(e);s.bindTexture(s.TEXTURE_2D,i.texture),this._boundTextures[this._activeTextureLocation]=e,Ee(e.style,s,e.mipLevelCount>1,this._renderer.context.extensions.anisotropicFiltering,"texParameteri",s.TEXTURE_2D,!this._renderer.context.supports.nonPowOf2wrapping&&!e.isPowerOfTwo,r)}onSourceUnload(e){let r=this._glTextures[e.uid];r&&(this.unbind(e),this._glTextures[e.uid]=null,this._gl.deleteTexture(r.texture))}onSourceUpdate(e){let r=this._gl,s=this.getGlSource(e);r.bindTexture(r.TEXTURE_2D,s.texture),this._boundTextures[this._activeTextureLocation]=e;let i=e.alphaMode==="premultiply-alpha-on-upload";this._premultiplyAlpha!==i&&(this._premultiplyAlpha=i,r.pixelStorei(r.UNPACK_PREMULTIPLY_ALPHA_WEBGL,i)),this._uploads[e.uploadMethodId]?this._uploads[e.uploadMethodId].upload(e,s,r,this._renderer.context.webGLVersion):r.texImage2D(r.TEXTURE_2D,0,r.RGBA,e.pixelWidth,e.pixelHeight,0,r.RGBA,r.UNSIGNED_BYTE,null),e.autoGenerateMipmaps&&e.mipLevelCount>1&&this.onUpdateMipmaps(e,!1)}onUpdateMipmaps(e,r=!0){r&&this.bindSource(e,0);let s=this.getGlSource(e);this._gl.generateMipmap(s.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 r=this._gl,s=this._gl.createSampler();return this._glSamplers[e._resourceId]=s,Ee(e,r,this._boundTextures[this._activeTextureLocation].mipLevelCount>1,this._renderer.context.extensions.anisotropicFiltering,"samplerParameteri",s,!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:r,width:s,height:i}=this.getPixels(e),n=E.get().createCanvas();n.width=s,n.height=i;let o=n.getContext("2d");if(o){let a=o.createImageData(s,i);a.data.set(r),o.putImageData(a,0,0)}return n}getPixels(e){let r=e.source.resolution,s=e.frame,i=Math.max(Math.round(s.width*r),1),n=Math.max(Math.round(s.height*r),1),o=new Uint8Array(It*i*n),a=this._renderer,c=a.renderTarget.getRenderTarget(e),u=a.renderTarget.getGpuRenderTarget(c),f=a.gl;return f.bindFramebuffer(f.FRAMEBUFFER,u.resolveTargetFramebuffer),f.readPixels(Math.round(s.x*r),Math.round(s.y*r),i,n,f.RGBA,f.UNSIGNED_BYTE,o),{pixels:new Uint8ClampedArray(o.buffer),width:i,height:n}}destroy(){this.managedTextures.slice().forEach(e=>this.onSourceDestroy(e)),this.managedTextures=null,this._glTextures=null,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(p.EMPTY.source),this._boundSamplers=Object.create(null);let e=this._gl;this._premultiplyAlpha=!1,e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,this._premultiplyAlpha)}};L.extension={type:[m.WebGLSystem],name:"texture"};var Ct=[...ye,F,Ve,Me,G,y,L,O,I,M,P,D,nt,U,C],Dt=[...Ie],Gt=[A,B,v],dt=[],pt=[],Et=[];T.handleByNamedList(m.WebGLSystem,dt);T.handleByNamedList(m.WebGLPipes,pt);T.handleByNamedList(m.WebGLPipesAdaptor,Et);T.add(...Ct,...Dt,...Gt);var lt=class extends Ae{constructor(){let e={name:"webgl",type:Be.WEBGL,systems:dt,renderPipes:pt,renderPipeAdaptors:Et};super(e)}};export{lt as a};
|
|
157
|
+
//# sourceMappingURL=chunk-X2GHKWPJ.js.map
|