Faster calculation of target size
Since usedTiles and wantedTiles will never have an overlap, we can use their key count directly.
This commit is contained in:
@@ -7,7 +7,6 @@ import TileState from '../../TileState.js';
|
|||||||
import {createEmpty, getIntersection, getTopLeft} from '../../extent.js';
|
import {createEmpty, getIntersection, getTopLeft} from '../../extent.js';
|
||||||
import CanvasLayerRenderer from './Layer.js';
|
import CanvasLayerRenderer from './Layer.js';
|
||||||
import {apply as applyTransform, compose as composeTransform, makeInverse, toString as transformToString} from '../../transform.js';
|
import {apply as applyTransform, compose as composeTransform, makeInverse, toString as transformToString} from '../../transform.js';
|
||||||
import {assign} from '../../obj.js';
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @classdesc
|
* @classdesc
|
||||||
@@ -434,11 +433,13 @@ class CanvasTileLayerRenderer extends CanvasLayerRenderer {
|
|||||||
*/
|
*/
|
||||||
updateCacheSize_(frameState, tileSource) {
|
updateCacheSize_(frameState, tileSource) {
|
||||||
const tileSourceKey = getUid(tileSource);
|
const tileSourceKey = getUid(tileSource);
|
||||||
const keys = assign({}, frameState.usedTiles[tileSourceKey]);
|
let size = 0;
|
||||||
if (tileSourceKey in frameState.wantedTiles) {
|
if (tileSourceKey in frameState.usedTiles) {
|
||||||
assign(keys, frameState.wantedTiles[tileSourceKey]);
|
size += Object.keys(frameState.usedTiles[tileSourceKey]).length;
|
||||||
|
}
|
||||||
|
if (tileSourceKey in frameState.wantedTiles) {
|
||||||
|
size += Object.keys(frameState.wantedTiles[tileSourceKey]).length;
|
||||||
}
|
}
|
||||||
const size = Object.keys(keys).length;
|
|
||||||
const tileCache = tileSource.tileCache;
|
const tileCache = tileSource.tileCache;
|
||||||
if (tileCache.highWaterMark < size) {
|
if (tileCache.highWaterMark < size) {
|
||||||
tileCache.highWaterMark = size;
|
tileCache.highWaterMark = size;
|
||||||
|
|||||||
Reference in New Issue
Block a user