ranuts 0.1.0-alpha → 0.1.0-alpha-21

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 (211) hide show
  1. package/LICENSE +21 -0
  2. package/dist/build/build.es.d.ts +2 -0
  3. package/dist/build/build.umd.d.ts +2 -0
  4. package/dist/build/build.umd.ml.d.ts +2 -0
  5. package/dist/build/build.umd.node.d.ts +2 -0
  6. package/dist/build/build.umd.react.d.ts +2 -0
  7. package/dist/build/build.umd.utils.d.ts +2 -0
  8. package/dist/build/build.umd.wasm.d.ts +2 -0
  9. package/dist/color-BgjAdNyp.js +82296 -0
  10. package/dist/examples/clone-deep-example.d.ts +1 -0
  11. package/dist/examples/is-equal-example.d.ts +1 -0
  12. package/dist/index.d.ts +9 -9
  13. package/dist/index.js +151 -84
  14. package/dist/plugins/vite-plugins-banner.d.ts +2 -0
  15. package/dist/reactify-Z-V9Vblb.js +83 -0
  16. package/dist/src/arithmetic/index.d.ts +186 -0
  17. package/dist/src/cache/expires.d.ts +1 -0
  18. package/dist/src/ml/index.d.ts +2 -0
  19. package/dist/src/ml/index.js +1243 -0
  20. package/dist/src/ml/ocr.d.ts +11 -0
  21. package/dist/src/node/appendFile.d.ts +7 -0
  22. package/dist/src/node/body.d.ts +9 -0
  23. package/dist/src/node/color.d.ts +7 -0
  24. package/dist/src/node/command.d.ts +8 -0
  25. package/dist/src/node/ctx2req.d.ts +5 -0
  26. package/dist/src/node/fileInfo.d.ts +7 -0
  27. package/dist/src/node/fs.d.ts +7 -0
  28. package/dist/src/node/get.d.ts +10 -0
  29. package/dist/src/node/getIPAdress.d.ts +1 -0
  30. package/dist/src/node/index.d.ts +25 -0
  31. package/dist/src/node/index.js +54 -0
  32. package/dist/src/node/isColorSupported.d.ts +2 -0
  33. package/dist/src/node/paresUrl.d.ts +19 -0
  34. package/dist/src/node/readDir.d.ts +6 -0
  35. package/dist/src/node/readFile.d.ts +9 -0
  36. package/dist/src/node/router.d.ts +42 -0
  37. package/dist/src/node/send.d.ts +7 -0
  38. package/dist/src/node/server.d.ts +18 -0
  39. package/dist/src/node/startTask.d.ts +2 -0
  40. package/dist/src/node/stream.d.ts +15 -0
  41. package/dist/src/node/taskEnd.d.ts +2 -0
  42. package/dist/src/node/traverse.d.ts +17 -0
  43. package/dist/src/node/watchFile.d.ts +8 -0
  44. package/dist/src/node/websocket.d.ts +57 -0
  45. package/dist/src/node/writeFile.d.ts +8 -0
  46. package/dist/src/node/ws.d.ts +8 -0
  47. package/dist/src/optimize/index.d.ts +36 -0
  48. package/dist/src/optimize/promise.d.ts +0 -0
  49. package/dist/src/ran/commit.d.ts +0 -0
  50. package/dist/src/ran/dom.d.ts +0 -0
  51. package/dist/src/ran/hooks.d.ts +0 -0
  52. package/dist/src/ran/index.d.ts +20 -0
  53. package/dist/src/ran/min.d.ts +32 -0
  54. package/dist/src/ran/reconcile.d.ts +0 -0
  55. package/dist/src/ran/schedule.d.ts +0 -0
  56. package/dist/src/react/index.d.ts +2 -0
  57. package/dist/src/react/index.js +4 -0
  58. package/dist/src/react/reactify.d.ts +2 -0
  59. package/dist/src/sort/bubble.d.ts +7 -0
  60. package/dist/src/sort/bucket.d.ts +7 -0
  61. package/dist/src/sort/count.d.ts +7 -0
  62. package/dist/src/sort/heap.d.ts +7 -0
  63. package/dist/src/sort/index.d.ts +0 -0
  64. package/dist/src/sort/insert.d.ts +7 -0
  65. package/dist/src/sort/merge.d.ts +7 -0
  66. package/dist/src/sort/quick.d.ts +7 -0
  67. package/dist/src/sort/radix.d.ts +7 -0
  68. package/dist/src/sort/randomArray.d.ts +9 -0
  69. package/dist/src/sort/select.d.ts +7 -0
  70. package/dist/src/sort/shell.d.ts +7 -0
  71. package/dist/src/utils/audioRecorder.d.ts +16 -0
  72. package/dist/src/utils/behavior.d.ts +15 -0
  73. package/dist/src/utils/bom.d.ts +230 -0
  74. package/dist/src/utils/color.d.ts +71 -0
  75. package/dist/src/utils/compose.d.ts +10 -0
  76. package/dist/src/utils/console.d.ts +1 -0
  77. package/dist/src/utils/debounce.d.ts +7 -0
  78. package/dist/src/utils/device.d.ts +25 -0
  79. package/dist/src/utils/dom.d.ts +105 -0
  80. package/dist/src/utils/error.d.ts +1 -0
  81. package/dist/src/utils/func.d.ts +1 -0
  82. package/dist/src/utils/img.d.ts +16 -0
  83. package/dist/src/utils/index.d.ts +35 -0
  84. package/dist/src/utils/index.js +4548 -0
  85. package/dist/src/utils/memoize.d.ts +7 -0
  86. package/dist/src/utils/mimeType.d.ts +9 -0
  87. package/dist/src/utils/monitor.d.ts +38 -0
  88. package/dist/src/utils/network.d.ts +39 -0
  89. package/dist/src/utils/noop.d.ts +2 -0
  90. package/dist/src/utils/number.d.ts +45 -0
  91. package/dist/src/utils/obj.d.ts +83 -0
  92. package/dist/src/utils/performance.d.ts +21 -0
  93. package/dist/src/utils/queue.d.ts +33 -0
  94. package/dist/src/utils/report.d.ts +8 -0
  95. package/dist/src/utils/request.d.ts +17 -0
  96. package/dist/src/utils/script.d.ts +7 -0
  97. package/dist/src/utils/signal.d.ts +6 -0
  98. package/dist/src/utils/storage.d.ts +2 -0
  99. package/dist/src/utils/str.d.ts +212 -0
  100. package/dist/src/utils/subscribe.d.ts +46 -0
  101. package/dist/src/utils/throttle.d.ts +15 -0
  102. package/dist/src/utils/time.d.ts +20 -0
  103. package/dist/src/utils/totp/sha/common.d.ts +151 -0
  104. package/dist/src/utils/totp/sha/converters.d.ts +88 -0
  105. package/dist/src/utils/totp/sha/custom_types.d.ts +60 -0
  106. package/dist/src/utils/totp/sha/primitives_32.d.ts +98 -0
  107. package/dist/src/utils/totp/sha/primitives_64.d.ts +116 -0
  108. package/dist/src/utils/totp/sha/sha.d.ts +103 -0
  109. package/dist/src/utils/totp/sha/sha1.d.ts +18 -0
  110. package/dist/src/utils/totp/sha/sha256.d.ts +20 -0
  111. package/dist/src/utils/totp/sha/sha3.d.ts +53 -0
  112. package/dist/src/utils/totp/sha/sha512.d.ts +21 -0
  113. package/dist/src/utils/totp/totp.d.ts +23 -0
  114. package/dist/src/utils/visual/application.d.ts +14 -0
  115. package/dist/src/utils/visual/demo/index.d.ts +1 -0
  116. package/dist/src/utils/visual/demo/sankey.d.ts +2 -0
  117. package/dist/src/utils/visual/enums.d.ts +27 -0
  118. package/dist/src/utils/visual/event/boundary.d.ts +22 -0
  119. package/dist/src/utils/visual/event/event.d.ts +14 -0
  120. package/dist/src/utils/visual/event/index.d.ts +6 -0
  121. package/dist/src/utils/visual/event/types.d.ts +32 -0
  122. package/dist/src/utils/visual/graphics/graphics.d.ts +81 -0
  123. package/dist/src/utils/visual/graphics/graphicsData.d.ts +13 -0
  124. package/dist/src/utils/visual/graphics/graphicsGeometry.d.ts +35 -0
  125. package/dist/src/utils/visual/graphics/index.d.ts +4 -0
  126. package/dist/src/utils/visual/index.d.ts +7 -0
  127. package/dist/src/utils/visual/math/bezier.d.ts +2 -0
  128. package/dist/src/utils/visual/math/enums.d.ts +3 -0
  129. package/dist/src/utils/visual/math/index.d.ts +5 -0
  130. package/dist/src/utils/visual/math/matrix.d.ts +113 -0
  131. package/dist/src/utils/visual/math/transform.d.ts +29 -0
  132. package/dist/src/utils/visual/render/batchRenderer.d.ts +72 -0
  133. package/dist/src/utils/visual/render/canvasRenderer.d.ts +10 -0
  134. package/dist/src/utils/visual/render/index.d.ts +3 -0
  135. package/dist/src/utils/visual/render/render.d.ts +15 -0
  136. package/dist/src/utils/visual/render/utils/batch/index.d.ts +90 -0
  137. package/dist/src/utils/visual/render/utils/float.d.ts +63 -0
  138. package/dist/src/utils/visual/render/utils/index.d.ts +3 -0
  139. package/dist/src/utils/visual/render/utils/verticy.d.ts +13 -0
  140. package/dist/src/utils/visual/render/utils/webgl/batchPool.d.ts +28 -0
  141. package/dist/src/utils/visual/render/utils/webgl/initShader.d.ts +2 -0
  142. package/dist/src/utils/visual/render/utils/webgl/shaders.d.ts +2 -0
  143. package/dist/src/utils/visual/render/utils/webgpu/shaders.d.ts +8 -0
  144. package/dist/src/utils/visual/render/webGPURenderer.d.ts +49 -0
  145. package/dist/src/utils/visual/render/webGlRenderer.d.ts +17 -0
  146. package/dist/src/utils/visual/shape/circle.d.ts +11 -0
  147. package/dist/src/utils/visual/shape/ellipse.d.ts +12 -0
  148. package/dist/src/utils/visual/shape/index.d.ts +7 -0
  149. package/dist/src/utils/visual/shape/polygon.d.ts +11 -0
  150. package/dist/src/utils/visual/shape/rectangle.d.ts +12 -0
  151. package/dist/src/utils/visual/shape/roundedRectangle.d.ts +13 -0
  152. package/dist/src/utils/visual/shape/shape.d.ts +6 -0
  153. package/dist/src/utils/visual/style/fill.d.ts +8 -0
  154. package/dist/src/utils/visual/style/index.d.ts +3 -0
  155. package/dist/src/utils/visual/style/line.d.ts +10 -0
  156. package/dist/src/utils/visual/types.d.ts +17 -0
  157. package/dist/src/utils/visual/vertex/container.d.ts +73 -0
  158. package/dist/src/utils/visual/vertex/index.d.ts +5 -0
  159. package/dist/src/utils/visual/vertex/point.d.ts +18 -0
  160. package/dist/src/utils/visual/vertex/vertex.d.ts +36 -0
  161. package/dist/src/vnode/chainDom.d.ts +47 -0
  162. package/dist/src/vnode/h.d.ts +6 -0
  163. package/dist/src/vnode/hooks.d.ts +23 -0
  164. package/dist/src/vnode/htmlDomApi.d.ts +33 -0
  165. package/dist/src/vnode/init.d.ts +2 -0
  166. package/dist/src/vnode/is.d.ts +5 -0
  167. package/dist/src/vnode/modules/attributes.d.ts +8 -0
  168. package/dist/src/vnode/modules/class.d.ts +8 -0
  169. package/dist/src/vnode/modules/index.d.ts +3 -0
  170. package/dist/src/vnode/modules/listeners.d.ts +12 -0
  171. package/dist/src/vnode/modules/props.d.ts +8 -0
  172. package/dist/src/vnode/modules/style.d.ts +14 -0
  173. package/dist/src/vnode/vnode.d.ts +31 -0
  174. package/dist/src/wasm/index.d.ts +2 -0
  175. package/dist/src/wasm/index.js +346 -0
  176. package/dist/src/wasm/word.d.ts +17 -0
  177. package/dist/src/wicket/bridge.d.ts +4 -0
  178. package/dist/src/wicket/index.d.ts +29 -0
  179. package/dist/test/arithmetic.test.d.ts +1 -0
  180. package/dist/test/cloneDeep.test.d.ts +1 -0
  181. package/dist/test/encodeUrl.test.d.ts +1 -0
  182. package/dist/test/escapeHtml.test.d.ts +1 -0
  183. package/dist/test/is-equal.test.d.ts +1 -0
  184. package/dist/test/mimeType.test.d.ts +1 -0
  185. package/dist/test/server.test.d.ts +1 -0
  186. package/dist/test/sort.test.d.ts +1 -0
  187. package/dist/test/status.test.d.ts +1 -0
  188. package/dist/test/totp.test.d.ts +1 -0
  189. package/dist/test/utils/compose.test.d.ts +1 -0
  190. package/dist/test/utils/mergeObj.test.d.ts +1 -0
  191. package/dist/test/utils/ocr.test.d.ts +1 -0
  192. package/dist/test/visual/math.test.d.ts +1 -0
  193. package/dist/test/vnode/index.d.ts +1 -0
  194. package/dist/test/vnode/server.d.ts +2 -0
  195. package/dist/test/vnode/vnode.d.ts +1 -0
  196. package/dist/test/websocket.test.d.ts +1 -0
  197. package/dist/test/writeFile.test.d.ts +1 -0
  198. package/dist/umd/index.umd.cjs +1 -0
  199. package/dist/umd/ml/ml.umd.cjs +1 -0
  200. package/dist/umd/node/node.umd.cjs +1 -0
  201. package/dist/umd/react/react.umd.cjs +1 -0
  202. package/dist/umd/utils/utils.umd.cjs +1 -0
  203. package/dist/umd/wasm/wasm.umd.cjs +1 -0
  204. package/dist/vite.config.d.ts +11 -0
  205. package/dist/ws-D7Jt2dzL.js +703 -0
  206. package/package.json +70 -13
  207. package/readme.md +91 -0
  208. package/typings.d.ts +28 -0
  209. package/dist/index.js.map +0 -1
  210. package/dist/index.umd.cjs +0 -2
  211. package/dist/index.umd.cjs.map +0 -1
@@ -0,0 +1,90 @@
1
+ import type { BatchRenderer } from '@/utils/visual/render/batchRenderer';
2
+ import type { Container } from '@/utils/visual/vertex/container';
3
+ import type { Fill } from '@/utils/visual/style';
4
+ import type { Graphics } from '@/utils/visual/graphics';
5
+ /**
6
+ * 构建大数组
7
+ */
8
+ export declare const buildArray: (batchRenderer: BatchRenderer, container: Container) => void;
9
+ /**
10
+ * 更新大数组
11
+ */
12
+ export declare const updateArray: (floatView: Float32Array, container: Container) => void;
13
+ export declare abstract class Batch {
14
+ /**
15
+ * 顶点个数
16
+ */
17
+ vertexCount: number;
18
+ /**
19
+ * 顶点下标个数
20
+ */
21
+ indexCount: number;
22
+ /**
23
+ * rgba 的小端序形式
24
+ */
25
+ rgba: number;
26
+ /**
27
+ * 顶点数据在大数组中的起点
28
+ */
29
+ vertexStart: number;
30
+ /**
31
+ * 顶点下标数据在大数组中的起点
32
+ */
33
+ indexStart: number;
34
+ /**
35
+ * 将顶点数据写入大数组中
36
+ */
37
+ abstract packVertices(floatView: Float32Array, intView: Uint32Array): void;
38
+ /**
39
+ * 将顶点下标数据写入大数组中
40
+ */
41
+ abstract packIndices(int32: Uint32Array): void;
42
+ /**
43
+ * 在大数组中更新顶点位置数据
44
+ */
45
+ abstract updateVertices(floatView: Float32Array): void;
46
+ }
47
+ export declare class BatchPart {
48
+ style: Fill;
49
+ vertexStart: number;
50
+ indexStart: number;
51
+ vertexCount: number;
52
+ indexCount: number;
53
+ constructor(style: Fill);
54
+ start(vertexStart: number, indexStart: number): void;
55
+ end(vertexCount: number, indexCount: number): void;
56
+ }
57
+ export declare abstract class BatchPool {
58
+ protected idx: number;
59
+ abstract getOne(): Batch;
60
+ reset(): void;
61
+ }
62
+ export declare class GraphicsBatchPool extends BatchPool {
63
+ private batches;
64
+ constructor();
65
+ getOne(): GraphicsBatch;
66
+ }
67
+ export declare class GraphicsBatch extends Batch {
68
+ /**
69
+ * 顶点部分在 geometry.vertices 中的起始下标
70
+ */
71
+ vertexOffset: number;
72
+ /**
73
+ * 顶点下标部分在 geometry.indices 中的起始下标
74
+ */
75
+ indexOffset: number;
76
+ /**
77
+ * 对应的 Graphics 实例
78
+ */
79
+ graphics: Graphics;
80
+ packVertices(floatView: Float32Array, intView: Uint32Array): void;
81
+ packIndices(int32: Uint32Array): void;
82
+ updateVertices(floatView: Float32Array): void;
83
+ }
84
+ declare class BatchPools {
85
+ private batchesMap;
86
+ get(type: string): Batch;
87
+ reset(): void;
88
+ }
89
+ export declare const batchPool: BatchPools;
90
+ export {};
@@ -0,0 +1,63 @@
1
+ export declare class CustomFloatArray {
2
+ private _oldLength;
3
+ private _length;
4
+ private curMaxLen;
5
+ private float32;
6
+ private _data;
7
+ /**
8
+ * 获取长度
9
+ */
10
+ get length(): number;
11
+ /**
12
+ * 拼接一个 number 数组
13
+ */
14
+ concat(arr: number[]): void;
15
+ /**
16
+ * 插入数据
17
+ * @param num 要插入的数
18
+ */
19
+ push(num: number): void;
20
+ /**
21
+ * 扩容
22
+ */
23
+ expandCapacity(): void;
24
+ /**
25
+ * 以从 0 到 this.length 的这段 buffer 为底层,建立 Float32Array 视图并返回
26
+ */
27
+ get data(): Float32Array;
28
+ /**
29
+ * 清空
30
+ */
31
+ clear(): void;
32
+ }
33
+ export declare class CustomIntArray {
34
+ private _oldLength;
35
+ private _length;
36
+ private curMaxLen;
37
+ private int32;
38
+ private _data;
39
+ /**
40
+ * 获取长度
41
+ */
42
+ get length(): number;
43
+ /**
44
+ * 拼接一个 number 数组
45
+ */
46
+ concat(arr: number[]): void;
47
+ /**
48
+ * 拼接一个UInt16数组
49
+ */
50
+ concatUInt16(uint16: Uint32Array): void;
51
+ /**
52
+ * 扩容
53
+ */
54
+ expandCapacity(): void;
55
+ /**
56
+ * 以从 0 到 this.length 的这段 buffer 为底层,建立 Uint32Array 视图并返回
57
+ */
58
+ get data(): Uint32Array;
59
+ /**
60
+ * 清空
61
+ */
62
+ clear(): void;
63
+ }
@@ -0,0 +1,3 @@
1
+ export declare const getRgb: (color: string) => [number, number, number];
2
+ export declare const toRgbaLittleEndian: (color: string, alpha: number) => number;
3
+ export declare const toRgbArray: (color: string) => [number, number, number];
@@ -0,0 +1,13 @@
1
+ import type { GraphicsData } from '@/utils/visual/graphics/graphicsData';
2
+ import type { GraphicsGeometry } from '@/utils/visual/graphics/graphicsGeometry';
3
+ /**
4
+ * 将一个图形顶点化
5
+ * @param data 子图形data
6
+ */
7
+ export declare const buildVertices: (data: GraphicsData) => void;
8
+ export declare const triangulateFill: (data: GraphicsData, geometry: GraphicsGeometry) => void;
9
+ export declare const getNormalVector: (x: number, y: number, lineWidth: number) => [number, number];
10
+ /**
11
+ * 构建描边的顶点 & 对其进行三角剖分
12
+ */
13
+ export declare const triangulateStroke: (data: GraphicsData, geometry: GraphicsGeometry) => void;
@@ -0,0 +1,28 @@
1
+ import type { WebGLRenderer } from '@/utils/visual/render/webGlRenderer';
2
+ export interface Batch {
3
+ vertices: Float32Array;
4
+ vertexIndices: Uint16Array;
5
+ rgba: number;
6
+ }
7
+ export declare class BatchPool {
8
+ renderer: WebGLRenderer;
9
+ private vertexCount;
10
+ private vertexIndexCount;
11
+ private batches;
12
+ private batchesCount;
13
+ static testDrawCallCount: number;
14
+ private vertexBufferFloatView;
15
+ private vertexBufferIntView;
16
+ private vertexBufferPool;
17
+ private vertexIndexBuffer;
18
+ private vertexIndexBufferPool;
19
+ private curVertexBufferSize;
20
+ private curVertexIndexBufferSize;
21
+ private curElementCount;
22
+ constructor(renderer: WebGLRenderer);
23
+ private setBuffer;
24
+ push(batch: Batch): void;
25
+ private draw;
26
+ private packData;
27
+ flush(): void;
28
+ }
@@ -0,0 +1,2 @@
1
+ import type { WebGLRenderer } from '@/utils/visual/render/webGlRenderer';
2
+ export declare const initShader: (renderer: WebGLRenderer) => WebGLProgram;
@@ -0,0 +1,2 @@
1
+ export declare const vertexShaderSource: string;
2
+ export declare const fragmentShaderSource: string;
@@ -0,0 +1,8 @@
1
+ /**
2
+ * 顶点着色器
3
+ */
4
+ export declare const vertexShaderSource = "\n@group(0) @binding(0) var<uniform> u_root_transform: mat3x3<f32>;\n@group(0) @binding(1) var<uniform> u_projection_matrix: mat3x3<f32>;\n\nstruct VertOutput {\n @builtin(position) v_position: vec4<f32>,\n @location(0) v_color : vec4<f32>,\n};\n\n@vertex\nfn main(\n @location(0) a_position: vec2<f32>,\n @location(1) a_color: vec4<f32>,\n) -> VertOutput {\n let v_position = vec4<f32>((u_projection_matrix * u_root_transform * vec3<f32>(a_position, 1.0)).xy, 0.0, 1.0);\n\n let v_color = a_color;\n\n return VertOutput(v_position, v_color);\n}\n";
5
+ /**
6
+ * 片元着色器
7
+ */
8
+ export declare const fragmentShaderSource = "\n@fragment\nfn main(\n @location(0) v_color : vec4<f32>,\n) -> @location(0) vec4<f32> {\n return v_color;\n}\n";
@@ -0,0 +1,49 @@
1
+ import { BatchRenderer } from '@/utils/visual/render/batchRenderer';
2
+ import type { IApplicationOptions } from '@/utils/visual/types';
3
+ export declare class WebGPURenderer extends BatchRenderer {
4
+ private gpu;
5
+ private device;
6
+ private pipeline;
7
+ private renderPassDescriptor;
8
+ private options;
9
+ /**
10
+ * 顶点的 webGPU buffer
11
+ */
12
+ private gpuVertexBuffer;
13
+ /**
14
+ * 顶点下标的 webGPU buffer
15
+ */
16
+ private gpuIndexBuffer;
17
+ /**
18
+ * 投影矩阵的 webGPU buffer
19
+ */
20
+ private projectionMatBuffer;
21
+ /**
22
+ * stage 的变换矩阵的 webGPU buffer
23
+ */
24
+ private stageMatBuffer;
25
+ /**
26
+ * uniform 变量的 bind group
27
+ */
28
+ private uniformBindGroup;
29
+ constructor(options: IApplicationOptions);
30
+ init(): Promise<void>;
31
+ protected draw(): void;
32
+ private initUniformBindGroup;
33
+ private initGpuBuffer;
34
+ protected updateBuffer(): void;
35
+ protected setRootTransform(a: number, b: number, c: number, d: number, tx: number, ty: number): void;
36
+ protected setProjectionMatrix(): void;
37
+ /**
38
+ * 初始化 pipeline
39
+ */
40
+ private createPipeline;
41
+ /**
42
+ * 初始化 device
43
+ */
44
+ private initDevice;
45
+ /**
46
+ * 初始化 renderPassDescriptor
47
+ */
48
+ private initRenderPassDescriptor;
49
+ }
@@ -0,0 +1,17 @@
1
+ import { Renderer } from '@/utils/visual/render/render';
2
+ import { BatchPool } from '@/utils/visual/render/utils/webgl/batchPool';
3
+ import type { IApplicationOptions } from '@/utils/visual/types';
4
+ import type { Container } from '@/utils/visual/vertex/container';
5
+ export declare class WebGLRenderer extends Renderer {
6
+ gl: WebGLRenderingContext;
7
+ batchPool: BatchPool;
8
+ private program;
9
+ private unifLoc;
10
+ constructor(options: IApplicationOptions);
11
+ /**
12
+ * 设置投影矩阵
13
+ */
14
+ private setProjectionMatrix;
15
+ private setRootTransform;
16
+ render(rootContainer: Container): void;
17
+ }
@@ -0,0 +1,11 @@
1
+ import { Shape } from '@/utils/visual/shape/shape';
2
+ import { SHAPE_TYPE } from '@/utils/visual/enums';
3
+ import type { Point } from '@/utils/visual/vertex/point';
4
+ export declare class Circle extends Shape {
5
+ x: number;
6
+ y: number;
7
+ radius: number;
8
+ readonly type = SHAPE_TYPE.CIRCLE;
9
+ constructor(x?: number, y?: number, radius?: number);
10
+ contains(p: Point): boolean;
11
+ }
@@ -0,0 +1,12 @@
1
+ import { Shape } from '@/utils/visual/shape/shape';
2
+ import { SHAPE_TYPE } from '@/utils/visual/enums';
3
+ import type { Point } from '@/utils/visual/vertex/point';
4
+ export declare class Ellipse extends Shape {
5
+ x: number;
6
+ y: number;
7
+ radiusX: number;
8
+ radiusY: number;
9
+ readonly type = SHAPE_TYPE.ELLIPSE;
10
+ constructor(x?: number, y?: number, radiusX?: number, radiusY?: number);
11
+ contains(p: Point): boolean;
12
+ }
@@ -0,0 +1,7 @@
1
+ import { Circle } from '@/utils/visual/shape/circle';
2
+ import { Ellipse } from '@/utils/visual/shape/ellipse';
3
+ import { Polygon } from '@/utils/visual/shape/polygon';
4
+ import { Rectangle } from '@/utils/visual/shape/rectangle';
5
+ import { Shape } from '@/utils/visual/shape/shape';
6
+ import { RoundedRectangle } from '@/utils/visual/shape/roundedRectangle';
7
+ export { Shape, Circle, Ellipse, Polygon, Rectangle, RoundedRectangle };
@@ -0,0 +1,11 @@
1
+ import { Shape } from '@/utils/visual/shape/shape';
2
+ import { SHAPE_TYPE } from '@/utils/visual/enums';
3
+ import type { Point } from '@/utils/visual/vertex/point';
4
+ export declare class Polygon extends Shape {
5
+ points: number[];
6
+ closeStroke: boolean;
7
+ type: SHAPE_TYPE;
8
+ constructor(points?: number[]);
9
+ private isIntersect;
10
+ contains(p: Point): boolean;
11
+ }
@@ -0,0 +1,12 @@
1
+ import { Shape } from '@/utils/visual/shape/shape';
2
+ import { SHAPE_TYPE } from '@/utils/visual/enums';
3
+ import type { Point } from '@/utils/visual/vertex/point';
4
+ export declare class Rectangle extends Shape {
5
+ x: number;
6
+ y: number;
7
+ width: number;
8
+ height: number;
9
+ type: SHAPE_TYPE;
10
+ constructor(x?: number, y?: number, width?: number, height?: number);
11
+ contains(p: Point): boolean;
12
+ }
@@ -0,0 +1,13 @@
1
+ import { Shape } from '@/utils/visual/shape/shape';
2
+ import { SHAPE_TYPE } from '@/utils/visual/enums';
3
+ import type { Point } from '@/utils/visual/vertex/point';
4
+ export declare class RoundedRectangle extends Shape {
5
+ x: number;
6
+ y: number;
7
+ width: number;
8
+ height: number;
9
+ radius: number;
10
+ readonly type = SHAPE_TYPE.ROUNDED_RECTANGLE;
11
+ constructor(x?: number, y?: number, width?: number, height?: number, radius?: number);
12
+ contains(p: Point): boolean;
13
+ }
@@ -0,0 +1,6 @@
1
+ import type { SHAPE_TYPE } from '@/utils/visual/enums';
2
+ import type { Point } from '@/utils/visual/vertex/point';
3
+ export declare abstract class Shape {
4
+ abstract type: SHAPE_TYPE;
5
+ abstract contains(point: Point): boolean;
6
+ }
@@ -0,0 +1,8 @@
1
+ export declare class Fill {
2
+ color: string;
3
+ alpha: number;
4
+ visible: boolean;
5
+ constructor();
6
+ clone(): Fill;
7
+ reset(): void;
8
+ }
@@ -0,0 +1,3 @@
1
+ import { Fill } from '@/utils/visual/style/fill';
2
+ import { Line } from '@/utils/visual/style/line';
3
+ export { Fill, Line };
@@ -0,0 +1,10 @@
1
+ import { LINE_CAP, LINE_JOIN } from '@/utils/visual/enums';
2
+ import { Fill } from '@/utils/visual/style/fill';
3
+ export declare class Line extends Fill {
4
+ width: number;
5
+ cap: LINE_CAP;
6
+ join: LINE_JOIN;
7
+ miterLimit: number;
8
+ clone(): Line;
9
+ reset(): void;
10
+ }
@@ -0,0 +1,17 @@
1
+ import type { LINE_CAP, LINE_JOIN, RENDERER_TYPE } from '@/utils/visual/enums';
2
+ export interface IApplicationOptions {
3
+ prefer?: RENDERER_TYPE.CANVAS | RENDERER_TYPE.WEB_GL | RENDERER_TYPE.WEB_GPU;
4
+ view?: HTMLCanvasElement;
5
+ backgroundColor?: string;
6
+ backgroundAlpha?: number;
7
+ }
8
+ export interface IFillStyleOptions {
9
+ color?: string;
10
+ alpha?: number;
11
+ visible?: boolean;
12
+ }
13
+ export interface ILineStyleOptions extends IFillStyleOptions {
14
+ width?: number;
15
+ cap?: LINE_CAP;
16
+ join?: LINE_JOIN;
17
+ }
@@ -0,0 +1,73 @@
1
+ import { Vertex } from '@/utils/visual/vertex/vertex';
2
+ import type { CanvasRenderer } from '@/utils/visual/render/canvasRenderer';
3
+ import type { Point } from '@/utils/visual/vertex/point';
4
+ import type { WebGLRenderer } from '@/utils/visual/render/webGlRenderer';
5
+ import type { BatchRenderer } from '@/utils/visual/render/batchRenderer';
6
+ import type { Batch } from '@/utils/visual/render/utils/batch/index';
7
+ export declare class Container extends Vertex {
8
+ isSort: boolean;
9
+ type: string;
10
+ /**
11
+ * 所有子元素
12
+ */
13
+ readonly children: Container[];
14
+ /**
15
+ * 用来标记 worldTransform 是否发生了改变
16
+ */
17
+ protected worldId: number;
18
+ /**
19
+ * 所有 batch
20
+ */
21
+ protected batches: Batch[];
22
+ /**
23
+ * batch 总数
24
+ */
25
+ protected batchCount: number;
26
+ constructor();
27
+ /**
28
+ * @description: 添加子元素
29
+ * @param {Container} child
30
+ * @return {*}
31
+ */
32
+ addChild: (child: Container) => void;
33
+ /**
34
+ * @description:删除子元素
35
+ * @param {Container} child
36
+ * @return {void}
37
+ */
38
+ removeChild: (child: Container) => void;
39
+ /**
40
+ * @description: 根据 z-index 排序子元素
41
+ * @return {*}
42
+ */
43
+ sortChildren: () => void;
44
+ /**
45
+ * 渲染自身,在 container 上面没有东西要渲染,所以这个函数的内容为空
46
+ */
47
+ protected renderCanvas(render: CanvasRenderer): void;
48
+ /**
49
+ * 递归渲染以自身为根的整棵节点树
50
+ */
51
+ renderCanvasRecursive: (render: CanvasRenderer) => void;
52
+ /**
53
+ * 递归更新当前元素以及所有子元素的 transform
54
+ */
55
+ updateTransform: () => void;
56
+ containsPoint: (p: Point) => boolean;
57
+ /**
58
+ * 使用 webGL,渲染自身,在 container 上面没有东西要渲染,所以这个函数的内容为空
59
+ */
60
+ protected renderWebGL(renderer: WebGLRenderer): void;
61
+ /**
62
+ * 使用 webGL,递归渲染以自身为根的整棵节点树
63
+ */
64
+ renderWebGLRecursive(renderer: WebGLRenderer): void;
65
+ /**
66
+ * 构建自身的 batch
67
+ */
68
+ buildBatches(batchRenderer: BatchRenderer): void;
69
+ /**
70
+ * 更新自身的所有 batch 对应的大数组中的顶点
71
+ */
72
+ updateBatches(floatView: Float32Array): void;
73
+ }
@@ -0,0 +1,5 @@
1
+ import { Application } from '@/utils/visual/application';
2
+ import { Container } from '@/utils/visual/vertex/container';
3
+ import { ObservablePoint, Point } from '@/utils/visual/vertex/point';
4
+ import { Vertex } from '@/utils/visual/vertex/vertex';
5
+ export { Application, Container, Point, ObservablePoint, Vertex };
@@ -0,0 +1,18 @@
1
+ export declare class Point {
2
+ x: number;
3
+ y: number;
4
+ constructor(x?: number, y?: number);
5
+ set(x?: number, y?: number): void;
6
+ clone: () => Point;
7
+ }
8
+ export declare class ObservablePoint<T = never> {
9
+ private _x;
10
+ private _y;
11
+ private cb;
12
+ constructor(cb: (...args: T[]) => void, x?: number, y?: number);
13
+ set(x?: number, y?: number): void;
14
+ get x(): number;
15
+ set x(value: number);
16
+ get y(): number;
17
+ set y(value: number);
18
+ }
@@ -0,0 +1,36 @@
1
+ import { SyncHook } from '@/utils/subscribe';
2
+ import { Transform } from '@/utils/visual/math/transform';
3
+ import type { Container } from '@/utils/visual/vertex/container';
4
+ import type { ObservablePoint } from '@/utils/visual/vertex/point';
5
+ import type { Matrix } from '@/utils/visual/math/matrix';
6
+ import type { Cursor, FederatedEventMap } from '@/utils/visual/event';
7
+ import type { Shape } from '@/utils/visual/shape';
8
+ export declare abstract class Vertex extends SyncHook {
9
+ protected _zIndex: number;
10
+ parent: Container | undefined;
11
+ visible: boolean;
12
+ transform: Transform;
13
+ alpha: number;
14
+ worldAlpha: number;
15
+ hitArea: Shape | null;
16
+ cursor: Cursor;
17
+ get zIndex(): number;
18
+ set zIndex(value: number);
19
+ get position(): ObservablePoint;
20
+ get localTransform(): Matrix;
21
+ get worldTransform(): Matrix;
22
+ get x(): number;
23
+ set x(value: number);
24
+ get y(): number;
25
+ set y(value: number);
26
+ get scale(): ObservablePoint;
27
+ get pivot(): ObservablePoint;
28
+ get skew(): ObservablePoint;
29
+ get rotation(): number;
30
+ set rotation(value: number);
31
+ get angle(): number;
32
+ set angle(value: number);
33
+ updateTransform(): void;
34
+ addEventListener: <K extends keyof FederatedEventMap>(type: K, listener: (e: FederatedEventMap[K]) => unknown, options?: boolean | AddEventListenerOptions) => void;
35
+ removeEventListener: <K extends keyof FederatedEventMap>(type: K, listener: (e: FederatedEventMap[K]) => unknown, capture?: boolean) => void;
36
+ }
@@ -0,0 +1,47 @@
1
+ /**
2
+ * @description: 链式调用的 dom 操作
3
+ * @return {HTMLElement}
4
+ */
5
+ export declare class Chain {
6
+ element: HTMLElement;
7
+ constructor(tagName: string, options?: ElementCreationOptions);
8
+ /**
9
+ * @description: 创建元素
10
+ * @param {string} tagName
11
+ * @param {ElementCreationOptions} options
12
+ * @return {Chain}
13
+ */
14
+ create: (tagName: string, options?: ElementCreationOptions) => HTMLElement;
15
+ /**
16
+ * @description: 设置当前元素的属性
17
+ * @param {string} name
18
+ * @param {string} value
19
+ * @return {Chain}
20
+ */
21
+ setAttribute: (name: string, value: string) => Chain;
22
+ /**
23
+ * @description: 移除当前元素的属性
24
+ * @param {string} name
25
+ * @return {Chain}
26
+ */
27
+ removeAttribute: (name: string) => Chain;
28
+ /**
29
+ * @description: 当前元素添加子元素
30
+ * @param {HTMLElement} child
31
+ * @return {ChainElement}
32
+ */
33
+ append: (child: HTMLElement) => Chain;
34
+ /**
35
+ * @description: 当前元素移除子元素
36
+ * @param {HTMLElement} child
37
+ * @return {Chain}
38
+ */
39
+ remove: (child: HTMLElement) => Chain;
40
+ /**
41
+ * @description: 给当前元素设置文本内容
42
+ * @param {string} text
43
+ * @return {Chain}
44
+ */
45
+ setTextContent: (text: string) => Chain;
46
+ }
47
+ export declare const create: (tagName: string, options?: ElementCreationOptions) => Chain;
@@ -0,0 +1,6 @@
1
+ import type { VNode, VNodeChildren, VNodeData } from './vnode';
2
+ export declare function addNS(data: VNodeData, children: Array<VNode | string | number> | undefined, sel: string | undefined): void;
3
+ export declare function h(sel: string): VNode;
4
+ export declare function h(sel: string, data: VNodeData | null): VNode;
5
+ export declare function h(sel: string, children: VNodeChildren): VNode;
6
+ export declare function h(sel: string, data: VNodeData | null, children: VNodeChildren): VNode;
@@ -0,0 +1,23 @@
1
+ import type { VNode } from './vnode';
2
+ export type PreHook = () => any;
3
+ export type InitHook = (vNode: VNode) => any;
4
+ export type CreateHook = (emptyVNode: VNode, vNode: VNode) => any;
5
+ export type InsertHook = (vNode: VNode) => any;
6
+ export type PrePatchHook = (oldVNode: VNode, vNode: VNode) => any;
7
+ export type UpdateHook = (oldVNode: VNode, vNode: VNode) => any;
8
+ export type PostPatchHook = (oldVNode: VNode, vNode: VNode) => any;
9
+ export type DestroyHook = (vNode: VNode) => any;
10
+ export type RemoveHook = (vNode: VNode, removeCallback: () => void) => any;
11
+ export type PostHook = () => any;
12
+ export interface Hooks {
13
+ pre?: PreHook;
14
+ init?: InitHook;
15
+ create?: CreateHook;
16
+ insert?: InsertHook;
17
+ prepatch?: PrePatchHook;
18
+ update?: UpdateHook;
19
+ postpatch?: PostPatchHook;
20
+ destroy?: DestroyHook;
21
+ remove?: RemoveHook;
22
+ post?: PostHook;
23
+ }
@@ -0,0 +1,33 @@
1
+ export interface Fragment extends DocumentFragment {
2
+ parent: Node | null;
3
+ firstChildNode: ChildNode | null;
4
+ lastChildNode: ChildNode | null;
5
+ }
6
+ export interface DOMAPI {
7
+ createElement: (tagName: any, options?: ElementCreationOptions) => HTMLElement;
8
+ createElementNS: (namespaceURI: string, qualifiedName: string, options?: ElementCreationOptions) => Element;
9
+ /**
10
+ * @experimental
11
+ * @todo Make it required when the fragment is considered stable.
12
+ */
13
+ createDocumentFragment?: () => Fragment;
14
+ createTextNode: (text: string) => Text;
15
+ createComment: (text: string) => Comment;
16
+ insertBefore: (parentNode: Node, newNode: Node, referenceNode: Node | null) => void;
17
+ removeChild: (node: Node, child: Node) => void;
18
+ appendChild: (node: Node, child: Node) => void;
19
+ parentNode: (node: Node) => Node | null;
20
+ nextSibling: (node: Node) => Node | null;
21
+ tagName: (elm: Element) => string;
22
+ setTextContent: (node: Node, text: string | null) => void;
23
+ getTextContent: (node: Node) => string | null;
24
+ isElement: (node: Node) => node is Element;
25
+ isText: (node: Node) => node is Text;
26
+ isComment: (node: Node) => node is Comment;
27
+ /**
28
+ * @experimental
29
+ * @todo Make it required when the fragment is considered stable.
30
+ */
31
+ isDocumentFragment?: (node: Node) => node is DocumentFragment;
32
+ }
33
+ export declare const htmlDomApi: DOMAPI;