Allow WebGL tile layer style to be updated

This commit is contained in:
Tim Schaub
2021-11-18 09:48:26 -07:00
parent d95e507af3
commit c2fc800fc1
4 changed files with 68 additions and 7 deletions

View File

@@ -90,6 +90,17 @@ class WebGLLayerRenderer extends LayerRenderer {
layer.addChangeListener(LayerProperty.MAP, this.removeHelper_.bind(this));
}
/**
* Reset options (only handles uniforms).
* @param {Options} options Options.
*/
reset(options) {
this.uniforms_ = options.uniforms;
if (this.helper) {
this.helper.setUniforms(this.uniforms_);
}
}
removeHelper_() {
if (this.helper) {
this.helper.dispose();

View File

@@ -213,6 +213,24 @@ class WebGLTileLayerRenderer extends WebGLLayerRenderer {
this.tileTextureCache_ = new LRUCache(cacheSize);
}
/**
* @param {Options} options Options.
*/
reset(options) {
super.reset({
uniforms: options.uniforms,
});
this.vertexShader_ = options.vertexShader;
this.fragmentShader_ = options.fragmentShader;
if (this.helper) {
this.program_ = this.helper.getProgram(
this.fragmentShader_,
this.vertexShader_
);
}
}
afterHelperCreated() {
this.program_ = this.helper.getProgram(
this.fragmentShader_,