Fix vector tile renderer ready
This commit is contained in:
@@ -188,10 +188,10 @@ class CanvasVectorTileLayerRenderer extends CanvasTileLayerRenderer {
|
|||||||
*/
|
*/
|
||||||
prepareFrame(frameState) {
|
prepareFrame(frameState) {
|
||||||
const layerRevision = this.getLayer().getRevision();
|
const layerRevision = this.getLayer().getRevision();
|
||||||
if (this.renderedLayerRevision_ != layerRevision) {
|
if (this.renderedLayerRevision_ !== layerRevision) {
|
||||||
|
this.renderedLayerRevision_ = layerRevision;
|
||||||
this.renderedTiles.length = 0;
|
this.renderedTiles.length = 0;
|
||||||
}
|
}
|
||||||
this.renderedLayerRevision_ = layerRevision;
|
|
||||||
return super.prepareFrame(frameState);
|
return super.prepareFrame(frameState);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -232,6 +232,7 @@ class CanvasVectorTileLayerRenderer extends CanvasTileLayerRenderer {
|
|||||||
if (declutter) {
|
if (declutter) {
|
||||||
tile.declutterExecutorGroups[layerUid] = [];
|
tile.declutterExecutorGroups[layerUid] = [];
|
||||||
}
|
}
|
||||||
|
builderState.dirty = false;
|
||||||
for (let t = 0, tt = sourceTiles.length; t < tt; ++t) {
|
for (let t = 0, tt = sourceTiles.length; t < tt; ++t) {
|
||||||
const sourceTile = sourceTiles[t];
|
const sourceTile = sourceTiles[t];
|
||||||
if (sourceTile.getState() != TileState.LOADED) {
|
if (sourceTile.getState() != TileState.LOADED) {
|
||||||
@@ -249,7 +250,6 @@ class CanvasVectorTileLayerRenderer extends CanvasTileLayerRenderer {
|
|||||||
const bufferedExtent = equals(sourceTileExtent, sharedExtent)
|
const bufferedExtent = equals(sourceTileExtent, sharedExtent)
|
||||||
? null
|
? null
|
||||||
: builderExtent;
|
: builderExtent;
|
||||||
builderState.dirty = false;
|
|
||||||
const builderGroup = new CanvasBuilderGroup(
|
const builderGroup = new CanvasBuilderGroup(
|
||||||
0,
|
0,
|
||||||
builderExtent,
|
builderExtent,
|
||||||
@@ -332,7 +332,6 @@ class CanvasVectorTileLayerRenderer extends CanvasTileLayerRenderer {
|
|||||||
builderState.renderedRevision = revision;
|
builderState.renderedRevision = revision;
|
||||||
builderState.renderedRenderOrder = renderOrder;
|
builderState.renderedRenderOrder = renderOrder;
|
||||||
builderState.renderedResolution = resolution;
|
builderState.renderedResolution = resolution;
|
||||||
this.ready = !builderState.dirty;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -667,10 +666,12 @@ class CanvasVectorTileLayerRenderer extends CanvasTileLayerRenderer {
|
|||||||
const tiles = this.renderedTiles;
|
const tiles = this.renderedTiles;
|
||||||
const clips = [];
|
const clips = [];
|
||||||
const clipZs = [];
|
const clipZs = [];
|
||||||
|
let ready = true;
|
||||||
for (let i = tiles.length - 1; i >= 0; --i) {
|
for (let i = tiles.length - 1; i >= 0; --i) {
|
||||||
const tile = /** @type {import("../../VectorRenderTile.js").default} */ (
|
const tile = /** @type {import("../../VectorRenderTile.js").default} */ (
|
||||||
tiles[i]
|
tiles[i]
|
||||||
);
|
);
|
||||||
|
ready = ready && !tile.getReplayState(layer).dirty;
|
||||||
const executorGroups = tile.executorGroups[getUid(layer)].filter(
|
const executorGroups = tile.executorGroups[getUid(layer)].filter(
|
||||||
(group) => group.hasExecutors(replayTypes)
|
(group) => group.hasExecutors(replayTypes)
|
||||||
);
|
);
|
||||||
@@ -735,6 +736,7 @@ class CanvasVectorTileLayerRenderer extends CanvasTileLayerRenderer {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
context.globalAlpha = alpha;
|
context.globalAlpha = alpha;
|
||||||
|
this.ready = ready;
|
||||||
|
|
||||||
return this.container;
|
return this.container;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user