@deck.gl/extensions 9.0.0-beta.4 → 9.0.0-beta.6

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 (47) hide show
  1. package/dist/brushing/shader-module.d.ts.map +1 -1
  2. package/dist/brushing/shader-module.js +52 -57
  3. package/dist/clip/clip-extension.d.ts.map +1 -1
  4. package/dist/clip/clip-extension.js +6 -6
  5. package/dist/collision-filter/shader-module.d.ts.map +1 -1
  6. package/dist/collision-filter/shader-module.js +46 -56
  7. package/dist/data-filter/aggregator.d.ts.map +1 -1
  8. package/dist/data-filter/aggregator.js +11 -14
  9. package/dist/data-filter/data-filter-extension.d.ts +2 -1
  10. package/dist/data-filter/data-filter-extension.d.ts.map +1 -1
  11. package/dist/data-filter/data-filter-extension.js +13 -7
  12. package/dist/data-filter/shader-module.d.ts.map +1 -1
  13. package/dist/data-filter/shader-module.js +70 -78
  14. package/dist/dist.dev.js +297 -302
  15. package/dist/fill-style/fill-style-extension.js +1 -1
  16. package/dist/fill-style/{shaders.glsl.d.ts → shader-module.d.ts} +1 -1
  17. package/dist/fill-style/shader-module.d.ts.map +1 -0
  18. package/dist/fill-style/{shaders.glsl.js → shader-module.js} +27 -33
  19. package/dist/fp64/project64.glsl.js +41 -60
  20. package/dist/index.cjs +374 -432
  21. package/dist/index.cjs.map +4 -4
  22. package/dist/mask/mask-pass.js +2 -2
  23. package/dist/mask/shader-module.d.ts.map +1 -1
  24. package/dist/mask/shader-module.js +33 -37
  25. package/dist/path-style/shaders.glsl.js +42 -47
  26. package/dist/terrain/shader-module.d.ts.map +1 -1
  27. package/dist/terrain/shader-module.js +30 -32
  28. package/dist/terrain/terrain-pass.js +2 -2
  29. package/dist/terrain/utils.js +2 -2
  30. package/dist/utils/syntax-tags.d.ts +6 -0
  31. package/dist/utils/syntax-tags.d.ts.map +1 -0
  32. package/dist/utils/syntax-tags.js +5 -0
  33. package/dist.min.js +364 -431
  34. package/package.json +8 -8
  35. package/src/brushing/shader-module.ts +4 -3
  36. package/src/clip/clip-extension.ts +10 -9
  37. package/src/collision-filter/shader-module.ts +6 -4
  38. package/src/data-filter/aggregator.ts +8 -13
  39. package/src/data-filter/data-filter-extension.ts +18 -8
  40. package/src/data-filter/shader-module.ts +7 -6
  41. package/src/fill-style/fill-style-extension.ts +1 -1
  42. package/src/fill-style/{shaders.glsl.ts → shader-module.ts} +6 -5
  43. package/src/mask/shader-module.ts +7 -6
  44. package/src/terrain/shader-module.ts +11 -10
  45. package/src/terrain/utils.ts +1 -1
  46. package/src/utils/syntax-tags.ts +5 -0
  47. package/dist/fill-style/shaders.glsl.d.ts.map +0 -1
package/dist/dist.dev.js CHANGED
@@ -79,7 +79,12 @@ var __exports__ = (() => {
79
79
 
80
80
  // src/brushing/shader-module.ts
81
81
  var import_core2 = __toESM(require_core(), 1);
82
- var vs = `
82
+
83
+ // src/utils/syntax-tags.ts
84
+ var glsl = (s) => `${s}`;
85
+
86
+ // src/brushing/shader-module.ts
87
+ var vs = glsl`
83
88
  uniform bool brushing_enabled;
84
89
  uniform int brushing_target;
85
90
  uniform vec2 brushing_mousePos;
@@ -112,7 +117,7 @@ var __exports__ = (() => {
112
117
  brushing_isVisible = float(visible);
113
118
  }
114
119
  `;
115
- var fs = `
120
+ var fs = glsl`
116
121
  uniform bool brushing_enabled;
117
122
  in float brushing_isVisible;
118
123
  `;
@@ -123,7 +128,7 @@ var __exports__ = (() => {
123
128
  source_target: 3
124
129
  };
125
130
  var inject = {
126
- "vs:DECKGL_FILTER_GL_POSITION": `
131
+ "vs:DECKGL_FILTER_GL_POSITION": glsl`
127
132
  vec2 brushingTarget;
128
133
  vec2 brushingSource;
129
134
  if (brushing_target == 3) {
@@ -237,8 +242,202 @@ var __exports__ = (() => {
237
242
  BrushingExtension.defaultProps = defaultProps;
238
243
  BrushingExtension.extensionName = "BrushingExtension";
239
244
 
240
- // ../../node_modules/@luma.gl/constants/dist/constants-enum.js
241
- var GLEnum = function(GLEnum2) {
245
+ // src/data-filter/data-filter-extension.ts
246
+ var import_core4 = __toESM(require_core(), 1);
247
+
248
+ // src/data-filter/shader-module.ts
249
+ var vs2 = glsl`
250
+ uniform DATAFILTER_TYPE filter_min;
251
+ uniform DATAFILTER_TYPE filter_softMin;
252
+ uniform DATAFILTER_TYPE filter_softMax;
253
+ uniform DATAFILTER_TYPE filter_max;
254
+ uniform bool filter_useSoftMargin;
255
+ uniform bool filter_enabled;
256
+ uniform bool filter_transformSize;
257
+ uniform ivec4 filter_categoryBitMask;
258
+
259
+ #ifdef NON_INSTANCED_MODEL
260
+ #define DATAFILTER_ATTRIB filterValues
261
+ #define DATAFILTER_ATTRIB_64LOW filterValues64Low
262
+ #define DATACATEGORY_ATTRIB filterCategoryValues
263
+ #else
264
+ #define DATAFILTER_ATTRIB instanceFilterValues
265
+ #define DATAFILTER_ATTRIB_64LOW instanceFilterValues64Low
266
+ #define DATACATEGORY_ATTRIB instanceFilterCategoryValues
267
+ #endif
268
+
269
+ in DATAFILTER_TYPE DATAFILTER_ATTRIB;
270
+ #ifdef DATAFILTER_DOUBLE
271
+ in DATAFILTER_TYPE DATAFILTER_ATTRIB_64LOW;
272
+
273
+ uniform DATAFILTER_TYPE filter_min64High;
274
+ uniform DATAFILTER_TYPE filter_max64High;
275
+ #endif
276
+ in DATACATEGORY_TYPE DATACATEGORY_ATTRIB;
277
+
278
+ out float dataFilter_value;
279
+
280
+ float dataFilter_reduceValue(float value) {
281
+ return value;
282
+ }
283
+ float dataFilter_reduceValue(vec2 value) {
284
+ return min(value.x, value.y);
285
+ }
286
+ float dataFilter_reduceValue(vec3 value) {
287
+ return min(min(value.x, value.y), value.z);
288
+ }
289
+ float dataFilter_reduceValue(vec4 value) {
290
+ return min(min(value.x, value.y), min(value.z, value.w));
291
+ }
292
+ void dataFilter_setValue(DATAFILTER_TYPE valueFromMin, DATAFILTER_TYPE valueFromMax, DATACATEGORY_TYPE category) {
293
+ if (filter_enabled) {
294
+ if (filter_useSoftMargin) {
295
+ dataFilter_value = dataFilter_reduceValue(
296
+ smoothstep(filter_min, filter_softMin, valueFromMin) *
297
+ (1.0 - smoothstep(filter_softMax, filter_max, valueFromMax))
298
+ );
299
+ } else {
300
+ dataFilter_value = dataFilter_reduceValue(
301
+ step(filter_min, valueFromMin) * step(valueFromMax, filter_max)
302
+ );
303
+ }
304
+
305
+ #if DATACATEGORY_CHANNELS == 1 // One 128-bit mask
306
+ int dataFilter_masks = filter_categoryBitMask[int(category / 32.0)];
307
+ #elif DATACATEGORY_CHANNELS == 2 // Two 64-bit masks
308
+ ivec2 dataFilter_masks = ivec2(
309
+ filter_categoryBitMask[int(category.x / 32.0)],
310
+ filter_categoryBitMask[int(category.y / 32.0) + 2]
311
+ );
312
+ #elif DATACATEGORY_CHANNELS == 3 // Three 32-bit masks
313
+ ivec3 dataFilter_masks = filter_categoryBitMask.xyz;
314
+ #else // Four 32-bit masks
315
+ ivec4 dataFilter_masks = filter_categoryBitMask;
316
+ #endif
317
+
318
+ // Shift mask and extract relevant bits
319
+ DATACATEGORY_TYPE dataFilter_bits = DATACATEGORY_TYPE(dataFilter_masks) / pow(DATACATEGORY_TYPE(2.0), mod(category, 32.0));
320
+ dataFilter_bits = mod(floor(dataFilter_bits), 2.0);
321
+
322
+ #if DATACATEGORY_CHANNELS == 1
323
+ if(dataFilter_bits == 0.0) dataFilter_value = 0.0;
324
+ #else
325
+ if(any(equal(dataFilter_bits, DATACATEGORY_TYPE(0.0)))) dataFilter_value = 0.0;
326
+ #endif
327
+ } else {
328
+ dataFilter_value = 1.0;
329
+ }
330
+ }
331
+ `;
332
+ var fs2 = glsl`
333
+ uniform bool filter_transformColor;
334
+ in float dataFilter_value;
335
+ `;
336
+ function getUniforms(opts) {
337
+ if (!opts || !("extensions" in opts)) {
338
+ return {};
339
+ }
340
+ const {
341
+ filterRange = [-1, 1],
342
+ filterEnabled = true,
343
+ filterTransformSize = true,
344
+ filterTransformColor = true
345
+ } = opts;
346
+ const filterSoftRange = opts.filterSoftRange || filterRange;
347
+ return {
348
+ ...Number.isFinite(filterRange[0]) ? {
349
+ filter_min: filterRange[0],
350
+ filter_softMin: filterSoftRange[0],
351
+ filter_softMax: filterSoftRange[1],
352
+ filter_max: filterRange[1]
353
+ } : {
354
+ filter_min: filterRange.map((r) => r[0]),
355
+ filter_softMin: filterSoftRange.map((r) => r[0]),
356
+ filter_softMax: filterSoftRange.map((r) => r[1]),
357
+ filter_max: filterRange.map((r) => r[1])
358
+ },
359
+ filter_enabled: filterEnabled,
360
+ filter_useSoftMargin: Boolean(opts.filterSoftRange),
361
+ filter_transformSize: filterEnabled && filterTransformSize,
362
+ filter_transformColor: filterEnabled && filterTransformColor
363
+ };
364
+ }
365
+ function getUniforms64(opts) {
366
+ if (!opts || !("extensions" in opts)) {
367
+ return {};
368
+ }
369
+ const uniforms = getUniforms(opts);
370
+ if (Number.isFinite(uniforms.filter_min)) {
371
+ const min64High = Math.fround(uniforms.filter_min);
372
+ uniforms.filter_min -= min64High;
373
+ uniforms.filter_softMin -= min64High;
374
+ uniforms.filter_min64High = min64High;
375
+ const max64High = Math.fround(uniforms.filter_max);
376
+ uniforms.filter_max -= max64High;
377
+ uniforms.filter_softMax -= max64High;
378
+ uniforms.filter_max64High = max64High;
379
+ } else {
380
+ const min64High = uniforms.filter_min.map(Math.fround);
381
+ uniforms.filter_min = uniforms.filter_min.map((x, i) => x - min64High[i]);
382
+ uniforms.filter_softMin = uniforms.filter_softMin.map((x, i) => x - min64High[i]);
383
+ uniforms.filter_min64High = min64High;
384
+ const max64High = uniforms.filter_max.map(Math.fround);
385
+ uniforms.filter_max = uniforms.filter_max.map((x, i) => x - max64High[i]);
386
+ uniforms.filter_softMax = uniforms.filter_softMax.map((x, i) => x - max64High[i]);
387
+ uniforms.filter_max64High = max64High;
388
+ }
389
+ return uniforms;
390
+ }
391
+ var inject2 = {
392
+ "vs:#main-start": glsl`
393
+ #ifdef DATAFILTER_DOUBLE
394
+ dataFilter_setValue(
395
+ DATAFILTER_ATTRIB - filter_min64High + DATAFILTER_ATTRIB_64LOW,
396
+ DATAFILTER_ATTRIB - filter_max64High + DATAFILTER_ATTRIB_64LOW,
397
+ DATACATEGORY_ATTRIB
398
+ );
399
+ #else
400
+ dataFilter_setValue(DATAFILTER_ATTRIB, DATAFILTER_ATTRIB, DATACATEGORY_ATTRIB);
401
+ #endif
402
+ `,
403
+ "vs:#main-end": glsl`
404
+ if (dataFilter_value == 0.0) {
405
+ gl_Position = vec4(0.);
406
+ }
407
+ `,
408
+ "vs:DECKGL_FILTER_SIZE": glsl`
409
+ if (filter_transformSize) {
410
+ size = size * dataFilter_value;
411
+ }
412
+ `,
413
+ "fs:DECKGL_FILTER_COLOR": glsl`
414
+ if (dataFilter_value == 0.0) discard;
415
+ if (filter_transformColor) {
416
+ color.a *= dataFilter_value;
417
+ }
418
+ `
419
+ };
420
+ var shaderModule = {
421
+ name: "data-filter",
422
+ vs: vs2,
423
+ fs: fs2,
424
+ inject: inject2,
425
+ getUniforms
426
+ };
427
+ var shaderModule64 = {
428
+ name: "data-filter-fp64",
429
+ vs: vs2,
430
+ fs: fs2,
431
+ inject: inject2,
432
+ getUniforms: getUniforms64
433
+ };
434
+
435
+ // src/data-filter/aggregator.ts
436
+ var import_engine = __toESM(require_engine(), 1);
437
+
438
+ // ../../node_modules/@luma.gl/constants/dist/webgl-constants.js
439
+ var GLEnum;
440
+ (function(GLEnum2) {
242
441
  GLEnum2[GLEnum2["DEPTH_BUFFER_BIT"] = 256] = "DEPTH_BUFFER_BIT";
243
442
  GLEnum2[GLEnum2["STENCIL_BUFFER_BIT"] = 1024] = "STENCIL_BUFFER_BIT";
244
443
  GLEnum2[GLEnum2["COLOR_BUFFER_BIT"] = 16384] = "COLOR_BUFFER_BIT";
@@ -771,15 +970,10 @@ var __exports__ = (() => {
771
970
  GLEnum2[GLEnum2["INVALID_INDEX"] = 4294967295] = "INVALID_INDEX";
772
971
  GLEnum2[GLEnum2["TIMEOUT_IGNORED"] = -1] = "TIMEOUT_IGNORED";
773
972
  GLEnum2[GLEnum2["MAX_CLIENT_WAIT_TIMEOUT_WEBGL"] = 37447] = "MAX_CLIENT_WAIT_TIMEOUT_WEBGL";
774
- GLEnum2[GLEnum2["VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE"] = 35070] = "VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE";
775
973
  GLEnum2[GLEnum2["UNMASKED_VENDOR_WEBGL"] = 37445] = "UNMASKED_VENDOR_WEBGL";
776
974
  GLEnum2[GLEnum2["UNMASKED_RENDERER_WEBGL"] = 37446] = "UNMASKED_RENDERER_WEBGL";
777
975
  GLEnum2[GLEnum2["MAX_TEXTURE_MAX_ANISOTROPY_EXT"] = 34047] = "MAX_TEXTURE_MAX_ANISOTROPY_EXT";
778
976
  GLEnum2[GLEnum2["TEXTURE_MAX_ANISOTROPY_EXT"] = 34046] = "TEXTURE_MAX_ANISOTROPY_EXT";
779
- GLEnum2[GLEnum2["SRGB_EXT"] = 35904] = "SRGB_EXT";
780
- GLEnum2[GLEnum2["SRGB_ALPHA_EXT"] = 35906] = "SRGB_ALPHA_EXT";
781
- GLEnum2[GLEnum2["SRGB8_ALPHA8_EXT"] = 35907] = "SRGB8_ALPHA8_EXT";
782
- GLEnum2[GLEnum2["FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT"] = 33296] = "FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT";
783
977
  GLEnum2[GLEnum2["R16_EXT"] = 33322] = "R16_EXT";
784
978
  GLEnum2[GLEnum2["RG16_EXT"] = 33324] = "RG16_EXT";
785
979
  GLEnum2[GLEnum2["RGB16_EXT"] = 32852] = "RGB16_EXT";
@@ -850,50 +1044,6 @@ var __exports__ = (() => {
850
1044
  GLEnum2[GLEnum2["COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR"] = 37851] = "COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR";
851
1045
  GLEnum2[GLEnum2["COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR"] = 37852] = "COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR";
852
1046
  GLEnum2[GLEnum2["COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR"] = 37853] = "COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR";
853
- GLEnum2[GLEnum2["UNSIGNED_INT_24_8_WEBGL"] = 34042] = "UNSIGNED_INT_24_8_WEBGL";
854
- GLEnum2[GLEnum2["HALF_FLOAT_OES"] = 36193] = "HALF_FLOAT_OES";
855
- GLEnum2[GLEnum2["RGBA32F_EXT"] = 34836] = "RGBA32F_EXT";
856
- GLEnum2[GLEnum2["RGB32F_EXT"] = 34837] = "RGB32F_EXT";
857
- GLEnum2[GLEnum2["FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT"] = 33297] = "FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT";
858
- GLEnum2[GLEnum2["UNSIGNED_NORMALIZED_EXT"] = 35863] = "UNSIGNED_NORMALIZED_EXT";
859
- GLEnum2[GLEnum2["MIN_EXT"] = 32775] = "MIN_EXT";
860
- GLEnum2[GLEnum2["MAX_EXT"] = 32776] = "MAX_EXT";
861
- GLEnum2[GLEnum2["FRAGMENT_SHADER_DERIVATIVE_HINT_OES"] = 35723] = "FRAGMENT_SHADER_DERIVATIVE_HINT_OES";
862
- GLEnum2[GLEnum2["COLOR_ATTACHMENT0_WEBGL"] = 36064] = "COLOR_ATTACHMENT0_WEBGL";
863
- GLEnum2[GLEnum2["COLOR_ATTACHMENT1_WEBGL"] = 36065] = "COLOR_ATTACHMENT1_WEBGL";
864
- GLEnum2[GLEnum2["COLOR_ATTACHMENT2_WEBGL"] = 36066] = "COLOR_ATTACHMENT2_WEBGL";
865
- GLEnum2[GLEnum2["COLOR_ATTACHMENT3_WEBGL"] = 36067] = "COLOR_ATTACHMENT3_WEBGL";
866
- GLEnum2[GLEnum2["COLOR_ATTACHMENT4_WEBGL"] = 36068] = "COLOR_ATTACHMENT4_WEBGL";
867
- GLEnum2[GLEnum2["COLOR_ATTACHMENT5_WEBGL"] = 36069] = "COLOR_ATTACHMENT5_WEBGL";
868
- GLEnum2[GLEnum2["COLOR_ATTACHMENT6_WEBGL"] = 36070] = "COLOR_ATTACHMENT6_WEBGL";
869
- GLEnum2[GLEnum2["COLOR_ATTACHMENT7_WEBGL"] = 36071] = "COLOR_ATTACHMENT7_WEBGL";
870
- GLEnum2[GLEnum2["COLOR_ATTACHMENT8_WEBGL"] = 36072] = "COLOR_ATTACHMENT8_WEBGL";
871
- GLEnum2[GLEnum2["COLOR_ATTACHMENT9_WEBGL"] = 36073] = "COLOR_ATTACHMENT9_WEBGL";
872
- GLEnum2[GLEnum2["COLOR_ATTACHMENT10_WEBGL"] = 36074] = "COLOR_ATTACHMENT10_WEBGL";
873
- GLEnum2[GLEnum2["COLOR_ATTACHMENT11_WEBGL"] = 36075] = "COLOR_ATTACHMENT11_WEBGL";
874
- GLEnum2[GLEnum2["COLOR_ATTACHMENT12_WEBGL"] = 36076] = "COLOR_ATTACHMENT12_WEBGL";
875
- GLEnum2[GLEnum2["COLOR_ATTACHMENT13_WEBGL"] = 36077] = "COLOR_ATTACHMENT13_WEBGL";
876
- GLEnum2[GLEnum2["COLOR_ATTACHMENT14_WEBGL"] = 36078] = "COLOR_ATTACHMENT14_WEBGL";
877
- GLEnum2[GLEnum2["COLOR_ATTACHMENT15_WEBGL"] = 36079] = "COLOR_ATTACHMENT15_WEBGL";
878
- GLEnum2[GLEnum2["DRAW_BUFFER0_WEBGL"] = 34853] = "DRAW_BUFFER0_WEBGL";
879
- GLEnum2[GLEnum2["DRAW_BUFFER1_WEBGL"] = 34854] = "DRAW_BUFFER1_WEBGL";
880
- GLEnum2[GLEnum2["DRAW_BUFFER2_WEBGL"] = 34855] = "DRAW_BUFFER2_WEBGL";
881
- GLEnum2[GLEnum2["DRAW_BUFFER3_WEBGL"] = 34856] = "DRAW_BUFFER3_WEBGL";
882
- GLEnum2[GLEnum2["DRAW_BUFFER4_WEBGL"] = 34857] = "DRAW_BUFFER4_WEBGL";
883
- GLEnum2[GLEnum2["DRAW_BUFFER5_WEBGL"] = 34858] = "DRAW_BUFFER5_WEBGL";
884
- GLEnum2[GLEnum2["DRAW_BUFFER6_WEBGL"] = 34859] = "DRAW_BUFFER6_WEBGL";
885
- GLEnum2[GLEnum2["DRAW_BUFFER7_WEBGL"] = 34860] = "DRAW_BUFFER7_WEBGL";
886
- GLEnum2[GLEnum2["DRAW_BUFFER8_WEBGL"] = 34861] = "DRAW_BUFFER8_WEBGL";
887
- GLEnum2[GLEnum2["DRAW_BUFFER9_WEBGL"] = 34862] = "DRAW_BUFFER9_WEBGL";
888
- GLEnum2[GLEnum2["DRAW_BUFFER10_WEBGL"] = 34863] = "DRAW_BUFFER10_WEBGL";
889
- GLEnum2[GLEnum2["DRAW_BUFFER11_WEBGL"] = 34864] = "DRAW_BUFFER11_WEBGL";
890
- GLEnum2[GLEnum2["DRAW_BUFFER12_WEBGL"] = 34865] = "DRAW_BUFFER12_WEBGL";
891
- GLEnum2[GLEnum2["DRAW_BUFFER13_WEBGL"] = 34866] = "DRAW_BUFFER13_WEBGL";
892
- GLEnum2[GLEnum2["DRAW_BUFFER14_WEBGL"] = 34867] = "DRAW_BUFFER14_WEBGL";
893
- GLEnum2[GLEnum2["DRAW_BUFFER15_WEBGL"] = 34868] = "DRAW_BUFFER15_WEBGL";
894
- GLEnum2[GLEnum2["MAX_COLOR_ATTACHMENTS_WEBGL"] = 36063] = "MAX_COLOR_ATTACHMENTS_WEBGL";
895
- GLEnum2[GLEnum2["MAX_DRAW_BUFFERS_WEBGL"] = 34852] = "MAX_DRAW_BUFFERS_WEBGL";
896
- GLEnum2[GLEnum2["VERTEX_ARRAY_BINDING_OES"] = 34229] = "VERTEX_ARRAY_BINDING_OES";
897
1047
  GLEnum2[GLEnum2["QUERY_COUNTER_BITS_EXT"] = 34916] = "QUERY_COUNTER_BITS_EXT";
898
1048
  GLEnum2[GLEnum2["CURRENT_QUERY_EXT"] = 34917] = "CURRENT_QUERY_EXT";
899
1049
  GLEnum2[GLEnum2["QUERY_RESULT_EXT"] = 34918] = "QUERY_RESULT_EXT";
@@ -901,201 +1051,42 @@ var __exports__ = (() => {
901
1051
  GLEnum2[GLEnum2["TIME_ELAPSED_EXT"] = 35007] = "TIME_ELAPSED_EXT";
902
1052
  GLEnum2[GLEnum2["TIMESTAMP_EXT"] = 36392] = "TIMESTAMP_EXT";
903
1053
  GLEnum2[GLEnum2["GPU_DISJOINT_EXT"] = 36795] = "GPU_DISJOINT_EXT";
904
- return GLEnum2;
905
- }(GLEnum || {});
906
-
907
- // src/data-filter/data-filter-extension.ts
908
- var import_core4 = __toESM(require_core(), 1);
909
-
910
- // src/data-filter/shader-module.ts
911
- var vs2 = `
912
- uniform DATAFILTER_TYPE filter_min;
913
- uniform DATAFILTER_TYPE filter_softMin;
914
- uniform DATAFILTER_TYPE filter_softMax;
915
- uniform DATAFILTER_TYPE filter_max;
916
- uniform bool filter_useSoftMargin;
917
- uniform bool filter_enabled;
918
- uniform bool filter_transformSize;
919
- uniform ivec4 filter_categoryBitMask;
920
-
921
- #ifdef NON_INSTANCED_MODEL
922
- #define DATAFILTER_ATTRIB filterValues
923
- #define DATAFILTER_ATTRIB_64LOW filterValues64Low
924
- #define DATACATEGORY_ATTRIB filterCategoryValues
925
- #else
926
- #define DATAFILTER_ATTRIB instanceFilterValues
927
- #define DATAFILTER_ATTRIB_64LOW instanceFilterValues64Low
928
- #define DATACATEGORY_ATTRIB instanceFilterCategoryValues
929
- #endif
930
-
931
- in DATAFILTER_TYPE DATAFILTER_ATTRIB;
932
- #ifdef DATAFILTER_DOUBLE
933
- in DATAFILTER_TYPE DATAFILTER_ATTRIB_64LOW;
934
-
935
- uniform DATAFILTER_TYPE filter_min64High;
936
- uniform DATAFILTER_TYPE filter_max64High;
937
- #endif
938
- in DATACATEGORY_TYPE DATACATEGORY_ATTRIB;
939
-
940
- out float dataFilter_value;
941
-
942
- float dataFilter_reduceValue(float value) {
943
- return value;
944
- }
945
- float dataFilter_reduceValue(vec2 value) {
946
- return min(value.x, value.y);
947
- }
948
- float dataFilter_reduceValue(vec3 value) {
949
- return min(min(value.x, value.y), value.z);
950
- }
951
- float dataFilter_reduceValue(vec4 value) {
952
- return min(min(value.x, value.y), min(value.z, value.w));
953
- }
954
- void dataFilter_setValue(DATAFILTER_TYPE valueFromMin, DATAFILTER_TYPE valueFromMax, DATACATEGORY_TYPE category) {
955
- if (filter_enabled) {
956
- if (filter_useSoftMargin) {
957
- dataFilter_value = dataFilter_reduceValue(
958
- smoothstep(filter_min, filter_softMin, valueFromMin) *
959
- (1.0 - smoothstep(filter_softMax, filter_max, valueFromMax))
960
- );
961
- } else {
962
- dataFilter_value = dataFilter_reduceValue(
963
- step(filter_min, valueFromMin) * step(valueFromMax, filter_max)
964
- );
965
- }
966
-
967
- #if DATACATEGORY_CHANNELS == 1 // One 128-bit mask
968
- int dataFilter_masks = filter_categoryBitMask[int(category / 32.0)];
969
- #elif DATACATEGORY_CHANNELS == 2 // Two 64-bit masks
970
- ivec2 dataFilter_masks = ivec2(
971
- filter_categoryBitMask[int(category.x / 32.0)],
972
- filter_categoryBitMask[int(category.y / 32.0) + 2]
973
- );
974
- #elif DATACATEGORY_CHANNELS == 3 // Three 32-bit masks
975
- ivec3 dataFilter_masks = filter_categoryBitMask.xyz;
976
- #else // Four 32-bit masks
977
- ivec4 dataFilter_masks = filter_categoryBitMask;
978
- #endif
979
-
980
- // Shift mask and extract relevant bits
981
- DATACATEGORY_TYPE dataFilter_bits = DATACATEGORY_TYPE(dataFilter_masks) / pow(DATACATEGORY_TYPE(2.0), mod(category, 32.0));
982
- dataFilter_bits = mod(floor(dataFilter_bits), 2.0);
983
-
984
- #if DATACATEGORY_CHANNELS == 1
985
- if(dataFilter_bits == 0.0) dataFilter_value = 0.0;
986
- #else
987
- if(any(equal(dataFilter_bits, DATACATEGORY_TYPE(0.0)))) dataFilter_value = 0.0;
988
- #endif
989
- } else {
990
- dataFilter_value = 1.0;
991
- }
992
- }
993
- `;
994
- var fs2 = `
995
- uniform bool filter_transformColor;
996
- in float dataFilter_value;
997
- `;
998
- function getUniforms(opts) {
999
- if (!opts || !("extensions" in opts)) {
1000
- return {};
1001
- }
1002
- const {
1003
- filterRange = [-1, 1],
1004
- filterEnabled = true,
1005
- filterTransformSize = true,
1006
- filterTransformColor = true
1007
- } = opts;
1008
- const filterSoftRange = opts.filterSoftRange || filterRange;
1009
- return {
1010
- ...Number.isFinite(filterRange[0]) ? {
1011
- filter_min: filterRange[0],
1012
- filter_softMin: filterSoftRange[0],
1013
- filter_softMax: filterSoftRange[1],
1014
- filter_max: filterRange[1]
1015
- } : {
1016
- filter_min: filterRange.map((r) => r[0]),
1017
- filter_softMin: filterSoftRange.map((r) => r[0]),
1018
- filter_softMax: filterSoftRange.map((r) => r[1]),
1019
- filter_max: filterRange.map((r) => r[1])
1020
- },
1021
- filter_enabled: filterEnabled,
1022
- filter_useSoftMargin: Boolean(opts.filterSoftRange),
1023
- filter_transformSize: filterEnabled && filterTransformSize,
1024
- filter_transformColor: filterEnabled && filterTransformColor
1025
- };
1026
- }
1027
- function getUniforms64(opts) {
1028
- if (!opts || !("extensions" in opts)) {
1029
- return {};
1030
- }
1031
- const uniforms = getUniforms(opts);
1032
- if (Number.isFinite(uniforms.filter_min)) {
1033
- const min64High = Math.fround(uniforms.filter_min);
1034
- uniforms.filter_min -= min64High;
1035
- uniforms.filter_softMin -= min64High;
1036
- uniforms.filter_min64High = min64High;
1037
- const max64High = Math.fround(uniforms.filter_max);
1038
- uniforms.filter_max -= max64High;
1039
- uniforms.filter_softMax -= max64High;
1040
- uniforms.filter_max64High = max64High;
1041
- } else {
1042
- const min64High = uniforms.filter_min.map(Math.fround);
1043
- uniforms.filter_min = uniforms.filter_min.map((x, i) => x - min64High[i]);
1044
- uniforms.filter_softMin = uniforms.filter_softMin.map((x, i) => x - min64High[i]);
1045
- uniforms.filter_min64High = min64High;
1046
- const max64High = uniforms.filter_max.map(Math.fround);
1047
- uniforms.filter_max = uniforms.filter_max.map((x, i) => x - max64High[i]);
1048
- uniforms.filter_softMax = uniforms.filter_softMax.map((x, i) => x - max64High[i]);
1049
- uniforms.filter_max64High = max64High;
1050
- }
1051
- return uniforms;
1052
- }
1053
- var inject2 = {
1054
- "vs:#main-start": `
1055
- #ifdef DATAFILTER_DOUBLE
1056
- dataFilter_setValue(
1057
- DATAFILTER_ATTRIB - filter_min64High + DATAFILTER_ATTRIB_64LOW,
1058
- DATAFILTER_ATTRIB - filter_max64High + DATAFILTER_ATTRIB_64LOW,
1059
- DATACATEGORY_ATTRIB
1060
- );
1061
- #else
1062
- dataFilter_setValue(DATAFILTER_ATTRIB, DATAFILTER_ATTRIB, DATACATEGORY_ATTRIB);
1063
- #endif
1064
- `,
1065
- "vs:#main-end": `
1066
- if (dataFilter_value == 0.0) {
1067
- gl_Position = vec4(0.);
1068
- }
1069
- `,
1070
- "vs:DECKGL_FILTER_SIZE": `
1071
- if (filter_transformSize) {
1072
- size = size * dataFilter_value;
1073
- }
1074
- `,
1075
- "fs:DECKGL_FILTER_COLOR": `
1076
- if (dataFilter_value == 0.0) discard;
1077
- if (filter_transformColor) {
1078
- color.a *= dataFilter_value;
1079
- }
1080
- `
1081
- };
1082
- var shaderModule = {
1083
- name: "data-filter",
1084
- vs: vs2,
1085
- fs: fs2,
1086
- inject: inject2,
1087
- getUniforms
1088
- };
1089
- var shaderModule64 = {
1090
- name: "data-filter-fp64",
1091
- vs: vs2,
1092
- fs: fs2,
1093
- inject: inject2,
1094
- getUniforms: getUniforms64
1095
- };
1054
+ GLEnum2[GLEnum2["COMPLETION_STATUS_KHR"] = 37297] = "COMPLETION_STATUS_KHR";
1055
+ GLEnum2[GLEnum2["DEPTH_CLAMP_EXT"] = 34383] = "DEPTH_CLAMP_EXT";
1056
+ GLEnum2[GLEnum2["FIRST_VERTEX_CONVENTION_WEBGL"] = 36429] = "FIRST_VERTEX_CONVENTION_WEBGL";
1057
+ GLEnum2[GLEnum2["LAST_VERTEX_CONVENTION_WEBGL"] = 36430] = "LAST_VERTEX_CONVENTION_WEBGL";
1058
+ GLEnum2[GLEnum2["PROVOKING_VERTEX_WEBL"] = 36431] = "PROVOKING_VERTEX_WEBL";
1059
+ GLEnum2[GLEnum2["POLYGON_MODE_WEBGL"] = 2880] = "POLYGON_MODE_WEBGL";
1060
+ GLEnum2[GLEnum2["POLYGON_OFFSET_LINE_WEBGL"] = 10754] = "POLYGON_OFFSET_LINE_WEBGL";
1061
+ GLEnum2[GLEnum2["LINE_WEBGL"] = 6913] = "LINE_WEBGL";
1062
+ GLEnum2[GLEnum2["FILL_WEBGL"] = 6914] = "FILL_WEBGL";
1063
+ GLEnum2[GLEnum2["MAX_CLIP_DISTANCES_WEBGL"] = 3378] = "MAX_CLIP_DISTANCES_WEBGL";
1064
+ GLEnum2[GLEnum2["MAX_CULL_DISTANCES_WEBGL"] = 33529] = "MAX_CULL_DISTANCES_WEBGL";
1065
+ GLEnum2[GLEnum2["MAX_COMBINED_CLIP_AND_CULL_DISTANCES_WEBGL"] = 33530] = "MAX_COMBINED_CLIP_AND_CULL_DISTANCES_WEBGL";
1066
+ GLEnum2[GLEnum2["CLIP_DISTANCE0_WEBGL"] = 12288] = "CLIP_DISTANCE0_WEBGL";
1067
+ GLEnum2[GLEnum2["CLIP_DISTANCE1_WEBGL"] = 12289] = "CLIP_DISTANCE1_WEBGL";
1068
+ GLEnum2[GLEnum2["CLIP_DISTANCE2_WEBGL"] = 12290] = "CLIP_DISTANCE2_WEBGL";
1069
+ GLEnum2[GLEnum2["CLIP_DISTANCE3_WEBGL"] = 12291] = "CLIP_DISTANCE3_WEBGL";
1070
+ GLEnum2[GLEnum2["CLIP_DISTANCE4_WEBGL"] = 12292] = "CLIP_DISTANCE4_WEBGL";
1071
+ GLEnum2[GLEnum2["CLIP_DISTANCE5_WEBGL"] = 12293] = "CLIP_DISTANCE5_WEBGL";
1072
+ GLEnum2[GLEnum2["CLIP_DISTANCE6_WEBGL"] = 12294] = "CLIP_DISTANCE6_WEBGL";
1073
+ GLEnum2[GLEnum2["CLIP_DISTANCE7_WEBGL"] = 12295] = "CLIP_DISTANCE7_WEBGL";
1074
+ GLEnum2[GLEnum2["POLYGON_OFFSET_CLAMP_EXT"] = 36379] = "POLYGON_OFFSET_CLAMP_EXT";
1075
+ GLEnum2[GLEnum2["LOWER_LEFT_EXT"] = 36001] = "LOWER_LEFT_EXT";
1076
+ GLEnum2[GLEnum2["UPPER_LEFT_EXT"] = 36002] = "UPPER_LEFT_EXT";
1077
+ GLEnum2[GLEnum2["NEGATIVE_ONE_TO_ONE_EXT"] = 37726] = "NEGATIVE_ONE_TO_ONE_EXT";
1078
+ GLEnum2[GLEnum2["ZERO_TO_ONE_EXT"] = 37727] = "ZERO_TO_ONE_EXT";
1079
+ GLEnum2[GLEnum2["CLIP_ORIGIN_EXT"] = 37724] = "CLIP_ORIGIN_EXT";
1080
+ GLEnum2[GLEnum2["CLIP_DEPTH_MODE_EXT"] = 37725] = "CLIP_DEPTH_MODE_EXT";
1081
+ GLEnum2[GLEnum2["SRC1_COLOR_WEBGL"] = 35065] = "SRC1_COLOR_WEBGL";
1082
+ GLEnum2[GLEnum2["SRC1_ALPHA_WEBGL"] = 34185] = "SRC1_ALPHA_WEBGL";
1083
+ GLEnum2[GLEnum2["ONE_MINUS_SRC1_COLOR_WEBGL"] = 35066] = "ONE_MINUS_SRC1_COLOR_WEBGL";
1084
+ GLEnum2[GLEnum2["ONE_MINUS_SRC1_ALPHA_WEBGL"] = 35067] = "ONE_MINUS_SRC1_ALPHA_WEBGL";
1085
+ GLEnum2[GLEnum2["MAX_DUAL_SOURCE_DRAW_BUFFERS_WEBGL"] = 35068] = "MAX_DUAL_SOURCE_DRAW_BUFFERS_WEBGL";
1086
+ GLEnum2[GLEnum2["MIRROR_CLAMP_TO_EDGE_EXT"] = 34627] = "MIRROR_CLAMP_TO_EDGE_EXT";
1087
+ })(GLEnum || (GLEnum = {}));
1096
1088
 
1097
1089
  // src/data-filter/aggregator.ts
1098
- var import_engine = __toESM(require_engine(), 1);
1099
1090
  var AGGREGATE_VS = `#version 300 es
1100
1091
  #define SHADER_NAME data-filter-vertex-shader
1101
1092
 
@@ -1143,11 +1134,12 @@ void main() {
1143
1134
  fragColor = vColor;
1144
1135
  }
1145
1136
  `;
1137
+ var FLOAT_TARGET_FEATURES = [
1138
+ "float32-renderable-webgl",
1139
+ "texture-blend-float-webgl"
1140
+ ];
1146
1141
  function supportsFloatTarget(device) {
1147
- const gl = device.gl;
1148
- return Boolean(
1149
- gl.getExtension("EXT_float_blend") && (gl.getExtension("EXT_color_buffer_float") || gl.getExtension("WEBGL_color_buffer_float"))
1150
- );
1142
+ return FLOAT_TARGET_FEATURES.every((feature) => device.features.has(feature));
1151
1143
  }
1152
1144
  function getFramebuffer(device, useFloatTarget) {
1153
1145
  if (useFloatTarget) {
@@ -1156,7 +1148,7 @@ void main() {
1156
1148
  height: 1,
1157
1149
  colorAttachments: [
1158
1150
  device.createTexture({
1159
- format: device.info.type === "webgl2" ? "rgba32float" : "rgba8unorm",
1151
+ format: "rgba32float",
1160
1152
  type: GLEnum.FLOAT,
1161
1153
  mipmaps: false
1162
1154
  })
@@ -1203,6 +1195,12 @@ void main() {
1203
1195
  filterTransformSize: true,
1204
1196
  filterTransformColor: true
1205
1197
  };
1198
+ var defaultOptions = {
1199
+ categorySize: 1,
1200
+ filterSize: 1,
1201
+ fp64: false,
1202
+ countItems: false
1203
+ };
1206
1204
  var DATA_TYPE_FROM_SIZE = {
1207
1205
  1: "float",
1208
1206
  2: "vec2",
@@ -1210,14 +1208,17 @@ void main() {
1210
1208
  4: "vec4"
1211
1209
  };
1212
1210
  var DataFilterExtension = class extends import_core4.LayerExtension {
1211
+ constructor(opts) {
1212
+ super({ ...defaultOptions, ...opts });
1213
+ }
1213
1214
  getShaders(extension) {
1214
1215
  const { categorySize, filterSize, fp64: fp642 } = extension.opts;
1215
1216
  return {
1216
1217
  modules: [fp642 ? shaderModule64 : shaderModule],
1217
1218
  defines: {
1218
- DATACATEGORY_TYPE: DATA_TYPE_FROM_SIZE[categorySize || 1],
1219
+ DATACATEGORY_TYPE: DATA_TYPE_FROM_SIZE[categorySize],
1219
1220
  DATACATEGORY_CHANNELS: categorySize,
1220
- DATAFILTER_TYPE: DATA_TYPE_FROM_SIZE[filterSize || 1],
1221
+ DATAFILTER_TYPE: DATA_TYPE_FROM_SIZE[filterSize],
1221
1222
  DATAFILTER_DOUBLE: Boolean(fp642)
1222
1223
  }
1223
1224
  };
@@ -1229,7 +1230,7 @@ void main() {
1229
1230
  attributeManager.add({
1230
1231
  filterValues: {
1231
1232
  size: filterSize,
1232
- type: fp642 ? GLEnum.DOUBLE : GLEnum.FLOAT,
1233
+ type: fp642 ? "float64" : "float32",
1233
1234
  accessor: "getFilterValue",
1234
1235
  shaderAttributes: {
1235
1236
  filterValues: {
@@ -1242,7 +1243,6 @@ void main() {
1242
1243
  },
1243
1244
  filterCategoryValues: {
1244
1245
  size: categorySize,
1245
- type: GLEnum.FLOAT,
1246
1246
  accessor: "getFilterCategory",
1247
1247
  transform: categorySize === 1 ? (d) => extension._getCategoryKey.call(this, d, 0) : (d) => d.map((x, i) => extension._getCategoryKey.call(this, x, i)),
1248
1248
  shaderAttributes: {
@@ -1263,8 +1263,7 @@ void main() {
1263
1263
  filterIndices: {
1264
1264
  size: useFloatTarget ? 1 : 2,
1265
1265
  vertexOffset: 1,
1266
- type: GLEnum.UNSIGNED_BYTE,
1267
- normalized: true,
1266
+ type: "unorm8",
1268
1267
  accessor: (object, { index }) => {
1269
1268
  const i = object && object.__source ? object.__source.index : index;
1270
1269
  return useFloatTarget ? (i + 1) % 255 : [(i + 1) % 255, Math.floor(i / 255) % 255];
@@ -1394,12 +1393,10 @@ void main() {
1394
1393
  var import_core6 = __toESM(require_core(), 1);
1395
1394
 
1396
1395
  // ../../node_modules/@luma.gl/shadertools/dist/lib/glsl-utils/highlight.js
1397
- var glsl = (x) => `${x}`;
1396
+ var glsl2 = (x) => `${x}`;
1398
1397
 
1399
1398
  // ../../node_modules/@luma.gl/shadertools/dist/modules-webgl1/math/fp64/fp64-utils.js
1400
- function fp64ify(a) {
1401
- let out = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : [];
1402
- let startIndex = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : 0;
1399
+ function fp64ify(a, out = [], startIndex = 0) {
1403
1400
  const hiPart = Math.fround(a);
1404
1401
  const loPart = a - hiPart;
1405
1402
  out[startIndex] = hiPart;
@@ -1420,8 +1417,8 @@ void main() {
1420
1417
  return matrixFP64;
1421
1418
  }
1422
1419
 
1423
- // ../../node_modules/@luma.gl/shadertools/dist/modules-webgl1/math/fp64/fp64-arithmetic.glsl.js
1424
- var fp64arithmeticShader = glsl`\
1420
+ // ../../node_modules/@luma.gl/shadertools/dist/modules-webgl1/math/fp64/fp64-arithmetic-glsl.js
1421
+ var fp64arithmeticShader = glsl2`\
1425
1422
  uniform float ONE;
1426
1423
 
1427
1424
  /*
@@ -1589,8 +1586,8 @@ vec2 sqrt_fp64(vec2 a) {
1589
1586
  }
1590
1587
  `;
1591
1588
 
1592
- // ../../node_modules/@luma.gl/shadertools/dist/modules-webgl1/math/fp64/fp64-functions.glsl.js
1593
- var fp64functionShader = glsl`\
1589
+ // ../../node_modules/@luma.gl/shadertools/dist/modules-webgl1/math/fp64/fp64-functions-glsl.js
1590
+ var fp64functionShader = glsl2`\
1594
1591
  const vec2 E_FP64 = vec2(2.7182817459106445e+00, 8.254840366817007e-08);
1595
1592
  const vec2 LOG2_FP64 = vec2(0.6931471824645996e+00, -1.9046542121259336e-09);
1596
1593
  const vec2 PI_FP64 = vec2(3.1415927410125732, -8.742278012618954e-8);
@@ -3089,9 +3086,9 @@ in float instanceOffsets;
3089
3086
  // src/fill-style/fill-style-extension.ts
3090
3087
  var import_core10 = __toESM(require_core(), 1);
3091
3088
 
3092
- // src/fill-style/shaders.glsl.ts
3089
+ // src/fill-style/shader-module.ts
3093
3090
  var import_core9 = __toESM(require_core(), 1);
3094
- var patternVs = `
3091
+ var patternVs = glsl`
3095
3092
  #ifdef NON_INSTANCED_MODEL
3096
3093
  #define FILL_PATTERN_FRAME_ATTRIB fillPatternFrames
3097
3094
  #define FILL_PATTERN_SCALE_ATTRIB fillPatternScales
@@ -3113,7 +3110,7 @@ out vec2 fill_uv;
3113
3110
  out vec4 fill_patternBounds;
3114
3111
  out vec4 fill_patternPlacement;
3115
3112
  `;
3116
- var patternFs = `
3113
+ var patternFs = glsl`
3117
3114
  uniform bool fill_patternEnabled;
3118
3115
  uniform bool fill_patternMask;
3119
3116
  uniform sampler2D fill_patternTexture;
@@ -3127,17 +3124,17 @@ in vec2 fill_uv;
3127
3124
  const float FILL_UV_SCALE = 512.0 / 40000000.0;
3128
3125
  `;
3129
3126
  var inject3 = {
3130
- "vs:DECKGL_FILTER_GL_POSITION": `
3127
+ "vs:DECKGL_FILTER_GL_POSITION": glsl`
3131
3128
  fill_uv = geometry.position.xy;
3132
3129
  `,
3133
- "vs:DECKGL_FILTER_COLOR": `
3130
+ "vs:DECKGL_FILTER_COLOR": glsl`
3134
3131
  if (fill_patternEnabled) {
3135
3132
  fill_patternBounds = FILL_PATTERN_FRAME_ATTRIB / vec4(fill_patternTextureSize, fill_patternTextureSize);
3136
3133
  fill_patternPlacement.xy = FILL_PATTERN_OFFSET_ATTRIB;
3137
3134
  fill_patternPlacement.zw = FILL_PATTERN_SCALE_ATTRIB * FILL_PATTERN_FRAME_ATTRIB.zw;
3138
3135
  }
3139
3136
  `,
3140
- "fs:DECKGL_FILTER_COLOR": `
3137
+ "fs:DECKGL_FILTER_COLOR": glsl`
3141
3138
  if (fill_patternEnabled) {
3142
3139
  vec2 scale = FILL_UV_SCALE * fill_patternPlacement.zw;
3143
3140
  vec2 patternUV = mod(mod(fill_uvCoordinateOrigin, scale) + fill_uvCoordinateOrigin64Low + fill_uv, scale) / scale;
@@ -3312,7 +3309,7 @@ const float FILL_UV_SCALE = 512.0 / 40000000.0;
3312
3309
  clipBounds: [0, 0, 1, 1],
3313
3310
  clipByInstance: void 0
3314
3311
  };
3315
- var shaderFunction = `
3312
+ var shaderFunction = glsl`
3316
3313
  uniform vec4 clip_bounds;
3317
3314
 
3318
3315
  bool clip_isInBounds(vec2 position) {
@@ -3324,16 +3321,16 @@ bool clip_isInBounds(vec2 position) {
3324
3321
  vs: shaderFunction
3325
3322
  };
3326
3323
  var injectionVs = {
3327
- "vs:#decl": `
3324
+ "vs:#decl": glsl`
3328
3325
  out float clip_isVisible;
3329
3326
  `,
3330
- "vs:DECKGL_FILTER_GL_POSITION": `
3327
+ "vs:DECKGL_FILTER_GL_POSITION": glsl`
3331
3328
  clip_isVisible = float(clip_isInBounds(geometry.worldPosition.xy));
3332
3329
  `,
3333
- "fs:#decl": `
3330
+ "fs:#decl": glsl`
3334
3331
  in float clip_isVisible;
3335
3332
  `,
3336
- "fs:DECKGL_FILTER_COLOR": `
3333
+ "fs:DECKGL_FILTER_COLOR": glsl`
3337
3334
  if (clip_isVisible < 0.5) discard;
3338
3335
  `
3339
3336
  };
@@ -3342,16 +3339,16 @@ in float clip_isVisible;
3342
3339
  fs: shaderFunction
3343
3340
  };
3344
3341
  var injectionFs = {
3345
- "vs:#decl": `
3342
+ "vs:#decl": glsl`
3346
3343
  out vec2 clip_commonPosition;
3347
3344
  `,
3348
- "vs:DECKGL_FILTER_GL_POSITION": `
3345
+ "vs:DECKGL_FILTER_GL_POSITION": glsl`
3349
3346
  clip_commonPosition = geometry.position.xy;
3350
3347
  `,
3351
- "fs:#decl": `
3348
+ "fs:#decl": glsl`
3352
3349
  in vec2 clip_commonPosition;
3353
3350
  `,
3354
- "fs:DECKGL_FILTER_COLOR": `
3351
+ "fs:DECKGL_FILTER_COLOR": glsl`
3355
3352
  if (!clip_isInBounds(clip_commonPosition)) discard;
3356
3353
  `
3357
3354
  };
@@ -3394,7 +3391,7 @@ in vec2 clip_commonPosition;
3394
3391
 
3395
3392
  // src/collision-filter/shader-module.ts
3396
3393
  var import_core12 = __toESM(require_core(), 1);
3397
- var vs3 = `
3394
+ var vs3 = glsl`
3398
3395
  #ifdef NON_INSTANCED_MODEL
3399
3396
  in float collisionPriorities;
3400
3397
  #else
@@ -3445,10 +3442,10 @@ float collision_isVisible(vec2 texCoords, vec3 pickingColor) {
3445
3442
  }
3446
3443
  `;
3447
3444
  var inject4 = {
3448
- "vs:#decl": `
3445
+ "vs:#decl": glsl`
3449
3446
  float collision_fade = 1.0;
3450
3447
  `,
3451
- "vs:DECKGL_FILTER_GL_POSITION": `
3448
+ "vs:DECKGL_FILTER_GL_POSITION": glsl`
3452
3449
  if (collision_sort) {
3453
3450
  #ifdef NON_INSTANCED_MODEL
3454
3451
  float collisionPriority = collisionPriorities;
@@ -3468,7 +3465,7 @@ float collision_isVisible(vec2 texCoords, vec3 pickingColor) {
3468
3465
  }
3469
3466
  }
3470
3467
  `,
3471
- "vs:DECKGL_FILTER_COLOR": `
3468
+ "vs:DECKGL_FILTER_COLOR": glsl`
3472
3469
  color.a *= collision_fade;
3473
3470
  `
3474
3471
  };
@@ -4087,14 +4084,14 @@ float collision_isVisible(vec2 texCoords, vec3 pickingColor) {
4087
4084
 
4088
4085
  // src/mask/shader-module.ts
4089
4086
  var import_core21 = __toESM(require_core(), 1);
4090
- var vs4 = `
4087
+ var vs4 = glsl`
4091
4088
  uniform vec4 mask_bounds;
4092
4089
  uniform bool mask_maskByInstance;
4093
4090
  vec2 mask_getCoords(vec4 position) {
4094
4091
  return (position.xy - mask_bounds.xy) / (mask_bounds.zw - mask_bounds.xy);
4095
4092
  }
4096
4093
  `;
4097
- var fs3 = `
4094
+ var fs3 = glsl`
4098
4095
  uniform sampler2D mask_texture;
4099
4096
  uniform int mask_channel;
4100
4097
  uniform bool mask_enabled;
@@ -4123,10 +4120,10 @@ bool mask_isInBounds(vec2 texCoords) {
4123
4120
  }
4124
4121
  `;
4125
4122
  var inject5 = {
4126
- "vs:#decl": `
4123
+ "vs:#decl": glsl`
4127
4124
  out vec2 mask_texCoords;
4128
4125
  `,
4129
- "vs:#main-end": `
4126
+ "vs:#main-end": glsl`
4130
4127
  vec4 mask_common_position;
4131
4128
  if (mask_maskByInstance) {
4132
4129
  mask_common_position = project_position(vec4(geometry.worldPosition, 1.0));
@@ -4135,10 +4132,10 @@ out vec2 mask_texCoords;
4135
4132
  }
4136
4133
  mask_texCoords = mask_getCoords(mask_common_position);
4137
4134
  `,
4138
- "fs:#decl": `
4135
+ "fs:#decl": glsl`
4139
4136
  in vec2 mask_texCoords;
4140
4137
  `,
4141
- "fs:#main-start": `
4138
+ "fs:#main-start": glsl`
4142
4139
  if (mask_enabled) {
4143
4140
  bool mask = mask_isInBounds(mask_texCoords);
4144
4141
 
@@ -4237,20 +4234,19 @@ in vec2 mask_texCoords;
4237
4234
  name: "terrain",
4238
4235
  dependencies: [import_core23.project],
4239
4236
  inject: {
4240
- "vs:#decl": `
4237
+ "vs:#decl": glsl`
4241
4238
  uniform float terrain_mode;
4242
4239
  uniform sampler2D terrain_map;
4243
4240
  uniform vec4 terrain_bounds;
4244
4241
  out vec3 commonPos;
4245
- ${TERRAIN_MODE_CONSTANTS}
4246
- `,
4247
- "vs:#main-start": `
4242
+ ` + TERRAIN_MODE_CONSTANTS,
4243
+ "vs:#main-start": glsl`
4248
4244
  if (terrain_mode == TERRAIN_MODE_SKIP) {
4249
4245
  gl_Position = vec4(0.0);
4250
4246
  return;
4251
4247
  }
4252
4248
  `,
4253
- "vs:DECKGL_FILTER_GL_POSITION": `
4249
+ "vs:DECKGL_FILTER_GL_POSITION": glsl`
4254
4250
  commonPos = geometry.position.xyz;
4255
4251
  if (terrain_mode == TERRAIN_MODE_WRITE_HEIGHT_MAP) {
4256
4252
  vec2 texCoords = (commonPos.xy - terrain_bounds.xy) / terrain_bounds.zw;
@@ -4269,20 +4265,19 @@ if (terrain_mode == TERRAIN_MODE_USE_HEIGHT_MAP) {
4269
4265
  }
4270
4266
  }
4271
4267
  `,
4272
- "fs:#decl": `
4268
+ "fs:#decl": glsl`
4273
4269
  uniform float terrain_mode;
4274
4270
  uniform sampler2D terrain_map;
4275
4271
  uniform vec4 terrain_bounds;
4276
4272
  in vec3 commonPos;
4277
- ${TERRAIN_MODE_CONSTANTS}
4278
- `,
4279
- "fs:#main-start": `
4273
+ ` + TERRAIN_MODE_CONSTANTS,
4274
+ "fs:#main-start": glsl`
4280
4275
  if (terrain_mode == TERRAIN_MODE_WRITE_HEIGHT_MAP) {
4281
4276
  fragColor = vec4(commonPos.z, 0.0, 0.0, 1.0);
4282
4277
  return;
4283
4278
  }
4284
4279
  `,
4285
- "fs:DECKGL_FILTER_COLOR": `
4280
+ "fs:DECKGL_FILTER_COLOR": glsl`
4286
4281
  if ((terrain_mode == TERRAIN_MODE_USE_COVER) || (terrain_mode == TERRAIN_MODE_USE_COVER_ONLY)) {
4287
4282
  vec2 texCoords = (commonPos.xy - terrain_bounds.xy) / terrain_bounds.zw;
4288
4283
  vec4 pixel = texture(terrain_map, texCoords);
@@ -4353,7 +4348,7 @@ if ((terrain_mode == TERRAIN_MODE_USE_COVER) || (terrain_mode == TERRAIN_MODE_US
4353
4348
  colorAttachments: [
4354
4349
  device.createTexture({
4355
4350
  ...opts.float && {
4356
- format: device.info.type === "webgl2" ? "rgba32float" : "rgba8unorm",
4351
+ format: "rgba32float",
4357
4352
  type: GLEnum.FLOAT
4358
4353
  },
4359
4354
  mipmaps: false,