@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.
- package/dist/brushing/shader-module.d.ts.map +1 -1
- package/dist/brushing/shader-module.js +52 -57
- package/dist/clip/clip-extension.d.ts.map +1 -1
- package/dist/clip/clip-extension.js +6 -6
- package/dist/collision-filter/shader-module.d.ts.map +1 -1
- package/dist/collision-filter/shader-module.js +46 -56
- package/dist/data-filter/aggregator.d.ts.map +1 -1
- package/dist/data-filter/aggregator.js +11 -14
- package/dist/data-filter/data-filter-extension.d.ts +2 -1
- package/dist/data-filter/data-filter-extension.d.ts.map +1 -1
- package/dist/data-filter/data-filter-extension.js +13 -7
- package/dist/data-filter/shader-module.d.ts.map +1 -1
- package/dist/data-filter/shader-module.js +70 -78
- package/dist/dist.dev.js +297 -302
- package/dist/fill-style/fill-style-extension.js +1 -1
- package/dist/fill-style/{shaders.glsl.d.ts → shader-module.d.ts} +1 -1
- package/dist/fill-style/shader-module.d.ts.map +1 -0
- package/dist/fill-style/{shaders.glsl.js → shader-module.js} +27 -33
- package/dist/fp64/project64.glsl.js +41 -60
- package/dist/index.cjs +374 -432
- package/dist/index.cjs.map +4 -4
- package/dist/mask/mask-pass.js +2 -2
- package/dist/mask/shader-module.d.ts.map +1 -1
- package/dist/mask/shader-module.js +33 -37
- package/dist/path-style/shaders.glsl.js +42 -47
- package/dist/terrain/shader-module.d.ts.map +1 -1
- package/dist/terrain/shader-module.js +30 -32
- package/dist/terrain/terrain-pass.js +2 -2
- package/dist/terrain/utils.js +2 -2
- package/dist/utils/syntax-tags.d.ts +6 -0
- package/dist/utils/syntax-tags.d.ts.map +1 -0
- package/dist/utils/syntax-tags.js +5 -0
- package/dist.min.js +364 -431
- package/package.json +8 -8
- package/src/brushing/shader-module.ts +4 -3
- package/src/clip/clip-extension.ts +10 -9
- package/src/collision-filter/shader-module.ts +6 -4
- package/src/data-filter/aggregator.ts +8 -13
- package/src/data-filter/data-filter-extension.ts +18 -8
- package/src/data-filter/shader-module.ts +7 -6
- package/src/fill-style/fill-style-extension.ts +1 -1
- package/src/fill-style/{shaders.glsl.ts → shader-module.ts} +6 -5
- package/src/mask/shader-module.ts +7 -6
- package/src/terrain/shader-module.ts +11 -10
- package/src/terrain/utils.ts +1 -1
- package/src/utils/syntax-tags.ts +5 -0
- 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
|
-
|
|
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
|
-
//
|
|
241
|
-
var
|
|
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
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
|
|
934
|
-
|
|
935
|
-
|
|
936
|
-
|
|
937
|
-
|
|
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
|
-
|
|
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:
|
|
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
|
|
1219
|
+
DATACATEGORY_TYPE: DATA_TYPE_FROM_SIZE[categorySize],
|
|
1219
1220
|
DATACATEGORY_CHANNELS: categorySize,
|
|
1220
|
-
DATAFILTER_TYPE: DATA_TYPE_FROM_SIZE[filterSize
|
|
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 ?
|
|
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:
|
|
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
|
|
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
|
|
1424
|
-
var fp64arithmeticShader =
|
|
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
|
|
1593
|
-
var fp64functionShader =
|
|
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/
|
|
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
|
-
|
|
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
|
-
|
|
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:
|
|
4351
|
+
format: "rgba32float",
|
|
4357
4352
|
type: GLEnum.FLOAT
|
|
4358
4353
|
},
|
|
4359
4354
|
mipmaps: false,
|