agmon 0.1.1 → 0.1.3
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/.next/BUILD_ID +1 -0
- package/.next/app-path-routes-manifest.json +7 -0
- package/.next/build/chunks/[root-of-the-server]__05i36w1t4lzaf._.js +502 -0
- package/.next/build/chunks/[root-of-the-server]__05i36w1t4lzaf._.js.map +11 -0
- package/.next/build/chunks/[root-of-the-server]__1kki86fknkq7y._.js +190 -0
- package/.next/build/chunks/[root-of-the-server]__1kki86fknkq7y._.js.map +8 -0
- package/.next/build/chunks/[turbopack-node]_transforms_postcss_ts_1gfkiq9iz8yb8._.js +13 -0
- package/.next/build/chunks/[turbopack-node]_transforms_postcss_ts_1gfkiq9iz8yb8._.js.map +5 -0
- package/.next/build/chunks/[turbopack]_runtime.js +1056 -0
- package/.next/build/chunks/[turbopack]_runtime.js.map +11 -0
- package/.next/build/chunks/node_modules_20v-8wlfss9m1._.js +7314 -0
- package/.next/build/chunks/node_modules_20v-8wlfss9m1._.js.map +47 -0
- package/.next/build/chunks/pool_entry-[turbopack-node]_transforms_postcss_ts_0tp-k2vy8nj6i._.js +6 -0
- package/.next/build/chunks/pool_entry-[turbopack-node]_transforms_postcss_ts_0tp-k2vy8nj6i._.js.map +5 -0
- package/.next/build/package.json +1 -0
- package/.next/build-manifest.json +54 -0
- package/.next/export-marker.json +6 -0
- package/.next/fallback-build-manifest.json +15 -0
- package/.next/images-manifest.json +68 -0
- package/.next/next-minimal-server.js.nft.json +1 -0
- package/.next/next-server.js.nft.json +1 -0
- package/.next/package.json +1 -0
- package/.next/prerender-manifest.json +97 -0
- package/.next/required-server-files.js +366 -0
- package/.next/required-server-files.json +366 -0
- package/.next/routes-manifest.json +75 -0
- package/.next/server/app/_global-error/page/app-paths-manifest.json +3 -0
- package/.next/server/app/_global-error/page/build-manifest.json +21 -0
- package/.next/server/app/_global-error/page/next-font-manifest.json +6 -0
- package/.next/server/app/_global-error/page/react-loadable-manifest.json +1 -0
- package/.next/server/app/_global-error/page/server-reference-manifest.json +4 -0
- package/.next/server/app/_global-error/page.js +10 -0
- package/.next/server/app/_global-error/page.js.map +5 -0
- package/.next/server/app/_global-error/page.js.nft.json +1 -0
- package/.next/server/app/_global-error/page_client-reference-manifest.js +3 -0
- package/.next/server/app/_global-error.html +1 -0
- package/.next/server/app/_global-error.meta +30 -0
- package/.next/server/app/_global-error.rsc +18 -0
- package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +23 -0
- package/.next/server/app/_global-error.segments/_full.segment.rsc +18 -0
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +2 -0
- package/.next/server/app/_not-found/page/app-paths-manifest.json +3 -0
- package/.next/server/app/_not-found/page/build-manifest.json +21 -0
- package/.next/server/app/_not-found/page/next-font-manifest.json +6 -0
- package/.next/server/app/_not-found/page/react-loadable-manifest.json +1 -0
- package/.next/server/app/_not-found/page/server-reference-manifest.json +4 -0
- package/.next/server/app/_not-found/page.js +12 -0
- package/.next/server/app/_not-found/page.js.map +5 -0
- package/.next/server/app/_not-found/page.js.nft.json +1 -0
- package/.next/server/app/_not-found/page_client-reference-manifest.js +3 -0
- package/.next/server/app/_not-found.html +1 -0
- package/.next/server/app/_not-found.meta +35 -0
- package/.next/server/app/_not-found.rsc +22 -0
- package/.next/server/app/_not-found.segments/_full.segment.rsc +22 -0
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +28 -0
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +4 -0
- package/.next/server/app/api/traces/stream/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/traces/stream/route/build-manifest.json +12 -0
- package/.next/server/app/api/traces/stream/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/traces/stream/route.js +7 -0
- package/.next/server/app/api/traces/stream/route.js.map +5 -0
- package/.next/server/app/api/traces/stream/route.js.nft.json +1 -0
- package/.next/server/app/api/traces/stream/route_client-reference-manifest.js +3 -0
- package/.next/server/app/api/version/route/app-paths-manifest.json +3 -0
- package/.next/server/app/api/version/route/build-manifest.json +12 -0
- package/.next/server/app/api/version/route/server-reference-manifest.json +4 -0
- package/.next/server/app/api/version/route.js +7 -0
- package/.next/server/app/api/version/route.js.map +5 -0
- package/.next/server/app/api/version/route.js.nft.json +1 -0
- package/.next/server/app/api/version/route_client-reference-manifest.js +3 -0
- package/.next/server/app/index.html +1 -0
- package/.next/server/app/index.meta +29 -0
- package/.next/server/app/index.rsc +29 -0
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +34 -0
- package/.next/server/app/index.segments/_full.segment.rsc +29 -0
- package/.next/server/app/index.segments/_tree.segment.rsc +3 -0
- package/.next/server/app/page/app-paths-manifest.json +3 -0
- package/.next/server/app/page/build-manifest.json +21 -0
- package/.next/server/app/page/next-font-manifest.json +6 -0
- package/.next/server/app/page/react-loadable-manifest.json +1 -0
- package/.next/server/app/page/server-reference-manifest.json +4 -0
- package/.next/server/app/page.js +13 -0
- package/.next/server/app/page.js.map +5 -0
- package/.next/server/app/page.js.nft.json +1 -0
- package/.next/server/app/page_client-reference-manifest.js +3 -0
- package/.next/server/app-paths-manifest.json +7 -0
- package/.next/server/chunks/[externals]__0bwf06g0pqv3h._.js +3 -0
- package/.next/server/chunks/[externals]__0bwf06g0pqv3h._.js.map +1 -0
- package/.next/server/chunks/[externals]__1p2j9_5g429uh._.js +3 -0
- package/.next/server/chunks/[externals]__1p2j9_5g429uh._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__04an4kw4xcc5l._.js +5 -0
- package/.next/server/chunks/[root-of-the-server]__04an4kw4xcc5l._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__1s6v8mz-nanm-._.js +5 -0
- package/.next/server/chunks/[root-of-the-server]__1s6v8mz-nanm-._.js.map +1 -0
- package/.next/server/chunks/[root-of-the-server]__20xfs4y2ipcvv._.js +320 -0
- package/.next/server/chunks/[root-of-the-server]__20xfs4y2ipcvv._.js.map +1 -0
- package/.next/server/chunks/[turbopack]_runtime.js +937 -0
- package/.next/server/chunks/[turbopack]_runtime.js.map +10 -0
- package/.next/server/chunks/_next-internal_server_app_api_traces_stream_route_actions_07rmicxgds803.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_traces_stream_route_actions_07rmicxgds803.js.map +1 -0
- package/.next/server/chunks/_next-internal_server_app_api_version_route_actions_0kbx30hro8e93.js +3 -0
- package/.next/server/chunks/_next-internal_server_app_api_version_route_actions_0kbx30hro8e93.js.map +1 -0
- package/.next/server/chunks/ssr/1q96_modules_pixi_js_lib_rendering_renderers_canvas_CanvasRenderer_mjs_1xntzghggpb51._.js +3 -0
- package/.next/server/chunks/ssr/1q96_modules_pixi_js_lib_rendering_renderers_canvas_CanvasRenderer_mjs_1xntzghggpb51._.js.map +1 -0
- package/.next/server/chunks/ssr/1q96_modules_pixi_js_lib_rendering_renderers_gpu_WebGPURenderer_mjs_00tc9jrf-ft1_._.js +76 -0
- package/.next/server/chunks/ssr/1q96_modules_pixi_js_lib_rendering_renderers_gpu_WebGPURenderer_mjs_00tc9jrf-ft1_._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__08zgqq_38tv57._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__08zgqq_38tv57._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0aa2929udndo-._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0aa2929udndo-._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0ayw3c9e93kvf._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0ayw3c9e93kvf._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0ojpb-dtuk3-q._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0ojpb-dtuk3-q._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0py1t7q9ntzgc._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__0py1t7q9ntzgc._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__1cf6qt9agg_9-._.js +14 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__1cf6qt9agg_9-._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__1e1_fmeab1ca7._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__1e1_fmeab1ca7._.js.map +1 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__1w2vu9hh0h02y._.js +3 -0
- package/.next/server/chunks/ssr/[root-of-the-server]__1w2vu9hh0h02y._.js.map +1 -0
- package/.next/server/chunks/ssr/[turbopack]_runtime.js +937 -0
- package/.next/server/chunks/ssr/[turbopack]_runtime.js.map +10 -0
- package/.next/server/chunks/ssr/_next-internal_server_app__global-error_page_actions_0zi5s8-psc_d2.js +3 -0
- package/.next/server/chunks/ssr/_next-internal_server_app__global-error_page_actions_0zi5s8-psc_d2.js.map +1 -0
- package/.next/server/chunks/ssr/_next-internal_server_app__not-found_page_actions_0pt47yrisjoev.js +3 -0
- package/.next/server/chunks/ssr/_next-internal_server_app__not-found_page_actions_0pt47yrisjoev.js.map +1 -0
- package/.next/server/chunks/ssr/_next-internal_server_app_page_actions_0hhsz1jew5ls7.js +3 -0
- package/.next/server/chunks/ssr/_next-internal_server_app_page_actions_0hhsz1jew5ls7.js.map +1 -0
- package/.next/server/chunks/ssr/node_modules_01xbj_9zg44kw._.js +33 -0
- package/.next/server/chunks/ssr/node_modules_01xbj_9zg44kw._.js.map +1 -0
- package/.next/server/chunks/ssr/node_modules_0a548_llmwce7._.js +23 -0
- package/.next/server/chunks/ssr/node_modules_0a548_llmwce7._.js.map +1 -0
- package/.next/server/chunks/ssr/node_modules_0gxlxpuufujz9._.js +33 -0
- package/.next/server/chunks/ssr/node_modules_0gxlxpuufujz9._.js.map +1 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_0janj0i6dqko7._.js +6 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_0janj0i6dqko7._.js.map +1 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_1hgv5i-pr1hza._.js +3 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_1hgv5i-pr1hza._.js.map +1 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_client_components_0wpq8j32_ibz4._.js +3 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_client_components_0wpq8j32_ibz4._.js.map +1 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_forbidden_0symwr9mbf-fh.js +3 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_forbidden_0symwr9mbf-fh.js.map +1 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_global-error_0q-w892nagajq.js +3 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_global-error_0q-w892nagajq.js.map +1 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_unauthorized_0l_sp0xky89qu.js +3 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_unauthorized_0l_sp0xky89qu.js.map +1 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0aymk_x8-bu4q.js +3 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0aymk_x8-bu4q.js.map +1 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_19--w_z4y02i7.js +3 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_19--w_z4y02i7.js.map +1 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1qjycfedgh109.js +3 -0
- package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1qjycfedgh109.js.map +1 -0
- package/.next/server/chunks/ssr/node_modules_pixi_js_lib_0hcyh9uzlz7ci._.js +3 -0
- package/.next/server/chunks/ssr/node_modules_pixi_js_lib_0hcyh9uzlz7ci._.js.map +1 -0
- package/.next/server/chunks/ssr/node_modules_pixi_js_lib_0k3f3soanqdoq._.js +3 -0
- package/.next/server/chunks/ssr/node_modules_pixi_js_lib_0k3f3soanqdoq._.js.map +1 -0
- package/.next/server/chunks/ssr/node_modules_pixi_js_lib_0ovgsftn-uvbz._.js +3 -0
- package/.next/server/chunks/ssr/node_modules_pixi_js_lib_0ovgsftn-uvbz._.js.map +1 -0
- package/.next/server/chunks/ssr/node_modules_pixi_js_lib_0xa24fqr5c5qi._.js +5 -0
- package/.next/server/chunks/ssr/node_modules_pixi_js_lib_0xa24fqr5c5qi._.js.map +1 -0
- package/.next/server/chunks/ssr/node_modules_pixi_js_lib_0zrftay3kjup7._.js +5 -0
- package/.next/server/chunks/ssr/node_modules_pixi_js_lib_0zrftay3kjup7._.js.map +1 -0
- package/.next/server/chunks/ssr/node_modules_pixi_js_lib_1z4lgkg_w-7fr._.js +208 -0
- package/.next/server/chunks/ssr/node_modules_pixi_js_lib_1z4lgkg_w-7fr._.js.map +1 -0
- package/.next/server/chunks/ssr/node_modules_pixi_js_lib_1zjkoj2kc4hm-._.js +3 -0
- package/.next/server/chunks/ssr/node_modules_pixi_js_lib_1zjkoj2kc4hm-._.js.map +1 -0
- package/.next/server/chunks/ssr/node_modules_pixi_js_lib_environment-browser_browserAll_mjs_0xb_t3dj4ad1f._.js +16 -0
- package/.next/server/chunks/ssr/node_modules_pixi_js_lib_environment-browser_browserAll_mjs_0xb_t3dj4ad1f._.js.map +1 -0
- package/.next/server/chunks/ssr/node_modules_pixi_js_lib_filters_Filter_mjs_0luksfw8ekifi._.js +3 -0
- package/.next/server/chunks/ssr/node_modules_pixi_js_lib_filters_Filter_mjs_0luksfw8ekifi._.js.map +1 -0
- package/.next/server/chunks/ssr/node_modules_pixi_js_lib_filters_init_mjs_1o5fmm_m60v_s._.js +3 -0
- package/.next/server/chunks/ssr/node_modules_pixi_js_lib_filters_init_mjs_1o5fmm_m60v_s._.js.map +1 -0
- package/.next/server/chunks/ssr/node_modules_pixi_js_lib_rendering_1fkio2phhfvow._.js +196 -0
- package/.next/server/chunks/ssr/node_modules_pixi_js_lib_rendering_1fkio2phhfvow._.js.map +1 -0
- package/.next/server/chunks/ssr/node_modules_pixi_js_lib_rendering_1n1q7aum4i7zo._.js +196 -0
- package/.next/server/chunks/ssr/node_modules_pixi_js_lib_rendering_1n1q7aum4i7zo._.js.map +1 -0
- package/.next/server/chunks/ssr/node_modules_pixi_js_lib_rendering_renderers_10vpvx1o7svnk._.js +3 -0
- package/.next/server/chunks/ssr/node_modules_pixi_js_lib_rendering_renderers_10vpvx1o7svnk._.js.map +1 -0
- package/.next/server/chunks/ssr/node_modules_pixi_js_lib_rendering_renderers_gl_WebGLRenderer_mjs_1hlux44jh7dk-._.js +153 -0
- package/.next/server/chunks/ssr/node_modules_pixi_js_lib_rendering_renderers_gl_WebGLRenderer_mjs_1hlux44jh7dk-._.js.map +1 -0
- package/.next/server/chunks/ssr/src_app_page_1vqfk0-j72fp6.js +3 -0
- package/.next/server/chunks/ssr/src_app_page_1vqfk0-j72fp6.js.map +1 -0
- package/.next/server/functions-config-manifest.json +4 -0
- package/.next/server/interception-route-rewrite-manifest.js +1 -0
- package/.next/server/middleware-build-manifest.js +54 -0
- package/.next/server/middleware-manifest.json +6 -0
- package/.next/server/next-font-manifest.js +1 -0
- package/.next/server/next-font-manifest.json +6 -0
- package/.next/server/pages/404.html +1 -0
- package/.next/server/pages/500.html +1 -0
- package/.next/server/pages-manifest.json +4 -0
- package/.next/server/prefetch-hints.json +34 -0
- package/.next/server/preview-props.json +5 -0
- package/.next/server/server-reference-manifest.js +1 -0
- package/.next/server/server-reference-manifest.json +5 -0
- package/.next/static/chunks/0_9x2udu0iodw.js +1 -0
- package/.next/static/chunks/0cz1d0mv5g_q7.js +1 -0
- package/.next/static/chunks/0umf92h1sb77c.js +1 -0
- package/.next/static/chunks/10om7oix6wjze.js +1 -0
- package/.next/static/chunks/1780fh11o7pze.js +1 -0
- package/.next/static/chunks/1cldmiyw3ya18.js +21 -0
- package/.next/static/chunks/1unuqfq-vfqtp.js +1 -0
- package/.next/static/chunks/2-vsu_pt58kse.js +3 -0
- package/.next/static/chunks/2drjv1ti9t4pg.js +1 -0
- package/.next/static/chunks/2hgsvrrwu57--.css +1 -0
- package/.next/static/chunks/2ogvir8krwwhf.js +1 -0
- package/.next/static/chunks/2tc54fmsk8v8q.js +1 -0
- package/.next/static/chunks/304ue7hvto0o0.js +206 -0
- package/.next/static/chunks/31gve42sn75--.js +1 -0
- package/.next/static/chunks/32kizm_7q94vd.js +194 -0
- package/.next/static/chunks/33bap0u4zwgab.js +74 -0
- package/.next/static/chunks/3c4xol65z2da2.js +22 -0
- package/.next/static/chunks/3cfn99dbrcvvp.js +31 -0
- package/.next/static/chunks/3d6xc1eemxy82.js +1 -0
- package/.next/static/chunks/3ycr8gfnsg-xv.js +151 -0
- package/.next/static/chunks/3ytt3vrdhke9u.js +14 -0
- package/.next/static/chunks/turbopack-3-ry682tkyiqk.js +1 -0
- package/.next/static/cy2F4S28h_-YWqCOuE_ul/_buildManifest.js +11 -0
- package/.next/static/cy2F4S28h_-YWqCOuE_ul/_clientMiddlewareManifest.js +1 -0
- package/.next/static/cy2F4S28h_-YWqCOuE_ul/_ssgManifest.js +1 -0
- package/.next/trace +1 -0
- package/.next/trace-build +1 -0
- package/.next/types/cache-life.d.ts +114 -0
- package/.next/types/root-params.d.ts +3 -0
- package/.next/types/routes.d.ts +74 -0
- package/.next/types/validator.ts +17 -0
- package/bin/cli.js +24 -6
- package/package.json +6 -6
- package/src/app/api/traces/stream/route.js +2 -2
- package/src/app/layout.js +1 -1
- package/src/app/page.js +6 -19
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
module.exports=[69506,a=>{"use strict";var b=a.i(44373),c=a.i(67309),d=a.i(2780),e=a.i(35235),f=a.i(55960),g=a.i(28012),h=a.i(77686),i=a.i(586),j=a.i(56312),k=a.i(96335);class l{constructor(){this._maxTextures=0}contextChange(a){let b=new k.f({uTransformMatrix:{value:new c.f,type:"mat3x3<f32>"},uColor:{value:new Float32Array([1,1,1,1]),type:"vec4<f32>"},uRound:{value:0,type:"f32"}});this._maxTextures=a.limits.maxBatchableTextures;let d=(0,e.M)({name:"graphics",bits:[f.O,(0,g.u)(this._maxTextures),h.M,i.Z]});this.shader=new j.f({gpuProgram:d,resources:{localUniforms:b}})}execute(a,b){let c=b.context,e=c.customShader||this.shader,f=a.renderer,{batcher:g,instructions:h}=f.graphicsContext.getContextRenderData(c),i=f.encoder;i.setGeometry(g.geometry,e.gpuProgram);let j=f.globalUniforms.bindGroup;i.setBindGroup(0,j,e.gpuProgram);let k=f.renderPipes.uniformBatch.getUniformBindGroup(e.resources.localUniforms,!0);i.setBindGroup(2,k,e.gpuProgram);let l=h.instructions,m=null;for(let b=0;b<h.instructionSize;b++){let c=l[b];if(c.topology!==m&&(m=c.topology,i.setPipelineFromGeometryProgramAndState(g.geometry,e.gpuProgram,a.state,c.topology,e._overrides)),e.groups[1]=c.bindGroup,!c.gpuBindGroup){let a=c.textures;c.bindGroup=(0,d.f)(a.textures,a.count,this._maxTextures),c.gpuBindGroup=f.bindGroup.getBindGroup(c.bindGroup,e.gpuProgram,1)}i.setBindGroup(1,c.bindGroup,e.gpuProgram),i.renderPassEncoder.drawIndexed(c.size,1,c.start)}}destroy(){this.shader.destroy(),this.shader=null}}l.extension={type:[b.x.WebGPUPipesAdaptor],name:"graphics"};var m=a.i(84239),n=a.i(71805),o=a.i(51983);class p{init(){let a=(0,e.M)({name:"mesh",bits:[h.q,m.S,i.Z]});this._shader=new j.f({gpuProgram:a,resources:{uTexture:n.f.EMPTY._source,uSampler:n.f.EMPTY._source.style,textureUniforms:{uTextureMatrix:{type:"mat3x3<f32>",value:new c.f}}}})}execute(a,b){let c=a.renderer,d=b._shader;if(d){if(!d.gpuProgram)return void(0,o.f)("Mesh shader has no gpuProgram",b.shader)}else(d=this._shader).groups[2]=c.texture.getTextureBindGroup(b.texture);let e=d.gpuProgram;if(e.autoAssignGlobalUniforms&&(d.groups[0]=c.globalUniforms.bindGroup),e.autoAssignLocalUniforms){let b=a.localUniforms;d.groups[1]=c.renderPipes.uniformBatch.getUniformBindGroup(b,!0)}c.encoder.draw({geometry:b._geometry,shader:d,state:b.state})}destroy(){this._shader.destroy(),this._shader=null}}p.extension={type:[b.x.WebGPUPipesAdaptor],name:"mesh"};var q=a.i(45287);let r=q.A.for2d();class s{start(a,b,c){let d=a.renderer,e=d.encoder,f=c.gpuProgram;this._shader=c,this._geometry=b,e.setGeometry(b,f),r.blendMode="normal",d.pipeline.getPipeline(b,f,r,void 0,c._overrides);let g=d.globalUniforms.bindGroup;e.resetBindGroup(1),e.setBindGroup(0,g,f)}execute(a,b){let c=this._shader.gpuProgram,e=a.renderer,f=e.encoder;if(!b.bindGroup){let a=b.textures;b.bindGroup=(0,d.f)(a.textures,a.count,e.limits.maxBatchableTextures)}r.blendMode=b.blendMode;let g=e.bindGroup.getBindGroup(b.bindGroup,c,1),h=e.pipeline.getPipeline(this._geometry,c,r,b.topology,this._shader._overrides);b.bindGroup._touch(e.gc.now),f.setPipeline(h),f.renderPassEncoder.setBindGroup(1,g),f.renderPassEncoder.drawIndexed(b.size,1,b.start)}}s.extension={type:[b.x.WebGPUPipesAdaptor],name:"batch"};var t=a.i(67663),u=a.i(33057),v=a.i(53507);class w{constructor(a,b){this.autoGarbageCollect=!0,this._gpuData=null,this.gpuBindGroup=a,this._gcLastUsed=b}unload(){this.gpuBindGroup=null}}class x{constructor(a){this._hash=Object.create(null),this._renderer=a,a.gc.addResourceHash(this,"_hash","resource"),a.gc.addCollection(this,"_hash","hash")}contextChange(a){this._gpu=a,this._hash=Object.create(null)}getBindGroup(a,b,c){let d=`${a._key}:${b._layoutKey<<4|c}`,e=this._hash[d];return e?(e._gcLastUsed=this._renderer.gc.now,e.gpuBindGroup):this._createBindGroup(d,a,b,c)}_createBindGroup(a,b,c,d){let e=this._gpu.device,f=c.layout[d],g=[],h=this._renderer;for(let a in f){let c,d=b.resources[a]??b.resources[f[a]];if(!d||d.destroyed)throw Error(`[BindGroup] the resource bound as '${a}' was destroyed while a shader still uses it. Remove it from the shader before destroying it.`);if("uniformGroup"===d._resourceType){h.ubo.updateUniformGroup(d);let a=d.buffer;c={buffer:h.buffer.getGPUBuffer(a),offset:0,size:a.descriptor.size}}else"buffer"===d._resourceType?c={buffer:h.buffer.getGPUBuffer(d),offset:0,size:d.descriptor.size}:"bufferResource"===d._resourceType?c={buffer:h.buffer.getGPUBuffer(d.buffer),offset:d.offset,size:d.size??d.buffer.descriptor.size}:"textureSampler"===d._resourceType?c=h.texture.getGpuSampler(d):"textureSource"===d._resourceType?c=h.texture.getTextureView(d):"textureView"===d._resourceType&&(c=h.texture.getTextureView(d.source,d.viewDescriptor));g.push({binding:f[a],resource:c})}let i=h.shader.getProgramData(c).bindGroups[d],j=e.createBindGroup({layout:i,entries:g});return this._hash[a]=new w(j,h.gc.now),j}destroy(){this._hash=null,this._renderer=null}}x.extension={type:[b.x.WebGPUSystem],name:"bindGroup"};var y=a.i(46629),z=a.i(21655);class A{constructor(a){this.gpuBuffer=a}destroy(){this.gpuBuffer.destroy(),this.gpuBuffer=null}}class B{constructor(a){this._renderer=a,this._managedBuffers=new y.f({renderer:a,type:"resource",onUnload:this.onBufferUnload.bind(this),name:"gpuBuffer"})}contextChange(a){this._gpu=a,this.destroyAll()}getGPUBuffer(a){return a._gcLastUsed=this._renderer.gc.now,a._gpuData[this._renderer.uid]?.gpuBuffer||this.createGPUBuffer(a)}updateBuffer(a){let b=this.getGPUBuffer(a),c=a.data;return a._updateID&&c&&(a._updateID=0,this._gpu.device.queue.writeBuffer(b,a._updateOffset,c.buffer,c.byteOffset+a._updateOffset,(a._updateSize||c.byteLength)+3&-4)),b}destroyAll(){this._managedBuffers.removeAll()}onBufferUnload(a){a.off("update",this.updateBuffer,this),a.off("change",this.onBufferChange,this)}createGPUBuffer(a){let b=this._gpu.device.createBuffer(a.descriptor);return a._updateID=0,a.data&&((0,z.f)(a.data.buffer,b.getMappedRange(),a.data.byteOffset,a.data.byteLength),b.unmap()),a._gpuData[this._renderer.uid]=new A(b),this._managedBuffers.add(a)&&(a.on("update",this.updateBuffer,this),a.on("change",this.onBufferChange,this)),b}onBufferChange(a){this._managedBuffers.remove(a),a._updateID=0,this.createGPUBuffer(a)}destroy(){this._managedBuffers.destroy(),this._renderer=null,this._gpu=null}}B.extension={type:[b.x.WebGPUSystem],name:"buffer"};class C{constructor(a){this._colorMaskCache=15,this._renderer=a}setMask(a){this._colorMaskCache!==a&&(this._colorMaskCache=a,this._renderer.pipeline.setColorMask(a))}destroy(){this._renderer=null,this._colorMaskCache=null}}C.extension={type:[b.x.WebGPUSystem],name:"colorMask"};var D=a.i(58422);let E=new Set(["apple","arm","qualcomm","img-tec"]);class F{constructor(a){this._renderer=a}async init(a){return this._initPromise||(this._options=a,this._initPromise=(a.gpu?Promise.resolve(a.gpu):this._createDeviceAndAdaptor(a)).then(a=>this._setGpu(a))),this._initPromise}_setGpu(a){this.gpu=a,this.extensions={transientAttachment:"number"==typeof GPUTextureUsage.TRANSIENT_ATTACHMENT,tileBased:E.has(a.adapter?.info?.vendor)},this._options.gpu||a.device.lost.then(()=>this._restoreDevice()).catch(a=>(0,o.f)("WebGPU device was lost and could not be restored",a)),this._renderer.runners.contextChange.emit(this.gpu)}async _restoreDevice(){if(!this._renderer)return;let a=await this._createDeviceAndAdaptor(this._options);this._renderer?this._setGpu(a):a.device.destroy()}contextChange(a){this._renderer.gpu=a}async _createDeviceAndAdaptor(a){let b=await D.f.get().getNavigator().gpu.requestAdapter({powerPreference:a.powerPreference,forceFallbackAdapter:a.forceFallbackAdapter});if(!b)throw Error("WebGPU not supported. No GPU adapter was returned by navigator.gpu.requestAdapter().");let c=["texture-compression-bc","texture-compression-astc","texture-compression-etc2","indirect-first-instance","bgra8unorm-storage","texture-formats-tier1"].filter(a=>b.features.has(a)),d=await b.requestDevice({requiredFeatures:c,requiredLimits:{maxSampledTexturesPerShaderStage:b.limits.maxSampledTexturesPerShaderStage,maxSamplersPerShaderStage:b.limits.maxSamplersPerShaderStage}});return{adapter:b,device:d}}destroy(){this._options?.gpu||this.gpu?.device.destroy(),this.gpu=null,this.extensions=null,this._renderer=null}}F.extension={type:[b.x.WebGPUSystem],name:"device"},F.defaultOptions={powerPreference:void 0,forceFallbackAdapter:!1};class G{constructor(a,b,c,d){this.gpuBundle=a,this.stateKey=b,this.device=c,this.label=d}}class H{constructor(a){this._boundBindGroup=Object.create(null),this._boundVertexBuffer=Object.create(null),this._renderer=a;for(let a=0;a<16;a++)this._boundBindGroup[a]={bindGroup:null,program:null,key:null}}renderStart(){this.commandFinished=new Promise(a=>{this._resolveCommandFinished=a}),this.commandEncoder=this._renderer.gpu.device.createCommandEncoder()}beginRenderPass(a){return this.endRenderPass(),this._clearCache(),this._passEncoder=this.commandEncoder.beginRenderPass(a.descriptor),this.renderPassEncoder=this._passEncoder,this._passEncoder}endRenderPass(){this._passEncoder&&this._passEncoder.end(),this.renderPassEncoder=null,this._passEncoder=null}beginBundle(a){if(this._passEncoder!==this.renderPassEncoder)throw Error("Cannot begin a new render bundle while one is already being recorded.");this._clearCache();let b=this._renderer.pipeline,c=b.getBundleDescriptor();c.label=a,this._bundleStateKey=b.bundleStateKey,this._bundleLabel=a,this.renderPassEncoder=this._gpu.device.createRenderBundleEncoder(c)}endBundle(){let a=this.renderPassEncoder;if(!a||!("finish"in a))throw Error("endBundle called without an active render bundle.");let b=a.finish({label:this._bundleLabel});return this.renderPassEncoder=this._passEncoder,this._clearCache(),new G(b,this._bundleStateKey,this._gpu.device,this._bundleLabel)}isBundleValid(a){return a?.stateKey===this._renderer.pipeline.bundleStateKey&&a.device===this._gpu.device}executeBundle(a){let b=[];if(Array.isArray(a))for(let c=0;c<a.length;c++)b[c]=this._getGpuBundle(a[c]);else b[0]=this._getGpuBundle(a);this._clearCache(),this._passEncoder.executeBundles(b)}_getGpuBundle(a){return this.isBundleValid(a)||(0,o.f)(`Render bundle ${a?.label??"(unlabeled)"} was recorded against a different render target state or on a lost device. Re-record it — replaying it will either be rejected by WebGPU or draw with the wrong winding. Check encoder.isBundleValid(bundle) before executing.`),a.gpuBundle}setViewport(a){this._passEncoder.setViewport(a.x,a.y,a.width,a.height,0,1)}setStencilReference(a){this._passEncoder.setStencilReference(a)}setPipelineFromGeometryProgramAndState(a,b,c,d,e){let f=this._renderer.pipeline.getPipeline(a,b,c,d,e);this.setPipeline(f)}setPipeline(a){this._boundPipeline!==a&&(this._boundPipeline=a,this.renderPassEncoder.setPipeline(a))}_setVertexBuffer(a,b){this._boundVertexBuffer[a]!==b&&(this._boundVertexBuffer[a]=b,this.renderPassEncoder.setVertexBuffer(a,this._renderer.buffer.updateBuffer(b)))}_setIndexBuffer(a){if(this._boundIndexBuffer===a)return;this._boundIndexBuffer=a;let b=2===a.data.BYTES_PER_ELEMENT?"uint16":"uint32";this.renderPassEncoder.setIndexBuffer(this._renderer.buffer.updateBuffer(a),b)}resetBindGroup(a){let b=this._boundBindGroup[a];b.bindGroup=null,b.program=null,b.key=null}setBindGroup(a,b,c){let d=this._boundBindGroup[a];if(d.bindGroup===b&&d.program===c&&d.key===b._key)return;d.bindGroup=b,d.program=c,d.key=b._key,b._touch(this._renderer.gc.now);let e=this._renderer.bindGroup.getBindGroup(b,c,a);this.renderPassEncoder.setBindGroup(a,e)}setGeometry(a,b){let c=this._renderer.pipeline.getBufferNamesToBind(a,b);for(let b=0;b<c.length;b++)this._setVertexBuffer(b,a.attributes[c[b]].buffer);a.indexBuffer&&this._setIndexBuffer(a.indexBuffer)}_setShaderBindGroups(a,b){let c=a.gpuProgram,d=c.layout;for(let e=0;e<d.length;e++){let f=a.groups[e];d[e]&&f&&(b||this._syncBindGroup(f),this.setBindGroup(e,f,c))}}_syncBindGroup(a){let b=a.resources,c=a._resourceKeys;for(let a=0;a<c.length;a++){let d=b[c[a]];d&&d.isUniformGroup&&this._renderer.ubo.updateUniformGroup(d)}}draw(a){let{geometry:b,shader:c,state:d,topology:e,size:f,start:g,baseVertex:h,instanceCount:i,skipSync:j,firstInstance:k}=a;this.setPipelineFromGeometryProgramAndState(b,c.gpuProgram,d,e,c._overrides),this.setGeometry(b,c.gpuProgram),this._setShaderBindGroups(c,j),b.indexBuffer?this.renderPassEncoder.drawIndexed(f||b.indexCount||b.indexBuffer.data.length,i??b.instanceCount,g||0,h||0,k||0):this.renderPassEncoder.draw(f||b.vertexCount,i??b.instanceCount,g||0,k||0)}drawIndirect(a){let{geometry:b,shader:c,state:d,topology:e,skipSync:f,indirectBuffer:g,indirectOffset:h}=a;this.setPipelineFromGeometryProgramAndState(b,c.gpuProgram,d,e,c._overrides),this.setGeometry(b,c.gpuProgram),this._setShaderBindGroups(c,f),b.indexBuffer?this.renderPassEncoder.drawIndexedIndirect(g,h):this.renderPassEncoder.drawIndirect(g,h)}finishRenderPass(){this._passEncoder&&(this._passEncoder.end(),this.renderPassEncoder=null,this._passEncoder=null)}postrender(){this.finishRenderPass(),this._gpu.device.queue.submit([this.commandEncoder.finish()]),this._resolveCommandFinished(),this.commandEncoder=null}_clearCache(){for(let a=0;a<16;a++){let b=this._boundBindGroup[a];b.bindGroup=null,b.program=null,b.key=null,this._boundVertexBuffer[a]=null}this._boundIndexBuffer=null,this._boundPipeline=null}destroy(){this._renderer=null,this._gpu=null,this._boundBindGroup=null,this._boundVertexBuffer=null,this._boundIndexBuffer=null,this._boundPipeline=null,this.renderPassEncoder=null,this._passEncoder=null}contextChange(a){this._gpu=a}}H.extension={type:[b.x.WebGPUSystem],name:"encoder",priority:1};class I{constructor(a){this.supportsOverrideConstants=!1,this._renderer=a}contextChange(){let a=this._renderer.device.gpu.device;this.maxTextures=Math.min(a.limits.maxSampledTexturesPerShaderStage,a.limits.maxSamplersPerShaderStage),this.maxBatchableTextures=this.maxTextures,this._detectOverrideConstantsSupport(a)}_detectOverrideConstantsSupport(a){a.pushErrorScope("validation");let b=a.createShaderModule({code:"override TEST_VALUE: f32 = 0.0;\n@compute @workgroup_size(1) fn main() {}"});a.createComputePipeline({layout:"auto",compute:{module:b,entryPoint:"main",constants:{TEST_VALUE:1}}}),a.popErrorScope().then(a=>{this.supportsOverrideConstants=!a})}destroy(){}}I.extension={type:[b.x.WebGPUSystem],name:"limits"};class J{constructor(a){this._renderer=a,a.renderTarget.onRenderTargetChange.add(this)}contextChange(){this._activeGpuRenderTarget=null}onRenderTargetChange(a){let b=this._renderer.renderTarget.getGpuRenderTarget(a);this._activeRenderTarget=a,this._activeGpuRenderTarget=b,this.setStencilMode(b.stencilMode,b.stencilReference)}setStencilMode(a,b){let c=this._activeGpuRenderTarget??(this._activeGpuRenderTarget=this._renderer.renderTarget.getGpuRenderTarget(this._activeRenderTarget));c.stencilMode=a,c.stencilReference=b;let d=this._renderer;d.pipeline.setStencilMode(a),d.encoder.setStencilReference(b)}destroy(){this._renderer.renderTarget.onRenderTargetChange.remove(this),this._renderer=null,this._activeRenderTarget=null,this._activeGpuRenderTarget=null}}J.extension={type:[b.x.WebGPUSystem],name:"stencil"};var K=a.i(55164);let L={i32:{align:4,size:4},u32:{align:4,size:4},f32:{align:4,size:4},f16:{align:2,size:2},"vec2<i32>":{align:8,size:8},"vec2<u32>":{align:8,size:8},"vec2<f32>":{align:8,size:8},"vec2<f16>":{align:4,size:4},"vec3<i32>":{align:16,size:12},"vec3<u32>":{align:16,size:12},"vec3<f32>":{align:16,size:12},"vec3<f16>":{align:8,size:6},"vec4<i32>":{align:16,size:16},"vec4<u32>":{align:16,size:16},"vec4<f32>":{align:16,size:16},"vec4<f16>":{align:8,size:8},"mat2x2<f32>":{align:8,size:16},"mat2x2<f16>":{align:4,size:8},"mat3x2<f32>":{align:8,size:24},"mat3x2<f16>":{align:4,size:12},"mat4x2<f32>":{align:8,size:32},"mat4x2<f16>":{align:4,size:16},"mat2x3<f32>":{align:16,size:32},"mat2x3<f16>":{align:8,size:16},"mat3x3<f32>":{align:16,size:48},"mat3x3<f16>":{align:8,size:24},"mat4x3<f32>":{align:16,size:64},"mat4x3<f16>":{align:8,size:32},"mat2x4<f32>":{align:16,size:32},"mat2x4<f16>":{align:8,size:16},"mat3x4<f32>":{align:16,size:48},"mat3x4<f16>":{align:8,size:24},"mat4x4<f32>":{align:16,size:64},"mat4x4<f16>":{align:8,size:32}};function M(a){let b=a.map(a=>({data:a,offset:0,size:0})),c=0;for(let a=0;a<b.length;a++){let d=b[a],e=L[d.data.type].size,f=L[d.data.type].align;if(!L[d.data.type])throw Error(`[Pixi.js] WebGPU UniformBuffer: Unknown type ${d.data.type}`);d.data.size>1&&(e=Math.max(e,f)*d.data.size),c=Math.ceil(c/f)*f,d.size=e,d.offset=c,c+=e}return{uboElements:b,size:c=16*Math.ceil(c/16)}}var N=a.i(51169),O=a.i(37630);function P(a,b){let{size:c,align:d}=L[a.data.type],e=(Math.max(c,d)-c)/4,f=a.data.type.indexOf("i32")>=0?"dataInt32":"data";return`
|
|
2
|
+
v = uv.${a.data.name};
|
|
3
|
+
${0!==b?`offset += ${b};`:""}
|
|
4
|
+
|
|
5
|
+
arrayOffset = offset;
|
|
6
|
+
|
|
7
|
+
t = 0;
|
|
8
|
+
|
|
9
|
+
for(var i=0; i < ${a.data.size}; i++)
|
|
10
|
+
{
|
|
11
|
+
for(var j = 0; j < ${c/4}; j++)
|
|
12
|
+
{
|
|
13
|
+
${f}[arrayOffset++] = v[t++];
|
|
14
|
+
}
|
|
15
|
+
${0!==e?`arrayOffset += ${e};`:""}
|
|
16
|
+
}
|
|
17
|
+
`}function Q(a){return(0,N.f)(a,O.c,P)}class R extends K.f{constructor(){super({createUboElements:M,generateUboSync:Q})}}R.extension={type:[b.x.WebGPUSystem],name:"ubo"};var S=a.i(42682),T=a.i(10961),U=a.i(52776);class V{constructor({minUniformOffsetAlignment:a}){this._minUniformOffsetAlignment=256,this.byteIndex=0,this._minUniformOffsetAlignment=a,this.data=new Float32Array(65535)}clear(){this.byteIndex=0}addEmptyGroup(a){if(a>this._minUniformOffsetAlignment/4)throw Error(`UniformBufferBatch: array is too large: ${4*a}`);let b=this.byteIndex,c=b+4*a;if((c=Math.ceil(c/this._minUniformOffsetAlignment)*this._minUniformOffsetAlignment)>4*this.data.length)throw Error("UniformBufferBatch: ubo batch got too big");return this.byteIndex=c,b}addGroup(a){let b=this.addEmptyGroup(a.length);for(let c=0;c<a.length;c++)this.data[b/4+c]=a[c];return b}destroy(){this.data=null}}var W=a.i(74395);class X{constructor(a){this._bindGroupHash=Object.create(null),this._buffers=[],this._bindGroups=[],this._bufferResources=[],this._renderer=a,this._batchBuffer=new V({minUniformOffsetAlignment:128});for(let a=0;a<2;a++){let b=U.f.UNIFORM|U.f.COPY_DST;0===a&&(b|=U.f.COPY_SRC),this._buffers.push(new S.f({data:this._batchBuffer.data,usage:b}))}}renderEnd(){this._uploadBindGroups(),this._resetBindGroups()}_resetBindGroups(){this._bindGroupHash=Object.create(null),this._batchBuffer.clear()}getUniformBindGroup(a,b){if(!b&&this._bindGroupHash[a.uid])return this._bindGroupHash[a.uid];this._renderer.ubo.ensureUniformGroup(a);let c=a.buffer.data,d=this._batchBuffer.addEmptyGroup(c.length);return this._renderer.ubo.syncUniformGroup(a,this._batchBuffer.data,d/4),this._bindGroupHash[a.uid]=this._getBindGroup(d/128),this._bindGroupHash[a.uid]}getUboResource(a){this._renderer.ubo.updateUniformGroup(a);let b=a.buffer.data,c=this._batchBuffer.addGroup(b);return this._getBufferResource(c/128)}getArrayBindGroup(a){let b=this._batchBuffer.addGroup(a);return this._getBindGroup(b/128)}getArrayBufferResource(a){let b=this._batchBuffer.addGroup(a);return this._getBufferResource(b/128)}_getBufferResource(a){if(!this._bufferResources[a]){let b=this._buffers[a%2];this._bufferResources[a]=new T.f({buffer:b,offset:(a/2|0)*256,size:128})}return this._bufferResources[a]}_getBindGroup(a){if(!this._bindGroups[a]){let b=new W.f({0:this._getBufferResource(a)});this._bindGroups[a]=b}return this._bindGroups[a]}_uploadBindGroups(){let a=this._renderer.buffer,b=this._buffers[0];b.update(this._batchBuffer.byteIndex),a.updateBuffer(b);let c=this._renderer.gpu.device.createCommandEncoder();for(let d=1;d<this._buffers.length;d++){let e=this._buffers[d];c.copyBufferToBuffer(a.getGPUBuffer(b),128,a.getGPUBuffer(e),0,this._batchBuffer.byteIndex)}this._renderer.gpu.device.queue.submit([c.finish()])}destroy(){for(let a=0;a<this._bindGroups.length;a++)this._bindGroups[a]?.destroy();this._bindGroups=null,this._bindGroupHash=null;for(let a=0;a<this._buffers.length;a++)this._buffers[a].destroy();this._buffers=null;for(let a=0;a<this._bufferResources.length;a++)this._bufferResources[a].destroy();this._bufferResources=null,this._batchBuffer.destroy(),this._renderer=null}}X.extension={type:[b.x.WebGPUPipes],name:"uniformBatch"};var Y=a.i(80783),Z=a.i(45177),$=a.i(35990),_=a.i(19973),aa=a.i(29477);let ab={"point-list":0,"line-list":1,"line-strip":2,"triangle-list":3,"triangle-strip":4},ac=new Z.f({}),ad={"depth24plus-stencil8":{depth:!0,stencil:!0,index:1},depth24plus:{depth:!0,stencil:!1,index:2},depth32float:{depth:!0,stencil:!1,index:3},"depth32float-stencil8":{depth:!0,stencil:!0,index:4},depth16unorm:{depth:!0,stencil:!1,index:5},stencil8:{depth:!1,stencil:!0,index:6}},ae={depth:!1,stencil:!1,index:0};function af(a,b){for(let[c,d]of Object.entries(b)){let b=RegExp(`override\\s+${c}\\s*:\\s*(\\w+)\\s*(?:=[^;]*)?;`);a=a.replace(b,(a,b)=>{let e;return e="u32"===b?`${Math.trunc(d)}u`:"i32"===b?`${Math.trunc(d)}`:Number.isInteger(d)?`${d}.0`:`${d}`,`const ${c}: ${b} = ${e};`})}return a}function ag(a,b,c,d,e,f){return 0x200000000000*a+0x20000000*b+16384*f+(c<<8)+(d<<3)+e}let ah=Object.create(null),ai=0;function aj(a){let b=ah[a];return void 0===b&&(b=ah[a]=ai++),b}class ak{constructor(a){this._moduleCache=Object.create(null),this._bufferLayoutsCache=Object.create(null),this._bindingNamesCache=Object.create(null),this._pipeCache=new Map,this._pipeStateCaches=Object.create(null),this._colorMask=15,this._multisampleCount=1,this._colorTargetCount=1,this._colorFormat="bgra8unorm",this._colorFormatId=aj("bgra8unorm"),this._depthStencilFormat="depth24plus-stencil8",this._depthStencilFormatData=ae,this._depthReadOnly=!1,this._stencilReadOnly=!1,this._invertFrontFace=!1,this._renderer=a}contextChange(a){this._gpu=a,this._moduleCache=Object.create(null),this._pipeStateCaches=Object.create(null),this.setStencilMode($.U.DISABLED),this._updatePipeHash()}setMultisampleCount(a){this._multisampleCount!==a&&(this._multisampleCount=a,this._updatePipeHash())}setRenderTarget(a){let b=a.colorAttachments[0]?.texture;this._multisampleCount=b?.source.antialias?4:1,this._colorTargetCount=a.colorAttachments.length,this._colorFormat=b?.format??"bgra8unorm",this._colorFormatId=aj(this._colorFormat),this._depthStencilFormat=a.depthStencilAttachment?.texture.format,this._depthStencilFormatData=ad[this._depthStencilFormat]||ae,this._depthReadOnly=a.depthStencilAttachment?.depthReadOnly??!1,this._stencilReadOnly=a.depthStencilAttachment?.stencilReadOnly??this._depthReadOnly,this._invertFrontFace=this._renderer.renderTarget.isFrontFaceInverted(a,a.flipY),this._updatePipeHash()}setColorMask(a){this._colorMask!==a&&(this._colorMask=a,this._updatePipeHash())}setStencilMode(a){this._stencilMode!==a&&(this._stencilMode=a,this._stencilState=aa.f[a],this._updatePipeHash())}get bundleStateKey(){var a,b,c,d,e,f;let g=this._depthStencilFormatData;return a=+(1!==this._multisampleCount),b=this._colorTargetCount,c=g.index,d=g.depth&&this._depthReadOnly?1:0,e=g.stencil&&this._stencilReadOnly?1:0,f=+!!this._invertFrontFace,this._colorFormatId<<11|f<<10|e<<9|d<<8|c<<5|b<<1|a}getBundleDescriptor(){let a=[];for(let b=0;b<this._colorTargetCount;b++)a.push(this._colorFormat);let b={colorFormats:a,sampleCount:this._multisampleCount},c=this._depthStencilFormatData;return(c.depth||c.stencil)&&(b.depthStencilFormat=this._depthStencilFormat,c.depth&&this._depthReadOnly&&(b.depthReadOnly=!0),c.stencil&&this._stencilReadOnly&&(b.stencilReadOnly=!0)),b}setPipeline(a,b,c,d){let e=this.getPipeline(a,b,c);d.setPipeline(e)}getPipelineKey(a,b,c,d,e){return a._layoutKey||((0,Y.f)(a,b.attributeData),this._generateBufferKey(a)),ag(a._layoutKey,b._layoutKey,c.data,c._blendModeId,ab[d],e.id)}getPipeline(a,b,c,d,e){a._layoutKey||((0,Y.f)(a,b.attributeData),this._generateBufferKey(a)),d||(d=a.topology),e||(e=ac);let f=ag(a._layoutKey,b._layoutKey,c.data,c._blendModeId,ab[d],e.id),g=this._pipeCache.get(f);return g||(g=this._createPipeline(a,b,c,d,e),this._pipeCache.set(f,g)),g}_createPipeline(a,b,c,d,e){let f,g=this._gpu.device,h=this._createVertexBufferLayouts(a,b),i=this._renderer.state.getColorTargets(c,this._colorTargetCount,this._colorFormat),j=this._stencilMode===$.U.RENDERING_MASK_ADD?0:this._colorMask;for(let a=0;a<i.length;a++)i[a].writeMask=j;let k=this._renderer.shader.getProgramData(b).pipeline,l=Object.keys(e.data).length>0,m=b.vertex.source,n=b.fragment.source;l&&(this._renderer.limits.supportsOverrideConstants?f=e.data:(m=af(m,e.data),n=af(n,e.data)));let o={vertex:{module:this._getModule(m),entryPoint:b.vertex.entryPoint,constants:f,buffers:h},fragment:{module:this._getModule(n),entryPoint:b.fragment.entryPoint,targets:i,constants:f},primitive:{topology:d,cullMode:c.culling?"back":"none",frontFace:c.clockwiseFrontFace!==this._invertFrontFace?"cw":"ccw"},layout:k,multisample:{count:this._multisampleCount},label:b.name?`PIXI Pipeline (${b.name})`:"PIXI Pipeline"};if(this._depthStencilFormatData.depth||this._depthStencilFormatData.stencil){let a=this._depthStencilFormatData;o.depthStencil={...this._stencilState,format:this._depthStencilFormat,depthWriteEnabled:!!a.depth&&c.depthMask&&!this._depthReadOnly,depthCompare:a.depth&&c.depthTest?"less":"always"}}return g.createRenderPipeline(o)}_getModule(a){return this._moduleCache[a]||this._createModule(a)}_createModule(a){let b=this._gpu.device;return this._moduleCache[a]=b.createShaderModule({code:a}),this._moduleCache[a]}_generateBufferKey(a){let b=[],c=0,d=Object.keys(a.attributes).sort();for(let e=0;e<d.length;e++){let f=a.attributes[d[e]];b[c++]=f.offset,b[c++]=f.format,b[c++]=f.stride,b[c++]=f.instance}let e=b.join("|");return a._layoutKey=(0,_.f)(e,"geometry"),a._layoutKey}_generateAttributeLocationsKey(a){let b=[],c=0,d=Object.keys(a.attributeData).sort();for(let e=0;e<d.length;e++){let f=a.attributeData[d[e]];b[c++]=f.location}let e=b.join("|");return a._attributeLocationsKey=(0,_.f)(e,"programAttributes"),a._attributeLocationsKey}getBufferNamesToBind(a,b){let c=a._layoutKey<<16|b._attributeLocationsKey;if(this._bindingNamesCache[c])return this._bindingNamesCache[c];let d=this._createVertexBufferLayouts(a,b),e=[],f=b.attributeData;for(let a=0;a<d.length;a++){let b=Object.values(d[a].attributes)[0].shaderLocation;for(let c in f)if(f[c].location===b){e[a]=c;break}}return this._bindingNamesCache[c]=e,e}_createVertexBufferLayouts(a,b){b._attributeLocationsKey||this._generateAttributeLocationsKey(b);let c=a._layoutKey<<16|b._attributeLocationsKey;if(this._bufferLayoutsCache[c])return this._bufferLayoutsCache[c];let d=[];return a.buffers.forEach(c=>{let e={arrayStride:0,stepMode:"vertex",attributes:[]},f=e.attributes;for(let d in b.attributeData){let g=a.attributes[d];(g.divisor??1)!==1&&(0,o.f)(`Attribute ${d} has an invalid divisor value of '${g.divisor}'. WebGPU only supports a divisor value of 1`),g.buffer===c&&(e.arrayStride=g.stride,e.stepMode=g.instance?"instance":"vertex",f.push({shaderLocation:b.attributeData[d].location,offset:g.offset,format:g.format}))}f.length&&d.push(e)}),this._bufferLayoutsCache[c]=d,d}_updatePipeHash(){var a,b,c,d,e,f,g,h;let i=(b=this._stencilMode,c=+(1!==this._multisampleCount),d=this._colorMask,e=this._colorTargetCount,f=this._depthStencilFormatData.index,g=this._colorFormatId,h=+!!this._depthReadOnly,!!this._invertFrontFace<<20|g<<16|f<<13|d<<9|b<<6|h<<5|e<<1|c);this._pipeCache=(a=this._pipeStateCaches)[i]??(a[i]=new Map)}destroy(){this._bufferLayoutsCache=null,this._pipeCache=null,this._gpu=null,this._renderer=null,this._bindingNamesCache=null,this._pipeStateCaches=null,this._moduleCache=null}}ak.extension={type:[b.x.WebGPUSystem],name:"pipeline"};var al=a.i(31741),am=a.i(10091),an=a.i(39238),ao=a.i(31394);class ap{constructor(a){this._pipelines=Object.create(null),this._modules=Object.create(null),this._bindGroups=new WeakMap,this._renderer=a,this._device=a.gpu.device,this._layout=this._device.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"unfilterable-float"}}]}),this._pipelineLayout=this._device.createPipelineLayout({bindGroupLayouts:[this._layout]})}copy(a,b,c,d){var e;let f=this._renderer.renderTarget.getGpuRenderTarget(b),g=b.colorAttachments[c].texture;(e=f.msaaBackTextures)[c]??(e[c]=new ao.f({label:"msaa-back-texture",width:g.width,height:g.height,resolution:g._resolution,format:f.msaaTextures[c].format,autoGenerateMipmaps:!1,autoGarbageCollect:!0}));let h=this._renderer.texture.getGpuSource(f.msaaBackTextures[c]);a.copyTextureToTexture({texture:d},{texture:h},{width:Math.min(d.width,h.width),height:Math.min(d.height,h.height)})}draw(a,b,c){var d;let e=this._renderer.renderTarget.getGpuRenderTarget(b),f=this._renderer.texture.getGpuSource(e.msaaBackTextures[c]),g=b.depthStencilAttachment?.texture.format??"";for(let a of b.colorAttachments)g+=`|${a.texture.format}`;let h=(d=this._pipelines)[g]??(d[g]=[]),i=this._bindGroups.get(f);i||(i=this._device.createBindGroup({layout:this._layout,entries:[{binding:0,resource:f.createView()}]}),this._bindGroups.set(f,i)),a.setPipeline(h[c]??(h[c]=this._createPipeline(b,c))),a.setBindGroup(0,i),a.draw(3)}_getModule(a){var b;return(b=this._modules)[a]??(b[a]=this._device.createShaderModule({label:"msaa-restore",code:`
|
|
18
|
+
@group(0) @binding(0) var resolved: texture_2d<f32>;
|
|
19
|
+
|
|
20
|
+
@vertex
|
|
21
|
+
fn vertexMain(@builtin(vertex_index) i: u32) -> @builtin(position) vec4<f32> {
|
|
22
|
+
let pos = array<vec2<f32>, 3>(vec2<f32>(-1.0, -1.0), vec2<f32>(3.0, -1.0), vec2<f32>(-1.0, 3.0));
|
|
23
|
+
|
|
24
|
+
return vec4<f32>(pos[i], 0.0, 1.0);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
@fragment
|
|
28
|
+
fn fragmentMain(@builtin(position) position: vec4<f32>) -> @location(${a}) vec4<f32> {
|
|
29
|
+
return textureLoad(resolved, vec2<i32>(position.xy), 0);
|
|
30
|
+
}
|
|
31
|
+
`})),this._modules[a]}_createPipeline(a,b){let c,d=a.depthStencilAttachment?.texture.format;d&&(c={format:d},d.includes("depth")&&(c.depthWriteEnabled=!1,c.depthCompare="always"));let e=this._getModule(b);return this._device.createRenderPipeline({label:"msaa-restore",layout:this._pipelineLayout,vertex:{module:e,entryPoint:"vertexMain"},fragment:{module:e,entryPoint:"fragmentMain",targets:a.colorAttachments.map((a,c)=>({format:a.texture.format,writeMask:c===b?GPUColorWrite.ALL:0}))},depthStencil:c,multisample:{count:4}})}}class aq{constructor(){this.contexts=[],this.canvasTextures=[],this.msaaTextures=[],this.transient=!1,this.msaaSamples=1,this.msaaBackTextures=[],this.stencilMode=$.U.DISABLED,this.stencilReference=0,this.maskStackIndex=0}}let ar={bgra8unorm:!0,rgba8unorm:!0,rgba16float:!0};class as{constructor(){this._activePass=null}init(a,b){this._renderer=a,this._renderTargetSystem=b,a.runners.contextChange.add(this),a.runners.destroy.add(this)}contextChange(){this._msaaRestore=null}destroy(){this._msaaRestore=null}copyToTexture(a,b,c,d,e){let f=this._renderer;this.finishRenderPass();let g=this._getGpuColorTexture(a),h=f.texture.getGpuSource(b.source);return f.encoder.commandEncoder.copyTextureToTexture({texture:g,origin:c},{texture:h,origin:e},d),b}copyDepthTexture(a,b,c,d,e){let f=this._renderer;this.finishRenderPass();let g=a.depthStencilAttachment.texture,h=f.texture.getGpuSource(g),i=f.texture.getGpuSource(b.source),j=null===f.encoder.commandEncoder,k=j?f.gpu.device.createCommandEncoder():f.encoder.commandEncoder;k.copyTextureToTexture({texture:h,origin:c},{texture:i,origin:e},{width:d.width,height:d.height}),j&&f.gpu.device.queue.submit([k.finish()])}startRenderPass(a,b=!0,c,d,e=0,f=0){let g=this._renderTargetSystem.getGpuRenderTarget(a);if(0!==f&&g.msaaTextures?.length)throw Error("[RenderTargetSystem] Rendering to array layers is not supported with MSAA render targets.");if(e>0&&g.msaaTextures?.length)throw Error("[RenderTargetSystem] Rendering to mip levels is not supported with MSAA render targets.");let h=b;"boolean"==typeof h&&(h=h?am.f.ALL:am.f.NONE),(a.stencil||a.depth)&&!a.depthStencilAttachment&&a.ensureDepthStencilTexture();let i=!!a.depthStencilAttachment,j=this._activePass,k=null!==j&&j.renderTarget===a&&j.mipLevel===e&&j.layer===f&&j.depthStencil===i&&null!==this._renderer.encoder.renderPassEncoder&&h===am.f.NONE;if(this._renderer.pipeline.setRenderTarget(a),k)return void this._renderer.encoder.setViewport(d);let{descriptor:l,restore:m}=this._buildDescriptor(a,b,c,e,f);g.descriptor=l;let n=this._renderer.encoder;m?(n.endRenderPass(),this._beginRestoredPass(a,m,n.commandEncoder,()=>n.beginRenderPass(g))):n.beginRenderPass(g),n.setViewport(d),this._activePass={renderTarget:a,mipLevel:e,layer:f,depthStencil:i}}finishRenderPass(){this._renderer.encoder.endRenderPass(),this._activePass=null}_beginRestoredPass(a,b,c,d){let e=this._msaaRestore??(this._msaaRestore=new ap(this._renderer));for(let d of b)e.copy(c,a,d,this._getGpuColorTexture(a,d));let f=d();for(let c of b)e.draw(f,a,c);return f}_getGpuColorTexture(a,b=0){if(0===a.colorAttachments.length)throw Error("[GpuRenderTargetAdaptor] cannot get gpu color texture from a depth-only render target");let c=a.colorAttachments[b].texture;return c instanceof an.f&&c._gpuContext?c._gpuContext.getCurrentTexture():this._renderer.texture.getGpuSource(c)}getDescriptor(a,b,c,d=0,e=0){return this._buildDescriptor(a,b,c,d,e).descriptor}_buildDescriptor(a,b,c,d=0,e=0){let f,g=null;"boolean"==typeof b&&(b=b?am.f.ALL:am.f.NONE);let h=this._renderTargetSystem,i=h.getGpuRenderTarget(a),j=a.colorAttachments.map((a,f)=>{let j,k,l=a.texture,m=l instanceof an.f?l._gpuContext:null,n=!1;if(m){if(0!==e)throw Error("[RenderTargetSystem] Rendering to array layers is not supported for canvas targets.");let b=m.getCurrentTexture();n=i.canvasTextures[f]!==b,i.canvasTextures[f]=b,j=b.createView(a.viewDescriptor)}else j=this._renderer.texture.getTextureRenderTargetView(a.texture,d,e,a.viewDescriptor);let o=i.msaaTextures[f];o&&(k=j,j=this._renderer.texture.getTextureView(o));let p=a.loadOp;void 0!==b&&(p=b&am.f.COLOR?"clear":"load"),c??(c=h.defaultClearColor);let q=!!o?.transient,r=q&&"clear"!==p,s=r&&!n;r&&(p="clear",s&&(g??(g=[])).push(f));let t={view:j,resolveTarget:k,storeOp:q?"discard":a.storeOp??"store",loadOp:p};for(let b in"3d"===l.dimension&&(t.depthSlice=e),r?t.clearValue=[0,0,0,0]:"clear"===p&&(c??(c=a.clearValue??h.defaultClearColor),t.clearValue=c),a)"texture"!==b&&"viewDescriptor"!==b&&"clearValue"!==b&&"loadOp"!==b&&"storeOp"!==b&&(t[b]=a[b]);return t});if(a.depthStencilAttachment){this._prepareDepthStencil(a,i);let c=a.depthStencilAttachment,g=c.texture.format.includes("stencil"),h=c.texture.format.includes("depth"),j=i.transient?"discard":"store",k=i.transient?"clear":"load";f={view:this._renderer.texture.getTextureRenderTargetView(c.texture,d,e,c.viewDescriptor)};let l=c.depthReadOnly??!1,m=c.stencilReadOnly??l;for(let a in g&&!m?(f.stencilLoadOp=b&am.f.STENCIL?"clear":c.stencilLoadOp??k,f.stencilStoreOp=c.stencilStoreOp??j,"clear"===f.stencilLoadOp&&(f.stencilClearValue=c.stencilClearValue??0)):g&&m&&(f.stencilReadOnly=!0),h&&!l?(f.depthLoadOp=b&am.f.DEPTH?"clear":c.depthLoadOp??k,f.depthStoreOp=c.depthStoreOp??j,"clear"===f.depthLoadOp&&(f.depthClearValue=c.depthClearValue??1)):h&&l&&(f.depthReadOnly=!0),c)"texture"!==a&&"viewDescriptor"!==a&&"stencilLoadOp"!==a&&"stencilStoreOp"!==a&&"stencilClearValue"!==a&&"stencilReadOnly"!==a&&"depthLoadOp"!==a&&"depthStoreOp"!==a&&"depthClearValue"!==a&&"depthReadOnly"!==a&&(f[a]=c[a])}return{descriptor:{colorAttachments:j,depthStencilAttachment:f,label:a.label},restore:g}}clear(a,b=!0,c,d,e=0,f=0){if(!b)return;let{gpu:g,encoder:h}=this._renderer,i=g.device;if(null===h.commandEncoder){let g=i.createCommandEncoder(),{descriptor:h,restore:j}=this._buildDescriptor(a,b,c,e,f),k=()=>g.beginRenderPass(h),l=j?this._beginRestoredPass(a,j,g,k):k();l.setViewport(d.x,d.y,d.width,d.height,0,1),l.end();let m=g.finish();i.queue.submit([m])}else this.startRenderPass(a,b,c,d,e,f)}initGpuRenderTarget(a){a.isRoot=!0;let b=new aq;return b.transient=!!a.colorTexture?.antialias&&!!a.colorTexture.transient,a.colorAttachments.forEach((a,c)=>{let d=a.texture;if(d instanceof an.f){let a=d._gpuContext??(d._gpuContext=d.resource.getContext("webgpu")),e=d.transparent?"premultiplied":"opaque",f=function(a){if(ar[a])return a;let b=navigator.gpu.getPreferredCanvasFormat();return(0,o.f)(`[WebGPU] CanvasSource format '${a}' is not a valid GPUCanvasContext format. Falling back to '${b}'. Allowed formats are: bgra8unorm, rgba8unorm, rgba16float.`),b}(d.format);try{a.configure({device:this._renderer.gpu.device,usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST|GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.COPY_SRC,format:f,alphaMode:e,..."rgba16float"===f?{toneMapping:{mode:"extended"}}:{}})}catch(a){console.error(a)}b.contexts[c]=a}if(b.msaa=d.source.antialias,d.antialias){let a=new ao.f({width:0,height:0,sampleCount:4,autoGenerateMipmaps:!1,transient:this._renderer.device.extensions.tileBased||b.transient,arrayLayerCount:d.arrayLayerCount,format:d.format});b.msaaTextures[c]=a}}),b.msaa&&(b.msaaSamples=4),b}_prepareDepthStencil(a,b){let c=a.depthStencilAttachment?.texture;c&&b.msaa&&(c.sampleCount=4,c.transient=b.transient)}destroyGpuRenderTarget(a){a.contexts.forEach(a=>{a.unconfigure()}),a.msaaTextures.forEach(a=>{a.destroy()}),a.msaaBackTextures.forEach(a=>{a?.destroy()}),a.msaaTextures.length=0,a.msaaBackTextures.length=0,a.contexts.length=0}ensureDepthStencilTexture(a){this._prepareDepthStencil(a,this._renderTargetSystem.getGpuRenderTarget(a))}resizeGpuRenderTarget(a){let b=this._renderTargetSystem.getGpuRenderTarget(a);b.width=a.width,b.height=a.height,b.msaa&&a.colorAttachments.forEach((a,c)=>{let d=a.texture;b.msaaTextures[c]?.resize(d.width,d.height,d._resolution),b.msaaBackTextures[c]?.resize(d.width,d.height,d._resolution)})}}class at extends al.f{constructor(a){super(a),this.adaptor=new as,this.adaptor.init(a,this)}}at.extension={type:[b.x.WebGPUSystem],name:"renderTarget"};class au{constructor(){this._gpuProgramData=Object.create(null)}contextChange(a){this._gpu=a,this._gpuProgramData=Object.create(null)}getProgramData(a){return this._gpuProgramData[a._layoutKey]||this._createGPUProgramData(a)}_createGPUProgramData(a){let b=this._gpu.device,c=a.gpuLayout.map(a=>b.createBindGroupLayout({entries:a}));return this._gpuProgramData[a._layoutKey]={bindGroups:c,pipeline:b.createPipelineLayout({bindGroupLayouts:c})},this._gpuProgramData[a._layoutKey]}destroy(){this._gpu=null,this._gpuProgramData=null}}au.extension={type:[b.x.WebGPUSystem],name:"shader"};let av={};av.normal={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"}},av.add={alpha:{srcFactor:"src-alpha",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"one",dstFactor:"one",operation:"add"}},av.multiply={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"dst",dstFactor:"one-minus-src-alpha",operation:"add"}},av.screen={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"one",dstFactor:"one-minus-src",operation:"add"}},av.overlay={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"one",dstFactor:"one-minus-src",operation:"add"}},av.none={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"zero",dstFactor:"zero",operation:"add"}},av["normal-npm"]={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"src-alpha",dstFactor:"one-minus-src-alpha",operation:"add"}},av["add-npm"]={alpha:{srcFactor:"one",dstFactor:"one",operation:"add"},color:{srcFactor:"src-alpha",dstFactor:"one",operation:"add"}},av["screen-npm"]={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"src-alpha",dstFactor:"one-minus-src",operation:"add"}},av.erase={alpha:{srcFactor:"zero",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"zero",dstFactor:"one-minus-src",operation:"add"}},av.min={alpha:{srcFactor:"one",dstFactor:"one",operation:"min"},color:{srcFactor:"one",dstFactor:"one",operation:"min"}},av.max={alpha:{srcFactor:"one",dstFactor:"one",operation:"max"},color:{srcFactor:"one",dstFactor:"one",operation:"max"}};class aw{constructor(){this.defaultState=new q.A,this.defaultState.blend=!0}contextChange(a){this.gpu=a}getColorTargets(a,b,c){let d=a.blend?av[a.blendMode]||av.normal:void 0,e=[];for(let a=0;a<b;a++)e[a]={format:c,writeMask:0,blend:d};return e}destroy(){this.gpu=null}}aw.extension={type:[b.x.WebGPUSystem],name:"state"};var ax=a.i(9124),ay=a.i(31023),az=a.i(54274);let aA=[new ay.f,new ay.f,new ay.f],aB={type:"image",upload(a,b,c,d=0){let e=a.resource,f=0|a.pixelWidth,g=0|a.pixelHeight,h=a.depthOrArrayLayers,i=e.byteLength/(f*g*h);if(h>1)return void c.device.queue.writeTexture({texture:b,origin:{x:0,y:0,z:d}},e,{offset:0,rowsPerImage:g,bytesPerRow:f*i},{width:f,height:g,depthOrArrayLayers:h});let j=(0,az.f)(a._updateStart,a._updateEnd,f,g,aA);for(let a=0;a<j;a++){let g=aA[a];c.device.queue.writeTexture({texture:b,origin:{x:g.x,y:g.y,z:d}},e,{offset:(g.y*f+g.x)*i,rowsPerImage:g.height,bytesPerRow:f*i},{width:g.width,height:g.height,depthOrArrayLayers:1})}}},aC={"bc1-rgba-unorm":{blockBytes:8,blockWidth:4,blockHeight:4},"bc2-rgba-unorm":{blockBytes:16,blockWidth:4,blockHeight:4},"bc3-rgba-unorm":{blockBytes:16,blockWidth:4,blockHeight:4},"bc7-rgba-unorm":{blockBytes:16,blockWidth:4,blockHeight:4},"etc1-rgb-unorm":{blockBytes:8,blockWidth:4,blockHeight:4},"etc2-rgba8unorm":{blockBytes:16,blockWidth:4,blockHeight:4},"astc-4x4-unorm":{blockBytes:16,blockWidth:4,blockHeight:4}},aD={blockBytes:4,blockWidth:1,blockHeight:1},aE={type:"compressed",upload(a,b,c,d=0){let e=a.pixelWidth,f=a.pixelHeight,g=aC[a.format]||aD;for(let h=0;h<a.resource.length;h++){let i=a.resource[h],j=Math.ceil(e/g.blockWidth)*g.blockBytes;c.device.queue.writeTexture({texture:b,mipLevel:h,origin:{x:0,y:0,z:d}},i,{offset:0,bytesPerRow:j},{width:Math.ceil(e/g.blockWidth)*g.blockWidth,height:Math.ceil(f/g.blockHeight)*g.blockHeight,depthOrArrayLayers:1}),e=Math.max(e>>1,1),f=Math.max(f>>1,1)}}},aF=["right","left","top","bottom","front","back"],aG={type:"image",upload(a,b,c,d=0){let e=a.resource;if(!e)return;if(globalThis.HTMLImageElement&&e instanceof HTMLImageElement){let b=D.f.get().createCanvas(e.width,e.height);b.getContext("2d").drawImage(e,0,0,e.width,e.height),a.resource=b,(0,o.f)("ImageSource: Image element passed, converting to canvas and replacing resource.")}let f=Math.min(b.width,a.resourceWidth||a.pixelWidth),g=Math.min(b.height,a.resourceHeight||a.pixelHeight),h="premultiply-alpha-on-upload"===a.alphaMode;c.device.queue.copyExternalImageToTexture({source:e},{texture:b,origin:{x:0,y:0,z:d},premultipliedAlpha:h},{width:f,height:g})}},aH={type:"video",upload(a,b,c,d){aG.upload(a,b,c,d)}},aI=["rgba8unorm","rgba16float"];function aJ(a,b){if(!b)throw Error("[Gpu3dMipmapGenerator] generating mipmaps for a 3D texture needs storage: true.");if(!aI.includes(a))throw Error(`[Gpu3dMipmapGenerator] format '${a}' can't be downsampled. Use ${aI.join(", ")}.`)}class aK{constructor(a){this._pipelines={},this._device=a,this._sampler=a.createSampler({magFilter:"linear",minFilter:"linear"})}_getMipmapPipeline(a){var b;return(b=this._pipelines)[a]??(b[a]=this._device.createComputePipeline({layout:"auto",compute:{module:this._device.createShaderModule({code:`
|
|
32
|
+
@group(0) @binding(0) var srcSampler : sampler;
|
|
33
|
+
@group(0) @binding(1) var src : texture_3d<f32>;
|
|
34
|
+
@group(0) @binding(2) var dst : texture_storage_3d<${a}, write>;
|
|
35
|
+
|
|
36
|
+
@compute @workgroup_size(4, 4, 4)
|
|
37
|
+
fn main(@builtin(global_invocation_id) gid : vec3<u32>) {
|
|
38
|
+
let dstSize = textureDimensions(dst);
|
|
39
|
+
|
|
40
|
+
if (gid.x >= dstSize.x || gid.y >= dstSize.y || gid.z >= dstSize.z) {
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
// centre of the 2x2x2 footprint in the previous mip. When a dimension is
|
|
45
|
+
// odd its last texel, row or slice is never sampled, as in the 2D generator
|
|
46
|
+
let uv = (vec3<f32>(gid) * 2.0 + 1.0) / vec3<f32>(textureDimensions(src));
|
|
47
|
+
|
|
48
|
+
textureStore(dst, gid, textureSampleLevel(src, srcSampler, uv, 0.0));
|
|
49
|
+
}
|
|
50
|
+
`}),entryPoint:"main"}})),this._pipelines[a]}generateMipmap(a){if("3d"!==a.dimension)throw Error("[Gpu3dMipmapGenerator] generateMipmap expects a 3D texture.");if(a.mipLevelCount<2)return;aJ(a.format,(a.usage&GPUTextureUsage.STORAGE_BINDING)!=0);let b=this._getMipmapPipeline(a.format),c=b.getBindGroupLayout(0),d=this._device.createCommandEncoder({label:"Gpu3dMipmapGenerator"}),e=d.beginComputePass();e.setPipeline(b);let f=a.width,g=a.height,h=a.depthOrArrayLayers,i=a.createView({dimension:"3d",baseMipLevel:0,mipLevelCount:1});for(let b=1;b<a.mipLevelCount;b++){f=Math.max(1,f>>1),g=Math.max(1,g>>1),h=Math.max(1,h>>1);let d=a.createView({dimension:"3d",baseMipLevel:b,mipLevelCount:1});e.setBindGroup(0,this._device.createBindGroup({layout:c,entries:[{binding:0,resource:this._sampler},{binding:1,resource:i},{binding:2,resource:d}]})),e.dispatchWorkgroups(Math.ceil(f/4),Math.ceil(g/4),Math.ceil(h/4)),i=d}e.end(),this._device.queue.submit([d.finish()])}}class aL{constructor(a){this._pipelines={},this._device=a,this._sampler=a.createSampler({minFilter:"linear"})}_getMipmapPipeline(a){let b=this._pipelines[a];return b||(this._mipmapShaderModule||(this._mipmapShaderModule=this._device.createShaderModule({code:`
|
|
51
|
+
var<private> pos : array<vec2<f32>, 3> = array<vec2<f32>, 3>(
|
|
52
|
+
vec2<f32>(-1.0, -1.0), vec2<f32>(-1.0, 3.0), vec2<f32>(3.0, -1.0));
|
|
53
|
+
|
|
54
|
+
struct VertexOutput {
|
|
55
|
+
@builtin(position) position : vec4<f32>,
|
|
56
|
+
@location(0) texCoord : vec2<f32>,
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
@vertex
|
|
60
|
+
fn vertexMain(@builtin(vertex_index) vertexIndex : u32) -> VertexOutput {
|
|
61
|
+
var output : VertexOutput;
|
|
62
|
+
output.texCoord = pos[vertexIndex] * vec2<f32>(0.5, -0.5) + vec2<f32>(0.5);
|
|
63
|
+
output.position = vec4<f32>(pos[vertexIndex], 0.0, 1.0);
|
|
64
|
+
return output;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
@group(0) @binding(0) var imgSampler : sampler;
|
|
68
|
+
@group(0) @binding(1) var img : texture_2d<f32>;
|
|
69
|
+
|
|
70
|
+
@fragment
|
|
71
|
+
fn fragmentMain(@location(0) texCoord : vec2<f32>) -> @location(0) vec4<f32> {
|
|
72
|
+
return textureSample(img, imgSampler, texCoord);
|
|
73
|
+
}
|
|
74
|
+
`})),b=this._device.createRenderPipeline({layout:"auto",vertex:{module:this._mipmapShaderModule,entryPoint:"vertexMain"},fragment:{module:this._mipmapShaderModule,entryPoint:"fragmentMain",targets:[{format:a}]}}),this._pipelines[a]=b),b}generateMipmap(a){if("3d"===a.dimension)throw Error("[GpuMipmapGenerator] a 3D texture uses Gpu3dMipmapGenerator.");if("1d"===a.dimension)throw Error("Generating mipmaps for 1d textures is currently unsupported!");let b=this._getMipmapPipeline(a.format),c=a,d=a.depthOrArrayLayers||1,e=a.usage&GPUTextureUsage.RENDER_ATTACHMENT;if(!e){let b={size:{width:Math.ceil(a.width/2),height:Math.ceil(a.height/2),depthOrArrayLayers:d},format:a.format,usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_SRC|GPUTextureUsage.RENDER_ATTACHMENT,mipLevelCount:a.mipLevelCount-1};c=this._device.createTexture(b)}let f=this._device.createCommandEncoder({}),g=b.getBindGroupLayout(0);for(let h=0;h<d;++h){let d=a.createView({baseMipLevel:0,mipLevelCount:1,dimension:"2d",baseArrayLayer:h,arrayLayerCount:1}),i=+!!e;for(let e=1;e<a.mipLevelCount;++e){let a=c.createView({baseMipLevel:i++,mipLevelCount:1,dimension:"2d",baseArrayLayer:h,arrayLayerCount:1}),e=f.beginRenderPass({colorAttachments:[{view:a,storeOp:"store",loadOp:"clear",clearValue:{r:0,g:0,b:0,a:0}}]}),j=this._device.createBindGroup({layout:g,entries:[{binding:0,resource:this._sampler},{binding:1,resource:d}]});e.setPipeline(b),e.setBindGroup(0,j),e.draw(3,1,0,0),e.end(),d=a}}if(!e){let b={width:Math.ceil(a.width/2),height:Math.ceil(a.height/2),depthOrArrayLayers:d};for(let d=1;d<a.mipLevelCount;++d)f.copyTextureToTexture({texture:c,mipLevel:d-1},{texture:a,mipLevel:d},b),b.width=Math.ceil(b.width/2),b.height=Math.ceil(b.height/2)}return this._device.queue.submit([f.finish()]),e||c.destroy(),a}}class aM{constructor(a){this.textureView=null,this.textureViews=Object.create(null),this.gpuTexture=a}destroy(){this.gpuTexture.destroy(),this.textureView=null,this.textureViews=null,this.gpuTexture=null}}let aN=/^(rgba8|bgra8|bc[1237]-rgba-|etc2-rgb8|etc2-rgb8a1|etc2-rgba8|astc-\d+x\d+-)unorm$/;function aO(a){return`${a.format||""}.${a.dimension||""}.${a.aspect||""}.${a.baseMipLevel||0}.${a.mipLevelCount||""}.${a.baseArrayLayer||0}.${a.arrayLayerCount||""}`}let aP=class a{constructor(b){this._gpuSamplers=Object.create(null),this._bindGroupHash=Object.create(null),this._renderer=b,b.gc.addCollection(this,"_bindGroupHash","hash"),this._managedTextures=new y.f({renderer:b,type:"resource",onUnload:this.onSourceUnload.bind(this),name:"gpuTextureSource"});let c={image:aG,buffer:aB,video:aH,compressed:aE,...a.uploadExtensions};this._uploads={...c,cube:{type:"cube",upload(a,b,d){let e=a.faces;for(let a=0;a<aF.length;a++){let f=e[aF[a]];(c[f.uploadMethodId]||c.image).upload(f,b,d,a)}}}}}get managedTextures(){return Object.values(this._managedTextures.items)}contextChange(a){this._gpu=a,this._managedTextures.removeAll(),this._gpuSamplers=Object.create(null),this._mipmapGenerator=null,this._mipmap3dGenerator=null}initSource(a){return a._gpuData[this._renderer.uid]?.gpuTexture||this._initSource(a)}_initSource(a){let b,c;if(a.autoGenerateMipmaps){"3d"===a.dimension&&aJ(a.format,a.storage);let b=Math.max(a.pixelWidth,a.pixelHeight,a.depth);a.mipLevelCount=Math.floor(Math.log2(b))+1}if(a.sampleCount>1)b=GPUTextureUsage.RENDER_ATTACHMENT,a.transient&&this._renderer.device.extensions.transientAttachment&&(b|=GPUTextureUsage.TRANSIENT_ATTACHMENT);else{var d;b=GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST,"compressed"!==a.uploadMethodId&&(b|=GPUTextureUsage.RENDER_ATTACHMENT,b|=GPUTextureUsage.COPY_SRC),a.storage&&(b|=GPUTextureUsage.STORAGE_BINDING),d=a.format,c=aN.test(d)?[`${d}-srgb`]:void 0}let e=aC[a.format]||{blockBytes:4,blockWidth:1,blockHeight:1},f=Math.ceil(a.pixelWidth/e.blockWidth)*e.blockWidth,g=Math.ceil(a.pixelHeight/e.blockHeight)*e.blockHeight,h={label:a.label,size:{width:f,height:g,depthOrArrayLayers:a.depthOrArrayLayers},format:a.format,viewFormats:c,sampleCount:a.sampleCount,mipLevelCount:a.mipLevelCount,dimension:a.dimension,usage:b},i=this._gpu.device.createTexture(h);return a._gpuData[this._renderer.uid]=new aM(i),this._managedTextures.add(a)&&(a.on("update",this.onSourceUpdate,this),a.on("resize",this.onSourceResize,this),a.on("updateMipmaps",this.onUpdateMipmaps,this)),this.onSourceUpdate(a),i}onSourceUpdate(a){let b=this.getGpuSource(a);b&&(this._uploads[a.uploadMethodId]&&this._uploads[a.uploadMethodId].upload(a,b,this._gpu),a.autoGenerateMipmaps&&a.mipLevelCount>1&&this.onUpdateMipmaps(a))}onUpdateMipmaps(a){let b=this.getGpuSource(a);if("3d"===a.dimension){this._mipmap3dGenerator??(this._mipmap3dGenerator=new aK(this._gpu.device)),this._mipmap3dGenerator.generateMipmap(b);return}this._mipmapGenerator??(this._mipmapGenerator=new aL(this._gpu.device)),this._mipmapGenerator.generateMipmap(b)}onSourceUnload(a){a.off("update",this.onSourceUpdate,this),a.off("resize",this.onSourceResize,this),a.off("updateMipmaps",this.onUpdateMipmaps,this)}onSourceResize(a){a._gcLastUsed=this._renderer.gc.now;let b=a._gpuData[this._renderer.uid],c=b?.gpuTexture;c?(c.width!==a.pixelWidth||c.height!==a.pixelHeight)&&(b.destroy(),this._bindGroupHash[a.uid]=null,a._gpuData[this._renderer.uid]=null,this.initSource(a)):this.initSource(a)}_initSampler(a){return this._gpuSamplers[a._resourceId]=this._gpu.device.createSampler(a),this._gpuSamplers[a._resourceId]}getGpuSampler(a){return this._gpuSamplers[a._resourceId]||this._initSampler(a)}getGpuSource(a){return a._gcLastUsed=this._renderer.gc.now,a._gpuData[this._renderer.uid]?.gpuTexture||this.initSource(a)}getTextureBindGroup(a){return this._bindGroupHash[a.uid]||this._createTextureBindGroup(a)}_createTextureBindGroup(a){let b=a.source;return this._bindGroupHash[a.uid]=new W.f({0:b,1:b.style,2:new k.f({uTextureMatrix:{type:"mat3x3<f32>",value:a.textureMatrix.mapCoord}})}),this._bindGroupHash[a.uid]}getTextureView(a,b){var c;let d=a.source;d._gcLastUsed=this._renderer.gc.now;let e=d._gpuData[this._renderer.uid];e||(this.initSource(d),e=d._gpuData[this._renderer.uid]);let f=b?aO(b):0;return(c=e.textureViews)[f]||(c[f]=e.gpuTexture.createView({dimension:d.viewDimension,...b})),e.textureViews[f]}getTextureRenderTargetView(a,b=0,c=0,d){var e;let f=a.source;f._gcLastUsed=this._renderer.gc.now;let g=f._gpuData[this._renderer.uid];g||(this.initSource(f),g=f._gpuData[this._renderer.uid]);let h="3d"===f.dimension;h&&(c=0);let i=c*(f.mipLevelCount||1)+b+1;return d&&(i=`${i}.${aO(d)}`),(e=g.textureViews)[i]||(e[i]=g.gpuTexture.createView({dimension:h?"3d":"2d",baseMipLevel:b,mipLevelCount:1,baseArrayLayer:c,arrayLayerCount:1,...d})),g.textureViews[i]}generateCanvas(a){let b=this._renderer,c=b.gpu.device.createCommandEncoder(),d=D.f.get().createCanvas();d.width=a.source.pixelWidth,d.height=a.source.pixelHeight;let e=d.getContext("webgpu");return e.configure({device:b.gpu.device,usage:GPUTextureUsage.COPY_DST|GPUTextureUsage.COPY_SRC,format:D.f.get().getNavigator().gpu.getPreferredCanvasFormat(),alphaMode:"premultiplied"}),c.copyTextureToTexture({texture:b.texture.getGpuSource(a.source),origin:{x:0,y:0}},{texture:e.getCurrentTexture()},{width:d.width,height:d.height}),b.gpu.device.queue.submit([c.finish()]),d}getPixels(a){let b=this.generateCanvas(a),c=ax.f.getOptimalCanvasAndContext(b.width,b.height),d=c.context;d.drawImage(b,0,0);let{width:e,height:f}=b,g=new Uint8ClampedArray(d.getImageData(0,0,e,f).data.buffer);return ax.f.returnCanvasAndContext(c),{pixels:g,width:e,height:f}}destroy(){for(let a of(this._managedTextures.destroy(),Object.keys(this._bindGroupHash))){let b=Number(a),c=this._bindGroupHash[b];c?.destroy()}this._renderer=null,this._gpu=null,this._mipmapGenerator=null,this._mipmap3dGenerator=null,this._gpuSamplers=null,this._bindGroupHash=null}};aP.extension={type:[b.x.WebGPUSystem],name:"texture"},aP.uploadExtensions=Object.create(null),b.H.handleByMap(b.x.TextureUploaderWebGPU,aP.uploadExtensions);let aQ=[...u.q,R,H,F,I,B,aP,at,au,aw,ak,C,J,x],aR=[...u.E,X],aS=[s,p,l],aT=[],aU=[],aV=[],aW=[];b.H.handleByNamedList(b.x.WebGPUSystem,aT),b.H.handleByNamedList(b.x.WebGPUPipes,aU),b.H.handleByNamedList(b.x.WebGPUPipesAdaptor,aV),b.H.handleByNamedList(b.x.WebGPULoader,aW),b.H.add(...aQ,...aR,...aS);class aX extends t.f{constructor(){super({name:"webgpu",type:v.f.WEBGPU,systems:aT,renderPipes:aU,renderPipeAdaptors:aV,loaders:aW})}}a.s(["WebGPURenderer",0,aX],69506)}];
|
|
75
|
+
|
|
76
|
+
//# sourceMappingURL=1q96_modules_pixi_js_lib_rendering_renderers_gpu_WebGPURenderer_mjs_00tc9jrf-ft1_._.js.map
|