@esengine/ecs-framework 2.0.5 → 2.0.6

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.
@@ -0,0 +1,261 @@
1
+ /**
2
+ * ECS框架加速提供者接口
3
+ *
4
+ * 提供可替换的性能加速实现,专注于ECS实体查询功能
5
+ * 支持JavaScript、WebAssembly等不同后端实现
6
+ */
7
+ // ================================
8
+ // JavaScript实现
9
+ // ================================
10
+ /**
11
+ * JavaScript实现的基础加速提供者
12
+ *
13
+ * 提供纯JavaScript的ECS查询实现,作为默认后端
14
+ */
15
+ export class JavaScriptProvider {
16
+ /**
17
+ * 构造函数
18
+ */
19
+ constructor() {
20
+ this.name = 'JavaScript';
21
+ this.version = '1.0.0';
22
+ this.isWasm = false;
23
+ this.query = new JSQueryProvider();
24
+ }
25
+ /**
26
+ * 初始化提供者
27
+ */
28
+ async initialize() {
29
+ // JavaScript版本无需初始化
30
+ }
31
+ /**
32
+ * 检查是否支持指定功能
33
+ * @param feature 功能名称
34
+ * @returns 是否支持该功能
35
+ */
36
+ supports(feature) {
37
+ const supportedFeatures = [
38
+ 'entity-query', 'batch-operations', 'component-masks'
39
+ ];
40
+ return supportedFeatures.includes(feature);
41
+ }
42
+ /**
43
+ * 获取性能信息
44
+ * @returns 性能统计信息
45
+ */
46
+ getPerformanceInfo() {
47
+ return {
48
+ operationsPerSecond: 1000000, // 100万次/秒
49
+ memoryUsage: 0,
50
+ features: ['entity-query', 'batch-operations', 'component-masks']
51
+ };
52
+ }
53
+ /**
54
+ * 清理资源
55
+ */
56
+ dispose() {
57
+ // JavaScript版本无需清理
58
+ }
59
+ }
60
+ /**
61
+ * JavaScript查询实现
62
+ *
63
+ * 使用Map存储实体掩码,提供基础的查询功能
64
+ */
65
+ class JSQueryProvider {
66
+ constructor() {
67
+ /** 实体掩码存储 */
68
+ this.entityMasks = new Map();
69
+ }
70
+ /**
71
+ * 根据单个组件掩码查询实体
72
+ * @param componentMask 组件掩码
73
+ * @param maxResults 最大结果数量
74
+ * @returns 查询结果
75
+ */
76
+ queryByComponent(componentMask, maxResults) {
77
+ const results = new Uint32Array(maxResults);
78
+ let count = 0;
79
+ for (const [entityId, mask] of this.entityMasks) {
80
+ if ((mask & componentMask) === componentMask && count < maxResults) {
81
+ results[count++] = entityId;
82
+ }
83
+ }
84
+ return { entities: results.slice(0, count), count };
85
+ }
86
+ /**
87
+ * 根据多个组件掩码查询实体(AND操作)
88
+ * @param componentMasks 组件掩码数组
89
+ * @param maxResults 最大结果数量
90
+ * @returns 查询结果
91
+ */
92
+ queryByComponents(componentMasks, maxResults) {
93
+ const results = new Uint32Array(maxResults);
94
+ let count = 0;
95
+ for (const [entityId, mask] of this.entityMasks) {
96
+ let matches = true;
97
+ for (const componentMask of componentMasks) {
98
+ if ((mask & componentMask) !== componentMask) {
99
+ matches = false;
100
+ break;
101
+ }
102
+ }
103
+ if (matches && count < maxResults) {
104
+ results[count++] = entityId;
105
+ }
106
+ }
107
+ return { entities: results.slice(0, count), count };
108
+ }
109
+ /**
110
+ * 查询包含指定组件但排除其他组件的实体
111
+ * @param includeMask 必须包含的组件掩码
112
+ * @param excludeMask 必须排除的组件掩码
113
+ * @param maxResults 最大结果数量
114
+ * @returns 查询结果
115
+ */
116
+ queryExcluding(includeMask, excludeMask, maxResults) {
117
+ const results = new Uint32Array(maxResults);
118
+ let count = 0;
119
+ for (const [entityId, mask] of this.entityMasks) {
120
+ if ((mask & includeMask) === includeMask && (mask & excludeMask) === 0n && count < maxResults) {
121
+ results[count++] = entityId;
122
+ }
123
+ }
124
+ return { entities: results.slice(0, count), count };
125
+ }
126
+ /**
127
+ * 更新实体的组件掩码
128
+ * @param entityId 实体ID
129
+ * @param componentMask 新的组件掩码
130
+ */
131
+ updateEntityMask(entityId, componentMask) {
132
+ this.entityMasks.set(entityId, componentMask);
133
+ }
134
+ /**
135
+ * 批量更新实体掩码
136
+ * @param entityIds 实体ID数组
137
+ * @param masks 掩码数组
138
+ */
139
+ batchUpdateMasks(entityIds, masks) {
140
+ for (let i = 0; i < entityIds.length; i++) {
141
+ this.entityMasks.set(entityIds[i], masks[i]);
142
+ }
143
+ }
144
+ }
145
+ // ================================
146
+ // 管理器类
147
+ // ================================
148
+ /**
149
+ * 加速提供者管理器
150
+ *
151
+ * 管理不同的加速提供者实现,支持动态切换和性能测试
152
+ */
153
+ export class AccelerationManager {
154
+ /**
155
+ * 私有构造函数
156
+ */
157
+ constructor() {
158
+ /** 可用的提供者映射 */
159
+ this.availableProviders = new Map();
160
+ // 默认使用JavaScript提供者
161
+ this.currentProvider = new JavaScriptProvider();
162
+ this.availableProviders.set('javascript', this.currentProvider);
163
+ }
164
+ /**
165
+ * 获取单例实例
166
+ * @returns 管理器实例
167
+ */
168
+ static getInstance() {
169
+ if (!AccelerationManager.instance) {
170
+ AccelerationManager.instance = new AccelerationManager();
171
+ }
172
+ return AccelerationManager.instance;
173
+ }
174
+ /**
175
+ * 注册新的加速提供者
176
+ * @param name 提供者名称
177
+ * @param provider 提供者实例
178
+ */
179
+ registerProvider(name, provider) {
180
+ this.availableProviders.set(name, provider);
181
+ }
182
+ /**
183
+ * 切换加速提供者
184
+ * @param name 提供者名称
185
+ * @returns 是否切换成功
186
+ */
187
+ async setProvider(name) {
188
+ const provider = this.availableProviders.get(name);
189
+ if (!provider) {
190
+ console.warn(`Acceleration provider '${name}' not found`);
191
+ return false;
192
+ }
193
+ try {
194
+ await provider.initialize();
195
+ this.currentProvider = provider;
196
+ console.log(`Switched to acceleration provider: ${provider.name} v${provider.version}`);
197
+ return true;
198
+ }
199
+ catch (error) {
200
+ console.error(`Failed to initialize provider '${name}':`, error);
201
+ return false;
202
+ }
203
+ }
204
+ /**
205
+ * 获取当前提供者
206
+ * @returns 当前提供者实例
207
+ */
208
+ getProvider() {
209
+ return this.currentProvider;
210
+ }
211
+ /**
212
+ * 获取所有可用提供者名称
213
+ * @returns 提供者名称数组
214
+ */
215
+ getAvailableProviders() {
216
+ return Array.from(this.availableProviders.keys());
217
+ }
218
+ /**
219
+ * 自动选择最佳提供者
220
+ * 优先选择WebAssembly提供者,回退到JavaScript提供者
221
+ */
222
+ async selectBestProvider() {
223
+ const providers = Array.from(this.availableProviders.values());
224
+ // 优先选择WebAssembly提供者
225
+ const wasmProvider = providers.find(p => p.isWasm);
226
+ if (wasmProvider) {
227
+ const success = await this.setProvider(wasmProvider.name);
228
+ if (success)
229
+ return;
230
+ }
231
+ // 回退到JavaScript提供者
232
+ await this.setProvider('javascript');
233
+ }
234
+ /**
235
+ * 性能基准测试
236
+ * @returns 各提供者的性能测试结果(操作/秒)
237
+ */
238
+ async benchmarkProviders() {
239
+ const results = new Map();
240
+ for (const [name, provider] of this.availableProviders) {
241
+ try {
242
+ await provider.initialize();
243
+ // 简单的查询性能测试
244
+ const start = performance.now();
245
+ const testMask = 15n; // 测试掩码
246
+ for (let i = 0; i < 10000; i++) {
247
+ provider.query.queryByComponent(testMask, 100);
248
+ }
249
+ const end = performance.now();
250
+ results.set(name, 10000 / (end - start) * 1000); // 操作/秒
251
+ provider.dispose();
252
+ }
253
+ catch (error) {
254
+ console.warn(`Benchmark failed for provider '${name}':`, error);
255
+ results.set(name, 0);
256
+ }
257
+ }
258
+ return results;
259
+ }
260
+ }
261
+ //# sourceMappingURL=AccelerationProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AccelerationProvider.js","sourceRoot":"","sources":["../../src/Utils/AccelerationProvider.ts"],"names":[],"mappings":"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"}
@@ -208,11 +208,11 @@ export class PerformanceMonitor {
208
208
  for (const [systemName, stats] of sortedSystems) {
209
209
  const data = this._systemData.get(systemName);
210
210
  lines.push(`System: ${systemName}`);
211
- lines.push(` Current: ${data === null || data === void 0 ? void 0 : data.executionTime.toFixed(2)}ms (${data === null || data === void 0 ? void 0 : data.entityCount} entities)`);
211
+ lines.push(` Current: ${data?.executionTime.toFixed(2)}ms (${data?.entityCount} entities)`);
212
212
  lines.push(` Average: ${stats.averageTime.toFixed(2)}ms`);
213
213
  lines.push(` Min/Max: ${stats.minTime.toFixed(2)}ms / ${stats.maxTime.toFixed(2)}ms`);
214
214
  lines.push(` Total: ${stats.totalTime.toFixed(2)}ms (${stats.executionCount} calls)`);
215
- if ((data === null || data === void 0 ? void 0 : data.averageTimePerEntity) && data.averageTimePerEntity > 0) {
215
+ if (data?.averageTimePerEntity && data.averageTimePerEntity > 0) {
216
216
  lines.push(` Per Entity: ${data.averageTimePerEntity.toFixed(4)}ms`);
217
217
  }
218
218
  lines.push("");
@@ -1 +1 @@
1
- {"version":3,"file":"PerformanceMonitor.js","sourceRoot":"","sources":["../../src/Utils/PerformanceMonitor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PerformanceMonitor.js","sourceRoot":"","sources":["../../src/Utils/PerformanceMonitor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,152 @@
1
+ /**
2
+ * WebAssembly桥接工具
3
+ *
4
+ * 提供WebAssembly模块的加载、初始化和内存管理功能
5
+ * 为ECS框架提供高性能的底层支持
6
+ */
7
+ import { AccelerationProvider, QueryProvider } from './AccelerationProvider';
8
+ /**
9
+ * WebAssembly模块接口
10
+ * 定义了ECS相关的WASM函数签名
11
+ */
12
+ interface WasmModule {
13
+ /** WebAssembly内存对象 */
14
+ memory: WebAssembly.Memory;
15
+ /** 分配指定大小的内存,返回指针 */
16
+ malloc(size: number): number;
17
+ /** 释放指定指针的内存 */
18
+ free(ptr: number): void;
19
+ /** 根据组件掩码查询实体 */
20
+ query_by_component(maskPtr: number, resultPtr: number, maxResults: number): number;
21
+ /** 根据多个组件掩码查询实体 */
22
+ query_by_components(masksPtr: number, maskCount: number, resultPtr: number, maxResults: number): number;
23
+ /** 查询包含指定组件但排除其他组件的实体 */
24
+ query_excluding(includeMaskPtr: number, excludeMaskPtr: number, resultPtr: number, maxResults: number): number;
25
+ /** 更新实体的组件掩码 */
26
+ update_entity_mask(entityId: number, mask: number): void;
27
+ /** 批量更新实体掩码 */
28
+ batch_update_masks(entityIdsPtr: number, masksPtr: number, count: number): void;
29
+ }
30
+ /**
31
+ * WebAssembly配置选项
32
+ */
33
+ export interface WasmConfig {
34
+ /** WASM文件路径 */
35
+ wasmPath: string;
36
+ /** 内存页数,默认256页 */
37
+ memoryPages?: number;
38
+ /** 是否启用SIMD,默认true */
39
+ enableSIMD?: boolean;
40
+ /** 是否启用多线程,默认false */
41
+ enableThreads?: boolean;
42
+ }
43
+ /**
44
+ * WebAssembly加速提供者
45
+ *
46
+ * 提供WebAssembly后端实现,主要用于高性能的实体查询操作
47
+ */
48
+ export declare class WebAssemblyProvider implements AccelerationProvider {
49
+ readonly name = "WebAssembly";
50
+ readonly version = "1.0.0";
51
+ readonly isWasm = true;
52
+ /** WASM模块实例 */
53
+ private wasmModule?;
54
+ /** 配置选项 */
55
+ private config;
56
+ /** 初始化状态 */
57
+ private initialized;
58
+ /** 实体查询提供者 */
59
+ query: QueryProvider;
60
+ /**
61
+ * 构造函数
62
+ * @param config WebAssembly配置选项
63
+ */
64
+ constructor(config: WasmConfig);
65
+ /**
66
+ * 初始化WebAssembly模块
67
+ * @throws {Error} 初始化失败时抛出错误
68
+ */
69
+ initialize(): Promise<void>;
70
+ /**
71
+ * 加载WASM字节码
72
+ * @returns WASM字节码的ArrayBuffer
73
+ * @private
74
+ */
75
+ private loadWasmBytes;
76
+ /**
77
+ * 实例化WASM模块
78
+ * @param wasmBytes WASM字节码
79
+ * @returns 实例化的WASM模块
80
+ * @private
81
+ */
82
+ private instantiateWasm;
83
+ /**
84
+ * 检查是否支持指定功能
85
+ * @param feature 功能名称
86
+ * @returns 是否支持该功能
87
+ */
88
+ supports(feature: string): boolean;
89
+ /**
90
+ * 获取性能信息
91
+ * @returns 性能统计信息
92
+ */
93
+ getPerformanceInfo(): {
94
+ operationsPerSecond: number;
95
+ memoryUsage: number;
96
+ features: string[];
97
+ };
98
+ /**
99
+ * 释放资源
100
+ */
101
+ dispose(): void;
102
+ /**
103
+ * 获取WASM模块(内部使用)
104
+ * @returns WASM模块实例
105
+ * @throws {Error} 模块未初始化时抛出错误
106
+ */
107
+ getWasmModule(): WasmModule;
108
+ /**
109
+ * 分配WASM内存
110
+ * @param size 要分配的字节数
111
+ * @returns 内存指针
112
+ */
113
+ malloc(size: number): number;
114
+ /**
115
+ * 释放WASM内存
116
+ * @param ptr 内存指针
117
+ */
118
+ free(ptr: number): void;
119
+ /**
120
+ * 将JavaScript数组复制到WASM内存
121
+ * @param data 要复制的数据
122
+ * @returns WASM内存指针
123
+ */
124
+ copyToWasm(data: Float32Array | Uint32Array): number;
125
+ /**
126
+ * 从WASM内存复制到JavaScript数组
127
+ * @param ptr WASM内存指针
128
+ * @param length 元素数量
129
+ * @param ArrayType 数组类型构造函数
130
+ * @returns 复制的JavaScript数组
131
+ */
132
+ copyFromWasm(ptr: number, length: number, ArrayType: typeof Float32Array | typeof Uint32Array): Float32Array | Uint32Array;
133
+ }
134
+ /**
135
+ * 创建WebAssembly提供者的工厂函数
136
+ * @param wasmPath WASM文件路径
137
+ * @param config 可选的配置参数
138
+ * @returns WebAssembly提供者实例
139
+ */
140
+ export declare function createWebAssemblyProvider(wasmPath: string, config?: Partial<WasmConfig>): WebAssemblyProvider;
141
+ /**
142
+ * 检查WebAssembly支持
143
+ * @returns 是否支持WebAssembly
144
+ */
145
+ export declare function isWebAssemblySupported(): boolean;
146
+ /**
147
+ * 检查SIMD支持
148
+ * @returns 是否支持SIMD
149
+ */
150
+ export declare function isSIMDSupported(): Promise<boolean>;
151
+ export {};
152
+ //# sourceMappingURL=WasmBridge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WasmBridge.d.ts","sourceRoot":"","sources":["../../src/Utils/WasmBridge.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACH,oBAAoB,EACpB,aAAa,EAEhB,MAAM,wBAAwB,CAAC;AAMhC;;;GAGG;AACH,UAAU,UAAU;IAChB,sBAAsB;IACtB,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC;IAG3B,qBAAqB;IACrB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7B,gBAAgB;IAChB,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAGxB,iBAAiB;IACjB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC;IACnF,mBAAmB;IACnB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC;IACxG,yBAAyB;IACzB,eAAe,CAAC,cAAc,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAAC;IAC/G,gBAAgB;IAChB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACzD,eAAe;IACf,kBAAkB,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACnF;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACvB,eAAe;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,kBAAkB;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,sBAAsB;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,sBAAsB;IACtB,aAAa,CAAC,EAAE,OAAO,CAAC;CAC3B;AAMD;;;;GAIG;AACH,qBAAa,mBAAoB,YAAW,oBAAoB;IAC5D,QAAQ,CAAC,IAAI,iBAAiB;IAC9B,QAAQ,CAAC,OAAO,WAAW;IAC3B,QAAQ,CAAC,MAAM,QAAQ;IAEvB,eAAe;IACf,OAAO,CAAC,UAAU,CAAC,CAAa;IAChC,WAAW;IACX,OAAO,CAAC,MAAM,CAAa;IAC3B,YAAY;IACZ,OAAO,CAAC,WAAW,CAAS;IAE5B,cAAc;IACd,KAAK,EAAE,aAAa,CAAC;IAErB;;;OAGG;gBACS,MAAM,EAAE,UAAU;IAY9B;;;OAGG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAgBjC;;;;OAIG;YACW,aAAa;IAc3B;;;;;OAKG;YACW,eAAe;IAuB7B;;;;OAIG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAOlC;;;OAGG;IACH,kBAAkB;;;;;IAUlB;;OAEG;IACH,OAAO,IAAI,IAAI;IASf;;;;OAIG;IACH,aAAa,IAAI,UAAU;IAO3B;;;;OAIG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAI5B;;;OAGG;IACH,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAIvB;;;;OAIG;IACH,UAAU,CAAC,IAAI,EAAE,YAAY,GAAG,WAAW,GAAG,MAAM;IAQpD;;;;;;OAMG;IACH,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,YAAY,GAAG,OAAO,WAAW,GAAG,YAAY,GAAG,WAAW;CAU7H;AAwID;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,mBAAmB,CAK7G;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,IAAI,OAAO,CAGhD;AAED;;;GAGG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC,CAaxD"}