@onerjs/smart-filters 8.25.1 → 8.25.3

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 (251) hide show
  1. package/dist/IDisposable.d.ts +10 -0
  2. package/dist/IDisposable.d.ts.map +1 -0
  3. package/dist/IDisposable.js +2 -0
  4. package/dist/IDisposable.js.map +1 -0
  5. package/dist/blockFoundation/aggregateBlock.d.ts +56 -0
  6. package/dist/blockFoundation/aggregateBlock.d.ts.map +1 -0
  7. package/dist/blockFoundation/aggregateBlock.js +130 -0
  8. package/dist/blockFoundation/aggregateBlock.js.map +1 -0
  9. package/dist/blockFoundation/baseBlock.d.ts +176 -0
  10. package/dist/blockFoundation/baseBlock.d.ts.map +1 -0
  11. package/dist/blockFoundation/baseBlock.js +276 -0
  12. package/dist/blockFoundation/baseBlock.js.map +1 -0
  13. package/dist/blockFoundation/customAggregateBlock.d.ts +38 -0
  14. package/dist/blockFoundation/customAggregateBlock.d.ts.map +1 -0
  15. package/dist/blockFoundation/customAggregateBlock.js +63 -0
  16. package/dist/blockFoundation/customAggregateBlock.js.map +1 -0
  17. package/dist/blockFoundation/customShaderBlock.d.ts +73 -0
  18. package/dist/blockFoundation/customShaderBlock.d.ts.map +1 -0
  19. package/dist/blockFoundation/customShaderBlock.js +232 -0
  20. package/dist/blockFoundation/customShaderBlock.js.map +1 -0
  21. package/dist/blockFoundation/disableableShaderBlock.d.ts +56 -0
  22. package/dist/blockFoundation/disableableShaderBlock.d.ts.map +1 -0
  23. package/dist/blockFoundation/disableableShaderBlock.js +68 -0
  24. package/dist/blockFoundation/disableableShaderBlock.js.map +1 -0
  25. package/dist/blockFoundation/index.d.ts +10 -0
  26. package/dist/blockFoundation/index.d.ts.map +1 -0
  27. package/dist/blockFoundation/index.js +8 -0
  28. package/dist/blockFoundation/index.js.map +1 -0
  29. package/dist/blockFoundation/inputBlock.d.ts +127 -0
  30. package/dist/blockFoundation/inputBlock.d.ts.map +1 -0
  31. package/dist/blockFoundation/inputBlock.deserializer.d.ts +12 -0
  32. package/dist/blockFoundation/inputBlock.deserializer.d.ts.map +1 -0
  33. package/dist/blockFoundation/inputBlock.deserializer.js +65 -0
  34. package/dist/blockFoundation/inputBlock.deserializer.js.map +1 -0
  35. package/dist/blockFoundation/inputBlock.js +89 -0
  36. package/dist/blockFoundation/inputBlock.js.map +1 -0
  37. package/dist/blockFoundation/inputBlock.serialization.types.d.ts +105 -0
  38. package/dist/blockFoundation/inputBlock.serialization.types.d.ts.map +1 -0
  39. package/dist/blockFoundation/inputBlock.serialization.types.js +2 -0
  40. package/dist/blockFoundation/inputBlock.serialization.types.js.map +1 -0
  41. package/dist/blockFoundation/inputBlock.serializer.d.ts +6 -0
  42. package/dist/blockFoundation/inputBlock.serializer.d.ts.map +1 -0
  43. package/dist/blockFoundation/inputBlock.serializer.js +130 -0
  44. package/dist/blockFoundation/inputBlock.serializer.js.map +1 -0
  45. package/dist/blockFoundation/outputBlock.d.ts +47 -0
  46. package/dist/blockFoundation/outputBlock.d.ts.map +1 -0
  47. package/dist/blockFoundation/outputBlock.js +123 -0
  48. package/dist/blockFoundation/outputBlock.js.map +1 -0
  49. package/dist/blockFoundation/shaderBlock.d.ts +64 -0
  50. package/dist/blockFoundation/shaderBlock.d.ts.map +1 -0
  51. package/dist/blockFoundation/shaderBlock.js +125 -0
  52. package/dist/blockFoundation/shaderBlock.js.map +1 -0
  53. package/dist/blockFoundation/textureOptions.d.ts +47 -0
  54. package/dist/blockFoundation/textureOptions.d.ts.map +1 -0
  55. package/dist/blockFoundation/textureOptions.js +37 -0
  56. package/dist/blockFoundation/textureOptions.js.map +1 -0
  57. package/dist/command/command.d.ts +48 -0
  58. package/dist/command/command.d.ts.map +1 -0
  59. package/dist/command/command.js +15 -0
  60. package/dist/command/command.js.map +1 -0
  61. package/dist/command/commandBuffer.d.ts +40 -0
  62. package/dist/command/commandBuffer.d.ts.map +1 -0
  63. package/dist/command/commandBuffer.js +58 -0
  64. package/dist/command/commandBuffer.js.map +1 -0
  65. package/dist/command/commandBufferDebugger.d.ts +7 -0
  66. package/dist/command/commandBufferDebugger.d.ts.map +1 -0
  67. package/dist/command/commandBufferDebugger.js +13 -0
  68. package/dist/command/commandBufferDebugger.js.map +1 -0
  69. package/dist/command/index.d.ts +6 -0
  70. package/dist/command/index.d.ts.map +1 -0
  71. package/dist/command/index.js +8 -0
  72. package/dist/command/index.js.map +1 -0
  73. package/dist/connection/connectionPoint.d.ts +110 -0
  74. package/dist/connection/connectionPoint.d.ts.map +1 -0
  75. package/dist/connection/connectionPoint.js +154 -0
  76. package/dist/connection/connectionPoint.js.map +1 -0
  77. package/dist/connection/connectionPointCompatibilityState.d.ts +20 -0
  78. package/dist/connection/connectionPointCompatibilityState.d.ts.map +1 -0
  79. package/dist/connection/connectionPointCompatibilityState.js +32 -0
  80. package/dist/connection/connectionPointCompatibilityState.js.map +1 -0
  81. package/dist/connection/connectionPointDirection.d.ts +10 -0
  82. package/dist/connection/connectionPointDirection.d.ts.map +1 -0
  83. package/dist/connection/connectionPointDirection.js +11 -0
  84. package/dist/connection/connectionPointDirection.js.map +1 -0
  85. package/dist/connection/connectionPointType.d.ts +29 -0
  86. package/dist/connection/connectionPointType.d.ts.map +1 -0
  87. package/dist/connection/connectionPointType.js +19 -0
  88. package/dist/connection/connectionPointType.js.map +1 -0
  89. package/dist/connection/connectionPointWithDefault.d.ts +23 -0
  90. package/dist/connection/connectionPointWithDefault.d.ts.map +1 -0
  91. package/dist/connection/connectionPointWithDefault.js +19 -0
  92. package/dist/connection/connectionPointWithDefault.js.map +1 -0
  93. package/dist/connection/index.d.ts +8 -0
  94. package/dist/connection/index.d.ts.map +1 -0
  95. package/dist/connection/index.js +7 -0
  96. package/dist/connection/index.js.map +1 -0
  97. package/dist/editorUtils/editableInPropertyPage.d.ts +80 -0
  98. package/dist/editorUtils/editableInPropertyPage.d.ts.map +1 -0
  99. package/dist/editorUtils/editableInPropertyPage.js +42 -0
  100. package/dist/editorUtils/editableInPropertyPage.js.map +1 -0
  101. package/dist/editorUtils/index.d.ts +3 -0
  102. package/dist/editorUtils/index.d.ts.map +1 -0
  103. package/dist/editorUtils/index.js +4 -0
  104. package/dist/editorUtils/index.js.map +1 -0
  105. package/dist/index.d.ts +13 -0
  106. package/dist/index.d.ts.map +1 -0
  107. package/dist/index.js +14 -0
  108. package/dist/index.js.map +1 -0
  109. package/dist/optimization/dependencyGraph.d.ts +31 -0
  110. package/dist/optimization/dependencyGraph.d.ts.map +1 -0
  111. package/dist/optimization/dependencyGraph.js +78 -0
  112. package/dist/optimization/dependencyGraph.js.map +1 -0
  113. package/dist/optimization/index.d.ts +2 -0
  114. package/dist/optimization/index.d.ts.map +1 -0
  115. package/dist/optimization/index.js +2 -0
  116. package/dist/optimization/index.js.map +1 -0
  117. package/dist/optimization/optimizedShaderBlock.d.ts +75 -0
  118. package/dist/optimization/optimizedShaderBlock.d.ts.map +1 -0
  119. package/dist/optimization/optimizedShaderBlock.js +105 -0
  120. package/dist/optimization/optimizedShaderBlock.js.map +1 -0
  121. package/dist/optimization/smartFilterOptimizer.d.ts +126 -0
  122. package/dist/optimization/smartFilterOptimizer.d.ts.map +1 -0
  123. package/dist/optimization/smartFilterOptimizer.js +666 -0
  124. package/dist/optimization/smartFilterOptimizer.js.map +1 -0
  125. package/dist/runtime/index.d.ts +8 -0
  126. package/dist/runtime/index.d.ts.map +1 -0
  127. package/dist/runtime/index.js +7 -0
  128. package/dist/runtime/index.js.map +1 -0
  129. package/dist/runtime/renderTargetGenerator.d.ts +43 -0
  130. package/dist/runtime/renderTargetGenerator.d.ts.map +1 -0
  131. package/dist/runtime/renderTargetGenerator.js +169 -0
  132. package/dist/runtime/renderTargetGenerator.js.map +1 -0
  133. package/dist/runtime/shaderRuntime.d.ts +103 -0
  134. package/dist/runtime/shaderRuntime.d.ts.map +1 -0
  135. package/dist/runtime/shaderRuntime.js +132 -0
  136. package/dist/runtime/shaderRuntime.js.map +1 -0
  137. package/dist/runtime/smartFilterRuntime.d.ts +69 -0
  138. package/dist/runtime/smartFilterRuntime.d.ts.map +1 -0
  139. package/dist/runtime/smartFilterRuntime.js +63 -0
  140. package/dist/runtime/smartFilterRuntime.js.map +1 -0
  141. package/dist/runtime/strongRef.d.ts +16 -0
  142. package/dist/runtime/strongRef.d.ts.map +1 -0
  143. package/dist/runtime/strongRef.js +9 -0
  144. package/dist/runtime/strongRef.js.map +1 -0
  145. package/dist/serialization/importCustomBlockDefinition.d.ts +15 -0
  146. package/dist/serialization/importCustomBlockDefinition.d.ts.map +1 -0
  147. package/dist/serialization/importCustomBlockDefinition.js +76 -0
  148. package/dist/serialization/importCustomBlockDefinition.js.map +1 -0
  149. package/dist/serialization/index.d.ts +9 -0
  150. package/dist/serialization/index.d.ts.map +1 -0
  151. package/dist/serialization/index.js +11 -0
  152. package/dist/serialization/index.js.map +1 -0
  153. package/dist/serialization/serializedBlockDefinition.d.ts +12 -0
  154. package/dist/serialization/serializedBlockDefinition.d.ts.map +1 -0
  155. package/dist/serialization/serializedBlockDefinition.js +2 -0
  156. package/dist/serialization/serializedBlockDefinition.js.map +1 -0
  157. package/dist/serialization/serializedShaderBlockDefinition.d.ts +7 -0
  158. package/dist/serialization/serializedShaderBlockDefinition.d.ts.map +1 -0
  159. package/dist/serialization/serializedShaderBlockDefinition.js +2 -0
  160. package/dist/serialization/serializedShaderBlockDefinition.js.map +1 -0
  161. package/dist/serialization/serializedSmartFilter.d.ts +6 -0
  162. package/dist/serialization/serializedSmartFilter.d.ts.map +1 -0
  163. package/dist/serialization/serializedSmartFilter.js +2 -0
  164. package/dist/serialization/serializedSmartFilter.js.map +1 -0
  165. package/dist/serialization/smartFilterDeserializer.d.ts +34 -0
  166. package/dist/serialization/smartFilterDeserializer.d.ts.map +1 -0
  167. package/dist/serialization/smartFilterDeserializer.js +141 -0
  168. package/dist/serialization/smartFilterDeserializer.js.map +1 -0
  169. package/dist/serialization/smartFilterSerializer.d.ts +23 -0
  170. package/dist/serialization/smartFilterSerializer.d.ts.map +1 -0
  171. package/dist/serialization/smartFilterSerializer.js +95 -0
  172. package/dist/serialization/smartFilterSerializer.js.map +1 -0
  173. package/dist/serialization/v1/defaultBlockSerializer.d.ts +9 -0
  174. package/dist/serialization/v1/defaultBlockSerializer.d.ts.map +1 -0
  175. package/dist/serialization/v1/defaultBlockSerializer.js +19 -0
  176. package/dist/serialization/v1/defaultBlockSerializer.js.map +1 -0
  177. package/dist/serialization/v1/index.d.ts +4 -0
  178. package/dist/serialization/v1/index.d.ts.map +1 -0
  179. package/dist/serialization/v1/index.js +5 -0
  180. package/dist/serialization/v1/index.js.map +1 -0
  181. package/dist/serialization/v1/shaderBlockSerialization.types.d.ts +73 -0
  182. package/dist/serialization/v1/shaderBlockSerialization.types.d.ts.map +1 -0
  183. package/dist/serialization/v1/shaderBlockSerialization.types.js +7 -0
  184. package/dist/serialization/v1/shaderBlockSerialization.types.js.map +1 -0
  185. package/dist/serialization/v1/smartFilterSerialization.types.d.ts +98 -0
  186. package/dist/serialization/v1/smartFilterSerialization.types.d.ts.map +1 -0
  187. package/dist/serialization/v1/smartFilterSerialization.types.js +2 -0
  188. package/dist/serialization/v1/smartFilterSerialization.types.js.map +1 -0
  189. package/dist/smartFilter.d.ts +118 -0
  190. package/dist/smartFilter.d.ts.map +1 -0
  191. package/dist/smartFilter.js +169 -0
  192. package/dist/smartFilter.js.map +1 -0
  193. package/dist/utils/buildTools/buildShaders.d.ts +9 -0
  194. package/dist/utils/buildTools/buildShaders.d.ts.map +1 -0
  195. package/dist/utils/buildTools/buildShaders.js +13 -0
  196. package/dist/utils/buildTools/buildShaders.js.map +1 -0
  197. package/dist/utils/buildTools/convertGlslIntoBlock.d.ts +9 -0
  198. package/dist/utils/buildTools/convertGlslIntoBlock.d.ts.map +1 -0
  199. package/dist/utils/buildTools/convertGlslIntoBlock.js +346 -0
  200. package/dist/utils/buildTools/convertGlslIntoBlock.js.map +1 -0
  201. package/dist/utils/buildTools/convertGlslIntoShaderProgram.d.ts +26 -0
  202. package/dist/utils/buildTools/convertGlslIntoShaderProgram.d.ts.map +1 -0
  203. package/dist/utils/buildTools/convertGlslIntoShaderProgram.js +141 -0
  204. package/dist/utils/buildTools/convertGlslIntoShaderProgram.js.map +1 -0
  205. package/dist/utils/buildTools/convertShaders.d.ts +16 -0
  206. package/dist/utils/buildTools/convertShaders.d.ts.map +1 -0
  207. package/dist/utils/buildTools/convertShaders.js +62 -0
  208. package/dist/utils/buildTools/convertShaders.js.map +1 -0
  209. package/dist/utils/buildTools/shaderCode.types.d.ts +51 -0
  210. package/dist/utils/buildTools/shaderCode.types.d.ts.map +1 -0
  211. package/dist/utils/buildTools/shaderCode.types.js +2 -0
  212. package/dist/utils/buildTools/shaderCode.types.js.map +1 -0
  213. package/dist/utils/buildTools/shaderConverter.d.ts +77 -0
  214. package/dist/utils/buildTools/shaderConverter.d.ts.map +1 -0
  215. package/dist/utils/buildTools/shaderConverter.js +297 -0
  216. package/dist/utils/buildTools/shaderConverter.js.map +1 -0
  217. package/dist/utils/buildTools/watchShaders.d.ts +9 -0
  218. package/dist/utils/buildTools/watchShaders.d.ts.map +1 -0
  219. package/dist/utils/buildTools/watchShaders.js +39 -0
  220. package/dist/utils/buildTools/watchShaders.js.map +1 -0
  221. package/dist/utils/index.d.ts +4 -0
  222. package/dist/utils/index.d.ts.map +1 -0
  223. package/dist/utils/index.js +4 -0
  224. package/dist/utils/index.js.map +1 -0
  225. package/dist/utils/renderTargetUtils.d.ts +14 -0
  226. package/dist/utils/renderTargetUtils.d.ts.map +1 -0
  227. package/dist/utils/renderTargetUtils.js +23 -0
  228. package/dist/utils/renderTargetUtils.js.map +1 -0
  229. package/dist/utils/shaderCodeUtils.d.ts +91 -0
  230. package/dist/utils/shaderCodeUtils.d.ts.map +1 -0
  231. package/dist/utils/shaderCodeUtils.js +111 -0
  232. package/dist/utils/shaderCodeUtils.js.map +1 -0
  233. package/dist/utils/textureLoaders.d.ts +16 -0
  234. package/dist/utils/textureLoaders.d.ts.map +1 -0
  235. package/dist/utils/textureLoaders.js +22 -0
  236. package/dist/utils/textureLoaders.js.map +1 -0
  237. package/dist/utils/textureUtils.d.ts +13 -0
  238. package/dist/utils/textureUtils.d.ts.map +1 -0
  239. package/dist/utils/textureUtils.js +25 -0
  240. package/dist/utils/textureUtils.js.map +1 -0
  241. package/dist/utils/uniqueIdGenerator.d.ts +19 -0
  242. package/dist/utils/uniqueIdGenerator.d.ts.map +1 -0
  243. package/dist/utils/uniqueIdGenerator.js +27 -0
  244. package/dist/utils/uniqueIdGenerator.js.map +1 -0
  245. package/dist/version.d.ts +5 -0
  246. package/dist/version.d.ts.map +1 -0
  247. package/dist/version.js +5 -0
  248. package/dist/version.js.map +1 -0
  249. package/package.json +1 -1
  250. package/src/optimization/smartFilterOptimizer.ts +305 -158
  251. package/src/version.ts +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"smartFilterOptimizer.js","sourceRoot":"","sources":["../../src/optimization/smartFilterOptimizer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export { type StrongRef } from "./strongRef.js";
2
+ export { CreateStrongRef } from "./strongRef.js";
3
+ export { CreateStrongRef as createStrongRef } from "./strongRef.js";
4
+ export { DisableableShaderBinding, ShaderBinding, ShaderRuntime } from "./shaderRuntime.js";
5
+ export { type SmartFilterRuntime } from "./smartFilterRuntime.js";
6
+ export { InternalSmartFilterRuntime } from "./smartFilterRuntime.js";
7
+ export { RenderTargetGenerator } from "./renderTargetGenerator.js";
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEjD,OAAO,EAAE,eAAe,IAAI,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACpE,OAAO,EAAE,wBAAwB,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC5F,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC"}
@@ -0,0 +1,7 @@
1
+ export { CreateStrongRef } from "./strongRef.js";
2
+ // Back compat for when camelCase was used
3
+ export { CreateStrongRef as createStrongRef } from "./strongRef.js";
4
+ export { DisableableShaderBinding, ShaderBinding, ShaderRuntime } from "./shaderRuntime.js";
5
+ export { InternalSmartFilterRuntime } from "./smartFilterRuntime.js";
6
+ export { RenderTargetGenerator } from "./renderTargetGenerator.js";
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,0CAA0C;AAC1C,OAAO,EAAE,eAAe,IAAI,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACpE,OAAO,EAAE,wBAAwB,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAE5F,OAAO,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC"}
@@ -0,0 +1,43 @@
1
+ import type { InitializationData, SmartFilter } from "../smartFilter.js";
2
+ /**
3
+ * The render target generator is responsible for creating and assigning render targets to ShaderBlocks.
4
+ */
5
+ export declare class RenderTargetGenerator {
6
+ private _optimize;
7
+ private _renderTargetPool;
8
+ private _textureOptionsHashCache;
9
+ private _numTargetsCreated;
10
+ /**
11
+ * Creates a new render target generator.
12
+ * @param optimize - If true, the render target generator will try to reuse render targets as much as possible.
13
+ */
14
+ constructor(optimize?: boolean);
15
+ /**
16
+ * Returns the number of render targets created by the process
17
+ */
18
+ get numTargetsCreated(): number;
19
+ /**
20
+ * Sets the output textures for the ShaderBlocks of the smart filter.
21
+ * @param smartFilter - The smart filter to generate the render targets for.
22
+ * @param initializationData - The initialization data to use.
23
+ */
24
+ setOutputTextures(smartFilter: SmartFilter, initializationData: InitializationData): void;
25
+ private _findAvailableTexture;
26
+ private _getTexture;
27
+ private _releaseTexture;
28
+ /**
29
+ * Creates an offscreen texture to hold on the result of the block rendering.
30
+ * @param runtime - The current runtime we create the texture for
31
+ * @param smartFilter - The smart filter the texture is created for
32
+ * @param textureOptions - The options to use to create the texture
33
+ * @returns The render target texture
34
+ */
35
+ private _createTexture;
36
+ /**
37
+ * Gets a textureOptionsHash for a block, using a cache to avoid recomputing it.
38
+ * @param block - The block to get the texture options hash for
39
+ * @returns The texture options hash for the block
40
+ */
41
+ private _getTextureOptionsHash;
42
+ }
43
+ //# sourceMappingURL=renderTargetGenerator.d.ts.map
@@ -0,0 +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,mBAAmB,CAAC;AAuBzE;;GAEG;AACH,qBAAa,qBAAqB;IAC9B,OAAO,CAAC,SAAS,CAAU;IAC3B,OAAO,CAAC,iBAAiB,CAAuC;IAChE,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;IAgDzF,OAAO,CAAC,qBAAqB;IAe7B,OAAO,CAAC,WAAW;IA4BnB,OAAO,CAAC,eAAe;IAoBvB;;;;;;OAMG;IACH,OAAO,CAAC,cAAc;IA6BtB;;;;OAIG;IACH,OAAO,CAAC,sBAAsB;CAQjC"}
@@ -0,0 +1,169 @@
1
+ import { ThinRenderTargetTexture } from "@onerjs/core/Materials/Textures/thinRenderTargetTexture.js";
2
+ import { ShaderBlock } from "../blockFoundation/shaderBlock.js";
3
+ import { CreateStrongRef } from "./strongRef.js";
4
+ import { ConnectionPointType } from "../connection/connectionPointType.js";
5
+ import { GetBlockOutputTextureSize } from "../utils/textureUtils.js";
6
+ /**
7
+ * The render target generator is responsible for creating and assigning render targets to ShaderBlocks.
8
+ */
9
+ export class RenderTargetGenerator {
10
+ /**
11
+ * Creates a new render target generator.
12
+ * @param optimize - If true, the render target generator will try to reuse render targets as much as possible.
13
+ */
14
+ constructor(optimize = true) {
15
+ this._textureOptionsHashCache = new Map();
16
+ this._optimize = optimize;
17
+ this._renderTargetPool = new Map();
18
+ this._numTargetsCreated = 0;
19
+ }
20
+ /**
21
+ * Returns the number of render targets created by the process
22
+ */
23
+ get numTargetsCreated() {
24
+ return this._numTargetsCreated;
25
+ }
26
+ /**
27
+ * Sets the output textures for the ShaderBlocks of the smart filter.
28
+ * @param smartFilter - The smart filter to generate the render targets for.
29
+ * @param initializationData - The initialization data to use.
30
+ */
31
+ setOutputTextures(smartFilter, initializationData) {
32
+ smartFilter.output.ownerBlock.visit(initializationData, (block, initializationData) => {
33
+ if (!(block instanceof ShaderBlock)) {
34
+ return;
35
+ }
36
+ let refCountedTexture = null;
37
+ const textureOptionsHash = this._getTextureOptionsHash(block);
38
+ // We assign a texture to the output of the block only if this is not the last block in the chain,
39
+ // i.e. not the block connected to the smart output block (in which case the output of the block is to the canvas and not a texture).
40
+ if (!block.output.endpoints.some((cp) => cp.ownerBlock === smartFilter.output.ownerBlock)) {
41
+ refCountedTexture = this._getTexture(initializationData.runtime, block.outputTextureOptions, textureOptionsHash, smartFilter);
42
+ if (!block.output.runtimeData) {
43
+ const runtimeOutput = CreateStrongRef(refCountedTexture.texture);
44
+ block.output.runtimeData = runtimeOutput;
45
+ }
46
+ else {
47
+ block.output.runtimeData.value = refCountedTexture.texture;
48
+ }
49
+ }
50
+ if (this._optimize) {
51
+ if (refCountedTexture !== null) {
52
+ for (const output of block.outputs) {
53
+ output.endpoints.forEach((endpoint) => {
54
+ if (endpoint.connectedTo) {
55
+ refCountedTexture.refCount++;
56
+ }
57
+ });
58
+ }
59
+ }
60
+ for (const input of block.inputs) {
61
+ if (!input.connectedTo || input.connectedTo.type !== ConnectionPointType.Texture) {
62
+ continue;
63
+ }
64
+ const connectedBlock = input.connectedTo.ownerBlock;
65
+ if (connectedBlock instanceof ShaderBlock && connectedBlock.output.runtimeData && connectedBlock.output.runtimeData.value) {
66
+ this._releaseTexture(connectedBlock.output.runtimeData.value, this._getTextureOptionsHash(connectedBlock));
67
+ }
68
+ }
69
+ }
70
+ });
71
+ this._renderTargetPool.clear();
72
+ this._textureOptionsHashCache.clear();
73
+ }
74
+ _findAvailableTexture(textureOptionsHash) {
75
+ const refCountedTextures = this._renderTargetPool.get(textureOptionsHash);
76
+ if (!refCountedTextures) {
77
+ return null;
78
+ }
79
+ for (const refCountedTexture of refCountedTextures) {
80
+ if (refCountedTexture.refCount === 0) {
81
+ return refCountedTexture;
82
+ }
83
+ }
84
+ return null;
85
+ }
86
+ _getTexture(runtime, textureOptions, textureOptionsHash, smartFilter) {
87
+ if (!this._optimize) {
88
+ this._numTargetsCreated++;
89
+ return {
90
+ texture: this._createTexture(runtime, smartFilter, textureOptions),
91
+ refCount: 0,
92
+ };
93
+ }
94
+ let refCountedTextures = this._renderTargetPool.get(textureOptionsHash);
95
+ if (!refCountedTextures) {
96
+ refCountedTextures = new Set();
97
+ this._renderTargetPool.set(textureOptionsHash, refCountedTextures);
98
+ }
99
+ let refCountedTexture = this._findAvailableTexture(textureOptionsHash);
100
+ if (!refCountedTexture) {
101
+ refCountedTexture = {
102
+ texture: this._createTexture(runtime, smartFilter, textureOptions),
103
+ refCount: 0,
104
+ };
105
+ refCountedTextures.add(refCountedTexture);
106
+ this._numTargetsCreated++;
107
+ }
108
+ return refCountedTexture;
109
+ }
110
+ _releaseTexture(texture, textureOptionsHash) {
111
+ if (!this._optimize) {
112
+ return;
113
+ }
114
+ const refCountedTextures = this._renderTargetPool.get(textureOptionsHash);
115
+ if (!refCountedTextures) {
116
+ throw new Error(`_releaseTexture: Trying to release a texture from a non existing pool ${textureOptionsHash}!`);
117
+ }
118
+ for (const refCountedTexture of refCountedTextures) {
119
+ if (refCountedTexture.texture === texture) {
120
+ refCountedTexture.refCount--;
121
+ return;
122
+ }
123
+ }
124
+ throw new Error(`_releaseTexture: Can't find the texture in the pool ${textureOptionsHash}!`);
125
+ }
126
+ /**
127
+ * Creates an offscreen texture to hold on the result of the block rendering.
128
+ * @param runtime - The current runtime we create the texture for
129
+ * @param smartFilter - The smart filter the texture is created for
130
+ * @param textureOptions - The options to use to create the texture
131
+ * @returns The render target texture
132
+ */
133
+ _createTexture(runtime, smartFilter, textureOptions) {
134
+ const engine = runtime.engine;
135
+ // We are only rendering full screen post process without depth or stencil information
136
+ const setup = {
137
+ generateDepthBuffer: false,
138
+ generateStencilBuffer: false,
139
+ generateMipMaps: false,
140
+ samplingMode: 2, // Babylon Constants.TEXTURE_LINEAR_LINEAR,
141
+ format: textureOptions.format,
142
+ type: textureOptions.type,
143
+ };
144
+ // Get the smartFilter output size - either from the output block's renderTargetTexture or the engine's render size
145
+ const size = GetBlockOutputTextureSize(smartFilter, engine, textureOptions);
146
+ // Creates frame buffers for effects
147
+ const finalRenderTarget = new ThinRenderTargetTexture(engine, size, setup);
148
+ runtime.registerResource(finalRenderTarget);
149
+ // Babylon Constants.TEXTURE_CLAMP_ADDRESSMODE; NPOT Friendly
150
+ finalRenderTarget.wrapU = 0;
151
+ finalRenderTarget.wrapV = 0;
152
+ finalRenderTarget.anisotropicFilteringLevel = 1;
153
+ return finalRenderTarget;
154
+ }
155
+ /**
156
+ * Gets a textureOptionsHash for a block, using a cache to avoid recomputing it.
157
+ * @param block - The block to get the texture options hash for
158
+ * @returns The texture options hash for the block
159
+ */
160
+ _getTextureOptionsHash(block) {
161
+ let textureOptionsHash = this._textureOptionsHashCache.get(block);
162
+ if (textureOptionsHash === undefined) {
163
+ textureOptionsHash = JSON.stringify(block.outputTextureOptions);
164
+ this._textureOptionsHashCache.set(block, textureOptionsHash);
165
+ }
166
+ return textureOptionsHash;
167
+ }
168
+ }
169
+ //# sourceMappingURL=renderTargetGenerator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderTargetGenerator.js","sourceRoot":"","sources":["../../src/runtime/renderTargetGenerator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,103 @@
1
+ import type { EffectRenderer } from "@onerjs/core/Materials/effectRenderer.js";
2
+ import type { Effect } from "@onerjs/core/Materials/effect.js";
3
+ import type { ThinRenderTargetTexture } from "@onerjs/core/Materials/Textures/thinRenderTargetTexture.js";
4
+ import type { IDisposable } from "../IDisposable.js";
5
+ import type { ShaderProgram } from "../utils/shaderCodeUtils.js";
6
+ import type { IDisableableBlock } from "../blockFoundation/disableableShaderBlock.js";
7
+ import type { OutputBlock } from "../blockFoundation/outputBlock.js";
8
+ /**
9
+ * The shader bindings for a ShaderBlock that can't be disabled.
10
+ */
11
+ export declare abstract class ShaderBinding {
12
+ /**
13
+ * Binds all the required data to the shader when rendering.
14
+ * Overridden by derived classes.
15
+ * @param effect - defines the effect to bind the data to
16
+ * @param width - defines the width of the output
17
+ * @param height - defines the height of the output
18
+ */
19
+ abstract bind(effect: Effect, width?: number, height?: number): void;
20
+ private _remappedShaderVariables;
21
+ /**
22
+ * Gets the remapped shader variable name.
23
+ * @param variableName - The variable name
24
+ * @returns The remapped variable name
25
+ */
26
+ getRemappedName(variableName: string): string;
27
+ /**
28
+ * Sets the remapped shader variables.
29
+ * @param variableName - defines the variable name to remap
30
+ * @param remappedName - defines the remapped name
31
+ */
32
+ addShaderVariableRemapping(variableName: string, remappedName: string): void;
33
+ }
34
+ /**
35
+ * The shader bindings for a disableable ShaderBlock.
36
+ */
37
+ export declare abstract class DisableableShaderBinding extends ShaderBinding {
38
+ private _disabled;
39
+ /**
40
+ * Construct a ShaderBinding instance.
41
+ * @param parentBlock - The parent block
42
+ */
43
+ constructor(parentBlock: IDisableableBlock);
44
+ /**
45
+ * Binds all the required data to the shader when rendering.
46
+ * @param effect - defines the effect to bind the data to
47
+ * @param _width - defines the width of the output
48
+ * @param _height - defines the height of the output
49
+ */
50
+ bind(effect: Effect, _width?: number, _height?: number): void;
51
+ }
52
+ /**
53
+ * The shader runtime is the base for any runtime associated with a @see ShaderBlock.
54
+ *
55
+ * It encapsulates the basic needs to render a full screen effect mainly the effect wrapper holding on the shader program.
56
+ *
57
+ * It is able to either render to a texture or directly to the main canvas.
58
+ *
59
+ * It also manages the disposal of the effect wrapper.
60
+ */
61
+ export declare class ShaderRuntime implements IDisposable {
62
+ /**
63
+ * Promise that resolves when the effect is ready to be used.
64
+ */
65
+ readonly onReadyAsync: Promise<void>;
66
+ private readonly _engine;
67
+ private readonly _effectRenderer;
68
+ private readonly _effectWrapper;
69
+ private readonly _shaderBinding;
70
+ /**
71
+ * Creates a new @see ShaderRuntime.
72
+ * @param effectRenderer - defines the effect renderer to use to render the full screen effect
73
+ * @param shaderProgram - defines the shader code associated with this runtime
74
+ * @param shaderBinding - defines the shader bindings associated with this runtime
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;
82
+ /**
83
+ * Renders the full screen effect into a texture.
84
+ * @param renderTargetTexture - The render target texture to render into
85
+ */
86
+ renderToTargetTexture(renderTargetTexture: ThinRenderTargetTexture): void;
87
+ private _renderToTargetWrapper;
88
+ /**
89
+ * Renders the full screen effect into the main canvas.
90
+ */
91
+ renderToCanvas(): void;
92
+ /**
93
+ * "Draws" the full screen effect into the currently bound output.
94
+ * @param width - defines the width of the output
95
+ * @param height - defines the height of the output
96
+ */
97
+ private _draw;
98
+ /**
99
+ * Disposes the runtime resources.
100
+ */
101
+ dispose(): void;
102
+ }
103
+ //# sourceMappingURL=shaderRuntime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shaderRuntime.d.ts","sourceRoot":"","sources":["../../src/runtime/shaderRuntime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,iDAAyC;AAGvE,OAAO,KAAK,EAAE,MAAM,EAAE,yCAAiC;AAEvD,OAAO,KAAK,EAAE,uBAAuB,EAAE,mEAA2D;AAElG,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAEjE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8CAA8C,CAAC;AAEtF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAC;AAErE;;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;IAsBtG;;;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"}
@@ -0,0 +1,132 @@
1
+ import { EffectWrapper } from "@onerjs/core/Materials/effectRenderer.js";
2
+ import { CreateStrongRef } from "./strongRef.js";
3
+ import { DecorateSymbol, DisableUniform, GetShaderCreateOptions } from "../utils/shaderCodeUtils.js";
4
+ /**
5
+ * The shader bindings for a ShaderBlock that can't be disabled.
6
+ */
7
+ export class ShaderBinding {
8
+ constructor() {
9
+ this._remappedShaderVariables = {};
10
+ }
11
+ /**
12
+ * Gets the remapped shader variable name.
13
+ * @param variableName - The variable name
14
+ * @returns The remapped variable name
15
+ */
16
+ getRemappedName(variableName) {
17
+ variableName = DecorateSymbol(variableName);
18
+ return this._remappedShaderVariables[variableName] ?? variableName;
19
+ }
20
+ /**
21
+ * Sets the remapped shader variables.
22
+ * @param variableName - defines the variable name to remap
23
+ * @param remappedName - defines the remapped name
24
+ */
25
+ addShaderVariableRemapping(variableName, remappedName) {
26
+ this._remappedShaderVariables[variableName] = remappedName;
27
+ }
28
+ }
29
+ /**
30
+ * The shader bindings for a disableable ShaderBlock.
31
+ */
32
+ export class DisableableShaderBinding extends ShaderBinding {
33
+ /**
34
+ * Construct a ShaderBinding instance.
35
+ * @param parentBlock - The parent block
36
+ */
37
+ constructor(parentBlock) {
38
+ super();
39
+ this._disabled = parentBlock.disabled?.runtimeData || CreateStrongRef(false);
40
+ }
41
+ /**
42
+ * Binds all the required data to the shader when rendering.
43
+ * @param effect - defines the effect to bind the data to
44
+ * @param _width - defines the width of the output
45
+ * @param _height - defines the height of the output
46
+ */
47
+ bind(effect, _width, _height) {
48
+ effect.setBool(this.getRemappedName(DisableUniform), this._disabled.value);
49
+ }
50
+ }
51
+ /**
52
+ * The shader runtime is the base for any runtime associated with a @see ShaderBlock.
53
+ *
54
+ * It encapsulates the basic needs to render a full screen effect mainly the effect wrapper holding on the shader program.
55
+ *
56
+ * It is able to either render to a texture or directly to the main canvas.
57
+ *
58
+ * It also manages the disposal of the effect wrapper.
59
+ */
60
+ export class ShaderRuntime {
61
+ /**
62
+ * Creates a new @see ShaderRuntime.
63
+ * @param effectRenderer - defines the effect renderer to use to render the full screen effect
64
+ * @param shaderProgram - defines the shader code associated with this runtime
65
+ * @param shaderBinding - defines the shader bindings associated with this runtime
66
+ */
67
+ constructor(effectRenderer, shaderProgram, shaderBinding) {
68
+ this._engine = effectRenderer.engine;
69
+ this._effectRenderer = effectRenderer;
70
+ this._shaderBinding = shaderBinding;
71
+ this._effectWrapper = new EffectWrapper({
72
+ engine: this._engine,
73
+ ...GetShaderCreateOptions(shaderProgram),
74
+ });
75
+ // Wraps the effect readiness in a promise to expose it as a public property.
76
+ this.onReadyAsync = new Promise((resolve, reject) => {
77
+ this._effectWrapper.effect.executeWhenCompiled(() => {
78
+ resolve();
79
+ });
80
+ this._effectWrapper.effect.onErrorObservable.addOnce((error) => {
81
+ // eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors
82
+ reject(error);
83
+ });
84
+ });
85
+ }
86
+ /**
87
+ * Renders the full screen effect into a render target.
88
+ * @param outputBlock - The output block to render to - assumes it has a .renderTargetWrapper
89
+ */
90
+ renderToTargetWrapper(outputBlock) {
91
+ this._renderToTargetWrapper(outputBlock.renderTargetWrapper);
92
+ }
93
+ /**
94
+ * Renders the full screen effect into a texture.
95
+ * @param renderTargetTexture - The render target texture to render into
96
+ */
97
+ renderToTargetTexture(renderTargetTexture) {
98
+ const renderTargetWrapper = renderTargetTexture.renderTarget;
99
+ if (renderTargetWrapper) {
100
+ this._renderToTargetWrapper(renderTargetWrapper);
101
+ }
102
+ }
103
+ _renderToTargetWrapper(renderTargetWrapper) {
104
+ this._engine.bindFramebuffer(renderTargetWrapper);
105
+ this._draw(renderTargetWrapper.width, renderTargetWrapper.height);
106
+ this._engine.unBindFramebuffer(renderTargetWrapper);
107
+ }
108
+ /**
109
+ * Renders the full screen effect into the main canvas.
110
+ */
111
+ renderToCanvas() {
112
+ this._effectRenderer.setViewport();
113
+ this._draw(this._engine.getRenderWidth(), this._engine.getRenderHeight());
114
+ }
115
+ /**
116
+ * "Draws" the full screen effect into the currently bound output.
117
+ * @param width - defines the width of the output
118
+ * @param height - defines the height of the output
119
+ */
120
+ _draw(width, height) {
121
+ this._effectRenderer.applyEffectWrapper(this._effectWrapper);
122
+ this._shaderBinding.bind(this._effectWrapper.effect, width, height);
123
+ this._effectRenderer.draw();
124
+ }
125
+ /**
126
+ * Disposes the runtime resources.
127
+ */
128
+ dispose() {
129
+ this._effectWrapper.dispose();
130
+ }
131
+ }
132
+ //# sourceMappingURL=shaderRuntime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shaderRuntime.js","sourceRoot":"","sources":["../../src/runtime/shaderRuntime.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,69 @@
1
+ import { EffectRenderer } from "@onerjs/core/Materials/effectRenderer.js";
2
+ import type { ThinEngine } from "@onerjs/core/Engines/thinEngine.js";
3
+ import { CommandBuffer } from "../command/commandBuffer.js";
4
+ import type { IDisposable } from "../IDisposable.js";
5
+ import type { Command } from "../command/command.js";
6
+ /**
7
+ * A runtime is a snapshot of a smart filter containing all the
8
+ * required data to render it as well as the entire command buffer.
9
+ */
10
+ export type SmartFilterRuntime = {
11
+ /**
12
+ * The command buffer containing all the commands to execute during a frame.
13
+ */
14
+ readonly commandBuffer: Readonly<CommandBuffer>;
15
+ /**
16
+ * Renders one frame of the smart filter.
17
+ */
18
+ render(): void;
19
+ /**
20
+ * Dispose the runtime and all its associated resources
21
+ */
22
+ dispose(): void;
23
+ };
24
+ /**
25
+ * The internal runtime implementation exposing more information than @see SmartFilterRuntime.
26
+ * This is used internally to render the smart filter.
27
+ *
28
+ * It is not fully exposed publicly to prevent any misuse of the runtime.
29
+ */
30
+ export declare class InternalSmartFilterRuntime implements SmartFilterRuntime {
31
+ /**
32
+ * The engine used by the smart filter.
33
+ */
34
+ readonly engine: ThinEngine;
35
+ /**
36
+ * The effect renderer used by the smart filter.
37
+ */
38
+ readonly effectRenderer: EffectRenderer;
39
+ /**
40
+ * The command buffer containing all the commands to execute during a frame.
41
+ */
42
+ readonly commandBuffer: CommandBuffer;
43
+ private readonly _resources;
44
+ /**
45
+ * Instantiates a new smart filter runtime for one given engine.
46
+ * @param engine - the engine to use to render the smart filter
47
+ */
48
+ constructor(engine: ThinEngine);
49
+ /**
50
+ * Register a resource to be disposed when the runtime is disposed.
51
+ * @param resource - defines the resource to dispose once the runtime is disposed
52
+ */
53
+ registerResource(resource: IDisposable): void;
54
+ /**
55
+ * Registers a command to be executed during the render loop.
56
+ * @param command - defines the command to execute
57
+ */
58
+ registerCommand(command: Command): void;
59
+ /**
60
+ * Renders the smart filter.
61
+ * This function will execute all the commands contained int the command buffer.
62
+ */
63
+ render(): void;
64
+ /**
65
+ * Dispose the runtime and all its associated resources
66
+ */
67
+ dispose(): void;
68
+ }
69
+ //# sourceMappingURL=smartFilterRuntime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"smartFilterRuntime.d.ts","sourceRoot":"","sources":["../../src/runtime/smartFilterRuntime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,iDAAyC;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,2CAAmC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAErD;;;GAGG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC7B;;OAEG;IACH,QAAQ,CAAC,aAAa,EAAE,QAAQ,CAAC,aAAa,CAAC,CAAC;IAEhD;;OAEG;IACH,MAAM,IAAI,IAAI,CAAC;IAEf;;OAEG;IACH,OAAO,IAAI,IAAI,CAAC;CACnB,CAAC;AAEF;;;;;GAKG;AACH,qBAAa,0BAA2B,YAAW,kBAAkB;IACjE;;OAEG;IACH,SAAgB,MAAM,EAAE,UAAU,CAAC;IAEnC;;OAEG;IACH,SAAgB,cAAc,EAAE,cAAc,CAAC;IAE/C;;OAEG;IACH,SAAgB,aAAa,EAAE,aAAa,CAAC;IAE7C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAgB;IAE3C;;;OAGG;gBACS,MAAM,EAAE,UAAU;IAW9B;;;OAGG;IACI,gBAAgB,CAAC,QAAQ,EAAE,WAAW,GAAG,IAAI;IAIpD;;;OAGG;IACI,eAAe,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAI9C;;;OAGG;IACI,MAAM,IAAI,IAAI;IAiBrB;;OAEG;IACI,OAAO,IAAI,IAAI;CAKzB"}