@realsee/five-webgpu 1.0.0-alpha.14 → 1.0.0-alpha.15

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 (303) hide show
  1. package/_virtual/_rolldown/runtime.js +2 -2
  2. package/docs/assets/hierarchy.js +1 -1
  3. package/docs/assets/search.js +1 -1
  4. package/docs/classes/index.AdaptiveLuminancePass.html +1 -1
  5. package/docs/classes/index.EyeDomeLightingPass.html +1 -1
  6. package/docs/classes/index.Five.html +1 -1
  7. package/docs/classes/index.FivePass.html +1 -1
  8. package/docs/classes/index.FlowingFireworks3DPass.html +1 -1
  9. package/docs/classes/index.FlowingLight2DPass.html +1 -1
  10. package/docs/classes/index.FlowingLight3DPass.html +1 -1
  11. package/docs/classes/index.GaussianBlurPass.html +1 -1
  12. package/docs/classes/index.Model.html +1 -1
  13. package/docs/classes/index.ModelScene.html +1 -1
  14. package/docs/classes/index.PBMCustomNode.html +1 -1
  15. package/docs/classes/index.PBMGaussianSplattingNodeMaterial.html +1 -1
  16. package/docs/classes/index.PBMGaussianSplattingObject.html +1 -1
  17. package/docs/classes/index.PBMGaussianSplattingRenderMesh.html +1 -1
  18. package/docs/classes/index.PBMGroup.html +1 -1
  19. package/docs/classes/index.PBMMesh.html +1 -1
  20. package/docs/classes/index.PBMMeshBasicMaterial.html +1 -1
  21. package/docs/classes/index.PBMMeshBasicNodeMaterial.html +1 -1
  22. package/docs/classes/index.PBMMeshPanoOnlyMaterial.html +1 -1
  23. package/docs/classes/index.PBMMeshPanoOnlyNodeMaterial.html +1 -1
  24. package/docs/classes/index.PBMMeshPhongMaterial.html +1 -1
  25. package/docs/classes/index.PBMMeshPhongNodeMaterial.html +1 -1
  26. package/docs/classes/index.PBMMeshPhysicalMaterial.html +1 -1
  27. package/docs/classes/index.PBMMeshPhysicalNodeMaterial.html +1 -1
  28. package/docs/classes/index.PBMPanoFilter.html +1 -1
  29. package/docs/classes/index.PBMPointCloud.html +1 -1
  30. package/docs/classes/index.PBMPointCloudMaterial.html +1 -1
  31. package/docs/classes/index.PBMSkinnedMesh.html +1 -1
  32. package/docs/classes/index.PBMUpdateable.html +1 -1
  33. package/docs/classes/index.PanoCircleMesh.html +9 -5
  34. package/docs/classes/index.PanoCircleMeshCustom.html +9 -5
  35. package/docs/classes/index.PanoCircleMeshSolid.html +9 -5
  36. package/docs/classes/index.Parameter.html +1 -1
  37. package/docs/classes/index.Tile3D.html +1 -1
  38. package/docs/classes/index.TileNode.html +1 -1
  39. package/docs/classes/index.TrajectoryNode.html +1 -1
  40. package/docs/classes/index.WorkResolvedObserver.html +2 -2
  41. package/docs/hierarchy.html +1 -1
  42. package/docs/interfaces/index.AddableObject.html +1 -1
  43. package/docs/interfaces/index.EventCallback.html +1 -1
  44. package/docs/interfaces/index.IPBMMaterial.html +1 -1
  45. package/docs/interfaces/index.ImageOptions.html +1 -1
  46. package/docs/interfaces/index.IntersectMesh.html +1 -1
  47. package/docs/interfaces/index.IntersectMeshInterface.html +1 -1
  48. package/docs/interfaces/index.Intersection.html +1 -1
  49. package/docs/interfaces/index.LooseWorkObserver.html +2 -2
  50. package/docs/interfaces/index.LooseWorkPanorama.html +2 -2
  51. package/docs/interfaces/index.LooseWorkWithExtrinsics.html +1 -1
  52. package/docs/interfaces/index.ModelControllerCustomInitArgs.html +1 -1
  53. package/docs/interfaces/index.MovePanoOptions.html +1 -1
  54. package/docs/interfaces/index.PanoCircleMeshInterface.html +8 -4
  55. package/docs/interfaces/index.PanoCircleMeshOptions.html +2 -2
  56. package/docs/interfaces/index.PanoCircleMeshSolidOptions.html +2 -2
  57. package/docs/interfaces/index.PanoramaControllerCustomInitArgs.html +1 -1
  58. package/docs/interfaces/index.PanoramaLikeControllerCustomInitArgs.html +1 -1
  59. package/docs/interfaces/index.ParameterMaterialValue.html +1 -1
  60. package/docs/interfaces/index.ParameterTilesetValue.html +1 -1
  61. package/docs/interfaces/index.ParameterValue.html +1 -1
  62. package/docs/interfaces/index.Pose.html +1 -1
  63. package/docs/interfaces/index.ResolvedParameterValue.html +1 -1
  64. package/docs/interfaces/index.State.html +1 -1
  65. package/docs/interfaces/index.TextureOptions.html +1 -1
  66. package/docs/interfaces/index.TopviewControllerCustomInitArgs.html +1 -1
  67. package/docs/interfaces/index.VRPanoramaControllerCustomInitArgs.html +1 -1
  68. package/docs/interfaces/index.ViewLayer.html +1 -1
  69. package/docs/interfaces/index.WorkCubeHdrGainmapImage.html +1 -1
  70. package/docs/interfaces/index.WorkCubeImage.html +1 -1
  71. package/docs/interfaces/index.WorkImage.html +1 -1
  72. package/docs/interfaces/index.WorkObserver.html +2 -2
  73. package/docs/interfaces/index.WorkObserverJson.html +2 -2
  74. package/docs/interfaces/index.WorkPanoramaJson.html +2 -2
  75. package/docs/interfaces/index.WorkTile.html +1 -1
  76. package/docs/interfaces/index.XRPanoramaControllerCustomInitArgs.html +1 -1
  77. package/docs/types/index.ParseOptions.html +1 -1
  78. package/five/chunks/at3d.js +2 -2
  79. package/five/chunks/at3d.mjs +2 -2
  80. package/five/chunks/dome.js +2 -2
  81. package/five/chunks/dome.mjs +2 -2
  82. package/five/chunks/domez.js +2 -2
  83. package/five/chunks/domez.mjs +2 -2
  84. package/five/chunks/fbx.js +2 -2
  85. package/five/chunks/fbx.mjs +2 -2
  86. package/five/chunks/fflate.js +2 -2
  87. package/five/chunks/fflate.mjs +2 -2
  88. package/five/chunks/glTF-helpers.js +2 -2
  89. package/five/chunks/glTF-helpers.mjs +2 -2
  90. package/five/chunks/gltf.js +2 -2
  91. package/five/chunks/gltf.mjs +2 -2
  92. package/five/chunks/imageBitmap.js +2 -2
  93. package/five/chunks/imageBitmap.mjs +2 -2
  94. package/five/chunks/imageSupport.js +2 -2
  95. package/five/chunks/imageSupport.mjs +2 -2
  96. package/five/chunks/lzma.js +2 -2
  97. package/five/chunks/lzma.mjs +2 -2
  98. package/five/chunks/memoryUsage.js +2 -2
  99. package/five/chunks/memoryUsage.mjs +2 -2
  100. package/five/chunks/minimal.js +2 -2
  101. package/five/chunks/minimal.mjs +2 -2
  102. package/five/chunks/pbm.js +2 -2
  103. package/five/chunks/pbm.mjs +2 -2
  104. package/five/chunks/pbmGaussianSplattingObject.js +2 -2
  105. package/five/chunks/pbmGaussianSplattingObject.mjs +2 -2
  106. package/five/chunks/pbmMeshMaterial.js +2 -2
  107. package/five/chunks/pbmMeshMaterial.mjs +2 -2
  108. package/five/chunks/pick.js +2 -2
  109. package/five/chunks/pick.mjs +2 -2
  110. package/five/chunks/ply.js +2 -2
  111. package/five/chunks/ply.mjs +2 -2
  112. package/five/chunks/spz.js +2 -2
  113. package/five/chunks/spz.mjs +2 -2
  114. package/five/controllers/panorama.d.ts +6 -0
  115. package/five/index.js +6 -6
  116. package/five/index.mjs +6 -6
  117. package/five/meshes/panoCircleMesh.d.ts +1 -0
  118. package/five/meshes/panoCircleMeshCustom.d.ts +1 -0
  119. package/five/meshes/panoCircleMeshSolid.d.ts +1 -0
  120. package/five/meshes/panoSphereMesh.d.ts +1 -0
  121. package/five/renderer/postprocessing/passes/pass.js +2 -2
  122. package/five/renderer/postprocessing/passes/pass.mjs +2 -2
  123. package/five/renderer/tools/full-screen-quad.js +2 -2
  124. package/five/renderer/tools/full-screen-quad.mjs +2 -2
  125. package/five/texture/initTexture.d.ts +8 -0
  126. package/five/types/panoCircleMeshInterface.d.ts +6 -0
  127. package/five/utils/calculateThreeMouse.js +2 -2
  128. package/five/utils/calculateThreeMouse.mjs +2 -2
  129. package/five/utils/distance.js +2 -2
  130. package/five/utils/distance.mjs +2 -2
  131. package/five/utils/isNil.js +2 -2
  132. package/five/utils/isNil.mjs +2 -2
  133. package/five/utils/uuid.js +2 -2
  134. package/five/utils/uuid.mjs +2 -2
  135. package/five/work/looseWorkType.d.ts +2 -2
  136. package/five/work/work.d.ts +1 -1
  137. package/five/work/workJsonType.d.ts +2 -2
  138. package/gltf-loader/index.js +3 -3
  139. package/gltf-loader/index.mjs +3 -3
  140. package/line/index.js +3 -3
  141. package/line/index.mjs +3 -3
  142. package/package.json +1 -1
  143. package/plugins/BackgroundPlugin/Controller.js +2 -2
  144. package/plugins/BackgroundPlugin/Controller.mjs +2 -2
  145. package/plugins/BackgroundPlugin/index.js +2 -2
  146. package/plugins/BackgroundPlugin/index.mjs +2 -2
  147. package/plugins/BasePlugin/index.js +2 -2
  148. package/plugins/BasePlugin/index.mjs +2 -2
  149. package/plugins/CSS2DPlugin/Controller.js +2 -2
  150. package/plugins/CSS2DPlugin/Controller.mjs +2 -2
  151. package/plugins/CSS2DPlugin/index.js +2 -2
  152. package/plugins/CSS2DPlugin/index.mjs +2 -2
  153. package/plugins/CSS2DPlugin/style.css_raw.js +2 -2
  154. package/plugins/CSS2DPlugin/style.css_raw.mjs +2 -2
  155. package/plugins/CSS3DPlugin/Controller.js +2 -2
  156. package/plugins/CSS3DPlugin/Controller.mjs +2 -2
  157. package/plugins/CSS3DPlugin/index.js +2 -2
  158. package/plugins/CSS3DPlugin/index.mjs +2 -2
  159. package/plugins/CSS3DPlugin/style.css_raw.js +2 -2
  160. package/plugins/CSS3DPlugin/style.css_raw.mjs +2 -2
  161. package/plugins/FloorplanPlugin/Controller.js +2 -2
  162. package/plugins/FloorplanPlugin/Controller.mjs +2 -2
  163. package/plugins/FloorplanPlugin/index.js +2 -2
  164. package/plugins/FloorplanPlugin/index.mjs +2 -2
  165. package/plugins/FloorplanPlugin/render/assets.js +2 -2
  166. package/plugins/FloorplanPlugin/render/assets.mjs +2 -2
  167. package/plugins/FloorplanPlugin/render/index.js +2 -2
  168. package/plugins/FloorplanPlugin/render/index.mjs +2 -2
  169. package/plugins/FloorplanPlugin/render/isPointInPolygon.js +2 -2
  170. package/plugins/FloorplanPlugin/render/isPointInPolygon.mjs +2 -2
  171. package/plugins/FloorplanPlugin/render/renderFloor.js +2 -2
  172. package/plugins/FloorplanPlugin/render/renderFloor.mjs +2 -2
  173. package/plugins/FloorplanPlugin/render/roomLabelVisibility.js +2 -2
  174. package/plugins/FloorplanPlugin/render/roomLabelVisibility.mjs +2 -2
  175. package/plugins/FloorplanPlugin/render/style.css_raw.js +2 -2
  176. package/plugins/FloorplanPlugin/render/style.css_raw.mjs +2 -2
  177. package/plugins/FloorplanPlugin/utils/changeMode.js +2 -2
  178. package/plugins/FloorplanPlugin/utils/changeMode.mjs +2 -2
  179. package/plugins/FloorplanPlugin/utils/changeModelCanvasOpacity.js +2 -2
  180. package/plugins/FloorplanPlugin/utils/changeModelCanvasOpacity.mjs +2 -2
  181. package/plugins/FloorplanPlugin/utils/correctFiveState.js +2 -2
  182. package/plugins/FloorplanPlugin/utils/correctFiveState.mjs +2 -2
  183. package/plugins/FloorplanPlugin/utils/equal.js +2 -2
  184. package/plugins/FloorplanPlugin/utils/equal.mjs +2 -2
  185. package/plugins/FloorplanPlugin/utils/filter.js +2 -2
  186. package/plugins/FloorplanPlugin/utils/filter.mjs +2 -2
  187. package/plugins/FloorplanPlugin/utils/fiveModelLoad.js +2 -2
  188. package/plugins/FloorplanPlugin/utils/fiveModelLoad.mjs +2 -2
  189. package/plugins/FloorplanPlugin/utils/formatData.js +2 -2
  190. package/plugins/FloorplanPlugin/utils/formatData.mjs +2 -2
  191. package/plugins/FloorplanPlugin/utils/formatFloorplanJson.js +2 -2
  192. package/plugins/FloorplanPlugin/utils/formatFloorplanJson.mjs +2 -2
  193. package/plugins/FloorplanPlugin/utils/formatPosition.js +2 -2
  194. package/plugins/FloorplanPlugin/utils/formatPosition.mjs +2 -2
  195. package/plugins/FloorplanPlugin/utils/getDistanceFromModel.js +2 -2
  196. package/plugins/FloorplanPlugin/utils/getDistanceFromModel.mjs +2 -2
  197. package/plugins/FloorplanPlugin/utils/getPxmm.js +2 -2
  198. package/plugins/FloorplanPlugin/utils/getPxmm.mjs +2 -2
  199. package/plugins/FloorplanPlugin/utils/isTruelyObject.js +2 -2
  200. package/plugins/FloorplanPlugin/utils/isTruelyObject.mjs +2 -2
  201. package/plugins/FloorplanPlugin/utils/nearlyEqual.js +2 -2
  202. package/plugins/FloorplanPlugin/utils/nearlyEqual.mjs +2 -2
  203. package/plugins/FloorplanPlugin/utils/polylabel.js +2 -2
  204. package/plugins/FloorplanPlugin/utils/polylabel.mjs +2 -2
  205. package/plugins/FloorplanPlugin/utils/to.js +2 -2
  206. package/plugins/FloorplanPlugin/utils/to.mjs +2 -2
  207. package/plugins/GaussianSplattingEntranceAnimationPlugin/Controller.js +2 -2
  208. package/plugins/GaussianSplattingEntranceAnimationPlugin/Controller.mjs +2 -2
  209. package/plugins/GaussianSplattingEntranceAnimationPlugin/index.js +2 -2
  210. package/plugins/GaussianSplattingEntranceAnimationPlugin/index.mjs +2 -2
  211. package/plugins/Object3DHelperPlugin/Controller.js +2 -2
  212. package/plugins/Object3DHelperPlugin/Controller.mjs +2 -2
  213. package/plugins/Object3DHelperPlugin/Controllers/BaseController.js +2 -2
  214. package/plugins/Object3DHelperPlugin/Controllers/BaseController.mjs +2 -2
  215. package/plugins/Object3DHelperPlugin/Controllers/BoundingBoxController.js +2 -2
  216. package/plugins/Object3DHelperPlugin/Controllers/BoundingBoxController.mjs +2 -2
  217. package/plugins/Object3DHelperPlugin/Controllers/MoveController.js +2 -2
  218. package/plugins/Object3DHelperPlugin/Controllers/MoveController.mjs +2 -2
  219. package/plugins/Object3DHelperPlugin/Controllers/RotateController.js +2 -2
  220. package/plugins/Object3DHelperPlugin/Controllers/RotateController.mjs +2 -2
  221. package/plugins/Object3DHelperPlugin/FiveControllerWrapper.js +2 -2
  222. package/plugins/Object3DHelperPlugin/FiveControllerWrapper.mjs +2 -2
  223. package/plugins/Object3DHelperPlugin/Helper/BaseHelper.js +2 -2
  224. package/plugins/Object3DHelperPlugin/Helper/BaseHelper.mjs +2 -2
  225. package/plugins/Object3DHelperPlugin/Helper/BoundingBoxHelper.js +2 -2
  226. package/plugins/Object3DHelperPlugin/Helper/BoundingBoxHelper.mjs +2 -2
  227. package/plugins/Object3DHelperPlugin/Helper/MoveHelper.js +2 -2
  228. package/plugins/Object3DHelperPlugin/Helper/MoveHelper.mjs +2 -2
  229. package/plugins/Object3DHelperPlugin/Helper/RotateHelper.js +2 -2
  230. package/plugins/Object3DHelperPlugin/Helper/RotateHelper.mjs +2 -2
  231. package/plugins/Object3DHelperPlugin/constant.js +2 -2
  232. package/plugins/Object3DHelperPlugin/constant.mjs +2 -2
  233. package/plugins/Object3DHelperPlugin/index.js +2 -2
  234. package/plugins/Object3DHelperPlugin/index.mjs +2 -2
  235. package/plugins/Object3DHelperPlugin/utils/ArrowGroup.js +2 -2
  236. package/plugins/Object3DHelperPlugin/utils/ArrowGroup.mjs +2 -2
  237. package/plugins/Object3DHelperPlugin/utils/CenterHandle.js +2 -2
  238. package/plugins/Object3DHelperPlugin/utils/CenterHandle.mjs +2 -2
  239. package/plugins/Object3DHelperPlugin/utils/PlaneHandle.js +2 -2
  240. package/plugins/Object3DHelperPlugin/utils/PlaneHandle.mjs +2 -2
  241. package/plugins/Object3DHelperPlugin/utils/calculateScaleByCamera.js +2 -2
  242. package/plugins/Object3DHelperPlugin/utils/calculateScaleByCamera.mjs +2 -2
  243. package/plugins/Object3DHelperPlugin/utils/cameraHooks.js +2 -2
  244. package/plugins/Object3DHelperPlugin/utils/cameraHooks.mjs +2 -2
  245. package/plugins/Object3DHelperPlugin/utils/direction.js +2 -2
  246. package/plugins/Object3DHelperPlugin/utils/direction.mjs +2 -2
  247. package/plugins/Object3DHelperPlugin/utils/getMouseRaycaster.js +2 -2
  248. package/plugins/Object3DHelperPlugin/utils/getMouseRaycaster.mjs +2 -2
  249. package/plugins/Object3DHelperPlugin/utils/getOrthographicCameraDirection.js +2 -2
  250. package/plugins/Object3DHelperPlugin/utils/getOrthographicCameraDirection.mjs +2 -2
  251. package/plugins/Object3DHelperPlugin/utils/setObjectQuaternion.js +2 -2
  252. package/plugins/Object3DHelperPlugin/utils/setObjectQuaternion.mjs +2 -2
  253. package/plugins/Object3DHelperPlugin/utils/solidGuide.js +2 -2
  254. package/plugins/Object3DHelperPlugin/utils/solidGuide.mjs +2 -2
  255. package/plugins/Object3DHelperPlugin/utils/tipsDom.js +2 -2
  256. package/plugins/Object3DHelperPlugin/utils/tipsDom.mjs +2 -2
  257. package/plugins/PanoAnimePlugin/Controller.js +2 -2
  258. package/plugins/PanoAnimePlugin/Controller.mjs +2 -2
  259. package/plugins/PanoAnimePlugin/index.js +2 -2
  260. package/plugins/PanoAnimePlugin/index.mjs +2 -2
  261. package/plugins/WordPassPlugin/Controller.js +2 -2
  262. package/plugins/WordPassPlugin/Controller.mjs +2 -2
  263. package/plugins/WordPassPlugin/hersheyFont.js +2 -2
  264. package/plugins/WordPassPlugin/hersheyFont.mjs +2 -2
  265. package/plugins/WordPassPlugin/index.js +2 -2
  266. package/plugins/WordPassPlugin/index.mjs +2 -2
  267. package/plugins/WordPassPlugin/textToStrokeOrderStrokes.js +2 -2
  268. package/plugins/WordPassPlugin/textToStrokeOrderStrokes.mjs +2 -2
  269. package/plugins/WordPassPlugin/word-pass.js +3 -3
  270. package/plugins/WordPassPlugin/word-pass.mjs +3 -3
  271. package/plugins/index.js +2 -2
  272. package/plugins/index.mjs +2 -2
  273. package/plugins/thirdParty/CSS2DRenderer.js +2 -2
  274. package/plugins/thirdParty/CSS2DRenderer.mjs +2 -2
  275. package/plugins/thirdParty/CSS3DRenderer.js +2 -2
  276. package/plugins/thirdParty/CSS3DRenderer.mjs +2 -2
  277. package/plugins/thirdParty/doctorstrange-model.js +2 -2
  278. package/plugins/thirdParty/doctorstrange-model.mjs +2 -2
  279. package/plugins/thirdParty/domevents.js +2 -2
  280. package/plugins/thirdParty/domevents.mjs +2 -2
  281. package/plugins/utils/absoluteUrl.js +2 -2
  282. package/plugins/utils/absoluteUrl.mjs +2 -2
  283. package/plugins/utils/calculatePath.js +2 -2
  284. package/plugins/utils/calculatePath.mjs +2 -2
  285. package/plugins/utils/clamp.js +2 -2
  286. package/plugins/utils/clamp.mjs +2 -2
  287. package/plugins/utils/uuid.js +2 -2
  288. package/plugins/utils/uuid.mjs +2 -2
  289. package/react/index.js +2 -2
  290. package/react/index.mjs +2 -2
  291. package/sticker/index.js +3 -3
  292. package/sticker/index.mjs +3 -3
  293. package/umd/five-gltf-loader.js +3 -3
  294. package/umd/five-line.js +3 -3
  295. package/umd/five-plugins.js +4 -4
  296. package/umd/five-react.js +2 -2
  297. package/umd/five-sticker.js +3 -3
  298. package/umd/five-vfx.js +2 -2
  299. package/umd/five.js +47 -47
  300. package/vfx/index.js +2 -2
  301. package/vfx/index.mjs +2 -2
  302. package/work-downloader/index.js +2 -2
  303. package/work-downloader/index.mjs +2 -2
package/umd/five-react.js CHANGED
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * @license
3
3
  * @realsee/five-webgpu
4
- * Generated: 2026/11/3
5
- * Version: 1.0.0-alpha.14
4
+ * Generated: 2026/11/4
5
+ * Version: 1.0.0-alpha.15
6
6
  * License:
7
7
  * Realsee SDK License Agreement
8
8
 
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * @license
3
3
  * @realsee/five-webgpu
4
- * Generated: 2026/11/3
5
- * Version: 1.0.0-alpha.14
4
+ * Generated: 2026/11/4
5
+ * Version: 1.0.0-alpha.15
6
6
  * License:
7
7
  * Realsee SDK License Agreement
8
8
 
@@ -378,4 +378,4 @@ fn fs(in: VSOut) -> @location(0) vec4f {
378
378
  }`)),t.attachShader(r,n(t.FRAGMENT_SHADER,`#version 300 es
379
379
  precision mediump float;
380
380
  in vec2 uv; uniform sampler2D tex; out vec4 color;
381
- void main() { color = vec4(texture(tex, uv).rgb, 1.0); }`)),t.linkProgram(r),!t.getProgramParameter(r,t.LINK_STATUS))return null;let i=t.createTexture();return t.bindTexture(t.TEXTURE_2D,i),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),{canvas:e,gl:t,texture:i,program:r,pixels:new Uint8Array($*$*4)}}catch(e){return null}}function vr(e){var t;let{gl:n}=e;n.deleteTexture(e.texture),n.deleteProgram(e.program),(t=n.getExtension(`WEBGL_lose_context`))==null||t.loseContext()}var yr=64,br=16,xr=class{constructor(e){var t;this.debug={path:`pending`,candidate:``,locked:!1,probe:``,updateCalls:0,skipNotReady:0,blitCount:0,rvfcCount:0,fails:0,targetSize:``,lastError:``},this.mode=`unknown`,this.device=null,this.broken=!1,this.disposed=!1,this.locked=!1,this.blacklist=new Map,this.probing=!1,this.nextProbeAt=0,this.probeInterval=300,this.consecutiveFails=0,this.failingSince=0,this.frameTexture=null,this.frameReady=!1,this.heldFrame=null,this.canvas=null,this.canvasContext=null,this.gpuTexture=null,this.externalTexture=null,this.externalReady=!1,this.width=0,this.height=0,this.frameDirty=!0,this.lastVideoTime=-1,this.videoFrameCallbackId=null,this.glProbe=null,this.glProbeFailed=!1,this.gpuProbe=null,this.probeCanvas=null,this.forced=!1,this.onSourceChange=()=>{this.forced||(this.blacklist.clear(),this.locked=!1,this.debug.locked=!1,this.probeInterval=300,this.nextProbeAt=0,this.consecutiveFails=0,this.frameDirty=!0)},this.videoTexture=e,this.current=(t=er.find(hr))==null?`video`:t,this.debug.candidate=this.current,this.scheduleVideoFrameCallback();let n=this.video;typeof(n==null?void 0:n.addEventListener)==`function`&&n.addEventListener(`loadstart`,this.onSourceChange)}get video(){return this.videoTexture.image}scheduleVideoFrameCallback(){let e=this.video;this.disposed||typeof(e==null?void 0:e.requestVideoFrameCallback)!=`function`||(this.videoFrameCallbackId=e.requestVideoFrameCallback(()=>{this.videoFrameCallbackId=null,this.frameDirty=!0,this.debug.rvfcCount++,this.scheduleVideoFrameCallback()}))}get texture(){var e;if(this.broken||this.mode===`unknown`)return this.videoTexture;let t=this.mode===`webgpu`&&(this.current===`videoFrame`||this.current===`video`),n=this.externalReady?this.externalTexture:null,r=this.frameReady?this.frameTexture:null;return(e=t?n==null?r:n:r==null?n:r)==null?fr():e}update(e){if(this.debug.updateCalls++,this.disposed||this.broken||!this.resolveMode(e))return;let t=this.video;if(!(t instanceof HTMLVideoElement))return;if(t.readyState<2||t.videoWidth===0||t.videoHeight===0){this.debug.skipNotReady++;return}let n=performance.now();if(!this.locked&&!this.probing&&n>=this.nextProbeAt&&this.startProbe(),!(!this.frameDirty&&(this.debug.rvfcCount>0||t.currentTime===this.lastVideoTime)))try{this.produce(this.current,t),this.frameDirty=!1,this.lastVideoTime=t.currentTime,this.consecutiveFails=0,this.debug.blitCount++}catch(e){this.onProduceFailed(e)}}forceCandidate(e){if(e===null){this.forced=!1,this.onSourceChange();return}this.forced=!0,this.current=e,this.locked=!0,this.debug.candidate=e,this.debug.locked=!0,this.frameDirty=!0,this.releaseProbeResources()}resolveMode(e){if(this.mode!==`unknown`)return!0;let t=e==null?void 0:e.backend;if(!t)return!1;if(t.isWebGPUBackend===!0){if(!t.device)return!1;this.device=t.device,this.mode=`webgpu`}else this.mode=`webgl`;return this.debug.path=this.mode,this.ensureFrameTexture(),!0}ensureFrameTexture(){if(this.frameTexture)return;let e=this.videoTexture,t=new bn;t.colorSpace=C,t.generateMipmaps=!1,t.minFilter=e.minFilter,t.magFilter=e.magFilter,t.wrapS=e.wrapS,t.wrapT=e.wrapT,this.frameTexture=t}produce(e,t){let n=this.mode===`webgpu`;switch(e){case`videoFrame`:{let e=mr(t);if(n)try{this.blit(e,t)}finally{e.close()}else this.setFrame(e,e);break}case`video`:n?this.blit(t,t):this.setFrame(t,null);break;case`canvasFromVideoFrame`:{let e=mr(t);try{this.drawCanvas(e,t)}finally{e.close()}this.setFrame(this.canvas,null);break}case`canvasFromVideo`:this.drawCanvas(t,t),this.setFrame(this.canvas,null);break}}setFrame(e,t){this.frameTexture.setFrame(e);let n=this.heldFrame;this.heldFrame=t,n&&n!==t&&n.close(),this.frameReady=!0}drawCanvas(e,t){let n=Math.min(1,or/Math.max(t.videoWidth,t.videoHeight)),r=Math.max(1,Math.floor(t.videoWidth*n)),i=Math.max(1,Math.floor(t.videoHeight*n));if(!this.canvas&&(this.canvas=document.createElement(`canvas`),this.canvasContext=this.canvas.getContext(`2d`,{alpha:!1}),!this.canvasContext))throw Error(`canvas 2d 上下文不可用`);this.canvas.width!==r&&(this.canvas.width=r),this.canvas.height!==i&&(this.canvas.height=i),this.canvasContext.drawImage(e,0,0,r,i)}isBlacklisted(e){let t=this.blacklist.get(e);return t===void 0?!1:performance.now()>=t?(this.blacklist.delete(e),!1):!0}onProduceFailed(e){var t;let n=performance.now();if(this.consecutiveFails===0&&(this.failingSince=n),this.consecutiveFails++,this.debug.fails++,this.debug.lastError=String((t=e==null?void 0:e.message)==null?e:t),this.consecutiveFails<rr||n-this.failingSince<ir)return;console.warn(`[Five] 视频候选路径 ${this.current} 持续失败,暂时弃用`,e),this.blacklist.set(this.current,n+ar);let r=er.find(e=>hr(e)&&!this.isBlacklisted(e));this.consecutiveFails=0,r?(this.current=r,this.debug.candidate=r,this.locked=!1,this.debug.locked=!1,this.nextProbeAt=0,this.frameDirty=!0):(console.warn(`[Five] 视频所有候选路径均失败,回退为 VideoTexture 上传`),this.broken=!0,this.debug.path=`fallback`,this.releaseOutputs())}blit(e,t){this.ensureTarget(t.videoWidth,t.videoHeight);let n=this.device,{pipeline:r,bindGroupLayout:i,sampler:a}=ur(n),o=n.importExternalTexture({source:e}),s=n.createBindGroup({layout:i,entries:[{binding:0,resource:o},{binding:1,resource:a}]}),c=n.createCommandEncoder({label:`five.videoBlit`}),l=c.beginRenderPass({colorAttachments:[{view:this.gpuTexture.createView(),loadOp:`clear`,storeOp:`store`,clearValue:{r:0,g:0,b:0,a:1}}]});l.setPipeline(r),l.setBindGroup(0,s),l.draw(3),l.end(),n.queue.submit([c.finish()]),this.externalReady=!0,this.debug.targetSize=`${this.width}x${this.height}`}ensureTarget(e,t){let n=this.device,r=n.limits.maxTextureDimension2D,i=Math.min(1,r/Math.max(e,t)),a=Math.max(1,Math.floor(e*i)),o=Math.max(1,Math.floor(t*i));if(this.gpuTexture&&this.width===a&&this.height===o)return;let s=this.gpuTexture,l=n.createTexture({label:`five.videoBlit.target`,size:{width:a,height:o},format:sr,usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.RENDER_ATTACHMENT});if(this.gpuTexture=l,this.width=a,this.height=o,this.externalTexture)this.externalTexture.sourceTexture=l,this.externalTexture.image={width:a,height:o},this.externalTexture.dispose();else{let e=new Sn(l);e.colorSpace=C,e.flipY=!1,e.generateMipmaps=!1,e.minFilter=d,e.magFilter=d,e.wrapS=c,e.wrapT=c,e.image={width:a,height:o},this.externalTexture=e}s==null||s.destroy()}startProbe(){this.probing=!0,this.runProbe().catch(e=>{var t;this.debug.lastError=String((t=e==null?void 0:e.message)==null?e:t)}).finally(()=>{this.probing=!1,this.nextProbeAt=performance.now()+this.probeInterval,this.probeInterval=Math.min(this.probeInterval*1.5,5e3)})}runProbe(){return $n(this,void 0,void 0,function*(){let e=[],t=null;for(let n of er){let r=tr[n];if(this.disposed)return;if(this.isBlacklisted(n)||!hr(n)){e.push(`${r}:n/a`);continue}let i;try{i=yield this.probeCandidate(n)}catch(e){i=-1}if(e.push(`${r}:${i===null?`?`:i}`),i===null||i>=nr){t=n;break}}this.debug.probe=e.join(` `),t&&this.select(t)})}select(e){this.current=e,this.locked=!0,this.debug.candidate=e,this.debug.locked=!0,this.frameDirty=!0,this.releaseProbeResources()}probeCandidate(e){return $n(this,void 0,void 0,function*(){let t=this.video;if(!(t instanceof HTMLVideoElement)||t.readyState<2)return-1;switch(e){case`canvasFromVideoFrame`:return this.probe2d(t,!0);case`canvasFromVideo`:return this.probe2d(t,!1);default:return this.mode===`webgpu`?this.probeGPU(t,e===`videoFrame`):this.probeGL(t,e===`videoFrame`)}})}probe2d(e,t){if(!this.probeCanvas){let e=document.createElement(`canvas`);e.width=e.height=$;let t=e.getContext(`2d`,{willReadFrequently:!0});if(!t)return-1;this.probeCanvas=t}let n=t?mr(e):null;try{return this.probeCanvas.drawImage(n==null?e:n,0,0,$,$),gr(this.probeCanvas.getImageData(0,0,$,$).data)}finally{n==null||n.close()}}probeGL(e,t){!this.glProbe&&!this.glProbeFailed&&(this.glProbe=_r(),this.glProbeFailed=this.glProbe===null);let n=this.glProbe;if(!n)return null;let{gl:r}=n,i=t?mr(e):null;try{return r.getError(),r.viewport(0,0,$,$),r.bindTexture(r.TEXTURE_2D,n.texture),r.texImage2D(r.TEXTURE_2D,0,r.RGBA,r.RGBA,r.UNSIGNED_BYTE,i==null?e:i),r.getError()===r.NO_ERROR?(r.useProgram(n.program),r.drawArrays(r.TRIANGLES,0,3),r.readPixels(0,0,$,$,r.RGBA,r.UNSIGNED_BYTE,n.pixels),gr(n.pixels)):-1}finally{i==null||i.close()}}probeGPU(e,t){return $n(this,void 0,void 0,function*(){let n=this.device,{pipeline:r,bindGroupLayout:i,sampler:a}=ur(n);this.gpuProbe||(this.gpuProbe={texture:n.createTexture({label:`five.videoProbe.target`,size:{width:yr,height:br},format:sr,usage:GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.COPY_SRC}),buffer:n.createBuffer({label:`five.videoProbe.readback`,size:yr*4*br,usage:GPUBufferUsage.COPY_DST|GPUBufferUsage.MAP_READ})});let o=this.gpuProbe;n.pushErrorScope(`validation`);let s=null,c=t?mr(e):null;try{let t=n.importExternalTexture({source:c==null?e:c}),s=n.createBindGroup({layout:i,entries:[{binding:0,resource:t},{binding:1,resource:a}]}),l=n.createCommandEncoder({label:`five.videoProbe`}),u=l.beginRenderPass({colorAttachments:[{view:o.texture.createView(),loadOp:`clear`,storeOp:`store`,clearValue:{r:0,g:0,b:0,a:1}}]});u.setPipeline(r),u.setBindGroup(0,s),u.draw(3),u.end(),l.copyTextureToBuffer({texture:o.texture},{buffer:o.buffer,bytesPerRow:yr*4},{width:yr,height:br}),n.queue.submit([l.finish()])}catch(e){s=e}finally{c==null||c.close()}let l=yield n.popErrorScope();if(s||l)return-1;yield o.buffer.mapAsync(GPUMapMode.READ);let u=gr(new Uint8Array(o.buffer.getMappedRange()));return o.buffer.unmap(),u})}releaseProbeResources(){this.glProbe&&(vr(this.glProbe),this.glProbe=null),this.glProbeFailed=!1,this.probeCanvas=null,this.gpuProbe&&(this.gpuProbe.texture.destroy(),this.gpuProbe.buffer.destroy(),this.gpuProbe=null)}releaseOutputs(){var e,t,n,r;(e=this.heldFrame)==null||e.close(),this.heldFrame=null,(t=this.frameTexture)==null||t.dispose(),this.frameTexture=null,this.frameReady=!1,(n=this.externalTexture)==null||n.dispose(),this.externalTexture=null,this.externalReady=!1,(r=this.gpuTexture)==null||r.destroy(),this.gpuTexture=null,this.width=this.height=0,this.canvas=null,this.canvasContext=null}dispose(){if(this.disposed)return;this.disposed=!0;let e=this.video;this.videoFrameCallbackId!==null&&typeof(e==null?void 0:e.cancelVideoFrameCallback)==`function`&&e.cancelVideoFrameCallback(this.videoFrameCallbackId),this.videoFrameCallbackId=null,typeof(e==null?void 0:e.removeEventListener)==`function`&&e.removeEventListener(`loadstart`,this.onSourceChange),this.releaseOutputs(),this.releaseProbeResources()}},Sr=new WeakMap;function Cr(e){let t=Sr.get(e);if(!t){let n=new xr(e);t=n,Sr.set(e,n);let r=()=>{e.removeEventListener(`dispose`,r),Sr.get(e)===n&&Sr.delete(e),n.dispose()};e.addEventListener(`dispose`,r)}return t}var wr=window,Tr=wr.requestAnimationFrame||wr.mozRequestAnimationFrame||wr.webkitRequestAnimationFrame||wr.msRequestAnimationFrame||(e=>setTimeout(e,16)),Er=typeof performance<`u`&&performance.timing!==void 0?performance.timing.navigationStart:Date.now(),Dr=typeof performance<`u`?(()=>Er+performance.now()):(()=>Date.now());function Or(e,t){e.naturalWidth>0&&Tr(()=>t());let n=()=>t();return e.addEventListener(`load`,n,!1),()=>e.removeEventListener(`load`,n,!1)}function kr(e,t){let n=Dr(),r=!1,i=()=>{r=!0,t(),Dr()-n<3e3?Tr(i):r=!1},a=()=>{n=Dr(),r===!1&&i()};return e.addEventListener(`timeupdate`,a,!1),()=>{e.removeEventListener(`timeupdate`,a,!1),r=!1}}function Ar(e,t){let n=e.dispose;e.dispose=()=>{t(),n.call(e)}}e.Sticker=class extends hn{static get version(){return`1.0.0-alpha.14`}constructor(e,t,n){let r=new nn;if(super(Qn,r),this._sourceTexture=null,this._needsRender=!1,this.scale.set(e,t,1),typeof n==`string`){r.transparent=/\.png$/.test(n);let e=new Image;e.src=n,e.crossOrigin=``,n=e}if(n instanceof HTMLImageElement){let e=r.map=new Oe;e.wrapS=c,e.wrapT=c,e.minFilter=d,e.colorSpace=C,Ar(e,Or(n,()=>{e.image=n,e.needsUpdate=!0,this._needsRender=!0}))}else if(n instanceof HTMLCanvasElement)r.map=new xn(n);else if(n instanceof HTMLVideoElement){let e=r.map=new yn(n);e.wrapS=c,e.wrapT=c,e.minFilter=d,e.colorSpace=C,Ar(e,kr(n,()=>{this._needsRender=!0}));let t=Cr(e);this.onBeforeRender=e=>{t.update(e);let n=t.texture;r.map!==n&&(r.map=n)}}this._sourceTexture=r.map}get needsRender(){return this._needsRender}set needsRender(e){this._needsRender=e,e===!0&&this._sourceTexture&&(this._sourceTexture.needsUpdate=!0)}setSize(e,t){this.scale.set(e,t,1),this._needsRender=!0}setTransparent(e){this.material.transparent=e,this._needsRender=!0}locationWithIntersection(e,t=.005){let{point:n,face:r}=e;this.position.copy(n),r&&(this.position.add(r.normal.clone().setLength(t)),this.lookAt(n.clone().add(r.normal))),this._needsRender=!0}dispose(){var e;(e=this._sourceTexture)==null||e.dispose(),this.material.dispose()}}});
381
+ void main() { color = vec4(texture(tex, uv).rgb, 1.0); }`)),t.linkProgram(r),!t.getProgramParameter(r,t.LINK_STATUS))return null;let i=t.createTexture();return t.bindTexture(t.TEXTURE_2D,i),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),{canvas:e,gl:t,texture:i,program:r,pixels:new Uint8Array($*$*4)}}catch(e){return null}}function vr(e){var t;let{gl:n}=e;n.deleteTexture(e.texture),n.deleteProgram(e.program),(t=n.getExtension(`WEBGL_lose_context`))==null||t.loseContext()}var yr=64,br=16,xr=class{constructor(e){var t;this.debug={path:`pending`,candidate:``,locked:!1,probe:``,updateCalls:0,skipNotReady:0,blitCount:0,rvfcCount:0,fails:0,targetSize:``,lastError:``},this.mode=`unknown`,this.device=null,this.broken=!1,this.disposed=!1,this.locked=!1,this.blacklist=new Map,this.probing=!1,this.nextProbeAt=0,this.probeInterval=300,this.consecutiveFails=0,this.failingSince=0,this.frameTexture=null,this.frameReady=!1,this.heldFrame=null,this.canvas=null,this.canvasContext=null,this.gpuTexture=null,this.externalTexture=null,this.externalReady=!1,this.width=0,this.height=0,this.frameDirty=!0,this.lastVideoTime=-1,this.videoFrameCallbackId=null,this.glProbe=null,this.glProbeFailed=!1,this.gpuProbe=null,this.probeCanvas=null,this.forced=!1,this.onSourceChange=()=>{this.forced||(this.blacklist.clear(),this.locked=!1,this.debug.locked=!1,this.probeInterval=300,this.nextProbeAt=0,this.consecutiveFails=0,this.frameDirty=!0)},this.videoTexture=e,this.current=(t=er.find(hr))==null?`video`:t,this.debug.candidate=this.current,this.scheduleVideoFrameCallback();let n=this.video;typeof(n==null?void 0:n.addEventListener)==`function`&&n.addEventListener(`loadstart`,this.onSourceChange)}get video(){return this.videoTexture.image}scheduleVideoFrameCallback(){let e=this.video;this.disposed||typeof(e==null?void 0:e.requestVideoFrameCallback)!=`function`||(this.videoFrameCallbackId=e.requestVideoFrameCallback(()=>{this.videoFrameCallbackId=null,this.frameDirty=!0,this.debug.rvfcCount++,this.scheduleVideoFrameCallback()}))}get texture(){var e;if(this.broken||this.mode===`unknown`)return this.videoTexture;let t=this.mode===`webgpu`&&(this.current===`videoFrame`||this.current===`video`),n=this.externalReady?this.externalTexture:null,r=this.frameReady?this.frameTexture:null;return(e=t?n==null?r:n:r==null?n:r)==null?fr():e}update(e){if(this.debug.updateCalls++,this.disposed||this.broken||!this.resolveMode(e))return;let t=this.video;if(!(t instanceof HTMLVideoElement))return;if(t.readyState<2||t.videoWidth===0||t.videoHeight===0){this.debug.skipNotReady++;return}let n=performance.now();if(!this.locked&&!this.probing&&n>=this.nextProbeAt&&this.startProbe(),!(!this.frameDirty&&(this.debug.rvfcCount>0||t.currentTime===this.lastVideoTime)))try{this.produce(this.current,t),this.frameDirty=!1,this.lastVideoTime=t.currentTime,this.consecutiveFails=0,this.debug.blitCount++}catch(e){this.onProduceFailed(e)}}forceCandidate(e){if(e===null){this.forced=!1,this.onSourceChange();return}this.forced=!0,this.current=e,this.locked=!0,this.debug.candidate=e,this.debug.locked=!0,this.frameDirty=!0,this.releaseProbeResources()}resolveMode(e){if(this.mode!==`unknown`)return!0;let t=e==null?void 0:e.backend;if(!t)return!1;if(t.isWebGPUBackend===!0){if(!t.device)return!1;this.device=t.device,this.mode=`webgpu`}else this.mode=`webgl`;return this.debug.path=this.mode,this.ensureFrameTexture(),!0}ensureFrameTexture(){if(this.frameTexture)return;let e=this.videoTexture,t=new bn;t.colorSpace=C,t.generateMipmaps=!1,t.minFilter=e.minFilter,t.magFilter=e.magFilter,t.wrapS=e.wrapS,t.wrapT=e.wrapT,this.frameTexture=t}produce(e,t){let n=this.mode===`webgpu`;switch(e){case`videoFrame`:{let e=mr(t);if(n)try{this.blit(e,t)}finally{e.close()}else this.setFrame(e,e);break}case`video`:n?this.blit(t,t):this.setFrame(t,null);break;case`canvasFromVideoFrame`:{let e=mr(t);try{this.drawCanvas(e,t)}finally{e.close()}this.setFrame(this.canvas,null);break}case`canvasFromVideo`:this.drawCanvas(t,t),this.setFrame(this.canvas,null);break}}setFrame(e,t){this.frameTexture.setFrame(e);let n=this.heldFrame;this.heldFrame=t,n&&n!==t&&n.close(),this.frameReady=!0}drawCanvas(e,t){let n=Math.min(1,or/Math.max(t.videoWidth,t.videoHeight)),r=Math.max(1,Math.floor(t.videoWidth*n)),i=Math.max(1,Math.floor(t.videoHeight*n));if(!this.canvas&&(this.canvas=document.createElement(`canvas`),this.canvasContext=this.canvas.getContext(`2d`,{alpha:!1}),!this.canvasContext))throw Error(`canvas 2d 上下文不可用`);this.canvas.width!==r&&(this.canvas.width=r),this.canvas.height!==i&&(this.canvas.height=i),this.canvasContext.drawImage(e,0,0,r,i)}isBlacklisted(e){let t=this.blacklist.get(e);return t===void 0?!1:performance.now()>=t?(this.blacklist.delete(e),!1):!0}onProduceFailed(e){var t;let n=performance.now();if(this.consecutiveFails===0&&(this.failingSince=n),this.consecutiveFails++,this.debug.fails++,this.debug.lastError=String((t=e==null?void 0:e.message)==null?e:t),this.consecutiveFails<rr||n-this.failingSince<ir)return;console.warn(`[Five] 视频候选路径 ${this.current} 持续失败,暂时弃用`,e),this.blacklist.set(this.current,n+ar);let r=er.find(e=>hr(e)&&!this.isBlacklisted(e));this.consecutiveFails=0,r?(this.current=r,this.debug.candidate=r,this.locked=!1,this.debug.locked=!1,this.nextProbeAt=0,this.frameDirty=!0):(console.warn(`[Five] 视频所有候选路径均失败,回退为 VideoTexture 上传`),this.broken=!0,this.debug.path=`fallback`,this.releaseOutputs())}blit(e,t){this.ensureTarget(t.videoWidth,t.videoHeight);let n=this.device,{pipeline:r,bindGroupLayout:i,sampler:a}=ur(n),o=n.importExternalTexture({source:e}),s=n.createBindGroup({layout:i,entries:[{binding:0,resource:o},{binding:1,resource:a}]}),c=n.createCommandEncoder({label:`five.videoBlit`}),l=c.beginRenderPass({colorAttachments:[{view:this.gpuTexture.createView(),loadOp:`clear`,storeOp:`store`,clearValue:{r:0,g:0,b:0,a:1}}]});l.setPipeline(r),l.setBindGroup(0,s),l.draw(3),l.end(),n.queue.submit([c.finish()]),this.externalReady=!0,this.debug.targetSize=`${this.width}x${this.height}`}ensureTarget(e,t){let n=this.device,r=n.limits.maxTextureDimension2D,i=Math.min(1,r/Math.max(e,t)),a=Math.max(1,Math.floor(e*i)),o=Math.max(1,Math.floor(t*i));if(this.gpuTexture&&this.width===a&&this.height===o)return;let s=this.gpuTexture,l=n.createTexture({label:`five.videoBlit.target`,size:{width:a,height:o},format:sr,usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.RENDER_ATTACHMENT});if(this.gpuTexture=l,this.width=a,this.height=o,this.externalTexture)this.externalTexture.sourceTexture=l,this.externalTexture.image={width:a,height:o},this.externalTexture.dispose();else{let e=new Sn(l);e.colorSpace=C,e.flipY=!1,e.generateMipmaps=!1,e.minFilter=d,e.magFilter=d,e.wrapS=c,e.wrapT=c,e.image={width:a,height:o},this.externalTexture=e}s==null||s.destroy()}startProbe(){this.probing=!0,this.runProbe().catch(e=>{var t;this.debug.lastError=String((t=e==null?void 0:e.message)==null?e:t)}).finally(()=>{this.probing=!1,this.nextProbeAt=performance.now()+this.probeInterval,this.probeInterval=Math.min(this.probeInterval*1.5,5e3)})}runProbe(){return $n(this,void 0,void 0,function*(){let e=[],t=null;for(let n of er){let r=tr[n];if(this.disposed)return;if(this.isBlacklisted(n)||!hr(n)){e.push(`${r}:n/a`);continue}let i;try{i=yield this.probeCandidate(n)}catch(e){i=-1}if(e.push(`${r}:${i===null?`?`:i}`),i===null||i>=nr){t=n;break}}this.debug.probe=e.join(` `),t&&this.select(t)})}select(e){this.current=e,this.locked=!0,this.debug.candidate=e,this.debug.locked=!0,this.frameDirty=!0,this.releaseProbeResources()}probeCandidate(e){return $n(this,void 0,void 0,function*(){let t=this.video;if(!(t instanceof HTMLVideoElement)||t.readyState<2)return-1;switch(e){case`canvasFromVideoFrame`:return this.probe2d(t,!0);case`canvasFromVideo`:return this.probe2d(t,!1);default:return this.mode===`webgpu`?this.probeGPU(t,e===`videoFrame`):this.probeGL(t,e===`videoFrame`)}})}probe2d(e,t){if(!this.probeCanvas){let e=document.createElement(`canvas`);e.width=e.height=$;let t=e.getContext(`2d`,{willReadFrequently:!0});if(!t)return-1;this.probeCanvas=t}let n=t?mr(e):null;try{return this.probeCanvas.drawImage(n==null?e:n,0,0,$,$),gr(this.probeCanvas.getImageData(0,0,$,$).data)}finally{n==null||n.close()}}probeGL(e,t){!this.glProbe&&!this.glProbeFailed&&(this.glProbe=_r(),this.glProbeFailed=this.glProbe===null);let n=this.glProbe;if(!n)return null;let{gl:r}=n,i=t?mr(e):null;try{return r.getError(),r.viewport(0,0,$,$),r.bindTexture(r.TEXTURE_2D,n.texture),r.texImage2D(r.TEXTURE_2D,0,r.RGBA,r.RGBA,r.UNSIGNED_BYTE,i==null?e:i),r.getError()===r.NO_ERROR?(r.useProgram(n.program),r.drawArrays(r.TRIANGLES,0,3),r.readPixels(0,0,$,$,r.RGBA,r.UNSIGNED_BYTE,n.pixels),gr(n.pixels)):-1}finally{i==null||i.close()}}probeGPU(e,t){return $n(this,void 0,void 0,function*(){let n=this.device,{pipeline:r,bindGroupLayout:i,sampler:a}=ur(n);this.gpuProbe||(this.gpuProbe={texture:n.createTexture({label:`five.videoProbe.target`,size:{width:yr,height:br},format:sr,usage:GPUTextureUsage.RENDER_ATTACHMENT|GPUTextureUsage.COPY_SRC}),buffer:n.createBuffer({label:`five.videoProbe.readback`,size:yr*4*br,usage:GPUBufferUsage.COPY_DST|GPUBufferUsage.MAP_READ})});let o=this.gpuProbe;n.pushErrorScope(`validation`);let s=null,c=t?mr(e):null;try{let t=n.importExternalTexture({source:c==null?e:c}),s=n.createBindGroup({layout:i,entries:[{binding:0,resource:t},{binding:1,resource:a}]}),l=n.createCommandEncoder({label:`five.videoProbe`}),u=l.beginRenderPass({colorAttachments:[{view:o.texture.createView(),loadOp:`clear`,storeOp:`store`,clearValue:{r:0,g:0,b:0,a:1}}]});u.setPipeline(r),u.setBindGroup(0,s),u.draw(3),u.end(),l.copyTextureToBuffer({texture:o.texture},{buffer:o.buffer,bytesPerRow:yr*4},{width:yr,height:br}),n.queue.submit([l.finish()])}catch(e){s=e}finally{c==null||c.close()}let l=yield n.popErrorScope();if(s||l)return-1;yield o.buffer.mapAsync(GPUMapMode.READ);let u=gr(new Uint8Array(o.buffer.getMappedRange()));return o.buffer.unmap(),u})}releaseProbeResources(){this.glProbe&&(vr(this.glProbe),this.glProbe=null),this.glProbeFailed=!1,this.probeCanvas=null,this.gpuProbe&&(this.gpuProbe.texture.destroy(),this.gpuProbe.buffer.destroy(),this.gpuProbe=null)}releaseOutputs(){var e,t,n,r;(e=this.heldFrame)==null||e.close(),this.heldFrame=null,(t=this.frameTexture)==null||t.dispose(),this.frameTexture=null,this.frameReady=!1,(n=this.externalTexture)==null||n.dispose(),this.externalTexture=null,this.externalReady=!1,(r=this.gpuTexture)==null||r.destroy(),this.gpuTexture=null,this.width=this.height=0,this.canvas=null,this.canvasContext=null}dispose(){if(this.disposed)return;this.disposed=!0;let e=this.video;this.videoFrameCallbackId!==null&&typeof(e==null?void 0:e.cancelVideoFrameCallback)==`function`&&e.cancelVideoFrameCallback(this.videoFrameCallbackId),this.videoFrameCallbackId=null,typeof(e==null?void 0:e.removeEventListener)==`function`&&e.removeEventListener(`loadstart`,this.onSourceChange),this.releaseOutputs(),this.releaseProbeResources()}},Sr=new WeakMap;function Cr(e){let t=Sr.get(e);if(!t){let n=new xr(e);t=n,Sr.set(e,n);let r=()=>{e.removeEventListener(`dispose`,r),Sr.get(e)===n&&Sr.delete(e),n.dispose()};e.addEventListener(`dispose`,r)}return t}var wr=window,Tr=wr.requestAnimationFrame||wr.mozRequestAnimationFrame||wr.webkitRequestAnimationFrame||wr.msRequestAnimationFrame||(e=>setTimeout(e,16)),Er=typeof performance<`u`&&performance.timing!==void 0?performance.timing.navigationStart:Date.now(),Dr=typeof performance<`u`?(()=>Er+performance.now()):(()=>Date.now());function Or(e,t){e.naturalWidth>0&&Tr(()=>t());let n=()=>t();return e.addEventListener(`load`,n,!1),()=>e.removeEventListener(`load`,n,!1)}function kr(e,t){let n=Dr(),r=!1,i=()=>{r=!0,t(),Dr()-n<3e3?Tr(i):r=!1},a=()=>{n=Dr(),r===!1&&i()};return e.addEventListener(`timeupdate`,a,!1),()=>{e.removeEventListener(`timeupdate`,a,!1),r=!1}}function Ar(e,t){let n=e.dispose;e.dispose=()=>{t(),n.call(e)}}e.Sticker=class extends hn{static get version(){return`1.0.0-alpha.15`}constructor(e,t,n){let r=new nn;if(super(Qn,r),this._sourceTexture=null,this._needsRender=!1,this.scale.set(e,t,1),typeof n==`string`){r.transparent=/\.png$/.test(n);let e=new Image;e.src=n,e.crossOrigin=``,n=e}if(n instanceof HTMLImageElement){let e=r.map=new Oe;e.wrapS=c,e.wrapT=c,e.minFilter=d,e.colorSpace=C,Ar(e,Or(n,()=>{e.image=n,e.needsUpdate=!0,this._needsRender=!0}))}else if(n instanceof HTMLCanvasElement)r.map=new xn(n);else if(n instanceof HTMLVideoElement){let e=r.map=new yn(n);e.wrapS=c,e.wrapT=c,e.minFilter=d,e.colorSpace=C,Ar(e,kr(n,()=>{this._needsRender=!0}));let t=Cr(e);this.onBeforeRender=e=>{t.update(e);let n=t.texture;r.map!==n&&(r.map=n)}}this._sourceTexture=r.map}get needsRender(){return this._needsRender}set needsRender(e){this._needsRender=e,e===!0&&this._sourceTexture&&(this._sourceTexture.needsUpdate=!0)}setSize(e,t){this.scale.set(e,t,1),this._needsRender=!0}setTransparent(e){this.material.transparent=e,this._needsRender=!0}locationWithIntersection(e,t=.005){let{point:n,face:r}=e;this.position.copy(n),r&&(this.position.add(r.normal.clone().setLength(t)),this.lookAt(n.clone().add(r.normal))),this._needsRender=!0}dispose(){var e;(e=this._sourceTexture)==null||e.dispose(),this.material.dispose()}}});
package/umd/five-vfx.js CHANGED
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * @license
3
3
  * @realsee/five-webgpu
4
- * Generated: 2026/11/3
5
- * Version: 1.0.0-alpha.14
4
+ * Generated: 2026/11/4
5
+ * Version: 1.0.0-alpha.15
6
6
  * License:
7
7
  * Realsee SDK License Agreement
8
8