diff --git a/packages/maptalks/src/renderer/layer/ImageGLRenderable.ts b/packages/maptalks/src/renderer/layer/ImageGLRenderable.ts index 3129aec135..102dd223bc 100644 --- a/packages/maptalks/src/renderer/layer/ImageGLRenderable.ts +++ b/packages/maptalks/src/renderer/layer/ImageGLRenderable.ts @@ -418,7 +418,6 @@ const ImageGLRenderable = function (Base: T) { * @param image */ loadTexture(image: TileImageType, resized = false): TileImageTexture { - const map = (this as any).getMap(); const gl = this.gl; let texture = image.texture; // Create a texture object if (!texture) { @@ -428,12 +427,14 @@ const ImageGLRenderable = function (Base: T) { gl.bindTexture(gl.TEXTURE_2D, texture); const genMipmap = this.layer.options['mipmapTexture']; if (genMipmap) { + const map = (this as any).getMap(); + const dpr = map.getDevicePixelRatio(); if (map.isMoving() && map.getRenderer().isViewChanged()) { gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR_MIPMAP_LINEAR); } else { gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR); } - if (resized) { + if (dpr !== 1 || resized) { gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR); } else { gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);