Return directly when all we do is render queued images

This commit is contained in:
ahocevar
2019-03-18 21:32:55 +01:00
parent d2f60a70d1
commit fefcc9f0ca
2 changed files with 14 additions and 2 deletions

View File

@@ -4,7 +4,7 @@
import {getUid} from '../../util.js'; import {getUid} from '../../util.js';
import TileRange from '../../TileRange.js'; import TileRange from '../../TileRange.js';
import TileState from '../../TileState.js'; import TileState from '../../TileState.js';
import {createEmpty, getIntersection, getTopLeft} from '../../extent.js'; import {createEmpty, equals, getIntersection, getTopLeft} from '../../extent.js';
import CanvasLayerRenderer from './Layer.js'; import CanvasLayerRenderer from './Layer.js';
import {apply as applyTransform, compose as composeTransform, makeInverse, toString as transformToString} from '../../transform.js'; import {apply as applyTransform, compose as composeTransform, makeInverse, toString as transformToString} from '../../transform.js';
@@ -21,6 +21,12 @@ class CanvasTileLayerRenderer extends CanvasLayerRenderer {
constructor(tileLayer) { constructor(tileLayer) {
super(tileLayer); super(tileLayer);
/**
* Rendered extent has changed since the previous `renderFrame()` call
* @type {boolean}
*/
this.extentChanged = true;
/** /**
* @private * @private
* @type {import("../../extent.js").Extent} * @type {import("../../extent.js").Extent}
@@ -301,6 +307,7 @@ class CanvasTileLayerRenderer extends CanvasLayerRenderer {
this.renderedRevision = sourceRevision; this.renderedRevision = sourceRevision;
this.renderedResolution = tileResolution; this.renderedResolution = tileResolution;
this.extentChanged = !this.renderedExtent_ || !equals(this.renderedExtent_, canvasExtent);
this.renderedExtent_ = canvasExtent; this.renderedExtent_ = canvasExtent;
this.manageTilePyramid(frameState, tileSource, tileGrid, pixelRatio, this.manageTilePyramid(frameState, tileSource, tileGrid, pixelRatio,

View File

@@ -27,7 +27,7 @@ import {
makeInverse makeInverse
} from '../../transform.js'; } from '../../transform.js';
import CanvasExecutorGroup, {replayDeclutter} from '../../render/canvas/ExecutorGroup.js'; import CanvasExecutorGroup, {replayDeclutter} from '../../render/canvas/ExecutorGroup.js';
import {clear} from '../../obj.js'; import {clear, isEmpty} from '../../obj.js';
/** /**
@@ -432,6 +432,11 @@ class CanvasVectorTileLayerRenderer extends CanvasTileLayerRenderer {
return this.container_; return this.container_;
} }
if (!isEmpty(this.renderTileImageQueue_) && !this.extentChanged) {
this.renderTileImages_(hifi, frameState);
return this.container_;
}
const context = this.overlayContext_; const context = this.overlayContext_;
const declutterReplays = layer.getDeclutter() ? {} : null; const declutterReplays = layer.getDeclutter() ? {} : null;
const source = layer.getSource(); const source = layer.getSource();