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

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 (90) hide show
  1. package/dist/brushing/brushing-extension.js +1 -0
  2. package/dist/brushing/brushing-extension.js.map +1 -0
  3. package/dist/brushing/shader-module.js +1 -0
  4. package/dist/brushing/shader-module.js.map +1 -0
  5. package/dist/clip/clip-extension.js +1 -0
  6. package/dist/clip/clip-extension.js.map +1 -0
  7. package/dist/collision-filter/collision-filter-effect.js +1 -0
  8. package/dist/collision-filter/collision-filter-effect.js.map +1 -0
  9. package/dist/collision-filter/collision-filter-extension.js +1 -0
  10. package/dist/collision-filter/collision-filter-extension.js.map +1 -0
  11. package/dist/collision-filter/collision-filter-pass.d.ts +2 -2
  12. package/dist/collision-filter/collision-filter-pass.d.ts.map +1 -1
  13. package/dist/collision-filter/collision-filter-pass.js +7 -1
  14. package/dist/collision-filter/collision-filter-pass.js.map +1 -0
  15. package/dist/collision-filter/shader-module.js +1 -0
  16. package/dist/collision-filter/shader-module.js.map +1 -0
  17. package/dist/data-filter/aggregator.d.ts.map +1 -1
  18. package/dist/data-filter/aggregator.js +2 -0
  19. package/dist/data-filter/aggregator.js.map +1 -0
  20. package/dist/data-filter/data-filter-extension.d.ts.map +1 -1
  21. package/dist/data-filter/data-filter-extension.js +9 -1
  22. package/dist/data-filter/data-filter-extension.js.map +1 -0
  23. package/dist/data-filter/shader-module.d.ts +1 -1
  24. package/dist/data-filter/shader-module.d.ts.map +1 -1
  25. package/dist/data-filter/shader-module.js +14 -13
  26. package/dist/data-filter/shader-module.js.map +1 -0
  27. package/dist/dist.dev.js +31 -18
  28. package/dist/fill-style/fill-style-extension.js +1 -0
  29. package/dist/fill-style/fill-style-extension.js.map +1 -0
  30. package/dist/fill-style/shader-module.js +1 -0
  31. package/dist/fill-style/shader-module.js.map +1 -0
  32. package/dist/fp64/fp64-extension.js +1 -0
  33. package/dist/fp64/fp64-extension.js.map +1 -0
  34. package/dist/fp64/project64.glsl.js +1 -0
  35. package/dist/fp64/project64.glsl.js.map +1 -0
  36. package/dist/fp64/project64.js +1 -0
  37. package/dist/fp64/project64.js.map +1 -0
  38. package/dist/index.cjs +31 -18
  39. package/dist/index.cjs.map +3 -3
  40. package/dist/index.js +1 -0
  41. package/dist/index.js.map +1 -0
  42. package/dist/mask/mask-effect.js +1 -0
  43. package/dist/mask/mask-effect.js.map +1 -0
  44. package/dist/mask/mask-extension.js +1 -0
  45. package/dist/mask/mask-extension.js.map +1 -0
  46. package/dist/mask/mask-pass.d.ts +2 -43
  47. package/dist/mask/mask-pass.d.ts.map +1 -1
  48. package/dist/mask/mask-pass.js +2 -1
  49. package/dist/mask/mask-pass.js.map +1 -0
  50. package/dist/mask/shader-module.js +1 -0
  51. package/dist/mask/shader-module.js.map +1 -0
  52. package/dist/path-style/path-style-extension.js +1 -0
  53. package/dist/path-style/path-style-extension.js.map +1 -0
  54. package/dist/path-style/shaders.glsl.js +1 -0
  55. package/dist/path-style/shaders.glsl.js.map +1 -0
  56. package/dist/terrain/height-map-builder.js +1 -0
  57. package/dist/terrain/height-map-builder.js.map +1 -0
  58. package/dist/terrain/shader-module.d.ts.map +1 -1
  59. package/dist/terrain/shader-module.js +1 -0
  60. package/dist/terrain/shader-module.js.map +1 -0
  61. package/dist/terrain/terrain-cover.js +1 -0
  62. package/dist/terrain/terrain-cover.js.map +1 -0
  63. package/dist/terrain/terrain-effect.js +1 -0
  64. package/dist/terrain/terrain-effect.js.map +1 -0
  65. package/dist/terrain/terrain-extension.js +1 -0
  66. package/dist/terrain/terrain-extension.js.map +1 -0
  67. package/dist/terrain/terrain-pass.d.ts +2 -42
  68. package/dist/terrain/terrain-pass.d.ts.map +1 -1
  69. package/dist/terrain/terrain-pass.js +2 -1
  70. package/dist/terrain/terrain-pass.js.map +1 -0
  71. package/dist/terrain/terrain-picking-pass.d.ts +2 -1
  72. package/dist/terrain/terrain-picking-pass.d.ts.map +1 -1
  73. package/dist/terrain/terrain-picking-pass.js +2 -1
  74. package/dist/terrain/terrain-picking-pass.js.map +1 -0
  75. package/dist/terrain/utils.js +1 -0
  76. package/dist/terrain/utils.js.map +1 -0
  77. package/dist/utils/debug.js +1 -0
  78. package/dist/utils/debug.js.map +1 -0
  79. package/dist/utils/projection-utils.js +1 -0
  80. package/dist/utils/projection-utils.js.map +1 -0
  81. package/dist.min.js +60 -60
  82. package/package.json +7 -7
  83. package/src/collision-filter/collision-filter-pass.ts +8 -3
  84. package/src/data-filter/aggregator.ts +1 -0
  85. package/src/data-filter/data-filter-extension.ts +8 -1
  86. package/src/data-filter/shader-module.ts +14 -14
  87. package/src/mask/mask-pass.ts +13 -3
  88. package/src/terrain/shader-module.ts +1 -1
  89. package/src/terrain/terrain-pass.ts +7 -3
  90. package/src/terrain/terrain-picking-pass.ts +3 -2
@@ -14,7 +14,7 @@ export type Defines = {
14
14
  /**
15
15
  * Primitive type of parameter used for category filtering. If undefined, category filtering disabled.
16
16
  */
17
- DATACATEGORY_TYPE?: 'float' | 'vec2' | 'vec3' | 'vec4';
17
+ DATACATEGORY_TYPE?: 'uint' | 'uvec2' | 'uvec3' | 'uvec4';
18
18
  /**
19
19
  * Number of category filtering channels. Must match dimension of `DATACATEGORY_TYPE`
20
20
  */
@@ -48,7 +48,7 @@ uniform dataFilterUniforms {
48
48
  #endif
49
49
  #endif
50
50
  #ifdef DATACATEGORY_TYPE
51
- highp ivec4 categoryBitMask;
51
+ highp uvec4 categoryBitMask;
52
52
  #endif
53
53
  } dataFilter;
54
54
  `;
@@ -107,26 +107,26 @@ float dataFilter_reduceValue(vec4 value) {
107
107
  #ifdef DATACATEGORY_TYPE
108
108
  void dataFilter_setCategoryValue(DATACATEGORY_TYPE category) {
109
109
  #if DATACATEGORY_CHANNELS == 1 // One 128-bit mask
110
- int dataFilter_masks = dataFilter.categoryBitMask[int(category / 32.0)];
110
+ uint dataFilter_masks = dataFilter.categoryBitMask[category / 32u];
111
111
  #elif DATACATEGORY_CHANNELS == 2 // Two 64-bit masks
112
- ivec2 dataFilter_masks = ivec2(
113
- dataFilter.categoryBitMask[int(category.x / 32.0)],
114
- dataFilter.categoryBitMask[int(category.y / 32.0) + 2]
112
+ uvec2 dataFilter_masks = uvec2(
113
+ dataFilter.categoryBitMask[category.x / 32u],
114
+ dataFilter.categoryBitMask[category.y / 32u + 2u]
115
115
  );
116
116
  #elif DATACATEGORY_CHANNELS == 3 // Three 32-bit masks
117
- ivec3 dataFilter_masks = dataFilter.categoryBitMask.xyz;
117
+ uvec3 dataFilter_masks = dataFilter.categoryBitMask.xyz;
118
118
  #else // Four 32-bit masks
119
- ivec4 dataFilter_masks = dataFilter.categoryBitMask;
119
+ uvec4 dataFilter_masks = dataFilter.categoryBitMask;
120
120
  #endif
121
121
 
122
122
  // Shift mask and extract relevant bits
123
- DATACATEGORY_TYPE dataFilter_bits = DATACATEGORY_TYPE(dataFilter_masks) / pow(DATACATEGORY_TYPE(2.0), mod(category, 32.0));
124
- dataFilter_bits = mod(floor(dataFilter_bits), 2.0);
123
+ DATACATEGORY_TYPE dataFilter_bits = DATACATEGORY_TYPE(dataFilter_masks) >> (category & 31u);
124
+ dataFilter_bits &= 1u;
125
125
 
126
126
  #if DATACATEGORY_CHANNELS == 1
127
- if(dataFilter_bits == 0.0) dataFilter_value = 0.0;
127
+ if(dataFilter_bits == 0u) dataFilter_value = 0.0;
128
128
  #else
129
- if(any(equal(dataFilter_bits, DATACATEGORY_TYPE(0.0)))) dataFilter_value = 0.0;
129
+ if(any(equal(dataFilter_bits, DATACATEGORY_TYPE(0u)))) dataFilter_value = 0.0;
130
130
  #endif
131
131
  }
132
132
  #endif
@@ -162,7 +162,7 @@ function getUniforms(opts?: DataFilterModuleProps | {}): Record<string, any> {
162
162
  filterEnabled = true,
163
163
  filterTransformSize = true,
164
164
  filterTransformColor = true,
165
- categoryBitMask = [0, 0, 0, 0]
165
+ categoryBitMask
166
166
  } = opts;
167
167
  const filterSoftRange = opts.filterSoftRange || filterRange;
168
168
 
@@ -184,7 +184,7 @@ function getUniforms(opts?: DataFilterModuleProps | {}): Record<string, any> {
184
184
  useSoftMargin: Boolean(opts.filterSoftRange),
185
185
  transformSize: filterEnabled && filterTransformSize,
186
186
  transformColor: filterEnabled && filterTransformColor,
187
- categoryBitMask
187
+ ...(categoryBitMask && {categoryBitMask})
188
188
  };
189
189
  }
190
190
 
@@ -2,7 +2,13 @@
2
2
  // SPDX-License-Identifier: MIT
3
3
  // Copyright (c) vis.gl contributors
4
4
 
5
- import type {Device, Framebuffer, RenderPipelineParameters, Texture} from '@luma.gl/core';
5
+ import type {
6
+ Device,
7
+ Framebuffer,
8
+ Parameters,
9
+ RenderPipelineParameters,
10
+ Texture
11
+ } from '@luma.gl/core';
6
12
  import {Layer, _LayersPass as LayersPass, LayersPassRenderOptions, Viewport} from '@deck.gl/core';
7
13
 
8
14
  type MaskPassRenderOptions = LayersPassRenderOptions & {
@@ -54,11 +60,15 @@ export default class MaskPass extends LayersPass {
54
60
  super.render({...options, clearColor, colorMask, target: this.fbo, pass: 'mask'});
55
61
  }
56
62
 
57
- protected getLayerParameters(layer: Layer<{}>, layerIndex: number, viewport: Viewport) {
63
+ protected getLayerParameters(
64
+ layer: Layer<{}>,
65
+ layerIndex: number,
66
+ viewport: Viewport
67
+ ): Parameters {
58
68
  return {
59
69
  ...layer.props.parameters,
60
70
  blend: true,
61
- depthTest: false,
71
+ depthCompare: 'always',
62
72
  ...MASK_BLENDING
63
73
  };
64
74
  }
@@ -5,7 +5,7 @@
5
5
  /* eslint-disable camelcase */
6
6
 
7
7
  import type {ShaderModule} from '@luma.gl/shadertools';
8
- import {project, ProjectProps, ProjectUniforms, Viewport} from '@deck.gl/core';
8
+ import {project, ProjectProps, ProjectUniforms} from '@deck.gl/core';
9
9
 
10
10
  import type {Texture} from '@luma.gl/core';
11
11
  import type {Bounds} from '../utils/projection-utils';
@@ -2,7 +2,7 @@
2
2
  // SPDX-License-Identifier: MIT
3
3
  // Copyright (c) vis.gl contributors
4
4
 
5
- import {RenderPipelineParameters} from '@luma.gl/core';
5
+ import {Parameters, RenderPipelineParameters} from '@luma.gl/core';
6
6
  import {Layer, Viewport, _LayersPass as LayersPass, LayersPassRenderOptions} from '@deck.gl/core';
7
7
  import type {HeightMapBuilder} from './height-map-builder';
8
8
  import type {TerrainCover} from './terrain-cover';
@@ -79,11 +79,15 @@ export class TerrainPass extends LayersPass {
79
79
  });
80
80
  }
81
81
 
82
- protected getLayerParameters(layer: Layer<{}>, layerIndex: number, viewport: Viewport) {
82
+ protected getLayerParameters(
83
+ layer: Layer<{}>,
84
+ layerIndex: number,
85
+ viewport: Viewport
86
+ ): Parameters {
83
87
  return {
84
88
  ...layer.props.parameters,
85
89
  blend: true,
86
- depthTest: false,
90
+ depthCompare: 'always',
87
91
  ...(layer.props.operation.includes('terrain') && TERRAIN_BLENDING)
88
92
  };
89
93
  }
@@ -9,6 +9,7 @@ import {
9
9
  _PickLayersPass as PickLayersPass
10
10
  } from '@deck.gl/core';
11
11
  import type {TerrainCover} from './terrain-cover';
12
+ import {Parameters} from '@luma.gl/core';
12
13
 
13
14
  export type TerrainPickingPassRenderOptions = LayersPassRenderOptions & {
14
15
  pickZ: boolean;
@@ -72,7 +73,7 @@ export class TerrainPickingPass extends PickLayersPass {
72
73
  });
73
74
  }
74
75
 
75
- protected getLayerParameters(layer: Layer, layerIndex: number, viewport: Viewport): any {
76
+ protected getLayerParameters(layer: Layer, layerIndex: number, viewport: Viewport): Parameters {
76
77
  let parameters: any;
77
78
  if (this.drawParameters[layer.id]) {
78
79
  parameters = this.drawParameters[layer.id];
@@ -80,7 +81,7 @@ export class TerrainPickingPass extends PickLayersPass {
80
81
  parameters = super.getLayerParameters(layer, layerIndex, viewport);
81
82
  parameters.blend = true;
82
83
  }
83
- return {...parameters, depthTest: false};
84
+ return {...parameters, depthCompare: 'always'};
84
85
  }
85
86
 
86
87
  getShaderModuleProps(layer: Layer, effects: any, otherShaderModuleProps: Record<string, any>) {