@deck.gl/mapbox 9.1.0-beta.1 → 9.1.0-beta.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.
@@ -1,22 +1,24 @@
1
- import { Deck } from '@deck.gl/core';
2
- import type { DeckProps, MapViewState } from '@deck.gl/core';
1
+ import { Deck, MapView, _GlobeView as GlobeView } from '@deck.gl/core';
2
+ import type { MapViewState } from '@deck.gl/core';
3
+ import type { Parameters } from '@luma.gl/core';
3
4
  import type MapboxLayer from "./mapbox-layer.js";
4
- import type { Map } from 'mapbox-gl';
5
+ import type { Map } from "./types.js";
5
6
  export declare function getDeckInstance({ map, gl, deck }: {
6
7
  map: Map & {
7
- __deck?: Deck | null;
8
+ __deck?: Deck<any> | null;
8
9
  };
9
10
  gl: WebGL2RenderingContext;
10
- deck?: Deck;
11
- }): Deck;
11
+ deck?: Deck<any>;
12
+ }): Deck<any>;
12
13
  export declare function removeDeckInstance(map: Map & {
13
14
  __deck?: Deck | null;
14
15
  }): void;
15
- export declare function getInterleavedProps(currProps: DeckProps): DeckProps;
16
+ export declare function getDefaultParameters(map: Map, interleaved: boolean): Parameters;
16
17
  export declare function addLayer(deck: Deck, layer: MapboxLayer<any>): void;
17
18
  export declare function removeLayer(deck: Deck, layer: MapboxLayer<any>): void;
18
19
  export declare function updateLayer(deck: Deck, layer: MapboxLayer<any>): void;
19
- export declare function drawLayer(deck: Deck, map: Map, layer: MapboxLayer<any>): void;
20
+ export declare function drawLayer(deck: Deck, map: Map, layer: MapboxLayer<any>, renderParameters: any): void;
21
+ export declare function getDefaultView(map: Map): GlobeView | MapView;
20
22
  export declare function getViewState(map: Map): MapViewState & {
21
23
  repeat: boolean;
22
24
  padding: {
@@ -1 +1 @@
1
- {"version":3,"file":"deck-utils.d.ts","sourceRoot":"","sources":["../src/deck-utils.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,IAAI,EAAoD,MAAM,eAAe,CAAC;AACtF,OAAO,KAAK,EAAC,SAAS,EAAE,YAAY,EAAQ,MAAM,eAAe,CAAC;AAClE,OAAO,KAAK,WAAW,0BAAuB;AAC9C,OAAO,KAAK,EAAC,GAAG,EAAC,MAAM,WAAW,CAAC;AAiBnC,wBAAgB,eAAe,CAAC,EAC9B,GAAG,EACH,EAAE,EACF,IAAI,EACL,EAAE;IACD,GAAG,EAAE,GAAG,GAAG;QAAC,MAAM,CAAC,EAAE,IAAI,GAAG,IAAI,CAAA;KAAC,CAAC;IAClC,EAAE,EAAE,sBAAsB,CAAC;IAC3B,IAAI,CAAC,EAAE,IAAI,CAAC;CACb,GAAG,IAAI,CAiEP;AAeD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,GAAG,GAAG;IAAC,MAAM,CAAC,EAAE,IAAI,GAAG,IAAI,CAAA;CAAC,QAGnE;AAED,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,SAAS,aAmBvD;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC,GAAG,IAAI,CAGlE;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC,GAAG,IAAI,CAGrE;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC,GAAG,IAAI,CAErE;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC,GAAG,IAAI,CAsB7E;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,GAAG,GAAG,YAAY,GAAG;IACrD,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE;QACP,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,GAAG,EAAE,MAAM,CAAC;QACZ,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;CACH,CA6BA"}
1
+ {"version":3,"file":"deck-utils.d.ts","sourceRoot":"","sources":["../src/deck-utils.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,IAAI,EAAE,OAAO,EAAE,UAAU,IAAI,SAAS,EAAsB,MAAM,eAAe,CAAC;AAC1F,OAAO,KAAK,EAAW,YAAY,EAAQ,MAAM,eAAe,CAAC;AACjE,OAAO,KAAK,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,WAAW,0BAAuB;AAC9C,OAAO,KAAK,EAAC,GAAG,EAAC,mBAAgB;AAgBjC,wBAAgB,eAAe,CAAC,EAC9B,GAAG,EACH,EAAE,EACF,IAAI,EACL,EAAE;IACD,GAAG,EAAE,GAAG,GAAG;QAAC,MAAM,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAA;KAAC,CAAC;IACvC,EAAE,EAAE,sBAAsB,CAAC;IAC3B,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;CAClB,GAAG,IAAI,CAAC,GAAG,CAAC,CAmEZ;AAeD,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,GAAG,GAAG;IAAC,MAAM,CAAC,EAAE,IAAI,GAAG,IAAI,CAAA;CAAC,QAGnE;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,GAAG,EAAE,WAAW,EAAE,OAAO,GAAG,UAAU,CAmB/E;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC,GAAG,IAAI,CAGlE;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC,GAAG,IAAI,CAGrE;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC,GAAG,IAAI,CAErE;AAED,wBAAgB,SAAS,CACvB,IAAI,EAAE,IAAI,EACV,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,WAAW,CAAC,GAAG,CAAC,EACvB,gBAAgB,EAAE,GAAG,GACpB,IAAI,CAsBN;AAkBD,wBAAgB,cAAc,CAAC,GAAG,EAAE,GAAG,GAAG,SAAS,GAAG,OAAO,CAK5D;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,GAAG,GAAG,YAAY,GAAG;IACrD,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE;QACP,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,GAAG,EAAE,MAAM,CAAC;QACZ,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;CACH,CA6BA"}
@@ -1,9 +1,8 @@
1
1
  // deck.gl
2
2
  // SPDX-License-Identifier: MIT
3
3
  // Copyright (c) vis.gl contributors
4
- import { Deck, WebMercatorViewport, MapView, _flatten as flatten } from '@deck.gl/core';
4
+ import { Deck, MapView, _GlobeView as GlobeView, _flatten as flatten } from '@deck.gl/core';
5
5
  import { lngLatToWorld, unitsPerMeter } from '@math.gl/web-mercator';
6
- import { GL } from '@luma.gl/constants';
7
6
  // Mercator constants
8
7
  const TILE_SIZE = 512;
9
8
  const DEGREES_TO_RADIANS = Math.PI / 180;
@@ -16,7 +15,7 @@ export function getDeckInstance({ map, gl, deck }) {
16
15
  // Only initialize certain props once per context
17
16
  const customRender = deck?.props._customRender;
18
17
  const onLoad = deck?.props.onLoad;
19
- const deckProps = getInterleavedProps({
18
+ const deckProps = {
20
19
  ...deck?.props,
21
20
  _customRender: () => {
22
21
  map.triggerRepaint();
@@ -26,7 +25,9 @@ export function getDeckInstance({ map, gl, deck }) {
26
25
  // Rerender will be triggered by MapboxLayer's render()
27
26
  customRender?.('');
28
27
  }
29
- });
28
+ };
29
+ deckProps.parameters = { ...getDefaultParameters(map, true), ...deckProps.parameters };
30
+ deckProps.views || (deckProps.views = getDefaultView(map));
30
31
  let deckInstance;
31
32
  if (!deck || deck.props.gl === gl) {
32
33
  // If deck isn't defined (Internal MapboxLayer use case),
@@ -87,24 +88,25 @@ export function removeDeckInstance(map) {
87
88
  map.__deck?.finalize();
88
89
  map.__deck = null;
89
90
  }
90
- export function getInterleavedProps(currProps) {
91
- const nextProps = {
92
- ...currProps,
93
- // TODO: remove with withParametersWebGL
94
- parameters: {
95
- depthMask: true,
96
- depthTest: true,
91
+ export function getDefaultParameters(map, interleaved) {
92
+ const result = interleaved
93
+ ? {
94
+ depthWriteEnabled: true,
95
+ depthCompare: 'less-equal',
96
+ depthBias: 0,
97
97
  blend: true,
98
- blendFunc: [770, 771, 1, 771],
99
- polygonOffsetFill: true,
100
- depthFunc: 515,
101
- blendEquation: 32774,
102
- ...currProps.parameters
103
- },
104
- // @ts-ignore views prop is hidden by the types because it is not expected to work the same way as in standalone Deck, see documentation
105
- views: currProps.views || [new MapView({ id: 'mapbox' })]
106
- };
107
- return nextProps;
98
+ blendColorSrcFactor: 'src-alpha',
99
+ blendColorDstFactor: 'one-minus-src-alpha',
100
+ blendAlphaSrcFactor: 'one',
101
+ blendAlphaDstFactor: 'one-minus-src-alpha',
102
+ blendColorOperation: 'add',
103
+ blendAlphaOperation: 'add'
104
+ }
105
+ : {};
106
+ if (getProjection(map) === 'globe') {
107
+ result.cullMode = 'back';
108
+ }
109
+ return result;
108
110
  }
109
111
  export function addLayer(deck, layer) {
110
112
  deck.userData.mapboxLayers.add(layer);
@@ -117,13 +119,13 @@ export function removeLayer(deck, layer) {
117
119
  export function updateLayer(deck, layer) {
118
120
  updateLayers(deck);
119
121
  }
120
- export function drawLayer(deck, map, layer) {
122
+ export function drawLayer(deck, map, layer, renderParameters) {
121
123
  let { currentViewport } = deck.userData;
122
124
  let clearStack = false;
123
125
  if (!currentViewport) {
124
126
  // This is the first layer drawn in this render cycle.
125
127
  // Generate viewport from the current map state.
126
- currentViewport = getViewport(deck, map, true);
128
+ currentViewport = getViewport(deck, map, renderParameters);
127
129
  deck.userData.currentViewport = currentViewport;
128
130
  clearStack = true;
129
131
  }
@@ -137,6 +139,27 @@ export function drawLayer(deck, map, layer) {
137
139
  clearCanvas: false
138
140
  });
139
141
  }
142
+ function getProjection(map) {
143
+ const projection = map.getProjection?.();
144
+ const type =
145
+ // maplibre projection spec
146
+ projection?.type ||
147
+ // mapbox projection spec
148
+ projection?.name;
149
+ if (type === 'globe') {
150
+ return 'globe';
151
+ }
152
+ if (type && type !== 'mercator') {
153
+ throw new Error('Unsupported projection');
154
+ }
155
+ return 'mercator';
156
+ }
157
+ export function getDefaultView(map) {
158
+ if (getProjection(map) === 'globe') {
159
+ return new GlobeView({ id: 'mapbox' });
160
+ }
161
+ return new MapView({ id: 'mapbox' });
162
+ }
140
163
  export function getViewState(map) {
141
164
  const { lng, lat } = map.getCenter();
142
165
  const viewState = {
@@ -193,32 +216,28 @@ function centerCameraOnTerrain(map, viewState) {
193
216
  viewState.position = [0, 0, map.transform.elevation];
194
217
  }
195
218
  }
196
- // function getMapboxVersion(map: Map): {minor: number; major: number} {
197
- // // parse mapbox version string
198
- // let major = 0;
199
- // let minor = 0;
200
- // // @ts-ignore (2339) undefined property
201
- // const version: string = map.version;
202
- // if (version) {
203
- // [major, minor] = version.split('.').slice(0, 2).map(Number);
204
- // }
205
- // return {major, minor};
206
- // }
207
- function getViewport(deck, map, useMapboxProjection = true) {
208
- return new WebMercatorViewport({
209
- id: 'mapbox',
210
- x: 0,
211
- y: 0,
219
+ function getViewport(deck, map, renderParameters) {
220
+ const viewState = getViewState(map);
221
+ const view = getDefaultView(map);
222
+ if (renderParameters) {
223
+ // Called from MapboxLayer.render
224
+ // Magic number, matches mapbox-gl@>=1.3.0's projection matrix
225
+ view.props.nearZMultiplier = 0.2;
226
+ }
227
+ // Get the base map near/far plane
228
+ // renderParameters is maplibre API but not mapbox
229
+ // Transform is not an official API, properties could be undefined for older versions
230
+ const nearZ = renderParameters?.nearZ ?? map.transform._nearZ;
231
+ const farZ = renderParameters?.farZ ?? map.transform._farZ;
232
+ if (Number.isFinite(nearZ)) {
233
+ viewState.nearZ = nearZ / map.transform.height;
234
+ viewState.farZ = farZ / map.transform.height;
235
+ }
236
+ // Otherwise fallback to default calculation using nearZMultiplier/farZMultiplier
237
+ return view.makeViewport({
212
238
  width: deck.width,
213
239
  height: deck.height,
214
- ...getViewState(map),
215
- nearZMultiplier: useMapboxProjection
216
- ? // match mapbox-gl@>=1.3.0's projection matrix
217
- 0.02
218
- : // use deck.gl's own default
219
- 0.1,
220
- nearZ: map.transform._nearZ / map.transform.height,
221
- farZ: map.transform._farZ / map.transform.height
240
+ viewState
222
241
  });
223
242
  }
224
243
  function afterRender(deck, map) {
@@ -234,7 +253,7 @@ function afterRender(deck, map) {
234
253
  if (hasNonMapboxLayers || hasNonMapboxViews) {
235
254
  if (mapboxViewportIdx >= 0) {
236
255
  viewports = viewports.slice();
237
- viewports[mapboxViewportIdx] = getViewport(deck, map, false);
256
+ viewports[mapboxViewportIdx] = getViewport(deck, map);
238
257
  }
239
258
  deck._drawLayers('mapbox-repaint', {
240
259
  viewports,
@@ -268,3 +287,4 @@ function updateLayers(deck) {
268
287
  });
269
288
  deck.setProps({ layers });
270
289
  }
290
+ //# sourceMappingURL=deck-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deck-utils.js","sourceRoot":"","sources":["../src/deck-utils.ts"],"names":[],"mappings":"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"}