Do not draw image with width or height < 0.5

This commit is contained in:
Bobo Häggström
2018-10-11 15:22:48 +02:00
parent da41515944
commit dded939a07
2 changed files with 16 additions and 3 deletions

View File

@@ -63,8 +63,10 @@ class IntermediateCanvasRenderer extends CanvasLayerRenderer {
const dy = imageTransform[5];
const dw = image.width * imageTransform[0];
const dh = image.height * imageTransform[3];
if (dw >= 0.5 && dh >= 0.5) {
context.drawImage(image, 0, 0, +image.width, +image.height,
Math.round(dx), Math.round(dy), Math.round(dw), Math.round(dh));
}
context.globalAlpha = alpha;
if (clipped) {

View File

@@ -1,4 +1,4 @@
import {create as createTransform} from '../../../../../src/ol/transform.js';
import {create as createTransform, scale} from '../../../../../src/ol/transform.js';
import ImageLayer from '../../../../../src/ol/layer/Image.js';
import MapRenderer from '../../../../../src/ol/renderer/Map.js';
import IntermediateCanvasRenderer from '../../../../../src/ol/renderer/canvas/IntermediateCanvas.js';
@@ -94,6 +94,17 @@ describe('ol.renderer.canvas.IntermediateCanvas', function() {
expect(context.restore.callCount).to.be(0);
});
it('does not draw image with width or height < 0.5', function() {
frameState.extent = [10, 20, 30, 40];
renderer.getImageTransform = function() {
return scale(createTransform(), 0.1, 0.1);
};
renderer.composeFrame(frameState, layerState, context);
expect(context.drawImage.notCalled).to.be(true);
});
});
});