Deal with null images
This commit is contained in:
@@ -79,15 +79,16 @@ ol.renderer.canvas.ImageLayer.prototype.renderFrame =
|
|||||||
var hints = frameState.viewHints;
|
var hints = frameState.viewHints;
|
||||||
|
|
||||||
if (!hints[ol.ViewHint.ANIMATING] && !hints[ol.ViewHint.PANNING]) {
|
if (!hints[ol.ViewHint.ANIMATING] && !hints[ol.ViewHint.PANNING]) {
|
||||||
image = imageSource.getImage(
|
image = imageSource.getImage(frameState.extent, viewResolution);
|
||||||
frameState.extent, viewResolution);
|
if (!goog.isNull(image)) {
|
||||||
var imageState = image.getState();
|
var imageState = image.getState();
|
||||||
if (imageState == ol.ImageState.IDLE) {
|
if (imageState == ol.ImageState.IDLE) {
|
||||||
goog.events.listenOnce(image, goog.events.EventType.CHANGE,
|
goog.events.listenOnce(image, goog.events.EventType.CHANGE,
|
||||||
this.handleImageChange, false, this);
|
this.handleImageChange, false, this);
|
||||||
image.load();
|
image.load();
|
||||||
} else if (imageState == ol.ImageState.LOADED) {
|
} else if (imageState == ol.ImageState.LOADED) {
|
||||||
this.image_ = image;
|
this.image_ = image;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -68,13 +68,15 @@ ol.renderer.dom.ImageLayer.prototype.renderFrame =
|
|||||||
|
|
||||||
if (!hints[ol.ViewHint.ANIMATING] && !hints[ol.ViewHint.PANNING]) {
|
if (!hints[ol.ViewHint.ANIMATING] && !hints[ol.ViewHint.PANNING]) {
|
||||||
var image_ = imageSource.getImage(frameState.extent, viewResolution);
|
var image_ = imageSource.getImage(frameState.extent, viewResolution);
|
||||||
var imageState = image_.getState();
|
if (!goog.isNull(image_)) {
|
||||||
if (imageState == ol.ImageState.IDLE) {
|
var imageState = image_.getState();
|
||||||
goog.events.listenOnce(image_, goog.events.EventType.CHANGE,
|
if (imageState == ol.ImageState.IDLE) {
|
||||||
this.handleImageChange, false, this);
|
goog.events.listenOnce(image_, goog.events.EventType.CHANGE,
|
||||||
image_.load();
|
this.handleImageChange, false, this);
|
||||||
} else if (imageState == ol.ImageState.LOADED) {
|
image_.load();
|
||||||
image = image_;
|
} else if (imageState == ol.ImageState.LOADED) {
|
||||||
|
image = image_;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -161,21 +161,23 @@ ol.renderer.webgl.ImageLayer.prototype.renderFrame =
|
|||||||
|
|
||||||
if (!hints[ol.ViewHint.ANIMATING] && !hints[ol.ViewHint.PANNING]) {
|
if (!hints[ol.ViewHint.ANIMATING] && !hints[ol.ViewHint.PANNING]) {
|
||||||
var image_ = imageSource.getImage(frameState.extent, viewResolution);
|
var image_ = imageSource.getImage(frameState.extent, viewResolution);
|
||||||
var imageState = image_.getState();
|
if (!goog.isNull(image_)) {
|
||||||
if (imageState == ol.ImageState.IDLE) {
|
var imageState = image_.getState();
|
||||||
goog.events.listenOnce(image_, goog.events.EventType.CHANGE,
|
if (imageState == ol.ImageState.IDLE) {
|
||||||
this.handleImageChange, false, this);
|
goog.events.listenOnce(image_, goog.events.EventType.CHANGE,
|
||||||
image_.load();
|
this.handleImageChange, false, this);
|
||||||
} else if (imageState == ol.ImageState.LOADED) {
|
image_.load();
|
||||||
image = image_;
|
} else if (imageState == ol.ImageState.LOADED) {
|
||||||
texture = this.createTexture_(image_);
|
image = image_;
|
||||||
if (!goog.isNull(this.texture_)) {
|
texture = this.createTexture_(image_);
|
||||||
frameState.postRenderFunctions.push(
|
if (!goog.isNull(this.texture_)) {
|
||||||
goog.partial(function(gl, texture) {
|
frameState.postRenderFunctions.push(
|
||||||
if (!gl.isContextLost()) {
|
goog.partial(function(gl, texture) {
|
||||||
gl.deleteTexture(texture);
|
if (!gl.isContextLost()) {
|
||||||
}
|
gl.deleteTexture(texture);
|
||||||
}, gl, this.texture_));
|
}
|
||||||
|
}, gl, this.texture_));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user