@deck.gl/extensions 9.3.0-alpha.3 → 9.3.0-alpha.5

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.
@@ -1,3 +1,3 @@
1
- declare const _default: "\nconst vec2 WORLD_SCALE_FP64 = vec2(81.4873275756836, 0.0000032873668232014097);\n\nuniform project64Uniforms {\n vec2 scale;\n mat4 viewProjectionMatrix;\n mat4 viewProjectionMatrix64Low;\n} project64;\n\n// longitude: lnglat_fp64.xy; latitude: lnglat_fp64.zw\nvoid mercatorProject_fp64(vec4 lnglat_fp64, out vec2 out_val[2]) {\n\n#if defined(NVIDIA_FP64_WORKAROUND)\n out_val[0] = sum_fp64(radians_fp64(lnglat_fp64.xy), PI_FP64 * ONE);\n#else\n out_val[0] = sum_fp64(radians_fp64(lnglat_fp64.xy), PI_FP64);\n#endif\n out_val[1] = sum_fp64(PI_FP64,\n log_fp64(tan_fp64(sum_fp64(PI_4_FP64, radians_fp64(lnglat_fp64.zw) / 2.0))));\n return;\n}\n\nvoid project_position_fp64(vec4 position_fp64, out vec2 out_val[2]) {\n vec2 pos_fp64[2];\n mercatorProject_fp64(position_fp64, pos_fp64);\n out_val[0] = mul_fp64(pos_fp64[0], WORLD_SCALE_FP64);\n out_val[1] = mul_fp64(pos_fp64[1], WORLD_SCALE_FP64);\n\n return;\n}\n\nvoid project_position_fp64(vec2 position, vec2 position64xyLow, out vec2 out_val[2]) {\n vec4 position64xy = vec4(\n position.x, position64xyLow.x,\n position.y, position64xyLow.y);\n\n project_position_fp64(position64xy, out_val);\n}\n\nvec4 project_common_position_to_clipspace_fp64(vec2 vertex_pos_modelspace[4]) {\n vec2 vertex_pos_clipspace[4];\n vec2 viewProjectionMatrixFP64[16];\n for (int i = 0; i < 4; i++) {\n for (int j = 0; j < 4; j++) {\n viewProjectionMatrixFP64[4 * i + j] = vec2(\n project64.viewProjectionMatrix[j][i],\n project64.viewProjectionMatrix64Low[j][i]\n );\n } \n }\n mat4_vec4_mul_fp64(viewProjectionMatrixFP64, vertex_pos_modelspace,\n vertex_pos_clipspace);\n return vec4(\n vertex_pos_clipspace[0].x,\n vertex_pos_clipspace[1].x,\n vertex_pos_clipspace[2].x,\n vertex_pos_clipspace[3].x\n );\n}\n\nvec4 project_position_to_clipspace(\n vec3 position, vec3 position64xyLow, vec3 offset, out vec4 commonPosition\n) {\n // This is the local offset to the instance position\n vec2 offset64[4];\n vec4_fp64(vec4(offset, 0.0), offset64);\n\n float z = project_size(position.z);\n\n // Apply web mercator projection (depends on coordinate system imn use)\n vec2 projectedPosition64xy[2];\n project_position_fp64(position.xy, position64xyLow.xy, projectedPosition64xy);\n\n vec2 commonPosition64[4];\n commonPosition64[0] = sum_fp64(offset64[0], projectedPosition64xy[0]);\n commonPosition64[1] = sum_fp64(offset64[1], projectedPosition64xy[1]);\n commonPosition64[2] = sum_fp64(offset64[2], vec2(z, 0.0));\n commonPosition64[3] = vec2(1.0, 0.0);\n\n commonPosition = vec4(projectedPosition64xy[0].x, projectedPosition64xy[1].x, z, 1.0);\n\n return project_common_position_to_clipspace_fp64(commonPosition64);\n}\n\nvec4 project_position_to_clipspace(\n vec3 position, vec3 position64xyLow, vec3 offset\n) {\n vec4 commonPosition;\n return project_position_to_clipspace(\n position, position64xyLow, offset, commonPosition\n );\n}\n";
1
+ declare const _default: "\nconst vec2 WORLD_SCALE_FP64 = vec2(81.4873275756836, 0.0000032873668232014097);\n\nlayout(std140) uniform project64Uniforms {\n vec2 scale;\n mat4 viewProjectionMatrix;\n mat4 viewProjectionMatrix64Low;\n} project64;\n\n// longitude: lnglat_fp64.xy; latitude: lnglat_fp64.zw\nvoid mercatorProject_fp64(vec4 lnglat_fp64, out vec2 out_val[2]) {\n\n#if defined(NVIDIA_FP64_WORKAROUND)\n out_val[0] = sum_fp64(radians_fp64(lnglat_fp64.xy), PI_FP64 * ONE);\n#else\n out_val[0] = sum_fp64(radians_fp64(lnglat_fp64.xy), PI_FP64);\n#endif\n out_val[1] = sum_fp64(PI_FP64,\n log_fp64(tan_fp64(sum_fp64(PI_4_FP64, radians_fp64(lnglat_fp64.zw) / 2.0))));\n return;\n}\n\nvoid project_position_fp64(vec4 position_fp64, out vec2 out_val[2]) {\n vec2 pos_fp64[2];\n mercatorProject_fp64(position_fp64, pos_fp64);\n out_val[0] = mul_fp64(pos_fp64[0], WORLD_SCALE_FP64);\n out_val[1] = mul_fp64(pos_fp64[1], WORLD_SCALE_FP64);\n\n return;\n}\n\nvoid project_position_fp64(vec2 position, vec2 position64xyLow, out vec2 out_val[2]) {\n vec4 position64xy = vec4(\n position.x, position64xyLow.x,\n position.y, position64xyLow.y);\n\n project_position_fp64(position64xy, out_val);\n}\n\nvec4 project_common_position_to_clipspace_fp64(vec2 vertex_pos_modelspace[4]) {\n vec2 vertex_pos_clipspace[4];\n vec2 viewProjectionMatrixFP64[16];\n for (int i = 0; i < 4; i++) {\n for (int j = 0; j < 4; j++) {\n viewProjectionMatrixFP64[4 * i + j] = vec2(\n project64.viewProjectionMatrix[j][i],\n project64.viewProjectionMatrix64Low[j][i]\n );\n } \n }\n mat4_vec4_mul_fp64(viewProjectionMatrixFP64, vertex_pos_modelspace,\n vertex_pos_clipspace);\n return vec4(\n vertex_pos_clipspace[0].x,\n vertex_pos_clipspace[1].x,\n vertex_pos_clipspace[2].x,\n vertex_pos_clipspace[3].x\n );\n}\n\nvec4 project_position_to_clipspace(\n vec3 position, vec3 position64xyLow, vec3 offset, out vec4 commonPosition\n) {\n // This is the local offset to the instance position\n vec2 offset64[4];\n vec4_fp64(vec4(offset, 0.0), offset64);\n\n float z = project_size(position.z);\n\n // Apply web mercator projection (depends on coordinate system imn use)\n vec2 projectedPosition64xy[2];\n project_position_fp64(position.xy, position64xyLow.xy, projectedPosition64xy);\n\n vec2 commonPosition64[4];\n commonPosition64[0] = sum_fp64(offset64[0], projectedPosition64xy[0]);\n commonPosition64[1] = sum_fp64(offset64[1], projectedPosition64xy[1]);\n commonPosition64[2] = sum_fp64(offset64[2], vec2(z, 0.0));\n commonPosition64[3] = vec2(1.0, 0.0);\n\n commonPosition = vec4(projectedPosition64xy[0].x, projectedPosition64xy[1].x, z, 1.0);\n\n return project_common_position_to_clipspace_fp64(commonPosition64);\n}\n\nvec4 project_position_to_clipspace(\n vec3 position, vec3 position64xyLow, vec3 offset\n) {\n vec4 commonPosition;\n return project_position_to_clipspace(\n position, position64xyLow, offset, commonPosition\n );\n}\n";
2
2
  export default _default;
3
3
  //# sourceMappingURL=project64.glsl.d.ts.map
@@ -3,7 +3,7 @@
3
3
  // Copyright (c) vis.gl contributors
4
4
  export default `\
5
5
  const vec2 WORLD_SCALE_FP64 = vec2(81.4873275756836, 0.0000032873668232014097);
6
- uniform project64Uniforms {
6
+ layout(std140) uniform project64Uniforms {
7
7
  vec2 scale;
8
8
  mat4 viewProjectionMatrix;
9
9
  mat4 viewProjectionMatrix64Low;
package/dist/index.cjs CHANGED
@@ -40,7 +40,7 @@ var import_core2 = require("@deck.gl/core");
40
40
  var import_core = require("@deck.gl/core");
41
41
  var uniformBlock = (
42
42
  /* glsl */
43
- `uniform brushingUniforms {
43
+ `layout(std140) uniform brushingUniforms {
44
44
  bool enabled;
45
45
  highp int target;
46
46
  vec2 mousePos;
@@ -220,24 +220,18 @@ var import_core3 = require("@deck.gl/core");
220
220
  // dist/data-filter/shader-module.js
221
221
  var uniformBlock2 = (
222
222
  /* glsl */
223
- `uniform dataFilterUniforms {
223
+ `layout(std140) uniform dataFilterUniforms {
224
224
  bool useSoftMargin;
225
225
  bool enabled;
226
226
  bool transformSize;
227
227
  bool transformColor;
228
- #ifdef DATAFILTER_TYPE
229
- DATAFILTER_TYPE min;
230
- DATAFILTER_TYPE softMin;
231
- DATAFILTER_TYPE softMax;
232
- DATAFILTER_TYPE max;
233
- #ifdef DATAFILTER_DOUBLE
234
- DATAFILTER_TYPE min64High;
235
- DATAFILTER_TYPE max64High;
236
- #endif
237
- #endif
238
- #ifdef DATACATEGORY_TYPE
228
+ vec4 min;
229
+ vec4 softMin;
230
+ vec4 softMax;
231
+ vec4 max;
232
+ vec4 min64High;
233
+ vec4 max64High;
239
234
  highp uvec4 categoryBitMask;
240
- #endif
241
235
  } dataFilter;
242
236
  `
243
237
  );
@@ -257,6 +251,86 @@ var vertex2 = (
257
251
 
258
252
  out float dataFilter_value;
259
253
 
254
+ #ifdef DATAFILTER_TYPE
255
+ float dataFilter_getMin(float _) {
256
+ return dataFilter.min.x;
257
+ }
258
+ vec2 dataFilter_getMin(vec2 _) {
259
+ return dataFilter.min.xy;
260
+ }
261
+ vec3 dataFilter_getMin(vec3 _) {
262
+ return dataFilter.min.xyz;
263
+ }
264
+ vec4 dataFilter_getMin(vec4 _) {
265
+ return dataFilter.min;
266
+ }
267
+
268
+ float dataFilter_getSoftMin(float _) {
269
+ return dataFilter.softMin.x;
270
+ }
271
+ vec2 dataFilter_getSoftMin(vec2 _) {
272
+ return dataFilter.softMin.xy;
273
+ }
274
+ vec3 dataFilter_getSoftMin(vec3 _) {
275
+ return dataFilter.softMin.xyz;
276
+ }
277
+ vec4 dataFilter_getSoftMin(vec4 _) {
278
+ return dataFilter.softMin;
279
+ }
280
+
281
+ float dataFilter_getSoftMax(float _) {
282
+ return dataFilter.softMax.x;
283
+ }
284
+ vec2 dataFilter_getSoftMax(vec2 _) {
285
+ return dataFilter.softMax.xy;
286
+ }
287
+ vec3 dataFilter_getSoftMax(vec3 _) {
288
+ return dataFilter.softMax.xyz;
289
+ }
290
+ vec4 dataFilter_getSoftMax(vec4 _) {
291
+ return dataFilter.softMax;
292
+ }
293
+
294
+ float dataFilter_getMax(float _) {
295
+ return dataFilter.max.x;
296
+ }
297
+ vec2 dataFilter_getMax(vec2 _) {
298
+ return dataFilter.max.xy;
299
+ }
300
+ vec3 dataFilter_getMax(vec3 _) {
301
+ return dataFilter.max.xyz;
302
+ }
303
+ vec4 dataFilter_getMax(vec4 _) {
304
+ return dataFilter.max;
305
+ }
306
+
307
+ float dataFilter_getMin64High(float _) {
308
+ return dataFilter.min64High.x;
309
+ }
310
+ vec2 dataFilter_getMin64High(vec2 _) {
311
+ return dataFilter.min64High.xy;
312
+ }
313
+ vec3 dataFilter_getMin64High(vec3 _) {
314
+ return dataFilter.min64High.xyz;
315
+ }
316
+ vec4 dataFilter_getMin64High(vec4 _) {
317
+ return dataFilter.min64High;
318
+ }
319
+
320
+ float dataFilter_getMax64High(float _) {
321
+ return dataFilter.max64High.x;
322
+ }
323
+ vec2 dataFilter_getMax64High(vec2 _) {
324
+ return dataFilter.max64High.xy;
325
+ }
326
+ vec3 dataFilter_getMax64High(vec3 _) {
327
+ return dataFilter.max64High.xyz;
328
+ }
329
+ vec4 dataFilter_getMax64High(vec4 _) {
330
+ return dataFilter.max64High;
331
+ }
332
+ #endif
333
+
260
334
  float dataFilter_reduceValue(float value) {
261
335
  return value;
262
336
  }
@@ -272,23 +346,27 @@ float dataFilter_reduceValue(vec4 value) {
272
346
 
273
347
  #ifdef DATAFILTER_TYPE
274
348
  void dataFilter_setValue(DATAFILTER_TYPE valueFromMin, DATAFILTER_TYPE valueFromMax) {
349
+ DATAFILTER_TYPE dataFilter_min = dataFilter_getMin(valueFromMin);
350
+ DATAFILTER_TYPE dataFilter_softMin = dataFilter_getSoftMin(valueFromMin);
351
+ DATAFILTER_TYPE dataFilter_softMax = dataFilter_getSoftMax(valueFromMin);
352
+ DATAFILTER_TYPE dataFilter_max = dataFilter_getMax(valueFromMin);
275
353
  if (dataFilter.useSoftMargin) {
276
354
  // smoothstep results are undefined if edge0 \u2265 edge1
277
355
  // Fallback to ignore filterSoftRange if it is truncated by filterRange
278
356
  DATAFILTER_TYPE leftInRange = mix(
279
- smoothstep(dataFilter.min, dataFilter.softMin, valueFromMin),
280
- step(dataFilter.min, valueFromMin),
281
- step(dataFilter.softMin, dataFilter.min)
357
+ smoothstep(dataFilter_min, dataFilter_softMin, valueFromMin),
358
+ step(dataFilter_min, valueFromMin),
359
+ step(dataFilter_softMin, dataFilter_min)
282
360
  );
283
361
  DATAFILTER_TYPE rightInRange = mix(
284
- 1.0 - smoothstep(dataFilter.softMax, dataFilter.max, valueFromMax),
285
- step(valueFromMax, dataFilter.max),
286
- step(dataFilter.max, dataFilter.softMax)
362
+ 1.0 - smoothstep(dataFilter_softMax, dataFilter_max, valueFromMax),
363
+ step(valueFromMax, dataFilter_max),
364
+ step(dataFilter_max, dataFilter_softMax)
287
365
  );
288
366
  dataFilter_value = dataFilter_reduceValue(leftInRange * rightInRange);
289
367
  } else {
290
368
  dataFilter_value = dataFilter_reduceValue(
291
- step(dataFilter.min, valueFromMin) * step(valueFromMax, dataFilter.max)
369
+ step(dataFilter_min, valueFromMin) * step(valueFromMax, dataFilter_max)
292
370
  );
293
371
  }
294
372
  }
@@ -314,9 +392,9 @@ float dataFilter_reduceValue(vec4 value) {
314
392
  dataFilter_bits &= 1u;
315
393
 
316
394
  #if DATACATEGORY_CHANNELS == 1
317
- if(dataFilter_bits == 0u) dataFilter_value = 0.0;
395
+ if (dataFilter_bits == 0u) dataFilter_value = 0.0;
318
396
  #else
319
- if(any(equal(dataFilter_bits, DATACATEGORY_TYPE(0u)))) dataFilter_value = 0.0;
397
+ if (any(equal(dataFilter_bits, DATACATEGORY_TYPE(0u)))) dataFilter_value = 0.0;
320
398
  #endif
321
399
  }
322
400
  #endif
@@ -342,17 +420,23 @@ function getUniforms(opts) {
342
420
  }
343
421
  const { filterRange = [-1, 1], filterEnabled = true, filterTransformSize = true, filterTransformColor = true, categoryBitMask } = opts;
344
422
  const filterSoftRange = opts.filterSoftRange || filterRange;
423
+ const padRange = (value) => {
424
+ if (Array.isArray(value)) {
425
+ return [value[0] || 0, value[1] || 0, value[2] || 0, value[3] || 0];
426
+ }
427
+ return [value, 0, 0, 0];
428
+ };
345
429
  return {
346
430
  ...Number.isFinite(filterRange[0]) ? {
347
- min: filterRange[0],
348
- softMin: filterSoftRange[0],
349
- softMax: filterSoftRange[1],
350
- max: filterRange[1]
431
+ min: padRange(filterRange[0]),
432
+ softMin: padRange(filterSoftRange[0]),
433
+ softMax: padRange(filterSoftRange[1]),
434
+ max: padRange(filterRange[1])
351
435
  } : {
352
- min: filterRange.map((r) => r[0]),
353
- softMin: filterSoftRange.map((r) => r[0]),
354
- softMax: filterSoftRange.map((r) => r[1]),
355
- max: filterRange.map((r) => r[1])
436
+ min: padRange(filterRange.map((r) => r[0])),
437
+ softMin: padRange(filterSoftRange.map((r) => r[0])),
438
+ softMax: padRange(filterSoftRange.map((r) => r[1])),
439
+ max: padRange(filterRange.map((r) => r[1]))
356
440
  },
357
441
  enabled: filterEnabled,
358
442
  useSoftMargin: Boolean(opts.filterSoftRange),
@@ -366,25 +450,14 @@ function getUniforms64(opts) {
366
450
  return {};
367
451
  }
368
452
  const uniforms = getUniforms(opts);
369
- if (Number.isFinite(uniforms.min)) {
370
- const min64High = Math.fround(uniforms.min);
371
- uniforms.min -= min64High;
372
- uniforms.softMin -= min64High;
373
- uniforms.min64High = min64High;
374
- const max64High = Math.fround(uniforms.max);
375
- uniforms.max -= max64High;
376
- uniforms.softMax -= max64High;
377
- uniforms.max64High = max64High;
378
- } else {
379
- const min64High = uniforms.min.map(Math.fround);
380
- uniforms.min = uniforms.min.map((x, i) => x - min64High[i]);
381
- uniforms.softMin = uniforms.softMin.map((x, i) => x - min64High[i]);
382
- uniforms.min64High = min64High;
383
- const max64High = uniforms.max.map(Math.fround);
384
- uniforms.max = uniforms.max.map((x, i) => x - max64High[i]);
385
- uniforms.softMax = uniforms.softMax.map((x, i) => x - max64High[i]);
386
- uniforms.max64High = max64High;
387
- }
453
+ const min64High = uniforms.min.map(Math.fround);
454
+ uniforms.min = uniforms.min.map((x, i) => x - min64High[i]);
455
+ uniforms.softMin = uniforms.softMin.map((x, i) => x - min64High[i]);
456
+ uniforms.min64High = min64High;
457
+ const max64High = uniforms.max.map(Math.fround);
458
+ uniforms.max = uniforms.max.map((x, i) => x - max64High[i]);
459
+ uniforms.softMax = uniforms.softMax.map((x, i) => x - max64High[i]);
460
+ uniforms.max64High = max64High;
388
461
  return uniforms;
389
462
  }
390
463
  var inject2 = {
@@ -396,8 +469,8 @@ var inject2 = {
396
469
  #ifdef DATAFILTER_TYPE
397
470
  #ifdef DATAFILTER_DOUBLE
398
471
  dataFilter_setValue(
399
- filterValues - dataFilter.min64High + filterValues64Low,
400
- filterValues - dataFilter.max64High + filterValues64Low
472
+ filterValues - dataFilter_getMin64High(filterValues) + filterValues64Low,
473
+ filterValues - dataFilter_getMax64High(filterValues) + filterValues64Low
401
474
  );
402
475
  #else
403
476
  dataFilter_setValue(filterValues, filterValues);
@@ -437,27 +510,19 @@ var inject2 = {
437
510
  )
438
511
  };
439
512
  function uniformTypesFromOptions(opts) {
440
- const { categorySize, filterSize, fp64: fp642 } = opts;
441
513
  const uniformTypes = {
442
514
  useSoftMargin: "i32",
443
515
  enabled: "i32",
444
516
  transformSize: "i32",
445
- transformColor: "i32"
517
+ transformColor: "i32",
518
+ min: "vec4<f32>",
519
+ softMin: "vec4<f32>",
520
+ softMax: "vec4<f32>",
521
+ max: "vec4<f32>",
522
+ min64High: "vec4<f32>",
523
+ max64High: "vec4<f32>",
524
+ categoryBitMask: "vec4<u32>"
446
525
  };
447
- if (filterSize) {
448
- const uniformFormat = filterSize === 1 ? "f32" : `vec${filterSize}<f32>`;
449
- uniformTypes.min = uniformFormat;
450
- uniformTypes.softMin = uniformFormat;
451
- uniformTypes.softMax = uniformFormat;
452
- uniformTypes.max = uniformFormat;
453
- if (fp642) {
454
- uniformTypes.min64High = uniformFormat;
455
- uniformTypes.max64High = uniformFormat;
456
- }
457
- }
458
- if (categorySize) {
459
- uniformTypes.categoryBitMask = "vec4<i32>";
460
- }
461
526
  return uniformTypes;
462
527
  }
463
528
  var dataFilter = {
@@ -828,7 +893,7 @@ var import_core4 = require("@deck.gl/core");
828
893
 
829
894
  // dist/fp64/project64.glsl.js
830
895
  var project64_glsl_default = `const vec2 WORLD_SCALE_FP64 = vec2(81.4873275756836, 0.0000032873668232014097);
831
- uniform project64Uniforms {
896
+ layout(std140) uniform project64Uniforms {
832
897
  vec2 scale;
833
898
  mat4 viewProjectionMatrix;
834
899
  mat4 viewProjectionMatrix64Low;
@@ -986,7 +1051,7 @@ vDashOffset = 0.0;
986
1051
  #endif
987
1052
  `,
988
1053
  "fs:#decl": `
989
- uniform pathStyleUniforms {
1054
+ layout(std140) uniform pathStyleUniforms {
990
1055
  float dashAlignMode;
991
1056
  bool dashGapPickable;
992
1057
  } pathStyle;
@@ -1169,7 +1234,7 @@ var import_core9 = require("@deck.gl/core");
1169
1234
  var import_core8 = require("@deck.gl/core");
1170
1235
  var uniformBlock3 = (
1171
1236
  /* glsl */
1172
- `uniform fillUniforms {
1237
+ `layout(std140) uniform fillUniforms {
1173
1238
  vec2 patternTextureSize;
1174
1239
  bool patternEnabled;
1175
1240
  bool patternMask;
@@ -1395,7 +1460,7 @@ var defaultProps5 = {
1395
1460
  var shaderFunction = (
1396
1461
  /* glsl */
1397
1462
  `
1398
- uniform clipUniforms {
1463
+ layout(std140) uniform clipUniforms {
1399
1464
  vec4 bounds;
1400
1465
  } clip;
1401
1466
 
@@ -1520,7 +1585,7 @@ in float collisionPriorities;
1520
1585
 
1521
1586
  uniform sampler2D collision_texture;
1522
1587
 
1523
- uniform collisionUniforms {
1588
+ layout(std140) uniform collisionUniforms {
1524
1589
  bool sort;
1525
1590
  bool enabled;
1526
1591
  } collision;
@@ -1892,7 +1957,7 @@ var import_core21 = require("@deck.gl/core");
1892
1957
  var import_core16 = require("@deck.gl/core");
1893
1958
  var uniformBlock4 = (
1894
1959
  /* glsl */
1895
- `uniform maskUniforms {
1960
+ `layout(std140) uniform maskUniforms {
1896
1961
  vec4 bounds;
1897
1962
  highp int channel;
1898
1963
  bool enabled;
@@ -2448,7 +2513,7 @@ var uniformBlock5 = (
2448
2513
  // eslint-disable-next-line prefer-template
2449
2514
  TERRAIN_MODE_CONSTANTS + /* glsl */
2450
2515
  `
2451
- uniform terrainUniforms {
2516
+ layout(std140) uniform terrainUniforms {
2452
2517
  float mode;
2453
2518
  vec4 bounds;
2454
2519
  } terrain;
@@ -2576,7 +2641,7 @@ if ((terrain.mode == TERRAIN_MODE_USE_COVER) || (terrain.mode == TERRAIN_MODE_US
2576
2641
  };
2577
2642
 
2578
2643
  // dist/terrain/utils.js
2579
- var import_constants = require("@luma.gl/constants");
2644
+ var import_constants = require("@luma.gl/webgl/constants");
2580
2645
  function createRenderTarget(device, opts) {
2581
2646
  return device.createFramebuffer({
2582
2647
  id: opts.id,