diff --git a/src/ol/renderer/webgl/PointsLayer.js b/src/ol/renderer/webgl/PointsLayer.js index f0dbdb7452..811925df7a 100644 --- a/src/ol/renderer/webgl/PointsLayer.js +++ b/src/ol/renderer/webgl/PointsLayer.js @@ -503,7 +503,7 @@ class WebGLPointsLayerRenderer extends WebGLLayerRenderer { const pixel = applyTransform(frameState.coordinateToPixelTransform, coordinate.slice()); - const data = this.hitRenderTarget_.readPixel(pixel[0], pixel[1]); + const data = this.hitRenderTarget_.readPixel(pixel[0] / 2, pixel[1] / 2); const color = [ data[0] / 255, data[1] / 255, @@ -531,7 +531,10 @@ class WebGLPointsLayerRenderer extends WebGLLayerRenderer { return; } - this.hitRenderTarget_.setSize(frameState.size); + this.hitRenderTarget_.setSize([ + Math.floor(frameState.size[0] / 2), + Math.floor(frameState.size[1] / 2) + ]); this.helper.useProgram(this.hitProgram_); this.helper.prepareDrawToRenderTarget(frameState, this.hitRenderTarget_, true); diff --git a/src/ol/webgl/Helper.js b/src/ol/webgl/Helper.js index 27434f79ea..cf2ceeab3a 100644 --- a/src/ol/webgl/Helper.js +++ b/src/ol/webgl/Helper.js @@ -456,9 +456,10 @@ class WebGLHelper extends Disposable { */ prepareDrawToRenderTarget(frameState, renderTarget, opt_disableAlphaBlend) { const gl = this.getGL(); + const size = renderTarget.getSize(); gl.bindFramebuffer(gl.FRAMEBUFFER, renderTarget.getFramebuffer()); - gl.viewport(0, 0, frameState.size[0], frameState.size[1]); + gl.viewport(0, 0, size[0], size[1]); gl.bindTexture(gl.TEXTURE_2D, renderTarget.getTexture()); gl.clearColor(0.0, 0.0, 0.0, 0.0); gl.clear(gl.COLOR_BUFFER_BIT);