@babylonjs/smart-filters 0.7.2-alpha → 0.7.4-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.
Files changed (42) hide show
  1. package/dist/blocks/aggregateBlock.d.ts.map +1 -1
  2. package/dist/blocks/aggregateBlock.js +10 -0
  3. package/dist/blocks/aggregateBlock.js.map +1 -1
  4. package/dist/blocks/outputBlock.js +1 -1
  5. package/dist/blocks/outputBlock.js.map +1 -1
  6. package/dist/blocks/shaderBlock.d.ts.map +1 -1
  7. package/dist/blocks/shaderBlock.js +7 -4
  8. package/dist/blocks/shaderBlock.js.map +1 -1
  9. package/dist/connection/connectionPoint.d.ts +3 -3
  10. package/dist/connection/connectionPoint.js +3 -3
  11. package/dist/runtime/renderTargetGenerator.d.ts.map +1 -1
  12. package/dist/runtime/renderTargetGenerator.js +2 -14
  13. package/dist/runtime/renderTargetGenerator.js.map +1 -1
  14. package/dist/runtime/shaderRuntime.d.ts +10 -3
  15. package/dist/runtime/shaderRuntime.d.ts.map +1 -1
  16. package/dist/runtime/shaderRuntime.js +15 -2
  17. package/dist/runtime/shaderRuntime.js.map +1 -1
  18. package/dist/runtime/smartFilterRuntime.d.ts +1 -1
  19. package/dist/runtime/smartFilterRuntime.js +1 -1
  20. package/dist/smartFilter.d.ts +5 -0
  21. package/dist/smartFilter.d.ts.map +1 -1
  22. package/dist/smartFilter.js +20 -0
  23. package/dist/smartFilter.js.map +1 -1
  24. package/dist/utils/renderTargetUtils.d.ts +3 -13
  25. package/dist/utils/renderTargetUtils.d.ts.map +1 -1
  26. package/dist/utils/renderTargetUtils.js +4 -18
  27. package/dist/utils/renderTargetUtils.js.map +1 -1
  28. package/dist/utils/textureUtils.d.ts +13 -0
  29. package/dist/utils/textureUtils.d.ts.map +1 -0
  30. package/dist/utils/textureUtils.js +25 -0
  31. package/dist/utils/textureUtils.js.map +1 -0
  32. package/package.json +1 -1
  33. package/src/blocks/aggregateBlock.ts +9 -0
  34. package/src/blocks/outputBlock.ts +1 -1
  35. package/src/blocks/shaderBlock.ts +8 -12
  36. package/src/connection/connectionPoint.ts +3 -3
  37. package/src/runtime/renderTargetGenerator.ts +2 -13
  38. package/src/runtime/shaderRuntime.ts +19 -2
  39. package/src/runtime/smartFilterRuntime.ts +1 -1
  40. package/src/smartFilter.ts +22 -0
  41. package/src/utils/renderTargetUtils.ts +5 -25
  42. package/src/utils/textureUtils.ts +32 -0
@@ -1 +1 @@
1
- {"version":3,"file":"aggregateBlock.d.ts","sourceRoot":"","sources":["../../src/blocks/aggregateBlock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAClF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAE7E,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAEnD;;;;;;;GAOG;AACH,8BAAsB,cAAe,SAAQ,SAAS;IAClD;;OAEG;IACH,OAAuB,SAAS,SAAoB;IAEpD;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA4C;IAE/E;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA8C;IAEhF;;OAEG;IACa,iBAAiB,IAAI,KAAK;IAI1C;;;OAGG;IACI,qBAAqB,CAAC,qBAAqB,EAAE,cAAc,EAAE,GAAG,IAAI;IAoC3E;;;OAGG;IACI,uBAAuB,IAAI,IAAI;IAsBtC;;;;;;OAMG;IACH,SAAS,CAAC,uBAAuB,CAAC,CAAC,SAAS,mBAAmB,EAC3D,IAAI,EAAE,MAAM,EACZ,wBAAwB,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,EAC9C,YAAY,GAAE,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAQ,GAC9C,eAAe,CAAC,CAAC,CAAC;IAYrB;;;;;OAKG;IACH,SAAS,CAAC,wBAAwB,CAAC,CAAC,SAAS,mBAAmB,EAC5D,IAAI,EAAE,MAAM,EACZ,uBAAuB,EAAE,eAAe,CAAC,CAAC,CAAC,GAC5C,eAAe,CAAC,CAAC,CAAC;CAMxB"}
1
+ {"version":3,"file":"aggregateBlock.d.ts","sourceRoot":"","sources":["../../src/blocks/aggregateBlock.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAClF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAE7E,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAEnD;;;;;;;GAOG;AACH,8BAAsB,cAAe,SAAQ,SAAS;IAClD;;OAEG;IACH,OAAuB,SAAS,SAAoB;IAEpD;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA4C;IAE/E;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA8C;IAEhF;;OAEG;IACa,iBAAiB,IAAI,KAAK;IAI1C;;;OAGG;IACI,qBAAqB,CAAC,qBAAqB,EAAE,cAAc,EAAE,GAAG,IAAI;IA6C3E;;;OAGG;IACI,uBAAuB,IAAI,IAAI;IAsBtC;;;;;;OAMG;IACH,SAAS,CAAC,uBAAuB,CAAC,CAAC,SAAS,mBAAmB,EAC3D,IAAI,EAAE,MAAM,EACZ,wBAAwB,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,EAC9C,YAAY,GAAE,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAQ,GAC9C,eAAe,CAAC,CAAC,CAAC;IAYrB;;;;;OAKG;IACH,SAAS,CAAC,wBAAwB,CAAC,CAAC,SAAS,mBAAmB,EAC5D,IAAI,EAAE,MAAM,EACZ,uBAAuB,EAAE,eAAe,CAAC,CAAC,CAAC,GAC5C,eAAe,CAAC,CAAC,CAAC;CAMxB"}
@@ -47,6 +47,16 @@ export class AggregateBlock extends BaseBlock {
47
47
  connectedToExternalConnectionPoint.connectTo(internalConnectionPoint);
48
48
  }
49
49
  }
50
+ else {
51
+ // If the external connection point is not connected to anything but has a default value,
52
+ // pass that default value along to the internal connection points it is associated with
53
+ const defaultValue = externalConnectionPoint.runtimeData;
54
+ if (defaultValue !== null) {
55
+ for (const internalConnectionPoint of internalConnectionPoints) {
56
+ internalConnectionPoint.runtimeData = defaultValue;
57
+ }
58
+ }
59
+ }
50
60
  }
51
61
  // Tell any internal aggregate blocks to merge
52
62
  // Must be done after the inputs and outputs were merged at our level, or the internal aggregate block may not be wired up to anything
@@ -1 +1 @@
1
- {"version":3,"file":"aggregateBlock.js","sourceRoot":"","sources":["../../src/blocks/aggregateBlock.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"aggregateBlock.js","sourceRoot":"","sources":["../../src/blocks/aggregateBlock.ts"],"names":[],"mappings":"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"}
@@ -62,7 +62,7 @@ export class OutputBlock extends BaseBlock {
62
62
  const shaderBlockRuntime = new ShaderRuntime(runtime.effectRenderer, shaderProgram, new OutputShaderBinding(this.input.runtimeData));
63
63
  initializationData.initializationPromises.push(shaderBlockRuntime.onReadyAsync);
64
64
  runtime.registerResource(shaderBlockRuntime);
65
- registerFinalRenderCommand(this.renderTargetWrapper, runtime, this, shaderBlockRuntime);
65
+ registerFinalRenderCommand(this, runtime, this, shaderBlockRuntime);
66
66
  super.generateCommandsAndGatherInitPromises(initializationData, finalOutput);
67
67
  }
68
68
  }
@@ -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,aAAa,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAG3E,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,GAAkC,IAAI,CAAC;IAQjE,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;QACH,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACjD,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;;AA1ED;;GAEG;AACoB,qBAAS,GAAG,aAAa,AAAhB,CAAiB;AA0ErD;;GAEG;AACH,MAAM,mBAAoB,SAAQ,aAAa;IAG3C;;;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"}
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,aAAa,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAG3E,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,GAAkC,IAAI,CAAC;IAQjE,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;QACH,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACjD,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,EAAE,OAAO,EAAE,IAAI,EAAE,kBAAkB,CAAC,CAAC;YAEpE,KAAK,CAAC,qCAAqC,CAAC,kBAAkB,EAAE,WAAW,CAAC,CAAC;QACjF,CAAC;IACL,CAAC;;AA1ED;;GAEG;AACoB,qBAAS,GAAG,aAAa,AAAhB,CAAiB;AA0ErD;;GAEG;AACH,MAAM,mBAAoB,SAAQ,aAAa;IAG3C;;;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"}
@@ -1 +1 @@
1
- {"version":3,"file":"shaderBlock.d.ts","sourceRoot":"","sources":["../../src/blocks/shaderBlock.ts"],"names":[],"mappings":"AACA,OAAO,2DAA2D,CAAC;AAEnE,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACtE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAErE,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAI3E,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAA8B,KAAK,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAK5F;;;;;;GAMG;AACH,8BAAsB,WAAY,SAAQ,SAAS;IAC/C;;OAEG;IACH,OAAuB,SAAS,SAAiB;IAEjD;;;;OAIG;aACa,gBAAgB,IAAI,aAAa;IAEjD;;OAEG;IACH,OAAc,UAAU,EAAE,aAAa,CAAC;IAExC;;OAEG;IACH,SAAgB,MAAM,+CAA+D;IAErF;;OAEG;IAyBI,oBAAoB,EAAE,oBAAoB,CAI/C;IAEF;;;OAGG;IACa,mBAAmB,CAAC,uBAAuB,CAAC,EAAE,CAAC,eAAe,EAAE,eAAe,CAAC,EAAE,GAAG,IAAI;IASzG,SAAS,CAAC,iCAAiC,IAAI,eAAe;IAc9D;;;;;OAKG;gBACS,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,mBAAmB,UAAQ;IAI/E;;;OAGG;IACI,gBAAgB;IAIvB;;;;OAIG;IACa,qCAAqC,CACjD,kBAAkB,EAAE,kBAAkB,EACtC,WAAW,EAAE,OAAO,GACrB,IAAI;CAgCV"}
1
+ {"version":3,"file":"shaderBlock.d.ts","sourceRoot":"","sources":["../../src/blocks/shaderBlock.ts"],"names":[],"mappings":"AACA,OAAO,2DAA2D,CAAC;AAEnE,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACtE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAErE,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAI3E,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAA8B,KAAK,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAM5F;;;;;;GAMG;AACH,8BAAsB,WAAY,SAAQ,SAAS;IAC/C;;OAEG;IACH,OAAuB,SAAS,SAAiB;IAEjD;;;;OAIG;aACa,gBAAgB,IAAI,aAAa;IAEjD;;OAEG;IACH,OAAc,UAAU,EAAE,aAAa,CAAC;IAExC;;OAEG;IACH,SAAgB,MAAM,+CAA+D;IAErF;;OAEG;IAyBI,oBAAoB,EAAE,oBAAoB,CAI/C;IAEF;;;OAGG;IACa,mBAAmB,CAAC,uBAAuB,CAAC,EAAE,CAAC,eAAe,EAAE,eAAe,CAAC,EAAE,GAAG,IAAI;IASzG,SAAS,CAAC,iCAAiC,IAAI,eAAe;IAc9D;;;;;OAKG;gBACS,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,mBAAmB,UAAQ;IAI/E;;;OAGG;IACI,gBAAgB;IAIvB;;;;OAIG;IACa,qCAAqC,CACjD,kBAAkB,EAAE,kBAAkB,EACtC,WAAW,EAAE,OAAO,GACrB,IAAI;CA2BV"}
@@ -9,7 +9,7 @@ import { ShaderRuntime } from "../runtime/shaderRuntime.js";
9
9
  import { ConnectionPointType } from "../connection/connectionPointType.js";
10
10
  import { createCommand } from "../command/command.js";
11
11
  import { undecorateSymbol } from "../utils/shaderCodeUtils.js";
12
- import { getRenderTargetWrapper, registerFinalRenderCommand } from "../utils/renderTargetUtils.js";
12
+ import { registerFinalRenderCommand } from "../utils/renderTargetUtils.js";
13
13
  import { BaseBlock } from "./baseBlock.js";
14
14
  import { TextureFormat, TextureType } from "./textureOptions.js";
15
15
  import { editableInPropertyPage, PropertyTypeForEdition } from "../editorUtils/editableInPropertyPage.js";
@@ -84,12 +84,15 @@ export class ShaderBlock extends BaseBlock {
84
84
  initializationData.initializationPromises.push(shaderBlockRuntime.onReadyAsync);
85
85
  runtime.registerResource(shaderBlockRuntime);
86
86
  if (finalOutput) {
87
- registerFinalRenderCommand(initializationData.outputBlock.renderTargetWrapper, runtime, this, shaderBlockRuntime);
87
+ registerFinalRenderCommand(initializationData.outputBlock, runtime, this, shaderBlockRuntime);
88
88
  }
89
89
  else {
90
- const renderTarget = getRenderTargetWrapper((_a = this.output.runtimeData) === null || _a === void 0 ? void 0 : _a.value, this.blockType);
90
+ const renderTargetTexture = (_a = this.output.runtimeData) === null || _a === void 0 ? void 0 : _a.value;
91
+ if (!renderTargetTexture) {
92
+ throw new Error(`${this.blockType} did not have a render target texture.`);
93
+ }
91
94
  runtime.registerCommand(createCommand(`${this.blockType}.render`, this, () => {
92
- shaderBlockRuntime.renderToTexture(renderTarget);
95
+ shaderBlockRuntime.renderToTargetTexture(renderTargetTexture);
93
96
  }));
94
97
  }
95
98
  super.generateCommandsAndGatherInitPromises(initializationData, finalOutput);
@@ -1 +1 @@
1
- {"version":3,"file":"shaderBlock.js","sourceRoot":"","sources":["../../src/blocks/shaderBlock.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shaderBlock.js","sourceRoot":"","sources":["../../src/blocks/shaderBlock.ts"],"names":[],"mappings":"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"}
@@ -62,15 +62,15 @@ export declare class ConnectionPoint<U extends ConnectionPointType = ConnectionP
62
62
  */
63
63
  constructor(name: string, ownerBlock: BaseBlock, type: U, direction: ConnectionPointDirection, defaultRuntimeData?: Nullable<RuntimeData<U>>);
64
64
  /**
65
- * @returns the connection point this connection point is connected to.
65
+ * @returns The connection point this connection point is connected to.
66
66
  * (the one on the other side of the connection)
67
67
  * Only input connection points have a connected point which they received their value from.
68
68
  * (Relation is always 1:N for input:output)
69
69
  */
70
70
  get connectedTo(): Nullable<ConnectionPoint<U>>;
71
71
  /**
72
- * @returns the connection point this connection point is to.
73
- * (the one on the other side of the connection)
72
+ * @returns The connection points this output connection point is connected to.
73
+ * (the ones on the other side of the connection)
74
74
  * Only output connection points have a list of endpoints which they provide their value to.
75
75
  * (Relation is always 1:N for input:output)
76
76
  */
@@ -44,7 +44,7 @@ export class ConnectionPoint {
44
44
  this.runtimeData = defaultRuntimeData;
45
45
  }
46
46
  /**
47
- * @returns the connection point this connection point is connected to.
47
+ * @returns The connection point this connection point is connected to.
48
48
  * (the one on the other side of the connection)
49
49
  * Only input connection points have a connected point which they received their value from.
50
50
  * (Relation is always 1:N for input:output)
@@ -53,8 +53,8 @@ export class ConnectionPoint {
53
53
  return this._connectedTo;
54
54
  }
55
55
  /**
56
- * @returns the connection point this connection point is to.
57
- * (the one on the other side of the connection)
56
+ * @returns The connection points this output connection point is connected to.
57
+ * (the ones on the other side of the connection)
58
58
  * Only output connection points have a list of endpoints which they provide their value to.
59
59
  * (Relation is always 1:N for input:output)
60
60
  */
@@ -1 +1 @@
1
- {"version":3,"file":"renderTargetGenerator.d.ts","sourceRoot":"","sources":["../../src/runtime/renderTargetGenerator.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAsBtE;;GAEG;AACH,qBAAa,qBAAqB;IAC9B,OAAO,CAAC,SAAS,CAAU;IAC3B,OAAO,CAAC,iBAAiB,CAAsC;IAC/D,OAAO,CAAC,wBAAwB,CAAkC;IAElE,OAAO,CAAC,kBAAkB,CAAC;IAE3B;;;OAGG;gBACS,QAAQ,UAAO;IAM3B;;OAEG;IACH,IAAW,iBAAiB,WAE3B;IAED;;;;OAIG;IACI,iBAAiB,CAAC,WAAW,EAAE,WAAW,EAAE,kBAAkB,EAAE,kBAAkB;IA+DzF,OAAO,CAAC,qBAAqB;IAe7B,OAAO,CAAC,WAAW;IAiCnB,OAAO,CAAC,eAAe;IAsBvB;;;;;;OAMG;IACH,OAAO,CAAC,cAAc;IA6CtB;;;;OAIG;IACH,OAAO,CAAC,sBAAsB;CAQjC"}
1
+ {"version":3,"file":"renderTargetGenerator.d.ts","sourceRoot":"","sources":["../../src/runtime/renderTargetGenerator.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAuBtE;;GAEG;AACH,qBAAa,qBAAqB;IAC9B,OAAO,CAAC,SAAS,CAAU;IAC3B,OAAO,CAAC,iBAAiB,CAAsC;IAC/D,OAAO,CAAC,wBAAwB,CAAkC;IAElE,OAAO,CAAC,kBAAkB,CAAC;IAE3B;;;OAGG;gBACS,QAAQ,UAAO;IAM3B;;OAEG;IACH,IAAW,iBAAiB,WAE3B;IAED;;;;OAIG;IACI,iBAAiB,CAAC,WAAW,EAAE,WAAW,EAAE,kBAAkB,EAAE,kBAAkB;IA+DzF,OAAO,CAAC,qBAAqB;IAe7B,OAAO,CAAC,WAAW;IAiCnB,OAAO,CAAC,eAAe;IAsBvB;;;;;;OAMG;IACH,OAAO,CAAC,cAAc;IAiCtB;;;;OAIG;IACH,OAAO,CAAC,sBAAsB;CAQjC"}
@@ -2,6 +2,7 @@ import { ThinRenderTargetTexture } from "@babylonjs/core/Materials/Textures/thin
2
2
  import { ShaderBlock } from "../blocks/shaderBlock.js";
3
3
  import { createStrongRef } from "./strongRef.js";
4
4
  import { ConnectionPointType } from "../connection/connectionPointType.js";
5
+ import { getBlockOutputTextureSize } from "../utils/textureUtils.js";
5
6
  /**
6
7
  * The render target generator is responsible for creating and assigning render targets to ShaderBlocks.
7
8
  */
@@ -143,20 +144,7 @@ export class RenderTargetGenerator {
143
144
  type: textureOptions.type,
144
145
  };
145
146
  // Get the smartFilter output size - either from the output block's renderTargetTexture or the engine's render size
146
- let outputWidth;
147
- let outputHeight;
148
- if (smartFilter.outputBlock.renderTargetWrapper) {
149
- outputWidth = smartFilter.outputBlock.renderTargetWrapper.width;
150
- outputHeight = smartFilter.outputBlock.renderTargetWrapper.height;
151
- }
152
- else {
153
- outputWidth = engine.getRenderWidth(true);
154
- outputHeight = engine.getRenderHeight(true);
155
- }
156
- const size = {
157
- width: Math.floor(outputWidth * textureOptions.ratio),
158
- height: Math.floor(outputHeight * textureOptions.ratio),
159
- };
147
+ const size = getBlockOutputTextureSize(smartFilter, engine, textureOptions);
160
148
  // Creates frame buffers for effects
161
149
  const finalRenderTarget = new ThinRenderTargetTexture(engine, size, setup);
162
150
  runtime.registerResource(finalRenderTarget);
@@ -1 +1 @@
1
- {"version":3,"file":"renderTargetGenerator.js","sourceRoot":"","sources":["../../src/runtime/renderTargetGenerator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"renderTargetGenerator.js","sourceRoot":"","sources":["../../src/runtime/renderTargetGenerator.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,10 @@
1
1
  import type { EffectRenderer } from "@babylonjs/core/Materials/effectRenderer";
2
- import type { RenderTargetWrapper } from "@babylonjs/core/Engines/renderTargetWrapper";
3
2
  import type { Effect } from "@babylonjs/core/Materials/effect";
3
+ import type { ThinRenderTargetTexture } from "@babylonjs/core/Materials/Textures/thinRenderTargetTexture";
4
4
  import type { IDisposable } from "../IDisposable";
5
5
  import type { ShaderProgram } from "../utils/shaderCodeUtils";
6
6
  import type { IDisableableBlock } from "../blocks/disableableShaderBlock";
7
+ import type { OutputBlock } from "../blocks/outputBlock";
7
8
  /**
8
9
  * The shader bindings for a ShaderBlock that can't be disabled.
9
10
  */
@@ -73,11 +74,17 @@ export declare class ShaderRuntime implements IDisposable {
73
74
  * @param shaderBinding - defines the shader bindings associated with this runtime
74
75
  */
75
76
  constructor(effectRenderer: EffectRenderer, shaderProgram: ShaderProgram, shaderBinding: ShaderBinding);
77
+ /**
78
+ * Renders the full screen effect into a render target.
79
+ * @param outputBlock - The output block to render to - assumes it has a .renderTargetWrapper
80
+ */
81
+ renderToTargetWrapper(outputBlock: OutputBlock): void;
76
82
  /**
77
83
  * Renders the full screen effect into a texture.
78
- * @param renderTargetWrapper - The render target wrapper to render into
84
+ * @param renderTargetTexture - The render target texture to render into
79
85
  */
80
- renderToTexture(renderTargetWrapper: RenderTargetWrapper): void;
86
+ renderToTargetTexture(renderTargetTexture: ThinRenderTargetTexture): void;
87
+ private _renderToTargetWrapper;
81
88
  /**
82
89
  * Renders the full screen effect into the main canvas.
83
90
  */
@@ -1 +1 @@
1
- {"version":3,"file":"shaderRuntime.d.ts","sourceRoot":"","sources":["../../src/runtime/shaderRuntime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAC/E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAC;AAEvF,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAC;AAG/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAE9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAG1E;;GAEG;AACH,8BAAsB,aAAa;IAC/B;;;;;;OAMG;aACa,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAE3E,OAAO,CAAC,wBAAwB,CAAiC;IAEjE;;;;OAIG;IACI,eAAe,CAAC,YAAY,EAAE,MAAM;IAK3C;;;;OAIG;IACI,0BAA0B,CAAC,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM;CAG/E;AAED;;GAEG;AACH,8BAAsB,wBAAyB,SAAQ,aAAa;IAChE,OAAO,CAAC,SAAS,CAAqB;IAEtC;;;OAGG;gBACS,WAAW,EAAE,iBAAiB;IAK1C;;;;;OAKG;IACI,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI;CAGvE;AAED;;;;;;;;GAQG;AACH,qBAAa,aAAc,YAAW,WAAW;IAC7C;;OAEG;IACH,SAAgB,YAAY,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiB;IACzC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAiB;IACjD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAgB;IAC/C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAgB;IAE/C;;;;;OAKG;gBACS,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa;IAqBtG;;;OAGG;IACI,eAAe,CAAC,mBAAmB,EAAE,mBAAmB,GAAG,IAAI;IAMtE;;OAEG;IACI,cAAc,IAAI,IAAI;IAK7B;;;;OAIG;IACH,OAAO,CAAC,KAAK;IAMb;;OAEG;IACI,OAAO,IAAI,IAAI;CAGzB"}
1
+ {"version":3,"file":"shaderRuntime.d.ts","sourceRoot":"","sources":["../../src/runtime/shaderRuntime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAG/E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAC;AAE/D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,4DAA4D,CAAC;AAE1G,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAE9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAE1E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEzD;;GAEG;AACH,8BAAsB,aAAa;IAC/B;;;;;;OAMG;aACa,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAE3E,OAAO,CAAC,wBAAwB,CAAiC;IAEjE;;;;OAIG;IACI,eAAe,CAAC,YAAY,EAAE,MAAM;IAK3C;;;;OAIG;IACI,0BAA0B,CAAC,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM;CAG/E;AAED;;GAEG;AACH,8BAAsB,wBAAyB,SAAQ,aAAa;IAChE,OAAO,CAAC,SAAS,CAAqB;IAEtC;;;OAGG;gBACS,WAAW,EAAE,iBAAiB;IAK1C;;;;;OAKG;IACI,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI;CAGvE;AAED;;;;;;;;GAQG;AACH,qBAAa,aAAc,YAAW,WAAW;IAC7C;;OAEG;IACH,SAAgB,YAAY,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiB;IACzC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAiB;IACjD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAgB;IAC/C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAgB;IAE/C;;;;;OAKG;gBACS,cAAc,EAAE,cAAc,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa,EAAE,aAAa;IAqBtG;;;OAGG;IACI,qBAAqB,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI;IAI5D;;;OAGG;IACI,qBAAqB,CAAC,mBAAmB,EAAE,uBAAuB,GAAG,IAAI;IAOhF,OAAO,CAAC,sBAAsB;IAM9B;;OAEG;IACI,cAAc,IAAI,IAAI;IAK7B;;;;OAIG;IACH,OAAO,CAAC,KAAK;IAMb;;OAEG;IACI,OAAO,IAAI,IAAI;CAGzB"}
@@ -84,11 +84,24 @@ export class ShaderRuntime {
84
84
  });
85
85
  });
86
86
  }
87
+ /**
88
+ * Renders the full screen effect into a render target.
89
+ * @param outputBlock - The output block to render to - assumes it has a .renderTargetWrapper
90
+ */
91
+ renderToTargetWrapper(outputBlock) {
92
+ this._renderToTargetWrapper(outputBlock.renderTargetWrapper);
93
+ }
87
94
  /**
88
95
  * Renders the full screen effect into a texture.
89
- * @param renderTargetWrapper - The render target wrapper to render into
96
+ * @param renderTargetTexture - The render target texture to render into
90
97
  */
91
- renderToTexture(renderTargetWrapper) {
98
+ renderToTargetTexture(renderTargetTexture) {
99
+ const renderTargetWrapper = renderTargetTexture.renderTarget;
100
+ if (renderTargetWrapper) {
101
+ this._renderToTargetWrapper(renderTargetWrapper);
102
+ }
103
+ }
104
+ _renderToTargetWrapper(renderTargetWrapper) {
92
105
  this._engine.bindFramebuffer(renderTargetWrapper);
93
106
  this._draw(renderTargetWrapper.width, renderTargetWrapper.height);
94
107
  this._engine.unBindFramebuffer(renderTargetWrapper);
@@ -1 +1 @@
1
- {"version":3,"file":"shaderRuntime.js","sourceRoot":"","sources":["../../src/runtime/shaderRuntime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shaderRuntime.js","sourceRoot":"","sources":["../../src/runtime/shaderRuntime.ts"],"names":[],"mappings":"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"}
@@ -47,7 +47,7 @@ export declare class InternalSmartFilterRuntime implements SmartFilterRuntime {
47
47
  */
48
48
  constructor(engine: ThinEngine);
49
49
  /**
50
- * Reference a resource to be disposed when the runtime is disposed.
50
+ * Register a resource to be disposed when the runtime is disposed.
51
51
  * @param resource - defines the resource to dispose once the runtime is disposed
52
52
  */
53
53
  registerResource(resource: IDisposable): void;
@@ -19,7 +19,7 @@ export class InternalSmartFilterRuntime {
19
19
  this.registerResource(this.effectRenderer);
20
20
  }
21
21
  /**
22
- * Reference a resource to be disposed when the runtime is disposed.
22
+ * Register a resource to be disposed when the runtime is disposed.
23
23
  * @param resource - defines the resource to dispose once the runtime is disposed
24
24
  */
25
25
  registerResource(resource) {
@@ -98,6 +98,11 @@ export declare class SmartFilter {
98
98
  * @returns the runtime that can be used to render the smart filter
99
99
  */
100
100
  createRuntimeAsync(engine: ThinEngine, renderTargetGenerator?: RenderTargetGenerator): Promise<SmartFilterRuntime>;
101
+ /**
102
+ * Resizes any intermediate textures according to the new size of the render target
103
+ * @param engine - The engine used to render the smart filter
104
+ */
105
+ resize(engine: ThinEngine): void;
101
106
  /**
102
107
  * @internal
103
108
  * Merges all aggregate blocks into the smart filter graph, executes the passed-in work, then restores the aggregate blocks.
@@ -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;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"}
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;AAUjD;;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;;;OAGG;IACI,MAAM,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI;IAevC;;;;OAIG;IACI,2BAA2B,CAAC,IAAI,EAAE,MAAM,IAAI,GAAG,IAAI;CAoB7D"}
@@ -2,6 +2,8 @@ import { OutputBlock } from "./blocks/outputBlock.js";
2
2
  import { InternalSmartFilterRuntime } from "./runtime/smartFilterRuntime.js";
3
3
  import { RenderTargetGenerator } from "./runtime/renderTargetGenerator.js";
4
4
  import { AggregateBlock } from "./blocks/aggregateBlock.js";
5
+ import { ShaderBlock } from "./blocks/shaderBlock.js";
6
+ import { getBlockOutputTextureSize } from "./utils/textureUtils.js";
5
7
  /**
6
8
  * How long to wait for shader compilation and texture loading to complete before erroring out.
7
9
  */
@@ -120,6 +122,24 @@ export class SmartFilter {
120
122
  initializationData.disposableResources.forEach((resource) => runtime.registerResource(resource));
121
123
  return runtime;
122
124
  }
125
+ /**
126
+ * Resizes any intermediate textures according to the new size of the render target
127
+ * @param engine - The engine used to render the smart filter
128
+ */
129
+ resize(engine) {
130
+ this._workWithAggregateFreeGraph(() => {
131
+ this.outputBlock.visit({}, (block) => {
132
+ var _a;
133
+ if (!(block instanceof ShaderBlock)) {
134
+ return;
135
+ }
136
+ if ((_a = block.output.runtimeData) === null || _a === void 0 ? void 0 : _a.value) {
137
+ const size = getBlockOutputTextureSize(this, engine, block.outputTextureOptions);
138
+ block.output.runtimeData.value.resize(size);
139
+ }
140
+ });
141
+ });
142
+ }
123
143
  /**
124
144
  * @internal
125
145
  * Merges all aggregate blocks into the smart filter graph, executes the passed-in work, then restores the aggregate blocks.
@@ -1 +1 @@
1
- {"version":3,"file":"smartFilter.js","sourceRoot":"","sources":["../src/smartFilter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"smartFilter.js","sourceRoot":"","sources":["../src/smartFilter.ts"],"names":[],"mappings":"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"}
@@ -1,24 +1,14 @@
1
- import type { RenderTargetWrapper } from "@babylonjs/core/Engines/renderTargetWrapper";
2
- import type { Nullable } from "@babylonjs/core/types";
3
1
  import type { BaseBlock } from "../blocks/baseBlock";
4
2
  import type { ShaderRuntime } from "../runtime/shaderRuntime";
5
3
  import type { InternalSmartFilterRuntime } from "../runtime/smartFilterRuntime";
6
- import type { ThinRenderTargetTexture } from "@babylonjs/core/Materials/Textures/thinRenderTargetTexture.js";
7
- /**
8
- * Tries to get a renderTargetWrapper from a ThinRenderTargetTexture, and throws an error if it fails.
9
- * @param renderTargetTexture - The ThinRenderTargetTexture to get the renderTarget from.
10
- * @param callerName - The name of the component calling this one, used for a more descriptive error message.
11
- * @returns - The renderTarget or it throws an Error if it fails.
12
- */
13
- export declare function getRenderTargetWrapper(renderTargetTexture: Nullable<ThinRenderTargetTexture>, callerName: string): RenderTargetWrapper;
4
+ import type { OutputBlock } from "../blocks/outputBlock.js";
14
5
  /**
15
6
  * Registers the final command of the command queue - the one that draws to either the canvas or
16
7
  * renderTargetTexture.
17
- * @param renderTargetWrapper - If non-null, the RenderTargetWrapper to render to, otherwise the command will
18
- * render to the canvas.
8
+ * @param outputBlock - The output block.
19
9
  * @param runtime - The smart filter runtime to use.
20
10
  * @param commandOwner - The owner of the command.
21
11
  * @param shaderBlockRuntime - The shader block runtime to use.
22
12
  */
23
- export declare function registerFinalRenderCommand(renderTargetWrapper: Nullable<RenderTargetWrapper>, runtime: InternalSmartFilterRuntime, commandOwner: BaseBlock, shaderBlockRuntime: ShaderRuntime): void;
13
+ export declare function registerFinalRenderCommand(outputBlock: OutputBlock, runtime: InternalSmartFilterRuntime, commandOwner: BaseBlock, shaderBlockRuntime: ShaderRuntime): void;
24
14
  //# sourceMappingURL=renderTargetUtils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"renderTargetUtils.d.ts","sourceRoot":"","sources":["../../src/utils/renderTargetUtils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAC;AACvF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAChF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,+DAA+D,CAAC;AAE7G;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAClC,mBAAmB,EAAE,QAAQ,CAAC,uBAAuB,CAAC,EACtD,UAAU,EAAE,MAAM,GACnB,mBAAmB,CAMrB;AAED;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,CACtC,mBAAmB,EAAE,QAAQ,CAAC,mBAAmB,CAAC,EAClD,OAAO,EAAE,0BAA0B,EACnC,YAAY,EAAE,SAAS,EACvB,kBAAkB,EAAE,aAAa,GAClC,IAAI,CAeN"}
1
+ {"version":3,"file":"renderTargetUtils.d.ts","sourceRoot":"","sources":["../../src/utils/renderTargetUtils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAChF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAE5D;;;;;;;GAOG;AACH,wBAAgB,0BAA0B,CACtC,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,0BAA0B,EACnC,YAAY,EAAE,SAAS,EACvB,kBAAkB,EAAE,aAAa,GAClC,IAAI,CAeN"}
@@ -1,31 +1,17 @@
1
1
  import { createCommand } from "../command/command.js";
2
- /**
3
- * Tries to get a renderTargetWrapper from a ThinRenderTargetTexture, and throws an error if it fails.
4
- * @param renderTargetTexture - The ThinRenderTargetTexture to get the renderTarget from.
5
- * @param callerName - The name of the component calling this one, used for a more descriptive error message.
6
- * @returns - The renderTarget or it throws an Error if it fails.
7
- */
8
- export function getRenderTargetWrapper(renderTargetTexture, callerName) {
9
- const renderTarget = renderTargetTexture === null || renderTargetTexture === void 0 ? void 0 : renderTargetTexture.renderTarget;
10
- if (!renderTarget) {
11
- throw new Error(`${callerName} could not get a renderTarget it needed.`);
12
- }
13
- return renderTarget;
14
- }
15
2
  /**
16
3
  * Registers the final command of the command queue - the one that draws to either the canvas or
17
4
  * renderTargetTexture.
18
- * @param renderTargetWrapper - If non-null, the RenderTargetWrapper to render to, otherwise the command will
19
- * render to the canvas.
5
+ * @param outputBlock - The output block.
20
6
  * @param runtime - The smart filter runtime to use.
21
7
  * @param commandOwner - The owner of the command.
22
8
  * @param shaderBlockRuntime - The shader block runtime to use.
23
9
  */
24
- export function registerFinalRenderCommand(renderTargetWrapper, runtime, commandOwner, shaderBlockRuntime) {
10
+ export function registerFinalRenderCommand(outputBlock, runtime, commandOwner, shaderBlockRuntime) {
25
11
  const commandOwnerBlockType = commandOwner.blockType;
26
- if (renderTargetWrapper) {
12
+ if (outputBlock.renderTargetWrapper) {
27
13
  runtime.registerCommand(createCommand(`${commandOwnerBlockType}.renderToFinalTexture`, commandOwner, () => {
28
- shaderBlockRuntime.renderToTexture(renderTargetWrapper);
14
+ shaderBlockRuntime.renderToTargetWrapper(outputBlock);
29
15
  }));
30
16
  }
31
17
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"renderTargetUtils.js","sourceRoot":"","sources":["../../src/utils/renderTargetUtils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAMtD;;;;;GAKG;AACH,MAAM,UAAU,sBAAsB,CAClC,mBAAsD,EACtD,UAAkB;IAElB,MAAM,YAAY,GAAG,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAE,YAAY,CAAC;IACvD,IAAI,CAAC,YAAY,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,GAAG,UAAU,0CAA0C,CAAC,CAAC;IAC7E,CAAC;IACD,OAAO,YAAY,CAAC;AACxB,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,0BAA0B,CACtC,mBAAkD,EAClD,OAAmC,EACnC,YAAuB,EACvB,kBAAiC;IAEjC,MAAM,qBAAqB,GAAG,YAAY,CAAC,SAAS,CAAC;IACrD,IAAI,mBAAmB,EAAE,CAAC;QACtB,OAAO,CAAC,eAAe,CACnB,aAAa,CAAC,GAAG,qBAAqB,uBAAuB,EAAE,YAAY,EAAE,GAAG,EAAE;YAC9E,kBAAkB,CAAC,eAAe,CAAC,mBAAmB,CAAC,CAAC;QAC5D,CAAC,CAAC,CACL,CAAC;IACN,CAAC;SAAM,CAAC;QACJ,OAAO,CAAC,eAAe,CACnB,aAAa,CAAC,GAAG,qBAAqB,iBAAiB,EAAE,YAAY,EAAE,GAAG,EAAE;YACxE,kBAAkB,CAAC,cAAc,EAAE,CAAC;QACxC,CAAC,CAAC,CACL,CAAC;IACN,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"renderTargetUtils.js","sourceRoot":"","sources":["../../src/utils/renderTargetUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAMtD;;;;;;;GAOG;AACH,MAAM,UAAU,0BAA0B,CACtC,WAAwB,EACxB,OAAmC,EACnC,YAAuB,EACvB,kBAAiC;IAEjC,MAAM,qBAAqB,GAAG,YAAY,CAAC,SAAS,CAAC;IACrD,IAAI,WAAW,CAAC,mBAAmB,EAAE,CAAC;QAClC,OAAO,CAAC,eAAe,CACnB,aAAa,CAAC,GAAG,qBAAqB,uBAAuB,EAAE,YAAY,EAAE,GAAG,EAAE;YAC9E,kBAAkB,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC;QAC1D,CAAC,CAAC,CACL,CAAC;IACN,CAAC;SAAM,CAAC;QACJ,OAAO,CAAC,eAAe,CACnB,aAAa,CAAC,GAAG,qBAAqB,iBAAiB,EAAE,YAAY,EAAE,GAAG,EAAE;YACxE,kBAAkB,CAAC,cAAc,EAAE,CAAC;QACxC,CAAC,CAAC,CACL,CAAC;IACN,CAAC;AACL,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { TextureSize } from "@babylonjs/core/Materials/Textures/textureCreationOptions";
2
+ import type { OutputTextureOptions } from "../blocks/textureOptions";
3
+ import type { SmartFilter } from "../smartFilter";
4
+ import type { ThinEngine } from "@babylonjs/core/Engines/thinEngine";
5
+ /**
6
+ * Determines the output texture size for a given shader block
7
+ * @param smartFilter - The smart filter to use
8
+ * @param engine - The engine to use
9
+ * @param textureOptions - The texture options to use
10
+ * @returns - The output texture size
11
+ */
12
+ export declare function getBlockOutputTextureSize(smartFilter: SmartFilter, engine: ThinEngine, textureOptions: OutputTextureOptions): TextureSize;
13
+ //# sourceMappingURL=textureUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"textureUtils.d.ts","sourceRoot":"","sources":["../../src/utils/textureUtils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,2DAA2D,CAAC;AAC7F,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAErE;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACrC,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,UAAU,EAClB,cAAc,EAAE,oBAAoB,GACrC,WAAW,CAeb"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Determines the output texture size for a given shader block
3
+ * @param smartFilter - The smart filter to use
4
+ * @param engine - The engine to use
5
+ * @param textureOptions - The texture options to use
6
+ * @returns - The output texture size
7
+ */
8
+ export function getBlockOutputTextureSize(smartFilter, engine, textureOptions) {
9
+ let outputWidth;
10
+ let outputHeight;
11
+ const renderTargetWrapper = smartFilter.outputBlock.renderTargetWrapper;
12
+ if (renderTargetWrapper) {
13
+ outputWidth = renderTargetWrapper.width;
14
+ outputHeight = renderTargetWrapper.height;
15
+ }
16
+ else {
17
+ outputWidth = engine.getRenderWidth(true);
18
+ outputHeight = engine.getRenderHeight(true);
19
+ }
20
+ return {
21
+ width: Math.floor(outputWidth * textureOptions.ratio),
22
+ height: Math.floor(outputHeight * textureOptions.ratio),
23
+ };
24
+ }
25
+ //# sourceMappingURL=textureUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"textureUtils.js","sourceRoot":"","sources":["../../src/utils/textureUtils.ts"],"names":[],"mappings":"AAKA;;;;;;GAMG;AACH,MAAM,UAAU,yBAAyB,CACrC,WAAwB,EACxB,MAAkB,EAClB,cAAoC;IAEpC,IAAI,WAAmB,CAAC;IACxB,IAAI,YAAoB,CAAC;IACzB,MAAM,mBAAmB,GAAG,WAAW,CAAC,WAAW,CAAC,mBAAmB,CAAC;IACxE,IAAI,mBAAmB,EAAE,CAAC;QACtB,WAAW,GAAG,mBAAmB,CAAC,KAAK,CAAC;QACxC,YAAY,GAAG,mBAAmB,CAAC,MAAM,CAAC;IAC9C,CAAC;SAAM,CAAC;QACJ,WAAW,GAAG,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAC1C,YAAY,GAAG,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC;IACD,OAAO;QACH,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,cAAc,CAAC,KAAK,CAAC;QACrD,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,cAAc,CAAC,KAAK,CAAC;KAC1D,CAAC;AACN,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@babylonjs/smart-filters",
3
- "version": "0.7.2-alpha",
3
+ "version": "0.7.4-alpha",
4
4
  "description": "Babylon.js Smart Filter core",
5
5
  "author": {
6
6
  "name": "Sebastien VANDENBERGHE"
@@ -57,6 +57,15 @@ export abstract class AggregateBlock extends BaseBlock {
57
57
  for (const internalConnectionPoint of internalConnectionPoints) {
58
58
  connectedToExternalConnectionPoint.connectTo(internalConnectionPoint);
59
59
  }
60
+ } else {
61
+ // If the external connection point is not connected to anything but has a default value,
62
+ // pass that default value along to the internal connection points it is associated with
63
+ const defaultValue = externalConnectionPoint.runtimeData;
64
+ if (defaultValue !== null) {
65
+ for (const internalConnectionPoint of internalConnectionPoints) {
66
+ internalConnectionPoint.runtimeData = defaultValue;
67
+ }
68
+ }
60
69
  }
61
70
  }
62
71
 
@@ -86,7 +86,7 @@ export class OutputBlock extends BaseBlock {
86
86
  initializationData.initializationPromises.push(shaderBlockRuntime.onReadyAsync);
87
87
  runtime.registerResource(shaderBlockRuntime);
88
88
 
89
- registerFinalRenderCommand(this.renderTargetWrapper, runtime, this, shaderBlockRuntime);
89
+ registerFinalRenderCommand(this, runtime, this, shaderBlockRuntime);
90
90
 
91
91
  super.generateCommandsAndGatherInitPromises(initializationData, finalOutput);
92
92
  }
@@ -9,10 +9,11 @@ import { ShaderRuntime } from "../runtime/shaderRuntime.js";
9
9
  import { ConnectionPointType } from "../connection/connectionPointType.js";
10
10
  import { createCommand } from "../command/command.js";
11
11
  import { undecorateSymbol } from "../utils/shaderCodeUtils.js";
12
- import { getRenderTargetWrapper, registerFinalRenderCommand } from "../utils/renderTargetUtils.js";
12
+ import { registerFinalRenderCommand } from "../utils/renderTargetUtils.js";
13
13
  import { BaseBlock } from "./baseBlock.js";
14
14
  import { TextureFormat, TextureType, type OutputTextureOptions } from "./textureOptions.js";
15
15
  import { editableInPropertyPage, PropertyTypeForEdition } from "../editorUtils/editableInPropertyPage.js";
16
+ import type { Nullable } from "@babylonjs/core/types";
16
17
 
17
18
  const OutputTexturePropertiesGroupName = "OUTPUT TEXTURE PROPERTIES";
18
19
 
@@ -143,21 +144,16 @@ export abstract class ShaderBlock extends BaseBlock {
143
144
  runtime.registerResource(shaderBlockRuntime);
144
145
 
145
146
  if (finalOutput) {
146
- registerFinalRenderCommand(
147
- initializationData.outputBlock.renderTargetWrapper,
148
- runtime,
149
- this,
150
- shaderBlockRuntime
151
- );
147
+ registerFinalRenderCommand(initializationData.outputBlock, runtime, this, shaderBlockRuntime);
152
148
  } else {
153
- const renderTarget = getRenderTargetWrapper(
154
- this.output.runtimeData?.value as ThinRenderTargetTexture,
155
- this.blockType
156
- );
149
+ const renderTargetTexture = this.output.runtimeData?.value as Nullable<ThinRenderTargetTexture>;
150
+ if (!renderTargetTexture) {
151
+ throw new Error(`${this.blockType} did not have a render target texture.`);
152
+ }
157
153
 
158
154
  runtime.registerCommand(
159
155
  createCommand(`${this.blockType}.render`, this, () => {
160
- shaderBlockRuntime.renderToTexture(renderTarget);
156
+ shaderBlockRuntime.renderToTargetTexture(renderTargetTexture);
161
157
  })
162
158
  );
163
159
  }
@@ -89,7 +89,7 @@ export class ConnectionPoint<U extends ConnectionPointType = ConnectionPointType
89
89
  }
90
90
 
91
91
  /**
92
- * @returns the connection point this connection point is connected to.
92
+ * @returns The connection point this connection point is connected to.
93
93
  * (the one on the other side of the connection)
94
94
  * Only input connection points have a connected point which they received their value from.
95
95
  * (Relation is always 1:N for input:output)
@@ -99,8 +99,8 @@ export class ConnectionPoint<U extends ConnectionPointType = ConnectionPointType
99
99
  }
100
100
 
101
101
  /**
102
- * @returns the connection point this connection point is to.
103
- * (the one on the other side of the connection)
102
+ * @returns The connection points this output connection point is connected to.
103
+ * (the ones on the other side of the connection)
104
104
  * Only output connection points have a list of endpoints which they provide their value to.
105
105
  * (Relation is always 1:N for input:output)
106
106
  */
@@ -10,6 +10,7 @@ import { ShaderBlock } from "../blocks/shaderBlock.js";
10
10
  import { createStrongRef } from "./strongRef.js";
11
11
  import { ConnectionPointType } from "../connection/connectionPointType.js";
12
12
  import type { OutputTextureOptions } from "../blocks/textureOptions";
13
+ import { getBlockOutputTextureSize } from "../utils/textureUtils.js";
13
14
 
14
15
  /**
15
16
  * @internal
@@ -216,19 +217,7 @@ export class RenderTargetGenerator {
216
217
  };
217
218
 
218
219
  // Get the smartFilter output size - either from the output block's renderTargetTexture or the engine's render size
219
- let outputWidth: number;
220
- let outputHeight: number;
221
- if (smartFilter.outputBlock.renderTargetWrapper) {
222
- outputWidth = smartFilter.outputBlock.renderTargetWrapper.width;
223
- outputHeight = smartFilter.outputBlock.renderTargetWrapper.height;
224
- } else {
225
- outputWidth = engine.getRenderWidth(true);
226
- outputHeight = engine.getRenderHeight(true);
227
- }
228
- const size = {
229
- width: Math.floor(outputWidth * textureOptions.ratio),
230
- height: Math.floor(outputHeight * textureOptions.ratio),
231
- };
220
+ const size = getBlockOutputTextureSize(smartFilter, engine, textureOptions);
232
221
 
233
222
  // Creates frame buffers for effects
234
223
  const finalRenderTarget = new ThinRenderTargetTexture(engine, size, setup);
@@ -3,12 +3,14 @@ import type { RenderTargetWrapper } from "@babylonjs/core/Engines/renderTargetWr
3
3
  import type { AbstractEngine } from "@babylonjs/core/Engines/abstractEngine";
4
4
  import type { Effect } from "@babylonjs/core/Materials/effect";
5
5
  import { EffectWrapper } from "@babylonjs/core/Materials/effectRenderer.js";
6
+ import type { ThinRenderTargetTexture } from "@babylonjs/core/Materials/Textures/thinRenderTargetTexture";
6
7
 
7
8
  import type { IDisposable } from "../IDisposable";
8
9
  import type { ShaderProgram } from "../utils/shaderCodeUtils";
9
10
  import { createStrongRef, type StrongRef } from "./strongRef.js";
10
11
  import type { IDisableableBlock } from "../blocks/disableableShaderBlock";
11
12
  import { decorateSymbol, DisableUniform, getShaderCreateOptions } from "../utils/shaderCodeUtils.js";
13
+ import type { OutputBlock } from "../blocks/outputBlock";
12
14
 
13
15
  /**
14
16
  * The shader bindings for a ShaderBlock that can't be disabled.
@@ -118,11 +120,26 @@ export class ShaderRuntime implements IDisposable {
118
120
  });
119
121
  }
120
122
 
123
+ /**
124
+ * Renders the full screen effect into a render target.
125
+ * @param outputBlock - The output block to render to - assumes it has a .renderTargetWrapper
126
+ */
127
+ public renderToTargetWrapper(outputBlock: OutputBlock): void {
128
+ this._renderToTargetWrapper(outputBlock.renderTargetWrapper!);
129
+ }
130
+
121
131
  /**
122
132
  * Renders the full screen effect into a texture.
123
- * @param renderTargetWrapper - The render target wrapper to render into
133
+ * @param renderTargetTexture - The render target texture to render into
124
134
  */
125
- public renderToTexture(renderTargetWrapper: RenderTargetWrapper): void {
135
+ public renderToTargetTexture(renderTargetTexture: ThinRenderTargetTexture): void {
136
+ const renderTargetWrapper = renderTargetTexture.renderTarget;
137
+ if (renderTargetWrapper) {
138
+ this._renderToTargetWrapper(renderTargetWrapper);
139
+ }
140
+ }
141
+
142
+ private _renderToTargetWrapper(renderTargetWrapper: RenderTargetWrapper): void {
126
143
  this._engine.bindFramebuffer(renderTargetWrapper);
127
144
  this._draw(renderTargetWrapper.width, renderTargetWrapper.height);
128
145
  this._engine.unBindFramebuffer(renderTargetWrapper);
@@ -65,7 +65,7 @@ export class InternalSmartFilterRuntime implements SmartFilterRuntime {
65
65
  }
66
66
 
67
67
  /**
68
- * Reference a resource to be disposed when the runtime is disposed.
68
+ * Register a resource to be disposed when the runtime is disposed.
69
69
  * @param resource - defines the resource to dispose once the runtime is disposed
70
70
  */
71
71
  public registerResource(resource: IDisposable): void {
@@ -10,6 +10,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
12
  import type { IDisposable } from "./IDisposable";
13
+ import { ShaderBlock } from "./blocks/shaderBlock.js";
14
+ import type { ThinRenderTargetTexture } from "@babylonjs/core/Materials/Textures/thinRenderTargetTexture";
15
+ import { getBlockOutputTextureSize } from "./utils/textureUtils.js";
13
16
 
14
17
  /**
15
18
  * How long to wait for shader compilation and texture loading to complete before erroring out.
@@ -203,6 +206,25 @@ export class SmartFilter {
203
206
  return runtime;
204
207
  }
205
208
 
209
+ /**
210
+ * Resizes any intermediate textures according to the new size of the render target
211
+ * @param engine - The engine used to render the smart filter
212
+ */
213
+ public resize(engine: ThinEngine): void {
214
+ this._workWithAggregateFreeGraph(() => {
215
+ this.outputBlock.visit({}, (block: BaseBlock) => {
216
+ if (!(block instanceof ShaderBlock)) {
217
+ return;
218
+ }
219
+
220
+ if (block.output.runtimeData?.value) {
221
+ const size = getBlockOutputTextureSize(this, engine, block.outputTextureOptions);
222
+ (block.output.runtimeData.value as ThinRenderTargetTexture).resize(size);
223
+ }
224
+ });
225
+ });
226
+ }
227
+
206
228
  /**
207
229
  * @internal
208
230
  * Merges all aggregate blocks into the smart filter graph, executes the passed-in work, then restores the aggregate blocks.
@@ -1,48 +1,28 @@
1
- import type { RenderTargetWrapper } from "@babylonjs/core/Engines/renderTargetWrapper";
2
- import type { Nullable } from "@babylonjs/core/types";
3
1
  import { createCommand } from "../command/command.js";
4
2
  import type { BaseBlock } from "../blocks/baseBlock";
5
3
  import type { ShaderRuntime } from "../runtime/shaderRuntime";
6
4
  import type { InternalSmartFilterRuntime } from "../runtime/smartFilterRuntime";
7
- import type { ThinRenderTargetTexture } from "@babylonjs/core/Materials/Textures/thinRenderTargetTexture.js";
8
-
9
- /**
10
- * Tries to get a renderTargetWrapper from a ThinRenderTargetTexture, and throws an error if it fails.
11
- * @param renderTargetTexture - The ThinRenderTargetTexture to get the renderTarget from.
12
- * @param callerName - The name of the component calling this one, used for a more descriptive error message.
13
- * @returns - The renderTarget or it throws an Error if it fails.
14
- */
15
- export function getRenderTargetWrapper(
16
- renderTargetTexture: Nullable<ThinRenderTargetTexture>,
17
- callerName: string
18
- ): RenderTargetWrapper {
19
- const renderTarget = renderTargetTexture?.renderTarget;
20
- if (!renderTarget) {
21
- throw new Error(`${callerName} could not get a renderTarget it needed.`);
22
- }
23
- return renderTarget;
24
- }
5
+ import type { OutputBlock } from "../blocks/outputBlock.js";
25
6
 
26
7
  /**
27
8
  * Registers the final command of the command queue - the one that draws to either the canvas or
28
9
  * renderTargetTexture.
29
- * @param renderTargetWrapper - If non-null, the RenderTargetWrapper to render to, otherwise the command will
30
- * render to the canvas.
10
+ * @param outputBlock - The output block.
31
11
  * @param runtime - The smart filter runtime to use.
32
12
  * @param commandOwner - The owner of the command.
33
13
  * @param shaderBlockRuntime - The shader block runtime to use.
34
14
  */
35
15
  export function registerFinalRenderCommand(
36
- renderTargetWrapper: Nullable<RenderTargetWrapper>,
16
+ outputBlock: OutputBlock,
37
17
  runtime: InternalSmartFilterRuntime,
38
18
  commandOwner: BaseBlock,
39
19
  shaderBlockRuntime: ShaderRuntime
40
20
  ): void {
41
21
  const commandOwnerBlockType = commandOwner.blockType;
42
- if (renderTargetWrapper) {
22
+ if (outputBlock.renderTargetWrapper) {
43
23
  runtime.registerCommand(
44
24
  createCommand(`${commandOwnerBlockType}.renderToFinalTexture`, commandOwner, () => {
45
- shaderBlockRuntime.renderToTexture(renderTargetWrapper);
25
+ shaderBlockRuntime.renderToTargetWrapper(outputBlock);
46
26
  })
47
27
  );
48
28
  } else {
@@ -0,0 +1,32 @@
1
+ import type { TextureSize } from "@babylonjs/core/Materials/Textures/textureCreationOptions";
2
+ import type { OutputTextureOptions } from "../blocks/textureOptions";
3
+ import type { SmartFilter } from "../smartFilter";
4
+ import type { ThinEngine } from "@babylonjs/core/Engines/thinEngine";
5
+
6
+ /**
7
+ * Determines the output texture size for a given shader block
8
+ * @param smartFilter - The smart filter to use
9
+ * @param engine - The engine to use
10
+ * @param textureOptions - The texture options to use
11
+ * @returns - The output texture size
12
+ */
13
+ export function getBlockOutputTextureSize(
14
+ smartFilter: SmartFilter,
15
+ engine: ThinEngine,
16
+ textureOptions: OutputTextureOptions
17
+ ): TextureSize {
18
+ let outputWidth: number;
19
+ let outputHeight: number;
20
+ const renderTargetWrapper = smartFilter.outputBlock.renderTargetWrapper;
21
+ if (renderTargetWrapper) {
22
+ outputWidth = renderTargetWrapper.width;
23
+ outputHeight = renderTargetWrapper.height;
24
+ } else {
25
+ outputWidth = engine.getRenderWidth(true);
26
+ outputHeight = engine.getRenderHeight(true);
27
+ }
28
+ return {
29
+ width: Math.floor(outputWidth * textureOptions.ratio),
30
+ height: Math.floor(outputHeight * textureOptions.ratio),
31
+ };
32
+ }