@babylonjs/smart-filters 0.3.7-alpha → 0.3.9-alpha
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/dist/blocks/outputBlock.d.ts +1 -3
- package/dist/blocks/outputBlock.d.ts.map +1 -1
- package/dist/blocks/outputBlock.js +26 -21
- package/dist/blocks/outputBlock.js.map +1 -1
- package/dist/blocks/{copyBlock.shader.d.ts → outputBlock.shader.d.ts} +1 -1
- package/dist/blocks/outputBlock.shader.d.ts.map +1 -0
- package/dist/blocks/{copyBlock.shader.js → outputBlock.shader.js} +1 -1
- package/dist/blocks/outputBlock.shader.js.map +1 -0
- package/dist/connection/connectionPoint.d.ts.map +1 -1
- package/dist/connection/connectionPoint.js +2 -1
- package/dist/connection/connectionPoint.js.map +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -1
- package/dist/index.js.map +1 -1
- package/dist/smartFilter.d.ts +5 -0
- package/dist/smartFilter.d.ts.map +1 -1
- package/dist/smartFilter.js +3 -0
- package/dist/smartFilter.js.map +1 -1
- package/package.json +1 -1
- package/src/blocks/outputBlock.ts +33 -26
- package/src/connection/connectionPoint.ts +3 -1
- package/src/index.ts +0 -1
- package/src/smartFilter.ts +12 -0
- package/dist/blocks/copyBlock.d.ts +0 -57
- package/dist/blocks/copyBlock.d.ts.map +0 -1
- package/dist/blocks/copyBlock.js +0 -64
- package/dist/blocks/copyBlock.js.map +0 -1
- package/dist/blocks/copyBlock.shader.d.ts.map +0 -1
- package/dist/blocks/copyBlock.shader.js.map +0 -1
- package/src/blocks/copyBlock.ts +0 -77
- /package/src/blocks/{copyBlock.fragment.glsl → outputBlock.fragment.glsl} +0 -0
- /package/src/blocks/{copyBlock.shader.ts → outputBlock.shader.ts} +0 -0
|
@@ -18,19 +18,17 @@ export declare class OutputBlock extends BaseBlock {
|
|
|
18
18
|
* Input connection point of the output block.
|
|
19
19
|
* This takes a texture as input.
|
|
20
20
|
*/
|
|
21
|
-
readonly input: import("
|
|
21
|
+
readonly input: import("../connection/connectionPoint").ConnectionPoint<ConnectionPointType.Texture>;
|
|
22
22
|
/**
|
|
23
23
|
* If supplied, the Smart Filter will render into this texture. Otherwise, it renders
|
|
24
24
|
* into the the canvas or WebGL context the ThinEngine is using for rendering.
|
|
25
25
|
*/
|
|
26
26
|
renderTargetTexture: Nullable<ThinRenderTargetTexture>;
|
|
27
|
-
private _copyBlock;
|
|
28
27
|
/**
|
|
29
28
|
* Create a new output block.
|
|
30
29
|
* @param smartFilter - The smart filter this block belongs to
|
|
31
30
|
*/
|
|
32
31
|
constructor(smartFilter: SmartFilter);
|
|
33
|
-
private _getCopyBlock;
|
|
34
32
|
/**
|
|
35
33
|
* Prepares all blocks for runtime by traversing the graph.
|
|
36
34
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"outputBlock.d.ts","sourceRoot":"","sources":["../../src/blocks/outputBlock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"outputBlock.d.ts","sourceRoot":"","sources":["../../src/blocks/outputBlock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,4DAA4D,CAAC;AAM1G;;;;;GAKG;AACH,qBAAa,WAAY,SAAQ,SAAS;IACtC;;OAEG;IACH,OAAuB,SAAS,SAAiB;IAEjD;;;OAGG;IACH,SAAgB,KAAK,uFAA6D;IAElF;;;OAGG;IACI,mBAAmB,EAAE,QAAQ,CAAC,uBAAuB,CAAC,CAAQ;IAErE;;;OAGG;gBACS,WAAW,EAAE,WAAW;IAIpC;;OAEG;IACa,iBAAiB,IAAI,IAAI;IAQzC;;OAEG;IACa,oBAAoB,IAAI,IAAI;IAQ5C;;;;OAIG;IACa,qCAAqC,CACjD,kBAAkB,EAAE,kBAAkB,EACtC,WAAW,EAAE,OAAO,GACrB,IAAI;CAmBV"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { ConnectionPointType } from "../connection/connectionPointType.js";
|
|
2
2
|
import { BaseBlock } from "./baseBlock.js";
|
|
3
|
-
import {
|
|
4
|
-
import { ShaderRuntime } from "../runtime/shaderRuntime.js";
|
|
3
|
+
import { Binding, ShaderRuntime } from "../runtime/shaderRuntime.js";
|
|
5
4
|
import { registerFinalRenderCommand } from "../utils/renderTargetUtils.js";
|
|
5
|
+
import { shaderProgram, uniforms } from "./outputBlock.shader.js";
|
|
6
6
|
/**
|
|
7
7
|
* The output block of a smart filter.
|
|
8
8
|
*
|
|
@@ -26,14 +26,6 @@ export class OutputBlock extends BaseBlock {
|
|
|
26
26
|
* into the the canvas or WebGL context the ThinEngine is using for rendering.
|
|
27
27
|
*/
|
|
28
28
|
this.renderTargetTexture = null;
|
|
29
|
-
this._copyBlock = null;
|
|
30
|
-
}
|
|
31
|
-
_getCopyBlock() {
|
|
32
|
-
if (!this._copyBlock) {
|
|
33
|
-
this._copyBlock = new CopyBlock(this.smartFilter, "CopyToOutputBlock");
|
|
34
|
-
}
|
|
35
|
-
this._copyBlock.input.runtimeData = this.input.runtimeData;
|
|
36
|
-
return this._copyBlock;
|
|
37
29
|
}
|
|
38
30
|
/**
|
|
39
31
|
* Prepares all blocks for runtime by traversing the graph.
|
|
@@ -63,27 +55,40 @@ export class OutputBlock extends BaseBlock {
|
|
|
63
55
|
generateCommandsAndGatherInitPromises(initializationData, finalOutput) {
|
|
64
56
|
var _a;
|
|
65
57
|
// In the case that this OutputBlock is directly connected to a texture InputBlock, we must
|
|
66
|
-
//
|
|
67
|
-
if ((_a = this.input.connectedTo) === null || _a === void 0 ? void 0 : _a.ownerBlock.isInput) {
|
|
68
|
-
const copyBlock = this._getCopyBlock();
|
|
58
|
+
// use a shader to copy the texture to the render target texture.
|
|
59
|
+
if (((_a = this.input.connectedTo) === null || _a === void 0 ? void 0 : _a.ownerBlock.isInput) && this.input.runtimeData) {
|
|
69
60
|
const runtime = initializationData.runtime;
|
|
70
|
-
const shaderBlockRuntime = new ShaderRuntime(runtime.effectRenderer,
|
|
61
|
+
const shaderBlockRuntime = new ShaderRuntime(runtime.effectRenderer, shaderProgram, new OutputShaderBinding(this.input.runtimeData));
|
|
71
62
|
initializationData.initializationPromises.push(shaderBlockRuntime.onReadyAsync);
|
|
72
63
|
runtime.registerResource(shaderBlockRuntime);
|
|
73
64
|
registerFinalRenderCommand(this.renderTargetTexture, runtime, this, shaderBlockRuntime);
|
|
74
65
|
super.generateCommandsAndGatherInitPromises(initializationData, finalOutput);
|
|
75
66
|
}
|
|
76
|
-
else {
|
|
77
|
-
// We aren't connected to an input block, remove our copy block if we have one.
|
|
78
|
-
if (this._copyBlock) {
|
|
79
|
-
this.smartFilter.removeBlock(this._copyBlock);
|
|
80
|
-
this._copyBlock = null;
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
67
|
}
|
|
84
68
|
}
|
|
85
69
|
/**
|
|
86
70
|
* The class name of the block.
|
|
87
71
|
*/
|
|
88
72
|
OutputBlock.ClassName = "OutputBlock";
|
|
73
|
+
/**
|
|
74
|
+
* Shader binding to use when the OutputBlock is directly connected to a texture InputBlock.
|
|
75
|
+
*/
|
|
76
|
+
class OutputShaderBinding extends Binding {
|
|
77
|
+
/**
|
|
78
|
+
* Creates a new shader binding instance.
|
|
79
|
+
* @param inputTexture - defines the input texture to copy
|
|
80
|
+
*/
|
|
81
|
+
constructor(inputTexture) {
|
|
82
|
+
super();
|
|
83
|
+
this._inputTexture = inputTexture;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Binds all the required data to the shader when rendering.
|
|
87
|
+
* @param effect - defines the effect to bind the data to
|
|
88
|
+
* @internal
|
|
89
|
+
*/
|
|
90
|
+
bind(effect) {
|
|
91
|
+
effect.setTexture(this.getRemappedName(uniforms.input), this._inputTexture.value);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
89
94
|
//# sourceMappingURL=outputBlock.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"outputBlock.js","sourceRoot":"","sources":["../../src/blocks/outputBlock.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"outputBlock.js","sourceRoot":"","sources":["../../src/blocks/outputBlock.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAGrE,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAG3E,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAElE;;;;;GAKG;AACH,MAAM,OAAO,WAAY,SAAQ,SAAS;IAkBtC;;;OAGG;IACH,YAAY,WAAwB;QAChC,KAAK,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QAjBjC;;;WAGG;QACa,UAAK,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAElF;;;WAGG;QACI,wBAAmB,GAAsC,IAAI,CAAC;IAQrE,CAAC;IAED;;OAEG;IACa,iBAAiB;QAC7B,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,KAAgB,EAAE,UAAkB,EAAE,EAAE;YACpD,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBACjB,KAAK,CAAC,iBAAiB,EAAE,CAAC;YAC9B,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;OAEG;IACa,oBAAoB;QAChC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,KAAgB,EAAE,UAAkB,EAAE,EAAE;YACpD,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBACjB,KAAK,CAAC,oBAAoB,EAAE,CAAC;YACjC,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;;;OAIG;IACa,qCAAqC,CACjD,kBAAsC,EACtC,WAAoB;;QAEpB,2FAA2F;QAC3F,iEAAiE;QACjE,IAAI,CAAA,MAAA,IAAI,CAAC,KAAK,CAAC,WAAW,0CAAE,UAAU,CAAC,OAAO,KAAI,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;YACvE,MAAM,OAAO,GAAG,kBAAkB,CAAC,OAAO,CAAC;YAE3C,MAAM,kBAAkB,GAAG,IAAI,aAAa,CACxC,OAAO,CAAC,cAAc,EACtB,aAAa,EACb,IAAI,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAClD,CAAC;YACF,kBAAkB,CAAC,sBAAsB,CAAC,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;YAChF,OAAO,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;YAE7C,0BAA0B,CAAC,IAAI,CAAC,mBAAmB,EAAE,OAAO,EAAE,IAAI,EAAE,kBAAkB,CAAC,CAAC;YAExF,KAAK,CAAC,qCAAqC,CAAC,kBAAkB,EAAE,WAAW,CAAC,CAAC;QACjF,CAAC;IACL,CAAC;;AAzED;;GAEG;AACoB,qBAAS,GAAG,aAAa,AAAhB,CAAiB;AAyErD;;GAEG;AACH,MAAM,mBAAoB,SAAQ,OAAO;IAGrC;;;OAGG;IACH,YAAY,YAAsD;QAC9D,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;IACtC,CAAC;IAED;;;;OAIG;IACa,IAAI,CAAC,MAAc;QAC/B,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IACtF,CAAC;CACJ"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"outputBlock.shader.d.ts","sourceRoot":"","sources":["../../src/blocks/outputBlock.shader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAE9D;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,aAsB3B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,QAAQ;;CAEpB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"outputBlock.shader.js","sourceRoot":"","sources":["../../src/blocks/outputBlock.shader.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAkB;IACxC,MAAM,EAAE,SAAS;IACjB,QAAQ,EAAE;QACN,OAAO,EAAE;;qCAEoB;QAC7B,gBAAgB,EAAE,SAAS;QAC3B,gBAAgB,EAAE,QAAQ;QAC1B,SAAS,EAAE;YACP;gBACI,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE;;;;;;;qBAOD;aACR;SACJ;KACJ;CACJ,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG;IACpB,KAAK,EAAE,OAAO;CACjB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connectionPoint.d.ts","sourceRoot":"","sources":["../../src/connection/connectionPoint.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EACH,iCAAiC,EAEpC,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AACvF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEtD;;GAEG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,mBAAmB,IAAI,SAAS,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC;AAE5F;;;;;;;;;GASG;AACH,qBAAa,eAAe,CAAC,CAAC,SAAS,mBAAmB,GAAG,mBAAmB;IAC5E;;;OAGG;IACH,SAAgB,IAAI,EAAE,MAAM,CAAC;IAE7B;;OAEG;IACH,SAAgB,IAAI,EAAE,CAAC,CAAC;IAExB;;OAEG;IACH,SAAgB,SAAS,EAAE,wBAAwB,CAAC;IAEpD;;OAEG;IACH,SAAgB,UAAU,EAAE,SAAS,CAAC;IAEtC;;OAEG;IACI,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAQ;IAE5C;;;;OAIG;IACI,WAAW,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAQ;IAEpD;;OAEG;IACH,SAAgB,kBAAkB,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAQ;IAEpE,OAAO,CAAC,YAAY,CAAsC;IAC1D,OAAO,CAAC,UAAU,CAAiC;IAEnD;;;;;;;OAOG;gBAEC,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,SAAS,EACrB,IAAI,EAAE,CAAC,EACP,SAAS,EAAE,wBAAwB,EACnC,kBAAkB,GAAE,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAQ;IAUvD;;;;;OAKG;IACH,IAAW,WAAW,IAAI,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAErD;IAED;;;;;OAKG;IACH,IAAW,SAAS,IAAI,aAAa,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAExD;IAED;;;;OAIG;IACI,uBAAuB,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,iCAAiC;IAwB5F;;;;OAIG;IACI,YAAY,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC,CAAC;IAIvD;;;;OAIG;IACI,SAAS,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,IAAI;IAmBjD;;;OAGG;IACI,cAAc,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"connectionPoint.d.ts","sourceRoot":"","sources":["../../src/connection/connectionPoint.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EACH,iCAAiC,EAEpC,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AACvF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEtD;;GAEG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,SAAS,mBAAmB,IAAI,SAAS,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC;AAE5F;;;;;;;;;GASG;AACH,qBAAa,eAAe,CAAC,CAAC,SAAS,mBAAmB,GAAG,mBAAmB;IAC5E;;;OAGG;IACH,SAAgB,IAAI,EAAE,MAAM,CAAC;IAE7B;;OAEG;IACH,SAAgB,IAAI,EAAE,CAAC,CAAC;IAExB;;OAEG;IACH,SAAgB,SAAS,EAAE,wBAAwB,CAAC;IAEpD;;OAEG;IACH,SAAgB,UAAU,EAAE,SAAS,CAAC;IAEtC;;OAEG;IACI,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAQ;IAE5C;;;;OAIG;IACI,WAAW,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAQ;IAEpD;;OAEG;IACH,SAAgB,kBAAkB,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAQ;IAEpE,OAAO,CAAC,YAAY,CAAsC;IAC1D,OAAO,CAAC,UAAU,CAAiC;IAEnD;;;;;;;OAOG;gBAEC,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,SAAS,EACrB,IAAI,EAAE,CAAC,EACP,SAAS,EAAE,wBAAwB,EACnC,kBAAkB,GAAE,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAQ;IAUvD;;;;;OAKG;IACH,IAAW,WAAW,IAAI,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAErD;IAED;;;;;OAKG;IACH,IAAW,SAAS,IAAI,aAAa,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAExD;IAED;;;;OAIG;IACI,uBAAuB,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,iCAAiC;IAwB5F;;;;OAIG;IACI,YAAY,CAAC,eAAe,EAAE,eAAe,CAAC,CAAC,CAAC;IAIvD;;;;OAIG;IACI,SAAS,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,IAAI;IAmBjD;;;OAGG;IACI,cAAc,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,IAAI;IAczD;;OAEG;IACI,sBAAsB,IAAI,IAAI;IAQrC;;OAEG;IACI,oBAAoB,IAAI,IAAI;CAStC"}
|
|
@@ -125,8 +125,9 @@ export class ConnectionPoint {
|
|
|
125
125
|
}
|
|
126
126
|
// Remove the connection point from the list of endpoints
|
|
127
127
|
this._endpoints.splice(index, 1);
|
|
128
|
-
//
|
|
128
|
+
// Connections are double-linked - remove the reference back to this connection point from the one we just disconnected from
|
|
129
129
|
endpoint._connectedTo = null;
|
|
130
|
+
endpoint.runtimeData = null;
|
|
130
131
|
}
|
|
131
132
|
/**
|
|
132
133
|
* Disconnects this point from all its endpoints.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connectionPoint.js","sourceRoot":"","sources":["../../src/connection/connectionPoint.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"connectionPoint.js","sourceRoot":"","sources":["../../src/connection/connectionPoint.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -15,7 +15,6 @@ export { InputBlock, type InputBlockEditorData } from "./blocks/inputBlock.js";
|
|
|
15
15
|
export { type AnyInputBlock } from "./blocks/inputBlock.js";
|
|
16
16
|
export { ShaderBlock } from "./blocks/shaderBlock.js";
|
|
17
17
|
export { AggregateBlock } from "./blocks/aggregateBlock.js";
|
|
18
|
-
export { CopyBlock } from "./blocks/copyBlock.js";
|
|
19
18
|
export { ShaderBinding, ShaderRuntime } from "./runtime/shaderRuntime.js";
|
|
20
19
|
export { type ShaderProgram, injectDisableUniform } from "./utils/shaderCodeUtils.js";
|
|
21
20
|
export { type IDisableableBlock } from "./blocks/disableableBlock.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,cAAc,sBAAsB,CAAC;AACrC,cAAc,4BAA4B,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AAEjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAC;AACpF,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAChF,OAAO,EACH,iCAAiC,EACjC,4BAA4B,GAC/B,MAAM,mDAAmD,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAEnE,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,KAAK,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC/E,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,cAAc,sBAAsB,CAAC;AACrC,cAAc,4BAA4B,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AAEjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAC;AACpF,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAChF,OAAO,EACH,iCAAiC,EACjC,4BAA4B,GAC/B,MAAM,mDAAmD,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAEnE,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,KAAK,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC/E,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC1E,OAAO,EAAE,KAAK,aAAa,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AACtF,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAEtE,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAE3E,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;AAC9E,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -15,7 +15,6 @@ export { InputBlock } from "./blocks/inputBlock.js";
|
|
|
15
15
|
export {} from "./blocks/inputBlock.js";
|
|
16
16
|
export { ShaderBlock } from "./blocks/shaderBlock.js";
|
|
17
17
|
export { AggregateBlock } from "./blocks/aggregateBlock.js";
|
|
18
|
-
export { CopyBlock } from "./blocks/copyBlock.js";
|
|
19
18
|
export { ShaderBinding, ShaderRuntime } from "./runtime/shaderRuntime.js";
|
|
20
19
|
export { injectDisableUniform } from "./utils/shaderCodeUtils.js";
|
|
21
20
|
export {} from "./blocks/disableableBlock.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAkB,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,cAAc,sBAAsB,CAAC;AACrC,cAAc,4BAA4B,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AAEjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAC;AACpF,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,EAA6B,MAAM,qCAAqC,CAAC;AAChF,OAAO,EACH,iCAAiC,EACjC,4BAA4B,GAC/B,MAAM,mDAAmD,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAoB,MAAM,iCAAiC,CAAC;AAEnE,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,UAAU,EAA6B,MAAM,wBAAwB,CAAC;AAC/E,OAAO,EAAsB,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAkB,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,cAAc,sBAAsB,CAAC;AACrC,cAAc,4BAA4B,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AAEjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,0CAA0C,CAAC;AACpF,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,EAA6B,MAAM,qCAAqC,CAAC;AAChF,OAAO,EACH,iCAAiC,EACjC,4BAA4B,GAC/B,MAAM,mDAAmD,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAoB,MAAM,iCAAiC,CAAC;AAEnE,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,UAAU,EAA6B,MAAM,wBAAwB,CAAC;AAC/E,OAAO,EAAsB,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC1E,OAAO,EAAsB,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AACtF,OAAO,EAA0B,MAAM,8BAA8B,CAAC;AAEtE,OAAO,EAA2B,MAAM,iCAAiC,CAAC;AAC1E,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAE3E,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAC;AAC9E,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC"}
|
package/dist/smartFilter.d.ts
CHANGED
|
@@ -8,6 +8,7 @@ import { OutputBlock } from "./blocks/outputBlock.js";
|
|
|
8
8
|
import { InternalSmartFilterRuntime } from "./runtime/smartFilterRuntime.js";
|
|
9
9
|
import { RenderTargetGenerator } from "./runtime/renderTargetGenerator.js";
|
|
10
10
|
import type { IEditorData } from "@babylonjs/shared-ui-components/nodeGraphSystem/interfaces/nodeLocationInfo";
|
|
11
|
+
import type { IDisposable } from "./IDisposable";
|
|
11
12
|
/**
|
|
12
13
|
* Data passed to the initialize function of the blocks.
|
|
13
14
|
*/
|
|
@@ -26,6 +27,10 @@ export type InitializationData = {
|
|
|
26
27
|
* The list of promises to wait for during the initialization step.
|
|
27
28
|
*/
|
|
28
29
|
readonly initializationPromises: Promise<void>[];
|
|
30
|
+
/**
|
|
31
|
+
* Resources that need to be disposed when the runtime is disposed.
|
|
32
|
+
*/
|
|
33
|
+
readonly disposableResources: IDisposable[];
|
|
29
34
|
};
|
|
30
35
|
/**
|
|
31
36
|
* The smart filter class is the main class of the smart filter module.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"smartFilter.d.ts","sourceRoot":"","sources":["../src/smartFilter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AACrE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAE3E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6EAA6E,CAAC;
|
|
1
|
+
{"version":3,"file":"smartFilter.d.ts","sourceRoot":"","sources":["../src/smartFilter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AACrE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAE3E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6EAA6E,CAAC;AAC/G,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAOjD;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC7B;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,0BAA0B,CAAC;IAE7C;;;;OAIG;IACH,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAElC;;OAEG;IACH,QAAQ,CAAC,sBAAsB,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;IAEjD;;OAEG;IACH,QAAQ,CAAC,mBAAmB,EAAE,WAAW,EAAE,CAAC;CAC/C,CAAC;AAEF;;;;;;GAMG;AACH,qBAAa,WAAW;IACpB;;OAEG;IACH,SAAgB,IAAI,EAAE,MAAM,CAAC;IAE7B;;;;OAIG;IACH,SAAgB,MAAM,EAAE,eAAe,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAErE;;OAEG;IACH,SAAgB,WAAW,EAAE,WAAW,CAAC;IAEzC;;OAEG;IACI,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAQ;IAEzC;;OAEG;IACI,UAAU,EAAE,QAAQ,CAAC,WAAW,CAAC,CAAQ;IAEhD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAmB;IACnD;;;OAGG;gBACS,IAAI,EAAE,MAAM;IAQxB;;OAEG;IACH,IAAW,cAAc,IAAI,aAAa,CAAC,SAAS,CAAC,CAEpD;IAED;;OAEG;IACI,YAAY,IAAI,MAAM;IAI7B;;;;;OAKG;IACI,aAAa,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAe5C;;;;;OAKG;IACI,WAAW,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAc1C,OAAO,CAAC,sCAAsC;IAW9C;;;;;OAKG;IACU,kBAAkB,CAC3B,MAAM,EAAE,UAAU,EAClB,qBAAqB,CAAC,EAAE,qBAAqB,GAC9C,OAAO,CAAC,kBAAkB,CAAC;IAqC9B;;;;OAIG;IACI,2BAA2B,CAAC,IAAI,EAAE,MAAM,IAAI,GAAG,IAAI;CAoB7D"}
|
package/dist/smartFilter.js
CHANGED
|
@@ -98,6 +98,7 @@ export class SmartFilter {
|
|
|
98
98
|
runtime,
|
|
99
99
|
outputBlock: this.outputBlock,
|
|
100
100
|
initializationPromises: [],
|
|
101
|
+
disposableResources: [],
|
|
101
102
|
};
|
|
102
103
|
this._workWithAggregateFreeGraph(() => {
|
|
103
104
|
this.outputBlock.prepareForRuntime();
|
|
@@ -115,6 +116,8 @@ export class SmartFilter {
|
|
|
115
116
|
throw new Error("Initialization promises timed out");
|
|
116
117
|
}
|
|
117
118
|
}
|
|
119
|
+
// Register the resources to dispose when the runtime is disposed
|
|
120
|
+
initializationData.disposableResources.forEach((resource) => runtime.registerResource(resource));
|
|
118
121
|
return runtime;
|
|
119
122
|
}
|
|
120
123
|
/**
|
package/dist/smartFilter.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"smartFilter.js","sourceRoot":"","sources":["../src/smartFilter.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"smartFilter.js","sourceRoot":"","sources":["../src/smartFilter.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import type { InitializationData, SmartFilter } from "../smartFilter";
|
|
2
2
|
import { ConnectionPointType } from "../connection/connectionPointType.js";
|
|
3
3
|
import { BaseBlock } from "./baseBlock.js";
|
|
4
|
-
import {
|
|
5
|
-
import { ShaderRuntime } from "../runtime/shaderRuntime.js";
|
|
4
|
+
import { Binding, ShaderRuntime } from "../runtime/shaderRuntime.js";
|
|
6
5
|
import type { Nullable } from "@babylonjs/core/types";
|
|
7
6
|
import type { ThinRenderTargetTexture } from "@babylonjs/core/Materials/Textures/thinRenderTargetTexture";
|
|
8
7
|
import { registerFinalRenderCommand } from "../utils/renderTargetUtils.js";
|
|
8
|
+
import type { RuntimeData } from "../connection/connectionPoint";
|
|
9
|
+
import type { Effect } from "@babylonjs/core/Materials/effect";
|
|
10
|
+
import { shaderProgram, uniforms } from "./outputBlock.shader.js";
|
|
9
11
|
|
|
10
12
|
/**
|
|
11
13
|
* The output block of a smart filter.
|
|
@@ -31,25 +33,12 @@ export class OutputBlock extends BaseBlock {
|
|
|
31
33
|
*/
|
|
32
34
|
public renderTargetTexture: Nullable<ThinRenderTargetTexture> = null;
|
|
33
35
|
|
|
34
|
-
private _copyBlock: CopyBlock | null;
|
|
35
|
-
|
|
36
36
|
/**
|
|
37
37
|
* Create a new output block.
|
|
38
38
|
* @param smartFilter - The smart filter this block belongs to
|
|
39
39
|
*/
|
|
40
40
|
constructor(smartFilter: SmartFilter) {
|
|
41
41
|
super(smartFilter, "output");
|
|
42
|
-
|
|
43
|
-
this._copyBlock = null;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
private _getCopyBlock(): CopyBlock {
|
|
47
|
-
if (!this._copyBlock) {
|
|
48
|
-
this._copyBlock = new CopyBlock(this.smartFilter, "CopyToOutputBlock");
|
|
49
|
-
}
|
|
50
|
-
this._copyBlock.input.runtimeData = this.input.runtimeData;
|
|
51
|
-
|
|
52
|
-
return this._copyBlock;
|
|
53
42
|
}
|
|
54
43
|
|
|
55
44
|
/**
|
|
@@ -84,15 +73,14 @@ export class OutputBlock extends BaseBlock {
|
|
|
84
73
|
finalOutput: boolean
|
|
85
74
|
): void {
|
|
86
75
|
// In the case that this OutputBlock is directly connected to a texture InputBlock, we must
|
|
87
|
-
//
|
|
88
|
-
if (this.input.connectedTo?.ownerBlock.isInput) {
|
|
89
|
-
const copyBlock = this._getCopyBlock();
|
|
76
|
+
// use a shader to copy the texture to the render target texture.
|
|
77
|
+
if (this.input.connectedTo?.ownerBlock.isInput && this.input.runtimeData) {
|
|
90
78
|
const runtime = initializationData.runtime;
|
|
91
79
|
|
|
92
80
|
const shaderBlockRuntime = new ShaderRuntime(
|
|
93
81
|
runtime.effectRenderer,
|
|
94
|
-
|
|
95
|
-
|
|
82
|
+
shaderProgram,
|
|
83
|
+
new OutputShaderBinding(this.input.runtimeData)
|
|
96
84
|
);
|
|
97
85
|
initializationData.initializationPromises.push(shaderBlockRuntime.onReadyAsync);
|
|
98
86
|
runtime.registerResource(shaderBlockRuntime);
|
|
@@ -100,12 +88,31 @@ export class OutputBlock extends BaseBlock {
|
|
|
100
88
|
registerFinalRenderCommand(this.renderTargetTexture, runtime, this, shaderBlockRuntime);
|
|
101
89
|
|
|
102
90
|
super.generateCommandsAndGatherInitPromises(initializationData, finalOutput);
|
|
103
|
-
} else {
|
|
104
|
-
// We aren't connected to an input block, remove our copy block if we have one.
|
|
105
|
-
if (this._copyBlock) {
|
|
106
|
-
this.smartFilter.removeBlock(this._copyBlock);
|
|
107
|
-
this._copyBlock = null;
|
|
108
|
-
}
|
|
109
91
|
}
|
|
110
92
|
}
|
|
111
93
|
}
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* Shader binding to use when the OutputBlock is directly connected to a texture InputBlock.
|
|
97
|
+
*/
|
|
98
|
+
class OutputShaderBinding extends Binding {
|
|
99
|
+
private readonly _inputTexture: RuntimeData<ConnectionPointType.Texture>;
|
|
100
|
+
|
|
101
|
+
/**
|
|
102
|
+
* Creates a new shader binding instance.
|
|
103
|
+
* @param inputTexture - defines the input texture to copy
|
|
104
|
+
*/
|
|
105
|
+
constructor(inputTexture: RuntimeData<ConnectionPointType.Texture>) {
|
|
106
|
+
super();
|
|
107
|
+
this._inputTexture = inputTexture;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
/**
|
|
111
|
+
* Binds all the required data to the shader when rendering.
|
|
112
|
+
* @param effect - defines the effect to bind the data to
|
|
113
|
+
* @internal
|
|
114
|
+
*/
|
|
115
|
+
public override bind(effect: Effect): void {
|
|
116
|
+
effect.setTexture(this.getRemappedName(uniforms.input), this._inputTexture.value);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
@@ -182,8 +182,10 @@ export class ConnectionPoint<U extends ConnectionPointType = ConnectionPointType
|
|
|
182
182
|
|
|
183
183
|
// Remove the connection point from the list of endpoints
|
|
184
184
|
this._endpoints.splice(index, 1);
|
|
185
|
-
|
|
185
|
+
|
|
186
|
+
// Connections are double-linked - remove the reference back to this connection point from the one we just disconnected from
|
|
186
187
|
endpoint._connectedTo = null;
|
|
188
|
+
endpoint.runtimeData = null;
|
|
187
189
|
}
|
|
188
190
|
|
|
189
191
|
/**
|
package/src/index.ts
CHANGED
|
@@ -21,7 +21,6 @@ export { InputBlock, type InputBlockEditorData } from "./blocks/inputBlock.js";
|
|
|
21
21
|
export { type AnyInputBlock } from "./blocks/inputBlock.js";
|
|
22
22
|
export { ShaderBlock } from "./blocks/shaderBlock.js";
|
|
23
23
|
export { AggregateBlock } from "./blocks/aggregateBlock.js";
|
|
24
|
-
export { CopyBlock } from "./blocks/copyBlock.js";
|
|
25
24
|
export { ShaderBinding, ShaderRuntime } from "./runtime/shaderRuntime.js";
|
|
26
25
|
export { type ShaderProgram, injectDisableUniform } from "./utils/shaderCodeUtils.js";
|
|
27
26
|
export { type IDisableableBlock } from "./blocks/disableableBlock.js";
|
package/src/smartFilter.ts
CHANGED
|
@@ -9,6 +9,7 @@ import { InternalSmartFilterRuntime } from "./runtime/smartFilterRuntime.js";
|
|
|
9
9
|
import { RenderTargetGenerator } from "./runtime/renderTargetGenerator.js";
|
|
10
10
|
import { AggregateBlock } from "./blocks/aggregateBlock.js";
|
|
11
11
|
import type { IEditorData } from "@babylonjs/shared-ui-components/nodeGraphSystem/interfaces/nodeLocationInfo";
|
|
12
|
+
import type { IDisposable } from "./IDisposable";
|
|
12
13
|
|
|
13
14
|
/**
|
|
14
15
|
* How long to wait for shader compilation and texture loading to complete before erroring out.
|
|
@@ -23,16 +24,23 @@ export type InitializationData = {
|
|
|
23
24
|
* The current smart filter runtime the block is being initialized for.
|
|
24
25
|
*/
|
|
25
26
|
readonly runtime: InternalSmartFilterRuntime;
|
|
27
|
+
|
|
26
28
|
/**
|
|
27
29
|
* The output block of the smart filter.
|
|
28
30
|
* This is used to determine if a block is linked to the output block so that we can prevent an
|
|
29
31
|
* extra render pass.
|
|
30
32
|
*/
|
|
31
33
|
readonly outputBlock: OutputBlock;
|
|
34
|
+
|
|
32
35
|
/**
|
|
33
36
|
* The list of promises to wait for during the initialization step.
|
|
34
37
|
*/
|
|
35
38
|
readonly initializationPromises: Promise<void>[];
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Resources that need to be disposed when the runtime is disposed.
|
|
42
|
+
*/
|
|
43
|
+
readonly disposableResources: IDisposable[];
|
|
36
44
|
};
|
|
37
45
|
|
|
38
46
|
/**
|
|
@@ -165,6 +173,7 @@ export class SmartFilter {
|
|
|
165
173
|
runtime,
|
|
166
174
|
outputBlock: this.outputBlock,
|
|
167
175
|
initializationPromises: [],
|
|
176
|
+
disposableResources: [],
|
|
168
177
|
};
|
|
169
178
|
|
|
170
179
|
this._workWithAggregateFreeGraph(() => {
|
|
@@ -188,6 +197,9 @@ export class SmartFilter {
|
|
|
188
197
|
}
|
|
189
198
|
}
|
|
190
199
|
|
|
200
|
+
// Register the resources to dispose when the runtime is disposed
|
|
201
|
+
initializationData.disposableResources.forEach((resource) => runtime.registerResource(resource));
|
|
202
|
+
|
|
191
203
|
return runtime;
|
|
192
204
|
}
|
|
193
205
|
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
import type { Effect } from "@babylonjs/core/Materials/effect";
|
|
2
|
-
import type { SmartFilter } from "../smartFilter";
|
|
3
|
-
import { ConnectionPointType } from "../connection/connectionPointType.js";
|
|
4
|
-
import { ShaderBlock } from "./shaderBlock.js";
|
|
5
|
-
import { ShaderBinding } from "../runtime/shaderRuntime.js";
|
|
6
|
-
import type { RuntimeData } from "../connection/connectionPoint";
|
|
7
|
-
/**
|
|
8
|
-
* The shader bindings for the Copy block.
|
|
9
|
-
*/
|
|
10
|
-
export declare class CopyShaderBinding extends ShaderBinding {
|
|
11
|
-
private readonly _inputTexture;
|
|
12
|
-
/**
|
|
13
|
-
* Creates a new shader binding instance for the copy block.
|
|
14
|
-
* @param parentBlock - The parent block
|
|
15
|
-
* @param inputTexture - defines the input texture to copy
|
|
16
|
-
*/
|
|
17
|
-
constructor(parentBlock: CopyBlock, inputTexture: RuntimeData<ConnectionPointType.Texture>);
|
|
18
|
-
/**
|
|
19
|
-
* Binds all the required data to the shader when rendering.
|
|
20
|
-
* @param effect - defines the effect to bind the data to
|
|
21
|
-
* @internal
|
|
22
|
-
*/
|
|
23
|
-
bind(effect: Effect): void;
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* A block responsible for copying a texture to the output.
|
|
27
|
-
*
|
|
28
|
-
* This might be helpful to duplicate a texture if necessary.
|
|
29
|
-
*
|
|
30
|
-
* It simply takes a texture as input and outputs it to another texture or to the main canvas.
|
|
31
|
-
*/
|
|
32
|
-
export declare class CopyBlock extends ShaderBlock {
|
|
33
|
-
/**
|
|
34
|
-
* The class name of the block.
|
|
35
|
-
*/
|
|
36
|
-
static ClassName: string;
|
|
37
|
-
/**
|
|
38
|
-
* The input connection point of the block.
|
|
39
|
-
*/
|
|
40
|
-
readonly input: import("../connection/connectionPoint").ConnectionPoint<ConnectionPointType.Texture>;
|
|
41
|
-
/**
|
|
42
|
-
* The shader program (vertex and fragment code) to use to render the block
|
|
43
|
-
*/
|
|
44
|
-
static ShaderCode: import("..").ShaderProgram;
|
|
45
|
-
/**
|
|
46
|
-
* Create a new copy block.
|
|
47
|
-
* @param smartFilter - The smart filter this block belongs to.
|
|
48
|
-
* @param name -The friendly name of the block.
|
|
49
|
-
*/
|
|
50
|
-
constructor(smartFilter: SmartFilter, name: string);
|
|
51
|
-
/**
|
|
52
|
-
* Get the class instance that binds all the required data to the shader (effect) when rendering.
|
|
53
|
-
* @returns The class instance that binds the data to the effect
|
|
54
|
-
*/
|
|
55
|
-
getShaderBinding(): ShaderBinding;
|
|
56
|
-
}
|
|
57
|
-
//# sourceMappingURL=copyBlock.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"copyBlock.d.ts","sourceRoot":"","sources":["../../src/blocks/copyBlock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAC;AAE/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAGjE;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,aAAa;IAChD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA2C;IAEzE;;;;OAIG;gBACS,WAAW,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,CAAC,mBAAmB,CAAC,OAAO,CAAC;IAK1F;;;;OAIG;IACa,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;CAG7C;AAED;;;;;;GAMG;AACH,qBAAa,SAAU,SAAQ,WAAW;IACtC;;OAEG;IACH,OAAuB,SAAS,SAAe;IAE/C;;OAEG;IACH,SAAgB,KAAK,uFAA6D;IAElF;;OAEG;IACH,OAAuB,UAAU,6BAAiB;IAElD;;;;OAIG;gBACS,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM;IAIlD;;;OAGG;IACI,gBAAgB,IAAI,aAAa;CAK3C"}
|
package/dist/blocks/copyBlock.js
DELETED
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
import { ConnectionPointType } from "../connection/connectionPointType.js";
|
|
2
|
-
import { ShaderBlock } from "./shaderBlock.js";
|
|
3
|
-
import { ShaderBinding } from "../runtime/shaderRuntime.js";
|
|
4
|
-
import { shaderProgram, uniforms } from "./copyBlock.shader.js";
|
|
5
|
-
/**
|
|
6
|
-
* The shader bindings for the Copy block.
|
|
7
|
-
*/
|
|
8
|
-
export class CopyShaderBinding extends ShaderBinding {
|
|
9
|
-
/**
|
|
10
|
-
* Creates a new shader binding instance for the copy block.
|
|
11
|
-
* @param parentBlock - The parent block
|
|
12
|
-
* @param inputTexture - defines the input texture to copy
|
|
13
|
-
*/
|
|
14
|
-
constructor(parentBlock, inputTexture) {
|
|
15
|
-
super(parentBlock);
|
|
16
|
-
this._inputTexture = inputTexture;
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* Binds all the required data to the shader when rendering.
|
|
20
|
-
* @param effect - defines the effect to bind the data to
|
|
21
|
-
* @internal
|
|
22
|
-
*/
|
|
23
|
-
bind(effect) {
|
|
24
|
-
effect.setTexture(this.getRemappedName(uniforms.input), this._inputTexture.value);
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* A block responsible for copying a texture to the output.
|
|
29
|
-
*
|
|
30
|
-
* This might be helpful to duplicate a texture if necessary.
|
|
31
|
-
*
|
|
32
|
-
* It simply takes a texture as input and outputs it to another texture or to the main canvas.
|
|
33
|
-
*/
|
|
34
|
-
export class CopyBlock extends ShaderBlock {
|
|
35
|
-
/**
|
|
36
|
-
* Create a new copy block.
|
|
37
|
-
* @param smartFilter - The smart filter this block belongs to.
|
|
38
|
-
* @param name -The friendly name of the block.
|
|
39
|
-
*/
|
|
40
|
-
constructor(smartFilter, name) {
|
|
41
|
-
super(smartFilter, name);
|
|
42
|
-
/**
|
|
43
|
-
* The input connection point of the block.
|
|
44
|
-
*/
|
|
45
|
-
this.input = this._registerInput("input", ConnectionPointType.Texture);
|
|
46
|
-
}
|
|
47
|
-
/**
|
|
48
|
-
* Get the class instance that binds all the required data to the shader (effect) when rendering.
|
|
49
|
-
* @returns The class instance that binds the data to the effect
|
|
50
|
-
*/
|
|
51
|
-
getShaderBinding() {
|
|
52
|
-
const input = this._confirmRuntimeDataSupplied(this.input);
|
|
53
|
-
return new CopyShaderBinding(this, input);
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
/**
|
|
57
|
-
* The class name of the block.
|
|
58
|
-
*/
|
|
59
|
-
CopyBlock.ClassName = "CopyBlock";
|
|
60
|
-
/**
|
|
61
|
-
* The shader program (vertex and fragment code) to use to render the block
|
|
62
|
-
*/
|
|
63
|
-
CopyBlock.ShaderCode = shaderProgram;
|
|
64
|
-
//# sourceMappingURL=copyBlock.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"copyBlock.js","sourceRoot":"","sources":["../../src/blocks/copyBlock.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE5D,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEhE;;GAEG;AACH,MAAM,OAAO,iBAAkB,SAAQ,aAAa;IAGhD;;;;OAIG;IACH,YAAY,WAAsB,EAAE,YAAsD;QACtF,KAAK,CAAC,WAAW,CAAC,CAAC;QACnB,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;IACtC,CAAC;IAED;;;;OAIG;IACa,IAAI,CAAC,MAAc;QAC/B,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IACtF,CAAC;CACJ;AAED;;;;;;GAMG;AACH,MAAM,OAAO,SAAU,SAAQ,WAAW;IAgBtC;;;;OAIG;IACH,YAAY,WAAwB,EAAE,IAAY;QAC9C,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QAhB7B;;WAEG;QACa,UAAK,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAclF,CAAC;IAED;;;OAGG;IACI,gBAAgB;QACnB,MAAM,KAAK,GAAG,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAE3D,OAAO,IAAI,iBAAiB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC9C,CAAC;;AAhCD;;GAEG;AACoB,mBAAS,GAAG,WAAW,AAAd,CAAe;AAO/C;;GAEG;AACoB,oBAAU,GAAG,aAAa,AAAhB,CAAiB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"copyBlock.shader.d.ts","sourceRoot":"","sources":["../../src/blocks/copyBlock.shader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAE9D;;GAEG;AACH,eAAO,MAAM,aAAa,EAAE,aAsB3B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,QAAQ;;CAEpB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"copyBlock.shader.js","sourceRoot":"","sources":["../../src/blocks/copyBlock.shader.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,CAAC,MAAM,aAAa,GAAkB;IACxC,MAAM,EAAE,SAAS;IACjB,QAAQ,EAAE;QACN,OAAO,EAAE;;qCAEoB;QAC7B,gBAAgB,EAAE,SAAS;QAC3B,gBAAgB,EAAE,QAAQ;QAC1B,SAAS,EAAE;YACP;gBACI,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE;;;;;;;qBAOD;aACR;SACJ;KACJ;CACJ,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG;IACpB,KAAK,EAAE,OAAO;CACjB,CAAC"}
|
package/src/blocks/copyBlock.ts
DELETED
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
import type { Effect } from "@babylonjs/core/Materials/effect";
|
|
2
|
-
|
|
3
|
-
import type { SmartFilter } from "../smartFilter";
|
|
4
|
-
import { ConnectionPointType } from "../connection/connectionPointType.js";
|
|
5
|
-
import { ShaderBlock } from "./shaderBlock.js";
|
|
6
|
-
import { ShaderBinding } from "../runtime/shaderRuntime.js";
|
|
7
|
-
import type { RuntimeData } from "../connection/connectionPoint";
|
|
8
|
-
import { shaderProgram, uniforms } from "./copyBlock.shader.js";
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* The shader bindings for the Copy block.
|
|
12
|
-
*/
|
|
13
|
-
export class CopyShaderBinding extends ShaderBinding {
|
|
14
|
-
private readonly _inputTexture: RuntimeData<ConnectionPointType.Texture>;
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* Creates a new shader binding instance for the copy block.
|
|
18
|
-
* @param parentBlock - The parent block
|
|
19
|
-
* @param inputTexture - defines the input texture to copy
|
|
20
|
-
*/
|
|
21
|
-
constructor(parentBlock: CopyBlock, inputTexture: RuntimeData<ConnectionPointType.Texture>) {
|
|
22
|
-
super(parentBlock);
|
|
23
|
-
this._inputTexture = inputTexture;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
* Binds all the required data to the shader when rendering.
|
|
28
|
-
* @param effect - defines the effect to bind the data to
|
|
29
|
-
* @internal
|
|
30
|
-
*/
|
|
31
|
-
public override bind(effect: Effect): void {
|
|
32
|
-
effect.setTexture(this.getRemappedName(uniforms.input), this._inputTexture.value);
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
|
|
36
|
-
/**
|
|
37
|
-
* A block responsible for copying a texture to the output.
|
|
38
|
-
*
|
|
39
|
-
* This might be helpful to duplicate a texture if necessary.
|
|
40
|
-
*
|
|
41
|
-
* It simply takes a texture as input and outputs it to another texture or to the main canvas.
|
|
42
|
-
*/
|
|
43
|
-
export class CopyBlock extends ShaderBlock {
|
|
44
|
-
/**
|
|
45
|
-
* The class name of the block.
|
|
46
|
-
*/
|
|
47
|
-
public static override ClassName = "CopyBlock";
|
|
48
|
-
|
|
49
|
-
/**
|
|
50
|
-
* The input connection point of the block.
|
|
51
|
-
*/
|
|
52
|
-
public readonly input = this._registerInput("input", ConnectionPointType.Texture);
|
|
53
|
-
|
|
54
|
-
/**
|
|
55
|
-
* The shader program (vertex and fragment code) to use to render the block
|
|
56
|
-
*/
|
|
57
|
-
public static override ShaderCode = shaderProgram;
|
|
58
|
-
|
|
59
|
-
/**
|
|
60
|
-
* Create a new copy block.
|
|
61
|
-
* @param smartFilter - The smart filter this block belongs to.
|
|
62
|
-
* @param name -The friendly name of the block.
|
|
63
|
-
*/
|
|
64
|
-
constructor(smartFilter: SmartFilter, name: string) {
|
|
65
|
-
super(smartFilter, name);
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
/**
|
|
69
|
-
* Get the class instance that binds all the required data to the shader (effect) when rendering.
|
|
70
|
-
* @returns The class instance that binds the data to the effect
|
|
71
|
-
*/
|
|
72
|
-
public getShaderBinding(): ShaderBinding {
|
|
73
|
-
const input = this._confirmRuntimeDataSupplied(this.input);
|
|
74
|
-
|
|
75
|
-
return new CopyShaderBinding(this, input);
|
|
76
|
-
}
|
|
77
|
-
}
|
|
File without changes
|
|
File without changes
|