Create intermediate canvas when resolutions have changed
This commit is contained in:
@@ -170,13 +170,16 @@ ol.renderer.canvas.TileLayer.prototype.prepareFrame = function(frameState, layer
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var renderedResolution = tileResolution * pixelRatio / tilePixelRatio * oversampling;
|
||||||
var hints = frameState.viewHints;
|
var hints = frameState.viewHints;
|
||||||
if (!(this.renderedResolution && Date.now() - frameState.time > 16 &&
|
var animatingOrInteracting = hints[ol.ViewHint.ANIMATING] || hints[ol.ViewHint.INTERACTING];
|
||||||
(hints[ol.ViewHint.ANIMATING] || hints[ol.ViewHint.INTERACTING])) &&
|
if (!(Date.now() - frameState.time > 16 && animatingOrInteracting) && (
|
||||||
(newTiles || !(this.renderedExtent_ &&
|
newTiles ||
|
||||||
ol.extent.containsExtent(this.renderedExtent_, extent)) ||
|
!(this.renderedExtent_ && ol.extent.containsExtent(this.renderedExtent_, extent)) ||
|
||||||
this.renderedRevision != sourceRevision) ||
|
this.renderedRevision != sourceRevision ||
|
||||||
oversampling != this.oversampling_) {
|
oversampling != this.oversampling_ ||
|
||||||
|
!animatingOrInteracting && renderedResolution != this.renderedResolution
|
||||||
|
)) {
|
||||||
|
|
||||||
var context = this.context;
|
var context = this.context;
|
||||||
if (context) {
|
if (context) {
|
||||||
|
|||||||
@@ -79,6 +79,8 @@ describe('ol.renderer.canvas.TileLayer', function() {
|
|||||||
var renderer = new ol.renderer.canvas.TileLayer(layer);
|
var renderer = new ol.renderer.canvas.TileLayer(layer);
|
||||||
renderer.renderedTiles = [];
|
renderer.renderedTiles = [];
|
||||||
var frameState = {
|
var frameState = {
|
||||||
|
viewHints: [],
|
||||||
|
time: Date.now(),
|
||||||
viewState: {
|
viewState: {
|
||||||
center: [10, 5],
|
center: [10, 5],
|
||||||
projection: ol.proj.get('EPSG:3857'),
|
projection: ol.proj.get('EPSG:3857'),
|
||||||
|
|||||||
@@ -170,6 +170,9 @@ describe('ol.renderer.canvas.VectorTileLayer', function() {
|
|||||||
var proj = ol.proj.get('EPSG:3857');
|
var proj = ol.proj.get('EPSG:3857');
|
||||||
var frameState = {
|
var frameState = {
|
||||||
extent: proj.getExtent(),
|
extent: proj.getExtent(),
|
||||||
|
pixelRatio: 1,
|
||||||
|
time: Date.now(),
|
||||||
|
viewHints: [],
|
||||||
viewState: {
|
viewState: {
|
||||||
center: [0, 0],
|
center: [0, 0],
|
||||||
resolution: 156543.03392804097,
|
resolution: 156543.03392804097,
|
||||||
|
|||||||
Reference in New Issue
Block a user