@allmaps/render
Version:
Render functions for WebGL and image buffers
48 lines (46 loc) • 1.79 kB
TypeScript
import { FetchableTile } from './FetchableTile.js';
import { FetchFn } from '@allmaps/types';
import { WarpedMapWithImage } from '../maps/WarpedMap.js';
import { MapPruneConstants, MapPruneInfo, SpritesInfo } from '../shared/types.js';
/**
* Class for tiles that can be cached.
*/
export declare abstract class CacheableTile<D> extends EventTarget {
readonly fetchableTile: FetchableTile;
readonly fetchFn?: FetchFn;
protected abortController: AbortController;
protected data?: D;
protected cachedTilesFromSprites?: CachedTile<D>[];
/**
* Creates an instance of CacheableTile.
*
* Note that there can be multiple FetchableTiles with the same tileUrl, but only one CachedTile per tileUrl.
*
* @constructor
* @param fetchableTile - The FetchableTile which created this CachedTile.
* @param fetchFn - Optional fetch function to use
*/
constructor(fetchableTile: FetchableTile, fetchFn?: FetchFn);
abstract fetch(): Promise<D | undefined>;
abstract applySprites(): Promise<void>;
abstract spritesDataToCachedTiles(clippedImageDatas: ImageData[], spritesInfo: SpritesInfo, warpedMapsByResourceId: Map<string, WarpedMapWithImage[]>): CachedTile<D>[];
/**
* Whether a tile has fetched its data
*
* @returns
*/
isCachedTile(): this is CachedTile<D>;
isTileFromSprites(): boolean;
getCachedTilesFromSprites(): CachedTile<D>[] | undefined;
/**
* Abort the fetch
*/
abort(): void;
shouldPrune(mapPruneInfo: MapPruneInfo | undefined, mapPruneConstants: MapPruneConstants): boolean;
}
/**
* Class for tiles that are cached, i.e. their data has been fetched and processed
*/
export declare abstract class CachedTile<D> extends CacheableTile<D> {
data: D;
}