@haiyue/extensions 0.1.0 → 0.2.0

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 (269) hide show
  1. package/README.md +25 -0
  2. package/dist/animation/Animation2DComponent.d.ts +18 -0
  3. package/dist/animation/Animation2DExtensionRegistry.d.ts +7 -0
  4. package/dist/animation/Animation2DRenderSystem.d.ts +6 -0
  5. package/dist/animation/Animation2DRuntime.d.ts +6 -2
  6. package/dist/animation/AnimationTextRasterizer.d.ts +4 -0
  7. package/dist/animation/AnimationVisual2D.d.ts +58 -2
  8. package/dist/animation/interaction/InteractionRuntime.d.ts +83 -0
  9. package/dist/animation/interaction/runtime-types.d.ts +257 -0
  10. package/dist/animation.d.ts +3 -1
  11. package/dist/animation.js +551 -59
  12. package/dist/animation3d.js +1 -1
  13. package/dist/canvas-text.js +1 -1
  14. package/dist/chunks/2d-ui-animation-2d.generated-FpziAeGJ.js +4 -0
  15. package/dist/chunks/2d-ui-indexed-sprite.generated-DmKR0CC3.js +4 -0
  16. package/dist/chunks/Animation2DStateMachine-BHcA6Cu3.js +18212 -0
  17. package/dist/chunks/{AnimationStateMachineController-BIcAh-sT.js → AnimationStateMachineController-4sKaqh9E.js} +2 -2
  18. package/dist/chunks/AnimationVisual2D-8y3qp0_U.js +230 -0
  19. package/dist/chunks/{RenderSystem2DBase-DDT61dAu.js → RenderSystem2DBase-CF2s00vg.js} +2 -2
  20. package/dist/controls/VirtualJoystickControls.d.ts +46 -0
  21. package/dist/controls/contracts.d.ts +91 -0
  22. package/dist/controls.d.ts +2 -0
  23. package/dist/controls.js +358 -0
  24. package/dist/deformable-animation/runtime/DeformableMesh2DRuntimeExtension.d.ts +11 -0
  25. package/dist/deformable-animation/runtime/DeformableMesh2DSampler.d.ts +11 -0
  26. package/dist/deformable-animation.d.ts +5 -0
  27. package/dist/deformable-animation.js +316 -0
  28. package/dist/experimental-indexed-sprite.d.ts +5 -0
  29. package/dist/experimental-indexed-sprite.js +482 -0
  30. package/dist/gltf-worker-runtime.js +9 -9
  31. package/dist/hya-state-machine.js +3 -2
  32. package/dist/index.js +1 -1
  33. package/dist/indexed-sprite/AtlasLayout.d.ts +2 -0
  34. package/dist/indexed-sprite/IndexedSpriteRenderer.d.ts +23 -0
  35. package/dist/indexed-sprite/contracts.d.ts +89 -0
  36. package/dist/internal/2d-ui-shader-artifact.js +232 -23
  37. package/dist/ray-tracing/acceleration/bvh.d.ts +37 -0
  38. package/dist/ray-tracing/acceleration/index.d.ts +6 -0
  39. package/dist/ray-tracing/acceleration/pack.d.ts +152 -0
  40. package/dist/ray-tracing/acceleration/query.d.ts +4 -0
  41. package/dist/ray-tracing/acceleration/runtime.d.ts +30 -0
  42. package/dist/ray-tracing/acceleration/tlas.d.ts +4 -0
  43. package/dist/ray-tracing/acceleration/types.d.ts +165 -0
  44. package/dist/ray-tracing/denoise/index.d.ts +3 -0
  45. package/dist/ray-tracing/denoise/layout.d.ts +9 -0
  46. package/dist/ray-tracing/denoise/runtime.d.ts +23 -0
  47. package/dist/ray-tracing/denoise/types.d.ts +28 -0
  48. package/dist/ray-tracing/hybrid/contract.d.ts +2 -0
  49. package/dist/ray-tracing/hybrid/index.d.ts +5 -0
  50. package/dist/ray-tracing/hybrid/layout.d.ts +17 -0
  51. package/dist/ray-tracing/hybrid/plan.d.ts +2 -0
  52. package/dist/ray-tracing/hybrid/runtime.d.ts +31 -0
  53. package/dist/ray-tracing/hybrid/shaders/hybrid-artifact.generated.d.ts +625 -0
  54. package/dist/ray-tracing/hybrid/types.d.ts +144 -0
  55. package/dist/ray-tracing/lifecycle/device-recovery.d.ts +31 -0
  56. package/dist/ray-tracing/lifecycle/index.d.ts +2 -0
  57. package/dist/ray-tracing/lifecycle/types.d.ts +37 -0
  58. package/dist/ray-tracing/material/index.d.ts +2 -0
  59. package/dist/ray-tracing/material/pack.d.ts +5 -0
  60. package/dist/ray-tracing/material/types.d.ts +63 -0
  61. package/dist/ray-tracing/reference/index.d.ts +122 -0
  62. package/dist/ray-tracing/renderer/index.d.ts +7 -0
  63. package/dist/ray-tracing/renderer/layout.d.ts +20 -0
  64. package/dist/ray-tracing/renderer/plan.d.ts +2 -0
  65. package/dist/ray-tracing/renderer/reference.d.ts +17 -0
  66. package/dist/ray-tracing/renderer/runtime.d.ts +39 -0
  67. package/dist/ray-tracing/renderer/scene.d.ts +4 -0
  68. package/dist/ray-tracing/renderer/types.d.ts +115 -0
  69. package/dist/ray-tracing/sampling/index.d.ts +8 -0
  70. package/dist/ray-tracing/sampling/layout.d.ts +12 -0
  71. package/dist/ray-tracing/sampling/plan.d.ts +5 -0
  72. package/dist/ray-tracing/sampling/revision.d.ts +15 -0
  73. package/dist/ray-tracing/sampling/runtime.d.ts +44 -0
  74. package/dist/ray-tracing/sampling/sequence.d.ts +2 -0
  75. package/dist/ray-tracing/sampling/types.d.ts +96 -0
  76. package/dist/ray-tracing/scene/index.d.ts +41 -0
  77. package/dist/ray-tracing/traversal/index.d.ts +4 -0
  78. package/dist/ray-tracing/traversal/layout.d.ts +16 -0
  79. package/dist/ray-tracing/traversal/plan.d.ts +2 -0
  80. package/dist/ray-tracing/traversal/runtime.d.ts +25 -0
  81. package/dist/ray-tracing/traversal/types.d.ts +79 -0
  82. package/dist/ray-tracing/worker/client.d.ts +25 -0
  83. package/dist/ray-tracing/worker/index.d.ts +5 -0
  84. package/dist/ray-tracing/worker/runtime.d.ts +11 -0
  85. package/dist/ray-tracing/worker/serialization.d.ts +16 -0
  86. package/dist/ray-tracing/worker/source.d.ts +1 -0
  87. package/dist/ray-tracing/worker/types.d.ts +91 -0
  88. package/dist/ray-tracing.d.ts +17 -0
  89. package/dist/ray-tracing.js +7666 -0
  90. package/dist/spine.js +1 -1
  91. package/dist/tilemap.js +1 -1
  92. package/package.json +26 -23
  93. package/dist/animation/Animation2DStateMachineVisualRuntime.d.ts +0 -27
  94. package/dist/animation/Particle2DDescriptorAdapter.d.ts +0 -5
  95. package/dist/animation3d/Animation3DResource.d.ts +0 -28
  96. package/dist/animation3d/hya/HyaAnimation3DStateMachineRuntime.d.ts +0 -65
  97. package/dist/animation3d/hya/index.d.ts +0 -4
  98. package/dist/animation3d/runtime/integration/Animation3DStateMachineMixerAdapter.d.ts +0 -81
  99. package/dist/animation3d/runtime/integration/Animation3DStateMachineMixerIntegration.d.ts +0 -39
  100. package/dist/animation3d/runtime/integration/index.d.ts +0 -2
  101. package/dist/animation3d/runtime/mixer/Action.d.ts +0 -150
  102. package/dist/animation3d/runtime/mixer/Animation3DMixerRuntimeStore.d.ts +0 -6
  103. package/dist/animation3d/runtime/mixer/Mixer.d.ts +0 -59
  104. package/dist/animation3d/runtime/mixer/PoseBuffer.d.ts +0 -1
  105. package/dist/animation3d/runtime/mixer/TrackSampler.d.ts +0 -24
  106. package/dist/animation3d/runtime/mixer/index.d.ts +0 -4
  107. package/dist/animation3d/runtime/state-machine/Animation3DBlendTreeWeights.d.ts +0 -1
  108. package/dist/animation3d/runtime/state-machine/Animation3DStateMachineCompiler.d.ts +0 -1
  109. package/dist/animation3d/runtime/state-machine/Animation3DStateMachineController.d.ts +0 -1
  110. package/dist/animation3d/runtime/state-machine/Animation3DStateMachineMixerPort.d.ts +0 -1
  111. package/dist/animation3d/runtime/state-machine/index.d.ts +0 -6
  112. package/dist/benchmark.d.ts +0 -30
  113. package/dist/chunks/2d-ui-animation-2d.generated-D4aHzFU2.js +0 -4
  114. package/dist/chunks/Animation2DStateMachine-9IonguNa.js +0 -3245
  115. package/dist/gltf/GltfAccessorReader.d.ts +0 -7
  116. package/dist/gltf/GltfDracoDecoder.d.ts +0 -4
  117. package/dist/gltf/GltfLoaderErrors.d.ts +0 -4
  118. package/dist/gltf/GltfMaterialDescriptor.d.ts +0 -23
  119. package/dist/gltf/GltfMaterialLoader.d.ts +0 -6
  120. package/dist/gltf-worker-runtime.d.ts +0 -7
  121. package/dist/plugins/pluginUtils.d.ts +0 -20
  122. package/dist/plugins.d.ts +0 -6
  123. package/dist/shaders/generated/2d-ui-artifact.generated.d.ts +0 -658
  124. package/dist/spine/Spine2DGpuRenderer.d.ts +0 -65
  125. package/dist/spine/Spine2DRuntime.d.ts +0 -103
  126. package/dist/spine/SpineAnimationBoneTimelines.d.ts +0 -8
  127. package/dist/spine/SpineFloatBuilder.d.ts +0 -15
  128. package/dist/spine/SpinePathConstraintSolver.d.ts +0 -32
  129. package/dist/spine/SpineSkeletonRuntime.d.ts +0 -185
  130. package/dist/spine/SpineSlotAnimation.d.ts +0 -17
  131. package/dist/spine/SpineTimelineRuntime.d.ts +0 -25
  132. package/dist/spine/SpineVertexBuilder.d.ts +0 -61
  133. package/dist/tilemap/Tilemap2DRenderer.d.ts +0 -24
  134. package/dist/utils/arrayAccess.d.ts +0 -4
  135. package/dist/utils/camera2d.d.ts +0 -12
  136. package/src/animation/Animation2DComponent.ts +0 -135
  137. package/src/animation/Animation2DExtensionRegistry.ts +0 -52
  138. package/src/animation/Animation2DRenderSystem.ts +0 -1026
  139. package/src/animation/Animation2DRuntime.ts +0 -1326
  140. package/src/animation/Animation2DStateMachine.ts +0 -39
  141. package/src/animation/Animation2DStateMachineComponent.ts +0 -228
  142. package/src/animation/Animation2DStateMachineRuntime.ts +0 -141
  143. package/src/animation/Animation2DStateMachineSystem.ts +0 -60
  144. package/src/animation/Animation2DStateMachineVisualRuntime.ts +0 -282
  145. package/src/animation/Animation2DSystem.ts +0 -72
  146. package/src/animation/AnimationAssetLoader.ts +0 -84
  147. package/src/animation/AnimationAudioClip.ts +0 -140
  148. package/src/animation/AnimationPathTessellator.ts +0 -691
  149. package/src/animation/AnimationTextRasterizer.ts +0 -340
  150. package/src/animation/AnimationVisual2D.ts +0 -153
  151. package/src/animation/HyaAnimation2DClipAdapter.ts +0 -845
  152. package/src/animation/Particle2DDescriptorAdapter.ts +0 -35
  153. package/src/animation/runtime/mixer/Action.ts +0 -876
  154. package/src/animation/runtime/mixer/Mixer.ts +0 -505
  155. package/src/animation/runtime/mixer/PoseBuffer.ts +0 -105
  156. package/src/animation/runtime/mixer/Sampler.ts +0 -252
  157. package/src/animation/runtime/mixer/Types.ts +0 -138
  158. package/src/animation/runtime/mixer/index.ts +0 -31
  159. package/src/animation-state-machine/AnimationStateMachine.ts +0 -146
  160. package/src/animation-state-machine/AnimationStateMachineChannels.ts +0 -116
  161. package/src/animation-state-machine/runtime/Animation2DStateMachineMixerAdapter.ts +0 -197
  162. package/src/animation-state-machine/runtime/AnimationStateMachineBlendTreeWeights.ts +0 -503
  163. package/src/animation-state-machine/runtime/AnimationStateMachineCompiler.ts +0 -763
  164. package/src/animation-state-machine/runtime/AnimationStateMachineController.ts +0 -987
  165. package/src/animation-state-machine/runtime/AnimationStateMachineMixerPort.ts +0 -54
  166. package/src/animation-state-machine/runtime/index.ts +0 -47
  167. package/src/animation.ts +0 -33
  168. package/src/animation3d/Animation3DAction.ts +0 -73
  169. package/src/animation3d/Animation3DBinding.ts +0 -116
  170. package/src/animation3d/Animation3DClip.ts +0 -22
  171. package/src/animation3d/Animation3DError.ts +0 -34
  172. package/src/animation3d/Animation3DMixer.ts +0 -82
  173. package/src/animation3d/Animation3DPose.ts +0 -100
  174. package/src/animation3d/Animation3DPoseBuffer.ts +0 -85
  175. package/src/animation3d/Animation3DResource.ts +0 -49
  176. package/src/animation3d/Animation3DStateMachine.ts +0 -126
  177. package/src/animation3d/Animation3DStateMachineRuntime.ts +0 -191
  178. package/src/animation3d/Animation3DTrack.ts +0 -29
  179. package/src/animation3d/hya/HyaAnimation3DRuntime.ts +0 -756
  180. package/src/animation3d/hya/HyaAnimation3DStateMachineRuntime.ts +0 -618
  181. package/src/animation3d/hya/HyaAnimation3DTypes.ts +0 -168
  182. package/src/animation3d/hya/index.ts +0 -10
  183. package/src/animation3d/index.ts +0 -76
  184. package/src/animation3d/runtime/integration/Animation3DStateMachineMixerAdapter.ts +0 -325
  185. package/src/animation3d/runtime/integration/Animation3DStateMachineMixerIntegration.ts +0 -158
  186. package/src/animation3d/runtime/integration/index.ts +0 -9
  187. package/src/animation3d/runtime/mixer/Action.ts +0 -833
  188. package/src/animation3d/runtime/mixer/Animation3DMixerRuntimeStore.ts +0 -26
  189. package/src/animation3d/runtime/mixer/Mixer.ts +0 -562
  190. package/src/animation3d/runtime/mixer/PoseBuffer.ts +0 -1
  191. package/src/animation3d/runtime/mixer/TrackSampler.ts +0 -399
  192. package/src/animation3d/runtime/mixer/index.ts +0 -8
  193. package/src/animation3d/runtime/state-machine/Animation3DBlendTreeWeights.ts +0 -4
  194. package/src/animation3d/runtime/state-machine/Animation3DStateMachineCompiler.ts +0 -1
  195. package/src/animation3d/runtime/state-machine/Animation3DStateMachineController.ts +0 -1
  196. package/src/animation3d/runtime/state-machine/Animation3DStateMachineMixerPort.ts +0 -1
  197. package/src/animation3d/runtime/state-machine/index.ts +0 -45
  198. package/src/animation3d.ts +0 -5
  199. package/src/benchmark.ts +0 -168
  200. package/src/canvas-text/CanvasText2DRenderSystem.ts +0 -292
  201. package/src/canvas-text/CanvasTextComponent.ts +0 -47
  202. package/src/canvas-text.ts +0 -4
  203. package/src/experimental-gltf-worker.ts +0 -18
  204. package/src/experimental-spine-worker.ts +0 -9
  205. package/src/gltf/GltfAccessorReader.ts +0 -271
  206. package/src/gltf/GltfAnimation3DAdapter.ts +0 -680
  207. package/src/gltf/GltfAnimationRuntime.ts +0 -392
  208. package/src/gltf/GltfAssetWorkerClient.ts +0 -136
  209. package/src/gltf/GltfCompatibilityReport.ts +0 -214
  210. package/src/gltf/GltfConservativeBounds.ts +0 -219
  211. package/src/gltf/GltfDracoDecoder.ts +0 -251
  212. package/src/gltf/GltfExtensionAdapter.ts +0 -340
  213. package/src/gltf/GltfLoaderContract.ts +0 -333
  214. package/src/gltf/GltfLoaderErrors.ts +0 -59
  215. package/src/gltf/GltfMaterialDescriptor.ts +0 -134
  216. package/src/gltf/GltfMaterialEncoder.ts +0 -173
  217. package/src/gltf/GltfMaterialLoader.ts +0 -293
  218. package/src/gltf/GltfModelComponent.ts +0 -115
  219. package/src/gltf/GltfModelSystem.ts +0 -208
  220. package/src/gltf/GltfPlugin.ts +0 -84
  221. package/src/gltf/GltfSchema.ts +0 -229
  222. package/src/gltf/GltfUvSemanticPlanner.ts +0 -166
  223. package/src/gltf/gltfLoader.ts +0 -910
  224. package/src/gltf-animation3d.ts +0 -10
  225. package/src/gltf-worker-runtime.ts +0 -10
  226. package/src/gltf.ts +0 -56
  227. package/src/grid/Grid2DComponent.ts +0 -69
  228. package/src/grid.ts +0 -2
  229. package/src/hya-state-machine.ts +0 -19
  230. package/src/index.ts +0 -2
  231. package/src/plugins/pluginUtils.ts +0 -50
  232. package/src/plugins.ts +0 -6
  233. package/src/shaders/generated/2d-ui-animation-2d.generated.wgsl +0 -242
  234. package/src/shaders/generated/2d-ui-artifact.generated.ts +0 -867
  235. package/src/shaders/generated/2d-ui-canvas-text-2d.generated.wgsl +0 -38
  236. package/src/shaders/generated/2d-ui-spine2d.generated.wgsl +0 -41
  237. package/src/shaders/generated/2d-ui-tilemap2d.generated.wgsl +0 -36
  238. package/src/spine/Spine2DComponent.ts +0 -168
  239. package/src/spine/Spine2DGpuRenderer.ts +0 -449
  240. package/src/spine/Spine2DRenderSystem.ts +0 -199
  241. package/src/spine/Spine2DRuntime.ts +0 -1529
  242. package/src/spine/SpineAnimationBoneTimelines.ts +0 -30
  243. package/src/spine/SpineAssetParser.ts +0 -20
  244. package/src/spine/SpineAssetWorkerClient.ts +0 -112
  245. package/src/spine/SpineAssetWorkerContract.ts +0 -4
  246. package/src/spine/SpineAtlasParser.ts +0 -127
  247. package/src/spine/SpineFloatBuilder.ts +0 -66
  248. package/src/spine/SpinePathConstraintSolver.ts +0 -582
  249. package/src/spine/SpinePlugin.ts +0 -76
  250. package/src/spine/SpineSkeletonRuntime.ts +0 -521
  251. package/src/spine/SpineSlotAnimation.ts +0 -195
  252. package/src/spine/SpineTimelineRuntime.ts +0 -453
  253. package/src/spine/SpineVertexBuilder.ts +0 -686
  254. package/src/spine.ts +0 -7
  255. package/src/tilemap/Tilemap2DComponent.ts +0 -232
  256. package/src/tilemap/Tilemap2DRenderSystem.ts +0 -58
  257. package/src/tilemap/Tilemap2DRenderer.ts +0 -289
  258. package/src/tilemap/TilemapPlugin.ts +0 -75
  259. package/src/tilemap.ts +0 -6
  260. package/src/tween/Tween2DComponent.ts +0 -83
  261. package/src/tween/Tween2DSystem.ts +0 -78
  262. package/src/tween.ts +0 -4
  263. package/src/types/earcut.d.ts +0 -7
  264. package/src/types/wgsl.d.ts +0 -4
  265. package/src/utils/RenderSystem2DBase.ts +0 -164
  266. package/src/utils/arrayAccess.ts +0 -17
  267. package/src/utils/camera2d.ts +0 -68
  268. package/src/utils/render2dGpu.ts +0 -132
  269. package/test/fixtures/gltf/animation-characterization.gltf +0 -344
@@ -1,65 +0,0 @@
1
- import { type IEngine } from '@haiyue/engine/extension-authoring';
2
- import { Spine2DComponent } from './Spine2DComponent';
3
- import { SpineFloatBuilder } from './SpineFloatBuilder';
4
- import { type AtlasRegion } from './SpineAtlasParser';
5
- import { type SpineDrawBatch } from './SpineVertexBuilder';
6
- export interface SpineBufferDirtyRange {
7
- byteOffset: number;
8
- byteLength: number;
9
- }
10
- export interface AtlasPageGpu {
11
- image: HTMLImageElement;
12
- texture: GPUTexture;
13
- textureBindGroup: GPUBindGroup;
14
- width: number;
15
- height: number;
16
- }
17
- export interface SpineRuntimeGpu {
18
- pages: Map<string, AtlasPageGpu>;
19
- vertexBuffer: GPUBuffer;
20
- vertexBufferSize: number;
21
- debugVertexBuffer: GPUBuffer;
22
- debugVertexBufferSize: number;
23
- batches: SpineDrawBatch[];
24
- mergedDirtyRanges: SpineBufferDirtyRange[];
25
- mergedDirtyRangePool: SpineBufferDirtyRange[];
26
- allocationStats: {
27
- dirtyRangePoolMisses: number;
28
- };
29
- }
30
- export interface SpineRuntimeGpuBuffers {
31
- vertexBuffer: GPUBuffer;
32
- vertexBufferSize: number;
33
- debugVertexBuffer: GPUBuffer;
34
- debugVertexBufferSize: number;
35
- }
36
- export declare class Spine2DGpuRenderer {
37
- private engine;
38
- private cameraGpu;
39
- private textureGpu;
40
- private objectLayoutGpu;
41
- private shaderModule;
42
- private pipelineLayout;
43
- private readonly pipelines;
44
- private reverseZ;
45
- private sampleCount;
46
- private readonly pendingBufferDestroys;
47
- get cameraBuffer(): GPUBuffer;
48
- get objectLayout(): GPUBindGroupLayout;
49
- prepare(engine: IEngine): void;
50
- destroy(): void;
51
- setRenderView(reverseZ: boolean, sampleCount: 1 | 4): void;
52
- createRuntimeBuffers(): SpineRuntimeGpuBuffers;
53
- loadAtlasPages(component: Spine2DComponent, atlas: Map<string, AtlasRegion>): Promise<Map<string, AtlasPageGpu>>;
54
- writeVertices(runtime: SpineRuntimeGpu, vertices: SpineFloatBuilder, dirtyRanges: SpineBufferDirtyRange[]): void;
55
- writeDebugVertices(runtime: SpineRuntimeGpu, vertices: SpineFloatBuilder, dirtyRanges: SpineBufferDirtyRange[]): void;
56
- drawRuntime(pass: GPURenderPassEncoder, runtime: SpineRuntimeGpu, objectBindGroup: GPUBindGroup, debugVertexCount: number): void;
57
- destroyRuntime(runtime: SpineRuntimeGpu): void;
58
- private destroyAtlasPage;
59
- private getPipeline;
60
- private writeDirtyRanges;
61
- private deferBufferDestroy;
62
- private flushPendingBufferDestroys;
63
- private requireEngine;
64
- private requirePrepared;
65
- }
@@ -1,103 +0,0 @@
1
- import { Spine2DComponent } from './Spine2DComponent';
2
- import { Spine2DGpuRenderer, type AtlasPageGpu, type SpineBufferDirtyRange } from './Spine2DGpuRenderer';
3
- import { SpineFloatBuilder } from './SpineFloatBuilder';
4
- import { type AtlasRegion } from './SpineAtlasParser';
5
- import { type SpinePathConstraintScratch } from './SpinePathConstraintSolver';
6
- import { type SpineDrawBatch, type SpineSlotGeometryCache } from './SpineVertexBuilder';
7
- import { type BonePose, type IkConstraintData, type PathConstraintData, type SliderAnimationState, type SliderConstraintData, type SlotData, type SpineData, type TransformConstraintData } from './SpineSkeletonRuntime';
8
- import { type SpineTimelineCompileStats, type SpineTimelineSamplerState } from './SpineTimelineRuntime';
9
- import type { SpineAssetWorker } from './SpineAssetWorkerContract';
10
- export interface SpineVertexBuild {
11
- vertices: SpineFloatBuilder;
12
- batches: SpineDrawBatch[];
13
- debugVertices: SpineFloatBuilder;
14
- vertexDirtyRanges: SpineBufferDirtyRange[];
15
- debugDirtyRanges: SpineBufferDirtyRange[];
16
- verticesChanged: boolean;
17
- debugVerticesChanged: boolean;
18
- }
19
- export interface SpineRuntimeAllocationStats {
20
- slotRegionGrowths: number;
21
- batchPoolMisses: number;
22
- dirtyRangePoolMisses: number;
23
- }
24
- type SpineConstraintEntry = {
25
- type: 'ik';
26
- order: number;
27
- constraint: IkConstraintData;
28
- } | {
29
- type: 'path';
30
- order: number;
31
- constraint: PathConstraintData;
32
- } | {
33
- type: 'transform';
34
- order: number;
35
- constraint: TransformConstraintData;
36
- };
37
- export interface SpineRuntime extends SpinePathConstraintScratch {
38
- data: SpineData;
39
- atlas: Map<string, AtlasRegion>;
40
- pages: Map<string, AtlasPageGpu>;
41
- vertexBuffer: GPUBuffer;
42
- vertexBufferSize: number;
43
- debugVertexBuffer: GPUBuffer;
44
- debugVertexBufferSize: number;
45
- batches: SpineDrawBatch[];
46
- batchPool: SpineDrawBatch[];
47
- vertexBuilder: SpineFloatBuilder;
48
- debugVertexBuilder: SpineFloatBuilder;
49
- slotVertexBuilder: SpineFloatBuilder;
50
- slotDebugVertexBuilder: SpineFloatBuilder;
51
- clipBuilder: SpineFloatBuilder;
52
- meshPointBuilder: SpineFloatBuilder;
53
- slotGeometryCache: Map<string, SpineSlotGeometryCache>;
54
- slotOrderHash: number;
55
- boneChildren: Map<string, string[]>;
56
- setupPoses: Map<string, BonePose>;
57
- previousSetupPoses: Map<string, BonePose>;
58
- slotIndexByName: Map<string, number>;
59
- slotCacheKeyByName: Map<string, string>;
60
- sliderConstraintsByOrder: SliderConstraintData[];
61
- sortedConstraintsBySkin: Map<string, SpineConstraintEntry[]>;
62
- transformConstraintBoneSets: WeakMap<TransformConstraintData, Set<string>>;
63
- transformWorldSpaceBonesScratch: string[];
64
- drawOrderScratch: number[];
65
- unchangedSlotScratch: number[];
66
- orderedSlotScratch: SlotData[];
67
- liveSlotKeys: Set<string>;
68
- slotEntries: SpineSlotGeometryCache[];
69
- changedVertexEntries: SpineSlotGeometryCache[];
70
- changedDebugEntries: SpineSlotGeometryCache[];
71
- sliderStateScratch: SliderAnimationState[];
72
- sliderStatePool: SliderAnimationState[];
73
- vertexDirtyRanges: SpineBufferDirtyRange[];
74
- debugDirtyRanges: SpineBufferDirtyRange[];
75
- mergedDirtyRanges: SpineBufferDirtyRange[];
76
- vertexDirtyRangePool: SpineBufferDirtyRange[];
77
- debugDirtyRangePool: SpineBufferDirtyRange[];
78
- mergedDirtyRangePool: SpineBufferDirtyRange[];
79
- vertexBuildResult: SpineVertexBuild;
80
- slotColorScratch: [number, number, number, number];
81
- sliderColorScratch: [number, number, number, number];
82
- vertexColorScratch: [number, number, number, number];
83
- timelineCompileStats: SpineTimelineCompileStats;
84
- timelineSamplerState: SpineTimelineSamplerState;
85
- allocationStats: SpineRuntimeAllocationStats;
86
- ikStateScratch: {
87
- mix: number;
88
- softness: number;
89
- bendPositive: boolean;
90
- };
91
- transformStateScratch: Pick<TransformConstraintData, 'mixRotate' | 'mixX' | 'mixY' | 'mixScaleX' | 'mixScaleY' | 'mixShearY'>;
92
- }
93
- export declare function advanceSpineRuntime(component: Spine2DComponent, delta: number): void;
94
- export declare function buildSpineVertices(component: Spine2DComponent, runtime: SpineRuntime): SpineVertexBuild;
95
- export declare function loadSpineRuntime(gpuRenderer: Spine2DGpuRenderer, component: Spine2DComponent, options?: {
96
- assetWorker?: SpineAssetWorker | null;
97
- signal?: AbortSignal;
98
- }): Promise<SpineRuntime>;
99
- /** Monorepo benchmark adapter; not re-exported from the Spine package facade. */
100
- export declare function createSpineRuntimeForBenchmark(data: SpineData, atlas: Map<string, AtlasRegion>, pages: Map<string, AtlasPageGpu>): SpineRuntime;
101
- /** Monorepo benchmark adapter; samples the complete animation/constraint pose path. */
102
- export declare function sampleSpinePosesForBenchmark(component: Spine2DComponent, runtime: SpineRuntime): number;
103
- export {};
@@ -1,8 +0,0 @@
1
- import type { SpineAnimationBoneTimelines, SpineAnimationData } from './SpineSkeletonRuntime';
2
- interface SpineAnimationBoneTimelineEntry {
3
- boneName: string;
4
- timelines: SpineAnimationBoneTimelines;
5
- }
6
- export declare function compileAnimationBoneTimelines(animations: Record<string, SpineAnimationData>): void;
7
- export declare function getAnimationBoneTimelines(animation: SpineAnimationData | undefined): SpineAnimationBoneTimelineEntry[];
8
- export {};
@@ -1,15 +0,0 @@
1
- export declare class SpineFloatBuilder {
2
- data: Float32Array;
3
- length: number;
4
- constructor(initialCapacity?: number);
5
- clear(): void;
6
- get byteLength(): number;
7
- get(index: number): number;
8
- push(...values: number[]): void;
9
- push8(a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number): void;
10
- appendArray(values: ArrayLike<number>, length?: number): void;
11
- truncate(length: number): void;
12
- /** Grows storage if needed and exposes a reusable writable region without allocating a temporary array. */
13
- reserveLength(length: number): void;
14
- private ensureCapacity;
15
- }
@@ -1,32 +0,0 @@
1
- import { Spine2DComponent } from './Spine2DComponent';
2
- import { type BonePose, type PathConstraintData, type SpineData } from './SpineSkeletonRuntime';
3
- import { type SpineTimelineSamplerState } from './SpineTimelineRuntime';
4
- export interface SpinePathConstraintScratch {
5
- pathBonesScratch: BonePose[];
6
- pathConstrainedBonesScratch: Set<string>;
7
- pathSpacesScratch: number[];
8
- pathLengthsScratch: number[];
9
- pathWorldScratch: number[];
10
- pathOutScratch: number[];
11
- pathCurveWorldScratch: number[];
12
- pathCurvesScratch: number[];
13
- pathSegmentsScratch: number[];
14
- pathCurvePointScratch: number[];
15
- pathStateScratch: {
16
- position: number;
17
- spacing: number;
18
- mixRotate: number;
19
- mixX: number;
20
- mixY: number;
21
- };
22
- }
23
- export interface SpinePathConstraintRuntime extends SpinePathConstraintScratch {
24
- data: SpineData;
25
- timelineSamplerState: SpineTimelineSamplerState;
26
- }
27
- export interface SpinePathConstraintDeps {
28
- normalizeRadians(value: number): number;
29
- updateDescendantBoneTrees(name: string, poses: Map<string, BonePose>, children: Map<string, string[]>, blockedRoots?: Set<string>): void;
30
- }
31
- export declare function createSpinePathConstraintScratch(): SpinePathConstraintScratch;
32
- export declare function applyPathConstraint(runtime: SpinePathConstraintRuntime, component: Spine2DComponent, constraint: PathConstraintData, time: number, duration: number, loop: boolean, poses: Map<string, BonePose>, children: Map<string, string[]>, deps: SpinePathConstraintDeps): void;
@@ -1,185 +0,0 @@
1
- export interface BoneData {
2
- name: string;
3
- parent?: string;
4
- inherit?: string;
5
- x: number;
6
- y: number;
7
- rotation: number;
8
- shearX: number;
9
- shearY: number;
10
- scaleX: number;
11
- scaleY: number;
12
- length: number;
13
- }
14
- export interface IkConstraintData {
15
- name: string;
16
- order: number;
17
- skin: boolean;
18
- bones: string[];
19
- target: string;
20
- mix: number;
21
- softness: number;
22
- bendPositive: boolean;
23
- }
24
- export interface TransformConstraintData {
25
- name: string;
26
- order: number;
27
- skin: boolean;
28
- bones: string[];
29
- target: string;
30
- rotation: number;
31
- x: number;
32
- y: number;
33
- scaleX: number;
34
- scaleY: number;
35
- shearY: number;
36
- mixRotate: number;
37
- mixX: number;
38
- mixY: number;
39
- mixScaleX: number;
40
- mixScaleY: number;
41
- mixShearY: number;
42
- localSource: boolean;
43
- localTarget: boolean;
44
- additive: boolean;
45
- }
46
- export interface PathConstraintData {
47
- name: string;
48
- order: number;
49
- skin: boolean;
50
- bones: string[];
51
- slot: string;
52
- position: number;
53
- spacing: number;
54
- mixRotate: number;
55
- mixX: number;
56
- mixY: number;
57
- positionMode: string;
58
- spacingMode: string;
59
- rotateMode: string;
60
- offsetRotation: number;
61
- }
62
- export interface SliderConstraintData {
63
- name: string;
64
- order: number;
65
- skin: boolean;
66
- animation: string;
67
- bone?: string;
68
- property: string;
69
- scale: number;
70
- offset: number;
71
- loop: boolean;
72
- local: boolean;
73
- mix: number;
74
- }
75
- export interface SlotData {
76
- name: string;
77
- bone: string;
78
- attachment?: string;
79
- color?: [number, number, number, number];
80
- blend: 'normal' | 'additive' | string;
81
- }
82
- export interface RegionAttachment {
83
- type?: string;
84
- name: string;
85
- path: string;
86
- x: number;
87
- y: number;
88
- rotation: number;
89
- scaleX: number;
90
- scaleY: number;
91
- width: number;
92
- height: number;
93
- color?: [number, number, number, number];
94
- uvs?: number[];
95
- triangles?: number[];
96
- vertices?: number[];
97
- vertexCount?: number;
98
- lengths?: number[];
99
- sequence?: {
100
- count?: number;
101
- start?: number;
102
- digits?: number;
103
- setup?: number;
104
- };
105
- closed?: boolean;
106
- constantSpeed?: boolean;
107
- end?: string;
108
- skin?: string;
109
- source?: string;
110
- }
111
- export interface SpineAnimationBoneTimelines {
112
- rotate?: unknown[];
113
- translate?: unknown[];
114
- scale?: unknown[];
115
- shear?: unknown[];
116
- [timeline: string]: unknown;
117
- }
118
- export interface SpineAnimationData {
119
- bones?: Record<string, SpineAnimationBoneTimelines>;
120
- slots?: Record<string, {
121
- attachment?: Array<{
122
- time?: number;
123
- name?: string | null;
124
- }>;
125
- rgba?: unknown[];
126
- [timeline: string]: unknown;
127
- }>;
128
- attachments?: Record<string, Record<string, Record<string, {
129
- sequence?: unknown[];
130
- }>>>;
131
- ik?: Record<string, unknown[]>;
132
- transform?: Record<string, unknown[]>;
133
- path?: Record<string, unknown[]>;
134
- slider?: Record<string, {
135
- mix?: unknown[];
136
- }>;
137
- drawOrder?: Array<{
138
- time?: number;
139
- offsets?: Array<{
140
- slot: string;
141
- offset?: number;
142
- }>;
143
- }>;
144
- [timeline: string]: unknown;
145
- }
146
- export interface SpineData {
147
- bones: BoneData[];
148
- ik: IkConstraintData[];
149
- transform: TransformConstraintData[];
150
- path: PathConstraintData[];
151
- sliders: SliderConstraintData[];
152
- slots: SlotData[];
153
- skins: Record<string, Record<string, Record<string, RegionAttachment>>>;
154
- skinConstraints: Record<string, {
155
- ik: string[];
156
- transform: string[];
157
- path: string[];
158
- slider: string[];
159
- }>;
160
- animations: Record<string, SpineAnimationData>;
161
- }
162
- export interface BonePose {
163
- data: BoneData;
164
- a: number;
165
- b: number;
166
- c: number;
167
- d: number;
168
- worldX: number;
169
- worldY: number;
170
- rotation: number;
171
- shearX: number;
172
- shearY: number;
173
- x: number;
174
- y: number;
175
- scaleX: number;
176
- scaleY: number;
177
- }
178
- export interface SliderAnimationState {
179
- animation: string;
180
- time: number;
181
- loop: boolean;
182
- mix: number;
183
- }
184
- export declare function normalizeSpineData(input: unknown): SpineData;
185
- export declare function parseColor(value?: string): [number, number, number, number] | undefined;
@@ -1,17 +0,0 @@
1
- import type { Spine2DComponent } from './Spine2DComponent';
2
- import type { RegionAttachment, SliderAnimationState, SlotData, SpineData } from './SpineSkeletonRuntime';
3
- import { type SpineTimelineSamplerState } from './SpineTimelineRuntime';
4
- interface SpineSlotAnimationRuntime {
5
- readonly data: SpineData;
6
- readonly timelineSamplerState: SpineTimelineSamplerState;
7
- readonly slotColorScratch: [number, number, number, number];
8
- readonly sliderColorScratch: [number, number, number, number];
9
- }
10
- type SpineSlotAnimationComponent = Pick<Spine2DComponent, 'animation' | 'skin'>;
11
- /** Resolves the active slot attachment timeline without owning pose evaluation. */
12
- export declare function getSpineSlotAttachmentName(runtime: SpineSlotAnimationRuntime, component: SpineSlotAnimationComponent, slot: SlotData, time: number): string | null;
13
- /** Resolves sequence attachments across the base animation and slider overlays. */
14
- export declare function getSpineAttachmentRegionName(runtime: SpineSlotAnimationRuntime, component: SpineSlotAnimationComponent, slot: SlotData, attachmentName: string, attachment: RegionAttachment, time: number, sliderStates: readonly SliderAnimationState[]): string;
15
- /** Samples slot RGBA timelines and slider blends into runtime-owned scratch storage. */
16
- export declare function getSpineSlotColor(runtime: SpineSlotAnimationRuntime, component: SpineSlotAnimationComponent, slot: SlotData, time: number, sliderStates: readonly SliderAnimationState[]): [number, number, number, number];
17
- export {};
@@ -1,25 +0,0 @@
1
- interface SpineTimelineCursor {
2
- intervalCursor: number;
3
- intervalTime: number;
4
- discreteCursor: number;
5
- discreteTime: number;
6
- }
7
- /** Runtime-local playback cursors; compiled timeline TypedArrays remain immutable and shareable. */
8
- export interface SpineTimelineSamplerState {
9
- readonly cursors: WeakMap<object, SpineTimelineCursor>;
10
- cursorMisses: number;
11
- }
12
- export interface SpineTimelineCompileStats {
13
- readonly timelineCount: number;
14
- readonly frameCount: number;
15
- readonly numericChannelCount: number;
16
- }
17
- export declare function createSpineTimelineSamplerState(): SpineTimelineSamplerState;
18
- /** Eagerly compiles every frame array reachable from the animation tree. */
19
- export declare function compileSpineTimelines(animations: Record<string, unknown>, samplerState?: SpineTimelineSamplerState): SpineTimelineCompileStats;
20
- export declare function getCompiledAnimationDuration(animation: unknown): number;
21
- export declare function sampleCompiledTimeline(frames: unknown[], time: number, key: string, fallback: number, _duration?: number, _loop?: boolean, samplerState?: SpineTimelineSamplerState): number;
22
- /** Returns the last frame whose time is <= sample time, or -1 before the first frame. */
23
- export declare function findCompiledFrameIndex(frames: unknown[] | undefined, time: number, samplerState?: SpineTimelineSamplerState): number;
24
- export declare function sampleCompiledColor(frames: unknown[], time: number, fallback: ArrayLike<number>, out: [number, number, number, number], samplerState?: SpineTimelineSamplerState): [number, number, number, number];
25
- export {};
@@ -1,61 +0,0 @@
1
- import { Spine2DComponent } from './Spine2DComponent';
2
- import { SpineFloatBuilder } from './SpineFloatBuilder';
3
- import type { AtlasRegion } from './SpineAtlasParser';
4
- import type { BonePose, RegionAttachment, SlotData, SpineData } from './SpineSkeletonRuntime';
5
- export interface SpineDrawBatch {
6
- blend: 'normal' | 'additive';
7
- page: string;
8
- firstVertex: number;
9
- vertexCount: number;
10
- }
11
- export interface SpineSlotGeometryCache {
12
- key: string;
13
- signature: number;
14
- debugSignature: number;
15
- vertices: Float32Array;
16
- vertexLength: number;
17
- vertexCapacity: number;
18
- debugVertices: Float32Array;
19
- debugVertexLength: number;
20
- debugVertexCapacity: number;
21
- batch: Omit<SpineDrawBatch, 'firstVertex'>;
22
- vertexOffset: number;
23
- debugVertexOffset: number;
24
- }
25
- export interface SpineVertexRuntime {
26
- data: SpineData;
27
- pages: Map<string, {
28
- width: number;
29
- height: number;
30
- }>;
31
- vertexBuilder: SpineFloatBuilder;
32
- debugVertexBuilder: SpineFloatBuilder;
33
- meshPointBuilder: SpineFloatBuilder;
34
- batches: SpineDrawBatch[];
35
- batchPool: SpineDrawBatch[];
36
- allocationStats?: {
37
- batchPoolMisses: number;
38
- };
39
- vertexColorScratch: [number, number, number, number];
40
- }
41
- export declare const HASH_OFFSET = 2166136261;
42
- export declare function createEmptySlotCache(key: string): SpineSlotGeometryCache;
43
- export declare function copyBuilderData(builder: SpineFloatBuilder, target: Float32Array): Float32Array;
44
- export declare function hasInvalidOffsets(entries: SpineSlotGeometryCache[]): boolean;
45
- export declare function rebuildCachedGeometryLayout(runtime: SpineVertexRuntime, entries: SpineSlotGeometryCache[]): void;
46
- export declare function rebuildCachedDrawBatches(runtime: SpineVertexRuntime, entries: SpineSlotGeometryCache[]): void;
47
- export declare function getSlotOrderHash(entries: SpineSlotGeometryCache[]): number;
48
- export declare function getSlotBuildSignature(slot: SlotData, attachmentName: string, attachment: RegionAttachment, regionName: string, region: AtlasRegion, bone: BonePose, poses: Map<string, BonePose>, slotColor: [number, number, number, number] | undefined, clip: {
49
- endSlot?: string;
50
- polygon: Array<[number, number]>;
51
- } | null, component: Spine2DComponent): number;
52
- export declare function getDebugBonesSignature(scale: number, poses: Map<string, BonePose>): number;
53
- export declare function hashInt(hash: number, value: number): number;
54
- export declare function normalizeBlend(blend: string): 'normal' | 'additive';
55
- export declare function computeClipPolygon(bone: BonePose, attachment: RegionAttachment, scale: number): Array<[number, number]>;
56
- export declare function replaceClippedRange(floats: SpineFloatBuilder, start: number, polygon: Array<[number, number]>, clipped: SpineFloatBuilder): void;
57
- export declare function appendRegionVertices(out: SpineFloatBuilder, component: Spine2DComponent, runtime: SpineVertexRuntime, bone: BonePose, slotColor: [number, number, number, number] | undefined, attachment: RegionAttachment, region: AtlasRegion): void;
58
- export declare function appendMeshVertices(out: SpineFloatBuilder, component: Spine2DComponent, runtime: SpineVertexRuntime, data: SpineData, poses: Map<string, BonePose>, bone: BonePose, slotColor: [number, number, number, number] | undefined, attachment: RegionAttachment, region: AtlasRegion): void;
59
- export declare function appendMeshWireframe(out: SpineFloatBuilder, component: Spine2DComponent, runtime: SpineVertexRuntime, data: SpineData, poses: Map<string, BonePose>, bone: BonePose, attachment: RegionAttachment): void;
60
- export declare function appendRegionWireframe(out: SpineFloatBuilder, component: Spine2DComponent, bone: BonePose, attachment: RegionAttachment, region: AtlasRegion): void;
61
- export declare function appendBoneDebug(out: SpineFloatBuilder, data: SpineData, poses: Map<string, BonePose>, scale: number): void;
@@ -1,24 +0,0 @@
1
- import { type IEngine } from '@haiyue/engine/extension-authoring';
2
- import type { Tilemap2DComponent } from './Tilemap2DComponent';
3
- export declare class Tilemap2DRenderer {
4
- reverseZ: boolean;
5
- msaaSamples: 1 | 4;
6
- private engine;
7
- private cameraGpu;
8
- private objectLayout;
9
- private shaderModule;
10
- private pipelineLayout;
11
- private sharedGpu;
12
- private entityCache;
13
- private signatureCache;
14
- private initialized;
15
- prepare(engine: IEngine): void;
16
- updateCamera(viewProj: Float32Array): void;
17
- releaseEntitiesNotIn(liveEntities: ReadonlySet<number>): void;
18
- render(passEncoder: GPURenderPassEncoder, entityId: number, tilemap: Tilemap2DComponent, worldMatrix: Float32Array): void;
19
- private computeSignature;
20
- private buildVertices;
21
- private getPipeline;
22
- destroy(): void;
23
- private destroyEntityGpu;
24
- }
@@ -1,4 +0,0 @@
1
- /** Reads an element whose presence is an internal runtime invariant. */
2
- export declare function requiredItemAt<T>(values: ArrayLike<T>, index: number, label: string): T;
3
- /** Reads a number whose presence is an internal runtime invariant. */
4
- export declare function requiredNumberAt(values: ArrayLike<number>, index: number, label: string): number;
@@ -1,12 +0,0 @@
1
- import { Camera2D, Entity } from '@haiyue/engine';
2
- import { type IEngine } from '@haiyue/engine/core';
3
- export interface Camera2DScratch {
4
- viewMatrix: Float32Array;
5
- viewProjMatrix: Float32Array;
6
- }
7
- export declare function createCamera2DScratch(): Camera2DScratch;
8
- export declare function compute2DViewProjection(engine: IEngine, cameraEntity: Entity, camera: Camera2D, scratch?: Camera2DScratch): Float32Array;
9
- export declare function write2DCameraBuffer(queue: GPUQueue, buffer: GPUBuffer, viewProj: Float32Array): void;
10
- export declare const IDENTITY_2D_WORLD_MATRIX: Float32Array;
11
- export type WorldMatrix2DFrameCache = Map<Entity, Float32Array>;
12
- export declare function get2DEntityWorldMatrix(entity: Entity, cache?: WorldMatrix2DFrameCache): Float32Array;