@deck.gl/extensions 9.0.0-beta.9 → 9.0.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 (46) hide show
  1. package/dist/collision-filter/collision-filter-effect.d.ts +4 -2
  2. package/dist/collision-filter/collision-filter-effect.d.ts.map +1 -1
  3. package/dist/collision-filter/collision-filter-effect.js +10 -9
  4. package/dist/collision-filter/collision-filter-pass.d.ts +3 -2
  5. package/dist/collision-filter/collision-filter-pass.d.ts.map +1 -1
  6. package/dist/collision-filter/collision-filter-pass.js +5 -7
  7. package/dist/data-filter/data-filter-extension.d.ts +1 -1
  8. package/dist/data-filter/data-filter-extension.d.ts.map +1 -1
  9. package/dist/data-filter/data-filter-extension.js +1 -1
  10. package/dist/dist.dev.js +475 -479
  11. package/dist/fill-style/fill-style-extension.d.ts +2 -30
  12. package/dist/fill-style/fill-style-extension.d.ts.map +1 -1
  13. package/dist/fill-style/fill-style-extension.js +1 -3
  14. package/dist/index.cjs +427 -421
  15. package/dist/index.cjs.map +4 -4
  16. package/dist/mask/mask-effect.d.ts +5 -4
  17. package/dist/mask/mask-effect.d.ts.map +1 -1
  18. package/dist/mask/mask-effect.js +9 -11
  19. package/dist/mask/mask-pass.d.ts +4 -3
  20. package/dist/mask/mask-pass.d.ts.map +1 -1
  21. package/dist/mask/mask-pass.js +17 -9
  22. package/dist/path-style/path-style-extension.d.ts.map +1 -1
  23. package/dist/path-style/path-style-extension.js +1 -0
  24. package/dist/terrain/terrain-effect.d.ts +4 -5
  25. package/dist/terrain/terrain-effect.d.ts.map +1 -1
  26. package/dist/terrain/terrain-effect.js +6 -15
  27. package/dist/terrain/terrain-pass.d.ts +1 -0
  28. package/dist/terrain/terrain-pass.d.ts.map +1 -1
  29. package/dist/terrain/terrain-pass.js +24 -16
  30. package/dist/terrain/terrain-picking-pass.d.ts.map +1 -1
  31. package/dist/terrain/terrain-picking-pass.js +9 -8
  32. package/dist/terrain/utils.d.ts.map +1 -1
  33. package/dist/terrain/utils.js +1 -0
  34. package/dist.min.js +23 -23
  35. package/package.json +5 -5
  36. package/src/collision-filter/collision-filter-effect.ts +22 -22
  37. package/src/collision-filter/collision-filter-pass.ts +7 -11
  38. package/src/data-filter/data-filter-extension.ts +1 -1
  39. package/src/fill-style/fill-style-extension.ts +3 -4
  40. package/src/mask/mask-effect.ts +30 -19
  41. package/src/mask/mask-pass.ts +22 -16
  42. package/src/path-style/path-style-extension.ts +1 -0
  43. package/src/terrain/terrain-effect.ts +9 -18
  44. package/src/terrain/terrain-pass.ts +37 -34
  45. package/src/terrain/terrain-picking-pass.ts +19 -23
  46. package/src/terrain/utils.ts +1 -0
@@ -1,16 +1,18 @@
1
1
  import { Device, Framebuffer, Texture } from '@luma.gl/core';
2
- import type { Effect, Layer, PreRenderOptions } from '@deck.gl/core';
2
+ import type { Effect, EffectContext, Layer, PreRenderOptions } from '@deck.gl/core';
3
3
  export default class CollisionFilterEffect implements Effect {
4
4
  id: string;
5
5
  props: null;
6
6
  useInPicking: boolean;
7
7
  order: number;
8
+ private context?;
8
9
  private channels;
9
10
  private collisionFilterPass?;
10
11
  private collisionFBOs;
11
12
  private dummyCollisionMap?;
12
13
  private lastViewport?;
13
- preRender(device: Device, { effects: allEffects, layers, layerFilter, viewports, onViewportActive, views, isPicking, preRenderStats }: PreRenderOptions): void;
14
+ setup(context: EffectContext): void;
15
+ preRender({ effects: allEffects, layers, layerFilter, viewports, onViewportActive, views, isPicking, preRenderStats }: PreRenderOptions): void;
14
16
  private _render;
15
17
  /**
16
18
  * Group layers by collisionGroup
@@ -1 +1 @@
1
- {"version":3,"file":"collision-filter-effect.d.ts","sourceRoot":"","sources":["../../src/collision-filter/collision-filter-effect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAC,MAAM,eAAe,CAAC;AAG3D,OAAO,KAAK,EAAC,MAAM,EAAE,KAAK,EAAE,gBAAgB,EAAW,MAAM,eAAe,CAAC;AAoB7E,MAAM,CAAC,OAAO,OAAO,qBAAsB,YAAW,MAAM;IAC1D,EAAE,SAA6B;IAC/B,KAAK,OAAQ;IACb,YAAY,UAAQ;IACpB,KAAK,SAAK;IAEV,OAAO,CAAC,QAAQ,CAAkC;IAClD,OAAO,CAAC,mBAAmB,CAAC,CAAsB;IAClD,OAAO,CAAC,aAAa,CAAmC;IACxD,OAAO,CAAC,iBAAiB,CAAC,CAAU;IACpC,OAAO,CAAC,YAAY,CAAC,CAAW;IAEhC,SAAS,CACP,MAAM,EAAE,MAAM,EACd,EACE,OAAO,EAAE,UAAU,EACnB,MAAM,EACN,WAAW,EACX,SAAS,EACT,gBAAgB,EAChB,KAAK,EACL,SAAS,EACT,cAAmB,EACpB,EAAE,gBAAgB,GAClB,IAAI;IAyDP,OAAO,CAAC,OAAO;IA+Df;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAqC9B,mBAAmB,CAAC,KAAK,EAAE,KAAK,GAAG;QACjC,YAAY,EAAE,WAAW,CAAC;QAC1B,iBAAiB,EAAE,OAAO,CAAC;KAC5B;IAMD,OAAO,IAAI,IAAI;IAaf,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM;IAmChD,UAAU,CAAC,cAAc,EAAE,MAAM;CAOlC"}
1
+ {"version":3,"file":"collision-filter-effect.d.ts","sourceRoot":"","sources":["../../src/collision-filter/collision-filter-effect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAC,MAAM,eAAe,CAAC;AAG3D,OAAO,KAAK,EAAC,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,gBAAgB,EAAW,MAAM,eAAe,CAAC;AAoB5F,MAAM,CAAC,OAAO,OAAO,qBAAsB,YAAW,MAAM;IAC1D,EAAE,SAA6B;IAC/B,KAAK,OAAQ;IACb,YAAY,UAAQ;IACpB,KAAK,SAAK;IAEV,OAAO,CAAC,OAAO,CAAC,CAAgB;IAChC,OAAO,CAAC,QAAQ,CAAkC;IAClD,OAAO,CAAC,mBAAmB,CAAC,CAAsB;IAClD,OAAO,CAAC,aAAa,CAAmC;IACxD,OAAO,CAAC,iBAAiB,CAAC,CAAU;IACpC,OAAO,CAAC,YAAY,CAAC,CAAW;IAEhC,KAAK,CAAC,OAAO,EAAE,aAAa;IAO5B,SAAS,CAAC,EACR,OAAO,EAAE,UAAU,EACnB,MAAM,EACN,WAAW,EACX,SAAS,EACT,gBAAgB,EAChB,KAAK,EACL,SAAS,EACT,cAAmB,EACpB,EAAE,gBAAgB,GAAG,IAAI;IAoD1B,OAAO,CAAC,OAAO;IA+Df;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAqC9B,mBAAmB,CAAC,KAAK,EAAE,KAAK,GAAG;QACjC,YAAY,EAAE,WAAW,CAAC;QAC1B,iBAAiB,EAAE,OAAO,CAAC;KAC5B;IAMD,OAAO,IAAI,IAAI;IAaf,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM;IAmChD,UAAU,CAAC,cAAc,EAAE,MAAM;CAOlC"}
@@ -1,7 +1,6 @@
1
1
  import { equals } from '@math.gl/core';
2
2
  import { _deepEqual as deepEqual } from '@deck.gl/core';
3
3
  import CollisionFilterPass from "./collision-filter-pass.js";
4
- import MaskEffect from "../mask/mask-effect.js";
5
4
  // Factor by which to downscale Collision FBO relative to canvas
6
5
  const DOWNSCALE = 2;
7
6
  export default class CollisionFilterEffect {
@@ -13,10 +12,15 @@ export default class CollisionFilterEffect {
13
12
  this.channels = {};
14
13
  this.collisionFBOs = {};
15
14
  }
16
- preRender(device, { effects: allEffects, layers, layerFilter, viewports, onViewportActive, views, isPicking, preRenderStats = {} }) {
17
- if (!this.dummyCollisionMap) {
18
- this.dummyCollisionMap = device.createTexture({ width: 1, height: 1 });
19
- }
15
+ setup(context) {
16
+ this.context = context;
17
+ const { device } = context;
18
+ this.dummyCollisionMap = device.createTexture({ width: 1, height: 1 });
19
+ this.collisionFilterPass = new CollisionFilterPass(device, { id: 'default-collision-filter' });
20
+ }
21
+ preRender({ effects: allEffects, layers, layerFilter, viewports, onViewportActive, views, isPicking, preRenderStats = {} }) {
22
+ // This can only be called in preRender() after setup() where context is populated
23
+ const { device } = this.context;
20
24
  if (isPicking) {
21
25
  // Do not update on picking pass
22
26
  return;
@@ -28,11 +32,8 @@ export default class CollisionFilterEffect {
28
32
  this.channels = {};
29
33
  return;
30
34
  }
31
- if (!this.collisionFilterPass) {
32
- this.collisionFilterPass = new CollisionFilterPass(device, { id: 'default-collision-filter' });
33
- }
34
35
  // Detect if mask has rendered. TODO: better dependency system for Effects
35
- const effects = allEffects?.filter(e => e.constructor === MaskEffect);
36
+ const effects = allEffects?.filter(e => e.useInPicking && preRenderStats[e.id]);
36
37
  const maskEffectRendered = preRenderStats['mask-effect']?.didRender;
37
38
  // Collect layers to render
38
39
  const channels = this._groupByCollisionGroup(device, collisionLayers);
@@ -1,8 +1,9 @@
1
1
  import { Framebuffer } from '@luma.gl/core';
2
- import { _LayersPass as LayersPass, LayersPassRenderOptions } from '@deck.gl/core';
2
+ import { Layer, _LayersPass as LayersPass, LayersPassRenderOptions, Viewport } from '@deck.gl/core';
3
3
  type CollisionFilterPassRenderOptions = LayersPassRenderOptions & {};
4
4
  export default class CollisionFilterPass extends LayersPass {
5
- renderCollisionMap(target: Framebuffer, options: CollisionFilterPassRenderOptions): any;
5
+ renderCollisionMap(target: Framebuffer, options: CollisionFilterPassRenderOptions): void;
6
+ protected getLayerParameters(layer: Layer, layerIndex: number, viewport: Viewport): any;
6
7
  getModuleParameters(): {
7
8
  drawToCollisionMap: boolean;
8
9
  picking: {
@@ -1 +1 @@
1
- {"version":3,"file":"collision-filter-pass.d.ts","sourceRoot":"","sources":["../../src/collision-filter/collision-filter-pass.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAC,WAAW,IAAI,UAAU,EAAE,uBAAuB,EAAC,MAAM,eAAe,CAAC;AAEjF,KAAK,gCAAgC,GAAG,uBAAuB,GAAG,EAAE,CAAC;AAErE,MAAM,CAAC,OAAO,OAAO,mBAAoB,SAAQ,UAAU;IACzD,kBAAkB,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,gCAAgC;IAgBjF,mBAAmB;;;;;;;;CAWpB"}
1
+ {"version":3,"file":"collision-filter-pass.d.ts","sourceRoot":"","sources":["../../src/collision-filter/collision-filter-pass.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAC,KAAK,EAAE,WAAW,IAAI,UAAU,EAAE,uBAAuB,EAAE,QAAQ,EAAC,MAAM,eAAe,CAAC;AAElG,KAAK,gCAAgC,GAAG,uBAAuB,GAAG,EAAE,CAAC;AAErE,MAAM,CAAC,OAAO,OAAO,mBAAoB,SAAQ,UAAU;IACzD,kBAAkB,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,gCAAgC;IAQjF,SAAS,CAAC,kBAAkB,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,GAAG;IAIvF,mBAAmB;;;;;;;;CAWpB"}
@@ -3,13 +3,11 @@ export default class CollisionFilterPass extends LayersPass {
3
3
  renderCollisionMap(target, options) {
4
4
  const padding = 1;
5
5
  const clearColor = [0, 0, 0, 0];
6
- return this.device.withParametersWebGL({
7
- scissorTest: true,
8
- scissor: [padding, padding, target.width - 2 * padding, target.height - 2 * padding],
9
- blend: false,
10
- depthTest: true,
11
- depthRange: [0, 1]
12
- }, () => this.render({ ...options, clearColor, target, pass: 'collision' }));
6
+ const scissorRect = [padding, padding, target.width - 2 * padding, target.height - 2 * padding];
7
+ this.render({ ...options, clearColor, scissorRect, target, pass: 'collision' });
8
+ }
9
+ getLayerParameters(layer, layerIndex, viewport) {
10
+ return { ...layer.props.parameters, blend: false, depthRange: [0, 1], depthTest: true };
13
11
  }
14
12
  getModuleParameters() {
15
13
  // Draw picking colors into collision FBO
@@ -100,7 +100,7 @@ export default class DataFilterExtension extends LayerExtension<Required<DataFil
100
100
  filterTransformColor: boolean;
101
101
  };
102
102
  static extensionName: string;
103
- constructor(opts: DataFilterExtensionOptions);
103
+ constructor(opts?: DataFilterExtensionOptions);
104
104
  getShaders(this: Layer<DataFilterExtensionProps>, extension: this): any;
105
105
  initializeState(this: Layer<DataFilterExtensionProps>, context: LayerContext, extension: this): void;
106
106
  updateState(this: Layer<DataFilterExtensionProps>, { props, oldProps, changeFlags }: UpdateParameters<Layer<DataFilterExtensionProps>>, extension: this): void;
@@ -1 +1 @@
1
- {"version":3,"file":"data-filter-extension.d.ts","sourceRoot":"","sources":["../../src/data-filter/data-filter-extension.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAC,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,gBAAgB,EAAC,MAAM,eAAe,CAAC;AACnF,OAAO,EAA0B,cAAc,EAAM,MAAM,eAAe,CAAC;AAiB3E,KAAK,cAAc,GAAG,MAAM,GAAG,MAAM,CAAC;AAEtC,MAAM,MAAM,wBAAwB,CAAC,KAAK,GAAG,GAAG,IAAI;IAClD;;;OAGG;IACH,cAAc,CAAC,EAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC;IACpD;;;OAGG;IACH,iBAAiB,CAAC,EAAE,QAAQ,CAAC,KAAK,EAAE,cAAc,GAAG,cAAc,EAAE,CAAC,CAAC;IACvE;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;;OAIG;IACH,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;IACpD;;;;OAIG;IACH,eAAe,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,IAAI,CAAC;IAC/D;;;OAGG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;;OAGG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B;;;OAGG;IACH,gBAAgB,EAAE,cAAc,EAAE,GAAG,cAAc,EAAE,EAAE,CAAC;IACxD;;OAEG;IACH,qBAAqB,CAAC,EAAE,CAAC,GAAG,EAAE;QAC5B,kCAAkC;QAClC,EAAE,EAAE,MAAM,CAAC;QACX,uDAAuD;QACvD,KAAK,EAAE,MAAM,CAAC;KACf,KAAK,IAAI,CAAC;CACZ,CAAC;AAEF,KAAK,0BAA0B,GAAG;IAChC;;;OAGG;IACH,YAAY,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B;;;OAGG;IACH,UAAU,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC3B;;;OAGG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IACf;;;OAGG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAgBF,0IAA0I;AAC1I,MAAM,CAAC,OAAO,OAAO,mBAAoB,SAAQ,cAAc,CAC7D,QAAQ,CAAC,0BAA0B,CAAC,CACrC;IACC,MAAM,CAAC,YAAY;;;;;;;;;;;;;;;;;;;;MAAgB;IACnC,MAAM,CAAC,aAAa,SAAyB;gBAEjC,IAAI,EAAE,0BAA0B;IAI5C,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,wBAAwB,CAAC,EAAE,SAAS,EAAE,IAAI,GAAG,GAAG;IAcvE,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,wBAAwB,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,IAAI;IA0E7F,WAAW,CACT,IAAI,EAAE,KAAK,CAAC,wBAAwB,CAAC,EACrC,EAAC,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAC,EAAE,gBAAgB,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC,EACjF,SAAS,EAAE,IAAI;IAuCjB,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,wBAAwB,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI;IAiDxE,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,wBAAwB,CAAC;IASnD;;;;OAIG;IACH,sBAAsB,CACpB,IAAI,EAAE,KAAK,CAAC,wBAAwB,CAAC,EACrC,MAAM,EAAE,GAAG,EACX,SAAS,EAAE,IAAI,GACd,IAAI;IAyBP;;;OAGG;IACH,eAAe,CACb,IAAI,EAAE,KAAK,CAAC,wBAAwB,CAAC,EACrC,QAAQ,EAAE,cAAc,EACxB,OAAO,EAAE,MAAM;CAQlB"}
1
+ {"version":3,"file":"data-filter-extension.d.ts","sourceRoot":"","sources":["../../src/data-filter/data-filter-extension.ts"],"names":[],"mappings":"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"}
@@ -47,7 +47,7 @@ const DATA_TYPE_FROM_SIZE = {
47
47
  export default class DataFilterExtension extends LayerExtension {
48
48
  static { this.defaultProps = defaultProps; }
49
49
  static { this.extensionName = 'DataFilterExtension'; }
50
- constructor(opts) {
50
+ constructor(opts = {}) {
51
51
  super({ ...defaultOptions, ...opts });
52
52
  }
53
53
  getShaders(extension) {