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,196 @@
|
|
|
1
|
+
(()=>{"use strict";module.exports=[77686,84239,a=>{let b={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
|
+
`}},c={...b,vertex:{...b.vertex,header:b.vertex.header.replace("group(1)","group(2)")}},d={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
|
+
`}};a.s(["q",0,b,"Y",0,d,"M",0,c],77686);let e={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
|
+
`}},f={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
|
+
`}};a.s(["S",0,e,"X",0,f],84239)},80783,29477,a=>{var b=a.i(51983),c=a.i(70770);a.s(["f",0,function(a,d){for(let c in a.attributes){let e=a.attributes[c],f=d[c];f?(e.format??(e.format=f.format),e.offset??(e.offset=f.offset),e.instance??(e.instance=f.instance)):e.format||(0,b.f)(`Attribute ${c} is not present in the shader, but is present in the geometry. Unable to infer attribute details.`)}!function(a){let{buffers:b,attributes:d}=a,e={},f={};for(let a in b){let c=b[a];e[c.uid]=0,f[c.uid]=0}for(let a in d){let b=d[a];e[b.buffer.uid]+=(0,c.f)(b.format).stride}for(let a in d){let b=d[a];b.stride??(b.stride=e[b.buffer.uid]),b.start??(b.start=f[b.buffer.uid]),f[b.buffer.uid]+=(0,c.f)(b.format).stride}}(a)}],80783);var d=a.i(35990);let e=[];e[d.U.NONE]=void 0,e[d.U.DISABLED]={stencilWriteMask:0,stencilReadMask:0},e[d.U.RENDERING_MASK_ADD]={stencilFront:{compare:"equal",passOp:"increment-clamp"},stencilBack:{compare:"equal",passOp:"increment-clamp"}},e[d.U.RENDERING_MASK_REMOVE]={stencilFront:{compare:"equal",passOp:"decrement-clamp"},stencilBack:{compare:"equal",passOp:"decrement-clamp"}},e[d.U.MASK_ACTIVE]={stencilWriteMask:0,stencilFront:{compare:"equal",passOp:"keep"},stencilBack:{compare:"equal",passOp:"keep"}},e[d.U.INVERSE_MASK_ACTIVE]={stencilWriteMask:0,stencilFront:{compare:"not-equal",passOp:"keep"},stencilBack:{compare:"not-equal",passOp:"keep"}},a.s(["f",0,e],29477)},55164,51581,51169,37630,10961,a=>{var b=a.i(78064),c=a.i(42682),d=a.i(52776);a.s(["f",0,class{constructor(a){this._syncFunctionHash=Object.create(null),this._adaptor=a,this._systemCheck()}_systemCheck(){if(!(0,b.f)())throw Error("Current environment does not allow unsafe-eval, please use pixi.js/unsafe-eval module to enable support.")}ensureUniformGroup(a){let b=this.getUniformGroupData(a);a.buffer||(a.buffer=new c.f({data:new Float32Array(b.layout.size/4),usage:d.f.UNIFORM|d.f.COPY_DST}))}getUniformGroupData(a){return this._syncFunctionHash[a._signature]||this._initUniformGroup(a)}_initUniformGroup(a){let b=a._signature,c=this._syncFunctionHash[b];if(!c){let d=Object.keys(a.uniformStructures).map(b=>a.uniformStructures[b]),e=this._adaptor.createUboElements(d),f=this._generateUboSync(e.uboElements);c=this._syncFunctionHash[b]={layout:e,syncFunction:f}}return this._syncFunctionHash[b]}_generateUboSync(a){return this._adaptor.generateUboSync(a)}syncUniformGroup(a,b,e){let f=this.getUniformGroupData(a);a.buffer||(a.buffer=new c.f({data:new Float32Array(f.layout.size/4),usage:d.f.UNIFORM|d.f.COPY_DST}));let g=null;return b||(b=a.buffer.data,g=a.buffer.dataInt32),e||(e=0),f.syncFunction(a.uniforms,b,g,e),!0}updateUniformGroup(a){if(a.isStatic&&!a._dirtyId)return!1;a._dirtyId=0;let b=this.syncUniformGroup(a);return a.buffer.update(),b}destroy(){this._syncFunctionHash=null}}],55164);let e=[{type:"mat3x3<f32>",test:a=>void 0!==a.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:a=>"vec4<f32>"===a.type&&1===a.size&&void 0!==a.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:a=>"vec2<f32>"===a.type&&1===a.size&&void 0!==a.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:a=>"vec4<f32>"===a.type&&1===a.size&&void 0!==a.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:a=>"vec3<f32>"===a.type&&1===a.size&&void 0!==a.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 f(a,b){return`
|
|
129
|
+
for (let i = 0; i < ${a*b}; i++) {
|
|
130
|
+
data[offset + (((i / ${a})|0) * 4) + (i % ${a})] = v[i];
|
|
131
|
+
}
|
|
132
|
+
`}a.s(["f",0,e],51581),a.s(["f",0,function(a,b,c){let d=[`
|
|
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
|
+
`],f=0;for(let g=0;g<a.length;g++){let h=a[g],i=h.data.name,j=!1,k=0;for(let a=0;a<e.length;a++)if(e[a].test(h.data)){k=h.offset/4,d.push(`name = "${i}";`,`offset += ${k-f};`,e[a].ubo),j=!0;break}if(!j)if(h.data.size>1)k=h.offset/4,d.push(c(h,k-f));else{let a=b[h.data.type];k=h.offset/4,d.push(`
|
|
140
|
+
v = uv.${i};
|
|
141
|
+
offset += ${k-f};
|
|
142
|
+
${a};
|
|
143
|
+
`)}f=k}return Function("uv","data","dataInt32","offset",d.join("\n"))}],51169);let g={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>":f(3,2),"mat4x2<f32>":f(4,2),"mat2x3<f32>":f(2,3),"mat4x3<f32>":f(4,3),"mat2x4<f32>":f(2,4),"mat3x4<f32>":f(3,4)},h={...g,"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
|
+
`};a.s(["E",0,g,"c",0,h],37630);var i=a.i(61607),j=a.i(90423);class k extends i.f{constructor({buffer:a,offset:b,size:c}){super(),this.uid=(0,j.f)("buffer"),this._resourceType="bufferResource",this._resourceId=(0,j.f)("resource"),this._bufferResource=!0,this.destroyed=!1,this.buffer=a,this.offset=0|b,this.size=c,this.buffer.on("change",this.onBufferChange,this)}get _gcLastUsed(){return this.buffer?._gcLastUsed??-1}set _gcLastUsed(a){this.buffer&&(this.buffer._gcLastUsed=a)}onBufferChange(){this._resourceId=(0,j.f)("resource"),this.emit("change",this)}destroy(a=!1){this.destroyed=!0,a&&this.buffer.destroy(),this.emit("change",this),this.buffer=null,this.removeAllListeners()}}a.s(["f",0,k],10961)},54274,a=>{a.s(["f",0,function(a,b,c,d,e){if((a=Math.max(0,a))>=(b=Math.min(b,c*d)))return 0;let f=Math.floor(a/c),g=a-f*c,h=Math.floor(b/c),i=b-h*c;if(f===h)return e[0].set(g,f,i-g,1),1;let j=0,k=f;return g>0&&(e[j++].set(g,f,c-g,1),k++),h>k&&e[j++].set(0,k,c,h-k),i>0&&e[j++].set(0,h,i,1),j}])}]})();
|
|
195
|
+
|
|
196
|
+
//# sourceMappingURL=node_modules_pixi_js_lib_rendering_1n1q7aum4i7zo._.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../node_modules/pixi.js/src/rendering/high-shader/shader-bits/textureBit.ts","../../../../node_modules/pixi.js/src/rendering/high-shader/shader-bits/localUniformBit.ts","../../../../node_modules/pixi.js/src/rendering/renderers/gpu/state/GpuStencilModesToPixi.ts","../../../../node_modules/pixi.js/src/rendering/renderers/gl/shader/program/ensureAttributes.ts","../../../../node_modules/pixi.js/src/rendering/renderers/shared/shader/utils/uniformParsers.ts","../../../../node_modules/pixi.js/src/rendering/renderers/shared/shader/utils/uboSyncFunctions.ts","../../../../node_modules/pixi.js/src/rendering/renderers/shared/shader/utils/compileBufferSync.ts","../../../../node_modules/pixi.js/src/rendering/renderers/shared/buffer/BufferResource.ts","../../../../node_modules/pixi.js/src/rendering/renderers/shared/shader/UboSystem.ts","../../../../node_modules/pixi.js/src/rendering/renderers/shared/texture/utils/getTexelRangeRects.ts"],"sourcesContent":["/** @internal */\nexport const textureBit = {\n name: 'texture-bit',\n vertex: {\n header: /* wgsl */`\n\n struct TextureUniforms {\n uTextureMatrix:mat3x3<f32>,\n }\n\n @group(2) @binding(2) var<uniform> textureUniforms : TextureUniforms;\n `,\n main: /* wgsl */`\n uv = (textureUniforms.uTextureMatrix * vec3(uv, 1.0)).xy;\n `\n },\n fragment: {\n header: /* wgsl */`\n @group(2) @binding(0) var uTexture: texture_2d<f32>;\n @group(2) @binding(1) var uSampler: sampler;\n\n\n `,\n main: /* wgsl */`\n outColor = textureSample(uTexture, uSampler, vUV);\n `\n }\n};\n\n/** @internal */\nexport const textureBitGl = {\n name: 'texture-bit',\n vertex: {\n header: /* glsl */`\n uniform mat3 uTextureMatrix;\n `,\n main: /* glsl */`\n uv = (uTextureMatrix * vec3(uv, 1.0)).xy;\n `\n },\n fragment: {\n header: /* glsl */`\n uniform sampler2D uTexture;\n\n\n `,\n main: /* glsl */`\n outColor = texture(uTexture, vUV);\n `\n }\n};\n\n","/** @internal */\nexport const localUniformBit = {\n name: 'local-uniform-bit',\n vertex: {\n header: /* wgsl */`\n\n struct LocalUniforms {\n uTransformMatrix:mat3x3<f32>,\n uColor:vec4<f32>,\n uRound:f32,\n }\n\n @group(1) @binding(0) var<uniform> localUniforms : LocalUniforms;\n `,\n main: /* wgsl */`\n vColor *= localUniforms.uColor;\n modelMatrix *= localUniforms.uTransformMatrix;\n `,\n end: /* wgsl */`\n if(localUniforms.uRound == 1)\n {\n vPosition = vec4(roundPixels(vPosition.xy, globalUniforms.uResolution), vPosition.zw);\n }\n `\n },\n};\n\n// TODO this works, but i think down the road it will be better to manage groups automatically if there are clashes\n/** @internal */\nexport const localUniformBitGroup2 = {\n ...localUniformBit,\n vertex: {\n ...localUniformBit.vertex,\n // replace the group!\n header: localUniformBit.vertex.header.replace('group(1)', 'group(2)'),\n }\n};\n\n/** @internal */\nexport const localUniformBitGl = {\n name: 'local-uniform-bit',\n vertex: {\n header: /* glsl */`\n\n uniform mat3 uTransformMatrix;\n uniform vec4 uColor;\n uniform float uRound;\n `,\n main: /* glsl */`\n vColor *= uColor;\n modelMatrix = uTransformMatrix;\n `,\n end: /* glsl */`\n if(uRound == 1.)\n {\n gl_Position.xy = roundPixels(gl_Position.xy, uResolution);\n }\n `\n },\n};\n","import { STENCIL_MODES } from '../../shared/state/const';\n\n/**\n * The stencil state for the GPU renderer.\n * This is used to define how the stencil buffer should be configured.\n * @category rendering\n * @advanced\n */\nexport interface StencilState\n{\n stencilWriteMask?: number\n stencilReadMask?: number;\n stencilFront?: {\n compare: 'always' | 'equal' | 'not-equal';\n passOp: 'increment-clamp' | 'decrement-clamp' | 'keep' | 'replace';\n },\n stencilBack?: {\n compare: 'always' | 'equal' | 'not-equal';\n passOp: 'increment-clamp' | 'decrement-clamp' | 'keep' | 'replace';\n }\n}\n\n/** @internal */\nexport const GpuStencilModesToPixi: StencilState[] = [];\n\nGpuStencilModesToPixi[STENCIL_MODES.NONE] = undefined;\n\nGpuStencilModesToPixi[STENCIL_MODES.DISABLED] = {\n stencilWriteMask: 0,\n stencilReadMask: 0,\n};\n\nGpuStencilModesToPixi[STENCIL_MODES.RENDERING_MASK_ADD] = {\n stencilFront: {\n compare: 'equal',\n passOp: 'increment-clamp',\n },\n stencilBack: {\n compare: 'equal',\n passOp: 'increment-clamp',\n },\n};\n\nGpuStencilModesToPixi[STENCIL_MODES.RENDERING_MASK_REMOVE] = {\n stencilFront: {\n compare: 'equal',\n passOp: 'decrement-clamp',\n },\n stencilBack: {\n compare: 'equal',\n passOp: 'decrement-clamp',\n },\n};\n\nGpuStencilModesToPixi[STENCIL_MODES.MASK_ACTIVE] = {\n stencilWriteMask: 0,\n stencilFront: {\n compare: 'equal',\n passOp: 'keep',\n },\n stencilBack: {\n compare: 'equal',\n passOp: 'keep',\n },\n};\n\nGpuStencilModesToPixi[STENCIL_MODES.INVERSE_MASK_ACTIVE] = {\n stencilWriteMask: 0,\n stencilFront: {\n compare: 'not-equal',\n passOp: 'keep',\n },\n stencilBack: {\n compare: 'not-equal',\n passOp: 'keep',\n },\n};\n","import { warn } from '../../../../../utils/logging/warn';\nimport { getAttributeInfoFromFormat } from '../../../shared/geometry/utils/getAttributeInfoFromFormat';\n\nimport type { Geometry } from '../../../shared/geometry/Geometry';\nimport type { ExtractedAttributeData } from './extractAttributesFromGlProgram';\n\n/**\n * This function looks at the attribute information provided to the geometry and attempts\n * to fill in any gaps. We do this by looking at the extracted data from the shader and\n * making best guesses.\n *\n * Most of the time users don't need to provide all the attribute info beyond the data itself, so we\n * can fill in the gaps for them. If you are using attributes in a more advanced way,\n * don't forget to add all the info at creation!\n * @param geometry - the geometry to ensure attributes for\n * @param extractedData - the extracted data from the shader\n * @internal\n */\nexport function ensureAttributes(\n geometry: Geometry,\n extractedData: Record<string, ExtractedAttributeData>\n): void\n{\n for (const i in geometry.attributes)\n {\n const attribute = geometry.attributes[i];\n const attributeData = extractedData[i];\n\n if (attributeData)\n {\n attribute.format ??= attributeData.format;\n attribute.offset ??= attributeData.offset;\n attribute.instance ??= attributeData.instance;\n }\n else if (!attribute.format)\n {\n // eslint-disable-next-line max-len\n warn(`Attribute ${i} is not present in the shader, but is present in the geometry. Unable to infer attribute details.`);\n }\n }\n\n ensureStartAndStride(geometry);\n}\n\nfunction ensureStartAndStride(geometry: Geometry): void\n{\n const { buffers, attributes } = geometry;\n\n const tempStride: Record<string, number> = {};\n const tempStart: Record<string, number> = {};\n\n for (const j in buffers)\n {\n const buffer = buffers[j];\n\n tempStride[buffer.uid] = 0;\n tempStart[buffer.uid] = 0;\n }\n\n for (const j in attributes)\n {\n const attribute = attributes[j];\n\n tempStride[attribute.buffer.uid] += getAttributeInfoFromFormat(attribute.format).stride;\n }\n\n for (const j in attributes)\n {\n const attribute = attributes[j];\n\n attribute.stride ??= tempStride[attribute.buffer.uid];\n\n attribute.start ??= tempStart[attribute.buffer.uid];\n\n tempStart[attribute.buffer.uid] += getAttributeInfoFromFormat(attribute.format).stride;\n }\n}\n","// Parsers, each one of these will take a look at the type of shader property and uniform.\n// if they pass the test function then the code function is called that returns a the shader upload code for that uniform.\n// Shader upload code is automagically generated with these parsers.\n// If no parser is valid then the default upload functions are used.\n// exposing Parsers means that custom upload logic can be added to pixi's shaders.\n// A good example would be a pixi rectangle can be directly set on a uniform.\n// If the shader sees it it knows how to upload the rectangle structure as a vec4\n// format is as follows:\n//\n// {\n// test: (data, uniform) => {} <--- test is this code should be used for this uniform\n// code: (name, uniform) => {} <--- returns the string of the piece of code that uploads the uniform\n// codeUbo: (name, uniform) => {} <--- returns the string of the piece of code that uploads the\n// uniform to a uniform buffer\n// }\n// import { Texture } from '../../texture/Texture';\n\nimport type { Color } from '../../../../../color/Color';\nimport type { Matrix } from '../../../../../maths/matrix/Matrix';\nimport type { PointLike } from '../../../../../maths/point/PointLike';\nimport type { Rectangle } from '../../../../../maths/shapes/Rectangle';\nimport type { UNIFORM_TYPES, UniformData } from '../types';\n\ninterface UniformParserDefinition\n{\n type: UNIFORM_TYPES;\n test(data: UniformData): boolean;\n ubo?: string;\n uniform?: string;\n}\n\n/** @internal */\nexport const uniformParsers: UniformParserDefinition[] = [\n // uploading pixi matrix object to mat3\n {\n type: 'mat3x3<f32>',\n test: (data: UniformData): boolean =>\n {\n const value = data.value as Matrix;\n\n return value.a !== undefined;\n },\n ubo: `\n var matrix = uv[name].toArray(true);\n data[offset] = matrix[0];\n data[offset + 1] = matrix[1];\n data[offset + 2] = matrix[2];\n data[offset + 4] = matrix[3];\n data[offset + 5] = matrix[4];\n data[offset + 6] = matrix[5];\n data[offset + 8] = matrix[6];\n data[offset + 9] = matrix[7];\n data[offset + 10] = matrix[8];\n `,\n uniform: `\n gl.uniformMatrix3fv(ud[name].location, false, uv[name].toArray(true));\n `\n },\n // uploading a pixi rectangle as a vec4\n {\n type: 'vec4<f32>',\n test: (data: UniformData): boolean =>\n data.type === 'vec4<f32>' && data.size === 1 && (data.value as Rectangle).width !== undefined,\n ubo: `\n v = uv[name];\n data[offset] = v.x;\n data[offset + 1] = v.y;\n data[offset + 2] = v.width;\n data[offset + 3] = v.height;\n `,\n uniform: `\n cv = ud[name].value;\n v = uv[name];\n if (cv[0] !== v.x || cv[1] !== v.y || cv[2] !== v.width || cv[3] !== v.height) {\n cv[0] = v.x;\n cv[1] = v.y;\n cv[2] = v.width;\n cv[3] = v.height;\n gl.uniform4f(ud[name].location, v.x, v.y, v.width, v.height);\n }\n `\n },\n // uploading a pixi point as a vec2\n {\n type: 'vec2<f32>',\n test: (data: UniformData): boolean =>\n data.type === 'vec2<f32>' && data.size === 1 && (data.value as PointLike).x !== undefined,\n ubo: `\n v = uv[name];\n data[offset] = v.x;\n data[offset + 1] = v.y;\n `,\n uniform: `\n cv = ud[name].value;\n v = uv[name];\n if (cv[0] !== v.x || cv[1] !== v.y) {\n cv[0] = v.x;\n cv[1] = v.y;\n gl.uniform2f(ud[name].location, v.x, v.y);\n }\n `\n },\n // uploading a pixi color as a vec4\n {\n type: 'vec4<f32>',\n test: (data: UniformData): boolean =>\n data.type === 'vec4<f32>' && data.size === 1 && (data.value as Color).red !== undefined,\n ubo: `\n v = uv[name];\n data[offset] = v.red;\n data[offset + 1] = v.green;\n data[offset + 2] = v.blue;\n data[offset + 3] = v.alpha;\n `,\n uniform: `\n cv = ud[name].value;\n v = uv[name];\n if (cv[0] !== v.red || cv[1] !== v.green || cv[2] !== v.blue || cv[3] !== v.alpha) {\n cv[0] = v.red;\n cv[1] = v.green;\n cv[2] = v.blue;\n cv[3] = v.alpha;\n gl.uniform4f(ud[name].location, v.red, v.green, v.blue, v.alpha);\n }\n `\n },\n // uploading a pixi color as a vec3\n {\n type: 'vec3<f32>',\n test: (data: UniformData): boolean =>\n data.type === 'vec3<f32>' && data.size === 1 && (data.value as Color).red !== undefined,\n ubo: `\n v = uv[name];\n data[offset] = v.red;\n data[offset + 1] = v.green;\n data[offset + 2] = v.blue;\n `,\n uniform: `\n cv = ud[name].value;\n v = uv[name];\n if (cv[0] !== v.red || cv[1] !== v.green || cv[2] !== v.blue) {\n cv[0] = v.red;\n cv[1] = v.green;\n cv[2] = v.blue;\n gl.uniform3f(ud[name].location, v.red, v.green, v.blue);\n }\n `\n },\n];\n","import type { UNIFORM_TYPES_SINGLE } from '../types';\n\nfunction loopMatrix(col: number, row: number)\n{\n const total = col * row;\n\n return `\n for (let i = 0; i < ${total}; i++) {\n data[offset + (((i / ${col})|0) * 4) + (i % ${col})] = v[i];\n }\n `;\n}\n\n/** @internal */\nexport const uboSyncFunctionsSTD40: Record<UNIFORM_TYPES_SINGLE, string> = {\n f32: `\n data[offset] = v;`,\n i32: `\n dataInt32[offset] = v;`,\n u32: `\n dataInt32[offset] = v;`,\n 'vec2<f32>': `\n data[offset] = v[0];\n data[offset + 1] = v[1];`,\n 'vec3<f32>': `\n data[offset] = v[0];\n data[offset + 1] = v[1];\n data[offset + 2] = v[2];`,\n 'vec4<f32>': `\n data[offset] = v[0];\n data[offset + 1] = v[1];\n data[offset + 2] = v[2];\n data[offset + 3] = v[3];`,\n 'vec2<i32>': `\n dataInt32[offset] = v[0];\n dataInt32[offset + 1] = v[1];`,\n 'vec3<i32>': `\n dataInt32[offset] = v[0];\n dataInt32[offset + 1] = v[1];\n dataInt32[offset + 2] = v[2];`,\n 'vec4<i32>': `\n dataInt32[offset] = v[0];\n dataInt32[offset + 1] = v[1];\n dataInt32[offset + 2] = v[2];\n dataInt32[offset + 3] = v[3];`,\n 'vec2<u32>': `\n dataInt32[offset] = v[0];\n dataInt32[offset + 1] = v[1];`,\n 'vec3<u32>': `\n dataInt32[offset] = v[0];\n dataInt32[offset + 1] = v[1];\n dataInt32[offset + 2] = v[2];`,\n 'vec4<u32>': `\n dataInt32[offset] = v[0];\n dataInt32[offset + 1] = v[1];\n dataInt32[offset + 2] = v[2];\n dataInt32[offset + 3] = v[3];`,\n 'mat2x2<f32>': `\n data[offset] = v[0];\n data[offset + 1] = v[1];\n data[offset + 4] = v[2];\n data[offset + 5] = v[3];`,\n 'mat3x3<f32>': `\n data[offset] = v[0];\n data[offset + 1] = v[1];\n data[offset + 2] = v[2];\n data[offset + 4] = v[3];\n data[offset + 5] = v[4];\n data[offset + 6] = v[5];\n data[offset + 8] = v[6];\n data[offset + 9] = v[7];\n data[offset + 10] = v[8];`,\n 'mat4x4<f32>': `\n for (let i = 0; i < 16; i++) {\n data[offset + i] = v[i];\n }`,\n 'mat3x2<f32>': loopMatrix(3, 2),\n 'mat4x2<f32>': loopMatrix(4, 2),\n 'mat2x3<f32>': loopMatrix(2, 3),\n 'mat4x3<f32>': loopMatrix(4, 3),\n 'mat2x4<f32>': loopMatrix(2, 4),\n 'mat3x4<f32>': loopMatrix(3, 4),\n};\n\n/** @internal */\nexport const uboSyncFunctionsWGSL: Record<UNIFORM_TYPES_SINGLE, string> = {\n ...uboSyncFunctionsSTD40,\n 'mat2x2<f32>': `\n data[offset] = v[0];\n data[offset + 1] = v[1];\n data[offset + 2] = v[2];\n data[offset + 3] = v[3];\n `,\n};\n","import { uniformParsers } from './uniformParsers';\n\nimport type { UboElement, UNIFORM_TYPES_SINGLE, UniformsSyncCallback } from '../types';\n\n/**\n * Compiles a JIT sync function that walks a layout (`UboElement[]`) and writes the\n * matching values from a `uniforms` bag into a Float32Array / Int32Array buffer view\n * at a runtime-supplied offset.\n *\n * The compiled function takes `(uniforms, data, dataInt32, offset)` — note that `offset`\n * is a function argument, *not* a closure capture, so the same compiled function can be\n * reused across many slots in a shared buffer by supplying a different `offset` per call.\n *\n * Per-dialect variation lives in the inputs:\n * - `uboElements` come from the appropriate layout helper (`createUboElementsWGSL`,\n * `createUboElementsSTD40`) and encode the dialect's alignment / padding rules in\n * their offsets.\n * - `singleSettersMap` selects per-type writers (`uboSyncFunctionsWGSL` /\n * `uboSyncFunctionsSTD40`); only `mat2x2<f32>` differs between WGSL and STD40 today.\n * - `arrayGenerationFunction` selects per-dialect array stride emission.\n * @param uboElements - element layout (offsets in bytes) for each uniform in the schema\n * @param singleSettersMap - per-type write code strings keyed by uniform type\n * @param arrayGenerationFunction - emits write code for `size > 1` array uniforms\n * @internal\n */\nexport function compileBufferSync(\n uboElements: UboElement[],\n singleSettersMap: Record<UNIFORM_TYPES_SINGLE, string>,\n arrayGenerationFunction: (uboElement: UboElement, offsetToAdd: number) => string,\n): UniformsSyncCallback\n{\n const funcFragments = [`\n var v = null;\n var v2 = null;\n var t = 0;\n var index = 0;\n var name = null;\n var arrayOffset = null;\n `];\n\n let prev = 0;\n\n for (let i = 0; i < uboElements.length; i++)\n {\n const uboElement = uboElements[i];\n\n const name = uboElement.data.name;\n\n let parsed = false;\n let offset = 0;\n\n for (let j = 0; j < uniformParsers.length; j++)\n {\n const uniformParser = uniformParsers[j];\n\n if (uniformParser.test(uboElement.data))\n {\n offset = uboElement.offset / 4;\n\n funcFragments.push(\n `name = \"${name}\";`,\n `offset += ${offset - prev};`,\n uniformParsers[j].ubo);\n parsed = true;\n\n break;\n }\n }\n\n if (!parsed)\n {\n if (uboElement.data.size > 1)\n {\n offset = uboElement.offset / 4;\n\n funcFragments.push(arrayGenerationFunction(uboElement, offset - prev));\n }\n else\n {\n const template = singleSettersMap[uboElement.data.type as UNIFORM_TYPES_SINGLE];\n\n offset = uboElement.offset / 4;\n\n funcFragments.push(/* wgsl */`\n v = uv.${name};\n offset += ${offset - prev};\n ${template};\n `);\n }\n }\n\n prev = offset;\n }\n\n const fragmentSrc = funcFragments.join('\\n');\n\n // eslint-disable-next-line no-new-func\n return new Function(\n 'uv',\n 'data',\n 'dataInt32',\n 'offset',\n fragmentSrc,\n ) as UniformsSyncCallback;\n}\n","import EventEmitter from 'eventemitter3';\nimport { uid } from '../../../../utils/data/uid';\n\nimport type { BindResource } from '../../gpu/shader/BindResource';\nimport type { Buffer } from './Buffer';\n\n/**\n * A resource that can be bound to a bind group and used in a shader.\n * Whilst a buffer can be used as a resource, this class allows you to specify an offset and size of the buffer to use.\n * This is useful if you have a large buffer and only part of it is used in a shader.\n *\n * This resource, will listen for changes on the underlying buffer and emit a itself if the buffer changes shape.\n * @example\n *\n * const buffer = new Buffer({\n * data: new Float32Array(1000),\n * usage: BufferUsage.UNIFORM,\n * });\n * // Create a buffer resource that uses the first 100 bytes of a buffer\n * const bufferResource = new BufferResource({\n * buffer,\n * offset: 0,\n * size: 100,\n * });\n * @category rendering\n * @advanced\n */\nexport class BufferResource extends EventEmitter<{\n change: BindResource,\n}> implements BindResource\n{\n /**\n * emits when the underlying buffer has changed shape (i.e. resized)\n * letting the renderer know that it needs to discard the old buffer on the GPU and create a new one\n * @event change\n */\n\n /** a unique id for this uniform group used through the renderer */\n public readonly uid: number = uid('buffer');\n\n /**\n * a resource type, used to identify how to handle it when its in a bind group / shader resource\n * @internal\n */\n public readonly _resourceType = 'bufferResource';\n\n /**\n * the resource id used internally by the renderer to build bind group keys\n * @internal\n */\n public _resourceId = uid('resource');\n\n /** the underlying buffer that this resource is using */\n public buffer: Buffer;\n /** the offset of the buffer this resource is using. If not provided, then it will use the offset of the buffer. */\n public readonly offset: number;\n /** the size of the buffer this resource is using. If not provided, then it will use the size of the buffer. */\n public readonly size: number;\n /**\n * A cheeky hint to the GL renderer to let it know this is a BufferResource\n * @internal\n */\n public readonly _bufferResource = true;\n\n /**\n * Has the Buffer resource been destroyed?\n * @readonly\n */\n public destroyed = false;\n\n /**\n * Create a new Buffer Resource.\n * @param options - The options for the buffer resource\n * @param options.buffer - The underlying buffer that this resource is using\n * @param options.offset - The offset of the buffer this resource is using.\n * If not provided, then it will use the offset of the buffer.\n * @param options.size - The size of the buffer this resource is using.\n * If not provided, then it will use the size of the buffer.\n */\n constructor({ buffer, offset, size }: { buffer: Buffer; offset?: number; size?: number; })\n {\n super();\n\n this.buffer = buffer;\n this.offset = offset | 0;\n this.size = size;\n\n this.buffer.on('change', this.onBufferChange, this);\n }\n\n /**\n * The GC tracks the underlying buffer, not this resource — a GC stamp here (see\n * BindGroup._touch) must land on the buffer, or the GC collects it while cached\n * bind groups still reference it.\n * @internal\n */\n get _gcLastUsed(): number\n {\n return this.buffer?._gcLastUsed ?? -1;\n }\n\n set _gcLastUsed(value: number)\n {\n if (this.buffer) this.buffer._gcLastUsed = value;\n }\n\n protected onBufferChange(): void\n {\n this._resourceId = uid('resource');\n\n this.emit('change', this);\n }\n\n /**\n * Destroys this resource. Make sure the underlying buffer is not used anywhere else\n * if you want to destroy it as well, or code will explode\n * @param destroyBuffer - Should the underlying buffer be destroyed as well?\n */\n public destroy(destroyBuffer = false): void\n {\n this.destroyed = true;\n\n if (destroyBuffer)\n {\n this.buffer.destroy();\n }\n\n this.emit('change', this);\n\n this.buffer = null;\n this.removeAllListeners();\n }\n}\n","import { unsafeEvalSupported } from '../../../../utils/browser/unsafeEvalSupported';\nimport { Buffer } from '../buffer/Buffer';\nimport { BufferUsage } from '../buffer/const';\n\nimport type { System } from '../system/System';\nimport type { UboElement, UboLayout, UniformData, UniformsSyncCallback } from './types';\nimport type { UniformGroup } from './UniformGroup';\n\n/** @internal */\nexport interface UboAdaptor\n{\n createUboElements: (uniformData: UniformData[]) => UboLayout;\n generateUboSync: (uboElements: UboElement[]) => UniformsSyncCallback;\n}\n\n/**\n * System plugin to the renderer to manage uniform buffers.\n * @category rendering\n * @advanced\n */\nexport class UboSystem implements System\n{\n /** Cache of uniform buffer layouts and sync functions, so we don't have to re-create them */\n private _syncFunctionHash: Record<string, {\n layout: UboLayout,\n syncFunction: (uniforms: Record<string, any>, data: Float32Array, dataInt32: Int32Array, offset: number) => void\n }> = Object.create(null);\n\n private readonly _adaptor: UboAdaptor;\n\n constructor(adaptor: UboAdaptor)\n {\n this._adaptor = adaptor;\n\n // Validation check that this environment support `new Function`\n this._systemCheck();\n }\n\n /**\n * Overridable function by `pixi.js/unsafe-eval` to silence\n * throwing an error if platform doesn't support unsafe-evals.\n * @private\n */\n private _systemCheck(): void\n {\n if (!unsafeEvalSupported())\n {\n throw new Error('Current environment does not allow unsafe-eval, '\n + 'please use pixi.js/unsafe-eval module to enable support.');\n }\n }\n\n public ensureUniformGroup(uniformGroup: UniformGroup): void\n {\n const uniformData = this.getUniformGroupData(uniformGroup);\n\n uniformGroup.buffer ||= new Buffer({\n data: new Float32Array(uniformData.layout.size / 4),\n usage: BufferUsage.UNIFORM | BufferUsage.COPY_DST,\n });\n }\n\n public getUniformGroupData(uniformGroup: UniformGroup)\n {\n return this._syncFunctionHash[uniformGroup._signature] || this._initUniformGroup(uniformGroup);\n }\n\n private _initUniformGroup(uniformGroup: UniformGroup)\n {\n const uniformGroupSignature = uniformGroup._signature;\n\n let uniformData = this._syncFunctionHash[uniformGroupSignature];\n\n if (!uniformData)\n {\n const elements = Object.keys(uniformGroup.uniformStructures).map((i) => uniformGroup.uniformStructures[i]);\n\n const layout = this._adaptor.createUboElements(elements);\n\n const syncFunction = this._generateUboSync(layout.uboElements);\n\n uniformData = this._syncFunctionHash[uniformGroupSignature] = {\n layout,\n syncFunction\n };\n }\n\n return this._syncFunctionHash[uniformGroupSignature];\n }\n\n private _generateUboSync(\n uboElements: UboElement[],\n ): UniformsSyncCallback\n {\n return this._adaptor.generateUboSync(uboElements);\n }\n\n public syncUniformGroup(uniformGroup: UniformGroup, data?: Float32Array, offset?: number): boolean\n {\n const uniformGroupData = this.getUniformGroupData(uniformGroup);\n\n uniformGroup.buffer ||= new Buffer({\n data: new Float32Array(uniformGroupData.layout.size / 4),\n usage: BufferUsage.UNIFORM | BufferUsage.COPY_DST,\n });\n\n let dataInt32: Int32Array = null;\n\n if (!data)\n {\n data = uniformGroup.buffer.data as Float32Array;\n dataInt32 = uniformGroup.buffer.dataInt32;\n }\n offset ||= 0;\n\n uniformGroupData.syncFunction(uniformGroup.uniforms, data, dataInt32, offset);\n\n return true;\n }\n\n public updateUniformGroup(uniformGroup: UniformGroup): boolean\n {\n if (uniformGroup.isStatic && !uniformGroup._dirtyId) return false;\n uniformGroup._dirtyId = 0;\n\n const synced = this.syncUniformGroup(uniformGroup);\n\n uniformGroup.buffer.update();\n\n return synced;\n }\n\n public destroy(): void\n {\n this._syncFunctionHash = null;\n }\n}\n","import type { Rectangle } from '../../../../../maths/shapes/Rectangle';\n\n/**\n * Splits a linear texel range of a row-major texture into at most three rectangles: the partial\n * first row, the whole rows in between, and the partial last row. Each rectangle is contiguous in\n * the source data, so the uploader copies it straight from the flat array without row-length\n * unpack state. That keeps the split valid on WebGL1, WebGL2 and WebGPU.\n *\n * The function clamps the range to the texture, so `end = Infinity` runs to the last texel.\n * @param start - index of the first texel in the range\n * @param end - index one past the last texel in the range (exclusive, like `TypedArray.subarray`)\n * @param width - texture width in texels\n * @param height - texture height in texels\n * @param out - at least three rectangles to write into\n * @returns the number of rectangles written to `out` (0 to 3)\n * @internal\n */\nexport function getTexelRangeRects(start: number, end: number, width: number, height: number, out: Rectangle[]): number\n{\n start = Math.max(0, start);\n end = Math.min(end, width * height);\n\n if (start >= end) return 0;\n\n const firstRow = Math.floor(start / width);\n const firstX = start - (firstRow * width);\n // end is exclusive, so lastRow holds lastX texels of the range\n const lastRow = Math.floor(end / width);\n const lastX = end - (lastRow * width);\n\n if (firstRow === lastRow)\n {\n out[0].set(firstX, firstRow, lastX - firstX, 1);\n\n return 1;\n }\n\n let count = 0;\n let firstFullRow = firstRow;\n\n if (firstX > 0)\n {\n out[count++].set(firstX, firstRow, width - firstX, 1);\n firstFullRow++;\n }\n\n if (lastRow > firstFullRow)\n {\n out[count++].set(0, firstFullRow, width, lastRow - firstFullRow);\n }\n\n if (lastX > 0)\n {\n out[count++].set(0, lastRow, lastX, 1);\n }\n\n return count;\n}\n"],"names":[],"mappings":"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","ignoreList":[0,1,2,3,4,5,6,7,8]}
|
package/.next/server/chunks/ssr/node_modules_pixi_js_lib_rendering_renderers_10vpvx1o7svnk._.js
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
(()=>{"use strict";module.exports=[87069,43399,a=>{let b;var c=a.i(98063),d=a.i(58422),e=a.i(93469);function f(a){let b=d.f.get().createCanvas(6,1),c=b.getContext("2d");return c.fillStyle=a,c.fillRect(0,0,6,1),b}function g(){if(void 0!==b)return b;try{let a=f("#ff00ff"),c=f("#ffff00"),e=d.f.get().createCanvas(6,1).getContext("2d");e.globalCompositeOperation="multiply",e.drawImage(a,0,0),e.drawImage(c,2,0);let g=e.getImageData(2,0,1,1);if(g){let a=g.data;b=255===a[0]&&0===a[1]&&0===a[2]}else b=!1}catch(a){b=!1}return b}a.s(["f",0,g],43399);let h={canvas:null,convertTintToImage:!1,cacheStepsPerColorChannel:8,canUseMultiply:g(),tintMethod:null,_canvasSourceCache:new WeakMap,_unpremultipliedCache:new WeakMap,getCanvasSource:a=>{let b=a.source,c=b?.resource;if(!c)return null;let e="premultiplied-alpha"===b.alphaMode,f=b.resourceWidth??b.pixelWidth,g=b.resourceHeight??b.pixelHeight,i=f!==b.pixelWidth||g!==b.pixelHeight;if(e){if((c instanceof HTMLCanvasElement||"u">typeof OffscreenCanvas&&c instanceof OffscreenCanvas)&&!i)return c;let a=h._unpremultipliedCache.get(b);if(a?.resourceId===b._resourceId)return a.canvas}if(c instanceof Uint8Array||c instanceof Uint8ClampedArray||c instanceof Int8Array||c instanceof Uint16Array||c instanceof Int16Array||c instanceof Uint32Array||c instanceof Int32Array||c instanceof Float32Array||c instanceof ArrayBuffer){let a=h._canvasSourceCache.get(b);if(a?.resourceId===b._resourceId)return a.canvas;let e=d.f.get().createCanvas(b.pixelWidth,b.pixelHeight),f=e.getContext("2d"),g=f.createImageData(b.pixelWidth,b.pixelHeight),i=g.data,j=c instanceof ArrayBuffer?new Uint8Array(c):new Uint8Array(c.buffer,c.byteOffset,c.byteLength);if("bgra8unorm"===b.format)for(let a=0;a<i.length&&a+3<j.length;a+=4)i[a]=j[a+2],i[a+1]=j[a+1],i[a+2]=j[a],i[a+3]=j[a+3];else i.set(j.subarray(0,i.length));return f.putImageData(g,0,0),h._canvasSourceCache.set(b,{canvas:e,resourceId:b._resourceId}),e}if(e){let a=d.f.get().createCanvas(b.pixelWidth,b.pixelHeight),e=a.getContext("2d",{willReadFrequently:!0});a.width=b.pixelWidth,a.height=b.pixelHeight,e.drawImage(c,0,0);let f=e.getImageData(0,0,a.width,a.height),g=f.data;for(let a=0;a<g.length;a+=4){let b=g[a+3];if(b>0){let c=255/b;g[a]=Math.min(255,g[a]*c+.5),g[a+1]=Math.min(255,g[a+1]*c+.5),g[a+2]=Math.min(255,g[a+2]*c+.5)}}return e.putImageData(f,0,0),h._unpremultipliedCache.set(b,{canvas:a,resourceId:b._resourceId}),a}if(i){let a=h._canvasSourceCache.get(b);if(a?.resourceId===b._resourceId)return a.canvas;let e=d.f.get().createCanvas(b.pixelWidth,b.pixelHeight),f=e.getContext("2d");return e.width=b.pixelWidth,e.height=b.pixelHeight,f.drawImage(c,0,0),h._canvasSourceCache.set(b,{canvas:e,resourceId:b._resourceId}),e}return c},getTintedCanvas:(a,b)=>{let e=a.texture,f=c.f.shared.setValue(b).toHex(),g=e.tintCache||(e.tintCache={}),i=g[f],j=e.source._resourceId;if(i?.tintId===j)return i;let k=i&&"getContext"in i?i:d.f.get().createCanvas();if(h.tintMethod(e,b,k),k.tintId=j,h.convertTintToImage&&void 0!==k.toDataURL){let a=d.f.get().createImage();a.src=k.toDataURL(),a.tintId=j,g[f]=a}else g[f]=k;return g[f]},getTintedPattern:(a,b)=>{let e=c.f.shared.setValue(b).toHex(),f=a.patternCache||(a.patternCache={}),g=a.source._resourceId,i=f[e];return i?.tintId===g||(h.canvas||(h.canvas=d.f.get().createCanvas()),h.tintMethod(a,b,h.canvas),(i=h.canvas.getContext("2d").createPattern(h.canvas,"repeat")).tintId=g,f[e]=i),i},applyPatternTransform:(a,b,c=!0)=>{if(!b||!a.setTransform)return;let d=globalThis.DOMMatrix;if(!d)return;let e=new d([b.a,b.b,b.c,b.d,b.tx,b.ty]);a.setTransform(c?e.inverse():e)},tintWithMultiply:(a,b,d)=>{let f=d.getContext("2d"),g=a.frame.clone(),i=a.source._resolution??a.source.resolution??1,j=a.rotate;g.x*=i,g.y*=i,g.width*=i,g.height*=i;let k=e.f.isVertical(j),l=k?g.height:g.width,m=k?g.width:g.height;d.width=Math.ceil(l),d.height=Math.ceil(m),f.save(),0xffffff!==b&&(f.fillStyle=c.f.shared.setValue(b).toHex(),f.fillRect(0,0,l,m),f.globalCompositeOperation="multiply");let n=h.getCanvasSource(a);n&&(j&&h._applyInverseRotation(f,j,g.width,g.height),f.drawImage(n,g.x,g.y,g.width,g.height,0,0,g.width,g.height),0xffffff!==b&&(f.globalCompositeOperation="destination-atop",f.drawImage(n,g.x,g.y,g.width,g.height,0,0,g.width,g.height))),f.restore()},tintWithOverlay:(a,b,d)=>{let f=d.getContext("2d"),g=a.frame.clone(),i=a.source._resolution??a.source.resolution??1,j=a.rotate;g.x*=i,g.y*=i,g.width*=i,g.height*=i;let k=e.f.isVertical(j),l=k?g.height:g.width,m=k?g.width:g.height;d.width=Math.ceil(l),d.height=Math.ceil(m),f.save(),f.globalCompositeOperation="copy",f.fillStyle=c.f.shared.setValue(b).toHex(),f.fillRect(0,0,l,m),f.globalCompositeOperation="destination-atop";let n=h.getCanvasSource(a);n&&(j&&h._applyInverseRotation(f,j,g.width,g.height),f.drawImage(n,g.x,g.y,g.width,g.height,0,0,g.width,g.height)),f.restore()},tintWithPerPixel:(a,b,c)=>{let d=c.getContext("2d"),f=a.frame.clone(),g=a.source._resolution??a.source.resolution??1,i=a.rotate;f.x*=g,f.y*=g,f.width*=g,f.height*=g;let j=e.f.isVertical(i),k=j?f.height:f.width,l=j?f.width:f.height;c.width=Math.ceil(k),c.height=Math.ceil(l),d.save(),d.globalCompositeOperation="copy";let m=h.getCanvasSource(a);if(!m)return void d.restore();i&&h._applyInverseRotation(d,i,f.width,f.height),d.drawImage(m,f.x,f.y,f.width,f.height,0,0,f.width,f.height),d.restore();let n=b>>16&255,o=b>>8&255,p=255&b,q=d.getImageData(0,0,k,l),r=q.data;for(let a=0;a<r.length;a+=4)r[a]=r[a]*n/255,r[a+1]=r[a+1]*o/255,r[a+2]=r[a+2]*p/255;d.putImageData(q,0,0)},_applyInverseRotation:(a,b,c,d)=>{let f=e.f.inv(b),g=e.f.uX(f),h=e.f.uY(f),i=e.f.vX(f),j=e.f.vY(f),k=-Math.min(0,g*c,i*d,g*c+i*d),l=-Math.min(0,h*c,j*d,h*c+j*d);a.transform(g,h,i,j,k,l)}};h.tintMethod=h.canUseMultiply?h.tintWithMultiply:h.tintWithPerPixel,a.s(["f",0,h],87069)},19548,a=>{var b=a.i(44373),c=a.i(31394);class d extends c.f{constructor(a){super(a),this.uploadMethodId="image",this.autoGarbageCollect=!0}static test(a){return globalThis.HTMLImageElement&&a instanceof HTMLImageElement||"u">typeof ImageBitmap&&a instanceof ImageBitmap||globalThis.VideoFrame&&a instanceof VideoFrame}}d.extension=b.x.TextureSource,a.s(["f",0,d])}]})();
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=node_modules_pixi_js_lib_rendering_renderers_10vpvx1o7svnk._.js.map
|
package/.next/server/chunks/ssr/node_modules_pixi_js_lib_rendering_renderers_10vpvx1o7svnk._.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../node_modules/pixi.js/src/rendering/renderers/canvas/utils/canUseNewCanvasBlendModes.ts","../../../../node_modules/pixi.js/src/rendering/renderers/canvas/utils/canvasUtils.ts","../../../../node_modules/pixi.js/src/rendering/renderers/shared/texture/sources/ImageSource.ts"],"sourcesContent":["import { DOMAdapter } from '../../../../environment/adapter';\n\nimport type { ICanvas } from '../../../../environment/canvas/ICanvas';\n\nlet canUseNewCanvasBlendModesValue: boolean | undefined;\n\nfunction createColoredCanvas(color: string): ICanvas\n{\n const canvas = DOMAdapter.get().createCanvas(6, 1);\n const context = canvas.getContext('2d');\n\n context.fillStyle = color;\n context.fillRect(0, 0, 6, 1);\n\n return canvas;\n}\n\n/**\n * Checks whether advanced Canvas blend modes are supported.\n * @returns True if advanced blend modes are available.\n * @internal\n */\nexport function canUseNewCanvasBlendModes(): boolean\n{\n if (canUseNewCanvasBlendModesValue !== undefined)\n {\n return canUseNewCanvasBlendModesValue;\n }\n\n try\n {\n const magenta = createColoredCanvas('#ff00ff');\n const yellow = createColoredCanvas('#ffff00');\n\n const canvas = DOMAdapter.get().createCanvas(6, 1);\n const context = canvas.getContext('2d');\n\n context.globalCompositeOperation = 'multiply';\n context.drawImage(magenta as unknown as CanvasImageSource, 0, 0);\n context.drawImage(yellow as unknown as CanvasImageSource, 2, 0);\n\n const imageData = context.getImageData(2, 0, 1, 1);\n\n if (!imageData)\n {\n canUseNewCanvasBlendModesValue = false;\n }\n else\n {\n const data = imageData.data;\n\n canUseNewCanvasBlendModesValue = (data[0] === 255 && data[1] === 0 && data[2] === 0);\n }\n }\n catch (_error)\n {\n canUseNewCanvasBlendModesValue = false;\n }\n\n return canUseNewCanvasBlendModesValue;\n}\n","import { Color } from '../../../../color/Color';\nimport { DOMAdapter } from '../../../../environment/adapter';\nimport { groupD8 } from '../../../../maths/matrix/groupD8';\nimport { canUseNewCanvasBlendModes } from './canUseNewCanvasBlendModes';\n\nimport type { ICanvas } from '../../../../environment/canvas/ICanvas';\nimport type { ICanvasRenderingContext2D } from '../../../../environment/canvas/ICanvasRenderingContext2D';\nimport type { ImageLike } from '../../../../environment/ImageLike';\nimport type { TextureSource } from '../../shared/texture/sources/TextureSource';\nimport type { Texture } from '../../shared/texture/Texture';\n\ntype TintCache = Record<string, (ICanvas & { tintId?: number }) | (ImageLike & { tintId?: number })>;\ntype CanvasSourceCache = {\n canvas: ICanvas;\n resourceId: number;\n};\n\n/**\n * Canvas helper utilities for tinting and pattern generation.\n * @internal\n */\nexport const canvasUtils = {\n canvas: null as ICanvas | null,\n convertTintToImage: false,\n cacheStepsPerColorChannel: 8,\n canUseMultiply: canUseNewCanvasBlendModes(),\n tintMethod: null as (texture: Texture, color: number, canvas: ICanvas) => void,\n _canvasSourceCache: new WeakMap<TextureSource, CanvasSourceCache>(),\n _unpremultipliedCache: new WeakMap<TextureSource, CanvasSourceCache>(),\n getCanvasSource: (texture: Texture): CanvasImageSource | null =>\n {\n const source = texture.source;\n const resource = source?.resource as unknown;\n\n if (!resource)\n {\n return null;\n }\n\n const isPMA = source.alphaMode === 'premultiplied-alpha';\n\n const resourceWidth = source.resourceWidth ?? source.pixelWidth;\n const resourceHeight = source.resourceHeight ?? source.pixelHeight;\n const needsResize = resourceWidth !== source.pixelWidth || resourceHeight !== source.pixelHeight;\n\n if (isPMA)\n {\n // If the resource is a canvas, we can assume it's already in a format that the context handles correctly\n if (resource instanceof HTMLCanvasElement\n || (typeof OffscreenCanvas !== 'undefined' && resource instanceof OffscreenCanvas))\n {\n if (!needsResize)\n {\n return resource as CanvasImageSource;\n }\n }\n\n const cached = canvasUtils._unpremultipliedCache.get(source);\n\n if (cached?.resourceId === source._resourceId)\n {\n return cached.canvas as unknown as CanvasImageSource;\n }\n }\n\n if (resource instanceof Uint8Array\n || resource instanceof Uint8ClampedArray\n || resource instanceof Int8Array\n || resource instanceof Uint16Array\n || resource instanceof Int16Array\n || resource instanceof Uint32Array\n || resource instanceof Int32Array\n || resource instanceof Float32Array\n || resource instanceof ArrayBuffer)\n {\n const cached = canvasUtils._canvasSourceCache.get(source);\n\n if (cached?.resourceId === source._resourceId)\n {\n return cached.canvas as unknown as CanvasImageSource;\n }\n\n const canvas = DOMAdapter.get().createCanvas(source.pixelWidth, source.pixelHeight);\n const context = canvas.getContext('2d');\n const imageData = context.createImageData(source.pixelWidth, source.pixelHeight);\n const data = imageData.data;\n\n const bytes = resource instanceof ArrayBuffer\n ? new Uint8Array(resource)\n : new Uint8Array(resource.buffer, resource.byteOffset, resource.byteLength);\n\n if (source.format === 'bgra8unorm')\n {\n for (let i = 0; i < data.length && i + 3 < bytes.length; i += 4)\n {\n data[i] = bytes[i + 2];\n data[i + 1] = bytes[i + 1];\n data[i + 2] = bytes[i];\n data[i + 3] = bytes[i + 3];\n }\n }\n else\n {\n data.set(bytes.subarray(0, data.length));\n }\n\n context.putImageData(imageData, 0, 0);\n\n canvasUtils._canvasSourceCache.set(source, { canvas, resourceId: source._resourceId });\n\n return canvas as unknown as CanvasImageSource;\n }\n\n if (isPMA)\n {\n const canvas = DOMAdapter.get().createCanvas(source.pixelWidth, source.pixelHeight);\n const context = canvas.getContext('2d', { willReadFrequently: true });\n\n canvas.width = source.pixelWidth;\n canvas.height = source.pixelHeight;\n\n context.drawImage(resource as CanvasImageSource, 0, 0);\n\n const imageData = context.getImageData(0, 0, canvas.width, canvas.height);\n const data = imageData.data;\n\n for (let i = 0; i < data.length; i += 4)\n {\n const a = data[i + 3];\n\n if (a > 0)\n {\n const alphaInv = 255 / a;\n\n data[i] = Math.min(255, (data[i] * alphaInv) + 0.5);\n data[i + 1] = Math.min(255, (data[i + 1] * alphaInv) + 0.5);\n data[i + 2] = Math.min(255, (data[i + 2] * alphaInv) + 0.5);\n }\n }\n\n context.putImageData(imageData, 0, 0);\n\n canvasUtils._unpremultipliedCache.set(source, { canvas, resourceId: source._resourceId });\n\n return canvas as unknown as CanvasImageSource;\n }\n\n if (needsResize)\n {\n const cached = canvasUtils._canvasSourceCache.get(source);\n\n if (cached?.resourceId === source._resourceId)\n {\n return cached.canvas as unknown as CanvasImageSource;\n }\n\n const canvas = DOMAdapter.get().createCanvas(source.pixelWidth, source.pixelHeight);\n const context = canvas.getContext('2d');\n\n canvas.width = source.pixelWidth;\n canvas.height = source.pixelHeight;\n\n context.drawImage(resource as CanvasImageSource, 0, 0);\n\n canvasUtils._canvasSourceCache.set(source, { canvas, resourceId: source._resourceId });\n\n return canvas as unknown as CanvasImageSource;\n }\n\n return resource as CanvasImageSource;\n },\n\n getTintedCanvas: (sprite: { texture: Texture }, color: number): ICanvas | ImageLike =>\n {\n const texture = sprite.texture;\n const stringColor = Color.shared.setValue(color).toHex();\n const cache = (texture as any).tintCache as TintCache || ((texture as any).tintCache = {});\n\n const cachedCanvas = cache[stringColor];\n const resourceId = texture.source._resourceId;\n\n if (cachedCanvas?.tintId === resourceId)\n {\n return cachedCanvas;\n }\n\n const canvas = (cachedCanvas && 'getContext' in cachedCanvas)\n ? (cachedCanvas as ICanvas)\n : DOMAdapter.get().createCanvas();\n\n canvasUtils.tintMethod(texture, color, canvas);\n\n (canvas as any).tintId = resourceId;\n\n if (canvasUtils.convertTintToImage && canvas.toDataURL !== undefined)\n {\n const tintImage = DOMAdapter.get().createImage();\n\n tintImage.src = canvas.toDataURL();\n (tintImage as any).tintId = resourceId;\n\n cache[stringColor] = tintImage as any;\n }\n else\n {\n cache[stringColor] = canvas;\n }\n\n return cache[stringColor];\n },\n\n getTintedPattern: (texture: Texture, color: number): CanvasPattern =>\n {\n const stringColor = Color.shared.setValue(color).toHex();\n const cache = (texture as any).patternCache as Record<string, CanvasPattern & { tintId?: number }>\n || ((texture as any).patternCache = {});\n const resourceId = texture.source._resourceId;\n\n let pattern = cache[stringColor];\n\n if (pattern?.tintId === resourceId)\n {\n return pattern;\n }\n\n if (!canvasUtils.canvas)\n {\n canvasUtils.canvas = DOMAdapter.get().createCanvas();\n }\n\n // Always use tintMethod to handle frame cropping correctly (matching v7 approach)\n canvasUtils.tintMethod(texture, color, canvasUtils.canvas);\n\n const context = canvasUtils.canvas.getContext('2d');\n\n pattern = context.createPattern(canvasUtils.canvas, 'repeat');\n\n pattern.tintId = resourceId;\n cache[stringColor] = pattern;\n\n return pattern;\n },\n\n /**\n * Applies a transform to a CanvasPattern.\n * @param pattern - The pattern to apply the transform to.\n * @param matrix - The matrix to apply.\n * @param matrix.a\n * @param matrix.b\n * @param matrix.c\n * @param matrix.d\n * @param matrix.tx\n * @param matrix.ty\n * @param invert\n */\n applyPatternTransform: (\n pattern: CanvasPattern,\n matrix: {\n a: number,\n b: number,\n c: number,\n d: number,\n tx: number,\n ty: number\n },\n invert = true\n ): void =>\n {\n if (!matrix) return;\n\n const patternAny = pattern as unknown as { setTransform?: (value: DOMMatrix) => void };\n\n if (!patternAny.setTransform) return;\n\n const DOMMatrixCtor = (globalThis as { DOMMatrix?: typeof DOMMatrix }).DOMMatrix;\n\n if (!DOMMatrixCtor) return;\n\n const domMatrix = new DOMMatrixCtor([matrix.a, matrix.b, matrix.c, matrix.d, matrix.tx, matrix.ty]);\n\n patternAny.setTransform(invert ? domMatrix.inverse() : domMatrix);\n },\n\n tintWithMultiply: (texture: Texture, color: number, canvas: ICanvas): void =>\n {\n const context = canvas.getContext('2d');\n const crop = texture.frame.clone();\n const resolution = texture.source._resolution ?? texture.source.resolution ?? 1;\n const rotate = texture.rotate;\n\n crop.x *= resolution;\n crop.y *= resolution;\n crop.width *= resolution;\n crop.height *= resolution;\n\n // When texture is rotated 90° or 270°, output dimensions are swapped\n const isVertical = groupD8.isVertical(rotate);\n const outWidth = isVertical ? crop.height : crop.width;\n const outHeight = isVertical ? crop.width : crop.height;\n\n canvas.width = Math.ceil(outWidth);\n canvas.height = Math.ceil(outHeight);\n\n context.save();\n\n // A white tint is a direct copy; multiplying over an opaque fill lightens translucent pixels.\n if (color !== 0xFFFFFF)\n {\n context.fillStyle = Color.shared.setValue(color).toHex();\n context.fillRect(0, 0, outWidth, outHeight);\n context.globalCompositeOperation = 'multiply';\n }\n\n const source = canvasUtils.getCanvasSource(texture);\n\n if (!source)\n {\n context.restore();\n\n return;\n }\n\n // Apply inverse rotation to compensate for spritesheet packing\n if (rotate)\n {\n canvasUtils._applyInverseRotation(context, rotate, crop.width, crop.height);\n }\n\n context.drawImage(\n source,\n crop.x,\n crop.y,\n crop.width,\n crop.height,\n 0,\n 0,\n crop.width,\n crop.height\n );\n\n if (color !== 0xFFFFFF)\n {\n context.globalCompositeOperation = 'destination-atop';\n context.drawImage(\n source,\n crop.x,\n crop.y,\n crop.width,\n crop.height,\n 0,\n 0,\n crop.width,\n crop.height\n );\n }\n\n context.restore();\n },\n\n tintWithOverlay: (texture: Texture, color: number, canvas: ICanvas): void =>\n {\n const context = canvas.getContext('2d');\n const crop = texture.frame.clone();\n const resolution = texture.source._resolution ?? texture.source.resolution ?? 1;\n const rotate = texture.rotate;\n\n crop.x *= resolution;\n crop.y *= resolution;\n crop.width *= resolution;\n crop.height *= resolution;\n\n // When texture is rotated 90° or 270°, output dimensions are swapped\n const isVertical = groupD8.isVertical(rotate);\n const outWidth = isVertical ? crop.height : crop.width;\n const outHeight = isVertical ? crop.width : crop.height;\n\n canvas.width = Math.ceil(outWidth);\n canvas.height = Math.ceil(outHeight);\n\n context.save();\n context.globalCompositeOperation = 'copy';\n context.fillStyle = Color.shared.setValue(color).toHex();\n context.fillRect(0, 0, outWidth, outHeight);\n\n context.globalCompositeOperation = 'destination-atop';\n const source = canvasUtils.getCanvasSource(texture);\n\n if (!source)\n {\n context.restore();\n\n return;\n }\n\n // Apply inverse rotation to compensate for spritesheet packing\n if (rotate)\n {\n canvasUtils._applyInverseRotation(context, rotate, crop.width, crop.height);\n }\n\n context.drawImage(\n source,\n crop.x,\n crop.y,\n crop.width,\n crop.height,\n 0,\n 0,\n crop.width,\n crop.height\n );\n context.restore();\n },\n\n tintWithPerPixel: (texture: Texture, color: number, canvas: ICanvas): void =>\n {\n const context = canvas.getContext('2d');\n const crop = texture.frame.clone();\n const resolution = texture.source._resolution ?? texture.source.resolution ?? 1;\n const rotate = texture.rotate;\n\n crop.x *= resolution;\n crop.y *= resolution;\n crop.width *= resolution;\n crop.height *= resolution;\n\n // When texture is rotated 90° or 270°, output dimensions are swapped\n const isVertical = groupD8.isVertical(rotate);\n const outWidth = isVertical ? crop.height : crop.width;\n const outHeight = isVertical ? crop.width : crop.height;\n\n canvas.width = Math.ceil(outWidth);\n canvas.height = Math.ceil(outHeight);\n\n context.save();\n context.globalCompositeOperation = 'copy';\n const source = canvasUtils.getCanvasSource(texture);\n\n if (!source)\n {\n context.restore();\n\n return;\n }\n\n // Apply inverse rotation to compensate for spritesheet packing\n if (rotate)\n {\n canvasUtils._applyInverseRotation(context, rotate, crop.width, crop.height);\n }\n\n context.drawImage(\n source,\n crop.x,\n crop.y,\n crop.width,\n crop.height,\n 0,\n 0,\n crop.width,\n crop.height\n );\n\n context.restore();\n\n const r = (color >> 16) & 0xFF;\n const g = (color >> 8) & 0xFF;\n const b = color & 0xFF;\n\n const imageData = context.getImageData(0, 0, outWidth, outHeight);\n const data = imageData.data;\n\n for (let i = 0; i < data.length; i += 4)\n {\n data[i] = (data[i] * r) / 255;\n data[i + 1] = (data[i + 1] * g) / 255;\n data[i + 2] = (data[i + 2] * b) / 255;\n }\n\n context.putImageData(imageData, 0, 0);\n },\n\n /**\n * Applies inverse rotation transform to context for texture packer rotation compensation.\n * Supports all 16 groupD8 symmetries (rotations and reflections).\n * @param context - Canvas 2D context\n * @param rotate - The groupD8 rotation value\n * @param srcWidth - Source crop width (before rotation)\n * @param srcHeight - Source crop height (before rotation)\n */\n _applyInverseRotation: (\n context: ICanvasRenderingContext2D,\n rotate: number,\n srcWidth: number,\n srcHeight: number\n ): void =>\n {\n // Get inverse rotation matrix components using groupD8 utilities\n const inv = groupD8.inv(rotate);\n const a = groupD8.uX(inv);\n const b = groupD8.uY(inv);\n const c = groupD8.vX(inv);\n const d = groupD8.vY(inv);\n\n // Calculate translation to keep content at origin after transform\n // Same approach as matrixAppendRotationInv\n const tx = -Math.min(0, a * srcWidth, c * srcHeight, (a * srcWidth) + (c * srcHeight));\n const ty = -Math.min(0, b * srcWidth, d * srcHeight, (b * srcWidth) + (d * srcHeight));\n\n context.transform(a, b, c, d, tx, ty);\n },\n};\n\ncanvasUtils.tintMethod = canvasUtils.canUseMultiply ? canvasUtils.tintWithMultiply : canvasUtils.tintWithPerPixel;\n","import { ExtensionType } from '../../../../../extensions/Extensions';\nimport { TextureSource } from './TextureSource';\n\nimport type { ICanvas } from '../../../../../environment/canvas/ICanvas';\nimport type { ExtensionMetadata } from '../../../../../extensions/Extensions';\nimport type { TextureSourceOptions } from './TextureSource';\n\n/**\n * The type of image-like resource that can be used as a texture source.\n *\n * - `ImageBitmap` is used for bitmap images.\n * - `HTMLCanvasElement` and `OffscreenCanvas` are used for canvas elements.\n * - `ICanvas` is an interface for canvas-like objects.\n * - `VideoFrame` is used for video frames.\n * - `HTMLImageElement` is used for HTML image elements.\n * - `HTMLVideoElement` is used for HTML video elements.\n * @category rendering\n * @advanced\n */\nexport type ImageResource =\nImageBitmap\n| HTMLCanvasElement\n| OffscreenCanvas\n| ICanvas\n| VideoFrame\n| HTMLImageElement\n| HTMLVideoElement;\n\n/**\n * A texture source that uses an image-like resource as its resource.\n * It can handle HTMLImageElement, ImageBitmap, VideoFrame, and HTMLVideoElement.\n * It is used for textures that can be uploaded to the GPU.\n * @category rendering\n * @advanced\n */\nexport class ImageSource extends TextureSource<ImageResource>\n{\n public static extension: ExtensionMetadata = ExtensionType.TextureSource;\n public uploadMethodId = 'image';\n\n constructor(options: TextureSourceOptions<ImageResource>)\n {\n super(options);\n\n this.autoGarbageCollect = true;\n }\n\n public static test(resource: any): resource is ImageResource\n {\n return (globalThis.HTMLImageElement && resource instanceof HTMLImageElement)\n || (typeof ImageBitmap !== 'undefined' && resource instanceof ImageBitmap)\n || (globalThis.VideoFrame && resource instanceof VideoFrame);\n }\n}\n"],"names":[],"mappings":"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","ignoreList":[0,1]}
|