From 9396df54c3a9ad07a66d9478c300d153d4b9ba59 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Thu, 21 Nov 2013 23:52:05 +0100 Subject: [PATCH] Always use a defined renderGeometryFunction, thanks @elemoine --- src/ol/render/canvas/canvasreplay.js | 15 +++++++-------- .../renderer/canvas/canvasvectorlayerrenderer.js | 7 ++++++- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/src/ol/render/canvas/canvasreplay.js b/src/ol/render/canvas/canvasreplay.js index b456c9adbe..054dc2036e 100644 --- a/src/ol/render/canvas/canvasreplay.js +++ b/src/ol/render/canvas/canvasreplay.js @@ -114,8 +114,8 @@ ol.render.canvas.Replay.prototype.beginGeometry = function(geometry) { /** * @param {CanvasRenderingContext2D} context Context. * @param {goog.vec.Mat4.AnyType} transform Transform. - * @param {function(ol.geom.Geometry): boolean|undefined} renderGeometryFunction - * Render geometry function. + * @param {function(ol.geom.Geometry): boolean} renderGeometryFunction Render + * geometry function. */ ol.render.canvas.Replay.prototype.draw = function(context, transform, renderGeometryFunction) { @@ -139,12 +139,11 @@ ol.render.canvas.Replay.prototype.draw = var type = /** @type {ol.render.canvas.Instruction} */ (instruction[0]); if (type == ol.render.canvas.Instruction.BEGIN_GEOMETRY) { var geometry = /** @type {ol.geom.Geometry} */ (instruction[1]); - if (goog.isDef(renderGeometryFunction) && - !renderGeometryFunction(geometry)) { + if (renderGeometryFunction(geometry)) { + ++i; + } else { d = /** @type {number} */ (instruction[2]); i = /** @type {number} */ (instruction[3]); - } else { - ++i; } } else if (type == ol.render.canvas.Instruction.BEGIN_PATH) { context.beginPath(); @@ -795,8 +794,8 @@ 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. + * @param {function(ol.geom.Geometry): boolean} renderGeometryFunction Render + * geometry function. */ ol.render.canvas.ReplayGroup.prototype.draw = function(context, extent, transform, renderGeometryFunction) { diff --git a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js index dab5b3305e..c5c58976ff 100644 --- a/src/ol/renderer/canvas/canvasvectorlayerrenderer.js +++ b/src/ol/renderer/canvas/canvasvectorlayerrenderer.js @@ -1,6 +1,7 @@ goog.provide('ol.renderer.canvas.VectorLayer'); -goog.require('goog.vec.Mat4'); +goog.require('goog.asserts'); +goog.require('goog.functions'); goog.require('ol.ViewHint'); goog.require('ol.extent'); goog.require('ol.render.canvas.ReplayGroup'); @@ -61,6 +62,10 @@ ol.renderer.canvas.VectorLayer.prototype.composeFrame = if (!goog.isNull(replayGroup)) { var vectorLayer = this.getVectorLayer(); var renderGeometryFunction = vectorLayer.getRenderGeometryFunction(); + if (!goog.isDef(renderGeometryFunction)) { + renderGeometryFunction = goog.functions.TRUE; + } + goog.asserts.assert(goog.isFunction(renderGeometryFunction)); context.globalAlpha = layerState.opacity; replayGroup.draw( context, frameState.extent, transform, renderGeometryFunction);