Canvas.d.ts 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. import type { IRenderer } from './AbstractRenderer';
  2. import { DisplayObject } from './display-objects';
  3. import type { CanvasContext, IChildNode } from './dom';
  4. import { Document, EventTarget } from './dom';
  5. import { CustomElementRegistry } from './dom/CustomElementRegistry';
  6. import type { ICanvas } from './dom/interfaces';
  7. import { EventService, RenderingService } from './services';
  8. import type { PointLike } from './shapes';
  9. import type { Cursor, InteractivePointerEvent, CanvasConfig } from './types';
  10. export declare function isCanvas(value: any): value is Canvas;
  11. export declare enum CanvasEvent {
  12. READY = "ready",
  13. BEFORE_RENDER = "beforerender",
  14. RERENDER = "rerender",
  15. AFTER_RENDER = "afterrender",
  16. BEFORE_DESTROY = "beforedestroy",
  17. AFTER_DESTROY = "afterdestroy",
  18. RESIZE = "resize",
  19. DIRTY_RECTANGLE = "dirtyrectangle",
  20. RENDERER_CHANGED = "rendererchanged"
  21. }
  22. /**
  23. * can be treated like Window in DOM
  24. * provide some extra methods like `window`, such as:
  25. * * `window.requestAnimationFrame`
  26. * * `window.devicePixelRatio`
  27. *
  28. * prototype chains: Canvas(Window) -> EventTarget
  29. */
  30. export declare class Canvas extends EventTarget implements ICanvas {
  31. /**
  32. * window.document
  33. */
  34. document: Document;
  35. /**
  36. * @see https://developer.mozilla.org/en-US/docs/Web/API/CustomElementRegistry
  37. */
  38. customElements: CustomElementRegistry;
  39. /**
  40. * @see https://developer.mozilla.org/en-US/docs/Web/API/window/requestAnimationFrame
  41. */
  42. requestAnimationFrame: (callback: FrameRequestCallback) => number;
  43. /**
  44. * @see https://developer.mozilla.org/en-US/docs/Web/API/Window/cancelAnimationFrame
  45. */
  46. cancelAnimationFrame: (handle: number) => void;
  47. /**
  48. * @see https://developer.mozilla.org/en-US/docs/Web/API/Window/devicePixelRatio
  49. */
  50. devicePixelRatio: number;
  51. /**
  52. * whether the runtime supports PointerEvent?
  53. * if not, the event system won't trigger pointer events like `pointerdown`
  54. */
  55. supportsPointerEvents: boolean;
  56. /**
  57. * whether the runtime supports TouchEvent?
  58. * if not, the event system won't trigger touch events like `touchstart`
  59. */
  60. supportsTouchEvents: boolean;
  61. /**
  62. * is this native event a TouchEvent?
  63. */
  64. isTouchEvent: (event: InteractivePointerEvent) => event is TouchEvent;
  65. /**
  66. * is this native event a MouseEvent?
  67. */
  68. isMouseEvent: (event: InteractivePointerEvent) => event is MouseEvent;
  69. /**
  70. * @see https://developer.mozilla.org/en-US/docs/Web/API/Element
  71. */
  72. Element: typeof DisplayObject;
  73. /**
  74. * rAF in auto rendering
  75. */
  76. private frameId?;
  77. private inited;
  78. private readyPromise;
  79. private resolveReadyPromise;
  80. context: CanvasContext;
  81. constructor(config: CanvasConfig);
  82. private initRenderingContext;
  83. private initDefaultCamera;
  84. getConfig(): Partial<CanvasConfig>;
  85. /**
  86. * get the root displayObject in scenegraph
  87. * @alias this.document.documentElement
  88. */
  89. getRoot(): import("./display-objects").Group;
  90. /**
  91. * get the camera of canvas
  92. */
  93. getCamera(): import("./camera").ICamera;
  94. getContextService(): import("./services").ContextService<unknown>;
  95. getEventService(): EventService;
  96. getRenderingService(): RenderingService;
  97. getRenderingContext(): import("./services").RenderingContext;
  98. getStats(): {
  99. total: number;
  100. rendered: number;
  101. };
  102. get ready(): Promise<any>;
  103. /**
  104. * `cleanUp` means clean all the internal services of Canvas which happens when calling `canvas.destroy()`.
  105. */
  106. destroy(cleanUp?: boolean, skipTriggerEvent?: boolean): void;
  107. /**
  108. * compatible with G 3.0
  109. * @deprecated
  110. * @alias resize
  111. */
  112. changeSize(width: number, height: number): void;
  113. resize(width: number, height: number): void;
  114. appendChild<T extends IChildNode>(child: T, index?: number): T;
  115. insertBefore<T extends IChildNode, N extends IChildNode>(newChild: T, refChild: N | null): T;
  116. removeChild<T extends IChildNode>(child: T): T;
  117. /**
  118. * Remove all children which can be appended to its original parent later again.
  119. */
  120. removeChildren(): void;
  121. /**
  122. * Recursively destroy all children which can not be appended to its original parent later again.
  123. * But the canvas remains running which means display objects can be appended later.
  124. */
  125. destroyChildren(): void;
  126. render(): void;
  127. private run;
  128. private initRenderer;
  129. private initRenderingService;
  130. private loadRendererContainerModule;
  131. setRenderer(renderer: IRenderer): void;
  132. setCursor(cursor: Cursor): void;
  133. unmountChildren(parent: DisplayObject): void;
  134. mountChildren(parent: DisplayObject): void;
  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. }
  150. //# sourceMappingURL=Canvas.d.ts.map