Fix incorrect Executor/Builder types

This commit is contained in:
Guillaume Beraudo
2018-11-15 23:27:43 +01:00
parent da92b2ab3f
commit 89fed65f07
7 changed files with 65 additions and 88 deletions

View File

@@ -65,7 +65,7 @@ class VectorTile extends Tile {
/** /**
* @private * @private
* @type {Object<string, import("./render/BuilderGroup.js").default>} * @type {Object<string, import("./render/ExecutorGroup.js").default>}
*/ */
this.replayGroups_ = {}; this.replayGroups_ = {};
@@ -142,9 +142,9 @@ class VectorTile extends Tile {
/** /**
* @param {import("./layer/Layer.js").default} layer Layer. * @param {import("./layer/Layer.js").default} layer Layer.
* @param {string} key Key. * @param {string} key Key.
* @return {import("./render/BuilderGroup.js").default} Replay group. * @return {import("./render/ExecutorGroup.js").default} Replay group.
*/ */
getReplayGroup(layer, key) { getExecutorGroup(layer, key) {
return this.replayGroups_[getUid(layer) + ',' + key]; return this.replayGroups_[getUid(layer) + ',' + key];
} }
@@ -153,9 +153,9 @@ class VectorTile extends Tile {
* @param {import("./layer/Layer").default} layer Layer. * @param {import("./layer/Layer").default} layer Layer.
* @param {number} zoom Zoom. * @param {number} zoom Zoom.
* @param {import("./extent").Extent} extent Extent. * @param {import("./extent").Extent} extent Extent.
* @return {import("./render/BuilderGroup.js").default} Replay groups. * @return {import("./render/ExecutorGroup.js").default} Replay groups.
*/ */
getLowResReplayGroup(layer, zoom, extent) { getLowResExecutorGroup(layer, zoom, extent) {
const layerId = getUid(layer); const layerId = getUid(layer);
let bestZoom = 0; let bestZoom = 0;
let replayGroup = null; let replayGroup = null;
@@ -244,10 +244,10 @@ class VectorTile extends Tile {
/** /**
* @param {import("./layer/Layer.js").default} layer Layer. * @param {import("./layer/Layer.js").default} layer Layer.
* @param {string} key Key. * @param {string} key Key.
* @param {import("./render/BuilderGroup.js").default} replayGroup Replay group. * @param {import("./render/ExecutorGroup.js").default} executorGroup Executor group.
*/ */
setReplayGroup(layer, key, replayGroup) { setExecutorGroup(layer, key, executorGroup) {
this.replayGroups_[getUid(layer) + ',' + key] = replayGroup; this.replayGroups_[getUid(layer) + ',' + key] = executorGroup;
} }
/** /**

View File

@@ -332,7 +332,7 @@ class ExecutorGroup extends BaseExecutorGroup {
* Default is {@link module:ol/render/replay~ORDER} * Default is {@link module:ol/render/replay~ORDER}
* @param {Object<string, import("../canvas.js").DeclutterGroup>=} opt_declutterReplays Declutter replays. * @param {Object<string, import("../canvas.js").DeclutterGroup>=} opt_declutterReplays Declutter replays.
*/ */
replay( execute(
context, context,
transform, transform,
viewRotation, viewRotation,
@@ -468,11 +468,11 @@ export function replayDeclutter(declutterReplays, context, rotation, snapToPixel
const zs = Object.keys(declutterReplays).map(Number).sort(numberSafeCompareFunction); const zs = Object.keys(declutterReplays).map(Number).sort(numberSafeCompareFunction);
const skippedFeatureUids = {}; const skippedFeatureUids = {};
for (let z = 0, zz = zs.length; z < zz; ++z) { for (let z = 0, zz = zs.length; z < zz; ++z) {
const replayData = declutterReplays[zs[z].toString()]; const executorData = declutterReplays[zs[z].toString()];
for (let i = 0, ii = replayData.length; i < ii;) { for (let i = 0, ii = executorData.length; i < ii;) {
const replay = replayData[i++]; const executor = executorData[i++];
const transform = replayData[i++]; const transform = executorData[i++];
replay.execute(context, transform, rotation, skippedFeatureUids, snapToPixel); executor.execute(context, transform, rotation, skippedFeatureUids, snapToPixel);
} }
} }
} }

View File

@@ -406,25 +406,4 @@ export function getCircleArray(radius) {
return arr; return arr;
} }
/**
* @param {!Object<string, Array<*>>} declutterReplays Declutter replays.
* @param {CanvasRenderingContext2D} context Context.
* @param {number} rotation Rotation.
* @param {boolean} snapToPixel Snap point symbols and text to integer pixels.
*/
export function replayDeclutter(declutterReplays, context, rotation, snapToPixel) {
const zs = Object.keys(declutterReplays).map(Number).sort(numberSafeCompareFunction);
const skippedFeatureUids = {};
for (let z = 0, zz = zs.length; z < zz; ++z) {
const replayData = declutterReplays[zs[z].toString()];
for (let i = 0, ii = replayData.length; i < ii;) {
const replay = replayData[i++];
const transform = replayData[i++];
replay.execute(context, transform, rotation, skippedFeatureUids, snapToPixel);
}
}
}
export default CanvasBuilderGroup; export default CanvasBuilderGroup;

View File

@@ -166,7 +166,7 @@ class CanvasVectorLayerRenderer extends CanvasLayerRenderer {
const halfWidth = (frameState.size[0] * pixelRatio) / 2; const halfWidth = (frameState.size[0] * pixelRatio) / 2;
const halfHeight = (frameState.size[1] * pixelRatio) / 2; const halfHeight = (frameState.size[1] * pixelRatio) / 2;
rotateAtOffset(replayContext, -rotation, halfWidth, halfHeight); rotateAtOffset(replayContext, -rotation, halfWidth, halfHeight);
replayGroup.replay(replayContext, transform, rotation, skippedFeatureUids, snapToPixel); replayGroup.execute(replayContext, transform, rotation, skippedFeatureUids, snapToPixel);
if (vectorSource.getWrapX() && projection.canWrapX() && if (vectorSource.getWrapX() && projection.canWrapX() &&
!containsExtent(projectionExtent, extent)) { !containsExtent(projectionExtent, extent)) {
let startX = extent[0]; let startX = extent[0];
@@ -177,7 +177,7 @@ class CanvasVectorLayerRenderer extends CanvasLayerRenderer {
--world; --world;
offsetX = worldWidth * world; offsetX = worldWidth * world;
transform = this.getTransform(frameState, offsetX); transform = this.getTransform(frameState, offsetX);
replayGroup.replay(replayContext, transform, rotation, skippedFeatureUids, snapToPixel); replayGroup.execute(replayContext, transform, rotation, skippedFeatureUids, snapToPixel);
startX += worldWidth; startX += worldWidth;
} }
world = 0; world = 0;
@@ -186,7 +186,7 @@ class CanvasVectorLayerRenderer extends CanvasLayerRenderer {
++world; ++world;
offsetX = worldWidth * world; offsetX = worldWidth * world;
transform = this.getTransform(frameState, offsetX); transform = this.getTransform(frameState, offsetX);
replayGroup.replay(replayContext, transform, rotation, skippedFeatureUids, snapToPixel); replayGroup.execute(replayContext, transform, rotation, skippedFeatureUids, snapToPixel);
startX -= worldWidth; startX -= worldWidth;
} }
} }
@@ -280,7 +280,7 @@ class CanvasVectorLayerRenderer extends CanvasLayerRenderer {
let transform = this.getRenderTransform(frameState, width, height, 0); let transform = this.getRenderTransform(frameState, width, height, 0);
const skippedFeatureUids = layerState.managed ? frameState.skippedFeatureUids : {}; const skippedFeatureUids = layerState.managed ? frameState.skippedFeatureUids : {};
replayGroup.replay(context, transform, rotation, skippedFeatureUids, snapToPixel); replayGroup.execute(context, transform, rotation, skippedFeatureUids, snapToPixel);
if (vectorSource.getWrapX() && projection.canWrapX() && !containsExtent(projectionExtent, extent)) { if (vectorSource.getWrapX() && projection.canWrapX() && !containsExtent(projectionExtent, extent)) {
let startX = extent[0]; let startX = extent[0];
@@ -291,7 +291,7 @@ class CanvasVectorLayerRenderer extends CanvasLayerRenderer {
--world; --world;
offsetX = worldWidth * world; offsetX = worldWidth * world;
transform = this.getRenderTransform(frameState, width, height, offsetX); transform = this.getRenderTransform(frameState, width, height, offsetX);
replayGroup.replay(context, transform, rotation, skippedFeatureUids, snapToPixel); replayGroup.execute(context, transform, rotation, skippedFeatureUids, snapToPixel);
startX += worldWidth; startX += worldWidth;
} }
world = 0; world = 0;
@@ -300,7 +300,7 @@ class CanvasVectorLayerRenderer extends CanvasLayerRenderer {
++world; ++world;
offsetX = worldWidth * world; offsetX = worldWidth * world;
transform = this.getRenderTransform(frameState, width, height, offsetX); transform = this.getRenderTransform(frameState, width, height, offsetX);
replayGroup.replay(context, transform, rotation, skippedFeatureUids, snapToPixel); replayGroup.execute(context, transform, rotation, skippedFeatureUids, snapToPixel);
startX -= worldWidth; startX -= worldWidth;
} }
} }

View File

@@ -13,7 +13,7 @@ import {equivalent as equivalentProjection} from '../../proj.js';
import Units from '../../proj/Units.js'; import Units from '../../proj/Units.js';
import ReplayType from '../../render/ReplayType.js'; import ReplayType from '../../render/ReplayType.js';
import {labelCache, rotateAtOffset} from '../../render/canvas.js'; import {labelCache, rotateAtOffset} from '../../render/canvas.js';
import CanvasBuilderGroup, {replayDeclutter} from '../../render/canvas/InstructionsGroupBuilder.js'; import CanvasBuilderGroup from '../../render/canvas/InstructionsGroupBuilder.js';
import {ORDER} from '../../render/replay.js'; import {ORDER} from '../../render/replay.js';
import CanvasTileLayerRenderer from './TileLayer.js'; import CanvasTileLayerRenderer from './TileLayer.js';
import {getSquaredTolerance as getSquaredRenderTolerance, renderFeature} from '../vector.js'; import {getSquaredTolerance as getSquaredRenderTolerance, renderFeature} from '../vector.js';
@@ -24,7 +24,7 @@ import {
scale as scaleTransform, scale as scaleTransform,
translate as translateTransform translate as translateTransform
} from '../../transform.js'; } from '../../transform.js';
import CanvasGroupExecutor from '../../render/canvas/ExecutorGroup.js'; import CanvasExecutorGroup, {replayDeclutter} from '../../render/canvas/ExecutorGroup.js';
/** /**
@@ -108,7 +108,7 @@ class CanvasVectorTileLayerRenderer extends CanvasTileLayerRenderer {
getTile(z, x, y, pixelRatio, projection) { getTile(z, x, y, pixelRatio, projection) {
const tile = super.getTile(z, x, y, pixelRatio, projection); const tile = super.getTile(z, x, y, pixelRatio, projection);
if (tile.getState() === TileState.LOADED) { if (tile.getState() === TileState.LOADED) {
this.createReplayGroup_(/** @type {import("../../VectorImageTile.js").default} */ (tile), pixelRatio, projection); this.createExecutorGroup_(/** @type {import("../../VectorImageTile.js").default} */ (tile), pixelRatio, projection);
if (this.context) { if (this.context) {
this.renderTileImage_(/** @type {import("../../VectorImageTile.js").default} */ (tile), pixelRatio, projection); this.renderTileImage_(/** @type {import("../../VectorImageTile.js").default} */ (tile), pixelRatio, projection);
} }
@@ -143,14 +143,14 @@ class CanvasVectorTileLayerRenderer extends CanvasTileLayerRenderer {
* @param {import("../../proj/Projection.js").default} projection Projection. * @param {import("../../proj/Projection.js").default} projection Projection.
* @private * @private
*/ */
createReplayGroup_(tile, pixelRatio, projection) { createExecutorGroup_(tile, pixelRatio, projection) {
const layer = /** @type {import("../../layer/Vector.js").default} */ (this.getLayer()); const layer = /** @type {import("../../layer/Vector.js").default} */ (this.getLayer());
const revision = layer.getRevision(); const revision = layer.getRevision();
const renderOrder = /** @type {import("../../render.js").OrderFunction} */ (layer.getRenderOrder()) || null; const renderOrder = /** @type {import("../../render.js").OrderFunction} */ (layer.getRenderOrder()) || null;
const replayState = tile.getReplayState(layer); const builderState = tile.getReplayState(layer);
if (!replayState.dirty && replayState.renderedRevision == revision && if (!builderState.dirty && builderState.renderedRevision == revision &&
replayState.renderedRenderOrder == renderOrder) { builderState.renderedRenderOrder == renderOrder) {
return; return;
} }
@@ -167,10 +167,10 @@ class CanvasVectorTileLayerRenderer extends CanvasTileLayerRenderer {
continue; continue;
} }
if (tile.useLoadedOnly) { if (tile.useLoadedOnly) {
const lowResReplayGroup = sourceTile.getLowResReplayGroup(layer, zoom, tileExtent); const lowResExecutorGroup = sourceTile.getLowResExecutorGroup(layer, zoom, tileExtent);
if (lowResReplayGroup) { if (lowResExecutorGroup) {
// reuse existing replay if we're rendering an interim tile // reuse existing replay if we're rendering an interim tile
sourceTile.setReplayGroup(layer, tile.tileCoord.toString(), lowResReplayGroup); sourceTile.setExecutorGroup(layer, tile.tileCoord.toString(), lowResExecutorGroup);
continue; continue;
} }
} }
@@ -186,8 +186,8 @@ class CanvasVectorTileLayerRenderer extends CanvasTileLayerRenderer {
reproject = true; reproject = true;
sourceTile.setProjection(projection); sourceTile.setProjection(projection);
} }
replayState.dirty = false; builderState.dirty = false;
const replayGroup = new CanvasBuilderGroup(0, sharedExtent, resolution, const builderGroup = new CanvasBuilderGroup(0, sharedExtent, resolution,
pixelRatio, source.getOverlaps(), this.declutterTree_, layer.getRenderBuffer()); pixelRatio, source.getOverlaps(), this.declutterTree_, layer.getRenderBuffer());
const squaredTolerance = getSquaredRenderTolerance(resolution, pixelRatio); const squaredTolerance = getSquaredRenderTolerance(resolution, pixelRatio);
@@ -202,14 +202,14 @@ class CanvasVectorTileLayerRenderer extends CanvasTileLayerRenderer {
styles = styleFunction(feature, resolution); styles = styleFunction(feature, resolution);
} }
if (styles) { if (styles) {
const dirty = this.renderFeature(feature, squaredTolerance, styles, replayGroup); const dirty = this.renderFeature(feature, squaredTolerance, styles, builderGroup);
this.dirty_ = this.dirty_ || dirty; this.dirty_ = this.dirty_ || dirty;
replayState.dirty = replayState.dirty || dirty; builderState.dirty = builderState.dirty || dirty;
} }
}; };
const features = sourceTile.getFeatures(); const features = sourceTile.getFeatures();
if (renderOrder && renderOrder !== replayState.renderedRenderOrder) { if (renderOrder && renderOrder !== builderState.renderedRenderOrder) {
features.sort(renderOrder); features.sort(renderOrder);
} }
for (let i = 0, ii = features.length; i < ii; ++i) { for (let i = 0, ii = features.length; i < ii; ++i) {
@@ -227,14 +227,14 @@ class CanvasVectorTileLayerRenderer extends CanvasTileLayerRenderer {
render.call(this, feature); render.call(this, feature);
} }
} }
const replayGroupInstructions = replayGroup.finish(); const replayGroupInstructions = builderGroup.finish();
const renderingReplayGroup = new CanvasGroupExecutor(0, sharedExtent, resolution, const renderingReplayGroup = new CanvasExecutorGroup(0, sharedExtent, resolution,
pixelRatio, source.getOverlaps(), this.declutterTree_, layer.getRenderBuffer()); pixelRatio, source.getOverlaps(), this.declutterTree_, layer.getRenderBuffer());
renderingReplayGroup.replaceInstructions(replayGroupInstructions); renderingReplayGroup.replaceInstructions(replayGroupInstructions);
sourceTile.setReplayGroup(layer, tile.tileCoord.toString(), renderingReplayGroup); sourceTile.setExecutorGroup(layer, tile.tileCoord.toString(), renderingReplayGroup);
} }
replayState.renderedRevision = revision; builderState.renderedRevision = revision;
replayState.renderedRenderOrder = renderOrder; builderState.renderedRenderOrder = renderOrder;
} }
/** /**
@@ -263,9 +263,9 @@ class CanvasVectorTileLayerRenderer extends CanvasTileLayerRenderer {
if (sourceTile.getState() != TileState.LOADED) { if (sourceTile.getState() != TileState.LOADED) {
continue; continue;
} }
const replayGroup = /** @type {CanvasBuilderGroup} */ (sourceTile.getReplayGroup(layer, const executorGroup = /** @type {CanvasExecutorGroup} */ (sourceTile.getExecutorGroup(layer,
tile.tileCoord.toString())); tile.tileCoord.toString()));
found = found || replayGroup.forEachFeatureAtCoordinate(coordinate, resolution, rotation, hitTolerance, {}, found = found || executorGroup.forEachFeatureAtCoordinate(coordinate, resolution, rotation, hitTolerance, {},
/** /**
* @param {import("../../Feature.js").FeatureLike} feature Feature. * @param {import("../../Feature.js").FeatureLike} feature Feature.
* @return {?} Callback result. * @return {?} Callback result.
@@ -371,7 +371,7 @@ class CanvasVectorTileLayerRenderer extends CanvasTileLayerRenderer {
if (sourceTile.getState() != TileState.LOADED) { if (sourceTile.getState() != TileState.LOADED) {
continue; continue;
} }
const executorGroup = /** @type {CanvasGroupExecutor} */ (sourceTile.getReplayGroup(layer, tileCoord.toString())); const executorGroup = /** @type {CanvasExecutorGroup} */ (sourceTile.getExecutorGroup(layer, tileCoord.toString()));
if (!executorGroup || !executorGroup.hasExecutors(replayTypes)) { if (!executorGroup || !executorGroup.hasExecutors(replayTypes)) {
// sourceTile was not yet loaded when this.createReplayGroup_() was // sourceTile was not yet loaded when this.createReplayGroup_() was
// called, or it has no replays of the types we want to render // called, or it has no replays of the types we want to render
@@ -403,7 +403,7 @@ class CanvasVectorTileLayerRenderer extends CanvasTileLayerRenderer {
context.clip(); context.clip();
} }
} }
executorGroup.replay(context, transform, rotation, {}, snapToPixel, replayTypes, declutterReplays); executorGroup.execute(context, transform, rotation, {}, snapToPixel, replayTypes, declutterReplays);
context.restore(); context.restore();
clips.push(currentClip); clips.push(currentClip);
zs.push(currentZ); zs.push(currentZ);
@@ -478,9 +478,9 @@ class CanvasVectorTileLayerRenderer extends CanvasTileLayerRenderer {
const transform = resetTransform(this.tmpTransform_); const transform = resetTransform(this.tmpTransform_);
scaleTransform(transform, pixelScale, -pixelScale); scaleTransform(transform, pixelScale, -pixelScale);
translateTransform(transform, -tileExtent[0], -tileExtent[3]); translateTransform(transform, -tileExtent[0], -tileExtent[3]);
const replayGroup = /** @type {CanvasBuilderGroup} */ (sourceTile.getReplayGroup(layer, const executorGroup = /** @type {CanvasExecutorGroup} */ (sourceTile.getExecutorGroup(layer,
tile.tileCoord.toString())); tile.tileCoord.toString()));
replayGroup.replay(context, transform, 0, {}, true, replays); executorGroup.execute(context, transform, 0, {}, true, replays);
} }
} }
} }

View File

@@ -92,12 +92,12 @@ describe('ol.render.canvas.ReplayGroup', function() {
it('omits lineTo for repeated coordinates', function() { it('omits lineTo for repeated coordinates', function() {
renderFeature(builder, feature0, fill0, 1); renderFeature(builder, feature0, fill0, 1);
executor.replaceInstructions(builder.finish()); executor.replaceInstructions(builder.finish());
executor.replay(context, transform, 0, {}); executor.execute(context, transform, 0, {});
expect(lineToCount).to.be(4); expect(lineToCount).to.be(4);
lineToCount = 0; lineToCount = 0;
scaleTransform(transform, 0.25, 0.25); scaleTransform(transform, 0.25, 0.25);
executor.replaceInstructions(builder.finish()); executor.replaceInstructions(builder.finish());
executor.replay(context, transform, 0, {}); executor.execute(context, transform, 0, {});
expect(lineToCount).to.be(3); expect(lineToCount).to.be(3);
}); });
@@ -105,7 +105,7 @@ describe('ol.render.canvas.ReplayGroup', function() {
renderFeature(builder, feature0, fill0, 1); renderFeature(builder, feature0, fill0, 1);
renderFeature(builder, feature1, fill1, 1); renderFeature(builder, feature1, fill1, 1);
executor.replaceInstructions(builder.finish()); executor.replaceInstructions(builder.finish());
executor.replay(context, transform, 0, {}); executor.execute(context, transform, 0, {});
expect(moveToCount).to.be(2); expect(moveToCount).to.be(2);
}); });
@@ -114,7 +114,7 @@ describe('ol.render.canvas.ReplayGroup', function() {
renderFeature(builder, feature2, style1, 1); renderFeature(builder, feature2, style1, 1);
renderFeature(builder, feature3, style1, 1); renderFeature(builder, feature3, style1, 1);
executor.replaceInstructions(builder.finish()); executor.replaceInstructions(builder.finish());
executor.replay(context, transform, 0, {}); executor.execute(context, transform, 0, {});
expect(fillCount).to.be(1); expect(fillCount).to.be(1);
expect(strokeCount).to.be(1); expect(strokeCount).to.be(1);
expect(beginPathCount).to.be(1); expect(beginPathCount).to.be(1);
@@ -125,7 +125,7 @@ describe('ol.render.canvas.ReplayGroup', function() {
renderFeature(builder, feature2, style1, 1); renderFeature(builder, feature2, style1, 1);
renderFeature(builder, feature3, style2, 1); renderFeature(builder, feature3, style2, 1);
executor.replaceInstructions(builder.finish()); executor.replaceInstructions(builder.finish());
executor.replay(context, transform, 0, {}); executor.execute(context, transform, 0, {});
expect(fillCount).to.be(2); expect(fillCount).to.be(2);
expect(strokeCount).to.be(2); expect(strokeCount).to.be(2);
expect(beginPathCount).to.be(2); expect(beginPathCount).to.be(2);
@@ -136,7 +136,7 @@ describe('ol.render.canvas.ReplayGroup', function() {
renderFeature(builder, feature2, style2, 1); renderFeature(builder, feature2, style2, 1);
renderFeature(builder, feature3, style1, 1); renderFeature(builder, feature3, style1, 1);
executor.replaceInstructions(builder.finish()); executor.replaceInstructions(builder.finish());
executor.replay(context, transform, 0, {}); executor.execute(context, transform, 0, {});
expect(fillCount).to.be(3); expect(fillCount).to.be(3);
expect(strokeCount).to.be(3); expect(strokeCount).to.be(3);
expect(beginPathCount).to.be(3); expect(beginPathCount).to.be(3);
@@ -149,7 +149,7 @@ describe('ol.render.canvas.ReplayGroup', function() {
const skippedUids = {}; const skippedUids = {};
skippedUids[getUid(feature1)] = true; skippedUids[getUid(feature1)] = true;
executor.replaceInstructions(builder.finish()); executor.replaceInstructions(builder.finish());
executor.replay(context, transform, 0, skippedUids); executor.execute(context, transform, 0, skippedUids);
expect(fillCount).to.be(1); expect(fillCount).to.be(1);
expect(strokeCount).to.be(1); expect(strokeCount).to.be(1);
expect(beginPathCount).to.be(1); expect(beginPathCount).to.be(1);
@@ -162,7 +162,7 @@ describe('ol.render.canvas.ReplayGroup', function() {
const skippedUids = {}; const skippedUids = {};
skippedUids[getUid(feature3)] = true; skippedUids[getUid(feature3)] = true;
executor.replaceInstructions(builder.finish()); executor.replaceInstructions(builder.finish());
executor.replay(context, transform, 0, skippedUids); executor.execute(context, transform, 0, skippedUids);
expect(fillCount).to.be(1); expect(fillCount).to.be(1);
expect(strokeCount).to.be(1); expect(strokeCount).to.be(1);
expect(beginPathCount).to.be(1); expect(beginPathCount).to.be(1);
@@ -176,7 +176,7 @@ describe('ol.render.canvas.ReplayGroup', function() {
skippedUids[getUid(feature1)] = true; skippedUids[getUid(feature1)] = true;
skippedUids[getUid(feature2)] = true; skippedUids[getUid(feature2)] = true;
executor.replaceInstructions(builder.finish()); executor.replaceInstructions(builder.finish());
executor.replay(context, transform, 0, skippedUids); executor.execute(context, transform, 0, skippedUids);
expect(fillCount).to.be(1); expect(fillCount).to.be(1);
expect(strokeCount).to.be(1); expect(strokeCount).to.be(1);
expect(beginPathCount).to.be(1); expect(beginPathCount).to.be(1);
@@ -189,7 +189,7 @@ describe('ol.render.canvas.ReplayGroup', function() {
renderFeature(builder, feature2, style1, 1); renderFeature(builder, feature2, style1, 1);
renderFeature(builder, feature3, style1, 1); renderFeature(builder, feature3, style1, 1);
executor.replaceInstructions(builder.finish()); executor.replaceInstructions(builder.finish());
executor.replay(context, transform, 0, {}); executor.execute(context, transform, 0, {});
expect(fillCount).to.be(3); expect(fillCount).to.be(3);
expect(strokeCount).to.be(3); expect(strokeCount).to.be(3);
expect(beginPathCount).to.be(3); expect(beginPathCount).to.be(3);
@@ -218,7 +218,7 @@ describe('ol.render.canvas.ReplayGroup', function() {
renderFeature(builder, feature1, style2, 1); renderFeature(builder, feature1, style2, 1);
renderFeature(builder, feature2, style2, 1); renderFeature(builder, feature2, style2, 1);
executor.replaceInstructions(builder.finish()); executor.replaceInstructions(builder.finish());
executor.replay(context, transform, 0, {}); executor.execute(context, transform, 0, {});
expect(lineDashCount).to.be(1); expect(lineDashCount).to.be(1);
expect(style2.getStroke().getLineDash()).to.eql([3, 6]); expect(style2.getStroke().getLineDash()).to.eql([3, 6]);
@@ -267,7 +267,7 @@ describe('ol.render.canvas.ReplayGroup', function() {
renderFeature(builder, geometrycollection, style, 1); renderFeature(builder, geometrycollection, style, 1);
scaleTransform(transform, 0.1, 0.1); scaleTransform(transform, 0.1, 0.1);
executor.replaceInstructions(builder.finish()); executor.replaceInstructions(builder.finish());
executor.replay(context, transform, 0, {}); executor.execute(context, transform, 0, {});
expect(calls.length).to.be(9); expect(calls.length).to.be(9);
expect(calls[0].geometry).to.be(point.getGeometry()); expect(calls[0].geometry).to.be(point.getGeometry());
expect(calls[0].feature).to.be(point); expect(calls[0].feature).to.be(point);

View File

@@ -241,10 +241,8 @@ describe('ol.renderer.canvas.VectorTileLayer', function() {
}); });
map.addLayer(layer2); map.addLayer(layer2);
const spy1 = sinon.spy(VectorTile.prototype, const spy1 = sinon.spy(VectorTile.prototype, 'getExecutorGroup');
'getReplayGroup'); const spy2 = sinon.spy(VectorTile.prototype, 'setExecutorGroup');
const spy2 = sinon.spy(VectorTile.prototype,
'setReplayGroup');
map.renderSync(); map.renderSync();
expect(spy1.callCount).to.be(4); expect(spy1.callCount).to.be(4);
expect(spy2.callCount).to.be(2); expect(spy2.callCount).to.be(2);
@@ -308,7 +306,7 @@ describe('ol.renderer.canvas.VectorTileLayer', function() {
}); });
describe('#forEachFeatureAtCoordinate', function() { describe('#forEachFeatureAtCoordinate', function() {
let layer, renderer, replayGroup; let layer, renderer, executorGroup;
class TileClass extends VectorImageTile { class TileClass extends VectorImageTile {
constructor() { constructor() {
super(...arguments); super(...arguments);
@@ -317,8 +315,8 @@ describe('ol.renderer.canvas.VectorTileLayer', function() {
const sourceTile = new VectorTile([0, 0, 0]); const sourceTile = new VectorTile([0, 0, 0]);
sourceTile.setState(TileState.LOADED); sourceTile.setState(TileState.LOADED);
sourceTile.setProjection(getProjection('EPSG:3857')); sourceTile.setProjection(getProjection('EPSG:3857'));
sourceTile.getReplayGroup = function() { sourceTile.getExecutorGroup = function() {
return replayGroup; return executorGroup;
}; };
const key = sourceTile.tileCoord.toString(); const key = sourceTile.tileCoord.toString();
this.tileKeys = [key]; this.tileKeys = [key];
@@ -329,7 +327,7 @@ describe('ol.renderer.canvas.VectorTileLayer', function() {
} }
beforeEach(function() { beforeEach(function() {
replayGroup = {}; executorGroup = {};
layer = new VectorTileLayer({ layer = new VectorTileLayer({
source: new VectorTileSource({ source: new VectorTileSource({
tileClass: TileClass, tileClass: TileClass,
@@ -337,7 +335,7 @@ describe('ol.renderer.canvas.VectorTileLayer', function() {
}) })
}); });
renderer = new CanvasVectorTileLayerRenderer(layer); renderer = new CanvasVectorTileLayerRenderer(layer);
replayGroup.forEachFeatureAtCoordinate = function(coordinate, executorGroup.forEachFeatureAtCoordinate = function(coordinate,
resolution, rotation, hitTolerance, skippedFeaturesUids, callback) { resolution, rotation, hitTolerance, skippedFeaturesUids, callback) {
const feature = new Feature(); const feature = new Feature();
callback(feature); callback(feature);