Always free WebGL resources in post render
This commit is contained in:
@@ -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);
|
||||||
|
|||||||
Reference in New Issue
Block a user