Pass a replay group to ol.render.Event
This commit is contained in:
@@ -35,13 +35,14 @@ ol.render.EventType = {
|
||||
* @param {ol.render.EventType} type Type.
|
||||
* @param {Object=} opt_target Target.
|
||||
* @param {ol.render.IVectorContext=} opt_vectorContext Vector context.
|
||||
* @param {ol.render.IReplayGroup=} opt_replayGroup Replay group.
|
||||
* @param {olx.FrameState=} opt_frameState Frame state.
|
||||
* @param {?CanvasRenderingContext2D=} opt_context Context.
|
||||
* @param {?ol.webgl.Context=} opt_glContext WebGL Context.
|
||||
*/
|
||||
ol.render.Event = function(
|
||||
type, opt_target, opt_vectorContext, opt_frameState, opt_context,
|
||||
opt_glContext) {
|
||||
type, opt_target, opt_vectorContext, opt_replayGroup, opt_frameState,
|
||||
opt_context, opt_glContext) {
|
||||
|
||||
goog.base(this, type, opt_target);
|
||||
|
||||
@@ -52,6 +53,12 @@ ol.render.Event = function(
|
||||
*/
|
||||
this.vectorContext = opt_vectorContext;
|
||||
|
||||
/**
|
||||
* @type {ol.render.IReplayGroup|undefined}
|
||||
* @todo api
|
||||
*/
|
||||
this.replayGroup = opt_replayGroup;
|
||||
|
||||
/**
|
||||
* @type {olx.FrameState|undefined}
|
||||
* @todo api
|
||||
|
||||
@@ -90,8 +90,8 @@ ol.renderer.canvas.Layer.prototype.dispatchComposeEvent_ =
|
||||
var render = new ol.render.canvas.Immediate(
|
||||
context, frameState.pixelRatio, frameState.extent, transform,
|
||||
frameState.view2DState.rotation);
|
||||
var composeEvent = new ol.render.Event(type, layer, render, frameState,
|
||||
context, null);
|
||||
var composeEvent = new ol.render.Event(type, layer, render, null,
|
||||
frameState, context, null);
|
||||
layer.dispatchEvent(composeEvent);
|
||||
render.flush();
|
||||
}
|
||||
|
||||
@@ -17,6 +17,7 @@ goog.require('ol.layer.Vector');
|
||||
goog.require('ol.render.Event');
|
||||
goog.require('ol.render.EventType');
|
||||
goog.require('ol.render.canvas.Immediate');
|
||||
goog.require('ol.render.canvas.ReplayGroup');
|
||||
goog.require('ol.renderer.Map');
|
||||
goog.require('ol.renderer.canvas.ImageLayer');
|
||||
goog.require('ol.renderer.canvas.Layer');
|
||||
@@ -97,8 +98,11 @@ ol.renderer.canvas.Map.prototype.dispatchComposeEvent_ =
|
||||
var map = this.getMap();
|
||||
var context = this.context_;
|
||||
if (map.hasListener(type)) {
|
||||
var view2DState = frameState.view2DState;
|
||||
var extent = frameState.extent;
|
||||
var pixelRatio = frameState.pixelRatio;
|
||||
var view2DState = frameState.view2DState;
|
||||
var resolution = view2DState.resolution;
|
||||
var rotation = view2DState.rotation;
|
||||
ol.vec.Mat4.makeTransform2D(this.transform_,
|
||||
this.canvas_.width / 2,
|
||||
this.canvas_.height / 2,
|
||||
@@ -106,12 +110,19 @@ ol.renderer.canvas.Map.prototype.dispatchComposeEvent_ =
|
||||
-pixelRatio / view2DState.resolution,
|
||||
-view2DState.rotation,
|
||||
-view2DState.center[0], -view2DState.center[1]);
|
||||
var render = new ol.render.canvas.Immediate(context, pixelRatio,
|
||||
frameState.extent, this.transform_, view2DState.rotation);
|
||||
var composeEvent = new ol.render.Event(type, map, render, frameState,
|
||||
context, null);
|
||||
var vectorContext = new ol.render.canvas.Immediate(context, pixelRatio,
|
||||
extent, this.transform_, rotation);
|
||||
var tolerance = resolution / (2 * pixelRatio);
|
||||
var replayGroup = new ol.render.canvas.ReplayGroup(tolerance, extent,
|
||||
resolution);
|
||||
var composeEvent = new ol.render.Event(type, map, vectorContext,
|
||||
replayGroup, frameState, context, null);
|
||||
map.dispatchEvent(composeEvent);
|
||||
render.flush();
|
||||
vectorContext.flush();
|
||||
if (!replayGroup.isEmpty()) {
|
||||
replayGroup.replay(context, extent, pixelRatio, this.transform_,
|
||||
rotation, {});
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -239,7 +239,7 @@ ol.renderer.webgl.Layer.prototype.dispatchComposeEvent_ =
|
||||
if (layer.hasListener(type)) {
|
||||
var render = new ol.render.webgl.Immediate(context, frameState.pixelRatio);
|
||||
var composeEvent = new ol.render.Event(
|
||||
type, layer, render, frameState, null, context);
|
||||
type, layer, render, null, frameState, null, context);
|
||||
layer.dispatchEvent(composeEvent);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -269,7 +269,7 @@ ol.renderer.webgl.Map.prototype.dispatchComposeEvent_ =
|
||||
var context = this.getContext();
|
||||
var render = new ol.render.webgl.Immediate(context, frameState.pixelRatio);
|
||||
var composeEvent = new ol.render.Event(
|
||||
type, map, render, frameState, null, context);
|
||||
type, map, render, null, frameState, null, context);
|
||||
map.dispatchEvent(composeEvent);
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user