- Undo removing prefixUrl option in memorycheck-with-simple-image demo.

- Define destroy method in TileSource class, call ImageTileSource.freeupCanvasMemory method as optional from TileSource.destroy method and remove TODO.
This commit is contained in:
Takuma Kira 2020-03-23 11:29:07 +09:00
parent 6cb57aa66c
commit 344ddb924f
4 changed files with 22 additions and 21 deletions

View File

@ -196,11 +196,16 @@
return context;
},
/**
* Destroys ImageTileSource
* Free up canvas memory
* (iOS 12 or higher on 2GB RAM device has only 224MB canvas memory,
* and Safari keeps canvas until its height and width will be set to 0).
* @function
*/
destroy: function () {
this._freeupCanvasMemory();
freeupCanvasMemory: function () {
for (var i = 0; i < this.levels.length; i++) {
this.levels[i].context2D.canvas.height = 0;
this.levels[i].context2D.canvas.width = 0;
}
},
// private
@ -265,19 +270,7 @@
bigContext = smallContext;
}
return levels;
},
/**
* Free up canvas memory
* (iOS 12 or higher on 2GB RAM device has only 224MB canvas memory,
* and Safari keeps canvas until its height and width will be set to 0).
* @function
*/
_freeupCanvasMemory: function () {
for (var i = 0; i < this.levels.length; i++) {
this.levels[i].context2D.canvas.height = 0;
this.levels[i].context2D.canvas.width = 0;
}
},
});
}(OpenSeadragon));

View File

@ -615,7 +615,17 @@ $.TileSource.prototype = {
y >= 0 &&
x < numTiles.x &&
y < numTiles.y;
},
/**
* Destroys TileSource
* @function
*/
destroy: function () {
if ( this.freeupCanvasMemory ) {
this.freeupCanvasMemory();
}
},
};

View File

@ -742,10 +742,7 @@ $.extend( $.Viewer.prototype, $.EventSource.prototype, $.ControlDock.prototype,
return;
}
//TODO: implement destroy and _freeupCanvasMemory method for all child classes of TileSource, then remove if statement wrap below.
if (this.source.destroy) {
this.source.destroy();
}
this.close();

View File

@ -35,6 +35,7 @@
_viewer = OpenSeadragon({
element: document.getElementById("contentDiv"),
showNavigationControl: false,
prefixUrl: "../../build/openseadragon/images/",
tileSources: {
type: "image",
url: "../data/CCyan.png"