ol 10.0.1-dev.1723833631932 → 10.0.1-dev.1723903835092

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ol",
3
- "version": "10.0.1-dev.1723833631932",
3
+ "version": "10.0.1-dev.1723903835092",
4
4
  "description": "OpenLayers mapping library",
5
5
  "keywords": [
6
6
  "map",
@@ -165,12 +165,28 @@ declare class VectorStyleRenderer {
165
165
  constructor(styleOrShaders: VectorStyle, helper: import("../../webgl/Helper.js").default, enableHitDetection: boolean);
166
166
  /**
167
167
  * @private
168
+ * @type {import('../../webgl/Helper.js').default}
168
169
  */
169
170
  private helper_;
170
171
  /**
171
172
  * @private
172
173
  */
173
174
  private hitDetectionEnabled_;
175
+ /**
176
+ * @private
177
+ * @type {WebGLProgram}
178
+ */
179
+ private fillProgram_;
180
+ /**
181
+ * @private
182
+ * @type {WebGLProgram}
183
+ */
184
+ private strokeProgram_;
185
+ /**
186
+ * @private
187
+ * @type {WebGLProgram}
188
+ */
189
+ private symbolProgram_;
174
190
  /**
175
191
  * @type {boolean}
176
192
  * @private
@@ -184,10 +200,6 @@ declare class VectorStyleRenderer {
184
200
  * @private
185
201
  */
186
202
  private fillFragmentShader_;
187
- /**
188
- * @private
189
- */
190
- private fillProgram_;
191
203
  /**
192
204
  * @type {boolean}
193
205
  * @private
@@ -201,10 +213,6 @@ declare class VectorStyleRenderer {
201
213
  * @private
202
214
  */
203
215
  private strokeFragmentShader_;
204
- /**
205
- * @private
206
- */
207
- private strokeProgram_;
208
216
  /**
209
217
  * @type {boolean}
210
218
  * @private
@@ -218,10 +226,6 @@ declare class VectorStyleRenderer {
218
226
  * @private
219
227
  */
220
228
  private symbolFragmentShader_;
221
- /**
222
- * @private
223
- */
224
- private symbolProgram_;
225
229
  /**
226
230
  * @private
227
231
  */
@@ -283,6 +287,11 @@ declare class VectorStyleRenderer {
283
287
  * @private
284
288
  */
285
289
  private renderInternal_;
290
+ /**
291
+ * @param {import('../../webgl/Helper.js').default} helper Helper
292
+ * @param {WebGLBuffers} buffers WebGL Buffers to reload if any
293
+ */
294
+ setHelper(helper: import("../../webgl/Helper.js").default, buffers?: WebGLBuffers): void;
286
295
  }
287
296
  import WebGLArrayBuffer from '../../webgl/Buffer.js';
288
297
  //# sourceMappingURL=VectorStyleRenderer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"VectorStyleRenderer.d.ts","sourceRoot":"","sources":["VectorStyleRenderer.js"],"names":[],"mappings":";;;;yBA4BU,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;cAmBF,CAAS,IAAwD,EAAnD,OAAO,yBAAyB,EAAE,iBAAiB,EAAE,IAAmC,EAAnC,OAAO,eAAe,EAAE,WAAW,KAAE,MAAM,GAAC,KAAK,CAAC,MAAM,CAAC;;mCAK7H;QAAO,MAAM,GAAE,mBAAmB;CAAC;iCACnC;QAAO,MAAM,GAAE,OAAO,oBAAoB,EAAE,YAAY;CAAC;;;;;oBAKxD,KAAK,CAAC,gBAAgB,CAAC;;;;uBACvB,KAAK,CAAC,gBAAgB,CAAC;;;;kBACvB,KAAK,CAAC,gBAAgB,CAAC;;;;6BACvB,OAAO,oBAAoB,EAAE,SAAS;;;;;;yBAKtC,YAAY,GAAC,IAAI;;;;4BACjB,YAAY,GAAC,IAAI;;;;uBACjB,YAAY,GAAC,IAAI;;;;;;;;;YAKjB,MAAM;;;;cACN,MAAM;;;;;;aAKN,OAAO,8BAA8B,EAAE,aAAa;;;;;;;;;;;;;;;0BAOrD,OAAO,sBAAsB,EAAE,UAAU,GAAC,YAAY;AA5CnE;;;;;;;GAOG;AAEH;;;GAGG;AAEH;;;;;;GAMG;AAEH;;;;;GAKG;AAEH;;;;GAIG;AAEH;;;;;;GAMG;AAEH;;GAEG;AAEH;;;;;;;;;;;;;GAaG;AACH;IACE;;;;OAIG;IACH,4BAJW,WAAW,UACX,OAAO,uBAAuB,EAAE,OAAO,sBACvC,OAAO,EA0MjB;IAvMC;;OAEG;IACH,gBAAqB;IAErB;;OAEG;IACH,6BAA8C;IAgB9C;;;OAGG;IACH,iBAAuD;IAErD;;OAEG;IACH,0BAA8D;IAC9D;;OAEG;IACH,4BAAkE;IAClE;;OAEG;IACH,qBAGC;IAGH;;;OAGG;IACH,mBAA2D;IAEzD;;OAEG;IACH,4BAAkE;IAClE;;OAEG;IACH,8BAAsE;IACtE;;OAEG;IACH,uBAGC;IAGH;;;OAGG;IACH,mBAA2D;IAEzD;;OAEG;IACH,4BAAkE;IAClE;;OAEG;IACH,8BAAsE;IACtE;;OAEG;IACH,uBAGC;IAcH;;OAEG;IACH,0BAIC;IACD;;OAEG;IACH,kBAAiC;IASjC;;;OAGG;IACH,+BAOC;IACD;;;OAGG;IACH,kCAqCC;IACD;;;OAGG;IACH,6BAYC;IAOH;;;;OAIG;IACH,+BAJW,OAAO,yBAAyB,EAAE,OAAO,aACzC,OAAO,oBAAoB,EAAE,SAAS,GACrC,OAAO,CAAC,YAAY,CAAC,CAqChC;IAED;;;;;OAKG;IACH,oCA+BC;IAED;;;;;;OAMG;IACH,gCAuEC;IAED;;;;;OAKG;IACH,gBAJW,YAAY,cACZ,OAAO,cAAc,EAAE,UAAU,qBACjC,MAAY,IAAI,QA8B1B;IAED;;;;;;;;OAQG;IACH,wBAkBC;CACF;6BArhB4B,uBAAuB"}
1
+ {"version":3,"file":"VectorStyleRenderer.d.ts","sourceRoot":"","sources":["VectorStyleRenderer.js"],"names":[],"mappings":";;;;yBA4BU,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;cAmBF,CAAS,IAAwD,EAAnD,OAAO,yBAAyB,EAAE,iBAAiB,EAAE,IAAmC,EAAnC,OAAO,eAAe,EAAE,WAAW,KAAE,MAAM,GAAC,KAAK,CAAC,MAAM,CAAC;;mCAK7H;QAAO,MAAM,GAAE,mBAAmB;CAAC;iCACnC;QAAO,MAAM,GAAE,OAAO,oBAAoB,EAAE,YAAY;CAAC;;;;;oBAKxD,KAAK,CAAC,gBAAgB,CAAC;;;;uBACvB,KAAK,CAAC,gBAAgB,CAAC;;;;kBACvB,KAAK,CAAC,gBAAgB,CAAC;;;;6BACvB,OAAO,oBAAoB,EAAE,SAAS;;;;;;yBAKtC,YAAY,GAAC,IAAI;;;;4BACjB,YAAY,GAAC,IAAI;;;;uBACjB,YAAY,GAAC,IAAI;;;;;;;;;YAKjB,MAAM;;;;cACN,MAAM;;;;;;aAKN,OAAO,8BAA8B,EAAE,aAAa;;;;;;;;;;;;;;;0BAOrD,OAAO,sBAAsB,EAAE,UAAU,GAAC,YAAY;AA5CnE;;;;;;;GAOG;AAEH;;;GAGG;AAEH;;;;;;GAMG;AAEH;;;;;GAKG;AAEH;;;;GAIG;AAEH;;;;;;GAMG;AAEH;;GAEG;AAEH;;;;;;;;;;;;;GAaG;AACH;IACE;;;;OAIG;IACH,4BAJW,WAAW,UACX,OAAO,uBAAuB,EAAE,OAAO,sBACvC,OAAO,EAsMjB;IAnMC;;;OAGG;IACH,gBAAY;IAEZ;;OAEG;IACH,6BAA8C;IAgB9C;;;OAGG;IACH,qBAAiB;IAEjB;;;OAGG;IACH,uBAAmB;IAEnB;;;OAGG;IACH,uBAAmB;IAEnB;;;OAGG;IACH,iBAAuD;IAErD;;OAEG;IACH,0BAA8D;IAC9D;;OAEG;IACH,4BAAkE;IAGpE;;;OAGG;IACH,mBAA2D;IAEzD;;OAEG;IACH,4BAAkE;IAClE;;OAEG;IACH,8BAAsE;IAGxE;;;OAGG;IACH,mBAA2D;IAEzD;;OAEG;IACH,4BAAkE;IAClE;;OAEG;IACH,8BAAsE;IAcxE;;OAEG;IACH,0BAIC;IACD;;OAEG;IACH,kBAAiC;IASjC;;;OAGG;IACH,+BAOC;IACD;;;OAGG;IACH,kCAqCC;IACD;;;OAGG;IACH,6BAYC;IAKH;;;;OAIG;IACH,+BAJW,OAAO,yBAAyB,EAAE,OAAO,aACzC,OAAO,oBAAoB,EAAE,SAAS,GACrC,OAAO,CAAC,YAAY,CAAC,CAqChC;IAED;;;;;OAKG;IACH,oCA+BC;IAED;;;;;;OAMG;IACH,gCAuEC;IAED;;;;;OAKG;IACH,gBAJW,YAAY,cACZ,OAAO,cAAc,EAAE,UAAU,qBACjC,MAAY,IAAI,QA8B1B;IAED;;;;;;;;OAQG;IACH,wBAkBC;IAED;;;OAGG;IACH,kBAHW,OAAO,uBAAuB,EAAE,OAAO,YACvC,YAAY,QAuCtB;CACF;6BA5jB4B,uBAAuB"}
@@ -110,8 +110,9 @@ class VectorStyleRenderer {
110
110
  constructor(styleOrShaders, helper, enableHitDetection) {
111
111
  /**
112
112
  * @private
113
+ * @type {import('../../webgl/Helper.js').default}
113
114
  */
114
- this.helper_ = helper;
115
+ this.helper_;
115
116
 
116
117
  /**
117
118
  * @private
@@ -132,6 +133,24 @@ class VectorStyleRenderer {
132
133
  };
133
134
  }
134
135
 
136
+ /**
137
+ * @private
138
+ * @type {WebGLProgram}
139
+ */
140
+ this.fillProgram_;
141
+
142
+ /**
143
+ * @private
144
+ * @type {WebGLProgram}
145
+ */
146
+ this.strokeProgram_;
147
+
148
+ /**
149
+ * @private
150
+ * @type {WebGLProgram}
151
+ */
152
+ this.symbolProgram_;
153
+
135
154
  /**
136
155
  * @type {boolean}
137
156
  * @private
@@ -146,13 +165,6 @@ class VectorStyleRenderer {
146
165
  * @private
147
166
  */
148
167
  this.fillFragmentShader_ = shaders.builder.getFillFragmentShader();
149
- /**
150
- * @private
151
- */
152
- this.fillProgram_ = this.helper_.getProgram(
153
- this.fillFragmentShader_,
154
- this.fillVertexShader_,
155
- );
156
168
  }
157
169
 
158
170
  /**
@@ -169,13 +181,6 @@ class VectorStyleRenderer {
169
181
  * @private
170
182
  */
171
183
  this.strokeFragmentShader_ = shaders.builder.getStrokeFragmentShader();
172
- /**
173
- * @private
174
- */
175
- this.strokeProgram_ = this.helper_.getProgram(
176
- this.strokeFragmentShader_,
177
- this.strokeVertexShader_,
178
- );
179
184
  }
180
185
 
181
186
  /**
@@ -192,13 +197,6 @@ class VectorStyleRenderer {
192
197
  * @private
193
198
  */
194
199
  this.symbolFragmentShader_ = shaders.builder.getSymbolFragmentShader();
195
- /**
196
- * @private
197
- */
198
- this.symbolProgram_ = this.helper_.getProgram(
199
- this.symbolFragmentShader_,
200
- this.symbolVertexShader_,
201
- );
202
200
  }
203
201
 
204
202
  const hitDetectionAttributes = this.hitDetectionEnabled_
@@ -304,9 +302,7 @@ class VectorStyleRenderer {
304
302
  ...customAttributesDesc,
305
303
  ];
306
304
 
307
- if (shaders.uniforms) {
308
- this.helper_.addUniforms(shaders.uniforms);
309
- }
305
+ this.setHelper(helper);
310
306
  }
311
307
 
312
308
  /**
@@ -534,6 +530,49 @@ class VectorStyleRenderer {
534
530
  preRenderCallback();
535
531
  this.helper_.drawElements(0, renderCount);
536
532
  }
533
+
534
+ /**
535
+ * @param {import('../../webgl/Helper.js').default} helper Helper
536
+ * @param {WebGLBuffers} buffers WebGL Buffers to reload if any
537
+ */
538
+ setHelper(helper, buffers = null) {
539
+ this.helper_ = helper;
540
+
541
+ if (this.hasFill_) {
542
+ this.fillProgram_ = this.helper_.getProgram(
543
+ this.fillFragmentShader_,
544
+ this.fillVertexShader_,
545
+ );
546
+ }
547
+ if (this.hasStroke_) {
548
+ this.strokeProgram_ = this.helper_.getProgram(
549
+ this.strokeFragmentShader_,
550
+ this.strokeVertexShader_,
551
+ );
552
+ }
553
+ if (this.hasSymbol_) {
554
+ this.symbolProgram_ = this.helper_.getProgram(
555
+ this.symbolFragmentShader_,
556
+ this.symbolVertexShader_,
557
+ );
558
+ }
559
+ this.helper_.addUniforms(this.uniforms_);
560
+
561
+ if (buffers) {
562
+ if (buffers.polygonBuffers) {
563
+ this.helper_.flushBufferData(buffers.polygonBuffers[0]);
564
+ this.helper_.flushBufferData(buffers.polygonBuffers[1]);
565
+ }
566
+ if (buffers.lineStringBuffers) {
567
+ this.helper_.flushBufferData(buffers.lineStringBuffers[0]);
568
+ this.helper_.flushBufferData(buffers.lineStringBuffers[1]);
569
+ }
570
+ if (buffers.pointBuffers) {
571
+ this.helper_.flushBufferData(buffers.pointBuffers[0]);
572
+ this.helper_.flushBufferData(buffers.pointBuffers[1]);
573
+ }
574
+ }
575
+ }
537
576
  }
538
577
 
539
578
  export default VectorStyleRenderer;
@@ -78,6 +78,7 @@ declare class WebGLLayerRenderer<LayerType extends import("../../layer/Layer.js"
78
78
  * @protected
79
79
  */
80
80
  protected helper: WebGLHelper;
81
+ onMapChanged_: () => void;
81
82
  /**
82
83
  * @param {WebGLRenderingContext} context The WebGL rendering context.
83
84
  * @param {import("../../Map.js").FrameState} frameState Frame state.
@@ -110,6 +111,10 @@ declare class WebGLLayerRenderer<LayerType extends import("../../layer/Layer.js"
110
111
  * @protected
111
112
  */
112
113
  protected prepareFrameInternal(frameState: import("../../Map.js").FrameState): boolean;
114
+ /**
115
+ * @protected
116
+ */
117
+ protected clearCache(): void;
113
118
  /**
114
119
  * @param {import("../../render/EventType.js").default} type Event type.
115
120
  * @param {WebGLRenderingContext} context The rendering context.
@@ -1 +1 @@
1
- {"version":3,"file":"Layer.d.ts","sourceRoot":"","sources":["Layer.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAaA;;;;;;;GAOG;AAEH;;;;GAIG;AAEH;;;;;;GAMG;AACH,iCAHsD,SAAS,SAAlD,OAAQ,sBAAsB,EAAE,OAAQ;IAInD;;;OAGG;IACH,mBAHW,SAAS,iCAoCnB;IA5BC;;;;;OAKG;IACH,+BAA+C;IAE/C;;OAEG;IACH,uBAA2C;IAE3C;;OAEG;IACH,kBAAiC;IAEjC;;;OAGG;IACH,kBAHU,WAAW,CAGV;IAQb;;;;OAIG;IACH,2CAJW,qBAAqB,cACrB,OAAO,cAAc,EAAE,UAAU,QAc3C;IAED;;;;OAIG;IACH,4CAJW,qBAAqB,cACrB,OAAO,cAAc,EAAE,UAAU,QAc3C;IAED;;;OAGG;IACH,eAFW,OAAO,QAOjB;IAED;;OAEG;IACH,+BAKC;IA0DD;;OAEG;IACH,qCAAuB;IAEvB;;;;;OAKG;IACH,2CAJW,OAAO,cAAc,EAAE,UAAU,GAChC,OAAO,CAKlB;IAWD;;;;;OAKG;IACH,6BAsBC;IAED;;;;OAIG;IACH,6BAJW,qBAAqB,cACrB,OAAO,cAAc,EAAE,UAAU,QAK3C;IAED;;;;OAIG;IACH,8BAJW,qBAAqB,cACrB,OAAO,cAAc,EAAE,UAAU,QAK3C;CACF;0BA/PyB,aAAa;wBAGf,uBAAuB"}
1
+ {"version":3,"file":"Layer.d.ts","sourceRoot":"","sources":["Layer.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAaA;;;;;;;GAOG;AAEH;;;;GAIG;AAEH;;;;;;GAMG;AACH,iCAHsD,SAAS,SAAlD,OAAQ,sBAAsB,EAAE,OAAQ;IAInD;;;OAGG;IACH,mBAHW,SAAS,iCAyCnB;IAjCC;;;;;OAKG;IACH,+BAA+C;IAE/C;;OAEG;IACH,uBAA2C;IAE3C;;OAEG;IACH,kBAAiC;IAEjC;;;OAGG;IACH,kBAHU,WAAW,CAGV;IAEX,0BAGC;IAQH;;;;OAIG;IACH,2CAJW,qBAAqB,cACrB,OAAO,cAAc,EAAE,UAAU,QAc3C;IAED;;;;OAIG;IACH,4CAJW,qBAAqB,cACrB,OAAO,cAAc,EAAE,UAAU,QAc3C;IAED;;;OAGG;IACH,eAFW,OAAO,QAOjB;IAED;;OAEG;IACH,+BAKC;IA0DD;;OAEG;IACH,qCAAuB;IAEvB;;;;;OAKG;IACH,2CAJW,OAAO,cAAc,EAAE,UAAU,GAChC,OAAO,CAKlB;IAED;;OAEG;IACH,6BAAe;IAgBf;;;;;OAKG;IACH,6BAsBC;IAED;;;;OAIG;IACH,6BAJW,qBAAqB,cACrB,OAAO,cAAc,EAAE,UAAU,QAK3C;IAED;;;;OAIG;IACH,8BAJW,qBAAqB,cACrB,OAAO,cAAc,EAAE,UAAU,QAK3C;CACF;0BA9QyB,aAAa;wBAGf,uBAAuB"}
@@ -67,7 +67,12 @@ class WebGLLayerRenderer extends LayerRenderer {
67
67
  */
68
68
  this.helper;
69
69
 
70
- layer.addChangeListener(LayerProperty.MAP, this.removeHelper.bind(this));
70
+ this.onMapChanged_ = () => {
71
+ this.clearCache();
72
+ this.removeHelper();
73
+ };
74
+
75
+ layer.addChangeListener(LayerProperty.MAP, this.onMapChanged_);
71
76
 
72
77
  this.dispatchPreComposeEvent = this.dispatchPreComposeEvent.bind(this);
73
78
  this.dispatchPostComposeEvent = this.dispatchPostComposeEvent.bind(this);
@@ -201,12 +206,22 @@ class WebGLLayerRenderer extends LayerRenderer {
201
206
  return true;
202
207
  }
203
208
 
209
+ /**
210
+ * @protected
211
+ */
212
+ clearCache() {}
213
+
204
214
  /**
205
215
  * Clean up.
206
216
  * @override
207
217
  */
208
218
  disposeInternal() {
219
+ this.clearCache();
209
220
  this.removeHelper();
221
+ this.getLayer()?.removeChangeListener(
222
+ LayerProperty.MAP,
223
+ this.onMapChanged_,
224
+ );
210
225
  super.disposeInternal();
211
226
  }
212
227
 
@@ -1 +1 @@
1
- {"version":3,"file":"PointsLayer.d.ts","sourceRoot":"","sources":["PointsLayer.js"],"names":[],"mappings":";;;;;;;;;UA+Bc,MAAM;;;;;cACN,CAAS,IAA+B,EAA/B,OAAO,eAAe,EAAE,OAAO,EAAE,IAAiB,EAAjB;YAAO,MAAM,GAAE,GAAC;KAAC,KAAE,MAAM;;;;;;;;;;aAOnE,OAAO,eAAe,EAAE,OAAO;;;;gBAC/B;YAAO,MAAM,GAAE,GAAC;KAAC;;;;cACjB,OAAO,YAAY,EAAE,QAAQ;;;;;;;;;;;;;;;;;;kBAW7B,MAAM;;;;oBACN,MAAM;;;;;;;;;;;;;;;;;AAzBpB;;;;;;GAMG;AAEH;;;;;;GAMG;AAEH;;;;;;;;;;;;;;GAcG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8DG;AACH;IACE;;;OAGG;IACH,mBAHW,OAAO,sBAAsB,EAAE,OAAO,WACtC,OAAO,EAoOjB;IAxNC;;OAEG;IACH,wBAAyB;IAEzB;;OAEG;IACH,wBAAuE;IACvE;;OAEG;IACH,uBAGC;IAED;;OAEG;IACH,sBAAyC;IAEzC;;OAEG;IACH,wBAA6C;IAE7C;;;OAGG;IACH,iBAAa;IAEb;;;OAGG;IACH,6BAA+D;IAY/D;;;;OAIG;IACH,YAFU,KAAK,CAAC,OAAO,uBAAuB,EAAE,oBAAoB,CAAC,CAapE;IAgBD,oCAAoE;IAEpE;;OAEG;IACH,wBAAoC;IAEpC;;;;;;OAMG;IACH,0BAAkD;IAElD;;;;OAIG;IACH,yBAAyC;IAEzC;;;OAGG;IACH,+BAA+C;IAE/C;;;OAGG;IACH,4BAA8C;IAE9C;;;OAGG;IACH,yBAAqB;IAErB;;;;OAIG;IACH,mBAAmB;IAEnB;;OAEG;IACH,gBAAkC;IAgClC;;;;OAIG;IACH,sBAAuB;IAEvB;;;;OAIG;IACH,sBAAsB;IAGtB;;OAEG;IACH,0BAyBC;IAyBH;;;OAGG;IACH,kCAQC;IAED;;;OAGG;IACH,oCAOC;IAED;;;OAGG;IACH,mCAIC;IAED;;OAEG;IACH,kCAGC;IAED;;;;;OAKG;IACH,iCAJW,OAAO,cAAc,EAAE,UAAU,GAChC,WAAW,CA6BtB;IA8CD;;;;OAIG;IACH,wBAgFC;IA8CD;;;;;;;OAOG;IACH,yBANW,OAAO,cAAc,EAAE,UAAU,mBACjC,OAAO,cACP,MAAM,YACN,MAAM,cACN,MAAM,QAgChB;IAeD,wBAAoB;CACrB;+BA/pB8B,YAAY"}
1
+ {"version":3,"file":"PointsLayer.d.ts","sourceRoot":"","sources":["PointsLayer.js"],"names":[],"mappings":";;;;;;;;;UA+Bc,MAAM;;;;;cACN,CAAS,IAA+B,EAA/B,OAAO,eAAe,EAAE,OAAO,EAAE,IAAiB,EAAjB;YAAO,MAAM,GAAE,GAAC;KAAC,KAAE,MAAM;;;;;;;;;;aAOnE,OAAO,eAAe,EAAE,OAAO;;;;gBAC/B;YAAO,MAAM,GAAE,GAAC;KAAC;;;;cACjB,OAAO,YAAY,EAAE,QAAQ;;;;;;;;;;;;;;;;;;kBAW7B,MAAM;;;;oBACN,MAAM;;;;;;;;;;;;;;;;;AAzBpB;;;;;;GAMG;AAEH;;;;;;GAMG;AAEH;;;;;;;;;;;;;;GAcG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8DG;AACH;IACE;;;OAGG;IACH,mBAHW,OAAO,sBAAsB,EAAE,OAAO,WACtC,OAAO,EAoOjB;IAxNC;;OAEG;IACH,wBAAyB;IAEzB;;OAEG;IACH,wBAAuE;IACvE;;OAEG;IACH,uBAGC;IAED;;OAEG;IACH,sBAAyC;IAEzC;;OAEG;IACH,wBAA6C;IAE7C;;;OAGG;IACH,iBAAa;IAEb;;;OAGG;IACH,6BAA+D;IAY/D;;;;OAIG;IACH,YAFU,KAAK,CAAC,OAAO,uBAAuB,EAAE,oBAAoB,CAAC,CAapE;IAgBD,oCAAoE;IAEpE;;OAEG;IACH,wBAAoC;IAEpC;;;;;;OAMG;IACH,0BAAkD;IAElD;;;;OAIG;IACH,yBAAyC;IAEzC;;;OAGG;IACH,+BAA+C;IAE/C;;;OAGG;IACH,4BAA8C;IAE9C;;;OAGG;IACH,yBAAqB;IAErB;;;;OAIG;IACH,mBAAmB;IAEnB;;OAEG;IACH,gBAAkC;IAgClC;;;;OAIG;IACH,sBAAuB;IAEvB;;;;OAIG;IACH,sBAAsB;IAGtB;;OAEG;IACH,0BAyBC;IAiCH;;;OAGG;IACH,kCAQC;IAED;;;OAGG;IACH,oCAOC;IAED;;;OAGG;IACH,mCAIC;IAED;;OAEG;IACH,kCAGC;IAED;;;;;OAKG;IACH,iCAJW,OAAO,cAAc,EAAE,UAAU,GAChC,WAAW,CA6BtB;IA8CD;;;;OAIG;IACH,wBAgFC;IA8CD;;;;;;;OAOG;IACH,yBANW,OAAO,cAAc,EAAE,UAAU,mBACjC,OAAO,cACP,MAAM,YACN,MAAM,cACN,MAAM,QAgChB;IAeD,wBAAoB;CACrB;+BAvqB8B,YAAY"}
@@ -366,6 +366,14 @@ class WebGLPointsLayerRenderer extends WebGLLayerRenderer {
366
366
  if (this.hitDetectionEnabled_) {
367
367
  this.hitRenderTarget_ = new WebGLRenderTarget(this.helper);
368
368
  }
369
+
370
+ // upload buffers again if any
371
+ if (this.verticesBuffer_.getArray()) {
372
+ this.helper.flushBufferData(this.verticesBuffer_);
373
+ }
374
+ if (this.indicesBuffer_.getArray()) {
375
+ this.helper.flushBufferData(this.indicesBuffer_);
376
+ }
369
377
  }
370
378
 
371
379
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"TileLayer.d.ts","sourceRoot":"","sources":["TileLayer.js"],"names":[],"mappings":"AAwBA;;;;;;;;;;;;;;;;;EAQE;;;;;;;;;kBAmBY,MAAM;;;;oBACN,MAAM;;;;;;;;;;;;;;;;;wBAQP,OAAO,0BAA0B,EAAE,OAAO;8BAG1C,OAAO,4BAA4B,EAAE,QAAQ;wCAG7C,OAAO,4BAA4B,EAAE,OAAO;AAjBzD;;;;;;;;GAQG;AAEH;;GAEG;AACH;;GAEG;AACH;;GAEG;AAEH;;;;;GAKG;AACH;IACE;;;OAGG;IACH,uBAHW,SAAS,WACT,OAAO,EA8CjB;IAzCC;;;OAGG;IACH,iBAAa;IAEb;;OAEG;IACH,sBAAyC;IAEzC;;OAEG;IACH,wBAA6C;IAE7C;;;;;;;;;;;;;;;;OAgBG;IACH,iBAAuE;IAGvE;;;OAGG;IACH,yBAAqD;IAGvD;;;OAGG;IACH,wBAHW,OAAO,QAsBjB;IA2BD;;OAEG;IACH,6DAEC;IAED;;OAEG;IACH,uEAGC;IAED;;OAEG;IACH,+MA+FC;IAED;;;;OAIG;IACH,wBAJW,OAAO,gBAAgB,EAAE,KAAK,GAC7B,iBAAiB,GAAC,UAAU,GAAC,YAAY,GAAC,QAAQ,CA6F7D;CAsBF;wBAlZuB,4BAA4B;uCAK7C,oBAAoB"}
1
+ {"version":3,"file":"TileLayer.d.ts","sourceRoot":"","sources":["TileLayer.js"],"names":[],"mappings":"AAwBA;;;;;;;;;;;;;;;;;EAQE;;;;;;;;;kBAmBY,MAAM;;;;oBACN,MAAM;;;;;;;;;;;;;;;;;wBAQP,OAAO,0BAA0B,EAAE,OAAO;8BAG1C,OAAO,4BAA4B,EAAE,QAAQ;wCAG7C,OAAO,4BAA4B,EAAE,OAAO;AAjBzD;;;;;;;;GAQG;AAEH;;GAEG;AACH;;GAEG;AACH;;GAEG;AAEH;;;;;GAKG;AACH;IACE;;;OAGG;IACH,uBAHW,SAAS,WACT,OAAO,EA8CjB;IAzCC;;;OAGG;IACH,iBAAa;IAEb;;OAEG;IACH,sBAAyC;IAEzC;;OAEG;IACH,wBAA6C;IAE7C;;;;;;;;;;;;;;;;OAgBG;IACH,iBAAuE;IAGvE;;;OAGG;IACH,yBAAqD;IAGvD;;;OAGG;IACH,wBAHW,OAAO,QAsBjB;IA6BD;;OAEG;IACH,6DAEC;IAED;;OAEG;IACH,uEAGC;IAED;;OAEG;IACH,+MA+FC;IAED;;;;OAIG;IACH,wBAJW,OAAO,gBAAgB,EAAE,KAAK,GAC7B,iBAAiB,GAAC,UAAU,GAAC,YAAY,GAAC,QAAQ,CA6F7D;CAsBF;wBApZuB,4BAA4B;uCAK7C,oBAAoB"}
@@ -153,6 +153,8 @@ class WebGLTileLayerRenderer extends WebGLBaseTileLayerRenderer {
153
153
  * @override
154
154
  */
155
155
  afterHelperCreated() {
156
+ super.afterHelperCreated();
157
+
156
158
  this.program_ = this.helper.getProgram(
157
159
  this.fragmentShader_,
158
160
  this.vertexShader_,
@@ -200,7 +200,6 @@ declare class WebGLBaseTileLayerRenderer<LayerType extends BaseLayerType, TileTy
200
200
  * @private
201
201
  */
202
202
  private findAltTiles_;
203
- clearCache(): void;
204
203
  }
205
204
  import WebGLLayerRenderer from './Layer.js';
206
205
  //# sourceMappingURL=TileLayerBase.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TileLayerBase.d.ts","sourceRoot":"","sources":["TileLayerBase.js"],"names":[],"mappings":"AAuDA;;GAEG;AACH;;;;GAIG;AAEH;;GAEG;AACH,+CAFY,wBAAwB,CAInC;AA0DD,iEAEC;;;;;;;;;;;;;;yCAzEY,OAAO,uCAAuC,EAAE,OAAO,CAAC,OAAO,eAAe,EAAE,OAAO,CAAC;;;;;aAIvF,GAAG,CAAC,MAAM,CAAC;;;;wBACX;YAAO,MAAM,GAAE,GAAG,CAAC,0BAA0B,CAAC;KAAC;;;;;;;;;;;;;;;;;;;4BA+EhD,mDAAyC;AATtD;;;;;;GAMG;AAEH;;GAEG;AAEH;;;;;;;GAOG;AACH,yCAL6B,SAAS,SAAxB,aAAc,EACmB,QAAQ,SAA1C,OAAQ,eAAe,EAAE,OAAQ,EACmC,kBAAkB,SAAtF,OAAQ,uCAAuC,EAAE,OAAO,CAAC,QAAQ,CAAE;IAI9E;;;OAGG;IACH,uBAHW,SAAS,WACT,OAAO,EA+DjB;IAvDC;;;OAGG;IACH,gBAFU,OAAO,CAEU;IAE3B;;;;OAIG;IACH,uBAAuC;IAEvC;;;OAGG;IACH,oBAHU,KAAK,CAAC,MAAM,CAAC,CAGK;IAE5B;;;OAGG;IACH,uBAA+C;IAE/C;;;OAGG;IACH,uBAA8C;IAE9C;;;OAGG;IACH,kBAAuB;IAGvB;;;OAGG;IACH,mCAHU,OAAO,2BAA2B,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAGnB;IAEtD;;;OAGG;IACH,sBAFU,OAAO,cAAc,EAAE,UAAU,GAAC,IAAI,CAE1B;IAEtB;;;OAGG;IACH,oBAA4B;IAG9B;;;OAGG;IACH,wBAHW,OAAO,QAOjB;IA4BD;;;;;OAKG;IACH,4CAJW,OAAO,uCAAuC,EAAE,yBAAyB,CAAC,QAAQ,CAAC,GAClF,kBAAkB,CAK7B;IAED;;;;;;OAMG;IACH,yBANW,OAAO,cAAc,EAAE,UAAU,UACjC,OAAO,iBAAiB,EAAE,MAAM,YAChC,MAAM,4BACN,wBAAwB,WACxB,MAAM,QAqHhB;IAED;;;;OAIG;IACH,wCAJW,OAAO,cAAc,EAAE,UAAU,kBACjC,OAAO,QAKjB;IAED;;;;OAIG;IACH,4CAJW,OAAO,cAAc,EAAE,UAAU,GAChC,OAAO,CAKlB;IAED;;;;;;;;;;;;;OAaG;IACH,yCAbW,kBAAkB,iBAClB,OAAO,oBAAoB,EAAE,SAAS,cACtC,OAAO,cAAc,EAAE,UAAU,gBACjC,OAAO,iBAAiB,EAAE,MAAM,kBAChC,MAAM,YACN,OAAO,eAAe,EAAE,IAAI,cAC5B,OAAO,qBAAqB,EAAE,UAAU,cACxC,OAAO,iBAAiB,EAAE,MAAM,SAChC,MAAM,UACN,MAAM,SACN,MAAM,QAeb;IAEJ;;;;;;OAMG;IACH,6CANW,kBAAkB,SAClB,MAAM,UACN,OAAO,iBAAiB,EAAE,MAAM,SAChC,MAAM,QAG0C;IAE3D,iIAuEC;IAED;;;;;OAKG;IACH,iCAJW,OAAO,cAAc,EAAE,UAAU,GAChC,WAAW,CAyNtB;IAED;;;;;;;;;;OAUG;IACH,sBAsCC;IAED,mBAMC;CAqBF;+BAzyB8B,YAAY"}
1
+ {"version":3,"file":"TileLayerBase.d.ts","sourceRoot":"","sources":["TileLayerBase.js"],"names":[],"mappings":"AAuDA;;GAEG;AACH;;;;GAIG;AAEH;;GAEG;AACH,+CAFY,wBAAwB,CAInC;AA0DD,iEAEC;;;;;;;;;;;;;;yCAzEY,OAAO,uCAAuC,EAAE,OAAO,CAAC,OAAO,eAAe,EAAE,OAAO,CAAC;;;;;aAIvF,GAAG,CAAC,MAAM,CAAC;;;;wBACX;YAAO,MAAM,GAAE,GAAG,CAAC,0BAA0B,CAAC;KAAC;;;;;;;;;;;;;;;;;;;4BA+EhD,mDAAyC;AATtD;;;;;;GAMG;AAEH;;GAEG;AAEH;;;;;;;GAOG;AACH,yCAL6B,SAAS,SAAxB,aAAc,EACmB,QAAQ,SAA1C,OAAQ,eAAe,EAAE,OAAQ,EACmC,kBAAkB,SAAtF,OAAQ,uCAAuC,EAAE,OAAO,CAAC,QAAQ,CAAE;IAI9E;;;OAGG;IACH,uBAHW,SAAS,WACT,OAAO,EA+DjB;IAvDC;;;OAGG;IACH,gBAFU,OAAO,CAEU;IAE3B;;;;OAIG;IACH,uBAAuC;IAEvC;;;OAGG;IACH,oBAHU,KAAK,CAAC,MAAM,CAAC,CAGK;IAE5B;;;OAGG;IACH,uBAA+C;IAE/C;;;OAGG;IACH,uBAA8C;IAE9C;;;OAGG;IACH,kBAAuB;IAGvB;;;OAGG;IACH,mCAHU,OAAO,2BAA2B,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAGnB;IAEtD;;;OAGG;IACH,sBAFU,OAAO,cAAc,EAAE,UAAU,GAAC,IAAI,CAE1B;IAEtB;;;OAGG;IACH,oBAA4B;IAG9B;;;OAGG;IACH,wBAHW,OAAO,QAOjB;IA4BD;;;;;OAKG;IACH,4CAJW,OAAO,uCAAuC,EAAE,yBAAyB,CAAC,QAAQ,CAAC,GAClF,kBAAkB,CAK7B;IAED;;;;;;OAMG;IACH,yBANW,OAAO,cAAc,EAAE,UAAU,UACjC,OAAO,iBAAiB,EAAE,MAAM,YAChC,MAAM,4BACN,wBAAwB,WACxB,MAAM,QAqHhB;IAED;;;;OAIG;IACH,wCAJW,OAAO,cAAc,EAAE,UAAU,kBACjC,OAAO,QAKjB;IAED;;;;OAIG;IACH,4CAJW,OAAO,cAAc,EAAE,UAAU,GAChC,OAAO,CAKlB;IAED;;;;;;;;;;;;;OAaG;IACH,yCAbW,kBAAkB,iBAClB,OAAO,oBAAoB,EAAE,SAAS,cACtC,OAAO,cAAc,EAAE,UAAU,gBACjC,OAAO,iBAAiB,EAAE,MAAM,kBAChC,MAAM,YACN,OAAO,eAAe,EAAE,IAAI,cAC5B,OAAO,qBAAqB,EAAE,UAAU,cACxC,OAAO,iBAAiB,EAAE,MAAM,SAChC,MAAM,UACN,MAAM,SACN,MAAM,QAeb;IAEJ;;;;;;OAMG;IACH,6CANW,kBAAkB,SAClB,MAAM,UACN,OAAO,iBAAiB,EAAE,MAAM,SAChC,MAAM,QAG0C;IAE3D,iIAuEC;IAED;;;;;OAKG;IACH,iCAJW,OAAO,cAAc,EAAE,UAAU,GAChC,WAAW,CAyNtB;IAED;;;;;;;;;;OAUG;IACH,sBAsCC;CAkCF;+BA9yB8B,YAAY"}
@@ -788,7 +788,12 @@ class WebGLBaseTileLayerRenderer extends WebGLLayerRenderer {
788
788
  return covered;
789
789
  }
790
790
 
791
+ /**
792
+ * @override
793
+ */
791
794
  clearCache() {
795
+ super.clearCache();
796
+
792
797
  const tileRepresentationCache = this.tileRepresentationCache;
793
798
  tileRepresentationCache.forEach((tileRepresentation) =>
794
799
  tileRepresentation.dispose(),
@@ -799,12 +804,12 @@ class WebGLBaseTileLayerRenderer extends WebGLLayerRenderer {
799
804
  /**
800
805
  * @override
801
806
  */
802
- removeHelper() {
803
- if (this.helper) {
804
- this.clearCache();
805
- }
807
+ afterHelperCreated() {
808
+ super.afterHelperCreated();
806
809
 
807
- super.removeHelper();
810
+ this.tileRepresentationCache.forEach((tileRepresentation) =>
811
+ tileRepresentation.setHelper(this.helper),
812
+ );
808
813
  }
809
814
 
810
815
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"VectorLayer.d.ts","sourceRoot":"","sources":["VectorLayer.js"],"names":[],"mappings":"AAmCA;;;;;;;;;;;;;EAKE;;0BAGW,OAAO,2CAA2C,EAAE,WAAW;;;;;;;;;WAM9D,WAAW,GAAC,KAAK,CAAC,WAAW,CAAC;;;;;;;;;;;AAP5C;;GAEG;AAEH;;;;;;;GAOG;AAEH;;;;;;;;;;;;;;;;;GAiBG;AACH;IACE;;;OAGG;IACH,mBAHW,OAAO,sBAAsB,EAAE,OAAO,WACtC,OAAO,EAoGjB;IAtFC;;;OAGG;IACH,6BAAwD;IAExD;;;OAGG;IACH,yBAAqB;IAErB;;OAEG;IACH,wBAAyB;IAEzB;;OAEG;IACH,wBAAoC;IAEpC;;;;;;OAMG;IACH,0BAA0C;IAE1C;;OAEG;IACH,mBAAwB;IACxB;;OAEG;IACH,sBAAsC;IACtC;;OAEG;IACH,iBAA4B;IAE5B;;;OAGG;IACH,oCAAoD;IAEpD;;;OAGG;IACH,gBAAiB;IAEjB;;;OAGG;IACH,wBAAyB;IAEzB;;;OAGG;IACH,iBAAkB;IAIlB;;OAEG;IACH,eAAsC;IAEtC;;;OAGG;IACH,8BAAkC;IAElC;;;OAGG;IACH,0BAA6B;IAG/B;;;OAGG;IACH,4BAqCC;IAED;;;OAGG;IACH,sBAIC;IAED;;OAEG;IACH,yBAMC;IAED;;OAEG;IACH,mCAMC;IAYD;;;;OAIG;IACH,kCAGC;IAED;;;OAGG;IACH,oCAGC;IAED;;;OAGG;IACH,mCAGC;IAED;;OAEG;IACH,kCAEC;IAED;;;OAGG;IACH,uBAsBC;IAED;;;;;OAKG;IACH,iCAJW,OAAO,cAAc,EAAE,UAAU,GAChC,WAAW,CAgCtB;IAwED;;;;;;;OAOG;IACH,yBANW,OAAO,cAAc,EAAE,UAAU,mBACjC,OAAO,cACP,MAAM,YACN,MAAM,cACN,MAAM,QAuChB;IA0CD;;;OAGG;IACH,wBAFW,OAAO,2CAA2C,EAAE,YAAY,QAkB1E;CAkBF;+BAtiB8B,YAAY"}
1
+ {"version":3,"file":"VectorLayer.d.ts","sourceRoot":"","sources":["VectorLayer.js"],"names":[],"mappings":"AAmCA;;;;;;;;;;;;;EAKE;;0BAGW,OAAO,2CAA2C,EAAE,WAAW;;;;;;;;;WAM9D,WAAW,GAAC,KAAK,CAAC,WAAW,CAAC;;;;;;;;;;;AAP5C;;GAEG;AAEH;;;;;;;GAOG;AAEH;;;;;;;;;;;;;;;;;GAiBG;AACH;IACE;;;OAGG;IACH,mBAHW,OAAO,sBAAsB,EAAE,OAAO,WACtC,OAAO,EAoGjB;IAtFC;;;OAGG;IACH,6BAAwD;IAExD;;;OAGG;IACH,yBAAqB;IAErB;;OAEG;IACH,wBAAyB;IAEzB;;OAEG;IACH,wBAAoC;IAEpC;;;;;;OAMG;IACH,0BAA0C;IAE1C;;OAEG;IACH,mBAAwB;IACxB;;OAEG;IACH,sBAAsC;IACtC;;OAEG;IACH,iBAA4B;IAE5B;;;OAGG;IACH,oCAAoD;IAEpD;;;OAGG;IACH,gBAAiB;IAEjB;;;OAGG;IACH,wBAAyB;IAEzB;;;OAGG;IACH,iBAAkB;IAIlB;;OAEG;IACH,eAAsC;IAEtC;;;OAGG;IACH,8BAAkC;IAElC;;;OAGG;IACH,0BAA6B;IAG/B;;;OAGG;IACH,4BAqCC;IAED;;;OAGG;IACH,sBAIC;IAED;;OAEG;IACH,yBAMC;IAED;;OAEG;IACH,mCAMC;IAoBD;;;;OAIG;IACH,kCAGC;IAED;;;OAGG;IACH,oCAGC;IAED;;;OAGG;IACH,mCAGC;IAED;;OAEG;IACH,kCAEC;IAED;;;OAGG;IACH,uBAsBC;IAED;;;;;OAKG;IACH,iCAJW,OAAO,cAAc,EAAE,UAAU,GAChC,WAAW,CAgCtB;IAwED;;;;;;;OAOG;IACH,yBANW,OAAO,cAAc,EAAE,UAAU,mBACjC,OAAO,cACP,MAAM,YACN,MAAM,cACN,MAAM,QAuChB;IA0CD;;;OAGG;IACH,wBAFW,OAAO,2CAA2C,EAAE,YAAY,QAkB1E;CAkBF;+BA9iB8B,YAAY"}
@@ -255,7 +255,15 @@ class WebGLVectorLayerRenderer extends WebGLLayerRenderer {
255
255
  * @override
256
256
  */
257
257
  afterHelperCreated() {
258
- this.createRenderers_();
258
+ if (this.styleRenderers_.length) {
259
+ // To reuse buffers
260
+ this.styleRenderers_.forEach((renderer, i) =>
261
+ renderer.setHelper(this.helper, this.buffers_[i]),
262
+ );
263
+ } else {
264
+ this.createRenderers_();
265
+ }
266
+
259
267
  if (this.hitDetectionEnabled_) {
260
268
  this.hitRenderTarget_ = new WebGLRenderTarget(this.helper);
261
269
  }
package/util.js CHANGED
@@ -33,4 +33,4 @@ export function getUid(obj) {
33
33
  * OpenLayers version.
34
34
  * @type {string}
35
35
  */
36
- export const VERSION = '10.0.1-dev.1723833631932';
36
+ export const VERSION = '10.0.1-dev.1723903835092';
@@ -67,6 +67,10 @@ declare class BaseTileRepresentation<TileType extends import("../Tile.js").defau
67
67
  */
68
68
  protected uploadTile(): void;
69
69
  setReady(): void;
70
+ /**
71
+ * @param {import("./Helper.js").default} helper The WebGL helper.
72
+ */
73
+ setHelper(helper: import("./Helper.js").default): void;
70
74
  }
71
75
  import EventTarget from '../events/Target.js';
72
76
  //# sourceMappingURL=BaseTileRepresentation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BaseTileRepresentation.d.ts","sourceRoot":"","sources":["BaseTileRepresentation.js"],"names":[],"mappings":";2BAWa,OAAO,YAAY,EAAE,OAAO;sCAIb,QAAQ,SAAtB,YAAa;;;;UAEb,QAAQ;;;;UACR,OAAO,yBAAyB,EAAE,OAAO;;;;YACzC,OAAO,oBAAoB,EAAE,OAAO;;;;;;AATlD;;GAEG;AAEH;;;;;;;GAOG;AAEH;;;;;GAKG;AACH,qCAH4C,QAAQ,SAAvC,OAAQ,YAAY,EAAE,OAAQ;IAIzC;;OAEG;IACH,qBAFW,yBAAyB,CAAC,QAAQ,CAAC,EA6B7C;IAxBC;;OAEG;IACH,MAFU,QAAQ,CAET;IA4DX,0BAKC;IA1DC;;;OAGG;IACH,kBAHU,MAAM,CAGiB;IAEjC;;;OAGG;IACH,kBAHU,OAAO,oBAAoB,EAAE,OAAO,CAGlB;IAE5B,gBAAmB;IACnB,eAAkB;IAGpB;;OAEG;IACH,cAFW,QAAQ,QAqBlB;IAED;;;OAGG;IACH,6BAEC;IAED,iBAGC;CAeF;wBA5GuB,qBAAqB"}
1
+ {"version":3,"file":"BaseTileRepresentation.d.ts","sourceRoot":"","sources":["BaseTileRepresentation.js"],"names":[],"mappings":";2BAWa,OAAO,YAAY,EAAE,OAAO;sCAIb,QAAQ,SAAtB,YAAa;;;;UAEb,QAAQ;;;;UACR,OAAO,yBAAyB,EAAE,OAAO;;;;YACzC,OAAO,oBAAoB,EAAE,OAAO;;;;;;AATlD;;GAEG;AAEH;;;;;;;GAOG;AAEH;;;;;GAKG;AACH,qCAH4C,QAAQ,SAAvC,OAAQ,YAAY,EAAE,OAAQ;IAIzC;;OAEG;IACH,qBAFW,yBAAyB,CAAC,QAAQ,CAAC,EA6B7C;IAxBC;;OAEG;IACH,MAFU,QAAQ,CAET;IA4DX,0BAKC;IA1DC;;;OAGG;IACH,kBAHU,MAAM,CAGiB;IAEjC;;;OAGG;IACH,kBAHU,OAAO,oBAAoB,EAAE,OAAO,CAGlB;IAE5B,gBAAmB;IACnB,eAAkB;IAGpB;;OAEG;IACH,cAFW,QAAQ,QAqBlB;IAED;;;OAGG;IACH,6BAEC;IAED,iBAGC;IASD;;OAEG;IACH,kBAFW,OAAO,aAAa,EAAE,OAAO,QAOvC;CASF;wBAvHuB,qBAAqB"}
@@ -104,10 +104,21 @@ class BaseTileRepresentation extends EventTarget {
104
104
  }
105
105
  }
106
106
 
107
+ /**
108
+ * @param {import("./Helper.js").default} helper The WebGL helper.
109
+ */
110
+ setHelper(helper) {
111
+ this.helper = helper;
112
+ if (this.helper && this.loaded) {
113
+ this.uploadTile();
114
+ }
115
+ }
116
+
107
117
  /**
108
118
  * @override
109
119
  */
110
120
  disposeInternal() {
121
+ this.setHelper(null);
111
122
  this.tile.removeEventListener(EventType.CHANGE, this.handleTileChange_);
112
123
  }
113
124
  }
@@ -1 +1 @@
1
- {"version":3,"file":"TileTexture.d.ts","sourceRoot":"","sources":["TileTexture.js"],"names":[],"mappings":";uBAmIa,OAAO,gBAAgB,EAAE,OAAO,GAAC,SAAS,GAAC,UAAU;AADlE;;GAEG;AAEH;;GAEG;AACH;IACE;;OAEG;IACH,qBAFW,OAAO,6BAA6B,EAAE,yBAAyB,CAAC,QAAQ,CAAC,EA0CnF;IArCC;;OAEG;IACH,UAFU,KAAK,CAAC,YAAY,CAAC,CAEX;IAElB;;;OAGG;IACH,oBAEC;IAED;;OAEG;IACH,WAFU,MAAM,CAEI;IAepB;;OAEG;IACH,QAFU,gBAAgB,CAEN;IA8HtB;;;;;;OAMG;IACH,2BAgCC;IAED;;;;;;;OAOG;IACH,2BA0BC;IAED;;;;;OAKG;IACH,wBAJW,MAAM,aACN,MAAM,GACL,OAAO,gBAAgB,EAAE,SAAS,GAAC,IAAI,CAuBlD;CACF;sBAlZqB,iBAAiB;uBAChB,mBAAmB;mCAJP,6BAA6B;6BAKnC,aAAa"}
1
+ {"version":3,"file":"TileTexture.d.ts","sourceRoot":"","sources":["TileTexture.js"],"names":[],"mappings":";uBAkIa,OAAO,gBAAgB,EAAE,OAAO,GAAC,SAAS,GAAC,UAAU;AADlE;;GAEG;AAEH;;GAEG;AACH;IACE;;OAEG;IACH,qBAFW,OAAO,6BAA6B,EAAE,yBAAyB,CAAC,QAAQ,CAAC,EA0CnF;IArCC;;OAEG;IACH,UAFU,KAAK,CAAC,YAAY,CAAC,CAEX;IAElB;;;OAGG;IACH,oBAEC;IAED;;OAEG;IACH,WAFU,MAAM,CAEI;IAepB;;OAEG;IACH,QAFU,gBAAgB,CAEN;IAsItB;;;;;;OAMG;IACH,2BAgCC;IAED;;;;;;;OAOG;IACH,2BA0BC;IAED;;;;;OAKG;IACH,wBAJW,MAAM,aACN,MAAM,GACL,OAAO,gBAAgB,EAAE,SAAS,GAAC,IAAI,CAuBlD;CACF;sBA1ZqB,iBAAiB;uBAChB,mBAAmB;mCAHP,6BAA6B;6BAInC,aAAa"}
@@ -4,7 +4,6 @@
4
4
 
5
5
  import BaseTileRepresentation from './BaseTileRepresentation.js';
6
6
  import DataTile, {asArrayLike, asImageLike} from '../DataTile.js';
7
- import EventType from '../events/EventType.js';
8
7
  import ImageTile from '../ImageTile.js';
9
8
  import ReprojTile from '../reproj/Tile.js';
10
9
  import WebGLArrayBuffer from './Buffer.js';
@@ -181,6 +180,26 @@ class TileTexture extends BaseTileRepresentation {
181
180
  this.setTile(options.tile);
182
181
  }
183
182
 
183
+ /**
184
+ * @override
185
+ * @param {import("./Helper.js").default} helper The WebGL helper.
186
+ */
187
+ setHelper(helper) {
188
+ const gl = this.helper?.getGL();
189
+ if (gl) {
190
+ this.helper.deleteBuffer(this.coords);
191
+ for (let i = 0; i < this.textures.length; ++i) {
192
+ gl.deleteTexture(this.textures[i]);
193
+ }
194
+ }
195
+
196
+ super.setHelper(helper);
197
+
198
+ if (helper) {
199
+ helper.flushBufferData(this.coords);
200
+ }
201
+ }
202
+
184
203
  /**
185
204
  * @override
186
205
  */
@@ -290,18 +309,6 @@ class TileTexture extends BaseTileRepresentation {
290
309
  this.setReady();
291
310
  }
292
311
 
293
- /**
294
- * @override
295
- */
296
- disposeInternal() {
297
- const gl = this.helper.getGL();
298
- this.helper.deleteBuffer(this.coords);
299
- for (let i = 0; i < this.textures.length; ++i) {
300
- gl.deleteTexture(this.textures[i]);
301
- }
302
- this.tile.removeEventListener(EventType.CHANGE, this.handleTileChange_);
303
- }
304
-
305
312
  /**
306
313
  * @param {import("../DataTile.js").ImageLike} image The image.
307
314
  * @param {number} renderCol The column index (in rendered tile space).