Remove unused tile image render queue
This commit is contained in:
@@ -109,12 +109,6 @@ class CanvasVectorTileLayerRenderer extends CanvasTileLayerRenderer {
|
|||||||
*/
|
*/
|
||||||
this.renderedRotation_;
|
this.renderedRotation_;
|
||||||
|
|
||||||
/**
|
|
||||||
* @private
|
|
||||||
* @type {!Object<string, import("../../VectorRenderTile.js").default>}
|
|
||||||
*/
|
|
||||||
this.renderTileImageQueue_ = {};
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @private
|
* @private
|
||||||
* @type {import("../../transform.js").Transform}
|
* @type {import("../../transform.js").Transform}
|
||||||
@@ -126,20 +120,15 @@ class CanvasVectorTileLayerRenderer extends CanvasTileLayerRenderer {
|
|||||||
* @param {import("../../VectorRenderTile.js").default} tile Tile.
|
* @param {import("../../VectorRenderTile.js").default} tile Tile.
|
||||||
* @param {number} pixelRatio Pixel ratio.
|
* @param {number} pixelRatio Pixel ratio.
|
||||||
* @param {import("../../proj/Projection").default} projection Projection.
|
* @param {import("../../proj/Projection").default} projection Projection.
|
||||||
* @param {boolean} queue Queue tile for rendering.
|
|
||||||
* @return {boolean|undefined} Tile needs to be rendered.
|
* @return {boolean|undefined} Tile needs to be rendered.
|
||||||
*/
|
*/
|
||||||
prepareTile(tile, pixelRatio, projection, queue) {
|
prepareTile(tile, pixelRatio, projection) {
|
||||||
let render;
|
let render;
|
||||||
const tileUid = getUid(tile);
|
|
||||||
const state = tile.getState();
|
const state = tile.getState();
|
||||||
if (state === TileState.LOADED || state === TileState.ERROR) {
|
if (state === TileState.LOADED || state === TileState.ERROR) {
|
||||||
this.updateExecutorGroup_(tile, pixelRatio, projection);
|
this.updateExecutorGroup_(tile, pixelRatio, projection);
|
||||||
if (this.tileImageNeedsRender_(tile)) {
|
if (this.tileImageNeedsRender_(tile)) {
|
||||||
render = true;
|
render = true;
|
||||||
if (queue) {
|
|
||||||
this.renderTileImageQueue_[tileUid] = tile;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return render;
|
return render;
|
||||||
@@ -166,7 +155,7 @@ class CanvasVectorTileLayerRenderer extends CanvasTileLayerRenderer {
|
|||||||
if (hifi || !tile.wantedResolution) {
|
if (hifi || !tile.wantedResolution) {
|
||||||
tile.wantedResolution = resolution;
|
tile.wantedResolution = resolution;
|
||||||
}
|
}
|
||||||
const render = this.prepareTile(tile, pixelRatio, projection, false);
|
const render = this.prepareTile(tile, pixelRatio, projection);
|
||||||
if (render && layer.getRenderMode() !== VectorTileRenderType.VECTOR) {
|
if (render && layer.getRenderMode() !== VectorTileRenderType.VECTOR) {
|
||||||
this.renderTileImage_(tile, frameState);
|
this.renderTileImage_(tile, frameState);
|
||||||
}
|
}
|
||||||
@@ -558,7 +547,6 @@ class CanvasVectorTileLayerRenderer extends CanvasTileLayerRenderer {
|
|||||||
* Perform action necessary to get the layer rendered after new fonts have loaded
|
* Perform action necessary to get the layer rendered after new fonts have loaded
|
||||||
*/
|
*/
|
||||||
handleFontsChanged() {
|
handleFontsChanged() {
|
||||||
clear(this.renderTileImageQueue_);
|
|
||||||
const layer = this.getLayer();
|
const layer = this.getLayer();
|
||||||
if (layer.getVisible() && this.renderedLayerRevision_ !== undefined) {
|
if (layer.getVisible() && this.renderedLayerRevision_ !== undefined) {
|
||||||
layer.changed();
|
layer.changed();
|
||||||
@@ -655,7 +643,6 @@ class CanvasVectorTileLayerRenderer extends CanvasTileLayerRenderer {
|
|||||||
const hifi = !(
|
const hifi = !(
|
||||||
viewHints[ViewHint.ANIMATING] || viewHints[ViewHint.INTERACTING]
|
viewHints[ViewHint.ANIMATING] || viewHints[ViewHint.INTERACTING]
|
||||||
);
|
);
|
||||||
this.renderQueuedTileImages_(hifi, frameState);
|
|
||||||
|
|
||||||
super.renderFrame(frameState, target);
|
super.renderFrame(frameState, target);
|
||||||
this.renderedPixelToCoordinateTransform_ =
|
this.renderedPixelToCoordinateTransform_ =
|
||||||
@@ -666,16 +653,6 @@ class CanvasVectorTileLayerRenderer extends CanvasTileLayerRenderer {
|
|||||||
this.getLayer()
|
this.getLayer()
|
||||||
);
|
);
|
||||||
const renderMode = layer.getRenderMode();
|
const renderMode = layer.getRenderMode();
|
||||||
|
|
||||||
const source = layer.getSource();
|
|
||||||
// Unqueue tiles from the image queue when we don't need any more
|
|
||||||
const usedTiles = frameState.usedTiles[getUid(source)];
|
|
||||||
for (const tileUid in this.renderTileImageQueue_) {
|
|
||||||
if (!usedTiles || !(tileUid in usedTiles)) {
|
|
||||||
delete this.renderTileImageQueue_[tileUid];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
const context = this.context;
|
const context = this.context;
|
||||||
const alpha = context.globalAlpha;
|
const alpha = context.globalAlpha;
|
||||||
context.globalAlpha = layer.getOpacity();
|
context.globalAlpha = layer.getOpacity();
|
||||||
@@ -748,24 +725,6 @@ class CanvasVectorTileLayerRenderer extends CanvasTileLayerRenderer {
|
|||||||
return this.container;
|
return this.container;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @param {boolean} hifi We have time to render a high fidelity map image.
|
|
||||||
* @param {import('../../PluggableMap.js').FrameState} frameState Frame state.
|
|
||||||
*/
|
|
||||||
renderQueuedTileImages_(hifi, frameState) {
|
|
||||||
// When we don't have time to render hifi, only render tiles until we have used up
|
|
||||||
// half of the frame budget of 16 ms
|
|
||||||
for (const uid in this.renderTileImageQueue_) {
|
|
||||||
if (!hifi && Date.now() - frameState.time > 8) {
|
|
||||||
frameState.animate = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
const tile = this.renderTileImageQueue_[uid];
|
|
||||||
delete this.renderTileImageQueue_[uid];
|
|
||||||
this.renderTileImage_(tile, frameState);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {import("../../Feature.js").FeatureLike} feature Feature.
|
* @param {import("../../Feature.js").FeatureLike} feature Feature.
|
||||||
* @param {number} squaredTolerance Squared tolerance.
|
* @param {number} squaredTolerance Squared tolerance.
|
||||||
|
|||||||
Reference in New Issue
Block a user