@deck.gl/arcgis 9.0.4 → 9.0.6

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/index.cjs CHANGED
@@ -110,14 +110,28 @@ function createDeckLayer(DeckProps2, Layer2, DeckLayerView2D2) {
110
110
  });
111
111
  }
112
112
 
113
- // dist/deck-layer-view-2d.js
114
- var import_webgl = require("@luma.gl/webgl");
115
-
116
113
  // dist/commons.js
117
114
  var import_constants = require("@luma.gl/constants");
118
115
  var import_engine = require("@luma.gl/engine");
119
116
  var import_core = require("@deck.gl/core");
120
- function initializeResources(device) {
117
+ async function createDeckInstance(gl) {
118
+ return new Promise((resolve) => {
119
+ const deckInstance = new import_core.Deck({
120
+ controller: false,
121
+ gl,
122
+ parameters: {
123
+ depthCompare: "less-equal"
124
+ },
125
+ width: null,
126
+ height: null,
127
+ onDeviceInitialized: (device) => {
128
+ resolve({ deckInstance, device });
129
+ }
130
+ });
131
+ });
132
+ }
133
+ async function initializeResources(gl) {
134
+ const { deckInstance, device } = await createDeckInstance(gl);
121
135
  const texture = device.createTexture({
122
136
  format: "rgba8unorm",
123
137
  width: 1,
@@ -155,7 +169,13 @@ void main(void) {
155
169
  },
156
170
  parameters: {
157
171
  depthWriteEnabled: true,
158
- depthCompare: "less-equal"
172
+ depthCompare: "less-equal",
173
+ blendColorSrcFactor: "one",
174
+ blendColorDstFactor: "one-minus-src-alpha",
175
+ blendAlphaSrcFactor: "one",
176
+ blendAlphaDstFactor: "one-minus-src-alpha",
177
+ blendColorOperation: "add",
178
+ blendAlphaOperation: "add"
159
179
  },
160
180
  geometry: new import_engine.Geometry({
161
181
  topology: "triangle-strip",
@@ -169,18 +189,11 @@ void main(void) {
169
189
  id: "deckfbo",
170
190
  width: 1,
171
191
  height: 1,
172
- colorAttachments: [texture]
192
+ colorAttachments: [texture],
193
+ depthStencilAttachment: "depth16unorm"
173
194
  });
174
- const deckInstance = new import_core.Deck({
175
- viewState: {},
176
- controller: false,
177
- device,
178
- parameters: {
179
- depthCompare: "less-equal"
180
- },
195
+ deckInstance.setProps({
181
196
  _framebuffer: fbo,
182
- width: null,
183
- height: null,
184
197
  _customRender: (redrawReason) => {
185
198
  if (redrawReason === "arcgis") {
186
199
  deckInstance._drawLayers(redrawReason);
@@ -205,15 +218,14 @@ function render(resources, viewport) {
205
218
  const textureToScreenPass = device.beginRenderPass({
206
219
  framebuffer: screenFbo,
207
220
  parameters: { viewport: [0, 0, pixelWidth, pixelHeight] },
208
- clearColor: [0, 0, 0, 0],
209
- clearDepth: 1
221
+ clearColor: false,
222
+ clearDepth: false
210
223
  });
211
- device.withParametersWebGL({
212
- blend: true,
213
- blendFunc: [1, 771]
214
- }, () => {
224
+ try {
215
225
  model.draw(textureToScreenPass);
216
- });
226
+ } finally {
227
+ textureToScreenPass.end();
228
+ }
217
229
  }
218
230
  function finalizeResources(resources) {
219
231
  resources.deck.finalize();
@@ -226,23 +238,37 @@ function finalizeResources(resources) {
226
238
  function createDeckLayerView2D(BaseLayerViewGL2D2) {
227
239
  return BaseLayerViewGL2D2.createSubclass({
228
240
  properties: {
241
+ cancelInitialization: null,
229
242
  resources: null
230
243
  },
231
- attach() {
244
+ async attach() {
232
245
  const gl = this.context;
233
- const device = import_webgl.WebGLDevice.attach(gl);
234
- this.resources = initializeResources.call(this, device);
235
- this.layer.deck.on("change", (props) => this.resources.deck.setProps(props));
236
- this.resources.deck.setProps(this.layer.deck.toJSON());
246
+ let cancelled = false;
247
+ this.cancelInitialization = () => cancelled = true;
248
+ const resources = await initializeResources.call(this, gl);
249
+ if (cancelled) {
250
+ finalizeResources(resources);
251
+ return;
252
+ }
253
+ this.resources = resources;
254
+ this.layer.deck.on("change", (props) => resources.deck.setProps(props));
255
+ resources.deck.setProps(this.layer.deck.toJSON());
237
256
  },
238
257
  redraw() {
239
258
  this.requestRender();
240
259
  },
241
260
  detach() {
242
- finalizeResources(this.resources);
243
- this.resources = null;
261
+ var _a;
262
+ (_a = this.cancelInitialization) == null ? void 0 : _a.call(this);
263
+ if (this.resources) {
264
+ finalizeResources(this.resources);
265
+ this.resources = null;
266
+ }
244
267
  },
245
268
  render(renderParameters) {
269
+ if (!this.resources) {
270
+ return;
271
+ }
246
272
  const [width, height] = this.view.state.size;
247
273
  const state = renderParameters.state;
248
274
  render(this.resources, {
@@ -259,7 +285,6 @@ function createDeckLayerView2D(BaseLayerViewGL2D2) {
259
285
  }
260
286
 
261
287
  // dist/deck-renderer.js
262
- var import_webgl2 = require("@luma.gl/webgl");
263
288
  function arcgisFOVToDeckAltitude(fov, aspectRatio) {
264
289
  const D = Math.sqrt(1 + aspectRatio ** 2);
265
290
  const halfFOV = fov / 2 / 180 * Math.PI;
@@ -269,18 +294,26 @@ function createDeckRenderer(DeckProps2, externalRenderers2) {
269
294
  class DeckRenderer2 {
270
295
  constructor(view, props) {
271
296
  this.resources = null;
297
+ this.cancelInitialization = null;
272
298
  this.view = view;
273
299
  this.deck = new DeckProps2(props);
274
300
  }
275
- setup(context) {
301
+ async setup(context) {
276
302
  const gl = context.gl;
277
- const device = import_webgl2.WebGLDevice.attach(gl);
278
- const resources = initializeResources.call(this, device);
303
+ let cancelled = false;
304
+ this.cancelInitialization = () => cancelled = true;
305
+ const resources = await initializeResources.call(this, gl);
306
+ if (cancelled) {
307
+ finalizeResources(resources);
308
+ return;
309
+ }
279
310
  this.deck.on("change", (props) => resources.deck.setProps(props));
280
311
  resources.deck.setProps(this.deck.toJSON());
281
312
  this.resources = resources;
282
313
  }
283
314
  dispose() {
315
+ var _a;
316
+ (_a = this.cancelInitialization) == null ? void 0 : _a.call(this);
284
317
  if (this.resources) {
285
318
  finalizeResources(this.resources);
286
319
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["index.js", "deck-props.js", "deck-layer.js", "deck-layer-view-2d.js", "commons.js", "deck-renderer.js", "load-modules.js"],
4
- "sourcesContent": ["import createDeckProps from \"./deck-props.js\";\nimport createDeckLayer from \"./deck-layer.js\";\nimport createDeckLayerView2D from \"./deck-layer-view-2d.js\";\nimport createDeckRenderer from \"./deck-renderer.js\";\nimport Accessor from '@arcgis/core/core/Accessor';\nimport Layer from '@arcgis/core/layers/Layer';\nimport BaseLayerViewGL2D from '@arcgis/core/views/2d/layers/BaseLayerViewGL2D';\nimport * as externalRenderers from '@arcgis/core/views/3d/externalRenderers';\n// require-style loader\nexport { loadArcGISModules } from \"./load-modules.js\";\n// ESM-style classes\nconst DeckProps = createDeckProps(Accessor);\nconst DeckLayerView2D = createDeckLayerView2D(BaseLayerViewGL2D);\nexport const DeckLayer = createDeckLayer(DeckProps, Layer, DeckLayerView2D);\nexport const DeckRenderer = createDeckRenderer(DeckProps, externalRenderers);\n", "const properties = {\n layers: {},\n layerFilter: {},\n parameters: {},\n effects: {},\n pickingRadius: {},\n onBeforeRender: {},\n onAfterRender: {},\n onClick: {},\n onHover: {},\n onDragStart: {},\n onDrag: {},\n onDragEnd: {},\n onError: {},\n debug: {},\n drawPickingColors: {},\n getCursor: {},\n getTooltip: {}\n};\n/* eslint-disable callback-return */\nexport default function createDeckProps(Accessor) {\n const DeckProps = Accessor.createSubclass({\n properties,\n constructor() {\n this._callbacks = {};\n this.watch(Object.keys(properties), (newValue, oldValue, propName) => {\n this.emit('change', { [propName]: newValue });\n });\n },\n on(eventName, cb) {\n this._callbacks[eventName] = this._callbacks[eventName] || [];\n this._callbacks[eventName].push(cb);\n },\n emit(eventName, details) {\n const callbacks = this._callbacks[eventName];\n if (callbacks) {\n for (const cb of callbacks) {\n cb(details);\n }\n }\n },\n toJSON() {\n const result = {};\n for (const key of this.keys()) {\n if (this[key] !== undefined) {\n result[key] = this[key];\n }\n }\n return result;\n }\n });\n return DeckProps;\n}\n", "export default function createDeckLayer(DeckProps, Layer, DeckLayerView2D) {\n // A layer that displays inside a MapView using an instance\n // of the layer view defined above.\n return Layer.createSubclass({\n properties: {\n deck: {},\n blendMode: {},\n effect: {}\n },\n constructor() {\n this.deck = new DeckProps();\n },\n // Called by the MapView whenever a layer view\n // needs to be created for a given layer.\n createLayerView(view) {\n if (view.type === '2d') {\n return new DeckLayerView2D({\n view,\n layer: this\n });\n }\n // eslint-disable-next-line\n console.error('DeckLayer does not support SceneView at the moment. Use DeckRenderer instead.');\n return null;\n }\n });\n}\n", "import { WebGLDevice } from '@luma.gl/webgl';\nimport { initializeResources, render, finalizeResources } from \"./commons.js\";\nexport default function createDeckLayerView2D(BaseLayerViewGL2D) {\n return BaseLayerViewGL2D.createSubclass({\n properties: {\n resources: null\n },\n // Attach is called as soon as the layer view is ready to start rendering.\n attach() {\n // We use a full-screen quad and shaders to composite the frame rendered\n // with deck.gl on top of the MapView. Composition uses the MapView context.\n const gl = this.context;\n const device = WebGLDevice.attach(gl);\n this.resources = initializeResources.call(this, device);\n // Update deck props\n this.layer.deck.on('change', props => this.resources.deck.setProps(props));\n // We need to start drawing the deck.gl layer immediately.\n this.resources.deck.setProps(this.layer.deck.toJSON());\n },\n redraw() {\n this.requestRender();\n },\n // Called when the layer must be destroyed.\n detach() {\n finalizeResources(this.resources);\n this.resources = null;\n },\n // Called every time that the layer view must be rendered.\n render(renderParameters) {\n const [width, height] = this.view.state.size;\n // The view state must be kept in-sync with the MapView of the ArcGIS API.\n const state = renderParameters.state;\n render(this.resources, {\n width,\n height,\n latitude: this.view.center.latitude,\n longitude: this.view.center.longitude,\n zoom: this.view.featuresTilingScheme.scaleToLevel(state.scale),\n bearing: -state.rotation,\n pitch: 0\n });\n }\n });\n}\n", "/* eslint-disable no-invalid-this */\nimport { GL } from '@luma.gl/constants';\nimport { Model, Geometry } from '@luma.gl/engine';\nimport { Deck } from '@deck.gl/core';\nexport function initializeResources(device) {\n const texture = device.createTexture({\n format: 'rgba8unorm',\n width: 1,\n height: 1,\n sampler: {\n minFilter: 'linear',\n magFilter: 'linear',\n addressModeU: 'clamp-to-edge',\n addressModeV: 'clamp-to-edge'\n }\n });\n const model = new Model(device, {\n vs: `\\\n#version 300 es\nin vec2 pos;\nout vec2 v_texcoord;\nvoid main(void) {\n gl_Position = vec4(pos, 0.0, 1.0);\n v_texcoord = (pos + 1.0) / 2.0;\n}\n `,\n fs: `\\\n#version 300 es\nprecision mediump float;\nuniform sampler2D deckglTexture;\nin vec2 v_texcoord;\nout vec4 fragColor;\n\nvoid main(void) {\n vec4 imageColor = texture(deckglTexture, v_texcoord);\n imageColor.rgb *= imageColor.a;\n fragColor = imageColor;\n}\n `,\n bindings: {\n deckglTexture: texture\n },\n parameters: {\n depthWriteEnabled: true,\n depthCompare: 'less-equal'\n },\n geometry: new Geometry({\n topology: 'triangle-strip',\n attributes: {\n pos: { size: 2, value: new Int8Array([-1, -1, 1, -1, -1, 1, -1, 1, 1, 1, 1, -1]) }\n }\n }),\n vertexCount: 6\n });\n const fbo = device.createFramebuffer({\n id: 'deckfbo',\n width: 1,\n height: 1,\n colorAttachments: [texture]\n });\n const deckInstance = new Deck({\n // The view state will be set dynamically to track the MapView current extent.\n viewState: {},\n // Input is handled by the ArcGIS API for JavaScript.\n controller: false,\n // We use the same WebGL context as the ArcGIS API for JavaScript.\n device,\n // We need depth testing in general; we don't know what layers might be added to the deck.\n parameters: {\n depthCompare: 'less-equal'\n },\n // This deck renders into an auxiliary framebuffer.\n _framebuffer: fbo,\n // To disable canvas resizing, since the FBO is owned by the ArcGIS API for JavaScript.\n width: null,\n height: null,\n _customRender: redrawReason => {\n if (redrawReason === 'arcgis') {\n deckInstance._drawLayers(redrawReason);\n }\n else {\n this.redraw();\n }\n }\n });\n return { deck: deckInstance, texture, fbo, model };\n}\nexport function render(resources, viewport) {\n const { model, deck, fbo } = resources;\n const device = model.device;\n const screenFbo = device.getParametersWebGL(36006);\n const { width, height, ...viewState } = viewport;\n /* global window */\n const dpr = window.devicePixelRatio;\n const pixelWidth = Math.round(width * dpr);\n const pixelHeight = Math.round(height * dpr);\n fbo.resize({ width: pixelWidth, height: pixelHeight });\n deck.setProps({ viewState });\n // redraw deck immediately into deckFbo\n deck.redraw('arcgis');\n // We overlay the texture on top of the map using the full-screen quad.\n const textureToScreenPass = device.beginRenderPass({\n framebuffer: screenFbo,\n parameters: { viewport: [0, 0, pixelWidth, pixelHeight] },\n clearColor: [0, 0, 0, 0],\n clearDepth: 1\n });\n device.withParametersWebGL({\n blend: true,\n blendFunc: [1, 771]\n }, () => {\n model.draw(textureToScreenPass);\n });\n}\nexport function finalizeResources(resources) {\n resources.deck.finalize();\n resources.model.destroy();\n resources.fbo.destroy();\n resources.texture.destroy();\n}\n", "/* eslint-disable no-invalid-this */\nimport { WebGLDevice } from '@luma.gl/webgl';\nimport { initializeResources, render, finalizeResources } from \"./commons.js\";\n/** Convert ArcGIS FOV to WebMercatorViewport altitude */\nfunction arcgisFOVToDeckAltitude(fov, aspectRatio) {\n // ArcGIS fov is corner-to-corner\n const D = Math.sqrt(1 + aspectRatio ** 2);\n const halfFOV = (fov / 2 / 180) * Math.PI;\n return D / 2 / Math.tan(halfFOV);\n}\nexport default function createDeckRenderer(DeckProps, externalRenderers) {\n class DeckRenderer {\n constructor(view, props) {\n this.resources = null;\n this.view = view;\n this.deck = new DeckProps(props);\n }\n setup(context) {\n const gl = context.gl;\n const device = WebGLDevice.attach(gl);\n const resources = initializeResources.call(this, device);\n this.deck.on('change', props => resources.deck.setProps(props));\n resources.deck.setProps(this.deck.toJSON());\n this.resources = resources;\n }\n dispose() {\n if (this.resources) {\n finalizeResources(this.resources);\n }\n }\n redraw() {\n externalRenderers.requestRender(this.view);\n }\n render() {\n const [width, height] = this.view.size;\n render(this.resources, {\n width,\n height,\n latitude: this.view.center.latitude,\n longitude: this.view.center.longitude,\n altitude: arcgisFOVToDeckAltitude(this.view.camera.fov, width / height),\n zoom: this.view.zoom,\n bearing: this.view.camera.heading,\n pitch: this.view.camera.tilt\n });\n }\n }\n return DeckRenderer;\n}\n", "import createDeckProps from \"./deck-props.js\";\nimport createDeckLayer from \"./deck-layer.js\";\nimport createDeckLayerView2D from \"./deck-layer-view-2d.js\";\nimport createDeckRenderer from \"./deck-renderer.js\";\nimport { loadModules as esriLoaderLoadModules } from 'esri-loader';\nlet arcGIS;\nexport async function loadArcGISModules(modules, loadScriptOptions) {\n const namespace = Array.isArray(modules) ? null : modules;\n await loadArcGISModule(namespace, loadScriptOptions);\n if (Array.isArray(modules)) {\n return esriLoaderLoadModules(modules, loadScriptOptions).then(array => {\n return { ...arcGIS, modules: array };\n });\n }\n return arcGIS;\n}\nasync function loadArcGISModule(esri, loadScriptOptions) {\n if (arcGIS) {\n // Already loaded\n return arcGIS;\n }\n if (esri) {\n // Using user-provided dependencies\n // Right now this object has to be manually assembled - let @arcgis/webpack-plugin handle this?\n const Layer = esri.layers.Layer;\n const Accessor = esri.core.Accessor;\n const BaseLayerViewGL2D = esri.views['2d'].layers.BaseLayerViewGL2D;\n const externalRenderers = esri.views['3d'].externalRenderers;\n return initialize(Layer, Accessor, BaseLayerViewGL2D, externalRenderers);\n }\n const [Layer, Accessor, BaseLayerViewGL2D, externalRenderers] = await esriLoaderLoadModules([\n 'esri/layers/Layer',\n 'esri/core/Accessor',\n 'esri/views/2d/layers/BaseLayerViewGL2D',\n 'esri/views/3d/externalRenderers'\n ], loadScriptOptions);\n return initialize(Layer, Accessor, BaseLayerViewGL2D, externalRenderers);\n}\nfunction initialize(Layer, Accessor, BaseLayerViewGL2D, externalRenderers) {\n const DeckProps = createDeckProps(Accessor);\n const DeckLayerView2D = createDeckLayerView2D(BaseLayerViewGL2D);\n const DeckLayer = createDeckLayer(DeckProps, Layer, DeckLayerView2D);\n const DeckRenderer = createDeckRenderer(DeckProps, externalRenderers);\n arcGIS = { DeckLayer, DeckRenderer };\n return arcGIS;\n}\n"],
5
- "mappings": "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",
6
- "names": ["Accessor", "DeckProps", "DeckProps", "Layer", "DeckLayerView2D", "BaseLayerViewGL2D", "import_webgl", "DeckProps", "externalRenderers", "DeckRenderer", "esriLoaderLoadModules", "Layer", "Accessor", "BaseLayerViewGL2D", "externalRenderers", "DeckProps", "DeckLayerView2D", "DeckLayer", "DeckRenderer", "Accessor", "BaseLayerViewGL2D", "Layer"]
3
+ "sources": ["index.js", "deck-props.js", "deck-layer.js", "commons.js", "deck-layer-view-2d.js", "deck-renderer.js", "load-modules.js"],
4
+ "sourcesContent": ["import createDeckProps from \"./deck-props.js\";\nimport createDeckLayer from \"./deck-layer.js\";\nimport createDeckLayerView2D from \"./deck-layer-view-2d.js\";\nimport createDeckRenderer from \"./deck-renderer.js\";\nimport Accessor from '@arcgis/core/core/Accessor';\nimport Layer from '@arcgis/core/layers/Layer';\nimport BaseLayerViewGL2D from '@arcgis/core/views/2d/layers/BaseLayerViewGL2D';\nimport * as externalRenderers from '@arcgis/core/views/3d/externalRenderers';\n// require-style loader\nexport { loadArcGISModules } from \"./load-modules.js\";\n// ESM-style classes\nconst DeckProps = createDeckProps(Accessor);\nconst DeckLayerView2D = createDeckLayerView2D(BaseLayerViewGL2D);\nexport const DeckLayer = createDeckLayer(DeckProps, Layer, DeckLayerView2D);\nexport const DeckRenderer = createDeckRenderer(DeckProps, externalRenderers);\n", "const properties = {\n layers: {},\n layerFilter: {},\n parameters: {},\n effects: {},\n pickingRadius: {},\n onBeforeRender: {},\n onAfterRender: {},\n onClick: {},\n onHover: {},\n onDragStart: {},\n onDrag: {},\n onDragEnd: {},\n onError: {},\n debug: {},\n drawPickingColors: {},\n getCursor: {},\n getTooltip: {}\n};\n/* eslint-disable callback-return */\nexport default function createDeckProps(Accessor) {\n const DeckProps = Accessor.createSubclass({\n properties,\n constructor() {\n this._callbacks = {};\n this.watch(Object.keys(properties), (newValue, oldValue, propName) => {\n this.emit('change', { [propName]: newValue });\n });\n },\n on(eventName, cb) {\n this._callbacks[eventName] = this._callbacks[eventName] || [];\n this._callbacks[eventName].push(cb);\n },\n emit(eventName, details) {\n const callbacks = this._callbacks[eventName];\n if (callbacks) {\n for (const cb of callbacks) {\n cb(details);\n }\n }\n },\n toJSON() {\n const result = {};\n for (const key of this.keys()) {\n if (this[key] !== undefined) {\n result[key] = this[key];\n }\n }\n return result;\n }\n });\n return DeckProps;\n}\n", "export default function createDeckLayer(DeckProps, Layer, DeckLayerView2D) {\n // A layer that displays inside a MapView using an instance\n // of the layer view defined above.\n return Layer.createSubclass({\n properties: {\n deck: {},\n blendMode: {},\n effect: {}\n },\n constructor() {\n this.deck = new DeckProps();\n },\n // Called by the MapView whenever a layer view\n // needs to be created for a given layer.\n createLayerView(view) {\n if (view.type === '2d') {\n return new DeckLayerView2D({\n view,\n layer: this\n });\n }\n // eslint-disable-next-line\n console.error('DeckLayer does not support SceneView at the moment. Use DeckRenderer instead.');\n return null;\n }\n });\n}\n", "/* eslint-disable no-invalid-this */\nimport { GL } from '@luma.gl/constants';\nimport { Model, Geometry } from '@luma.gl/engine';\nimport { Deck } from '@deck.gl/core';\nasync function createDeckInstance(gl) {\n return new Promise(resolve => {\n const deckInstance = new Deck({\n // Input is handled by the ArcGIS API for JavaScript.\n controller: false,\n // We use the same WebGL context as the ArcGIS API for JavaScript.\n gl,\n // We need depth testing in general; we don't know what layers might be added to the deck.\n parameters: {\n depthCompare: 'less-equal'\n },\n // To disable canvas resizing, since the FBO is owned by the ArcGIS API for JavaScript.\n width: null,\n height: null,\n onDeviceInitialized: (device) => {\n resolve({ deckInstance, device });\n }\n });\n });\n}\nexport async function initializeResources(gl) {\n const { deckInstance, device } = await createDeckInstance(gl);\n const texture = device.createTexture({\n format: 'rgba8unorm',\n width: 1,\n height: 1,\n sampler: {\n minFilter: 'linear',\n magFilter: 'linear',\n addressModeU: 'clamp-to-edge',\n addressModeV: 'clamp-to-edge'\n }\n });\n const model = new Model(device, {\n vs: `\\\n#version 300 es\nin vec2 pos;\nout vec2 v_texcoord;\nvoid main(void) {\n gl_Position = vec4(pos, 0.0, 1.0);\n v_texcoord = (pos + 1.0) / 2.0;\n}\n `,\n fs: `\\\n#version 300 es\nprecision mediump float;\nuniform sampler2D deckglTexture;\nin vec2 v_texcoord;\nout vec4 fragColor;\n\nvoid main(void) {\n vec4 imageColor = texture(deckglTexture, v_texcoord);\n imageColor.rgb *= imageColor.a;\n fragColor = imageColor;\n}\n `,\n bindings: {\n deckglTexture: texture\n },\n parameters: {\n depthWriteEnabled: true,\n depthCompare: 'less-equal',\n blendColorSrcFactor: 'one',\n blendColorDstFactor: 'one-minus-src-alpha',\n blendAlphaSrcFactor: 'one',\n blendAlphaDstFactor: 'one-minus-src-alpha',\n blendColorOperation: 'add',\n blendAlphaOperation: 'add'\n },\n geometry: new Geometry({\n topology: 'triangle-strip',\n attributes: {\n pos: { size: 2, value: new Int8Array([-1, -1, 1, -1, -1, 1, -1, 1, 1, 1, 1, -1]) }\n }\n }),\n vertexCount: 6\n });\n const fbo = device.createFramebuffer({\n id: 'deckfbo',\n width: 1,\n height: 1,\n colorAttachments: [texture],\n depthStencilAttachment: 'depth16unorm'\n });\n deckInstance.setProps({\n // This deck renders into an auxiliary framebuffer.\n _framebuffer: fbo,\n _customRender: redrawReason => {\n if (redrawReason === 'arcgis') {\n deckInstance._drawLayers(redrawReason);\n }\n else {\n this.redraw();\n }\n }\n });\n return { deck: deckInstance, texture, fbo, model };\n}\nexport function render(resources, viewport) {\n const { model, deck, fbo } = resources;\n const device = model.device;\n // @ts-ignore device.getParametersWebGL should return `any` not `void`?\n const screenFbo = device.getParametersWebGL(36006);\n const { width, height, ...viewState } = viewport;\n /* global window */\n const dpr = window.devicePixelRatio;\n const pixelWidth = Math.round(width * dpr);\n const pixelHeight = Math.round(height * dpr);\n fbo.resize({ width: pixelWidth, height: pixelHeight });\n deck.setProps({ viewState });\n // redraw deck immediately into deckFbo\n deck.redraw('arcgis');\n // We overlay the texture on top of the map using the full-screen quad.\n const textureToScreenPass = device.beginRenderPass({\n framebuffer: screenFbo,\n parameters: { viewport: [0, 0, pixelWidth, pixelHeight] },\n clearColor: false,\n clearDepth: false\n });\n try {\n model.draw(textureToScreenPass);\n }\n finally {\n textureToScreenPass.end();\n }\n}\nexport function finalizeResources(resources) {\n resources.deck.finalize();\n resources.model.destroy();\n resources.fbo.destroy();\n resources.texture.destroy();\n}\n", "import { initializeResources, render, finalizeResources } from \"./commons.js\";\nexport default function createDeckLayerView2D(BaseLayerViewGL2D) {\n return BaseLayerViewGL2D.createSubclass({\n properties: {\n cancelInitialization: null,\n resources: null\n },\n // Attach is called as soon as the layer view is ready to start rendering.\n async attach() {\n // We use a full-screen quad and shaders to composite the frame rendered\n // with deck.gl on top of the MapView. Composition uses the MapView context.\n const gl = this.context;\n let cancelled = false;\n this.cancelInitialization = () => (cancelled = true);\n const resources = await initializeResources.call(this, gl);\n // If the layer got detached while awaiting, do not proceed\n if (cancelled) {\n finalizeResources(resources);\n return;\n }\n this.resources = resources;\n // Update deck props\n this.layer.deck.on('change', props => resources.deck.setProps(props));\n // We need to start drawing the deck.gl layer immediately.\n resources.deck.setProps(this.layer.deck.toJSON());\n },\n redraw() {\n this.requestRender();\n },\n // Called when the layer must be destroyed.\n detach() {\n this.cancelInitialization?.();\n if (this.resources) {\n finalizeResources(this.resources);\n this.resources = null;\n }\n },\n // Called every time that the layer view must be rendered.\n render(renderParameters) {\n if (!this.resources) {\n return;\n }\n const [width, height] = this.view.state.size;\n // The view state must be kept in-sync with the MapView of the ArcGIS API.\n const state = renderParameters.state;\n render(this.resources, {\n width,\n height,\n latitude: this.view.center.latitude,\n longitude: this.view.center.longitude,\n zoom: this.view.featuresTilingScheme.scaleToLevel(state.scale),\n bearing: -state.rotation,\n pitch: 0\n });\n }\n });\n}\n", "/* eslint-disable no-invalid-this */\nimport { initializeResources, render, finalizeResources } from \"./commons.js\";\n/** Convert ArcGIS FOV to WebMercatorViewport altitude */\nfunction arcgisFOVToDeckAltitude(fov, aspectRatio) {\n // ArcGIS fov is corner-to-corner\n const D = Math.sqrt(1 + aspectRatio ** 2);\n const halfFOV = (fov / 2 / 180) * Math.PI;\n return D / 2 / Math.tan(halfFOV);\n}\nexport default function createDeckRenderer(DeckProps, externalRenderers) {\n class DeckRenderer {\n constructor(view, props) {\n this.resources = null;\n this.cancelInitialization = null;\n this.view = view;\n this.deck = new DeckProps(props);\n }\n async setup(context) {\n const gl = context.gl;\n let cancelled = false;\n this.cancelInitialization = () => (cancelled = true);\n const resources = await initializeResources.call(this, gl);\n // If the renderer got disposed while awaiting, do not proceed\n if (cancelled) {\n finalizeResources(resources);\n return;\n }\n this.deck.on('change', props => resources.deck.setProps(props));\n resources.deck.setProps(this.deck.toJSON());\n this.resources = resources;\n }\n dispose() {\n this.cancelInitialization?.();\n if (this.resources) {\n finalizeResources(this.resources);\n }\n }\n redraw() {\n externalRenderers.requestRender(this.view);\n }\n render() {\n const [width, height] = this.view.size;\n render(this.resources, {\n width,\n height,\n latitude: this.view.center.latitude,\n longitude: this.view.center.longitude,\n altitude: arcgisFOVToDeckAltitude(this.view.camera.fov, width / height),\n zoom: this.view.zoom,\n bearing: this.view.camera.heading,\n pitch: this.view.camera.tilt\n });\n }\n }\n return DeckRenderer;\n}\n", "import createDeckProps from \"./deck-props.js\";\nimport createDeckLayer from \"./deck-layer.js\";\nimport createDeckLayerView2D from \"./deck-layer-view-2d.js\";\nimport createDeckRenderer from \"./deck-renderer.js\";\nimport { loadModules as esriLoaderLoadModules } from 'esri-loader';\nlet arcGIS;\nexport async function loadArcGISModules(modules, loadScriptOptions) {\n const namespace = Array.isArray(modules) ? null : modules;\n await loadArcGISModule(namespace, loadScriptOptions);\n if (Array.isArray(modules)) {\n return esriLoaderLoadModules(modules, loadScriptOptions).then(array => {\n return { ...arcGIS, modules: array };\n });\n }\n return arcGIS;\n}\nasync function loadArcGISModule(esri, loadScriptOptions) {\n if (arcGIS) {\n // Already loaded\n return arcGIS;\n }\n if (esri) {\n // Using user-provided dependencies\n // Right now this object has to be manually assembled - let @arcgis/webpack-plugin handle this?\n const Layer = esri.layers.Layer;\n const Accessor = esri.core.Accessor;\n const BaseLayerViewGL2D = esri.views['2d'].layers.BaseLayerViewGL2D;\n const externalRenderers = esri.views['3d'].externalRenderers;\n return initialize(Layer, Accessor, BaseLayerViewGL2D, externalRenderers);\n }\n const [Layer, Accessor, BaseLayerViewGL2D, externalRenderers] = await esriLoaderLoadModules([\n 'esri/layers/Layer',\n 'esri/core/Accessor',\n 'esri/views/2d/layers/BaseLayerViewGL2D',\n 'esri/views/3d/externalRenderers'\n ], loadScriptOptions);\n return initialize(Layer, Accessor, BaseLayerViewGL2D, externalRenderers);\n}\nfunction initialize(Layer, Accessor, BaseLayerViewGL2D, externalRenderers) {\n const DeckProps = createDeckProps(Accessor);\n const DeckLayerView2D = createDeckLayerView2D(BaseLayerViewGL2D);\n const DeckLayer = createDeckLayer(DeckProps, Layer, DeckLayerView2D);\n const DeckRenderer = createDeckRenderer(DeckProps, externalRenderers);\n arcGIS = { DeckLayer, DeckRenderer };\n return arcGIS;\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["Accessor", "DeckProps", "DeckProps", "Layer", "DeckLayerView2D", "BaseLayerViewGL2D", "DeckProps", "externalRenderers", "DeckRenderer", "esriLoaderLoadModules", "Layer", "Accessor", "BaseLayerViewGL2D", "externalRenderers", "DeckProps", "DeckLayerView2D", "DeckLayer", "DeckRenderer", "Accessor", "BaseLayerViewGL2D", "Layer"]
7
7
  }
package/dist/index.d.ts CHANGED
@@ -5,7 +5,8 @@ export declare const DeckRenderer: {
5
5
  view: __esri.SceneView;
6
6
  deck: any;
7
7
  resources: import("./commons").RenderResources | null;
8
- setup(context: any): void;
8
+ cancelInitialization: (() => void) | null;
9
+ setup(context: any): Promise<void>;
9
10
  dispose(): void;
10
11
  redraw(): void;
11
12
  render(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAWA,OAAO,EAAC,iBAAiB,EAAC,0BAAuB;AAKjD,eAAO,MAAM,SAAS,KAAqD,CAAC;AAC5E,eAAO,MAAM,YAAY;;;;;;;;;;CAAmD,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAWA,OAAO,EAAC,iBAAiB,EAAC,0BAAuB;AAKjD,eAAO,MAAM,SAAS,KAAqD,CAAC;AAC5E,eAAO,MAAM,YAAY;;;;;;;;;;;CAAmD,CAAC"}