import { EventEmitter } from 'eventemitter3'; import type { ITexture2D } from '../renderer/ITexture2D'; import type { ISceneService } from '../scene/ISceneService'; import type { IICONMap, IIconService, IImage } from './IIconService'; export default class IconService extends EventEmitter implements IIconService { canvasHeight: number; private texture; private canvas; private iconData; private iconMap; private ctx; private loadingImageCount; isLoading(): boolean; init(): void; addImage(id: string, image: IImage): Promise; /** * 适配小程序 * @param id * @param image * @param sceneService */ addImageMini(id: string, image: IImage, sceneService: ISceneService): void; getTexture(): ITexture2D; getIconMap(): IICONMap; getCanvas(): HTMLCanvasElement; hasImage(id: string): boolean; removeImage(id: string): void; destroy(): void; loadImage(url: IImage): Promise; private update; /** * 将新增的 icon 图像存储到画布上(正方形) */ private updateIconAtlas; /** * 计算 icon 在画布上的排布(是否需要换行) */ private updateIconMap; /** * 适配小程序 * @param url * @returns */ private loadImageMini; }