From 5c1191dd5ca3ab2fefa2d7f1c23e1ed20f662c09 Mon Sep 17 00:00:00 2001 From: Olivier Guyot Date: Fri, 30 Aug 2019 10:38:41 +0200 Subject: [PATCH] Webgl points / skip hit detection render when out of sync This happens when the indices buffer has been generated by the worker but not the hit detection vertices buffer. --- src/ol/renderer/webgl/PointsLayer.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/ol/renderer/webgl/PointsLayer.js b/src/ol/renderer/webgl/PointsLayer.js index dffd84ecc2..369b21c18b 100644 --- a/src/ol/renderer/webgl/PointsLayer.js +++ b/src/ol/renderer/webgl/PointsLayer.js @@ -544,6 +544,12 @@ class WebGLPointsLayerRenderer extends WebGLLayerRenderer { * @param {import("../../PluggableMap.js").FrameState} frameState current frame state */ renderHitDetection(frameState) { + // skip render entirely if vertices buffers for display & hit detection have different sizes + // this typically means both buffers are temporarily out of sync + if (this.hitVerticesBuffer_.getSize() !== this.verticesBuffer_.getSize()) { + return; + } + this.hitRenderTarget_.setSize(frameState.size); this.helper.useProgram(this.hitProgram_);