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