@babylonjs/smart-filters 0.7.12-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 (36) hide show
  1. package/dist/serialization/importCustomBlockDefinition.js +1 -25
  2. package/dist/serialization/importCustomBlockDefinition.js.map +1 -1
  3. package/dist/utils/buildTools/buildShaders.js +1 -1
  4. package/dist/utils/buildTools/buildShaders.js.map +1 -1
  5. package/dist/utils/buildTools/convertGlslIntoBlock.d.ts +7 -0
  6. package/dist/utils/buildTools/convertGlslIntoBlock.d.ts.map +1 -0
  7. package/dist/utils/buildTools/convertGlslIntoBlock.js +217 -0
  8. package/dist/utils/buildTools/convertGlslIntoBlock.js.map +1 -0
  9. package/dist/utils/buildTools/convertGlslIntoShaderProgram.d.ts +26 -0
  10. package/dist/utils/buildTools/convertGlslIntoShaderProgram.d.ts.map +1 -0
  11. package/dist/utils/buildTools/{convertShaderForHardcodedBlock.js → convertGlslIntoShaderProgram.js} +43 -30
  12. package/dist/utils/buildTools/convertGlslIntoShaderProgram.js.map +1 -0
  13. package/dist/utils/buildTools/convertShaders.d.ts +13 -0
  14. package/dist/utils/buildTools/convertShaders.d.ts.map +1 -0
  15. package/dist/utils/buildTools/convertShaders.js +37 -0
  16. package/dist/utils/buildTools/convertShaders.js.map +1 -0
  17. package/dist/utils/buildTools/shaderConverter.d.ts +2 -1
  18. package/dist/utils/buildTools/shaderConverter.d.ts.map +1 -1
  19. package/dist/utils/buildTools/shaderConverter.js +26 -1
  20. package/dist/utils/buildTools/shaderConverter.js.map +1 -1
  21. package/dist/utils/buildTools/watchShaders.js +2 -2
  22. package/dist/utils/buildTools/watchShaders.js.map +1 -1
  23. package/dist/version.d.ts +1 -1
  24. package/dist/version.js +1 -1
  25. package/package.json +1 -1
  26. package/src/serialization/importCustomBlockDefinition.ts +1 -26
  27. package/src/utils/buildTools/buildShaders.ts +1 -1
  28. package/src/utils/buildTools/convertGlslIntoBlock.ts +251 -0
  29. package/src/utils/buildTools/{convertShaderForHardcodedBlock.ts → convertGlslIntoShaderProgram.ts} +56 -35
  30. package/src/utils/buildTools/convertShaders.ts +42 -0
  31. package/src/utils/buildTools/shaderConverter.ts +28 -2
  32. package/src/utils/buildTools/watchShaders.ts +2 -2
  33. package/src/version.ts +1 -1
  34. package/dist/utils/buildTools/convertShaderForHardcodedBlock.d.ts +0 -13
  35. package/dist/utils/buildTools/convertShaderForHardcodedBlock.d.ts.map +0 -1
  36. package/dist/utils/buildTools/convertShaderForHardcodedBlock.js.map +0 -1
@@ -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.12-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.12-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.12-alpha",
3
+ "version": "0.7.13-alpha",
4
4
  "description": "Babylon.js Smart Filter core",
5
5
  "keywords": [
6
6
  "video",
@@ -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
+ }
@@ -1,6 +1,5 @@
1
1
  import * as fs from "fs";
2
- import * as path from "path";
3
- import { parseFragmentShader } from "./shaderConverter.js";
2
+ import { parseFragmentShader, type FragmentShaderInfo } from "./shaderConverter.js";
4
3
 
5
4
  const TYPE_IMPORT_PATH = "@TYPE_IMPORT_PATH@";
6
5
  const VERTEX_SHADER = "@VERTEX_SHADER@";
@@ -13,6 +12,8 @@ const FUNCTIONS = "@FUNCTIONS@";
13
12
  const FUNCTION_NAME = "@FUNCTION_NAME@";
14
13
  const FUNCTION_CODE = "@FUNCTION_CODE@";
15
14
  const UNIFORM_NAMES = "@UNIFORM_NAMES@";
15
+ const EXPORT = "@EXPORT_SHADER_PROGRAM@";
16
+ const IMPORTS = "@IMPORT@";
16
17
 
17
18
  const ConstsTemplate = `
18
19
  const: \`${CONSTS_VALUE}\`,`;
@@ -29,12 +30,13 @@ const CodeLinePrefix = " ";
29
30
  const UniformLinePrefix = " ";
30
31
  const ConstLinePrefix = " ";
31
32
 
32
- const ShaderTemplate = `import type { ShaderProgram } from "${TYPE_IMPORT_PATH}";
33
+ const ImportTemplate = `import type { ShaderProgram } from "${TYPE_IMPORT_PATH}";`;
34
+ const ShaderTemplate = `${IMPORTS}
33
35
 
34
36
  /**
35
37
  * The shader program for the block.
36
38
  */
37
- export const shaderProgram: ShaderProgram = {
39
+ ${EXPORT}const shaderProgram: ShaderProgram = {
38
40
  vertex: ${VERTEX_SHADER},
39
41
  fragment: {
40
42
  uniform: \`${UNIFORMS}\`,${CONSTS_PROPERTY}
@@ -49,7 +51,7 @@ export const shaderProgram: ShaderProgram = {
49
51
  * The uniform names for this shader, to be used in the shader binding so
50
52
  * that the names are always in sync.
51
53
  */
52
- export const uniforms = {
54
+ ${EXPORT}const uniforms = {
53
55
  ${UNIFORM_NAMES}
54
56
  };
55
57
  `;
@@ -57,16 +59,51 @@ ${UNIFORM_NAMES}
57
59
  const UniformNameLinePrefix = " ";
58
60
 
59
61
  /**
60
- * Converts a single shader to a .ts file which can be imported by a hardcoded block
62
+ * Converts a single shader to a .ts file which exports a ShaderProgram which can be imported by a hardcoded block
61
63
  * @param fragmentShaderPath - The path to the fragment file for the shader
62
64
  * @param importPath - The path to import the ShaderProgram type from
63
65
  */
64
- export function convertShaderForHardcodedBlock(fragmentShaderPath: string, importPath: string): void {
65
- console.log(`Processing fragment shader: ${fragmentShaderPath}`);
66
+ export function convertGlslIntoShaderProgram(fragmentShaderPath: string, importPath: string): void {
67
+ const { shaderProgramCode } = extractShaderProgramFromGlsl(fragmentShaderPath, importPath, true, true);
68
+ const shaderFile = fragmentShaderPath.replace(".glsl", ".ts");
69
+ fs.writeFileSync(shaderFile, shaderProgramCode);
70
+ }
66
71
 
72
+ /**
73
+ * Extracts the shader program from a glsl file(s) and returns it as a string which can be written to a .ts file
74
+ * @param fragmentShaderPath - The path to the fragment file for the shader
75
+ * @param importPath - The path to import the ShaderProgram type from
76
+ * @param exportObjects - Whether to export the shaderProgram and uniforms objects
77
+ * @param includeImports - Whether to include the imports in the output
78
+ * @returns The string to write to the .ts file
79
+ */
80
+ export function extractShaderProgramFromGlsl(
81
+ fragmentShaderPath: string,
82
+ importPath: string,
83
+ exportObjects: boolean,
84
+ includeImports: boolean
85
+ ): {
86
+ /**
87
+ * The shader program code
88
+ */
89
+ shaderProgramCode: string;
90
+
91
+ /**
92
+ * The FragmentShaderInfo
93
+ */
94
+ fragmentShaderInfo: FragmentShaderInfo;
95
+ } {
67
96
  // See if there is a corresponding vertex shader
68
97
  let vertexShader: string | undefined = undefined;
69
- const vertexShaderPath = fragmentShaderPath.replace(".fragment.glsl", ".vertex.glsl");
98
+ let extensionToFind: string;
99
+ if (fragmentShaderPath.endsWith(".block.glsl")) {
100
+ extensionToFind = ".block.glsl";
101
+ } else if (fragmentShaderPath.endsWith(".fragment.glsl")) {
102
+ extensionToFind = ".fragment.glsl";
103
+ } else {
104
+ throw new Error("The shader file must end with .fragment.glsl or .block.glsl");
105
+ }
106
+ const vertexShaderPath = fragmentShaderPath.replace(extensionToFind, ".vertex.glsl");
70
107
  if (fs.existsSync(vertexShaderPath)) {
71
108
  vertexShader = fs.readFileSync(vertexShaderPath, "utf8");
72
109
  }
@@ -78,8 +115,7 @@ export function convertShaderForHardcodedBlock(fragmentShaderPath: string, impor
78
115
  const fragmentShader = fs.readFileSync(fragmentShaderPath, "utf8");
79
116
  const fragmentShaderInfo = parseFragmentShader(fragmentShader);
80
117
 
81
- // Write the shader TS file
82
- const shaderFile = fragmentShaderPath.replace(".fragment.glsl", ".shader.ts");
118
+ // Generate the shader program code
83
119
  const functionsSection: string[] = [];
84
120
  for (const shaderFunction of fragmentShaderInfo.shaderCode.functions) {
85
121
  functionsSection.push(
@@ -89,11 +125,12 @@ export function convertShaderForHardcodedBlock(fragmentShaderPath: string, impor
89
125
  )
90
126
  );
91
127
  }
128
+ const imports = includeImports ? ImportTemplate.replace(TYPE_IMPORT_PATH, importPath) : "";
92
129
  const finalContents = ShaderTemplate.replace(VERTEX_SHADER, vertexShader ? `\`${vertexShader}\`` : "undefined")
93
- .replace(TYPE_IMPORT_PATH, importPath)
130
+ .replace(IMPORTS, imports)
94
131
  .replace(UNIFORMS, "\n" + addLinePrefixes(fragmentShaderInfo.shaderCode.uniform || "", UniformLinePrefix))
95
132
  .replace(MAIN_FUNCTION_NAME, fragmentShaderInfo.shaderCode.mainFunctionName)
96
- .replace(MAIN_INPUT_NAME, fragmentShaderInfo.shaderCode.mainInputTexture || '""')
133
+ .replace(MAIN_INPUT_NAME, fragmentShaderInfo.shaderCode.mainInputTexture || "")
97
134
  .replace(
98
135
  CONSTS_PROPERTY,
99
136
  fragmentShaderInfo.shaderCode.const
@@ -110,29 +147,13 @@ export function convertShaderForHardcodedBlock(fragmentShaderPath: string, impor
110
147
  fragmentShaderInfo.uniforms.map((u) => `${u.name}: "${u.name}",`).join("\n"),
111
148
  UniformNameLinePrefix
112
149
  )
113
- );
114
-
115
- fs.writeFileSync(shaderFile, finalContents);
116
- }
117
-
118
- /**
119
- * Converts .fragment.glsl and vertex.glsl file pairs into .shader.ts files which export a ShaderProgram object.
120
- * @param shaderPath - The path to the .glsl files to convert.
121
- * @param importPath - The path to import the ShaderProgram type from.
122
- */
123
- export function convertShaders(shaderPath: string, importPath: string) {
124
- // Get all files in the path
125
- const allFiles = fs.readdirSync(shaderPath, { withFileTypes: true, recursive: true });
126
-
127
- // Find all fragment shaders (excluding the template)
128
- const fragmentShaderFiles = allFiles.filter(
129
- (file) => file.isFile() && file.name.endsWith(".fragment.glsl") && !file.name.endsWith("template.fragment.glsl")
130
- );
150
+ )
151
+ .replace(new RegExp(EXPORT, "g"), exportObjects ? "export " : "");
131
152
 
132
- // Convert all shaders
133
- for (const fragmentShaderFile of fragmentShaderFiles) {
134
- convertShaderForHardcodedBlock(path.join(fragmentShaderFile.path, fragmentShaderFile.name), importPath);
135
- }
153
+ return {
154
+ shaderProgramCode: finalContents,
155
+ fragmentShaderInfo,
156
+ };
136
157
  }
137
158
 
138
159
  /**
@@ -0,0 +1,42 @@
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
+ /**
7
+ * Converts all GLSL files in a path into blocks for use in the build system.
8
+ * @param shaderPath - The path to the .glsl files to convert.
9
+ * @param importPath - The path to import the ShaderProgram type from.
10
+ */
11
+ export function convertShaders(shaderPath: string, importPath: string) {
12
+ // Get all files in the path
13
+ const allFiles = fs.readdirSync(shaderPath, { withFileTypes: true, recursive: true });
14
+
15
+ // Find all shaders (files with .fragment.glsl or .block.glsl extensions)
16
+ const shaderFiles = allFiles.filter(
17
+ (file) => file.isFile() && (file.name.endsWith(".fragment.glsl") || file.name.endsWith(".block.glsl"))
18
+ );
19
+
20
+ // Convert all shaders
21
+ for (const shaderFile of shaderFiles) {
22
+ const fullPathAndFileName = path.join(shaderFile.path, shaderFile.name);
23
+ convertShader(fullPathAndFileName, importPath);
24
+ }
25
+ }
26
+
27
+ /**
28
+ * Converts a single GLSL file into a block class or a ShaderProgram for use in the build system.
29
+ * @param fullPathAndFileName - The full path and file name of the .glsl file to convert.
30
+ * @param importPath - The path to import the ShaderProgram type from.
31
+ */
32
+ export function convertShader(fullPathAndFileName: string, importPath: string): void {
33
+ console.log(`\nProcessing shader: ${fullPathAndFileName}`);
34
+
35
+ if (fullPathAndFileName.endsWith(".fragment.glsl")) {
36
+ console.log("Generating a .ts file that exports a ShaderProgram.");
37
+ convertGlslIntoShaderProgram(fullPathAndFileName, importPath);
38
+ } else if (fullPathAndFileName.endsWith(".block.glsl")) {
39
+ console.log("Generating a .ts file that exports the block as a class.");
40
+ convertGlslIntoBlock(fullPathAndFileName, importPath);
41
+ }
42
+ }
@@ -1,5 +1,6 @@
1
1
  import type { Nullable } from "@babylonjs/core/types";
2
2
  import type { ShaderCode, ShaderFunction } from "./shaderCode.types";
3
+ import { ConnectionPointType } from "../../connection/connectionPointType.js";
3
4
 
4
5
  const GetFunctionNamesRegEx = /\S*\w+\s+(\w+)\s*\(/g;
5
6
 
@@ -31,7 +32,7 @@ export type UniformMetadata = {
31
32
  /**
32
33
  * The type string of the uniform
33
34
  */
34
- type: string;
35
+ type: ConnectionPointType;
35
36
 
36
37
  /**
37
38
  * Optional properties of the uniform
@@ -106,9 +107,34 @@ export function parseFragmentShader(fragmentShader: string): FragmentShaderInfo
106
107
  throw new Error(`Uniforms must have a name: '${uniformLine}'`);
107
108
  }
108
109
 
110
+ // Convert to ConnectionPointType
111
+ let type: ConnectionPointType;
112
+ switch (uniformTypeString) {
113
+ case "float":
114
+ type = ConnectionPointType.Float;
115
+ break;
116
+ case "sampler2D":
117
+ type = ConnectionPointType.Texture;
118
+ break;
119
+ case "vec3":
120
+ type = ConnectionPointType.Color3;
121
+ break;
122
+ case "vec4":
123
+ type = ConnectionPointType.Color4;
124
+ break;
125
+ case "bool":
126
+ type = ConnectionPointType.Boolean;
127
+ break;
128
+ case "vec2":
129
+ type = ConnectionPointType.Vector2;
130
+ break;
131
+ default:
132
+ throw new Error(`Unsupported uniform type: '${uniformTypeString}'`);
133
+ }
134
+
109
135
  uniforms.push({
110
136
  name: uniformName,
111
- type: uniformTypeString,
137
+ type,
112
138
  properties: annotationJSON ? JSON.parse(annotationJSON.replace("//", "").trim()) : undefined,
113
139
  });
114
140
 
@@ -6,9 +6,9 @@
6
6
  * @example node watchShaders.js <shaderPath> <importPath>
7
7
  */
8
8
 
9
- import { convertShaderForHardcodedBlock } from "./convertShaderForHardcodedBlock.js";
10
9
  import { watch } from "chokidar";
11
10
  import { extname } from "path";
11
+ import { convertShader } from "./convertShaders.js";
12
12
 
13
13
  const externalArguments = process.argv.slice(2);
14
14
  if (externalArguments.length >= 2 && externalArguments[0] && externalArguments[1]) {
@@ -29,7 +29,7 @@ if (externalArguments.length >= 2 && externalArguments[0] && externalArguments[1
29
29
  // Wrap in try-catch to prevent the watcher from crashing
30
30
  // if the new shader changes are invalid
31
31
  try {
32
- convertShaderForHardcodedBlock(file, importPath);
32
+ convertShader(file, importPath);
33
33
  console.log(`Successfully updated shader ${file}`);
34
34
  } catch (error) {
35
35
  console.error(`Failed to convert shader ${file}: ${error}`);