mirror of
https://github.com/openseadragon/openseadragon.git
synced 2025-02-21 09:13:14 +03:00
Add tile-unloaded event.
This commit is contained in:
parent
584daea732
commit
8a6177b729
@ -172,6 +172,7 @@ $.TileCache.prototype = /** @lends OpenSeadragon.TileCache.prototype */{
|
|||||||
if ( this._imagesLoadedCount > this._maxImageCacheCount ) {
|
if ( this._imagesLoadedCount > this._maxImageCacheCount ) {
|
||||||
var worstTile = null;
|
var worstTile = null;
|
||||||
var worstTileIndex = -1;
|
var worstTileIndex = -1;
|
||||||
|
var worstTileRecord = null;
|
||||||
var prevTile, worstTime, worstLevel, prevTime, prevLevel, prevTileRecord;
|
var prevTile, worstTime, worstLevel, prevTime, prevLevel, prevTileRecord;
|
||||||
|
|
||||||
for ( var i = this._tilesLoaded.length - 1; i >= 0; i-- ) {
|
for ( var i = this._tilesLoaded.length - 1; i >= 0; i-- ) {
|
||||||
@ -183,6 +184,7 @@ $.TileCache.prototype = /** @lends OpenSeadragon.TileCache.prototype */{
|
|||||||
} else if ( !worstTile ) {
|
} else if ( !worstTile ) {
|
||||||
worstTile = prevTile;
|
worstTile = prevTile;
|
||||||
worstTileIndex = i;
|
worstTileIndex = i;
|
||||||
|
worstTileRecord = prevTileRecord;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -195,11 +197,12 @@ $.TileCache.prototype = /** @lends OpenSeadragon.TileCache.prototype */{
|
|||||||
( prevTime == worstTime && prevLevel > worstLevel ) ) {
|
( prevTime == worstTime && prevLevel > worstLevel ) ) {
|
||||||
worstTile = prevTile;
|
worstTile = prevTile;
|
||||||
worstTileIndex = i;
|
worstTileIndex = i;
|
||||||
|
worstTileRecord = prevTileRecord;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( worstTile && worstTileIndex >= 0 ) {
|
if ( worstTile && worstTileIndex >= 0 ) {
|
||||||
this._unloadTile(worstTile);
|
this._unloadTile(worstTileRecord);
|
||||||
insertionIndex = worstTileIndex;
|
insertionIndex = worstTileIndex;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -234,8 +237,11 @@ $.TileCache.prototype = /** @lends OpenSeadragon.TileCache.prototype */{
|
|||||||
},
|
},
|
||||||
|
|
||||||
// private
|
// private
|
||||||
_unloadTile: function(tile) {
|
_unloadTile: function(tileRecord) {
|
||||||
$.console.assert(tile, '[TileCache._unloadTile] tile is required');
|
$.console.assert(tileRecord, '[TileCache._unloadTile] tileRecord is required');
|
||||||
|
var tile = tileRecord.tile;
|
||||||
|
var tiledImage = tileRecord.tiledImage;
|
||||||
|
|
||||||
tile.unload();
|
tile.unload();
|
||||||
tile.cacheImageRecord = null;
|
tile.cacheImageRecord = null;
|
||||||
|
|
||||||
@ -246,6 +252,20 @@ $.TileCache.prototype = /** @lends OpenSeadragon.TileCache.prototype */{
|
|||||||
delete this._imagesLoaded[tile.url];
|
delete this._imagesLoaded[tile.url];
|
||||||
this._imagesLoadedCount--;
|
this._imagesLoadedCount--;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Triggered when a tile has just been unloaded from memory.
|
||||||
|
*
|
||||||
|
* @event tile-unloaded
|
||||||
|
* @memberof OpenSeadragon.Viewer
|
||||||
|
* @type {object}
|
||||||
|
* @property {OpenSeadragon.TiledImage} tiledImage - The tiled image of the unloaded tile.
|
||||||
|
* @property {OpenSeadragon.Tile} tile - The tile which has been unloaded.
|
||||||
|
*/
|
||||||
|
tiledImage.viewer.raiseEvent("tile-unloaded", {
|
||||||
|
tile: tile,
|
||||||
|
tiledImage: tiledImage
|
||||||
|
});
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user