From 4675ae22854ddc291af441f25dc22d3ca74df563 Mon Sep 17 00:00:00 2001 From: Tom Payne Date: Mon, 6 Aug 2012 09:39:41 +0200 Subject: [PATCH] Fix rendering at large zooms --- src/ol/webgl/tilelayerrenderer.js | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/ol/webgl/tilelayerrenderer.js b/src/ol/webgl/tilelayerrenderer.js index 0885c82d8a..6137e833f6 100644 --- a/src/ol/webgl/tilelayerrenderer.js +++ b/src/ol/webgl/tilelayerrenderer.js @@ -1,7 +1,6 @@ // FIXME large resolutions lead to too large framebuffers :-( // FIXME animated shaders! check in redraw // FIXME defer texture uploads and delete* calls -// FIXME strange things happen at very large zooms goog.provide('ol.webgl.TileLayerRenderer'); goog.provide('ol.webgl.tilelayerrenderer.shader.Fragment'); @@ -263,8 +262,9 @@ ol.webgl.TileLayerRenderer.prototype.render = function() { var tileStore = tileLayer.getStore(); var tileGrid = tileStore.getTileGrid(); var z = tileGrid.getZForResolution(mapResolution); + var tileResolution = tileGrid.getResolution(z); var tileBounds = tileGrid.getTileBoundsForExtentAndResolution( - mapRotatedExtent, mapResolution); + mapRotatedExtent, tileResolution); var tileBoundsSize = tileBounds.getSize(); var tileSize = tileGrid.getTileSize(); @@ -274,10 +274,9 @@ ol.webgl.TileLayerRenderer.prototype.render = function() { var framebufferDimension = Math.pow(2, Math.ceil(Math.log(maxDimension) / Math.log(2))); var framebufferExtentSize = new ol.Size( - mapResolution * framebufferDimension, - mapResolution * framebufferDimension); + tileResolution * framebufferDimension, + tileResolution * framebufferDimension); var origin = tileGrid.getOrigin(z); - var tileResolution = tileGrid.getResolution(z); var minX = origin.x + tileBounds.minX * tileSize.width * tileResolution; var minY = origin.y + tileBounds.minY * tileSize.height * tileResolution; var framebufferExtent = new ol.Extent(