Always use a defined renderGeometryFunction, thanks @elemoine

This commit is contained in:
Tom Payne
2013-11-21 23:52:05 +01:00
parent fd48b06dc0
commit 9396df54c3
2 changed files with 13 additions and 9 deletions

View File

@@ -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) {

View File

@@ -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);