Composite renderer

This commit is contained in:
Tim Schaub
2018-11-10 17:39:00 -06:00
parent fc6882f146
commit 43ed2c1764
5 changed files with 400 additions and 11 deletions

View File

@@ -1,7 +1,7 @@
/**
* @module ol/renderer/Layer
*/
import {getUid} from '../util.js';
import {getUid, abstract} from '../util.js';
import ImageState from '../ImageState.js';
import Observable from '../Observable.js';
import TileState from '../TileState.js';
@@ -26,6 +26,28 @@ class LayerRenderer extends Observable {
}
/**
* Determine whether render should be called.
* @abstract
* @param {import("../PluggableMap.js").FrameState} frameState Frame state.
* @param {import("../layer/Layer.js").State} layerState Layer state.
* @return {boolean} Layer is ready to be rendered.
*/
prepareFrame(frameState, layerState) {
return abstract();
}
/**
* Render the layer.
* @abstract
* @param {import("../PluggableMap.js").FrameState} frameState Frame state.
* @param {import("../layer/Layer.js").State} layerState Layer state.
* @return {HTMLElement} The rendered element.
*/
renderFrame(frameState, layerState) {
return abstract();
}
/**
* Create a function that adds loaded tiles to the tile lookup.
* @param {import("../source/Tile.js").default} source Tile source.
@@ -68,6 +90,21 @@ class LayerRenderer extends Observable {
*/
forEachFeatureAtCoordinate(coordinate, frameState, hitTolerance, callback) {}
/**
* @abstract
* @param {import("../coordinate.js").Coordinate} coordinate Coordinate.
* @param {import("../PluggableMap.js").FrameState} frameState FrameState.
* @param {number} hitTolerance Hit tolerance in pixels.
* @param {function(this: S, import("../layer/Layer.js").default, (Uint8ClampedArray|Uint8Array)): T} callback Layer
* callback.
* @param {S} thisArg Value to use as `this` when executing `callback`.
* @return {T|undefined} Callback result.
* @template S,T
*/
forEachLayerAtCoordinate(coordinate, frameState, hitTolerance, callback, thisArg) {
return abstract();
}
/**
* @return {import("../layer/Layer.js").default} Layer.
*/