@woosh/meep-engine 2.117.5 → 2.117.7

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 (25) hide show
  1. package/package.json +1 -1
  2. package/src/core/color/Color.d.ts +2 -0
  3. package/src/engine/graphics/particles/particular/engine/renderers/billboard/ParticleBillboardMaterial.js +1 -1
  4. package/src/engine/graphics/render/frame_graph/RenderGraph.d.ts.map +1 -1
  5. package/src/engine/graphics/render/frame_graph/RenderGraph.js +16 -4
  6. package/src/engine/graphics/render/frame_graph/RenderPass.d.ts +4 -4
  7. package/src/engine/graphics/render/frame_graph/RenderPass.d.ts.map +1 -1
  8. package/src/engine/graphics/render/frame_graph/RenderPass.js +11 -5
  9. package/src/engine/graphics/render/frame_graph/sample/deferred/CopyPass.d.ts +2 -5
  10. package/src/engine/graphics/render/frame_graph/sample/deferred/CopyPass.d.ts.map +1 -1
  11. package/src/engine/graphics/render/frame_graph/sample/deferred/CopyPass.js +2 -1
  12. package/src/engine/graphics/render/frame_graph/sample/deferred/GBufferDrawPass.d.ts +2 -2
  13. package/src/engine/graphics/render/frame_graph/sample/deferred/GBufferDrawPass.d.ts.map +1 -1
  14. package/src/engine/graphics/render/frame_graph/sample/deferred/GBufferDrawPass.js +1 -1
  15. package/src/engine/graphics/render/frame_graph/sample/deferred/LightingPass.d.ts +3 -10
  16. package/src/engine/graphics/render/frame_graph/sample/deferred/LightingPass.d.ts.map +1 -1
  17. package/src/engine/graphics/render/frame_graph/sample/deferred/LightingPass.js +3 -8
  18. package/src/engine/graphics/render/frame_graph/sample/meep-v1/ColorDepthPass.d.ts +2 -2
  19. package/src/engine/graphics/render/frame_graph/sample/meep-v1/ColorDepthPass.d.ts.map +1 -1
  20. package/src/engine/graphics/render/frame_graph/sample/meep-v1/ColorDepthPass.js +1 -1
  21. package/src/engine/graphics/render/frame_graph/sample/meep-v1/OutlinePass.d.ts +2 -4
  22. package/src/engine/graphics/render/frame_graph/sample/meep-v1/OutlinePass.d.ts.map +1 -1
  23. package/src/engine/graphics/render/frame_graph/sample/meep-v1/OutlinePass.js +2 -1
  24. package/src/engine/graphics/render/frame_graph/sample/meep-v1/SSAOPass.d.ts +1 -1
  25. package/src/engine/graphics/render/frame_graph/sample/meep-v1/SSAOPass.d.ts.map +1 -1
package/package.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "description": "Fully featured ECS game engine written in JavaScript",
6
6
  "type": "module",
7
7
  "author": "Alexander Goldring",
8
- "version": "2.117.5",
8
+ "version": "2.117.7",
9
9
  "main": "build/meep.module.js",
10
10
  "module": "build/meep.module.js",
11
11
  "exports": {
@@ -32,6 +32,8 @@ export class Color {
32
32
 
33
33
  fromUint(v: number): void
34
34
 
35
+ lerpColors(a: Color, b: Color, f: number): void
36
+
35
37
  equals(other: Color): boolean
36
38
 
37
39
  hash(): number
@@ -187,7 +187,7 @@ function make_vertex_shader() {
187
187
 
188
188
  float radius = vSize * 0.5;
189
189
 
190
- float projected_radius = resolution.y * projectionMatrix[1][1] * radius / gl_Position.w;;
190
+ float projected_radius = resolution.y * projectionMatrix[1][1] * radius / gl_Position.w;
191
191
 
192
192
  #ifdef DEPTH_SOFT_ENABLED
193
193
 
@@ -1 +1 @@
1
- {"version":3,"file":"RenderGraph.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/render/frame_graph/RenderGraph.js"],"names":[],"mappings":"AAQA;;;GAGG;AACH;IACI;;;;OAIG;IACH,iBAAc;IAEd;;;;OAIG;IACH,qBAAkB;IAElB;;;;OAIG;IACH,yBAAsB;IAEtB;;;;OAIG;IACH,4BAAyB;IAEzB;;;;OAIG;IACH,qBAHW,MAAM,sBAahB;IAED;;;;OAIG;IACH,oBAHW,MAAM,qBAgBhB;IAED;;;;OAIG;IACH,qBAHW,MAAM,KAKhB;IAED;;;;OAIG;IACH,2BAHW,MAAM,2BAOhB;IAED;;;;;OAKG;IACH,6BAUC;IAED;;;;;;OAMG;IACH,4BAcC;IAED;;;;OAIG;IACH,oBAHW,MAAM,GACJ,MAAM,CAkBlB;IAED;;;;;;OAMG;IACH,2BALW,MAAM,wDAGJ,MAAM,CAUlB;IAED;;;OAGG;IACH,4BAHa,OAAO,CAQnB;IAED;;;;OAIG;IACH,gCA0BC;IAED;;;;;;OAMG;IACH,iEAFa,OAAO,CAOnB;IAED,gBA0FC;IAED;;;OAGG;IACH,uCAqCC;IAED;;;OAGG;IACH,eAFY,MAAM,CAiEjB;CACJ;8BAnb6B,oBAAoB;6BACrB,mBAAmB"}
1
+ {"version":3,"file":"RenderGraph.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/render/frame_graph/RenderGraph.js"],"names":[],"mappings":"AAQA;;;GAGG;AACH;IACI;;;;OAIG;IACH,iBAAc;IAEd;;;;OAIG;IACH,qBAAkB;IAElB;;;;OAIG;IACH,yBAAsB;IAEtB;;;;OAIG;IACH,4BAAyB;IAEzB;;;;OAIG;IACH,qBAHW,MAAM,sBAahB;IAED;;;;OAIG;IACH,oBAHW,MAAM,qBAmBhB;IAED;;;;OAIG;IACH,qBAHW,MAAM,KAKhB;IAED;;;;OAIG;IACH,2BAHW,MAAM,2BAOhB;IAED;;;;;OAKG;IACH,6BAUC;IAED;;;;;;OAMG;IACH,4BAcC;IAED;;;;OAIG;IACH,oBAHW,MAAM,GACJ,MAAM,CAkBlB;IAED;;;;;;OAMG;IACH,2BALW,MAAM,wDAGJ,MAAM,CAUlB;IAED;;;OAGG;IACH,4BAHa,OAAO,CAQnB;IAED;;;;OAIG;IACH,gCA0BC;IAED;;;;;;OAMG;IACH,iEAFa,OAAO,CAOnB;IAED,gBA6FC;IAED;;;OAGG;IACH,uCA2CC;IAED;;;OAGG;IACH,eAFY,MAAM,CAiEjB;CACJ;8BA/b6B,oBAAoB;6BACrB,mBAAmB"}
@@ -66,11 +66,14 @@ export class RenderGraph {
66
66
 
67
67
  const nodes = this.__resource_nodes;
68
68
  const node_count = nodes.length;
69
+
69
70
  for (let i = 0; i < node_count; i++) {
70
71
  const node = nodes[i];
72
+
71
73
  if (node.id === id) {
72
74
  return node;
73
75
  }
76
+
74
77
  }
75
78
 
76
79
  throw new Error(`Resource Node ${id} not found`);
@@ -208,7 +211,7 @@ export class RenderGraph {
208
211
 
209
212
  builder.init(this, node);
210
213
 
211
- const result = pass.setup(builder, pass.inputs);
214
+ const result = pass.setup(builder);
212
215
 
213
216
  assert.defined(result, 'result');
214
217
  assert.notNull(result, 'result');
@@ -307,14 +310,17 @@ export class RenderGraph {
307
310
  }
308
311
 
309
312
  // calculate lifetimes
310
- for (const pass of pass_nodes) {
313
+ for (let i = 0; i < pass_node_count; i++){
314
+ const pass = pass_nodes[i];
311
315
  if (pass.ref_count === 0) {
312
316
  // unused pass
313
317
  continue;
314
318
  }
315
319
 
316
320
  for (const id of pass.resource_creates) {
317
- this.getResourceEntry(id).producer = pass;
321
+ const entry = this.getResourceEntry(id);
322
+ entry.producer = pass;
323
+ entry.last = pass;
318
324
  }
319
325
 
320
326
  for (const id of pass.resource_writes) {
@@ -360,11 +366,17 @@ export class RenderGraph {
360
366
  // execute pass
361
367
  node.pass.execute(node.data, resources, context);
362
368
 
363
- for (const entry of this.__resource_registry) {
369
+ const resource_entries = this.__resource_registry;
370
+ const resource_entry_count = resource_entries.length;
371
+
372
+ for (let entry_index = 0; entry_index < resource_entry_count; entry_index++){
373
+ const entry = resource_entries[entry_index];
374
+
364
375
  if (entry.last === node && entry.isTransient()) {
365
376
  // this was the last user of the resource and the resource is transient (no external usage)
366
377
  entry.destroy(context.resource_manager);
367
378
  }
379
+
368
380
  }
369
381
 
370
382
  }
@@ -2,7 +2,7 @@
2
2
  * @template DATA
3
3
  */
4
4
  export class RenderPass<DATA> {
5
- constructor(inputs?: {});
5
+ constructor(inputs: any);
6
6
  /**
7
7
  * Used for debug and visualisation
8
8
  * @type {string}
@@ -15,16 +15,16 @@ export class RenderPass<DATA> {
15
15
  flags: number | RenderPassFlags;
16
16
  /**
17
17
  * Arbitrary dictionary of data
18
+ * @deprecated
18
19
  * @type {Object<number>}
19
20
  */
20
21
  inputs: any;
21
22
  /**
22
23
  *
23
24
  * @param {RenderGraphBuilder} builder
24
- * @param {Object<number>} inputs
25
- * @returns {Object<number>} resources/handles that are used by the pass, includes both inputs and outputs
25
+ * @returns {DATA} resources/handles that are used by the pass, includes both inputs and outputs
26
26
  */
27
- setup(builder: RenderGraphBuilder, inputs: any): any;
27
+ setup(builder: RenderGraphBuilder): DATA;
28
28
  /**
29
29
  * @param {DATA} data
30
30
  * @param {RenderPassResources} resources
@@ -1 +1 @@
1
- {"version":3,"file":"RenderPass.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/render/frame_graph/RenderPass.js"],"names":[],"mappings":"AAEA;;GAEG;AACH;IAqBI,yBAEC;IArBD;;;OAGG;IACH,MAFU,MAAM,CAEK;IAErB;;;OAGG;IACH,OAFU,MAAM,kBAAgB,CAEV;IAGtB;;;OAGG;IACH,YAAY;IAOZ;;;;;OAKG;IACH,qDAEC;IAED;;;;;OAKG;IACH,cALW,IAAI,mEAGF,IAAI,CAIhB;IAED;;;;;;OAMG;IACH,iCAFY,OAAO,CAIlB;CACJ"}
1
+ {"version":3,"file":"RenderPass.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/render/frame_graph/RenderPass.js"],"names":[],"mappings":"AAEA;;GAEG;AACH;IAsBI,yBAQC;IA5BD;;;OAGG;IACH,MAFU,MAAM,CAEK;IAErB;;;OAGG;IACH,OAFU,MAAM,kBAAgB,CAEV;IAGtB;;;;OAIG;IACH,YAAY;IAaZ;;;;OAIG;IACH,oCAFa,IAAI,CAIhB;IAED;;;;;OAKG;IACH,cALW,IAAI,mEAGF,IAAI,CAIhB;IAED;;;;;;OAMG;IACH,iCAFY,OAAO,CAIlB;CACJ"}
@@ -20,22 +20,28 @@ export class RenderPass {
20
20
 
21
21
  /**
22
22
  * Arbitrary dictionary of data
23
+ * @deprecated
23
24
  * @type {Object<number>}
24
25
  */
25
26
  inputs = {};
26
27
 
27
- constructor(inputs = {}) {
28
- this.inputs = inputs;
28
+ constructor(inputs ) {
29
+
30
+ if(inputs !== undefined){
31
+ console.warn("Default inputs are deprecated, please use class fields instead");
32
+
33
+ this.inputs = inputs;
34
+ }
35
+
29
36
  }
30
37
 
31
38
 
32
39
  /**
33
40
  *
34
41
  * @param {RenderGraphBuilder} builder
35
- * @param {Object<number>} inputs
36
- * @returns {Object<number>} resources/handles that are used by the pass, includes both inputs and outputs
42
+ * @returns {DATA} resources/handles that are used by the pass, includes both inputs and outputs
37
43
  */
38
- setup(builder, inputs) {
44
+ setup(builder) {
39
45
  throw new Error('Not Implemented');
40
46
  }
41
47
 
@@ -1,9 +1,6 @@
1
1
  export class CopyPass extends RenderPass<any> {
2
- constructor(inputs?: {});
3
- setup(builder: any, { input, output }: {
4
- input: any;
5
- output: any;
6
- }): {
2
+ constructor(inputs: any);
3
+ setup(builder: any): {
7
4
  output: any;
8
5
  };
9
6
  execute(data: any, resources: any, render_context: any): void;
@@ -1 +1 @@
1
- {"version":3,"file":"CopyPass.d.ts","sourceRoot":"","sources":["../../../../../../../../src/engine/graphics/render/frame_graph/sample/deferred/CopyPass.js"],"names":[],"mappings":"AAEA;IAiBqB,yBAAwE;IAdzF;;;;;MASC;IAED,8DAEC;CACJ;2BAnB0B,qBAAqB"}
1
+ {"version":3,"file":"CopyPass.d.ts","sourceRoot":"","sources":["../../../../../../../../src/engine/graphics/render/frame_graph/sample/deferred/CopyPass.js"],"names":[],"mappings":"AAEA;IAkBsB,yBAAyN;IAf3O;;MAUC;IAED,8DAEC;CACJ;2BApB0B,qBAAqB"}
@@ -3,7 +3,8 @@ import { RenderPass } from "../../RenderPass.js";
3
3
  export class CopyPass extends RenderPass {
4
4
  name = "Copy"
5
5
 
6
- setup(builder, { input, output }) {
6
+ setup(builder) {
7
+ const {input, output} = this.inputs;
7
8
 
8
9
  builder.read(input);
9
10
 
@@ -1,6 +1,6 @@
1
1
  export class GBufferDrawPass extends RenderPass<any> {
2
- constructor(inputs?: {});
3
- setup(builder: any, inputs: any): {
2
+ constructor(inputs: any);
3
+ setup(builder: any): {
4
4
  albedo: any;
5
5
  normal: any;
6
6
  position: any;
@@ -1 +1 @@
1
- {"version":3,"file":"GBufferDrawPass.d.ts","sourceRoot":"","sources":["../../../../../../../../src/engine/graphics/render/frame_graph/sample/deferred/GBufferDrawPass.js"],"names":[],"mappings":"AAGA;IAOoD,yBAGhC;IAPhB;;;;MAqBC;IAED,8DAEC;CACJ;2BAhC0B,qBAAqB"}
1
+ {"version":3,"file":"GBufferDrawPass.d.ts","sourceRoot":"","sources":["../../../../../../../../src/engine/graphics/render/frame_graph/sample/deferred/GBufferDrawPass.js"],"names":[],"mappings":"AAGA;IAQc,yBAOY;IAZtB;;;;MAqBC;IAED,8DAEC;CACJ;2BAhC0B,qBAAqB"}
@@ -4,7 +4,7 @@ import { TextureResourceDescriptor } from "../../resource/TextureResourceDescrip
4
4
  export class GBufferDrawPass extends RenderPass {
5
5
  name = "Draw G-buffer";
6
6
 
7
- setup(builder, inputs) {
7
+ setup(builder) {
8
8
  // ignore inputs
9
9
 
10
10
  const out_albedo = new TextureResourceDescriptor();
@@ -1,14 +1,7 @@
1
1
  export class LightingPass extends RenderPass<any> {
2
- constructor(inputs?: {});
3
- /**
4
- *
5
- * @param builder
6
- * @param {number} output
7
- * @param {number} data
8
- * @return {{data: number}}
9
- */
10
- setup(builder: any, { output, normal, albedo, position }: number): {
11
- data: number;
2
+ constructor(inputs: any);
3
+ setup(builder: any): {
4
+ output: any;
12
5
  };
13
6
  execute(data: any, resources: any, render_context: any): void;
14
7
  }
@@ -1 +1 @@
1
- {"version":3,"file":"LightingPass.d.ts","sourceRoot":"","sources":["../../../../../../../../src/engine/graphics/render/frame_graph/sample/deferred/LightingPass.js"],"names":[],"mappings":"AAEA;IAaQ,yBAEkC;IAZtC;;;;;;OAMG;IACH,0DAJW,MAAM,GAEL;QAAC,IAAI,EAAE,MAAM,CAAA;KAAC,CAYzB;IAED,8DAEC;CACJ;2BA3B0B,qBAAqB"}
1
+ {"version":3,"file":"LightingPass.d.ts","sourceRoot":"","sources":["../../../../../../../../src/engine/graphics/render/frame_graph/sample/deferred/LightingPass.js"],"names":[],"mappings":"AAEA;IAa6B,yBAQ8E;IAlBvG;;MAYC;IAED,8DAEC;CACJ;2BAtB0B,qBAAqB"}
@@ -3,14 +3,9 @@ import { RenderPass } from "../../RenderPass.js";
3
3
  export class LightingPass extends RenderPass {
4
4
  name = "Lighting";
5
5
 
6
- /**
7
- *
8
- * @param builder
9
- * @param {number} output
10
- * @param {number} data
11
- * @return {{data: number}}
12
- */
13
- setup(builder, { output, normal, albedo, position }) {
6
+ setup(builder) {
7
+ const { output, normal, albedo, position } = this.inputs;
8
+
14
9
  builder.read(normal);
15
10
  builder.read(albedo);
16
11
  builder.read(position);
@@ -1,7 +1,7 @@
1
1
  export class ColorDepthPass extends RenderPass<any> {
2
- constructor(inputs?: {});
2
+ constructor(inputs: any);
3
3
  resolution: Vector2;
4
- setup(builder: any, inputs: any): {
4
+ setup(builder: any): {
5
5
  color: any;
6
6
  depth: any;
7
7
  };
@@ -1 +1 @@
1
- {"version":3,"file":"ColorDepthPass.d.ts","sourceRoot":"","sources":["../../../../../../../../src/engine/graphics/render/frame_graph/sample/meep-v1/ColorDepthPass.js"],"names":[],"mappings":"AAKA;IAGQ,yBAC0C;IAH9C,oBAAoC;IAEpC;;;MAuBC;IAED,8DAGC;CACJ;2BAnC0B,qBAAqB;oBAD5B,wCAAwC"}
1
+ {"version":3,"file":"ColorDepthPass.d.ts","sourceRoot":"","sources":["../../../../../../../../src/engine/graphics/render/frame_graph/sample/meep-v1/ColorDepthPass.js"],"names":[],"mappings":"AAKA;IAIQ,yBAIa;IAPjB,oBAAoC;IAEpC;;;MAuBC;IAED,8DAGC;CACJ;2BAnC0B,qBAAqB;oBAD5B,wCAAwC"}
@@ -6,7 +6,7 @@ import { TextureResourceDescriptor } from "../../resource/TextureResourceDescrip
6
6
  export class ColorDepthPass extends RenderPass {
7
7
  resolution = new Vector2(1024, 724);
8
8
 
9
- setup(builder, inputs) {
9
+ setup(builder) {
10
10
  const color = builder.create("Color", TextureResourceDescriptor.from({
11
11
  width: this.resolution.x,
12
12
  height: this.resolution.y,
@@ -1,8 +1,6 @@
1
1
  export class OutlinePass extends RenderPass<any> {
2
- constructor(inputs?: {});
3
- setup(builder: any, { depth }: {
4
- depth: any;
5
- }): void;
2
+ constructor(inputs: any);
3
+ setup(builder: any): void;
6
4
  }
7
5
  import { RenderPass } from "../../RenderPass.js";
8
6
  //# sourceMappingURL=OutlinePass.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"OutlinePass.d.ts","sourceRoot":"","sources":["../../../../../../../../src/engine/graphics/render/frame_graph/sample/meep-v1/OutlinePass.js"],"names":[],"mappings":"AAEA;IAOsM,yBAAwE;IAN1Q;;aAIC;CACJ;2BAR0B,qBAAqB"}
1
+ {"version":3,"file":"OutlinePass.d.ts","sourceRoot":"","sources":["../../../../../../../../src/engine/graphics/render/frame_graph/sample/meep-v1/OutlinePass.js"],"names":[],"mappings":"AAEA;IAQqM,yBAAyN;IAP1Z,0BAKC;CACJ;2BAT0B,qBAAqB"}
@@ -1,7 +1,8 @@
1
1
  import { RenderPass } from "../../RenderPass.js";
2
2
 
3
3
  export class OutlinePass extends RenderPass {
4
- setup(builder, { depth }) {
4
+ setup(builder) {
5
+ const { depth } = this.inputs;
5
6
  const depth_source = builder.read(depth);
6
7
 
7
8
 
@@ -1,5 +1,5 @@
1
1
  export class SSAOPass extends RenderPass<any> {
2
- constructor(inputs?: {});
2
+ constructor(inputs: any);
3
3
  }
4
4
  import { RenderPass } from "../../RenderPass.js";
5
5
  //# sourceMappingURL=SSAOPass.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SSAOPass.d.ts","sourceRoot":"","sources":["../../../../../../../../src/engine/graphics/render/frame_graph/sample/meep-v1/SSAOPass.js"],"names":[],"mappings":"AAEA;IAGkS,yBAAwE;CADzW;2BAJ0B,qBAAqB"}
1
+ {"version":3,"file":"SSAOPass.d.ts","sourceRoot":"","sources":["../../../../../../../../src/engine/graphics/render/frame_graph/sample/meep-v1/SSAOPass.js"],"names":[],"mappings":"AAEA;IAGsT,yBAAyN;CAD9gB;2BAJ0B,qBAAqB"}