@woosh/meep-engine 2.86.7 → 2.87.1
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/build/bundle-worker-terrain.js +1 -1
- package/build/meep.cjs +33 -3
- package/build/meep.min.js +1 -1
- package/build/meep.module.js +33 -3
- package/package.json +1 -1
- package/src/engine/ecs/EntityManager.d.ts.map +1 -1
- package/src/engine/ecs/EntityManager.js +17 -3
- package/src/engine/graphics/texture/sampler/Sampler2D.d.ts +4 -0
- package/src/engine/graphics/texture/sampler/Sampler2D.d.ts.map +1 -1
- package/src/engine/graphics/texture/sampler/Sampler2D.js +17 -0
package/build/meep.module.js
CHANGED
|
@@ -49278,6 +49278,23 @@ class Sampler2D {
|
|
|
49278
49278
|
}
|
|
49279
49279
|
}
|
|
49280
49280
|
|
|
49281
|
+
/**
|
|
49282
|
+
*
|
|
49283
|
+
* @param {number} x
|
|
49284
|
+
* @param {number} y
|
|
49285
|
+
* @param {number[]|Float32Array|Float64Array} result
|
|
49286
|
+
* @param {number} result_offset
|
|
49287
|
+
*/
|
|
49288
|
+
sampleBicubic(x,y, result, result_offset){
|
|
49289
|
+
|
|
49290
|
+
const itemSize = this.itemSize;
|
|
49291
|
+
|
|
49292
|
+
for (let i = 0; i < itemSize; i++) {
|
|
49293
|
+
result[i + result_offset] = this.sampleChannelBicubic(x, y, i);
|
|
49294
|
+
|
|
49295
|
+
}
|
|
49296
|
+
}
|
|
49297
|
+
|
|
49281
49298
|
/**
|
|
49282
49299
|
*
|
|
49283
49300
|
* @param {number} u
|
|
@@ -71702,6 +71719,14 @@ class EntityManager {
|
|
|
71702
71719
|
*/
|
|
71703
71720
|
fixedUpdateStepSize = 0.015;
|
|
71704
71721
|
|
|
71722
|
+
/**
|
|
71723
|
+
* How long can any given system run it's fixedUpdate, per simulation update
|
|
71724
|
+
* This is value allows us to avoid cases where fixedUpdate takes longer that its time step and causes a runaway freeze
|
|
71725
|
+
* In milliseconds
|
|
71726
|
+
* @type {number}
|
|
71727
|
+
*/
|
|
71728
|
+
fixedUpdatePerSystemExecutionTimeLimit = 15;
|
|
71729
|
+
|
|
71705
71730
|
/**
|
|
71706
71731
|
*
|
|
71707
71732
|
* @type {EntityComponentDataset}
|
|
@@ -71923,6 +71948,7 @@ class EntityManager {
|
|
|
71923
71948
|
return null;
|
|
71924
71949
|
}
|
|
71925
71950
|
|
|
71951
|
+
|
|
71926
71952
|
/**
|
|
71927
71953
|
* Advance simulation forward by a specified amount of time
|
|
71928
71954
|
* @param {number} timeDelta in seconds
|
|
@@ -71952,7 +71978,7 @@ class EntityManager {
|
|
|
71952
71978
|
if (system.fixedUpdate !== noop) {
|
|
71953
71979
|
let accumulated_time = accumulatedTime.get(system) + timeDelta;
|
|
71954
71980
|
|
|
71955
|
-
|
|
71981
|
+
const t0 = performance.now();
|
|
71956
71982
|
while (accumulated_time >= fixed_step) {
|
|
71957
71983
|
|
|
71958
71984
|
try {
|
|
@@ -71961,6 +71987,10 @@ class EntityManager {
|
|
|
71961
71987
|
}
|
|
71962
71988
|
|
|
71963
71989
|
accumulated_time -= fixed_step;
|
|
71990
|
+
|
|
71991
|
+
if (performance.now() - t0 > this.fixedUpdatePerSystemExecutionTimeLimit) {
|
|
71992
|
+
break;
|
|
71993
|
+
}
|
|
71964
71994
|
}
|
|
71965
71995
|
|
|
71966
71996
|
// record whatever remains
|
|
@@ -72038,9 +72068,9 @@ class EntityManager {
|
|
|
72038
72068
|
}
|
|
72039
72069
|
|
|
72040
72070
|
// Link EntityManager
|
|
72041
|
-
if(system.entityManager === null){
|
|
72071
|
+
if (system.entityManager === null) {
|
|
72042
72072
|
system.entityManager = this;
|
|
72043
|
-
}else if(system.entityManager !== this){
|
|
72073
|
+
} else if (system.entityManager !== this) {
|
|
72044
72074
|
throw new Error(`System is bound to another EntityManager`);
|
|
72045
72075
|
}
|
|
72046
72076
|
|
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntityManager.d.ts","sourceRoot":"","sources":["../../../../src/engine/ecs/EntityManager.js"],"names":[],"mappings":";;;wBAkBU,MAAM;;;;;;iCAWN,MAAM;;;;;;;;;AAWhB;IAEI;;;OAGG;IACH,kBAFU,iCAAQ,CAEL;IAEb;;;OAGG;IACH,gCAFU,iCAAQ,CAES;IAE3B;;;OAGG;IACH,0BAFU,cAAc,EAAE,CAEL;IAErB;;OAEG;IACH;;;QAGI;;WAEG;qBADO,uCAAc;;MAI1B;IAEF;;;OAGG;IACH,OAFU,kBAAkB,CAEO;IAEnC;;;;OAIG;IACH,gDAA2C;IAE3C;;;;OAIG;IACH,qBAFU,MAAM,CAEY;IAE5B;;;OAGG;IACH,gCAAe;IAEf;;;;OAIG;IACH,uCAAsC;IAEtC;;;OAGG;IACH,6BA8EC;IAED,sBAcC;IAED;;;OAGG;IACH,uBAFa,OAAO,CAuBnB;IAED;;;;;OAKG;IACH,qDAsBC;IAED;;;;OAIG;IACH,qCAFa,OAAO,CAInB;IAED;;;;OAIG;IACH,6CAcC;IAED;;;;;OAKG;IACH,wCAHW,MAAM,GACJ,IAAI,aAAS,CAezB;
|
|
1
|
+
{"version":3,"file":"EntityManager.d.ts","sourceRoot":"","sources":["../../../../src/engine/ecs/EntityManager.js"],"names":[],"mappings":";;;wBAkBU,MAAM;;;;;;iCAWN,MAAM;;;;;;;;;AAWhB;IAEI;;;OAGG;IACH,kBAFU,iCAAQ,CAEL;IAEb;;;OAGG;IACH,gCAFU,iCAAQ,CAES;IAE3B;;;OAGG;IACH,0BAFU,cAAc,EAAE,CAEL;IAErB;;OAEG;IACH;;;QAGI;;WAEG;qBADO,uCAAc;;MAI1B;IAEF;;;OAGG;IACH,OAFU,kBAAkB,CAEO;IAEnC;;;;OAIG;IACH,gDAA2C;IAE3C;;;;OAIG;IACH,qBAFU,MAAM,CAEY;IAE5B;;;;;OAKG;IACH,wCAFU,MAAM,CAE4B;IAE5C;;;OAGG;IACH,gCAAe;IAEf;;;;OAIG;IACH,uCAAsC;IAEtC;;;OAGG;IACH,6BA8EC;IAED,sBAcC;IAED;;;OAGG;IACH,uBAFa,OAAO,CAuBnB;IAED;;;;;OAKG;IACH,qDAsBC;IAED;;;;OAIG;IACH,qCAFa,OAAO,CAInB;IAED;;;;OAIG;IACH,6CAcC;IAED;;;;;OAKG;IACH,wCAHW,MAAM,GACJ,IAAI,aAAS,CAezB;IAGD;;;OAGG;IACH,oBAFW,MAAM,QAkEhB;IAED;;;;;OAKG;IACH,iEA0EC;IAED;;;;OAIG;IACH,uDAFa,QAAQ,OAAO,CAAC,CAyC5B;IAED;;;;;OAKG;IACH,mBA6BC;IAED;;;;;OAKG;IACH,oBAwCC;IAED;;;;OAIG;IACH,gEAwEC;IAED;;;;OAIG;IACH,mCAFa,wCAAgB,CA0B5B;IAED;;;;;OAKG;IACH,8DAFa,wCAAgB,CAsB5B;IAED;;;;OAIG;IACH,iEAkEC;CACJ;uBApyBsD,aAAa;+BADrC,qBAAqB;mBALjC,oCAAoC"}
|
|
@@ -91,6 +91,14 @@ export class EntityManager {
|
|
|
91
91
|
*/
|
|
92
92
|
fixedUpdateStepSize = 0.015;
|
|
93
93
|
|
|
94
|
+
/**
|
|
95
|
+
* How long can any given system run it's fixedUpdate, per simulation update
|
|
96
|
+
* This is value allows us to avoid cases where fixedUpdate takes longer that its time step and causes a runaway freeze
|
|
97
|
+
* In milliseconds
|
|
98
|
+
* @type {number}
|
|
99
|
+
*/
|
|
100
|
+
fixedUpdatePerSystemExecutionTimeLimit = 15;
|
|
101
|
+
|
|
94
102
|
/**
|
|
95
103
|
*
|
|
96
104
|
* @type {EntityComponentDataset}
|
|
@@ -312,6 +320,7 @@ export class EntityManager {
|
|
|
312
320
|
return null;
|
|
313
321
|
}
|
|
314
322
|
|
|
323
|
+
|
|
315
324
|
/**
|
|
316
325
|
* Advance simulation forward by a specified amount of time
|
|
317
326
|
* @param {number} timeDelta in seconds
|
|
@@ -347,7 +356,7 @@ export class EntityManager {
|
|
|
347
356
|
if (system.fixedUpdate !== noop) {
|
|
348
357
|
let accumulated_time = accumulatedTime.get(system) + timeDelta;
|
|
349
358
|
|
|
350
|
-
|
|
359
|
+
const t0 = performance.now();
|
|
351
360
|
while (accumulated_time >= fixed_step) {
|
|
352
361
|
|
|
353
362
|
try {
|
|
@@ -357,6 +366,11 @@ export class EntityManager {
|
|
|
357
366
|
}
|
|
358
367
|
|
|
359
368
|
accumulated_time -= fixed_step;
|
|
369
|
+
|
|
370
|
+
if (performance.now() - t0 > this.fixedUpdatePerSystemExecutionTimeLimit) {
|
|
371
|
+
console.warn(`.fixedUpdate of system '${computeSystemName(system)}' is falling behind current clock due to slow execution. Retardation is done to avoid severe performance impact.`);
|
|
372
|
+
break;
|
|
373
|
+
}
|
|
360
374
|
}
|
|
361
375
|
|
|
362
376
|
// record whatever remains
|
|
@@ -438,9 +452,9 @@ export class EntityManager {
|
|
|
438
452
|
}
|
|
439
453
|
|
|
440
454
|
// Link EntityManager
|
|
441
|
-
if(system.entityManager === null){
|
|
455
|
+
if (system.entityManager === null) {
|
|
442
456
|
system.entityManager = this;
|
|
443
|
-
}else if(system.entityManager !== this){
|
|
457
|
+
} else if (system.entityManager !== this) {
|
|
444
458
|
throw new Error(`System is bound to another EntityManager`);
|
|
445
459
|
}
|
|
446
460
|
|
|
@@ -20,6 +20,10 @@ export class Sampler2D {
|
|
|
20
20
|
|
|
21
21
|
sampleChannelBilinear(x: number, y: number, channel: number): number
|
|
22
22
|
|
|
23
|
+
sampleBicubic(x: number, y: number, result: ArrayLike<number>, result_offset?: number): void
|
|
24
|
+
|
|
25
|
+
sampleChannelBicubic(x: number, y: number, channel: number): number
|
|
26
|
+
|
|
23
27
|
resize(x: number, y: number, preserveData?: boolean): void
|
|
24
28
|
|
|
25
29
|
point2index(x: number, y: number): number
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Sampler2D.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/texture/sampler/Sampler2D.js"],"names":[],"mappings":"AAoBA;;;;GAIG;AACH;
|
|
1
|
+
{"version":3,"file":"Sampler2D.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/texture/sampler/Sampler2D.js"],"names":[],"mappings":"AAoBA;;;;GAIG;AACH;IA67BI;;;;;;OAMG;IACH,6DAFY,SAAS,CAKpB;IAED;;;;;;OAMG;IACH,sDAFY,SAAS,CAKpB;IAED;;;;;;OAMG;IACH,uDAFY,SAAS,CAKpB;IAED;;;;;;OAMG;IACH,uDAFY,SAAS,CAKpB;IAED;;;;;;OAMG;IACH,qDAFY,SAAS,CAKpB;IAED;;;;;;OAMG;IACH,sDAFY,SAAS,CAKpB;IAED;;;;;;OAMG;IACH,sDAFY,SAAS,CAKpB;IAED;;;;;;OAMG;IACH,wDAFY,SAAS,CAKpB;IAED;;;;;;OAMG;IACH,wDAFY,SAAS,CAKpB;IAtiCD;;;;;;;OAOG;IACH,mBANW,UAAU,MAAM,CAAC,GAAC,MAAM,EAAE,GAAC,iBAAiB,GAAC,UAAU,GAAC,WAAW,GAAC,WAAW,GAAC,SAAS,GAAC,UAAU,GAAC,UAAU,GAAC,YAAY,GAAC,YAAY,aACzI,MAAM,UACN,MAAM,WACN,MAAM,EAmDhB;IA7BG;;;OAGG;IACH,cAAkB;IAElB;;;OAGG;IACH,eAAoB;IAEpB;;;OAGG;IACH,iBAAwB;IAExB;;;OAGG;IACH,MAFU,MAAM,EAAE,GAAC,iBAAiB,GAAC,UAAU,GAAC,WAAW,GAAC,WAAW,GAAC,SAAS,GAAC,UAAU,GAAC,UAAU,GAAC,YAAY,GAAC,YAAY,CAEjH;IAEhB;;;OAGG;IACH,SAFU,MAAM,CAEA;IAGpB;;;;;;;OAOG;IACH,OALW,MAAM,KACN,MAAM,UACN,qCAA+B,GAC7B,MAAM,CAIlB;IAED;;;;;OAKG;IACH,sBAJW,MAAM,KACN,MAAM,UACN,MAAM,EAAE,QAQlB;IAED;;;;;;OAMG;IACH,6BALW,MAAM,KACN,MAAM,WACN,MAAM,GACJ,MAAM,CAOlB;IAED;;;;;;;OAOG;IACH,2BALW,MAAM,KACN,MAAM,WACN,MAAM,GACJ,MAAM,CA2DlB;IAED;;;;;OAKG;IACH,mBAJW,MAAM,KACN,MAAM,UACN,MAAM,EAAE,QAQlB;IAED;;;;;;OAMG;IACH,iBALW,MAAM,KACN,MAAM,UACN,MAAM,EAAE,GAAC,YAAY,GAAC,YAAY,iBAClC,MAAM,QAUhB;IAED;;;;;;OAMG;IACH,0BALW,MAAM,KACN,MAAM,WACN,MAAM,GACJ,MAAM,CAOlB;IAED;;;;;;OAMG;IACH,wBALW,MAAM,KACN,MAAM,WACN,MAAM,GACJ,MAAM,CAgFlB;IAED;;;;;;OAMG;IACH,oBALW,MAAM,KACN,MAAM,UACN,MAAM,EAAE,kBACR,MAAM,QAUhB;IAED;;;;;;OAMG;IACH,kBALW,MAAM,KACN,MAAM,UACN,MAAM,EAAE,GAAC,YAAY,GAAC,YAAY,kBAClC,MAAM,QAWhB;IAED;;;;;;OAMG;IACH,2BALW,MAAM,KACN,MAAM,WACN,MAAM,GACL,MAAM,CAOjB;IAED;;;;;;OAMG;IACH,yBALW,MAAM,KACN,MAAM,WACN,MAAM,GACJ,MAAM,CAgFlB;IAED;;;;;OAKG;IACH,mBAJW,MAAM,KACN,MAAM,UACN,UAAU,MAAM,CAAC,QAU3B;IAED;;;;;;OAMG;IACH,eALW,MAAM,KACN,MAAM,WACN,MAAM,GACJ,MAAM,CAalB;IAED;;;;;OAKG;IACH,QAJW,MAAM,KACN,MAAM,UACN,MAAM,EAAE,QAalB;IAED;;;;;OAKG;IACH,SAJW,MAAM,KACN,MAAM,QACN,MAAM,EAAE,GAAC,UAAU,MAAM,CAAC,QAapC;IAED;;;;;;OAMG;IACH,UALW,MAAM,KACN,MAAM,WACN,2BAAuB,OAajC;IAED;;;;;OAKG;IACH,eAJW,MAAM,KACN,MAAM,GACJ,MAAM,CAIlB;IAED;;;;OAIG;IACH,mBAHW,MAAM,yBAUhB;IAED;;;;;;;;;OASG;IACH,aARW,SAAS,qHAoDnB;IAGD;;;;;;;OAOG;IACH,oEA8BC;IAED;;;;OAIG;IACH,2BAHW,MAAM,SACN,MAAM,QAYhB;IAED;;;;;;;OAOG;IACH,iEAFW,aAAc,QAqCxB;IAED;;;;;;OAMG;IACH,gBALW,MAAM,KACN,MAAM,WACN,MAAM,SACN,MAAM,QAkBhB;IAED;;;;;OAKG;IACH,OAJW,MAAM,KACN,MAAM,SACN,MAAM,EAAE,GAAC,YAAY,QAe/B;IAED;;;;;;;OAOG;IACH,wBALW,MAAM,WACN,MAAM,UACN,MAAM,sBAyBhB;IAED;;;;;OAKG;IACH,UAJW,MAAM,KACN,MAAM,iBACN,OAAO,QAyDjB;IAED;;;OAGG;IACH,mBAFY,MAAM,CAYjB;IAED;;;;OAIG;IACH,cAHW,SAAS,GACR,OAAO,CAYlB;IAED;;;OAGG;IACH,QAFY,MAAM,CAYjB;IAGD;;OAEG;IACH,SAFa,SAAS,CAerB;IAED;;;;;;MAUC;IAED;;;;;;aAwBC;IAgHL;;;OAGG;IACH,sBAFU,OAAO,CAEc;CAN9B;;kBAUS,MAAM"}
|
|
@@ -203,6 +203,23 @@ export class Sampler2D {
|
|
|
203
203
|
}
|
|
204
204
|
}
|
|
205
205
|
|
|
206
|
+
/**
|
|
207
|
+
*
|
|
208
|
+
* @param {number} x
|
|
209
|
+
* @param {number} y
|
|
210
|
+
* @param {number[]|Float32Array|Float64Array} result
|
|
211
|
+
* @param {number} result_offset
|
|
212
|
+
*/
|
|
213
|
+
sampleBicubic(x,y, result, result_offset){
|
|
214
|
+
|
|
215
|
+
const itemSize = this.itemSize;
|
|
216
|
+
|
|
217
|
+
for (let i = 0; i < itemSize; i++) {
|
|
218
|
+
result[i + result_offset] = this.sampleChannelBicubic(x, y, i);
|
|
219
|
+
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
|
|
206
223
|
/**
|
|
207
224
|
*
|
|
208
225
|
* @param {number} u
|