@deck.gl/extensions 9.3.2 → 9.3.4
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 +30 -12
- package/dist/index.cjs +31 -14
- package/dist/index.cjs.map +2 -2
- package/dist/mask/mask-effect.d.ts +1 -1
- package/dist/mask/mask-effect.d.ts.map +1 -1
- package/dist/mask/mask-effect.js +4 -2
- package/dist/mask/mask-effect.js.map +1 -1
- package/dist/terrain/shader-module.d.ts +4 -4
- package/dist/terrain/shader-module.d.ts.map +1 -1
- package/dist/terrain/shader-module.js +20 -10
- package/dist/terrain/shader-module.js.map +1 -1
- package/dist/terrain/terrain-effect.d.ts +1 -1
- package/dist/terrain/terrain-effect.d.ts.map +1 -1
- package/dist/terrain/terrain-effect.js +16 -1
- package/dist/terrain/terrain-effect.js.map +1 -1
- package/dist/terrain/terrain-pass.d.ts.map +1 -1
- package/dist/terrain/terrain-pass.js +0 -1
- package/dist/terrain/terrain-pass.js.map +1 -1
- package/dist/terrain/terrain-picking-pass.d.ts.map +1 -1
- package/dist/terrain/terrain-picking-pass.js +0 -1
- package/dist/terrain/terrain-picking-pass.js.map +1 -1
- package/dist.min.js +9 -9
- package/package.json +2 -2
- package/src/mask/mask-effect.ts +5 -0
- package/src/terrain/shader-module.ts +22 -11
- package/src/terrain/terrain-effect.ts +19 -2
- package/src/terrain/terrain-pass.ts +0 -1
- package/src/terrain/terrain-picking-pass.ts +0 -1
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 (
|
|
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
|
-
|
|
4615
|
+
const coverTexture = fbo?.colorAttachments[0].texture;
|
|
4609
4616
|
if (opts.isPicking) {
|
|
4610
4617
|
mode = TERRAIN_MODE.SKIP;
|
|
4611
4618
|
}
|
|
4612
|
-
if (
|
|
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
|
-
|
|
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
|
-
|
|
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 (
|
|
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
|
-
|
|
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 (
|
|
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
|
-
|
|
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
|
-
|
|
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")) {
|