import { Point } from '../math/Point'; import Session from '../Session'; import Surface from '../Surface'; import View from '../View'; import { Scene } from './Scene'; export default class Renderer { readonly session: Session; scenes: { [key: string]: Scene; }; topLevelViews: View[]; private frameCallbacks; private viewStack; private renderFrame?; private renderTaskRegistration?; private constructor(); static create(session: Session): Renderer; initScene(sceneId: string, canvas: HTMLCanvasElement): void; updateCursor(view: View, hotspot: Point): void; raiseSurface(surface: Surface): void; render(afterUpdatePixelContent?: () => void): void; pickView(scenePoint: Point): View | undefined; hideCursor(): void; resetCursor(): void; clearDndImage(): void; updateDndImage(view: View): void; removeTopLevelView(topLevelView: View): void; hasTopLevelView(topLevelView: View): boolean; addTopLevelView(topLevelView: View): void; /** * Update stack of all views of this scene, in-order from bottom to top. */ private updateViewStack; private addToViewStack; private registerFrameCallbacks; private updateRenderStatesPixelContent; }