diff --git a/src/ol/webgl/map.js b/src/ol/webgl/map.js index 127e61b0cc..a09a14828f 100644 --- a/src/ol/webgl/map.js +++ b/src/ol/webgl/map.js @@ -128,7 +128,7 @@ ol.webgl.Map = function(target, opt_values) { * @private * @type {Object.} */ - this.textureCache_ = {}; + this.tileTextureCache_ = {}; /** * @private @@ -185,7 +185,7 @@ ol.webgl.Map.prototype.disposeInternal = function() { goog.object.forEach(this.shaderCache_, function(shader) { gl.deleteShader(shader); }); - goog.object.forEach(this.textureCache_, function(texture) { + goog.object.forEach(this.tileTextureCache_, function(texture) { gl.deleteTexture(texture); }); } @@ -256,12 +256,13 @@ ol.webgl.Map.prototype.getShader = function(shaderObject) { /** - * @param {Image} image Image. + * @param {ol.Tile} tile Tile. * @return {WebGLTexture} Texture. */ -ol.webgl.Map.prototype.getTexture = function(image) { - if (image.src in this.textureCache_) { - return this.textureCache_[image.src]; +ol.webgl.Map.prototype.getTileTexture = function(tile) { + var image = tile.getImage(); + if (image.src in this.tileTextureCache_) { + return this.tileTextureCache_[image.src]; } else { var gl = this.getGL(); var texture = gl.createTexture(); @@ -276,7 +277,7 @@ ol.webgl.Map.prototype.getTexture = function(image) { goog.webgl.CLAMP_TO_EDGE); gl.texParameteri(goog.webgl.TEXTURE_2D, goog.webgl.TEXTURE_WRAP_T, goog.webgl.CLAMP_TO_EDGE); - this.textureCache_[image.src] = texture; + this.tileTextureCache_[image.src] = texture; return texture; } }; @@ -361,7 +362,7 @@ ol.webgl.Map.prototype.handleWebGLContextLost = function(event) { event.preventDefault(); this.shaderCache_ = {}; this.programCache_ = {}; - this.textureCache_ = {}; + this.tileTextureCache_ = {}; goog.object.forEach(this.layerRenderers, function(layerRenderer) { layerRenderer.handleWebGLContextLost(); }); diff --git a/src/ol/webgl/tilelayerrenderer.js b/src/ol/webgl/tilelayerrenderer.js index 50929628de..0dcc987a3f 100644 --- a/src/ol/webgl/tilelayerrenderer.js +++ b/src/ol/webgl/tilelayerrenderer.js @@ -305,7 +305,7 @@ ol.webgl.TileLayerRenderer.prototype.redraw = function() { 2 / tileBoundsSize.height, 1); gl.uniformMatrix4fv(this.locations_.uMatrix, false, uMatrix); - gl.bindTexture(goog.webgl.TEXTURE_2D, map.getTexture(tile.getImage())); + gl.bindTexture(goog.webgl.TEXTURE_2D, map.getTileTexture(tile)); gl.activeTexture(goog.webgl.TEXTURE0); gl.drawArrays(goog.webgl.TRIANGLE_STRIP, 0, 4); } else {