@expofp/floorplan
Version:
Interactive floor plan library for expos and events
22 lines • 1.31 kB
TypeScript
export interface ImageUrls {
preferred?: string;
fallback: string;
}
export declare function loadImagesInBatchesById(logosUrls: Map<number, ImageUrls>, batchSize?: number, delay?: number): Promise<Map<number, HTMLImageElement>>;
/**
* Loads a map of ids to image bytes. One URL loads at most once per call, no matter how many ids
* share it.
*
* This dedup is not an optimization. It is a correctness requirement. The renderer dedupes image
* sources by object identity, so two booths that share a logo must get the very same `Blob`
* object. If they do not, the logo downloads twice, packs twice, and draws from two atlas
* regions. The cache lives only for the length of this call, because the defs keep their own
* Blobs afterward. A cache that outlived the call would give every logo on the plan a second
* place to stay in memory.
* @param logosUrls - The URLs to load, keyed by booth id.
* @param batchSize - How many URLs to load at once.
* @param delay - Milliseconds to wait between batches.
* @returns The bytes, keyed by booth id. An id is absent when its logo failed to load.
*/
export declare function loadBlobsInBatchesById(logosUrls: Map<number, ImageUrls>, batchSize?: number, delay?: number): Promise<Map<number, Blob>>;
//# sourceMappingURL=loadImagesInBatches.d.ts.map