From a5702618860de7c6b65e30d9923f586de5e54526 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 21 Nov 2013 12:08:01 +0100 Subject: [PATCH] Pass renderGeometryFunction to ol.render.canvas.ReplayGroup --- src/ol/render/canvas/canvasreplay.js | 11 ++++++++--- src/ol/renderer/canvas/canvasvectorlayerrenderer.js | 5 ++++- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/ol/render/canvas/canvasreplay.js b/src/ol/render/canvas/canvasreplay.js index 467d21a5f6..9b7430d3bd 100644 --- a/src/ol/render/canvas/canvasreplay.js +++ b/src/ol/render/canvas/canvasreplay.js @@ -99,8 +99,11 @@ ol.render.canvas.Replay.prototype.appendFlatCoordinates = /** * @param {CanvasRenderingContext2D} context Context. * @param {goog.vec.Mat4.AnyType} transform Transform. + * @param {function(ol.geom.Geometry): boolean|undefined} renderGeometryFunction + * Render geometry function. */ -ol.render.canvas.Replay.prototype.draw = function(context, transform) { +ol.render.canvas.Replay.prototype.draw = + function(context, transform, renderGeometryFunction) { /** @type {Array.} */ var pixelCoordinates; if (ol.vec.Mat4.equal2D(transform, this.renderedTransform_)) { @@ -737,9 +740,11 @@ ol.render.canvas.ReplayGroup = function() { * @param {CanvasRenderingContext2D} context Context. * @param {ol.Extent} extent Extent. * @param {goog.vec.Mat4.AnyType} transform Transform. + * @param {function(ol.geom.Geometry): boolean|undefined} renderGeometryFunction + * Render geometry function. */ ol.render.canvas.ReplayGroup.prototype.draw = - function(context, extent, transform) { + function(context, extent, transform, renderGeometryFunction) { /** @type {Array.} */ var zs = goog.array.map(goog.object.getKeys(this.replayesByZIndex_), Number); goog.array.sort(zs); @@ -750,7 +755,7 @@ ol.render.canvas.ReplayGroup.prototype.draw = for (replayType in replayes) { var replay = replayes[replayType]; if (ol.extent.intersects(extent, replay.getExtent())) { - replay.draw(context, transform); + replay.draw(context, transform, renderGeometryFunction); } } } diff --git a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js index 92108bc7f9..dab5b3305e 100644 --- a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js +++ b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js @@ -59,8 +59,11 @@ ol.renderer.canvas.VectorLayer.prototype.composeFrame = var replayGroup = this.replayGroup_; if (!goog.isNull(replayGroup)) { + var vectorLayer = this.getVectorLayer(); + var renderGeometryFunction = vectorLayer.getRenderGeometryFunction(); context.globalAlpha = layerState.opacity; - replayGroup.draw(context, frameState.extent, transform); + replayGroup.draw( + context, frameState.extent, transform, renderGeometryFunction); } this.dispatchPostComposeEvent(context, frameState, transform);