From 55a963e0a953a837717e544f33f476b2a93d3495 Mon Sep 17 00:00:00 2001 From: Tim Schaub Date: Mon, 12 Nov 2018 20:47:19 +0100 Subject: [PATCH] Move canvas creation to intermediate canvas renderer constructor --- src/ol/renderer/canvas/IntermediateCanvas.js | 9 ++++++++- src/ol/renderer/canvas/TileLayer.js | 9 +-------- src/ol/renderer/canvas/VectorTileLayer.js | 10 ++-------- 3 files changed, 11 insertions(+), 17 deletions(-) diff --git a/src/ol/renderer/canvas/IntermediateCanvas.js b/src/ol/renderer/canvas/IntermediateCanvas.js index 2ce3c0c259..af7d7dc58a 100644 --- a/src/ol/renderer/canvas/IntermediateCanvas.js +++ b/src/ol/renderer/canvas/IntermediateCanvas.js @@ -15,11 +15,18 @@ class IntermediateCanvasRenderer extends CanvasLayerRenderer { /** * @param {import("../../layer/Layer.js").default} layer Layer. + * @param {boolean=} opt_noContext Skip the context creation. */ - constructor(layer) { + constructor(layer, opt_noContext) { super(layer); + /** + * @protected + * @type {CanvasRenderingContext2D} + */ + this.context = opt_noContext ? null : createCanvasContext2D(); + /** * @protected * @type {import("../../transform.js").Transform} diff --git a/src/ol/renderer/canvas/TileLayer.js b/src/ol/renderer/canvas/TileLayer.js index 70ff809387..a3ffc2d561 100644 --- a/src/ol/renderer/canvas/TileLayer.js +++ b/src/ol/renderer/canvas/TileLayer.js @@ -5,7 +5,6 @@ import {getUid} from '../../util.js'; import TileRange from '../../TileRange.js'; import TileState from '../../TileState.js'; import ViewHint from '../../ViewHint.js'; -import {createCanvasContext2D} from '../../dom.js'; import {containsExtent, createEmpty, equals, getIntersection, isEmpty} from '../../extent.js'; import IntermediateCanvasRenderer from './IntermediateCanvas.js'; import {create as createTransform, compose as composeTransform} from '../../transform.js'; @@ -23,13 +22,7 @@ class CanvasTileLayerRenderer extends IntermediateCanvasRenderer { */ constructor(tileLayer, opt_noContext) { - super(tileLayer); - - /** - * @protected - * @type {CanvasRenderingContext2D} - */ - this.context = opt_noContext ? null : createCanvasContext2D(); + super(tileLayer, opt_noContext); /** * @private diff --git a/src/ol/renderer/canvas/VectorTileLayer.js b/src/ol/renderer/canvas/VectorTileLayer.js index f4126a8518..d25e3ec853 100644 --- a/src/ol/renderer/canvas/VectorTileLayer.js +++ b/src/ol/renderer/canvas/VectorTileLayer.js @@ -4,7 +4,6 @@ import {getUid} from '../../util.js'; import TileState from '../../TileState.js'; import ViewHint from '../../ViewHint.js'; -import {createCanvasContext2D} from '../../dom.js'; import {listen, unlisten} from '../../events.js'; import EventType from '../../events/EventType.js'; import rbush from 'rbush'; @@ -59,7 +58,8 @@ class CanvasVectorTileLayerRenderer extends CanvasTileLayerRenderer { */ constructor(layer) { - super(layer, true); + const renderMode = layer.getRenderMode(); + super(layer, renderMode === VectorTileRenderType.VECTOR); /** * Declutter tree. @@ -85,15 +85,9 @@ class CanvasVectorTileLayerRenderer extends CanvasTileLayerRenderer { */ this.tmpTransform_ = createTransform(); - const renderMode = layer.getRenderMode(); - // Use lower resolution for pure vector rendering. Closest resolution otherwise. this.zDirection = renderMode === VectorTileRenderType.VECTOR ? 1 : 0; - if (renderMode !== VectorTileRenderType.VECTOR) { - this.context = createCanvasContext2D(); - } - listen(labelCache, EventType.CLEAR, this.handleFontsChanged_, this);