UNPKG

@turbox3d/renderer-pixi

Version:

Large-scale declarative 2d graphic ui framework based on pixi

97 lines (96 loc) 3.88 kB
import { CoordinateController, InteractiveConfig, InteractiveType, SceneEvent, ViewEntity } from '@turbox3d/event-manager'; import { BaseScene, BaseSceneProps, ComponentProps, SceneType, ViewportInfo } from '@turbox3d/renderer-core'; import { Vec2, Vec3 } from '@turbox3d/shared'; import * as PIXI from 'pixi.js'; export declare const Scene2DSymbol: unique symbol; export interface Scene2DProps extends BaseSceneProps { /** * 根视图容器参数(在一个 renderer 中渲染多个子视图并互相隔离时使用) */ viewport?: ViewportInfo; /** * 2d 相机的尺寸(x是宽度、y是高度)单位:毫米 */ camera2dSize?: Vec2; /** resizeFramebuffer */ resizeFramebuffer?: boolean; } export declare class Scene2D extends BaseScene<PIXI.Application, PIXI.ICanvas, never, never, never, PIXI.Container, PIXI.DisplayObject, PIXI.Sprite> { defaultSceneViewType: symbol; sceneType: SceneType; private timer; private offsetCenter; private brt?; private rt?; private originalResizeFramebufferFunction; constructor(props: Exclude<ComponentProps<Scene2DProps>, ViewEntity>); createView(): PIXI.Container<PIXI.DisplayObject>; getViewInfo(): { position: { x: number; y: number; }; scale: { x: number; y: number; }; visible: boolean; }; setViewPosition(position: Partial<Vec3>): void; setViewScale(scale: Partial<Vec3>): void; setViewVisible(visible: boolean): void; setViewportPosition(position: Partial<Vec3>): void; setViewportScale(scale: Partial<Vec3>): void; setViewportVisible(visible: boolean): void; addRootViewContainer(app: PIXI.Application): void; createViewport(): void; getViewport(): PIXI.Sprite | undefined; getViewportInfo(): { position: { x: number; y: number; }; scale: { x: number; y: number; }; visible: boolean; width: number; height: number; } | undefined; createApp(): PIXI.Application<PIXI.ICanvas>; updateCameraTarget(): void; updateCameraPosition(): void; /** * 修复 PIXI bug,改写 resizeFramebuffer,解决 pixi frame buffer 只能由大变小但不能由小变大 resize 的问题 * 因为修复此 bug 会导致性能问题,所以只在必要的时候使用,通过参数控制改写的内容 */ private fixResizeFramebufferBug; private isWebGL; destroyRendererInteraction(app: PIXI.Application): void; addChildView(view: PIXI.DisplayObject): void; getCanvasView(app: PIXI.Application): { width: number; height: number; renderer: PIXI.ICanvas; }; unmountCanvas(): void; mountCanvas(): void; getHitTargetOriginal(): (point: Vec2, container: PIXI.Container, configMap: Map<PIXI.DisplayObject, InteractiveConfig>, interactiveType: InteractiveType) => { originalTarget: PIXI.DisplayObject; target: PIXI.DisplayObject | undefined; }; updateCursor: (app: PIXI.Application, cursor: string) => void; createCoordinateController(app: PIXI.Application): CoordinateController; resizeStage: (app: PIXI.Application) => void; setBackGroundImage(app: PIXI.Application): void; initSkyBox(): void; updateResolution(app: PIXI.Application): void; resizeViewport(app: PIXI.Application): void; destroyApp(app: PIXI.Application): void; removeAppChildrenView(app: PIXI.Application): void; /** 获取截图 */ getScreenShot(sx?: number, sy?: number, w?: number, h?: number, fileType?: string, quality?: number, isBase64?: boolean): Promise<string | Blob>; canvasScaleImpl(event: SceneEvent): void; canvasDragImpl(event: SceneEvent, type: 'start' | 'move' | 'end'): void; }