Always free WebGL resources in post render

This commit is contained in:
Tom Payne
2013-01-12 18:57:50 +01:00
parent a26deb62bf
commit 655b6a1b00
2 changed files with 8 additions and 24 deletions
-6
View File
@@ -3,12 +3,6 @@ goog.provide('ol.renderer.webgl');
goog.require('ol.webgl'); goog.require('ol.webgl');
/**
* @define {boolean} Free resources immediately.
*/
ol.renderer.webgl.FREE_RESOURCES_IMMEDIATELY = false;
/** /**
* @return {boolean} Is supported. * @return {boolean} Is supported.
*/ */
@@ -183,24 +183,14 @@ ol.renderer.webgl.TileLayer.prototype.bindFramebuffer_ =
this.logger.info('re-sizing framebuffer'); this.logger.info('re-sizing framebuffer');
} }
if (ol.renderer.webgl.FREE_RESOURCES_IMMEDIATELY) { var map = this.getMap();
if (goog.DEBUG) { frameState.postRenderFunctions.push(
this.logger.info('freeing WebGL resources'); goog.partial(function(gl, framebuffer, texture) {
} if (!gl.isContextLost()) {
if (!gl.isContextLost()) { gl.deleteFramebuffer(framebuffer);
gl.deleteFramebuffer(this.framebuffer_); gl.deleteTexture(texture);
gl.deleteTexture(this.texture_); }
} }, gl, this.framebuffer_, this.texture_));
} else {
var map = this.getMap();
frameState.postRenderFunctions.push(
goog.partial(function(gl, framebuffer, texture) {
if (!gl.isContextLost()) {
gl.deleteFramebuffer(framebuffer);
gl.deleteTexture(texture);
}
}, gl, this.framebuffer_, this.texture_));
}
var texture = gl.createTexture(); var texture = gl.createTexture();
gl.bindTexture(goog.webgl.TEXTURE_2D, texture); gl.bindTexture(goog.webgl.TEXTURE_2D, texture);