UNPKG

@pixi/core

Version:
118 lines (117 loc) 6.52 kB
import type { RENDERER_TYPE } from '@pixi/constants'; import type { Matrix, Rectangle, Transform } from '@pixi/math'; import type { ICanvas } from '@pixi/settings'; import type { IRendererPlugins } from './plugin/PluginSystem'; import type { IGenerateTextureOptions } from './renderTexture/GenerateTextureSystem'; import type { RenderTexture } from './renderTexture/RenderTexture'; import type { SystemManager } from './system/SystemManager'; import type { BackgroundSytemOptions, ContextSystemOptions, StartupSystemOptions, ViewSystemOptions } from './systems'; import type { ImageSource } from './textures/BaseTexture'; /** * Interface for DisplayObject to interface with Renderer. * The minimum APIs needed to implement a renderable object. * @memberof PIXI */ export interface IRenderableObject extends GlobalMixins.IRenderableObject { /** Object must have a parent container */ parent: IRenderableContainer; /** Object must have a transform */ transform: Transform; /** Before method for transform updates */ enableTempParent(): IRenderableContainer; /** Update the transforms */ updateTransform(): void; /** After method for transform updates */ disableTempParent(parent: IRenderableContainer): void; /** Render object directly */ render(renderer: IRenderer): void; } /** * Interface for Container to interface with Renderer. * @memberof PIXI */ export interface IRenderableContainer extends IRenderableObject { /** Get Local bounds for container */ getLocalBounds(rect?: Rectangle, skipChildrenUpdate?: boolean): Rectangle; } /** * Mixed WebGL1 / WebGL2 rendering context. Either it's WebGL2, either it's WebGL1 with PixiJS polyfills on it. * @memberof PIXI */ export interface IRenderingContext extends WebGL2RenderingContext { texImage2D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, border: GLint, format: GLenum, type: GLenum, pixels: ArrayBufferView | null): void; texImage2D(target: GLenum, level: GLint, internalformat: GLint, format: GLenum, type: GLenum, source: TexImageSource | ImageSource): void; texImage2D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, border: GLint, format: GLenum, type: GLenum, pboOffset: GLintptr): void; texImage2D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, border: GLint, format: GLenum, type: GLenum, source: TexImageSource | ImageSource): void; texImage2D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, border: GLint, format: GLenum, type: GLenum, srcData: ArrayBufferView, srcOffset: GLuint): void; texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, pixels: ArrayBufferView | null): void; texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, format: GLenum, type: GLenum, source: TexImageSource | ImageSource): void; texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, pboOffset: GLintptr): void; texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, source: TexImageSource | ImageSource): void; texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, srcData: ArrayBufferView, srcOffset: GLuint): void; texSubImage3D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, format: GLenum, type: GLenum, pboOffset: GLintptr): void; texSubImage3D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, format: GLenum, type: GLenum, source: TexImageSource | ImageSource): void; texSubImage3D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, format: GLenum, type: GLenum, srcData: ArrayBufferView | null, srcOffset?: GLuint): void; } /** * Renderer options supplied to constructor. * @memberof PIXI * @see PIXI.settings.RENDER_OPTIONS */ export interface IRendererOptions extends GlobalMixins.IRendererOptions, BackgroundSytemOptions, ContextSystemOptions, ViewSystemOptions, StartupSystemOptions { } /** * @deprecated since 7.2.0 * @see PIXI.IRendererOptions */ export declare type IRenderOptions = IRendererOptions; export interface IRendererRenderOptions { renderTexture?: RenderTexture; blit?: boolean; clear?: boolean; transform?: Matrix; skipUpdateTransform?: boolean; } /** * Starard Interface for a Pixi renderer. * @memberof PIXI */ export interface IRenderer<VIEW extends ICanvas = ICanvas> extends SystemManager, GlobalMixins.IRenderer { resize(width: number, height: number): void; render(displayObject: IRenderableObject, options?: IRendererRenderOptions): void; generateTexture(displayObject: IRenderableObject, options?: IGenerateTextureOptions): RenderTexture; destroy(removeView?: boolean): void; clear(): void; reset(): void; /** * The type of the renderer. * @see PIXI.RENDERER_TYPE */ readonly type: RENDERER_TYPE; /** * The options passed in to create a new instance of the renderer. * @type {PIXI.IRendererOptions} */ readonly options: IRendererOptions; /** When logging Pixi to the console, this is the name we will show */ readonly rendererLogId: string; /** The canvas element that everything is drawn to.*/ readonly view: VIEW; /** Flag if we are rendering to the screen vs renderTexture */ readonly renderingToScreen: boolean; /** The resolution / device pixel ratio of the renderer. */ resolution: number; /** the width of the screen */ readonly width: number; /** the height of the screen */ readonly height: number; /** * Measurements of the screen. (0, 0, screenWidth, screenHeight). * Its safe to use as filterArea or hitArea for the whole stage. */ readonly screen: Rectangle; /** the last object rendered by the renderer. Useful for other plugins like interaction managers */ readonly lastObjectRendered: IRenderableObject; /** Collection of plugins */ readonly plugins: IRendererPlugins; }