Reset image when empty
This commit is contained in:
@@ -2,6 +2,7 @@
|
|||||||
* @module ol/renderer/canvas/ImageLayer
|
* @module ol/renderer/canvas/ImageLayer
|
||||||
*/
|
*/
|
||||||
import CanvasLayerRenderer from './Layer.js';
|
import CanvasLayerRenderer from './Layer.js';
|
||||||
|
import ImageState from '../../ImageState.js';
|
||||||
import ViewHint from '../../ViewHint.js';
|
import ViewHint from '../../ViewHint.js';
|
||||||
import {ENABLE_RASTER_REPROJECTION} from '../../reproj/common.js';
|
import {ENABLE_RASTER_REPROJECTION} from '../../reproj/common.js';
|
||||||
import {IMAGE_SMOOTHING_DISABLED, IMAGE_SMOOTHING_ENABLED} from './common.js';
|
import {IMAGE_SMOOTHING_DISABLED, IMAGE_SMOOTHING_ENABLED} from './common.js';
|
||||||
@@ -91,8 +92,12 @@ class CanvasImageLayerRenderer extends CanvasLayerRenderer {
|
|||||||
pixelRatio,
|
pixelRatio,
|
||||||
projection
|
projection
|
||||||
);
|
);
|
||||||
if (image && this.loadImage(image)) {
|
if (image) {
|
||||||
this.image_ = image;
|
if (this.loadImage(image)) {
|
||||||
|
this.image_ = image;
|
||||||
|
} else if (image.getState() === ImageState.EMPTY) {
|
||||||
|
this.image_ = null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
this.image_ = null;
|
this.image_ = null;
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
import CanvasImageLayerRenderer from '../../../../../../src/ol/renderer/canvas/ImageLayer.js';
|
import CanvasImageLayerRenderer from '../../../../../../src/ol/renderer/canvas/ImageLayer.js';
|
||||||
import Feature from '../../../../../../src/ol/Feature.js';
|
import Feature from '../../../../../../src/ol/Feature.js';
|
||||||
import ImageLayer from '../../../../../../src/ol/layer/Image.js';
|
import ImageLayer from '../../../../../../src/ol/layer/Image.js';
|
||||||
|
import ImageState from '../../../../../../src/ol/ImageState.js';
|
||||||
|
import ImageWrapper from '../../../../../../src/ol/Image.js';
|
||||||
import Map from '../../../../../../src/ol/Map.js';
|
import Map from '../../../../../../src/ol/Map.js';
|
||||||
import Point from '../../../../../../src/ol/geom/Point.js';
|
import Point from '../../../../../../src/ol/geom/Point.js';
|
||||||
import Projection from '../../../../../../src/ol/proj/Projection.js';
|
import Projection from '../../../../../../src/ol/proj/Projection.js';
|
||||||
@@ -446,5 +448,18 @@ describe('ol/renderer/canvas/ImageLayer', function () {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
it('resets image when empty', function (done) {
|
||||||
|
const frameState = createLayerFrameState([0, 0, 100, 100]);
|
||||||
|
layer.getSource().on('imageloadend', function () {
|
||||||
|
if (renderer.prepareFrame(frameState)) {
|
||||||
|
renderer.renderFrame(frameState, null);
|
||||||
|
}
|
||||||
|
expect(renderer.image_).to.be.a(ImageWrapper);
|
||||||
|
renderer.image_.state = ImageState.EMPTY;
|
||||||
|
expect(renderer.prepareFrame(frameState)).to.be(false);
|
||||||
|
expect(renderer.image_).to.be(null);
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user