@woosh/meep-engine 2.111.11 → 2.111.12

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/engine/graphics/render/frame_graph/IRenderContext.d.ts +0 -12
  3. package/src/engine/graphics/render/frame_graph/IRenderContext.d.ts.map +1 -1
  4. package/src/engine/graphics/render/frame_graph/IRenderContext.js +0 -19
  5. package/src/engine/graphics/render/frame_graph/RenderGraph.d.ts +10 -2
  6. package/src/engine/graphics/render/frame_graph/RenderGraph.d.ts.map +1 -1
  7. package/src/engine/graphics/render/frame_graph/RenderGraph.js +28 -2
  8. package/src/engine/graphics/render/frame_graph/RenderPass.d.ts +10 -1
  9. package/src/engine/graphics/render/frame_graph/RenderPass.d.ts.map +1 -1
  10. package/src/engine/graphics/render/frame_graph/RenderPass.js +13 -1
  11. package/src/engine/graphics/render/frame_graph/RenderPassNode.d.ts +2 -2
  12. package/src/engine/graphics/render/frame_graph/RenderPassNode.d.ts.map +1 -1
  13. package/src/engine/graphics/render/frame_graph/RenderPassNode.js +2 -2
  14. package/src/engine/graphics/render/frame_graph/backend/void/VoidRenderContext.d.ts +11 -0
  15. package/src/engine/graphics/render/frame_graph/backend/void/VoidRenderContext.d.ts.map +1 -0
  16. package/src/engine/graphics/render/frame_graph/backend/void/VoidRenderContext.js +16 -0
  17. package/src/engine/graphics/render/frame_graph/resource/ResourceDescriptor.d.ts +7 -0
  18. package/src/engine/graphics/render/frame_graph/resource/ResourceDescriptor.d.ts.map +1 -1
  19. package/src/engine/graphics/render/frame_graph/resource/ResourceDescriptor.js +15 -0
  20. package/src/engine/graphics/render/frame_graph/resource/TextureDescriptor.d.ts +0 -1
  21. package/src/engine/graphics/render/frame_graph/resource/TextureDescriptor.d.ts.map +1 -1
  22. package/src/engine/graphics/render/frame_graph/resource/TextureDescriptor.js +9 -0
  23. package/src/engine/graphics/render/frame_graph/webgl/WebGLRenderContext.d.ts +2 -0
  24. package/src/engine/graphics/render/frame_graph/webgl/WebGLRenderContext.d.ts.map +1 -1
  25. package/src/engine/graphics/render/frame_graph/webgl/WebGLRenderContext.js +23 -0
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.111.11",
8
+ "version": "2.111.12",
9
9
  "main": "build/meep.module.js",
10
10
  "module": "build/meep.module.js",
11
11
  "exports": {
@@ -3,18 +3,6 @@
3
3
  */
4
4
  export class IRenderContext {
5
5
  resource_manager: RenderResourceManager;
6
- /**
7
- *
8
- * @param {TextureDescriptor} descriptor
9
- * @returns {RenderTarget}
10
- */
11
- createRenderTarget(descriptor: TextureDescriptor): RenderTarget;
12
- /**
13
- *
14
- * @param {RenderTarget} target
15
- * @returns {boolean}
16
- */
17
- destroyRenderTarget(target: RenderTarget): boolean;
18
6
  /**
19
7
  * @template T
20
8
  * @param {ResourceDescriptor<T>} descriptor
@@ -1 +1 @@
1
- {"version":3,"file":"IRenderContext.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/render/frame_graph/IRenderContext.js"],"names":[],"mappings":"AAIA;;GAEG;AACH;IAEI,wCAA+C;IAO/C;;;;OAIG;IACH,gEAEC;IAED;;;;OAIG;IACH,2CAFa,OAAO,CAInB;IAED;;;;OAIG;IACH,wDAEC;IAED;;;;;OAKG;IACH,+EAEC;IAED,gBAEC;CACJ;sCAtDqC,qCAAqC"}
1
+ {"version":3,"file":"IRenderContext.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/render/frame_graph/IRenderContext.js"],"names":[],"mappings":"AAIA;;GAEG;AACH;IAEI,wCAA+C;IAM/C;;;;OAIG;IACH,wDAEC;IAED;;;;;OAKG;IACH,+EAEC;IAED,gBAEC;CACJ;sCAnCqC,qCAAqC"}
@@ -13,25 +13,6 @@ export class IRenderContext {
13
13
  this.resource_manager.attach(this);
14
14
  }
15
15
 
16
-
17
- /**
18
- *
19
- * @param {TextureDescriptor} descriptor
20
- * @returns {RenderTarget}
21
- */
22
- createRenderTarget(descriptor) {
23
- throw new Error('Not Implemented')
24
- }
25
-
26
- /**
27
- *
28
- * @param {RenderTarget} target
29
- * @returns {boolean}
30
- */
31
- destroyRenderTarget(target) {
32
- throw new Error('Not Implemented')
33
- }
34
-
35
16
  /**
36
17
  * @template T
37
18
  * @param {ResourceDescriptor<T>} descriptor
@@ -75,11 +75,11 @@ export class RenderGraph {
75
75
  /**
76
76
  * @template T
77
77
  * @param {string} name
78
- * @param {TextureDescriptor} description
78
+ * @param {ResourceDescriptor<T>} description
79
79
  * @param {T} resource
80
80
  * @returns {number}
81
81
  */
82
- import_resource<T_2>(name: string, description: TextureDescriptor, resource: T_2): number;
82
+ import_resource<T_2>(name: string, description: ResourceDescriptor<T_2>, resource: T_2): number;
83
83
  /**
84
84
  * @returns {boolean}
85
85
  * @param id
@@ -91,6 +91,14 @@ export class RenderGraph {
91
91
  * @returns {T} resources/handles returned by {@link RenderPass#setup}
92
92
  */
93
93
  add<T_3>(pass: RenderPass): T_3;
94
+ /**
95
+ * Perform validation, useful for debugging
96
+ * Typically done before compilation
97
+ * @param {function(problem:string):*} problem_consumer
98
+ * @param {*} [problem_consumer_context] thisArg for `problem_consumer`
99
+ * @returns {boolean}
100
+ */
101
+ validate(problem_consumer: any, problem_consumer_context?: any): boolean;
94
102
  compile(): void;
95
103
  /**
96
104
  *
@@ -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,kDAGJ,MAAM,CAUlB;IAED;;;OAGG;IACH,4BAHa,OAAO,CAQnB;IAED;;;;OAIG;IACH,gCAsBC;IAED,gBA0FC;IAED;;;OAGG;IACH,uCA6BC;IAED;;;OAGG;IACH,eAFY,MAAM,CAiEjB;CACJ;8BAzZ6B,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,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"}
@@ -163,7 +163,7 @@ export class RenderGraph {
163
163
  /**
164
164
  * @template T
165
165
  * @param {string} name
166
- * @param {TextureDescriptor} description
166
+ * @param {ResourceDescriptor<T>} description
167
167
  * @param {T} resource
168
168
  * @returns {number}
169
169
  */
@@ -210,6 +210,10 @@ export class RenderGraph {
210
210
 
211
211
  const result = pass.setup(builder, pass.inputs);
212
212
 
213
+ assert.defined(result, 'result');
214
+ assert.notNull(result, 'result');
215
+ assert.isObject(result, 'result');
216
+
213
217
  this.__passes.push(pass);
214
218
 
215
219
  node.data = result;
@@ -217,6 +221,20 @@ export class RenderGraph {
217
221
  return result;
218
222
  }
219
223
 
224
+ /**
225
+ * Perform validation, useful for debugging
226
+ * Typically done before compilation
227
+ * @param {function(problem:string):*} problem_consumer
228
+ * @param {*} [problem_consumer_context] thisArg for `problem_consumer`
229
+ * @returns {boolean}
230
+ */
231
+ validate(problem_consumer, problem_consumer_context) {
232
+
233
+ // TODO implement
234
+
235
+ return true;
236
+ }
237
+
220
238
  compile() {
221
239
  const pass_nodes = this.__pass_nodes;
222
240
 
@@ -314,8 +332,13 @@ export class RenderGraph {
314
332
  * @param {IRenderContext} context
315
333
  */
316
334
  execute(context) {
335
+ assert.defined(context, 'context');
336
+ assert.notNull(context, 'context');
337
+ assert.isObject(context, 'context');
338
+
317
339
  const pass_nodes = this.__pass_nodes;
318
340
  const pass_node_count = pass_nodes.length;
341
+
319
342
  for (let i = 0; i < pass_node_count; i++) {
320
343
  const node = pass_nodes[i];
321
344
 
@@ -323,7 +346,10 @@ export class RenderGraph {
323
346
  continue;
324
347
  }
325
348
 
326
- for (const id of node.resource_creates) {
349
+ const node_created_resources = node.resource_creates;
350
+
351
+ for (const id of node_created_resources) {
352
+
327
353
  // allocate resource
328
354
  this.getResourceEntry(id).create(context.resource_manager);
329
355
  }
@@ -22,14 +22,23 @@ export class RenderPass<DATA> {
22
22
  *
23
23
  * @param {RenderGraphBuilder} builder
24
24
  * @param {Object<number>} inputs
25
- * @returns {Object<number>}
25
+ * @returns {Object<number>} resources/handles that are used by the pass, includes both inputs and outputs
26
26
  */
27
27
  setup(builder: RenderGraphBuilder, inputs: any): any;
28
28
  /**
29
29
  * @param {DATA} data
30
30
  * @param {RenderPassResources} resources
31
31
  * @param {IRenderContext} render_context
32
+ * @returns {void}
32
33
  */
33
34
  execute(data: DATA, resources: RenderPassResources, render_context: IRenderContext): void;
35
+ /**
36
+ * Validate render pass internal structure
37
+ * This is an optional method, mainly useful for debugging purposes
38
+ * Default behaviour is to report pass as "valid" (true)
39
+ * @param {function(problem:string)} problem_consumer when returning false, reasons are supplied here
40
+ * @return {boolean} true for valid, false for invalid
41
+ */
42
+ validate(problem_consumer: any): boolean;
34
43
  }
35
44
  //# sourceMappingURL=RenderPass.d.ts.map
@@ -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;;;;OAIG;IACH,cAJW,IAAI,wEAMd;CACJ"}
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"}
@@ -33,7 +33,7 @@ export class RenderPass {
33
33
  *
34
34
  * @param {RenderGraphBuilder} builder
35
35
  * @param {Object<number>} inputs
36
- * @returns {Object<number>}
36
+ * @returns {Object<number>} resources/handles that are used by the pass, includes both inputs and outputs
37
37
  */
38
38
  setup(builder, inputs) {
39
39
  throw new Error('Not Implemented');
@@ -43,8 +43,20 @@ export class RenderPass {
43
43
  * @param {DATA} data
44
44
  * @param {RenderPassResources} resources
45
45
  * @param {IRenderContext} render_context
46
+ * @returns {void}
46
47
  */
47
48
  execute(data, resources, render_context) {
48
49
  throw new Error('Not Implemented');
49
50
  }
51
+
52
+ /**
53
+ * Validate render pass internal structure
54
+ * This is an optional method, mainly useful for debugging purposes
55
+ * Default behaviour is to report pass as "valid" (true)
56
+ * @param {function(problem:string)} problem_consumer when returning false, reasons are supplied here
57
+ * @return {boolean} true for valid, false for invalid
58
+ */
59
+ validate(problem_consumer) {
60
+ return true;
61
+ }
50
62
  }
@@ -11,9 +11,9 @@ export class RenderPassNode extends GraphNode {
11
11
  has_side_effects: boolean;
12
12
  /**
13
13
  *
14
- * @type {null}
14
+ * @type {Object}
15
15
  */
16
- data: null;
16
+ data: any;
17
17
  /**
18
18
  * IDs of created resources
19
19
  * @type {number[]}
@@ -1 +1 @@
1
- {"version":3,"file":"RenderPassNode.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/render/frame_graph/RenderPassNode.js"],"names":[],"mappings":"AAGA;IACI;;;OAGG;IACH,MAFU,aAAW,IAAI,CAEb;IAGZ;;;OAGG;IACH,kBAFU,OAAO,CAEQ;IAEzB;;;OAGG;IACH,MAFU,IAAI,CAEF;IAEZ;;;OAGG;IACH,kBAFU,MAAM,EAAE,CAEI;IACtB;;;OAGG;IACH,gBAFU,MAAM,EAAE,CAEE;IACpB;;;OAGG;IACH,iBAFU,MAAM,EAAE,CAEG;IAErB;;;;OAIG;IACH,YAHW,MAAM,GACL,OAAO,CAMlB;IAED;;;;OAIG;IACH,UAHW,MAAM,GACL,OAAO,CAMlB;IAED;;;;OAIG;IACH,WAHW,MAAM,GACL,OAAO,CAMlB;IAED,0BAOC;IAED;;;OAGG;IACH,eAFW,MAAM,UAUhB;IAED;;;OAGG;IACH,eAFY,OAAO,CAIlB;CACJ;0BArGyB,gBAAgB"}
1
+ {"version":3,"file":"RenderPassNode.d.ts","sourceRoot":"","sources":["../../../../../../src/engine/graphics/render/frame_graph/RenderPassNode.js"],"names":[],"mappings":"AAGA;IACI;;;OAGG;IACH,MAFU,aAAW,IAAI,CAEb;IAGZ;;;OAGG;IACH,kBAFU,OAAO,CAEQ;IAEzB;;;OAGG;IACH,UAAU;IAEV;;;OAGG;IACH,kBAFU,MAAM,EAAE,CAEI;IACtB;;;OAGG;IACH,gBAFU,MAAM,EAAE,CAEE;IACpB;;;OAGG;IACH,iBAFU,MAAM,EAAE,CAEG;IAErB;;;;OAIG;IACH,YAHW,MAAM,GACL,OAAO,CAMlB;IAED;;;;OAIG;IACH,UAHW,MAAM,GACL,OAAO,CAMlB;IAED;;;;OAIG;IACH,WAHW,MAAM,GACL,OAAO,CAMlB;IAED,0BAOC;IAED;;;OAGG;IACH,eAFW,MAAM,UAUhB;IAED;;;OAGG;IACH,eAFY,OAAO,CAIlB;CACJ;0BArGyB,gBAAgB"}
@@ -17,9 +17,9 @@ export class RenderPassNode extends GraphNode {
17
17
 
18
18
  /**
19
19
  *
20
- * @type {null}
20
+ * @type {Object}
21
21
  */
22
- data = null;
22
+ data = {};
23
23
 
24
24
  /**
25
25
  * IDs of created resources
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Doesn't actually do anything, but works as a valid rendering context
3
+ * Mainly used for testing
4
+ */
5
+ export class VoidRenderContext extends IRenderContext {
6
+ static INSTANCE: VoidRenderContext;
7
+ createResource(descriptor: any): any;
8
+ destroyResource(resource: any, descriptor: any): void;
9
+ }
10
+ import { IRenderContext } from "../../IRenderContext.js";
11
+ //# sourceMappingURL=VoidRenderContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VoidRenderContext.d.ts","sourceRoot":"","sources":["../../../../../../../../src/engine/graphics/render/frame_graph/backend/void/VoidRenderContext.js"],"names":[],"mappings":"AAEA;;;GAGG;AACH;IAQI,mCAA0C;IAP1C,qCAEC;IAED,sDACC;CAGJ;+BAf8B,yBAAyB"}
@@ -0,0 +1,16 @@
1
+ import { IRenderContext } from "../../IRenderContext.js";
2
+
3
+ /**
4
+ * Doesn't actually do anything, but works as a valid rendering context
5
+ * Mainly used for testing
6
+ */
7
+ export class VoidRenderContext extends IRenderContext {
8
+ createResource(descriptor) {
9
+ return null;
10
+ }
11
+
12
+ destroyResource(resource, descriptor) {
13
+ }
14
+
15
+ static INSTANCE = new VoidRenderContext();
16
+ }
@@ -13,5 +13,12 @@ export class ResourceDescriptor {
13
13
  * @return {boolean}
14
14
  */
15
15
  get isResourceDescriptor(): boolean;
16
+ hash(): number;
17
+ /**
18
+ * @template T {ResourceDescriptor}
19
+ * @param {T} other
20
+ * @returns {boolean}
21
+ */
22
+ equals<T>(other: T): boolean;
16
23
  }
17
24
  //# sourceMappingURL=ResourceDescriptor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ResourceDescriptor.d.ts","sourceRoot":"","sources":["../../../../../../../src/engine/graphics/render/frame_graph/resource/ResourceDescriptor.js"],"names":[],"mappings":"AAAA;;GAEG;AACH;IAEI;;;;OAIG;IACH,mBAEC;IAED;;;OAGG;IACH,oCAEC;CACJ"}
1
+ {"version":3,"file":"ResourceDescriptor.d.ts","sourceRoot":"","sources":["../../../../../../../src/engine/graphics/render/frame_graph/resource/ResourceDescriptor.js"],"names":[],"mappings":"AAAA;;GAEG;AACH;IAEI;;;;OAIG;IACH,mBAEC;IAED;;;OAGG;IACH,oCAEC;IAGD,eAEC;IAED;;;;OAIG;IACH,qBAFa,OAAO,CAInB;CAEJ"}
@@ -19,4 +19,19 @@ export class ResourceDescriptor {
19
19
  get isResourceDescriptor() {
20
20
  return true;
21
21
  }
22
+
23
+
24
+ hash() {
25
+ return 0;
26
+ }
27
+
28
+ /**
29
+ * @template T {ResourceDescriptor}
30
+ * @param {T} other
31
+ * @returns {boolean}
32
+ */
33
+ equals(other) {
34
+ return this.type === other.type;
35
+ }
36
+
22
37
  }
@@ -31,7 +31,6 @@ export class TextureDescriptor extends ResourceDescriptor {
31
31
  * @type {number}
32
32
  */
33
33
  initial_state: number;
34
- hash(): number;
35
34
  /**
36
35
  *
37
36
  * @param {TextureDescriptor} other
@@ -1 +1 @@
1
- {"version":3,"file":"TextureDescriptor.d.ts","sourceRoot":"","sources":["../../../../../../../src/engine/graphics/render/frame_graph/resource/TextureDescriptor.js"],"names":[],"mappings":"AAMA;IA2DI;;;;;;0BAiBC;IA1ED;;;OAGG;IACH,QAFU,MAAM,CAEL;IACX;;;OAGG;IACH,OAFU,MAAM,CAEN;IAEV;;;OAGG;IACH,QAFU,cAAc,CAEM;IAE9B;;;OAGG;IACH,eAFU,MAAM,CAEE;IAElB;;;OAGG;IACH,eAFU,MAAM,CAE0B;IAM1C,eAOC;IAED;;;;OAIG;IACH,cAHW,iBAAiB,GACf,OAAO,CASnB;CAqBJ;mCAhFkC,yBAAyB;+BAH7B,mDAAmD"}
1
+ {"version":3,"file":"TextureDescriptor.d.ts","sourceRoot":"","sources":["../../../../../../../src/engine/graphics/render/frame_graph/resource/TextureDescriptor.js"],"names":[],"mappings":"AAMA;IAoEI;;;;;;0BAiBC;IAnFD;;;OAGG;IACH,QAFU,MAAM,CAEL;IACX;;;OAGG;IACH,OAFU,MAAM,CAEN;IAEV;;;OAGG;IACH,QAFU,cAAc,CAEM;IAE9B;;;OAGG;IACH,eAFU,MAAM,CAEE;IAElB;;;OAGG;IACH,eAFU,MAAM,CAE0B;IAe1C;;;;OAIG;IACH,cAHW,iBAAiB,GACf,OAAO,CAkBnB;CAqBJ;mCAzFkC,yBAAyB;+BAH7B,mDAAmD"}
@@ -54,6 +54,15 @@ export class TextureDescriptor extends ResourceDescriptor {
54
54
  * @returns {boolean}
55
55
  */
56
56
  equals(other) {
57
+ if (this === other) {
58
+ // shortcut
59
+ return true;
60
+ }
61
+
62
+ if (!super.equals(other)) {
63
+ return false;
64
+ }
65
+
57
66
  return this.width === other.width
58
67
  && this.height === other.height
59
68
  && this.format === other.format
@@ -4,6 +4,8 @@ export class WebGLRenderContext extends IRenderContext {
4
4
  * @param {WebGL2RenderingContext} ctx
5
5
  */
6
6
  constructor(ctx: WebGL2RenderingContext);
7
+ createResource(descriptor: any): RenderTarget;
8
+ destroyResource(resource: any, descriptor: any): boolean;
7
9
  /**
8
10
  *
9
11
  * @param {TextureDescriptor} descriptor
@@ -1 +1 @@
1
- {"version":3,"file":"WebGLRenderContext.d.ts","sourceRoot":"","sources":["../../../../../../../src/engine/graphics/render/frame_graph/webgl/WebGLRenderContext.js"],"names":[],"mappings":"AAGA;IAOI;;;OAGG;IACH,iBAFW,sBAAsB,EAMhC;IAED;;;OAGG;IACH,gEASC;IAED,0CAEC;;CACJ;+BAtC8B,sBAAsB;6BACxB,6BAA6B"}
1
+ {"version":3,"file":"WebGLRenderContext.d.ts","sourceRoot":"","sources":["../../../../../../../src/engine/graphics/render/frame_graph/webgl/WebGLRenderContext.js"],"names":[],"mappings":"AAGA;IAOI;;;OAGG;IACH,iBAFW,sBAAsB,EAMhC;IAED,8CAQC;IAED,yDAWC;IAED;;;OAGG;IACH,gEASC;IAED,0CAEC;;CACJ;+BA7D8B,sBAAsB;6BACxB,6BAA6B"}
@@ -18,6 +18,29 @@ export class WebGLRenderContext extends IRenderContext {
18
18
  this.#gl = ctx;
19
19
  }
20
20
 
21
+ createResource(descriptor) {
22
+ const resource_type = descriptor.type;
23
+
24
+ if(resource_type === "texture"){
25
+ return this.createRenderTarget(descriptor);
26
+ }
27
+
28
+ throw new Error(`Unsupported resource type ${resource_type}`);
29
+ }
30
+
31
+ destroyResource(resource, descriptor) {
32
+
33
+
34
+ const resource_type = descriptor.type;
35
+
36
+ if(resource_type === "texture"){
37
+ return this.destroyRenderTarget(resource);
38
+ }
39
+
40
+ throw new Error(`Unsupported resource type ${resource_type}`);
41
+
42
+ }
43
+
21
44
  /**
22
45
  *
23
46
  * @param {TextureDescriptor} descriptor