@babylonjs/smart-filters 0.7.11-alpha → 0.7.13-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 (237) hide show
  1. package/dist/blockFoundation/outputBlock.d.ts +5 -0
  2. package/dist/blockFoundation/outputBlock.d.ts.map +1 -1
  3. package/dist/blockFoundation/outputBlock.js +30 -1
  4. package/dist/blockFoundation/outputBlock.js.map +1 -1
  5. package/dist/index.d.ts +0 -2
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +0 -2
  8. package/dist/index.js.map +1 -1
  9. package/dist/serialization/importCustomBlockDefinition.js +1 -25
  10. package/dist/serialization/importCustomBlockDefinition.js.map +1 -1
  11. package/dist/utils/buildTools/buildShaders.js +1 -1
  12. package/dist/utils/buildTools/buildShaders.js.map +1 -1
  13. package/dist/utils/buildTools/convertGlslIntoBlock.d.ts +7 -0
  14. package/dist/utils/buildTools/convertGlslIntoBlock.d.ts.map +1 -0
  15. package/dist/utils/buildTools/convertGlslIntoBlock.js +217 -0
  16. package/dist/utils/buildTools/convertGlslIntoBlock.js.map +1 -0
  17. package/dist/utils/buildTools/convertGlslIntoShaderProgram.d.ts +26 -0
  18. package/dist/utils/buildTools/convertGlslIntoShaderProgram.d.ts.map +1 -0
  19. package/dist/utils/buildTools/{convertShaderForHardcodedBlock.js → convertGlslIntoShaderProgram.js} +43 -30
  20. package/dist/utils/buildTools/convertGlslIntoShaderProgram.js.map +1 -0
  21. package/dist/utils/buildTools/convertShaders.d.ts +13 -0
  22. package/dist/utils/buildTools/convertShaders.d.ts.map +1 -0
  23. package/dist/utils/buildTools/convertShaders.js +37 -0
  24. package/dist/utils/buildTools/convertShaders.js.map +1 -0
  25. package/dist/utils/buildTools/shaderConverter.d.ts +2 -1
  26. package/dist/utils/buildTools/shaderConverter.d.ts.map +1 -1
  27. package/dist/utils/buildTools/shaderConverter.js +26 -1
  28. package/dist/utils/buildTools/shaderConverter.js.map +1 -1
  29. package/dist/utils/buildTools/watchShaders.js +2 -2
  30. package/dist/utils/buildTools/watchShaders.js.map +1 -1
  31. package/dist/version.d.ts +1 -1
  32. package/dist/version.js +1 -1
  33. package/package.json +5 -10
  34. package/readme.md +2 -0
  35. package/src/blockFoundation/outputBlock.ts +33 -1
  36. package/src/index.ts +0 -2
  37. package/src/serialization/importCustomBlockDefinition.ts +1 -26
  38. package/src/utils/buildTools/buildShaders.ts +1 -1
  39. package/src/utils/buildTools/convertGlslIntoBlock.ts +251 -0
  40. package/src/utils/buildTools/{convertShaderForHardcodedBlock.ts → convertGlslIntoShaderProgram.ts} +56 -35
  41. package/src/utils/buildTools/convertShaders.ts +42 -0
  42. package/src/utils/buildTools/shaderConverter.ts +28 -2
  43. package/src/utils/buildTools/watchShaders.ts +2 -2
  44. package/src/version.ts +1 -1
  45. package/dist/blockFoundation/outputBlock.shader.d.ts +0 -13
  46. package/dist/blockFoundation/outputBlock.shader.d.ts.map +0 -1
  47. package/dist/blockFoundation/outputBlock.shader.js +0 -31
  48. package/dist/blockFoundation/outputBlock.shader.js.map +0 -1
  49. package/dist/blockRegistration/IBlockRegistration.d.ts +0 -36
  50. package/dist/blockRegistration/IBlockRegistration.d.ts.map +0 -1
  51. package/dist/blockRegistration/IBlockRegistration.js +0 -2
  52. package/dist/blockRegistration/IBlockRegistration.js.map +0 -1
  53. package/dist/blockRegistration/blockSerializers.d.ts +0 -13
  54. package/dist/blockRegistration/blockSerializers.d.ts.map +0 -1
  55. package/dist/blockRegistration/blockSerializers.js +0 -35
  56. package/dist/blockRegistration/blockSerializers.js.map +0 -1
  57. package/dist/blockRegistration/builtInBlockRegistrations.d.ts +0 -13
  58. package/dist/blockRegistration/builtInBlockRegistrations.d.ts.map +0 -1
  59. package/dist/blockRegistration/builtInBlockRegistrations.js +0 -266
  60. package/dist/blockRegistration/builtInBlockRegistrations.js.map +0 -1
  61. package/dist/blockRegistration/index.d.ts +0 -3
  62. package/dist/blockRegistration/index.d.ts.map +0 -1
  63. package/dist/blockRegistration/index.js +0 -3
  64. package/dist/blockRegistration/index.js.map +0 -1
  65. package/dist/blocks/babylon/demo/effects/blackAndWhiteBlock.d.ts +0 -56
  66. package/dist/blocks/babylon/demo/effects/blackAndWhiteBlock.d.ts.map +0 -1
  67. package/dist/blocks/babylon/demo/effects/blackAndWhiteBlock.js +0 -66
  68. package/dist/blocks/babylon/demo/effects/blackAndWhiteBlock.js.map +0 -1
  69. package/dist/blocks/babylon/demo/effects/blackAndWhiteBlock.shader.d.ts +0 -13
  70. package/dist/blocks/babylon/demo/effects/blackAndWhiteBlock.shader.d.ts.map +0 -1
  71. package/dist/blocks/babylon/demo/effects/blackAndWhiteBlock.shader.js +0 -36
  72. package/dist/blocks/babylon/demo/effects/blackAndWhiteBlock.shader.js.map +0 -1
  73. package/dist/blocks/babylon/demo/effects/blurBlock.d.ts +0 -56
  74. package/dist/blocks/babylon/demo/effects/blurBlock.d.ts.map +0 -1
  75. package/dist/blocks/babylon/demo/effects/blurBlock.deserializer.d.ts +0 -29
  76. package/dist/blocks/babylon/demo/effects/blurBlock.deserializer.d.ts.map +0 -1
  77. package/dist/blocks/babylon/demo/effects/blurBlock.deserializer.js +0 -16
  78. package/dist/blocks/babylon/demo/effects/blurBlock.deserializer.js.map +0 -1
  79. package/dist/blocks/babylon/demo/effects/blurBlock.js +0 -100
  80. package/dist/blocks/babylon/demo/effects/blurBlock.js.map +0 -1
  81. package/dist/blocks/babylon/demo/effects/blurBlock.serializer.d.ts +0 -8
  82. package/dist/blocks/babylon/demo/effects/blurBlock.serializer.d.ts.map +0 -1
  83. package/dist/blocks/babylon/demo/effects/blurBlock.serializer.js +0 -28
  84. package/dist/blocks/babylon/demo/effects/blurBlock.serializer.js.map +0 -1
  85. package/dist/blocks/babylon/demo/effects/compositionBlock.d.ts +0 -118
  86. package/dist/blocks/babylon/demo/effects/compositionBlock.d.ts.map +0 -1
  87. package/dist/blocks/babylon/demo/effects/compositionBlock.deserializer.d.ts +0 -25
  88. package/dist/blocks/babylon/demo/effects/compositionBlock.deserializer.d.ts.map +0 -1
  89. package/dist/blocks/babylon/demo/effects/compositionBlock.deserializer.js +0 -15
  90. package/dist/blocks/babylon/demo/effects/compositionBlock.deserializer.js.map +0 -1
  91. package/dist/blocks/babylon/demo/effects/compositionBlock.js +0 -219
  92. package/dist/blocks/babylon/demo/effects/compositionBlock.js.map +0 -1
  93. package/dist/blocks/babylon/demo/effects/compositionBlock.serializer.d.ts +0 -6
  94. package/dist/blocks/babylon/demo/effects/compositionBlock.serializer.d.ts.map +0 -1
  95. package/dist/blocks/babylon/demo/effects/compositionBlock.serializer.js +0 -25
  96. package/dist/blocks/babylon/demo/effects/compositionBlock.serializer.js.map +0 -1
  97. package/dist/blocks/babylon/demo/effects/contrastBlock.d.ts +0 -63
  98. package/dist/blocks/babylon/demo/effects/contrastBlock.d.ts.map +0 -1
  99. package/dist/blocks/babylon/demo/effects/contrastBlock.js +0 -122
  100. package/dist/blocks/babylon/demo/effects/contrastBlock.js.map +0 -1
  101. package/dist/blocks/babylon/demo/effects/desaturateBlock.d.ts +0 -63
  102. package/dist/blocks/babylon/demo/effects/desaturateBlock.d.ts.map +0 -1
  103. package/dist/blocks/babylon/demo/effects/desaturateBlock.js +0 -107
  104. package/dist/blocks/babylon/demo/effects/desaturateBlock.js.map +0 -1
  105. package/dist/blocks/babylon/demo/effects/directionalBlurBlock.d.ts +0 -79
  106. package/dist/blocks/babylon/demo/effects/directionalBlurBlock.d.ts.map +0 -1
  107. package/dist/blocks/babylon/demo/effects/directionalBlurBlock.deserializer.d.ts +0 -33
  108. package/dist/blocks/babylon/demo/effects/directionalBlurBlock.deserializer.d.ts.map +0 -1
  109. package/dist/blocks/babylon/demo/effects/directionalBlurBlock.deserializer.js +0 -17
  110. package/dist/blocks/babylon/demo/effects/directionalBlurBlock.deserializer.js.map +0 -1
  111. package/dist/blocks/babylon/demo/effects/directionalBlurBlock.js +0 -171
  112. package/dist/blocks/babylon/demo/effects/directionalBlurBlock.js.map +0 -1
  113. package/dist/blocks/babylon/demo/effects/directionalBlurBlock.serializer.d.ts +0 -6
  114. package/dist/blocks/babylon/demo/effects/directionalBlurBlock.serializer.d.ts.map +0 -1
  115. package/dist/blocks/babylon/demo/effects/directionalBlurBlock.serializer.js +0 -27
  116. package/dist/blocks/babylon/demo/effects/directionalBlurBlock.serializer.js.map +0 -1
  117. package/dist/blocks/babylon/demo/effects/exposureBlock.d.ts +0 -63
  118. package/dist/blocks/babylon/demo/effects/exposureBlock.d.ts.map +0 -1
  119. package/dist/blocks/babylon/demo/effects/exposureBlock.js +0 -95
  120. package/dist/blocks/babylon/demo/effects/exposureBlock.js.map +0 -1
  121. package/dist/blocks/babylon/demo/effects/greenScreenBlock.d.ts +0 -75
  122. package/dist/blocks/babylon/demo/effects/greenScreenBlock.d.ts.map +0 -1
  123. package/dist/blocks/babylon/demo/effects/greenScreenBlock.js +0 -121
  124. package/dist/blocks/babylon/demo/effects/greenScreenBlock.js.map +0 -1
  125. package/dist/blocks/babylon/demo/effects/index.d.ts +0 -15
  126. package/dist/blocks/babylon/demo/effects/index.d.ts.map +0 -1
  127. package/dist/blocks/babylon/demo/effects/index.js +0 -15
  128. package/dist/blocks/babylon/demo/effects/index.js.map +0 -1
  129. package/dist/blocks/babylon/demo/effects/kaleidoscopeBlock.d.ts +0 -63
  130. package/dist/blocks/babylon/demo/effects/kaleidoscopeBlock.d.ts.map +0 -1
  131. package/dist/blocks/babylon/demo/effects/kaleidoscopeBlock.js +0 -159
  132. package/dist/blocks/babylon/demo/effects/kaleidoscopeBlock.js.map +0 -1
  133. package/dist/blocks/babylon/demo/effects/maskBlock.d.ts +0 -62
  134. package/dist/blocks/babylon/demo/effects/maskBlock.d.ts.map +0 -1
  135. package/dist/blocks/babylon/demo/effects/maskBlock.js +0 -75
  136. package/dist/blocks/babylon/demo/effects/maskBlock.js.map +0 -1
  137. package/dist/blocks/babylon/demo/effects/maskBlock.shader.d.ts +0 -14
  138. package/dist/blocks/babylon/demo/effects/maskBlock.shader.d.ts.map +0 -1
  139. package/dist/blocks/babylon/demo/effects/maskBlock.shader.js +0 -37
  140. package/dist/blocks/babylon/demo/effects/maskBlock.shader.js.map +0 -1
  141. package/dist/blocks/babylon/demo/effects/pixelateBlock.d.ts +0 -62
  142. package/dist/blocks/babylon/demo/effects/pixelateBlock.d.ts.map +0 -1
  143. package/dist/blocks/babylon/demo/effects/pixelateBlock.js +0 -77
  144. package/dist/blocks/babylon/demo/effects/pixelateBlock.js.map +0 -1
  145. package/dist/blocks/babylon/demo/effects/pixelateBlock.shader.d.ts +0 -15
  146. package/dist/blocks/babylon/demo/effects/pixelateBlock.shader.d.ts.map +0 -1
  147. package/dist/blocks/babylon/demo/effects/pixelateBlock.shader.js +0 -44
  148. package/dist/blocks/babylon/demo/effects/pixelateBlock.shader.js.map +0 -1
  149. package/dist/blocks/babylon/demo/effects/posterizeBlock.d.ts +0 -63
  150. package/dist/blocks/babylon/demo/effects/posterizeBlock.d.ts.map +0 -1
  151. package/dist/blocks/babylon/demo/effects/posterizeBlock.js +0 -108
  152. package/dist/blocks/babylon/demo/effects/posterizeBlock.js.map +0 -1
  153. package/dist/blocks/babylon/demo/effects/spritesheetBlock.d.ts +0 -81
  154. package/dist/blocks/babylon/demo/effects/spritesheetBlock.d.ts.map +0 -1
  155. package/dist/blocks/babylon/demo/effects/spritesheetBlock.js +0 -103
  156. package/dist/blocks/babylon/demo/effects/spritesheetBlock.js.map +0 -1
  157. package/dist/blocks/babylon/demo/effects/spritesheetBlock.shader.d.ts +0 -18
  158. package/dist/blocks/babylon/demo/effects/spritesheetBlock.shader.d.ts.map +0 -1
  159. package/dist/blocks/babylon/demo/effects/spritesheetBlock.shader.js +0 -57
  160. package/dist/blocks/babylon/demo/effects/spritesheetBlock.shader.js.map +0 -1
  161. package/dist/blocks/babylon/demo/effects/tintBlock.d.ts +0 -7
  162. package/dist/blocks/babylon/demo/effects/tintBlock.d.ts.map +0 -1
  163. package/dist/blocks/babylon/demo/effects/tintBlock.js +0 -51
  164. package/dist/blocks/babylon/demo/effects/tintBlock.js.map +0 -1
  165. package/dist/blocks/babylon/demo/transitions/index.d.ts +0 -2
  166. package/dist/blocks/babylon/demo/transitions/index.d.ts.map +0 -1
  167. package/dist/blocks/babylon/demo/transitions/index.js +0 -2
  168. package/dist/blocks/babylon/demo/transitions/index.js.map +0 -1
  169. package/dist/blocks/babylon/demo/transitions/wipeBlock.d.ts +0 -69
  170. package/dist/blocks/babylon/demo/transitions/wipeBlock.d.ts.map +0 -1
  171. package/dist/blocks/babylon/demo/transitions/wipeBlock.js +0 -110
  172. package/dist/blocks/babylon/demo/transitions/wipeBlock.js.map +0 -1
  173. package/dist/blocks/babylon/demo/utilities/index.d.ts +0 -2
  174. package/dist/blocks/babylon/demo/utilities/index.d.ts.map +0 -1
  175. package/dist/blocks/babylon/demo/utilities/index.js +0 -2
  176. package/dist/blocks/babylon/demo/utilities/index.js.map +0 -1
  177. package/dist/blocks/babylon/demo/utilities/premultiplyAlphaBlock.d.ts +0 -58
  178. package/dist/blocks/babylon/demo/utilities/premultiplyAlphaBlock.d.ts.map +0 -1
  179. package/dist/blocks/babylon/demo/utilities/premultiplyAlphaBlock.js +0 -87
  180. package/dist/blocks/babylon/demo/utilities/premultiplyAlphaBlock.js.map +0 -1
  181. package/dist/blocks/blockNamespaces.d.ts +0 -5
  182. package/dist/blocks/blockNamespaces.d.ts.map +0 -1
  183. package/dist/blocks/blockNamespaces.js +0 -5
  184. package/dist/blocks/blockNamespaces.js.map +0 -1
  185. package/dist/blocks/blockTypes.d.ts +0 -22
  186. package/dist/blocks/blockTypes.d.ts.map +0 -1
  187. package/dist/blocks/blockTypes.js +0 -22
  188. package/dist/blocks/blockTypes.js.map +0 -1
  189. package/dist/blocks/index.d.ts +0 -6
  190. package/dist/blocks/index.d.ts.map +0 -1
  191. package/dist/blocks/index.js +0 -6
  192. package/dist/blocks/index.js.map +0 -1
  193. package/dist/utils/buildTools/convertShaderForHardcodedBlock.d.ts +0 -13
  194. package/dist/utils/buildTools/convertShaderForHardcodedBlock.d.ts.map +0 -1
  195. package/dist/utils/buildTools/convertShaderForHardcodedBlock.js.map +0 -1
  196. package/src/blockFoundation/outputBlock.fragment.glsl +0 -5
  197. package/src/blockFoundation/outputBlock.shader.ts +0 -33
  198. package/src/blockRegistration/IBlockRegistration.ts +0 -45
  199. package/src/blockRegistration/blockSerializers.ts +0 -52
  200. package/src/blockRegistration/builtInBlockRegistrations.ts +0 -390
  201. package/src/blockRegistration/index.ts +0 -2
  202. package/src/blocks/babylon/demo/effects/blackAndWhiteBlock.fragment.glsl +0 -10
  203. package/src/blocks/babylon/demo/effects/blackAndWhiteBlock.shader.ts +0 -38
  204. package/src/blocks/babylon/demo/effects/blackAndWhiteBlock.ts +0 -80
  205. package/src/blocks/babylon/demo/effects/blurBlock.deserializer.ts +0 -38
  206. package/src/blocks/babylon/demo/effects/blurBlock.serializer.ts +0 -32
  207. package/src/blocks/babylon/demo/effects/blurBlock.ts +0 -119
  208. package/src/blocks/babylon/demo/effects/compositionBlock.deserializer.ts +0 -32
  209. package/src/blocks/babylon/demo/effects/compositionBlock.serializer.ts +0 -29
  210. package/src/blocks/babylon/demo/effects/compositionBlock.ts +0 -293
  211. package/src/blocks/babylon/demo/effects/contrastBlock.ts +0 -152
  212. package/src/blocks/babylon/demo/effects/desaturateBlock.ts +0 -137
  213. package/src/blocks/babylon/demo/effects/directionalBlurBlock.deserializer.ts +0 -47
  214. package/src/blocks/babylon/demo/effects/directionalBlurBlock.serializer.ts +0 -31
  215. package/src/blocks/babylon/demo/effects/directionalBlurBlock.ts +0 -193
  216. package/src/blocks/babylon/demo/effects/exposureBlock.ts +0 -120
  217. package/src/blocks/babylon/demo/effects/greenScreenBlock.ts +0 -152
  218. package/src/blocks/babylon/demo/effects/index.ts +0 -14
  219. package/src/blocks/babylon/demo/effects/kaleidoscopeBlock.ts +0 -186
  220. package/src/blocks/babylon/demo/effects/maskBlock.fragment.glsl +0 -10
  221. package/src/blocks/babylon/demo/effects/maskBlock.shader.ts +0 -39
  222. package/src/blocks/babylon/demo/effects/maskBlock.ts +0 -94
  223. package/src/blocks/babylon/demo/effects/pixelateBlock.fragment.glsl +0 -18
  224. package/src/blocks/babylon/demo/effects/pixelateBlock.shader.ts +0 -46
  225. package/src/blocks/babylon/demo/effects/pixelateBlock.ts +0 -101
  226. package/src/blocks/babylon/demo/effects/posterizeBlock.ts +0 -139
  227. package/src/blocks/babylon/demo/effects/spritesheetBlock.fragment.glsl +0 -26
  228. package/src/blocks/babylon/demo/effects/spritesheetBlock.shader.ts +0 -59
  229. package/src/blocks/babylon/demo/effects/spritesheetBlock.ts +0 -135
  230. package/src/blocks/babylon/demo/effects/tintBlock.ts +0 -52
  231. package/src/blocks/babylon/demo/transitions/index.ts +0 -1
  232. package/src/blocks/babylon/demo/transitions/wipeBlock.ts +0 -138
  233. package/src/blocks/babylon/demo/utilities/index.ts +0 -1
  234. package/src/blocks/babylon/demo/utilities/premultiplyAlphaBlock.ts +0 -106
  235. package/src/blocks/blockNamespaces.ts +0 -4
  236. package/src/blocks/blockTypes.ts +0 -21
  237. package/src/blocks/index.ts +0 -5
@@ -0,0 +1,37 @@
1
+ import * as fs from "fs";
2
+ import * as path from "path";
3
+ import { convertGlslIntoShaderProgram } from "./convertGlslIntoShaderProgram.js";
4
+ import { convertGlslIntoBlock } from "./convertGlslIntoBlock.js";
5
+ /**
6
+ * Converts all GLSL files in a path into blocks for use in the build system.
7
+ * @param shaderPath - The path to the .glsl files to convert.
8
+ * @param importPath - The path to import the ShaderProgram type from.
9
+ */
10
+ export function convertShaders(shaderPath, importPath) {
11
+ // Get all files in the path
12
+ const allFiles = fs.readdirSync(shaderPath, { withFileTypes: true, recursive: true });
13
+ // Find all shaders (files with .fragment.glsl or .block.glsl extensions)
14
+ const shaderFiles = allFiles.filter((file) => file.isFile() && (file.name.endsWith(".fragment.glsl") || file.name.endsWith(".block.glsl")));
15
+ // Convert all shaders
16
+ for (const shaderFile of shaderFiles) {
17
+ const fullPathAndFileName = path.join(shaderFile.path, shaderFile.name);
18
+ convertShader(fullPathAndFileName, importPath);
19
+ }
20
+ }
21
+ /**
22
+ * Converts a single GLSL file into a block class or a ShaderProgram for use in the build system.
23
+ * @param fullPathAndFileName - The full path and file name of the .glsl file to convert.
24
+ * @param importPath - The path to import the ShaderProgram type from.
25
+ */
26
+ export function convertShader(fullPathAndFileName, importPath) {
27
+ console.log(`\nProcessing shader: ${fullPathAndFileName}`);
28
+ if (fullPathAndFileName.endsWith(".fragment.glsl")) {
29
+ console.log("Generating a .ts file that exports a ShaderProgram.");
30
+ convertGlslIntoShaderProgram(fullPathAndFileName, importPath);
31
+ }
32
+ else if (fullPathAndFileName.endsWith(".block.glsl")) {
33
+ console.log("Generating a .ts file that exports the block as a class.");
34
+ convertGlslIntoBlock(fullPathAndFileName, importPath);
35
+ }
36
+ }
37
+ //# sourceMappingURL=convertShaders.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"convertShaders.js","sourceRoot":"","sources":["../../../src/utils/buildTools/convertShaders.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,4BAA4B,EAAE,MAAM,mCAAmC,CAAC;AACjF,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,UAAkB,EAAE,UAAkB;IACjE,4BAA4B;IAC5B,MAAM,QAAQ,GAAG,EAAE,CAAC,WAAW,CAAC,UAAU,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAEtF,yEAAyE;IACzE,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CAC/B,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CACzG,CAAC;IAEF,sBAAsB;IACtB,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;QACnC,MAAM,mBAAmB,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC;QACxE,aAAa,CAAC,mBAAmB,EAAE,UAAU,CAAC,CAAC;IACnD,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,mBAA2B,EAAE,UAAkB;IACzE,OAAO,CAAC,GAAG,CAAC,wBAAwB,mBAAmB,EAAE,CAAC,CAAC;IAE3D,IAAI,mBAAmB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACjD,OAAO,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAC;QACnE,4BAA4B,CAAC,mBAAmB,EAAE,UAAU,CAAC,CAAC;IAClE,CAAC;SAAM,IAAI,mBAAmB,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;QACrD,OAAO,CAAC,GAAG,CAAC,0DAA0D,CAAC,CAAC;QACxE,oBAAoB,CAAC,mBAAmB,EAAE,UAAU,CAAC,CAAC;IAC1D,CAAC;AACL,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import type { Nullable } from "@babylonjs/core/types";
2
2
  import type { ShaderCode } from "./shaderCode.types";
3
+ import { ConnectionPointType } from "../../connection/connectionPointType.js";
3
4
  /**
4
5
  * Describes the supported metadata properties for a uniform
5
6
  */
@@ -25,7 +26,7 @@ export type UniformMetadata = {
25
26
  /**
26
27
  * The type string of the uniform
27
28
  */
28
- type: string;
29
+ type: ConnectionPointType;
29
30
  /**
30
31
  * Optional properties of the uniform
31
32
  */
@@ -1 +1 @@
1
- {"version":3,"file":"shaderConverter.d.ts","sourceRoot":"","sources":["../../../src/utils/buildTools/shaderConverter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,KAAK,EAAE,UAAU,EAAkB,MAAM,oBAAoB,CAAC;AAIrE;;GAEG;AACH,MAAM,MAAM,yBAAyB,GAAG;IACpC;;OAEG;IACH,OAAO,CAAC,EAAE,GAAG,CAAC;IAEd;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG;IAC1B;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,UAAU,CAAC,EAAE,yBAAyB,CAAC;CAC1C,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC7B;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAE5B;;OAEG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAE9B;;OAEG;IACH,UAAU,EAAE,UAAU,CAAC;IAEvB;;OAEG;IACH,QAAQ,EAAE,eAAe,EAAE,CAAC;CAC/B,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,cAAc,EAAE,MAAM,GAAG,kBAAkB,CAwG9E;AAsMD;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAE7D"}
1
+ {"version":3,"file":"shaderConverter.d.ts","sourceRoot":"","sources":["../../../src/utils/buildTools/shaderConverter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,KAAK,EAAE,UAAU,EAAkB,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,yCAAyC,CAAC;AAI9E;;GAEG;AACH,MAAM,MAAM,yBAAyB,GAAG;IACpC;;OAEG;IACH,OAAO,CAAC,EAAE,GAAG,CAAC;IAEd;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG;IAC1B;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,IAAI,EAAE,mBAAmB,CAAC;IAE1B;;OAEG;IACH,UAAU,CAAC,EAAE,yBAAyB,CAAC;CAC1C,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG;IAC7B;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAE5B;;OAEG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAE9B;;OAEG;IACH,UAAU,EAAE,UAAU,CAAC;IAEvB;;OAEG;IACH,QAAQ,EAAE,eAAe,EAAE,CAAC;CAC/B,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,cAAc,EAAE,MAAM,GAAG,kBAAkB,CAiI9E;AAsMD;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAE7D"}
@@ -1,3 +1,4 @@
1
+ import { ConnectionPointType } from "../../connection/connectionPointType.js";
1
2
  const GetFunctionNamesRegEx = /\S*\w+\s+(\w+)\s*\(/g;
2
3
  /**
3
4
  * Parses a fragment shader
@@ -31,9 +32,33 @@ export function parseFragmentShader(fragmentShader) {
31
32
  if (!uniformName) {
32
33
  throw new Error(`Uniforms must have a name: '${uniformLine}'`);
33
34
  }
35
+ // Convert to ConnectionPointType
36
+ let type;
37
+ switch (uniformTypeString) {
38
+ case "float":
39
+ type = ConnectionPointType.Float;
40
+ break;
41
+ case "sampler2D":
42
+ type = ConnectionPointType.Texture;
43
+ break;
44
+ case "vec3":
45
+ type = ConnectionPointType.Color3;
46
+ break;
47
+ case "vec4":
48
+ type = ConnectionPointType.Color4;
49
+ break;
50
+ case "bool":
51
+ type = ConnectionPointType.Boolean;
52
+ break;
53
+ case "vec2":
54
+ type = ConnectionPointType.Vector2;
55
+ break;
56
+ default:
57
+ throw new Error(`Unsupported uniform type: '${uniformTypeString}'`);
58
+ }
34
59
  uniforms.push({
35
60
  name: uniformName,
36
- type: uniformTypeString,
61
+ type,
37
62
  properties: annotationJSON ? JSON.parse(annotationJSON.replace("//", "").trim()) : undefined,
38
63
  });
39
64
  if (annotationJSON) {
@@ -1 +1 @@
1
- {"version":3,"file":"shaderConverter.js","sourceRoot":"","sources":["../../../src/utils/buildTools/shaderConverter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shaderConverter.js","sourceRoot":"","sources":["../../../src/utils/buildTools/shaderConverter.ts"],"names":[],"mappings":"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"}
@@ -5,9 +5,9 @@
5
5
  * @param importPath - The path to import the converted shaders
6
6
  * @example node watchShaders.js <shaderPath> <importPath>
7
7
  */
8
- import { convertShaderForHardcodedBlock } from "./convertShaderForHardcodedBlock.js";
9
8
  import { watch } from "chokidar";
10
9
  import { extname } from "path";
10
+ import { convertShader } from "./convertShaders.js";
11
11
  const externalArguments = process.argv.slice(2);
12
12
  if (externalArguments.length >= 2 && externalArguments[0] && externalArguments[1]) {
13
13
  const shaderPath = externalArguments[0];
@@ -24,7 +24,7 @@ if (externalArguments.length >= 2 && externalArguments[0] && externalArguments[1
24
24
  // Wrap in try-catch to prevent the watcher from crashing
25
25
  // if the new shader changes are invalid
26
26
  try {
27
- convertShaderForHardcodedBlock(file, importPath);
27
+ convertShader(file, importPath);
28
28
  console.log(`Successfully updated shader ${file}`);
29
29
  }
30
30
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"watchShaders.js","sourceRoot":"","sources":["../../../src/utils/buildTools/watchShaders.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B;;;;;GAKG;AAEH,OAAO,EAAE,8BAA8B,EAAE,MAAM,qCAAqC,CAAC;AACrF,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAE/B,MAAM,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAChD,IAAI,iBAAiB,CAAC,MAAM,IAAI,CAAC,IAAI,iBAAiB,CAAC,CAAC,CAAC,IAAI,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC;IAChF,MAAM,UAAU,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;IACxC,MAAM,UAAU,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;IAExC,KAAK,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACxC,4CAA4C;QAC5C,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;YACxC,OAAO;QACX,CAAC;QAED,2BAA2B;QAC3B,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,OAAO,EAAE,CAAC;YAC5B,OAAO;QACX,CAAC;QAED,yDAAyD;QACzD,wCAAwC;QACxC,IAAI,CAAC;YACD,8BAA8B,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YACjD,OAAO,CAAC,GAAG,CAAC,+BAA+B,IAAI,EAAE,CAAC,CAAC;QACvD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,4BAA4B,IAAI,KAAK,KAAK,EAAE,CAAC,CAAC;QAChE,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC,kCAAkC,UAAU,EAAE,CAAC,CAAC;AAChE,CAAC"}
1
+ {"version":3,"file":"watchShaders.js","sourceRoot":"","sources":["../../../src/utils/buildTools/watchShaders.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B;;;;;GAKG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAC/B,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,MAAM,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAChD,IAAI,iBAAiB,CAAC,MAAM,IAAI,CAAC,IAAI,iBAAiB,CAAC,CAAC,CAAC,IAAI,iBAAiB,CAAC,CAAC,CAAC,EAAE,CAAC;IAChF,MAAM,UAAU,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;IACxC,MAAM,UAAU,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;IAExC,KAAK,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACxC,4CAA4C;QAC5C,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,KAAK,EAAE,CAAC;YACxC,OAAO;QACX,CAAC;QAED,2BAA2B;QAC3B,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,OAAO,EAAE,CAAC;YAC5B,OAAO;QACX,CAAC;QAED,yDAAyD;QACzD,wCAAwC;QACxC,IAAI,CAAC;YACD,aAAa,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;YAChC,OAAO,CAAC,GAAG,CAAC,+BAA+B,IAAI,EAAE,CAAC,CAAC;QACvD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,4BAA4B,IAAI,KAAK,KAAK,EAAE,CAAC,CAAC;QAChE,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC,kCAAkC,UAAU,EAAE,CAAC,CAAC;AAChE,CAAC"}
package/dist/version.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
2
  * The version of the SmartFilter core. During publish, this file is overwritten by versionUp.ts with the same version that is used for the NPM publish.
3
3
  */
4
- export declare const SmartFilterCoreVersion = "0.7.11-alpha";
4
+ export declare const SmartFilterCoreVersion = "0.7.13-alpha";
5
5
  //# sourceMappingURL=version.d.ts.map
package/dist/version.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
2
  * The version of the SmartFilter core. During publish, this file is overwritten by versionUp.ts with the same version that is used for the NPM publish.
3
3
  */
4
- export const SmartFilterCoreVersion = "0.7.11-alpha";
4
+ export const SmartFilterCoreVersion = "0.7.13-alpha";
5
5
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@babylonjs/smart-filters",
3
- "version": "0.7.11-alpha",
3
+ "version": "0.7.13-alpha",
4
4
  "description": "Babylon.js Smart Filter core",
5
5
  "keywords": [
6
6
  "video",
@@ -35,15 +35,10 @@
35
35
  "readme.md"
36
36
  ],
37
37
  "scripts": {
38
- "clean": "rimraf dist && rimraf buildTools && rimraf tsconfig.build.tsbuildinfo && rimraf ../../tsconfig.buildTools.build.tsbuildinfo",
39
- "preparePublish": "node buildTools/versionUp.js --alpha",
40
- "build": "npm run build:buildTools && npm run build:runTools && npm run build:core",
41
- "build:core": "tsc -p ./tsconfig.build.json",
42
- "build:buildTools": "tsc -p ./tsconfig.buildTools.build.json",
43
- "build:runTools": "node buildTools/buildShaders.js ./src/blockFoundation ../utils/shaderCodeUtils && node buildTools/buildShaders.js ./src/blocks ../../../../utils/shaderCodeUtils",
44
- "watch": "concurrently \"npm run watch:core\" \"npm run watch:shaders\"",
45
- "watch:core": "tsc -p ./tsconfig.build.json --watch",
46
- "watch:shaders": "node buildTools/watchShaders.js ./src/blocks ../../../../utils/shaderCodeUtils",
38
+ "clean": "rimraf dist && rimraf tsconfig.build.tsbuildinfo",
39
+ "preparePublish": "node dist/utils/buildTools/versionUp.js --alpha",
40
+ "build": "tsc -p ./tsconfig.build.json",
41
+ "watch": "tsc -p ./tsconfig.build.json --watch",
47
42
  "test": "echo \"Error: run test from the root of the monorepo\" && exit 1"
48
43
  },
49
44
  "peerDependencies": {
package/readme.md CHANGED
@@ -10,6 +10,8 @@ A Smart Filter is a node based description of effects to apply on various inputs
10
10
 
11
11
  The main usage is for video processing and composition but it could be easily reused for picture edition or procedural creation.
12
12
 
13
+ See the full documentation at [doc.babylonjs.com](https://doc.babylonjs.com/features/featuresDeepDive/smartFilters/)
14
+
13
15
  ## How to install
14
16
 
15
17
  This can be installed with `npm install @babylonjs/smart-filters`.
@@ -7,7 +7,39 @@ import type { RenderTargetWrapper } from "@babylonjs/core/Engines/renderTargetWr
7
7
  import { registerFinalRenderCommand } from "../utils/renderTargetUtils.js";
8
8
  import type { RuntimeData } from "../connection/connectionPoint";
9
9
  import type { Effect } from "@babylonjs/core/Materials/effect";
10
- import { shaderProgram, uniforms } from "./outputBlock.shader.js";
10
+ import type { ShaderProgram } from "../utils/shaderCodeUtils";
11
+
12
+ /**
13
+ * The shader program for the block.
14
+ */
15
+ export const shaderProgram: ShaderProgram = {
16
+ vertex: undefined,
17
+ fragment: {
18
+ uniform: `
19
+ uniform sampler2D _input_; // main`,
20
+ mainInputTexture: "_input_",
21
+ mainFunctionName: "_copy_",
22
+ functions: [
23
+ {
24
+ name: "_copy_",
25
+ code: `
26
+ vec4 _copy_(vec2 vUV) {
27
+ return texture2D(_input_, vUV);
28
+ }
29
+
30
+ `,
31
+ },
32
+ ],
33
+ },
34
+ };
35
+
36
+ /**
37
+ * The uniform names for this shader, to be used in the shader binding so
38
+ * that the names are always in sync.
39
+ */
40
+ const uniforms = {
41
+ input: "input",
42
+ };
11
43
 
12
44
  /**
13
45
  * The output block of a smart filter.
package/src/index.ts CHANGED
@@ -1,8 +1,6 @@
1
1
  export * from "./command/index.js";
2
2
  export * from "./connection/index.js";
3
3
  export * from "./blockFoundation/index.js";
4
- export * from "./blockRegistration/index.js";
5
- export * from "./blocks/index.js";
6
4
  export * from "./editorUtils/index.js";
7
5
  export * from "./optimization/index.js";
8
6
  export * from "./runtime/index.js";
@@ -54,35 +54,10 @@ function importAnnotatedGlsl(fragmentShader: string): SerializedShaderBlockDefin
54
54
  // Calculate the input connection points
55
55
  const inputConnectionPoints: SerializedInputConnectionPointV1[] = [];
56
56
  for (const uniform of fragmentShaderInfo.uniforms) {
57
- // Convert to ConnectionPointType
58
- let type: ConnectionPointType;
59
- switch (uniform.type) {
60
- case "float":
61
- type = ConnectionPointType.Float;
62
- break;
63
- case "sampler2D":
64
- type = ConnectionPointType.Texture;
65
- break;
66
- case "vec3":
67
- type = ConnectionPointType.Color3;
68
- break;
69
- case "vec4":
70
- type = ConnectionPointType.Color4;
71
- break;
72
- case "bool":
73
- type = ConnectionPointType.Boolean;
74
- break;
75
- case "vec2":
76
- type = ConnectionPointType.Vector2;
77
- break;
78
- default:
79
- throw new Error(`Unsupported uniform type: '${uniform.type}'`);
80
- }
81
-
82
57
  // Add to input connection point list
83
58
  const inputConnectionPoint: SerializedInputConnectionPointV1 = {
84
59
  name: uniform.name,
85
- type,
60
+ type: uniform.type,
86
61
  autoBind: uniform.properties?.autoBind as InputAutoBindV1,
87
62
  };
88
63
  if (inputConnectionPoint.type !== ConnectionPointType.Texture && uniform.properties?.default !== undefined) {
@@ -5,7 +5,7 @@
5
5
  * @example node buildShaders.js <shaderPath> <importPath>
6
6
  */
7
7
 
8
- import { convertShaders } from "./convertShaderForHardcodedBlock.js";
8
+ import { convertShaders } from "./convertShaders.js";
9
9
 
10
10
  const externalArguments = process.argv.slice(2);
11
11
  if (externalArguments.length >= 2 && externalArguments[0] && externalArguments[1]) {
@@ -0,0 +1,251 @@
1
+ import * as fs from "fs";
2
+ import { extractShaderProgramFromGlsl } from "./convertGlslIntoShaderProgram.js";
3
+ import { ConnectionPointType } from "../../connection/connectionPointType.js";
4
+
5
+ const SHADER_PROGRAM = "@SHADER_PROGRAM@";
6
+ const BLOCK_NAME = "@BLOCK_NAME@";
7
+ const NAMESPACE = "@NAMESPACE@";
8
+ const SHADER_BINDING_PRIVATE_VARIABLES = "@SHADER_BINDING_PRIVATE_VARIABLES@";
9
+ const CAMEL_CASE_UNIFORM = "@CAMEL_CASE_UNIFORM@";
10
+ const CONNECTION_POINT_TYPE = "@CONNECTION_POINT_TYPE@";
11
+ const SHADER_BINDING_CTOR_DOCSTRING_PARAMS = "@SHADER_BINDING_CTOR_DOCSTRING_PARAMS@";
12
+ const SHADER_BINDING_CTOR_PARAMS = "@SHADER_CTOR_PARAMS@";
13
+ const SHADER_BINDING_CTOR = "@SHADER_BINDING_CTOR@";
14
+ const SHADER_BINDING_BIND = "@SHADER_BINDING_BIND@";
15
+ const BLOCK_INPUT_PROPERTIES = "@BLOCK_INPUT_PROPERTIES@";
16
+ const BLOCK_GET_SHADER_BINDING_VARS = "@BLOCK_SHADER_BINDING_BIND_VARS@";
17
+ const BLOCK_GET_SHADER_PARAM_LIST = "@BLOCK_GET_SHADER_PARAM_LIST@";
18
+ const EFFECT_SETTER = "@EFFECT_SETTER@";
19
+
20
+ const ShaderBindingPrivateVariablesTemplate = ` private readonly _${CAMEL_CASE_UNIFORM}: RuntimeData<ConnectionPointType.${CONNECTION_POINT_TYPE}>;`;
21
+ const ShaderBindingCtorDocstringParams = ` * @param ${CAMEL_CASE_UNIFORM} - The ${CAMEL_CASE_UNIFORM} runtime value`;
22
+ const ShaderBindingCtorParams = ` ${CAMEL_CASE_UNIFORM}: RuntimeData<ConnectionPointType.${CONNECTION_POINT_TYPE}>`;
23
+ const ShaderBindingCtor = ` this._${CAMEL_CASE_UNIFORM} = ${CAMEL_CASE_UNIFORM};`;
24
+ const ShaderBindingBind = ` effect.${EFFECT_SETTER}(this.getRemappedName(uniforms.${CAMEL_CASE_UNIFORM}), this._${CAMEL_CASE_UNIFORM}.value);`;
25
+
26
+ const BlockInputProperties = ` /**
27
+ * The ${CAMEL_CASE_UNIFORM} connection point.
28
+ */
29
+ public readonly ${CAMEL_CASE_UNIFORM} = this._registerInput(uniforms.${CAMEL_CASE_UNIFORM}, ConnectionPointType.${CONNECTION_POINT_TYPE});
30
+ `;
31
+ const BlockGetShaderBindingVars = ` const ${CAMEL_CASE_UNIFORM} = this._confirmRuntimeDataSupplied(this.${CAMEL_CASE_UNIFORM});`;
32
+
33
+ const FileTemplate = `/* eslint-disable prettier/prettier */
34
+ // ************************************************************
35
+ // Note: this file is auto-generated, do not modify it directly
36
+ // ************************************************************
37
+
38
+ // It was generated by convertGlslIntoBlock() from
39
+ // an annotated .glsl file. Modify the .glsl file to make changes
40
+ // to the block. This file will get overwritten when the build
41
+ // is run or during a watch when the .glsl file is updated.
42
+
43
+ import type { Effect } from "@babylonjs/core/Materials/effect";
44
+
45
+ import {
46
+ ShaderBinding,
47
+ type RuntimeData,
48
+ ConnectionPointType,
49
+ type SmartFilter,
50
+ ShaderBlock,
51
+ type ShaderProgram,
52
+ } from "@babylonjs/smart-filters";${SHADER_PROGRAM}
53
+ /**
54
+ * The shader binding for the ${BLOCK_NAME}, used by the runtime
55
+ */
56
+ class ${BLOCK_NAME}ShaderBinding extends ShaderBinding {
57
+ ${SHADER_BINDING_PRIVATE_VARIABLES}
58
+
59
+ /**
60
+ * Creates a new shader binding instance for the block.
61
+ ${SHADER_BINDING_CTOR_DOCSTRING_PARAMS}
62
+ */
63
+ constructor(
64
+ ${SHADER_BINDING_CTOR_PARAMS}
65
+ ) {
66
+ super();
67
+ ${SHADER_BINDING_CTOR}
68
+ }
69
+
70
+ /**
71
+ * Binds all the required data to the shader when rendering.
72
+ * @param effect - defines the effect to bind the data to
73
+ */
74
+ public override bind(effect: Effect): void {
75
+ ${SHADER_BINDING_BIND}
76
+ }
77
+ }
78
+
79
+ /**
80
+ * The implementation of the ${BLOCK_NAME}
81
+ */
82
+ export class ${BLOCK_NAME} extends ShaderBlock {
83
+ /**
84
+ * The class name of the block.
85
+ */
86
+ public static override ClassName = "${BLOCK_NAME}";
87
+
88
+ /**
89
+ * The namespace of the block.
90
+ */
91
+ public static override Namespace = "${NAMESPACE}";
92
+
93
+ ${BLOCK_INPUT_PROPERTIES}
94
+ /**
95
+ * The shader program (vertex and fragment code) to use to render the block
96
+ */
97
+ public static override ShaderCode = shaderProgram;
98
+
99
+ /**
100
+ * Instantiates a new ${BLOCK_NAME}.
101
+ * @param smartFilter - The smart filter this block belongs to
102
+ * @param name - The friendly name of the block
103
+ */
104
+ constructor(smartFilter: SmartFilter, name: string) {
105
+ super(smartFilter, name);
106
+ }
107
+
108
+ /**
109
+ * Get the class instance that binds all the required data to the shader (effect) when rendering.
110
+ * @returns The class instance that binds the data to the effect
111
+ */
112
+ public getShaderBinding(): ShaderBinding {
113
+ ${BLOCK_GET_SHADER_BINDING_VARS}
114
+
115
+ return new ${BLOCK_NAME}ShaderBinding(${BLOCK_GET_SHADER_PARAM_LIST});
116
+ }
117
+ }
118
+
119
+ `;
120
+
121
+ /**
122
+ * Converts a single shader to a .ts file which exports a Smart Filter block
123
+ * @param fragmentShaderPath - The path to the fragment file for the shader
124
+ * @param importPath - The path to import the ShaderProgram type from
125
+ */
126
+ export function convertGlslIntoBlock(fragmentShaderPath: string, importPath: string): void {
127
+ const { shaderProgramCode, fragmentShaderInfo } = extractShaderProgramFromGlsl(
128
+ fragmentShaderPath,
129
+ importPath,
130
+ false,
131
+ false
132
+ );
133
+
134
+ // Validation
135
+ if (!fragmentShaderInfo.blockType) {
136
+ throw new Error("The glsl file must contain a header comment with a smartFilterBlockType value");
137
+ }
138
+
139
+ // Generate shader binding private variables
140
+ const shaderBindingPrivateVariables = fragmentShaderInfo.uniforms.map((uniform) => {
141
+ return ShaderBindingPrivateVariablesTemplate.replace(CAMEL_CASE_UNIFORM, uniform.name).replace(
142
+ CONNECTION_POINT_TYPE,
143
+ getConnectionPointTypeString(uniform.type)
144
+ );
145
+ });
146
+
147
+ // Generate the shader binding constructor docstring params
148
+ const shaderBindingCtorDocstringParams = fragmentShaderInfo.uniforms.map((uniform) => {
149
+ return ShaderBindingCtorDocstringParams.replace(new RegExp(CAMEL_CASE_UNIFORM, "g"), uniform.name);
150
+ });
151
+
152
+ // Generate the shader binding constructor params
153
+ const shaderBindingCtorParams = fragmentShaderInfo.uniforms.map((uniform) => {
154
+ return ShaderBindingCtorParams.replace(CAMEL_CASE_UNIFORM, uniform.name).replace(
155
+ CONNECTION_POINT_TYPE,
156
+ getConnectionPointTypeString(uniform.type)
157
+ );
158
+ });
159
+
160
+ // Generate the shader binding constructor
161
+ const shaderBindingCtor = fragmentShaderInfo.uniforms.map((uniform) => {
162
+ return ShaderBindingCtor.replace(new RegExp(CAMEL_CASE_UNIFORM, "g"), uniform.name);
163
+ });
164
+
165
+ // Generate the shader binding bind
166
+ const shaderBindingBind = fragmentShaderInfo.uniforms.map((uniform) => {
167
+ return ShaderBindingBind.replace(new RegExp(CAMEL_CASE_UNIFORM, "g"), uniform.name).replace(
168
+ EFFECT_SETTER,
169
+ getEffectSetter(uniform.type)
170
+ );
171
+ });
172
+
173
+ // Generate the block input properties
174
+ const blockInputProperties = fragmentShaderInfo.uniforms.map((uniform) => {
175
+ return BlockInputProperties.replace(new RegExp(CAMEL_CASE_UNIFORM, "g"), uniform.name).replace(
176
+ CONNECTION_POINT_TYPE,
177
+ getConnectionPointTypeString(uniform.type)
178
+ );
179
+ });
180
+
181
+ // Generate the block get shader binding vars
182
+ const blockGetShaderBindingVars = fragmentShaderInfo.uniforms.map((uniform) => {
183
+ return BlockGetShaderBindingVars.replace(new RegExp(CAMEL_CASE_UNIFORM, "g"), uniform.name);
184
+ });
185
+
186
+ // Generate the block get shader param list
187
+ const blockGetShaderParamList = fragmentShaderInfo.uniforms.map((uniform) => {
188
+ return uniform.name;
189
+ });
190
+
191
+ // Generate final contents
192
+ const finalContents = FileTemplate.replace(SHADER_PROGRAM, shaderProgramCode)
193
+ .replace(new RegExp(BLOCK_NAME, "g"), fragmentShaderInfo.blockType)
194
+ .replace(NAMESPACE, fragmentShaderInfo.namespace || "Other")
195
+ .replace(SHADER_BINDING_PRIVATE_VARIABLES, shaderBindingPrivateVariables.join("\n"))
196
+ .replace(SHADER_BINDING_CTOR_DOCSTRING_PARAMS, shaderBindingCtorDocstringParams.join("\n"))
197
+ .replace(SHADER_BINDING_CTOR_PARAMS, shaderBindingCtorParams.join(",\n"))
198
+ .replace(SHADER_BINDING_CTOR, shaderBindingCtor.join("\n"))
199
+ .replace(SHADER_BINDING_BIND, shaderBindingBind.join("\n"))
200
+ .replace(BLOCK_INPUT_PROPERTIES, blockInputProperties.join("\n"))
201
+ .replace(BLOCK_GET_SHADER_BINDING_VARS, blockGetShaderBindingVars.join("\n"))
202
+ .replace(BLOCK_GET_SHADER_PARAM_LIST, blockGetShaderParamList.join(","));
203
+
204
+ // Write the block class TS file
205
+ const outputFullPathAndFileName = fragmentShaderPath.replace(".glsl", ".ts");
206
+ fs.writeFileSync(outputFullPathAndFileName, finalContents);
207
+ }
208
+
209
+ /**
210
+ * Get the string representation of a connection point type
211
+ * @param type - The connection point type
212
+ * @returns - The string representation of the connection point type
213
+ */
214
+ function getConnectionPointTypeString(type: ConnectionPointType): string {
215
+ switch (type) {
216
+ case ConnectionPointType.Float:
217
+ return "Float";
218
+ case ConnectionPointType.Texture:
219
+ return "Texture";
220
+ case ConnectionPointType.Color3:
221
+ return "Color3";
222
+ case ConnectionPointType.Color4:
223
+ return "Color4";
224
+ case ConnectionPointType.Vector2:
225
+ return "Vector2";
226
+ case ConnectionPointType.Boolean:
227
+ return "Boolean";
228
+ }
229
+ }
230
+
231
+ /**
232
+ * Get the effect setter for a connection point type
233
+ * @param type - The connection point type
234
+ * @returns - The effect setter for the connection point type
235
+ */
236
+ function getEffectSetter(type: ConnectionPointType): string {
237
+ switch (type) {
238
+ case ConnectionPointType.Float:
239
+ return "setFloat";
240
+ case ConnectionPointType.Texture:
241
+ return "setTexture";
242
+ case ConnectionPointType.Color3:
243
+ return "setColor3";
244
+ case ConnectionPointType.Color4:
245
+ return "setDirectColor4";
246
+ case ConnectionPointType.Vector2:
247
+ return "setVector2";
248
+ case ConnectionPointType.Boolean:
249
+ return "setBool";
250
+ }
251
+ }