geojs 1.10.1 → 1.10.4

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/CHANGELOG.md CHANGED
@@ -1,5 +1,23 @@
1
1
  # GeoJS Change Log
2
2
 
3
+ ## Version 1.10.3
4
+
5
+ ### Performance improvements
6
+
7
+ - Reduce the time it takes to switch texture interpolation ([#1230](../../pull/1230))
8
+
9
+ ## Version 1.10.2
10
+
11
+ ### Improvements
12
+
13
+ - Directly support nearest pixel or bicubic on quad interpolation ([#1229](../../pull/1229))
14
+
15
+ ## Version 1.10.1
16
+
17
+ ### Improvements
18
+
19
+ - Make clamping at the end of a map transition optional ([#1226](../../pull/1226))
20
+
3
21
  ## Version 1.10.0
4
22
 
5
23
  ### Features
package/geo.js CHANGED
@@ -8017,6 +8017,17 @@ var canvas_quadFeature = function canvas_quadFeature(arg) {
8017
8017
 
8018
8018
  var oldAlpha = context2d.globalAlpha;
8019
8019
  var opacity = oldAlpha;
8020
+ var nearestPixel = m_this.nearestPixel();
8021
+
8022
+ if (nearestPixel !== undefined) {
8023
+ if (nearestPixel !== true && util.isNonNullFinite(nearestPixel)) {
8024
+ var curZoom = m_this.layer().map().zoom();
8025
+ nearestPixel = curZoom >= nearestPixel;
8026
+ }
8027
+
8028
+ context2d.imageSmoothingEnabled = !nearestPixel;
8029
+ }
8030
+
8020
8031
  $.each([m_quads.imgQuads, m_quads.vidQuads], function (listidx, quadlist) {
8021
8032
  if (!quadlist) {
8022
8033
  return;
@@ -8086,6 +8097,7 @@ var canvas_quadFeature = function canvas_quadFeature(arg) {
8086
8097
  }
8087
8098
 
8088
8099
  context2d.setTransform(1, 0, 0, 1, 0, 0);
8100
+ context2d.imageSmoothingEnabled = true;
8089
8101
  };
8090
8102
  /**
8091
8103
  * If this returns true, the render will be skipped and tried again on the
@@ -8544,6 +8556,10 @@ var canvas_tileLayer = function canvas_tileLayer() {
8544
8556
  this._update = function (request) {
8545
8557
  s_update.call(m_this, request);
8546
8558
 
8559
+ if (m_quadFeature && m_quadFeature.nearestPixel) {
8560
+ m_quadFeature.nearestPixel(m_this.nearestPixel());
8561
+ }
8562
+
8547
8563
  m_this._addBaseQuadToTiles(m_quadFeature, m_tiles);
8548
8564
 
8549
8565
  return m_this;
@@ -18628,6 +18644,10 @@ var map = function map(arg) {
18628
18644
  m_autoshareRenderer = arg === null ? undefined : arg;
18629
18645
  return m_this;
18630
18646
  };
18647
+ /* Report the current version on the map object. */
18648
+
18649
+
18650
+ this._version = __webpack_require__(2978);
18631
18651
  /**
18632
18652
  * Draw a layer image to a canvas context. The layer's opacity and transform
18633
18653
  * are applied. This is used as part of making a screenshot.
@@ -18641,7 +18661,6 @@ var map = function map(arg) {
18641
18661
  * @private
18642
18662
  */
18643
18663
 
18644
-
18645
18664
  function drawLayerImageToContext(context, opacity, elem, img, mixBlendMode) {
18646
18665
  context.globalAlpha = opacity;
18647
18666
 
@@ -24200,6 +24219,7 @@ var pixelmapLayer = function pixelmapLayer(arg) {
24200
24219
  this._init = function () {
24201
24220
  // Call super class init
24202
24221
  s_init.apply(m_this, arguments);
24222
+ m_this.nearestPixel(true, true);
24203
24223
  var pixelmapArgs = {
24204
24224
  quadFeature: m_this.features()[0]
24205
24225
  };
@@ -26010,6 +26030,10 @@ var feature = __webpack_require__(6837);
26010
26030
  * call `cacheUpdate` on the data item or for all data.
26011
26031
  * @property {geo.quadFeature.styleSpec} [style] Style object with default
26012
26032
  * style options.
26033
+ * @property {boolean|number} [nearestPixel] If true, image quads are
26034
+ * rendered with near-neighbor sampling. If false, with interpolated
26035
+ * sampling. If a number, interpolate at that zoom level or below and
26036
+ * nearest neighbor at that zoom level or above.
26013
26037
  */
26014
26038
 
26015
26039
  /**
@@ -26073,6 +26097,7 @@ var quadFeature = function quadFeature(arg) {
26073
26097
  var m_this = this,
26074
26098
  s_init = this._init,
26075
26099
  m_cacheQuads,
26100
+ m_nearestPixel = arg.nearestPixel,
26076
26101
  m_nextQuadId = 0,
26077
26102
  m_images = [],
26078
26103
  m_videos = [],
@@ -26755,6 +26780,27 @@ var quadFeature = function quadFeature(arg) {
26755
26780
 
26756
26781
  return null;
26757
26782
  };
26783
+ /**
26784
+ * Get/Set nearestPixel value.
26785
+ *
26786
+ * @param {boolean|number} [val] If not specified, return the current value.
26787
+ * If true, image quads are rendered with near-neighbor sampling. If
26788
+ * false, with interpolated sampling. If a number, interpolate at that
26789
+ * zoom level or below and nearest neighbor at that zoom level or above.
26790
+ * @returns {boolean|number|this}
26791
+ */
26792
+
26793
+
26794
+ this.nearestPixel = function (val) {
26795
+ if (val === undefined) {
26796
+ return m_nearestPixel;
26797
+ } else {
26798
+ m_nearestPixel = val;
26799
+ m_this.modified();
26800
+ }
26801
+
26802
+ return m_this;
26803
+ };
26758
26804
  /**
26759
26805
  * Initialize.
26760
26806
  *
@@ -27823,7 +27869,7 @@ module.exports = sceneObject;
27823
27869
  * @constant
27824
27870
  * @type {string}
27825
27871
  */
27826
- module.exports = "b37bd8311e8146b64ad199fccd0b4a5404d78157";
27872
+ module.exports = "3e924c64da3ad1b47324b2d5106e85db1bf1d809";
27827
27873
 
27828
27874
  /***/ }),
27829
27875
 
@@ -30731,6 +30777,10 @@ var featureLayer = __webpack_require__(3715);
30731
30777
  * any tile layers. If specified, this uses the quad defaults, so this is a
30732
30778
  * ``geo.quadFeature.position`` object with, typically, an ``image`` property
30733
30779
  * added to it. The quad positions are in the map gcs coordinates.
30780
+ * @property {boolean|number} [nearestPixel] If true, image quads are
30781
+ * rendered with near-neighbor sampling. If false, with interpolated
30782
+ * sampling. If a number, interpolate at that zoom level or below and
30783
+ * nearest neighbor at that zoom level or above.
30734
30784
  */
30735
30785
 
30736
30786
  /**
@@ -30894,6 +30944,7 @@ var tileLayer = function tileLayer(arg) {
30894
30944
  m_reference,
30895
30945
  m_exited,
30896
30946
  m_lastBaseQuad,
30947
+ m_nearestPixel = arg.nearestPixel,
30897
30948
  m_this = this; // copy the options into a private variable
30898
30949
 
30899
30950
  this._options = $.extend(true, {}, arg); // set the layer attribution text
@@ -32535,6 +32586,36 @@ var tileLayer = function tileLayer(arg) {
32535
32586
 
32536
32587
  return m_this;
32537
32588
  };
32589
+ /**
32590
+ * Get/Set nearestPixel value.
32591
+ *
32592
+ * @param {boolean|number} [val] If not specified, return the current value.
32593
+ * If true, image quads are rendered with near-neighbor sampling. If
32594
+ * false, with interpolated sampling. If a number, interpolate at that
32595
+ * zoom level or below and nearest neighbor at that zoom level or above.
32596
+ * @param {boolean} [skipUpdate] If specifying val and this value is truthy,
32597
+ * don't update the layer or mark it as modified.
32598
+ * @returns {boolean|number|this}
32599
+ */
32600
+
32601
+
32602
+ this.nearestPixel = function (val, skipUpdate) {
32603
+ if (val === undefined) {
32604
+ return m_nearestPixel;
32605
+ }
32606
+
32607
+ if (m_nearestPixel !== val) {
32608
+ m_nearestPixel = val;
32609
+
32610
+ if (!skipUpdate) {
32611
+ m_this.modified();
32612
+
32613
+ m_this._update();
32614
+ }
32615
+ }
32616
+
32617
+ return m_this;
32618
+ };
32538
32619
  /**
32539
32620
  * Get/set the baseQuad.
32540
32621
  *
@@ -40948,7 +41029,7 @@ module.exports = vectorFeature;
40948
41029
  * @constant
40949
41030
  * @type {string}
40950
41031
  */
40951
- module.exports = "1.10.1";
41032
+ module.exports = "1.10.4";
40952
41033
 
40953
41034
  /***/ }),
40954
41035
 
@@ -43942,7 +44023,8 @@ var webgl_pixelmapFeature = function webgl_pixelmapFeature(arg) {
43942
44023
  m_quadFeature = m_this.layer().createFeature('quad', {
43943
44024
  selectionAPI: false,
43944
44025
  gcs: m_this.gcs(),
43945
- visible: m_this.visible(undefined, true)
44026
+ visible: m_this.visible(undefined, true),
44027
+ nearestPixel: true
43946
44028
  });
43947
44029
  m_quadFeatureInit = false;
43948
44030
  }
@@ -43964,11 +44046,6 @@ var webgl_pixelmapFeature = function webgl_pixelmapFeature(arg) {
43964
44046
  };
43965
44047
 
43966
44048
  m_quadFeature._hookRenderImageQuads = function (renderState, quads) {
43967
- quads.forEach(function (quad) {
43968
- if (quad.image && quad.texture && !quad.texture.nearestPixel()) {
43969
- quad.texture.setNearestPixel(true);
43970
- }
43971
- });
43972
44049
  m_lookupTable.bind(renderState, quads);
43973
44050
  };
43974
44051
 
@@ -44002,6 +44079,10 @@ var webgl_pixelmapFeature = function webgl_pixelmapFeature(arg) {
44002
44079
 
44003
44080
  if (arg.quadFeature) {
44004
44081
  m_quadFeature = arg.quadFeature;
44082
+
44083
+ if (m_quadFeature.nearestPixel) {
44084
+ m_quadFeature.nearestPixel(true);
44085
+ }
44005
44086
  }
44006
44087
 
44007
44088
  this._init(arg);
@@ -45204,6 +45285,8 @@ var quadFeature = __webpack_require__(5017);
45204
45285
 
45205
45286
  var timestamp = __webpack_require__(6618);
45206
45287
 
45288
+ var util = __webpack_require__(4634);
45289
+
45207
45290
  var _memoryCheckLargestTested = 4096 * 4096;
45208
45291
  /**
45209
45292
  * Create a new instance of class quadFeature.
@@ -45608,6 +45691,34 @@ var webgl_quadFeature = function webgl_quadFeature(arg) {
45608
45691
  h,
45609
45692
  quadw,
45610
45693
  quadh;
45694
+ var nearestPixel = m_this.nearestPixel();
45695
+
45696
+ if (nearestPixel !== undefined) {
45697
+ if (nearestPixel !== true && util.isNonNullFinite(nearestPixel)) {
45698
+ var curZoom = m_this.layer().map().zoom();
45699
+ nearestPixel = curZoom >= nearestPixel;
45700
+ }
45701
+
45702
+ m_quads.imgQuads.forEach(function (quad) {
45703
+ if (quad.image && quad.texture && quad.texture.nearestPixel() !== nearestPixel) {
45704
+ /* This could just be
45705
+ * quad.texture.setNearestPixel(nearestPixel);
45706
+ * but that needlessly redecodes the image. Instead, just change the
45707
+ * the interpolation flags, then change the nearestPixel value
45708
+ * without triggering a complete re-setup. */
45709
+ renderState.m_context.bindTexture(vgl.GL.TEXTURE_2D, quad.texture.textureHandle());
45710
+ renderState.m_context.texParameteri(vgl.GL.TEXTURE_2D, vgl.GL.TEXTURE_MIN_FILTER, nearestPixel ? vgl.GL.NEAREST : vgl.GL.LINEAR);
45711
+ renderState.m_context.texParameteri(vgl.GL.TEXTURE_2D, vgl.GL.TEXTURE_MAG_FILTER, nearestPixel ? vgl.GL.NEAREST : vgl.GL.LINEAR);
45712
+ renderState.m_context.bindTexture(vgl.GL.TEXTURE_2D, null);
45713
+ var oldmod = quad.texture.modified;
45714
+
45715
+ quad.texture.modified = function () {};
45716
+
45717
+ quad.texture.setNearestPixel(nearestPixel);
45718
+ quad.texture.modified = oldmod;
45719
+ }
45720
+ });
45721
+ }
45611
45722
 
45612
45723
  if (m_this._hookRenderImageQuads) {
45613
45724
  m_this._hookRenderImageQuads(renderState, m_quads.imgQuads);
@@ -46002,6 +46113,10 @@ var webgl_tileLayer = function webgl_tileLayer() {
46002
46113
  this._update = function (request) {
46003
46114
  s_update.call(m_this, request);
46004
46115
 
46116
+ if (m_quadFeature && m_quadFeature.nearestPixel) {
46117
+ m_quadFeature.nearestPixel(m_this.nearestPixel());
46118
+ }
46119
+
46005
46120
  m_this._addBaseQuadToTiles(m_quadFeature, m_tiles);
46006
46121
 
46007
46122
  return m_this;
package/geo.lean.js CHANGED
@@ -8017,6 +8017,17 @@ var canvas_quadFeature = function canvas_quadFeature(arg) {
8017
8017
 
8018
8018
  var oldAlpha = context2d.globalAlpha;
8019
8019
  var opacity = oldAlpha;
8020
+ var nearestPixel = m_this.nearestPixel();
8021
+
8022
+ if (nearestPixel !== undefined) {
8023
+ if (nearestPixel !== true && util.isNonNullFinite(nearestPixel)) {
8024
+ var curZoom = m_this.layer().map().zoom();
8025
+ nearestPixel = curZoom >= nearestPixel;
8026
+ }
8027
+
8028
+ context2d.imageSmoothingEnabled = !nearestPixel;
8029
+ }
8030
+
8020
8031
  $.each([m_quads.imgQuads, m_quads.vidQuads], function (listidx, quadlist) {
8021
8032
  if (!quadlist) {
8022
8033
  return;
@@ -8086,6 +8097,7 @@ var canvas_quadFeature = function canvas_quadFeature(arg) {
8086
8097
  }
8087
8098
 
8088
8099
  context2d.setTransform(1, 0, 0, 1, 0, 0);
8100
+ context2d.imageSmoothingEnabled = true;
8089
8101
  };
8090
8102
  /**
8091
8103
  * If this returns true, the render will be skipped and tried again on the
@@ -8544,6 +8556,10 @@ var canvas_tileLayer = function canvas_tileLayer() {
8544
8556
  this._update = function (request) {
8545
8557
  s_update.call(m_this, request);
8546
8558
 
8559
+ if (m_quadFeature && m_quadFeature.nearestPixel) {
8560
+ m_quadFeature.nearestPixel(m_this.nearestPixel());
8561
+ }
8562
+
8547
8563
  m_this._addBaseQuadToTiles(m_quadFeature, m_tiles);
8548
8564
 
8549
8565
  return m_this;
@@ -18628,6 +18644,10 @@ var map = function map(arg) {
18628
18644
  m_autoshareRenderer = arg === null ? undefined : arg;
18629
18645
  return m_this;
18630
18646
  };
18647
+ /* Report the current version on the map object. */
18648
+
18649
+
18650
+ this._version = __webpack_require__(2978);
18631
18651
  /**
18632
18652
  * Draw a layer image to a canvas context. The layer's opacity and transform
18633
18653
  * are applied. This is used as part of making a screenshot.
@@ -18641,7 +18661,6 @@ var map = function map(arg) {
18641
18661
  * @private
18642
18662
  */
18643
18663
 
18644
-
18645
18664
  function drawLayerImageToContext(context, opacity, elem, img, mixBlendMode) {
18646
18665
  context.globalAlpha = opacity;
18647
18666
 
@@ -24200,6 +24219,7 @@ var pixelmapLayer = function pixelmapLayer(arg) {
24200
24219
  this._init = function () {
24201
24220
  // Call super class init
24202
24221
  s_init.apply(m_this, arguments);
24222
+ m_this.nearestPixel(true, true);
24203
24223
  var pixelmapArgs = {
24204
24224
  quadFeature: m_this.features()[0]
24205
24225
  };
@@ -26010,6 +26030,10 @@ var feature = __webpack_require__(6837);
26010
26030
  * call `cacheUpdate` on the data item or for all data.
26011
26031
  * @property {geo.quadFeature.styleSpec} [style] Style object with default
26012
26032
  * style options.
26033
+ * @property {boolean|number} [nearestPixel] If true, image quads are
26034
+ * rendered with near-neighbor sampling. If false, with interpolated
26035
+ * sampling. If a number, interpolate at that zoom level or below and
26036
+ * nearest neighbor at that zoom level or above.
26013
26037
  */
26014
26038
 
26015
26039
  /**
@@ -26073,6 +26097,7 @@ var quadFeature = function quadFeature(arg) {
26073
26097
  var m_this = this,
26074
26098
  s_init = this._init,
26075
26099
  m_cacheQuads,
26100
+ m_nearestPixel = arg.nearestPixel,
26076
26101
  m_nextQuadId = 0,
26077
26102
  m_images = [],
26078
26103
  m_videos = [],
@@ -26755,6 +26780,27 @@ var quadFeature = function quadFeature(arg) {
26755
26780
 
26756
26781
  return null;
26757
26782
  };
26783
+ /**
26784
+ * Get/Set nearestPixel value.
26785
+ *
26786
+ * @param {boolean|number} [val] If not specified, return the current value.
26787
+ * If true, image quads are rendered with near-neighbor sampling. If
26788
+ * false, with interpolated sampling. If a number, interpolate at that
26789
+ * zoom level or below and nearest neighbor at that zoom level or above.
26790
+ * @returns {boolean|number|this}
26791
+ */
26792
+
26793
+
26794
+ this.nearestPixel = function (val) {
26795
+ if (val === undefined) {
26796
+ return m_nearestPixel;
26797
+ } else {
26798
+ m_nearestPixel = val;
26799
+ m_this.modified();
26800
+ }
26801
+
26802
+ return m_this;
26803
+ };
26758
26804
  /**
26759
26805
  * Initialize.
26760
26806
  *
@@ -27823,7 +27869,7 @@ module.exports = sceneObject;
27823
27869
  * @constant
27824
27870
  * @type {string}
27825
27871
  */
27826
- module.exports = "b37bd8311e8146b64ad199fccd0b4a5404d78157";
27872
+ module.exports = "3e924c64da3ad1b47324b2d5106e85db1bf1d809";
27827
27873
 
27828
27874
  /***/ }),
27829
27875
 
@@ -30731,6 +30777,10 @@ var featureLayer = __webpack_require__(3715);
30731
30777
  * any tile layers. If specified, this uses the quad defaults, so this is a
30732
30778
  * ``geo.quadFeature.position`` object with, typically, an ``image`` property
30733
30779
  * added to it. The quad positions are in the map gcs coordinates.
30780
+ * @property {boolean|number} [nearestPixel] If true, image quads are
30781
+ * rendered with near-neighbor sampling. If false, with interpolated
30782
+ * sampling. If a number, interpolate at that zoom level or below and
30783
+ * nearest neighbor at that zoom level or above.
30734
30784
  */
30735
30785
 
30736
30786
  /**
@@ -30894,6 +30944,7 @@ var tileLayer = function tileLayer(arg) {
30894
30944
  m_reference,
30895
30945
  m_exited,
30896
30946
  m_lastBaseQuad,
30947
+ m_nearestPixel = arg.nearestPixel,
30897
30948
  m_this = this; // copy the options into a private variable
30898
30949
 
30899
30950
  this._options = $.extend(true, {}, arg); // set the layer attribution text
@@ -32535,6 +32586,36 @@ var tileLayer = function tileLayer(arg) {
32535
32586
 
32536
32587
  return m_this;
32537
32588
  };
32589
+ /**
32590
+ * Get/Set nearestPixel value.
32591
+ *
32592
+ * @param {boolean|number} [val] If not specified, return the current value.
32593
+ * If true, image quads are rendered with near-neighbor sampling. If
32594
+ * false, with interpolated sampling. If a number, interpolate at that
32595
+ * zoom level or below and nearest neighbor at that zoom level or above.
32596
+ * @param {boolean} [skipUpdate] If specifying val and this value is truthy,
32597
+ * don't update the layer or mark it as modified.
32598
+ * @returns {boolean|number|this}
32599
+ */
32600
+
32601
+
32602
+ this.nearestPixel = function (val, skipUpdate) {
32603
+ if (val === undefined) {
32604
+ return m_nearestPixel;
32605
+ }
32606
+
32607
+ if (m_nearestPixel !== val) {
32608
+ m_nearestPixel = val;
32609
+
32610
+ if (!skipUpdate) {
32611
+ m_this.modified();
32612
+
32613
+ m_this._update();
32614
+ }
32615
+ }
32616
+
32617
+ return m_this;
32618
+ };
32538
32619
  /**
32539
32620
  * Get/set the baseQuad.
32540
32621
  *
@@ -40948,7 +41029,7 @@ module.exports = vectorFeature;
40948
41029
  * @constant
40949
41030
  * @type {string}
40950
41031
  */
40951
- module.exports = "1.10.1";
41032
+ module.exports = "1.10.4";
40952
41033
 
40953
41034
  /***/ }),
40954
41035
 
@@ -43942,7 +44023,8 @@ var webgl_pixelmapFeature = function webgl_pixelmapFeature(arg) {
43942
44023
  m_quadFeature = m_this.layer().createFeature('quad', {
43943
44024
  selectionAPI: false,
43944
44025
  gcs: m_this.gcs(),
43945
- visible: m_this.visible(undefined, true)
44026
+ visible: m_this.visible(undefined, true),
44027
+ nearestPixel: true
43946
44028
  });
43947
44029
  m_quadFeatureInit = false;
43948
44030
  }
@@ -43964,11 +44046,6 @@ var webgl_pixelmapFeature = function webgl_pixelmapFeature(arg) {
43964
44046
  };
43965
44047
 
43966
44048
  m_quadFeature._hookRenderImageQuads = function (renderState, quads) {
43967
- quads.forEach(function (quad) {
43968
- if (quad.image && quad.texture && !quad.texture.nearestPixel()) {
43969
- quad.texture.setNearestPixel(true);
43970
- }
43971
- });
43972
44049
  m_lookupTable.bind(renderState, quads);
43973
44050
  };
43974
44051
 
@@ -44002,6 +44079,10 @@ var webgl_pixelmapFeature = function webgl_pixelmapFeature(arg) {
44002
44079
 
44003
44080
  if (arg.quadFeature) {
44004
44081
  m_quadFeature = arg.quadFeature;
44082
+
44083
+ if (m_quadFeature.nearestPixel) {
44084
+ m_quadFeature.nearestPixel(true);
44085
+ }
44005
44086
  }
44006
44087
 
44007
44088
  this._init(arg);
@@ -45204,6 +45285,8 @@ var quadFeature = __webpack_require__(5017);
45204
45285
 
45205
45286
  var timestamp = __webpack_require__(6618);
45206
45287
 
45288
+ var util = __webpack_require__(4634);
45289
+
45207
45290
  var _memoryCheckLargestTested = 4096 * 4096;
45208
45291
  /**
45209
45292
  * Create a new instance of class quadFeature.
@@ -45608,6 +45691,34 @@ var webgl_quadFeature = function webgl_quadFeature(arg) {
45608
45691
  h,
45609
45692
  quadw,
45610
45693
  quadh;
45694
+ var nearestPixel = m_this.nearestPixel();
45695
+
45696
+ if (nearestPixel !== undefined) {
45697
+ if (nearestPixel !== true && util.isNonNullFinite(nearestPixel)) {
45698
+ var curZoom = m_this.layer().map().zoom();
45699
+ nearestPixel = curZoom >= nearestPixel;
45700
+ }
45701
+
45702
+ m_quads.imgQuads.forEach(function (quad) {
45703
+ if (quad.image && quad.texture && quad.texture.nearestPixel() !== nearestPixel) {
45704
+ /* This could just be
45705
+ * quad.texture.setNearestPixel(nearestPixel);
45706
+ * but that needlessly redecodes the image. Instead, just change the
45707
+ * the interpolation flags, then change the nearestPixel value
45708
+ * without triggering a complete re-setup. */
45709
+ renderState.m_context.bindTexture(vgl.GL.TEXTURE_2D, quad.texture.textureHandle());
45710
+ renderState.m_context.texParameteri(vgl.GL.TEXTURE_2D, vgl.GL.TEXTURE_MIN_FILTER, nearestPixel ? vgl.GL.NEAREST : vgl.GL.LINEAR);
45711
+ renderState.m_context.texParameteri(vgl.GL.TEXTURE_2D, vgl.GL.TEXTURE_MAG_FILTER, nearestPixel ? vgl.GL.NEAREST : vgl.GL.LINEAR);
45712
+ renderState.m_context.bindTexture(vgl.GL.TEXTURE_2D, null);
45713
+ var oldmod = quad.texture.modified;
45714
+
45715
+ quad.texture.modified = function () {};
45716
+
45717
+ quad.texture.setNearestPixel(nearestPixel);
45718
+ quad.texture.modified = oldmod;
45719
+ }
45720
+ });
45721
+ }
45611
45722
 
45612
45723
  if (m_this._hookRenderImageQuads) {
45613
45724
  m_this._hookRenderImageQuads(renderState, m_quads.imgQuads);
@@ -46002,6 +46113,10 @@ var webgl_tileLayer = function webgl_tileLayer() {
46002
46113
  this._update = function (request) {
46003
46114
  s_update.call(m_this, request);
46004
46115
 
46116
+ if (m_quadFeature && m_quadFeature.nearestPixel) {
46117
+ m_quadFeature.nearestPixel(m_this.nearestPixel());
46118
+ }
46119
+
46005
46120
  m_this._addBaseQuadToTiles(m_quadFeature, m_tiles);
46006
46121
 
46007
46122
  return m_this;