@luma.gl/engine 9.0.9 → 9.0.11

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.
@@ -20,14 +20,18 @@ export type ModelProps = Omit<RenderPipelineProps, 'vs' | 'fs'> & {
20
20
  defines?: Record<string, string | number | boolean>;
21
21
  /** Shader inputs, used to generated uniform buffers and bindings */
22
22
  shaderInputs?: ShaderInputs;
23
+ /** Bindings */
24
+ bindings?: Record<string, Binding>;
23
25
  /** Parameters that are built into the pipeline */
24
26
  parameters?: RenderPipelineParameters;
25
27
  /** Geometry */
26
28
  geometry?: GPUGeometry | Geometry | null;
27
- /** Vertex count */
28
- vertexCount?: number;
29
+ /** @deprecated Use instanced rendering? Will be auto-detected in 9.1 */
30
+ isInstanced?: boolean;
29
31
  /** instance count */
30
32
  instanceCount?: number;
33
+ /** Vertex count */
34
+ vertexCount?: number;
31
35
  indexBuffer?: Buffer | null;
32
36
  /** @note this is really a map of buffers, not a map of attributes */
33
37
  attributes?: Record<string, Buffer>;
@@ -75,10 +79,12 @@ export declare class Model {
75
79
  topology: PrimitiveTopology;
76
80
  /** Buffer layout */
77
81
  bufferLayout: BufferLayout[];
82
+ /** Use instanced rendering */
83
+ isInstanced: boolean | undefined;
84
+ /** instance count. `undefined` means not instanced */
85
+ instanceCount: number;
78
86
  /** Vertex count */
79
87
  vertexCount: number;
80
- /** instance count */
81
- instanceCount: number;
82
88
  /** Index buffer */
83
89
  indexBuffer: Buffer | null;
84
90
  /** Buffer-valued attributes */
@@ -141,17 +147,19 @@ export declare class Model {
141
147
  * @param parameters
142
148
  */
143
149
  setParameters(parameters: RenderPipelineParameters): void;
144
- /**
145
- * Updates the vertex count (used in draw calls)
146
- * @note Any attributes with stepMode=vertex need to be at least this big
147
- */
148
- setVertexCount(vertexCount: number): void;
149
150
  /**
150
151
  * Updates the instance count (used in draw calls)
151
152
  * @note Any attributes with stepMode=instance need to be at least this big
152
153
  */
153
154
  setInstanceCount(instanceCount: number): void;
155
+ /**
156
+ * Updates the vertex count (used in draw calls)
157
+ * @note Any attributes with stepMode=vertex need to be at least this big
158
+ */
159
+ setVertexCount(vertexCount: number): void;
160
+ /** Set the shader inputs */
154
161
  setShaderInputs(shaderInputs: ShaderInputs): void;
162
+ /** Update uniform buffers from the model's shader inputs */
155
163
  updateShaderInputs(): void;
156
164
  /**
157
165
  * Sets bindings (textures, samplers, uniform buffers)
@@ -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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"}
@@ -39,6 +39,9 @@ export class Model {
39
39
  attributes: {},
40
40
  constantAttributes: {},
41
41
  varyings: [],
42
+ isInstanced: undefined,
43
+ instanceCount: 0,
44
+ vertexCount: 0,
42
45
  shaderInputs: undefined,
43
46
  pipelineFactory: undefined,
44
47
  shaderFactory: undefined,
@@ -63,10 +66,12 @@ export class Model {
63
66
  /** Buffer layout */
64
67
  bufferLayout;
65
68
  // Dynamic properties
69
+ /** Use instanced rendering */
70
+ isInstanced = undefined;
71
+ /** instance count. `undefined` means not instanced */
72
+ instanceCount = 0;
66
73
  /** Vertex count */
67
74
  vertexCount;
68
- /** instance count */
69
- instanceCount = 0;
70
75
  /** Index buffer */
71
76
  indexBuffer = null;
72
77
  /** Buffer-valued attributes */
@@ -161,12 +166,15 @@ export class Model {
161
166
  this._setGeometryAttributes(this._gpuGeometry);
162
167
  }
163
168
  // Apply any dynamic settings that will not trigger pipeline change
164
- if (props.vertexCount) {
165
- this.setVertexCount(props.vertexCount);
169
+ if ('isInstanced' in props) {
170
+ this.isInstanced = props.isInstanced;
166
171
  }
167
172
  if (props.instanceCount) {
168
173
  this.setInstanceCount(props.instanceCount);
169
174
  }
175
+ if (props.vertexCount) {
176
+ this.setVertexCount(props.vertexCount);
177
+ }
170
178
  if (props.indexBuffer) {
171
179
  this.setIndexBuffer(props.indexBuffer);
172
180
  }
@@ -248,6 +256,7 @@ export class Model {
248
256
  drawSuccess = this.pipeline.draw({
249
257
  renderPass,
250
258
  vertexArray: this.vertexArray,
259
+ isInstanced: this.isInstanced,
251
260
  vertexCount: this.vertexCount,
252
261
  instanceCount: this.instanceCount,
253
262
  indexCount,
@@ -334,22 +343,28 @@ export class Model {
334
343
  }
335
344
  }
336
345
  // Update dynamic fields
337
- /**
338
- * Updates the vertex count (used in draw calls)
339
- * @note Any attributes with stepMode=vertex need to be at least this big
340
- */
341
- setVertexCount(vertexCount) {
342
- this.vertexCount = vertexCount;
343
- this.setNeedsRedraw('vertexCount');
344
- }
345
346
  /**
346
347
  * Updates the instance count (used in draw calls)
347
348
  * @note Any attributes with stepMode=instance need to be at least this big
348
349
  */
349
350
  setInstanceCount(instanceCount) {
350
351
  this.instanceCount = instanceCount;
352
+ // luma.gl examples don't set props.isInstanced and rely on auto-detection
353
+ // but deck.gl sets instanceCount even for models that are not instanced.
354
+ if (this.isInstanced === undefined && instanceCount > 0) {
355
+ this.isInstanced = true;
356
+ }
351
357
  this.setNeedsRedraw('instanceCount');
352
358
  }
359
+ /**
360
+ * Updates the vertex count (used in draw calls)
361
+ * @note Any attributes with stepMode=vertex need to be at least this big
362
+ */
363
+ setVertexCount(vertexCount) {
364
+ this.vertexCount = vertexCount;
365
+ this.setNeedsRedraw('vertexCount');
366
+ }
367
+ /** Set the shader inputs */
353
368
  setShaderInputs(shaderInputs) {
354
369
  this.shaderInputs = shaderInputs;
355
370
  this._uniformStore = new UniformStore(this.shaderInputs.modules);
@@ -360,6 +375,7 @@ export class Model {
360
375
  }
361
376
  this.setNeedsRedraw('shaderInputs');
362
377
  }
378
+ /** Update uniform buffers from the model's shader inputs */
363
379
  updateShaderInputs() {
364
380
  this._uniformStore.setUniforms(this.shaderInputs.getUniformValues());
365
381
  // TODO - this is already tracked through buffer/texture update times?
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@luma.gl/engine",
3
- "version": "9.0.9",
3
+ "version": "9.0.11",
4
4
  "description": "3D Engine Components for luma.gl",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -43,10 +43,10 @@
43
43
  "@luma.gl/core": "^9.0.0"
44
44
  },
45
45
  "dependencies": {
46
- "@luma.gl/shadertools": "9.0.9",
46
+ "@luma.gl/shadertools": "9.0.11",
47
47
  "@math.gl/core": "^4.0.0",
48
48
  "@probe.gl/log": "^4.0.2",
49
49
  "@probe.gl/stats": "^4.0.2"
50
50
  },
51
- "gitHead": "1715a33d52c6d23227cd3f62e163a40ea9acec9e"
51
+ "gitHead": "82c56392f73c3f7b258e2928d687a4beca2e2838"
52
52
  }
@@ -38,17 +38,20 @@ export type ModelProps = Omit<RenderPipelineProps, 'vs' | 'fs'> & {
38
38
 
39
39
  /** Shader inputs, used to generated uniform buffers and bindings */
40
40
  shaderInputs?: ShaderInputs;
41
-
41
+ /** Bindings */
42
+ bindings?: Record<string, Binding>;
42
43
  /** Parameters that are built into the pipeline */
43
44
  parameters?: RenderPipelineParameters;
44
45
 
45
46
  /** Geometry */
46
47
  geometry?: GPUGeometry | Geometry | null;
47
48
 
48
- /** Vertex count */
49
- vertexCount?: number;
49
+ /** @deprecated Use instanced rendering? Will be auto-detected in 9.1 */
50
+ isInstanced?: boolean;
50
51
  /** instance count */
51
52
  instanceCount?: number;
53
+ /** Vertex count */
54
+ vertexCount?: number;
52
55
 
53
56
  indexBuffer?: Buffer | null;
54
57
  /** @note this is really a map of buffers, not a map of attributes */
@@ -104,6 +107,10 @@ export class Model {
104
107
  constantAttributes: {},
105
108
  varyings: [],
106
109
 
110
+ isInstanced: undefined!,
111
+ instanceCount: 0,
112
+ vertexCount: 0,
113
+
107
114
  shaderInputs: undefined!,
108
115
  pipelineFactory: undefined!,
109
116
  shaderFactory: undefined!,
@@ -135,10 +142,12 @@ export class Model {
135
142
 
136
143
  // Dynamic properties
137
144
 
145
+ /** Use instanced rendering */
146
+ isInstanced: boolean | undefined = undefined;
147
+ /** instance count. `undefined` means not instanced */
148
+ instanceCount: number = 0;
138
149
  /** Vertex count */
139
150
  vertexCount: number;
140
- /** instance count */
141
- instanceCount: number = 0;
142
151
 
143
152
  /** Index buffer */
144
153
  indexBuffer: Buffer | null = null;
@@ -260,12 +269,16 @@ export class Model {
260
269
  }
261
270
 
262
271
  // Apply any dynamic settings that will not trigger pipeline change
263
- if (props.vertexCount) {
264
- this.setVertexCount(props.vertexCount);
272
+ if ('isInstanced' in props) {
273
+ this.isInstanced = props.isInstanced;
265
274
  }
275
+
266
276
  if (props.instanceCount) {
267
277
  this.setInstanceCount(props.instanceCount);
268
278
  }
279
+ if (props.vertexCount) {
280
+ this.setVertexCount(props.vertexCount);
281
+ }
269
282
  if (props.indexBuffer) {
270
283
  this.setIndexBuffer(props.indexBuffer);
271
284
  }
@@ -358,6 +371,7 @@ export class Model {
358
371
  drawSuccess = this.pipeline.draw({
359
372
  renderPass,
360
373
  vertexArray: this.vertexArray,
374
+ isInstanced: this.isInstanced,
361
375
  vertexCount: this.vertexCount,
362
376
  instanceCount: this.instanceCount,
363
377
  indexCount,
@@ -453,24 +467,30 @@ export class Model {
453
467
 
454
468
  // Update dynamic fields
455
469
 
456
- /**
457
- * Updates the vertex count (used in draw calls)
458
- * @note Any attributes with stepMode=vertex need to be at least this big
459
- */
460
- setVertexCount(vertexCount: number): void {
461
- this.vertexCount = vertexCount;
462
- this.setNeedsRedraw('vertexCount');
463
- }
464
-
465
470
  /**
466
471
  * Updates the instance count (used in draw calls)
467
472
  * @note Any attributes with stepMode=instance need to be at least this big
468
473
  */
469
474
  setInstanceCount(instanceCount: number): void {
470
475
  this.instanceCount = instanceCount;
476
+ // luma.gl examples don't set props.isInstanced and rely on auto-detection
477
+ // but deck.gl sets instanceCount even for models that are not instanced.
478
+ if (this.isInstanced === undefined && instanceCount > 0) {
479
+ this.isInstanced = true;
480
+ }
471
481
  this.setNeedsRedraw('instanceCount');
472
482
  }
473
483
 
484
+ /**
485
+ * Updates the vertex count (used in draw calls)
486
+ * @note Any attributes with stepMode=vertex need to be at least this big
487
+ */
488
+ setVertexCount(vertexCount: number): void {
489
+ this.vertexCount = vertexCount;
490
+ this.setNeedsRedraw('vertexCount');
491
+ }
492
+
493
+ /** Set the shader inputs */
474
494
  setShaderInputs(shaderInputs: ShaderInputs): void {
475
495
  this.shaderInputs = shaderInputs;
476
496
  this._uniformStore = new UniformStore(this.shaderInputs.modules);
@@ -482,6 +502,7 @@ export class Model {
482
502
  this.setNeedsRedraw('shaderInputs');
483
503
  }
484
504
 
505
+ /** Update uniform buffers from the model's shader inputs */
485
506
  updateShaderInputs(): void {
486
507
  this._uniformStore.setUniforms(this.shaderInputs.getUniformValues());
487
508
  // TODO - this is already tracked through buffer/texture update times?
package/LICENSE DELETED
@@ -1,34 +0,0 @@
1
- luma.gl is provided under the MIT license
2
-
3
- Copyright (c) 2020 vis.gl contributors
4
-
5
- This software includes parts initially developed by Uber and open sourced under MIT license.
6
- Copyright (c) 2015 Uber Technologies, Inc.
7
-
8
- This software includes parts of PhiloGL (https://github.com/philogb/philogl)
9
- under MIT license. PhiloGL parts Copyright © 2013 Sencha Labs.
10
-
11
- This software includes adaptations of some postprocessing code from
12
- THREE.js (https://github.com/mrdoob/three.js/) under MIT license.
13
- THREE.js parts Copyright © 2010-2018 three.js authors.
14
-
15
- Additional attribution given in specific source files.
16
-
17
- Permission is hereby granted, free of charge, to any person obtaining a copy
18
- of this software and associated documentation files (the "Software"), to deal
19
- in the Software without restriction, including without limitation the rights
20
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
21
- copies of the Software, and to permit persons to whom the Software is
22
- furnished to do so, subject to the following conditions:
23
-
24
- The above copyright notice and this permission notice shall be included in
25
- all copies or substantial portions of the Software.
26
-
27
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
28
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
29
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
30
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
31
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
32
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
33
- THE SOFTWARE.
34
-
package/src/.DS_Store DELETED
Binary file