@luma.gl/engine 9.1.0-alpha.1 → 9.1.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.
- package/dist/animation-loop/make-animation-loop.js +1 -1
- package/dist/async-texture/async-texture.js +9 -3
- package/dist/dist.dev.js +623 -404
- package/dist/dist.min.js +59 -45
- package/dist/index.cjs +59 -43
- package/dist/index.cjs.map +4 -4
- package/dist/lib/clip-space.d.ts.map +1 -1
- package/dist/lib/clip-space.js +7 -7
- package/dist/model/model.d.ts.map +1 -1
- package/dist/model/model.js +1 -1
- package/dist/shader-inputs.d.ts +7 -5
- package/dist/shader-inputs.d.ts.map +1 -1
- package/dist/shader-inputs.js +16 -10
- package/package.json +3 -3
- package/src/animation-loop/make-animation-loop.ts +1 -1
- package/src/async-texture/async-texture.ts +9 -3
- package/src/lib/clip-space.ts +2 -2
- package/src/model/model.ts +1 -1
- package/src/shader-inputs.ts +26 -20
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"clip-space.d.ts","sourceRoot":"","sources":["../../src/lib/clip-space.ts"],"names":[],"mappings":"AAKA,OAAO,EAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"clip-space.d.ts","sourceRoot":"","sources":["../../src/lib/clip-space.ts"],"names":[],"mappings":"AAKA,OAAO,EAAC,MAAM,EAAC,MAAM,eAAe,CAAC;AACrC,OAAO,EAAC,KAAK,EAAE,UAAU,EAAC,0BAAuB;AAwBjD;;GAEG;AACH,qBAAa,SAAU,SAAQ,KAAK;gBACtB,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,GAAG,aAAa,GAAG,UAAU,CAAC;CAkBtF"}
|
package/dist/lib/clip-space.js
CHANGED
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
// luma.gl
|
|
2
2
|
// SPDX-License-Identifier: MIT
|
|
3
3
|
// Copyright (c) vis.gl contributors
|
|
4
|
-
// ClipSpace
|
|
5
|
-
import { glsl } from '@luma.gl/core';
|
|
6
4
|
import { Model } from "../model/model.js";
|
|
7
5
|
import { Geometry } from "../geometry/geometry.js";
|
|
8
|
-
const CLIPSPACE_VERTEX_SHADER = `\
|
|
6
|
+
const CLIPSPACE_VERTEX_SHADER = /* glsl */ `\
|
|
9
7
|
#version 300 es
|
|
10
8
|
in vec2 aClipSpacePosition;
|
|
11
9
|
in vec2 aTexCoord;
|
|
12
10
|
in vec2 aCoordinate;
|
|
11
|
+
|
|
13
12
|
out vec2 position;
|
|
14
13
|
out vec2 coordinate;
|
|
15
14
|
out vec2 uv;
|
|
15
|
+
|
|
16
16
|
void main(void) {
|
|
17
|
-
gl_Position = vec4(aClipSpacePosition, 0., 1.);
|
|
18
|
-
position = aClipSpacePosition;
|
|
19
|
-
coordinate = aCoordinate;
|
|
20
|
-
uv = aTexCoord;
|
|
17
|
+
gl_Position = vec4(aClipSpacePosition, 0., 1.);
|
|
18
|
+
position = aClipSpacePosition;
|
|
19
|
+
coordinate = aCoordinate;
|
|
20
|
+
uv = aTexCoord;
|
|
21
21
|
}
|
|
22
22
|
`;
|
|
23
23
|
/* eslint-disable indent, no-multi-spaces */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/model/model.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/model/model.ts"],"names":[],"mappings":"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"}
|
package/dist/model/model.js
CHANGED
|
@@ -122,7 +122,6 @@ export class Model {
|
|
|
122
122
|
Object.assign(this.userData, props.userData);
|
|
123
123
|
// Setup shader module inputs
|
|
124
124
|
const moduleMap = Object.fromEntries(this.props.modules?.map(module => [module.name, module]) || []);
|
|
125
|
-
// @ts-expect-error Fix typings
|
|
126
125
|
this.setShaderInputs(props.shaderInputs || new ShaderInputs(moduleMap));
|
|
127
126
|
// Setup shader assembler
|
|
128
127
|
const platformInfo = getPlatformInfo(device);
|
|
@@ -397,6 +396,7 @@ export class Model {
|
|
|
397
396
|
/** Update uniform buffers from the model's shader inputs */
|
|
398
397
|
updateShaderInputs() {
|
|
399
398
|
this._uniformStore.setUniforms(this.shaderInputs.getUniformValues());
|
|
399
|
+
this.setBindings(this.shaderInputs.getBindings());
|
|
400
400
|
// TODO - this is already tracked through buffer/texture update times?
|
|
401
401
|
this.setNeedsRedraw('shaderInputs');
|
|
402
402
|
}
|
package/dist/shader-inputs.d.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import type { UniformValue, Texture, Sampler } from '@luma.gl/core';
|
|
2
|
-
import {
|
|
2
|
+
import { ShaderModule } from '@luma.gl/shadertools';
|
|
3
|
+
type BindingValue = Buffer | Texture | Sampler;
|
|
3
4
|
/** Minimal ShaderModule subset, we don't need shader code etc */
|
|
4
|
-
export type ShaderModuleInputs<PropsT extends Record<string, unknown> = Record<string, unknown>, UniformsT extends Record<string, UniformValue> = Record<string, UniformValue>, BindingsT extends Record<string,
|
|
5
|
+
export type ShaderModuleInputs<PropsT extends Record<string, unknown> = Record<string, unknown>, UniformsT extends Record<string, UniformValue> = Record<string, UniformValue>, BindingsT extends Record<string, BindingValue> = Record<string, BindingValue>> = {
|
|
5
6
|
defaultUniforms?: UniformsT;
|
|
6
|
-
getUniforms?: (
|
|
7
|
+
getUniforms?: (props?: any, oldProps?: any) => Record<string, BindingValue | UniformValue>;
|
|
7
8
|
/** Not used. Used to access props type */
|
|
8
9
|
props?: PropsT;
|
|
9
10
|
bindings?: Record<keyof BindingsT, {
|
|
@@ -37,7 +38,7 @@ export declare class ShaderInputs<ShaderPropsT extends Partial<Record<string, Re
|
|
|
37
38
|
* @param modules
|
|
38
39
|
*/
|
|
39
40
|
constructor(modules: {
|
|
40
|
-
[P in keyof ShaderPropsT]
|
|
41
|
+
[P in keyof ShaderPropsT]?: ShaderModuleInputs<ShaderPropsT[P]>;
|
|
41
42
|
});
|
|
42
43
|
/** Destroy */
|
|
43
44
|
destroy(): void;
|
|
@@ -52,11 +53,12 @@ export declare class ShaderInputs<ShaderPropsT extends Partial<Record<string, Re
|
|
|
52
53
|
* Return the map of modules
|
|
53
54
|
* @todo should should this include the resolved dependencies?
|
|
54
55
|
*/
|
|
55
|
-
getModules():
|
|
56
|
+
getModules(): ShaderModule[];
|
|
56
57
|
/** Get all uniform values for all modules */
|
|
57
58
|
getUniformValues(): Record<keyof ShaderPropsT, Record<string, UniformValue>>;
|
|
58
59
|
/** Merges all bindings for the shader (from the various modules) */
|
|
59
60
|
getBindings(): Record<string, Texture | Sampler>;
|
|
60
61
|
getDebugTable(): Record<string, Record<string, unknown>>;
|
|
61
62
|
}
|
|
63
|
+
export {};
|
|
62
64
|
//# sourceMappingURL=shader-inputs.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shader-inputs.d.ts","sourceRoot":"","sources":["../src/shader-inputs.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,YAAY,EAAE,OAAO,EAAE,OAAO,EAAC,MAAM,eAAe,CAAC;AAGlE,OAAO,
|
|
1
|
+
{"version":3,"file":"shader-inputs.d.ts","sourceRoot":"","sources":["../src/shader-inputs.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,YAAY,EAAE,OAAO,EAAE,OAAO,EAAC,MAAM,eAAe,CAAC;AAGlE,OAAO,EAA8B,YAAY,EAAC,MAAM,sBAAsB,CAAC;AAG/E,KAAK,YAAY,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;AAE/C,iEAAiE;AACjE,MAAM,MAAM,kBAAkB,CAC5B,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChE,SAAS,SAAS,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,EAC7E,SAAS,SAAS,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,IAC3E;IACF,eAAe,CAAC,EAAE,SAAS,CAAC;IAC5B,WAAW,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,EAAE,GAAG,KAAK,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,YAAY,CAAC,CAAC;IAE3F,0CAA0C;IAC1C,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,QAAQ,CAAC,EAAE,MAAM,CACf,MAAM,SAAS,EACf;QACE,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,SAAS,GAAG,SAAS,GAAG,UAAU,CAAC;KAC1C,CACF,CAAC;IAEF,YAAY,CAAC,EAAE,GAAG,CAAC;CACpB,CAAC;AAEF;;;;;;GAMG;AACH,qBAAa,YAAY,CACvB,YAAY,SAAS,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAC7E,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CACxC;IAED;;;OAGG;IAEH,OAAO,EAAE,QAAQ,CAAC;SAAE,CAAC,IAAI,MAAM,YAAY,GAAG,kBAAkB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;KAAC,CAAC,CAAC;IAEpF,gDAAgD;IAChD,cAAc,EAAE,MAAM,CAAC,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC;IACzE,mDAAmD;IACnD,cAAc,EAAE,MAAM,CAAC,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;IAC9E,sCAAsC;IAGtC;;;OAGG;gBAES,OAAO,EAAE;SAAE,CAAC,IAAI,MAAM,YAAY,CAAC,CAAC,EAAE,kBAAkB,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;KAAC;IA4BtF,cAAc;IACd,OAAO,IAAI,IAAI;IAEf;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;SAAE,CAAC,IAAI,MAAM,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;KAAC,CAAC,GAAG,IAAI;IAyBtF,oEAAoE;IAKpE;;;OAGG;IACH,UAAU,IAAI,YAAY,EAAE;IAI5B,6CAA6C;IAC7C,gBAAgB,IAAI,MAAM,CAAC,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAI5E,oEAAoE;IACpE,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC;IAQhD,aAAa,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAYzD"}
|
package/dist/shader-inputs.js
CHANGED
|
@@ -3,7 +3,8 @@
|
|
|
3
3
|
// Copyright (c) vis.gl contributors
|
|
4
4
|
import { log } from '@luma.gl/core';
|
|
5
5
|
// import type {ShaderUniformType, UniformValue, UniformFormat, UniformInfoDevice, Texture, Sampler} from '@luma.gl/core';
|
|
6
|
-
import {
|
|
6
|
+
import { getShaderModuleDependencies } from '@luma.gl/shadertools';
|
|
7
|
+
import { splitUniformsAndBindings } from "./model/split-uniforms-and-bindings.js";
|
|
7
8
|
/**
|
|
8
9
|
* ShaderInputs holds uniform and binding values for one or more shader modules,
|
|
9
10
|
* - It can generate binary data for any uniform buffer
|
|
@@ -30,10 +31,15 @@ export class ShaderInputs {
|
|
|
30
31
|
*/
|
|
31
32
|
// @ts-expect-error Fix typings
|
|
32
33
|
constructor(modules) {
|
|
33
|
-
//
|
|
34
|
-
const
|
|
35
|
-
|
|
34
|
+
// Extract modules with dependencies
|
|
35
|
+
const resolvedModules = getShaderModuleDependencies(Object.values(modules).filter(module => module.dependencies));
|
|
36
|
+
for (const resolvedModule of resolvedModules) {
|
|
37
|
+
// @ts-ignore
|
|
38
|
+
modules[resolvedModule.name] = resolvedModule;
|
|
39
|
+
}
|
|
40
|
+
log.log(1, 'Creating ShaderInputs with modules', Object.keys(modules))();
|
|
36
41
|
// Store the module definitions and create storage for uniform values and binding values, per module
|
|
42
|
+
// @ts-expect-error Fix typings
|
|
37
43
|
this.modules = modules;
|
|
38
44
|
this.moduleUniforms = {};
|
|
39
45
|
this.moduleBindings = {};
|
|
@@ -61,14 +67,14 @@ export class ShaderInputs {
|
|
|
61
67
|
continue; // eslint-disable-line no-continue
|
|
62
68
|
}
|
|
63
69
|
const oldUniforms = this.moduleUniforms[moduleName];
|
|
64
|
-
const
|
|
65
|
-
|
|
70
|
+
const oldBindings = this.moduleBindings[moduleName];
|
|
71
|
+
let uniformsAndBindings = module.getUniforms?.(moduleProps, this.moduleUniforms[moduleName]);
|
|
72
|
+
uniformsAndBindings ||= { ...this.moduleUniforms[moduleName], ...moduleProps };
|
|
73
|
+
const { uniforms, bindings } = splitUniformsAndBindings(uniformsAndBindings);
|
|
66
74
|
this.moduleUniforms[moduleName] = { ...oldUniforms, ...uniforms };
|
|
67
|
-
|
|
75
|
+
this.moduleBindings[moduleName] = { ...oldBindings, ...bindings };
|
|
76
|
+
// this.moduleUniformsChanged ||= moduleName;
|
|
68
77
|
// console.log(`setProps(${String(moduleName)}`, moduleName, this.moduleUniforms[moduleName])
|
|
69
|
-
// TODO - Get Module bindings
|
|
70
|
-
// const bindings = module.getBindings?.(moduleProps);
|
|
71
|
-
// this.moduleUniforms[moduleName] = bindings;
|
|
72
78
|
}
|
|
73
79
|
}
|
|
74
80
|
/** Merges all bindings for the shader (from the various modules) */
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@luma.gl/engine",
|
|
3
|
-
"version": "9.1.0-alpha.
|
|
3
|
+
"version": "9.1.0-alpha.9",
|
|
4
4
|
"description": "3D Engine Components for luma.gl",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -43,11 +43,11 @@
|
|
|
43
43
|
"@luma.gl/core": "^9.0.0-beta"
|
|
44
44
|
},
|
|
45
45
|
"dependencies": {
|
|
46
|
-
"@luma.gl/shadertools": "9.1.0-alpha.
|
|
46
|
+
"@luma.gl/shadertools": "9.1.0-alpha.9",
|
|
47
47
|
"@math.gl/core": "^4.0.0",
|
|
48
48
|
"@math.gl/types": "^4.0.0",
|
|
49
49
|
"@probe.gl/log": "^4.0.8",
|
|
50
50
|
"@probe.gl/stats": "^4.0.8"
|
|
51
51
|
},
|
|
52
|
-
"gitHead": "
|
|
52
|
+
"gitHead": "ff05b21269181dbb782ba7c8c1546900288ee6a1"
|
|
53
53
|
}
|
|
@@ -19,7 +19,7 @@ export function makeAnimationLoop(
|
|
|
19
19
|
): AnimationLoop {
|
|
20
20
|
let renderLoop: AnimationLoopTemplate | null = null;
|
|
21
21
|
|
|
22
|
-
const device = props?.device || luma.createDevice();
|
|
22
|
+
const device = props?.device || luma.createDevice({id: 'animation-loop'});
|
|
23
23
|
|
|
24
24
|
// Create an animation loop;
|
|
25
25
|
const animationLoop = new AnimationLoop({
|
|
@@ -130,11 +130,17 @@ export class AsyncTexture {
|
|
|
130
130
|
async function awaitAllPromises(x: any): Promise<any> {
|
|
131
131
|
x = await x;
|
|
132
132
|
if (Array.isArray(x)) {
|
|
133
|
-
return x.map(awaitAllPromises);
|
|
133
|
+
return await Promise.all(x.map(awaitAllPromises));
|
|
134
134
|
}
|
|
135
135
|
if (x && typeof x === 'object' && x.constructor === Object) {
|
|
136
|
-
const
|
|
137
|
-
|
|
136
|
+
const object: Record<string, any> = x;
|
|
137
|
+
const values = await Promise.all(Object.values(object));
|
|
138
|
+
const keys = Object.keys(object);
|
|
139
|
+
const resolvedObject: Record<string, any> = {};
|
|
140
|
+
for (let i = 0; i < keys.length; i++) {
|
|
141
|
+
resolvedObject[keys[i]] = values[i];
|
|
142
|
+
}
|
|
143
|
+
return resolvedObject;
|
|
138
144
|
}
|
|
139
145
|
return x;
|
|
140
146
|
}
|
package/src/lib/clip-space.ts
CHANGED
|
@@ -3,11 +3,11 @@
|
|
|
3
3
|
// Copyright (c) vis.gl contributors
|
|
4
4
|
|
|
5
5
|
// ClipSpace
|
|
6
|
-
import {Device
|
|
6
|
+
import {Device} from '@luma.gl/core';
|
|
7
7
|
import {Model, ModelProps} from '../model/model';
|
|
8
8
|
import {Geometry} from '../geometry/geometry';
|
|
9
9
|
|
|
10
|
-
const CLIPSPACE_VERTEX_SHADER = glsl`\
|
|
10
|
+
const CLIPSPACE_VERTEX_SHADER = /* glsl */ `\
|
|
11
11
|
#version 300 es
|
|
12
12
|
in vec2 aClipSpacePosition;
|
|
13
13
|
in vec2 aTexCoord;
|
package/src/model/model.ts
CHANGED
|
@@ -213,7 +213,6 @@ export class Model {
|
|
|
213
213
|
const moduleMap = Object.fromEntries(
|
|
214
214
|
this.props.modules?.map(module => [module.name, module]) || []
|
|
215
215
|
);
|
|
216
|
-
// @ts-expect-error Fix typings
|
|
217
216
|
this.setShaderInputs(props.shaderInputs || new ShaderInputs(moduleMap));
|
|
218
217
|
|
|
219
218
|
// Setup shader assembler
|
|
@@ -524,6 +523,7 @@ export class Model {
|
|
|
524
523
|
/** Update uniform buffers from the model's shader inputs */
|
|
525
524
|
updateShaderInputs(): void {
|
|
526
525
|
this._uniformStore.setUniforms(this.shaderInputs.getUniformValues());
|
|
526
|
+
this.setBindings(this.shaderInputs.getBindings());
|
|
527
527
|
// TODO - this is already tracked through buffer/texture update times?
|
|
528
528
|
this.setNeedsRedraw('shaderInputs');
|
|
529
529
|
}
|
package/src/shader-inputs.ts
CHANGED
|
@@ -5,16 +5,19 @@
|
|
|
5
5
|
import type {UniformValue, Texture, Sampler} from '@luma.gl/core';
|
|
6
6
|
import {log} from '@luma.gl/core';
|
|
7
7
|
// import type {ShaderUniformType, UniformValue, UniformFormat, UniformInfoDevice, Texture, Sampler} from '@luma.gl/core';
|
|
8
|
-
import {
|
|
8
|
+
import {getShaderModuleDependencies, ShaderModule} from '@luma.gl/shadertools';
|
|
9
|
+
import {splitUniformsAndBindings} from './model/split-uniforms-and-bindings';
|
|
10
|
+
|
|
11
|
+
type BindingValue = Buffer | Texture | Sampler;
|
|
9
12
|
|
|
10
13
|
/** Minimal ShaderModule subset, we don't need shader code etc */
|
|
11
14
|
export type ShaderModuleInputs<
|
|
12
15
|
PropsT extends Record<string, unknown> = Record<string, unknown>,
|
|
13
16
|
UniformsT extends Record<string, UniformValue> = Record<string, UniformValue>,
|
|
14
|
-
BindingsT extends Record<string,
|
|
17
|
+
BindingsT extends Record<string, BindingValue> = Record<string, BindingValue>
|
|
15
18
|
> = {
|
|
16
19
|
defaultUniforms?: UniformsT;
|
|
17
|
-
getUniforms?: (
|
|
20
|
+
getUniforms?: (props?: any, oldProps?: any) => Record<string, BindingValue | UniformValue>;
|
|
18
21
|
|
|
19
22
|
/** Not used. Used to access props type */
|
|
20
23
|
props?: PropsT;
|
|
@@ -61,16 +64,20 @@ export class ShaderInputs<
|
|
|
61
64
|
* @param modules
|
|
62
65
|
*/
|
|
63
66
|
// @ts-expect-error Fix typings
|
|
64
|
-
constructor(modules: {[P in keyof ShaderPropsT]
|
|
65
|
-
//
|
|
66
|
-
const
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
67
|
+
constructor(modules: {[P in keyof ShaderPropsT]?: ShaderModuleInputs<ShaderPropsT[P]>}) {
|
|
68
|
+
// Extract modules with dependencies
|
|
69
|
+
const resolvedModules = getShaderModuleDependencies(
|
|
70
|
+
Object.values(modules).filter(module => module.dependencies)
|
|
71
|
+
);
|
|
72
|
+
for (const resolvedModule of resolvedModules) {
|
|
73
|
+
// @ts-ignore
|
|
74
|
+
modules[resolvedModule.name] = resolvedModule;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
log.log(1, 'Creating ShaderInputs with modules', Object.keys(modules))();
|
|
72
78
|
|
|
73
79
|
// Store the module definitions and create storage for uniform values and binding values, per module
|
|
80
|
+
// @ts-expect-error Fix typings
|
|
74
81
|
this.modules = modules;
|
|
75
82
|
this.moduleUniforms = {} as Record<keyof ShaderPropsT, Record<string, UniformValue>>;
|
|
76
83
|
this.moduleBindings = {} as Record<keyof ShaderPropsT, Record<string, Texture | Sampler>>;
|
|
@@ -103,17 +110,16 @@ export class ShaderInputs<
|
|
|
103
110
|
}
|
|
104
111
|
|
|
105
112
|
const oldUniforms = this.moduleUniforms[moduleName];
|
|
106
|
-
const
|
|
107
|
-
|
|
108
|
-
|
|
113
|
+
const oldBindings = this.moduleBindings[moduleName];
|
|
114
|
+
let uniformsAndBindings = module.getUniforms?.(moduleProps, this.moduleUniforms[moduleName]);
|
|
115
|
+
uniformsAndBindings ||= {...this.moduleUniforms[moduleName], ...moduleProps};
|
|
116
|
+
|
|
117
|
+
const {uniforms, bindings} = splitUniformsAndBindings(uniformsAndBindings);
|
|
109
118
|
this.moduleUniforms[moduleName] = {...oldUniforms, ...uniforms};
|
|
110
|
-
|
|
119
|
+
this.moduleBindings[moduleName] = {...oldBindings, ...bindings};
|
|
120
|
+
// this.moduleUniformsChanged ||= moduleName;
|
|
111
121
|
|
|
112
122
|
// console.log(`setProps(${String(moduleName)}`, moduleName, this.moduleUniforms[moduleName])
|
|
113
|
-
|
|
114
|
-
// TODO - Get Module bindings
|
|
115
|
-
// const bindings = module.getBindings?.(moduleProps);
|
|
116
|
-
// this.moduleUniforms[moduleName] = bindings;
|
|
117
123
|
}
|
|
118
124
|
}
|
|
119
125
|
|
|
@@ -126,7 +132,7 @@ export class ShaderInputs<
|
|
|
126
132
|
* Return the map of modules
|
|
127
133
|
* @todo should should this include the resolved dependencies?
|
|
128
134
|
*/
|
|
129
|
-
getModules():
|
|
135
|
+
getModules(): ShaderModule[] {
|
|
130
136
|
return Object.values(this.modules);
|
|
131
137
|
}
|
|
132
138
|
|