@deck.gl/carto 9.0.36 → 9.0.38

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.
@@ -1008,7 +1008,7 @@
1008
1008
  }
1009
1009
 
1010
1010
  // src/layers/schema/carto-raster-tile-loader.ts
1011
- var VERSION = true ? "9.0.36" : "latest";
1011
+ var VERSION = true ? "9.0.38" : "latest";
1012
1012
  var id = "cartoRasterTile";
1013
1013
  var DEFAULT_OPTIONS = {
1014
1014
  cartoRasterTile: {
@@ -1397,7 +1397,7 @@
1397
1397
  }
1398
1398
 
1399
1399
  // src/layers/schema/carto-spatial-tile-loader.ts
1400
- var VERSION = true ? "9.0.36" : "latest";
1400
+ var VERSION = true ? "9.0.38" : "latest";
1401
1401
  var id = "cartoSpatialTile";
1402
1402
  var DEFAULT_OPTIONS = {
1403
1403
  cartoSpatialTile: {
@@ -1625,7 +1625,7 @@
1625
1625
  }
1626
1626
 
1627
1627
  // src/layers/schema/carto-vector-tile-loader.ts
1628
- var VERSION = true ? "9.0.36" : "latest";
1628
+ var VERSION = true ? "9.0.38" : "latest";
1629
1629
  var id = "cartoVectorTile";
1630
1630
  var DEFAULT_OPTIONS = {
1631
1631
  cartoVectorTile: {
package/dist/dist.dev.js CHANGED
@@ -8524,8 +8524,25 @@ vec4 heatmap_sampleColor(sampler2D source, vec2 texSize, vec2 texCoord) {
8524
8524
  });
8525
8525
  this.internalState.renderInProgress = false;
8526
8526
  }
8527
+ _finalize() {
8528
+ this.internalState.renderBuffers.forEach((fbo) => {
8529
+ fbo.destroy();
8530
+ });
8531
+ this.internalState.renderBuffers = null;
8532
+ this.internalState.postProcess.cleanup();
8533
+ }
8527
8534
  }, _a.layerName = `PostProcess${BaseLayer.layerName}`, _a;
8528
8535
  }
8536
+ var fs2 = `vec4 copy_filterColor(vec4 color, vec2 texSize, vec2 texCoord) {
8537
+ return color;
8538
+ }
8539
+ `;
8540
+ var copy = {
8541
+ name: "copy",
8542
+ fs: fs2,
8543
+ getUniforms: () => ({}),
8544
+ passes: [{ filter: true }]
8545
+ };
8529
8546
 
8530
8547
  // src/layers/quadbin-tile-layer.ts
8531
8548
  var import_core10 = __toESM(require_core2(), 1);
@@ -9019,12 +9036,14 @@ out vec4 position_commonspace;
9019
9036
 
9020
9037
  void main(void) {
9021
9038
  // Rather than positioning using attribute, layout pixel grid using gl_InstanceID
9022
- vec2 common_position = offset.xy;
9039
+ vec2 tileOrigin = offset.xy;
9023
9040
  float scale = offset.z;
9024
9041
 
9025
9042
  int yIndex = - (gl_InstanceID / BLOCK_WIDTH);
9026
9043
  int xIndex = gl_InstanceID + (yIndex * BLOCK_WIDTH);
9027
- common_position += scale * vec2(float(xIndex), float(yIndex - 1));
9044
+
9045
+ // Avoid precision issues by applying 0.5 offset here, rather than when laying out vertices
9046
+ vec2 cellCenter = scale * vec2(float(xIndex) + 0.5, float(yIndex) - 0.5);
9028
9047
 
9029
9048
  vec4 color = isStroke ? instanceLineColors : instanceFillColors;
9030
9049
 
@@ -9035,7 +9054,7 @@ void main(void) {
9035
9054
  // Get position directly from quadbin, rather than projecting
9036
9055
  // Important to set geometry.position before using project_ methods below
9037
9056
  // as geometry.worldPosition is not set (we don't know our lat/long)
9038
- geometry.position = vec4(common_position, 0.0, 1.0);
9057
+ geometry.position = vec4(tileOrigin + cellCenter, 0.0, 1.0);
9039
9058
  if (project_uProjectionMode == PROJECTION_MODE_WEB_MERCATOR_AUTO_OFFSET) {
9040
9059
  geometry.position.xyz -= project_uCommonOrigin;
9041
9060
  }
@@ -9059,12 +9078,12 @@ void main(void) {
9059
9078
 
9060
9079
  geometry.pickingColor = instancePickingColors;
9061
9080
 
9062
- // project center of column
9063
- vec2 offset = (vec2(0.5) + positions.xy * strokeOffsetRatio) * cellWidth * shouldRender;
9064
- vec3 pos = vec3(offset, project_size(elevation));
9065
- DECKGL_FILTER_SIZE(pos, geometry);
9081
+ // Cell coordinates centered on origin
9082
+ vec2 base = positions.xy * scale * strokeOffsetRatio * coverage * shouldRender;
9083
+ vec3 cell = vec3(base, project_size(elevation));
9084
+ DECKGL_FILTER_SIZE(cell, geometry);
9066
9085
 
9067
- geometry.position.xyz += pos;
9086
+ geometry.position.xyz += cell;
9068
9087
  gl_Position = project_common_position_to_clipspace(geometry.position);
9069
9088
 
9070
9089
  geometry.normal = project_normal(normals);
@@ -9099,7 +9118,7 @@ void main(void) {
9099
9118
  [-0.5, 0.5]
9100
9119
  ]
9101
9120
  };
9102
- var RasterColumnLayer = class extends import_layers4.ColumnLayer {
9121
+ var RasterColumnLayer = class extends RTTModifier(import_layers4.ColumnLayer) {
9103
9122
  getShaders() {
9104
9123
  const shaders = super.getShaders();
9105
9124
  const data = this.props.data;
@@ -9171,7 +9190,15 @@ void main(void) {
9171
9190
  dataComparator: wrappedDataComparator,
9172
9191
  offset,
9173
9192
  highlightedObjectIndex,
9174
- highlightColor
9193
+ highlightColor,
9194
+ parameters: {
9195
+ blendColorSrcFactor: "one",
9196
+ blendAlphaSrcFactor: "one",
9197
+ blendColorDstFactor: "zero",
9198
+ blendAlphaDstFactor: "zero",
9199
+ blendColorOperation: "add",
9200
+ blendAlphaOperation: "add"
9201
+ }
9175
9202
  }
9176
9203
  );
9177
9204
  }
@@ -9227,8 +9254,17 @@ void main(void) {
9227
9254
  };
9228
9255
  var defaultProps9 = {
9229
9256
  data: TilejsonPropType,
9257
+ refinementStrategy: "no-overlap",
9230
9258
  tileSize: DEFAULT_TILE_SIZE
9231
9259
  };
9260
+ var PostProcessTileLayer = class extends PostProcessModifier(import_geo_layers7.TileLayer, copy) {
9261
+ filterSubLayer(context) {
9262
+ const { tile } = context.layer.props;
9263
+ if (!tile)
9264
+ return true;
9265
+ return super.filterSubLayer(context);
9266
+ }
9267
+ };
9232
9268
  var RasterTileLayer = class extends import_core14.CompositeLayer {
9233
9269
  getLoadOptions() {
9234
9270
  const loadOptions = super.getLoadOptions() || {};
@@ -9241,7 +9277,7 @@ void main(void) {
9241
9277
  if (!tileJSON)
9242
9278
  return null;
9243
9279
  const { tiles: data, minzoom: minZoom, maxzoom: maxZoom } = tileJSON;
9244
- const SubLayerClass = this.getSubLayerClass("tile", import_geo_layers7.TileLayer);
9280
+ const SubLayerClass = this.getSubLayerClass("tile", PostProcessTileLayer);
9245
9281
  return new SubLayerClass(this.props, {
9246
9282
  id: `raster-tile-layer-${this.props.id}`,
9247
9283
  data,
@@ -10199,12 +10235,12 @@ ${formatErrorKey(key)}: ${errorContext[key]}`;
10199
10235
  return initRange.apply(rescale(), arguments);
10200
10236
  }
10201
10237
  function pointish(scale) {
10202
- var copy2 = scale.copy;
10238
+ var copy3 = scale.copy;
10203
10239
  scale.padding = scale.paddingOuter;
10204
10240
  delete scale.paddingInner;
10205
10241
  delete scale.paddingOuter;
10206
10242
  scale.copy = function() {
10207
- return pointish(copy2());
10243
+ return pointish(copy3());
10208
10244
  };
10209
10245
  return scale;
10210
10246
  }
@@ -10840,7 +10876,7 @@ ${formatErrorKey(key)}: ${errorContext[key]}`;
10840
10876
  return r[i2](d[i2](x));
10841
10877
  };
10842
10878
  }
10843
- function copy(source, target) {
10879
+ function copy2(source, target) {
10844
10880
  return target.domain(source.domain()).range(source.range()).interpolate(source.interpolate()).clamp(source.clamp()).unknown(source.unknown());
10845
10881
  }
10846
10882
  function transformer() {
@@ -11224,7 +11260,7 @@ ${formatErrorKey(key)}: ${errorContext[key]}`;
11224
11260
  function linear2() {
11225
11261
  var scale = continuous();
11226
11262
  scale.copy = function() {
11227
- return copy(scale, linear2());
11263
+ return copy2(scale, linear2());
11228
11264
  };
11229
11265
  initRange.apply(scale, arguments);
11230
11266
  return linearish(scale);
@@ -11364,7 +11400,7 @@ ${formatErrorKey(key)}: ${errorContext[key]}`;
11364
11400
  }
11365
11401
  function log5() {
11366
11402
  const scale = loggish(transformer()).domain([1, 10]);
11367
- scale.copy = () => copy(scale, log5()).base(scale.base());
11403
+ scale.copy = () => copy2(scale, log5()).base(scale.base());
11368
11404
  initRange.apply(scale, arguments);
11369
11405
  return scale;
11370
11406
  }
@@ -11394,7 +11430,7 @@ ${formatErrorKey(key)}: ${errorContext[key]}`;
11394
11430
  function pow() {
11395
11431
  var scale = powish(transformer());
11396
11432
  scale.copy = function() {
11397
- return copy(scale, pow()).exponent(scale.exponent());
11433
+ return copy2(scale, pow()).exponent(scale.exponent());
11398
11434
  };
11399
11435
  initRange.apply(scale, arguments);
11400
11436
  return scale;
package/dist/index.cjs CHANGED
@@ -551,7 +551,7 @@ function binaryToSpatialjson(binary) {
551
551
  }
552
552
 
553
553
  // dist/layers/schema/carto-spatial-tile-loader.js
554
- var VERSION = true ? "9.0.36" : "latest";
554
+ var VERSION = true ? "9.0.38" : "latest";
555
555
  var id = "cartoSpatialTile";
556
556
  var DEFAULT_OPTIONS = {
557
557
  cartoSpatialTile: {
@@ -916,7 +916,7 @@ var TileReader3 = class {
916
916
  };
917
917
 
918
918
  // dist/layers/schema/carto-raster-tile-loader.js
919
- var VERSION2 = true ? "9.0.36" : "latest";
919
+ var VERSION2 = true ? "9.0.38" : "latest";
920
920
  var id2 = "cartoRasterTile";
921
921
  var DEFAULT_OPTIONS2 = {
922
922
  cartoRasterTile: {
@@ -1266,8 +1266,25 @@ function PostProcessModifier(BaseLayer, effect) {
1266
1266
  });
1267
1267
  this.internalState.renderInProgress = false;
1268
1268
  }
1269
+ _finalize() {
1270
+ this.internalState.renderBuffers.forEach((fbo) => {
1271
+ fbo.destroy();
1272
+ });
1273
+ this.internalState.renderBuffers = null;
1274
+ this.internalState.postProcess.cleanup();
1275
+ }
1269
1276
  }, _a.layerName = `PostProcess${BaseLayer.layerName}`, _a;
1270
1277
  }
1278
+ var fs2 = `vec4 copy_filterColor(vec4 color, vec2 texSize, vec2 texCoord) {
1279
+ return color;
1280
+ }
1281
+ `;
1282
+ var copy = {
1283
+ name: "copy",
1284
+ fs: fs2,
1285
+ getUniforms: () => ({}),
1286
+ passes: [{ filter: true }]
1287
+ };
1271
1288
 
1272
1289
  // dist/layers/quadbin-tile-layer.js
1273
1290
  var import_core10 = require("@deck.gl/core");
@@ -1704,15 +1721,15 @@ out vec4 vColor;
1704
1721
  out vec4 position_commonspace;
1705
1722
  #endif
1706
1723
  void main(void) {
1707
- vec2 common_position = offset.xy;
1724
+ vec2 tileOrigin = offset.xy;
1708
1725
  float scale = offset.z;
1709
1726
  int yIndex = - (gl_InstanceID / BLOCK_WIDTH);
1710
1727
  int xIndex = gl_InstanceID + (yIndex * BLOCK_WIDTH);
1711
- common_position += scale * vec2(float(xIndex), float(yIndex - 1));
1728
+ vec2 cellCenter = scale * vec2(float(xIndex) + 0.5, float(yIndex) - 0.5);
1712
1729
  vec4 color = isStroke ? instanceLineColors : instanceFillColors;
1713
1730
  float shouldRender = float(color.a > 0.0 && instanceElevations >= 0.0);
1714
1731
  float cellWidth = coverage * scale;
1715
- geometry.position = vec4(common_position, 0.0, 1.0);
1732
+ geometry.position = vec4(tileOrigin + cellCenter, 0.0, 1.0);
1716
1733
  if (project_uProjectionMode == PROJECTION_MODE_WEB_MERCATOR_AUTO_OFFSET) {
1717
1734
  geometry.position.xyz -= project_uCommonOrigin;
1718
1735
  }
@@ -1729,10 +1746,10 @@ strokeOffsetRatio -= halfOffset;
1729
1746
  }
1730
1747
  }
1731
1748
  geometry.pickingColor = instancePickingColors;
1732
- vec2 offset = (vec2(0.5) + positions.xy * strokeOffsetRatio) * cellWidth * shouldRender;
1733
- vec3 pos = vec3(offset, project_size(elevation));
1734
- DECKGL_FILTER_SIZE(pos, geometry);
1735
- geometry.position.xyz += pos;
1749
+ vec2 base = positions.xy * scale * strokeOffsetRatio * coverage * shouldRender;
1750
+ vec3 cell = vec3(base, project_size(elevation));
1751
+ DECKGL_FILTER_SIZE(cell, geometry);
1752
+ geometry.position.xyz += cell;
1736
1753
  gl_Position = project_common_position_to_clipspace(geometry.position);
1737
1754
  geometry.normal = project_normal(normals);
1738
1755
  DECKGL_FILTER_GL_POSITION(gl_Position, geometry);
@@ -1763,7 +1780,7 @@ var defaultProps8 = {
1763
1780
  [-0.5, 0.5]
1764
1781
  ]
1765
1782
  };
1766
- var RasterColumnLayer = class extends import_layers4.ColumnLayer {
1783
+ var RasterColumnLayer = class extends RTTModifier(import_layers4.ColumnLayer) {
1767
1784
  getShaders() {
1768
1785
  const shaders = super.getShaders();
1769
1786
  const data = this.props.data;
@@ -1824,7 +1841,15 @@ var RasterLayer = class extends import_core13.CompositeLayer {
1824
1841
  dataComparator: wrappedDataComparator,
1825
1842
  offset,
1826
1843
  highlightedObjectIndex,
1827
- highlightColor
1844
+ highlightColor,
1845
+ parameters: {
1846
+ blendColorSrcFactor: "one",
1847
+ blendAlphaSrcFactor: "one",
1848
+ blendColorDstFactor: "zero",
1849
+ blendAlphaDstFactor: "zero",
1850
+ blendColorOperation: "add",
1851
+ blendAlphaOperation: "add"
1852
+ }
1828
1853
  });
1829
1854
  }
1830
1855
  getSubLayerAccessor(accessor) {
@@ -1881,8 +1906,17 @@ var renderSubLayers3 = (props) => {
1881
1906
  };
1882
1907
  var defaultProps9 = {
1883
1908
  data: TilejsonPropType,
1909
+ refinementStrategy: "no-overlap",
1884
1910
  tileSize: DEFAULT_TILE_SIZE
1885
1911
  };
1912
+ var PostProcessTileLayer = class extends PostProcessModifier(import_geo_layers7.TileLayer, copy) {
1913
+ filterSubLayer(context) {
1914
+ const { tile } = context.layer.props;
1915
+ if (!tile)
1916
+ return true;
1917
+ return super.filterSubLayer(context);
1918
+ }
1919
+ };
1886
1920
  var RasterTileLayer = class extends import_core14.CompositeLayer {
1887
1921
  getLoadOptions() {
1888
1922
  const loadOptions = super.getLoadOptions() || {};
@@ -1895,7 +1929,7 @@ var RasterTileLayer = class extends import_core14.CompositeLayer {
1895
1929
  if (!tileJSON)
1896
1930
  return null;
1897
1931
  const { tiles: data, minzoom: minZoom, maxzoom: maxZoom } = tileJSON;
1898
- const SubLayerClass = this.getSubLayerClass("tile", import_geo_layers7.TileLayer);
1932
+ const SubLayerClass = this.getSubLayerClass("tile", PostProcessTileLayer);
1899
1933
  return new SubLayerClass(this.props, {
1900
1934
  id: `raster-tile-layer-${this.props.id}`,
1901
1935
  data,
@@ -1952,7 +1986,7 @@ var carto_properties_tile_loader_default = CartoPropertiesTileLoader;
1952
1986
 
1953
1987
  // dist/layers/schema/carto-vector-tile-loader.js
1954
1988
  var import_earcut = __toESM(require("earcut"), 1);
1955
- var VERSION3 = true ? "9.0.36" : "latest";
1989
+ var VERSION3 = true ? "9.0.38" : "latest";
1956
1990
  var id3 = "cartoVectorTile";
1957
1991
  var DEFAULT_OPTIONS3 = {
1958
1992
  cartoVectorTile: {