From c2c599a51717e4106ccfb684d5511513a3925547 Mon Sep 17 00:00:00 2001 From: Florent gravin Date: Tue, 13 Nov 2018 12:23:53 +0100 Subject: [PATCH] Layer is now responsible of its rendering --- src/ol/layer/Layer.js | 14 ++++++++++++++ src/ol/renderer/Composite.js | 6 +----- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/src/ol/layer/Layer.js b/src/ol/layer/Layer.js index 9a0d413b01..723c7b5be1 100644 --- a/src/ol/layer/Layer.js +++ b/src/ol/layer/Layer.js @@ -172,6 +172,20 @@ class Layer extends BaseLayer { this.changed(); } + /** + * In charge to manage the rendering of the layer. One layer type is + * bounded with one layer renderer. + * @param {?import("../PluggableMap.js").FrameState} frameState Frame state. + * @return {HTMLElement} The rendered element. + */ + render(frameState) { + const layerRenderer = this.getRenderer(); + const layerState = this.getLayerState(); + if (layerRenderer.prepareFrame(frameState, layerState)) { + return layerRenderer.renderFrame(frameState, layerState); + } + } + /** * Sets the layer to be rendered on top of other layers on a map. The map will * not manage this layer in its layers collection, and the callback in diff --git a/src/ol/renderer/Composite.js b/src/ol/renderer/Composite.js index dfd7aa4596..f0c02fc2cc 100644 --- a/src/ol/renderer/Composite.js +++ b/src/ol/renderer/Composite.js @@ -96,11 +96,7 @@ class CompositeMapRenderer extends MapRenderer { } const layer = layerState.layer; - const layerRenderer = this.getLayerRenderer(layer); - if (layerRenderer.prepareFrame(frameState, layerState)) { - const element = layerRenderer.renderFrame(frameState, layerState); - this.children_.push(element); - } + this.children_.push(layer.render(frameState)); } replaceChildren(this.element_, this.children_);