UNPKG

5.07 kBTypeScriptView Raw
1import type { Cursor, InteractivePointerEvent } from './types';
2import { CanvasConfig } from './types';
3import { DisplayObject } from './display-objects/DisplayObject';
4import { ContextService } from './services';
5import { RenderingService } from './services/RenderingService';
6import { RenderingContext } from './services/RenderingContext';
7import { EventService } from './services/EventService';
8import { Camera } from './camera';
9import type { IRenderer } from './AbstractRenderer';
10import type { PointLike } from './shapes';
11import type { IChildNode } from './dom';
12import { Document, EventTarget } from './dom';
13import type { ICanvas } from './dom/interfaces';
14import { CustomElementRegistry } from './dom/CustomElementRegistry';
15export declare enum CanvasEvent {
16 READY = "ready",
17 BEFORE_RENDER = "beforerender",
18 AFTER_RENDER = "afterrender",
19 BEFORE_DESTROY = "beforedestroy",
20 AFTER_DESTROY = "afterdestroy",
21 RESIZE = "resize"
22}
23/**
24 * can be treated like Window in DOM
25 * provide some extra methods like `window`, such as:
26 * * `window.requestAnimationFrame`
27 * * `window.devicePixelRatio`
28 *
29 * prototype chains: Canvas(Window) -> EventTarget
30 */
31export declare class Canvas extends EventTarget implements ICanvas {
32 /**
33 * child container of current canvas, use hierarchy container
34 */
35 container: import("mana-syringe").Syringe.Container;
36 /**
37 * window.document
38 */
39 document: Document;
40 /**
41 * @see https://developer.mozilla.org/en-US/docs/Web/API/CustomElementRegistry
42 */
43 customElements: CustomElementRegistry;
44 /**
45 * @see https://developer.mozilla.org/en-US/docs/Web/API/window/requestAnimationFrame
46 */
47 requestAnimationFrame: (callback: FrameRequestCallback) => number;
48 /**
49 * @see https://developer.mozilla.org/en-US/docs/Web/API/Window/cancelAnimationFrame
50 */
51 cancelAnimationFrame: (handle: number) => void;
52 /**
53 * @see https://developer.mozilla.org/en-US/docs/Web/API/Window/devicePixelRatio
54 */
55 devicePixelRatio: number;
56 /**
57 * whether the runtime supports PointerEvent?
58 * if not, the event system won't trigger pointer events like `pointerdown`
59 */
60 supportPointerEvent: boolean;
61 /**
62 * whether the runtime supports TouchEvent?
63 * if not, the event system won't trigger touch events like `touchstart`
64 */
65 supportTouchEvent: boolean;
66 /**
67 * is this native event a TouchEvent?
68 */
69 isTouchEvent: (event: InteractivePointerEvent) => event is TouchEvent;
70 /**
71 * is this native event a MouseEvent?
72 */
73 isMouseEvent: (event: InteractivePointerEvent) => event is MouseEvent;
74 /**
75 * @see https://developer.mozilla.org/en-US/docs/Web/API/Element
76 */
77 Element: typeof DisplayObject;
78 /**
79 * rAF in auto rendering
80 */
81 private frameId?;
82 /**
83 * cache here since inversify's resolving is very slow
84 */
85 private eventService;
86 private renderingService;
87 private inited;
88 private readyPromise;
89 private resolveReadyPromise;
90 constructor(config: CanvasConfig);
91 private initRenderingContext;
92 private initDefaultCamera;
93 getConfig(): Partial<CanvasConfig>;
94 getContainer(): import("mana-syringe").Syringe.Container;
95 /**
96 * get the root displayObject in scenegraph
97 * @alias this.document.documentElement
98 */
99 getRoot(): import(".").Group;
100 /**
101 * get the camera of canvas
102 */
103 getCamera(): Camera;
104 getContextService(): ContextService<unknown>;
105 getEventService(): EventService;
106 getRenderingService(): RenderingService;
107 getRenderingContext(): RenderingContext;
108 getStats(): {
109 total: number;
110 rendered: number;
111 renderedOnscreen: number;
112 };
113 get ready(): Promise<any>;
114 destroy(destroyScenegraph?: boolean): void;
115 /**
116 * compatible with G 3.0
117 * @deprecated
118 * @alias resize
119 */
120 changeSize(width: number, height: number): void;
121 resize(width: number, height: number): void;
122 appendChild<T extends IChildNode>(child: T, index?: number): T;
123 insertBefore<T extends IChildNode, N extends IChildNode>(newChild: T, refChild: N | null): T;
124 removeChild<T extends IChildNode>(child: T, destroy?: boolean): T;
125 removeChildren(destroy?: boolean): void;
126 render(): void;
127 private run;
128 private initRenderer;
129 private loadCommonContainerModule;
130 private loadRendererContainerModule;
131 setRenderer(renderer: IRenderer): void;
132 setCursor(cursor: Cursor): void;
133 private unmountChildren;
134 private mountChildren;
135 client2Viewport(client: PointLike): PointLike;
136 viewport2Client(canvas: PointLike): PointLike;
137 viewport2Canvas(viewport: PointLike): PointLike;
138 canvas2Viewport(canvas: PointLike): PointLike;
139 /**
140 * @deprecated
141 * @alias client2Viewport
142 */
143 getPointByClient(clientX: number, clientY: number): PointLike;
144 /**
145 * @deprecated
146 * @alias viewport2Client
147 */
148 getClientByPoint(x: number, y: number): PointLike;
149}