@luma.gl/shaders 10.0.0-alpha.7 → 10.0.0-alpha.9

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 (86) hide show
  1. package/dist/dist.dev.js +233 -249
  2. package/dist/dist.min.js +124 -124
  3. package/dist/glsl.cjs.map +2 -2
  4. package/dist/index.cjs.map +3 -3
  5. package/dist/index.d.ts +3 -3
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js.map +1 -1
  8. package/dist/lib/shader-assembler-base.cjs +3 -4
  9. package/dist/lib/shader-assembler-base.d.ts +4 -5
  10. package/dist/lib/shader-assembler-base.d.ts.map +1 -1
  11. package/dist/lib/shader-assembler-base.js +3 -4
  12. package/dist/lib/shader-assembler-base.js.map +1 -1
  13. package/dist/lib/shader-assembly/assemble-glsl-shaders.cjs +6 -17
  14. package/dist/lib/shader-assembly/assemble-glsl-shaders.d.ts +5 -4
  15. package/dist/lib/shader-assembly/assemble-glsl-shaders.d.ts.map +1 -1
  16. package/dist/lib/shader-assembly/assemble-glsl-shaders.js +14 -19
  17. package/dist/lib/shader-assembly/assemble-glsl-shaders.js.map +1 -1
  18. package/dist/lib/shader-assembly/assemble-wgsl-shaders.cjs +6 -25
  19. package/dist/lib/shader-assembly/assemble-wgsl-shaders.d.ts +5 -6
  20. package/dist/lib/shader-assembly/assemble-wgsl-shaders.d.ts.map +1 -1
  21. package/dist/lib/shader-assembly/assemble-wgsl-shaders.js +14 -27
  22. package/dist/lib/shader-assembly/assemble-wgsl-shaders.js.map +1 -1
  23. package/dist/lib/shader-assembly/shader-assembly-shared.d.ts +2 -2
  24. package/dist/lib/shader-assembly/shader-assembly-shared.d.ts.map +1 -1
  25. package/dist/lib/shader-assembly/shader-assembly-shared.js.map +1 -1
  26. package/dist/lib/shader-assembly/shader-assembly-types.d.ts +11 -7
  27. package/dist/lib/shader-assembly/shader-assembly-types.d.ts.map +1 -1
  28. package/dist/lib/shader-assembly/shader-hooks.cjs +26 -29
  29. package/dist/lib/shader-assembly/shader-hooks.d.ts +34 -32
  30. package/dist/lib/shader-assembly/shader-hooks.d.ts.map +1 -1
  31. package/dist/lib/shader-assembly/shader-hooks.js +29 -33
  32. package/dist/lib/shader-assembly/shader-hooks.js.map +1 -1
  33. package/dist/lib/shader-assembly/shader-injections.cjs +26 -2
  34. package/dist/lib/shader-assembly/shader-injections.d.ts +20 -7
  35. package/dist/lib/shader-assembly/shader-injections.d.ts.map +1 -1
  36. package/dist/lib/shader-assembly/shader-injections.js +24 -0
  37. package/dist/lib/shader-assembly/shader-injections.js.map +1 -1
  38. package/dist/lib/shader-module/shader-module.cjs +3 -9
  39. package/dist/lib/shader-module/shader-module.d.ts +4 -8
  40. package/dist/lib/shader-module/shader-module.d.ts.map +1 -1
  41. package/dist/lib/shader-module/shader-module.js +3 -6
  42. package/dist/lib/shader-module/shader-module.js.map +1 -1
  43. package/dist/lib/shader-plugin.cjs +38 -17
  44. package/dist/lib/shader-plugin.d.ts +9 -17
  45. package/dist/lib/shader-plugin.d.ts.map +1 -1
  46. package/dist/lib/shader-plugin.js +43 -16
  47. package/dist/lib/shader-plugin.js.map +1 -1
  48. package/dist/modules/engine/clip/clip.cjs +4 -2
  49. package/dist/modules/engine/clip/clip.d.ts.map +1 -1
  50. package/dist/modules/engine/clip/clip.js +4 -2
  51. package/dist/modules/engine/clip/clip.js.map +1 -1
  52. package/dist/modules/engine/filter/filter.cjs +2 -1
  53. package/dist/modules/engine/filter/filter.d.ts.map +1 -1
  54. package/dist/modules/engine/filter/filter.js +2 -1
  55. package/dist/modules/engine/filter/filter.js.map +1 -1
  56. package/dist/modules/lighting/lights/lighting.d.ts +1 -1
  57. package/dist/modules/lighting/lights/lighting.d.ts.map +1 -1
  58. package/dist/modules/lighting/pbr-material/pbr-material-glsl.cjs +2 -2
  59. package/dist/modules/lighting/pbr-material/pbr-material-glsl.d.ts +1 -1
  60. package/dist/modules/lighting/pbr-material/pbr-material-glsl.d.ts.map +1 -1
  61. package/dist/modules/lighting/pbr-material/pbr-material-glsl.js +2 -2
  62. package/dist/modules/lighting/pbr-material/pbr-material-wgsl.cjs +2 -2
  63. package/dist/modules/lighting/pbr-material/pbr-material-wgsl.d.ts +1 -1
  64. package/dist/modules/lighting/pbr-material/pbr-material-wgsl.d.ts.map +1 -1
  65. package/dist/modules/lighting/pbr-material/pbr-material-wgsl.js +2 -2
  66. package/dist/modules/lighting/pbr-material/pbr-material.d.ts +2 -2
  67. package/dist/types/texture-formats.d.ts +1 -1
  68. package/dist/types/texture-formats.d.ts.map +1 -1
  69. package/dist/wgsl.cjs.map +2 -2
  70. package/package.json +3 -3
  71. package/src/index.ts +5 -4
  72. package/src/lib/shader-assembler-base.ts +5 -6
  73. package/src/lib/shader-assembly/assemble-glsl-shaders.ts +27 -26
  74. package/src/lib/shader-assembly/assemble-wgsl-shaders.ts +28 -43
  75. package/src/lib/shader-assembly/shader-assembly-shared.ts +5 -5
  76. package/src/lib/shader-assembly/shader-assembly-types.ts +11 -7
  77. package/src/lib/shader-assembly/shader-hooks.ts +65 -68
  78. package/src/lib/shader-assembly/shader-injections.ts +52 -8
  79. package/src/lib/shader-module/shader-module.ts +7 -14
  80. package/src/lib/shader-plugin.ts +59 -48
  81. package/src/modules/engine/clip/clip.ts +4 -2
  82. package/src/modules/engine/filter/filter.ts +2 -1
  83. package/src/modules/lighting/lights/lighting.ts +1 -1
  84. package/src/modules/lighting/pbr-material/pbr-material-glsl.ts +2 -2
  85. package/src/modules/lighting/pbr-material/pbr-material-wgsl.ts +2 -2
  86. package/src/types/texture-formats.ts +2 -0
package/dist/index.d.ts CHANGED
@@ -6,7 +6,7 @@ export type { PlatformInfo } from "./lib/shader-assembly/platform-info.js";
6
6
  export type { ShaderBindingDebugRow } from "./lib/shader-assembly/wgsl-binding-debug.js";
7
7
  export { scanWGSLInterface, type ScanWGSLInterfaceOptions } from "./lib/shader-assembly/wgsl-interface-scan.js";
8
8
  export type { ShaderModule } from "./lib/shader-module/shader-module.js";
9
- export type { ResolvedShaderPlugins, ResolvedShaderPluginInterStageVariable, ShaderPlugin, ShaderPluginInjection, ShaderPluginInjectionTarget, ShaderPluginInterStageVariable, ShaderPluginInterStageVariableInterpolation } from "./lib/shader-plugin.js";
9
+ export type { ResolvedShaderPlugins, ResolvedShaderPluginInterStageVariable, ShaderPlugin, ShaderPluginInterStageVariable, ShaderPluginInterStageVariableInterpolation } from "./lib/shader-plugin.js";
10
10
  export type { ShaderPass, ShaderPassInputSource, ShaderPassRenderTarget, ShaderSubPass } from "./lib/shader-module/shader-pass.js";
11
11
  export type { CompositeShaderPassComputeOptimization, CompositeShaderPass, CompositeShaderPassStep } from "./lib/shader-module/composite-shader-pass.js";
12
12
  export type { ShaderModuleUniformValue, UniformTypes } from "./lib/utils/uniform-types.js";
@@ -20,8 +20,8 @@ export { getGLSLUniformBlocks, getShaderModuleUniformBlockFields, getShaderModul
20
20
  export { getShaderModuleSource } from "./lib/shader-assembly/assemble-shaders.js";
21
21
  export { resolveModules as _resolveModules } from "./lib/shader-module/shader-module-dependencies.js";
22
22
  export { ShaderAssembler, GLSLShaderAssembler, WGSLShaderAssembler } from "./lib/shader-assembler.js";
23
- export type { ShaderHook, ShaderHookOptions } from "./lib/shader-assembly/shader-hooks.js";
24
- export type { ShaderInjection } from "./lib/shader-assembly/shader-injections.js";
23
+ export type { ShaderHook, ShaderHookImplementation } from "./lib/shader-assembly/shader-hooks.js";
24
+ export type { ShaderInjection, ResolvedShaderInjection } from "./lib/shader-assembly/shader-injections.js";
25
25
  export { getShaderInfo } from "./lib/glsl-utils/get-shader-info.js";
26
26
  export { getQualifierDetails, getPassthroughFS, typeToChannelSuffix, typeToChannelCount, convertToVec4 } from "./lib/glsl-utils/shader-utils.js";
27
27
  export type { ShaderGenerationOptions } from "./lib/shader-generator/generate-shader.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -88,11 +88,10 @@ class ShaderAssembler {
88
88
  }
89
89
  /**
90
90
  * Register a shader hook
91
- * @param hook Stage-prefixed hook signature, such as `vs:OFFSET_POSITION(inout vec4 position)`.
92
- * @param options Optional hook metadata such as always-on header and footer source.
91
+ * @param hook Shared stage and name with language-specific parameters, return type, and source.
93
92
  */
94
- addShaderHook(hook, options) {
95
- this._hookFunctions.push(options ? { ...options, hook } : hook);
93
+ addShaderHook(hook) {
94
+ this._hookFunctions.push(hook);
96
95
  }
97
96
  /**
98
97
  * Remove all registered shader hooks, for example before re-registering hooks for a new
@@ -1,6 +1,6 @@
1
1
  import type { ShaderModule } from "./shader-module/shader-module.js";
2
2
  import type { AssembleShaderProps } from "./shader-assembly/shader-assembly-types.js";
3
- import type { ShaderHook, ShaderHookOptions } from "./shader-assembly/shader-hooks.js";
3
+ import type { ShaderHook } from "./shader-assembly/shader-hooks.js";
4
4
  import type { ShaderTranspiler, ShaderTranspileResult } from "./shader-transpiler/shader-transpiler.js";
5
5
  /**
6
6
  * A stateful version of `assembleShaders` that can be used to assemble shaders.
@@ -12,7 +12,7 @@ export declare abstract class ShaderAssembler {
12
12
  /** Compilers registered by the application, isolated to this assembler. */
13
13
  private readonly _shaderTranspilers;
14
14
  /** Hook functions */
15
- protected readonly _hookFunctions: (ShaderHook | string)[];
15
+ protected readonly _hookFunctions: ShaderHook[];
16
16
  /** Shader modules */
17
17
  protected _defaultModules: ShaderModule[];
18
18
  /** Register or replace the compiler for one input language. */
@@ -35,10 +35,9 @@ export declare abstract class ShaderAssembler {
35
35
  removeDefaultModule(module: ShaderModule): void;
36
36
  /**
37
37
  * Register a shader hook
38
- * @param hook Stage-prefixed hook signature, such as `vs:OFFSET_POSITION(inout vec4 position)`.
39
- * @param options Optional hook metadata such as always-on header and footer source.
38
+ * @param hook Shared stage and name with language-specific parameters, return type, and source.
40
39
  */
41
- addShaderHook(hook: string, options?: ShaderHookOptions): void;
40
+ addShaderHook(hook: ShaderHook): void;
42
41
  /**
43
42
  * Remove all registered shader hooks, for example before re-registering hooks for a new
44
43
  * application configuration. Default modules are not affected.
@@ -1 +1 @@
1
- {"version":3,"file":"shader-assembler-base.d.ts","sourceRoot":"","sources":["../../src/lib/shader-assembler-base.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,YAAY,EAAC,yCAAsC;AAEhE,OAAO,KAAK,EAAC,mBAAmB,EAAC,mDAAgD;AACjF,OAAO,KAAK,EAAC,UAAU,EAAE,iBAAiB,EAAC,0CAAuC;AAElF,OAAO,KAAK,EACV,gBAAgB,EAChB,qBAAqB,EAEtB,iDAA8C;AAG/C;;;GAGG;AACH,8BAAsB,eAAe;IACnC,kDAAkD;IAClD,QAAQ,CAAC,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAAC;IAClD,2EAA2E;IAC3E,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAuC;IAC1E,qBAAqB;IACrB,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC,UAAU,GAAG,MAAM,CAAC,EAAE,CAAM;IAChE,qBAAqB;IACrB,SAAS,CAAC,eAAe,EAAE,YAAY,EAAE,CAAM;IAE/C,+DAA+D;IAC/D,mBAAmB,CAAC,UAAU,EAAE,gBAAgB,GAAG,IAAI;IAIvD,kDAAkD;IAClD,sBAAsB,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IAIpD,wFAAwF;IACxF,SAAS,CAAC,gBAAgB,CACxB,KAAK,EAAE,mBAAmB,EAC1B,OAAO,EAAE,YAAY,EAAE,EACvB,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACjC,KAAK,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,SAAS,GACxC,qBAAqB,GAAG;QAAC,OAAO,EAAE,YAAY,EAAE,CAAA;KAAC;IAsDpD;;;OAGG;IACH,gBAAgB,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI;IAU5C;;;OAGG;IACH,mBAAmB,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI;IAK/C;;;;OAIG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,IAAI;IAI9D;;;OAGG;IACH,gBAAgB,IAAI,IAAI;IAIxB;;OAEG;IACH,cAAc,CAAC,UAAU,GAAE,YAAY,EAAO,GAAG,YAAY,EAAE;CA0BhE"}
1
+ {"version":3,"file":"shader-assembler-base.d.ts","sourceRoot":"","sources":["../../src/lib/shader-assembler-base.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,YAAY,EAAC,yCAAsC;AAEhE,OAAO,KAAK,EAAC,mBAAmB,EAAC,mDAAgD;AACjF,OAAO,KAAK,EAAC,UAAU,EAAC,0CAAuC;AAE/D,OAAO,KAAK,EACV,gBAAgB,EAChB,qBAAqB,EAEtB,iDAA8C;AAG/C;;;GAGG;AACH,8BAAsB,eAAe;IACnC,kDAAkD;IAClD,QAAQ,CAAC,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,CAAC;IAClD,2EAA2E;IAC3E,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAuC;IAC1E,qBAAqB;IACrB,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,UAAU,EAAE,CAAM;IACrD,qBAAqB;IACrB,SAAS,CAAC,eAAe,EAAE,YAAY,EAAE,CAAM;IAE/C,+DAA+D;IAC/D,mBAAmB,CAAC,UAAU,EAAE,gBAAgB,GAAG,IAAI;IAIvD,kDAAkD;IAClD,sBAAsB,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IAIpD,wFAAwF;IACxF,SAAS,CAAC,gBAAgB,CACxB,KAAK,EAAE,mBAAmB,EAC1B,OAAO,EAAE,YAAY,EAAE,EACvB,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACjC,KAAK,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,SAAS,GACxC,qBAAqB,GAAG;QAAC,OAAO,EAAE,YAAY,EAAE,CAAA;KAAC;IAsDpD;;;OAGG;IACH,gBAAgB,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI;IAU5C;;;OAGG;IACH,mBAAmB,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI;IAK/C;;;OAGG;IACH,aAAa,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IAIrC;;;OAGG;IACH,gBAAgB,IAAI,IAAI;IAIxB;;OAEG;IACH,cAAc,CAAC,UAAU,GAAE,YAAY,EAAO,GAAG,YAAY,EAAE;CA0BhE"}
@@ -86,11 +86,10 @@ export class ShaderAssembler {
86
86
  }
87
87
  /**
88
88
  * Register a shader hook
89
- * @param hook Stage-prefixed hook signature, such as `vs:OFFSET_POSITION(inout vec4 position)`.
90
- * @param options Optional hook metadata such as always-on header and footer source.
89
+ * @param hook Shared stage and name with language-specific parameters, return type, and source.
91
90
  */
92
- addShaderHook(hook, options) {
93
- this._hookFunctions.push(options ? { ...options, hook } : hook);
91
+ addShaderHook(hook) {
92
+ this._hookFunctions.push(hook);
94
93
  }
95
94
  /**
96
95
  * Remove all registered shader hooks, for example before re-registering hooks for a new
@@ -1 +1 @@
1
- {"version":3,"file":"shader-assembler-base.js","sourceRoot":"","sources":["../../src/lib/shader-assembler-base.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shader-assembler-base.js","sourceRoot":"","sources":["../../src/lib/shader-assembler-base.ts"],"names":[],"mappings":"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"}
@@ -61,7 +61,6 @@ function assembleGLSLShaderPair(options) {
61
61
  };
62
62
  }
63
63
  function assembleShaderGLSL(platformInfo, options) {
64
- var _a;
65
64
  const { source, stage, language = "glsl", modules, defines = {}, hookFunctions = [], inject = {}, pluginInjections = {}, pluginVertexInputs = {}, pluginInterStageVariables = {}, prologue = true, log } = options;
66
65
  (0, import_assert.assert)(typeof source === "string", "shader source must be a string");
67
66
  const sourceVersion = language === "glsl" ? (0, import_get_shader_info.getShaderInfo)(source).version : -1;
@@ -95,13 +94,16 @@ ${getApplicationDefines(allDefines)}
95
94
  `;
96
95
  break;
97
96
  }
98
- const hookFunctionMap = (0, import_shader_hooks.normalizeShaderHooks)(hookFunctions);
97
+ const hookFunctionMap = (0, import_shader_hooks.normalizeShaderHooks)(hookFunctions, options.pluginHooks, "glsl");
99
98
  const hookInjections = {};
100
99
  const declInjections = {};
101
100
  const mainInjections = {};
102
101
  (0, import_shader_assembly_shared.appendInjections)(pluginInjections, hookInjections, declInjections, mainInjections);
103
- for (const key in inject) {
104
- const injection = typeof inject[key] === "string" ? { injection: inject[key], order: 0 } : inject[key];
102
+ const applicationInjections = Array.isArray(inject) ? (0, import_shader_injections.resolveShaderInjections)(inject, "glsl") : {};
103
+ (0, import_shader_assembly_shared.appendInjections)(applicationInjections, hookInjections, declInjections, mainInjections);
104
+ const injectionMap = Array.isArray(inject) ? {} : inject;
105
+ for (const key in injectionMap) {
106
+ const injection = typeof injectionMap[key] === "string" ? { injection: injectionMap[key], order: 0 } : injectionMap[key];
105
107
  const match = /^(v|f)s:(#)?([\w-]+)$/.exec(key);
106
108
  if (match) {
107
109
  const hash = match[2];
@@ -143,19 +145,6 @@ ${getApplicationDefines(allDefines)}
143
145
  }
144
146
  const moduleSource = (0, import_shader_assembly_shared.getShaderModuleSource)(module2, stage, log);
145
147
  assembledSource += moduleSource;
146
- const injections = ((_a = module2.instance) == null ? void 0 : _a.normalizedInjections[stage]) || {};
147
- for (const key in injections) {
148
- const match = /^(v|f)s:#([\w-]+)$/.exec(key);
149
- if (match) {
150
- const name = match[2];
151
- const injectionType = name === "decl" ? declInjections : mainInjections;
152
- injectionType[key] = injectionType[key] || [];
153
- injectionType[key].push(injections[key]);
154
- } else {
155
- hookInjections[key] = hookInjections[key] || [];
156
- hookInjections[key].push(injections[key]);
157
- }
158
- }
159
148
  }
160
149
  (0, import_shader_hooks.validateShaderHookInjections)(hookFunctionMap, hookInjections, stage);
161
150
  assembledSource += "// ----- MAIN SHADER SOURCE -------------------------";
@@ -2,7 +2,7 @@ import { type AssembleShaderOptions, type GetUniformsFunc, type ShaderAssemblyLo
2
2
  import { PlatformInfo } from "./platform-info.js";
3
3
  import { type ShaderModule } from "../shader-module/shader-module.js";
4
4
  import { type ShaderHook } from "./shader-hooks.js";
5
- import { type ShaderInjection } from "./shader-injections.js";
5
+ import { type ShaderInjection, type ResolvedShaderInjection } from "./shader-injections.js";
6
6
  import { type AttributeShaderType } from "../../types.js";
7
7
  import { type ResolvedShaderPluginInterStageVariable } from "../shader-plugin.js";
8
8
  /**
@@ -37,9 +37,10 @@ export declare function assembleShaderGLSL(platformInfo: PlatformInfo, options:
37
37
  stage: 'vertex' | 'fragment';
38
38
  modules: ShaderModule[];
39
39
  defines?: Record<string, boolean | number>;
40
- hookFunctions?: readonly (ShaderHook | string)[];
41
- inject?: Record<string, string | ShaderInjection>;
42
- pluginInjections?: Record<string, ShaderInjection[]>;
40
+ hookFunctions?: readonly ShaderHook[];
41
+ pluginHooks?: readonly ShaderHook[];
42
+ inject?: readonly ShaderInjection[] | Record<string, string | ResolvedShaderInjection>;
43
+ pluginInjections?: Record<string, ResolvedShaderInjection[]>;
43
44
  pluginVertexInputs?: Record<string, AttributeShaderType>;
44
45
  pluginInterStageVariables?: Record<string, ResolvedShaderPluginInterStageVariable>;
45
46
  prologue?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"assemble-glsl-shaders.d.ts","sourceRoot":"","sources":["../../../src/lib/shader-assembly/assemble-glsl-shaders.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,KAAK,qBAAqB,EAC1B,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACvB,mCAAgC;AAOjC,OAAO,EAAC,YAAY,EAAC,2BAAwB;AAC7C,OAAO,EAAC,KAAK,YAAY,EAAgC,0CAAuC;AAChG,OAAO,EACL,KAAK,UAAU,EAIhB,0BAAuB;AACxB,OAAO,EAAC,KAAK,eAAe,EAAe,+BAA4B;AACvE,OAAO,EAAC,KAAK,mBAAmB,EAAC,uBAAoB;AACrD,OAAO,EAAC,KAAK,sCAAsC,EAAC,4BAAyB;AAS7E;;;GAGG;AACH,eAAO,MAAM,wBAAwB,6BAEpC,CAAC;AAEF;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,qBAAqB,GAAG;IAC/B,oBAAoB;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,sBAAsB;IACtB,EAAE,CAAC,EAAE,MAAM,CAAC;CACb,GACA;IACD,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,eAAe,CAAC;CAC9B,CAoBA;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE;IACP,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,KAAK,EAAE,QAAQ,GAAG,UAAU,CAAC;IAC7B,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC,CAAC;IAC3C,aAAa,CAAC,EAAE,SAAS,CAAC,UAAU,GAAG,MAAM,CAAC,EAAE,CAAC;IACjD,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,eAAe,CAAC,CAAC;IAClD,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,EAAE,CAAC,CAAC;IACrD,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IACzD,yBAAyB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,sCAAsC,CAAC,CAAC;IACnF,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,GAAG,CAAC,EAAE,iBAAiB,CAAC;CACzB,UAqKF;AAED;;;;;;;;;;;;;;;;;;EAkBE;AAEF,sEAAsE;AACtE,wBAAgB,qBAAqB,CAAC,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAAM,GAAG,MAAM,CAS5F"}
1
+ {"version":3,"file":"assemble-glsl-shaders.d.ts","sourceRoot":"","sources":["../../../src/lib/shader-assembly/assemble-glsl-shaders.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,KAAK,qBAAqB,EAC1B,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACvB,mCAAgC;AAOjC,OAAO,EAAC,YAAY,EAAC,2BAAwB;AAC7C,OAAO,EAAC,KAAK,YAAY,EAAgC,0CAAuC;AAChG,OAAO,EACL,KAAK,UAAU,EAIhB,0BAAuB;AACxB,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,uBAAuB,EAG7B,+BAA4B;AAC7B,OAAO,EAAC,KAAK,mBAAmB,EAAC,uBAAoB;AACrD,OAAO,EAAC,KAAK,sCAAsC,EAAC,4BAAyB;AAS7E;;;GAGG;AACH,eAAO,MAAM,wBAAwB,6BAEpC,CAAC;AAEF;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,qBAAqB,GAAG;IAC/B,oBAAoB;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,sBAAsB;IACtB,EAAE,CAAC,EAAE,MAAM,CAAC;CACb,GACA;IACD,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,eAAe,CAAC;CAC9B,CAoBA;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE;IACP,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,KAAK,EAAE,QAAQ,GAAG,UAAU,CAAC;IAC7B,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC,CAAC;IAC3C,aAAa,CAAC,EAAE,SAAS,UAAU,EAAE,CAAC;IACtC,WAAW,CAAC,EAAE,SAAS,UAAU,EAAE,CAAC;IACpC,MAAM,CAAC,EAAE,SAAS,eAAe,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,uBAAuB,CAAC,CAAC;IACvF,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,uBAAuB,EAAE,CAAC,CAAC;IAC7D,kBAAkB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;IACzD,yBAAyB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,sCAAsC,CAAC,CAAC;IACnF,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,GAAG,CAAC,EAAE,iBAAiB,CAAC;CACzB,UAgKF;AAED;;;;;;;;;;;;;;;;;;EAkBE;AAEF,sEAAsE;AACtE,wBAAgB,qBAAqB,CAAC,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAAM,GAAG,MAAM,CAS5F"}
@@ -5,7 +5,7 @@ import { getShaderModuleDependencies } from "../shader-module/shader-module-depe
5
5
  import { assembleGetUniforms, appendInjections, getShaderModuleSource, INJECT_SHADER_DECLARATIONS } from "./shader-assembly-shared.js";
6
6
  import { checkShaderModuleDeprecations } from "../shader-module/shader-module.js";
7
7
  import { normalizeShaderHooks, validateShaderHookInjections, getShaderHooks } from "./shader-hooks.js";
8
- import { injectShader } from "./shader-injections.js";
8
+ import { injectShader, resolveShaderInjections } from "./shader-injections.js";
9
9
  import { assert } from "../utils/assert.js";
10
10
  import { getShaderInfo } from "../glsl-utils/get-shader-info.js";
11
11
  import { getPlatformShaderDefines } from "./platform-defines.js";
@@ -92,14 +92,23 @@ ${getApplicationDefines(allDefines)}
92
92
  `;
93
93
  break;
94
94
  }
95
- const hookFunctionMap = normalizeShaderHooks(hookFunctions);
95
+ const hookFunctionMap = normalizeShaderHooks(hookFunctions, options.pluginHooks, 'glsl');
96
96
  // Add source of dependent modules in resolved order
97
97
  const hookInjections = {};
98
98
  const declInjections = {};
99
99
  const mainInjections = {};
100
100
  appendInjections(pluginInjections, hookInjections, declInjections, mainInjections);
101
- for (const key in inject) {
102
- const injection = typeof inject[key] === 'string' ? { injection: inject[key], order: 0 } : inject[key];
101
+ const applicationInjections = Array.isArray(inject)
102
+ ? resolveShaderInjections(inject, 'glsl')
103
+ : {};
104
+ appendInjections(applicationInjections, hookInjections, declInjections, mainInjections);
105
+ const injectionMap = Array.isArray(inject)
106
+ ? {}
107
+ : inject;
108
+ for (const key in injectionMap) {
109
+ const injection = typeof injectionMap[key] === 'string'
110
+ ? { injection: injectionMap[key], order: 0 }
111
+ : injectionMap[key];
103
112
  const match = /^(v|f)s:(#)?([\w-]+)$/.exec(key);
104
113
  if (match) {
105
114
  const hash = match[2];
@@ -146,22 +155,8 @@ ${getApplicationDefines(allDefines)}
146
155
  const moduleSource = getShaderModuleSource(module, stage, log);
147
156
  // Add the module source, and a #define that declares it presence
148
157
  assembledSource += moduleSource;
149
- const injections = module.instance?.normalizedInjections[stage] || {};
150
- for (const key in injections) {
151
- const match = /^(v|f)s:#([\w-]+)$/.exec(key);
152
- if (match) {
153
- const name = match[2];
154
- const injectionType = name === 'decl' ? declInjections : mainInjections;
155
- injectionType[key] = injectionType[key] || [];
156
- injectionType[key].push(injections[key]);
157
- }
158
- else {
159
- hookInjections[key] = hookInjections[key] || [];
160
- hookInjections[key].push(injections[key]);
161
- }
162
- }
163
158
  }
164
- // GLSL module injections are GLSL source, so application, plugin, and module hook targets must exist.
159
+ // Named hook injections must target a registered hook.
165
160
  validateShaderHookInjections(hookFunctionMap, hookInjections, stage);
166
161
  assembledSource += '// ----- MAIN SHADER SOURCE -------------------------';
167
162
  // For injectShader
@@ -1 +1 @@
1
- {"version":3,"file":"assemble-glsl-shaders.js","sourceRoot":"","sources":["../../../src/lib/shader-assembly/assemble-glsl-shaders.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"assemble-glsl-shaders.js","sourceRoot":"","sources":["../../../src/lib/shader-assembly/assemble-glsl-shaders.ts"],"names":[],"mappings":"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"}
@@ -32,7 +32,6 @@ __export(assemble_wgsl_shaders_exports, {
32
32
  getBindingRegistryKey: () => getBindingRegistryKey,
33
33
  getUsedBindingsByGroupFromApplicationWGSL: () => getUsedBindingsByGroupFromApplicationWGSL,
34
34
  getWGSLDeclarationInjections: () => getWGSLDeclarationInjections,
35
- getWGSLModuleInjections: () => getWGSLModuleInjections,
36
35
  getWGSLModuleNameAtIndex: () => getWGSLModuleNameAtIndex,
37
36
  getWGSLShaderHooks: () => getWGSLShaderHooks,
38
37
  isInApplicationWGSLSection: () => isInApplicationWGSLSection,
@@ -107,13 +106,16 @@ function assembleShaderWGSL(platformInfo, options) {
107
106
  const pluginVaryingAssembly = (0, import_shader_plugin_varyings.assembleShaderPluginInterStageVariablesWGSL)(pluginVertexInputAssembly.source, vertexEntryPoint, fragmentEntryPoint, pluginInterStageVariables);
108
107
  const coreSource = pluginVaryingAssembly.source;
109
108
  let assembledSource = "";
110
- const hookFunctionMap = (0, import_shader_hooks.normalizeShaderHooks)(hookFunctions);
109
+ const hookFunctionMap = (0, import_shader_hooks.normalizeShaderHooks)(hookFunctions, options.pluginHooks, "wgsl");
111
110
  const hookInjections = {};
112
111
  const declInjections = {};
113
112
  const mainInjections = {};
114
113
  (0, import_shader_assembly_shared.appendInjections)(pluginInjections, hookInjections, declInjections, mainInjections);
115
- for (const key in inject) {
116
- const injection = typeof inject[key] === "string" ? { injection: inject[key], order: 0 } : inject[key];
114
+ const applicationInjections = Array.isArray(inject) ? (0, import_shader_injections.resolveShaderInjections)(inject, "wgsl") : {};
115
+ (0, import_shader_assembly_shared.appendInjections)(applicationInjections, hookInjections, declInjections, mainInjections);
116
+ const injectionMap = Array.isArray(inject) ? {} : inject;
117
+ for (const key in injectionMap) {
118
+ const injection = typeof injectionMap[key] === "string" ? { injection: injectionMap[key], order: 0 } : injectionMap[key];
117
119
  const match = /^(v|f)s:(#)?([\w-]+)$/.exec(key);
118
120
  if (match) {
119
121
  const hash = match[2];
@@ -156,19 +158,6 @@ function assembleShaderWGSL(platformInfo, options) {
156
158
  (0, import_shader_module.checkShaderModuleDeprecations)(module2, coreSource, log);
157
159
  }
158
160
  assembledSource += moduleSource;
159
- const injections = getWGSLModuleInjections(module2);
160
- for (const key in injections) {
161
- const match = /^(v|f)s:#([\w-]+)$/.exec(key);
162
- if (match) {
163
- const name = match[2];
164
- const injectionType = name === "decl" ? declInjections : mainInjections;
165
- injectionType[key] = injectionType[key] || [];
166
- injectionType[key].push(injections[key]);
167
- } else if ((0, import_shader_hooks.isShaderHookRegistered)(hookFunctionMap, key)) {
168
- hookInjections[key] = hookInjections[key] || [];
169
- hookInjections[key].push(injections[key]);
170
- }
171
- }
172
161
  }
173
162
  assembledSource += import_shader_assembly_shared.INJECT_SHADER_DECLARATIONS;
174
163
  assembledSource = (0, import_shader_injections.injectShader)(assembledSource, stage, getWGSLDeclarationInjections(declInjections), false, "wgsl", { vertex: vertexEntryPoint, fragment: fragmentEntryPoint });
@@ -221,13 +210,6 @@ function appendGeneratedVaryingInjections(assembly, declarationInjections, mainI
221
210
  });
222
211
  }
223
212
  }
224
- function getWGSLModuleInjections(module2) {
225
- var _a, _b;
226
- return {
227
- ...((_a = module2.instance) == null ? void 0 : _a.normalizedInjections.vertex) || {},
228
- ...((_b = module2.instance) == null ? void 0 : _b.normalizedInjections.fragment) || {}
229
- };
230
- }
231
213
  function getWGSLDeclarationInjections(declarationInjections) {
232
214
  const unifiedDeclarations = [
233
215
  ...declarationInjections["vs:#decl"] || [],
@@ -486,7 +468,6 @@ function formatWGSLSourceSnippet(source) {
486
468
  getBindingRegistryKey,
487
469
  getUsedBindingsByGroupFromApplicationWGSL,
488
470
  getWGSLDeclarationInjections,
489
- getWGSLModuleInjections,
490
471
  getWGSLModuleNameAtIndex,
491
472
  getWGSLShaderHooks,
492
473
  isInApplicationWGSLSection,
@@ -3,7 +3,7 @@ import { type ShaderLayout } from "../../types.js";
3
3
  import { type AssembleWGSLShaderOptions, type GetUniformsFunc, type WGSLBindingAssignment, type AssembleStageOptions, type WGSLApplicationRelocationState, type BindingRelocationContext, type WGSLRelocationParams } from "./shader-assembly-types.js";
4
4
  import { PlatformInfo } from "./platform-info.js";
5
5
  import { normalizeShaderHooks } from "./shader-hooks.js";
6
- import { type ShaderInjection } from "./shader-injections.js";
6
+ import { type ResolvedShaderInjection } from "./shader-injections.js";
7
7
  import { type ShaderModule } from "../shader-module/shader-module.js";
8
8
  import { type WGSLBindingDeclarationMatch } from "./wgsl-binding-scan.js";
9
9
  export declare const RESERVED_APPLICATION_GROUP_0_BINDING_LIMIT = 100;
@@ -32,15 +32,14 @@ export declare function assembleShaderWGSL(platformInfo: PlatformInfo, options:
32
32
  source: string;
33
33
  bindingAssignments: WGSLBindingAssignment[];
34
34
  };
35
- export declare function appendGeneratedVertexInputInjections(declarations: string, initialization: string, declarationInjections: Record<string, ShaderInjection[]>, mainInjections: Record<string, ShaderInjection[]>): void;
35
+ export declare function appendGeneratedVertexInputInjections(declarations: string, initialization: string, declarationInjections: Record<string, ResolvedShaderInjection[]>, mainInjections: Record<string, ResolvedShaderInjection[]>): void;
36
36
  export declare function appendGeneratedVaryingInjections(assembly: {
37
37
  declarations: string;
38
38
  vertexInitialization: string;
39
39
  fragmentInitialization: string;
40
- }, declarationInjections: Record<string, ShaderInjection[]>, mainInjections: Record<string, ShaderInjection[]>): void;
41
- export declare function getWGSLModuleInjections(module: ShaderModule): Record<string, ShaderInjection>;
42
- export declare function getWGSLDeclarationInjections(declarationInjections: Record<string, ShaderInjection[]>): Record<string, ShaderInjection[]>;
43
- export declare function getWGSLShaderHooks(hookFunctionMap: ReturnType<typeof normalizeShaderHooks>, hookInjections: Record<string, ShaderInjection[]>): string;
40
+ }, declarationInjections: Record<string, ResolvedShaderInjection[]>, mainInjections: Record<string, ResolvedShaderInjection[]>): void;
41
+ export declare function getWGSLDeclarationInjections(declarationInjections: Record<string, ResolvedShaderInjection[]>): Record<string, ResolvedShaderInjection[]>;
42
+ export declare function getWGSLShaderHooks(hookFunctionMap: ReturnType<typeof normalizeShaderHooks>, hookInjections: Record<string, ResolvedShaderInjection[]>): string;
44
43
  export declare function getUsedBindingsByGroupFromApplicationWGSL(source: string): Map<number, Set<number>>;
45
44
  export declare function relocateWGSLApplicationBindings(source: string): {
46
45
  source: string;
@@ -1 +1 @@
1
- {"version":3,"file":"assemble-wgsl-shaders.d.ts","sourceRoot":"","sources":["../../../src/lib/shader-assembly/assemble-wgsl-shaders.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"assemble-wgsl-shaders.d.ts","sourceRoot":"","sources":["../../../src/lib/shader-assembly/assemble-wgsl-shaders.ts"],"names":[],"mappings":"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"}
@@ -9,8 +9,8 @@ import { assert } from "../utils/assert.js";
9
9
  import { preprocess } from "../preprocessor/preprocessor.js";
10
10
  import { assembleShaderPluginVertexInputsWGSL } from "./shader-plugin-vertex-inputs.js";
11
11
  import { assembleShaderPluginInterStageVariablesWGSL } from "./shader-plugin-varyings.js";
12
- import { normalizeShaderHooks, validateShaderHookInjections, isShaderHookRegistered, getShaderHooks } from "./shader-hooks.js";
13
- import { injectShader } from "./shader-injections.js";
12
+ import { normalizeShaderHooks, validateShaderHookInjections, getShaderHooks } from "./shader-hooks.js";
13
+ import { injectShader, resolveShaderInjections } from "./shader-injections.js";
14
14
  import { checkShaderModuleDeprecations } from "../shader-module/shader-module.js";
15
15
  import { getWGSLBindingDeclarationMatches, WGSL_EXPLICIT_BINDING_DECLARATION_REGEXES, WGSL_BINDING_DECLARATION_REGEXES, replaceWGSLBindingDeclarationMatches, hasWGSLAutoBinding, MODULE_WGSL_BINDING_DECLARATION_REGEXES, getFirstWGSLAutoBindingDeclarationMatch } from "./wgsl-binding-scan.js";
16
16
  export const RESERVED_APPLICATION_GROUP_0_BINDING_LIMIT = 100;
@@ -80,14 +80,23 @@ export function assembleShaderWGSL(platformInfo, options) {
80
80
  // ${isVertex ? '' : FRAGMENT_SHADER_PROLOGUE}
81
81
  // `
82
82
  // `;
83
- const hookFunctionMap = normalizeShaderHooks(hookFunctions);
83
+ const hookFunctionMap = normalizeShaderHooks(hookFunctions, options.pluginHooks, 'wgsl');
84
84
  // Add source of dependent modules in resolved order
85
85
  const hookInjections = {};
86
86
  const declInjections = {};
87
87
  const mainInjections = {};
88
88
  appendInjections(pluginInjections, hookInjections, declInjections, mainInjections);
89
- for (const key in inject) {
90
- const injection = typeof inject[key] === 'string' ? { injection: inject[key], order: 0 } : inject[key];
89
+ const applicationInjections = Array.isArray(inject)
90
+ ? resolveShaderInjections(inject, 'wgsl')
91
+ : {};
92
+ appendInjections(applicationInjections, hookInjections, declInjections, mainInjections);
93
+ const injectionMap = Array.isArray(inject)
94
+ ? {}
95
+ : inject;
96
+ for (const key in injectionMap) {
97
+ const injection = typeof injectionMap[key] === 'string'
98
+ ? { injection: injectionMap[key], order: 0 }
99
+ : injectionMap[key];
91
100
  const match = /^(v|f)s:(#)?([\w-]+)$/.exec(key);
92
101
  if (match) {
93
102
  const hash = match[2];
@@ -137,22 +146,6 @@ export function assembleShaderWGSL(platformInfo, options) {
137
146
  checkShaderModuleDeprecations(module, coreSource, log);
138
147
  }
139
148
  assembledSource += moduleSource;
140
- const injections = getWGSLModuleInjections(module);
141
- for (const key in injections) {
142
- const match = /^(v|f)s:#([\w-]+)$/.exec(key);
143
- if (match) {
144
- const name = match[2];
145
- const injectionType = name === 'decl' ? declInjections : mainInjections;
146
- injectionType[key] = injectionType[key] || [];
147
- injectionType[key].push(injections[key]);
148
- }
149
- else if (isShaderHookRegistered(hookFunctionMap, key)) {
150
- // `ShaderModule.inject` is not language-specific and often carries GLSL-only hook
151
- // injections, so WGSL silently skips module injections into hooks it has not declared.
152
- hookInjections[key] = hookInjections[key] || [];
153
- hookInjections[key].push(injections[key]);
154
- }
155
- }
156
149
  }
157
150
  // For injectShader
158
151
  assembledSource += INJECT_SHADER_DECLARATIONS;
@@ -208,12 +201,6 @@ export function appendGeneratedVaryingInjections(assembly, declarationInjections
208
201
  });
209
202
  }
210
203
  }
211
- export function getWGSLModuleInjections(module) {
212
- return {
213
- ...(module.instance?.normalizedInjections.vertex || {}),
214
- ...(module.instance?.normalizedInjections.fragment || {})
215
- };
216
- }
217
204
  export function getWGSLDeclarationInjections(declarationInjections) {
218
205
  const unifiedDeclarations = [
219
206
  ...(declarationInjections['vs:#decl'] || []),