@omnimedia/omnitool 1.1.0-42 → 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 +10 -2
- 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 -2
- 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,327 @@
|
|
|
1
|
+
import{A as De,Ba as $e,E as Fe,F as b,H as Le,I as f,J as C,K as pe,L as me,M as xe,N as ve,O as g,Q as ge,S as P,U as He,V as D,W as ze,Z as p,aa as F,ba as _e,d as o,e as y,ea as We,f as O,fa as be,g as v,ga as Ne,h as Ge,i as x,k as _,l as se,n as ne,o as w,p as ie,pa as oe,q as S,ra as R,s as ae,t as k,ta as Te,u as M,va as Ve,wa as je,x as Oe,xa as le,z as fe}from"./chunk-LQU5JKKZ.js";var ye=[];y.handleByNamedList(o.Environment,ye);async function qe(n){if(!n)for(let e=0;e<ye.length;e++){let t=ye[e];if(t.value.test()){await t.value.load();return}}}var L;function ue(){if(typeof L=="boolean")return L;try{L=new Function("param1","param2","param3","return param1[param2] === param3;")({a:"b"},"a","b")===!0}catch{L=!1}return L}var T=(n=>(n[n.NONE=0]="NONE",n[n.COLOR=16384]="COLOR",n[n.STENCIL=1024]="STENCIL",n[n.DEPTH=256]="DEPTH",n[n.COLOR_DEPTH=16640]="COLOR_DEPTH",n[n.COLOR_STENCIL=17408]="COLOR_STENCIL",n[n.DEPTH_STENCIL=1280]="DEPTH_STENCIL",n[n.ALL=17664]="ALL",n))(T||{});var B=class{constructor(e){this.items=[],this._name=e}emit(e,t,r,s,i,a,l,u){let{name:d,items:c}=this;for(let h=0,m=c.length;h<m;h++)c[h][d](e,t,r,s,i,a,l,u);return this}add(e){return e[this._name]&&(this.remove(e),this.items.push(e)),this}remove(e){let t=this.items.indexOf(e);return t!==-1&&this.items.splice(t,1),this}contains(e){return this.items.indexOf(e)!==-1}removeAll(){return this.items.length=0,this}destroy(){this.removeAll(),this.items=null,this._name=null}get empty(){return this.items.length===0}get name(){return this._name}};var Ct=["init","destroy","contextChange","resolutionChange","resetState","renderEnd","renderStart","render","update","postrender","prerender"],Ke=class Ye extends O{constructor(e){super(),this.uid=_("renderer"),this.runners=Object.create(null),this.renderPipes=Object.create(null),this._initOptions={},this._systemsHash=Object.create(null),this.type=e.type,this.name=e.name,this.config=e;let t=[...Ct,...this.config.runners??[]];this._addRunners(...t),this._unsafeEvalCheck()}async init(e={}){let t=e.skipExtensionImports===!0?!0:e.manageImports===!1;await qe(t),this._addSystems(this.config.systems),this._addPipes(this.config.renderPipes,this.config.renderPipeAdaptors);for(let r in this._systemsHash)e={...this._systemsHash[r].constructor.defaultOptions,...e};e={...Ye.defaultOptions,...e},this._roundPixels=e.roundPixels?1:0;for(let r=0;r<this.runners.init.items.length;r++)await this.runners.init.items[r].init(e);this._initOptions=e}render(e,t){let r=e;if(r instanceof g&&(r={container:r},t&&(ne(se,"passing a second argument is deprecated, please use render options instead"),r.target=t.renderTexture)),r.target||(r.target=this.view.renderTarget),r.target===this.view.renderTarget&&(this._lastObjectRendered=r.container,r.clearColor??(r.clearColor=this.background.colorRgba),r.clear??(r.clear=this.background.clearBeforeRender)),r.clearColor){let s=Array.isArray(r.clearColor)&&r.clearColor.length===4;r.clearColor=s?r.clearColor:v.shared.setValue(r.clearColor).toArray()}r.transform||(r.container.updateLocalTransform(),r.transform=r.container.localTransform),r.container.visible&&(r.container.enableRenderGroup(),this.runners.prerender.emit(r),this.runners.renderStart.emit(r),this.runners.render.emit(r),this.runners.renderEnd.emit(r),this.runners.postrender.emit(r))}resize(e,t,r){let s=this.view.resolution;this.view.resize(e,t,r),this.emit("resize",this.view.screen.width,this.view.screen.height,this.view.resolution),r!==void 0&&r!==s&&this.runners.resolutionChange.emit(r)}clear(e={}){let t=this;e.target||(e.target=t.renderTarget.renderTarget),e.clearColor||(e.clearColor=this.background.colorRgba),e.clear??(e.clear=T.ALL);let{clear:r,clearColor:s,target:i}=e;v.shared.setValue(s??this.background.colorRgba),t.renderTarget.clear(i,r,v.shared.toArray())}get resolution(){return this.view.resolution}set resolution(e){this.view.resolution=e,this.runners.resolutionChange.emit(e)}get width(){return this.view.texture.frame.width}get height(){return this.view.texture.frame.height}get canvas(){return this.view.canvas}get lastObjectRendered(){return this._lastObjectRendered}get renderingToScreen(){return this.renderTarget.renderingToScreen}get screen(){return this.view.screen}_addRunners(...e){e.forEach(t=>{this.runners[t]=new B(t)})}_addSystems(e){let t;for(t in e){let r=e[t];this._addSystem(r.value,r.name)}}_addSystem(e,t){let r=new e(this);if(this[t])throw new Error(`Whoops! The name "${t}" is already in use`);this[t]=r,this._systemsHash[t]=r;for(let s in this.runners)this.runners[s].add(r);return this}_addPipes(e,t){let r=t.reduce((s,i)=>(s[i.name]=i.value,s),{});e.forEach(s=>{let i=s.value,a=s.name,l=r[a];this.renderPipes[a]=new i(this,l?new l:null),this.runners.destroy.add(this.renderPipes[a])})}destroy(e=!1){this.runners.destroy.items.reverse(),this.runners.destroy.emit(e),(e===!0||typeof e=="object"&&e.releaseGlobalResources)&&ie.release(),Object.values(this.runners).forEach(t=>{t.destroy()}),this._systemsHash=null,this.renderPipes=null}generateTexture(e){return this.textureGenerator.generateTexture(e)}get roundPixels(){return!!this._roundPixels}_unsafeEvalCheck(){if(!ue())throw new Error("Current environment does not allow unsafe-eval, please use pixi.js/unsafe-eval module to enable support.")}resetState(){this.runners.resetState.emit()}};Ke.defaultOptions={resolution:1,failIfMajorPerformanceCaveat:!1,roundPixels:!1};var Zt=Ke;var H=class{constructor(e){this._renderer=e}updateRenderable(){}destroyRenderable(){}validateRenderable(){return!1}addRenderable(e,t){this._renderer.renderPipes.batch.break(t),t.add(e)}execute(e){e.isRenderable&&e.render(this._renderer)}destroy(){this._renderer=null}};H.extension={type:[o.WebGLPipes,o.WebGPUPipes,o.CanvasPipes],name:"customRender"};function z(n,e){let t=n.instructionSet,r=t.instructions;for(let s=0;s<t.instructionSize;s++){let i=r[s];e[i.renderPipeId].execute(i)}}var wt=new x,W=class{constructor(e){this._renderer=e}addRenderGroup(e,t){e.isCachedAsTexture?this._addRenderableCacheAsTexture(e,t):this._addRenderableDirect(e,t)}execute(e){e.isRenderable&&(e.isCachedAsTexture?this._executeCacheAsTexture(e):this._executeDirect(e))}destroy(){this._renderer=null}_addRenderableDirect(e,t){this._renderer.renderPipes.batch.break(t),e._batchableRenderGroup&&(S.return(e._batchableRenderGroup),e._batchableRenderGroup=null),t.add(e)}_addRenderableCacheAsTexture(e,t){let r=e._batchableRenderGroup??(e._batchableRenderGroup=S.get(le));r.renderable=e.root,r.transform=e.root.relativeGroupTransform,r.texture=e.texture,r.bounds=e._textureBounds,t.add(e),this._renderer.renderPipes.blendMode.pushBlendMode(e,e.root.groupBlendMode,t),this._renderer.renderPipes.batch.addToBatch(r,t),this._renderer.renderPipes.blendMode.popBlendMode(t)}_executeCacheAsTexture(e){if(e.textureNeedsUpdate){e.textureNeedsUpdate=!1;let t=wt.identity().translate(-e._textureBounds.x,-e._textureBounds.y);this._renderer.renderTarget.push(e.texture,!0,null,e.texture.frame),this._renderer.globalUniforms.push({worldTransformMatrix:t,worldColor:4294967295,offset:{x:0,y:0}}),z(e,this._renderer.renderPipes),this._renderer.renderTarget.finishRenderPass(),this._renderer.renderTarget.pop(),this._renderer.globalUniforms.pop()}e._batchableRenderGroup._batcher.updateElement(e._batchableRenderGroup),e._batchableRenderGroup._batcher.geometry.buffers[0].update()}_executeDirect(e){this._renderer.globalUniforms.push({worldTransformMatrix:e.inverseParentTextureTransform,worldColor:e.worldColorAlpha}),z(e,this._renderer.renderPipes),this._renderer.globalUniforms.pop()}};W.extension={type:[o.WebGLPipes,o.WebGPUPipes,o.CanvasPipes],name:"renderGroup"};function N(n,e){e||(e=0);for(let t=e;t<n.length&&n[t];t++)n[t]=null}var St=new g,Xe=ve|me|xe;function ke(n,e=!1){Mt(n);let t=n.childrenToUpdate,r=n.updateTick++;for(let s in t){let i=Number(s),a=t[s],l=a.list,u=a.index;for(let d=0;d<u;d++){let c=l[d];c.parentRenderGroup===n&&c.relativeRenderGroupDepth===i&&Qe(c,r,0)}N(l,u),a.index=0}if(e)for(let s=0;s<n.renderGroupChildren.length;s++)ke(n.renderGroupChildren[s],e)}function Mt(n){let e=n.root,t;if(n.renderGroupParent){let r=n.renderGroupParent;n.worldTransform.appendFrom(e.relativeGroupTransform,r.worldTransform),n.worldColor=fe(e.groupColor,r.worldColor),t=e.groupAlpha*r.worldAlpha}else n.worldTransform.copyFrom(e.localTransform),n.worldColor=e.localColor,t=e.localAlpha;t=t<0?0:t>1?1:t,n.worldAlpha=t,n.worldColorAlpha=n.worldColor+((t*255|0)<<24)}function Qe(n,e,t){if(e===n.updateTick)return;n.updateTick=e,n.didChange=!1;let r=n.localTransform;n.updateLocalTransform();let s=n.parent;if(s&&!s.renderGroup?(t|=n._updateFlags,n.relativeGroupTransform.appendFrom(r,s.relativeGroupTransform),t&Xe&&Je(n,s,t)):(t=n._updateFlags,n.relativeGroupTransform.copyFrom(r),t&Xe&&Je(n,St,t)),!n.renderGroup){let i=n.children,a=i.length;for(let d=0;d<a;d++)Qe(i[d],e,t);let l=n.parentRenderGroup,u=n;u.renderPipeId&&!l.structureDidChange&&l.updateRenderable(u)}}function Je(n,e,t){if(t&me){n.groupColor=fe(n.localColor,e.groupColor);let r=n.localAlpha*e.groupAlpha;r=r<0?0:r>1?1:r,n.groupAlpha=r,n.groupColorAlpha=n.groupColor+((r*255|0)<<24)}t&xe&&(n.groupBlendMode=n.localBlendMode==="inherit"?e.groupBlendMode:n.localBlendMode),t&ve&&(n.globalDisplayStatus=n.localDisplayStatus&e.globalDisplayStatus),n._updateFlags=0}function Ze(n,e){let{list:t}=n.childrenRenderablesToUpdate,r=!1;for(let s=0;s<n.childrenRenderablesToUpdate.index;s++){let i=t[s];if(r=e[i.renderPipeId].validateRenderable(i),r)break}return n.structureDidChange=r,r}var Pt=new x,V=class{constructor(e){this._renderer=e}render({container:e,transform:t}){let r=e.parent,s=e.renderGroup.renderGroupParent;e.parent=null,e.renderGroup.renderGroupParent=null;let i=this._renderer,a=Pt;t&&(a.copyFrom(e.renderGroup.localTransform),e.renderGroup.localTransform.copyFrom(t));let l=i.renderPipes;this._updateCachedRenderGroups(e.renderGroup,null),this._updateRenderGroups(e.renderGroup),i.globalUniforms.start({worldTransformMatrix:t?e.renderGroup.localTransform:e.renderGroup.worldTransform,worldColor:e.renderGroup.worldColorAlpha}),z(e.renderGroup,l),l.uniformBatch&&l.uniformBatch.renderEnd(),t&&e.renderGroup.localTransform.copyFrom(a),e.parent=r,e.renderGroup.renderGroupParent=s}destroy(){this._renderer=null}_updateCachedRenderGroups(e,t){if(e._parentCacheAsTextureRenderGroup=t,e.isCachedAsTexture){if(!e.textureNeedsUpdate)return;t=e}for(let r=e.renderGroupChildren.length-1;r>=0;r--)this._updateCachedRenderGroups(e.renderGroupChildren[r],t);if(e.invalidateMatrices(),e.isCachedAsTexture){if(e.textureNeedsUpdate){let r=e.root.getLocalBounds();r.ceil();let s=e.texture;e.texture&&C.returnTexture(e.texture,!0);let i=this._renderer,a=e.textureOptions.resolution||i.view.resolution,l=e.textureOptions.antialias??i.view.antialias,u=e.textureOptions.scaleMode??"linear",d=C.getOptimalTexture(r.width,r.height,a,l);d._source.style=new Fe({scaleMode:u}),e.texture=d,e._textureBounds||(e._textureBounds=new M),e._textureBounds.copyFrom(r),s!==e.texture&&e.renderGroupParent&&(e.renderGroupParent.structureDidChange=!0)}}else e.texture&&(C.returnTexture(e.texture,!0),e.texture=null)}_updateRenderGroups(e){let t=this._renderer,r=t.renderPipes;if(e.runOnRender(t),e.instructionSet.renderPipes=r,e.structureDidChange?N(e.childrenRenderablesToUpdate.list,0):Ze(e,r),ke(e),e.structureDidChange?(e.structureDidChange=!1,this._buildInstructions(e,t)):this._updateRenderables(e),e.childrenRenderablesToUpdate.index=0,t.renderPipes.batch.upload(e.instructionSet),!(e.isCachedAsTexture&&!e.textureNeedsUpdate))for(let s=0;s<e.renderGroupChildren.length;s++)this._updateRenderGroups(e.renderGroupChildren[s])}_updateRenderables(e){let{list:t,index:r}=e.childrenRenderablesToUpdate;for(let s=0;s<r;s++){let i=t[s];i.didViewUpdate&&e.updateRenderable(i)}N(t,r)}_buildInstructions(e,t){let r=e.root,s=e.instructionSet;s.reset();let i=t.renderPipes?t:t.batch.renderer,a=i.renderPipes;a.batch.buildStart(s),a.blendMode.buildStart(),a.colorMask.buildStart(),r.sortableChildren&&r.sortChildren(),r.collectRenderablesWithEffects(s,i,null),a.batch.buildEnd(s),a.blendMode.buildEnd(s)}};V.extension={type:[o.WebGLSystem,o.WebGPUSystem,o.CanvasSystem],name:"renderGroup"};var j=class{constructor(e){this._renderer=e}addRenderable(e,t){let r=this._getGpuSprite(e);e.didViewUpdate&&this._updateBatchableSprite(e,r),this._renderer.renderPipes.batch.addToBatch(r,t)}updateRenderable(e){let t=this._getGpuSprite(e);e.didViewUpdate&&this._updateBatchableSprite(e,t),t._batcher.updateElement(t)}validateRenderable(e){let t=this._getGpuSprite(e);return!t._batcher.checkAndUpdateTexture(t,e._texture)}_updateBatchableSprite(e,t){t.bounds=e.visualBounds,t.texture=e._texture}_getGpuSprite(e){return e._gpuData[this._renderer.uid]||this._initGPUSprite(e)}_initGPUSprite(e){let t=new le;return t.renderable=e,t.transform=e.groupTransform,t.texture=e._texture,t.bounds=e.visualBounds,t.roundPixels=this._renderer._roundPixels|e._roundPixels,e._gpuData[this._renderer.uid]=t,t}destroy(){this._renderer=null}};j.extension={type:[o.WebGLPipes,o.WebGPUPipes,o.CanvasPipes],name:"sprite"};var E="8.14.3";var Ce=class{static init(){globalThis.__PIXI_APP_INIT__?.(this,E)}static destroy(){}};Ce.extension=o.Application;var $=class{constructor(e){this._renderer=e}init(){globalThis.__PIXI_RENDERER_INIT__?.(this._renderer,E)}destroy(){this._renderer=null}};$.extension={type:[o.WebGLSystem,o.WebGPUSystem],name:"initHook",priority:-10};var we=class et{constructor(e,t){this.state=Ve.for2d(),this._batchersByInstructionSet=Object.create(null),this._activeBatches=Object.create(null),this.renderer=e,this._adaptor=t,this._adaptor.init?.(this)}static getBatcher(e){return new this._availableBatchers[e]}buildStart(e){let t=this._batchersByInstructionSet[e.uid];t||(t=this._batchersByInstructionSet[e.uid]=Object.create(null),t.default||(t.default=new Te({maxTextures:this.renderer.limits.maxBatchableTextures}))),this._activeBatches=t,this._activeBatch=this._activeBatches.default;for(let r in this._activeBatches)this._activeBatches[r].begin()}addToBatch(e,t){if(this._activeBatch.name!==e.batcherName){this._activeBatch.break(t);let r=this._activeBatches[e.batcherName];r||(r=this._activeBatches[e.batcherName]=et.getBatcher(e.batcherName),r.begin()),this._activeBatch=r}this._activeBatch.add(e)}break(e){this._activeBatch.break(e)}buildEnd(e){this._activeBatch.break(e);let t=this._activeBatches;for(let r in t){let s=t[r],i=s.geometry;i.indexBuffer.setDataWithSize(s.indexBuffer,s.indexSize,!0),i.buffers[0].setDataWithSize(s.attributeBuffer.float32View,s.attributeSize,!1)}}upload(e){let t=this._batchersByInstructionSet[e.uid];for(let r in t){let s=t[r],i=s.geometry;s.dirty&&(s.dirty=!1,i.buffers[0].update(s.attributeSize*4))}}execute(e){if(e.action==="startBatch"){let t=e.batcher,r=t.geometry,s=t.shader;this._adaptor.start(this,r,s)}this._adaptor.execute(this,e)}destroy(){this.state=null,this.renderer=null,this._adaptor=null;for(let e in this._activeBatches)this._activeBatches[e].destroy();this._activeBatches=null}};we.extension={type:[o.WebGLPipes,o.WebGPUPipes,o.CanvasPipes],name:"batch"};we._availableBatchers=Object.create(null);var Se=we;y.handleByMap(o.Batcher,Se._availableBatchers);y.add(Te);var tt=`in vec2 vMaskCoord;
|
|
2
|
+
in vec2 vTextureCoord;
|
|
3
|
+
|
|
4
|
+
uniform sampler2D uTexture;
|
|
5
|
+
uniform sampler2D uMaskTexture;
|
|
6
|
+
|
|
7
|
+
uniform float uAlpha;
|
|
8
|
+
uniform vec4 uMaskClamp;
|
|
9
|
+
uniform float uInverse;
|
|
10
|
+
|
|
11
|
+
out vec4 finalColor;
|
|
12
|
+
|
|
13
|
+
void main(void)
|
|
14
|
+
{
|
|
15
|
+
float clip = step(3.5,
|
|
16
|
+
step(uMaskClamp.x, vMaskCoord.x) +
|
|
17
|
+
step(uMaskClamp.y, vMaskCoord.y) +
|
|
18
|
+
step(vMaskCoord.x, uMaskClamp.z) +
|
|
19
|
+
step(vMaskCoord.y, uMaskClamp.w));
|
|
20
|
+
|
|
21
|
+
// TODO look into why this is needed
|
|
22
|
+
float npmAlpha = uAlpha;
|
|
23
|
+
vec4 original = texture(uTexture, vTextureCoord);
|
|
24
|
+
vec4 masky = texture(uMaskTexture, vMaskCoord);
|
|
25
|
+
float alphaMul = 1.0 - npmAlpha * (1.0 - masky.a);
|
|
26
|
+
|
|
27
|
+
float a = alphaMul * masky.r * npmAlpha * clip;
|
|
28
|
+
|
|
29
|
+
if (uInverse == 1.0) {
|
|
30
|
+
a = 1.0 - a;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
finalColor = original * a;
|
|
34
|
+
}
|
|
35
|
+
`;var rt=`in vec2 aPosition;
|
|
36
|
+
|
|
37
|
+
out vec2 vTextureCoord;
|
|
38
|
+
out vec2 vMaskCoord;
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
uniform vec4 uInputSize;
|
|
42
|
+
uniform vec4 uOutputFrame;
|
|
43
|
+
uniform vec4 uOutputTexture;
|
|
44
|
+
uniform mat3 uFilterMatrix;
|
|
45
|
+
|
|
46
|
+
vec4 filterVertexPosition( vec2 aPosition )
|
|
47
|
+
{
|
|
48
|
+
vec2 position = aPosition * uOutputFrame.zw + uOutputFrame.xy;
|
|
49
|
+
|
|
50
|
+
position.x = position.x * (2.0 / uOutputTexture.x) - 1.0;
|
|
51
|
+
position.y = position.y * (2.0*uOutputTexture.z / uOutputTexture.y) - uOutputTexture.z;
|
|
52
|
+
|
|
53
|
+
return vec4(position, 0.0, 1.0);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
vec2 filterTextureCoord( vec2 aPosition )
|
|
57
|
+
{
|
|
58
|
+
return aPosition * (uOutputFrame.zw * uInputSize.zw);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
vec2 getFilterCoord( vec2 aPosition )
|
|
62
|
+
{
|
|
63
|
+
return ( uFilterMatrix * vec3( filterTextureCoord(aPosition), 1.0) ).xy;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
void main(void)
|
|
67
|
+
{
|
|
68
|
+
gl_Position = filterVertexPosition(aPosition);
|
|
69
|
+
vTextureCoord = filterTextureCoord(aPosition);
|
|
70
|
+
vMaskCoord = getFilterCoord(aPosition);
|
|
71
|
+
}
|
|
72
|
+
`;var Me=`struct GlobalFilterUniforms {
|
|
73
|
+
uInputSize:vec4<f32>,
|
|
74
|
+
uInputPixel:vec4<f32>,
|
|
75
|
+
uInputClamp:vec4<f32>,
|
|
76
|
+
uOutputFrame:vec4<f32>,
|
|
77
|
+
uGlobalFrame:vec4<f32>,
|
|
78
|
+
uOutputTexture:vec4<f32>,
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
struct MaskUniforms {
|
|
82
|
+
uFilterMatrix:mat3x3<f32>,
|
|
83
|
+
uMaskClamp:vec4<f32>,
|
|
84
|
+
uAlpha:f32,
|
|
85
|
+
uInverse:f32,
|
|
86
|
+
};
|
|
87
|
+
|
|
88
|
+
@group(0) @binding(0) var<uniform> gfu: GlobalFilterUniforms;
|
|
89
|
+
@group(0) @binding(1) var uTexture: texture_2d<f32>;
|
|
90
|
+
@group(0) @binding(2) var uSampler : sampler;
|
|
91
|
+
|
|
92
|
+
@group(1) @binding(0) var<uniform> filterUniforms : MaskUniforms;
|
|
93
|
+
@group(1) @binding(1) var uMaskTexture: texture_2d<f32>;
|
|
94
|
+
|
|
95
|
+
struct VSOutput {
|
|
96
|
+
@builtin(position) position: vec4<f32>,
|
|
97
|
+
@location(0) uv : vec2<f32>,
|
|
98
|
+
@location(1) filterUv : vec2<f32>,
|
|
99
|
+
};
|
|
100
|
+
|
|
101
|
+
fn filterVertexPosition(aPosition:vec2<f32>) -> vec4<f32>
|
|
102
|
+
{
|
|
103
|
+
var position = aPosition * gfu.uOutputFrame.zw + gfu.uOutputFrame.xy;
|
|
104
|
+
|
|
105
|
+
position.x = position.x * (2.0 / gfu.uOutputTexture.x) - 1.0;
|
|
106
|
+
position.y = position.y * (2.0*gfu.uOutputTexture.z / gfu.uOutputTexture.y) - gfu.uOutputTexture.z;
|
|
107
|
+
|
|
108
|
+
return vec4(position, 0.0, 1.0);
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
fn filterTextureCoord( aPosition:vec2<f32> ) -> vec2<f32>
|
|
112
|
+
{
|
|
113
|
+
return aPosition * (gfu.uOutputFrame.zw * gfu.uInputSize.zw);
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
fn globalTextureCoord( aPosition:vec2<f32> ) -> vec2<f32>
|
|
117
|
+
{
|
|
118
|
+
return (aPosition.xy / gfu.uGlobalFrame.zw) + (gfu.uGlobalFrame.xy / gfu.uGlobalFrame.zw);
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
fn getFilterCoord(aPosition:vec2<f32> ) -> vec2<f32>
|
|
122
|
+
{
|
|
123
|
+
return ( filterUniforms.uFilterMatrix * vec3( filterTextureCoord(aPosition), 1.0) ).xy;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
fn getSize() -> vec2<f32>
|
|
127
|
+
{
|
|
128
|
+
return gfu.uGlobalFrame.zw;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
@vertex
|
|
132
|
+
fn mainVertex(
|
|
133
|
+
@location(0) aPosition : vec2<f32>,
|
|
134
|
+
) -> VSOutput {
|
|
135
|
+
return VSOutput(
|
|
136
|
+
filterVertexPosition(aPosition),
|
|
137
|
+
filterTextureCoord(aPosition),
|
|
138
|
+
getFilterCoord(aPosition)
|
|
139
|
+
);
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
@fragment
|
|
143
|
+
fn mainFragment(
|
|
144
|
+
@location(0) uv: vec2<f32>,
|
|
145
|
+
@location(1) filterUv: vec2<f32>,
|
|
146
|
+
@builtin(position) position: vec4<f32>
|
|
147
|
+
) -> @location(0) vec4<f32> {
|
|
148
|
+
|
|
149
|
+
var maskClamp = filterUniforms.uMaskClamp;
|
|
150
|
+
var uAlpha = filterUniforms.uAlpha;
|
|
151
|
+
|
|
152
|
+
var clip = step(3.5,
|
|
153
|
+
step(maskClamp.x, filterUv.x) +
|
|
154
|
+
step(maskClamp.y, filterUv.y) +
|
|
155
|
+
step(filterUv.x, maskClamp.z) +
|
|
156
|
+
step(filterUv.y, maskClamp.w));
|
|
157
|
+
|
|
158
|
+
var mask = textureSample(uMaskTexture, uSampler, filterUv);
|
|
159
|
+
var source = textureSample(uTexture, uSampler, uv);
|
|
160
|
+
var alphaMul = 1.0 - uAlpha * (1.0 - mask.a);
|
|
161
|
+
|
|
162
|
+
var a: f32 = alphaMul * mask.r * uAlpha * clip;
|
|
163
|
+
|
|
164
|
+
if (filterUniforms.uInverse == 1.0) {
|
|
165
|
+
a = 1.0 - a;
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
return source * a;
|
|
169
|
+
}
|
|
170
|
+
`;var de=class extends $e{constructor(e){let{sprite:t,...r}=e,s=new Le(t.texture),i=new oe({uFilterMatrix:{value:new x,type:"mat3x3<f32>"},uMaskClamp:{value:s.uClampFrame,type:"vec4<f32>"},uAlpha:{value:1,type:"f32"},uInverse:{value:e.inverse?1:0,type:"f32"}}),a=Ne.from({vertex:{source:Me,entryPoint:"mainVertex"},fragment:{source:Me,entryPoint:"mainFragment"}}),l=We.from({vertex:rt,fragment:tt,name:"mask-filter"});super({...r,gpuProgram:a,glProgram:l,clipToViewport:!1,resources:{filterUniforms:i,uMaskTexture:t.texture.source}}),this.sprite=t,this._textureMatrix=s}set inverse(e){this.resources.filterUniforms.uniforms.uInverse=e?1:0}get inverse(){return this.resources.filterUniforms.uniforms.uInverse===1}apply(e,t,r,s){this._textureMatrix.texture=this.sprite.texture,e.calculateSpriteMatrix(this.resources.filterUniforms.uniforms.uFilterMatrix,this.sprite).prepend(this._textureMatrix.mapCoord),this.resources.uMaskTexture=this.sprite.texture.source,e.applyFilter(this,t,r,s)}};var Rt=new M,Pe=class extends ae{constructor(){super(),this.filters=[new de({sprite:new He(f.EMPTY),inverse:!1,resolution:"inherit",antialias:"inherit"})]}get sprite(){return this.filters[0].sprite}set sprite(e){this.filters[0].sprite=e}get inverse(){return this.filters[0].inverse}set inverse(e){this.filters[0].inverse=e}},q=class{constructor(e){this._activeMaskStage=[],this._renderer=e}push(e,t,r){let s=this._renderer;if(s.renderPipes.batch.break(r),r.add({renderPipeId:"alphaMask",action:"pushMaskBegin",mask:e,inverse:t._maskOptions.inverse,canBundle:!1,maskedContainer:t}),e.inverse=t._maskOptions.inverse,e.renderMaskToTexture){let i=e.mask;i.includeInBuild=!0,i.collectRenderables(r,s,null),i.includeInBuild=!1}s.renderPipes.batch.break(r),r.add({renderPipeId:"alphaMask",action:"pushMaskEnd",mask:e,maskedContainer:t,inverse:t._maskOptions.inverse,canBundle:!1})}pop(e,t,r){this._renderer.renderPipes.batch.break(r),r.add({renderPipeId:"alphaMask",action:"popMaskEnd",mask:e,inverse:t._maskOptions.inverse,canBundle:!1})}execute(e){let t=this._renderer,r=e.mask.renderMaskToTexture;if(e.action==="pushMaskBegin"){let s=S.get(Pe);if(s.inverse=e.inverse,r){e.mask.mask.measurable=!0;let i=Oe(e.mask.mask,!0,Rt);e.mask.mask.measurable=!1,i.ceil();let a=t.renderTarget.renderTarget.colorTexture.source,l=C.getOptimalTexture(i.width,i.height,a._resolution,a.antialias);t.renderTarget.push(l,!0),t.globalUniforms.push({offset:i,worldColor:4294967295});let u=s.sprite;u.texture=l,u.worldTransform.tx=i.minX,u.worldTransform.ty=i.minY,this._activeMaskStage.push({filterEffect:s,maskedContainer:e.maskedContainer,filterTexture:l})}else s.sprite=e.mask.mask,this._activeMaskStage.push({filterEffect:s,maskedContainer:e.maskedContainer})}else if(e.action==="pushMaskEnd"){let s=this._activeMaskStage[this._activeMaskStage.length-1];r&&(t.type===R.WEBGL&&t.renderTarget.finishRenderPass(),t.renderTarget.pop(),t.globalUniforms.pop()),t.filter.push({renderPipeId:"filter",action:"pushFilter",container:s.maskedContainer,filterEffect:s.filterEffect,canBundle:!1})}else if(e.action==="popMaskEnd"){t.filter.pop();let s=this._activeMaskStage.pop();r&&C.returnTexture(s.filterTexture),S.return(s.filterEffect)}}destroy(){this._renderer=null,this._activeMaskStage=null}};q.extension={type:[o.WebGLPipes,o.WebGPUPipes,o.CanvasPipes],name:"alphaMask"};var K=class{constructor(e){this._colorStack=[],this._colorStackIndex=0,this._currentColor=0,this._renderer=e}buildStart(){this._colorStack[0]=15,this._colorStackIndex=1,this._currentColor=15}push(e,t,r){this._renderer.renderPipes.batch.break(r);let i=this._colorStack;i[this._colorStackIndex]=i[this._colorStackIndex-1]&e.mask;let a=this._colorStack[this._colorStackIndex];a!==this._currentColor&&(this._currentColor=a,r.add({renderPipeId:"colorMask",colorMask:a,canBundle:!1})),this._colorStackIndex++}pop(e,t,r){this._renderer.renderPipes.batch.break(r);let i=this._colorStack;this._colorStackIndex--;let a=i[this._colorStackIndex-1];a!==this._currentColor&&(this._currentColor=a,r.add({renderPipeId:"colorMask",colorMask:a,canBundle:!1}))}execute(e){this._renderer.colorMask.setMask(e.colorMask)}destroy(){this._renderer=null,this._colorStack=null}};K.extension={type:[o.WebGLPipes,o.WebGPUPipes,o.CanvasPipes],name:"colorMask"};var Y=class{constructor(e){this._maskStackHash={},this._maskHash=new WeakMap,this._renderer=e}push(e,t,r){var s;let i=e,a=this._renderer;a.renderPipes.batch.break(r),a.renderPipes.blendMode.setBlendMode(i.mask,"none",r),r.add({renderPipeId:"stencilMask",action:"pushMaskBegin",mask:e,inverse:t._maskOptions.inverse,canBundle:!1});let l=i.mask;l.includeInBuild=!0,this._maskHash.has(i)||this._maskHash.set(i,{instructionsStart:0,instructionsLength:0});let u=this._maskHash.get(i);u.instructionsStart=r.instructionSize,l.collectRenderables(r,a,null),l.includeInBuild=!1,a.renderPipes.batch.break(r),r.add({renderPipeId:"stencilMask",action:"pushMaskEnd",mask:e,inverse:t._maskOptions.inverse,canBundle:!1});let d=r.instructionSize-u.instructionsStart-1;u.instructionsLength=d;let c=a.renderTarget.renderTarget.uid;(s=this._maskStackHash)[c]??(s[c]=0)}pop(e,t,r){let s=e,i=this._renderer;i.renderPipes.batch.break(r),i.renderPipes.blendMode.setBlendMode(s.mask,"none",r),r.add({renderPipeId:"stencilMask",action:"popMaskBegin",inverse:t._maskOptions.inverse,canBundle:!1});let a=this._maskHash.get(e);for(let l=0;l<a.instructionsLength;l++)r.instructions[r.instructionSize++]=r.instructions[a.instructionsStart++];r.add({renderPipeId:"stencilMask",action:"popMaskEnd",canBundle:!1})}execute(e){var t;let r=this._renderer,s=r.renderTarget.renderTarget.uid,i=(t=this._maskStackHash)[s]??(t[s]=0);e.action==="pushMaskBegin"?(r.renderTarget.ensureDepthStencil(),r.stencil.setStencilMode(p.RENDERING_MASK_ADD,i),i++,r.colorMask.setMask(0)):e.action==="pushMaskEnd"?(e.inverse?r.stencil.setStencilMode(p.INVERSE_MASK_ACTIVE,i):r.stencil.setStencilMode(p.MASK_ACTIVE,i),r.colorMask.setMask(15)):e.action==="popMaskBegin"?(r.colorMask.setMask(0),i!==0?r.stencil.setStencilMode(p.RENDERING_MASK_REMOVE,i):(r.renderTarget.clear(null,T.STENCIL),r.stencil.setStencilMode(p.DISABLED,i)),i--):e.action==="popMaskEnd"&&(e.inverse?r.stencil.setStencilMode(p.INVERSE_MASK_ACTIVE,i):r.stencil.setStencilMode(p.MASK_ACTIVE,i),r.colorMask.setMask(15)),this._maskStackHash[s]=i}destroy(){this._renderer=null,this._maskStackHash=null,this._maskHash=null}};Y.extension={type:[o.WebGLPipes,o.WebGPUPipes,o.CanvasPipes],name:"stencilMask"};var Re=class st{constructor(){this.clearBeforeRender=!0,this._backgroundColor=new v(0),this.color=this._backgroundColor,this.alpha=1}init(e){e={...st.defaultOptions,...e},this.clearBeforeRender=e.clearBeforeRender,this.color=e.background||e.backgroundColor||this._backgroundColor,this.alpha=e.backgroundAlpha,this._backgroundColor.setAlpha(e.backgroundAlpha)}get color(){return this._backgroundColor}set color(e){v.shared.setValue(e).alpha<1&&this._backgroundColor.alpha===1&&w("Cannot set a transparent background on an opaque canvas. To enable transparency, set backgroundAlpha < 1 when initializing your Application."),this._backgroundColor.setValue(e)}get alpha(){return this._backgroundColor.alpha}set alpha(e){this._backgroundColor.setAlpha(e)}get colorRgba(){return this._backgroundColor.toArray()}destroy(){}};Re.extension={type:[o.WebGLSystem,o.WebGPUSystem,o.CanvasSystem],name:"background",priority:0};Re.defaultOptions={backgroundAlpha:1,backgroundColor:0,clearBeforeRender:!0};var nt=Re;var X={};y.handle(o.BlendMode,n=>{if(!n.name)throw new Error("BlendMode extension must have a name property");X[n.name]=n.ref},n=>{delete X[n.name]});var J=class{constructor(e){this._blendModeStack=[],this._isAdvanced=!1,this._filterHash=Object.create(null),this._renderer=e,this._renderer.runners.prerender.add(this)}prerender(){this._activeBlendMode="normal",this._isAdvanced=!1}pushBlendMode(e,t,r){this._blendModeStack.push(t),this.setBlendMode(e,t,r)}popBlendMode(e){this._blendModeStack.pop();let t=this._blendModeStack[this._activeBlendMode.length-1]??"normal";this.setBlendMode(null,t,e)}setBlendMode(e,t,r){let s=e instanceof pe;if(this._activeBlendMode===t){this._isAdvanced&&e&&!s&&this._renderableList?.push(e);return}this._isAdvanced&&this._endAdvancedBlendMode(r),this._activeBlendMode=t,e&&(this._isAdvanced=!!X[t],this._isAdvanced&&this._beginAdvancedBlendMode(e,r))}_beginAdvancedBlendMode(e,t){this._renderer.renderPipes.batch.break(t);let r=this._activeBlendMode;if(!X[r]){w(`Unable to assign BlendMode: '${r}'. You may want to include: import 'pixi.js/advanced-blend-modes'`);return}let s=this._ensureFilterEffect(r),i=e instanceof pe,a={renderPipeId:"filter",action:"pushFilter",filterEffect:s,renderables:i?null:[e],container:i?e.root:null,canBundle:!1};this._renderableList=a.renderables,t.add(a)}_ensureFilterEffect(e){let t=this._filterHash[e];return t||(t=this._filterHash[e]=new ae,t.filters=[new X[e]]),t}_endAdvancedBlendMode(e){this._isAdvanced=!1,this._renderableList=null,this._renderer.renderPipes.batch.break(e),e.add({renderPipeId:"filter",action:"popFilter",canBundle:!1})}buildStart(){this._isAdvanced=!1}buildEnd(e){this._isAdvanced&&this._endAdvancedBlendMode(e)}destroy(){this._renderer=null,this._renderableList=null;for(let e in this._filterHash)this._filterHash[e].destroy();this._filterHash=null}};J.extension={type:[o.WebGLPipes,o.WebGPUPipes,o.CanvasPipes],name:"blendMode"};var Be={png:"image/png",jpg:"image/jpeg",webp:"image/webp"},Ee=class it{constructor(e){this._renderer=e}_normalizeOptions(e,t={}){return e instanceof g||e instanceof f?{target:e,...t}:{...t,...e}}async image(e){let t=P.get().createImage();return t.src=await this.base64(e),t}async base64(e){e=this._normalizeOptions(e,it.defaultImageOptions);let{format:t,quality:r}=e,s=this.canvas(e);if(s.toBlob!==void 0)return new Promise((i,a)=>{s.toBlob(l=>{if(!l){a(new Error("ICanvas.toBlob failed!"));return}let u=new FileReader;u.onload=()=>i(u.result),u.onerror=a,u.readAsDataURL(l)},Be[t],r)});if(s.toDataURL!==void 0)return s.toDataURL(Be[t],r);if(s.convertToBlob!==void 0){let i=await s.convertToBlob({type:Be[t],quality:r});return new Promise((a,l)=>{let u=new FileReader;u.onload=()=>a(u.result),u.onerror=l,u.readAsDataURL(i)})}throw new Error("Extract.base64() requires ICanvas.toDataURL, ICanvas.toBlob, or ICanvas.convertToBlob to be implemented")}canvas(e){e=this._normalizeOptions(e);let t=e.target,r=this._renderer;if(t instanceof f)return r.texture.generateCanvas(t);let s=r.textureGenerator.generateTexture(e),i=r.texture.generateCanvas(s);return s.destroy(!0),i}pixels(e){e=this._normalizeOptions(e);let t=e.target,r=this._renderer,s=t instanceof f?t:r.textureGenerator.generateTexture(e),i=r.texture.getPixels(s);return t instanceof g&&s.destroy(!0),i}texture(e){return e=this._normalizeOptions(e),e.target instanceof f?e.target:this._renderer.textureGenerator.generateTexture(e)}download(e){e=this._normalizeOptions(e);let t=this.canvas(e),r=document.createElement("a");r.download=e.filename??"image.png",r.href=t.toDataURL("image/png"),document.body.appendChild(r),r.click(),document.body.removeChild(r)}log(e){let t=e.width??200;e=this._normalizeOptions(e);let r=this.canvas(e),s=r.toDataURL();console.log(`[Pixi Texture] ${r.width}px ${r.height}px`);let i=["font-size: 1px;",`padding: ${t}px 300px;`,`background: url(${s}) no-repeat;`,"background-size: contain;"].join(" ");console.log("%c ",i)}destroy(){this._renderer=null}};Ee.extension={type:[o.WebGLSystem,o.WebGPUSystem],name:"extract"};Ee.defaultImageOptions={format:"png",quality:1};var at=Ee;var ce=class n extends f{static create(e){return new n({source:new b(e)})}resize(e,t,r){return this.source.resize(e,t,r),this}};var Bt=new k,Et=new M,Ut=[0,0,0,0],Q=class{constructor(e){this._renderer=e}generateTexture(e){e instanceof g&&(e={target:e,frame:void 0,textureSourceOptions:{},resolution:void 0});let t=e.resolution||this._renderer.resolution,r=e.antialias||this._renderer.view.antialias,s=e.target,i=e.clearColor;i?i=Array.isArray(i)&&i.length===4?i:v.shared.setValue(i).toArray():i=Ut;let a=e.frame?.copyTo(Bt)||De(s,Et).rectangle;a.width=Math.max(a.width,1/t)|0,a.height=Math.max(a.height,1/t)|0;let l=ce.create({...e.textureSourceOptions,width:a.width,height:a.height,resolution:t,antialias:r}),u=x.shared.translate(-a.x,-a.y);return this._renderer.render({container:s,transform:u,target:l,clearColor:i}),l.source.updateMipmaps(),l}destroy(){this._renderer=null}};Q.extension={type:[o.WebGLSystem,o.WebGPUSystem],name:"textureGenerator"};var Z=class{constructor(e){this._stackIndex=0,this._globalUniformDataStack=[],this._uniformsPool=[],this._activeUniforms=[],this._bindGroupPool=[],this._activeBindGroups=[],this._renderer=e}reset(){this._stackIndex=0;for(let e=0;e<this._activeUniforms.length;e++)this._uniformsPool.push(this._activeUniforms[e]);for(let e=0;e<this._activeBindGroups.length;e++)this._bindGroupPool.push(this._activeBindGroups[e]);this._activeUniforms.length=0,this._activeBindGroups.length=0}start(e){this.reset(),this.push(e)}bind({size:e,projectionMatrix:t,worldTransformMatrix:r,worldColor:s,offset:i}){let a=this._renderer.renderTarget.renderTarget,l=this._stackIndex?this._globalUniformDataStack[this._stackIndex-1]:{projectionData:a,worldTransformMatrix:new x,worldColor:4294967295,offset:new Ge},u={projectionMatrix:t||this._renderer.renderTarget.projectionMatrix,resolution:e||a.size,worldTransformMatrix:r||l.worldTransformMatrix,worldColor:s||l.worldColor,offset:i||l.offset,bindGroup:null},d=this._uniformsPool.pop()||this._createUniforms();this._activeUniforms.push(d);let c=d.uniforms;c.uProjectionMatrix=u.projectionMatrix,c.uResolution=u.resolution,c.uWorldTransformMatrix.copyFrom(u.worldTransformMatrix),c.uWorldTransformMatrix.tx-=u.offset.x,c.uWorldTransformMatrix.ty-=u.offset.y,je(u.worldColor,c.uWorldColorAlpha,0),d.update();let h;this._renderer.renderPipes.uniformBatch?h=this._renderer.renderPipes.uniformBatch.getUniformBindGroup(d,!1):(h=this._bindGroupPool.pop()||new ze,this._activeBindGroups.push(h),h.setResource(d,0)),u.bindGroup=h,this._currentGlobalUniformData=u}push(e){this.bind(e),this._globalUniformDataStack[this._stackIndex++]=this._currentGlobalUniformData}pop(){this._currentGlobalUniformData=this._globalUniformDataStack[--this._stackIndex-1],this._renderer.type===R.WEBGL&&this._currentGlobalUniformData.bindGroup.resources[0].update()}get bindGroup(){return this._currentGlobalUniformData.bindGroup}get globalUniformData(){return this._currentGlobalUniformData}get uniformGroup(){return this._currentGlobalUniformData.bindGroup.resources[0]}_createUniforms(){return new oe({uProjectionMatrix:{value:new x,type:"mat3x3<f32>"},uWorldTransformMatrix:{value:new x,type:"mat3x3<f32>"},uWorldColorAlpha:{value:new Float32Array(4),type:"vec4<f32>"},uResolution:{value:[0,0],type:"vec2<f32>"}},{isStatic:!0})}destroy(){this._renderer=null,this._globalUniformDataStack.length=0,this._uniformsPool.length=0,this._activeUniforms.length=0,this._bindGroupPool.length=0,this._activeBindGroups.length=0,this._currentGlobalUniformData=null}};Z.extension={type:[o.WebGLSystem,o.WebGPUSystem,o.CanvasSystem],name:"globalUniforms"};var It=1,ee=class{constructor(){this._tasks=[],this._offset=0}init(){ge.system.add(this._update,this)}repeat(e,t,r=!0){let s=It++,i=0;return r&&(this._offset+=1e3,i=this._offset),this._tasks.push({func:e,duration:t,start:performance.now(),offset:i,last:performance.now(),repeat:!0,id:s}),s}cancel(e){for(let t=0;t<this._tasks.length;t++)if(this._tasks[t].id===e){this._tasks.splice(t,1);return}}_update(){let e=performance.now();for(let t=0;t<this._tasks.length;t++){let r=this._tasks[t];if(e-r.offset-r.last>=r.duration){let s=e-r.start;r.func(s),r.last=e}}}destroy(){ge.system.remove(this._update,this),this._tasks.length=0}};ee.extension={type:[o.WebGLSystem,o.WebGPUSystem,o.CanvasSystem],name:"scheduler",priority:0};var ot=!1;function lt(n){if(!ot){if(P.get().getNavigator().userAgent.toLowerCase().indexOf("chrome")>-1){let e=[`%c %c %c %c %c PixiJS %c v${E} (${n}) http://www.pixijs.com/
|
|
171
|
+
|
|
172
|
+
`,"background: #E72264; padding:5px 0;","background: #6CA2EA; padding:5px 0;","background: #B5D33D; padding:5px 0;","background: #FED23F; padding:5px 0;","color: #FFFFFF; background: #E72264; padding:5px 0;","color: #E72264; background: #FFFFFF; padding:5px 0;"];globalThis.console.log(...e)}else globalThis.console&&globalThis.console.log(`PixiJS ${E} - ${n} - http://www.pixijs.com/`);ot=!0}}var U=class{constructor(e){this._renderer=e}init(e){if(e.hello){let t=this._renderer.name;this._renderer.type===R.WEBGL&&(t+=` ${this._renderer.context.webGLVersion}`),lt(t)}}};U.extension={type:[o.WebGLSystem,o.WebGPUSystem,o.CanvasSystem],name:"hello",priority:-2};U.defaultOptions={hello:!1};function ut(n){let e=!1;for(let r in n)if(n[r]==null){e=!0;break}if(!e)return n;let t=Object.create(null);for(let r in n){let s=n[r];s&&(t[r]=s)}return t}function dt(n){let e=0;for(let t=0;t<n.length;t++)n[t]==null?e++:n[t-e]=n[t];return n.length-=e,n}var At=0,Ue=class ct{constructor(e){this._managedRenderables=[],this._managedHashes=[],this._managedArrays=[],this._renderer=e}init(e){e={...ct.defaultOptions,...e},this.maxUnusedTime=e.renderableGCMaxUnusedTime,this._frequency=e.renderableGCFrequency,this.enabled=e.renderableGCActive}get enabled(){return!!this._handler}set enabled(e){this.enabled!==e&&(e?(this._handler=this._renderer.scheduler.repeat(()=>this.run(),this._frequency,!1),this._hashHandler=this._renderer.scheduler.repeat(()=>{for(let t of this._managedHashes)t.context[t.hash]=ut(t.context[t.hash])},this._frequency),this._arrayHandler=this._renderer.scheduler.repeat(()=>{for(let t of this._managedArrays)dt(t.context[t.hash])},this._frequency)):(this._renderer.scheduler.cancel(this._handler),this._renderer.scheduler.cancel(this._hashHandler),this._renderer.scheduler.cancel(this._arrayHandler)))}addManagedHash(e,t){this._managedHashes.push({context:e,hash:t})}addManagedArray(e,t){this._managedArrays.push({context:e,hash:t})}prerender({container:e}){this._now=performance.now(),e.renderGroup.gcTick=At++,this._updateInstructionGCTick(e.renderGroup,e.renderGroup.gcTick)}addRenderable(e){this.enabled&&(e._lastUsed===-1&&(this._managedRenderables.push(e),e.once("destroyed",this._removeRenderable,this)),e._lastUsed=this._now)}run(){let e=this._now,t=this._managedRenderables,r=this._renderer.renderPipes,s=0;for(let i=0;i<t.length;i++){let a=t[i];if(a===null){s++;continue}let l=a.renderGroup??a.parentRenderGroup,u=l?.instructionSet?.gcTick??-1;if((l?.gcTick??0)===u&&(a._lastUsed=e),e-a._lastUsed>this.maxUnusedTime){if(!a.destroyed){let d=r;l&&(l.structureDidChange=!0),d[a.renderPipeId].destroyRenderable(a)}a._lastUsed=-1,s++,a.off("destroyed",this._removeRenderable,this)}else t[i-s]=a}t.length-=s}destroy(){this.enabled=!1,this._renderer=null,this._managedRenderables.length=0,this._managedHashes.length=0,this._managedArrays.length=0}_removeRenderable(e){let t=this._managedRenderables.indexOf(e);t>=0&&(e.off("destroyed",this._removeRenderable,this),this._managedRenderables[t]=null)}_updateInstructionGCTick(e,t){e.instructionSet.gcTick=t;for(let r of e.renderGroupChildren)this._updateInstructionGCTick(r,t)}};Ue.extension={type:[o.WebGLSystem,o.WebGPUSystem],name:"renderableGC",priority:0};Ue.defaultOptions={renderableGCActive:!0,renderableGCMaxUnusedTime:6e4,renderableGCFrequency:3e4};var ht=Ue;var Ie=class ft{constructor(e){this._renderer=e,this.count=0,this.checkCount=0}init(e){e={...ft.defaultOptions,...e},this.checkCountMax=e.textureGCCheckCountMax,this.maxIdle=e.textureGCAMaxIdle??e.textureGCMaxIdle,this.active=e.textureGCActive}postrender(){this._renderer.renderingToScreen&&(this.count++,this.active&&(this.checkCount++,this.checkCount>this.checkCountMax&&(this.checkCount=0,this.run())))}run(){let e=this._renderer.texture.managedTextures;for(let t=0;t<e.length;t++){let r=e[t];r.autoGarbageCollect&&r.resource&&r._touched>-1&&this.count-r._touched>this.maxIdle&&(r._touched=-1,r.unload())}}destroy(){this._renderer=null}};Ie.extension={type:[o.WebGLSystem,o.WebGPUSystem],name:"textureGC"};Ie.defaultOptions={textureGCActive:!0,textureGCAMaxIdle:null,textureGCMaxIdle:3600,textureGCCheckCountMax:600};var pt=Ie;var mt=class xt{constructor(e={}){if(this.uid=_("renderTarget"),this.colorTextures=[],this.dirtyId=0,this.isRoot=!1,this._size=new Float32Array(2),this._managedColorTextures=!1,e={...xt.defaultOptions,...e},this.stencil=e.stencil,this.depth=e.depth,this.isRoot=e.isRoot,typeof e.colorTextures=="number"){this._managedColorTextures=!0;for(let t=0;t<e.colorTextures;t++)this.colorTextures.push(new b({width:e.width,height:e.height,resolution:e.resolution,antialias:e.antialias}))}else{this.colorTextures=[...e.colorTextures.map(r=>r.source)];let t=this.colorTexture.source;this.resize(t.width,t.height,t._resolution)}this.colorTexture.source.on("resize",this.onSourceResize,this),(e.depthStencilTexture||this.stencil)&&(e.depthStencilTexture instanceof f||e.depthStencilTexture instanceof b?this.depthStencilTexture=e.depthStencilTexture.source:this.ensureDepthStencilTexture())}get size(){let e=this._size;return e[0]=this.pixelWidth,e[1]=this.pixelHeight,e}get width(){return this.colorTexture.source.width}get height(){return this.colorTexture.source.height}get pixelWidth(){return this.colorTexture.source.pixelWidth}get pixelHeight(){return this.colorTexture.source.pixelHeight}get resolution(){return this.colorTexture.source._resolution}get colorTexture(){return this.colorTextures[0]}onSourceResize(e){this.resize(e.width,e.height,e._resolution,!0)}ensureDepthStencilTexture(){this.depthStencilTexture||(this.depthStencilTexture=new b({width:this.width,height:this.height,resolution:this.resolution,format:"depth24plus-stencil8",autoGenerateMipmaps:!1,antialias:!1,mipLevelCount:1}))}resize(e,t,r=this.resolution,s=!1){this.dirtyId++,this.colorTextures.forEach((i,a)=>{s&&a===0||i.source.resize(e,t,r)}),this.depthStencilTexture&&this.depthStencilTexture.source.resize(e,t,r)}destroy(){this.colorTexture.source.off("resize",this.onSourceResize,this),this._managedColorTextures&&this.colorTextures.forEach(e=>{e.destroy()}),this.depthStencilTexture&&(this.depthStencilTexture.destroy(),delete this.depthStencilTexture)}};mt.defaultOptions={width:0,height:0,resolution:1,colorTextures:1,stencil:!1,depth:!1,antialias:!1,isRoot:!1};var te=mt;var I=new Map;ie.register(I);function he(n,e){if(!I.has(n)){let t=new f({source:new D({resource:n,...e})}),r=()=>{I.get(n)===t&&I.delete(n)};t.once("destroy",r),t.source.once("destroy",r),I.set(n,t)}return I.get(n)}var Ae=class vt{get autoDensity(){return this.texture.source.autoDensity}set autoDensity(e){this.texture.source.autoDensity=e}get resolution(){return this.texture.source._resolution}set resolution(e){this.texture.source.resize(this.texture.source.width,this.texture.source.height,e)}init(e){e={...vt.defaultOptions,...e},e.view&&(ne(se,"ViewSystem.view has been renamed to ViewSystem.canvas"),e.canvas=e.view),this.screen=new k(0,0,e.width,e.height),this.canvas=e.canvas||P.get().createCanvas(),this.antialias=!!e.antialias,this.texture=he(this.canvas,e),this.renderTarget=new te({colorTextures:[this.texture],depth:!!e.depth,isRoot:!0}),this.texture.source.transparent=e.backgroundAlpha<1,this.resolution=e.resolution}resize(e,t,r){this.texture.source.resize(e,t,r),this.screen.width=this.texture.frame.width,this.screen.height=this.texture.frame.height}destroy(e=!1){(typeof e=="boolean"?e:e?.removeView)&&this.canvas.parentNode&&this.canvas.parentNode.removeChild(this.canvas),this.texture.destroy()}};Ae.extension={type:[o.WebGLSystem,o.WebGPUSystem,o.CanvasSystem],name:"view",priority:0};Ae.defaultOptions={width:800,height:600,autoDensity:!1,antialias:!1};var gt=Ae;var jn=[nt,Z,U,gt,V,pt,Q,at,$,ht,ee],$n=[J,Se,j,W,q,Y,K,H];var Kn={name:"texture-bit",vertex:{header:`
|
|
173
|
+
|
|
174
|
+
struct TextureUniforms {
|
|
175
|
+
uTextureMatrix:mat3x3<f32>,
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
@group(2) @binding(2) var<uniform> textureUniforms : TextureUniforms;
|
|
179
|
+
`,main:`
|
|
180
|
+
uv = (textureUniforms.uTextureMatrix * vec3(uv, 1.0)).xy;
|
|
181
|
+
`},fragment:{header:`
|
|
182
|
+
@group(2) @binding(0) var uTexture: texture_2d<f32>;
|
|
183
|
+
@group(2) @binding(1) var uSampler: sampler;
|
|
184
|
+
|
|
185
|
+
|
|
186
|
+
`,main:`
|
|
187
|
+
outColor = textureSample(uTexture, uSampler, vUV);
|
|
188
|
+
`}},Yn={name:"texture-bit",vertex:{header:`
|
|
189
|
+
uniform mat3 uTextureMatrix;
|
|
190
|
+
`,main:`
|
|
191
|
+
uv = (uTextureMatrix * vec3(uv, 1.0)).xy;
|
|
192
|
+
`},fragment:{header:`
|
|
193
|
+
uniform sampler2D uTexture;
|
|
194
|
+
|
|
195
|
+
|
|
196
|
+
`,main:`
|
|
197
|
+
outColor = texture(uTexture, vUV);
|
|
198
|
+
`}};var _t=class{constructor(e){this._syncFunctionHash=Object.create(null),this._adaptor=e,this._systemCheck()}_systemCheck(){if(!ue())throw new 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 _e({data:new Float32Array(t.layout.size/4),usage:F.UNIFORM|F.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 s=Object.keys(e.uniformStructures).map(l=>e.uniformStructures[l]),i=this._adaptor.createUboElements(s),a=this._generateUboSync(i.uboElements);r=this._syncFunctionHash[t]={layout:i,syncFunction:a}}return this._syncFunctionHash[t]}_generateUboSync(e){return this._adaptor.generateUboSync(e)}syncUniformGroup(e,t,r){let s=this.getUniformGroupData(e);e.buffer||(e.buffer=new _e({data:new Float32Array(s.layout.size/4),usage:F.UNIFORM|F.COPY_DST}));let i=null;return t||(t=e.buffer.data,i=e.buffer.dataInt32),r||(r=0),s.syncFunction(e.uniforms,t,i,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}};var bt=class extends O{constructor({buffer:e,offset:t,size:r}){super(),this.uid=_("buffer"),this._resourceType="bufferResource",this._touched=0,this._resourceId=_("resource"),this._bufferResource=!0,this.destroyed=!1,this.buffer=e,this.offset=t|0,this.size=r,this.buffer.on("change",this.onBufferChange,this)}onBufferChange(){this._resourceId=_("resource"),this.emit("change",this)}destroy(e=!1){this.destroyed=!0,e&&this.buffer.destroy(),this.emit("change",this),this.buffer=null,this.removeAllListeners()}};function ai(n,e){for(let t in n.attributes){let r=n.attributes[t],s=e[t];s?(r.format??(r.format=s.format),r.offset??(r.offset=s.offset),r.instance??(r.instance=s.instance)):w(`Attribute ${t} is not present in the shader, but is present in the geometry. Unable to infer attribute details.`)}Gt(n)}function Gt(n){let{buffers:e,attributes:t}=n,r={},s={};for(let i in e){let a=e[i];r[a.uid]=0,s[a.uid]=0}for(let i in t){let a=t[i];r[a.buffer.uid]+=be(a.format).stride}for(let i in t){let a=t[i];a.stride??(a.stride=r[a.buffer.uid]),a.start??(a.start=s[a.buffer.uid]),s[a.buffer.uid]+=be(a.format).stride}}var A=[];A[p.NONE]=void 0;A[p.DISABLED]={stencilWriteMask:0,stencilReadMask:0};A[p.RENDERING_MASK_ADD]={stencilFront:{compare:"equal",passOp:"increment-clamp"},stencilBack:{compare:"equal",passOp:"increment-clamp"}};A[p.RENDERING_MASK_REMOVE]={stencilFront:{compare:"equal",passOp:"decrement-clamp"},stencilBack:{compare:"equal",passOp:"decrement-clamp"}};A[p.MASK_ACTIVE]={stencilWriteMask:0,stencilFront:{compare:"equal",passOp:"keep"},stencilBack:{compare:"equal",passOp:"keep"}};A[p.INVERSE_MASK_ACTIVE]={stencilWriteMask:0,stencilFront:{compare:"not-equal",passOp:"keep"},stencilBack:{compare:"not-equal",passOp:"keep"}};function Tt(n,e,t,r,s,i){let a=i?1:-1;return n.identity(),n.a=1/r*2,n.d=a*(1/s*2),n.tx=-1-e*n.a,n.ty=-a-t*n.d,n}function yt(n){let e=n.colorTexture.source.resource;return globalThis.HTMLCanvasElement&&e instanceof HTMLCanvasElement&&document.body.contains(e)}var kt=class{constructor(e){this.rootViewPort=new k,this.viewport=new k,this.onRenderTargetChange=new B("onRenderTargetChange"),this.projectionMatrix=new x,this.defaultClearColor=[0,0,0,0],this._renderSurfaceToRenderTargetHash=new Map,this._gpuRenderTargetHash=Object.create(null),this._renderTargetStack=[],this._renderer=e,e.renderableGC.addManagedHash(this,"_gpuRenderTargetHash")}finishRenderPass(){this.adaptor.finishRenderPass(this.renderTarget)}renderStart({target:e,clear:t,clearColor:r,frame:s}){this._renderTargetStack.length=0,this.push(e,t,r,s),this.rootViewPort.copyFrom(this.viewport),this.rootRenderTarget=this.renderTarget,this.renderingToScreen=yt(this.rootRenderTarget),this.adaptor.prerender?.(this.rootRenderTarget)}postrender(){this.adaptor.postrender?.(this.rootRenderTarget)}bind(e,t=!0,r,s){let i=this.getRenderTarget(e),a=this.renderTarget!==i;this.renderTarget=i,this.renderSurface=e;let l=this.getGpuRenderTarget(i);(i.pixelWidth!==l.width||i.pixelHeight!==l.height)&&(this.adaptor.resizeGpuRenderTarget(i),l.width=i.pixelWidth,l.height=i.pixelHeight);let u=i.colorTexture,d=this.viewport,c=u.pixelWidth,h=u.pixelHeight;if(!s&&e instanceof f&&(s=e.frame),s){let m=u._resolution;d.x=s.x*m+.5|0,d.y=s.y*m+.5|0,d.width=s.width*m+.5|0,d.height=s.height*m+.5|0}else d.x=0,d.y=0,d.width=c,d.height=h;return Tt(this.projectionMatrix,0,0,d.width/u.resolution,d.height/u.resolution,!i.isRoot),this.adaptor.startRenderPass(i,t,r,d),a&&this.onRenderTargetChange.emit(i),i}clear(e,t=T.ALL,r){t&&(e&&(e=this.getRenderTarget(e)),this.adaptor.clear(e||this.renderTarget,t,r,this.viewport))}contextChange(){this._gpuRenderTargetHash=Object.create(null)}push(e,t=T.ALL,r,s){let i=this.bind(e,t,r,s);return this._renderTargetStack.push({renderTarget:i,frame:s}),i}pop(){this._renderTargetStack.pop();let e=this._renderTargetStack[this._renderTargetStack.length-1];this.bind(e.renderTarget,!1,null,e.frame)}getRenderTarget(e){return e.isTexture&&(e=e.source),this._renderSurfaceToRenderTargetHash.get(e)??this._initRenderTarget(e)}copyToTexture(e,t,r,s,i){r.x<0&&(s.width+=r.x,i.x-=r.x,r.x=0),r.y<0&&(s.height+=r.y,i.y-=r.y,r.y=0);let{pixelWidth:a,pixelHeight:l}=e;return s.width=Math.min(s.width,a-r.x),s.height=Math.min(s.height,l-r.y),this.adaptor.copyToTexture(e,t,r,s,i)}ensureDepthStencil(){this.renderTarget.stencil||(this.renderTarget.stencil=!0,this.adaptor.startRenderPass(this.renderTarget,!1,null,this.viewport))}destroy(){this._renderer=null,this._renderSurfaceToRenderTargetHash.forEach((e,t)=>{e!==t&&e.destroy()}),this._renderSurfaceToRenderTargetHash.clear(),this._gpuRenderTargetHash=Object.create(null)}_initRenderTarget(e){let t=null;return D.test(e)&&(e=he(e).source),e instanceof te?t=e:e instanceof b&&(t=new te({colorTextures:[e]}),e.source instanceof D&&(t.isRoot=!0),e.once("destroy",()=>{t.destroy(),this._renderSurfaceToRenderTargetHash.delete(e);let r=this._gpuRenderTargetHash[t.uid];r&&(this._gpuRenderTargetHash[t.uid]=null,this.adaptor.destroyGpuRenderTarget(r))})),this._renderSurfaceToRenderTargetHash.set(e,t),t}getGpuRenderTarget(e){return this._gpuRenderTargetHash[e.uid]||(this._gpuRenderTargetHash[e.uid]=this.adaptor.initGpuRenderTarget(e))}resetState(){this.renderTarget=null,this.renderSurface=null}};var re=[{type:"mat3x3<f32>",test:n=>n.value.a!==void 0,ubo:`
|
|
199
|
+
var matrix = uv[name].toArray(true);
|
|
200
|
+
data[offset] = matrix[0];
|
|
201
|
+
data[offset + 1] = matrix[1];
|
|
202
|
+
data[offset + 2] = matrix[2];
|
|
203
|
+
data[offset + 4] = matrix[3];
|
|
204
|
+
data[offset + 5] = matrix[4];
|
|
205
|
+
data[offset + 6] = matrix[5];
|
|
206
|
+
data[offset + 8] = matrix[6];
|
|
207
|
+
data[offset + 9] = matrix[7];
|
|
208
|
+
data[offset + 10] = matrix[8];
|
|
209
|
+
`,uniform:`
|
|
210
|
+
gl.uniformMatrix3fv(ud[name].location, false, uv[name].toArray(true));
|
|
211
|
+
`},{type:"vec4<f32>",test:n=>n.type==="vec4<f32>"&&n.size===1&&n.value.width!==void 0,ubo:`
|
|
212
|
+
v = uv[name];
|
|
213
|
+
data[offset] = v.x;
|
|
214
|
+
data[offset + 1] = v.y;
|
|
215
|
+
data[offset + 2] = v.width;
|
|
216
|
+
data[offset + 3] = v.height;
|
|
217
|
+
`,uniform:`
|
|
218
|
+
cv = ud[name].value;
|
|
219
|
+
v = uv[name];
|
|
220
|
+
if (cv[0] !== v.x || cv[1] !== v.y || cv[2] !== v.width || cv[3] !== v.height) {
|
|
221
|
+
cv[0] = v.x;
|
|
222
|
+
cv[1] = v.y;
|
|
223
|
+
cv[2] = v.width;
|
|
224
|
+
cv[3] = v.height;
|
|
225
|
+
gl.uniform4f(ud[name].location, v.x, v.y, v.width, v.height);
|
|
226
|
+
}
|
|
227
|
+
`},{type:"vec2<f32>",test:n=>n.type==="vec2<f32>"&&n.size===1&&n.value.x!==void 0,ubo:`
|
|
228
|
+
v = uv[name];
|
|
229
|
+
data[offset] = v.x;
|
|
230
|
+
data[offset + 1] = v.y;
|
|
231
|
+
`,uniform:`
|
|
232
|
+
cv = ud[name].value;
|
|
233
|
+
v = uv[name];
|
|
234
|
+
if (cv[0] !== v.x || cv[1] !== v.y) {
|
|
235
|
+
cv[0] = v.x;
|
|
236
|
+
cv[1] = v.y;
|
|
237
|
+
gl.uniform2f(ud[name].location, v.x, v.y);
|
|
238
|
+
}
|
|
239
|
+
`},{type:"vec4<f32>",test:n=>n.type==="vec4<f32>"&&n.size===1&&n.value.red!==void 0,ubo:`
|
|
240
|
+
v = uv[name];
|
|
241
|
+
data[offset] = v.red;
|
|
242
|
+
data[offset + 1] = v.green;
|
|
243
|
+
data[offset + 2] = v.blue;
|
|
244
|
+
data[offset + 3] = v.alpha;
|
|
245
|
+
`,uniform:`
|
|
246
|
+
cv = ud[name].value;
|
|
247
|
+
v = uv[name];
|
|
248
|
+
if (cv[0] !== v.red || cv[1] !== v.green || cv[2] !== v.blue || cv[3] !== v.alpha) {
|
|
249
|
+
cv[0] = v.red;
|
|
250
|
+
cv[1] = v.green;
|
|
251
|
+
cv[2] = v.blue;
|
|
252
|
+
cv[3] = v.alpha;
|
|
253
|
+
gl.uniform4f(ud[name].location, v.red, v.green, v.blue, v.alpha);
|
|
254
|
+
}
|
|
255
|
+
`},{type:"vec3<f32>",test:n=>n.type==="vec3<f32>"&&n.size===1&&n.value.red!==void 0,ubo:`
|
|
256
|
+
v = uv[name];
|
|
257
|
+
data[offset] = v.red;
|
|
258
|
+
data[offset + 1] = v.green;
|
|
259
|
+
data[offset + 2] = v.blue;
|
|
260
|
+
`,uniform:`
|
|
261
|
+
cv = ud[name].value;
|
|
262
|
+
v = uv[name];
|
|
263
|
+
if (cv[0] !== v.red || cv[1] !== v.green || cv[2] !== v.blue) {
|
|
264
|
+
cv[0] = v.red;
|
|
265
|
+
cv[1] = v.green;
|
|
266
|
+
cv[2] = v.blue;
|
|
267
|
+
gl.uniform3f(ud[name].location, v.red, v.green, v.blue);
|
|
268
|
+
}
|
|
269
|
+
`}];function Si(n,e,t,r){let s=[`
|
|
270
|
+
var v = null;
|
|
271
|
+
var v2 = null;
|
|
272
|
+
var t = 0;
|
|
273
|
+
var index = 0;
|
|
274
|
+
var name = null;
|
|
275
|
+
var arrayOffset = null;
|
|
276
|
+
`],i=0;for(let l=0;l<n.length;l++){let u=n[l],d=u.data.name,c=!1,h=0;for(let m=0;m<re.length;m++)if(re[m].test(u.data)){h=u.offset/4,s.push(`name = "${d}";`,`offset += ${h-i};`,re[m][e]||re[m].ubo),c=!0;break}if(!c)if(u.data.size>1)h=u.offset/4,s.push(t(u,h-i));else{let m=r[u.data.type];h=u.offset/4,s.push(`
|
|
277
|
+
v = uv.${d};
|
|
278
|
+
offset += ${h-i};
|
|
279
|
+
${m};
|
|
280
|
+
`)}i=h}let a=s.join(`
|
|
281
|
+
`);return new Function("uv","data","dataInt32","offset",a)}function G(n,e){return`
|
|
282
|
+
for (let i = 0; i < ${n*e}; i++) {
|
|
283
|
+
data[offset + (((i / ${n})|0) * 4) + (i % ${n})] = v[i];
|
|
284
|
+
}
|
|
285
|
+
`}var Ot={f32:`
|
|
286
|
+
data[offset] = v;`,i32:`
|
|
287
|
+
dataInt32[offset] = v;`,"vec2<f32>":`
|
|
288
|
+
data[offset] = v[0];
|
|
289
|
+
data[offset + 1] = v[1];`,"vec3<f32>":`
|
|
290
|
+
data[offset] = v[0];
|
|
291
|
+
data[offset + 1] = v[1];
|
|
292
|
+
data[offset + 2] = v[2];`,"vec4<f32>":`
|
|
293
|
+
data[offset] = v[0];
|
|
294
|
+
data[offset + 1] = v[1];
|
|
295
|
+
data[offset + 2] = v[2];
|
|
296
|
+
data[offset + 3] = v[3];`,"vec2<i32>":`
|
|
297
|
+
dataInt32[offset] = v[0];
|
|
298
|
+
dataInt32[offset + 1] = v[1];`,"vec3<i32>":`
|
|
299
|
+
dataInt32[offset] = v[0];
|
|
300
|
+
dataInt32[offset + 1] = v[1];
|
|
301
|
+
dataInt32[offset + 2] = v[2];`,"vec4<i32>":`
|
|
302
|
+
dataInt32[offset] = v[0];
|
|
303
|
+
dataInt32[offset + 1] = v[1];
|
|
304
|
+
dataInt32[offset + 2] = v[2];
|
|
305
|
+
dataInt32[offset + 3] = v[3];`,"mat2x2<f32>":`
|
|
306
|
+
data[offset] = v[0];
|
|
307
|
+
data[offset + 1] = v[1];
|
|
308
|
+
data[offset + 4] = v[2];
|
|
309
|
+
data[offset + 5] = v[3];`,"mat3x3<f32>":`
|
|
310
|
+
data[offset] = v[0];
|
|
311
|
+
data[offset + 1] = v[1];
|
|
312
|
+
data[offset + 2] = v[2];
|
|
313
|
+
data[offset + 4] = v[3];
|
|
314
|
+
data[offset + 5] = v[4];
|
|
315
|
+
data[offset + 6] = v[5];
|
|
316
|
+
data[offset + 8] = v[6];
|
|
317
|
+
data[offset + 9] = v[7];
|
|
318
|
+
data[offset + 10] = v[8];`,"mat4x4<f32>":`
|
|
319
|
+
for (let i = 0; i < 16; i++) {
|
|
320
|
+
data[offset + i] = v[i];
|
|
321
|
+
}`,"mat3x2<f32>":G(3,2),"mat4x2<f32>":G(4,2),"mat2x3<f32>":G(2,3),"mat4x3<f32>":G(4,3),"mat2x4<f32>":G(2,4),"mat3x4<f32>":G(3,4)},Pi={...Ot,"mat2x2<f32>":`
|
|
322
|
+
data[offset] = v[0];
|
|
323
|
+
data[offset + 1] = v[1];
|
|
324
|
+
data[offset + 2] = v[2];
|
|
325
|
+
data[offset + 3] = v[3];
|
|
326
|
+
`};export{T as a,Zt as b,Kn as c,Yn as d,jn as e,$n as f,_t as g,re as h,Si as i,Ot as j,Pi as k,bt as l,ai as m,A as n,kt as o};
|
|
327
|
+
//# sourceMappingURL=chunk-RFNLITDQ.js.map
|