(deck: Deck, map: Map, renderParameters?: unknown)
| 274 | }; |
| 275 | |
| 276 | function getViewport(deck: Deck, map: Map, renderParameters?: unknown): Viewport | null { |
| 277 | const viewState = getViewState(map); |
| 278 | // View is always MapView or GlobeView in this context |
| 279 | const view = (deck.getView(MAPBOX_VIEW_ID) || getDefaultView(map)) as MapView | GlobeView; |
| 280 | |
| 281 | if (renderParameters) { |
| 282 | // Called from MapboxLayerGroup.render |
| 283 | // Magic number, matches mapbox-gl@>=1.3.0's projection matrix |
| 284 | view.props.nearZMultiplier = 0.2; |
| 285 | } |
| 286 | |
| 287 | // Get the base map near/far plane |
| 288 | // renderParameters is maplibre API but not mapbox |
| 289 | // Transform is not an official API, properties could be undefined for older versions |
| 290 | const nearZ = (renderParameters as MaplibreRenderParameters)?.nearZ ?? map.transform._nearZ; |
| 291 | const farZ = (renderParameters as MaplibreRenderParameters)?.farZ ?? map.transform._farZ; |
| 292 | if (Number.isFinite(nearZ)) { |
| 293 | viewState.nearZ = nearZ / map.transform.height; |
| 294 | viewState.farZ = farZ / map.transform.height; |
| 295 | } |
| 296 | // Otherwise fallback to default calculation using nearZMultiplier/farZMultiplier |
| 297 | |
| 298 | return view.makeViewport({ |
| 299 | width: deck.width, |
| 300 | height: deck.height, |
| 301 | viewState |
| 302 | }); |
| 303 | } |
| 304 | |
| 305 | function afterRender(deck: Deck, map: Map): void { |
| 306 | // Draw non-Mapbox layers (layers that don't have a corresponding MapboxLayerGroup on the map) |
no test coverage detected
searching dependent graphs…