@luma.gl/engine 8.6.0-alpha.5 → 9.0.0-alpha.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (129) hide show
  1. package/dist/animation/key-frames.d.ts +1 -0
  2. package/dist/animation/key-frames.d.ts.map +1 -1
  3. package/dist/animation/key-frames.js.map +1 -1
  4. package/dist/animation/timeline.d.ts +1 -1
  5. package/dist/animation/timeline.d.ts.map +1 -1
  6. package/dist/animation/timeline.js.map +1 -1
  7. package/dist/geometries/cone-geometry.d.ts.map +1 -1
  8. package/dist/geometries/cone-geometry.js +1 -1
  9. package/dist/geometries/cone-geometry.js.map +1 -1
  10. package/dist/geometries/cube-geometry.d.ts +4 -0
  11. package/dist/geometries/cube-geometry.d.ts.map +1 -1
  12. package/dist/geometries/cube-geometry.js +30 -7
  13. package/dist/geometries/cube-geometry.js.map +1 -1
  14. package/dist/geometries/cylinder-geometry.d.ts.map +1 -1
  15. package/dist/geometries/cylinder-geometry.js +1 -1
  16. package/dist/geometries/cylinder-geometry.js.map +1 -1
  17. package/dist/geometries/ico-sphere-geometry.d.ts.map +1 -1
  18. package/dist/geometries/ico-sphere-geometry.js +1 -1
  19. package/dist/geometries/ico-sphere-geometry.js.map +1 -1
  20. package/dist/geometries/plane-geometry.d.ts.map +1 -1
  21. package/dist/geometries/plane-geometry.js +1 -1
  22. package/dist/geometries/plane-geometry.js.map +1 -1
  23. package/dist/geometries/sphere-geometry.d.ts.map +1 -1
  24. package/dist/geometries/sphere-geometry.js +1 -1
  25. package/dist/geometries/sphere-geometry.js.map +1 -1
  26. package/dist/geometries/truncated-cone-geometry.d.ts +15 -3
  27. package/dist/geometries/truncated-cone-geometry.d.ts.map +1 -1
  28. package/dist/geometries/truncated-cone-geometry.js +29 -15
  29. package/dist/geometries/truncated-cone-geometry.js.map +1 -1
  30. package/dist/geometry/geometry-table.d.ts +15 -0
  31. package/dist/geometry/geometry-table.d.ts.map +1 -0
  32. package/dist/geometry/geometry-table.js +2 -0
  33. package/dist/{transform/transform-types.js.map → geometry/geometry-table.js.map} +1 -1
  34. package/dist/geometry/geometry-utils.js.map +1 -1
  35. package/dist/geometry/geometry.d.ts +34 -7
  36. package/dist/geometry/geometry.d.ts.map +1 -1
  37. package/dist/geometry/geometry.js +33 -11
  38. package/dist/geometry/geometry.js.map +1 -1
  39. package/dist/geometry/primitive-utils.d.ts +1 -0
  40. package/dist/geometry/primitive-utils.d.ts.map +1 -0
  41. package/dist/geometry/primitive-utils.js +2 -0
  42. package/dist/geometry/primitive-utils.js.map +1 -0
  43. package/dist/index.d.ts +3 -5
  44. package/dist/index.d.ts.map +1 -1
  45. package/dist/index.js +1 -4
  46. package/dist/index.js.map +1 -1
  47. package/dist/lib/animation-loop.d.ts +14 -73
  48. package/dist/lib/animation-loop.d.ts.map +1 -1
  49. package/dist/lib/animation-loop.js +39 -160
  50. package/dist/lib/animation-loop.js.map +1 -1
  51. package/dist/lib/animation-props.d.ts +24 -0
  52. package/dist/lib/animation-props.d.ts.map +1 -0
  53. package/dist/lib/animation-props.js +2 -0
  54. package/dist/lib/animation-props.js.map +1 -0
  55. package/dist/lib/clip-space.d.ts +1 -0
  56. package/dist/lib/clip-space.d.ts.map +1 -0
  57. package/dist/lib/clip-space.js +2 -0
  58. package/dist/lib/clip-space.js.map +1 -0
  59. package/dist/lib/model-utils.d.ts +4 -3
  60. package/dist/lib/model-utils.d.ts.map +1 -1
  61. package/dist/lib/model-utils.js +24 -70
  62. package/dist/lib/model-utils.js.map +1 -1
  63. package/dist/lib/model.d.ts +34 -104
  64. package/dist/lib/model.d.ts.map +1 -1
  65. package/dist/lib/model.js +108 -505
  66. package/dist/lib/model.js.map +1 -1
  67. package/dist/lib/pipeline-factory.d.ts +55 -0
  68. package/dist/lib/pipeline-factory.d.ts.map +1 -0
  69. package/dist/lib/pipeline-factory.js +191 -0
  70. package/dist/lib/pipeline-factory.js.map +1 -0
  71. package/dist/lib/render-loop.d.ts +4 -17
  72. package/dist/lib/render-loop.d.ts.map +1 -1
  73. package/dist/lib/render-loop.js +14 -21
  74. package/dist/lib/render-loop.js.map +1 -1
  75. package/package.json +5 -5
  76. package/src/animation/key-frames.ts +1 -0
  77. package/src/animation/timeline.ts +1 -1
  78. package/src/geometries/cone-geometry.ts +1 -1
  79. package/src/geometries/cube-geometry.ts +159 -8
  80. package/src/geometries/cylinder-geometry.ts +1 -1
  81. package/src/geometries/ico-sphere-geometry.ts +1 -1
  82. package/src/geometries/plane-geometry.ts +1 -1
  83. package/src/geometries/sphere-geometry.ts +2 -2
  84. package/src/geometries/truncated-cone-geometry.ts +30 -12
  85. package/src/geometry/geometry-table.ts +16 -0
  86. package/src/geometry/geometry-utils.ts +1 -1
  87. package/src/geometry/geometry.ts +58 -13
  88. package/src/geometry/primitive-utils.ts +30 -0
  89. package/src/index.ts +7 -8
  90. package/src/lib/animation-loop.ts +85 -274
  91. package/src/lib/animation-props.ts +31 -0
  92. package/src/{utils → lib}/clip-space.ts +5 -2
  93. package/src/lib/model-utils.ts +60 -32
  94. package/src/lib/model.ts +126 -642
  95. package/src/lib/pipeline-factory.ts +225 -0
  96. package/src/lib/render-loop.ts +21 -19
  97. package/dist/lib/program-manager.d.ts +0 -39
  98. package/dist/lib/program-manager.d.ts.map +0 -1
  99. package/dist/lib/program-manager.js +0 -175
  100. package/dist/lib/program-manager.js.map +0 -1
  101. package/dist/transform/buffer-transform.d.ts +0 -36
  102. package/dist/transform/buffer-transform.d.ts.map +0 -1
  103. package/dist/transform/buffer-transform.js +0 -255
  104. package/dist/transform/buffer-transform.js.map +0 -1
  105. package/dist/transform/texture-transform.d.ts +0 -57
  106. package/dist/transform/texture-transform.d.ts.map +0 -1
  107. package/dist/transform/texture-transform.js +0 -412
  108. package/dist/transform/texture-transform.js.map +0 -1
  109. package/dist/transform/transform-shader-utils.d.ts +0 -26
  110. package/dist/transform/transform-shader-utils.d.ts.map +0 -1
  111. package/dist/transform/transform-shader-utils.js +0 -149
  112. package/dist/transform/transform-shader-utils.js.map +0 -1
  113. package/dist/transform/transform-types.d.ts +0 -44
  114. package/dist/transform/transform-types.d.ts.map +0 -1
  115. package/dist/transform/transform-types.js +0 -2
  116. package/dist/transform/transform.d.ts +0 -47
  117. package/dist/transform/transform.d.ts.map +0 -1
  118. package/dist/transform/transform.js +0 -198
  119. package/dist/transform/transform.js.map +0 -1
  120. package/dist/utils/clip-space.d.ts +0 -5
  121. package/dist/utils/clip-space.d.ts.map +0 -1
  122. package/dist/utils/clip-space.js +0 -34
  123. package/dist/utils/clip-space.js.map +0 -1
  124. package/src/lib/program-manager.ts +0 -187
  125. package/src/transform/buffer-transform.ts +0 -214
  126. package/src/transform/texture-transform.ts +0 -344
  127. package/src/transform/transform-shader-utils.ts +0 -169
  128. package/src/transform/transform-types.ts +0 -42
  129. package/src/transform/transform.ts +0 -189
@@ -0,0 +1,225 @@
1
+ import type {RenderPipelineProps, RenderPipelineParameters} from '@luma.gl/api';
2
+ import {Device, RenderPipeline, ComputePipeline} from '@luma.gl/api/';
3
+ import type { ShaderModule } from '@luma.gl/shadertools';
4
+ import {assembleShaders} from '@luma.gl/shadertools';
5
+
6
+ export type GetRenderPipelineOptions = {
7
+ vs: string,
8
+ fs: string,
9
+ topology;
10
+ parameters?: RenderPipelineParameters;
11
+
12
+ modules?: ShaderModule[];
13
+ defines?: Record<string, string>,
14
+ inject?: Record<string, string>,
15
+ transpileToGLSL100?: boolean;
16
+
17
+ varyings?: string[],
18
+ bufferMode?: number,
19
+ };
20
+
21
+ export type GetComputePipelineOptions = {
22
+ cs: string,
23
+ parameters?: RenderPipelineParameters;
24
+
25
+ modules?: ShaderModule[];
26
+ defines?: Record<string, string>,
27
+ inject?: Record<string, string>,
28
+ transpileToGLSL100?: boolean;
29
+
30
+ varyings?: string[],
31
+ bufferMode?: number,
32
+ };
33
+
34
+ const DEFAULT_RENDER_PIPELINE_OPTIONS: Required<GetRenderPipelineOptions> = {
35
+ vs: '',
36
+ fs: '',
37
+ modules: [],
38
+ defines: {},
39
+ inject: {},
40
+ transpileToGLSL100: false,
41
+
42
+ varyings: [],
43
+ bufferMode: 0x8c8d, // // varyings/bufferMode for xform feedback, 0x8c8d: SEPARATE_ATTRIBS
44
+ topology: 'triangle-list',
45
+ parameters: {}
46
+ };
47
+
48
+ /** Efficiently create shared pipelines with varying parameters */
49
+ export default class PipelineFactory {
50
+ readonly device: Device;
51
+
52
+ stateHash: number = 0; // Used to change hashing if hooks are modified
53
+ private _hashCounter: number = 0;
54
+ private readonly _hashes: Record<string, number> = {};
55
+ private readonly _useCounts: Record<string, number> = {};
56
+
57
+ private readonly _pipelineCache: Record<string, RenderPipeline> = {};
58
+
59
+ private readonly _getUniforms: Record<string, any> = {};
60
+ private readonly _hookFunctions: any[] = [];
61
+ private _defaultModules: any[] = [];
62
+ // private readonly _registeredModules = {}; // TODO: Remove? This isn't used anywhere in luma.gl
63
+
64
+ static getDefaultPipelineFactory(device: Device): PipelineFactory {
65
+ // @ts-expect-error Add to device
66
+ device.defaultPipelineFactory = device.defaultPipelineFactory || new PipelineFactory(device);
67
+ // @ts-expect-error Add to device
68
+ return device.defaultPipelineFactory;
69
+ }
70
+
71
+ constructor(device: Device) {
72
+ this.device = device;
73
+ }
74
+
75
+ // addDefaultModule(module: ShaderModule): void {
76
+ // if (!this._defaultModules.find((m) => m.name === (typeof module === 'string' ? module : module.name))) {
77
+ // this._defaultModules.push(module);
78
+ // }
79
+ // this.stateHash++;
80
+ // }
81
+
82
+ // removeDefaultModule(module: ShaderModule): void {
83
+ // const moduleName = typeof module === 'string' ? module : module.name;
84
+ // this._defaultModules = this._defaultModules.filter((m) => m.name !== moduleName);
85
+ // this.stateHash++;
86
+ // }
87
+
88
+ addShaderHook(hook, opts?): void {
89
+ if (opts) {
90
+ hook = Object.assign(opts, {hook});
91
+ }
92
+ this._hookFunctions.push(hook);
93
+ this.stateHash++;
94
+ }
95
+
96
+ createRenderPipeline(options: GetRenderPipelineOptions): {
97
+ renderPipeline: RenderPipeline;
98
+ getUniforms: (props: Record<string, Record<string, any>>) => Record<string, any>;
99
+ } {
100
+ const props: Required<GetRenderPipelineOptions> = {...DEFAULT_RENDER_PIPELINE_OPTIONS, ...options};
101
+
102
+ const modules = this._getModuleList(props.modules); // Combine with default modules
103
+
104
+ const hash = this._hashRenderPipeline({...props, modules});
105
+
106
+ if (!this._pipelineCache[hash]) {
107
+ const {renderPipeline, getUniforms} = this._createRenderPipeline({...props, modules});
108
+ renderPipeline.hash = hash;
109
+ this._pipelineCache[hash] = renderPipeline;
110
+ this._getUniforms[hash] = getUniforms || ((x: Record<string, Record<string, any>>) => {});
111
+ this._useCounts[hash] = 0;
112
+ }
113
+
114
+ this._useCounts[hash]++;
115
+
116
+ return {
117
+ renderPipeline: this._pipelineCache[hash],
118
+ getUniforms: this._getUniforms[hash]
119
+ };
120
+ }
121
+
122
+ release(pipeline: RenderPipeline): void {
123
+ const hash = pipeline.hash;
124
+ this._useCounts[hash]--;
125
+ if (this._useCounts[hash] === 0) {
126
+ this._pipelineCache[hash].destroy();
127
+ delete this._pipelineCache[hash];
128
+ delete this._getUniforms[hash];
129
+ delete this._useCounts[hash];
130
+ }
131
+ }
132
+
133
+ getUniforms(pipeline: RenderPipeline) {
134
+ return this._getUniforms[pipeline.hash] || null;
135
+ }
136
+
137
+ // PRIVATE
138
+
139
+ _createRenderPipeline(props: GetRenderPipelineOptions): {
140
+ renderPipeline: RenderPipeline,
141
+ getUniforms: (props: Record<string, Record<string, any>>) => Record<string, any>
142
+ } {
143
+ const platformInfo = {
144
+ gpu: this.device.info.gpu,
145
+ features: this.device.features
146
+ };
147
+
148
+ const assembled = assembleShaders(platformInfo, {...props, hookFunctions: this._hookFunctions});
149
+
150
+ const renderPipeline = this.device.createRenderPipeline({
151
+ ...props,
152
+ vs: this.device.createShader({stage: 'vertex', source: assembled.vs}),
153
+ fs: assembled.fs && this.device.createShader({stage: 'fragment', source: assembled.fs}),
154
+ });
155
+
156
+ return {renderPipeline, getUniforms: assembled.getUniforms};
157
+ }
158
+
159
+ /** Calculate a hash based on all the inputs for a render pipeline */
160
+ _hashRenderPipeline(props: GetRenderPipelineOptions): string {
161
+ const vsHash = this._getHash(props.vs);
162
+ const fsHash = this._getHash(props.fs);
163
+
164
+ const moduleHashes = props.modules.map((m) => this._getHash(typeof m === 'string' ? m : m.name)).sort();
165
+ const varyingHashes = props.varyings.map((v) => this._getHash(v));
166
+
167
+ const defineKeys = Object.keys(props.defines).sort();
168
+ const injectKeys = Object.keys(props.inject).sort();
169
+ const defineHashes = [];
170
+ const injectHashes = [];
171
+
172
+ for (const key of defineKeys) {
173
+ defineHashes.push(this._getHash(key));
174
+ defineHashes.push(this._getHash(props.defines[key]));
175
+ }
176
+
177
+ for (const key of injectKeys) {
178
+ injectHashes.push(this._getHash(key));
179
+ injectHashes.push(this._getHash(props.inject[key]));
180
+ }
181
+
182
+ // TODO - hash parameters!
183
+ const parameterHash = JSON.stringify(props.parameters);
184
+
185
+ return `${vsHash}/${fsHash}D${defineHashes.join('/')}M${moduleHashes.join(
186
+ '/'
187
+ )}I${injectHashes.join('/')}V${varyingHashes.join('/')}H${this.stateHash}B${props.bufferMode}${
188
+ props.transpileToGLSL100 ? 'T' : ''
189
+ }P${parameterHash}`;
190
+ }
191
+
192
+ _getHash(key: string): number {
193
+ if (this._hashes[key] === undefined) {
194
+ this._hashes[key] = this._hashCounter++;
195
+ }
196
+ return this._hashes[key];
197
+ }
198
+
199
+ // Dedupe and combine with default modules
200
+ _getModuleList(appModules: ShaderModule[] = []): ShaderModule[] {
201
+ const modules = new Array(this._defaultModules.length + appModules.length);
202
+ const seen: Record<string, boolean> = {};
203
+ let count = 0;
204
+
205
+ for (let i = 0, len = this._defaultModules.length; i < len; ++i) {
206
+ const module = this._defaultModules[i];
207
+ const name = module.name;
208
+ modules[count++] = module;
209
+ seen[name] = true;
210
+ }
211
+
212
+ for (let i = 0, len = appModules.length; i < len; ++i) {
213
+ const module = appModules[i];
214
+ const name = module.name;
215
+ if (!seen[name]) {
216
+ modules[count++] = module;
217
+ seen[name] = true;
218
+ }
219
+ }
220
+
221
+ modules.length = count;
222
+
223
+ return modules;
224
+ }
225
+ }
@@ -1,32 +1,29 @@
1
- import {Stats} from '@probe.gl/stats';
2
- import type {AnimationProps} from './animation-loop';
1
+ import type {DeviceProps} from '@luma.gl/api';
2
+ import type {AnimationProps} from '../lib/animation-props';
3
3
  import AnimationLoop from './animation-loop';
4
- import {Timeline} from '../animation/timeline'
5
4
 
6
5
  /**
7
6
  * Minimal animation loop that initializes models in constructor
8
7
  * Simplifying type management
8
+ * v9 API
9
9
  */
10
10
  export abstract class RenderLoop {
11
11
  constructor(animationProps?: AnimationProps) {}
12
- onRender(animationProps: AnimationProps) {}
13
- onFinalize(animationProps: AnimationProps) {}
14
-
15
- static getAnimationLoop(RenderLoopConstructor: typeof RenderLoop) {
16
- return new WrappedAnimationLoop(RenderLoopConstructor);
17
- }
18
12
 
19
13
  /** Instantiates and runs the render loop */
20
- static run(RenderLoopConstructor: typeof RenderLoop, options?: {start?: boolean}): WrappedAnimationLoop {
21
- const animationLoop = RenderLoop.getAnimationLoop(RenderLoopConstructor);
22
- if (options?.start !== false) {
23
- animationLoop.start();
24
- }
14
+ static run(RenderLoopConstructor: typeof RenderLoop, deviceProps?: DeviceProps): AnimationLoop {
15
+ // Create an animation loop;
16
+ const animationLoop = new SyncInitAnimationLoop(RenderLoopConstructor, deviceProps);
17
+
18
+ // Start the loop automatically
19
+ // animationLoop.start();
20
+
25
21
  return animationLoop;
26
22
  }
27
23
  }
28
24
 
29
- class WrappedAnimationLoop extends AnimationLoop {
25
+ /** Instantiates the RenderLoop once the device is created */
26
+ class SyncInitAnimationLoop extends AnimationLoop {
30
27
  RenderLoopConstructor: typeof RenderLoop;
31
28
  renderLoop: RenderLoop;
32
29
 
@@ -35,8 +32,8 @@ class WrappedAnimationLoop extends AnimationLoop {
35
32
  return this.RenderLoopConstructor.info;
36
33
  }
37
34
 
38
- constructor(RenderLoopConstructor: typeof RenderLoop) {
39
- super();
35
+ constructor(RenderLoopConstructor: typeof RenderLoop, deviceProps?: DeviceProps) {
36
+ super({deviceProps});
40
37
  this.RenderLoopConstructor = RenderLoopConstructor;
41
38
  }
42
39
 
@@ -46,11 +43,16 @@ class WrappedAnimationLoop extends AnimationLoop {
46
43
  }
47
44
 
48
45
  onRender(animationProps: AnimationProps) {
49
- this.renderLoop.onRender(animationProps);
46
+ // @ts-expect-error API still TBD
47
+ this.renderLoop?.onRender?.(animationProps);
48
+ // @ts-expect-error API still TBD
49
+ this.renderLoop?.frame?.(animationProps);
50
50
  }
51
51
 
52
52
  onFinalize(animationProps: AnimationProps) {
53
+ // @ts-expect-error API still TBD
53
54
  this.renderLoop?.onFinalize?.(animationProps);
55
+ // @ts-expect-error API still TBD
56
+ this.renderLoop?.destroy?.(animationProps);
54
57
  }
55
58
  }
56
-
@@ -1,39 +0,0 @@
1
- import { Device } from '@luma.gl/api/';
2
- import { Program } from '@luma.gl/webgl';
3
- declare type Module = 'string' | {
4
- name: string;
5
- };
6
- declare type GetProgramOptions = {
7
- vs?: string;
8
- fs?: string;
9
- defines?: {};
10
- inject?: {};
11
- varyings?: string[];
12
- bufferMode?: number;
13
- modules?: Module[];
14
- transpileToGLSL100?: boolean;
15
- };
16
- export default class ProgramManager {
17
- readonly device: Device;
18
- stateHash: number;
19
- private _hashCounter;
20
- private readonly _hashes;
21
- private readonly _useCounts;
22
- private readonly _programCache;
23
- private readonly _getUniforms;
24
- private readonly _registeredModules;
25
- private readonly _hookFunctions;
26
- private _defaultModules;
27
- static getDefaultProgramManager(device: Device): ProgramManager;
28
- constructor(device: Device);
29
- addDefaultModule(module: Module): void;
30
- removeDefaultModule(module: Module): void;
31
- addShaderHook(hook: any, opts?: any): void;
32
- get(props?: GetProgramOptions): Program;
33
- getUniforms(program: Program): any;
34
- release(program: Program): void;
35
- _getHash(key: string): string;
36
- _getModuleList(appModules?: Module[]): Module[];
37
- }
38
- export {};
39
- //# sourceMappingURL=program-manager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"program-manager.d.ts","sourceRoot":"","sources":["../../src/lib/program-manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,eAAe,CAAC;AAErC,OAAO,EAAC,OAAO,EAAC,MAAM,gBAAgB,CAAC;AAEvC,aAAK,MAAM,GAAG,QAAQ,GAAG;IAAC,IAAI,EAAE,MAAM,CAAA;CAAC,CAAC;AAExC,aAAK,iBAAiB,GAAG;IACvB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,OAAO,CAAC,EAAE,EAAE,CAAC;IACb,MAAM,CAAC,EAAE,EAAE,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAC7B,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,cAAc;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB,SAAS,SAAK;IACd,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAM;IAC9B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAM;IAEjC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAM;IACpC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAM;IACnC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAM;IACzC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAM;IACrC,OAAO,CAAC,eAAe,CAAM;IAE7B,MAAM,CAAC,wBAAwB,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc;gBAOnD,MAAM,EAAE,MAAM;IAI1B,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAStC,mBAAmB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAMzC,aAAa,CAAC,IAAI,KAAA,EAAE,IAAI,CAAC,KAAA,GAAG,IAAI;IAShC,GAAG,CAAC,KAAK,GAAE,iBAAsB,GAAG,OAAO;IAqE3C,WAAW,CAAC,OAAO,EAAE,OAAO;IAI5B,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAY/B,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAS7B,cAAc,CAAC,UAAU,GAAE,MAAM,EAAO,GAAG,MAAM,EAAE;CA0BpD"}
@@ -1,175 +0,0 @@
1
- import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
- import { assembleShaders } from '@luma.gl/shadertools';
3
- import { Program } from '@luma.gl/webgl';
4
- export default class ProgramManager {
5
- static getDefaultProgramManager(device) {
6
- device.defaultProgramManager = device.defaultProgramManager || new ProgramManager(device);
7
- return device.defaultProgramManager;
8
- }
9
-
10
- constructor(device) {
11
- _defineProperty(this, "device", void 0);
12
-
13
- _defineProperty(this, "stateHash", 0);
14
-
15
- _defineProperty(this, "_hashCounter", 0);
16
-
17
- _defineProperty(this, "_hashes", {});
18
-
19
- _defineProperty(this, "_useCounts", {});
20
-
21
- _defineProperty(this, "_programCache", {});
22
-
23
- _defineProperty(this, "_getUniforms", {});
24
-
25
- _defineProperty(this, "_registeredModules", {});
26
-
27
- _defineProperty(this, "_hookFunctions", []);
28
-
29
- _defineProperty(this, "_defaultModules", []);
30
-
31
- this.device = device;
32
- }
33
-
34
- addDefaultModule(module) {
35
- if (!this._defaultModules.find(m => m.name === module.name)) {
36
- this._defaultModules.push(module);
37
- }
38
-
39
- this.stateHash++;
40
- }
41
-
42
- removeDefaultModule(module) {
43
- const moduleName = typeof module === 'string' ? module : module.name;
44
- this._defaultModules = this._defaultModules.filter(m => m.name !== moduleName);
45
- this.stateHash++;
46
- }
47
-
48
- addShaderHook(hook, opts) {
49
- if (opts) {
50
- hook = Object.assign(opts, {
51
- hook
52
- });
53
- }
54
-
55
- this._hookFunctions.push(hook);
56
-
57
- this.stateHash++;
58
- }
59
-
60
- get(props = {}) {
61
- const {
62
- vs = '',
63
- fs = '',
64
- defines = {},
65
- inject = {},
66
- varyings = [],
67
- bufferMode = 0x8c8d,
68
- transpileToGLSL100 = false
69
- } = props;
70
-
71
- const modules = this._getModuleList(props.modules);
72
-
73
- const vsHash = this._getHash(vs);
74
-
75
- const fsHash = this._getHash(fs);
76
-
77
- const moduleHashes = modules.map(m => this._getHash(m.name)).sort();
78
- const varyingHashes = varyings.map(v => this._getHash(v));
79
- const defineKeys = Object.keys(defines).sort();
80
- const injectKeys = Object.keys(inject).sort();
81
- const defineHashes = [];
82
- const injectHashes = [];
83
-
84
- for (const key of defineKeys) {
85
- defineHashes.push(this._getHash(key));
86
- defineHashes.push(this._getHash(defines[key]));
87
- }
88
-
89
- for (const key of injectKeys) {
90
- injectHashes.push(this._getHash(key));
91
- injectHashes.push(this._getHash(inject[key]));
92
- }
93
-
94
- const hash = "".concat(vsHash, "/").concat(fsHash, "D").concat(defineHashes.join('/'), "M").concat(moduleHashes.join('/'), "I").concat(injectHashes.join('/'), "V").concat(varyingHashes.join('/'), "H").concat(this.stateHash, "B").concat(bufferMode).concat(transpileToGLSL100 ? 'T' : '');
95
-
96
- if (!this._programCache[hash]) {
97
- const assembled = assembleShaders(this.device, {
98
- vs,
99
- fs,
100
- modules,
101
- inject,
102
- defines,
103
- hookFunctions: this._hookFunctions,
104
- transpileToGLSL100
105
- });
106
- this._programCache[hash] = new Program(this.device.gl, {
107
- hash,
108
- vs: assembled.vs,
109
- fs: assembled.fs,
110
- varyings,
111
- bufferMode
112
- });
113
-
114
- this._getUniforms[hash] = assembled.getUniforms || (x => {});
115
-
116
- this._useCounts[hash] = 0;
117
- }
118
-
119
- this._useCounts[hash]++;
120
- return this._programCache[hash];
121
- }
122
-
123
- getUniforms(program) {
124
- return this._getUniforms[program.hash] || null;
125
- }
126
-
127
- release(program) {
128
- const hash = program.hash;
129
- this._useCounts[hash]--;
130
-
131
- if (this._useCounts[hash] === 0) {
132
- this._programCache[hash].delete();
133
-
134
- delete this._programCache[hash];
135
- delete this._getUniforms[hash];
136
- delete this._useCounts[hash];
137
- }
138
- }
139
-
140
- _getHash(key) {
141
- if (this._hashes[key] === undefined) {
142
- this._hashes[key] = this._hashCounter++;
143
- }
144
-
145
- return this._hashes[key];
146
- }
147
-
148
- _getModuleList(appModules = []) {
149
- const modules = new Array(this._defaultModules.length + appModules.length);
150
- const seen = {};
151
- let count = 0;
152
-
153
- for (let i = 0, len = this._defaultModules.length; i < len; ++i) {
154
- const module = this._defaultModules[i];
155
- const name = module.name;
156
- modules[count++] = module;
157
- seen[name] = true;
158
- }
159
-
160
- for (let i = 0, len = appModules.length; i < len; ++i) {
161
- const module = appModules[i];
162
- const name = module.name;
163
-
164
- if (!seen[name]) {
165
- modules[count++] = module;
166
- seen[name] = true;
167
- }
168
- }
169
-
170
- modules.length = count;
171
- return modules;
172
- }
173
-
174
- }
175
- //# sourceMappingURL=program-manager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/lib/program-manager.ts"],"names":["assembleShaders","Program","ProgramManager","getDefaultProgramManager","device","defaultProgramManager","constructor","addDefaultModule","module","_defaultModules","find","m","name","push","stateHash","removeDefaultModule","moduleName","filter","addShaderHook","hook","opts","Object","assign","_hookFunctions","get","props","vs","fs","defines","inject","varyings","bufferMode","transpileToGLSL100","modules","_getModuleList","vsHash","_getHash","fsHash","moduleHashes","map","sort","varyingHashes","v","defineKeys","keys","injectKeys","defineHashes","injectHashes","key","hash","join","_programCache","assembled","hookFunctions","gl","_getUniforms","getUniforms","x","_useCounts","program","release","delete","_hashes","undefined","_hashCounter","appModules","Array","length","seen","count","i","len"],"mappings":"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","sourcesContent":["import {Device} from '@luma.gl/api/';\nimport {assembleShaders} from '@luma.gl/shadertools';\nimport {Program} from '@luma.gl/webgl';\n\ntype Module = 'string' | {name: string}; // TODO\n\ntype GetProgramOptions = {\n vs?: string,\n fs?: string,\n defines?: {},\n inject?: {},\n varyings?: string[],\n bufferMode?: number,\n modules?: Module[];\n transpileToGLSL100?: boolean\n};\n\nexport default class ProgramManager {\n readonly device: Device;\n\n stateHash = 0; // Used change hashing if hooks are modified\n private _hashCounter = 0;\n private readonly _hashes = {};\n private readonly _useCounts = {};\n\n private readonly _programCache = {};\n private readonly _getUniforms = {};\n private readonly _registeredModules = {}; // TODO: Remove? This isn't used anywhere in luma.gl\n private readonly _hookFunctions = [];\n private _defaultModules = [];\n\n static getDefaultProgramManager(device: Device): ProgramManager {\n // @ts-expect-error\n device.defaultProgramManager = device.defaultProgramManager || new ProgramManager(device);\n // @ts-expect-error\n return device.defaultProgramManager;\n }\n\n constructor(device: Device) {\n this.device = device;\n }\n\n addDefaultModule(module: Module): void {\n // @ts-expect-error\n if (!this._defaultModules.find((m) => m.name === module.name)) {\n this._defaultModules.push(module);\n }\n\n this.stateHash++;\n }\n\n removeDefaultModule(module: Module): void {\n const moduleName = typeof module === 'string' ? module : module.name;\n this._defaultModules = this._defaultModules.filter((m) => m.name !== moduleName);\n this.stateHash++;\n }\n\n addShaderHook(hook, opts?): void {\n if (opts) {\n hook = Object.assign(opts, {hook});\n }\n\n this._hookFunctions.push(hook);\n this.stateHash++;\n }\n\n get(props: GetProgramOptions = {}): Program {\n const {\n vs = '',\n fs = '',\n defines = {},\n inject = {},\n varyings = [],\n bufferMode = 0x8c8d,\n transpileToGLSL100 = false\n } = props; // varyings/bufferMode for xform feedback, 0x8c8d = SEPARATE_ATTRIBS\n\n const modules = this._getModuleList(props.modules); // Combine with default modules\n\n const vsHash = this._getHash(vs);\n const fsHash = this._getHash(fs);\n // @ts-expect-error\n const moduleHashes = modules.map((m) => this._getHash(m.name)).sort();\n const varyingHashes = varyings.map((v) => this._getHash(v));\n\n const defineKeys = Object.keys(defines).sort();\n const injectKeys = Object.keys(inject).sort();\n const defineHashes = [];\n const injectHashes = [];\n\n for (const key of defineKeys) {\n defineHashes.push(this._getHash(key));\n defineHashes.push(this._getHash(defines[key]));\n }\n\n for (const key of injectKeys) {\n injectHashes.push(this._getHash(key));\n injectHashes.push(this._getHash(inject[key]));\n }\n\n const hash = `${vsHash}/${fsHash}D${defineHashes.join('/')}M${moduleHashes.join(\n '/'\n )}I${injectHashes.join('/')}V${varyingHashes.join('/')}H${this.stateHash}B${bufferMode}${\n transpileToGLSL100 ? 'T' : ''\n }`;\n\n if (!this._programCache[hash]) {\n const assembled = assembleShaders(this.device, {\n vs,\n fs,\n modules,\n inject,\n defines,\n hookFunctions: this._hookFunctions,\n transpileToGLSL100\n });\n\n // @ts-expect-error TODO - program should be created from device\n this._programCache[hash] = new Program(this.device.gl, {\n hash,\n vs: assembled.vs,\n fs: assembled.fs,\n varyings,\n bufferMode\n });\n\n this._getUniforms[hash] = assembled.getUniforms || ((x) => {});\n this._useCounts[hash] = 0;\n }\n\n this._useCounts[hash]++;\n\n return this._programCache[hash];\n }\n\n getUniforms(program: Program) {\n return this._getUniforms[program.hash] || null;\n }\n\n release(program: Program): void {\n const hash = program.hash;\n this._useCounts[hash]--;\n\n if (this._useCounts[hash] === 0) {\n this._programCache[hash].delete();\n delete this._programCache[hash];\n delete this._getUniforms[hash];\n delete this._useCounts[hash];\n }\n }\n\n _getHash(key: string): string {\n if (this._hashes[key] === undefined) {\n this._hashes[key] = this._hashCounter++;\n }\n\n return this._hashes[key];\n }\n\n // Dedup and combine with default modules\n _getModuleList(appModules: Module[] = []): Module[] {\n const modules = new Array(this._defaultModules.length + appModules.length);\n const seen = {};\n let count = 0;\n\n for (let i = 0, len = this._defaultModules.length; i < len; ++i) {\n const module = this._defaultModules[i];\n const name = module.name;\n modules[count++] = module;\n seen[name] = true;\n }\n\n for (let i = 0, len = appModules.length; i < len; ++i) {\n const module = appModules[i];\n // @ts-expect-error\n const name = module.name;\n if (!seen[name]) {\n modules[count++] = module;\n seen[name] = true;\n }\n }\n\n modules.length = count;\n\n return modules;\n }\n}\n"],"file":"program-manager.js"}
@@ -1,36 +0,0 @@
1
- import { Buffer } from '@luma.gl/webgl';
2
- import type { TransformProps, TransformDrawOptions, TransformRunOptions, TransformBinding } from './transform-types';
3
- export default class BufferTransform {
4
- gl: WebGL2RenderingContext;
5
- currentIndex: number;
6
- feedbackMap: {};
7
- varyings: string[] | null;
8
- bindings: TransformBinding[];
9
- resources: {};
10
- constructor(gl: WebGL2RenderingContext, props?: TransformProps);
11
- setupResources(opts: any): void;
12
- updateModelProps(props?: TransformProps): TransformProps;
13
- getDrawOptions(opts?: TransformRunOptions): TransformDrawOptions;
14
- swap(): boolean;
15
- update(opts?: {}): void;
16
- getBuffer(varyingName: string | null): Buffer | null;
17
- getData(options?: {
18
- varyingName?: string;
19
- }): any;
20
- delete(): void;
21
- _initialize(props?: TransformProps): void;
22
- _getFeedbackBuffers(props: any): {};
23
- _setupBuffers(props?: {}): void;
24
- _setupTransformFeedback(binding: any, { model }: {
25
- model: any;
26
- }): void;
27
- _updateBindings(opts: any): void;
28
- _updateBinding(binding: any, opts: any): any;
29
- _swapBuffers(opts: any): {
30
- sourceBuffers: any;
31
- feedbackBuffers: any;
32
- };
33
- _createNewBuffer(name: any, opts: any): Buffer;
34
- _getNextIndex(): number;
35
- }
36
- //# sourceMappingURL=buffer-transform.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"buffer-transform.d.ts","sourceRoot":"","sources":["../../src/transform/buffer-transform.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,MAAM,EAA8B,MAAM,gBAAgB,CAAC;AACnE,OAAO,KAAK,EAAC,cAAc,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,gBAAgB,EAAC,MAAM,mBAAmB,CAAC;AAcnH,MAAM,CAAC,OAAO,OAAO,eAAe;IAClC,EAAE,EAAE,sBAAsB,CAAC;IAC3B,YAAY,SAAK;IACjB,WAAW,KAAM;IACjB,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAQ;IACjC,QAAQ,EAAE,gBAAgB,EAAE,CAAM;IAClC,SAAS,KAAM;gBAEH,EAAE,EAAE,sBAAsB,EAAE,KAAK,GAAE,cAAmB;IAMlE,cAAc,CAAC,IAAI,KAAA,GAAG,IAAI;IAM1B,gBAAgB,CAAC,KAAK,GAAE,cAAmB,GAAG,cAAc;IAS5D,cAAc,CAAC,IAAI,GAAE,mBAAwB,GAAG,oBAAoB;IAQpE,IAAI,IAAI,OAAO;IASf,MAAM,CAAC,IAAI,KAAK;IAKhB,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI;IASpD,OAAO,CAAC,OAAO,GAAE;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAM;IAU5C,MAAM,IAAI,IAAI;IAQd,WAAW,CAAC,KAAK,GAAE,cAAmB,GAAG,IAAI;IAU7C,mBAAmB,CAAC,KAAK,KAAA;IAmCzB,aAAa,CAAC,KAAK,KAAK;IASxB,uBAAuB,CAAC,OAAO,KAAA,EAAE,EAAC,KAAK,EAAC;;KAAA,GAAG,IAAI;IAQ/C,eAAe,CAAC,IAAI,KAAA,GAAG,IAAI;IAY3B,cAAc,CAAC,OAAO,KAAA,EAAE,IAAI,KAAA;IAe5B,YAAY,CAAC,IAAI,KAAA,GAAG;QAAC,aAAa,EAAE,GAAG,CAAC;QAAC,eAAe,EAAE,GAAG,CAAA;KAAC;IAkB9D,gBAAgB,CAAC,IAAI,KAAA,EAAE,IAAI,KAAA,GAAG,MAAM;IASpC,aAAa,IAAI,MAAM;CAGxB"}