Reduce usage of "replay" term

This commit is contained in:
Guillaume Beraudo
2018-11-15 13:38:21 +01:00
parent 5ecd832c92
commit 0f5ced8483
14 changed files with 226 additions and 259 deletions

View File

@@ -10,7 +10,7 @@ import rbush from 'rbush';
import {buffer, createEmpty, containsExtent, getWidth} from '../../extent.js';
import RenderEventType from '../../render/EventType.js';
import {labelCache, rotateAtOffset} from '../../render/canvas.js';
import CanvasInstructionsGroupBuilder from '../../render/canvas/InstructionsGroupBuilder.js';
import CanvasBuilderGroup from '../../render/canvas/InstructionsGroupBuilder.js';
import InstructionsGroupExecutor from '../../render/canvas/InstructionsGroupExecutor.js';
import CanvasLayerRenderer from './Layer.js';
import {defaultOrder as defaultRenderOrder, getTolerance as getRenderTolerance, getSquaredTolerance as getSquaredRenderTolerance, renderFeature} from '../vector.js';
@@ -444,7 +444,7 @@ class CanvasVectorLayerRenderer extends CanvasLayerRenderer {
this.dirty_ = false;
const replayGroup = new CanvasInstructionsGroupBuilder(
const replayGroup = new CanvasBuilderGroup(
getRenderTolerance(resolution, pixelRatio), extent, resolution,
pixelRatio, vectorSource.getOverlaps(), this.declutterTree_, vectorLayer.getRenderBuffer());
vectorSource.loadFeatures(extent, resolution, projection);

View File

@@ -13,7 +13,7 @@ import {equivalent as equivalentProjection} from '../../proj.js';
import Units from '../../proj/Units.js';
import ReplayType from '../../render/ReplayType.js';
import {labelCache, rotateAtOffset} from '../../render/canvas.js';
import CanvasInstructionsGroupBuilder, {replayDeclutter} from '../../render/canvas/InstructionsGroupBuilder.js';
import CanvasBuilderGroup, {replayDeclutter} from '../../render/canvas/InstructionsGroupBuilder.js';
import {ORDER} from '../../render/replay.js';
import CanvasTileLayerRenderer from './TileLayer.js';
import {getSquaredTolerance as getSquaredRenderTolerance, renderFeature} from '../vector.js';
@@ -24,7 +24,7 @@ import {
scale as scaleTransform,
translate as translateTransform
} from '../../transform.js';
import InstructionsGroupExectuor from '../../render/canvas/InstructionsGroupExecutor.js';
import CanvasGroupExecutor from '../../render/canvas/InstructionsGroupExecutor.js';
/**
@@ -187,7 +187,7 @@ class CanvasVectorTileLayerRenderer extends CanvasTileLayerRenderer {
sourceTile.setProjection(projection);
}
replayState.dirty = false;
const replayGroup = new CanvasInstructionsGroupBuilder(0, sharedExtent, resolution,
const replayGroup = new CanvasBuilderGroup(0, sharedExtent, resolution,
pixelRatio, source.getOverlaps(), this.declutterTree_, layer.getRenderBuffer());
const squaredTolerance = getSquaredRenderTolerance(resolution, pixelRatio);
@@ -228,7 +228,7 @@ class CanvasVectorTileLayerRenderer extends CanvasTileLayerRenderer {
}
}
const replayGroupInstructions = replayGroup.finish();
const renderingReplayGroup = new InstructionsGroupExectuor(0, sharedExtent, resolution,
const renderingReplayGroup = new CanvasGroupExecutor(0, sharedExtent, resolution,
pixelRatio, source.getOverlaps(), this.declutterTree_, layer.getRenderBuffer());
renderingReplayGroup.replaceInstructions(replayGroupInstructions);
sourceTile.setReplayGroup(layer, tile.tileCoord.toString(), renderingReplayGroup);
@@ -263,7 +263,7 @@ class CanvasVectorTileLayerRenderer extends CanvasTileLayerRenderer {
if (sourceTile.getState() != TileState.LOADED) {
continue;
}
const replayGroup = /** @type {CanvasInstructionsGroupBuilder} */ (sourceTile.getReplayGroup(layer,
const replayGroup = /** @type {CanvasBuilderGroup} */ (sourceTile.getReplayGroup(layer,
tile.tileCoord.toString()));
found = found || replayGroup.forEachFeatureAtCoordinate(coordinate, resolution, rotation, hitTolerance, {},
/**
@@ -371,8 +371,8 @@ class CanvasVectorTileLayerRenderer extends CanvasTileLayerRenderer {
if (sourceTile.getState() != TileState.LOADED) {
continue;
}
const replayGroup = /** @type {CanvasInstructionsGroupBuilder} */ (sourceTile.getReplayGroup(layer, tileCoord.toString()));
if (!replayGroup || !replayGroup.hasReplays(replayTypes)) {
const executorGroup = /** @type {CanvasGroupExecutor} */ (sourceTile.getReplayGroup(layer, tileCoord.toString()));
if (!executorGroup || !executorGroup.hasExecutors(replayTypes)) {
// sourceTile was not yet loaded when this.createReplayGroup_() was
// called, or it has no replays of the types we want to render
continue;
@@ -381,7 +381,7 @@ class CanvasVectorTileLayerRenderer extends CanvasTileLayerRenderer {
transform = this.getTransform(frameState, worldOffset);
}
const currentZ = sourceTile.tileCoord[0];
const currentClip = replayGroup.getClipCoords(transform);
const currentClip = executorGroup.getClipCoords(transform);
context.save();
context.globalAlpha = layerState.opacity;
// Create a clip mask for regions in this low resolution tile that are
@@ -403,7 +403,7 @@ class CanvasVectorTileLayerRenderer extends CanvasTileLayerRenderer {
context.clip();
}
}
replayGroup.replay(context, transform, rotation, {}, snapToPixel, replayTypes, declutterReplays);
executorGroup.replay(context, transform, rotation, {}, snapToPixel, replayTypes, declutterReplays);
context.restore();
clips.push(currentClip);
zs.push(currentZ);
@@ -478,7 +478,7 @@ class CanvasVectorTileLayerRenderer extends CanvasTileLayerRenderer {
const transform = resetTransform(this.tmpTransform_);
scaleTransform(transform, pixelScale, -pixelScale);
translateTransform(transform, -tileExtent[0], -tileExtent[3]);
const replayGroup = /** @type {CanvasInstructionsGroupBuilder} */ (sourceTile.getReplayGroup(layer,
const replayGroup = /** @type {CanvasBuilderGroup} */ (sourceTile.getReplayGroup(layer,
tile.tileCoord.toString()));
replayGroup.replay(context, transform, 0, {}, true, replays);
}

View File

@@ -4,7 +4,7 @@
import {getUid} from '../util.js';
import ImageState from '../ImageState.js';
import GeometryType from '../geom/GeometryType.js';
import ReplayType from '../render/ReplayType.js';
import BuilderType from '../render/ReplayType.js';
/**
@@ -17,7 +17,7 @@ const SIMPLIFY_TOLERANCE = 0.5;
/**
* @const
* @type {Object<import("../geom/GeometryType.js").default,
* function(import("../render/ReplayGroup.js").default, import("../geom/Geometry.js").default,
* function(import("../render/BuilderGroup.js").default, import("../geom/Geometry.js").default,
* import("../style/Style.js").default, Object)>}
*/
const GEOMETRY_RENDERERS = {
@@ -64,30 +64,30 @@ export function getTolerance(resolution, pixelRatio) {
/**
* @param {import("../render/ReplayGroup.js").default} replayGroup Replay group.
* @param {import("../render/BuilderGroup.js").default} builderGroup Builder group.
* @param {import("../geom/Circle.js").default} geometry Geometry.
* @param {import("../style/Style.js").default} style Style.
* @param {import("../Feature.js").default} feature Feature.
*/
function renderCircleGeometry(replayGroup, geometry, style, feature) {
function renderCircleGeometry(builderGroup, geometry, style, feature) {
const fillStyle = style.getFill();
const strokeStyle = style.getStroke();
if (fillStyle || strokeStyle) {
const circleReplay = replayGroup.getReplay(style.getZIndex(), ReplayType.CIRCLE);
const circleReplay = builderGroup.getBuilder(style.getZIndex(), BuilderType.CIRCLE);
circleReplay.setFillStrokeStyle(fillStyle, strokeStyle);
circleReplay.drawCircle(geometry, feature);
}
const textStyle = style.getText();
if (textStyle) {
const textReplay = replayGroup.getReplay(style.getZIndex(), ReplayType.TEXT);
textReplay.setTextStyle(textStyle, replayGroup.addDeclutter(false));
const textReplay = builderGroup.getBuilder(style.getZIndex(), BuilderType.TEXT);
textReplay.setTextStyle(textStyle, builderGroup.addDeclutter(false));
textReplay.drawText(geometry, feature);
}
}
/**
* @param {import("../render/ReplayGroup.js").default} replayGroup Replay group.
* @param {import("../render/BuilderGroup.js").default} replayGroup Replay group.
* @param {import("../Feature.js").FeatureLike} feature Feature.
* @param {import("../style/Style.js").default} style Style.
* @param {number} squaredTolerance Squared tolerance.
@@ -119,7 +119,7 @@ export function renderFeature(replayGroup, feature, style, squaredTolerance, lis
/**
* @param {import("../render/ReplayGroup.js").default} replayGroup Replay group.
* @param {import("../render/BuilderGroup.js").default} replayGroup Replay group.
* @param {import("../Feature.js").FeatureLike} feature Feature.
* @param {import("../style/Style.js").default} style Style.
* @param {number} squaredTolerance Squared tolerance.
@@ -141,7 +141,7 @@ function renderFeatureInternal(replayGroup, feature, style, squaredTolerance) {
/**
* @param {import("../render/ReplayGroup.js").default} replayGroup Replay group.
* @param {import("../render/BuilderGroup.js").default} replayGroup Replay group.
* @param {import("../geom/Geometry.js").default|import("../render/Feature.js").default} geometry Geometry.
* @param {import("../style/Style.js").default} style Style.
* @param {import("../Feature.js").FeatureLike} feature Feature.
@@ -154,13 +154,13 @@ function renderGeometry(replayGroup, geometry, style, feature) {
}
return;
}
const replay = replayGroup.getReplay(style.getZIndex(), ReplayType.DEFAULT);
const replay = replayGroup.getBuilder(style.getZIndex(), BuilderType.DEFAULT);
replay.drawCustom(/** @type {import("../geom/SimpleGeometry.js").default} */ (geometry), feature, style.getRenderer());
}
/**
* @param {import("../render/ReplayGroup.js").default} replayGroup Replay group.
* @param {import("../render/BuilderGroup.js").default} replayGroup Replay group.
* @param {import("../geom/GeometryCollection.js").default} geometry Geometry.
* @param {import("../style/Style.js").default} style Style.
* @param {import("../Feature.js").default} feature Feature.
@@ -177,140 +177,140 @@ function renderGeometryCollectionGeometry(replayGroup, geometry, style, feature)
/**
* @param {import("../render/ReplayGroup.js").default} replayGroup Replay group.
* @param {import("../render/BuilderGroup.js").default} builderGroup Replay group.
* @param {import("../geom/LineString.js").default|import("../render/Feature.js").default} geometry Geometry.
* @param {import("../style/Style.js").default} style Style.
* @param {import("../Feature.js").FeatureLike} feature Feature.
*/
function renderLineStringGeometry(replayGroup, geometry, style, feature) {
function renderLineStringGeometry(builderGroup, geometry, style, feature) {
const strokeStyle = style.getStroke();
if (strokeStyle) {
const lineStringReplay = replayGroup.getReplay(style.getZIndex(), ReplayType.LINE_STRING);
const lineStringReplay = builderGroup.getBuilder(style.getZIndex(), BuilderType.LINE_STRING);
lineStringReplay.setFillStrokeStyle(null, strokeStyle);
lineStringReplay.drawLineString(geometry, feature);
}
const textStyle = style.getText();
if (textStyle) {
const textReplay = replayGroup.getReplay(style.getZIndex(), ReplayType.TEXT);
textReplay.setTextStyle(textStyle, replayGroup.addDeclutter(false));
const textReplay = builderGroup.getBuilder(style.getZIndex(), BuilderType.TEXT);
textReplay.setTextStyle(textStyle, builderGroup.addDeclutter(false));
textReplay.drawText(geometry, feature);
}
}
/**
* @param {import("../render/ReplayGroup.js").default} replayGroup Replay group.
* @param {import("../render/BuilderGroup.js").default} builderGroup Replay group.
* @param {import("../geom/MultiLineString.js").default|import("../render/Feature.js").default} geometry Geometry.
* @param {import("../style/Style.js").default} style Style.
* @param {import("../Feature.js").FeatureLike} feature Feature.
*/
function renderMultiLineStringGeometry(replayGroup, geometry, style, feature) {
function renderMultiLineStringGeometry(builderGroup, geometry, style, feature) {
const strokeStyle = style.getStroke();
if (strokeStyle) {
const lineStringReplay = replayGroup.getReplay(style.getZIndex(), ReplayType.LINE_STRING);
const lineStringReplay = builderGroup.getBuilder(style.getZIndex(), BuilderType.LINE_STRING);
lineStringReplay.setFillStrokeStyle(null, strokeStyle);
lineStringReplay.drawMultiLineString(geometry, feature);
}
const textStyle = style.getText();
if (textStyle) {
const textReplay = replayGroup.getReplay(style.getZIndex(), ReplayType.TEXT);
textReplay.setTextStyle(textStyle, replayGroup.addDeclutter(false));
const textReplay = builderGroup.getBuilder(style.getZIndex(), BuilderType.TEXT);
textReplay.setTextStyle(textStyle, builderGroup.addDeclutter(false));
textReplay.drawText(geometry, feature);
}
}
/**
* @param {import("../render/ReplayGroup.js").default} replayGroup Replay group.
* @param {import("../render/BuilderGroup.js").default} builderGroup Replay group.
* @param {import("../geom/MultiPolygon.js").default} geometry Geometry.
* @param {import("../style/Style.js").default} style Style.
* @param {import("../Feature.js").default} feature Feature.
*/
function renderMultiPolygonGeometry(replayGroup, geometry, style, feature) {
function renderMultiPolygonGeometry(builderGroup, geometry, style, feature) {
const fillStyle = style.getFill();
const strokeStyle = style.getStroke();
if (strokeStyle || fillStyle) {
const polygonReplay = replayGroup.getReplay(style.getZIndex(), ReplayType.POLYGON);
const polygonReplay = builderGroup.getBuilder(style.getZIndex(), BuilderType.POLYGON);
polygonReplay.setFillStrokeStyle(fillStyle, strokeStyle);
polygonReplay.drawMultiPolygon(geometry, feature);
}
const textStyle = style.getText();
if (textStyle) {
const textReplay = replayGroup.getReplay(style.getZIndex(), ReplayType.TEXT);
textReplay.setTextStyle(textStyle, replayGroup.addDeclutter(false));
const textReplay = builderGroup.getBuilder(style.getZIndex(), BuilderType.TEXT);
textReplay.setTextStyle(textStyle, builderGroup.addDeclutter(false));
textReplay.drawText(geometry, feature);
}
}
/**
* @param {import("../render/ReplayGroup.js").default} replayGroup Replay group.
* @param {import("../render/BuilderGroup.js").default} builderGroup Replay group.
* @param {import("../geom/Point.js").default|import("../render/Feature.js").default} geometry Geometry.
* @param {import("../style/Style.js").default} style Style.
* @param {import("../Feature.js").FeatureLike} feature Feature.
*/
function renderPointGeometry(replayGroup, geometry, style, feature) {
function renderPointGeometry(builderGroup, geometry, style, feature) {
const imageStyle = style.getImage();
if (imageStyle) {
if (imageStyle.getImageState() != ImageState.LOADED) {
return;
}
const imageReplay = replayGroup.getReplay(style.getZIndex(), ReplayType.IMAGE);
imageReplay.setImageStyle(imageStyle, replayGroup.addDeclutter(false));
const imageReplay = builderGroup.getBuilder(style.getZIndex(), BuilderType.IMAGE);
imageReplay.setImageStyle(imageStyle, builderGroup.addDeclutter(false));
imageReplay.drawPoint(geometry, feature);
}
const textStyle = style.getText();
if (textStyle) {
const textReplay = replayGroup.getReplay(style.getZIndex(), ReplayType.TEXT);
textReplay.setTextStyle(textStyle, replayGroup.addDeclutter(!!imageStyle));
const textReplay = builderGroup.getBuilder(style.getZIndex(), BuilderType.TEXT);
textReplay.setTextStyle(textStyle, builderGroup.addDeclutter(!!imageStyle));
textReplay.drawText(geometry, feature);
}
}
/**
* @param {import("../render/ReplayGroup.js").default} replayGroup Replay group.
* @param {import("../render/BuilderGroup.js").default} builderGroup Replay group.
* @param {import("../geom/MultiPoint.js").default|import("../render/Feature.js").default} geometry Geometry.
* @param {import("../style/Style.js").default} style Style.
* @param {import("../Feature.js").FeatureLike} feature Feature.
*/
function renderMultiPointGeometry(replayGroup, geometry, style, feature) {
function renderMultiPointGeometry(builderGroup, geometry, style, feature) {
const imageStyle = style.getImage();
if (imageStyle) {
if (imageStyle.getImageState() != ImageState.LOADED) {
return;
}
const imageReplay = replayGroup.getReplay(style.getZIndex(), ReplayType.IMAGE);
imageReplay.setImageStyle(imageStyle, replayGroup.addDeclutter(false));
const imageReplay = builderGroup.getBuilder(style.getZIndex(), BuilderType.IMAGE);
imageReplay.setImageStyle(imageStyle, builderGroup.addDeclutter(false));
imageReplay.drawMultiPoint(geometry, feature);
}
const textStyle = style.getText();
if (textStyle) {
const textReplay = replayGroup.getReplay(style.getZIndex(), ReplayType.TEXT);
textReplay.setTextStyle(textStyle, replayGroup.addDeclutter(!!imageStyle));
const textReplay = builderGroup.getBuilder(style.getZIndex(), BuilderType.TEXT);
textReplay.setTextStyle(textStyle, builderGroup.addDeclutter(!!imageStyle));
textReplay.drawText(geometry, feature);
}
}
/**
* @param {import("../render/ReplayGroup.js").default} replayGroup Replay group.
* @param {import("../render/BuilderGroup.js").default} builderGroup Replay group.
* @param {import("../geom/Polygon.js").default|import("../render/Feature.js").default} geometry Geometry.
* @param {import("../style/Style.js").default} style Style.
* @param {import("../Feature.js").FeatureLike} feature Feature.
*/
function renderPolygonGeometry(replayGroup, geometry, style, feature) {
function renderPolygonGeometry(builderGroup, geometry, style, feature) {
const fillStyle = style.getFill();
const strokeStyle = style.getStroke();
if (fillStyle || strokeStyle) {
const polygonReplay = replayGroup.getReplay(style.getZIndex(), ReplayType.POLYGON);
const polygonReplay = builderGroup.getBuilder(style.getZIndex(), BuilderType.POLYGON);
polygonReplay.setFillStrokeStyle(fillStyle, strokeStyle);
polygonReplay.drawPolygon(geometry, feature);
}
const textStyle = style.getText();
if (textStyle) {
const textReplay = replayGroup.getReplay(style.getZIndex(), ReplayType.TEXT);
textReplay.setTextStyle(textStyle, replayGroup.addDeclutter(false));
const textReplay = builderGroup.getBuilder(style.getZIndex(), BuilderType.TEXT);
textReplay.setTextStyle(textStyle, builderGroup.addDeclutter(false));
textReplay.drawText(geometry, feature);
}
}