From f2dbf4c145c5d1c288ef0c34cadb4c2e3f0fdbc1 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Tue, 7 Jan 2014 13:45:36 +0100 Subject: [PATCH 1/2] Add ol.render.REPLAY_ORDER --- src/ol/render/ireplay.js | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/ol/render/ireplay.js b/src/ol/render/ireplay.js index a30266ece5..d854d44e38 100644 --- a/src/ol/render/ireplay.js +++ b/src/ol/render/ireplay.js @@ -14,6 +14,16 @@ ol.render.ReplayType = { }; +/** + * @const {Array.} + */ +ol.render.REPLAY_ORDER = [ + ol.render.ReplayType.POLYGON, + ol.render.ReplayType.LINE_STRING, + ol.render.ReplayType.IMAGE +]; + + /** * @interface From c816d0105d4504c559e2dfd3a6e0732440645288 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Tue, 7 Jan 2014 13:45:56 +0100 Subject: [PATCH 2/2] Replay groups in defined order --- src/ol/render/canvas/canvasreplay.js | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/ol/render/canvas/canvasreplay.js b/src/ol/render/canvas/canvasreplay.js index 53b33610d1..1e94d2c537 100644 --- a/src/ol/render/canvas/canvasreplay.js +++ b/src/ol/render/canvas/canvasreplay.js @@ -1300,12 +1300,13 @@ ol.render.canvas.ReplayGroup.prototype.replayHitDetection_ = */ ol.render.canvas.ReplayGroup.prototype.replay_ = function(zs, context, extent, transform, renderGeometryFunction) { - var i, ii, replays, replayType, replay, result; + var i, ii, j, jj, replays, replayType, replay, result; for (i = 0, ii = zs.length; i < ii; ++i) { replays = this.replaysByZIndex_[zs[i].toString()]; - for (replayType in replays) { - replay = replays[replayType]; - if (ol.extent.intersects(extent, replay.getExtent())) { + for (j = 0, jj = ol.render.REPLAY_ORDER.length; j < jj; ++j) { + replay = replays[ol.render.REPLAY_ORDER[j]]; + if (goog.isDef(replay) && + ol.extent.intersects(extent, replay.getExtent())) { result = replay.replay( context, transform, renderGeometryFunction); if (result) {