@deck.gl/extensions 9.3.2 → 9.3.3

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
@@ -4254,6 +4254,7 @@ in vec2 mask_texCoords;
4254
4254
  viewports,
4255
4255
  onViewportActive,
4256
4256
  views,
4257
+ effects,
4257
4258
  isPicking
4258
4259
  }) {
4259
4260
  let didRender = false;
@@ -4279,6 +4280,7 @@ in vec2 mask_texCoords;
4279
4280
  layerFilter,
4280
4281
  onViewportActive,
4281
4282
  views,
4283
+ effects,
4282
4284
  viewport,
4283
4285
  viewportChanged
4284
4286
  });
@@ -4291,6 +4293,7 @@ in vec2 mask_texCoords;
4291
4293
  layerFilter,
4292
4294
  onViewportActive,
4293
4295
  views,
4296
+ effects,
4294
4297
  viewport,
4295
4298
  viewportChanged
4296
4299
  }) {
@@ -4339,6 +4342,7 @@ in vec2 mask_texCoords;
4339
4342
  viewports: maskViewport ? [maskViewport] : [],
4340
4343
  onViewportActive,
4341
4344
  views,
4345
+ effects,
4342
4346
  shaderModuleProps: {
4343
4347
  project: {
4344
4348
  devicePixelRatio: 1
@@ -4581,7 +4585,10 @@ if ((terrain.mode == TERRAIN_MODE_USE_COVER) || (terrain.mode == TERRAIN_MODE_US
4581
4585
  },
4582
4586
  // eslint-disable-next-line complexity
4583
4587
  getUniforms: (opts = {}) => {
4584
- if ("dummyHeightMap" in opts) {
4588
+ if (!opts.dummyHeightMap) {
4589
+ return {};
4590
+ }
4591
+ if ("terrainSkipRender" in opts || "drawToTerrainHeightMap" in opts) {
4585
4592
  const {
4586
4593
  drawToTerrainHeightMap,
4587
4594
  heightMap,
@@ -4605,18 +4612,16 @@ if ((terrain.mode == TERRAIN_MODE_USE_COVER) || (terrain.mode == TERRAIN_MODE_US
4605
4612
  bounds = heightMapBounds;
4606
4613
  } else if (terrainCover) {
4607
4614
  const fbo = opts.isPicking ? terrainCover.getPickingFramebuffer() : terrainCover.getRenderFramebuffer();
4608
- sampler = fbo?.colorAttachments[0].texture;
4615
+ const coverTexture = fbo?.colorAttachments[0].texture;
4609
4616
  if (opts.isPicking) {
4610
4617
  mode = TERRAIN_MODE.SKIP;
4611
4618
  }
4612
- if (sampler) {
4619
+ if (coverTexture) {
4620
+ sampler = coverTexture;
4613
4621
  mode = mode === TERRAIN_MODE.SKIP ? TERRAIN_MODE.USE_COVER_ONLY : TERRAIN_MODE.USE_COVER;
4614
4622
  bounds = terrainCover.bounds;
4615
- } else {
4616
- sampler = dummyHeightMap;
4617
- if (opts.isPicking && !terrainSkipRender) {
4618
- mode = TERRAIN_MODE.NONE;
4619
- }
4623
+ } else if (opts.isPicking && !terrainSkipRender) {
4624
+ mode = TERRAIN_MODE.NONE;
4620
4625
  }
4621
4626
  }
4622
4627
  return {
@@ -4631,7 +4636,11 @@ if ((terrain.mode == TERRAIN_MODE_USE_COVER) || (terrain.mode == TERRAIN_MODE_US
4631
4636
  ] : [0, 0, 0, 0]
4632
4637
  };
4633
4638
  }
4634
- return {};
4639
+ return {
4640
+ mode: TERRAIN_MODE.NONE,
4641
+ terrain_map: opts.dummyHeightMap,
4642
+ bounds: [0, 0, 0, 0]
4643
+ };
4635
4644
  },
4636
4645
  uniformTypes: {
4637
4646
  mode: "f32",
@@ -5541,7 +5550,6 @@ if ((terrain.mode == TERRAIN_MODE_USE_COVER) || (terrain.mode == TERRAIN_MODE_US
5541
5550
  target,
5542
5551
  pass: `terrain-cover-${terrainCover.id}`,
5543
5552
  layers,
5544
- effects: [],
5545
5553
  viewports: [viewport],
5546
5554
  clearColor: [0, 0, 0, 0]
5547
5555
  });
@@ -5610,7 +5618,6 @@ if ((terrain.mode == TERRAIN_MODE_USE_COVER) || (terrain.mode == TERRAIN_MODE_US
5610
5618
  pickingFBO: target,
5611
5619
  pass: `terrain-cover-picking-${terrainCover.id}`,
5612
5620
  layers,
5613
- effects: [],
5614
5621
  viewports: [viewport],
5615
5622
  // Disable the default culling because TileLayer would cull sublayers based on the screen viewport,
5616
5623
  // not the viewport of the terrain cover. Culling is already done by `terrainCover.filterLayers`
@@ -5786,9 +5793,20 @@ if ((terrain.mode == TERRAIN_MODE_USE_COVER) || (terrain.mode == TERRAIN_MODE_US
5786
5793
  }
5787
5794
  }
5788
5795
  const drapeLayers = layers.filter((l) => l.state.terrainDrawMode === "drape");
5789
- this._updateTerrainCovers(terrainLayers, drapeLayers, viewport, opts);
5796
+ const nonTerrainEffects = opts.effects?.filter((e) => e !== this);
5797
+ this._updateTerrainCovers(terrainLayers, drapeLayers, viewport, {
5798
+ ...opts,
5799
+ effects: nonTerrainEffects
5800
+ });
5790
5801
  }
5791
5802
  getShaderModuleProps(layer, otherShaderModuleProps) {
5803
+ if (layer.props.operation.includes("mask")) {
5804
+ return {
5805
+ terrain: {
5806
+ dummyHeightMap: this.dummyHeightMap
5807
+ }
5808
+ };
5809
+ }
5792
5810
  const { terrainDrawMode } = layer.state;
5793
5811
  const terrainCover = this.isDrapingEnabled ? this.terrainCovers.get(layer.id) ?? null : null;
5794
5812
  if (this.isPicking && layer.props.operation.includes("terrain")) {
package/dist/index.cjs CHANGED
@@ -2489,7 +2489,7 @@ var MaskEffect = class {
2489
2489
  this.maskPass = new MaskPass(device, { id: "default-mask" });
2490
2490
  this.maskMap = this.maskPass.maskMap;
2491
2491
  }
2492
- preRender({ layers, layerFilter, viewports, onViewportActive, views, isPicking }) {
2492
+ preRender({ layers, layerFilter, viewports, onViewportActive, views, effects, isPicking }) {
2493
2493
  let didRender = false;
2494
2494
  if (isPicking) {
2495
2495
  return { didRender };
@@ -2513,6 +2513,7 @@ var MaskEffect = class {
2513
2513
  layerFilter,
2514
2514
  onViewportActive,
2515
2515
  views,
2516
+ effects,
2516
2517
  viewport,
2517
2518
  viewportChanged
2518
2519
  });
@@ -2521,7 +2522,7 @@ var MaskEffect = class {
2521
2522
  return { didRender };
2522
2523
  }
2523
2524
  /* eslint-disable-next-line complexity */
2524
- _renderChannel(channelInfo, { layerFilter, onViewportActive, views, viewport, viewportChanged }) {
2525
+ _renderChannel(channelInfo, { layerFilter, onViewportActive, views, effects, viewport, viewportChanged }) {
2525
2526
  let didRender = false;
2526
2527
  const oldChannelInfo = this.channels[channelInfo.index];
2527
2528
  if (!oldChannelInfo) {
@@ -2565,6 +2566,7 @@ var MaskEffect = class {
2565
2566
  viewports: maskViewport ? [maskViewport] : [],
2566
2567
  onViewportActive,
2567
2568
  views,
2569
+ effects,
2568
2570
  shaderModuleProps: {
2569
2571
  project: {
2570
2572
  devicePixelRatio: 1
@@ -2809,7 +2811,10 @@ if ((terrain.mode == TERRAIN_MODE_USE_COVER) || (terrain.mode == TERRAIN_MODE_US
2809
2811
  },
2810
2812
  // eslint-disable-next-line complexity
2811
2813
  getUniforms: (opts = {}) => {
2812
- if ("dummyHeightMap" in opts) {
2814
+ if (!opts.dummyHeightMap) {
2815
+ return {};
2816
+ }
2817
+ if ("terrainSkipRender" in opts || "drawToTerrainHeightMap" in opts) {
2813
2818
  const { drawToTerrainHeightMap, heightMap, heightMapBounds, dummyHeightMap, terrainCover, useTerrainHeightMap, terrainSkipRender } = opts;
2814
2819
  const projectUniforms = import_core22.project.getUniforms(opts.project);
2815
2820
  const { commonOrigin } = projectUniforms;
@@ -2825,18 +2830,16 @@ if ((terrain.mode == TERRAIN_MODE_USE_COVER) || (terrain.mode == TERRAIN_MODE_US
2825
2830
  bounds = heightMapBounds;
2826
2831
  } else if (terrainCover) {
2827
2832
  const fbo = opts.isPicking ? terrainCover.getPickingFramebuffer() : terrainCover.getRenderFramebuffer();
2828
- sampler = fbo == null ? void 0 : fbo.colorAttachments[0].texture;
2833
+ const coverTexture = fbo == null ? void 0 : fbo.colorAttachments[0].texture;
2829
2834
  if (opts.isPicking) {
2830
2835
  mode = TERRAIN_MODE.SKIP;
2831
2836
  }
2832
- if (sampler) {
2837
+ if (coverTexture) {
2838
+ sampler = coverTexture;
2833
2839
  mode = mode === TERRAIN_MODE.SKIP ? TERRAIN_MODE.USE_COVER_ONLY : TERRAIN_MODE.USE_COVER;
2834
2840
  bounds = terrainCover.bounds;
2835
- } else {
2836
- sampler = dummyHeightMap;
2837
- if (opts.isPicking && !terrainSkipRender) {
2838
- mode = TERRAIN_MODE.NONE;
2839
- }
2841
+ } else if (opts.isPicking && !terrainSkipRender) {
2842
+ mode = TERRAIN_MODE.NONE;
2840
2843
  }
2841
2844
  }
2842
2845
  return {
@@ -2851,7 +2854,11 @@ if ((terrain.mode == TERRAIN_MODE_USE_COVER) || (terrain.mode == TERRAIN_MODE_US
2851
2854
  ] : [0, 0, 0, 0]
2852
2855
  };
2853
2856
  }
2854
- return {};
2857
+ return {
2858
+ mode: TERRAIN_MODE.NONE,
2859
+ terrain_map: opts.dummyHeightMap,
2860
+ bounds: [0, 0, 0, 0]
2861
+ };
2855
2862
  },
2856
2863
  uniformTypes: {
2857
2864
  mode: "f32",
@@ -3103,7 +3110,6 @@ var TerrainPass = class extends import_core23._LayersPass {
3103
3110
  target,
3104
3111
  pass: `terrain-cover-${terrainCover.id}`,
3105
3112
  layers,
3106
- effects: [],
3107
3113
  viewports: [viewport],
3108
3114
  clearColor: [0, 0, 0, 0]
3109
3115
  });
@@ -3167,7 +3173,6 @@ var TerrainPickingPass = class extends import_core24._PickLayersPass {
3167
3173
  pickingFBO: target,
3168
3174
  pass: `terrain-cover-picking-${terrainCover.id}`,
3169
3175
  layers,
3170
- effects: [],
3171
3176
  viewports: [viewport],
3172
3177
  // Disable the default culling because TileLayer would cull sublayers based on the screen viewport,
3173
3178
  // not the viewport of the terrain cover. Culling is already done by `terrainCover.filterLayers`
@@ -3309,6 +3314,7 @@ var TerrainEffect = class {
3309
3314
  deck._addDefaultShaderModule(terrainModule);
3310
3315
  }
3311
3316
  preRender(opts) {
3317
+ var _a;
3312
3318
  if (opts.pickZ) {
3313
3319
  this.isDrapingEnabled = false;
3314
3320
  return;
@@ -3330,10 +3336,21 @@ var TerrainEffect = class {
3330
3336
  }
3331
3337
  }
3332
3338
  const drapeLayers = layers.filter((l) => l.state.terrainDrawMode === "drape");
3333
- this._updateTerrainCovers(terrainLayers, drapeLayers, viewport, opts);
3339
+ const nonTerrainEffects = (_a = opts.effects) == null ? void 0 : _a.filter((e) => e !== this);
3340
+ this._updateTerrainCovers(terrainLayers, drapeLayers, viewport, {
3341
+ ...opts,
3342
+ effects: nonTerrainEffects
3343
+ });
3334
3344
  }
3335
3345
  getShaderModuleProps(layer, otherShaderModuleProps) {
3336
3346
  var _a, _b, _c;
3347
+ if (layer.props.operation.includes("mask")) {
3348
+ return {
3349
+ terrain: {
3350
+ dummyHeightMap: this.dummyHeightMap
3351
+ }
3352
+ };
3353
+ }
3337
3354
  const { terrainDrawMode } = layer.state;
3338
3355
  const terrainCover = this.isDrapingEnabled ? this.terrainCovers.get(layer.id) ?? null : null;
3339
3356
  if (this.isPicking && layer.props.operation.includes("terrain")) {