Dispatch precompose and postcompose events for WebGL layers
This commit is contained in:
@@ -88,6 +88,45 @@ class WebGLLayerRenderer extends LayerRenderer {
|
||||
this.helper;
|
||||
|
||||
layer.addChangeListener(LayerProperty.MAP, this.removeHelper_.bind(this));
|
||||
|
||||
this.dispatchPreComposeEvent = this.dispatchPreComposeEvent.bind(this);
|
||||
this.dispatchPostComposeEvent = this.dispatchPostComposeEvent.bind(this);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {WebGLRenderingContext} context The WebGL rendering context.
|
||||
* @param {import("../../PluggableMap.js").FrameState} frameState Frame state.
|
||||
* @protected
|
||||
*/
|
||||
dispatchPreComposeEvent(context, frameState) {
|
||||
const layer = this.getLayer();
|
||||
if (layer.hasListener(RenderEventType.PRECOMPOSE)) {
|
||||
const event = new RenderEvent(
|
||||
RenderEventType.PRECOMPOSE,
|
||||
undefined,
|
||||
frameState,
|
||||
context
|
||||
);
|
||||
layer.dispatchEvent(event);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {WebGLRenderingContext} context The WebGL rendering context.
|
||||
* @param {import("../../PluggableMap.js").FrameState} frameState Frame state.
|
||||
* @protected
|
||||
*/
|
||||
dispatchPostComposeEvent(context, frameState) {
|
||||
const layer = this.getLayer();
|
||||
if (layer.hasListener(RenderEventType.POSTCOMPOSE)) {
|
||||
const event = new RenderEvent(
|
||||
RenderEventType.POSTCOMPOSE,
|
||||
undefined,
|
||||
frameState,
|
||||
context
|
||||
);
|
||||
layer.dispatchEvent(event);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -450,7 +450,11 @@ class WebGLPointsLayerRenderer extends WebGLLayerRenderer {
|
||||
|
||||
const renderCount = this.indicesBuffer_.getSize();
|
||||
this.helper.drawElements(0, renderCount);
|
||||
this.helper.finalizeDraw(frameState);
|
||||
this.helper.finalizeDraw(
|
||||
frameState,
|
||||
this.dispatchPreComposeEvent,
|
||||
this.dispatchPostComposeEvent
|
||||
);
|
||||
const canvas = this.helper.getCanvas();
|
||||
|
||||
if (this.hitDetectionEnabled_) {
|
||||
|
||||
@@ -552,7 +552,11 @@ class WebGLTileLayerRenderer extends WebGLLayerRenderer {
|
||||
}
|
||||
}
|
||||
|
||||
this.helper.finalizeDraw(frameState);
|
||||
this.helper.finalizeDraw(
|
||||
frameState,
|
||||
this.dispatchPreComposeEvent,
|
||||
this.dispatchPostComposeEvent
|
||||
);
|
||||
|
||||
const canvas = this.helper.getCanvas();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user