import { Layer } from '../layer'; import { Disposable, DisposableCollection } from '@gedit/utils'; import { ConflatableMessage, IMessageHandler, Message } from '@phosphor/messaging'; import { PipelineEntitiesSelector } from './pipeline-entities-selector'; import { AbleManager, EntityManager } from '../../common'; export declare const FLUSH_LAYER_REQUEST = "flush-layer-request"; export declare class FlushLayerMessage extends ConflatableMessage { readonly layer: Layer; constructor(layer: Layer); } /** * pipeline渲染器 */ export declare class PipelineRenderer implements Disposable, IMessageHandler { protected readonly selector: PipelineEntitiesSelector; protected toDispose: DisposableCollection; readonly layers: Layer[]; protected forceUpdates: Set; readonly layerDrawMap: Map void>; readonly layerFlushMessages: Map; readonly node: HTMLDivElement; constructor(selector: PipelineEntitiesSelector, entityManager: EntityManager, ableManager: AbleManager); addLayer(layer: Layer): void; flush(): void; ready(): void; dispose(): void; processMessage(msg: Message): void; protected onFlushRequest(layer: Layer): void; /** * 1. PostMessage: 会将消息在nextTick执行 * 2. ConflatableMessage: 当多个消息进来会在下一个nextTick做合并 * 3. 图层相互隔离,即时一层挂了也不受影响 */ updateLayer(layer: Layer, forceUpdate?: boolean): void; } //# sourceMappingURL=pipeline-renderer.d.ts.map