@babylonjs/smart-filters 0.4.3-alpha → 0.6.0-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 (139) hide show
  1. package/dist/blocks/baseBlock.d.ts +6 -0
  2. package/dist/blocks/baseBlock.d.ts.map +1 -1
  3. package/dist/blocks/baseBlock.js +8 -0
  4. package/dist/blocks/baseBlock.js.map +1 -1
  5. package/dist/blocks/customShaderBlock.d.ts +55 -0
  6. package/dist/blocks/customShaderBlock.d.ts.map +1 -0
  7. package/dist/blocks/customShaderBlock.js +139 -0
  8. package/dist/blocks/customShaderBlock.js.map +1 -0
  9. package/dist/blocks/inputBlock.deserializer.d.ts +1 -1
  10. package/dist/blocks/inputBlock.deserializer.d.ts.map +1 -1
  11. package/dist/blocks/inputBlock.serializer.d.ts +1 -1
  12. package/dist/blocks/inputBlock.serializer.d.ts.map +1 -1
  13. package/dist/blocks/inputBlock.serializer.js +3 -3
  14. package/dist/blocks/inputBlock.serializer.js.map +1 -1
  15. package/dist/blocks/shaderBlock.d.ts +3 -7
  16. package/dist/blocks/shaderBlock.d.ts.map +1 -1
  17. package/dist/blocks/shaderBlock.js +45 -15
  18. package/dist/blocks/shaderBlock.js.map +1 -1
  19. package/dist/blocks/textureOptions.d.ts +47 -0
  20. package/dist/blocks/textureOptions.d.ts.map +1 -0
  21. package/dist/blocks/textureOptions.js +37 -0
  22. package/dist/blocks/textureOptions.js.map +1 -0
  23. package/dist/command/command.d.ts +2 -3
  24. package/dist/command/command.d.ts.map +1 -1
  25. package/dist/command/command.js.map +1 -1
  26. package/dist/command/commandBufferDebugger.js +1 -1
  27. package/dist/command/commandBufferDebugger.js.map +1 -1
  28. package/dist/connection/connectionPointType.d.ts +4 -0
  29. package/dist/connection/connectionPointType.d.ts.map +1 -1
  30. package/dist/editorUtils/editableInPropertyPage.d.ts +4 -0
  31. package/dist/editorUtils/editableInPropertyPage.d.ts.map +1 -1
  32. package/dist/editorUtils/editableInPropertyPage.js +1 -0
  33. package/dist/editorUtils/editableInPropertyPage.js.map +1 -1
  34. package/dist/index.d.ts +2 -0
  35. package/dist/index.d.ts.map +1 -1
  36. package/dist/index.js +2 -0
  37. package/dist/index.js.map +1 -1
  38. package/dist/optimization/smartFilterOptimizer.d.ts +1 -1
  39. package/dist/optimization/smartFilterOptimizer.d.ts.map +1 -1
  40. package/dist/optimization/smartFilterOptimizer.js +10 -9
  41. package/dist/optimization/smartFilterOptimizer.js.map +1 -1
  42. package/dist/runtime/renderTargetGenerator.d.ts +8 -1
  43. package/dist/runtime/renderTargetGenerator.d.ts.map +1 -1
  44. package/dist/runtime/renderTargetGenerator.js +37 -18
  45. package/dist/runtime/renderTargetGenerator.js.map +1 -1
  46. package/dist/serialization/importCustomShaderBlockDefinition.d.ts +11 -0
  47. package/dist/serialization/importCustomShaderBlockDefinition.d.ts.map +1 -0
  48. package/dist/serialization/importCustomShaderBlockDefinition.js +80 -0
  49. package/dist/serialization/importCustomShaderBlockDefinition.js.map +1 -0
  50. package/dist/serialization/index.d.ts +1 -0
  51. package/dist/serialization/index.d.ts.map +1 -1
  52. package/dist/serialization/index.js +1 -0
  53. package/dist/serialization/index.js.map +1 -1
  54. package/dist/serialization/serializedBlockDefinition.d.ts +7 -0
  55. package/dist/serialization/serializedBlockDefinition.d.ts.map +1 -0
  56. package/dist/serialization/serializedBlockDefinition.js +2 -0
  57. package/dist/serialization/serializedBlockDefinition.js.map +1 -0
  58. package/dist/serialization/serializedSmartFilter.d.ts +1 -1
  59. package/dist/serialization/serializedSmartFilter.d.ts.map +1 -1
  60. package/dist/serialization/smartFilterDeserializer.d.ts +12 -4
  61. package/dist/serialization/smartFilterDeserializer.d.ts.map +1 -1
  62. package/dist/serialization/smartFilterDeserializer.js +63 -34
  63. package/dist/serialization/smartFilterDeserializer.js.map +1 -1
  64. package/dist/serialization/smartFilterSerializer.d.ts +2 -2
  65. package/dist/serialization/smartFilterSerializer.d.ts.map +1 -1
  66. package/dist/serialization/smartFilterSerializer.js +9 -6
  67. package/dist/serialization/smartFilterSerializer.js.map +1 -1
  68. package/dist/serialization/v1/blockSerialization.types.d.ts +55 -0
  69. package/dist/serialization/v1/blockSerialization.types.d.ts.map +1 -0
  70. package/dist/serialization/v1/blockSerialization.types.js +7 -0
  71. package/dist/serialization/v1/blockSerialization.types.js.map +1 -0
  72. package/dist/serialization/v1/defaultBlockSerializer.d.ts +1 -1
  73. package/dist/serialization/v1/defaultBlockSerializer.d.ts.map +1 -1
  74. package/dist/serialization/v1/defaultBlockSerializer.js +1 -1
  75. package/dist/serialization/v1/defaultBlockSerializer.js.map +1 -1
  76. package/dist/serialization/v1/index.d.ts +1 -1
  77. package/dist/serialization/v1/index.d.ts.map +1 -1
  78. package/dist/serialization/v1/index.js +1 -1
  79. package/dist/serialization/v1/index.js.map +1 -1
  80. package/dist/serialization/v1/{serialization.types.d.ts → smartFilterSerialization.types.d.ts} +12 -11
  81. package/dist/serialization/v1/smartFilterSerialization.types.d.ts.map +1 -0
  82. package/dist/serialization/v1/smartFilterSerialization.types.js +2 -0
  83. package/dist/serialization/v1/smartFilterSerialization.types.js.map +1 -0
  84. package/dist/utils/buildTools/buildShaders.js +1 -1
  85. package/dist/utils/buildTools/buildShaders.js.map +1 -1
  86. package/dist/utils/buildTools/convertShaderForHardcodedBlock.d.ts +13 -0
  87. package/dist/utils/buildTools/convertShaderForHardcodedBlock.d.ts.map +1 -0
  88. package/dist/utils/buildTools/convertShaderForHardcodedBlock.js +116 -0
  89. package/dist/utils/buildTools/convertShaderForHardcodedBlock.js.map +1 -0
  90. package/dist/utils/buildTools/shaderCode.types.d.ts +43 -0
  91. package/dist/utils/buildTools/shaderCode.types.d.ts.map +1 -0
  92. package/dist/utils/buildTools/shaderCode.types.js +2 -0
  93. package/dist/utils/buildTools/shaderCode.types.js.map +1 -0
  94. package/dist/utils/buildTools/shaderConverter.d.ts +56 -8
  95. package/dist/utils/buildTools/shaderConverter.d.ts.map +1 -1
  96. package/dist/utils/buildTools/shaderConverter.js +87 -137
  97. package/dist/utils/buildTools/shaderConverter.js.map +1 -1
  98. package/dist/utils/buildTools/watchShaders.js +2 -2
  99. package/dist/utils/buildTools/watchShaders.js.map +1 -1
  100. package/dist/utils/renderTargetUtils.js +3 -3
  101. package/dist/utils/renderTargetUtils.js.map +1 -1
  102. package/dist/utils/shaderCodeUtils.d.ts +1 -42
  103. package/dist/utils/shaderCodeUtils.d.ts.map +1 -1
  104. package/dist/utils/shaderCodeUtils.js.map +1 -1
  105. package/package.json +1 -1
  106. package/readme.md +19 -15
  107. package/src/blocks/baseBlock.ts +9 -0
  108. package/src/blocks/customShaderBlock.ts +217 -0
  109. package/src/blocks/inputBlock.deserializer.ts +1 -1
  110. package/src/blocks/inputBlock.serializer.ts +4 -4
  111. package/src/blocks/shaderBlock.ts +36 -15
  112. package/src/blocks/textureOptions.ts +57 -0
  113. package/src/command/command.ts +2 -3
  114. package/src/command/commandBufferDebugger.ts +1 -1
  115. package/src/connection/connectionPointType.ts +11 -0
  116. package/src/editorUtils/editableInPropertyPage.ts +5 -0
  117. package/src/index.ts +2 -0
  118. package/src/optimization/smartFilterOptimizer.ts +11 -10
  119. package/src/runtime/renderTargetGenerator.ts +55 -20
  120. package/src/serialization/importCustomShaderBlockDefinition.ts +85 -0
  121. package/src/serialization/index.ts +1 -0
  122. package/src/serialization/serializedBlockDefinition.ts +7 -0
  123. package/src/serialization/serializedSmartFilter.ts +1 -1
  124. package/src/serialization/smartFilterDeserializer.ts +106 -52
  125. package/src/serialization/smartFilterSerializer.ts +11 -7
  126. package/src/serialization/v1/blockSerialization.types.ts +63 -0
  127. package/src/serialization/v1/defaultBlockSerializer.ts +2 -2
  128. package/src/serialization/v1/index.ts +1 -1
  129. package/src/serialization/v1/{serialization.types.ts → smartFilterSerialization.types.ts} +11 -10
  130. package/src/utils/buildTools/buildShaders.ts +1 -1
  131. package/src/utils/buildTools/convertShaderForHardcodedBlock.ts +149 -0
  132. package/src/utils/buildTools/shaderCode.types.ts +49 -0
  133. package/src/utils/buildTools/shaderConverter.ts +158 -178
  134. package/src/utils/buildTools/watchShaders.ts +2 -2
  135. package/src/utils/renderTargetUtils.ts +3 -3
  136. package/src/utils/shaderCodeUtils.ts +1 -50
  137. package/dist/serialization/v1/serialization.types.d.ts.map +0 -1
  138. package/dist/serialization/v1/serialization.types.js +0 -2
  139. package/dist/serialization/v1/serialization.types.js.map +0 -1
@@ -36,6 +36,12 @@ export declare abstract class BaseBlock implements ICommandOwner {
36
36
  * The name of the block. This is used to identify the block in the smart filter or in debug.
37
37
  */
38
38
  readonly name: string;
39
+ /**
40
+ * The type of the block - used when serializing / deserializing the block, and in the editor.
41
+ * For programmatically created blocks, this should be the class name of the block.
42
+ * For custom blocks, this is specified in the block definition.
43
+ */
44
+ get blockType(): string;
39
45
  /**
40
46
  * User provided comments about the block. It can be used to document the block.
41
47
  */
@@ -1 +1 @@
1
- {"version":3,"file":"baseBlock.d.ts","sourceRoot":"","sources":["../../src/blocks/baseBlock.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"baseBlock.d.ts","sourceRoot":"","sources":["../../src/blocks/baseBlock.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,14 @@ import { UniqueIdGenerator } from "../utils/uniqueIdGenerator.js";
12
12
  * It enforces common behavior for all smart filter blocks.
13
13
  */
14
14
  export class BaseBlock {
15
+ /**
16
+ * The type of the block - used when serializing / deserializing the block, and in the editor.
17
+ * For programmatically created blocks, this should be the class name of the block.
18
+ * For custom blocks, this is specified in the block definition.
19
+ */
20
+ get blockType() {
21
+ return this.getClassName();
22
+ }
15
23
  /**
16
24
  * Instantiates a new block.
17
25
  * @param smartFilter - Defines the smart filter the block belongs to
@@ -1 +1 @@
1
- {"version":3,"file":"baseBlock.js","sourceRoot":"","sources":["../../src/blocks/baseBlock.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"baseBlock.js","sourceRoot":"","sources":["../../src/blocks/baseBlock.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAA6B,MAAM,sCAAsC,CAAC;AAGtG,OAAO,EAAE,eAAe,EAAoB,MAAM,kCAAkC,CAAC;AACrF,OAAO,EAAE,0BAA0B,EAAE,MAAM,6CAA6C,CAAC;AACzF,OAAO,EAAE,wBAAwB,EAAE,MAAM,2CAA2C,CAAC;AACrF,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAQlE;;;;;;;GAOG;AACH,MAAM,OAAgB,SAAS;IAuB3B;;;;OAIG;IACH,IAAW,SAAS;QAChB,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC;IAC/B,CAAC;IAUD;;;;;OAKG;IACH,YACI,WAAwB,EACxB,IAAY,EACI,sBAAsB,KAAK;QAA3B,wBAAmB,GAAnB,mBAAmB,CAAQ;QAjB/C;;WAEG;QACI,aAAQ,GAAqB,IAAI,CAAC;QAExB,YAAO,GAAsB,EAAE,CAAC;QAChC,aAAQ,GAAsB,EAAE,CAAC;QAa9C,IAAI,CAAC,QAAQ,GAAG,iBAAiB,CAAC,QAAQ,CAAC;QAC3C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAE/B,yCAAyC;QACzC,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAED;;OAEG;IACH,IAAW,MAAM;QACb,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,IAAW,OAAO;QACd,OAAO,IAAI,CAAC,QAAQ,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,IAAW,OAAO;QACd,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC;IACrC,CAAC;IAED;;OAEG;IACH,IAAW,QAAQ;QACf,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC;IACtC,CAAC;IAED;;OAEG;IACI,YAAY;QACf,qJAAqJ;QACrJ,OAAQ,IAAI,CAAC,WAAgC,CAAC,SAAS,CAAC;IAC5D,CAAC;IAED;;;;OAIG;IACI,cAAc,CAAC,KAAgB;QAClC,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACjC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;gBAC3B,SAAS;YACb,CAAC;YAED,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;gBACtC,IAAI,QAAQ,CAAC,UAAU,KAAK,KAAK,EAAE,CAAC;oBAChC,OAAO,IAAI,CAAC;gBAChB,CAAC;gBACD,IAAI,QAAQ,CAAC,UAAU,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC5C,OAAO,IAAI,CAAC;gBAChB,CAAC;YACL,CAAC;QACL,CAAC;QAED,OAAO,KAAK,CAAC;IACjB,CAAC;IAES,YAAY,CAClB,SAAY,EACZ,QAAyB,EACzB,cAA8B;QAE9B,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAC9B,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;gBACrB,SAAS;YACb,CAAC;YAED,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,CAAC,UAAU,CAAC;YAE3C,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE,QAAQ,EAAE,cAAc,CAAC,CAAC;QACrD,CAAC;IACL,CAAC;IAED;;;;;;;OAOG;IACI,KAAK,CACR,SAAY,EACZ,QAAyB,EACzB,oBAAqC;QAErC,IAAI,CAAC,oBAAoB,EAAE,CAAC;YACxB,oBAAoB,GAAG,SAAS,CAAC,qBAAqB,CAAC;YACvD,oBAAoB,CAAC,KAAK,EAAE,CAAC;QACjC,CAAC;QAED,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAClC,oBAAoB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAE/B,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,QAAQ,EAAE,oBAAoB,CAAC,CAAC;YAE7D,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAC9B,CAAC;IACL,CAAC;IAED;;;;OAIG;IACI,SAAS,CAAgC,IAAY;QACxD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAC/B,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;gBACtB,OAAO,KAA2B,CAAC;YACvC,CAAC;QACL,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IAED;;;OAGG;IACI,mBAAmB,CAAC,wBAA+D,IAAS,CAAC;IAEpG;;;OAGG;IACI,iBAAiB,KAAU,CAAC;IAEnC;;OAEG;IACI,oBAAoB;QACvB,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACjC,MAAM,CAAC,oBAAoB,EAAE,CAAC;QAClC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACI,qCAAqC,CAAC,kBAAsC,EAAE,YAAqB;;QACtG,6GAA6G;QAC7G,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAC/B,IAAI,KAAK,CAAC,IAAI,KAAK,mBAAmB,CAAC,OAAO,EAAE,CAAC;gBAC7C,MAAM,OAAO,GAAG,MAAA,KAAK,CAAC,WAAW,0CAAE,KAA0D,CAAC;gBAC9F,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;oBAChC,MAAM,eAAe,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;oBACrD,IAAI,eAAe,EAAE,CAAC;wBAClB,MAAM,mBAAmB,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;4BAC9D,eAAe,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,EAAE;gCACxC,OAAO,EAAE,CAAC;4BACd,CAAC,CAAC,CAAC;4BACH,eAAe,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;gCAC5C,MAAM,CAAC,KAAK,CAAC,CAAC;4BAClB,CAAC,CAAC,CAAC;wBACP,CAAC,CAAC,CAAC;wBACH,kBAAkB,CAAC,sBAAsB,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;oBACxE,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC;IACL,CAAC;IAED;;OAEG;IACI,UAAU;;QACb,gBAAgB;QAChB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAC/B,MAAA,KAAK,CAAC,WAAW,0CAAE,cAAc,CAAC,KAAK,CAAC,CAAC;QAC7C,CAAC;QAED,iBAAiB;QACjB,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACjC,MAAM,CAAC,sBAAsB,EAAE,CAAC;QACpC,CAAC;IACL,CAAC;IAED;;;;;;;OAOG;IACI,cAAc,CACjB,IAAY,EACZ,IAAO,EACP,eAAyC,IAAI;QAE7C,MAAM,KAAK,GAAG,IAAI,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,wBAAwB,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;QAClG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzB,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;;;;;;OAOG;IACI,sBAAsB,CACzB,IAAY,EACZ,IAAO,EACP,YAA4B;QAE5B,MAAM,KAAK,GAAG,IAAI,0BAA0B,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,wBAAwB,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;QAC7G,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzB,OAAO,KAAK,CAAC;IACjB,CAAC;IAED;;;;;;OAMG;IACI,eAAe,CAAgC,IAAY,EAAE,IAAO;QACvE,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,wBAAwB,CAAC,MAAM,CAAC,CAAC;QACtF,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3B,OAAO,MAAM,CAAC;IAClB,CAAC;IAED;;;;;;;OAOG;IACI,0BAA0B,CAC7B,IAAY,EACZ,IAAO,EACP,YAA4B;QAE5B,MAAM,MAAM,GAAG,IAAI,0BAA0B,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,wBAAwB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;QAC/G,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3B,OAAO,MAAM,CAAC;IAClB,CAAC;IAED;;;;OAIG;IACO,2BAA2B,CACjC,KAAyB;QAEzB,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CACX,OAAO,mBAAmB,CAAC,KAAK,CAAC,IAAI,CAAC,iBAClC,KAAK,CAAC,IACV,wBAAwB,IAAI,CAAC,YAAY,EAAE,WAAW,IAAI,CAAC,IAAI,GAAG,CACrE,CAAC;QACN,CAAC;QACD,OAAO,KAAK,CAAC,WAAW,CAAC;IAC7B,CAAC;;AAnUgB,+BAAqB,GAAG,IAAI,GAAG,EAAa,AAAvB,CAAwB;AAE9D;;GAEG;AACW,mBAAS,GAAG,WAAW,AAAd,CAAe"}
@@ -0,0 +1,55 @@
1
+ import { ShaderBinding } from "../runtime/shaderRuntime.js";
2
+ import type { SerializedBlockDefinition } from "../serialization/serializedBlockDefinition";
3
+ import type { SmartFilter } from "../smartFilter";
4
+ import type { ShaderProgram } from "../utils/shaderCodeUtils";
5
+ import { ShaderBlock } from "./shaderBlock.js";
6
+ /**
7
+ * A block which loads a SerializedBlockDefinition for use in a SmartFilter.
8
+ */
9
+ export declare class CustomShaderBlock extends ShaderBlock {
10
+ /**
11
+ * Deserializes a CustomShaderBlock from a serialized block definition.
12
+ * @param smartFilter - The smart filter this block belongs to
13
+ * @param name - Defines the name of the block
14
+ * @param blockDefinition - The serialized block definition
15
+ * @returns The deserialized CustomShaderBlock instance
16
+ */
17
+ static Create(smartFilter: SmartFilter, name: string, blockDefinition: SerializedBlockDefinition): CustomShaderBlock;
18
+ /**
19
+ * The class name of the block.
20
+ */
21
+ static ClassName: string;
22
+ private readonly _shaderProgram;
23
+ private readonly _blockType;
24
+ /**
25
+ * The type of the block - used when serializing / deserializing the block, and in the editor.
26
+ */
27
+ get blockType(): string;
28
+ /**
29
+ * Instantiates a new custom shader block.
30
+ * @param smartFilter - The smart filter this block belongs to
31
+ * @param name - The name of the block
32
+ * @param disableOptimization - If true, this optimizer will not attempt to optimize this block
33
+ * @param blockType - The type of the block
34
+ * @param inputConnectionPoints - The input connection points of the
35
+ * @param shaderProgram - The shader program for the block
36
+ */
37
+ private constructor();
38
+ /**
39
+ * Gets the shader program to use to render the block.
40
+ * @returns The shader program to use to render the block
41
+ */
42
+ getShaderProgram(): ShaderProgram;
43
+ /**
44
+ * Checks a specific input connection point type to see if it has a default value, and registers the input
45
+ * connection point accordingly.
46
+ * @param connectionPoint - The input connection point to register
47
+ */
48
+ private _registerSerializedInputConnectionPointV1;
49
+ /**
50
+ * Gets the shader binding for the custom shader block.
51
+ * @returns The shader binding for the custom shader block
52
+ */
53
+ getShaderBinding(): ShaderBinding;
54
+ }
55
+ //# sourceMappingURL=customShaderBlock.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"customShaderBlock.d.ts","sourceRoot":"","sources":["../../src/blocks/customShaderBlock.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE5D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,4CAA4C,CAAC;AAE5F,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AA+D/C;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,WAAW;IAC9C;;;;;;OAMG;WACW,MAAM,CAChB,WAAW,EAAE,WAAW,EACxB,IAAI,EAAE,MAAM,EACZ,eAAe,EAAE,yBAAyB,GAC3C,iBAAiB;IAapB;;OAEG;IACH,OAAuB,SAAS,SAAuB;IAEvD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAgB;IAC/C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IAEpC;;OAEG;IACH,IAAoB,SAAS,IAAI,MAAM,CAEtC;IAED;;;;;;;;OAQG;IACH,OAAO;IAkBP;;;OAGG;IACa,gBAAgB;IAIhC;;;;OAIG;IACH,OAAO,CAAC,yCAAyC;IAcjD;;;OAGG;IACa,gBAAgB,IAAI,aAAa;CAapD"}
@@ -0,0 +1,139 @@
1
+ import { ConnectionPointType } from "../connection/connectionPointType.js";
2
+ import { ShaderBinding } from "../runtime/shaderRuntime.js";
3
+ import { createStrongRef } from "../runtime/strongRef.js";
4
+ import { ShaderBlock } from "./shaderBlock.js";
5
+ /**
6
+ * The binding for a CustomShaderBlock
7
+ */
8
+ class CustomShaderBlockBinding extends ShaderBinding {
9
+ /**
10
+ * Creates a new shader binding instance for the CustomShaderBlock block.
11
+ * @param inputsWithRuntimeData - The input connection points of the block
12
+ */
13
+ constructor(inputsWithRuntimeData) {
14
+ super();
15
+ this._bindSteps = [];
16
+ for (const input of inputsWithRuntimeData) {
17
+ switch (input.type) {
18
+ case ConnectionPointType.Float:
19
+ this._bindSteps.push((effect) => {
20
+ effect.setFloat(this.getRemappedName(input.name), input.runtimeData.value);
21
+ });
22
+ break;
23
+ case ConnectionPointType.Texture:
24
+ this._bindSteps.push((effect) => {
25
+ effect.setTexture(this.getRemappedName(input.name), input.runtimeData.value);
26
+ });
27
+ break;
28
+ case ConnectionPointType.Color3:
29
+ this._bindSteps.push((effect) => {
30
+ effect.setColor3(this.getRemappedName(input.name), input.runtimeData.value);
31
+ });
32
+ break;
33
+ case ConnectionPointType.Color4:
34
+ this._bindSteps.push((effect) => {
35
+ effect.setDirectColor4(this.getRemappedName(input.name), input.runtimeData.value);
36
+ });
37
+ break;
38
+ case ConnectionPointType.Boolean:
39
+ this._bindSteps.push((effect) => {
40
+ effect.setBool(this.getRemappedName(input.name), input.runtimeData.value);
41
+ });
42
+ break;
43
+ case ConnectionPointType.Vector2:
44
+ this._bindSteps.push((effect) => {
45
+ effect.setVector2(this.getRemappedName(input.name), input.runtimeData.value);
46
+ });
47
+ break;
48
+ }
49
+ }
50
+ }
51
+ /**
52
+ * Binds all the required data to the shader when rendering.
53
+ * @param effect - The effect to bind the data to
54
+ */
55
+ bind(effect) {
56
+ for (let i = 0; i < this._bindSteps.length; i++) {
57
+ this._bindSteps[i](effect);
58
+ }
59
+ }
60
+ }
61
+ /**
62
+ * A block which loads a SerializedBlockDefinition for use in a SmartFilter.
63
+ */
64
+ export class CustomShaderBlock extends ShaderBlock {
65
+ /**
66
+ * Deserializes a CustomShaderBlock from a serialized block definition.
67
+ * @param smartFilter - The smart filter this block belongs to
68
+ * @param name - Defines the name of the block
69
+ * @param blockDefinition - The serialized block definition
70
+ * @returns The deserialized CustomShaderBlock instance
71
+ */
72
+ static Create(smartFilter, name, blockDefinition) {
73
+ // When a new version of SerializedBlockDefinition is created, this function should be updated to handle the new properties.
74
+ return new CustomShaderBlock(smartFilter, name, blockDefinition.disableOptimization, blockDefinition.blockType, blockDefinition.inputConnectionPoints, blockDefinition.shaderProgram);
75
+ }
76
+ /**
77
+ * The type of the block - used when serializing / deserializing the block, and in the editor.
78
+ */
79
+ get blockType() {
80
+ return this._blockType;
81
+ }
82
+ /**
83
+ * Instantiates a new custom shader block.
84
+ * @param smartFilter - The smart filter this block belongs to
85
+ * @param name - The name of the block
86
+ * @param disableOptimization - If true, this optimizer will not attempt to optimize this block
87
+ * @param blockType - The type of the block
88
+ * @param inputConnectionPoints - The input connection points of the
89
+ * @param shaderProgram - The shader program for the block
90
+ */
91
+ constructor(smartFilter, name, disableOptimization, blockType, inputConnectionPoints, shaderProgram) {
92
+ super(smartFilter, name, disableOptimization);
93
+ this._blockType = blockType;
94
+ for (const input of inputConnectionPoints) {
95
+ this._registerSerializedInputConnectionPointV1(input);
96
+ }
97
+ this._shaderProgram = shaderProgram;
98
+ }
99
+ /**
100
+ * Gets the shader program to use to render the block.
101
+ * @returns The shader program to use to render the block
102
+ */
103
+ getShaderProgram() {
104
+ return this._shaderProgram;
105
+ }
106
+ /**
107
+ * Checks a specific input connection point type to see if it has a default value, and registers the input
108
+ * connection point accordingly.
109
+ * @param connectionPoint - The input connection point to register
110
+ */
111
+ _registerSerializedInputConnectionPointV1(connectionPoint) {
112
+ if (connectionPoint.defaultValue !== undefined) {
113
+ this._registerOptionalInput(connectionPoint.name, connectionPoint.type, createStrongRef(connectionPoint.defaultValue));
114
+ }
115
+ else {
116
+ this._registerInput(connectionPoint.name, connectionPoint.type);
117
+ }
118
+ }
119
+ /**
120
+ * Gets the shader binding for the custom shader block.
121
+ * @returns The shader binding for the custom shader block
122
+ */
123
+ getShaderBinding() {
124
+ const inputs = this.inputs;
125
+ const inputsWithRuntimeData = inputs.map((input) => {
126
+ return {
127
+ name: input.name,
128
+ type: input.type,
129
+ runtimeData: this._confirmRuntimeDataSupplied(input),
130
+ };
131
+ });
132
+ return new CustomShaderBlockBinding(inputsWithRuntimeData);
133
+ }
134
+ }
135
+ /**
136
+ * The class name of the block.
137
+ */
138
+ CustomShaderBlock.ClassName = "CustomShaderBlock";
139
+ //# sourceMappingURL=customShaderBlock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"customShaderBlock.js","sourceRoot":"","sources":["../../src/blocks/customShaderBlock.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { InputBlock } from "./inputBlock.js";
2
2
  import { ConnectionPointType } from "../connection/connectionPointType.js";
3
3
  import type { SmartFilter } from "../smartFilter.js";
4
- import type { ISerializedBlockV1 } from "../serialization/v1/serialization.types.js";
4
+ import type { ISerializedBlockV1 } from "../serialization/v1/smartFilterSerialization.types.js";
5
5
  /**
6
6
  * V1 Input Block Deserializer
7
7
  * @param smartFilter - The SmartFilter to deserialize the block into
@@ -1 +1 @@
1
- {"version":3,"file":"inputBlock.deserializer.d.ts","sourceRoot":"","sources":["../../src/blocks/inputBlock.deserializer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4CAA4C,CAAC;AAErF;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,WAAW,EAAE,eAAe,EAAE,kBAAkB,yPA6CnG"}
1
+ {"version":3,"file":"inputBlock.deserializer.d.ts","sourceRoot":"","sources":["../../src/blocks/inputBlock.deserializer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uDAAuD,CAAC;AAEhG;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,WAAW,EAAE,eAAe,EAAE,kBAAkB,yPA6CnG"}
@@ -1,4 +1,4 @@
1
- import type { IBlockSerializerV1 } from "../serialization/v1/serialization.types";
1
+ import type { IBlockSerializerV1 } from "../serialization/v1/smartFilterSerialization.types.js";
2
2
  /**
3
3
  * The V1 serializer for an InputBlock
4
4
  */
@@ -1 +1 @@
1
- {"version":3,"file":"inputBlock.serializer.d.ts","sourceRoot":"","sources":["../../src/blocks/inputBlock.serializer.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAiHlF;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,kBAclC,CAAC"}
1
+ {"version":3,"file":"inputBlock.serializer.d.ts","sourceRoot":"","sources":["../../src/blocks/inputBlock.serializer.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uDAAuD,CAAC;AAiHhG;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,kBAclC,CAAC"}
@@ -108,15 +108,15 @@ function serializeVector2InputBlock(inputBlock) {
108
108
  * The V1 serializer for an InputBlock
109
109
  */
110
110
  export const inputBlockSerializer = {
111
- className: InputBlockBase.ClassName,
111
+ blockType: InputBlockBase.ClassName,
112
112
  serialize: (block) => {
113
- if (block.getClassName() !== InputBlockBase.ClassName) {
113
+ if (block.blockType !== InputBlockBase.ClassName) {
114
114
  throw new Error("Was asked to serialize an unrecognized block type");
115
115
  }
116
116
  return {
117
117
  name: block.name,
118
118
  uniqueId: block.uniqueId,
119
- className: InputBlockBase.ClassName,
119
+ blockType: InputBlockBase.ClassName,
120
120
  comments: block.comments,
121
121
  data: serializeInputBlockData(block),
122
122
  };
@@ -1 +1 @@
1
- {"version":3,"file":"inputBlock.serializer.js","sourceRoot":"","sources":["../../src/blocks/inputBlock.serializer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"inputBlock.serializer.js","sourceRoot":"","sources":["../../src/blocks/inputBlock.serializer.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ import type { ShaderBinding } from "../runtime/shaderRuntime";
5
5
  import type { ConnectionPoint } from "../connection/connectionPoint";
6
6
  import { ConnectionPointType } from "../connection/connectionPointType.js";
7
7
  import { BaseBlock } from "./baseBlock.js";
8
+ import { type OutputTextureOptions } from "./textureOptions.js";
8
9
  /**
9
10
  * This is the base class for all shader blocks.
10
11
  *
@@ -31,15 +32,10 @@ export declare abstract class ShaderBlock extends BaseBlock {
31
32
  * The output connection point of the block.
32
33
  */
33
34
  readonly output: ConnectionPoint<ConnectionPointType.Texture>;
34
- protected _textureRatio: number;
35
35
  /**
36
- * Gets the texture ratio of the output texture.
36
+ * The options used when creating the texture this block outputs to
37
37
  */
38
- get textureRatio(): number;
39
- /**
40
- * Sets the texture ratio of the output texture.
41
- */
42
- set textureRatio(value: number);
38
+ outputTextureOptions: OutputTextureOptions;
43
39
  /**
44
40
  * Disconnects the block from the graph.
45
41
  * @param disconnectedConnections - Stores the connections that have been broken in the process. You can reconnect them later if needed.
@@ -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;AAE3C;;;;;;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,SAAS,CAAC,aAAa,EAAE,MAAM,CAAK;IAEpC;;OAEG;IACH,IAAW,YAAY,IAOQ,MAAM,CALpC;IAED;;OAEG;IACH,IAAW,YAAY,CAAC,KAAK,EAAE,MAAM,EAEpC;IAED;;;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;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,3 +1,9 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
1
7
  import "@babylonjs/core/Engines/Extensions/engine.renderTarget.js";
2
8
  import { ShaderRuntime } from "../runtime/shaderRuntime.js";
3
9
  import { ConnectionPointType } from "../connection/connectionPointType.js";
@@ -5,6 +11,9 @@ import { createCommand } from "../command/command.js";
5
11
  import { undecorateSymbol } from "../utils/shaderCodeUtils.js";
6
12
  import { getRenderTargetWrapper, registerFinalRenderCommand } from "../utils/renderTargetUtils.js";
7
13
  import { BaseBlock } from "./baseBlock.js";
14
+ import { TextureFormat, TextureType } from "./textureOptions.js";
15
+ import { editableInPropertyPage, PropertyTypeForEdition } from "../editorUtils/editableInPropertyPage.js";
16
+ const OutputTexturePropertiesGroupName = "OUTPUT TEXTURE PROPERTIES";
8
17
  /**
9
18
  * This is the base class for all shader blocks.
10
19
  *
@@ -13,18 +22,6 @@ import { BaseBlock } from "./baseBlock.js";
13
22
  * The only required function to implement is the bind function.
14
23
  */
15
24
  export class ShaderBlock extends BaseBlock {
16
- /**
17
- * Gets the texture ratio of the output texture.
18
- */
19
- get textureRatio() {
20
- return this._textureRatio;
21
- }
22
- /**
23
- * Sets the texture ratio of the output texture.
24
- */
25
- set textureRatio(value) {
26
- this._textureRatio = value;
27
- }
28
25
  /**
29
26
  * Disconnects the block from the graph.
30
27
  * @param disconnectedConnections - Stores the connections that have been broken in the process. You can reconnect them later if needed.
@@ -59,7 +56,14 @@ export class ShaderBlock extends BaseBlock {
59
56
  * The output connection point of the block.
60
57
  */
61
58
  this.output = this._registerOutput("output", ConnectionPointType.Texture);
62
- this._textureRatio = 1;
59
+ /**
60
+ * The options used when creating the texture this block outputs to
61
+ */
62
+ this.outputTextureOptions = {
63
+ ratio: 1,
64
+ format: TextureFormat.RGBA,
65
+ type: TextureType.UNSIGNED_BYTE,
66
+ };
63
67
  }
64
68
  /**
65
69
  * Gets the shader program to use to render the block.
@@ -83,8 +87,8 @@ export class ShaderBlock extends BaseBlock {
83
87
  registerFinalRenderCommand(initializationData.outputBlock.renderTargetWrapper, runtime, this, shaderBlockRuntime);
84
88
  }
85
89
  else {
86
- const renderTarget = getRenderTargetWrapper((_a = this.output.runtimeData) === null || _a === void 0 ? void 0 : _a.value, this.getClassName());
87
- runtime.registerCommand(createCommand(`${this.getClassName()}.render`, this, () => {
90
+ const renderTarget = getRenderTargetWrapper((_a = this.output.runtimeData) === null || _a === void 0 ? void 0 : _a.value, this.blockType);
91
+ runtime.registerCommand(createCommand(`${this.blockType}.render`, this, () => {
88
92
  shaderBlockRuntime.renderToTexture(renderTarget);
89
93
  }));
90
94
  }
@@ -95,4 +99,30 @@ export class ShaderBlock extends BaseBlock {
95
99
  * The class name of the block.
96
100
  */
97
101
  ShaderBlock.ClassName = "ShaderBlock";
102
+ __decorate([
103
+ editableInPropertyPage("Ratio", PropertyTypeForEdition.Float, OutputTexturePropertiesGroupName, {
104
+ min: 0.1,
105
+ max: 10.0,
106
+ notifiers: { rebuild: true },
107
+ subPropertyName: "ratio",
108
+ }),
109
+ editableInPropertyPage("Format", PropertyTypeForEdition.List, OutputTexturePropertiesGroupName, {
110
+ notifiers: { rebuild: true },
111
+ subPropertyName: "format",
112
+ options: [
113
+ { label: "R", value: TextureFormat.R },
114
+ { label: "RG", value: TextureFormat.RG },
115
+ { label: "RGBA", value: TextureFormat.RGBA },
116
+ ],
117
+ }),
118
+ editableInPropertyPage("Type", PropertyTypeForEdition.List, OutputTexturePropertiesGroupName, {
119
+ notifiers: { rebuild: true },
120
+ subPropertyName: "type",
121
+ options: [
122
+ { label: "UByte", value: TextureType.UNSIGNED_BYTE },
123
+ { label: "Float", value: TextureType.FLOAT },
124
+ { label: "Half Float", value: TextureType.HALF_FLOAT },
125
+ ],
126
+ })
127
+ ], ShaderBlock.prototype, "outputTextureOptions", void 0);
98
128
  //# sourceMappingURL=shaderBlock.js.map
@@ -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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"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * The format of a texture - corresponds to the Babylon.js TextureFormat constants
3
+ */
4
+ export declare enum TextureFormat {
5
+ /** Babylon Constants.TEXTUREFORMAT_RGBA */
6
+ RGBA = 5,
7
+ /** Babylon Constants.TEXTUREFORMAT_R */
8
+ R = 6,
9
+ /** Babylon Constants.TEXTUREFORMAT_RG */
10
+ RG = 7
11
+ }
12
+ /**
13
+ * The type of a texture - corresponds to the Babylon.js TextureType constants
14
+ */
15
+ export declare enum TextureType {
16
+ /** Babylon Constants.TEXTURETYPE_UNSIGNED_BYTE */
17
+ UNSIGNED_BYTE = 0,
18
+ /** Babylon Constants.TEXTURETYPE_FLOAT */
19
+ FLOAT = 1,
20
+ /** Babylon Constants.TEXTURETYPE_HALF_FLOAT */
21
+ HALF_FLOAT = 2
22
+ }
23
+ /**
24
+ * Describes the requirements for the output texture of a shader block.
25
+ */
26
+ export type OutputTextureOptions = {
27
+ /**
28
+ * The texture size ratio (output size of this block / size of the Smart Filter output)
29
+ */
30
+ ratio: number;
31
+ /**
32
+ * The format of the texture
33
+ */
34
+ format: TextureFormat;
35
+ /**
36
+ * The type of the texture
37
+ */
38
+ type: TextureType;
39
+ };
40
+ /**
41
+ * Compares two OutputTextureOptions to see if they match.
42
+ * @param a - The first OutputTextureOptions
43
+ * @param b - The second OutputTextureOptions
44
+ * @returns True if the two options match, false otherwise
45
+ */
46
+ export declare function textureOptionsMatch(a: OutputTextureOptions | undefined, b: OutputTextureOptions | undefined): boolean;
47
+ //# sourceMappingURL=textureOptions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"textureOptions.d.ts","sourceRoot":"","sources":["../../src/blocks/textureOptions.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,oBAAY,aAAa;IACrB,2CAA2C;IAC3C,IAAI,IAAI;IACR,wCAAwC;IACxC,CAAC,IAAI;IACL,yCAAyC;IACzC,EAAE,IAAI;CACT;AAED;;GAEG;AACH,oBAAY,WAAW;IACnB,kDAAkD;IAClD,aAAa,IAAI;IACjB,0CAA0C;IAC1C,KAAK,IAAI;IACT,+CAA+C;IAC/C,UAAU,IAAI;CACjB;AAGD;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG;IAC/B;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,MAAM,EAAE,aAAa,CAAC;IAEtB;;OAEG;IACH,IAAI,EAAE,WAAW,CAAC;CACrB,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,oBAAoB,GAAG,SAAS,EAAE,CAAC,EAAE,oBAAoB,GAAG,SAAS,GAAG,OAAO,CAKrH"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * The format of a texture - corresponds to the Babylon.js TextureFormat constants
3
+ */
4
+ export var TextureFormat;
5
+ (function (TextureFormat) {
6
+ /** Babylon Constants.TEXTUREFORMAT_RGBA */
7
+ TextureFormat[TextureFormat["RGBA"] = 5] = "RGBA";
8
+ /** Babylon Constants.TEXTUREFORMAT_R */
9
+ TextureFormat[TextureFormat["R"] = 6] = "R";
10
+ /** Babylon Constants.TEXTUREFORMAT_RG */
11
+ TextureFormat[TextureFormat["RG"] = 7] = "RG";
12
+ })(TextureFormat || (TextureFormat = {}));
13
+ /**
14
+ * The type of a texture - corresponds to the Babylon.js TextureType constants
15
+ */
16
+ export var TextureType;
17
+ (function (TextureType) {
18
+ /** Babylon Constants.TEXTURETYPE_UNSIGNED_BYTE */
19
+ TextureType[TextureType["UNSIGNED_BYTE"] = 0] = "UNSIGNED_BYTE";
20
+ /** Babylon Constants.TEXTURETYPE_FLOAT */
21
+ TextureType[TextureType["FLOAT"] = 1] = "FLOAT";
22
+ /** Babylon Constants.TEXTURETYPE_HALF_FLOAT */
23
+ TextureType[TextureType["HALF_FLOAT"] = 2] = "HALF_FLOAT";
24
+ })(TextureType || (TextureType = {}));
25
+ /**
26
+ * Compares two OutputTextureOptions to see if they match.
27
+ * @param a - The first OutputTextureOptions
28
+ * @param b - The second OutputTextureOptions
29
+ * @returns True if the two options match, false otherwise
30
+ */
31
+ export function textureOptionsMatch(a, b) {
32
+ if (a === undefined || b === undefined) {
33
+ return false;
34
+ }
35
+ return a.ratio === b.ratio && a.format === b.format && a.type === b.type;
36
+ }
37
+ //# sourceMappingURL=textureOptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"textureOptions.js","sourceRoot":"","sources":["../../src/blocks/textureOptions.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAN,IAAY,aAOX;AAPD,WAAY,aAAa;IACrB,2CAA2C;IAC3C,iDAAQ,CAAA;IACR,wCAAwC;IACxC,2CAAK,CAAA;IACL,yCAAyC;IACzC,6CAAM,CAAA;AACV,CAAC,EAPW,aAAa,KAAb,aAAa,QAOxB;AAED;;GAEG;AACH,MAAM,CAAN,IAAY,WAOX;AAPD,WAAY,WAAW;IACnB,kDAAkD;IAClD,+DAAiB,CAAA;IACjB,0CAA0C;IAC1C,+CAAS,CAAA;IACT,+CAA+C;IAC/C,yDAAc,CAAA;AAClB,CAAC,EAPW,WAAW,KAAX,WAAW,QAOtB;AAuBD;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,CAAmC,EAAE,CAAmC;IACxG,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC;QACrC,OAAO,KAAK,CAAC;IACjB,CAAC;IACD,OAAO,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC;AAC7E,CAAC"}
@@ -1,6 +1,5 @@
1
1
  /**
2
2
  * Represents the owner of a command.
3
- * In practice, it will mostly be a block, the smart filter or a tool injecting commands.
4
3
  */
5
4
  export interface ICommandOwner {
6
5
  /**
@@ -8,9 +7,9 @@ export interface ICommandOwner {
8
7
  */
9
8
  readonly name: string;
10
9
  /**
11
- * Gets the class name of the owner.
10
+ * The blockType of the owner;
12
11
  */
13
- getClassName(): string;
12
+ readonly blockType: string;
14
13
  }
15
14
  /**
16
15
  * Represents a the action of a @see Command. This is what will be executed during a command buffer execution.
@@ -1 +1 @@
1
- {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../src/command/command.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC1B;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,YAAY,IAAI,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC;AAEvC;;;;;;GAMG;AACH,MAAM,MAAM,OAAO,GAAG;IAClB;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;IAE9B;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;CAClC,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,aAAa,GAAG,OAAO,CAMhG"}
1
+ {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../src/command/command.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,aAAa;IAC1B;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC;AAEvC;;;;;;GAMG;AACH,MAAM,MAAM,OAAO,GAAG;IAClB;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;IAE9B;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;CAClC,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,aAAa,GAAG,OAAO,CAMhG"}
@@ -1 +1 @@
1
- {"version":3,"file":"command.js","sourceRoot":"","sources":["../../src/command/command.ts"],"names":[],"mappings":"AA8CA;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,IAAY,EAAE,KAAoB,EAAE,MAAqB;IACnF,OAAO;QACH,IAAI;QACJ,KAAK;QACL,MAAM;KACT,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"command.js","sourceRoot":"","sources":["../../src/command/command.ts"],"names":[],"mappings":"AA6CA;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,IAAY,EAAE,KAAoB,EAAE,MAAqB;IACnF,OAAO;QACH,IAAI;QACJ,KAAK;QACL,MAAM;KACT,CAAC;AACN,CAAC"}
@@ -5,7 +5,7 @@
5
5
  export function logCommands(commandBuffer) {
6
6
  console.log("----- Command buffer commands -----");
7
7
  commandBuffer.visitCommands((command) => {
8
- console.log(` Owner: ${command.owner.getClassName()} (${command.owner.name}) - Command: ${command.name}`);
8
+ console.log(` Owner: ${command.owner.blockType} (${command.owner.name}) - Command: ${command.name}`);
9
9
  });
10
10
  console.log("-----------------------------------");
11
11
  }