Make render listeners work with image render mode
This commit is contained in:
@@ -210,10 +210,10 @@ CanvasVectorLayerRenderer.prototype.compose = function(context, frameState, laye
|
||||
rotateAtOffset(replayContext, rotation,
|
||||
width / 2, height / 2);
|
||||
|
||||
if (hasRenderListeners) {
|
||||
this.dispatchRenderEvent(replayContext, frameState, transform);
|
||||
}
|
||||
if (replayContext != context) {
|
||||
if (hasRenderListeners) {
|
||||
this.dispatchRenderEvent(replayContext, frameState, transform);
|
||||
}
|
||||
if (transparentLayer) {
|
||||
const mainContextAlpha = context.globalAlpha;
|
||||
context.globalAlpha = layerState.opacity;
|
||||
|
||||
@@ -218,7 +218,7 @@ describe('ol.renderer.canvas.VectorLayer', function() {
|
||||
});
|
||||
});
|
||||
|
||||
describe('#prepareFrame', function() {
|
||||
describe('#prepareFrame and #compose', function() {
|
||||
let frameState, projExtent, renderer, worldWidth, buffer;
|
||||
|
||||
beforeEach(function() {
|
||||
@@ -296,6 +296,24 @@ describe('ol.renderer.canvas.VectorLayer', function() {
|
||||
expect(renderer.replayGroupChanged).to.be(false);
|
||||
});
|
||||
|
||||
it.only('dispatches a render event when rendering to own context', function(done) {
|
||||
const layer = renderer.getLayer();
|
||||
layer.getSource().addFeature(new Feature(new Point([0, 0])));
|
||||
layer.once('render', function() {
|
||||
expect(true);
|
||||
done();
|
||||
});
|
||||
frameState.extent = [-10000, -10000, 10000, 10000];
|
||||
frameState.size = [100, 100];
|
||||
frameState.viewState.center = [0, 0];
|
||||
let composed = false;
|
||||
if (renderer.prepareFrame(frameState, {})) {
|
||||
composed = true;
|
||||
renderer.compose(renderer.context, frameState, layer.getLayerState);
|
||||
}
|
||||
expect(composed).to.be(true);
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user