@deck.gl/extensions 9.0.34 → 9.1.0-beta.1

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 (128) hide show
  1. package/dist/brushing/brushing-extension.d.ts +1 -0
  2. package/dist/brushing/brushing-extension.d.ts.map +1 -1
  3. package/dist/brushing/brushing-extension.js +15 -19
  4. package/dist/brushing/shader-module.d.ts +8 -2
  5. package/dist/brushing/shader-module.d.ts.map +1 -1
  6. package/dist/brushing/shader-module.js +74 -50
  7. package/dist/clip/clip-extension.d.ts +5 -2
  8. package/dist/clip/clip-extension.d.ts.map +1 -1
  9. package/dist/clip/clip-extension.js +36 -42
  10. package/dist/collision-filter/collision-filter-effect.d.ts +4 -4
  11. package/dist/collision-filter/collision-filter-effect.d.ts.map +1 -1
  12. package/dist/collision-filter/collision-filter-effect.js +27 -13
  13. package/dist/collision-filter/collision-filter-extension.d.ts +1 -1
  14. package/dist/collision-filter/collision-filter-extension.d.ts.map +1 -1
  15. package/dist/collision-filter/collision-filter-extension.js +5 -6
  16. package/dist/collision-filter/collision-filter-pass.d.ts +7 -3
  17. package/dist/collision-filter/collision-filter-pass.d.ts.map +1 -1
  18. package/dist/collision-filter/collision-filter-pass.js +8 -3
  19. package/dist/collision-filter/shader-module.d.ts +3 -2
  20. package/dist/collision-filter/shader-module.d.ts.map +1 -1
  21. package/dist/collision-filter/shader-module.js +74 -52
  22. package/dist/data-filter/aggregator.d.ts +4 -10
  23. package/dist/data-filter/aggregator.d.ts.map +1 -1
  24. package/dist/data-filter/aggregator.js +14 -8
  25. package/dist/data-filter/data-filter-extension.d.ts.map +1 -1
  26. package/dist/data-filter/data-filter-extension.js +40 -38
  27. package/dist/data-filter/shader-module.d.ts +11 -4
  28. package/dist/data-filter/shader-module.d.ts.map +1 -1
  29. package/dist/data-filter/shader-module.js +189 -131
  30. package/dist/dist.dev.js +2699 -2028
  31. package/dist/fill-style/fill-style-extension.d.ts.map +1 -1
  32. package/dist/fill-style/fill-style-extension.js +11 -4
  33. package/dist/fill-style/shader-module.d.ts +64 -6
  34. package/dist/fill-style/shader-module.d.ts.map +1 -1
  35. package/dist/fill-style/shader-module.js +73 -51
  36. package/dist/fp64/fp64-extension.d.ts +1 -0
  37. package/dist/fp64/fp64-extension.d.ts.map +1 -1
  38. package/dist/fp64/fp64-extension.js +7 -19
  39. package/dist/fp64/project64.d.ts +2 -2
  40. package/dist/fp64/project64.d.ts.map +1 -1
  41. package/dist/fp64/project64.glsl.d.ts +1 -1
  42. package/dist/fp64/project64.glsl.d.ts.map +1 -1
  43. package/dist/fp64/project64.glsl.js +18 -21
  44. package/dist/fp64/project64.js +24 -24
  45. package/dist/index.cjs +1017 -523
  46. package/dist/index.cjs.map +3 -3
  47. package/dist/index.d.ts +1 -0
  48. package/dist/index.d.ts.map +1 -1
  49. package/dist/index.js +3 -0
  50. package/dist/mask/mask-effect.d.ts +5 -3
  51. package/dist/mask/mask-effect.d.ts.map +1 -1
  52. package/dist/mask/mask-effect.js +12 -5
  53. package/dist/mask/mask-extension.d.ts +1 -1
  54. package/dist/mask/mask-extension.d.ts.map +1 -1
  55. package/dist/mask/mask-extension.js +13 -8
  56. package/dist/mask/mask-pass.d.ts +38 -38
  57. package/dist/mask/mask-pass.d.ts.map +1 -1
  58. package/dist/mask/mask-pass.js +3 -0
  59. package/dist/mask/shader-module.d.ts +60 -3
  60. package/dist/mask/shader-module.d.ts.map +1 -1
  61. package/dist/mask/shader-module.js +73 -46
  62. package/dist/path-style/path-style-extension.d.ts.map +1 -1
  63. package/dist/path-style/path-style-extension.js +20 -24
  64. package/dist/path-style/shaders.glsl.d.ts.map +1 -1
  65. package/dist/path-style/shaders.glsl.js +11 -7
  66. package/dist/terrain/height-map-builder.d.ts.map +1 -1
  67. package/dist/terrain/height-map-builder.js +3 -0
  68. package/dist/terrain/shader-module.d.ts +60 -6
  69. package/dist/terrain/shader-module.d.ts.map +1 -1
  70. package/dist/terrain/shader-module.js +69 -61
  71. package/dist/terrain/terrain-cover.d.ts.map +1 -1
  72. package/dist/terrain/terrain-cover.js +3 -0
  73. package/dist/terrain/terrain-effect.d.ts +4 -2
  74. package/dist/terrain/terrain-effect.d.ts.map +1 -1
  75. package/dist/terrain/terrain-effect.js +31 -18
  76. package/dist/terrain/terrain-extension.d.ts.map +1 -1
  77. package/dist/terrain/terrain-extension.js +3 -0
  78. package/dist/terrain/terrain-pass.d.ts +43 -38
  79. package/dist/terrain/terrain-pass.d.ts.map +1 -1
  80. package/dist/terrain/terrain-pass.js +10 -0
  81. package/dist/terrain/terrain-picking-pass.d.ts +5 -0
  82. package/dist/terrain/terrain-picking-pass.d.ts.map +1 -1
  83. package/dist/terrain/terrain-picking-pass.js +10 -0
  84. package/dist/terrain/utils.d.ts.map +1 -1
  85. package/dist/terrain/utils.js +3 -0
  86. package/dist/utils/debug.d.ts +2 -2
  87. package/dist/utils/debug.d.ts.map +1 -1
  88. package/dist/utils/debug.js +3 -1
  89. package/dist/utils/projection-utils.d.ts.map +1 -1
  90. package/dist/utils/projection-utils.js +3 -0
  91. package/dist.min.js +1102 -817
  92. package/package.json +8 -8
  93. package/src/brushing/brushing-extension.ts +17 -20
  94. package/src/brushing/shader-module.ts +58 -47
  95. package/src/clip/clip-extension.ts +38 -40
  96. package/src/collision-filter/collision-filter-effect.ts +31 -20
  97. package/src/collision-filter/collision-filter-extension.ts +6 -7
  98. package/src/collision-filter/collision-filter-pass.ts +9 -3
  99. package/src/collision-filter/shader-module.ts +40 -22
  100. package/src/data-filter/aggregator.ts +23 -11
  101. package/src/data-filter/data-filter-extension.ts +68 -48
  102. package/src/data-filter/shader-module.ts +144 -84
  103. package/src/fill-style/fill-style-extension.ts +13 -5
  104. package/src/fill-style/shader-module.ts +84 -52
  105. package/src/fp64/fp64-extension.ts +8 -19
  106. package/src/fp64/project64.glsl.ts +18 -21
  107. package/src/fp64/project64.ts +27 -28
  108. package/src/index.ts +5 -0
  109. package/src/mask/mask-effect.ts +17 -7
  110. package/src/mask/mask-extension.ts +16 -9
  111. package/src/mask/mask-pass.ts +4 -0
  112. package/src/mask/shader-module.ts +63 -27
  113. package/src/path-style/path-style-extension.ts +27 -28
  114. package/src/path-style/shaders.glsl.ts +13 -7
  115. package/src/terrain/height-map-builder.ts +4 -0
  116. package/src/terrain/shader-module.ts +62 -44
  117. package/src/terrain/terrain-cover.ts +4 -0
  118. package/src/terrain/terrain-effect.ts +36 -19
  119. package/src/terrain/terrain-extension.ts +4 -0
  120. package/src/terrain/terrain-pass.ts +12 -0
  121. package/src/terrain/terrain-picking-pass.ts +12 -0
  122. package/src/terrain/utils.ts +4 -0
  123. package/src/utils/debug.ts +4 -0
  124. package/src/utils/projection-utils.ts +4 -0
  125. package/dist/utils/syntax-tags.d.ts +0 -6
  126. package/dist/utils/syntax-tags.d.ts.map +0 -1
  127. package/dist/utils/syntax-tags.js +0 -5
  128. package/src/utils/syntax-tags.ts +0 -5
@@ -1,111 +1,142 @@
1
- import { glsl } from "../utils/syntax-tags.js";
2
- const vs = `
3
- uniform bool filter_useSoftMargin;
4
- uniform bool filter_enabled;
5
- uniform bool filter_transformSize;
6
- uniform ivec4 filter_categoryBitMask;
1
+ // deck.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+ const uniformBlock = /* glsl */ `\
5
+ uniform dataFilterUniforms {
6
+ bool useSoftMargin;
7
+ bool enabled;
8
+ bool transformSize;
9
+ bool transformColor;
10
+ #ifdef DATAFILTER_TYPE
11
+ DATAFILTER_TYPE min;
12
+ DATAFILTER_TYPE softMin;
13
+ DATAFILTER_TYPE softMax;
14
+ DATAFILTER_TYPE max;
15
+ #ifdef DATAFILTER_DOUBLE
16
+ DATAFILTER_TYPE min64High;
17
+ DATAFILTER_TYPE max64High;
18
+ #endif
19
+ #endif
20
+ #ifdef DATACATEGORY_TYPE
21
+ highp ivec4 categoryBitMask;
22
+ #endif
23
+ } dataFilter;
24
+ `;
25
+ const vertex = /* glsl */ `
7
26
  #ifdef DATAFILTER_TYPE
8
- uniform DATAFILTER_TYPE filter_min;
9
- uniform DATAFILTER_TYPE filter_softMin;
10
- uniform DATAFILTER_TYPE filter_softMax;
11
- uniform DATAFILTER_TYPE filter_max;
12
- in DATAFILTER_TYPE filterValues;
27
+ in DATAFILTER_TYPE filterValues;
13
28
  #ifdef DATAFILTER_DOUBLE
14
- in DATAFILTER_TYPE filterValues64Low;
15
- uniform DATAFILTER_TYPE filter_min64High;
16
- uniform DATAFILTER_TYPE filter_max64High;
29
+ in DATAFILTER_TYPE filterValues64Low;
17
30
  #endif
18
31
  #endif
32
+
19
33
  #ifdef DATACATEGORY_TYPE
20
- in DATACATEGORY_TYPE filterCategoryValues;
34
+ in DATACATEGORY_TYPE filterCategoryValues;
21
35
  #endif
36
+
22
37
  out float dataFilter_value;
38
+
23
39
  float dataFilter_reduceValue(float value) {
24
- return value;
40
+ return value;
25
41
  }
26
42
  float dataFilter_reduceValue(vec2 value) {
27
- return min(value.x, value.y);
43
+ return min(value.x, value.y);
28
44
  }
29
45
  float dataFilter_reduceValue(vec3 value) {
30
- return min(min(value.x, value.y), value.z);
46
+ return min(min(value.x, value.y), value.z);
31
47
  }
32
48
  float dataFilter_reduceValue(vec4 value) {
33
- return min(min(value.x, value.y), min(value.z, value.w));
49
+ return min(min(value.x, value.y), min(value.z, value.w));
34
50
  }
51
+
35
52
  #ifdef DATAFILTER_TYPE
36
- void dataFilter_setValue(DATAFILTER_TYPE valueFromMin, DATAFILTER_TYPE valueFromMax) {
37
- if (filter_useSoftMargin) {
38
- DATAFILTER_TYPE leftInRange = mix(
39
- smoothstep(filter_min, filter_softMin, valueFromMin),
40
- step(filter_min, valueFromMin),
41
- step(filter_softMin, filter_min)
42
- );
43
- DATAFILTER_TYPE rightInRange = mix(
44
- 1.0 - smoothstep(filter_softMax, filter_max, valueFromMax),
45
- step(valueFromMax, filter_max),
46
- step(filter_max, filter_softMax)
47
- );
48
- dataFilter_value = dataFilter_reduceValue(leftInRange * rightInRange);
49
- } else {
50
- dataFilter_value = dataFilter_reduceValue(
51
- step(filter_min, valueFromMin) * step(valueFromMax, filter_max)
52
- );
53
- }
54
- }
53
+ void dataFilter_setValue(DATAFILTER_TYPE valueFromMin, DATAFILTER_TYPE valueFromMax) {
54
+ if (dataFilter.useSoftMargin) {
55
+ // smoothstep results are undefined if edge0 ≥ edge1
56
+ // Fallback to ignore filterSoftRange if it is truncated by filterRange
57
+ DATAFILTER_TYPE leftInRange = mix(
58
+ smoothstep(dataFilter.min, dataFilter.softMin, valueFromMin),
59
+ step(dataFilter.min, valueFromMin),
60
+ step(dataFilter.softMin, dataFilter.min)
61
+ );
62
+ DATAFILTER_TYPE rightInRange = mix(
63
+ 1.0 - smoothstep(dataFilter.softMax, dataFilter.max, valueFromMax),
64
+ step(valueFromMax, dataFilter.max),
65
+ step(dataFilter.max, dataFilter.softMax)
66
+ );
67
+ dataFilter_value = dataFilter_reduceValue(leftInRange * rightInRange);
68
+ } else {
69
+ dataFilter_value = dataFilter_reduceValue(
70
+ step(dataFilter.min, valueFromMin) * step(valueFromMax, dataFilter.max)
71
+ );
72
+ }
73
+ }
55
74
  #endif
75
+
56
76
  #ifdef DATACATEGORY_TYPE
57
- void dataFilter_setCategoryValue(DATACATEGORY_TYPE category) {
58
- #if DATACATEGORY_CHANNELS == 1
59
- int dataFilter_masks = filter_categoryBitMask[int(category / 32.0)];
60
- #elif DATACATEGORY_CHANNELS == 2
61
- ivec2 dataFilter_masks = ivec2(
62
- filter_categoryBitMask[int(category.x / 32.0)],
63
- filter_categoryBitMask[int(category.y / 32.0) + 2]
64
- );
65
- #elif DATACATEGORY_CHANNELS == 3
66
- ivec3 dataFilter_masks = filter_categoryBitMask.xyz;
67
- #else
68
- ivec4 dataFilter_masks = filter_categoryBitMask;
69
- #endif
70
- DATACATEGORY_TYPE dataFilter_bits = DATACATEGORY_TYPE(dataFilter_masks) / pow(DATACATEGORY_TYPE(2.0), mod(category, 32.0));
71
- dataFilter_bits = mod(floor(dataFilter_bits), 2.0);
72
- #if DATACATEGORY_CHANNELS == 1
73
- if(dataFilter_bits == 0.0) dataFilter_value = 0.0;
74
- #else
75
- if(any(equal(dataFilter_bits, DATACATEGORY_TYPE(0.0)))) dataFilter_value = 0.0;
76
- #endif
77
- }
77
+ void dataFilter_setCategoryValue(DATACATEGORY_TYPE category) {
78
+ #if DATACATEGORY_CHANNELS == 1 // One 128-bit mask
79
+ int dataFilter_masks = dataFilter.categoryBitMask[int(category / 32.0)];
80
+ #elif DATACATEGORY_CHANNELS == 2 // Two 64-bit masks
81
+ ivec2 dataFilter_masks = ivec2(
82
+ dataFilter.categoryBitMask[int(category.x / 32.0)],
83
+ dataFilter.categoryBitMask[int(category.y / 32.0) + 2]
84
+ );
85
+ #elif DATACATEGORY_CHANNELS == 3 // Three 32-bit masks
86
+ ivec3 dataFilter_masks = dataFilter.categoryBitMask.xyz;
87
+ #else // Four 32-bit masks
88
+ ivec4 dataFilter_masks = dataFilter.categoryBitMask;
89
+ #endif
90
+
91
+ // Shift mask and extract relevant bits
92
+ DATACATEGORY_TYPE dataFilter_bits = DATACATEGORY_TYPE(dataFilter_masks) / pow(DATACATEGORY_TYPE(2.0), mod(category, 32.0));
93
+ dataFilter_bits = mod(floor(dataFilter_bits), 2.0);
94
+
95
+ #if DATACATEGORY_CHANNELS == 1
96
+ if(dataFilter_bits == 0.0) dataFilter_value = 0.0;
97
+ #else
98
+ if(any(equal(dataFilter_bits, DATACATEGORY_TYPE(0.0)))) dataFilter_value = 0.0;
99
+ #endif
100
+ }
78
101
  #endif
79
102
  `;
80
- const fs = `
81
- uniform bool filter_transformColor;
103
+ const vs = `
104
+ ${uniformBlock}
105
+ ${vertex}
106
+ `;
107
+ const fragment = /* glsl */ `
82
108
  in float dataFilter_value;
83
109
  `;
110
+ const fs = `
111
+ ${uniformBlock}
112
+ ${fragment}
113
+ `;
84
114
  /* eslint-disable camelcase */
85
115
  function getUniforms(opts) {
86
116
  if (!opts || !('extensions' in opts)) {
87
117
  return {};
88
118
  }
89
- const { filterRange = [-1, 1], filterEnabled = true, filterTransformSize = true, filterTransformColor = true } = opts;
119
+ const { filterRange = [-1, 1], filterEnabled = true, filterTransformSize = true, filterTransformColor = true, categoryBitMask = [0, 0, 0, 0] } = opts;
90
120
  const filterSoftRange = opts.filterSoftRange || filterRange;
91
121
  return {
92
122
  ...(Number.isFinite(filterRange[0])
93
123
  ? {
94
- filter_min: filterRange[0],
95
- filter_softMin: filterSoftRange[0],
96
- filter_softMax: filterSoftRange[1],
97
- filter_max: filterRange[1]
124
+ min: filterRange[0],
125
+ softMin: filterSoftRange[0],
126
+ softMax: filterSoftRange[1],
127
+ max: filterRange[1]
98
128
  }
99
129
  : {
100
- filter_min: filterRange.map(r => r[0]),
101
- filter_softMin: filterSoftRange.map(r => r[0]),
102
- filter_softMax: filterSoftRange.map(r => r[1]),
103
- filter_max: filterRange.map(r => r[1])
130
+ min: filterRange.map(r => r[0]),
131
+ softMin: filterSoftRange.map(r => r[0]),
132
+ softMax: filterSoftRange.map(r => r[1]),
133
+ max: filterRange.map(r => r[1])
104
134
  }),
105
- filter_enabled: filterEnabled,
106
- filter_useSoftMargin: Boolean(opts.filterSoftRange),
107
- filter_transformSize: filterEnabled && filterTransformSize,
108
- filter_transformColor: filterEnabled && filterTransformColor
135
+ enabled: filterEnabled,
136
+ useSoftMargin: Boolean(opts.filterSoftRange),
137
+ transformSize: filterEnabled && filterTransformSize,
138
+ transformColor: filterEnabled && filterTransformColor,
139
+ categoryBitMask
109
140
  };
110
141
  }
111
142
  function getUniforms64(opts) {
@@ -113,75 +144,102 @@ function getUniforms64(opts) {
113
144
  return {};
114
145
  }
115
146
  const uniforms = getUniforms(opts);
116
- if (Number.isFinite(uniforms.filter_min)) {
117
- const min64High = Math.fround(uniforms.filter_min);
118
- uniforms.filter_min -= min64High;
119
- uniforms.filter_softMin -= min64High;
120
- uniforms.filter_min64High = min64High;
121
- const max64High = Math.fround(uniforms.filter_max);
122
- uniforms.filter_max -= max64High;
123
- uniforms.filter_softMax -= max64High;
124
- uniforms.filter_max64High = max64High;
147
+ if (Number.isFinite(uniforms.min)) {
148
+ const min64High = Math.fround(uniforms.min);
149
+ uniforms.min -= min64High;
150
+ uniforms.softMin -= min64High;
151
+ uniforms.min64High = min64High;
152
+ const max64High = Math.fround(uniforms.max);
153
+ uniforms.max -= max64High;
154
+ uniforms.softMax -= max64High;
155
+ uniforms.max64High = max64High;
125
156
  }
126
157
  else {
127
- const min64High = uniforms.filter_min.map(Math.fround);
128
- uniforms.filter_min = uniforms.filter_min.map((x, i) => x - min64High[i]);
129
- uniforms.filter_softMin = uniforms.filter_softMin.map((x, i) => x - min64High[i]);
130
- uniforms.filter_min64High = min64High;
131
- const max64High = uniforms.filter_max.map(Math.fround);
132
- uniforms.filter_max = uniforms.filter_max.map((x, i) => x - max64High[i]);
133
- uniforms.filter_softMax = uniforms.filter_softMax.map((x, i) => x - max64High[i]);
134
- uniforms.filter_max64High = max64High;
158
+ const min64High = uniforms.min.map(Math.fround);
159
+ uniforms.min = uniforms.min.map((x, i) => x - min64High[i]);
160
+ uniforms.softMin = uniforms.softMin.map((x, i) => x - min64High[i]);
161
+ uniforms.min64High = min64High;
162
+ const max64High = uniforms.max.map(Math.fround);
163
+ uniforms.max = uniforms.max.map((x, i) => x - max64High[i]);
164
+ uniforms.softMax = uniforms.softMax.map((x, i) => x - max64High[i]);
165
+ uniforms.max64High = max64High;
135
166
  }
136
167
  return uniforms;
137
168
  }
138
169
  const inject = {
139
- 'vs:#main-start': `
140
- dataFilter_value = 1.0;
141
- if (filter_enabled) {
142
- #ifdef DATAFILTER_TYPE
143
- #ifdef DATAFILTER_DOUBLE
144
- dataFilter_setValue(
145
- filterValues - filter_min64High + filterValues64Low,
146
- filterValues - filter_max64High + filterValues64Low
147
- );
148
- #else
149
- dataFilter_setValue(filterValues, filterValues);
150
- #endif
151
- #endif
152
- #ifdef DATACATEGORY_TYPE
153
- dataFilter_setCategoryValue(filterCategoryValues);
154
- #endif
155
- }
156
- `,
157
- 'vs:#main-end': `
158
- if (dataFilter_value == 0.0) {
159
- gl_Position = vec4(0.);
160
- }
161
- `,
162
- 'vs:DECKGL_FILTER_SIZE': `
163
- if (filter_transformSize) {
164
- size = size * dataFilter_value;
165
- }
166
- `,
167
- 'fs:DECKGL_FILTER_COLOR': `
168
- if (dataFilter_value == 0.0) discard;
169
- if (filter_transformColor) {
170
- color.a *= dataFilter_value;
171
- }
172
- `
170
+ 'vs:#main-start': /* glsl */ `
171
+ dataFilter_value = 1.0;
172
+ if (dataFilter.enabled) {
173
+ #ifdef DATAFILTER_TYPE
174
+ #ifdef DATAFILTER_DOUBLE
175
+ dataFilter_setValue(
176
+ filterValues - dataFilter.min64High + filterValues64Low,
177
+ filterValues - dataFilter.max64High + filterValues64Low
178
+ );
179
+ #else
180
+ dataFilter_setValue(filterValues, filterValues);
181
+ #endif
182
+ #endif
183
+
184
+ #ifdef DATACATEGORY_TYPE
185
+ dataFilter_setCategoryValue(filterCategoryValues);
186
+ #endif
187
+ }
188
+ `,
189
+ 'vs:#main-end': /* glsl */ `
190
+ if (dataFilter_value == 0.0) {
191
+ gl_Position = vec4(0.);
192
+ }
193
+ `,
194
+ 'vs:DECKGL_FILTER_SIZE': /* glsl */ `
195
+ if (dataFilter.transformSize) {
196
+ size = size * dataFilter_value;
197
+ }
198
+ `,
199
+ 'fs:DECKGL_FILTER_COLOR': /* glsl */ `
200
+ if (dataFilter_value == 0.0) discard;
201
+ if (dataFilter.transformColor) {
202
+ color.a *= dataFilter_value;
203
+ }
204
+ `
173
205
  };
174
- export const shaderModule = {
175
- name: 'data-filter',
206
+ function uniformTypesFromOptions(opts) {
207
+ const { categorySize, filterSize, fp64 } = opts;
208
+ const uniformTypes = {
209
+ useSoftMargin: 'i32',
210
+ enabled: 'i32',
211
+ transformSize: 'i32',
212
+ transformColor: 'i32'
213
+ };
214
+ if (filterSize) {
215
+ const uniformFormat = filterSize === 1 ? 'f32' : `vec${filterSize}<f32>`;
216
+ uniformTypes.min = uniformFormat;
217
+ uniformTypes.softMin = uniformFormat;
218
+ uniformTypes.softMax = uniformFormat;
219
+ uniformTypes.max = uniformFormat;
220
+ if (fp64) {
221
+ uniformTypes.min64High = uniformFormat;
222
+ uniformTypes.max64High = uniformFormat;
223
+ }
224
+ }
225
+ if (categorySize) {
226
+ uniformTypes.categoryBitMask = 'vec4<i32>';
227
+ }
228
+ return uniformTypes;
229
+ }
230
+ export const dataFilter = {
231
+ name: 'dataFilter',
176
232
  vs,
177
233
  fs,
178
234
  inject,
179
- getUniforms
235
+ getUniforms,
236
+ uniformTypesFromOptions
180
237
  };
181
- export const shaderModule64 = {
182
- name: 'data-filter-fp64',
238
+ export const dataFilter64 = {
239
+ name: 'dataFilter',
183
240
  vs,
184
241
  fs,
185
242
  inject,
186
- getUniforms: getUniforms64
243
+ getUniforms: getUniforms64,
244
+ uniformTypesFromOptions
187
245
  };