From 792e7e54f1fbcbb9f074357dfd2cb27327c4dc75 Mon Sep 17 00:00:00 2001 From: Tim Schaub Date: Tue, 17 Jul 2018 18:15:47 -0600 Subject: [PATCH] Clean up ol/renderer/canvas classes --- src/ol/renderer/canvas/ImageLayer.js | 22 ++++++++--------- src/ol/renderer/canvas/IntermediateCanvas.js | 17 +++++-------- src/ol/renderer/canvas/Layer.js | 18 +++++--------- src/ol/renderer/canvas/Map.js | 18 ++++++-------- src/ol/renderer/canvas/TileLayer.js | 24 +++++++++--------- src/ol/renderer/canvas/VectorLayer.js | 19 ++++++-------- src/ol/renderer/canvas/VectorTileLayer.js | 26 ++++++++------------ 7 files changed, 58 insertions(+), 86 deletions(-) diff --git a/src/ol/renderer/canvas/ImageLayer.js b/src/ol/renderer/canvas/ImageLayer.js index f0006e4621..ea726ba167 100644 --- a/src/ol/renderer/canvas/ImageLayer.js +++ b/src/ol/renderer/canvas/ImageLayer.js @@ -2,7 +2,6 @@ * @module ol/renderer/canvas/ImageLayer */ import {ENABLE_RASTER_REPROJECTION} from '../../reproj/common.js'; -import {inherits} from '../../util.js'; import ImageCanvas from '../../ImageCanvas.js'; import LayerType from '../../LayerType.js'; import ViewHint from '../../ViewHint.js'; @@ -11,19 +10,20 @@ import {getHeight, getIntersection, getWidth, isEmpty} from '../../extent.js'; import VectorRenderType from '../../layer/VectorRenderType.js'; import {assign} from '../../obj.js'; import {layerRendererConstructors} from './Map.js'; -import IntermediateCanvasRenderer from '../canvas/IntermediateCanvas.js'; +import IntermediateCanvasRenderer from './IntermediateCanvas.js'; import {create as createTransform, compose as composeTransform} from '../../transform.js'; -/** - * @constructor - * @extends {module:ol/renderer/canvas/IntermediateCanvas} - * @param {module:ol/layer/Image|module:ol/layer/Vector} imageLayer Image or vector layer. - * @api - */ -class CanvasImageLayerRenderer { +class CanvasImageLayerRenderer extends IntermediateCanvasRenderer { + + /** + * @constructor + * @extends {module:ol/renderer/canvas/IntermediateCanvas} + * @param {module:ol/layer/Image|module:ol/layer/Vector} imageLayer Image or vector layer. + * @api + */ constructor(imageLayer) { - IntermediateCanvasRenderer.call(this, imageLayer); + super(imageLayer); /** * @private @@ -187,8 +187,6 @@ class CanvasImageLayerRenderer { } } -inherits(CanvasImageLayerRenderer, IntermediateCanvasRenderer); - /** * Determine if this renderer handles the provided layer. diff --git a/src/ol/renderer/canvas/IntermediateCanvas.js b/src/ol/renderer/canvas/IntermediateCanvas.js index f2147f829d..8d8a185ebe 100644 --- a/src/ol/renderer/canvas/IntermediateCanvas.js +++ b/src/ol/renderer/canvas/IntermediateCanvas.js @@ -1,7 +1,6 @@ /** * @module ol/renderer/canvas/IntermediateCanvas */ -import {inherits} from '../../util.js'; import {scale as scaleCoordinate} from '../../coordinate.js'; import {createCanvasContext2D} from '../../dom.js'; import {containsExtent, intersects} from '../../extent.js'; @@ -9,16 +8,14 @@ import {UNDEFINED} from '../../functions.js'; import CanvasLayerRenderer from '../canvas/Layer.js'; import {create as createTransform, apply as applyTransform} from '../../transform.js'; -/** - * @constructor - * @abstract - * @extends {module:ol/renderer/canvas/Layer} - * @param {module:ol/layer/Layer} layer Layer. - */ -class IntermediateCanvasRenderer { +class IntermediateCanvasRenderer extends CanvasLayerRenderer { + + /** + * @param {module:ol/layer/Layer} layer Layer. + */ constructor(layer) { - CanvasLayerRenderer.call(this, layer); + super(layer); /** * @protected @@ -143,7 +140,5 @@ class IntermediateCanvasRenderer { } } -inherits(IntermediateCanvasRenderer, CanvasLayerRenderer); - export default IntermediateCanvasRenderer; diff --git a/src/ol/renderer/canvas/Layer.js b/src/ol/renderer/canvas/Layer.js index 30d1d166b8..eac68ada1d 100644 --- a/src/ol/renderer/canvas/Layer.js +++ b/src/ol/renderer/canvas/Layer.js @@ -1,7 +1,6 @@ /** * @module ol/renderer/canvas/Layer */ -import {inherits} from '../../util.js'; import {getBottomLeft, getBottomRight, getTopLeft, getTopRight} from '../../extent.js'; import {TRUE} from '../../functions.js'; import RenderEvent from '../../render/Event.js'; @@ -11,16 +10,14 @@ import CanvasImmediateRenderer from '../../render/canvas/Immediate.js'; import LayerRenderer from '../Layer.js'; import {create as createTransform, apply as applyTransform, compose as composeTransform} from '../../transform.js'; -/** - * @constructor - * @abstract - * @extends {module:ol/renderer/Layer} - * @param {module:ol/layer/Layer} layer Layer. - */ -class CanvasLayerRenderer { +class CanvasLayerRenderer extends LayerRenderer { + + /** + * @param {module:ol/layer/Layer} layer Layer. + */ constructor(layer) { - LayerRenderer.call(this, layer); + super(layer); /** * @protected @@ -181,7 +178,4 @@ class CanvasLayerRenderer { prepareFrame(frameState, layerState) {} } -inherits(CanvasLayerRenderer, LayerRenderer); - - export default CanvasLayerRenderer; diff --git a/src/ol/renderer/canvas/Map.js b/src/ol/renderer/canvas/Map.js index 7e5ea1ad2a..a41ab50e73 100644 --- a/src/ol/renderer/canvas/Map.js +++ b/src/ol/renderer/canvas/Map.js @@ -2,7 +2,6 @@ * @module ol/renderer/canvas/Map */ import {create as createTransform, apply as applyTransform, compose as composeTransform} from '../../transform.js'; -import {inherits} from '../../util.js'; import {includes, stableSort} from '../../array.js'; import {CLASS_UNSELECTABLE} from '../../css.js'; import {createCanvasContext2D} from '../../dom.js'; @@ -21,15 +20,14 @@ import SourceState from '../../source/State.js'; export const layerRendererConstructors = []; -/** - * @constructor - * @extends {module:ol/renderer/Map} - * @param {module:ol/PluggableMap} map Map. - * @api - */ -class CanvasMapRenderer { +class CanvasMapRenderer extends MapRenderer { + + /** + * @param {module:ol/PluggableMap} map Map. + * @api + */ constructor(map) { - MapRenderer.call(this, map); + super(map); const container = map.getViewport(); @@ -218,7 +216,5 @@ class CanvasMapRenderer { } } -inherits(CanvasMapRenderer, MapRenderer); - export default CanvasMapRenderer; diff --git a/src/ol/renderer/canvas/TileLayer.js b/src/ol/renderer/canvas/TileLayer.js index b0069fa973..7f406795d1 100644 --- a/src/ol/renderer/canvas/TileLayer.js +++ b/src/ol/renderer/canvas/TileLayer.js @@ -1,7 +1,7 @@ /** * @module ol/renderer/canvas/TileLayer */ -import {getUid, inherits} from '../../util.js'; +import {getUid} from '../../util.js'; import LayerType from '../../LayerType.js'; import TileRange from '../../TileRange.js'; import TileState from '../../TileState.js'; @@ -11,22 +11,22 @@ import {containsExtent, createEmpty, equals, getIntersection, isEmpty} from '../ import IntermediateCanvasRenderer from '../canvas/IntermediateCanvas.js'; import {create as createTransform, compose as composeTransform} from '../../transform.js'; -/** - * @constructor - * @extends {module:ol/renderer/canvas/IntermediateCanvas} - * @param {module:ol/layer/Tile|module:ol/layer/VectorTile} tileLayer Tile layer. - * @api - */ -class CanvasTileLayerRenderer { - constructor(tileLayer) { +class CanvasTileLayerRenderer extends IntermediateCanvasRenderer { - IntermediateCanvasRenderer.call(this, tileLayer); + /** + * @param {module:ol/layer/Tile|module:ol/layer/VectorTile} tileLayer Tile layer. + * @param {boolean=} opt_noContext Skip the context creation. + * @api + */ + constructor(tileLayer, opt_noContext) { + + super(tileLayer); /** * @protected * @type {CanvasRenderingContext2D} */ - this.context = this.context === null ? null : createCanvasContext2D(); + this.context = opt_noContext ? null : createCanvasContext2D(); /** * @private @@ -351,8 +351,6 @@ class CanvasTileLayerRenderer { } } -inherits(CanvasTileLayerRenderer, IntermediateCanvasRenderer); - /** * Determine if this renderer handles the provided layer. diff --git a/src/ol/renderer/canvas/VectorLayer.js b/src/ol/renderer/canvas/VectorLayer.js index 206c5f5c49..b59881720f 100644 --- a/src/ol/renderer/canvas/VectorLayer.js +++ b/src/ol/renderer/canvas/VectorLayer.js @@ -1,7 +1,7 @@ /** * @module ol/renderer/canvas/VectorLayer */ -import {getUid, inherits} from '../../util.js'; +import {getUid} from '../../util.js'; import LayerType from '../../LayerType.js'; import ViewHint from '../../ViewHint.js'; import {createCanvasContext2D} from '../../dom.js'; @@ -15,16 +15,15 @@ import CanvasReplayGroup from '../../render/canvas/ReplayGroup.js'; import CanvasLayerRenderer from '../canvas/Layer.js'; import {defaultOrder as defaultRenderOrder, getTolerance as getRenderTolerance, getSquaredTolerance as getSquaredRenderTolerance, renderFeature} from '../vector.js'; -/** - * @constructor - * @extends {module:ol/renderer/canvas/Layer} - * @param {module:ol/layer/Vector} vectorLayer Vector layer. - * @api - */ -class CanvasVectorLayerRenderer { +class CanvasVectorLayerRenderer extends CanvasLayerRenderer { + + /** + * @param {module:ol/layer/Vector} vectorLayer Vector layer. + * @api + */ constructor(vectorLayer) { - CanvasLayerRenderer.call(this, vectorLayer); + super(vectorLayer); /** * Declutter tree. @@ -407,8 +406,6 @@ class CanvasVectorLayerRenderer { } } -inherits(CanvasVectorLayerRenderer, CanvasLayerRenderer); - /** * Determine if this renderer handles the provided layer. diff --git a/src/ol/renderer/canvas/VectorTileLayer.js b/src/ol/renderer/canvas/VectorTileLayer.js index deb400bafd..49256a4fca 100644 --- a/src/ol/renderer/canvas/VectorTileLayer.js +++ b/src/ol/renderer/canvas/VectorTileLayer.js @@ -1,7 +1,7 @@ /** * @module ol/renderer/canvas/VectorTileLayer */ -import {getUid, inherits} from '../../util.js'; +import {getUid} from '../../util.js'; import LayerType from '../../LayerType.js'; import TileState from '../../TileState.js'; import {createCanvasContext2D} from '../../dom.js'; @@ -47,21 +47,17 @@ const VECTOR_REPLAYS = { }; -/** - * @constructor - * @extends {module:ol/renderer/canvas/TileLayer} - * @param {module:ol/layer/VectorTile} layer VectorTile layer. - * @api - */ -class CanvasVectorTileLayerRenderer { +class CanvasVectorTileLayerRenderer extends CanvasTileLayerRenderer { + + /** + * @constructor + * @extends {module:ol/renderer/canvas/TileLayer} + * @param {module:ol/layer/VectorTile} layer VectorTile layer. + * @api + */ constructor(layer) { - /** - * @type {CanvasRenderingContext2D} - */ - this.context = null; - - CanvasTileLayerRenderer.call(this, layer); + super(layer, true); /** * Declutter tree. @@ -474,8 +470,6 @@ class CanvasVectorTileLayerRenderer { } } -inherits(CanvasVectorTileLayerRenderer, CanvasTileLayerRenderer); - /** * Determine if this renderer handles the provided layer.