Introduce Instruction executors

Executors are use to render instructions.
They do not contain cod for building instructions.

Signed-off-by: Guillaume Beraudo <guillaume.beraudo@camptocamp.com>
This commit is contained in:
Guillaume Beraudo
2018-11-13 16:26:29 +01:00
parent ecf79a9ec2
commit fcf470fc8d
6 changed files with 1865 additions and 24 deletions

View File

@@ -11,6 +11,7 @@ import {buffer, createEmpty, containsExtent, getWidth} from '../../extent.js';
import RenderEventType from '../../render/EventType.js';
import {labelCache, rotateAtOffset} from '../../render/canvas.js';
import CanvasReplayGroup from '../../render/canvas/ReplayGroup.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';
@@ -66,7 +67,7 @@ class CanvasVectorLayerRenderer extends CanvasLayerRenderer {
/**
* @private
* @type {import("../../render/canvas/ReplayGroup.js").default}
* @type {import("../../render/canvas/InstructionsGroupExecutor").default}
*/
this.replayGroup_ = null;
@@ -482,7 +483,7 @@ class CanvasVectorLayerRenderer extends CanvasLayerRenderer {
}
const replayGroupInstructions = replayGroup.finish();
const renderingReplayGroup = new CanvasReplayGroup(
const renderingReplayGroup = new InstructionsGroupExecutor(
getRenderTolerance(resolution, pixelRatio), extent, resolution,
pixelRatio, vectorSource.getOverlaps(), this.declutterTree_, vectorLayer.getRenderBuffer());
renderingReplayGroup.replaceInstructions(replayGroupInstructions);