diff --git a/doc/errors/index.md b/doc/errors/index.md index 4608ed7e6a..d4deea08cf 100644 --- a/doc/errors/index.md +++ b/doc/errors/index.md @@ -241,10 +241,6 @@ Support for the `OES_element_index_uint` WebGL extension is mandatory for WebGL Layer opacity must be a number. -### 65 - -A symbol literal representation must be defined on the style supplied to a `WebGLPointsLayer` instance. - ### 66 `forEachFeatureAtCoordinate` cannot be used on a WebGL layer if the hit detection logic has not been enabled. diff --git a/src/ol/layer/WebGLPoints.js b/src/ol/layer/WebGLPoints.js index b778c56898..376a341931 100644 --- a/src/ol/layer/WebGLPoints.js +++ b/src/ol/layer/WebGLPoints.js @@ -4,7 +4,6 @@ import {assign} from '../obj.js'; import WebGLPointsLayerRenderer from '../renderer/webgl/PointsLayer.js'; import {getSymbolFragmentShader, getSymbolVertexShader, parseSymbolStyle} from '../webgl/ShaderBuilder.js'; -import {assert} from '../asserts.js'; import Layer from './Layer.js'; @@ -72,24 +71,24 @@ class WebGLPointsLayer extends Layer { super(baseOptions); /** - * @type {import('../style/LiteralStyle.js').LiteralStyle} + * @private + * @type {import('../webgl/ShaderBuilder.js').StyleParseResult} */ - this.style = options.style; - - assert(this.style.symbol !== undefined, 65); + this.parseResult_ = parseSymbolStyle( + /** @type {import('../style/LiteralStyle.js').LiteralStyle} */ + (options.style).symbol + ); } /** * @inheritDoc */ createRenderer() { - const parseResult = parseSymbolStyle(this.style.symbol); - return new WebGLPointsLayerRenderer(this, { - vertexShader: getSymbolVertexShader(parseResult.params), - fragmentShader: getSymbolFragmentShader(parseResult.params), - uniforms: parseResult.uniforms, - attributes: parseResult.attributes + vertexShader: getSymbolVertexShader(this.parseResult_.params), + fragmentShader: getSymbolFragmentShader(this.parseResult_.params), + uniforms: this.parseResult_.uniforms, + attributes: this.parseResult_.attributes }); } }