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.
Files changed (233) hide show
  1. package/.next/BUILD_ID +1 -0
  2. package/.next/app-path-routes-manifest.json +7 -0
  3. package/.next/build/chunks/[root-of-the-server]__05i36w1t4lzaf._.js +502 -0
  4. package/.next/build/chunks/[root-of-the-server]__05i36w1t4lzaf._.js.map +11 -0
  5. package/.next/build/chunks/[root-of-the-server]__1kki86fknkq7y._.js +190 -0
  6. package/.next/build/chunks/[root-of-the-server]__1kki86fknkq7y._.js.map +8 -0
  7. package/.next/build/chunks/[turbopack-node]_transforms_postcss_ts_1gfkiq9iz8yb8._.js +13 -0
  8. package/.next/build/chunks/[turbopack-node]_transforms_postcss_ts_1gfkiq9iz8yb8._.js.map +5 -0
  9. package/.next/build/chunks/[turbopack]_runtime.js +1056 -0
  10. package/.next/build/chunks/[turbopack]_runtime.js.map +11 -0
  11. package/.next/build/chunks/node_modules_20v-8wlfss9m1._.js +7314 -0
  12. package/.next/build/chunks/node_modules_20v-8wlfss9m1._.js.map +47 -0
  13. package/.next/build/chunks/pool_entry-[turbopack-node]_transforms_postcss_ts_0tp-k2vy8nj6i._.js +6 -0
  14. package/.next/build/chunks/pool_entry-[turbopack-node]_transforms_postcss_ts_0tp-k2vy8nj6i._.js.map +5 -0
  15. package/.next/build/package.json +1 -0
  16. package/.next/build-manifest.json +54 -0
  17. package/.next/export-marker.json +6 -0
  18. package/.next/fallback-build-manifest.json +15 -0
  19. package/.next/images-manifest.json +68 -0
  20. package/.next/next-minimal-server.js.nft.json +1 -0
  21. package/.next/next-server.js.nft.json +1 -0
  22. package/.next/package.json +1 -0
  23. package/.next/prerender-manifest.json +97 -0
  24. package/.next/required-server-files.js +366 -0
  25. package/.next/required-server-files.json +366 -0
  26. package/.next/routes-manifest.json +75 -0
  27. package/.next/server/app/_global-error/page/app-paths-manifest.json +3 -0
  28. package/.next/server/app/_global-error/page/build-manifest.json +21 -0
  29. package/.next/server/app/_global-error/page/next-font-manifest.json +6 -0
  30. package/.next/server/app/_global-error/page/react-loadable-manifest.json +1 -0
  31. package/.next/server/app/_global-error/page/server-reference-manifest.json +4 -0
  32. package/.next/server/app/_global-error/page.js +10 -0
  33. package/.next/server/app/_global-error/page.js.map +5 -0
  34. package/.next/server/app/_global-error/page.js.nft.json +1 -0
  35. package/.next/server/app/_global-error/page_client-reference-manifest.js +3 -0
  36. package/.next/server/app/_global-error.html +1 -0
  37. package/.next/server/app/_global-error.meta +30 -0
  38. package/.next/server/app/_global-error.rsc +18 -0
  39. package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +23 -0
  40. package/.next/server/app/_global-error.segments/_full.segment.rsc +18 -0
  41. package/.next/server/app/_global-error.segments/_tree.segment.rsc +2 -0
  42. package/.next/server/app/_not-found/page/app-paths-manifest.json +3 -0
  43. package/.next/server/app/_not-found/page/build-manifest.json +21 -0
  44. package/.next/server/app/_not-found/page/next-font-manifest.json +6 -0
  45. package/.next/server/app/_not-found/page/react-loadable-manifest.json +1 -0
  46. package/.next/server/app/_not-found/page/server-reference-manifest.json +4 -0
  47. package/.next/server/app/_not-found/page.js +12 -0
  48. package/.next/server/app/_not-found/page.js.map +5 -0
  49. package/.next/server/app/_not-found/page.js.nft.json +1 -0
  50. package/.next/server/app/_not-found/page_client-reference-manifest.js +3 -0
  51. package/.next/server/app/_not-found.html +1 -0
  52. package/.next/server/app/_not-found.meta +35 -0
  53. package/.next/server/app/_not-found.rsc +22 -0
  54. package/.next/server/app/_not-found.segments/_full.segment.rsc +22 -0
  55. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +28 -0
  56. package/.next/server/app/_not-found.segments/_tree.segment.rsc +4 -0
  57. package/.next/server/app/api/traces/stream/route/app-paths-manifest.json +3 -0
  58. package/.next/server/app/api/traces/stream/route/build-manifest.json +12 -0
  59. package/.next/server/app/api/traces/stream/route/server-reference-manifest.json +4 -0
  60. package/.next/server/app/api/traces/stream/route.js +7 -0
  61. package/.next/server/app/api/traces/stream/route.js.map +5 -0
  62. package/.next/server/app/api/traces/stream/route.js.nft.json +1 -0
  63. package/.next/server/app/api/traces/stream/route_client-reference-manifest.js +3 -0
  64. package/.next/server/app/api/version/route/app-paths-manifest.json +3 -0
  65. package/.next/server/app/api/version/route/build-manifest.json +12 -0
  66. package/.next/server/app/api/version/route/server-reference-manifest.json +4 -0
  67. package/.next/server/app/api/version/route.js +7 -0
  68. package/.next/server/app/api/version/route.js.map +5 -0
  69. package/.next/server/app/api/version/route.js.nft.json +1 -0
  70. package/.next/server/app/api/version/route_client-reference-manifest.js +3 -0
  71. package/.next/server/app/index.html +1 -0
  72. package/.next/server/app/index.meta +29 -0
  73. package/.next/server/app/index.rsc +29 -0
  74. package/.next/server/app/index.segments/__PAGE__.segment.rsc +34 -0
  75. package/.next/server/app/index.segments/_full.segment.rsc +29 -0
  76. package/.next/server/app/index.segments/_tree.segment.rsc +3 -0
  77. package/.next/server/app/page/app-paths-manifest.json +3 -0
  78. package/.next/server/app/page/build-manifest.json +21 -0
  79. package/.next/server/app/page/next-font-manifest.json +6 -0
  80. package/.next/server/app/page/react-loadable-manifest.json +1 -0
  81. package/.next/server/app/page/server-reference-manifest.json +4 -0
  82. package/.next/server/app/page.js +13 -0
  83. package/.next/server/app/page.js.map +5 -0
  84. package/.next/server/app/page.js.nft.json +1 -0
  85. package/.next/server/app/page_client-reference-manifest.js +3 -0
  86. package/.next/server/app-paths-manifest.json +7 -0
  87. package/.next/server/chunks/[externals]__0bwf06g0pqv3h._.js +3 -0
  88. package/.next/server/chunks/[externals]__0bwf06g0pqv3h._.js.map +1 -0
  89. package/.next/server/chunks/[externals]__1p2j9_5g429uh._.js +3 -0
  90. package/.next/server/chunks/[externals]__1p2j9_5g429uh._.js.map +1 -0
  91. package/.next/server/chunks/[root-of-the-server]__04an4kw4xcc5l._.js +5 -0
  92. package/.next/server/chunks/[root-of-the-server]__04an4kw4xcc5l._.js.map +1 -0
  93. package/.next/server/chunks/[root-of-the-server]__1s6v8mz-nanm-._.js +5 -0
  94. package/.next/server/chunks/[root-of-the-server]__1s6v8mz-nanm-._.js.map +1 -0
  95. package/.next/server/chunks/[root-of-the-server]__20xfs4y2ipcvv._.js +320 -0
  96. package/.next/server/chunks/[root-of-the-server]__20xfs4y2ipcvv._.js.map +1 -0
  97. package/.next/server/chunks/[turbopack]_runtime.js +937 -0
  98. package/.next/server/chunks/[turbopack]_runtime.js.map +10 -0
  99. package/.next/server/chunks/_next-internal_server_app_api_traces_stream_route_actions_07rmicxgds803.js +3 -0
  100. package/.next/server/chunks/_next-internal_server_app_api_traces_stream_route_actions_07rmicxgds803.js.map +1 -0
  101. package/.next/server/chunks/_next-internal_server_app_api_version_route_actions_0kbx30hro8e93.js +3 -0
  102. package/.next/server/chunks/_next-internal_server_app_api_version_route_actions_0kbx30hro8e93.js.map +1 -0
  103. package/.next/server/chunks/ssr/1q96_modules_pixi_js_lib_rendering_renderers_canvas_CanvasRenderer_mjs_1xntzghggpb51._.js +3 -0
  104. package/.next/server/chunks/ssr/1q96_modules_pixi_js_lib_rendering_renderers_canvas_CanvasRenderer_mjs_1xntzghggpb51._.js.map +1 -0
  105. package/.next/server/chunks/ssr/1q96_modules_pixi_js_lib_rendering_renderers_gpu_WebGPURenderer_mjs_00tc9jrf-ft1_._.js +76 -0
  106. package/.next/server/chunks/ssr/1q96_modules_pixi_js_lib_rendering_renderers_gpu_WebGPURenderer_mjs_00tc9jrf-ft1_._.js.map +1 -0
  107. package/.next/server/chunks/ssr/[root-of-the-server]__08zgqq_38tv57._.js +3 -0
  108. package/.next/server/chunks/ssr/[root-of-the-server]__08zgqq_38tv57._.js.map +1 -0
  109. package/.next/server/chunks/ssr/[root-of-the-server]__0aa2929udndo-._.js +3 -0
  110. package/.next/server/chunks/ssr/[root-of-the-server]__0aa2929udndo-._.js.map +1 -0
  111. package/.next/server/chunks/ssr/[root-of-the-server]__0ayw3c9e93kvf._.js +3 -0
  112. package/.next/server/chunks/ssr/[root-of-the-server]__0ayw3c9e93kvf._.js.map +1 -0
  113. package/.next/server/chunks/ssr/[root-of-the-server]__0ojpb-dtuk3-q._.js +3 -0
  114. package/.next/server/chunks/ssr/[root-of-the-server]__0ojpb-dtuk3-q._.js.map +1 -0
  115. package/.next/server/chunks/ssr/[root-of-the-server]__0py1t7q9ntzgc._.js +3 -0
  116. package/.next/server/chunks/ssr/[root-of-the-server]__0py1t7q9ntzgc._.js.map +1 -0
  117. package/.next/server/chunks/ssr/[root-of-the-server]__1cf6qt9agg_9-._.js +14 -0
  118. package/.next/server/chunks/ssr/[root-of-the-server]__1cf6qt9agg_9-._.js.map +1 -0
  119. package/.next/server/chunks/ssr/[root-of-the-server]__1e1_fmeab1ca7._.js +3 -0
  120. package/.next/server/chunks/ssr/[root-of-the-server]__1e1_fmeab1ca7._.js.map +1 -0
  121. package/.next/server/chunks/ssr/[root-of-the-server]__1w2vu9hh0h02y._.js +3 -0
  122. package/.next/server/chunks/ssr/[root-of-the-server]__1w2vu9hh0h02y._.js.map +1 -0
  123. package/.next/server/chunks/ssr/[turbopack]_runtime.js +937 -0
  124. package/.next/server/chunks/ssr/[turbopack]_runtime.js.map +10 -0
  125. package/.next/server/chunks/ssr/_next-internal_server_app__global-error_page_actions_0zi5s8-psc_d2.js +3 -0
  126. package/.next/server/chunks/ssr/_next-internal_server_app__global-error_page_actions_0zi5s8-psc_d2.js.map +1 -0
  127. package/.next/server/chunks/ssr/_next-internal_server_app__not-found_page_actions_0pt47yrisjoev.js +3 -0
  128. package/.next/server/chunks/ssr/_next-internal_server_app__not-found_page_actions_0pt47yrisjoev.js.map +1 -0
  129. package/.next/server/chunks/ssr/_next-internal_server_app_page_actions_0hhsz1jew5ls7.js +3 -0
  130. package/.next/server/chunks/ssr/_next-internal_server_app_page_actions_0hhsz1jew5ls7.js.map +1 -0
  131. package/.next/server/chunks/ssr/node_modules_01xbj_9zg44kw._.js +33 -0
  132. package/.next/server/chunks/ssr/node_modules_01xbj_9zg44kw._.js.map +1 -0
  133. package/.next/server/chunks/ssr/node_modules_0a548_llmwce7._.js +23 -0
  134. package/.next/server/chunks/ssr/node_modules_0a548_llmwce7._.js.map +1 -0
  135. package/.next/server/chunks/ssr/node_modules_0gxlxpuufujz9._.js +33 -0
  136. package/.next/server/chunks/ssr/node_modules_0gxlxpuufujz9._.js.map +1 -0
  137. package/.next/server/chunks/ssr/node_modules_next_dist_0janj0i6dqko7._.js +6 -0
  138. package/.next/server/chunks/ssr/node_modules_next_dist_0janj0i6dqko7._.js.map +1 -0
  139. package/.next/server/chunks/ssr/node_modules_next_dist_1hgv5i-pr1hza._.js +3 -0
  140. package/.next/server/chunks/ssr/node_modules_next_dist_1hgv5i-pr1hza._.js.map +1 -0
  141. package/.next/server/chunks/ssr/node_modules_next_dist_client_components_0wpq8j32_ibz4._.js +3 -0
  142. package/.next/server/chunks/ssr/node_modules_next_dist_client_components_0wpq8j32_ibz4._.js.map +1 -0
  143. package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_forbidden_0symwr9mbf-fh.js +3 -0
  144. package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_forbidden_0symwr9mbf-fh.js.map +1 -0
  145. package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_global-error_0q-w892nagajq.js +3 -0
  146. package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_global-error_0q-w892nagajq.js.map +1 -0
  147. package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_unauthorized_0l_sp0xky89qu.js +3 -0
  148. package/.next/server/chunks/ssr/node_modules_next_dist_client_components_builtin_unauthorized_0l_sp0xky89qu.js.map +1 -0
  149. package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0aymk_x8-bu4q.js +3 -0
  150. package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_0aymk_x8-bu4q.js.map +1 -0
  151. package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_19--w_z4y02i7.js +3 -0
  152. package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_19--w_z4y02i7.js.map +1 -0
  153. package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1qjycfedgh109.js +3 -0
  154. package/.next/server/chunks/ssr/node_modules_next_dist_esm_build_templates_app-page_1qjycfedgh109.js.map +1 -0
  155. package/.next/server/chunks/ssr/node_modules_pixi_js_lib_0hcyh9uzlz7ci._.js +3 -0
  156. package/.next/server/chunks/ssr/node_modules_pixi_js_lib_0hcyh9uzlz7ci._.js.map +1 -0
  157. package/.next/server/chunks/ssr/node_modules_pixi_js_lib_0k3f3soanqdoq._.js +3 -0
  158. package/.next/server/chunks/ssr/node_modules_pixi_js_lib_0k3f3soanqdoq._.js.map +1 -0
  159. package/.next/server/chunks/ssr/node_modules_pixi_js_lib_0ovgsftn-uvbz._.js +3 -0
  160. package/.next/server/chunks/ssr/node_modules_pixi_js_lib_0ovgsftn-uvbz._.js.map +1 -0
  161. package/.next/server/chunks/ssr/node_modules_pixi_js_lib_0xa24fqr5c5qi._.js +5 -0
  162. package/.next/server/chunks/ssr/node_modules_pixi_js_lib_0xa24fqr5c5qi._.js.map +1 -0
  163. package/.next/server/chunks/ssr/node_modules_pixi_js_lib_0zrftay3kjup7._.js +5 -0
  164. package/.next/server/chunks/ssr/node_modules_pixi_js_lib_0zrftay3kjup7._.js.map +1 -0
  165. package/.next/server/chunks/ssr/node_modules_pixi_js_lib_1z4lgkg_w-7fr._.js +208 -0
  166. package/.next/server/chunks/ssr/node_modules_pixi_js_lib_1z4lgkg_w-7fr._.js.map +1 -0
  167. package/.next/server/chunks/ssr/node_modules_pixi_js_lib_1zjkoj2kc4hm-._.js +3 -0
  168. package/.next/server/chunks/ssr/node_modules_pixi_js_lib_1zjkoj2kc4hm-._.js.map +1 -0
  169. package/.next/server/chunks/ssr/node_modules_pixi_js_lib_environment-browser_browserAll_mjs_0xb_t3dj4ad1f._.js +16 -0
  170. package/.next/server/chunks/ssr/node_modules_pixi_js_lib_environment-browser_browserAll_mjs_0xb_t3dj4ad1f._.js.map +1 -0
  171. package/.next/server/chunks/ssr/node_modules_pixi_js_lib_filters_Filter_mjs_0luksfw8ekifi._.js +3 -0
  172. package/.next/server/chunks/ssr/node_modules_pixi_js_lib_filters_Filter_mjs_0luksfw8ekifi._.js.map +1 -0
  173. package/.next/server/chunks/ssr/node_modules_pixi_js_lib_filters_init_mjs_1o5fmm_m60v_s._.js +3 -0
  174. package/.next/server/chunks/ssr/node_modules_pixi_js_lib_filters_init_mjs_1o5fmm_m60v_s._.js.map +1 -0
  175. package/.next/server/chunks/ssr/node_modules_pixi_js_lib_rendering_1fkio2phhfvow._.js +196 -0
  176. package/.next/server/chunks/ssr/node_modules_pixi_js_lib_rendering_1fkio2phhfvow._.js.map +1 -0
  177. package/.next/server/chunks/ssr/node_modules_pixi_js_lib_rendering_1n1q7aum4i7zo._.js +196 -0
  178. package/.next/server/chunks/ssr/node_modules_pixi_js_lib_rendering_1n1q7aum4i7zo._.js.map +1 -0
  179. package/.next/server/chunks/ssr/node_modules_pixi_js_lib_rendering_renderers_10vpvx1o7svnk._.js +3 -0
  180. package/.next/server/chunks/ssr/node_modules_pixi_js_lib_rendering_renderers_10vpvx1o7svnk._.js.map +1 -0
  181. package/.next/server/chunks/ssr/node_modules_pixi_js_lib_rendering_renderers_gl_WebGLRenderer_mjs_1hlux44jh7dk-._.js +153 -0
  182. package/.next/server/chunks/ssr/node_modules_pixi_js_lib_rendering_renderers_gl_WebGLRenderer_mjs_1hlux44jh7dk-._.js.map +1 -0
  183. package/.next/server/chunks/ssr/src_app_page_1vqfk0-j72fp6.js +3 -0
  184. package/.next/server/chunks/ssr/src_app_page_1vqfk0-j72fp6.js.map +1 -0
  185. package/.next/server/functions-config-manifest.json +4 -0
  186. package/.next/server/interception-route-rewrite-manifest.js +1 -0
  187. package/.next/server/middleware-build-manifest.js +54 -0
  188. package/.next/server/middleware-manifest.json +6 -0
  189. package/.next/server/next-font-manifest.js +1 -0
  190. package/.next/server/next-font-manifest.json +6 -0
  191. package/.next/server/pages/404.html +1 -0
  192. package/.next/server/pages/500.html +1 -0
  193. package/.next/server/pages-manifest.json +4 -0
  194. package/.next/server/prefetch-hints.json +34 -0
  195. package/.next/server/preview-props.json +5 -0
  196. package/.next/server/server-reference-manifest.js +1 -0
  197. package/.next/server/server-reference-manifest.json +5 -0
  198. package/.next/static/chunks/0_9x2udu0iodw.js +1 -0
  199. package/.next/static/chunks/0cz1d0mv5g_q7.js +1 -0
  200. package/.next/static/chunks/0umf92h1sb77c.js +1 -0
  201. package/.next/static/chunks/10om7oix6wjze.js +1 -0
  202. package/.next/static/chunks/1780fh11o7pze.js +1 -0
  203. package/.next/static/chunks/1cldmiyw3ya18.js +21 -0
  204. package/.next/static/chunks/1unuqfq-vfqtp.js +1 -0
  205. package/.next/static/chunks/2-vsu_pt58kse.js +3 -0
  206. package/.next/static/chunks/2drjv1ti9t4pg.js +1 -0
  207. package/.next/static/chunks/2hgsvrrwu57--.css +1 -0
  208. package/.next/static/chunks/2ogvir8krwwhf.js +1 -0
  209. package/.next/static/chunks/2tc54fmsk8v8q.js +1 -0
  210. package/.next/static/chunks/304ue7hvto0o0.js +206 -0
  211. package/.next/static/chunks/31gve42sn75--.js +1 -0
  212. package/.next/static/chunks/32kizm_7q94vd.js +194 -0
  213. package/.next/static/chunks/33bap0u4zwgab.js +74 -0
  214. package/.next/static/chunks/3c4xol65z2da2.js +22 -0
  215. package/.next/static/chunks/3cfn99dbrcvvp.js +31 -0
  216. package/.next/static/chunks/3d6xc1eemxy82.js +1 -0
  217. package/.next/static/chunks/3ycr8gfnsg-xv.js +151 -0
  218. package/.next/static/chunks/3ytt3vrdhke9u.js +14 -0
  219. package/.next/static/chunks/turbopack-3-ry682tkyiqk.js +1 -0
  220. package/.next/static/cy2F4S28h_-YWqCOuE_ul/_buildManifest.js +11 -0
  221. package/.next/static/cy2F4S28h_-YWqCOuE_ul/_clientMiddlewareManifest.js +1 -0
  222. package/.next/static/cy2F4S28h_-YWqCOuE_ul/_ssgManifest.js +1 -0
  223. package/.next/trace +1 -0
  224. package/.next/trace-build +1 -0
  225. package/.next/types/cache-life.d.ts +114 -0
  226. package/.next/types/root-params.d.ts +3 -0
  227. package/.next/types/routes.d.ts +74 -0
  228. package/.next/types/validator.ts +17 -0
  229. package/bin/cli.js +24 -6
  230. package/package.json +6 -6
  231. package/src/app/api/traces/stream/route.js +2 -2
  232. package/src/app/layout.js +1 -1
  233. package/src/app/page.js +6 -19
@@ -0,0 +1,194 @@
1
+ (()=>{"use strict";(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,54126,t=>{var e=t.i(81107),a=t.i(27076),f=t.i(65654),r=t.i(22558);let o=class t extends f.f{constructor(e){super(e={...t.defaultOptions,...e}),this.enabled=!0,this._state=r.A.for2d(),this.blendMode=e.blendMode,this.padding=e.padding,"boolean"==typeof e.antialias?this.antialias=e.antialias?"on":"off":this.antialias=e.antialias,this.resolution=e.resolution,this.blendRequired=e.blendRequired,this.clipToViewport=e.clipToViewport,this.addResource("uTexture",0,1),e.blendRequired&&this.addResource("uBackTexture",0,3)}apply(t,e,a,f){t.applyFilter(this,e,a,f)}get blendMode(){return this._state.blendMode}set blendMode(t){this._state.blendMode=t}static from(f){let r,o,{gpu:s,gl:i,...n}=f;return s&&(r=a.f.from(s)),i&&(o=e.f.from(i)),new t({gpuProgram:r,glProgram:o,...n})}};o.defaultOptions={blendMode:"normal",resolution:1,padding:0,antialias:"off",blendRequired:!1,clipToViewport:!0},t.s(["f",0,o])},35066,90532,t=>{let e={name:"local-uniform-bit",vertex:{header:`
2
+
3
+ struct LocalUniforms {
4
+ uTransformMatrix:mat3x3<f32>,
5
+ uColor:vec4<f32>,
6
+ uRound:f32,
7
+ }
8
+
9
+ @group(1) @binding(0) var<uniform> localUniforms : LocalUniforms;
10
+ `,main:`
11
+ vColor *= localUniforms.uColor;
12
+ modelMatrix *= localUniforms.uTransformMatrix;
13
+ `,end:`
14
+ if(localUniforms.uRound == 1)
15
+ {
16
+ vPosition = vec4(roundPixels(vPosition.xy, globalUniforms.uResolution), vPosition.zw);
17
+ }
18
+ `}},a={...e,vertex:{...e.vertex,header:e.vertex.header.replace("group(1)","group(2)")}},f={name:"local-uniform-bit",vertex:{header:`
19
+
20
+ uniform mat3 uTransformMatrix;
21
+ uniform vec4 uColor;
22
+ uniform float uRound;
23
+ `,main:`
24
+ vColor *= uColor;
25
+ modelMatrix = uTransformMatrix;
26
+ `,end:`
27
+ if(uRound == 1.)
28
+ {
29
+ gl_Position.xy = roundPixels(gl_Position.xy, uResolution);
30
+ }
31
+ `}};t.s(["q",0,e,"Y",0,f,"M",0,a],35066);let r={name:"texture-bit",vertex:{header:`
32
+
33
+ struct TextureUniforms {
34
+ uTextureMatrix:mat3x3<f32>,
35
+ }
36
+
37
+ @group(2) @binding(2) var<uniform> textureUniforms : TextureUniforms;
38
+ `,main:`
39
+ uv = (textureUniforms.uTextureMatrix * vec3(uv, 1.0)).xy;
40
+ `},fragment:{header:`
41
+ @group(2) @binding(0) var uTexture: texture_2d<f32>;
42
+ @group(2) @binding(1) var uSampler: sampler;
43
+
44
+
45
+ `,main:`
46
+ outColor = textureSample(uTexture, uSampler, vUV);
47
+ `}},o={name:"texture-bit",vertex:{header:`
48
+ uniform mat3 uTextureMatrix;
49
+ `,main:`
50
+ uv = (uTextureMatrix * vec3(uv, 1.0)).xy;
51
+ `},fragment:{header:`
52
+ uniform sampler2D uTexture;
53
+
54
+
55
+ `,main:`
56
+ outColor = texture(uTexture, vUV);
57
+ `}};t.s(["S",0,r,"X",0,o],90532)},35656,39391,t=>{var e=t.i(85830),a=t.i(46820);t.s(["f",0,function(t,f){for(let a in t.attributes){let r=t.attributes[a],o=f[a];o?(r.format??(r.format=o.format),r.offset??(r.offset=o.offset),r.instance??(r.instance=o.instance)):r.format||(0,e.f)(`Attribute ${a} is not present in the shader, but is present in the geometry. Unable to infer attribute details.`)}!function(t){let{buffers:e,attributes:f}=t,r={},o={};for(let t in e){let a=e[t];r[a.uid]=0,o[a.uid]=0}for(let t in f){let e=f[t];r[e.buffer.uid]+=(0,a.f)(e.format).stride}for(let t in f){let e=f[t];e.stride??(e.stride=r[e.buffer.uid]),e.start??(e.start=o[e.buffer.uid]),o[e.buffer.uid]+=(0,a.f)(e.format).stride}}(t)}],35656);var f=t.i(96108);let r=[];r[f.U.NONE]=void 0,r[f.U.DISABLED]={stencilWriteMask:0,stencilReadMask:0},r[f.U.RENDERING_MASK_ADD]={stencilFront:{compare:"equal",passOp:"increment-clamp"},stencilBack:{compare:"equal",passOp:"increment-clamp"}},r[f.U.RENDERING_MASK_REMOVE]={stencilFront:{compare:"equal",passOp:"decrement-clamp"},stencilBack:{compare:"equal",passOp:"decrement-clamp"}},r[f.U.MASK_ACTIVE]={stencilWriteMask:0,stencilFront:{compare:"equal",passOp:"keep"},stencilBack:{compare:"equal",passOp:"keep"}},r[f.U.INVERSE_MASK_ACTIVE]={stencilWriteMask:0,stencilFront:{compare:"not-equal",passOp:"keep"},stencilBack:{compare:"not-equal",passOp:"keep"}},t.s(["f",0,r],39391)},28353,92715,62039,33156,87784,t=>{var e=t.i(55364),a=t.i(85465),f=t.i(64957);t.s(["f",0,class{constructor(t){this._syncFunctionHash=Object.create(null),this._adaptor=t,this._systemCheck()}_systemCheck(){if(!(0,e.f)())throw Error("Current environment does not allow unsafe-eval, please use pixi.js/unsafe-eval module to enable support.")}ensureUniformGroup(t){let e=this.getUniformGroupData(t);t.buffer||(t.buffer=new a.f({data:new Float32Array(e.layout.size/4),usage:f.f.UNIFORM|f.f.COPY_DST}))}getUniformGroupData(t){return this._syncFunctionHash[t._signature]||this._initUniformGroup(t)}_initUniformGroup(t){let e=t._signature,a=this._syncFunctionHash[e];if(!a){let f=Object.keys(t.uniformStructures).map(e=>t.uniformStructures[e]),r=this._adaptor.createUboElements(f),o=this._generateUboSync(r.uboElements);a=this._syncFunctionHash[e]={layout:r,syncFunction:o}}return this._syncFunctionHash[e]}_generateUboSync(t){return this._adaptor.generateUboSync(t)}syncUniformGroup(t,e,r){let o=this.getUniformGroupData(t);t.buffer||(t.buffer=new a.f({data:new Float32Array(o.layout.size/4),usage:f.f.UNIFORM|f.f.COPY_DST}));let s=null;return e||(e=t.buffer.data,s=t.buffer.dataInt32),r||(r=0),o.syncFunction(t.uniforms,e,s,r),!0}updateUniformGroup(t){if(t.isStatic&&!t._dirtyId)return!1;t._dirtyId=0;let e=this.syncUniformGroup(t);return t.buffer.update(),e}destroy(){this._syncFunctionHash=null}}],28353);let r=[{type:"mat3x3<f32>",test:t=>void 0!==t.value.a,ubo:`
58
+ var matrix = uv[name].toArray(true);
59
+ data[offset] = matrix[0];
60
+ data[offset + 1] = matrix[1];
61
+ data[offset + 2] = matrix[2];
62
+ data[offset + 4] = matrix[3];
63
+ data[offset + 5] = matrix[4];
64
+ data[offset + 6] = matrix[5];
65
+ data[offset + 8] = matrix[6];
66
+ data[offset + 9] = matrix[7];
67
+ data[offset + 10] = matrix[8];
68
+ `,uniform:`
69
+ gl.uniformMatrix3fv(ud[name].location, false, uv[name].toArray(true));
70
+ `},{type:"vec4<f32>",test:t=>"vec4<f32>"===t.type&&1===t.size&&void 0!==t.value.width,ubo:`
71
+ v = uv[name];
72
+ data[offset] = v.x;
73
+ data[offset + 1] = v.y;
74
+ data[offset + 2] = v.width;
75
+ data[offset + 3] = v.height;
76
+ `,uniform:`
77
+ cv = ud[name].value;
78
+ v = uv[name];
79
+ if (cv[0] !== v.x || cv[1] !== v.y || cv[2] !== v.width || cv[3] !== v.height) {
80
+ cv[0] = v.x;
81
+ cv[1] = v.y;
82
+ cv[2] = v.width;
83
+ cv[3] = v.height;
84
+ gl.uniform4f(ud[name].location, v.x, v.y, v.width, v.height);
85
+ }
86
+ `},{type:"vec2<f32>",test:t=>"vec2<f32>"===t.type&&1===t.size&&void 0!==t.value.x,ubo:`
87
+ v = uv[name];
88
+ data[offset] = v.x;
89
+ data[offset + 1] = v.y;
90
+ `,uniform:`
91
+ cv = ud[name].value;
92
+ v = uv[name];
93
+ if (cv[0] !== v.x || cv[1] !== v.y) {
94
+ cv[0] = v.x;
95
+ cv[1] = v.y;
96
+ gl.uniform2f(ud[name].location, v.x, v.y);
97
+ }
98
+ `},{type:"vec4<f32>",test:t=>"vec4<f32>"===t.type&&1===t.size&&void 0!==t.value.red,ubo:`
99
+ v = uv[name];
100
+ data[offset] = v.red;
101
+ data[offset + 1] = v.green;
102
+ data[offset + 2] = v.blue;
103
+ data[offset + 3] = v.alpha;
104
+ `,uniform:`
105
+ cv = ud[name].value;
106
+ v = uv[name];
107
+ if (cv[0] !== v.red || cv[1] !== v.green || cv[2] !== v.blue || cv[3] !== v.alpha) {
108
+ cv[0] = v.red;
109
+ cv[1] = v.green;
110
+ cv[2] = v.blue;
111
+ cv[3] = v.alpha;
112
+ gl.uniform4f(ud[name].location, v.red, v.green, v.blue, v.alpha);
113
+ }
114
+ `},{type:"vec3<f32>",test:t=>"vec3<f32>"===t.type&&1===t.size&&void 0!==t.value.red,ubo:`
115
+ v = uv[name];
116
+ data[offset] = v.red;
117
+ data[offset + 1] = v.green;
118
+ data[offset + 2] = v.blue;
119
+ `,uniform:`
120
+ cv = ud[name].value;
121
+ v = uv[name];
122
+ if (cv[0] !== v.red || cv[1] !== v.green || cv[2] !== v.blue) {
123
+ cv[0] = v.red;
124
+ cv[1] = v.green;
125
+ cv[2] = v.blue;
126
+ gl.uniform3f(ud[name].location, v.red, v.green, v.blue);
127
+ }
128
+ `}];function o(t,e){return`
129
+ for (let i = 0; i < ${t*e}; i++) {
130
+ data[offset + (((i / ${t})|0) * 4) + (i % ${t})] = v[i];
131
+ }
132
+ `}t.s(["f",0,r],92715),t.s(["f",0,function(t,e,a){let f=[`
133
+ var v = null;
134
+ var v2 = null;
135
+ var t = 0;
136
+ var index = 0;
137
+ var name = null;
138
+ var arrayOffset = null;
139
+ `],o=0;for(let s=0;s<t.length;s++){let i=t[s],n=i.data.name,u=!1,v=0;for(let t=0;t<r.length;t++)if(r[t].test(i.data)){v=i.offset/4,f.push(`name = "${n}";`,`offset += ${v-o};`,r[t].ubo),u=!0;break}if(!u)if(i.data.size>1)v=i.offset/4,f.push(a(i,v-o));else{let t=e[i.data.type];v=i.offset/4,f.push(`
140
+ v = uv.${n};
141
+ offset += ${v-o};
142
+ ${t};
143
+ `)}o=v}return Function("uv","data","dataInt32","offset",f.join("\n"))}],62039);let s={f32:`
144
+ data[offset] = v;`,i32:`
145
+ dataInt32[offset] = v;`,u32:`
146
+ dataInt32[offset] = v;`,"vec2<f32>":`
147
+ data[offset] = v[0];
148
+ data[offset + 1] = v[1];`,"vec3<f32>":`
149
+ data[offset] = v[0];
150
+ data[offset + 1] = v[1];
151
+ data[offset + 2] = v[2];`,"vec4<f32>":`
152
+ data[offset] = v[0];
153
+ data[offset + 1] = v[1];
154
+ data[offset + 2] = v[2];
155
+ data[offset + 3] = v[3];`,"vec2<i32>":`
156
+ dataInt32[offset] = v[0];
157
+ dataInt32[offset + 1] = v[1];`,"vec3<i32>":`
158
+ dataInt32[offset] = v[0];
159
+ dataInt32[offset + 1] = v[1];
160
+ dataInt32[offset + 2] = v[2];`,"vec4<i32>":`
161
+ dataInt32[offset] = v[0];
162
+ dataInt32[offset + 1] = v[1];
163
+ dataInt32[offset + 2] = v[2];
164
+ dataInt32[offset + 3] = v[3];`,"vec2<u32>":`
165
+ dataInt32[offset] = v[0];
166
+ dataInt32[offset + 1] = v[1];`,"vec3<u32>":`
167
+ dataInt32[offset] = v[0];
168
+ dataInt32[offset + 1] = v[1];
169
+ dataInt32[offset + 2] = v[2];`,"vec4<u32>":`
170
+ dataInt32[offset] = v[0];
171
+ dataInt32[offset + 1] = v[1];
172
+ dataInt32[offset + 2] = v[2];
173
+ dataInt32[offset + 3] = v[3];`,"mat2x2<f32>":`
174
+ data[offset] = v[0];
175
+ data[offset + 1] = v[1];
176
+ data[offset + 4] = v[2];
177
+ data[offset + 5] = v[3];`,"mat3x3<f32>":`
178
+ data[offset] = v[0];
179
+ data[offset + 1] = v[1];
180
+ data[offset + 2] = v[2];
181
+ data[offset + 4] = v[3];
182
+ data[offset + 5] = v[4];
183
+ data[offset + 6] = v[5];
184
+ data[offset + 8] = v[6];
185
+ data[offset + 9] = v[7];
186
+ data[offset + 10] = v[8];`,"mat4x4<f32>":`
187
+ for (let i = 0; i < 16; i++) {
188
+ data[offset + i] = v[i];
189
+ }`,"mat3x2<f32>":o(3,2),"mat4x2<f32>":o(4,2),"mat2x3<f32>":o(2,3),"mat4x3<f32>":o(4,3),"mat2x4<f32>":o(2,4),"mat3x4<f32>":o(3,4)},i={...s,"mat2x2<f32>":`
190
+ data[offset] = v[0];
191
+ data[offset + 1] = v[1];
192
+ data[offset + 2] = v[2];
193
+ data[offset + 3] = v[3];
194
+ `};t.s(["E",0,s,"c",0,i],33156);var n=t.i(95932),u=t.i(24314);class v extends n.f{constructor({buffer:t,offset:e,size:a}){super(),this.uid=(0,u.f)("buffer"),this._resourceType="bufferResource",this._resourceId=(0,u.f)("resource"),this._bufferResource=!0,this.destroyed=!1,this.buffer=t,this.offset=0|e,this.size=a,this.buffer.on("change",this.onBufferChange,this)}get _gcLastUsed(){return this.buffer?._gcLastUsed??-1}set _gcLastUsed(t){this.buffer&&(this.buffer._gcLastUsed=t)}onBufferChange(){this._resourceId=(0,u.f)("resource"),this.emit("change",this)}destroy(t=!1){this.destroyed=!0,t&&this.buffer.destroy(),this.emit("change",this),this.buffer=null,this.removeAllListeners()}}t.s(["f",0,v],87784)},87567,t=>{t.s(["f",0,function(t,e,a,f,r){if((t=Math.max(0,t))>=(e=Math.min(e,a*f)))return 0;let o=Math.floor(t/a),s=t-o*a,i=Math.floor(e/a),n=e-i*a;if(o===i)return r[0].set(s,o,n-s,1),1;let u=0,v=o;return s>0&&(r[u++].set(s,o,a-s,1),v++),i>v&&r[u++].set(0,v,a,i-v),n>0&&r[u++].set(0,i,n,1),u}])}])})();
@@ -0,0 +1,74 @@
1
+ (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,50703,e=>{"use strict";var t=e.i(47760),r=e.i(28959),i=e.i(68750),s=e.i(81491),a=e.i(68372),n=e.i(94111),o=e.i(35066),u=e.i(55443),d=e.i(65654),l=e.i(32543);class h{constructor(){this._maxTextures=0}contextChange(e){let t=new l.f({uTransformMatrix:{value:new r.f,type:"mat3x3<f32>"},uColor:{value:new Float32Array([1,1,1,1]),type:"vec4<f32>"},uRound:{value:0,type:"f32"}});this._maxTextures=e.limits.maxBatchableTextures;let i=(0,s.M)({name:"graphics",bits:[a.O,(0,n.u)(this._maxTextures),o.M,u.Z]});this.shader=new d.f({gpuProgram:i,resources:{localUniforms:t}})}execute(e,t){let r=t.context,s=r.customShader||this.shader,a=e.renderer,{batcher:n,instructions:o}=a.graphicsContext.getContextRenderData(r),u=a.encoder;u.setGeometry(n.geometry,s.gpuProgram);let d=a.globalUniforms.bindGroup;u.setBindGroup(0,d,s.gpuProgram);let l=a.renderPipes.uniformBatch.getUniformBindGroup(s.resources.localUniforms,!0);u.setBindGroup(2,l,s.gpuProgram);let h=o.instructions,c=null;for(let t=0;t<o.instructionSize;t++){let r=h[t];if(r.topology!==c&&(c=r.topology,u.setPipelineFromGeometryProgramAndState(n.geometry,s.gpuProgram,e.state,r.topology,s._overrides)),s.groups[1]=r.bindGroup,!r.gpuBindGroup){let e=r.textures;r.bindGroup=(0,i.f)(e.textures,e.count,this._maxTextures),r.gpuBindGroup=a.bindGroup.getBindGroup(r.bindGroup,s.gpuProgram,1)}u.setBindGroup(1,r.bindGroup,s.gpuProgram),u.renderPassEncoder.drawIndexed(r.size,1,r.start)}}destroy(){this.shader.destroy(),this.shader=null}}h.extension={type:[t.x.WebGPUPipesAdaptor],name:"graphics"};var c=e.i(90532),p=e.i(31320),g=e.i(85830);class m{init(){let e=(0,s.M)({name:"mesh",bits:[o.q,c.S,u.Z]});this._shader=new d.f({gpuProgram:e,resources:{uTexture:p.f.EMPTY._source,uSampler:p.f.EMPTY._source.style,textureUniforms:{uTextureMatrix:{type:"mat3x3<f32>",value:new r.f}}}})}execute(e,t){let r=e.renderer,i=t._shader;if(i){if(!i.gpuProgram)return void(0,g.f)("Mesh shader has no gpuProgram",t.shader)}else(i=this._shader).groups[2]=r.texture.getTextureBindGroup(t.texture);let s=i.gpuProgram;if(s.autoAssignGlobalUniforms&&(i.groups[0]=r.globalUniforms.bindGroup),s.autoAssignLocalUniforms){let t=e.localUniforms;i.groups[1]=r.renderPipes.uniformBatch.getUniformBindGroup(t,!0)}r.encoder.draw({geometry:t._geometry,shader:i,state:t.state})}destroy(){this._shader.destroy(),this._shader=null}}m.extension={type:[t.x.WebGPUPipesAdaptor],name:"mesh"};var f=e.i(22558);let _=f.A.for2d();class x{start(e,t,r){let i=e.renderer,s=i.encoder,a=r.gpuProgram;this._shader=r,this._geometry=t,s.setGeometry(t,a),_.blendMode="normal",i.pipeline.getPipeline(t,a,_,void 0,r._overrides);let n=i.globalUniforms.bindGroup;s.resetBindGroup(1),s.setBindGroup(0,n,a)}execute(e,t){let r=this._shader.gpuProgram,s=e.renderer,a=s.encoder;if(!t.bindGroup){let e=t.textures;t.bindGroup=(0,i.f)(e.textures,e.count,s.limits.maxBatchableTextures)}_.blendMode=t.blendMode;let n=s.bindGroup.getBindGroup(t.bindGroup,r,1),o=s.pipeline.getPipeline(this._geometry,r,_,t.topology,this._shader._overrides);t.bindGroup._touch(s.gc.now),a.setPipeline(o),a.renderPassEncoder.setBindGroup(1,n),a.renderPassEncoder.drawIndexed(t.size,1,t.start)}}x.extension={type:[t.x.WebGPUPipesAdaptor],name:"batch"};var b=e.i(2351),y=e.i(90462),v=e.i(18279);class G{constructor(e,t){this.autoGarbageCollect=!0,this._gpuData=null,this.gpuBindGroup=e,this._gcLastUsed=t}unload(){this.gpuBindGroup=null}}class P{constructor(e){this._hash=Object.create(null),this._renderer=e,e.gc.addResourceHash(this,"_hash","resource"),e.gc.addCollection(this,"_hash","hash")}contextChange(e){this._gpu=e,this._hash=Object.create(null)}getBindGroup(e,t,r){let i=`${e._key}:${t._layoutKey<<4|r}`,s=this._hash[i];return s?(s._gcLastUsed=this._renderer.gc.now,s.gpuBindGroup):this._createBindGroup(i,e,t,r)}_createBindGroup(e,t,r,i){let s=this._gpu.device,a=r.layout[i],n=[],o=this._renderer;for(let e in a){let r,i=t.resources[e]??t.resources[a[e]];if(!i||i.destroyed)throw Error(`[BindGroup] the resource bound as '${e}' was destroyed while a shader still uses it. Remove it from the shader before destroying it.`);if("uniformGroup"===i._resourceType){o.ubo.updateUniformGroup(i);let e=i.buffer;r={buffer:o.buffer.getGPUBuffer(e),offset:0,size:e.descriptor.size}}else"buffer"===i._resourceType?r={buffer:o.buffer.getGPUBuffer(i),offset:0,size:i.descriptor.size}:"bufferResource"===i._resourceType?r={buffer:o.buffer.getGPUBuffer(i.buffer),offset:i.offset,size:i.size??i.buffer.descriptor.size}:"textureSampler"===i._resourceType?r=o.texture.getGpuSampler(i):"textureSource"===i._resourceType?r=o.texture.getTextureView(i):"textureView"===i._resourceType&&(r=o.texture.getTextureView(i.source,i.viewDescriptor));n.push({binding:a[e],resource:r})}let u=o.shader.getProgramData(r).bindGroups[i],d=s.createBindGroup({layout:u,entries:n});return this._hash[e]=new G(d,o.gc.now),d}destroy(){this._hash=null,this._renderer=null}}P.extension={type:[t.x.WebGPUSystem],name:"bindGroup"};var T=e.i(33219),S=e.i(18102);class C{constructor(e){this.gpuBuffer=e}destroy(){this.gpuBuffer.destroy(),this.gpuBuffer=null}}class B{constructor(e){this._renderer=e,this._managedBuffers=new T.f({renderer:e,type:"resource",onUnload:this.onBufferUnload.bind(this),name:"gpuBuffer"})}contextChange(e){this._gpu=e,this.destroyAll()}getGPUBuffer(e){return e._gcLastUsed=this._renderer.gc.now,e._gpuData[this._renderer.uid]?.gpuBuffer||this.createGPUBuffer(e)}updateBuffer(e){let t=this.getGPUBuffer(e),r=e.data;return e._updateID&&r&&(e._updateID=0,this._gpu.device.queue.writeBuffer(t,e._updateOffset,r.buffer,r.byteOffset+e._updateOffset,(e._updateSize||r.byteLength)+3&-4)),t}destroyAll(){this._managedBuffers.removeAll()}onBufferUnload(e){e.off("update",this.updateBuffer,this),e.off("change",this.onBufferChange,this)}createGPUBuffer(e){let t=this._gpu.device.createBuffer(e.descriptor);return e._updateID=0,e.data&&((0,S.f)(e.data.buffer,t.getMappedRange(),e.data.byteOffset,e.data.byteLength),t.unmap()),e._gpuData[this._renderer.uid]=new C(t),this._managedBuffers.add(e)&&(e.on("update",this.updateBuffer,this),e.on("change",this.onBufferChange,this)),t}onBufferChange(e){this._managedBuffers.remove(e),e._updateID=0,this.createGPUBuffer(e)}destroy(){this._managedBuffers.destroy(),this._renderer=null,this._gpu=null}}B.extension={type:[t.x.WebGPUSystem],name:"buffer"};class w{constructor(e){this._colorMaskCache=15,this._renderer=e}setMask(e){this._colorMaskCache!==e&&(this._colorMaskCache=e,this._renderer.pipeline.setColorMask(e))}destroy(){this._renderer=null,this._colorMaskCache=null}}w.extension={type:[t.x.WebGPUSystem],name:"colorMask"};var M=e.i(27402);let U=new Set(["apple","arm","qualcomm","img-tec"]);class R{constructor(e){this._renderer=e}async init(e){return this._initPromise||(this._options=e,this._initPromise=(e.gpu?Promise.resolve(e.gpu):this._createDeviceAndAdaptor(e)).then(e=>this._setGpu(e))),this._initPromise}_setGpu(e){this.gpu=e,this.extensions={transientAttachment:"number"==typeof GPUTextureUsage.TRANSIENT_ATTACHMENT,tileBased:U.has(e.adapter?.info?.vendor)},this._options.gpu||e.device.lost.then(()=>this._restoreDevice()).catch(e=>(0,g.f)("WebGPU device was lost and could not be restored",e)),this._renderer.runners.contextChange.emit(this.gpu)}async _restoreDevice(){if(!this._renderer)return;let e=await this._createDeviceAndAdaptor(this._options);this._renderer?this._setGpu(e):e.device.destroy()}contextChange(e){this._renderer.gpu=e}async _createDeviceAndAdaptor(e){let t=await M.f.get().getNavigator().gpu.requestAdapter({powerPreference:e.powerPreference,forceFallbackAdapter:e.forceFallbackAdapter});if(!t)throw Error("WebGPU not supported. No GPU adapter was returned by navigator.gpu.requestAdapter().");let r=["texture-compression-bc","texture-compression-astc","texture-compression-etc2","indirect-first-instance","bgra8unorm-storage","texture-formats-tier1"].filter(e=>t.features.has(e)),i=await t.requestDevice({requiredFeatures:r,requiredLimits:{maxSampledTexturesPerShaderStage:t.limits.maxSampledTexturesPerShaderStage,maxSamplersPerShaderStage:t.limits.maxSamplersPerShaderStage}});return{adapter:t,device:i}}destroy(){this._options?.gpu||this.gpu?.device.destroy(),this.gpu=null,this.extensions=null,this._renderer=null}}R.extension={type:[t.x.WebGPUSystem],name:"device"},R.defaultOptions={powerPreference:void 0,forceFallbackAdapter:!1};class E{constructor(e,t,r,i){this.gpuBundle=e,this.stateKey=t,this.device=r,this.label=i}}class O{constructor(e){this._boundBindGroup=Object.create(null),this._boundVertexBuffer=Object.create(null),this._renderer=e;for(let e=0;e<16;e++)this._boundBindGroup[e]={bindGroup:null,program:null,key:null}}renderStart(){this.commandFinished=new Promise(e=>{this._resolveCommandFinished=e}),this.commandEncoder=this._renderer.gpu.device.createCommandEncoder()}beginRenderPass(e){return this.endRenderPass(),this._clearCache(),this._passEncoder=this.commandEncoder.beginRenderPass(e.descriptor),this.renderPassEncoder=this._passEncoder,this._passEncoder}endRenderPass(){this._passEncoder&&this._passEncoder.end(),this.renderPassEncoder=null,this._passEncoder=null}beginBundle(e){if(this._passEncoder!==this.renderPassEncoder)throw Error("Cannot begin a new render bundle while one is already being recorded.");this._clearCache();let t=this._renderer.pipeline,r=t.getBundleDescriptor();r.label=e,this._bundleStateKey=t.bundleStateKey,this._bundleLabel=e,this.renderPassEncoder=this._gpu.device.createRenderBundleEncoder(r)}endBundle(){let e=this.renderPassEncoder;if(!e||!("finish"in e))throw Error("endBundle called without an active render bundle.");let t=e.finish({label:this._bundleLabel});return this.renderPassEncoder=this._passEncoder,this._clearCache(),new E(t,this._bundleStateKey,this._gpu.device,this._bundleLabel)}isBundleValid(e){return e?.stateKey===this._renderer.pipeline.bundleStateKey&&e.device===this._gpu.device}executeBundle(e){let t=[];if(Array.isArray(e))for(let r=0;r<e.length;r++)t[r]=this._getGpuBundle(e[r]);else t[0]=this._getGpuBundle(e);this._clearCache(),this._passEncoder.executeBundles(t)}_getGpuBundle(e){return this.isBundleValid(e)||(0,g.f)(`Render bundle ${e?.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.`),e.gpuBundle}setViewport(e){this._passEncoder.setViewport(e.x,e.y,e.width,e.height,0,1)}setStencilReference(e){this._passEncoder.setStencilReference(e)}setPipelineFromGeometryProgramAndState(e,t,r,i,s){let a=this._renderer.pipeline.getPipeline(e,t,r,i,s);this.setPipeline(a)}setPipeline(e){this._boundPipeline!==e&&(this._boundPipeline=e,this.renderPassEncoder.setPipeline(e))}_setVertexBuffer(e,t){this._boundVertexBuffer[e]!==t&&(this._boundVertexBuffer[e]=t,this.renderPassEncoder.setVertexBuffer(e,this._renderer.buffer.updateBuffer(t)))}_setIndexBuffer(e){if(this._boundIndexBuffer===e)return;this._boundIndexBuffer=e;let t=2===e.data.BYTES_PER_ELEMENT?"uint16":"uint32";this.renderPassEncoder.setIndexBuffer(this._renderer.buffer.updateBuffer(e),t)}resetBindGroup(e){let t=this._boundBindGroup[e];t.bindGroup=null,t.program=null,t.key=null}setBindGroup(e,t,r){let i=this._boundBindGroup[e];if(i.bindGroup===t&&i.program===r&&i.key===t._key)return;i.bindGroup=t,i.program=r,i.key=t._key,t._touch(this._renderer.gc.now);let s=this._renderer.bindGroup.getBindGroup(t,r,e);this.renderPassEncoder.setBindGroup(e,s)}setGeometry(e,t){let r=this._renderer.pipeline.getBufferNamesToBind(e,t);for(let t=0;t<r.length;t++)this._setVertexBuffer(t,e.attributes[r[t]].buffer);e.indexBuffer&&this._setIndexBuffer(e.indexBuffer)}_setShaderBindGroups(e,t){let r=e.gpuProgram,i=r.layout;for(let s=0;s<i.length;s++){let a=e.groups[s];i[s]&&a&&(t||this._syncBindGroup(a),this.setBindGroup(s,a,r))}}_syncBindGroup(e){let t=e.resources,r=e._resourceKeys;for(let e=0;e<r.length;e++){let i=t[r[e]];i&&i.isUniformGroup&&this._renderer.ubo.updateUniformGroup(i)}}draw(e){let{geometry:t,shader:r,state:i,topology:s,size:a,start:n,baseVertex:o,instanceCount:u,skipSync:d,firstInstance:l}=e;this.setPipelineFromGeometryProgramAndState(t,r.gpuProgram,i,s,r._overrides),this.setGeometry(t,r.gpuProgram),this._setShaderBindGroups(r,d),t.indexBuffer?this.renderPassEncoder.drawIndexed(a||t.indexCount||t.indexBuffer.data.length,u??t.instanceCount,n||0,o||0,l||0):this.renderPassEncoder.draw(a||t.vertexCount,u??t.instanceCount,n||0,l||0)}drawIndirect(e){let{geometry:t,shader:r,state:i,topology:s,skipSync:a,indirectBuffer:n,indirectOffset:o}=e;this.setPipelineFromGeometryProgramAndState(t,r.gpuProgram,i,s,r._overrides),this.setGeometry(t,r.gpuProgram),this._setShaderBindGroups(r,a),t.indexBuffer?this.renderPassEncoder.drawIndexedIndirect(n,o):this.renderPassEncoder.drawIndirect(n,o)}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 e=0;e<16;e++){let t=this._boundBindGroup[e];t.bindGroup=null,t.program=null,t.key=null,this._boundVertexBuffer[e]=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(e){this._gpu=e}}O.extension={type:[t.x.WebGPUSystem],name:"encoder",priority:1};class A{constructor(e){this.supportsOverrideConstants=!1,this._renderer=e}contextChange(){let e=this._renderer.device.gpu.device;this.maxTextures=Math.min(e.limits.maxSampledTexturesPerShaderStage,e.limits.maxSamplersPerShaderStage),this.maxBatchableTextures=this.maxTextures,this._detectOverrideConstantsSupport(e)}_detectOverrideConstantsSupport(e){e.pushErrorScope("validation");let t=e.createShaderModule({code:"override TEST_VALUE: f32 = 0.0;\n@compute @workgroup_size(1) fn main() {}"});e.createComputePipeline({layout:"auto",compute:{module:t,entryPoint:"main",constants:{TEST_VALUE:1}}}),e.popErrorScope().then(e=>{this.supportsOverrideConstants=!e})}destroy(){}}A.extension={type:[t.x.WebGPUSystem],name:"limits"};class L{constructor(e){this._renderer=e,e.renderTarget.onRenderTargetChange.add(this)}contextChange(){this._activeGpuRenderTarget=null}onRenderTargetChange(e){let t=this._renderer.renderTarget.getGpuRenderTarget(e);this._activeRenderTarget=e,this._activeGpuRenderTarget=t,this.setStencilMode(t.stencilMode,t.stencilReference)}setStencilMode(e,t){let r=this._activeGpuRenderTarget??(this._activeGpuRenderTarget=this._renderer.renderTarget.getGpuRenderTarget(this._activeRenderTarget));r.stencilMode=e,r.stencilReference=t;let i=this._renderer;i.pipeline.setStencilMode(e),i.encoder.setStencilReference(t)}destroy(){this._renderer.renderTarget.onRenderTargetChange.remove(this),this._renderer=null,this._activeRenderTarget=null,this._activeGpuRenderTarget=null}}L.extension={type:[t.x.WebGPUSystem],name:"stencil"};var F=e.i(28353);let D={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 k(e){let t=e.map(e=>({data:e,offset:0,size:0})),r=0;for(let e=0;e<t.length;e++){let i=t[e],s=D[i.data.type].size,a=D[i.data.type].align;if(!D[i.data.type])throw Error(`[Pixi.js] WebGPU UniformBuffer: Unknown type ${i.data.type}`);i.data.size>1&&(s=Math.max(s,a)*i.data.size),r=Math.ceil(r/a)*a,i.size=s,i.offset=r,r+=s}return{uboElements:t,size:r=16*Math.ceil(r/16)}}var z=e.i(62039),I=e.i(33156);function H(e,t){let{size:r,align:i}=D[e.data.type],s=(Math.max(r,i)-r)/4,a=e.data.type.indexOf("i32")>=0?"dataInt32":"data";return`
2
+ v = uv.${e.data.name};
3
+ ${0!==t?`offset += ${t};`:""}
4
+
5
+ arrayOffset = offset;
6
+
7
+ t = 0;
8
+
9
+ for(var i=0; i < ${e.data.size}; i++)
10
+ {
11
+ for(var j = 0; j < ${r/4}; j++)
12
+ {
13
+ ${a}[arrayOffset++] = v[t++];
14
+ }
15
+ ${0!==s?`arrayOffset += ${s};`:""}
16
+ }
17
+ `}function V(e){return(0,z.f)(e,I.c,H)}class W extends F.f{constructor(){super({createUboElements:k,generateUboSync:V})}}W.extension={type:[t.x.WebGPUSystem],name:"ubo"};var N=e.i(85465),$=e.i(87784),j=e.i(64957);class K{constructor({minUniformOffsetAlignment:e}){this._minUniformOffsetAlignment=256,this.byteIndex=0,this._minUniformOffsetAlignment=e,this.data=new Float32Array(65535)}clear(){this.byteIndex=0}addEmptyGroup(e){if(e>this._minUniformOffsetAlignment/4)throw Error(`UniformBufferBatch: array is too large: ${4*e}`);let t=this.byteIndex,r=t+4*e;if((r=Math.ceil(r/this._minUniformOffsetAlignment)*this._minUniformOffsetAlignment)>4*this.data.length)throw Error("UniformBufferBatch: ubo batch got too big");return this.byteIndex=r,t}addGroup(e){let t=this.addEmptyGroup(e.length);for(let r=0;r<e.length;r++)this.data[t/4+r]=e[r];return t}destroy(){this.data=null}}var q=e.i(94359);class Y{constructor(e){this._bindGroupHash=Object.create(null),this._buffers=[],this._bindGroups=[],this._bufferResources=[],this._renderer=e,this._batchBuffer=new K({minUniformOffsetAlignment:128});for(let e=0;e<2;e++){let t=j.f.UNIFORM|j.f.COPY_DST;0===e&&(t|=j.f.COPY_SRC),this._buffers.push(new N.f({data:this._batchBuffer.data,usage:t}))}}renderEnd(){this._uploadBindGroups(),this._resetBindGroups()}_resetBindGroups(){this._bindGroupHash=Object.create(null),this._batchBuffer.clear()}getUniformBindGroup(e,t){if(!t&&this._bindGroupHash[e.uid])return this._bindGroupHash[e.uid];this._renderer.ubo.ensureUniformGroup(e);let r=e.buffer.data,i=this._batchBuffer.addEmptyGroup(r.length);return this._renderer.ubo.syncUniformGroup(e,this._batchBuffer.data,i/4),this._bindGroupHash[e.uid]=this._getBindGroup(i/128),this._bindGroupHash[e.uid]}getUboResource(e){this._renderer.ubo.updateUniformGroup(e);let t=e.buffer.data,r=this._batchBuffer.addGroup(t);return this._getBufferResource(r/128)}getArrayBindGroup(e){let t=this._batchBuffer.addGroup(e);return this._getBindGroup(t/128)}getArrayBufferResource(e){let t=this._batchBuffer.addGroup(e);return this._getBufferResource(t/128)}_getBufferResource(e){if(!this._bufferResources[e]){let t=this._buffers[e%2];this._bufferResources[e]=new $.f({buffer:t,offset:(e/2|0)*256,size:128})}return this._bufferResources[e]}_getBindGroup(e){if(!this._bindGroups[e]){let t=new q.f({0:this._getBufferResource(e)});this._bindGroups[e]=t}return this._bindGroups[e]}_uploadBindGroups(){let e=this._renderer.buffer,t=this._buffers[0];t.update(this._batchBuffer.byteIndex),e.updateBuffer(t);let r=this._renderer.gpu.device.createCommandEncoder();for(let i=1;i<this._buffers.length;i++){let s=this._buffers[i];r.copyBufferToBuffer(e.getGPUBuffer(t),128,e.getGPUBuffer(s),0,this._batchBuffer.byteIndex)}this._renderer.gpu.device.queue.submit([r.finish()])}destroy(){for(let e=0;e<this._bindGroups.length;e++)this._bindGroups[e]?.destroy();this._bindGroups=null,this._bindGroupHash=null;for(let e=0;e<this._buffers.length;e++)this._buffers[e].destroy();this._buffers=null;for(let e=0;e<this._bufferResources.length;e++)this._bufferResources[e].destroy();this._bufferResources=null,this._batchBuffer.destroy(),this._renderer=null}}Y.extension={type:[t.x.WebGPUPipes],name:"uniformBatch"};var X=e.i(35656),Z=e.i(55075),J=e.i(96108),Q=e.i(1928),ee=e.i(39391);let et={"point-list":0,"line-list":1,"line-strip":2,"triangle-list":3,"triangle-strip":4},er=new Z.f({}),ei={"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}},es={depth:!1,stencil:!1,index:0};function ea(e,t){for(let[r,i]of Object.entries(t)){let t=RegExp(`override\\s+${r}\\s*:\\s*(\\w+)\\s*(?:=[^;]*)?;`);e=e.replace(t,(e,t)=>{let s;return s="u32"===t?`${Math.trunc(i)}u`:"i32"===t?`${Math.trunc(i)}`:Number.isInteger(i)?`${i}.0`:`${i}`,`const ${r}: ${t} = ${s};`})}return e}function en(e,t,r,i,s,a){return 0x200000000000*e+0x20000000*t+16384*a+(r<<8)+(i<<3)+s}let eo=Object.create(null),eu=0;function ed(e){let t=eo[e];return void 0===t&&(t=eo[e]=eu++),t}class el{constructor(e){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=ed("bgra8unorm"),this._depthStencilFormat="depth24plus-stencil8",this._depthStencilFormatData=es,this._depthReadOnly=!1,this._stencilReadOnly=!1,this._invertFrontFace=!1,this._renderer=e}contextChange(e){this._gpu=e,this._moduleCache=Object.create(null),this._pipeStateCaches=Object.create(null),this.setStencilMode(J.U.DISABLED),this._updatePipeHash()}setMultisampleCount(e){this._multisampleCount!==e&&(this._multisampleCount=e,this._updatePipeHash())}setRenderTarget(e){let t=e.colorAttachments[0]?.texture;this._multisampleCount=t?.source.antialias?4:1,this._colorTargetCount=e.colorAttachments.length,this._colorFormat=t?.format??"bgra8unorm",this._colorFormatId=ed(this._colorFormat),this._depthStencilFormat=e.depthStencilAttachment?.texture.format,this._depthStencilFormatData=ei[this._depthStencilFormat]||es,this._depthReadOnly=e.depthStencilAttachment?.depthReadOnly??!1,this._stencilReadOnly=e.depthStencilAttachment?.stencilReadOnly??this._depthReadOnly,this._invertFrontFace=this._renderer.renderTarget.isFrontFaceInverted(e,e.flipY),this._updatePipeHash()}setColorMask(e){this._colorMask!==e&&(this._colorMask=e,this._updatePipeHash())}setStencilMode(e){this._stencilMode!==e&&(this._stencilMode=e,this._stencilState=ee.f[e],this._updatePipeHash())}get bundleStateKey(){var e,t,r,i,s,a;let n=this._depthStencilFormatData;return e=+(1!==this._multisampleCount),t=this._colorTargetCount,r=n.index,i=n.depth&&this._depthReadOnly?1:0,s=n.stencil&&this._stencilReadOnly?1:0,a=+!!this._invertFrontFace,this._colorFormatId<<11|a<<10|s<<9|i<<8|r<<5|t<<1|e}getBundleDescriptor(){let e=[];for(let t=0;t<this._colorTargetCount;t++)e.push(this._colorFormat);let t={colorFormats:e,sampleCount:this._multisampleCount},r=this._depthStencilFormatData;return(r.depth||r.stencil)&&(t.depthStencilFormat=this._depthStencilFormat,r.depth&&this._depthReadOnly&&(t.depthReadOnly=!0),r.stencil&&this._stencilReadOnly&&(t.stencilReadOnly=!0)),t}setPipeline(e,t,r,i){let s=this.getPipeline(e,t,r);i.setPipeline(s)}getPipelineKey(e,t,r,i,s){return e._layoutKey||((0,X.f)(e,t.attributeData),this._generateBufferKey(e)),en(e._layoutKey,t._layoutKey,r.data,r._blendModeId,et[i],s.id)}getPipeline(e,t,r,i,s){e._layoutKey||((0,X.f)(e,t.attributeData),this._generateBufferKey(e)),i||(i=e.topology),s||(s=er);let a=en(e._layoutKey,t._layoutKey,r.data,r._blendModeId,et[i],s.id),n=this._pipeCache.get(a);return n||(n=this._createPipeline(e,t,r,i,s),this._pipeCache.set(a,n)),n}_createPipeline(e,t,r,i,s){let a,n=this._gpu.device,o=this._createVertexBufferLayouts(e,t),u=this._renderer.state.getColorTargets(r,this._colorTargetCount,this._colorFormat),d=this._stencilMode===J.U.RENDERING_MASK_ADD?0:this._colorMask;for(let e=0;e<u.length;e++)u[e].writeMask=d;let l=this._renderer.shader.getProgramData(t).pipeline,h=Object.keys(s.data).length>0,c=t.vertex.source,p=t.fragment.source;h&&(this._renderer.limits.supportsOverrideConstants?a=s.data:(c=ea(c,s.data),p=ea(p,s.data)));let g={vertex:{module:this._getModule(c),entryPoint:t.vertex.entryPoint,constants:a,buffers:o},fragment:{module:this._getModule(p),entryPoint:t.fragment.entryPoint,targets:u,constants:a},primitive:{topology:i,cullMode:r.culling?"back":"none",frontFace:r.clockwiseFrontFace!==this._invertFrontFace?"cw":"ccw"},layout:l,multisample:{count:this._multisampleCount},label:t.name?`PIXI Pipeline (${t.name})`:"PIXI Pipeline"};if(this._depthStencilFormatData.depth||this._depthStencilFormatData.stencil){let e=this._depthStencilFormatData;g.depthStencil={...this._stencilState,format:this._depthStencilFormat,depthWriteEnabled:!!e.depth&&r.depthMask&&!this._depthReadOnly,depthCompare:e.depth&&r.depthTest?"less":"always"}}return n.createRenderPipeline(g)}_getModule(e){return this._moduleCache[e]||this._createModule(e)}_createModule(e){let t=this._gpu.device;return this._moduleCache[e]=t.createShaderModule({code:e}),this._moduleCache[e]}_generateBufferKey(e){let t=[],r=0,i=Object.keys(e.attributes).sort();for(let s=0;s<i.length;s++){let a=e.attributes[i[s]];t[r++]=a.offset,t[r++]=a.format,t[r++]=a.stride,t[r++]=a.instance}let s=t.join("|");return e._layoutKey=(0,Q.f)(s,"geometry"),e._layoutKey}_generateAttributeLocationsKey(e){let t=[],r=0,i=Object.keys(e.attributeData).sort();for(let s=0;s<i.length;s++){let a=e.attributeData[i[s]];t[r++]=a.location}let s=t.join("|");return e._attributeLocationsKey=(0,Q.f)(s,"programAttributes"),e._attributeLocationsKey}getBufferNamesToBind(e,t){let r=e._layoutKey<<16|t._attributeLocationsKey;if(this._bindingNamesCache[r])return this._bindingNamesCache[r];let i=this._createVertexBufferLayouts(e,t),s=[],a=t.attributeData;for(let e=0;e<i.length;e++){let t=Object.values(i[e].attributes)[0].shaderLocation;for(let r in a)if(a[r].location===t){s[e]=r;break}}return this._bindingNamesCache[r]=s,s}_createVertexBufferLayouts(e,t){t._attributeLocationsKey||this._generateAttributeLocationsKey(t);let r=e._layoutKey<<16|t._attributeLocationsKey;if(this._bufferLayoutsCache[r])return this._bufferLayoutsCache[r];let i=[];return e.buffers.forEach(r=>{let s={arrayStride:0,stepMode:"vertex",attributes:[]},a=s.attributes;for(let i in t.attributeData){let n=e.attributes[i];(n.divisor??1)!==1&&(0,g.f)(`Attribute ${i} has an invalid divisor value of '${n.divisor}'. WebGPU only supports a divisor value of 1`),n.buffer===r&&(s.arrayStride=n.stride,s.stepMode=n.instance?"instance":"vertex",a.push({shaderLocation:t.attributeData[i].location,offset:n.offset,format:n.format}))}a.length&&i.push(s)}),this._bufferLayoutsCache[r]=i,i}_updatePipeHash(){var e,t,r,i,s,a,n,o;let u=(t=this._stencilMode,r=+(1!==this._multisampleCount),i=this._colorMask,s=this._colorTargetCount,a=this._depthStencilFormatData.index,n=this._colorFormatId,o=+!!this._depthReadOnly,!!this._invertFrontFace<<20|n<<16|a<<13|i<<9|t<<6|o<<5|s<<1|r);this._pipeCache=(e=this._pipeStateCaches)[u]??(e[u]=new Map)}destroy(){this._bufferLayoutsCache=null,this._pipeCache=null,this._gpu=null,this._renderer=null,this._bindingNamesCache=null,this._pipeStateCaches=null,this._moduleCache=null}}el.extension={type:[t.x.WebGPUSystem],name:"pipeline"};var eh=e.i(17307),ec=e.i(69510),ep=e.i(70220),eg=e.i(95627);class em{constructor(e){this._pipelines=Object.create(null),this._modules=Object.create(null),this._bindGroups=new WeakMap,this._renderer=e,this._device=e.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(e,t,r,i){var s;let a=this._renderer.renderTarget.getGpuRenderTarget(t),n=t.colorAttachments[r].texture;(s=a.msaaBackTextures)[r]??(s[r]=new eg.f({label:"msaa-back-texture",width:n.width,height:n.height,resolution:n._resolution,format:a.msaaTextures[r].format,autoGenerateMipmaps:!1,autoGarbageCollect:!0}));let o=this._renderer.texture.getGpuSource(a.msaaBackTextures[r]);e.copyTextureToTexture({texture:i},{texture:o},{width:Math.min(i.width,o.width),height:Math.min(i.height,o.height)})}draw(e,t,r){var i;let s=this._renderer.renderTarget.getGpuRenderTarget(t),a=this._renderer.texture.getGpuSource(s.msaaBackTextures[r]),n=t.depthStencilAttachment?.texture.format??"";for(let e of t.colorAttachments)n+=`|${e.texture.format}`;let o=(i=this._pipelines)[n]??(i[n]=[]),u=this._bindGroups.get(a);u||(u=this._device.createBindGroup({layout:this._layout,entries:[{binding:0,resource:a.createView()}]}),this._bindGroups.set(a,u)),e.setPipeline(o[r]??(o[r]=this._createPipeline(t,r))),e.setBindGroup(0,u),e.draw(3)}_getModule(e){var t;return(t=this._modules)[e]??(t[e]=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(${e}) vec4<f32> {
29
+ return textureLoad(resolved, vec2<i32>(position.xy), 0);
30
+ }
31
+ `})),this._modules[e]}_createPipeline(e,t){let r,i=e.depthStencilAttachment?.texture.format;i&&(r={format:i},i.includes("depth")&&(r.depthWriteEnabled=!1,r.depthCompare="always"));let s=this._getModule(t);return this._device.createRenderPipeline({label:"msaa-restore",layout:this._pipelineLayout,vertex:{module:s,entryPoint:"vertexMain"},fragment:{module:s,entryPoint:"fragmentMain",targets:e.colorAttachments.map((e,r)=>({format:e.texture.format,writeMask:r===t?GPUColorWrite.ALL:0}))},depthStencil:r,multisample:{count:4}})}}class ef{constructor(){this.contexts=[],this.canvasTextures=[],this.msaaTextures=[],this.transient=!1,this.msaaSamples=1,this.msaaBackTextures=[],this.stencilMode=J.U.DISABLED,this.stencilReference=0,this.maskStackIndex=0}}let e_={bgra8unorm:!0,rgba8unorm:!0,rgba16float:!0};class ex{constructor(){this._activePass=null}init(e,t){this._renderer=e,this._renderTargetSystem=t,e.runners.contextChange.add(this),e.runners.destroy.add(this)}contextChange(){this._msaaRestore=null}destroy(){this._msaaRestore=null}copyToTexture(e,t,r,i,s){let a=this._renderer;this.finishRenderPass();let n=this._getGpuColorTexture(e),o=a.texture.getGpuSource(t.source);return a.encoder.commandEncoder.copyTextureToTexture({texture:n,origin:r},{texture:o,origin:s},i),t}copyDepthTexture(e,t,r,i,s){let a=this._renderer;this.finishRenderPass();let n=e.depthStencilAttachment.texture,o=a.texture.getGpuSource(n),u=a.texture.getGpuSource(t.source),d=null===a.encoder.commandEncoder,l=d?a.gpu.device.createCommandEncoder():a.encoder.commandEncoder;l.copyTextureToTexture({texture:o,origin:r},{texture:u,origin:s},{width:i.width,height:i.height}),d&&a.gpu.device.queue.submit([l.finish()])}startRenderPass(e,t=!0,r,i,s=0,a=0){let n=this._renderTargetSystem.getGpuRenderTarget(e);if(0!==a&&n.msaaTextures?.length)throw Error("[RenderTargetSystem] Rendering to array layers is not supported with MSAA render targets.");if(s>0&&n.msaaTextures?.length)throw Error("[RenderTargetSystem] Rendering to mip levels is not supported with MSAA render targets.");let o=t;"boolean"==typeof o&&(o=o?ec.f.ALL:ec.f.NONE),(e.stencil||e.depth)&&!e.depthStencilAttachment&&e.ensureDepthStencilTexture();let u=!!e.depthStencilAttachment,d=this._activePass,l=null!==d&&d.renderTarget===e&&d.mipLevel===s&&d.layer===a&&d.depthStencil===u&&null!==this._renderer.encoder.renderPassEncoder&&o===ec.f.NONE;if(this._renderer.pipeline.setRenderTarget(e),l)return void this._renderer.encoder.setViewport(i);let{descriptor:h,restore:c}=this._buildDescriptor(e,t,r,s,a);n.descriptor=h;let p=this._renderer.encoder;c?(p.endRenderPass(),this._beginRestoredPass(e,c,p.commandEncoder,()=>p.beginRenderPass(n))):p.beginRenderPass(n),p.setViewport(i),this._activePass={renderTarget:e,mipLevel:s,layer:a,depthStencil:u}}finishRenderPass(){this._renderer.encoder.endRenderPass(),this._activePass=null}_beginRestoredPass(e,t,r,i){let s=this._msaaRestore??(this._msaaRestore=new em(this._renderer));for(let i of t)s.copy(r,e,i,this._getGpuColorTexture(e,i));let a=i();for(let r of t)s.draw(a,e,r);return a}_getGpuColorTexture(e,t=0){if(0===e.colorAttachments.length)throw Error("[GpuRenderTargetAdaptor] cannot get gpu color texture from a depth-only render target");let r=e.colorAttachments[t].texture;return r instanceof ep.f&&r._gpuContext?r._gpuContext.getCurrentTexture():this._renderer.texture.getGpuSource(r)}getDescriptor(e,t,r,i=0,s=0){return this._buildDescriptor(e,t,r,i,s).descriptor}_buildDescriptor(e,t,r,i=0,s=0){let a,n=null;"boolean"==typeof t&&(t=t?ec.f.ALL:ec.f.NONE);let o=this._renderTargetSystem,u=o.getGpuRenderTarget(e),d=e.colorAttachments.map((e,a)=>{let d,l,h=e.texture,c=h instanceof ep.f?h._gpuContext:null,p=!1;if(c){if(0!==s)throw Error("[RenderTargetSystem] Rendering to array layers is not supported for canvas targets.");let t=c.getCurrentTexture();p=u.canvasTextures[a]!==t,u.canvasTextures[a]=t,d=t.createView(e.viewDescriptor)}else d=this._renderer.texture.getTextureRenderTargetView(e.texture,i,s,e.viewDescriptor);let g=u.msaaTextures[a];g&&(l=d,d=this._renderer.texture.getTextureView(g));let m=e.loadOp;void 0!==t&&(m=t&ec.f.COLOR?"clear":"load"),r??(r=o.defaultClearColor);let f=!!g?.transient,_=f&&"clear"!==m,x=_&&!p;_&&(m="clear",x&&(n??(n=[])).push(a));let b={view:d,resolveTarget:l,storeOp:f?"discard":e.storeOp??"store",loadOp:m};for(let t in"3d"===h.dimension&&(b.depthSlice=s),_?b.clearValue=[0,0,0,0]:"clear"===m&&(r??(r=e.clearValue??o.defaultClearColor),b.clearValue=r),e)"texture"!==t&&"viewDescriptor"!==t&&"clearValue"!==t&&"loadOp"!==t&&"storeOp"!==t&&(b[t]=e[t]);return b});if(e.depthStencilAttachment){this._prepareDepthStencil(e,u);let r=e.depthStencilAttachment,n=r.texture.format.includes("stencil"),o=r.texture.format.includes("depth"),d=u.transient?"discard":"store",l=u.transient?"clear":"load";a={view:this._renderer.texture.getTextureRenderTargetView(r.texture,i,s,r.viewDescriptor)};let h=r.depthReadOnly??!1,c=r.stencilReadOnly??h;for(let e in n&&!c?(a.stencilLoadOp=t&ec.f.STENCIL?"clear":r.stencilLoadOp??l,a.stencilStoreOp=r.stencilStoreOp??d,"clear"===a.stencilLoadOp&&(a.stencilClearValue=r.stencilClearValue??0)):n&&c&&(a.stencilReadOnly=!0),o&&!h?(a.depthLoadOp=t&ec.f.DEPTH?"clear":r.depthLoadOp??l,a.depthStoreOp=r.depthStoreOp??d,"clear"===a.depthLoadOp&&(a.depthClearValue=r.depthClearValue??1)):o&&h&&(a.depthReadOnly=!0),r)"texture"!==e&&"viewDescriptor"!==e&&"stencilLoadOp"!==e&&"stencilStoreOp"!==e&&"stencilClearValue"!==e&&"stencilReadOnly"!==e&&"depthLoadOp"!==e&&"depthStoreOp"!==e&&"depthClearValue"!==e&&"depthReadOnly"!==e&&(a[e]=r[e])}return{descriptor:{colorAttachments:d,depthStencilAttachment:a,label:e.label},restore:n}}clear(e,t=!0,r,i,s=0,a=0){if(!t)return;let{gpu:n,encoder:o}=this._renderer,u=n.device;if(null===o.commandEncoder){let n=u.createCommandEncoder(),{descriptor:o,restore:d}=this._buildDescriptor(e,t,r,s,a),l=()=>n.beginRenderPass(o),h=d?this._beginRestoredPass(e,d,n,l):l();h.setViewport(i.x,i.y,i.width,i.height,0,1),h.end();let c=n.finish();u.queue.submit([c])}else this.startRenderPass(e,t,r,i,s,a)}initGpuRenderTarget(e){e.isRoot=!0;let t=new ef;return t.transient=!!e.colorTexture?.antialias&&!!e.colorTexture.transient,e.colorAttachments.forEach((e,r)=>{let i=e.texture;if(i instanceof ep.f){let e=i._gpuContext??(i._gpuContext=i.resource.getContext("webgpu")),s=i.transparent?"premultiplied":"opaque",a=function(e){if(e_[e])return e;let t=navigator.gpu.getPreferredCanvasFormat();return(0,g.f)(`[WebGPU] CanvasSource format '${e}' is not a valid GPUCanvasContext format. Falling back to '${t}'. Allowed formats are: bgra8unorm, rgba8unorm, rgba16float.`),t}(i.format);try{e.configure({device:this._renderer.gpu.device,usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST|GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.COPY_SRC,format:a,alphaMode:s,..."rgba16float"===a?{toneMapping:{mode:"extended"}}:{}})}catch(e){console.error(e)}t.contexts[r]=e}if(t.msaa=i.source.antialias,i.antialias){let e=new eg.f({width:0,height:0,sampleCount:4,autoGenerateMipmaps:!1,transient:this._renderer.device.extensions.tileBased||t.transient,arrayLayerCount:i.arrayLayerCount,format:i.format});t.msaaTextures[r]=e}}),t.msaa&&(t.msaaSamples=4),t}_prepareDepthStencil(e,t){let r=e.depthStencilAttachment?.texture;r&&t.msaa&&(r.sampleCount=4,r.transient=t.transient)}destroyGpuRenderTarget(e){e.contexts.forEach(e=>{e.unconfigure()}),e.msaaTextures.forEach(e=>{e.destroy()}),e.msaaBackTextures.forEach(e=>{e?.destroy()}),e.msaaTextures.length=0,e.msaaBackTextures.length=0,e.contexts.length=0}ensureDepthStencilTexture(e){this._prepareDepthStencil(e,this._renderTargetSystem.getGpuRenderTarget(e))}resizeGpuRenderTarget(e){let t=this._renderTargetSystem.getGpuRenderTarget(e);t.width=e.width,t.height=e.height,t.msaa&&e.colorAttachments.forEach((e,r)=>{let i=e.texture;t.msaaTextures[r]?.resize(i.width,i.height,i._resolution),t.msaaBackTextures[r]?.resize(i.width,i.height,i._resolution)})}}class eb extends eh.f{constructor(e){super(e),this.adaptor=new ex,this.adaptor.init(e,this)}}eb.extension={type:[t.x.WebGPUSystem],name:"renderTarget"};class ey{constructor(){this._gpuProgramData=Object.create(null)}contextChange(e){this._gpu=e,this._gpuProgramData=Object.create(null)}getProgramData(e){return this._gpuProgramData[e._layoutKey]||this._createGPUProgramData(e)}_createGPUProgramData(e){let t=this._gpu.device,r=e.gpuLayout.map(e=>t.createBindGroupLayout({entries:e}));return this._gpuProgramData[e._layoutKey]={bindGroups:r,pipeline:t.createPipelineLayout({bindGroupLayouts:r})},this._gpuProgramData[e._layoutKey]}destroy(){this._gpu=null,this._gpuProgramData=null}}ey.extension={type:[t.x.WebGPUSystem],name:"shader"};let ev={};ev.normal={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"}},ev.add={alpha:{srcFactor:"src-alpha",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"one",dstFactor:"one",operation:"add"}},ev.multiply={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"dst",dstFactor:"one-minus-src-alpha",operation:"add"}},ev.screen={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"one",dstFactor:"one-minus-src",operation:"add"}},ev.overlay={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"one",dstFactor:"one-minus-src",operation:"add"}},ev.none={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"zero",dstFactor:"zero",operation:"add"}},ev["normal-npm"]={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"src-alpha",dstFactor:"one-minus-src-alpha",operation:"add"}},ev["add-npm"]={alpha:{srcFactor:"one",dstFactor:"one",operation:"add"},color:{srcFactor:"src-alpha",dstFactor:"one",operation:"add"}},ev["screen-npm"]={alpha:{srcFactor:"one",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"src-alpha",dstFactor:"one-minus-src",operation:"add"}},ev.erase={alpha:{srcFactor:"zero",dstFactor:"one-minus-src-alpha",operation:"add"},color:{srcFactor:"zero",dstFactor:"one-minus-src",operation:"add"}},ev.min={alpha:{srcFactor:"one",dstFactor:"one",operation:"min"},color:{srcFactor:"one",dstFactor:"one",operation:"min"}},ev.max={alpha:{srcFactor:"one",dstFactor:"one",operation:"max"},color:{srcFactor:"one",dstFactor:"one",operation:"max"}};class eG{constructor(){this.defaultState=new f.A,this.defaultState.blend=!0}contextChange(e){this.gpu=e}getColorTargets(e,t,r){let i=e.blend?ev[e.blendMode]||ev.normal:void 0,s=[];for(let e=0;e<t;e++)s[e]={format:r,writeMask:0,blend:i};return s}destroy(){this.gpu=null}}eG.extension={type:[t.x.WebGPUSystem],name:"state"};var eP=e.i(81735),eT=e.i(63646),eS=e.i(87567);let eC=[new eT.f,new eT.f,new eT.f],eB={type:"image",upload(e,t,r,i=0){let s=e.resource,a=0|e.pixelWidth,n=0|e.pixelHeight,o=e.depthOrArrayLayers,u=s.byteLength/(a*n*o);if(o>1)return void r.device.queue.writeTexture({texture:t,origin:{x:0,y:0,z:i}},s,{offset:0,rowsPerImage:n,bytesPerRow:a*u},{width:a,height:n,depthOrArrayLayers:o});let d=(0,eS.f)(e._updateStart,e._updateEnd,a,n,eC);for(let e=0;e<d;e++){let n=eC[e];r.device.queue.writeTexture({texture:t,origin:{x:n.x,y:n.y,z:i}},s,{offset:(n.y*a+n.x)*u,rowsPerImage:n.height,bytesPerRow:a*u},{width:n.width,height:n.height,depthOrArrayLayers:1})}}},ew={"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}},eM={blockBytes:4,blockWidth:1,blockHeight:1},eU={type:"compressed",upload(e,t,r,i=0){let s=e.pixelWidth,a=e.pixelHeight,n=ew[e.format]||eM;for(let o=0;o<e.resource.length;o++){let u=e.resource[o],d=Math.ceil(s/n.blockWidth)*n.blockBytes;r.device.queue.writeTexture({texture:t,mipLevel:o,origin:{x:0,y:0,z:i}},u,{offset:0,bytesPerRow:d},{width:Math.ceil(s/n.blockWidth)*n.blockWidth,height:Math.ceil(a/n.blockHeight)*n.blockHeight,depthOrArrayLayers:1}),s=Math.max(s>>1,1),a=Math.max(a>>1,1)}}},eR=["right","left","top","bottom","front","back"],eE={type:"image",upload(e,t,r,i=0){let s=e.resource;if(!s)return;if(globalThis.HTMLImageElement&&s instanceof HTMLImageElement){let t=M.f.get().createCanvas(s.width,s.height);t.getContext("2d").drawImage(s,0,0,s.width,s.height),e.resource=t,(0,g.f)("ImageSource: Image element passed, converting to canvas and replacing resource.")}let a=Math.min(t.width,e.resourceWidth||e.pixelWidth),n=Math.min(t.height,e.resourceHeight||e.pixelHeight),o="premultiply-alpha-on-upload"===e.alphaMode;r.device.queue.copyExternalImageToTexture({source:s},{texture:t,origin:{x:0,y:0,z:i},premultipliedAlpha:o},{width:a,height:n})}},eO={type:"video",upload(e,t,r,i){eE.upload(e,t,r,i)}},eA=["rgba8unorm","rgba16float"];function eL(e,t){if(!t)throw Error("[Gpu3dMipmapGenerator] generating mipmaps for a 3D texture needs storage: true.");if(!eA.includes(e))throw Error(`[Gpu3dMipmapGenerator] format '${e}' can't be downsampled. Use ${eA.join(", ")}.`)}class eF{constructor(e){this._pipelines={},this._device=e,this._sampler=e.createSampler({magFilter:"linear",minFilter:"linear"})}_getMipmapPipeline(e){var t;return(t=this._pipelines)[e]??(t[e]=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<${e}, 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[e]}generateMipmap(e){if("3d"!==e.dimension)throw Error("[Gpu3dMipmapGenerator] generateMipmap expects a 3D texture.");if(e.mipLevelCount<2)return;eL(e.format,(e.usage&GPUTextureUsage.STORAGE_BINDING)!=0);let t=this._getMipmapPipeline(e.format),r=t.getBindGroupLayout(0),i=this._device.createCommandEncoder({label:"Gpu3dMipmapGenerator"}),s=i.beginComputePass();s.setPipeline(t);let a=e.width,n=e.height,o=e.depthOrArrayLayers,u=e.createView({dimension:"3d",baseMipLevel:0,mipLevelCount:1});for(let t=1;t<e.mipLevelCount;t++){a=Math.max(1,a>>1),n=Math.max(1,n>>1),o=Math.max(1,o>>1);let i=e.createView({dimension:"3d",baseMipLevel:t,mipLevelCount:1});s.setBindGroup(0,this._device.createBindGroup({layout:r,entries:[{binding:0,resource:this._sampler},{binding:1,resource:u},{binding:2,resource:i}]})),s.dispatchWorkgroups(Math.ceil(a/4),Math.ceil(n/4),Math.ceil(o/4)),u=i}s.end(),this._device.queue.submit([i.finish()])}}class eD{constructor(e){this._pipelines={},this._device=e,this._sampler=e.createSampler({minFilter:"linear"})}_getMipmapPipeline(e){let t=this._pipelines[e];return t||(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
+ `})),t=this._device.createRenderPipeline({layout:"auto",vertex:{module:this._mipmapShaderModule,entryPoint:"vertexMain"},fragment:{module:this._mipmapShaderModule,entryPoint:"fragmentMain",targets:[{format:e}]}}),this._pipelines[e]=t),t}generateMipmap(e){if("3d"===e.dimension)throw Error("[GpuMipmapGenerator] a 3D texture uses Gpu3dMipmapGenerator.");if("1d"===e.dimension)throw Error("Generating mipmaps for 1d textures is currently unsupported!");let t=this._getMipmapPipeline(e.format),r=e,i=e.depthOrArrayLayers||1,s=e.usage&GPUTextureUsage.RENDER_ATTACHMENT;if(!s){let t={size:{width:Math.ceil(e.width/2),height:Math.ceil(e.height/2),depthOrArrayLayers:i},format:e.format,usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_SRC|GPUTextureUsage.RENDER_ATTACHMENT,mipLevelCount:e.mipLevelCount-1};r=this._device.createTexture(t)}let a=this._device.createCommandEncoder({}),n=t.getBindGroupLayout(0);for(let o=0;o<i;++o){let i=e.createView({baseMipLevel:0,mipLevelCount:1,dimension:"2d",baseArrayLayer:o,arrayLayerCount:1}),u=+!!s;for(let s=1;s<e.mipLevelCount;++s){let e=r.createView({baseMipLevel:u++,mipLevelCount:1,dimension:"2d",baseArrayLayer:o,arrayLayerCount:1}),s=a.beginRenderPass({colorAttachments:[{view:e,storeOp:"store",loadOp:"clear",clearValue:{r:0,g:0,b:0,a:0}}]}),d=this._device.createBindGroup({layout:n,entries:[{binding:0,resource:this._sampler},{binding:1,resource:i}]});s.setPipeline(t),s.setBindGroup(0,d),s.draw(3,1,0,0),s.end(),i=e}}if(!s){let t={width:Math.ceil(e.width/2),height:Math.ceil(e.height/2),depthOrArrayLayers:i};for(let i=1;i<e.mipLevelCount;++i)a.copyTextureToTexture({texture:r,mipLevel:i-1},{texture:e,mipLevel:i},t),t.width=Math.ceil(t.width/2),t.height=Math.ceil(t.height/2)}return this._device.queue.submit([a.finish()]),s||r.destroy(),e}}class ek{constructor(e){this.textureView=null,this.textureViews=Object.create(null),this.gpuTexture=e}destroy(){this.gpuTexture.destroy(),this.textureView=null,this.textureViews=null,this.gpuTexture=null}}let ez=/^(rgba8|bgra8|bc[1237]-rgba-|etc2-rgb8|etc2-rgb8a1|etc2-rgba8|astc-\d+x\d+-)unorm$/;function eI(e){return`${e.format||""}.${e.dimension||""}.${e.aspect||""}.${e.baseMipLevel||0}.${e.mipLevelCount||""}.${e.baseArrayLayer||0}.${e.arrayLayerCount||""}`}let eH=class e{constructor(t){this._gpuSamplers=Object.create(null),this._bindGroupHash=Object.create(null),this._renderer=t,t.gc.addCollection(this,"_bindGroupHash","hash"),this._managedTextures=new T.f({renderer:t,type:"resource",onUnload:this.onSourceUnload.bind(this),name:"gpuTextureSource"});let r={image:eE,buffer:eB,video:eO,compressed:eU,...e.uploadExtensions};this._uploads={...r,cube:{type:"cube",upload(e,t,i){let s=e.faces;for(let e=0;e<eR.length;e++){let a=s[eR[e]];(r[a.uploadMethodId]||r.image).upload(a,t,i,e)}}}}}get managedTextures(){return Object.values(this._managedTextures.items)}contextChange(e){this._gpu=e,this._managedTextures.removeAll(),this._gpuSamplers=Object.create(null),this._mipmapGenerator=null,this._mipmap3dGenerator=null}initSource(e){return e._gpuData[this._renderer.uid]?.gpuTexture||this._initSource(e)}_initSource(e){let t,r;if(e.autoGenerateMipmaps){"3d"===e.dimension&&eL(e.format,e.storage);let t=Math.max(e.pixelWidth,e.pixelHeight,e.depth);e.mipLevelCount=Math.floor(Math.log2(t))+1}if(e.sampleCount>1)t=GPUTextureUsage.RENDER_ATTACHMENT,e.transient&&this._renderer.device.extensions.transientAttachment&&(t|=GPUTextureUsage.TRANSIENT_ATTACHMENT);else{var i;t=GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST,"compressed"!==e.uploadMethodId&&(t|=GPUTextureUsage.RENDER_ATTACHMENT,t|=GPUTextureUsage.COPY_SRC),e.storage&&(t|=GPUTextureUsage.STORAGE_BINDING),i=e.format,r=ez.test(i)?[`${i}-srgb`]:void 0}let s=ew[e.format]||{blockBytes:4,blockWidth:1,blockHeight:1},a=Math.ceil(e.pixelWidth/s.blockWidth)*s.blockWidth,n=Math.ceil(e.pixelHeight/s.blockHeight)*s.blockHeight,o={label:e.label,size:{width:a,height:n,depthOrArrayLayers:e.depthOrArrayLayers},format:e.format,viewFormats:r,sampleCount:e.sampleCount,mipLevelCount:e.mipLevelCount,dimension:e.dimension,usage:t},u=this._gpu.device.createTexture(o);return e._gpuData[this._renderer.uid]=new ek(u),this._managedTextures.add(e)&&(e.on("update",this.onSourceUpdate,this),e.on("resize",this.onSourceResize,this),e.on("updateMipmaps",this.onUpdateMipmaps,this)),this.onSourceUpdate(e),u}onSourceUpdate(e){let t=this.getGpuSource(e);t&&(this._uploads[e.uploadMethodId]&&this._uploads[e.uploadMethodId].upload(e,t,this._gpu),e.autoGenerateMipmaps&&e.mipLevelCount>1&&this.onUpdateMipmaps(e))}onUpdateMipmaps(e){let t=this.getGpuSource(e);if("3d"===e.dimension){this._mipmap3dGenerator??(this._mipmap3dGenerator=new eF(this._gpu.device)),this._mipmap3dGenerator.generateMipmap(t);return}this._mipmapGenerator??(this._mipmapGenerator=new eD(this._gpu.device)),this._mipmapGenerator.generateMipmap(t)}onSourceUnload(e){e.off("update",this.onSourceUpdate,this),e.off("resize",this.onSourceResize,this),e.off("updateMipmaps",this.onUpdateMipmaps,this)}onSourceResize(e){e._gcLastUsed=this._renderer.gc.now;let t=e._gpuData[this._renderer.uid],r=t?.gpuTexture;r?(r.width!==e.pixelWidth||r.height!==e.pixelHeight)&&(t.destroy(),this._bindGroupHash[e.uid]=null,e._gpuData[this._renderer.uid]=null,this.initSource(e)):this.initSource(e)}_initSampler(e){return this._gpuSamplers[e._resourceId]=this._gpu.device.createSampler(e),this._gpuSamplers[e._resourceId]}getGpuSampler(e){return this._gpuSamplers[e._resourceId]||this._initSampler(e)}getGpuSource(e){return e._gcLastUsed=this._renderer.gc.now,e._gpuData[this._renderer.uid]?.gpuTexture||this.initSource(e)}getTextureBindGroup(e){return this._bindGroupHash[e.uid]||this._createTextureBindGroup(e)}_createTextureBindGroup(e){let t=e.source;return this._bindGroupHash[e.uid]=new q.f({0:t,1:t.style,2:new l.f({uTextureMatrix:{type:"mat3x3<f32>",value:e.textureMatrix.mapCoord}})}),this._bindGroupHash[e.uid]}getTextureView(e,t){var r;let i=e.source;i._gcLastUsed=this._renderer.gc.now;let s=i._gpuData[this._renderer.uid];s||(this.initSource(i),s=i._gpuData[this._renderer.uid]);let a=t?eI(t):0;return(r=s.textureViews)[a]||(r[a]=s.gpuTexture.createView({dimension:i.viewDimension,...t})),s.textureViews[a]}getTextureRenderTargetView(e,t=0,r=0,i){var s;let a=e.source;a._gcLastUsed=this._renderer.gc.now;let n=a._gpuData[this._renderer.uid];n||(this.initSource(a),n=a._gpuData[this._renderer.uid]);let o="3d"===a.dimension;o&&(r=0);let u=r*(a.mipLevelCount||1)+t+1;return i&&(u=`${u}.${eI(i)}`),(s=n.textureViews)[u]||(s[u]=n.gpuTexture.createView({dimension:o?"3d":"2d",baseMipLevel:t,mipLevelCount:1,baseArrayLayer:r,arrayLayerCount:1,...i})),n.textureViews[u]}generateCanvas(e){let t=this._renderer,r=t.gpu.device.createCommandEncoder(),i=M.f.get().createCanvas();i.width=e.source.pixelWidth,i.height=e.source.pixelHeight;let s=i.getContext("webgpu");return s.configure({device:t.gpu.device,usage:GPUTextureUsage.COPY_DST|GPUTextureUsage.COPY_SRC,format:M.f.get().getNavigator().gpu.getPreferredCanvasFormat(),alphaMode:"premultiplied"}),r.copyTextureToTexture({texture:t.texture.getGpuSource(e.source),origin:{x:0,y:0}},{texture:s.getCurrentTexture()},{width:i.width,height:i.height}),t.gpu.device.queue.submit([r.finish()]),i}getPixels(e){let t=this.generateCanvas(e),r=eP.f.getOptimalCanvasAndContext(t.width,t.height),i=r.context;i.drawImage(t,0,0);let{width:s,height:a}=t,n=new Uint8ClampedArray(i.getImageData(0,0,s,a).data.buffer);return eP.f.returnCanvasAndContext(r),{pixels:n,width:s,height:a}}destroy(){for(let e of(this._managedTextures.destroy(),Object.keys(this._bindGroupHash))){let t=Number(e),r=this._bindGroupHash[t];r?.destroy()}this._renderer=null,this._gpu=null,this._mipmapGenerator=null,this._mipmap3dGenerator=null,this._gpuSamplers=null,this._bindGroupHash=null}};eH.extension={type:[t.x.WebGPUSystem],name:"texture"},eH.uploadExtensions=Object.create(null),t.H.handleByMap(t.x.TextureUploaderWebGPU,eH.uploadExtensions);let eV=[...y.q,W,O,R,A,B,eH,eb,ey,eG,el,w,L,P],eW=[...y.E,Y],eN=[x,m,h],e$=[],ej=[],eK=[],eq=[];t.H.handleByNamedList(t.x.WebGPUSystem,e$),t.H.handleByNamedList(t.x.WebGPUPipes,ej),t.H.handleByNamedList(t.x.WebGPUPipesAdaptor,eK),t.H.handleByNamedList(t.x.WebGPULoader,eq),t.H.add(...eV,...eW,...eN);class eY extends b.f{constructor(){super({name:"webgpu",type:v.f.WEBGPU,systems:e$,renderPipes:ej,renderPipeAdaptors:eK,loaders:eq})}}e.s(["WebGPURenderer",0,eY],50703)}]);