Unconditionally draw Replay's

This commit is contained in:
Éric Lemoine
2014-12-18 12:27:06 +01:00
parent cd0bed6291
commit ddc51ee267
14 changed files with 29 additions and 88 deletions

View File

@@ -120,12 +120,6 @@ ol.render.canvas.Replay = function(tolerance, maxExtent, resolution) {
*/ */
this.pixelCoordinates_ = []; this.pixelCoordinates_ = [];
/**
* @private
* @type {ol.Extent}
*/
this.extent_ = ol.extent.createEmpty();
/** /**
* @private * @private
* @type {!goog.vec.Mat4.Number} * @type {!goog.vec.Mat4.Number}
@@ -620,14 +614,6 @@ ol.render.canvas.Replay.prototype.getBufferedMaxExtent = function() {
}; };
/**
* @return {ol.Extent} Extent.
*/
ol.render.canvas.Replay.prototype.getExtent = function() {
return this.extent_;
};
/** /**
* @inheritDoc * @inheritDoc
*/ */
@@ -775,7 +761,6 @@ ol.render.canvas.ImageReplay.prototype.drawPointGeometry =
goog.asserts.assert(goog.isDef(this.rotation_)); goog.asserts.assert(goog.isDef(this.rotation_));
goog.asserts.assert(goog.isDef(this.scale_)); goog.asserts.assert(goog.isDef(this.scale_));
goog.asserts.assert(goog.isDef(this.width_)); goog.asserts.assert(goog.isDef(this.width_));
ol.extent.extend(this.extent_, pointGeometry.getExtent());
this.beginGeometry(pointGeometry, feature); this.beginGeometry(pointGeometry, feature);
var flatCoordinates = pointGeometry.getFlatCoordinates(); var flatCoordinates = pointGeometry.getFlatCoordinates();
var stride = pointGeometry.getStride(); var stride = pointGeometry.getStride();
@@ -819,7 +804,6 @@ ol.render.canvas.ImageReplay.prototype.drawMultiPointGeometry =
goog.asserts.assert(goog.isDef(this.rotation_)); goog.asserts.assert(goog.isDef(this.rotation_));
goog.asserts.assert(goog.isDef(this.scale_)); goog.asserts.assert(goog.isDef(this.scale_));
goog.asserts.assert(goog.isDef(this.width_)); goog.asserts.assert(goog.isDef(this.width_));
ol.extent.extend(this.extent_, multiPointGeometry.getExtent());
this.beginGeometry(multiPointGeometry, feature); this.beginGeometry(multiPointGeometry, feature);
var flatCoordinates = multiPointGeometry.getFlatCoordinates(); var flatCoordinates = multiPointGeometry.getFlatCoordinates();
var stride = multiPointGeometry.getStride(); var stride = multiPointGeometry.getStride();
@@ -1036,7 +1020,6 @@ ol.render.canvas.LineStringReplay.prototype.drawLineStringGeometry =
if (!goog.isDef(strokeStyle) || !goog.isDef(lineWidth)) { if (!goog.isDef(strokeStyle) || !goog.isDef(lineWidth)) {
return; return;
} }
ol.extent.extend(this.extent_, lineStringGeometry.getExtent());
this.setStrokeStyle_(); this.setStrokeStyle_();
this.beginGeometry(lineStringGeometry, feature); this.beginGeometry(lineStringGeometry, feature);
this.hitDetectionInstructions.push( this.hitDetectionInstructions.push(
@@ -1065,7 +1048,6 @@ ol.render.canvas.LineStringReplay.prototype.drawMultiLineStringGeometry =
if (!goog.isDef(strokeStyle) || !goog.isDef(lineWidth)) { if (!goog.isDef(strokeStyle) || !goog.isDef(lineWidth)) {
return; return;
} }
ol.extent.extend(this.extent_, multiLineStringGeometry.getExtent());
this.setStrokeStyle_(); this.setStrokeStyle_();
this.beginGeometry(multiLineStringGeometry, feature); this.beginGeometry(multiLineStringGeometry, feature);
this.hitDetectionInstructions.push( this.hitDetectionInstructions.push(
@@ -1243,7 +1225,6 @@ ol.render.canvas.PolygonReplay.prototype.drawCircleGeometry =
if (goog.isDef(strokeStyle)) { if (goog.isDef(strokeStyle)) {
goog.asserts.assert(goog.isDef(state.lineWidth)); goog.asserts.assert(goog.isDef(state.lineWidth));
} }
ol.extent.extend(this.extent_, circleGeometry.getExtent());
this.setFillStrokeStyles_(); this.setFillStrokeStyles_();
this.beginGeometry(circleGeometry, feature); this.beginGeometry(circleGeometry, feature);
// always fill the circle for hit detection // always fill the circle for hit detection
@@ -1295,7 +1276,6 @@ ol.render.canvas.PolygonReplay.prototype.drawPolygonGeometry =
if (goog.isDef(strokeStyle)) { if (goog.isDef(strokeStyle)) {
goog.asserts.assert(goog.isDef(state.lineWidth)); goog.asserts.assert(goog.isDef(state.lineWidth));
} }
ol.extent.extend(this.extent_, polygonGeometry.getExtent());
this.setFillStrokeStyles_(); this.setFillStrokeStyles_();
this.beginGeometry(polygonGeometry, feature); this.beginGeometry(polygonGeometry, feature);
// always fill the polygon for hit detection // always fill the polygon for hit detection
@@ -1331,7 +1311,6 @@ ol.render.canvas.PolygonReplay.prototype.drawMultiPolygonGeometry =
if (goog.isDef(strokeStyle)) { if (goog.isDef(strokeStyle)) {
goog.asserts.assert(goog.isDef(state.lineWidth)); goog.asserts.assert(goog.isDef(state.lineWidth));
} }
ol.extent.extend(this.extent_, multiPolygonGeometry.getExtent());
this.setFillStrokeStyles_(); this.setFillStrokeStyles_();
this.beginGeometry(multiPolygonGeometry, feature); this.beginGeometry(multiPolygonGeometry, feature);
// always fill the multi-polygon for hit detection // always fill the multi-polygon for hit detection
@@ -1576,8 +1555,6 @@ ol.render.canvas.TextReplay.prototype.drawText =
goog.isNull(this.textStrokeState_))) { goog.isNull(this.textStrokeState_))) {
return; return;
} }
ol.extent.extendFlatCoordinates(
this.extent_, flatCoordinates, offset, end, stride);
if (!goog.isNull(this.textFillState_)) { if (!goog.isNull(this.textFillState_)) {
this.setReplayFillState_(this.textFillState_); this.setReplayFillState_(this.textFillState_);
} }
@@ -1866,7 +1843,6 @@ ol.render.canvas.ReplayGroup.prototype.finish = function() {
/** /**
* @param {ol.Extent} extent Extent.
* @param {number} resolution Resolution. * @param {number} resolution Resolution.
* @param {number} rotation Rotation. * @param {number} rotation Rotation.
* @param {ol.Coordinate} coordinate Coordinate. * @param {ol.Coordinate} coordinate Coordinate.
@@ -1876,8 +1852,7 @@ ol.render.canvas.ReplayGroup.prototype.finish = function() {
* @template T * @template T
*/ */
ol.render.canvas.ReplayGroup.prototype.forEachGeometryAtPixel = function( ol.render.canvas.ReplayGroup.prototype.forEachGeometryAtPixel = function(
extent, resolution, rotation, coordinate, resolution, rotation, coordinate, skippedFeaturesHash, callback) {
skippedFeaturesHash, callback) {
var transform = this.hitDetectionTransform_; var transform = this.hitDetectionTransform_;
ol.vec.Mat4.makeTransform2D(transform, 0.5, 0.5, ol.vec.Mat4.makeTransform2D(transform, 0.5, 0.5,
@@ -1887,8 +1862,8 @@ ol.render.canvas.ReplayGroup.prototype.forEachGeometryAtPixel = function(
var context = this.hitDetectionContext_; var context = this.hitDetectionContext_;
context.clearRect(0, 0, 1, 1); context.clearRect(0, 0, 1, 1);
return this.replayHitDetection_(context, extent, transform, return this.replayHitDetection_(context, transform, rotation,
rotation, skippedFeaturesHash, skippedFeaturesHash,
/** /**
* @param {ol.Feature} feature Feature. * @param {ol.Feature} feature Feature.
* @return {?} Callback result. * @return {?} Callback result.
@@ -1939,14 +1914,13 @@ ol.render.canvas.ReplayGroup.prototype.isEmpty = function() {
/** /**
* @param {CanvasRenderingContext2D} context Context. * @param {CanvasRenderingContext2D} context Context.
* @param {ol.Extent} extent Extent.
* @param {number} pixelRatio Pixel ratio. * @param {number} pixelRatio Pixel ratio.
* @param {goog.vec.Mat4.Number} transform Transform. * @param {goog.vec.Mat4.Number} transform Transform.
* @param {number} viewRotation View rotation. * @param {number} viewRotation View rotation.
* @param {Object} skippedFeaturesHash Ids of features to skip * @param {Object} skippedFeaturesHash Ids of features to skip
*/ */
ol.render.canvas.ReplayGroup.prototype.replay = function( ol.render.canvas.ReplayGroup.prototype.replay = function(
context, extent, pixelRatio, transform, viewRotation, skippedFeaturesHash) { context, pixelRatio, transform, viewRotation, skippedFeaturesHash) {
/** @type {Array.<number>} */ /** @type {Array.<number>} */
var zs = goog.array.map(goog.object.getKeys(this.replaysByZIndex_), Number); var zs = goog.array.map(goog.object.getKeys(this.replaysByZIndex_), Number);
@@ -1974,8 +1948,7 @@ ol.render.canvas.ReplayGroup.prototype.replay = function(
replays = this.replaysByZIndex_[zs[i].toString()]; replays = this.replaysByZIndex_[zs[i].toString()];
for (j = 0, jj = ol.render.REPLAY_ORDER.length; j < jj; ++j) { for (j = 0, jj = ol.render.REPLAY_ORDER.length; j < jj; ++j) {
replay = replays[ol.render.REPLAY_ORDER[j]]; replay = replays[ol.render.REPLAY_ORDER[j]];
if (goog.isDef(replay) && if (goog.isDef(replay)) {
ol.extent.intersects(extent, replay.getExtent())) {
replay.replay(context, pixelRatio, transform, viewRotation, replay.replay(context, pixelRatio, transform, viewRotation,
skippedFeaturesHash); skippedFeaturesHash);
} }
@@ -1989,7 +1962,6 @@ ol.render.canvas.ReplayGroup.prototype.replay = function(
/** /**
* @private * @private
* @param {CanvasRenderingContext2D} context Context. * @param {CanvasRenderingContext2D} context Context.
* @param {ol.Extent} extent Extent.
* @param {goog.vec.Mat4.Number} transform Transform. * @param {goog.vec.Mat4.Number} transform Transform.
* @param {number} viewRotation View rotation. * @param {number} viewRotation View rotation.
* @param {Object} skippedFeaturesHash Ids of features to skip * @param {Object} skippedFeaturesHash Ids of features to skip
@@ -1998,7 +1970,7 @@ ol.render.canvas.ReplayGroup.prototype.replay = function(
* @template T * @template T
*/ */
ol.render.canvas.ReplayGroup.prototype.replayHitDetection_ = function( ol.render.canvas.ReplayGroup.prototype.replayHitDetection_ = function(
context, extent, transform, viewRotation, skippedFeaturesHash, context, transform, viewRotation, skippedFeaturesHash,
featureCallback) { featureCallback) {
/** @type {Array.<number>} */ /** @type {Array.<number>} */
var zs = goog.array.map(goog.object.getKeys(this.replaysByZIndex_), Number); var zs = goog.array.map(goog.object.getKeys(this.replaysByZIndex_), Number);
@@ -2009,8 +1981,7 @@ ol.render.canvas.ReplayGroup.prototype.replayHitDetection_ = function(
replays = this.replaysByZIndex_[zs[i].toString()]; replays = this.replaysByZIndex_[zs[i].toString()];
for (j = ol.render.REPLAY_ORDER.length - 1; j >= 0; --j) { for (j = ol.render.REPLAY_ORDER.length - 1; j >= 0; --j) {
replay = replays[ol.render.REPLAY_ORDER[j]]; replay = replays[ol.render.REPLAY_ORDER[j]];
if (goog.isDef(replay) && if (goog.isDef(replay)) {
ol.extent.intersects(extent, replay.getExtent())) {
result = replay.replayHitDetection(context, transform, viewRotation, result = replay.replayHitDetection(context, transform, viewRotation,
skippedFeaturesHash, featureCallback); skippedFeaturesHash, featureCallback);
if (result) { if (result) {

View File

@@ -54,12 +54,6 @@ ol.render.webgl.ImageReplay = function(tolerance, maxExtent) {
*/ */
this.origin_ = ol.extent.getCenter(maxExtent); this.origin_ = ol.extent.getCenter(maxExtent);
/**
* @type {ol.Extent}
* @private
*/
this.extent_ = ol.extent.createEmpty();
/** /**
* @type {Array.<number>} * @type {Array.<number>}
* @private * @private
@@ -383,7 +377,6 @@ ol.render.webgl.ImageReplay.prototype.drawMultiLineStringGeometry =
*/ */
ol.render.webgl.ImageReplay.prototype.drawMultiPointGeometry = ol.render.webgl.ImageReplay.prototype.drawMultiPointGeometry =
function(multiPointGeometry, feature) { function(multiPointGeometry, feature) {
ol.extent.extend(this.extent_, multiPointGeometry.getExtent());
var flatCoordinates = multiPointGeometry.getFlatCoordinates(); var flatCoordinates = multiPointGeometry.getFlatCoordinates();
var stride = multiPointGeometry.getStride(); var stride = multiPointGeometry.getStride();
this.drawCoordinates_( this.drawCoordinates_(
@@ -403,7 +396,6 @@ ol.render.webgl.ImageReplay.prototype.drawMultiPolygonGeometry =
*/ */
ol.render.webgl.ImageReplay.prototype.drawPointGeometry = ol.render.webgl.ImageReplay.prototype.drawPointGeometry =
function(pointGeometry, feature) { function(pointGeometry, feature) {
ol.extent.extend(this.extent_, pointGeometry.getExtent());
var flatCoordinates = pointGeometry.getFlatCoordinates(); var flatCoordinates = pointGeometry.getFlatCoordinates();
var stride = pointGeometry.getStride(); var stride = pointGeometry.getStride();
this.drawCoordinates_( this.drawCoordinates_(
@@ -498,21 +490,12 @@ ol.render.webgl.ImageReplay.prototype.finish = function(context) {
}; };
/**
* @return {ol.Extent} Extent.
*/
ol.render.webgl.ImageReplay.prototype.getExtent = function() {
return this.extent_;
};
/** /**
* @param {ol.webgl.Context} context Context. * @param {ol.webgl.Context} context Context.
* @param {ol.Coordinate} center Center. * @param {ol.Coordinate} center Center.
* @param {number} resolution Resolution. * @param {number} resolution Resolution.
* @param {number} rotation Rotation. * @param {number} rotation Rotation.
* @param {ol.Size} size Size. * @param {ol.Size} size Size.
* @param {ol.Extent} extent Extent.
* @param {number} pixelRatio Pixel ratio. * @param {number} pixelRatio Pixel ratio.
* @param {number} opacity Global opacity. * @param {number} opacity Global opacity.
* @param {number} brightness Global brightness. * @param {number} brightness Global brightness.
@@ -524,7 +507,7 @@ ol.render.webgl.ImageReplay.prototype.getExtent = function() {
* @template T * @template T
*/ */
ol.render.webgl.ImageReplay.prototype.replay = function(context, ol.render.webgl.ImageReplay.prototype.replay = function(context,
center, resolution, rotation, size, extent, pixelRatio, center, resolution, rotation, size, pixelRatio,
opacity, brightness, contrast, hue, saturation, skippedFeaturesHash) { opacity, brightness, contrast, hue, saturation, skippedFeaturesHash) {
var gl = context.getGL(); var gl = context.getGL();
@@ -798,7 +781,6 @@ ol.render.webgl.ReplayGroup.prototype.isEmpty = function() {
* @param {number} resolution Resolution. * @param {number} resolution Resolution.
* @param {number} rotation Rotation. * @param {number} rotation Rotation.
* @param {ol.Size} size Size. * @param {ol.Size} size Size.
* @param {ol.Extent} extent Extent.
* @param {number} pixelRatio Pixel ratio. * @param {number} pixelRatio Pixel ratio.
* @param {number} opacity Global opacity. * @param {number} opacity Global opacity.
* @param {number} brightness Global brightness. * @param {number} brightness Global brightness.
@@ -810,15 +792,14 @@ ol.render.webgl.ReplayGroup.prototype.isEmpty = function() {
* @template T * @template T
*/ */
ol.render.webgl.ReplayGroup.prototype.replay = function(context, ol.render.webgl.ReplayGroup.prototype.replay = function(context,
center, resolution, rotation, size, extent, pixelRatio, center, resolution, rotation, size, pixelRatio,
opacity, brightness, contrast, hue, saturation, skippedFeaturesHash) { opacity, brightness, contrast, hue, saturation, skippedFeaturesHash) {
var i, ii, replay, result; var i, ii, replay, result;
for (i = 0, ii = ol.render.REPLAY_ORDER.length; i < ii; ++i) { for (i = 0, ii = ol.render.REPLAY_ORDER.length; i < ii; ++i) {
replay = this.replays_[ol.render.REPLAY_ORDER[i]]; replay = this.replays_[ol.render.REPLAY_ORDER[i]];
if (goog.isDef(replay) && if (goog.isDef(replay)) {
ol.extent.intersects(extent, replay.getExtent())) {
result = replay.replay(context, result = replay.replay(context,
center, resolution, rotation, size, extent, pixelRatio, center, resolution, rotation, size, pixelRatio,
opacity, brightness, contrast, hue, saturation, skippedFeaturesHash); opacity, brightness, contrast, hue, saturation, skippedFeaturesHash);
if (result) { if (result) {
return result; return result;

View File

@@ -49,12 +49,11 @@ ol.renderer.canvas.ImageLayer.prototype.forEachFeatureAtPixel =
function(coordinate, frameState, callback, thisArg) { function(coordinate, frameState, callback, thisArg) {
var layer = this.getLayer(); var layer = this.getLayer();
var source = layer.getSource(); var source = layer.getSource();
var extent = frameState.extent;
var resolution = frameState.viewState.resolution; var resolution = frameState.viewState.resolution;
var rotation = frameState.viewState.rotation; var rotation = frameState.viewState.rotation;
var skippedFeatureUids = frameState.skippedFeatureUids; var skippedFeatureUids = frameState.skippedFeatureUids;
return source.forEachFeatureAtPixel( return source.forEachFeatureAtPixel(
extent, resolution, rotation, coordinate, skippedFeatureUids, resolution, rotation, coordinate, skippedFeatureUids,
/** /**
* @param {ol.Feature} feature Feature. * @param {ol.Feature} feature Feature.
* @return {?} Callback result. * @return {?} Callback result.

View File

@@ -123,7 +123,7 @@ ol.renderer.canvas.Map.prototype.dispatchComposeEvent_ =
replayGroup.finish(); replayGroup.finish();
if (!replayGroup.isEmpty()) { if (!replayGroup.isEmpty()) {
replayGroup.replay(context, extent, pixelRatio, this.transform_, replayGroup.replay(context, pixelRatio, this.transform_,
rotation, {}); rotation, {});
} }
vectorContext.flush(); vectorContext.flush();

View File

@@ -98,7 +98,7 @@ ol.renderer.canvas.VectorLayer.prototype.composeFrame =
var alpha = replayContext.globalAlpha; var alpha = replayContext.globalAlpha;
replayContext.globalAlpha = layerState.opacity; replayContext.globalAlpha = layerState.opacity;
replayGroup.replay( replayGroup.replay(
replayContext, frameState.extent, frameState.pixelRatio, transform, replayContext, frameState.pixelRatio, transform,
frameState.viewState.rotation, frameState.skippedFeatureUids); frameState.viewState.rotation, frameState.skippedFeatureUids);
if (replayContext != context) { if (replayContext != context) {
@@ -121,13 +121,12 @@ ol.renderer.canvas.VectorLayer.prototype.forEachFeatureAtPixel =
if (goog.isNull(this.replayGroup_)) { if (goog.isNull(this.replayGroup_)) {
return undefined; return undefined;
} else { } else {
var extent = frameState.extent;
var resolution = frameState.viewState.resolution; var resolution = frameState.viewState.resolution;
var rotation = frameState.viewState.rotation; var rotation = frameState.viewState.rotation;
var layer = this.getLayer(); var layer = this.getLayer();
/** @type {Object.<string, boolean>} */ /** @type {Object.<string, boolean>} */
var features = {}; var features = {};
return this.replayGroup_.forEachGeometryAtPixel(extent, resolution, return this.replayGroup_.forEachGeometryAtPixel(resolution,
rotation, coordinate, frameState.skippedFeatureUids, rotation, coordinate, frameState.skippedFeatureUids,
/** /**
* @param {ol.Feature} feature Feature. * @param {ol.Feature} feature Feature.

View File

@@ -54,12 +54,11 @@ ol.renderer.dom.ImageLayer.prototype.forEachFeatureAtPixel =
function(coordinate, frameState, callback, thisArg) { function(coordinate, frameState, callback, thisArg) {
var layer = this.getLayer(); var layer = this.getLayer();
var source = layer.getSource(); var source = layer.getSource();
var extent = frameState.extent;
var resolution = frameState.viewState.resolution; var resolution = frameState.viewState.resolution;
var rotation = frameState.viewState.rotation; var rotation = frameState.viewState.rotation;
var skippedFeatureUids = frameState.skippedFeatureUids; var skippedFeatureUids = frameState.skippedFeatureUids;
return source.forEachFeatureAtPixel( return source.forEachFeatureAtPixel(
extent, resolution, rotation, coordinate, skippedFeatureUids, resolution, rotation, coordinate, skippedFeatureUids,
/** /**
* @param {ol.Feature} feature Feature. * @param {ol.Feature} feature Feature.
* @return {?} Callback result. * @return {?} Callback result.

View File

@@ -160,8 +160,7 @@ ol.renderer.dom.Map.prototype.dispatchComposeEvent_ =
map.dispatchEvent(composeEvent); map.dispatchEvent(composeEvent);
replayGroup.finish(); replayGroup.finish();
if (!replayGroup.isEmpty()) { if (!replayGroup.isEmpty()) {
replayGroup.replay(context, extent, pixelRatio, this.transform_, replayGroup.replay(context, pixelRatio, this.transform_, rotation, {});
rotation, {});
} }
vectorContext.flush(); vectorContext.flush();
this.replayGroup = replayGroup; this.replayGroup = replayGroup;

View File

@@ -121,9 +121,8 @@ ol.renderer.dom.VectorLayer.prototype.composeFrame =
if (!goog.isNull(replayGroup) && !replayGroup.isEmpty()) { if (!goog.isNull(replayGroup) && !replayGroup.isEmpty()) {
context.globalAlpha = layerState.opacity; context.globalAlpha = layerState.opacity;
replayGroup.replay( replayGroup.replay(context, pixelRatio, transform, viewRotation,
context, frameState.extent, pixelRatio, transform, frameState.skippedFeatureUids);
viewRotation, frameState.skippedFeatureUids);
this.dispatchEvent_(ol.render.EventType.RENDER, frameState, transform); this.dispatchEvent_(ol.render.EventType.RENDER, frameState, transform);
} }
@@ -162,13 +161,12 @@ ol.renderer.dom.VectorLayer.prototype.forEachFeatureAtPixel =
if (goog.isNull(this.replayGroup_)) { if (goog.isNull(this.replayGroup_)) {
return undefined; return undefined;
} else { } else {
var extent = frameState.extent;
var resolution = frameState.viewState.resolution; var resolution = frameState.viewState.resolution;
var rotation = frameState.viewState.rotation; var rotation = frameState.viewState.rotation;
var layer = this.getLayer(); var layer = this.getLayer();
/** @type {Object.<string, boolean>} */ /** @type {Object.<string, boolean>} */
var features = {}; var features = {};
return this.replayGroup_.forEachGeometryAtPixel(extent, resolution, return this.replayGroup_.forEachGeometryAtPixel(resolution,
rotation, coordinate, frameState.skippedFeatureUids, rotation, coordinate, frameState.skippedFeatureUids,
/** /**
* @param {ol.Feature} feature Feature. * @param {ol.Feature} feature Feature.

View File

@@ -80,12 +80,11 @@ ol.renderer.webgl.ImageLayer.prototype.forEachFeatureAtPixel =
function(coordinate, frameState, callback, thisArg) { function(coordinate, frameState, callback, thisArg) {
var layer = this.getLayer(); var layer = this.getLayer();
var source = layer.getSource(); var source = layer.getSource();
var extent = frameState.extent;
var resolution = frameState.viewState.resolution; var resolution = frameState.viewState.resolution;
var rotation = frameState.viewState.rotation; var rotation = frameState.viewState.rotation;
var skippedFeatureUids = frameState.skippedFeatureUids; var skippedFeatureUids = frameState.skippedFeatureUids;
return source.forEachFeatureAtPixel( return source.forEachFeatureAtPixel(
extent, resolution, rotation, coordinate, skippedFeatureUids, resolution, rotation, coordinate, skippedFeatureUids,
/** /**
* @param {ol.Feature} feature Feature. * @param {ol.Feature} feature Feature.

View File

@@ -299,7 +299,7 @@ ol.renderer.webgl.Map.prototype.dispatchComposeEvent_ =
var contrast = 1; var contrast = 1;
var hue = 0; var hue = 0;
var saturation = 1; var saturation = 1;
replayGroup.replay(context, center, resolution, rotation, size, extent, replayGroup.replay(context, center, resolution, rotation, size,
pixelRatio, opacity, brightness, contrast, hue, saturation, {}); pixelRatio, opacity, brightness, contrast, hue, saturation, {});
} }
replayGroup.getDeleteResourcesFunction(context)(); replayGroup.getDeleteResourcesFunction(context)();

View File

@@ -72,9 +72,9 @@ ol.renderer.webgl.VectorLayer.prototype.composeFrame =
if (!goog.isNull(replayGroup) && !replayGroup.isEmpty()) { if (!goog.isNull(replayGroup) && !replayGroup.isEmpty()) {
replayGroup.replay(context, replayGroup.replay(context,
viewState.center, viewState.resolution, viewState.rotation, viewState.center, viewState.resolution, viewState.rotation,
frameState.size, frameState.extent, frameState.pixelRatio, frameState.size, frameState.pixelRatio, layerState.opacity,
layerState.opacity, layerState.brightness, layerState.contrast, layerState.brightness, layerState.contrast, layerState.hue,
layerState.hue, layerState.saturation, frameState.skippedFeatureUids); layerState.saturation, frameState.skippedFeatureUids);
} }
}; };

View File

@@ -141,8 +141,7 @@ ol.source.ImageVector.prototype.canvasFunctionInternal_ =
var transform = this.getTransform_(ol.extent.getCenter(extent), var transform = this.getTransform_(ol.extent.getCenter(extent),
resolution, pixelRatio, size); resolution, pixelRatio, size);
replayGroup.replay(this.canvasContext_, extent, pixelRatio, transform, 0, replayGroup.replay(this.canvasContext_, pixelRatio, transform, 0, {});
{});
this.replayGroup_ = replayGroup; this.replayGroup_ = replayGroup;
@@ -154,14 +153,14 @@ ol.source.ImageVector.prototype.canvasFunctionInternal_ =
* @inheritDoc * @inheritDoc
*/ */
ol.source.ImageVector.prototype.forEachFeatureAtPixel = function( ol.source.ImageVector.prototype.forEachFeatureAtPixel = function(
extent, resolution, rotation, coordinate, skippedFeatureUids, callback) { resolution, rotation, coordinate, skippedFeatureUids, callback) {
if (goog.isNull(this.replayGroup_)) { if (goog.isNull(this.replayGroup_)) {
return undefined; return undefined;
} else { } else {
/** @type {Object.<string, boolean>} */ /** @type {Object.<string, boolean>} */
var features = {}; var features = {};
return this.replayGroup_.forEachGeometryAtPixel( return this.replayGroup_.forEachGeometryAtPixel(
extent, resolution, 0, coordinate, skippedFeatureUids, resolution, 0, coordinate, skippedFeatureUids,
/** /**
* @param {ol.Feature} feature Feature. * @param {ol.Feature} feature Feature.
* @return {?} Callback result. * @return {?} Callback result.

View File

@@ -3,7 +3,6 @@ goog.provide('ol.source.State');
goog.require('goog.events.EventType'); goog.require('goog.events.EventType');
goog.require('ol.Attribution'); goog.require('ol.Attribution');
goog.require('ol.Extent');
goog.require('ol.Observable'); goog.require('ol.Observable');
goog.require('ol.proj'); goog.require('ol.proj');
@@ -78,7 +77,6 @@ goog.inherits(ol.source.Source, ol.Observable);
/** /**
* @param {ol.Extent} extent Extent.
* @param {number} resolution Resolution. * @param {number} resolution Resolution.
* @param {number} rotation Rotation. * @param {number} rotation Rotation.
* @param {ol.Coordinate} coordinate Coordinate. * @param {ol.Coordinate} coordinate Coordinate.

View File

@@ -70,7 +70,7 @@ describe('ol.renderer.canvas.VectorLayer', function() {
map.getRenderer(), layer); map.getRenderer(), layer);
var replayGroup = {}; var replayGroup = {};
renderer.replayGroup_ = replayGroup; renderer.replayGroup_ = replayGroup;
replayGroup.forEachGeometryAtPixel = function(extent, resolution, replayGroup.forEachGeometryAtPixel = function(resolution,
rotation, coordinate, skippedFeaturesUids, callback) { rotation, coordinate, skippedFeaturesUids, callback) {
var geometry = new ol.geom.Point([0, 0]); var geometry = new ol.geom.Point([0, 0]);
var feature = new ol.Feature(); var feature = new ol.Feature();
@@ -83,7 +83,6 @@ describe('ol.renderer.canvas.VectorLayer', function() {
var spy = sinon.spy(); var spy = sinon.spy();
var coordinate = [0, 0]; var coordinate = [0, 0];
var frameState = { var frameState = {
extent: [1, 1, 10, 10],
skippedFeatureUids: {}, skippedFeatureUids: {},
viewState: { viewState: {
resolution: 1, resolution: 1,