Add ol.renderer.webgl.VectorLayer#disposeInternal

Implement disposeInternal to free WebGL resources (deleteBuffer and deleteTexture).
This commit is contained in:
Éric Lemoine
2014-11-10 16:46:39 +01:00
parent 6c80ddcb14
commit d9a4482393
2 changed files with 44 additions and 31 deletions

View File

@@ -80,6 +80,21 @@ ol.renderer.webgl.VectorLayer.prototype.composeFrame =
};
/**
* @inheritDoc
*/
ol.renderer.webgl.VectorLayer.prototype.disposeInternal = function() {
var replayGroup = this.replayGroup_;
if (!goog.isNull(replayGroup)) {
var mapRenderer = this.getWebGLMapRenderer();
var context = mapRenderer.getContext();
replayGroup.getDeleteResourcesFunction(context)();
this.replayGroup_ = null;
}
goog.base(this, 'disposeInternal');
};
/**
* @inheritDoc
*/
@@ -146,7 +161,8 @@ ol.renderer.webgl.VectorLayer.prototype.prepareFrame =
extent[3] = frameStateExtent[3] + yBuffer;
if (!goog.isNull(this.replayGroup_)) {
this.replayGroup_.dispose(frameState, context);
frameState.postRenderFunctions.push(
this.replayGroup_.getDeleteResourcesFunction(context));
}
this.dirty_ = false;