@deck.gl/extensions 9.2.11 → 9.3.0-alpha.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.
package/dist/dist.dev.js CHANGED
@@ -4061,6 +4061,9 @@ if ((terrain.mode == TERRAIN_MODE_USE_COVER) || (terrain.mode == TERRAIN_MODE_US
4061
4061
  bounds = terrainCover.bounds;
4062
4062
  } else {
4063
4063
  sampler = dummyHeightMap;
4064
+ if (opts.isPicking && !terrainSkipRender) {
4065
+ mode = TERRAIN_MODE.NONE;
4066
+ }
4064
4067
  }
4065
4068
  }
4066
4069
  return {
@@ -5047,6 +5050,8 @@ if ((terrain.mode == TERRAIN_MODE_USE_COVER) || (terrain.mode == TERRAIN_MODE_US
5047
5050
  layers.unshift(terrainLayer);
5048
5051
  }
5049
5052
  target.resize(viewport);
5053
+ const terrainParams = this.drawParameters[terrainLayer.id];
5054
+ const terrainAlpha = terrainParams?.blendColor?.[3] ?? 0;
5050
5055
  this.render({
5051
5056
  ...opts,
5052
5057
  pickingFBO: target,
@@ -5058,7 +5063,8 @@ if ((terrain.mode == TERRAIN_MODE_USE_COVER) || (terrain.mode == TERRAIN_MODE_US
5058
5063
  // not the viewport of the terrain cover. Culling is already done by `terrainCover.filterLayers`
5059
5064
  cullRect: void 0,
5060
5065
  deviceRect: viewport,
5061
- pickZ: false
5066
+ pickZ: false,
5067
+ clearColor: [0, 0, 0, terrainAlpha]
5062
5068
  });
5063
5069
  }
5064
5070
  getLayerParameters(layer, layerIndex, viewport) {
@@ -5069,7 +5075,7 @@ if ((terrain.mode == TERRAIN_MODE_USE_COVER) || (terrain.mode == TERRAIN_MODE_US
5069
5075
  parameters2 = super.getLayerParameters(layer, layerIndex, viewport);
5070
5076
  parameters2.blend = true;
5071
5077
  }
5072
- return { ...parameters2, depthCompare: "always" };
5078
+ return { ...parameters2, depthCompare: "always", blendAlphaSrcFactor: "constant" };
5073
5079
  }
5074
5080
  getShaderModuleProps(layer, effects, otherShaderModuleProps) {
5075
5081
  const base = super.getShaderModuleProps(layer, effects, otherShaderModuleProps);
@@ -5231,6 +5237,10 @@ if ((terrain.mode == TERRAIN_MODE_USE_COVER) || (terrain.mode == TERRAIN_MODE_US
5231
5237
  }
5232
5238
  getShaderModuleProps(layer, otherShaderModuleProps) {
5233
5239
  const { terrainDrawMode } = layer.state;
5240
+ const terrainCover = this.isDrapingEnabled ? this.terrainCovers.get(layer.id) ?? null : null;
5241
+ if (this.isPicking && layer.props.operation.includes("terrain")) {
5242
+ layer.state._hasPickingCover = Boolean(terrainCover?.getPickingFramebuffer());
5243
+ }
5234
5244
  return {
5235
5245
  terrain: {
5236
5246
  project: otherShaderModuleProps.project,
@@ -5238,7 +5248,7 @@ if ((terrain.mode == TERRAIN_MODE_USE_COVER) || (terrain.mode == TERRAIN_MODE_US
5238
5248
  heightMap: this.heightMap?.getRenderFramebuffer()?.colorAttachments[0].texture || null,
5239
5249
  heightMapBounds: this.heightMap?.bounds,
5240
5250
  dummyHeightMap: this.dummyHeightMap,
5241
- terrainCover: this.isDrapingEnabled ? this.terrainCovers.get(layer.id) : null,
5251
+ terrainCover,
5242
5252
  useTerrainHeightMap: terrainDrawMode === "offset",
5243
5253
  terrainSkipRender: terrainDrawMode === "drape" || !layer.props.operation.includes("draw")
5244
5254
  }
package/dist/index.cjs CHANGED
@@ -2550,6 +2550,9 @@ if ((terrain.mode == TERRAIN_MODE_USE_COVER) || (terrain.mode == TERRAIN_MODE_US
2550
2550
  bounds = terrainCover.bounds;
2551
2551
  } else {
2552
2552
  sampler = dummyHeightMap;
2553
+ if (opts.isPicking && !terrainSkipRender) {
2554
+ mode = TERRAIN_MODE.NONE;
2555
+ }
2553
2556
  }
2554
2557
  }
2555
2558
  return {
@@ -2861,6 +2864,7 @@ var TerrainPickingPass = class extends import_core24._PickLayersPass {
2861
2864
  return result;
2862
2865
  }
2863
2866
  renderTerrainCover(terrainCover, opts) {
2867
+ var _a;
2864
2868
  const target = terrainCover.getPickingFramebuffer();
2865
2869
  const viewport = terrainCover.renderViewport;
2866
2870
  if (!target || !viewport) {
@@ -2872,6 +2876,8 @@ var TerrainPickingPass = class extends import_core24._PickLayersPass {
2872
2876
  layers.unshift(terrainLayer);
2873
2877
  }
2874
2878
  target.resize(viewport);
2879
+ const terrainParams = this.drawParameters[terrainLayer.id];
2880
+ const terrainAlpha = ((_a = terrainParams == null ? void 0 : terrainParams.blendColor) == null ? void 0 : _a[3]) ?? 0;
2875
2881
  this.render({
2876
2882
  ...opts,
2877
2883
  pickingFBO: target,
@@ -2883,7 +2889,8 @@ var TerrainPickingPass = class extends import_core24._PickLayersPass {
2883
2889
  // not the viewport of the terrain cover. Culling is already done by `terrainCover.filterLayers`
2884
2890
  cullRect: void 0,
2885
2891
  deviceRect: viewport,
2886
- pickZ: false
2892
+ pickZ: false,
2893
+ clearColor: [0, 0, 0, terrainAlpha]
2887
2894
  });
2888
2895
  }
2889
2896
  getLayerParameters(layer, layerIndex, viewport) {
@@ -2894,7 +2901,7 @@ var TerrainPickingPass = class extends import_core24._PickLayersPass {
2894
2901
  parameters2 = super.getLayerParameters(layer, layerIndex, viewport);
2895
2902
  parameters2.blend = true;
2896
2903
  }
2897
- return { ...parameters2, depthCompare: "always" };
2904
+ return { ...parameters2, depthCompare: "always", blendAlphaSrcFactor: "constant" };
2898
2905
  }
2899
2906
  getShaderModuleProps(layer, effects, otherShaderModuleProps) {
2900
2907
  const base = super.getShaderModuleProps(layer, effects, otherShaderModuleProps);
@@ -3044,6 +3051,10 @@ var TerrainEffect = class {
3044
3051
  getShaderModuleProps(layer, otherShaderModuleProps) {
3045
3052
  var _a, _b, _c;
3046
3053
  const { terrainDrawMode } = layer.state;
3054
+ const terrainCover = this.isDrapingEnabled ? this.terrainCovers.get(layer.id) ?? null : null;
3055
+ if (this.isPicking && layer.props.operation.includes("terrain")) {
3056
+ layer.state._hasPickingCover = Boolean(terrainCover == null ? void 0 : terrainCover.getPickingFramebuffer());
3057
+ }
3047
3058
  return {
3048
3059
  terrain: {
3049
3060
  project: otherShaderModuleProps.project,
@@ -3051,7 +3062,7 @@ var TerrainEffect = class {
3051
3062
  heightMap: ((_b = (_a = this.heightMap) == null ? void 0 : _a.getRenderFramebuffer()) == null ? void 0 : _b.colorAttachments[0].texture) || null,
3052
3063
  heightMapBounds: (_c = this.heightMap) == null ? void 0 : _c.bounds,
3053
3064
  dummyHeightMap: this.dummyHeightMap,
3054
- terrainCover: this.isDrapingEnabled ? this.terrainCovers.get(layer.id) : null,
3065
+ terrainCover,
3055
3066
  useTerrainHeightMap: terrainDrawMode === "offset",
3056
3067
  terrainSkipRender: terrainDrawMode === "drape" || !layer.props.operation.includes("draw")
3057
3068
  }