Fix rendering at large zooms
This commit is contained in:
@@ -1,7 +1,6 @@
|
|||||||
// FIXME large resolutions lead to too large framebuffers :-(
|
// FIXME large resolutions lead to too large framebuffers :-(
|
||||||
// FIXME animated shaders! check in redraw
|
// FIXME animated shaders! check in redraw
|
||||||
// FIXME defer texture uploads and delete* calls
|
// 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');
|
||||||
goog.provide('ol.webgl.tilelayerrenderer.shader.Fragment');
|
goog.provide('ol.webgl.tilelayerrenderer.shader.Fragment');
|
||||||
@@ -263,8 +262,9 @@ ol.webgl.TileLayerRenderer.prototype.render = function() {
|
|||||||
var tileStore = tileLayer.getStore();
|
var tileStore = tileLayer.getStore();
|
||||||
var tileGrid = tileStore.getTileGrid();
|
var tileGrid = tileStore.getTileGrid();
|
||||||
var z = tileGrid.getZForResolution(mapResolution);
|
var z = tileGrid.getZForResolution(mapResolution);
|
||||||
|
var tileResolution = tileGrid.getResolution(z);
|
||||||
var tileBounds = tileGrid.getTileBoundsForExtentAndResolution(
|
var tileBounds = tileGrid.getTileBoundsForExtentAndResolution(
|
||||||
mapRotatedExtent, mapResolution);
|
mapRotatedExtent, tileResolution);
|
||||||
var tileBoundsSize = tileBounds.getSize();
|
var tileBoundsSize = tileBounds.getSize();
|
||||||
var tileSize = tileGrid.getTileSize();
|
var tileSize = tileGrid.getTileSize();
|
||||||
|
|
||||||
@@ -274,10 +274,9 @@ ol.webgl.TileLayerRenderer.prototype.render = function() {
|
|||||||
var framebufferDimension =
|
var framebufferDimension =
|
||||||
Math.pow(2, Math.ceil(Math.log(maxDimension) / Math.log(2)));
|
Math.pow(2, Math.ceil(Math.log(maxDimension) / Math.log(2)));
|
||||||
var framebufferExtentSize = new ol.Size(
|
var framebufferExtentSize = new ol.Size(
|
||||||
mapResolution * framebufferDimension,
|
tileResolution * framebufferDimension,
|
||||||
mapResolution * framebufferDimension);
|
tileResolution * framebufferDimension);
|
||||||
var origin = tileGrid.getOrigin(z);
|
var origin = tileGrid.getOrigin(z);
|
||||||
var tileResolution = tileGrid.getResolution(z);
|
|
||||||
var minX = origin.x + tileBounds.minX * tileSize.width * tileResolution;
|
var minX = origin.x + tileBounds.minX * tileSize.width * tileResolution;
|
||||||
var minY = origin.y + tileBounds.minY * tileSize.height * tileResolution;
|
var minY = origin.y + tileBounds.minY * tileSize.height * tileResolution;
|
||||||
var framebufferExtent = new ol.Extent(
|
var framebufferExtent = new ol.Extent(
|
||||||
|
|||||||
Reference in New Issue
Block a user