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.
- package/LICENSE +21 -0
- package/dist/build/build.es.d.ts +2 -0
- package/dist/build/build.umd.d.ts +2 -0
- package/dist/build/build.umd.ml.d.ts +2 -0
- package/dist/build/build.umd.node.d.ts +2 -0
- package/dist/build/build.umd.react.d.ts +2 -0
- package/dist/build/build.umd.utils.d.ts +2 -0
- package/dist/build/build.umd.wasm.d.ts +2 -0
- package/dist/color-BgjAdNyp.js +82296 -0
- package/dist/examples/clone-deep-example.d.ts +1 -0
- package/dist/examples/is-equal-example.d.ts +1 -0
- package/dist/index.d.ts +9 -9
- package/dist/index.js +151 -84
- package/dist/plugins/vite-plugins-banner.d.ts +2 -0
- package/dist/reactify-Z-V9Vblb.js +83 -0
- package/dist/src/arithmetic/index.d.ts +186 -0
- package/dist/src/cache/expires.d.ts +1 -0
- package/dist/src/ml/index.d.ts +2 -0
- package/dist/src/ml/index.js +1243 -0
- package/dist/src/ml/ocr.d.ts +11 -0
- package/dist/src/node/appendFile.d.ts +7 -0
- package/dist/src/node/body.d.ts +9 -0
- package/dist/src/node/color.d.ts +7 -0
- package/dist/src/node/command.d.ts +8 -0
- package/dist/src/node/ctx2req.d.ts +5 -0
- package/dist/src/node/fileInfo.d.ts +7 -0
- package/dist/src/node/fs.d.ts +7 -0
- package/dist/src/node/get.d.ts +10 -0
- package/dist/src/node/getIPAdress.d.ts +1 -0
- package/dist/src/node/index.d.ts +25 -0
- package/dist/src/node/index.js +54 -0
- package/dist/src/node/isColorSupported.d.ts +2 -0
- package/dist/src/node/paresUrl.d.ts +19 -0
- package/dist/src/node/readDir.d.ts +6 -0
- package/dist/src/node/readFile.d.ts +9 -0
- package/dist/src/node/router.d.ts +42 -0
- package/dist/src/node/send.d.ts +7 -0
- package/dist/src/node/server.d.ts +18 -0
- package/dist/src/node/startTask.d.ts +2 -0
- package/dist/src/node/stream.d.ts +15 -0
- package/dist/src/node/taskEnd.d.ts +2 -0
- package/dist/src/node/traverse.d.ts +17 -0
- package/dist/src/node/watchFile.d.ts +8 -0
- package/dist/src/node/websocket.d.ts +57 -0
- package/dist/src/node/writeFile.d.ts +8 -0
- package/dist/src/node/ws.d.ts +8 -0
- package/dist/src/optimize/index.d.ts +36 -0
- package/dist/src/optimize/promise.d.ts +0 -0
- package/dist/src/ran/commit.d.ts +0 -0
- package/dist/src/ran/dom.d.ts +0 -0
- package/dist/src/ran/hooks.d.ts +0 -0
- package/dist/src/ran/index.d.ts +20 -0
- package/dist/src/ran/min.d.ts +32 -0
- package/dist/src/ran/reconcile.d.ts +0 -0
- package/dist/src/ran/schedule.d.ts +0 -0
- package/dist/src/react/index.d.ts +2 -0
- package/dist/src/react/index.js +4 -0
- package/dist/src/react/reactify.d.ts +2 -0
- package/dist/src/sort/bubble.d.ts +7 -0
- package/dist/src/sort/bucket.d.ts +7 -0
- package/dist/src/sort/count.d.ts +7 -0
- package/dist/src/sort/heap.d.ts +7 -0
- package/dist/src/sort/index.d.ts +0 -0
- package/dist/src/sort/insert.d.ts +7 -0
- package/dist/src/sort/merge.d.ts +7 -0
- package/dist/src/sort/quick.d.ts +7 -0
- package/dist/src/sort/radix.d.ts +7 -0
- package/dist/src/sort/randomArray.d.ts +9 -0
- package/dist/src/sort/select.d.ts +7 -0
- package/dist/src/sort/shell.d.ts +7 -0
- package/dist/src/utils/audioRecorder.d.ts +16 -0
- package/dist/src/utils/behavior.d.ts +15 -0
- package/dist/src/utils/bom.d.ts +230 -0
- package/dist/src/utils/color.d.ts +71 -0
- package/dist/src/utils/compose.d.ts +10 -0
- package/dist/src/utils/console.d.ts +1 -0
- package/dist/src/utils/debounce.d.ts +7 -0
- package/dist/src/utils/device.d.ts +25 -0
- package/dist/src/utils/dom.d.ts +105 -0
- package/dist/src/utils/error.d.ts +1 -0
- package/dist/src/utils/func.d.ts +1 -0
- package/dist/src/utils/img.d.ts +16 -0
- package/dist/src/utils/index.d.ts +35 -0
- package/dist/src/utils/index.js +4548 -0
- package/dist/src/utils/memoize.d.ts +7 -0
- package/dist/src/utils/mimeType.d.ts +9 -0
- package/dist/src/utils/monitor.d.ts +38 -0
- package/dist/src/utils/network.d.ts +39 -0
- package/dist/src/utils/noop.d.ts +2 -0
- package/dist/src/utils/number.d.ts +45 -0
- package/dist/src/utils/obj.d.ts +83 -0
- package/dist/src/utils/performance.d.ts +21 -0
- package/dist/src/utils/queue.d.ts +33 -0
- package/dist/src/utils/report.d.ts +8 -0
- package/dist/src/utils/request.d.ts +17 -0
- package/dist/src/utils/script.d.ts +7 -0
- package/dist/src/utils/signal.d.ts +6 -0
- package/dist/src/utils/storage.d.ts +2 -0
- package/dist/src/utils/str.d.ts +212 -0
- package/dist/src/utils/subscribe.d.ts +46 -0
- package/dist/src/utils/throttle.d.ts +15 -0
- package/dist/src/utils/time.d.ts +20 -0
- package/dist/src/utils/totp/sha/common.d.ts +151 -0
- package/dist/src/utils/totp/sha/converters.d.ts +88 -0
- package/dist/src/utils/totp/sha/custom_types.d.ts +60 -0
- package/dist/src/utils/totp/sha/primitives_32.d.ts +98 -0
- package/dist/src/utils/totp/sha/primitives_64.d.ts +116 -0
- package/dist/src/utils/totp/sha/sha.d.ts +103 -0
- package/dist/src/utils/totp/sha/sha1.d.ts +18 -0
- package/dist/src/utils/totp/sha/sha256.d.ts +20 -0
- package/dist/src/utils/totp/sha/sha3.d.ts +53 -0
- package/dist/src/utils/totp/sha/sha512.d.ts +21 -0
- package/dist/src/utils/totp/totp.d.ts +23 -0
- package/dist/src/utils/visual/application.d.ts +14 -0
- package/dist/src/utils/visual/demo/index.d.ts +1 -0
- package/dist/src/utils/visual/demo/sankey.d.ts +2 -0
- package/dist/src/utils/visual/enums.d.ts +27 -0
- package/dist/src/utils/visual/event/boundary.d.ts +22 -0
- package/dist/src/utils/visual/event/event.d.ts +14 -0
- package/dist/src/utils/visual/event/index.d.ts +6 -0
- package/dist/src/utils/visual/event/types.d.ts +32 -0
- package/dist/src/utils/visual/graphics/graphics.d.ts +81 -0
- package/dist/src/utils/visual/graphics/graphicsData.d.ts +13 -0
- package/dist/src/utils/visual/graphics/graphicsGeometry.d.ts +35 -0
- package/dist/src/utils/visual/graphics/index.d.ts +4 -0
- package/dist/src/utils/visual/index.d.ts +7 -0
- package/dist/src/utils/visual/math/bezier.d.ts +2 -0
- package/dist/src/utils/visual/math/enums.d.ts +3 -0
- package/dist/src/utils/visual/math/index.d.ts +5 -0
- package/dist/src/utils/visual/math/matrix.d.ts +113 -0
- package/dist/src/utils/visual/math/transform.d.ts +29 -0
- package/dist/src/utils/visual/render/batchRenderer.d.ts +72 -0
- package/dist/src/utils/visual/render/canvasRenderer.d.ts +10 -0
- package/dist/src/utils/visual/render/index.d.ts +3 -0
- package/dist/src/utils/visual/render/render.d.ts +15 -0
- package/dist/src/utils/visual/render/utils/batch/index.d.ts +90 -0
- package/dist/src/utils/visual/render/utils/float.d.ts +63 -0
- package/dist/src/utils/visual/render/utils/index.d.ts +3 -0
- package/dist/src/utils/visual/render/utils/verticy.d.ts +13 -0
- package/dist/src/utils/visual/render/utils/webgl/batchPool.d.ts +28 -0
- package/dist/src/utils/visual/render/utils/webgl/initShader.d.ts +2 -0
- package/dist/src/utils/visual/render/utils/webgl/shaders.d.ts +2 -0
- package/dist/src/utils/visual/render/utils/webgpu/shaders.d.ts +8 -0
- package/dist/src/utils/visual/render/webGPURenderer.d.ts +49 -0
- package/dist/src/utils/visual/render/webGlRenderer.d.ts +17 -0
- package/dist/src/utils/visual/shape/circle.d.ts +11 -0
- package/dist/src/utils/visual/shape/ellipse.d.ts +12 -0
- package/dist/src/utils/visual/shape/index.d.ts +7 -0
- package/dist/src/utils/visual/shape/polygon.d.ts +11 -0
- package/dist/src/utils/visual/shape/rectangle.d.ts +12 -0
- package/dist/src/utils/visual/shape/roundedRectangle.d.ts +13 -0
- package/dist/src/utils/visual/shape/shape.d.ts +6 -0
- package/dist/src/utils/visual/style/fill.d.ts +8 -0
- package/dist/src/utils/visual/style/index.d.ts +3 -0
- package/dist/src/utils/visual/style/line.d.ts +10 -0
- package/dist/src/utils/visual/types.d.ts +17 -0
- package/dist/src/utils/visual/vertex/container.d.ts +73 -0
- package/dist/src/utils/visual/vertex/index.d.ts +5 -0
- package/dist/src/utils/visual/vertex/point.d.ts +18 -0
- package/dist/src/utils/visual/vertex/vertex.d.ts +36 -0
- package/dist/src/vnode/chainDom.d.ts +47 -0
- package/dist/src/vnode/h.d.ts +6 -0
- package/dist/src/vnode/hooks.d.ts +23 -0
- package/dist/src/vnode/htmlDomApi.d.ts +33 -0
- package/dist/src/vnode/init.d.ts +2 -0
- package/dist/src/vnode/is.d.ts +5 -0
- package/dist/src/vnode/modules/attributes.d.ts +8 -0
- package/dist/src/vnode/modules/class.d.ts +8 -0
- package/dist/src/vnode/modules/index.d.ts +3 -0
- package/dist/src/vnode/modules/listeners.d.ts +12 -0
- package/dist/src/vnode/modules/props.d.ts +8 -0
- package/dist/src/vnode/modules/style.d.ts +14 -0
- package/dist/src/vnode/vnode.d.ts +31 -0
- package/dist/src/wasm/index.d.ts +2 -0
- package/dist/src/wasm/index.js +346 -0
- package/dist/src/wasm/word.d.ts +17 -0
- package/dist/src/wicket/bridge.d.ts +4 -0
- package/dist/src/wicket/index.d.ts +29 -0
- package/dist/test/arithmetic.test.d.ts +1 -0
- package/dist/test/cloneDeep.test.d.ts +1 -0
- package/dist/test/encodeUrl.test.d.ts +1 -0
- package/dist/test/escapeHtml.test.d.ts +1 -0
- package/dist/test/is-equal.test.d.ts +1 -0
- package/dist/test/mimeType.test.d.ts +1 -0
- package/dist/test/server.test.d.ts +1 -0
- package/dist/test/sort.test.d.ts +1 -0
- package/dist/test/status.test.d.ts +1 -0
- package/dist/test/totp.test.d.ts +1 -0
- package/dist/test/utils/compose.test.d.ts +1 -0
- package/dist/test/utils/mergeObj.test.d.ts +1 -0
- package/dist/test/utils/ocr.test.d.ts +1 -0
- package/dist/test/visual/math.test.d.ts +1 -0
- package/dist/test/vnode/index.d.ts +1 -0
- package/dist/test/vnode/server.d.ts +2 -0
- package/dist/test/vnode/vnode.d.ts +1 -0
- package/dist/test/websocket.test.d.ts +1 -0
- package/dist/test/writeFile.test.d.ts +1 -0
- package/dist/umd/index.umd.cjs +1 -0
- package/dist/umd/ml/ml.umd.cjs +1 -0
- package/dist/umd/node/node.umd.cjs +1 -0
- package/dist/umd/react/react.umd.cjs +1 -0
- package/dist/umd/utils/utils.umd.cjs +1 -0
- package/dist/umd/wasm/wasm.umd.cjs +1 -0
- package/dist/vite.config.d.ts +11 -0
- package/dist/ws-D7Jt2dzL.js +703 -0
- package/package.json +70 -13
- package/readme.md +91 -0
- package/typings.d.ts +28 -0
- package/dist/index.js.map +0 -1
- package/dist/index.umd.cjs +0 -2
- 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,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,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,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;
|